不久前,特斯拉加入 RISC-V 基金会,并考虑在新款芯片中使用免费的 RISC-V 设计。至此,已有 IBM、NXP、西部数据、英伟达、高通、三星、谷歌、华为等 100 多家科技公司加入 RISC-V 阵营。出现这种现象的原因一方面是因为 ARM 的授权费用实在太贵了,另一方面也是因为 RISC-V 提供指令集彻底开放,非常有希望成为 CPU 领域的 Linux。

正是因为看好 RISC-V 的未来,不少科技巨头在 RISC-V 还是潜力股的时候趁早下注。

RISC-V 的诞生

在 2010 年,加州大学伯克利分校的一个研究团队正在准备启动一个新项目,而要设计 CPU,必然要选择一种指令集,然而,X86 指令集被英特尔控制的死死的,ARM 的指令集授权费又非常贵,MIPS、SPARC、PowerPC 也存在知识产权问题。

在这种情况下,伯克利的研究团队决定从零开始设计一套全新的指令集。且这款新指令集要能满足从微控制器到超级计算机等各种尺寸的处理器。 正如行业内常说的,设计一套指令集并非黑科技,用这套指令集去实现 CPU 才是真正具有含金量的工作。伯克利的研究团队直用了 3 个月就完成了 RISC-V 的指令集,并公开发布了第一版指令集。

该指令集的第一个版本只包含了不到50条指令,可以用于实现一个具备定点运算和特权模式等基本功能的处理器。如果用户需要的话,也可以根据自己的需求自定义新指令。

这样一来,这套指令集兼具精简和灵活两大特点。随后,伯克利的研究团队将这个新指令集命名为 RISC-V,RISC 指的是精简指令集的意思,V 是罗马字母,代表第五代的意思。因为伯克利分校的 David Patterson 教授在此之前已经研制了四代处理器芯片。

更关键的是,伯克利研究团队将 RISC-V 指令集彻底开放,使用 BSD License 开源协议,这就使 RISC-V 不像 ARM、PowerPC 等指令集那样需要付费授权才能使用。而且 BSD 开源协议给予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代码开发商业软件发布和销售。怎么说呢,像Linux 的 GPL 协议,就限制了商业公司的行为。而 BSD 开源协议则不同,苹果的 iOS 就基于 BSD 内核,但使用开源软件之后,因为 BSD 开源协议给了苹果很大的自由度,苹果依旧可以将 iOS 闭源并在商业市场赚钱。

对于大学和科研院所等学术机构来说,RISC-V 也是非常有价值的。中科院计算所包云岗研究员团队在做一个项目时,最初选择了 SUN 的 Open Sparc T1,然而这款处理器的社区活跃度和软件支持都不行,而且独立性比较差。然后又选择了 Micro Blaze,然而这款处理器却不开源。最后把目光转向了 RISC-V,并完成了科研项目。相关技术成果被华为用在海思的 ARM CPU 上。

正是因为 RISC-V 选择了对商业公司非常友好的 BSD 开源协议,以及 RISC-V 兼具精简和灵活等优点,众多商业公司纷纷关注 RISC-V。

RV12 RISC-V 处理器

RISC-V 有望复制 Linux 的成功

目前,在 CPU 上,X86 和 ARM 是两大霸主。然而这两位霸主都非常霸道,英特尔根本不允许除 AMD和 VIA 之外的任何一家公司使用 X86 指令集,而且一旦 AMD 被收购,X86 指令集授权都要重新谈判。即便是全美达想通过翻译打插边球,结果也被英特尔用专利诉讼拖死了。

类似的,ARM 虽然比英特尔好一些,但也仅仅是好一些而已。在指令集授权上也非常吝啬,获得 ARM32 授权的公司一只手都能数的过来,ARM64 授权虽然多一些,但授权费却异常昂贵,法国芯片创业公司Greenwave 表示,他们如果使用 ARM 架构,要花掉 1500 万美元的授权费。而且授权到期后,是否继续授权和授权费用都要重新谈判。

正是因为 X86 和 ARM 在授权上异常苛刻,很多大公司都对英特尔和 ARM 非常不满,而这恰恰给了 RISC-V 这样的后起之秀机会。包括谷歌、华为、IBM、镁光、英伟达、高通、三星、西部数据等商业公司,以及加州大学伯克利分校、麻省理工学院、普林斯顿大学、ETH Zurich、印度理工学院、洛伦兹国家实验室、新加坡南洋理工大学以及中科院计算所等学术机构纷纷加盟 RISC-V。在 2017 年 11 月召开的第 7 届 RISC-V Workshop 上,全球共有 138 个公司、35 所大学与研究机构参会。

