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),提供了多个用户级执行环境,将用户级数据复用到可用的物理线程上,并通过虚拟内存技术控制内存访问。