ARM架构

精簡指令集處理器架構家族

ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。由于节能的特点,其在其他领域上也有很多作为。ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择[3]安谋控股(ARM Holdings)开发此架构并授权其他公司使用,以供他们实现ARM的某一个架构,开发自主的系统单片机和系统模块(system-on-module,SoC)。

ARM架构
ARM标志
推出年份1985年,​39年前​(1985
设计公司ARM Holdings
是否开放架构?专有
体系结构类型寄存器-寄存器
字长/寄存器资料宽度32位64位
指令集架构设计策略RISC
分支预测结构条件代码、比较和分支
64/32位架构
推出年份2011年
最新架构版本ARMv9.0-A、ARMv9.1-A、ARMv9.2-A、ARMv9.3-A、ARMv9.4-A
字节序可配置大小端序(默认小端序)
指令编码长度AArch64/A64、AArch32/A32:32位
T32(Thumb-2):16或32位
兼容ARMv7用户空间[1]
扩展指令集Thumb-2NEONJazelle、VFPv4-D16、VFPv4
通用寄存器31个64位整数寄存器[1]
浮点寄存器32个128位寄存器[1],用于32位和64位标量浮点数SIMD浮点数或整数;或密码数值
32位架构(Cortex)
最新架构版本ARMv8-R、ARMv8-M、ARMv7-A、ARMv7-R、ARMv7E-M、ARMv7-M、ARMv6-M
字节序可配置大小端序(默认小端序)
但Cortex-M不能在指令运行时调整
指令编码长度32位
Thumb-2:16或32位
扩展指令集Thumb-2、NEON、Jazelle、DSP、Saturated、FPv4-SP、FPv5
通用寄存器15个32位整数寄存器
R15是程序计数器(在较老的架构设计中为26位寻址)
R14作为链接寄存器(link register)
浮点寄存器最多32个64位寄存器[2],SIMD/标准浮点数(可选项)
32位架构(旧有架构)
最新架构版本ARMv6、ARMv5、ARMv4T、ARMv3、ARMv2
字节序ARMv3开始为可配置大小端序(默认小端序)
指令编码长度32位
Thumb:16或32位
扩展指令集Thumb、Jazelle
通用寄存器15个32位整数寄存器
R15是程序计数器(在较老的架构设计中为26位寻址)
R14作为链接寄存器(link register)
基于ARM微处理器的片上系统(system on a chip, SoC)的框图

ARM架构版本从ARMv3到ARMv7支持32位空间和32位算数运算,大部分架构的指令为定长32位(Thumb)指令集支持变长的指令集,提供对32位和16位指令集的支持),而2011年发布的ARMv8-A架构添加了对64位空间和64位算术运算的支持,同时也更新了32位定长指令集[4]

至2009年为止,ARM架构处理器占市面上所有32位嵌入式RISC处理器90%的比例[5],使它成为占全世界最多数的32位架构。ARM处理器可以在很多消费性电子产品上看到,从便携式装置(PDA行动电话、多媒体播放器、掌上型电子游戏和电脑)到电脑外设(硬盘、桌面型路由器),甚至在导弹的弹载电脑等军用设施中都有它的存在。在此还有一些基于ARM设计的衍伸产品,重要产品还包括MarvellXScale架构和德州仪器OMAP系列。

2011年,ARM的客户报告79亿ARM处理器出货量,占有95%的智能电话、90%的硬盘驱动器、40%的数码电视机上盒、15%的微控制器、和20%的移动电脑[6]。在2012年,微软与ARM科技生产新的Surface平板电脑,AMD宣布它将于2014年开始生产基于ARM核心的64位伺服器晶片,[7]2016年,日本富士通公司宣布“京”超级计算机的后继机种将采用ARM架构[3],该超级计算机于2019年5月定名为“富岳[8],2020年6月于TOP500夺冠[9][10][11]

2016年7月18日,日本软银集团斥资3.3兆日元(约合311亿美元)收购了安谋控股[12]

特色和应用

自2005年,每年超过一亿的手机销售约98%使用了ARM处理器[13]。截至2009年,占大约90%的嵌入式32位RISC处理器[14]和ARM处理器被广泛使用在消费性电子产品,包括个人数码助理(PDA)、平板电脑行动电话、数码媒体和音乐播放器、手持式游戏游戏机计算器和电脑外围装置(如硬盘驱动器路由器)。

除了消费电子,ARM架构处理器也开始用于以往x86x64处理器独大的个人电脑伺服器。而在2020年成为TOP500排名第一的“富岳”为首部夺冠的ARM架构超级计算机

历史

 
一颗主要用于路由器科胜讯公司ARM处理器
 
用于松下多媒体播放机的晶片

ARM的设计是艾康电脑公司于1983年开始的开发项目。

这个团队由Roger WilsonSteve Furber带领,着手开发一种类似高级6502架构的处理器。Acorn电脑有一大堆建构在6502处理器上的电脑,因此能设计出一颗类似的晶片即意味着对公司有很大的优势。

Acorn RISC Machine:ARM2

 
用在BBC Micro上的ARM1 second processor

团队在1985年时开发出样本“ARM1”,而首颗真正能量产的“ARM2”于次年投产。ARM2具有32位的数据总线、26位的寻址空间,并提供64 Mbyte的寻址范围与16个32-bit的寄存器。寄存器中有一个作为程序计数器,其前面6位和后面2位用来保存处理器状态标记。ARM2可能是全世界最简单实用的32位微处理器,仅容纳了30,000个晶体管(六年后的摩托罗拉68000包含了70,000颗)。之所以精简的原因在于它不含微码(这大概占了68000的晶体管数约1/4至1/3);而且与当时大多数的处理器相同,它没有包含任何的高速缓存。这个精简的特色使它只需消耗很少的电能,却能发挥比Intel 80286更好的性能[15]。后继的处理器“ARM3”则备有4KB的高速缓存,使它能发挥更佳的性能。

Apple、DEC、Intel、Marvell:ARM6、StrongARM、XScale

