0

下面是一个操作系统(Gate 2003 OS)的MMU的描述:

处理器使用 2 级页表进行虚拟到物理地址的转换。两个级别的页表都存储在主存储器中。虚拟地址和物理地址都是 32 位宽。存储器是字节可寻址的。对于虚拟地址到物理地址的转换,虚拟地址的 10 个最高有效位用作第一级页表的索引,而接下来的 10 位用作第二级页表的索引。虚拟地址的 12 个最低有效位用作页面内的偏移量。假设两级页表中的页表项都是 4 个字节宽。此外,处理器具有翻译后备缓冲区(TLB),命中率高达 96%。TLB 缓存最近使用的虚拟页号和相应的物理页号。该处理器还有一个物理寻址的高速缓存,命中率为 90%。主存访问时间为10ns,缓存访问时间为1ns,TLB访问时间也是1ns。

问题是:

命中率 90% 的缓存和命中率 96% 的 TLB 有什么关系?操作系统首先检查哪里:数据还是指令?

4

4 回答 4

3

缓存是最重要的,未缓存的内容包含在 TLB 中。因此访问时间为 = Cache Hit + Cache Miss(TLB Hit + TLB miss)。

于 2014-02-20T22:41:12.200 回答
0

缓存 - 保留最近使用的页框。存储实际的页框。

TLB - 保留最近使用的页框的映射。保持映射(虚拟到物理)。

从 TLB 或页表中,OS 知道请求的页框是否在缓存中。

于 2013-03-11T10:57:13.737 回答
0

首先,检查数据的不是操作系统,而是处理器。现在,高速缓存可以被虚拟寻址或物理寻址。在前一种情况下,它在 TLB 之前,在后一种情况下,它在 TLB 之后(TLB 的行为类似于页表的缓存,用于将虚拟地址转换为物理地址)。在这里,在问题中明确提到了“物理寻址缓存”。所以,TLB 应该在缓存之前。

于 2014-02-27T21:15:12.833 回答
0

TLB HIT 时间= .96(Ttlb)+(.9*Tcache+.1*Tmem)

TLB MISS 时间 =.04(Ttlb+3*(.9*Tcache+.1*Tmem))

总计 =TLB HIT 时间 + TLB MISS 时间 =3ns 大约

于 2014-06-26T13:27:46.457 回答