這里概述的都是一些傳統(tǒng)意義上ARM處理器的一些方面,提醒自己看了之后會(huì)想起相關(guān)知識(shí),或是對(duì)ARM有一個(gè)總體上的概念,其實(shí)都是些簡(jiǎn)述性的總結(jié),很多都來自網(wǎng)上資料或教學(xué)課件,貼在這里,方便以后隨時(shí)隨地的復(fù)習(xí)!
ARM微處理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、以及Intel的StrongARM、XScale和其它廠商基于ARM體系結(jié)構(gòu)的處理器,除了具有ARM體系結(jié)構(gòu)的共同特點(diǎn)以外,每一個(gè)系列的ARM微處理器都有各自的特點(diǎn)和應(yīng)用領(lǐng)域。
一、總的來說ARM處理器的一些特點(diǎn):
1、采用RISC架構(gòu)的ARM微處理器一般具有如下特點(diǎn):
支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件。Thumb指令集比通常的8位和16位CISC/RISC處理器具有更好的代碼密度;
●????????指令執(zhí)行采用3級(jí)流水線/5級(jí)流水線技術(shù);
●????????帶有指令Cache和數(shù)據(jù)Cache,大量使用寄存器,指令執(zhí)行速度更快。大多數(shù)數(shù)據(jù)操作都在寄存器中完成。尋址方式靈活簡(jiǎn)單,執(zhí)行效率高。指令長(zhǎng)度固定(在ARM狀態(tài)下是32位,在Thumb狀態(tài)下是16位);
●????????支持大端格式和小端格式兩種方法存儲(chǔ)字?jǐn)?shù)據(jù);
●????????支持Byte(字節(jié),8位)、Halfword(半字,16位)和Word(字,32位)三種數(shù)據(jù)類型。
●????????支持用戶、快中斷、中斷、管理、中止、系統(tǒng)和未定義等7種處理器模式,除了用戶模式外,其余的均為特權(quán)模式;
●????????處理器芯片上都嵌入了在線仿真ICE-RT邏輯,便于通過JTAG來仿真調(diào)試ARM體系結(jié)構(gòu)芯片,可以避免使用昂貴的在線仿真器。另外,在處理器核中還可以嵌入跟蹤宏單元ETM,用于監(jiān)控內(nèi)部總線,實(shí)時(shí)跟蹤指令和數(shù)據(jù)的執(zhí)行;
●????????具有片上總線AMBA(Advanced Micro-controller Bus Architecture)。?AMBA定義了3組總線:先進(jìn)高性能總線AHB(Advanced High performance Bus);先進(jìn)系統(tǒng)總線ASB(Advanced System Bus);先進(jìn)外圍總線APB(Advanced Peripheral Bus)。通過AMBA可以方便地?cái)U(kuò)充各種處理器及I/O,可以把DSP、其他處理器和I/O(如UART、定時(shí)器和接口等)都集成在一塊芯片中;
●????????采用存儲(chǔ)器映像I/O的方式,即把I/O端口地址作為特殊的存儲(chǔ)器地址;
●????????具有協(xié)處理器接口。ARM允許接16個(gè)協(xié)處理器,如CP15用于系統(tǒng)控制,CP14用于調(diào)試控制器;
●????????采用了降低電源電壓,可工作在3.0V以下;減少門的翻轉(zhuǎn)次數(shù),當(dāng)某個(gè)功能電路不需要時(shí)禁止門翻轉(zhuǎn);減少門的數(shù)目,即降低芯片的集成度;降低時(shí)鐘頻率等一些措施降低功耗;
●????????體積小、低成本、高性能。
2、一個(gè)典型的ARM體系結(jié)構(gòu):
包含有32位ALU、31個(gè)32位通用寄存器及6位狀態(tài)寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令譯碼及控制邏輯、指令流水線和數(shù)據(jù)/地址寄存器等。
1).ALU
ARM體系結(jié)構(gòu)的ALU與常用的ALU邏輯結(jié)構(gòu)基本相同,由兩個(gè)操作數(shù)鎖存器、加法器、邏輯功能、結(jié)果及零檢測(cè)邏輯構(gòu)成。ALU的最小數(shù)據(jù)通路周期包含寄存器讀時(shí)間、移位器延遲、ALU延遲、寄存器寫建立時(shí)間、雙相時(shí)鐘間非重疊時(shí)間等幾部分。
2).桶形移位寄存器
ARM采用了32×32位桶形移位寄存器,左移/右移n位、環(huán)移n位和算術(shù)右移n位等都可以一次完成,可以有效的減少移位的延遲時(shí)間。在桶形移位寄存器中,所有的輸入端通過交叉開關(guān)(Crossbar)與所有的輸出端相連。交叉開關(guān)采用NMOS晶體管來實(shí)現(xiàn)。
3).高速乘法器
ARM為了提高運(yùn)算速度,采用兩位乘法的方法,2位乘法可根據(jù)乘數(shù)的2位來實(shí)現(xiàn)“加-移位”運(yùn)算。ARM的高速乘法器采用32×8位的結(jié)構(gòu),完成32×2位乘法也只需5個(gè)時(shí)鐘周期。
4).浮點(diǎn)部件
在ARM體系結(jié)構(gòu)中,浮點(diǎn)部件作為選件可根據(jù)需要選用,F(xiàn)PA10浮點(diǎn)加速器以協(xié)處理器方式與ARM相連,并通過協(xié)處理器指令的解釋來執(zhí)行。
浮點(diǎn)的Load/Store指令使用頻度要達(dá)到67%,故FPA10內(nèi)部也采用Load/Store結(jié)構(gòu),有8個(gè)80位浮點(diǎn)寄存器組,指令執(zhí)行也采用流水線結(jié)構(gòu)。
5).控制器
ARM的控制器采用硬接線的可編程邏輯陣列PLA,其輸入端有14根、輸出端有40根,分散控制Load/Store多路、乘法器、協(xié)處理器以及地址、寄存器ALU和移位器。
6).寄存器
ARM內(nèi)含37個(gè)寄存器,包括31個(gè)通用32位寄存器和6個(gè)狀態(tài)寄存器。
3、ARM7系列微處理器:
包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ幾種類型。其中,ARM7TDMI是目前使用最廣泛的32位嵌入式RISC處理器,主頻最高可達(dá)130MIPS,采用能夠提供0.9MIPS/MHz的三級(jí)流水線結(jié)構(gòu),內(nèi)嵌硬件乘法器(Multiplier),支持16為壓縮指令集Thumb,嵌入式ICE,支持片上Debug,支持片上斷點(diǎn)和調(diào)試點(diǎn)。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,支持Windows CE、Linux、Palm OS等操作系統(tǒng)。典型產(chǎn)品如Samsung公司的S< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />3C4510B。
ARM7TDMI處理器內(nèi)核:
n???????ARM7TDMI還提供了存儲(chǔ)器接口、MMU接口、協(xié)處理器接口和調(diào)試接口,以及時(shí)鐘與總線等控制信號(hào),如圖2.2.2所示。
n???????存儲(chǔ)器接口包括了32位地址A[31:0]、雙向32位數(shù)據(jù)總線D[31:0]、單向32位數(shù)據(jù)總線DIN[31:0]與DOUT[31:0]、以及存儲(chǔ)器訪問請(qǐng)求MREQ、地址順序SEQ、存儲(chǔ)器訪問控制MAS[1:0和數(shù)據(jù)鎖存控制BL[3:0]等控制信號(hào)。
n???????ARM7TDMI處理器內(nèi)核也可以ARM7TDMI-S軟核(Softcore)形式向用戶提供。同時(shí),提供多種組合選擇,例如可以省去嵌入式ICE單元等。
n???????2.ARM720T/ARM740T處理器內(nèi)核
n???????ARM720T處理器內(nèi)核是在ARM7TDMI處理器內(nèi)核基礎(chǔ)上,增加8KB的數(shù)據(jù)與指令Cache,支持段式和頁式存儲(chǔ)的MMU(Memory Management Unit)、寫緩沖器及AMBA(Advanced Microcontroller Bus Architecture)接口而構(gòu)成,如圖2.2.3所示。
n???????ARM740T處理器內(nèi)核與ARM720T處理器內(nèi)核相比,結(jié)構(gòu)基本相同,ARM740T處理器核沒有存儲(chǔ)器管理單元MMU,不支持虛擬存儲(chǔ)器尋址,而是用存儲(chǔ)器保護(hù)單元來提供基本保護(hù)和Cache的控制。合適低價(jià)格低功耗的嵌入式應(yīng)用。
4、ARM9微處理器
ARM9系列微處理器包含ARM920T、ARM922T和ARM940T幾種類型,可以在高性能和低功耗特性方面提供最佳的性能。采用5級(jí)整數(shù)流水線,指令執(zhí)行效率更高。提供1.1MIPS/MHz的哈佛結(jié)構(gòu)。支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力。?支持32位ARM指令集和16位Thumb指令集。支持32位的高速AMBA總線接口。全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統(tǒng)。MPU支持實(shí)時(shí)操作系統(tǒng)。
ARM920T處理器核在ARM9TDMI處理器內(nèi)核基礎(chǔ)上,增加了分離式的指令Cache和數(shù)據(jù)Cache,并帶有相應(yīng)的存儲(chǔ)器管理單元I-MMU和D-MMU、寫緩沖器及AMBA接口等。
ARM9系列微處理器主要應(yīng)用于無線通信設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。典型產(chǎn)品如Samsung公司的S3C2410A。
二、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)資源等情況。
評(píng)論
查看更多