行波进位加法器的制作方法

文档序号:19570367发布日期:2019-12-31 18:52阅读:2203来源:国知局
行波进位加法器的制作方法

本发明涉及一种行波进位加法器,特别涉及一种在计算设备中应用的多位行波进位加法器。



背景技术:

在计算机系统中,加法运算是一切算术运算的核心。因此如何提高加法运算的速度是业内人士所共同追求的目标。

最初的计算机都采用行波进位加法器(ripple-carryaddition)。对于这种加法器第i位的和si为

其中ai和bi分别是两个操作数的第i位,ci是向第i位的进位。下一级(i+1)位的进位是

ci+1=ai·bi+ci·(ai+bi)

因此两个n位的操作数相加最大需要n-1个进位延时和一个求和的延时。这显然不能满足当今计算机运算高速度的需求。

经过多年来对加法器的不断改进,目前改进后的加法器主要有两类,一类是异步加法器,另一类是同步加法器。当今绝大多数计算机系统中的加法器都采用了后者。同步加法器的种类虽然很多,都有源于各自不同的设计思想形成了不同的电路结构,但它们的共同特点,都是克服行波进位加法器的串行进位,增加求和与求进位的并行度,以尽量减少求和时等待进位的延时,从而提高加法器的执行速度。但它们的共同缺点在于还是不能满足对运算速度提出的不断提高的要求。

cn104020980公开了一种全加器。如图1所示,全加器400接收输入401处的一位输入a和b并在考虑输入402处的进位输入信号cin的值的情况下将这些输入相加。进位输入信号cin对应于由相邻加法器产生的与较低位的位置对应的进位输出。在输出403处以sum和进位输出cout信号的形式提供输入401和402处的输入的最终和。在加法器400连接成链的情况下,进位输出信号cout可以被路由到下一个加法器的cin输入线上。可以用两个半加器和or门构建全加器如全加器400。两个半加器中的第一个半加器接收a和b。第二个半加器接收来自第一个半加器的和输出并接收cin。第二个半加器产生全加器的sum信号。第二个半加器还可以产生进位输出信号(carryoutsignal)。来自第二个半加器的进位输出信号和来自第一个半加器的进位输出信号可以利用or门进行组合,且or门的最终输出可以用作全加器的cout信号。

行波进位加法器可以由全加器链形成,如图2所示。行波进位加法器500由多个全加器链(fa0、fa1、fa2等)形成,每个全加器的进位输入cin连到前面的全加器的进位输出cout部分。例如,全加器fa1接收链中前面的全加器fa0的进位输出信号c1并将其进位输出信号c2提供给下一个全加器fa2。

这些加法器之所以被称为行波进位加法器是因为进位位的正确值“以行波方式”从一位传到下一位。行波进位加法器可以有效地实施,但是具有有限的性能。直到已经计算出最后一位的进位输出时才产生有效的输出信号。因为进位信号以行波方式通过加法器的所有层级,所以存在与加法器链的长度成比例的计算延迟。



技术实现要素:

为了解决上述问题,本发明提供了一种行波进位加法器,能够有效减小加法器链的计算延迟。

为了实现上述目的,本发明提供了一种行波进位加法器,包括:

多个输入端,用于提供运算数据和进位输入;

多个输出端,用于将运算结果输出并提供进位输出;

至少一组级联的全加器,连接在所述输入端和所述输出端之间,用于对所述输入端的所述运算数据和所述进位输入进行运算;

其中,所述级联的全加器之间为互补结构。

上述的行波进位加法器,其中,所述互补结构为所述级联的全加器的进位输入和进位输出之间互为反相。

上述的行波进位加法器,其中,所述级联的全加器包括第一全加器以及第二全加器,所述第一全加器向所述第二全加器提供反相的进位信号,所述第二全加器接收所述反相的进位信号并提供同相的进位信号。

上述的行波进位加法器,其中,所述级联的全加器为多组级联。

上述的行波进位加法器,其中,所述输入端包括第一输入端、第二输入端、第三输入端、第四输入端以及第五输入端;所述输出端包括第一输出端、第二输出端以及第三输出端;所述第一输入端、所述第二输入端、所述第三输入端以及所述第四输入端提供所述运算数据,所述第五输入端提供所述进位输入;所述第一输出端输出所述第一全加器的运算结果,所述第二输出端输出所述第二全加器的运算结果,所述第三输出端提供所述进位输出。

上述的行波进位加法器,其中,所述第一全加器包括:

第一异或门,其输入与所述第一输入端、所述第二输入端连接;

第二异或门,其中一个输入与所述第五输入端连接,另一个输入与所述第一异或门的输出连接;

所述第二异或门的输出连接所述第一输出端;

与或非门,其第一组的两个输入与所述第一输入端、所述第二输入端连接,其第二组的两个输入与所述第一异或门的输出以及所述第五输入端连接;其输出与所述第三输出端连接。

上述的行波进位加法器,其中,所述第二全加器包括:

同或门,其输入与所述第一输入端、所述第二输入端连接;

异或门,其中一个输入与所述第五输入端连接,另一个输入与所述同或门的输出连接;

所述异或门的输出连接所述第二输出端;

与非门,其输入与所述第一输入端、所述第二输入端连接;

与门,其输入与所述同或门的输出以及所述第五输入端连接;

或非门,其输入分别连接所述与非门、所述与门的输出端,其输出与所述第三输出端连接。

为了实现上述目的,本发明还提供一种数据运算单元,包括互联连接的控制电路、运算电路、存储电路,以及一个或多个行波进位加法器,其中,所述行波进位加法器为上述任意一种所述的行波进位加法器。

为了实现上述目的,本发明还提供一种芯片,其中,所述芯片包括上述的任意一种所述数据运算单元。

为了实现上述目的,本发明还提供一种用于计算设备中的算力板,其中,所述算力板包括上述的任意一种所述芯片,所述芯片安装于所述算力板上。

为了更好地实现上述目的,本发明还提供了一种计算设备,包括电源板、控制板、连接板、散热器以及多个算力板,所述控制板通过所述连接板与所述算力板连接,所述散热器设置在所述算力板的周围,所述电源板用于向所述连接板、所述控制板、所述散热器以及所述算力板提供电源,其中,所述算力板为上述任意一种所述算力板。

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

图1为现有全加器的结构示意图;

图2为现有行波进位加法器的结构示意图;

图3为本发明实施例行波进位加法器的结构示意图;

图4为本发明一实施例全加器的结构示意图;

图5为本发明另一实施例全加器的结构示意图;

图6为本发明数据运算单元结构示意图;

图7为本发明芯片结构示意图;

图8为本发明算力板结构示意图;

图9为本发明计算设备结构示意图。

其中,附图标记:

100、500:行波进位加法器

200、300、400:全加器201、202、203:输入端

204、205:输出端206、207:异或门

208:与或非门

301、302、303:输入端304、305:输出端

306:同或门307:异或门

308、310:与非门309:或门

a1、b1、a2、b2、ci:输入

s1、s2、co:输出

401、402:输入403:输出

700:数据运算单元701:控制电路

702:运算电路703:存储电路

800:芯片801:控制单元

900:算力板1000:计算设备

1001:连接板1002:控制板

1003:散热器

具体实施方式

下面结合附图对本发明的结构原理和工作原理作具体的描述:

在说明书及后续的权利要求当中使用了某些词汇来指称特定组件。所属领域中具有通常知识者应可理解,制造商可能会用不同的名词来称呼同一个组件。本说明书及后续的权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在整个说明书中,相同的附图标记表示相同的元件。

在通篇说明书及后续的权利要求当中所提及的“包括”和“包含”为一开放式的用语,故应解释成“包含但不限定于”。以外,“连接”一词在此为包含任何直接及间接的电性连接手段。间接的电性连接手段包括通过其它装置进行连接。

对于集成电路中的半导体器件而言,由于金属-氧化物-半导体(mos)晶体管中寄生电容和负载电容的存在,使得半导体器件的输出电压滞后于输入电压的变化。将输出电压滞后输入电压变化的时间成为“传输延迟时间”。

通常,一个cmos非门的平均传输延迟时间的计算方法为:

tpd=(tphl+tplh)/2,tphl=tplh。

其中:

tpd表示平均传输延迟时间,

tphl表示输出由高电平跳变为低电平时的传输延迟时间;

tplh表示输出由低电平跳变为高电平时的传输延迟时间。

将cmos非门的平均传输延迟时间定义为“t”,则一些常见门电路的传输延迟时间可参见表一所示:

表一

图1是现有全加器的电路示意图。如图1所示,输入端402处输入的信号cin作为全加器的进位输入,其经过一级与门与一级或门,输出至输出端403处,作为进位输出cout。结合表一可知,每一个全加器的进位输入“cin”需经过“4t”的传输延迟时间才能得到进位输出“cout”。表二是现有全加器400的真值表。

表二

图2是现有行波进位加法器的示意图。如图2所示,行波进位加法器500由多个全加器链(fa0、fa1、fa2等)形成,每个全加器的进位输入cin连到前面的全加器的进位输出cout部分。图2中仅仅示出了具有3级全加器链的行波进位加法器,全加器fa2的进位输出cout与全加器的进位输入cin之间就存在着3*4t的传输延迟时间。如果行波进位加法器500具有n级全加器链,则最后一级全加器的进位输出cout与第一级全加器的进位输入cin之间就存在着n*4t的传输延迟时间。

图3是本发明行波进位加法器的示意图。如图3所示,行波进位加法器100包括两级全加器200、300;其中,两级全加器200、300之间的进位信号为互补的进位信号。本发明的行波进位加法器还可以包括更多级全加器,其连接方式可以与两级全加器的连接方式相同。这里以两级连接为例进行具体说明。

全加器200的输入端分别接收第一位输入a1、第二位输入b1以及进位输入ci,进位输入ci与图1中全加器400的进位输入cin信号的相位同相。全加器200的输出端输出求和s1信号以及进位输出con,进位输出con与图1中全加器400的进位输出cout信号的相位相反。

全加器300的输入端分别接收第三位输入a2、第四位输入b2以及进位输入cin,进位输入cin与图1中全加器400的进位输入cin信号的相位相反。全加器300的输出端输出求和s2信号以及进位输出co。进位输出co与图1中全加器400的进位输出cout信号的相位同相。

图4是本发明一全加器的电路示意图。如图4所示,全加器200包括输入端201、202、203以及输出端204、205。输入端201、202用于接收第一位输入a1以及第二位输入b1,输入端203用于接收进位输入ci;输出端204用于输出求和s1,输出端205用于输出进位输出con。

异或门206具有两个输入端,分别连接全加器200的输入端201、202;异或门207具有两个输入端,一个输入端连接全加器200的输入端203,另一个输入端连接异或门206的输出端,异或门207的输出端连接全加器200的输出端204。

与或非门208具有四个输入端,其中一组的两个输入端分别连接全加器200的输入端201、202,另外一组的两个输入端,一个输入端连接进位输入ci,另一个输入端连接异或门206的输出端;与或非门208的输出端连接全加器200的输出端205,输出进位输出信号con。全加器200的真值表如表三所示:

表三

根据表二、表三可以看出,在输入ai、bi、ci完全相同的情况下,全加器200输出的求和信号si与如图1中的全加器400的求和信号相同;全加器200的进位输出信号ci+1与如图1中的全加器400的进位输出信号反相。

图5是本发明另一全加器的电路示意图。如图5所示,全加器300包括输入端301、302、303以及输出端304、305。输入端301、302用于接收第三位输入a2以及第四位输入b2,输入端303用于接收经全加器200反相的进位输入cin;输出端304用于输出求和s2,输出端305用于输出进位输出co。

同或门306具有两个输入端,分别连接全加器300的输入端301、302;异或门307具有两个输入端,一个输入端连接全加器300的输入端303,另一个输入端连接同或门306的输出端,异或门307的输出端连接全加器300的输出端304;与非门308具有两个输入端,分别连接全加器300的输入端301、302;或门309具有两个输入端,一个输入端连接进位输入cin,另一个输入端连接同或门306的输出端;与非门310具有两个输入端,分别连接与非门308以及或门309的输出端,与非门310的输出端连接全加器300的输出端305,输出进位输出信号co。全加器300的真值表如表四所示:

表四

根据表二、表四可以看出,在输入ai、bi相同,ci反相的情况下,全加器300输出的求和信号si、进位输出信号ci+1与如图1中的全加器400的求和信号以及进位输出信号完全相同。

综合以上可以看出,由全加器200、300两级加法器链构成的行波进位加法器100能够得到与如图1中的全加器400两级加法器链相同的运算结果。由全加器400构成的两级加法器链的传输延迟时间为2*4t=8t。

全加器200的进位输入ci经过与或非门208之后,得到进位输出con。结合表一可知,全加器200的进位输入ci只需经过“3t”的传输延迟时间就能得到进位输出con。

全加器300的进位输入cin同样经过或门309与与非门310之后,得到进位输出co。结合表一可知,全加器300的进位输入cin只需经过“3t”的传输延迟时间就能得到进位输出co。

因此,行波进位加法器100的进位输入ci经过两级全加器200、300之后得到的进位输出co,只有3t+3t=6t的传输延迟时间。这就节约了行波进位加法器链对于进位信号的等待时间。

本发明还提供一种数据运算单元,图6为本发明数据运算单元示意图。如图6所示,数据运算单元700包括控制电路701、运算电路702、存储电路703以及多个行波进位加法器100。控制电路701对从存储电路703中读出的数据通过行波进位加法器100进行加法运算,运算电路702对读取的数据进行其他运算,再由控制电路701将运算结果输出。

本发明还提供一种芯片,图7为本发明芯片示意图。如图7所示,芯片800包括控制单元801,以及一个或多个数据运算单元700。控制单元801向数据运算单元700输入数据并将数据运算单元700输出的数据进行处理。

本发明还提供一种算力板,图8为本发明算力板示意图。如图8所示,每一个算力板900上包括一个或多个芯片800,对矿池下发的工作数据进行哈希运算。

本发明还提供一种计算设备,所述计算设备优选用于挖掘虚拟数字货币的运算,当然所述计算设备也可以用于其他任何海量运算,图9为本发明计算设备示意图。如图9所示,每一个计算设备1000包括连接板1001、控制板1002、散热器1003、电源板1004,以及一个或多个算力板900。控制板1002通过连接板1001与算力板900连接,散热器1003设置在算力板900的周围。电源板1004用于向所述连接板1001、控制板1002、散热器1003以及算力板900提供电源。

需要说明的是,在本发明的描述中,术语“横向”、“纵向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,并不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

换言之,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1