一、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架构pc ARM架构的CPU品牌_缓存

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


参考资料: