跳转至

【香山双周报 83】20250818 期

欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。我们期待您的贡献。

本次是第 83 期双周报。

在过去的两周,前端继续进行 V3 的 RTL 开发,同时在模型上探索分支预测的设计。后端与访存缓存修复了一系列功能 bug。后端还进行了 V3 开发的准备工作,主要包含一些代码清理和前后端接口重构。

近期进展

前端

  • RTL 新特性
  • 初步支持 IFU 2-fetch;优化时序(#4917
  • 合入 BPU V3 第四部分(#4946
    • 移植 V2 RAS
    • 移植 V2 ITTAGE(初稿)
    • 支持 WriteBuffer 多端口访问;接入到 ABTB 及 MBTB
    • 修复 PHR 推测更新逻辑;增加 PHR 历史 difftest
  • Bug 修复
  • 正确设置 ICache TileLink 总线的 MemBackType、Alias 域(#4943,部分移植自 V2 #4898
  • 模型探索
  • 探索 TAGE-SC 可落地方案
  • 分析 2-taken 性能
  • 代码质量
  • 迁移 ICache 到新参数系统(#4934
  • 清理 BPU 过时代码和相关参数(#4946

后端

  • RTL 新特性
  • 更改后段内部分 Bundle 的命名格式(#4921#4937
  • 允许 FTQ 中最后一项的指令进行压缩(#4931
  • 在后端中检查 BJU 的跳转目标预测(#4932
  • Bug 修复
  • (V2)修复 PMA 寄存器输出的命名问题(#4929
  • (V2)调整 PMA 寄存器的基地址(#4940
  • (V2)修复 load 快速唤醒 vsetvli 指令产生错误的问题(#4941

访存与缓存

  • Bug 修复
  • (V2)修复了 PageTableCache 中触发 jmp_bitmap_check 的逻辑(#4935
  • 修复了 NEMU 在发生 hardware-error exception 时未正确设置 GVA 的问题(NEMU #921
  • 修复了 NEMU 使用 MPRV 时未检查 NMIE 的问题。当 NMIE = 0 时,MPRV 应被视为清除(NEMU #920
  • 工具
  • 修复了 CHIron 的一系列问题

性能评估

SPECint 2006 est. @ 3GHz SPECfp 2006 est. @ 3GHz
400.perlbench 35.88 410.bwaves 67.22
401.bzip2 25.51 416.gamess 41.01
403.gcc 47.95 433.milc 45.09
429.mcf 60.19 434.zeusmp 51.78
445.gobmk 30.62 435.gromacs 33.67
456.hmmer 41.61 436.cactusADM 46.20
458.sjeng 30.62 437.leslie3d 47.80
462.libquantum 122.58 444.namd 28.88
464.h264ref 56.57 447.dealII 73.27
471.omnetpp 41.35 450.soplex 52.50
473.astar 29.30 453.povray 53.49
483.xalancbmk 72.76 454.Calculix 16.37
GEOMEAN 44.66 459.GemsFDTD 39.71
465.tonto 36.73
470.lbm 91.98
481.wrf 40.63
482.sphinx3 49.10
GEOMEAN 44.94

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

编译参数如下所示:

编译器 gcc12
编译优化 O3
内存库 jemalloc
-march RV64GCB
-ffp-contraction fast

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

commit ef913a6
日期 2025/08/14
L1 ICache 64KB
L1 DCache 64KB
L2 Cache 1MB
L3 Cache 16MB
访存单元 3ld2st
总线协议 TileLink
内存延迟 DDR4-3200

相关链接

编辑:徐之皓、吉骏雄、陈卓、余俊杰、李衍君