在1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心。由于这项目非常重要,艾康电脑甚至于1990年将设计团队另组成一间名为安谋国际科技(Advanced RISC Machines Ltd.)的新公司。也基于这原因,使得ARM有时候反而称作Advanced RISC Machine而不是Acorn RISC Machine。由于其母公司ARM Holdings plc于1998年在伦敦证券交易所NASDAQ挂牌上市[16],使得Advanced RISC Machines成了ARM Ltd旗下拥有的产品[17]

这个项目到后来进入“ARM6”,首版的样品在1991年发布,然后苹果电脑使用ARM6架构的ARM 610来当作他们Apple Newton产品的处理器。在1994年,艾康电脑使用ARM 610做为他们个人电脑产品的处理器。

在这些变革之后,内核部分却大多维持一样的大小——ARM2有30,000颗晶体管,但ARM6却也只增长到35,000颗。主要概念是以ODM的方式,使ARM核心能搭配一些选配的零件而制成一颗完整的CPU,而且可在现有的晶圆厂里制作并以低成本的方式达到很大的性能。

ARM的经营模式在于出售其IP核,授权厂家依照设计制作出建构于此核的微控制器中央处理器。最成功的实现案例属ARM7TDMI,几乎卖出了数亿套内建微控制器的装置。

Digital曾购买这个架构的产权并研发出“StrongARM”。在233 MHz的频率下,这颗CPU只消耗1瓦特的电能(后来的晶片消耗得更少)。这项设计后来为了和英特尔的控诉和解而技术移转,英特尔因而利用StrongARM架构补强他们老旧的i960产品。英特尔后来开发出他们自有的高性能架构产品XScale,之后卖给了迈威尔科技

2020年11月11日,苹果公司发布基于ARM晶片(Apple M1)的苹果台式电脑和手提电脑,2021年4月21日,苹果公司发布基于M1 CPU的24 吋Mac和新iPad Pro

内核种类

指令集架构 处理器家族
ARMv1 ARM1
ARMv2 ARM2ARM3
ARMv3 ARM6、ARM7
ARMv4 StrongARMARM7TDMIARM9TDMI
ARMv5 ARM7EJARM9EARM10EXScale
ARMv6 ARM11ARM Cortex-M
ARMv7 ARM Cortex-AARM Cortex-MARM Cortex-R
ARMv8 Cortex-A35、Cortex-A50系列[18]、Cortex-A70系列、Cortex-X1
ARMv9 Cortex-A510Cortex-A710Cortex-A715Cortex-X2Cortex-X3ARM Neoverse N2

由ARM提供了一个厂商汇总,是在其设计中实现ARM内核的众多厂商一个总结[19]

架构

从1995年开始,《ARM体系结构参考手册》是ARM文档的主要来源,提供了关于ARM处理器架构和指令集,区分接口,所有的ARM处理器的支持(如指令语义)的实现细节可能会有所不同。该体系结构随着时间的演变,并与Cortex系列的核心开始,存在三个“配置”的定义如下:

  • "应用"配置: Cortex-A 系列
  • "嵌入式"配置: Cortex-R 系列
  • "微处理器"配置: ARM Cortex-M 系列。

每个配置允许有其子集的架构。例如,用于ARMv6-M配置(所使用的Cortex M0 / M0+/ M1)的一个子集ARMv7-M架构(支持较少的指令)。

CPU模式

CPU ARM架构指定了以下的CPU模式。在任何时刻,CPU只可处于某一种模式,但可由于外部事件(中断)或编程方式进行模式切换。

用户模式
仅非特权模式。
系统模式
仅无需例外进入的特权模式。仅以执行明确写入CPSR的模式位的指令进入。
Supervisor (svc) 模式
在CPU被重置或者SWI指令被执行时进入的特权模式。
Abort 模式
预读取中断或数据中断异常发生时进入的特权模式。
未定义模式
未定义指令异常发生时进入的特权模式。
干预模式
处理器接受一条IRQ干预时进入的特权模式。
快速干预模式
处理器接受一条IRQ干预时进入的特权模式。
Hyp 模式
armv-7a为cortex-A15处理器提供硬件虚拟化引进的管理模式。

指令集

讲求精简又快速的设计方式,整体电路化却又不采用微码,就像早期使用在艾康微电脑的8位6502处理器。

ARM架构包含了以下精简指令集处理器的特性:

  • 加载-存储架构
  • 不支持地址不对齐存储器存取(ARMv6内核现已支持)
  • 大量的16 × 32-bit寄存器堆
  • 固定的32 bits操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线的负担。
  • 大多均为一个CPU周期执行。

为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:

  • 大部分指令可以条件式地执行,降低在分支时产生的负重,弥补早期晶片分支预测器的不足。
  • 算数指令只会在要求时更改条件编码(condition code)
  • 32-bit筒型位移器可用来执行大部分的算数指令和寻址计算而不会损失性能
  • 强大的索引寻址模式
  • 支持快速叶端函数调用的链寄存器英语Link register
  • 精简但快速的双优先级中断子系统,具有可切换的寄存器组

寄存器

寄存器 R0-R7 对于所有CPU模式都是相同的,它们不会被分块。

对于所有的特权CPU模式,除了系统CPU模式之外,R13和R14都是分块的。也就是说,每个因为一个异常(exception)而可以进入模式,有其自己的R13和R14。这些寄存器通常分别包含堆栈指针和函数调用的返回地址。

寄存器,对于所有CPU模式
usr sys svc abt und irq fiq
R0
R1
R2
R3
R4
R5
R6
R7
R8 R8_fiq
R9 R9_fiq
R10 R10_fiq
R11 R11_fiq
R12 R12_fiq
R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14_svc R14_abt R14_und R14_irq R14_fiq
R15
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

同名的名称:

  • R13 也被指为 SP(Stack Pointer)
  • R14 也被指为 LR(Link Register)
  • R15 也被指为 PC(Program Counter)

有条件运行

有个附加在 ARM 设计中好玩的东西[语调不似百科],就是在每个指令前头使用一个 4-bit 的 条件编码,表示该指令是否为有条件式地执行。

