用于具有指数按比例缩放的浮点融合乘法加法的微架构的制作方法

文档序号:8207696阅读:458来源:国知局
用于具有指数按比例缩放的浮点融合乘法加法的微架构的制作方法
【专利说明】用于具有指数按比例缩放的浮点融合乘法加法的微架构
[0001]共同待决专利申请案的参考
[0002]本专利申请案涉及以下共同待决的美国专利申请案:与本专利申请案同时申请的埃里希普朗德科(Erich Plondke)的“用于高效浮点计算的运算(OPERAT1NS FOREFFICIENT FLOATING POINT COMPUTAT1NS) ”(代理人案号 111810),所述申请案已转让给本受让人,且以引用的方式明确地并入本文中。
技术领域
[0003]所揭示实施例涉及处置浮点算术中的拐点情况。更确切地说,示例性实施例涉及用于专用指令且经设计以用于处置例如除法及平方根计算等浮点运算中的有问题的拐点情况的硬件支持。
【背景技术】
[0004]浮点数能够表示比定点数大得多的动态范围的值。因此,浮点算术已用于现代处理器中。IEEE 754标准提供用于表示二进制浮点数的标准化格式。符合标准的浮点算术的实施方案涉及某些辨识的异常及有问题的拐点情况。常规地,实施软件陷阱以处置这些拐点情况。然而,用软件处置异常及实施陷阱对于处理器资源来说为耗时的及负担重的。
[0005]在使用牛顿拉普森方法(Newton-Raphson approach)进行的除法的情况下,此类有问题的情况包含:下溢,其中最终的商值太小而无法在IEEE 754标准中使用指配位数来表示;溢出,其中最终的商值太大而无法在IEEE 754标准中使用指配位数来表示;不充分的精度,这归因于与中间结果的下溢及溢出相似的情境;及有效数字值,其并不是非常适合于倒数细化。其它有问题的情况涉及除以零、为无穷大或非数字值(NaN)的操作数值(分子/分母)等的除法。类似性质的问题同样出现在平方根计算中。
[0006]上文所提及的共同待决的申请案描述用于有效地处置此类有问题的拐点情况的技术。如本文所描述,及早地辨识可产生异常状况及有问题的拐点情况的浮点数且定义专用指令以用于将对此类浮点数执行的计算定点化。通过以此方式将计算定点化,保证了浮点运算产生不存在问题的结果。举例来说,通过将这些定点化应用于使用经辨识为将存在于实数空间的将引起上述有问题的情况中的一或多者的区中的浮点数进行的计算,可保证所述计算不存在问题。牛顿拉普森浮点除法/平方根中的一个常见的计算为乘法累加(MAC)或融合乘法累加(FM)计算,其中将加数操作数加到乘数及被乘数操作数的乘积/从乘数及被乘数操作数的乘积减去加数操作数。经定义为具有按比例缩放的融合乘法累加(或“FMASc”)的专用指令在共同待决的申请案中经定义用于将可导致溢出/下溢等的FM计算定点化。基本上,可用数学方法将FMASc指令表示为[(Rs*Rt) 土Rx]*2N,其中Rs、Rt及Rx为对其执行FM的浮点数且N可为形成比例因子的正或负定点数。
[0007]用硬件使用常规浮点处理器实施FMASc指令将必须首先执行FM计算且接着将比例因子应用到FMA计算。然而,如已经描述的,FMA自身可溢出/下溢或产生亚正常结果,且因此,分阶段进行FM及按比例缩放运算因而可能无法实现处置有问题的拐点情况的目标。即使FMA自身并不溢出或下溢,分阶段实施方案中的后续按比例缩放也可能产生不当的结果。
[0008]在图1中说明与分阶段进行FM及按比例缩放运算相关联的缺点中的一些缺点。如所展示,在框102处计算FMA运算。在框104中检查结果的溢出。如果发生溢出,且比例因子是用于按比例放大(例如,N为正),且最终结果仍溢出(在框132处),那么按比例缩放将不会引入溢出。然而,仍需要处置溢出。类似地,如果发生溢出,且如果比例因子是用于按比例缩小(例如,N为负)(在框124处),且最终结果仍溢出(在框130处),那么按比例缩放不会引入额外问题,如通过框134展示。然而,如果在按比例缩小之后的最终结果是正常的(框126),那么存在位损失,且最终结果不准确(框128)。
[0009]另一方面,如果在框104中不存在溢出,且在框106中FMA的结果为亚正常的(即,无法在标准IEEE 754记法中表示),那么框108中的按比例缩小可能不会为有问题的(框112),而框110中的按比例放大将造成位及准确度损失(框114)。如果在框106中FMA的结果并非亚正常的,且在框118中的按比例缩小后,在框120中最终结果为正常的或亚正常的或零,那么不存在于框122中引入的额外问题。类似地,如果在框106中FMA的结果并非亚正常的,且按比例放大造成最终结果溢出或为正常的框116,那么在框122中也不会引入额外问题。
[0010]总而言之,可见,在框114及128中存在至少两个状况,其中当按照惯例将FMASc指令执行为连续分阶段FM运算后接续按比例缩放时,比例因子自身可能引入额外问题。
[0011]因此,所属领域中存在对经配置以避免与实施FMASc指令相关联的上述及额外缺点的硬件的需要。

