小飞飞 发表于 2020-7-20 16:56:09

关于RISC-V与Arm的对比分析和各自的应用

本帖最后由 小飞飞 于 2020-8-10 16:24 编辑

近日,开源指令集RISC-V得到了越来越多的重视。RISC-V是加州大学伯克利分校的开源指令集,由计算机体系架构的宗师级人物David Patterson领衔打造,通过将核心指令集以及其他关键IP开源,意图大大改变半导体的设计生态。随着西部数据、Nvidia等业界巨头以及大量初创公司宣布开始使用RISC-V,ARM想必也感到了压力。
ARM上线了质疑risc-v的网站riscv-basics.com – 24小时后又下线了
北京时间7月10日,细心的网友在发现在Google搜索RISC-V时,得到的第一个结果是一个购买了Google AdWord(即竞价排名)的搜索结果,即riscv-basics.com。
点进该网站后,可以看到该网站列举了对RISC-V的几大质疑,包括:
-成本:虽然RISC-V是开源ISA,但是ISA仅仅是处理器芯片的一小部分,因此RISC-V的免费ISA对于整体处理器的成本影响并不大。-生态系统:RISC-V生态系统不够完整,无法提供完整的(包括硬件到软件)设计支持。-碎片化风险:RISC-V生态中每个项目都可能会做自己的私有指令集扩展,导致软件兼容性不好,即碎片化问题。-安全性问题:之前由大厂出品的x86和ARM许多处理器都遇到了安全性问题(Spectre漏洞),而由一个尚处于起步阶段组织或初创公司发布的RISC-V处理器遇到安全性问题的可能性更大。-设计验证:RISC-V虽然是开源指令集可以自行改动指令集,但是改动指令集会需要大量设计验证,所以如果设计验证完整度不够的情况下自行修改指令集反而容易出错。
riscv-basics.com的网站截图
ARM网站上质疑RISC-V架构的图片五点质疑是否有效?虽然网站已经下线,但是围绕该网站的讨论并没有结束。我们不禁要问,该网站上列举的五大质疑是否有道理呢?
首先, 生态确实是目前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条基础指令集,这是兼容性的首要保证。

小飞飞 发表于 2020-7-20 16:57:14

本帖最后由 小飞飞 于 2020-8-10 16:25 编辑

此外,每个扩展指令集处理器往往只是面对一个细分市场场景,而不会想做成通用场景处理器,因此碎片化并不是问题;
最后,如果某一细分场景逐渐变得流行,则RISC-V基金会会推动针对该场景的拓展指令集进行标准化。
应该说碎片化问题有可能是RISC-V未来面临的一个挑战,这个问题和前面的生态建设息息相关,如果生态建设地好则指令集分散化反而会成为RISC-V的优势。
最后,对于安全和设计验证方面的指责则显得有点牵强。
就安全方面来说,之前的Spectre和Meltdown漏洞中,Intel、AMD和ARM的大多数处理器都出现了问题,这是由于计算机架构(如乱序执行、TLB等)沿用已久的经典设计在出现的时候压根就没有考虑到会有这类问题,相反使用较新架构的RISC-V处理器(例如Rocket系列)却在这次漏洞事件中表现出了更好的安全性,因此网站责难说RISC-V处理器安全性存在问题反倒显得有一些讽刺意味。
对于设计验证,“改动指令集会需要大量设计验证,所以如果设计验证完整度不够的情况下自行修改指令集反而容易出错”这样的观点几乎就等同于是因噎废食,首先RISC-V基础和主流扩展指令集目前已经有大量的芯片以及FPGA原型在跑,验证度已经很高,其次每一家负责任的公司都会仔细掂量修改指令集的难度,如果超过自己的能力范围自然会转而选择成熟的经大量验证的指令集版本,但是以“指令集修改需要大量验证,我不让你改还主要是为了你好”为理由剥夺大部分公司修改指令集的自由则无疑是荒唐的。
未来ARM和RISC-V的竞争将会何去何从?
目前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的免费的特点并没有带来特别大的优势。本篇完
页: [1]
查看完整版本: 关于RISC-V与Arm的对比分析和各自的应用