ARM architecture overview:一个波澜壮阔史诗的剪影

举报
宏观鲲鹏 发表于 2021/05/01 11:33:21 2021/05/01
【摘要】 【完整提纲】一、CPU指令集架构科普1、从2300个到百亿晶体管2、RISC指令集和ARM指令架构3、微架构和ARM指令集处理器架构二、ARM商业和IP授权模式1、ARM商业模式和授权体系2、ARM指令集架构授权:苹果A、M处理器成功典范3、ARM处理器内核IP授权:与生态伙伴实现双赢4、ARM Cortex-A:助力国产智能终端SoC崛起5、ARMCortex-M:本土厂商卡位物联网MCU...

【完整提纲】

一、CPU指令集架构科普

1、从2300个到百亿晶体管

2RISC指令集和ARM指令架构

3、微架构和ARM指令集处理器架构

二、ARM商业和IP授权模式

1ARM商业模式和授权体系

2ARM指令集架构授权:苹果AM处理器成功典范

3ARM处理器内核IP授权:与生态伙伴实现双赢

4ARM Cortex-A:助力国产智能终端SoC崛起

5ARMCortex-M:本土厂商卡位物联网MCU高端市场

三、ARM演进及V8架构

1ARM架构演进:命名规则和位宽

2ARMv8-A架构:6个主要模块

3ARMv8 Cluster:设计参考架构((Core(L1I/L1D)-*4+L2)-->Cluster)+AMB Coherent Bus

4ARMv8-A/v7架构区别:地址空间4GB/256TBEL0-3/物理隔离,通用寄存器15-30

5ARMv8架构特性总结

四、ARM v9架构

1、支持SVE2和矩阵乘法

2Armv9 Armv8 :安全、AI 以及改进矢量扩展和 DSP 能力

3、具有保密功能的计算架构

4、未来 Arm CPU路线图

5Armv9设备将在2022年初面世

6、华为是否可用?

 

一、CPU指令集架构科普

1、从2300个到百亿晶体管

1971年11月15日,美国英特尔推出世界第一款商用计算机微处理器Intel 4004,被认为是CPU发展史的开端。作为4位处理器,Intel 4004由10um制程工艺在2英寸晶圆上打造,集成了2300个晶体管,主频为740kHz。

到了49年后的2020年,第十一代酷睿处理器芯片基于英特尔10nm工艺打造,将集成超过百亿个晶体管,最高主频可高达4.8Ghz。这颗CPU芯片不再是单一的CPU,而是集成了全新架构的Willow Cove内核、Iris X图形处理器、内存控制器、图像处理器、媒体解码器、电源管理、神经元加速器和各类高速接口控制器等各种组件。其中Willow Cove内核正是这颗CPU芯片集成的传统意义上的CPU。

2RISC指令集和ARM指令架构

计算机指令(Instruction)是计算机硬件直接能识别的命令。指令是由一串二进制数码组成。一条指令通常由两个部分组成:操作码和地址码。操作码指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等;地址码指明操作对象的内容或所在的存储单元地址。计算机程序在硬件上执行是由成千上万条指令组成的。一段程序通过编译翻译成汇编语言,而后通过汇编器翻译成一条一条机器码。这些机器码是由0和1组成的机器语言表示,也就是计算机指令。
指令集架构(Instruction Set Architecture)是指一种类型CPU中用来计算和控制计算机系统的一套指令的集合。指令集架构主要规定了指令格式、寻址访存(寻址范围、寻址模式、寻址粒度、访存方式、地址对齐等)、数据类型、寄存器。指令集通常包括三大类主要指令类型:运算指令、分支指令和访存指令。此外,还包括架构相关指令、复杂操作指令和其他特殊用途指令。因此,一种CPU执行的指令集架构不仅决定了CPU所要求的能力,而且也决定了指令的格式和CPU的结构。X86架构和ARMv8架构就是指令集架构的范畴。


