RISC-V

Always use: RISC-V, RISC-V International
Never use: Risc V, RISC V, RISC_V

开源和开放标准的重要性

技术不是孤立存在的,随着我们的技术世界变得更加复杂和联系更加紧密,全球标准确保了社会可能会认识到互操作性的深远利益,从发明者到消费者。从机器螺丝上的标准螺纹到微处理器上连接硅的螺纹,标准推动了基础平台层面的创新。工程领域自愿标准的制定可以追溯到一个多世纪以前,在20世纪80年代末到90年代,Tim Berners-Lee领导了一场标准化我们在互联网上使用的协议(URL, HTML, HTTP, W3C)的革命,这无疑是现代历史上最大的技术进步。有无数的例子支撑着我们每天所依赖的技术。

RISC-V的起源

加州大学伯克利分校教授David Patterson领导的并行计算实验室(Parallel Computing Laboratory),教授Krste Asanović和研究生Yunsup Lee和Andrew Waterman于2010年5月开始RISC-V指令集的研究。并行计算实验室是一个为期5年的项目,旨在推进并行计算,由英特尔(Intel)和微软(Microsoft)出资1000万美元,从2008年到2013年。在 20 世纪80 年代,Patterson领导了四代精简指令集计算机(RISC, Reduced Instruction Set Computer)项目,伯克利最新的 RISC 因此得名“RISC Five” 。并行计算实验室发表的第一篇关于RISC-V指令集的论文:

The RISC-V Instruction Set Manual, Volume I: Base User-Level ISA (EECS-2011-62) Andrew Waterman, Yunsup Lee, David A. Patterson, and Krste Asanović, May 13, 2011.

全世界对RISC-V的兴趣并不是因为它是一种伟大的新芯片技术,而是因为它是一种通用的、自由的、开放的标准,软件可以移植到它上面,它允许任何人自由地开发自己的硬件来运行软件。RISC-V国际并不管理或提供任何开源的RISC-V实现,只提供标准规范。RISC-V软件由各自的开源软件项目管理。

这篇文章RISC-V Genealog介绍了RISC-V的发展历程:
https://live-risc-v.pantheonsite.io/wp-content/uploads/2016/02/EECS-2016-6.pdf

RISC-V的国际化发展

RISC-V基金会(www.riscv.org)成立于2015年,旨在建立一个基于RISC-V ISA的软硬件创新者开放、协作的社区。该基金会是一个由其成员控制的非营利性公司,指导开发,以推动RISC-V ISA的最初采用。2018年11月,RISC-V基金会宣布与Linux基金会合作。

在2018-2019年期间,RISC-V社区对地缘政治环境进行了反思,我们听到了来自世界各地的担忧,即对RISC-V的投资必须与知识产权获取的连续性相结合,以确保长期战略投资。我们首先在2018年12月峰会上提出了行动意向。RISC-V基金组织搬到瑞士,平息了人们对政治会破坏开放合作模式的担忧。作为一个非营利性的会员组织,国际RISC-V不维护任何产品或服务的商业利益。美国对RISC-V没有任何出口限制,我们遵守美国的所有法律。此举并未规避任何现有限制,而是减轻了未来的不确定性。

2020年3月,RISC-V国际协会在瑞士成立。与此同时,我们转向了一个新的、更具包容性的成员结构。RISC-V国际的成员可以访问并参与开发RISC-V ISA规范和扩展以及相关的硬件和软件。

由RISC-V国际贡献和生产的知识产权是根据行业和全球标准许可证持有的,这些许可证已经向任何公司开放,而不受管辖。这种许可是一种促进协作的常见开源方法,不受任何地理规则的约束。开源IP不受出口管制。

RISC-V的开源模式

一个处理器芯片包含了三个层次:指令集(ISA)、微结构设计、产品。

  • 指令集(ISA),是标准规范(Specification),常用一本书或几张纸来描述;
  • 微结构设计,也常被称为处理器实现(Implementation),是具体实现,对应的是一种设计方法及其源代码;
  • 产品,是微架构设计的实例化,比如华为基于ARM指令集和Cotex-A76微架构,设计了麒麟990这款芯片。

