當(dāng)今處理器一共有三個(gè)最強(qiáng)大的架構(gòu),一個(gè)是以intel和AMD為代表的x86架構(gòu)(CISC),另一個(gè)是手機(jī)、平板處理器所使用的ARM架構(gòu)(RISC),最后一個(gè)是MIPS架構(gòu)(RISC)。其中,x86和ARM架構(gòu)是公認(rèn)的在商業(yè)化進(jìn)程中表現(xiàn)最為優(yōu)秀的兩大架構(gòu)。 ARM架構(gòu)過(guò)去稱(chēng)作進(jìn)階精簡(jiǎn)指令機(jī)器(Advanced RISC Machine),更早時(shí)期被稱(chēng)作Acorn RISC Machine,是一位32位精簡(jiǎn)指令集(RISC)處理器架構(gòu),被廣泛地使用在嵌入式系統(tǒng)設(shè)計(jì)中。 ARM屬RISC類(lèi),走IP授權(quán)商業(yè)模式,不直接生產(chǎn)IC,采用Fabless方式運(yùn)營(yíng)。在技術(shù)上,ARM堅(jiān)持走與Intel差異化的路線,從而形成了自己龐大的生態(tài)系統(tǒng)。說(shuō)得直白一點(diǎn),ARM相當(dāng)于移動(dòng)領(lǐng)域的x86,全球有超過(guò)95%的移動(dòng)設(shè)備采用ARM設(shè)計(jì)架構(gòu)的處理器。 雖然ARM被軟銀收購(gòu)了,不過(guò)這并不妨礙ARM的發(fā)展勢(shì)頭。憑借著低功耗、低廉價(jià),ARM迅速在移動(dòng)端殺出了一條血路,其系列家族占了所有32位嵌入式處理器的75%。今天咱們就來(lái)侃一侃偉大的ARM架構(gòu): 
什么是ARM架構(gòu)? 有些人將“指令集體系結(jié)構(gòu)”稱(chēng)為架構(gòu),這樣就有了ARMv8架構(gòu)、ARMv7-A架構(gòu)、ARMv6架構(gòu)等等,這些都是ARM設(shè)計(jì)的一些RISC指令集。 所謂指令集體系結(jié)構(gòu),就是ARM公司推出的一整套的精簡(jiǎn)指令,它是計(jì)算機(jī)最低層的命令,比如說(shuō)應(yīng)用程序需要從內(nèi)存讀取數(shù)據(jù),那么最后就是通過(guò)調(diào)用ARM設(shè)計(jì)的指令是實(shí)現(xiàn)內(nèi)存讀取。 不過(guò),也有人將ARM7、 ARM9、 ARM11以及Cortex等系列內(nèi)核也稱(chēng)為架構(gòu)。譬如,現(xiàn)在ARM主流的架構(gòu)應(yīng)該就是智能手機(jī)領(lǐng)域的Cortex-A系列架構(gòu)、工業(yè)控制嵌入式領(lǐng)域的Cortex-M系列架構(gòu)、對(duì)穩(wěn)定性要求高的Cortex-R系列架構(gòu)等。值得一提的是,ARM架構(gòu)在不斷演變的同時(shí),仍保持了各個(gè)版本之間的兼容性。 那么,為了清楚地表達(dá)每個(gè)ARM應(yīng)用實(shí)例所使用的指令集,ARM公司定義了幾種主要的ARM指令集結(jié)構(gòu)版本,以版本號(hào)V1-V8表示。V1架構(gòu)只要原型機(jī)ARM1出現(xiàn)過(guò),只有26位尋址空間,沒(méi)有用于商業(yè)產(chǎn)品。 
ARM架構(gòu)及其家族系列 
該版本架構(gòu)對(duì)V1進(jìn)行了擴(kuò)展,例如ARM2和ARM3(V2a)架構(gòu)。包含了對(duì)32位乘法指令和協(xié)處理器指令的支持。版本2a是版本2的變種,ARM3芯片采用了版本2a,是第一片采用Cache的ARM處理器。 ARM作為獨(dú)立的公司,在1990年設(shè)計(jì)的第一個(gè)微處理器采用的就是版本3的ARM6。它作為IP核、獨(dú)立的處理器、具有片上高速緩存、MMCU和寫(xiě)緩沖的集成CPU。變種版本有3G和3M。版本3G是不與版本2a相兼容的版本3。版本3M引入了有符號(hào)和無(wú)符號(hào)數(shù)乘法和乘加指令。V4版架構(gòu)在V3版上作了進(jìn)一步擴(kuò)充,V4版架構(gòu)是目前應(yīng)用最廣的ARM架構(gòu),ARM7、ARM8、ARM9和Strong ARM均采用了該架構(gòu)。V4不再?gòu)?qiáng)制要求與26位地址空間兼容,而且還明確了哪些指令會(huì)引起未定義指令異常。V5版架構(gòu)是在V4版基礎(chǔ)上增加了一些新的指令,ARM10和Xscale都采用該版架構(gòu)。這些新增命令有帶有鏈接和交換的轉(zhuǎn)移BLX指令;計(jì)數(shù)前導(dǎo)零CLZ指令;BRK中斷指令;增加了數(shù)字信號(hào)處理指令(V5TE版);為協(xié)處理器增加更多可選擇的指令。V6版架構(gòu)于2001年正式發(fā)布,首先被應(yīng)用在ARM11處理器。V6版架構(gòu)在降低耗電量的同時(shí),還強(qiáng)化了圖形處理性能。它還引進(jìn)了包括單指令多數(shù)據(jù)(SIMD) 運(yùn)算在內(nèi)的一系列新功能。通過(guò)追加有效進(jìn)行多媒體處理的SIMD(Single Instruction,Multiple Data,單指令多數(shù)據(jù))功能,將語(yǔ)音及圖像的處理功能提高到了原型機(jī)的4倍。此外,還引進(jìn)了作為ARMv6體系結(jié)構(gòu)的變體的Thumb-2和TrustZone技術(shù)。全新的ARMv7架構(gòu)是在ARMv6架構(gòu)的基礎(chǔ)上誕生的。ARMv7架構(gòu)采用了Thumb-2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的基礎(chǔ)上發(fā)展出來(lái)的,并且保持了對(duì)已存ARM解決方案的完整的代碼兼容性。此外,ARMv7還支持改良的運(yùn)行環(huán)境,來(lái)迎合不斷增加的JIT和DAC技術(shù)的使用。ARMv7架構(gòu)還包括 NEON? 技術(shù)擴(kuò)展,可將DSP和媒體處理吞吐量提升高達(dá)400%,并提供改進(jìn)的浮點(diǎn)支持以滿足下一代3D圖形和游戲以及傳統(tǒng)嵌入式控制應(yīng)用的需要。 ARMv8是ARM公司的首款支持64位指令集的處理器架構(gòu)。由于ARM處理器的授權(quán)內(nèi)核被廣泛用于手機(jī)等諸多電子產(chǎn)品,故ARMv8架構(gòu)作為下一代處理器的核心技術(shù)而受到普遍關(guān)注。ARMv8是在32位ARM架構(gòu)上進(jìn)行開(kāi)發(fā)的,主要被用于對(duì)擴(kuò)展虛擬地址和64位數(shù)據(jù)處理技術(shù)有更高要求的產(chǎn)品領(lǐng)域。ARMv8是近20年來(lái),ARM架構(gòu)變動(dòng)最大的一次。它引入的Execution State、Exception Level、Security State等新特性,已經(jīng)和我們對(duì)舊的ARM架構(gòu)的認(rèn)知。 ARM授權(quán)方式 ARM授權(quán)方式主要有三種:架構(gòu)層級(jí)授權(quán)、內(nèi)核層級(jí)授權(quán)、使用層級(jí)授權(quán)。譬如,蘋(píng)果A6處理器使用的是ARMv7-A指令集,由于得到了ARM公司架構(gòu)層級(jí)授權(quán)所以蘋(píng)果公司可以對(duì)ARM架構(gòu)進(jìn)行大幅度改造,甚至可以對(duì)ARM指令集進(jìn)行擴(kuò)展或縮減,從而出現(xiàn)了蘋(píng)果公司自己的“Swift架構(gòu)”。 而ST公司的STM32系列單片機(jī)是以ARM Cortex-M3內(nèi)核為基礎(chǔ)然后在加上自己的外設(shè),最后形成了自己的MCU。TI公司并沒(méi)有權(quán)限去對(duì)Cortex-M3內(nèi)核進(jìn)行改造,所以TI公司獲得的應(yīng)該是內(nèi)核層級(jí)授權(quán)。以下是ARM授權(quán)使用方: CortexA系列 | 產(chǎn)品系列 | 授權(quán)使用方 | Cortex-A72處理器 | 聯(lián)發(fā)科、海思半導(dǎo)體、瑞芯微、MTK、Qualcomm | Cortex-A57處理器 | AMD、Broadcom、Calxeda、HiSilicon、STMicroelectronics、Samsung | Cortex-A53處理器 | AMD、Broadcom、Samsung | Cortex-A17處理器 | 聯(lián)發(fā)科、瑞昱、瑞芯微 | Cortex-A15處理器 | TexasInstruments、ST-Ericsson、NVIDIA、SamsungElectronics | Cortex-A9處理器 | Broadcom Corporation、Freescale、NEC Electronics、NVIDIA、STMicroelectronics、Texas Instruments、Toshiba、Mindspeed Technologies、ZiiLABS、Open-Silicon、eSilicon | Cortex-A8處理器 | Broadcom Corporation、Freescale、Panasonic、Samsung Electronics、STMicroelectronics、Texas Instruments、PMC-Sierra、ZiiLABS | Cortex-A7處理器 | Broadcom、Freescale、Fujitsu、HiSilicon、LGE、Samsung、STEricsson、Texas Instruments | Cortex-A5處理器 | Cambridge Silicon Radio、Open-Silicon、eSilicon | Cortex-R系列 | 產(chǎn)品系列 | 授權(quán)使用方 | Cortex-R7處理器 | Broadcom | Cortex-R5處理器 | Texas Instruments、Spansion、ScaleoChip | Cortex-R4處理器 | Broadcom Corporation、Texas Instruments、Toshiba、Infineon、Open-Silicon、eSilicon | Cortex-M系列 | 產(chǎn)品系列 | 授權(quán)使用方 | Cortex-M7 處理器 | Spansion、Freescale、STMicroelectronics、NXP、Atmel | Cortex-M4處理器 | NXP、STMicroelectronics、Texas Instruments、Freescale、Open-Silicon、eSilicon | Cortex-M3處理器 | Accent Srl、Actel Corporation、Broadcom Corporation、Cypress 、Ember、Energy Micro、Fujitsu、NXP、Fuzhou Rockchip Electronics CO. Ltd.、STMicroelectronics、Texas Instruments、Toshiba、Zilog、Open-Silicon、eSilicon | Cortex-M1處理器 | Actel | Cortex-M0+處理器 | Freescale、NXP | Cortex-M0處理器 | Austriamicrosystems、ChungbukTechnopark、NXP、TriadSemiconductor、Melfas、Open-Silicon、eSilicon | SecurCore處理器 | 產(chǎn)品系列 | 授權(quán)使用方 | SC000 | SamsungElectronics、NXP、Atmel、STMicroelectronics | SC100 | SC300 | Classic處理器 | 產(chǎn)品系列 | 授權(quán)使用方 | ARM11系列 | Accent、BroadcomCorporation、Ceroma、eSiliconCorporation、Freescale、LSILogic、Matsushita、Mindspeed、NECElectronics、Qualcomm、Renesas、STMicroelectronics、TexasInstruments、Toshiba、Comsys、LSILogic、NECElectronics、BroadcomCorporation、InfineonTechnologiesAG、Matsushita、NECElectronics、NXP、Renesas、Sunplus、TexasInstruments、Toshiba、eSilicon、IntelCorporation、NECElectronics、Netronome、NVIDIA、PMCSierra、Renesas、Sarnoff、eSilicon | ARM9系列 | STMicroelectronics、Atmel、Avago、AnalogDevicesInc、Broadcom、Freescale、NXP、MoschipSemiconductor、Qualcomm、Samsung、Sony、TexasInStruments、Toshiba、Panasonic、eSilicon、Altera、Renesas等 | ARM7系列 | Intel、Infineon、Fujitsu、Atmel、Avago、AnalogDevicesInc、Broadcom、Freescale、NXP、Toshiba、Panasonic、eSilicon、Altera、Panasonic等 |
基于ARM處理器/微控器的產(chǎn)品主要有: Fresscale | ARM?處理器/微控制器/控制器 | 產(chǎn)品系列 | Kinetis微控制器 | Kinetis K系列、Kinetis E系列、Kinetis EA系列、Kinetis L系列、Kinetis M系列、Kinetis W系列、Kinetis V系列、KinetisMiniMCU | i.MX應(yīng)用處理器 | i.MX7系列、i.MX6系列、i.MX53系列、i.MX51系列、i.MX50系列、i.MX35系列、i.MX31系列、i.MX28系列、i.MX27系列、i.MX25系列、i.MX23系列 | 32位基于ARM?的MCU | MAC57Dxxx系列 | S32處理器和微控制器 | S32V200系列 | VFxxx控制器 | VFxxxF系列、VFxxxR系列 | QorIQ ARM處理器 | LS10系列、 LS2080A | TexasInstruments | ARM?處理器 | 產(chǎn)品系列 | 基于ARM-Cortex-R4F處理器 | RM44L**系列、RM46L**系列、RM48L**系列、TMS570LS**系列 | 基于ARM-Cortex-R5F處理器 | RM57L**系列、TMS570LC**系列 | 基于ARM-Cortex-M3處理器 | TMS470**系列 | 基于ARM-Cortex-M4F處理器 | MSP432**系列、TM4C12**系列 | Qualcomm | ARM?處理器 | 產(chǎn)品系列 | ARM?Cortex?A57 | 驍龍800系列處理器 | ARM? Cortex? A72處理器 | 驍龍600系列處理器 | ARM? Cortex? A53 處理器 | 驍龍400系列處理器 | ARM? Cortex? A5處理器 | 驍龍S4Play系列 | NXP | ARM?處理器/微控制器/控制器 | 產(chǎn)品系列 | Cortex-M0+/M0 | LPC800系列、LPC1100系列、LPC1200系列 | Cortex-M3 | LPC1300系列、LPC1500系列、LPC1700系列、LPC1800系列 | Cortex-M4/M4F | LPC408*系列、LPC407*系列 | Cortex-M0 & M4F | LPC4300系列 | Cortex-M0+ & M4F | LPC54100系列 | ARM7 | LPC2000系列 | ARM9 | LPC2900系列、LPC3000系列 | STMicroelectronics | ARM?微控制器 | 產(chǎn)品系列 | 32位ARM Cortex MCU | STM32F0系列、STM32F1系列、STM32F2系列、 STM32F3系列、STM32F4系列、STM32F7系列、 STM32L0系列、STM32L1系列、STM32L4系列、 STM32T系列、STM32W系列 | Samsung | ARM處理器 | 產(chǎn)品系列 | ARM7 | S3C44B0 | ARM9 | S3C2410、S3C2416、S3C2440 | ARM11 | S3C6410 | Toshiba | 微處理器 | 產(chǎn)品系列 | 基于ARM內(nèi)核的MCU | TX00系列、TX03系列、TX04系列、TX09系列 | Atmel | ARM?處理器/微控制器 | 產(chǎn)品系列 | ARMCortex-A5處理器 | SAMA5系列 | ARMCortex-M0+處理器 | SAMC20系列、ATSAMC21系列 | ARMCortex-M0+微控制器 | SAM D09系列、SAM D21系列、SAM D20系列、SAM D11系列、SAM D10系列、SAM DA1系列 | ARMCortex-M7微控制器 | SAM E70系列 | ARMCortex-M4微控制器 | SAMG 51系列、SAMG 53系列、SAMG 54系列、SAMG 55系列 | ARMCortex-M0+超低功耗微控制器 | SAML21系列、SAML22系列 | ARMCortex-M7RISC處理器 | SAMS70系列 | ARMCortex-M7微控制器 | SAMV70系列、SAMV71系列 | ARMCortex-M3微控制器 | SAM3N系列、SAM3S 系列、SAM3U系列、 SAM3A系列、SAM3X 系列 | ARMCortex-M4處理器 | SAM4E系列、SAM4N系列、SAM4S系列 | ARMCortex-M4 閃存微控制器 | SAM 4LS系列、SAM 4LC系列 | ARM7閃存微控制器 | SAM7S/SE系列、SAM7X/XC系列 | ARM9微控制器 | SAM9XE系列 | ARM9微處理器 | SAM9N/CN系列、SAM9R 系列、SAM9X 、SAM9M系列 | Spansion | 32位ARM內(nèi)核MCU | 產(chǎn)品系列 | ARM? Cortex?-M4F | FM4系列 | ARM? Cortex?-M3 | FM3系列 | ARM? Cortex?-M0+ | FM0+系列 | ARM? Cortex?-R5 | Traveo系列 | ARM? Cortex?-R4 | FCR4系列 | AnalogDevicesInc | ARM處理器 | 產(chǎn)品系列 | ARM內(nèi)核產(chǎn)品 | ADuC7***系列 | ARM Cortex-M3處理器 | ADUCM***系列 | Broadcom | ARM?處理器/微控制器 | 產(chǎn)品系列 | 基于ARM Cortex-A9處理器 | StrataGX BCM58525系列 | infineon | ARM微控制器 | 產(chǎn)品系列 | ARM? Cortex?-M0 | XMC1000系列 | ARM? Cortex?-M4 | XMC4000系列 |
|