指令集架构以其复杂性可被分类为复杂指令集架构(CISC,Complex Instruction Set Computer)和精简指令集架构(RISC,Reduced Instruction Set Computer)两大类。CISC和RISC指令集架构是计算机指令系统的优化发展中先后出现。在计算机发展初期,计算机的优化方向是通过设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的指令系统实现,以此来提高计算机的执行速度,这种计算机系统就被称为复杂指令系统计算机。20世纪80年代,尽量简化计算机指令功能的基本思想被提出,功能简单、能在一个节拍内执行完成的指令被保留,而较复杂的功能用一段子程序来实现,这种计算机系统就被称为精简指令系统计算机。


ARM指令集架构作为目前最成功RISC架构,主导了智能手机和物联网芯片处理器市场。根据英伟达公告,基于ARM架构的芯片已累计出货1800亿颗。ARM架构处理器在智能手机芯片、车载信息芯片、可穿戴设备、物联网微控制器等领域占到90%以上市场份额。90年代,MIPS和Alpha作为知名RISC在与X86竞争计算机市场中失败,又在错过智能终端高速发展的机遇中走向衰弱。2010年发布的RISC-V作为从发明伊始即以开源为最大特色的RISC ISA受到全球学界、产业界的高度关注。全球顶级学府、科研机构、芯片巨头纷纷参与,各国政府出台政策支持RISC-V的发展和商业化。RISC-V有望成为X86和ARM之后ISA第三极。

ARM指令集.png

3微架构ARM指令集处理器架构

·诺依曼体系结构是现代计算机的基础。1946年美籍匈牙利科学家冯·诺伊曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。冯·诺依曼体系结构主要由CPU、存储器(Memory)和输入输出设备(I/O Device)组成。在该体系结构下,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。冯·诺依曼体系的CPU工作分为5个阶段:取指令阶段(instruction fetch)、指令译码阶段(instruction decode)、执行指令阶段(execute)、访存取数(read memory)和结果写回(write back)。
哈佛结构是另一种主要计算机架构体系。与冯诺依曼处理器相比,哈佛结构的指令和数据存在两个相互独立的存储器模块,使用两条独立的总线连接CPU和存储模块。而在改进型哈佛结构(Modified Harvard Architecture)中,指令和数据存在两个相互独立的存储器模块,但是共用地址和数据总线。

现代的复杂芯片上,已经看到纯粹的冯·诺伊曼体系或者哈佛体系,而大多数能看到是两者融合或者并存的体系。

冯诺依曼架构.png


实现指令集架构的物理电路被称为处理器的微架构(Micro-architecture)。因此,通俗来讲处理器架构就是处理器电路。通常,具备独立设计处理器微架构的企业被认为有处理器研发能力。大多数情况下,一种处理器的微架构是针对一种特定指令集架构进行物理实现。少部分处理器架构设计为了更好的兼容性,会在电路设计上实现多个指令集架构。虽然,指令集架构可以授权给多家企业,但微架构的设计细节,也就是对指令的物理实现方式是各家厂商绝对保密的。由于处理器的功能要求、使用场景不同、各家企业设计技术的差异等因素,即使基于同一指令集架构,各个企业也会设计生产出不同的处理器架构。

ARM A77架构图.png



在智能移动设备兴起的近20年,以ARM模式为代表的内核微架构IP授权模式兴起。ARM开发内核微架构后,将它们以IP形式上架出售,芯片厂商以ARM授权的内核为基础设计芯片使用或对外销售。基于ARM精简指令集架构的ARM内核微架构IP选择多样、设计精简可靠、在低功耗领域表现优异,这种授权模式在以手机、平板为代表的移动终端芯片、机顶盒、视频监控等应用媒体芯片等应用为代表移动智能领域获得广泛的成功。ARM因此也成为移动互联时代的处理器IP授权霸主。

 

 

 

二、ARM商业和IP授权模式

1ARM创新:商业模式和授权体系

作为半导体企业,ARM独特的商业模式是不设计和制造整芯片,而是专注处理器内核架构的授权。ARM一直以来保持作为处理器IP供应商的中立地位。中立地位帮助ARM通过架构授权广泛推广了基于ARM架构的生态系统。ARM处理器架构授权主要分为指令集授权和处理器架构授权两个层次:一是ARM指令集架构授权,二是ARM处理器架构授权。公司收入来源包括:1)对半导体公司的授权费用,一定时间范围内是一次性的;2)半导体公司向其他客户销售芯片的royalty费用,客户每生产一颗芯片ARM都有一定百分点的版税收入;3)向半导体公司、用户提供技术咨询服务的费用。

 

