- 嵌入式系統Linux內核開發實戰指南(ARM平臺)
- 王洪輝編著
- 442字
- 2018-12-27 18:21:33
第2章 ARM處理器概述
2.1 ARM發展歷程
ARM是一種嵌入式處理器的體系架構,它由ARM公司設計,但是ARM公司自己卻不生產也不銷售ARM芯片,它只出售芯片生產授權,只有得到ARM公司授權的公司才能生產ARM芯片。
ARM公司1990年成立于英國劍橋的一個谷倉里,當時只有12人。ARM公司于1991年開發出第一個嵌入式RISC內核——ARM6處理器,發展到今天,ARM公司的半導體合作伙伴所生產的基于ARM技術的處理器每年的出貨量已近30億個。
如今ARM公司已經成為全球最大的微處理器知識產權公司,ARM處理器產品線也覆蓋了微處理器應用的每一個領域,從成本非常低的嵌入式微控制器,到要求非常高的網絡、手機和消費娛樂應用的多核處理器,ARM處理器現在已經無處不在:包括LGViewty、諾基亞N95和索尼愛立信P1i智能手機、iPhone和iPod、Garmin、Navman和TomTom的便攜式導航系統、柯達照相機、索尼攝像機、任天堂DS掌上游戲機、東芝高清數字電視、三星和希捷的硬盤驅動器、博世汽車剎車系統、惠普打印機、Linksys和Netgear的無線路由器等各種產品中都能看到ARM處理器的身影。
目前全世界幾乎所有的半導體公司都通過授權獲得了ARM處理器架構;這其中著名歐美半導體公司有:英特爾、德洲儀器、三星半導體、摩托羅拉、飛利浦半導體、意法半導體、億恒半導體、科勝訊、ADI公司、安捷倫、高通公司、Atmel、Intersil、Alcatel、Altera、Cirrus Logic、Linkup、Parthus、LSI Logic、Micronas、Silicon Wave、Virata、Portalplayer inc.、NetSilicon、Parthus等。日本的許多著名半導體公司如東芝、三菱半導體、愛普生、富士通半導體、松下半導體等公司較早期都大力投入開發了自主的32位CPU結構,但現在都轉向購買ARM公司的芯核進行新產品設計,但由于它們購買ARM版權較晚,現在還沒有可銷售的ARM芯片,而OKI、NEC、AKM、OAK、Sharp、Sanyo、Sony、Rohm等日本半導體公司目前都已經生產了ARM芯片。韓國的現代半導體公司也生產ARM芯片。另外,國外也有很多設備制造商采用ARM體系架構設計自己的專用芯片,如美國的IBM、3COM和新加坡的創新科技等。我國臺灣地區可以提供ARM芯片的公司有臺積電(TSMC)、臺聯電(UMC)、華邦電子等。大陸已購買ARM授權且正在設計自主版權專用芯片的公司有中興通訊等。
2.2 ARM處理器特點
ARM處理器以低功耗、低成本、實用性強為特點,并以優異的產品性能著稱于世,其主要特點包括以下幾個方面:
1)體積小、低功耗、低成本、高性能;
2)支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;
3)大量使用寄存器,指令執行速度快;
4)大多數數據操作都在寄存器中完成;
5)尋址方式靈活簡單,執行效率高;
6)采用精簡指令集(RISC),指令長度固定。
此外,ARM處理器還采用了一些特別的技術,在保證高性能的同時盡量減小芯片體積,降低芯片功耗,這些技術包括:
1)在同一條數據處理指令中包含算術邏輯處理單元處理和移位處理;
2)使用地址自動增量(增加或減少)來優化程序中循環處理;
3)Load/Store指令可以批量傳輸數據,從而提高數據傳輸的速率;
4)所有指令都可以根據前面指令的執行結果決定是否執行,以提高指令的執行效率。
2.3 ARM處理器應用
基于ARM處理器的優異性能,如今ARM處理器及技術的應用隨處可見,幾乎已經深入到各個領域,主要包括:
1)工業控制領域:作為32位的RISC架構,基于ARM核的微控制器芯片不但占據了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應用領域擴展,ARM微控制器的低功耗、高性價比,向傳統的8位/16位微控制器提出了挑戰。
2)無線通信領域:目前已有超過85%的無線通信設備采用了ARM處理器及其技術,ARM處理器以其高性能和低成本,在該領域的地位日益鞏固。
3)網絡應用:隨著寬帶技術的推廣,采用ARM技術的ADSL芯片正逐步獲得競爭優勢。此外,ARM處理器在語音及視頻處理上進行了優化,并獲得了廣泛支持,所以ARM處理器及其技術對DSP的應用領域也提出了挑戰。
4)消費類電子產品:ARM技術在目前流行的數字音頻播放器、數字機頂盒和游戲機中得到了廣泛應用。
5)成像和安全產品:現在流行的數碼相機和打印機中絕大部分采用ARM技術,手機中的32位SIM智能卡也采用了ARM技術。
除此之外,ARM微處理器及技術還應用到許多其他領域,并將獲得越來越廣泛的應用。
2.4 ARM體系架構
至今,ARM體系架構共定義了6個版本,版本號分別為1~6,隨著版本號的遞增,ARM體系架構的指令集功能不斷擴大,同時各種版本有一些變種,變種定義了該版本指令集中不同的功能。各種ARM處理器的生產廠家和實現技術各不相同,性能差別也很大,應用也不盡相同,但是只要它們屬于相同的ARM體系架構版本,那么用于它們的應用軟件就能兼容。
2.4.1 ARM體系架構版本
■ 版本1(ARMv1)
ARMv1在ARM1處理器中實現,但ARMv1并沒有商業化。ARMv1的特點有:
1)只支持除乘法指令之外的其他基本數據處理指令;
2)支持字節、字、多字的讀寫指令(Load/Store);
3)支持包括bl的跳轉指令;
4)支持用于操作系統的軟中斷指令swi。
■ 版本2(ARMv2)
ARMv2在ARMv1的基礎上增加了以下指令:
1)乘法指令和乘加法指令;
2)協處理指令;
3)為FIQ模式增加了兩個額外的備份寄存器;
4)swp指令和swpb指令。
■ 版本3(ARMv3)
ARMv3在以前版本基礎上進行了比較大的改進,包括:
1)處理器地址空間擴展到了32位,但除了ARMv3G(ARMv3的一個變種)外都兼容以前版本的26位地址空間;
2)增加了當前程序狀態寄存器CPSR(Current Program Status Register),將原來R15寄存器的功能移到了CPSR寄存器上;
3)增加了備份程序狀態寄存器SPSR(Saved Program Status Register);
4)增加了中止(包括數據訪問中止和指令預取中止)和未定義指令異常兩種處理器模式;
5)增加了mrs和msr指令,用于訪問CPSR和SPSR寄存器;
6)修改了原來的從異常中斷返回指令。
■ 版本4(ARMv4)
ARMv4在ARMv3的基礎上增加了以下指令:
1)半字讀寫指令;
2)讀取(Load)帶符號字節和半字數據指令;
3)增加了T變種,處理器可以切換到Thumb狀態,執行16位Thumb指令;
4)增加處理器系統(System)模式;
5)明確定義了哪些指令會引起未定義指令異常;
6)不再強制要求與以前的26位地址空間兼容。
■ 版本5(ARMv5)
ARMv5在ARMv4的基礎上增加和修改了以下指令:
1)提高了T變種中ARM/Thumb混合使用的效率;
2)對于T變種的指令和非T變種的指令使用相同的代碼生成技術;
3)增加了前導零計數(Count Leading Zeros)指令,它使得整數除法和中斷優先級排隊操作更加有效;
4)增加了軟件斷電指令;
5)為協處理器設計提供了更多的可選擇指令;
6)更加嚴格定義了乘法指令對條件標志位的影響。
■ 版本6(ARMv6)
ARMv6的主要特點是增加了SIMD功能擴展,它適用于用電池供電的高性能便攜式設備。SIMD功能擴展為包括音/視頻處理在內的應用系統提供了優化功能,它可以使音/視頻處理性能提高4倍。
ARMv6體系架構版本首先在2002年春季發布的ARM11處理器中使用。
2.4.2 ARM體系架構變種(Variant)
■ T變種
T變種的處理器支持Thumb指令集。
T變種從ARMv4中引入,支持Thumb指令的ARM體系版本用字符T來表示。
■ M變種
M變種的處理器增加了兩條用于長乘法操作的ARM指令,其中一條用于實現32位整數乘以32位整數生成64位整數的長乘法;另一條指令用于實現32位整數乘以32位整數然后再加上32位整數生成64位整數的長乘法。
M變種從ARMv3中引入,支持長乘法指令。ARM體系版本用字符M來表示。
■ E變種
E變種包含了一些附加指令,用于增強處理器對一些典型的DSP算法的處理性能,包括:
1)增加了幾條新的實現16位數據乘法和乘加操作指令;
2)實現飽和帶符號數的加減法操作指令。所謂的飽和帶符號數的加減法操作是在加減法操作溢出時并不進行卷繞(wrapping around),而是使用最大的整數或最小的負數來表示;
3)進行雙子數據操作的指令ldrd、strd、mcrr、mrrc;
4)cache預取指令pld。
■ J變種
J變種使ARM的Jazelle技術將Java的優勢和先進的32位RISC芯片完美地結合在一起,與普通的Java虛擬機相比,Jazelle使Java代碼運行速度提高了8倍,而功耗卻降低了80%;
J變種首先在ARMv4TEJ中使用,用字符J表示。
■ SMID變種
SMID變種增加了媒體功能擴展,其主要特點是:
1)將音頻、視頻處理性能提高2~4倍;
2)可以同時進行兩個16位操作數或者4個8位操作數的運算;
3)提供了小數算術運算;
4)用戶可以定義飽和運算模式;
5)兩套16位操作數的乘加/乘減運算;
6)32位乘以32位的小數MAC;
7)同時8位/16位選擇操作。
SMID變種的主要應用領域包括:
1)互聯網應用系統;
2)流媒體應用系統;
3)MPEG4編解碼系統;
4)語音和手寫輸入識別;
5)FFT處理;
6)復雜的算術運算;
7)Viterbi處理。
2.4.3 ARM體系架構版本命名格式
ARM體系架構版本號一般命名方法如下:
ARMvN(x)B(x)B…
其中:
N:表示版本號,取值范圍為1~6,如:ARMv6。
B:各種變種的代表字符,一個版本中可能存在多個變種,所以一個版本號中可以包含多個變種字符,ARMv5TE表示ARMv5版本中同時包含了T和E兩個變種功能。
(x):如果變種字符前面加了x字符,那么表示該版本中不含該變種功能,如ARMv4xM表示ARMv4版本中不包含M變種的功能。
表2-1列出到目前為止有效的ARM體系架構版本名及其含義。
表2-1 有效的ARM體系架構版本名及其含義

2.5 ARM處理器
ARM處理器目前包括下面幾個系列:
1)ARM7系列
2)ARM9系列
3)ARM9E系列
4)ARM10E系列
5)SecurCore系列
6)Intel的StrongARM
7)Intel的Xscale
其中,ARM7、ARM9、ARM9E和ARM10是4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求,而SecurCore系列專門為安全要求較高的應用設計。
下面我們介紹一下各種處理器的特點及其應用領域。
2.5.1 ARM7系列處理器
ARM7系列處理器是低功耗的32位RISC處理器,最適合用于對價位和功耗要求較高的消費類應用。ARM7微處理器系列具有如下特點:
1)具有嵌入式ICE-RT邏輯,調試開發方便;
2)極低的功耗,適合對功耗要求較高的應用,如便攜式產品;
3)能夠提供0.9MIPS/MHz的三級流水線結構;
4)代碼密度高并兼容16位的Thumb指令集;
5)對操作系統的支持廣泛,包括Windows CE、Linux、Palm OS等;
6)指令系統與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產品升級換代;
7)主頻最高可達130MIPS,高速的運算處理能力能勝任絕大多數的復雜應用。
ARM7系列處理器的主要應用領域為:工業控制、互聯網設備、網絡和調制解調器設備、移動電話等多種多媒體和嵌入式應用。
ARM7系列處理器包括如下幾種類型:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是使用最廣泛的32位嵌入式RISC處理器,屬于低端ARM處理器。TDMI的基本含義為:
T:支持16位壓縮指令集Thumb;
D:支持片上Debug;
M:內嵌硬件乘法器(Multiplier);
I:嵌入式ICE,支持片上斷點和調試點。
ARM7TDMI芯片有:S3C44B0、S3C4510、AT40800等。
2.5.2 ARM9系列處理器
ARM9系列處理器在高性能和低功耗特性方面提供最佳的性能,具有以下特點:
1)5級整數流水線,指令執行效率更高;
2)提供1.1MIPS/MHz的哈佛結構;
3)支持32位ARM指令集和16位Thumb指令集;
4)支持32位的高速AMBA總線接口;
5)全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統;
6)MPU支持實時操作系統;
7)支持數據Cache和指令Cache,具有更高的指令和數據處理能力。
ARM9系列處理器主要應用于無線設備、儀器儀表、安全系統、機頂盒、高端打印機、數字照相機和數字攝像機等。
ARM9系列微處理器包括ARM920T、ARM922T和ARM940T三種類型。
2.5.3 ARM9E系列處理器
ARM9E系列處理器是綜合處理器,使用單一的處理器內核提供了微控制器、DSP、Java應用系統的解決方案,極大地減少了芯片的面積和系統的復雜程度。ARM9E系列處理器提供了增強的DSP處理能力,很適合于那些需要同時使用DSP和微控制器的應用場合。ARM9E系列處理器的主要特點如下:
1)支持DSP指令集,適合于需要高速數字信號處理的場合;
2)5級整數流水線,指令執行效率更高;
3)支持32位ARM指令集和16位Thumb指令集;
4)支持32位的高速AMBA總線接口;
5)支持VFP9浮點處理協處理器;
6)全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統;
7)MPU支持實時操作系統;
8)支持數據Cache和指令Cache,具有更高的指令和數據處理能力;
9)主頻最高可達300MIPS。
ARM9系列處理器主要應用于無線設備、數字消費品、成像設備、工業控制、存儲設備和網絡設備等領域。
ARM9E系列微處理器包括ARM926EJ-S、ARM946E-S和ARM966E-S三種類型。
2.5.4 ARM10E系列處理器
ARM10E系列處理器具有高性能、低功耗的特點,由于采用了新的體系結構,與同等的ARM9器件相比較,在同樣的時鐘頻率下,性能提高了近50%,同時,ARM10E系列處理器采用了兩種先進的節能方式,使其功耗極低。ARM10E系列處理器的主要特點如下:
1)支持DSP指令集,適合于需要高速數字信號處理的場合;
2)6級整數流水線,指令執行效率更高;
3)支持32位ARM指令集和16位Thumb指令集;
4)支持32位的高速AMBA總線接口;
5)支持VFP10浮點處理協處理器;
6)全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統;
7)支持數據Cache和指令Cache,具有更高的指令和數據處理能力;
8)主頻最高可達400MIPS;
9)內嵌并行讀/寫操作部件。
ARM10E系列處理器主要應用于無線設備、數字消費品、成像設備、工業控制、通信和信息系統等領域。
ARM10E系列微處理器包括ARM1020E、ARM1022E和ARM1026EJ-S三種類型。
2.5.5 SecurCore系列處理器
SecurCore系列微處理器專為安全產品設計,提供了完善的32位RISC技術的安全解決方案,SecurCore系列處理器除了具有ARM體系結構的低功耗、高性能的特點外,還具有其獨特的優勢,即提供了對安全解決方案的支持。SecurCore系列處理器除了具有ARM體系結構各種主要特點外,還在系統安全方面具有如下特點:
1)帶有靈活的保護單元,以確保操作系統和應用數據的安全;
2)采用軟內核技術,防止外部對其進行掃描探測;
3)可集成用戶自己的安全特性和其他協處理器。
SecurCore系列微處理器主要應用于對安全性要求較高的應用產品及應用系統,如電子商務、電子政務、電子銀行業務、網絡和認證系統等領域。
SecurCore系列微處理器包括SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210四種類型。
2.5.6 StrongARM處理器
Intel StrongARM SA-1100處理器是采用ARM體系結構高度集成的32位RISC微處理器,它融合了Intel公司的設計和處理技術以及ARM體系結構的電源效率,采用在軟件上兼容ARMv4體系結構、同時采用具有Intel技術優點的體系結構。
Intel StrongARM處理器是便攜式通信產品和消費類電子產品的理想選擇,已成功應用于多家公司的掌上電腦系列產品中。
2.5.7 Xscale處理器
Xscale處理器是由Intel生產的基于ARMv5TE體系結構的解決方案,是一款全性能、高性價比、低功耗的處理器,它支持16位的Thumb指令和DSP指令集,已使用在數字移動電話、個人數字助理(PDA)和網絡產品等領域。