浮点加法器、通过浮点加法器执行的方法和信息处理系统的制作方法_3

文档序号:8339356阅读:来源:国知局
MUX 150由大小区分信号111控制。
[0050]如上所述,如果操作数的小数部分不对齐,则加法是有问题的。在一些实施例中,较小信号214的小数点可被移动,使得较大操作数212和较小操作数214的小数点对齐。在示出的实施例中,这可由对齐电路154完成。在这样的实施例中,对齐电路154可由ExpDifT计算电路152的输出112控制。
[0051]在示出的实施例中,FPA 100可被构造为检测操作数214是否显著地超出较大操作数212的范围。电路156(例如,一系列或门等)可在这样的情况下产生至少一个粘贴位(sticky bit) 113,粘贴位113指示非零的较小的操作数超出范围。在示出的实施例中,粘贴位113和任何其他控制位(例如,保护位、舍入位等)可与操作数212和214连接。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
[0052]在各种实施例中,操作数212和214可被输入到整数加法电路296。在示出的实施例中,整数加法电路296可包括一对整数加法器158和160。在一个实施例中,第一加法器158可假定在加法中不存在溢出,第二加法器160可假定在加法中将存在溢出,或者在减法的情况下,第二加法器160可假定将存在I位移位。在这样的实施例中,第二加法器160可使用进位存储算术电路162 (例如,3:2压缩器等)。在各种实施例中,加法器158和160还可接收各种舍入常数116作为输入。
[0053]如上所述,在各种实施例中,可并行采用这两个整数加法器158和160,以提高计算的速度和容易性。在各种实施例中,可采用整数加法选择器264以在加法器158和160的两个输出之间进行选择。
[0054]在传统系统中,整数加法电路296可包括整数加法选择器。整数加法选择器可由整数加法选择信号控制,其中,整数加法选择信号基于溢出指示符和左移位指示符。
[0055]相反,在示出的实施例中,在FPA 100中,整数加法选择器264可由整数加法选择信号218控制。在这样的实施例中,整数加法选择信号218的值还可至少部分地基于溢出指示符和左移位指示符。然而,整数加法选择信号218还可基于两个非规格化操作数(例如,操作数202和204等)的加法是否导致规格化结果(例如,结果242等)的指示。在这样的实施例中,整数加法选择信号218可由Far路径非规格化至规格化校正电路包括。
[0056]在示出的不仅处理规格化数而且处理非规格化操作数202和204的实施例中,可对于两个非规格化数的加法创建规格化数。在这样的实施例中,必须再次考虑非规格化数的指数偏置的奇异性。在示出的实施例中,加法选择器264的选择逻辑218已被改变为适应这种情况的发生。在这样的实施例中,整数加法选择信号218还可基于两个非规格化操作数(例如,操作数202和204等)的加法是否导致规格化结果(例如,结果242等)的指示。在这样的实施例中,非规格化至规格化校正逻辑可通过加/舍入阶段296中的I位左移位校正机制共享。
[0057]在示出的实施例中,如上所述,Far路径298可最后产生Far路径结果242。在各种实施例中,Far路径298的包括交换MUX 150的部分和包括整数加法电路296的部分可被包括在不同的流水线阶段(例如,FXU FX2等)中。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
[0058]现在检查Close路径299的运作。在各种实施例中,Close路径299被构造为仅在两个操作数202和204相差一个数量级(或更少)的情况下处理减法。在一些实施例中,Close路径299还被构造为调节被称为“大规模相消(massive cancellat1n) ”的现象,在该现象中,两个数的减法导致足够小的数,使得必须移动小数点以达到适当格式的规格化数,或者在示出的实施例中,创建非规格化数。
[0059]在示出的实施例中,操作数202和204被输入到Close路径299。操作数202和204均经过非规格化数检测电路253。在一个实施例中,如上所述,非规格化数检测电路253可包括一系列或门(OR树)。在一个实施例中,非规格化数检测电路253可被构造为检测各个操作数202或204的小数部分是否包括前导零。在各种实施例中,非规格化数检测电路253可产生非规格化指示信号213c。在各种实施例中,Far非规格化数检测电路252和Close非规格化数检测电路253可以是相同的电路。在另一实施例中,可存在两个单独的电路和输出信号。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
[0060]如上所述,在加法运算期间,期望操作数210对齐到共同小数点。在各种实施例中,如果需要,则Close路径299可包括被构造为移动较小操作数的小数点的对齐电路171。
[0061]在各种实施例中,FPA 100的Close路径299可包括被构造为确定两个操作数202和204中的哪一个是较大操作数的指数差(ExpDiff)计算电路172。这导致大小区分信号231。在各种实施例中,Close路径ExpDiff计算电路172可以小于(例如,2比特等)Far路径ExpDiff计算电路152(例如,11比特等)。这是因为对于Close路径299,可以假定操作数202和204的值彼此分开得不是非常远。
[0062]再次,如果需要,则两个操作数(例如,预交换信号210等)被重新排序或交换,使得较大的或固定的操作数232被置于加法器174和176的期望的输入组上,同样地,较小的操作数234亦如此。该动作由交换复用器(MUX)170执行。在FPA的传统实施例中,交换MUX 170可由大小区分信号控制,其中,大小区分信号指示两个操作数202和204中的哪一个较大。然而,在一个实施例中,FPA 100的交换MUX 170可由信号231控制。在这样的实施例中,信号231可额外地基于指示的较小操作数是否是非规格化。
[0063]在各种实施例中,Close路径299可包括两个整数加法器174和176。在一个实施例中,第一加法器174可被构造为执行操作数232与操作数234的减法,而第二加法器176可被构造为执行操作数234与操作数232的减法。MUX 178或选择器可被构造为(基于控制信号135)选择来自两个加法器174和176的为正的结果。
[0064]在各种实施例中,当两个浮点数相减时,可发生被称为“大规模相消”的效果。在各种实施例中,当两个操作数的指数相等或相差仅一个数量级时,数字能够在值上如此接近,使得减法结果在有效数或小数部分中包括一个或更多个前导零。在这样的实施例中,通常发生小数点的移动以使结果规格化,并将前导I返回到其预期位置(如果数字是规格化数)。
[0065]在各种实施例中,Close路径299可被构造为使作为MUX 178输出的结果信号236规格化。在这样的实施例中,该规格化可包括移动结果信号236的小数点使得数字处于适当的浮点格式。在结果信号236是规格化数的情况下,这意味着移动小数点使得小数部分包括前导I。在结果信号236是非规格化数的情况下,这意味着移动小数点,但是不移动使得指数部分不再有效那样多。在这样的实施例中,小数点移位的量必须受限制或受钳制。
[0066]在示出的实施例中,Close路径299可包括小数点移位电路286。在这样的实施例中,小数点移位电路286可被构造为估计将Close路径结果的小数点移动多少。在示出的实施例中,小数点移位电路286可包括前导零估计器电路的常规元件,并被构造为估计将Close路径结果244或结果信号236的小数点移动多少。在这样的实施例中,前导零估计器电路可包括前导零预测器(LZA)ISO和优先级编码器(PENC) 181。
[0067]在各种实施例中,LZA 180可被构造为确定或估计小数点需要被移动多少位以使结果数字具有非零前导数字。例如,为了将数字0.0001表示为1.0 X 2_4,小数点将需要被移位4次。在各种实施例中,优先级编码器(PENC) 181可被构造为将LZA 180的输出137转换为更易于由位移硬件(例如,组件175和273等)处理的编码值138。在这样的实施例中,PENC 181可被构造为检测LZA的输出矢量137中的第一个I的位置。
[0068]在传统FPA中,PENC 181的输出138可被输入到如下面描述的小数点移位器175。然而,在示出的图1的实施例中,因为在最小可能指数部分的界限处存在非规格化数,所以不可将有效数上移到其包括整数(即,I等)的位置。这是因为,每次将有效数上移一个小数点时,指数部分必须减小。然而,由于非规格化数的指数部分相当小,因此存在其不能被进一步减小的点,因而有效数必须保持〈I。这是非规格化数的前导位是O而规格化数的前导位是I的原因。在示出的实施例中,采用逻辑和硬件组件(例如,组件281、282和284等),从而当已经达到可发生的指数减小的最大量(例如,指数值为零等)时钳制或暂停小数点移位。
[0069]在示出的实施例中,Close路径299可包括钳位电路287,钳位电路287被构造为当两个浮点操作数202和204中的至少一个包括非规格化数时,停止或暂停Close路径结果244或236的小数点移位。在一个实施例中,钳位电路287可被构造为确定Close路径结果244或236是否是非规格化数,并且如果是非规格化数,则在超过小数点移位的最大量之前停止或暂停Close电路路径的小数点移位。
[0070]在示出的实施例中,钳位电路287可接收较大的操作数202或204的指数部分237作为输入。该指数部分237可由最大移位评估器281评估以确定在结果236的指数部分无效之前小数点可被移动的最大次数(或者结果236的指数部分可减小的次数)。指数部分237可与PENC 181的输出138比较以确定指数部分237是否可减小PENC 181所建议的那样多。在示出的实施例中,这可由钳位检测器282完成。在示出的实施例中,移位量选择器284可基于钳位检测器282的输出在最大移位评估器281和PENC 181的输出之间进行选择。在示出的实施例中,钳位电路287可包括最大移位评估器281、钳位检测器282和移位量选择器284。
[0071]在示出的实施例中,如上所述,Close路径299可包括小数点移位器175。在这样的实施例中,小数点移位器175可被构造为基于小数点移位电路286的输出238移动结果236的小数点。
[0072]在一些实施例中,LZA 180可仅产生估计,并且可以不如期望的精确。有时,LZA180估计可能差一个小数点。在这样的实施例中,Close路径299可包括补偿小数点移位器273。在传统FPA中,补偿小数点
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1