浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf

上传人:xia****o6 文档编号:6183040 上传时间:2019-05-18 格式:PDF 页数:26 大小:1.84MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410659121.7

申请日:

2014.11.18

公开号:

CN104657107A

公开日:

2015.05.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 7/485申请日:20141118|||公开

IPC分类号:

G06F7/485

主分类号:

G06F7/485

申请人:

三星电子株式会社

发明人:

埃里克·C·昆尼尔

地址:

韩国京畿道水原市

优先权:

61/907,374 2013.11.21 US; 14/161,671 2014.01.22 US

专利代理机构:

北京铭硕知识产权代理有限公司11286

代理人:

王兆赓; 韩明星

PDF下载: PDF下载
内容摘要

提供一种浮点加法器、通过浮点加法器执行的方法和信息处理系统。根据一个总体方面,一种设备可包括:浮点加法单元,包括Far路径电路、Close路径电路和最后结果选择器电路。Far路径电路可被构造为不管操作数或结果是否包括规格化数或非规格化数,基于两个浮点数的加法或减法来计算Far路径结果。Close路径电路可被构造为不管操作数或结果是否包括规格化数或非规格化数,基于两个浮点操作数的减法来计算Close路径结果。最后结果选择器电路可被构造为至少部分基于两个浮点操作数的指数部分的差的量在Far路径结果和Close路径结果之间进行选择。

权利要求书

权利要求书
1.  一种浮点加法器,包括:
浮点加法单元,被构造为通过将两个浮点操作数相加或相减来产生浮点结果,其中,每个浮点操作数包括小数部分和指数部分;
所述浮点加法单元包括:
Far路径电路,被构造为不管这两个浮点操作数中的每一个或浮点结果是否各自包括规格化数或非规格化数,基于这两个浮点数的加法或减法来计算Far路径结果,
Close路径电路,被构造为不管这两个浮点操作数中的每一个或浮点结果是否各自包括规格化数或非规格化数,基于这两个浮点操作数的减法来计算Close路径结果,其中,Close路径电路包括被构造为当Close路径结果包括非规格化数时限制Close路径结果的小数点移位的钳位电路,以及
最后结果选择器电路,被构造为至少部分基于这两个浮点操作数的指数部分的差的量在Far路径结果和Close路径结果之间进行选择。

2.  如权利要求1所述的浮点加法器,其中,所述最后结果选择器电路被构造为至少部分基于每个浮点操作数的各自的指数部分是否彼此相等并且在所述浮点加法单元经由真正的减法产生浮点结果的情况下,在Far路径结果和Close路径结果之间进行选择。

3.  如权利要求1所述的浮点加法器,其中,所述Far路径电路包括:
非规格化至规格化校正电路,被构造为如果这两个浮点操作数都包括非规格化数并且Far路径结果包括规格化数,则调整Far路径结果的指数部分。

4.  如权利要求1所述的浮点加法器,其中,所述Far路径电路包括:非规格化数检测电路,被构造为确定这两个浮点操作数中的任一个是否包括非规格化数。

5.  如权利要求1所述的浮点加法器,其中,所述Far路径电路包括:前导位补偿电路,被构造为如果浮点操作数包括非规格化数,则移动浮点操作数的小数点。

6.  如权利要求1所述的浮点加法器,其中,所述Close路径电路包括:
规格化至非规格化校正电路,被构造为如果Close路径结果包括非规格化数,则调整Close路径结果的小数点移位。

7.  如权利要求1所述的浮点加法器,其中,所述Close路径电路包括:非规格化数检测电路,被构造为确定这两个浮点操作数中的任一个是否包括非规格化数。

8.  如权利要求1所述的浮点加法器,其中,所述Close路径电路包括:小数点移位电路,被构造为估计用于移动Close路径结果的小数点的量,
其中,所述小数点移位电路包括:
前导零估计器电路,被构造为估计用于移动Close路径结果的小数点的估计量,以及
钳位电路,被构造为确定Close路径结果是否是非规格化数,并且如果Close路径结果是非规格化数,则限制Close路径结果的小数点移位的量,从而使Close路径结果的小数点移位的量不超过小数点移位的最大量。

9.  如权利要求1所述的浮点加法器,其中,所述浮点加法单元不被构造为通过将这两个浮点操作数相乘来产生浮点结果。

10.  一种通过浮点加法器执行的方法,包括:
接收第一浮点操作数和第二浮点操作数;
不管第一浮点操作数、第二浮点操作数或Far路径结果中的至少一个是否包括非规格化数,基于第一浮点操作数和第二浮点操作数的加法或减法来计算Far路径结果;
不管第一浮点操作数、第二浮点操作数或Close路径结果中的至少一个是否包括非规格化数,基于第一浮点操作数和第二浮点操作数的减法来计算Close路径结果,其中,计算Close路径结果包括:如果Close路径结果包括非规格化数,则限制Close路径结果的小数点移位的量;以及
至少部分基于第一浮点操作数的指数部分和第二浮点操作数的指数部分之差在Far路径结果和Close路径结果之间进行选择。

11.  如权利要求10所述的方法,其中,在Far路径结果和Close路径结果之间进行选择的步骤包括:
仅在计算Close路径结果包括执行真正的减法的情况下,选择Close路径结果。

12.  如权利要求10所述的方法,其中,计算Far路径结果的步骤包括:
如果第一浮点操作数和第二浮点操作数都包括非规格化数并且Far路径结果包括规格化数,则调整Far路径结果的指数部分。

13.  如权利要求10所述的方法,其中,计算Far路径结果的步骤包括:如果第一浮点操作数和第二浮点操作数都包括非规格化数并且Far路径结果包括规格化数,则调整Far路径结果的指数部分;
其中,计算Close路径结果的步骤包括:如果Close路径结果包括非规格化数,则调整Close路径结果的小数点移位。

14.  如权利要求10所述的方法,其中,计算Close路径结果的步骤包括:
估计用于移动Close路径结果的小数点的估计量;
确定Close路径结果是否是非规格化数;以及
如果Close路径结果是非规格化数,则限制Close路径结果的小数点移位的量,从而使Close路径结果的小数点移位的量不超过小数点移位的最大量。

15.  如权利要求10所述的方法,其中,计算Close路径结果的步骤包括:如果浮点操作数包括非规格化数,则移动浮点操作数的小数点。

16.  一种信息处理系统,包括:
存储器,被构造为存储两个浮点操作数;以及
处理器,包括:
浮点加法单元,被构造为通过将两个浮点操作数相加或相减来产生浮点结果,其中,每个浮点操作数包括小数部分和指数部分;
所述浮点加法单元包括:
Far路径电路,被构造为不管这两个浮点操作数或浮点结果是否各自包括规格化数或非规格化数,基于这两个浮点数的加法或减法来计算Far路径结果,
Close路径电路,被构造为不管这两个浮点操作数或浮点结果是否包括规格化数或非规格化数,基于这两个浮点操作数的减法来计算Close路径结果,其中,Close路径电路包括被构造为当Close路径结果包括非规格化数时限制Close路径结果的小数点移位的钳位电路,以及
最后结果选择器电路,被构造为至少部分基于这两个浮点操作数的指数部分的差的量在Far路径结果和Close路径结果之间进行选择。

17.  如权利要求16所述的系统,其中,所述最后结果选择器电路被构造为至少部分基于每个浮点操作数的各自的指数部分是否彼此相等并且在所述浮点加法单元经由真正的减法产生浮点结果的情况下,在Far路径结果和Close路径结果之间进行选择。

