2階段頁錶轉換過程

1.所有ARMv8指令集都提供返回頁錶轉換結果的指令(作爲指令的參數提供 並 使用指定的轉換階段或區域)

2.指令僅執行-指令所在安全狀態和異常等級能訪問的-轉換

非安全態下的指令不能得到-Secure address-轉換階段的結果

非安全態下,低異常等級下執行的指令,不能得到高異常等級控制的頁錶轉換階段

3.AT <operation>,<Xt>

operation可以是S1E1R-S1E1W-S1E0R-S12E1W-S12E0R-S1E2R-S1E2W-S1E3R-S1E3W

3.1 上述組合中S-1/12標誌階段

S1:一階段轉換

S12:一階段轉換後就二階段轉換

3.2 上述組合中E-0/1/2/3標誌指令的異常等級

E0/1/2/3對應EL0/1/2/3

!!!!如果執行的指令中Ex超過當前異常等級,指令會是UNDEFINED!!!!

3.3 上述組合中W/R是讀、寫請求

Xt是要轉換的地址。

4.EL3與EL2的衝突一致性

如果指令不是在EL2態,但是在EL3態,AT S12E*指令就不是UNDEFINED了,而是與AT S1E*一樣,

就是不轉換二階段頁表了;與EL2態下二階段轉換關閉的情況一樣。

5.所有的這些指令,當前的上下文信息決定使用哪個TLB緩存結構,以及TTW如何執行。

執行的狀態(IMPLEMENTATION DEFINED)決定TLB的頁錶轉換或TTW結果是否返回值。

ARM推薦這些指令在TLB entries可能與內存中的底層頁表不一致的時候不要用(意思是會轉錯?)。

 

6.非安全態一階頁錶轉換關閉後

AT S1/12E0/1*的轉換操作反映HCR_EL2.DC(未明確)

7.在EL3中(即SCR_EL3.NS==0)

執行:

AT S1E2R/W

是UNDEFINED

執行:

AT S12E*

等同於

AT S1E*

意思就是:EL3中下1階段-EL2轉換無效;1+2階段轉換就是1階段轉換。

TZ沒有EL2嘛

8.在頁錶轉換中同步生成的fault

Translation fault轉換失敗

Access flat fault訪問標誌錯誤

Permission fault權限錯誤

Domain fault域失敗(AArch32)

Address size fault地址size錯誤

TLB conflict faultTLB衝突錯誤

synchronous external aborts during TTWTTW時外部退出

上述錯誤-在1階段轉換時錯誤源是確定的,但在12階段連轉時,錯誤就會是1或2階段產生的;

對於1階段非安全態EL0和1的轉換,錯誤可能發生在:1階段TTW發生的2階段地址訪問。

!!!!這些faults並不是作爲地址轉換指令的異常來觸發,需要從PAR_EL1.FST讀取fault信息。

9.TTW時的external aborts會被當做Data Abort異常

當2階段TTW出現Synchronous external abort異常

EL3的就會產生EL3的Data Abort異常

EL2/1的,Data Abort的異常等級將會與Synchronous external abort的異常等級一致

當頁錶轉換引起同步Data Abort異常

PAR_EL1是UNKNOWN

對應異常等級的ESR_ELx指示fault是由於cache維護指令的TTW

對應異常等級的FAR_ELx持有被轉的虛擬地址

10.對於非安全EL1態執行的AT S1E0*和AT S1E1*指令,如果TTW時發生同步2階段內存訪問fault,

如果SCR_EL3.EA==1,則會發生EL3的同步external abort(on 2階段TTW)。

其他的在TTW發生的同步2階段fault將會是EL2異常,並且:

PAR_EL1是UNKNOWN

ESR_EL2指示fault發生在TTW,是cache維護指令的fault

HPFAR_EL2只有fault的IPA

FAR_EL2持有VA

上面說的這個fault可以發生於以下原因:

stage 2 Translation fault2階段頁錶轉換失敗

stage 2 Acess fault2階段訪問失敗

Stage 2 Permission fault2階段權限失敗

stage 2 Address size fault2階段地址size失敗

synchronous external abort on a stage 2 translation table walk2階段TTW時同步external aborts

發佈了37 篇原創文章 · 獲贊 4 · 訪問量 3380
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章