【香山双周报 78】20250609 期
欢迎来到我们的双周报专栏,本次是香山双周报专栏的第 78 期。我们将通过这一专栏,定期介绍香山的开源进展,希望与大家共同学习、一起进步。
近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,后端修复 sstateenx 未正确生成为 Verilog 模块的问题,访存修复非对齐且跨页的访存请求发生异常时,写入 xtval 的异常地址错误的 Bug。本期还更新了昆明湖架构近期性能。
近期进展
前端
无
后端流水线
? Bug 修复 ? 修复 xtopi 寄存器异步更新导致 difftest 同步出错的问题:暂时跳过 xtopi 比对 (#4742) ? 修复 sstateenx 未正确生成为 Verilog 模块的问题 (#4723) ? 将核内 trace 对 xret 指令的统计从指令提交阶段提前到重命名阶段 (#4736) ? 工具 ? 添加自定义 HINT 指令作为 FPGA 仿真调试触发器 (#4776)
访存与缓存
? Bug 修复 ? 修复在 DCache 中发生 cache 别名时,Probe 请求阻塞只考虑了物理地址,没有考虑别名位,导致卡死的 Bug (#4741) ? 修复 DCache MetaArray 读写冲突,但没有在 RAR 中作相应标记,导致 Load 读到旧值的 Bug (#4795) ? 修复若干与 DCache ECC 与自定义故障注入有关的 Bug (#4753)、(#4755)、(#4782) ? 修复非对齐且跨页的访存请求发生异常时,写入 xtval 的异常地址错误的 Bug (#4751) ? 修复 uncache 访问非法地址没有正确报 hardware error 的 Bug (#4774) ? 修复 difftest 框架中,uncache store 和 memory store 对比时机不同导致的 diff 出错 (#4779) ? 修复 IFU 在生成物理地址时,部分场景下误使用了错误的地址低位作为 offset 的 Bug (#4748) ? 修复两阶段地址翻译过程中,G-Stage 已经触发 gpf,但错误地同时上报 pf 和 gpf 的 Bug (#4754) ? 修复 PMA 在根据请求 cmd 类型做地址检查时信号错拍,导致权限检查出错的 Bug (#4769) ? 修复部分 corner case 情况下,TLB 的命中逻辑没有考虑两阶段页大小不同的情况导致误匹配的 Bug (#4780) ? 修复 TLB 的 handle_block 函数中,生成 gpaddr 在部分场景下逻辑有误的 Bug (#4793) ? 将 TXRSP、TXDAT 通道的仲裁逻辑修改为轮询,以避免拥塞场景下低优先级请求超时问题 (CoupledL2 #415)
评估
我们采用 SimPoint 对程序进行采样,基于我们自定义的 Checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。SPEC CPU2006 使用 gcc 12 进行编译,开启 O3 优化,采用 jemalloc 内存库,设置 SPECfp 2006 的 -ffp-contraction 选项为 fast,指令集为 RV64GCB。我们使用 6 月 6 日 2272661 版本的香山处理器(缓存大小配置为 64KB L1 ICache + 64KB L1 DCache + 1MB L2 + 16MB L3,访存单元为 3ld2st 流水线,总线协议为 TileLink),在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:
上述分数为基于程序片段的分数估计,非完整 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/
编辑:李燕琴、林志达、满洋、刘泽昊、冯浩原、马月骁
审校:香山宣传工作组