第2章 ARM體系結(jié)構(gòu)及編程模型.ppt_第1頁
第2章 ARM體系結(jié)構(gòu)及編程模型.ppt_第2頁
第2章 ARM體系結(jié)構(gòu)及編程模型.ppt_第3頁
第2章 ARM體系結(jié)構(gòu)及編程模型.ppt_第4頁
第2章 ARM體系結(jié)構(gòu)及編程模型.ppt_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器的寄存器組織,ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM處理器的工作狀態(tài),ARM處理器的存儲器格式,ARMAdvanced RISC Machines,ARM既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),1991年ARM公司成立于英國劍橋的一個(gè)谷倉里,經(jīng)過幾年的發(fā)展已經(jīng)成為,全球主要半導(dǎo)體芯片生產(chǎn)廠家和操作系統(tǒng)的開發(fā)商的最主要合作伙伴,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。,ARM 公司的Chip l

2、ess模式,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場。,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75以上的市場份額,ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。,我國的中興集成電路、大唐電訊、中芯國際和上海華虹,以及國外的一些公司如德州儀器、意法半導(dǎo)體、Philips、Intel、Samsung等都推出了自己設(shè)計(jì)的基于ARM核的處理器。,ARM微處理器的應(yīng)用領(lǐng)域,工業(yè)控制領(lǐng)域:作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控

3、制器市場的大部分市場份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM微控制器的低功耗、高性價(jià)比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn)。,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),到目前為止,ARM微處理器及技術(shù)的應(yīng)用已經(jīng)廣泛深入到國民經(jīng)濟(jì)的各個(gè)領(lǐng)域,ARM微處理器的應(yīng)用領(lǐng)域,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競爭優(yōu)勢。此外,ARM在語音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。,消費(fèi)類電子產(chǎn)品:ARM技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。,成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大

4、部分采用ARM技術(shù)。手機(jī)中的32位SIM智能卡也采用了ARM技術(shù)。,ARM微處理器的特點(diǎn)低功耗、低成本、高性能,采用RISC指令集,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),高性能,使用大量的寄存器,ARM/THUMB指令支持,三/五級流水線,ARM微處理器的特點(diǎn)采用RISC體系結(jié)構(gòu),ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),采用RISC架構(gòu)的ARM處理器一般具有如下特點(diǎn):,固定長度的指令格式,指令規(guī)整、簡單、基 本尋址方式有23種;,使用單周期指令,便于流水線操作執(zhí)行;,大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進(jìn)行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。,ARM微處理器的特點(diǎn)大量使用寄存器,ARM技

5、術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器共有37個(gè)寄存器,被分為若干個(gè)組,這些寄存器包括:,31個(gè)通用寄存器,包括程序計(jì)數(shù)器(PC 指針),均為32位的寄存器;,6個(gè)狀態(tài)寄存器,用以標(biāo)識CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位。,ARM微處理器的特點(diǎn)高效的指令系統(tǒng),ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM微處理器支持兩種指令集:ARM指令集和Thumb指令集。,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省3040以上的存儲空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。,ARM微處理器的特點(diǎn)低功耗、高效率,ARM技術(shù)的應(yīng)用領(lǐng)域及

6、特點(diǎn),除此以外,ARM體系結(jié)構(gòu)還在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:,所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率。,可用加載/存儲指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率。,可在一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理。,在循環(huán)處理中使用地址的自動增減來提高運(yùn)行效率。,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器的寄存器組織,ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM處理器的工作狀態(tài),ARM處理器的存儲器格式,ARM微處理器系列,ARM微處理器系列,ARM7系列,

7、ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Intel的Xscale,其中,ARM7、ARM9、ARM9E和ARM10為4個(gè)通用處理器系列,每一個(gè)系列提供一套相對獨(dú)特的性能來滿足不同應(yīng)用領(lǐng)域的需求。SecurCore系列專門為安全要求較高的應(yīng)用而設(shè)計(jì)。,ARM7微處理器系列,ARM7系列是為低功耗的32位RISC處理器,最適合用于對價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7系列有如下特點(diǎn):,具有調(diào)試開發(fā)方便;,極低的功耗,適合對功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;,能夠提供三級流水線結(jié)構(gòu);,代碼密度高,并兼容16位的Thumb指令集;,對操作系統(tǒng)的支持廣泛,如Windo

