RV32I指令集

一、简介

如果一个组件包含一个独立的指令获取单元,则它被称为核心。
RISC-V兼容核心可能支持多个 RISC-V 兼容的硬件线程,或 harts,通过多线程。

执行环境包括:

  • Bare metal:harts直接由物理处理器实现,线程和指令可以直接访问物理地址空间。
  • RISC-V操作系统:通过多路复用提供多个用户级执行环境的,RISC-V 操作系统用户级 harts 到可用的物理处理器线程并通过控制访问通过虚拟内存到内存
  • RISC-V 虚拟机管理系统,提供多个主管级执行环境操作系统(一种虚拟化技术,在宿主操作系统上运行多个独立的Riscv操作系统实例)
  • RISC-V 仿真环境,例如 Spike、QEMU 或 rv8,它们在底层上模拟RISC-V hartsx86 系统(将Riscv处理器的指令集模拟在计算机的一种环境),可以提供用户级或主管级执行环境。

指令集总览:

RISC-V的基本ISA于RISC架构处理器相似,主要区别在于没有分支延迟槽,支持可选的可变长度的指令编码
RISC-V基本指令集包括:RV32I(32位整型运算)、RV64I(64位整型运算)、RV32E(RV32I 基本指令集的 RV32E
子集变体,主要支持小型嵌入式,整型寄存器只有16个)、RV128I(128位整型位运算)
RISC-V基本指令和指令集扩展的命名有一定的约定

扩展指令集:提供整数乘法/除法(M)、原子操作(A)以及单精度(F)和双精度浮点(D)还有压缩指令集(C)

标准整数乘法和除法扩展名为“M”,并且添加指令以乘除整数寄存器中保存的值。

标准原子指令扩展,用“A”表示,添加了原子读取、修改和写入的指令用于处理器间同步的内存。

标准单精度浮点扩展,用“F”表示,增加了浮点寄存器、单精度计算指令和单精度加载​​和存储。

标准双精度浮点扩展,表示为通过“D”,扩展了浮点寄存器,并增加了双精度计算指令,加载和存储。

标准的“C”压缩指令扩展提供了更窄的16位形式的通用指令。

内存:

RISC-V hart 具有用于所有内存访问的 2^XLEN
字节的单字节可寻址地址空间。

二、操作数相关

在RISC-V中,操作数是指计算机指令中用于进行操作的数据。它可以是寄存器、立即数或内存地址等形式。不同的操作数类型和寻址方式对应不同的指令格

常见操作数类型

以下是RISC-V中常见的操作数类型:

  • 寄存器操作数:指令将读取或写入寄存器中的数据。寄存器操作数通常包括源寄存器(source register)和目标寄存器(destination register),分别表示输入和输出的寄存器。

  • 立即数操作数:指令将使用一个固定的数字作为操作数。立即数操作数可以通过指令本身的二进制编码来表示,也可以在指令中以参数的形式传递给处理器。立即数操作数通常用于表示常量值或偏移量等。

  • 存储器操作数:指令将读取或写入存储器中的数据。存储器操作数需要指定存储器地址,该地址有时由寄存器提供,有时由立即数提供。

以下是RISC-V中常见的操作数寻址方式:

  • 直接寻址方式:直接从寄存器或立即数中获取操作数值。例如,addi rd, rs1, imm 将寄存器rs1中的值与立即数imm相加,并将结果存储到寄存器rd中。

  • 寄存器间接寻址方式:通过寄存器来存储一个地址,从该地址读取操作数。例如,lw rd, 0(rs1) 将以rs1为基址、偏移量为0的存储单元中的数据加载到寄存器rd中。

  • 基址寻址方式:通过寄存器和立即数相加得到一个地址,从该地址读取或写入操作数。例如,sw rs2,offset(rs1) 将寄存器rs2中的值存储到以rs1为基址、偏移量为offset的存储单元中。

  • 相对寻址方式:通过相对于当前指令的偏移量来访问内存地址。例如,beq rs1, rs2, label如果rs1等于rs2,则跳转到标记为label的程序位置(pc)。</

  • 58
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值