4. Changing Execution state

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

有時(shí)候需要去改變處理器的執(zhí)行狀態(tài)抑党,比如當(dāng)在運(yùn)行一個(gè)AArch64的操作系統(tǒng)時(shí)劝赔,需要去運(yùn)行一個(gè)在EL0的32-bit應(yīng)用程序稠集,系統(tǒng)必須要切換到AArch32狀態(tài)削茁,只能通過(guò)改變Exception Level來(lái)修改執(zhí)行狀態(tài)。獲取一個(gè)異常可以把執(zhí)行狀態(tài)從AArch32切換到AArch64,從異常返回可以從AArch64切換回AArch32.
當(dāng)應(yīng)用程序結(jié)束或執(zhí)行返回到OS時(shí)驶忌,系統(tǒng)可以切換回AArch64。

如圖所示:


在這兩種狀態(tài)之間的切換是在Secure monitor笑跛,Hypervisor或操作系統(tǒng)中執(zhí)行的付魔。要在相同的Exception Level中去改變執(zhí)行狀態(tài),系統(tǒng)必須切換到一個(gè)更高的Exception Level飞蹂,之后再返回到初始的Exception Level几苍。
舉個(gè)例子,當(dāng)運(yùn)行一個(gè)64-bit的OS時(shí)晤柄,你可能有32-bit和64-bit的應(yīng)用程序擦剑,在這種情況下妖胀,32-bit的應(yīng)用程序可以執(zhí)行和產(chǎn)生一個(gè)Supervisor Call(SVC)指令芥颈,或者接受一個(gè)中斷,從而引起處理器切換到EL1和AArch64赚抡。OS可以切換任務(wù)并返回到EL0和AArch64狀態(tài)爬坑。實(shí)際上,這意味著不能混合使用32位和64位涂臣,因?yàn)樗鼈冎g沒(méi)有直接的調(diào)用方式盾计。

在AArch64和AArch32兩個(gè)執(zhí)行狀態(tài)之間的切換要點(diǎn),總結(jié)如下:

  • 切換到AArch32赁遗,需要處理器從高的Exception Level跳轉(zhuǎn)到低的Exception Level署辉,通過(guò)執(zhí)行ERET指令退出異常處理程序時(shí)完成;
  • 切換到AArch64岩四,需要處理器從低的Exception Level跳轉(zhuǎn)到高的Exception Level哭尝,可以通過(guò)指令執(zhí)行或外部信號(hào)來(lái)完成;
  • 當(dāng)獲取異称驶停或從異常中返回時(shí)材鹦,Exception Level保持不變逝淹,那么執(zhí)行狀態(tài)也不能改變;
  • AArch64和AArch32執(zhí)行狀態(tài)有類(lèi)似的Exception Level桶唐,但是在Secure和Non-Secure操作中有一些區(qū)別栅葡。異常產(chǎn)生時(shí)處理器所處的執(zhí)行狀態(tài),會(huì)限制其他執(zhí)行狀態(tài)下可用的Exception levels尤泽;
  • 在一個(gè)特定的Exception Level中欣簇,ARMv8-A處理器在AArch32執(zhí)行狀態(tài)下,使用和ARMv7-A中相同的異常模型坯约;
  • EL3中的代碼不能將異常提升管到更高的Exception Level醉蚁,因此不能更改執(zhí)行狀態(tài),Reset除外鬼店;

對(duì)于最高級(jí)別的Exception Level(在ARMv8-A處理器中為EL3)网棍,每個(gè)Exception Level使用的執(zhí)行狀態(tài)都是固定的,Exception Level只能通過(guò)Reset來(lái)更改妇智。對(duì)于EL2和EL1滥玷,可以通過(guò)使用更高級(jí)別的系統(tǒng)寄存器來(lái)控制。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巍棱,一起剝皮案震驚了整個(gè)濱河市惑畴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌航徙,老刑警劉巖如贷,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異到踏,居然都是意外死亡杠袱,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)窝稿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)楣富,“玉大人,你說(shuō)我怎么就攤上這事伴榔∥坪” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵踪少,是天一觀的道長(zhǎng)塘安。 經(jīng)常有香客問(wèn)我,道長(zhǎng)援奢,這世上最難降的妖魔是什么兼犯? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上免都,老公的妹妹穿的比我還像新娘锉罐。我一直安慰自己,他們只是感情好绕娘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布脓规。 她就那樣靜靜地躺著,像睡著了一般险领。 火紅的嫁衣襯著肌膚如雪侨舆。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天绢陌,我揣著相機(jī)與錄音挨下,去河邊找鬼。 笑死脐湾,一個(gè)胖子當(dāng)著我的面吹牛臭笆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播秤掌,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼愁铺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了闻鉴?” 一聲冷哼從身側(cè)響起茵乱,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孟岛,沒(méi)想到半個(gè)月后瓶竭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渠羞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年斤贰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堵未。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡腋舌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渗蟹,到底是詐尸還是另有隱情,我是刑警寧澤赞辩,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布雌芽,位于F島的核電站,受9級(jí)特大地震影響辨嗽,放射性物質(zhì)發(fā)生泄漏世落。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一糟需、第九天 我趴在偏房一處隱蔽的房頂上張望屉佳。 院中可真熱鬧谷朝,春花似錦、人聲如沸武花。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)体箕。三九已至专钉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間累铅,已是汗流浹背跃须。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娃兽,地道東北人菇民。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像投储,于是被迫代替她去往敵國(guó)和親玉雾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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