浅谈RISC-V指令集的基本指令格式和立即数操作
在以前的文章中,我分享了RISC-V在设计的初衷,除了可以被通用软件开发使用之外,还有一个目的就是,可以支持更多定制化的设计。也就是说,用户可以在基本指令集上面,进行一个或者多个的指令集扩展操作,但是有一个条件,不能再重新定义基本指令集。也就是说,任何一款基于RISC-V指令集的处理器,都要能够支撑整数基本指令集。可以看出基本指令集的重要性。
基本指令格式
那么今天我们就继续来分享一下,在基本指令集体系机构中(ISA),四种核心指令格式(R/I/S/U)。基本指令格式如下图所示:
图一 RISC-V 基本指令格式
从上图中,我们可以看出这四种核心指令格式有以下三个特点:
所有指令的长度固定,都为32位,以4字节边界对齐;源寄存器rs1\rs2,以及目标寄存器rd的位置保持不变;将立即数的符号位放置在最左边,方便进行符号扩展。如果出现了条件分支或者无条件转移情况,并且地址没有按照4字节对齐时,就产生一个地址不对齐的异常。另外,为了指令译码简单,RISC-V ISA将rs1、rs2和rd寄存器放在相同位置,这导致立即数不同比特被分散开。例如,当需要加载一个32位立即数时,通常由load指令给出高20bits,常规指令给出低12bits,两个共同拼为32bits。
推荐阅读
- 传奇世界|浅谈传奇世界的业:战、法、道三职业相生相克,到底谁克谁呢?
- 手机游戏|梦幻西游手游:封系统治擂台?浅谈经脉学问,方寸也能实现双封!
- 游戏主播|比起技能酷炫,网游玩家更爱数值怪物?浅谈如何成功设计一个职业
- 梦幻西游手游|梦幻西游手游:你是中国好队长吗?战斗指令大全,学会就告别翻车
- 暗黑破坏神2|《暗黑破坏神2》MF值多少才是最佳—浅谈
- edg战队|浅谈,EDG2号种子出线后,带给LPL队伍的连锁反应
- 手柄|大话西游2之无差别浅谈无属性敏人
- 原神|原神:心海池即将结束,为何没人愿意抽?浅谈三大问题
- 原神|原神:浅谈个人游戏大后期大世界队伍各角色舒适度
- 陆逊|三国志战略版:从吴国法核陆逊,浅谈陆逊肉弓盛行之道!