嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件_第1頁(yè)
嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件_第2頁(yè)
嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件_第3頁(yè)
嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件_第4頁(yè)
嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件_第5頁(yè)
已閱讀5頁(yè),還剩125頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章ARM體系結(jié)構(gòu)ARM公司是嵌入式RISC處理器的知識(shí)產(chǎn)權(quán)IP供應(yīng)商,它為ARM架構(gòu)處理器提供了ARM處理器內(nèi)核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM處理器核(ARM710T/720T/740T、ARM920T/922T/940T、ARM926E/966E及ARM1020E等)。

第二章ARM體系結(jié)構(gòu)ARM公司是12.1ARM架構(gòu)的發(fā)展ARM公司(AdvancedRISCMachinesLimited)正式成立于1990年。目前,ARM架構(gòu)處理器已在高性能、低功耗、低成本的嵌入式應(yīng)用領(lǐng)域占據(jù)領(lǐng)先地位,已占有75%左右的市場(chǎng)。

ARM架構(gòu)自誕生至今,已經(jīng)發(fā)生了很大的演變,至今已定義5種不同的版本:

2.1ARM架構(gòu)的發(fā)展ARM公司21.V1版架構(gòu)

該版架構(gòu)只在原型機(jī)ARM1出現(xiàn)過(guò),其基本性能:

·基本的數(shù)據(jù)處理指令(無(wú)乘法)

·字節(jié)、半字和字的LOAD/STORE指令

·轉(zhuǎn)移指令,包括子程序調(diào)用及鏈接指令

·軟件中斷指令

·尋址空間:64M字節(jié)(226)1.V1版架構(gòu)32.V2版架構(gòu)

該版架構(gòu)對(duì)V1版進(jìn)行了擴(kuò)展,如ARM2與ARM3(V2a版)架構(gòu),增加了以下功能:

·乘法和乘加指令

·支持協(xié)處理器操作指令

·快速中斷模式

·SWP/SWPB的最基本存儲(chǔ)器與寄存器交換指令

·尋址空間:64M字節(jié)2.V2版架構(gòu)43.V3版架構(gòu)V3版架構(gòu)對(duì)ARM體系結(jié)構(gòu)作為較大的改動(dòng),把尋址空間增至32位(4G字節(jié)),增加了當(dāng)前程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister)和程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister)以便于異常(Exception)的處理。增加了中止(Abort)和未定義二種處理器模式。ARM6就采用該版架構(gòu)。指令集變化如下:

·增加了MRS/MSR指令,以訪問(wèn)新增的CPSR/SPSR寄存器

·增加了從異常處理返回的指令功能。3.V3版架構(gòu)54.V4版架構(gòu)V4版架構(gòu)是目前應(yīng)用最廣的ARM體系結(jié)構(gòu),對(duì)V3版架構(gòu)進(jìn)行了進(jìn)一步擴(kuò)充,有的還引進(jìn)了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM8、ARM9和StrongARM都采用該版架構(gòu)。指令集中增加了以下功能:

·符號(hào)化和非符號(hào)化半字及符號(hào)化字節(jié)的存/取指令

·增加了16位Thumb指令集

·完善了軟件中斷SWI指令的功能

·處理器系統(tǒng)模式引進(jìn)特權(quán)方式時(shí)使用用戶寄存器操作

·把一些未使用的指令空間捕獲為未定義指令4.V4版架構(gòu)65.V5版架構(gòu)

這是最近推出ARM架構(gòu),在V4版基本上增加了一些新的指令,ARM10和XScale都采用該版架構(gòu),這些新增指令有:

·帶有鏈接和交換的轉(zhuǎn)移BLX指令

·計(jì)數(shù)前導(dǎo)零CLZ指令

·BRK中斷指令

