对于我的操作系统课程,我真的坚持这个问题,我不希望别人给我答案,相反,如果有人能告诉我如何解决这个问题。
示例问题:
该系统使用简单的分页和TLB
每次内存访问需要80ns
TLB访问需要10ns
TLB命中率为80%。
因为TLB而计算出实际的加速时间?
注意:我更改了所需访问的内存,TLB访问需要部分问题,因为正如我所说,我不想要答案,只是一种解决方法。
答案 0 :(得分:1)
如果在TLB中缓存虚拟地址转换,我们只需要在TLB中进行一次查找,它将为我们提供物理地址,我们就完成了。有趣的是,如果我们需要进行页表行走。仔细考虑系统必须做什么,以防它在TLB中找不到地址(它已经不得不进行TLB查找)。内存访问需要80ns,但实际获得物理地址需要多少?几乎每个分页体系结构都遵循页表存储在内存中的模式,只有入口点,指向第一个页表(根)的基地的地址在寄存器中。
如果您有足够的时间通过将其与TLB访问时间进行比较来计算加速时间。
答案 1 :(得分:0)
在TLB上命中80%你需要访问时间2ns并访问主内存中的那个页面需要20ns因此一部分是 0.8×(2 + 20)
在TLB未命中,即(1-0.8)20%,因为你再次检查TLB所以需要2ns,当它是TLB未命中它将检查页面表但页面表的基地址进入主存储器所以它需要20ns和当它搜索到PT时,它将获得所需的帧并再次需要存储器访问时间来访问来自主存储器的数据,因此未命中计算 0.2×(2 + 20 + 20)
从上面2:
有效访问时间= 0.8×(2 + 20)+ 0.2×(2 + 20 + 20) = 26ns