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

 

【香山双周报 68】20250120 期

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

近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,后端修复边界条件下,rob 发生重定向时没有成功刷新 rob 表项的问题,访存和缓存修复重压场景下 MissQueue 满导致 MMU 卡死的 Bug。

近期进展

前端

  • ? 功耗
    • ? 添加双端口 SRAM 两个 clock 分别门控的选项,默认不分别门控 (#4125)

后端流水线

  • ? Bug 修复
    • ? 修复 xTIP (时钟中断等待位) 更新失败,导致错误产生中断的问题 (#4157)
    • ? 修复边界条件下,rob 发生重定向时没有成功刷新 rob 表项的问题 (#4153)
    • ? 添加对 htimedelta csr 初始化,以防止软件读取采用未初始化信息造成错误 (#4145)
    • ? 修复 mnret 部分输出信号未连线的问题 (#4194)
    • ? 添加 AIA 拓展遗漏的权限检查 (#4166)
    • ? 整理对 CSR 的访问异常,分类为多个模块共同完成 (#4146)
    • ? 修复重定向时快照选择在极端情况出错的问题 (#4197)
    • ? 修复 unorder reduction 指令掩码错误问题 (#4197)
    • ? 修复 reduction 指令 f16 数据选择错误问题 (#4181)
  • ? Debug Module
    • ? 新增 hartReset 功能,在多核调试下,允许重启指定核 (#4134)
  • ? 工具
    • ? 支持硬件可综合的三级分类 Top-Down 计数器 (#4122)
    • ? 添加 mcorepwr/mflushpwr 两个自定义 CSR 寄存器以控制功耗 (#4164)

访存与缓存

  • ? 功能
    • ? 添加对 uncache buffer 支持新请求合并的功能 (#4154)
  • ? CHI 总线
    • ? 添加对 Issue E.b 中新增 Snoop 事务 SnpQuery 的支持 (CoupledL2 #323)
    • ? 添加对不同 CHI 版本的代码隔离 (CoupledL2 #333)、(CoupledL2 #315)
    • ? 添加 DataCheck 与 Poison 对于 UC 情况的支持,并修正其初始化选项 (CoupledL2 #329)、(CoupledL2 #335)、(CoupledL2 #337)
  • ? 预取
    • ? 添加 L2 Cache 预取的 CSR 寄存器控制 (CoupledL2 #324)
  • ? Bug 修复
    • ? 修复 PageCache 和 itlbRepeater 中 X 态传播的两处 Bug (#4174)、(#4195)
    • ? 修复重压场景下 MissQueue 满导致 MMU 卡死的 Bug (#4191)、(#4202)
    • ? 修复 StoreQueue 中,向量 store 没有被 flush 的 Bug (#4139)
    • ? 修复 SnpStash 在特定情况下未 probe L1 的错误问题 (CoupledL2 #326)
    • ? 修复一系列 WriteEvictOrEvict 相关错误 (CoupledL2 #311)、(CoupledL2 #316)、(CoupledL2 #327)
    • ? 修复一系列 CMO 相关错误 (CoupledL2 #317)、(CoupledL2 #325)
    • ? 修复 CCID 错误赋值问题 (CoupledL2 #330)
  • ? PPA 优化
    • ? 时序
      • ? Load Unit 中部分关键信号改为由寄存器直出 (#4144)
      • ? 优化 Load Unit 写回数据生成逻辑 (#4167)
      • ? 优化 L2 Cache 中 SRAM 出口到寄存器门控信号的关键路径 (CoupledL2 #321)
    • ? 面积
      • ? 缩减 LQReplay 项数,在 LQReplay 占用率达到一定阈值时让 IQ 发射最老的 load (#4183)

评估

我们采用 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 流水线,总线协议为 TileLink,在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:

注:本次双周报的性能评估代码版本与上次双周报相同,将会在 2 月 3 日发布下次双周报时更新最新分数。

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

后记

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

相关链接

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

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

审校:香山宣传工作组

 

点我访问原文链接