ARM商业模式.png

 

ARM授权体系.png


2ARM指令集架构授权:苹果AM处理器成功典范

ARM指令集架构授权指ARM将ARM RISC精简指令集授权给受让方。受让方可以对ARM指令集进行大幅度改造,甚至可以对ARM指令集进行扩展或缩减。之后,受让方根据自己改进过的指令集研发处理器架构,从而在根源上做到了对处理器架构的差异化设计,保持对自研芯片的掌控力,达成独特竞争力同时又兼容ARM的完善生态环境。而ARM在这种合作模式中与合作伙伴结成高度紧密的技术合作关系。

苹果的A系列处理器是基于ARM指令集架构授权自研内核的成功典范。2012年9月,苹果随iPhone5上市发布了A6处理器SoC,这颗SoC基于ARMv7架构打造的Swift内核微架构开启了苹果基于ARM架构自研处理器内核的序幕。2013年9月,苹果率先发布搭载基于ARMv8架构研发的64位Cyclone架构的双核A7处理器。A7作为世界首款64位智能手机处理器,在性能表现力压还在32位四核方案上竞争的安卓阵营。苹果A系列处理器内核性能力压所有安卓阵营竞争对手序幕由此开启,并延续至今。

2020年,苹果宣称新发布的A14 Bionic芯片性能已经堪比部分笔记本处理器。苹果在今年WWDC2020宣布Mac电脑将转向使用公司自主开发的基于ARM架构处理器。

我们认为,苹果结束与英特尔长达15年的合作,转而使用自研ARM处理器最重要目的是进一步封闭苹果的软硬件生态。苹果希望如同iPhone的成功一样,从硬件上得到充分自主,做到差异化竞争优势。从ARM角度来看,苹果一旦成功也将帮助ARM实现一直以来希望撕开X86垄断的个人计算机市场的野心。


3ARM处理器内核IP授权:汽车、家电、工业生态伙伴实现双赢

ARM处理器架构授权指ARM将自行设计的处理器内核IP授权给客户。

客户可以直接将内核RTL(Register Transition Level)代码在芯片前端设计时集成在芯片处理器模块中。客户也可以对处理器缓存、核数、频率进行配置。通过系统总线与其他的功能模块、外设接口、主存储接口模块等连接,生成完整的芯片。ARM为各种应用场景提供多样化的家族化处理器IP解决方案,覆盖高性能计算、高性能实时、低功耗嵌入式、云端计算、硬件安全和高性能机器学习等场景。ARM的处理器IP授权模式为合作伙伴提供可靠处理器的同时降低芯片开发成本,推动应用的创新。而广泛的合作伙伴丰富了ARM的生态,奠定ARM在智能时代中智能手机、物联网等领域处理器主导地位。

 ARM Cortex系列处理器内核是ARM家族中占据处理器IP市场的核心系列。

其中,Cortex-A系列面向高性能计算需求、运行丰富操作系统和程序任务的应用领域。例如智能手机、平板电脑、机顶盒、数字电视、路由器和监控SoC芯片等。Cortex-A目前有A7x系列为代表的性能大核产品线和A5x系列为代表低功耗小核产品线。
现代多核SoC为了兼顾性能峰值表现和低功耗,经常同时集成一定数量大核和小核。其中大核运行短时间的高性能需求任务;小核运行低性能需求的任务或者在待机状态支持背景任务运行。目前,除了苹果自研处理器内核以外,以高通、海思、联发科为首的安卓智能机SoC芯片设计企业都采用Cortex-A7x和A5x搭配作为内核集合(cluster)配置。其中,高通和华为会在架构上做不同程度的优化。


相比Cortex-A处理器内核,Cortex-M处理器内核被设计成面积更小,能效比更高。通常这些处理器的流水线很短,设计简单,最高时钟频率很低,功耗表现优异。Cortex-M系列在目前智能互联时代应用前景非常广阔,覆盖智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械等应用需求,Cortex-M在目前全球32位MCU市场占据主导地位。Cortex-R处理器是面向实时应用的高性能处理器系列,运行在比较高的时钟频率,其响应延迟非常低。主要应用于硬盘控制器,汽车传动系统和无线通讯的基带控制等领域。半导体ARM助力国产芯片质与量双击,收购案或刺激自主可控提速


