×
嵌入式 > 嵌入式开发 > 详情

ARM核920T性能优化之MMU

发布时间:2020-07-31 发布时间:
|
一.虚存的工作原理

为了使任务有各自的虚拟存储映射,MMU硬件采用地址重定位(address relocation),即在地址访问主存之前,转换由处理器核输出的存储器地址。可认为在介于内核和主存间的MMU中有一个重定位寄存器,这样就能很容易理解这个转换过程。



当处理器核产生一个虚拟地址时,MMU取出这个虚拟地址的高位,并用重定位寄存器中的值来替换它,从而形成一个物理地址。虚拟地址的低位是一个偏移量,它转换成物理存储器的一个特定地址。一个重定位寄存器只能转换一块存储空间,这块存储空间的大小由虚拟地址的偏移量部分所占的位数所决定。这样的一块虚拟存储空间称为一页(page),而转换过程中所对应的那块物理存储空间称为一个页帧(page frame)。



ARMMMU临时存放转换数据的一组重定位寄存器实际上是一个由64个重定位寄存器组成的全相联cache。这个cache称为转换旁路缓冲器(TLB),TLB缓存最近被访问的页的转换数据。除了使用重定位寄存器外,MMU还使用主存中的表来存放描述系统中用到的虚拟存储器映射的数据,这些转换数据的表称为页表(page tables)。页表中的每个页表项PTE(Page Table Entry)包含关于虚拟页的以下信息:用于将虚拟页转换为物理页的物理基地址,分配给该页的访问权限,页的cache和写缓冲器配置。




通过上下文切换时激活不同的页表,使得执行有重叠虚拟地址的多个任务成为可能。MMU可以重定位一个任务的执行地址,而无需在物理存储器中移动这个任务。任务的物理存储空间只是简单地通过激活和不激活页表来映射到虚拟存储空间。当刚刚提到的地址转换发生时,cache可能包括无效的,从旧的页表映射来的虚拟数据。为了保证存储器数据的一致性,cache可能需清理和清除。TLB可能也需清除,因为它也可能缓存了旧的转换数据。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
智能化系统工程设计中的若干技术问题