常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表達。且在GCC編譯中,常常要用到 -march, -mcpu等。他們分別表達什麼涵義呢?Sam自己也不很清楚,隻是大概有個模糊的概念。今天就仔細研究一下。
ARM(Advanced RISC Machines)是微處理器行業的一家知名企業。設計了大量高性能、廉價、耗能低的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和SecurCore SC210。
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 ARM processor)。
可選的參數為: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等。
Facebook留言板:
0 意見:
張貼留言