CPU的自我控制之(6)-后记

——————————————————————补充——————————————————————

我把ARMv8-A指令集对异常的设计划分为指令、CPU状态和机制三部分,

指令是编入指令流,在特定条件下能产生异常的指令;

CPU状态由寄存器标志,这里说的状态就不止是EL0/1/2/3了,

还包含ELx是否使能,两阶段MMU是否是能、cache/tlb归谁维护、异常优先级的配置,异常的屏蔽、arm32/64状态区分等等,不一一罗列。

机制我认为是指令集对各个CPU状态下,指令处理方式的规定。

机制是死的,指令和CPU状态是活的,在死的机制下,用活的CPU状态和指令,CPU就实现了硬件虚拟化以及syscall。

Aarch64下的一次异常这样就算说完了,从这里,我大致得出了微内核与宏内核架构产生的效率问题的原因,

我认真的思考了微内核如何能做到像宏内核一样的高效,请原谅我的贫穷的想象力。

其他还未说明的控制异常的各个寄存器如HCR_ELx,SCTLR_ELx等都有非常丰富的定义;

由这些定义,也可以得到aarch64对虚拟化的更多支持;

虚拟异常也是没有详细分析的,虽然虚拟异常对虚拟化加速非常有力;

更多的如VMID(virtual machine idenitfier)、VHE(virtualization host extensions)等虚拟化相关的设计也没有详细分析;

这些都放在后续文档中说明。

——————————————————————外部——————————————————————

另外,同事在阅读的时候提出了一些我没有指明的点,

认为http://www.wowotech.net/?post=238中有一些非常好的描述,可以去看一下。

我看完之后发现其中一段非常不错的描述SError,刚好我并不懂,因此粘过来,如下:

要想理解SError interrupt这个概念,我们需要先看看external abort这个术语。external abort来自memory system,当然不是所有的来自memory system的abort都是external abort,例如来自MMU的abort就不是external abort(这里的external是针对processor(而非cpu core)而言,因此MMU实际上是internal的)。external abort发生在processor通过bus访问memory的时候(可能是直接对某个地址的读或者写,也可能是取指令导致的memory access),processor在bus上发起一次transaction,在这个过程中发生了abort,abort来自processor之外的memory block、device block或者interconnection block,用来告知processor,搞不定了,你自己看着办吧。external abort可以被实现成synchronous exception(precise exception),也可以实现成asynchronous exception(imprecise exception)。如果external abort是asynchronous的,那么它可以通过SError interrupt来通知cpu core。      我的习惯是搞清楚一个术语的定义之后,下一个问题就是why,不过大部分的资料都不会讲why,因此在回答why的时候,往往没有那么权威,多半是自己的思考,不保证是正确的。为何要定义SError interrupt?当一个abort发生的时候,如果HW如果能够通过寄存器提供一些信息的话,那么事情还没有那么糟糕,例如return address给出了发生exception的具体的位置。从这个角度看,软件工程师更喜欢precise exception,毕竟知道导致异常的指令的位置,从而找到一些蛛丝马迹,让系统恢复。从这个角度看,根本就不应该存在SError interrupt这样的imprecise exception的鬼东西,HW没有提供有意义的信息,就只是两手一摊,反正在memory access的时候发生了system error,而且我也不知道是哪一条指令干的,这让软件工程师情何以堪呐。氮素,这只是事情的一个方面,从设计CPU的IC工程师角度看,他们更喜欢设计最快的处理器来完成自己的价值。SError interrupt是imprecise exception,允许更大的指令并发,因此性能更好。粘自:http://www.wowotech.net/?post=238

发布了24 篇原创文章 · 获赞 3 · 访问量 2346

猜你喜欢

转载自blog.csdn.net/ytfy339784578/article/details/103946185