这大大的减低了在存储器存取指令时用到的编码位,换句话说,它避免了在小型叙述(如if)中做分支。以下为引用欧几里得最大公因数算法的标准示例:

C语言中,循环为:

int gcdint i, int j
{
    whilei != j
        ifi > j
            i -= j;
        else
            j -= i;
    return i;
}

在ARM汇编语言中,循环为:

loop: CMP    Ri, Rj       ;設定條件為"NE"(不等於) if(i != j)
                          ;"GT"(大於) if(i > j),
                          ;或"LT"(小於) if(i < j)
      SUBGT  Ri, Ri, Rj   ;若"GT"(大於), i = i-j;
      SUBLT  Rj, Rj, Ri   ;若"LT"(小於), j = j-i;
      BNE    loop         ;若"NE"(不等於),则继续循环

这避开了thenelse子句之间的分支。

其他特色

另一项指令集的特色是,能将位移(shift)和回转(rotate)等功能并成"资料处理"型的指令(算数、逻辑、和寄存器之间的搬移),因此举例来说,一个C语言的叙述

a += (j << 2);

在ARM之下,可简化成只需一个word和一个cycle即可完成的指令

ADD     Ra, Ra, Rj, LSL #2

这结果可让一般的ARM程序变得更加紧密,而不需经常使用存储器存取,流水线也可以更有效地使用。即使在ARM以一般认定为慢速的速度下执行,与更复杂的CPU设计相比它仍能执行得不错。

ARM处理器还有一些在其他RISC的架构所不常见到的特色,例如程序计数器-相对寻址(的确在ARM上程序计数器为16个寄存器的其中一个)以及前递加或后递加的寻址模式。

另外值得注意的是ARM处理器会随着时间不断地增加它的指令集。譬如某些早期的ARM处理器(比ARM7TDMI更早),可能并未具备指令可以读取2 Bytes的数量;因此严格来讲,对这些处理器产生代码时,就不可能处理如C语言物件中使用“volatile short”的资料类型。

流水线

ARM7和大多数较早的设计具备三阶段的流水线:提取指令、解码,并执行。较高性能的设计,如ARM9,则有更深阶段的流水线: Cortex-A8有13阶段的流水线。提高性能的额外方式,包含一颗较快的加法器,和更广的分支预测逻辑线路。例如,在ARM7DI核与ARM7DMI核之间的差异,是一种改进的乘法器(因此添加的“M”)。

辅助处理器

这个架构使用“辅助处理器”提供一种非侵入式的方法来延伸指令集,可通过软件下MCR、MRC、MRRC和MCRR等指令来对辅助处理器寻址。辅助处理器空间逻辑上通常分成16个辅助处理器,编号分别从0至15;而第15号辅助处理器是保留用作某些常用的控制功能,像是使用高速缓存和记忆管理单元运算(若包含于处理器时)。

  • 在ARM架构的机器中,周边装置连接处理器的方式,通常通过将装置的实体寄存器对应到ARM的存储器空间、辅助处理器空间,或是连接到另外依序接上处理器的装置(如总线)。辅助处理器的存取延迟较低,所以有些周边装置(例如XScale中断控制器)会设计成可通过不同方式存取(通过存储器和辅助处理器)。

调试

DSP增强指令

Thumb

较新的ARM处理器有一种16-bit指令模式,叫做Thumb,也许跟每个条件式执行指令均耗用4位的情形有关。在Thumb模式下,较小的opcode有更少的功能性。例如,只有分支可以是条件式的,且许多opcode无法存取所有CPU的寄存器。然而,较短的opcode提供整体更佳的编码密度(注:意指代码在存储器中占的空间),即使有些运算需要更多的指令。特别在存储器端口或总线宽度限制在32以下的情形时,更短的Thumb opcode能更有效地使用有限的存储器带宽,因而提供比32位代码更佳的性能。典型的嵌入式硬件仅具有较小的32-bit datapath寻址范围以及其他更窄的16 bits寻址(例如Game Boy Advance)。在这种情形下,通常可行的方案是编译成Thumb代码,并自行优化一些使用(非Thumb)32位指令集的CPU相关程序区,因而能将它们置入受限的32-bit总线宽度的存储器中。

首颗具备Thumb技术的处理器是ARM7TDMI。所有ARM9和后来的家族,包括XScale,都纳入了Thumb技术。

Jazelle

ARM还开发出一项技术,Jazelle DBX(Direct Bytecode eXecution),允许它们在某些架构的硬件上加速执行Java bytecode,就如其他执行模式般,当调用一些无法支持bytecodes的特殊软件时,能提供某些bytecodes的加速执行。它能在现存的ARM与Thumb模式之间互相执行。

首颗具备Jazelle技术的处理器是“ARM7EJ-S”:Jazelle以一个英文字母'J'标示于CPU名称中。它用来让手机制造商能够加速执行Java ME的游戏和应用程式,也因此促使了这项技术不断地开发。

Thumb-2

Thumb-2技术首见于“ARM1156核心”,并于2003年发表。Thumb-2扩展了受限的16位Thumb指令集,以额外的32位指令让指令集的使用更广泛。因此Thumb-2的预期目标是要达到近乎Thumb的编码密度,但能表现出近乎ARM指令集在32位存储器下的性能。

Thumb-2至今也从ARM和Thumb指令集中衍伸出多种指令,包含位段操作、分支建表和条件执行等功能。

Thumb Execution Environment(ThumbEE)

ThumbEE,也就是所谓的Thumb-2EE,业界称为Jazelle RCT页面存档备份,存于互联网档案馆)技术,于2005年发表,首见于“Cortex-A8”处理器。ThumbEE提供从Thumb-2而来的一些扩展性,在所处的执行环境下,使得指令集能特别适用于执行阶段的编码产生(例如即时编译)。Thumb-2EE是专为一些语言如LimboJavaC#PerlPython,并能让即时编译器能够输出更小的编译码却不会影响到性能。