4ARM Cortex-A:华为海思、晶晨、展锐等,国产智能终端SoC崛起


根据CINNO Research发布的最新数据显示,2020年上半年,国内市场智能机销量约1.4亿部,其中华为(含荣耀)市场份额达到40.2%。另据市场调研机构Counterpoint发布的报告显示,2020Q2海思麒麟芯片占据41%的国内智能手机芯片市场份额,成为国内第一。同时,海思麒麟芯片在全球智能机芯片市场份额提升到16%,超过苹果和三星。近年来华为手机质和量形成双击,特别是旗舰手机得到全球市场广泛认可。除去全球疫情蔓延和美国打压带来的国货消费潮等偶然因素,我们认为内在主因是基于硬件上的自主创新获得的用户体验提升和形成差异化竞争。搭载ARM处理器的华为海思自研的麒麟芯片是一系列硬件创新的核心之一。

 半导体产业fabless+foundry+OSAT分工体系从工程上成就了包括麒麟芯片在内的海思芯片的成功。华为对海思不断持续巨额投入带来的芯片设计能力提升成功对接全球最先进的制程工艺和封装工艺。而在芯片设计领域,ARM的处理器IP授权模式成为历代麒麟芯片成功的重要因素之一。

ARM的授权模式对麒麟芯片积极影响有以下几方面:

一是在创业初期,ARM的授权模式可以帮助作为后发者的海思在处理器内核性能上直接拉到和安卓阵营竞争对手同一个层级。

二是对于ARM在智能手机领域的主导地位,使海思自研手机芯片能够借助ARM完善的生态,帮助华为手机快速进入主流智能机市场。

三是基于消费电子市场的特点,ARM的处理器授权有效缩短了包括海思在内的企业开发周期和成本。

 

除了基于ARM公版内核架构开发芯片以外,华为已经具备基于ARM指令集架构的处理器内核开发能力。海思在麒麟990官方发布和配置表都宣称为使用“基于A76”(A76 Based)内核,显示海思已经对ARM处理器内核和指令集有深入了解,掌握了自行对架构修改的能力。

2019年1月,华为跟进一步发布自研服务器芯片鲲鹏920。该服务器芯片搭载了64颗海思基于ARMv8架构自研的泰山内核。整体服务器性能较市场现有竞品提升20%。2019年5月,华为宣布获得ARMv8架构永久授权,并且强调华为海思有持续自行开发设计基于ARM授权架构的处理器。


近年来,智能手机SoC以外的国产智能终端SoC芯片也借助Cortex-A系列处理器IP逐步实现国产替代。国产搭载ARM架构处理器的SoC涵盖了智能高清机顶盒、IPC、网络摄像头、车载娱乐信息设备等。根据格兰研究院数据,2018年华为海思和晶晨股份(688099,无评级)分别占据国内60.7%和32.6%的IPTV/OTT机顶盒芯片市场。而在2013年,欧洲芯片巨头意法半导体还占据国内机顶盒芯片市场30%以上。在安防领域,以海思为代表的国内厂商已经实现IPC芯片实现低端替代到全档次布局。 

中国ARM架构SOC产品.png

5ARMCortex-M:中美日韩等,卡位物联网MCU高端市场

