
被人忽略的微架构能力
精简指令集RISC是计算器芯片发展史上的一个传奇。
它最得意的作品,就是1983年英国Acorn公司,开启了基于加州大学伯克利分校RISC项目理念的新处理器架构研发项目Acorn RISC Machine (ARM),这就是如今统治移动芯片的ARM架构的肇始。而伯克利的RISC项目在1980年代发展了四代,2010年启动了第五代设计,即RISC-V。
RISC-V是一种指令集,并不是一种处理器的实现。指令集是一种标准规范,相当于是大家的一个约定。如果遵循同一个标准规范,那么不同厂商生产的软件和硬件就能在一起工作,就跟螺钉螺母的尺寸规范一样。
有了指令集标准规范,下一步最重要的就是芯片设计。根据指令集来去完成微架构的设计,形成文档,然后通过工程开发形成源代码。有了源代码之后,就可以用EDA软件形成芯片版图,最后交给台积电或中芯国际这些代工厂去流片,实现芯片制造。

当很多人将焦点集中在制造的装备或者设计的软件的时候,也很容易悄悄地忽略了看不见“微架构的设计和实现”。实际上,这是非常重要的能力,是芯片设计的核心竞争力。
当具备微架构设计和实现能力后,将不再受限于指令集。如果要更换一种指令集,也将非常容易。
在过去几十年,英特尔处理器的性能在不断地提升,原因到底是什么?指令集的增加固然是看得见的积累,但更重要的是,英特尔处理器微架构和工艺的不断演进。从1995年英特尔的P6架构开始,到2000年再到2006年,大概每五年一代架构就会演进一次。不断迭代过程中,实现微架构层面的优化。而这正是英特尔设计能力的核心。甚至从这个角度来看,指令集在某种程度上并不是那么重要,因为它只是一种标准规范。而微架构的设计和实现能力,才真正决定了一颗芯片的性能、功耗和面积。
苹果公司在过去几十年更换了多个指令集,从摩托罗拉到英特尔、到PowerPC、再到今天的ARM。由于苹果自身的垂直协同设计能力很强,更换指令集并不是一件太难的事情。国内的龙芯公司,因为具备很强的芯片设计能力,从MIPS指令集更换到自有指令集龙芯(longArch)指令集时,微架构设计也几乎不用做太多改变。国内还有企业在研发可以同时支持Arm和RISC-V的设计,也是因为底层的微架构设计并不需要大的变化,就可以支持不同的指令集。

指令集与生态
指令集不重要了吗?如果从软件生态而言,却是至关重要的。它会决定软件生态开发的效率。
早年的IBM计算机,每一台计算机的指令集都是独立的,导致计算机的软件投入特别大。1964年IBM推出的System/360计算机改变了这个格局,形成了统一的指令集,从而计算机软件和硬件可以分离开。这次标准化的指令集延伸开来,逐渐使得独立的软件产业成为可能。统一的指令集,虽然对单一公司的作用没有架构能力重要,但对于软件生态却是决定性的影响。
但是,在过去的几十年时间里,指令集均属于公司私有,如X86、ARM、MIPS、SPARC等。2010年,加州大学伯克利分校David Patterson教授提出一个响亮的口号 “指令集应该免费”,这个理念立刻得到全世界的认可。伯克利分校所推出的RISC-V更是蓬勃发展起来。既然指令集不再属于某一个公司,那么全世界可以共同去建设。一种全新的开源开放共享的处理器生态出现了。而共建模式的核心,就在于把标准规范和产品实现进行分离。这就和通信领域的5G通信标准的建设机制非常类似。5G标准由非盈利组织3GPP组织来负责制定,而各个企业可以根据5G标准去做自己的产品,在开放的模式下去竞争。
类似的,RISC-V也带来了这样的新机会,指令集的标准由RISC-V国际基金会来制定。基于这个标准,不同国家的不同企业都可以来研制不同的RISC-V产品,例如,美国硅谷新秀Sifive公司的RISC-V产品、国内阿里平头哥的玄铁RISC-V处理器、以及中科院在开发的香山处理器。这为后进入赛道的处理器厂家,带来了一种新模式,即“5G模式发展芯片”。在过去20多年,国内的处理器发展模式,主要有“高铁模式”和“北斗模式”。高铁模式代表了一种融入现有生态的思路,通过引进-消化-吸收-再创新,实现产品升级,代表企业有海光、海思和飞腾。而北斗模式则是独立构建技术体系和生态,以龙芯、申威为代表。而“5G模式”意味着中国的处理器可以采用第三种模式,制定开放标准,自研核心技术,在开放的框架下去竞争和合作,并且面向国际市场和生态建设。

