??總是有人在說母债,我是搞ARM的午磁,到底是說的ARM架構(gòu)還是ARM系列尝抖,這點要搞清楚!
??在Dock看來迅皇,ARM有兩個概念昧辽,ARM架構(gòu)、ARM系列,不同的架構(gòu)登颓,不同的系列在性能却妨、功耗益愈、尤其是價格方面有著很大的不同捻撑。
1. ARM公司
??ARM
(Advanced RISC Machine)公司作為半導(dǎo)體行業(yè)最為著名的公司其掂,你不能不知道。詳情看度娘ARM扁耐。
下面我們重點說架構(gòu)
和系列
兩個概念暇检。
2. ARM架構(gòu)
??ARM架構(gòu)指的就是這顆芯片內(nèi)核所用的指令集的版本。C++語言還有C++10
婉称、C++11
版本之說块仆,更何況內(nèi)核呢?
??最為顯著的就是總線寬度王暗。"Thumb指令集"為16位悔据,"ARM指令集"為32位,以及"ISA指令集"為64位。這也就從根本上區(qū)分了每一個ARM內(nèi)核有所不同俗壹。當(dāng)然ARM還有很多很多不同的拓展功能科汗,如Java加速器-Jazelle
、TrustZone技術(shù)
绷雏、SIMD
等头滔,這些不同的組合就組成了不同的ARM架構(gòu)。
2.1 ARMv4 ARMv5 ARMv6 ARMv7
??這是市面上最老的ARM架構(gòu)版本了涎显。只支持32位地址空間坤检,ARM7系列的一些芯片用到了這個指令集。
??ARMv5相較于v4架構(gòu)增加了DSP指令優(yōu)化期吓。
??ARMv6 在存儲系統(tǒng)早歇、異常處理等方面做了很多改進(jìn),最為重要的是增加了對多媒體處理的支持讨勤。
??ARMv7增加了NEON GPU多媒體處理支持箭跳,將DSP和媒體處理能力提高了近四倍,并且支持改良的浮點運算潭千。滿足下一代3D圖形應(yīng)用的需求衅码,也就是從v7開始,ARMv7架構(gòu)的處理器芯片開始應(yīng)用于智能終端設(shè)備脊岳。
2.2 ARMv8
??2011年11月,ARM公司發(fā)布了新一代處理器架構(gòu)ARMv8的部分技術(shù)細(xì)節(jié)。這是ARM公司的首款支持64位指令集的處理器架構(gòu)割捅。但其支持AArch32 AArch64兩套指令集奶躯,為的就是向前兼容32位的應(yīng)用。
2.3 拓展
??有時候我們又能看到ARMv5TEJ
等詞匯亿驾,這又是什么意思嘹黔,后面的每一個字母代表一種拓展功能。如 T-Thumb指令集莫瞬、E-增強型DSP指令 J-Java加速器儡蔓。
3. ARM系列
??在相同的指令集下,搭配不同的部件就可以組成不同的功能的處理器疼邀。比如有無內(nèi)存管理喂江,有無調(diào)試功能等。
3.1 ARM7-11
??ARM7 - ARM11是比較老的一些處理器器了旁振。其主要的分別大致如下:
- ARM7是低功耗的32位處理器获询,主要特點是沒有MMU(內(nèi)存管理),如果有人給你說他用ARM7跑系統(tǒng)拐袜,你就可以
呵呵
了吉嚣。 - 相較于ARM7,增加了MMU和Cache,指令集執(zhí)行效率相比于ARM7有很大提高,最高可達(dá)300MIPS蹬铺。
- ARM11,基于ARMv6指令集架構(gòu)尝哆,在實時性和浮點處理方面有很大提高。
3.2 ARM-Cortex
??在ARM11以后甜攀,ARM就不再以數(shù)字進(jìn)行ARM處理器系列進(jìn)行區(qū)分秋泄,而是使用Cortex
進(jìn)行命名。主要區(qū)分為一下三個系列:
- Cortex-A 和 Cortex-A50 系列 - 面向開放式操作系統(tǒng)的高性能處理器赴邻。
- Cortex-R 系列- 面向?qū)崟r應(yīng)用的卓越性能印衔。
- Cortex-M 系列 - 面向具有確定性的微控制器應(yīng)用的成本功耗敏感型解決方案。
??ARM Cortex-A 內(nèi)核基于ARMv7-A架構(gòu)姥敛,基本上都可以支持ARM奸焙、Thumb-2、Thumb指令集彤敛、Java加速擴展的Jazelle技術(shù)与帆、ThustZone的安全擴展、針對浮點FPU的VFP硬件擴展墨榄、DSP & SIMD 擴展玄糟、并行多數(shù)據(jù)SIMD的NEON多媒體處理器擴展、主流的嵌入式OS(Linux袄秩、Android阵翎、Windows Mobile逢并、Windows Phone、Symbian)郭卫、以及支持分支預(yù)測branch prediction砍聊。但各處理器在VFP/NEON的類型、半精度浮點(16-bit half precision floating-point)的支持贰军、多核MPCore玻蝌、流水線pipeline、單MHz處理性能词疼、L1/L2 cache控制器俯树、亂序執(zhí)行、指令dual-issue并發(fā)等方面有略有不同贰盗。
??Cortex-R系列的內(nèi)核接觸不多许饿,主要用于實時控制領(lǐng)域。我所知道的在Xilinx的MPSOC芯片中就使用了兩顆R-5內(nèi)核作為對A-9內(nèi)核的實時增強童太。
??Cortex-M處理器家族更多的集中在低性能端米辐,但是這些處理器相比于許多微控制器使用的傳統(tǒng)處理器性能仍然很強大。例如书释,Cortex-M4和Cortex-M7處理器應(yīng)用在許多高性能的微控制器產(chǎn)品中翘贮,最大的時鐘頻率可以達(dá)到400Mhz。如我們最熟悉的Stm32就是基于Cortex-M系列處理器爆惧。