芯片春秋: 开源架构RISC-V前世今生

2023-05-16

640?wx_fmt=png&wxfrom=5&wx_lazy=1&retryload=1


640?wx_fmt=gif&wxfrom=5&wx_lazy=1

      不久前,特斯拉加入RISC-V基金会,并考虑在新款芯片中使用免费的 RISC-V 设计。至此,已有IBM、NXP、西部数据、英伟达、高通、三星、谷歌、华为等100多家科技公司加入RISC-V阵营。


640?wx_fmt=png&wxfrom=5&wx_lazy=1&retryload=1


      出现这种现象的原因一方面是因为 ARM 的授权费用实在太贵了,另一方面也是因为 RISC-V 提供指令集彻底开放,非常有希望成为CPU领域的Linux。正是因为看好RISC-V 的未来,不少科技巨头在 RISC-V 还是潜力股的时候趁早下注。


RISC-V的诞生


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


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


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


      这样一来,这套指令集兼具精简和灵活两大特点。随后,伯克利的研究团队将这个新指令集命名为RISC-VRISC指的是精简指令集的意思,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。


640?wx_fmt=png


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争雄的水平感谢中科院计算所包云岗研究员对本文的指导!

640?wx_fmt=jpeg

>>>>>>>>>>   热门知识阅读    <<<<<<<<<<

  • 智能合约与区块链技术专场

  • 白话智能合约与区块链技术

  • 详谈软件定义存储如何约会区块链?



温馨提示:
请搜索“ICT_Architect”“扫一扫”二维码关注公众号,点击原文链接获取更多大会信息

640?wx_fmt=png

求知若渴, 虚心若愚—Stay hungry, Stay foolish

640?wx_fmt=gif

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

