使用大和小浮点值二者来执行算术运算制造技术

技术编号:10319409 阅读:167 留言:0更新日期:2014-08-13 19:56
提供用于在数据处理系统中执行浮点算术运算的机制。接收浮点算术运算的多个浮点操作数,并且对多个浮点操作数中的至少一个浮点操作数的尾数中的位进行移位。尾数中被移位到至少一个浮点操作数的尾数的位范围以外的一个或者多个位被存储,并且基于所存储的、该尾数中被移位到至少一个浮点操作数的尾数的位范围以外的一个或者多个位生成矢量值。基于矢量值和多个浮点操作数生成用于浮点算术运算的结果值。

【技术实现步骤摘要】
【国外来华专利技术】使用大和小浮点值二者来执行算术运算
本申请总体涉及一种改进的数据处理装置和方法,并且更具体地涉及用于使用大和小浮点值二者来执行算术运算的机制。
技术介绍
术语“浮点”是指一种用可以支持宽的值范围的方式表示实数的方法。利用浮点格式,数一般由固定数目的有效数位近似地表示并且使用基数值和对应指数来缩放。用于缩放的基数通常为2、10或者16、但也可以是适合于特定实现方式的任何基数值。可以确切地表示的典型数为以下形式:有效数位X基数、例如1.34x2'在计算系统内,这样的浮点格式值包括表示浮点值的有效数位的有效位部分(或者尾数部分)和表示浮点值的指数部分的指数位部分而假设基数值在计算机系统架构内一致、例如基数为2。因此,浮点格式提供用于表示宽的值范围的能力,该值范围可以范围从相对很大值到相对很小值。
技术实现思路
在一个示例实施例中,提供一种在数据处理系统中用于执行浮点算术运算的方法。该方法包括在数据处理系统的硬件逻辑中接收浮点算术运算的多个浮点操作数。该方法还包括由硬件逻辑对多个浮点操作数中的至少一个浮点操作数的尾数中的位进行移位。另外,该方法包括由硬件逻辑存储所述尾数中被移位到至少一个浮点操作数的尾数的位范围以外的一个或者多个位。此外,该方法包括由硬件逻辑基于所存储的、所述尾数中被移位到至少一个浮点操作数的尾数的有效的位范围以外的一个或者多个位生成矢量值。另外,该方法包括由硬件逻辑基于矢量值和多个浮点操作数生成用于浮点算术运算的结果值。在其它示例实施例中,提供一种计算机程序产品包括计算机可用或者可读介质,计算机可用或者可读介质具有计算机可读程序。计算机可读程序在计算设备上被执行时使计算设备执行以上关于方法示例实施例概述的操作中的各种操作和操作组合。在另一示例实施例中,提供一种系统/装置。该系统/装置可以包括一个或者多个处理器和耦合到该一个或者多个处理器的存储器。存储器可以包括指令,该指令在由一个或者多个处理器执行时使一个或者多个处理器执行以上关于方法示例实施例概述的操作中的各种操作和操作组合。本专利技术的这些和其它特征以及优点将在本专利技术的示例实施例的以下具体描述中被描述并且将鉴于以下具体描述而变得为本领域普通技术人员所清楚。将通过参照在结合附图阅读时的对示例实施例的以下具体描述最佳地理解本专利技术及其优选实施方式以及更多目的和优点。【附图说明】[图1]图示浮点加法运算的示例;[图2]是图示根据一个示例实施例的浮点加法运算的示例框图;[图3]是概述根据一个示例实施例的用于执行浮点加法的示例浮点算术运算的流程图;并且[图4]是概述其中可以实施示例实施例的方面的一个示例数据处理系统的示例框图。【具体实施方式】示例实施例提供用于使用大和小浮点值二者来执行算术运算的机制。在一个示例实施例中,示例实施例的机制应用于加法运算,其中将各自表示为有效位和指数位的两个或者更多浮点值一起相加以生成结果浮点值。示例实施例的机制提供用于用概率权值累加在尾数以下的位的能力,例如时间的1/2累加在尾数的范围以外的一个位置、时间的1/4累加在尾数的范围以外的两个位置等。尽管将关于浮点加法运算描述示例实施例,但是应当理解可以与包括减法、除法、乘法等的任何类型的浮点算术运算利用示例实施例。计算机系统中的浮点表示基本上为实际值的近似值。例如可以使用与0.3 (3x10^) >0.33,0.333等对应的浮点值来表示值1/3,并且尽管这可以延伸至无穷数量的小数数位以获得值1/3的越来越好的近似,但是浮点值将决不恰好等于1/3、即它是近似值。以相似方式,计算机系统架构施加对可以在计算机系统架构中表示的有效数位和指数数位数目的限制。这除了由于浮点表示使用的基数值而完全不能确切地表示一些数(例如基数为2的浮点格式不能确切地表示值1/3)这样的事实外,也造成浮点表示是实数的近似。就浮点值算 术而言,为了执行算术运算,必须调整操作数,从而它们具有在算术运算的操作数之中的一致指数值。这与科学表示法算术运算相似,在科学表示法算术运算中必须类似地调整值以使指数对于值中的每个字段相同。例如在科学表示法中,在将值1.58el和3.45e0相加时,需要将值3.45e0调整成值0.345el、然后与值1.58el相加。这产生值1.925el。这对于如下计算系统中的浮点算术同样成立,在这些计算系统中,必须对有效位和指数位进行移位,从而操作数具有相同指数并且可以执行算术运算。在浮点算术中,由于浮点值可以被用来表示很大值和很小值二者,所以情况经常可以是组合相对小的浮点值与相对大的浮点值。在这样的情况下,小浮点值在它们与大浮点值相加时经常由于取整而丢失。这是由于浮点值是近似的这一性质、以及对尾数位和指数位进行移位以使指数值对于操作数相同以有助于算术运算这一需求。例如图1图示浮点加法运算的示例。如图1中所示,在包括指数部分112、122和位数部分114、124的浮点格式中提供操作数110和120中的每个操作数。在一些计算系统架构中,浮点值110和120还可以包括符号位(未示出)。另外,在一些计算系统架构中,取代如图1中所示让8个位用于指数和尾数中的每项,可以对于指数和尾数使用其他数量个位,位的数量对于指数和尾数中的每个可以相同或者可以不同,即用于指数的位数可以与用于尾数的位数相同或者不同。第一浮点值110让指数部分112中的第四指数位设置成I而其余位设置成0,并且尾数部分114的第八位设置成I而其余位设置成O。这对应于值128*2~8 = 128*256 =32,768。第二浮点值110具有值128*2~0 = 128。为了能够将第一浮点值110的相对大的值与第二浮点值120的相对小的值相加,需要调整第二浮点值120的指数部分122和尾数部分124以使指数部分122与用于浮点值110的指数部分112相同。这涉及到对指数部分122的指数位和尾数部分124的尾数位进行移位以如图1中所示相应地调整该值为浮点值130。也就是说,指数部分122的位被左移位,并且为了抵消指数位的左移位,位数部分124中的尾数位被右移位。如图1中所示,在一些情况下,指数部分122和位数部分124中的位的移位可能使得尾数的位被移位为超出计算机系统架构支持的尾数位数、即浮点值的取整。换而言之,第二浮点值120的值比第一浮点值110相对小得多,使得它由于浮点值的近似性质和对计算系统架构有助于的位数的限制二者而相对地不显著。也就是说,更小浮点值120的最高有效位为比更大浮点值110的最低有效位更低的量值。因此,这样的更小浮点值实质上消失并且在这样的浮点算术运算中被忽略而结果完全是更大浮点值140。对于使用浮点算术运算的一些应用/功能,这样的取整误差或者近似是可接受的,即精确度损失不显著。然而在其它应用中,这样的取整误差或者近似可能负面地影响应用或者计算系统功能的恰当操作,例如累加小值、比如事件计数和统计量的功能或者应用可能不能适应这样的取整误差或者近似而未负面地影响功能。例如在许多计算机系统架构中,存储器优化功能/算法可能需要对用于每个存储器区域的存储器活动进行计数。这样的存储器优化功能/算法的示例包括存储器页面替换算法、分层存储器支持结构等。这样的存储器优化功能/算法需要宽的动态浮点值范围,而存本文档来自技高网...

