RISC-V(发音为“risk-five”)是基于已建立的精简指令集计算机(RISC)原理的开源硬件指令集架构(ISA)。该项目于2010年在加州大学伯克利分校开始,但许多贡献者都是不隶属于该大学的志愿者。2019年3月,用户端的版本2.2的ISA固定下来,大多数软件开发者可以继续进行开发。 特许模式的ISA的草案版本1.10可以使用。 调试规范可用作草案版本0.13.1。

RISC-V对行业的意义 可用的新指令集架构(ISA)通常非常昂贵,计算机设计师通常无法免费工作。此外,开发CPU需要几个专业的设计专业知识:电子数字逻辑、编译器和操作系统。在专业工程组织之外找到这样一个团队是不容易的。团队通常是从他们的设计收取的钱中支付的。因此,计算机设计的商业供应商,如ARM Holdings和MIPS Technologies,就其设计,专利和版权的使用收取使用费。

在发布描述其设计详细优势和指令集的文档之前,他们还经常要求保密协议。在许多情况下,他们从未描述他们的设计选择的原因。

这种费用和保密性使得新硬件和软件的开发变得更加困难。它还会阻止安全审核。另一个结果是除了在学术环境中之外,尚未解释或提供现代的,高质量的通用计算机指令集。

RISC-V开始解决这些问题。我们的目标是制作一个开源的实用ISA,可以在任何硬件或软件设计中使用而无需使用版税。此外,至少在广义上解释了项目每个部分的基本原理。 RISC-V的作者是学术性的,但在计算机设计方面拥有丰富的经验。 RISC-V ISA是一系列学术计算机设计项目的直接开发。它的部分原因是为了帮助这些项目。

为了解决设计成本问题,该项目由DARPA资助的学术研究开始。为了构建一个庞大,持续的用户社区,从而积累设计和软件,RISC-V ISA设计人员计划支持各种实际用途:小型,快速和低功耗的实际实现,没有针对特定的微体系结构进行过度架构。对大量贡献者的需求是RISC-V被设计为适合如此多用途的部分原因。

因此,许多RISC-V贡献者将该项目视为一项统一的社区工作。

先驱者

RISC一词的历史可以追溯到1980年左右。在此之前,有一些知识认为更简单的计算机可能是有效的,但设计原则没有被广泛描述。简单有效的计算机一直是学术上的兴趣所在。

Academics于1990年为第一版计算机体系结构:定量方法创建了RISC指令集DLX.David Patterson是作者,后来协助RISC-V。 DLX用于教育用途。学者和业余爱好者使用现场可编程门阵列实现它。这不是商业上的成功。

ARM CPU(版本2及更早版本)具有公共域指令集,GNU编译器集合(GCC)仍然支持它,这是一种流行的自由软件编译器。这个ISA存在三个开源核心,但它们尚未制造出来。 OpenRISC是一个基于DLX的开源ISA,具有相关的RISC设计。它完全支持GCC和Linux实现。但是,它几乎没有商业实施。

学术用途

加州大学伯克利分校的KrsteAsanović发现了许多用于开源计算机系统的用途。 2010年,他决定在“夏季短期,三个月的项目”中开发和发布一个。该计划旨在帮助学术和工业用户。伯克利的大卫帕特森也帮助了这项努力。他最初确定了Berkeley RISC的属性,而RISC-V是他长期合作的RISC研究项目之一。在这个阶段,学生们可以廉价地提供初始软件,模拟和CPU设计。

RISC-V作者及其机构最初提供了ISA文档和BSD许可下的几种CPU设计,允许衍生作品(如RISC-V芯片设计)开放和免费,或封闭和专有。

早期的资金来自DARPA

基金会

商业问题要求ISA在可以使用可能持续多年的产品之前保持稳定。为了解决这个问题,RISC-V基金会的成立是为了拥有,维护和发布与RISC-V定义相关的知识产权。原作者和所有者已经放弃了他们对基金会的权利。

自2019年起,该基金会自由发布定义RISC-V的文档,并允许在软件和硬件设计中不受限制地使用ISA。但是,只有RISC-V基金会的付费会员才能投票批准更改或使用商标兼容性徽标。

真实世界的使用

支持RISC-V基金会的部分组织包括:Advanced Micro Devices(AMD),Andes Technology,Antmicro,BAE Systems,Berkeley Architecture Research,Bluespec,Inc.,Cortus,Google ,GreenWaves Technologies,Hewlett Packard Enterprise,华为,IBM,Imperas Software,计算技术研究院(ICT)中国科学院,IIT Madras,Lattice Semiconductor,Mellanox Technologies,Microsemi,Micron Technologies,Nvidia,NXP,Oracle,Qualcomm,Rambus密码学研究,Western Digital和SiFive。

奖项

2017年:Linley集团最佳技术分析师选择奖(针对指令集)

激励要求

设计人员说,指令集是计算机中的主要接口,因为它位于硬件和软件之间。如果一个好的指令集是开放的,可供所有人使用,它应该通过允许更多的重用来大大降低软件的成本。它还应该增加硬件提供商之间的竞争,硬件提供商可以使用更多的资源进行设计而不是软件支持。

设计人员断言,新原则在指令集设计中变得越来越少,因为过去四十年中最成功的设计变得越来越相似。在那些失败的人中,大多数都是这样做的,因为他们的赞助公司在商业上失败了,不是因为技术上的指令集很差。因此,使用完善的原则设计的精心设计的开放式指令集应该吸引许多供应商的长期支持。

大多数先前的开放式ISA使用GNU通用公共许可证(GPL),鼓励用户打开他们的实现以复制和使用他人。

与仅为简化说明而优化的其他学术设计不同,设计人员声称RISC-V指令集适用于实际计算机。据说它具有提高计算机速度,降低成本和功耗的功能。这些包括加载 - 存储架构,简化CPU中多路复用器的位模式,简化的基于标准的浮点,架构中立的设计,以及将最高有效位放置在固定位置以加速符号扩展。据说符号扩展通常位于关键时序路径上。

该指令集适用于广泛的用途。它支持三个字宽,32,64和128位,以及各种子集。对于三个字宽,每个子集的定义略有不同。这些子集支持小型嵌入式系统,个人计算机,带矢量处理器的超级计算机以及仓库级机架式并行计算机。

指令集是可变宽度和可扩展的,因此总是可以添加更多的编码位。 ISA的128位拉伸版本的空间被保留,因为60年的行业经验表明,指令集设计中最不可恢复的错误是缺少内存地址空间。截至2016年,128位ISA仍然是故意未定义的,因为这种大型内存系统的实际经验却很少。

但是,RISC-V也支持设计师的学术用途。整数子集的简单性允许基本的学生练习。整数子集是一个简单的ISA,使软件能够控制研究机器。可变长度ISA可以扩展学生练习和研究。分离的特权指令集允许研究操作系统支持,而无需重新设计编译器。RISC-V的开放知识产权允许其设计被发布,重用和修改。

软件

新指令集的正常问题是缺乏CPU设计和软件。这两个问题都限制了它的可用性并减少了采用率。RISC-V网站有一个用户模式指令规范,以及支持操作系统的通用特权指令集的初步规范。

有几种开源的RISC-V CPU设计,包括64位伯克利故障排除机(BOOM),64位火箭(Rocket),来自伯克利的五种32位Sodor CPU设计,来自Clifford Wolf的picorv32,来自Syntacore的scr1,来自ETHZürich/博洛尼亚大学的PULPino(Riscy和Zero-Riscy),等。三级Sodor CPU似乎适用于小型嵌入式CPU。火箭可能适合​​紧凑,低功率的中间计算机,如个人设备。 BOOM使用为Rocket创建的大部分基础架构,可用于个人,超级计算机和仓库级计算机。 picorv和scr1都是Verilog中的32位微控制器单元(MCU)级RV32IMC实现。 PULPino中的内核实现了一个简单的RV32IMC ISA,用于微控制器(Zero-Riscy)或更强大的RV32IMFC ISA,具有用于嵌入式信号处理的定制DSP扩展。

设计软件包括一个设计编译器Chisel,它可以将设计简化为Verilog用于设备。该网站包含用于测试核心实施的验证数据。

可用的RISC-V软件工具包括GNU编译器集合(GCC)工具链(带有GDB,调试器),LLVM工具链,OVPsim仿真器(以及RISC-V快速处理器模型库),Spike仿真器和模拟器QEMU。

Linux内核,FreeBSD和NetBSD都存在操作系统支持,但是管理员模式指令自2019年3月14日起未标准化,因此这种支持是临时的。 RISC-V架构的初步FreeBSD端口于2016年2月上市,并在FreeBSD 11.0中发布。Debian和Fedora的港口正在稳定下来。 Das U-Boot的端口存在。UEFI Spec v2.7已经定义了RISC-V绑定,而且一个TianoCore端口已经由HPE工程师完成并且预计将被升级。有一个seL4微内核的初步端口。存在一个模拟器,用于使用JavaScript在Web浏览器上运行RISC-V Linux系统。Hex Five发布了第一个支持FreeRTOS的RISC-V安全IoT协议栈。

