当前位置: 华文问答 > 数码

RISC

2023-12-01数码

关于这个问题,首先引用孙凝晖院士在最近一个报告中的观点,然后再围绕该观点展开论述:

图1. 孙凝晖院士报告【开源处理器芯片的机遇与挑战】的引言

一、创建一条新赛道来打破垄断

过去半个世纪,曾经出现过X86、ARM、MIPS、ALPHA、SPARC、IA64等数十种指令集,但 都属于公司私有 。这些私有指令集大部分已经随着公司萧条或倒闭而消失,如今全世界仅剩下X86和ARM两种主流指令集,分别被Intel和ARM两家公司高度垄断。

当一个产业发展到高度垄断阶段后,市场上必然会产生打破垄断的强烈诉求,这是产业发展的内在规律。那么,用什么方式来打破垄断?一种是沿用垄断巨头的发展路径,但通过创造一些新优势来打破垄断。还有一种有效的方式就是 创建一条新赛道,通过发展新技术、创新商业模式来形成一个新兴市场,逐渐淘汰旧市场,从而打破垄断 。新能源汽车是一个典型的例子,在过去一百多年的燃油车时代,中国汽车工业努力了半个多世纪,也始终无法打破传统汽车巨头的垄断格局。但在新能源汽车这个新赛道上,中国汽车工业仅用十几年时间便实现了「换道超车」,步入世界领先行列。

RISC-V及其掀起的开源芯片浪潮,便是处理器芯片领域的新赛道 。很多人从指令集自身角度来看RISC-V,指出它不完备、碎片化等问题,但忽视了RISC-V所蕴藏的真正威力—— 作为开放标准,它将推动一个基于开源的芯片技术新体系的构建,进而创造出一个开源芯片新世界 。就如今天的软件产业已经是两个世界,一个闭源软件世界,一个开源软件世界。根据Black Duck针对17个行业1700多个软件的统计数据表明,96%的商业软件中包含开源代码,而且开源代码的比例达到76%。未来的芯片设计产业,也将会变成闭源和开源两个世界。RISC-V用「指令集应该免费」这个理念,打开了开源芯片新世界的大门,从此这个新世界将进入不可逆转的、快速发展的进程。 开源芯片新世界的诞生并不是要所有芯片设计都完全开源,而是未来会有越来越多的商业芯片中包含开源IP ,开源IP的比例会不断提高。通过这种方式来降低整个芯片设计产业的成本,提升企业的竞争力。

在这个进程中,RISC-V只是一种催化剂,它自身的演进固然重要,但已经不是决定性了。 如果未来RISC-V的演进跟不上这个新世界的发展速度,它也必须做出改变和调整,否则就会被另一种更适应新世界的开放指令集所淘汰或替代。 事实上,RISC-V自身就在不断演进。例如,几年前很多人认为RISC-V指令集不完备,只能用于嵌入式场景,但很快RISC-V国际基金会便形成了 近80个工作组开展各种指令扩展工作 。如今,RISC-V的向量扩展指令已经发布,而各种安全扩展指令、加密指令、AI加速指令等等都在推进中。

又如,有人批评RISC-V会导致碎片化,但事实上根据千变万化的场景 需要允许用户自定义扩展指令,这正是解决场景需求碎片化的有效方式 。这些扩展指令只要没有反馈到RISC-V国际基金会,那就不会影响到主流软件生态。 RISC-V真正的碎片化难题是近80种扩展指令模块的组合数量非常多 ,导致编译器、操作系统等系统软件无法应对这种爆炸式组合数量。对于这一点, RISC-V国际基金会已经提出了配置 (Profile)机制,每个配置是约定好的指令集模块组合,这样便大大减少了基础软件适配工作。

这些都表明RISC-V自身正在快速演进。

二、抓住处理器芯片领域新一轮变革浪潮

新一轮芯片设计技术与产业变革浪潮已经到来,这将带来很多新机遇,甚至在未来10-20年形成产业重新洗牌。因此,RISC-V被【麻省理工学院技术评论】选为2023年度十大突破性技术之一(如图),理由是「 芯片设计正在走向开放,灵活、开源的RISC-V有望成为改变一切的芯片设计 」。

图2

回顾处理器芯片领域 上一轮技术变革浪潮,已是40年前的1970-1980年代 。那时也出现一次指令集变革,从复杂指令集CISC向精简指令集RISC转变;那时超大规模集成电路(VLSI)出现,推动芯片设计方法的变革——计算机辅助设计(CAD)和电子设计自动化(EDA)技术兴起;那个时代诞生了ARM、MIPS、Synopsys、Cadence等一批新兴企业,许多成为今天的国际领军企业。

图3

中国企业很遗憾地错过了上一轮变革浪潮,导致今天在多个领域被卡脖子。但对于RISC-V掀起的这一轮变革浪潮, 中国不再错过,各界都在积极参与,做出重要的贡献,发挥重要的作用 。相信中国芯片产业会像汽车产业那样实现「换道超车」,把握机遇,在这个新赛道上形成技术优势、产品优势和市场优势。

三、变革新机遇:战略篇

RISC-V与开源芯片所带来的新机遇有很多,这里主要从宏观层面分析两个新机遇: 一是新的产业发展路径 ,即5G模式; 二是新的人才培养模式 ,例如「一生一芯」计划正是得益于开源芯片。

(一)处理器芯片产业发展新路径

过去二十年,我国在处理器芯片领域主要形成两种发展模式: 一是高铁模式 。以海思、海光、飞腾为代表的企业,通过「引进—消化—吸收—再创新」的模式,研发出有竞争力的产品。 二是北斗模式 。以龙芯为代表的企业,独立构建技术体系,独立建设产业生态,通过完全自主来实现产品可控。这两种模式均取得了长足的进步,为我国处理器芯片产业做出突出贡献。

RISC-V为我国提供了一条可 借鉴5G模式来发展处理器产业的新路径 。过去20多年,我国的通信事业在经历了「2G跟随、3G突破、4G并跑」的不断努力后,终于实现了「5G领先」。5G模式就是全球共建标准、各国自研产品,以产品质量竞争国际市场。5G模式有利于发挥中国市场大、场景多、工程师多的优势,实现产品的快速迭代优化,从而打造出具有国际竞争力的产品,实现国内国际双循环。借鉴5G模式,中国芯片企业有望通过参与RISC-V全球生态建设找到「弯道超车」的新机会。

图4

由于RISC-V最早是美国加州大学伯克利提出的,并不是由中国自己提出的,因此不少人心里会纠结来自美西方的东西不可靠。对此,强烈建议再仔细研读【在庆祝中国共产党成立100周年大会上的讲话】:「 中国共产党为什么能,中国特色社会主义为什么好,归根到底是因为马克思主义行! 」,「 我们积极学习借鉴人类文明的一切有益成果 」。

这两段话充分体现了中国共产党的伟大的胸襟和务实的作风。 马克思主义最早发源于欧洲,并不是由中国自己提出来的,但我党从不排斥国外先进的理念与技术 ,相反,「积极学习借鉴人类文明的一切有益成果」。同样,虽然RISC-V指令集最早是2010年加州大学伯克利分校推出,但它的 开放、开源、共享、共治代表了一种新的先进理念,某种程度上和早年的马克思主义、共产主义有相似之处 。RISC-V进入中国,其先进的理念很快得到业界的积极响应,为中国的处理器芯片生态发展带来新的机会。

中国共产党「 坚持把马克思主义基本原理同中国具体实际相结合、同中华优秀传统文化相结合 」。同样地, 与其纠结RISC-V不是由中国提出,不如把重心放在如何让RISC-V与中国具体实际相结合,如何让中国在全球RISC-V生态中发挥更大的作用 。总之,如何兼顾开放和自主,共产党做出了最好的表率。

回到高科技领域,高铁模式、北斗模式、5G模式都是我国高科技发展的成功模式。在处理器芯片领域,我们认为未来还可进一步融合,发展出「高铁+5G」模式、「北斗+5G」模式,也就是 在一款处理器芯片上同时支持双指令集的融合模式 。实现双指令集融合在技术上具有可行性(见图21-22),在商业上则有机会满足不同市场需求。这种双指令集融合模式,不仅能让企业保障国内一些行业的安全可控,也将助力企业的产品更容易出海。

图5

(二)芯片人才培养新模式

开源,为芯片人才培养带来新机遇,尤其是芯片设计人才。我们于2019年启动的「一生一芯」计划( @一生一芯 ),正是一种基于开源模式、贯通课程的实践性大规模芯片人才培养实践。如今, 「一生一芯」计划已经进行到第六期,累计已经有超过300所大学的6000位学生报名参与,培养处理器芯片实践型人才近800人 。开源芯片,为实践型芯片设计人才培养开启了新思路。

图6

秉持开源理念,「一生一芯」所有的资料都是开放共享的,并且 坚持公益性——为国内在校生提供一次免费流片的机会 ,让同学们通过努力能获得自己人生中的第一颗自己设计的芯片。

图7

每一位达到流片要求的同学都可以 获得一次免费流片机会 ,获得一块搭载自己设计芯片的「星空」板卡。

图8

来自全国不同大学的同学们把板卡接到显示器上,点亮自己的芯片,展示自己参加「一生一芯」的成果。当这些同学们毕业后进去各自工作岗位,将会很快脱颖而出,成为单位的骨干。我相信他们将会是未来开源芯片新世界快速发展的核心力量。

图9

「一生一芯」这种芯片人才培养模式,得益于开源芯片的兴起,也将反哺于开源芯片的发展。我们期待「一生一芯」计划能成为芯片设计领域的 「黄埔军校」 ,为我国的芯片产业输送高水平人才,为未来开源芯片新世界输送大量人才。

四、变革新机遇:商业篇

有人预测,未来RISC-V将与X86、ARM三分天下;还有人预测,如果放在更长的时间尺度上,未来RISC-V有可能会一统天下,理由是开放标准更有生命力。但 不管是哪种预测结果,哪怕是三分天下,也都会对产业带来巨大冲击,孕育着诸多商机 。但RISC-V的商业机会到底在哪里?汇总业界与投资界很多专家的观点,大致存在五种模式 当前大多数初创企业仍采用传统开发模式和商业模式,尚未充分挖掘开源RISC-V所蕴含的价值,未来仍有很多机会。

图10

模式一:ARM模式

既然RISC-V未来有望和Intel/ARM三分天下,那么必然会需要大量的商业IP。因此有机会复制ARM模式,成立RISC-V IP公司,提供自研的IP核或Chiplet。

图11

模式二:自研高端处理器

由于RISC-V可免费使用,因此在高价值的高性能领域,自研处理器核、Chiplet和SoC,可省去高档次ARM IP核高昂的授权费,并且可自由定制和扩展。

图12

模式三:根据场景定制芯片

由于RISC-V允许灵活定制和扩展,针对某个特定量大的应用场景,自研或基于开源RISC-V处理器核,并开发专用芯片,比如中科蓝讯基于RISC-V的耳机芯片每年出货量超过8亿颗。

图13

模式四:德州仪器(TI)模式

由于RISC-V允许企业灵活定制,因此有机会参考TI模式创建一个平台型公司,为中小用户提供「一站式芯片设计服务」,满足面向千亿量级IoT场景的成千上万种定制芯片需求。

图14
图15

模式五:Linux+RedHat模式

复制开源软件领域的商业模式,典型代表就是Linux + RedHat模式,基于开源的RISC-V实现(比如香山)来为下游SoC芯片设计企业提供IP产品和设计服务。

图16
图17

当前大多数初创企业都属于模式一、模式二和模式三,因为这些模式基本上是对现有ARM方案的替换,商业模式上比较清晰,而且可以复用现有的芯片开发工具。相应地,这几个模式的竞争也会更激烈。

长远来看, 模式四和模式五还是一片蓝海,并且存在很大的颠覆性技术变革的机会 ,若在一些技术上实现突破,有可能会对整个芯片设计产业带来颠覆性影响;并且可以和前三种模式很好的融合起来,或者说能支撑前三种模式发展得更繁荣。但是,模式四和模式五的技术成熟度仍需完善。这就需要抓住一下技术变革的新机遇了。

