1.1 ARM-Advanced RISC Machines
ARM(Advanced RISC Machines),,既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對一類微處理器的通稱,,還可以認(rèn)為是一種技術(shù)的名字,。
1991年ARM公司成立于英國劍橋,主要出售芯片設(shè)計技術(shù)的授權(quán),。目前,,采用ARM技術(shù)知識產(chǎn)權(quán)(IP)核的微處理器,即我們通常所說的ARM微處理器,,已遍及工業(yè)控制,、消費類電子產(chǎn)品、通信系統(tǒng),、網(wǎng)絡(luò)系統(tǒng),、無線系統(tǒng)等各類產(chǎn)品市場,基于ARM技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC微處理器75%以上的市場份額,,ARM技術(shù)正在逐步滲入到我們生活的各個方面,。
ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計開發(fā)的公司,作為知識產(chǎn)權(quán)供應(yīng)商,,本身不直接從事芯片生產(chǎn),,靠轉(zhuǎn)讓設(shè)計許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,,根據(jù)各自不同的應(yīng)用領(lǐng)域,,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁RM微處理器芯片進(jìn)入市場,。目前,,全世界有幾十家大的半導(dǎo)體公司都使用ARM公司的授權(quán),,因此既使得ARM技術(shù)獲得更多的第三方工具、制造,、軟件的支持,,又使整個系統(tǒng)成本降低,使產(chǎn)品更容易進(jìn)入市場被消費者所接受,,更具有競爭力,。
1.2 ARM微處理器的應(yīng)用領(lǐng)域及特點
1.2.1 ARM微處理器的應(yīng)用領(lǐng)域
到目前為止,ARM微處理器及技術(shù)的應(yīng)用幾乎已經(jīng)深入到各個領(lǐng)域:
1,、工業(yè)控制領(lǐng)域:作為32的RISC架構(gòu),,基于ARM核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,,ARM微控制器的低功耗,、高性價比,向傳統(tǒng)的8位/16位微控制器提出了挑戰(zhàn),。
2,、無線通訊領(lǐng)域:目前已有超過85%的無線通訊設(shè)備采用了ARM技術(shù), ARM以其高性能和低成本,,在該領(lǐng)域的地位日益鞏固,。
3、網(wǎng)絡(luò)應(yīng)用:隨著寬帶技術(shù)的推廣,,采用ARM技術(shù)的ADSL芯片正逐步獲得競爭優(yōu)勢,。此外,ARM在語音及視頻處理上行了優(yōu)化,,并獲得廣泛支持,,也對DSP的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。
4,、消費類電子產(chǎn)品:ARM技術(shù)在目前流行的數(shù)字音頻播放器,、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。
5,、成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分采用ARM技術(shù),。手機(jī)中的32位SIM智能卡也采用了ARM技術(shù)。
除此以外,,ARM微處理器及技術(shù)還應(yīng)用到許多不同的領(lǐng)域,,并會在將來取得更加廣泛的應(yīng)用。
1.2.2 ARM微處理器的特點
采用RISC架構(gòu)的ARM微處理器一般具有如下特點:
1,、體積小,、低功耗、低成本,、高性能,;
2,、支持Thumb(16位)/ARM(32位)雙指令集,,能很好的兼容8位/16位器件,;
3、大量使用寄存器,,指令執(zhí)行速度更快,;
4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成,;
5,、尋址方式靈活簡單,執(zhí)行效率高,;
6,、指令長度固定;
1.3 ARM微處理器系列
ARM微處理器目前包括下面幾個系列,,以及其它廠商基于ARM體系結(jié)構(gòu)的處理器,,除了具有ARM體系結(jié)構(gòu)的共同特點以外,每一個系列的ARM微處理器都有各自的特點和應(yīng)用領(lǐng)域,。
?。?nbsp; ARM7系列
- ARM9系列
?。?nbsp; ARM9E系列
?。?nbsp; ARM10E系列
- SecurCore系列
?。?nbsp; Inter的Xscale
?。?nbsp; Inter的StrongARM
其中,ARM7,、ARM9,、ARM9E和ARM10為4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應(yīng)用領(lǐng)域的需求,。SecurCore系列專門為安全要求較高的應(yīng)用而設(shè)計,。
以下我們來詳細(xì)了解一下各種處理器的特點及應(yīng)用領(lǐng)域。
1.3.1 ARM7微處理器系列
ARM7系列微處理器為低功耗的32位RISC處理器,,最適合用于對價位和功耗要求較高的消費類應(yīng)用,。ARM7微處理器系列具有如下特點:
- 具有嵌入式ICE-RT邏輯,,調(diào)試開發(fā)方便,。
- 極低的功耗,,適合對功耗要求較高的應(yīng)用,,如便攜式產(chǎn)品,。
- 能夠提供0.9MIPS/MHz的三級流水線結(jié)構(gòu),。
?。?nbsp; 代碼密度高并兼容16位的Thumb指令集。
?。?nbsp; 對操作系統(tǒng)的支持廣泛,,包括Windows CE、Linux,、Palm OS等,。
- 指令系統(tǒng)與ARM9系列,、ARM9E系列和ARM10E系列兼容,,便于用戶的產(chǎn)品升級換代。
?。?nbsp; 主頻最高可達(dá)130MIPS,,高速的運算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。
ARM7系列微處理器的主要應(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: 支持16為壓縮指令集Thumb;
D: 支持片上Debug,;
M:內(nèi)嵌硬件乘法器(Multiplier)
I: 嵌入式ICE,,支持片上斷點和調(diào)試點;
本書所介紹的Samsung公司的S3C4510B即屬于該系列的處理器,。
1.3.2 ARM9微處理器系列
ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能,。具有以下特點:
- 5級整數(shù)流水線,,指令執(zhí)行效率更高,。
- 提供1.1MIPS/MHz的哈佛結(jié)構(gòu),。
?。?nbsp; 支持32位ARM指令集和16位Thumb指令集,。
- 支持32位的高速AMBA總線接口,。
?。?nbsp; 全性能的MMU,支持Windows CE,、Linux,、Palm OS等多種主流嵌入式操作系統(tǒng),。
?。?nbsp; MPU支持實時操作系統(tǒng)。
?。?nbsp; 支持?jǐn)?shù)據(jù)Cache和指令Cache,,具有更高的指令和數(shù)據(jù)處理能力。
ARM9系列微處理器主要應(yīng)用于無線設(shè)備,、儀器儀表,、安全系統(tǒng)、機(jī)頂盒,、高端打印機(jī),、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。
ARM9系列微處理器包含ARM920T,、ARM922T和ARM940T三種類型,,以適用于不同的應(yīng)用場合。
1.3.3 ARM9E微處理器系列
ARM9E系列微處理器為可綜合處理器,,使用單一的處理器內(nèi)核提供了微控制器,、DSP、Java應(yīng)用系統(tǒng)的解決方案,,極大的減少了芯片的面積和系統(tǒng)的復(fù)雜程度,。ARM9E系列微處理器提供了增強(qiáng)的DSP處理能力,很適合于那些需要同時使用DSP和微控制器的應(yīng)用場合,。
ARM9E系列微處理器的主要特點如下:
?。?nbsp; 支持DSP指令集,適合于需要高速數(shù)字信號處理的場合,。
?。?nbsp; 5級整數(shù)流水線,指令執(zhí)行效率更高,。
?。?nbsp; 支持32位ARM指令集和16位Thumb指令集。
?。?nbsp; 支持32位的高速AMBA總線接口,。
?。?nbsp; 支持VFP9浮點處理協(xié)處理器。
?。?nbsp; 全性能的MMU,,支持Windows CE、Linux,、Palm OS等多種主流嵌入式操作系統(tǒng),。
- MPU支持實時操作系統(tǒng),。
?。?nbsp; 支持?jǐn)?shù)據(jù)Cache和指令Cache,具有更高的指令和數(shù)據(jù)處理能力,。
?。?nbsp; 主頻最高可達(dá)300MIPS。
ARM9系列微處理器主要應(yīng)用于下一代無線設(shè)備,、數(shù)字消費品,、成像設(shè)備、工業(yè)控制,、存儲設(shè)備和網(wǎng)絡(luò)設(shè)備等領(lǐng)域,。
ARM9E系列微處理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三種類型,,以適用于不同的應(yīng)用場合,。
1.3.4 ARM10E微處理器系列
ARM10E系列微處理器具有高性能、低功耗的特點,,由于采用了新的體系結(jié)構(gòu),,與同等的ARM9器件相比較,在同樣的時鐘頻率下,,性能提高了近50%,,同時,ARM10E系列微處理器采用了兩種先進(jìn)的節(jié)能方式,,使其功耗極低,。
ARM10E系列微處理器的主要特點如下:
- 支持DSP指令集,,適合于需要高速數(shù)字信號處理的場合,。
- 6級整數(shù)流水線,,指令執(zhí)行效率更高,。
- 支持32位ARM指令集和16位Thumb指令集。
?。?nbsp; 支持32位的高速AMBA總線接口,。
- 支持VFP10浮點處理協(xié)處理器,。
?。?nbsp; 全性能的MMU,支持Windows CE,、Linux,、Palm OS等多種主流嵌入式操作系統(tǒng)。
?。?nbsp; 支持?jǐn)?shù)據(jù)Cache和指令Cache,,具有更高的指令和數(shù)據(jù)處理能力
- 主頻最高可達(dá)400MIPS,。
?。?nbsp; 內(nèi)嵌并行讀/寫操作部件,。
ARM10E系列微處理器主要應(yīng)用于下一代無線設(shè)備,、數(shù)字消費品、成像設(shè)備,、工業(yè)控制,、通信和信息系統(tǒng)等領(lǐng)域。
ARM10E系列微處理器包含ARM1020E,、ARM1022E和ARM1026EJ-S三種類型,,以適用于不同的應(yīng)用場合。
1.3.5 SecurCore微處理器系列
SecurCore系列微處理器專為安全需要而設(shè)計,,提供了完善的32位RISC技術(shù)的安全解決方案,,因此,SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)的低功耗,、高性能的特點外,,還具有其獨特的優(yōu)勢,即提供了對安全解決方案的支持,。
SecurCore系列微處理器除了具有ARM體系結(jié)構(gòu)各種主要特點外,,還在系統(tǒng)安全方面具有如下的特點:
- 帶有靈活的保護(hù)單元,,以確保操作系統(tǒng)和應(yīng)用數(shù)據(jù)的安全,。
- 采用軟內(nèi)核技術(shù),,防止外部對其進(jìn)行掃描探測,。
- 可集成用戶自己的安全特性和其他協(xié)處理器,。
SecurCore系列微處理器主要應(yīng)用于一些對安全性要求較高的應(yīng)用產(chǎn)品及應(yīng)用系統(tǒng),,如電子商務(wù),、電子政務(wù)、電子銀行業(yè)務(wù),、網(wǎng)絡(luò)和認(rèn)證系統(tǒng)等領(lǐng)域,。
SecurCore系列微處理器包含SecurCore SC100、SecurCore SC110,、SecurCore SC200和SecurCore SC210四種類型,,以適用于不同的應(yīng)用場合。
1.3.6 StrongARM微處理器系列
Inter StrongARM SA-1100處理器是采用ARM體系結(jié)構(gòu)高度集成的32位RISC微處理器,。它融合了Inter公司的設(shè)計和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,,采用在軟件上兼容ARMv4體系結(jié)構(gòu)、同時采用具有Intel技術(shù)優(yōu)點的體系結(jié)構(gòu),。
Intel StrongARM處理器是便攜式通訊產(chǎn)品和消費類電子產(chǎn)品的理想選擇,,已成功應(yīng)用于多家公司的掌上電腦系列產(chǎn)品。
1.3.7 Xscale處理器
Xscale 處理器是基于ARMv5TE體系結(jié)構(gòu)的解決方案,,是一款全性能,、高性價比、低功耗的處理器,。它支持16位的Thumb指令和DSP指令集,,已使用在數(shù)字移動電話、個人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等場合,。
Xscale 處理器是Inter目前主要推廣的一款A(yù)RM微處理器,。
1.4 ARM微處理器結(jié)構(gòu)
1.4.1 RISC體系結(jié)構(gòu)
傳統(tǒng)的CISC(Complex Instruction Set Computer,復(fù)雜指令集計算機(jī))結(jié)構(gòu)有其固有的缺點,,即隨著計算機(jī)技術(shù)的發(fā)展而不斷引入新的復(fù)雜的指令集,,為支持這些新增的指令,計算機(jī)的體系結(jié)構(gòu)會越來越復(fù)雜,,然而,,在CISC指令集的各種指令中,其使用頻率卻相差懸殊,,大約有20%的指令會被反復(fù)使用,,占整個程序代碼的80%。而余下的80%的指令卻不經(jīng)常使用,,在程序設(shè)計中只占20%,,顯然,這種結(jié)構(gòu)是不太合理的,。
基于以上的不合理性,,1979年美國加州大學(xué)伯克利分校提出了RISC(Reduced Instruction Set Computer,精簡指令集計算機(jī))的概念,RISC并非只是簡單地去減少指令,,而是把著眼點放在了如何使計算機(jī)的結(jié)構(gòu)更加簡單合理地提高運算速度上,。RISC結(jié)構(gòu)優(yōu)先選取使用頻最高的簡單指令,避免復(fù)雜指令,;將指令長度固定,,指令格式和尋地方式種類減少;以控制邏輯為主,,不用或少用微碼控制等措施來達(dá)到上述目的,。
到目前為止,RISC體系結(jié)構(gòu)也還沒有嚴(yán)格的定義,,一般認(rèn)為,,RISC體系結(jié)構(gòu)應(yīng)具有如下特點:
- 采用固定長度的指令格式,,指令歸整,、簡單、基本尋址方式有2~3種,。
?。?使用單周期指令,便于流水線操作執(zhí)行,。
?。?大量使用寄存器,數(shù)據(jù)處理指令只對寄存器進(jìn)行操作,,只有加載/ 存儲指令可以訪問存儲器,以提高指令的執(zhí)行效率,。
除此以外,,ARM體系結(jié)構(gòu)還采用了一些特別的技術(shù),在保證高性能的前提下盡量縮小芯片的面積,,并降低功耗:
?。?所有的指令都可根據(jù)前面的執(zhí)行結(jié)果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率,。
?。?可用加載/存儲指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效率,。
?。?可在一條數(shù)據(jù)處理指令中同時完成邏輯處理和移位處理。
?。?在循環(huán)處理中使用地址的自動增減來提高運行效率,。
當(dāng)然,和CISC架構(gòu)相比較,盡管RISC架構(gòu)有上述的優(yōu)點,,但決不能認(rèn)為RISC架構(gòu)就可以取代CISC架構(gòu),,事實上,RISC和CISC各有優(yōu)勢,,而且界限并不那么明顯?,F(xiàn)代的CPU往往采用CISC的外圍,內(nèi)部加入了RISC的特性,,如超長指令集CPU就是融合了RISC和CISC的優(yōu)勢,,成為未來的CPU發(fā)展方向之一。
1.4.2 ARM微處理器的寄存器結(jié)構(gòu)
ARM處理器共有37個寄存器,,被分為若干個組(BANK),,這些寄存器包括:
- 31個通用寄存器,,包括程序計數(shù)器(PC指針),,均為32位的寄存器。
?。?6個狀態(tài)寄存器,,用以標(biāo)識CPU的工作狀態(tài)及程序的運行狀態(tài),均為32位,,目前只使用了其中的一部分,。
同時,ARM處理器又有7種不同的處理器模式,,在每一種處理器模式下均有一組相應(yīng)的寄存器與之對應(yīng),。即在任意一種處理器模式下,可訪問的寄存器包括15個通用寄存器(R0~R14),、一至二個狀態(tài)寄存器和程序計數(shù)器,。在所有的寄存器中,有些是在7種處理器模式下共用的同一個物理寄存器,,而有些寄存器則是在不同的處理器模式下有不同的物理寄存器,。
關(guān)于ARM處理器的寄存器結(jié)構(gòu),在后面的相關(guān)章節(jié)將會詳細(xì)描述,。
1.4.3 ARM微處理器的指令結(jié)構(gòu)
ARM微處理器的在較新的體系結(jié)構(gòu)中支持兩種指令集:ARM指令集和Thumb指令集,。其中,ARM指令為32位的長度,,Thumb指令為16位長度,。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,,可節(jié)省30%~40%以上的存儲空間,,同時具備32位代碼的所有優(yōu)點,。
關(guān)于ARM處理器的指令結(jié)構(gòu),在后面的相關(guān)章節(jié)將會詳細(xì)描述,。
1.5 ARM微處理器的應(yīng)用選型
鑒于ARM微處理器的眾多優(yōu)點,,隨著國內(nèi)外嵌入式應(yīng)用領(lǐng)域的逐步發(fā)展,ARM微處理器必然會獲得廣泛的重視和應(yīng)用,。但是,,由于ARM微處理器有多達(dá)十幾種的內(nèi)核結(jié)構(gòu),幾十個芯片生產(chǎn)廠家,,以及千變?nèi)f化的內(nèi)部功能配置組合,,給開發(fā)人員在選擇方案時帶來一定的困難,所以,,對ARM芯片做一些對比研究是十分必要的,。
以下從應(yīng)用的角度出發(fā),對在選擇ARM微處理器時所應(yīng)考慮的主要問題做一些簡要的探討,。
ARM微處理器內(nèi)核的選擇
從前面所介紹的內(nèi)容可知,,ARM微處理器包含一系列的內(nèi)核結(jié)構(gòu),以適應(yīng)不同的應(yīng)用領(lǐng)域,,用戶如果希望使用WinCE或標(biāo)準(zhǔn)Linux等操作系統(tǒng)以減少軟件開發(fā)時間,,就需要選擇ARM720T以上帶有MMU(Memory Management Unit)功能的ARM芯片,ARM720T,、ARM920T,、ARM922T、ARM946T,、Strong-ARM都帶有MMU功能,。而ARM7TDMI則沒有MMU,不支持Windows CE和標(biāo)準(zhǔn)Linux,,但目前有uCLinux等不需要MMU支持的操作系統(tǒng)可運行于ARM7TDMI硬件平臺之上,。事實上,uCLinux已經(jīng)成功移植到多種不帶MMU的微處理器平臺上,,并在穩(wěn)定性和其他方面都有上佳表現(xiàn)。
本書所討論的S3C4510B即為一款不帶MMU的ARM微處理器,,可在其上運行uCLinux操作系統(tǒng),。
系統(tǒng)的工作頻率
系統(tǒng)的工作頻率在很大程度上決定了ARM微處理器的處理能力。ARM7系列微處理器的典型處理速度為0.9MIPS/MHz,,常見的ARM7芯片系統(tǒng)主時鐘為20MHz-133MHz,,ARM9系列微處理器的典型處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時鐘頻率為100MHz-233MHz,,ARM10最高可以達(dá)到700MHz,。不同芯片對時鐘的處理不同,,有的芯片只需要一個主時鐘頻率,有的芯片內(nèi)部時鐘控制器可以分別為ARM核和USB,、UART,、DSP、音頻等功能部件提供不同頻率的時鐘,。
芯片內(nèi)存儲器的容量
大多數(shù)的ARM微處理器片內(nèi)存儲器的容量都不太大,,需要用戶在設(shè)計系統(tǒng)時外擴(kuò)存儲器,但也有部分芯片具有相對較大的片內(nèi)存儲空間,,如ATMEL的AT91F40162就具有高達(dá)2MB的片內(nèi)程序存儲空間,,用戶在設(shè)計時可考慮選用這種類型,以簡化系統(tǒng)的設(shè)計,。
片內(nèi)外圍電路的選擇
除ARM微處理器核以外,,幾乎所有的ARM芯片均根據(jù)各自不同的應(yīng)用領(lǐng)域,擴(kuò)展了相關(guān)功能模塊,,并集成在芯片之中,,我們稱之為片內(nèi)外圍電路,如USB接口,、IIS接口,、LCD控制器、鍵盤接口,、RTC,、ADC和DAC、DSP協(xié)處理器等,,設(shè)計者應(yīng)分析系統(tǒng)的需求,,盡可能采用片內(nèi)外圍電路完成所需的功能,這樣既可簡化系統(tǒng)的設(shè)計,,同時提高系統(tǒng)的可靠性,。
1.6 本章小節(jié)
本章對ARM微處理器、ARM技術(shù)的基本概念做了一些簡單的介紹,,希望讀者通過對本章的閱讀,,能對ARM微處理器、ARM技術(shù)有一個總體上的認(rèn)識,。