采用者

商业

  • SiFive是一家专门开发RISC-V硬件的公司,其处理器型号于2017年发布。其中包括RISC-V SoCa四核,64位片上系统。Syntacore是RISC-V基金会的创始成员之一,也是最早的商业RISC-V IP供应商之一,自2015年以来开发并授权RISC-V IP系列。截至2018年,产品线包括8个32和64位核心,包括开源SCR1 MCU核心。2016年首次展示了基于Syntacore IP的商用SoC。
  • 2016年加入该联盟的RISC-V基金会的创始成员Andes Technology Corporation于2017年发布了其首批两个RISC-V内核.N25和NX25内核具有完整的设计生态系统和RISC-V合作伙伴的数量。安第斯山脉正在积极推动RISC-V生态系统的发展,并期望在2018年推出几款新的RISC-V产品。
  • Codasip和UltraSoC为RISC-V嵌入式SOC开发了完全支持的知识产权,将Codasip的RISC-V内核和其他IP与UltraSoC的调试,优化和分析相结合。
  • Imperas为RV32GC和RV64GC ISA变体的不同子集开发了一系列快速处理器模型,这些变体是OVPsim指令的一部分,用于嵌入式软件开发的精确模拟器分发。
  • GreenWaves Technologies于2018年2月宣布推出GAP8,一个32位1控制器,8个计算核心,32位SoC和开发板。他们的GAPuino GAP8开发板于2018年5月开始出货。
  • Hex Five宣布推出一般可用性MultiZone Security - 第一个使用标准RISC-V ISA和特权模式扩展的RISC-V可信执行环境(TEE)。
  • CloudBEAR是一家处理器IP公司,为各种应用开发自己的RISC-V内核。

在开发中

  • 印度理工学院马德拉斯正在开发六种RISC-V开源CPU设计,用于六种不同的用途,从用于物联网(IoT)的小型32位CPU到专为仓库级计算机设计的大型64位CPU。作为基于RapidIO和Hybrid Memory Cube技术的服务器场。
  • Nvidia计划使用RISC-V替换他们的GeForce显卡上的Falcon处理器。
  • ASTC为嵌入式IC开发了RISC-V CPU。
  • Adapteva计划使用RISC-V,作为其多核加速器产品的后续产品
  • lowRISC是一个非盈利项目,旨在实现基于64位RISC-V ISA的完全开源硬件片上系统(SoC)。
  • 剑桥大学计算机实验室与FreeBSD项目合作,将该操作系统移植到64位RISC-V,用作硬件 - 软件研究平台。
  • 苏黎世联邦理工学院和博洛尼亚大学合作开发了开源RISC-V PULPino处理器,作为节能超低功耗(PULP)项目的一部分,用于节能物联网计算。
  • Western Digital宣布了将RISC-V处理器嵌入其未来产品的计划。
  • Esperanto Technologies宣布他们正在开发三种基于RISC-V的处理器:ET-Maxion高性能核心,ET-Minion节能核心和ET-Graphics图形处理器。

RISC V相关资源链接

RISC-V的架构开发者之一David Patterson在《RISC-V手册》这本书中介绍的RISC-V设计之初的目标是成为一个通用的指令集架构(ISA):

  • 它要能适应包括从最袖珍的嵌入式控制器,到最快的高性能计算机等各种规模的处理器。
  • 它应该能兼容各种流行的软件栈和编程语言。
  • 它应该适应所有实现技术,包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、全定制芯片,甚至未来的设备技术。
  • 它应该对所有微体系结构样式都有效:例如微编码或硬连线控制;顺序或乱序执行流水线; 单发射或超标量等等。
  • 它应该支持广泛的专业化,成为定制加速器的基础,因为随着摩尔定律的消退,加速器的重要性日益提高。
  • 它应该是稳定的,基础的指令集架构不应该改变。更重要的是,它不能像以前的专有指令集架构一样被弃用。

关于RISC-V更详细的技术细节

SiFive

SiFive的公司网址

总部位于加利福尼亚州圣马特奥的创业公司SiFive是最早的RISC-V公司,也是将RISC-V放在蓝图上的公司。 从2015年开始,该公司发布了许多基于RISC-V的处理器内核,主要针对从发烧友到主要制造商的各个级别的开发。 2017年,该公司发布了U54-MC Coreplex(如上所示的框图),这是第一款支持Linux、Unix和FreeBSD的基于RISC-V的芯片。

