打印
[RISC-V MCU 应用开发]

RV32C(压缩指令)的特点是什么?

[复制链接]
2073|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2024-5-9 08:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为缩短指令长度而设计的压缩指令,不包含在基础指令集RV32I中,需要单独扩展(不整合在RV32I的原因是,16位RV32C指令和32位RV32I指令混杂在一起会增加解码复杂度,从而使得高性能处理器(如超标量处理器)在一个时钟周期内完成解码变得更难);
压缩指令和RVG指令采用同一套ISA(即每条压缩指令都和一条标准32位RV指令一一对应,为此会舍去一些指令,如Load and Store Multiple等),因此仅需一个解码器即可;
压缩指令只对汇编器和链接器可见,是否以压缩指令取代对应的标准指令由汇编器和链接器决定而不需要编译器编写者和汇编语言程序员参与;
压缩指令只能访问一些常用寄存器(a0-a5、s0-s1、sp以及ra);
隐式写入源操作数的位置,即不指定目的操作数,使用一个源操作数作为目的操作数;
立即数被缩短,load和store操作只使用操作数整数倍的无符号数偏移量;
没有字节或半字指令,因为压缩这些指令对代码长度的影响有限。

使用特权

评论回复

相关帖子

沙发
小小蚂蚁举千斤| | 2024-5-22 16:58 | 只看该作者
压缩指令需要单独扩展

使用特权

评论回复
板凳
小夏天的大西瓜| | 2024-5-22 22:25 | 只看该作者
没有字节或半字指令,因为压缩这些指令对代码长度的影响有限。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1721

主题

12973

帖子

54

粉丝