【发明内容】

[0012]本发明的示例性实施例涉及用于实施具有按比例缩放的浮点融合乘法及加法(FMASc)运算的系统及方法。
[0013]因此,示例性实施例涉及一种实施浮点按比例缩放的融合乘法及累加(FMASc)运算的方法,所述方法包括:将浮点乘数操作数与浮点被乘数操作数的尾数相乘以获得乘积的尾数,确定浮点加数操作数的尾数的前导零数目计数(LZC)。所述方法进一步包括:基于所述LZC、比例因子操作数及所述浮点加数操作数、所述浮点乘数操作数及所述浮点被乘数操作数的指数确定所述浮点加数操作数的预先对准移位值。所述方法进一步包括:将所述浮点加数操作数的所述尾数移位所述预先对准移位值以获得经预先对准的加数,将所述乘积的所述尾数与所述经预先对准的加数累加以获得中间结果,确定所述中间结果的前导零数目,基于所述预先对准移位值及所述中间结果的所述前导零数目确定归一化移位值,及基于所述归一化移位值将所述中间结果归一化以获得所述FMASc运算的经归一化的输出。
[0014]另一示例性实施例涉及一种执行浮点运算的方法,其包括:接收乘数、被乘数、加数及比例因子操作数。所述方法进一步包括对所述乘数及被乘数操作数的尾数执行部分乘法运算以获得中间乘积,基于所述比例因子及所述加数、乘数及被乘数的指数将所述加数的尾数与所述中间乘积预先对准,及将所述经预先对准的加数的所述尾数与所述中间乘积累加以获得所述浮点运算的结果。
[0015]另一示例性实施例涉及一种浮点单元,其包括输入乘数、被乘数、加数及比例因子操作数。所述浮点单元进一步包括:乘法器块,其经配置以将所述乘数及被乘数的尾数相乘以产生中间乘积;对准逻辑,其经配置以基于所述比例因子及所述加数、乘数及被乘数的指数将所述加数与所述中间乘积预先对准;及累加逻辑,其经配置以将所述经预先对准的加数的尾数与所述中间乘积相加或相减以获得所述浮点单元的结果。
[0016]另一示例性实施例涉及一种处理系统,其包括:用于接收浮点乘数、被乘数、加数及比例因子操作数的装置。所述处理系统进一步包括:用于将所述乘数及被乘数的尾数相乘以产生中间乘积的乘数装置;用于基于所述比例因子及所述加数、乘数及被乘数的指数将所述加数与所述中间乘积预先对准的对准装置;及用于将所述经预先对准的加数的尾数与所述中间乘积相加或相减以获得所述处理系统的浮点结果的累加装置。
[0017]又一示例性实施例涉及一种非暂时性计算机可读存储媒体,其包括在由处理器执行时致使所述处理器执行用于执行浮点运算的运算的代码,所述非暂时性计算机可读存储媒体包括:用于接收乘数、被乘数、加数及比例因子操作数的代码;用于对所述乘数及被乘数操作数的尾数执行部分乘法运算以获得中间乘积的代码;用于基于所述比例因子及所述加数、乘数及被乘数的指数将所述加数的尾数与所述中间乘积预先对准的代码;及用于将所述经预先对准的加数的所述尾数与所述中间乘积相加或相减以获得所述浮点运算的结果的代码。
[0018]另一示例性实施例涉及一种执行具有按比例缩放的双重数据路径浮点融合乘法及累加运算(FMASc)运算的方法,所述方法包括接收乘数、被乘数、加数及比例因子操作数。所述方法进一步包括:对所述乘数及被乘数操作数的尾数执行部分乘法运算以获得中间乘积,将所述加数的尾数分成具有较高有效位的高加数部分及具有较低有效位的低加数部分,将所述高加数部分对准以形成增量部分,将所述低加数部分与所述中间乘积对准,将所述低加数部分与所述中间乘积累加以形成相加部分,基于分别来自所述相加部分的进位输出或借位值将所述增量部分递增或递减以形成最终的增量部分,及将所述最终增量部分与所述相加部分串接以形成所述浮点运算的结果。
【附图说明】
[0019]呈现附图以辅助描述本发明的实施例,且提供所述附图仅用于说明本发明的实施例而非限制本发明的实施例。
[0020]图1说明使用常规浮点硬件实施按比例缩放的FM运算的缺点。
[0021]图2说明根据示例性实施例的经配置以实施FMASc指令的浮点单元200。
[0022]图3说明对应于示例性双重数据路径FMA运算的情况的表格。
[0023]图4说明对应于用于在示例性FMASc实施方案中确定操作数的对准及归一化的第一组条件的情况的表格。
[0024]图5说明对应于用于在示例性FMASc实施方案中确定操作数的对准及归一化的第二组条件的情况的表格。
[0025]图6说明对应于用于在示例性FMASc实施方案中确定操作数的对准及归一化的第三组条件的情况的表格。
[0026]图7说明用于在示例性FMASc实施方案中获得加数操作数的增量部分的逻辑的示例性实施方案。
[0027]图8说明用于在示例性FMASc实施方案中获得加数操作数的相加部分的逻辑的示例性实施方案。
[0028]图9说明用于实施FMASc运算的示例性操作流程的流程图描绘
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1