ARM家族

一、ARM发展史

  • ARM的前身为艾康电脑(Acorn),于1978年,于英国剑桥创立。
  • 1985年开发出全球第一款商用RISC处理器,即ARM1。
  • 1990年艾康电脑财务危机,受苹果和VLSI的投资,分割出独立子公司Advanced RISC Machines (ARM) ,ARM公司正式成立面世。
  • 1991年,ARM推出第一款嵌入式RISC处理器,即ARM6。
  • 1993年,发布ARM7。
  • 1997年,发布ARM9TDMI。
  • 1999年,发布ARM9E。
  • 2001年,发布ARMv6架构。
  • 2002年,发布ARM11微架构。
  • 2004年,发布ARMv7架构的Cortex系列处理器,同时推出Cortex-M3。
  • 2005年,发布Cortex-A8处理器。
  • 2007年,发布Cortex-M1和Cortex-A9。
  • 2009年,实现Cortex-A9、发布Cortex-M0。
  • 2011年,推出Cortex-A7,ARMv8发布。
  • 2012年,开始64位处理器进程。

二、ARM体系结构

1.ARM是RISC架构

  • 常用ARM汇编指令只有二三十条
  • ARM是低功耗CPU
  • ARM的架构非常适合单片机、嵌入式,尤其是物联网领域;而服务器等高性能领域目前主导还是Intel

2.ARM是统一编址的

  • 大部分ARM(M3 M4 M7 M0 ARM9 ARM11 A8 A9等)都是32位架构
  • 32位ARM CPU支持的内存少于4G,通过CPU地址总线来访问
  • SoC中的各种内部外设通过各自的SFR编程访问,这些SFR的访问方式类似于访问普通内存,这叫IO与内存统一编址。

3.ARM是哈佛结构的

  • 常见ARM(除ARM7外)都是哈佛结构的
  • 哈佛结构保证了ARM CPU运行的稳定性和安全性,因此ARM适用于嵌入式领域
  • 哈佛结构也决定了ARM裸机程序(使用实地址即物理地址)的链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序;对于OS之上的应用(工作在虚拟地址之中)则不需考虑这么多

三、ARM处理器列表

ARM架构版本号和内核版本号是由ARM确定的,而芯片型号是由半导体公司确定的。

1.架构进化史

ARM家族_第1张图片

2.处理器内核

家族 架构 内核 特色 缓存 (I/D)/MMU 常规 MIPS 于 MHz 应用
ARM1 ARMv1 ARM1
ARM2 ARMv2 ARM2 Architecture 2 加入了MUL(乘法)指令 4 MIPS @ 8MHz Acorn Archimedes,Chessmachine
ARMv2a ARM250 Integrated MEMC (MMU),图像与IO处理器。Architecture 2a 加入了SWP和SWPB(置换)指令。 无,MEMC1a 7 MIPS @ 12MHz Acorn Archimedes
ARM3 ARMv2a ARM2a 首次在ARM架构上使用处理器缓存 均为4K 12 MIPS @ 25MHz Acorn Archimedes
ARM6 ARMv3 ARM610 v3 架构首创支援定址32位元的内存(针对26位元) 均为4K 28 MIPS @ 33MHz Acorn Risc PC 600,Apple Newton
ARM7 ARMv3
ARM7TDMI ARMv4T ARM7TDMI(-S) 三级流水线 15 MIPS @ 16.8 MHz Game Boy Advance,Nintendo DS,iPod
ARM710T 均为8KB, MMU 36 MIPS @ 40 MHz Acorn Risc PC 700,Psion 5 series,Apple eMate 300
ARM720T 均为8KB, MMU 60 MIPS @ 59.8 MHz Zipit
ARM740T MPU
ARMv5TEJ ARM7EJ-S Jazelle DBX
StrongARM ARMv4
ARM8 ARMv4
ARM9TDMI ARMv4T ARM9TDMI 五级流水线
ARM920T 16KB/16KB, MMU 200 MIPS @ 180 MHz Armadillo,GP32,GP2X(第一颗内核), Tapwave Zodiac(Motorola i. MX1)
ARM922T 8KB/8KB, MMU
ARM940T 4KB/4KB, MPU GP2X(第二颗内核)
ARM9E ARMv5TE ARM946E-S 可变动,tightly coupled memories, MPU Nintendo DS,Nokia N-Gage Conexant 802.11 chips
ARM966E-S 无缓存,TCMs ST Micro STR91xF,包含Ethernet [1]
ARM968E-S 无缓存,TCMs
ARMv5TEJ ARM926EJ-S Jazelle DBX 可变动,TCMs, MMU 220 MIPS @ 200 MHz 移动电话:Sony Ericsson(K, W系列),明基西门子(x65 系列和新版的)
ARMv5TE ARM996HS 无振荡器处理器 无缓存,TCMs, MPU
ARM10E ARMv5TE ARM1020E (VFP),六级流水线 32KB/32KB, MMU
ARM1022E (VFP) 16KB/16KB, MMU
ARMv5TEJ ARM1026EJ-S Jazelle DBX 可变动,MMU or MPU
XScale ARMv5TE 80200/IOP310/IOP315 I/O处理器
80219 400/600MHz Thecus N2100
IOP321 600 BogoMips @ 600 MHz Iyonix
IOP33x
IOP34x 1-2核,RAID加速器 32K/32K L1, 512K L2, MMU
PXA210/PXA250 应用处理器,七级流水线 Zaurus SL-5600
PXA255 32KB/32KB, MMU 400 BogoMips @ 400 MHz Gumstix,Palm Tungsten E2
PXA26x 可达 400 MHz Tungsten T3
PXA27x 800 MIPS @ 624 MHz HTC Universal、Zaurus SL-C1000、3000、3100、3200、Dell Axim x30、x50和 x51 系列
PXA800(E)F
Monahans 1000 MIPS @ 1.25 GHz Mavell PXA300/PXA310/PXA320, Max frequency : PXA300@624Mhz, PXA310/PXA320@806Mhz
PXA900 Blackberry 8700, Blackberry Pearl (8100)
IXC1100 Control Plane Processor
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x NSLU2
IXP460/IXP465
ARM11 ARMv6 ARM1136J(F)-S SIMD, Jazelle DBX, (VFP),八级流水线 可变动,MMU @ 532-665MHz (i.MX31 SoC) Nokia N93,Zune,Nokia N800
ARMv6T2 ARM1156T2(F)-S SIMD, Thumb-2, (VFP),九级流水线 可变动,MPU
ARMv6KZ ARM1176JZ(F)-S SIMD, Jazelle DBX, (VFP) 可变动,MMU+TrustZone
ARMv6K ARM11 MPCore 1-4核对称多处理器,SIMD, Jazelle DBX, (VFP) 可变动,MMU
Cortex-A (32 bit) ARMv7-A Cortex-A7 1.75 DMIPS/MHz 1 GHz到1.2GHz 全志a31、MediaTek MT6589,MT6572
Cortex-A8 Application profile, VFP, NEON, Jazelle RCT, Thumb-2, 13-stage pipeline 可变动 (L1+L2), MMU+TrustZone 2.0 DMIPS/MHz 从600 MHz到超过1 GHz Texas Instruments OMAP3、Apple A4
Cortex-A9 2.50 DMIPS @ 1GHz Apple A5、Apple A5X、MediaTek MT6577,MT6575、Rockchip RK3088,RK3188, VIA Elite-E1000
Cortex-A12 大约3.00 DMIPS @ 1.4GHz 28nm 预估等同Apple A6、Apple A6X水平。
Cortex-A15 Thumb-2 TrustZone® NEON DSP & SVFPv4 从3.50 DMIPS到超过4.0 DMIPS @ 从1.4MHz到超过2.5GHz Tegra 4 Exynos5250
Cortex-A9 MPCore
Cortex-R ARMv7-R Cortex-R4(F) Embedded profile, (FPU) 可变动缓存,MMU可选配 600 DMIPS Broadcom is a user
Cortex-M ARMv7-M Cortex-M3 Microcontroller profile 无缓存,(MPU) 120 DMIPS @ 100MHz Luminary Micro[2] 微控制器家族
ARMv6-M Cortex-M0
Cortex-M1
ARMv7-ME Cortex-M4 Optional 8 region MPU with sub regions and background region 1.25 DMIPS/MHz
家族 架构 内核 特色 缓存 (I/D)/MMU 常规 MIPS 于 MHz 应用

注:
MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。
DMIPS(Dhrystone Million Instructions Per Second):表示了在Dhrystone这样一种测试方法下的MIPS,Dhrystone是一种整数运算测试程序。
MMU(Memory Management Unit):内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权,多用户多进程操作系统。
MPU(Memory Protection Unit):内存保护单元,MPU中一个域就是一些属性值及其对应的一片内存。这些属性包括:起始地址、长度、读写权限以及缓存等。
FPU(Float Point Unit):浮点运算单元,FPU是专用于浮点运算的处理器。
流水线:流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。流水线是Intel首次在486芯片中开始使用的。流水线的工作方式就像工业生产上的装配流水线。在CPU中由5—6个不同功能的电路单元组成一条指令处理流水线,然后将一条X86指令分成5—6步后再由这些电路单元分别执行,这样就能实现在一个CPU时钟周期完成一条指令,因此提高CPU的运算速度。经典奔腾每条整数流水线都分为四级流水,即取指令、译码、执行、写回结果,浮点流水又分为八级流水。

3.ARM芯片

