Contents

Arm CPU Model

随着AWS使用ARM平台的云主机的逐渐增多,连华为都研发了鲲鹏Arm服务器处理器了。自动armv8进入64位以后,越来越多的跨平台的应用(Java或者Golang)的应用逐渐开始跑在Arm平台了。Hadoop体系的全家桶在Arm平台下运行良好,各种GPU AI加速版也越来越采用Arm平台,低功耗的收益也使Arm平台越来越受欢迎,目前所知三大运营商的大数据平台都是X64和Arm64双备份的,切换毫无压力。

Arm自动进入Armv8以后,就进入了x64的时代,Centos8也原生支持了arm64,虽然比Debian晚了那么几年。有了OS层的支持,加上Arm JDK的蓬勃发展,最新消息是,苹果也要换回Arm了,苹果最早用的是PowePC的处理器,后来转换为Intel的X86平台。目前也在转战Arm的话,能效比看还是吸引人的,目前所知Arm平台在自动驾驶领域肯定是Top1,AI芯片应该是一哥。

目前所知,华为的麒麟和鲲鹏应该是居于公版Armv8进行研发的,三星和高通是魔改的Armv8,当然,这个并不是说华为的技术不如三星和高通,只是将更多的精力放置到了SOC和基带的研发而已,况且三星和高通的魔改的刀工也不行,有时候还真的跑不过公版的设计,就像有些人写Spark用的RDD操作效率和一些新手写DataSet或者Datastream还要慢很多,路漫漫其修远兮,华为慢慢加油吧。

ARM处理器内核

