之前我们曾报道过“因 ARM 授权费用太贵,科技巨头欲转向开源架构 RISC-V” 的消息,与 ARM 相比,开源的 RISC-V 指令集可以自由地用于任何目的,允许任何人设计、制造和销售 RISC-V 芯片和软件,也因此 RISC-V 在嵌入式平台正引起越来越多公司的关注,包括 Google、特斯拉、三星、高通等科技公司已加入 RISC-V 阵营。
或许是因为这种趋势让 ARM 感受到了压力,ARM 在6月底建立一个域名为 riscv-basics.com 的网站,里面的内容主题为“设计系统芯片之前需要考虑的五件事”,从成本、生态系统、碎片化风险、安全性和设计保证上对 RISC-V 进行攻击。
此举自然引起了 RISC-V 的强烈不满,7月9日 RISC-V 也建立一个域名为 arm-basics.com 的网站,并用“设计系统芯片之前需要考虑的六件事”为题(在 ARM 列出的五项上新增了社区支持),对 ARM 进行反击,并呼吁厂商采用真正自由的架构 RISC-V。
对于此事,GNOME 之父 Miguel de Icaza 在推特上表示,“ARM 对 RISC-V 的这种负面宣传只会适得其反,而且他们提出的观点有点弱”。
7月10日,ARM 的 riscv-basics.com 网站下线。Arm 发言人在接受外媒采访时表示,他们最初的目的是打算创建一个网页以列出围绕 RISC-V 的商业化产品需要考虑的关键因素,旨在为激烈的行业辩论提供信息。遗憾的是,结果有些出乎意料,该页面也不符合 Arm 的合作文化,所以下线了。
该发言人还强调:“我们绝对不希望给大家一种攻击开源的印象,因为我们本身就是许多不同领域的开源社区的高度支持者。我们的目的是想做一些健康的行业讨论,因为这对这个行业的未来至关重要。”
虽然Arm的riscv-basics.com网站已经下线,但是围绕该网站的讨论并没有结束。我们不禁要问,该网站上列举的五大质疑是否有道理呢?
首先, 生态确实是目前RISC-V的短板。目前RISC-V社区还处于起步阶段,在这一阶段不太可能拥有完整的生态,因为生态建设需要时间。目前RISC-V由RISC-V基金会牵头的生态建设势头还不错,如果这样的势头保持下去未来我们可望看到非常完整的生态,甚至因为RISC-V的开源特性,每个感兴趣的个人或者团队都可以做出自己的贡献并且其灵活的特性和授权,我们可能会看到RISC-V在未来会拥有比起ARM来说更活跃的生态。
对于成本的质疑则显得缺乏根据,RISC-V的开源模式其实是其最大的优势,类似“指令集仅仅是处理器的一小部分因此指令集成本并没有太大意义”这样的说法并不合适。指令集确实只是处理器的一小部分,但是却是最核心的部分,ARM对其定价也非常高。这也是为什么ARM的授权中,如果客户需要修改指令集,在ARM的基础上加以定制优化以形成自己独特的设计,则需要花大价钱去获取“架构授权”(目前全球花大代价获得ARM架构授权的公司并不多,都是例如苹果、高通等巨头),而相反如果只是从ARM授权一个IP硬核,其授权费用就要低得多。
换句话说,如果你真的从ARM处想要获得指令集授权,那么指令集授权费很可能会构成你SoC芯片设计成本的大头!这样看来,RISC-V将指令集完全开源,任何公司和个人都可以自由使用、修改与定制的模式将会带来很大的成本优势,另外这样的开源举措会大大降低指令集修改和定制的进入门槛,使更多人有机会探索并定制个性化指令集,从而使RISC-V生态更加生机勃勃,而不只是有钱人才能玩的游戏。
对于指令集碎片化的质疑,则确实是不少设计者所关心的。为了引入更多设计灵活性,碎片化似乎是不得不面对的问题。事实上,RISC-V基金会主席(同时也是RISC-V在加州大学伯克利分校的主要开发者)Krste Asanovic曾经在专访中回答过关于碎片化的问题。Asanovic指出,RISC-V基金会制定了一系列规范来保证兼容性,RISC-V分为基础指令集和拓展集两部分,所有的RISC-V处理器都会支持40条基础指令集,这是兼容性的首要保证。
此外,每个扩展指令集处理器往往只是面对一个细分市场场景,而不会想做成通用场景处理器,因此碎片化并不是问题;最后,如果某一细分场景逐渐变得流行,则RISC-V基金会会推动针对该场景的拓展指令集进行标准化。应该说碎片化问题有可能是RISC-V未来面临的一个挑战,这个问题和前面的生态建设息息相关,如果生态建设地好则指令集分散化反而会成为RISC-V的优势。
最后,对于安全和设计验证方面的指责则显得有点牵强。就安全方面来说,之前的Spectre和Meltdown漏洞中,Intel、AMD和ARM的大多数处理器都出现了问题,这是由于计算机架构(如乱序执行、TLB等)沿用已久的经典设计在出现的时候压根就没有考虑到会有这类问题,相反使用较新架构的RISC-V处理器(例如Rocket系列)却在这次漏洞事件中表现出了更好的安全性,因此网站责难说RISC-V处理器安全性存在问题反倒显得有一些讽刺意味。
对于设计验证,“改动指令集会需要大量设计验证,所以如果设计验证完整度不够的情况下自行修改指令集反而容易出错”这样的观点几乎就等同于是因噎废食,首先RISC-V基础和主流扩展指令集目前已经有大量的芯片以及FPGA原型在跑,验证度已经很高,其次每一家负责任的公司都会仔细掂量修改指令集的难度,如果超过自己的能力范围自然会转而选择成熟的经大量验证的指令集版本,但是以“指令集修改需要大量验证,我不让你改还主要是为了你好”为理由剥夺大部分公司修改指令集的自由则无疑是荒唐的。
目前ARM占据了以移动设备为代表的处理器IP的绝大部分市场,而RISC-V则是后起之秀。那么,未来会何去何从呢?
目前的ARM和RISC-V让我想起了上世纪末的Windows和Linux之争。当时的计算机主流设备是PC,而Windows则当仁不让是PC端的绝对主流操作系统,Linux则主要是小众极客的选择。随着时代的推移,计算设备的潮流逐渐转向了移动设备,到了今天又转到了云端数据中心高性能计算。
我们看到之前的操作系统霸主Windows在移动设备和高性能计算领域都没有获得很多份额,这一方面是因为Windows本来就是为了PC设计,其核心代码比较复杂,不便于移植;另一方面其商业软件非开源的特性也让Windows的开发限定在了微软公司内部。
Linux则完全不同,其核心代码很轻,而且没有兼容性等历史包袱,因此移植起来比较容易,此外其开源的特性让社区中的爱好者程序员可以参与Linux开发,他们针对Linux本身的移植、改良和开发以及各种Linux平台上的程序形成了Linux生态中的重要部分。对于爱好者来说,Linux开源项目的开发虽然没有金钱回报,但是这些开发经历被业界认可,可以成为简历上的重要一部分。这样,Linux开源社区和爱好者互惠互利,形成了良性互动。到了今天,Linux已经成为了云端数据中心高性能计算的主流操作系统之一,在移动端的主流操作系统Android也是基于Linux的内核开发。
ARM和RISC-V的未来竞争格局也可能类似。首先几乎可以肯定的是,在ARM的传统优势领域,即手机领域,RISC-V基本没有机会,因为手机经过十年迭代后不太会彻底改变处理器内核了,这也和目前Windows经过二十多年风雨仍然是PC市场操作系统龙头老大一样。
但是,在新兴的领域,RISC-V和ARM都处于同一起跑线上,而RISC-V凭着指令集开源等特性很有可能可以击败ARM,或者至少能够占据可观的市场份额。目前这样的新兴市场主要是物联网市场。物联网市场有长尾化的特性,拥有众多细分市场,同时对于功耗有很高的要求,因此对于可以针对不同应用灵活修改指令集和芯片架构设计的RISC-V有优势,相比之下使用ARM往往只能做一个标准化设计,很难实现差异化。
此外,物联网市场对于成本较敏感,RISC-V免费授权的特点对于芯片厂商也很重要。在RISC-V基金会名单中,我们可以看到高通、联发科这样重点布局物联网的企业。而在目前很火的AI芯片市场,ARM和RISC-V则尚看不出明显的优劣。这是因为高性能AI芯片中无论是使用ARM还是RISC-V的核,主要都是作为控制器来使用,最主要的也是最核心的计算单元往往是电路设计师自行设计而不会使用IP;另一方面AI芯片的利润空间往往较大,因此RISC-V的免费的特点并没有带来特别大的优势。
(综合整理自开源中国、李飞原创)