跳转至

【香山双周报 105】20260623 期

欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。本次是第 105 期双周报。

RISC-V 欧洲峰会圆满落幕!中国科学院计算技术研究所副所长、北京开源芯片研究院首席科学家包云岗研究员与大家分享了他的参会感受,以及对 RISC-V 发展前景的展望,欢迎大家与我们交流讨论!

关于香山近期开发进展,前端继续优化时序;后端和访存修复了一些功能 bug,同时优化了 DCache 与 Sbuffer 性能;XSAI 支持了 BF16 扩展,HBL2 实现了 TL-TL 与 TL-CHI 的 PutFullData。

近期进展

前端

  • PPA 优化
  • 优化 UTAGE 训练及预测时序(#5517
  • 优化 SC 计数器累加时序(#5999
  • 优化历史寄存器时序(#6076
  • 优化 BPU pc 相关路径时序(#5945
  • 优化 IBuffer 入队逻辑时序(#6047
  • 代码质量
  • 重构 BPU Replacer,简化冗余逻辑(#6008
  • 重构 MBTB TargetFix,参数化可开关,与 UBTB/ABTB 对齐(#6007
  • 调试工具
  • 修复 FTQ perfQueue 相关性能计数器逻辑(#6101

后端

  • Bug 修复
  • (V2)修复 M 态注入 SEI 时的优先级编号,按 AIA 规范将其设为 S 级优先级 256(#6010
  • (V2)修复 mret 进入 VU 模式时 vsstatus.SDT 未被清除的问题(#6074
  • (V2/V3)修复 vstopi Candidate3 使能条件(#6030#6031
  • (V2)修复 Candidate3 与 Candidate5 同时使能时的 iid 选择(#6086
  • (V2)修复 fence 指令 opcode 匹配(#6096
  • (V2)修复 ROB 中 commit_w 的 X-state 传播(#6070
  • (V2)修复 IGPF 过程中 mtval2 生成错误的问题(#6058
  • (V2)修复 MNretmnstatus.MNPP/MNPV 的处理(#6075
  • (V2)按陷入类型约束 VS hvictl 中断原因的生成,并完善 WFI 唤醒相关的中断 pending 判断(#6067
  • (V2)修复 trapInstInfo 暂存逻辑,避免 flush 与更老 CSR trap 同周期到达时遗漏陷入指令信息(#6084
  • (V2)将 HLV/HLVX/HSV 访存异常标记为虚拟访存陷入,以正确更新 htval/mtval#6071
  • (V2)修复 PMP/PMA 在 CSRRS/CSRRC 读-改-写时的基值选择(#6051

访存与缓存

  • Bug 修复
  • 修复了 cbo 执行早于指令提交的问题(#6081
  • 修复了 loadUnit 的性能计数器(#5939
  • 添加指针越界断言(#5795
  • 性能优化
  • 实现了 DCache MissQueue 的并行入队,同一周期允许最多 4 个 miss_req(#5887
  • 优化了 Sbuffer 的请求合并逻辑(#6117
  • 时序优化
  • 修复了 Memblock 的时序(#5963

XSAI

  • RTL 新特性
  • 支持 RISC-V BF16 扩展(XSAI #72
  • 缩放因子存储改用香山的 SRAMTemplate,与香山统一(CUTE #20
  • 实现 TL-TL 与 TL-CHI 的 PutFullData(HBL2 #3

性能评估

处理器及 SoC 参数如下所示:

参数 选项
commit 8c4daa743
日期 2026/06/18
L1 ICache 64KB
L1 DCache 64KB
L2 Cache 2MB
L3 Cache 16MB
访存单元 3ld2st
总线协议 CHI
内存配置 DDR4-3200

性能数据如下所示:

SPECint 2006 @ 3GHz GCC15 XSCC SPECfp 2006 @ 3GHz GCC15 XSCC
400.perlbench 50.55 49.66 410.bwaves 104.21 95.87
401.bzip2 28.61 29.56 416.gamess 57.76 54.82
403.gcc 57.06 40.22 433.milc 69.94 68.81
429.mcf 71.47 62.54 434.zeusmp 74.95 67.02
445.gobmk 39.90 40.89 435.gromacs 37.90 34.82
456.hmmer 54.84 65.42 436.cactusADM 80.64 91.86
458.sjeng 39.36 40.48 437.leslie3d 59.90 59.70
462.libquantum 141.89 312.28 444.namd 43.55 45.46
464.h264ref 66.56 72.86 447.dealII 69.14 74.72
471.omnetpp 43.55 42.80 450.soplex 58.74 69.98
473.astar 32.92 32.64 453.povray 76.71 70.42
483.xalancbmk 81.13 92.62 454.Calculix 44.54 40.60
GEOMEAN 53.57 57.00 459.GemsFDTD 69.93 70.40
465.tonto 54.49 37.22
470.lbm 128.45 148.55
481.wrf 56.39 42.33
482.sphinx3 60.94 63.63
GEOMEAN 64.55 62.40

编译参数如下所示:

参数 GCC15 XSCC
编译器 gcc15 xscc
编译优化 O3 O3
内存库 jemalloc jemalloc
-march RV64GCB RV64GCB
-ffp-contraction fast fast
链接优化 -flto -flto
浮点优化 -ffast-math -ffast-math
-mcpu - xiangshan-kunminghu

注:我们使用 SimPoint 对程序进行采样,基于我们自定义的 checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差。

相关链接

编辑:徐之皓、吉骏雄、陈卓、孙际儒、李衍君