Xtensa架构学习——3.3 寄存器

3.3 寄存器

这里介绍的是Xtensa的核心架构寄存器,额外的寄出器以及较多选项都在Chapter4里描述。在体系结构中预定义的完整寄存器集,包括体系结构选项使用的所有寄存器,在表205中的表5-127中列出。


3.3.1 通用寄存器(AR)
每条指令最多包含三个4位通用寄存器指示符,每个指令都可以选择16个32位寄存器之一。 这些通用寄存器被称为地址寄存器(AR)将其与协处理器寄存器区分开来,协处理器寄存器在很多系统中都可以使用作为“数据”注册。 但是,AR寄存器不限于保存地址;它们也可以保存数据。如果配置了窗口寄存器选项,地址寄存器文件将被扩展使用从虚拟寄存器到物理寄存器的映射。地址寄存器文件的内容在复位后不确定。
3.3.2 移位以及移位量寄存器(Shifts and the Shift Amount Register (SAR))
ISA提供了常规的即时转换(逻辑左,逻辑右和算术)右),但它不提供单指令移位,其中移位量是寄存器操作数。从通用寄存器中取出移位量可以创建关键时间路径。而且,简单的换档不能有效地延伸到更大的宽度。funnel shifts(其中两个数据值连接作为移位器的输入)解决这个问题,但也需要许多操作数。ISA通过提供一个漏斗转移(funnel shifts)来解决这两个问题,移位量取自SAR。编译器使用从通用寄存器中的移位量计算SAR的指令来合成可变位移,然后是漏斗移位。另一个优点是可以操纵单向漏斗移位器来提供根据源操作数的顺序和变换的右或左移移位量。
个人总结:一段翻译的乱七八糟,可能是因为对漏斗移位等移位操作不熟悉。不过通过阅读,可以知道,xtensa移位的时候,移位量是从移位量寄存器中取出的,如果是多位的,那就取出多个拼在一起构成一个多位的移位量。
3.3.3 读写特殊寄存器

SAR寄存器是Xtensa ISA中设置的非特权特殊寄存器的一部分(该组中的其他寄存器与架构选项相关联)。核心架构中特殊寄存器的内容可以通过读取特殊寄存器(RSR.SAR)指令读取到AR寄存器,或通过写入特殊寄存器(WSR.SAR)指令从AR寄存器写入,如表3所示-9。交换专用寄存器(XSR.SAR)指令完成读写指令的组合动作。


  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值