怎么调用计算机指令集,计算机体系结构——RSIC-V指令集

本文详细介绍了RISC-V指令集架构的特点,包括其模块化设计、寻址空间划分及寄存器文件等内容,并探讨了不同指令类型及其执行方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 指令编码类型

RISC-V本身就是模块化的指令集,可以灵活的进行组合,具有相当多的可配置型。

例如某处理器核支持 RV32GC(RV64IMAFDC) 模块化指令集:

32位:32位地址空间,即通用寄存器宽度为32位

I:基本整数指令子集,支持32个通用整数寄存器

M:支持整数乘法与除法指令

A:支持存储器原子操作指令和Load-Reserved / Store-Conditional指令

F:支持单精度浮点指令

D:支持双精度浮点指令

C:支持编码长度为16位的压缩指令,提高代码密度

Machine Mode Only:只支持机器模式

RISCV架构推荐使用地址对齐的存储器读写操作,但也支持地址非对齐的操作。

RISCV仅支持小端模式的memory读写

RISCV读写存储器不支持自增或自减模式。

指令格式

在RSIC-V中,所有指令都是32位的,并且在存储器中必须在4字节边界对齐。由于是RSIC架构,指令关于原寄存器和目的寄存器的编码格式固定。

在基本ISA中,分别有一下四种指令格式,当然在此基础上有几种变种。

73e6b7073fae074f8888b58f73e55aad.png

rs1,rs2是源寄存器地址,rd是目的寄存器地址,opcode是指令操作码,funct是功能码(操作码的数据宽度)

例如sw rs2, imm(rs1)

2. 指令类型

有关指令执行参考链接:https://blog.youkuaiyun.com/qq_39815222/article/details/106969845

存储器访问指令

数据传送指令只能完成读一个操作数或写一个操作数,并不能进行运算。

见链接:https://blog.youkuaiyun.com/qq_39815222/article/details/107224255

逻辑算术指令

算术指令能完成读两个寄存器、对它们进行运算和写回运算的操作。

控制转移指令

转移指令的调用可分为保存现场和恢复现场,RISCV调用则较为简洁,它使用公用的程序库(专门用来保存和恢复现场),省去了保存和恢复的诸多指令。

保存现场:进入子程序后要用store指令,将当前上下文(通用寄存器等的值)保存到系统存储器的堆栈区(后入先出)

恢复现场:退出子程序时,用load指令将之前保存的上下文从系统存储器的堆栈区读出来

3. RISC-V寻址空间划分

数据和指令寻址空间

例如64位的RISC-V架构,指令和数据寻址空间为2的32次方。

CSR寻址空间

专用的12为地址编码空间。

4. RISC-V寄存器文件

寄存器文件又称为寄存器堆,是CPU中多个寄存器组成的阵列,RSIC-V寄存器文件主要包含通用寄存器组、控制状态寄存器和一些特殊寄存器

通用寄存器组

如果指令集定义为I,则包含32个通用寄存器,分别用x0-x31表示

若定义为E(嵌入式架构),则包含16个通用整数寄存器,仅支持32位,,分别用x0-x15表示

若定义为F/D(单精度/双精度),则另外增加32个独立的通用浮点寄存器,分别用f0-f31表示

控制状态寄存器(CSR)

用于配置和记录一些运行的状态,CSR是Core内的寄存器,使用专门的12位地址编码空间。

程序计数器(PC)

PC是指令存放在存储器中的地址位置。可以反映在某些通用寄存器或特殊寄存器中。但在RSIC-V架构中,程序要读取PC值,只能通过某些指令间接获得,如AUIPC指令。

5. RSIC-V工作模式

机器模式

必选项,另外两种可选,通常为简单的嵌入式系统

监督模式

若支持该模式,另外两种须均支持,该模式下可以实现类似Unix的操作系统

用户模式

此类系统实现用户和机器模式的区分,从而实现资源保护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值