除了商业公司和学术机构之外,印度政府更是对 RISC-V 情有独钟。在 2011 年,印度开始实施处理器战略计划,在全国范围资助 2-3 个研制处理器的项目。印度理工学院马德拉斯分校的 G. S. Madhusudan 与 V. Kamakoti 教授在该计划支持下启动了 SHAKTI 处理器项目。SHAKTI 项目就选择了 RISC-V,并获得印度政府超过 9000 万美元的经费支持。

在 2016 年,印度先进计算发展中心获得印度电子信息技术部 4500 万美元的资助,目标研制一款基于 RISC-V 指令集的 2GHz 四核处理器。

在过去数年中,印度政府资助的处理器相关项目都开始向 RISC-V 靠拢,RISC-V 成为了印度的事实国家指令集。

目前,伯克利研究团队已经完成了基于 RISC-V 指令集的顺序执行的 64 位处理器核心(代号为 Rocket),并前后基于 45nm 与 28nm 工艺进行了 12 次流片。Rocket 芯片主频大于 1GHz,与 ARM Cortex-A5 相比,实测性能较之高 10%,面积效率高 49%,单位频率动态功耗仅为 Cortex-A5 的 43%。在嵌入式领域,Rocket 已经可以和 ARM 争市场了。

正是因此,西部数据声明,每年将使用 10 亿个 RISC-V 核;英伟达也宣布,将把 RISC-V 用于 GPU 内部的控制器。美国 DARPA 也资助一些公司基于 RISC-V 设计航天器的宇航芯片;还有众多商业公司计划基于 RISC-V 开发面向 IoT 的智能芯片,面向安全的芯片,以及服务器上的主板管理控制器等。在软件生态方面,也逐步在完善,比如调试工具链、中断控制器、JVM、LLVM、Python 等开发者常用的软件工具都在完善之中。

正是依靠开源和免费,全世界的商业公司、学术机构都可以开发兼容 RISC-V 指令集的处理器,而且不需要支付一分钱的费用。这使 RISC-V 有望被全球的开发者广泛应用,并复制 Linux 的奇迹。何况 RISC-V 的 BSD 开源协议,比 GPL 协议对商业公司更加友好,使商业公司有很强的动力去推动这件事。

结语

诚然,依靠开源和免费,RISC-V 非常受大学和科研院所青睐,并有望在教学领域大展拳脚,而这又会给 RISC-V 培养源源不断的后备军。对于商业公司来说,由于 ARM 的授权费实在是太贵了,也有较强的动力去做 RISC-V,给自己留一个备份,避免被绑死在 ARM 上。

不过,RISC-V 也存在一个隐忧,那就是缺乏强有力的主导者,进而导致破碎化的问题。当年的MIPS其实也非常学院派,MIPS 阵营的商业公司可以自由添加指令,比如龙芯就以 MIPS 为基础添加了 1000 多条新指令,进而形成了自己的指令集 LoongISA。这又使开发软件的时候,即便同样属于 MIPS,也必须分为龙芯版和 MIPS 版……

由于 RISC-V 也允许用户自己加新指令,这就有可能使 RISC-V 破碎化,也许未来华为、高通、谷歌开发出的 RISC-V 处理器虽然都属于 RISC-V,但却不能跑同样一套软件。

毕竟完全开放与有力的领导是一对矛盾,如果无法解决这个问题,恐怕 RISC-V 很难成长到能与 X86 和ARM 争雄的水平。

来自:雷锋网

相关链接

https://www.oschina.net/news/95722/tech-giants-want-to-turn-to-open-source-architecture-risc-v

