首页 > 最新动态 > 【香山双周报 110】MICRO 2026 Workshop 征稿开启
最新动态
【香山双周报 110】MICRO 2026 Workshop 征稿开启
2026-09-045

 

【香山双周报 110】20260902 期

欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。本次是第 110 期双周报。

关于香山近期开发进展,前端修复了多个分支预测与取指问题,并优化了 uBTB 训练及 IFU/ICache 时序;后端推进了 V3 寄存器堆相关重构;访存与缓存修复了多个问题,并继续推进 V3 开发;XSAI 修复了矩阵译码、访存和操作数唤醒问题,并完善了 DiffTest 与 CI;基础设施方面,增强了 FPGA DiffTest、NEMU/QEMU checkpoint 以及 GSIM 构建和仿真能力,并持续推进 XS-GEM5 模型对齐和性能探索。

社区贡献者 muke101 通过 GitHub Issue 向我们提供了 PHAST 内存依赖预测算法的 gem5 开源实现,在此特别致谢。XS-GEM5 在该实现基础上进行了进一步的重构与优化。

同时向大家预告一则消息:香山团队将联合新加坡国立大学的 Trevor E. Carlson 教授,在希腊举行的 MICRO 2026 会议期间举办题为 Agile Development and Verification for Chips 的专题研讨会(workshop)。研讨会定于 10 月 31 日举行,现面向社区公开征稿。欢迎访问投稿网站(https://workshop.xiangshan.cc)了解详情并投稿,期待届时与大家相聚希腊,共同交流与探讨!

近期进展

前端

  • ? Bug 修复
    • ? 修复前端对 canonical PC 地址的检查,并增加相关仿真测试(#6340
    • ? 在 IFU redirect 的 canTrain条件中补充 notCfiTaken信号(#6398
    • ? 在 TAGE 重置 useful counter 时清空待处理的写请求,避免旧请求覆盖重置结果(#6377
    • ? 修复 TAGE 使用 base prediction 时重复读取预测表的问题(#6356
    • ? 修复 BPU S1 和 S3 均预测 not taken 时可能误触发 s3_override的问题(#6417
    • ? 使用训练访问而非预测访问更新 BTB 替换状态(#6348
  • ? 性能优化
    • ? 按预测表的训练状态维护 UseAltOnNa,降低分支别名干扰和寄存器开销(#6328
    • ? 同时使用 resolve 和 fast train 路径训练 uBTB,减少错误预测重定向后的额外气泡(#6237
  • ? PPA 优化
    • ? 提前计算 t0_firstMispredictMask,优化 FTQ 到 BPU train cache 的写入时序(#6375
    • ? 移动 pre-decode 和 maybeRvc逻辑并寄存 ICache 数据,优化 IFU/ICache 指令对齐路径时序(#6220
  • ? 代码重构
    • ? 将 vtype生成逻辑从 Decode 移至 IBuffer,使每条指令携带对应的 vtype和 specvtype#6376
    • ? 使用 PNR 指针判断 2-prefetch 和 2-fetch 条件,替代与 BPU 指针间的固定距离判断(#6378

后端

  • ? 代码重构
    • ? 使用物理寄存器索引的低位作为 banked regfile 的 bank index,均衡各 bank 的条目分配,并避免末个 bank 为空时编译失败(#6357
    • ? 将 vtype生成逻辑从 Decode 移至 IBuffer,使每条指令携带对应的 vtype和 specvtype进入后端(#6376

访存与缓存

  • ? RTL 新特性
    • ? 将 openLLC 容量配置扩大到 32 MB(#6401
    • ? 实现并集成独立的 L3 stash 预取路径,包括 L1 侧桥接、CHI StashOnceShared 请求及 openLLC stash refill 处理(XSCache #25#6274
    • ? 新增 TLB、请求过滤器、PTW 和 L2TLB 完成路径的性能计数器,并修正 PageCache 命中统计条件(#6383
    • ? 新增 F-POP L2 预取反馈控制器,根据命中、延迟、污染和竞争反馈调节各类预取器(XSCache #24
  • ? Bug 修复
    • ? 对齐前端与 MemBlock 的 CSR 变更 TLB flush 延迟,避免旧 epoch 的 PTW 请求跨越 flush 边界(#6421
    • ? 修复 L3 预取接收端口的生成条件,并在编码前检查普通 MSHR TxnID 是否侵入 stash 预留空间(XSCache #28
    • ? 修复非最老的跨页非对齐 store 注入 tail 请求后持续阻塞最老请求所导致的死锁(#6382
    • ? 补齐预取请求使能向量,使六个预取器的请求使能保持同步(XSCache #27
    • ? 仅在 MissEntry 请求有效时允许 secondary miss 合并(#6308
    • ? (V2)在 VSegment 接管 DCache load port 0 时终止尚未完成的硬件预取请求(#6389
  • ? 时序优化
    • ? 将 DCache WritebackQueue 的 release 仲裁从轮询策略改为最低索引优先策略(#6379

XSAI

  • ? Bug 修复
    • ? 修复 MLCT 转置数据布局和 MSC/MSCT 的 C MatrixReg 读地址(XSAI #106CUTE #38
    • ? 修复 msetcfg/mgetcfg误译码(XSAI #107
    • ? 修复矩阵访存 AccessAckData响应与 HintQueue 状态不同步问题(XSAI #110XSAICache #6
    • ? 修复 Mx 操作数延迟写回漏唤醒导致 MLS 指令永久阻塞的问题(XSAI #111
  • ? 代码质量
    • ? 清理未使用的矩阵提交和调度反馈接口(XSAI #113
    • ? 优化 CI:并行化 EMU 与 nightly 回归(XSAI #114XSAI #116
  • ? 调试工具
    • ? DiffTest 支持 AME mcfg状态对比(XSAI #107difftest #944NEMU #1172
    • ? 支持 16-byte store checker 事件(XSAI #112
    • ? 处理 MMA 操作数获取失败,并改进 AMU 事件诊断(difftest #926difftest #927

基础设施

  • ? FPGA DiffTest
    • ? 支持运行时动态配置 CPU AXI 各通道延迟(difftest #950
    • ? 修复 DiffTest Squash 数据通路重复握手问题(difftest #946
    • ? 支持 FPGA 过滤调试价值低、面积开销大的验证信号(difftest #948
    • ? FPGA 划片约束支持 OpenLLC,并更新昆明湖 flash 初始化固件(env-scripts #162
    • ? 修复 FPGA 跨片路径及时钟异步路径约束,支持按固定 CPU/RTC 比例调整运行时钟频率(env-scripts #159env-scripts #161
  • ? NEMU 参考模型
    • ? 在 CI 中增加 nexus-am RVH 裸机回归测试(NEMU #1162
    • ? 修复 RVH final TLB 命中时未恢复 MBMC 页表层级的问题(NEMU #1171
    • ? 修复 Linux 开启 THP 时,按地址执行 SFENCE.VMA未完整失效大页对应 HostTLB 条目的问题(NEMU #1175
  • ? 切片
    • ? 开启 Linux THP 透明大页模式,提升部分 workload 的性能(workload-builder #54
    • ? QEMU 支持 UART16550 串口,并与香山平台的串口地址及参数对齐(qemu #17
    • ? libcheckpoint 支持配置串口地址(LibCheckpoint #27
    • ? 改进 QEMU profilingv2 插件,通过 nemu_trap显式启动 profiling,提速 23%(qemu #16
    • ? 优化 NEMU SimPoint profiling 热路径,提速约 20%(NEMU #1178
  • ? GSIM 仿真器
    • ? 新增 --threads参数控制 FIRRTL 解析器工作线程数,并根据进程可用 CPU 数量限制线程上限(gsim #119
    • ? 完善 CI 与发布流程,引入 Dependabot、统一依赖安装,并支持多 LLVM 版本及 ARM64 构建(gsim #121
    • ? 优化一维数组赋值的代码生成,在满足条件时使用 memcpy替代逐元素复制,显著降低生成代码的编译耗时(gsim #125

XS-GEM5

  • ? 模拟器对齐
    • ? CDP 预取配置对齐(XS-GEM5 #1060
    • ? BPU S1 行为对齐(XS-GEM5 #980
    • ? 2-fetch 对齐(XS-GEM5 #1072
    • ? Virtual StoreQueue 对齐实现(XS-GEM5 #991
    • ? LSU 可参数化配置代码重构(XS-GEM5 #1042
  • ? 新特性探索
    • ? MDP 算法 PHAST(XS-GEM5 #1008
    • ? SMT:一拍同时预测两个线程的 fetch_block(XS-GEM5 #1052
    • ? PairTAGE(2Taken)实现(XS-GEM5 #830
  • ? 基础设施
    • ? 优化预取调度,提升模拟器速度(XS-GEM5 #1071
    • ? 优化 ROB 及 FTQ 代码,提升模拟器速度(XS-GEM5 #1067
    • ? CI 维护,更新至 GCC16 相关切片(XS-GEM5 #1064
    • ? CI 维护,新增 ASan 及 UBSan 的冒烟测试(XS-GEM5 #1073

性能评估

处理器及 SoC 参数如下所示:

参数
选项
commit
53a957667
日期
2026/08/21
L1 ICache
64KB
L1 DCache
64KB
L2 Cache
2MB
L3 Cache
16MB
访存单元
3ld2st
总线协议
CHI
内存配置
DDR4-3200

性能数据如下所示:

SPECint 2006 @ 3GHz
GCC16
XSCC
SPECfp 2006 @ 3GHz
GCC16
XSCC
400.perlbench
55.02
53.33
410.bwaves
123.07
105.77
401.bzip2
29.89
30.60
416.gamess
58.70
55.81
403.gcc
58.27
41.61
433.milc
71.84
68.77
429.mcf
72.01
62.81
434.zeusmp
77.33
67.78
445.gobmk
43.70
42.34
435.gromacs
40.04
35.10
456.hmmer
54.59
67.12
436.cactusADM
85.01
93.51
458.sjeng
41.66
41.74
437.leslie3d
61.20
61.31
462.libquantum
138.17
305.05
444.namd
44.25
45.26
464.h264ref
69.92
75.51
447.dealII
64.71
79.14
471.omnetpp
48.18
47.76
450.soplex
59.78
72.28
473.astar
33.06
32.50
453.povray
78.25
73.65
483.xalancbmk
85.35
92.62
454.Calculix
41.80
40.77
GEOMEAN
55.75
58.70
459.GemsFDTD
74.41
73.41



465.tonto
55.70
37.80



470.lbm
127.10
146.69



481.wrf
58.65
44.97



482.sphinx3
61.39
64.02



GEOMEAN
66.14
63.98

编译参数如下所示:

参数
GCC16
XSCC
编译器
gcc16
xscc
编译优化
O3
O3
内存库
jemalloc
jemalloc
指令集配置
基于 RVA23(禁用向量扩展)
RV64GCB
-ffp-contraction
fast
fast
链接优化
-flto
-flto
浮点优化
-ffast-math
-ffast-math
-mcpu
-
xiangshan-kunminghu

注:我们使用 SimPoint 对程序进行采样,基于我们自定义的 checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差。

相关链接

  • ? 香山技术讨论 QQ 群:879550595
  • ? 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions
  • ? 香山文档:https://docs.xiangshan.cc/
  • ? 香山用户手册:https://docs.xiangshan.cc/projects/user-guide/
  • ? 香山设计文档:https://docs.xiangshan.cc/projects/design/

编辑:李衍君、曾锦鸿、杨泽辰、张韩乐、游昆霖、甄好、燕翼鸣

 

点我访问原文链接