CN104808965A - 支持三操作数浮点连加的浮点乘加装置及其操作方法 - Google Patents

支持三操作数浮点连加的浮点乘加装置及其操作方法 Download PDF

Info

Publication number
CN104808965A
CN104808965A CN201510224486.1A CN201510224486A CN104808965A CN 104808965 A CN104808965 A CN 104808965A CN 201510224486 A CN201510224486 A CN 201510224486A CN 104808965 A CN104808965 A CN 104808965A
Authority
CN
China
Prior art keywords
unit
mantissa
rank
result
output terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510224486.1A
Other languages
English (en)
Inventor
姚涛
刘月吉
易学渊
曹俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Zhong Shenghongxin Information Technology Co Ltd
Original Assignee
Suzhou Zhong Shenghongxin Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Zhong Shenghongxin Information Technology Co Ltd filed Critical Suzhou Zhong Shenghongxin Information Technology Co Ltd
Priority to CN201510224486.1A priority Critical patent/CN104808965A/zh
Publication of CN104808965A publication Critical patent/CN104808965A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明提供一种支持三操作数浮点连加的浮点乘加装置,包括:解包单元;第一运算模块;第二运算模块以及设置于所述第一运算模块与所述第二运算模块之间的选择单元,能够执行三项输入数据Fa×Fb+Fc的操作,也能够执行三项输入数据Fa+Fb+Fc的操作。

Description

