首先知道risc-v 系列都有功能模块:
I(基本)G(通用,电脑啊)E(嵌入式)M(计算任务)还有一些扩展的。


RISC-V 指令集架构中的基础指令长度是固定为 32 位的,无论是 RV32、RV64 还是未来可能的 RV128。也就是说,RV128 的基础指令也是 32 位的。这种固定长度的指令格式简化了指令解码和处理过程,有助于提高处理器的效率。
尽管指令长度是 32 位的,但 RV64 处理的是 64 位的数据和地址。这意味着寄存器、操作数和内存地址都是 64 位的,但指令本身仍然是 32 位的。


misa 寄存器是一个只读寄存器,可以知道处理器本身是多少位的
misa 寄存器布局
位 [XLEN-1:26]:保留位,未使用。
位 [25:0]:扩展支持位,每个位表示一个特定的指令集扩展。(略)
位 [31:30](对于 32 位架构)或 [63:62](对于 64 位架构):表示 XLEN(处理数据的宽度)。
01:表示 32 位架构(RV32)
10:表示 64 位架构(RV64)
11:表示 128 位架构(RV128,未来可能的扩展)
如何解析misa?


GCC 的 -march 选项用于指定目标架构:(gcc 相当于给寄存器输入)
-march=rv32i:生成针对 32 位 RISC-V 处理器的代码
-march=rv64i:生成针对 64 位 RISC-V 处理器的代码



putao
8 声望3 粉丝

推动世界向前发展,改善民生。


引用和评论

0 条评论