1、香山昆明湖架构前端架构的设计演进勾凌睿1薛臻1,3陈国凯1高泽宇1宋政伟4傅腾蛟2郭鸿宇5满洋61中国科学院计算技术研究所2中国科学院上海光学机械研究所3鹏城实验室4西安交通大学5北京航空航天大学6哈尔滨工业大学(深圳)2023 年 8 月 24 日第三届 RISC-V 中国峰会中国科学院计算技术研究所(ICT,CAS)2 2香山:开源高性能 RISC-V 处理器 第一版:雁栖湖 架构 2020/6:代码仓库建立,开始 RTL 实现工作 2021/7:完成 28nm 流片,频率 1.3GHz 性能:实测 SPEC CPU2006 超过 7 分/GHz 第二版:南湖 架构 2021/5:开始 R
2、TL 实现工作,持续进行设计讨论 2023年初:RTL 冻结,物理设计进入收尾阶段 即将流片,预估 SPEC CPU2006 约 10 分/GHz,2GHz14nm 第三版:昆明湖 架构 性能对标数据中心处理器核 ARM Neoverse N2,目标性能 SPEC CPU2006 15分/GHz,3GHz 开发进入中期阶段,与合作企业联合进行研发 开源情况 开源协议:MulanPSLv2 协议(兼容Apache v2.0)代码托管:GitHub(https:/ GitHub已获得超过 3800 个星标,形成超过 550 分支中国科学院计算技术研究所(ICT,CAS)3 3 功能改进支持 RIS
3、C-V 向量(Vector,V)扩展指令集支持 RISC-V 虚拟化(Hypervisor,H)扩展指令集 性能探索构建与香山性能校准的体系结构模拟器建立模拟器设计空间探索RTL 实现与调参的性能迭代工作流 功能验证覆盖 ST/IT/UT+FPGA 的多层次验证工业级的规范验证流程 物理设计专业的高性能处理器物理后端设计团队RTL 修改与物理后端时序评估同步迭代第三代香山(昆明湖)规划中国科学院计算技术研究所(ICT,CAS)4 4香山前端架构总览 前端主要负责分支预测与取指香山整体微架构中国科学院计算技术研究所(ICT,CAS)5 5昆明湖前端架构总览 继承自南湖架构的解耦架构 取指和分支预
4、测解耦 隐藏分支预测气泡 指导指令预取 避免分支预测和指令缓存路径纠缠BP1FQF1F2F3IBufBP2Branch PredictionInstruction Fetch解耦架构设计中国科学院计算技术研究所(ICT,CAS)6 6昆明湖前端架构总览 取指和分支预测单元迭代优化 增大预测宽度 提高预测准确率 增大取指宽度 降低取指延迟 提高频率中国科学院计算技术研究所(ICT,CAS)7 7昆明湖前端迭代方向中国科学院计算技术研究所(ICT,CAS)8 8方向1:提高循环供指 问题 长循环体退出时机预测不准确 小循环体指令供应不足 循环体重复访问 ICache 和分支预测器增大功耗 解决 L
5、oop Predictor:预测循环退出 Loop Buffer:供应循环体指令,一次取指可包含两条跳转的分支指令(two taken)loop:lb t2,0(t0)sb t2,200(t0)addi t0,t0,1bne t0,t1,loop小循环示例for(int i=0;i 较优参数 IPC+1.44%1 C.Zhou,L.Huang,Z.Li,T.Zhang,and Q.Dou,“Design Space Exploration of TAGE Branch Predictor with Ultra-Small RAM,”in Proceedings of the on Great Lakes Symposium on VLSI 2017,Banff Alberta Canada:ACM,May 2017,pp.281286.中国科学院计算技术研究所(ICT,CAS)2626总结 昆明湖架构取指和分支预测单元迭代优化 Loop Predictor,Jump Ahead 及 L2 FTB 增大预测宽度 新 RAS 及 TAGE tuning 提高预测准确率 Loop Buffer 增大取指宽度 L1 FDIP 降低取指延迟 提高频率敬请批评指正!