支持三操作数浮点连加的浮点乘加装置及其操作方法
技术领域
本发明涉及微处理器领域,特别涉及浮点运算处理装置。
背景技术
浮点乘加操作(Multiply-addition Fused,简称MAF)将一个浮点乘法和一个浮点加法融合到一个算术单元中执行,比起串行的先进行浮点乘法再进行浮点加法缩短了计算时间;同时,浮点乘加器将串行先乘后加的两次舍入减为一次舍入,提高了计算精度。因为这两方面的优势,浮点乘加器成为许多通用处理器、DSP、GPU、流处理器等的通用算术部件。
三操作数浮点连加(Floating Point Addition 3,简称FADD3)是一种新型的融合算术单元,可以用于精确的初等函数计算,提升小波变换(Lifting Based Wavelet Transformation)等多种应用场合。比起传统的浮点加法器,三操作数浮点连加器在针对连续多个数的加法运算时,既能大大缩短运算循环次数,又能减少舍入次数提高运算精度。
在某些情况下,浮点乘加器也有不利的一面。虽然浮点乘加器比一个浮点加法器和一个乘法器串行执行所需的计算时延少,但是,在完成单独的加法运算时比传统加法器延时要长,在进行连续多个数的加法时,性能更是不能和三操作数浮点连加器相比。因此,在执行连续多个数的加法时往往需要另外增加能够专门支持FADD3操作的算术单元。
基于现有技术的缺陷以及本领域技术革新的迫切需求,如何利用最少的资源实现更多的功能成为本领域技术人员噬待解决的问题。
发明内容
本发明要解决的技术问题是:如何改进浮点乘加器使其能够执行三操作数浮点连加的操作。
本发明提供一种支持三操作数浮点连加的浮点乘加装置,可以执行三项输入数据Fa×Fb+Fc的操作,也可以执行三项输入数据Fa+Fb+Fc的操作。
本发明提供一种支持三操作数浮点连加的浮点乘加装置,包括:解包单元,用于将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);第一运算模块,对指数ea,eb,ec进行运算,执行尾数ma×mb,基于尾数ma×mb的结果对尾数mc进行对阶操作;第二运算模块,能够将尾数ma×mb的结果以及尾数mc对阶后的结果压缩为进位—保留的形式、执行中间加操作、执行前导零检测操作、执行规格化操作、执行舍入操作以及打包输出;所述第一运算模块对尾数ma、mb、mc进行对阶操作;选择单元,设置于所述第一运算模块与所述第二运算模块之间,用于选择将尾数ma×mb的结果以及尾数mc对阶后的结果传送至第二运算模块或者选择将尾数ma、mb、mc对阶后的结果传送至第二运算模块;所述第二运算模块能够将尾数ma、mb、mc对阶后的结果压缩为两项、能够执行过抵消检测操作。
本发明提供一种支持三操作数浮点连加的浮点乘加装置,包括:解包单元,用于将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);指数运算单元,其输入端连接至解包单元的输出端,用于对指数ea,eb,ec进行运算;乘法阵列单元,其输入端连接至解包单元的输出端,用于执行尾数ma与mb相乘操作;第一对阶逻辑单元,其输入端连接至解包单元的输出端以及指数运算单元的输出端,用于基于尾数ma×mb的结果对尾数mc进行对阶操作;第二对阶逻辑单元,其输入端连接至所述解包单元的输出端,用于对尾数ma、mb、mc进行对阶操作;选择单元,所述第二对阶逻辑单元的输出端、乘法阵列单元的输出端以及所述第一对阶逻辑单元的输出端连接至所述选择单元的输入端;压缩单元,其输入端与所述选择单元的输出端连接;所述选择单元用于选择将乘法阵列单元的结果和第一对阶逻辑单元的结果传送至压缩单元或者选择将第二对阶逻辑单元的结果传送至压缩单元;所述压缩单元用于将乘法阵列单元的结果和第一对阶逻辑单元的结果压缩为进位-保留的形式或者将第二对阶逻辑单元的结果压缩为两项;前导零检测单元,其输入端与所述压缩单元的输出端连接;中间加单元,其输入端与所述压缩单元的输出端连接;规格化单元,其输入端与所述前导零检测单元的输出端以及与所述中间加单元的输出端连接;舍入单元,其输入端与所述规格化单元的输出端连接;打包输出单元,其输入端与所述舍入单元的输出端连接;以及过抵消检测单元,其输入端与所述中间加单元的输出端连接,其输出端与所述打包输出单元的输入端连接。
优选的,所述第二对阶逻辑单元具有第一移位器、第二移位器和第三移位器,所述第二对阶逻辑单元与所述第一对阶逻辑单元共用所述第三移位器。
优选的,所述压缩单元是进位保留加法器。
本发明还提供一种使用上述浮点乘加装置进行三输入浮点乘加操作的方法,包括如下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对指数ea,eb,ec进行运算,同时执行尾数ma与mb相乘操作,并基于尾数ma与mb相乘的结果对尾数mc进行对阶操作;
步骤3:选择将尾数ma×mb的结果和尾数mc对阶后的结果压缩为进位-保留的形式;
步骤4:执行中间加法和前导零检测操作;
步骤5:规格化;
步骤6:舍入;
步骤7:打包输出。
本发明还提供一种使用上述浮点乘加装置进行三操作数浮点连加操作的方法,包括如下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对尾数ma、mb、mc进行对阶操作;
步骤3:将尾数ma、mb、mc对阶后的结果压缩为两项;
步骤4:执行中间加法,获得计算结果的绝对值,进行前导零检测操作;
步骤5:规格化移位;
步骤6:舍入;
步骤7:进行过抵消检测;
步骤8:打包输出,如果过抵消检测使能,则将三项输入数据Fa、Fb、Fc中最小的数据输出,否则将舍入后的结果输出。
以下在具体实施方式中详细叙述本发明的特征以及优点,其内容足以使本领域的技术人员了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、权利要求以及图示,本领域技术人员可轻易理解本发明相关的目的及优点。
附图说明
图1是本发明浮点乘加装置的示意图;
图2是本发明浮点乘加装置的结构示意图;
图3是本发明优选实施例的浮点乘加装置的架构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明针对浮点乘加器在进行单独的加法,甚至连续的加法运算延时较长的问题,对浮点乘加器做了改进,使之既能够支持浮点乘加运算,又能够支持三操作数浮点连加运算,同时又不增加过多的硬件资源。
本发明提供一种支持三操作数浮点连加的浮点乘加装置,可以执行三项输入数据Fa×Fb+Fc的操作,也可以执行三项输入数据Fa+Fb+Fc的操作。
FADD3的算法分为第一阶段(first stage)和第二阶段(secondstage)。
在第一阶段包含以下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对尾数ma、mb、mc进行对阶操作,其中,根据指数进行排序,排序后,F1(s1,e1,m1)为拥有最大指数的浮点数,其次是F2(s2,e2,m2),最小的是F3(s3,e3,m3);
在第二阶段包含以下步骤:
步骤3:将尾数ma、mb、mc对阶后的结果压缩为两项;
步骤4:使用反码加法执行中间加法,获得计算结果的绝对值,同时,进行前导零预测;
步骤5:规格化移位和舍入,同时使用或逻辑进行过抵消检测;
步骤6:打包输出,如果过抵消检测使能,则将F3输出,否则将舍入后的结果输出。
MAF算法包含以下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对指数ea,eb,ec进行运算,同时执行尾数ma与mb相乘操作,并基于尾数ma与mb相乘的结果对尾数mc进行对阶操作;
步骤3:将尾数ma×mb的结果和尾数mc对阶后的结果压缩为进位-保留的形式;
步骤4:中间加法和前导零检测;
步骤5:规格化和舍入;
步骤6:打包输出。
对FADD3和MAF算法进行比较分析,可以发现两者大部分计算步骤是一样的。FADD3的第二阶段和传统的浮点乘加计算的后半段计算步骤类似,包括压缩、中间加、前导零计算、规格化和舍入、以及打包输出,主要不同的地方是FADD3的步骤2与MAF算法的步骤2,FADD3对两个操作数尾数进行进行对阶操作,而MAF进行乘法阵列压缩(ma×mb),同时对尾数mc进行对阶操作。
本发明设计出的浮点乘加装置,其在现有MAF架构的基础上进行改造,增加极少硬件,使得本发明的浮点乘加装置既能够执行重对阶的FADD3的操作也能够执行MAF操作。
请参考图1,为本发明浮点乘加装置的示意图,本发明提供的支持三操作数浮点连加的浮点乘加装置1,包括:
解包单元11,用于将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
第一运算模块12,对指数ea,eb,ec进行运算,执行尾数ma×mb,基于尾数ma×mb的结果对尾数mc进行对阶操作;
第二运算模块13,能够将尾数ma×mb的结果以及尾数mc对阶后的结果压缩为进位-保留的形式、执行中间加操作、执行前导零检测操作、执行规格化操作、执行舍入操作以及打包输出;
本发明的发明点在于:第一运算模块12还能够对尾数ma、mb、mc进行对阶操作且在第一运算模块12与所述第二运算模块14之间设置有选择单元13,选择单元13用于选择将尾数ma×mb的结果以及尾数mc对阶后的结果传送至第二运算模块14或者选择将尾数ma、mb、mc对阶后的结果传送至第二运算模块14;且,第二运算模块14能够将尾数ma、mb、mc对阶后的结果压缩为两项、能够执行过抵消检测操作。
请参考图2,为本发明浮点乘加装置的结构示意图,第一运算模块12包含:指数运算单元121,其输入端连接至解包单元的输出端,用于对指数ea,eb,ec进行运算;乘法阵列单元122,其输入端连接至解包单元的输出端,用于执行尾数ma与mb相乘操作;第一对阶逻辑单元123,其输入端连接至解包单元的输出端以及指数运算单元的输出端,用于基于尾数ma×mb的结果对尾数mc进行对阶操作;以及第二对阶逻辑单元124,其输入端连接至所述解包单元的输出端,用于对尾数ma、mb、mc进行对阶操作。
选择单元13连接至第一运算模块12,具体是指,第二对阶逻辑单元124的输出端、乘法阵列单元122的输出端以及第一对阶逻辑单元123的输出端连接至选择单元13的输入端。
第二运算模块14包含:压缩单元141,其输入端与选择单元13的输出端连接;选择单元13用于选择将乘法阵列单元122的结果和第一对阶逻辑单元123的结果传送至压缩单元141或者选择将第二对阶逻辑单元124的结果传送至压缩单元141;压缩单元141用于将乘法阵列单元122的结果和第一对阶逻辑单元123的结果压缩为进位-保留的形式或者将第二对阶逻辑单元124的结果压缩为两项。
第二运算模块14还包含:前导零检测单元142,其输入端与压缩单元141的输出端连接;中间加单元143,其输入端与压缩单元141的输出端连接;规格化单元144,其输入端与前导零检测单元142的输出端以及与中间加单元143的输出端连接;舍入单元145,其输入端与规格化单元144的输出端连接;打包输出单元146,其输入端与舍入单元145的输出端连接;以及过抵消检测单元147,其输入端与中间加单元143的输出端连接,其输出端与打包输出单元146的输入端连接。
图3是本发明优选实施例的浮点乘加装置的架构示意图,解包单元11(图3中的Unpacking)可以将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc),第二对阶逻辑单元124基于对阶算法对尾数ma、mb、mc进行对阶操作,其中,根据指数进行排序,排序后,F1(s1,e1,m1)为拥有最大指数的浮点数,其次是F2(s2,e2,m2),最小的是F3(s3,e3,m3);为了加速计算,移位器Rshifter1和Rshifter2分别对尾数m2和m3进行对阶操作,控制信号为δ1和δ2。移位器Rshifter3则负责在realign_en[2]使能时,对m3进行右移,控制信号为δ3。对于m2,在对阶使能时,直接固定到IL2位置即可,因此需要在它前面拼接f+5个零。m3的对阶移位结果根据对阶信号,从Rshifter2和Rshifter3的移位结果中选择。当对阶信号realign[2]使能时,选择Rshifter3的结果为m3的对阶结果。如果有数据从Rshifter3对阶范围中移出,则说明m2的值大于m3,可以正确生成中间结果的舍入位和粘贴位,不需要再进行末尾或来获得粘贴位。当realign_en[2]不使能时,选择Rshifter2的结果为m3的对阶结果,同时Rshifter2还需要末尾或逻辑来产生粘贴位。对阶逻辑需要比较的信号为δ2和f+3。FADD3对阶移位并取反的三个中间结果为m1_out,m2_out和m3_out。为了执行中间加法,需要将这三项通过压缩单元141(图3中的CSA)转换为等值的进位-保留形式。当对FADD3通过抵消检测单元147(图3中的or-gate network)执行过抵消检测时,需要检测中间加法结果的高f+5位是否为零,如果为零且粘贴位有效,则说明发生数据过抵消,此时F3将作为最终的计算结果输出。
请参考图3,其中,psum和pcarry为乘法阵列的输出,c_align为对mc的对阶。m1_out为F1的尾数,它的msb为IL1的位置,是对阶的起始位置。m2_out和m3_out为其他两个数的对阶情况,长度为2f+3。
MAF总共需要3f+2位的中间加法器,而FADD3需要2f+5位中间加法器。两者相比较,MAF的中间加法器位宽更大,所以FADD3的数据只要在MAF的对阶范围内,就可以共享中间加法器及以后的数据通路。
本实施例中的CSA逻辑需要扩展三位,因为MAF只有2f位CSA逻辑,而FADD3需要2f+3位CSA逻辑。
第二对阶逻辑单元124具有第一移位器(图3中的RShifter1)、第二移位器(图3中的RShifter3)和第三移位器(图3中的RShifter3),于本实施例中第二对阶逻辑单元124与第一对阶逻辑单元123共用第三移位器(图3中的RShifter3),
压缩单元141是进位保留加法器。
利用本发明的浮点乘加装置进行三输入浮点乘加操作包括如下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对指数ea,eb,ec进行运算,同时执行尾数ma与mb相乘操作,并基于尾数ma与mb相乘的结果对尾数mc进行对阶操作;
步骤3:选择将尾数ma×mb的结果和尾数mc对阶后的结果压缩为进位-保留的形式;
步骤4:执行中间加法和前导零检测操作;
步骤5:规格化;
步骤6:舍入;
步骤7:打包输出。
利用本发明的浮点乘加装置进行三操作数浮点连加操作包括如下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对尾数ma、mb、mc进行对阶操作;
步骤3:将尾数ma、mb、mc对阶后的结果压缩为两项;
步骤4:执行中间加法,获得计算结果的绝对值,进行前导零检测操作;
步骤5:规格化移位;
步骤6:舍入;
步骤7:进行过抵消检测;
步骤8:打包输出,如果过抵消检测使能,则将三项输入数据Fa、Fb、Fc中最小的数据输出,否则将舍入后的结果输出。
本发明的技术效果如下陈述:
(1)MAF和FADD3的使用都具有广泛性。MAF是一种通用的算术单元,而FADD3虽然是一种新的算术单元,但是也可以应用于多种计算场合。本发明的浮点乘加装置具有广泛的市场需求。
(2)MAF和FADD3都具有三个源操作数的指令格式,可以很容易在相同的***中兼容,并共享寄存器文件的访问路径。
(3)FADD3一定程度上可以增强MAF的加法能力。上文提到,MAF的加法能力使得加法操作较多时产生性能损失。而浮点加法和累加在很多算法中占据了相对大的比例,而如果使用MAF来完成这些运算,会带来较长的计算时延。FADD3可以对多个连续的浮点加法操作进行加速。比如算法中常见的累加操作,如果需要将n个浮点数加起来,对于MAF,每次循环迭代,可以累加一个源操作数,总共需要进行(n-1)次循环。而如果使用带有FADD3功能的MAF单元,每次可以累加两个源操作数,总共只需要(n-1)/2次循环,这样一方面计算时延也因此减半。另一方面,由于迭代次数减半会导致舍入操作也减半,从而合并后的新算术单元还可以获得较高的计算精度。
(4)两者可以共享相当比例的硬件路径,实现代价较小。从前文介绍的MAF结构以及FADDn结构中可以观察到,两者具有若干相同的计算步骤,可以共享较大部分的逻辑电路。
本发明的浮点乘加装置可以支持五种算术操作:乘法(MUL),加(ADD),减(SUB),乘加(MAF)和三输入加法(FADD3)。
本发明已由上述相关实施例加以描述,然而上述实施例仅为实施本发明的范例。必需指出的是,已揭露的实施例并未限制本发明的范围。相反的,在不脱离本发明的精神和范围内所作的更动与润饰,均属本发明的专利保护范围。