芯片春秋: 开源架构RISC-V前世今生 的相关文章

  • IDEA2022.1的一些不常见问题解决方案

    文章目录 IDEA2022 1小问题解决方案 学习的时候尝鲜用了最新版本的IDEA 出现过以下老版本不会遇见的问题 Spring Initializer 创建的项目 无法新建module 显示Directory is already tak
  • 史上最全,Android P指纹应用及源码解析

    简单使用 源码分析 首先需要了解以下几点 指纹识别相关api是在Android23版本添加的 xff0c 所以过早版本的设备是无法使用的 xff1b android span class token punctuation span os
  • RNA-seq数据分析(HISAT2+featureCounts+StringTie)

    RNA seq数据分析 简介1 生物基础1 1 中心法则1 2 RNA seq Protocol1 3 RNA seq总的路线图 2 数据分析2 1 前期准备2 1 1 创建目录 amp 安装conda2 1 2 常用文件格式简介 2 2
  • Lottie动画的优劣及原理

    前言 Lottie是目前应用十分广泛的动画框架 在周会汇报的时候 xff0c 老板问能不能对Lottie进行优化 xff0c 于是就有了下文对Lottie原理的研究 毕竟要进行优化 xff0c 首先要深入了解原理嘛 Lottie实现 Lot
  • 详解微服务技术中进程间通信

    在单体应用中 xff0c 一个组件调用其它组组件时 xff0c 是通过语言级的方法或者函数调用 xff0c 而一个基于微服务的应用是运行于多个服务器上的分布式系统 xff0c 每个服务实例是一个典型的进程 所以 xff0c 如下图显示的 x
  • FusionCompute8.0.0实验(0)CNA及VRM安装(2280v2)

    给公司的华为泰山2280V2服务器安装CNA xff0c arm架构的 xff0c 采用方案为CNA和VRM在一个物理机上 准备文件 xff1a FusionCompute VRM 8 0 0 ARM 64 zip FusionComput
  • 网上买的st7789v3屏幕7脚的不能显示(1)

    今天通过网上购买了一款最便宜的1 3寸液晶显示屏分辨率240x240 xff0c 虽然小了一点 xff0c 但是看起来还不错 xff0c 于是准备了以前的用于驱动st7789的程序 xff0c 连接所有的引脚 xff0c 发现没有cs引脚
  • 新版idea中的terminal会打开windows的power shell窗口

    IDEA升级后发现点击terminal不会像之前一样显示在ide的底部而是会打开windows的Power Shell窗口 xff0c 此时需要找到windows Power Shell的位置右键属性在选项中 xff0c 取消勾选 使用旧版
  • 如何在非/home目录下下载安装vscode-server

    实现目标 xff1a 通过windows端的VSCODE xff0c 利用SSH工具在Ubuntu服务器的非 home目录下在下载安装vscode server 问题 xff1a 服务器 home文件夹剩余空间为0 xff0c 使用SSH工
  • Python 求解最大连通子网络问题

    记录一下不借助networkx包解决寻找最大连通子网络问题 这里没有源码 xff0c 只有问题解析 需要自己动手 这里是关键代码 xff1a span class token keyword for span i in span class
  • @Configuration的使用 和作用

    原文 从Spring3 0 xff0c 64 Configuration用于定义配置类 xff0c 可替换xml配置文件 xff0c 被注解的类内部包含有一个或多个被 64 Bean注解的方法 xff0c 这些方法将会被Annotation
  • @Component和@Configuration

    64 configuration和 64 component之间的区别是 xff1a 64 Component注解的范围最广 xff0c 所有类都可以注解 xff0c 但是 64 Configuration注解一般注解在这样的类上 xff1
  • zookeeper笔记

    ZooKeeper对分布式系统的协调 xff0c 使 共享存储解决分布式系统 临的问题 其实共享存储 xff0c 分布式应 也需要和存储进 络通信 大多数分布式系统中出现的问题 xff0c 都源于信息的共享出了问题 如果各个节点间信息不能及
  • Dubbo

    1 分布式架构 xff08 SOA 分层 按照业务性质分层 每一层要求简单 和 容易维护 应用层 距离用户最近的一层 也称之为接入层 使用tomcat 作为web容器 接收用户请求 使用下游的dubbo提供的接口来返回数据并且该层禁止访问数
  • Java的对象模型

    原文链接 对象在堆内存的布局分为三个区域 xff1a 分别是对象头 xff08 Header xff09 实例数据 xff08 Instance Data xff09 对齐填充 xff08 Padding xff09 对象头 xff1a 对
  • CopyOnWriterArrayList

    CopyOnWrite CopyOnWrite容器即写时复制的容器 通俗的理解是当我们往一个容器添加元素的时候 xff0c 不直接往当前容器添加 xff0c 而是先将当前容器进行Copy xff0c 复制出一个新的容器 xff0c 然后新的
  • Java 并发编程一篇 -(Synchronized 原理、LockSupport 原理、ReentrantLock 原理)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • Google离开我们已经快十年

    2010年1月13日 xff0c Google离开中国 掐指算来 xff0c Google已经离开我们快十年了 2010年是个特殊的年份 xff0c 这一年还发生了3Q大战 为什么诸多大事都发生在2010年 就是因为2010年是PC Web
  • Java 并发编程四篇 -(JUC、AQS 源码、ReentrantLock 源码)

    并发编程已完结 xff0c 章节如下 xff1a Java 并发编程一篇 xff08 Synchronized 原理 LockSupport 原理 ReentrantLock 原理 xff09 Java 并发编程二篇 xff08 JMM C
  • 在 IDEA 中的各种调试技巧,轻松定位 Bug(超级全面)

    原文地址

