【香山双周报 73】20250331 期
欢迎来到我们的双周报专栏,本次是香山双周报专栏的第 73 期。我们将通过这一专栏,定期介绍香山的开源进展,希望与大家共同学习、一起进步。
近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,前端修复指令预取流水线对于高位地址异常的处理,后端修复 trigger 触发以及异常产生时,指令融合未被停止的问题,访存和缓存修复若干 CoupledL2 违背 CHI 协议的一致性问题。本期还更新了昆明湖架构近期性能。
近期进展
前端
后端流水线
- Bug 修复
- 修复 trigger 触发以及异常产生时,指令融合未被停止的问题 (#4439)
- 进一步修复 amocas.q 指令卡死的问题 (#4435)
- 修复指令融合译码单元在被无效时,仍然输出有效融合信息的问题 (#4456)
- 修复 reset 后,non-reg 中断等待 difftest 框架同步错误的问题 (#4449)
访存与缓存
-
Bug 修复
-
修复 MMU 中,与高位地址检查、异常处理、Svnapot 扩展相关的一系列问题 (#4422)、(#4448)、(#4453)、(#4454)、(#4455)、(#4471)、(#4472)、(#4473)
- 修复 NEMU 作为多核 ref 时,开启虚拟化场景下的 Bug (NEMU #835)
- 修复若干 Uncache、非对齐、异常混合场景的 Bug (#4426)、(#4441)、(#4442)
- 修复 NEMU 在 PBMT 将内存属性由 cacheable 覆盖为 IO/NC 时,原子指令和非对齐访存没有报异常的 Bug (NEMU #833)
- 修复若干 CoupledL2 违背 CHI 协议的一致性问题 (CoupledL2 #390)、(CoupledL2 #392)、(CoupledL2 #395)
- 添加 L2 Cache 退出维护一致性状态前对 WFI(Wait For Interrupt) 状态的检查 (CoupledL2 #385)
-
修复若干 CHI 协议中 RespErr 字段处理的相关问题 (CoupledL2 #384)、(CoupledL2 #394)
-
时序/面积优化
- 调整 L2 Cache SRAM(tag) 规格 (CoupledL2 #388);添加 SRAM 控制接口 (CoupledL2 #389)
评估
我们采用 SimPoint 对程序进行采样,基于我们自定义的 Checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。SPEC CPU2006 使用 gcc 12 进行编译,开启 O3 优化,采用 jemalloc 内存库,设置 SPECfp 2006 的 -ffp-contraction 选项为 fast,指令集为 RV64GCB。我们使用 3 月 28 日 0e64db5 版本的香山处理器(缓存大小配置为 64KB L1 ICache + 64KB L1 DCache + 1MB L2 + 16MB L3,访存单元为 3ld2st 流水线,总线协议为 TileLink),在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:
| SPECint 2006 est. | @ 3GHz | SPECfp 2006 est. | @ 3GHz |
|---|---|---|---|
| 400.perlbench | 35.85 | 410.bwaves | 66.93 |
| 401.bzip2 | 25.49 | 416.gamess | 40.90 |
| 403.gcc | 46.64 | 433.milc | 45.30 |
| 429.mcf | 58.07 | 434.zeusmp | 51.77 |
| 445.gobmk | 30.25 | 435.gromacs | 33.65 |
| 456.hmmer | 41.60 | 436.cactusADM | 46.21 |
| 458.sjeng | 30.39 | 437.leslie3d | 45.99 |
| 462.libquantum | 122.51 | 444.namd | 28.88 |
| 464.h264ref | 56.56 | 447.dealII | 73.41 |
| 471.omnetpp | 39.51 | 450.soplex | 51.98 |
| 473.astar | 29.22 | 453.povray | 53.43 |
| 483.xalancbmk | 71.97 | 454.Calculix | 16.37 |
| GEOMEAN | 44.13 | 459.GemsFDTD | 36.38 |
| 465.tonto | 36.72 | ||
| 470.lbm | 91.22 | ||
| 481.wrf | 40.64 | ||
| 482.sphinx3 | 48.59 | ||
| GEOMEAN | 44.53 |
上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差!
后记
香山开源处理器正在火热地开发中,新的功能与新的优化在持续添加中,我们将通过香山双周报专栏定期地同步我们的开源进展。感谢您的关注,欢迎在后台留言与我们交流!
在香山昆明湖架构研发后期,性能会每月公布一次,敬请期待!
相关链接
- 香山技术讨论 QQ 群:879550595
- 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions
- 香山文档:https://xiangshan-doc.readthedocs.io/
- 香山用户手册:https://docs.xiangshan.cc/projects/user-guide/
- 香山设计文档:https://docs.xiangshan.cc/projects/design/
编辑:李燕琴、林志达、满洋、刘泽昊、冯浩原、马月骁
审校:香山宣传工作组