Claims (7)

1.一种支持三操作数浮点连加的浮点乘加装置,可以执行三项输入数据Fa×Fb+Fc的操作,其特征在于:所述浮点乘加装置可以执行三项输入数据Fa+Fb+Fc的操作。
2.一种支持三操作数浮点连加的浮点乘加装置,包括:
解包单元,用于将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
第一运算模块,对指数ea,eb,ec进行运算,执行尾数ma×mb,基于尾数ma×mb的结果对尾数mc进行对阶操作;
第二运算模块,能够将尾数ma×mb的结果以及尾数mc对阶后的结果压缩为进位—保留的形式、执行中间加操作、执行前导零检测操作、执行规格化操作、执行舍入操作以及打包输出;
其特征在于:
所述第一运算模块对尾数ma、mb、mc进行对阶操作;
选择单元,设置于所述第一运算模块与所述第二运算模块之间,用于选择将尾数ma×mb的结果以及尾数mc对阶后的结果传送至第二运算模块或者选择将尾数ma、mb、mc对阶后的结果传送至第二运算模块;
所述第二运算模块能够将尾数ma、mb、mc对阶后的结果压缩为两项、能够执行过抵消检测操作。
3.一种支持三操作数浮点连加的浮点乘加装置,其特征在于:所述浮点乘加装置包括:
解包单元,用于将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
指数运算单元,其输入端连接至解包单元的输出端,用于对指数ea,eb,ec进行运算;
乘法阵列单元,其输入端连接至解包单元的输出端,用于执行尾数ma与mb相乘操作;
第一对阶逻辑单元,其输入端连接至解包单元的输出端以及指数运算单元的输出端,用于基于尾数ma×mb的结果对尾数mc进行对阶操作;第二对阶逻辑单元,其输入端连接至所述解包单元的输出端,用于对尾数ma、mb、mc进行对阶操作;
选择单元,所述第二对阶逻辑单元的输出端、乘法阵列单元的输出端以及所述第一对阶逻辑单元的输出端连接至所述选择单元的输入端;压缩单元,其输入端与所述选择单元的输出端连接;
所述选择单元用于选择将乘法阵列单元的结果和第一对阶逻辑单元的结果传送至压缩单元或者选择将第二对阶逻辑单元的结果传送至压缩单元;
所述压缩单元用于将乘法阵列单元的结果和第一对阶逻辑单元的结果压缩为进位-保留的形式或者将第二对阶逻辑单元的结果压缩为两项;
前导零检测单元,其输入端与所述压缩单元的输出端连接;
中间加单元,其输入端与所述压缩单元的输出端连接;
规格化单元,其输入端与所述前导零检测单元的输出端以及与所述中间加单元的输出端连接;
舍入单元,其输入端与所述规格化单元的输出端连接;
打包输出单元,其输入端与所述舍入单元的输出端连接;
以及过抵消检测单元,其输入端与所述中间加单元的输出端连接,其输出端与所述打包输出单元的输入端连接。
4.根据权利要求3所述的支持三操作数浮点连加的浮点乘加装置,其特征在于:所述第二对阶逻辑单元具有第一移位器、第二移位器和第三移位器,所述第二对阶逻辑单元与所述第一对阶逻辑单元共用所述第三移位器。
5.根据权利要求3所述的支持三操作数浮点连加的浮点乘加装置,其特征在于:所述压缩单元是进位保留加法器。
6.一种使用根据权利要求1-5任意一项权利要求所述的浮点乘加装置进行三输入浮点乘加操作的方法,其特征在于:包括如下步骤:步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对指数ea,eb,ec进行运算,同时执行尾数ma与mb相乘操作,并基于尾数ma与mb相乘的结果对尾数mc进行对阶操作;
步骤3:选择将尾数ma×mb的结果和尾数mc对阶后的结果压缩为进位-保留的形式;
步骤4:执行中间加法和前导零检测操作;
步骤5:规格化;
步骤6:舍入;
步骤7:打包输出。
7.一种使用根据权利要求1-5任意一项权利要求所述的浮点乘加装置进行三操作数浮点连加操作的方法,其特征在于:包括如下步骤:
步骤1:将三项输入数据Fa、Fb、Fc分别解包为三元组Fa(sa,ea,ma)、Fb(sb,eb,mb)、Fc(sc,ec,mc);
步骤2:对尾数ma、mb、mc进行对阶操作;
步骤3:将尾数ma、mb、mc对阶后的结果压缩为两项;
步骤4:执行中间加法,获得计算结果的绝对值,进行前导零检测操作;
步骤5:规格化移位;
步骤6:舍入;
步骤7:进行过抵消检测;
步骤8:打包输出,如果过抵消检测使能,则将三项输入数据Fa、Fb、Fc中最小的数据输出,否则将舍入后的结果输出。
CN201510224486.1A 2015-05-06 2015-05-06 支持三操作数浮点连加的浮点乘加装置及其操作方法 Pending CN104808965A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510224486.1A CN104808965A (zh) 2015-05-06 2015-05-06 支持三操作数浮点连加的浮点乘加装置及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510224486.1A CN104808965A (zh) 2015-05-06 2015-05-06 支持三操作数浮点连加的浮点乘加装置及其操作方法