·增加了信號(hào)處理指令(V5TE版)·為協(xié)處理器增加更多可選擇的指令5.V5版架構(gòu)72.2ARM架構(gòu)的特點(diǎn)RISC(ReducedInstructionSetComputer)型處理器結(jié)構(gòu)盡量減少?gòu)?fù)雜功能指令每條指令在單機(jī)器周期內(nèi)執(zhí)行每條指令都是32bit,具有多種操作功能訪問(wèn)存儲(chǔ)空間指令采用LOAD/STORE結(jié)構(gòu)采用cache來(lái)提高存/取速度多寄存器結(jié)構(gòu)2.2ARM架構(gòu)的特點(diǎn)RISC(ReducedInstr8小知識(shí):RISC體系結(jié)構(gòu)傳統(tǒng)的CISC(ComplexInstructionSetComputer,復(fù)雜指令集計(jì)算機(jī))結(jié)構(gòu)越來(lái)越復(fù)雜。在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會(huì)被反復(fù)使用,占整個(gè)程序代碼的80%。而余下的80%的指令卻不經(jīng)常使用,在程序設(shè)計(jì)中只占20%,顯然,這種結(jié)構(gòu)是不太合理的。小知識(shí):RISC體系結(jié)構(gòu)傳統(tǒng)的CISC9指令類型使用指令使用頻度數(shù)據(jù)傳送類43%轉(zhuǎn)/跳控制類23%算術(shù)運(yùn)算類15%比較類13%邏輯運(yùn)算類5%其他1%表2.1典型指令使用頻度小知識(shí):RISC體系結(jié)構(gòu)(續(xù)二)指令類型使用指令使用頻度數(shù)據(jù)傳送類43%轉(zhuǎn)/101979年美國(guó)加州大學(xué)伯克利分校提出了RISC(ReducedInstructionSetComputer,精簡(jiǎn)指令集計(jì)算機(jī))的概念,RISC并非只是簡(jiǎn)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上。RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡(jiǎn)單指令,避免復(fù)雜指令;將指令長(zhǎng)度固定,指令格式和尋地方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來(lái)達(dá)到上述目的。小知識(shí):RISC體系結(jié)構(gòu)(續(xù)三)1979年美國(guó)加州大學(xué)伯克利分校提出11RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):采用固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單、基本尋址方式有2~3種。使用單周期指令,便于流水線操作執(zhí)行。大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載/存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率。現(xiàn)代的CPU往往采用CISC的外圍,內(nèi)部加入了RISC的特性,如超長(zhǎng)指令集CPU就是融合了RISC和CISC的優(yōu)勢(shì),成為未來(lái)的CPU發(fā)展方向之一。小知識(shí):RISC體系結(jié)構(gòu)(續(xù)四)RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):小知識(shí):RISC體系結(jié)構(gòu)(續(xù)122.Thumb指令集

由于RISC型處理器的指令功能相對(duì)比較弱,ARM為了彌補(bǔ)此不足,在新型ARM架構(gòu)(V4T版以上)定義了16位的Thumb指令集。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6%。可以使程序存儲(chǔ)器更加小。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。2.Thumb指令集133.多處理器狀態(tài)模式ARM可以支持用戶、快中斷、中斷、管理、中止、系統(tǒng)和未定義等七種處理器模式,除了用戶模式外,其余的均為特權(quán)模式。這也是ARM的特色之一,可以大大提高ARM處理器的效率。3.多處理器狀態(tài)模式14表2.2ARMversion4processormodes表2.2ARMversion4processormo154.嵌入式在線仿真調(diào)試ARM架構(gòu)的處理器芯片都嵌入了在線仿真ICE—RT邏輯,便于通過(guò)了JTAG來(lái)仿真調(diào)試ARM架構(gòu)芯片。另外,在處理器核中還可以嵌入跟蹤宏單元ETM(EmbeddedTraceMacrocell),用于監(jiān)控內(nèi)部總線,實(shí)時(shí)跟蹤指令和數(shù)據(jù)的執(zhí)行。

4.嵌入式在線仿真調(diào)試165.靈活和方便的接口ARM架構(gòu)具有協(xié)處理器接口,允許接16個(gè)協(xié)處理器。ARM處理器核還具有片上總線OCB的AMBA。AMBA定義了三組總線:先進(jìn)高性能總線AHB、先進(jìn)系統(tǒng)總線ASB和先進(jìn)外圍總線APB。通過(guò)AMBA來(lái)方便擴(kuò)充各種處理器及I/O,可以把DSP、其他處理器和I/O(如VART、定時(shí)器和接口等)都集成在一塊芯片中。

5.靈活和方便的接口176.低電壓低功耗的設(shè)計(jì)

ARM架構(gòu)的設(shè)計(jì)采用了以下一些措施:降低電源電壓,可工作在3.0V以下。減少門的翻轉(zhuǎn)次數(shù),當(dāng)某個(gè)功能電路不需要時(shí)禁止門翻轉(zhuǎn)。減少門的數(shù)目,即降低芯片的集成度。降低時(shí)鐘頻率6.低電壓低功耗的設(shè)計(jì)182.3ARM的分類ARM微處理器目前包括下面幾個(gè)系列,以及其它廠商基于ARM體系結(jié)構(gòu)的處理器,

-ARM7系列

-ARM9系列

-ARM9E系列

-ARM10E系列

-SecurCore系列

-Intel的Xscale

-Intel的StrongARM2.3ARM的分類ARM微處理器目前包括下面幾191.ARM7微處理器系列ARM7系列微處理器為低功耗的32位RISC處理器,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7微處理器系列特點(diǎn):具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便。極低的功耗,適合對(duì)功耗要求較高的應(yīng)用。能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu)。代碼密度高并兼容16位的Thumb指令集。1.ARM7微處理器系列ARM7系列微處理器為低功耗的20對(duì)操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、PalmOS等。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級(jí)換代。主頻最高可達(dá)130MIPS,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。對(duì)操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、21ARM7系列微處理器的主要應(yīng)用領(lǐng)域?yàn)椋汗I(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動(dòng)電話等多種多媒體和嵌入式應(yīng)用。

ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。ARM7系列微處理器的主要應(yīng)用領(lǐng)域?yàn)?2內(nèi)核后綴TDMI的基本含義為:

T:支持16為壓縮指令集Thumb;

D:支持片上Debug;

M:內(nèi)嵌硬件乘法器(Multiplier)

I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn);處理器后綴的含義

S:可綜合的軟核Softcore

E:具有DSP的功能

J:Jazeller,允許直接執(zhí)行Java字節(jié)碼內(nèi)核后綴TDMI的基本含義為:

T:支持16為壓縮指令232.ARM9微處理器系列ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。具有以下特點(diǎn):5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。2.ARM9微處理器系列ARM9系列微處理器在高性能24ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。

ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場(chǎng)合。ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)253.ARM9E微處理器系列ARM9E系列微處理器為可綜合處理器,使用單一的處理器內(nèi)核提供了微控制器、DSP、Java應(yīng)用系統(tǒng)的解決方案,極大的減少了芯片的面積和系統(tǒng)的復(fù)雜程度。ARM9E系列微處理器提供了增強(qiáng)的DSP處理能力,很適合于那些需要同時(shí)使用DSP和微控制器的應(yīng)用場(chǎng)合。

ARM9系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型。3.ARM9E微處理器系列ARM9E系列微處理器為可26ARM9E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口

ARM9E系列微處理器的主要特點(diǎn)如下:27支持VFP9浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。主頻最高可達(dá)300MIPS。支持VFP9浮點(diǎn)處理協(xié)處理器。284.ARM10E微處理器系列ARM10E系列具有高性能、低功耗的特點(diǎn),由于采用了新的體系結(jié)構(gòu),與同等的ARM9器件相比較,在同樣的時(shí)鐘頻率下,性能提高了近50%,同時(shí),ARM10E系列微處理器采用了兩種先進(jìn)的節(jié)能方式,使其功耗極低。

ARM10E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。包含ARM1020E、ARM1022E和ARM1026EJ-S三種類型。

4.ARM10E微處理器系列ARM29ARM10E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。6級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP10浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力主頻最高可達(dá)400MIPS。內(nèi)嵌并行讀/寫操作部件。ARM10E系列微處理器的主要特點(diǎn)如下:302.4ARM架構(gòu)ARM架構(gòu)由32位ALU、31個(gè)32位通用寄存器及6位狀態(tài)寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令譯碼及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器組成。

2.4ARM架構(gòu)ARM架構(gòu)由32位ALU、3131圖2.1ARM架構(gòu)圖

圖2.1ARM架構(gòu)圖321.ALU算術(shù)邏輯運(yùn)算單元ALU是處理器核心的中心處理部分,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行運(yùn)算處理。由二個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果及零檢測(cè)邏輯構(gòu)成。

1.ALU算術(shù)邏輯運(yùn)算單元ALU是處理器核心的中33圖2.2ALU邏輯框圖

圖2.2ALU邏輯框圖342.Barrelshifter桶形移位寄存器

為了減少移位的延遲時(shí)間,ARM采用了32×32位的桶形移位寄存器。這樣,可以使左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成。

2.Barrelshifter桶形移位寄存器35圖2.34×4位桶形移位寄存器示意圖

圖2.34×4位桶形移位寄存器示意圖363.Multiplicator高速乘法器

ARM的高速乘法器采用32×8位的結(jié)構(gòu),這樣,可以降低集成度,(其相應(yīng)芯片面積不到并行乘法器的1/3),完成32×32位乘法也只需5個(gè)時(shí)鐘周期。

3.Multiplicator高速乘法器AR37圖2.4高速乘法器邏輯框圖

圖2.4高速乘法器邏輯框圖384.FloatPoint浮點(diǎn)部件浮點(diǎn)部件是作為選件為ARM架構(gòu)選用,F(xiàn)PA10浮點(diǎn)加速器是作為協(xié)處理器方式與ARM相連,并通過(guò)協(xié)處理器指令的解釋來(lái)執(zhí)行。浮點(diǎn)的LOAD/STORE指令使用頻度要達(dá)到67%,故FPA10內(nèi)部也采用LOAD/STORE結(jié)構(gòu),有八個(gè)80位浮點(diǎn)寄存器組,指令執(zhí)行也采用流水線結(jié)構(gòu)。4.FloatPoint浮點(diǎn)部件浮點(diǎn)部件是39圖2.5FPA10浮點(diǎn)加速器內(nèi)部結(jié)構(gòu)框圖

圖2.5FPA10浮點(diǎn)加速器內(nèi)部結(jié)構(gòu)框圖405.Controller控制器ARM的控制器采用硬接線的可編程邏輯陣列PLA,其輸入端14根,輸出40根,分散控制LOAD/STORE多路、乘法器、協(xié)處理器以及地址、寄存器、ALU和移位器的控制。新型的ARM采用了二塊PLA,一塊小的快速PLA,用來(lái)產(chǎn)生與時(shí)間相關(guān)的輸出;一塊大的慢速PLA用來(lái)產(chǎn)生其他輸出。5.Controller控制器ARM的控制器41圖2.6ARM控制邏輯結(jié)構(gòu)圖

圖2.6ARM控制邏輯結(jié)構(gòu)圖426.Registers寄存器

ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:通用寄存器包括程序計(jì)數(shù)器(PC指針),共31個(gè),均為32位的寄存器。分為:i.R0-R7:與所有處理器模式無(wú)關(guān)的寄存器,可以用作任何用途。6.Registers寄存器ARM處理器共有43ii.R8-R14:與處理器模式有關(guān)的寄存器,在不同的模式下,對(duì)應(yīng)到不同的物理寄存器。其中R13又叫做sp,一般用于堆棧指針。R14又叫做lr,一般用于保存返回地址。這兩個(gè)寄存器在每種異常模式下都對(duì)應(yīng)到不同的物理寄存器上,例如lr_irq、lr_svc、lr_fiq等。iii.R15:又叫做程序計(jì)數(shù)器,即pc,所有的模式下都使用同一個(gè)pc。

嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件44b)狀態(tài)寄存器用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài)。共6個(gè),均為32位。CPSR:當(dāng)前程序狀態(tài)寄存器(CurrentProgramStatusRegister),所有的模式下都使用同一個(gè)CPSR。SPSR:保存程序狀態(tài)寄存器(SavedProgramStatusRegister)。每種異常模式下都有自己的SPSR,一共有5種SPSR,即SPSR_irq、SPSR_fiq、SPSR_svc、SPSR_abt、SPSR_und。usr和sys態(tài)下沒(méi)有SPSR。

b)狀態(tài)寄存器45條件碼標(biāo)識(shí)N:負(fù)數(shù)標(biāo)識(shí)Z:結(jié)果為零標(biāo)識(shí)C:進(jìn)位位標(biāo)識(shí)V:溢出標(biāo)識(shí)*Q:DSP的溢出/飽和(選用)控制位I:IRQ中斷禁止位F:FIQ快中斷禁止位T:Thumb位M[4:0]:處理器工作模式條件碼標(biāo)識(shí)控制位46ARM處理器又有7種不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。即在任意一種處理器模式下,可訪問(wèn)的寄存器包括15個(gè)通用寄存器(R0~R14)、一至二個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個(gè)物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。ARM處理器又有7種不同的處理器模式,在每一種處47嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件482.5ARM流水線結(jié)構(gòu)LaundryExampleAnn,Brian,Cathy,Dave

eachhaveoneloadofclothes

towash,dry,andfoldWashertakes30minutesDryertakes40minutes“Folder”takes20minutesABCD2.5ARM流水線結(jié)構(gòu)LaundryExampleABC49SequentialLaundrySequentiallaundrytakes6hoursfor4loadsIftheylearnedpipelining,howlongwouldlaundrytake?ABCD3040203040203040203040206PM7891011MidnightTaskOrderTimeSequentialLaundrySequentiall50PipelinedLaundry:StartworkASAPPipelinedlaundrytakes3.5hoursfor4loadsABCD6PM7891011MidnightTaskOrderTime304040404020PipelinedLaundry:Startwork51Pipeliningdoesn’thelplatencyofsingletask,ithelpsthroughputofentireworkloadPipelineratelimitedbyslowestpipelinestageMultipletasksoperatingsimultaneouslyusingdifferentresourcesPotentialspeedup=NumberpipestagesUnbalancedlengthsofpipestagesreducesspeedupTimeto“fill”pipelineandtimeto“drain”itreducesspeedupStallforDependencesPipeliningdoesn’thelplatenc52計(jì)算機(jī)中的一條指令的執(zhí)行可以分若干個(gè)階段:1.取指,從存儲(chǔ)器中取出指令(fetch)2.譯碼,指令譯碼(dec)3.取操作數(shù),假定操作數(shù)從寄存器組中取(reg)4.執(zhí)行運(yùn)算(ALU)5.存儲(chǔ)器訪問(wèn),操作數(shù)與存儲(chǔ)器有關(guān)(mem)6.結(jié)果寫回寄存器(res)計(jì)算機(jī)中的一條指令的執(zhí)行可以分若干個(gè)階段:53圖2.8指令執(zhí)行流水線

圖2.8指令執(zhí)行流水線54圖2.9流水線的停頓

圖2.9流水線的停頓55圖2.10流水線的轉(zhuǎn)移指令的情況

圖2.10流水線的轉(zhuǎn)移指令的情況561.ARM三級(jí)流水線結(jié)構(gòu)ARM7架構(gòu)采用了三級(jí)流水線,分為取指,譯碼和執(zhí)行。圖2.11ARM單周期三級(jí)流水線

1.ARM三級(jí)流水線結(jié)構(gòu)ARM7架構(gòu)采用了三級(jí)57圖2.12ARM多周期三級(jí)流水線

圖2.12ARM多周期三級(jí)流水線582.ARM五級(jí)流水線結(jié)構(gòu)三級(jí)流水線阻塞主要產(chǎn)生在存儲(chǔ)器訪問(wèn)和數(shù)據(jù)通路的占用上。因此ARM9及StrongARM架構(gòu)都采用了五級(jí)流水線。把存儲(chǔ)器的取指與數(shù)據(jù)存取分開,同時(shí),還增加了I-Cache和D-Cache以提高存儲(chǔ)器存取的效率;其次,增加了數(shù)據(jù)寫回的專門通路和寄存器,以減少數(shù)據(jù)通路沖突,這樣,五級(jí)流水線分為:取指、指令譯碼、執(zhí)行、數(shù)據(jù)緩存和寫回等。2.ARM五級(jí)流水線結(jié)構(gòu)三級(jí)流水線阻塞主要產(chǎn)59TheFiveStagesofLoadIfetch:InstructionFetchFetchtheinstructionfromtheInstructionMemoryReg/Dec:RegistersFetchandInstructionDecodeExec:CalculatethememoryaddressMem:ReadthedatafromtheDataMemoryWr:WritethedatabacktotheregistersStage1Stage2Stage3Stage4Stage5IfetchReg/DecExecMemWrLoadTheFiveStagesofLoadIfetch:60嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件613.ARM流水線設(shè)計(jì)流水線除了加深流水線的深度和加快時(shí)鐘頻率來(lái)提高流水線的效率和吞吐率,還需要解決流水線中的結(jié)構(gòu)沖突、數(shù)據(jù)沖突和控制沖突等流水線沖突問(wèn)題。3.ARM流水線設(shè)計(jì)流水線除了加深流水線的深62結(jié)構(gòu)沖突解決方法:采用分離式指令Cache和數(shù)據(jù)Cache。使取指和存儲(chǔ)器的數(shù)據(jù)訪問(wèn)不再發(fā)生沖突。同時(shí)也解決了相應(yīng)的數(shù)據(jù)通路問(wèn)題。ALU中采用單獨(dú)加法器來(lái)完成地址計(jì)算。使執(zhí)行周期的運(yùn)算不再產(chǎn)生資源沖突。結(jié)構(gòu)沖突63b)數(shù)據(jù)沖突

