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

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

         的 RTL 缺陷测试平台,并基于所提出的测试平台,分析了一些安全验证方法的有效性,确认了一种现有方法无法
         检测到的特定类型漏洞,称为 HardFails.随后在 2020 年,Nelson 的团队又提出了将形式化方法应用于
         BPF(Berkeley packet filter)虚拟机的即时编译器 JIT(just in time compiler)方法 [108] ,证明可以在一个大型的未验
         证系统中构建一个经验证的组件,并基于 32 位 RISC-V 开发了一个用于编写 JIT 并证明其正确性的框架
         Jitterbug.
         4.2   RISC-V系统性能优化
             系统优化的主要目标在于提升系统的运行效率,或者减少对资源和能源的消耗.系统运行的各个环节都可
         能涉及到对性能的评价,而其中最主要的优化需求集中在处理器、内存、通信、能耗 4 个方面.本节即围绕这 4
         个方面,对 RISC-V 系统性能优化的思路和有关成果进行详述.
         4.2.1    处理器利用率提升
             处理器中的性能优化主要体现在其利用率的提升.处理器利用率反映了处理器有效工作时间在总运行时
         间中的占比,是一项描述处理器繁忙程度的指标.减少处理器空闲等待的时间,提升处理器利用率,将推动系统
         整体的计算能力或数据处理能力的提升,使系统能够在更短时间内完成既定工作,或者在相同时间内完成更多
         工作.
             “冯·诺依曼瓶颈”是影响 CPU 利用率的一类典型问题.在冯·诺依曼结构                     [79] 的计算机系统中,指令与数据被
         不加区分地存放在内存,使得取指令和取数据不能同时进行,否则将引起访存混乱.CPU 在执行运算前后,都需
         要额外的时间等待数据完成存取,而不能一直处于工作状态.因此,冯·诺依曼结构中的 CPU 存在一个相对较低
         的利用率上限,无论硬件制造工艺如何提升,都无法再获得更高的 CPU 利用率.
             相应地,在 2017 年,包云岗等人         [109] 提出一种标签化冯·诺依曼体系结构 LvNA(labeled von  neumann
         architecture),在经典冯·诺依曼结构上增加了一套基于标签机制的可编程接口,允许向硬件传递更多软件信息,
         使硬件可以根据软件需求动态调整管理策略.2019 年,该团队主导的“标签化 RISC-V”开发项目                               [110] ,基于
         RISC-V Rocket  Chip 实现了 LvNA,显示了 RISC-V 在促进敏捷开发、提升编码效率方面的优势.在 2021 年,
         Schuiki 等人 [111] 提出了一种轻量级的 RISC-V 扩展“流语义寄存器(stream semantic registers,简称 SSR)”,允许在
         任何指令中编码加载和存储操作,而不再需要依赖显式的加载与存储指令,从而给出了一种解决单发射处理器
         中存在“冯·诺依曼瓶颈”、影响 CPU 利用率问题的方案.实验结果显示,采用 SSR 扩展的处理器比起未采用的相
         同处理器,顺序代码单核心运行速度提升 3 倍,即,集群中实现相同的性能可减少 3 倍的核心数目;多核心集群的
         能效提高 2 倍,指令获取的数量减少 3.5 倍,指令缓存功耗减少 5.6 倍.
         4.2.2    内存优化
             内存的设计直接制约着系统整体的组织形式和工作方式,在数据存储、通信、同步、处理效率等多方面都
         对系统有关键性的影响.因此,内存优化问题始终是系统性能研究的一大重点.
             例如,多核处理器中,随着芯片上核心数量的增加,会出现“缓存行乒乓”问题,即,当多个 CPU 共享同一缓存
         行中的变量时,不同 CPU 对该变量的频繁读写会导致其他 CPU 的缓存行频繁失效.共享内存中,硬件缓存一致
         性范式的线程同步算法,其性能扩展问题会受到缓存行乒乓的阻碍.2019 年,Dogan 等人                         [112] 为了解决多核处理
         器的缓存行乒乓问题,提出了一种针对数据的硬件内移动计算(moving computation,简称 MC)模型,该模型将共
         享数据固定在专用核上,以实现数据局部性优化.研究人员还在 RISC-V 上建立了多核仿真环境,评估了 MC 模
         型在最多 1024 核尺度下的性能扩展优势.评估结果显示,与自旋模型、原子模型等现有模型相比,对每个数据点
         标准化的完成时间平均分别提升了 60%、27%.
             扩展基全局地址空间(extended base global address space,简称 xBGAS)是 2018 年 Leidel 等人 [113] 为了解决
         可扩展的高性能计算架构在操作离开单个设备域时常常遭遇不必要的延迟的问题,所提出的一种 RISC-V 指令
         集微架构扩展.该扩展可以为常见的高性能计算操作提供紧耦合的支持.由于其提供了从基本指令访问全局共
         享内存地址空间的可能性,从而开创了一条系统优化的新思路,出现了更多以 xBGAS 为基础的研究.
             例如,2019 年 Williams 等人在 xBGAS 的基础上,提出了一种构建集体通信库的 RISC-V 微架构扩展方
   339   340   341   342   343   344   345   346   347   348   349