TLB 是 translation lookaside buffer 的简称。首先,我们知道 MMU 的作用是把虚拟地址转换成物理地址。

虚拟地址和物理地址的映射关系存储在页表中,而现在页表又是分级的。
64 位系统一般都是 3~5 级。
常见的配置是 4 级页表,就以 4 级页表为例说明。
分别是 PGD、PUD、PMD、PTE 四级页表。
在硬件上会有一个叫做页表基地址寄存器,它存储 PGD 页表的首地址。

MMU 就是根据页表基地址寄存器从 PGD 页表一路查到 PTE,最终找到物理地址(PTE页表中存储物理地址)。
这就像在地图上显示你的家在哪一样,我为了找到你家的地址,先确定你是中国,再确定你是某个省,继续往下某个市,最后找到你家是一样的原理。一级一级找下去。(这个比喻真的不错)
这个过程你也看到了,非常繁琐。如果第一次查到你家的具体位置,我如果记下来你的姓名和你家的地址。下次查找时,是不是只需要跟我说你的姓名是什么,我就直接能够告诉你地址,而不需要一级一级查找。
四级页表查找过程需要四次内存访问。延时可想而知,非常影响性能。页表查找过程的示例如下图所示。以后有机会详细展开,这里了解下即可。

-
寄存器
+关注
关注
31文章
5589浏览量
129060 -
内存
+关注
关注
9文章
3173浏览量
76115 -
硬件
+关注
关注
11文章
3555浏览量
68744 -
MMU
+关注
关注
0文章
92浏览量
19109
发布评论请先 登录
详解TLB的作用及工作原理
请问AM335 u-boot 中的MMU,gd->arch.tlb_addr是在哪里初始化的?
labview2015调用tlb库错误信息:LabVIEW: 输入为空引用句柄或之前已删除的引用句柄。
FIDEMAILATION中的TLB异常
以Freescale的E500内核为例简单介绍TLB Entry基本组成结构
看一条关于TLB维护的指令
P2020 TLB0/TLB1失效的原因?怎么解决?
嵌入式处理器的TLB电路设计
CPU场景下的TLB相关细节

为什么要有TLB
评论