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

技术编号:4219607 阅读:361 留言:0更新日期:2012-04-11 18:40
用于浮点加法器的自纠错前导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,并且没有更高位的值为本文档来自技高网...

【技术保护点】
用于浮点加法器的自纠错前导0/1预测方法,其特征在于:    1)采用将前导0预测单元和前导1预测单元分立的办法,则分别有下列两式来计算数据指示位标记f↓[i]:    f↓[i]=T↓[i].Z↓[i+1],i≥0  (15)    f↓[i]=T↓[i].G↓[i+1],i≥0  (16)    其中,式(15)为LZA中预测字段求取式,式(16)为LOA中预测字段求取式,两个分立的LZA和LOA得到的预测结果,利用来自加法器的和的最高位进位来进行选择:如果最高位产生进位25)    K↓[i]=T↓[i-1]G↓[i],i≥1  (26)    若K↓[m]=1,m>n,且K↓[i]≠1(n<i<m),则只要存在T↓[i]≠1(n<i<m)便可判断C↓[n]的取值必为0,对字段K进行如下处理:    对于前导0预测部分,利用LZC产生信号F对字段K进行处理:    F↓[i]=*f↓[i]  (27)    K′↓[i]=K↓[i].F↓[i],i≥0  (28)    同法对T信号进行处理:     T↓[i]′=T↓[i].F↓[i],i≥0  (29)    以上两式是用来对K和T信号的第1位到第n位进行清零处理,则K’即为对K字段的0到n位清零后的字段,对K’进行处理,将K’从第m位以后全部清零,0至第m-1位全部置1:    ***  (30)    对T’、Q信号进行按位与操作,即获得含有目标字段,且其余部分全置0的字段:    d↓[i]=T′↓[i].Q↓[i],i≥0  (31)    D=EN.∑d↓[i]  (32)    若D=1,则不会产生进位信号C↓[n],对于前导0预测需要进行修正,即将n取代n-1作为预测输出结果;相应的对于前导1预测,无需进行修正。,说明和为正,则需对前导0进行预测,选择LZA的预测结果;如果最高位不产生进位,说明和为负,则需对前导1进行预测,选择LOA的预测结果;    2)高速前导0、1预测纠错单元    无论对于LAZ还是LOA,只有当预测字段中,T*GZ*或T*ZG*段后面紧随着T,才需要对输出的n-1进行修正,为了判断是否需要对输出进行修正,需要对预测字段中的第n位作出判断,利用LZC和LOC的输出L↓[i]对T信号进行处理,并通过处理结果进行判断,有:    F↓[i]=*f↓[j]  (21)    L↓[i]=F↓[i-1].f↓[i]  (22)...

【技术特征摘要】

【专利技术属性】
技术研发人员:邵志标李凌浩王丽
申请(专利权)人:西安交通大学
类型:发明
国别省市:87[中国|西安]

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

1