五、变革新机遇:技术篇

由于ARM指令集属于公司私有,没有ARM的授权,开源社区做一个开源的ARM处理器设计就属于侵权行为。但RISC-V是一种开放标准,任何人都可以使用RISC-V来设计自己的处理器,这就为芯片设计领域释放了开源的火种,于是各种开源RISC-V实现诞生了,紧接着一些创新的工具不断涌现出来了,甚至一些具有颠覆性的设计方法也开始冒出萌芽…… RISC-V带来了一场「核裂变」式的连锁反应,这是芯片设计领域的技术变革新机遇

这里介绍我们在开发「香山」高性能RISC-V处理器核( @香山开源处理器 )的过程中开展的一系列探索实践,核心目标就是 借鉴开源软件,构建一套开源芯片的开发流程 ,包括(1)面向对象敏捷设计方法,(2)敏捷验证方法与平台,(3)基于开源的芯片众包验证、(4)开源EDA工具链。这些还都只是初步的探索,但我们已经能感受到其中蕴含的巨大潜力。以下是在12月16日ChinaSys研讨会上报告的部分内容。

图18

(一)面向对象芯片设计方法

面向对象编程OOP(Object-Oriented Programming)是软件工程发展历程中非常重要的编程思想,提高软件的重用性、灵活性与扩展性,同时也推动了编程语言的发展。历史上,OOP相关工作先后三次获图灵奖:2001年授予Ole-Johan Dahl和Kristen Nygaard(设计了第一代OOP语言Simula),2003年授予Alan Kay(设计了第二代OOP语言Smalltalk),2008年授予Barbara Liskov(提出抽象数据类型)。

那么,处理器芯片是否可以用OOP思想?为此,我们提出一种面向对象体系结构设计方法OOA (Object-Oriented Architecture),核心思想就是将处理器内部结构解耦并对象化,实现处理器敏捷设计。

图19

我们在香山的开发中采用了面向对象体系结构OOA的思想,香山的各个模块都以类( class)来实现。于是整个香山RISC-V处理器被分解为1075个类,通过大量使用封装、继承、多态等面向对象编程思想,大幅提高了代码复用率和开发效率。根据我们实践数据统计可知,采用OOA开发的代码量只有传统开发模式的五分之一,这不仅提高了开发效率,也降低了项目的维护难度。

图20

采用面向对象设计方法后,偶然还能收获一些意想不到的收获。下面是两位中国科学院大学的本科生采用面向对象设计方法,主要对三个模块(Decode、MMU、CSR)进行对象化改造,于是在两个星期内就实现了一套微架构设计代码上同时支持LoongArch指令集和RISC-V指令集。

图21

在同一套代码上支持双指令集,通过编译选项可以选择生成某一种指令集的处理器设计。这类似于在Linux源码中加上一些宏定义来选择支持不同的处理器,只是在这个设计中,是基于面向对象编程方法实现的。下图是演示分别加载loongnix操作系统(@LoongArch)和Linux Debian发行版(@RISC-V)。这个设计最终获得了「龙芯杯」全国大学生计算机系统能力培养大赛二等奖。

图22

(二)敏捷验证新方法

虽然采用面向对象思想设计处理器开发效率很高,但是却带来新的挑战,那就是验证!正如EFPL的Babak Falsafi教授的一篇评论文章标题所指出【敏捷硬件设计缺少什么?验证!】。事实上,我们在开发香山的过程中亲身感受到敏捷验证的重要性和急迫性。

图23

从技术角度来看,敏捷开发对验证带来的新挑战是待测设计 (design-under-test, DUT)和参考模型 (reference model, REF)的设计效率不一致了——通过敏捷开发,DUT可以快速生成,效率很高;然而REF却不能自动生成,仍然需要验证工程师人工设计。过去几年,我们和业界很多企业的芯片开发工程师交流,可以发现验证工程师普遍更不能接受敏捷开发模式。

图24

我们设计了一套新的敏捷验证平台,它能完成敏捷功能验证和敏捷性能验证。这套工具大幅减少了验证工程师的投入,从而让整个芯片开发过程真正敏捷起来。

图25