根据IC Insights数据,2019年MCU全球销售额为164亿美元。产品主要用于汽车电子、工控/医疗、计算机网络和消费电子等领域,占比分别为33%、25%、23%和11%。IC Insights同时预计MCU在经历2019年和2020年下滑后,将在2021年出现温和复苏,销售额将增长5%至157亿美元,其次是2022年将同比增长8%,2023年将同比增长11%。届时MCU收入将创下188亿美元的新高。全球MCU市场主要由瑞萨电子(日本)、恩智浦(荷兰)、英飞凌(德国)、微芯科技(美国)、三星电子(韩国)、意法半导体(意法)、赛普拉斯(美国)占据。
根据HIS和ASPENCORE数据,2019年中国MCU市场规模达到256亿人民币。中国MCU应用市场主要集中在家电/消费电子、计算机网络、汽车电子、智能卡、工控等领域,市场占比分别为25.6%、18.4%、16.2%、15.3%和11.2%。受益于国内物联网和新能源车行业的增长领先于全球,中国MCU市场规模在2008年到2018年间CAGR为7.2%,领先全球。同时,HIS预计2022年,中国MCU市场规模将达到319亿人民币,增速继续超过全球。预计2020年国产MCU厂商的销售额将达到148亿元人民币,占整个中国MCU市场的55%。ARM Cortex-M处理器助力国内厂商卡位MCU市场的价值链上游。目前,国内MCU厂商在消费电子、智能卡和水电煤气仪表等中低端应用领域实现国产替代。随着物联网终端需求推进,物联网时代任务的复杂化对计算能力的要求将使MCU往16或32位设计。32位MCU是基于未来物联网的市场发展方向。既满足厂商上述要求又具有丰富生态系统资源的ARM Cortex-M系列处理器内核成为32位MCU内核市场主导。兆易创新、中颖电子等国内MCU厂商也纷纷借助基于ARM Cortex-M系列处理器的32位MCU积极布局国内中高端市场,向产业价值链上游卡位。国产32位MCU已经开始进入国外传统厂商所垄断的高端MCU市场。
作为国产IC设计领军企业,兆易主要提供基于ARM Cortex-M系列32位通用MCU产品,其GD32是ARM®Cortex-M3及Cortex-M4内核通用MCU产品系列,也是目前中国32位通用MCU主流产品,广泛应用于工业自动化、人机互动、电机控制、安防家弄、智能家居家电及物联网等领域。根据公司2020年中报,兆易MCU产品包括330余个产品型号、23个产品系列和11种不同封装类型,累计出货已超过4亿颗。2020年7月,兆易创新发布基于全新Arm Cortex-M33内核的GD32E5系列高性能微控制器,确定以无线连接、电池供电设备以及便携式、可穿戴设备、汽车级MCU几大方向的产品路线。

 

三、ARM演进及V8架构

 https://developer.arm.com/docs

1、ARM架构演进:命名规则和位宽

ARM架构演进图.png

ARM演进概述

  • ARM架构的演变过程是从ARMv4, ARMv5, ARMv6, ARMv7, ARMv8-A
  • 其中芯片的命名从ARM11开始使用新的命名规范Cortex,比如现在最新的高通SM865使用的是ARMv8-A架构,Cortex-A77的core
  • ARMv4到ARMv7都是只支持32位,从ARMv8-A开始支持64位,就是我们常说的AArch64。同时ARMv8也为了兼容ARMv7的应用,也支持32位
  • 虚拟化(Virtualization)也是在ARMv7后面开始引入,在ARMv8-A已经开始全面支持
  • TrustZone技术在ARMv7和ARMv8已经大范围使用

 

2、ARMv8-A架构:6个主要模块

 ARMv8-A都包含了那些模块呢? 我们以Cortex-A57举例 

A57架构模块图.png

主要涉及的模块有:

  • ARM CoreSight 技术,用于debug使用
  • Generic Interrupt Controller(GIC)中断控制器
  • Memory Protection Unit(MMU)MMU用于将虚拟地址转化为物理地址
  • 每个Core中都有一个L1 指令和数据Cache,一般每四个core会在一个Cluster中的
  • 存在一个L2 cache
  • 多个core可能通过Coherent Bus通信

 

3、ARMv8 Cluster设计参考架构((Core(L1I/L1D)-*4+L2)-->Cluster)+AMB Coherent Bus

ARM cluster.png

这是一个多个Cluster的设计图

 可以看到一个Cluster中每个core都有一个L1 Cache,一个Cluster存在一个L2cache用于多个core之间共享数据。而多个Cluster通过AMB Coherent Bus总线沟通交流。

4、ARMv8-A/v7架构区别:地址空间4GB/256TBEL0-3/物理隔离,通用寄存器15-30

ARMv8-A相对于ARMv7架构区别:

