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