3. Changing Exception Levels

ARMv8-A相關(guān)歷史文章:

ARM架構(gòu)的早期版本定義了一個基于處理器模式的異常模型府树,針對每一個異常類型燕雁,體系結(jié)構(gòu)都定義了接收異常的模式,稱為異常的目標(biāo)模式蹂窖。針對一個異常,configurable traps,enables逗堵,routing controls能改變處理器的目標(biāo)模式力喷。ARMv8-A的AArch32遵循這個模型刽漂。

當(dāng)處理器接收異常時:

  • 保存當(dāng)前程序的狀態(tài)到目標(biāo)模式的SPSR寄存器中;
  • 保存異常的返回地址(如果不在Hyp模式弟孟,將地址保存到目標(biāo)模式的LR寄存器中贝咙;如果在Hyp模式,將地址保存到ELR_hyp寄存器中)拂募;
  • 跳轉(zhuǎn)到目標(biāo)模式執(zhí)行庭猩,除非是在Monitor模式下窟她,否則不會改變Security狀態(tài);

在ARMv7-A體系架構(gòu)使用PL0-PL2三個特權(quán)級蔼水,在ARMv8-A中震糖,Exception Levels取代了特權(quán)級,但是PL1還能繼續(xù)發(fā)揮特殊作用趴腋。
下圖將描述ARMv7-A處理器的全部模式吊说,包括虛擬化擴(kuò)展和安全擴(kuò)展。ARMv7-A為每個模式分配了執(zhí)行特權(quán)优炬,其中執(zhí)行特權(quán)的定義獨立于安全狀態(tài)颁井。



在ARMv7-A體系架構(gòu)中,處理器模式可以在特權(quán)軟件的控制下進(jìn)行切換蠢护,或者在異常發(fā)生的時候自動切換雅宾。當(dāng)異常發(fā)生時,處理器會保存當(dāng)前的執(zhí)行狀態(tài)和返回地址葵硕,然后進(jìn)入處理異常的目標(biāo)模式秀又,可能會禁止硬件中斷。

  • 應(yīng)用程序運行在PL0最低特權(quán)級下贬芥,也就是非特權(quán)級的用戶模式吐辙;
  • 操作系統(tǒng)運行在PL1;
  • 虛擬化擴(kuò)展和Hypervisor運行在PL2級別蘸劈;
  • Secure monitor運行在PL1昏苏,在Secure world和Normal world之間提供通道;

在ARMv8-A中威沫,沒有改變這種異常模型贤惯,但是增加了幾條規(guī)則,來覆蓋在ARMv7-A中不支持的case棒掠,規(guī)則如下:

  • 如果EL2使用的是AArch64孵构,那么任何針對Hyp模式的異常都將在EL2處理,并使用AArch64烟很;
  • 如果EL3使用的是AArch64颈墅,那么任何針對Monitor模式的異常都將在EL3處理,并使用AArch64雾袱;

在AArch64中恤筛,處理器模式和Exception levels的映射關(guān)系如下圖所示:



當(dāng)異常發(fā)生時,處理器將改變Exception Level(相當(dāng)于ARMv7-A中的處理器模式)來處理異常類型芹橡。Secure monitor在AArch32中時處在PL1狀態(tài)毒坛,在AArch64中處在EL3狀態(tài)。

3.1 Mapping the processor modes onto the Exception levels

安全狀態(tài)下的Exception level取決于EL3是否使用了AArch64,這個會影響處理器模式如何映射到Exception levels煎殷。

  • 當(dāng)EL3使用AArch64時屯伞,映射關(guān)系如下:



    ARMv7-A中的Monitor模式,在ARMv8-A中不可用豪直,原因是EL3提供了Secure Monitor的功能劣摇,而EL3使用的是AArch64。

  • 當(dāng)EL3使用的是AArch32時顶伞,映射關(guān)系如下:


比較兩張圖可以看出饵撑,在Normal world中的映射關(guān)系是一樣的剑梳;在Secure world中唆貌,Supervisor mode、Abort mode垢乙、IRQ mode锨咙、FIQ mode、Undefined mode還有System mode從EL1提升到了EL3追逮,這是因為:

  • EL3提供了Secure Monitor功能酪刀;
  • ARMv6 Security擴(kuò)展將Monitor mode定義為安全狀態(tài)模式,與Supervisor mode钮孵、Abort mode骂倘、IRQ mode、FIQ mode巴席、Undefined mode和System mode同一級別历涝。Secure Monitor在EL3中,這些模式也就與Secure Monitor就一起處在EL3的狀態(tài)了漾唉。

這種重新映射對處理器的操作沒有任何影響荧库,AArch32狀態(tài)內(nèi)的操作完全按照處理器模式之間的交互來定義的,沒有涉及到關(guān)聯(lián)的特權(quán)級別或Exception levels赵刑。

3.2 Privilege levels in ARMv8-A

在Secure狀態(tài)中分衫,處理器模式(Supervisor、Abort般此、IRQ蚪战、FIQ、Undefined铐懊、Syste)在EL3使用AArch32時屎勘,是EL3模式;在其他情況下則是EL1模式居扒。
為了避免這些復(fù)雜的描述概漱,這些模式可以被描述為PL1模式,反映它們在ARMv7-A中的特權(quán)級別喜喂,與此相關(guān)的:

  • 在這些模式下影響執(zhí)行的控制瓤摧,都稱為PL1控制竿裂;
  • 用于在這些模式或User mode中執(zhí)行的轉(zhuǎn)換系統(tǒng),稱為PL1&0 轉(zhuǎn)換體制照弥;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻异,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子这揣,更是在濱河造成了極大的恐慌悔常,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件给赞,死亡現(xiàn)場離奇詭異机打,居然都是意外死亡,警方通過查閱死者的電腦和手機片迅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門残邀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柑蛇,你說我怎么就攤上這事芥挣。” “怎么了耻台?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵空免,是天一觀的道長。 經(jīng)常有香客問我盆耽,道長蹋砚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任征字,我火速辦了婚禮都弹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匙姜。我一直安慰自己畅厢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布氮昧。 她就那樣靜靜地躺著框杜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪袖肥。 梳的紋絲不亂的頭發(fā)上咪辱,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音椎组,去河邊找鬼油狂。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的专筷。 我是一名探鬼主播弱贼,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼磷蛹!你這毒婦竟也來了吮旅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤味咳,失蹤者是張志新(化名)和其女友劉穎庇勃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體槽驶,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡责嚷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了捺檬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片再层。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡贸铜,死狀恐怖堡纬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒿秦,我是刑警寧澤烤镐,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站棍鳖,受9級特大地震影響炮叶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渡处,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一镜悉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧医瘫,春花似錦侣肄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至僚纷,卻和暖如春矩距,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怖竭。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工锥债, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓哮肚,卻偏偏與公主長得像毅整,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绽左,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容