运算装置的制作方法

文档序号:6413766阅读:213来源:国知局
专利名称:运算装置的制作方法
技术领域
本发明涉及运算装置,更详细地说,涉及计算两个积之和的运算装置。
在具有三维图形处理功能的帧缓冲存储器中,设有混和单元,为显示画面中近前侧的透明物体,混和单元将透明物体的彩色数据与位于画面内侧的物体的彩色数据相混和。例如在Silicon.图形公司提供的开放式图形库(Open GL)中,将源数据(为表示位于画面近前侧的透明物体而从外部提供的一个新的彩色数据)表示为SRC、将此源数据的混和系数表示为FSRC、将目标数据(已经存在于帧缓冲存储器内、表示画面中内侧物体的旧彩色数据)表示为DST、将目标数据的混和系数表示为FDST、则在帧缓冲存储器中新存储的混和数据BLEND可表示为下式(1)BLEND=SRC×FSRC+DST×FDST ……(1)为了进行上述(1)式所表达的运算,一般,混和单元需要具备2个乘法器和一个加法器。例如,当采用华莱士(Wallace)方式的乘法器(华莱士树)时,因为需要2个乘法器树(加法器树),所以,存在着混和单元体积大的问题。另外,因为需要进行最终相加,所以,还存在着运算速度慢的问题。
所以,本发明是为解决上述问题而提案的,其目的在于提供一种体积更小、运算速度更快的运算装置。
本发明第一方面所涉及的运算装置是计算m位第一乘数与n位第一被乘数的积加上m位第二乘数与n位第二被乘数的积所得之和的运算装置,它包括第一加法装置、m个选择装置和加法器树。第一加法装置将第一被乘数与第二被乘数相加。m个选择装置根据第一和第二乘数的对应位,选择第1被乘数、第2被乘数、由第一加法装置计算出的第1与第2被乘数的和以及0中的一个,生成部分积。加法器树将从m个选择装置来的m个部分积每个移动一位,并计算移位后的部分积之和。
本发明第2方面所涉及的运算装置在第一方面的构成基础上,m个选择装置中的每一个装置又包括n个选择器。这n个选择器可以进行以下选择当第1乘数与第2乘数的对应位两者都为1时,选择第1与第2被乘数之和的对应位;当第1乘数的对应位为1而第2乘数的对应位为0时,选择第1被乘数的对应位;当第1乘数的对应位为0而第2乘数的对应位为1时,选择第2被乘数的对应值;当第1和第2乘数的对应位都为0时,则选择0。
本发明第3方面所涉及的运算装置在第2方面的构成基础上,加法器树又包括阵列状排列的多个加法器。各多个加法器都包括进位输入,与对于第1和第2乘数的位较该加法器低一位的n个加法器中对应的一个加法器的进位输出相连;第1数据输入,与n个选择器中对应的一个选择器的输出相连;第2数据输入,与对于第1和第2被乘数的位较对应的一个加法器高一位的加法器的数据输出相连;数据输出;以及进位输出。
本发明第4方面所涉及的运算装置在第1-3方面的任何一个的构成基础上,又包括反演装置和第2加法装置。反演装置把m个部分积的最高位反演。第2加法装置在根据m个部分积中的第1和第2乘数的最低位生成的部分积的最高位和比根据第1和第2乘数最高位生成的部分积的最高位高一位的位上分别加1。
本发明第5方面的运算装置在第1-第3方面的任何一个的构成基础上,又包括复位装置。复位装置将根据第1及第2乘数的高位生成的部分积的高位和根据第1及第2乘数的低位生成的部分积的低位屏蔽为零。