8、ws CE、Linux、Palm OS等;,指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級換代;,主頻最高可達(dá)130M,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。,ARM微處理器系列,ARM7微處理器系列,ARM微處理器系列,主要應(yīng)用領(lǐng)域:工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動電話等多種多媒體和嵌入式應(yīng)用。,ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為: T:支持

9、16為壓縮指令集Thumb; D:支持片上Debug; M:內(nèi)嵌硬件乘法器(Multiplier) I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn);,ARM9微處理器系列,ARM微處理器系列,ARM9系列微處理器在高性能和低功耗特性方面提供最佳的表現(xiàn)。具有以下特點(diǎn):,5級整數(shù)流水線,指令執(zhí)行效率更高。,存儲器采用哈佛結(jié)構(gòu)。,支持32位ARM指令集和16位Thumb指令集。,支持32位的高速AMBA總線接口。,全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。,MPU支持實(shí)時(shí)操作系統(tǒng)。,支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。,ARM

10、9微處理器系列,ARM9系列微處理器主要應(yīng)用于無線設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。,ARM微處理器系列,ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場合。,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器的寄存器組織,ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM處理器的工作狀態(tài),ARM處理器的存儲器格式,處理器模式,ARM微處理器的工作模式,usr:ARM處理器正常的程序執(zhí)行狀態(tài),fiq:用于高速數(shù)據(jù)傳輸或通道處理,irq

11、:用于通用的中斷處理,svc:操作系統(tǒng)使用的保護(hù)模式,abt:用于虛擬存儲及存儲保護(hù),sys:運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù),und:當(dāng)出現(xiàn)未定義指令終止時(shí)進(jìn)入該模式,用戶模式和特權(quán)模式,ARM微處理器的工作模式,除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式,特權(quán)模式下,程序可以訪問所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。,特權(quán)模式中,除系統(tǒng)模式外,其他5種模式又稱為異常模式,大多數(shù)的用戶程序運(yùn)行在用戶模式下,此時(shí),應(yīng)用程序不能夠訪問一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序也不能直接進(jìn)行處理器模式的切換。,用戶模式下,當(dāng)需要進(jìn)行處理器模式切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進(jìn)

12、行處理器模式的切換。,模式切換,ARM微處理器的工作模式,處理器模式可以通過軟件進(jìn)行切換,也可以通過外部中斷或者異常處理過程進(jìn)行切換。,當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式下都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí),用戶模式下的寄存器不被破壞。,系統(tǒng)模式并不是通過異常進(jìn)入的,它和用戶模式具有完全一樣的寄存器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問所有的系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問所有的系統(tǒng)資源,同時(shí)該任務(wù)仍然使用用戶模式的寄存器組,而不是使用異常模式下相應(yīng)的寄存器組,這樣

13、可以保證當(dāng)異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞。,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM 處理器的寄存器組織,ARM處理器的存儲器格式,ARM處理器的工作狀態(tài),寄存器組織,ARM微處理器共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器。但是這些寄存器不能被同時(shí)訪問,具體哪些寄存器是可編程訪問的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式。但在任何時(shí)候,通用寄存器R14R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問的。,ARM微處理器的寄存器格式,ARM狀態(tài)下的寄存

14、器組織,通用寄存器:通用寄存器包括R0R15,可以分為三類:,未分組寄存器R0R7,分組寄存器R8R14,程序計(jì)數(shù)器PC(R15),ARM微處理器的寄存器格式,ARM狀態(tài)下的寄存器組織,ARM微處理器的寄存器格式,未分組寄存器R0R7,ARM微處理器的寄存器格式,在所有的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理寄存器,可能會造成寄存器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意。,分組寄存器R8R12,ARM微處理器的寄存器格式,每次所訪問的物理寄存器與處理器當(dāng)前的運(yùn)行模式有

15、關(guān),R8R12:每個(gè)寄存器對應(yīng)兩個(gè)不同的物理寄存器,當(dāng)使用fiq模式時(shí),訪問寄存器R8_fiqR12_fiq;,當(dāng)使用除fiq模式以外的其他模式時(shí),訪問寄存器R8_usrR12_usr。,分組寄存器R13R14,ARM微處理器的寄存器格式,R13、R14:每個(gè)寄存器對應(yīng)6個(gè)不同的物理寄存器,其中的一個(gè)是用戶模式與系統(tǒng)模式共用,另外5個(gè)物理寄存器對應(yīng)于其他5種不同的運(yùn)行模式,采用以下的記號來區(qū)分不同的物理寄存器:,R13_,R14_,mode為以下幾種之一:usr、fiq、irq、svc、abt、und。,堆棧指針R13,ARM微處理器的寄存器格式,R13在ARM指令中常用作堆棧指針,但這只是一

16、種習(xí)慣用法,用戶也可使用其他的寄存器作為堆棧指針。,在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13作為堆棧指針。,由于處理器的每種運(yùn)行模式均有自己獨(dú)立的物理寄存器R13,在初始化部分,都要初始化每種模式下的R13,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式時(shí),可以將需要保護(hù)的寄存器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回時(shí),則從對應(yīng)的堆棧中恢復(fù)。,子程序連接寄存器R14,ARM微處理器的寄存器格式,R14也稱作子程序連接寄存器或連接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),可以從R14中得到R15(程序計(jì)數(shù)器PC)的備份。其他情況下,R14用作通用寄存器。,在每一種運(yùn)行模式下,都可用R14保存子

17、程序的返回地址,當(dāng)用BL或BLX指令調(diào)用子程序時(shí),將PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將R14的值拷貝回PC,即可完成子程序的調(diào)用返回。,BLSUB1 SUB1:STMFDSP!, , LR /*將R14存入堆棧*/ LDMFDSP!,PC/*完成子程序返回 */,程序計(jì)數(shù)器PC(R15),ARM微處理器的寄存器格式,ARM狀態(tài)下,位1:0為0,位31:2用于保存PC;,Thumb狀態(tài)下,位0為0,位31:1用于保存PC;,R15雖然也可用作通用寄存器,但一般不這么使用,因?yàn)閷15的使用有一些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。,由于ARM體系結(jié)構(gòu)采用了多級流水

