一种支持混合数据类型的浮点融合乘加器及其应用方法与流程

文档序号:16206883发布日期:2018-12-08 07:13阅读:334来源:国知局
一种支持混合数据类型的浮点融合乘加器及其应用方法与流程

本发明涉及微处理器中支持浮点乘法加法的功能部件,具体涉及一种支持混合数据类型的浮点融合乘加器及其应用方法。



背景技术:

随着计算机指令集的不断发展,多种精度数据需要综合处理的情况出现,然而现有的乘加电路无法直接处理不同精度的数据。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种支持混合数据类型的浮点融合乘加器及其应用方法,本发明能够完成不同数据类型之间的融合乘加计算,且在进行低精度乘法和高精度加法融合时,可保持中间过程乘法结果的精度。

为了解决上述技术问题,本发明采用的技术方案为:

一种支持混合数据类型的浮点融合乘加器,包括三个浮点乘法器、一个中间数据整合部件和三个多输入加法器,所述三个浮点乘法器分别包括半精度乘法器、单精度乘法器、双精度乘法器,所述三个多输入加法器分别包括半精度多输入加法器、单精度多输入加法器、双精度多输入加法器,所述三个浮点乘法器均包含两个输出端,且一个输出端直接输出、另一个输出端通过中间数据整合部件后与三个多输入加法器的一路输入端相连。

优选地,所述中间数据整合部件为缓冲部件buffer。

本发明还提供一种权利要求前述支持混合数据类型的浮点融合乘加器的应用方法,实施步骤包括:

1)从发射队列中获得两个乘法操作数和一个加法操作数的元素大小的信息;

2)根据两个乘法操作数的元素大小信息确定乘法操作的数据类型,乘法操作的数据类型为半精度、单精度、双精度中的一种;根据加法操作数的元素大小信息确定加法操作的数据类型,加法操作的数据类型为半精度、单精度、双精度中的一种;

3)将两个乘法操作数根据数据类型输入乘法操作的数据类型所对应的浮点乘法器,将加法操作数输入加法操作的数据类型所对应的多输入加法器;

4)浮点乘法器的输出结果不经舍入直接输出给中间数据整合部件;

5)中间数据整合部件对浮点乘法器输入的结果进行整形处理得到新的数据类型结果;

6)中间数据整合部件将得到的新的数据类型结果输出到加法操作的数据类型所对应的多输入加法器;

7)通过加法操作的数据类型所对应的多输入加法器进行浮点加法运算输出结果,完成融合乘加运算。

优选地,步骤5)中的整形处理包括对其指数部分exp进行位移,对其尾数部分frac进行拓展,最后拼接为新的数据类型结果。

和现有技术相比,本发明具有下述有益效果:

1、本发明可用于完成不同数据类型之间的融合乘加计算。

2、在进行低精度乘法和高精度加法融合时,可保持中间过程乘法结果的精度。

附图说明

图1为本发明实施例浮点融合乘加器的结构示意图。

图2为本发明实施例浮点融合乘加器应用方法的基本流程示意图。

具体实施方式

如图1所示,本实施例支持混合数据类型的浮点融合乘加器包括三个浮点乘法器、一个中间数据整合部件和三个多输入加法器,三个浮点乘法器分别包括半精度乘法器、单精度乘法器、双精度乘法器,三个多输入加法器分别包括半精度多输入加法器、单精度多输入加法器、双精度多输入加法器,三个浮点乘法器均包含两个输出端,且一个输出端直接输出、另一个输出端通过中间数据整合部件后与三个多输入加法器的一路输入端相连。参见图1,本实施例中三个浮点乘法器、一个中间数据整合部件和三个多输入加法器均具有独立的控制信号ctrl。半精度乘法器具有两个半精度乘法操作数输入端half_a和half_b、一个半精度输出端half_mul_out以及一个输出至中间数据整合部件的输出端。单精度乘法器具有两个单精度乘法操作数输入端single_a和single_b、一个单精度输出端single_mul_out以及一个输出至中间数据整合部件的输出端。双精度乘法器具有两个双精度乘法操作数输入端double_a和double_b、一个双精度输出端double_mul_out以及一个输出至中间数据整合部件的输出端。半精度多输入加法器的输入端具有半精度加法操作数输入端half_c和half_d、连接到中间数据整合部件的半精度加法操作数输入端以及半精度加法操作结果输出端half_add_out。单精度多输入加法器的输入端具有单精度加法操作数输入端single_c和single_d、连接到中间数据整合部件的单精度加法操作数输入端以及单精度加法操作结果输出端single_add_out。双精度多输入加法器的输入端具有双精度加法操作数输入端double_c和double_d、连接到中间数据整合部件的双精度加法操作数输入端以及双精度加法操作结果输出端double_add_out。

本实施例中,中间数据整合部件为缓冲部件buffer。

如图2所示,本实施例支持混合数据类型的浮点融合乘加器的应用方法的实施步骤包括:

1)从发射队列中获得两个乘法操作数和一个加法操作数的元素大小的信息;

2)根据两个乘法操作数的元素大小信息确定乘法操作的数据类型,乘法操作的数据类型为半精度、单精度、双精度中的一种;根据加法操作数的元素大小信息确定加法操作的数据类型,加法操作的数据类型为半精度、单精度、双精度中的一种;

3)将两个乘法操作数根据数据类型输入乘法操作的数据类型所对应的浮点乘法器,将加法操作数输入加法操作的数据类型所对应的多输入加法器;本实施例中,将两个乘法操作数根据数据类型输入乘法操作的数据类型所对应的浮点乘法器,将加法操作数输入加法操作的数据类型所对应的多输入加法器均为通过浮点乘法器以及多输入加法器的控制信号ctrl实现;

4)浮点乘法器的输出结果不经舍入直接输出给中间数据整合部件;

5)中间数据整合部件对浮点乘法器输入的结果进行整形处理得到新的数据类型结果;

6)中间数据整合部件将得到的新的数据类型结果输出到加法操作的数据类型所对应的多输入加法器;本实施例中,中间数据整合部件将得到的新的数据类型结果输出到加法操作的数据类型所对应的多输入加法器为通过中间数据整合部件的控制信号ctrl实现;

7)通过加法操作的数据类型所对应的多输入加法器进行浮点加法运算输出结果,完成融合乘加运算。

本实施例中,步骤5)中的整形处理包括对其指数部分exp进行位移,对其尾数部分frac进行拓展,最后拼接为新的数据类型结果。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。



技术特征:

技术总结
本发明公开了一种支持混合数据类型的浮点融合乘加器及其应用方法,支持混合数据类型的浮点融合乘加器包括三个浮点乘法器、一个中间数据整合部件和三个多输入加法器,应用方法包括对混合数据进行分类,输入到相应的浮点乘法单元,将未舍入的中间乘法结果输出到中间数据整合部分,中间整合部分对乘法结果进行整形,输出到相应数据类型的浮点加法单元。本发明为处理混合数据类型的浮点乘加运算设计,能够完成不同数据类型之间的融合乘加计算,且在进行低精度乘法和高精度加法融合时,可保持中间过程乘法结果的精度。

技术研发人员:李文哲;高军;赵天磊;王小岛;丁哲;游柏青
受保护的技术使用者:天津飞腾信息技术有限公司
技术研发日:2018.06.26
技术公布日:2018.12.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1