论文部分内容阅读
本文在对RISC-V浮点指令集的指令格式和指令功能深入分析地基础上,基于申威核心架构针对RISC-V中的浮点指令进行功能设计实现该架构下相应的浮点指令功能。所实现的RISC-V浮点指令采用指令多发射技术,相对单发射其多发射指令可在同一阶段实现多条指令的并行执行有效提高了功能部件的利用率;其中根据乱序处理策略,实现了一种满足同一周期可发射多条RISC-V浮点指令的发射模块,该发射模块主要有等待队列、记分牌和发射队列3部分组成,各部分采用相应的仲裁机制、唤醒机制以及相应的条目更新机制,完成了指令发射模块到指令执行部件的多发射控制。本文深入研究浮点部件结构及其实现方法。根据RISC-V中的RV32F和RV32D浮点指令集实现了一款支持单/双精度浮点运算的浮点运算单元(FPU)。对于浮点乘加类运算以及浮点加/减/乘运算在浮点乘加融合(FMA)部件中实现,该FMA单元采用6级流水的方式实现。且FMA部件的主加法器采用循环进位(EAC)加法器,并对加法器进行优化设计,通过减小EAC的逻辑宽度,来减少加法器的面积和功耗,其中面积减少约27.0%,功耗减少约24.7%。该加法器可避免对负数的求补操作,减小延时提高执行效率。此外对浮点比较指令执行进行优化,由浮点比较指令执行结果由原先的6拍延时优化变为2拍,运算延时减少4拍。同时本文根据RISC-V浮点算术指令特点可通过静态舍入模式位来直接更改一条指令的舍入模式,有效提高性能。最后,搭建了浮点指令测试平台,采用大量的测试激励完成了本文实现的多发射执行指令的验证。对实现RISC-V浮点指令进行了时序仿真,仿真结果表明其设计实现的RISC-V浮点指令符合设计要求。