ARM V7 V8区别.png

  • ARMv7架构下只能访问最大4GB的地址空间,而在ARMv8-A可以访问更大的地址空间。
  • ARMv7只支持4KB的page,在ARMv8-A下可以支持多种页类型(4K,16K, 64K),地址范围【32, 48】最大48位
  • 所以ARMv8-A架构下下应用程序可以访问更大的虚拟地址空间
  • ARMv8-A首次引入了Exception Level的概念,在ARMv7下使用的是PL0, PL1, PL2。 而在ARMv8-A下使用的是EL0-EL3
  • ARMv8-A增加了通用寄存器的数量,可以减少函数栈的大小。ARMv8-A下使用了30个通用寄存器,ARMv7下只有15个通用寄存器
  • ARMv8-A增加了TLB的大小,减少TLB MISS的概率
  • ARMv8-A架构完全支持ARMv7架构下的应用程序
  • 等等等

以及以下几个模块

  • ARMv8-A下通用寄存器和ARMv7通用寄存器做对比
  • ARMv8-A新引入的Exception Level
  • ARMv8下的异常
  • ARMv8下Memory,MMU, LTB
  • ARMv8下GIC,中断

 

5、ARMv8架构特性总结

ARMv8架构,引入了Execution State、Exception Level、Security State等新特性,是目前ARM架构变动最大的一次,具体来说:

1,A64:Large memory

对于Large memory的需求也可通过Large Physical Address Extensions (LPAE) 技术,虽然可以支持高达40bits的物理地址空间,但受限于32-bit的指令集,虚拟地址空间依旧只有32bits(4G),定义64-bit的指令集(A64)。向前兼容32-bit指令集(A32和T32)。

2,安全: 物理(内存)上的区隔

ARMv7 security extension的基础上,兼容TrustZone架构,新增security model。它不同于privilege level等软件逻辑上的保护,而是一种物理上的区隔,即不同security状态下,可以访问的物理内存是不同的。在Security状态下,处理器可以访问所有的Secure physical address space以及Non-secure physical address space;在Non-security状态下,只能访问Non-secure physical address space。

3,虚拟化:完整硬件虚拟化/指令集/异常处理/MMU/IO

ARMv7 virtualization extension的基础上,提供完整的virtualization框架,从硬件上支持虚拟化。包括指令集虚拟化、异常处理虚拟化、MMU虚拟化、IO虚拟化。

4,EL: 4个Exception level体现了安全防御的思想(上一级处理)

定义AArch64和AArch32两套运行环境(称作Execution state),分别执行64-bit和32-bit指令集。使用exception level,替代了processor mode、privilege level等概念。

ARMv8 定义了4 个 Exception level,简称 EL0-EL3。同时Exception level 包含了 privilege 概念。


AArch64中,已经没有User、SVC、ABT等处理器模式的概念,由于向前兼容,在AArch32中,就把这些处理器模式映射到了4个Exception level。如上图所示。

当异常发生时,有两种选择,停留在当前的EL,或者跳转到更高的EL,EL不能降级。同样,异常处理返回时,也有两种选择,停留在当前EL,或者调到更低的EL。应用位于特权等级最低的EL0,Guest OS(Linux kernel等)位于EL1,提供虚拟化支持的Hypervisor位于EL2(可以不实现),提供Security支持的Seurity Monitor位于EL3。这里面体现了安全防御的思想,即出现异常事件必须由逐级由上一级EL处理。

 

四、ARM v9架构

1、支持SVE2和矩阵乘法

  2011 年 10 月 Arm 首次公布 Armv8架构以来,已经有近 10 年的时间了,这是计算领域相当多变的10 年,因为指令集架构通过移动领域到服务器领域的应用日益广泛,如今已开始在笔记本电脑和即将到来的台式机等消费设备市场上普及。 

ARM V9路标.png

这些年来,Arm 对 ISA 进行了各种更新和扩展,其中一些重要的内容,有些也许很容易被忽略。但不管如何改动,都是基于ArmV8架构基础之上的。所以,大家也都在翘首等待Arm最新的ArmV9架构的到来。

 今天,作为Arm的Vision Day活动的一部分,该公司终于宣布了全新Armv9架构的首个细节,为Arm公司希望在未来十年成为下一个3000亿芯片的计算平台奠定基础。

2、Armv9 与 Armv8 安全、AI 以及改进矢量扩展和 DSP 能力

