版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二章ARM體系結(jié)構(gòu)及編程模型1/17/2023主講張道德1提綱13245ARM技術(shù)的應(yīng)用領(lǐng)域及特點ARM處理器的寄存器組織ARM處理器的工作模式ARM微處理器系列67第二章ARM體系結(jié)構(gòu)及編程模型ARM異常處理ARM處理器的工作狀態(tài)ARM處理器的存儲器格式2ARM-AdvancedRISCMachines
ARM(AdvancedRISCMachines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術(shù)的名字。ARM技術(shù)的應(yīng)用領(lǐng)域及特點1991年ARM公司成立于英國劍橋,主要出售芯片設(shè)計技術(shù)的授權(quán)。3ARM公司的Chipless模式世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐?,從而形成自己的ARM微處理器芯片進入市場。ARM技術(shù)的應(yīng)用領(lǐng)域及特點基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場份額,ARM技術(shù)正在逐步滲入到我們生活的各個方面。我國的中興集成電路、大唐電訊、中芯國際和上海華虹,以及國外的一些公司如德州儀器、意法半導(dǎo)體、Philips、Intel、Samsung等都推出了自己設(shè)計的基于ARM核的處理器。4ARM微處理器的應(yīng)用領(lǐng)域
工業(yè)控制領(lǐng)域:作為32的RISC架構(gòu),基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴展,ARM微控制器的低功耗、高性價比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn)。ARM技術(shù)的應(yīng)用領(lǐng)域及特點到目前為止,ARM微處理器及技術(shù)的應(yīng)用已經(jīng)廣泛深入到國民經(jīng)濟的各個領(lǐng)域5ARM微處理器的應(yīng)用領(lǐng)域ARM技術(shù)的應(yīng)用領(lǐng)域及特點網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,采用ARM技術(shù)的ADSL芯片正逐步獲得競爭優(yōu)勢。此外,ARM在語音及視頻處理上進行了優(yōu)化,并獲得廣泛支持,也對DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。消費類電子產(chǎn)品:ARM技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機頂盒和游戲機中得到廣泛采用。成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機和打印機中絕大部分采用ARM技術(shù)。手機中的32位SIM智能卡也采用了ARM技術(shù)。……6ARM微處理器的特點—低功耗、低成本、高性能采用RISC指令集ARM技術(shù)的應(yīng)用領(lǐng)域及特點低功耗、低成本、高性能使用大量的寄存器ARM/THUMB指令支持三/五級流水線7ARM微處理器的特點—采用RISC體系結(jié)構(gòu)ARM技術(shù)的應(yīng)用領(lǐng)域及特點采用RISC架構(gòu)的ARM處理器一般具有如下特點:固定長度的指令格式,指令歸整、簡單、基本尋址方式有2~3種;使用單周期指令,便于流水線操作執(zhí)行;大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率。8ARM微處理器的特點—大量使用寄存器ARM技術(shù)的應(yīng)用領(lǐng)域及特點ARM處理器共有37個寄存器,被分為若干個組,這些寄存器包括:31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器;6個狀態(tài)寄存器,用以標(biāo)識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位。9ARM微處理器的特點—高效的指令系統(tǒng)ARM技術(shù)的應(yīng)用領(lǐng)域及特點ARM微處理器支持兩種指令集:ARM指令集和Thumb指令集。ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節(jié)省30%~40%以上的存儲空間,同時具備32位代碼的所有優(yōu)點。10ARM微處處理器的特特點—其他技術(shù)ARM技術(shù)術(shù)的應(yīng)用領(lǐng)領(lǐng)域及特點點除此以外,,ARM體體系結(jié)構(gòu)還還采用了一一些特別的的技術(shù),在在保證高性性能的前提提下盡量縮縮小芯片的的面積,并并降低功耗耗:所有的ARM指令都都可根據(jù)前前面的執(zhí)行行結(jié)果決定定是否被執(zhí)執(zhí)行,從而而提高指令令的執(zhí)行效效率。可用加載/存儲指令令批量傳輸輸數(shù)據(jù),以以提高數(shù)據(jù)據(jù)的傳輸效效率。可在一條數(shù)數(shù)據(jù)處理指指令中同時時完成邏輯輯處理和移移位處理。。在循環(huán)處理理中使用地地址的自動動增減來提提高運行效效率。11ARM微處處理器系列列ARM微處處理器系列列ARM7系系列ARM9系系列ARM9E系列ARM10E系列SecurCore系列Intel的Xscale其中,ARM7、ARM9、、ARM9E和ARM10為為4個通用用處理器系系列,每一一個系列提提供一套相相對獨特的的性能來滿滿足不同應(yīng)應(yīng)用領(lǐng)域的的需求。SecurCore系列專門門為安全要要求較高的的應(yīng)用而設(shè)設(shè)計。12ARM7微微處理器系系列ARM7系系列是低功功耗的32位RISC處理器器,最適合合用于對價價位和功耗耗要求較高高的消費類類應(yīng)用。ARM7系系列有如下下特點:具有嵌入式式ICE--RT邏輯輯,調(diào)試開開發(fā)方便;;極低的功耗耗,適合對對功耗要求求較高的應(yīng)應(yīng)用,如便便攜式產(chǎn)品品;能夠提供0.9MIPS/MHz的的三級流水水線結(jié)構(gòu);;兼容16位位的Thumb指令令集,代碼碼密度高;;對操作系統(tǒng)統(tǒng)的支持廣廣泛,如WindowsCE、Linux、、PalmOS等等;指令系統(tǒng)與與ARM9系列、ARM9E系列和ARM10E系列兼兼容,便于于用戶的產(chǎn)產(chǎn)品升級換換代;主頻最高可可達130M,高速速的運算處處理能力能能勝任絕大大多數(shù)的復(fù)復(fù)雜應(yīng)用。。ARM微處處理器系列列13ARM7微微處理器系系列ARM微處處理器系列列主要應(yīng)用領(lǐng)領(lǐng)域:工業(yè)業(yè)控制、Internet設(shè)設(shè)備、網(wǎng)絡(luò)絡(luò)和調(diào)制解解調(diào)器設(shè)備備、移動電電話等多種種多媒體和和嵌入式應(yī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ào)調(diào)試點;14ARM9微微處理器系系列ARM微處處理器系列列ARM9系系列微處理理器在高性性能和低功功耗特性方方面提供最最佳的表現(xiàn)現(xiàn)。具有以以下特點::5級流水線線,指令執(zhí)執(zhí)行效率更更高。提供1.1MIPS/MHz的哈佛結(jié)結(jié)構(gòu)。支持32位位ARM指指令集和16位Thumb指指令集。支持32位位的高速AMBA總總線接口。。全性能的MMU,支支持WindowsCE、、Linux、PalmOS等多種種主流嵌入入式操作系系統(tǒng)。MPU支持持實時操作作系統(tǒng)。支持數(shù)據(jù)Cache和指令Cache,具有更更高的指令令和數(shù)據(jù)處處理能力。。15ARM9微微處處理理器器系系列列ARM9系列列微微處處理理器器主主要要應(yīng)應(yīng)用用于于無無線線設(shè)設(shè)備備、、儀儀器器儀儀表表、、安安全全系系統(tǒng)統(tǒng)、、機機頂頂盒盒、、高高端端打打印印機機、、數(shù)數(shù)字字照照相相機機和和數(shù)數(shù)字字攝攝像像機機等等。。ARM微微處處理理器器系系列列ARM9系列列微微處處理理器器包包含含ARM920T、ARM922T和ARM940T三種種類類型型,,以以適適用用于于不不同同的的應(yīng)應(yīng)用用場場合合。。16ARM9E微處理理器系系列ARM微處處理器器系列列ARM9E系列列微處處理器器的主主要特特點如如下::支持DSP指令令集,,適合合于需需要高高速數(shù)數(shù)字信信號處處理的的場合合。5級流流水線線,指指令執(zhí)執(zhí)行效效率更更高。。支持32位位ARM指指令集集和16位位Thumb指指令集集。支持32位位的高高速AMBA總總線接接口。。支持VFP9浮浮點處處理協(xié)協(xié)處理理器。。全性能能的MMU,支支持眾眾多主主流嵌嵌入式式操作作系統(tǒng)統(tǒng)。支持數(shù)數(shù)據(jù)Cache和指指令Cache,具具有更更高的的處理理能力力。主頻最最高可可達300M。。17ARM9E微處處理器器系列列ARM9E系列列微處處理器器主要要應(yīng)用用于下下一代代無線線設(shè)備備、數(shù)數(shù)字消消費品品、成成像設(shè)設(shè)備、、工業(yè)業(yè)控制制、存存儲設(shè)設(shè)備和和網(wǎng)絡(luò)絡(luò)設(shè)備備等領(lǐng)領(lǐng)域。。ARM微處處理器器系列列ARM9E系列列微處處理器器包含含ARM926EJ-S、ARM946E-S和ARM966E-S三種種類型型,以以適用用于不不同的的應(yīng)用用場合合。18ARM10E微微處理器器系列ARM微微處理器器系列ARM10E系系列微處處理器的的主要特特點如下下:支持DSP指令令集,適適合于需需要高速速數(shù)字信信號處理理的場合合。6級流水水線,指指令執(zhí)行行效率更更高。支持32位ARM指令令集和16位Thumb指令令集。支持32位的高高速AMBA總總線接口口。支持VFP10浮點處處理協(xié)處處理器。。全性能的的MMU,支持持眾多主主流嵌入入式操作作系統(tǒng)。。支持數(shù)據(jù)據(jù)Cache和和指令Cache,具具有更高高的處理理能力主頻最高高可達400M。內(nèi)嵌并行行讀/寫寫操作部部件。19ARM10E微微處理器器系列ARM10E系系列微處處理器主主要應(yīng)用用于下一一代無線線設(shè)備、、數(shù)字消消費品、、成像設(shè)設(shè)備、工工業(yè)控制制、通信信和信息息系統(tǒng)等等領(lǐng)域。。ARM微微處理器器系列ARM10E系系列微處處理器包包含ARM1020E、ARM1022E和ARM1026EJ-S三種類類型,以以適用于于不同的的應(yīng)用場場合。20SecurCore微微處理器器系列ARM微微處理器器系列SecurCore系系列微處處理器除除了具有有ARM體系結(jié)結(jié)構(gòu)各種種主要特特點外,,還在系系統(tǒng)安全全方面具具有如下下的特點點:帶有靈活活的保護護單元,,確保操操作系統(tǒng)統(tǒng)和應(yīng)用用數(shù)據(jù)的的安全。。采用軟內(nèi)內(nèi)核技術(shù)術(shù),防止止外部對對其進行行掃描探探測。可集成用用戶自己己的安全全特性和和其他協(xié)協(xié)處理器器。21SecurCore微微處理器器系列SecurCore系系列微處處理器主主要應(yīng)用用于一些些對安全全性要求求較高的的應(yīng)用產(chǎn)產(chǎn)品及應(yīng)應(yīng)用系統(tǒng)統(tǒng),如電電子商務(wù)務(wù)、電子子政務(wù)、、電子銀銀行業(yè)務(wù)務(wù)、網(wǎng)絡(luò)絡(luò)和認證證系統(tǒng)等等領(lǐng)域。。ARM微微處理器器系列SecurCore系系列微處處理器包包含SecurCoreSC100、SecurCoreSC110、、SecurCoreSC200和SecurCoreSC210四種種類型,,以適用用于不同同的應(yīng)用用場合。。22StrongARM微微處理器器系列ARM微微處理器器系列IntelStrongARM處理器是是便攜式式通訊產(chǎn)產(chǎn)品和消消費類電電子產(chǎn)品品的理想想選擇,,已成功功應(yīng)用于于多家公公司的掌掌上電腦腦系列產(chǎn)產(chǎn)品。IntelStrongARMSA-1100處理理器是采采用ARM體系系結(jié)構(gòu)高高度集成成的32位RISC微微處理器器。它融融合了Intel公司司的設(shè)計計和處理理技術(shù)以以及ARM體系系結(jié)構(gòu)的的電源效效率,采采用在軟軟件上兼兼容ARMv4體系結(jié)結(jié)構(gòu)、同同時采用用具有Intel技術(shù)術(shù)優(yōu)點的的體系結(jié)結(jié)構(gòu)。23Xscale處理器ARM微微處理器器系列Xscale處處理器器是基于于ARMv5TE體系系結(jié)構(gòu)的的解決方方案,是是一款全全性能、、高性價價比、低低功耗的的處理器器。它支支持16位的Thumb指令令和DSP指令令集,已已使用在在數(shù)字移移動電話話、個人人數(shù)字助助理和網(wǎng)網(wǎng)絡(luò)產(chǎn)品品等場合合。Xscale處處理器器是Intel目前主主要推廣廣的一款款A(yù)RM微處理理器。24ARM微微處理器器的工作作狀態(tài)ARM微微處理器器的工作作狀態(tài)從編程的的角度看看,ARM微處處理器的的工作狀狀態(tài)一般般有兩種種,并可可在兩種種狀態(tài)之之間切換換:ARM狀狀態(tài),此此時處理理器執(zhí)行行32位位的字對對齊的ARM指指令;Thumb狀態(tài)態(tài),此時時處理器器執(zhí)行16位的的、半字字對齊的的Thumb指指令。25ARM與與THUMBTHUMB指令令是ARM指令令的子集集ARM微微處理器器的工作作狀態(tài)可以相互互調(diào)用,,只要遵遵循一定定的調(diào)用用規(guī)則Thumb指令令與ARM指令令的時間間效率和和空間效效率關(guān)系系為:存儲空間間約為ARM代代碼的60%~~70%%指令數(shù)比比ARM代碼多多約30%~40%存儲器為為32位位時ARM代碼碼比Thumb代碼快快約40%存儲器為為16位位時Thumb比ARM代碼碼快約40~50%使用Thumb代碼,,存儲器器的功耗耗會降低低約30%26狀態(tài)切換換方法ARM指指令集和和Thumb指指令集均均有切換換處理器器狀態(tài)的的指令,,并可在在兩種工工作狀態(tài)態(tài)之間切切換,ARM微微處理器器的工作作狀態(tài)在開始執(zhí)執(zhí)行代碼碼時,處處于ARM狀態(tài)態(tài)。27進入Thumb狀態(tài)當(dāng)操作數(shù)數(shù)寄存器器的狀態(tài)態(tài)位(位位0)為為1時,,可以采采用執(zhí)行行BX指指令的方方法,使使微處理理器從ARM狀狀態(tài)切換換到Thumb狀態(tài)。。當(dāng)處理器器處于Thumb狀態(tài)態(tài)時發(fā)生生異常((如IRQ、FIQ、、Undef、、Abort、、SWI等),,則異常常處理返返回時,,自動切切換到Thumb狀態(tài)態(tài)。ARM微微處理器器的工作作狀態(tài)28切換到ARM狀狀態(tài)當(dāng)操作數(shù)數(shù)寄存器器的狀態(tài)態(tài)位為0時,執(zhí)執(zhí)行BX指令時時可以使使微處理理器從Thumb狀態(tài)態(tài)切換到到ARM狀態(tài)。。ARM微微處理器器的工作作狀態(tài)在處理器器進行異異常處理理時,把把PC指指針放入入異常模模式鏈接接寄存器器中,并并從異常常向量地地址開始始執(zhí)行程程序,也也可以使使處理器器切換到到ARM狀態(tài)。。29處理器模模式ARM微微處理器器的工作作模式usr::ARM處理器器正常的的程序執(zhí)執(zhí)行狀態(tài)態(tài)fiq::用于高高速數(shù)據(jù)據(jù)傳輸或或通道處處理irq::用于通通用的中中斷處理理svc::操作系系統(tǒng)使用用的保護護模式abt::用于虛虛擬存儲儲及存儲儲保護sys::運行具具有特權(quán)權(quán)的操作作系統(tǒng)任任務(wù)und:當(dāng)當(dāng)出現(xiàn)未定定義指令終終止時進入入該模式30用戶模式和和特權(quán)模式式ARM微處處理器的工工作模式除了用戶模模式之外的的其他6種種處理器模模式稱為特特權(quán)模式特權(quán)權(quán)模模式式下下,,程程序序可可以以訪訪問問所所有有的的系系統(tǒng)統(tǒng)資資源源,,也也可可以以任任意意地地進進行行處處理理器器模模式式的的切切換換。。特權(quán)權(quán)模模式式中中,,除除系系統(tǒng)統(tǒng)模模式式外外,,其其他他5種種模模式式又又稱稱為為異異常常模模式式大多多數(shù)數(shù)的的用用戶戶程程序序運運行行在在用用戶戶模模式式下下,,此此時時,,應(yīng)應(yīng)用用程程序序不不能能夠夠訪訪問問一一些些受受操操作作系系統(tǒng)統(tǒng)保保護護的的系系統(tǒng)統(tǒng)資資源源,,應(yīng)應(yīng)用用程程序序也也不不能能直直接接進進行行處處理理器器模模式式的的切切換換。。用戶戶模模式式下下,,當(dāng)當(dāng)需需要要進進行行處處理理器器模模式式切切換換時時,,應(yīng)應(yīng)用用程程序序可可以以產(chǎn)產(chǎn)生生異異常常處處理理,,在在異異常常處處理理中中進進行行處處理理器器模模式式的的切切換換。。31模式式切切換換ARM微微處處理理器器的的工工作作模模式式處理理器器模模式式可可以以通通過過軟軟件件進進行行切切換換,,也也可可以以通通過過外外部部中中斷斷或或者者異異常常處處理理過過程程進進行行切切換換。。當(dāng)應(yīng)應(yīng)用用程程序序發(fā)發(fā)生生異異常常中中斷斷時時,,處處理理器器進進入入相相應(yīng)應(yīng)的的異異常常模模式式。。在在每每一一種種異異常常模模式式下下都都有有一一組組寄寄存存器器,,供供相相應(yīng)應(yīng)的的異異常常處處理理程程序序使使用用,,這這樣樣就就可可以以保保證證在在進進入入異異常常模模式式時時,,用用戶戶模模式式下下的的寄寄存存器器不不被被破破壞壞。。系統(tǒng)模模式并并不是是通過過異常常進入入的,,它和和用戶戶模式式具有有完全全一樣樣的寄寄存器器。但但是系系統(tǒng)模模式屬屬于特特權(quán)模模式,,可以以訪問問所有有的系系統(tǒng)資資源,,也可可以直直接進進行處處理器器模式式切換換。它它主要要供操操作系系統(tǒng)任任務(wù)使使用。。通常常操作作系統(tǒng)統(tǒng)的任任務(wù)需需要訪訪問所所有的的系統(tǒng)統(tǒng)資源源,同同時該該任務(wù)務(wù)仍然然使用用用戶戶模式式的寄寄存器器組,,而不不是使使用異異常模模式下下相應(yīng)應(yīng)的寄寄存器器組,,這樣樣可以以保證證當(dāng)異異常中中斷發(fā)發(fā)生時時任務(wù)務(wù)狀態(tài)態(tài)不被被破壞壞。32ARM微處處理器器的存存儲器器格式式ARM體系系結(jié)構(gòu)構(gòu)所支支持的的最大大尋址址空間間為4GB(232字節(jié)))ARM微處處理器器的存存儲器器格式式ARM體系系結(jié)構(gòu)構(gòu)將存存儲器器看作作是從從零地地址開開始的的字節(jié)節(jié)的線線性組組合。。從零零字節(jié)節(jié)到三三字節(jié)節(jié)放置置第一一個存存儲的的字數(shù)數(shù)據(jù),,從第第四個個字節(jié)節(jié)到第第七個個字節(jié)節(jié)放置置第二二個存存儲的的字數(shù)數(shù)據(jù),,依次次排列列。ARM體系系結(jié)構(gòu)構(gòu)可以以用兩兩種方方法存存儲字字數(shù)據(jù)據(jù),稱稱之為為大端端格式式和小小端格格式33ARM體系系結(jié)構(gòu)構(gòu)的存存儲器器格式式—大端格格式ARM微處處理器器的存存儲器器格式式在這種種格式式中,,字數(shù)數(shù)據(jù)的的高字字節(jié)存存儲在在低地地址中中,而而字數(shù)數(shù)據(jù)的的低字字節(jié)則則存放放在高高地址址中34ARM體系系結(jié)構(gòu)構(gòu)的存存儲器器格式式—小端端格格式式ARM微微處處理理器器的的存存儲儲器器格格式式與大大端端存存儲儲格格式式相相反反,,在在小小端端存存儲儲格格式式中中,,低低地地址址中中存存放放的的是是字字數(shù)數(shù)據(jù)據(jù)的的低低字字節(jié)節(jié),,高高地地址址存存放放的的是是字字數(shù)數(shù)據(jù)據(jù)的的高高字字節(jié)節(jié)35指令令長長度度及及數(shù)數(shù)據(jù)據(jù)類類型型ARM微微處處理理器器的的指指令令長長度度可可以以是是32位位((在在ARM狀狀態(tài)態(tài)下下)),,也也可可以以為為16位位((在在Thumb狀狀態(tài)態(tài)下下))。。ARM微處理理器的存儲器器格式ARM微處理理器中支持字字節(jié)(8位))、半字(16位)、字字(32位))三種數(shù)據(jù)類類型,其中,,字需要4字字節(jié)對齊(地地址的低兩位位為0)、半半字需要2字字節(jié)對齊(地地址的最低位位為0)36非對齊的存儲儲訪問操作在ARM中,,如果存儲單單元的地址沒沒有遵守對齊齊規(guī)則,則稱稱為非對齊的的存儲訪問操操作。ARM微處處理器的存存儲器格式式非對齊的指指令預(yù)取操操作非對齊的數(shù)數(shù)據(jù)訪問操操作37非對齊的指指令預(yù)取操操作當(dāng)處理器處處于ARM狀態(tài)期間間,如果寫寫入到寄存存器PC中中的值是非非字對齊的的,要么指指令執(zhí)行的的結(jié)果不可可預(yù)知,要要么地址值值中最低兩兩位被忽略略。ARM微處處理器的存存儲器格式式當(dāng)處理器處處于THUMB狀態(tài)態(tài)期間,如如果寫入到到寄存器PC中的值值是非半字字對齊的,,要么指令令執(zhí)行的結(jié)結(jié)果不可預(yù)預(yù)知,要么么地址值中中最低位被被忽略。38非對齊的數(shù)數(shù)據(jù)訪問操操作對于Load/Store操操作,如果果是非對齊齊的數(shù)據(jù)訪訪問操作,,系統(tǒng)定義義了三種可可能的結(jié)果果:ARM微處處理器的存存儲器格式式執(zhí)行的結(jié)果果不可預(yù)知知忽略字單元元地址的低低兩位的值值,即訪問問地址為(addressAND0XFFFFFFFC)的的字單元;;忽略半字字單元地址址的最低位位的值,即即訪問地址址為(addressAND0XFFFFFFFE)的半字字單元。忽略字單元元地址的低低兩位的值值;或忽略略半字單元元地址的最最低位的值值;由存儲儲系統(tǒng)實現(xiàn)現(xiàn)這種忽略略。也就是是說,這時時該地址值值原封不動動地送到存存儲系統(tǒng)。。當(dāng)發(fā)生非非對齊的的數(shù)據(jù)訪訪問時,,到底采采用上述述三種方方法中的的哪一種種,是由由各指令令指定的的。39寄存器組組織ARM微微處理器器共有37個32位寄寄存器,,其中31個為為通用寄寄存器,,6個為為狀態(tài)寄寄存器。。但是這這些寄存存器不能能被同時時訪問,,具體哪哪些寄存存器是可可編程訪訪問的,,取決微微處理器器的工作作狀態(tài)及及具體的的運行模模式。但但在任何何時候,,通用寄寄存器R14~~R0、、程序計計數(shù)器PC、一一個或兩兩個狀態(tài)態(tài)寄存器器都是可可訪問的的。ARM微處處理器器的寄寄存器器格式式40ARM狀態(tài)態(tài)下的的寄存存器組組織通用寄寄存器器:通通用寄寄存器器包括括R0~R15,可可以分分為三三類::未分組組寄存存器R0~~R7分組寄寄存器器R8~R14程序計計數(shù)器器PC(R15)ARM微處處理器器的寄寄存器器格式式41ARM狀態(tài)態(tài)下的的寄存存器組組織ARM微處處理器器的寄寄存器器格式式42未分組組寄存存器R0~~R7ARM微處處理器器的寄寄存器器格式式在所有有的運運行模模式下下,未未分組組寄存存器都都指向向同一一個物物理寄寄存器器,他他們未未被系系統(tǒng)用用作特特殊的的用途途,因因此,,在中中斷或或異常常處理理進行行運行行模式式轉(zhuǎn)換換時,,由于于不同同的處處理器器運行行模式式均使使用相相同的的物理理寄存存器,,可能能會造造成寄寄存器器中數(shù)數(shù)據(jù)的的破壞壞,這這一點點在進進行程程序設(shè)設(shè)計時時應(yīng)引引起注注意。。43分組寄寄存器器R8~R12ARM微處處理器器的寄寄存器器格式式每次所所訪問問的物物理寄寄存器器與處處理器器當(dāng)前前的運運行模模式有有關(guān)R8~~R12::每個個寄存存器對對應(yīng)兩兩個不不同的的物理理寄存存器當(dāng)使用用fiq模模式時時,訪訪問寄寄存器器R8_fiq~R12_fiq;當(dāng)使用用除fiq模式式以外外的其其他模模式時時,訪訪問寄寄存器器R8_usr~R12_usr。44分組寄寄存器器R13~~R14ARM微處處理器器的寄寄存器器格式式R13、R14:每每個寄寄存器器對應(yīng)應(yīng)6個個不同同的物物理寄寄存器器其中的的一個個是用用戶模模式與與系統(tǒng)統(tǒng)模式式共用用,另另外5個物物理寄寄存器器對應(yīng)應(yīng)于其其他5種不不同的的運行行模式式采用以以下的的記號號來區(qū)區(qū)分不不同的的物理理寄存存器::R13_<mode>R14_<mode>mode為為以下下幾種種之一一:usr、fiq、irq、svc、abt、und。45堆棧指指針——R13ARM微處處理器器的寄寄存器器格式式R13在ARM指令令中常常用作作堆棧棧指針針,但但這只只是一一種習(xí)習(xí)慣用用法,,用戶戶也可可使用用其他他的寄寄存器器作為為堆棧棧指針針。在Thumb指指令集集中,,某些些指令令強制制性的的要求求使用用R13作作為堆堆棧指指針。。由于處處理器器的每每種運運行模模式均均有自自己獨獨立的的物理理寄存存器R13,在在初始始化部部分,,都要要初始始化每每種模模式下下的R13,這這樣,,當(dāng)程程序的的運行行進入入異常常模式式時,,可以以將需需要保保護的的寄存存器放放入R13所指指向的的堆棧棧,而而當(dāng)程程序從從異常常模式式返回回時,,則從從對應(yīng)應(yīng)的堆堆棧中中恢復(fù)復(fù)。46子程程序序連連接接寄寄存存器器——R14ARM微微處處理理器器的的寄寄存存器器格格式式R14也也稱稱作作子子程程序序連連接接寄寄存存器器或或連連接接寄寄存存器器LR。。當(dāng)當(dāng)執(zhí)執(zhí)行行BL子子程程序序調(diào)調(diào)用用指指令令時時,,可可以以從從R14中中得得到到R15((程程序序計計數(shù)數(shù)器器PC))的的備備份份。。其其他他情情況況下下,,R14用用作作通通用用寄寄存存器器。。在每一種種運行模模式下,,都可用用R14保存子子程序的的返回地地址,當(dāng)當(dāng)用BL或BLX指令令調(diào)用子子程序時時,將下下一條指指令的地地址值拷拷貝給R14,,執(zhí)行完完子程序序后,又又將R14的值值拷貝回回PC,,即可完完成子程程序的調(diào)調(diào)用返回回。BLSUB1……SUB1:STMFDSP!,{<regs>,LR}/*將將R14存入堆堆棧*/……LDMFDSP!,{<regs>,PC}/*完成成子程序序返回*/47程序計數(shù)數(shù)器PC(R15)ARM微微處理器器的寄存存器格式式ARM狀狀態(tài)下,,位[1:0]為0,,位[31:2]用于于保存PC;Thumb狀態(tài)態(tài)下,位位[0]為0,,位[31:1]用于于保存PC;R15雖然然也可可用作作通用用寄存存器,,但一一般不不這么么使用用,因因為對對R15的的使用用有一一些特特殊的的限制制,當(dāng)當(dāng)違反反了這這些限限制時時,程程序的的執(zhí)行行結(jié)果果是未未知的的。由于ARM體系結(jié)結(jié)構(gòu)采采用了了多級級流水水線技技術(shù),,對于于ARM指令集集而言言,PC總是指指向當(dāng)當(dāng)前指指令的的下兩兩條指指令的的地址址,即即PC的值為為當(dāng)前前指令令的地地址值值加8個字節(jié)節(jié)。48程序狀狀態(tài)寄寄存器器(CPSR/SPSR)CPSR(當(dāng)前程程序狀狀態(tài)寄寄存器器),CPSR可在任任何運運行模式式下被被訪問問,它它包括括條件件標(biāo)志志位、、中斷斷禁止止位、、當(dāng)前前處理理器模模式標(biāo)標(biāo)志位位,以以及其其他一一些相相關(guān)的的控制制和狀狀態(tài)位位。ARM微處處理器器的寄寄存器器格式式每一種種運行行模式式下又又都有有一個個專用用的物物理狀狀態(tài)寄寄存器器,稱稱為SPSR(備份份的程程序狀狀態(tài)寄寄存器器),,異常常發(fā)生生時,,SPSR用于于保存存CPSR的值值,從從異常常退出出時則則可由由SPSR來恢恢復(fù)CPSR。。由于用用戶模模式和和系統(tǒng)統(tǒng)模式式不屬屬于異異常模模式,,他們們沒有有SPSR,當(dāng)當(dāng)在這這兩種種模式式下訪訪問SPSR,,結(jié)果果是未未知的的。49Thumb狀態(tài)態(tài)下的的寄存存器組組織Thumb狀態(tài)態(tài)下的的寄存存器集集是ARM狀態(tài)態(tài)下寄寄存器器集的的一個個子集集ARM微處理理器的寄存器器格式程序可以直接接訪問8個通通用寄存器((R7~R0)、程序計計數(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)下的的R0~R7是相同的。。Thumb狀狀態(tài)下和ARM狀態(tài)下的的CPSR和和所有的SPSR是相同同的。Thumb狀狀態(tài)下的SP對應(yīng)于ARM狀態(tài)下的的R13。Thumb狀狀態(tài)下的LR對應(yīng)于ARM狀態(tài)下的的R14。Thumb狀狀態(tài)下的程序序計數(shù)器對應(yīng)應(yīng)于ARM狀狀態(tài)下R15。52Thumb狀狀態(tài)下的寄存存器與ARM狀態(tài)下的寄寄存器關(guān)系圖圖ARM微處理理器的寄存器器格式53訪問THUMB狀態(tài)下的的高位寄存器器(Hi-registers)在Thumb狀態(tài)下,高高位寄存器R8~R15并不是標(biāo)準準寄存器集的的一部分,但但可使用匯編編語言程序受受限制的訪問問這些寄存器器,將其用作作快速的暫存存器。ARM微處理理器的寄存器器格式使用帶特殊變變量的MOV指令,數(shù)據(jù)據(jù)可以在低位位寄存器和高高位寄存器之之間進行傳送送;高位寄存存器的值可以以使用CMP和ADD指指令進行比較較或加上低位位寄存器中的的值。54程序狀態(tài)寄存存器ARM微處理理器的寄存器器格式ARM體系結(jié)結(jié)構(gòu)包含一個個當(dāng)前程序狀狀態(tài)寄存器((CPSR))和五個備份份的程序狀態(tài)態(tài)寄存器(SPSRs))。備份的程程序狀態(tài)寄存存器用來進行行異常處理,,其功能包括括:保存ALU中中的當(dāng)前操作作信息控制允許和禁禁止中斷設(shè)置處理器的的運行模式55程序狀態(tài)寄存存器的每一位位的安排ARM微處理理器的寄存器器格式56程序狀態(tài)寄存存器的條件碼標(biāo)志N、Z、C、、V均為條件件碼標(biāo)志位。。它們的內(nèi)容容可被算術(shù)或或邏輯運算的的結(jié)果所改變變,并且可以以決定某條指指令是否被執(zhí)執(zhí)行ARM微處理理器的寄存器器格式在ARM狀態(tài)態(tài)下,絕大多多數(shù)的指令都都是有條件執(zhí)執(zhí)行的。在Thumb狀態(tài)下,僅僅有分支指令令是有條件執(zhí)執(zhí)行的。57標(biāo)志位的含義義標(biāo)志位含
義N當(dāng)用兩個補碼表示的帶符號數(shù)進行運算時,N=1表示運算的結(jié)果為負數(shù);N=0表示運算的結(jié)果為正數(shù)或零;ZZ=1表示運算的結(jié)果為零;Z=0表示運算的結(jié)果為非零;C加法運算結(jié)果進位時,C=1,減法運算借位時,C=0;移位操作的非加/減運算指令,C為移出的最后一位;其他的非加/減運算指令,C的值通常不改變。V加/減法運算指令,V=1表示符號位溢出。對于其他的非加/減運算指令,C的值通常不改變。Q在ARMv5及以上版本的E系列處理器中,Q標(biāo)志指示DSP運算指令是否溢出。在其他版本中,Q標(biāo)志位無定義。ARM微處理理器的寄存器器格式58程序狀態(tài)寄存存器的控制位狀態(tài)寄存器的的低8位(I、F、T和和M[4:0])稱為控控制位,發(fā)生生異常時這些些位可以被改改變。如果處處理器運行特權(quán)模式,這些位也可可以由程序修修改。ARM微處理理器的寄存器器格式中斷禁止位I、F:I=1禁禁止IRQ中斷;F=1禁禁止FIQ中斷。T標(biāo)志位:該該位反映處理理器的運行狀狀態(tài)ARM體系結(jié)結(jié)構(gòu)v5及以以上的版本的的T系列處理理器,當(dāng)該位位為1時,程程序運行于Thumb狀狀態(tài),否則運運行于ARM狀態(tài)。ARM體系結(jié)結(jié)構(gòu)v5及以以上的版本的的非T系列處處理器,當(dāng)該該位為1時,,執(zhí)行下一條條指令以引起起未定義的指指令異常;當(dāng)當(dāng)該位為0時時,表示運行行于ARM狀狀態(tài)。運行模模式位位M[4::0]是模模式位位,決決定處處理器器的運運行模模式59處理器器運行行模式式及可可以訪訪問的的寄存存器M[4:0]處理器模式可訪問的寄存器0b10000用戶模式PC,CPSR,R0-R140b10001FIQ模式PC,CPSR,SPSR_fiq,R14_fiq-R8_fiq,R7~R00b10010IRQ模式PC,CPSR,SPSR_irq,R14_irq,R13_irq,R12~R00b10011管理模式PC,CPSR,SPSR_svc,R14_svc,R13_svc,R12~R0,0b10111中止模式PC,CPSR,SPSR_abt,R14_abt,R13_abt,R12~R0,0b11011未定義模式PC,CPSR,SPSR_und,R14_und,R13_und,R12~R0,0b11111系統(tǒng)模式PC,CPSR(ARMv4及以上版本),R14~R0ARM微處處理器器的寄寄存器器格式式60異常((Exceptions)當(dāng)正常常的程程序執(zhí)執(zhí)行流流程發(fā)發(fā)生暫暫時的的停止止時,,稱之之為異異常,,例如如處理理一個個外部部的中中斷請請求。。在處處理異異常之之前,,當(dāng)前前處理理器的的狀態(tài)態(tài)必須須保留留,這這樣當(dāng)當(dāng)異常常處理理完成成之后后,當(dāng)當(dāng)前程程序可可以繼繼續(xù)執(zhí)執(zhí)行。。處理理器允允許多多個異異常同同時發(fā)發(fā)生,,它們們將會會按固固定的的優(yōu)先先級進進行處處理。。ARM異常常處理ARM體系系結(jié)構(gòu)中的的異常,與與8位/16位體系系結(jié)構(gòu)的中中斷有很大大的相似之之處,但異異常與中斷斷的概念并并不完全等等同。61ARM體體系結(jié)構(gòu)構(gòu)所支持持的異常常類型異常類型具體含義復(fù)位復(fù)位電平有效時,產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位處理程序處執(zhí)行。未定義指令遇到不能處理的指令時,產(chǎn)生未定義指令異常。軟件中斷執(zhí)行SWI指令產(chǎn)生,用于用戶模式下的程序調(diào)用特權(quán)操作指令。指令預(yù)取中止處理器預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問,產(chǎn)生指令預(yù)取中止異常。數(shù)據(jù)中止處理器數(shù)據(jù)訪問指令的地址不存在,或該地址不允許當(dāng)前指令訪問時,產(chǎn)生數(shù)據(jù)中止異常。IRQ外部中斷請求有效,且CPSR中的I位為0時,產(chǎn)生IRQ異常。FIQ快速中斷請求引腳有效,且CPSR中的F位為0時,產(chǎn)生FIQ異常。ARM異異常處理理62對異常的的響應(yīng)ARM異異常處理理當(dāng)一個異異常出現(xiàn)現(xiàn)以后,,ARM微處理理器會執(zhí)執(zhí)行以下下幾步操操作將下一條條指令的的地址存存入相應(yīng)應(yīng)連接寄寄存器LR,以以便程序序在處理理異常返返回時能能從正確確的位置置重新開開始執(zhí)行行。將CPSR復(fù)制制到相應(yīng)應(yīng)的SPSR中中。根據(jù)異常常類型,,強制設(shè)設(shè)置CPSR的的運行模模式位。。強制PC從相關(guān)關(guān)的異常常向量地地址取下下一條指指令執(zhí)行行,從而而跳轉(zhuǎn)到到相應(yīng)的的異常處處理程序序處。63R14_<Exception_Mode>=ReturnLinkSPSR_<Exception_Mode>=CPSRCPSR[4:0]=ExceptionModeNumberCPSR[5]=0If<Exception_Mode>==ResetorFIQthenCPSR[6]=1CPSR[7]=1PC=ExceptionVectorAddress異常響應(yīng)應(yīng)偽代碼碼ARM異異常處理理處理器處處于Thumb狀態(tài),,則當(dāng)異異常向量量地址加加載入PC時,,處理器器自動切切換到ARM狀狀態(tài)。ARM微微處理器器對異常常的響應(yīng)應(yīng)過程用用偽碼可可以描述述為:在ARM狀態(tài)態(tài)下執(zhí)行禁止快速中斷斷禁止正常中斷斷轉(zhuǎn)入異常入口口地址64從異常返回ARM異常處處理異常處理完畢畢之后,ARM微處理器器會執(zhí)行以下下幾步操作從從異常返回::將連接寄存器器LR的值減減去相應(yīng)的偏偏移量后送到到PC中。將SPSR復(fù)復(fù)制回CPSR中。若在進入異常常處理時設(shè)置置了中斷禁止止位,要在此此清除??梢哉J為應(yīng)用用程序總是從從復(fù)位異常處處理程序開始始執(zhí)行的,因因此復(fù)位異常常處理程序不不需要返回。。65FIQ(FastInterruptRequest)FIQ異常是是為了支持數(shù)數(shù)據(jù)傳輸或者者通道處理而而設(shè)計的。ARM異常處處理若將CPSR的F位置為為1,則會禁禁止FIQ中中斷,若將CPSR的F位清零,處處理器會在指指令執(zhí)行時檢檢查FIQ的的輸入。注意意只有在特權(quán)權(quán)模式下才能能改變F位的的狀態(tài)。可由外部通過過對處理器上上的nFIQ引腳輸入低低電平產(chǎn)生FIQ。不管管是在ARM狀態(tài)還是在在Thumb狀態(tài)下進入入FIQ模式式,F(xiàn)IQ處處理程序均可可以執(zhí)行以下下指令從FIQ模式返
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年金融科技公司成立項目可行性研究報告
- 2025年現(xiàn)代化農(nóng)業(yè)種植科技項目可行性研究報告
- 2025年快遞物流無接觸配送系統(tǒng)可行性研究報告
- 2025年智能穿戴設(shè)備市場分析與開發(fā)項目可行性研究報告
- 2025年公共交通服務(wù)優(yōu)化可行性研究報告
- 中梵簽約協(xié)議書
- 浙江國貿(mào)合同范本
- 2025年房產(chǎn)中介服務(wù)平臺建設(shè)項目可行性研究報告
- 高三歷史上學(xué)期期中考試卷題庫試題附答案完整版
- 論工程造價的合理確定
- 松陵一中分班試卷及答案
- 《小米廣告宣傳冊》課件
- 勞務(wù)派遣公司工作方案
- 物理趣味題目試題及答案
- 華師大版數(shù)學(xué)七年級上冊《4.3 立體圖形的表面展開圖》聽評課記錄
- 2023-2024學(xué)年四川省成都市高二上學(xué)期期末調(diào)研考試地理試題(解析版)
- 陜西單招數(shù)學(xué)試題及答案
- 應(yīng)收賬款債權(quán)轉(zhuǎn)讓協(xié)議
- 四川省宜賓市長寧縣2024-2025學(xué)年九年級上學(xué)期期末化學(xué)試題(含答案)
- CNAS-CC01:2015 管理體系認證機構(gòu)要求
- 可行性報告商業(yè)計劃書
評論
0/150
提交評論