T44 TLB Cache 混合的虚拟存储
T43_TLB_Cache_混合组相联结构
T43 TLB Cache 混合组相联结构
- 虚拟地址
- 虚页号: TLB 不关心页内偏移,只需根据组号 - 标记找到页表项,判断是否有效,并返回页框号即可
- TLB Tag:组相联的 Tag 字段
- TLB 索引:组相联的组号, 若共有 m 组,则需要 log2m 位
- 页内偏移
- 物理地址: 两种分法,不一定是位对齐的。
- 按页分:页框号 + 页内偏移
- 按 cache 数据块分:cache Tag + cache 组号 + 块内偏移
- Cache 组号:若共有 n 组,则需要 log2n 位
- 块内偏移:若每块有 b 字节,则需要 log2b 位
- 根据虚拟地址找到对应的物理地址的过程
- 找到物理地址
- 根据虚拟地址的TLB 索引找到对应的组
- 在该组内比较TLB Tag,找到对应的页表项
- 判断页表项是否有效,若有效则取出页框号
- 将页框号与页内偏移组合成物理地址
- 根据物理地址访问 Cache
- 根据物理地址的Cache 组号找到对应的组
- 在该组内比较Cache Tag,找到对应的数据块
- 判断数据块是否有效,若有效则取出数据
- 返回数据块中块内偏移对应的数据
Link to original
- 虚拟地址访存
- TLB 查找:首先在 TLB 中查找虚拟页号,若命中则直接获取对应的物理页框号。
- 页表查找:若 TLB 未命中,则访问页表获取物理页框号,并将该映射加载到 TLB 中以加速后续访问。
- 拼接物理地址:将物理页框号与页内偏移拼接,得到完整的物理地址。
- Cache 查找:使用物理地址在 Cache 中查找数据,若命中则直接返回数据。
- 主存访问:若 Cache 未命中,则访问主存获取数据,并将该数据加载到 Cache 中以加速后续访问。
- 返回数据:将数据返回给 CPU。