严格意义上来讲,“开源”,是“开放源代码”的缩写,而指令集只是几张纸,是没有源代码的。我们通常提到的开源处理器,是指的微架构设计的代码开源。进一步将指令集标准与架构设计都分为三类:开放免费(Open & Free)、可授权(Licensiable)、封闭(Closed)。于是,我们可以看到,Intel就属于封闭指令集+封闭设计,ARM属于可授权指令集+可授权设计,但要获得授权价格不菲,往往需要上百万甚至数千万美元。

RISC-V为全世界提供了开放免费指令集+开放免费设计的选择。只有先有了开源开放的指令集,才有可能有开源开放的微架构设计,即绿色格子。需要强调的是RISC-V本身是一种标准规范,和C/C++语言规范、POSIX系统调用等这些标准是一样的。本身是开放的,谁都可以基于这些标准来实现自己的处理器。但有一点需要厘清的是,即使都是基于开源开放指令集(比如RISC-V),也存在三种不同的商业模式,开放免费的指令集(RISC-V)包含了三种模式的微架构设计:

开源模式,Berkeley的Rocket Chip、剑桥大学的lowRISC、蜂鸟E203等RISC-V核将RTL级源码也开源,这些设计可归到绿色格子;

授权模式,SiFive公司、晶心科技Andes、阿里平头哥的RISC-V核是可以被授权给第三方使用,但不开源RTL级源码,属于黄色格子;

封闭模式,Google、NVIDIA等企业在内部大量使用RISC-V核作为MCU,但他们不对外开放IP以及源代码,这就属于红色格子。

综上,指令集是开源开放免费的,但是微架构设计既可以选择开源给大家(开源模式);也可以选择收费后授权给其它公司去生产(授权模式);也可以不往外授权,自己拿去生产(封闭模式)。RISC-V提供给了大家完全自由开放的选择。而这里开源模式的绿色格子,便是我们经常说的基于RISC-V的开源处理器设计。

山特UPS zabbix snmp 山特维克官网_架构设计

RISC-V和开源处理器

“RISC-V是开源的”表示指令集规范是开源、开放和免费的(open and free),这与x86与ARM指令集有本质不同,但并不是指具体的处理器实现也都是开源免费的。我们可以基于x86/ARM/ RISC-V指令集,进行处理器微架构设计和实现形成源代码,并通过流片最终形成芯片产品。其中指令集规范与处理器实现的知识产权是独立的,不能混为一谈。

基于RISC-V指令集规范,既可以由开源社区来开发开源免费版的处理器实现(如Berkeley开发的Rocket核等),也可以有商业公司开发收费授权版的处理器实现(如国内平头哥玄铁910、芯来N200核与优矽渭河WH-32核等)。

指令集向上承载的是整个软件生态,向下则规范了以处理器芯片为代表的整个硬件生态。根据一份指令集规范,设计一款处理器,其上可以运行同样遵循该指令集规范所编写的软件代码。故而,我们在提到指令集的时候,有时候也指的是其背后的整个软硬件生态系统,包括外围芯片、操作系统、编译器和诸多应用软件(浏览器、游戏软件等)。事实证明,每一种芯片在市场竞争中要取得成功,很大程度上取决于其生态系统。

山特UPS zabbix snmp 山特维克官网_IP_02

RISC-V受到美国军方DARPA资助,还可靠吗?

过去几十年,在DAPRA资助下研制的BSD Unix、TCP/IP协议栈、GPS等一系列技术对人类社会进步起到了巨大的推动作用。FreeBSD是早期开源软件的杰出代表,TCP/IP协议更是开放标准的典范,构建起今天连接几十亿人的Internet。它们虽然都是DARPA支持,但是世界各地都可以使用。中国基于TCP/IP协议构建网络,这并没有受到美国的出口管制;中国企业基于TCP/IP研制的交换机与路由器,也并不受到美国的出口管制。

因此,RISC-V受到DARPA资助,不应该成为我们拒绝和抵制的理由,就如不应该因为TCP/IP协议是DARPA资助而拒绝一样。正如前所述,RISC-V和TCP/IP一样,本质上就是规范。规范很重要,但更重要的是如何将规范转变为代码、系统和产品,这才能形成核心技术竞争力。