ARM 授权费用太贵 科技巨头欲转向开源架构 RISC-V的更多相关文章

  1. 五大科技巨头VR/AR专利报告,Magic Leap以22.6%领跑

    在十月份发布的<VR/AR专利技术深度分析报告>指出,VR.AR行业的专利多被佳能.索尼.微软.谷歌等科技巨头"包养",但是并没有对这部分进行详细分析.近日,风投公司C ...

  2. 科技巨头们以 "A" 取名的时尚潮流

    科技巨头们以 "A" 取名的时尚潮流 from 公众号  WebHub  世界上有许多巨头公司喜欢以字母 a 打头作公司起名.改名,这主要是因为电话薄是以字母排序的(外国人习惯家里 ...

  3. 北京太速科技有限公司 layout 事业部

      涵盖领域设计能力 ·通信板卡:PCI/PCIE/CPCI/VPX/光通信/无线通信/射频雷达/显卡                     1.最小线宽:2MIL·主板服务器:电脑主板/交换机/服 ...

  4. 单颗GPU计算能力太多、太贵?阿里云发布云上首个轻量级GPU实例

    摘要: 阿里云发布了国内首个公共云上的轻量级GPU异构计算产品——VGN5i实例,该实例打破了传统直通模式的局限,可以提供比单颗物理GPU更细粒度的服务,从而让客户以更低成本.更高弹性开展业务. 在硅 ...

  5. 科技巨头之微软-Microsoft

    提起微软Microsoft,我想应该是无人不知无人不晓.Windows操作系统,Office办公软件,是我们日常经常用到的工具.而微软的创始人正是前世界首富比尔盖茨. 1997年,我刚上初中.当时学校 ...

  6. 北京太速科技股份有限公司产品手册V201903020

    如果您无法正常查看,请点击在线浏览                                           如果您无法正常查看,请点击在线浏览 了解更多产品信息,请扫描二维码,期待您的关注 ...

  7. 北京太速科技-第六代Intel i7四核八线程6U VPX主控板

    一.产品概述 该产品是一款基于第六代Intel i7四核八线程的高性能6U VPX刀片式计算机.产品提供了可支持全网状交换的高速数据通道,其中P1,P2各支持4个PCIe x4 Gen3总线接口,P3 ...

  8. 北京太速科技-6U VPX 6槽 Full Mesh结构背板机箱

    一.产品概述 Ori6UVPX6SlotFullMesh264背板机箱 为 6U VPX 6槽 Full Mesh结构,用于实现PCIE.RapidIO IO 4X Full Mesh 高速数据互联, ...

  9. RISCV 入门 (学习笔记)

    文章目录 1. risv 相关背景 1.1 arm 授权费 1.2 riscv 发展历史 1.3 riscv 风险 2. 指令集 2.1 可配置的通用寄存器组 2.2 规整的指令编码 2.3 简洁的存 ...

随机推荐

  1. 18/9/21模拟赛-Updated

    18/9/21模拟赛 期望得分:100:实际得分:0  qwq 拿到题目第一眼,我去,这不是洛谷原题(仓鼠找Sugar)吗 又多看了几眼,嗯,对,除了是有多组数据外,就是原题 然后码码码....自以为 ...

  2. Hibernate之关于多对多单向关联映射

    [Hibernate]之关于多对多单向关联映射 老师和学生,最典型的多对多关联, Teacher和Student.所谓单向意思就是说.老师知道自己的教的是哪些学生而学生不知道是哪些老师教. 也能够这么 ...

  3. ThreadLocal使用演示样例

    MainActivity例如以下: package cc.cv; import android.os.Bundle; import android.app.Activity; /** * Demo描写 ...

  4. HDU 1506 Largest Rectangle in a Histogram(DP)

    Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  5. Android BuildConfig:Gradle自定义你的BuildConfig

    在很早之前我发布了这篇博客Android BuildConfig.DEBUG的妙用, 提到了Eclipse中通过BuildConfig.DEBUG字段用来调试Log非常好用,但是殊不知在Android ...

  6. 【2017 Multi-University Training Contest - Team 7 && hdu 6121】Build a tree

    [链接]点击打开链接 [题意] 询问n个点的完全k叉树,所有子树节点个数的异或总和为多少. [题解] 考虑如下的一棵k=3叉树,假设这棵树恰好有n个节点. 因为满的k叉树,第i层的节点个数为k^(i- ...

  7. PatentTips - Use of multiple virtual machine monitors to handle privileged events

    BACKGROUND OF THE INVENTION A conventional virtual-machine monitor (VMM) typically runs on a compute ...

  8. 初探springmvc

    Springmvc是什么 Springmvc(spring web mvc)是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进 ...

  9. js进阶 13-4 jquery自定义动画animate()如何使用

    js进阶 13-4 jquery自定义动画animate()如何使用 一.总结 一句话总结:animate(params,[speed],[easing],[fn]),参数:params:一组包含作为 ...

  10. android String 类型转换成UTF-8格式

    在android开发中,有时候会遇到汉字乱码的问题,在这个时候,吧String串加一个编码格式转换,转换成UTF-8的格式就可以了 public static String toUtf8(String ...