有“寫后讀RAW”、“寫后寫WAW”和“讀后寫WAR”等幾種,主要是RAW。解決方法:定向Forwarding流水線互鎖PipelineInterlock編譯器的指令調(diào)度b)數(shù)據(jù)沖突64c)控制沖突流水線遇到跳轉(zhuǎn)指令或者其它更改PC值的指令就會(huì)產(chǎn)生控制沖突。解決方法:指令預(yù)測(cè)。

盡早判斷分支轉(zhuǎn)移是否成功,從而采取相應(yīng)的預(yù)測(cè)轉(zhuǎn)移和延遲轉(zhuǎn)移,以降低分支轉(zhuǎn)移的損失。盡早計(jì)算出分支轉(zhuǎn)移成功時(shí)的PC值(即分支的目標(biāo)地址)。有些ARM架構(gòu)處理器流水線的譯碼階段增加了一個(gè)專用加法器來(lái)計(jì)算分支的目標(biāo)地址。c)控制沖突65第二章ARM體系結(jié)構(gòu)ARM公司是嵌入式RISC處理器的知識(shí)產(chǎn)權(quán)IP供應(yīng)商,它為ARM架構(gòu)處理器提供了ARM處理器內(nèi)核(如ARM7TDMI、ARM9TDMI、ARM10TDMI等)和ARM處理器核(ARM710T/720T/740T、ARM920T/922T/940T、ARM926E/966E及ARM1020E等)。

第二章ARM體系結(jié)構(gòu)ARM公司是662.1ARM架構(gòu)的發(fā)展ARM公司(AdvancedRISCMachinesLimited)正式成立于1990年。目前,ARM架構(gòu)處理器已在高性能、低功耗、低成本的嵌入式應(yīng)用領(lǐng)域占據(jù)領(lǐng)先地位,已占有75%左右的市場(chǎng)。

ARM架構(gòu)自誕生至今,已經(jīng)發(fā)生了很大的演變,至今已定義5種不同的版本:

2.1ARM架構(gòu)的發(fā)展ARM公司671.V1版架構(gòu)

該版架構(gòu)只在原型機(jī)ARM1出現(xiàn)過(guò),其基本性能:

·基本的數(shù)據(jù)處理指令(無(wú)乘法)

·字節(jié)、半字和字的LOAD/STORE指令

·轉(zhuǎn)移指令,包括子程序調(diào)用及鏈接指令

·軟件中斷指令

·尋址空間:64M字節(jié)(226)1.V1版架構(gòu)682.V2版架構(gòu)

該版架構(gòu)對(duì)V1版進(jìn)行了擴(kuò)展,如ARM2與ARM3(V2a版)架構(gòu),增加了以下功能:

·乘法和乘加指令

·支持協(xié)處理器操作指令

·快速中斷模式

·SWP/SWPB的最基本存儲(chǔ)器與寄存器交換指令

·尋址空間:64M字節(jié)2.V2版架構(gòu)693.V3版架構(gòu)V3版架構(gòu)對(duì)ARM體系結(jié)構(gòu)作為較大的改動(dòng),把尋址空間增至32位(4G字節(jié)),增加了當(dāng)前程序狀態(tài)寄存器CPSR(CurrentProgramStatusRegister)和程序狀態(tài)保存寄存器SPSR(SavedProgramStatusRegister)以便于異常(Exception)的處理。增加了中止(Abort)和未定義二種處理器模式。ARM6就采用該版架構(gòu)。指令集變化如下:

·增加了MRS/MSR指令,以訪問(wèn)新增的CPSR/SPSR寄存器

·增加了從異常處理返回的指令功能。3.V3版架構(gòu)704.V4版架構(gòu)V4版架構(gòu)是目前應(yīng)用最廣的ARM體系結(jié)構(gòu),對(duì)V3版架構(gòu)進(jìn)行了進(jìn)一步擴(kuò)充,有的還引進(jìn)了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM8、ARM9和StrongARM都采用該版架構(gòu)。指令集中增加了以下功能:

·符號(hào)化和非符號(hào)化半字及符號(hào)化字節(jié)的存/取指令

·增加了16位Thumb指令集

·完善了軟件中斷SWI指令的功能

·處理器系統(tǒng)模式引進(jìn)特權(quán)方式時(shí)使用用戶寄存器操作

·把一些未使用的指令空間捕獲為未定義指令4.V4版架構(gòu)715.V5版架構(gòu)

這是最近推出ARM架構(gòu),在V4版基本上增加了一些新的指令,ARM10和XScale都采用該版架構(gòu),這些新增指令有:

·帶有鏈接和交換的轉(zhuǎn)移BLX指令

·計(jì)數(shù)前導(dǎo)零CLZ指令

·BRK中斷指令