家族 架构 内核 特色 缓存 (I/D)/MMU 常规 MIPS 于 MHz 应用
ARM1 ARMv1 ARM1
ARM2 ARMv2 ARM2 Architecture 2 加入了MUL(乘法)指令 4 MIPS @ 8MHz Acorn ArchimedesChessmachine
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 600Apple Newton
ARM7 ARMv3
ARM7TDMI ARMv4T ARM7TDMI(-S) 三级流水线 15 MIPS @ 16.8 MHz Game Boy AdvanceNintendo DSiPod
ARM710T 均为8KB, MMU 36 MIPS @ 40 MHz Acorn Risc PC 700Psion 5 seriesApple 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 ArmadilloGP32GP2X(第一颗内核), Tapwave ZodiacMotorola i. MX1)
ARM922T 8KB/8KB, MMU
ARM940T 4KB/4KB, MPU GP2X(第二颗内核)
ARM9E ARMv5TE ARM946E-S 可变动,tightly coupled memories, MPU Nintendo DSNokia 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 GumstixPalm Tungsten E2
PXA26x 可达 400 MHz Tungsten T3
PXA27x 800 MIPS @ 624 MHz HTC UniversalZaurus 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 N93ZuneNokia 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、Hisilicon Hi3516, Hi3556V200, Hi3559V200、Rockchip RV1109, RV1126
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 OMAP3Apple A4
Cortex-A9 2.50 DMIPS @ 1GHz Apple A5Apple 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 应用

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

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]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-29)Telechips TCC7801、TCC7901、[ZiiLABS](https://zh.wikipedia.org/wiki/ZiiLABS) ZMS-05、[Rockchip](https://zh.wikipedia.org/w/index.php?title=Rockchip&action=edit&redlink=1) RK2806及RK2808、[NeoMagic](https://zh.wikipedia.org/w/index.php?title=NeoMagic&action=edit&redlink=1) MiMagic Family MM6、MM6+、MM8、MTV;[全志科技](https://zh.wikipedia.org/wiki/全志科技)F-serial(F1E200/F1C100、F20、F13、F10、F18)[[30]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-30);[信骅科技ASPEED](http://www.aspeedtech.com/)([页面存档备份](https://web.archive.org/web/20140925222136/http://www.aspeedtech.com/),存于[互联网档案馆](https://zh.wikipedia.org/wiki/互联网档案馆)) (AST1510、AST2050、AST2150、AST2300/1050、AST2400/1250、AST3100)[[31]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-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]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-34)[[35]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-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
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]](https://zh.wikipedia.org/wiki/ARM架構#cite_note-51) Nordic 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, 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
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 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, Rockchip RK3399, Freescale QorIQ LS2088, Freescale QorIQ LS1046A 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.ArmV7 -> ArmV8

ArmV7 -> ArmV8 : 新增64位指令集,可以跑Arm64和Arm32,4G以上大内存有了新用途,服务器行业可以使用了

特性 ARM V8 ARM V7
指令集 64位指令集 AArch64, 并且兼容32位指令集 AArch32 32位指令集 A32 和16位指令集 T16
支持地址长度 64位 32位
通用寄存器 31个 x0-x30(64位)或者 w0-w30(32位) 15个, r0-r14 (32位)
异常模式 4层结构 EL0-EL3 2层结构vector table
NEON 默认支持 可选支持
LAPE 默认支持 可选支持
Virtualization 默认支持 可选支持
big.LITTLE 支持 支持
TrustZone 默认支持 默认支持
SIMD寄存器 32个 X 128位 32个 X 64位
Company Core Released Revision Decode Pipeline depth Out-of-order execution Branch prediction big.LITTLE role Exec. ports SIMD Fab (in nm) Simult. MT L0 cache L1 cache Instr + Data (in KiB) L2 cache L3 cache Core configu- rations DMIPS/ MHz[note 1] ARM part number (in the main ID register)
Have it Entries
ARM Holdings Cortex-A32 (32-bit)[1] 2017 ARMv8.0-A (only 32-bit) 2-wide 8 No 0 LITTLE ? 28[2] No No 8–64 + 8–64 0–1 MiB No 1-4+ 0xD01
Cortex-A34 (64-bit)[3] 2019 ARMv8.0-A (only 64-bit) 2-wide 8 No 0 LITTLE ? No No 8–64 + 8–64 0–1 MiB No 1-4+ 0xD02
Cortex-A35[4] 2017 ARMv8.0-A 2-wide[5] 8 No 0 Yes LITTLE ? 28 / 16 / 14 / 10 No No 8–64 + 8–64 0 / 128 KiB–1 MiB No 1–4+ 1.78 0xD04
Cortex-A53[6] 2014 ARMv8.0-A 2-wide 8 No 0 Conditional+ Indirect branch prediction big/LITTLE 2 28 / 20 / 16 / 14 / 10 No No 8–64 + 8–64 128 KiB–2 MiB No 1–4+ 2.24 0xD03
Cortex-A55[7] 2017 ARMv8.2-A 2-wide 8 No 0 big/LITTLE 2 28 / 20 / 16 / 14 / 12 / 10 / 5[8] No No 16–64 + 16–64 0–256 KiB/core 0–4 MiB 1–8+ 2.65[9] 0xD05
Cortex-A57[10] 2013 ARMv8.0-A 3-wide 15 Yes 3-wide dispatch Two-level big 8 28 / 20 / 16[11] / 14 No No 48 + 32 0.5–2 MiB No 1–4+ 4.6 0xD07
Cortex-A65[12] 2019 ARMv8.2-A ? ? Yes Two-level ? 2 ? No No ? ? ? ? ? 0xD06
Cortex-A65AE[13] 2019 ARMv8.2-A ? ? Yes Two-level ? 2 ? SMT2 No 16-64 + 16-64 64-256 KiB 0-4 MB 1–8 ? 0xD43
Cortex-A72[14] 2015 ARMv8.0-A 3-wide 15 Yes 5-wide dispatch Two-level big 8 28 / 16 No No 48 + 32 0.5–4 MiB No 1–4+ 4.72 0xD08
Cortex-A73[15] 2016 ARMv8.0-A 2-wide 11–12 Yes 4-wide dispatch Two-level big 7 28 / 16 / 10 No No 64 + 32/64 1–8 MiB No 1–4+ ~6.35 0xD09
Cortex-A75[7] 2017 ARMv8.2-A 3-wide 11–13 Yes 6-wide dispatch Two-level big 8? 28 / 16 / 10 No No 64 + 64 256–512 KiB/core 0–4 MiB 1–8+ 8.2-9.5[16] 0xD0A
Cortex-A76[17] 2018 ARMv8.2-A 4-wide 11–13 Yes 8-wide dispatch 128 Two-level big 8 10 / 7 No No 64 + 64 256–512 KiB/core 1–4 MiB 1–4 10.7-12.4[18] 0xD0B
Cortex-A76AE[19] 2018 ARMv8.2-A ? ? Yes 128 Two-level big ? ? SMT2 No ? ? ? ? ? 0xD0E
Cortex-A77[20] 2019 ARMv8.2-A 4-wide 11–13 Yes 10-wide dispatch 160 Two-level big 12 2*128b 7 No 1.5K entries 64 + 64 256–512 KiB/core 1–4 MiB 1-4 ? 0xD0D
Cortex-A78[21][22] 2020 ARMv8.2-A 4-wide Yes 160 Yes big 13 2*128b No 1.5K entries 32/64 + 32/64 256–512 KiB/core 1–4 MiB 1-4 ? 0xD41
Cortex-X1[23] 2020 ARMv8.2-A 5-wide[23] ? Yes 224 Yes big 15 4*128b No 3K entries 64 + 64 up to 1 MiB[23] up to 8 MiB[23] custom[23] ? 0xD44
Apple Inc. Cyclone[24] 2013 ARMv8.0-A 6-wide[25] 16[25] Yes[25] 192 Yes No 9[25] 28[26] No No 64 + 64[25] 1 MiB[25] 4 MiB[25] 2[27] ?
Typhoon 2014 ARMv8.0‑A 6-wide[28] 16[28] Yes[28] Yes No 9 20 No No 64 + 64[25] 1 MiB[28] 4 MiB[25] 2, 3 (A8X) ?
Twister 2015 ARMv8.0‑A 6-wide[28] 16[28] Yes[28] Yes No 9 16 / 14 No No 64 + 64[28] 3 MiB[28] 4 MiB[28] No (A9X) 2 ?
Hurricane 2016 ARMv8.1‑A 6-wide[29] 16 Yes “big” (In A10/A10X paired with “LITTLE” Zephyr cores) 9 16 (A10) 10 (A10X) No No 64 + 64[30] 3 MiB[30] (A10) 8 MiB (A10X) 4 MiB[30] (A10) No (A10X) 2x Hurricane + 2x Zephyr (A10) 3x Hurricane + 3x Zephyr (A10X) ?
Zephyr 2016 ARMv8.1‑A 3-wide 12 Yes LITTLE 5 16 (A10) 10 (A10X) No No 32 + 32[31] 1 MiB 4 MiB[30] (A10) No (A10X) 2x Hurricane + 2x Zephyr (A10) 3x Hurricane + 3x Zephyr (A10X) ?
Monsoon 2017 ARMv8.2‑A[32] 7-wide 16 Yes “big” (In Apple A11 paired with “LITTLE” Mistral cores) 13 10 No No 64 + 64[31] 8 MiB No 2x Monsoon + 4× Mistral ?
Mistral 2017 ARMv8.2‑A[32] 3-wide 12 Yes LITTLE 5 10 No No 32 + 32[31] 1 MiB No 2x Monsoon + 4× Mistral ?
Vortex 2018 ARMv8.3‑A[33] 7-wide 16 Yes “big” (In Apple A12/Apple A12X/Apple A12Z paired with “LITTLE” Tempest cores) 13 7 No No 128 + 128[31] 8 MiB No 2x Vortex + 4x Tempest (A12) 4x Vortex + 4x Tempest (A12X/A12Z) ?
Tempest 2018 ARMv8.3‑A[33] 3-wide 12 Yes LITTLE 5 7 No No 32 + 32[31] 2 MiB No 2x Vortex + 4x Tempest (A12) 4x Vortex + 4x Tempest (A12X/A12Z) ?
Lightning 2019 ARMv8.4‑A [34] 8-wide 16 Yes 560 “big” (In Apple A13 paired with “LITTLE” Thunder cores) 13 7 No No 128 + 128[35] 8 MiB No 2x Lightning + 4x Thunder ?
Thunder 2019 ARMv8.4‑A [36] 3-wide 12 Yes LITTLE 5 7 No No 96 + 48[37] 4 MiB No 2x Lightning + 4x Thunder ?
Firestorm 2020 ARMv8.5‑A 8-wide[38] 630[39] 5 No 2x Firestorm + 4x Icestorm ?
Icestorm 2020 ARMv8.5‑A 5 No 2x Firestorm + 4x Icestorm ?
Nvidia Denver[40][41] 2014 ARMv8‑A 2-wide hardware decoder, up to 7-wide variable- length VLIW micro-ops 13 Not if the hardware decoder is in use. Can be provided by dynamic software translation into VLIW. Direct+ Indirect branch prediction No 7 28 No No 128 + 64 2 MiB No 2 ?
Denver 2[42] 2016 ARMv8‑A ? 13 Not if the hardware decoder is in use. Can be provided by dynamic software translation into VLIW. Direct+ Indirect branch prediction “Super” Nvidia’s own implementation ? 16 No No 128 + 64 2 MiB No 2 ?
Carmel 2018 ARMv8.2‑A ? Direct+ Indirect branch prediction ? 12 No No 128 + 64 2 MiB (4 MiB @ 8 cores) 2 (+ 8) ?
Cavium ThunderX[43][44] 2014 ARMv8-A 2-wide 9[44] Yes[43] Two-level ? 28 No No 78 + 32[45][46] 16 MiB[45][46] No 8–16, 24–48 ?
ThunderX2 [47](ex. Broadcom Vulcan[48]) 2018[49] ARMv8.1-A [50] 4-wide “4 μops”[51][52] ? Yes[53] Multi-level ? ? 16[54] SMT4 No 32 + 32 (data 8-way) 256 KiB per core[55] 1 MiB per core[55] 16-32[55] ?
Marvell ThunderX3 2020[56] ARMv8.3+[56] 8-wide ? Yes 4-wide dispatch Multi-level ? 7 7[56] SMT4[56] ? 64 + 32 512 KiB per core 90 MiB 60 ?
AppliedMicro Helix 2014 ? ? ? ? ? ? ? 40 / 28 No No 32 + 32 (per core; write-through w/parity)[57] 256 KiB shared per core pair (with ECC) 1 MiB/core 2, 4, 8 ?
X-Gene 2013 ? 4-wide 15 Yes ? ? ? 40[58] No No 8 MiB 8 4.2
X-Gene 2 2015 ? 4-wide 15 Yes ? ? ? 28[59] No No 8 MiB 8 4.2
X-Gene 3[59] 2017 ? ? ? ? ? ? ? 16 No No ? ? 32 MiB 32 ?
Qualcomm Kryo 2016 ARMv8-A ? ? Yes Two-level? “big” or “LITTLE” Qualcomm’s own similar implementation ? 14[60] No No 32+24[61] 0.5–1 MiB 2, 4 6.3
Kryo 2XX 2017 ARMv8-A 2-wide 11–12 Yes 7-wide dispatch Two-level big 7 14 / 11 / 10 [62] No No 64 + 32/64? 512 KiB/Gold Core No 4 ?
2-wide 8 No 0 Conditional+ Indirect branch prediction ? 2 8–64? + 8–64? 256 KiB/Silver Core 4 ?
Kryo 3XX 2018 ARMv8.2-A 3-wide 11–13 Yes 8-wide dispatch Two-level big 8 10[62] No No 64+64[62] 256 KiB/Gold Core 2 MiB 4 ?
2-wide 8 No 0 Conditional+ Indirect branch prediction ? 28 16–64? + 16–64? 128 KiB/Silver 4 ?
Kryo 4XX 20182019 ARMv8.2-A 4-wide 11–13 Yes 8-wide dispatch Yes big 8 11 / 8 / 7 No No 64 + 64 512 KiB/Gold Prime256 KiB/Gold 2 MiB 1+3 ?
2-wide 8 No 0 Conditional+ Indirect branch prediction ? 2 16–64? + 16–64? 128 KiB/Silver 4 ?
Kryo 5XX 2019 ARMv8.2-A 4-wide 11–13 Yes 8-wide dispatch Yes big 8 No ? 512 KiB/Gold Prime256 KiB/Gold 3 MiB 1+3
2-wide 8 No 0 Conditional+ Indirect branch prediction 2 ? 128 KiB/Silver 4 MiB
Kryo 6XX 2020 ARMv8.2-A Yes big ? 64 + 64 1024 KiB/Gold Prime512 KiB/Gold 4 MiB 1+3+4
Falkor[63][64] 2017[65] ARMv8.1-A features”;[64] AArch64 only (not 32-bit)[64] 4-wide 10–15 Yes 8-wide dispatch Yes ? 8 10 No 24 KiB 88[64] + 32 500KiB 1.25MiB 40-48 ?
Samsung M1[66][67] 2015 ARMv8-A 4-wide 13[68] Yes 9-wide dispatch[69] 96 big 8 14 No No 64 + 32 2 MiB[70] no 4 ?
M2[66][67] 2017 ARMv8-A 100 Two-level big 10 64 + 64
M3[68][71] 2018 ARMv8.2-A 6-wide 15 Yes 12-wide dispatch 228 Two-level big 12 10 No No 64 + 64 512 KiB per core 4096KB 4 ?
M4[72] 2019 ARMv8.2-A 6-wide 15 Yes 12-wide dispatch 228 Two-level big 12 8 / 7 No No 64 + 64 512 KiB per core 4096KB 2 ?
M5[73] 2020 Yes 12-wide dispatch 228 Two-level big No 64 + 64
Fujitsu A64FX[74][75] 2019 ARMv8.2-A 4/2-wide 7+ Yes 5-way? Yes n/a 8+ 512b[76] 7 No No 64 + 64 8MiB per 12+1 cores No 48+4 1.9GHz+; 15GF/W+.
HiSilicon TaiShan V110[77] 2019 ARMv8.2-A 4-wide ? Yes n/a 8 7 No No 64 + 64 512 KiB per core 1 MiB per core ? ?
Company Core Released Revision Decode Pipeline depth Out-of-order execution Branch prediction big.LITTLE role Exec. ports SIMD Fab (in nm) Simult. MT L0 ca

2.ArmV8 -> ArmV9

ArmV8 -> ArmV9:安全性升级

安全性升级对于 Armv9 来说,其重要性相当于 64 位对于 Armv8。

https://cdn.forsre.cn/arm001.png

自 2011 年 10 月 Arm 首次公布 Armv8 架构以来,已经有近 10 年的时间了,这是计算领域相当多变的 10 年,因为指令集架构通过移动领域到服务器领域的应用越来越多,现在开始在笔记本电脑和即将到来的台式机等消费设备市场上普及。这些年来,Arm 对 ISA 进行了各种更新和扩展,有些是重要的,有些也许很容易被忽略。

作为 Arm Vision Day 活动的一部分,Arm 公布了全新的 Armv9 架构,为 Arm 希望在未来十年成为下一代 3000 亿颗芯片的计算平台奠定基础。

https://cdn.forsre.cn/arm002.png

Armv9 与 Armv8 到底有什么区别,才会在 ISA 的命名上有如此大的跳跃?

外媒分析称,说实话,单纯从 ISA 的角度来看,v9 可能并不像 v8 相比 v7 那样有根本性的跳跃,v8 曾用 AArch64 引入了完全不同的执行模式和指令集,而 AArch64 比 AArch32 有更大的微观架构影响,比如扩展寄存器、64 位虚拟地址空间等许多改进。

Armv9 延续了 AArch64 作为基准指令集的使用,然而在功能上增加了一些非常重要的扩展,值得在架构编号上做一个增量,可能让 Arm 也实现了一种软件的重新垒砌,不仅是新的 v9 功能,也包括我们这些年看到的各种 v8 扩展的发布。

Armv9 拥有三大新支柱,Arm 认为新架构的主要目标是:安全、AI 以及改进矢量和 DSP 能力。安全性是 v9 的一个非常大的话题,值得更深入地介绍新的扩展和功能细节,但谈到 DSP 和 AI 功能,可以是很直接的。

https://cdn.forsre.cn/arm003.png

承诺与 Armv9 兼容的新 CPU 最大的新特性可能是开发者和用户马上就能看到的,那就是 SVE2 作为 NEON 的后续产品的基线。

可伸缩矢量扩展,也就是 SVE,在第一次实现的时候,早在 2016 年就宣布了,并首次在富士通的 A64FX CPU 核心中实现,现在日本的世界第一超级计算机 Fukagu 就采用了 SVE。SVE 的问题在于,这个新的可变向量长度 SIMD 指令集的首次迭代范围相当有限,而且更多的是针对 HPC 工作负载,缺少了许多通用性较强的指令,而这些指令仍然被 NEON 所覆盖。

SVE2 早在 2019 年 4 月就公布了,希望通过补充新的可扩展 SIMD 指令集所需的指令来解决这个问题,以服务于目前仍在使用 NEON(指 128 位 SIMD 单指令多数据扩展结构)的更多样的 DSP 类工作负载。

SVE 和 SVE2 除了增加各种现代 SIMD(单指令多数据)能力之外,好处在于它们的可变向量大小,从 128b 到 2048b 不等,允许可变 128b 粒度的向量,而不管实际硬件运行在什么地方。纯粹从矢量处理和编程的角度来看,这意味着软件开发者只需要编译一次代码,如果未来 CPU 会出现比如原生 512b 的 SIMD 执行流水线,代码就已经可以利用单位的全部宽度了。另外,同样的代码也能在更保守的设计上运行,并具有更低的硬件执行宽度能力,这对 Arm 公司来说非常重要,因为他们设计了从物联网、移动设备到数据中心的 CPU。此外,它还能在 Arm 架构的 32b 编码空间内完成所有这些工作,而在 x86 上的其他实现则必须根据向量大小增加新的扩展和指令。

https://cdn.forsre.cn/arm004.png

机器学习也被视为 Armv9 的一个重要部分,因为 Arm 看到未来几年越来越多的 ML 工作负载将变得普遍。在专用加速器上运行 ML 工作负载自然仍然是性能或能效关键的要求,然而,仍然会有大量新的较小范围的 ML 工作负载采用,这些工作负载将在 CPU 上运行。

矩阵乘法指令是这里的关键,并将代表着在整个生态系统中看到更大规模采用的重要一步,作为 v9 CPU 的基线功能。

一般来说,SVE2 可能是保证跳转到 v9 命名法的最重要因素,因为它是一个更明确的 ISA 功能,在日常使用中区别于 v8 CPU,这将保证软件生态系统去实际分化现有的 v8 堆栈。这其实已经成为 Arm 在服务器领域的一个相当大的问题,因为软件生态系统仍然是以 v8.0 为基础的软件包,可惜缺少了最重要的 v8.1 大系统扩展。

让整个软件生态系统向前发展,并且能够假设新的 v9 硬件具有新架构扩展的能力,这将有助于推动事情的发展,可能会解决目前的一些情况。

然而 v9 不仅仅是 SVE2 和新的指令,它还有一个非常大的重点就是安全,在这里我们会看到一些比较彻底的变化。

新的 Arm 保密计算架构 (CCA)试图通过基于硬件的安全环境保护敏感数据。这些所谓的 “领域”可以动态创建,以保护重要数据和代码不受系统其余部分的影响。

除了这些更具体的改进外,Arm 还承诺在 Armv9 基础上进行更全面的性能提升。该公司预计,在未来两次迭代中,CPU 性能将提高 30% 以上,并通过软件和硬件优化进一步提升性能。Arm 表示,所有现有软件都可以在基于 Armv9 的处理器上运行,没有任何问题。