32位PowerPC构架通用寄存器分析及其总结二.doc
文本预览下载声明
32位PowerPC构架通用寄存器分析及总结二
第四部分操作系统环境(OEA-Operating Environment Architecture)寄存器寄存器集
OEA寄存器集包含四类寄存器:
1:配置寄存器(Configuration Registers)
?????? MSR寄存器:
?????? 定义处理器的状态,它可以被mtmsr, sc, rfi指令修改;可以被mfmsr读取;
?????? PVR寄存处:
?????? 定义寄存器模型的版本和处理器的版本
2:内存管理寄存器(Memory Management Registers)
?????? BAT寄存器:
?????? OEA定义了四组BAT指令寄存器(IBAT0U-IBAT3U和IBAT0L-IBAT3L),也定义了四组BAT数据寄存器(DBAT0U-DBAT3U和DBAT0U-DBAT3U)
?????? SDR1寄存器:
?????? 该寄存器定义了用于虚拟地址转换为物理地址所需要的页表基地址
?????? SR寄存器:
?????? OEA定义了16个32位的SR寄存器(SR0-SR15)
3:中断处理寄存器(Interrupt Handing Register)
??????DAR(Data Address Register)寄存器:
?????? 在DSI(Data Storage Interrupt)和对齐中断发生之后,DAR寄存器被设置成异常指令产生的有效地址;
?????? SPRG0-SPG3寄存器: 提供给操作系统使用
?????? DSISR寄存器: 定义产生DSI(Data Storage Interrupt)和对齐中断的原因
?????? SPR0(Machine status save/restore register 0)寄存器:
?????? 在中断中用来保存MSR寄存器,当rfi指令执行时,用来恢复MSR寄存器
????? SPR1(Machine status save/restore register 1)寄存器: 在中断中用来保存MSR寄存器,当rfi指令执行时,用来恢复MSR寄存器
?
4:多功能寄存器(Miscellaneous Registers)
?????? TB(time base)寄存器:
?????? 具体参考第三部分VEA
?????? DEC寄存器:这是一个32位的递减计数器
?????? EAR(External Access Register)寄存器:用于访问外部设备
?????? DABR(Data address breakpoint register):用来控制数据地址断点功能
?????? PIR(Processor identification register):在多处理器的芯片上用来标识一个核,例如在MPC8641d芯片上有两个E600的core,就用PIR来定位其中的core。
OEA寄存器集的示意图如下:
4.1 MSR寄存器
MSR寄存器定义了处理器的状态,在初始化PowerPC 核心时,MSR是第一个被配置的处理器。当一个中断发生时MSR寄存器的相关位将会发生改变。它也可以被mtmsr, sc, rfi指令所修改,被mfmsr读取。
格式如下:?
各个字段说明:
MSR[0:12]:保留位
备注:在E600内核中使用了保留位中第6位来表示是否使用VltiVec指令
MSR[13]-POW位:能源管理机制(Power management enable)是否开启
MSR[14]:保留位
MSR[15]-ILE:(Interrupt little-endian)采用小端格式的中断模式是否开启,当中断发生时该位被拷贝到MSR[31]-LE来确定中断上下文的端模式
MSR[16]-EE:外部中断(External interrupt)是否开启,
MSR[17]-PR:指令特权级1-用户级? 0-系统级
MSR[18]-FR:浮点运算是否开启
MSR[19]-ME:机器检测是否开启
MSR[20]-FE0和MSR[23]-FE1:用来确定浮点数的异常模式,示意图如下:
MSR[21]-SE:单步调试追踪是否开启
MSR[22]-BE:分支预测追踪是否开启
MSR[24]:保留位
MSR[25]-IP:(Interrupt prefix.)中断向量号地址前缀
MSR[26]-IR:指令地址转换是否开启
MSR[27]-DR:数据地址转换是否开启
MSR[28:29]:保留位
备注:E600使用了MSR[29]位来表示是否开启性能监视标识模式(PMM-Performance Monitor Marked mode)
MSR[30]-RI:机器重启或者机器检查中断恢复是否开启
MSR[
显示全部