CN1186714C - 高基除法器及方法 - Google Patents
高基除法器及方法 Download PDFInfo
- Publication number
- CN1186714C CN1186714C CNB001217607A CN00121760A CN1186714C CN 1186714 C CN1186714 C CN 1186714C CN B001217607 A CNB001217607 A CN B001217607A CN 00121760 A CN00121760 A CN 00121760A CN 1186714 C CN1186714 C CN 1186714C
- Authority
- CN
- China
- Prior art keywords
- input
- remainder
- output
- comparer
- merchant
- 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
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
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- 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/40—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
- G06F7/44—Multiplying; Dividing
-
- 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/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5353—Restoring division
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Error Detection And Correction (AREA)
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种能够减小用于一次得到k位的商的基2k恢复除法除法器中的商/余数判断单元的电路尺寸的高基除法器,在两输入比较器和三输入比较器中将除数B的倍数B、2B和3B与余数R并行地进行比较,并通过一次得到2位的商来执行基4除法。此时,在3B=(B+2B)≤R的比较中采用三输入比较器313来实现没有加法(B+2B)的比较,并且,在三输入加法器/减法器中得到一个新余数R,用于由单个行波进位同时进行复数加法/减法R-(x+y)。
Description
技术领域
本发明涉及一个对于使用由二进制数给出的被除数和除数的除法采用恢复除法的除法器,特别涉及用于被除数的基2k除法以便一次得出k个位的商的高基除法器及其方法。
背景技术
已知的恢复除法是一个减法器***(例如,参见由Mitsuaki Narita翻译的JohnL.Hennessy,David A.Paterson的文章,计算机结构和设计,1st volume,pp.191-199,Nikkei BP Co.April 1996)。
基2恢复除法每次从上一位获得一个一位的商。
在这种情况下,当被除数是N位时,最少需要N次计算。例如,当被除数是32位时,必须最少执行32次计算。
当以这种方式一次得到一位的商时,计算次数变得太大,因此存在一种通过将一次计算得出的商的位数增大到2位或更多来减少计算次数的方法。这被称为高基除法。
当一次获得k位时,将该操作称为基2k除法。例如,当执行32位被除数的基4除法时,在每次计算得出2位的商,计算的最小次数降为16。同样,如果基为8,则计算次数变为11。
下面将详细说明基2和基4恢复除法。
基2恢复除法
在这里,将被除数表示为A,将除数表示为B。A和B是N位带符号的二进制数(2的补码)。
注意,在下面的说明中出现的MSB表示二进制数中的最高有效位,在M位二进制数的情况下表示第(M-1)位。
寄存器包括用于存储商的符号的符号寄存器(一个数位)、用于存储除数B的B寄存器(N个数位)、用于存储余数的R寄存器(N个数位)以及用于存储商的Q寄存器(N个数位)。
所有寄存器都被初始化为0。
下面要说明的除法例程被分成三级:第一、第二和第三级STG1至STG3。
第一级STG1是一个预备级,第三级STG3是一个用于校正所得商的符号的末级,第二阶段STG2是除法的中心级。
每级STG1、STG2、STG3在进入寄存器的入口处结束。一级中的操作序列在一个周期中执行。
[例程]
第一级STG1
(1)参看被除数A和除数B的符号位(MSB),将商的符号提前得出,并存储在符号寄存器中。在这里,在为负时Sign=1。
(2)得出被除数A的绝对值,并输入Q寄存器。
(3)得出除数B的绝对值,并输入B寄存器。
第二级STG2-1
(1)计算R-B=diff(N个数位)。
(2)当diff不为负(diff的MSB为“0”)时,可以从余数中减去除数。
此时,商判断数据Judge=1,新余数是diff=R-B=Re(N个数位)。
另一方面,当diff为负时,不能从余数中减去除数。
此时,商判断数据Judge=0,新余数是R=Re(N个数位)。
(3)通过合并Re、Q和Judge,并向左移一位,得出R寄存器的值NEXT_R和下一个Q寄存器的值NEXT_Q。
即,
NEXT_R={Re的第(N-2)到第0个数位,Q的第(N-1)个数位}
NEXT_Q={Q的第(N-2)到第0个数位,Judge}
(4)分别将NEXT_R和NEXT_Q输入R、Q寄存器。
第二级STG2-2
上述操作(1)到(4)在一个周期内完成。
将上述操作重复N次。
第三级STG3
(1)计算R-B=diff(N个数位)。
(2)当diff不为负(diff的MSB为“0”)时,可以从余数中减去除数。
此时,商判断数据Judge=1,新余数是diff=R-B=Re(N个数位)。
另一方面,当diff为负时,不能从余数中减去除数。
此时,商判断数据是Judge=0,新余数是R=Re(N个数位)。
(3)通过合并Re和Q并向左移一位,得出R寄存器的值NEXT_R和下一个Q寄存器的值NEXT_Q。
即,
NEXT_R={Re的第(N-2)到第0个数位,Q的第(N-1)个数位}
NEXT_Q={Q的第(N-2)到第0个数位,Judge}
一直到这里的说明都与第二级STG2相同。
(4)通过参看符号寄存器校正商的符号,并得出最后的商。
即,
Sign=1(当为负时):LAST_Q=~NEXT_Q+1(采用2的补码)。
注意,“~”表示反相。
Sign=0(当不为负时):LAST_Q=~NEXT_Q。
另一方面,最后的余数是Re。
(5)将LAST_Q输入Q寄存器,将Re输入R寄存器。
在这里,Q寄存器显示商,余数显示在R寄存器中。
上述完成了用基2恢复除法进行的除法。
图1是恢复除法减法器的一般结构的例子的电路图。
如图1所示,恢复除法减法器包括用于在第一级STG1中获得商的符号的异或门110、用于在第一级STG1中获得被除数A和除数B的绝对值的绝对值发生器111和112、用于第二级STG2的处理的商/余数判断单元113、用于第三级STG3的处理的符号反相单元114、选择器115、由控制信号CTL操作的级选择选择器116至119、符号寄存器120、B寄存器121、R寄存器122和Q寄存器123。
商/余数判断单元113用于实现上述例程中的第二级STG2-1。图2显示了该结构的一个例子。
如图2所示,商/余数判断单元113包括用于上述第二级STG2-1(1)的处理中的减法(R-B)的减法器131、用于根据第二级2-1(2)的处理中的商判断获得新余数Re的选择器132、以及用于第二级STG2-1(3)的处理的位匹配器133和134。
在以这种方式构造的恢复除法减法器中,通过适当地给予控制信号CTL,可以转换上述第一级STG1、第二级STG2和第三级STG3的操作。
图3是减法器的操作过程的视图。
在这里例子中,计算77654321h/00000007h。
参看图3中的列“Judge”,可以理解从高位逐位得出商的过程。
基4恢复除法
基4的情况与基2的情况的不同之处在于一次得到2位的商。并且,在上述恢复除法的例程中只有第二级STG2-1的一部分不同。
[例程]
第二级2-1
(1)通过移位得出2B(N+1个数位)。
从2B+B得出3B(N+2个数位)。
然后,并行计算出
R-3B=diff3(N+2个数位)
R-2B=diff2(N+1个数位)
R-B=diff1(N个数位)
(2)如果diff3不为负(第(N+1)位为“0”),则使得新余数为diff3=R-3B=Re(N个数位,高2位被截去),使得商判断为Judge=11(2个数位)。
如果diff3为负且diff2不为负(第N个位为“0”),则使得新余数为diff2=R-2B=Re(N个数位,高1位被截去),使得商判断为Judge=10(2个数位)。
如果diff3为负、diff2为负且diff1不为负(第(N-1)个位为“0”),则使得新余数为diff1=R-B=Re(N个数位),使得商判断为Judge=01(2个数位)。
如果diff3、diff2、diff1都为负,则使得新余数为R=Re(N个数位),使得商判断为Judge=00(2个数位)。
(3)通过合并Re和Q并将结果左移两位,得出下一个R寄存器的值NEXT_R和下一个Q寄存器的值NEXT_Q。
即,
NEXT_R={Re的第(N-3)到第0个数位,Q的第(N-1)到第(N-2)个数位}
NEXT_Q={Q的第(N-3)到第0个数位,Judge}
(4)分别将NEXT_R和NEXT_Q输入R、Q寄存器。
图4是基于例程(第二级2-1)的基4商/余数判断单元的常规结构的电路图。
如图4所示,商/余数判断单元113a包括用于获得2B的移位器141、用于获得3B的加法器142、以及用于在第二级2-1(1)的处理中获得diff1、diff2和diff3的减法器143至145、用于在第二级STG2-1(2)的处理中根据减法结果的符号位获得新余数Re的选择器146至148、用于获得商判断的选择器149至151、以及用于第二级STG2-1(3)的处理的位匹配器152和153。
图5是除法器的操作过程的视图。
在这个例子中,以与上述基2情况相同的方式计算77654321h/00000007h。
如图5所示,由于在第二级STG2中一次得出2位商,因此在第二级STG2中所需的计算次数是16。在基2情况下这是32次。
这样,通过采用高基数可以减少计算次数。
图2中的上述基2商/余数判断单元113需要一个N-位宽的减法器131和一个N-位宽的2∶1选择器132。
另一方面,图4中的基4商/余数判断单元113a需要一个用于2B+B的(N+1)位宽的加法器142、一个用于(R-B)的N-位宽的减法器、一个用于R-2B的(N+1)位宽减法器144、三个N-位宽的2∶1选择器、以及三个两位宽的2∶1选择器149至151。
这样,在高基减法器中,存在的缺陷是所需的处理器个数显著增多,电路尺寸变大。
发明内容
本发明的一个目的是提供一种能够减小高基恢复除法除法器的商/余数判断单元的电路尺寸的高基除法器及其方法。
依据本发明的第一个方面,提供了一个高基除法器,用于被除数A除以除数B的基2k除法,以便一次得出k位的商,所述高基除法器包括:一个倍数发生装置,用于对除数B移位以产生2s×B(s是包括“0”的非负整数,s≤k);一个第一比较器,用于接收输入的除数B和余数R,判断除数B是否等于或小于余数R,并输出判断结果;至少一个第二比较器,用于接收输入的由倍数发生装置产生的2s×B和余数R,判断2s×B是否等于或小于余数R,并输出判断结果;至少一个三输入比较器,具有一个3∶2压缩器级,用于接收输入的作为三个m-位宽二进制数的2s×B、+/-2t(t<s)×B和余数R,将总数变换成两个m-位宽二进制数(Co,S)并输出,还具有一个非负判断级,用于根据从上述3∶2压缩器级输出的两个二进制数(Co,S)判断总值是否是非负的;一个选择电路,用于根据三输入比较器、第二比较器和第一比较器的比较结果获得选择2s×B与“0”中的一个的第一输出y和选择除数B和“0”中的一个的第二输出z;一个三输入加法器/减法器,用于接收输入的作为三个m-位宽二进制数的余数R和选择电路的第一输出和第二输出,并用单个行波进位并行执行{R-(y+z)}的复数加法和减法,以得到一个新余数Re;以及一个匹配器,用于根据三输入比较器、第二比较器和第一比较器的比较结果执行位匹配,以确定商Q。
此外,在本发明中,所述三输入比较器的3∶2压缩器级包括一个m-位宽3∶2压缩器,用于按照每位接收输入的两个二进制数2s×B和+/-2t(t<s)×B,并通过对每位取非来接收输入的一个二进制数R。
此外,在本发明中,三输入比较器的非负判断级包括一个m-数位加法器,具有0到m-1个形成m对的输入A和输入B和一个进位输入Cin,将3∶2压缩器级的第0个数位S-输出作为进位输入Cin的输入,将相应的第0到第(m-1)个数位Co输出作为B0到Bm-1输入,将第i(i<m)个数位S-输出作为(i-1)A-输入,将(m-1)数位S-输出作为Am-1输入,三输入比较器判断并输出加法器的加法输出的第(m-1)个数位SUMm-1。
此外,在本发明中,m-数位加法器只包括与产生加法输出的第(m-1)个数位SUMm-1有关的逻辑门。
此外,在本发明中,三输入加法器/减法器包括一个用于将三个m-位宽二进制数的总数变换成两个m-位宽二进制数(Co,S)以供输出的3∶2压缩器级以及一个用于根据从3∶2压缩器级输出的两个二进制数(Co,S)得到数位和的m-数位加法器。
此外,在本发明中,三输入加法器/减法器的3∶2压缩器级包括一个m-位宽3∶2压缩器,按照每位接收输入的一个二进制数R,并通过对每位取非来接收输入的两个二进制数y和z。
此外,在本发明中,三输入加法器/减法器的m-数位加法器具有0到m-1个形成m对的输入A和输入B和一个进位输入Cin,将逻辑“1”作为进位输入Cin的输入,将相应的第0个数位到第(m-1)个数位Co输出作为B0到Bm-1输入,将第i(i<m)个数位S输出作为(i-1)个A输入,将(m-1)-数位S输出作为Am-1个输入,三输入加法器/减法器采用m-数位加法器的加法输出的SUM0到SUMm-1和3∶2压缩器的第0个数位S输出作为加法/减法的结果输出。
此外,在本发明中,选择电路包括第一选择器,用于根据第一比较器的判断结果选择不同的k-位第一和第二判断数据中的一个;第二选择器,用于根据第二比较器的判断结果选择又一个不同的k-位第三判断数据和由第一选择器选择的第一或第二判断数据中的一个;第三选择器,用于根据三输入比较器的判断结果选择又一个不同的第四判断数据和由第二选择器选择的第一、第二或第三判断数据中的一个,并将选择的数据输出到匹配器作为商判断数据;第四选择器,用于根据商判断数据的较高位选择2s×B或“0”中的一个,以选择第一输出y;以及,第五选择器,用于根据商判断数据的较低位选择B或“0”中的一个,以选择第二输出z。
此外,在本发明中,当在三输入比较器中获得(B+2B)等于或小于余数R的判断结果时,无论第二和第一比较器的判断结果如何,选择电路选择第四判断数据作为商判断数据,当在三输入比较器中获得(B+2B)大于余数R的判断结果以及在第二比较器中获得(2s×B)等于或小于余数R的判断结果时,无论第一比较器的判断结果如何,选择电路选择第三判断数据作为商判断数据,当在第二比较器中获得(2s×B)大于余数R的判断结果时,选择电路选择第一或第二判断数据作为商判断数据。
依据本发明的第二个方面,提供了一个高基除法器,用于被除数A除以除数B的基4除法,以便一次得出2位的商,所述高基除法器包括:一个倍数发生装置,用于对除数B移位以产生2B;一个第一比较器,用于接收输入的除数B和余数R,判断除数B是否等于或小于余数R,并输出判断结果;一个第二比较器,用于接收输入的由倍数发生装置产生的2B和余数R,判断2B是否等于或小于余数R,并输出判断结果;一个三输入比较器,包括一个3∶2压缩器级,用于接收输入的作为三个m-位宽二进制数的2B、B和余数R,将总数变换成两个m-位宽二进制数(Co,S)并输出,还包括一个非负判断级,用于根据从3∶2压缩器级输出的两个二进制数(Co,S)判断总值是否是非负的;一个选择电路,用于根据三输入比较器、第二比较器和第一比较器的比较结果获得选择2B与“0”中的一个的第一输出y和选择除数B和“0”中的一个的第二输出z;一个三输入加法器/减法器,用于接收输入的作为三个m-位宽二进制数的余数R和选择电路的第一输出y和第二输出z,并用单个行波进位并行执行{R-(y+z)}的复数加法和减法,以得到一个新余数Re;以及一个匹配器,用于根据三输入比较器、第二比较器和第一比较器的比较结果执行位匹配,以确定商Q。
依据本发明的第三个方面,提供了一种高基除法方法,用于被除数A除以除数B的基2k除法,以便一次得出k位的商,所述方法包括下列步骤:对除数B移位以产生2s×B(s是包括“0”的非负整数,s≤k);第一比较步骤,比较除数B和余数R,以判断除数B是否等于或小于余数R;第二比较步骤,比较2s×B和余数R,以判断2s×B是否等于或小于余数R;第三比较步骤,将作为三个m-位宽二进制数的2s×B、+/-2t(t<s)×B和余数R的总数变换成两个m-位宽二进制数(Co,S),并根据两个二进制数(Co,S)判断总值是否是非负的;根据第三、第二和第一比较步骤的比较结果获得选择2s×B或“0”中的一个的y和选择除数B或“0”中的一个的z;用单个行波进位并行执行{R-(y+z)}的复数加法和减法,以得到一个新余数Re;以及,根据第三、第二和第一比较步骤的比较结果执行位匹配以确定商Q;其中,第一比较步骤、第二比较步骤和第三比较步骤是并行执行的。
依据本发明,2s×B(s是包括“0”的非负整数,s≤k)是在倍数发生装置中对除数B移位而产生的,并提供给第二比较器和三输入比较器。
然后,下面的比较是在第一比较器、第二比较器和三输入比较器中并行执行的。
在第一比较器中,输入除数B和余数R,判断除数B是否等于或小于余数R,并将判断结果输出到选择电路。
在第二比较器中,输入在倍数发生装置中产生的2s×B和余数R,判断2s×B是否等于或小于余数R,并将判断结果输出到选择电路。
在三输入比较器中,输入三个m-位宽二进制数2s×B、+/-2t(t<s)×B和余数R,在3∶2压缩器级中将其总数变换成两个m-位宽二进制数(Co,S),在非负判断级中根据从3∶2压缩器输出的两个二进制数(Co,S)判断总值是否是非负的,并将判断结果输出到选择电路。
在选择电路中,根据三输入比较器、第二比较器和第一比较器的比较结果,选择2s×B与“0”中的一个以获得第一输出y,选择除数B和“0”中的一个以获得第二输出z,并将其提供给三输入加法器/减法器。
在三输入加法器/减法器中,用单个行波进位并行执行{R-(y+z)}的复数加法和减法,并得到一个新余数Re。
然后,根据三输入比较器、第二比较器和第一比较器的比较结果,在匹配器中执行位匹配,并确定商Q。
并且,在三输入比较器的所谓的倍数比较方法中,可以例如根据由倍数发生装置产生的+/-2s的倍数数目、例如+/-B、+/-2B、+/-4B、+/-8B和+/-16B采用在下列例子中所用的方法。
3B=(B+2B)≤R
5B=(B+4B)≤R
6B=(2B+4B)≤R
7B=(-B+8B)≤R
9B=(B+8B)≤R
10B=(2B+8B)≤R
12B=(4B+8B)≤R
14B=(-2B+16B)≤R
15B=(-B+16B)≤R
17B=(B+16B)≤R
18B=(2B+16B)≤R
20B=(4B+16B)≤R
24B=(8B+16B)≤R
附图说明
从下面参考附图给出的对最佳实施例的说明,本发明的这些和其他目的和特征将变得更加清楚,其中:
图1是恢复除法除法器的一般结构的例子的电路图;
图2是基2恢复除法除法器的商/余数判断单元的常规结构的电路图;
图3是基2恢复除法除法器的例子的视图;
图4是基4恢复除法除法器的商/余数判断单元的常规结构的电路图;
图5是常规高基除法器进行的基4恢复除法的例子的视图;
图6是依据本发明的高基除法器的一个实施例的电路图;
图7是依据本发明的图6中的商/余数判断单元的结构的特定例子的电路图;
图8是依据本发明的对应于不等式(X+Y)≤Z的三输入比较器的结构的特定例子的电路图;
图9是依据本发明的对应于不等式(X+Y)≤Z的m-数位三输入比较器的结构的特定例子的电路图;
图10是依据本发明的三输入加法器/减法器的结构的特定例子的电路图;以及
图11是依据本发明的由高基除法器进行的基4恢复除法的一个例子的视图。
具体实施方式
下面参考附图说明最佳实施例。
图6是依据本发明的高基除法器的一个实施例的电路图。
如图6所示,高基除法器200包括用于在第一级STG1中获得商的符号的异或门210、用于在第一级STG1中获得被除数A和除数B的绝对值的绝对值获得器211和212、用于第二级STG2的处理的商/余数判断单元213、用于第二级STG2中的处理的符号反相器214、选择器215、由控制信号CTL操作的级选择选择器216至219、符号寄存器220、B(除数)寄存器221、R(余数)寄存器222和Q(商)寄存器223。
图6所示的高基除法器200的方框结构与图1中的相同。商/余数判断单元213的特定结构不同。
在处理方面,第一级STG1和第三级STG3与参考图1和图2说明的处理大致相同。第二级STG2的处理、更具体地说是STG2-1的处理与现有技术的不同。
因此,下面参考附图将说明集中于商/余数判断单元213的结构和功能上。
图7是本发明的特征部分-图6中的商/余数判断单元213的结构的一特定例子的电路图。
如图7所示,商/余数判断单元213包括用作倍数发生装置的移位器310、用于B≤R的N-数位比较器311、用于2B≤R的(N+1)-数位比较器312、用于3B≤R的(N+1)-数位三输入比较器313、用于商判断的2-数位2∶1选择器(第一至第三选择器)314至316、用于y和z的(N+1)-数位2∶1选择器(第四至第五选择器)317和318、用于获得新余数Re的(N+1)-数位三输入加法器319、以及位匹配器320和321。
移位器310将存储在B寄存器221中的除数B移一位,以产生2B,并将结果提供给比较器312和三输入比较器313。
N-数位比较器311接收由输入端in输入的存储在B寄存器221中的除数B和由输入端ref输入的存储在R寄存器222中的余数R,判断除数B是否等于或小于余数R,并向选择器314的控制端输出比较结果-信号S311。
更具体地,当除数B等于或小于余数R时,即,在肯定的判断结果的情况下,输出逻辑为“1”的信号S311(cmp_b1=1),而在否定的判断结果的情况下,输出逻辑为“0”的信号S311(cmp_b1=0)。
(N+1)-数位比较器312在输入端in接收来自移位器310的输入2B,在输入端ref接收输入的存储在R寄存器222中的余数R,判断2B是否等于或小于余数2B,并向选择器315的控制端输出判断结果-信号S312。
更具体地,当除数B的倍数2B等于或小于余数R时,即,在肯定的判断结果的情况下,输出逻辑为“1”的信号S312(cmp_b2=1),而在否定的判断结果的情况下,输出逻辑为“0”的信号S312(cmp_b2=0)。
(N+1)-数位三输入比较器313在输入端in1接收来自移位器310的输入2B,在输入端in2接收输入的存储在B寄存器221中的除数B,在输入端ref接收输入的存储在R寄存器222中的余数R,在未得出输入到输入端in1的2B和输入到输入端in2的B的总和的情况下比较(2B+B)和余数R,判断(2B+B)是否等于或小于余数R,并向选择器316的控制端输出判断结果-信号S313。
更具体地,当3B等于或小于余数R时,即,在肯定的判断结果的情况下,输出逻辑为“1”的信号S313(cmp_b3=1),而在否定的判断结果的情况下,输出逻辑为“0”的信号S313(cmp_b3=0)。
下面说明三输入比较器313的原理。
在这里,X、Y和Z是M-数位的带符号二进制数。
[原理]
将所判断的不等式(X+Y)≤Z改为
(X+Y)-Z≤0。
其结果为,对不等式的评价归结为对不等式左边的符号(负,非负)的评价。
当假设-Z是2的补码而对其进行修改时,左边变为:
(X+Y)-Z=X+Y+~Z+1
注意,“~”表示反相。
此外,同样可改为:
X+Y+~Z+1≤0
X+Y+~Z≤-1<0
加法(X+Y+~Z)的结果的符号位可以用来表示不等式的真值。
3∶2压缩器用于得出可以由下式表达的M-数位二进制数Co,S:
X+Y+~Z=2*Co+S
在这里,当集中于(2*Co)的第0个数位总是为“0”这个事实时,可以将等式修改为
Co的第(M-1)个数位至第0个数位+{S的第(M-1)个数位,S的第(M-1)个数位至第1个数位}(符号扩展)+S的第0个数位
并且可以用具有一个进位输入的M-数位加法器来计算。
这里所需要的是加法结果的符号位。不需要获得其他位。
因此,可以使用一个加法器,其中,省略了与符号位(加法的第(M-1)个数位)的产生没有关系的逻辑电路。
图8是依据本发明的m-数位三输入比较器的结构的特定例子的电路图。
三输入比较器313包括用于得到“Z”“~Z”的非门410至41m-1、3∶2压缩器420、以及用作非负判断级的加法器430。
3∶2压缩器420包括对应于数位个数排列的全加器FA0至FAm-1。
加法器FA0至FAm-1的输入端A接收输入的相应X(0至m-1;图7中的2B),输入端B接收输入的Y(0至m-1;图7中的B),输入端Ci接收输入的在非门410至41m-1中反相的~Z(0至m-1;图7中的R)。
加法器430是具有m-数位的输入(carry-in)的加法器,其中,省略了与产生最高有效位(SUMm-1)没有关系的逻辑门。
加法器430的输入端Cin与全加器FA0的端子S相连。输入端B0与全加器FA0的端子Co相连,端子A0与全加器FA1的端子S相连。
同样,输入端Bi-1与全加器FAi-1的端子Co相连,输入端Ai-1与全加器FAi的端子S相连,输入端Bi与全加器FAi的端子Co相连。
此外,输入端Bm-2与全加器FAm-2的端子Co相连,输入端Am-2和Am-1与全加器FAm-1的端子S相连,输入端Bm-1与全加器FAm-1的端子Co相连。
注意,图8所示的m-数位输入比较器对应于不等式(X+Y)≤Z,足以处理基4除法。
然而,在基8的情况下,需要将7B与余数进行比较,但7B可以由8B减去B得到。
因此,在图8的电路中,不能处理上述情况,需要使用一个对应于不等式(X-Y)≤Z而不是对应于不等式(X+Y)≤Z的电路。
B
2B
3B=B+2B
4B
5B=B+4B
6B=2B+4B
7B=8B-B
图9是对应于不等式(X-Y)≤Z的m-数位三输入比较器的结构的特定例子的电路图。
m-数位三输入比较器313A与图8的比较器313的不同点在于提供了用于得出“X”“~X”的非门41A0至41Am-1来代替用于得出“Z”“~Z”的非门410至41m-1。其他结构与图8中电路相同。这里将省略对详细连接的说明。
下面说明(X-Y)≤Z型的三输入比较器的原理。
将要评价的不等式(X-Y)≤Z改为:
Z+Y-X≥0
其结果为,将对不等式的评价归结为对不等式符号的左边的符号(负,非负)的评价。
当假设-X是2的补数时,上式变为:
Z+Y+~X+1≥0
如图9所示,这是通过合并3∶2压缩器和加法器来实现的。
当在其控制端接收到比较器311的为逻辑“1”的输出信号S311时,选择器314选择并输出2位第一判断数据“01”,而当接收到为逻辑“0”的输出信号S311时,选择器314选择并输出2位第二判断数据“00”。
当在其控制端接收到比较器312的为逻辑“1”的输出信号S312时,选择器315选择并输出2位第三判断数据“01”,而当接收到为逻辑“0”的输出信号S312时,选择器315选择并输出从选择器314有选择地输出的2位第一或第二判断数据“01”或“00”。
当在其控制端接收到比较器313的为逻辑“1”的输出信号S313时,选择器316选择并输出2位第四判断数据“11”,而当接收到为逻辑“0”的输出信号S313时,选择器316选择从选择器315有选择地输出的2位第三、第二或第一判断数据“10”、“01”或“00”,作为商数据“judge”输出到位匹配器321,将商判断数据“judge”的高位输出到选择器317的控制端,将低位输出到选择器318的控制端。
当三输入比较器313的输出信号S313为逻辑“1”(cmp_b3=1)时,无论比较器313和312的比较结果是什么,选择器316的输出的商判断数据都变为“11”。
当三输入比较器313的输出信号S313为逻辑“0”(cmp_b3=0)并且比较器312的输出信号S312为逻辑“1”(cmp_b2=1)时,无论比较器313的比较结果是什么,商判断数据“judge”都变为“10”。
当三输入比较器313的输出信号S313为逻辑“0”(cmp_b3=0)、比较器312的输出信号S312为逻辑“0”(cmp_b2)、并且比较器311输出信号S311为逻辑“1”(cmp_b1=1)时,商判断数据“judge”变为“01”。
当所有比较器311至313的输出信号S311至S313都为逻辑“0”(cmp_b3=0,cmp_b2=0,cmp_b1=0)时,商判断数据“judge”变为“00”。
当在其控制端接收到选择器316的判断数据“judge”的为逻辑“1”的较高一位数据时,选择器317选择在移位器310中产生的除数B的倍数2B,而当接收到为逻辑“0”的数据时,将“0”数据输入到三输入加法器/减法器319的输入端y。
当在其控制端接收到选择器316的判断数据“judge”的为逻辑“1”的较低一位数据时,选择器318选择存储在B寄存器221中的除数B,而当接收到为逻辑“0”的数据时,将“0”数据输入到三输入加法器/减法器319的输入端z。
最后,根据商判断数据“judge”的内容将下列数据输入到三输入加法器/减法器319的输入端y和z。
当judge=11,y=2B和z=B
当judge=10,y=2B和z=0
当judge=01,y=0和z=B
当judge=00,y=0和z=0
三输入加法器/减法器319在其输入端x接收输入的存储在R寄存器222中的余数R,在如上所述的输入端接收从选择器317有选择地输出的除数B的倍数2B或“0”,在输入端z接收从选择器318有选择地输出的除数B或“0”,并根据公式{x-(y+z)}得到一个新的余数R-(y+z)=Re(N-数位)。
注意,三输入加法器/减法器319用一单个行波进位同时执行加法和减法。
下面说明三输入加法器/减法器319的原理。在这里,X、Y和Z是M-数位的带符号二进制数。
通过采用2的补数的变形,
X-(Y+Z)=X-Y-Z
=X+~Y+~Z+10b
10b是2-位二进制数。
得到可以表示为
X+~Y+~Z=2*Co+S
的M-数位二进制数Co和S。
在这里,当将S的内容表示为Sm-1,…,S1,S0以及
将Co的内容表示为Cm-1,...,C1,C0时,执行下列加法:
Sm-1 Sm-1 Sm-2 … S2 S1 S0
Cm-1 Cm-2 Cm-3 … C1 C0 0
+) 1 0
在这里,令{Sm-1,Sm-1,Sm-2,…,S2,S1}为S’,由带有一个进位输入的M-数位加法器计算
S’+Co+1
其结果用SUM表示。
可以获得最终结果X-(Y+Z),作为{SUM,S0}的一个位连接。
图10是依据本发明的m-数位三输入加法器的结构的特定例子的电路图。
三输入加法器/减法器319包括用于得到“Y”“~Y”的非门510至51m-1、用于得到“Z”“~Z”的非门520至52m-1、3∶2压缩器530、以及加法器540。
与三输入加法器313的情况相同,3∶2压缩器530包括对应于数位个数排列的全加器FA0至FAm-1。
全加器FA0至FAm-1的输入端A接收输入的相应X(0至m-1;图7中的2B),输入端B接收输入的在非门510至51m-1中反相的~Y(0至m-1;图7中的选择器317的输出的反相信号),输入端Ci接收输入的在非门520至52m-1中反相的~Z(0至m-1;图7中的选择器318的输出的反相信号)。
加法器540是具有m-数位的进位输入而没有进位输出的加法器。
加法器540的输入端Cin总是接收逻辑“1”数据。
输入端B0与全加器FA0的端子Co相连,端子A0与全加器FA1的端子S相连。
同样,输入端Bi-1与全加器FAi-1的端子Co相连,输入端Ai-1与全加器FAi的端子S相连,输入端Bi与全加器FAi的端子Co相连。
此外,输入端Bm-2与全加器FAm-2的端子Co相连,输入端Am-2和Am-1与全加器FAm-1的端子S相连,输入端Bm-1与全加器FAm-1的端子Co相连。
从加法器540输出m个输出SUM0至SUMm-1。将这些作为新余数Re提供给选择器218。
并且,3∶2压缩器530的全加器FA0的端子S的输出被用作三输入加法器/减法器319的输出信号。
匹配器320从三输入加法器/减法器319接收输入的新余数以及存储在Q寄存器中的商Q,并将其向左移两位,位匹配器320产生下一个R寄存器的值NEXT_R,并将其输出到选择器218。
位匹配器321接收输入的存储在Q寄存器223中的商Q和选择器316的商判断数据“judge”,并将其向左移两位,以获得下一个R寄存器的值NEXT_Q,并将其输出到选择器219、符号反相器214和选择器215。
接着,说明上述结构的操作。
第一级STG1
(1)在异或门210中,参看被除数A和除数B的符号位(MSB),提前得到商的符号,并将其通过选择器216存储在符号寄存器220中。
例如,当商的符号为负时,设定sign=1。
(2)由绝对数发生器211得到被除数A的绝对值,并通过选择器219存储在Q寄存器223中。
(3)同样,在绝对数发生器212中获得除数B的绝对值,并通过选择器217存储在B寄存器221中。
将存储在R寄存器222中的余数R、存储在B寄存器221中的除数B以及存储在Q寄存器223中的商Q提供给商/余数判断单元213。
在商/余数判断单元213中,将存储在B寄存器221中的除数B提供给移位器310、比较器311的输入端in和三输入比较器313的输入端in2,将存储在R寄存器222中的余数R提供给比较器311至313的输入端ref和三输入加法器319的输入端x,将存储在Q寄存器223中的商Q提供给位匹配器321。
然后,在商/余数判断单元213中,执行第二级STG2-1的处理。
第二级STG2-1
(1)在移位器310中,将存储在B寄存器221中的除数B移位一位,以产生2B(N+1数位),并将其提供给比较器312的输入端in和三输入比较器313的输入端in1。
在比较器311和312以及三输入比较器313中并行地执行下面的比较操作。
N-数位比较器311判断提供到输入端in的除数B是否等于或小于提供到输入端ref的余数R。当判断结果为除数B等于或小于余数R(在肯定的判断结果的情况下)时,将为逻辑“1”(cmp_b1=1)的信号S311输出到选择器314的控制端,而在否定的判断结果的情况下,输出为逻辑“0”(cmp_b1=0)的信号S311。
(N+1)-数位比较器312判断提供到输入端in的2B是否等于或小于余数R。当判断结果为除数B的倍数2B等于或小于余数R(在肯定的判断结果的情况下)时,将为逻辑“1”(cmp_b2=1)的信号S312输出到选择器315的控制端,而在否定的判断结果的情况下输出为逻辑“0”(cmp_b2=0)的信号S312。
在(N+1)-数位三输入比较器313中,在没有得出提供给输入端in1的2B与提供给输入端in2的除数B的和的情况下,将(2B+B)与提供给输入端ref的余数R进行比较,以判断(2B+B)是否等于或小于余数R。
当判断结果为3B等于或小于余数R时(在肯定的判断结果的情况下),将为逻辑“1”(cmp_b3=1)的信号S313提供给选择器316的控制端,而在否定的判断结果的情况下,输出为逻辑“0”(cmp_b3=)的信号S313。
(2)在选择器314中,当在其控制端接收到比较器311的为逻辑“1”的输出信号S311时,选择2-位判断数据“01”,而当接收到为逻辑“0”的输出信号S311时,选择并输出2-位判断数据“00”。
在选择器315中,当在其控制端接收到比较器312的为逻辑“1”的输出信号S312时,选择2-位判断数据“01”,而当接收到为逻辑“0”的输出信号S312时,选择并输出从选择器314有选择地输出的2-位判断数据“01”或“00”。
并且,在选择器316中,当在其控制端接收到比较器313的为逻辑“1”的输出信号S313时,选择2-位判断数据“11”,而当接收到为逻辑“0”的输出信号S313时,选择从选择器315有选择地输出的2-位判断数据“10”、“01”或“00”,并作为商判断数据“judge”输出到位匹配器321。
将商判断数据“judge”的较高一位输入到选择器317的控制端,将较低一位输入到选择器3 18的控制端。
当商判断数据“judge”是“11”时,输入到选择器317和318的控制端的数据是“11”,因此由选择器317选择来自移位器310的输出2B并输入到三输入加法器/减法器319的输入端y,由选择器318选择存储在B寄存器中的除数B,并输入到三输入加法器/减法器319的输入端z。
当商判断数据“judge”是“10”时,到选择器317和318的控制端的数据是“10”,因此由选择器317选择移位器310的输出2B并输入到三输入加法器/减法器319的输入端y,由选择器318选择“0”并输入到三输入加法器/减法器319的输入端z。
当商判断数据“judge”是“01”时,到选择器317和318的控制端的数据是“01”,因此由选择器317选择“0”并输入到三输入加法器/减法器319的输入端y,由选择器318选择存储在B寄存器221中的除数B,并输入到三输入加法器/减法器319的输入端z。
当商判断数据“judge”是“00”时,到选择器317和318的控制端的数据是“00”,因此由选择器317选择“0”并输入到三输入加法器/减法器319的输入端y,由选择器318选择“0”并输入到三输入加法器/减法器319的输入端z。
其结果为,在输入下列数据时,根据商判断数据“judge”的内容,接收三输入加法器/减法器319的输入端y和z:
当judge=11时,y=2B和z=B
当judge=10时,y=2B和z=0
当judge=01时,y=0和z=B
当judge=00时,y=0和z=0
三输入加法器/减法器319采用在输入端x输入的存储在R寄存器222中的余数R、如上所述在输入端y输入的从选择器有选择地输出的除数B的倍数2B或“0”、以及输入到输入端z的从选择器318有选择地输出的除数B或“0”来根据公式{x-(y+z)}得到新余数R-(y+z)=Re(N个数位)。
此时,由三输入加法器/减法器319中的单个行波进位并行地执行加法和减法。
第三级STG3
(1)将来自三输入加法器/减法器319的新余数R和存储在Q寄存器223中的商Q输入到位匹配器320,并将其向左移两位。其结果为,产生下一个R寄存器的值NEXT_R。
并且,将存储在Q寄存器223中的商Q和来自选择器316的商判断数据“judge”输入到位匹配器321,并将其向左移两位。其结果为,产生下一个Q寄存器的值NEXT_Q。
即,
NEXT_R={Re的第(N-3)到第0个数位,Q的第(N-1)到第(N-2)个数位}
NEXT_Q={Q的第(N-3)到第0个数位,judge}
(2)通过参考存储在符号寄存器220中的符号,由符号反相器214和选择器215校正商的符号,并得到最终的商LAST_Q。
即,
当sign=1(为负情况)时:LAST_Q=~NEXT_Q+1(取2的补数)
注意,“~”表示反相。
当sign=0(非负情况)时:LAST_Q=~NEXT_Q(取2的补数)
(3)然后,将NEXT_R、NEXT_Q分别输入进R寄存器222和Q寄存器223。
图11是依据该实施例的除法器的操作的过程的视图。
如图11所示,根据依据该实施例的除法器200,可以理解,由基于现有技术的基4除法器由同一过程(图5)得到正确的回答。
并且,与图4中所示的基4商/余数判断单元113相比,依据该实施例的在图7中所示的基4除法器200的商/余数判断单元213在逻辑电路的尺寸上减少了。
下面将证明,商/余数判断单元213的电路的尺寸减小了图4中所示的基4商/余数判断单元113的电路的尺寸。
注意,下面出现的符号ADDn+1和CMPn+1表示处理器的门个数。
<证明>
(假设)
在现有技术的情况下,
用于2B+B的(N+1)-数位宽的加法器…ADDn+1,一个
用于R-B的N-数位宽的减法器…SUBn,一个
用于R-2B的(N+1)-数位宽的减法器…SUBn+1,一个
用于R-3B的(N+2)-数位宽的减法器…SUBn+2,一个
N-数位宽的2∶1选择器…SELn,三个
2-数位宽的2∶1选择器…SEL2,三个
总数为“J”。
在本发明的情况下,
(N+1)-数位比较器…CMPn+1,一个
N-数位比较器…CMPn,一个
(N+2)-数位三输入比较器…TCMPn+1,一个
(N+1)-数位2∶1选择器…SELn+1,两个
2-数位2∶1选择器…SEL2,三个
(N+1)-数位三输入加法器/减法器…TADDn+1,一个
总数为“K”。
首先,考虑选择器的尺寸。
J=J’+3·SELn+3·SEL2
K=K’+2·SELn+1+3·SEL2
注意,
J’=ADDn+1+SUBn+SUBn+1+SUBn+2
K’=TADDn+1+CMPn+CMPn+1+TCMPn+1
一般地,当n为3或更多时,
SELn×3>SELn+1×2
因此,当证明J’≥K’时,当n为三或更多时J>K成立。
下面检查“J’”和“K’”的幅度的关系。
(2)一般地,比较器输出两个数的减法结果的符号位。这个状态等效于去除与产生减法器输出的最高有效位无关的逻辑。
虽然取决于构成减法器的方法,但在先行进位减法器中下列关系成立:
CMPn/SUBn=0.4到0.5 (2-1)
并且,一般地,n-数位先行进位加法器或先行进位减法器的门个数正比于:
n·{(log n)+2} (log的底数是2)
在加法器与减法器之间的门个数没有那么大的差别。
因此,可以设正比常数“k”,将其表示为:
ADDn,SUBn=k×n·{(log n)+2} (2-2)
如图11所示,n-数位三输入加法器/减法器只不过是一个n-数位加法器加上一个n-数位3∶2压缩器(n个全加器)。
因此,从上述公式(2-2),可以将其表示为:
TADDn=k×n·{(log n)+3} (2-3)
如图8所示,n-数位三输入比较器包括一个比较器和一个3∶2压缩器,因此,从上述公式(2-1),当假设使用0.5时,
TCMPn=SUMn×0.5+nk (2-4)
nk是一个3∶2压缩器。
当将上述估计概括起来时,
J’=k×(n+1)·{(log n+1)+2}…采用公式(2-2)
+k×(n)·{(log n)+2}…采用公式(2-2)
+k×(n+1)·{(log n+1)+2}…采用公式(2-2)
+k×(n+2)·{(log n+2)+2}…采用公式(2-2)
K’=k×(n+1)·{(log n+1)+3}…采用公式(2-3)
+k×(n)·{(log n)+2}×0.5…采用公式(2-1)
+k×(n+1)·{(log n+1)+2}×0.5…采用公式(2-1)
+k×(n+1)·{(log n+1)+2}×0.5…采用公式(2-4)
=k×(n+1)·{(log n+1)+2}+k×(n+1)
+k×(n)·{(log n)+2}×0.5
+k×(n+1)·{(log n+1)+2}×0.5
+k×(n+1)·{(logn+1)+2}×0.5+nk
J’-K’=-k(n+1)
+k×(n)·{(log n)+2}×0.5
+k×(n+1)·{(logn+1)+2}×0.5
+W-nk
在这里,
W=k×(n+2)·{(log n+2)+2}
-k×(n+1)·{(log n+1)+2}×0.5
显然,W>0 (2-5)
J’-K’=
+W
+k×(n)·{(log n)+2}×0.5
+k×(n+1)·{(logn+1)+2}×0.5
-k(2n+1)
在这里,假设
J’-K’=W+U
U=V-k(2n+1)
V=k×(n)·{(log n)+2}×0.5
+k×(n+1)·{(log n+1)+2}×0.5
V>V’=k×n·{(log n)+2}×0.5
+k×n·{(log n+1)+2}×0.5
=k×n·{(log n)+2}
=kn(log n)+2kn
V’-k(2n+1)=kn(log n)+2kn-k(2n+1)
=kn(log n)-k
当n是2或更多时,
V’-k(2n+1)>0
总是成立。
因此,
V>V’>k(2n+1)以及
U>V-k(2n+1)>0 (2-6)
成立。
其结果为,从公式(2-5)和公式(2-6),
W>0和U>0(当n为3或更多时)
成立,并且
J’-K’=W+U>0(当n为3或更多时)
因此,
J’>K’(当n为3或更多时)
成立。
在(1)的结论中,当
J’>K’时,
J>K
总是成立。
<证明结束>
注意,在该实施例中,虽然对基4(或基8)除法器的例子进行了说明,但无须说明的是,本发明还可以运用到其他高阶基除法器中。
注意,例如,在基16的情况下,需要通过移位来准备B、2B、4B、8B和16B。
此时,
8B
9B=8B+B
10B=8B+2B
11B=8B+2B+B
12B=8B+4B
13B=8B+4B+B
14B=16B-2B
15B=16B-B
这里的问题在于,当比较11B和13B的余数时,需要四输入比较器而不是三输入比较器。
注意,在基32的情况下需要五输入比较器。
通过再将一个3∶2压缩器增加到三输入比较器的输入级,在原理上可以将比较器扩展为四输入比较器或五输入比较器。
并且,在上述实施例中,扩展到基4三输入加法器/减法器来用于实现
X-(2B+B)
但在实现基8除法时,需要一个四输入加法器/减法器来用于实现
X-(4B+2B+B)
四输入加法器/减法器可以通过在三输入加法器/减法器之前提供一个3∶2压缩器来实现。
即,将其构造为“3∶2压缩器+3∶2压缩器+加法器”。
下面说明(X-(Y+Z+W))四输入加法器/减法器的原理。
通过2的补数的变形,
X-Y-Z-W=X+~Y+~Z+~W+1+1+1
用3∶2压缩器将(X+~Y+~Z)变换成如下两个二进制数(C1,S1):
X+~Y+~Z=2·C1+S1
其中,“2·”表示相对于C1向左移一位。
此外,用3∶2压缩器将(2·C1+S1+~W)变换成如下两个二进制数(C2,S2)。
此时,到3∶2压缩器的输入变为如下:
MSB 数位 LSB
S1: * s s… s
C1: c c … c 1
+)~W: * w w… w
注意,C1被相对于S1和~W向左移一位,在移位之后将“1”***LSB。
并且,“*”实现了最高有效位(MSB)的符号扩展,而在C1末尾的“1”实现了2的补数的“+1”。
同样,下列关系成立:
(2·C1+S1+~W)=2·C1+S2
最后有到最终加法器的输入。该输入如下,包括加法器的进位输入Cin:
MSB 数位 LSB
S2: * s s… s
C2: c c … c 1
加法器的Cin: 1
在这里,“*”实现了最高有效位(MSB)的符号扩展,而在C1末尾的“1”实现了2的补数的“+1”,Cin的“1”实现了2的补数的“+1”。
C2被相对于S2向左移一位,在移位之后将“1”***LSB。
因此,执行了三次2的补数的“+1”,则可以正确地获得
X-Y-Z-W
在这种情况下,可以减小高基除法器的商/余数判断单元的电路尺寸。
如上所述,总结本发明的作用,本发明的优点在于可以减小高基除法器的商/余数判断单元的电路尺寸。
虽然已经结合出于例示目的而选择的特定实施例来描述了本发明,但显而易见的是,在不偏离本发明的基本概念和范围的情况下,本领域普通技术人员可以对其作出各种修改。
Claims (13)
1.一种高基除法器,用于被除数A除以除数B的基2k除法,以便一次得出k位的商,所述高基除法器包括:
一个倍数发生装置,用于对所述除数B移位以产生2s×B,s是包括“0”的非负整数,s≤k;
第一比较器,用于接收输入的除数B和余数R,判断除数B是否等于或小于余数R,并输出判断结果;
至少一个第二比较器,用于接收输入的由所述倍数发生装置产生的2s×B和余数R,判断2s×B是否等于或小于余数R,并输出判断结果;
至少一个三输入比较器,具有一个3∶2压缩器级,用于接收输入的作为三个m-位宽二进制数的2s×B、+/-2t(t<s)×B和余数R,将总数变换成两个m-位宽二进制数(Co,S)并输出,还具有一个非负判断级,用于根据从所述3∶2压缩器级输出的所述两个二进制数(Co,S)判断所述总值是否是非负的;
一个选择电路,用于根据所述三输入比较器、第二比较器和第一比较器的比较结果获得选择2s×B与“0”中的一个的第一输出y和选择除数B和“0”中的一个的第二输出z;
一个三输入加法器/减法器,用于接收输入的作为三个m-位宽二进制数的余数R和所述选择电路的第一输出和第二输出,并用单个行波进位并行执行{R-(y+z)}的复数加法和减法,以得到一个新余数Re;以及
一个匹配器,用于根据所述三输入比较器、第二比较器和第一比较器的比较结果执行位匹配,以确定商Q。
2.如权利要求1所述的高基除法器,其特征在于:
所述三输入比较器的所述3∶2压缩器级包括一个m-位宽3∶2压缩器,用于按照每位接收输入的两个二进制数2s×B和+/-2t(t<s)×B,并通过对每位取非来接收输入的一个二进制数R。
3.如权利要求2所述的高基除法器,其特征在于:
所述三输入比较器的非负判断级包括一个m-数位加法器,具有0到m-1个形成m对的输入A和输入B和一个进位输入Cin,将所述3∶2压缩器级的第0个数位S-输出作为进位输入Cin的输入,将相应的第0到第(m-1)个数位Co输出作为B0到Bm-1输入,将第i(i<m)个数位S-输出作为(i-1)A-输入,将(m-1)数位S-输出作为Am-1输入,以及
所述三输入比较器判断并输出所述加法器的加法输出的第(m-1)个数位SUMm-1。
4.如权利要求3所述的高基除法器,其特征在于:
所述m-数位加法器只包括与产生加法输出的第(m-1)个数位SUMm-1有关的逻辑门。
5.如权利要求1所述的高基除法器,其特征在于:
所述三输入加法器/减法器包括一个用于将三个m-位宽二进制数的总数变换成两个m-位宽二进制数(Co,S)以供输出的3∶2压缩器级以及一个用于根据从所述3∶2压缩器级输出的所述两个二进制数(Co,S)得到数位和的m-数位加法器。
6.如权利要求5所述的高基除法器,其特征在于:
所述三输入加法器/减法器的所述3∶2压缩器级包括一个m-位宽3∶2压缩器,按照每位接收输入的一个二进制数R,并通过对每位取非来接收输入的两个二进制数y和z。
7.如权利要求6所述的高基除法器,其特征在于:
所述三输入加法器/减法器的m-数位加法器具有0到m-1个形成m对的输入A和输入B和一个进位输入Cin,将逻辑“1”作为进位输入Cin的输入,将相应的第0个数位到第(m-1)个数位Co输出作为B0到Bm-1输入,将第i(i<m)个数位S输出作为(i-1)个A输入,将(m-1)-数位S输出作为Am-1个输入,以及
所述三输入加法器/减法器采用所述m-数位加法器的加法输出的SUM0到SUMm-1和3∶2压缩器的第0个数位S输出作为加法/减法的结果输出。
8.如权利要求1所述的高基除法器,其特征在于,所述选择电路包括:
一个第一选择器,用于根据所述第一比较器的判断结果选择不同的k-位第一和第二判断数据中的一个;
一个第二选择器,用于根据所述第二比较器的判断结果选择又一个不同的k-位第三判断数据和由所述第一选择器选择的第一或第二判断数据中的一个;
一个第三选择器,用于根据所述三输入比较器的判断结果选择又一个不同的第四判断数据和由所述第二选择器选择的第一、第二或第三判断数据中的一个,并将选择的数据输出到所述匹配器作为商判断数据;
一个第四选择器,用于根据所述商判断数据的较高位选择2s×B或“0”中的一个,以选择所述第一输出y;以及
一个第五选择器,用于根据所述商判断数据的较低位选择B或“0”中的一个,以选择所述第二输出z。
9.如权利要求8所述的高基除法器,其特征在于:
当在所述三输入比较器中获得(B+2B)等于或小于余数R的判断结果时,无论所述第二和第一比较器的判断结果如何,所述选择电路选择第四判断数据作为商判断数据,当在所述三输入比铰器中获得(B+2B)大于余数R的判断结果以及在所述第二比较器中获得(2s×B)等于或小于余数R的判断结果时,无论所述第一比较器的判断结果如何,所述选择电路选择第三判断数据作为商判断数据,当在所述第二比较器中获得(2s×B)大于余数R的判断结果时,所述选择电路选择第一或第二判断数据作为商判断数据。
10.如权利要求5所述的高基除法器,其特征在于,所述选择电路包括:
一个第一选择器,用于根据所述第一比较器的判断结果选择不同的k-位第一和第二判断数据中的一个;
一个第二选择器,用于根据所述第二比较器的判断结果选择又一个不同的k-位第三判断数据和由所述第一选择器选择的第一或第二判断数据中的一个;
一个第三选择器,用于根据所述三输入比较器的判断结果选择又一个不同的第四判断数据和由所述第二选择器选择的第一、第二或第三判断数据中的一个,并将选择的数据输出到所述匹配器作为商判断数据;
一个第四选择器,用于根据所述商判断数据的较高位选择2s×B或“0”中的一个,以选择所述第一输出y;以及
一个第五选择器,用于根据所述商判断数据的较低位选择B或“0”中的一个,以选择所述第二输出z。
11.如权利要求10所述的高基除法器,其特征在于:
当在所述三输入比较器中获得(B+2B)等于或小于余数R的判断结果时,无论所述第二和第一比较器的判断结果如何,所述选择电路选择第四判断数据作为商判断数据,当在所述三输入比较器中获得(B+2B)大于余数R的判断结果以及在所述第二比较器中获得(2s×B)等于或小于余数R的判断结果时,无论所述第一比较器的判断结果如何,所述选择电路选择第三判断数据作为商判断数据,当在所述第二比较器中获得(2s×B)大于余数R的判断结果时,所述选择电路选择第一或第二判断数据作为商判断数据。
12.一种高基除法器,用于被除数A除以除数B的基4除法,以便一次得出2位的商,所述高基除法器包括:
一个倍数发生装置,用于对所述除数B移位以产生2B;
一个第一比较器,用于接收输入的除数B和余数R,判断除数B是否等于或小于余数R,并输出判断结果;
一个第二比较器,用于接收输入的由所述倍数发生装置产生的2B和余数R,判断2B是否等于或小于余数R,并输出判断结果;
一个三输入比较器,包括一个3∶2压缩器级,用于接收输入的作为三个m-位宽二进制数的2B、B和余数R,将总数变换成两个m-位宽二进制数(Co,S)并输出,还包括一个非负判断级,用于根据从所述3∶2压缩器级输出的所述两个二进制数(Co,S)判断所述总值是否是非负的;
一个选择电路,用于根据所述三输入比较器、第二比较器和第三比较器的比较结果获得选择2B与“0”中的一个的第一输出y和选择除数B和“0”中的一个的第二输出z;
一个三输入加法器/减法器,用于接收输入的作为三个m-位宽二进制数的余数R和所述选择电路的第一输出y和第二输出z,并用单个行波进位并行执行{R-(y+z)}的复数加法和减法,以得到一个新余数Re;以及
一个匹配器,用于根据所述三输入比较器、第二比较器和第一比较器的比较结果执行位匹配,以确定商Q。
13.一种高基除法方法,用于被除数A除以除数B的基2k除法,以便一次得出k位的商,所述方法包括下列步骤:
对所述除数B移位以产生2s×B,s是包括“0”的非负整数,s≤k;
第一比较步骤,比较除数B和余数R,以判断除数B是否等于或小于余数R;
第二比较步骤,比较2s×B和余数R,以判断2s×B是否等于或小于余数R;
第三比较步骤,将作为三个m-位宽二进制数的2s×B、+/-2t(t<s)×B和余数R的总数变换成两个m-位宽二进制数(Co,S),并根据所述两个二进制数(Co,S)判断所述总值是否是非负的;
根据所述第三、第二和第一比较步骤的比较结果获得选择2s×B或“0”中的一个的y和选择除数B或“0”中的一个的z;
用单个行波进位并行执行{R(y+z)}的复数加法和减法,以得到一个新余数Re;以及
根据所述第三、第二和第一比较步骤的比较结果执行位匹配以确定商Q;
其中,第一比较步骤、第二比较步骤和第三比较步骤是并行执行的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11158631A JP2000347836A (ja) | 1999-06-04 | 1999-06-04 | 高次基数除算器およびその方法 |
JP158631/1999 | 1999-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1287307A CN1287307A (zh) | 2001-03-14 |
CN1186714C true CN1186714C (zh) | 2005-01-26 |
Family
ID=15675941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001217607A Expired - Fee Related CN1186714C (zh) | 1999-06-04 | 2000-06-04 | 高基除法器及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6625633B1 (zh) |
EP (1) | EP1058184A2 (zh) |
JP (1) | JP2000347836A (zh) |
KR (1) | KR20010014992A (zh) |
CN (1) | CN1186714C (zh) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100945488B1 (ko) * | 2003-09-20 | 2010-03-09 | 삼성전자주식회사 | 비터비 검출 장치 및 방법 |
US7539720B2 (en) | 2004-12-15 | 2009-05-26 | Sun Microsystems, Inc. | Low latency integer divider and integration with floating point divider and method |
US7830905B2 (en) * | 2007-04-20 | 2010-11-09 | Cray Inc. | Speculative forwarding in a high-radix router |
JP2008305335A (ja) * | 2007-06-11 | 2008-12-18 | Sanyo Electric Co Ltd | 除算回路 |
US20090006509A1 (en) * | 2007-06-28 | 2009-01-01 | Alaaeldin Amin | High-radix multiplier-divider |
US8898215B2 (en) * | 2007-06-28 | 2014-11-25 | King Fahd University Of Petroleum And Minerals | High-radix multiplier-divider |
US8402078B2 (en) * | 2008-02-26 | 2013-03-19 | International Business Machines Corporation | Method, system and computer program product for determining required precision in fixed-point divide operations |
US8626816B2 (en) * | 2008-02-26 | 2014-01-07 | International Business Machines Corporation | Method, system and computer program product for detecting errors in fixed point division operation results |
US9986175B2 (en) | 2009-03-02 | 2018-05-29 | Flir Systems, Inc. | Device attachment with infrared imaging sensor |
US10244190B2 (en) | 2009-03-02 | 2019-03-26 | Flir Systems, Inc. | Compact multi-spectrum imaging with fusion |
US9517679B2 (en) | 2009-03-02 | 2016-12-13 | Flir Systems, Inc. | Systems and methods for monitoring vehicle occupants |
US9843742B2 (en) | 2009-03-02 | 2017-12-12 | Flir Systems, Inc. | Thermal image frame capture using de-aligned sensor array |
US9998697B2 (en) | 2009-03-02 | 2018-06-12 | Flir Systems, Inc. | Systems and methods for monitoring vehicle occupants |
US9473681B2 (en) | 2011-06-10 | 2016-10-18 | Flir Systems, Inc. | Infrared camera system housing with metalized surface |
US9756264B2 (en) | 2009-03-02 | 2017-09-05 | Flir Systems, Inc. | Anomalous pixel detection |
US9948872B2 (en) | 2009-03-02 | 2018-04-17 | Flir Systems, Inc. | Monitor and control systems and methods for occupant safety and energy efficiency of structures |
US9451183B2 (en) | 2009-03-02 | 2016-09-20 | Flir Systems, Inc. | Time spaced infrared image enhancement |
US9635285B2 (en) | 2009-03-02 | 2017-04-25 | Flir Systems, Inc. | Infrared imaging enhancement with fusion |
US9208542B2 (en) | 2009-03-02 | 2015-12-08 | Flir Systems, Inc. | Pixel-wise noise reduction in thermal images |
US10757308B2 (en) | 2009-03-02 | 2020-08-25 | Flir Systems, Inc. | Techniques for device attachment with dual band imaging sensor |
USD765081S1 (en) | 2012-05-25 | 2016-08-30 | Flir Systems, Inc. | Mobile communications device attachment with camera |
WO2012170946A2 (en) | 2011-06-10 | 2012-12-13 | Flir Systems, Inc. | Low power and small form factor infrared imaging |
US9235876B2 (en) | 2009-03-02 | 2016-01-12 | Flir Systems, Inc. | Row and column noise reduction in thermal images |
US9674458B2 (en) | 2009-06-03 | 2017-06-06 | Flir Systems, Inc. | Smart surveillance camera systems and methods |
US8452831B2 (en) * | 2009-03-31 | 2013-05-28 | Oracle America, Inc. | Apparatus and method for implementing hardware support for denormalized operands for floating-point divide operations |
US9843743B2 (en) | 2009-06-03 | 2017-12-12 | Flir Systems, Inc. | Infant monitoring systems and methods using thermal imaging |
US9756262B2 (en) | 2009-06-03 | 2017-09-05 | Flir Systems, Inc. | Systems and methods for monitoring power systems |
US10091439B2 (en) | 2009-06-03 | 2018-10-02 | Flir Systems, Inc. | Imager with array of multiple infrared imaging modules |
US9819880B2 (en) | 2009-06-03 | 2017-11-14 | Flir Systems, Inc. | Systems and methods of suppressing sky regions in images |
US9716843B2 (en) | 2009-06-03 | 2017-07-25 | Flir Systems, Inc. | Measurement device for electrical installations and related methods |
US9292909B2 (en) | 2009-06-03 | 2016-03-22 | Flir Systems, Inc. | Selective image correction for infrared imaging devices |
US9918023B2 (en) | 2010-04-23 | 2018-03-13 | Flir Systems, Inc. | Segmented focal plane array architecture |
US9207708B2 (en) | 2010-04-23 | 2015-12-08 | Flir Systems, Inc. | Abnormal clock rate detection in imaging sensor arrays |
US9706138B2 (en) | 2010-04-23 | 2017-07-11 | Flir Systems, Inc. | Hybrid infrared sensor array having heterogeneous infrared sensors |
US9848134B2 (en) | 2010-04-23 | 2017-12-19 | Flir Systems, Inc. | Infrared imager with integrated metal layers |
US9509924B2 (en) | 2011-06-10 | 2016-11-29 | Flir Systems, Inc. | Wearable apparatus with integrated infrared imaging module |
US10051210B2 (en) | 2011-06-10 | 2018-08-14 | Flir Systems, Inc. | Infrared detector array with selectable pixel binning systems and methods |
US10389953B2 (en) | 2011-06-10 | 2019-08-20 | Flir Systems, Inc. | Infrared imaging device having a shutter |
EP2719166B1 (en) | 2011-06-10 | 2018-03-28 | Flir Systems, Inc. | Line based image processing and flexible memory system |
US10841508B2 (en) | 2011-06-10 | 2020-11-17 | Flir Systems, Inc. | Electrical cabinet infrared monitor systems and methods |
US10169666B2 (en) | 2011-06-10 | 2019-01-01 | Flir Systems, Inc. | Image-assisted remote control vehicle systems and methods |
US9706137B2 (en) | 2011-06-10 | 2017-07-11 | Flir Systems, Inc. | Electrical cabinet infrared monitor |
US9961277B2 (en) | 2011-06-10 | 2018-05-01 | Flir Systems, Inc. | Infrared focal plane array heat spreaders |
US9900526B2 (en) | 2011-06-10 | 2018-02-20 | Flir Systems, Inc. | Techniques to compensate for calibration drifts in infrared imaging devices |
US10079982B2 (en) | 2011-06-10 | 2018-09-18 | Flir Systems, Inc. | Determination of an absolute radiometric value using blocked infrared sensors |
US9235023B2 (en) | 2011-06-10 | 2016-01-12 | Flir Systems, Inc. | Variable lens sleeve spacer |
US9058653B1 (en) | 2011-06-10 | 2015-06-16 | Flir Systems, Inc. | Alignment of visible light sources based on thermal images |
KR101778353B1 (ko) | 2011-06-10 | 2017-09-13 | 플리어 시스템즈, 인크. | 적외선 이미징 장치용 불균일성 교정 기술 |
US9143703B2 (en) | 2011-06-10 | 2015-09-22 | Flir Systems, Inc. | Infrared camera calibration techniques |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
US9086890B2 (en) | 2012-01-06 | 2015-07-21 | Oracle International Corporation | Division unit with normalization circuit and plural divide engines for receiving instructions when divide engine availability is indicated |
US9811884B2 (en) | 2012-07-16 | 2017-11-07 | Flir Systems, Inc. | Methods and systems for suppressing atmospheric turbulence in images |
WO2014014957A1 (en) | 2012-07-16 | 2014-01-23 | Flir Systems, Inc. | Methods and systems for suppressing noise in images |
RU2498393C1 (ru) * | 2012-07-27 | 2013-11-10 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Вятский государственный университет ФГБОУ ВПО "ВятГУ" | Способ деления целых двоичных чисел без остатка начиная с младших разрядов |
US9973692B2 (en) | 2013-10-03 | 2018-05-15 | Flir Systems, Inc. | Situational awareness by compressed display of panoramic views |
US11297264B2 (en) | 2014-01-05 | 2022-04-05 | Teledyne Fur, Llc | Device attachment with dual band imaging sensor |
KR20160035882A (ko) * | 2014-09-24 | 2016-04-01 | (주)셀로직 | 나머지를 연산하는 장치 및 그 방법 |
CN105955706B (zh) * | 2016-06-16 | 2018-06-26 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
EP3721358B1 (en) * | 2017-12-07 | 2022-08-17 | Renesas Electronics Corporation | Data processing apparatus and data processing method |
CN110147217A (zh) * | 2018-02-12 | 2019-08-20 | 北京忆芯科技有限公司 | 除法器 |
CN108897523B (zh) * | 2018-07-02 | 2021-01-26 | 京东方科技集团股份有限公司 | 一种除法器及其运算方法、电子设备 |
US11500612B2 (en) * | 2020-02-14 | 2022-11-15 | Arm Limited | Method, system and device for multi-cycle division operation |
CN111506293B (zh) * | 2020-04-16 | 2022-10-21 | 安徽大学 | 一种基于srt算法的高基除法器电路 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3293418A (en) * | 1964-07-08 | 1966-12-20 | Control Data Corp | High speed divider |
US3684879A (en) * | 1970-09-09 | 1972-08-15 | Sperry Rand Corp | Division utilizing multiples of the divisor stored in an addressable memory |
US5097435A (en) * | 1988-12-24 | 1992-03-17 | Kabushiki Kaisha Toshiba | High speed dividing apparatus |
JP2857505B2 (ja) * | 1990-04-10 | 1999-02-17 | 松下電器産業株式会社 | 除算装置 |
JPH0731592B2 (ja) * | 1990-11-29 | 1995-04-10 | 株式会社東芝 | 除算回路 |
FR2728702A1 (fr) * | 1994-12-22 | 1996-06-28 | France Telecom | Composant electronique capable notamment d'effectuer une division de deux nombres en base 4 |
US5696712A (en) * | 1995-07-05 | 1997-12-09 | Sun Microsystems, Inc. | Three overlapped stages of radix-2 square root/division with speculative execution |
US6109777A (en) * | 1997-04-16 | 2000-08-29 | Compaq Computer Corporation | Division with limited carry-propagation in quotient accumulation |
-
1999
- 1999-06-04 JP JP11158631A patent/JP2000347836A/ja active Pending
-
2000
- 2000-06-01 US US09/585,894 patent/US6625633B1/en not_active Expired - Fee Related
- 2000-06-02 EP EP00111755A patent/EP1058184A2/en not_active Withdrawn
- 2000-06-03 KR KR1020000030578A patent/KR20010014992A/ko not_active Application Discontinuation
- 2000-06-04 CN CNB001217607A patent/CN1186714C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR20010014992A (ko) | 2001-02-26 |
EP1058184A2 (en) | 2000-12-06 |
CN1287307A (zh) | 2001-03-14 |
JP2000347836A (ja) | 2000-12-15 |
US6625633B1 (en) | 2003-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1186714C (zh) | 高基除法器及方法 | |
CN1148643C (zh) | 模幂运算装置 | |
CN1206657C (zh) | 快闪存储器 | |
CN1749958A (zh) | 使用形状的公用图表 | |
CN1126053C (zh) | 文件检索方法、文件检索发送方法及装置 | |
CN101040306A (zh) | 伪随机数生成装置 | |
CN1200571C (zh) | 正交变换、逆正交变换方法及装置、编码、解码方法及装置 | |
CN1633749A (zh) | 获得循环冗余码 | |
CN1196268C (zh) | 并行涡轮编码器实施方案 | |
CN1253013C (zh) | 预测装置、编码装置、逆预测装置、解码装置 | |
CN1605059A (zh) | 蒙哥马利乘法器中的流水线内核 | |
CN1468396A (zh) | 并行计数器和用于执行乘法的逻辑电路 | |
CN1748199A (zh) | 逻辑运算电路、逻辑运算装置和逻辑运算方法 | |
CN1290065C (zh) | 在n维空间产生m次图形的方法和设备 | |
CN1103479C (zh) | 图象半色调处理装置及方法 | |
CN1632794A (zh) | 可扩展标记语言类型至关系数据库表的映射方法 | |
CN1742270A (zh) | 运算处理装置、运算处理装置设计方法以及逻辑电路设计方法 | |
CN1722176A (zh) | 使用插补方法变换图像分辨率以及显示该变换图像 | |
CN1725160A (zh) | 十笔结构数码输入法 | |
CN1658229A (zh) | 导航位置的光学传感装置及其导航方法 | |
CN1182724C (zh) | 压缩和解压缩图像信号的方法及其装置 | |
CN1442780A (zh) | 英文快速输入法及其键盘、鼠标 | |
CN1281178A (zh) | 黎明形意类字母汉字多功能输入编码技术 | |
CN1804765A (zh) | 一种汉字快速输入*** | |
CN1570819A (zh) | 一种汉字快速输入*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |