原创 给开源架构泼泼冷水

2018-5-21 13:12 4502 20 14 分类: 处理器与DSP 文集: SoC

最近开源架构的话题又在国内火了,这次是RISC-V。开源架构并不新鲜,
Sparc也开源,Power也开源,MIPS开源支持Android还让好些人激动了一把,但都是热闹了一阵以后就曲终人散了,然后几年以后再来一轮,媒体再炒一轮。其实我觉得这一次RISC-V也没什么不一样。

摆上茶水瓜子点心,给大家慢慢讲:首先所有推崇RISC-V的文章都在说RISC-V架构简单,功耗面积低,这其实跟以前夸MIPS没什么不同。在CPU设计里,指令集是其中最简单最基础的一部分,可以说,采用RISC架构的指令集都差不多,无非是在寄存器数目,分支跳转,数据存取等指令方面做一些取舍,达到某种平衡,满足某些特定需要。在学院派那儿PK的功耗面积,在工程派眼中离实用还远的很。做出一个demo和做出真正工程上能用的产品还隔着十万八千里,而工程上能用距离商业成功又隔了十万八千里。因为一个指令集就把某种架构夸上天实在没必要。 少年啊,心态要平稳,不要太浮躁

开源架构受到追捧隐含的另一个意思是Arm等IP厂商授权太贵,所以总有人揭竿而起要革商业公司的命,用免费打败收费。这里面有两重误会,我一一道来:


第一个误会是指令集架构授权和CPU
核的授权被刻意模糊了。Arm的CPU核授权门槛其实很低,甚至有Design
Start你们可以了解一下,基本可以免费获取Cortex-M0和Cortex-M3,一些媒体文章动辄说Arm授权费要千万美金,钱真有那么好赚吗?Arm被孙正义收购的时候营收一年也就10多亿美金,这生意绝对说不上大。架构授权的客户都是财大气粗玩的起的主儿,如我大苹果、大高通、大三星等,初创公司完全有很多很便宜的选择,干嘛一上手就搞架构授权?刻意强调千万美金授权不能不说是有意误导。


第二个误会则是来自开源社区。

很多人说开源架构免费多好呀,但我要说从架构定义到CPU核实现这中间有很长的路要走,这一部分并不免费不免费,不免费(重要的事情强调三遍)像SiFive等公司都是要收钱的,与Arm的CPU核授权并无多少区别。把开源解读为免费恐怕是一个中英文翻译中的误会。在开源社区的概念刚刚被引入的时候就有人把Free
Software翻译为免费软件,但其实更准确的翻译是自由软件或开源软件,开源不等于免费,免费也不等于开源。开源指的是源代码公开,任何人可以免费获取自行编译或重新开发,只是要遵循相应的版权协议,像Linux遵循的是GPL协议,用GPL开源协议的代码重新开发的软件也必须开源。免费指的是软件不收钱,但是不一定开源。大名鼎鼎的Redhat
Linux是开源的,但是也不影响Redhat公司靠服务费收钱。在开源架构社区也是一样,指令集是开源的,遵循BSD协议,各家开发的产品不是必须要开源回馈给社区。各家公司在这个指令集基础上开发的自己的CPU核产品都是要收费的,毕竟开发CPU核产品也是要投入人力研发的啊,总不能都去做雷锋吧。


以上这些都是老生常谈。开源架构每过几年就要来一轮,背后其实大家都懂,就是学院派总是要有点新的研究成果,“国外一开源,我们就自主”的风气决定了,国外有什么新的指令集架构开源都会在国内激起一阵躁动。但学术不等于商业。CPU架构从上世纪90年代的10多家到现在以X86和Arm为主,背后其实是更深刻的产业和商业规律在主导。在我看来,有几下几个要素:


1.指令集架构创新不具有革命性

有多篇论文分析过指令集架构和性能功耗的关系,结论是指令集的差别与性能和能耗没有关系,两者性能的差异是由于需求的不同在硬件设计上的反映,例如指令发射速度、分支预测、乱序执行等方面,提升这些方面的性能需要使用到大量的硬件,使得硬件设计变得更加复杂,并且带来了更多的能耗。正如吴军在《浪潮之巅》中所说,“数量级是判断一项新技术是革命性还是革新性的关键”。Arm处理器功耗相比于x86有了数量级的提升,手机市场又比PC市场出货量要大一个数量级,这才有了Arm在移动互联网市场占据了端侧的优势,取代了x86指令集,也让架构授权模式为更多玩家所认可。在开源架构和Arm的PK中,没有这种数量级上的差异。Arm和RISC-V都是RISC架构的,只是指令集定义的不同,这就决定了不可能从指令集PK中获得什么优势,还是看具体的硬件实现和功能取舍。


2.技术先进性不等于商业成功

每次有人强调新的指令集比原有的指令集要高效的时候我就笑了,大家想想键盘布局的故事。现在的QWERT键盘布局虽然奇怪,但延续了这么多年,已经有了强大的惯性,即使有人发明了更高效的键盘布局也无法得到广泛支持。指令集上的故事也是类似。Intel的x86指令集是CISC架构的,曾被人Diss架构臃肿。历史上也有多次“x86革命”想取代x86架构,但都因为得不到广泛的支持最终以失败告终。巨大的商业利益和强劲的软硬件的支持可以使得x86架构难以撼动,这些都不是一个简单的技术问题。


3.指令集架构是一个昂贵的公共品。

