arm cpu的架構及分類說明
今天在編譯mplayer for mx27ads的時候, 碰到了armv5te與armv6優化的問題。 默認的交叉編譯器支持armv5te也支持armv6,就默認使用了mplayer中mpeg4的armv6解碼代碼, 結果在在mx27ads版上,播放mpeg4視頻時顏色空間轉換出錯。 對比x86後總算找到了這個問題,順手根據ARM官方資料和網上資料整理了一篇arm cpu的架構及分類說明。
ARM微處理器系列
ARM 微處理器目前包括下面幾個系列,以及其它廠商基於 ARM 體系結構的處理器,除了具有
ARM 體系結構的共同特點以外,每一個系列的 ARM 微處理器都有各自的特點和應用領域。
- ARM7 系列
- ARM9E 系列
- ARM10E 系列
- ARM11系列
- Cortex 系列
- SecurCore 系列
- OptimoDE Data Engines
- Xcale
其中,ARM7、ARM9、ARM9E 和 ARM10 為4 個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求。SecurCore系列專門為安全要求較高的應用而設計。
以下我們來詳細了解一下各種處理器的特點及應用領域。
ARM7系列
ARM7 系列微處理器為低功耗的 32位 RISC 處理器, 最適合用於對價位和功耗要求較高的消費
類應用。ARM7 微處理器系列具有如下特點:
- 具有嵌入式 ICE-RT 邏輯,調試開發方便。
- 能夠提供 0.9MIPS/MHz 的三級流水線結構。
- 代碼密度高並兼容 16 位的 Thumb 指令集。
- 對操作系統的支持廣泛,包括 Windows CE、Linux、Palm OS 等。
- 指令系統與 ARM9 系列、ARM9E 系列和 ARM10E 系列兼容,便於用戶的產品升級換代。
- 主頻最高可達 130MIPS,高速的運算處理能力能勝任絕大多數的復雜應用。
ARM7 系列微處理器的主要應用領域為:工業控制、Internet 設備、網絡和調制解調器設備、移
動電話等多種多媒體和嵌入式應用。
ARM7 系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、
ARM 處理器核。TDMI的基本含義為:
T: 支持 16 為壓縮指令集 Thumb;
D: 支持片上 Debug; ARM應用系統開發詳解──基於S3C4510B的系統設計 3
M:內嵌硬件乘法器(Multiplier)
I: 嵌入式 ICE,支持片上斷點和調試點;
Samsung公司的 S3C4510B 即屬於該系列的處理器。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM720T |
8k unified |
- |
MMU |
AHB |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
ARM7EJ-S |
- |
- |
- |
Yes |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM7TDMI |
- |
- |
- |
Yes** |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
ARM7TDMI-S |
- |
- |
- |
Yes |
Yes |
No |
No |
|
|
ARM9系列
ARM9 系列微處理器在高性能和低功耗特性方面提供最佳的性能。具有以下特點:
- 5 級整數流水線,指令執行效率更高。
- 提供 1.1MIPS/MHz 的哈佛結構。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA總線接口。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
- MPU支持實時操作系統。
- 支持數據 Cache 和指令Cache,具有更高的指令和數據處理能力。
ARM9 系列微處理器主要應用於無線設備、儀器儀表、安全系統、機頂盒、高端打印機、數字照相機和數字攝像機等。
ARM9 系列微處理器包含 ARM920T、ARM922T和 ARM940T 三種類型,以適用於不同的應用場合。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM920T |
16k/16k |
- |
MMU |
ASB |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
ARM922T |
8k/8k |
- |
MMU |
ASB |
Yes |
No |
No |
|
ARM9E系列
ARM9E 系列微處理器為可綜合處理器,使用單一的處理器內核提供了微控制器、DSP、Java
應用系統的解決方案,極大的減少了芯片的面積和系統的復雜程度。ARM9E 系列微處理器提供了
增強的 DSP 處理能力,很適合於那些需要同時使用 DSP 和微控制器的應用場合。
ARM9E 系列微處理器的主要特點如下:
- 支持 DSP 指令集,適合於需要高速數字信號處理的場合。
- 5 級整數流水線,指令執行效率更高。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA總線接口。
- 支持 VFP9 浮點處理協處理器。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
- MPU支持實時操作系統。
- 支持數據 Cache 和指令Cache,具有更高的指令和數據處理能力。
- 主頻最高可達 300MIPS。
ARM9 系列微處理器主要應用於下一代無線設備、數字消費品、成像設備、工業控制、存儲設備和網絡設備等領域。
ARM9E 系列微處理器包含 ARM926EJ-S、ARM946E-S 和 ARM966E-S 三種類型,以適用於不同的應用場合。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM926EJ-S |
Variable |
Yes |
MMU |
2x AHB |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM946E-S |
Variable |
Yes |
MPU |
AHB |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM966E-S |
- |
Yes |
- |
AHB |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM968E-S |
n/a |
Yes |
DMA |
AHB-Lite |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM996HS |
n/a |
|
MPU(optional) |
Dual AMBA AHB |
Yes |
Yes |
No |
|
|
ARM10E系列
ARM10E 系列微處理器具有高性能、 低功耗的特點, 由於采用了新的體系結構, 與同等的 ARM9器件相比較,在同樣的時鐘頻率下,性能提高了近 50%,同時,ARM10E 系列微處理器采用了兩種先進的節能方式,使其功耗極低。
ARM10E 系列微處理器的主要特點如下:
- 支持 DSP 指令集,適合於需要高速數字信號處理的場合。 ARM應用系統開發詳解──基於S3C4510B的系統設計 4
- 6 級整數流水線,指令執行效率更高。
- 支持 32 位 ARM 指令集和 16 位 Thumb 指令集。
- 支持 32 位的高速 AMBA總線接口。
- 支持 VFP10浮點處理協處理器。
- 全性能的 MMU,支持 Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
- 支持數據 Cache 和指令Cache,具有更高的指令和數據處理能力
- 主頻最高可達 400MIPS。
- 內嵌並行讀/寫操作部件。
ARM10E 系列微處理器主要應用於下一代無線設備、數字消費品、成像設備、工業控制、通信和信息系統等領域。
ARM10E 系列微處理器包含 ARM1020E、ARM1022E和 ARM1026EJ-S 三種類型,以適用於不同的應用場合。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM1020E |
32k/32k |
- |
MMU |
2x AHB |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM1022E |
16k/16k |
- |
MMU |
2x AHB |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM1026EJ-S |
Variable |
Yes |
MMU or MPU |
2x AHB |
Yes |
Yes |
Yes |
|
|
ARM11系列
ARM11系列微處理器是ARM公司近年推出的新一代RISC處理器,它是ARM新指令架構——ARMv6的第一代設計實現。該系列主要有ARM1136J,ARM1156T2和RM1176JZ三個內核型號,分別針對不同應用領域。
ARMv6架構通過以下幾點來增強處理器的性能:
·多媒體處理擴展
使MPEG4編碼/解碼加快一倍
音頻處理加快一倍
·增強的Cache結構
實地址Cache
減少Cache的刷新和重載
減少上下文切換的開銷
·增強的異常和中斷處理
使實時任務的處理更加迅速= 支持Unaligned和Mixed-endian數據訪問
使數據共享、軟件移植更簡單,也有利於節省存儲器空間
對絕大多數應用來說,ARMv6保持了100%的二進制向下兼容,使用戶過去開發的程序可以進一步繼承下去。ARMv6 保持了所有過去架構中的T(Thumb指令)和E(DSP指令)擴展,使代碼壓縮和DSP處理特點得到延續;為了加速Java代碼執行速度的ARM Jazalle技術也繼續在ARMv6架構中發揮重要作用。
ARM11處理器是為了有效的提供高性能處理能力而設計的。在這裏需要強調的是,ARM並不是不能設計出運行在更高頻率的處理器,而是,在處理器能提供超高性能的同時,還要保證功耗、面積的有效性。ARM11優秀的流水線設計是這些功能的重要保證。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM11 MPCore |
Variable |
- |
MMU + cache coherency |
1x or 2x AMBA AXI |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM1136J(F)-S |
Variable |
Yes |
MMU |
5x AHB |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM1156T2(F)-S |
Variable |
Yes |
MPU |
3xAXI |
Yes |
Yes |
No |
|
|
|
|
|
|
|
|
|
|
ARM1176JZ(F)-S |
Variable |
Yes |
MMU + TrustZone |
4x AXI |
Yes |
Yes |
Yes |
|
|
Cortex系列
新的ARM Cortex處理器系列包括了ARMv7架構的所有系列,含有面向復雜操作系統、實時的和微控制器應用的多種處理器。ARM Cortex-A系列是針對日益增長的,運行包括Linux、Windows CE和Symbian在內的操作系統的消費者娛樂和無線產品設計的;ARM Cortex-R系列針對的是需要運行實時操作系統來進行控制應用的系統,包括有汽車電子、網絡和影像系統;ARM Cortex-M系列則是為那些對開發費用非常敏感同時對性能要求不斷增加的嵌入式應用所設計的
ARM Cortex-M系列支持Thumb-2指令集,它是Thumb指令集的擴展集,可以執行所有已存的為早期的處理器編寫的代碼。通過一個前向的轉換方式,為ARM Cortex-M系列處理器所寫的用戶代碼可以與ARM Cortex-R系列微處理器完全兼容。ARM Cortex-M系列系統代碼(例如實時操作系統)可以很容易地移植到基於ARM Cortex-R系列的系統。ARM Cortex-A和-R系列處理器還支持ARM 32位指令集,向後完全兼容早期的ARM處理器,包括從1995年發布的ARM7TDMI處理器到最近的ARM11處理器系列。
在命名方式上,基於ARMv7架構的ARM處理器已經不再延用過去的數字命名方式,而是冠以Cortex的代號。基於v7A的稱為"Cortex-A系列",基於v7R的稱為"Cortex-R系列",基於v7M的稱為"Cortex-M3"。
Cortex-M系列處理器主要包含ARM Cortex-M1, ARM Cortex-M3兩款處理器。
Cortex-R系列處理器目前包括ARM Cortex-R4和ARM Cortex-R4F兩個型號,主要適用於實時系統的嵌入式處理器。
Cortex-A系列處理器目前包括ARM Cortex-A8, ARM Cortex-A9-MPCore, ARM Cortex-A9-Single Core Processor。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-A8 |
Variable |
- |
MMU+TrustZone |
AMBA 3 AXI |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-A9 MPCore |
16k/64k |
|
MMU+TrustZone |
AMBA 3 AXI |
Yes |
Yes |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-A9 Single Core Processor |
16k/64k |
|
MMU+TrustZone |
AMBA 3 AXI |
Yes |
No |
Yes |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-M1 |
|
Yes |
- |
AMBA AHB-Lite + APB |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-M3 |
- |
- |
MPU (optional) |
3x AHB-Lite + APB |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
ARM Cortex-R4(F) |
0K-64k |
Variable |
MPU |
AMBA 3 AXI |
Yes |
Yes |
No |
|
|
SecurCore系列
SecurCore 系列微處理器專為安全需要而設計,提供了完善的 32 位 RISC 技術的安全解決方案,
因此,SecurCore 系列微處理器除了具有 ARM 體系結構的低功耗、高性能的特點外,還具有其獨特
的優勢,即提供了對安全解決方案的支持。
SecurCore 系列微處理器除了具有 ARM 體系結構各種主要特點外, 還在系統安全方面具有如下
的特點:
- 帶有靈活的保護單元,以確保操作系統和應用數據的安全。
- 采用軟內核技術,防止外部對其進行掃描探測。
- 可集成用戶自己的安全特性和其他協處理器。
SecurCore 系列微處理器主要應用於一些對安全性要求較高的應用產品及應用系統,如電子商
務、電子政務、電子銀行業務、網絡和認證系統等領域。
SecurCore系列微處理器包含SecurCore SC100、 SecurCore SC110、 SecurCore SC200和SecurCore
SC210 四種類型,以適用於不同的應用場合。
|
|
|
|
|
|
|
|
|
|
Cache Size |
Tightly |
Memory |
Bus |
Thumb |
DSP |
Jazelle |
|
|
|
|
|
|
|
|
|
|
SecurCore SC100 |
- |
- |
MPU |
- |
Yes |
No |
No |
|
|
|
|
|
|
|
|
|
|
SecurCore SC200 |
- |
- |
MPU |
- |
Yes |
Yes |
Yes |
OptimoDE Data Engines
ARM的OptimoDE Data Engine是許可使用的IP,它具有一個相關工具環境、一個數據路徑函數資源庫以及具有各種並行機制和性能的預配置微結構。OptimoDE定位於高性能嵌入式信號處理應用,開發者能夠使用它作為單機處理器或具有微處理器核的設計中。它支持並行性、虛擬無限的數據路徑配置(包括混合寬度)、用戶擴展以及訪問固定功能或可編
程的數據引擎。OptimoDE Data Engine與ARM的DSP接口規範兼容,這種接口規範規定了核與核之間基於郵箱的指令控制訊息和大量數據傳送的接口、糾錯和追蹤接口以及多核糾錯協議、還有針對處理器交互通信的軟件API。
通過支持可編程性能,OptimoDE設計流程使設計者能夠凍結Data Engine的結構,繼續通過軟件改變來調整算法。這種方法使具有相似要求的多個算法能夠使用同樣的Data Engine硬件。在開發者將設計提交給工廠或者批量供應後,他們還能重新編程OptimoDE Data Engine,重新生成代碼來包容增加的設計改進或替代算法,而不用改變底層的硬件結構。
工具環境使設計者能夠配置和擴展數據路徑資源單元的類型和數目。設計者還能配置本地存儲的類型和大小以及交互連接的級別。ARM提供一個C編譯器和性能分析工具,開發者使用它們用C或C++來對OptimoDE Data Engine進行編程。一旦數據引擎在一個設計中組合應用,OptimoDE工具環境就能夠自動生成仿真模型,設計者使用它可以驗證集成過程。OptimoDE Data Engine具有AMBA兼容特性並能和ARM的多種系統IP一起工作。
Xscale系列
Xscale 處理器是基於 ARMv5TE體系結構的解決方案,是一款全性能、高性價比、低功耗的處
理器。它支持 16 位的 Thumb 指令和 DSP 指令集,已使用在數字移動電話、個人數字助理和網絡產
品等場合。
Xscale 處理器是以前Intel主要推廣的一款ARM微處理器. 但在2006年11月8日,Marvell完成了對英特爾公司手機和應用處理器業務部門的收購。根據該項收購協議,英特爾將在2008年6月前為Marvell制造和供應芯片.
https://blog.csdn.net/force_eagle/article/details/2050188
arm cpu的架構及分類說明