版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1提綱13245ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM 處理器的寄存器組織ARM處理器的工作模式ARM微處理器系列67第三章 ARM體系結(jié)構(gòu)及編程模型ARM 異常處理ARM處理器的工作狀態(tài)ARM處理器的存儲(chǔ)器格式2ARMAdvanced RISC Machines ARM(Advanced RISC Machines),既可以認(rèn)為是一個(gè)公司的名字,也可以認(rèn)為是對(duì)一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)1991年ARM公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán)。3ARM 公司的Chip less模式世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買其設(shè)計(jì)的ARM微處理器核,根據(jù)
2、各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進(jìn)入市場(chǎng)。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處 理器75以上的市場(chǎng)份額,ARM技術(shù)正在逐步滲入到我們生活的各個(gè)方面。我國(guó)的中興集成電路、大唐電訊、中芯國(guó)際和上海華虹,以及國(guó)外的一些公司如德州儀器、意法半導(dǎo)體、Philips、Intel、Samsung等都推出了自己設(shè)計(jì)的基于ARM核的處理器。4ARM微處理器的應(yīng)用領(lǐng)域 工業(yè)控制領(lǐng)域:作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場(chǎng)的大部分市場(chǎng)份額,同時(shí)也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM微控制器的低
3、功耗、高性價(jià)比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn)。ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)到目前為止,ARM微處理器及技術(shù)的應(yīng)用已經(jīng)廣泛深入到國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域5ARM微處理器的應(yīng)用領(lǐng)域ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。此外,ARM在語(yǔ)音及視頻處理上行了優(yōu)化,并獲得廣泛支持,也對(duì)DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。消費(fèi)類電子產(chǎn)品:ARM技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分采用ARM技術(shù)。手機(jī)中的32位SIM智能卡也采用了ARM技術(shù)。6ARM微處理器的特點(diǎn)低功耗
4、、低成本、高性能采用RISC指令集ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)低功耗、低成本、高性能使用大量的寄存器ARM/THUMB指令支持三/五級(jí)流水線7ARM微處理器的特點(diǎn)采用RISC體系結(jié)構(gòu)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)采用RISC架構(gòu)的ARM處理器一般具有如下特點(diǎn):固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單、基 本尋址方式有23種;使用單周期指令,便于流水線操作執(zhí)行;大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載/存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率。8ARM微處理器的特點(diǎn)大量使用寄存器ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM 處理器共有37個(gè)寄存器,被分為若干個(gè)組,這些寄存器包括:31個(gè)通用寄存器,包
5、括程序計(jì)數(shù)器(PC 指針),均為32位的寄存器;6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位。9ARM微處理器的特點(diǎn)高效的指令系統(tǒng)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)ARM微處理器支持兩種指令集:ARM指令集和Thumb指令集。ARM指令為32位的長(zhǎng)度,Thumb指令為16位長(zhǎng)度。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省3040以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。10ARM微處理器的特點(diǎn)其他技術(shù)ARM技術(shù)的應(yīng)用領(lǐng)域及特點(diǎn)除此以外,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:所有的指令都可根
6、據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率??捎眉虞d/存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率??稍谝粭l數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理。在循環(huán)處理中使用地址的自動(dòng)增減來(lái)提高運(yùn)行效率。11ARM微處理器系列 ARM微處理器系列ARM7系列ARM9系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、ARM9E和ARM10為4個(gè)通用處理器系列,每一個(gè)系列提供一套相對(duì)獨(dú)特的性能來(lái)滿足不同應(yīng)用領(lǐng)域的需求。SecurCore系列專門為安全要求較高的應(yīng)用而設(shè)計(jì)。 12ARM7微處理器系列 ARM7系列是為低功耗的32位RISC處理
7、器,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7系列有如下特點(diǎn):具有嵌入式ICERT邏輯,調(diào)試開發(fā)方便;極低的功耗,適合對(duì)功耗要求較高的應(yīng)用,如便攜式產(chǎn)品;能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu);代碼密度高,并兼容16位的Thumb指令集;對(duì)操作系統(tǒng)的支持廣泛,如Windows CE、Linux、Palm OS等;指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級(jí)換代;主頻最高可達(dá)130M,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。ARM微處理器系列13ARM7微處理器系列ARM微處理器系列主要應(yīng)用領(lǐng)域:工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制
8、解調(diào)器設(shè)備、移動(dòng)電話等多種多媒體和嵌入式應(yīng)用。ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。TDMI的基本含義為:T:支持16位壓縮指令集Thumb;D:支持片上Debug;M:內(nèi)嵌硬件乘法器(Multiplier)I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn);14ARM9微處理器系列 ARM微處理器系列ARM9系列微處理器在高性能和低功耗特性方面提供最佳的表現(xiàn)。具有以下特點(diǎn):5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)
9、。支持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ù)處理能力。15ARM9微處理器系列ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。ARM微處理器系列ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場(chǎng)合。16ARM9E微處理器系列 ARM微處理器系列ARM9E系列微處理器的主要特點(diǎn)如
10、下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP9浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的處理能力。主頻最高可達(dá)300M。17ARM9E微處理器系列ARM9E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。ARM微處理器系列ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型,以適用于不同的應(yīng)用場(chǎng)合。18A
11、RM10E微處理器系列 ARM微處理器系列ARM10E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。6級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP10浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持眾多主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的處理能力主頻最高可達(dá)400M。內(nèi)嵌并行讀/寫操作部件。19ARM10E微處理器系列ARM10E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。ARM微處理器系列ARM10E系列微處理器
12、包含ARM1020E、ARM1022E和ARM1026EJ-S三種類型,以適用于不同的應(yīng)用場(chǎng)合。20SecurCore微處理器系列 ARM微處理器系列SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)各種主要特點(diǎn)外,還在系統(tǒng)安全方面具有如下的特點(diǎn):帶有靈活的保護(hù)單元,確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全。采用軟內(nèi)核技術(shù),防止外部對(duì)其進(jìn)行掃描探測(cè)??杉捎脩糇约旱陌踩匦院推渌麉f(xié)處理器。21SecurCore微處理器系列SecurCore系列微處理器主要應(yīng)用于一些對(duì)安全性要求較高的應(yīng)用產(chǎn)品及應(yīng)用系統(tǒng),如電子商務(wù)、電子政務(wù)、電子銀行業(yè)務(wù)、網(wǎng)絡(luò)和認(rèn)證系統(tǒng)等領(lǐng)域。ARM微處理器系列SecurCore系列微處
13、理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210四種類型,以適用于不同的應(yīng)用場(chǎng)合。22StrongARM微處理器系列 ARM微處理器系列Intel StrongARM處理器是便攜式通訊產(chǎn)品和消費(fèi)類電子產(chǎn)品的理想選擇,已成功應(yīng)用于多家公司的掌上電腦系列產(chǎn)品。Intel StrongARM SA-1100處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器。它融合了Intel公司的設(shè)計(jì)和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,采用在軟件上兼容ARMv4體系結(jié)構(gòu)、同時(shí)采用具有Intel技術(shù)優(yōu)點(diǎn)的體系結(jié)構(gòu)。23X
14、scale處理器 ARM微處理器系列Xscale 處理器是基于ARMv5TE體系結(jié)構(gòu)的解決方案,是一款全性能、高性價(jià)比、低功耗的處理器。它支持16位的Thumb指令和DSP指令集,已使用在數(shù)字移動(dòng)電話、個(gè)人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場(chǎng)合。Xscale 處理器是Intel目前主要推廣的一款A(yù)RM微處理器。24ARM微處理器的工作狀態(tài) ARM微處理器的工作狀態(tài)從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:ARM狀態(tài),此時(shí)處理器執(zhí)行32位的字對(duì)齊的ARM指令;Thumb狀態(tài),此時(shí)處理器執(zhí)行16位的、半字對(duì)齊的Thumb指令。 25ARM與THUMBTHUMB指令是ARM指令的
15、子集ARM微處理器的工作狀態(tài)可以相互調(diào)用,只要遵循一定的調(diào)用規(guī)則Thumb指令與ARM指令的時(shí)間效率和空間效率關(guān)系為:存儲(chǔ)空間約為ARM代碼的6070指令數(shù)比ARM代碼多約3040存儲(chǔ)器為32位時(shí)ARM代碼比Thumb代碼快約40存儲(chǔ)器為16位時(shí)Thumb比ARM代碼快約4050使用Thumb代碼,存儲(chǔ)器的功耗會(huì)降低約3026狀態(tài)切換方法 ARM指令集和Thumb指令集均有切換處理器狀態(tài)的指令,并可在兩種工作狀態(tài)之間切換,ARM微處理器的工作狀態(tài)在開始執(zhí)行代碼時(shí),應(yīng)該處于ARM狀態(tài)。27進(jìn)入Thumb狀態(tài)當(dāng)操作數(shù)寄存器的狀態(tài)位(位0)為1時(shí),可以采用執(zhí)行BX指令的方法,使微處理器從ARM狀態(tài)切
16、換到Thumb狀態(tài)。當(dāng)處理器處于Thumb狀態(tài)時(shí)發(fā)生異常(如IRQ、FIQ、Undef、Abort、SWI等),則異常處理返回時(shí),自動(dòng)切換到Thumb狀態(tài)。ARM微處理器的工作狀態(tài)28切換到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指針?lè)湃氘惓DJ芥溄蛹拇嫫髦?,并從異常向量地址開始執(zhí)行程序,也可以使處理器切換到ARM狀態(tài)。29處理器模式ARM微處理器的工作模式usr:ARM處理器正常的程序執(zhí)行狀態(tài)fiq:用于高速數(shù)據(jù)傳輸或通道處理irq:用于通用的中斷處理svc:操作系統(tǒng)使用的保護(hù)
17、模式abt:用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)sys:運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)und:當(dāng)出現(xiàn)未定義指令終止時(shí)進(jìn)入該模式30用戶模式和特權(quán)模式ARM微處理器的工作模式除了用戶模式之外的其他6種處理器模式稱為特權(quán)模式特權(quán)模式下,程序可以訪問(wèn)所有的系統(tǒng)資源,也可以任意地進(jìn)行處理器模式的切換。特權(quán)模式中,除系統(tǒng)模式外,其他5種模式又稱為異常模式大多數(shù)的用戶程序運(yùn)行在用戶模式下,此時(shí),應(yīng)用程序不能夠訪問(wèn)一些受操作系統(tǒng)保護(hù)的系統(tǒng)資源,應(yīng)用程序也不能直接進(jìn)行處理器模式的切換。用戶模式下,當(dāng)需要進(jìn)行處理器模式切換時(shí),應(yīng)用程序可以產(chǎn)生異常處理,在異常處理中進(jìn)行處理器模式的切換。31模式切換ARM微處理器的工作模式處理器模
18、式可以通過(guò)軟件進(jìn)行切換,也可以通過(guò)外部中斷或者異常處理過(guò)程進(jìn)行切換。當(dāng)應(yīng)用程序發(fā)生異常中斷時(shí),處理器進(jìn)入相應(yīng)的異常模式。在每一種異常模式下都有一組寄存器,供相應(yīng)的異常處理程序使用,這樣就可以保證在進(jìn)入異常模式時(shí),用戶模式下的寄存器不被破壞。系統(tǒng)模式并不是通過(guò)異常進(jìn)入的,它和用戶模式具有完全一樣的寄存器。但是系統(tǒng)模式屬于特權(quán)模式,可以訪問(wèn)所有的系統(tǒng)資源,也可以直接進(jìn)行處理器模式切換。它主要供操作系統(tǒng)任務(wù)使用。通常操作系統(tǒng)的任務(wù)需要訪問(wèn)所有的系統(tǒng)資源,同時(shí)該任務(wù)仍然使用用戶模式的寄存器組,而不是使用異常模式下相應(yīng)的寄存器組,這樣可以保證當(dāng)異常中斷發(fā)生時(shí)任務(wù)狀態(tài)不被破壞。32ARM微處理器的存儲(chǔ)器格
19、式 ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié))ARM微處理器的存儲(chǔ)器格式ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從零地址開始的字節(jié)的線性組合。從零字節(jié)到三字節(jié)放置第一個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),從第四個(gè)字節(jié)到第七個(gè)字節(jié)放置第二個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù),依次排列。ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),稱之為大端格式和小端格式 33ARM體系結(jié)構(gòu)的存儲(chǔ)器格式大端格式 ARM微處理器的存儲(chǔ)器格式在這種格式中,字?jǐn)?shù)據(jù)的高字節(jié)存儲(chǔ)在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中34ARM體系結(jié)構(gòu)的存儲(chǔ)器格式小端格式 ARM微處理器的存儲(chǔ)器格式與大端存儲(chǔ)格式相反,在小端存儲(chǔ)格式中,低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是
20、字?jǐn)?shù)據(jù)的高字節(jié)35指令長(zhǎng)度及數(shù)據(jù)類型 ARM微處理器的指令長(zhǎng)度可以是32位(在ARM狀態(tài)下),也可以為16位(在Thumb狀態(tài)下)。ARM微處理器的存儲(chǔ)器格式ARM微處理器中支持字節(jié)(8位)、半字(16位)、字(32位)三種數(shù)據(jù)類型,其中,字需要4字節(jié)對(duì)齊(地址的低兩位為0)、半字需要2字節(jié)對(duì)齊(地址的最低位為0)36非對(duì)齊的存儲(chǔ)訪問(wèn)操作 在ARM種,如果存儲(chǔ)單元的地址沒(méi)有遵守對(duì)齊規(guī)則,則稱為非對(duì)齊的存儲(chǔ)訪問(wèn)操作。ARM微處理器的存儲(chǔ)器格式非對(duì)齊的指令預(yù)取操作非對(duì)齊的數(shù)據(jù)訪問(wèn)操作37非對(duì)齊的指令預(yù)取操作 當(dāng)處理器處于ARM狀態(tài)期間,如果寫入到寄存器PC中的值是非字對(duì)齊的,要么指令執(zhí)行的結(jié)果不可
21、預(yù)知,要么地址值中最低兩位被忽略。ARM微處理器的存儲(chǔ)器格式當(dāng)處理器處于THUMB狀態(tài)期間,如果寫入到寄存器PC中的值是非半字對(duì)齊的,要么指令執(zhí)行的結(jié)果不可預(yù)知,要么地址值中最低位被忽略。38非對(duì)齊的數(shù)據(jù)訪問(wèn)操作 對(duì)于Load/Store操作,如果是非對(duì)齊的數(shù)據(jù)訪問(wèn)操作,系統(tǒng)定義了三種可能的結(jié)果:ARM微處理器的存儲(chǔ)器格式執(zhí)行的結(jié)果不可預(yù)知忽略字單元地址的低兩位的值,即訪問(wèn)地址為(address AND 0XFFFFFFFC)的字單元;忽略半字單元地址的最低位的值,即訪問(wèn)地址為(address AND 0XFFFFFFFE)的半字單元。忽略字單元地址的低兩位的值;忽略半字單元地址的最低位的值;
22、由存儲(chǔ)系統(tǒng)實(shí)現(xiàn)這種忽略。也就是說(shuō),這時(shí)該地址值原封不動(dòng)地送到存儲(chǔ)系統(tǒng)。當(dāng)發(fā)生非對(duì)齊地?cái)?shù)據(jù)訪問(wèn)時(shí),到底采用上述三種方法中的哪一種,是由各指令指定的。39寄存器組織 ARM微處理器共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器。但是這些寄存器不能被同時(shí)訪問(wèn),具體哪些寄存器是可編程訪問(wèn)的,取決微處理器的工作狀態(tài)及具體的運(yùn)行模式。但在任何時(shí)候,通用寄存器R14R0、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)狀態(tài)寄存器都是可訪問(wèn)的。 ARM微處理器的寄存器格式40ARM狀態(tài)下的寄存器組織 通用寄存器:通用寄存器包括R0R15,可以分為三類:未分組寄存器R0R7分組寄存器R8R14程序計(jì)數(shù)器PC(R15
23、)ARM微處理器的寄存器格式41ARM狀態(tài)下的寄存器組織ARM微處理器的寄存器格式42未分組寄存器R0R7ARM微處理器的寄存器格式在所有的運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統(tǒng)用作特殊的用途,因此,在中斷或異常處理進(jìn)行運(yùn)行模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理寄存器,可能會(huì)造成寄存器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)行程序設(shè)計(jì)時(shí)應(yīng)引起注意。43分組寄存器R8R12ARM微處理器的寄存器格式每次所訪問(wèn)的物理寄存器與處理器當(dāng)前的運(yùn)行模式有關(guān)R8R12:每個(gè)寄存器對(duì)應(yīng)兩個(gè)不同的物理寄存器當(dāng)使用fiq模式時(shí),訪問(wèn)寄存器R8_fiqR12_fiq;當(dāng)使用除fiq模式以外的其他
24、模式時(shí),訪問(wèn)寄存器R8_usrR12_usr。44分組寄存器R13R14ARM微處理器的寄存器格式R13、R14:每個(gè)寄存器對(duì)應(yīng)6個(gè)不同的物理寄存器其中的一個(gè)是用戶模式與系統(tǒng)模式共用,另外5個(gè)物理寄存器對(duì)應(yīng)于其他5種不同的運(yùn)行模式采用以下的記號(hào)來(lái)區(qū)分不同的物理寄存器:R13_R14_mode為以下幾種之一:usr、fiq、irq、svc、abt、und。45堆棧指針R13ARM微處理器的寄存器格式R13在ARM指令中常用作堆棧指針,但這只是一種習(xí)慣用法,用戶也可使用其他的寄存器作為堆棧指針。在Thumb指令集中,某些指令強(qiáng)制性的要求使用R13作為堆棧指針。由于處理器的每種運(yùn)行模式均有自己獨(dú)立的
25、物理寄存器R13,在初始化部分,都要初始化每種模式下的R13,這樣,當(dāng)程序的運(yùn)行進(jìn)入異常模式時(shí),可以將需要保護(hù)的寄存器放入R13所指向的堆棧,而當(dāng)程序從異常模式返回時(shí),則從對(duì)應(yīng)的堆棧中恢復(fù)。 46子程序連接寄存器R14ARM微處理器的寄存器格式R14也稱作子程序連接寄存器或連接寄存器LR。當(dāng)執(zhí)行BL子程序調(diào)用指令時(shí),可以從R14中得到R15(程序計(jì)數(shù)器PC)的備份。其他情況下,R14用作通用寄存器。在每一種運(yùn)行模式下,都可用R14保存子程序的返回地址,當(dāng)用BL或BLX指令調(diào)用子程序時(shí),將PC的當(dāng)前值拷貝給R14,執(zhí)行完子程序后,又將R14的值拷貝回PC,即可完成子程序的調(diào)用返回。BLSUB1S
26、UB1:STMFDSP!, , LR /*將R14存入堆棧*/LDMFDSP!,PC/*完成子程序返回 */47程序計(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)閷?duì)R15的使用有一些特殊的限制,當(dāng)違反了這些限制時(shí),程序的執(zhí)行結(jié)果是未知的。由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。48程序狀態(tài)寄存器(CPSR/SPSR)寄存器R16用作CPSR
27、(當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位,以及其他一些相關(guān)的控制和狀態(tài)位。ARM微處理器的寄存器格式每一種運(yùn)行模式下又都有一個(gè)專用的物理狀態(tài)寄存器,稱為SPSR(備份的程序狀態(tài)寄存器),異常發(fā)生時(shí),SPSR用于保存CPSR的值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR。由于用戶模式和系統(tǒng)模式不屬于異常模式,他們沒(méi)有SPSR,當(dāng)在這兩種模式下訪問(wèn)SPSR,結(jié)果是未知的。49Thumb狀態(tài)下的寄存器組織 Thumb狀態(tài)下的寄存器集是ARM狀態(tài)下寄存器集的一個(gè)子集ARM微處理器的寄存器格式程序可以直接訪問(wèn)8個(gè)通用寄存器(R7R0)、
28、程序計(jì)數(shù)器(PC)、堆棧指針(SP)、連接寄存器(LR)和CPSR。同樣,每一種特權(quán)模式下都有一組SP、LR和SPSR。 50Thumb狀態(tài)下的寄存器組織圖ARM微處理器的寄存器格式51Thumb狀態(tài)下的寄存器與ARM狀態(tài)下的寄存器關(guān)系A(chǔ)RM微處理器的寄存器格式Thumb狀態(tài)下和ARM狀態(tài)下的R0R7是相同的。Thumb狀態(tài)下和ARM狀態(tài)下的CPSR和所有的SPSR是相同的。Thumb狀態(tài)下的SP對(duì)應(yīng)于ARM狀態(tài)下的R13。Thumb狀態(tài)下的LR對(duì)應(yīng)于ARM狀態(tài)下的R14。Thumb狀態(tài)下的程序計(jì)數(shù)器對(duì)應(yīng)于ARM狀態(tài)下R15。52Thumb狀態(tài)下的寄存器與ARM狀態(tài)下的寄存器關(guān)系圖ARM微處理
29、器的寄存器格式53訪問(wèn)THUMB狀態(tài)下的高位寄存器(Hi-registers) 在Thumb狀態(tài)下,高位寄存器R8R15并不是標(biāo)準(zhǔn)寄存器集的一部分,但可使用匯編語(yǔ)言程序受限制的訪問(wèn)這些寄存器,將其用作快速的暫存器。ARM微處理器的寄存器格式使用帶特殊變量的MOV指令,數(shù)據(jù)可以在低位寄存器和高位寄存器之間進(jìn)行傳送;高位寄存器的值可以使用CMP和ADD指令進(jìn)行比較或加上低位寄存器中的值。 54程序狀態(tài)寄存器 ARM微處理器的寄存器格式ARM體系結(jié)構(gòu)包含一個(gè)當(dāng)前程序狀態(tài)寄存器(CPSR)和五個(gè)備份的程序狀態(tài)寄存器(SPSRs)。備份的程序狀態(tài)寄存器用來(lái)進(jìn)行異常處理,其功能包括:保存ALU中的當(dāng)前操作
30、信息控制允許和禁止中斷設(shè)置處理器的運(yùn)行模式55程序狀態(tài)寄存器的每一位的安排 ARM微處理器的寄存器格式56程序狀態(tài)寄存器的條件碼標(biāo)志 N、Z、C、V均為條件碼標(biāo)志位。它們的內(nèi)容可被算術(shù)或邏輯運(yùn)算的結(jié)果所改變,并且可以決定某條指令是否被執(zhí)行ARM微處理器的寄存器格式在ARM狀態(tài)下,絕大多數(shù)的指令都是有條件執(zhí)行的。在Thumb狀態(tài)下,僅有分支指令是有條件執(zhí)行的。 57影響標(biāo)志位的指令標(biāo)志位含 義N當(dāng)用兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)進(jìn)行運(yùn)算時(shí),N=1 表示運(yùn)算的結(jié)果為負(fù)數(shù);N=0 表示運(yùn)算的結(jié)果為正數(shù)或零;ZZ=1 表示運(yùn)算的結(jié)果為零;Z=0表示運(yùn)算的結(jié)果為非零;C加法運(yùn)算結(jié)果進(jìn)位時(shí),C=1,減法運(yùn)算借位時(shí)
31、,C=0;移位操作的非加/減運(yùn)算指令,C為移出的最后一位;其他的非加/減運(yùn)算指令,C的值通常不改變。V加/減法運(yùn)算指令,V=1表示符號(hào)位溢出。對(duì)于其他的非加/減運(yùn)算指令,C的值通常不改變。Q在ARM v5及以上版本的E系列處理器中,Q標(biāo)志指示DSP運(yùn)算指令是否溢出。在其他版本中,Q標(biāo)志位無(wú)定義。ARM微處理器的寄存器格式58程序狀態(tài)寄存器的控制位 狀態(tài)寄存器的低8位(I、F、T和M4:0)稱為控制位,發(fā)生異常時(shí)這些位可以被改變。如果處理器運(yùn)行特權(quán)模式,這些位也可以由程序修改。ARM微處理器的寄存器格式中斷禁止位I、F:I=1 禁止IRQ中斷;F=1 禁止FIQ中斷。T標(biāo)志位:該位反映處理器的運(yùn)
32、行狀態(tài)ARM體系結(jié)構(gòu)v5及以上的版本的T系列處理器,當(dāng)該位為1時(shí),程序運(yùn)行于Thumb狀態(tài),否則運(yùn)行于ARM狀態(tài)。ARM體系結(jié)構(gòu)v5及以上的版本的非T系列處理器,當(dāng)該位為1時(shí),執(zhí)行下一條指令以引起為定義的指令異常;當(dāng)該位為0時(shí),表示運(yùn)行于ARM狀態(tài)。運(yùn)行模式位M4:0是模式位,決定處理器的運(yùn)行模式 59處理器運(yùn)行模式及可以訪問(wèn)的寄存器M4:0處理器模式可訪問(wèn)的寄存器0b10000用戶模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR, SPSR_fiq,R14_fiq-R8_fiq, R7R00b10010IRQ模式PC,CPSR, SPSR_irq,R14_irq, R1
33、3_irq, R12R00b10011管理模式PC,CPSR, SPSR_svc,R14_svc, R13_svc, R12R0,0b10111中止模式PC,CPSR, SPSR_abt,R14_abt,R13_abt, R12R0,0b11011未定義模式PC,CPSR, SPSR_und,R14_und, R13_und, R12R0,0b11111系統(tǒng)模式PC,CPSR(ARM v4及以上版本), R14R0ARM微處理器的寄存器格式60異常(Exceptions) 當(dāng)正常的程序執(zhí)行流程發(fā)生暫時(shí)的停止時(shí),稱之為異常,例如處理一個(gè)外部的中斷請(qǐng)求。在處理異常之前,當(dāng)前處理器的狀態(tài)必須保留,這
34、樣當(dāng)異常處理完成之后,當(dāng)前程序可以繼續(xù)執(zhí)行。處理器允許多個(gè)異常同時(shí)發(fā)生,它們將會(huì)按固定的優(yōu)先級(jí)進(jìn)行處理。ARM異常處理ARM體系結(jié)構(gòu)中的異常,與8位/16位體系結(jié)構(gòu)的中斷有很大的相似之處,但異常與中斷的概念并不完全等同。 61ARM體系結(jié)構(gòu)所支持的異常類型 異常類型具體含義復(fù)位復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位處理程序處執(zhí)行。未定義指令遇到不能處理的指令時(shí),產(chǎn)生未定義指令異常。軟件中斷執(zhí)行SWI指令產(chǎn)生,用于用戶模式下的程序調(diào)用特權(quán)操作指令。指令預(yù)取中止處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止處理器數(shù)據(jù)訪問(wèn)指令的地址不存在,或該地址不允許
35、當(dāng)前指令訪問(wèn)時(shí),產(chǎn)生數(shù)據(jù)中止異常。IRQ外部中斷請(qǐng)求有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。FIQ快速中斷請(qǐng)求引腳有效,且CPSR中的F位為0時(shí),產(chǎn)生FIQ異常。ARM異常處理62對(duì)異常的響應(yīng) ARM異常處理當(dāng)一個(gè)異常出現(xiàn)以后,ARM微處理器會(huì)執(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)的異常處理程序處。 63R14_ = Return LinkSPSR_ = CPSRCPSR4:0
36、= Exception Mode NumberCPSR5 = 0If = Reset or FIQ thenCPSR6 = 1CPSR7 = 1PC = Exception Vector Address異常響應(yīng)偽代碼ARM異常處理處理器處于Thumb狀態(tài),則當(dāng)異常向量地址加載入PC時(shí),處理器自動(dòng)切換到ARM狀態(tài)。ARM微處理器對(duì)異常的響應(yīng)過(guò)程用偽碼可以描述為:在ARM狀態(tài)下執(zhí)行禁止快速中斷禁止正常中斷轉(zhuǎn)入異常入口地址64從異常返回ARM異常處理異常處理完畢之后,ARM微處理器會(huì)執(zhí)行以下幾步操作從異常返回: 將連接寄存器LR的值減去相應(yīng)的偏移量后送到PC中。將SPSR復(fù)制回CPSR中。若在進(jìn)入異
37、常處理時(shí)設(shè)置了中斷禁止位,要在此清除。可以認(rèn)為應(yīng)用程序總是從復(fù)位異常處理程序開始執(zhí)行的,因此復(fù)位異常處理程序不需要返回。65FIQ(Fast Interrupt Request)FIQ異常是為了支持?jǐn)?shù)據(jù)傳輸或者通道處理而設(shè)計(jì)的。ARM異常處理若將CPSR的F位置為1,則會(huì)禁止FIQ中斷,若將CPSR的F位清零,處理器會(huì)在指令執(zhí)行時(shí)檢查FIQ的輸入。注意只有在特權(quán)模式下才能改變F位的狀態(tài)。 可由外部通過(guò)對(duì)處理器上的nFIQ引腳輸入低電平產(chǎn)生FIQ。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入FIQ模式,F(xiàn)IQ處理程序均可以執(zhí)行以下指令從FIQ模式返回:SUBS PC,R14_fiq ,#466IRQ(Interrupt Request) IRQ異常屬于正常的中斷請(qǐng)求,可通過(guò)對(duì)處理器的nIRQ引腳輸入低電平產(chǎn)生,IRQ的優(yōu)先級(jí)低于FIQ,當(dāng)程序執(zhí)行進(jìn)入FIQ異常時(shí),IRQ可能被屏蔽。ARM異常處理若將CPSR的I位置為1,則會(huì)禁止IRQ中斷,若將CPSR的I位清零,處理器會(huì)在指令執(zhí)行完之前檢查IRQ的輸入。注意只有在特權(quán)模式下才能改變I位的狀態(tài)。不管是在ARM狀態(tài)還是在Thumb狀態(tài)下進(jìn)入IRQ模式,IRQ處理程序均可以執(zhí)行以下指令從IRQ模式返回:SUBS PC ,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版車輛貸款保證合同規(guī)范樣本2篇
- 2024科技創(chuàng)新項(xiàng)目前期咨詢服務(wù)協(xié)議版
- 2024版權(quán)授權(quán)協(xié)議書范本
- 武漢警官職業(yè)學(xué)院《光學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 文山學(xué)院《設(shè)施園藝學(xué)實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版房屋出售委托協(xié)議3篇
- 二零二五年電子制造企業(yè)技術(shù)工人勞動(dòng)合同范本2篇
- 二零二五年度人工智能教育股份分紅與人才培養(yǎng)協(xié)議3篇
- 圖木舒克職業(yè)技術(shù)學(xué)院《別墅空間設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津石油職業(yè)技術(shù)學(xué)院《工程力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 高二物理競(jìng)賽霍爾效應(yīng) 課件
- 金融數(shù)學(xué)-(南京大學(xué))
- 基于核心素養(yǎng)下的英語(yǔ)寫作能力的培養(yǎng)策略
- 現(xiàn)場(chǎng)安全文明施工考核評(píng)分表
- 亞什蘭版膠衣操作指南
- 四年級(jí)上冊(cè)數(shù)學(xué)教案 6.1口算除法 人教版
- DB32-T 3129-2016適合機(jī)械化作業(yè)的單體鋼架塑料大棚 技術(shù)規(guī)范-(高清現(xiàn)行)
- 6.農(nóng)業(yè)產(chǎn)值與增加值核算統(tǒng)計(jì)報(bào)表制度(2020年)
- 人工挖孔樁施工監(jiān)測(cè)監(jiān)控措施
- 供應(yīng)商物料質(zhì)量問(wèn)題賠償協(xié)議(終端)
- 物理人教版(2019)必修第二冊(cè)5.2運(yùn)動(dòng)的合成與分解(共19張ppt)
評(píng)論
0/150
提交評(píng)論