论文部分内容阅读
现代高性能处理器普遍采用超标量结构,通常使用独立的处理部件对浮点数据进行处理。在浮点处理部件设计和验证过程中,需兼顾时钟频率、面积等设计目标,同时权衡设计复杂度与开发时间的关系。其中,复杂算术运算的选择和实现、运算过程中的精度控制以及IEEE-754标准兼容性测试是浮点设计的重点和难点。 本文面向北京大学微处理器研究开发中心研发的64位超标量多核处理器UniCore-3,完成了浮点执行部件(FPU,Floating-point Unit)的设计与实现,对设计的功能正确性进行了验证;检测了FPU的IEEE-754标准兼容性;对UniCore-3浮点运算性能进行了评测。本文的主要工作包括: 1.对五种浮点指令系统、五款主流微处理器浮点执行部件的结构、算法选择、运算性能进行对比分析。针对UniCore-3处理器的设计目标和UniCore-F64浮点指令系统的特征,确定出需支持的浮点运算种类及FPU的整体结构,选择适用算法形成完整设计方案,并完成代码实现。通过时序分析对关键路径进行了设计优化,达到UniCore-3处理器1.0GHz的频率目标。 2.根据UniCore-3处理器FPU设计规范,制定功能覆盖大纲和详细验证文档,完成了FPU模块级和汇编级功能验证。采用testfloat和sofffloat工具搭建IEEE-754兼容性测试环境并完成测试。测试结果表明:除个别运算和非规格化数精度控制需和软件共同支持外,兼容IEEE-754标准其他所有特性。 3.使用Whetstone和SPEC CFP2000基准测试程序,在UniCore-3处理器FPGA原型验证系统中对浮点运算性能进行了评测。评测结果表明,相对于上一代处理器,UniCore-3处理器的浮点运算性能提升28%。通过对UniCore-3各级流水线阻塞情况的数据分析,保留站数量和复杂运算单元如除法的执行速度是目前影响浮点运算性能的主要因素。