执行浮点减法的装置与方法及预测符号数字的装置与方法

文档序号:6438517阅读:209来源:国知局

专利名称::执行浮点减法的装置与方法及预测符号数字的装置与方法
技术领域
:本发明涉及浮点减法,且特别涉及通过前导数字预测来正规化块消去(masscancellation)的浮点减法结果。
背景技术
:第15次IEEE计算机运算研讨会(15thIEEESymposiumonComputerArithmetic,ARITH‘01)公报中kidel和Even发表的文章「OnthedesignofFastIEEEFloating-PointAdders」叙述了包含两种不同路径的浮点加法器设计,此两种不同路径通常称为「远路径(farpath)」和「近路径(nearpath)」,其为浮点加法器领域中的已有知识。近路径计算有效减法(两个运算元具有不同符号(正负号)的加法指令或两个运算元具有相同符号的减法指令),其中近路径中运算元指数部分的差的绝对值小于或等于1,而远路径计算其他所有的情况,也就是远路径中运算元指数部分的差的绝对值大于1。近路径和远路径并行地执行有效浮点减法的指令,再根据指数部分的差来选择最后的结果。在近路径计算中,执行有效减法可能会消去数值意义的数个前导数字(leadingdigits,又称之为前导数元),有时又称为「大量消去(masscancellation)」或块消去。因此,必须放置最高有效数字(mostsignificantdigit,又称之为最高有效数元)并将其左移以产生正规形式的表示法,此过程通常称为「正规化(normalization)」。在本文中,希望可以预测在减法中会被消去的前导有效数字(leadingsignificantdigits,t,又称之为前导有效数元)的数量。此预测和尾数(mantissa)部分的减法并行进行(或叫平行进行),此并行进行是相对于等待真正位差计算出来后再列举被消去的前导有效数字,并行进行可大规模地加速列举被消去的前导有效数字。因此可以加速整个正规化过程。以下列被减数A减去减数B的减法为例A=10110111B=10110010A-B=00000101B-A=11111010(1的补数表示法)在A-B的情况中,发生5个有效数字的块消去,造成具有5个前导0的正数结果。在B-A的情况中,发生5个有效数字的块消去,造成具有5个前导1的负数结果,或者说造成具有5个等于1的符号位的负数结果。在两种情况中,最高有效数字位于第三最低有效数字的位置,因此需要向左移5个位以正规化相减所得的差。如上列所述,如果能预测在减法中将有5个前导有效数字被消去则可以大规模地加速正规化。预测前导0/前导1/前导符号位的概念已被大量研究,可追溯至Kershaw等人早期发表的成果,“AProgrammableDigitalSignalProcessorwith32-bitFloating-PointArithmetic,,,IEEESolidStateCircuitsConference,DigestofPaper,1985,pp.92-9·,随后Schmookler禾口Nowka概述于“LeadingZeroAnticipationandDetection-ΑComparisonofMethods”,Proceedingsofthe15thIEEESymposiumonComputerArithmetic,2011o附加技术公开于上列提及的kidel和Even的论文中。关于两个输入值P和Q,对执行有效减法的加法器而言,所得结果的差中的前导O字串可通过(ZVTGZ)的样式比对(patternmatch)来预测,其中Z*表示1个或更多个Z的字串,T*表示1个或更多个T的字串,且其中Ti=PiXORQi,Gi=PiANDQi,Zi=(!Pi)AND(!Qi),其中Pi和A分别为ρ和Q相对应的位,TpGi和τ、为Pi和A的样式比对函数值。同样地,前导O字串或其值为1的前导符号位字串可通过(GVTZ(T)的样式比对来预测。如同khmookler和Nowka在第2段中所表示在大多数文献中,前导O这个名词表示在第一个1之前的O的开头字串,而前导1表示在第一个O之前的1的开头字串。尽管如此,由于一些论文中使用前导1预测器(leadingonepredictor)来表示在O的开头字串之后所出现的第一个1,可能会造成一些混淆,因此,在本文中我们避免使用这样的字词。Oberman等人的美国专利6,085,208的标题为「浮点运算单元中正规化闭合路径的减法结果的前导1预测单元(leadingonepredictionunitfornormalizingclosepathsubtractionresultswithinafloatingpointarithmeticunit)」。Oberman·人公开一预测器(predictor),其预测在两个输入值之间预设为正的差之中,连续前导O字串(也就是O或更多个0)后的第一个1位(也就是第一有效数字)的位置。因此他们使用「前导1预测单元」这个词。或者说,Oberman等人公开了一前导O预测器,其提供一预测字串,该预测字串用来预测在预设为正的差之中因为块消去而出现的前导O的数量,因此,为了避免如khmookler和Nowka所述的混淆,本发明将使用「前导O预测单元」来指称Oberman等人的预测单元,而不使用如其标题中的「前导1预测单元」。Oberman等人的前导O预测单元提供近路径减法器的预测,该近路径减法器进行两个输入值的有效减法,并预设该两个输入值的指数部分之间的差为+1或-1,且将输入值排序以使较大量值的输入值减去较小量值的输入值并产生正的相减结果。由于当指数部分的差为+1或-1时将输入值排序以预设相减结果为负,Oberman等人可以提供一最佳化的前导O预测单元以减少所需的空间,并且与现有技术的预测单元相比更能增加效能,其中现有技术的预测单元仅预设尾数部分的差为正但是没有预设指数部分的差为+1或-1,预设指数部分的差为+1或-ι相对于两者皆未预设的现有技术的一般预测单元更是一大进步。
发明内容本发明的一实施例提供一种执行浮点有效减法的装置,其中该装置运算二个浮点输入值,其包括第一浮点输入值和第二浮点输入值的,该等浮点输入值包括一无符号量值(unsignedmagnitude)的一尾数和一指数,该装置包括线路和逻辑,其配置为将该第一浮点输入值的尾数扩展一位的O、左移一位、并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;以及将该第二浮点输入值扩展一位的O以生成第二加数;一加法器,其配置为加总该第一加数和该第二加数,其中该加法器针对该线路和逻辑所生成的该第一加数和该第二加数加总以产生一负差;一反相器,其配置为将该负反相以生成一非正规化尾数;多个二输入与非门,其配置为对该第一加数和该第二加数执行一布林与非函数(BooleanNANDfunction)以生成一预测字串;以及一移位器,其配置为根据该预测字串将该非正规化尾数左移一移位数量个位(即也称之为左移一移位数量个位元)以生成一正规化尾数结果。本发明的另一实施例提供一种执行浮点有效减法的方法,其包括具有第一浮点输入值和第二浮点输入值的二个浮点输入值,该等浮点输入值包括一无符号量值的尾数和一指数,该方法包括测定该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第一浮点输入值的尾数扩展一位的0、左移一位并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第二浮点输入值扩展一位的0以生成第二加数;加总该第一加数和该第二加数,其中所述加总流程针对通过将该第一浮点输入值的尾数扩展一位的0、左移一位并反相所得的该第一加数以及通过将该第二浮点输入值扩展一位的0所得的该第二加数加总以生成一负差;反相该负差以生成一非正规化尾数;执行一布林与非函数于该第一加数和该第二加数以产生一预测字串;以及根据该预测字串将该非正规化尾数左移一移位数量个位以生成一正规化尾数结果。本发明的另一实施例提供一种预测负差中的前导符号数字的装置,该装置包括一比较器,其配置为测定一第一数与一第二数之间的量值差异,该量值的差异不超过一个数字位置(digitposition,又称之为数元位置),其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;多个与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串,其中一0值被对位至该预测字串的最高有效位;其中该预测字串的一前导0字串预测该被减数和该对位减数之间的负差的相对应的前导符号数字字串。本发明的另一实施例提供一种预测负差中的前导符号数字的方法,包括测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数并指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相(invert)对位减数(alignedsubtrahend);执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位(bit,又称之为位元)的预测字串;对位(assign)—0值至该预测字串的最高有效位;以及利用该预测字串的相对应的前导0字串预测该被减数(minuend)和该对位减数(alignedsubtrahend)之间的负差(negativedifference)的前导符号数字(leadingsigndigit)字串(string)。本发明的另一实施例提供一种预测负差中的前导符号数字(leadingsigndigit,也称之为前导符号数元)的装置,该装置包括比较逻辑,其配置为测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;一算术单元,其配置为针对该被减数和该反相对位减数产生一负差;以及一前导符号预测器,其配置为产生该被减数和该反相对位减数的该负差的前导符号数字的预测。本发明的另一实施例提供一种预测负差中的前导符号数字的方法,该方法包括测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数且指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相对位减数;将该被减数与该反相对位减数指示给一二进位加法器以产生一负差;以及将该被减数与该反相对位减数指示给一前导符号预测器以产生该负差的前导符号数字的预测。图1所示为根据本发明的微处理器示意图,其中该微处理器包含浮点近路径加法单元;图2所示为表现出图1中的微处理器的近路径加法单元的更多细节的示意图,其中包含前导1预测器;图3A与图;3B所示分别为图2中的前导1预测器241及216的示意图4所示为图2中的近路径加法单元的操作流程图5所示为图2中的近路径加法单元的操作范例;图6所示为图1中的近路径加法单元的交替实施例的示意图。主要元件符号说明100微处理器;102指令快取存储器;104指令转译器;112寄存器别名表;114预留站;116执行单元;118引退单元;122数据快取存储器;124寄存器集;132近路径加法单元;134远路径加法单元;136浮点单元;138其他执行单元;202指数比较器;206、208、232、234、244、246多工器;212加法器;214、216前导1预测器;218前导数字预测器;228反相器阵列;236前导0编码器;238、248左移位器;252线路;254指数调整逻辑;256线路和逻辑;277尾数值;297指数值;281、283预测字串;332与非门;402、403......428步骤;MSB最高有效位。具体实施方式本发明公开一浮点单元,其执行近路径有效减法并通过将输入值排序以指定较小量值的输入值为被减数且指定较大量值的输入值为减数以产生负的差值。当指数部分的差为+1或-1时,有效地排序输入值以预设减法结果为负,允许一伴随而生的前导1预测器提供用来预测该负的减法结果中前导1的数量的预测字串。该前导1预测器包括一与非门(NANDgate)阵列,如上列述,其可有利地减少空间需求并且相对于现有技术中的前导数字预测器更能增加效能,尤其是以互补金属氧化物半导体(CM0Q半导体技术来实现。此处叙述的前导1预测器同时也被称为前导符号数字预测器,因为在负的差值下,其提供用来预测前导符号数字或前导1的数量的预测字串。参照图1,其表示包括浮点近路径加法单元的微处理器(microprocessor)100的示意图。微处理器100包括指令快取存储器(instructioncache)102,其快取(cache)从系统存储器(未表示在图中)取出的指令。指令转译器(instructiontranslator)104从快取存储器102接收指令,例如X86指令集架构(instructionsetarchitecture)的浮点指令。寄存器别名表(registeraliastable,以下简称为RAT)112从指令转译器104接收转译过的微指令并产生转译过的微指令的相依信息。预留站(reservationstation,又称之为保留站)114从RAT112接收转译过的微指令以及相依信息。执行单元(executionunit)116从预留站114接收转译过的微指令并且接收转译过的微指令的指令运算元。这些运算元可来自寄存器集124以及来自耦接至执行单元116的数据快取存储器122。引退单元(retireunit)118从执行单元116接收指令结果,并且将结果引退至微处理器100的架构状态(architecturalstate)。执行单元116包括浮点单元136和其他执行单元138。浮点单元136包括近路径加法单元132和远路径加法器134。选择近路径加法单元132的有效减法结果的条件为运算元的指数部分的差的绝对值小于或等于1,而在其他条件时则选择远路径加法器134的结果。(尽管如此,须注意的是,如果近路径加法单元132的有效减法结果需要比尾数存储大小所能提供的位多一个或多数个表示位,则该计算预留为远路径所提供的环状运算(roundcalculation))0参照图2,其显示图1中的微处理器的近路径加法单元132的更多细节的示意图,其中包含前导1预测器。近路径加法单元132接收一指令,其指定两个浮点源运算元。不管这些源运算元是否被正规化且不管这些源运算元在该指令中出现的顺序,当这些源运算元出现在如图2中所示的近路径加法单元132的部分时,如果需要,则微处理器100的运算元感测电路会将这些源运算元正规化为正规化输入运算元op-A和正规化输入运算元op-B,且近路径加法单元132决定需要计算op-A和op-B之间的数学差以执行指令来产生其需要的结果,其结果可能也是正规化的浮点值。近路径加法单元132包括二前导1预测器214和216,每个该等前导1预测器包括与非门阵列或一维排列的多个与非门,其仅招致一单一与非门延迟,并预测正规化潜在非正规化尾数差结果271时所需要左移的数量。如果非正规化尾数差结果271为非零的值,则其最高有效数字并未在期望的存储格式中靠左对位。如同此处的讨论,作为优点,前导1预测器214和216的与非门可能普遍地比现有技术的前导数字预测器更为块且更小,尤其是当以CMOS技术实现时。每个正规化的输入运算元op-A和op-B包括一符号位、一指数值(标示为EXP-A或EXP-B)以及一正规化且量值无符号(unsignedmagnitude)的尾数值。为简化起见,在图2中输入运算元op-A的尾数简单地以B表示。除此之外,近路径加法单元132所产生的结果包括一符号位和一指数值,以及在一实施例中还包括一正规化且量值无符号的尾数值。在图2中,该正规化且量值无符号的尾数值标示为277。在一实施例中,源运算元可为三种x-86浮点形式中的任何一个,即为人所熟知的x-86单精度(singleprecision)、双倍精度(doubleprecision)以及扩展双精度(double-extendedprecision)格式。尽管如此,本发明并不局限于此三个格式并且本发明可以利用其他浮点格式实施。近路径加法单元132预设EXP-A值和EXP-B值之间的差为+1、0或_1。此外,浮点加法单元的远路径部分会产生正确的指令结果。因此,如果EXP-A值大于EXP-B值,近路径加法单元132预设EXP-A值和EXP-B值之间的差为+1,则需要在执行有效减法之前将尾数值A对位。如果EXP-A值小于EXP-B值,近路径加法单元132预设EXP-A值和EXP-B值之间的差为-1,则需要在执行有效减法之前将尾数值B对位。因此,根据一实施例,近路径加法单元132包括导线和逻辑256以产生输入尾数A和B的补数形式(complementform),并从原始形式和补数形式的A和B形成在中间潜在倒转且对位的值。该中间值(intermediatevalue)全部比A和B的宽度多一个位以在EXP-A值和EXP-B值之间的差为1的情况下容纳1位对位(alignmentbyonebit)。线路和逻辑256通过连结O至A值以形成标示为C的第一中间值,其中连结至A值的O为C的最高有效数字。因此,C为A的一位O扩展形式(one-bitzero-extendedform)。线路和逻辑256通过连结O至B值以形成标示为D的第二中间值,其中连结至B值的O为D的最高有效数字。因此,D为B的一位O扩展形式。线路和逻辑256通过连结1至A的补数值(complementedvalue)以形成标示为E的第三中间值,其中连结至A的补数值的1为E的最低有效数字。因此,E为A在op-A指数值比op-B指数值多1的情况下在对位之后反相所得的形式。线路和逻辑256通过连结1至B的补数值以形成标示为F的第四中间值,其中连结至B的补数值的1为F的最低有效数字。因此,F为B在op-B指数值比op-A指数值多1的情况下在对位之后反相所得的形式。线路和逻辑256通过连结1至A的补数值以形成标示为G的第五中间值,其中连结至A的补数值的1为G的最高有效数字。因此,G为A反相形式。该等中间值总结于表格1并在图2中表示。权利要求1.一种执行浮点有效减法的装置,其中该装置运算二个浮点输入值,包括第一浮点输入值和第二浮点输入值,该等浮点输入值包括一无符号量值(unsignedmagnitude)的一尾数和一指数,该装置包括线路和逻辑,其配置为将该第一浮点输入值的尾数扩展一位的0、左移一位、并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;以及将该第二浮点输入值扩展一位的0以生成第二加数;一加法器,其配置为加总该第一加数和该第二加数,其中该加法器针对该线路和逻辑所生成的该第一加数和该第二加数加总以产生一负差;一反相器,其配置为将该负差反相以生成一非正规化尾数;多个二输入与非门,其配置为对该第一加数和该第二加数执行一布林与非函数以生成一预测字串;以及一移位器,其配置为根据该预测字串将该非正规化尾数左移一移位数量个位以生成一正规化尾数结果。2.如权利要求1所述的执行浮点有效减法的装置,还包括一前导0编码器,其配置为编码该预测字串中前导0的数量以生成该移位数量。3.如权利要求1所述的执行浮点有效减法的装置,还包括一第二线路和逻辑,其配置为若该正规化尾数结果的最高有效位为0,则将该正规化尾数结果左移一额外位。4.如权利要求1所述的执行浮点有效减法的装置,其中该加法器在加总该第一加数和该第二加数的同时该多个二输入与非门对该第一加数和该第二加数执行该布林与非函数。5.如权利要求1所述的执行浮点有效减法的装置,还包括一比较器,其配置为测定该第一浮点输入值的指数比该第二浮点输入值的指数大1。6.一种执行浮点有效减法的方法,其包括具有第一浮点输入值和第二浮点输入值的二个浮点输入值,该等浮点输入值包括一无符号量值的尾数和一指数,该方法包括测定该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第一浮点输入值的尾数扩展一位的0、左移一位并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第二浮点输入值扩展一位的0以生成第二加数;加总该第一加数和该第二加数,其中所述加总流程系针对通过将该第一浮点输入值的尾数扩展一位的0、左移一位并反相所得的该第一加数以及通过将该第二浮点输入值扩展一位的0所得的该第二加数加总以生成一负差;反相该负差以生成一非正规化尾数;执行一布林与非函数于该第一加数和该第二加数以产生一预测字串;以及根据该预测字串将该非正规化尾数左移一移位数量个位以生成一正规化尾数结果。7.如权利要求6所述的执行浮点有效减法方法,其中所述根据该预测字串将该非正规化尾数左移该移位数量个位以生成该正规化尾数结果包括编码该预测字串中前导0的数量以生成该移位数量。8.如权利要求6所述的执行浮点有效减法方法,还包括如果该正规化尾数结果的最高有效位为0,则将该正规化尾数结果左移一额外位。9.一种预测负差中的前导符号数字的装置,该装置包括一比较器,其配置为测定一第一数与一第二数之间的量值差异,该量值的差异不超过一个数字位置,其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;多个与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串,其中一0值被对位至该预测字串的最高有效位;其中该预测字串的一前导0字串预测该被减数和该对位减数之间的负差的相对应的前导符号数字字串。10.如权利要求9项的预测负差中的前导符号数字的装置,其中其值为1的该预测字串的最高有效位位置预测该被减数与该对位减数之间的负差的最高有效位位置。11.一种预测负差中的前导符号数字的方法,包括测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数并指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相对位减数;执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串;对位一0值至该预测字串的最高有效位;以及利用该预测字串的相对应的前导0字串预测该被减数和该对位减数之间的负差的前导符号数字字串。12.如权利要求11项的预测负差中的前导符号数字的方法,其中其值为1的该预测字串的最高有效位位置预测该被减数与该对位减数之间的负差的最高有效位位置。13.一种预测负差中的前导符号数字的装置,该装置包括比较逻辑,其配置为测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;一算术单元,其配置为针对该被减数和该反相对位减数产生一负差;以及一前导符号预测器,其配置为产生该被减数和该反相对位减数的该负差的前导符号数字的预测。14.如权利要求13项的预测负差中的前导符号数字的装置,其中该前导符号预测器包括多个布林与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生该负差的前导符号数字的该预测。15.如权利要求13项的预测负差中的前导符号数字的装置,其中该预测通过该预测相对应前导0字串预测该负差的前导符号字串。16.如权利要求13项的预测负差中的前导符号数字的装置,其中该预测通过该预测相对应前导1字串预测该负差的前导符号字串。17.一种预测负差中的前导符号数字的方法,该方法包括测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数且指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相对位减数;将该被减数与该反相对位减数指示给一二进位加法器以产生一负差;以及将该被减数与该反相对位减数指示给一前导符号预测器以产生该负差的前导符号数字的预测。18.如权利要求17项的预测负差中的前导符号数字的方法,更进一步包括执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生该负差的前导符号数字的该预测。19.如权利要求17项的预测负差中的前导符号数字的方法,其中该预测通过该预测相对应前导0字串预测该负差的前导符号字串。20.如权利要求17项的预测负差中的前导符号数字的方法,其中该预测通过该预测相对应前导1字串预测该负差的前导符号字串。全文摘要执行浮点减法的装置与方法及预测符号数字的装置与方法,该装置包括一比较器,配置为测定一第一数与一第二数之间的量值差异,该量值的差异不超过一个数字位置,其中第一数大于第二数,其中第一数被指定为减数且第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;多个与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串,其中一0值被对位至该预测字串的最高有效位;其中该预测字串的一前导0字串预测该被减数和该对位减数之间的负差的相对应的前导符号数字字串。文档编号G06F7/509GK102495714SQ201110362770公开日2012年6月13日申请日期2011年11月16日优先权日2011年1月5日发明者汤姆.艾尔摩申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1