1. MMU main functions
- 控制访问主内存中的translation table的translation table walk hardware.
- 转换虚拟地址(VA)到物理地址(PA)
- 通过保存在translation table中的一组虚拟到物理地址映射和内存属性,提供细粒度的内存系统控制
CA55支持40-bit物理地址范围,允许1TB物理寻址。
2. AArch32 vs. AArch64
3. TLB
TLB全称是 Translation Lookaside Buffer,翻译有多种,比如转译后备缓冲区,页表缓冲,快表等。
它其实就是一块cache,缓存的是最近使用的页表,加快地址翻译(即从虚拟地址查找到对应物理地址)的速度,提高系统性能。
TLB flush操作 中有个很好的例子来说明TLB的作用:
我们来仔细看看程序中的数据访问指令的执行过程,这个过程可以分成如下几个步骤:
(1)将PC中的虚拟地址翻译成物理地址
(2)从memory中获取数据访问指令(假设该指令需要访问地址x)
(3)将虚拟地址x翻译成物理地址y
(4)从location y的memory中获取具体的数据
instruction cache解决了step (2)的性能问题,data cache解决了step (4)中的性能问题,当然,复杂的系统会设立了各个level的cache用来缓存main memory中的数据,因此,实际上unified cache同时可以加快step (2)和(4)的速度。
Anyway,这只是解决了部分的问题,IC设计工程师怎么会忽略step (1)和step (3)呢,这也就是TLB的由来。如果CPU core发起的地址翻译过程能够在 TLB(translation cache)中命中(cache hit),那么CPU不