首页 > 最新动态 > 【香山双周报】20241028期
最新动态
【香山双周报】20241028期
2024-11-087

【香山双周报 62】20241028

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

近期,昆明湖各组持续推进面积、时序、功耗的优化。此外,前端修复了 ECC 到 Bus Error Unit 路径上的 Mux1H,后端 VS/S/M 模式双重陷入拓展 (Ss/mdbltrp) 正在合入主线,访存和缓存部分修复了向量异常相关的 Bug。本期还更新了昆明湖架构近期性能。

近期进展

前端

  • ? Bug 修复

    • ? ECC 到 Bus Error Unit 路径上的 Mux1H 修复 (#3784)

  • ? 时序

    • ? FTQ -> FDIP 预取的时序优化 (#3499)

    • ? 将 io.flush 从预取的关键路径上移除 (#3542)

    • ? s2_finish 到预取的时序优化 (#3545)

  • ? Code Style

    • ? 打开了 scalafmt 自动格式化,并在 CI 加入自动检查 (#3370)

    • ? 移除了未使用的 import,手动格式化一些 scalafmt 处理得不好的折行 (#3791)

后端流水线

  • ? Bug 修复

    • ? 修复 H 拓展 gpa 获取不一致的问题以及修复 Misalign 访存相关 TLB 的问题 (#3681#3679)

    • ? 修复向量访存异常在写回时,如果有更老的异常时,isEnqExcp 应置零的问题 (#3778)

    • 修复 ebreak 指令触发 breakpoint 异常时,以及压缩指令发生非法指令异常时,xtval 更新错误的问题 (#3769#3762),NEMU 也完成了对应修改 (#599)

    • ? 修复向量访存 trigger 相关问题 (#3772#3745)

    • ? 修复 CSR 异常分开存储导致的错误拉高问题 (#3771)

    • ? 修复 xcause 的中断选择策略与 xtopi 不一致的问题(#3753

    • ? 修复 NEMU 在部分指令设置 xstatus.FS 为 Dirty 时的行为与 RTL 不一致的问题 (#606#605#598#595#591#588)

    • ? 修复 Misalign 访存相关 TLB 的问题 (#3731)

  • ? 时序/功耗优化

    • ? 优化唤醒,取消以及访存依赖时序 (#3737)

    • ? 评估后端面积优化点以及潜在收益

  • ? RVA23 Profile

    • 计数溢出和基于特权级的过滤拓展 (Sscofpmf): 添加 RTL 指导 NEMU overflow 更新,RTL 支持基于特权级的过滤(#3771),NEMU 完成 mhpmevent 实现以及相应修改 (#574)

    • ? VS/S/M 模式双重陷入拓展 (Ss/mdbltrp) 正在合入主线 (#3789

    • ? NEMU 实现 A 拓展的 trigger 支持 (#592)

访存与缓存

  • ? CHI 总线

    • ? CHI-L3: OpenLLC + OpenNCB 合入主线(配置:KunminghuV2Config)(#3672)

  • ? Bug 修复

    • ? 修复连续的两条 MMIO 访存,均发生 non-data error 异常时导致的卡死问题 (#3728)

    • ? 修复对非对齐的 HLV(hypervisor load)指令进行拆分后,丢失虚拟化相关信息的 Bug (#3759)

    • ? 修复未执行完毕一条非对齐指令前,StoreQueue 误提交该指令的 Bug (#3758)

    • ? 修复向量异常相关的 Bug,保证向量访存指令在乱序执行后,能够保留按顺序最早的一项异常 (#3733)

    • ? 修复由向量访存单元无法接收 uop 发射导致的卡死问题 (#3741)

  • ? PPA 优化

    • ? MemBlock 内部和端口时序持续优化,目前内部违例优化至 -45ps,近期优化包括:去除 Dcache s2tag 到 dataArray 之间的关键路径、优化 MemBlock 向 L2 Cache 发送 CMO 请求的时序、优化 LoadUnit 写回端口的选择逻辑,以及非对齐访存的异常写回逻辑等 (#3748)

    • ? 对 DCache SRAM 添加 clock gating,memory 的内部功耗降低 51%

  • ? 工具

    • ? CHIron:实现以二进制形式存储 CHI Log 信息,相较于文本格式存储,解析速度快 6 倍,文件空间占用减少 83%

    • ? TL-test-new:添加 OpenLLC 的 CI 流程,支持 MMIO 测试

    • ? L2 HPM(性能计数器):根据物理设计调整连线 (#3747)

评估

我们采用 SimPoint 对程序进行采样,基于我们自定义的 Checkpoint 格式制作检查点镜像,Simpoint 聚类的覆盖率为 100%。SPEC CPU2006 使用 gcc 12 进行编译,开启 O3 优化,采用 jemalloc 内存库,设置 SPECfp 2006 的-ffp-contraction 选项为 fast,指令集为 RV64GCB。我们使用 10 月 26 日 b3c3582 版本的香山处理器(缓存大小配置为 64KB L1 ICache + 64KB L1 DCache + 1MB L2 + 16MB L3,访存单元为 3ld2st 流水线),在仿真环境下运行了 SPEC CPU2006 片段,使用 DRAMsim3 模拟 CPU 在 3GHz 情况下 DDR4-3200 内存的延迟。以下为 SPEC CPU2006 的分数估计情况:

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

后记

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

在香山昆明湖架构研发后期,性能会每月公布一次,敬请期待!

相关链接

  • ? 香山技术讨论 QQ 群:879550595

  • ? 香山技术讨论网站:https://github.com/OpenXiangShan/XiangShan/discussions

  • ? 香山文档:https://xiangshan-doc.readthedocs.io/

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

审校:香山宣传工作组


点我访问原文链接