Publications (1)

Publication Number Publication Date
CN104808965A true CN104808965A (zh) 2015-07-29

Family

ID=53693823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510224486.1A Pending CN104808965A (zh) 2015-05-06 2015-05-06 支持三操作数浮点连加的浮点乘加装置及其操作方法

Country Status (1)

Country Link
CN (1) CN104808965A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442323A (zh) * 2019-08-09 2019-11-12 复旦大学 进行浮点数或定点数乘加运算的架构和方法
CN114461176A (zh) * 2022-04-12 2022-05-10 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
ALEXANDRE F. TENCA ET.AL: "Multi-operand Floating-point Addition", 《2009 19TH IEEE INTERNATIONAL SYMPOSIUM ON COMPUTER ARITHMETIC》 *
YAO TAO ET.AL: "A Novel Floating-Point Function Unit Combining MAF and 3-Input Adder", 《IEEE INTERNATIONAL CONFERENCE ON SIGNAL PROCESSING》 *
YAO TAO ET.AL: "Correctly rounded architectures for Floating-Point multi-operand addition and dot-product computation", 《APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP), 2013 IEEE 24TH INTERNATIONAL CONFERENCE ON》 *
YAO TAO ET.AL: "Three-Operand Floating-Point Adder", 《COMPUTER AND INFORMATION TECHNOLOGY, INTERNATIONAL CONFERENCE ON (2012)》 *
姚涛 等: "浮点和与点积计算结构研究", 《小型微型计算机***》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110442323A (zh) * 2019-08-09 2019-11-12 复旦大学 进行浮点数或定点数乘加运算的架构和方法
CN110442323B (zh) * 2019-08-09 2023-06-23 复旦大学 进行浮点数或定点数乘加运算的装置和方法
CN114461176A (zh) * 2022-04-12 2022-05-10 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
CN114461176B (zh) * 2022-04-12 2022-07-19 北京象帝先计算技术有限公司 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备

