首页 > 最新动态 > 【香山双周报】20250106期
最新动态
【香山双周报】20250106期
2025-01-088

【香山双周报 67】20250106 期

欢迎来到我们的双周报专栏,本次是香山双周报专栏的第 67 期。我们将通过这一专栏,定期介绍香山的开源进展,希望与大家共同学习、一起进步。

近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,前端修复 ICache MSHR 冲刷后 corrupt bit 未冲刷的问题,后端修复 lui/fld 指令融合在目的寄存器是零寄存器时行为出错的问题,访存和缓存完成 Svnapot(支持 2 的幂次大小页的地址翻译)扩展的实现并合入主线。本期还更新了昆明湖架构近期性能。

近期进展

前端

  • ? Bug 修复
    • ? 修复一个 MMIO 取指 + 16b 指令下等待 commit 条件的问题 (#4072)
    • ? 修复一个 ICache MSHR 冲刷后 corrupt bit 未冲刷的问题 (#4112)
  • ? 功能
    • ? ICache ECC 故障注入(RAS) (#4044)

后端流水线

  • ? Bug 修复
    • ? 修复 CSR 指令未能报出地址翻译异常的问题 (#4118)
    • ? 修复 hideleg 寄存器中 LCOFI 的读写依赖问题 (#4070),NEMU 也进行相应修复 (NEMU #733)
    • ? 修复 CSR 改为部分可流水后未能正确响应冲刷流水信号的问题 (#4079)
    • ? 修复在用户模式 time 寄存器更新出错 (#4132)
    • ? 修复 lui/fld 指令融合在目的寄存器是零寄存器时行为出错的问题 (#4131)
    • ? 修复 Hint 类指令错误融合的问题 (#4108)
    • ? NEMU 修复 SGEI 中断优先级异常问题 (#733)
  • ? 时序/面积优化
    • ? 将浮点/向量 Regfile 改为分 4 块 (#4088)
    • ? 修复 rob 中出队刷新流水线以及向量异常时序问题 (#4075)
    • ? 将判断向量复杂译码判断信号改为由指令编码直出 (#4066)
    • ? 将 CSR 输出到前端/访存的读写地址/数据打拍 (#4119)
  • ? 工具
    • ? 添加 Top-Down 后端相关硬件性能计数事件(#4122

访存与缓存

  • ? RVA23 Profile
    • ? 完成 Svnapot(支持 2 的幂次大小页的地址翻译)扩展的实现并合入主线 (#4107)
  • ? Bug 修复
    • ? 修复 UncacheBuffer 有空项时仍无法入队导致卡死的 Bug (#4096)
    • ? 修复内存返回数据与异常检查错拍导致误报 guest page fault 的 Bug (#4090)
    • ? 修复若干向量有关的 Bug,主要包括非对齐、异常处理和部分边界条件等 (#4084)、(#4085)、(#4086)、(#4101)、(#4103)
    • ? 修复 LoadUnit 中,因 fast replay 导致的死锁问题 (#4102)
    • ? 修复一系列 SnpOnce*/SnpStash* 相关的嵌套 Bug (CoupledL2 #306)、(CoupledL2 #308)、(CoupledL2 #309)
    • ? 修复 MCP2 打开的情况下,替换算法 retry 信号没有维持 2 拍的 Bug (CoupledL2 #303)
  • ? 预取
    • ? 修复 VBOP 预取访问 TLB 时 PMP / PMA 检查的连线错误 (CoupledL2 #312)
  • ? PPA 优化
    • ? 删除 MainPipe 中重复信号 (#4117)
    • ? 减少 LoadQueueReplay 项数,面积减小 2.85%,功耗降低 1.59% (#4082)
  • ? 工具
    • ? OpenLLC 支持 Top-Down 性能分析 (#4113)

评估

我们采用 SimPoint 对程序进行采样,基于我们自定义的 Checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。SPEC CPU2006 使用 gcc 12 进行编译,开启 O3 优化,采用 jemalloc 内存库,设置 SPECfp 2006 的 -ffp-contraction 选项为 fast,指令集为 RV64GCB。我们使用 1 月 6 日 718a93f 版本的香山处理器(缓存大小配置为 64KB L1 ICache + 64KB L1 DCache + 1MB L2 + 16MB L3,访存单元为 3ld2st 流水线,在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:

上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差!

后记

香山开源处理器正在火热地开发中,新的功能与新的优化在持续添加中,我们将通过香山双周报专栏定期地同步我们的开源进展。感谢您的关注,欢迎在后台留言与我们交流!

在香山昆明湖架构研发后期,性能会每月公布一次,敬请期待!

相关链接

  • ? 香山技术讨论 QQ 群:879550595
  • ? 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions
  • ? 香山文档:https://xiangshan-doc.readthedocs.io/

编辑:李燕琴、林志达、满洋、刘泽昊、冯浩原、马月骁

审校:香山宣传工作组

点我访问原文链接