Memory management 分页和TLB操作系统

Memory management 分页和TLB操作系统,memory-management,virtual-memory,tlb,Memory Management,Virtual Memory,Tlb,在我的操作系统课上,我真的被这个问题困住了,我不希望有人只是给我答案,如果有人能告诉我如何解决这个问题 示例问题: 该系统使用简单的分页和TLB 每次内存访问需要80ns TLB访问需要10ns TLB命中率为80% 计算出TLB的实际加速比 注意:我更改了所需访问的内存,而TLB访问需要部分问题,因为正如我所说的,我不想要答案,只需要一种解决方法。如果虚拟地址转换缓存在TLB中,我们只需要在TLB中查找一次,就可以得到物理地址,我们就完成了。有趣的是,如果我们需要进行页表漫游。仔细考虑一下

在我的操作系统课上,我真的被这个问题困住了,我不希望有人只是给我答案,如果有人能告诉我如何解决这个问题

示例问题:

该系统使用简单的分页和TLB

  • 每次内存访问需要80ns

  • TLB访问需要10ns

  • TLB命中率为80%

计算出TLB的实际加速比


注意:我更改了所需访问的内存,而TLB访问需要部分问题,因为正如我所说的,我不想要答案,只需要一种解决方法。

如果虚拟地址转换缓存在TLB中,我们只需要在TLB中查找一次,就可以得到物理地址,我们就完成了。有趣的是,如果我们需要进行页表漫游。仔细考虑一下,如果系统在TLB中找不到地址,它必须做什么(它已经做了TLB查找)。内存访问需要80纳秒,但实际获取物理地址需要多少纳秒?几乎每个分页体系结构都遵循这样的模式:页表存储在内存中,只有入口点,即指向第一个页表(根)的基的地址在寄存器中


如果您有足够的时间,您可以通过将其与TLB访问时间进行比较来计算加速。

在TLB上,访问时间2ns和在主内存中访问该页所需的20ns所需的时间达到80%,因此一部分是 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

80%的时间需要10ns,20%的时间需要80ns?计算出每一次考试的平均时间TLB@James太棒了,谢谢,我已经看到了示例答案,例如:-命中率=80%,TLB访问时间=2 ns,内存访问=20 ns。80%*22纳秒+20%*42纳秒=26纳秒我不明白他们从哪里得到42纳秒的,非常感谢,但我想知道如何解决,我看到了一些示例答案,例如:-问题:-命中率=80%,TLB访问时间=2纳秒,内存访问=20纳秒。回答:-80%*22 ns+20%*42 ns=26 ns我不明白他们从哪里得到42我假设42由1个TLB查找(2ns)、1个页表内存查找(20ns)和一个页表遍历找到的物理地址内存查找(20ns)组成。