TLB - Cache - Page命中关系小结
- 前置知识——CPU根据虚地址访存流程
①访问虚地址读取虚页号 → 访问基址寄存器读取页表起始地址 → 拼接起始地址和虚页号得到页表地址 → 依据页表地址访问对应的页表项 → 根据装入位判断是否命中
②命中 → 对应的实页号 + 页内地址 = 实地址 → 执行Cache的映射操作
③未命中 → 利用 I/O 系统将页调入主存 → 执行第②步
- Cache未命中,与TLB、Page是否命中无关
- Cache命中,Page必然命中,TLB不一定命中
- TLB命中,Page必然命中
- Page命中,TLB不一定命中
- Page不命中,Cache不命中
- 分析助记
- TLB在Cache中,Page在主存中,TLB是Cache一个很小的副本
- Cache命中 :意味着虚拟存储器访存流程进入了最后一步——执行Cache的映射操作,则所在页面必然已调入主存 → Page必然命中,而TLB是位于Cache内的Page小副本,故不一定命中
- Cache未命中:意味着Cache内没有与CPU请求页面相同的页,无法直接进行映射操作——但虚存访存流程前几步(查找页表地址、访问页表项、判断装入位)并不受影响 → 与TLB、Page无关
- TLB是Page的子集,根据数学集合关系可知:TLB命中是Page命中的充分不必要条件
- Page命中:意味着访存流程进行到 执行Cache映射操作 一步,但之后Cache映射能否命中与Page无关
- Page未命中:Page位于主存,Page未命中意味着主存内没有对应的页,Cache自然无法执行 主存→Cache 的映射操作,故Cache不命中
- Page、Cache命中示意图(以直接映射和页式虚拟存储器为例)