算术运算单元、信息处理设备和算术运算方法技术

技术编号:2841956 阅读:248 留言:0更新日期:2012-04-11 18:40
一种算术运算单元,其生成代表在算术运算结果被归一化时算术运算结果是否已被移位的信息,该算术运算单元包括:算术逻辑单元,用于输出算术运算结果;具有多个移位器的归一化器,用于对算术运算结果进行归一化;移位量计算器,用于计算用于多个移位器的多个移位量;预测器,用于通过使用所述多个移位量生成中间信息,中间信息是在算术运算结果被归一化时算术运算结果是否要被移位的预测结果;以及生成器,用于通过使用中间信息生成信息。生成黏着位所需的周期时间被缩短以高效地生成黏着位,并且用于生成黏着位的硬件资源被减少。

【技术实现步骤摘要】

本专利技术涉及用于通过使用算术运算单元中的浮点乘法加法器(FMA)中的黏着位(sticky bit)对算术运算结果进行舍入的技术。更具体而言,本专利技术涉及当使用预测理论时用于有效获得黏着位的技术,其中预测理论确定在预定位(例如,“1”位)的误差范围内在算术运算结果的舍入处理中使用的归一化移位量。
技术介绍
这里使用的浮点乘法加法器(FMA)例如被构造为如图12所示。图12所示的浮点乘法加法器100包括右移位器(整直器(aligner))10、乘法器11、CSA(进位保留加法器)12、绝对值加法器(Abs.加法器)13、移位量计算器20、归一化器(左移位器)300和舍入器400。浮点乘法加法器100支持遵照IEEE(电子及电气工程师协会)754的单精度算术和双精度算术。右移位器10、乘法器11、CSA 12和绝对值加法器13一起用作乘法加法器,该乘法加法器执行具有三个操作数(图12中的“OP1”、“OP2”和“OP3”)的浮点乘法加法算术运算。移位量计算器20确定从来自绝对值加法器13的输出数据(算术运算结果;参考稍后将描述的图13)的开头起连续有多少个零。这个结果是要被输入到归一化器300的移位量。即,移位量计算器20计算由归一化器300在左移位处理(归一化处理)中使用的归一化移位量。在浮点乘法加法器100中,移位量计算器20与绝对值加法器13的处理并行地计算归一化移位量,以便实现高速运算。移位量计算器20不是使用来自绝对值加法器13的输出数据而是使用来自前级中CSA 12的输出数据(即,绝对值加法器13的输入数据)来计算归一化移位量。移位量计算器20计算的归一化移位量是被表示为“7”位的数据,并且被输出到归一化器300。在移位量计算器20中,所计算的归一化移位量有些时候不足“1”位。归一化器300通过使用移位量计算器20计算出的归一化移位量来对来自绝对值加法器13的输出数据(下文中被称为算术运算结果)进行移位,其中算术运算结果中的预定位位置处的值总是被归一化器300设置为“1”。舍入器400对归一化器300归一化的算术运算结果进行舍入。舍入器400生成自身进行的舍入处理所需的黏着位。即,当在除算术运算结果中的假数(mantissa)之外要被省略的区域(黏着位生成区域;参考稍后描述的图14和15)中存在“1”时,舍入器400执行舍入处理以将“1”添加到假数,以便改进作为来自浮点乘法加法器100的输出数据的算术运算结果中的假数(稍后描述的图14和15)的精度。如图13所示,作为来自绝对值加法器13的输出数据的算术运算结果,是具有“128”位长度的数据(由“0”和“1”构成的数据),该“128”位例如被表示为C<127:0>。顺带提及,C<127:125>是固定值“000”。当浮点乘法加法器100支持单精度算术时,如图14所示形成来自归一化器300并被归一化器300归一化的输出数据(R<127:0>)。在“128”位的算术运算结果中,由来自最高数位的“4”个位构成的R<127:124>是固定值字段,由“23”个位构成的R<123:101>是假数,随后的R<100>是G(保护)位,R<99>是R(舍入)位,并且剩余的由“99”位构成的R<98:0>是黏着位生成区域,其是用于生成黏着位的区域。当浮点乘法加法器100支持双精度算术时,如图15所示形成来自归一化器300并被归一化器300归一化的输出数据(R<127:0>)。在“128”位的算术运算结果中,由来自最高数位的“4”个位构成的R<127:124>是固定值字段,由“52”个位构成的R<123:72>是假数,随后的R<71>是G(保护)位,R<70>是R(舍入)位,并且剩余的由“70”位构成的R<69:0>是黏着位生成区域,其是用于生成黏着位的区域。在图14和15分别示出的单精度算术和双精度算术的情形中,R<127:124>是固定值字段,其值是“0000”,但是R<124>的值总是被归一化器300的归一化处理设置为“1”。图16示出了归一化器300和舍入器400的结构。如图16所示,归一化器300包括多个移位器31至35,即,第一移位器(第一左移位器)31、第二移位器(第二左移位器)32、第三移位器(第三左移位器)33、第四移位器(第四左移位器)34和一位左移位器(1bit左移位器)35。第一到第四移位器31至34通过使用由移位量计算器20计算出的作为具有“7”位长度数据的归一化移位量SA<6:0>(SA移位量),对算术运算结果归一化(左移位)。由于输入数据(算术运算结果)是如图13所示的“128”位数据,所以由第一到第四移位器31至34所获得的移位量(即,由移位量计算器20计算出的归一化移位量)最大是“127”位。因此,第一移位器31基于7位长数据中的1位数据可以移位作为归一化移位量的“64”位或“0”位,第二移位器32基于7位长数据中的2位数据可以移位“48”、“32”、“16”或“0”位,第三移位器33基于7位长数据中的2位数据可以移位“12”、“8”、“4”或“0”位,并且第四移位器34基于7位长数据中的2位数据可以移位“3”、“2”、“1”或“0”位。一位移位器35确定预定位位置(这里是R<124>)处的值是否被移位变为“1”,以作为第四移位器34的归一化处理的结果。当预定位位置处的值不是“1”时,一位移位器35确定移位量计算器20计算出的归一化移位量不足“1”位,从而第四移位器34进一步将由第四移位器34归一化的算术运算结果向左移位“1”位。这样,预定位位置处的数据为“1”。即,一位移位器35确定从第四移位器34供应的输出数据的预定位位置处的值是否为“1”。当值为“1”时,一位移位器35不执行移位处理。当由于移位量计算器20计算出的归一化移位量不足“1”位因而预定位位置处的值是“0”时,一位移位器35将来自第四移位器34的输出数据仅移位“1”位,使得预定位位置处的值为“1”,以便完成归一化处理。如图16所示,舍入器400包括增量器41、黏着位生成器42、判定舍入单元43和选择电路44。增量器(incrementer)41执行舍入处理以将“1”添加到归一化器300归一化的算术运算结果中的假数(对于单精度算术是R<123:101>,对于双精度算术是R<123:72>)。黏着位生成器42生成判定舍入单元43使用的黏着位以确定由增量器41舍入的算术运算结果是否被最终输出。黏着位生成器42通过对黏着位生成区域中的所有数据执行OR操作确定数据“1”是否被包括在黏着位生成区域中。当至少一个“1本文档来自技高网...

【技术保护点】
一种算术运算单元,用于生成代表在算术运算结果被归一化时所述算术运算结果是否已被移位的信息,该算术运算单元包括:算术逻辑单元,用于输出所述算术运算结果;具有多个移位器的归一化器,用于对所述算术运算结果进行归一化;移位量 计算器,用于计算用于所述多个移位器的多个移位量;预测器,用于通过使用所述多个移位量生成中间信息,所述中间信息是在所述算术运算结果被归一化时所述算术运算结果是否要被移位的预测结果;以及生成器,用于通过使用所述中间信息生成所述信 息。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:田尻邦彦
申请(专利权)人:富士通株式会社
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1