一.虚存的作业原理
为了使使命有各自的虚拟存储映射,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或许也需铲除,由于它也或许缓存了旧的转化数据。