T44 TLB Cache 混合的虚拟存储

T43_TLB_Cache_混合组相联结构

T43 TLB Cache 混合组相联结构

  • 虚拟地址
    • 虚页号: TLB 不关心页内偏移,只需根据组号 - 标记找到页表项,判断是否有效,并返回页框号即可
      • TLB Tag:组相联的 Tag 字段
      • TLB 索引:组相联的组号, 若共有 组,则需要
    • 页内偏移
  • 物理地址: 两种分法,不一定是位对齐的。
    • 按页分:页框号 + 页内偏移
    • 按 cache 数据块分:cache Tag + cache 组号 + 块内偏移
      • Cache 组号:若共有 组,则需要
      • 块内偏移:若每块有 字节,则需要
  • 根据虚拟地址找到对应的物理地址的过程
    • 找到物理地址
      1. 根据虚拟地址的TLB 索引找到对应的组
      2. 在该组内比较TLB Tag,找到对应的页表项
      3. 判断页表项是否有效,若有效则取出页框号
      4. 页框号页内偏移组合成物理地址
    • 根据物理地址访问 Cache
      1. 根据物理地址的Cache 组号找到对应的组
      2. 在该组内比较Cache Tag,找到对应的数据块
      3. 判断数据块是否有效,若有效则取出数据
    • 返回数据块中块内偏移对应的数据
Link to original

  • 虚拟地址访存
    • TLB 查找:首先在 TLB 中查找虚拟页号,若命中则直接获取对应的物理页框号。
      • 页表查找:若 TLB 未命中,则访问页表获取物理页框号,并将该映射加载到 TLB 中以加速后续访问。
    • 拼接物理地址:将物理页框号与页内偏移拼接,得到完整的物理地址。
    • Cache 查找:使用物理地址在 Cache 中查找数据,若命中则直接返回数据。
      • 主存访问:若 Cache 未命中,则访问主存获取数据,并将该数据加载到 Cache 中以加速后续访问。
    • 返回数据:将数据返回给 CPU。