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