CPU与RISC-V ISA架构 参考文献链接 https://mp.weixin.qq.com/s/Oliqfu9Jv4vqekBI3dMNKA https://mp.weixin.qq.com/s/Db1dY5XpIhAgYKC8NoTh-A https://www.allaboutcircuits.com/technical-articles/introductions-to-risc-v-instruction-set-understanding-this-open-instruction-set-architecture/ 国产服务器CPU研究框架(2022)
在后摩尔定律时代,单靠工艺的提高带来的性能效益已经非常有限,Dennard Scaling芯片功耗急剧上升,晶体管成本不降反升;单核性能已接近极限,多核架构性能也在放缓。AIoT随着时代的到来,下游计算能力需求多样化、碎片化,通用处理器难以应对。
1)从通用到专用:定制芯片面向不同的场景特征,XPU、FPGA、DSA、ASIC应运而生。 2)从底层到顶层:软件、算法和硬件架构。架构的优化可以大大提高处理器的性能,如AMD Zen将分开的两块16MB L3 Cache合并成一块32MB L3 Cache,然后叠加改进的分支预测和更宽的浮点unit等等,使其单核心性能更好Zen2提升19%。 3)异构与集成:苹果M1 Ultra芯片的推出带来启发,利用逐渐成熟的3D封装、片间互联等技术,使多芯片有效集成,似乎是延续摩尔定律的最佳实现路径。 主流芯片制造商已开始全面布局:Intel已拥有CPU、FPGA、IPU产品线正在增加投资GPU推出最新产品线Falcon Shores结构、抛光异构封装技术;NvDIA多芯片模块相继发布(MCM,Multi-Chip Module)Grace系列产品,预计将投入量产;AMD对塞灵思的收购思的收购,预计未来会走向CPU FPGA异构整合。 此外,英特尔,AMD、Arm、高通、台积电、三星、日月光Google云、Meta、微软等十大行业的主要参与者共同成立Chiplet通用标准联盟正式启动Chiplet高速互联标准Universal Chiplet InterconnectExpress(通用小芯片互连,简称UCIe”)。 在UCIe在框架下,统一了互联接口标准。各种不同的工艺和功能Chiplet芯片,有望通过2D、2.5D、3D等各种封装方式整合在一起,多种形态的处理引擎共同组成超大规模的复杂芯片系统,具有高带宽、低延迟、经济节能的优点。
多核处理器将多个处理器核集成到同一芯片上,大大提高了各单元的计算性能密度。同时,可以使用多个外围部件CPU系统共享可以带来更高的通信带宽和更短的通信延迟。多核处理器在并行性方面具有自然优势。通过动态调节电压/频率和负载优化分布,可以有效降低功耗,提高性能。 通过复制处理器上的结构状态,同一处理器上的多个线程可以同步执行并共享处理器的执行资源,从而以极小的硬件成本提高整体性能和吞吐量。 改进微架构 在三态总线和单项总线的连接下,许多算数单元、逻辑单元和寄存器共同组成CPU微架构。不同的微架构设计,对CPU提高性能和效率起着直观而重要的作用。 微架构的升级一般涉及一系列复杂的工作,如指令集扩展、硬件虚拟化、大内存、乱序执行等编译器、函数库等软件层次的修改。 摩尔定律放缓 摩尔定律于20世纪60年代提出,直到2011年,计算机元件的小型化是提高处理性能的主要因素。2011年以后,摩尔定律开始放缓,硅制造技术的改进将不再提供显著的性能改进。 “Tick-Tock”模式失效 英特尔从2007年开始实施Tick-Tock以两年为周期展模式以两年为周期(Tick)偶数年推出新的制造工艺(Tock)推出新架构的微处理器。
在14nm转10nm英特尔自2016年起宣布停止推迟后 “Tick-Tock处理器升级周期改为处理器升级的三步策略:工艺流程(Process)-架构更新(Architecture)-优化(Optimization)。 在后摩尔时代,顶层优化可能更重要 提出了新的底层优化路径,如3D堆叠、量子计算、光子学、超导电路、石墨烯芯片等,技术目前仍处于起步阶段,但后续有望突破现有想象空间。
根据MIT在《Science》在后摩尔定律时代,计算能力的提高将更大程度上来自于计算堆栈「顶层」,即软件、算法和硬件架构。 为了覆盖更多的应用程序,通用指令集通常需要支持数千个指令,导致装配线的前端设计(取指、翻译) 代码、分支预测等变得非常复杂),会对性能功耗产生负面影响。 领域专用指令集可以大大降低指令数量,增加操作粒度,整合访问存储优化,提高性能功耗比。 新兴场景出现,CPU从通用到专用 1972年,戈登·贝尔(Gordon Bell)每隔10年,就会出现新的计算机(新的编程平台, ,新的网络连接,新的用户接口,新的使用方式,更便宜),形成新的产业。 1987 年, 原日立公司总工程师牧村次夫(Tsugio Makimoto) 提出半导体产品未来可能会沿着标准化和定制交替发展的路线前进,每十年波动一次左右。
经历了桌面PC、万物智联成为互联网时代和移动互联网时代后的新风向标,AIoT世界信息产业革命的第三波正在掀起。AIoT最明显的特点是需求碎片化,现有的通用处理器设计方法难以有效满足定制需求。 通用性和性能难以兼得 CPU它是最常的处理器引擎,指令最基本,灵活性最好。Coprocessor,是基于CPU扩展指令集的操作引擎,如ARM的NEON、Intel的AVX、AMX扩展指令集和相应的协处理器。 GPU,本质上是很多小CPU因此,核并行NP、Graphcore的IPU等都和GPU同级处理器类型。
FPGA,就架构而言,可用于定制ASIC但由于硬件可编程能力,可以切换到其他发动机ASIC引 具有一定的弹性可编程能力。 DSA,是接近于ASIC的设计,但具有一定程度上的可编程。覆盖的领域和场景比ASIC大,但仍有太多的领域需要特定的领域DSA去覆盖。 ASIC,它是一个完全不可编程的定制处理引擎,理论上是最复杂的指令和最高的性能效率。因为覆盖的场景很小,需要很多ASIC只有处理引擎,才能覆盖各种场景。 展望后摩尔定律时代CPU未来发展之路 不可逆转的SoC集成:由于集成电路集成度的不断提高,完整计算机的所有不同功能块一次直接集成在芯片上 SoC 影片已成为整个半导体行业的发展趋势,可显著降低系统成本和功耗,提高系统可靠性。M1 不是传统意义上的 CPU,而是一颗SoC。CPU采用8个核心,包括4个高性能核心和4个高能效核心。每一个高性能核心都提供了优异的单线程任务处理性能,并将能耗降到最低。
异构能力的显著提高:M11还采用了统一的内存架构(UMA),CPU、GPU、神经引擎,缓存,DRAM所有内存都通过了Fabric得益于此,高速总线连接在一起,SoC所有模块都可以访问相同的数据,而不需要在多个内存池之间复制数据,这大大提高了处理器的性能和电源效率。另外,最新一代M1 Ultra本质上是两个M1 MAX有效组合,通过UltraFusion提供高达128的架构G与统一内存相比M1的GPU性能提高了8倍。 苹果M1处理器完成了从多芯片到集成的过程,这也是苹果创造的完整性PC生态链的唯一途径就是看到CPU未来发展的可能性更大。 后摩尔时代异构与集成 海外芯片巨头积极布局异构计算:英特尔现已布局CPU、FPGA、IPU、GPU并连续公布产品线Alder Lake、Falcon Shores等新架构;英伟达接连发布多芯片模组(MCM,Multi-ChipModule)Grace预计量产系列产品即将投入;AMD最近完成了塞灵思的收购,预计未来走势CPU FPGA异构整合。
晶圆厂和包装厂也积极投资异构集成:由于近十年来先进包装和芯片堆叠技术的发展,异构计算需要先进的集成包装技术,如3D堆叠、SiP等等,也使异构集成成为可能。目前,2.5D包装技术已经发展成熟,如台积电CoWoS,三星的I-Cube,3D封装已成为各大晶圆厂的发力方向。英特尔已开始量产Foveros三星已经完成了技术X-Cube台积电也提出了验证SoiC整合方案。 CPU XPU它被广泛使用,但仍有优化的空间。存在于传统的异构计算架构中IO路径长、输入输出资源损失等固有问题,仍不能完全考虑极端性能和灵活性。 Chiplet建立联盟,探索超异构的可能性。英特尔,2022年3月3日,AMD、Arm、高通、台积电、三星、日月光Google云、Meta、微软等十大行业巨头联合成立了Chiplet标准联盟正式推出推出Chiplet高速互联标准Universal Chiplet Interconnect Express(通用小芯片互连,简称“UCIe”)。
在UCIe在框架下,统一了互联接口标准。各种不同的工艺和功能Chiplet芯片,有望通过2D、2.5D、3D将各种包装方式集成在一起,各种形式的处理引擎共同形成一个大型复杂的芯片系统,具有高带宽、低延迟、经济节能的优点。 边缘计算服务器解决方案AIoT时代算力荒的必备产物 云计算不能满足海量和实时处理的需要。人工智能,5G、随着物联网等技术的逐步成熟,计算能力需求不断从数据中心延伸到边缘,以产生更快的网络服务响应,满足实时业务、应用智能、安全和隐私保护的基本需求。
市场规模爆炸的爆炸性增长。IDC,中国边缘计算服务器的整体市场规模达到33.与2020年相比,1亿美元增长美元.9%,预计2020-2025年CAGR将达到22.2%高于全球20%.2%。
面向不同需求,提供多样性算力。一般小型网站请求处理数据较少,多采用1、2核CPU;地方门户、小型行业网站,需要4核以上的CPU;而电商平台,影视类网站等,则需要16核以上的CPU。此外,云服务器亦提供灵活的扩容、升级等服务,一般均支持异构类算力的加载。 CPU+ASIC,云服务器异构趋势明显 在传统的计算机虚拟化架构中,业务层为虚拟机,管理层为宿主机,业务和管理共存于CPU运行,导致CPU大概只有七成的资源能够提供给用户。 AWS创造性进行架构重构,将业务和管理分离到两个硬件实体中,业务运行在CPU,管理则运行在NITRO芯片中,既将虚拟化的损耗挪到定制的Nitro系统上,又提高了安全性。
Nitro架构不仅性能强大,而且特别灵活,可以基于一些常用的Hypervisor(如qemu-kvm,vmware)运行虚拟机,甚至可以直接裸跑操作系统,可节省30%CPU资源。 ARM或成重要挑战者,英伟达推出首款数据中心专属CPU GRACE 公有云巨头价格竞争激烈,国内一线城市能耗管控严格,ARM移动端的优势和低能耗特征是超大型数据中心解决节能和成本问题的重要方案之一;国内自主可控趋势背景下,若能够搭建强有力的生态联盟,是未来可能颠覆原有格局的最有力挑战者。
英伟达宣布推出首款面向AI基础设施和高性能计算的数据中心专属CPU——NvDIA Grace,由两个CPU芯片通过最新一代NVLink-C2C技术互联组成。 Grace基于最新的ARMv9架构,单个socket拥有144个CPU核心,利用纠错码(ECC)等机制提供当今领先服务器芯片两倍的内存带宽和能效,兼容性亦十分突出,可运行NvDIA所有的软件堆栈和平台,包括NvDIA RTX、HPC、Omniverse等。 从CPU到CPU+DPU DPU,即数据处理单元(Data Processing Unit),主要作为CPU的卸载引擎,主要处理网络数据和IO数据,并提供带宽压缩、安全加密、网络功能虚拟化等功能,以释放CPU的算力到上层应用。
2013年,AWS研发的的Nitro和阿里云研发的X-Dragon均可看作DPU前身;英伟达在2020年正式发布一款命名为“DPU”的产品,将其定义为CPU和GPU之后的第三颗主力芯片,DPU的出现是异构计算的另一个阶段性标志。 DPU是CPU和GPU的良好补充,据英伟达预测,每台服务器可能没有GPU,但必须有DPU,用于数据中心的DPU的量将达到和数据中心服务器等量的级别。 从CPU到CPU+XPU AI模型通过数千亿的参数进行训练,增强包含数万亿字节的深度推荐系统,其复杂性和规模正呈现爆炸式增长。这些庞大的模型正在挑战当今系统的极限,仅凭CPU的优化难以满足其性能需求。 因此,AI服务器主要采用异构形式,表现形态多为机架式。在异构方式上,可以为CPU+GPU、CPU+FPGA、CPU+TPU、CPU+ASIC或CPU+多种加速卡。
现在市面上的AI服务器普遍采用CPU+GPU的形式,因为GPU与CPU不同,采用的是并行计算的模式,擅长梳理密集型的数据运算,如图形渲染、机器学习等。继续扩展模型以实现高度准确性和实用性,需要能够快速访问大型内存池并使 CPU 和 GPU 紧密耦合。 从CPU到CPU+TPU TPU,即张量处理单元(Tensor Processing Unit),是Google为加速深度学习所开发的专用集成电路(DSA),采用专用CISC指令集,自定义改良逻辑、线路、运算单元、内存系统架构、片上互联等,并针对Tensorflow等开源框架进行优化。
2015年起,谷歌发布TPUv1,应用于Alpha Go等特定内部项目;2018年,谷歌发布TPUv3,开始向第三方出售,TPU开始逐渐走向商用。 2021年,谷歌发布TPUv4i,其性能相较第三代TPU提升2.7倍;256块TPU仅用1.82分钟便完成NLP领域著名的“BERT”模型训练,而同样条件下,利用Nvdia A100 GPU则需要3.36分钟。 RISC-V科普:理解开源ISA架构 RISC-V 基础知识的入门读物。公开了开放式架构理念,以及模块化 ISA 的技术描述,以及一些商业 RISC-V 微处理器实现。 RISC-V开放指令集架构是当今可用的专有架构(例如 ARM 的那些)的流行替代方案。自诞生以来,RISC-V在学术和商业上的逐渐普及。 了解 RISC 与 CISC RISC 是 1980 年代提出的一种计算机架构哲学,作为英特尔、摩托罗拉和几乎所有其他人当时提供的商业架构的替代方案。这种架构最初被称为“复杂指令集计算机”或 CISC,依靠密集指令集来实现被认为有用和必要的各种操作。然而,包括IBM 和加州大学伯克利分校在内的许多研究团队发现,编译器通常最终使用这些复杂指令集的一小部分。这一发现和其他发现引发了对更大指令集的需求的质疑,将重点放在简单性作为提高效率的一种手段。 总体而言,RISC 在许多方面与 CISC 是相反的。通常,CISC中央处理单元 (CPU)有一些寄存器和大量指令,其中大部分都可以访问内存,而 RISC CPU 有很多寄存器和非常有限的指令集,内存访问仅限于少数加载和存储指示。 为了说明复杂指令和简单指令之间的区别,表 1 显示了使用 CISC CPU( NXP 的 s08)和 RISC CPU(ARM Cortex M0+ )递增计数器变量的代码比较。
表 1. CISC 和 RISC 代码之间的示例比较。 在该表中,CISC 允许在单条指令中递增变量,而 RISC 需要通过加载和存储来访问内存。尽管这显示了代码大小的差异,但这并不是 apple to apple的比较,因为架构之间存在许多差异,因此这并不能证明一个在技术上优于另一个。 今天,英特尔 x86/x64 架构证明了 CISC 微处理器没有被 RISC 取代,而 ARM 架构证明了 RISC 已经主导了移动设备市场。 RISC-V 历史 RISC 的首字母缩写词是 1980 年左右由加州大学伯克利分校的 David Patterson 教授创造的,与斯坦福大学的 John Hennessy 教授合作产生了著名的著作《计算机组织与设计》和《计算机架构:一种定量方法》。由于在 RISC 架构上的工作,在 2017 年获得了ACM AM 图灵奖。 从 1980 年快进到 2010 年,第五代 RISC 研究项目的开发开始了,最终被称为 RISC-V。 RISC-V International——一个开放的 ISA RISC-V 是一种开放指令集架构 (ISA),这意味着可以自由地在微处理器或微控制器中实现 RISC-V CPU,而无需向使用此 ISA 的任何人支付版税。 RISC-V International 是一家全球非营利组织,拥有并维护 RISC-V ISA 知识产权。其主要目标之一是保持 RISC-V 的设计基于简单性和性能,而不是专注于商业利益。出于这个原因,RISC-V International依赖于其代表微处理器生态系统群体的成员,从个人到谷歌、英特尔和英伟达等组织。成为会员有很多好处,包括为 ISA 的设计做出贡献的可能性,以及投票批准提议的更改。在下面的图 1 中,可以看到多年来 RISC-V 发展的高级时间表。
图 1.自 2010 年问世以来,RISC-V 一直受到微处理器行业的好评,在硬件和软件方面的采用率一直在稳步增长。 RISC-V ISA 和扩展的约定 作为始于 1980 年的第五代研究项目,RISC-V 是一种经验丰富的架构,旨在在其他人过去可能失败的情况下取得成功,RISC-V 旨在从任何潜在的过去错误中学习。 出于这个原因,RISC-V 被设计为模块化 ISA,而不是传统的增量 ISA。这意味着 RISC-V 实现由强制的基本 ISA 和许多 ISA 扩展组成,因此可以根据应用程序的需要定制定制 CPU。 自定义 ISA的命名约定由字母 RV(用于 RISC-V)后跟位宽和变体标识符组成。 例如,图 2 所示的 RV32IMAC 表示: • RV32I:带有基本整数 ISA 的 32 位 CPU • M:整数乘除法扩展 • A:原子指令扩展 • C:压缩指令扩展
图 2. RV32IMAC ISA 的指令集显示了 RISC-V 的模块化(非增量)特性。强制性基本 ISA 与一组扩展相结合 。 编译器被告知目标 CPU 中包含的扩展,以便生成可能的最佳代码。如果代码包含缺少扩展的指令,则硬件会捕获并执行标准库中的软件功能。 基本整数 ISA 只有 47 条指令,RV32I 基本整数 ISA 实现了绝对必要的操作,以实现 32 位整数的基本功能(其 64 位变体是 RV64I)。此 ISA 以 32 位编码,包括以下指令: • 添加 • 减法 • 位运算 • 加载和存储 • 跳跃 分支机构 基本 ISA 还指定了 32 个 CPU 寄存器,都是 32 位宽,加上程序计数器。唯一的特殊寄存器是 x0,总是读取 0,正如在许多以前的 RISC ISA 中实现的那样。 尽管表 2 中显示的所有寄存器都可用于一般用途,但应用程序二进制接口 (ABI) 根据其调用约定为每个寄存器指定了用途。这意味着一些寄存器应该保存临时或保存的数据、指针、返回地址等。
表 2. RV32I 寄存器文件显示硬件寄存器名称及其在 RISC-V 应用程序二进制接口中指定的功能。 RISC-V 乘法和浮点 RV32M 扩展实现了 8 条指令来对整数执行乘法和除法(RV64M 在这 8 条指令的基础上增加了 5 条指令)。 RV32F 扩展为 32 位浮点数和 26 条浮点指令增加了 32 个独立的寄存器。同样,RV32D 扩展使用 32 个 64 位浮点寄存器,支持双精度 64 位浮点数。 RISC-V 压缩指令 RV32C 扩展是对 RISC-V ISA 的巧妙补充,因为现有指令的特殊子集提供了另一种 16 位编码。 在分析了现代优化编译器生成的无数行代码后,RISC-V 的创建者确定了最流行的指令,并创建了 16 位版本,放弃了其完整 32 位版本的部分功能,这些功能在无论如何,RV32I 基础 ISA。 由于以下说明,这种压缩是可能的: 1.有些寄存器比其他寄存器更受欢迎。 2.一个操作数通常会被覆盖。 3.有一些首选的立即数。 这允许将有限数量的寄存器的指令编码为操作数,仅指定 2 个寄存器而不是 3 个,使用小的立即数,所有这些都在 16 位中。 通过压缩最常用的指令,有更好的机会显着压缩程序。 其他 RISC-V 扩展 还有许多额外的扩展,实现了现代微处理器所期望的所有功能。这包括嵌入式基础 ISA (RV32E)、原子操作 (A)、位操作 (B)、向量操作 (V) 的扩展,等等。 RISC-V 实现 许多公司在其微控制器、微处理器和 SoC 中制造各种 RISC-V 内核。一个例子是 SiFive,第一家制造基于 RISC-V ISA 的芯片的公司。芯片范围从低端微控制器一直到高性能 SoC。
图 3. RISC-V 框图示例,即 P550 高性能应用处理器的框图。 然而,实际的 RISC-V 项目并不局限于集成电路。在许多领域,如编译器、模拟器、开发环境、操作系统等,有大量正在进行的项目。 总而言之,RISC-V 是计算机体系结构世界中一个令人兴奋的话题,今天是参与其中的好时机。如果想了解有关此运动的更多信息,请务必访问RISC-V International。
参考文献链接 https://mp.weixin.qq.com/s/Oliqfu9Jv4vqekBI3dMNKA https://mp.weixin.qq.com/s/Db1dY5XpIhAgYKC8NoTh-A https://www.allaboutcircuits.com/technical-articles/introductions-to-risc-v-instruction-set-understanding-this-open-instruction-set-architecture/