浅谈快表 |
您所在的位置:网站首页 › 内容页的作用 › 浅谈快表 |
文章目录
一、快表是什么二、快表参与下的虚拟地址转换成物理地址的流程三、快表与页表的映射方式四、汇编指令 invlpg五、参考资料
一、快表是什么
快表是一种高速缓冲存储器,是用来存放页表项。 在没有快表的情况下,一个虚拟地址要转成一个物理地址至少需要两次访问物理内存,第一次是查询内存中的页表,第二次是访问物理页框。如果有暂存着目标页表项的快表,则通过快表访问页表会比在内存中访问页表快很多,有利于缩短从一个虚拟地址转换成一个物理地址的过程的时间。 二、快表参与下的虚拟地址转换成物理地址的流程 第一步,根据虚拟地址推算出目标页表项的索引,查询快表。若目标页表项在快表里,则结合虚拟地址的低若干位推算出最终物理地址。若目标页表项不在快表里,则访问内存中的目标页表项,结合虚拟地址的低若干位推算出最终物理地址,并把该页表项写进快表。当快表被写满又有新的页表项要写进来时,则按照一定的策略擦除快表中的一个旧页表项。 三、快表与页表的映射方式那问题就来了,CPU 如何知道目标页表项在不在快表里?在的话,是快表里的第几项?这就涉及到页表项与快表项的映射关系了。 页表项和快表项有三种映射方法,一是全相连,二是直接匹配,三是组相连。 全相连:一个快表项可以存放任意虚拟地址对应的页表项。优点是快表空间利用率高,缺点是每次查询页表项都要遍历快表每一项。 直接匹配:通过对每一个虚拟页号进行模运算得到其在快表中的索引号,但冲突率较高。 组相连:将快表划分为若干个组,给每个组按顺序编号。通过对每一个虚拟页号进行模运算得到其在快表中的组号,然后在组内进行遍历查得目的页表项。如果每一组中有 n 个页表项,则称该方法为 n 路组相连。 四、汇编指令 invlpg用法:invlpg 作用:让快表中 vm 对应的页表项失效。 五、参考资料《TLB的作用及工作原理》 博客园用户 AlanTu 著 《快表(页表缓冲)》 百度百科 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |