首页 理论教育 操作系统实现之路PowerPCCPU内存管理机制解析

操作系统实现之路PowerPCCPU内存管理机制解析

时间:2023-10-21 理论教育 版权反馈
【摘要】:在嵌入式开发领域,Power PC、ARM等功耗相对较低的CPU应用得比较广泛,在此简单介绍一下Power PC的内存管理机制,作为对Intel CPU内存管理机制内容的一个补充。图5-14示意了PPCCPU的内存管理机制。图5-14 Power PC的内存转换机制在PPC的指令系统中,最初的地址叫做有效地址。在以页为基础的内存管理机制中,进一步把页组织成段,整个地址空间被分割成大小为256MB的16个段,分别对应16个段描述符。

操作系统实现之路PowerPCCPU内存管理机制解析

嵌入式开发领域,Power PC、ARM等功耗相对较低的CPU应用得比较广泛,在此简单介绍一下Power PC的内存管理机制,作为对Intel CPU内存管理机制内容的一个补充。

图5-14示意了PPC(Power PC)CPU的内存管理机制。

978-7-111-41444-5-Chapter05-17.jpg

图5-14 Power PC的内存转换机制

在PPC的指令系统中,最初的地址叫做有效地址。在32位CPU中,有效地址是32位的。有效地址与IA32内存管理机制中的线性地址类似,在PPC中所有编程层面涉及的地址,包括对指令和数据的寻址,都是以有效地址进行的。

PPC的实现,可以把内存分成4KB大小的页面,以分页机制进行管理;也可以把物理内存分成长度可变化(但最小长度不能低于128KB)的块(Block),以块为单位进行管理。在以页为基础的内存管理机制中,进一步把页组织成段,整个地址空间被分割成大小为256MB的16个段,分别对应16个段描述符。与IA32的一个不同点是PPC的段数量是固定的,整个系统就是16个。以块(Block)为基础的管理机制中,对每个块有一个BAT与之对应,系统中的BAT组成一个寄存器数组。进行内存寻址时,CPU会对一个虚拟地址同时进行BAT匹配和段匹配(以虚拟地址的高4比特索引一个段描述符),其中BAT优先级更高,即若虚拟地址匹配BAT成功,则对段的匹配将被忽略,否则使用段匹配结果进行寻址。(www.xing528.com)

下面重点介绍一下PPC的段页管理机制。CPU在寻址的过程中,根据虚拟地址的高4比特定位到一个段描述符之后,根据段描述符中的一个特殊的标志(T标志)来确定进一步的动作。若T标志为0,则进入分页机制的处理程序,根据段描述符以及虚拟地址的剩余比特形成一个虚拟地址(虚拟地址的长度是52bit),然后根据虚拟地址查找段表,进而获得物理地址;若T标志为1,则进入一种叫做Direct-Store的处理程序,这种处理程序是老式PPC CPU上的一种加快设备访问的机制,在新的PPC CPU中将会被淘汰,因此不必太关注。图5-15示意了PPC CPU根据虚拟地址获取物理地址的过程。

978-7-111-41444-5-Chapter05-18.jpg

图5-15 Power PC的段页管理机制

在查找段表的过程中,会把52bit的虚拟地址中的VPN(虚拟页面号,实际上是VPN字段中的一部分比特),通过一个特定的HASH算法,获得目标页表项在页表中的物理地址,进而分析页表项,从中获得物理地址。既然是HASH算法,就可能会出现冲突。在不冲突的情况下,一次就可以获得正确的页表项,若出现了冲突,则进一步采用冲突处理算法,依次比较冲突的目标项,从中选择匹配的一项。通过合理地设计页表组织结构和大小(由操作系统完成),可以大大提高命中率。

需要注意的是,与IA32 CPU一样,PPC CPU也有一种实地址模式(Real AddressMode)。在这种模式下,PPC的有效地址直接映射为物理地址,但与IA32的实地址模式不同的是,IA32的实地址模式是16位模式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