首页 > 最新动态 > 【 RISC-V 论文解读】香山开源高性能RISC-V处理器设计与实现
最新动态
【 RISC-V 论文解读】香山开源高性能RISC-V处理器设计与实现
2025-06-184

处理器的设计与实现

香山开源高性能RISC-V



01
前情简要


近年来以RISC-V为代表的开源指令集引领了开源处理器的设计潮流。人们普遍认为,开源硬件生态系统可以降低开发成本并降低创新门槛。然而,目前国内外的开源处理器尚未满足学术界和工业界的应用需求。开发高性能处理器是一项极具挑战性的任务。为了实现大规模应用,此类 IP 需要具备先进的乱序微架构以实现高性能,强大的验证基础以实现可靠的质量,以及高度可配置性以适应各种场景。

来自中国科学院计算技术研究所的团队,在《计算机研究与发展》期刊2023年第60卷第3期发表了题为《香山开源高性能RISC-V处理器设计与实现》的论文,介绍香山开源高性能处理器的开发历程,讨论前两代微架构的实现细节与设计演进,并系统展示开发香山过程中的各类挑战与经验。





02
研究背景

随着摩尔定律濒临终结,先进制造工艺节点研发成本上升,昂贵的流片费用使得芯片开发成本也相应提升,投入风险越来越高。如今,研发一款通用处理器芯片往往需要投入上百人年,耗费上亿元研发经费,只有少数大企业才有能力开发处理器芯片。 因此,业界正在寻求降低芯片开发门槛的方案。

开源芯片为上述问题提供了一个方向,成为近年来业界关注的新热点。基于开源模式,多方可联合开发共性技术,构建支持芯片开发的基础设施,从而降低开发门槛。 然而,不少学者和企业反映,国内外现有的开源RISC-V处理器项目尚未满足学术界和工业界的高性能需求。


03
设计总览

为了弥补这一短板,香山开源高性能RISC-V处理器于2020年6月启动,以Linux在操作系统领域的影响力为目标,期望建立一个在学术界和工业界广泛应用的体系结构创新开源平台。第一代“雁栖湖”微架构成功流片,性能达到预期,SPEC CPU2006实测分值为7.01分/GHz,同频性能达到ARM Cortex A73水平。第二代“南湖”微架构SPEC CPU2006分值约为10.42分/GHz,同频性能达到ARM Cortex A76水平。

香山第一代“雁栖湖”微架构如下图所示。前端供指单元采用4级流水线紧耦合设计,分支预测实现了简化版的TAGE-SC-L分支预测器。指令从指令缓冲部件取出后分别流经译码级、重命名级和分派级,每级均可并行处理最多6条指令。架构实现了分离的通用寄存器堆和浮点寄存器堆,在进入保留站之前读取数据。保留站是完全分布式的,单个容量为16项,支持高效的乱序发射与执行。在访存子系统中,香山包含2条load流水线和2条store 流水线,配备高性能内存管理单元,支持乱序访存。

香山第二代“南湖”微架构如下图所示,它相比第一代“雁栖湖”微架构的主要变化包括:

1) 前端 设计采用解耦的取指单元和分支预测架构,提高指令供给吞吐和分支预测准确率;

2) 功能部件新增 RISC-V位操作(RVB)和标量加密运算(RVK)指令集扩展,并实现了兼容IEEE-754标准的高性能浮点运算部件;

3) 访存子系统新增RISC-V物理内存保护和自定义的可配置物理内存属性,并优化了访存流水线结构;

4) 缓存子系统实现了非包含式的高性能 L2/L3缓存,提升并发度并降低延迟。

在两代微架构的设计迭代中,香山团队深刻体会到高性能处理器的设计是一门平衡的艺术,具体体现在2个维度:

1) 宏观上. 微架构设计需要平衡前端指令供给、 后端乱序执行与访存数据供给3个方面,任何一方的性能短板都会因木桶效应导致整体性能下降,因此盲目增大配置参数是不可取的,需要针对性能瓶颈优化才能提升整体性能。

2) 微观上. 流水线设计需要平衡每一级的功能和时序. 处理器性能由IPC和频率共同决定,流水级设计不平衡会导致频率下降从而影响整体性能。因此需要预先评估设计复杂度,规划各级逻辑功能并与后端团队紧密协作调整时序。

实践表明,高性能处理器的微架构性能优化过程复杂而漫长,可总结为2条原则:一是挖掘硬件结构的并行度,包括指令级并行、访存级并行等;二是优化设计和算法以降低串行任务的延迟,例如设计更流畅的数据通路、采用投机与推测等。上述2条原则均在香山的设计与演进中得以体现。


04
实验结果

香山实现了一套基于仿真的快速性能评估方法,通过大规模并行仿真具有代表性的程序检查点来评估架构设计的性能。通过该性能评估方法,可在3~5天内评估“雁栖湖”微架构的SPEC分值,评估结果与硅后的性能测试的对比如下图所示。实践表明,该方法平均误差为 5%~10%,部分误差来源于芯片DRAM与仿真模型的不一致。

