主存访问时间包括什么?

What is included in main memory access time?

如果主存访问时间是100ns。这到底是什么意思?
考虑一个没有 TLB 并且没有页面错误发生在 pagetables 中的系统。
如果我们考虑1级分页,访问时间会是100吗?还是 200? (页面table(1次内存访问时间)+数据(2次内存访问时间)。 我的问题与 2 级分页相同。
总而言之,这次里面有什么?它是否会转到页面 table,在其中搜索一个条目并阅读其中一个条目?这个想法让我很困惑,尤其是在多级分页中。

这意味着从 代理 内存电路 提供地址到数据可以被捕获的时间代理,100ns 已经过去。

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

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

内存读取操作如下所示:

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

因此,要点是:信号线仅在时钟边沿(上升沿或下降沿)采样。 Address 在 AddressValid 信号设置前不久可用; AddressValid 信号在时钟上升之前设置。这确保了地址和信号在被采样之前有时间变成 stable。

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

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

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

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

请注意,这是大约 1976 年的记忆电路的操作。现代的要花哨得多,但本质上是一样的。