一、知识总览
二、什么是快表
三、引入快表后,地址的变换过程
1.CPU给出逻辑地址,由某个硬件算得页号、页内偏移量,将页号与快表中所有页号进行比较。
2.如果找到匹配的页号,说明要访问的页表项在快表中有副本,则直接从中取出该页对应的内存块号,再将内存块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。因此,若快表命中,则访问某个逻辑地址仅仅需要一次访存即可。
3.如果没有找到匹配的页号,则需要访问内存中的页表,找到对应页表项,得到页面存放的内存块号,再将内存块号与页内块号与页内偏移量拼接形成物理地址,最后,访问该物理地址对应的内存单元。因此,若快表未命中,则访问某个逻辑地址需要两次访存。
注意:在找到页表项后,应同时将其存入快表,以便后面可能的再次访问。但若快表已满,则必须按照一定的算法对旧的页表项进行替换。
四、局部性原理
五、总结
注意:TLB和普通Cache的区别-----TLB中只有页表项的副本,而普通的Cache中可能会有其他各种数据的副本!!!!