Supervisor Mode(S-mode),如下图的RISC-V Privilege Levels中所示,是Machine Mode(M-mode)上两层的模式。这意味着操作系统调用OpenSBI的抽象来完成非常底端的操作。这样会使在开发板上开发一个操作系统变得容易一些。在此模式下,运行如操作系统内核的软件,并通过OpenSBI接口调用底层设备。
RISC-V Privilege Levels
上图我们看到介于S-mode与M-mode之间是保留的,这里正是为SBI接口留有的位置,通常来说,是下图的OpenSBI接口实现。
U-mode(User-Mode)
在此模式下,处于用户空间,运行用户程序。
事实上,RISC-V芯片的启动流程还在不断地快速演变,进化中,下图给出了演变的历程。
通过遵守开源协议,任何用户都可以修改和使用OpenSBI。面对这些复杂的情况,需要制定一系列规则来规范化 RISC-V 的启动规则。下图给出了启动规范标准的演变历程。
ARM架构中的Hypervisor与OpenSBI的对比
类比ARM64芯片,可以一一对应出RISC-V的启动模式,但实际上在RISC-V芯片中,并不存在Hypervisor模式来承上启下,反之,使用的是上文所提到的SBI(Supervisor Binary Interface)规范下的接口,一般是OpenSBI。
(ARM) (RISC-V )
在ARM架构中,Hypervisor层承担了虚拟化的作用,承担了如内存管理、设备模拟、设备分配、异常处理、指令捕获、虚拟异常管理、中断控制器管理、调度、上下文切换、内存转换、多个虚拟地址空间管理等非常多的功能。
相比之下,SBI在RISC-V架构中充当了BIOS和在操作系统运行时为上层提供底层抽象的作用,功能较少。不过SBI也在不断发展中,可能在将来SBI会去承担虚拟化的功能。
1.9 关键名词解释 1.9.1 DDR 中的DLL/PLL
简单来说,DDL(Delay Locked Loop)和PLL(Phase Locked Loop)是一种维持信号稳定的电路,使内存能够更加高效地传输数据。
下图给出了无DLL/PLL与有DLL/PLL的情况
DLL/PLL通过连续地比较两个信号的关系并提供反馈来保持他们之间地固定关系。