RISC-V的再认识
尽管RISC-V意义重大,但行业依然有很多误解。2022年12月,David Patterson教授写了一篇文章,专门来纠正关于RISC-V的一些谬误。
第一个误解,RISC-V是一个开源处理器,就像Linux是一个开源操系统。实际上,RISC-V不是一个开源处理器,它只是一种标准规范,本质上是一本描述性手册,类似以太网标准、USB标准等。而Linux操作系统是一种源代码。所以这两个不具备可比性。RISC-V就是一个标准,而国际基金会就类似一个制定标准规范的工作组。
第二个误解,成熟封闭的指令集要比选择开放的指令集更安全可靠。安全性跟封闭和开源并无关系。封闭指令集属于公司,就会和公司的命运紧密绑定。如果公司不景气,该公司的指令集就会消失,供应链安全无法得到保障。历史上消失的指令有很多,包括像曾经一度流行的DEC VAX和DEC Alpha指令集。此外,封闭指令集也未必稳定,当年MIPS曾经卖给了六个企业,ARM也有三个东家,而更换一个东家就意味着商业模式可能会发生变化。
第三个误解,封闭的指令集是整齐划一,没有碎片化的割裂状态。实际上,封闭指令集会在其生命周期中,经常碰到无法预见的不兼容问题。即使在ARM的一个体系下,也出现过不兼容的情况。ARMv1到ARMv7使用32位地址空间,然而在下一代能够同时提供32位和64位地址版本的ARMv8-a,却无法兼容。而且,即使同一代产品,ARMv8-a和ARMv8-m也存在不兼容。碎片化,在某种程度上其实是一种常态。
第四个误解,相对于封闭指令集,RISC-V的模块化导致了更加碎片化的软件生态。在这一点上,RISC-V技术工作组已经在提供一些新的机制,比如通过配置(Profile)机制,来规范软件生态,从而使软件不会像想象得那么碎片化。
最后一个谬误,很多人断言RISC-V不可能成为主流指令集。这一点结论为时过早。从技术上而言,RISC-V是可以去支持从嵌入式、到普通计算机、一直到超级计算机领域的,并不存在系统性缺陷。如果从商业角度而言,更加开放的标准,往往会更有生命力。这一点倒是可以跟Linux操作系统的成功相媲美。

RISC-V的五大趋势
RISC-V已经开始往高性能领域发展了。
以前很多人认为它只能在嵌入式领域,但最近这几年,已经出现了一批RISC-V高性能处理器实现,代表企业有硅谷的Sifive、Ventana,在技术上有一定优势。国内还有香山处理器,以及上海赛昉。SiFive近期推出高达3.4GHz的RISC-V处理器,性能可以对标ARM A78,是一个相当高性能的处理器。对比国内来看,在研发进度上,这款设计领先国内的香山大概一年左右。但是香山也有它的优势,因为香山通过开源开放的模式联合多个企业一起来研发,可以更快地迭代,同时通过分摊降低成本。
值得注意的是,许多国家在国家层面上在积极地推动或支持RISC-V。例如2022年6月份,俄罗斯数字发展部宣布将大力扶持RISC-V处理器的发展。印度也启动了“数字印度RISC-V处理器”(DIR-V)发展规划”。同时,印度的电子信息部(相当于国内的工信部)以部的名义加入了RISC-V国际基金会,并成为了高级会员。此外,欧盟在2022年9月8号发布了《关于建立欧洲开源硬件、软件和RISC-V技术主权的建议和路线图》报告,支持RISC-V与开源硬件,尤其给出了九大优先发展关键方向,并给出了实施路径,包括建立非盈利机构来支持研发、实施教育政策和措施等等。由此可见,全世界都在积极投入RISC-V生态建设。
RISC-V关键软件生态的发展也是非常迅速。一方面,RISC-V国际基金会在积极推动基础软件的适配工作;另一方面,很多开源软件社区也在主动适配。这就使得全世界的软件力量也都在支持RISC-V生态的发展。以Linux发行版Debian为例,开源社区于2019年开始支持RISC-V,在全世界开源社区的努力下,仅用3年时间就完成了2万多个软件包中95%的移植,使RISC-V成为Debian支持的Tier-1架构。在RISC-V生态建设上,中国处于第一梯队。尤其是2018年以来,很多企业都在推出各种各样基于RISC-V的芯片产品。同时,地方政府也出台一系列政策。特别是北京政府,在RISC-V方面有很大的投入。
由于RISC-V软件生态也在加速,RISC-V正在得到了越来越多企业的支持。除了初创公司外,包括像英特尔这样的巨头也积极投入到RISC-V的生态建设当中。美国企业在高性能处理器领域的投入比较大,总体处于领先地位。但在国内,初创公司非常活跃,数量上也远大于美国。尽管目前,还是主要还集中在MCU级别。但这对于欧美日垄断性的市场,注入了一点新鲜的空气。
整体而言,RISC-V应用正在全球快速地增长。2022年上半年,RISC-V国际基金会的数据显示,RISC-V的出货量已经超过一百亿颗,预计到2025年有望突破800亿颗。总体来讲,RISC-V还是缺少一些里程碑的、标杆式的RISC-V应用。但好消息是,欧盟计划投入2.7亿欧元,来研制超级计算机,这将是里程碑的事件。