【技术保护点】
一种在数据处理系统中用于执行浮点算术运算的方法,包括:在所述数据处理系统的硬件逻辑中接收所述浮点算术运算的多个浮点操作数;由所述硬件逻辑对所述多个浮点操作数中的至少一个浮点操作数的尾数中的位进行移位;由所述硬件逻辑存储所述尾数中被移位到所述至少一个浮点操作数的所述尾数的位范围以外的一个或者多个位;由所述硬件逻辑基于所存储的、所述尾数中被移位到所述至少一个浮点操作数的所述尾数的所述位范围以外的一个或者多个位,生成矢量值;并且由所述硬件逻辑基于所述矢量值和所述多个浮点操作数生成用于所述浮点算术运算的结果值。

【技术特征摘要】
【国外来华专利技术】2011.12.13 US 13/324,0251.一种在数据处理系统中用于执行浮点算术运算的方法,包括: 在所述数据处理系统的硬件逻辑中接收所述浮点算术运算的多个浮点操作数; 由所述硬件逻辑对所述多个浮点操作数中的至少一个浮点操作数的尾数中的位进行移位; 由所述硬件逻辑存储所述尾数中被移位到所述至少一个浮点操作数的所述尾数的位范围以外的一个或者多个位; 由所述硬件逻辑基于所存储的、所述尾数中被移位到所述至少一个浮点操作数的所述尾数的所述位范围以外的一个或者多个位,生成矢量值;并且 由所述硬件逻辑基于所述矢量值和所述多个浮点操作数生成用于所述浮点算术运算的结果值。2.根据权利要求1所述的方法,其中所述浮点算术运算是用于将两个浮点数相加的加法运算。3.根据权利要求1所述的方法,其中所述浮点算术运算是减法运算、除法运算或者乘法运算之一。4.根据权利要求1所述的方法,其中所述浮点算术运算更新用于对所述数据处理系统的存储器区域的存储器活动进行计数的计数器,并且其中所述计数器被用作用于优化对所述数据处理系统的所述存储器的利用的存储器优化算法的一部分。5.根据权利要求1所述的方法,其中存储所述尾数中被移位到所述至少一个浮点操作数的所述尾数的位范围以外的一个或者多个位包括在分离寄存器的与所述尾数中被移位到所述尾数的所述位范围以外的所述一个或者多个位对应的位位置中设置位。6.根据权利要求5所述的方法,其中所述分离寄存器中的每个位位置具有不同的关联概率权值,并且其中基于所存储的、所述尾数中被移位到所述至少一个浮点操作数的所述尾数的所述位范围以外的一个或者多个位生成所述矢量值包括基于与具有在所述分离寄存器中设置的对应位值的位位置关联的概率权值来生成所述矢量值。7.根据权利要求6所述的方法,其中每个概率权值使值在所述算术运算期间每X数目个算术运算与所述移位的浮点操作数的所述移位的尾数相加,其中X是与所述概率权值对应的整数值。8.根据权利要求7所述的方法,其中所述分离寄存器中的第一位位置具有概率权值50 %,从而所述值每2个算术运算与所述移位的尾数相加一次,所述分离寄存器中的第二位位置具有概率权值25%,从而所述值每4个算术运算与所述移位的尾数相加一次,并且所述分离寄存器中的第三位位置具有概率权值12.5%,从而所述值每8个算术运算与所述移位的尾数相加一次。9.根据权利要求6所述的方法,其中使用对应伪随机数生成器来生成所述矢量值中的每个位,所述每个位具有对应于与所述分离寄存器中的对应位位置关联的概率权值的概率分布。10.根据权利要求1所述的方法,其中所述方法实施于所述数据处理系统的处理器、存储器控制器、固件或者服务处理器中的至少一项的硬件逻辑中。11.一种装置,包括: 被配置用于接收浮点算术运算的多个浮点操作数的硬件逻辑;被配置用于对所述多个浮点操作数中的至少一个浮点操作数的尾数中的位进行移位的硬件逻辑; 被配置用于存储所述尾数中被移位到所述至少一个浮点操作数的所述尾数的位范围以外的一个或者多个位的硬件逻辑; 被配置用于基于所存储的、所述尾数中被移位到所述至少一个浮点操作数的所述尾数的所述位范围以外的一个或者多个位,生成矢量值的硬件逻辑;以及 被配置用于基于所述矢量值和所述多个浮点操作数生成用于所述浮点算术运算的结果值的硬件逻辑。12.根据权利要求11所述的装置,其中所述浮点算术运算是用于将两个浮点数相加的加法运算。13.根据权利要求11所述的装置,其中所述浮点算术运算是减法运算、除法运算或者乘法运算之一。14.根据权利要求11所述的装置,其中所述浮点算术运算更新用于对所述数据处理系统的存储器区域的存储器活动进行计数的...

【专利技术属性】
技术研发人员:J·A·施蒂切利E·E·雷特尔K·拉加玛尼B·梅利J·B·卡特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1