最近中美贸易战激战正酣,中兴被美国禁运的消息传来,一时间国内舆论大哗,说了多年的芯片“自主研发”,这么多的国产芯片上市公司,似乎到了关键时刻就被人卡脖子了。
已经有很多媒体谈到了国产芯片的自主制造,但似乎没有多少人谈到芯片架构的问题。芯片指令集架构是沟通软硬件运算之间的桥梁,以前曾经有过许多的架构,但随着时间的推移,类似于MIPS等架构已经逐渐消失了。
2016年7月18日,日本软银宣布以243亿英镑(约合320亿美元)收购英国芯片CPU IP设计公司ARM。ARM在中国有100多位合作伙伴,去年基于ARM生产的芯片产品有170亿颗,而全球人口也只有70亿。有业内人士预测在物联网时代,基于ARM架构芯片将达到万亿级别。目前国产芯片中商业发展最好的华为海思、紫光展锐均采用ARM架构来进行IC设计。
目前主流的架构包括Intel的X86、ARM架构,在日常生活中见到最多的是ARM,基本上所有的芯片公司都在采用ARM的架构。
可以说,谈到物联网应用已经不能绕开ARM,但是在ARM基本上要一统天下,甚至侵入Intel的桌面PC和服务器业务的时候,免费开源的RISC-V诞生了。
RISC-V(发音为“risk-five”)是一個基于精简指令集(RISC)原则的开源指令集架構(ISA)。
与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。
该项目2010年始于加州大學柏克萊分校,但许多贡献者是该大学以外的志愿者和行业工作者。
RISC-V指令集的设计考虑了小型、快速、低功耗的现实情況來實做,但並没有对特定的微架構做过度的設計。
截至2017年5月,RISC-V已經確立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。
“RISC-V可能真正能成为国产的自主的指令集架构。”RISC-V推广人,武汉聚芯微电子架构师胡振波认为。他表示,RISC-V作为免费的架构,将会和ARM产生竞争。在手机等传统ARM的垄断领域会保持强势存在,在一些新兴的边缘领域,比如IoT、AI、边缘计算领域,RISC-V将具有爆发空间。
什么是RISC-V?
2017年,两位现代计算机架构先驱John Hennessy与David Patterson分别获得了2017年ACM图灵奖,他们本身是RISC-V技术的发起人和推动者。这两位泰斗也双双进驻谷歌。
由于不满ARM等处理器架构的复杂性和相关知识产权的限制,在这两位大师的推动下,伯克利大学决定发明一种全新的指令集架构,可以被任何学术机构或商业组织自由使用。这两位大师编排的教材,在全球范围内,以美国为首在大学教材方面都在采用RISC-V为教材。在全球范围内,RISC-V也被很多国家定义成国家标准指令集,比如印度。在业界也引起了很多关注,比如三星明确表示会使用RISC-V用在相关的产品中。2016年,RiSC-V成立了基金会,初创企业包括Google、西部数据、台湾晶心、联发科、杭州中天、华为等。
RISC-V的作者们旨在提供数种可以在BSD许可证之下自由使用的CPU设计。该许可证允許像是RISC-V芯片设计等衍生作品可以像RISC-V本身一样是公开且自由发行,也可以是闭源或者是专有財產。
相比而言,ARM控股和MIPS科技等商业芯片供应商会对使用其专利者收取高額的许可费用。他們也要求在接收其描述设计优点的文件和指令集前,还需要签署保密协议。许多设计优点为完全专有,從來不会披露给客户。这种保密制度阻碍了公共教育用途和安全審核,以及开发公共、低成本的自由及开放源代码软件編譯器和操作系统。
开发一个CPU需要多种专业的设计知识,包括电子逻辑、编译器和操作系统。这种资源在专业工程团队之外很难见到。所以现代且高质量的通用计算机指令集近年来除了学术环境以外並沒有在任何地方被广泛使用,甚至没有被阐述。正因如此,许多RISC-V贡献者将此视为整個社群付出的成果,而这也是RISC-V有很多工程上的應用的一项原因。
RISC-V的作者们还有大量研究和使用者經驗來验证他们在硅片和仿真中的设计。RISC-V指令集是从一系列的学术计算机设计项目直接发展而来的。它一開始的目的有一部分是為了帮助这些项目。
RISC-V的意义是什么?
前面提到过,芯片指令集架构是沟通软硬件运算之间的桥梁。RISC-V作为全新的指令集是一个颠覆性的架构,这个架构的目标和以往所有的商业架构都不一样。可以被任何学术机构和商业组织使用。如果我们要用到ARM的架构是要付费的,RISC-V任何人都可以免费使用。
这个颠覆性的理念在整个处理器的历史上没有出现过的。正式因为其颠覆性,RISC-V在2016年被评为最佳技术。
RISC-V的技术特点是什么?
RISC-V的技术特点是三点:模块化、极简、可扩展。首先它是一个模块化的指令集,配合一些扩展华的指令集来组成。嵌入式领域的应用和服务器领域的应用不一样,这第一个特点是模块化。
第二个特点是极简,因为一些传统的X86和ARM架构的篇幅,传统商业架构非常繁多,并且彼此之间不兼容。因为RISC-V是后发的架构,拥有技术上的后发优势,技术上非常精简。
另外非常易于实现,相比传统的商用操作系统。最后一点是可扩展,传统的ARM指令集是不允许做扩展,但是RISC-V是方便做可扩展的。
由于RISC-V的三大技术特点,因此吸引到非常多的大公司都在纷纷的给它站台,RISC-V基金会每年会进行两到三场RISC-V的研讨会,每一次都会有大公司和知名大学来主办主场。
只有RISC-V才能实现国产自主的指令集架构-国产处理器公司
目前国产处理器所采用的指令集架构现状。
国产操作系统可以用开源的Linux,可是自主开发芯片指令集架构这玩意就比较难了。因此要谈“自主研发”似乎绕不开芯片架构。国外的指令集架构本质上是一种授权付费的,很难实现国产自主。如果国家自己定义一套指令集架构没有太大意义,因为处理器架构必须是全球范围的一个通用架构,必须获得生态支持。“RISC-V可能真正能成为国产的自主的指令集架构。”胡振波表示,现在有了RISC-V可以很好的解决这一问题,由于这是由开放的基金会组织,并不会收费。中国公司也可以加入这个基金会,另外目前全世界正在迅速发展,正在产生全新的生态。
胡振波表示,目前半导体和嵌入式领域从业者都很关注RISC-V。
再来看看RISC-V版本的盘点,RISC-V只是一个指令集架构,定义了一个标准,你可以按照这个标准来做处理器。因为这是一个开放的指令集架构,因此你个人也可以做。所以过去几十年冒出了很多不同的版本。也有一些商用的IP公司推出了一些商用版本,基本上以国外为主。中国大陆目前为止,只有蜂鸟E200是由中国大陆开发的,目前这个表里只列出了主流的版本。
RISC-V的应用场景有哪些?
胡振波表示,在产业界和芯片界,主流的大公司都在用RISC-V架构来做产品。西部数据和AMD都明确的说在用RISC-V做芯片,CEVA在用RISC-V做控制芯片核,谷歌也在用RISC-V做一些新的芯片项目。还有美光。除了这些大公司,还有很多业界大公司已经非常普遍的在用RISC-V来做内核。围绕商业技术涌现了很多的专用公司,美国对于新技术的接受程度是很快的。
中国大陆其实目前还没有明确的商业公司来做这个事情,以上列举了比较知名的公司。非常有代表性的几款芯片,包括美国的Sifive,采用Linux处理器核,另一款是Greenwaves IoT应用处理器,这是欧洲公司推出的非常低功耗的IoT处理器,也是采用RISC-V的处理器。
RISC-V技术对于IoT的意义
那么RISC-V技术对于IoT将带来什么样的意义呢?
首先是持续的碎片化,Iota是一个碎片化的生态,这个生态里如果能快速定义出差异化的产品。面对这个技术同样的要求,低功耗、低成本、安全性以及边缘计算、增强计算也是明确的新的要求。
由于越来越以应用为中心的趋势,也就是说不是在向以前以芯片公司为中心。以前是MTK、高通主导应用,而IoT是碎片化的以应用为中心,替代了传统的芯片公司为中心的模式。另外,传统的ARM的IP售价还是很贵的。并且每个版本的发布时间也是很长,同时也让创新门槛变高,只有大公司才能买到IP,很难快速响应边缘化的计算需求。
RISC-V的优点很好的解决这些问题,一个是RISC-V是全世界通用的标准指令集,生态长期向好。因为全球的大学都在以RISC-V授课,随着5年、10年的维度来看,对RISC-V的掌握情况会成为基本技能。尤其它的架构是免费开放,降低了创新门槛,有技术能力的个人和公司能够使用这个架构来开发一些有意思的应用。由于具备低成本的优势,也降低了创新的代价。
基于以上原因,所以能够很快速的响应碎片化,越来越多的新创公司越来越多使用RISC-V内核,希望进入技术创新领域。越来越多的国内公司也在使用RISC-V内核。胡振波认为,RISC-V能够降低边缘计算的成本和门槛,带来快速的创新产品。
基于RISC-V自主研发的蜂鸟E200处理器
最后,胡振波介绍了自己研发的首颗采用RISC-V架构的MCU蜂鸟E200。据介绍,这款全球最小的32位RISC-V核心可以实现超低功耗,对标的是ARM的M0+的MCU内核,安全可控,无需向国外公司支付版税。胡振波表示蜂鸟E200还有205、205FD等一系列产品线。
“这就是开放的指令集的魅力,接下来会冒出更多无法想象的指令集版本。”胡振波最后表示。
RISC-V 不能使中国芯片技术脱离美国而生存
最近开源架构的话题又在国内火了,这次是RISC-V。
开源架构并不新鲜,Sparc也开源,Power也开源,MIPS开源支持Android还让好些人激动了一把,但都是热闹了一阵以后就曲终人散了,然后几年以后再来一轮,媒体再炒一轮。
其实我觉得这一次RISC-V也没什么不一样。
摆上茶水瓜子点心,给大家慢慢讲:首先所有推崇RISC-V的文章都在说RISC-V架构简单,功耗面积低,这其实跟以前夸MIPS没什么不同。在CPU设计里,指令集是其中最简单最基础的一部分,可以说,采用RISC架构的指令集都差不多,无非是在寄存器数目,分支跳转,数据存取等指令方面做一些取舍,达到某种平衡,满足某些特定需要。在学院派那儿PK的功耗面积,在工程派眼中离实用还远的很。做出一个demo和做出真正工程上能用的产品还隔着十万八千里,而工程上能用距离商业成功又隔了十万八千里。因为一个指令集就把某种架构夸上天实在没必要。
少年啊,心态要平稳,不要太浮躁。
开源架构受到追捧隐含的另一个意思是Arm等IP厂商授权太贵,所以总有人揭竿而起要革商业公司的命,用免费打败收费。这里面有两重误会,我一一道来:
第一个误会是指令集架构授权和CPU核的授权被刻意模糊了。
Arm的CPU核授权门槛其实很低,甚至有DesignStart你们可以了解一下,基本可以免费获取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发展前景到底如何,拭目以待。