CN1129066C - 处理器及其运算方法以及数据处理器 - Google Patents
处理器及其运算方法以及数据处理器 Download PDFInfo
- Publication number
- CN1129066C CN1129066C CN96102871A CN96102871A CN1129066C CN 1129066 C CN1129066 C CN 1129066C CN 96102871 A CN96102871 A CN 96102871A CN 96102871 A CN96102871 A CN 96102871A CN 1129066 C CN1129066 C CN 1129066C
- Authority
- CN
- China
- Prior art keywords
- value
- data
- input
- binary
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 96
- 238000007792 addition Methods 0.000 claims description 234
- 238000012545 processing Methods 0.000 claims description 28
- 241001269238 Data Species 0.000 claims description 21
- 238000001514 detection method Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 17
- 230000000295 complement effect Effects 0.000 claims description 14
- 230000008676 import Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000005055 memory storage Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 52
- 239000000047 product Substances 0.000 description 50
- 239000003990 capacitor Substances 0.000 description 11
- 239000004065 semiconductor Substances 0.000 description 11
- 239000000654 additive Substances 0.000 description 10
- 230000000996 additive effect Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 102000004381 Complement C2 Human genes 0.000 description 1
- 108090000955 Complement C2 Proteins 0.000 description 1
- 102100038204 Large neutral amino acids transporter small subunit 1 Human genes 0.000 description 1
- 102100038235 Large neutral amino acids transporter small subunit 2 Human genes 0.000 description 1
- 108091006232 SLC7A5 Proteins 0.000 description 1
- 108091006238 SLC7A8 Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000000155 isotopic effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5318—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with column wise addition of partial products, e.g. using Wallace tree, Dadda counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/509—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/607—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
- H03K19/23—Majority or minority circuits, i.e. giving output having the state of the majority or the minority of the inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3832—Less usual number representations
- G06F2207/3836—One's complement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4816—Pass transistors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/48—Indexing scheme relating to groups G06F7/48 - G06F7/575
- G06F2207/4802—Special implementations
- G06F2207/4818—Threshold devices
- G06F2207/4822—Majority gates
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Complex Calculations (AREA)
- Logic Circuits (AREA)
Abstract
在一种用于进行包括若干多位数据的加法的运算的处理器中将若干多位数据的公共位上的数值以并行方式输入到各个位的数字检测器组中,以二进制的表示方式输出在输入的数值中的高(电平)信号的数目,以及将来自若干ND的输出利用全加器相加,高速完成相加而没有进位。此外,没有公共位的数据在相加之前被总和到一单一数据中。
Description
本发明涉及一种例如为用于执行加法和乘法运算的半导体器件的处理器,用在该器件的运算方法以及其中使用该处理器数据处理器。
近些年来,由于半导体制造微型化技术和包括执行算法的半导体电路技术的巨大发展,加法器和乘法器的运算速度明显增加了。它们的运算处理适用于包括中央处理单元(CPU)或数字信号处理器(DSP)领域的每一种半导体器件。然而,该技术越发展,这种运算处理就越需要更高的性能,即更高的速度。
特别是在多媒体时代需要进行图像处理的领域内,需要进行极力大量的计算例如矩阵运算和高速处理;更确切地说,加法器或乘法器的处理是用于确定其性能的最重要的处理,需要按更高的速度进行处理。
作为本运算方法中的加法器的一个实例,下面对于在“CMOSVLSI的设计”中介绍的加法器(由Sugano Takuo,Baifukan指导的)进行。
对于两个二进制数字的相加,假设X和Y代表该二进制数字,S代表X和Y的和,C代表进位值,假如X和Y每一个具有一位,则有如下四种类型的计算:
当X=0和Y=0,则S=0和C=0。
当X=0和Y=1,则S=1和C=0。
当X=1和Y=0,则S=1和C=0。
当X=1和Y=1,则S=0和C=1。
假如考虑上述结果按照真值表利用逻辑表达式来表达“和”S进位值C,得到表达式S=X+Y,和C=X+Y。如图41A所示,它们能够在根据单一异或门OR和单一AND门的双输入双输出电路中实现。具有这种功能的电路称为半加法器。
假如二进制数每个具有多位,换句话说,假如它们每个具有的位宽(bitwidth)为2或多位,则需要从较低位进行进位信号的处理。因而,进行该处理需要一个电路,其中对于一位可能进行将X1、Yi和Ci-1相加。这种三输入双输出电路称为全加器。图41C表示代表这种运算的真值表和逻辑表达式。通过设置所需数量的全加器并将它们连接使较低位的加法器的进位信号输入到较高位加法器,可以得到用于进行任何位数加法的电路。其被称为逐位进位加法器,在图41B中表示了构成一四位加法器的一个实例。尽管有各种各样的用于单一位的全加器的电路,其正确地反映在图41C中的真值表的作用,但有一设计难点,在没有产生和信号时,但是希望尽可能快地传输由较低位向较高位输入的进位信号的情况下,能够实现高速运算。图41D表示根据这种观点设计的全加器的一个实例。
假如位数例如增加到16位,关于通过改进单个全加器实现加速则存在限制,必须利用整个16位加法器来实现加速。由于如上所述利用进位传输速度,可调节加法器的运算速度,假如无需等待来自较低位加法器的进位信号,就能确定加法器本身的进位信号,则可以实现加速。
仅由本位的输入值和最低位的进位信号能够产生对所有位的进位信号。这被称为进位先行(CLA)。适用这种方法的一个电路的实例(CLA电路)表示在图42A中。在图42A中,HA代表在图42B中的一个半加器,由虚线包围的部分利用图42C中的CMOS电路来实现。
在实际实现该电路时,考虑到硬件的数量或效率,对于所有位的进位信号主要不是在CLA中产生的,而是通过对于每个组件例如由四位构成的组件采用CLA来传输进位信号,以及通过利用在每个组件(CLA组件)内部的逐位进位来传输进位信号。在图43中表示了在这种方法中采用的16位加法器的一个实例。
通过对一被减数增加一减数的2的补数利用加法器进行减法。
然而,还在上述方法中,由于元件的数量和运算时间两者随着运算的次数的增加而显著增加,在运算增加的情况下不易实现进一步高速度的运算。
例如,当总共将63个数据块相加时,为了高速运算可以实现在图44中所示的并行6级的加法运算,但是需要62个全加器。另一方面,假如元件的数量降低,可以如图45所示仅利用单一的全加器来进行这种运算,不过必须顺序地进行62次加法。
下面按照在本运算方法中的一个乘法器的实例,简要介绍一并行乘法器。
在(n×n)位的乘法中,按照下式得到部分乘积:
其中该部分乘积是顺序的被乘数
与一位的2jYj(J=0,1…n-1)的乘数Y相乘的结果。
由于在二进制数中,仅有0和1,当Yj为0时,Pij总为0。以及当Yj为1时,Pij的每位等于Xi的每位。因此,通过在被乘数的每位与乘数的每位之间采用AND运算就能得到该部分的乘积。通过根据乘数各位的权安排所产生的部分乘积的各个位并将它们彼此相加,可以得到如下的乘法运算结果: 通过配置用于产生上述部分乘积的硬件(AND门)和用于以数组(阵列)方式将各部分的乘积相加并将它们连系的电路,可以实现最基本的并行乘法器。8位×8位的并行乘法器的一个实例表示在图46中。如图所示,该并行乘法器包含一全加器301,半加器302和AND门303。
如在这一实例中所表示的,在对(n×n)位数字进行乘法时,在n2个AND门中可易于且高速计算各部分的乘积,以及用于将各部分的乘积相加的加法步骤控制了运算速度。因此,增加对各部分的乘积进行加法的步骤的运行速度是加速乘法器运算的关键。
作为改进的方法,有一种使用进位值存储的加法器的方法,其中通过将一用于各部分乘积的加法级的进位信号传输到下一个加法级中的加法器,可以不必需要在本级中传输进位信号,即使用一种Wallace-free法(Wallace,C,IEEE Trans.onElectronic Computers EC-13.1,1964第14-17页),该方法在同一位中以并行方式实施加法步骤,以及使用一种方法,其中采用Booth算法(Rubinifield,L,IEEE Trans.on Computers,24,10,1975,第1014-1015页)降低产生部分乘积的数目,增加运算速度。
然而,在上述方法制中,元件的数量和运算时间两者随位数增加而显著增加,因而由于增加位数的趋势不易进一步增加速度。相应地,近来报导有一种适用多值逻辑的乘法器(T.Hanyu等人,Proc.IEEE Int.Symp.on MVL,第19-26页(1994)5月,1993年11月)。然而在目前的条件还没有投入实际使用。
本发明的一个目的是提供一种能够利用较少元件进行高速运算的处理器及其运算处理方法,以及一种解决了上述技术难题的数据处理器。
本发明的另一个目的是降低在一处理器中所需元件的数量和降低消耗,以及提供一种增加运算速度的数据处理器。
本发明的再一个目的是通过在相加过程中消除进位信号的传输来增加运算速度。
本发明的再一个目的是通过重新安排数据降低所要相加数据的数量来增加运算速度和降低用于运算的所需元件的数目。
本发明的再一个目的是通过以并行方式进行运算来增加处理速度。
按照一个方面,实现这些目的的本发明涉及一种处理器,用于将多个二进制值相加,所述多个二进制值中的每一个二进制值都具有多位,该处理器包括:数目检测装置,用于检测所述多个二进制值的多位中的各位上具有值1的位的数目并把以二进制表示的该检测的数目作为各位的位置的相加结果而输出该检测数目;以及相加装置,用于接收从所述数目检测装置输出的相加结果并计算该相加结果的一个和,其中所述数目检测装置包括:判定装置,用于分别判定具有值1的位的该数目是否小于多个预定的值中的每一个预定值,以及二进制数据输出装置,用于根据所述判定装置的判定结果而检测具有值1的位的数目并以二进制表示的形式输出该检测数目。
按照另一方面,实现这些目的的本发明涉及一种处理器,用于把多个各具有多位的二进制值彼此相乘,该处理器包括:部分积产生装置,用于产生所述多个二进制值的部分积;数目检测装置,用于从由所述部分积产生装置所产生的多个部分积中,对于所述部分积的多位中的各位的位置,检测具有值1的位的数目,并输出二进制表示的该检测的数目并把该检测的数目作为在各个位置上分别地把该部分积相加的一个相加结果;以及加法装置,用于接收从所述数目检测装置输出的相加结果并计算该相加结果的一个和,其中所述数目检测装置包括:判定装置,用于分别判定具有值1的所述位的数目是否小于多个预定值中的每一个值,以及二进制数据输出装置,用于根据所述判定装置的判定结果而检测具有值1的位的数目并以二进制表示输出该检测的数目。
按照再一方面,实现这些目的的本发明涉及一种运算方法,用于把各具有多位的多个二进制值加到一起,该方法包括以下步骤:对于多位中的各位的位置,分别判定所述多个二进制值中具有值1的位的数目是否小于多个预定的值中的每一个预定值;根据所述判定步骤中的判定结果,检测具有值1的位的数目;把二进制表示的该检测到的数目作为各位的位置的相加结果并输出该检测到的数目;以及计算在所述输出步骤中输出的所述相加结果的一个和。
按照再一方面,实现这些目的的本发明涉及一种运算方法,用于把各具有多位的多个二进制值彼此相乘,所述方法包括以下步骤:产生所述多个二进制值的部分积;从所述产生步骤中产生的多个部分积,分别判定所述部分积的多位中的各位的位置上具有值1的位的数目是否小于多个预定值中的每一个预定值;根据所述判定步骤中的判定结果,检测具有值1的所述位的数目;把二进制表示的所述检测的数目作为各位的位置的一个相加结果并输出该检测的数目;以及计算在所述输出步骤中输出的所述相加结果的一个和。
按照再一方面,实现这些目的的本发明涉及一种数据处理器,包括:输入装置,用于输入数据;存储装置,用于存储数据;处理装置,用于在一个给定的处理过程中处理由所述存储装置所存储的数据和从所述输入装置输入的数据;输出装置,用于输出所述处理装置的处理结果,其中所述处理装置包括:判定装置,用于分别判定所述多个二进制值中在多位中的各位的位置上具有值1的位的数目是否小于多个预定值中的每一个预定值,二进制数据输出装置,用于根据所述判定装置的判定结果而检测该具有值1的位的数目并把二进制表示的该检测数目作为各位的位置的一个相加结果,以及相加装置,用于接收从所述数目检测装置输出的相加结果并计算所述相加结果的一个和。
由如下对本发明的各优选实施例的介绍,对于本技术领域的技术人员来说,除了上述的以外,其它的目的和优点也将变得很明显。在进行介绍时,参照附图,这些附图构成本发明的一部分,表示了本发明的实例。然而,这种实例并不是本发明的各种不同的实施例的完全的代表,因而更参阅接着说明书的权利要求书,其确定了本发明的保护范围。
图1是表示第一实施例的加法器的示意图;
图2是表示第一实施例的多数逻辑电路的示意图;
图3A和3B是表示一ND的示意图;
图4是表示第二实施例的加法器的示意图;
图5是表示用于执行第二实施例的第二加法步骤的加法器的示意图;
图6是表示第三实施例的加法器的示意图;
图7是表示第三实施例的部分乘积产生电路的示意图;
图8是表示第三实施例的乘法器的示意图;
图9是表示第三实施例的加法器的示意图;
图10是表示第三实施例的全加器通道级数量的示意图;
图11是表示第三实施例的乘法运算处理程序的流程图;
图12是表示第三实施例的乘法电路的示意图;
图13是表示用在第三实施例中的ND的示意图;
图14是表示用在第三实施例中的主要逻辑电路的示意图;
图15是表示用在第三实施例中的主要逻辑电路的示意图;
图16是用在第三实施例中的各信号的时间关系图;
图17是表示用在第四实施例中的ND的示意图;
图18是表示用在第四实施例中的主要逻辑电路的示意图;
图19是用在第四实施例中的的各信号的时间关系图;
图20是表示用在第五实施例中的的主要逻辑电路的示意图;
图21是表示第五实施例中的乘法器的示意图;
图22是表示第六实施例中的乘法器的示意图;
图23是表示第七实施例中的乘法器的示意图;
图24是表示第八实施例的乘法器的示意图;
图25是表示第九实施例的加法器的示意图;
图26是表示第十实施例的加法器的示意图;
图27是表示第十一实施例的加法器的示意图;
图28是表示第十二实施例的2位加法器的示意图;
图29是表示第十二实施例的加法器的示意图;
图30是表示第十三实施例的加法器的示意图;
图31是表示第十四实施例的乘法器的示意图;
图32是表示第十四实施例的另一乘法器的示意图;
图33是表示第十七实施例的加法器的示意图;
图34是表示第十七实施例的另一加法器的示意图;
图35是表示第十八实施例的加法器的示意图;
图36是表示第二十实施例的乘法器的示意图;
图37是表示第二十一实施例的DSP的示意图;
图38是表示第二十一实施例的运算时间关系示意图;
图39是表示第二十二实施例的接收电路的示意图;
图40是表示第二十二实施例的卡式发射/接收单元的示意图;
图41A到41D是用于解释常规加法器的示意图;
图42A到42C是用于解释常规CLA电路的示意图;
图43是表示适用于组件CLA的常规加法器结构实例的示意图;
图44是表示常规加法器的结构实例的示意图;
图45是表示常规加法器的结构实例的示意图;
图46表示常规乘法器的结构实例的示意图;
下面将利用附图详细介绍本发明。
〔第一实施例〕
根据这一实施例,通过利用将7个8位数据序列相加的运算作为一个实例,来介绍若干多位数据的相加方法。
参阅表示这一实施例的图1。在这一实施例中为了将7个8位数据序列相加。通过首先将在各个位上的7个8位数据序列加在一起,执行第一加法步骤。下面详细介绍这种加法的构成以及利用具有输出功能的组件11进行计算,这种输出功能即体现为在以二进制方式输入n个输入的过程中输出多少高电平的数据(这种二进制在图1中用S(pq)表示,p:各位上的权,q在S位的权)。
在下文中,具有这种功能的组件11被称为数字检测器并缩写为ND。在图1中,一个ND11组件由一方框表示。在每个框中的斜线(/)的左侧和右侧的数字分别表示的输入(In)和输出(Out)的数目。输出的数目是由输入的数目确定的并且用Out=〔logz(In)〕来表示,其中〔a〕是小于a的最小整数Z。
根据这一实施例,根据用于以并行方式进行第一加法步骤的所有ND中的最慢一个ND的速度决定运算速度的。由于在这里运算速度总是相同的,它由一个ND的运算速度来决定。在这一实施例中,数据序列为8位并使用8个ND。由于对于将7个8位数据序列进行加法运算,故这里对ND最大形成7个输入(点)。
由于在加法的一般运算中产生进位,由于进位值的传送使运算速度被降低。然而,这一实施例具有特点是由于没有以进位并行方式进行加法将各数据加在一起,使得其能够增加运算速度。尽管这一实施例仅表示将7个8位数据序列相加的实例,应当理解,本发明并不局限于这一实例,在若干多位数据中各种不同倍数都是允许的。
在此之后,通过执行将以二进制方式代表的8个所有相加结果进行相加的第二加法步骤,可以高速得到预期的相加结果Q。
下面介绍上面的ND。首先在图2中表示了具有五输入(A、B、C、D和E)的多数逻辑电路的电路示意图。该五输入多数逻辑电路具有的逻辑关系为,其中当在五个输入中有三个或更多个输入为高电平时,输出为高电平。在Boolena Algebra符号表示法中,其可以用A(B+C)(D+E)+C(B+E)(A+D)+E(A+B)(C+D)来表示,并且其能够易于由AND21和OR22构成的CMOS电路构成。尽管这里使用五个输入,很明显能够扩展到总共n个输入。
参阅图3A,该图表示一个通过利用若干5输入多数逻辑电路31来判定在m位中的n位是否为真的电路,其中输出Fj(X1…X7)代表当输入的数字等于或大于i时输出为高电平。
图3B表示用作一ND的电路,是通过将与图3A中的电路相对应的阵列32的输出连接到一用于将该输出数据改变为3位的二进制数字的二进制代码的电路33构成的。在这一实施例中,所示输出实例是假设在七位中有五位为真。尽管在这里解释的是包含一CMOS电路的一个ND作为ND的实例,但本发明并不局限于此,具有上述ND功能的电路都可以采用。
〔第二实施例〕
在这一实施例中,提供的实例是通过增加第二加法步骤的速度来增加在第一实施例中的加法的运算速度。
参阅图4,该图表示这一实施例中的加法器的结构。如在这一图中所示,利用在第一实施例中的的ND得到的3位输出数据的非公共位上的相加结果可以被综合到一10位数据序列中。下面利用图4中的实例将进行介绍。
在这一图中,由椭圆框包围的各位置处的3位输出数据可以总和到10位数据序列A中,这是因为它们没有公共位(当将3个相加结果综合时,存在一些位没有数值,并且它们被设为0,在这一实例中,第一位被设为0)。重要的是,在该电路中进行处理时,在这种处理过程中仅利用线路不进行运算,尽管它被处理作为关于它的算法的一个步骤。
在这一步骤中,8个相加的结果可以被变换为3个10位数据序列。延迟时间是那样小,以致与其它步骤相比可以被忽略。最后,通过将3个10位数据序列相加,可以得到最终的运算结果。由于在图4的实例中使用了3个10位数据序列,借助如图5所示的仅有两级的全加器的通道可以得到最终的相加结果和可以高速将若干多位数据相加。
下面介绍用于进行通用计算的这一实施例,其中将m个数据块最大n位的数据序列相加。由各ND输出的相加结果具有最大〔Log2m〕位,因而能够被变换为最大〔Log2m〕(n+〔Log2m〕)位的数据序列。最后通过将各〔Log2m〕(n+〔Log2m〕)位的数据序列相加,可以得到最终的运算结果。全加器通道级的数目可以由表达式〔Log2〔Log2m〕〕来表达,其中〔a〕是大于或等于a的最小整数。由上述表达式可看出,全加器通道级的数目可以保持很低,即使多位数据序列的数目变得较高的情况下。
〔第三实施例〕
在这一实施例中,将解释多位数据的乘法。尽管下面是通过一8×8位乘法器来进行介绍的,但能扩展为通用的m×n位乘法。
假设X×Y=Q,其中X(X7X6X5X4X3X2X1X0)是被乘数,Y(Y7Y6Y5Y4Y3Y2Y1Y0)是乘数。由于对于X和Y两者十进制数中最大值是28-1,得到Q<(28-1)2<216-1的表达式,以及Q用最大16位来表示。对于最大位得到表达式Q<(2m-1)(2n-1)<2m+n-1,以及Q用最大m+n位来表示。
如图6所示,首先产生一个部分乘积XiYj。尽管像一般的CMOS乘法器一样,通过在被乘数X的每一位Xi和乘数Yi之间取AND逻辑可以计算一部分乘积,为了简化解释在这一实施例中如图7所示,使用了具有公用栅极nMOS晶体管。此外,使用nMOS晶体管仅作为实例,很明显可以采用其它传输门MOS晶体管。
最好,在起始状态应将Xi设定为低电平(0),Yj设定为高电平(1),并且所有的输出设为0。然后,在将Yj设定到低电平状态之后,输入Xi。在进行一次运算时,在这种状态下,将高电平(1)或低电平(0)输入。换句话说,当Yj被设定为高电平时,一高电平信号输入到栅极,并且该nMOS晶体管被导通,产生如下8位数据序列:
XxYj=(X7Yj,X6Yj,X5Yj,X4Yj,X3Yj,X2Yj,X1Yj,X0Yj)=X(X7,X6,X5,X4,X3,X2,X1,X0)
当Yj被设定为低电平(0)时,将低电平信号输入到门电极,因此,nMOS晶体管被关断,在起始状态下产生8位数据序列(0,0,0,0,0,0,0,0)。这样就使得能够在一尺寸小于一般AND电路的电路中,形成用于X×Y的AND电路。然而,一般的AND电路可以用于此运算。
然后,关于图6中的部分乘积的各个位上的数据利用每位的ND相加在一起。由于在这一步骤中以并行方式进行加法,适合于高速运算。在m×n乘法器电路中使用(m+n-1)个ND。输入到各ND上的输入最大的(点)数目为Min(m,n)。如图6所示,在8位乘法器的实例中使用了15个单元的ND。形成最大8个输入(进行X7Y0+X6Y1+X5Y2+X4Y3+X3Y4+X2Y5+X1Y6+X0Y7的运算)。
对于通过在一输入一输出配置中通过线路可以替换各ND的地点当使用ND时,适用相应数目的ND。假如忽略可被替换的ND,则使用(m+n-3)个ND。此外,假如仅对除去可以利用双输入双输出的HA(尽管HA是一种ND,其还是与ND被区分)取代ND的地点以外的三或更多个输入使用ND,可以使用(m+n-5)个ND。
通常,对于3或更多的输入而言,由于在这种状态下特别可能产生的进位值的传送,加法运算变得复杂和运算速度降低。由于这一实施例具有的特征是将数据加在一起时以没有进位的方式进行运算,可以实现高速运算。图8是图6所示组件的方块图。为了简化,略去了作为输入单元的部分乘积形成单元。该部分乘积形成单元可以用AND电路替代。在这一附图中,用方框表示ND。
通过执行用于对以二进制方式表示的所有(m+n-1)个相加结果进行相加的第二加法步骤,在此之后,高速得到预期的乘法结果。
为了进一步降低加法运算的数字,以与第二实施例相同的方式引入下一运算方法。
换句话说,由(m+n-1)个ND输出的相加结果具有最大值为〔Log2(Min(m,n))〕位,因此,每次在最终乘法结果的(m+n)位中仅使用各个位中的一部分。在图6所示实例中,MD的输出最大为4位,最终乘法结果为16位。因此,在由(m+n-1)ND输出的相加结果中的没有公共位的相加结果可以总和到一为(m+n)位的数据序列。
利用图6中的实例解释上述运算。由于在用椭圆包围的各位上由ND输出的各相加结果没有公共位,它们总和到16位数据序列B中(假如在一个位上没有数值,当由ND输入4个相加结果时,将其设为0,在这一实例中,将2到4、8、12、15和16的各个位设定为0)。重要的是,在电路中进行处理时,在仅利用线路进行这种处理的过程中不执行运算,尽管在其它的算法中被处理作为一个步骤。
在这一步骤中,Log2(Min(m,n))(m+n-1)的相加结果可以变换为〔Log2(Min(m,n))〕(m+n)位的数据序列。延迟时间是那样短,以致与其它步骤相比可以被忽略。最后,通过将〔Log2(Min(m,n))〕(m+n)位的数据序列相加,可以得到最终的运算结果。
由于在图6和8的实例中使用16位的数据序列,利用如图9所示的仅为2级的全加器通道就可以得到最终的乘积结果。一般来说,利用与第二实施例的相同符号即利用〔Log2〔Log2(Min(m,n))〕〕就可以表达全加器通道级的数目。
参阅图10,该图是横轴为Min(m+n),纵轴为全加器通道级的数目的曲线图。如由这一曲线图所示,即使m和n增加,由于全(加)法器通道级的数目的二次取Log(对数),使全加器通道级的数目可以保持很低。换句话说,即使位数增加,也可以保持高速运算。
图11中表示了上述运算方法的流程图。
在步骤S111,利用AND电路或开关产生一部分乘积XxYj。接着在步骤S112,利用ND将所产生的部分乘积XYj的各个位上的数据以并行方式加在一起。接着在步骤S113,将在步骤S112的相加结果中的非公共位的数据位总和到一个数据序列中。然而,如上所述,与这一步骤对应的器件没有进行运算,正像在ND的输出和加到后级中的全加器的输入之间形成连接一样。最后在步骤S114,利用全加器将由在步骤S113中总成的数据相加。
然后,对于用于执行上述运算方法的实际乘法电路,例如参照图12中在这一实施例中用的ND进行解释。被乘数输入单元71用于输入一被乘数X。乘数输入单元72用于输入一乘数Y。部分乘积产生电路73是一如图所示的AND电路或一开关,以便产生部分乘积。如上所述,利用其它结构的电路也可产生部分乘积。ND74用于将在若干多位数据(在这一实施例中为各个部分乘积)的相同位上数据以并行方式加在一起。
参阅图13,该图表示一示有七输入的ND的典型结构图。在这一实施例中使用的ND具有多数逻辑电路组件131-A、131-B、131-C和一反相器132,它们的结构与第一实施例中的对应部分不同。输入到连接端134和135的信号与输入到输入端133的信号相同。连接端136、137和138用作输入作为在前级中的多数逻辑电路组件的输出信号的终端。在图B中,2C和4C代表对应连接到输入端136,137和138的电容器数值,假设C代表连接总输入端的电容。在这一图中,各信号输入到多数逻辑电路组件131-A、131-B和131C上。
例如,当一信号输入到七输入的多数逻辑电路组件131-A上时,假如存在多数数据为HIGH LEVEL(高电平)或者假如在7个输入中有4个或更多个输入为HIGH LEVEL,则由组件131-A的输出为HIGH LEVEL。以同样的方式,例如在11输入的多数逻辑电路组件中6个或更多的输入是HIGH LEVEL,以及假如在13输入的多数逻辑电路组件中7个或更多个输入是HIGH LEVEL,则输出是HIGH LEVEL。在表1中,S3代表7输入的多数逻辑电路组件对于每个HIGH LEVEL输入计数值的输出值。
接着如在图13中的所示,7输入的多数逻辑电路组件131-A输出利用一反相器被反相,并被输入到多数逻辑电路组件131-B的加权输入端136。多数逻辑电路组件131-B的电路结构表示在图14中。在这一图中,电容器212的电容值大约4倍于连接到另一输入通道的电容202。假设C是连接到输入端的通道的电容值,该电路是一结构为11输入的多数逻辑电路,其中共同连接有11C,以及来自加权输入端的信号输入到它们之中的4个C上,与此相同的输入到131-A组件上的信号还输入到其它7个连接端。
例如,假若在7个输入中有4个或更多个输入为HIGHLEVEL,如上所述,LOW LEVEL输入到加权的输入端。假如在输入到不同于加权的输入端的输入端上的信号中在7个输入中6个或更多个输入是HIGH LEVEL,则11输入的多数逻辑电路确定做为总数中的多数并输出HIGH LEVEL。假如在7输入中有4或更多个以及5或较少个输入为HIGH LEVEL,就不能确定一个多数并输出LOW LEVEL。假如在7输入中3或更少个输入为HIGH LEVEL,则HIGH LEVEL输入到加权的输入端。假如在7输入中有2或更多个以及3或更少个输入是HIGH LEVEL,会有4加2或4加3即6或更多个输入,因此,确定是一多数并输出HIGH LEVEL。假如一个或更少个输入为HIGH LEVEL,会有4加0或4加1即5或更多个输入并输出LOW LEVEL。
在表1中,S2代表对于每个HIGH LEVEL输入计数值的多数逻辑电路组件131-B的输出值。对于多数逻辑电路131-C,通过将对于多数逻辑电路131-A和131-B的输出的反相信号在运算前输入到具有4倍电容值和两倍电容值的两个加权输入端,可以得到如在表1中S1表示的输出。
根据这种电路结构,在表1中所示的两个或更多个输入中的HIGH LEVEL输入的数目可以变换为,在要输出的3位中的二进制数目。
在图15中表示了多数逻辑电路组件的典型电路图。这一多数逻辑电路组件包括:复位开关201、电容器202、信号变换开关203,读出放大器205、在读出放大器中的反相器206、在读出放大器中的第二反相器204,用于使反相器206复位的第二复位开关207、复位电源208、第二复位电源210、输出端211、在共同连接的电容器202的端部处的附加电容209。在图15中表示一种典型情况,而本发明并不限于这种结构。
图16是图15中的电路的运算时间关系图。参阅这一图,下面介绍运算过程。首先,利用脉冲ФRES使在电容202的一端上的连接端复位。对于复位电压,例如假若电源电压为5伏系列,使用该电压一半2.5伏复位。然而,复位电位并不限于此,而是可以使用其它电压。几乎同时,通过使复位开关207导通,将在读出放大器中的反相器206的输入端复位。这时,选择一个数值作为复位电压,其接近用于使反相器的输出反相的逻辑反相电压。假如复位脉冲ФRES被隔开,电容202的两端保持各自的复位电位。
接着,由于转换脉冲ФT的作用转换开关203导通时,信号转换到电容202的一端,以及在电容该端处的电位例如由2.5伏的复位电压变到等同于一低电平的0伏或等同于一高电平的5伏。假设C代表电容202的电容量,Co代表附加电容的电容值,以及N个单元的电容器202并联,共同连接到电容202的一端的各连接端作为一个输入由一接近反相器的逻辑反相电压的数值变化列因电容分别而形成的±〔2.5C/(Co+CN)〕×1V1的数值。
当反相器206的输入端电压由逻辑反相电压变化时,反相器206的输出端电压按照它反相变化。当按照N个输入(点)输入各个信号时,N个电容分压输出的“和”输入到反相器206的输入端。假如在N个输入(点)中输入多数个HIGH LEVEL信号,反相器206的输入端将逻辑反相电压移到一较高的电位,并且HIGH LEVEL输出到读出放大器的输出端211。假如输入多数的LOW LEVEL信号、输出LOW LEVEL。通过利用上述结构,图15中的电路用作一多数逻辑电路,用以输出以两个或更多个输入的多数决定的逻辑值。
尽管在图13中表示7输入的ND作为一个实例,应当理解,并不限于这种结构,而是可以很容易地扩展到多输入的结构。此外,可以将一些锁存电路灵活地连接在用于流水或处理的多数逻辑电路中,以便构成进一步提高运算速度的结构。
由ND所需的多数逻辑电路组件的数目由〔Log2n〕来表达。其中n是到各ND的输入(端)的数目。对于到各ND的输入(端)的数目,在一m×n的乘法器中适合的数值从1到Min(m,n),并且在这样一个ND处乘法器的运算时间变得最长,这一ND的输入计数值为最大输入(点)的数目的Min(m,n)。这是因为多数逻辑电路极的数目随输入(点)的数目n按照〔Log2n〕增加。然而,很明显,当位数增加时,由于级数的增加是按照Log函数方式,所以级数不会显著增加。
由于运算以并行方式进行,其按照由具有最大输入(点)数目Min(m,n)的各ND的运算速度运算终止于若干ND74。对于较早终止运算的ND,最好连接到一锁存电路78,以便调节时间关系,尽管措施并不限于此。
这种ND结构由于并行运算故运算速度更高,以及由于所需元件较少,ND消耗功率较低,所以在上述实施例中的运算方法的特性可以明显改进。
有一个步骤用于将由若干ND输出的数据根据一个算法总和到一个数据序列中,但是如上所述在电路中并没有进行处理,因此也就没有与图12中这一步骤相对应的电路。在图6中所示的8×8位乘法的实例中,全加器75、76和77是16位或更少位的加法器。在图12中,使用8×8位乘法器,因而,需要3个加法器并且将它们按两级配置。尽管是将一般的预作准备进位(CLA)型全加器用作各加法器,但应理解,本发明并不限于此。
此外,将锁存电路79连接在各加法器之间,在所谓的流水线法中的第二级内的加法器的运算过程中,利用第一加法器的运算,以便实现高的运算速度,尽管本发明并不限于这种方法。在这一8×8位乘法的实例中,运算结果输出单元80以16位方式输出运算结果。
由于具有少的数量的元件、低功率消耗和以并行方式运算,上述乘法器结构使得能够形成一种高速的乘法器。
〔第四实施例〕
下面介绍在ND部分的另外一种结构,用于以并行分批方式进行在第一到第三实施例中的加法运算。
图17表示用于这一实施例的ND的典型结构图,包括并行运算电路组件401和锁存电路12。图18表示并行运算电路组件401的电路图。在这一图中,连接端501、502和503分别是第一加权输入端,第二加权输入端和第三加权输入端。每个输入端具有一个连接到另一输入端通道的且分别具有几乎为一倍、二倍或三倍电容值的电容器。在图19中表示了这一实施例的运算时间关系图。并行运算电路组件401由脉冲ФRES或ФT控制。锁存电路12由脉冲ФRH控制。
首先参阅图18,解释基本运算。将一输入信号锁存在锁存电路12-A中。这时,利用脉冲ФSET将等同于一低电平的0伏施加到加权的连接端501和502以及将等同于高电平的S伏施加到加权的连接端503。接着利用复位脉冲ФRES使电容202上的电压复位到各自的复位电压。
然后,当利用转移脉冲ФT使转移开关203导通时,一个信号转移到电容202的一端,在电容器的一端的电位例如变到一低电平或高电平。公共连接的电容202的一端的电压按照对于一个输入的电容分压值变化。当反相器206的输入端电压由逻辑反相电压变化时,反相器206的输出端电压对其响应产生反相变化。当每个信号响应于N于输入而输入时,电容分压输出的N个“和”输入到反相器206的各输入端。
在这一实施例中,各反极性信号输入到具有3位电容值的加权连接端503以及具有1倍半和2倍电容值的加权连接端501和502上,因而,在公共连接的电容器2的一端处的电压变化量彼此是偏离的,连接到与加权输入端不同的各个输入端的电容2具有几乎相同的电容值。因此,假如在n个输入中的多数高电平信号输入时,反相器206的输入端将逻辑反相电压移到更高的电位,HIGH LEVEL输出到读出放大器的输出端211。假如输入多数的LOW LEVEL信号,输出LOW LEVEL。
通过利用上述结构,图18中的电路可以用作一多数逻辑电路,用以输出两个或更多个输入中的多数输入具有的逻辑值。图17表示作为一实例的7输入的ND。
在这一图上,一些信号输入到多数逻辑电平组件401。假设C是用于与输入端通道相连的电容的数值,可以考虑按照13输入的多数逻辑电路作为多数逻辑电路组件401,该电路具有的结构为其中将高电平信号由加权的输入端输入到在公共连接的13予C中的3个C上,将低电平信号由该加权输入端输入到另外的3个C上,以及将来自402的信号输入到另外7个连接端上。
因此,当输入一输入值时,假如高电平信号的数目为多数,换句话说,在7个输入中有4个或更多个HIGH LEVEL输入,则由多数逻辑电路组件输出HIGH LEVEL。在表1中,S3代表对于每个HIGH LEVEL输入计数值的13输入的多数逻辑电路组件的输出值。接着利用脉冲ФLAT1和ФLAT2将输出信号锁存在锁存电路12中。例如,假若在7个输入中有4或更多个输入为HIGHLEVEL,HIGH·LEVEL输入到加权的输入端501以及LOWLEVEL输入到加权输入端502和503。
假如,在输入到不同于加权输入端的输入端的信号中,7个输入中有6个或更多个输入是HIGH LEVEL,则13输入的多数逻辑电路确定其为总数中的多数并输出HIGH LEVEL。假如在7输入中有4或更多个和5或更少个输入为HIGH LEVEL,就不能确定什么作为多数,并输出LOW LEVEL。按照同样的方式,通过转换输入信号的极性载开关403改变输入的加权连接端上的信号,可以得到表1的输出。
根据这一电路结构,高电平输入信号的数目可以在极小尺寸和低功耗的电路中变换为在表1所示的2或更多输入之中的要以三位输出的二进制数字。其它的介绍与对第三实施例的介绍相同。但是这种结构由于并行运算,使之可以进一步降低元件的数目,降低在小尺寸的电路中的功耗,以及构成调整制半导体器件。
〔第五实施例〕
下面介绍用在第一到第四实施便中进行并行分批运算的ND部分中的其它结构。
这是一种运算方法,其中在第三实施例中的15个ND中将两个或更多个ND进行总和。
在图20中表示根据适用于于2×2乘法器的2×2多数逻辑电路的一个实例。换句话说,它是在第三实施例中如图13所示的第一级中的一个多数逻辑电路。将关于第一位的数据(在20位上的X0Y0)输入到单位电容C上。关于第二位的两个数据块(在21位上的X1Y0和X0Y1)输入到每个具有2倍电容2C的连接端,以及因此一个输入被看作为2个输入。另外,将关于第三位的数据(在22位上的X1Y1)被加权成22,以及一个输入被看作为4个输入。
其它的介绍与对第一到第四实施例的介绍相同,并且在每个ND具有4输入的情况下以二进制方式输出高达7个的输入。通过利用这种加权方法,可以更有效地利用该并行分批加法功能。
例如,在第三实施例中的8×8位乘法器中,将用于在其权为0、1、2和3的各位上的数据相加的ND总和到图21所示的ND91中去,以及将其权为(4.5.6),(7.8.9),(10.11.12.13.14)的各位上区域总和到每个区域中(在图21中的ND92到94)。
尽管输入的数目和输出的数目在图21中利用ND的数目来表示,假如计数能够高达56个输入,就可以仅使用ND来表示。各个ND产生6位输出0假设A、B、C和D是具有按增长次序排列的各位的6位数据序列,利用在第三实施例的图11的流程图的步骤S113即用于形成新的数据序列的步骤,可以将A和C总到数据序列D中,将B和D总和到数据序列2中。
因此,将仅进行一个附加的运算P+Q,换句话说,在这个实施例中,按照两步执行8×8位乘法;一个步骤是在ND中进行并行分批加法,一个步骤是仅一次进行16位加法。
其它的介绍与对第三和第四实施例的介绍相同,但是由于并行运算和较少的附加级,这种结构的乘法电路使得能够进一步降低元件的数量、降低小尺寸电路中的功耗,以及构成高速的乘法器。
尽管在这一实施例中的总的进行加权处理的实例中,邻近的各位被总和,但本发明并不限于这种方法,任何更有效的方法都可以灵活地采用,例如不连续的加权处理(例如,当在20位上和22位上的数据被总和输入时)或者将一位上的数据划分以对于不同ND具有不同权的方式将其输入(例如,将28位上的数据划分为两类并将它们输入到不同的ND)。
〔第六实施例〕
尽管在第三到第五实施例中,有一些ND在用于以并行方式将各个的部分乘积相加的一个级中,以及有一些全加器在后一级中,各ND还可在ND之后进行连接。参阅图22,通过提供一32×32位乘法器来进行解释。该图围绕一32输入的ND表示。在32输入的ND中,形成7位输出。对于较低的位,对于16-31输入的ND形成6位输出,并且这些输出可以认为是各ND的运算结果的部分乘积。
因此,通过再次使用ND,可以形成3位输出。在这种状态下,按照数据顺序,数据可以被分类为3个64位数据A、B和C以及仅在两个全加器就能够进行运算。这种方法对于具有很多位数的运算是特别有效的,尽管其要取决于加法器和ND的性能0此外,当这种方法制与在第五实施例中介绍的被加权的ND综合使用时,不存在什么问题。
〔第七实施例〕
在图23表示了这一实施例的乘法器。在这一实施例中,对于首先由ND输出的(S73、S72、S71、S70)和(S102、S101、S100)进行相加。特别是利用简单的3位加法器,将S73加到S102、S101和S100上。
按照这一步骤的结果,在这一实施例中形成3个16位的数据序列A、B和C,而在第三实施例中形成4个16位的数据序列。因而与第三实施例相比,元件被减少了。
在第八实施例中介绍了将3个数据块相乘的方法。虽然,利用2位数据作为简单的实例能够对其进行解释,当在多位数据中的每个数据的位数不相同时,能够以相同的方式实现该方法。数据块的数量不应限制为3块,它可以扩展到任选的很多的数据。
将乘法的数值设定为A(a1,a0),B(b1,b0)和C(c1,c0)。在计算(A×B×C)时,如图24所示产生一部分乘积∑ajbjcx以及通过计算其和可以得到乘法结果。为了形成部分乘积∑ajbjcx,每个AND应当以与上述实施例相同的方式构成。即使对于3或更多数量的数据,部分乘积的运算速度也高,并且可以按并行处理方式形成部分乘积。
接着,对于在这种部分乘积的相同位上的数据进行分批相加。虽然,在图24的实例中,每次是将相同位上的数据加在一起的,但是很明显,像在上述实施例一样介绍的,也可以采用加权和其它步骤。在图24中,由椭圆框包围的各个位上的分批相加输出结果由于没有公共位而被总和到一个数据序列中,导致产生3个7位数据序列,并将它们加在一起,以便得到3个3位数据的乘法结果。
更具体地说,在较低2位(20和21)上的数据不需要在7位数据序列中,并且S00和S10分别是由它们的输出结果。因此,在作为第二步骤的附加步骤中,将3个5位的数据序列相加,使得运算速度更高。
由这些解释可以明显看出,在3或更多的数据序列的乘法中,本发明的运算方法也是有效的,使得利用少的元件数量、低的功耗可以进行高速乘法运算。
〔第九实施例〕
在这一实施例中,通过提供将63个7位数据序列相加,介绍对于至少包括一个负值的若干多位数据的相加方法。
负值用2的补数表示。换句话说,在7位中的最有效的位0代表一个符号,假如被设定为0则为正值,假如设定为1则为负值。一个数据序列X=(X6X5X4X3X2X1X0)用如下表达式表示:
图25表示这一实施例。在这一实施例中,首先,对于7个8位数据列的各个位上的数据,对于这些数据进行分批相加。通过利用ND以与上述实施例相同的方式执行第一加法。由于在这一实施例中,数据序列是包括一特征位的7位数据,故需要7个ND。
在这一加法步骤中以并行方式进行处理,因而运算速度由单一ND的速度确定。由于所有ND的运算速度是相同的,这一运算速度是由单一的ND的运算速度决定的。此外,在这一实施例中将63个7位数据序列相加,因而对于各ND的最大输入(点)的数目为63。
由于在一般的加法中产生进位,由于进位值的传送,运算速度下降。然而在这一实施例中,以并行方式执行分批加法,包括特征位都没有产生进位,所以附加的级可以减少,并实现高速运算。虽然在这一实施例中所表示的实例仅为63个7位数据序列,但本发明并不局限于此,在包含至少一个负值的若干多位数据中,可以为各种不同的位数。
接着,通过执行用于将以二进制方式表示的所有8个相加结果相加的第二加法步骤,高速得到预期的加法结果Q。
下面介绍代表正号和负号的特征位。
假如将特征位设定为1,它代表以2的补数标志的(-1)·26。因而,假如在63个输入中,用n表示1的数字,则-n·26代表该数值。当n等于63时,得到该最小值,并且在这种状态下表达式-63·26=-(26-1)·26保持成立,绝对值没有超过212。当将(SF5,SF4,SF3,SF2,SF1,SF0)设定为n的二进制表示方式,以及(BSF6,BSF5…BSF0)为它的“非”逻辑值时,通过利用这一负值作为2的辅数和第13位作为特征位,得到如下表达式:
因此,由于如下表达式保持成立:
A-|F|=A+F(|F|+F=0,第13位设为0,由于1加1和第14位为零)F应当被相加。
在图25中,利用ND将运算的特征位变换为二进制的符号表示SF5,并且通过取它们的“非”逻辑值产生BSF5。此外,通过对代表7位和第13位的负值的特征位数据的2的补数表示值加1可以产生F。
在其之后,通过执行将二进制方式代表的7个相加结果全部相加的第二加法步骤,可以高速得到预期的加法结果Q。
如上所述,特征位可以像对代表数字的各位以相同的方式进行处理,包括至少一负值的63个7位的数据块通过将其通到各ND被变换为7个6位数据块。对于第7位的各数值1和用于特征位的2的补数变换的第13位没有任何运算如图25中(b)所示可以被合并,这是通过将每一个值加到Son或BSF数据序列实现的。
在这种方法中,第13位可以用作一个特征位:
假设Xij代表第1个数据序列的第(j+1)位,上述计算可以以数字方式表达如下:
因此,当输出大于或等于0时,由上述的表达式可以得到如下的表达式:
换句话说,将1加到要被设定为0的第13位上。
当输出小于0时,
因此,第13位维持为代表负值的1。
在一般的介绍中,第m位是一特征位,以及通过将第m+〔Log2n〕位设定为1和向用于2的补数表示的第m位加1,可以利用多个ND进行N次运算执行加法(减法),这是由于该特征位可以作为与特征位不同的其它数字位等同的各个位一样能够被处理,使得运算更容易。
〔第十实施例〕
下面通过一实例来解释这一实施例,在该实例中提高了第二加法步骤的运算速度,使第九实施例中的加法以更高的运算速度实现。
图26表示这一实施例的加法器的结构。该图表示了将7个包括特征位的8位数据块相加的一个实例,其中将由ND得到的3位输出数据中的没有公共位的加法结果总和到一个11位的数据序列中,利用图26中的实例解释这一运算。对于特征位,它们被认作为2的补数,像在第九实施例中所述的一样,并且来自ND的输出通过一反相器。另外,利用加法器将3位输出数据和由0001代表的数据相加以便增1,然而本发明并不局限于此0由(Q)指示的MSB的1以与对第九实施例相同的方式出现。
在一图中,在由椭圆框包围的各个位上的3位或4位的输出数据可以总和到11位数据序列A中,这是因为它们没有公共位(当3个加法结果总和时,一些位没有数值,它们被设定为0,在这一实全名,第一位被设定为0)。重要的是当在电路中处理时在仅利用线路的这一处理过程中没有进行运算,尽管这种运算被处理作为关于它的算法的一个步骤。
在这个步骤中,8个加法结果可以变换为3个11位的数据序列。延迟时间是那样短,以致与其它步骤比较可以被忽略。最后通过将3个11位的数据序列相加,可以得到最终的运算结果。由于在图26的实例中使用3个11位的数据序列,利用仅以如图5所示的两级形式的全加器的通道就可以得到最终的加法结果,将若干多位数据以高的运算速度相加。
下面按照一般的运算介绍这一实施例,其中将m个数据块的最大n位的数据序列相加。由n个ND输出的加法结果具有最大为〔Log2m〕的位数,因而,其能够被变换为最大为〔Log2m〕(n+〔Log2m〕-1)位的数据序列。最终,通过将〔Log2m〕(n+〔Log2m〕-1)位的数据序列相加,可以得到最终的运算结果。全法器通道级的数目可以由(Log2〔Log2m〕)来表示。由上述表达式可以看出,即使多位数据序列的数目变得很高,全加器通道级的数目也可以保持很低。
特征位通过各小的全加器。假如它们单级的形式配置,得到〔Log2〔Log2m〕〕+1。假如没有将各全加器连接到该地点,而是特征位利用来指示,会有〔Log2m〕+1个数据序列,假设将其中仅有位为1的数据序列最后相加,全加器通道级的数目可以用〔Log2〔Log2m〕〕+1来表示。在任何情况下,即使位数增加,全加器通道级的数目也可以保持很低。
(第十一实施例)
在这一实施例中,通过提供一个将63个7位数据序列相加的实例,下面介绍用于包括至少一个负值的若干多位数据的相加方法。
在这一实施例中利用1的补数表示一个负值。1的补数具有的优点是由于仅对于一数字位应当进行反相,预处理可以易于简化。
参阅图27,该图表示了这一实施例。在这一图中,为了将63个7位数据序列相加,将各个位上的数据加在一起。利用63输入6输出的ND实行这种加法。
在这个实施例中以并行方式进行在加法步骤的处理,因而,运算速度由每个ND的运算速度决定。在这一实施例中,因为将7位数据序列相加,使用7个ND。此外,由于在这种运算中将63个7位数据相加,到各ND的输入量的数目等于63。
由于在一般的加法中产生进位,由于进位值的传送,运算速度降低。然而在这一实施例中,分批加法以并行方式进行没有进位,所以加法级数可以降低,可以实现高速运算。虽然在这一实施例中,仅表示将63个7位数据相加的实例,但本发明并不局限于此,在包括至少一个负值的若干多位数据中可以有各种不同的位数。
顺序地,通过执行用于将所有以二进制方式表示的8个相加结果进行相加的第二加法步骤高速得到预期的加法结果Q。
虽然对特征位的介绍与第九实施例相同,但加法需求一定数量的特征位(负的数据序列的数目),以便将1的补数变换为2的补数。特征位的数目对应于由(SF5,SF4,SF3,SF2,SF1,SF0)表示的数据,这些数据在图27中用(a)表示。它还是来自ND的输出,并且利用反相器产生它的“非”逻辑值,以便产生数据序列BSFs。(b)指示1作为表示负号的特征位的1的站数的符号表示。对于它的ND,可以使用在图13或图17中所表示ND。
(第十二实施例)
在这一实施例中,通过将在第十实施例中的8个ND总和到若干单元中进行运算。在图28中,通过提供X(用X1X0表示)+Y(用Y1Y0表示)的2位加法器的实例,下面介绍一多数逻辑电路。
将第一位X0和Y0上的数据输入到一单位电容上。将在第二位上的两个数据块输入到每个具有2倍电容量2C的连接端,因此一个输入看作为二的输入。
例如,在第十实施例中,如图29所示,用于将权为0、1和2的各个位上的数据相加的各ND可以总和到一个ND91中,以及按照同样的方式在权为3、4和5的各个位上的区域总和到一ND92中。虽然,输入(点)的数目和输出(点)的数目在图23中是用ND的数目来表示的,假如计数可以高达49个最大21个输入的数据块,就可以仅使用ND。各个ND产生6位输出。在ND91中,将在位0上的数据输入到单位电容C,将在第一位上的数据输入到1C,将第2位上的数据输入到(22=)4C。
此外,可以将特征位(第8位)和一数字化(第7位,MSB)(最重要的位)综合。在图29中,将特征位经过反相器输入到ND93。虽然在上述实施例中,它通过在一经过ND的通道之后的用于形成“非”逻辑值的反相器,但任一种次序都能够被使用。然而根据这一实施例,设定各ND的总容量为(2n-1)C(n是一整数)。
此外,将作为2的补数的(00010)加到要作为一个权输入电容2C的特征位。数字位输入到电容C。如图29所示,在第11位上每个输出被加到1作为2的补数,并且在一次中可以删去2个数据序列,因而,仅有2个数据序列应被相加。通过利用加数,处理变得可采用更多的并行方式进行,这有助于增加运算速度、减少所需元件和功耗。
尽管在本实施例中,相邻的各个位被总和到为了介绍一般的加权而提供的实例中,本发明并不局限于这种方法,可以灵活地采用各种更有效的方法,例如不连续的加权(例如,在20位上和22位上的数据被总和以便输入时)或者将在一个位上的数据划分,以将数据对不同的ND利用不同权输入。
(第十三实施例)
在这一实施例,通过提供一将7个8位的数据序列相加的实例来介绍用于若干多位数据的相加方法。
参阅图30,图中表示了这一实施例。在这一实施例中,首先,对于要进行相加的7个8位的数据序列的各个位上的数据进行分批相加。这种相加利用各ND。
按照像第二实施例一样的方式,这一加法步骤的运算速度是由单个ND的运算速度决定的,需要用8个ND,对各ND的输入(端)的最大数目等于7。此外,这一点也与上述实施例相同,即以并行方式执行加法没有进位,这使得能有更高的运算速度,若干多位数据可以为各种不同的位数。
通过顺序执行用于将以二进制方式表示的全部8个加法结果进行相加的第二加法步骤,高速得到预期的加法结果Q。
通过不是将所有的数据简单地相加,而是在执行这一加法步骤中通过若干数据总和为一个数据,可以更有效地进行处理。从这个观点出发,注意在图30中的分批加法结果MSBS,对每一个结果得到一个表达式Si2(0≤i≤7),并且没有公共数据,因此,对于该数据序列得到如下的表达式:
在连续的位上和LSB(最低有效位)的各个数据,也可以以相同的方式用单一的数据序列来表示。对于产生这些数据序列的步骤,无需进行运算。
下面将一般介绍的方式解释上述步骤。在第三位上的I4(I=T,U…Z)的分批加法产生3个数据块S30、S31和S32,以及各自的位是3+0、3+1和3+2。对于第m位(m≤1)的分批加法产生在第(m+n)位的数据,〔Log2(IN)〕≥n≥o(IN:数据计数值),2≥n≥o(IN=7))。对于第m’(m’≠m)位的分批加法以相同方式产生第<m’+n位的数据。由于m+n≠m’+n,在该数据中没有公共位。因此它们可以无需任何运算综合到一个数据中。与此相似,为使运算更有效,在图30所示的实例中,各数据可以总和到3个数据A、B、C中,与第二实施例相同,即当在电路中进行处理时,在这一处理过程仅通过线路即可无需进行运算,尽管该运算作为在其算法的一个步骤被处理。
在这一步骤中,加法的8个结果可以被变换为3个8位数据序列。延迟时间是那样短,以致和其它步骤相比可以被忽略。最终,通过将3个8位数据相加,可以得到最终的加法结果。由于在图30的实例中使用3个8位数据序列,利用在图5中表示的仅以两级形式的全加器的一通道,可以得到最终的加法结果,以及可以将若干多位数据高速相加。
下面按照一般运算方式介绍这一实施例,其中将m个数据块的最大n伏的数据序列相加。由n个ND输出的加法结果具有最大为〔Log2m〕的位数,因此它能够被变换为〔Log2m〕个数据序列。最终,通过将〔Log2m〕个数据序列相加,可以得到最终运算结果。全加器通道级的数目可以由〔Log2〔Log2m〕〕来表示。由上述表达式可以看出,即使多位数据序列的数目变得更高,全加器通道级的数目可以保持很低。很明显,这种有效的方法可以适用于两个或更多个数据块。
(第十四实施例)
在这一实施例中,通过提供在图31中的实例来介绍在多位数据之间的乘法。通过提供一(8×8)位乘法器的实例下面进行介绍,并且它能扩展到一般的(m×n)位的乘法。
假设X×Y=Q,其中X(X7X6X5X4X3X2X1X0)是被乘法,Y(Y7Y6Y5Y4Y3Y2Y1Y0)是乘数。如图3所示,Q用最大16位表示。Q具有最大m+n位,对应于m×n位的乘积。
如图31所示,首先产生部分乘积。尽管是通过在被乘数X的每位Xi和乘数Yi之间取AND运算像一般的CMOS乘法器一样计算出部分乘积,但其它方法例如在第三实施例中所述的方法也是可以利用的。
按续址,在一次当中利用各ND对于每一位将如图31所示在各个位上的部分乘积之和相加。由于在这一加法步骤中以并行方式进行处理,适合于高速运算。在一(m×n)位的乘法电路中,需要(m+n-1)个ND单元。到各ND的输入(点)的最大数目等于Min(m,n)。在图31中所示的(8×8)位乘法器的实例中,需要15个ND。构成最大8个输入(点)(用于运算X7Y0+X6Y1+X5Y2+X4Y3+X3Y4+X2Y5+X1Y6+X0Y7)。
当将各ND用于这样一些地点时,即在该地点各ND可以用以单输入单输出配置通过线路被替换时,该ND的数目是适合的。假如略去可替换的各ND时,则使用(m+n-3)个ND。此外,假如各ND仅用于3或更多的输入,除了这样一些地点以外,即在这些地点各ND可以利用2输入2输出的HA替代(尽管HA是一种ND,但和HD区分开),可以使用(m+n-5)个ND。
一般对于3或更多的输入,加法运算变得很复杂以及由于进位值的传送使运算速度被降低,而在这种状态下是特别可能产生进位的。由于这一实施例具有的特征是没有进位将数据加在一起进行运算,实现了高速运算。
在其之后,通过执行用于将以二进制方式表示的所有(m+n-1)个加法结果相加的第二加法步骤,高速得到预期的乘法结果。
为了进一步降低相加的(次)数,按照第十三实施例重新配置数据。利用图32的实例来解释。8位的部分乘积的和等于4(位)。由于相对于S73的其它分批加法的3位输出,没有数据满足该条件。因此,它被认为是单一数据(A)。因为对于S72,第4到第12位的部分乘积是3位数据,并且对于S72有一些不具有公共位的数据。它对应于由Si2(3≤i≤11)表示的9位数据(B)。按照相同的方式,可以将各数据总和到一个例如Si1和Si0的数据序列中,并且最终可以将数据重新配置成4个数据块(A,B,C,D)。如上所述,在电路中处理时,在这种处理过程中仅利用线路而没有进行运算,尽管该运算已被处理作为关于其算法的一个步骤。
延迟时间是那样短,使得与其它步骤相比可以被忽略。在这一步骤中,可以将加法结果的(m+n-1)个数据块变换为〔Log2(Min(m,n))〕个数据(序列)块。通过将〔Log2(Min(m,n))〕个数据(序列)块相加作为最后处理,可以得到最终的运算结果。
由于在图32的实例中使用了4个数据块,利用如图9所示的以仅为两级形式的全加器通道可以得到最终的乘积。一般情况下,全加器通道级的数目可以按与第三实施例相同的方式用〔Log2〔Log2(Min(m,n))〕〕来表示。因此,即使m和n增加,按照图10中的曲线,全加器通道级数可以保持很低。换句话说,即使相乘的位数增加,由于使用较少的元件和较低功耗可实现高速运算。此外,为了将S73和S72相加,由于对第11或更高位(S73+S112 S102 S92 S82)进行相加,可以使用4位(5位输出,包括一进位)加法器。这种运算方法可以适用于具有图12所示相同结构的乘法电路。即与用于第三实施例的相同的电路。
根据这一实施例,可以采用与图13所示相同结构的ND。利用这种电路结构,可以将HIGH LEVEL,输入的数目变换为在图13表1中所示的若干输入的,要按三位输出的二进制数。在这一电路中,由各MSB输出变换为二进制数的数值,并且按照几乎相同的时间输出各个的MBS。假如使用这些ND,可以将几乎同时输出的各MSB总和为一单一的数据,在上述运算中对于数据压缩这一点列为有效。
通过利用上述乘法电路结构,由于以较少的元件和较低的功耗以并行运算的方式处理,可以构成一高速的乘法器。
(第十五实施例)
按照与第四实施例相同的方式,图17所示结构可以适用于一用以实行在上述第13和14实施例中所述的并行分批加法的ND部分。这使得能够将在若干输入中的高电平信号的输入数目变换为要用三位输出的二进制数,这种变换是在如图17的表1中所示的低功耗的极小的电路中进行的。在这种电路中,被变换为二进制数的数值是由MSB输出的。虽然,其它的介绍与对第13和14实施例相同,但是由于尺寸被降低,以更少的元件和更低的功耗按并行运算,这种结构使得能够形成高速半导体器件。
(第十六实施例)
在这种运算方法中,以与第五实施例相同的方式,将在第13实施例的15个ND中的若干ND进行总和。假设该ND具有如图21所示的结构。
尽管在图21中用ND的数目来表示输入(点)的数目和输出(点)的数目,假如计数可达56个输入,就可以仅用ND。对于线路,高达21个输入都是适合的。各个ND产生6位输出。顺序地,数据被整体重新配置,按照第13实施例的规则对与各MSB相对应的S105,S85,S45和S05进行处理。顺序各位上的S104,S84。S44和S43可以被总和到单一的数据,并且它对于MSB数据序列没有公共位,因此,它们也可以总和到一个数据序列。因此,最终数据可以总和为两个数据序列。其它的介绍与第13和第14实施例相同,但是这种乘法电路的结构能够使之进一步降低元件数量、降低在小尺寸电路中的功耗,以及构成高速乘法器,这是因为该电路以并行方式运算和具有较少的附加级。
尽管在这一实施例中,是将相邻的各位结合到一般加权的实例中,但是本发明并不局限于这种方法,可以灵活地使用更有效的方法,例如不连续的加权法(例如,当将在20位上的和在22位上的数据被总和输入时)或者将在一个位上的数据划分,以便将数据输入时,对于不同的ND具有不同的权(例如,将在28位上的数据划分为两类并将它们输入到不同的ND中)。
(第十七实施例)
下面通过提供一将63个7位数据序列相加的实例来介绍这一实施例。图33是用于这一实施例的解释性示意图。首先,为了将63个7位数据序列相加,将各个位上的数据加在一起。在与用于第十四到第十六实施例的电路相同的电路中执行这一加法。由于在这一实施例中使用7位数据序列,所以需要7个ND。各个ND的运算速度是相同的,因而由单个ND的运算速度决定了整体的运算速度。此外,在这种运算中将63个7伏数据序列相加,因而到各ND的输入(点)数目等于63。按顺序由一MSB起各ND产生6位输出数据。由于利用ND以并行方式没有进位执行加法,实现了高速运算。尽管在这一实施例中仅表示一个将63个7位数据序列相加的实例,但本发明并不局限于此,在若干多位数据中,可以为各种不同的位数。
顺序地,通过执行用于将所有以二进制方式表示的8个加法结果相加的第二加法步骤,高速得到预期的加法结果Q。
下面介绍这一加法步骤。如上所述,依序来自一MSB的ND输出数据以及来自所有ND的MSB和在顺序各位上的数据按照相同的时间输出。当对MSB介绍时,要指出对于第m位(m≥1)来自ND的MSB是在第(m+5)位上输出的。换句话说,在1≤m≤7的条件下,对于第m位来自一ND的各MSB没有任何公共位,并且无需任何运算,它们就能总和到单一的数据(在图33中用框包围的区域)。按照同样的方式,在比MSB低-位上的输出可以与在(m+4)位上的数据综合在一起,在下一位上的数据和在第(m+3)位上的数据综合,与此相似,按照输出次序可以顺序地将顺序的数据总和。在图33中,每个MSB可以用SiS(0≤i≤6)表示,顺序的数据用Sik(0=≤i≤6)来表示,因而在(0≤k≤5)的条件下,可以顺序地输出6个数据块。这些数据块被加在一起。由于上述数据重新配置,输出MSB数据Si5和顺序的位Si4的数据,在每个ND计算Si3的同时则可以执行对Si5+Si4的运算。按照相同的方式,在Si3和Si2输出之后,在ND计算Si1的同时,可以执行对Si3+si2的运算。因此,因此由起动第二加法步骤没有等来自ND的所有输出结果,就能实现高速运算。
作为一种极端情况的实例,假如在计算Si3的过程中,执行对S5+Si4的运算,在计算Si2的过程中将Si3加到(Si5+Si4)的结果上,然后像在图34中所示一样顺序地执行加法,则整体运算速度可以提高,元件可以减少,这是由仅需要一个加法器。在ND运算时间和第二加法步骤时间之间有一最佳数值。但是第二加法步骤可以与ND加法或者在公共位的数据的分批加法,以并行方式执行,使之可以减少元件,因而降低功耗,以及高速运算。
(第十八实施例)
通过提供将具有各种不同位数的若干数据序列相加的实例,下面解释这一实施例。图35是这一实施例的解释性示意图。这里是将每个n位(1≤n≤8)的数据序列相加。首先,对于每个n位的数据序列,将每位上的数据加在一起。利用各ND执行第一加法。
在这一实施例中使用最大8位的数字序列,因此,使用8个ND(27代表一个数字,因此,需要7个ND。Y6+Z6代表二个输入以及可以使用-HA,不过这里使用一个ND)。由于按照这一实施例在这一加法步骤中以并行方式进行处理,由最慢的一个ND的运算速度决定了整体的运算速度。由于在这一运算中将8个数据序列相加,故将最大8个输入输入到一ND。各个ND的运算速度不是相同的,利用一8输入的ND来调节。
由于在一般的加法运算中要产生进位,由于进位值传送会降低运算速度。然而,这一实施例具有的特点是以并行方式没有进位将数据相加,所以实现高速运算。尽管这一实施例表示的实例是将具有从1到8伏彼此不同的各种位数的8个数据序列相加,应当理解,本发明并不局限于这一实例。
通过执行用于将以二进制方式表示的所有8个加法结果顺序相加的第二加法步骤,高速得到预期的加法结果Q。
由于在执行这一加法步骤中不是简单地将所有的数据相加,而是通过将若干数据总和为单一的数据,可以更有效地进行处理。由这一观点出发,对在图35中的分批加法结果予以注意,例如S70、S51和S50的各位完全没有重叠,它们无需任何运算就可总和到单一的数据中。与第二实施例相同,当在电路中进行处理时在这种处理过程中仅需利用线路而没有进行运算,尽管这种运算被处理作它的算法的一个步骤,以及延迟时间是那样短,以致与其它步骤相比可以被忽略。在图35的实例保,利用这种有效的方法,可以将两个数据块总和为单一的数据。然而,假如仅有两个或更多的数据块,可以更有效地以相同的方式进行运算。
为了进一步增加运算速度,以并行方式执行第一和第二加法步骤。在图35中,作为由ND输出的数据,在第8位上或S70(27)的数据最早输出,然后输出在第7位S61和S60的数据,再按第6、第5…各位的次序输出顺序的各数据。因而,在图35所示的实例中,例如没有等第一位上计算数据的完成,就执行对S70、S51、S50+S61以及S60的计算。在其之后,将各顺序的输出结果S42、S41、S40、S12、S11和S10相加(实际上是将S42和S41相加)。以与对应于第二加法步骤的运算并行的方式可以执行对应于第一加法步骤的ND运算,使得能高速运算。
(第十九实施例)
在这一实施例中,通过提供在图31所示的实例来解释在多位数据之间的乘法。通过提供-(8×8)位的乘法器的实例,下面进行介绍,这种乘法可以扩展到一般的(m×n)位的乘法。
假设X×Y=Q,其中X(X7X6X5X4X3X2X1X0)是被乘数,Y(Y7Y6Y5Y4Y3Y2Y1Y0)是一乘数。如图31所示,Q用最大16位数表示。Q对m×n位的乘积则有最大m+n位。
如图31所示,首先产生部分乘积。虽然,是通过在被乘数X的每一位Xi和一乘数Yi之间取AND逻辑来计算部分乘积的,但是其它的方法例如在第三实施例中所述的方法也可以采用。
顺序地,利用各ND在一次之中对于每一位将图31中的各个位上的部分乘积的和相加。由于在这一加法步骤中以并行方式进行这种处理,故适合高速运算。在(m×n)位乘法电路中,采用(m+n-1)个ND单元。对各ND的最大输入(点)数目等于Min(m.n)。在图31所示的(8×8)位乘法器的实例中,使用了15个ND。构成最大8个输入(用于运算X7Y0+X6Y1+X5Y2+X4Y3+X3Y4+X2Y5+X1Y6+X0Y7)。
当将ND用于这样一些地点时,在这些地点可以按一输入一输出的配置通过线路可以替代各ND时,该数目的ND是适合的。假如略去可被替换的ND,使用(m+n-3)个ND。此外,假如,除了这样一些地点之外,在这样一些地点可以用二输入二输出的HA(尽管HA也是一种ND,还将它与ND区分开)来替换各ND,假如ND仅用于3或更多个输入,则可使用(m+n-5)个ND。
一般地说,对于3或更多个输入,由于在这样状态下可能特别易于产生进位值的传送,加法运算变得很复杂,运算速度被降低。但由于这一实施例具有的特点是,在将数据加在一起时以没有进位的方式执行运算,实现了高速运算。
在此之后,通过执行用于将所有以二进制方式表示的(m+n-1)个加法结果相加的第二加法步骤,高速得到预期的乘法结果Q。
为了进一步降低加法的次数,以与第18实施例相同的方式将数据总和,使4个数据块(A,B,C,D)重新配置,如上所述,当在电路中处理时,在这个处理过程中仅利用了线路而没有实行运算,尽管这种运算被处理作为它的算法的一个步骤。
延迟时间是那样短,以致与其它步骤比较可以被忽略。在图13和12中所示结构可以分别适用于ND和乘法电路。如在第三实施例中所述的,在图13中可以执行流水线处理方式。
ND所需多数逻辑电路组件的数目用〔Log2n〕来表示,其中n是到ND的输入(点)的数量。对于到各ND的输入(点)的数目,在一m×n的乘法器中从1到Min(m,n)的一个数值都是适合的,很明显,在这样一个ND处,它的运算时间变得最长,在该N D的输入计数值为作为输入(点)的最大数目的Min(m,n)。这是因为多数逻辑电路级的数目随输入(点)的数目N按〔Log2n〕增加。然而,很明显,由于级数按照Log函数增加,当位数增加时,级数并不显著增加。
由于运算以并行方式执行,运算按照具有最大输入(点)数目Min(m,n)的ND的运算速度,由若干ND74终止运算。在这种结构中,首先输出S73(A)。接着,将其加到较早终止运算的B上,这时,其它的输出并没有完成。按照这种方式,在D完成输出之前相加C。与此相似,由于并行处理,可以进行高速运算。
由于并行运算和因所需元件少而ND功耗低,这样ND结构可具有更高的运算速度,使得可以明显地改进以上实施例中的运算方法的特性。
关于算法存在一个用于将由若干ND输出的数据总和为一个数序列的步骤,如上所述,在电路中并没有执行一运算处理,因此,没有与在图12中的这一步骤相对应的电路。
由于具有很少数量的元件、低的功耗以及并行运算,所以上述乘法器结构使得能够构成一高速乘法器。因而,在图17中所示的结构可适用于在第四实施例中所介绍的ND。
(第二十实施例)
根据这一实施例,将在第19实施例中所述在图31的15个ND中的若干ND为了进行某一运算而被总和。尽管是通过提供一个将两个(8×8)位的乘法结果相加的实例来解释该运算方法的,但本发明并不局限于这一实例。
在图20表示一根据适用于2×2乘法器的2×2多数逻辑电路的实例。换句话说,它是在第19实施例中在图13表示的第一级中的一个多数逻辑电路。在第一位上(在209位上的X0Y0)的数据输入到一单位电容O上。在第二位上的(在21位上的X1Y0和X0Y1)的两个数据块输入到每个具有2倍电容量2C的连接端上。进而,在第三位上的数据(在22位上的X1Y1)被加权22以及一个输入被计数为4。
其它的介绍与第19实施例相同,利用在每个ND中的4个输入(点)将高达7个的输入的二进制方式输出。通过利用这种加权方法,可以更有效地利用该并行分批相加功能。
例如,在第19实施例中的8×8位乘法器中,用于将权为0、1、2和3的各个位上的数相加的各ND被总和到如图36中所示的一个ND91中,以及将在权为(4,5,6),(7,8,9),(10,11,12,13,14)的各区域被总和到如图21中的从ND92到ND94的每个区域中。
尽管在图36中输入(点)的数目和输出的数目是由ND的数字表示的,假如其能够计数高达56个输入,则可以仅使用ND。对于线路,高达21个输入是适合的。各个ND产生6位输出。因此需要较少的ND以及元件可以显著减少。在另外的(8×8)位乘法的结果Q’的相加过程中,输出S105,以及在ND94计算S104的同时,可以将对于S105的S105’相加。它还能加到另外的数据S85和S45上,以及S104和S104’可以分别加到它们的和上。相同的计算可以适用于S103和S103’,以及通过一个ND运算和一并行运算可以产生局部的和S”。
在这一实施例中,仅有3个数据块P、Q和R最后被相加。此外,假如来自ND92的S”46被单独加到P上,P和Q可以被总和到一个数据序列中,因而只有两个数据块被相加。
因此,由于一加法器可以重复使用,可以实现高速运算,元件可以显著减少。特别是,具有上述多数逻辑电路的ND的使用是有效的,这是由于它的时钟控制特性。这种乘法电路的结构由于并行运算和较少的加法电路级,使得能够进一步减少元件,降低小尺寸电路的功耗,并构成高速乘法器。
尽管在这一实施例中相邻的各位被总和在一般加权的实例中,本发明并不局限于这种方法,可以灵活地采用最有效的方法,例如不连续的加权法(例如当在20位上和在22位上的数据被总和输入时)或者将在一位上的数据划分,以便将该数据对于不同的ND按照不同的权输入(例如,将在28位上的数据分为2类并将它们输入到不同的ND)。
(第二十一实施例)
在这一实施例中,是通过提供一具有用于实行运算的半导体器件的数据处理器的实例,来介绍用于DSP的上述运算方法。
尽管在这一实施例中解释的是用于定点运算的作为典型的DSP的DSP,应当理解,本发明并不局限于此,它可适用于其它类型的DSP和CPU。
在以上实施例中的处理器是具有很强兼容性的,这是由于它能够通过一般的半导体MOS晶体管来构成。因此,先前的半导体器件能够被用作它的具有输入一输出缓冲器辅助元件的替代物。
在图37中表示了根据这一实施例的DSP的的结构。一乘法器和一累加器安装在DSP上作为运算单元。乘法器用于将两个16位的数据块相乘以便得到31位的输出。累加器包含一16位运算逻辑单元(ALU)和一用于存储来自ALU的输入出信号的寄存器。
有4种类型的下面要介绍的片装存储器。数据RAM用于存储输入信号,它的地址由一8位数据指针(DP)所指定。DP的下4位由4位上升一下降计数器处理,上4位由4位寄存器处理。数据ROM用于存储加权因子。它的地址由10位下降计数器的ROM指针(RP)指定。16位暂存寄存器(RT)用于暂时存储数据。指一ROM用于存储指令,它的地址由指令计数器(PC)来指定。
利用DSP的外部区域经过1位串行输出寄存器、1位串行输入寄存器和一8位9并行输入~输出寄存器进行信号的接收或发送。当输出控制信号(SOEN)或输入控制信号(SIEN)分别为0伏时,以与串行输入一输出时钟(SCK)同步的方式进行串行输出或串行输入。当读/写控制信号(CS)为0伏时,在将写控制信号(WR)或读控制信号(RD)设定为0伏之后,进行8位并行输出或输入,当8位要由一SO输出的数据存储在串行输出寄存器时,输出准备信号(SORQ)设定到5伏。
每个时钟周期经过程序计数器(PC)的指定由ROM读出各个指令。根据对每个读指令的每一解码结果,控制单元或存储器工作。
假如提供一复位脉冲(RST),PC的指令位置被设定到0,DSP开始它的工作。假如顺序提供一个中断脉冲(INT),PC指针位置跳到地址256。利用在8位并行输入一输出寄存器中的16位状态寄存器(SR)确定输入一输出方式(8位或16位)的选择以及是否应当接收中断的指令。时钟驱动器根据来自外部区域的时钟脉冲(CLK)产生2相时钟T0和T2并且将它们提供到控制单元或存储器。经过16位总线在输入输出寄存器、控制单元和存储器之间传送数据。
在这一实施例中,上述16位×16位高速乘法器形成在同一电路板上和像其它逻辑电路和存储器一样按相同的工艺构成。
下面通过提供一以12级流水线式进行乘和加运算的实例,来介绍这种DSP的实际控制的时间关系。图38表示控制过程中的2相时钟脉冲。读出存储在数据ROM或数据RAM中的读输入信号或加权因子,换句话说,当时钟周期m的T0变为高电平(5伏)(下文称T0定时)向乘法器进行提供数据并顺序地执行乘法。在下一个时钟周期(m+1)的T0定时点处,将乘法结果销存到一寄存器。同时,在乘法器中以并行方式进行各顺序的数据的乘法。
一般地说,随着位数的增加运算速度下降,特别是乘法速度受其影响。然而在本实施例中通过采用高速乘法器,使运算速度可以增加,从而显著改进了DSP的性能。此外,它具有的优点在于可以构成一般的CMOS工艺。虽然,在这一实施例中该运算方法适合于作为一个乘法器的DSP,但本发明自然并不局限于这种DSP,很明显它还能适用于包含对若干多位数据进行加法或乘法处理的各种不同的运算电路,当作为其它应用时,考虑它的通用性,要使输入和输出或者处理与一般的CMOS处理相同。本发明有很多效果,例如降低芯片面积和功耗以及提高运算速度。
(第二十二实施例)
在这一实施例中,将上述处理器用于宽频带通信(SS通信)的接收电路中的相关控制单元。在图39表示了这种接收电路的结构。如在图39中所示,该接收电路包含接收天线1401、用于放大信号的放大单元单元1402、相关控制单元1403A和1402B、A/D变换单元1404、选择器1405和检测器1406。
在SS通信中,将各信号变换为称为PN码的多位代码并发送该PN码。在接收电路中,将先前存储的相似PN码与接收的信号比较,并检测最高相关状态,以便对所发送的信号解调。
参阅图39,由天线1401接收的信号最初由检测器1406解调,并且一个被发送到相关控制单元1403A,另一个在A/D变换单元被变换为数字信号,然后输入到相关控制单元1403B。将输入的信号与先前存储在接收电路中的PN码比较,相关控制单元1403A按照两个信号之间的相关程度产生一同步信号,相关控制单元1403B以与同步信号相同步的方式计算一相关分值。然后,根据用选择器1405控制由相关控制单元1403B输出的相关分值,该信号被解调。
尽管因为在信号被发送之前信号被变换为多位代码,使SS通信具有优异的特征,具有高性能的通话保密性和噪声防护性能,但有一个问题,在有效信号处理过程中被加有很大的载荷。这是由于它需要在图45中所示的加法电路中进行重复的加法,以便通过将接收的信号与PN码相比较检测高相关状态,从而增加了发送信息的数量造成的。
然而,在按照以上实施例的处理器中通过执行这些加法,能够形成具有较少元件、低功耗以及高速度的SS通信接收电路。因此,能够制成一用于在SS通信系统中进行无线电通信的便携式信息通信器件。
此外,可以形成如在图40中所示紧凑卡式的接收/发送单元2001,由于具有较高的运算速度,使它能够用较少的元件和低功耗进行大量信息的通信。因此,使得易于将SS通信应用到具有常规的个人计算机接口的PCMCIA卡。尽管在这一实例中使用的是PCMCIA卡,但本发明可易于应用到其它接口上。输入和输出是常用的CMOS可兼容的,因而,通过利用上述处理器,能够易于实现小尺寸和低功耗。
尽管是通过提供一种用于SS通信的数据处理器的实例来进行介绍的,如上所述输入一输出接口是CMOS可兼容的,故本发明可适用于将若干多位数据特别是包括负值的数据相加的其它数据处理器,如上述的DSP或CPU或者是用于处理图像或声音的并行运算处理单元。此外,它还能用于为了得到平均值或标准偏差的统计处理和例如二乘法的数字运算。
此外,由于具有高运算速度、小尺寸和低功耗的优点,它能有效地显著地改进各种不同的系统,例如无线LAN、I/O管理系统、会计统计系统以及电话会议系统。
根据上述实施例,可以高速将若干多位数据相加。
此外,可以高速将包含负值的若干多位数据相加。
再有,可以高速将若干多位数据相乘。
还有,用于高速运算若干多位数据的处理器可以通过使用低功耗的半导体器件在小的芯片面积上形成。
该处理器能够适用于各种数据处理器,这是因为它能够以一般的半导体工艺制成,使之能够制成各种数据处理器,例如DSP、CPU和用于SS通信的接收/发送单元,这些器件都具有高运算速度、低功耗、小的芯片面积。
虽然,以本发明的带有某种特殊性的优选方式已经介绍了本发明,很明显在不脱离本发明的构思和范围的情况下,可以形成本发明的范围广泛的各种不同的实施例。应当理解,本发明并不局限于它的特定实施例,它是由所提出的权利要求限定的。
Claims (28)
1.一种处理器,用于将多个二进制值相加,所述多个二进制值中的每一个二进制值都具有多位,该处理器包括:
数目检测装置,用于检测所述多个二进制值的多位中的各位上具有值1的位的数目并把以二进制表示的该检测的数目作为各位的位置的相加结果而输出该检测数目;以及
相加装置,用于接收从所述数目检测装置输出的相加结果并计算该相加结果的一个和,
其中所述数目检测装置包括:
判定装置,用于分别判定具有值1的位的该数目是否小于多个预定的值中的每一个预定值,以及
二进制数据输出装置,用于根据所述判定装置的判定结果而检测具有值1的位的数目并以二进制表示的形式输出该检测数目。
2.根据权利要求1的处理器,其中所述数目检测装置为所述多个二进制值分别检测在多位中的相应位置上的具有值1的位的数目。
3.根据权利要求1的处理器,其中所述数目检测装置为所述多个二进制值检测多位中的多个位置上的具有值1的位的数目。
4.根据权利要求1的处理器,其中所述相加装置把所述相加装置的相加结果中没有共同位置的多个相加结果结合成一个单个的值,该单个的值将要在所述相加装置的一个相加运算中被相加。
5.根据权利要求1的处理器,其中所述数目检测装置并行地检测所述多个二进制值的多位中的相应位置上的具有值1的位的数目。
6.根据权利要求5的处理器,进一步包括:
第二数目检测装置,用于从所述数目检测装置检测的二进制表示的所述数目检测具有值1的位的数目。
7.根据权利要求5的处理器,其中所述判定装置包括多个多数逻辑运算装置。
8.根据权利要求5的处理器,其中所述多个多数逻辑运算装置中的至少一个多数逻辑运算装置包括用于接收所述多个二进制值的相应的位的多个输入端、经过所述多个输入端和开关装置而相连的多个电容装置、以及一个检测放大器,其中所述多个电容装置共同连接到所述检测放大器,且所述检测放大器提供了所述多数逻辑运算装置中的至少一个多数逻辑运算装置的输出。
9.根据权利要求8的处理器,其中所述电容装置中的至少一个电容装置具有等于一个预定电容的一个整数倍的电容。
10.根据权利要求8的处理器,其中所述检测放大器的输出连同一个反馈被送入所述多个输入端中的至少一个输入端。
11.根据权利要求8的处理器,其中所述检测放大器的输出经过锁存装置而被连接到所述多个输入端中的至少一个输入端。
12.根据权利要求1的处理器,其中所述多个二进制值包括表示一个符号的一个标志位且所述数目检测装置检测多位中分别包括该标志位的位置上的具有值1的位的数目。
13.根据权利要求12的处理器,其中所述多个二进制值包括由一个1的补码所表示的一个负值。
14.根据权利要求12的处理器,其中所述多个多位数据包括由一个1的补码所表示的一个负值。
15.一种处理器,用于把多个各具有多位的二进制值彼此相乘,该处理器包括:
部分积产生装置,用于产生所述多个二进制值的部分积;
数目检测装置,用于从由所述部分积产生装置所产生的多个部分积中,对于所述部分积的多位中的各位的位置,检测具有值1的位的数目,并输出二进制表示的该检测的数目并把该检测的数目作为在各个位置上分别地把该部分积相加的一个相加结果;以及
加法装置,用于接收从所述数目检测装置输出的相加结果并计算该相加结果的一个和,
其中所述数目检测装置包括:
判定装置,用于分别判定具有值1的所述位的数目是否小于多个预定值中的每一个值,以及
二进制数据输出装置,用于根据所述判定装置的判定结果而检测具有值1的位的数目并以二进制表示输出该检测的数目。
16.根据权利要求15的处理器,其中所述部分积产生装置同时产生第一二进制值的相应的位和第二二进制值的一个特定位的部分积。
17.根据权利要求15的处理器,其中所述部分积产生装置包括:
输入装置,用于并行地输入所述第一二进制值的相应的位;以及
开关装置,用于根据所述第二二进制值的各位的值而把来自所述输入装置的输入置于导通或关断。
18.根据权利要求15的处理器,其中所述部分积产生装置包括多个晶体管,这些晶体管的栅极被共同连接。
19.根据权利要求15的处理器,其中所述部分积产生装置包括多个“与”电路。
20.一种运算方法,用于把各具有多位的多个二进制值加到一起,该方法包括以下步骤:
对于多位中的各位的位置,分别判定所述多个二进制值中具有值1的位的数目是否小于多个预定的值中的每一个预定值;
根据所述判定步骤中的判定结果,检测具有值1的位的数目;
把二进制表示的该检测到的数目作为各位的位置的相加结果并输出该检测到的数目;以及
计算在所述输出步骤中输出的所述相加结果的一个和。
21.根据权利要求20的运算方法,其中,在所述计算步骤中,所述相加结果输出步骤中输出的没有共同的位置的多个相加结果在相加之前被综合。
22.根据权利要求20的运算方法,其中所述多个二进制值包括表示一个符号的一个标志位,且在所述检测步骤中包括该标志位的多位中的相应位置上的具有值1的所述位的数目分别得到检测。
23.一种运算方法,用于把各具有多位的多个二进制值彼此相乘,所述方法包括以下步骤:
产生所述多个二进制值的部分积;
从所述产生步骤中产生的多个部分积,分别判定所述部分积的多位中的各位的位置上具有值1的位的数目是否小于多个预定值中的每一个预定值;
根据所述判定步骤中的判定结果,检测具有值1的所述位的数目;
把二进制表示的所述检测的数目作为各位的位置的一个相加结果并输出该检测的数目;以及
计算在所述输出步骤中输出的所述相加结果的一个和。
24.根据权利要求23的运算方法,其中在所述计算步骤,在所述输出步骤中被输出的相加结果中没有共同位置的多个相加结果在被相加之前被综合成单个的数据。
25.一种数据处理器,包括:
输入装置,用于输入数据;
存储装置,用于存储数据;
处理装置,用于在一个给定的处理过程中处理由所述存储装置所存储的数据和从所述输入装置输入的数据;
输出装置,用于输出所述处理装置的处理结果,
其中所述处理装置包括:
判定装置,用于分别判定所述多个二进制值中在多位中的各位的位置上具有值1的位的数目是否小于多个预定值中的每一个预定值,
二进制数据输出装置,用于根据所述判定装置的判定结果而检测该具有值1的位的数目并把二进制表示的该检测数目作为各位的位置的一个相加结果,以及
相加装置,用于接收从所述数目检测装置输出的相加结果并计算所述相加结果的一个和。
26.根据权利要求25的数据处理器,所述处理装置进一步包括:
部分积产生装置,用于产生多个二进制值的部分积,
其中所述部分积产生装置所产生的部分积利用所述判定装置、二进制数据输出装置、以及所述相加装置而被相加。
27.根据权利要求25的数据处理器,其中所述输入装置输入信号,所述存储装置存储加权因子,且所述处理装置把输入的信号与相应的加权因子相乘以进行累加。
28.根据权利要求25的数据处理器,其中所述输入装置输入多位符号,所述存储装置预先存储多位符号,且所述处理装置计算该输入的多位符号与该存储的多位符号之间的一个相关量并根据该计算的相关量对输入的多位符号进行解调。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8525595 | 1995-04-11 | ||
JP85255/1995 | 1995-04-11 | ||
JP85255/95 | 1995-04-11 | ||
JP089541 | 1996-04-11 | ||
JP08954196A JP3658079B2 (ja) | 1995-04-11 | 1996-04-11 | 演算処理装置及びデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1139777A CN1139777A (zh) | 1997-01-08 |
CN1129066C true CN1129066C (zh) | 2003-11-26 |
Family
ID=32827169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN96102871A Expired - Fee Related CN1129066C (zh) | 1995-04-11 | 1996-04-11 | 处理器及其运算方法以及数据处理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5978827A (zh) |
EP (1) | EP0741354B1 (zh) |
JP (1) | JP3658079B2 (zh) |
KR (1) | KR100359965B1 (zh) |
CN (1) | CN1129066C (zh) |
DE (1) | DE69632978T2 (zh) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3607494B2 (ja) * | 1998-03-03 | 2005-01-05 | 東芝マイクロエレクトロニクス株式会社 | 加算器 |
US6490608B1 (en) * | 1999-12-09 | 2002-12-03 | Synopsys, Inc. | Fast parallel multiplier implemented with improved tree reduction schemes |
DE60031109D1 (de) * | 2000-08-01 | 2006-11-16 | St Microelectronics Sa | Übertragsicherstellungsaddierer |
US7136888B2 (en) | 2000-08-04 | 2006-11-14 | Arithmatica Limited | Parallel counter and a logic circuit for performing multiplication |
GB2365636B (en) * | 2000-08-04 | 2005-01-05 | Automatic Parallel Designs Ltd | A parallel counter and a multiplication logic circuit |
US6883011B2 (en) | 2000-08-04 | 2005-04-19 | Arithmatica Limited | Parallel counter and a multiplication logic circuit |
US6701339B2 (en) * | 2000-12-08 | 2004-03-02 | Intel Corporation | Pipelined compressor circuit |
US6729168B2 (en) * | 2000-12-08 | 2004-05-04 | Stmicroelectronics, Inc. | Circuit for determining the number of logical one values on a data bus |
GB2373602B (en) * | 2001-03-22 | 2004-11-17 | Automatic Parallel Designs Ltd | A multiplication logic circuit |
US7080111B2 (en) * | 2001-06-04 | 2006-07-18 | Intel Corporation | Floating point multiply accumulator |
US6779013B2 (en) * | 2001-06-04 | 2004-08-17 | Intel Corporation | Floating point overflow and sign detection |
EP1308836A1 (en) * | 2001-10-31 | 2003-05-07 | Motorola, Inc. | Adder tree structure with reduced carry ripple adder stage |
US20030154227A1 (en) * | 2002-02-08 | 2003-08-14 | Intel Corporation | Multi-threaded multiply accumulator |
US7734675B1 (en) * | 2002-12-05 | 2010-06-08 | Cisco Technology, Inc. | System and method for generating a binary result in a data processing environment |
US7293056B2 (en) * | 2002-12-18 | 2007-11-06 | Intel Corporation | Variable width, at least six-way addition/accumulation instructions |
GB2396718B (en) * | 2002-12-23 | 2005-07-13 | Arithmatica Ltd | A logic circuit and method for carry and sum generation and method of designing such a logic circuit |
US6909767B2 (en) | 2003-01-14 | 2005-06-21 | Arithmatica Limited | Logic circuit |
US7042246B2 (en) | 2003-02-11 | 2006-05-09 | Arithmatica Limited | Logic circuits for performing threshold functions |
US7308471B2 (en) | 2003-03-28 | 2007-12-11 | Arithmatica Limited | Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding |
WO2004104820A2 (en) | 2003-05-23 | 2004-12-02 | Arithmatica Limited | A sum bit generation circuit |
JP2005182238A (ja) * | 2003-12-17 | 2005-07-07 | Renesas Technology Corp | 演算装置 |
US20050228845A1 (en) * | 2004-04-12 | 2005-10-13 | Mathstar, Inc. | Shift and recode multiplier |
US20060020655A1 (en) * | 2004-06-29 | 2006-01-26 | The Research Foundation Of State University Of New York | Library of low-cost low-power and high-performance multipliers |
JP4810090B2 (ja) * | 2004-12-20 | 2011-11-09 | キヤノン株式会社 | データ処理装置 |
US8271572B2 (en) * | 2008-10-14 | 2012-09-18 | The Research Foundation Of State University Of New York | Generating partial sums |
JP2011107972A (ja) * | 2009-11-17 | 2011-06-02 | Fujitsu Ltd | 総和計算方法及び数値演算装置 |
JP5048748B2 (ja) * | 2009-12-18 | 2012-10-17 | 三菱電機株式会社 | 試験テーブル生成装置及び試験テーブル生成方法 |
CN102999310A (zh) * | 2012-12-14 | 2013-03-27 | 蒋海勇 | 一种新型芯片晶体管阵列方法 |
US9355066B1 (en) * | 2012-12-17 | 2016-05-31 | Marvell International Ltd. | Accelerated calculation of array statistics |
RU2547625C2 (ru) * | 2013-06-28 | 2015-04-10 | федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Многовходовой сумматор |
US9836218B2 (en) | 2014-10-03 | 2017-12-05 | Micron Technology, Inc. | Computing reduction and prefix sum operations in memory |
US10171105B2 (en) | 2016-08-25 | 2019-01-01 | International Business Machines Corporation | Carry-less population count |
US11283453B2 (en) | 2019-12-27 | 2022-03-22 | Kepler Computing Inc. | Low power ferroelectric based majority logic gate carry propagate and serial adder |
US11018672B1 (en) * | 2019-12-27 | 2021-05-25 | Kepler Computing Inc. | Linear input and non-linear output majority logic gate |
US10944404B1 (en) * | 2019-12-27 | 2021-03-09 | Kepler Computing, Inc. | Low power ferroelectric based majority logic gate adder |
US11374574B2 (en) | 2019-12-27 | 2022-06-28 | Kepler Computing Inc. | Linear input and non-linear output threshold logic gate |
US11381244B1 (en) | 2020-12-21 | 2022-07-05 | Kepler Computing Inc. | Low power ferroelectric based majority logic gate multiplier |
US11165430B1 (en) | 2020-12-21 | 2021-11-02 | Kepler Computing Inc. | Majority logic gate based sequential circuit |
US11705906B1 (en) * | 2021-05-21 | 2023-07-18 | Kepler Computing Inc. | Majority logic gate having ferroelectric input capacitors and a pulsing scheme coupled to a conditioning logic |
US11394387B1 (en) * | 2021-05-21 | 2022-07-19 | Kepler Computing Inc. | 2-input NAND gate with non-linear input capacitors |
US11303280B1 (en) | 2021-08-19 | 2022-04-12 | Kepler Computing Inc. | Ferroelectric or paraelectric based sequential circuit |
US12118327B1 (en) | 2021-09-02 | 2024-10-15 | Kepler Computing Inc. | Ripple carry adder with inverted ferroelectric or paraelectric based adders |
US11664370B1 (en) | 2021-12-14 | 2023-05-30 | Kepler Corpating inc. | Multi-function paraelectric threshold gate with input based adaptive threshold |
US11705905B1 (en) | 2021-12-14 | 2023-07-18 | Kepler Computing, Inc. | Multi-function ferroelectric threshold gate with input based adaptive threshold |
US11652482B1 (en) | 2021-12-23 | 2023-05-16 | Kepler Computing Inc. | Parallel pull-up and pull-down networks controlled asynchronously by threshold logic gate |
US11855627B1 (en) | 2022-01-13 | 2023-12-26 | Kepler Computing Inc. | Asynchronous consensus circuit using multi-function threshold gate with input based adaptive threshold |
US11967357B2 (en) * | 2022-01-21 | 2024-04-23 | National Tsing Hua University | Memory unit with time domain edge delay accumulation for computing-in-memory applications and computing method thereof |
US11750197B1 (en) * | 2022-04-20 | 2023-09-05 | Kepler Computing Inc. | AND-OR-invert logic based on a mix of majority OR minority logic gate with non-linear input capacitors and other logic gates |
US11765908B1 (en) | 2023-02-10 | 2023-09-19 | Kepler Computing Inc. | Memory device fabrication through wafer bonding |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3524977A (en) * | 1967-01-17 | 1970-08-18 | Rca Corp | Binary multiplier employing multiple input threshold gate adders |
US3535502A (en) * | 1967-11-15 | 1970-10-20 | Ibm | Multiple input binary adder |
US3636334A (en) * | 1969-01-02 | 1972-01-18 | Univ California | Parallel adder with distributed control to add a plurality of binary numbers |
US3603776A (en) * | 1969-01-15 | 1971-09-07 | Ibm | Binary batch adder utilizing threshold counters |
US3675001A (en) * | 1970-12-10 | 1972-07-04 | Ibm | Fast adder for multi-number additions |
US3723715A (en) * | 1971-08-25 | 1973-03-27 | Ibm | Fast modulo threshold operator binary adder for multi-number additions |
US3795880A (en) * | 1972-06-19 | 1974-03-05 | Ibm | Partial product array multiplier |
US3950636A (en) * | 1974-01-16 | 1976-04-13 | Signetics Corporation | High speed multiplier logic circuit |
FR2454136B1 (fr) * | 1979-04-12 | 1985-12-06 | Materiel Telephonique | Additionneur sequentiel rapide |
FR2536922A1 (fr) * | 1982-11-26 | 1984-06-01 | Efcis | Comparateur logique a plusieurs fonctions |
CA1236220A (en) * | 1984-10-11 | 1988-05-03 | Sterling R. Whitaker | Multiplier circuitry using pass transistors |
DE3524797A1 (de) * | 1985-07-11 | 1987-01-22 | Siemens Ag | Anordnung zur bitparallelen addition von binaerzahlen |
GB2189630B (en) * | 1986-04-23 | 1990-02-14 | Stc Plc | Multiplier |
FR2599526A1 (fr) * | 1986-05-29 | 1987-12-04 | Centre Nat Rech Scient | Additionneur mos et multiplicateur binaire mos comprenant au moins un tel additionneur |
KR920007505B1 (ko) * | 1989-02-02 | 1992-09-04 | 정호선 | 신경회로망을 이용한 곱셈기 |
US5161119A (en) * | 1990-02-14 | 1992-11-03 | Lsi Logic Corporation | Weighted-delay column adder and method of organizing same |
KR920006323B1 (ko) * | 1990-05-31 | 1992-08-03 | 삼성전자 주식회사 | 스킵(Skip)배열과 수정형 월리스(Wallace)트리를 사용하는 병렬 승산기 |
WO1994012928A1 (en) * | 1992-11-20 | 1994-06-09 | Unisys Corporation | Enhanced fast multiplier |
-
1996
- 1996-04-10 KR KR1019960010745A patent/KR100359965B1/ko not_active IP Right Cessation
- 1996-04-10 US US08/630,742 patent/US5978827A/en not_active Expired - Fee Related
- 1996-04-11 EP EP96302538A patent/EP0741354B1/en not_active Expired - Lifetime
- 1996-04-11 DE DE69632978T patent/DE69632978T2/de not_active Expired - Fee Related
- 1996-04-11 JP JP08954196A patent/JP3658079B2/ja not_active Expired - Fee Related
- 1996-04-11 CN CN96102871A patent/CN1129066C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69632978T2 (de) | 2005-07-21 |
KR100359965B1 (ko) | 2003-03-15 |
EP0741354A2 (en) | 1996-11-06 |
EP0741354B1 (en) | 2004-07-28 |
EP0741354A3 (en) | 1997-05-02 |
JP3658079B2 (ja) | 2005-06-08 |
CN1139777A (zh) | 1997-01-08 |
JPH08339292A (ja) | 1996-12-24 |
KR960038594A (ko) | 1996-11-21 |
US5978827A (en) | 1999-11-02 |
DE69632978D1 (de) | 2004-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1129066C (zh) | 处理器及其运算方法以及数据处理器 | |
CN1095114C (zh) | 算术机逻辑单元的运算方法以及算术和逻辑单元 | |
CN1252587C (zh) | 移位分组数据的方法、装置和处理数字音频信号的系统 | |
CN1148643C (zh) | 模幂运算装置 | |
CN1265280C (zh) | 扩展整数的计算域的范围 | |
CN1205538C (zh) | 用于多精度整数算术运算的装置 | |
CN1186714C (zh) | 高基除法器及方法 | |
CN1320769C (zh) | 编码器、解码器以及数据传送系统 | |
CN1108865A (zh) | 自适应视频信号运算处理装置 | |
CN101061526A (zh) | 密码处理运算装置 | |
CN1478234A (zh) | 用于有效地执行线性变换的方法和装置 | |
CN1702613A (zh) | 蒙哥马利模乘法器 | |
CN86107558A (zh) | 具有带式随机存取存储器和地址发生器装置的单指令多数据单元阵列处理机 | |
CN86108178A (zh) | 使用动态可重构向量位片的单指令多数据单元阵列处理机 | |
CN1892640A (zh) | 用于离散小波变换的结构 | |
CN1841443A (zh) | 计算方法、计算设备以及计算机程序 | |
CN1102260C (zh) | 求乘数和被乘数之积的方法、系统、装置和乘法器 | |
CN1117172A (zh) | 计算电路 | |
CN1604032A (zh) | 逆模型计算装置和逆模型计算方法 | |
CN1468396A (zh) | 并行计数器和用于执行乘法的逻辑电路 | |
CN1627742A (zh) | 解调装置和方法、解调装置的集成电路 | |
CN1272910C (zh) | 半导体集成电路 | |
CN1748199A (zh) | 逻辑运算电路、逻辑运算装置和逻辑运算方法 | |
CN1957384A (zh) | 电子元件和数据处理方法 | |
CN1109404C (zh) | 计算电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |