用于浮点加法器的自纠错前导0/1预测单元的制作方法

文档序号:6583447阅读:314来源:国知局
专利名称:用于浮点加法器的自纠错前导0/1预测单元的制作方法
技术领域
本发明涉及一种前导0/1预测方法,具体涉及一种用于浮点加法器的自纠错前导 0/1预测方法。
背景技术
文 献"G. Zhang, W. Hu, Z. Qi,"Parallel error detection forleading zero anticipation,,. Journal of Computer Science andTechnology, v 21, n 6, p 901-906, November 2006."提出了一种并行的不依赖加法器进位信号便可实现纠错的前导0、1预测 单元纠错技术并予以实现。其主要思想是利用"positive tree"和"negative tree"将 "positive encoding,,与"negative encoding,,的结果进行压縮,最后通过或逻辑来输出正 确结果。其特有的树状压縮结构使其"encoding"信号必须通过一系列逻辑门才最终到达 输出端,而这种分级的树状结构,其关键路径长度由其级数决定,而级数又由操作数位宽决 定。对于位宽较大的操作数,此种技术缺乏优势。 文 献"0. Mauro, P. Francesco ;S. Simone, V. Giuseppe, "Analysisand implementation of a novel leading zero anticipation algorithmfor floating—point arithmetic皿its,,, IEEE Transactions onCircuits and Systems II :Express Briefs, v 54,n 8,p 685-689,August2007."中提出的预测方法,其结果有可能出现一位误差,需要 利用加法器最高位输出来进一步纠错。 文献"D. Giorgos,G. Kostas,M. Christos,N. Dimitris, "Low-power leading-zero counting and anticipation logic forhigh-speed floating point units,,, IEEE Transactions on Very LargeScale Integration(VLSI)Systems, v 16, n 7, p 837-850, July 2008."中的前导0/1预测单元,预测一种结果作为输出,而利用"decision logic"来 对结果的正确性进行判断。 一旦"decision logic"发现输出结果有误,就必须对输出结果 进行l-2位的移位以得到正确结果。在预测有误的情况下势必影响输出结果的速度。
典型前导0、1预测单元如下,前导0预测单元是指用来确定数据的高位上的0直 到出现第一个l的那部分数据长度的单元,它包括LZA(Leading Zero Anticipation :前导 0预测)和LZC (Leading ZeroCounting :前导0计数)两部分;前导1预测单元是指用来确 定数据的高位上的1直到出现第一个0的那部分数据长度的单元,它包括LOA(LeadingOne Anticipation :前导1预测)禾口 IDC (Leading One Counting :前导1计数)两部分。
对于一个确定的二进制数,若其含有k位的前导0,则此数据可以被表示成0klx*的 形式,其中指数k代表前导0的个数,x代表0或者是1的任意数,而*代表x之后的0位 或者任意位的x。类似的,对于一个确定的二进制数,若其含有k位的前导l,则此数据可以 被表示成lk0x*的形式,其中指数k代表前导1的个数,x代表0或者是1的任意数,而*代 表x之后的0位或者任意位的x。因此对前导0检测包括了对第一个非零数字位的确定,或 者说包括了对前导的k位0向第k+1位上的1的转换的确定。类似的前导1预测也是对数 据第一次从1转换为相邻的0的位置的确定一样。
通常两个数相加可以归为三种情况两个正数相加,两个负数相加,一个正数和一个负数相加。在浮点加法器中,由于两个操作数的位数需要经过对位移位才能进行运算,所以当两个正数相加或者两个负数相加时,不会产生前导0或者前导l,所以无需对此时结果的前导0或者前导1进行判断。而只有当两个异号的操作数做加法时,才有可能产生大量的前导0、1。此所谓有效减法(effective subtraction)。 前导0出现在进行有效减法(包括同号两操作数相减和异号两操作数相加)操作时,减法结果为正的时候;前导1出现在进行有效减法操作时,减法结果为负的时候。前导0预测单元通过对浮点加法器的输入信号A和B,在移位、排列、取反之后的每一位进行逻辑运算,再通过对运算结果进行处理,最终实现预测前导0的目的。其所需逻辑运算包括
r =爿@ S (1)
G = A B (2)
Z = A*B (3) 当逻辑运算结果的开始段的形式为WGZ承时(这里,开始字段每一位上的符号T、G、 Z分别代表该位上T = 1、 G = 1或Z = 1 ;而其中第一个*代表有最高位的T后面有任意个个数大于等于0的T重复出现;第二个*代表任意字段),出现前导0。假设第一个与T*GZ*形式不匹配的位出现以前有n位,那么A/B和中将有n个或者(n_l)个前导0出现,这取决于这个不匹配位(第n+l位)的形式若为T,结果不确定,要看是在n+l位上是否有进位信号,但若为G,则有n-l位前导0。类似的对于结果以T*ZG*形式开头的,将会产生前导1 。假设第一个与T*ZG*形式不匹配的位出现以前有n位,那么A/B和中将有n个或者(n-l)个前导1出现,这取决于这个不匹配位(第n+l位)的形式若为T,则需考察n+l位上的进位信号;若为Z,则有n-l位前导l。另外,作为补充,对于非有效减法操作,当结果以ZA开头时,也会出现前导0。类似的,当结果以6*开头时,会出现前导1。
在浮点数的规格化操作中,也会出现对前导O的确定的操作。此时,可以看成一个浮点数与一个数字0做加减运算,结果以Z*开头。因此,如果一个前导0预测单元同时用于减法操作和浮点数的规格化操作,则必须分别对应两种操作,对前导0预测结果进行区别。对于减法操作结果以T*开头才能产生前导O,对于浮点数规格化操作,其结果应该以Z*开
头才能产生前导o。但是对于浮点数的规格化操作,其低位不会向高位产生进位而使预测结
果产生误差,故其预测结果无需另做修正。
(1)通常情况下前导0、1位置的确定 对于任意一位的数据是否为所需要确定的第一位的先导数(从数据的高位算起,前导0之后的第一个1或者先导1之后的第一个0),都可以通过对它和与它左右相邻的三位数据的逻辑计算中确定。由此定义数据指示位标记fi,这里采用高位端起始的顺序
<formula>formula see original document page 5</formula> (4) <formula>formula see original document page 5</formula> 当第i位的&值为1,并且没有更高位的值为1时,则所求的先导数位置便处在第i位或者第i+l位上。 如果前导0、1预测分别实现,那么预测单元只需对i位和i+l位进行计算。对于前导0预测单元,有
<formula>formula see original document page 5</formula>
当第i位的&值为l,并且没有更高位的值为1时,则所求的前导0后的第一个1 便出现在第i位或者第i + 1位上。
类似的对于前导1的预测,有 y 。"" = r,.④(,,々o (7) 同样,当第i位的&值为l,并且没有更高位的&的值为1时,则所求的前导1后
的第一个0便出现在第i位或者第i+1位上。由此,如果将前导0、1预测单元分开,那么对
于预测算法要简化许多。对于只预测前导O,可将求取&的公式简化为 & = 1\ Zi+1, i > 0 (8) 同理,对于只考虑预测前导l,可将公式变为 & = 1\ Gi+1, i > 0 (9) (2)前导0个数的编码统计 有两种基本的统计前导0个数的方法,都是通过对&组成的字段进行处理,而确 定前导0个数。其一就是直接对第一个1前面0的个数进行处理,另外一个就是使用分级 树进行处理。在直接建立单调字段的方法中,应首先找出第一个1所在的位置,通过如下关 系式建立单调段 : = 2 /, "0)
L「F卜,4 (11) —旦字段建立,则i与i+1的位置便可得出。
(3)前导0、1预测中的纠错 前述的前导0预测单元是不精确的计数时可能产生一位的误差。典型的前导0、 1预测单元在进行移位时候对此误差进行消除。 一个较快的方法是在进行规格化移位时进 行纠错。即在精确移位时对结果进行调整,这就要求移位器的高位有判断是否存在前导0 的能力。另外还有一种更快的电路来实现此功能,它使用了预测控制信号。如果LZA预测 需要移动n位,但是检查到第n位为0,则产生预测控制信号,使最终移n+l位,否则,则最终 移n位即可。 文献中提出了错误纠正同样可以通过对预测位的进位信号来实现。对于前导位i, 错误指示可表示为 s.=z^+1(q+1@(7;+(4,7;—》)) (12) Ci+1是第i + 1位的进位信号A是加数位。则全局错误判断信号 e = Z (13) 还有文献介绍了另外一种等价的错误指示信号 =丄,(r,"①4 5) (14) 其中Ci是第i位的进位信号。可见上述两种方法均需要借助加法器进位信号来
产生修正信号。

发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种能够在计算浮点加法的同时,对计算结果进行规格化处理所需要进行的移位次数以及指数调整信息作出同步的预 测,且预测结果不依赖加法器输出而只由预测单元产生,预测结果为无需进一步修正的正 确值,预测单元的关键路径不会因为操作数的位宽的加长而变长的用于浮点加法器的自纠 错前导0/1预测单元。 为达到上述目的,本发明采用的技术方案是 1)采用将前导0预测单元和前导1预测单元分立的办法,则分别有下列两式来计
算数据指示位标记f i : & = 1\ Zi+1, i > 0 (15) & = I\ Gi+1, i > 0 (16) 其中,式(15)为LZA中预测字段求取式,式(16)为LOA中预测字段求取式,两个 分立的LZA和LOA得到的预测结果,利用来自加法器的和的最高位进位来进行选择如果最 高位产生进位,说明和为正,则需对前导0进行预测,选择LZA的预测结果;如果最高位不产 生进位,说明和为负,则需对前导1进行预测,选择LOA的预测结果;
2)高速前导0、 1预测纠错单元 无论对于LAZ还是LOA,只有当预测字段中,T*GZ*或T*ZG*段后面紧随着T,才需 要对输出的n-1进行修正,为了判断是否需要对输出进行修正,需要对预测字段中的第n位 作出判断,利用LZC和LOC的输出Li对T信号进行处理,并通过处理结果进行判断,有 F,=^/; (21) Li = F卜! fi (22) 其中,对于前导0预测,有 fj = Tj Zj+1, j > 0 对于前导1预测有 fj = Tj Gj+1, j > 0 &为fj从第0位到第i位的按位或操作; Fi具有以下特点 存在一个确定的n,使对于任意的i < n的&为0,其余&为1,即有对于j < n的
任意fj = O,这里采用"大端顺序",&为LZA/LOA输出的结果字串; Li具有以下特点 对于确定的n,有Ln = l,其余Li = 0,为LZC/LOC的未被纠错的输出; 求判断使能信号EN的方法; erii = L丄 Ti+1 (23) EN = E erii (24) = 4+1 《+1 , A禾P B为两个加数,EN为叫的按位或结果,EN作为是否需要对
预测结果进行修正判断的使能信号; 对于确定的n,有Ln = 1,这时只有Tn+1 = 1时,才需要对结果是否需要修正进行判 断,即enn = 1时才可能需要修正,EN为en压縮成的单一使能信号; 若EN = 0无需修正输出结果,也就无需判断是否修正; 若EN = 1时,需要对结果是否修正进行判断,判断是否需要对输出n-1做修正,即已知预测字段的第n+1位为T,那么预测字段的第n+1位是否存在进位信号(;,若Tn = 1,
则只需判断进位信号c;的取值,为此,引入一个新的内部信号K,将之定义为 K0 = 0 (25)
& = T卜A, i > 1 (26) 若Km = 1, m > n,且& - 1 (n < i < m),则只要存在1\ - 1 (n < i < m)便可判 断Cn的取值必为0,对字段K进行如下处理 对于前导0预测部分,利用LZC产生信号F对字段K进行处理《=力_/: (27) K' i = & Fi, i >0 (28) 同法对T信号进行处理 V = 1\ Fi, i >0 (29) 以上两式是用来对K和T信号的第1位到第n位进行清零处理,则K'即为对K字 段的0到n位清零后的字段,对K'进行处理,将K'从第m位以后全部清零,O至第m_l位全
部置1 : g,=力尺; (30) 对T'、Q信号进行按位与操作,即获得含有目标字段,且其余部分全置0的字段
& = V Qi, i >0 (31)
D = EN E & (32) 若D = l,则不会产生进位信号(;,对于前导O预测需要进行修正,即将n取代n-l 作为预测输出结果;相应的对于前导1预测,无需进行修正。 本发明采用多输入逻辑门以及并行计算相结合的方法实现了输出结果为最终正 确结果,不必依赖加法器结果来进行修正;采用了并行计算,如操作数位宽增加,不会影响 关键路径长度。


图1是本发明的整体结构图;
图2是前导0纠错逻辑结构图。
具体实施例方式
下面结合附图对本发明作进一步详细说明。 参见图l,用于浮点加法器的自纠错前导0/1预测单元,对于两个特定数的加法操 作,可通过对其进行按位处理得出T、 G、 Z信号,再对T、 G、 Z三个信号进行处理便可实现前 导0、1预测。由于采用前导0、1预测单元相结合的办法,必然使硬件结构复杂,关键路径变 长,不利于提高速度。所以本发明的设计中采用将前导0预测单元和前导1预测单元分立 的办法,则分别有下列两式来计算4 :
& = 1\ Zi+1, i > 0 (15)
& = 1\ Gi+1, i > 0 (16)
其中,式(15)为LZA中预测字段求取式,式(16)为L0A中预测字段求取式。两个 分立的LZA和LOA得到的预测结果,可以利用来自加法器的和的最高位进位来进行选择如 果最高位产生进位,说明和为正,则需对前导0进行预测,选择LZA的预测结果;如果最高位 不产生进位,说明和为负,则需对前导1进行预测,选择LOA的预测结果。
(1)预测误差产生原因分析 首先分析一下LZA产生误差的原因。对于LZA的预测,若结果中存在前导O,则预 测字段开始的形式必然为T*GZ*。假设T*GZ*有n位,且&为第i位的进位信号。当Cn—工= 1时,应该将加法运算结果左移n-1位,当Cn—工=0时,应该将加法运算结果左移n位。下面 分析Cn—工信号的取值。可见,紧接着开始字段只有如下两种情况 <formula>formula see original document page 9</formula> 若T*GZ*后为G,则必然向前一位(n-1位)产生进位;若T*GZ*后为T,则要看其 后是否有进位信号传递过来,和T位本身求和向前一位(n-l位)产生进位。由此,得出最
终移位信号的取值应条件 当最终移位信号取n时应满足 Tn Cn = 1 (17) 当最终移位信号取n-1时应满足 Gn+Tn Cn = 1 (18) 对于LOA的预测,若结果中存在前导1,则预测字段开始的形式必然为WZG^同样 假设WZGA有n位,且Ci为第i位的进位信号。当Cn—工=1时,应该将加法运算结果左移n
位,当c;—工二o时,应该将加法运算结果左移n-i位。接下来仍然分析c;—J言号的取值。不
难看出,紧接着开始字段只有如下所示的两种情况
r zx承T*ZG* 一
、TX承若T*ZG*后为Z,则必然不会向前一位(n-1位)产生进位;若T*ZG*后为T,则要
看其后是否有进位信号传递过来,和T位本身求和向前一位(n-l位)产生进位。由此,得
出最终移位信号的取值应条件 当最终移位信号取n时应满足 Tn Cn = 1 (19) 当最终移位信号取n-1时应满足 Zn+Tn Cn = 1 (20) 综上所述,在随机情况下,当LZA中预测字段的第n+1位取Gn、 Tn概率相同,且Cn 取值1、0的概率也相同时,移位信号取n-l的概率为75X,类似的对于L0A,预测字段的第 n+1位取Zn、 Tn概率相同,且C;取值1、0的概率也相同时,移位信号取n-l的概率为75%, 所以这里选择n-1作为预测单元的输出,并通过Tn、 Cn对预测结果进行修正。 由于此种修正方案需要利用加法器进位信号c;对预测结果进行修正,使用过程中必须让前导0、1预测单元等待加法器输出结果,不利于速度提高,于是下面本发明提出一 种在前导0、1预测单元内部对修正信号加以判断的方案。
(2)高速前导0、1预测纠错单元的提出 由上,无论对于LAZ还是LOA,只有当预测字段中,T*GZ*或T*ZG*段后面紧随着T, 才需要对输出的n-l进行修正。则为了判断是否需要对输出进行修正,需要对预测字段中 的第n位作出判断。利用LZC和LOC的输出Li对T信号进行处理,并通过处理结果进行判 断,有= (21) L「F卜(22)
求判断使能信号EN的方法;
eni = L,Ti+1 (23)
EN =e erii (24) 当EN = 1时,需要对结果是否修正进行判断;当EN = 0是无需修正输出结果,也 就无需判断是否修正。若需要判断是否需要对输出n-1做修正,即已知预测字段的第n+1位为T,关键在 于预测字段的第n+1位是否存在进位信号Cn。若Tn = 1,则只需判断进位信号Cn的取值。 为此,本发明引入一个新的内部信号K,将之定义为
K0 = 0 (25)
& = T卜A, i > 1 (26) 若Km = 1, m > n,且& ^ 1 (n < i < m),则只要存在1\ ^ 1 (n < i < m)便可判 断Cn的取值必为0。可对字段K进行如下处理 对于前导0预测部分,利用LZC产生信号F对字段K进行处理 F, = ^y; (27) K' i = & Fi, i >0 (28)
同法对T信号进行处理
V = 1\ Fi, i >0 (29) 以上两式是用来对K和T信号的第l位到第n位进行清零处理。则K'即为对K 字段的O到n位清零后的字段。接下来对K'进行处理,将K'从第m位以后全部清零,O至 第m-1位全部置1 : = 2 (30)
如此,对T' 、Q信号进行按位与操作,即获得含有目标字段,且其余部分全置0的字
H' 'Qi,iX) (31) d = EN e & (32)
若d = i,则不会产生进位信号c;,对于前导0预测需要进行修正;相应的对于前



导l预测,无需进行修正。
本发明设计的自纠错前导0、1预测单元整体结构如附图1所示。在前导0、1预 测单元工作时,首先通过"求取T、 G、 Z逻辑"求取被操作数的T、 G、 Z的值,并将之分别送入 LZA、LOA、求K逻辑以及错误修正单元。再由错误修正单元将T、K以及LZC或LOC产生的结 果信号L、F进行处理,得到纠错信息对LZC或LOC的输出结果进行修正,以得到正确的移位 信息。通过加法器进位信号选择相应的前导0或前导1预测结果,将之送入指数调整单元 和移位器对浮点加法器结果进行规格化处理。 以前导0预测单元相对应的错误修正处理单元为例,对错误纠正单元内部结构加 以说明,如附图2所示。其中L、F信号均来自LZC部件,T、K信号来自各自的产生逻辑。"求 和"是指将输入信号利用多输入或门按位求和(即按位进行逻辑"或"操作),以得到EN信 号和D信号。乘积代表逻辑"与"操作,纠错移位逻辑是通过纠错移位信号将原有前导0预 测但愿输出的n-1修正为n,即将前导0预测单元产生的结果字符串左移一位。相应的,对 于前导1预测单元的纠错单元,D输入信号取反即可实现对前导1预测单元的纠错。
权利要求
用于浮点加法器的自纠错前导0/1预测方法,其特征在于1)采用将前导0预测单元和前导1预测单元分立的办法,则分别有下列两式来计算数据指示位标记fifi=Ti·Zi+1,i≥0(15)fi=Ti·Gi+1,i≥0(16)其中,式(15)为LZA中预测字段求取式,式(16)为LOA中预测字段求取式,两个分立的LZA和LOA得到的预测结果,利用来自加法器的和的最高位进位来进行选择如果最高位产生进位,说明和为正,则需对前导0进行预测,选择LZA的预测结果;如果最高位不产生进位,说明和为负,则需对前导1进行预测,选择LOA的预测结果;2)高速前导0、1预测纠错单元无论对于LAZ还是LOA,只有当预测字段中,T*GZ*或T*ZG*段后面紧随着T,才需要对输出的n-1进行修正,为了判断是否需要对输出进行修正,需要对预测字段中的第n位作出判断,利用LZC和LOC的输出Li对T信号进行处理,并通过处理结果进行判断,有 <mrow><msub> <mi>F</mi> <mi>i</mi></msub><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>0</mn> </mrow> <mi>i</mi></munderover><msub> <mi>f</mi> <mi>j</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>21</mn> <mo>)</mo></mrow> </mrow>Li=Fi-1·fi(22)其中,对于前导0预测,有fj=Tj·Zj+1,j≥0对于前导1预测有fj=Tj·Gj+1,j≥0Fi为fj从第0位到第i位的按位或操作;Fi具有以下特点存在一个确定的n,使对于任意的i<n的Fi为0,其余Fi为1,即有对于j<n的任意fj=0,这里采用“大端顺序”,Fi为LZA/LOA输出的结果字串;Li具有以下特点对于确定的n,有Ln=1,其余Li=0,为LZC/LOC的未被纠错的输出;求判断使能信号EN的方法;eni=Li·Ti+1 (23)EN=∑eni (24)A和B为两个加数,EN为eni的按位或结果,EN作为是否需要对预测结果进行修正判断的使能信号;对于确定的n,有Ln=1,这时只有Tn+1=1时,才需要对结果是否需要修正进行判断,即enn=1时才可能需要修正,EN为en压缩成的单一使能信号;若EN=0无需修正输出结果,也就无需判断是否修正;若EN=1时,需要对结果是否修正进行判断,判断是否需要对输出n-1做修正,即已知预测字段的第n+1位为T,那么预测字段的第n+1位是否存在进位信号Cn,若Tn=1,则只需判断进位信号Cn的取值,为此,引入一个新的内部信号K,将之定义为K0=0 (25)Ki=Ti-1Gi,i≥1(26)若Km=1,m>n,且Ki≠1(n<i<m),则只要存在Ti≠1(n<i<m)便可判断Cn的取值必为0,对字段K进行如下处理对于前导0预测部分,利用LZC产生信号F对字段K进行处理 <mrow><msub> <mi>F</mi> <mi>i</mi></msub><mo>=</mo><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>0</mn> </mrow> <mi>i</mi></munderover><msub> <mi>f</mi> <mi>i</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>27</mn> <mo>)</mo></mrow> </mrow>K′i=Ki·Fi,i≥0 (28)同法对T信号进行处理Ti′=Ti·Fi,i≥0 (29)以上两式是用来对K和T信号的第1位到第n位进行清零处理,则K’即为对K字段的0到n位清零后的字段,对K’进行处理,将K’从第m位以后全部清零,0至第m-1位全部置1 <mrow><msub> <mi>Q</mi> <mi>i</mi></msub><mo>=</mo><mover> <mrow><munderover> <mi>&Sigma;</mi> <mrow><mi>j</mi><mo>=</mo><mn>0</mn> </mrow> <mi>i</mi></munderover><msubsup> <mi>K</mi> <mi>j</mi> <mo>&prime;</mo></msubsup> </mrow> <mo>&OverBar;</mo></mover><mo>-</mo><mo>-</mo><mo>-</mo><mrow> <mo>(</mo> <mn>30</mn> <mo>)</mo></mrow> </mrow>对T’、Q信号进行按位与操作,即获得含有目标字段,且其余部分全置0的字段di=T′i·Qi,i≥0 (31)D=EN·∑di (32)若D=1,则不会产生进位信号Cn,对于前导0预测需要进行修正,即将n取代n-1作为预测输出结果;相应的对于前导1预测,无需进行修正。F2009102185054C0000021.tif
全文摘要
用于浮点加法器的自纠错前导0/1预测方法,采用多输入逻辑门以及并行计算相结合的方法实现了输出结果为最终正确结果,不必依赖加法器结果来进行修正;采用了并行计算,如操作数位宽增加,不会影响关键路径长度。能够在计算浮点加法的同时,对计算结果进行规格化处理所需要进行的移位次数以及指数调整信息作出同步的预测,且预测结果不依赖加法器输出而只由预测单元产生,预测结果为无需进一步修正的正确值,预测单元的关键路径不会因为操作数的位宽的加长而变长。
文档编号G06F7/575GK101699390SQ20091021850
公开日2010年4月28日 申请日期2009年10月23日 优先权日2009年10月23日
发明者李凌浩, 王丽, 邵志标 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1