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

文档序号:9646427阅读:来源:国知局
br>[0087]第五级单元5,包括用于在第五级流水线中执行舍入操作的舍入单元,舍入单元包括舍入子单元,用于对第一规格化操作产生的中间结果进行舍入操作,产生浮点融合乘加结果值并输出。
[0088]优选地,指数加比选单元还包括第二指数加比选子单元,用于当存在第一前推值和第二前推值时,对第一前推值、第二前推值、第二积运算中第三因数的指数值和第二积运算中第四因数的指数值进行指数加比选操作,产生对阶移位操作的第二控制信号。
[0089]优选地,第二指数加比选子单元包括:
[0090]第一指数加比选子子单元,用于当存在第一前推值和第二前推值时,对第一前推值、第二积运算中第三因数的指数值和第二积运算中第四因数的指数值进行第一次指数加比选操作,产生中间指数值;
[0091 ] 第二指数加比选子子单元,用于对第二前推值和中间指数值进行第二次指数加比选操作,产生对阶移位操作的第二控制信号。
[0092]优选地,对阶移位单元还包括第二对阶移位子单元,用于当存在第三前推值时,根据第二控制信号对相加操作产生的中间结果进行对阶移位操作并前推对阶移位操作产生的中间结果所对应的指数值。
[0093]优选地,第二级单元还包括用于在第二级流水线中执行第二规格化操作的第二规格化单元,第二规格化单元包括第二规格化子单元,用于当存在第三前推值时,对相加操作产生的中间结果进行规格化操作。
[0094]优选地,前导零单元还包括第二前导零子单元,用于当存在第三前推值时,对第二规格化操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行前导零操作并前推前导零操作产生的中间结果所对应的指数值;
[0095]相加单元还包括第二相加子单元,用于当存在第三前推值时,对第二规格化操作产生的中间结果和阵列乘法操作中的第二部分压缩操作产生的中间结果进行相加操作并前推相加操作产生的中间结果。
[0096]举例来说,仅执行指令1:A2 = B1XC1+A1操作时,上述基于内部前推的浮点融合乘加装置的结构框图如图3所示,工作原理为:A1的指数值eal、B1的指数值ebl和C1的指数值eel分别输入第一指数加比选子单元,B1的尾数值mbl和C1的尾数值mcl分别输入第一部分压缩单元。然后,第一指数加比选子单元的输出值和A1的尾数值mal输入第一对阶移位子单元,第一部分压缩单元的输出值输入第二部分压缩单元。然后,第一对阶移位子单元的输出值和第二部分压缩单元的输出值分别输入第一前导零子单元和第一相加子单元。然后,第一前导零子单元的输出值和第一相加子单元的输出值分别输入第一规格化子单元。然后,第一规格化子单元的输出值输入舍入子单元,舍入子单元的输出值作为浮点融合乘加装置的输出值。
[0097]如果先执行指令1:A2 = B1XC1+A1操作,紧随其后执行指令2:A3 = B2XC2+A2操作,即指令2和指令1发生读后写相关RAW,那么上述基于内部前推的浮点融合乘加装置的结构框图如图4所示,工作原理为:A1的指数值eal、Bl的指数值ebl和C1的指数值eel分别输入第一指数加比选子单元,B1的尾数值mbl和C1的尾数值mcl分别输入第一部分压缩单元。然后,第一指数加比选子单元的输出值和A1的尾数值mal输入第一对阶移位子单元,第一部分压缩单元的输出值输入第二部分压缩单元。然后,第一对阶移位子单元的输出值和第二部分压缩单元的输出值分别输入第一前导零子单元和第一相加子单元,第一对阶移位子单元的输出值的指数值exp_bypassl、B2的指数值eb2和C2的指数值ec2分别输入第一指数加比选子子单元,B2的尾数值mb2和C2的尾数值mc2分别输入第一部分压缩单元。然后,第一前导零子单元的输出值的指数值lza_bypassl和第一指数加比选子子单元的输出值分别输入第二指数加比选子子单元,第一相加子单元的输出值分别输入第二规格化子单元和第二对阶移位子单元,第一部分压缩单元的输出值输入第二部分压缩单元。然后,第二规格化子单元的输出值和第二部分压缩单元的输出值分别输入第二前导零子单元和第二相加子单元。然后,第二前导零子单元和第二相加子单元的输出值分别输入舍入子单元,舍入子单元的输出值作为浮点融合乘加装置的输出值。其他包含更多指令的浮点融合乘加装置的工作原理与上述包含两个指令的工作原理相类似,区别仅仅是内部前推随着指令的增多而增多,此处不再详述。
[0098]上述基于内部前推的浮点融合乘加方法,通过设置前推对阶移位操作产生的中间结果所对应的指数值、前导零操作产生的中间结果所对应的指数值和相加操作产生的中间结果,即将中间结果根据属性分为了三部分,分别前推到浮点融合乘加方法的步骤的不同的内部位置,从而可以更加快速地前推计算结果,加快了浮点融合乘加方法的执行速度,并且显著减少了因为数据真相关(RAW)引起的流水线的阻塞惩罚,提高了流水线的吞吐率。并且通过采用五级流水的设计,减少了流水级数,进一步提高了浮点融合乘加操作的执行速度。
[0099]实施例3
[0100]本实施例提供一种处理器,包括实施例2中的浮点融合乘加装置。
[0101]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0102]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0103]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0104]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0105]显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
【主权项】
1.一种基于内部前推的浮点融合乘加方法,其特征在于,包括如下步骤: 在第一级流水线中执行包括指数加比选操作和阵列乘法操作中的第一部分压缩操作,所述指数加比选操作包括当不存在第一前推值或第二前推值时,对加运算中加数的指数值、第一积运算中第一因数的指数值和所述第一积运算中第二因数的指数值进行指数加比选操作,产生对阶移位操作的第一控制信号,所述第一前推值为对阶移位操作产生的中间结果所对应的指数值,所述第二前推值为前导零操作产生的中间结果所对应的指数值,所述阵列乘法操作包括对所述第一因数的尾数值和所述第二因数的尾数值进行阵列乘法操作,分为所述第一部分压缩操作和第二部分压缩操作; 在第二级流水线中执行包括对阶移位操作和所述阵列乘法操作中的第二部分压缩操作,所述对阶移位操作包括当不存在第三前推值时,根据所述第一控制信号对所述加数的尾数值进行对阶移位操作并前推对
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1