“南湖”微架构单核仿真性能评估如下图所示。仿真评估分值达到了SPECint 9.550分/GHz、SPECfp 11.085分/GHz, 在2GHz下的总分为20.844分. 同频性能超过了Sifive P550等商业处理器,达到ARM Cortex A76水平。


05
结语

香山项目自2021年6月发布以来成为国际上最活跃的开源芯片项目之一。国内外企业界和学术界开始使用香山,有的参与产品化工作,有的开展前沿研究。代码开源、平台开放的开源理念是香山联合开发模式的基石。香山处理器的主线设计,从“雁栖湖” “南湖”到后续的“昆明湖”等微架构,都是开源开放的。

香山不仅开源设计代码和文档,还开源各类开发基础设施,实现开发平台的开放. 基于该平台,企业可实现“竞争前合作”,联合开发处理器高性能架构和基础设施,亦可基于香山的设计代码和开发工具做二次开发,满足各类定制化需求, 一定程度上解决芯片的碎片化难题。 香山有望成为连接工业界和学术界的桥梁。首先由研究人员提出创新想法,在香山代码上实现,每年1~2次机会进行流片验证; 此后,联合开发团队将会对初步验证的架构开展产品化改造工作,最终形成稳定的高质量工业级IP。

目前, 香山团队与合作伙伴企业共同建立了联合研发团队,联合开发第三代香山——“昆明湖”微架构,标志着香山及其开源模式得到了产业界的认可。


06
参考文献

[1] Eeckhout L. Is Moore's Law Slowing Down? What's Next?[J]. IEEE Micro, 2017, 37(4):4-5.

[2] Waterman A, Lee Y, Patterson D, et al. The RISC-V Instruction Set Manual. Volume 1: User-Level ISA, Version 2.1[R]. Berkeley, CA: University of California, Berkeley, 2016.

[3] Asanovic K, Avizienis R, Bachrach J, et al. The rocket chip generator, UCB/EECS-2016-17[R]. Berkeley, CA: University of California, Berkeley, 2016.

[4] Zhao J, Korpan B, Gonzalez A, et al. Sonicboom: The 3rd generation berkeley out-of-order machine[C]// Fourth Workshop on Computer Architecture Research with RISC-V. 2020[2022-12-28]. http://people.eecs.berkeley.edu/~krste/papers/SonicBOOM-CARRV2020.pdf

[5] Wang Huaqiang, Zhang Zifei, Zhang Linjuan, et al. OSCPU/NutShell: RISC-V SoC designed by students in UCAS github repository[EB/OL]. [2022-12-28]. https://github.com/OSCPU/NutShell

[6] Bachrach J, Vo H, Richards B, et al. Chisel: Constructing hardware in a Scala embedded language[C]// Proc of the 49th Annual Design Automation Conference. San Francisco: IEEE, 2012: 1216-1225.

[7] Seznec A, Michaud P. A case for (partially) TAgged GEometric history length branch prediction[J]. Journal of Instruction Level Parallelism, 2006, 8(1): 1-23.

[8] Waterman A, Hauser J, Liu Jiuyang, et al. berkeley-hardfloat github repository [EB/OL]. [2022-12-28] https://github.com/ucb-bar/berkeley-hardfloat.

[9] Kessler R E. The Alpha 21264 Microprocessor[J]. IEEE Micro, 1999, 19(2):24-36.

[10] Chrysos G Z, Emer J S. Memory Dependence Prediction using Store Sets[J]. ACM SIGARCH Computer Architecture News, 2002, 26(3):142-153.

[11] Chen A, Schmidt C, Zhao J, et al. Sifive/block-inclusivecache-sifive[EB/OL]. [2022-12-28].  https://github.com/sifive/block-inclusivecache-sifive.

[12] Yu Zihao, Liu Zhigang, Li Yiwei, et al. Practice of Chip Agile Development: Labeled RISC-V[J]. Journal of Computer Research and Development, 2019, 56(1):35-48 (in Chinese)(余子濠, 刘志刚, 李一苇,等. 芯片敏捷开发实践:标签化RISC-V[J]. 计算机研究与发展, 2019, 56(1):35-48)

[13] Xu Yinan, Yu Zihao, Tang Dan, et al. Towards Developing High Performance RISC-V Processors Using Agile Methodology[C]// 2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO). IEEE, 2022: 1178-1199.

[14] Perelman E, Hamerly G, Biesbrouck M V, et al. Using SimPoint for accurate and efficient simulation[J]. Acm Sigmetrics Performance Evaluation Review, 2003, 31(1):318-319.

[15] Xu Yinan, Wang Huaqiang, Gou Lingrui, et al. OpenXiangShan/XiangShan: Open-source high-performance RISC-V processor[EB/OL]. [2022-12-28]. https://github.com/OpenXiangShan/XiangShan.









点我访问原文链接