快表

一、快表

快表, 又称联想寄存器(TLB, translation lookaside buffer ) , 是一种访问速度比内存快很多的高速缓存(TLB不是内存! ) , 用来存放最近访问的页表项的副本, 可以加速地址变换的速度。与此对应, 内存中的页表常称为慢表。

二、引入快表后地址的变化过程

① CPU给出逻辑地址, 由某个硬件算得页号、 页内偏移量, 将页号与快表中的所有页号进行比较。

② 如果找到匹配的页号, 说明要访问的页表项(存放页号与页框号)在快表中有副本, 则直接从中取出该页对应的内存块号, 再将内存块号与页内偏移量拼接形成物理地址, 最后, 访问该物理地址对应的内存单元。 因此,若快表命中, 则访问某个逻辑地址仅需一次访存即可。

③ 如果没有找到匹配的页号, 则需要访问内存中的页表, 找到对应页表项, 得到页面存放的内存块号, 再将内存块号(页框号)与页内偏移量拼接形成物理地址, 最后, 访问该物理地址对应的内存单元。 因此,若快表未命中, 则访问某个逻辑地址需要两次访存(注意: 在找到页表项后, 应同时将其存入快表,以便后面可能的再次访问。 但若快表已满, 则必须按照一定的算法对旧的页表项进行替换)由于查询快表的速度比查询页表的速度快很多, 因此只要快表命中, 就可以节省很多时间。因为局部性原理, 一般来说快表的命中率可以达到 90% 以上。

猜你喜欢

转载自blog.csdn.net/qq_45100361/article/details/113803388