【问题标题】:What is included in main memory access time?主存访问时间包括什么?
【发布时间】:2020-09-27 17:57:23
【问题描述】:

如果说主存访问时间,100ns。这实际上意味着什么?
考虑一个没有 TLB 且页表中没有发生页面错误的系统。
如果我们考虑1级分页,访问时间会是100吗?还是200? (页表(1 次内存访问时间)+ 数据(第 2 次内存访问时间)。 我对 2 级分页的问题也是如此。
总而言之,这段时间里究竟隐藏着什么?它是否进入页表,在其中搜索条目并读取其中一个条目?这个想法让我很困惑,尤其是在多级分页中。

【问题讨论】:

    标签: memory-management time operating-system paging


    【解决方案1】:

    这意味着从代理内存电路提供地址到代理可以捕获数据为止>, 100ns 已经过去了。

    使用平面页表,并且没有缓存,您希望的最佳时间是 200ns。实际上,从页表条目中读取地址需要时间,因此您可能会错过第二个内存操作的时钟。如果时钟是 1/4 访问时间,则可能需要 225ns 才能读取。

    n 级从不搜索;它从虚拟地址准确地知道如何遍历页表;但是和上面的平面页表一样,每次读取可能会有一些延迟,因此读取具有 n 级页表的内存位置需要 (n * 100 + n * clock-latency) + 100。

    内存读取操作如下所示:

    Clock  _______________|----------|__________|----------|__________
    AddressValid _______/--------------\________
    Address ..........AAAAAAAAAAAAAAAAAAAA]........
    DataValid   _______________________________/-------------\________
    Data    .................................DDDDDDDDDDDDDDDDDDD.......
    

    因此,要点是:信号线仅在时钟沿(上升或下降)采样。在设置 AddressValid 信号之前,地址会稍微可用; AddressValid 信号在时钟上升之前稍微设置。这确保了地址和信号在被采样之前有时间变得稳定。

    当时钟下降时,AddressValid 信号被移除。

    存储设备在时钟上升沿检测到 AddressValid,因此对 Address 值进行采样。它获取内存,使其可用,然后在时钟上升沿之前设置 DataValid 信号。

    当时钟下降时,存储设备会移除 DataValid 信号。

    在时钟上升沿,代理检测到 DataValid,因此对 Data 值进行采样。读取操作现已完成。

    请注意,这是大约 1976 年的内存电路的操作。现代的要花哨得多,但基本相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 2021-11-02
      • 2011-08-17
      • 2015-07-23
      • 2010-10-16
      相关资源
      最近更新 更多