[发明专利]一种浮点乘加融合单元的五级流水线结构有效

专利信息
申请号: 200710099408.9 申请日: 2007-05-18
公开(公告)号: CN101174200A 公开(公告)日: 2008-05-07
发明(设计)人: 李兆麟;李恭琼;张轩 申请(专利权)人: 清华大学
主分类号: G06F7/57 分类号: G06F7/57
代理公司: 暂无信息 代理人: 暂无信息
地址: 100084北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种单精度浮点乘加单元的全流水线设计,实现了形式为A+B×C的乘加运算,分五级流水线实现:在第一级流水线中,计算指数差,并完成乘法的一部分;在第二级流水线中,根据指数差将A与B×C对齐,有效减时取反,完成剩下的乘法,同时将指数划分成六种状态,不同状态下规格化移位量的计算方法将不同;在第三级流水线中,预测前导零数目,同时同步预测最终结果的符号,最后进行第一步规格化移位;在第四级流水线中,首先完成第二步规格化移位,然后进行加法和舍入的一部分;最后一级流水线中,完成加法和舍入,修正指数项,第三步规格化移位在舍入的间隔里完成。本发明的优点在于:在硬件开销较小的情况下实现了高性能、高精度。
搜索关键词: 一种 浮点 融合 单元 流水线 结构
【主权项】:
1.一种浮点乘加融合单元的五级流水线结构,其特征在于,含有一种五级流水实现的单精度浮点乘加运算单元,实现了形式为A+(B×C)的乘加操作,其吞吐量为每周期一条指令,如图2所示,具体结构如下:第一级流水线:由指数处理单元1、以4为基的波茨编码器3、3∶2的进位保存加法器(CSA)组成的部分积压缩树4的一部分和符号处理单元2组成;其中,指数处理单元1根据操作数A的指数,B的指数和C的指数计算其指数差dd=exp(A)-(exp(B)+exp(C)-127),其中,exp(A),exp(B)和exp(C)分别是操作数A,B和C的指数,根据IEEE 754标准,单精度浮点数的指数为其第2位到第8位,并计算A与B×C对齐时所需的移位量mv,mv=74-d,确定数据通路的临时指数Exp_temp,其计算方法为:若mv<0,则Exp_temp=exp(A);否则Exp_temp=exp(B)+exp(C)-127+27;这里加27是因为B×C的结果在数据通道中靠右侧摆放,如图3(a)所示;符号处理单元2根据操作数A的符号,B的符号和C的符号计算临时符号、是否为有效减(sub),根据IEEE 754标准,单精度浮点数的符号位为其最高位,临时符号由B×C的符号位表示,A的符号位与B×C的符号位不同时,sub=1,否则sub=0;基4的波茨编码器3对C的尾数进行编码,然后将编码的结果与B的尾数相乘得到13个部分积,根据IEEE 754标准,单精度浮点数的尾数为其第9位到第32位,编码后的13个部分积的被送入3∶2的进位保存(CSA)压缩树4中,单个单字节CSA单元和CSA压缩树的构造分别在图4和图5中做了详细的介绍,其中图5的输入x、y、z为3个要被压缩的字节,输出S、C分别为压缩后的和字节和进位字节,图6的输入in1~in13为波茨编码后得到的13个部分积,输出为压缩后得到的和、进位,整个压缩树由11个49比特的CSA构成,其中每个CSA由49个图5中的单元结构构成,将13个部分积压缩为两个,需要5级的CSA树,为平衡各级流水线的延时,这里将前两级CSA树放在第一级流水线中,而后面的三级CSA树留到第二级流水线中执行,最终压缩的结果需要被处理后才能做为乘法结果,具体处理方法为:部分积压缩树每一压缩的结果都保留49位,最后一级压缩后的两个输出的最高位都为1时,将这两个1改为0,否则若两个最高位1个是1,另一个是0,而两个次高位均为1时,将这最高位的1个1和次高位的2个1都改为0,其与情况不需做修改;第二级流水线:由指数状态划分器5、74比特移位对齐器6、按位取反器7、粘滞位计算器8、3∶2的进位保存加法器(CSA)组成的部分积压缩树4的一部分和一个3∶2 CSA组成;其中,指数状态划分器5根据1中计算出的d和从2中得到的sub,将指数的状态划分为以下6种情况:1)d≥272)27>d≥3或d=2,sub=03)2≥d≥-48且sub=14)d=1或d=0,sub=05)-1≥d≥-48且sub=06)d<-48前导零预测模块10将根据这里划分的状态进行特殊的操作,介绍10时将会具体的介绍;74比特的移位对齐器6根据指数处理单元1得到的mv值,对A的尾数进行移,A最初被放置在B×C最高位的左边,如图3(a)所示,为保证d>27时能准确地进行舍入,将两个额外位放在A和B×C最高位之间,d>27时,A不移位,通过置入两个额外位,舍入逻辑不再需要考虑B×C的结果,A右移的位数由d决定,有三种情况:1.mv≤0,B×C在A最低位的右边,这种情况下,B×C仅影响粘滞位的计算,不需要移动A;2.0<mv<74,A右移mv位,mv>50时,A的一部分将被移到B×C最低位的右边,这些移出位将被收集用来计算粘滞位st1;3.mv≥74,A将被全部移到B×C最低位的右边,仅影响粘滞位st1的计算;计算粘滞位的部件8收集A向右移位对齐时移出数据通道的位,用以计算粘滞位,这里产生的粘滞位仅仅是整个乘加单元实现过程中产生的粘滞位的一部分,记为st1,在第四级流水线中还会产生粘滞位,后面介绍第四级流水线的时候将会详细介绍;若sub=0,A被移出数据通道的位全为0时,st1=0,否则st1=1;若sub=1,A被移出数据通道的位全为1时,st1=0,否则st1=1;按位取反器7,如果A的符号位和B×C的符号位不同,对A的尾数的每比特都做取反操作(也就是按位取反),如果A的符号位和B×C的符号位相同,则不作取反操作,并将操作结果和4的输出结果一起送入3:2CSA 9中作一次压缩,其输出结果记为sum、carry,它们在数据通道中的存在形式如图3(c)所示;A的符号位和B×C的符号位不同时,还要在A的最低位加1以完成对A的求补,但是移位后,A的最低位可能在24位到74位之间的任一位置,我们希望将1加到一个固定的位置,检查A的最低位在161位左边和右边两种情况,可发现sub=1且st1=0时要在进位字节的最低位加1,如图3(c)所示,这一加1能正确的传递到A的最低位,3:2CSA压缩后进位字节(carry)的最低位(74位)为空,1可加在这位上;第三级流水线:由前导零检测模块10、74比特的半加器11、12和13、符号预测逻辑14、25比特的一次性移位器15和选择器16组成;其中,前导零检测模块10,根据5和9的输出,以及d和sub的值确定后两次规格化移位(分别由17、25完成)的移位量,下面阐述根据d和sub划分的六种情况,详细讨论各种情况下如何确定前导零个数(结果为负时为前导一):情况1:d≥27前导零个数(LZN)可能为0或1,不需要进行移位,1位的左移不确定留到加法和舍入部分处理,17和25的移位量均为0;情况2:27>d≥3或d=2,且sub=025的移位量为0,sub=1时,17中的移位量为mv,其中mv为1中计算出的A相对B×C移位对齐时的移位量;sub=1时,17中的移位量为mv-1,因为此时为有效加法,加法器20中最高位可能产生进位(Cout=1,Cout表示加法器20中最高位的进位),17中的移位量最少为0,最多为25;情况3:2≥d≥-48且sub=1此时A和B×C非常接近,减法运算可能损失很多有效位,这种情况下需要特殊的前导零预测逻辑,我们的实现方法如下:通过检查某一位及其左右相邻的位确定哪一位可能是最高位,设一预测位fiT=sumcarry,]]>G=sum&carry,f0=T0T1]]>fi=Ti-1(GiZi+1+ZiGi+1)+Ti-1(ZiZi+1+GiGi+1),i>0]]>其中sum、carry为9的两个输出,若fi=1,而fj=0(j=0,1…i-1),则最高位为i或i+1,i≤26时,17中的移位量为i,25中的移位量为0;否则17中的移位量为26,25中的移位量为i-26;情况4:sub=0,且d=1或017和25中的移位量均为0;情况5:-1≥d≥-48且sub=025中的移位量为0;17中的移位量由BC_sum[0],BC_sum[1],BC_carry[0],BC_carry[1]确定,它们分别是4的两个输出的最高两位,若BC_sum[0]|BC_carry[0]|(BC_sum[1]& BC_carry[1])=1则A与B×C相加,Cout=1,Cout为前面提到过的加法器20中最高位的进位,这种情况下17中的移位量为0,否则Cout=0,17中的移位量为1;情况6:d<-48B×C远大于A,A仅影响舍入逻辑,在17中只需左移一位,25中的移位量为0;总结几上各种情况可发现17、25中的最大的移位量仅为26位;74比特的半加器11、12和13的引入是为了保证在第五级流水线中部件27、28仅产生一位进位,为减少电路的延时,这里同时对9输出结果及其补数表示进行处理,待部件14判断出结果的正负后再用选择器16选择需要的结果,11的输入为sum、carry,输出结果为sum&carry,即对sum和carry作按位与操作,12的输入为sum、carry,输出结果为sum^carry,即对sum和carry作按位或操作,13的输入为sum、carry按位取反,输出结果为sum和carry分别按位取反后作按位与操作;25比特的一次性移位器15,根据1的输出d和2的输出sub判断是否对11、12、13的输出进行一次25比特的移位:d>2,或者d=2且sub=0时进行移位,否则不进行移位,为得到sum、carry的补数表示,除了按位取反,还需要分别在最低位加1,这里的两个加1采用的技巧为:1个加在13的输出的最低位,同时将数据通道向右拓展一位,然后在12和13的输出的最低位分别置1,这样就完成了另一个加1;结果可能为负时将需要非常复杂的选择,注意这里提到的负指的是A+B×C的符号与B×C的符号不同,避免这一麻烦同时减小电路时延的方法是提前判断结果的正负,结果为负时选择9输出的补数表示,这一判断由符号预测模块14完成,它在进行前导零预测(10)、半加(11、12、13)以及一次性移位(15)的同时进行,符号预测模块14根据9的输出结果sum和carry预测最终结果的正负,结果仅在有效减(sub=1)时可能为负,有效减时,A的补数始终被使用,因此结果仅在d>0时可能为负,可能有两种情况:1.d≥2时结果始终为负;2.d=0或d=1时,要对A和B×C进行全面的比较,具体方法是检测sum加carry时,最高位是否有进位产生,若有,则符号判断的结果为正;选择器16根据14判断的结果从15的结果中选择,若14判断出结果为正,则选择sum和carry一次性移位后的输出,否则选择sum和carry取补再移位后的输出;第四级流水线:由26比特的规格化移位器17、最终结果的符号计算部件18、指数计算部件19、22位条件加法器20、进位和粘滞位计算部件21和两个与门22、23组成,其中,26比特的规格化移位器17根据10中得到的移位量对16的输出结果进行移位,最大移位量为26;最终结果的符号计算部件18将2中得到的B*C的符号和14得到的符号预测结果进行异或操作,得到A+B*C的符号;指数计算部件19计算A+B*C的指数,计算方法为1中得到的Exp_temp与三次规格化移位(由15、17、25完成)的移位量之和相加;22位条件加法器20,将17输出结果的高22比特相加得到sum0,sum0+1得到sum1;部件21~23是完成舍入的部件的一部分;IEEE 754标准中规定了4种舍入模式:就近舍入(RN),向正无穷舍入(RP),向负无穷舍入(RM),向零舍入(RZ),从应用的角度来看,这四种舍入模式能减少到三个:RN、RI、RZ,如表1所示;从数学意义上讲,这里分别表示向上取整和向下取整;21中利用17输出的低49位计算其最高位进位,利用17输出结果的低50位和st1计算粘滞位;有左移的粘滞位的计算方法为:17输出的两个数的低49位相加的结果为零,且st1=0时,粘滞位的计算结果为0;无左移的粘滞位的计算方法为:17输出的两个数的低50位相加的结果为零,且st1=0时,粘滞位的计算结果为0;采用下面的方法可快速确定两个数是否为0:设两个操作数为A=a0...an-1,B=b0...bn-1,记矢量E=e0...en-1,其中ei=ki+1pi,]]>pi=ai&bi,ki=ai+bi,那么A+B=0 ifZ=Πi=0n-1ei=1]]>22和23为两个与门,22的输入为RI和21中得到的无左移时的粘滞位,输出进入加法器28,23的输入为RI和21中得到的有左移时的粘滞位,输出进入加法器27;第五级流水线:由指数修正部件24、24比特的规格化移位器25、两个4位的加法器27和28、选择器29和最低位修正部件30;其中,尽管前面已进行规格化移位,但由于10中采用的前导零逻辑有一位的不确定性,以及两个数相加是否有进位的不确定性,将17的输出结果相加最高位可能为0,也就是说还可能需要一位左移;是否需要左移由sum0的最高位,sum1的最高位,以及21中得到的低49位向高位段的进位决定,其中c_no_left_shift为假设不需左移时4位全加结果(在28中得到)的最高位进位;若Left_shift=1,则指数修正部件24将19中得到的结果减1得到最终结果的指数,否则不需减1;第三步规格化移位在25中完成,其移位量在10中已计算出了;22和23为两个4位的加法器,它们有三个共同的输入:17中两个输出结果的23~26比特,以及RN+RI,一个不同的输入:分别为22和23的输出;选择器29根据Left_shift的值从27和28的输出中作选择,若Left_shift=1,则选择28的输出作为输出,否则选择27的输出;29输出结果的最高位为1时,选择器26选择sum1经部件25处理后的输出作为输出,否则选择sum0经25处理后的输出;最后,RN模式时最低位需要被修正,这由舍入位和粘滞位确定:LSBcorrected=0 if(~R)&sticky&RN=1其中R为舍入位,本设计中为29的输出的第3位,sticky为粘滞位,Left_shift=1,其值等于21中计算得的有左移时的粘滞位的值,否则为无左移时的粘滞位的值;最终,对26和30的输出结果进行拼接——26的输出,联合30输出的最高两比特,就得到了A+B*C的尾数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/200710099408.9/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top