随机推荐

  • 20210721复盘

    1 在大厂中用的是java8吗 xff1f 还是更高版本的 xff1f 基本都是8 xff0c 一些老项目是7 2 远程面试的时候让写算法题 xff0c 是线上写还是用纸写还是用面试公司开发的工具写 xff1f 会有方法输入提示吗 xff1
  • 解决No plugin found for prefix ‘archetype‘ in the current project and in the plugin groups

    建立Maven项目时 xff0c 在cmd输入mvn archetype generate命令后出现了标题的报错 xff0c 我在settings xml里面配置的mirror是阿里云 xff0c 尝试了网上的好几个解决方案都不行 xff0
  • RocketMQ介绍和简单使用

    RocketMq下载安装 下载网址 xff1a http rocketmq apache org dowloading releases 系统要求64bit Linux Unix或Mac JDK版本 gt 61 1 8 解压后其中的目录文件
  • 如何在Oracle官网下载java的JDK最新版本和历史版本

    1 打开Oracle官网 xff0c 准备下载JDK 下载时需要使用注册用户登陆 xff0c 可以免费注册 地址 xff1a https developer oracle com 2 点击Downloads xff0c 并选择Java SE
  • 【Java】Collections集合类介绍

    Collections集合类介绍 Collections 是一个操作Set List和Map等集合的工具类 xff0c 提供了一系列静态方法对集合元素进行排序 查询和修改等操作 1 排序操作 xff08 1 xff09 reverse Li
  • AD将元器件由正面,放置到反面/元器件由反面放到正面

    按住选中元器件 xff0c 选中元器件之外的部分变灰 xff0c 选中元器件变成高亮 再按英文按键 l xff0c 实现元器件的正反面放置
  • CentOS6 yum命令报错YumRepo Error: All mirror URLs are not using ftp, http[s] or file解决

    原文地址 xff1a https www cnblogs com pistachio123 p 14301949 html 一 CentOS6 yum命令报错YumRepo Error All mirror URLs are not usi
  • Ubuntu 系统直接使用 root 用户登录实例

    Ubuntu 系统直接使用 root 用户登录实例 一般安装的Ubuntu 系统默认的不设置 root 帐户和密码 xff0c 这是为了安全做考虑 但是如果是本地虚拟机或者是作为测试使用 xff0c 直接使用root账户登录能减少很多麻烦
  • 深入浅出: 理解云原生基本原则

    云原生指的是一个敏捷的工程团队 xff0c 遵循敏捷的研发原则 xff0c 使用高度自动化的研发工具 xff0c 开发基于云基础设施和服务的应用以满足快速变化的客户需求 这些应用采用弹性 xff0c 可扩展和高可用的架构 这个工程团队通过高
  • java实现html转pdf

    1 需求 xff1a 将一个html页面转成pdf格式 2 方法 xff1a 在实现之前先考虑一个问题 xff0c pdf是前端生成还是后端生成 这里采用pdfbox 43 itext xff08 PDF文件名可自定义 xff09 技术在服
  • 生产者消费者模型(代码实现)

    一个场所 xff1a 队列 两个角色 xff1a 生产者 消费者 三种关系 xff1a 生产者 生产者 xff1a 互斥 消费者 消费者 xff1a 互斥 生产者 消费者 xff1a 同步 43 互斥 如果生产者直接将数据交给消费 xff0
  • XmlDocument操作XML

    https www cnblogs com fengxuehuanlin p 5631664 html C XmlDocument操作XML XML xff1a Extensible Markup Language xff08 可扩展标记语
  • Spring框架配置

    创建Maven项目 点击 Finish 按钮修改项目的Maven配置 在Maven仓库里查找Spring框架 xff0c 查看Spring Core xff0c 选择最新的版本 5 3 20 xff0c 添加到pom xml文件的 lt d
  • 在线古诗自动生成器的设计与实现

    在线古诗自动生成器的设计与实现 前言一 算法模型介绍LSTM简介模型框架实验环境实验与分析实验数据集数据集预处理训练过程模型训练结果模型的评估 二 在线古诗生成器的设计与实现系统结构远程服务器的项目部署系统测试 三 成品展示 前言 古诗 x
  • E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    安装软件报错 apt get install python minimal E Unable to fetch some archives maybe run apt get update or try with fix missing 原
  • YUM命令常见报错以及解决办法

    简介 xff1a 本文主要为大家讲解CentOS 7系统中执行yum命令失败等常见问题的排查方法 1 执行yum命令报404错误 1 xff09 检查yum仓库是否配置正确 xff0c 可以到CentOS 镜像下载阿里云repo配置文件 2
  • 无法显示此网页

    上网过程中电脑打开浏览器 xff0c 浏览器突然显示 34 无法显示此网页 34 有可能是网络出现问题了 xff0c 也有可能是浏览器设置原因 xff0c 也有可能网站服务器原因 先用排除法来判断是哪种原因造成的 xff0c 再一一解决 0
  • 电脑添加打印机方法/步骤

    方法1 主要有以下几种方法 xff1a 1 新购买的打印机都会有自带的驱动软件安装光盘 xff0c 如果你电脑上有光驱的话 xff0c 直接安装上就可以了 xff1b 如果没有光驱那就到所购买的打印机品牌官网上去找对应型号的驱动下载安装上
  • ssh常见命令

    Linux系统的远程管理工具大概有几种 xff1a telnet xff0c ssh xff0c vnc等 xff0c 其中ssh是最常用的管理方法 xff0c 采用密文的传输方式 xff0c 简单安全 基本用法 最简单的用法就是不带参数
  • 芯片春秋: 开源架构RISC-V前世今生

    不久前 xff0c 特斯拉加入 RISC V基金会 xff0c 并考虑在新款芯片中使用免费的 RISC V 设计 至此 xff0c 已有IBM NXP 西部数据 英伟达 高通 三星 谷歌 华为等100多家科技公司加入RISC V阵营 出现这