·增加了信號(hào)處理指令(V5TE版)·為協(xié)處理器增加更多可選擇的指令5.V5版架構(gòu)722.2ARM架構(gòu)的特點(diǎn)RISC(ReducedInstructionSetComputer)型處理器結(jié)構(gòu)盡量減少?gòu)?fù)雜功能指令每條指令在單機(jī)器周期內(nèi)執(zhí)行每條指令都是32bit,具有多種操作功能訪問(wèn)存儲(chǔ)空間指令采用LOAD/STORE結(jié)構(gòu)采用cache來(lái)提高存/取速度多寄存器結(jié)構(gòu)2.2ARM架構(gòu)的特點(diǎn)RISC(ReducedInstr73小知識(shí):RISC體系結(jié)構(gòu)傳統(tǒng)的CISC(ComplexInstructionSetComputer,復(fù)雜指令集計(jì)算機(jī))結(jié)構(gòu)越來(lái)越復(fù)雜。在CISC指令集的各種指令中,其使用頻率卻相差懸殊,大約有20%的指令會(huì)被反復(fù)使用,占整個(gè)程序代碼的80%。而余下的80%的指令卻不經(jīng)常使用,在程序設(shè)計(jì)中只占20%,顯然,這種結(jié)構(gòu)是不太合理的。小知識(shí):RISC體系結(jié)構(gòu)傳統(tǒng)的CISC74指令類型使用指令使用頻度數(shù)據(jù)傳送類43%轉(zhuǎn)/跳控制類23%算術(shù)運(yùn)算類15%比較類13%邏輯運(yùn)算類5%其他1%表2.1典型指令使用頻度小知識(shí):RISC體系結(jié)構(gòu)(續(xù)二)指令類型使用指令使用頻度數(shù)據(jù)傳送類43%轉(zhuǎn)/751979年美國(guó)加州大學(xué)伯克利分校提出了RISC(ReducedInstructionSetComputer,精簡(jiǎn)指令集計(jì)算機(jī))的概念,RISC并非只是簡(jiǎn)單地去減少指令,而是把著眼點(diǎn)放在了如何使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理地提高運(yùn)算速度上。RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡(jiǎn)單指令,避免復(fù)雜指令;將指令長(zhǎng)度固定,指令格式和尋地方式種類減少;以控制邏輯為主,不用或少用微碼控制等措施來(lái)達(dá)到上述目的。小知識(shí):RISC體系結(jié)構(gòu)(續(xù)三)1979年美國(guó)加州大學(xué)伯克利分校提出76RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):采用固定長(zhǎng)度的指令格式,指令歸整、簡(jiǎn)單、基本尋址方式有2~3種。使用單周期指令,便于流水線操作執(zhí)行。大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器進(jìn)行操作,只有加載/存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率。現(xiàn)代的CPU往往采用CISC的外圍,內(nèi)部加入了RISC的特性,如超長(zhǎng)指令集CPU就是融合了RISC和CISC的優(yōu)勢(shì),成為未來(lái)的CPU發(fā)展方向之一。小知識(shí):RISC體系結(jié)構(gòu)(續(xù)四)RISC體系結(jié)構(gòu)應(yīng)具有如下特點(diǎn):小知識(shí):RISC體系結(jié)構(gòu)(續(xù)772.Thumb指令集

由于RISC型處理器的指令功能相對(duì)比較弱,ARM為了彌補(bǔ)此不足,在新型ARM架構(gòu)(V4T版以上)定義了16位的Thumb指令集。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度,而芯片面積只增加6%。可以使程序存儲(chǔ)器更加小。Thumb指令集為ARM指令集的功能子集,但與等價(jià)的ARM代碼相比較,可節(jié)省30%~40%以上的存儲(chǔ)空間,同時(shí)具備32位代碼的所有優(yōu)點(diǎn)。2.Thumb指令集783.多處理器狀態(tài)模式ARM可以支持用戶、快中斷、中斷、管理、中止、系統(tǒng)和未定義等七種處理器模式,除了用戶模式外,其余的均為特權(quán)模式。這也是ARM的特色之一,可以大大提高ARM處理器的效率。3.多處理器狀態(tài)模式79表2.2ARMversion4processormodes表2.2ARMversion4processormo804.嵌入式在線仿真調(diào)試ARM架構(gòu)的處理器芯片都嵌入了在線仿真ICE—RT邏輯,便于通過(guò)了JTAG來(lái)仿真調(diào)試ARM架構(gòu)芯片。另外,在處理器核中還可以嵌入跟蹤宏單元ETM(EmbeddedTraceMacrocell),用于監(jiān)控內(nèi)部總線,實(shí)時(shí)跟蹤指令和數(shù)據(jù)的執(zhí)行。

4.嵌入式在線仿真調(diào)試815.靈活和方便的接口ARM架構(gòu)具有協(xié)處理器接口,允許接16個(gè)協(xié)處理器。ARM處理器核還具有片上總線OCB的AMBA。AMBA定義了三組總線:先進(jìn)高性能總線AHB、先進(jìn)系統(tǒng)總線ASB和先進(jìn)外圍總線APB。通過(guò)AMBA來(lái)方便擴(kuò)充各種處理器及I/O,可以把DSP、其他處理器和I/O(如VART、定時(shí)器和接口等)都集成在一塊芯片中。

5.靈活和方便的接口826.低電壓低功耗的設(shè)計(jì)

ARM架構(gòu)的設(shè)計(jì)采用了以下一些措施:降低電源電壓,可工作在3.0V以下。減少門的翻轉(zhuǎn)次數(shù),當(dāng)某個(gè)功能電路不需要時(shí)禁止門翻轉(zhuǎn)。減少門的數(shù)目,即降低芯片的集成度。降低時(shí)鐘頻率6.低電壓低功耗的設(shè)計(jì)832.3ARM的分類ARM微處理器目前包括下面幾個(gè)系列,以及其它廠商基于ARM體系結(jié)構(gòu)的處理器,

-ARM7系列

-ARM9系列

-ARM9E系列

-ARM10E系列

-SecurCore系列

-Intel的Xscale

-Intel的StrongARM2.3ARM的分類ARM微處理器目前包括下面幾841.ARM7微處理器系列ARM7系列微處理器為低功耗的32位RISC處理器,最適合用于對(duì)價(jià)位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7微處理器系列特點(diǎn):具有嵌入式ICE-RT邏輯,調(diào)試開發(fā)方便。極低的功耗,適合對(duì)功耗要求較高的應(yīng)用。能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu)。代碼密度高并兼容16位的Thumb指令集。1.ARM7微處理器系列ARM7系列微處理器為低功耗的85對(duì)操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、PalmOS等。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級(jí)換代。主頻最高可達(dá)130MIPS,高速的運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。對(duì)操作系統(tǒng)的支持廣泛,包括WindowsCE、Linux、86ARM7系列微處理器的主要應(yīng)用領(lǐng)域?yàn)椋汗I(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動(dòng)電話等多種多媒體和嵌入式應(yīng)用。

ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。ARM7系列微處理器的主要應(yīng)用領(lǐng)域?yàn)?7內(nèi)核后綴TDMI的基本含義為:

