累加器电路及其使用方法 本发明与1995年3月13日提交的、序列号为08/403,158、题目为“Computor Processor Utilizing Logarithmic Conversion and Methodof Use Thereof”的发明有关,上述有关的发明已转让给本发明的同一受让人,其中所述的主题事物引用在本文中以作为参考。
本发明涉及累加器,用于累加数字,具体涉及一种可编程序的、有选择性地将输入信号所表示的数字相加的累加器。
累加器是一种电子电路,用于对信号所表示的数字数据求和。累加器典型地接收两个或多个信号,然后将这些信号相加在一起以形成一个和值。累加器电路广泛地用于各种应用之中,例如,业已制造的计算机几乎每个计算机都含有一个累加器。
常规的累加器包含两种不同类型的累加器,即串行累加器和并行累加器。串行和并行累加器两者提供相同的基本功能,亦即,它们俩都将多个输入信号相加在一起,以产生一个和值。然而,串行和并行累加器在结构和性能速度方面有所不同。串行累加器将对一个时段内所接收的一个输入信号序列求和;而并行累加器将对同时接收的多个输入信号求和。在电路结构方面,串行累加器包含一个加法器,该加法器与一个寄存器相连接;而并行累加器包含一个加法器树,该加法器树与一个寄存器相连接。加法器是一种可将两个信号相加在一起以产生一个和值的电路。加法器树是将三个或多个信号相加在一起以产生一个和值的电路。寄存器是用于存储该和值的存储器电路。
图1示出一种先有技术的串行累加器电路。该串行累加器包含一个加法器11和一个寄存器12。该串行累加器随时在一个第一输入端10上接收一个输入信号序列,加法器11还在反馈通路13上接收表示在寄存器12中所存储的和值的信号,并将对第一输入端10和反馈通路13上所接收的信号求和,以产生一个求和地结果,然后将它存储在寄存器12中。在接收整个输入信号序列之后,在寄存器12中所存储的和值表示该输入信号的和值。累加器将寄存器12的内容作为一个信号提供在其输出端14上。
串行累加器的缺点是在一个时刻只对一个输入求和,因而这负面影响了串行累加器在很多工程问题中的可应用性。例如,在计算机中,累加器用于对大量的输入信号求和时会严重地使数据处理速度降级。
图2示出一种先有技术的并行累加器电路。该并行累加器电路含有一个加法器树16和一个寄存器17。该加法器树16同时在输入端15接收多个输入信号,然后产生一个和值并存储在寄存器17中。该和值由输出端18上的一个信号来表示。该加法器树16包含多个加法器,它们连接在一起以允许对三个或多个输入信号同时求和。在使用图2所示的加法器树拓扑时,需要有N-1个加法器来对N个输入求和。例如,如图2所示,八个输入信号可被同时接收,于是在加法器树中需要有七个加法器。如果人们想对更多数目的输入信号求和,则需要有更多的加法器。例如,为了对64个输入信号求和,则加法器树要求有63个加法器。
虽然并行累加器比串行累加器快些,但并行累加器的缺点是要求有很多累加器,因此在一个集成电路中实施时需要大量的空间。这使并行累加器在很多工程应用中是不切实际的。
为此,现在需要一种能够同时对多个输入信号求和、且在集成电路中无需大量面积、也不招致大的处理延迟的累加器电路。
本发明的特点具体在所附的权利要求书中指出了,可是,本发明的其它特点将在结合以下附图和参阅下文描述以后就会明了,并能更好地理解本发明。
图1示出一种先有技术的串行累加器电路。
图2示出一种先有技术的并行累加器电路。
图3示出根据本发明的优选实施例的一种累加器的概念图。
图4示出根据本发明的另一个实施例的一种累加器的概念图。
图5示出本发明的各种实施例所使用的一种优选的求和电路的方框图。
图6示出本发明的各种实施例所使用的另一种求和电路的方框图。
图7示出根据本发明的一个实施例的一种使用例如图3和图4所示的累加器的方法的流程图。
图8示出包含本发明各种实施例的一种计算机的方框图。
本发明的优点是提供了一种能够对大量输入信号求和并且在集成电路中需要较小空间和累加数值所需要的时间比执行相似功能的常规的累加器较少。本发明的另一个优点是提供一种能够容易被编程序以便有选择性地累加来自不同源的任意组合的输入信号的累加器电路。本发明的又一个优点是提供一种具有减小输入电容量的累加器电路。
总的来说,本发明提供一种用于对多个输入信号求和的方法和累加器。该输入信号可组建为二进制字,用以表示数字值。累加器本身包括多个求和电路;多个开关,用于调节数据在求和电路之间的传输;以及一个控制单元,用于组态该开关。本发明所提供的累加器将参照图3至图6就能充分地理解。
图3示出根据本发明优选实施例的一种累加器的概念图。该累加器包括:一条母线26、多个求和电路24a-h、多个开关32 b-h以及一个控制单元20,该控制单元由一条控制母线22连接到每个求和电路。
该累加器的一个重要优点是它能够起一个并行累加器或多个串行累加器的作用,该累加器的实际作用要根据控制单元20所发出的一个控制信号序列而定。
求和电路24a-h相邻地耦连到母线26上。每个求和电路24a-h都具有一个双向端口30a-h和一个输入端口28a-h,它们都连接到母线26上。每个求和电路还具有一个输出端口34a-h。求和电路24a-h在输入端口28a-h上接收多个输入信号,并对该输入信号求和,以产生多个中间信号。每个求和电路24a-h根据控制单元20如何组态该求和电路可在其相应的输出端口34a-h或双向端口30a-h上产生一个中间信号。
多个开关32b-h用于调节母线26上的信号传输。每个开关都位于母线26上,设在各自相对应的一个求和电路的输入端口与双向端口之间,还独立地被置于打开位置或闭合位置。开关在打开位置时可防止信号不致传送到母线26的剩余部分,而在闭合位置时允许信号沿母线26传送。例如,如果一个输入信号是在第三个求和电路24c的输入端口28c上接收的,并且这时第一开关32b闭合而第二开关32c打开,则该输入信号在母线26上被分配到第一和第二求和电路24a-b的双向端口30a-b和第二、三求和电路24b-c的输入端口28b-c。每个开关的位置是根据控制单元20所发出的并在控制母线22上分布的各自相应的控制信号而确定的。每个开关在一个集成电路中是利用一个MOS(金属氧化物半导体)传输(pass)晶体管来实施的。
控制单元20除了组态每个开关32b-h以外,还组态每个求和电路24a-h的双向端口30a-h,以便接收或发送数据。用于独立地调节每个求和电路的双向端口的至少一个控制信号是由控制单元20在控制母线22上提供的。每个求和电路都含有一个收发信机,用于响应控制信号,来调定双向端口的数据流动方向。求和电路的细节将结合图5和图6来描述。
控制单元20借助于在不同时刻确立各种控制信号,来传送中间信号,以便作为输出信号在输出端口34a-b上被发送或在母线26上作为输入信号而由求和电路24a-h之中的另一个来接收。例如,为了对第一求和电路24a和第三求和电路24c所产生的中间信号求和,控制电路20先发出一个控制信号以令第一和第四开关32b、32d打开和令第二开关32c闭合;然后,控制单元20发出另一个控制信号以令第一和第三求和电路24a、24c将其中间信号置于各自相应的双向端口30a和30c上;之后,第二求和电路在其输入端口接收第一求和电路24a的中间和值和在其双向端口30b上接收第三求和电路24c的中间和值。
对于该控制单元20现有很多途径来实现。在数字系统中,该控制单元20可作为一个硬件的控制定序器或作为一个可编微程序的控制单元来实施。硬件的控制定序器是有限态(finite state)自动机的一种定序电路实施,而可编微程序的控制单元是借助于对存储器中所存储的一个指令序列解译码来产生控制信号的。例如,使用一个微处理器可实施一个可编微程序的控制单元。
虽然图3示出了具有一种拓扑的累加器,它含有八个求和电路,但本领域的技术人员可以实现具有任何个数的求和电路的累加器,并且仍包含和体现本发明的构思和精神。
下文说明图3所示的累加器的运算例子。
针对该累加器给出两个运算例子:(1)并行累加方式;(2)串行累加方式。虽然在这里仅给出两种运算方式,但在控制单元20可以组态该累加器,以在对输入信号的任何组合求和时还有很多其它的方式也是可能的。
并行累加的例子表明八个输入信号累加成为一个输出和值。在并行累加期间,控制单元20初始地发出一个控制信号,以令所有开关32b-h都打开。然后,在输入端口28a-h的每个上接收输入信号。在第一加法周期期间,控制单元20发出一个控制信号,以令每个其它的求和电路根据输入信号产生一个中间和值。换句话说,第一求和电路24a对第一对输入端子28a-b上所接收的输入信号求和;第三求和电路24c第二对输入端口28c-d上所接收的输入信号求和;第五求和电路24e对第三对输入端口28e-f上所接收的输入信号求和;以及第七求和电路24g对第四对输入端口28g-h上所接收的输入信号求和。
接着,在第二加法周期期间,将四个中间和值相加在一起,以产生两个另外的中间和值。由第一和第三求和电路24a、24c来的中间和值由第二求和电路24b求和,以产生另一个中间和值。为了完成这个任务,控制单元20发出一个控制信号,以令第一和第三开关32b、32d打开,令第二开关32c闭合。然后,控制单元20令第一和第三求和电路24a、24c将其中间和值传送到各自的双向端口30a、30c上。在此时刻附近,控制单元20还发出一个控制信号,以令第二求和电路在其双向端口30b上接收信号。
在第二加法周期还执行如上所述的相似程序,以对第五和第七求和电路24e、24g所产生的中间和值求和。在这种情况下,控制单元20使第五开关32f打开,使第六开关32g闭合。从第五和第七求和电路24e,24g来的中间和值在母线26上分别传送到第六求和电路24f的输入端口28f和双向端口30f,其结果是,第六求和电路34f产生另一个中间和值。
在第三加法周期期间,对由第二和第六求和电路24b、24f所产生的中间和值求和,以产生一个最终输出和值。控制单元20确立一个“打开第二开关32c和闭合第三、四、五开关32d-f”的控制信号,然后使第二和第六求和电路24b、24f的中间和值在母线26上分别传送到第三求和电路24c的输入端口28c和双向端口30c上。第三求和电路34c对这些数值求和并由将运算结果提供在其输出端口34c上,在输出端口34c上的数值是由该累加器所产生的最终输出和值。
在求和电路不是现用时,亦即它在一个加法周期期间未被使用时,其双向端口保持高阻抗状态,它也不响应沿母线26传输的信号。
串行累加的例子表明八个输入信号序列累加成为八个单独的输出和值。在串行累加期间,控制单元20初始地发出一个控制信号,以令所有开关32b-h保持打开和所有双向端口32a-h保持高阻抗状态。该输入信号序列在每个输入端口28a-h接收到其中的一个序列。每个求和电路在预定的时间之外(over time)对其各自相应的序列求和,以在其相应的输出端口34a-h上产生一个输出和值。这些输出和值构成该累加器的输出。
图4示出根据本发明的另一个实施例的一种累加器的概念图。这种型式的累加器的优点是它能起并行累加器的作用,它所具有的加法器明显地比常规的并行累加器少些。在图4所示的例子中,该累加器仅需四个加法器(在每个求和电路54a-d中有一个),用于累加八个输入信号;而一个常规的并行累加器对于同样数目的输入需要七个加法器。该累加器还起多个串行累加器或多个双输入的加法器的作用。
该累加器包括:一个控制单元、多个开关60a-b、一个第一中心开关62、一个第二中心开关64和多个求和电路54a-d。求和电路54a-d相邻地排列成为一个第一对称组50和一个第二对称组52。每个对称组都具有各自的一个中心求和电路54b-c。
从图中可以看出,这两个对称组相互是镜像的。第一对称组50含有一个第一中心求和电路54b,而第二对称组52含有一个第二中心求和电路54c。中心求和电路54b-c相互不同,因为它们具有双向端口58b-c连结到第一中心开关上。
每个求和电路具有:一个输入端口56a-d和一个双向端口58a-d,还具有一个输出端口52a-d。求和电路54a-d在输入端口56a-d和双向端口58a-d两者上接收输入信号,并对该输入信号求和,以产生多个中间信号。每个求和电路54a-d根据控制单元21如何组态该求和电路而在其相应的输出端口52a-d或双向端口58a-d上产生一个中间信号。
多个开关60a-b用于调节在同一对称组之内的两个求和电路之间的信号传输。这多个开关60a-b之中的每个连接在一个对称组之内相邻的两个求和电路的一个双向端口与一个输入端口之间。
第一中心开关62连接在中心求和电路54b-c的双向端口58b-c之间。第一中心开关62允许中间信号在中心求和电路54b-c之间传递。
第二中心开关64可位于第一或第二中心求和电路的双向端口与输入端口之间。在所示的例子中,第二中心开关64连接在第二中心求和电路54c的双向端口58c与输入端口56c之间。第二中心开关64c的作用是允许第一中心求和电路54b的双向端口58b上所产生的中间信号到达第二中心求和电路54c的输入端口56c。
每个开关可以独立地置于打开位置或闭合位置。开关在打开位置时可防止信号通过。开关在闭合位置时允许信号通过。每个开关的位置是根据控制单元21所发出的和分布在控制母线上的各自相应的控制信号而确定的。在一个集成电路中,每个开关可利用一个MOS传输(pass)晶体管来实施。
控制单元21除了组态每个开关以外,还组态每个求和电路54a-d的双向端口58a-d,以便接收或发送信号。用于独立地调节每个求和电路的双向端口的至少一个控制信号是由控制单元了21在控制母线23上提供的。每个求和电路都含有一个收发信机,用于响应控制信号,来调定双向端口的数据流动方向。求和电路的细节将结合图5、和图6来描述。
控制单元21借助于在不同时刻确立各种控制信号,来传送中间信号,以便作为输出信号在输出端口52a-d上被发送或传送到其它的求和电路54a-d。例如,为了对第一求和电路54a和第一中心求和电路54b所产生的中间信号求和,控制电路21先发出一个控制信号以令第一开关62打开和令开关60a在两个求和电路54a-b之间闭合。然后,控制单元21发出另一个控制信号以令第一求和电路54a在其双向端口58a上产生其中间信号;第一中心求和电路54b在其输入端口56b接收该中间和值并把它加在自己的中间和值上。由第一中心求和电路54b所产生的结果和值可以是双向端口58b或输出端口52b上的输出。
在数字系统中,该控制单元21可作为一个硬件的控制定序器或作为一个可编微程序的控制单元来实施。
虽然图4示出了具有一种拓扑的累加器,它含有四个求和电路,但本领域的技术人员可以实现具有任何个数的求和电路的累加器,并且仍包含和体现本发明的构思和精神。
图5示出本发明的各种实施例所使用的一种优选的求和电路70的概念图。该求和电路70包括:一个加法器76、一个寄存器72和一个收发信机74。加法器76具有:一个输入端71,连接到求和电路70的输入端口73;和另一个输入端78,连接到发发信机74和寄存器72。加法器76响应其输入端上的接收信号,产生一个和值,该和值由一个中间信号来表示,并且提供到寄存器72和输出端86上,寄存器72存储该中间和值并在稍后时间将它提供给加法器输入端78或收发信机74。寄存器72根据在控制母线77上所接收的控制信号来执行其功能。收发信机74从双向端口75接收信号或在双向端口75上发送寄存器72中所存储的中间和值。在控制母线77上所接收的控制信号确定了收发信机74的动作。为了避免加法器中间信号在输入端78上,寄存器72和收发信机74可以具有它们各自置为高阻抗状态的输出,收发信机74也可将其对双向端口75的连接线置于高阻抗状态。
图6示出本发明的各种实施例所使用的另一种求和电路的概念图。求和电路80包括:一个加法器46、一个复用器90、一个寄存器92和一个收发信机94。加法器76具有:一个输入端71,连接到求和电路80的输入端73;和另一个输入端78,连接到复用器90。加法器76响应在其输入端上所接收的信号,产生一个中间和值,该中间和值由一个中间信号来表示并将它提供给寄存器92和输出端口86。寄存器92存储该中间和值并在稍后时间将它提供给复用器90或收发信机94。收发信机94从双向端口75接收信号,或将寄存器92内所存储的中间和值发送到双向端口75。收发信机94还能将与双向端口75的连接线置于高阻抗状态。在控制母线77上所接收的控制信号确定该收发信机94的动作。该复用器90有选择性地将寄存器92的输出或来自双向端口75的输入信号提供给加法器输入端78。复用器90的输出是由在控制母线77上所接收的控制信号来进行选择的。
图7示出根据本发明的一个实施例的一种使用诸如图1和图2所示的累加器的方法的流程图。在步骤100,将多个输入信号分配给多个求和电路。接着,在步骤102,求和电路将输入信号相加在一起以产生多个中间和值。
在步骤104,为每个中间和值确立一条定路由的传送通路,该传送通路指示中间信号的流动,该中间信号代表经由该累加器的中间和值。当这些定路由的传送通路组合在一起时就构成一个控制序列,这由控制单元来执行,以使累加器将中间和值的各种各样的一些相加在一起,以形成一个输出和值。控制单元可以针对传送通路信息进行编程序,以在预定的时间使求和电路和开关之中所选定的一些起作用。作为执行该控制序列的结果,控制单元产生控制信号,以使这些开关和求和电路起作用来按需累加中间和值。在步骤106,为至少一个中间和值制定通往一个求和电路的一个输入端的路由。中间和值由求和电路之中首先允许起作用的选定的一些来制定路由,以便在特定时间传送其双向端口上的中间和值。然后,借助于设定该开关,将中间和值传送到至少一个其它的求和电路。在步骤108,求和电路对在其输入端上所接收的信号求和,以产生一个输出信号来代表输出和值。
参照步骤100,当输入信号是在一条共用母线上接收时(例如在图1所示的累加器内),它们首先是与一个相对应的求和电路相匹配的,然后,据此设定开关以使这些输入在该母线的不同的部分上仍然保持隔离。
参照步骤104,该控制序列是按如下所述的方式确定的:首先,选择包含在该输出和值之内的输出信号;然后,指定最终的求和电路来产生输出信号,在本发明的优选实施倒中,最终的求和电路被选择以使中间和值可在一条连接了这多个求电路的母线进行传输;最后,确定允许各种开关和求和电路起作用的时间。该控制序列可利用微码或数字逻辑电路来实施。
图8示出体现本发明的一个实施例的一种计算机的概念图。该计算机可以在其输出母线140上产生至少一个输出和值。该计算机包括:多个处理器120和一个累加器150。该累加器150包括:多个加法器组122a-d,一个次(secondary)加法器124,一个最终的求和电路126,一个控制单元127,以及一个复用器128。虽然多个处理器可以包含任何个数的处理器,但在图8中表示有16个。作为执行计算的结果是该处理器120产生多个数字值,它们由数据信号来表示。加法器组122a-d随后对该数据信号求和,以产生多个中间和值,它们由主(primary)信号来表示。这些主信号作为输入信号提供给次加法器124和复用器128两者。每个加法器组都具有多个输出端口;尽管一个加法器组可以具有任何数量的输出端口,但在这个所示的例子中每个加法器组具有四个输出端口。所有的输出端口都连接到复用器128,而从每个加法器来的只有一个输出端口连接到次加法器124。次加法器对来自每个加法器组122a-d的主信号求和,以产生至少一个次和值(secondary sum)。然后,将该次和值提供给最终的求和电路126和复用器128。最终的求和电路126超时地(over time)对次和值序列求和,以产生一个最终的和值。最终的和值提供给复用器128。控制单元127在控制母线123上向加法器组122a-d、次加法器124、最终的求和电路126和复用器128提供控制信号。控制单元127在不同的时间发出控制信号,可以最少地为至少一个次和值通往输出母线140制定路由并且组态每个加法器组122a-d来产生至少一个主和值(primary sum)。
在一种机型的计算机中,每个加法器组122a-d包含基于图3所示的累加器的一个累加器。因为图8所示仅有16个处理器,所以图3所示的累加器需要在一个加法器组122a-d中可工作仅四个求和电路。利用图3所示累加器总共具有八个求和电路,将允许该计算机包含32个处理器而不是16个处理器。
在同一机型的计算机中,次加法器124含有基于图4所示的累加器的一个累加器。为了可在次加法器124中工作,图4所示的累加器将需要仅两个求和电路。最终的求和电路126包含一个如图1所示的串行累加器。
复用器128从加法器组122a-d,次加法器124或量终的求和电路126中选择输出,以便提供在计算机的输出母线140上。在计算机输出母线140上呈现的信号是根据由控制单元127所执行的一个控制序列来确定的。
控制单元127能够组态该计算机来累加处理器120的输出的任何组合形式。例如,该计算可被组态来个别地累加每个处理器120的输出,以产生多个个别的处理器的和值。然后,将这些和值依序地提供在计算机输出母线140上。这是借助于设定加法器组122a-d来起多个串行累加器的作用而实现的。然后,复用器128依序地选择在计算机输出端140上提供的加法器组122a-d的每个输出。另一种可能的组态允许处理器120的所有输出在一个时段内进行累加成为一个单一的和值。这是由加法器组122a-d对其各自相应的输入求和以产生主和值而实现的。然后,次加法器124对这些主和值求和,以产生一个次和值,它代表了一个给定的加法周期的处理器输出的总值。然后由最终的求和电路126对于多个加法周期的次和值超时地进行累加,以产生该单一的和值。量终的求和电路126的输出由复用器来选定,以提供在计算机输出母线140上。
总之,至此业已描述了关于累加器的一种概念和几个实施例,其中包括一个优选的实施例,它使用了多个开关和求和电路来使输入信号相加,这允许该累加器可以惊人地快的速度对输入求和,同时减小了该累加器在一个集成电路中的尺寸和复杂性。
由于本发明的各种实施例提供了一种含有控制单元的累加器电路,因而它易于被编程序以有选择性地对来自不同源的多个输出信号的任何组合进行累加。又由于本发明的各种实施例提供了多个开关,这些开关可以打开以隔断输入信号,因而这些实施例享有减小的输入电容量。
虽然现已示例和描述了本发明的特定的实施例,但本领域的技术人员明显地可对已公开的这个发明以各种方式进行修改并且认为除了上述的优选形式以外还有很多实施例。
据此,所附的权利要求书试图覆盖本发明的所有修改,它们都落在本发明的真实精神和范围之内。