记录王道操作系统P211地址翻译题目
题目:1.有一个tlb与一个data cache
2.存储器以字节为编址单位
3.虚拟地址14位
4.物理地址12位
5.页面大小64B
6.tlb为四路组相联,共有16个条目
7.data cache是物理寻址,直接映射的,行大小为4B,共有16组
问题:写出访问0x03d4,0x00f1和0x0229的过程。
分析题目中的信息需要具备的知识点有
1.tlb和data cache 之间的关系,tlb和cache各自的地址结构形式。
2.cache映射方式。
3.基本分页存储管理使用tlb后逻辑地址转化物理地址变换过程。
若:tlb在cpu和cache之间,则先访问tlb,若tlb介于cache和memory之间,则先访问cache.
这里说明了cache是物理寻址的,所以先经过tlb将逻辑地址转化为物理地址,再通过cache物理寻址找到需要的地址。
tlb 虚拟地址格式 页号+页内偏移
cache 直接映射方式的物理地址对应格式 cache页号 +页内偏移
页面大小是64B,得出页内偏移是6位,对应于虚拟地址和物理地址的页内偏移位数。
tlb四路组相联,共有16个条目,意思是四个维一组,则共有4组,用二进制表示选择哪一组,例如(00,01,10,11),对应2位表示组,位于tlb中页号的低两位,页号剩下6位作为tlb标记。
cache分为多个组,每个组分为多个行,主存向cache迁移数据是以行 单位的,既然以行为单位,则需要行号把,行大小为4B,对应2位代表一行,对应于cache页内偏移低两位。共有16组,需要4位代表哪一组,对应cache页内偏移剩下的4位。
至此,还需掌握使用tlb之后逻辑地址到物理地址之间的转化过程。先从tlb中查找(不命中)后去页表查找,页表在主存中则可找到对应的物理页号,物理块号拼接上页内地址即是物理地址了。若不在,发生缺页中断。
找到物理地址之后去cache中查找,若在 ,得到内容,不在去主存中查找。