今年,该公司通过推出用于嵌入式架构的64位微控制器S2 Core IP系列扩展了其产品组合。 SiFive表示,其S2系列的目标是处理越来越多的连接设备的处理需求,处理实时工作负载,并在不同程度上利用人工智能和机器学习。

Andes Technology

Andes Tecnnology的公司网址

总部位于台湾的Andes Technology成立于2005年,是一家CPU供应商,也是目前在RISC-V生态系统中工作的最古老的公司之一。它在2015年建立了RISC-V的努力。在2019年3月,该公司宣布推出32位A25MP和64位AX25MP(上图所示的方框图),两者都是RISC-V处理器。该公司希望提供多核RISC-V处理器,以实现人工智能和高级驾驶辅助系统(ADAS)等高级应用。

A25MP和AX25MP均支持最多四个CPU内核;在私有的1级缓存之间提供有效的缓存一致性;包括可选的共享二级缓存;并支持没有缓存的总线主控器的I / O一致性。它们还可在28nm工艺中以超过1 GHz的频率运行,并支持Linux对称多处理(SMP)。

Andres表示,其新的RISC-V处理器旨在满足图像分类,语音识别和面部检测等应用的数字信号处理需求,这些应用传统上对RISC-V处理器来说过于耗费计算量。

AntMicro

AntMicro的公司网址 瑞典嵌入式技术公司Antmicro是Renode的创建者,Renode是一个开源测试和开发框架,可让RISC-V开发人员模拟物理硬件系统和组件,包括处理器,外围设备,传感器,外部环境以及有线和无线连接。

Renode旨在促进RISC-V在实际应用中的应用,并指导工程师在构建基于RISC-V的系统时遇到的新挑战,让工程师快速探索不同的架构,并使用构建块的开源生态系统和 Antmicro以及更广泛的开发者社区提供的结构。

Dover Microsystems

Dove Microsystems的公司网址 总部位于马萨诸塞州的Dover Microsystems称自己是“第一家为硅提供真正安全,隐私和安全执法的公司。”该公司开发了CoreGuard(如上所示的框图),这是RISC-V处理器的网络安全和安全解决方案。开源带来了一些固有的和可理解的安全问题,Dover是少数几家通过在RISC-V处理器中实现安全功能来解决这个问题的公司之一。

CoreGuard可以在任何RISC-V处理器中实现,允许嵌入式处理器实时防御基于网络的网络攻击,有缺陷的安全软件和安全违规。它通过使用控制处理器与系统其余部分之间通信的硬件互锁来实现。 CoreGuard具有内置的“微量政策”,可以告诉处理器好坏指令之间的区别。在允许执行之前,CoreGuard会检查处理器与系统其余部分之间的任何通信的有效性。

Dover首席执行官兼创始人Jothy Rosenberg在2018年12月的一份新闻声明中说:“以同样的方式攻击网络安全流行病并不能保证我们连接的设备和系统的安全,这已不是什么秘密。” “在过去的18个月里,业界已经认识到,防止攻击者首先接管处理器的能力是物联网安全必须开始的地方,将CoreGuard整合到嵌入式系统的处理器,汽车,医疗设备等组织中,和其他相关行业可以真正确保他们拥有建立物联网信任基础所需的安全性,安全性和隐私性。“

Hex Five

Hex Five的公司网址

San Jose的Hex Five是MultiZone Security的创建者,它被称为RISC-V的第一个可信执行环境。 MultiZone不需要额外的硬件,专用内核或编程模型,并允许对无限数量的安全域进行基于策略的硬件强制分离,并完全控制数据,代码,中断和外设。由于它是开源的,如RISC-V,工程师也可以在MultiZone中实现开放式课程库,第三方二进制文件,甚至旧的遗留代码。 Hex Five还在GitHub上为MultiZone维护一个开源存储库。

2019年2月,作为与加密公司wolfSSL合作的一部分,Hex Five为RISC-V发布了业界首个安全的物联网(IoT)堆栈。该堆栈旨在通过FreeRTOS实现,并处理嵌入式操作系统中固有的安全风险。

MultiZone允许工程师将固件隔离到无限数量的独立区域,从根本上将它们隔离在安全性方面。根据Hex Five,其结果是防止共享内存攻击和其他攻击在整个系统中传播。任何漏洞都局限于发生它的区域。

