【香山双周报 62】20241028 期
欢迎来到我们的双周报专栏,本次是香山双周报专栏的第 62 期。我们将通过这一专栏,定期介绍香山的开源进展,希望与大家共同学习、一起进步。
近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,前端修复了 ECC 到 Bus Error Unit 路径上的 Mux1H,后端 VS/S/M 模式双重陷入拓展 (Ss/mdbltrp) 正在合入主线,访存和缓存部分修复了向量异常相关的 Bug。本期还更新了昆明湖架构近期性能。
近期进展
前端
-
Bug 修复
- ECC 到 Bus Error Unit 路径上的 Mux1H 修复 (#3784)
-
时序
-
Code Style
后端流水线
-
Bug 修复
- 修复 H 拓展 gpa 获取不一致的问题以及修复 Misalign 访存相关 TLB 的问题 (#3681, #3679)
- 修复向量访存异常在写回时,如果有更老的异常时,isEnqExcp 应置零的问题 (#3778)
- 修复 ebreak 指令触发 breakpoint 异常时,以及压缩指令发生非法指令异常时,xtval 更新错误的问题 (#3769, #3762),NEMU 也完成了对应修改 (#599)
- 修复向量访存 trigger 相关问题 (#3772, #3745)
- 修复 CSR 异常分开存储导致的错误拉高问题 (#3771)
- 修复 xcause 的中断选择策略与 xtopi 不一致的问题(#3753)
- 修复 NEMU 在部分指令设置 xstatus.FS 为 Dirty 时的行为与 RTL 不一致的问题 (#606, #605, #598, #595, #591, #588)
- 修复 Misalign 访存相关 TLB 的问题 (#3731)
-
时序/功耗优化
- 优化唤醒,取消以及访存依赖时序 (#3737)
- 评估后端面积优化点以及潜在收益
-
RVA23 Profile
访存与缓存
-
CHI 总线
- CHI-L3: OpenLLC + OpenNCB 合入主线(配置:KunminghuV2Config)(#3672)
-
Bug 修复
-
PPA 优化
- MemBlock 内部和端口时序持续优化,目前内部违例优化至 -45ps,近期优化包括:去除 Dcache s2tag 到 dataArray 之间的关键路径、优化 MemBlock 向 L2 Cache 发送 CMO 请求的时序、优化 LoadUnit 写回端口的选择逻辑,以及非对齐访存的异常写回逻辑等 (#3748)
- 对 DCache SRAM 添加 clock gating,memory 的内部功耗降低 51%
-
工具
- CHIron:实现以二进制形式存储 CHI Log 信息,相较于文本格式存储,解析速度快 6 倍,文件空间占用减少 83%
- TL-test-new:添加 OpenLLC 的 CI 流程,支持 MMIO 测试
- L2 HPM(性能计数器):根据物理设计调整连线 (#3747)
评估
我们采用 SimPoint 对程序进行采样,基于我们自定义的 Checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。SPEC CPU2006 使用 gcc 12 进行编译,开启 O3 优化,采用 jemalloc 内存库,设置 SPECfp 2006 的-ffp-contraction 选项为 fast,指令集为 RV64GCB。我们使用 10 月 26 日 b3c3582 版本的香山处理器(缓存大小配置为 64KB L1 ICache + 64KB L1 DCache + 1MB L2 + 16MB L3,访存单元为 3ld2st 流水线),在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:
| SPECint 2006 est. | @ 3GHz | SPECfp 2006 est. | @ 3GHz |
|---|---|---|---|
| 400.perlbench | 37.85 | 410.bwaves | 75.02 |
| 401.bzip2 | 25.53 | 416.gamess | 43.49 |
| 403.gcc | 46.49 | 433.milc | 43.61 |
| 429.mcf | 57.50 | 434.zeusmp | 56.80 |
| 445.gobmk | 30.18 | 435.gromacs | 37.38 |
| 456.hmmer | 40.83 | 436.cactusADM | 48.77 |
| 458.sjeng | 30.18 | 437.leslie3d | 43.82 |
| 462.libquantum | 125.07 | 444.namd | 34.69 |
| 464.h264ref | 57.81 | 447.dealII | 74.53 |
| 471.omnetpp | 40.01 | 450.soplex | 54.54 |
| 473.astar | 29.00 | 453.povray | 55.93 |
| 483.xalancbmk | 74.74 | 454.Calculix | 18.32 |
| GEOMEAN | 44.49 | 459.GemsFDTD | 37.82 |
| 465.tonto | 38.21 | ||
| 470.lbm | 102.05 | ||
| 481.wrf | 42.68 | ||
| 482.sphinx3 | 52.71 | ||
| GEOMEAN | 47.42 |
上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差!
后记
香山开源处理器正在火热地开发中,新的功能与新的优化在持续添加中,我们将通过香山双周报专栏定期地同步我们的开源进展。感谢您的关注,欢迎在后台留言与我们交流!
在香山昆明湖架构研发后期,性能会每月公布一次,敬请期待!
相关链接
- 香山技术讨论 QQ 群:879550595
- 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions
- 香山文档:https://xiangshan-doc.readthedocs.io/
编辑:李燕琴、林志达、满洋、刘泽昊、冯浩原、马月骁
审校:香山宣传工作组