存储器管理部件的设计实现
发布时间:2008/9/2 0:00:00 访问次数:431
摘 要:主要介绍了一款32 b的risc结构cpu的存储器管理部件的设计。在对存储器管理部件的原理,存在的必要性等方面进行介绍的基础上,对设计的存储器管理部件的结构,3种地址转换机制:实地址转换、块地址转换及段页式地址转换,以及部分单元电路等方面进行了详细的介绍。
随着处理器主频的不断升高,访问存储器的速度就越来越成为制约处理器性能提高的瓶颈。如何更加有效地管理好更多的存储空间成了急待解决的问题。本文是基于某32 b微处理器芯片研制而提出的,该cpu是一个高集成度的、深亚微米工艺制造的高速超标量微处理器。本文将介绍其存储器管理单元的地址变换机制的体系结构设计及电路实现。
1存储器管理部件概述
存储器管理部件(memory management unit,mmu)的主要任务是将由处理器发出的有效的是地址转换为存储器的物理地址。程序访问存储器使用的是有效地址,而处理器访问存储器使用物理地址[1]。其转换方式主要有实地址模式、块地址转换和段页式地址转换3种。在地址转换过程中,mmu把cpu发出的32 b有效地址转换成52 b虚拟地址,然后再转换成32 b物理地址。有效地址空间分为段(256 m)或块(128k ̄256 m)。段内再进一步细分为4 kb的页。对于每个块或页,由操作系统产生地址描述符(页表项pte或bat项);在块或页被访问时,mmu利用这些描述符产生物理地址、保护信息及其他控制信息,为了快速访问,还设计了tlb和bat寄存器。
图1是mmu的结构框图。有效地址的高20位ea0 ̄ea19转换成物理地址的pa0 ̄pa19,低12位ea 20 ̄ea31作为页内偏移量不转换。地址转换之后,mmu根据产生的32 b物理地址访问存储器子系统。
2地址转换机制
如图2所示。当机器状态寄存器msr[ir]=0或msr[dr]=0,采用实地址转换模式,即直接把有效地址当作物理地址去访问存储器;当有效地址范围比连续的物理存储器的单页(4 kb)大时,采用块地址转换(bat),这时msr[ir]=1和/或msr[dr]=1,匹配的bat项的优先级比任何段描述符都要高,完全忽略段描述符的信息;当msr[dr]=1或msr[ir]=1,且地址不由bat机制进行转换,当相应的段描述符的t=0时,选择段地址转换模式。
图3所示为块地址转换的bat阵列比较流程。块地址转换由bat阵列实现,bat阵列存有8个存 储器块的地址转换信息,bat阵列由操作系统维护,通过一组16个专用寄存器实现,每块由一对bat寄存器(batu,batl)组成,保存着块的有效地址和物理地址的对应关系。进行指令地址转换和数据地址转换各有4对bat寄存器。bat阵列采用了全相联结构,所以地址可以存放在任意一个bat[2]。另外,4个bat项的有效地址字段同时与访问的有效地址比较来检查是否匹配。每对bat寄存器定义了块的有效地址的起始地址、块的尺寸、物理地址空间相应的块的起始位置。如果一个有效地址在一对bat寄存器定义的范围内,其物理地址将由块的物理地址的起始地址加上低端的有效地址偏移量组成。
下面的方程式定义了对于一个特定的访问,bat项是否有效:
bat项有效=(vs & msr[pr])|(vp & msr[pr])
对于给定的访问,若bat项无效,将不会进行地址转换。
bat寄存器(batu,batl)存放的是存储器块的有效地址与物理地址的映射关系。该映射包括用于与有效地址相比较的有效地址位、存储器/cache访问模式位、块保护位。块的尺寸和起始地址由物理块号和块尺寸的定义。对块内的物理存储器的访问流程如图4所示。
页地址转换使用段描述符(提供虚拟地址和保护信息)和页表项(即pte,提供物理地址和页保护信息)。段描述符由操作系统编程,为段提供虚拟id。另外,操作系统还在存储器中创建页表以提供虚拟地址(在pte)到(存储器页)物理地址的映射关系。有效地址到物理地址的转换如图5所示。
在概念上,每次访问都必须通过查找存储器的页表进行地址转换,所以,为了提
摘 要:主要介绍了一款32 b的risc结构cpu的存储器管理部件的设计。在对存储器管理部件的原理,存在的必要性等方面进行介绍的基础上,对设计的存储器管理部件的结构,3种地址转换机制:实地址转换、块地址转换及段页式地址转换,以及部分单元电路等方面进行了详细的介绍。
随着处理器主频的不断升高,访问存储器的速度就越来越成为制约处理器性能提高的瓶颈。如何更加有效地管理好更多的存储空间成了急待解决的问题。本文是基于某32 b微处理器芯片研制而提出的,该cpu是一个高集成度的、深亚微米工艺制造的高速超标量微处理器。本文将介绍其存储器管理单元的地址变换机制的体系结构设计及电路实现。
1存储器管理部件概述
存储器管理部件(memory management unit,mmu)的主要任务是将由处理器发出的有效的是地址转换为存储器的物理地址。程序访问存储器使用的是有效地址,而处理器访问存储器使用物理地址[1]。其转换方式主要有实地址模式、块地址转换和段页式地址转换3种。在地址转换过程中,mmu把cpu发出的32 b有效地址转换成52 b虚拟地址,然后再转换成32 b物理地址。有效地址空间分为段(256 m)或块(128k ̄256 m)。段内再进一步细分为4 kb的页。对于每个块或页,由操作系统产生地址描述符(页表项pte或bat项);在块或页被访问时,mmu利用这些描述符产生物理地址、保护信息及其他控制信息,为了快速访问,还设计了tlb和bat寄存器。
图1是mmu的结构框图。有效地址的高20位ea0 ̄ea19转换成物理地址的pa0 ̄pa19,低12位ea 20 ̄ea31作为页内偏移量不转换。地址转换之后,mmu根据产生的32 b物理地址访问存储器子系统。
2地址转换机制
如图2所示。当机器状态寄存器msr[ir]=0或msr[dr]=0,采用实地址转换模式,即直接把有效地址当作物理地址去访问存储器;当有效地址范围比连续的物理存储器的单页(4 kb)大时,采用块地址转换(bat),这时msr[ir]=1和/或msr[dr]=1,匹配的bat项的优先级比任何段描述符都要高,完全忽略段描述符的信息;当msr[dr]=1或msr[ir]=1,且地址不由bat机制进行转换,当相应的段描述符的t=0时,选择段地址转换模式。
图3所示为块地址转换的bat阵列比较流程。块地址转换由bat阵列实现,bat阵列存有8个存 储器块的地址转换信息,bat阵列由操作系统维护,通过一组16个专用寄存器实现,每块由一对bat寄存器(batu,batl)组成,保存着块的有效地址和物理地址的对应关系。进行指令地址转换和数据地址转换各有4对bat寄存器。bat阵列采用了全相联结构,所以地址可以存放在任意一个bat[2]。另外,4个bat项的有效地址字段同时与访问的有效地址比较来检查是否匹配。每对bat寄存器定义了块的有效地址的起始地址、块的尺寸、物理地址空间相应的块的起始位置。如果一个有效地址在一对bat寄存器定义的范围内,其物理地址将由块的物理地址的起始地址加上低端的有效地址偏移量组成。
下面的方程式定义了对于一个特定的访问,bat项是否有效:
bat项有效=(vs & msr[pr])|(vp & msr[pr])
对于给定的访问,若bat项无效,将不会进行地址转换。
bat寄存器(batu,batl)存放的是存储器块的有效地址与物理地址的映射关系。该映射包括用于与有效地址相比较的有效地址位、存储器/cache访问模式位、块保护位。块的尺寸和起始地址由物理块号和块尺寸的定义。对块内的物理存储器的访问流程如图4所示。
页地址转换使用段描述符(提供虚拟地址和保护信息)和页表项(即pte,提供物理地址和页保护信息)。段描述符由操作系统编程,为段提供虚拟id。另外,操作系统还在存储器中创建页表以提供虚拟地址(在pte)到(存储器页)物理地址的映射关系。有效地址到物理地址的转换如图5所示。
在概念上,每次访问都必须通过查找存储器的页表进行地址转换,所以,为了提
上一篇:扩展数字家庭的存储容量