在armv8中Non-secure EL1&0 VA转换为 PA时可以分为stage 1 和 stage2 ,这样经过两个stage 才得到PA,有什么好处吗?和只用stage1有什么区别吗?
在armv8中Non-secure EL1&0 VA转换为 PA时可以分为stage 1 和 stage2 ,这样经过两个stage 才得到PA,有什么好处吗?和只用stage1有什么区别吗?
Stage 1可以理解为:OS把VA转换为它自己认为的PA。这个过程中使用的是由OS管理的页表。
如果没有虚拟化,则Stage 1的结果用来访问memory。
Stage 2在虚拟系统(Hypervisor管理多个Guest OS)里有效。可以理解为:Hypervisor把Guest OS认为的“PA”进一步转化为真正的PA。这个过程使用的是另一套由Hypervisor维护的页表。Stage 2的结果作为地址来访问memory。