读者可能会问自己一个最大的问题,那就是Armv9与Armv8到底有什么区别,才会在ISA的命名上有如此大的跳跃。说实话,单纯从ISA的角度来看,v9可能并不像v8比v7那样是一个根本性的跳跃,v8曾用Arch64引入了完全不同的执行模式和指令集,而Arch64比Arch32有更大的微架构影响,比如扩展寄存器、64位虚拟地址空间等许多改进。

ARM v9 矢量扩展.png

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

EETOP了解到,Armv9 拥有三大新支柱,Arm 认为新架构的主要目标是:安全、AI 以及改进矢量扩展和 DSP 能力。安全性是 v9 的一个非常大的话题,我们将更深入地讨论新的扩展和特性的新细节,但首先应该直接了解DSP和AI特性。

新的Armv9兼容CPU所承诺的最大的新功能可能是开发人员和用户可以立即看到的,它是SVE2作为NEON的后继产品的基础。

 

可扩展矢量扩展(Scalable Vector Extensions,简称SVE)的首次实现是在2016年宣布的,并首次在富士通的A64FX CPU内核中实现,目前正用于为日本世界第一的超级计算机Fukagu。。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 上的其他实现则必须根据向量大小增加新的扩展和指令。 

ARM V9 ML.png

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

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

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

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

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

3、具有保密功能的计算架构

在过去的几年中,我们已经看到安全性和硬件安全性漏洞已成为新闻的头等大事,例如Spectre,Meltdown等许多漏洞,以及它们所有同级的侧信道攻击都表明,对安全性的根本需求是重新思考如何处理安全性。Arm希望解决这一总体问题的一种方法是通过引入Arm机密计算体系结构来重新设计安全应用程序的工作方式。 

ARM V9 机密计算1.png

ARM V9 机密计算2.png

在继续之前,先提醒一下,今天的披露仅仅是对新CCA运作方式的高层解释,Arm表示,有关新安全机制的确切工作原理的更多细节将在今年夏天晚些时候公布。

CCA的目标是从当前的软件堆栈情况中获得更大的收益,在当前的软件堆栈情况下,在设备上运行的应用程序必须固有地信任它们所运行的操作系统和虚拟机管理程序。传统的安全模型是基于以下事实建立的:更高特权的软件层被允许并能够查看较低层软件的执行情况,,然而当操作系统或系统管理程序被以任何方式损害时,这就可能成为了一个问题。

CCA引入了动态创建““realms”的新概念,可以将其视为对OS或虚拟机管理程序完全不透明的安全容器化执行环境。系统管理程序将仍然存在,但仅负责调度和资源分配。而“realm”将由称为“ealm manager”的新实体管理,其被认为是一段新的代码,大约只有管理程序的1/10大小。

realm内的应用程序将能够“证明”realm管理器以确定其是否可信任,这对于传统的虚拟机管理程序而言是不可能的。

Arm并没有深入探讨究竟是什么造成了realm与操作系统和虚拟机管理程序的非安全世界之间的这种隔离,但听起来确实像硬件支持的地址空间,它们无法相互交互。 ARM V9 机密计算 CCA.png

ARM V9 机密计算 CCA2.png

使用领域的优势在于,它极大地减少了设备上运行的给定应用程序的信任链,并且OS对安全性问题变得越来越透明。与当今需要企业或企业使用带有授权软件堆栈的专用设备的情况相反,需要监督控制的关键任务应用程序将能够在任何设备上运行。 

MTE并不是v9的新功能,而是随v8.5一起引入的,MTE或内存标签扩展旨在帮助解决全球软件中两个最持久的安全问题。缓冲区溢出和无用后使用是持续的软件设计问题,在过去的50年中,这些问题一直是软件设计的一部分,要识别或解决它们可能要花费数年时间。MTE旨在通过在分配时标记指针并在使用时进行检查来帮助识别此类问题。

4、未来 Arm CPU路线图

虽然这与v9没有直接关系,但是与即将到来的v9设计的技术路线图紧密相关,Arm还谈到了有关他们在未来2年中对v9设计的预期性能的一些观点。

 Arm表示,与几年前2016年的Cortex-A73相比,移动领域今年的X1设备性能提升了2.4倍(我们这里说的是纯ISO进程设计的IPC)。

