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

文档序号:8207696阅读:来源:国知局
45]用于FMASc指令的示例性格式可具有以下形式:Rd = Round (Scale [Rx土Rs*Rt,N],rounding_mode)。因此,基于操作数N,可在上述双重路径FMA框架中并入比例值2N。在一个实施例中,N可为8位值,使得比例值在范围[_128,127]内。如先前所提到,负值N可被称作将FM运算的结果Rd按比例缩小且正值N可被称作将结果Rd按比例放大。可如下文实施例中所论述来应用舍入模式。
[0046]如先前所论述,在其中结果Rd溢出或为亚正常的情况下,或如在例如巨大值消除、低于亚正常等极端情况下所描述,FMASc运算的常规实施方案可在指数按比例缩放之后导致精度损失。为了避免精度损失,实施例可提前认识到FMASc运算的可能造成问题的某些输入操作数。因此,实施例可在进入加法器块220之前,及在操纵加法器块220的输出的归一化块224及舍入块226之前,将中间结果与加数操作数预先对准。因此,实施例可确保在按比例缩放运算在逻辑上完成之前不会发生舍入。确保此情形的一种方式是将归一化块224及舍入块226加宽以在理论上保持FM运算的结果在执行按比例缩放之前具有无限精度。然而,为了在逻辑上实现相同效果,可提供前导零计数器(LZC)块230。下文描述块230到236与上文所描述的双重路径FMA框架的合作。
[0047]首先将提供用于双重路径FM的基本框架且接着将涉及按比例缩放运算的块230到234的功能性集成到所述描述中。这些块230到234可经配置以基于Ex及Em的相对值将比例因子作为用于Rx的预先对准移位量并入,如以下情况中将论述。以此方式,在示例性实施例中,可避免基于将FM分阶段后接续按比例缩放的实施方案。
[0048]如先前所提到,在示例性实施例中,Ex与Em之间的差的绝对值(| Ex-Em |)将控制双重路径FMA的运算。在图3到6中说明基于(IEx-EmI)的特定值的各种情况。一般来说,可将Rx的尾数(Mx)分裂成高部分(在下文中为“HMx”)及低部分(在下文中为“LMx”)。可在两个部分中计算FM结果Rd的尾数(在下文中为“Md” ),其中计算低部分(在下文中为“LMd”),且来自LMd的进位(如在进位传播加法中)可分别递增Rd的尾数的高部分(在下文中为“HMd”)。(应理解,具有Rx的减法的FMA( S卩,Rm-Rx)为类似的,且可在需要时按最少修改扩展关于其中将Rx与Rm相加(即,Rm+Rx)的FMA论述的一般原理。举例来说,在减法的情况下,代替进位,可使用借位来递减HMx而不是递增)。在示例性实施例中,双重路径FMA的“相加部分”可指LMd的计算,且“增量部分”可指HMd的计算。
[0049]现在参看图3,首先解释未集成按比例缩放组成部分的双重逻辑FMA。图3说明表格,表I对应于示例性双重路径FMA实施方案的第一种情况,其中Ex与Em之间的差在范围3内。应理解,在示例性实施例中使用常数“3”,但其不应被解释为限制。在一些实施例中,可使用大于2的任何合适值。将针对表I中的这些情况描述增量部分及相加部分的计算。
[0050]参看第一行302,说明其中Ex-Em > 3且FMA涉及Rx的加法或减法的情况。在此情况下,计算相加部分(LMd)且可在必要时使用来自相加部分的进位来递增增量部分(HMx)。在一个实施方案中,计算HMx及HMx+1两者且使用进位来选择HMd的正确值。表格中还展示对于输出的对准/归一化来说可能为所需的移位量。在此情况下,将LMd右移位达在逻辑上被定义为Rx及Rm的位置之间的距离的量,即,Ex-Em。一旦经归一化,便可将经归一化的LMd(在下文中为“NLMd”)与HMd串接以便形成Md。可在将HMd及LMd串接以形成Md之后执行舍入。在行304中,说明其中Ex及Em满足条件Ex-Em = 3且FMA涉及Rx的加法的情况。此情况类似于上文在行302中所描述的情况,且进位有可能来自LMd,所述情形可导致将增量应用到HMd。
[0051]参看306,说明其中Ex及Em满足条件Ex-Em < 3且FMA涉及Rx的加法或减法的情形。在此情况下,增量部分HMx实际上具有值“O”且因此从相加部分LMx产生所有Md。存在(Mm土LMx)可能经历大值消除的可能性。因此,可将图2的块222中的前导零预测单元(LZA)与块220中的加法器(将Mm及LMx相加)并行地提供以便计算用于LMd的移位量。可接着使用从块222中的LZA导出的移位量将(Mm土LMx)的所得值归一化(即,左移位)。此后可对所得Md执行舍入。
[0052]在子情况306a中,说明需要特殊考虑的情形。在此情况下,满足条件Ex-Em < 3,且另外,max (Ex,Em)彡47且FMA涉及Rx的减法。当满足这些条件时,很可能最终结果Md可能为亚正常的。如果最终结果Md为亚正常的,那么可标记此条件且可对用于LMd的左移位量设置上限,其中将上限值选择为max (Ex,Em)-1的值。
[0053]参看子情况306b,说明需要特殊考虑的又一种情形。在此情形中,Md为未对准的,其将指示Rs及Rt中的一者且仅一者为亚正常值。在此情境中,可能需要LMd的移位量的值大于尾数的位数(对于单精度为24)。因此,归一化过程可招致高达2*24-1或47位的左移位。大于尾数的位数的左移位量被称作巨大值消除,这是因为保持相关数据的所有位将被移出。当Ex-Em的值大于或等于-24时,可发生巨大值消除。如果Ex-Em =-24且将发生巨大值消除,那么可能需要额外的保护位以用于在归一化期间将LMx的位值存储在最低有效位(LSB)的右侧。另一方面,如果Ex-Em<-24,那么无法发生巨大值消除,这是因为对于未对准的结果,保证了 Mm的第一非零位位于Mm的位23或更高位(即,较高有效)处。将认识到,此情形类似于涉及将移位量的上限设置为值max (Ex,Em)-1的情形,如关于行306a所描述。
[0054]在行308中,说明其中Ex及Em满足条件Ex-Em = 3且FMA涉及Rx的减法的情况。此情形类似于行306,但将不会出现进位输出,且可从LMd获得结果。
[0055]现在转向图4,说明具有比例因子2N的双重路径FMA(FMASc)的示例性实施方案,其中满足条件Ex-Em > 26。更确切地说,参看图4的表2,说明FMASc运算的三种情形。情况402涉及对应于N为正值(即,FMASc涉及按比例放大)且Rx为正常的情形。此情况实质上对应于无按比例缩放的FMA运算,如图3中所描述。
[0056]根据情况404,其中N为正的,但Rx为亚正常的,可能需要将增量部分左移位达等于Rx的前导零及N的值的最小值的量(即,左移位=min (LZC(Rx),N)),且可能需要将相加部分右移位达l_(Em+N)。返回参看图2,可通过块230来提供LZC(Rx)的值。对应地,可能需要将“相加部分”右移位达等于EX-Em-min(LZC(RX,N))的量。可在块214中执行用于相加部分的移位/对准且可在块234中执行用于增量部分的移位/对准。
[0057]在上述情况404中,可归因于在增量部分的左移位期间的Ex与Em之间的差而在Rx与Rm之间产生“间隙”。此间隙代表性地展示于针对此情况的表2的列“间隙”中。为了考虑此间隙,可将对应于相关FMA运算的值(对于Rx的加法为“0”,且对于Rx的减法为“I”)插入到增量部分的LSB中。相加部分可保持对最终舍入有贡献。可在合并/串接增量部分之前,将相加部分右移位达值Ex-Em-min (LZC (Rx, N))。
[0058]在情况406中,其中N为负的(即,按比例缩小),将Mx的增量部分右移位达等于(l-(Ex+N))的量。为了保留可能从增量部分损失的位,提供额外存储装置以用于保留例如保护位及舍入位等位。类似地,可提供用于相加部分的粘滞位。
[0059]现在转向图5,在表3中说明示例性FMASc实施方案的实施方案中的特定情况,其中满足条件Ex-Em = 26?4或3。在情况502中,其中Rx为正常的且N为正的(S卩,按比例放大),运算实质上对应于FM运算的运算,类似于图4的情况402。
[0060]另一方面,当Rx为亚正常的时,说明两种子情况504a及504b。关于子情况504a,当 Ex-Em-min(LZC(Rx,N)) > 3 时,或当 Ex-Em-min(LZC(Rx,N)) = 3 且 FMASc 运算涉及Rx的加法时,将增量左移位达min(LZC(Rx),N)的值。可将相加部分右移位达量l-Em-min(LZC(Rx),N)。然而,在子情况504b中,其中满足以下条件中的一者:Ex-Em-min (LZC (Rx),N) < 3,或 Ex-Em-min (LZC (Rx),N) = 3 且 FMASc 运算涉及 Rx 的减法,增量部分为零,且因此,所得Mx全部来自相加部分。Rm的十进制(或二进制)点变成参考点且因此将所得相加部分左移位达LZC(Rx)且通过值(Em+N)对左移位设置上限。应理解,在子情况504b中,Ex = 1,这是因为Rx为亚正常的。因此,不需要依赖于用于计算LZC(Rx)的块230来计算前导零。可改为使用块222中的LZA。另外,N的值将小于LZC(Rx)。对应地,将满足条件Em+N > -2ο Em+N可为负的,这是因为相加部分可处置较高有效位置中的三个额外位(与Rm的二进制点相比较)。
[0061]现在参看情况506,其中N为负的(即,按比例缩小)且FMA运算涉及从Rm进行的加数Rx的减法,可将增量部分右移位达量1-(Ex+N),且还可将相加部分右移位,但量为l-(Em+N)。将需要存储保护位及粘滞位以用于此右移位。此情形说明拐点情况,其中舍入之前的结果Mx为零,但保护位从“I”切换到“0”,这是因为来自相加部分的借位信号(对应于Rx的减法)及增量部分的所有经移出位为零。
[0062]现在参看图6,说明
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1