香山团队自研20多个新工具,形成一套处理器芯片敏捷开发新方法。在我们看来,这套工具和平台就是冰山水下面的部分,是支撑香山微架构快速迭代的基础设施,某种程度上比香山微架构更重要。这一点,我们和马斯克的理念相同——在他看来,特斯拉工厂里自动组装电动汽车的机器人和流水线的设计,要比特斯拉某个型号电动汽车的设计更重要。值得一提的是,香山的这套敏捷开发新方法达到国际先进水平,也入选2022年度体系结构领域全球12项亮点成果(IEEE Micro Top Picks)。

图26

(三)开源众包验证

开源有可能进一步对芯片验证带来颠覆性影响。一般而言,芯片设计源代码属于一个芯片公司最核心的商业机密,决不允许外传,很多企业甚至把源代码放在红区,要断网,不能带手机,甚至还要加摄像头实时监控。因此,要验证这些芯片设计源代码,只能招聘大量的验证工程师在公司内部完成。

但是,开源芯片则完全不同,就如香山所有的源代码都是公开的,任何人都可以随时随地访问。那为什么不能调动全世界开源社区的力量一起来验证?因此,我们开始探索基于开源模式的众包式验证。

图27

于是我们启动了一个开源芯片验证项目,目标是建立一个类似Hugging Face这样开源社区,让更多人可以参与到开源芯片验证中来。要实现这个目标当然会面临很多挑战,尤其是相比于软件领域,芯片领域的开发者基数小几个数量级,芯片验证需要复杂的仿真环境等等。因此,我们也设计开源芯片验证「三步走」规划,逐步来实现目标。我们很期待到第三步,可以由开源社区一起来验证香山处理器核。

图28

这是我们畅想的开源芯片验证愿景目标:在不久的将来,不管是开源芯片设计还是商业芯片设计都可以提交到一个开源芯片验证平台,通过该平台聚集全世界的开发者共同参与验证。这个平台支持不同的语言来参与验证工作,比如Python、Java、Go等等,这个平台也会通过一些机制来保障验证质量,提供代码覆盖率报告等信息。这样,整个芯片领域的验证模式将会发生巨大的改变,软件开发者也能参与芯片开发,而芯片企业也不再需要招聘大量的验证工程师。

图29

(四)开源EDA工具链

开源编译器GCC/LLVM在开源软件生态中起到核心作用。EDA工具链是芯片设计领域的「编译器」,构建一套开源EDA工具链将极大地推动开源芯片的自动化设计和验证。特别是未来若要让 芯片设计上云成为SaaS服务 ,那么开源EDA工具链将更容易与云计算结合。

我们在2018年开始布局开源EDA,到现在已经完成了三次流片——其中 两次110nm( 完全使用开源EDA工具链), 1次28nm( 还需使用商业signoff工具)。芯片返回后均能点亮,并能运行操作系统。近期目标是实现一条完整的开源EDA工具链,到2025年在28nm工艺上完成开源RISC-V处理器「香山」的流片,PPA达到商业EDA工具的90%。这是一个充满挑战的目标,需要在算法优化、AI辅助设计、工程实现、开源众包等多方面去探索和实践。

关于开源EDA方面的工作,在这个知乎回答中有更多介绍:

国内外有哪些做EDA的课题组很厉害?

图30

一套完整的开源芯片技术体系包括: L1——开源指令集、L2——开源设计实现、L3——开源工具 3 个层次 。其中,L1 是整个开源芯片技术体系的基础;没有 L1 级的开源指令集,则不可能有 L2 级开源设计实现。这也正是 RISC-Ⅴ 指令集的价值所在,它赋予了全世界所有人免费设计与实现处理器芯片的平等机会。当然虽然 L1 是基础,但要设计与实现一个处理器,L2与 L3更为重要。

理想的 L3 级应该是设计与实现开源芯片的工具全部开源,目前全世界范围尚未达到这个水平。我们不仅将「香山」开源,将开发「香山」的底层工具也开源,努力向 L3 级靠近。但「香山」也还未完全达到 L3 级,因为当前「香山」的开发过程中仍需大量使用商业 EDA 工具,仍需努力。

图31