TLB和CPU缓存
发布日期:2021-05-19 04:41:48 浏览次数:16 分类:原创文章

本文共 411 字,大约阅读时间需要 1 分钟。

TLB

如果每次应用程序访问一个线性地址都需要先解析(查PDT,PTT)那么效率十分低,为了提高执行效率CPU在CPU内部建立了一个TLB表,此表和寄存器一样访问速度极高。其会记录线性地址和物理地址之间的对应关系,这样以后当程序在访问此线性地址时就直接访问对应的物理地址了。

因为每一个进程都有对应的CR3寄存器,指向不同的页目录表或也目录指针表,当CR3变化时(进程切换)其对应的线性地址与物理地址的映射也变了。所以会将TLB刷新,但是对于高2GB的地址而言,其对应的TLB并不会刷新因为一般高2GB地址是不变的。高2GB对应的PDE或PTE的G位为1,表明其在CR3切换时并不会刷新TLB中对应的项。

INVLPG     //特权指令,可以清除TLB

cpu缓存

CPU缓存是建立 物理地址和内容之间的联系,所以当应用程序访问数据时可以先从TLB中得到对应线性地址的物理地址,再从CPU缓存中取出物理地址对应的内容。

上一篇:控制寄存器
下一篇:2-9-9-12分页机制(xp)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年05月21日 19时48分51秒