ARM芯片
ARM架构·ARM处理器内核列表
应用处理器(32-bit) Cortex-A5 炬力 ATM702x 晶晨 M805/S805 Atmel SAMA5D3 InfoTM iMAPx820, iMAPx15 高通 骁龙 Snapdragon 200 Telechips TCC892x
Cortex-A7 全志 A2x, A3x, A83T, H3, H8 博通 VideoCore BCM2836, BCM23550 飞思卡尔 QorIQ LS10xx 联芯 LC1813, LC1913 Marvell Armada PXA1920 联发科 MT65xx 高通骁龙 Snapdragon 200, 高通骁龙 Snapdragon 400
Cortex-A8 全志 A1x 苹果 A4 飞思卡尔 i.MX5x 瑞芯微电子 RK291x 三星 Exynos 3110, S5PC110, S5PV210 Texas Instruments OMAP 3 ZiiLABS ZMS-08
Cortex-A9 炬力 ATM702x, ATM703x Altera Cyclone V, Arria V/10 晶晨 AML8726, MX, M6x, M801, M802/S802, S812, T866 苹果 A5, A5X 博通 VideoCore BCM21xxx, BCM28xxx 飞思卡尔 i.MX6x 海思 K3V2 InfoTM iMAPx912 联芯科技 LC1810, LC1811 联发科 MT65xx 英伟达 Tegra, 2, 3, 4i 新岸线 NuSmart 2816M, NS115, NS115M 瑞萨科技 EMMA EV2, R-Car H1, RZ/A 瑞芯微电子 RK292x, RK30xx, RK31xx 三星 Exynos 4 爱立信 NovaThor Telechips TCC8803 德州仪器 OMAP 4 VIA 威信科电 WonderMedia WM88x0, 89x0 Xilinx Zynq-7000 ZiiLABS ZMS-20, ZMS-40
Cortex-A15 海思 K3V3 联发科 MT6599 英伟达 Tegra 4 三星 Exynos 5 德州仪器 OMAP 5 全志科技 A80 瑞萨科技 R-Car H2
Cortex-A17 联发科 MT6595 瑞芯微电子 RK3288
ARMv7-A兼容 苹果 A6, A6X 博通 Brahma-B15 Marvell P4J 高通 Snapdragon S1/S2/S3 (Scorpion) 高通 Snapdragon S4 Plus/S4 Pro (Krait) 高通 Snapdragon 600/800 (Krait 300/Krait 400)
应用处理器(64-bit) Cortex-A53 炬力 S900 全志 A64, H64 Altera Stratix 10 晶晨 S905 EZchip TILE-Mx100 Marvell Armada PXA1928, Mobile PXA1908/PXA1936 联发科 MT673x, MT675x, MT6795, MT8732, MT8752, Helio X10 高通 骁龙 410 瑞芯微电子 RK3368 Xilinx ZynqMP Mi Surge S1
Cortex-A57 AMD Opteron A1100 飞思卡尔 QorIQ LS20xx 英伟达 Tegra X1 高通 骁龙 808, 810 三星 Exynos 7
Cortex-A72 联发科 曦力 Helio X20 高通 骁龙 650, 652
ARMv8-兼容 苹果 A7, A8, A8X, A9, A9X, A10, A10X, A11 Applied Micro X-Gene 三星 Mongoose Cavium ThunderX CN87xx, CN88xx 英伟达 Tegra K1 (Project Denver) 高通 骁龙 820,821,835,845 (Kryo,Kryo 200)
实时微控制器 Cortex-R4F 德州仪器RM4, TMS570
Cortex-R5F Scaleo OLEA
微控制器 Cortex-M0 Energy Micro EFM32 Zero NXP LPC1100, LPC1200 意法半导体 STM32 F0
Cortex-M0+ 飞思卡尔 Kinetis L NXP LPC800
Cortex-M1 Actel FPGAs Altera FPGAs Xilinx FPGAs
Cortex-M3 Actel SmartFusion, SmartFusion 2 Atmel AT91SAM3 Cypress PSoC 5 Energy Micro EFM32 Tiny, Gecko, Leopard, Giant 富士通 FM3 NXP LPC1300, LPC1700, LPC1800 Silicon Labs Precision32 意法半导体 STM32 F1, F2, L1, W 德州仪器 F28, LM3, TMS470, OMAP 4 东芝 TX03
Cortex-M4 Atmel AT91SAM4 飞思卡尔 Kinetis K 德州仪器 OMAP 5
Cortex-M4F Energy Micro EFM32 Wonder 飞思卡尔 Kinetis K 英飞凌 XMC4000 NXP LPC4000, LPC4300 意法半导体 STM32 F3, F4 德州仪器 LM4F

参考资料:

  • 朱老师物联网大讲堂
  • https://zh.wikipedia.org/wiki/ARM處理器內核列表

你可能感兴趣的:(Linux嵌入式开发)