ARM 命名规则——指令架构、CPU的历史回顾

ARM 命名规则——指令架构、CPU的历史回顾

自己工作中常遇见各种 ARM 核。但每次看到名字,对其基本概况却没有直觉的反应。于是查资料,整理了一下相关的内容。

分享出来,可能有所帮助。


【2017.3.10】
提到的命名规则,应该分成两类。
1、基于ARM Architecture版本的“指令集架构”命名规则;
2、基于ARM Architecture版本的“处理器系列”命名规则

比如: s3c2410采用ARMv4T架构版本,ARM920T处理器系列

1、“指令集架构”命名

| ARMv | n | variants | x(variants) |

分成四个组成部分:
·ARMv -- 固定字符,即ARM Version
·n -- 指令集版本号。迄今为之,ARM架构版本发布了8个系列,所以n=[1:8]。
·variants -- 变种。
·x(variants) -- 排除x后指定的变种

常见的variants有以下字母可选:

·T -- Thumb指令集
·M -- 长乘法指令
·E -- 增强型DSP指令
·J -- Java加速器Jazelle
·SIMD -- ARM媒体功能扩展

比如:ARMv5TxM表示ARM指令集版本为5,支持T变种,不支持M变种

2、“处理器系列”命名

2.1 在 ARMv3 ~ ARMv6 时期

ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}

·x -- 处理器系列
·y -- 存储管理/保护单元
·z -- cache
·T -- 支持Thumb指令集
·D -- 支持片上调试
·M -- 支持快速乘法器
·I -- 支持Embedded ICE,支持嵌入式跟踪调试
·E -- 支持增强型DSP指令
·J -- 支持Jazelle
·F -- 具备向量浮点单元VFP
·-S -- 可综合版本
比如:ARM926, 属于ARMv5指令集架构的,CPU是 ARM9系列的,
2个存储管理/保护单元,6个 Cache【?不确定】

2.2 在 ARMv7 以后时期

公司改革了以前的冗长的命名方法,用看起来比较整齐的办法,统一用 Cortex 作为主名。

3、历史

(1)ARMv1、ARMv2 这两代没有做CPU,没有商业化;
(2)ARMv3 对应的 CPU 是 ARM6
(3)ARMv4 首次增加 Thumb 指令集;
对应的 CPU 有:ARM7-TDMI,ARM720-T,ARM9-TDMI,ARM920-T,ARM940-T
(4) ARMv5 改进了 Thumb,首次增加 E(增强型DSP指令)、J(Java加速器Jazelle);
对应的 CPU 有:
ARMv5TE指令集:ARM9-E-S,ARM966-E-S,ARM1020-E,ARM1022-E,ARM940-T
ARMv5EJ指令集:ARM926-EJ-S,ARM7-EJ-S,ARM1026-EJ-S
(5)ARMv6 首次增加 SIMD,升级为 Thunmb-2,首次增加TrustZone
对应 CPU 有:ARM1136-J(F)-S,ARM1156-J(F)-S,ARM1176-J(F)-S,ARM11 MPCore

(6)ARMv7 首次增加 M(长乘法指令),NEON(DSP+SIMD)
CPU 系列名字为“Cortex”,分为了3个款式:ARM & SC
(6.1)A 系列,支持大型嵌入式系统,如手机;
节能:A5,A7
平衡:A8,A9
性能:A15,A17
(6.2)R 系列,Real-time 处理器,即执行一个指令段的耗时是固定时钟周期数。
用于比如汽车控制,这种不允许随机执行时间的应用
功能安全:R4,R5
存储、调制解调:R7,R8
(6.3)M 系列,单片机市场,抢8051的生意;
超低的功耗、面积:M0,M0+
平衡:M3,M4,M7
SC(SecurCore)系列,主打“安全”,面向支付、政府、SIM 卡
SC000,SC300;

(7)ARMv8 首次增加 指令集A64,可执行64位指令;可在 32位 和 64位 之间切换;
(7.1)A 系列,
节能:A32,A35
平衡:A53,
性能:A57,A72,A73
(7.2)R 系列
功能安全:R52
(7.3)M 系列,
超低的功耗、面积:M23
平衡:M33
4、工艺的变化:

参考:ARM命名规则小结-g050649-ChinaUnix博客
参考:ARM 处理器命名规则
参考:Processors – ARM
编辑于 2017-03-10