18、線技術(shù),對于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。,程序狀態(tài)寄存器(CPSR/SPSR),寄存器R16用作CPSR(當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問,它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。,每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(備份的程序狀態(tài)寄存器),異常發(fā)生時(shí),SPSR用于保存CPSR的值,從異常退出時(shí)則可由SPSR來恢復(fù)CPSR。,由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒有SPSR,當(dāng)在這兩種模式下訪問SPSR,結(jié)果是未知的。,ARM微

19、處理器的寄存器格式,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 異常處理,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 處理器的寄存器組織,ARM處理器的存儲器格式,ARM處理器的工作狀態(tài),ARM處理器的工作模式,異常(Exceptions),當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會按固定的優(yōu)先級進(jìn)行處理。,ARM異常處理,ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常

20、與中斷的概念并不完全等同。,ARM體系結(jié)構(gòu)所支持的異常類型,ARM異常處理,對異常的響應(yīng),ARM異常處理,當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會執(zhí)行以下幾步操作,將下一條指令的地址存入相應(yīng)連接寄存器LR,以便程序在處理異常返回時(shí)能從正確的位置重新開始執(zhí)行。,將CPSR復(fù)制到相應(yīng)的SPSR中。,根據(jù)異常類型,強(qiáng)制設(shè)置CPSR的運(yùn)行模式位。,強(qiáng)制PC從相關(guān)的異常向量地址取下一條指令執(zhí)行,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處。,R14_ = Return Link SPSR_ = CPSR CPSR4:0 = Exception Mode Number CPSR5 = 0 If = Reset or FIQ

21、 then CPSR6 = 1 CPSR7 = 1 PC = Exception Vector Address,異常響應(yīng)偽代碼,ARM異常處理,處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動切換到ARM狀態(tài)。ARM微處理器對異常的響應(yīng)過程用偽碼可以描述為:,在ARM狀態(tài)下執(zhí)行,禁止快速中斷,禁止正常中斷,轉(zhuǎn)入異常入口地址,從異常返回,ARM異常處理,異常處理完畢之后,ARM微處理器會執(zhí)行以下幾步操作從異常返回:,將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。,將SPSR復(fù)制回CPSR中。,若在進(jìn)入異常處理時(shí)設(shè)置了中斷禁止位,要在此清除。,可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處

22、理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。,FIQ(Fast Interrupt Request),FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。,ARM異常處理,若將CPSR的F位置為1,則會禁止FIQ中斷,若將CPSR的F位清零,處理器會在指令執(zhí)行時(shí)檢查FIQ的輸入。注意只有在特權(quán)模式下才能改變F位的狀態(tài)。,可由外部通過對處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入FIQ模式,F(xiàn)IQ處理程序均可以執(zhí)行以下指令從FIQ模式返回: SUBS PC,R14_fiq ,#4,IRQ(Interrupt Request),IRQ異常屬于正常的中

23、斷請求,可通過對處理器的nIRQ引腳輸入低電平產(chǎn)生,IRQ的優(yōu)先級低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。,ARM異常處理,若將CPSR的I位置為1,則會禁止IRQ中斷,若將CPSR的I位清零,處理器會在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權(quán)模式下才能改變I位的狀態(tài)。,不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入IRQ模式,IRQ處理程序均可以執(zhí)行以下指令從IRQ模式返回: SUBS PC , R14_irq , #4 ; PC=R14_irq-4,ABORT(中止),產(chǎn)生中止異常意味著對存儲器的訪問失敗。ARM微處理器在存儲器訪問周期內(nèi)檢查是否發(fā)生中止異常。,ARM

24、異常處理,中止異常包括兩種類型: 指令預(yù)取中止:發(fā)生在指令預(yù)取時(shí)。 數(shù)據(jù)中止:發(fā)生在數(shù)據(jù)訪問時(shí)。,若數(shù)據(jù)中止發(fā)生,系統(tǒng)的響應(yīng)與指令的類型有關(guān)。,當(dāng)確定了中止的原因后,Abort處理程序均可以執(zhí)行以下指令從中止模式返回,無論是在ARM狀態(tài)還是Thumb狀態(tài): SUBS PC, R14_abt, #4;指令預(yù)取中止 SUBS PC, R14_abt, #8;數(shù)據(jù)中止,Software Interruupt(軟件中斷),軟件中斷指令(SWI)用于進(jìn)入管理模式,常用于請求執(zhí)行特定的管理功能。軟件中斷處理程序執(zhí)行以下指令可以從SWI模式返回,無論是在ARM狀態(tài)還是Thumb狀態(tài): MOVS PC , R

25、14_svc 以上指令恢復(fù)PC(從R14_svc)和CPSR(從SPSR_svc)的值,并返回到SWI的下一條指令。,ARM異常處理,Undefined Instruction(未定義指令),ARM異常處理,當(dāng)ARM處理器遇到不能處理的指令時(shí),會產(chǎn)生未定義指令異常。采用這種機(jī)制,可以通過軟件仿真擴(kuò)展ARM或Thumb指令集。 處理器執(zhí)行以下程序返回,無論是在ARM狀態(tài)還是Thumb狀態(tài): MOVS PC, R14_und 以上指令恢復(fù)PC(從R14_und)和CPSR(從SPSR_und)的值,并返回到未定義指令后的下一條指令。,異常向量表(Exception Vectors),ARM異常處理

26、,異常優(yōu)先級(Exception Priorities),ARM異常處理,應(yīng)用程序中的異常處理,當(dāng)系統(tǒng)運(yùn)行時(shí),異??赡軙S時(shí)發(fā)生,為保證在ARM處理器發(fā)生異常時(shí)不至于處于未知狀態(tài),在應(yīng)用程序的設(shè)計(jì)中,首先要進(jìn)行異常處理,采用的方式是在異常向量表中的特定位置放置一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到異常處理程序,當(dāng)ARM處理器發(fā)生異常時(shí),程序計(jì)數(shù)器PC會被強(qiáng)制設(shè)置為對應(yīng)的異常向量,從而跳轉(zhuǎn)到異常處理程序,當(dāng)異常處理完成以后,返回到主程序繼續(xù)執(zhí)行。 我們需要處理所有的異常,盡管我們可以簡單的在某些異常處理程序處放置死循環(huán)。,ARM異常處理,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器的寄存器組織,

27、ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM處理器的工作狀態(tài),ARM處理器的存儲器格式,ARM微處理器的存儲器格式,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié)),ARM微處理器的存儲器格式,ARM體系結(jié)構(gòu)將存儲器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個(gè)存儲的字?jǐn)?shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲的字?jǐn)?shù)據(jù),依次排列。,ARM體系結(jié)構(gòu)可以用兩種方法存儲字?jǐn)?shù)據(jù),稱之為大端格式和小端格式,ARM體系結(jié)構(gòu)的存儲器格式大端格式,ARM微處理器的存儲器格式,在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲在低地址中,