有趣的是,Arm还谈到了Neoverse V1设计,以及他们如何实现2.4倍于A72级设计的性能,并披露他们预计今年晚些时候将发布第一批V1设备。

对于代号为Matterhorn和Makalu的下一代移动IP核,Arm披露这两代产品预计IPC总增益将达到30%,不包括SoC设计人员可能达到的频率或任何其他额外性能增益。这实际上代表了这两款新设计的14%的代际增长,正如幻灯片中的性能曲线所示,这表明相对于Arm在A76之后的几年里所做的改进正在放缓。尽管如此,该公司表示,发展速度仍然远远超过行业平均水平。

 

Arm还提供了一张很有意思的PPT,该PPT旨在关注系统侧对性能的影响,而不仅仅是CPU IP性能。从这里提供的一些数据可以看到,例如每5ns的内存延迟中有1%的性能,但Arm在这里也指出,如果专注于通过改善内存路径、增加缓存或优化频率能力来改善实现的其他各方面,CPU的性能可以被压榨出整整一代。我认为这是对目前SoC厂商保守做法的隐晦抨击,他们没有充分利用X1核心的预期性能余量,随后也没有达到新核心的预期性能预测。 

ARM v9 tomorrow.png

Arm仍然认为CPU是未来最通用的计算块。虽然专用加速器或GPU会有其一席之地,但它们很难解决可编程性、保护性、普适性(本质上能够在任何设备上运行)以及正确工作的成熟能力等重要点。目前,计算生态系统的运行方式极其分散,不仅设备类型不同,设备厂商和操作系统之间也存在差异。

SVE2和矩阵乘法可以极大地简化软件生态系统,让计算工作负载向前迈进一步,采用更统一的方法,未来可以在任何设备上运行。

 最后,Arm对Mali GPU的未来有一个新的信息,披露了该公司正在研究VRS,特别是Ray Tracing等新技术。后一点听起来颇为令人惊讶,也预示着AMD和Nvidia推出RT的桌面和游戏机生态系统的推动,也有望推动移动GPU生态系统向RT发展。

5、Armv9设备将在2022年初面世

今天的公告是以一种极其高级的形式发布的,我们预计Arm会在未来几个月公司惯常的年度技术披露中更多地谈论Armv9的各种细节以及CCA等新特性。

总的来说,Armv9似乎是一个混合体,一方面是更根本的ISA转变,SVE2可以看作是,另一方面是对软件生态系统的总体重新梳理,以汇总过去十年的v8扩展,并为下一个十年的Arm架构打下基础。

Arm在去年年底就已经谈到了Neoverse V1和N2,我确实预计N2至少会作为v9设计最终亮相。Arm进一步披露,预计今年会有更多的Armv9 CPU设计亮相,很可能是移动端Cortex-A78和X1的继任者,新的CPU很可能已经被一般的SoC厂商扎堆,预计2022年初就能在商用设备上看到。

6、华为是否可用?

由于美国的霸权行为,目前华为先进芯片已经无法获得代工支持了,但是对应后续芯片的研发华为应该不会放弃。

但是华为是否可用最新的基于Armv9架构?

早在2019年9月25日,ARM全球负责芯片授权的IP产品事业群总裁热内·哈斯(Rene Haas)曾明确表示,华为和海思是ARM的长期合作伙伴,后续的芯片架构都可以授权给华为海思。

哈斯表示,在2019年5月美国政府将华为列入实体清单后,ARM对公司产品进行了厘清,目前有了一个明确结论,即无论是目前的V8架构,还是后续新的芯片架构,都是基于英国技术开发,不会受美国出口管制影响,可以授权给华为海思。由此看来只要ARM没有被美国公司英伟达所收购的化,Armv9架构授权给华为还是应该问题不大的。

五、结语

作为华为生态体系成员,我们认为,华为已经具备了端到端的能力,包括:指令集架构、微内核、处理器、SOC,以及操作系统、数据库、编译器、数学库、人工智能框架...等等全栈软件。

如果局势所迫、不得不的话,华为及其生态体系伙伴,完全有能力自主创建一个新的计算生态!

我们所有的千千万万的从业人员,经过这几十年努力,在方方面面有所准备,未来无所畏惧! 无所谓!

(致谢ARM、驭势资本、EETOP...等原编著者)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。