几个基础知识
缩写:虚拟地址(Virtual Address,VA)、物理地址(Physucal Address,PA)
什么是mmu?答:MMU是Memory Management Unit(内存管理单元),作用是完成从虚拟地址到物理地址的映射,映射功能是依靠MMU中的页表完成的。
什么是TLB?答:TLB是转换检测缓冲区(Translation Lookaside Buffer),又被称为快表,通常位于MMU中。
为什么会出现TLB?答:因为访问内存时通过MMU中的多级页表进行映射速度太慢了,当CPU对一块内存进行频繁访问时,没必要总是查MMU,这就引出了TLB,他能完成一个小区域虚拟地址到物理地址的直接映射,他很快。
TLB和MMU是如何工作的?
当一个虚拟地址放入MMU进入转换时,同时通过从TLB快表和MMU中的页表查询对应的物理地址,如果从TLB找到了,那慢表咱们就不查了;如果从TLB中没找到,那就通过慢表查,查到了将物理地址更新到快表,这样下次再映射这块儿虚拟内存不就快了嘛。(这只是简单的理解,实际TLB分为硬件TLB或软件TLB,TLB可能在MMU中,也可能由操作系统实现)(TLB可以视作对页表的告诉缓存,所有有人说TLB是页表的cache)
什么是Cache?
cache 是一种小容量高速缓冲存储器,由快速的 SRAM 组成,直接制作在 CPU 芯片内,速度较快,几乎与 CPU 处于同一个量级。在 CPU 和主存之间设置 cache,总是把主存中被频繁访问的活跃程序块和数据块复制到 cache 中。
cache和MMU的关系?答:
参考文献:
https://zhuanlan.zhihu.com/p/596039345
仅作学习参考使用,谢谢