ThumbEE所提供的新功能,包括在每次存取指令时自动检查是否有无效指针,以及一种可以执行数组范围检查的指令,并能够分支到分类器,其包含一小部分经常调用的编码,通常用于高级语言功能的实现,例如对一个新物件做存储器配置。

高级SIMD(NEON)

高级SIMD延伸集,业界称为“NEON”技术,它是一个结合64位和128位的单指令多重数指令集(SIMD),其针对多媒体和信号处理程序具备标准化加速的能力。NEON可以在10 MHz的处理器上执行MP3音效解码,且可以执行13 MHz以下的自适应多速率音频压缩编码。NEON具有一组广泛的指令集、各自的寄存器阵列,以及独立执行的硬件。NEON支持8、16、32和64位的整数及单精度浮点数据,并以单指令多重数的方式运算,执行图形和游戏处理中关于语音及视频的部分。单指令多重指令集在向量超级处理机中是个决定性的要素,它具备同时多项处理功能。在NEON技术中,SIMD最高可同时做16个运算。

VFP

VFP(向量浮点)是在协同处理器针对ARM架构的派生技术。它提供低成本的单精度和倍精度浮点运算能力,并完全兼容于ANSI/IEEE Std 754-1985二进制浮点算数标准。VFP提供大多数适用于浮点运算的应用,例如PDA、智能手机、语音压缩与解压、3D图像以及数码音效、打印机、机顶盒,和汽车应用等。VFP架构也支持SIMD平行化的短向量指令执行。这在图像和信号处理等应用上,非常有助于降低编码大小并增加输出效率。

在ARM为基础的处理器中,其他可见的浮点、或SIMD的协同处理器还包括了FPA、FPE、iwMMXt。他们提供类似VFP的功能,但在opcode层面上来说并不具有兼容性。

安全性扩展(TrustZone)

TrustZone技术出现在ARMv6KZ以及较晚期的应用核心架构中。它提供了一种低成本的方案,针对系统单片机内加入专属的安全核心,由硬件建构的存取控制方式支持两颗虚拟的处理器。这个方式可使得应用程式核心能够在两个状态(领域)之间切换,在此架构下可以避免资讯从较可信的核心领域泄漏至较不安全的领域。这种内核领域之间的切换通常是与处理器其他功能完全无关系性,因此各个领域可以各自独立运作但却仍能使用同一颗内核。存储器和周边装置也可因此得知目前内核运作的领域为何,并能针对这个方式来提供对装置的机密和编码进行存取控制。典型的TrustZone技术应用是要能在一个缺乏安全性的环境下完整地执行操作系统,并在可信的环境下能有更少的安全性的编码。T6[20]是中国第一个开源的TrustZone安全内核(该项目目前已经在公开领域消失)。OP-TEE(Open Portable Trusted Executive Environment)成为目前(2017/7)较为成功的可信执行环境(TEE)开源项目。