18.  如权利要求16所述的系统,其中,所述Far路径电路包括:非规格化至规格化校正电路,被构造为如果这两个浮点操作数都包括非规格化数并且Far路径结果包括规格化数,则调整Far路径结果的指数部分;
其中,所述Close路径电路包括:规格化至非规格化校正电路,被构造为如果Close路径结果包括非规格化数,则调整Close路径结果的小数点移位。

19.  如权利要求16所述的系统,其中,所述Far路径电路包括:前导位补偿电路,被构造为如果浮点操作数包括非规格化数,则移动浮点操作数的小数点。

20.  如权利要求16所述的系统,其中,所述Close路径电路包括:
前导零估计器电路,被构造为估计用于移动Close路径结果的小数点的估计量,
钳位电路,被构造为确定Close路径结果是否是非规格化数,并且如果Close路径结果是非规格化数,则产生用于移动Close路径结果的小数点的非规格化钳制量,其中,非规格化钳制量包括足够小以防止非规格化数的大规模相消的值,
小数点移位电路,被构造为根据Close路径结果是否包括非规格化数,基于估计量或非规格化钳制量来移动Close路径结果的小数点。

说明书

说明书浮点加法器、通过浮点加法器执行的方法和信息处理系统
本申请要求于2013年11月21日提交的标题为“High Performance Floating-Point Adder With Full In-Line Denormal/Subnormal Support(具有全在线非规格化/次规格化支持的高性能浮点加法器)”、序列号为61/907,374的临时专利申请的优先权。该较早提交的申请的主题通过引用合并于此。
技术领域
本描述涉及数学运算的电计算,更具体地讲,涉及规格化数和非规格化数二者的浮点加法的计算。
背景技术
在计算中,浮点数通常包括用于以可支持宽范围的值的方式表示实数的近似的技术。通常,这些数被近似地表示为有效数字的固定数和使用指数的进位制(scaled)。术语“浮点”表示数字的小数点(例如,十进制小数点,或者更普遍地在计算机中,二进制小数点)可“浮动”的事实,也就是,小数点可被置于相对于数字的有效数字的任何地方。该位置在内部表示中被表示为指数成分,并且因此,浮点可被视为科学记数法的计算机实现(例如,1.234×104对1,234等)。
用于浮点运算的电气和电子工程师协会(IEEE)标准(IEEE 754)是由IEEE在1985年建立的用于浮点计算的技术标准。许多硬件浮点单元或电路基本上符合IEEE 754标准。在此,术语“IEEE 754”表示基本上符合用于浮点运算的IEEE标准IEEE Std.754-2008(2008年8月29日)的标准或者从该标准衍生的标准或在该标准之前的标准。
IEEE 754标准允许各种精度。两个较普遍水平的精度包括32位(单)精度和64位(双)精度。浮点数的32位版本包括1位符号位(指示数字是正的还是负的)、8位指数部分(指示小数点位于的2的幂)和23位小数、有效数或尾数部分(指示将乘以2的升高到指数部分的幂的实数)。64位版本包括1位符号指示符、11位指数部分和52位小数部分。要理解的是,以 上仅是一些说明性示例,所公开的主题不限于这些说明性示例。
发明内容
根据一个总体方面,一种设备可包括:浮点加法单元,被构造为通过将两个浮点操作数相加或相减来产生浮点结果,其中,每个浮点操作数包括小数部分和指数部分。浮点加法单元可包括Far路径电路、Close路径电路和最后结果选择器电路。Far路径电路可被构造为不管这两个浮点操作数中的每一个或浮点结果是否各自包括规格化数或非规格化数,基于这两个浮点数的加法或减法来计算Far路径结果。Close路径电路可被构造为不管这两个浮点操作数中的每一个或浮点结果是否各自包括规格化数或非规格化数,基于这两个浮点操作数的减法来计算Close路径结果。Close路径电路可包括被构造为当Close路径结果包括非规格化数时限制Close路径结果的小数点移位的钳位电路。最后结果选择器电路可被构造为至少部分基于这两个浮点操作数的指数部分的差的量在Far路径结果和Close路径结果之间进行选择。
根据另一总体方面,一种方法可包括:接收第一浮点操作数和第二浮点操作数。所述方法可包括:不管第一浮点操作数、第二浮点操作数或Far路径结果中的至少一个是否包括非规格化数,基于第一浮点操作数和第二浮点操作数的加法或减法来计算Far路径结果。所述方法可包括:不管第一浮点操作数、第二浮点操作数或Close路径结果中的至少一个是否包括非规格化数,基于第一浮点操作数和第二浮点操作数的减法来计算Close路径结果,其中,计算Close路径结果包括:如果Close路径结果包括非规格化数,则限制Close路径结果的小数点移位的量。所述方法可包括:至少部分基于第一浮点操作数的指数部分和第二浮点操作数的指数部分之差在Far路径结果和Close路径结果之间进行选择。
根据另一总体方面,一种系统可包括存储器和处理器。存储器可被构造为存储两个浮点操作数。处理器可包括:浮点加法单元,被构造为通过将两个浮点操作数相加或相减来产生浮点结果,其中,每个浮点操作数包括小数部分和指数部分。浮点加法单元可包括Far路径电路、Close路径电路和最后结果选择器电路。Far路径电路可被构造为不管这两个浮点操作数或浮点结果是否包括规格化数或非规格化数,基于这两个浮点数的加法或减法来计算Far路径结果。Close路径电路可被构造为不管这两个浮点操作数或结果是否包括 规格化数或非规格化数,基于这两个浮点操作数的减法来计算Close路径结果。Close路径电路可包括被构造为当Close路径结果包括非规格化数时限制Close路径结果的小数点移位的钳位电路。最后结果选择器电路可被构造为至少部分基于这两个浮点操作数的指数部分的差的量在Far路径结果和Close路径结果之间进行选择。
在附图和下面的描述中阐述一个或更多个实施方式的细节。其他特征将从描述和附图以及从权利要求清楚。
用于数学运算的电计算的系统和/或方法在至少一个附图中被充分地示出和/或结合至少一个附图被描述,如在权利要求中被更加完整地阐述。
附图说明
图1是根据本公开的主题的浮点加法器的示例实施例的框图。
图2a是根据本公开的主题的浮点加法器的FAR路径部分的示例实施例的框图。
图2b是根据本公开的主题的浮点加法器的CLOSE路径部分的示例实施例的框图。
图2c是根据本公开的主题的浮点加法器的示例实施例的框图。
图3是根据本公开的主题的技术的示例实施例的流程图。
图4是可包括根据本公开的主题的原理形成的装置的信息处理系统的示意性框图。
各个附图中的相同的参考符号指示相同的元件。
具体实施方式
下文中,将参照附图更加全面地描述各种示例实施例,在附图中示出了一些示例实施例。然而,本公开的主题可以以许多不同形式实现,并且不应被解释为限于在此阐述的示例实施例。相反,提供这些示例实施例,使得本公开将是彻底和完整的,并且这些示例实施例将向本领域的技术人员充分地传达本公开的主题的范围。在附图中,为了清楚,可夸大层和区域的大小以及相对大小。
将理解的是,当元件或层被称为“在”另一元件或层“上”、“连接到”或“结合到”另一元件或层时,所述元件或层可直接地在该另一元件或层上、 直接地连接到或结合到该另一元件或层,或者可存在中间元件或层。相反,当元件被称为“直接在”另一元件或层“上”、“直接连接到”或“直接结合到”另一元件或层时,不存在中间元件或层。相同的数字始终指示相同的元件。如在此使用的,术语“和/或”包括相关联列出项中的一个或更多个的任何和所有组合。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在此用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一元件、组件、区域、层或部分与另一元件、组件、区域、层或部分进行区分。因此,在不脱离本公开的主题的教导的情况下,下面论述的第一元件、组件、区域、层或部分可被命名为第二元件、组件、区域、层或部分。
为了易于描述,可在此使用诸如“在…之下”、“在…下面”、“在…下方”、“在…上面”、“在…上方”等的空间相对术语,以描述如附图中所示的一个元件或特征与另一元件或特征的关系。将理解的是,除了附图中描绘的方位之外,空间相对术语还意图包含装置在使用或操作中的不同方位。例如,如果附图中的装置被翻转,则被描述为“在”其他元件或特征“下面”或“在”其他元件或特征“之下”的元件将随后被导向为“在”所述其他元件或特征“上面”。因此,示例性术语“在…下面”可包含上面和下面两个方位。装置可被另外导向(旋转90度或在其他方位),并且在此使用的空间相对描述符被相应地解释。
在此使用的术语仅是为了描述特定示例实施例的目的,不意图限制本公开的主题。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意图包括复数形式。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指定存在所陈述的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。
在此参照作为理想的示例实施例的示意性图示的截面图示(和中间结构)来描述示例实施例。如此,将预期由例如制造技术和/或容差导致的图示的形状的变化。因此,示例实施例不应被解释为限于在此示出的区域的特定形状,而应包括由例如制造导致的形状的偏差。例如,被示出为矩形的注入区域通常将具有圆形或曲线特征和/或在其边缘具有注入浓度的梯度,而不是从注入 区域到非注入区域的二值变化。同样地,通过注入形成的掩埋区会在掩埋区和注入发生的表面之间的区域中导致一些注入。因此,附图中示出的区域在性质上是示意性的,它们的形状不意图示出装置的区域的实际形状,并且不意图限制本公开的主题的范围。
除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开的主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解的是,诸如在通用字典中定义的术语应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不被解释为理想化或过度形式化的意义,除非在此明确地如此定义。
下文中,将参照附图详细地解释示例实施例。
如上所述,在计算装置中,浮点数由一定数量的比特表示。这意味着浮点数可仅表示由它们被分配的比特数界定的无穷大数空间的不连续且受约束的部分。对于规格化浮点数,与标准的科学记数法格式类似地表示数字,数字的有效数部分和指数部分中的整数用于指示小数点应位于何处。例如,在十进制系统中,23,467被表示为2.3467×104,其中,整数的单个数字是2,小数点向右4位。当数字以二进制表示时,最高有效位总是1。要理解的是,在此科学记数法的使用由于其对普通读者的适用性而被使用,并且仅是说明性示例。要进一步理解的是,优选的本公开的主题集中于二进制数。
当浮点数较小时,在有效数或小数部分中没有前导零。而是,通过调整指数部分移除前导零。因此,(在十进制中)0.0123将会被写为1.23×10-2,并且前导零将被移除。
然而,根据IEEE 754标准,在一些情况下,存在浮点记数法将导致指数太小而不能被正确地表示的数字。由于计算装置受限于用于表示指数部分的比特数,因此指示小数点移位(radix point shift)的适当量所需的值能够大于计算装置可用于浮点数的指数部分的比特数。例如,如果浮点包括用于指数的8比特,则指数可以在127和-126之间的范围内。这意味着如果数字具有小于-126的指数(例如,2-134等),则规格化浮点数方案将不能在没有显著数学错误的可能性的情况下表示该数字。
诸如这样的数字被称为“非规格化数”、“非正规化数”或“次规格化数”,并且通常导致计算电路的困难。非规格化数需要比规格化数稍有不同的编码方案。首先,如根据IEEE 754规范,非规格化数的有效数的前导数字是0。 不是改变指数,而是将前导零保留在有效数中。其次,非规格化数的指数部分是0。也就是说,不是将0.01234表示为1.234×10-2,而是将非规格化数表示为0.01234×100(要理解的是,真正的非规格化数将具有比10-2小得多的指数值,例如10-38或2-127,但是写出38个前导零对于示例而言是过分的)。在一个实施例中,32位浮点非规格化数可包括大约在2-127和2-149之间的值,这是因为有效数可容纳22个前导零。通常,非规格化数允许表示越来越小的数,但是随着前导零的数量增加,包括在数字中的精度(即,有效数字)的量减小。这是被称为“渐进下溢”的现象,并且通常优选于只是将小的数字声明为零的可选方式。
一些计算系统在硬件中处理非规格化值。传统上,这样的计算系统将使用第一硬件单元计算规格化数加法,使用第二硬件单元计算非规格化数加法。其他计算系统将非规格化值的处理留给系统软件。在软件中处理非规格化值通常导致性能上的进一步显著降低。但是即使当非规格化值全部在硬件中计算时,在大多数现代处理器上计算的速度也显著下降;在极端情况下,涉及非规格化操作数的指令可比规格化操作数的指令运行慢多达30-100倍。
图1是根据本公开的主题的系统或FPA(浮点加法器)100的示例实施例的框图。在示出的实施例中,系统包括浮点加法(FPA或FADD)单元或电路100。在这样的实施例中,FPA 100被构造为对两个浮点操作数或值202和204执行加法和/或减法,并产生结果248。
FPA 100与传统FPA显著不同之处在于,FPA 100被构造为即使操作数202和204中的一个或更多个或者结果248是非规格化数,也处理或计算浮点加法运算。而传统FPA只可正确地处理规格化数,FPA 100被构造为处理规格化数、非规格化数或其组合。
简单地描述传统浮点加法器的运作以便将其功能与图1的改进系统进行对比。通常,FPA被构造为仅对两个规格化浮点数执行加法(或减法)并产生规格化浮点结果。在这样的实施例中,通过产生非正常或特殊结果(与特殊结果246类似)的单独的硬件执行任何非正常运算。然后,系统经由电路或复用器(MUX)192在规格化结果(与结果248类似)和特殊结果之间进行选择,从而产生最终结果149。
在各种实施例中,可通过以下条件中的一个或更多个产生特殊结果:(例如,在操作数、结果等中)遇到无穷大,遇到非数字(NaN)值,遇到零, 或者遇到非规格化值。在这样的实施例中,FPA的正常结果被视为不正确(即,具有错误值等)并且被忽视。相反,其他硬件(图2c中所示)用于正确地计算正确的结果值。通常,与正常结果的计算相比,这些非正常值的计算耗费大量的计算时间。
有时,通过浮点乘法累加单元(FMAC或FMADD或FMA)(未明确示出)执行非规格化数的加法。这在硬件空间和组件方面以及在计算能力方面代价高,并且是不期望的权衡。FPA通常更期望于直接的加法或减法(在空间、能力等方面)。在示出的实施例中,FPA 100不能执行浮点乘法运算。
如上所述,在传统FPA情况下,非规格化数的出现将导致对特殊硬件的调用。非正常结果将随后被电路或MUX 192选为最终结果149。在这样的实施例中,传统FPA的输出(与结果248类似)将被丢弃。如上所述,用于处理非规格化值的特殊硬件的调用在计算时间方面是昂贵的,并且可能涉及对可占用另一运算或对另一运算不可用的另一电路(例如,FMAC等)的使用(即,并行计算能力降低等)。
在示出的实施例中,FPA 100被构造为当遇到非规格化数时,在不招致在传统情况下经历的性能损失的情况下对规格化数和非规格化数二者执行浮点加法。下面描述FPA 100的操作。
与传统FPA一样,FPA 100包括三个基本部分:Far路径298、Close路径299和选择电路297。在各种实施例中,Far路径298可被构造为当两个操作数202和204的指数部分相差多于一个数量级(例如,1,234–34等)时执行所有范围的加法运算或减法运算。相反,Close路径299可被构造为当两个操作数202和204的指数部分(或绝对值)相差少于一个数量级(例如,1,234+-1,236等)时执行减法运算。选择电路297可被构造为在Far路径结果242和Close路径结果244之间进行选择以(根据实施例)产生最后(非特殊)结果248或最终结果149。针对图1大体上详细地论述FPA 100的这些部分,然后针对图2a、图2b和图2c更加详细地示出FPA 100的这些部分。
在示出的FPA 100的实施例中,在已知两个操作数202和204的指数部分的差之前,通过Far路径298和Close路径299并行地处理操作数202和204。结果,两个路径的结果242或244之一将是不准确的并且将被选择电路297丢弃(如到此时指数部分的差是已知的)。该并行计算具有提高计算速度的期望效果,但是具有增大FPA 100的尺寸和FPA 100所消耗的功率的不太 期望的效果。
图1的这三个部分297、298和299中的每个部分执行与传统FPA的相似部分大致类似的运算。然而,如上所述,Far路径298、Close路径299和选择电路297可被构造为处理规格化数和/或非规格化数,而传统FPA部分只能处理规格化数。
在示出的实施例中,FPA 100接收两个操作数202和204。在这样的实施例中,操作数202和204可以是浮点数,并且可包括规格化数和/或非规格化数。出于说明的目的,本文将把操作数202和204视为包括64位IEEE 754兼容的浮点数。如此,操作数202和204均包括1位符号指示符、11位指数部分和52位小数部分。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
首先检查Far路径298的运作。在示出的实施例中,操作数202和204被输入到Far路径298。操作数202和204均经过非规格化数检测电路252。在一个实施例中,非规格化数检测电路252可包括一系列或门(例如,OR树等)。在一个实施例中,非规格化数检测电路252可被构造为检测各个操作数202或204的小数部分是否包括前导零。在各种实施例中,非规格化数检测电路252可产生非规格化指示信号213。
传统上,假设操作数是规格化数的FPA可将前导1连接到操作数的小数部分以产生预交换信号(与信号210类似)。在示出的实施例中,FPA 100可将非规格化指示信号213的逆连接到操作数202和204的小数部分以产生预交换信号210。在这样的实施例中,由规格化操作数产生的预交换信号210将包括前导1,而从非规格化操作数产生的预交换信号210将包括前导零。
在示出的实施例中,FPA 100的Far路径298包括前导位补偿电路250。由于操作数的小数部分经常最初不对齐(即,具有相同的指数值),因此以浮点格式表示的数的加法有问题。通常,通过下面描述的小数点对齐电路154处理这样的问题。
IEEE 754标准包括在规格化数和非规格化数之间编码数字的方式的奇异性。通过涉及如在数字行上倒计数并且检查当遇到奇异性时发生了什么的示例的方式来非常容易地解释该奇异性。在规格化数的编码方案内,当倒计数并且数字从整数进行到小数(例如,从1.0到0.9等)时,有效数上移并且指数减一(例如,从1.0×102到9.0×101等)。但是,当倒计数并且数字从规格 化数变为非规格化数时,不发生该移位/减小操作对。例如,当一个数从1.0×2-126到0.1×2-126时,非规格化数的有效数不上移(即,它保持0.1而不是变为1.0),但是指数部分仍然减小(从0x01到0x00,这是因为非规格化数被定义为具有0指数部分)。在IEEE 754标准中,32位浮点规格化数的指数部分被偏移或偏置127,使得2-126被编码为0x01。不幸地,32位浮点非规格化数的指数部分被偏移或偏置126,使得2-126被编码为0x00。当将规格化操作数和非规格化操作数相加时,可考虑编码方案的差异。
在示出的实施例中,前导位补偿电路250被构造为移动非规格化操作数的小数点,使得有效数具有与在规格化数的情况下相同的指数部分编码。在另一实施例中,小数点对齐电路154可被改变为自身执行该补偿。在另一实施例中,前导位补偿电路250可被构造为移动规格化操作数(而不是非规格化操作数)的小数点,但是这会导致精度的下降。
在这样的实施例中,如果操作数202和204中只有一个是非规格化(另一个是规格化),则前导位补偿电路250可被构造为补偿对非规格化数和规格化数进行编码的方式的差异。前导位补偿电路250被构造为对非规格化的预交换信号210进行移位。在各种实施例中,前导位补偿电路250可由确定两个预交换信号210中的哪一个(任一个)将被移位的一对信号211控制。在各种实施例中,这些控制信号211可来自非规格化数检测电路252的输出213。
在各种实施例中,FPA 100可包括指数差(ExpDiff)计算电路152,指数差计算电路152被构造为确定两个操作数202和204中的哪一个是较大的操作数。这导致大小区分信号111。在各种实施例中,ExpDiff计算电路152可比非规格化数检测电路252和/或前导位补偿电路250花费更多的计算时间。如此,在这样的实施例中,由于包括了非规格化数检测电路252和/或前导位补偿电路250,因此Far路径298可不产生额外的计算时间(与传统的Far路径相比)。
如传统上的做法,如果需要,则两个操作数(例如,预交换信号210等)被重新排序或交换,使得较大的或固定的操作数212被置于加法器158和160的期望的输入组上,同样地,较小的操作数214亦如此。该动作由交换复用器(MUX)150执行。在示出的实施例中,交换MUX 150由大小区分信号111控制。
如上所述,如果操作数的小数部分不对齐,则加法是有问题的。在一些 实施例中,较小信号214的小数点可被移动,使得较大操作数212和较小操作数214的小数点对齐。在示出的实施例中,这可由对齐电路154完成。在这样的实施例中,对齐电路154可由ExpDiff计算电路152的输出112控制。
在示出的实施例中,FPA 100可被构造为检测操作数214是否显著地超出较大操作数212的范围。电路156(例如,一系列或门等)可在这样的情况下产生至少一个粘贴位(sticky bit)113,粘贴位113指示非零的较小的操作数超出范围。在示出的实施例中,粘贴位113和任何其他控制位(例如,保护位、舍入位等)可与操作数212和214连接。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
在各种实施例中,操作数212和214可被输入到整数加法电路296。在示出的实施例中,整数加法电路296可包括一对整数加法器158和160。在一个实施例中,第一加法器158可假定在加法中不存在溢出,第二加法器160可假定在加法中将存在溢出,或者在减法的情况下,第二加法器160可假定将存在1位移位。在这样的实施例中,第二加法器160可使用进位存储算术电路162(例如,3:2压缩器等)。在各种实施例中,加法器158和160还可接收各种舍入常数116作为输入。
如上所述,在各种实施例中,可并行采用这两个整数加法器158和160,以提高计算的速度和容易性。在各种实施例中,可采用整数加法选择器264以在加法器158和160的两个输出之间进行选择。
在传统系统中,整数加法电路296可包括整数加法选择器。整数加法选择器可由整数加法选择信号控制,其中,整数加法选择信号基于溢出指示符和左移位指示符。
相反,在示出的实施例中,在FPA 100中,整数加法选择器264可由整数加法选择信号218控制。在这样的实施例中,整数加法选择信号218的值还可至少部分地基于溢出指示符和左移位指示符。然而,整数加法选择信号218还可基于两个非规格化操作数(例如,操作数202和204等)的加法是否导致规格化结果(例如,结果242等)的指示。在这样的实施例中,整数加法选择信号218可由Far路径非规格化至规格化校正电路包括。
在示出的不仅处理规格化数而且处理非规格化操作数202和204的实施例中,可对于两个非规格化数的加法创建规格化数。在这样的实施例中,必须再次考虑非规格化数的指数偏置的奇异性。在示出的实施例中,加法选择 器264的选择逻辑218已被改变为适应这种情况的发生。在这样的实施例中,整数加法选择信号218还可基于两个非规格化操作数(例如,操作数202和204等)的加法是否导致规格化结果(例如,结果242等)的指示。在这样的实施例中,非规格化至规格化校正逻辑可通过加/舍入阶段296中的1位左移位校正机制共享。
在示出的实施例中,如上所述,Far路径298可最后产生Far路径结果242。在各种实施例中,Far路径298的包括交换MUX 150的部分和包括整数加法电路296的部分可被包括在不同的流水线阶段(例如,FX1、FX2等)中。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
现在检查Close路径299的运作。在各种实施例中,Close路径299被构造为仅在两个操作数202和204相差一个数量级(或更少)的情况下处理减法。在一些实施例中,Close路径299还被构造为调节被称为“大规模相消(massive cancellation)”的现象,在该现象中,两个数的减法导致足够小的数,使得必须移动小数点以达到适当格式的规格化数,或者在示出的实施例中,创建非规格化数。
在示出的实施例中,操作数202和204被输入到Close路径299。操作数202和204均经过非规格化数检测电路253。在一个实施例中,如上所述,非规格化数检测电路253可包括一系列或门(OR树)。在一个实施例中,非规格化数检测电路253可被构造为检测各个操作数202或204的小数部分是否包括前导零。在各种实施例中,非规格化数检测电路253可产生非规格化指示信号213c。在各种实施例中,Far非规格化数检测电路252和Close非规格化数检测电路253可以是相同的电路。在另一实施例中,可存在两个单独的电路和输出信号。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
如上所述,在加法运算期间,期望操作数210对齐到共同小数点。在各种实施例中,如果需要,则Close路径299可包括被构造为移动较小操作数的小数点的对齐电路171。
在各种实施例中,FPA 100的Close路径299可包括被构造为确定两个操作数202和204中的哪一个是较大操作数的指数差(ExpDiff)计算电路172。这导致大小区分信号231。在各种实施例中,Close路径ExpDiff计算电路172可以小于(例如,2比特等)Far路径ExpDiff计算电路152(例如,11比特 等)。这是因为对于Close路径299,可以假定操作数202和204的值彼此分开得不是非常远。
再次,如果需要,则两个操作数(例如,预交换信号210等)被重新排序或交换,使得较大的或固定的操作数232被置于加法器174和176的期望的输入组上,同样地,较小的操作数234亦如此。该动作由交换复用器(MUX)170执行。在FPA的传统实施例中,交换MUX 170可由大小区分信号控制,其中,大小区分信号指示两个操作数202和204中的哪一个较大。然而,在一个实施例中,FPA 100的交换MUX 170可由信号231控制。在这样的实施例中,信号231可额外地基于指示的较小操作数是否是非规格化。
在各种实施例中,Close路径299可包括两个整数加法器174和176。在一个实施例中,第一加法器174可被构造为执行操作数232与操作数234的减法,而第二加法器176可被构造为执行操作数234与操作数232的减法。MUX 178或选择器可被构造为(基于控制信号135)选择来自两个加法器174和176的为正的结果。
在各种实施例中,当两个浮点数相减时,可发生被称为“大规模相消”的效果。在各种实施例中,当两个操作数的指数相等或相差仅一个数量级时,数字能够在值上如此接近,使得减法结果在有效数或小数部分中包括一个或更多个前导零。在这样的实施例中,通常发生小数点的移动以使结果规格化,并将前导1返回到其预期位置(如果数字是规格化数)。
在各种实施例中,Close路径299可被构造为使作为MUX 178输出的结果信号236规格化。在这样的实施例中,该规格化可包括移动结果信号236的小数点使得数字处于适当的浮点格式。在结果信号236是规格化数的情况下,这意味着移动小数点使得小数部分包括前导1。在结果信号236是非规格化数的情况下,这意味着移动小数点,但是不移动使得指数部分不再有效那样多。在这样的实施例中,小数点移位的量必须受限制或受钳制。
在示出的实施例中,Close路径299可包括小数点移位电路286。在这样的实施例中,小数点移位电路286可被构造为估计将Close路径结果的小数点移动多少。在示出的实施例中,小数点移位电路286可包括前导零估计器电路的常规元件,并被构造为估计将Close路径结果244或结果信号236的小数点移动多少。在这样的实施例中,前导零估计器电路可包括前导零预测器(LZA)180和优先级编码器(PENC)181。
在各种实施例中,LZA 180可被构造为确定或估计小数点需要被移动多少位以使结果数字具有非零前导数字。例如,为了将数字0.0001表示为1.0×2-4,小数点将需要被移位4次。在各种实施例中,优先级编码器(PENC)181可被构造为将LZA 180的输出137转换为更易于由位移硬件(例如,组件175和273等)处理的编码值138。在这样的实施例中,PENC 181可被构造为检测LZA的输出矢量137中的第一个1的位置。
在传统FPA中,PENC 181的输出138可被输入到如下面描述的小数点移位器175。然而,在示出的图1的实施例中,因为在最小可能指数部分的界限处存在非规格化数,所以不可将有效数上移到其包括整数(即,1等)的位置。这是因为,每次将有效数上移一个小数点时,指数部分必须减小。然而,由于非规格化数的指数部分相当小,因此存在其不能被进一步减小的点,因而有效数必须保持<1。这是非规格化数的前导位是0而规格化数的前导位是1的原因。在示出的实施例中,采用逻辑和硬件组件(例如,组件281、282和284等),从而当已经达到可发生的指数减小的最大量(例如,指数值为零等)时钳制或暂停小数点移位。
在示出的实施例中,Close路径299可包括钳位电路287,钳位电路287被构造为当两个浮点操作数202和204中的至少一个包括非规格化数时,停止或暂停Close路径结果244或236的小数点移位。在一个实施例中,钳位电路287可被构造为确定Close路径结果244或236是否是非规格化数,并且如果是非规格化数,则在超过小数点移位的最大量之前停止或暂停Close电路路径的小数点移位。
在示出的实施例中,钳位电路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。
在示出的实施例中,如上所述,Close路径299可包括小数点移位器175。 在这样的实施例中,小数点移位器175可被构造为基于小数点移位电路286的输出238移动结果236的小数点。
在一些实施例中,LZA 180可仅产生估计,并且可以不如期望的精确。有时,LZA 180估计可能差一个小数点。在这样的实施例中,Close路径299可包括补偿小数点移位器273。在传统FPA中,补偿小数点移位器可由基于LZA 180的正确性(或其不足)的信号控制。
然而,在示出的图1的实施例中,FPA 100被构造为处理规格化操作数和非规格化操作数202和204二者。如上所述,在各种实施例中,当结果实际上是如所述的可能差一个小数点的最小指数时,LZA可能不正确地预测非规格化数。在这样的实施例中,必须再次考虑非规格化数的指数偏置的奇异性。在示出的实施例中,补偿小数点移位器273的控制逻辑和信号239已经改变为适应该情况的发生。在这样的实施例中,规格化至非规格化校正机制可通过LZA校正逻辑273共享,并且LZA校正逻辑273可被视为Close路径非规格化至规格化校正电路。在示出的实施例中,补偿小数点移位器273的输出是Close路径结果244。
在各种实施例中,小数点移位电路286可包括LZA 180、PENC 181和钳位电路287。在另一实施例中,小数点移位电路286还可包括小数点移位器175和/或补偿小数点移位器273。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
在示出的实施例中,如上所述,Close路径299可最后产生Close路径结果244。在各种实施例中,Close路径299的包括交换MUX 170的部分和包括小数点移位电路286的至少一些的部分可被包括在不同的流水线阶段(例如,FX1、FX2等)中。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
在示出的实施例中,FPA 100可包括被构造为在Far路径结果242和Close路径结果244之间进行选择的最后结果选择器电路297。在一些实施例中,该部分可至少部分地基于两个浮点操作数202和204的指数部分的差小于阈值量(例如,小于或等于指数的差的一个数量级等)。
在传统FPA中,FPA可包括规格化结果选择器或MUX,当操作数的指数部分的差足够小(小于一个数量级)时,所述规格化结果选择器或MUX选择(与Far路径结果相对的)Close路径结果。
相反,在示出的实施例中,FPA 100可包括结果选择器或MUX 290,当已经发生了真正的减法并且已经发生了至少一些大规模相消或者操作数202和204的指数部分正好相等时,结果选择器或MUX 290选择(与Far路径结果242相对的)Close路径结果244。在该上下文中,“真正的减法”是操作数202和204之一(而非二者)为负的情况。另外,在该上下文中,发生了“真正的加法”。该选择可由信号241控制。在示出的实施例中,结果选择器或MUX 290可输出浮点结果248。
如上所述,在各种实施例中,最后结果选择器电路297还可包括被构造为在浮点结果248和特殊结果246之间进行选择的最终结果选择器192。在各种实施例中,特殊结果246可以与传统FPA的特殊或非正常结果类似,但是由于涉及非规格化数已经被FPA 100处理的情况,特殊结果246将不包括非规格化数情况。在示出的实施例中,如上所述,最终结果选择器192可输出最终结果149。
在各种实施例中,最后结果选择器电路297可被包括在与Far路径电路298和Close路径电路299(例如,FX1、FX2等)不同的流水线阶段(例如,FX3等)中。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
图2a是根据本公开的主题的系统的示例实施例的框图。具体地讲,图2a示出诸如图1中示出的FPA的Far路径部分298的示例实施例。在示出的实施例中,Far路径298接收两个64位操作数SrcA 202和SrcB 204。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
如上所述,操作数202和204包括64位双精度浮点数。在这样的实施例中,编号为51-0的52位是数字的尾数、小数或有效数部分。在IEEE 754中,小数部分包括不表示的“隐藏位(hidden bit)”,由于隐藏位可来自指数部分,因此通常将允许给予小数部分比分配的存储小数部分的位数多1位的精度(例如,52位小数部分具有53位的精度)。
在这样的实施例中,编号为62-52的11位是数字的指数部分。如上所述,11位的指数被偏置使得可表示正指数和负指数二者。在各种实施例中,考虑到21023和2-1022之间的指数,规格化数的指数偏置使得零指数具有值1023。最后,编号为63的位是指示小数是正还是负的符号位。如上所述,在各种实施例中,对于被视为“规格化”数的数字,其必须在有效数或小数的隐藏位中包括1。
在示出的实施例中,非规格化数检测电路252可接收操作数202和204的指数部分(位52-62)。在这样的实施例中,非规格化数检测电路252可从指数部分获得隐藏位(指示数字是规格化还是非规格化)。由于非规格化数对于指数部分包括零值,因此可通过对指数部分的位取或(ORing)来获得隐藏位,以确定指数是否为非零。非规格化数检测电路252的各个结果213的逆(逻辑非)随后与各个操作数202和204的小数部分(位51-0)连接以形成预交换信号210。在这样的实施例中,预交换信号210可包括有效数的精度的全部(例如,53位等)。
如上所述,在各种实施例中,各个信号211可基于非规格化数检测电路252的输出213(DenormA和DenormB)。在这样的实施例中,如果接收的操作数是非规格化而另一操作数是规格化,则各个前导位补偿电路250可对它们各自的预交换操作数210进行移位。
如上所述,ExpDiff计算电路152可接收操作数202和204的全部指数位(位62-52)。从这点上,ExpDiff计算电路152可产生信号111,信号111指示操作数202比操作数204大还是小(在数量级方面),并因此指示哪个操作数202或204将成为较大的操作数212和较小的操作数214。此外,ExpDiff计算电路152可产生信号112,信号112指示较小的操作数214的小数点需要被移动多少位以与较大的或固定的操作数212对齐。在示出的实施例中,该信号212可被对齐电路154采用。
如上所述,在经过交换MUX 150之后,操作数210可被指定为大操作数212和小操作数214。在示出的实施例中,操作数212和214可包括各个操作数210的52位。在示出的实施例中,操作数212和214还可包括它们各自的保护(G)位和舍入(R)位。在各种实施例中,保护位可被构造为“防范”舍入误差。同样地,舍入位可被构造为影响舍入决定。在各种实施例中,G位和R位这两个位可向计算有效地增加两个位的精度。此外,由电路156产生的粘贴位可使操作数212和214的宽度均变为56位。
如上所述,在示出的实施例中,加法器158可包括被构造为执行舍入运算的60位整数加法器。在这样的实施例中,加法器158可被构造为假定在加法期间没有发生指数移位。然而,在示出的实施例中,加法器160可包括被构造为考虑溢出或1位左移位并执行标准的规格化运算的60位整数加法器。
在示出的实施例中,选择逻辑218考虑三种可能事件。如果发生了溢出, 则指数部分可增加。如果减法使结果不包括整数(例如,1.0+(–0.75)=0.25等),则有效数可被移位并且指数被调整以形成适当的规格化数(例如,0.25变为2.5×10-1等)。在示出的实施例中,如果两个非规格化数的加法导致了规格化数,则如上所述,由于规格化数和非规格化数之间的指数偏置不同,因此结果的指数部分必须增加。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
图2b是根据本公开的主题的系统的示例实施例的框图。具体地讲,图2b示出诸如图1中示出的FPA的Close路径部分299的示例实施例。在示出的实施例中,Close路径299接收两个64位操作数SrcA 202和SrcB 204。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
再次,在示出的实施例中,非规格化数检测电路253接收操作数202和204的指数部分。从这点上,非规格化数检测电路253可确定操作数是规格化还是非规格化。同样地,非规格化数检测电路253的各个结果213的逆(逻辑非)可随后与各个操作数202和204的小数部分(位51-0)连接,以形成预交换信号210。在这样的实施例中,预交换信号210可包括有效数的精度的全部(例如,53位等)。
如上所述,在示出的实施例中,指数差(ExpDiff)计算电路172可接收操作数202和204的指数的两个最低有效位(位53和52)。在这样的实施例中,ExpDiff计算电路172可包括2位,这是因为在Close路径299中假定操作数202和204彼此在一个数量级内。
在示出的实施例中,2位ExpDiff计算电路172的时序需求可小于非规格化数检测电路253的时序需求。在这样的实施例中,与传统的FPA电路相比,非规格化数检测电路253可增加Close路径299的时序需求。然而,由于FPA100的整个临界时序路径包括在Far路径298中,因此FPA 100的整个时序由于Close路径299中的非规格化数检测电路253的加法而不增加。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
在示出的实施例中,信号231已被修改为不仅考虑操作数202是否大于操作数204,而且考虑该操作数是否是非规格化并且另一操作数是否是规格化。在这样的实施例中,可(经由对齐电路171)发生规格化数和非规格化数之间的指数偏置的差的校正或补偿。
在示出的实施例中,加法器174可包括被构造为从操作数A 232减去操 作数B 234的55位加法器。另外,加法器176可包括被构造为从操作数B 234减去操作数A 232的55位加法器。
在示出的实施例中,LZA 180可输出54位矢量137。在这样的实施例中,PENC 181可将该54位矢量137转换为6位编码的输出值138。在各种实施例中,最大移位评估器281和钳位检测器282可接收最大操作数237的指数部分作为输入。
在示出的实施例中,MUX 284的输出238可被构造为基于钳位检测器282是否调用非规格化钳制功能来产生结果信号236的新的指数值。如果钳位检测器282确定小数点移动的量将受限制或受钳制,则指数值将减小PENC181所建议的量138。在各种实施例中,这可包括将指数值设置为零。否则,指数值将减小最大移位评估器281所建议的量。此外,在各种实施例中,可发生指数的额外减小以调整规格化数和非规格化数之间的指数偏置的差。
在示出的实施例中,如果LZA估计137不正确并且结果信号236是规格化数,则补偿小数点移位器273的控制逻辑和信号239可被构造为调整小数点。如果LZA估计137不正确并且结果信号236不是非规格化数,但是应当是非规格化数,则指数可减小。如果LZA估计137不正确并且结果信号236是非规格化数,但是应当不是非规格化数,则指数可增加以调整规格化指数偏置相对于非规格化指数偏置的差。再次,在示出的实施例中,可产生Close路径结果244。
图2c是根据本公开的主题的系统的示例实施例的框图。具体地讲,图2c示出诸如图1中示出的FPA的选择电路297的示例实施例。在示出的实施例中,选择电路297接收三个结果,Far路径结果242、Close路径结果244和特殊结果246。在各种实施例中,特殊结果246可包括多个特殊结果(例如,不包括非规格化数异常的每个算术异常的一个特殊结果)。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
如上所述,在示出的实施例中,结果选择器290可被构造为基于信号241在Far路径结果242或Close路径结果244之间进行选择。在示出的实施例中,如果发生了真正的减法,并且发生了大规模相消或者操作数202和204的指数的差为零,则信号241可使Close路径结果244被选择。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
在示出的实施例中,系统可包括一个或更多个特殊计算路径296。如上 所述,每个路径可被构造为计算或处理一个或更多个算术异常。在各种实施例中,特殊计算路径296可产生一个或更多个特殊结果246。如上所述,最终结果选择器192被构造为在浮点结果248和特殊结果246之间进行选择。在各种实施例中,FPA可不包括特殊计算路径296或最终结果选择器192。要理解,以上仅是一个说明性示例,本公开的主题不限于此。
图3是根据本公开的主题的技术300的示例实施例的流程图。在各种实施例中,技术300可由诸如图1、图2a、图2b和/或图2c的系统的系统使用或产生。虽然如此,但是要理解,以上仅是一些说明性示例,本公开的主题不限于此。要理解,本公开的主题不限于技术300所示出的动作的数量或顺序。
块302示出在一个实施例中,如上所述,可接收第一浮点操作数和第二浮点操作数。在一些实施例中,如上所述,第一浮点操作数和第二浮点操作数可包括规格化数、非规格化数或其组合。在各种实施例中,如上所述,该块所示出的动作中的一个或更多个可由图1、图2a、图2b或图2c的系统或设备、图1、图2a、图2b或图2c的操作数202和204执行。
块304示出在一个实施例中,如上所述,可基于第一浮点操作数和第二浮点操作数的加法或减法来计算Far路径结果。在各种实施例中,如上所述,该Far路径计算可不管第一浮点操作数、第二浮点操作数或Far路径结果中的至少一个是否包括非规格化数而发生。在各种实施例中,如上所述,如果第一浮点操作数和第二浮点操作数二者包括非规格化数并且Far路径结果包括规格化数,则计算Far路径结果可包括调整Far路径结果的指数部分。在一些实施例中,如上所述,如果第一浮点操作数和第二浮点操作数二者包括非规格化数并且Far路径结果包括规格化数,则计算Far路径结果可包括调整Far路径结果的指数部分。在各种实施例中,如上所述,该块所示出的动作中的一个或更多个可由图1、图2a、图2b或图2c的系统或设备、图1、图2a或图2c的Far路径电路298、图1或图2a的前导位补偿电路250或者图1或图2a的整数加法电路296执行。
块306示出在一个实施例中,如上所述,可基于第一浮点操作数和第二浮点操作数的减法来计算Close路径结果。在一个实施例中,如上所述,该计算可不管第一浮点操作数、第二浮点操作数或Close路径结果中的至少一个是否包括非规格化数而发生。在各种实施例中,如上所述,如果Close路 径结果包括非规格化数,则计算Close路径结果可包括调整Close路径结果的小数点移位。在一些实施例中,如上所述,如果浮点操作数包括非规格化数,则计算Close路径结果可包括移动浮点操作数的小数点。在各种实施例中,如上所述,该块所示出的动作中的一个或更多个可由图1、图2a、图2b或图2c的系统或设备、图1、图2b或图2c的Close路径电路299、图1或图2b的对齐电路171、图1或图2b的小数点移位电路286或者图1或图2b的补偿小数点移位器273执行。
块308示出在一个实施例中,如上所述,计算Close路径结果可包括:如果Close路径结果包括非规格化数,则限制Close路径结果的小数点移位的量。在各种实施例中,如上所述,计算Close路径结果可包括估计用于移动Close路径结果的小数点的估计量。在这样的实施例中,如上所述,计算Close路径结果可包括确定Close路径结果是否是非规格化数。在一个这样的实施例中,如上所述,计算Close路径结果可包括限制Close路径结果的小数点移位的量,以不超出小数点移位的最大量。在各种实施例中,如上所述,该块所示出的动作中的一个或更多个可由图1、图2a、图2b或图2c的系统或设备、图1、图2b或图2c的Close路径电路299、图1或图2b的钳位电路287、图1或图2b的小数点移位电路286、图1或图2b的补偿小数点移位器273或小数点移位器175执行。
图4是可包括根据本公开的主题的原理形成的半导体装置的信息处理系统400的示意性框图。
参照图4,信息处理系统400可包括根据本公开的主题的原理构造的一个或更多个装置。在另一实施例中,信息处理系统400可采用或执行根据本公开的主题的原理的一个或更多个技术。
在各种实施例中,信息处理系统400可包括诸如(例如)膝上型计算机、台式计算机、工作站、服务器、刀片式服务器、个人数字助理、智能电话、平板和其他适当的计算机等的计算装置或虚拟机器或虚拟计算装置。在各种实施例中,信息处理系统400可由用户(未示出)使用。
根据本公开的主题的信息处理系统400还可包括中央处理单元(CPU)、逻辑或处理器410。在一些实施例中,处理器410可包括一个或更多个功能单元块(FUB)或组合逻辑块(CLB)415。在这样的实施例中,组合逻辑块可包括各种布尔逻辑运算(例如,NAND、NOR、NOT、XOR等)、稳定逻 辑器件(例如,触发器、锁存器等)、其他逻辑器件或它们的组合。这些组合逻辑运算可以以用于处理输入信号的简单或复杂方式配置以实现期望的结果。要理解,虽然描述了同步组合逻辑运算的一些说明性示例,但是本公开的主题不受此限制,并可包括异步运算或它们的混合。在一个实施例中,组合逻辑运算可包括多个互补金属氧化物半导体(CMOS)晶体管。在各种实施例中,这些CMOS晶体管可被布置成执行逻辑运算的门;虽然如此,但是要理解,其他技术可被使用并且在本公开的主题的范围内。
根据本公开的主题的信息处理系统400还可包括易失性存储器420(例如,随机存取存储器(RAM)等)。根据本公开的主题的信息处理系统400还可包括非易失性存储器430(例如,硬盘驱动器、光学存储器、NAND或闪存等)。在一些实施例中,易失性存储器420、非易失性存储器430或者它们的组合或部分可被称为“存储介质”。在各种实施例中,易失性存储器420和/或非易失性存储器430可被构造为以半永久性或充分永久性形式存储数据。
在各种实施例中,信息处理系统400可包括一个或更多个网络接口440,网络接口440被构造为允许信息处理系统400成为通信的一部分并且经由通信网络进行通信。Wi-Fi协议的示例可包括(但不限于)电气和电子工程师协会(IEEE)802.11g、IEEE 802.11n等。蜂窝协议的示例可包括(但不限于)IEEE 802.16m(亦称无线MAN(城域网)高级)、长期演进(LTE)高级、增强数据率GSM(全球移动通信系统)演进(EDGE)、演进高速分组接入(HSPA+)等。有线协议的示例可包括(但不限于)IEEE 802.3(亦称以太网)、光纤通道、电力线通信(例如,HomePlug、IEEE 1901等)等。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
根据本公开的主题的信息处理系统400还可包括用户接口单元450(例如,显示适配器、触觉接口、人机接口装置等)。在各种实施例中,该用户接口单元450可被构造为从用户接收输入和/或向用户提供输出。其他种类的装置也可用于提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈,并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
在各种实施例中,信息处理系统400可包括一个或更多个其他装置或硬件组件460(例如,显示器或监视器、键盘、鼠标、相机、指纹阅读器、视 频处理器等)。要理解,以上仅是一些说明性示例,本公开的主题不限于此。
根据本公开的主题的信息处理系统400还可包括一个或更多个系统总线405。在这样的实施例中,系统总线405可被构造为可通信地连接处理器410、易失性存储器420、非易失性存储器430、网络接口440、用户接口单元450和一个或更多个硬件组件460。由处理器410处理的数据或从非易失性存储器430的外部输入的数据可被存储在非易失性存储器430或易失性存储器420中。
在各种实施例中,信息处理系统400可包括或者执行一个或更多个软件组件470。在一些实施例中,软件组件470可包括操作系统(OS)和/或应用。在一些实施例中,OS可被构造为向应用提供一个或更多个服务并管理或用作应用和信息处理系统400的各种硬件组件(例如,处理器410、网络接口440等)之间的中介。在这样的实施例中,信息处理系统400可包括一个或更多个本地应用,本地应用可被安装在本地(例如,在非易失性存储器430等中)并被构造为由处理器410直接执行并与OS直接交互。在这样的实施例中,本地应用可包括预编译的机器可执行代码。在一些实施例中,本地应用可包括被构造为将源代码或目标代码翻译成随后由处理器410执行的可执行代码的脚本解释器(例如,C shell(csh)、AppleScript、AutoHotkey等)或虚拟执行机(VM)(例如,Java虚拟机、微软通用语言运行库(Microsoft Common Language Runtime)等)。
以上描述的半导体装置可使用各种封装技术被封装。例如,根据本发明构思的原理构造的半导体装置可使用以下技术中的任何一种被封装:层叠式封装(PoP)技术、球栅阵列(BGA)技术、芯片级封装(CSP)技术、塑料引线芯片载体(PLCC)技术、塑料双列直插式封装(PDIP)技术、裸片格栅封装(die in waffle pack)技术、裸片级晶片形式(die in wafer form)技术、板上芯片(COB)技术、陶瓷双列直插式封装(CERDIP)技术、塑料公制方形扁平封装(PMQFP)技术、塑料方形扁平封装(PQFP)技术、小外形封装(SOIC)技术、窄间距小外形封装(SSOP)技术、薄型小外形封装(TSOP)技术、薄型方形扁平封装(TQFP)技术、系统级封装(SIP)技术、多芯片封装(MCP)技术、晶片级制造封装(WFP)技术、晶片级加工的堆叠式封装(WSP)技术或将对本领域技术人员公知的其他技术。
方法步骤可由执行计算机程序的一个或更多个可编程处理器执行,以通 过操作输入数据并产生输出来执行功能。方法步骤还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,并且设备可被实现为专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))。
在各种实施例中,计算机可读介质可包括当被执行时使装置执行至少一部分方法步骤的指令。在一些实施例中,计算机可读介质可包括在磁介质、光介质、其他介质或其组合(例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器等)中。在这样的实施例中,计算机可读介质可以是有形地且非暂时地实施的制造的物品。
尽管已经参照示例实施例描述了本公开的主题的原理,但是本领域技术人员将清楚的是,在不脱离这些本公开构思的精神和范围的情况下,可对其进行各种改变和修改。因此,应当理解的是,以上实施例不是限制性的,而仅是说明性的。因此,本公开构思的范围将由权利要求及其等同物的最宽的容许解释确定,不应受前述描述限制或限定。因此,将理解的是,权利要求意图涵盖落入实施例的范围内的所有这样的修改和改变。

浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf_第1页
第1页 / 共26页
浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf_第2页
第2页 / 共26页
浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf_第3页
第3页 / 共26页
点击查看更多>>
资源描述

《浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf》由会员分享,可在线阅读,更多相关《浮点加法器、通过浮点加法器执行的方法和信息处理系统.pdf(26页珍藏版)》请在专利查询网上搜索。

提供一种浮点加法器、通过浮点加法器执行的方法和信息处理系统。根据一个总体方面,一种设备可包括:浮点加法单元,包括Far路径电路、Close路径电路和最后结果选择器电路。Far路径电路可被构造为不管操作数或结果是否包括规格化数或非规格化数,基于两个浮点数的加法或减法来计算Far路径结果。Close路径电路可被构造为不管操作数或结果是否包括规格化数或非规格化数,基于两个浮点操作数的减法来计算Close。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1