【香山双周报 89】20251110 期
欢迎来到香山双周报专栏,我们将通过这一专栏定期介绍香山的开发进展。我们期待您的贡献。
本次是第 89 期双周报。
香山开发方面,前端继续修复 BPU 重构带来的性能 bug希望下次双周报时性能能够达到重构前水平。后端推进 V3 向量单元的新设计实现,同时优化了 V2 后端的时序。访存持续推进 V3 各个模块的重构与测试,并且修复了 V2 的一些功能 bug,优化了时序,提升了代码质量。
开发花絮
双核昆明湖 V2 成功在 FPGA 上以 50MHz 启动 GUI OpenEuler 24.03!我们还成功运行了 LibreOffice,并且来了一把激情四射的 DOOM!这标志着香山验证工作的一个里程碑,也给了我们更大的信心。
由于 FPGA 频率比较低,因此启动稍慢,还望大家耐心观看~
请忽略画质问题,这是极为艺术的摇晃镜头
近期进展
前端
? RTL 新特性 ? 支持 RISC-V 特权手册 v1.13 引入的 Hardware Error 异常(#4770) ? 启用 UBTB 快速训练(#5145) ? 移除 UBTB 的 takenCnt 和 valid 域(#5157) ? 实现 SC 预测器的 globalTable(#5150) ? 支持 PHR 追踪分支 target(#5169) ? ABTB 快速恢复、MicroTAGE 等新性能特性探索中 ? Decoupled BPU train、commit 通路重构进行中 ? Bug 修复 ? 修复 ABTB、MBTB SRAM 读出数据没有被寄存导致的 X 态传播问题(#5153, #5158) ? 修复 ABTB 训练条件相关问题(#5160) ? 修复 MBTB multi-hit 冲刷逻辑 waymask 非 one-hot 的问题(#5181) ? 修复 TAGE BaseTable、MBTB set 索引计算有误的问题(#5155) ? 修复 PHR 指针元数据错位相关问题(#5139) ? 修复 WriteBuffer 写端口连线相关问题(#5143) ? 修复 IBuffer 在入队项数量为 0 时仍然记录 exception 的问题(#5147) ? 时序优化 ? (V2)更换 FTQ 的双端口 SRAM 为寄存器(#5142) ? 面积优化 ? 代码质量
后端
? RTL 新特性 ? 时序优化 ? 继续推进对 V2 向量运算单元时序的优化
访存与缓存
? RTL 新特性 ? MMU、LoadUnit、StoreQueue、L2 等模块重构与测试持续推进中 ? Bug 修复 ? 修复 TLB 刷新逻辑错误的问题。在hfence.vvma、 sfence.vma 且 v=1、或者 mbmc.BME = 1 且 CMODE = 0 时忽略地址匹配,直接刷新所有 TLB 条目(#5114) ? 修复 VsegmentUnit 中拆分非对齐元素时没有锁存 Paddr 的 Bug。该 Bug 会导致错误发起访存请求(#5164) ? 修复 TLB 处于 onlyS2 阶段时 gpaddr 与 vaddr 不同的问题(#5189) ? 时序 ? 代码质量 ? 将 beu 中的 IntBuffer 移动到 L2Top 以进行分区(#5110) ? 移除了顶层模块 XSCore 中所有的组合逻辑,仅保留连线逻辑(#5120) ? 对 PMP 与 PMA 进行参数化(#5177) ? 调试工具 ? 在 DCache 与 LDU 中新增一些硬件性能计数器(#5166) ? 继续完善 CHI 相关基础设施 CHIron 的功能(CHIron)
性能评估
我们使用 SimPoint 对程序进行采样,基于我们自定义的 checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。上述分数为基于程序片段的分数估计,非完整 SPEC CPU2006 评估,和真实芯片实际性能可能存在偏差。
编译参数如下所示:
处理器及 SoC 参数如下所示:
相关链接
? 香山技术讨论 QQ 群:879550595 ? 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions ? 香山文档:https://xiangshan-doc.readthedocs.io/ ? 香山用户手册:https://docs.xiangshan.cc/projects/user-guide/ ? 香山设计文档:https://docs.xiangshan.cc/projects/design/
编辑:徐之皓、吉骏雄、陈卓、余俊杰、李衍君
