PowerPC-MPC603e内核学习笔记之寄存器(一)

PowerPC MPC603e的寄存器是按照3个架构来组织的,分别是用户指令架构(UISA),虚拟环境架构(VEA),操作环境架构(OEA)。这些架构提供了寄存器对寄存器级的操作。并且,数据从内存到寄存器之间的传输只用到唯一的访存指令。

 

(一)   用户指令架构(USIA

                              可以被任何user级和supervisor级的指令访问。通用寄存器(GPR)和浮点型寄存器(FPR)被指令当作操作数来使用。访问寄存器可以有隐式和显式两种,这是根据不同的指令而有所不同的。例如mfsprmtspr就是显示直接访问寄存器的。

                              User级的寄存器包括:

1.通用寄存器(GPR)。GPR寄存器包括32个。分别用GPR1GPR31表示。GPR寄存器可以为整数指令和寻址指令提供数据源和目标寄存器。

2.浮点型寄存器(FPR)。FPR寄存器有32个,分别由FPR1FPR31表示,该架构提供了3264位的FPR。这些寄存器被浮点操作指令使用。所有的浮点运算指令操作的数据都位于FPR,除了比较指令,所有的结果都放入一个FPR中。Load/store指令操作双字在内存和FPR之间进行无转换传输64bit的数据。

3.浮点型状态和控制寄存器(FPSCR)。记录浮点运算产生的异常和寄过类型。控制浮点运算所用的舍入方式,使能和禁止异常报告(会引起中断传递)。其中bit023是状态位。在完成该指令执行时会被更新。Bit2431是控制位。

4.条件寄存器(CR)。32位的条件寄存器放映了指令所造成的结果,并为测试指令和分支跳转类指令提供了一种机制。CR被分成84位的字段,    CR1CR7。各个字段可以用下面的指令置位操作:

l        指定的CR字段是用mtcrf来置位的。

l        字段可以使用mcrf指令相互之间进行复制。

l        XER[0-3]的内容用mcrxr指令移至另一个字段

l        指定的FPSCR内容用mcrfs指令复制到另一个指定的字段

l        CR逻辑类指令可以对CR指定的bit进行逻辑运算

l        CR0是整数指令隐式结果

l        CR1是浮点指令隐式结果

l        指定的CR字段可以表示整数或浮点数指令比较的结果

l        分支跳转指令用来测试指定CR bit

5.XER寄存器。表示溢出和承载条件以供整数操作所需。Load/store传输字节数的字符索引指令。

6.连接寄存器(LR)。LRbclrx提供该分支跳转的目标地址,并能选择性的被用来保存分支跳转的下一条指令的有效地址,通常用于装载子程序返回指针。

7. 计数寄存器(CTR)。CTR保存一个循环计数,可以在执行分支指令过程中递减,CTR还可以为分支条件提供分支指令的目标地址。如bcctrx指令。

 

(二)   虚拟环境架构(VEA

定义了一些寄存器以补充UISAVEA寄存器集可以被用户级和特权级指令访问。VEA中定义了一个64位的时基寄存器(TB),主要是为系统软件确定时间和定时器。这个值是由软件更新的。例如使用一个独立的中断处理程序进行更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goodlinux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值