David ditzel在1980年发表的那篇经典论文“ The case for the reduced instruction set computer”中创造了RISC一词 二是将RISC-V指令集彻底开放,使用 BSd License开源协议设计了开源处 理器核 Rocket core。伯克利研究团队认为,指令集ISA作为软硬件接口的 种说明和描述规范,不应该像ARM、 PowerPC、X86等指令集那样需要付费授权 才能使用,而应该开放(open)和免费(Free)。他们选择的BSD开源协议给 予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代 码开发商业软件发布和销售。因此BSD开源协议对商业集成很友好,很多的企 业在选用开源产品时都会首选BSD开源协议 于是,一套全新的开放指令集RISC-V诞生了一一全世界任何公司、大学、 研究机构与个人都可以开发兼容RISC-V指令集的处理器,都可以融入到基于 RISC-V构建的软硬件生态系统,而不需要为指令集付一分钱。伯克利研究团队 对RISC-Ⅴ寄予厚望,希望它能被应用到各种场合,从微控制器到超级计算机; 也希望它能像Linuⅸx通过开源成为全世界操作系统的事实标准之一,最终成为 全世界处理器指令集的事实标准,为下一个50年计算机系统设计与创新做出奠 基性贡献。 3.2 RISC-V指令集特点 RISC-开源的特点保证了它的稳定性,因为它只属于一个开放的、非盈利 性质的基金会。而商用指令集的盛衰往往与该商业公司的发展息息相关,历史 上由于商业公司倒闭或者被收购而导致其商用指令集消失的例子比比皆是。 指令集设计者对以往指令集取其精华、去其糟粕后才得到了 RISC-V。例 如,对于分支跳转指令,RISC-V没有采用MIPS和 SPARC等指令集中被广为诟 病的分支延迟槽。零寄存器的存在,使得RISC-V可以省略很多在没有零寄存器 的ARM和x86中所必需的指令,简化了指令集设计 RISCⅤ最为重要的一个特点是模块化。传统的增量指令集架构设计要求保 持向后的二进制兼容,因此新处理器必须负重前行,在实现所有历史设计的基 础上实现新的设计,这使得指令集架构的复杂度随时间持续增长。RISC-V的做 法是将指令集划分为几个标准的子集,称为扩展,并保持一些基础的扩展(例
12 David Ditzel 在 1980 年发表的那篇经典论文“The case for the reduced instruction set computer”中创造了 RISC 一词。 二是将 RISC-V 指令集彻底开放,使用 BSD License 开源协议设计了开源处 理器核 Rocket Core。伯克利研究团队认为,指令集 ISA 作为软硬件接口的一 种说明和描述规范,不应该像 ARM、PowerPC、X86 等指令集那样需要付费授权 才能使用,而应该开放(Open)和免费(Free)。他们选择的 BSD 开源协议给 予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代 码开发商业软件发布和销售。因此 BSD 开源协议对商业集成很友好,很多的企 业在选用开源产品时都会首选 BSD 开源协议。 于是,一套全新的开放指令集 RISC-V 诞生了——全世界任何公司、大学、 研究机构与个人都可以开发兼容 RISC-V 指令集的处理器,都可以融入到基于 RISC-V 构建的软硬件生态系统,而不需要为指令集付一分钱。伯克利研究团队 对 RISC-V 寄予厚望,希望它能被应用到各种场合,从微控制器到超级计算机; 也希望它能像 Linux 通过开源成为全世界操作系统的事实标准之一,最终成为 全世界处理器指令集的事实标准,为下一个 50 年计算机系统设计与创新做出奠 基性贡献。 3.2 RISC-V 指令集特点 RISC-V 开源的特点保证了它的稳定性,因为它只属于一个开放的、非盈利 性质的基金会。而商用指令集的盛衰往往与该商业公司的发展息息相关,历史 上由于商业公司倒闭或者被收购而导致其商用指令集消失的例子比比皆是。 指令集设计者对以往指令集取其精华、去其糟粕后才得到了 RISC-V。例 如,对于分支跳转指令,RISC-V 没有采用 MIPS 和 SPARC 等指令集中被广为诟 病的分支延迟槽。零寄存器的存在,使得 RISC-V 可以省略很多在没有零寄存器 的 ARM 和 x86 中所必需的指令,简化了指令集设计。 RISC-V 最为重要的一个特点是模块化。传统的增量指令集架构设计要求保 持向后的二进制兼容,因此新处理器必须负重前行,在实现所有历史设计的基 础上实现新的设计,这使得指令集架构的复杂度随时间持续增长。RISC-V 的做 法是将指令集划分为几个标准的子集,称为扩展,并保持一些基础的扩展(例
如RV32I)永远不变。这一约定给编译器和操作系统相关的开发人员提供了稳 定的目标。并且这些扩展是可选的,处理器的设计者可以根据需求选择实现不 同的扩展,这对于嵌入式应用至关重要 RISC-V主要的指令扩展如下: ●I扩展:整数扩展(RV32I)为RISC-V的基础整数指令集,所有实现都 必须支持。RV32I极度精简,仅有38条指令,但是功能齐全,执行通 用计算所必须的整数计算、访存、分支以及系统调用等指令一应俱 全。处理器仅需支持RV32I,便可以运行完整RISC-V软件栈。 M扩展:乘法扩展(RV32M)为RISC-V整数乘除法扩展指令集,M扩展 支持整数的有符号以及无符号乘除法运算 F扩展/D扩展:单精度浮点扩展(RV32F)和双精度浮点扩展 (RV32D)为RISC-V的浮点指令集。共用一组独立于整数寄存器的浮 点寄存器,拥有常规的访存和运算指令,也有一些包括乘加指令在内 的融合运算指令,使得运算过程更精简而准确。另外为了有助于数学 库的编写,还包括了有助于符号操作的符号注入指令和测试操作数属 性的分类指令。F和D扩展没有包括浮点分支指令,取而代之的是浮点 比较指令,可以根据浮点数的比较结果设置寄存器的值,并用于条件 分支。 ●A扩展:原子扩展(RV32A)为RISC-V的原子操作指令集,为同步操作 提供了必要的支持。RV32A扩展为不同的使用场景提供了两种对应的原 子操作。其中加载保留(lr)指令和条件存储(sc)指令保证了原子 的比较-交换( compare-and-swap)的实现;AM0指令在多处理器系统 中的可扩展性比1r和sc更好,可以实现I/0通信中的总线原子读 写,从而简化设备驱动,提高I/0性能。 ●G扩展:通用扩展(RV32G)为RISC-V基础整数指令集RV32I加上标 准扩展(M、F、D、A),统称RV32G。 ●C扩展:压缩扩展(RV32C)为RISC-V的压缩指令集。包括了与标准 32位RISC-V一一对应的短指令,它们只对汇编器和链接器可见,因此 编译器编写者和汇编语言程序员可以忽略它们。以往的ISA设计在重
13 如 RV32I)永远不变。这一约定给编译器和操作系统相关的开发人员提供了稳 定的目标。并且这些扩展是可选的,处理器的设计者可以根据需求选择实现不 同的扩展,这对于嵌入式应用至关重要。 RISC-V 主要的指令扩展如下: I 扩展:整数扩展(RV32I)为 RISC-V 的基础整数指令集,所有实现都 必须支持。RV32I 极度精简,仅有 38 条指令,但是功能齐全,执行通 用计算所必须的整数计算、访存、分支以及系统调用等指令一应俱 全。处理器仅需支持 RV32I,便可以运行完整 RISC-V 软件栈。 M 扩展:乘法扩展(RV32M)为 RISC-V 整数乘除法扩展指令集,M 扩展 支持整数的有符号以及无符号乘除法运算。 F 扩展/D 扩展:单精度浮点扩展(RV32F)和双精度浮点扩展 (RV32D)为 RISC-V 的浮点指令集。共用一组独立于整数寄存器的浮 点寄存器,拥有常规的访存和运算指令,也有一些包括乘加指令在内 的融合运算指令,使得运算过程更精简而准确。另外为了有助于数学 库的编写,还包括了有助于符号操作的符号注入指令和测试操作数属 性的分类指令。F 和 D 扩展没有包括浮点分支指令,取而代之的是浮点 比较指令,可以根据浮点数的比较结果设置寄存器的值,并用于条件 分支。 A 扩展:原子扩展(RV32A)为 RISC-V 的原子操作指令集,为同步操作 提供了必要的支持。RV32A 扩展为不同的使用场景提供了两种对应的原 子操作。其中加载保留(lr)指令和条件存储(sc)指令保证了原子 的比较-交换(compare-and-swap)的实现;AMO 指令在多处理器系统 中的可扩展性比 lr 和 sc 更好,可以实现 I/O 通信中的总线原子读 写,从而简化设备驱动,提高 I/O 性能。 G 扩展:通用扩展(RV32G)为 RISC-V 基础整数指令集 RV32I 加上标 准扩展(M、F、D、A),统称 RV32G。 C 扩展:压缩扩展(RV32C)为 RISC-V 的压缩指令集。包括了与标准 32 位 RISC-V 一一对应的短指令,它们只对汇编器和链接器可见,因此 编译器编写者和汇编语言程序员可以忽略它们。以往的 ISA 设计在重
新设计短指令集时,会为处理器和编译器的设计增加负担,而RISC-V 通过上述设计避免了这一缺陷。 ●V扩展:向量扩展(RV32V)为RISC-V向量指令集,与其它指令集中的 单指令多数据流(SIM)指令不同的是,RV32V将内部向量寄存器的宽 度与指令集解耦,解决了SIM指令集每一代升级宽度时,带来的上层 软件适配问题。向量指令集支持向量计算、向量load/ store、向量条 件运算等操作。 RISC-V的特权模式架构的特点 与其它指令集一样,RISC-Ⅴ为操作系统和其它场景提供了更高的权限模 式。除了通常的用户模式(U模式)以外,RISC-Ⅴ架构还包括最底层的机器模 式(M模式)和为操作系统提供的监管者模式(S模式)。M模式是所有标准的 RISCⅤ处理器必须实现的,拥有对硬件的完全控制权。简单的嵌入式系统只需 要支持M模式即可,在此模式下可以处理异常和中断。M模式和U模式的组合 可以实现简单的基于地址寄存器比较的内存隔离,而更复杂的基于分页的虚拟 内存方案需要依靠S模式来实现。默认情况下,所有异常都会交由M模式处 理,但对于那些实现了S模式的系统,RISC-Ⅴ提供了一套异常委托机制,可以 选择性地将中断和同步异常交给S模式处理,完全绕过M模式,从而避免了异 常处理效率的降低。这两种权限模式各有一组控制状态寄存器(CSR),而嵌套 中断需要配合软件用栈实现。 3.3RISC-V基金会 RISC-V基金会(RISC- v Foundation)5是一个非盈利性组织,负责RISC-V 指令集架构及其软硬件生态的标准化、保护和推广。RISC-V基金会的会员可以 参与RISC-V指令集规范以及相关软硬件生态的开发,并决定RISC-V未来的推广 方向 RISC-Ⅴ基金会每年举办全球性大会,以整合其广阔的生态系统,探讨RISC V的最新项目与实现,并推动RISC-V指令集架构的未来发展。大会邀请顶尖科
14 新设计短指令集时,会为处理器和编译器的设计增加负担,而 RISC-V 通过上述设计避免了这一缺陷。 V 扩展:向量扩展(RV32V)为 RISC-V 向量指令集,与其它指令集中的 单指令多数据流(SIMD)指令不同的是,RV32V 将内部向量寄存器的宽 度与指令集解耦,解决了 SIMD 指令集每一代升级宽度时,带来的上层 软件适配问题。向量指令集支持向量计算、向量 load/store、向量条 件运算等操作。 RISC-V 的特权模式架构的特点: 与其它指令集一样,RISC-V 为操作系统和其它场景提供了更高的权限模 式。除了通常的用户模式(U 模式)以外,RISC-V 架构还包括最底层的机器模 式(M 模式)和为操作系统提供的监管者模式(S 模式)。M 模式是所有标准的 RISC-V 处理器必须实现的,拥有对硬件的完全控制权。简单的嵌入式系统只需 要支持 M 模式即可,在此模式下可以处理异常和中断。M 模式和 U 模式的组合 可以实现简单的基于地址寄存器比较的内存隔离,而更复杂的基于分页的虚拟 内存方案需要依靠 S 模式来实现。默认情况下,所有异常都会交由 M 模式处 理,但对于那些实现了 S 模式的系统,RISC-V 提供了一套异常委托机制,可以 选择性地将中断和同步异常交给 S 模式处理,完全绕过 M 模式,从而避免了异 常处理效率的降低。这两种权限模式各有一组控制状态寄存器(CSR),而嵌套 中断需要配合软件用栈实现。 3.3 RISC-V 基金会 RISC-V 基金会(RISC-V Foundation)5是一个非盈利性组织,负责 RISC-V 指令集架构及其软硬件生态的标准化、保护和推广。RISC-V 基金会的会员可以 参与 RISC-V 指令集规范以及相关软硬件生态的开发,并决定 RISC-V 未来的推广 方向。 RISC-V 基金会每年举办全球性大会,以整合其广阔的生态系统,探讨 RISCV 的最新项目与实现,并推动 RISC-V 指令集架构的未来发展。大会邀请顶尖科 5 https://riscv.org/
技公司和学术机构,讨论RISCⅤ的架构、开源实现和商业实现、软件、芯片、 向量和安全、应用和加速器、模拟器基础设施等等。 RISC-V基金会成立于2015年8月,会员条约于2016年12月形成。RISC-V 基金会遵循的原则包括: 1)RISC-V指令集及相关标准必须对所有人开放且无须授权 2)RISC-V指令集规范必须能够在线下载: 3)RISC-V的兼容性测试套件必须提供源码下载 为了保护RISC-V标准,只有基金会会员可以使用“RISC-V”及相关商标, 并且只能用于已经通过 RISC-V兼容性测试套件测试的产品 基金会的董事会由来自 Bluespec、谷歌、 Microsemi、英伟达、恩智浦半导 体、加州大学伯克利分校和西部数据的七名代表组成。董事会成员的变更须由董 事会投票决定。董事会可修改会员条约,须经过三分之二赞成票通过。董事会可 决定建立委员会来处理关于RISC-V的具体事务,并任命下属委员会的主席。目 前已经建立的委员会包括技术委员会和营销委员会 Foundation members RISC-V Platinum ③器。 bluespec coruS DRAPER 基M oogle Hewlett Packard C Microsemi Mellanox Enterprise Q DUALCOM Microsoft SiFive nvIDIA Rambus Cryptography Research 力 West Digital Gold, silver, Auditors AMD以 micro ANDES I Blockstream OIDT INTRINSIX ZUrich BLATTCE ② rInoa did."%ec Rumble Runtime MEDIATEH SS wntacore'Te KVectorBlox 图3. RISC-V基金会部分成员
15 技公司和学术机构,讨论 RISC-V 的架构、开源实现和商业实现、软件、芯片、 向量和安全、应用和加速器、模拟器基础设施等等。 RISC-V 基金会成立于 2015 年 8 月,会员条约于 2016 年 12 月形成。RISC-V 基金会遵循的原则包括: 1) RISC-V 指令集及相关标准必须对所有人开放且无须授权; 2) RISC-V 指令集规范必须能够在线下载; 3) RISC-V 的兼容性测试套件必须提供源码下载。 为了保护 RISC-V 标准,只有基金会会员可以使用“RISC-V”及相关商标, 并且只能用于已经通过 RISC-V 兼容性测试套件测试的产品。 基金会的董事会由来自 Bluespec、谷歌、Microsemi、英伟达、恩智浦半导 体、加州大学伯克利分校和西部数据的七名代表组成。董事会成员的变更须由董 事会投票决定。董事会可修改会员条约,须经过三分之二赞成票通过。董事会可 决定建立委员会来处理关于 RISC-V 的具体事务,并任命下属委员会的主席。目 前已经建立的委员会包括技术委员会和营销委员会。 图 3.RISC-V 基金会部分成员
RISC-V基金会目前有超过210名成员,包括机构、学术和个人会员,覆盖 25个国家,这些国家占据世界人口的55%。基金会自2015年成立以来,会员数 的年增长率超过100%当前的成员包括:中科院计算所、阿里巴巴、华为、谷歌 镁光、英伟达、髙通、三星、西部数据、日立、IBM、联发科、希捷、海力士等。 图3展示了RISC-V基金会的部分成员。 3.4 RISC-V研讨会/峰会 RISC-V研讨会( Workshop)一共举办了9届,举办了1届峰会 ( Summit),有来自全球20多个国家的共1100多名参会人员。往届研讨会的 相关信息在表1中列出。 表1.历届RISC-V研讨会的信息 届数|时间 地点 123 1|2015年1月美国加州蒙特里万豪酒店 2015年6月美国加州伯克利国际之家酒店 2016年1月 美国加州红木海岸 Oracle会议中心 2016年7月 美国马萨诸塞州麻省理工学院 52016年11月美国加州Goge山景园区 6 2017年5月 中国上海交通大学 2017年11月美国明尼苏达州西部数据公司 2018年5月 西班牙巴塞罗那 2018年7月 印度金奈 RISC-V研讨会的目的是向全社区通报全球各种RISC-V项目的最新活动, 并就RISC-V项目的未来步骤达成共识,同时举办训练营提供从RISC-V开发团 队了解RISC-V基础架构的机会。硏讨会和训练营中,展示了多个RISC-V流 片、FPGA板设计和相关软件工具的演示。研讨会的特色是讲座和海报展示,介 绍 RISC-V社区当时在公开提交期间收集的活动。 其中,第二届研讨会就RISC-V项目的未来步骤(包括 RISC-V基金会)达 成共识。第三届和第四届研讨会与RISC-VISA和RISC-V基金会的启动就未来
16 RISC-V 基金会目前有超过 210 名成员,包括机构、学术和个人会员,覆盖 25 个国家,这些国家占据世界人口的 55%。基金会自 2015 年成立以来,会员数 的年增长率超过 100%。当前的成员包括:中科院计算所、阿里巴巴、华为、谷歌、 镁光、英伟达、高通、三星、西部数据、日立、IBM、联发科、希捷、海力士等。 图 3 展示了 RISC-V 基金会的部分成员。 3.4 RISC-V 研讨会/峰会 RISC-V 研讨会(Workshop)一共举办了 9 届,举办了 1 届峰会 (Summit),有来自全球 20 多个国家的共 1100 多名参会人员。往届研讨会的 相关信息在表 1 中列出。 表 1.历届 RISC-V 研讨会的信息 届数 时间 地点 1 2015 年 1 月 美国加州蒙特里万豪酒店 2 2015 年 6 月 美国加州伯克利国际之家酒店 3 2016 年 1 月 美国加州红木海岸 Oracle 会议中心 4 2016 年 7 月 美国马萨诸塞州麻省理工学院 5 2016 年 11 月 美国加州 Google 山景园区 6 2017 年 5 月 中国上海交通大学 7 2017 年 11 月 美国明尼苏达州西部数据公司 8 2018 年 5 月 西班牙巴塞罗那 9 2018 年 7 月 印度金奈 RISC-V 研讨会的目的是向全社区通报全球各种 RISC-V 项目的最新活动, 并就 RISC-V 项目的未来步骤达成共识,同时举办训练营提供从 RISC-V 开发团 队了解 RISC-V 基础架构的机会。研讨会和训练营中,展示了多个 RISC-V 流 片、FPGA 板设计和相关软件工具的演示。研讨会的特色是讲座和海报展示,介 绍 RISC-V 社区当时在公开提交期间收集的活动。 其中,第二届研讨会就 RISC-V 项目的未来步骤(包括 RISC-V 基金会)达 成共识。第三届和第四届研讨会与 RISC-V ISA 和 RISC-V 基金会的启动就未来