ARM的虛擬化原理

1、基本模型

Hypervisor運行在一個新的非安全模式,稱爲Hyp模式,Hypervisor負責客戶操作系統的切換

客戶操作系統運行在非安全特權和非特權模式。

 

用於安全擴展的軟件不需要任何改變,因爲Hypervisor本身沒有用到安全模式的任何狀態。

2、虛擬化的擴展如下

非安全狀態下的Hyp模式

中斷處理

內存管理

load和store的模擬來提供虛擬外設的處理

一些trap用來處理Hypervisor相關的特殊情況。

 

Hyp模式,是一種在非安全狀態下最高的一種模式,能夠控制比其他模式更多的功能。爲了更好的對arm的虛擬化

進行描述,我們採用如下術語:

內核模式,是指六種模式的集合,Supervisor, System , Abort, FIQ和IRQ,Undef

特權模式,是指七種模式的集合,Supervisor, System , Abort, FIQ和IRQ,Undef,以及Monitor

非特權模式,是指一種模式的集合,即 User

Hyp模式在CPSR和SPSR中的模式編碼中爲11010

 

與其他的模式相同,Hyp需要有自己的SP和SPSR來保存自己的棧指針和狀態,但是對於bank LR寄存器,會有一定的問題。理論上

我們應該允許Hypervisor在任何時刻都可以接收中斷。但是當hypervisor模式下,hypervisor自己的LR保存着過程返回直的時候,

這時候如果有中斷和異常發生,則會導致LR的數據被中斷或者異常的返回地址覆蓋。

 3、指令的擴展

一個新的指令ERET

ERET的功能在於在 Hyp模式下執行的時候,Spsr_hyp的內容賦給CPSR而ELR_Hyp的值賦給PC

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章