Imperas

Imperas的公司网址 总部位于英国的Imperas是一家虚拟软件模拟公司,最近已扩展到RISC-V。 2018年11月,该公司发布了riscvOVPsim,这是一款免费的RISC-V指令集仿真器,允许工程师对单核RISC-V CPU进行建模和仿真。该模拟器面向硬件和软件工程师,可以作为kickstart软件开发的入口点,无需手头的硬件以及硬件端的构建和一致性测试。根据Imperas的说法,riscvOVPsim可以在标准的Windows或Linux PC上每秒执行超过10亿条指令。它还具有适用于所有RISC-V规范选项的可配置运行时设置,以便于将运行时结果与RTL实现进行比较。

riscvOVPsim是免费的,可以在GitHub上下载,以及最新的RISC-V一致性测试套件和框架。它包括Imperas的免费使用许可,支持商业和学术用途。开源模型根据Apache 2.0许可证授权。

Microsemi

Microsemi的公司网址 Microsemi是Microchip Technology的子公司,是RISC-V CPU和FPGA系列的生产商。 该公司的Mi-V RISC-V内核可在其基于RISC-V的SoC的PolarFire系列中使用。 PolarFire SoC旨在为希望开发基于FPGA的物联网设备的嵌入式工程师提供低功耗,灵活的解决方案。 该公司还为其RISC-V硬件提供全套软件产品,用于开发,编译和调试嵌入式固件。

Western Digital

Western Digital的公司网址

在这份名单上看到一家以数字存储而闻名的公司可能会令人惊讶。 但西部数据公司已经全力投入RISC-V,以至于2017年该公司承诺将其每年运送的所有超过10亿个处理器内核转换为RISC-V内核。 此举是Western Digital希望从被认为不再是存储公司转变为数据公司的一部分。

Western Digital已经发布了SweRV核心,它表示将在未来几年内将其应用于越来越多的产品中。 SweRV是一款32位,双向超标量,九级流水线内核,采用28mm CMOS工艺技术,时钟速度高达1.8 Ghz。 截至2019年1月,Western Digital完全开源了SweRV内核,并发布了一个指令集模拟器(ISS),为SweRV和其他RISC-V内核提供全面的测试支持。 该公司围绕SweRV的完整开源库可在GitHub上获得。

NXP的VEGA RV32M1

该产品的官方网站

Hackaday网站关于VEGA的介绍: VEGAboard配有一个NXP芯片,它结合了ARM Cortex-M0和Cortex-M4。到目前为止,这么好,但已经有几十块板在一个开发平台上组合了两个ARM微控制器。真正的技巧是VEGAboard上的RI5CY和Zero-RI5CY芯片,一个4级RISC-V RV32IMCCXpulp CPU。这来自PULP平台,旨在成为一个小型,低功耗但并行的平台,可满足各种处理需求。简而言之,使用VEGAboard,您不会在RISC-V微控制器上运行闪烁()草图。您在ARM微控制器上运行blink()草图,同时使用RISC-V芯片读取加速度计和切换引脚。它是一个协处理器,但它是RISC-V。

VEGAboard的其他功能包括4MB Flash、光传感器、加速度计、磁力计、RGB LED、OpenSDA串行调试适配器,板载BLE无线电路,当然还有那些不稳定的Arduino引脚接头。

Greenwaves Technologies

Greenwaves Technologies的公司网址 GreenWaves开创性的GAP8物联网应用处理器可实现智能设备的低成本开发,部署和自主运行,可捕获,分析,分类和处理丰富数据源(如图像,声音,雷达,红外线或振动)的融合。 多年的电池。 GAP8提供了将复杂的信号处理和人工智能集成到生活在网络边缘的小型电池供电设备所需的计算和功率灵活性。

由于集成的8核计算集群与卷积硬件加速器相结合,GAP8经过独特优化,可执行大范围的图像和音频算法,包括卷积神经网络(CNN),具有极高的能效。

向量单元,内在函数和专有指令集扩展有助于8个集群核心比传统并行处理器架构更快地执行,而无需编写单行汇编代码。

完全可编程,基于RISC-V的PULP并行架构能够应对机器学习算法中快速发展的最新技术。

GAP8的设计独特,可根据应用需求调整功耗。 GAP8采用最先进的动态电压和频率调节以及自动时钟门控,仅保持唤醒服务当前工作负载所需的组件元素。 GAP8具有极低的待机功耗和超快的唤醒和电源状态转换,使其仅在需要时消耗能量。