《浮点加法器.pdf》由会员分享,可在线阅读,更多相关《浮点加法器.pdf(27页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102855117 A (43)申请公布日 2013.01.02 C N 1 0 2 8 5 5 1 1 7 A *CN102855117A* (21)申请号 201210229706.6 (22)申请日 2012.06.29 1111035.0 2011.06.29 GB 1111399.0 2011.07.05 GB G06F 7/485(2006.01) (71)申请人 ARM有限公司 地址英国剑桥 (72)发明人卓恩尼斯塔德 (74)专利代理机构北京东方亿思知识产权代理 有限责任公司 11258 代理人李晓冬 (54) 发明名称 浮点加法器 (57) 摘要 本。
2、公开涉及一种浮点加法器。浮点加法器电 路16,18,20被提供有远路径电路18和近路径电 路20。远路径电路利用尾随零TZ的计数和输入 操作数指数的差值来形成相应的后缀值,该后缀 值与输入加数的尾数串接并且当被求和时用于生 成代替传统被计算的粘滞位的进位。在近路径内, 最小值电路46被用于计算在相减中产生的中间 尾数的前导零计数与输入操作数指数值的较大值 中的较低值,以使得被应用于中间尾数值的左移 位不会由于所应用的去除前导零的左移位太大并 且因此对应于不能被有效表示的指数,而产生无 效的浮点结果。 (30)优先权数据 (51)Int.Cl. 权利要求书5页 说明书11页 附图10页 (19)。
3、中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 5 页 说明书 11 页 附图 10 页 1/5页 2 1.一种浮点加法器电路,用于将第一浮点数与第二浮点数相加,所述第一浮点数具有 指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B , 所述浮点加法器电路包括: 远路径电路,被配置为当所述第一浮点数和所述第二浮点数匹配至少一个预定的远路 径条件时生成结果浮点值,所述远路径电路具有: 尾随零计数电路,被配置为确定与在从M B 的最低有效位端开始M B 的最低有效(E A -E B ) 位内的尾随零值的游程相对应的尾随零值。
4、TZ;以及 远路径加法器,被配置为将第一加数值与第二加数值相加,所述第一加数值包括M A 与 第一后缀值串接,所述第二加数值包括不带其(E A -E B )最低有效位的M B 与第二后缀值串接; 其中 所述第一后缀值和所述第二后缀值依赖于TZ和(E A -E B )中相应的一个而形成。 2.根据权利要求1所述的浮点加法器电路,其中,所述第一后缀值和所述第二后缀值 依赖于TZ和NOT(E A -E B )中相应的一个而形成。 3.根据权利要求2所述的浮点加法器电路,其中,所述第一后缀值包括三个填充位后 接第一后缀结尾值,所述第二后缀值包括一个填充位后接第二后缀结尾值,所述第一后缀 结尾值和所述第。
5、二后缀结尾值包括(TZ+2)和NOT(E A -E B )中相应的值。 4.根据权利要求3所述的浮点加法器电路,其中,所述三个填充位和所述一个填充位 总和为与所述远路径加法器的输出中的最低精度单位的一半相对应的值。 5.根据权利要求1所述的浮点加法器电路,其中,所述第一后缀值和所述第二后缀值 依赖于NOT(TZ)和(E A -E B )中相应的一个值而形成。 6.根据权利要求5所述的浮点加法器电路,其中,所述第一后缀值包括三个填充位后 接第一后缀结尾值,所述第二后缀值包括一个填充位后接第二后缀结尾值,所述第一后缀 结尾值和所述第二后缀结尾值包括NOT(TZ+2)和(E A -E B )中相应的。
6、值。 7.根据权利要求6所述的浮点加法器电路,其中,所述三个填充位和所述一个填充位 总和为与所述远路径加法器的输出中的最低精度单位的一半相对应的值。 8.根据权利要求1所述的浮点加法器电路,其中,所述第二加数具有(E A -E B )个零值的 前缀。 9.根据权利要求1所述的浮点加法器电路,其中,所述远路径电路具有第二加数移位 器电路,所述第二加数移位器电路被配置为与所述尾随零计数电路并行操作,所述第二加 数移位器电路将MB逻辑右移(E A -E B )位的位置。 10.根据权利要求9所述的浮点加法器电路,其中,所述第二加数移位器电路在所述第 二加数值的最高有效的(E A -E B )位的位置。
7、中提供前导零值。 11.根据权利要求1所述的浮点加法器电路,其中,所述远路径电路具有被配置为与所 述尾随零计数电路并行操作的指数差值计算电路,所述指数差值计算电路计算(E A -E B )的 值。 12.根据权利要求1所述的浮点加法器电路,其中,M A 的位长大于或等于2 X ,其中X是 正整数,并且所述第一加数的位长小于2 (X+1) 。 13.根据权利要求1所述的浮点加法器电路,其中,第一输入加数和第二输入加数被接 收,并且所述浮点加法器电路包括复制电路和多路选择器,所述复制电路被配置为形成假 权 利 要 求 书CN 102855117 A 2/5页 3 设所述第一输入加数大于所述第二输入。
8、加数的第一处理路径以及假设所述第二输入加数 大于所述第一输入加数的第二处理路径,所述多路选择器用于当在加法处理已经在所述复 制路径中至少部分完成之后确定了所述第一输入加数和所述第二输入加数中哪个更大后, 选择来自所述第一处理路径和所述第二处理路径之一的结果。 14.根据权利要求1所述的浮点加法器电路,其中,第一输入加数和第二输入加数被接 收,并且所述浮点加法器电路包括比较电路和切换电路,所述比较电路被配置为执行对所 述第一输入加数和所述第二输入加数的比较以确定哪个更大,所述切换电路被配置为在所 述第一输入加数和所述第二输入加数的相加开始之前,将所述第一输入加数和所述第二输 入加数的路径切换为根。
9、据所述比较确定的路径。 15.根据权利要求1所述的浮点加法器电路,其中,所述远路径电路具有反相电路,该 反相电路被配置为在所述加法器电路将所述第一加数和所述第二加数相加之前对M B 内的 位进行反相,以使得从所述第一浮点值减去所述第二浮点值。 16.根据权利要求1所述的浮点加法器电路,所述浮点加法器电路包括: 近路径电路,被配置为当所述第一浮点数和所述第二浮点数匹配至少一个预定的近路 径条件时生成结果浮点值,所述近路径电路具有: 近路径加法器,被配置为确定与(M A -M B )相对应的中间尾数值M I ; 前导零计数电路,被配置为确定与在从M I 的最高有效位端开始M I 内的前导零值的游程。
10、 相对应的前导零值LZ; 最小值电路,被配置为将结果移位值确定为LZ和E A 中较低的值;以及 结果移位电路,被配置为将M I 左移与所述结果移位值相对应的多个位的位置以生成构 成结果浮点数的一部分的结果尾数M R 。 17.根据权利要求16所述的浮点加法器电路,其中,所述近路径电路具有尾数移位电 路,所述尾数移位电路被配置为如果E A 不等于E B 则在M B 被输入到所述近路径加法器之前 对M B 执行(E A -E B )位位置的右移。 18.根据权利要求16所述的浮点加法器电路,其中,所述最小值电路被配置为在所述 结果移位值的一个或多个低阶位之前生成所述结果移位值的一个或多个高阶位。 。
11、19.根据权利要求18所述的浮点加法器电路,其中,所述结果移位电路是被配置为将 M I 右移由所述结果移位量给定的多个位位置的对数移位器,所述对数移位电路被配置为在 所述一个或多个低阶位已被所述最小值电路生成之前开始任何取决于所述一个或多个高 阶位的左移。 20.根据权利要求16的浮点加法器电路,其中,所述最小值电路具有与LZ和E A 相对应 的两个输入P和Q,并且通过将长度为2 i 的所述结果移位值的一系列前缀部分P i ,从i0 开始,确定为以下值来确定所述结果移位值: P i (LZ i AND NOT GR i )OR(E Ai AND GR i ),其中 LZ i 为长度为2 i 的。
12、LZ的前缀部分; E Ai 为长度为2 i 的E A 的前缀部分; 对于i0和有效位递减的每个位位置k,EQ i k为NOT(LZkXORE A k); 对于i0和有效位递减的每个位位置k,当LZkE A k时GR i k1,并且当 LZkE A k时GR i k0; 权 利 要 求 书CN 102855117 A 3/5页 4 对于i0和有效位递减的每个位位置k,EQ i kEQ i-1 kAND EQ i-1 k+2 (i-1) ;以及 对于i0和有效位递减的每个位位置k,GR i kGR i-1 kOR(E i-1 kAND GR i-1 k+2 (i-1) )。 21.根据权利要求16。
13、所述的浮点加法器电路,其中,所述近路径预定量为1。 22.根据权利要求16所述的浮点加法器电路,其中,所述最小值电路约束所述结果移 位值以使得所述结果浮点数为有效的非正规浮点数。 23.一种浮点加法器电路,用于从第一浮点数减去第二浮点数,所述第一浮点数具有指 数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B ,所 述浮点加法器电路包括: 近路径电路,被配置为当(E A -E B )小于近路径预定量时生成结果浮点值,所述近路径电 路具有: 近路径加法器,被配置为确定与(M A -M B )相对应的中间尾数值M I ; 前导零计数电路,被。
14、配置为确定与在从M I 的最高有效位端开始M I 内的前导零值的游程 相对应的前导零值LZ; 最小值电路,被配置为将结果移位值确定为LZ和E A 中较低的值;以及 结果移位电路,被配置为将M I 左移与所述结果移位值相对应的多个位的位置以生成构 成结果浮点数的一部分的结果尾数M R 。 24.根据权利要求23所述的浮点加法器电路,其中,所述近路径电路具有尾数移位电 路,所述尾数移位电路被配置为如果E A 不等于E B 则在M B 被输入到所述近路径加法器之前 对M B 执行(E A -E B )位位置的右移。 25.根据权利要求23所述的浮点加法器电路,其中,所述最小值电路被配置为在所述 结果。
15、移位值的一个或多个低阶位之前生成所述结果移位值的一个或多个高阶位。 26.根据权利要求25所述的浮点加法器电路,其中,所述结果移位电路是被配置为将 M I 右移由所述结果移位量给定的多个位位置的对数移位器,所述对数移位电路被配置为在 所述一个或多个低阶位已被所述最小值电路生成之前开始任意取决于所述一个或多个高 阶位的左移。 27.根据权利要求23的浮点加法器电路,其中,所述最小值电路具有与LZ和E A 相对应 的两个输入P和Q,并且通过将长度为2 i 的所述结果移位值的一系列前缀部分P i ,从i0 开始,确定为以下值来确定所述结果移位值: P i (LZ i AND NOT GR i )OR。
16、(E Ai AND GR i ),其中 LZ i 是长度为2 i 的LZ的前缀部分; E Ai 是长度为2 i 的E A 的前缀部分; 对于i0和有效位递减的每个位位置k,EQ i k为NOT(LZkXORE A k); 对于i0和有效位递减的每个位位置k,当LZkE A k时GR i k1并且当 LZkE A k时GR i k0; 对于i0和有效位递减的每个位位置k,EQ i kEQ i-1 kAND EQ i-1 k+2 (i-1) ;以及 对于i0和有效位递减的每个位位置k,GR i kGR i-1 kOR(E i-1 kAND GR i-1 k+2 (i-1) )。 28.根据权利要求。
17、23所述的浮点加法器电路,其中,所述近路径预定量为1。 权 利 要 求 书CN 102855117 A 4/5页 5 29.根据权利要求23所述的浮点加法器电路,其中,所述最小值电路约束所述结果移 位值以使得所述结果浮点数为有效的非正规浮点数。 30.一种浮点加法器电路,用于将第一浮点数与第二浮点数相加,所述第一浮点数具有 指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B , 所述浮点加法器电路包括: 远路径装置,被配置为当所述第一浮点数和所述第二浮点数匹配至少一个预定的远路 径条件时生成结果浮点值,所述远路径装置具有: 尾随零计数。
18、装置,用于确定与在从M B 的最低有效位端开始M B 的最低有效(E A -E B )位内 的尾随零值的游程相对应的尾随零值TZ;以及 远路径加法器装置,用于将第一加数值与第二加数值相加,所述第一加数值包括M A 与 第一后缀值串接,所述第二加数值包括不带其(E A -E B )最低有效位的M B 与第二后缀值串接; 其中 所述第一后缀值和所述第二后缀值依赖于TZ和(E A -E B )中相应的一个而形成。 31.一种浮点加法器电路,用于从第一浮点数减去第二浮点数,所述第一浮点数具有指 数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B。
19、 ,所 述浮点加法器电路包括: 近路径装置,用于当所述第一浮点数和所述第二浮点数匹配至少一个预定的近路径条 件时生成结果浮点值,所述近路径装置具有: 近路径加法器装置,用于确定与(M A -M B )相对应的中间尾数值M I ; 前导零计数装置,用于确定与在从M I 的最高有效位端开始M I 内的前导零值的游程相对 应的前导零值LZ; 最小值装置,用于将结果移位值确定为LZ和E A 中较低的值;以及 结果移位装置,用于将M I 移动与所述结果移位值相对应的多个位的位置以生成构成结 果浮点数的一部分的结果尾数M R 。 32.一种将第一浮点数和第二浮点数相加的方法,所述第一浮点数具有指数值E A。
20、 和尾 数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B ,所述方法包括当 所述第一浮点数和所述第二浮点数匹配至少一个预定的远路径条件时: 确定与在从M B 的最低有效位端开始M B 的最低有效(E A -E B )位内的尾随零值的游程相对 应的尾随零值TZ;以及 将第一加数值与第二加数值相加,所述第一加数值包括M A 与第一后缀值串接,所述第 二加数值包括不带其(E A -E B )最低有效位的M B 与第二后缀值串接;其中 所述第一后缀值和所述第二后缀值依赖于TZ和(E A -E B )中相应的一个而形成。 33.一种从第一浮点数中减去第二浮点数。
21、的方法,所述第一浮点数具有指数值E A 和尾 数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大于或等于E B ,所述方法包括当 所述第一浮点数和所述第二浮点数匹配至少一个预定近路径条件时: 确定与(M A -M B )相对应的中间尾数值M I ; 确定与在从M I 的最高有效位端开始M I 内的前导零值的游程相对应的前导零值LZ; 将结果移位值确定为LZ和E A 中较低的值;以及 将M I 移动与所述结果移位值相对应的多个位的位置以生成构成结果浮点数的一部分 权 利 要 求 书CN 102855117 A 5/5页 6 的结果尾数M R 。 34.一种用于确定将第。
22、一浮点数和第二浮点数相加时所使用的粘滞位的浮点运算电 路,所述第一浮点数具有指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B , 并且E A 大于或等于E B ,所述浮点运算电路包括: 移位量确定电路,被配置为确定取决于(E A -E B )的移位量,所述移位量对应于要被应用 于M B 以形成要与M A 相加的M B 的移位后版本的右移; 尾随零计数电路,被配置为确定与在从M B 的最低有效位端开始M B 的尾随零值的游程相 对应的尾随零值;以及 粘滞位值确定电路,被配置为将所述移位量与所述尾随零值进行比较以确定所述粘滞 位的值,所述粘滞位指示是否有任何非零位将从。
23、要与M A 相加的所述M B 的移位后版本中被移 出。 35.根据权利要求34所述的浮点运算电路,包括用于确定E A 大于E B 的指数比较电路。 36.根据权利要求35所述的浮点运算电路,其中,所述移位量确定电路被配置为在所 述指数比较电路已确定E A 大于E B 之前确定取决于(E B -E A )的另一移位量。 37.根据权利要求35所述的浮点运算电路,其中,所述尾随零计数电路被配置为确定 与从M A 的最低有效位端开始M A 的尾随零值的游程相对应的另一尾随零值。 38.一种用于确定将第一浮点数和第二浮点数相加时所使用的粘滞位的浮点运算电 路,所述第一浮点数具有指数值E A 和尾数值M。
24、 A ,所述第二浮点数具有指数值E B 和尾数值M B , 并且E A 大于或等于E B ,所述浮点运算电路包括: 移位量确定装置,用于确定取决于(E A -E B )的移位量,所述移位量对应于要被应用于M B 以形成要与M A 相加的M B 的移位后版本的右移; 尾随零计数装置,用于确定与在从M B 的最低有效位端开始M B 的尾随零值的游程相对应 的尾随零值;以及 粘滞位值确定装置,用于将所述移位量与所述尾随零值进行比较以确定所述粘滞位的 值,所述粘滞位指示是否有任何非零位将从要与M A 相加的所述M B 的移位后版本中被移出。 39.一种用于确定将第一浮点数和第二浮点数相加时所使用的粘滞。
25、位的方法,所述第 一浮点数具有指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B ,并且E A 大 于或等于E B ,所述方法包括以下步骤: 确定取决于(E A -E B )的移位量,所述移位量对应于要被应用于M B 以形成要与M A 相加的 M B 的移位后版本的右移; 确定与在从M B 的最低有效位端开始M B 的尾随零值的游程相对应的尾随零值;以及 将所述移位量与所述尾随零值进行比较以确定所述粘滞位的值,所述粘滞位指示是否 有任何非零位将从要与M A 相加的所述M B 的移位后版本中被移出。 权 利 要 求 书CN 102855117 A 1/11页 7 浮点。
26、加法器 技术领域 0001 本发明涉及数据处理系统的领域。更具体地,本发明涉及浮点加法器的领域。 背景技术 0002 在数据处理系统中公知了提供可以加和减浮点数的浮点加法器。这些浮点数可以 包括符号位、指数字段和尾数字段。浮点数格式和浮点算术操作的例子可以在IEEE 754标 准中找到。 0003 当相加(或者可以通过与首先经过修改的输入中的一个输入相加而实现的相减) 时,通常在加法被执行之前,具有较小指数的加数被右移以对齐小数点的位置。这种对齐将 尾数值的最低有效位移出尾数结果的有效位范围,因此将损失精度。这导致需要对结果进 行适当的四舍五入。在浮点算术中支持各种四舍五入模式。一个四舍五入模。
27、式是舍入到最 近的偶数。公知当执行这种舍入时,粘滞位应当被确定和保持,所述粘滞位指示当小数点的 位置被对齐时被右移出有效位范围的任意位是否具有非零值。这个粘滞位通常可以通过对 在加数尾数对齐期间被移出有效位范围的所有位执行逻辑OR操作来确定。这个方法的问 题是OR操作可能是很多位宽的并且在处理路径中引入不利的延迟度。延迟的增加可能降 低可以使用的最大操作时钟频率,减小定时驰豫并且具有其它负面后果。 0004 在浮点加法器领域中,公知提供远路径加法器以在操作数的量值大于预定差值时 使用,以及近路径加法器以在操作数的量值小于预定差值时使用。 发明内容 0005 从一个方面来看,本发明提供了用于将第。
28、一浮点数与第二浮点数相加的浮点加法 器电路,所述第一浮点数具有指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数 值M B 并且E A 大于或等于E B ,所述浮点加法器电路包括: 0006 远路径电路,被配置为当所述第一浮点数和第二浮点数匹配至少一个预定的远路 径条件时生成结果浮点值,所述远路径电路具有: 0007 尾随零计数电路,被配置为确定与在从M B 的最低有效位端开始M B 的最低有效 (E A -E B )位内的尾随零值的游程相对应的尾随零值TZ;以及 0008 远路径加法器,被配置为将第一加数值与第二加数值相加,所述第一加数值包括 M A 与第一后缀值串接并且。
29、所述第二加数值包括不带其(E A -E B )最低有效位的M B 与第二后缀 值串接;其中 0009 所述第一后缀值和所述第二后缀值根据TZ和(E A -E B )中相应的一个被形成。 0010 本发明意识到代替通过对被移出到有效位范围以外的位进行逻辑OR来明显地计 算粘滞位,可以通过根据取决于被移出位中尾随零的数目以及指数值差值的总和(这些加 数中的一个首先被进行NOT操作)确定进位输出,从而间接地计算具有相同值的位。尾随 零数目的计算可以与对较小的加数进行的右移并行地被执行,从而通过加法器电路有效地 减小延迟。 说 明 书CN 102855117 A 2/11页 8 0011 第一后缀值可。
30、以包括三个填充位后面跟(i)尾随零的数目加二;或(ii)指数值的 差值中的一个值,这些值中的一个被进行NOT操作,并且第二后缀值可以包括一个填充位 后面跟(i)尾随零的数目加二;或(ii)指数值的差值中的另外一个值。 0012 所述三个填充位和一个填充位可以被选择为具有总和为输出尾数值中的最低精 度单位的一半的值,所述输出尾数值由远路径加法器根据浮点数和的格式所生成。 0013 应当理解与要相加的尾数值串接并且产生与传统粘滞位等同的进位的后缀值可 以利用被进行了NOT操作的尾随零计数或者指数差值来形成。 0014 被右移的第二加数也将具有零值前缀以将其长度填充为与第一加数的尾数相同 的长度。 。
31、0015 作为前缀被加到第二加数上的前导零值可以利用第二加数移位器电路来插入。 0016 尾随零计数电路可以被配置为与指数差值计算电路并行操作。指数差值可被要求 与尾随零计数进行对比,但是利用该指数差值有效地为尾随零计数设置最大值,尾随零计 数操作可以开始于指数差值已知之前。 0017 利用与尾数串接并通过远路径加法器馈送的后缀值来计算与粘滞位具有相同值 的位的上述技术可以在通过远路径加法器所馈送的值的长度变化不超过2的位宽次方 的边界时被使用。这个约束条件是由于很多超前进位加法器(例如Sklansky加法器和 Kogge-Stone加法器)的工作方式而引起的,如果2的乘幂的边界被超过时,额外。
32、的门延迟 将会被引入。其中浮点运算被执行的很多实际情况都满足这个约束条件。 0018 应当理解上述的浮点加法机制需要识别哪个输入加数具有更大尺寸(至少具有 最大指数值或相等的最大指数值或相等的最大指数值)。实现该识别的一个方式是在加法 开始之前比较指数值,然后将输入加数切换到适当的路径,匹配用于较大加数的路径和用 于较小加数的路径。这种方法相对来说很少增加门数目,但是会增大操作的延迟时间。 0019 另一种方法是复制加法器电路并基于关于哪个输入加数的尺寸更大的相反假设 通过相应的复制路径馈送输入加数。因此,加法操作可以更快地开始,并且当后来确定了实 际上是哪个输入加数的尺寸更大(具有大于或等于。
33、另一输入加数的指数值的指数值)时, 来自适当的复制路径的结果可以被选择输出。 0020 如上所述,本发明的加法器电路也可以执行减法操作。这可以通过包括反相电路 在一些实施例中被实现,所述反相电路在第一加数与第二加数相加之前对第二加数的尾数 内的位进行反相。本发明同样适用于浮点加法和浮点减法。 0021 本领域技术人员将熟知浮点加法器可以包括用于将浮点数与大于预定界限的差 值相加的远路径加法器和用于将浮点数与小于预定界限的差值相加的近路径加法器。当可 能有大量的尾数位被移出有效位范围并且需要根据这些尾数位计算的粘滞位时,上述确定 与用于控制舍入的粘滞位等同的位值的技术在远路径加法器中非常有用。 。
34、0022 在近路径加法器中,公知对结果尾数内的前导零进行计数,然后执行适当的移位 和指数调节来规范浮点结果。这种方法的问题在于前导零计数和要被应用的相关联的后续 左移位可能导致在可被有效地表示的范围以外的相应指数值。用于处理该问题的已知技术 通常提供附加电路,用于识别是否有范围以外的指数值被产生,然后修复结果以生成非正 规(denormal)浮点数。这种方法可能会引起近路径加法器中延迟的增加。 0023 本发明的另一方面可以单独使用或者与被应用于远路径加法器的上述技术组合 说 明 书CN 102855117 A 3/11页 9 使用,其中最小值电路被提供在近路径加法器内并且用于将结果被左移的结。
35、果移位值确定 为对结果尾数执行的前导零计数和较大输入加数的指数值中的较低值(注意,即使是当减 法被执行时,术语“加数”仍然可以被使用)。如果较大加数的指数值接近最小值,则该指数 可能低于前导零计数,因此提供关于要对结果尾数执行的左移的限制,并且控制左移以使 得将得到正确形成的非正规数,而不需要执行增加延迟时间的修补操作。 0024 当输入加数满足预定的近路径条件时,近路径加法器可以被使用。当输入加数的 值差别较小时,尾数移位电路可以被提供以在较小加数的尾数被输入到近路径加法器之前 被将该尾数右移与指数差值相等的位数的位置。 0025 最小值电路可以被配置为在结果移位值的一个或多个低价位被生成之。
36、前生成结 果移位值的一个或多个高阶位。这是有益的,因为它允许采用对数移位器的形式的结果移 位电路在完整精度的结果移位值可用之前开始其对中间尾数的右移以产生结果尾数。这减 小了近路径的延迟。 0026 最小值电路可以具有多种不同的形式并且以各种不同的方式计算最小值。最小值 电路操作的一种方式在允许较早的生成结果移位值的高阶位方面被认为是非常方便的,这 种方式是当所述最小值电路具有两个输入LZ和E A 时,通过按以下方式确定长度为2 i (从i 0开始)的所述结果移位值的一系列前缀部分P i 来确定结果移位值: 0027 P i (LZ i AND NOT GR i )OR(E Ai AND GR。
37、 i ),其中 0028 LZ i 为长度为2 i 的LZ的前缀部分; 0029 E Ai 为长度为2 i 的E A 的前缀部分; 0030 对于i0和有效位递减的每个位位置k,EQ i kNOT(LZkXOR E A k); 0031 对于i0和有效位递减的每个位位置k,当LZkE A k时GR i k1,当 LZkE A k时GR i k0; 0032 对于i0和有效位递减的每个位位置k,EQ i kEQ i-1 kAND EQ i-1 k+2 (i-1) ; 以及 0033 对于i0和有效位递减的每个位位置k,GR i kGR i-1 kOR(E i-1 k ANDGR i-1 k+2 。
38、(i-1) )。 0034 近路径可被使用的限制情况是其中近距离预定量为1的情况。当结果浮点数为非 正规浮点数时,该技术特别有用。 0035 从另一方面来看,本发明提供了一种用于将第一浮点数减去第二浮点数,所述第 一浮点数具有指数值E A 和尾数值M A ,所述第二浮点数具有指数值E B 和尾数值M B 并且E A 大 于或等于E B ,所述浮点加法器电路包括: 0036 近路径电路,被配置为当所述第一浮点数和所述第二浮点数匹配至少一个预定的 近路径条件时生成结果浮点值,所述近路径电路具有: 0037 近路径加法器,被配置为确定与(M A -M B )相对应的中间尾数值M I ; 0038 前。
39、导零计数电路,被配置为确定与在从M I 的最高有效位端开始M I 内的前导零值的 游程相对应的前导零值LZ; 0039 最小值电路,被配置为将结果移位值确定为LZ和E A 中较低的值;以及 0040 结果移位电路,被配置为将M I 左移与所述结果移位值相对应的多个位的位置以生 成构成结果浮点数的一部分的结果尾数M R 。 说 明 书CN 102855117 A 4/11页 10 0041 应当理解减小近路径内的延迟时间的技术可以与用于减小远路径内的延迟时间 的技术互相独立地被使用。然而,对这些技术的组合使用是有益的,因为近路径和远路径可 以被保持平衡的延迟时间。 0042 本发明的另一方面提供。
40、用于确定将第一浮点数和第二浮点数相加时所使用的粘 滞位的浮点运算电路,所述第一浮点数具有指数值E A 和尾数值M A ,所述第二浮点数具有指 数值E B 和尾数值M B 并且E A 大于或等于E B ,所述浮点运算电路包括: 0043 移位量确定电路,被配置为确定取决于(E A -E B )的移位量,所述移位量对应于要被 应用于M B 以形成要与M A 相加的M B 的移位后的版本的右移位: 0044 尾随零计数电路,被配置为确定与在从M B 的最低有效位端开始M B 的尾随零值的游 程相对应的尾随零值;以及 0045 粘滞位值确定电路,被配置为将所述移位量与所述尾随零值进行比较以确定所述 粘。
41、滞位的值,所述粘滞位指示是否有任何非零位将从要与M A 相加的所述M B 的移位后版本中 被移出。 0046 本发明的其它方面在所附权利要求中被列出。 0047 根据结合附图描述的以下对说明性实施例的详细描述,本发明的以上和其它目 的、特征和优点将变得清楚。 附图说明 0048 图1示意性地图示了包括浮点加法器电路的集成电路; 0049 图2和图3示意性地图示了用于确保浮点加法结果基于已知了哪个输入量值更大 的输入被生成的两种方法; 0050 图4示意性地图示了包括远路径加法器和近路径加法器的浮点加法器电路; 0051 图5示意性地图示了16位浮点数的格式; 0052 图6示意性地图示了包括尾。
42、随零计数电路的远路径加法器; 0053 图7示意性地图示了包括最小值电路的近路径加法器电路; 0054 图8示意性地图示了利用尾随零计数来确定粘滞位的等同物的16位浮点加法内 的数据流;以及 0055 图9示意性地图示了利用尾随零计数来确定粘滞位的等同物的16位浮点减法内 的数据流。 具体实施方式 0056 图1示意性地图示了包括用于存储浮点数的一排浮点寄存器4和包括多个处理级 的数据处理流水线6的集成电路2,所述处理级中的至少一个提供浮点加法器电路8。根 据数据处理系统中的传统流水线,流水线级被公共时钟驱动,所述公共时钟控制一个处理 级的结果向下一个处理级的推进。可以减少与在每个处理级执行的。
43、处理相关联的延迟时 间的措施是有益的,因为它们例如可以允许使用更高的时钟频率并且因此在给定时间量内 完成更大量的数据处理。被减少的延迟时间还可以增大处理级之间的定时驰豫(timing slack),具有使设计更加鲁棒的优点。 0057 在根据这里所描述的示例实施例的浮点加法器电路中,假设具有最高量值的浮点 说 明 书CN 102855117 A 10 5/11页 11 数被提供作为输入加数A并且具有最低量值的浮点数被提供作为输入加数B。当两个任意 浮点数作为浮点加法器电路8的输入被接收时,可能提前不知道哪个浮点数具有更大的量 值。图2和图3图示了处理这个问题的两种可能的方法。 0058 在图2。
44、中,比较电路10用于比较两个输入加数的量值(或者至少是指数的量值)。 然后,该比较的结果被用于控制多路选择器12,14以引导第一输入加数和第二输入加数, 从而形成到浮点加法器电路16的输入A和B中的适当的相应加数。这种方法具有增加相 对来说很少的附加门的优点,但是由于在浮点加法器电路16可以开始操作之前需要确定 来自比较电路10的结果,所以这种方法具有增大了与浮点加法相关联的延迟时间的缺点。 0059 图3图示了替代方法。在该方法中,浮点加法器电路18,20是被复制的,并且每个 电路都接收这两个输入加数。在浮点加法器电路18中,假设第一输入加数的量值大于第二 输入加数。在第二浮点加法器电路20。
45、中,假设第二输入加数的量值大于第一输入加数。浮 点加法器电路18和浮点加法器电路20并行操作来计算各自的结果浮点数。这些浮点数中 的一个将是不正确的,因为它是基于关于第一输入加数和第二输入加数中哪个加数的量值 更大的不正确假设的。在通过由浮点加法器电路18和浮点加法器电路20执行的计算过程 中,可以做出关于第一输入加数和第二输入加数中哪一个加数更大的判断。该判断结果被 提供给多路选择器22以选择来自正在使用正确假设的浮点加法器电路18,20的结果浮点 数。这种方法具有产生较少的与浮点加法相关联的延迟增加的优点,但是具有需要更多的 门数目的缺点,因为浮点加法器电路18,20被复制以提供被配置为形。
46、成基于第一假设的第 一处理路径和基于第二假设的第二处理路径的复制电路。 0060 图4示意性地图示了被用于将两个浮点数相加(或相减)的浮点加法器电路24。 这些浮点数中的每个浮点数包括符号位S,指数位字段E和尾数位字段M。本领域技术人员 将熟知,在浮点加法器电路20中提供有当将量值不近似的两个浮点数相加(或相减)时所 使用的远路径电路26以及当将量值近似的两个浮点数相加(或相减)时所使用的近路径 电路28。多路选择器30被对于两个输入加数之间的量值差值的大小的判断结果控制,以选 择来自远路径电路26的输出或来自近路径电路28的输出作为结果浮点值。决定远路径电 路26和近路径电路28中哪一个要被。
47、使用的远路径条件和近路径条件可以按以下方式被评 估: 0061 1:如果两个输入具有相同符号,则这是“有效相加”,使用远路径。 0062 2:如果Ea-Eb大于1,则远路径被使用。 0063 3:如果Ea-Eb为零并且两个输入具有相反的符号,则近路径被使用。 0064 4:如果Ea-Eb为1并且输入具有相反的符号,则尾数位被检查:如果Ma的最高位 的下一位(即,在前导1位之后的最高位)为1,则远路径被使用,否则近路径被使用。 0065 图5示意性地图示了根据IEEE-754-2008标准的16位浮点数的格式。具体而言, 这些浮点数包括单个符号位,5位指数字段和10位尾数字段。这些字段内的位值与。
48、所表示 的浮点数之间的关系在图5中被示出。可以看到指数值被进行了“-15”的偏移。这导致当 指数字段14:10具有最低正常值1时,所表示的浮点数包括2 -14 的因子。如果想要表示 更小的浮点数,则不可能进一步减小指数值,因此非正规数被使用。就非正规数而言,指数 字段为全零,但是尾数字段与在小数点位置左边的假设的前导值“1”不相关联。因此,在尾 数值内有前导零,例如“0.000.”。这种非正规值对本领域技术人员来说将是熟知的。 说 明 书CN 102855117 A 11 6/11页 12 0066 图6示意性地图示了远路径电路18。具有最大量值(或者至少最大指数)的输入 加数被提供在输入A上。
49、。另一输入浮点数被提供在输入B上。应当理解如果指数值相同, 则无所谓输入加数以何种顺序被应用于输入A和B。远路径电路18的操作的总体原则是较 小量值的输入加数被第二加数移位器电路24进行右移位,以在远路径加法器26将两个尾 数值相加之前,使两个加数的有效指数值相等并对齐尾数内的小数点位置。 0067 在传统的远路径电路中,被右移出将通过远路径加法器26相加的有效位范围的 较小输入加数的位需要被检查以确定它们是否会导致向结果尾数值的借位,该借位可能影 响之后被应用于尾数值的舍入。确定这个借位值(或粘滞位)的传统方法是对低量值输入 加数中被右移出远路径加法器26的范围的所有低阶位执行逻辑OR。使用这种逻辑OR方法 的问题是它引入了不利的额外延迟时间。