RISC-V体系结构

文章介绍了RISC-V架构中的关键概念,包括ExecutionEnvironmentInterface(EEI)用于处理器与操作系统交互,特权指令集用于内核交互,用户指令集服务于应用程序,内存模型定义内存操作,ABI规定应用间的调用约定,确保二进制兼容性,而SBI则规范了低级到高级特权模式的访问接口,强调了安全性和隔离性。

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

体系结构

执行环境接口

执行环境接口( Execution Environment Interface EEI)是RISC-V定义处理器操作系统之间的交互方式,它规定了如何加载和执行RISC-V二进制代码,以及如何访问控制和系统资源。

指令集分类

Privileged Architecture (特权指令)

用于操作系统内核处理器之间的交互,定义了一组特权指令和异常处理机制。

User Level ISA (用户指令)

用于应用程序处理器之间的交互,定义了一组用户态指令和系统调用指令

Memory Model (内存指令)

用于定义内存一致性原子访问操作等方面的指令

调用规范

ABI

ABI全称“Application Binary Interface”(二进制应用程序接口),ABI是一个约定接口,ABI用于规范应用层之间的调用关系:比如函数调用动态库调用ABI一般是由硬件平台、操作系统、编译器、开发者多方共同进行约定的,在编译应用程序时编译器会遵守目标平台的ABI约定来生成对应的汇编代码。

简单点来说就是编译器遵守目标平台ABI规则规范函数调用时的堆栈保护参数传递使用寄存器返回值使用寄存器等。

ABI保证了二进制应用程序之间的互通性,例如JAVA程序可以去调用C语言程序,Python可以调用C++程序,亦或者JAVASCRITE调用C语言程序。因为ABI保证了每个语言之间的函数调用时的统一性,例如A语言函数调用时参数传递使用的是寄存器,而B语言使用的是堆栈,那么两个语言编译出来的程序是不能相互调用二进制接口的,因为它们的函数约定不同在调用时会出现异常情况

所有应用程序遵守ABI所定制的函数调用约定有了统一性那么相互之间就可以调用。

SBI

SBI全称“Supervisor Binary Interface”(超级用户二进制接口)SBIRISC-V架构的一个重要组成部分,它是RISC-V特有的服务,它用于规定低级特权模式高级特权模式访问的规范,与ABI类似,在RISC-VABI规范了应用层的编程规范,而SBI规范了应用层向内核内核向固件之间调用的二进制接口规范

SBI限定了不同特权模式下对寄存器、某些地址的访问、禁止对某些中断的操作,这样做的目的可以有效将不同特权完全分隔开,可以保证安全性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

17岁boy想当攻城狮

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值