在RISC-V的特权级规范文档中,“陷入” 包含中断和异常,而原来意义上的陷入(trap,系统调用)只是exception中的一种情况。另外还有一种 “软件中断” ,它是指软件可以通过写特定寄存器(mip/sip)的特定位(MSIP/SSIP/USIP)来产生的中断。而异常和中断有严格的区分,在记录产生的异常或中断类型的特定寄存器(mcause/scause)中,寄存器最高位为 0 表示异常,最高位为 1 表示中断。
在硬件层面上实现特权级
bios/uefi 一般来讲包括了loader,runtime和bootloader
ROM :
储存loader,runtime
唤醒soc和时钟信号
loader :
初始化内存
加载runtime和bootloader
runtime :
存储于SRAM或者内存中
提供硬件最底层的抽象给OS提供服务
sbi就是risc-v架构的runtime规范
bootloader :
存储于内存中
引导文件系统,网卡,操作系统加载等
常用的有GRUB
实模式
对应的地址为真实的物理地址
保护模式
增加限制,实现虚存