图1为表示使用了两个乘法器的典型混和运算装置的构成的概念图;图2为用于说明先算出根据混和系数的同一位生成的两个部分积的方法的概念图;图3为表示本发明的第一实施例的混和运算装置的构成的概念图;图4为表示图3所示的混和运算装置的具体构成的方框图;图5为表示图4所示半加法器的构成的电路图;图6为表示图4所示全加法器的构成的电路图;图7为表示图4所示的另一个全加法器的构成电路图;图8为表示图4所示的另一个半加法器的构成的电路图;图9为表示图4所示的再一个全加法器的构成的电路图10为表示图4所示的又一个全加法器的构成的电路图;图11为表示图4所示的又再一个全加法器的构成的电路图;图12为表示图5所示的“异”门的构成的电路图;图13为表示图6所示“同”门的构成的电路图;图14为表示图5所示多路转换器的构成的电路图;图15为表示当源数据或目标数据为负时部分积的构成的概念图;图16为表示在本发明第2实施例的混和装置中生成的部分积的构成的概念图;图17为表示图16所示混和运算装置的具体构成的方框图;图18为表示图17所示半加法器的构成的电路图;图19为表示图17所示的另一个半加法器的构成的电路图;图20为表示图17所示全加法器的构成的电路图;图21为表示图19中所示多路转换器的构成的电路图;图22为用于说明本发明第3实施例的混和运算装置的原理的概念图;图23为用于说明图22所示混和运算装置的原理的另一概念图;图24为表示图22和图23所示混和运算装置的具体构成的方框图;图25为表示图24中所示具有复位功能的选择器的构成的电路图。
以下,将参照附图详细说明本发明的实施例。图中的相同或相当的部分用同一符号表示,并不再做重复说明。
一般,当采用2个乘法器来进行前述(1)式所表达的混和运算时,如图1所示,整个目标数据DST与其混和系数FDST的各位分别相乘得到多个部分积1,另外,整个源数据SRC也与其混和系数FSRC的各位分别相乘得到多个部分积2。然后再计算出多个部分积1的和,得出了目标数据DST其混和系数FDST的积,计算出多个部分积2的和,得出了源数据SRC和其混和系数FSRC的积。最后再由加法器3把这两个积相加,得出混和数据BLEND。
上述运算是先分别计算出多个部分积1的和及多个部分积2的和,再将这两个和相加。但也可以象图2所示那样,先计算出对应于混和系数FDST和FSRC同一位的一个部分积1与一个部分积2的和,然后再将这些多个和相加。在这里,一个部分积1与一个部分积2的和只可能是DST+SRC、DST、SRC、O这四种情况中的一个。
例如,在源数据SRC是01012(510)、混和系数FSRC是00112(310)时,积SRC×FSRC可以如表达式1所示计算出来。
从上述表达式1可以清楚地看到,因为混和系数FSRC的各位是0或是1,所以源数据SRC和混和系数FSRC的各位的部分积是0或者是源数据SRC本身。
还有,目标数据DST为10012(910)、混和系数FDST为10102(1010)时,积DST×FDST可以如表达式2所示计算出来。
从上述表达式2也可以清楚地看到,由于混和系数FDST的各位是0或是1,所以目标数据DST与其混和系数FDST各位的部分积是0或是目标数据DST本身。
这样,如上所述,部分积1和部分积2的和是DST+SRC、DST、SRC或0中的一个。
鉴于混和运算的这种性质,后述的本发明实施例的特征在于包括预先计算出源数据和目标数据之和的预加法器。图3为表示本发明实施例1的混和运算装置的构成的概念图。参照该图可以看到,此混和运算装置包括计算源数据SRC与目标数据DST之和的预加法器。根据混和系数FSRC和FDST的各位,选择源数据SRC、目标数据DST、目标数据与源数据之和DST+SRC及0中的一个,生成部分积4。当混和系数FDST的某位和混和系数FSRC的与之对应的位都为1时,选择和DST+SRC。当混和系数FDST的某位为1而混和系数FSRC的与之对应的位为0时,选择目标数据DST。当混和系数FDST的某位为0而混和系数FSRC的与之对应的位为1时,选择源数据SRC。当混和系数FDST的某位和混和数据FSRC的与之对应位都为0时,选择0。
例如,和上述一样,目标数据DST为10012、混和系数FDST为10102、源数据SRC为01012、混和系数FSRC为00112时,预加法器11作为和DST+SRC预先准备出11102(1310)。
由于混和系数FDST的第0位(最低位)是0而混和系数FSRC的第0位是1,所以,根据第0位生成的部分积如表达式3所示为01012(SRC)。由于混和系数FDST和FSRC的第1位都是1,所以,根据第1位生成的部分积为11102(DST+SRC)。由于混和系数FDST和FSRC的第2位都是0,所以,根据第2位生成的部分积为00002。由于混和系数FDST的第3位(最高位)是1而混和系数FSRC的第3位是0,所以,根据第3位生成的部分积是10012(DST)。
这四个部分积每个移动一位,计算出移位后的部分积之和,作为结果得出混和数据BLEND 11010012(10510)。
图4是表示图3所示混和运算装置的具体构成的方框图。此混和运算装置计算4位源数据SRC[3∶0]与四位混和系数FSRC[3∶0]的积和4位目标数据DST[3∶0]与4位混合系数FDST[3∶0]的积的和。
参照图4,此混和运算装置包括预加法器11,预先计算出源数据SRC和目标数据DST的和SRC+DST;四个选择电路12-15,生成部分积4;加法器树160-163、170-173、180-183、190-193),计算部分积之和。
预加法器11为顺次进位方式,包括半加法器110及全加法器111-113。半加法器110包括数据输入A、数据输出S、进位输入CI和进位输出CO。目标数据的第0位DST
提供到半加法器110的进位输入CI。源数据的第0位SRC
提供到半加法器110的数据输入A。各全加法器111-113包括数据输入A和B、数据输出S、进位输入CI,及进位输出CO。目标数据的第1位DST[1]提供到全加法器111的数据输入B。源数据的第1位SRC[1]提供到全加法器111的数据输入A。全加法器110的进位输出CO提供到全加法器111的进位输入CI。目标数据的第2位DST[2]提供到全加法器112的数据输入B。源数据的第2位SRC[2]提供到全加法器112的数据输入A。全加法器111的进位输出CO提供到全加法器112的进位输入CI。目标数据的第3位DST[3]提供到全加法器113的数据输入B。源数据的第3位SRC[3]提供到全加法器113的数据输入A。全加法器112的进位输出CO提供到全加法器113的进位输入CI。
选择电路12根据混和系数的第0位FSRC
和FDST
,选择源数据SRC[3∶0]、目标数据DST[3∶0]、来自预加法器11的源数据与目标数据之和SRC[3∶0]+DST[3∶0]及00002这四个数据中的一个。选择电路13根据混和系数的第一位FSRC[1]及FDST[1],选择前述四个数据中的一个。选择电路14根据混和系数的第二位FSR[2]及FDST[2],选择前述4个数据中的一个。选择电路15根据混和系数的第3位FSRC[3]及FDST[3],选择前述4个数据中的一个。
加法器树(160-163、170-173、180-183、190-193)将来自选择电路12-15的4个部分积每个移动一位,并计算移位后的部分积之和。
更具体地说,对应于源数据SRC[3∶0]及目标数据DST[3∶0]的各位,选择电路12包括4个选择器120-123。当混和系数的第0位FSRC
及FDST
为1时,选择器120-123分别选择加法器110-113的数据输出S。当混和系数的第0位FSRC
为1而混和系数的第0位FDST
为0时,选择器120-123分别选择源数据的第0位~第3位SRC
~SRC[3]。当混和系数的第0位FSRC
为0而混和系数的第0位FDST
为1时,选择器120-123分别选择目标数据的第0位~第3位DST
~DST[3]。当混和系数的第0位FSRC
和FDST
都为0时,选择器120-123分别选择0。选择电路12还包括一个选择器124,当混和系数的第0位FSRC
和FDST
都为1时,选择加法器113的进位输出CO。
选择电路13也包括4个选择器130~133。选择器130~133与选择器120~123几乎同样地构成,与选择器120~123不同的是根据混和系数的第1位FSRC[1]及FDST[1]进行选择操作。选择电路14也包括4个选择器140~143。选择器140~143也与选择器120~123几乎同样地构成,与选择器120~123不同的是,根据混和系数的第2位FSRC[2]及FDST[2]进行选择操作。选择电路15也包括4个选择器150~153。选择器150~153也与选择器120~123几乎同样地构成,与选择器120~123不同的是,根据混和系数的第3位FSRC[3]及FDST[3]进行选择操作。
选择电路13还包括一个与选择器124同样的选择器134。选择电路14还包括一个与选择器124同样的选择器144。选择电路15还包括一个与选择器124同样的选择器154。
该加法器树是周知的进位保存方式,包括4×4阵列状排列的16个加法器160-163、170-173、180-183、190-193。由半加法器160-163构成的加法电路16把由选择电路12生成的部分积逐位加到由选择电路12生成的部分积上;由全加法器170-173构成的加法电路17把由选择电路14生成的部分积逐位加到由加法电路16生成的部分积上;由全加法器180-183构成的加法电路18把由选择电路15生成的部分积逐位加到由加法电路17生成的部分积上;由半加法器190及全加法器191-193构成的加法电路19计算加法电路18的进位。
更具体地说,半加法器160包括和选择器121的输出相连的进位输入CI、和选择器130的输出相连的数据输入A、数据输出S以及进位输出CO。半加法器161-163也与半加法器160几乎同样地构成。全加法器170包括进位输入CI,与对于混和系数的位FSRC
FSRC[3]、FDST
、FDST[3]较加法器170低一位的4个半加法器160-163中对应的一个半加法器160的进位输出相连;数据输入A,与4个选择器140-143中对应的一个选择器140的输出相连;数据输入B,与对于源数据及目标数据的位SRC
-SRC[3]、DST
-DST[3]较前述对应的一个半加法器160高一位的半加法器161的数据输出S相连;数据输出S;以及进位输出CO。全加法器171-173也与全加法器170几乎同样地构成。全加法器180包括和全加法器170的进位输出CO相连的进位输入CI;与选择器150的输出相连的数据输入A;和全加法器171的数据输出S相连的数据输入B;数据输出S;以及进位输出CO。全加法器181-183也与全加法器180几乎同样地构成。半加法器190包括与全加法器180的进位输出CO相连的进位输入CI;与全加法器181的数据输出S相连的数据输入A;数据输出S;和进位输出CO。全加法器191包括和半加法器190的进位输出CO相连的进位输入CI;和全加法器181的进位输出CO相连的数据输入B;与全加法器182的数据输出S相连的数据输入A;数据输出S;和进位输出CO。全加法器192也与全加法器191几乎同样地构成。全加法器193包括;与全加法器192的进位输出CO相连的进位输入CI;与全加法器183的进位输出CO相连的数据输入B;与选择器154的输出相连的数据输入A;数据输出S;以及进位输出CO。
这样,此混和运算装置计算出9位混和数据BLEND[8∶0]。混和数据的第0位BLEND
从选择器120的输出得到。混和数据的第1位BLEND[1]从半加法器160的数据输出S得到。混和数据的第2位BLEND[2]从全加法器170的数据输出S得到。混和数据的第3位BLEND[3]从全加法器180的数据输出S得到。混和数据的第4位BLEND[4]从半加法器190的数据输出S得到。混和数据的第5位BLEND[5]从全加法器191的数据输出S得到;混和数据的第6位BLEND[6]从全加法器192的数据输出S得到。混和数据的第7位BLEND[7]从全加法器193的数据输出S得到。混和数据的第8位BLEND[8]从全加法器193的进位输出CO得到。
例如,同前述一样,SRC[3∶0]为0101、混和系数FSRC[3∶0]为0011、目标数据为DST[3∶0]为1001、混和系数FDST[3∶0]为1010时,从选择器123-120得到0101(源数据SRC[3∶0]);从选择器133-130得到1110(源数据SRC[3∶0]和目标数据DST[3∶0]的和);从选择器143-140得到0000;进而,从选择器153-150得到1001(目标数据DST[3∶0])。结果是,从加法器树(160-163、170-173、180-183、190-193)得到1101001的混和数据BLEND[8∶0]。
例如,如图5所示,半加法器110包括“异”门1100、多路转换器1101及反演器1102。半加法器160-163也与半加法器110同样地构成。例如,如图6所示,全加法器111包括“异”门1110、“同”门1111、反演器1112、多路转换器1113及反演器1114。全加法器113、170-173也与全加法器111同样地构成。例如,如图7所示,全加法器112包括“异”门1120和1121、多路转换器1122以及反演器1123。全加法器180-183也与全加法器112同样地构成。例如,如图8所示,半加法器190包括“异”门1900、多路转换器1901及反演器1902。例如,如图9所示,全加法器191包括“同”门1911、“异”门1912、多路转换器1913及反演器1914。例如,如图10所示,全加法器192包括“同”门1920及1921、反演器1922、多路转换器1923以及反演器1924。例如,如图11所示,全加法器193包括“同”门1930、“异”门1931及多路转换器1932。
例如,如图12所示,“异”门1100包括反演器11000、多路转换器11001及反演器11002。多路转换器11001响应于一个输入信号I1,选择反演器11000的输出信号或者另一个输入信号I2。图6所示的“异”门1110、图7所示的“异”门1120、图8所示的“异”门1900、图9所示的“异”门1912及图11所示的“异”门1931也与该“异”门1100同样地构成。
例如,如图13所示,图6所示的“同”门1111包含反演器11110、多路转换器11111和反演器11112。多路转换器11111响应于一个输入信号I1,选择另一个输入信号I2或者反演器11110的输出信号。图9所示的“同”门1911、同10所示的“同”门1920和1921以及图11所示的“同”门1930也与该“同”门1111同样地构成。
例如,如图14所示,图5所示的多路转换器1101包括传输门11010和11011及反演器11012。因为响应于低电平的控制信号SB,传输门11010导通,传输门11011关断,所以,输出一个输入信号I1。反之,因为响应于高电平的控制信号SB,传输门11010关断,传输门11011导通,所以,输出另一个输入信号I2。图6所示的多路转换器1113、图7所示的多路转换器1122、图8所示的多路转换器1901、图9所示的多路转换器1913、图10所示的多路转换器1923、图11所示的多路转换器1932、图12所示的多路转换器11001以及图13所示的多路转换器11111也与此多路转换器1101同样地构成。
如上所述,本发明实施例1的混和运算装置由于包括预先计算出源数据和目标数据的和SRC[3∶0]+SDT[3∶0]的加法器11,还包括从和SRC[3∶0]+DST[3∶0]、源数据SRC[3∶0]、目标数据DST[3∶0]或者0这4个数据中选择一个的选择电路12-15,所以,用于计算部分积之和的加法器树的尺寸为现有的一半。再加上因为不需要最终加法器(图1的3),所以,运算速度比现有的快。在上述实施例1中的源数据和目标数据都是正数,但在扩展开放式图形库中还有必要进行用下述式(2)和(3)表达的减法混和运算BLEND=SRC×FSRC-DST×FDST ……(2)BLEND=-SRC×FSRC+DST×FDST ……(3)上述式(2)的情况是目标数据为负(-DST)。上述式(3)的情况是源数据为负(-SRC)。因为,必须把源及目标数据扩展成为带有以2的补码表示的符号位的数字。在上述式(2)的情况下,目标数据(-DST)的最高位是1。在上述式(3)的情况下,源数据(-SRC)的最高位是1。
一般,可以用下述式(4)表示以2的补数表示的2进制数A[n∶0](符号位是A[n])的值value。
value=-2n×A[n]+2(n-1)×A[n-1]+……+21×A[1]+20×A
这样,当把m位的2进制数乘到带有n位符号位的2进制数上时,可以得到图15所示的部分积。把m位的2进制数的最低位乘到2进制数A[n∶0]上,可以得到例如{P0[n],P0[n-1],P0[n-2],…P0[2],P0[1],P0
}。其它的部分积也与此同样地得到。这些部分积每个移动1位后相加,所以,部分积的符号位P0[n],P1[n],P2[n],…,Pm[n]也每个移动一位。为了计算带有这样的符号位的部分积正确的和,一般有必要进而进行将与符号位相同的数值向高位侧展开的符号扩张。但是,符号扩张会使加法器树的尺寸增大。依照下述的运算方法,能在不进行符号扩张的情况下,计算出部分积正确的和。
首先,用部分积的符号位,借助于下述式(5)对数值sign进行定义。
sign=-(2m×Pm[n]+…+22×P2[n]+21×P1[n]+20×P0[n])×2n把用式(5)表示的数值Sign用2的补数重新表示后,加到排除掉符号位的部分积的和上即可。数值Sign以2的补数可用下述式(6)表示。在这里,在比最高有效位的符号位Pm[n]高一位的位上添加符号位。另外,/Pm[n]、…/P2[n]、/P1[n]、/P0[n]分别表示Pm[n]、…、P2[n]、P1[n]、P0
的反演值。
sign=(-2(m+1)×1+2m×/Pm[n ]+…+22×/P2[n]+21×/P1[n]+20×/P0[n]+1)×2n即,如图16所示,重新表示部分积,进而,如上述式(6)那样,进行部分积{/Pm[n],Pm[n-1],Pm[n-2],…,Pm[2],Pm[1],Pm
}的符号扩张,并在比该符号位高一位的位上加1。另外,在部分积{/P0[n ],P0[n-1],P0[n-2],…,P0[2],P0[1],P0
}的符号位/P0[n]上加1。
例如,在上述式(2)中,在源数据SRC[2∶0]为01112(7100)、混和系数FSRC[3∶0]为01102(610)、目标数据-DST[2∶0]为11002(-410)、混和系数FDST[3∶0]为00112(310)时,作为混和数据BLEND[8∶0],必然得出000111102(3010)。这时,部分积为0111(SRC)、1100(-DST)、0011(SRC-DST)或者0000。如下面的表达式4所示,混和系数FSRC的第0位为0而混和系数FDST的第0位为1,所以,对应于第0位的部分积为1100(-DST)。混和系数FSRC及FDST的第1位都为1,所以,对应于第1位的部分积为0011(SRC-DST)。混和系数FSRC的第2位为1而混和系数FDST的第2位为0,所以,对应于第2位的部分积为0111(SRC)。而且,混和系数FSRC及FDST的第3位都为0,所以,对应于第3位的部分积为0000。当借助于符号扩张计算这些部分积的和时,像表达式4那样,可以可靠地得出11102(3010)。
为了在不进行符号扩张的情况下计算出这些部分积正确的和,象下示表达式5那样,首先,将部分积的符号位反演。然后,将对应于混和系数FSRC及FDST的最高位的部分积扩张1位。在比此符号位高一位的位上加1,同时,在对应于混和系数FSRC及FDST的最低位的位的部分积的符号位(最高位)上加1。其结果,作为混合数据BLEND,可以得到与用上述表达式4所得到的相同的000111102(3010)。
图17是表示本发明实施例2的混和运算装置的具体构成的方框图。为实现上述表达式5所示的计算方法,把选择器124、134、144、154的输出、也就是半加法器263的进位输入CI、全加法器273的数据输入B、全加法器283的数据输入B以及全加法器293的数据输入A都反演。
也就是说,图4所示的加法器163、173、183、193要被替换为加法器263、273、283、293。另外,图4所示的加法器190要被能在加法器181的数据输出S上加1的加法器290所代替。这样,加法器160-162、263构成了加法电路26。加法器170-172、273构成了加法电路27。加法器180-182、283构成了加法电路28。加法器290、191、192、293构成了加法电路29。此外,还使用包括计算符号位的全加法器214的预加法器21。
该混和运算装置可以进行用下述式(7)或式(8)表示的运算。
BLEND[8∶0]=SRC[2∶0]×FSRC[3∶0]-DST[2∶0]×FDST[3∶0](7)BLEND[8∶0]=-SRC[2∶0]×FSRC[3∶0]+DST[2∶0]×FDST[3∶0](8)在进行上述式(7)的运算时,源数据SRC[3∶0]和目标数据DST[3∶0]的2的补数NDST[3∶0]提供到预加法器21。另一方面,在进行上述式(8)的运算时,源数据SRC[3∶0]的2的补数NSRC[3∶0]和目标数据DST[3∶0]提供到预加法器21。在这里,SRC[3]、NSRC[3]、DST[3]、NDST[3]表示符号位。
源数据SRC[3∶0]可以用下述的式(9)来定义。
SRC[3∶0]={0,SRC[2∶0]}(9)目标数据DST[3∶0]可以用下述的式(10)来定义DST[3∶0]={0,DST[2∶0]}如图18所示,半加法器263包括“同”门2630、多路转换器2631及反演器2632。全加法器273与图10所示的全加法器192同样地构成,全加法器283与图9所示的全加法器191同样地构成。如图19所示,全加法器290包括“异”门2900、多路转换器2901及反演器2902。如图20所示,全加法器293包括“异”门2930和2931、反演器2932、多路转换器2933及反演器2934。如图21所示,多路转换器2901包括传输门29010和29011及反演器29012。因为响应于低电平控制信号SB,传输门29011导通,传输门29010关断,所以,输出一个输入信号I2;反之,响应于高电平的控制信号SB,传输门29011关断,传输门29010导通,所以,输出另一个输入信号I1。
如上所述,本发明实施例2的混和运算装置包括加法器263、273、283、293,具有对应于部分积的最高位(符号位)的选择器124-154的输出分别反演的功能;半加法器290,具有在混和系数的最低位FSRC
、根据FDST
生成的部分积的最高位上加1的功能。全加法器293还具有在混合系数的最高位FSRC[3]、比根据FDST[3]生成的部分积的符号位高一位的位上加1的功能,所以,即使在目标数据和/或源数据都为负的情况下,也能够正确计算出混和数据BLEND[8∶0]。
还有,由于只改变半加法器263的进位输入、全加法器273及283的数据输入和全加法器293的数据输入,所以,不会大幅度地延缓运算速度。另外,由于只改变半加法器290中的多路转换器2901的控制输入、将反演器2934追加到全加法器293中,所以,不会大幅度地延缓运算速度。另外,由于上述改变少,所以,也不会大幅度地增大尺寸。(实施例3)在上述实施例1和2中,是对每一个象素进行混和运算的,但本发明实施例3的混和运算装置是根据减少用于表示一个象素的彩色数据的位数,对每两个象素同时进行混和运算的。
在可输入2n位的源数据SRC[2n-1∶0]、2m位的混和系数FSRC[2m-1∶0]、2n位的目标数据DST[2n-1∶0]及2m位的混和系数FDST[2m-1∶0]的情况下,把两个象素的彩色数据的高位(SRC[2n-1∶n],FSRC[2m-1∶m],DST[2n-1∶n],FDST[2m-1∶m])和低位(SRC[n-1∶0],FSRC[m-1∶0],DST[n-1∶0],FDST[m-1∶0])分开输入。
此时,应求取的混和数据blend-upper及blend-lower分别用下式(11)及(12)表示。
blend-upper=DST[2n-1∶n]×FDST[2m-1∶m]+SRC[2n-1∶n]×FSRC[2m-1∶m] (11)blend-lower=DST[n-1∶0]×FDST[m-1∶0]+SRC[n-1∶0]×FSRC[m-1∶0](12)如图22所示,计算这些混和数据blend-upper及blend-lower所需的部分积部分地存在于最初的加法器树中(图中用平行四边形所围的部分)。
然而,如果如图23所示,将没用平行四边形所围的部分的位强制地屏蔽为0,就可得到两个象素的混和数据blend-upper和blend-lower。
此时,不需要考虑从混和数据blend-lower向混和数据blend-upper的进位。这是因为,输入到混和数据blend-lower的最高位(第(m+n-2)位)上的加法器树的输入数据保持为0,即使将第(m+n-3)位以下相加,进位在最高位的第(m+n-2)位也结束了。然而,混和数据blend-upper及blend-lower能够直接从加法器树的输出得到。
图24是表示本发明实施例3的混和运算装置的具体构成的方框图。包括带有屏蔽功能的选择器322、323、332、333、340、341、350、351来代替图4所示的选择器122、123、132、133、140、141、150、151。如图25所示,该选择器322包括与选择器122相同的选择器3220和“与”门3221。
在对每一个象素进行混和运算的常规方式中,提供1来作为方式信号MODE,因此,该混和运算装置和上述实施例1同样动作。与此相反,在对每两个象素同时进行混和运算的减色方式中,提供0作为方式信号MODE。所以,得到了分别如下式(13)及(14)表示的混和数据BLEND[3∶0]和BLEND[7∶4]。
BLEND[3∶0]=SRC
×FSRC[1∶0]+DST
×FDST[1∶0]
(13)BLEND[7∶4]=SRC[2]×FSRC[3∶2]+DST[2]×FDST[3∶2](14)如上所述,本发明实施例3的混和运算装置包括带有屏蔽功能的选择器322、323、332、333、340、341、350、351,所以,在常规方式中进行4×4位的乘法运算,但在减色方式中,能够同时进行两个2×2位的乘法运算。还有,由于只向选择器3220中追加与门3221,所以,不会大幅度地增大尺寸。[其他实施例]上述实施例1~3使用进位保存加法器,但也可以使用例如“IEEETrans.Electron.Comput.,EC-1314~17页(1964年)”所示的华莱士(Wallace)树、“Alta Freq.34349-356页(1965年)”所示的Dadda树或“IEEE Trans.On Comut.Vol.45,No.3,294-305页(1996年)”所示的加法器树来代替之。
与本发明第一方面有关的运算装置包括将第一及第二被乘数相加的第一加法装置以及从该加法装置的和、第1和第2被乘数及0中选择一个生成部分积的选择装置,所以,将生成的部分积相加的加法器树的大小是现有的一半。结果,运算装置整体的大小变小,并且其运算速度变快。
与本发明第二方面有关的运算装置除本发明第一方面的效果外,上述各选择装置还包括n个选择器,因此,该运算装置的构成变得简单。
与本发明第三方面有关的运算装置除本发明第二方面的效果外,加法器树包括阵列状排列的多个加法器,因此,该运算装置的构成变得更简单。
与本发明第四方面有关的运算装置除本发明第一~第三方面的效果外,还包括使部分积的最高位反演的反演装置和在根据乘数的最低位生成的部分积的最高位和比根据乘数的最高位生成的部分积的最高位高一位的位上分别加1的第二加法装置,所以,即使第一和第二乘数为负,也能正确地计算两个积的和。
与本发明第五方面有关的运算装置除本发明第一~第三方面的效果外,还包括将根据乘数的高位生成的部分积的高位及根据乘数的低位生成的部分积的低位复位为0的复位装置,所以,不但能进行n×m位的乘法运算,还能够同时进行两个位数比其少的乘法运算。
权利要求
1.一种运算装置,计算m位的第一乘数和n位的第1被乘数的积与m位的第二乘数和n位的第2被乘数的积的和,其特征在于,包括第1加法装置,将上述第一被乘数和上述第二被乘数相加;m个选择装置,根据上述第一和第二乘数的对应位来从上述第一被乘数、上述第二被乘数和从来自上述第一加法装置的上述第一和第二被乘数的和以及0中选择一个,生成部分积;把来自上述m个选择装置的m个部分积的每一个移动1位,计算该移位后的部分积的和的加法器树。
2.权利要求1记载的运算装置,其特征在于,上述m个选择装置分别包括n个选择器;这n个选择器分别在上述第1及第2乘数的对应位二者都是1时,选择上述第1及第2被乘数的和的对应位,在上述第1乘数的对应位为1且上述第2乘数的对应位为0时,选择上述第1被乘数的对应位;在上述第1乘数的对应位为0且上述第2乘数的对应位为1时,选择上述第2被乘数的对应位,在上述第1及第2乘数的对应位二者都为0时,选择0。
3.权利要求2记载的运算装置,其特征在于,上述加法器树包括阵列状排列的多个加法器,上述多个加法器分别包括进位输入,与对第1及第2乘数的位比该加法器低1位的n个加法器中对应的一个加法器的进位输出相连;第1数据输入,与上述n个选择器中对应的一个选择器的输出相连;第2数据输入,与对上述第1及第2被乘数的位比上述对应的一个加法器高1位的加法器的数据输出相连;数据输出;以及进位输出。
4.权利要求1~3中任一记载的运算装置,其特征在于,包括使上述m个部分积的最高位反演的反演装置;第2加法装置,在根据上述m个部分积中的上述第1及第2乘数的最低位生成的部分积的最高位和比根据上述第1及第2乘数的最高位生成的部分积的最高位高1位的位上分别加1。
5.权利要求1~3中任一记载的运算装置,其特征在于,还包括屏蔽装置,将根据上述第1及第2乘数的高位生成的部分积的高位和根据上述第1及第2乘数的低位生成的部分积的低位屏蔽为0。
全文摘要
提供尺寸小、运算速度快、计算两个积之和的混和运算装置,通过设置对源数据SRC和目标数据DST进行预相加的预加法器11和选择来自预加法器11的和、源数据SRC、目标数据DST或O后生成部分积的选择器120~123、130~133、140~143、150~153,使加法器160~163、170~173、180~183、190~193构成的加法器树的大小减半,利用该加法器树计算部分积的和。
文档编号G06F17/10GK1199891SQ9810387
公开日1998年11月25日 申请日期1998年2月19日 优先权日1997年5月19日
发明者本藤干雄, 田一明 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1