T:支持16為壓縮指令集Thumb;

D:支持片上Debug;

M:內(nèi)嵌硬件乘法器(Multiplier)

I:嵌入式ICE,支持片上斷點(diǎn)和調(diào)試點(diǎn);處理器后綴的含義

S:可綜合的軟核Softcore

E:具有DSP的功能

J:Jazeller,允許直接執(zhí)行Java字節(jié)碼內(nèi)核后綴TDMI的基本含義為:

T:支持16為壓縮指令882.ARM9微處理器系列ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。具有以下特點(diǎn):5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。2.ARM9微處理器系列ARM9系列微處理器在高性能89ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。

ARM9系列微處理器包含ARM920T、ARM922T和ARM940T三種類型,以適用于不同的應(yīng)用場(chǎng)合。ARM9系列微處理器主要應(yīng)用于無(wú)線設(shè)903.ARM9E微處理器系列ARM9E系列微處理器為可綜合處理器,使用單一的處理器內(nèi)核提供了微控制器、DSP、Java應(yīng)用系統(tǒng)的解決方案,極大的減少了芯片的面積和系統(tǒng)的復(fù)雜程度。ARM9E系列微處理器提供了增強(qiáng)的DSP處理能力,很適合于那些需要同時(shí)使用DSP和微控制器的應(yīng)用場(chǎng)合。

ARM9系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域。ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型。3.ARM9E微處理器系列ARM9E系列微處理器為可91ARM9E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口

ARM9E系列微處理器的主要特點(diǎn)如下:92支持VFP9浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。主頻最高可達(dá)300MIPS。支持VFP9浮點(diǎn)處理協(xié)處理器。934.ARM10E微處理器系列ARM10E系列具有高性能、低功耗的特點(diǎn),由于采用了新的體系結(jié)構(gòu),與同等的ARM9器件相比較,在同樣的時(shí)鐘頻率下,性能提高了近50%,同時(shí),ARM10E系列微處理器采用了兩種先進(jìn)的節(jié)能方式,使其功耗極低。

ARM10E系列微處理器主要應(yīng)用于下一代無(wú)線設(shè)備、數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、通信和信息系統(tǒng)等領(lǐng)域。包含ARM1020E、ARM1022E和ARM1026EJ-S三種類型。

4.ARM10E微處理器系列ARM94ARM10E系列微處理器的主要特點(diǎn)如下:支持DSP指令集,適合于需要高速數(shù)字信號(hào)處理的場(chǎng)合。6級(jí)整數(shù)流水線,指令執(zhí)行效率更高。支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。支持VFP10浮點(diǎn)處理協(xié)處理器。全性能的MMU,支持WindowsCE、Linux、PalmOS等多種主流嵌入式操作系統(tǒng)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力主頻最高可達(dá)400MIPS。內(nèi)嵌并行讀/寫操作部件。ARM10E系列微處理器的主要特點(diǎn)如下:952.4ARM架構(gòu)ARM架構(gòu)由32位ALU、31個(gè)32位通用寄存器及6位狀態(tài)寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令譯碼及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器組成。

2.4ARM架構(gòu)ARM架構(gòu)由32位ALU、3196圖2.1ARM架構(gòu)圖

圖2.1ARM架構(gòu)圖971.ALU算術(shù)邏輯運(yùn)算單元ALU是處理器核心的中心處理部分,實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行運(yùn)算處理。由二個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果及零檢測(cè)邏輯構(gòu)成。

1.ALU算術(shù)邏輯運(yùn)算單元ALU是處理器核心的中98圖2.2ALU邏輯框圖

圖2.2ALU邏輯框圖992.Barrelshifter桶形移位寄存器