28、而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中,ARM體系結(jié)構(gòu)的存儲器格式小端格式,ARM微處理器的存儲器格式,與大端存儲格式相反,在小端存儲格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié),指令長度及數(shù)據(jù)類型,ARM微處理器的指令長度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。,ARM微處理器的存儲器格式,ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類型,其中,字需要4字節(jié)對齊(地址的低兩位為0)、半字需要2字節(jié)對齊(地址的最低位為0),非對齊的存儲訪問操作,在ARM種,如果存儲單元的地址沒有遵守對齊規(guī)則,則稱為非對齊的存儲訪問操作。

29、,ARM微處理器的存儲器格式,非對齊的指令預(yù)取操作,非對齊的數(shù)據(jù)訪問操作,非對齊的指令預(yù)取操作,當(dāng)處理器處于ARM狀態(tài)期間,如果寫入到寄存器PC中的值是非字對齊的,要么指令執(zhí)行的結(jié)果不可預(yù)知,要么地址值中最低兩位被忽略。,ARM微處理器的存儲器格式,當(dāng)處理器處于THUMB狀態(tài)期間,如果寫入到寄存器PC中的值是非半字對齊的,要么指令執(zhí)行的結(jié)果不可預(yù)知,要么地址值中最低位被忽略。,非對齊的數(shù)據(jù)訪問操作,對于Load/Store操作,如果是非對齊的數(shù)據(jù)訪問操作,系統(tǒng)定義了三種可能的結(jié)果:,ARM微處理器的存儲器格式,執(zhí)行的結(jié)果不可預(yù)知,忽略字單元地址的低兩位的值,即訪問地址為(address AND

30、 0XFFFFFFFC)的字單元;忽略半字單元地址的最低位的值,即訪問地址為(address AND 0XFFFFFFFE)的半字單元。,忽略字單元地址的低兩位的值;忽略半字單元地址的最低位的值;由存儲系統(tǒng)實(shí)現(xiàn)這種忽略。也就是說,這時(shí)該地址值原封不動地送到存儲系統(tǒng)。,當(dāng)發(fā)生非對齊地?cái)?shù)據(jù)訪問時(shí),到底采用上述三種方法中的哪一種,是由各指令指定的。,1,3,2,4,5,ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn),ARM 處理器的寄存器組織,ARM處理器的工作模式,ARM微處理器系列,6,7,第2章 ARM體系結(jié)構(gòu)及編程模型,ARM 異常處理,ARM處理器的工作狀態(tài),ARM處理器的存儲器格式,ARM微處理器的工作狀態(tài)

31、,ARM微處理器的工作狀態(tài),從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:,ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對齊的ARM指令;,Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對齊的Thumb指令。,ARM與THUMB,THUMB指令是ARM指令的子集,ARM微處理器的工作狀態(tài),可以相互調(diào)用,只要遵循一定的調(diào)用規(guī)則,Thumb指令與ARM指令的時(shí)間效率和空間效率關(guān)系為:,存儲空間約為ARM代碼的6070,指令數(shù)比ARM代碼多約3040,存儲器為32位時(shí)ARM代碼比Thumb代碼快約40,存儲器為16位時(shí)Thumb比ARM代碼快約4050,使用Thumb代碼,存儲器

32、的功耗會降低約30,狀態(tài)切換方法,ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,,ARM微處理器的工作狀態(tài),在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。,進(jìn)入Thumb狀態(tài),當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切換到Thumb狀態(tài)。,當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動切換到Thumb狀態(tài)。,ARM微處理器的工作狀態(tài),切換到ARM狀態(tài),當(dāng)操作數(shù)寄存器的狀態(tài)位為0時(shí),執(zhí)行BX指令時(shí)可以使微處理器從Thumb狀態(tài)切換到ARM狀態(tài)。,ARM微處理器的工作狀態(tài),在處理器進(jìn)行異常處理時(shí),把PC指針放入異常模式鏈接寄存器中,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。,Thumb狀態(tài)下的寄存器組織,Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集,程序可以直接訪問8個(gè)通用寄存器(R7R0)、程序計(jì)數(shù)器(PC)、堆棧指針(SP)、連接寄存器(LR)和CPSR。,同樣,每一種特權(quán)模式下都有一組SP、LR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論