对学院派来说,能运行软件跑成Demo发论文就是成功,对商业公司来说则是要完成从指令集定义到CPU微架构的设计,到整个芯片的设计和相应软件,工具链的开发和维护,以及在上面运行的操作系统,丰富的函数库以及应用程序,还需要得到大量用户认可,这些都不是一朝一夕之功。设计指令集不难,让一个指令集得到市场认可很难,而一旦得到认可,人们要迁移的成本也很高,这就是Intel能多年在PC和服务器市场称霸的原因。Intel也因为x86指令集的成功获得了巨大的商业利益。指令集架构这一公共品是如此昂贵,无法通过社区自发成长起来,而必须结合商业公司的力量。Linux也是在Android采用以后才得到了大发展。

Arm通过授权模式让众多CPU厂商可以共享一套指令集和编译工具,极大的降低了众多CPU厂商的开发门槛,其实相当于众多CPU厂商众筹了一个Arm指令集,节省的是各家自己开发并维护一套指令集的开销。也正因为这个原因,市场对CPU架构的人员需求减少了,对应用程序开发者的需求增多了,Arm生态系统才有了今天的发展。

现在众多厂商众筹另一个指令集,然后呢?也一样有巨大的生态开发成本,从指令集定义到真正成熟得到广泛应用,没有一二十年起不来。硬件不像软件,有什么错误可以发布新版本去修正,一旦流片了再修改就难了。一个IP要做好不是那么容易的事情,需要有客户一起去趟早期开发过程中的坑,稍有不慎出现一个Bug,前期投入就要打水漂。对商业公司来说开发成本损失还是小事,错失了市场机遇才是最大的损失。即使新指令集生态真能起来,大多数公司要么维护自己的CPU核开发团队,要么从IP授权公司购买相应的架构实现,真的能省钱吗?还是到时候再切换一次指令集,把这些坑再趟一遍?

另外,开源架构采用的指令集架构开源,各家可以自己设计自己的CPU核的方式从一开始就埋下了碎片化的种子,各家IP公司自己设计自己的扩展,并且不需要回馈社区,其结果就是各自有一套自己的开发工具和软件库,重新走到了上世纪90年代有多家指令集架构的局面,对芯片开发公司来说并没有节省什么成本,反而因为各自微架构的特殊性带来操作系统和应用程序的不兼容,这是与商业世界成本尽量降低相矛盾的。

指令集是越多人使用价值越大,指令集架构也就更贵,而CPU核只是部分公司使用,相对于指令集架构就便宜一些,这是Arm的商业模式,是目前经受了实践的检验的一种模式。当年MIPS指令集架构授权很便宜,CPU核卖的贵,是从成本而不是用户需求定价,正好搞反了。结果就是各家都拿了指令集自己去设计MIPS核,造成碎片化和分裂。现在开源社区也是类似的问题。指令集开源,准入门槛很低,IP设计厂商各搞一摊。开源社区没有力量去维护各家实现的统一标准,各家也只能通过低价来抢市场,芯片设计厂商则需要面对不同IP厂商的CPU核实现,不能发挥统一架构的优势,构成恶性循环。

以上是一点对开源架构的浅见,供参考。最近RISC-V一片赞歌之中,我们更需要有一些不同的声音,RISC-V发展前景到底如何,拭目以待。



文章评论7条评论)

登录后参与讨论

frank_209967873 2018-7-31 16:33

如果RISC-V指令集真的那麽不堪, 请问Nvida等公司是傻瓜笨蛋吗?请参考:https://technews.tw/2018/03/29/google-tesla-get-behind-challenge-to-arm-chip-design/
用开源RISC-V指令集的厂家,不代表自己就必须跟Nvidia一样必须自己去设计CPU, 而是当你选择了RISC-V , 无论你是自己开发CPU或使用现成IP, 你的软体不用担心万一要换一家CPU IP厂商(如ARM换成MIPS)时, 你的软体必须重新移植过。 这样可以保持最佳弹性, 而RISC-V的开放性, 可以保证以後会有N家的IP 供应商,而非ARM只有一家, 这才是使用RISC-V的最关键因素。
ARM无论再如何便宜,ARM也不可能把ARM架构授权给第二家IP供应商。因此像Nvidia这种GPU,AI专用芯片需要N多个CPU核时就选择了RICS-V, 他们难道没有能力自行定义指令集吗?但是使用一个验证过simulator, tool chain ,现成的开源的指令集不是更划算吗?
看看跳出来支持RISC-V的是哪些公司吧!那些公司不是因为大,才有眼光;而是有眼光, 才会大!
国外马上有公司要出来要搞RISC-V CPU IP,  看看国内多快会有公司跳出来!

278080221_559096665 2018-5-27 13:15

我也同意,我觉得RISC-V很难挑战ARM

低空飞行的熊猫 2018-5-21 17:15

moniqiuwen: 大神,小白默默问一句RISC-V为何最近这么火
架构免费其实对很多人来说啥用都不顶,很多人不会自己设计核

低空飞行的熊猫 2018-5-21 17:14

Yorbe.Zhang: 好文! 如能详细分析下后期可能会涉及到的付费领域就更完美。。。
可以参考新写的这篇,比较详细
https://www.mianbaoban.cn/blog/1864163-404694.html

Mike张迎辉 2018-5-21 14:03

资本很看好的RISC-V,但是商业模式确实尚未明确。

Yorbe.Zhang 2018-5-21 13:51

好文! 如能详细分析下后期可能会涉及到的付费领域就更完美。。。

moniqiuwen 2018-5-21 13:49

大神,小白默默问一句RISC-V为何最近这么火
相关推荐阅读
低空飞行的熊猫 2018-05-21 13:10
RISC-V - 一张没有施工图纸的大楼效果图
RISC-V到底是什么?其实他并不是开源的CPU设计方案 大家可能都觉得RISC-V是个开源的精简指令集CPU设计方案,其实这是错误的。RISC-V仅仅是一套精简指令集的定义,开源的意思是任何人...
广告
我要评论
7
20
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /3 下一条