RISC-V生态:指令集开源只是开场,碎片化才是正片
去年在一个行业会上,听某家芯片公司讲他们的RISC-V产品线。PPT翻到生态那一页,密密麻麻列了几十家合作伙伴。台下有人问:“你们工具链上游合了多少patch?”台上顿了一下,说“这个……我们内部有完整方案。”这味儿太熟了!搞过RISC-V的人都懂,所谓“完整方案”,大概率是一套自己维护的GCC分支加一堆没上上游的补丁。能用吗?能。好维护吗?你猜。
热闹是他们的,重复劳动是自己的
RISC-V指令集开源这件事,被说得太多了。多到有点腻。
但指令集开源只是拿到了入场券,后面的脏活累活——编译器后端调优、操作系统适配、中间件移植、验证IP复用——才是决定生态能不能活下来的东西。
可惜,这些事不性感。
PPT上放个“开源指令集”就够讲故事了,投资人爱听。
说个具体的。RISC-V允许厂商自定义扩展指令,这是它跟ARM最大的区别之一。好处显而易见:你可以针对自己的加速器加几条专用指令,跑特定负载能快不少。坏处呢?每家厂商都这么干,每家都要维护一套自己的工具链分支,每家都要在GCC和LLVM里塞自己的代码。结果就是上游社区里的patch永远合不进去。后来者要支持同样的功能,只能从头再写一遍。这叫什么?这叫重复造轮子,还是各造各的。
我见过一家做边缘计算的芯片公司,他们的GCC分支跟上游差了快两千个commit。问为什么不往上游提,答曰“商业机密”。——你一个指令集扩展有什么商业机密?说出来无非是怕别人抄了你的加速方案。可你又不是靠指令集本身吃饭的,你卖的是芯片。工具链分支自己养着,成本全摊在工程师头上。这账算得过来吗?
RISC-V自定义指令扩展与GCC工具链上游分支分裂示意图
不过话说回来,这事儿也不能全怪厂商。RISC-V国际基金会的标准推进速度,客观讲,不算慢,但也不够快。厂商等不及,自己先干了。等标准出来,自己的实现已经铺出去了,改不动了。于是碎片化就这么滚雪球。
标准想当爹,厂商想当爷
RVA23 profile是RISC-V国际基金会近年推的一个关键玩意儿。简单说,它定义了一组必须支持的扩展:向量扩展、hypervisor扩展、位操作扩展,等等。目标很明确——把应用处理器的生态收敛到一个基线,让操作系统和中间件厂商有个确定的靶子。想法挺好。
但厂商不买账。为什么?差异化是卖点。你让我跟别人一样,我凭什么卖高价?这就拧巴了:生态要统一才有规模效应,厂商要差异化才有利润空间。ARM当年怎么解决的?它用授权模式卡住了指令集,厂商只能在微架构上做文章,指令集层面不允许动。RISC-V把这道闸门打开了,自由是自由了,代价就是碎片化。
有没有破局的路子?有,但都不轻松。一条路是大厂牵头做参考实现,把工具链和验证环境开源出来,小厂跟着用。SiFive和Andes在某些层面做过类似的事,但覆盖面有限。另一条路是操作系统厂商倒逼——比如Ubuntu、Fedora什么时候把RVA23作为RISC-V版本的强制要求,那芯片厂商就得掂量掂量。目前看,这个压力还不够大。
还有一条更现实的路:垂直领域先收敛。比如MCU市场,对扩展指令的需求本来就低,标准化反而容易。WiFi/BT combo芯片也是类似逻辑。先让一两个出货量大的品类把生态底座夯实,再往高处走。反例也有——某家做AIoT芯片的公司,第一代产品用RISC-V核,客户反馈软件兼容性问题太多,第二代直接换回ARM Cortex-M。不是RISC-V性能不行,是客户不想当小白鼠。你懂的。
RISC-V RVA23 profile标准强制扩展与厂商自定义差异化冲突关系图
验证和人才,两条暗渠
验证和人才,两条暗渠
聊RISC-V生态,很少有人提验证成本。但这玩意儿是真金白银。一个能过车规的RISC-V核,验证成本可能比核本身的IP授权费还高。为什么?EDA工具对RISC-V的支持不如ARM成熟。形式验证、功耗分析、DFT插入,很多流程要自己搭。ARM那边有现成的验证IP和参考流程,RISC-V这边你得自己攒。攒出来的东西质量参差不齐,出了bug算谁的?
人才更缺。懂RISC-V微架构的人不少,懂软件栈的人也不少,但两样都懂、还能把工具链和操作系统串起来的人,市场上真没几个。我前阵子帮朋友招人,JD挂出去两个月,面了十几个,能聊清楚GCC后端和Linux内核启动流程的,一个手数得过来。薪资开得不低,就是没人。这事儿急不来。
再说个反直觉的:很多公司做RISC-V芯片,不是因为RISC-V真的比ARM好,而是因为政策补贴或者国产替代的压力。这种需求撑不起生态。补贴一退,产品线就砍。砍完之后,那些为它写的驱动、做的适配、养的工程师,全成了沉没成本。生态是需要持续投入的,靠脉冲式的热情堆不出来。
什么时候才算真起来了?
什么时候才算真起来了?
说几个可观察的判据。第一个,至少有一个年出货量千万级以上的RISC-V芯片品类站稳脚跟。不是样片,不是小批量,是真正在市场上跑量、客户愿意复购的那种。目前看,WiFi/BT combo和某些专用MCU有机会,但还没到那个量级。第二个,主流Linux发行版对RISC-V的支持达到“开箱即用”水平。不是能启动就行,是常用软件包都有、性能可接受、bug有人修。Debian和Fedora的RISC-V ports在进步,但离“开箱即用”还有距离。第三个,出现一家靠RISC-V软件服务赚钱的公司。注意,不是卖IP,不是卖芯片,是卖工具链支持、验证服务、系统集成。这种公司出现,才说明生态里有了自我造血的能力。目前还没看到。
不过话说回来,也别太悲观。RISC-V才十几年,ARM走了三十年才到今天这个位置。你让一个十几岁的生态跟三十岁的比成熟度,不公平。真正的问题是节奏——别在底座还没夯实的时候猛吹应用层。吹得越高,摔得越疼。
说实话,我对RISC-V长期看好。但短期别吹太过。生态这东西,急不得。你越急,越容易搞出一堆互相不兼容的“生态”,最后全成了烂尾楼。到那时候,收拾残局的还是那些在一线写驱动、调编译器、跑验证的工程师。他们不说话,不代表他们不存在。