存储空间管理单元(MMU)
发布时间:2008/12/22 0:00:00 访问次数:1067
mmu存储器系统的结构允许对存储器系统的精细控制,而mmu主要由arm中协处理器coprocessor15 (cp15)控制。
协处理器主要控制:片内的mmu、指令和数据缓存(idc)、写缓冲(write buffer)。
mmu大部分的控制细节由存储器中的转换表提供,这些表的入口定义了从1kb到1mb的各种存储器区域的属性。这些属性介绍如下。
1.虚拟地址到物理地址映射
arm处理器产生的地址称为虚拟地址,mmu允许把这个虚拟地址映射到一个不同的物理地址上,这个物理地址表示了被访问的主存储器的位置。它允许用很多方式管理物理存储器的位置,例如:它可以用具有潜在冲突的地址映射为不同的进程分配存储器,或允许具有不连续地址的应用把它映射到连续的地址空间。mmu有两层页表(two-level pagetable)用来进行虚拟地址向物理地址转换,cp15定义16个寄存器,只有mrc和mcr指令才能对它们操作。
物理地址映射主要用于片选地址cs的选取,mmu映射需要参考这个物理地址。表给出了arm7物理地址映射表。
表 arm7物理地址映射表
说明:如果使用了快速上下文切换扩展(fast context switch extension),则虚拟地址应该是修改过的虚拟地址(modified virtual address)。
2.存储器访问权限(permlsslons)
这些控制包括对存储器区域的不可访问权限、只读权限、读写权限。当访问不可访问权限的存储器时,会有一个存储器异常通知arm处理器。允许权限的级别也受程序是运行在用户状态还是特权状态影响,还与是否使用了域有关。
3.高速缓存和缓冲位
系统控制协处理器的寄存器允许对系统进行高级控制,如转换表的位置。它们也用来为arm提供内存异常的状态信息。
查找整个转换表的过程称作转换表遍历,它由硬件进行,并需要大量的执行时间(至少一个存储器访问,通常是两个)。为减少存储器访问的平均消耗,转换表遍历结果被高速缓存在一个或多个叫“translation lookaside buffers(tlbs)”的结构中。通常在arm中每个内存接口都有一个tlb。如果系统有高速缓存,高速缓存的数量通常也是由同样方法确定的。所以在高速缓存的系统中,每个高速缓存都对应一个tlb。当存储器中的转换表被改变或选中了不同的转换表(通过写cp15寄存器)时,先前高速缓存的转换表遍历结果将不再有效。mmu结构提供了刷新tlb的操作。
mmu结构也允许特定的转换表遍历结果被锁定在一个tlb中,这就保证了对相关存储器区域的访问绝不会导致转换表遍历,这也对那些把指令和数据锁定在高速缓存中的实时代码有相同的好处。
图 说明了arm高速缓存系统结构。
图 高速缓存的mmu存储器系统
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
mmu存储器系统的结构允许对存储器系统的精细控制,而mmu主要由arm中协处理器coprocessor15 (cp15)控制。
协处理器主要控制:片内的mmu、指令和数据缓存(idc)、写缓冲(write buffer)。
mmu大部分的控制细节由存储器中的转换表提供,这些表的入口定义了从1kb到1mb的各种存储器区域的属性。这些属性介绍如下。
1.虚拟地址到物理地址映射
arm处理器产生的地址称为虚拟地址,mmu允许把这个虚拟地址映射到一个不同的物理地址上,这个物理地址表示了被访问的主存储器的位置。它允许用很多方式管理物理存储器的位置,例如:它可以用具有潜在冲突的地址映射为不同的进程分配存储器,或允许具有不连续地址的应用把它映射到连续的地址空间。mmu有两层页表(two-level pagetable)用来进行虚拟地址向物理地址转换,cp15定义16个寄存器,只有mrc和mcr指令才能对它们操作。
物理地址映射主要用于片选地址cs的选取,mmu映射需要参考这个物理地址。表给出了arm7物理地址映射表。
表 arm7物理地址映射表
说明:如果使用了快速上下文切换扩展(fast context switch extension),则虚拟地址应该是修改过的虚拟地址(modified virtual address)。
2.存储器访问权限(permlsslons)
这些控制包括对存储器区域的不可访问权限、只读权限、读写权限。当访问不可访问权限的存储器时,会有一个存储器异常通知arm处理器。允许权限的级别也受程序是运行在用户状态还是特权状态影响,还与是否使用了域有关。
3.高速缓存和缓冲位
系统控制协处理器的寄存器允许对系统进行高级控制,如转换表的位置。它们也用来为arm提供内存异常的状态信息。
查找整个转换表的过程称作转换表遍历,它由硬件进行,并需要大量的执行时间(至少一个存储器访问,通常是两个)。为减少存储器访问的平均消耗,转换表遍历结果被高速缓存在一个或多个叫“translation lookaside buffers(tlbs)”的结构中。通常在arm中每个内存接口都有一个tlb。如果系统有高速缓存,高速缓存的数量通常也是由同样方法确定的。所以在高速缓存的系统中,每个高速缓存都对应一个tlb。当存储器中的转换表被改变或选中了不同的转换表(通过写cp15寄存器)时,先前高速缓存的转换表遍历结果将不再有效。mmu结构提供了刷新tlb的操作。
mmu结构也允许特定的转换表遍历结果被锁定在一个tlb中,这就保证了对相关存储器区域的访问绝不会导致转换表遍历,这也对那些把指令和数据锁定在高速缓存中的实时代码有相同的好处。
图 说明了arm高速缓存系统结构。
图 高速缓存的mmu存储器系统
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
上一篇:汇编语言程序中常用的符号
上一篇:等时传输的数据容量与传输速度