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

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


         Key words:    RISC-V; architecture design; processor; performance improvement; system security

         1    前   言

             现代信息系统的设计正在出现几个新的趋势:(1)  注重软硬件协同的设计模式.例如,英伟达公司推出
                                                                       [2]
                              [1]
         CUDA 通用并行计算架构 ,发挥 GPU 的计算能力提升系统性能;Costan 等人 提出了硬件扩展 Sanctum,协助
         软件系统实现强隔离功能.(2)  面向需求的系统精准定制化.例如,近年来出现的 AI 加速芯片,通过芯片架构的定
                                         [3]
         制,满足神经网络推理或训练的算力需求 .在这样的趋势下,探究系统软硬件的多种组合方式,设计出最合适应
         用场景的系统架构,具有较高的理论价值和实践意义.与此同时,为了适应计算环境与应用环境的不断变化,计
         算机软硬件的发展也存在一种逐渐开放的趋势.以软件为例,从早期代码高度集中、与机器高度耦合,到 1964 年
                                                        [5]
                       [4]
         Multics 操作系统 推动系统的通用化进程,UNIX 操作系统 开放用户任务、开启内核时代,再到 Mach 微内核
               [6]
         的问世 、GNU 项目的发起以及 Linux 内核的公开发布,开源软件思想深入人心,体系结构也逐渐走向设计公
         开化、内容多样化、管理多元化、研发社区化、功能可定制化的局面.在这样的背景下,如何有效整合多种软
         硬件资源,发挥开放系统的独特优势,精准满足用户任务需求,成为关注重点.指令集架构(instruction set
         architecture,简称 ISA)作为软件与硬件之间的交互规范,定义了软硬件的组合或整合方式.在上述趋势和背景下,
         迫切需要一种新的指令集,既满足软硬件的深度协同融合和灵活组合,又具备开放特性.
                                                                                  [7]
             RISC-V 是一种新兴的开源精简指令集架构,由加州大学伯克利分校在 2010 年首次发布 .RISC-V 的出现
         和迅速发展有其必然的原因,它是建立在现有的体系结构(如 x86、ARM、MIPS 等)经长期发展所暴露出的种
         种问题之上,顺应现代信息系统设计需求和体系结构发展趋势而生的:(1)  现有体系结构往往缺乏开放性,存在
         许多知识产权、政治干预等非技术性问题.例如,Intel 公司持有 x86 架构的专利(1978 年开始),使用 x86 指令集
                                                                              [8]
         相关技术需要向其支付高昂的授权费用,对 x86 指令集的模拟也将引发法律上的争议 .这种封闭的态势与体
         系结构发展的开放趋势背道而驰,抬高了系统研发与成果转化的成本,阻碍了技术的推广和进步.RISC-V 具有
                                                                                [9]
         开源、免费、开放、自由的特点,其基金会总部于 2020 年 3 月正式迁往永久中立国瑞士 ,更是释放了坚持服
         务全世界的信号,使任何组织和个人都可以不受地缘政治影响、自由平等地使用 RISC-V.(2)  现有体系结构经
         过长期发展,多个版本的迭代,积累了许多历史遗留问题.基于各历史版本的技术产品在市场生态中共存,使得
         新版本的研发必须考虑向后兼容性,去支持一些过时的定义和其实不需要的技术特性.例如,AMD64 是对 32 位
         x86 架构的 64 位扩展,面向 64 位开发与应用环境;但它同时仍要向后兼容 32 位甚至 16 位的 x86 架构,使早期
         x86 架构下开发的应用同样可以在 AMD64 系统中正常运行.这种积重难返的状态削弱了现有体系结构的可定
         制化能力,难以满足现代信息系统对于多样化的工作环境与功能表现的需求.RISC-V 作为一种从零开始设计的
         新体系结构,吸收了现有各体系结构优点的同时,去除了对历史遗留问题的顾及和旧有技术的依赖;进一步
         地,RISC-V 采用模块化设计,并提供大量自定义编码空间以支持对指令集的扩展,从而允许开发者根据资源、能
         耗、权限、实时性等不同需求,基于部分特定的模块和扩展指令集进行精细化的系统设计研发,体现了强大的
         系统可定制化能力.(3)现有主流架构的文档资源种类繁多、内容冗长,学习与维护的成本较高,使开发者难以在
         短时间内掌握所需的技术,遇到问题时也不易迅速定位到相关的信息区间.例如,ARMv8-A 架构的官方手册                                   [10]
         仅一卷就多达 8 538 页;相比之下,RISC-V 官方手册仅有两卷 329 页,包括 238 页的指令集手册                   [11] 和 91 页的特
         权架构手册     [12] ,文档精简,学习门槛更低,更有助于研发团队的不断壮大和技术实力的不断进步.
             因此,对于 RISC-V 的研究已成为近年来学术界和工业界的一大热点,涌现了许多突破性成果,如西部数据
         公司研发的基于 RISC-V 的通用架构 SweRV           [13] 、阿里巴巴公司研发的 64 位高性能嵌入式 RISC-V 处理器
         Xuantie-910 [14] 、Koch 等人设计的嵌入式开源 FPGA(field  programmable gate array,现场可编程门阵列)框架
         FABulous [15] 、中国科学院计算技术研究所在 RISC-V 中国峰会发布的开源高性能 RISC-V 处理器核“香山”                     [16] 、
         上海交通大学开源的基于 RISC-V 的可信执行环境安全系统“蓬莱”                    [17] .其中也包括了对 RISC-V 与不同应用领
         域结合方式的探索,如 Kadomoto 等人        [18] 利用 RISC-V 芯片改善了无线总线接口技术,以促进对于小型机器人的
         研究; Di Tucci 等人 [19] 将 RISC-V 应用于基因组处理,提出了专用领域架构 SALSA.这些系统、工具都是利用了
   324   325   326   327   328   329   330   331   332   333   334