【香山双周报 88】20251027 期
欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。我们期待您的贡献。
本次是第 88 期双周报。
香山成功举办了 MICRO 2025 tutorial!我们非常高兴能与大家在首尔相见,感谢每一位参会的朋友和关心香山发展的伙伴们!如果未能现场参与,欢迎大家访问 https://tutorial.xiangshan.cc/micro25/ 回顾本次 tutorial 的内容。香山的下一场 tutorial 将于明年初在澳大利亚举办的 HPCA 2026 会议上进行,期待与大家再次相见!
在此次 tutorial 中,我们进行了大规模的重构,主要包括:
? 完全重构的上手环节。新的上手环节使用 Jupyter Notebook 组织,进一步降低了解香山的门槛。所有内容都已开源到 https://github.com/OpenXiangShan/bootcamp,欢迎大家尝试 ? 完全重构的微架构介绍。相比于扁平化地介绍香山微架构现状,新的微架构部分着重介绍香山的设计哲学,帮助大家更好地理解香山的设计思路 ? 非常荣幸地邀请到 Nisa Bostanci 代表 Onur Mutlu 教授的团队分享 Ramulator!香山的 GEM5 模拟器现已集成 Ramulator
香山开发方面,前端修复数个 V3 BPU 重构后带来的性能 bug,同时推进取指侧对 2-fetch 的支持。后端继续进行 V3 开发与重构。访存完善了一部分 topdown PMU 与 CHIron 工具。
Tutorial 花絮
? 合影镇楼
? 10 月 17 日清晨 5:28,Mutlu 教授回复了我们的邀请,确认将出席并介绍 Ramulator ? 10 月 18 日晚,香山团队的同学在烤肉店修改 GEM5 部分的上手代码
? 10 月 19 日,tutorial 于上午 8:00 准时开始。由于时间较早,一开始参加的人数并不多 早八还是太超模了,看来大家都起不来。随着 tutorial 的进行,现场人数逐渐增多,最终坐满了整个屋子
?
近期进展
前端
? RTL 新特性 ? 启用 V3 BPU 的高级预测器 override 机制(TAGE 仅启用 BaseTable,RAS 未启用)(#5057) ? 新增 IBuffer 对 2-fetch 的接口支持(#5098) ? 重写 ABTB 快速训练接口(#5070) ? Bug 修复 ? 修复 MBTB 错误过滤取指块开头位置上的分支的问题(#5113) ? 修复 SC 训练逻辑相关问题(#5118) ? 修复 RAS 栈大小参数计算相关问题(#5132) ? 修复 WriteBuffer 写入索引相关笔误(#5134) ? 修复 FTQ resolve queue 中无效项被标记为 flushed 导致的 Bpu 训练丢失问题(#5107) ? 修复 IFU 内断言条件错误的问题(#5122) ? 时序优化 ? (V2)更换 TageBTable 和 SCTable 的双端口 SRAM 为单端口(#5094) ? 修改指令定界逻辑,由 IFU 取出指令数据后计算改为由 ICache 在重填时预先计算;IFU 流水级缩短(#5108) ? 面积优化 ? 支持 IBuffer 仅存储上电/重定向后遇到的第一条 exception(#5095) ? 代码质量 ? 移除 V2 的 brType 类型,统一使用 V3 BranchAttribute(#5076) ? 调试工具 ? 新增一些 BPU 性能计数器(#5112)
后端
? Bug 修复 ? 修复特定情况下 CSR 中 XIP 寄存器乱序读取造成的错误 (#5131) ? RTL 新特性 ? 实现在 IQ 出口对直接跳转指令拆分 uop 的方案(#5128) ? 将浮点物理寄存器增加到 256,robSize 和 rabSize 增加到 352 ? 新增 Vmove 功能单元,将需要搬数据的指令 uop 拆分修改为使用 Vmove 单元(#5126) ? 时序优化 ? 代码质量 ? 修改近期代码遗留问题,提升代码质量(#5135)
访存与缓存
? RTL 新特性 ? (V2)在 CoupledL2 中为 late prefetch 添加 topdown 接口(CoupledL2 #411) ? (V2)在 CoupledL2 中添加控制延迟时延的 csr 用于训练 L2 预取(CoupledL2 #434) ? (V2)添加 Berti 预取,重构了 prefetch 相关的 TopDownMonitor(CoupledL2 #435) ? (V2)添加用于检查 L2 预取和 Berti 预取的 api(Utility #128) ? MMU、LoadUnit、StoreQueue、L2 等模块重构持续推进中 ? 工具 ? 完善 CHIron 的功能
性能评估
我们使用 SimPoint 对程序进行采样,基于我们自定义的 checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差。
编译参数如下所示:
处理器及 SoC 参数如下所示:
相关链接
? 香山技术讨论 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/
编辑:徐之皓、吉骏雄、陈卓、余俊杰、李衍君
