《2-RV23峰会香山后端v1.8.23.pdf》由会员分享,可在线阅读,更多相关《2-RV23峰会香山后端v1.8.23.pdf(44页珍藏版)》请在三个皮匠报告上搜索。
1、香山昆明湖后端流水线的设计演进张紫飞1胡轩1唐浩晋1何逸飞2肖飞豹2付丹阳3张娄峄4张梓悦1曹泽文5贾志杰1刘泽昊11中国科学院计算技术研究所2北京开源芯片研究院3大连理工大学4北京大学5中国科学院微电子研究所2023 年 8 月 24 日第三届 RISC-V 中国峰会中国科学院计算技术研究所(ICT,CAS)2 2昆明湖后端架构总览昆明湖后端流水级架构简图中国科学院计算技术研究所(ICT,CAS)3 3南湖后端架构总览南湖后端流水级架构简图中国科学院计算技术研究所(ICT,CAS)4 4南湖后端流水线主要瓶颈南湖后端流水级架构简图中国科学院计算技术研究所(ICT,CAS)5 5发射前读寄存器
2、堆 寄存器读口数量限制 Dispatch 宽度 Decode,Rename,Commit 宽度为 6 Int/Fp/Mem Dispatch 宽度各为 4 瓶颈无法突破,但可以后移 DataArray 面积较大 以 32 项 AluRS 为例 保存 4k bits 数据(64x2x32)每个 DataArray 2 读 10 写 时序较差中国科学院计算技术研究所(ICT,CAS)6 6改进1:发射后读寄存器堆昆明湖后端流水级架构简图中国科学院计算技术研究所(ICT,CAS)7 7发射后读寄存器堆 优点 Dispatch 阶段的瓶颈后移到指令发射后 降低保留站存储开销,减小面积 降低延迟,提升发
3、射队列容量 新的问题 功能单元多导致寄存器读口数量多 发射队列到功能单元之间流水级数增加昆明湖发射后读寄存器堆中国科学院计算技术研究所(ICT,CAS)8 8发射后读的配套改进 组合功能单元减小寄存器读口需求 推测唤醒及取消机制降低流水级增加的代价 写回状态表预订写回端口使推测唤醒更加准确 寄存器读口仲裁解决寄存器读口冲突问题中国科学院计算技术研究所(ICT,CAS)9 9发射后读的配套改进 组合功能单元减小寄存器读口需求 推测唤醒及取消机制降低流水级增加的代价 写回状态表预订写回端口使推测唤醒更加准确 寄存器读口仲裁解决寄存器读口冲突问题中国科学院计算技术研究所(ICT,CAS)1010改进
4、1.1:重新组合功能单元 弃用南湖的功能单元组合 ALU*4+MDU*2,12个读口 昆明湖重新规划功能单元分组(ALU+MUL)*2+(ALU+DIV)*2,8个读口 重新组合功能单元让读口需求下降 性能几乎不受影响中国科学院计算技术研究所(ICT,CAS)1111 弃用南湖的功能单元组合 ALU*4+MDU*2,12个读口 昆明湖重新规划功能单元分组(ALU+MUL)*2+(ALU+DIV)*2,8个读口 重新组合功能单元让读口需求下降 性能几乎不受影响改进1.1:重新组合功能单元中国科学院计算技术研究所(ICT,CAS)1212 弃用南湖的功能单元组合 ALU*4+MDU*2,12个读口
5、 昆明湖重新规划功能单元分组(ALU+MUL)*2+(ALU+DIV)*2,8个读口 重新组合功能单元让读口需求下降 性能几乎不受影响改进1.1:重新组合功能单元中国科学院计算技术研究所(ICT,CAS)1313改进1.2:推测唤醒和取消机制 需要推测唤醒的原因 发射后读寄存器堆没有暂存数据的位置 指令发射到执行多了一拍,需要比写回提前两拍唤醒下一条指令保留站暂存数据比写回提前一拍唤醒寄存器堆读数据比写回提前两拍唤醒中国科学院计算技术研究所(ICT,CAS)1414改进1.2:推测唤醒和取消机制 需要取消机制的原因 唤醒源指令可能执行失败 没抢到数据读端口 Load 指令 TLB miss 和
6、 cache miss 等中国科学院计算技术研究所(ICT,CAS)1515没有推测唤醒没有推测唤醒的时空图 指令 1 写回时唤醒指令 2没有推测唤醒的示意图中国科学院计算技术研究所(ICT,CAS)1616没有推测唤醒 指令 1 写回时唤醒指令 2 流水线气泡很多没有推测唤醒的时空图没有推测唤醒的示意图中国科学院计算技术研究所(ICT,CAS)1717实现推测唤醒 发射队列选出指令 1推测唤醒示意图推测唤醒时空图中国科学院计算技术研究所(ICT,CAS)1818实现推测唤醒 指令 1 发射,推测唤醒指令 2 发射队列选出 指令 2推测唤醒示意图推测唤醒时空图中国科学院计算技术研究所(ICT,