[发明专利]一种基于内部前推的浮点融合乘加方法、装置及处理器在审
申请号: | 201510957595.4 | 申请日: | 2015-12-18 |
公开(公告)号: | CN105404494A | 公开(公告)日: | 2016-03-16 |
发明(设计)人: | 姚涛;李芳;曹俊;贾琳黎 | 申请(专利权)人: | 苏州中晟宏芯信息科技有限公司 |
主分类号: | G06F7/483 | 分类号: | G06F7/483;G06F7/544 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 张建纲 |
地址: | 215163 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内部 浮点 融合 方法 装置 处理器 | ||
技术领域
本发明涉及数字信号处理领域,具体涉及一种基于内部前推的浮点融合乘加方法、装置及处理器。
背景技术
融合乘加操作(FMA,FusedMultiply-add)是一种一步执行A+B×C类型的浮点乘加操作,是一种常见的算术运算操作,它只进行一次舍入。也就是说,非融合乘加操作先计算B×C的结果,将结果舍入到N个有效位,然后再把结果和A相加,最后再将相加后的结果舍入到N个有效位。而融合乘加操作是以全精度计算A+B×C的值,然后将最终的结果舍入到N个有效位。可见融合乘加操作相比于传统的通过浮点加法器和浮点乘法器联合起来进行浮点乘加操作,具有计算速度快、计算精度高等的优点。从而,目前融合乘加器在许多通用处理器中,如ARM、POWER、Itanium等,代替了浮点加法器和浮点乘法器,用于执行浮点加、减、乘、乘加等算术操作。另外,在GPU、DSP等领域,也获得了非常广泛的应用。
目前通常采用的融合乘加方法例如是IBM公司Power6/7处理器的浮点部件中采用的方法,其工作原理是采用7级流水,如图1所示,支持第七阶段结果到第一阶段的数据前推(forwarding),和第六阶段结果到第一阶段的数据前推。其中第七阶段到第一阶段:将最终结果前推到下一条指令的操作数部分。第六阶段到第一阶段:将规格化还未舍入的结果前推到下一条指令的操作数部分。这种前推技术是将运算结果前推到浮点乘加器的入口处,在这种情况下,当出现数据相关的指令时仍旧需要等待几拍才能执行,容易引起流水线较长时间的阻塞,例如指令1执行操作:A2=A1+B1×C1,紧随其后的指令2执行操作:A3=A2+B2×C2,即指令1和指令2发生了读后写相关(ReadAfterWrite,RAW)采用这种前推技术,从浮点乘加器计算出来的结果被前推到浮点乘加器的入口处,那么指令2仍旧会被阻塞(n-2)拍才可以进入流水线,n为浮点乘加器流水线级数,所以降低了融合乘加操作的执行速度。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中的浮点融合乘加方法阻塞时间长、执行速度低的缺陷。
为此,本发明的一种基于内部前推的浮点融合乘加方法,包括如下步骤:
在第一级流水线中执行包括指数加比选操作和阵列乘法操作中的第一部分压缩操作,所述指数加比选操作包括当不存在第一前推值或第二前推值时,对加运算中加数的指数值、第一积运算中第一因数的指数值和所述第一积运算中第二因数的指数值进行指数加比选操作,产生对阶移位操作的第一控制信号,所述第一前推值为对阶移位操作产生的中间结果所对应的指数值,所述第二前推值为前导零操作产生的中间结果所对应的指数值,所述阵列乘法操作包括对所述第一因数的尾数值和所述第二因数的尾数值进行阵列乘法操作,分为所述第一部分压缩操作和第二部分压缩操作;
在第二级流水线中执行包括对阶移位操作和所述阵列乘法操作中的第二部分压缩操作,所述对阶移位操作包括当不存在第三前推值时,根据所述第一控制信号对所述加数的尾数值进行对阶移位操作并前推对阶移位操作产生的中间结果所对应的指数值,所述第三前推值为相加操作产生的中间结果;
在第三级流水线中执行包括前导零操作和相加操作,所述前导零操作包括当不存在第三前推值时,对所述对阶移位操作产生的中间结果和所述阵列乘法操作中的第二部分压缩操作产生的中间结果进行前导零操作并前推前导零操作产生的中间结果所对应的指数值,所述相加操作包括当不存在第三前推值时,对所述对阶移位操作产生的中间结果和所述阵列乘法操作中的第二部分压缩操作产生的中间结果进行相加操作并前推相加操作产生的中间结果;
在第四级流水线中执行包括第一规格化操作,所述第一规格化操作包括对所述相加操作产生的中间结果进行规格化操作;
在第五级流水线中执行包括舍入操作,所述舍入操作包括对所述第一规格化操作产生的中间结果进行舍入操作,产生浮点融合乘加结果值并输出。
优选地,所述指数加比选操作还包括当存在第一前推值和第二前推值时,对所述第一前推值、所述第二前推值、第二积运算中第三因数的指数值和所述第二积运算中第四因数的指数值进行指数加比选操作,产生对阶移位操作的第二控制信号。
优选地,所述当存在第一前推值和第二前推值时,对所述第一前推值、所述第二前推值、第二积运算中第三因数的指数值和所述第二积运算中第四因数的指数值进行指数加比选操作,产生对阶移位操作的第二控制信号的步骤包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州中晟宏芯信息科技有限公司,未经苏州中晟宏芯信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510957595.4/2.html,转载请声明来源钻瓜专利网。