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

刘畅  等:RISC-V 指令集架构研究综述                                                           4007


             (1)    存储一致性与缓存共享问题.
             (2)    RTL 电路大幅增长带来的复杂性问题.
             (3)    组件依赖性问题.
             (4)    通信延迟问题.
             针对上述挑战,研究人员作出了许多有益尝试,提出了相应的解决方案.
             例如,对于存储一致性问题与 RTL 电路问题,2017 年,Manerkar 等人            [97] 介绍了一种用于缩小微架构/RTL 存
         储一致性模型(memory consistency model,简称 MCM)验证差距的方法和工具 RTLCheck.RTLCheck 给定了一组
         关于 MCM 行为的微架构公理、一个用于弥补 RTL 设计与用户之间差距的的映射,并自动生成 SystemVerilog
         断言,来验证其是否满足指定测试程序的微架构规范.作者团队在 RISC-V V-scale 处理器的多核版本上评估了
         RTLCheck,验证了其有效性.
             对于组件依赖性问题,2020 年 Kurth 等人       [98] 提出了一个模块化、高效、开源的原子单元(atomic unit,简称
         ATUN)架构,它可以在不同的内存结构层次中灵活实施,使任何级别的内存层次结构都可以实现可扩展的
         AMO.他们在一个具有 32 核 RISC-V 处理器的 FPGA 原型上对 ATUN 进行了演示,证明了该架构的有效性.
             Pulte 等人 [99] 则在 2019 年提供了可用于 RISC-V 的更抽象的操作模型 Promising-ARM/RISC-V 及其交互式
         探索工具,以彻底检查多种并发行为.
             关于以通信延迟为代表的系统性能问题,将在第 4.2 节展开讨论.
         4.1.3    处理器集群系统
             处理器集群系统由于需要对多个节点统筹管理,因此在设计时往往需要考虑多方面因素,包括节点的高性
         能、容错能力、可扩展性、稳定性、节点间耦合程度等                    [100] .例如,2021 年,Glaser 等人 [101] 描述了一个轻量级的、
         硬件加速的同步和通信单元(synchronization and communication unit,简称 SCU)的设计方案,并将其集成到了一
         个 8 核心的 RISC-V 处理器集群之中,使其性能平均提升了 23%、能效平均提升了 39%.
             其中,集群各节点之间的耦合程度是处理器集群系统设计中的一个重点问题,它将影响到节点的功能划
         分、节点间通信频率、单个作业规模等多个设计问题的决策.如 Shi 等人                        [102] 在 2019 年提出了一种专用架构
         E-LSTM,将嵌入式 RISC-V CPU 与 LSTM 协处理器进行紧耦合,来适应芯片面积和数据访问带宽有限的应用环
         境,最终对处理吞吐量实现了 2.2 倍的提升.
         4.1.4    测试与验证
             由于涉及到硬件成本问题,系统的设计方案需要经过测试和验证,确认其功能是否正确完整、性能是否达
         标、是否具备足够的安全性和稳定性后,才能大规模投入生产.系统的测试是指,在目标实验环境中对系统的各
         项指标数据进行提取,探索其可达程度范围的过程;系统的验证则是在给定一个预期表现后,判断系统的表现是
         否与之相符的过程.二者都是对系统进行评估的有效手段.
             在系统设计的任何一个环节都需要有与之对应的测试或验证方法来保障其正确性.比如,在内存问题
         上,2019 年,Armstrong 等人 [103] 为包括 RISC-V 在内的 3 种主流架构的大部分顺序行为提供了严格的语义模型,
         并使用 ISA 语义的自定义语言 Sail 实现了这些模型.他们还将 RISC-V 模型集成到了 RMEM 工具中,可使用户
         模式下的内存并发探索更加容易进行,为软件验证建立了稳固的基础.
             在处理器架构层面,2019 年,Deng 等人          [104] ,提出了一个用于安全处理器架构的设计时安全验证框架
         SecChisel.该框架以 Chisel 语言和工具为基础,并在设计时使用信息流分析来验证架构的安全性.在用 AES 和
         SHA 模块扩展的 RISC-V Rocket 芯片上对该框架进行了评估.Nelson 等人            [105] 也在 2019 年提出了一种用于系统
         软件开发自动验证器的框架 Serval,并使用 Serval 为包括 RISC-V 在内的 4 种指令集构建了自动验证器.
             在集群网络层面,2018 年 Khamis 等人      [106] 提出了一种片上网络(networks-on-chips,简称 NoC)硬件仿真和测
         试台加速的协同建模框架,用于对各种基于网络方案的 NoC 进行验证和评估.其中,通信量通过开源 RISC-V 指
         令集架构注入或自行生成,来作为处理块(processing tile).
             在系统安全策略方面,2019 年 Dessouky 等人       [107] 构建了一个基于 RISC-V SoC 的、可被真实世界软件利用
   338   339   340   341   342   343   344   345   346   347   348