ARM授权方式

ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架构授权给有兴趣的厂家。ARM提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM提供了ARM内核的集成硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含ARM CPU硅晶片的销售权。对于无晶圆厂的授权方来说,其希望能将ARM内核集成到他们自行研发的晶片设计中,通常就仅针对获取一份生产就绪的智财核心技术(IP Core)认证。对这些客户来说,ARM会发布所选的ARM核心的闸极电路图,连同抽象模拟模型和测试程序,以协助设计集成和验证。需求更多的客户,包括集成组件制造商(IDM)和晶圆厂家,就选择可合成的RTL(寄存器传输级,如Verilog)形式来获取处理器的知识产权(IP)。借着可集成的RTL,客户就有能力能进行架构上的优化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然ARM并不授予授权方再次出售ARM架构本身,但授权方可以任意地出售制品(如晶片组件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含ARM内核的硅晶成品,对其它客户来讲,他们通常也保留重制ARM内核的权利。

就像大多数IP出售方,ARM依照使用价值来决定IP的售价。在架构上而言,更低性能的ARM内核比更高性能的内核拥有较低的授权费。以硅晶片实现而言,一颗可集成的内核要比一颗硬件宏(黑箱)内核要来得贵。更复杂的价位问题来讲,

许多半导体公司持有ARM授权:AtmelBroadcomCirrus LogicFreescale(于2004从摩托罗拉公司独立出来)、富士通英特尔(借由和Digital的控诉调停)、IBMNVIDIA、台湾新唐科技(Nuvoton Technology)、英飞凌任天堂恩智浦半导体(于2006年从飞利浦独立出来)、冲电气三星电子苹果夏普意法半导体德州仪器VLSI等许多这些公司均拥有各个不同形式的ARM授权。虽然ARM的授权项目由保密合约所涵盖,在知识产权工业,ARM是广为人知最昂贵的CPU内核之一。单一的客户产品包含一个基本的ARM内核可能就需索取一次高达美金20万的授权费用。而若是牵涉到大量架构上修改,则费用就可能超过千万美元。

ARM核心时间线

下表列出每个核心发布年份[21][22]。未包括ARM7之前的核心。

年份 经典核心 Cortex核心
ARM7 ARM8 ARM9 ARM10 ARM11 微控制器 实时 应用
(32位)
应用
(64位)
1993 ARM700
1994 ARM710
ARM7DI
ARM7TDMI
1995 ARM710a
1996 ARM810
1997 ARM710T
ARM720T
ARM740T
1998 ARM9TDMI
ARM940T
1999 ARM9E-S
ARM966E-S
2000 ARM920T
ARM922T
ARM946E-S
ARM1020T
2001 ARM7TDMI-S
ARM7EJ-S
ARM9EJ-S
ARM926EJ-S
ARM1020E
ARM1022E
2002 ARM1026EJ-S ARM1136J(F)-S
2003 ARM968E-S ARM1156T2(F)-S
ARM1176JZ(F)-S
2004 Cortex-M3
2005 ARM11MPCore Cortex-A8
2006 ARM996HS
2007 Cortex-M1 Cortex-A9
2008
2009 Cortex-M0 Cortex-A5
2010 Cortex-M4(F) Cortex-A15
2011 Cortex-R4
Cortex-R5
Cortex-R7
Cortex-A7
2012 Cortex-M0+ Cortex-A53
Cortex-A57
2013 Cortex-A12
2014 Cortex-M7(F) Cortex-A17
2015 Cortex-A35
Cortex-A72
2016 Cortex-M23
Cortex-M33(F)
Cortex-R8
Cortex-R52
Cortex-A32 Cortex-A73
2017 Cortex-A55
Cortex-A75
2018 Cortex-M35P Cortex-A76
2019 Cortex-A77
2020 Cortex-A78

Cortex-X1

2021 Cortex-X2

Cortex-A710

Cortex-A510

2022 Cortex-X3

Cortex-A715

2023 Cortex-X4

Cortex-A720

Cortex-A520

ARM内核的授权与应用

经典核心
ARM内核 装置 产品
ARM1 ARM1 BBC MicroARM Evaluation System第二处理器
ARM2 ARM2 Acorn ArchimedesChessmachine
ARM250 ARM250 Acorn Archimedes
ARM3 ARM3 Acorn Archimedes
ARM60 ARM60 3DO Interactive Multiplayer、Zarlink GPS Receiver
ARM610 ARM610 Acorn Risc PC 600Apple Newton 100 series
ARM700 ARM700 Acorn Risc PC prototype CPU card
ARM710 ARM710 Acorn Risc PC 700
ARM7TDMI(-S) Atmel AT91SAM7、恩智浦半导体LPC2000LH754xxActel CoreMP7 Game Boy AdvanceNintendo DSApple iPodLego NXT, Juice BoxGarmin导航装置(1990s – early 2000s)
ARM710a ARM7100、ARM 7500和ARM7500FE Acorn Risc PC 700、Apple eMate 300Psion Series 5(ARM7100)、Acorn A7000(ARM7500)、Acorn A7000+(ARM7500FE)、Acorn Network Computer(ARM7500FE)
StrongARM Digital SA-110, SA-1100, SA-1110 SA-110: Apple Newton 2x00 series、Acorn Risc PC、Rebel/Corel Netwinder、Chalice CATS,SA-1100: Psion netBook,SA-1110: LART、Intel Assabet、Ipaq H36x0、Balloon2Zaurus SL-5x00、HP Jornada 7xx、Jornada 560 series、Palm Zire 31
ARM810 Acorn Risc PC prototype CPU card
ARM710T Psion Series 5mxPsion Revo/Revo Plus/Diamond Mako
ARM720T 恩智浦半导体LH7952x Zipit Wireless Messenger
ARM940T GP2X(second core)、Meizu M6 Mini Player[23][24]
ARM966E-S 意法半导体STR91xF[25]
ARM920T Atmel AT91RM9200、AT91SAM9、Cirrus Logic EP9302、EP9307、EP9312、EP9315、Samsung S3C2442 and S3C2410 ArmadilloGP32GP2X(first core)、Tapwave ZodiacMotorola i.MX1)、Hewlett-Packard HP-49/50 CalculatorsSun SPOTHTC TyTNFIC Neo FreeRunner[26])、Garmin导航装置(mid–late 2000s)、TomTom导航装置[27]
ARM922T 恩智浦半导体LH7A40x
ARM926EJ-S 新唐科技(Nuvoton)NuMicro Family[28]德州仪器OMAP1710、OMAP1610、OMAP1611、OMAP1612、OMAP-L137、OMAP-L138;Qualcomm MSM6100、MSM6125、MSM6225、MSM6245、MSM6250、MSM6255A、MSM6260、MSM6275、MSM6280、MSM6300、MSM6500、MSM6800;Freescale i.MX21、i.MX27、i.MX28、Atmel AT91SAM9、恩智浦半导体、Samsung S3C2412 LPC30xx, NEC C10046F5-211-PN2-A SoC –未文件化的内核有可能将ATi Hollywood绘图晶片用于Wii,[29]Telechips TCC7801、TCC7901、ZiiLABS ZMS-05、Rockchip RK2806及RK2808、NeoMagic MiMagic Family MM6、MM6+、MM8、MTV;全志科技F-serial(F1E200/F1C100、F20、F13、F10、F18)[30]信骅科技ASPEED页面存档备份,存于互联网档案馆) (AST1510、AST2050、AST2150、AST2300/1050、AST2400/1250、AST3100)[31]. 行动电话:Sony Ericsson(K, W series);Siemens以及Benq(x65系列和更新版本);LG Arena;GPH Wiz;Squeezebox Duet Controller (Samsung S3C2412)。Squeezebox RadioBuffalo TeraStation Live (NAS); Drobo FS (NAS),Western Digital MyBook I World Edition;Western Digital MyBook II World Edition;Seagate FreeAgent DockStar STDSD10G-RK;Seagate FreeAgent GoFlex Home;Chumby Classic
ARM946E-S Nintendo DSNokia N-GageCanon PowerShot A470Canon EOS 5D Mark II[32]Conexant 802.11 chips、Samsung S5L2010
XScale Intel 80200、80219、PXA210、PXA250、PXA255、PXA263、PXA26x、PXA27x、PXA3xx、PXA900、IXC1100、IXP42x 80219: Thecus N2100,OP321: Iyonix,PXA210/PXA250: Zaurus SL-5600、iPAQ H3900、Sony CLIÉ NX60、NX70V、NZ90,PXA255: Gumstix basix & connexPalm Tungsten E2、Zaurus SL-C860、Mentor Ranger & Stryder、iRex ILiad,PXA263: Sony CLIÉ NX73V, NX80V,PXA26x: Tungsten T3,PXA27x: Gumstix verdex"Trizeps-Modules"页面存档备份,存于互联网档案馆)、"eSOM270-Module"页面存档备份,存于互联网档案馆),PXA270 COM、HTC Universal、HP hx4700、Zaurus SL-C1000、3000、3100、3200、Dell Axim x30、x50、and x51 series、Motorola Q、Balloon3Trolltech GreenphonePalm TX、Motorola Ezx Platform A728、A780、A910、A1200、E680、E680i、E680g、E690、E895、Rokr E2、Rokr E6、Fujitsu Siemens LOOX N560、Toshiba Portégé G500、Trēo 650-755p、Zipit Z2、HP iPaq 614c Business Navigator、I-mate PDA2,PXA3XX: Samsung Omnia、Samsung SGH-i780,PXA900: Blackberry 8700、Blackberry Pearl(8100),IXP42x: NSLU2
ARM1026EJ-S Conexant so4610以及so4615 ADSL SoC
ARM1136J(F)-S 德州仪器OMAP2420, Qualcomm MSM7200, MSM7201A, MSM7227, Freescale i.MX31以及MXC300-30 OMAP2420: Nokia E90Nokia N93Nokia N95Nokia N82ZuneBUGbase[33]Nokia N800Nokia N810Motorola Q9
Freescale i.MX31: original Zune 30 GB, Toshiba Gigabeat S and Kindle DX ,Freescale MXC300-30 :Nokia E63Nokia E71Nokia 5800Nokia E51Nokia 6700 ClassicNokia 6120 ClassicNokia 6210 NavigatorNokia 6220 ClassicNokia 6290Nokia 6710 NavigatorNokia 6720 ClassicNokia E75Nokia N97Nokia N81
Qualcomm MSM7200: Eten GlofiishHTC TyTN IIHTC Nike,Qualcomm MSM7201A: HTC DreamHTC MagicMotorola i1Motorola Z6HTC HeroSamsung SGH-i627 (Propel Pro)Sony Ericsson Xperia X10 Mini Pro,Qualcomm MSM7227: ZTE Link, HTC LegendHTC AriaViewsonic ViewPad 7[34][35]
ARM968E-S 恩智浦半导体LPC29xx
ARM1176JZ(F)-S Conexant CX2427XNvidia GoForce 6100[36]Telechips TCC9101、TCC9201、TCC8900;Fujitsu MB86H60Samsung S3C6410、S3C6430、[37]Qualcomm MSM7627;Infineon X-GOLD 213;MediaTek MT6573信骅科技ASPEED页面存档备份,存于互联网档案馆)(AST1520、AST2500、AST3200);Broadcom BCM2835、BCM21553 Apple iPhone (original and 3G)Apple iPod touch (1st and 2nd Generation)Motorola RIZR Z8Motorola RIZR Z10Nintendo 3DS
S3C6410: Samsung Omnia IISamsung MomentSamsung M910 InterceptSmartQ 5
Qualcomm MSM7627: Palm Pixi、LG Optimus V(VM670)Motorola Calgary/Devour
MediaTek MT6573: Lenovo-A60
BCM2835: Raspberry Pi
ARM11 MPCore Nvidia APX 2500(Tegra
Cortex核心
ARM内核 装置 产品
Cortex-M3 德州仪器Stellaris页面存档备份,存于互联网档案馆),意法半导体STM32F2页面存档备份,存于互联网档案馆),恩智浦半导体LPC17xxToshiba TMPM330,[38]Ember EM3xx、Atmel AT91SAM3、Europe Technologies EasyBCUEnergy Micro EFM32Actel SmartFusionmbed
Cortex-A8 德州仪器OMAP3xxx系列、飞思卡尔i.MX51-SOCApple A4ZiiLABS ZMS-08、三星Hummingbird S5PC100/S5PC110、Marvell ARMADA 500/600、Rockchip RK2918[39]全志科技A-serial(A10/A13/A10s)[40] HTC Desire、SBM7000、俄勒冈州立大学OSWALDGumstix Overo EarthPandoraApple iPhone 3GSApple iPod touch (3rd and 4th Generation)iPadA4)、iPhone 4A4)、Apple TV (Second Generation)A4)、Archos 5Archos 43BeagleBoardGenesi EFIKA MX、Motorola DroidMotorola Droid X摩托罗拉里程碑2Motorola Droid R2D2 EditionPalm PrePalm Pre 2HP VeerHP Pre 3Samsung Omnia HDSamsung Wave S8500Samsung Galaxy SSamsung P1000 Galaxy TabSony Ericsson SatioSony Ericsson Xperia X10Touch BookNokia N900魅族M9Google Nexus SGalaxy SLHTC SensationSharp PC-Z1 "Netwalker"
Cortex-M1 Actel ProASIC3、ProASIC3L、IGLOO及Fusion PSC devicesAltera Cyclone III,其他FPGA产品也支持,例如:Synplicity[41]
Cortex-A9 德州仪器OMAP4430/4440ST-Ericsson U8500/U5500、Nvidia Tegra2Nvidia Tegra3、三星Orion/Exynos 4210/4212/4412、意法半导体SPEAr1310页面存档备份,存于互联网档案馆)、Xilinx Extensible Processing Platform[42]、Trident PNX847x/8x/9x STB SoC[43]、Freescale i.MX6[44]Apple A5MediaTek MT6575/6577、VIA Elite-E1000[45] Apple iPad 2A5)、LG Optimus 2X、LG Optimus 3D、Motorola Atrix 4G、Motorola DROID BIONIC、Motorola XoomPandaBoard、PS VITA(NGP)、HP TouchPad、Galaxy S2(GT-i9100)、Galaxy R(GT-i9103)、Galaxy S3(GT-i9300,E210)、Galaxy Tab 10.1、Galaxy Tab 2、Galaxy Note(N7000)、Galaxy Note 2、Galaxy Note 10.1、Galaxy Ace 2HTC One X魅族MX魅族MX2联想K860PlayStation VitaSony Xperia USony Xperia solaSony Xperia PSony Xperia go
Cortex-M0 恩智浦半导体LPC11xx[46]Triad Semiconductor[47]Melfas[48]Chungbuk Technopark[49]新唐科技(Nuvoton)NuMicro Family[28]austriamicrosystems[50]罗姆电子[51] Nordic英语Nordic Semiconductor nRF51822:BBC micro:bit
Cortex-A5 Telechips TCC892x, Qualcomm Snapdragon MSM7225A/MSM7625A/MSM7227A/MSM7627A, Atmel SAMA5 (D2/D3/D4), MYIR development board MYD-JA5D2X
Cortex-M4 飞思卡尔Kinetis页面存档备份,存于互联网档案馆),恩智浦半导体LPC43xx,意法半导体STM32F4页面存档备份,存于互联网档案馆),新唐科技(Nuvoton)NuMicro Family[28] Mikroelektronika Hexiwear页面存档备份,存于互联网档案馆
Cortex-A15 德州仪器OMAP5、三星 Exynos 5250/5450、ST Ericsson[52]、Nvidia ChromebookNexus 10
Cortex-R4(F) 博通,德州仪器TMS570
Cortex-R5F Scaleo OLEA
Cortex-A7 Freescale i.MX6 UltraLite,Allwinner A20, Allwinner A31, Allwinner H3, Broadcom BCM2836, Rockchip RK3128 Freescale i.MX6 UltraLite: Boardcon EM6ul SBC, EINK-IMX7 SBC页面存档备份,存于互联网档案馆), MYS-6ULX Single Board Computer页面存档备份,存于互联网档案馆
Broadcom BCM2836: Raspberry Pi 2[53]
Rockchip RK3128: Boardcon Compact3128[54]
Lenovo a820、onda v812
OKMX6ULL-S Single Board Computer页面存档备份,存于互联网档案馆
Cortex-M0+ NXP Semiconductors LPC8xx Freescale Kinetis L
Cortex-A53 Broadcom: BCM2837, HiSilicon: Kirin 620, 650, 655, 658, 930, 935, 950, 955, 960, Mediatek: MT6737M, MT6750, Qualcomm: Snapdragon 410, 412, 415, 425, 427, 430, 435, 610, 615, 616, 620, 625, 626, 808, 810, Allwinner H5, Allwinner H6 Broadcom BCM2837: Raspberry Pi 3[55]
Cortex-A57 AMD Opteron A1100-series, Freescale QorIQ LS20xx, Nvidia Tegra X1, Qualcomm Snapdragon 808, 810, Samsung Exynos 7 5433, 7420
Cortex-A17 Rockchip RK3288 RK3288:Asus Tinker Board, Boardcon页面存档备份,存于互联网档案馆) EM3288 SBC[56]
Cortex-A72 HiSilicon Kirin 950, 955, MediaTek Helio X2x, MT817x, Mstar 6A938, Qualcomm Snapdragon 650, 652, 653|65x,Broadcom BCM2711, Rockchip RK3399, Freescale QorIQ LS2088, Freescale QorIQ LS1046A Broadcom BCM2711: Raspberry Pi 4[5]

