Page 338 - 《软件学报》2021年第12期
P. 338

4002                                Journal of Software  软件学报 Vol.32, No.12, December 2021

         3    RISC-V 硬件平台

             RISC-V 依托的硬件平台可以含有如下组件.
             (1)    带有其他非兼容 RISC-V 核心(如,IP Core)的一个或多个兼容 RISC-V 的处理核心.
             (2)    固定功能加速器——这里加速器是指一种不可编程的固定功能单元,或者专用于特定任务的核心.
             (3)    各种物理内存结构.
             (4)    I/O 设备.
             (5)    组件通信与交互结构.
             从系统的角度看,这些硬件平台组件可以有多种组织形式,从单核心的微控制器到包含数千个节点的集群
         (每个节点都是一个共享内存的多核心服务器);甚至可以在小型片上系统(system-on-a-chip,简称 SoC)中组织成
         多层多处理器结构,来协助模块化开发或者提供子系统间的安全隔离.
             RISC-V 处理器是 RISC-V 硬件平台的主要研究对象,它可以提供相对全面的组件功能和真实的 RISC-V 执
         行环境.此外,RISC-V 模拟器能够在软件平台上模拟硬件执行环境,因此虽然自身属于上层 RISC-V 体系,但在研
         究中也应被视为 RISC-V 硬件平台的范围.本节将对 RISC-V 处理器和模拟器方面的主要研究成果进行介绍,并
         总结其特征和适用性.
         3.1   对RISC-V处理器的研究
             处理器的设计需要考虑如下问题.
             (1)  所支持的指令集.这代表了该处理器能够完成的功能范围,并包含了对于指令执行通路的需求.
             (2)  组成指令执行通路的组件.包括算术逻辑单元(arithmetic and logic unit,简称 ALU)、程序计数器
         (program counter,简称 PC)、寄存器组、缓存和存储单元等.
             (3)  指令的处理方式.包括控制信号、时钟周期、指令流水线等,以及由此衍生出的任务调度、中断/陷入/
         异常问题的处理、数据同步等问题.
             (4)  对于多核心处理器,还应考虑核心结构(同构或异构)、核间通信等方面的设计.
             根据应用场景的不同,RISC-V 处理器可以划分为通用处理器、嵌入式处理器、教学研究用处理器.通用处
         理器不针对特定应用场景,因此将支持最全的 RISC-V 指令集和最多的功能,如 SiFive 公司在 2016 年推出的 64
         位单发射五级流水线顺序处理器 Rocket           [25] .嵌入式处理器特别考虑了资源受限的嵌入式环境,往往需要支持 E
         扩展或 C 扩展以优化尺寸,权衡面积和性能需求,如 Zaruba 等人                [26] 在 2019 年实现的有序单发射 64 位微核心
         Ariane,支持 RV64GC 指令集.教学研究用处理器通常采用最精简的设计,只包含最基本的、必要的功能,以清晰
         地表现处理器的工作流程,如 Lowe-Power 等人          [27] 在 2019 年设计的单周期五级流水线顺序处理器 DINO CPU
         以及计算技术研究所包云岗团队在 2020 年公布的单发射九级流水线顺序处理器 NutShell                        [28] .
             经 RISC-V 社区统计   [29] ,目前公开发布并已经提交到社区的 RISC-V 处理器共计 107 种.根据这些处理器支
         持指令集的情况以及功能特性,本文按上述分类方法依次总结了其中较有代表性的一些处理器,并给出了相应
         的评价.具体内容见表 6~表 8.
             从表 6 中可以得知,Rocket、freedom、BOOM 等处理器支持的指令集更加全面,便于对接各类系统,适用性
         最为广泛;A70X 自带工具集,开发更方便;SCR5、RiscyOO、XuanTie910 等在性能方面更有优势;DarkRISCV、
         NEORV32、AX45、NEOL-V 等更专注于特定结构,可以相应地满足各自特殊的设计需求.
             嵌入式处理器的设计关键在于对有限资源的利用能力,或者对于资源受限环境的适应性.从表 7 可以看出,
         仅含 M 模式的 SCR1 和 SweRV EH2 可提供最基本的处理能力,相对适应性最强;Hummingbirdv2 E203、SHAKTI
         E-CLASS、Ibex 可适用于常规嵌入式环境;PicoRV32、XuanTie E906、CVA6 存在提供更多能力的可能,可以承
         担有更高能力要求的环境中的数据处理任务.
   333   334   335   336   337   338   339   340   341   342   343