一种基于内部前推的浮点融合乘加方法、装置及处理器的制造方法_2

文档序号:9646427阅读:来源:国知局
行规格化操作;
[0024]第五级单元,包括用于在第五级流水线中执行舍入操作的舍入单元,所述舍入单元包括舍入子单元,用于对所述第一规格化操作产生的中间结果进行舍入操作,产生浮点融合乘加结果值并输出。
[0025]优选地,所述指数加比选单元还包括第二指数加比选子单元,用于当存在第一前推值和第二前推值时,对所述第一前推值、所述第二前推值、第二积运算中第三因数的指数值和所述第二积运算中第四因数的指数值进行指数加比选操作,产生对阶移位操作的第二控制信号。
[0026]优选地,所述第二指数加比选子单元包括:
[0027]第一指数加比选子子单元,用于当存在第一前推值和第二前推值时,对所述第一前推值、第二积运算中第三因数的指数值和所述第二积运算中第四因数的指数值进行第一次指数加比选操作,产生中间指数值;
[0028]第二指数加比选子子单元,用于对所述第二前推值和所述中间指数值进行第二次指数加比选操作,产生对阶移位操作的第二控制信号。
[0029]优选地,所述对阶移位单元还包括第二对阶移位子单元,用于当存在第三前推值时,根据所述第二控制信号对所述相加操作产生的中间结果进行对阶移位操作并前推对阶移位操作产生的中间结果所对应的指数值。
[0030]优选地,所述第二级单元还包括用于在第二级流水线中执行第二规格化操作的第二规格化单元,所述第二规格化单元包括第二规格化子单元,用于当存在第三前推值时,对所述相加操作产生的中间结果进行规格化操作。
[0031]优选地,所述前导零单元还包括第二前导零子单元,用于当存在第三前推值时,对所述第二规格化操作产生的中间结果和所述阵列乘法操作中的第二部分压缩操作产生的中间结果进行前导零操作并前推前导零操作产生的中间结果所对应的指数值;
[0032]所述相加单元还包括第二相加子单元,用于当存在第三前推值时,对所述第二规格化操作产生的中间结果和所述阵列乘法操作中的第二部分压缩操作产生的中间结果进行相加操作并前推相加操作产生的中间结果。
[0033]本发明的一种处理器,包括如权利要求7-12任一项所述的浮点融合乘加装置。
[0034]本发明技术方案,具有如下优点:
[0035]1.本发明实施例提供的基于内部前推的浮点融合乘加方法,通过设置前推对阶移位操作产生的中间结果所对应的指数值、前导零操作产生的中间结果所对应的指数值和相加操作产生的中间结果,即将中间结果根据属性分为了三部分,分别前推到浮点融合乘加方法的步骤的不同的内部位置,从而可以更加快速地前推计算结果,加快了浮点融合乘加方法的执行速度,并且显著减少了因为数据真相关(RAW)引起的流水线的阻塞惩罚,提高了流水线的吞吐率。并且通过采用五级流水的设计,减少了流水级数,进一步提高了浮点融合乘加操作的执行速度。
[0036]2.本发明实施例提供的基于内部前推的浮点融合乘加方法,通过先进行对第一前推值、第二积运算中第三因数的指数值和第二积运算中第四因数的指数值的指数加比选操作,再进行对第二前推值和中间指数值的指数加比选操作,从而配合了流水线运行中先获得第一前推值再获得第二前推值的过程,获得一个前推值就计算一次加比选操作,进一步削减了流水线中阻塞的节拍,提高了执行速度。
【附图说明】
[0037]为了更清楚地说明本发明【具体实施方式】或现有技术中的技术方案,下面将对【具体实施方式】或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为现有技术中浮点乘加器的原理框图;
[0039]图2为本发明实施例1中基于内部前推的浮点融合乘加方法的一个具体示例的流程图;
[0040]图3为本发明实施例2中基于内部前推的浮点融合乘加装置的一个具体示例的原理框图;
[0041]图4为本发明实施例2中基于内部前推的浮点融合乘加装置的一个具体示例的原理框图。
【具体实施方式】
[0042]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0044]此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0045]实施例1
[0046]本实施例提供一种基于内部前推的浮点融合乘加方法,例如应用于执行BXC+A形式的浮点融合乘加操作,该浮点融合乘加操作可以为一个指令(即该指令执行操作:BXC+A),也可以包括至少两个指令(例如指令1执行操作:A2 = B1 XC1+A1,指令2执行操作:A3 = B2 X C2+A2,指令3执行操作:A4 = B3 X C3+A3等等),所以下文中的第一积运算例如为B1XC1,第二积运算例如为B2XC2。如图2所示,该浮点融合乘加方法包括五级流水线,包括如下步骤:
[0047]S1、在第一级流水线中执行包括指数加比选操作和阵列乘法操作中的第一部分压缩操作。
[0048]指数加比选操作包括当不存在第一前推值或第二前推值时,对加运算中加数的指数值、第一积运算中第一因数的指数值和第一积运算中第二因数的指数值进行指数加比选操作,产生对阶移位操作的第一控制信号,以控制移位数大小和移位方向。第一前推值为对阶移位操作产生的中间结果所对应的指数值。第二前推值为前导零操作产生的中间结果所对应的指数值。当存在第一前推值和第二前推值时,对第一前推值、第二前推值、第二积运算中第三因数的指数值和第二积运算中第四因数的指数值进行指数加比选操作,产生对阶移位操作的第二控制信号。
[0049]阵列乘法操作包括对第一因数的尾数值和第二因数的尾数值进行阵列乘法操作,采用乘法压缩阵列,由于乘法压缩阵列的路径较长,所以将阵列乘法操作分为第一部分压缩操作和第二部分压缩操作来执行。
[0050]S2、在第二级流水线中执行包括对阶移位操作和阵列乘法操作中的第二部分压缩操作。
[0051]对阶移位操作包括当不存在第三前推值时,根据第一控制信号对加数的尾数值进行对阶移位操作并前推对阶移位操作产生的中间结果所对应的指数值,前推至第一级流水线阶段。第三前推值为相加操作产生的中间结果。当存在第三前推值时,根据第二控制信号对相加操作产生的中间结果进行对阶移位操作并前推对阶移位操作产生的中间结果所对应的指数值。
[0052]S3、在第三级流水线中执行包括前导零操作和相加操作。当存在第三前推值时,在第二级流水线中执行还包括第二规格化操作。
[0053]前导零操作包括当不存在第三前推值时,对对阶移位操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行前导零操作并前推前导零操作产生的中间结果所对应的指数值,前推至第一级流水线阶段,前导零操作计算出相加结果进行规格化所需要的左移位数。当存在第三前推值时,对第二规格化操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行前导零操作并前推前导零操作产生的中间结果所对应的指数值。
[0054]相加操作包括当不存在第三前推值时,对对阶移位操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行相加操作并前推相加操作产生的中间结果,前推至第二级流水线阶段。当存在第三前推值时,对第二规格化操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行相加操作并前推相加操作产生的中间结果。
[0055]第二规格化操作包括当存在第三前推值时,对相加操作产生的中间结果进行规格化操作。通过增加第二规格化操作
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1