首先,LA对特权级的定义:PLV0-PLV3,0是最高特权级,也是唯一一个可以访问任何资源的运行级;LInux Kernel运行在这个级别

如果我没记错的话,x86就是这样子的
其次,Arm64和RISC-V的定义

RV中定义了U, HS, M 3个特权级 (注:还有一个预留等级,即等级2,原来是留给hypervisor的,后来删了);Linux Kernel运行在HS中,M mode预留给优先级更高的firmware

ARM是4个,不过在Linux/KVM架构下,只用了0/2/3;Linux Kernel运行在2,3留给了优先级更高的firmware (注:RV之前的定义也是这样子的,后来删了HyperVirsor这一层;ARM v8.1引入了VHE扩展,最终也类似RV了)
所以,RV和Arm64相对x86和龙芯最大的区别是啥呢?就是OS Kernel不是运行在最高特权级,而是预留了一个更高优的级别给firmware,同理,在IBM P9/P10中,Kernel也不是运行在最高级
再次,说下可信计算,在可信计算或机密计算中,Host OS和HyperVisror都是不可信的,那么就需要一个值得相信的组件来管理这些不可信的,那么用谁呢?在Arm64和RV下自然就是EL3和M-mode中的firmware。那么在x86下怎么搞呢?不好意思,因为x86的历史坑,搞起来就比较麻烦了,AMD SEV和Intel TDX要么是需要引入一个新的Secure Processor做辅助,要么做了一堆复杂的扩展,相对Arm64和RV架构就不怎么优雅了。
最后,问题来了,照搬了x86的LA特权级定义,如果要做,只能像x86一样笨重的实现了。
LA真是啥好架构不借鉴,非得借鉴一个从出生就不完美,缝缝补补的x86。作为一个后来者,还是没有充分借鉴业界先进思想。
----
当然,我对LA的理解可能有误,欢迎指正讨论

如果我没记错的话,x86就是这样子的
其次,Arm64和RISC-V的定义

RV中定义了U, HS, M 3个特权级 (注:还有一个预留等级,即等级2,原来是留给hypervisor的,后来删了);Linux Kernel运行在HS中,M mode预留给优先级更高的firmware

ARM是4个,不过在Linux/KVM架构下,只用了0/2/3;Linux Kernel运行在2,3留给了优先级更高的firmware (注:RV之前的定义也是这样子的,后来删了HyperVirsor这一层;ARM v8.1引入了VHE扩展,最终也类似RV了)
所以,RV和Arm64相对x86和龙芯最大的区别是啥呢?就是OS Kernel不是运行在最高特权级,而是预留了一个更高优的级别给firmware,同理,在IBM P9/P10中,Kernel也不是运行在最高级
再次,说下可信计算,在可信计算或机密计算中,Host OS和HyperVisror都是不可信的,那么就需要一个值得相信的组件来管理这些不可信的,那么用谁呢?在Arm64和RV下自然就是EL3和M-mode中的firmware。那么在x86下怎么搞呢?不好意思,因为x86的历史坑,搞起来就比较麻烦了,AMD SEV和Intel TDX要么是需要引入一个新的Secure Processor做辅助,要么做了一堆复杂的扩展,相对Arm64和RV架构就不怎么优雅了。
最后,问题来了,照搬了x86的LA特权级定义,如果要做,只能像x86一样笨重的实现了。
LA真是啥好架构不借鉴,非得借鉴一个从出生就不完美,缝缝补补的x86。作为一个后来者,还是没有充分借鉴业界先进思想。
----
当然,我对LA的理解可能有误,欢迎指正讨论