ARM架构及内核

一般的ARM芯片都会涉及到以下一些概念:芯片型号、ARM内核名称、指令集名称等等,这些概念间既有联系也有区别。本文简要梳理下这些不同的概念,并选择一些我接触过的芯片进行下总结。一个比较完整的ARM产品线列表可参考Wikipedia页面:

List of ARM microarchitectures

基本概念

ARM产品家族

即ARM Family,就是ARM公司不同的产品系列,这个分类主要是从市场及销售角度进行的划分。1985年,ARM公司研发出未量产的第一代产品ARM1,之后陆续推出了ARM2ARM3ARM6三个系列的产品,不过这些产品基本都是没人知道的。直到1997年,ARM推出ARM7T系列产品,这才标志着ARM大规模商用推广的开始,2000年左右推出的ARM9TARM9E系列更成为了ARM公司里程碑式的经典产品。之后的ARM还推出了ARM10EARM11这两个系列。

不过估计是觉得这样的命名太混乱了,不利于市场推广,在2005年左右,ARM将其新推出的所有CPU分为3大家族,这就是现在广为人知的Cortex-ACortex-MCortex-R系列,到目前为止10多年来都沿用了这一名字没有变过。其中Cortex-A定位于对计算性能要求较高的Application领域;Cortex-M定位于低功耗、低成本的微控制器Microcontroller领域;Cortex-R定位于对安全、实时性要求较高的Realtime领域。

不知将来ARM的新产品会不会换个名字呢?毕竟现在的市场局势和10年前相比有了很大的变化,而且ARM还被软银收购了……我们拭目以待。

ARM架构名称

即ARM Architecture,就是指一套处理器体系结构及其对应的指令集等,这是从技术层面进行的划分,架构的升级就意味着产品的更新与迭代。架构与处理器家族系列间并不存在一一对应的关系,比如ARM7TARM9T系列使用的就是相同的ARMv4T架构,而Cortex-A系列中包含了ARMv7-AARMv8-A两种架构。

除了基础架构外,ARM还会用后缀表示功能增强的衍生架构,比如E后缀代表DSP指令集增强(ARMv5TE)、J后缀代表Jazelle加速技术(ARMv5TEJ)等。

目前最新的架构为ARMv8-A。关于ARM架构的详细信息,可参考Wikipedia页面:

ARM architecture

ARM内核名称

即ARM Core,就是实际实现出来的内核名称。ARM内核包括由ARM自己设计的公版内核及由其他架构授权合作伙伴设计的第三方内核。ARM自己设计的内核包括ARM920TCortex-M3Cortex-M4Cortex-A5Cortex-A57等诸多型号;第三方内核中,最有名的就是高通的Snapdragon系列,包括ScorpionKraitKryo三种型号的内核,还有苹果自己设计的Ax系列,目前包括SwiftCycloneTyphoonTwisterHurricane等型号的内核。

产品名称

就是最终的SOC芯片型号,一个SOC芯片只有CPU Core是不够的,还需要很多其他外设,整合到一起最终形成一个芯片。所以很多不同型号的芯片其实是共用一个CPU Core设计的,比如STM32F4系列,包含相当多的芯片型号,不过它们的CPU内核都是一样的——基于ARMv7E-M架构的Cortex-M4内核。

部分ARM芯片总结

这里仅选取我接触过的和一些近期比较有名的手机芯片进行总结,按照ARM架构和ARM内核进行分类排序。

芯片型号或系列 厂商 AMR内核 ARM架构
S3C2410 Samsung ARM920T ARMv4T
STM32F0 ST Cortex-M0 ARMv6-M
STM32F1 ST Cortex-M3 ARMv7-M
STM32F4 ST Cortex-M4 ARMv7E-M
K60 Freescale Cortex-M4 ARMv7E-M
STM32F7 ST Cortex-M7 ARMv7E-M
H3 Allwinner Cortex-A7 ARMv7-A
BCM2836 Broadcom 4*Cortex-A7 ARMv7-A
S5PV210 Samsung Cortex-A8 ARMv7-A
AM3359 TI Cortex-A8 ARMv7-A
i.MX6DL Freescale 2*Cortex-A9 ARMv7-A
BCM2837 Broadcom 4*Cortex-A53 ARMv8-A
MT6797 MTK 2*Cortex-A72 + 8*Cortex-A53 ARMv8-A
Kirin 950 Huawei 4*Cortex-A72 + 4*Cortex-A53 ARMv8-A
Exynos 8890 Samsung 4*Mongoose + 4*Cortex-A53 ARMv8-A
Snapdragon 820 Qualcomm 4*Kryo ARMv8-A
A10 Apple 4*Hurricane ARMv8-A
文章目录
  1. 1. 基本概念
    1. 1.1. ARM产品家族
    2. 1.2. ARM架构名称
    3. 1.3. ARM内核名称
    4. 1.4. 产品名称
  2. 2. 部分ARM芯片总结