1.概述部分

1.异常控制流

在RISC-V的特权级规范文档中,“陷入” 包含中断和异常,而原来意义上的陷入(trap,系统调用)只是exception中的一种情况。另外还有一种 “软件中断” ,它是指软件可以通过写特定寄存器(mip/sip)的特定位(MSIP/SSIP/USIP)来产生的中断。而异常和中断有严格的区分,在记录产生的异常或中断类型的特定寄存器(mcause/scause)中,寄存器最高位为 0 表示异常,最高位为 1 表示中断。

在硬件层面上实现特权级

2.一般的引导流

Screenshot_20210923_171526.png

bios/uefi 一般来讲包括了loader,runtime和bootloader

ROM :

储存loader,runtime

唤醒soc和时钟信号

loader :

初始化内存

加载runtime和bootloader

runtime :

存储于SRAM或者内存中

提供硬件最底层的抽象给OS提供服务

sbi就是risc-v架构的runtime规范

bootloader :

存储于内存中

引导文件系统,网卡,操作系统加载等

常用的有GRUB

3.cpu的实模式和保护模式

实模式

对应的地址为真实的物理地址

保护模式

增加限制,实现虚存

4.risc-v的特权等级

5.程序内存布局

MemoryLayout.png