转自公众号:香山开源处理器
http://mp.weixin.qq.com/s?__biz=Mzg5MTY4MjgyNg==&mid=2247486717&idx=1&sn=9f517a07d24e36b4adb0580f6a085c16
【香山双周报 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/
编辑:李燕琴、林志达、满洋、刘泽昊、冯浩原、马月骁
审校:香山宣传工作组