浅谈快表

您所在的位置:网站首页 内容页的作用 浅谈快表

浅谈快表

2023-08-24 20:09| 来源: 网络整理| 查看: 265

文章目录 一、快表是什么二、快表参与下的虚拟地址转换成物理地址的流程三、快表与页表的映射方式四、汇编指令 invlpg五、参考资料

一、快表是什么

快表是一种高速缓冲存储器,是用来存放页表项。

在没有快表的情况下,一个虚拟地址要转成一个物理地址至少需要两次访问物理内存,第一次是查询内存中的页表,第二次是访问物理页框。如果有暂存着目标页表项的快表,则通过快表访问页表会比在内存中访问页表快很多,有利于缩短从一个虚拟地址转换成一个物理地址的过程的时间。

二、快表参与下的虚拟地址转换成物理地址的流程 第一步,根据虚拟地址推算出目标页表项的索引,查询快表。若目标页表项在快表里,则结合虚拟地址的低若干位推算出最终物理地址。若目标页表项不在快表里,则访问内存中的目标页表项,结合虚拟地址的低若干位推算出最终物理地址,并把该页表项写进快表。当快表被写满又有新的页表项要写进来时,则按照一定的策略擦除快表中的一个旧页表项。 三、快表与页表的映射方式

那问题就来了,CPU 如何知道目标页表项在不在快表里?在的话,是快表里的第几项?这就涉及到页表项与快表项的映射关系了。

页表项和快表项有三种映射方法,一是全相连,二是直接匹配,三是组相连。

全相连:一个快表项可以存放任意虚拟地址对应的页表项。优点是快表空间利用率高,缺点是每次查询页表项都要遍历快表每一项。

直接匹配:通过对每一个虚拟页号进行模运算得到其在快表中的索引号,但冲突率较高。

组相连:将快表划分为若干个组,给每个组按顺序编号。通过对每一个虚拟页号进行模运算得到其在快表中的组号,然后在组内进行遍历查得目的页表项。如果每一组中有 n 个页表项,则称该方法为 n 路组相连。

四、汇编指令 invlpg

用法:invlpg

作用:让快表中 vm 对应的页表项失效。

五、参考资料

《TLB的作用及工作原理》 博客园用户 AlanTu 著

《快表(页表缓冲)》 百度百科



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3