论文部分内容阅读
算术运算分为定点数和浮点数算术运算,由于自然界中的变量往往是连续的实数,且浮点数可以表示更高的精度和更大的范围,所以浮点数可以更好的模拟和逼近实数。很多CPU和GPU芯片包含了多精度的浮点算术单元,用以支持单指令多周期指令(SIMD)。该种算术单元能并行计算若干个低精度或一个高精度浮点运算。为了减小算术运算中的累积误差,一些CPU和GPU芯片开始集成混合(fused)浮点算术单元。这种单元通过在结构上将复杂的算术运算分解并重新融合,不仅减小了误差,同时提高了复杂算术运算过程的速度。本文基于IEEE浮点数标准和二进制浮点算术的基本算法,以电路的延时为评价标准,在算法和电路结构上研究了五种基本的浮点算术单元。论文的主要工作包括:1.论文对浮点加法的算法和电路结构进行了研究。浮点加法的算法主要分为两种:单路径算法和双路径算法。本文采用双路径算法实现浮点加法算术单元。在电路结构优化方面,通过重新划分路径,将近路径中的舍入电路移除,减小了近路径的电路延时和面积;同时,在远路径中,基于注入值舍入算法,本文提出了一种延时优化的电路结构,进一步减小了远路径的延时。相对于基本的双路径算法,本文提出的加/减算术单元在性能方面提高了5%。在本文提出的浮点加法单元结构的基础上,本文提出了一种三模式浮点加法单元,可以并行的计算四个单精度或两个双精度或一个四精度的浮点加/减算术运算。该算术单元相比于当前的研究成果,在性能方面提高了8%。2.论文研究了浮点乘法的算法和电路结构。浮点乘法的算法相比于加法要简单很多,只需要将对应的指数相加、尾数相乘即可,之后对尾数的积进行舍入,指数的和进行调整。在浮点算术运算中,如何减小舍入电路的延时一直是设计的瓶颈。本文提出了一种双路舍入电路结构和一种粘滞位预判断的算法,即粘滞位的计算与尾数部分积之和并行计算,减小了电路的延时,性能提高了16%。在提出的浮点乘法单元结构的基础上,本文提出了一种双模式的浮点乘法单元,可以并行的计算两个低精度或一个高精度的浮点乘法运算。相比于当前的研究成果,本文提出的双模式浮点乘法单元在延时上减小了13%。3.论文研究了浮点混合加-减算术单元(FAS)、混合点积单元(FDP)和基2蝶形单元(FB)的电路结构。混合算术单元主要是用来完成复杂的算术运算。(1)本文提出的混合加-减算术单元可以同时完成两个浮点数的和与差。基本的舍入电路和结构与本文提出的浮点加法单元相同,采用双路径算法实现。在远路径引入一个额外的尾数加法器,复用尾数对齐电路,完成了远路径尾数的加-减和指数的调整,近路径只用来完成尾数的相减。通过以上优化策略,本文提出的混合加-减单元在延时上减小了32%。(2)混合点积单元通过将浮点数尾数乘积的部分积求和与最后的加法过程融合,减小了舍入误差和电路延时。本文提出的浮点混合点积单元完成两个浮点数的点积运算,整体采用双路径算法;在尾数舍入方面,使用了基于注入值算法的多路舍入结构,减小了电路的延时。相比于当前的研究成果,本文提出的设计在性能方面提高了24%。(3)通过提出的混合加-减算术单元和混合点积单元构造了基2蝶形算术单元,其性能提高了24%。4.论文研究了浮点除法/开方算术运算的算法和电路结构。浮点除法/开方算术运算的算法主要包括基于减法的SRT算法、基于乘加的迭代算法。SRT算法完成一次除法/开方的周期数要多于迭代算法,且收敛速度慢。因此本文提出的多功能浮点除法/开方算术单元采用迭代算法,通过优化电路结构,使得该单元通过运算模式的配置可以完成除法或开方运算。相比于当前的研究成果,本文提出的多功能浮点除法/开方算术单元在周期数方面减小了8.8%,延时减小了7%。