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

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


         partition,简称 SP)TLB 和随机填充(random-fill,简称 RF)TLB.他们使用 Rocket 开源 IP 核实现的 RISC-V 处理器
         架构评估了所提出的安全 TLB.
             2020 年,Sehatbakhsh 等人 [145] 提出了一种模拟电磁侧信道信号的方法 EMSim,可以使用器件架构模型对电
         磁侧信道信号进行逐周期模拟,以定量分析侧信道泄露,从而为设计对侧信道攻击具有高弹性的系统打下基础.
         4.3.5    安全策略总结
             表 10 总结了本节提及的各类 RISC-V 系统中可用的安全策略.
                                 Table 10    Summary of RISC-V security mechanisms
                                         表 10   RISC-V 安全策略总结
             威胁类别         防御原理              优势或能力                劣势或注意事项             相关工作
                                                               要求对供应链各个环节                 [121]
                         供应链安全        从源头防止恶意微代码的注入                                 Keystone
            硬件微架构                                             都有足够的防护,波及面广
               攻击                    增强微码信息或代码执行信息的                                         [120]
                         微架构安全                                 力度有限,难以完全防御        Microcode CPU
                                             不透明度
                                       保证控制流转移目标范围;           粗粒度 CFI 无法彻底保护               [126]
                        控制流完整性                                                     PUFCanary
                                           技术相对成熟              控制流;细粒度成本较高
                                      规范内存边界,在内存布局层面           要求栈空间具有足够的                [54]
             内存攻击       基于内存保护                                                        MAC
             (程序劫持)                       提供保护,验证方便                 隔离性
                                     通过安全的硬件代码设计和制定             需要定制安全硬件,          HyperFlow [128] ,
                        基于安全硬件      信息流策略;可利用硬件信息进行防              成本相对较高            Morpheus [129] ,
                                      御,减少对软件应用运行的干扰                               TrustFlow-X [130]
                       内存安全性约束           有效对抗 DOP 攻击            需结合辅助硬件使用             RSE [132]
                                                                                    Hardscope [132] ,
                                     从硬件层面根本上保证强隔离性           需要引入额外的辅助硬件,                [133]
                          辅助硬件            和强对抗性,简化                成本相对较高            Shakti-T  ,
             内存攻击                                                                    FIXER [126]
                                       通过加密设计提供轻量级           只针对已知攻击向量,保护范               [134]
                        内存保护单元                                                       MPU
                                          但健壮的对抗方式                  围有限
                          程序验证      理论上支持对任意内存模型的检测             并非直接的对抗手段            HMC [135]
                          电磁对策         有效对抗基于电磁的攻击            需结合具体威胁模型分析           对策集成  [143]
            侧信道攻击         时间对策         有效对抗基于时间的攻击            需结合具体威胁模型分析           安全 TLB [144]
                         测试与检验            标准明确,判断准确             并非直接的对抗手段         EMSim [145] ,FCA [141]
         5    RISC-V 应用场景分析

             本节将列举一些利用 RISC-V 促进特定领域应用研究的案例,并对 RISC-V 在其中所能发挥的作用以及应
         用要点进行简要的分析.其中,第 1 个应用            [115] 描述了一种对 RISC-V 指令集自身的扩展场景;第 2 个应用           [19] 介绍
         了利用 RISC-V 实现特定领域功能的系统设计场景;第 3 个应用                 [146] 研究了一种发掘 RISC-V 系统潜力、提升系
         统性能的方法;第 4 个应用       [147] 围绕系统安全主题,讨论了一种利用 RISC-V 实现安全批准的实施方案.
         5.1   RAE:一种远程原子扩展

         5.1.1    场景描述
             在图形分析、机器学习、数据驱动的科学计算等新兴的数据密集型应用的推动下,HPC 系统的结构逐渐复
         杂化,大量数据集被映射到离散的节点中,以实现分布式存储和计算.这种数据分布将导致频繁的跨节点数据事
         务.尤其是在全局原子操作中,跨节点的读写修改等操作包含了多个操作步骤和特定的原子性管理,导致了大量
         开销.解决开销问题需要一种有效的通信方法,并结合相应的软件基础设施来实现对离散组件的集成,减少跨设
         备的冗余软件例程.为此,在 2020 年,Wang 等人提出了一种 RAE 的设计                [115] ,为基于 RISC-V ISA 架构的远程原
         子操作提供了内在的 ISA 级指令和架构支持,最终改善 HPC 系统的性能.
             RAE 首先引入了已有的 xBGAS 扩展指令集以支持全局内存寻址功能.然后,设计了一系列原子指令,通过
         xBGAS 寻址来执行远程原子操作.这些操作共有 7 类:fetch-and-add、fetch-and-xor、fetch-and-or、fetch-and-and、
         fetch-and-max、fetch-and-min、compare-and-swap,每一类都包含一条远程原子操作指令和一条对应的本地原子
         指令,均采用 R 型指令格式.因此,RAE 扩展共包含了 14 条 R 型原子操作指令.图 7 以 fetch-and-add 指令为例,
   344   345   346   347   348   349   350   351   352   353   354