JP3435744B2 - 乗算回路 - Google Patents
乗算回路Info
- Publication number
- JP3435744B2 JP3435744B2 JP22412993A JP22412993A JP3435744B2 JP 3435744 B2 JP3435744 B2 JP 3435744B2 JP 22412993 A JP22412993 A JP 22412993A JP 22412993 A JP22412993 A JP 22412993A JP 3435744 B2 JP3435744 B2 JP 3435744B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplication
- bits
- bit
- multiplier
- modified
- 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
Description
【0001】
【産業上の利用分野】本発明は、音声処理や、図形処理
に必要な演算等を高速に実行するために開発された、い
わゆるDSP(digital signal processor)等に搭載し
て好適な乗算回路に関する。
に必要な演算等を高速に実行するために開発された、い
わゆるDSP(digital signal processor)等に搭載し
て好適な乗算回路に関する。
【0002】
【従来の技術】従来、2進数の乗算法としてシフト・ア
ンド・アッド(shift and add)法が知られており、こ
のシフト・アンド・アッド法を実行する方法として、並
列乗算器による方法や、2ビット・ブース(2bit−Bo
oth)の方法が知られている。
ンド・アッド(shift and add)法が知られており、こ
のシフト・アンド・アッド法を実行する方法として、並
列乗算器による方法や、2ビット・ブース(2bit−Bo
oth)の方法が知られている。
【0003】並列乗算器による方法は、被乗数Xと乗数
Yとの乗算を行う場合、数1に、たとえば、8ビット×
8ビット→16ビットの乗算を行う場合を例にして示す
ように、被乗数Xに乗数Yの1ビットを掛け合わせた部
分積を算出して、これら部分積を加算することにより、
乗算結果Z14〜Z0を得るというものである。なお、
数1において、S−SSは符号拡張を表わしている。
Yとの乗算を行う場合、数1に、たとえば、8ビット×
8ビット→16ビットの乗算を行う場合を例にして示す
ように、被乗数Xに乗数Yの1ビットを掛け合わせた部
分積を算出して、これら部分積を加算することにより、
乗算結果Z14〜Z0を得るというものである。なお、
数1において、S−SSは符号拡張を表わしている。
【0004】
【数1】
【0005】また、2ビット・ブースの方法は、数2
に、たとえば、8ビット×8ビット→16ビットの乗算
の場合を例にして示すように、乗数Yの最下位ビットY
0から2ビット単位での乗算を、最下位評価ビットとし
て0を設定し、表1に示すように、評価ビットを
y 2j+2 、y 2j+1 、y 2j として部分積の操作を行うことに
より、乗算結果Z14〜Z0を得るというものである。
に、たとえば、8ビット×8ビット→16ビットの乗算
の場合を例にして示すように、乗数Yの最下位ビットY
0から2ビット単位での乗算を、最下位評価ビットとし
て0を設定し、表1に示すように、評価ビットを
y 2j+2 、y 2j+1 、y 2j として部分積の操作を行うことに
より、乗算結果Z14〜Z0を得るというものである。
【0006】なお、この2ビット・ブースの方法では、
数値は全て2の補数表現とされ、符号は符号拡張とされ
る。
数値は全て2の補数表現とされ、符号は符号拡張とされ
る。
【0007】
【数2】
【0008】
【表1】
【0009】この2ビット・ブースの方法は、並列乗算
器による乗算方法に比較して、生成される部分積の個数
を減らし、加算過程を短縮することができるという利点
を有している。
器による乗算方法に比較して、生成される部分積の個数
を減らし、加算過程を短縮することができるという利点
を有している。
【0010】
【発明が解決しようとする課題】しかし、この2ビット
・ブースの方法であっても、これを論理回路にする場
合、桁が大きくなると、加算の段数が多くなり、この結
果、演算に多大の時間を要し、論理量も増大してしまう
という問題点があった。
・ブースの方法であっても、これを論理回路にする場
合、桁が大きくなると、加算の段数が多くなり、この結
果、演算に多大の時間を要し、論理量も増大してしまう
という問題点があった。
【0011】本発明は、かかる点に鑑み、加算の段数を
減らし、演算時間を短縮すると共に、処理すべき論理量
を減らすことができるようにした乗算回路を提供するこ
とを目的とする。
減らし、演算時間を短縮すると共に、処理すべき論理量
を減らすことができるようにした乗算回路を提供するこ
とを目的とする。
【0012】
【課題を解決するための手段】図1は本発明による乗算
回路の原理を示す図であり、本発明の乗算回路は2nビ
ット×2nビット→2nビット(結果の下位2nビット
は、切り捨て)の乗算を行うとするものである。
回路の原理を示す図であり、本発明の乗算回路は2nビ
ット×2nビット→2nビット(結果の下位2nビット
は、切り捨て)の乗算を行うとするものである。
【0013】図中、Xは2nビットの被乗数(但し、n
=2以上の整数)、x1は被乗数Xの上位nビット、x0
は被乗数Xの下位nビット、Yは2nビットの乗数、y
1は乗数Yの上位nビット、y0は乗数Yの下位nビット
を示している。
=2以上の整数)、x1は被乗数Xの上位nビット、x0
は被乗数Xの下位nビット、Yは2nビットの乗数、y
1は乗数Yの上位nビット、y0は乗数Yの下位nビット
を示している。
【0014】また、10は乗算部であり、x1を被乗
数、y0を乗数とする乗算x1×y0、x 0を被乗数、y0
を乗数とする乗算x0×y0、x1を被乗数、y1を乗数と
する乗算x1×y1、x0を被乗数、y1を乗数とする乗算
x0×y1を行うものである。
数、y0を乗数とする乗算x1×y0、x 0を被乗数、y0
を乗数とする乗算x0×y0、x1を被乗数、y1を乗数と
する乗算x1×y1、x0を被乗数、y1を乗数とする乗算
x0×y1を行うものである。
【0015】但し、この乗算部10は、乗算x1×y0に
ついては、y0の評価ビットをy0.2 J+2、y0.2J+1、
y0.2J(但し、J=0、1・・・n/2)と記す場合
に、y0.2 J+2=1、y0.2J+1=0、y0.2J=0の場合に
は、部分積の操作について、x1の反転数(1の補数)
を左へ1ビットシフトした値を加えて2ビット右へシフ
トし、y0.2J+2=1、y0.2J+1=0、y0.2J=1の場
合、及び、y0.2J+2=1、y0. 2J+1=1、y0.2J=0の
場合には、部分積の操作について、x1の反転数を加え
て2ビット右へシフトするように修正された第1の2ビ
ット・ブースの方法に基づいて乗算を行うものである。
ついては、y0の評価ビットをy0.2 J+2、y0.2J+1、
y0.2J(但し、J=0、1・・・n/2)と記す場合
に、y0.2 J+2=1、y0.2J+1=0、y0.2J=0の場合に
は、部分積の操作について、x1の反転数(1の補数)
を左へ1ビットシフトした値を加えて2ビット右へシフ
トし、y0.2J+2=1、y0.2J+1=0、y0.2J=1の場
合、及び、y0.2J+2=1、y0. 2J+1=1、y0.2J=0の
場合には、部分積の操作について、x1の反転数を加え
て2ビット右へシフトするように修正された第1の2ビ
ット・ブースの方法に基づいて乗算を行うものである。
【0016】また、この乗算部10は、乗算x0×y0に
ついては、符号は0を拡張するように修正された第2の
2ビット・ブースの方法に基づいて乗算を行うものであ
る。
ついては、符号は0を拡張するように修正された第2の
2ビット・ブースの方法に基づいて乗算を行うものであ
る。
【0017】また、この乗算部10は、乗算x1×y1に
ついては、y1の評価ビットをy1.2 J+2、y1.2J+1、
y1.2Jと記す場合に、最下位評価ビットの値をy0の最
上位ビットの値Mとし、y1.2J+2=1、y1.2J+1=0、
y1.2J=0の場合には、部分積の操作について、x1の
反転数を左へ1ビットシフトした値を加えて2ビット右
へシフトし、y1.2J+2=1、y1.2J+1=0、y1.2J=1
の場合、及び、y1.2J+2=1、y1.2J+1=1、y1.2J=
0の場合には、部分積の操作について、x1の反転数を
左へ1ビットシフトした値を加えて2ビット右へシフト
するように修正された第3の2ビット・ブースの方法に
基づいて加算を行うものである。
ついては、y1の評価ビットをy1.2 J+2、y1.2J+1、
y1.2Jと記す場合に、最下位評価ビットの値をy0の最
上位ビットの値Mとし、y1.2J+2=1、y1.2J+1=0、
y1.2J=0の場合には、部分積の操作について、x1の
反転数を左へ1ビットシフトした値を加えて2ビット右
へシフトし、y1.2J+2=1、y1.2J+1=0、y1.2J=1
の場合、及び、y1.2J+2=1、y1.2J+1=1、y1.2J=
0の場合には、部分積の操作について、x1の反転数を
左へ1ビットシフトした値を加えて2ビット右へシフト
するように修正された第3の2ビット・ブースの方法に
基づいて加算を行うものである。
【0018】また、この乗算部10は、乗算x0×y1に
ついては、最下位評価ビットの値をy0の最上位ビット
の値Mとし、符号は0を拡張するように修正された第4
の2ビット・ブースの方法に基づいて乗算を行うもので
ある。
ついては、最下位評価ビットの値をy0の最上位ビット
の値Mとし、符号は0を拡張するように修正された第4
の2ビット・ブースの方法に基づいて乗算を行うもので
ある。
【0019】また、11は加算部であり、この加算部1
1は、乗算x1×y0、x0×y0、x 1×y1、x0×y1の
乗算結果z1、z2、z3、z4について、x1×y0、x0
×y1の乗算結果z1、z4については、桁を同一にし、
乗算x0×y0の乗算結果z2については、x1×y0、x0
×y1の乗算結果z1、z4に対して、nビット右へシフ
トし、乗算x1×y1の乗算結果z3については、乗算x1
×y0、x0×y1の乗算結果z1、z4に対して、nビッ
ト左へシフトした状態で、加算を行うものである。
1は、乗算x1×y0、x0×y0、x 1×y1、x0×y1の
乗算結果z1、z2、z3、z4について、x1×y0、x0
×y1の乗算結果z1、z4については、桁を同一にし、
乗算x0×y0の乗算結果z2については、x1×y0、x0
×y1の乗算結果z1、z4に対して、nビット右へシフ
トし、乗算x1×y1の乗算結果z3については、乗算x1
×y0、x0×y1の乗算結果z1、z4に対して、nビッ
ト左へシフトした状態で、加算を行うものである。
【0020】
【作用】本発明においては、被乗数Xの上位nビットx
1、被乗数Xの下位nビットx0、乗数Yの上位nビット
y1、乗数Yの下位nビットy0が乗算部10に転送され
る。
1、被乗数Xの下位nビットx0、乗数Yの上位nビット
y1、乗数Yの下位nビットy0が乗算部10に転送され
る。
【0021】ここに、乗算部10においては、x1を被
乗数、y0を乗数とする乗算x1×y0と、x0を被乗数、
y0を乗数とする乗算x0×y0と、x1を被乗数、y1を
乗数とする乗算x1×y1と、x0を被乗数、y1を乗数と
する乗算x0×y1が行われる。
乗数、y0を乗数とする乗算x1×y0と、x0を被乗数、
y0を乗数とする乗算x0×y0と、x1を被乗数、y1を
乗数とする乗算x1×y1と、x0を被乗数、y1を乗数と
する乗算x0×y1が行われる。
【0022】この場合、乗算x1×y0については、y0.
2J+2=1、y0.2J+1=0、y0.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、y0.2J+2=1、
y0.2J+1=0、y0.2J=1の場合、及び、y0.2J+2=
1、y0.2J+1=1、y0.2J=0の場合には、部分積の操
作について、x1の反転数を加えて2ビット右へシフト
するように修正された第1の2ビット・ブースの方法に
基づいて乗算が行われる。即ち、表2に基づいた部分積
の操作による乗算が行われる。
2J+2=1、y0.2J+1=0、y0.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、y0.2J+2=1、
y0.2J+1=0、y0.2J=1の場合、及び、y0.2J+2=
1、y0.2J+1=1、y0.2J=0の場合には、部分積の操
作について、x1の反転数を加えて2ビット右へシフト
するように修正された第1の2ビット・ブースの方法に
基づいて乗算が行われる。即ち、表2に基づいた部分積
の操作による乗算が行われる。
【0023】
【表2】
【0024】また、乗算x0×y0については、符号は0
を拡張するように修正された第2の2ビット・ブースの
方法に基づいて乗算が行われる。即ち、表3に基づいた
部分積の操作による乗算が行われる。なお、2の補数と
は、反転数(1の補数)の最下位ビットに1を加えたも
のである。
を拡張するように修正された第2の2ビット・ブースの
方法に基づいて乗算が行われる。即ち、表3に基づいた
部分積の操作による乗算が行われる。なお、2の補数と
は、反転数(1の補数)の最下位ビットに1を加えたも
のである。
【0025】
【表3】
【0026】また、乗算x1×y1については、最下位評
価ビットの値をy0の最上位ビットの値Mとし、y1.
2J+2=1、y1.2J+1=0、y1.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、また、y1.2J+2
=1、y1.2J+1=0、y1.2J=1の場合、及び、y1.2J
+2=1、y1.2J+1=1、y1.2J=0の場合には、部分積
の操作について、x1の反転数を加えて2ビット右へシ
フトするように修正された第3の2ビット・ブースの方
法に基づいて乗算が行われる。即ち、表4に基づいた部
分積の操作による乗算が行われる。
価ビットの値をy0の最上位ビットの値Mとし、y1.
2J+2=1、y1.2J+1=0、y1.2J=0の場合には、部分
積の操作について、x1の反転数を左へ1ビットシフト
した値を加えて2ビット右へシフトし、また、y1.2J+2
=1、y1.2J+1=0、y1.2J=1の場合、及び、y1.2J
+2=1、y1.2J+1=1、y1.2J=0の場合には、部分積
の操作について、x1の反転数を加えて2ビット右へシ
フトするように修正された第3の2ビット・ブースの方
法に基づいて乗算が行われる。即ち、表4に基づいた部
分積の操作による乗算が行われる。
【0027】
【表4】
【0028】また、乗算x0×y1については、最下位評
価ビットの値をy0の最上位ビットの値Mとし、符号は
0を拡張するように修正された第4の2ビット・ブース
の方法に基づいて乗算が行われる。即ち、表5に基づい
た部分積の操作による乗算が行われる。
価ビットの値をy0の最上位ビットの値Mとし、符号は
0を拡張するように修正された第4の2ビット・ブース
の方法に基づいて乗算が行われる。即ち、表5に基づい
た部分積の操作による乗算が行われる。
【0029】
【表5】
【0030】そして、加算部11において、乗算x1×
y0、x0×y0、x1×y1、x0×y1の乗算結果z1、z
2、z3、z4について、x1×y0、x0×y1の乗算結果
z1、z4については、桁を同一にし、乗算x0×y0の乗
算結果z2については、x1×y0、x0×y1の乗算結果
z1、z4に対して、nビット右へシフトし、乗算x1×
y1の乗算結果z3については、乗算x1×y0、x0×y1
の乗算結果z1、z4に対して、nビット左へシフトした
状態での加算が行われ、ここに、被乗数をX、乗数をY
とする2nビット×2nビット→2nビット(結果の下
位2ビットは切り捨て)の乗算が完了する。
y0、x0×y0、x1×y1、x0×y1の乗算結果z1、z
2、z3、z4について、x1×y0、x0×y1の乗算結果
z1、z4については、桁を同一にし、乗算x0×y0の乗
算結果z2については、x1×y0、x0×y1の乗算結果
z1、z4に対して、nビット右へシフトし、乗算x1×
y1の乗算結果z3については、乗算x1×y0、x0×y1
の乗算結果z1、z4に対して、nビット左へシフトした
状態での加算が行われ、ここに、被乗数をX、乗数をY
とする2nビット×2nビット→2nビット(結果の下
位2ビットは切り捨て)の乗算が完了する。
【0031】ここに、本発明による乗算回路を適用し
て、0111,0101,1111,1011,101
0,1111,1000,01112(1979428
7431 0)を被乗数Xとし、1010,0001,01
01,0110,1011,1110,0011,11
102(−158815072210)を乗数Yとする乗
算を行う場合の演算内容を示すと、次のようになる。
て、0111,0101,1111,1011,101
0,1111,1000,01112(1979428
7431 0)を被乗数Xとし、1010,0001,01
01,0110,1011,1110,0011,11
102(−158815072210)を乗数Yとする乗
算を行う場合の演算内容を示すと、次のようになる。
【0032】この場合、x1=0111,0101,1
111,1011、x0=1010,1111,100
0,0111、y1=1010,0001,0101,
0110、y0=1011,1110,0011,11
10となる。
111,1011、x0=1010,1111,100
0,0111、y1=1010,0001,0101,
0110、y0=1011,1110,0011,11
10となる。
【0033】したがって、乗算x1×y0の演算は数3に
示すように行われ、乗算x0×y0の演算は数4に示すよ
うに行われ、乗算x1×y1の演算は数5に示すように行
われ、乗算x0×y1の演算は数6に示すように行われ、
乗算x1×y0、x0×y0、x 1×y1、x0×y1の乗算結
果z1、z2、z3、z4の加算は数7に示すように行われ
る。
示すように行われ、乗算x0×y0の演算は数4に示すよ
うに行われ、乗算x1×y1の演算は数5に示すように行
われ、乗算x0×y1の演算は数6に示すように行われ、
乗算x1×y0、x0×y0、x 1×y1、x0×y1の乗算結
果z1、z2、z3、z4の加算は数7に示すように行われ
る。
【0034】
【数3】
【0035】
【数4】
【0036】
【数5】
【0037】
【数6】
【0038】
【数7】
【0039】このように、本発明においては、2nビッ
トの被乗数Xと、2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と、下位nビット
のx0とに分け、また、乗数Yを上位nビットのy1と、
下位nビットのy0とに分けている。
トの被乗数Xと、2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と、下位nビット
のx0とに分け、また、乗数Yを上位nビットのy1と、
下位nビットのy0とに分けている。
【0040】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0041】したがって、本発明によれば、加算段数を
減らし、乗算時間を短縮化すると共に、処理すべき論理
量を低減化することができる。
減らし、乗算時間を短縮化すると共に、処理すべき論理
量を低減化することができる。
【0042】なお、乗算x1×y0、x0×y0、x1×
y1、x0×y1を修正された第1、第2、第3、第4の
2ビット・ブースの方法で行うことは一例であり、これ
らの方法以外で行うこともできることは勿論である。
y1、x0×y1を修正された第1、第2、第3、第4の
2ビット・ブースの方法で行うことは一例であり、これ
らの方法以外で行うこともできることは勿論である。
【0043】
【実施例】以下、図2〜図7を参照して、本発明による
乗算回路の第1実施例〜第5実施例及び第4実施例の使
用例について説明する。
乗算回路の第1実施例〜第5実施例及び第4実施例の使
用例について説明する。
【0044】第1実施例・・図2
図2は本発明の第1実施例を示す回路図であり、20は
被乗数Xを格納する2nビットのレジスタ、21は乗数
Yを格納する2nビットのレジスタ、22は演算結果を
格納する2nビットのレジスタ、23はレジスタ20〜
22を制御する制御部である。
被乗数Xを格納する2nビットのレジスタ、21は乗数
Yを格納する2nビットのレジスタ、22は演算結果を
格納する2nビットのレジスタ、23はレジスタ20〜
22を制御する制御部である。
【0045】また、24は表2又は表4に基づいてnビ
ット×nビット→2nビットの乗算を行う乗算器、25
は表3又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
ット×nビット→2nビットの乗算を行う乗算器、25
は表3又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
【0046】また、26は乗算器24、25から出力さ
れる乗算結果と、レジスタ22の格納値とについて、3
nビット+3nビットの加算を行う加算器である。
れる乗算結果と、レジスタ22の格納値とについて、3
nビット+3nビットの加算を行う加算器である。
【0047】この第1実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ20に2nビットの被乗数Xが格納され、レジスタ2
1に2nビットの乗数Yが格納され、レジスタ22はク
リアされる。
2nビット→2nビットの乗算が行われる場合、レジス
タ20に2nビットの被乗数Xが格納され、レジスタ2
1に2nビットの乗数Yが格納され、レジスタ22はク
リアされる。
【0048】次に、レジスタ20が格納する被乗数Xの
うち、上位nビットx1が被乗数として乗算器24に転
送され、下位ビットx0が乗算器25に転送されると共
に、レジスタ21が格納する乗数Yのうち、下位ビット
y0が乗数として乗算器24、25に転送される。
うち、上位nビットx1が被乗数として乗算器24に転
送され、下位ビットx0が乗算器25に転送されると共
に、レジスタ21が格納する乗数Yのうち、下位ビット
y0が乗数として乗算器24、25に転送される。
【0049】ここに、乗算器24においては、表2に基
づいて、x1×y0なる乗算が行われ、その乗算結果z1
が加算器26に転送され、乗算器25においては、表3
に基づいて、x0×y0なる乗算が行われ、その乗算結果
z2が加算器26に転送される。
づいて、x1×y0なる乗算が行われ、その乗算結果z1
が加算器26に転送され、乗算器25においては、表3
に基づいて、x0×y0なる乗算が行われ、その乗算結果
z2が加算器26に転送される。
【0050】加算器26においては、乗算x1×y0の乗
算結果z1と、乗算x0×y0の乗算結果z2とについて、
乗算結果z1については、その最下位ビットが加算の際
の最下位ビットとなるようにし、乗算結果z2について
は、n+1ビット目が加算の際の最下位ビットとなるよ
うにした状態で、3nビット+3nビットの加算が行わ
れ、この加算結果のうち、上位2nビットがレジスタ2
2に格納される。
算結果z1と、乗算x0×y0の乗算結果z2とについて、
乗算結果z1については、その最下位ビットが加算の際
の最下位ビットとなるようにし、乗算結果z2について
は、n+1ビット目が加算の際の最下位ビットとなるよ
うにした状態で、3nビット+3nビットの加算が行わ
れ、この加算結果のうち、上位2nビットがレジスタ2
2に格納される。
【0051】次に、レジスタ21が格納する乗数Yのう
ち、上位nビットy1が乗数として乗算器24、25に
転送されると共に、最下位評価ビットとして、乗数Yの
下位ビットy0の最上位ビットMが乗算器24、25に
転送される。
ち、上位nビットy1が乗数として乗算器24、25に
転送されると共に、最下位評価ビットとして、乗数Yの
下位ビットy0の最上位ビットMが乗算器24、25に
転送される。
【0052】ここに、乗算器24においては、表4に基
づいて、x1×y1なる乗算が行われ、その乗算結果z3
が加算器26に転送され、乗算器25においては、表5
に基づいて、x0×y1なる乗算が行われ、その乗算結果
z4が加算器26に転送される。
づいて、x1×y1なる乗算が行われ、その乗算結果z3
が加算器26に転送され、乗算器25においては、表5
に基づいて、x0×y1なる乗算が行われ、その乗算結果
z4が加算器26に転送される。
【0053】加算器26においては、乗算x1×y1の乗
算結果z3と、乗算x0×y1の乗算結果z4と、レジスタ
22の格納値について、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットとなるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにし、レジスタ22の格
納値については、その最上位ビットが加算の際の最上位
ビットとなるようにした状態で、3nビット+3nビッ
トの加算が行われ、この加算結果のうち、上位2nビッ
トがレジスタ22に格納される。
算結果z3と、乗算x0×y1の乗算結果z4と、レジスタ
22の格納値について、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットとなるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにし、レジスタ22の格
納値については、その最上位ビットが加算の際の最上位
ビットとなるようにした状態で、3nビット+3nビッ
トの加算が行われ、この加算結果のうち、上位2nビッ
トがレジスタ22に格納される。
【0054】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ22に得られ、乗算は
完了する。
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ22に得られ、乗算は
完了する。
【0055】このように、この第1実施例においては、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0056】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0057】したがって、この第1実施例によれば、加
算段数を減らし、乗算時間を短縮すると共に、論理量を
低減化することができる。
算段数を減らし、乗算時間を短縮すると共に、論理量を
低減化することができる。
【0058】第2実施例・・図3
図3は本発明の第2実施例を示す回路図であり、図中、
30は2nビットの被乗数Xの上位nビットx1が格納
されるnビットのレジスタ、31は2nビットの被乗数
Xの下位nビットx0が格納されるnビットのレジスタ
である。
30は2nビットの被乗数Xの上位nビットx1が格納
されるnビットのレジスタ、31は2nビットの被乗数
Xの下位nビットx0が格納されるnビットのレジスタ
である。
【0059】また、32は2nビットの乗数Yの上位n
ビットy1が格納されるnビットのレジスタ、33は2
nビットの乗数Yの下位nビットy0が格納されるnビ
ットのレジスタである。
ビットy1が格納されるnビットのレジスタ、33は2
nビットの乗数Yの下位nビットy0が格納されるnビ
ットのレジスタである。
【0060】また、34は表2に基づいてnビット×n
ビット→2nビットの乗算を行う乗算器、35は表3に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
ビット→2nビットの乗算を行う乗算器、35は表3に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
【0061】また、36は表4に基づいてnビット×n
ビット→2nビットの乗算を行う乗算器、37は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
ビット→2nビットの乗算を行う乗算器、37は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器である。
【0062】また、38は乗算器34、35、36、3
7から出力される乗算結果について、3nビット+3n
ビットの加算を行う加算器、39は加算器38から出力
される加算結果の上位2nビットを格納する2nビット
のレジスタである。
7から出力される乗算結果について、3nビット+3n
ビットの加算を行う加算器、39は加算器38から出力
される加算結果の上位2nビットを格納する2nビット
のレジスタである。
【0063】この第2実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ30に被乗数Xの上位nビットx1が格納され、レジ
スタ31に被乗数Xの下位nビットx0が格納され、レ
ジスタ32に乗数Yの上位nビットy1が格納され、レ
ジスタ33に2nビットの乗数Yの下位nビットy0が
格納される。
2nビット→2nビットの乗算が行われる場合、レジス
タ30に被乗数Xの上位nビットx1が格納され、レジ
スタ31に被乗数Xの下位nビットx0が格納され、レ
ジスタ32に乗数Yの上位nビットy1が格納され、レ
ジスタ33に2nビットの乗数Yの下位nビットy0が
格納される。
【0064】そして、レジスタ30に格納された被乗数
Xの上位nビットx1が被乗数として乗算器34、36
に転送され、レジスタ31に格納された被乗数Xの下位
nビットx0が被乗数として乗算器35、37に転送さ
れる。
Xの上位nビットx1が被乗数として乗算器34、36
に転送され、レジスタ31に格納された被乗数Xの下位
nビットx0が被乗数として乗算器35、37に転送さ
れる。
【0065】また、レジスタ32に格納された乗数Yの
上位nビットy1が乗数として乗算器36、37に転送
され、レジスタ33に格納された乗数Yの下位nビット
y0が乗数として乗算器34、35に転送される。
上位nビットy1が乗数として乗算器36、37に転送
され、レジスタ33に格納された乗数Yの下位nビット
y0が乗数として乗算器34、35に転送される。
【0066】また、乗算器36、37における最下位評
価ビットとして、レジスタ33に格納された乗数Yの下
位nビットy0の最上位ビットMが乗算器36、37に
転送される。なお、乗算器34、35においては、最下
位評価ビットとして、0が設定される。
価ビットとして、レジスタ33に格納された乗数Yの下
位nビットy0の最上位ビットMが乗算器36、37に
転送される。なお、乗算器34、35においては、最下
位評価ビットとして、0が設定される。
【0067】ここに、乗算器34においては、表2に基
づいて、x1を被乗数、y0を乗数とする乗算が行われ、
その乗算結果z1が加算器38に転送され、乗算器35
においては、表3に基づいて、x0を被乗数、y0を乗数
とする乗算が行われ、その乗算結果z2が加算器38に
転送される。
づいて、x1を被乗数、y0を乗数とする乗算が行われ、
その乗算結果z1が加算器38に転送され、乗算器35
においては、表3に基づいて、x0を被乗数、y0を乗数
とする乗算が行われ、その乗算結果z2が加算器38に
転送される。
【0068】また、乗算器36においては、表4に基づ
いて、x1を被乗数、y1を乗数とする乗算が行われ、そ
の乗算結果z3が加算器38に転送され、乗算器37に
おいては、表5に基づいて、x0を被乗数、y1を乗数と
する乗算が行われ、その乗算結果z4が加算器38に転
送される。
いて、x1を被乗数、y1を乗数とする乗算が行われ、そ
の乗算結果z3が加算器38に転送され、乗算器37に
おいては、表5に基づいて、x0を被乗数、y1を乗数と
する乗算が行われ、その乗算結果z4が加算器38に転
送される。
【0069】加算器38においては、乗算x1×y0、x
0×y0、x1×y1、x0×y1の乗算結果z1、z2、
z3、z4について、乗算結果z1については、その最下
位ビットが加算の際の最下位ビットとなるようにし、乗
算結果z2については、n+1ビット目が加算の際の最
下位ビットとなるようにし、乗算結果z3については、
その最上位ビットが加算の際の最上位ビットとなるよう
にし、乗算結果z4については、その最下位ビットが加
算の際の最下位ビットとなるようにした状態で、加算が
行われ、この加算結果のうち、上位2nビットがレジス
タ39に格納される。
0×y0、x1×y1、x0×y1の乗算結果z1、z2、
z3、z4について、乗算結果z1については、その最下
位ビットが加算の際の最下位ビットとなるようにし、乗
算結果z2については、n+1ビット目が加算の際の最
下位ビットとなるようにし、乗算結果z3については、
その最上位ビットが加算の際の最上位ビットとなるよう
にし、乗算結果z4については、その最下位ビットが加
算の際の最下位ビットとなるようにした状態で、加算が
行われ、この加算結果のうち、上位2nビットがレジス
タ39に格納される。
【0070】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ39に得られ、乗算は
完了する。
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ39に得られ、乗算は
完了する。
【0071】このように、この第2実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0072】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0073】したがって、この第2実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
【0074】第3実施例・・図4
図4は本発明の第3実施例を示す回路図であり、40は
被乗数Xを格納する2nビットのレジスタ、41は乗数
Yを格納する2nビットのレジスタ、42は演算結果を
格納する2nビットのレジスタである。
被乗数Xを格納する2nビットのレジスタ、41は乗数
Yを格納する2nビットのレジスタ、42は演算結果を
格納する2nビットのレジスタである。
【0075】また、43は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、44はレジスタ40〜42及び乗算器43を制
御する制御部、45は乗算器43から出力される乗算結
果とレジスタ42の格納値との加算等を行う加減算器で
ある。
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、44はレジスタ40〜42及び乗算器43を制
御する制御部、45は乗算器43から出力される乗算結
果とレジスタ42の格納値との加算等を行う加減算器で
ある。
【0076】なお、乗算器43は、制御部44からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部44からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部44からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0077】この第3実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ40に2nビットの被乗数Xが格納され、レジスタ4
1に2nビットの乗数Yが格納され、レジスタ42はク
リアされる。
2nビット→2nビットの乗算が行われる場合、レジス
タ40に2nビットの被乗数Xが格納され、レジスタ4
1に2nビットの乗数Yが格納され、レジスタ42はク
リアされる。
【0078】次に、レジスタ40に格納されている被乗
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送されると共に、レジスタ41に格納されている
乗数Yのうち、下位nビットy0が乗数として乗算器4
3に転送される。
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送されると共に、レジスタ41に格納されている
乗数Yのうち、下位nビットy0が乗数として乗算器4
3に転送される。
【0079】また、この場合、制御部44から乗算器4
3にモード信号MD0が与えられ、乗算器43において
は、表2に基づいて、x1×y0なる乗算が行われ、この
乗算結果z1が加減算器45に転送される。
3にモード信号MD0が与えられ、乗算器43において
は、表2に基づいて、x1×y0なる乗算が行われ、この
乗算結果z1が加減算器45に転送される。
【0080】加減算器45においては、乗算x1×y0の
乗算結果z1と、レジスタ42の格納値とについて、乗
算結果z1については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
乗算結果z1と、レジスタ42の格納値とについて、乗
算結果z1については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0081】次に、レジスタ40に格納されている被乗
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、下位nビットy0が乗数として乗算器43に転送
される。
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、下位nビットy0が乗数として乗算器43に転送
される。
【0082】また、この場合、制御部44から乗算器4
3にモード信号MD1が与えられ、乗算器43において
は、表3に基づいて、x0×y0なる乗算が行われ、この
乗算結果z2が加減算器45に転送される。
3にモード信号MD1が与えられ、乗算器43において
は、表3に基づいて、x0×y0なる乗算が行われ、この
乗算結果z2が加減算器45に転送される。
【0083】加減算器45においては、乗算x0×y0の
乗算結果z2と、レジスタ42の格納値とについて、乗
算結果z2については、そのn+1ビット目が加算の際
の最下位ビットとなるようにし、レジスタ42の格納値
については、その最上位ビットが加算の際の最上位ビッ
トとなるようにした状態で、加算が行われ、この加算結
果の上位2nビットがレジスタ42に格納される。
乗算結果z2と、レジスタ42の格納値とについて、乗
算結果z2については、そのn+1ビット目が加算の際
の最下位ビットとなるようにし、レジスタ42の格納値
については、その最上位ビットが加算の際の最上位ビッ
トとなるようにした状態で、加算が行われ、この加算結
果の上位2nビットがレジスタ42に格納される。
【0084】次に、レジスタ40に格納されている被乗
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
数Xのうち、上位nビットx1が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
【0085】また、最下位評価ビットとして、レジスタ
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
【0086】また、この場合、制御部44から乗算器4
3にモード信号MD0が与えられ、乗算器43において
は、表4に基づいて、x1×y1なる乗算が行われ、この
乗算結果z3が加減算器45に転送される。
3にモード信号MD0が与えられ、乗算器43において
は、表4に基づいて、x1×y1なる乗算が行われ、この
乗算結果z3が加減算器45に転送される。
【0087】加減算器45においては、乗算x1×y1の
乗算結果z3と、レジスタ42の格納値とについて、乗
算結果z3については、その最上位ビットが加算の際の
最上位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
乗算結果z3と、レジスタ42の格納値とについて、乗
算結果z3については、その最上位ビットが加算の際の
最上位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0088】次に、レジスタ40に格納されている被乗
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
数Xのうち、下位nビットx0が被乗数として乗算器4
3に転送され、レジスタ41に格納されている乗数Yの
うち、上位nビットy1が乗数として乗算器43に転送
される。
【0089】また、最下位評価ビットとして、レジスタ
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
41に格納されている乗数Yの下位nビットy0の最上
位ビットMが乗算器43に転送される。
【0090】また、この場合、制御部44から乗算器4
3にモード信号MD1が与えられ、乗算器43において
は、表5に基づいて、x0×y1なる乗算が行われ、この
乗算結果z 4 が加減算器45に転送される。
3にモード信号MD1が与えられ、乗算器43において
は、表5に基づいて、x0×y1なる乗算が行われ、この
乗算結果z 4 が加減算器45に転送される。
【0091】加減算器45においては、乗算x0×y1の
乗算結果z4と、レジスタ42の格納値とについて、乗
算結果z4については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
乗算結果z4と、レジスタ42の格納値とについて、乗
算結果z4については、その最下位ビットが加算の際の
最下位ビットとなるようにし、レジスタ42の格納値に
ついては、その最上位ビットが加算の際の最上位ビット
となるようにした状態で、加算が行われ、この加算結果
の上位2nビットがレジスタ42に格納される。
【0092】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ42に得られ、乗算は
完了する。
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ42に得られ、乗算は
完了する。
【0093】このように、この第3実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0094】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0095】したがって、この第3実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
【0096】なお、この第3実施例によれば、2nビッ
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
【0097】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0098】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0099】第4実施例・・図5
図5は本発明の第4実施例を示す回路図であり、50は
被乗数Xを格納する2nビットのレジスタ、51は乗数
Yを格納する2nビットのレジスタ、52は演算結果を
格納する2nビットのレジスタである。
被乗数Xを格納する2nビットのレジスタ、51は乗数
Yを格納する2nビットのレジスタ、52は演算結果を
格納する2nビットのレジスタである。
【0100】また、53は表2又は表3に基づいてnビ
ット×nビット→2nビットの乗算を行う乗算器、54
は表4又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
ット×nビット→2nビットの乗算を行う乗算器、54
は表4又は表5に基づいてnビット×nビット→2nビ
ットの乗算を行う乗算器である。
【0101】また、55はレジスタ50、51、52及
び乗算器53、54を制御する制御部、56は乗算器5
3、54から出力される乗算結果とレジスタ52の格納
値との加算等を行う加減算器である。
び乗算器53、54を制御する制御部、56は乗算器5
3、54から出力される乗算結果とレジスタ52の格納
値との加算等を行う加減算器である。
【0102】なお、乗算器53は、制御部55からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0103】また、乗算器54は、制御部55からモー
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
ド信号MD0を受けた場合は、表2又は表4に基づいた
乗算を行い、制御部55からモード信号MD1を受けた
場合は、表3又は表5に基づいた乗算を行うようにされ
ている。
【0104】この第4実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ50に2nビットの被乗数Xが格納され、レジスタ5
1に2nビットの乗数Yが格納され、レジスタ52はク
リアされる。
2nビット→2nビットの乗算が行われる場合、レジス
タ50に2nビットの被乗数Xが格納され、レジスタ5
1に2nビットの乗数Yが格納され、レジスタ52はク
リアされる。
【0105】次に、レジスタ50に格納された被乗数X
のうち、上位nビットx1が被乗数として乗算器53、
54に転送されると共に、レジスタ51に格納された乗
数Yのうち、下位nビットy0が乗数として乗算器53
に転送され、上位nビットy1が乗数として乗算器54
に転送される。
のうち、上位nビットx1が被乗数として乗算器53、
54に転送されると共に、レジスタ51に格納された乗
数Yのうち、下位nビットy0が乗数として乗算器53
に転送され、上位nビットy1が乗数として乗算器54
に転送される。
【0106】また、乗算器54における最下位評価ビッ
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
【0107】また、この場合、制御部55から乗算器5
3、54にモード信号MD0が与えられ、乗算器53に
おいては、表2に基づいて、x1×y0なる乗算が行わ
れ、その乗算結果z1が加減算器56に転送され、乗算
器54においては、表4に基づいて、x1×y1なる乗算
が行われ、その乗算結果z3が加減算器56に転送され
る。
3、54にモード信号MD0が与えられ、乗算器53に
おいては、表2に基づいて、x1×y0なる乗算が行わ
れ、その乗算結果z1が加減算器56に転送され、乗算
器54においては、表4に基づいて、x1×y1なる乗算
が行われ、その乗算結果z3が加減算器56に転送され
る。
【0108】加減算器56においては、乗算x1×y0の
乗算結果z1と、乗算x1×y1の乗算結果z3について、
乗算x1×y0の乗算結果z1については、その最下位ビ
ットが加算の際の最下位ビットとなるようにし、乗算x
1×y1の乗算結果z3については、その最上位ビットが
加算の際の最上位ビットとなるようにした状態で、加算
が行われ、その加算結果がレジスタ52に格納される。
乗算結果z1と、乗算x1×y1の乗算結果z3について、
乗算x1×y0の乗算結果z1については、その最下位ビ
ットが加算の際の最下位ビットとなるようにし、乗算x
1×y1の乗算結果z3については、その最上位ビットが
加算の際の最上位ビットとなるようにした状態で、加算
が行われ、その加算結果がレジスタ52に格納される。
【0109】次に、レジスタ50が格納する被乗数Xの
うち、下位nビットx0が被乗数として乗算器53、5
4に転送されると共に、レジスタ51が格納する乗数Y
のうち、下位nビットy0が乗数として乗算器53に転
送され、上位nビットy1が乗数として乗算器54に転
送される。
うち、下位nビットx0が被乗数として乗算器53、5
4に転送されると共に、レジスタ51が格納する乗数Y
のうち、下位nビットy0が乗数として乗算器53に転
送され、上位nビットy1が乗数として乗算器54に転
送される。
【0110】また、乗算器54における最下位評価ビッ
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
トとして、レジスタ51に格納されている乗数Yのう
ち、下位nビットy0の最上位ビットMが乗算器54に
転送される。乗算器53においては、最下位評価ビット
として、0が設定される。
【0111】また、この場合、制御部55から乗算器5
3、54にモード信号MD1が与えられ、乗算器53に
おいては、表3に基づいて、x0×y0なる乗算が行わ
れ、その乗算結果z2が加減算器56に転送され、乗算
器54においては、表5に基づいて、x0×y1なる乗算
が行われ、乗算結果z4が加減算器56に転送される。
3、54にモード信号MD1が与えられ、乗算器53に
おいては、表3に基づいて、x0×y0なる乗算が行わ
れ、その乗算結果z2が加減算器56に転送され、乗算
器54においては、表5に基づいて、x0×y1なる乗算
が行われ、乗算結果z4が加減算器56に転送される。
【0112】加減算器56においては、乗算x0×y0の
乗算結果z2と、乗算x0×y1の乗算結果z4と、レジス
タ52の格納値とについて、乗算x0×y0の乗算結果z
2については、そのn+1ビット目が加算の際の最下位
ビットとなるようにし、乗算x0×y1の乗算結果z4に
ついては、その最下位ビットが加算の際の最下位ビット
となるようにし、レジスタ52の格納値については、そ
の最上位ビットが加算の際の最上位ビットになるように
した状態で、加算が行われ、その加算結果がレジスタ5
2に格納される。
乗算結果z2と、乗算x0×y1の乗算結果z4と、レジス
タ52の格納値とについて、乗算x0×y0の乗算結果z
2については、そのn+1ビット目が加算の際の最下位
ビットとなるようにし、乗算x0×y1の乗算結果z4に
ついては、その最下位ビットが加算の際の最下位ビット
となるようにし、レジスタ52の格納値については、そ
の最上位ビットが加算の際の最上位ビットになるように
した状態で、加算が行われ、その加算結果がレジスタ5
2に格納される。
【0113】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ52に得られ、乗算は
完了する。
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ52に得られ、乗算は
完了する。
【0114】このように、この第4実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0115】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0116】したがって、この第4実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
加算段数を減らし、乗算時間の短縮化を図ると共に、論
理量の低減化を図ることができる。
【0117】なお、この第4実施例によれば、2nビッ
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
ト×2nビット→2nビットなる乗算のほか、2nビッ
ト×2nビット系積和演算として、2nビット±2nビ
ット×2nビット→2nビットなる積和演算を行うこと
ができる。
【0118】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0119】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0120】第5実施例・・図6
図6は本発明の第5実施例を示す回路図であり、60は
被乗数Xを格納する2nビットのレジスタ、61は乗数
Yを格納する2nビットのレジスタ、62は演算結果を
格納する2nビットのレジスタである。
被乗数Xを格納する2nビットのレジスタ、61は乗数
Yを格納する2nビットのレジスタ、62は演算結果を
格納する2nビットのレジスタである。
【0121】また、63は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、64は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、64は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
【0122】また、65は表2、表3、表4又は表5に
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、66は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
基づいてnビット×nビット→2nビットの乗算を行う
乗算器、66は表2、表3、表4又は表5に基づいてn
ビット×nビット→2nビットの乗算を行う乗算器であ
る。
【0123】また、67はレジスタ60、61、62及
び乗算器63、64、65、66を制御する制御部、6
8は乗算器63、64、65、66から出力される乗算
結果について、3nビット+3nビットの加算等を行う
加減算器である。
び乗算器63、64、65、66を制御する制御部、6
8は乗算器63、64、65、66から出力される乗算
結果について、3nビット+3nビットの加算等を行う
加減算器である。
【0124】なお、乗算器63、64、65、66は、
制御部67からモード信号MD0を受けた場合は、表2
又は表4に基づいた乗算を行い、制御部67からモード
信号MD1を受けた場合は、表3又は表5に基づいた乗
算を行うようにされている。
制御部67からモード信号MD0を受けた場合は、表2
又は表4に基づいた乗算を行い、制御部67からモード
信号MD1を受けた場合は、表3又は表5に基づいた乗
算を行うようにされている。
【0125】この第5実施例においては、2nビット×
2nビット→2nビットの乗算が行われる場合、レジス
タ60に被乗数Xが格納され、レジスタ61に乗数Yが
格納される。
2nビット→2nビットの乗算が行われる場合、レジス
タ60に被乗数Xが格納され、レジスタ61に乗数Yが
格納される。
【0126】そして、レジスタ60に格納された被乗数
Xの上位nビットx1が被乗数として乗算器63、65
に転送され、下位nビットx0が被乗数として乗算器6
4、66に転送される。
Xの上位nビットx1が被乗数として乗算器63、65
に転送され、下位nビットx0が被乗数として乗算器6
4、66に転送される。
【0127】また、レジスタ61に格納された乗数Yの
上位nビットy1が乗数として乗算器65、66に転送
され、下位nビットy0が乗数として乗算器63、64
に転送される。
上位nビットy1が乗数として乗算器65、66に転送
され、下位nビットy0が乗数として乗算器63、64
に転送される。
【0128】また、乗算器65、66における最下位評
価ビットとして、レジスタ61に格納されている乗数Y
の下位nビットy0の最上位ビットMが乗算器65、6
6に転送される。なお、乗算器63、64においては、
最下位評価ビットとして、0が設定される。
価ビットとして、レジスタ61に格納されている乗数Y
の下位nビットy0の最上位ビットMが乗算器65、6
6に転送される。なお、乗算器63、64においては、
最下位評価ビットとして、0が設定される。
【0129】なお、この場合、制御部67から乗算器6
3にモード信号MD0が与えられ、乗算器63において
は、表2に基づいて、x1を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z1が加減算器68に転送さ
れる。
3にモード信号MD0が与えられ、乗算器63において
は、表2に基づいて、x1を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z1が加減算器68に転送さ
れる。
【0130】また、この場合、制御部67から乗算器6
4にモード信号MD1が与えられ、乗算器64において
は、表3に基づいて、x0を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z2が加減算器68に転送さ
れる。
4にモード信号MD1が与えられ、乗算器64において
は、表3に基づいて、x0を被乗数、y0を乗数とする乗
算が行われ、その乗算結果z2が加減算器68に転送さ
れる。
【0131】また、この場合、制御部67から乗算器6
5にモード信号MD0が与えられ、乗算器65において
は、表4に基づいて、x1を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z3が加減算器68に転送さ
れる。
5にモード信号MD0が与えられ、乗算器65において
は、表4に基づいて、x1を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z3が加減算器68に転送さ
れる。
【0132】また、この場合、制御部67から乗算器6
5にモード信号MD1が与えられ、乗算器66において
は、表5に基づいて、x0を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z4が加減算器68に転送さ
れる。
5にモード信号MD1が与えられ、乗算器66において
は、表5に基づいて、x0を被乗数、y1を乗数とする乗
算が行われ、その乗算結果z4が加減算器68に転送さ
れる。
【0133】加減算器68においては、乗算x1×y0、
x0×y0、x1×y1、x0×y1の乗算結果z1、z2、z
3、z4について、乗算結果z1については、その最下位
ビットが加算の際の最下位ビットとなるようにし、乗算
結果z2については、n+1ビットが加算の際の最下位
ビットとなるようにし、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットになるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにした状態で、加算が行
われ、この加算結果の上位2nビットがレジスタ62に
格納される。
x0×y0、x1×y1、x0×y1の乗算結果z1、z2、z
3、z4について、乗算結果z1については、その最下位
ビットが加算の際の最下位ビットとなるようにし、乗算
結果z2については、n+1ビットが加算の際の最下位
ビットとなるようにし、乗算結果z3については、その
最上位ビットが加算の際の最上位ビットになるように
し、乗算結果z4については、その最下位ビットが加算
の際の最下位ビットとなるようにした状態で、加算が行
われ、この加算結果の上位2nビットがレジスタ62に
格納される。
【0134】ここに、2nビットの被乗数Xと2nビッ
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ62に得られ、乗算は
完了する。
トの乗数Yとについて、2nビット×2nビット→2n
ビットなる乗算の結果がレジスタ62に得られ、乗算は
完了する。
【0135】このように、この第5実施例においても、
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
2nビットの被乗数Xと2nビットの乗数Yとの乗算を
行う場合、被乗数Xを上位nビットのx1と下位nビッ
トのx0とに分け、乗数Yを上位nビットのy1と下位n
ビットのy0とに分けるようにしている。
【0136】そして、x1を被乗数、y0を乗数とする乗
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
算x1×y0と、x0を被乗数、y0を乗数とする乗算x0
×y0と、x1を被乗数、y1を乗数とする乗算x1×y1
と、x 0を被乗数、y1を乗数とする乗算x0×y1とを、
それぞれ、表2、表3、表4、表5に示す修正された第
1、第2、第3、第4の2ビット・ブースの方法で行
い、これら乗算x1×y0、x0×y0、x1×y1、x0×
y1の乗算結果z1、z2、z 3、z4を、図1に示す加算
部11を示すブロック内に示した所定の規則の下に加算
するとしている。
【0137】したがって、この第5実施例によっても、
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
加算段数を減らし、乗算時間の短縮化を図ることができ
る。
【0138】なお、この第5実施例によれば、制御部6
7による制御により、2nビット×2nビット→2nビ
ットなる乗算のほか、2nビット×2nビット系積和演
算として、2nビット±2nビット×2nビット→2n
ビットなる積和演算を行うことができる。
7による制御により、2nビット×2nビット→2nビ
ットなる乗算のほか、2nビット×2nビット系積和演
算として、2nビット±2nビット×2nビット→2n
ビットなる積和演算を行うことができる。
【0139】また、2nビット×nビット系積和演算と
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
して、2nビット×nビット→2nビット、2nビット
±2nビット×nビット→2nビットなる積和演算を行
うことができる。
【0140】また、2nビット×2nビット系積和演算
として、2nビット×2nビット→2nビット、2nビ
ット±2nビット×2nビット→2nビットなる積和演
算を行うことができる。
として、2nビット×2nビット→2nビット、2nビ
ット±2nビット×2nビット→2nビットなる積和演
算を行うことができる。
【0141】また、ダブルnビット×nビット系積和演
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
算として、nビット×nビット±nビット×nビット→
2nビット、2nビット±(nビット×nビット±nビ
ット×nビット)→2nビットなる積和演算を行うこと
ができる。
【0142】使用例・・図7
図7は、図5に示す第4実施例(但し、n=16)を搭
載してなるDSPを示すブロック図である。
載してなるDSPを示すブロック図である。
【0143】図中、70は演算部であり、71、72は
各種算術演算や論理演算や転送命令に使用される演算用
レジスタ、73、74は16ビット×16ビット→32
ビットの乗算を行う乗算器(MUL)、75は加減算器
(ADD/SUB)、76は演算論理ユニット(AL
U)、77は演算結果ラッチ(LTR)である。
各種算術演算や論理演算や転送命令に使用される演算用
レジスタ、73、74は16ビット×16ビット→32
ビットの乗算を行う乗算器(MUL)、75は加減算器
(ADD/SUB)、76は演算論理ユニット(AL
U)、77は演算結果ラッチ(LTR)である。
【0144】但し、乗算系命令で被乗数X、乗数Yの格
納に使用することができるのは、演算用レジスタ71で
あり、演算用レジスタ72は、演算系命令に使用するこ
とができる。
納に使用することができるのは、演算用レジスタ71で
あり、演算用レジスタ72は、演算系命令に使用するこ
とができる。
【0145】ここに、演算用レジスタ71が図5に示す
レジスタ50、51に該当し、乗算器73、74が図5
に示す乗算器53、54に該当し、加減算器75が図5
に示す加減算器56に該当する。
レジスタ50、51に該当し、乗算器73、74が図5
に示す乗算器53、54に該当し、加減算器75が図5
に示す加減算器56に該当する。
【0146】また、80はシーケンサ部であり、81〜
83は命令レジスタ、いわゆるインストラクション・レ
ジスタ(IR1、IR1A、IR2)、84はループ処
理の実行時に使用されるループレジスタ(LPR)、8
5はデコーダであり、演算部70は、このシーケンサ部
80により制御される。即ち、シーケンサ部80は図5
に示す制御部55に該当する。
83は命令レジスタ、いわゆるインストラクション・レ
ジスタ(IR1、IR1A、IR2)、84はループ処
理の実行時に使用されるループレジスタ(LPR)、8
5はデコーダであり、演算部70は、このシーケンサ部
80により制御される。即ち、シーケンサ部80は図5
に示す制御部55に該当する。
【0147】また、90はCPUインタフェース部であ
り、91はCPUアクセス制御部、92はシステム・デ
ータ・ラッチ(SDLT)、93はこのDSPの状態を
示すステータスレジスタ(STR)、94はシステム・
アドレス・ラッチ(SALT)である。
り、91はCPUアクセス制御部、92はシステム・デ
ータ・ラッチ(SDLT)、93はこのDSPの状態を
示すステータスレジスタ(STR)、94はシステム・
アドレス・ラッチ(SALT)である。
【0148】なお、CSXはチップセレクト信号、RW
Xはリード/ライト信号、DTACKXはデータアクノ
リッジ信号、D15〜0はデータ信号、A15〜0はア
ドレス信号である。
Xはリード/ライト信号、DTACKXはデータアクノ
リッジ信号、D15〜0はデータ信号、A15〜0はア
ドレス信号である。
【0149】また、100はアドレス計算部であり、1
01、102は演算論理ユニット(XALU、YAL
U)、103はインデックスアドレッシング及びサーキ
ュラーアドレッシング時のオフセットとして使用される
オフセットレジスタ、104はプログラムの実行及び動
作モードを制御するコントロールレジスタ(CTR)で
ある。
01、102は演算論理ユニット(XALU、YAL
U)、103はインデックスアドレッシング及びサーキ
ュラーアドレッシング時のオフセットとして使用される
オフセットレジスタ、104はプログラムの実行及び動
作モードを制御するコントロールレジスタ(CTR)で
ある。
【0150】また、105はPUSH/POP命令や、
サブルーチンコール命令の実行時のデータの退避/復帰
アドレスを示すスタックポインタ(SP)、106は内
部アドレス制御部である。
サブルーチンコール命令の実行時のデータの退避/復帰
アドレスを示すスタックポインタ(SP)、106は内
部アドレス制御部である。
【0151】また、107は転送時のオペランドアドレ
スを指定するインデックスレジスタ、108は命令コー
ドが格納されているメモリアドレスを示すプログラムカ
ウンタ(PC)である。
スを指定するインデックスレジスタ、108は命令コー
ドが格納されているメモリアドレスを示すプログラムカ
ウンタ(PC)である。
【0152】また、110は命令RAM部であり、11
1は256ワード×16ビットの規模を有する命令RA
M(random access memory)、112は命令RAM11
1との接続を図る命令RAMインタフェース部である。
1は256ワード×16ビットの規模を有する命令RA
M(random access memory)、112は命令RAM11
1との接続を図る命令RAMインタフェース部である。
【0153】また、120はプログラム/データ共用の
64Kワード×16ビットの規模を有する外部ROM
(read only memory)との接続を図るメモリ・インタフ
ェース部である。
64Kワード×16ビットの規模を有する外部ROM
(read only memory)との接続を図るメモリ・インタフ
ェース部である。
【0154】ここに、121はメモリアクセス制御部、
122はメモリアドレス(MADDR)制御部、123
はメモリデータラッチ(MDLT)、MMはメモリモー
ド信号、MCEXはメモリチップイネーブル信号、MA
15〜0はメモリアドレス、MD15〜0はメモリデー
タである。
122はメモリアドレス(MADDR)制御部、123
はメモリデータラッチ(MDLT)、MMはメモリモー
ド信号、MCEXはメモリチップイネーブル信号、MA
15〜0はメモリアドレス、MD15〜0はメモリデー
タである。
【0155】また、130はデータRAM部であり、1
31、132は256ワード×16ビットの規模を有す
るデータRAM、133はデータRAM131、132
との接続を図るデータRAMインタフェース部である。
31、132は256ワード×16ビットの規模を有す
るデータRAM、133はデータRAM131、132
との接続を図るデータRAMインタフェース部である。
【0156】また、140は制御部であり、141はク
ロック制御部、142はテスト用回路、RSTXはリセ
ット信号、CLK1は内部クロック信号、CLK0は外
部同期用クロック信号、TEST2〜0はテスト用信号
である。
ロック制御部、142はテスト用回路、RSTXはリセ
ット信号、CLK1は内部クロック信号、CLK0は外
部同期用クロック信号、TEST2〜0はテスト用信号
である。
【0157】このDSPにおいては、16ビット×16
ビット→32ビットの乗算を行う2個の乗算器73、7
4が搭載されているので、16ビット×16ビット系積
和演算として、16ビット×16ビット→32ビット、
32ビット±16ビット×16ビット→32ビットの積
和演算を行うことができる。
ビット→32ビットの乗算を行う2個の乗算器73、7
4が搭載されているので、16ビット×16ビット系積
和演算として、16ビット×16ビット→32ビット、
32ビット±16ビット×16ビット→32ビットの積
和演算を行うことができる。
【0158】また、32ビット×16ビット系積和演算
として、32ビット×16ビット→32ビット、32ビ
ット±32ビット×16ビット→32ビットの積和演算
を行うことができる。
として、32ビット×16ビット→32ビット、32ビ
ット±32ビット×16ビット→32ビットの積和演算
を行うことができる。
【0159】また、32ビット×32ビット系積和演算
として、32ビット×32ビット→32ビット、32ビ
ット±32ビット×32ビット→32ビットなる積和演
算を行うことができる。
として、32ビット×32ビット→32ビット、32ビ
ット±32ビット×32ビット→32ビットなる積和演
算を行うことができる。
【0160】また、ダブル16ビット×16ビット系積
和演算として、16ビット×16ビット±16ビット×
16ビット→32ビット、32ビット±(16ビット×
16ビット±16ビット×16ビット)→32ビットな
る積和演算を行うことができる。
和演算として、16ビット×16ビット±16ビット×
16ビット→32ビット、32ビット±(16ビット×
16ビット±16ビット×16ビット)→32ビットな
る積和演算を行うことができる。
【0161】このように、このDSPにおいては、たと
えば、32ビットの被乗数Xと32ビットの乗数Yとの
乗算を行う場合、被乗数Xを上位16ビットのx1と下
位16ビットのx0に分けると共に、乗数Yを上位16
ビットのy1と下位16ビットのy0とに分けるように
し、x1を被乗数、y0を乗数とする乗算x1×y0と、x
0を被乗数、y0を乗数とする乗算x0×y0と、x1を被
乗数、y1を乗数とする乗算x1×y1と、x0を被乗数、
y1を乗数とする乗算x0×y1とを、それぞれ、表2、
表3、表4、表5に示す修正された第1、第2、第3、
第4の2ビット・ブースの方法で行い、これら乗算x1
×y0、x0×y0、x1×y1、x0×y1の乗算結果z1、
z2、z3、z4を、図1に示す加算部11を示すブロッ
ク内に示した所定の規則の下に加算することができる。
えば、32ビットの被乗数Xと32ビットの乗数Yとの
乗算を行う場合、被乗数Xを上位16ビットのx1と下
位16ビットのx0に分けると共に、乗数Yを上位16
ビットのy1と下位16ビットのy0とに分けるように
し、x1を被乗数、y0を乗数とする乗算x1×y0と、x
0を被乗数、y0を乗数とする乗算x0×y0と、x1を被
乗数、y1を乗数とする乗算x1×y1と、x0を被乗数、
y1を乗数とする乗算x0×y1とを、それぞれ、表2、
表3、表4、表5に示す修正された第1、第2、第3、
第4の2ビット・ブースの方法で行い、これら乗算x1
×y0、x0×y0、x1×y1、x0×y1の乗算結果z1、
z2、z3、z4を、図1に示す加算部11を示すブロッ
ク内に示した所定の規則の下に加算することができる。
【0162】したがって、このDSPによれば、図形処
理を行うに必要な演算を行う場合に、加算段数を減ら
し、演算時間の短縮化を図ると共に、論理量の低減化を
図ることができる。
理を行うに必要な演算を行う場合に、加算段数を減ら
し、演算時間の短縮化を図ると共に、論理量の低減化を
図ることができる。
【0163】
【発明の効果】以上のように、本発明によれば、2nビ
ットの被乗数Xと2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と下位nビットの
x0とに分けると共に、乗数Yを上位nビットのy1と下
位nビットのy0とに分け、x1を被乗数、y0を乗数と
する乗算x1×y0と、x0を被乗数、y0を乗数とする乗
算x0×y0と、x1を被乗数、y1を乗数とする乗算x1
×y1と、x0を被乗数、y1を乗数とする乗算x0×y1
とを、それぞれ、たとえば、表2、表3、表4、表5に
示す修正された第1、第2、第3、第4の2ビット・ブ
ースの方法で行い、これら乗算x1×y0、x0×y0、x
1×y1、x0×y1の結果を所定の規則の下に加算すると
しているので、加算段数を減らし、乗算時間の短縮化を
図ることができると共に、処理すべき論理量の低減化を
図ることができる。
ットの被乗数Xと2nビットの乗数Yとの乗算を行う場
合に、被乗数Xを上位nビットのx1と下位nビットの
x0とに分けると共に、乗数Yを上位nビットのy1と下
位nビットのy0とに分け、x1を被乗数、y0を乗数と
する乗算x1×y0と、x0を被乗数、y0を乗数とする乗
算x0×y0と、x1を被乗数、y1を乗数とする乗算x1
×y1と、x0を被乗数、y1を乗数とする乗算x0×y1
とを、それぞれ、たとえば、表2、表3、表4、表5に
示す修正された第1、第2、第3、第4の2ビット・ブ
ースの方法で行い、これら乗算x1×y0、x0×y0、x
1×y1、x0×y1の結果を所定の規則の下に加算すると
しているので、加算段数を減らし、乗算時間の短縮化を
図ることができると共に、処理すべき論理量の低減化を
図ることができる。
【図1】本発明の原理を示す図である。
【図2】本発明の第1実施例を示す回路図である。
【図3】本発明の第2実施例を示す回路図である。
【図4】本発明の第3実施例を示す回路図である。
【図5】本発明の第4実施例を示す回路図である。
【図6】本発明の第5実施例を示す回路図である。
【図7】本発明の第4実施例の使用例を示すブロック図
である。
である。
X 被乗数
Y 乗数
10 乗算部
11 加算部
フロントページの続き
(72)発明者 香月 俊治
東京都千代田区丸の内2丁目6番1号
富士通デバイス株式会社内
(56)参考文献 特開 平3−94328(JP,A)
(58)調査した分野(Int.Cl.7,DB名)
G06F 7/52 310
Claims (6)
- 【請求項1】2nビット(但し、n=2以上の整数)の
被乗数(X)の上位nビット(x1)を被乗数、2nビ
ットの乗数(Y)の下位nビット(y0)を乗数とする
第1の乗算(x1×y0)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
記乗数(Y)の下位nビット(y0)を乗数とする第2
の乗算(x0×y0)と、 前記被乗数(X)の上位nビット(x1)を被乗数、前
記乗数(Y)の上位nビット(y1)を乗数とする第3
の乗算(x1×y1)と、 前記被乗数(X)の下位nビット(x0)を被乗数、前
記乗数(Y)の上位nビット(y1)を乗数とする第4
の乗算(x0×y1)とを、 前記第1の乗算(x1×y0)については、前記乗数
(Y)の下位nビット(y0)の評価ビットを
y0.2J+2、y0.2J+1、y0.2J(但し、J=0、1・・・
n/2)と記す場合に、y0.2J+2=1、y0.2J+1=0、
y0.2J=0の場合には、部分積の操作について、前記被
乗数(X)の上位nビット(x1)の反転数を左へ1ビ
ットシフトした値を加えて2ビット右へシフトし、y0.
2J+2=1、y0.2J+1=0、y0.2J=1の場合、及び、y
0.2J+2=1、y0.2J+1=1、y0.2J=0の場合には、部
分積の操作について、前記被乗数(X)の上位nビット
(x1)の反転数を加えて2ビット右へシフトするよう
に修正された第1の2ビット・ブースの方法に基づいて
行い、 前記第2の乗算(x0×y0)については、符号は0を拡
張するように修正された第2の2ビット・ブースの方法
に基づいて行い、 前記第3の乗算(x1×y1)については、前記乗数
(Y)の上位ビット(y1)の評価ビットをy1.2J+2、
y1.2J+1、y1.2Jと記す場合に、最下位評価ビットの値
を前記乗数(Y)の下位nビット(y0)の最上位ビッ
トの値(M)とし、y1.2J+2=1、y1.2J+1=0、y1.
2J=0の場合には、部分積の操作について、前記被乗数
(X)の上位nビット(x1)の反転数を左へ1ビット
シフトした値を加えて2ビット右へシフトし、y1.2J+2
=1、y1.2J+1=0、y1.2J=1の場合、及び、y1.
2J+2=1、y1.2J+1=1、y1.2J=0の場合には、部分
積の操作について、前記被乗数(X)の上位nビット
(x1)の反転数を加えて2ビット右へシフトするよう
に修正された第3の2ビット・ブースの方法に基づいて
行い、 前記第4の乗算(x0×y1)については、最下位評価ビ
ットの値を前記乗数(Y)の下位nビット(y0)の最
上位ビットの値(M)とし、符号は0を拡張するように
修正された第4の2ビット・ブースの方法に基づいて行
う乗算部(10)と、 前記第1、第2、第3及び第4の乗算(x1×y0、x0
×y0、x1×y1、x0×y1)の乗算結果(z1、z2、
z3、z4)について、前記第1及び第4の乗算(x1×
y0、x0×y1)の乗算結果(z1、z4)については、
桁を同一にし、前記第2の演算(x0×y0)の乗算結果
(z2)については、前記第1及び第4の乗算(x1×y
0、x0×y1)の乗算結果(z1、z4)に対して、nビ
ット右へシフトし、前記第3の乗算(x1×y1)の乗算
結果(z3)については、前記第1及び第4の乗算(x1
×y0、x0×y1)の乗算結果(z1、z4)に対して、
nビット左へシフトした状態で、加算を行う加算部(1
1)とを設け、 前記被乗数(X)と前記乗数(Y)との乗算を行うよう
にされていることを特徴とする乗算回路。 - 【請求項2】前記乗算部(10)は、前記第1の乗算
(x1×y0)を前記修正された第1の2ビット・ブース
の方法に基づいて行い、前記第3の乗算(x1×y1)を
前記修正された第3の2ビット・ブースの方法に基づい
て行う第1の乗算器と、前記第2の乗算(x0×y0)を
前記修正された第2の2ビット・ブースの方法に基づい
て行い、前記第4の乗算(x0×y1)を前記修正された
第4の2ビット・ブースの方法に基づいて行う第2の乗
算器とを設けて構成されていることを特徴とする請求項
1記載の乗算回路。 - 【請求項3】前記乗算部(10)は、前記第1の乗算
(x1×y0)を前記修正された第1の2ビット・ブース
の方法に基づいて行う第1の乗算器と、前記第2の乗算
(x0×y0)を前記修正してなる第2の2ビット・ブー
スの方法に基づいて行う第2の乗算器と、前記第3の乗
算(x1×y1)を前記修正してなる第3の2ビット・ブ
ースの方法に基づいて行う第3の乗算器と、前記第4の
乗算(x0×y1)を前記修正された第4の2ビット・ブ
ースの方法に基づいて行う第4の乗算器とを設けて構成
されていることを特徴とする請求項1記載の乗算回路。 - 【請求項4】前記乗算部(10)は、前記第1の乗算
(x1×y0)を前記修正された第1の2ビット・ブース
の方法に基づいて行い、前記第2の乗算(x0×y0)を
前記修正された第2の2ビット・ブースの方法に基づい
て行い、前記第3の乗算(x1×y1)を前記修正された
第3の2ビット・ブースの方法に基づいて行い、前記第
4の乗算(x0×y1)を前記修正された第4の2ビット
・ブースの方法に基づいて行う乗算器を設けて構成され
ていることを特徴とする請求項1記載の乗算回路。 - 【請求項5】前記乗算部(10)は、前記第1の乗算
(x1×y0)を前記修正された第1の2ビット・ブース
の方法に基づいて行い、前記第2の乗算(x0×y0)を
前記修正された第2の2ビット・ブースの方法に基づい
て行う第1の乗算器と、前記第3の乗算(x1×y1)を
前記修正された第3の2ビット・ブースの方法に基づい
て行い、前記第4の乗算(x0×y1)を前記修正された
第4の2ビット・ブースの方法に基づいて行う第2の乗
算器とを設けて構成されていることを特徴とする請求項
1記載の乗算回路。 - 【請求項6】前記乗算部(10)は、前記第1の乗算
(x1×y0)を前記修正された第1の2ビット・ブース
の方法、前記修正された第2の2ビット・ブースの方
法、前記修正された第3の2ビット・ブースの方法又は
前記修正された第4の2ビット・ブースの方法に基づい
て行う第1の乗算器と、前記第2の乗算(x0×y0)を
前記修正された第1の2ビット・ブースの方法、前記修
正された第2の2ビット・ブースの方法、前記修正され
た第3の2ビット・ブースの方法又は前記修正された第
4の2ビット・ブースの方法に基づいて行う第2の乗算
器と、前記第3の乗算(x1×y1)を前記修正された第
1の2ビット・ブースの方法、前記修正された第2の2
ビット・ブースの方法、前記修正された第3の2ビット
・ブースの方法又は前記修正された第4の2ビット・ブ
ースの方法に基づいて行う第3の乗算器と、前記第4の
乗算(x0×y1)を前記修正された第1の2ビット・ブ
ースの方法、前記修正された第2の2ビット・ブースの
方法、前記修正された第3の2ビット・ブースの方法又
は前記修正された第4の2ビット・ブースの方法に基づ
いて行う第4の乗算器とを設けて構成されていることを
特徴とする請求項1記載の乗算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22412993A JP3435744B2 (ja) | 1993-09-09 | 1993-09-09 | 乗算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22412993A JP3435744B2 (ja) | 1993-09-09 | 1993-09-09 | 乗算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0784763A JPH0784763A (ja) | 1995-03-31 |
JP3435744B2 true JP3435744B2 (ja) | 2003-08-11 |
Family
ID=16809000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22412993A Expired - Fee Related JP3435744B2 (ja) | 1993-09-09 | 1993-09-09 | 乗算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3435744B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7107305B2 (en) * | 2001-10-05 | 2006-09-12 | Intel Corporation | Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions |
US7769797B2 (en) | 2004-01-20 | 2010-08-03 | Samsung Electronics Co., Ltd. | Apparatus and method of multiplication using a plurality of identical partial multiplication modules |
JP6886389B2 (ja) * | 2017-10-23 | 2021-06-16 | 日立Astemo株式会社 | 演算装置及び車載制御装置 |
-
1993
- 1993-09-09 JP JP22412993A patent/JP3435744B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0784763A (ja) | 1995-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4597053A (en) | Two-pass multiplier/accumulator circuit | |
US5001662A (en) | Method and apparatus for multi-gauge computation | |
JP3110288B2 (ja) | 指数対数変換回路 | |
US5457805A (en) | Microcomputer enabling high speed execution of product-sum operation | |
JPH08234962A (ja) | 24ビットおよび16ビット算術演算の双方を実行するための装置および方法 | |
US5957996A (en) | Digital data comparator and microprocessor | |
JP3767085B2 (ja) | 情報処理回路及びマイクロコンピュータ | |
JP3476960B2 (ja) | 算術論理演算装置及び制御方法 | |
JPH07121354A (ja) | 倍精度・単精度・内積演算および複素乗算が可能な乗算器 | |
JP3435744B2 (ja) | 乗算回路 | |
CA1170773A (en) | Data processor using a read only memory for selecting a part of a register into which data is written | |
US3840727A (en) | Binary multiplication by addition with non-verlapping multiplier recording | |
US5751999A (en) | Processor and data memory for outputting and receiving data on different buses for storage in the same location | |
JPS59178544A (ja) | メモリアクセス回路 | |
JP2001216136A (ja) | 加算回路およびプロセッサ | |
JP3441847B2 (ja) | データメモリを有するプロセッサ | |
JPH04314126A (ja) | 逆数発生装置 | |
US6792442B1 (en) | Signal processor and product-sum operating device for use therein with rounding function | |
JP2972326B2 (ja) | 平方根計算装置 | |
US7590677B2 (en) | Processor with summation instruction using overflow counter | |
JP3394052B2 (ja) | 多精度運算方法及び多精度運算装置 | |
JP2675087B2 (ja) | マイクロコンピュータ | |
JP2508286B2 (ja) | 平方根演算装置 | |
JP3522167B2 (ja) | 演算処理回路及び演算処理方法 | |
JP2624738B2 (ja) | 丸め処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20030506 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090606 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |