ARM 指令集版本和ARM 版本
常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表達。且在GCC編譯中,常常要用到 -march,-mcpu等。他們分別表達什么涵義呢?Sam自己也不很清楚,只是大概有個模糊的概念。今天就仔細研究一下。
?
ARM(Advanced RISCMachines)是微處理器行業的一家知名企業。設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。1985年,第一個ARM原型在英國劍橋誕生。ARM公司的特點是只設計芯片,而不生產。ARM將其技術授權給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的都是一套獨一無二的ARM相關技術及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。
?
?
ARM公司定義了6種主要的指令集體系結構版本。V1-V6。(所以上面提到的ARMv6是指指令集版本號)。即:ARM architecture
?
ARMv1:
該版本的原型機是ARM1,沒有用于商業產品。
ARMv2:
對V1版進行了擴展,包含了對32位結果的乘法指令和協處理器指令的支持。
ARMv3:
ARM公司第一個微處理器ARM6核心是版本3的,它作為IP核、獨立的處理器、具有片上高速緩存、MMU和寫緩沖的集成CPU。
ARMv4:
當前應用最廣泛的ARM指令集版本。
ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。
ARMv5:
ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。
ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。
ARM10也采用。
其中后綴意義如下:
E:增強型DSP指令集。包括全部算法和16位乘法操作。
J:支持新的Java。
ARMv6:
采用ARMv6核的處理器是ARM11系列。
ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。
ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。
ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基礎上增加MMU、TrustZone。
ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基礎上可以包括1-4 核SMP、MMU。
ARMv7-A:
?
?
?
?
?
ARM處理器核:
ARM公司開發了很多ARM處理器核,最新版位ARM11。
ARM7微處理器系列
低功耗的32位RISC處理器,馮·諾依曼結構。極低的功耗,適合便攜式產品。
具有嵌入式ICE-RT邏輯,調試開發方便。
3級流水線結構。能夠提供0.9MIPS的三級流水線結構
代碼密度高,兼容16位的Thumb指令集。
對操作系統的支持廣泛,包括Windows CE、Linux、Palm OS等。
指令系統與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產品升級換代。
主頻最高可達130MIPS。
主要應用領域:工業控制、Internet設備、網絡和調制解調器設備、移動電話等多種多媒體和嵌入式應用。
ARM7TDMI微處理器
4種類型:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。
注:“ARM核”并不是芯片,ARM核與其它部件如RAM、ROM、片內外設組合在一起才能構成現實的芯片。
?
ARM9微處理器系列
ARM9系列微處理器在高性能和低功耗特性方面提供最佳的性能。
5級整數流水線,
哈佛體系結構。
支持32位ARM指令集和16位Thumb指令集。
全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
支持數據Cache和指令Cache,具有更高的指令和數據處理能力。
主要應用:無線設備、儀器儀表、安全系統、機頂盒、高端打印機、數碼照相機和數碼攝像機。
3種類型:ARM920T、ARM922T和ARM940T。
ARM9E微處理器系列
單一處理器內核提供微控制器、DSP、Java應用系統的解決方案。
支持DSP指令集。
5級整數流水線,指令執行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP9浮點處理協處理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
MPU支持實時操作系統。
支持數據Cache和指令Cache,
主頻最高可達300MIPS。
主要應用:下一代無線設備、數字消費品、成像設備、工業控制、存儲設備和網絡設備等領域。
3種類型:ARM926EJ-S、ARM946E-S和ARM966E-S。
?
ARM10E微處理器系列
與同等的ARM9比較,在同樣的時鐘頻率下,性能提高了近50%,功耗極低。
支持DSP指令集。
6級整數流水線,指令執行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP10浮點處理協處理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多種主流嵌入式操作系統。
支持數據Cache和指令Cache。
主頻最高可達400MIPS。
內嵌并行讀/寫操作部件。
主要應用:下一代無線設備、數字消費品、成像設備、工業控制、通信和信息系統等領域。
3種類型:ARM1020E、ARM1022E和ARM1026EJ-S。
SecurCore微處理器系列
專為安全需要而設計,提供了完善的32位RISC技術的安全解決方案。
靈活的保護單元,以確保操作系統和應用數據的安全。
采用軟內核技術,防止外部對其進行掃描探測。
可集成用戶自己的安全特性和其他協處理器。
主要應用:對安全性要求較高的應用產品及應用系統,如電子商務、電子政務、電子銀行業務、網絡和認證系統等領域。
4種類型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCoreSC210。
Xscale處理器
基于ARMv5TE體系結構的解決方案,是一款全性能、高性價比、低功耗的處理器。
支持16位的Thumb指令和DSP指令集。
已使用在數字移動電話、個人數字助理和網絡產品等場合。
Xscale處理器是Intel目前主要推廣的一款ARM微處理器
?
ARM11:指令集ARMv6,8級流水線,1.25DMIPS/MHz
Cortex-A8:指令集ARMv7-A,13級整數流水線,超標量雙發射,2.0DMIPS/MHz,標配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通獲得指令集授權后在A8的基礎上設計的。13級整數流水線,超標量雙發射,部分亂序執行,2.1DMIPS/MHz,標配Neon,支持多核
Cortex-A9:指令集ARMv7-A,8級整數流水線,超標量雙發射,亂序執行,2.5DMIPS/MHz,可選配Neon/VFPv3,支持多核
Cortex-A5:指令集ARMv7-A,8級整數流水線,1.57DMIPS/MHz,可選配Neon/VFPv3,支持多核
Cortex-A15:指令集ARMv7-A,超標量,亂序執行,可選配Neon/VFPv4,支持多核
?
?
?
?
?當使用ARM toolchain時,會有-march -mcpu等。
-mcpu=
-mtune=
他們指定目標處理器(target ARMprocessor)。
可選的參數為:arm2',`arm250',`arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', `arm700i', `arm710', `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm8', `strongarm', `strongarm110', `strongarm1100', `arm8', `arm810', `arm9', `arm9e', `arm920', `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s', `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t', `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s', `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1176jz-s', `arm1176jzf-s', `xscale', `iwmmxt', `ep9312',Cortex-A8, Cortex-A9
?
-march=
?target ARM architecture。 目標處理器架構。
`armv2', `armv2a',`armv3', `armv3m',`armv4', `armv4t',`armv5', `armv5t',`armv5te', `armv6',`armv6j', `iwmmxt',`ep9312'. armv7-a等。
1. 處理器IP核
通常說的ARM7,ARM9,ARM11等,都是處理器的IP名字,每種市面上的CPU,比如S3C2440之類的,都會對應一個處理器的IP核,這些核都是ARM授權的。當然,ARM9之類的名字可能包括多種處理器內核,比如ARM920T,ARM926ejs等。具體的ARM處理器IP核包括:
?
arm2', `arm250', `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', `arm700i', `arm710', `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm8', `strongarm', `strongarm110', `strongarm1100', `arm8', `arm810', `arm9', `arm9e', `arm920', `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s', `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t', `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s', `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1176jz-s', `arm1176jzf-s', `xscale', `iwmmxt', `ep9312','cortex-A5', 'cortex-A8', 'cortex-A15'
等等,這些都是IP核的名字.有的廠家,會拿去ARM的IP核,自己修改和加強出新的IP核.
2. 體系架構
?
ARM 體系結構是構建每個 ARM 處理器的基礎。ARM 體系結構隨著時間的推移不斷發展,其中包含的體系結構功能可滿足不斷增長的新功能、高性能需求以及新興市場的需要。
體系結構是對處理器的架構描述,包括:
?
?
- 統一寄存器文件加載/存儲體系結構,其中的數據處理操作只針對寄存器內容,并不直接針對內存內容。
- 簡單尋址模式,所有加載/存儲地址只通過寄存器內容和指令字段確定。
等等,體系結構相對穩定,可能會適時的推出新的特性,同時體系結構是兼容的.不同的處理器IP核,可能實現了不同的體系結構.ARM的體系架構包括:
?
?
`armv2', `armv2a', `armv3', `armv3m', `armv4', `armv4t', `armv5', `armv5t', `armv5te', `armv6', `armv6j', `iwmmxt', `ep9312'. armv7-a等。
?
?
3. 指令集
指令集實際上和體系結構是相互對應的,指令集和體系結構一樣,是不斷擴展的,同時保證了兼容性。相應的體系結構特征,需要對應的指令去實現。體系結構和指令集,可以在一起成為指令集架構,每個處理器IP核會實現特定的一種指令集架構.
ARM的指令集包括:ARM指令集,Thumb指令集.
?
4. 總結
市面上的CPU或者SOC,都是基于某IP核,這個IP核心實際上實現了一種指令集架構(體系結構特性+特定指令集) .指令集架構決定了功能范圍,IP核決定了處理器性能,具體的CPU或者SOC決定了處理器的功能范圍.
舉個例子: S3C2440是個Soc,使用了ARM920T的處理器IP核,ARM920T核實現了ARMv4架構,支持支持32位ARM指令集和16位Thumb指令集.
ARM?指令集版本和ARM?版本
?
ARM11:指令集ARMv6,8級流水線,1.25DMIPS/MHz
Cortex-A8:指令集ARMv7-A,13級整數流水線,超標量雙發射,2.0DMIPS/MHz,標配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通獲得指令集授權后在A8的基礎上設計的。13級整數流水線,超標量雙發射,部分亂序執行,2.1DMIPS/MHz,標配Neon,支持多核
Cortex-A9:指令集ARMv7-A,8級整數流水線,超標量雙發射,亂序執行,2.5DMIPS/MHz,可選配Neon/VFPv3,支持多核
Cortex-A5:指令集ARMv7-A,8級整數流水線,1.57DMIPS/MHz,可選配Neon/VFPv3,支持多核
Cortex-A15:指令集ARMv7-A,超標量,亂序執行,可選配Neon/VFPv4,支持多核
?
總結
以上是生活随笔為你收集整理的ARM 指令集版本和ARM 版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机的引脚,你都清楚吗?
- 下一篇: 回家一趟