- 嵌入式Linux系統實用開發
- 何永琪主編
- 3793字
- 2018-12-28 14:40:35
1.3 ARM體系概況
ARM(Advanced RISC Machine)是一家專注于通用處理器知識產權(Intellectual Property,IP)研究開發的公司,自身并不直接生產處理器芯片,而是通過向其他芯片和半導體制造商提供設計授權來推廣其產品,其產品和CPU技術體系架構在業內被通稱為ARM處理器。
ARM處理器在技術體系上屬于更為純正的精簡指令體系(RISC),在具體實現架構上與x86體系完全不同——ARM處理器多數采用的是SoC(System on Chip,片上系統)架構,CPU、圖形/圖像/視頻處理單元、顯示單元、存儲控制器及其接口、基本通信單元(UART,SPI,I2C,I2S等)的控制器以及許多外部總線或接口控制器(如以太網MAC控制器、USB控制器等)都集成在單一芯片上。因此采用ARM處理器的計算機沒有一般x86體系上獨立的南、北橋芯片和圖形加速卡、以太網卡控制器芯片等,整體架構更為精簡,更適合于嵌入式應用場合。
ARM處理器體系功能集除了核心的ARM功能集外,還有如下常見的功能集。
◆ Thumb:采用16 位指令集,其中的大部分指令被直接映射成正常ARM指令,這樣使得CPU能夠通過運行16 位指令來實現很多需要32 位指令才能完成的功能,從而提高代碼密度,節省處理器和內存資源。
◆ Thumb-2:Thumb功能集的擴展,通過增加的32 位指令來擴展指令執行位寬。
◆ Jazelle:通過在ARM結構中直接執行Java字段代碼來提高Java程序的運行性能。
◆ ThumbEE(Thumb執行環境):也稱為Jazelle RCT(Runtime Compilation Target),是對Thumb-2功能集的修訂和擴展,實現了更好的實時編譯功能——包括即時編譯(Just in time compilation,JIT)和動態自適應編譯(Dynamic Adaptive Compilation,DAC)。
◆ VFP(Vector Floating Point):ARM架構上的矢量浮點處理器擴展,實現滿足ANSI/IEEE Std 754-1985標準的單精度/雙精度浮點運算能力。
◆ NEON(Advanced SIMD):64位/128位混合SIMD(Single Instruction Multiple Data,單指令多數據)高級擴展功能,支持8 位、16 位、32 位和64 位整數和單精度浮點數據運算,以及完整的SMP(對稱多處理)功能,可同時進行16 個運算操作。
◆ TrustZone:安全擴展功能。
◆ DSP指令擴展:對原有算術處理指令進行了進一步擴展,并增加了單時鐘周期16×16 和32×16 乘法/加法器指令。
ARM處理器按其官方分類包括應用處理器(Application processor)、嵌入式處理器(Embedded processor)、安全內核(SecurCore)和圖形處理器(Graphics processor)以及視頻引擎(Video engine)。
應用處理器主要針對開放的操作系統平臺上的業務應用更為廣泛和豐富的市場需求,目前包括以下內核版本系列:
◆ ARM720T
◆ ARM920T
◆ ARM922T
◆ ARM926EJ-S
◆ ARM1136J(F)-S
◆ ARM1176JZ(F)-S
◆ ARM11多核
◆ ARM Cortex-A8
◆ ARM Cortex-A9單核
◆ ARM Cortex-A9多核
嵌入式處理器主要針對嵌入式體系中那些實時性要求較高、實現功能較為確定單一的市場需求,目前主要包括以下版本系列:
◆ ARM7EJ-S
◆ ARM7TDMI
◆ ARM7TDMI-S
◆ ARM946E-S
◆ ARM966E-S
◆ ARM968E-S
安全內核主要包括以下系列:
◆ SC100
◆ SC200
◆ SC300
◆ ARM1156T2(F)-S
◆ ARM Cortex-M0
◆ ARM Cortex-M1
◆ ARM Cortex-M3
◆ ARM Cortex-R4(F)
主要圖形處理器目前只有Mali處理器一個系列,視頻引擎也只有Mali-VE一個系列。
ARM公司對其處理器內核版本傳統的命名方式是“內核版本號+擴展功能集標識”,內核版本號為3 或4 位數字,擴展功能集標識如表1.2 所示。
在嵌入式行業中,一般將ARM整個體系的處理器都視為嵌入式處理器,大致分為嵌入式應用處理器(Embedded Application Processor)和微控制器(Microcontroller或MCU)。很多獲得ARM公司授權的公司,例如Freescale(飛思卡爾)公司、Atmel公司等,對自己的ARM處理器產品也并不嚴格遵守ARM公司的分類方法,多數按照ARM處理器的IP版本劃分,分成ARM7產品、ARM9產品、ARM11產品、Cortex產品等。下面將分別介紹不同IP版本ARM處理器的基本情況。
1.3.1 ARM7
ARM7 系列采用低功耗32 位RISC處理器內核,具備MMU(Memory Management Unit,內存管理單元)和高速片上緩存(cache)的內核版本能夠支持Windows CE,Palm OS,Symbian OS,Linux以及部分實時性操作系統,其指令前向兼容ARM9,ARM9E和ARM10E(以及基于ARM10E的Intel Xscale架構)。目前主要包括以下4個版本:
◆ ARM720T
◆ ARM7EJ-S
◆ ARM7TDMI
◆ ARM7TDMI-S
獲得ARM7系列內核授權的半導體廠家非常多,芯片用途非常廣泛,用量也相當大。常用的ARM7芯片有以下一些。
◆ NXP公司:LH75xx系列(ARM7TDMI-S)、LH79系列(ARM720T)、LPC21xx系列(ARM7TDMI-S)、LPC22xx系列(ARM7TDMI-S)、LPC23xx系列(ARM7TDMI-S)、LPC24xx系列(ARM7TDMI-S)、LPC28xx系列(ARM7TDMI)。
◆ Atmel公司:AT91SAM7xxx系列、AT91SAM42800 A/55800A、AT91x40系列(ARM7TDMI)。
◆ 三星電子:S3C44B0,S3C3410(ARM7TDM)。
◆ 德州儀器(TI):TMS470(ARM7TDMI)。
◆ 意法半導體公司:STR71x/73x系列(ARM7TDM)和75x系列(ARM7TDMI-S)。
由于功能相對較少、處理能力相對較弱,ARM7 系列的CPU在實際中多用于簡單控制,常見于低端手機(入門級非智能手機)、入門級的MP3/MP4、低端工業控制器等產品,其產業角色更接近于高檔32 位單片機。按照ARM公司的技術路線,ARM7 系列未來將逐漸被Cortex-M系列所替代。
1.3.2 ARM9
目前包括ARM920T和ARM922T兩個內核版本,采用32 位RISC處理器內核和5 級整數流水線,并集成指令和數據緩存以及一個32 位AMBA接口,全部具有MMU,能夠支持Symbian OS,Palm OS,Linux和Windows CE。
獲得ARM9系列內核授權的半導體廠家不是很多,基本上都是ARM920T內核,常用芯片有如下一些。
◆ 三星電子:S3C241x系列、S3C244x系列。
◆ Cirrus Logic公司:EP93xx系列。
◆ Atmel公司:AT91RM9200。
該系列產品雖然芯片種類相對較少,但芯片產量很大、用途非常廣泛,商業和銀行POS終端、智能家電以及嵌入式教育培訓用板卡等都會用到該系列內核的芯片。
這里需要特別指出一點,Cirrus Logic公司的EP93xx系列產品實際上并不是傳統意義上的ARM芯片,而是該公司在ARM920T內核基礎上進行了很大改進和增強的一款復合功能芯片,在硬件上實現了數學協處理器、2D圖形加速器和加密器等實際應用中非常必要的功能,因此其整體功能明顯優于傳統意義上的ARM9和ARM9E內核的芯片。
1.3.3 ARM9E
ARM9E采用5 級整數流水線架構,并提供VFP9 功能增強選項,同時還使用了TCM(Tightly-Coupled Memory)技術;其數據和指令的緩存容量可變(0MB~1MB)且具有獨立的AMBA AHB總線接口;特別是在原有ARM9 支持的ARM和Thumb功能(指令)集基礎上增加了DSP支持,還通過單時鐘周期32×16 乘法/加法器進一步強化了16 位定點性能,屬于具備DSP功能的32 位RISC處理器。目前主要包括以下版本:
◆ ARM926EJ-S
◆ ARM946E-S
◆ ARM966E-S
◆ ARM968E-S
◆ ARM996HS
ARM9E系列內核的產品應用極其廣泛,如中高端非智能手機、低端智能手機、工業控制產品、汽車電子設備等。獲得ARM9E系列內核授權的半導體廠家很多,絕大多數都是ARM926EJ-S內核授權,常用的ARM9E芯片有如下一些。
◆ 三星電子:S3C2450。
◆ Atmel公司:AT91SAM9系列。
◆ TI公司:Da Vinci系列(Da Vinci TMS320DM系列)和OMAP-L137。
◆ NXP公司:LPC31xx系列和LPC32xx系列。
◆ Freescale(飛思卡爾)公司:MCIMX21和MCIMX27。
◆ Cirrus Logic公司:EP9608。
1.3.4 ARM10E
ARM10E僅有ARM1020E一個內核版本,它采用6 級流水線架構,內置MMU、數據和指令緩存,以及64KB片上一級緩存(32KB數據 + 32KB指令),并集成了一個支持嵌入式在線電路仿真實時邏輯(Embedded ICE-RT)的整數處理單元,配置了外部協處理接口和系統內部協處理器CP14 和CP15,整數處理單元及其緩存、寫緩沖、系統總線接口和協處理器之間采用了全64 位接口,還通過獨立的指令側和數據側64 位AHB(Advanced High performance Bus,高性能總線)接口實現了多級結構AHB支持,另外還改進了電源管理功能。
獲得ARM10E內核授權的半導體廠家很少,市場上一般只能見到Marvell公司的PXA27x系列芯片,它采用的是在ARM1020E內核基礎上進行了很多特殊擴展的Intel Xscale體系,中國臺灣地區和大陸地區很多手機廠家的2G智能手機都采用這個體系的芯片,還有不少公司用其開發手持電腦、學習機等產品。
1.3.5 ARM11
ARM11系列是ARM公司推出的高端產品。所有產品都采用ARM v6版本的處理器內核、64位片上緩存接口,集成了一個支持Embedded ICE-RT邏輯的整數處理單元,配置了系統內部協處理器CP14和CP15,片上高速AMBA(Advanced Microcontroller Bus Architecture,高級微控制器總線結構)二級接口支持多處理器實現,還可選集成一個數學協處理器支持VFP。針對不同的市場定位包含以下4大類。
◆ ARM1136JZ(F)-S:針對視頻流解碼進行了擴展,8 級流水線架構,并提供外部協處理器接口,主要用于視頻解碼要求較高的場合。目前產品有飛思卡爾公司的MCIMX31/35/37 系列和德州儀器公司的OMAP24xx系列,主要用于中檔3G手機和高檔汽車娛樂設備。
◆ ARM1156T2(F)-S:9級流水線架構,具備指令與內存保護單元(Memory Protection Units,MPUs),并提供外部協處理器接口,可選集成的一個VFP數學協處理器專門解決精密控制中的高精度數學運算問題。主要用于汽車控制系統和實時性要求很高的工業控制系統。
◆ ARM1176JZ(F)-S:支持TrustZone安全擴展和智能電源管理,8 級流水線架構,可配置的低級中斷潛伏(Latency),數學協處理器專門應對3D圖形加速功能實現了多媒體處理功能的擴展,主要用于多媒體功能要求較高的場合(如高檔智能手機燈)。目前主要產品有三星電子的S3C64xx系列(美國蘋果公司的iPhone手機采用的就是該系列處理器)。
◆ ARM11 MPCore:ARM11 的多核產品,通過AXI(高級AMBA)二級接口連接多個單核CPU,最多支持4 個ARM11 CPU(每個CPU都配備了私有定時器和看門狗),配置了一個緩存輪詢控制單元來實現不同ARM11 CPU片上數據緩存間的數據協同,同時具有分布式中斷控制功能支持不同ARM11 CPU的中斷潛伏,還支持所有的RAM事例奇偶校驗。
1.3.6 Cortex
Cortex系列采用ARM v7版本的處理器內核,是ARM公司新近推出的智能處理器(Intelligent Processors)系列,也是其未來一段時間的主推產品。目前已經有不少公司推出了相應產品。該系列主要包括三類。
◆ Cortex-A用于完成復雜業務功能(如3G智能手機、高清視頻處理燈),支持Linux,Windows Mobile等功能完整的嵌入式操作系統。其中Cortex-A8 和Cortex-A9 內核支持ARM,Thumb和Thumb-2 指令集,目前主要包括以下版本。
● Cortex-A8:產品有德州儀器公司的OMAP3xxx系列、飛思卡爾公司的MCIMX51,目前2G手機市場國際主流品牌的很多智能手機都采用OMAP3xxx系列芯片。
● Cortex-A9 MPCore(多核):產品有德州儀器公司的OMAP4xxx系列(單芯片集成2個Cortex-A9 MPCore),目前3G手機市場國際主流品牌的高檔智能手機都采用該系列芯片。
● Cortex-A9 SingleCore(單核)
◆ Cortex-R用于實時性要求更高的系統,支持ARM,Thumb和Thumb-2指令集,目前主要包括以下版本。
● Cortex-R4:產品有德州儀器公司的TMS570M。
● Cortex-R4F
◆ Cortex-M是低成本、低功耗應用的內核,僅支持Thumb-2指令集,目前主要包括以下版本。
● Cortex-M0
● Cortex-M1
● Cortex-M3:迄今為止,取得Cortex-M3 內核授權的芯片廠商已超過28 個,2008 年全球半導體廠家排名前10 位的廠家中有6 個獲得授權,已經量產供貨的芯片超過250 款,典型產品有德州儀器公司的LM3Sxxxx系列、意法半導體公司的STM32 系列、NXP公司的LPC13xx和LPC17xx系列、Atmel公司的SAM3U系列。