摘 要:主要介绍了一款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所示。
在概念上,每次访问都必须通过查找存储器的页表进行地址转换,所以,为了提高性能,采用了片上TLB来缓存一部分常用的PTE,以此减少大部分访问的时间。因此,地址转换的步将会是TLB查找。如果可以找到需要的PTE,就不需查找页表。
页表采用了可变长的数据结构,定义了虚拟页号与物理页号的映射关系。页表包含有许多页表项组(PTEG),1个PTEG有8个8 B的PTE,因此,每个PTEG是64 B长。PTEG地址是页表搜索操作的起点。对于一个给定的PTE,我们定义他可能存放在2个PTEG中16个可能位置的任意一个。
页表搜索操作定义为在PTEG和第二PTEG中查找PTE。当页表搜索操作开始时,用虚拟 地址执行散列函数,然后散列函数的输出与SDR1寄存器(由操作系统编程)的位连接产生PTEG的物理地址。接着一个接一个地查找PTEG的PTE,看是否命中。若未命中,则执行第二散列函数以产生第二PTEG地址,再次进行页表搜索。
图6是TLB与虚拟地址的比较电路。用了2个36 b的动态比较器,每个作为36个2 输入动态异或门的输入,从而实现32 b或非功能。图示为其中1 b。只有当2个RAM阵列的输出完全相等,CLK为高电平时,比较电路会输出命中信号。
3结语
这种设计方案已在该微处理器上实施,并成功地通过测试。整个设计采用自顶向下的设计方法。前期先用仿真工具调试电路,进行功能测试,然后综合得到满足要求的电路结构,在布局布线工具上生成具体的电路,进行后仿真。在整个CPU的设计过程中,存储器的管理非常重要,访存是CPU速度的瓶颈,所以如何设计好MMU很重要。在该系统存储器的管理实现中,参考了很多类似结构,进行了几套方案的比较,才满足设计的要求。
请登陆: 维库电子市场网(www.dzsc.com) 浏览更多信息
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。