【问题标题】:Relation between cache and TLB hit ratios缓存和TLB命中率的关系
【发布时间】:2013-01-17 14:28:27
【问题描述】:

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

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

问题是:

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

【问题讨论】:

  • 我认为在stackoverflow中发布作业问题不是一个好主意

标签: caching operating-system tlb memory-access


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        从、TLB 或页表,操作系统知道请求的页框是否在缓存中。

        【讨论】:

          猜你喜欢
          • 2014-10-22
          • 2012-05-13
          • 2017-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-13
          • 1970-01-01
          相关资源
          最近更新 更多