ARM處理器2種工作狀態(tài)了解嗎?ARM體系結(jié)構(gòu)解讀!
ARM處理器是目前主流的處理器中的一種類型,在手機(jī)端、電腦端都有ARM處理器的身影。為增進(jìn)大家對(duì)ARM處理器的認(rèn)識(shí),本文將對(duì)ARM處理器2種工作狀態(tài)以及ARM體系結(jié)構(gòu)的五個(gè)方面予以介紹。如果你對(duì)ARM處理器具有興趣,不妨繼續(xù)往下閱讀哦。
一、ARM處理器2種工作狀態(tài)
ARM處理器讀取/儲(chǔ)存 架構(gòu)不支援地址不對(duì)齊內(nèi)存存取(ARMv6內(nèi)核現(xiàn)已支援)正交指令集(任意存取指令可以任意的尋址方式存取數(shù)據(jù)Orthogonal instruction set)大量的16 × 32-bit 寄存器陣列(register file)固定的32 bits 操作碼(opcode)長度,降低編碼數(shù)量所產(chǎn)生的耗費(fèi),減輕解碼和流水線化的負(fù)擔(dān)。大多均為一個(gè)CPU周期執(zhí)行。ARM微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。
CPU的模式可以簡單的理解為當(dāng)前CPU的工作狀態(tài),比如:當(dāng)前操作系統(tǒng)正在執(zhí)行用戶程序,那么當(dāng)前CPU工作在用戶模式,這時(shí)網(wǎng)卡上有數(shù)據(jù)到達(dá),產(chǎn)生中斷信號(hào),CPU自動(dòng)切換到一般中斷模式下處理網(wǎng)卡數(shù)據(jù)(普通應(yīng)用程序沒有權(quán)限直接訪問硬件),處理完網(wǎng)卡數(shù)據(jù),返回到用戶模式下繼續(xù)執(zhí)行用戶程序。
1、特權(quán)模式
除用戶模式外,其它模式均為特權(quán)模式(Privileged Modes)。ARM 內(nèi)部寄存器 和一些 片內(nèi)外設(shè) 在硬件設(shè)計(jì)上只允許(或者可選為只允許)特權(quán)模式下訪問。此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。
2、異常模式
特權(quán)模式中除系統(tǒng)(system)模式之外的其他5種模式又統(tǒng)稱為異常模式。它們除了可以通過在特權(quán)下的程序切換進(jìn)入外,也可以由特定的異常進(jìn)入。比如硬件產(chǎn)生中斷信號(hào)進(jìn)入中斷異常模式,讀取沒有權(quán)限數(shù)據(jù)進(jìn)入中止異常模式,執(zhí)行未定義指令時(shí)進(jìn)入未定義指令中止異常模式。其中管理模式也稱為超級(jí)用戶模式,是為操作系統(tǒng)提供軟中斷的特有模式,正是由于有了軟中斷,用戶程序才可以通過系統(tǒng)調(diào)用切換到管理模式。
二、ARM體系結(jié)構(gòu)的五個(gè)方面
ARM的體系結(jié)構(gòu)或處理器結(jié)構(gòu)主要體現(xiàn)在:ARM微處理器的寄存器結(jié)構(gòu)、異常處理、存儲(chǔ)器結(jié)構(gòu)、指令系統(tǒng)、接口等方面。
1、寄存器結(jié)構(gòu):
ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄器包括:
● 31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC指針),均為32位的寄存器。
● 6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。
(1)處理器運(yùn)行模式:
ARM微處理器支持7種運(yùn)行模式,分別為:
● usr(用戶模式):ARM處理器正常程序執(zhí)行模式。
● fiq(快速中斷模式):用于高速數(shù)據(jù)傳輸或通道處理
● irq(外部中斷模式):用于通用的中斷處理
● svc(管理模式):操作系統(tǒng)使用的保護(hù)模式
● abt (數(shù)據(jù)訪問終止模式): 當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。
● sys(系統(tǒng)模式): 運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。
● und(未定義指令中止模式):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。
ARM微處理器的運(yùn)行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。
大多數(shù)的應(yīng)用程序運(yùn)行在用戶模式下,當(dāng)處理器運(yùn)行在用戶模式下時(shí),某些被保護(hù)的系統(tǒng)資源是不能被訪問的。
除用戶模式以外,其余的所有6種模式稱之為非用戶模式,或特權(quán)模式;其中除去用戶模式和系統(tǒng)模式以外的5種又稱為異常模式,常用于處理中斷或異常,以及需要訪問受保護(hù)的系統(tǒng)資源等情況。
以上便是此次小編帶來的ARM處理器相關(guān)內(nèi)容,通過本文,希望大家對(duì)ARM處理器已經(jīng)具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!