Similar Documents

Publication Publication Date Title
US20210157549A1 (en) Systolic array component combining multiple integer and floating-point data types
KR101086560B1 (ko) 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장
FI118612B (fi) Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
US8838664B2 (en) Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format
US20090198974A1 (en) Methods for conflict-free, cooperative execution of computational primitives on multiple execution units
CN110168493B (zh) 在128位宽的操作数上的融合乘加浮点运算
Kumm et al. Optimization of constant matrix multiplication with low power and high throughput
Sohn et al. Improved architectures for a floating-point fused dot product unit
US9712185B2 (en) System and method for improved fractional binary to fractional residue converter and multipler
US10379859B2 (en) Inference based condition code generation
TW201030607A (en) Instruction and logic for performing range detection
US8239442B2 (en) Computing module for efficient FFT and FIR hardware accelerator
US8996601B2 (en) Method and apparatus for multiply instructions in data processors
Seo et al. Montgomery modular multiplication on ARM-NEON revisited
Manolopoulos et al. An efficient multiple precision floating-point multiply-add fused unit
US9870200B2 (en) Decimal and binary floating point rounding
Kaivani et al. Floating-point butterfly architecture based on binary signed-digit representation
US20060248137A1 (en) Apparatus and method for implementing floating point additive and shift operations
JP5640081B2 (ja) 飽和を伴う整数乗算および乗算加算演算
TWI774093B (zh) 用於轉換資料類型的轉換器、晶片、電子設備及其方法
CN102360281B (zh) 用于微处理器的多功能定点乘加单元mac运算装置
CN104808965A (zh) 支持三操作数浮点连加的浮点乘加装置及其操作方法
KR20170138143A (ko) 단일 곱셈-누산 방법 및 장치
CN105404494A (zh) 一种基于内部前推的浮点融合乘加方法、装置及处理器
WO2022078265A1 (zh) 一种用于乘法器零标志位的产生电路、乘法器和检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150729