极速赛车手机官网

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

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

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

推荐阅读

华为笔记本电脑开始使用LINUX系统

对华为而言,此举不失为一个明智的抉择。在手机操作系统领域,目前已被苹果的IOS系统和谷歌的安卓系统垄断。而IOS系统是封闭式,只为苹果手机使用;安卓是开放性,当谷歌与华为停止合作后。华为手机将无法使用安卓系统。对于华为而言,无路可走,那么自己开辟道路。为此,华为自主研发了鸿蒙操作系统,鸿蒙不仅可以供华为手机使用,还可以供华为其他物联网智能终端产品服务。而这条路,华为最艰巨的是生态系统的建设,这个除了技术实力、企业实力之外,还需要时间。为此,华为现在先从已有的、开放性的LINUS操作系统入手,先借助LINUX的生态,让华为的智能终端产品先运行起来。等鸿蒙操作系统成熟后,再考虑以自身的系统为主力。对于LINUX而言,有了华为这样
发表于 2019-09-14

一种STM32的串口控制台的实现

一.背景曾经玩Linux时非常喜欢这种基于出串口的控制台, 通过简单的串口TX和RX能实现嵌入式硬件的人机交互,非常实用,  那么STM32能否实现通过超级终端与用户互动的构想呢? 答案是肯定的,由于这个UART控制平台就像应用程序套上一层可访问的外科(Shell)故而我将这种基于UART的控制平台简称Shell,构架和效果如下图:这张图箭头指向的是输入的指令,其余是STM32串口输出的信息,, 可以看到通过这些简单的指令输入我们通过Shell可以做很多事情:1. 现场设备发生故障,可以通过Shell可以查看设备的故障状态统计信息2. 能实现串口程序升级(需要Shell+IAP驱动程序支持)3. 能读写访问参数区,实现
发表于 2019-09-11
一种STM32的串口控制台的实现

基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境

本章将讲述交叉编译环境的学习,环境平台是ubuntu,工具链是gcc-arm-none-eabi。目的:熟悉交叉编译环境,了解如何下载BIN格式的程序文件到单片机。实验1:一个简单的交叉编译与程序下载过程环境搭建(以我的平台为例):安装win7 64位系统,具体教程可百度在windows系统上安装VMware虚拟机,具体教程可百度在虚拟机上新建虚拟机,安装ubuntu系统在ubuntu系统使用命令安装make(如果没有),gcc-arm-none-eabi交叉编译工具在windows系统上安装ST-Link Utility软件,用于下载bin格式文件到是stm32单片机在windows系统上安装编辑器,如notepad++
发表于 2019-09-10
基于STM32从零写操作系统系列---熟悉win+linux交叉编译环境

ARM知识--《ARM与Linux些许问题》第一章:ARM工作模式

=====================================================    早期的ARM核有状态(ARM或Thumb)切换(通过BX等指令修改CPSR寄存器(当前程序状态寄存器,存放条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息)中T的控制位完成程序状态的切换),现在ARM都只使用Thumb状态了。所以,我们不在讨论状态切换相关。一、ARM七种工作模式及其应用场合(Linux操作系统使用了其中USR和SVC模式、出现异常时还可能通过进入其他模式转为Linux内核态)    在CPSR寄存器中设置M[4:0]位,分别对应如下七种模式
发表于 2019-09-04

S5PV210开发 -- Linux dd命令

昨天群里有人询问,为什么破坏 BootLoader 破坏不掉。出现错误:dd: writing '/dev/mtdblock0': Operation not permitted我说需要插着 SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚)然后我们来看一下它操作指令:    busybox dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1 count=1 conv=sync    为了确保执行数据有效,再执行 sync 同步一下,即可破坏掉前一个块的数据。进而引出了我们今天要讲的 dd命令。参看:Linux
发表于 2019-08-30
S5PV210开发 -- Linux dd命令

stm32f429的u-boot、uclinux内核烧写说明

最近比较忙,针对前面的留言说有怎么download u-boot、uclinux到stm32,我翻了翻以前记录下的笔记,特意贴上来,其实有些步骤我都已经忘记了。。。一、搭建嵌入式linux开发环境1. 准备一台Linux系统(Fedora,CentOS,Ubuntu等)的电脑,将BSP压缩包(linux-cortexm-2.0.0.tar.gz)拷贝到一个目录;2. 解压BSP包:     tar -xzvf linux-cortexm-2.0.0.tar.gz3. 解压arm工具链:cd linux-cortexm-2.0.0/tools       
发表于 2019-08-28
stm32f429的u-boot、uclinux内核烧写说明

小广播

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

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

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD。com。cn, Inc。 All rights reserved
极速赛车手机版下载 极速赛车双面盘 极速赛车手机版下载 极速赛车双面盘 极速赛车手机官网 极速赛车APP下载 极速赛车双面盘 极速赛车APP 极速赛车APP 极速赛车手机版下载