快速多周期二进制及十进制加法器单元的高度并行结构的制作方法

文档序号:6626076阅读:213来源:国知局
专利名称:快速多周期二进制及十进制加法器单元的高度并行结构的制作方法
技术领域
本发明涉及一种将两个浮点操作数A和B相加的加法器电路,并且特别地,涉及一种处理十进制操作数的加法器电路,其中每一个十进制数位0到9具有一个二进制4位表示。
背景技术
在十进制加法器中,任何一个0到9的十进制数位由一个4位组来表示。由于4位必然覆盖从十进制数0到15的范围,通常对应着十进制数10,11,12,13,14,15的不用的六个最高组1010,1011,1100,1101,1110,1111被从进一步的计算中排除。
在当今的高端计算机系统中,对于十进制算法和计算的需求渐长。这就涉及了浮点十进制数。这类应用的操作数的宽度的范围为32位甚至为更多位(>128位)。因此无法达到如今的千兆赫设计的单周期方法。而必要代之以多个执行周期。然而,这导致了新的临界路径并且要求对于现有技术的加法器方案的结构性的改变。
至于处理长度为64位的操作数的技术方案的情形。参考美国专利No.6,292,819,其在此通过参考被引入,可以在当前可用的处理单元的一个周期内完成。在这类现有技术的加法器结构中,有一条最为临界的路径通过进位逻辑(上述US专利的图2中指示为C1),其生成进位到每一个数位。
特别地,根据现有技术对于特别的“十进制适配电路”其在此处称为“加前逻辑”的十进制加法运算进行了一个(十进制)按位运算(操作数A加操作数B加6)。数位的进位输出表示了是否需要进行数位和的条件修正。
对于十进制减法在所述的加前电路中进行了一个操作数A减去操作数B的独立的减法,并且当进位输出结果是0的时候数位和减6。否则和即已经被修正。
平行于主进位网路C1,其对于每个数位产生“热”进位,准备了对于加/减的所有可能的数位和计算。这就是A加B加6,A加B,A减B,以及A减B减6,这些预加的每一个都分别利用一个所假设的进位输入0及1来进行。根据运算,4位加前cy0到cy3的适当进位输出通过指出是否需要对数位和进行修正从而定义了数位和的正确选择。
关于定时目的可以看出,通过加前逻辑到cy0,cy1,cy2,cy3并接着到多路器M50和M60的选择信号的路径与产生进位(CyIn)到每一个数位的进位逻辑的延时构成竞争。对于单周期的方法,其中进位逻辑必须处理长度为64位的操作数,不会产生问题。进位产生12无疑是最为临界的网。
然而,对于多周期的方法,对于施加了几个千兆赫的高时钟频率,其中所处理的操作数据块较小,例如,16位,由于进位产生逻辑相对更快因此竞争就会很强。产生多路器M50和M60的选择信号的路径延迟等于产生进位输入Carry-Ins的延迟。这样,加前逻辑就非常不利地过慢,并且ADDCYOUT以及SUBCARRYOUT信号以及各个多路器控制信号就会太迟地到达将来自进位产生逻辑的输入信号以及加前逻辑的输入信号进行合并的多路器M70。这样,非常不利地,这种现有技术不能被用于高时钟频率和短操作数,例如2周期加法器结构中的32位。

发明内容
本发明的目的在于提供一种加法器电路,其克服了上述的不利之处。
本发明的目的通过所附的独立权利要求所列出的特征得以实现。本发明的进一步优势安排以及本发明的实施例在各个从属权利要求中得以阐明。现参照所附的权利要求。
根据其第一基本方面,本发明公开了一种加法器电路用于将两个十进制操作数A和B相加,其中每一个十进制数0到9具有一个二进制的4位表示,并且进行按位的操作数A加操作数B加6的运算,其中数位的进位输出指示着,是否需要数位和的修正。
所述的加法器电路包括a)第一进位支路用以产生“热”进位到每一个数位;b)第二加法器支路用以预算对于假设的进位输入0和1的所有可能的数位和A加B,A减B,A加B加6,以及A减B减6,特征在于c)加前逻辑用以从输入操作数直接计算进位输出cy0,cy1,cy2,cy3;d)所述的加前逻辑完成下面的表达式(1)或是其逻辑等效Cy0=g0+(g1*p0)+(g2*p0*p1)+(g3*p0*p1*p2);Cy1=g0+(g1*p0)+(g2*p0*p1)+(p0*p1*p2*p3);Cy2=g0+(p0*p1)+(p0*p2)+(p0*g3)+(g1*p2)+(g1*g3)+(p1*g2*g3);Cy3=g0+(p0*p1)+(p0*p2)+(p0*p3)+(g1*p2)+(g1*p3)+(p1*g2*p3);具有以下的注释g=用gi=Ai*Bi生成;p=用pi=Ai+Bi传播+=逻辑OR*=逻辑AND这样本发明介绍了一种新的逻辑结构,其中进位由输入操作数A和B直接计算,以避免了通往选择信号Sel0,Sel1,Sel2和Sel3的临界路径。进一步,本发明的进位产生避免了将加6或减6运算包括在进位计算中。换句话说,加前逻辑块的进位输出的定时临界选通就不再使用。
对于所有的定时临界功能,可以使用减少的输入数据组,也就是有效的十进制数据且不存在的十进制数(10-15)就不需要通过单独的校验逻辑进行排除。这样就减少了逻辑功能的复杂性。
进一步,现在多路器M1和M2的选择是正交的,也就是,信号Sel_mux0/2是(Sel_mux1/3)的补码,由于如果使用了快速传送选通多路器,就要求多路器实现“XOR”性能。这样,这个条件就自动为真,并且由于不需要单独的优先逻辑,电路就会很快。
Cy0和Cy1输入是固定的,也就是,A操作数为正,而仅在减法模式时需要操作数B方为负。
并且Cy2和Cy3输入是固定的,操作数A和操作数B为正仅用于加法模式。这样,具有优势地,就无需在加法和减法之间进行转换的转换装置。
进一步,本发明基本上适合超高速加法器结构,其中字长减少,例如在2周期的结构中,其中16位的块被处理。
Cy0到Cy3代表着A加/减B加C的功能,其中C是常数0,1,6或7。因此如果需要,本发明方法还可以用于非-十进制加法器的环境下并且用于在单个数位位置上具有多于一个的进位的加法运算,具有有限输入范围的3端口加法。
本发明同时适用于整数和浮点以及适用于二进制和十进制(不动点和浮点)运算。这样,本发明并不特定于浮点运算。


本发明通过使用例子进行说明但是并不限于附形的形式,其中图1是现有技术的64位十进制加法器的进位部分的方框图;图2是根据本发明的加法器的各个块的方框图;图3是表示控制信号any_add,dec_add,dec_sub的设定及其各自的功能的总览表。
具体实施例方式
参考全部的附图并且特别参考图2对加法器的发明的数位选择电路的优选实施例进行更详细的描述,其具有优势地适于当今关于具有128位或更多长度的操作数的高端计算机系统的十进制算法和计算,其中4位的组代表一个十进制数位。该图表示了一个这样的十进制数位的处理。本发明并不注重实际的加法。
应当注意的是在附图中符号“A+B”意味着加法运算而不是逻辑OR运算。而“A-B”则意味着减法。
加法器部分在其附图的上部具有和现有技术在图1中引用的类似的结构。且其可以根据控制信号被用于十进制加/减运算以及二进制运算,如下所示如果指示为dec_add(十进制加)以及dec_sub(十进制减)并且控制着多路器M5和M6的控制信号不是正交的,加法器结构就会错误地进行二进制加/减。这就是当dec_add=0且dec_sub=0的情况,也参见图3。
框14内的四个支路构造近似而且除了进位输出值Cy0,Cy1,Cy2,Cy3的产生外,如上引美国专利中所描述的那样工作,这里参见图2的描述。对于二进制运算仅使用了较低的两个支路,对于十进制运算,所有的四个支路都使用了。
根据本发明的实施例,一个逻辑块22,标识为“加前进位PCY”,从源操作数A和B直接产生与十进制系统的4位联系的进位信号Cy0到Cy3。该逻辑块优势地具有来自输入操作数A和B的直接输入,如图所示。该加前逻辑块22根据公式(1A)到(1D)产生进位Cy0到Cy3。
(1A)Cy0=g0+(g1*p0)+(g2*p0*p1)+(g3*p0*p1*p2);(1B)Cy1=g0+(g1*p0)+(g2*p0*p1)+(p0*p1*p2*p3);(1C)
Cy2=g0+(p0*p1)+(p0*p2)+(p0*g3)+(g1*p2)+(g1*g3)+(p1*g2*g3);(1D)Cy3=g0+(p0*p1)+(p0*p2)+(p0*p3)+(g1*p2)+(g1*p3)+(p1*g2*p3);对于i=0...3,具有产生信号gi=Ai*Bi,传播信号pi=Ai+Bi。
该进位的产生平行于按位加/减6逻辑,多路器M5/M6,以及计算A+/-B以及A+B+6/A-6-B的块的和产生而完成的。
对于多路器M1和M2的控制是利用如下的信号而完成的Sel_mux0=not(Sel_mux1)Sel_mux1=(dec_add*cy)+(dec_sub*not(cyO))Sel_mux2=not(Sel_mux3)Sel_mux3=(dec_add*cy3)+(dec_sub*not(cy1))这样,如上所述的优势,反向选择信号mux_sel1就等同于mux_sel0而反向选择信号mux_sel3等同于mux_sel2。
通过上述的公式(1A)到(1D),在多路器M1和M2的选择信号可以保持跟上在处理来自进位产生电路12以及加前逻辑14的信号的多路器M3的选择定时。具有优势地,如图3所示只有三个控制信号控制着单元的功能。
本领域的技术人员可以理解的是,本发明致力于对于数位和的条件修正的数位进位产生。发明特点并不限定运算的错误模式,其为一二进制加或减。
进一步,本发明原理可以用于覆盖分别具有更大操作数宽度的3周期或更多周期的加运算。
权利要求
1.一种加法器电路用于将两个二进制或十进制操作数A和B相加,其中在十进制操作数的情况下每一个十进制数位0到9具有一个二进制4位表示,并且其中十进制-按位运算的执行包括数位和计算操作数A加操作数B加6;操作数A减操作数B减6;操作数A加操作数B;操作数A减操作数B;其中十进制数位的进位输出指示着是否需要对数位和进行修正,所述加法器电路包括a)第一进位支路(12)用以产生“热”进位到每个数位中;b)第二加法器支路(14)用以分别预算对于十进制操作数,假设进位输入值0和1的,所有可能的数位和,A加B,A减B,A加B加6,A减6减B,其特征在于c)加前逻辑(22),用于从输入操作数直接计算出进位输出值cy0,cy1,cy2以及cy3;d)所述的加前逻辑(22)完成下面的表达式(1)或其逻辑等效Cy0=g0+(g1*p0)+(g2*p0*p1)+(g3*p0*p1*p2);(1A)Cy1=g0+(g1*p0)+(g2*p0*p1)+(p0*p1*p2*p3);(1B)Cy2=g0+(p0*p1)+(p0*p2)+(p0*g3)+(g1*p2)+(g1*g3)+(p1*g2*g3);(1C)Cy3=g0+(p0*p1)+(p0*p2)+(p0*p3)+(g1*p2)+(g1*p3)+(p1*g2*p3);(1D)。
2.根据权利要求1的加法器电路,其中36个4位数字在两个周期内被计算以执行十进制加法运算或二进制加法运算。
3.根据权利要求1的加法器电路,其中16位操作数在一个周期内被处理。
4.根据权利要求1的加法器电路,其中提供了转换控制(M5,M6)用于在二进制运算模式和十进制运算模式间进行选择。
5.包括根据前述权利要求中的一个的加法器电路的计算机系统。
6.运算加法器单元的方法,其特征在于包括步骤a)将输入操作数供给到加前进位逻辑(22),其根据如下表达式(1)执行一逻辑或其等效b)Cy0=g0+(g1*p0)+(g2*p0*p1)+(g3*p0*p1*p2);(1A)Cy1=g0+(g1*p0)+(g2*p0*p1)+(p0*p1*p2*p3);(1B)Cy2=g0+(p0*p1)+(p0*p2)+(p0*g3)+(g1*p2)+(g1*g3)+(p1*g2*g3);(1C)Cy3=g0+(p0*p1)+(p0*p2)+(p0*p3)+(g1*p2)+(g1*p3)+(p1*g2*p3);(1D)。
全文摘要
本发明涉及一种加法器电路用于将两个二进制或两个十进制操作数A和B相加,并且特别地,指的是这样一种处理十进制操作数的加法器电路,其中每一个十进制数位0到9具有一个二进制4位表示。进一步,所述加法器电路包括a)第一进位支路(12);b)第二加法器支路(14);以及c)加前逻辑(22)。
文档编号G06F7/50GK1731344SQ200510079668
公开日2006年2月8日 申请日期2005年6月24日 优先权日2004年8月5日
发明者威廉·哈勒尔, 霍尔格·韦特尔, 李何雯, 迈克尔·罗伯特·凯利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1