為了減少移位的延遲時(shí)間,ARM采用了32×32位的桶形移位寄存器。這樣,可以使左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成。

2.Barrelshifter桶形移位寄存器100圖2.34×4位桶形移位寄存器示意圖

圖2.34×4位桶形移位寄存器示意圖1013.Multiplicator高速乘法器

ARM的高速乘法器采用32×8位的結(jié)構(gòu),這樣,可以降低集成度,(其相應(yīng)芯片面積不到并行乘法器的1/3),完成32×32位乘法也只需5個(gè)時(shí)鐘周期。

3.Multiplicator高速乘法器AR102圖2.4高速乘法器邏輯框圖

圖2.4高速乘法器邏輯框圖1034.FloatPoint浮點(diǎn)部件浮點(diǎn)部件是作為選件為ARM架構(gòu)選用,F(xiàn)PA10浮點(diǎn)加速器是作為協(xié)處理器方式與ARM相連,并通過(guò)協(xié)處理器指令的解釋來(lái)執(zhí)行。浮點(diǎn)的LOAD/STORE指令使用頻度要達(dá)到67%,故FPA10內(nèi)部也采用LOAD/STORE結(jié)構(gòu),有八個(gè)80位浮點(diǎn)寄存器組,指令執(zhí)行也采用流水線結(jié)構(gòu)。4.FloatPoint浮點(diǎn)部件浮點(diǎn)部件是104圖2.5FPA10浮點(diǎn)加速器內(nèi)部結(jié)構(gòu)框圖

圖2.5FPA10浮點(diǎn)加速器內(nèi)部結(jié)構(gòu)框圖1055.Controller控制器ARM的控制器采用硬接線的可編程邏輯陣列PLA,其輸入端14根,輸出40根,分散控制LOAD/STORE多路、乘法器、協(xié)處理器以及地址、寄存器、ALU和移位器的控制。新型的ARM采用了二塊PLA,一塊小的快速PLA,用來(lái)產(chǎn)生與時(shí)間相關(guān)的輸出;一塊大的慢速PLA用來(lái)產(chǎn)生其他輸出。5.Controller控制器ARM的控制器106圖2.6ARM控制邏輯結(jié)構(gòu)圖

圖2.6ARM控制邏輯結(jié)構(gòu)圖1076.Registers寄存器

ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器包括:通用寄存器包括程序計(jì)數(shù)器(PC指針),共31個(gè),均為32位的寄存器。分為:i.R0-R7:與所有處理器模式無(wú)關(guān)的寄存器,可以用作任何用途。6.Registers寄存器ARM處理器共有108ii.R8-R14:與處理器模式有關(guān)的寄存器,在不同的模式下,對(duì)應(yīng)到不同的物理寄存器。其中R13又叫做sp,一般用于堆棧指針。R14又叫做lr,一般用于保存返回地址。這兩個(gè)寄存器在每種異常模式下都對(duì)應(yīng)到不同的物理寄存器上,例如lr_irq、lr_svc、lr_fiq等。iii.R15:又叫做程序計(jì)數(shù)器,即pc,所有的模式下都使用同一個(gè)pc。

嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件109b)狀態(tài)寄存器用以標(biāo)識(shí)CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài)。共6個(gè),均為32位。CPSR:當(dāng)前程序狀態(tài)寄存器(CurrentProgramStatusRegister),所有的模式下都使用同一個(gè)CPSR。SPSR:保存程序狀態(tài)寄存器(SavedProgramStatusRegister)。每種異常模式下都有自己的SPSR,一共有5種SPSR,即SPSR_irq、SPSR_fiq、SPSR_svc、SPSR_abt、SPSR_und。usr和sys態(tài)下沒(méi)有SPSR。

b)狀態(tài)寄存器110條件碼標(biāo)識(shí)N:負(fù)數(shù)標(biāo)識(shí)Z:結(jié)果為零標(biāo)識(shí)C:進(jìn)位位標(biāo)識(shí)V:溢出標(biāo)識(shí)*Q:DSP的溢出/飽和(選用)控制位I:IRQ中斷禁止位F:FIQ快中斷禁止位T:Thumb位M[4:0]:處理器工作模式條件碼標(biāo)識(shí)控制位111ARM處理器又有7種不同的處理器模式,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對(duì)應(yīng)。即在任意一種處理器模式下,可訪問(wèn)的寄存器包括15個(gè)通用寄存器(R0~R14)、一至二個(gè)狀態(tài)寄存器和程序計(jì)數(shù)器。在所有的寄存器中,有些是在7種處理器模式下共用的同一個(gè)物理寄存器,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器。ARM處理器又有7種不同的處理器模式,在每一種處112嵌入式系統(tǒng)應(yīng)用與開發(fā)第二章ARM架構(gòu)(一)課件1132.5ARM流水線結(jié)構(gòu)LaundryExampleAnn,Brian,Cathy,Dave

eachhaveoneloadofclothes

towash,dry,andfoldWashertakes30minutesDryertakes40minutes“Folder”takes20minutesABCD2.5ARM流水線結(jié)構(gòu)LaundryExampleABC114SequentialLaundrySequentiallaundrytakes6hoursfor4loadsIftheylearnedpipelining,howlongwouldlaundrytake?ABCD3040203040203040203040206PM7891011MidnightTaskOrderTimeSequentialLaundrySequentiall115Pipelined

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論