今天分享一篇TLB的好文章,希望大家夯实基本功,让我们一起深入理解计算机系统。
TLB 是 translation lookaside buffer 的简称。首先,我们知道 MMU 的作用是把虚拟地址转换成物理地址。
MMU工作原理
虚拟地址和物理地址的映射关系存储在页表中,而现在页表又是分级的。64 位系统一般都是 3~5 级。常见的配置是 4 级页表,就以 4 级页表为例说明。分别是 PGD、PUD、PMD、PTE 四级页表。在硬件上会有一个叫做页表基地址寄存器,它存储 PGD 页表的首地址。
Linux分页机制
MMU 就是根据页表基地址寄存器从 PGD 页表一路查到 PTE,最终找到物理地址(PTE页表中存储物理地址)。这就像在地图上显示你的家在哪一样,我为了找到你家的地址,先确定你是中国,再确定你是某个省,继续往下某个市,最后找到你家是一样的原理。一级一级