开发人员基于指令集架构(ISA),使用不同的处理器硬件实现方案,来设计不同性能的处理器,因此 ISA 又被视作 CPU 的灵魂。我们可以将指令集架构理解为一个抽象层,它是处理器底层硬件与运行在硬件上的软件之间桥梁和接口。
▲图1 指令集架构
CISC 架构与 RISC 架构
指令集架构分为复杂指令集(Complex Instruction Set Computer,CISC)和精简指令集(Reduced Instruction Set Computer,RISC)架构。
CISC 架构不仅包含了处理器常用的指令,还包含了许多不常用的特殊指令;在 CPU 发展早期,CISC 曾是主流,可以使用较少的指令完成操作;但随着越来越多的特殊指令被添加到 CISC 架构中,常用的典型程序运算过程中用到的指令仅占指令集的20%,80%的指令则很少用到,而这些很少用到的指令让 CPU 的设计变得极其复杂,大大增加了硬件设计的时间成本和面积开销。
RISC 架构只包含处理器常用的指令,对于不常用的操作,通过执行多条常用指令的方式来达到同样的效果。因而在 RISC 架构诞生后,所有现代指令集都选择使用 RISC 架构。
ISA 众生相
自 CPU 于上世纪 60 年代问世,已发展几十年,有几十种不同的指令集架构相继诞生或消亡。这里挑选 8 个主流架构,简要概括如下表:
# | 指令集架构 | 公司 |
---|---|---|
1 | x86,CISC 架构个人计算机的标准处理器架构 | Intel |
2 | SPARC,高性能 RISC 架构的代表针对服务器领域设计 | Sun |
3 | MIPS,简洁优化的 RISC 架构广泛用于嵌入式设备及消费领域仅次于 ARM,但几经收购,命运未知 | --- |
4 | Power 架构,RISC 架构高性能领域优势明显应用于高端服务器 | IBM |
5 | Alpha,64 位 RISC 架构处理器多应用于企业级服务器但价格高昂、部署困难,淡出市场 | --- |
6 | ARM 架构,32 位和 64 位 RISC 系列声名显赫,无处不在 | ARM |
7 | ARC 架构,32 位 RISC 架构以极高的能效比见长 | Synopsys |
8 | RISC-V 架构完全开放的指令集,源自名校,兴于开源 | RISC-V基金会 |
CPU 的主要应用领域
CPU主要有三大应用领域,即服务器领域、PC领域和嵌入式领域。
1) 移动领域:如智能手机,市场规模有望超过 PC 领域,几乎为 ARM Cortex-A 系列垄断;
2)实时(Real Time)嵌入式领域:ARM 架构占较大市场份额;
3)泛嵌入式领域:强调低功耗、低成本和高能效比,芯片主要是微控制器或微处理器,市场应用极为分散,但基数庞大,尤其在进入物联网时代。ARM Cortex-M 系列是市场主流
CPU 之三生三世
从 CPU 的应用场景,我们可以观察到 CPU 应用场景的拓宽和激增,有三个主流时代,从 PC 时代跨越到移动时代,再延展到物联网时代,恰好映射到 CPU 三大架构,权且看做 CPU 之三生三世。
一生一世:x86 架构是服务器领域/PC 领域的权贵。Intel 和 AMD 是 x86 处理器芯片的主要提供商,历经数代发展,从最初的 16 位发展至如今的 64 位。Intel 通过内部“微码化”克服了 CISC 架构的部分缺点,并凭借不断提升的 CPU 设计水平和工艺制造水平,使其在性能上保持遥遥领先,加之 Wintel 的成功商业联盟,不仅在 PC 领域占据统治性地位,还击败了 IBM 和 Sun 公司,拥有超 90% 的服务器市场份额。
Intel/AMD 作为芯片公司,x86 架构是其生命线,授权费用极高,还可对有威胁的竞争对手停止授权。故而,采用 x86 架构开发被戏称为“权贵的游戏”。
二生二世:ARM 架构是移动王者。ARM 公司的商业模式以开放共赢为基本原则,通过基础架构授权、内核 IP 授权等方式盈利。ARM 积极推动生态建设,以 ARM 统一制定的标准规范将上下游软硬件企业纳入其生态系统。随着近 10 多年移动应用的快速发展,尤其是智能手机的兴起,ARM 迅速成为移动世界的王者。
进击的 ARM 不仅凭借 Cortex-A 系列在手持设备领域无敌,还以 Cortex-R 系列和 Cortex-M 系列在实时嵌入式领域和泛嵌入式领域成功部署。ARM 三大细分产品:
“移动王者” Cortex-A 系列是一组用于高性能低功耗微控制器领域的 32 位和 64 位 RISC 处理器系列,内置存储器管理单元(Memory Management Unit,MMU),可支持操作系统的运行。32位系列包括 Cortex-A5,Cortex-A7,Cortex-A8,Cortex-A9,Cortex-A12,Cortex-A15,Cortex-A17 和 Cortex-A32。64位系列包括 Cortex-A35,Cortex-A53,Cortex-A57,Cortex-A72,Cortex-A73。
值得一提的是,Cortex-A8 首批芯片量产时,3G 网络问世,踩上了智能手机的潮点;之后,Cortex-A9 催生了智能手机的井喷期,成为智能手机内核标配,自此,Cortex-A 系列进入年均一款的“下饺子”开挂模式。Cortex-A 系列的先机与成功,奠定了 ARM 在移动领域的王者地位,在移动领域构筑了城宽池深的软件生态环境。目前,ARM 架构已应用到全球 85% 的移动设备中,其中超过 95% 的智能手机处理器是基于 ARM 架构。
ARM Cortex-A 系列一统移动江山后,与高通、谷歌、微软等合作伙伴逐步形成强强生态联盟,将进军传统 x86 架构 PC 与服务器市场定为下一步发展目标。
“小个子有大力量”的 Cortex-M 系列是一组用于低功耗微控制器领域的32位 RISC 处理器系列。包括 Cortex-M0,Cortex-M0+,Cortex-M1,Cortex-M4(F),Cortex-M7(F),Cortex-M423,Cortex-M33(F)。Cortex-M 系列的应用场景虽不像 Cortex-A 系列光芒四射,但在物联网设备激增的万物智联时代,需求量巨大。
自2007年,诸如意法半导体、恩智浦等多家半导体公司持续推出基于 Cortex-M 内核的微控制器;国内厂商也纷纷入场,抢夺物联网市场,特别是 2020 年Q4 至今的缺货潮中,国产替代风起云涌。众多微控制器厂家中,尤以意法半导体公司的 STM32 产品系列最全、生态建设最完善。
三生三世:粉墨登场的 RISC-V。RISC-V 架构是一种全新的指令集架构,2010年始于加州大学伯克利分校。“V”除了表示从 RISC-I 开始的第五代指令架构外,还有变化(Variation)和向量(Vector)的含义。
2015年,RISC-V 基金会成立并开始正式运作。作为非盈利性组织,RISC-V 基金会负责维护标准的 RISC-V 指令集手册和架构文档,并促进 RISC-V 架构的发展,将其推向开源,不仅成为一种完全开放的指令集,可以被任何学术机构或商业组织自由使用;还要成为一种真正适合硬件实现且稳定的标准指令集。
源起名校、兴于开源的 RISC-V 架构,相比 ARM 架构,具有灵活的扩展性,指令集的设计考虑了小型、快速、低功耗的实际应用场景,但并未对特定的微架构做过度设计,是第一个可根据具体场景选择适合的指令集的指令集架构。RISC-V 指令集可满足从微控制器到超级计算机等不同复杂程度的处理器设计需求,极大地拉低了 CPU 设计准入门槛,并显著降低芯片开发成本。
RISC-V 架构利于我国工业体系中“少数短板”之一 —— 芯片的发展,商业公司可基于开源架构开发其自主可控的商业 IP,如我国 RISC-V 系先行者平头哥和芯来科技。同时,该架构能够适应由 5G 和人工智能催生出的碎片化计算需求,有望成为物联网时代的主要抓手。
指令集架构的生态建设,需要付出昂贵的教育成本和接受成本,教育成本取决于人们的普遍熟悉程度,接受成本取决于人们愿意投入的时间。RISC-V 生态初成,海外有 RISC-V 基金会的积极推动,国内很多地区政府也将 RISC-V 指向为国产芯片架构发展的主要方向,并推出一系列鼓励措施。随着采用 RISC-V 架构的芯片越来越多,尤其是完全国产芯片的问世,产学研市场对 RISC-V 芯片应用有了越来越多的需求,中国 RISC-V 产业生态日渐成熟。