datasheet

从Linux到RISC-V:合作共享才能显现出开源的真正价值

2019-08-12来源: 世说芯语关键字:Linux  RISC-V  开源

作为业界首个真正的开源处理器架构,RISC-V一推出可说备受关注。而对产业而言,其带来的思想与生态冲击,恐怕不会下于当年Linux的推出。


图片.png

图说:全球一线半导体相关大厂几乎都已经加入RISC-V的行列


Linux在1980年代开始发展,最初从GNU(GNU's Not Unix!)计划开始,并建立了许多自由软件联盟,共同发展包含从编译器、Shell、编辑器与其他工具等一般操作系统会有的程序,但核心的发展却没有着落。这与现在的处理器产业生态,以及RISC-V的发展,有着异曲同工之妙。

RISC-V在推出之前,业界已经有非常完整的IC设计生态,相关软件和硬件供应渠道也都有很好的基础,但业界并没有真正自由的处理器架构可用,换言之,你不是只能选弹性最小,但有庞大背后资源的X86,不然就是可定制弹性较大,但同样要遵守IP供应商规则的Arm或MIPS之类生态资源稍弱的平台。因此,RISC-V架构的推出,也其实是迎合业界的需求。
 
至于Linux,在推出完整的套件版本前,最关键的内核部份也是最晚才上线:Linus Torvalds在1991年推出首个Linux操作系统内核,并与开源业界共同推出具有完整包装的操作系统,才真正逐步走向成功之路,目前Linux系统也已经成为全世界最普遍的商用操作系统,并深入到我们的日常生活当中。
 
但成功并非一蹴而就,Linux核心出现之后,并不是马上获得商业上的成功,事实上,他还是经过十几年的发展,并通过许多联盟的共同经营和努力,才得以推动商用落地。
 
RISC-V的发展路径不像Linux那么漫长,2010年公布最初版本后,目前核心的几个主要指令集都已经是最终的封闭版本,而可定制的指令集扩展也都有了完整定义,业界也开始依照扩展规定去定制自己的架构。乍看之下,业界只要直接用了这个架构,拿去生产芯片成品,后面的市场经营也会水到渠成。
 
然而事情并没有那么简单,从指令集到芯片虽有完整的产业链可以让芯片业者做出产品,但这样的芯片仍不是完整的产品,若没有与现有产业的软件、操作系统,甚至芯片设计与制造过程中所需要的各种外部资源互相适配,那么就很难推动RISC-V在半导体产业中生根茁壮。
 
过去Linux的发展,各种联盟与社群的成立对对Linux生态都进行了贡献,不论在代码方面的改良,各种功能的引进,以及与各种硬件的适配,都极大的推动Linux生态的发展。
 
RISC-V也是希望如此,目前除了最原始的RISC-V基金会以外,各国也都积极在推动自己的产业联盟,甚至印度已经把RISC-V当作国家等级的核心架构,以国家之力发展相关技术与生态。
 
与Linux类似的是,RISC-V也有全球成员达200家企业以上的RISC-V基金会在推动整个产业生态发展,而其中的成员包含了英特尔、AMD、NVIDIA等一线半导体大厂,这些参与者其实自己也类似相关的计算架构,但他们仍积极参与,甚至贡献自己的设计概念,乍看之下这是吃力不讨好的事情,而且可能伤害自己既有的产品,但为何他们仍愿意去做?
 
关于这点,回头去看Linux的发展史就可得到解答。
 
后期Linux能够打进各类计算产业之中,大型科技企业的投入可说是最大功臣。而其中最令人关注的大型企业,该属微软了。
 
没错,微软也是贡献Linux源码最多的科技企业之一,通过提供Linux核心源代码,帮助改进Linux的性能与功能。早前将Linux Bash Shell添加到Windows 系统之中,更将Ubuntu、SUSE Linux及Fedora等加入Windows Store之中。如今,微软更计划在Windows 10中直接推出完整的Linux 核心。
 
但其实微软一开始并不喜欢Linux或开源社群,由于认为开源软件会对微软的业务造成威胁,因此微软不仅常在采访中直接攻击开源社群,甚至通过各种手段希望铲除开源社群。但随著微软策略的转变,才逐渐拥抱开源,而后来开源甚至也成为帮助微软转型的主要动力。
 
大约在20年前,由于时任CEO的Steve Ballmer的个人管理风格,微软是彻底反对与仇视开源社群的,Steve Ballmer甚至曾说出Linux是癌症,足可见当初微软在操作系统垄断之下的霸权心态。后来微软转型成为服务公司,软件变成服务平台,并以订阅制取代买断制,在软件即服务的概念下,自己的Windows操作软件、Office办公软件也只不过是作为服务这系列商品的载体,而不再是商品本身,也因此,微软认知到,Linux其实是可以帮助微软业务拓展的平台,而不是阻碍。

图片.png
图说:微软后来拥抱开源,主要是认知到开源社群对其服务生态的扩大有非常明显的帮助。

另一方面,微软也不忘在Linux中埋下陷阱,比如说提供Linux系统exFAT档案格式的支持,以及放入多种跟微软既有软件专利相关的代码,当业界习惯这些代码,并成为产品中不可分割的一部份时,微软便可以跳出来收割。
 
举例来说,微软在Android平台上收取的专利费极高,每支手机都需要支付给微软至于12~13美元。如果不是当初微软”拥抱”开源,那么就不可能额外开辟这笔财源。当然,这招是因为是微软才有办法这么玩,一般企业不值得也不应该学习。
 
至于英特尔等硬件厂商贡献Linux源码更不用说,毕竟芯片、硬件厂商需要的就是更广大的平台支持,贡献越多源码,就代表该系统更能配合自家平台,或者是自家的硬件生态,这是必要的”投资”。
 
所以RISC-V可以从Linux开源的历史学到什么经验?芯片厂商彼此竞争,要这些厂商贡献核心源码给开放架构硬件,等于把自己的研发心血送给开源社区,其实多少都会感到抗拒,但开源架构要能够发展,就必须集合众人的力量共享、互利。而如果厂商能看见”分享”之后的长远好处,就不会汲汲营营于短期利益。
 
另一方面,大型企业的共同推动与支持,也是开源架构能否获得发展的重要关键,目前在国际上,一线半导体大厂几乎都已经加入RISC-V的阵营,即便是英特尔、AMD这类拥有自己处理器架构的厂商,也都愿意推动相关生态的发展,而在中国,若厂商愿意放下短暂的私心,从大方向去看开源社区的经营能带来企业或整个产业的好处,这对于推动中国真正的自有架构发展以及相关生态的布局,会有极大的好处。
 
然而自私厂商其实不少。这些厂商的特性是只想在开源社群拿好处却又不想贡献,然而此类厂商最终会反受其害。比如说Android系统,终端厂商通常会就自己在开发时遇到的问题回馈到开发社群中,取得帮助,除了解决自己遇到的问题,也帮助开发社群避免类似的问题,但是当业者不想要分享自己发现的问题或修正的代码时,万一社群成员遇到类似的问题,就必须重新解决一次,然后回馈到代码库中,而Google在每次改版时,通常都会采纳这些修正意见,避免再下一个版本遇到类似问题。
 
而当系统大改版时,采用自己藏私手法的厂商可能会因为修正逻辑不同,导致既有硬件无法完全和新版系统匹配的问题,而必须再动手”修正”一次。不仅增加了维护成本、拖延了更新时间,也造成分裂的问题。
 
为了避免这种分裂越来越多,Google后来也订定了更为严格的代码使用与升级规则。RISC-V虽有更严谨的版本与扩展指令限制,但是否能避免类似的状况?
 
中国在2018年成立了中国RISC-V产业联盟,有数十家RISC-V领域相关企业以及十余家大学和研究机构包括芯原、乐鑫、君正、紫光展锐、兆芯、苏州国芯、地平线等重要IC设计业者加入,目的是希望帮助中国广大的芯片设计业者与周围生态业者开辟一条可以共同遵循的方向。


图片.png
图说:中国RISC-V也创立了联盟来经营生态


但值得注意的是,刚推出RISC-V架构IP玄铁910的阿里巴巴平头哥,并没有在成员名单之中。而海思也同样没有加入。少了这两个中国半导体产业的指标性企业,对这个产业联盟而言似乎并不是太好的消息。

海思并不外卖处理器,基本上他走自研自用,主打自有生态,目标摆在全球市场,而非仅本地市场,因此参加最顶层的RISC-V基金会即可。至于阿里巴巴平头哥,则是希望通过IP打入国际市场,巩固自己作为设计服务的角色,因此选择了RISC-V基金会与OpenHW组织,对于本土色彩重,并已经有晶心、芯原等IP公司,以及诸多有经验的芯片设计业者在内的产业联盟也没有太多兴趣。

相较于已经广为熟知的RISC-V基金会,OpenHW组织则是在六月才成立,除了阿里巴巴以外,成员还有Bluespec、CMC Microsystems、Embecosm、苏黎世联邦理工大学、GreenWaves、Imperas、Metrics、Mythic、恩智浦、Onespin、Silicon Labs、Thales以及Eclipse基金会等。

OpenHW组织同样是RISC-V基金会的成员,但是该组织由于成员对IoT等特定行业类别的需求,需要共同合作开发针对大量生产需求的SoC架构,而该组织也提出了Core-V这个以嵌入式系统为主要目标市场的架构IP。

RISC-V的特点在于不同厂商,或不同组织,都能针对自己的需求定制架构,最上层的基金会决定主要的指令集方向,并且决定固定的指令集和开发的扩展指令集类型,由于处理器架构的开发难度非常高,,即便有了指令集,实际上多数芯片设计公司只能使用现成的套装IP,然后丢给晶圆代工厂生产,自己顶多只能决定不同功能模块的采用,或者是规模大小,最后做配套驱动、软件的开发。也因此,要进入RISC-V生态,最好的方式还是打群架,共享知识,打造适合特定行业类别的通用架构,并通过深度参与,可在IP中定制出针对自家公司最优化的架构。

联盟的建立,主要还是为了共同的目标,成员之间可以为这个目标放下彼此的矛盾。

中国RISC-V产业联盟想做的也是类似的事情,但比较不同的是,RISC-V产业联盟主要还是各自负责产业生态里面的不同部份,比如说芯原、晶心科技负责IP的设计,其余主要还是作为客户,虽会反馈,并不会直接参与设计。

[1] [2]

关键字:Linux  RISC-V  开源

编辑:冀凯 引用地址:http://news.eeworld.com.cn/manufacture/ic470779.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:GLOBALFOUNDRIES联合Arm开展3D堆栈芯片开发
下一篇:2019 SiFive北京站研讨会顺利结束,交出满意答卷

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

linux下编写I2C驱动与stm32通信(二)

接上一篇,linux下GPIO模拟I2C驱动完成后,就是stm32的i2c配置了,由于hi3518e作为i2c的主设备,stm32则作为从设备,由于GPIO模拟i2c的从时序比模拟主时序要麻烦很多,所以采用stm32的硬件I2C。(stm32官网i2c例程主模式会莫名的卡死,从模式比较好用)下载官网例程,将之设置为从模式,使用i2c2,将SCL,SDA,GND与hi3518e板子上GPIO模拟的SCL,SDA和GND连起来,写一个测试例程来验证双方的通信。首先在linux下加载驱动,然后调用打开驱动,调用编写的驱动接口函数,读数据和写数据。驱动接口代码如下:#include<stdio.h>#include<
发表于 2019-08-09

如何在linux环境下使用gcc进行stm32项目开发

背景我之前一直是从事单片机相关的开发工作,对于STM32平台的开发,都是在keil中进行的。后来转为搞linux相关的开发了,发现开发工具是大大的不同,linux下的开发都是makefile+gcc+gdb,写代码也是用sourceInsight,代码的编译也是在服务器上进行的,没有了集成开发环境,当对这样的开发模式逐渐熟悉之后才发现Makefile真的很强大,开发效率高,对底层细节也是掌握了很多,弥补了不少盲区。keil工具虽然十分方便,但对于开发人员来说,隐藏了太多的细节,灵活性不高,对于高级应用显得力不从心了。因此在习惯了linux平台的开发之后,我萌生了一个想法:在linux下进行stm32的开发,这里涉及到的开发环境
发表于 2019-07-31
如何在linux环境下使用gcc进行stm32项目开发

基于stm32/linux系统的can总线的电机与485的全方位机器人通讯

之前做的是仿pioneer3at的机器人,做过两个版本,第一版完全仿的,国内机械加工,很多厂不愿意加工这种小活,加工出来的精度不够,很多问题第二版做出来的问题是带传动,当负载过大时,会产生跳齿等问题,自己画图生产,当时也没认真做效果只能说一般电机使用的是富兴公司的伺服电机  第三版由4个转向电机4个轮毂电机及4个编码器组成在linux控制电机程序为:https://download.csdn.net/download/jankin_by/10342919调试最后总出现编码器CRC校验错误,怀疑为linux下多串口通信的问题改为用单片机直接控制https://download.csdn.net/download
发表于 2019-07-27
基于stm32/linux系统的can总线的电机与485的全方位机器人通讯

使用gcc工具链进行Linux环境下的stm32开发

    处于好奇和学习Linux的目的,准备开始在虚拟机VMware的Ubuntu9.10操作系统下搭建stm32的开发环境。整个过程包括:安装gcc工具链---->建立工程目录--->编写Makefile,连接文件--->编译生成可执行文件--->下载测试。我的工程资源:http://download.csdn.net/detail/xiaoxiaoxingkongo/9732047工程建立参考连接:http://blog.csdn.net/embbnux/article/details/17616809烧录参考链接:http://blog.csdn.net/ybhuangfugui
发表于 2019-07-26

在LINUX环境在编译STM32并烧写代码

因为最近在移植PixFlow的光流,需要在LINUX下编译32的代码并用JLINK烧写,当然光流代码部分现在还没研究懂。首先我们需要下载好QT和JLINK工具,编译没什么好说的,就是在QT下代开工程构建即可。JLINK烧写可以参考下面博客http://www.cnblogs.com/zjutlitao/archive/2015/12/22/5065322.html1,SEGGER官网下载最新jlink驱动,网址 https://www.segger.com/downloads/jlink ubuntu下当然选择DEB安装格式,我的机器是32位选择32位的开始下载(不知道系统是x86还是x64的可以在命令行里输入
发表于 2019-06-12
在LINUX环境在编译STM32并烧写代码

CHIPS联盟利用西部数据RISC-V内核和FuseSoC工具推出新项目

使用Western Digital的开源SweRV内核和FuseSoC工具,共同打造了称为SweRVolf开源项目。该项目是由FuseSoC创建者和维护者Olof Kindgren以及西部数据下一代平台技术总监Zvonimir Bandic,即将卸任的CTO Martin Fink(作为RISC-V的长期支持者和Western Digital首席技术官Martin Fink宣布即将退休,西部数据Siva Sivaram博士将成为新任技术与战略总裁,但Fink将继续担任“数据中心架构相关事宜(包括RISC-V)”的顾问。)以及CHIPS联盟共同推进的,SweRVolf以西部数据开放的片上系统内核SweRV EH1 RISC-V为核心
发表于 2019-08-16
CHIPS联盟利用西部数据RISC-V内核和FuseSoC工具推出新项目

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 市场动态 半导体生产 材料技术 封装测试 工艺设备 光伏产业 平板显示 电子设计 电子制造 视频教程

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved