CN102495714A - 执行浮点减法的装置与方法及预测符号数字的装置与方法 - Google Patents
执行浮点减法的装置与方法及预测符号数字的装置与方法 Download PDFInfo
- Publication number
- CN102495714A CN102495714A CN2011103627707A CN201110362770A CN102495714A CN 102495714 A CN102495714 A CN 102495714A CN 2011103627707 A CN2011103627707 A CN 2011103627707A CN 201110362770 A CN201110362770 A CN 201110362770A CN 102495714 A CN102495714 A CN 102495714A
- Authority
- CN
- China
- Prior art keywords
- subtrahend
- prediction
- floating
- contraposition
- word string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Error Detection And Correction (AREA)
Abstract
执行浮点减法的装置与方法及预测符号数字的装置与方法,该装置包括:一比较器,配置为测定一第一数与一第二数之间的量值差异,该量值的差异不超过一个数字位置,其中第一数大于第二数,其中第一数被指定为减数且第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;多个与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串,其中一0值被对位至该预测字串的最高有效位;其中该预测字串的一前导0字串预测该被减数和该对位减数之间的负差的相对应的前导符号数字字串。
Description
技术领域
本发明涉及浮点减法,且特别涉及通过前导数字预测来正规化块消去(mass cancellation)的浮点减法结果。
背景技术
第15次IEEE计算机运算研讨会(15th IEEE Symposium on ComputerArithmetic,ARITH‘01)公报中Seidel和Even发表的文章「On the design ofFast IEEE Floating-Point Adders」叙述了包含两种不同路径的浮点加法器设计,此两种不同路径通常称为「远路径(far path)」和「近路径(near path)」,其为浮点加法器领域中的已有知识。近路径计算有效减法(两个运算元具有不同符号(正负号)的加法指令或两个运算元具有相同符号的减法指令),其中近路径中运算元指数部分的差的绝对值小于或等于1,而远路径计算其他所有的情况,也就是远路径中运算元指数部分的差的绝对值大于1。近路径和远路径并行地执行有效浮点减法的指令,再根据指数部分的差来选择最后的结果。
在近路径计算中,执行有效减法可能会消去数值意义的数个前导数字(leading digits,又称之为前导数元),有时又称为「大量消去(mass cancellation)」或块消去。因此,必须放置最高有效数字(most significant digit,又称之为最高有效数元)并将其左移以产生正规形式的表示法,此过程通常称为「正规化(normalization)」。在本文中,希望可以预测在减法中会被消去的前导有效数字(leading significant digits,t,又称之为前导有效数元)的数量。此预测和尾数(mantissa)部分的减法并行进行(或叫平行进行),此并行进行是相对于等待真正位差计算出来后再列举被消去的前导有效数字,并行进行可大规模地加速列举被消去的前导有效数字。因此可以加速整个正规化过程。
以下列被减数A减去减数B的减法为例:
A=10110111
B=10110010
A-B=00000101
B-A=11111010(1的补数表示法)
在A-B的情况中,发生5个有效数字的块消去,造成具有5个前导0的正数结果。在B-A的情况中,发生5个有效数字的块消去,造成具有5个前导1的负数结果,或者说造成具有5个等于1的符号位的负数结果。在两种情况中,最高有效数字位于第三最低有效数字的位置,因此需要向左移5个位以正规化相减所得的差。如上列所述,如果能预测在减法中将有5个前导有效数字被消去则可以大规模地加速正规化。
预测前导0/前导1/前导符号位的概念已被大量研究,可追溯至Kershaw等人早期发表的成果,“A Programmable Digital Signal Processor with 32-bitFloating-Point Arithmetic”,IEEE Solid State Circuits Conference,Digest ofPaper,1985,pp.92-9.,随后Schmookler和Nowka概述于“Leading ZeroAnticipation and Detection-A Comparison of Methods”,Proceedings of the 15thIEEE Symposium on Computer Arithmetic,2011。附加技术公开于上列提及的Seidel和Even的论文中。
关于两个输入值P和Q,对执行有效减法的加法器而言,所得结果的差中的前导0字串可通过(Z*+T*GZ*)的样式比对(pattern match)来预测,其中Z*表示1个或更多个Z的字串,T*表示1个或更多个T的字串,且其中:
Ti=Pi XOR Qi,
Gi=Pi AND Qi,
Zi=(!Pi)AND(!Qi),
其中Pi和Qi分别为P和Q相对应的位,Ti、Gi和Zi为Pi和Qi的样式比对函数值。同样地,前导0字串或其值为1的前导符号位字串可通过(G*+T*ZG*)的样式比对来预测。
如同Schmookler和Nowka在第2段中所表示:
在大多数文献中,前导0这个名词表示在第一个1之前的0的开头字串,而前导1表示在第一个0之前的1的开头字串。尽管如此,由于一些论文中使用前导1预测器(leading one predictor)来表示在0的开头字串之后所出现的第一个1,可能会造成一些混淆,因此,在本文中我们避免使用这样的字词。
Oberman等人的美国专利6,085,208的标题为「浮点运算单元中正规化闭合路径的减法结果的前导1预测单元(leading one prediction unit fornormalizing close path subtraction results within a floating point arithmeticunit)」。Oberman等人公开一预测器(predictor),其预测在两个输入值之间预设为正的差之中,连续前导0字串(也就是0或更多个0)后的第一个1位(也就是第一有效数字)的位置。因此他们使用「前导1预测单元」这个词。或者说,Oberman等人公开了一前导0预测器,其提供一预测字串,该预测字串用来预测在预设为正的差之中因为块消去而出现的前导0的数量,因此,为了避免如Schmookler和Nowka所述的混淆,本发明将使用「前导0预测单元」来指称Oberman等人的预测单元,而不使用如其标题中的「前导1预测单元」。Oberman等人的前导0预测单元提供近路径减法器的预测,该近路径减法器进行两个输入值的有效减法,并预设该两个输入值的指数部分之间的差为+1或-1,且将输入值排序以使较大量值的输入值减去较小量值的输入值并产生正的相减结果。由于当指数部分的差为+1或-1时将输入值排序以预设相减结果为负,Oberman等人可以提供一最佳化的前导0预测单元以减少所需的空间,并且与现有技术的预测单元相比更能增加效能,其中现有技术的预测单元仅预设尾数部分的差为正但是没有预设指数部分的差为+1或-1,预设指数部分的差为+1或-1相对于两者皆未预设的现有技术的一般预测单元更是一大进步。
发明内容
本发明的一实施例提供一种执行浮点有效减法的装置,其中该装置运算二个浮点输入值,其包括第一浮点输入值和第二浮点输入值的,该等浮点输入值包括一无符号量值(unsigned magnitude)的一尾数和一指数,该装置包括:线路和逻辑,其配置为:将该第一浮点输入值的尾数扩展一位的0、左移一位、并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;以及将该第二浮点输入值扩展一位的0以生成第二加数;一加法器,其配置为加总该第一加数和该第二加数,其中该加法器针对该线路和逻辑所生成的该第一加数和该第二加数加总以产生一负差;一反相器,其配置为将该负差反相以生成一非正规化尾数;多个二输入与非门,其配置为对该第一加数和该第二加数执行一布林与非函数(Boolean NAND function)以生成一预测字串;以及一移位器,其配置为根据该预测字串将该非正规化尾数左移一移位数量个位(即也称之为左移一移位数量个位元)以生成一正规化尾数结果。
本发明的另一实施例提供一种执行浮点有效减法的方法,其包括具有第一浮点输入值和第二浮点输入值的二个浮点输入值,该等浮点输入值包括一无符号量值的尾数和一指数,该方法包括:测定该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第一浮点输入值的尾数扩展一位的0、左移一位并反相以生成第一加数,其中该第一浮点输入值的指数比该第二浮点输入值的指数大1;将该第二浮点输入值扩展一位的0以生成第二加数;加总该第一加数和该第二加数,其中所述加总流程针对通过将该第一浮点输入值的尾数扩展一位的0、左移一位并反相所得的该第一加数以及通过将该第二浮点输入值扩展一位的0所得的该第二加数加总以生成一负差;反相该负差以生成一非正规化尾数;执行一布林与非函数于该第一加数和该第二加数以产生一预测字串;以及根据该预测字串将该非正规化尾数左移一移位数量个位以生成一正规化尾数结果。
本发明的另一实施例提供一种预测负差中的前导符号数字的装置,该装置包括:一比较器,其配置为测定一第一数与一第二数之间的量值差异,该量值的差异不超过一个数字位置(digit position,又称之为数元位置),其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;多个与非门,其配置为执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位的预测字串,其中一0值被对位至该预测字串的最高有效位;其中该预测字串的一前导0字串预测该被减数和该对位减数之间的负差的相对应的前导符号数字字串。
本发明的另一实施例提供一种预测负差中的前导符号数字的方法,包括:测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数并指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相(invert)对位减数(aligned subtrahend);执行一布林与非函数于该被减数以及该反相对位减数的相对应数字上以产生位(bit,又称之为位元)的预测字串;对位(assign)一0值至该预测字串的最高有效位;以及利用该预测字串的相对应的前导0字串预测该被减数(minuend)和该对位减数(aligned subtrahend)之间的负差(negative difference)的前导符号数字(leadingsign digit)字串(string)。
本发明的另一实施例提供一种预测负差中的前导符号数字(leadingsign digit,也称之为前导符号数元)的装置,该装置包括:比较逻辑,其配置为测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数,其中该第一数被指定为减数且该第二数被指定为被减数;线路和逻辑,其配置为相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数,并将该对位减数反相以产生一反相对位减数;一算术单元,其配置为针对该被减数和该反相对位减数产生一负差;以及一前导符号预测器,其配置为产生该被减数和该反相对位减数的该负差的前导符号数字的预测。
本发明的另一实施例提供一种预测负差中的前导符号数字的方法,该方法包括:测定一第一数与一第二数之间的量值差异,该量值差异不超过一个数字位置,其中该第一数大于该第二数;指定该第一数为减数且指定该第二数为被减数;相对于该被减数将该减数对位该量值差异个数字位置以产生一对位减数;反相该对位减数以产生一反相对位减数;将该被减数与该反相对位减数指示给一二进位加法器以产生一负差;以及将该被减数与该反相对位减数指示给一前导符号预测器以产生该负差的前导符号数字的预测。
附图说明
图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预测器包括一与非门(NAND gate)阵列,如上列述,其可有利地减少空间需求并且相对于现有技术中的前导数字预测器更能增加效能,尤其是以互补金属氧化物半导体(CMOS)半导体技术来实现。此处叙述的前导1预测器同时也被称为前导符号数字预测器,因为在负的差值下,其提供用来预测前导符号数字或前导1的数量的预测字串。
参照图1,其表示包括浮点近路径加法单元的微处理器(microprocessor)100的示意图。微处理器100包括指令快取存储器(instructioncache)102,其快取(cache)从系统存储器(未表示在图中)取出的指令。指令转译器(instruction translator)104从快取存储器102接收指令,例如X86指令集架构(instruction set architecture)的浮点指令。寄存器别名表(register alias table,以下简称为RAT)112从指令转译器104接收转译过的微指令并产生转译过的微指令的相依信息。预留站(reservation station,又称之为保留站)114从RAT112接收转译过的微指令以及相依信息。执行单元(execution unit)116从预留站114接收转译过的微指令并且接收转译过的微指令的指令运算元。这些运算元可来自寄存器集124以及来自耦接至执行单元116的数据快取存储器122。引退单元(retire unit)118从执行单元116接收指令结果,并且将结果引退至微处理器100的架构状态(architectural state)。执行单元116包括浮点单元136和其他执行单元138。浮点单元136包括近路径加法单元132和远路径加法器134。选择近路径加法单元132的有效减法结果的条件为运算元的指数部分的差的绝对值小于或等于1,而在其他条件时则选择远路径加法器134的结果。(尽管如此,须注意的是,如果近路径加法单元132的有效减法结果需要比尾数存储大小所能提供的位多一个或多数个表示位,则该计算预留为远路径所提供的环状运算(round calculation))。
参照图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)以及一正规化且量值无符号(unsigned magnitude)的尾数值。为简化起见,在图2中输入运算元op-A的尾数简单地以B表示。除此之外,近路径加法单元132所产生的结果包括一符号位和一指数值,以及在一实施例中还包括一正规化且量值无符号的尾数值。在图2中,该正规化且量值无符号的尾数值标示为277。在一实施例中,源运算元可为三种x-86浮点形式中的任何一个,即为人所熟知的x-86单精度(single precision)、双倍精度(doubleprecision)以及扩展双精度(double-extended precision)格式。尽管如此,本发明并不局限于此三个格式并且本发明可以利用其他浮点格式实施。
近路径加法单元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的补数形式(complement form),并从原始形式和补数形式的A和B形成在中间潜在倒转且对位的值。该中间值(intermediate value)全部比A和B的宽度多一个位以在EXP-A值和EXP-B值之间的差为1的情况下容纳1位对位(alignment by onebit)。线路和逻辑256通过连结0至A值以形成标示为C的第一中间值,其中连结至A值的0为C的最高有效数字。因此,C为A的一位0扩展形式(one-bit zero-extended form)。线路和逻辑256通过连结0至B值以形成标示为D的第二中间值,其中连结至B值的0为D的最高有效数字。因此,D为B的一位0扩展形式。线路和逻辑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中表示。
C | 0:A |
D | 0:B |
E | !A:1 |
F | !B:1 |
G | 1:!A |
表格1
近路径加法单元132包括二输入多工器(two-input mux)206,其接受C值和D值并且将两个输入值其中之一选为根据控制输入值255提供其输出261。近路径加法单元132包括第一三输入多工器208,其接受E值、F值和G值并且将三个输入值其中之一选为根据控制输入值257提供其输出值263。近路径加法单元132包括第二三输入多工器234,其分别从前导数字预测器214、216和218(将在下面详细叙述)接受输出值281、283和285,并且将三个输入值其中之一选为根据控制输入值259提供其输出值287。
近路径加法单元132包括比较逻辑,如指数比较器(exponentcomparator)202,其接收标示为EXP-A 251的第一输入运算元以及标示为EXP-B 253的第二输入运算元。指数比较器202产生控制输出值255、257和259,其根据表格2分别控制多工器206、多工器208以及多工器234。
exponent relationship | mux 206selects | mux 208selects | mux 234selects |
EXP-A>EXP-B | D | E | 281 |
EXP-A<EXP-B | C | F | 283 |
EXP-A=EXP-B | D | G | 285 |
表格2
近路径加法单元132包括算术单元,如加法器212,其接收多工器206和208分别的输出值261和263。加法器212将此二个输入值261和263(对于多工器206和208而言是输出值)加在一起以产生总和265以及增量总和(incremented sum)267。因此,从表格1和表格2可观察到,当EXP-A减EXP-B等于+1时,0扩展(zero-extended)的B被指定为有效减法的被减数且对位(aligned)的A被指定为有效减法的减数,该有效减法由加法器212执行。而当EXP-A减EXP-B等于-1时,0扩展的A被指定为有效减法的被减数且对位的B被指定为有效减法的减数,该有效减法由加法器212执行。另外,当EXP-A减EXP-B等于0时,0扩展的B被指定为有效减法的被减数且互补0扩展(complemented zero-extended)的A被指定为有效减法的减数,该有效减法由加法器212执行。因此,当EXP-A减EXP-B等于+1时,总和265为以1的补数表示法(one’s-complement representation)表示的B减去对位的A的差,且增量总和267为以2的补数表示法(two’s-complement representation)表示的B减去对位的A的差。当EXP-A减EXP-B等于-1时,总和265为以1的补数表示法表示的A减去对位的B的差,且增量总和267为以2的补数表示法表示的A减去对位的B的差。另外,当EXP-A减EXP-B等于0时,总和265为以1的补数表示法表示的B减去A的差,且增量总和267为以2的补数表示法表示的B减去A的差。此外,位299从加法器212生成,其表示总和265的符号。在图2的实施例中,加法器212为一位符号扩展(one-bitsign-extended)的加法器,其将一0位以及一1位接收进入附加加法器单元以产生位299,位299为该0位、该1位以及一进位输入值(carry in)的总和,其中该进位输入值从输入值261和263的总和的最左位而得。须注意的是,符号位299并不被提供至反相器228,因此最后并不会表现在左移位器(leftshifter)238提供的值271。
反相器228接收总和265并产生其补数269。因此,当EXP-A减EXP-B等于+1时,补数269为A和B的对位差(aligned difference)的绝对值。当EXP-A减EXP-B等于-1时,补数269为A和B的对位差的绝对值。当EXP-A减EXP-B等于0时,在A的量值大于B的情况下,补数269为A和B的对位差(aligned difference)的绝对值。
多工器232接收补数总和269以及增量总和267。如果位299为1,也就是若总和265为负,则多工器232选择补数总和269以提供其输出值271;在其他状况下,多工器232选择增量总和267以提供其输出值271。当指数差为0时,总和265可为正或负。特别是,在本发明中,通过近路径加法单元132的配置可有效地将A值和B值排序并对位,使得在指数差为+1或-1的时候,总和265的差结果为负。因此,当指数差为+1或-1的时候,输出值271为A和B的算术差的潜在非正规化对位绝对值。此外,在本发明中,当指数差为+1或-1的时候,线路和逻辑256以及多工器206和208互相配合操作以将原始形式和补数形式版本的尾数A和B对位,并将其有效指定为加法器的输入,使得较大量值的对位的A和B输入值有效地被较小量值的对位的A和B输入值减去,因此加法器212所产生的差其值为负,其允许相关的前导数字预测器为前导1预测器214/216,前导1预测器214/216可以通过与非门阵列最佳化实施,细节将在下列叙述。
近路径加法单元132也包括左移位器238,其将多工器232的输出值271左移数个位以产生输出值273,其中左移位的数目由移位数量输入值289指定。除非在本发明中另外说明,否则左移位意指将数个0值移入输出值中较低次序的位,其中较低次序的位是通过将输出值左移而空出。移位数量289如何产生将在下列叙述更多细节。
左移位器238的输出值273提供至二输入多工器244的第一输入。线路与逻辑242将输出值273左移以产生值275,其提供至多工器244的第二输入。如果输出值273的最高有效位为1,多工器244选择左移位器238的输出值273,且若输出值273的最高有效位为0,则多工器244选择已位移1位的值275。当需要时,移位线路与逻辑242的配置和多工器244互相配合操作以提供一位左移的修正,其将在下列叙述多一点细节。
近路径加法单元132也包括在EXP-A大于EXP-B的情况下的前导1预测器(以LOPAGTB简称)214、在EXP-A小于EXP-B的情况下的前导1预测器(以LOPALTB简称)216以及在EXP-A等于EXP-B的情况下的前导数字预测器(以LDPAEQB简称)218。如此文的讨论,每个LOPAGTB 214和LOPALTB 216仅包括与非门阵列以预测正规化尾数差结果271所需要的移位数量。
LOPAGTB 214接收表格1的D值和E值,并且根据在图3中表示其细节的D值和E值产生其预测字串输出281,预测字串输出281提供至多工器234的第一输入。LOPALTB 216接收表格1的C值和F值,并且根据在图3中表示其细节的C值和F值产生其预测字串输出283,预测字串输出283提供至多工器234的第二输入。LDPAEQB 218接收表格1的D值和G值,并且根据在图3中表示其细节的D值和G值产生其预测字串输出285,预测字串输出285提供至多工器234的第三输入。如上列所述,指数比较器202产生的控制信号259控制多工器234并根据表格2选择其三个输入281、283或285其中之一,且被选择的输入值提供至输出287。预测字串281、283和285将在下列讨论更多细节。
因为在EXP-A和EXP/B相等的情况中并不清楚当加法器212执行有效减法时事A输入的量值比较大还是B输入的量值比较大,所以无法将输入值排序以确保结果271为负,也就是说D和G的加法的结果271可为正或负。因此,LDPAEQB 218为完全前导数字预测器,其有能力预测潜在非正规化差结果271的最高有效数字的位位置(也就是预测前导1或前导2的数量),不论结果271为正或负。足以预测正或负结果的最高有效数字的位位置(也称之为“位元位置”)的完全前导数字预测器的配置为数字运算电路(digital arithmeticcircuits,数字运算电路)领域中的已知。
近路径加法单元132也包括第一前导0编码器236,其从多工器234接收所选择的预测字串287。前导0编码器236将预测字串287中前导0数量编码至输出291,输出291提供至二输入多工器246的第一输入。线路252将输出287左移以产生值295,值295提供至第二前导0编码器248。第二前导0编码器248将输入295中前导0数量编码至输出293,输出293提供至二输入多工器246的第二输入。如果位299为1,也就是若总和265为负,则多工器246选择来自第二前导0编码器248的输出293以提供至其输出289;在其他情况,多工器246选择来自第一前导0编码器236的输出291以提供至其输出289。多工器246的输出289提供至左移位器238以作为移位计数,并导致左移位器238将潜在非正规化差结果271左移移位计数389以产生移位结果273,如上列和下列讨论,移位结果273可能需要一附加位修正以正规化近路径尾数结果277。前导0编码器236和248可根据各已知技术建构。举例而言,Schmookler和Nowka描述两种有效取得前导0计数的方法。
指数比较器202也输出指数值279,其提供至指数调整逻辑254,指数调整逻辑254产生近路径结果的指数值297。如果EXP-A和EXP-B相等,则指数比较器202输出EXP-A和EXP-B相等的值为值279。如果EXP-A大于EXP-B,则指数比较器202将EXP-A输出为值279。如果EXP-A小于EXP-B,则指数比较器202将EXP-B输出为值279。指数调整逻辑254通过移位数量289和左移位器238输出273的值的反相最高有效位的总和将指数值279减量以产生近路径结果的指数值297。
虽然并未在图中表示,但近路径加法单元132包括产生近路径结果的适当符号位的线路。虽然并未在图中表示,但近路径加法单元132也包括可以检测出有效减法的输入为相等并分别产生0结果的情况的电路。虽然并未在图中表示,但近路径加法单元132也包括选择近路径或远路径的线路以根据输入运算元的指数值来提供最终指令结果。
参照图3A与图3B,其分别表示图2中的前导1预测器LOPAGTB 214和LOPALTB 216的示意图。
LOPAGTB 214包括由多个2-位与非门332所构成的阵列。在一实施例中,与非门332阵列中与非门的数目比图2和表格1中D和E的位数目少1个。D和E的位数目比各浮点格式的最大尾数的位数目多1个,其中该等各浮点格式为近路径加法单元132所支持。这个额外的位为尾数输入的对位的结果,此对位为指数差为+1的情况所需要的。举例而言,如果最大浮点格式中尾数的位数目为64位,则D和E的位数目为65,且与非门332阵列中与非门的数目为64。
LOPAGTB 214所产生的预测字串281的最高有效位为固线式(hardeired)0,其理由将在下列讨论。预测字串281的下一个最高有效位由与非门332阵列其中之一的与非门接收D和E中比其最高有效位位置少一个位置的位而产生,预测字串281再下一个有效位以同样规则产生,直到预测字串281的最低有效位由阵列其中之一的与非门322接收D和E中的最低有效位而产生。
请同时参考图2,如上叙述的细节,当op-A和op-B的指数差的绝对值为1时,近路径单元132配置为使加法器212产生负差(总和为负)265,并使负差265的前导数字预测器为前导1预测器。除此之外,由于op-A和op-B的指数差的绝对值为1所提供的特殊对位限制条件允许前导1预测器更进一步以与非门332的阵列来最佳化实现。最佳化的解释将在下列提供。
如上所述,总和的前导符号数字等于1的字串,例如负差265,可利用加法器输入值的(G*+T*ZG*)样式比对来预测,例如加法器212的输入值261和263,也就是当EXP-A减EXP-B为+1时的D值和E值,其位于多工器234从LOPAGTB选择预测字串281的情况。特别是,(G*+T*ZG*)样式比对不通过的位位置为负差265的相对应位位置,在负差265中,最高有效数字错误(此为对于本解释的预测,尽管如此,如下列更详细的讨论,负差265的最高有效数字置于比(G*+T*ZG*)样式比对不通过的相对应位位置左移1位的位置)。或者说,在(G*+T*ZG*)样式比对不通过的位位置左边的负差265的相对应数字为等于1的前导符号数字。如上列所述,在样式(G*+T*ZG*)中,G*表示零个或更多个G函数,T*表示零个或更多个T函数。E和F值的最左位为0,因为尾数A和B的输入值为正规化的,也就是说,E和F的最左位原为1,经反相后为0。除此之外,C和D的最左位为其0扩展(zero-extension)的0位效能(zero bit virtue)。因此,因为C、D、E、F和G经由特殊对位以及线路和逻辑256所执行的反相而产生,且多工器206和208的选择会提供给加法器212的输入261和263,则可从表格1和2中观察到当指数差的绝对值为1时,输入261和263的最高有效位将都产生Z。也就是说,D和E两者的最左位为0(其被选择为输入261和263当EXP-A大于EXP-B),且C和F两者最左位为0(其被选择为输入261和263当EXP-A小于EXP-B)。因此,输入261和263的最高有效位将总为0,当指数差的绝对值为1时使得其函数将一直为Z。因此,在指数差的绝对值为1的情况下,比对输入261和263所需的样式将从(G*+T*ZG*)有效地缩减为ZG*。除此之外,既然已知输入261和263的最高有效位的函数为Z,则必须用来比对输入261和263的其他位的样式将缩减为G*。因此,尽管有Z,值为G的输入261和263的前导位函数预测了该负差265中等于1的前导符号数字原始值。因此,尽管有Z,原始值为!G的输入261和263的最左位函数预测了最高有效位的该负差265中相对应的位位置。该!G函数可被简化为二输入与非门,如图3所示的与非门332,其中输入261和263(即分别为D和E)的每个位位置连接至各与非门332以产生预测字串281。与非门可通过CMOS技术更有效地设计,因为与非门可在不串联连接P型晶体管下配置,举例而言,通常或门或或非门需要串联连接P型晶体管。因此与非门可以操作地更快且尺寸更小。(须注意的是,如上列所述,输入261和263的最高有效位一直是Z,因此,预测字串281的最高有效位固线至0以使前导0编码器236和248编码预测字串281的前导0。)
关于如上所述的由线路与逻辑242和多工器244选择地进行的一位修正的需求,Schmookler和Nowka在第2段中表示:「若在[Z*+T*ZG*]的第一个不匹配之前有n个位位置,则总和会有(n-1)或n个前导[1]。」总和可能只有(n-1)个其值为1的前导符号数字而不是n个是因为进位可从右边进行。因此,负差265的最高有效数字可能位于(G*+T*ZG*)样式比对失败的相对应位的位置,或是在该位置左边一位的位置。或者说,在负差265中位于比(G*+T*ZG*)样式比对失败所在的位位置左移一位的相对应数字的值为1。尽管如此,因为进位可能从右边传递,在负差265中位于比(G*+T*ZG*)样式比对失败所在的位位置左移一位置的相对应数字等于1,其反而可能为负差265的最高有效数字。在多工器246选择输入值293的例子中,前导0编码器所产生的移位计数289可能比n少1,也就是(n-1)。因此,在结果271事实上有n个等于1的前导符号数字的情况下,线路与逻辑242和多工器244执行一额外位的左移。
更适合地,前导0编码器236和248使移位数量291号293最多比尾数值存储大小少1。这使得装置可容纳特例,在特例中输入值261和263同时为在所有1之后的0,由于LOPAGTB 214和LOPALTB 216会从输入值261和263的组合产生皆为0的预测字串281或283。或者,通过附加一位至预测字串右侧以及将该附加置预测字串右侧的位固线至1也可容纳特例。这样的方式可以确保前导0编码器236和248产生可用的移位数量给特例的算术差269。
如图3B所示,LOPALTB 216包括由二位与非门332所构成的阵列,其实质上相等于LOPAGTB 214的阵列。尽管如此,LOPALTB 216接收表格1和图2的C值和F值的相对应位,而不是D值和E值的,并产生预测字串283,而不是预测字串281。此外,如同LOPAGTB 214,LOPALTB 216产生一作为预测字串283的最高有效位的固线0。
参照图2与图4,图4所示为图2中的近路径加法单元的操作流程图。在一实施例中,以下的操作流程可由一集成电路执行。该流程图从区块402开始。
在区块402中,图2的指数比较器202比较两个输入指数值EXP-A和EXP-B以产生图2的控制输出255、257和259。该流程图同时进行至区块404和412。
在区块403中,图2的线路与逻辑256扩展0并选择性地对位,以及将尾数输入值A和B反相以产生输入多工器206和208以及LOPAGTB 214、LOPALTB 216和LDPAEQB 218的C到G。该流程图从区块403同时进行至区块404和412。
在区块404中,多工器206和208将从区块403所产生的选择性地对位并反相的输入值排序以分别根据控制信号255和257提供至加法器212,如图2以及表格2所示。多工器206和208的选择系根据区块402中所执行的指数比较,其有效地将op-A和op-B中较大量值的输入值的对位尾数指定为有效减法的减数,该有效减法由加法器212执行,并有效地将op-A和op-B中较小量值的输入值的对位尾数指定为有效减法的被减数。流程图从区块404进行至区块406。
在区块406中,加法器212将其输入值261和263加总以产生图2的总和265。总和265为对位尾数输入值A和B的有效减法的以1的补数表示法表示的差结果(当EXP-A减EXP-B为0或+1时对位B减A;当EXP-A减EXP-B为-1时对位A减B),并且产生图2中的增量总和267,增量总和267为对位尾数输入值A和B的有效减法的以2的补数表示法表示的差结果。当op-A和op-B的指数值的差的绝对值为1时,总和265为一差值,差即为负值。流程图进行至区块408。
在区块408中,如果总和265为负(也就是若位299为1),多工器232选择反相器228输出的反相总和269为图2的输出271;否则,多工器232选择增量总和267为输出271。流程图从区块408进行至区块426。
在区块412中,输入值D和E提供至LOPAGTB 214,输入值F和C提供至LOPALTB 216,且输入值D和G提供至图2中的LDPAEQB 218。流程图同时进行至区块414、416和418。
在区块414中,LOPAGTB 214利用如图3A所示的与非门332的阵列产生图2的预测字串281。流程图从区块414进行至区块422。
在区块416中,LOPALTB 216利用如图3B所示的与非门332的阵列产生图2的预测字串283。流程图从区块416进行至区块422。
在区块418中,LDPAEQB 218产生图2的预测字串285。流程图从区块418进行至区块422。
在区块422中,指数比较器202根据比较EXP-A和EXP-B所产生的控制信号259控制图2中的多工器234以选择适当的输入值281、283或285以提供至输出值287,如表格2所述。流程图进行至区块424。
在区块424中,如果区块406所产生的总和265为负,多工器246选择由前导0编码器248所产生的移位数量293,其中前导0编码器248接收左移1位版本的输出值287并将其当作提供至图2中的左移位器238的移位数量289。在其他情况中,多工器246选择由前导0编码器236所产生的移位数量291,其中前导0编码器236接收输出值287并将其当作提供至图2中的左移位器238的移位数量289。流程图从区块424进行至区块426。
在区块426中,左移位器238将潜在非正规化的尾数差结果271位移位移数量289个位以产生图2的潜在正规化形式的尾数差结果273。流程图进行至区块428。
在区块428中,如果潜在正规化形式的尾数差结果273的最高有效位不为1,例如结果273非正规化,则多工器244选择结果273的左移1位版本275并将其当作正规化近路径结果277;否则,多工器244选择结果273当作正规化近路径结果277。流程图结束于区块428。
参照图5,图5所示为图2中的近路径加法单元的操作范例。该范例执行两个浮点输入值op-A和op-B。为简化起见,输入的尾数值只有8个位,其中真实的实施例通常包括更多的位。Op-A输入包括8位的尾数,其标示为A,A具有二进位值10110010,Op-A的指数值为十进位的5,其标示为EXP-A,如图5中第(1)行所示。Op-A输入包括8位的尾数,其标示为B,B具有二进位值11010110值为十进位的4,其标示为EXP-B,如图5中第(2)行所示。因为EXP-A的值比EXP-B的值大1,指数比较器202产生一控制信号255的值以使多工器206选择D输入值,D输入值为扩展0版本的尾数B,其值为011010110,如图5中第(3)行所示。除此之外,指数比较器202产生控制信号257的值以使多工器208择E输入值,E输入值为正规化且反相版本的尾数A,其值为010011011,如图5中第(5)行所示。加法器212产生D和E的总和265,其值为101110001,如图5中第(6)行所示。且增量总和267的值为101110010,如图5中第(7)行所示。符号位299其值为1,如图5中第(8)行所示。如同从图5中第(6)行所能观察到,负总和265具有等于1的前导符号数字。因此,可以预测总和265的绝对值将需要左移一个位位置以成为正规化形式。由于总和265最左位为1,多工器232选择反相版本总和269为输出271,其值为01000110,如图5中第(9)行所示。图5中第(10)行表示加法器输入值261和263的样式比对函数,其为ZGTZGTTGT。因为EXP-A的值比EXP-B的值大1,指数比对器202产生控制信号259的值以使多工器234选择由LOPAGTB214所产生的预测字串281作为输出值287,其值为001101101,如图5中第(11)行所示。如同从图5中第(10)行所观察到,该函数在位位置[6]的T的样式(G*+T*ZG*)比对失败。如同从图5中第(11)行所观察到,LOPAGTB 214执行与非门322以产生预测字串281,预测字串281在位位置[6]具有一最左1,其相对应至样式比对中失败的位位置[6]的T。因此,由于在(Z*+T*ZG*)的第一个不匹配前有两个位位置,总和265将有一个或两个前导1,或等于1的前导符号数字。在图5的例子中,总和265具有一个等于1的前导符号数字而不是二个,这是因为进位从右侧传递。预测字串281的左位移1位版本294其值为011011010,如图5中第(12)行所示。前导0编码器236将预测字串287的两个前导0编码为具有十进位2的移位数量291,如图5中第(13)行所示。前导0编码器248将左位移1位版本的预测字串252的一个前导0编码为具有十进位1的移位数量293,如图5中第(14)行所示。由于位299为1,多工器246选择前导0编码器248的输出293作为输出值289,其具有十进位的1,如图5中第(15)行所示。左移位器238将值271(01000110)左移移位数量289(其值为1)以产生潜在正规化结果273,其值为10001110,如图5中第(16)行所示。须注意的是,因为本例子中输入的尾数为8位,潜在正规化结果273同样也是8位。最后,由于结果273的最左位为1,多工器244选择结果273而不是左位移1位的结果275,所以近路径尾数结果277其值为10001110,如图5中第(17)行所示。除此之外,指数调整逻辑254从指数比较器202接收指数值279(其值为5)并且将其减去移位数量289(其值为1)以及移位器238的输出值273的最高有效位的反相值(其值为0)以产生近路径指数值297,其值为十进位的4,如图5中第(17)行所示。
参照图6,其所示为图1中的近路径加法单元132的交替实施例的示意图。该近路径加法单元132与图2的实施例当中的近路径加法单元132相似。尽管如此,多工器206和208的输入与图2的实施例当中的不同。多工器206接收D和F值为输入值而多工器208接收C、E和G值为输入值。在图6的实施例中,指数比较器202产生控制输出值255、257和259以分别控制多工器206、208和234,如下列表格3所示。
表格3
尽管在实施例中已公开前导1预测器包括多个与非门以产生预测字串,该预测字串具有前导0字串以表示在有效差中前导符号数字的相对应字串,其他互补实施例公开前导1预测器包括多个布林门以产生预测字串,例如在集成电路以相异于CMOS技术的其他半导体工艺制造的情况下,前导1预测器包括多个与门以产生预测字串,该预测字串具有前导1字串以表示在有效差中前导符号数字的相对应字串,其中该等多个布林门比不同半导体工艺中的与非门更快速或更小。
本发明的各实施例以在本文中叙述,须了解的是,这些实施例仅以例子的方式表现,不应视为本发明的限制。对所属计算机相关技术领域中的人员而言,显然在不超出本发明的范围下可以改变其中任何的形式或细节。举例而言,软件可用以执行函数、芯片制造、建模、仿真、装置的描述和/或测试以及其中所述及的方法。此可通过使用一般的程序语言(例如C++)、包括Verilog HDL、VHDL等的硬件描述语言(HDL)或其他应用软件来实现。这些软件可置于任何已知的计算机兼容媒体,例如磁带、半导体、磁盘、光盘(例如CD-ROM、DVD-ROM等)、网络、线路、无线或其他通讯媒体等。本文所述的装置和方法的实施例可被含括于半导体知识产权内核,例如微处理器(例如内嵌HDL)并转换为集成电路的硬件制造。此外,本文所述的装置和方法可由硬件和软件的结合实施。因此,本发明不应被限制于本文中任何示范性的实施例,而可通过下列所数的申请专利范围及与其等的物定义。特别是,本发明可在微处理器装置的内执行,该微处理器可在一般用途的计算机中使用。最后,所属技术领域中的人员应明白其可使用所公开的概念和特定实施例为设计或调整其他装置的基础以在不超出由申请专利范围所定义的本发明范围之下达成与本发明相同的目的。
Claims (20)
1.一种执行浮点有效减法的装置,其中该装置运算二个浮点输入值,包括第一浮点输入值和第二浮点输入值,该等浮点输入值包括一无符号量值(unsigned magnitude)的一尾数和一指数,该装置包括:
线路和逻辑,其配置为:
将该第一浮点输入值的尾数扩展一位的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字串预测该负差的前导符号字串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410138385.8A CN103870237B (zh) | 2011-01-05 | 2011-11-16 | 预测符号数字的装置与方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/985,180 US8620983B2 (en) | 2011-01-05 | 2011-01-05 | Leading sign digit predictor for floating point near subtractor |
US12/985,180 | 2011-01-05 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410138385.8A Division CN103870237B (zh) | 2011-01-05 | 2011-11-16 | 预测符号数字的装置与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102495714A true CN102495714A (zh) | 2012-06-13 |
CN102495714B CN102495714B (zh) | 2014-08-20 |
Family
ID=46187543
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410138385.8A Active CN103870237B (zh) | 2011-01-05 | 2011-11-16 | 预测符号数字的装置与方法 |
CN201110362770.7A Active CN102495714B (zh) | 2011-01-05 | 2011-11-16 | 执行浮点减法的装置与方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410138385.8A Active CN103870237B (zh) | 2011-01-05 | 2011-11-16 | 预测符号数字的装置与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8620983B2 (zh) |
CN (2) | CN103870237B (zh) |
TW (1) | TWI466017B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789376A (zh) * | 2012-06-21 | 2012-11-21 | 华为技术有限公司 | 浮点数加法电路及其实现方法 |
CN108694037A (zh) * | 2017-03-30 | 2018-10-23 | Arm有限公司 | 用于在执行浮点减法时估计移位量的装置和方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130218938A1 (en) * | 2012-02-17 | 2013-08-22 | Qualcomm Incorporated | Floating-point adder with operand shifting based on a predicted exponent difference |
CN107291420B (zh) * | 2017-06-27 | 2020-06-05 | 上海兆芯集成电路有限公司 | 整合算术及逻辑处理的装置 |
CN112230882B (zh) * | 2020-10-28 | 2021-06-01 | 海光信息技术股份有限公司 | 浮点数处理装置、浮点数加法装置及浮点数处理方法 |
WO2022109917A1 (zh) * | 2020-11-26 | 2022-06-02 | 深圳市大疆创新科技有限公司 | 浮点运算装置、浮点运算方法、可移动平台及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5808926A (en) * | 1995-06-01 | 1998-09-15 | Sun Microsystems, Inc. | Floating point addition methods and apparatus |
US5831884A (en) * | 1994-12-02 | 1998-11-03 | Mitsubishi Denki Kabushiki Kaisha | Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel |
US6085208A (en) * | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Leading one prediction unit for normalizing close path subtraction results within a floating point arithmetic unit |
US20030055859A1 (en) * | 2001-05-04 | 2003-03-20 | Southern Methodist University | Fast IEEE floating-point adder |
CN101040281A (zh) * | 2004-08-13 | 2007-09-19 | 模拟装置公司 | 用于高效浮点运算器(alu)的方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912557B1 (en) * | 2000-06-09 | 2005-06-28 | Cirrus Logic, Inc. | Math coprocessor |
US7707236B2 (en) * | 2004-08-13 | 2010-04-27 | Analog Devices, Inc. | Methods and apparatus for an efficient floating point ALU |
GB2454201A (en) * | 2007-10-30 | 2009-05-06 | Advanced Risc Mach Ltd | Combined Magnitude Detection and Arithmetic Operation |
CN100570552C (zh) * | 2007-12-20 | 2009-12-16 | 清华大学 | 一种并行浮点乘加单元 |
US7861070B2 (en) * | 2008-06-12 | 2010-12-28 | National Tsing Hua University | Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized |
US8103858B2 (en) * | 2008-06-30 | 2012-01-24 | Intel Corporation | Efficient parallel floating point exception handling in a processor |
CN101699390B (zh) * | 2009-10-23 | 2012-01-04 | 西安交通大学 | 用于浮点加法器的自纠错前导0/1预测单元 |
-
2011
- 2011-01-05 US US12/985,180 patent/US8620983B2/en active Active
- 2011-11-15 TW TW100141546A patent/TWI466017B/zh active
- 2011-11-16 CN CN201410138385.8A patent/CN103870237B/zh active Active
- 2011-11-16 CN CN201110362770.7A patent/CN102495714B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5831884A (en) * | 1994-12-02 | 1998-11-03 | Mitsubishi Denki Kabushiki Kaisha | Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel |
US5808926A (en) * | 1995-06-01 | 1998-09-15 | Sun Microsystems, Inc. | Floating point addition methods and apparatus |
US6085208A (en) * | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Leading one prediction unit for normalizing close path subtraction results within a floating point arithmetic unit |
US20030055859A1 (en) * | 2001-05-04 | 2003-03-20 | Southern Methodist University | Fast IEEE floating-point adder |
CN101040281A (zh) * | 2004-08-13 | 2007-09-19 | 模拟装置公司 | 用于高效浮点运算器(alu)的方法 |
Non-Patent Citations (3)
Title |
---|
SCHMOOKLER: "Leading ZeroAnticipation and Detection-A Comparison of Methods", 《PROCEEDINGS OF THE 15THIEEE SYMPOSIUM ON COMPUTER ARITHMETIC》 * |
SEIDEL, P,ETC: "On the design ofFast IEEE Floating-Point Adders", 《COMPUTER ARITHMETIC, 2001. PROCEEDINGS. 15TH IEEE SYMPOSIUM ON 》 * |
胡同瑞等: "计算机规格化浮点加减法运算的研究", 《JOURNAL OF QIQIHAR MEDICAL COLLEGE》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789376A (zh) * | 2012-06-21 | 2012-11-21 | 华为技术有限公司 | 浮点数加法电路及其实现方法 |
CN102789376B (zh) * | 2012-06-21 | 2015-03-25 | 华为技术有限公司 | 浮点数加法电路及其实现方法 |
CN108694037A (zh) * | 2017-03-30 | 2018-10-23 | Arm有限公司 | 用于在执行浮点减法时估计移位量的装置和方法 |
CN108694037B (zh) * | 2017-03-30 | 2023-12-01 | Arm有限公司 | 用于在执行浮点减法时估计移位量的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20120173597A1 (en) | 2012-07-05 |
US8620983B2 (en) | 2013-12-31 |
CN103870237A (zh) | 2014-06-18 |
TW201229890A (en) | 2012-07-16 |
CN103870237B (zh) | 2017-08-11 |
TWI466017B (zh) | 2014-12-21 |
CN102495714B (zh) | 2014-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI650652B (zh) | 運算控制指標快取 | |
Reddy et al. | Design and analysis of multiplier using approximate 4-2 compressor | |
US8078835B2 (en) | Reconfigurable array processor for floating-point operations | |
EP3719639A2 (en) | Systems and methods to perform floating-point addition with selected rounding | |
CN109643228A (zh) | 用于浮点乘加运算的低能耗尾数乘法 | |
CN102495714B (zh) | 执行浮点减法的装置与方法 | |
CN101620589A (zh) | 处理器中的有效并行浮点异常处理 | |
US10416962B2 (en) | Decimal and binary floating point arithmetic calculations | |
Bindal | Fundamentals of computer architecture and design | |
US6988115B2 (en) | Method and apparatus to correct leading one prediction | |
He et al. | Multiply-add fused float point unit with on-fly denormalized number processing | |
US20060031272A1 (en) | Alignment shifter supporting multiple precisions | |
Adela et al. | Design and Implementation of Single Precision Floating-point Arithmetic Logic Unit for RISC Processor on FPGA | |
Hanuman et al. | Implementation of High-Performance Floating Point Divider Using Pipeline Architecture on FPGA | |
Kumar et al. | Clock-less design for reconfigurable floating point multiplier | |
Jaberipur et al. | Redundant-digit floating-point addition scheme based on a stored rounding value | |
Gupta et al. | A high speed floating point dot product unit | |
Begum et al. | Design of FIR filter using rounding based approximate (ROBA) multiplier | |
Samuel et al. | A novel floating point comparator using parallel tree structure | |
Yakunin et al. | Improving the Performance of a Multibit Arithmetic Logic Unit | |
Fahmy | Decimal Floating Point Number System | |
Ramya Rani | Implementation of Embedded Floating Point Arithmetic Units on FPGA | |
US20090112963A1 (en) | Method to perform a subtraction of two operands in a binary arithmetic unit plus arithmetic unit to perform such a method | |
CN112243504A (zh) | 低功率加法器电路 | |
Baesler et al. | A Decimal Floating‐Point Accurate Scalar Product Unit with a Parallel Fixed‐Point Multiplier on a Virtex‐5 FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |