如果说主存储器访问时间为100ns。这实际上是什么意思?考虑一个没有TLB且页面表中没有出现页面错误的系统。如果我们考虑1级分页,则访问时间将为100吗?还是200? (页表(1个存储器访问时间)+数据(第2个存储器访问时间)。2级分页也是我的问题。总之,这次的内幕是什么?它会转到页表,在其中搜索一个条目并读取其中一个条目吗?这个想法使我感到困惑,特别是在多级分页中。
这意味着从代理向存储电路提供地址到<>可以捕获数据的时间,已经过了100ns。使用平坦的页表,并且不进行缓存,您所希望的最佳状态是200ns。实际上,从页表条目中读取地址需要时间,因此您可能会错过第二个内存操作上的时钟。如果时钟为1/4访问时间,则可能需要225ns的时间来读取。
n级人员从不搜索;它从虚拟地址准确地知道如何遍历页表;但是如上面的平面页表所示,每次读取可能会有一些延迟,因此使用n级页表读取内存位置将需要(n * 100 + n *时钟延迟)+ 100。
内存读取操作看起来像这样:
Clock _______________|----------|__________|----------|__________
AddressValid _______/--------------\________
Address ..........AAAAAAAAAAAAAAAAAAAA]........
DataValid _______________________________/-------------\________
Data .................................DDDDDDDDDDDDDDDDDDD.......
因此,要去除的点是:仅在时钟沿(上升或下降)上对信号线进行采样。在设置AddressValid信号之前,可以使该地址可用。并在时钟上升之前将AddressValid信号设置为略。这样可以确保地址和信号在采样之前有时间变得稳定。
当时钟下降时,AddressValid信号被删除。
存储设备在时钟上升沿检测到AddressValid,因此对Address值进行采样。它获取内存,使其可用,然后在时钟上升沿之前设置DataValid信号。
[时钟下降时,存储设备将删除DataValid信号。
在时钟上升沿,
代理
检测到DataValid,因此对数据值进行采样。读取操作现已完成。注意,这是1976年左右的存储电路的操作。现代的存储电路花哨得多,但本质上是相同的。