1.2 RISC-V软件可执行环境与harts(线程)

RISC-V程序的行为由执行环境接口(EEI)定义,涵盖初始状态、线程、特权模式、内存访问和中断处理。EEI包括LinuxABI和SBI。执行环境可以是纯硬件、纯软件或两者结合,如裸机、操作系统、管理程序和模拟器。线程在可执行环境中分时复用,环境负责线程的进度控制,包括挂起、中断和终止。当线程数量超过硬件线程时,可执行环境需通过抢占机制管理。
摘要由CSDN通过智能技术生成

RISC-V程序的行为依赖于运行的环境。
RISC-V可执行环境接口(EEI, Execution environment interface) 定义了程序的初始状态线程的数量与类型(包括所支持的特权模式、可访问的内存和I/O区域,所有合法指令在每个物理hart上的执行行为),以及如何处理在执行期间引发的任何中断(interrupts)和异常(exception), 包括环境调用(系统调用)

EEI有两类:==Linux的ABI(Application Binary Interface)和RISC-V的SBI(supervisor binary interface)。

RISC-V的执行环境可以是纯硬件的,也可以是纯软件的,或者二者的结合。比如,使用操作码陷阱(opcode trap)和软件仿真来实现硬件没有提供的功能。
执行环境的实现示例包括:
1.裸机bare metal硬件平台,hart直接由处理器物理线程来实现,指令对物理地址空间具有完全访问权限,硬件平台定义了上电重启(power-on reset)后开始的执行环境。
2.RISC-V操作系统(RISC-V operating system),提供了多个用户级执行环境,将用户级数据复用到可用的物理线程上,并通过虚拟内存技术控制内存访问。
RISC-V不带H-extension

3.RISC-V管理程序(hypervisors),为guest操作系统提供多个管理程序级别的可执行环境。
RISC-V带H-

4.RISC-V模拟器(RISCV emulator),例如Spike,QEMU和RV8,它们可以在x86平台对RISCV的har进行仿真,能提供用户级和特权级的可执行环境。

从软件运行的角度看,在一个给定的可执行环境中,线程是一种可以自发取指和执行RISC-V指令的资源。就像是一个硬件线程资源,可执行环境做了分时复用。有些EEI支持创建和销毁额外的线程。比如,通过环境调用fork可以创建一个线程。

可执行环境负责每个线程的最终前进进度。对于给定的线程,当它显示地执行了等待事件,例如执行等待中断指令,该线程被可执行环境挂起。或者负责终结当线程终止执行后。下面的事件构成了向前进度:
1.指令退出
2. 陷阱
3. 扩展中定义的事件

hart术语被引入用来代表一种抽象的可执行环境,而不是软件线程编码抽象。
硬件线程和软件线程上下文间的最大区别是软件运行在可执行环境中,并不负责线程进度控制,而是由可执行环境决定。从可执行环境的软件角度看,可执行环境中的软件线程更像是硬件线程(hardware hart)。
可执行环境通过将客户线程分时复用到少量的宿主线程,并保证就像每个客户线程运行在自己的独立硬件线程上。特别的,当guest线程远远多于host线程时,可执行环境必须能够抢占guest线程,可通过“yield”控制guest线程运行时长,避免无限期的等待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值