Rockchip RK3399: Boardcon EM3399 SBC页面存档备份,存于互联网档案馆

Cortex-A73 HiSilicon Kirin 960, Kirin 970, MediaTek Helio X30
Cortex-A75 Qualcomm Kryo 385[57]
Cortex-A76 Qualcomm Kryo 460
Cortex-A77

延伸阅读

参考资料

  1. ^ 1.0 1.1 1.2 Grisenthwaite, Richard. ARMv8-A Technology Preview (PDF). 2011 [2011-10-31]. (原始内容存档 (PDF)于2018-11-09). 
  2. ^ Procedure Call Standard for the ARM Architecture (PDF). ARM Holdings. 2013-11-30 [2013-05-27]. (原始内容存档 (PDF)于2013-04-28). 
  3. ^ 3.0 3.1 Fujitsu drops SPARC, turns to ARM for Post-K supercomputer. [2016-07-04]. (原始内容存档于2016-06-25). 
  4. ^ ARM Discloses Technical Details Of The Next Version Of The ARM Architecture (新闻稿). ARM Holdings. 2011-10-27 [2013-09-20]. (原始内容存档于2019-01-01). 
  5. ^ 5.0 5.1 Fitzpatrick, J. An interview with Steve Furber. Communications of the ACM. 2011, 54 (5): 34 [2012-06-02]. doi:10.1145/1941487.1941501. (原始内容存档于2011-07-27). 
  6. ^ ARM Holdings eager for PC and server expansion, 2011-02-01 [2012-11-23], (原始内容存档于2012-11-16) 
  7. ^ AMD in chip tie-up with UK's ARM, BBC, 2012-10-30 [2012-11-08], (原始内容存档于2012-11-16) 
  8. ^ 「富岳」ニュース -2.名称決定-. 理化学研究所 计算科学研究センター. [2020-10-28]. (原始内容存档于2021-01-20). 
  9. ^ 日本のスパコン「富岳」、8年半ぶり世界一奪還. 日本経済新闻. 2020-06-23 [2020-10-28]. (原始内容存档于2021-02-21). 
  10. ^ 日本のスパコン「富岳」世界ランキング1位、世界初の2期連続4冠. QEEE. INTLOOP株式会社. 2020-11-17 [2020-12-20]. (原始内容存档于2021-07-25). 
  11. ^ 株式会社インプレス. 富岳は、主要なスパコンベンチのすべてで1位を獲得することが重要. PC Watch. 2020-11-17 [2020-12-20]. (原始内容存档于2021-07-25). 
  12. ^ ソフトバンク、ARM買収を正式発表, 2016-07-18 [2016-07-19], (原始内容存档于2016-07-19) 
  13. ^ "ARMed for the living room"页面存档备份,存于互联网档案馆).
  14. ^ Jason Fitzpatrick. An interview with Steve Furber. Communications of the ACM. 2011-05-01, 54 (5): 34–39 [2018-04-02]. ISSN 0001-0782. doi:10.1145/1941487.1941501. 
  15. ^ Patterson, Jason. The Acorn Archimedes"页面存档备份,存于互联网档案馆), The History Of Computers During My Lifetime – The 1980s by (accessed 12 March 2008)]
  16. ^ 存档副本 (PDF). [2006-09-20]. (原始内容 (PDF)存档于2006-10-04). 
  17. ^ "ARM Corporate Backgrounder"页面存档备份,存于互联网档案馆), ARM Technology.
  18. ^ ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors (新闻稿). ARM Holdings. [2012-10-31]. (原始内容存档于2013-01-09). 
  19. ^ Line Card (PDF). 2003 [2012-10-01]. (原始内容 (PDF)存档于2017-10-20). 
  20. ^ T6: TrustZone Based Trusted Kernel, trustkernel, 2014-07-08 [2014-07-08], (原始内容存档于2022-04-18) 
  21. ^ ARM Company Milestones.. [2018-11-30]. (原始内容存档于2014-03-28). 
  22. ^ ARM Press Releases.. [2018-11-30]. (原始内容存档于2014-04-09). 
  23. ^ Rockbox Samsung SA58xxx series. [2008-02-22]. (原始内容存档于2008-07-20). 
  24. ^ Rockbox Meizu M6 Port – Hardware Information. [2008-02-22]. (原始内容存档于2008-05-12). 
  25. ^ STR9 – STR912 – STR912FW44 microcontroller – documents and files download page. Mcu.st.com. [2009-04-18]. (原始内容存档于2012-05-24). 
  26. ^ Neo1973: GTA01Bv4 versus GTA02 comparison. [2007-11-15]. (原始内容存档于2015-11-20). 
  27. ^ S3C2410. [2010-01-13]. (原始内容存档于2012-03-13). 
  28. ^ 28.0 28.1 28.2 ARM Cortex™-M0 NuMicro™ Family. Nuvoton. 2013-04-25 [2013-04-25]. (原始内容存档于2014-09-05). 
  29. ^ Starlet页面存档备份,存于互联网档案馆).
  30. ^ AllWinner Technology(全志科技). [2014-09-30]. (原始内容存档于2014-10-06). 
  31. ^ ASPEED Technology(信驊科技). [2014-09-30]. (原始内容存档于2014-10-06). 
  32. ^ Datasheets - Magic Lantern Firmware Wiki. Magiclantern.wikia.com. 2010-12-28 [2011-01-06]. (原始内容存档于2011-07-18). 
  33. ^ Bug Labs, [2011-05-16], (原始内容存档于2011-05-19) .
  34. ^ Qualcomm chips kernel ARM—from phones to laptops. xi0.info. [2010-05-08]. (原始内容存档于2012-03-13). 
  35. ^ Qualcomm MSM7227 RISC Chipset. PDADB. [2010-05-08]. (原始内容存档于2012-03-13). 
  36. ^ GoForce 6100. Nvidia. [2009-04-18]. (原始内容存档于2015-11-20). 
  37. ^ Samsung S3C6410 and S3C6430 Series ARM Proccessors. Samsung. [2009-10-08]. (原始内容存档于2009-09-01). 
  38. ^ Press release, Toshiba, 2008 [2011-05-16], (原始内容存档于2011-06-14) .
  39. ^ (英文) RK2918 specs页面存档备份,存于互联网档案馆
  40. ^ http://www.allwinnertech.com/product[永久失效链接]
  41. ^ ARM Extends Cortex Family with First Processor Optimized for FPGA, ARM, [2011-05-16], (原始内容存档于2007-05-05) .
  42. ^ Xilinx WP369 Extensible Processing Platform Ideal Solution for a Wide Range of Embedded Systems, White Paper (PDF). [2011-01-06]. (原始内容 (PDF)存档于2011-09-02). 
  43. ^ NXP Semiconductors and ARM Showcase NXP 847x/8x/9x, the World’s First Fully Integrated 45 nm Set-Top Box(STB)SoC Platform at CES 2010. Embeddedsystemnews.com. 2010-01-06 [2011-01-06]. (原始内容存档于2010-12-19). 
  44. ^ Freescale announces i.MX 6 processor series, wants quad cores in your smartphone. Engadget. 2010-12-29 [2011-01-06]. (原始内容存档于2011-01-06). 
  45. ^ VAB-1000 1.0GHz VIA Elite E1000 Cortex-A9 dual-core SoC (PDF). [永久失效链接]
  46. ^ Walko, John. NXP first to demo ARM Cortex-M0 silicon. EE Times. 2009-03-23 [2009-06-29]. (原始内容存档于2012-03-13). 
  47. ^ ARM Powered VCAs. Triad Semiconductor. [2011-01-06]. (原始内容存档于2011-07-16). 
  48. ^ Richard Wilson. Cortex-M0 used in low power touch controller. Electronics Weekly. 2009-06-10 [2011-01-06]. (原始内容存档于2011-08-16). 
  49. ^ Chungbuk Technopark Chooses ARM Cortex-M0 Processor. Design Reuse. [2011-01-06]. (原始内容存档于2010-10-07). 
  50. ^ Austriamicrosystems Chooses ARM Cortex-M0 Processor for Mixed Signal Applications. EDA Café. [2011-01-06]. (原始内容存档于2011-07-22). 
  51. ^ Rohm Licenses ARM Cortex-M0 Processor. ARM. 2010-05-13 [2011-01-06]. (原始内容存档于2010-11-16). 
  52. ^ Why Cortex-A15 makes for Smarter, Lightning-Quick Mobile Devices in the Future—ARM Community. Blogs. ARM. [2011-01-06]. (原始内容存档于2010-12-06). 
  53. ^ Love to Get Your Hands on a Raspberry Pi 2? Hat Tip to Broadcom. Broadcom. 2015-02-02 [2015-07-22]. (原始内容存档于2015-07-23). 
  54. ^ Compact3128 Card size board. Boardcon Embedded Design. [2018-04-09]. (原始内容存档于2018-04-11). 
  55. ^ Upton, Eben. Raspberry Pi 3 on sale now at $35 - Raspberry Pi. Raspberry Pi. 2016-02-29 [2016-02-29]. (原始内容存档于2016-02-29) (英国英语). 
  56. ^ EM3288 SBC. Boardcon Embedded Design. [2018-04-09]. (原始内容存档于2017-10-14). 
  57. ^ Frumusanu, Andrei. Qualcomm Announces Snapdragon 845 Mobile Platform. Anandtech. 2017-12-06 [2017-12-07]. (原始内容存档于2018-06-12). 

外部链接