JP2608165B2 - ディジタル信号処理システムにおける実時間2の補数コードの乗算方法及び装置 - Google Patents
ディジタル信号処理システムにおける実時間2の補数コードの乗算方法及び装置Info
- Publication number
- JP2608165B2 JP2608165B2 JP2162540A JP16254090A JP2608165B2 JP 2608165 B2 JP2608165 B2 JP 2608165B2 JP 2162540 A JP2162540 A JP 2162540A JP 16254090 A JP16254090 A JP 16254090A JP 2608165 B2 JP2608165 B2 JP 2608165B2
- Authority
- JP
- Japan
- Prior art keywords
- partial sum
- output
- multiplier
- latch circuit
- multiplicand
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5306—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は、ディジタル信号処理システムにおける実時
間2の補数コードの乗算方法及び装置に係り、特にスト
レートコードデータを乗算する代わりに2の補数コード
数を乗算するディジタル信号処理システムにおける実時
間2の補数コードの乗算方法及び装置に係る。
間2の補数コードの乗算方法及び装置に係り、特にスト
レートコードデータを乗算する代わりに2の補数コード
数を乗算するディジタル信号処理システムにおける実時
間2の補数コードの乗算方法及び装置に係る。
従来の技術及び問題点 一般にディジタル信号処理システムは常に正の値を扱
うものではない。例えば、A/D(アナログ・ディジタ
ル)変換器がアナログ入力データをディジタル信号に変
換し、そのように変換されたディジタル信号を減算する
ことにより新しい値を得る場合を考えると、A−Bの減
算が行われる時、値Aが値Bより大きい場合、出力は正
の値で発生される。ここで、出力データは勿論有効であ
る。しかし、値Aが値Bより小さい場合、出力データは
負の値として発生され望ましくないことに無効値にな
る。
うものではない。例えば、A/D(アナログ・ディジタ
ル)変換器がアナログ入力データをディジタル信号に変
換し、そのように変換されたディジタル信号を減算する
ことにより新しい値を得る場合を考えると、A−Bの減
算が行われる時、値Aが値Bより大きい場合、出力は正
の値で発生される。ここで、出力データは勿論有効であ
る。しかし、値Aが値Bより小さい場合、出力データは
負の値として発生され望ましくないことに無効値にな
る。
従って、ディジタルコードデータは、正の値(数)の
みならず、負の値も扱えなければならないことが理解さ
れる。実際、この為、従来のディジタル信号処理システ
ムは種々のコードシステムを使用していた。
みならず、負の値も扱えなければならないことが理解さ
れる。実際、この為、従来のディジタル信号処理システ
ムは種々のコードシステムを使用していた。
第1に、この為に、コードの一番前にコードの値が正
であるか負であるかを付加的に示す追加ビットを有する
符号振幅コードが用いられる。このコードシステムは、
コードの絶対値を示す部分とその符号値を示す他の部分
に分けられる。
であるか負であるかを付加的に示す追加ビットを有する
符号振幅コードが用いられる。このコードシステムは、
コードの絶対値を示す部分とその符号値を示す他の部分
に分けられる。
第2に、いわゆる2の補数コードの基本原理は補数の
概念を用いることである。このコードシステムは、加算
及び減算の両方を一貫的に計算するので、一般のディジ
タル信号処理システムで広く用いられる。
概念を用いることである。このコードシステムは、加算
及び減算の両方を一貫的に計算するので、一般のディジ
タル信号処理システムで広く用いられる。
一般のディジタル信号処理システムでは、同じ結果が
コードシステムにかかわらず得られる。しかし、非常に
高い周波数(恐らく、数十MHz)が作動クロック用に用
いられる時、種々の特性、特にディジタル信号処理シス
テムの速度特性はコードシステムに大きく依存する。実
質的なディジタル信号処理システムによると、構成は、
加算器、減算器、乗算器及び除算器の組み合わせとして
考えられ、その全ては入力データコード(例えばストレ
ートコード、符号付き大きさコード又は2の補数コー
ド)を対応して処理するためのものである。
コードシステムにかかわらず得られる。しかし、非常に
高い周波数(恐らく、数十MHz)が作動クロック用に用
いられる時、種々の特性、特にディジタル信号処理シス
テムの速度特性はコードシステムに大きく依存する。実
質的なディジタル信号処理システムによると、構成は、
加算器、減算器、乗算器及び除算器の組み合わせとして
考えられ、その全ては入力データコード(例えばストレ
ートコード、符号付き大きさコード又は2の補数コー
ド)を対応して処理するためのものである。
これらの加算器,減算器,乗算器及び除算器の動作の
うち、除算器及び除算器の動作は比較的時間が長い。従
って、システム速度は実質的に乗算器及び除算器の構成
に依存する。
うち、除算器及び除算器の動作は比較的時間が長い。従
って、システム速度は実質的に乗算器及び除算器の構成
に依存する。
2の補数コードシステムは、負の数を簡単に表現し、
演算することができるので、加算及び減算の両方の一貫
性が数を演算する際に有利に用いられるという利点のあ
ることは良く知られている。
演算することができるので、加算及び減算の両方の一貫
性が数を演算する際に有利に用いられるという利点のあ
ることは良く知られている。
第1A及び1B図を参照するに、加算(X+Y)は第1A図
の回路で実施され、一方減算(X−Y)は第1B図の回路
で実施される。上記の2つの回路の間の差は桁上げ入力
端子Cin及び第1B図の回路にのみ含まれるインバータ108
の状態にあげることが注目される。すなわち、桁上げ入
力信号が0の時、第1A図の回路は加算を行ない、一方、
桁上げ信号が1の時、第1B図の回路は減算を行う。
の回路で実施され、一方減算(X−Y)は第1B図の回路
で実施される。上記の2つの回路の間の差は桁上げ入力
端子Cin及び第1B図の回路にのみ含まれるインバータ108
の状態にあげることが注目される。すなわち、桁上げ入
力信号が0の時、第1A図の回路は加算を行ない、一方、
桁上げ信号が1の時、第1B図の回路は減算を行う。
二進演算の一般的理論によると、二進数(加数)の全
てのビットは、加算を実施するよう加算されるべき二進
数の対応ビットに加算される。しかし、二進数の減算に
対し、加数の全てのビットは、加算さるべき二進数の2
の補数の対応ビットに加算される。2の補数の数が1の
補数の数に1を加算することにより得られることは前も
って注意されねばならない。この関係は下記の如く表さ
れる; A−B=A+(−B)=A++1……(1) 式(1)は第2図に示す加算器/減算器として具体化
される。
てのビットは、加算を実施するよう加算されるべき二進
数の対応ビットに加算される。しかし、二進数の減算に
対し、加数の全てのビットは、加算さるべき二進数の2
の補数の対応ビットに加算される。2の補数の数が1の
補数の数に1を加算することにより得られることは前も
って注意されねばならない。この関係は下記の如く表さ
れる; A−B=A+(−B)=A++1……(1) 式(1)は第2図に示す加算器/減算器として具体化
される。
一方、2の補数コードが乗算される場合には、2の補
数コードは符号及び絶対値(コードの大きさ)に分けら
れ、先ず絶対値が乗算され、次に符号が別々に補正され
る。
数コードは符号及び絶対値(コードの大きさ)に分けら
れ、先ず絶対値が乗算され、次に符号が別々に補正され
る。
コードの大きさだけを考えるに、それは2の補数加算
を繰り返し実施することで得られる。しかし、乗数及び
被乗数が大きい数のコードである場合、システムは、加
算を実施するので複雑になる。この問題を解決する為、
装置が2つのコードを加算して部分和を計算しシステム
のハードウェアを簡素化する公知の装置が一般に用いら
れる。次に、部分和は、乗算結果を得る為再び互いに加
算される。かかる装置を適合する時、演算速度が大きく
減少するという最も顕著な欠点がある。
を繰り返し実施することで得られる。しかし、乗数及び
被乗数が大きい数のコードである場合、システムは、加
算を実施するので複雑になる。この問題を解決する為、
装置が2つのコードを加算して部分和を計算しシステム
のハードウェアを簡素化する公知の装置が一般に用いら
れる。次に、部分和は、乗算結果を得る為再び互いに加
算される。かかる装置を適合する時、演算速度が大きく
減少するという最も顕著な欠点がある。
パイプライン構造の乗算器を導入し計算の速度を高め
る別の装置が開示される。第3図では、パイプライン構
造を有する従来の振幅乗算器が説明される。図面の全て
のラッチはシステムクロックと同期される。ラッチ回路
301はnビットの入力値Xをラッチし、各加算器310,31
3,317,323は全ての論理ロウ値の桁上げ信号Cinを供給さ
れる。
る別の装置が開示される。第3図では、パイプライン構
造を有する従来の振幅乗算器が説明される。図面の全て
のラッチはシステムクロックと同期される。ラッチ回路
301はnビットの入力値Xをラッチし、各加算器310,31
3,317,323は全ての論理ロウ値の桁上げ信号Cinを供給さ
れる。
その後、nビットの入力値Yがラッチ回路302でラッ
チされる場合、ゲート303及び304は値Yを最下位ビット
(LSB)X0及び第2のSLBビットX1と夫々論理積演算を行
う。同時に、ラッチ306は入力値Yをラッチする。次
に、加算器310の出力は、ANDゲート308の出力に加算器3
13で加算されるべきラッチ回路311でラッチされる。従
って、ラッチ回路316のラッチ出力Snは下式になる。
チされる場合、ゲート303及び304は値Yを最下位ビット
(LSB)X0及び第2のSLBビットX1と夫々論理積演算を行
う。同時に、ラッチ306は入力値Yをラッチする。次
に、加算器310の出力は、ANDゲート308の出力に加算器3
13で加算されるべきラッチ回路311でラッチされる。従
って、ラッチ回路316のラッチ出力Snは下式になる。
Sn=Y・X0+Y・X1・2 更に、この場合での部分和Psは下式になる。
Ps=Y・X0+Y・X1・2+Y・X2・22 この様にして、部分和は各加算器で得られ、結果は、
被乗数に加算されるべき次の段階に遷移される。
被乗数に加算されるべき次の段階に遷移される。
パイプライン構造を用いるかかる振幅乗算供給は実際
演算の速度を高める長所を有する。しかし、この振幅乗
算器は、2の補数を扱うことができなという欠点を依然
有する。
演算の速度を高める長所を有する。しかし、この振幅乗
算器は、2の補数を扱うことができなという欠点を依然
有する。
問題点を解決する手段 本発明の目的は、2の補数の原理を用いることにより
演算速度を上昇できる振幅乗算器を提供することであ
る。
演算速度を上昇できる振幅乗算器を提供することであ
る。
本発明の別な目的は、被乗数を2の補数コードに変換
しないで2つの2の補数コードを直接演算する振幅乗算
器を提供することである。
しないで2つの2の補数コードを直接演算する振幅乗算
器を提供することである。
本発明の更に別な目的は、パイプライン構造を有す
る、2つの2の補数コード乗算する改良された振幅乗算
器を提供することである。
る、2つの2の補数コード乗算する改良された振幅乗算
器を提供することである。
本発明の更に他の目的は、被乗数の符号及び大きさを
別々に演算しないで、直接2の補数乗算を用いる乗算器
を提供することである。
別々に演算しないで、直接2の補数乗算を用いる乗算器
を提供することである。
本発明の別な目的は、2の補数コードの乗算を正確に
実施するばかりでなくパイプライン構造が高速演算を実
施できるようにする方法及び回路を提供することであ
る。
実施するばかりでなくパイプライン構造が高速演算を実
施できるようにする方法及び回路を提供することであ
る。
本発明の前記及びその他の目的及び特徴を達成するた
め、パイプライン構造を有する振幅乗算器は、乗数の第
1の所定のビット及び被乗数の第2の所定のビットを受
け、該第2の所定のビット数の回数に対し最下位ビット
(LSB)から遂次乗算された乗数を生じ、先の部分和の
最上位ビット(MSB)を該部分和を補正するよう本部分
和のMSBと論理和する部分和補正手段と、 被乗数及び該被乗数の第2の所定のビットのMSBを否
定論理積(ナンド)して作られた値から最終部分和の出
力を減算する2の補数補正器よりなる。
め、パイプライン構造を有する振幅乗算器は、乗数の第
1の所定のビット及び被乗数の第2の所定のビットを受
け、該第2の所定のビット数の回数に対し最下位ビット
(LSB)から遂次乗算された乗数を生じ、先の部分和の
最上位ビット(MSB)を該部分和を補正するよう本部分
和のMSBと論理和する部分和補正手段と、 被乗数及び該被乗数の第2の所定のビットのMSBを否
定論理積(ナンド)して作られた値から最終部分和の出
力を減算する2の補数補正器よりなる。
実施例 本発明をより明確に理解するため以下図面と共に本発
明による実施例を説明する。
明による実施例を説明する。
第4図を参照するに、全てのラッチ回路,ANDゲート及
び加算器が第3図に示されている素子と同様の素子を示
す本発明の振幅乗算器が示されている。図面では、AND
ゲート303,304の出力の最上位ビット(MSB)値がORゲー
ト401に印加され、ORゲート401の出力がラッチ311に印
加され、ANDゲート308からのMSB出力とラッチ311からの
MSB出力がそこの部分和を補正するようORゲート402に印
加される従来の振幅乗算器を僅か異なっている。同じ様
に、ラッチ318からのMSB出力及びラッチ319からのMSB出
力はNANDゲート322に供給され、NANDゲート322の出力
は、2の補数コードを補正するよう加算器323の入力端
子に結合され、その他の入力端子はラッチ320の出力端
子に結合される。この様に、NANDゲート322及びラッチ3
20の出力に対する減算演算は実施される。ここで、第3
図のANDゲート322′が第4図ではNANDゲート322に置き
換えられている。
び加算器が第3図に示されている素子と同様の素子を示
す本発明の振幅乗算器が示されている。図面では、AND
ゲート303,304の出力の最上位ビット(MSB)値がORゲー
ト401に印加され、ORゲート401の出力がラッチ311に印
加され、ANDゲート308からのMSB出力とラッチ311からの
MSB出力がそこの部分和を補正するようORゲート402に印
加される従来の振幅乗算器を僅か異なっている。同じ様
に、ラッチ318からのMSB出力及びラッチ319からのMSB出
力はNANDゲート322に供給され、NANDゲート322の出力
は、2の補数コードを補正するよう加算器323の入力端
子に結合され、その他の入力端子はラッチ320の出力端
子に結合される。この様に、NANDゲート322及びラッチ3
20の出力に対する減算演算は実施される。ここで、第3
図のANDゲート322′が第4図ではNANDゲート322に置き
換えられている。
更にラッチ回路305,306,311,312,ANDゲート308,ORゲ
ート402及び加算器313からなる部分40aと同じ複数の部
分は、順次部分40bの各対応する出力端子に結合されう
る。
ート402及び加算器313からなる部分40aと同じ複数の部
分は、順次部分40bの各対応する出力端子に結合されう
る。
第5図を参照するに、本発明の特に示された実施例で
は、被乗数Xは12ビットデータで、乗数Yが5ビットで
ある。この実施例は2つの値X及びYを乗算する例を示
す。
は、被乗数Xは12ビットデータで、乗数Yが5ビットで
ある。この実施例は2つの値X及びYを乗算する例を示
す。
本発明の説明の便宜上ストレートコードから2の補数
コードに変換する論理を以下に簡単に説明する。被乗数
Fが乗数Rで乗算されるとき、 2つのコード値は共に2の補数コードであり、各値は下
記の様になる。
コードに変換する論理を以下に簡単に説明する。被乗数
Fが乗数Rで乗算されるとき、 2つのコード値は共に2の補数コードであり、各値は下
記の様になる。
F=Fn-1,Fn-2,…F2,F1,F0……(2) (例えばF=101001) R=Rn-1,Rn-2,…R2,R1,R0……(3) (例えばR=011001) 上記2の補数コードの振幅(絶対値)は下式になる。
上記の式では、MSBビットが0の場合、2の補数コー
ドは正であり、一方,MSBビットは1であり、2の補数コ
ードは負である。従って、2の補数コードの値は下式の
ように計算される。
ドは正であり、一方,MSBビットは1であり、2の補数コ
ードは負である。従って、2の補数コードの値は下式の
ように計算される。
FV=-25+23+1=−23(負)……(6) RV=-24+23+1=−25(正)……(7) 第4図の演算と同様にパイプライン構造を有する第5
図の乗算器は、所望の乗算を実施するよう上記の如く繰
り返して加算演算を行う。
図の乗算器は、所望の乗算を実施するよう上記の如く繰
り返して加算演算を行う。
被乗数F及び乗数Rが2の補数コードに変換される場
合、 値は下式の如く計算される。
合、 値は下式の如く計算される。
ここでRiは0か1のいずれかである。従って、2つの
2の補数コードの乗算を行う為、被乗数Fは、Riの値に
より各加算でシフトされた後、それ自体に繰り返し加算
される。この演算に関する限り、それはストレートコー
ドの加算演算と同じである。しかし、2の補数コードの
特別な特性によると、MSBビットを演算する時、2の補
数コードの乗算演算は、ストレートコードの乗算演算と
異なる。即ち、MSBビットの値Rn-1が0の場合、ストレ
ートコードを実施する場合のように2の補数の乗算を実
施するに問題はない。しかし、MSBビットの値が1であ
る場合、乗算器がMSBビット、すなわちこの場合1をそ
の時迄加算された部分和から減算することが必要であ
る。
2の補数コードの乗算を行う為、被乗数Fは、Riの値に
より各加算でシフトされた後、それ自体に繰り返し加算
される。この演算に関する限り、それはストレートコー
ドの加算演算と同じである。しかし、2の補数コードの
特別な特性によると、MSBビットを演算する時、2の補
数コードの乗算演算は、ストレートコードの乗算演算と
異なる。即ち、MSBビットの値Rn-1が0の場合、ストレ
ートコードを実施する場合のように2の補数の乗算を実
施するに問題はない。しかし、MSBビットの値が1であ
る場合、乗算器がMSBビット、すなわちこの場合1をそ
の時迄加算された部分和から減算することが必要であ
る。
2の補数コードの基本理論によると、2の補数コード
を得る為に、コードの全ビットは先ず反転され(1の補
数である)、次に反転された結果は二進値1を加算され
る。従って、第1B図に示す如く、減算は、被乗数コード
の全ビットを反転し、論理1の桁上げ信号を桁上げ端子
Cinに印加することにより実施される。
を得る為に、コードの全ビットは先ず反転され(1の補
数である)、次に反転された結果は二進値1を加算され
る。従って、第1B図に示す如く、減算は、被乗数コード
の全ビットを反転し、論理1の桁上げ信号を桁上げ端子
Cinに印加することにより実施される。
この原理に基づいて、2の補数コードの補正は、第4
図に示す如くNANDゲート322でラッチ318,319の出力を否
定論理積し、NANDゲート322の出力をラッチ320の出力に
加算することにより実施されうる。
図に示す如くNANDゲート322でラッチ318,319の出力を否
定論理積し、NANDゲート322の出力をラッチ320の出力に
加算することにより実施されうる。
下記で、ORゲート401,402及び403により作られた部分
和の補正を考える為、4ビット2の補数コードの例をと
る。即ち、2の補数コードが F=1100及びR=1011として与えられる場合、下式にな
る。
和の補正を考える為、4ビット2の補数コードの例をと
る。即ち、2の補数コードが F=1100及びR=1011として与えられる場合、下式にな
る。
Fv=-23+22=−4 Rv=-23+21+20=−5 従って、乗算は下式になる。
F×R=−4×−5=20 以下の式は、(−4)×(−5)の計算において、正
しく符号拡張が行われない例を示している。ここで、F
は符号拡張しなければならない部分を表わしている。
しく符号拡張が行われない例を示している。ここで、F
は符号拡張しなければならない部分を表わしている。
この計算の為、乗数及び被乗数は各ANDゲート303,304
により夫々論理的に乗算され、上記ゲートの各出力は加
算器310に供給され、これにより互いに加算された出力
はラッチ311により作られる。
により夫々論理的に乗算され、上記ゲートの各出力は加
算器310に供給され、これにより互いに加算された出力
はラッチ311により作られる。
従って、2の補数コードの特別な特性を用いることに
より、乗算は2つのコードを加算することにより2つの
コードに対して実行されうる。正しく行われた符号拡張
を以下に示す。
より、乗算は2つのコードを加算することにより2つの
コードに対して実行されうる。正しく行われた符号拡張
を以下に示す。
上記計算の結果は、乗数の第2のビットを論理積され
た被乗数に加算されるよう加算器313に加算される。次
に、ラッチ311及びANDゲート308のMSBはORゲート402に
より論理和され、ORゲート402の出力はラッチ316に供給
され、その出力は下記の部分和1101100になる。
た被乗数に加算されるよう加算器313に加算される。次
に、ラッチ311及びANDゲート308のMSBはORゲート402に
より論理和され、ORゲート402の出力はラッチ316に供給
され、その出力は下記の部分和1101100になる。
符号拡張がなされた時、オーバーフローが起こること
は上記実施例の計算からわかる。しかし、オーバーフロ
ーは、そのまま次の段階で使用され、符号拡張が自然に
行なわれるので、コードを補正することは必要ではな
い。
は上記実施例の計算からわかる。しかし、オーバーフロ
ーは、そのまま次の段階で使用され、符号拡張が自然に
行なわれるので、コードを補正することは必要ではな
い。
この様にして、nビット乗数及び被乗数が夫々ラッチ
301及び302に印加され、nビット被乗数と論理和(乗
算)されるよう、乗数のLSB0(最小位ビット)及びLSB1
がANDゲート303,304に夫々供給され、ANDゲートの出力
は各々加算器310により互いに加算される。この実施例
では、ORゲート401は、ANDゲート303,304からの出力を
加算することにより作られた部分和を補正するのに用い
られる。加算器310及びORゲート401の出力はラッチ311
でラッチされる。従って、同じ演算は、乗数のMSBが処
理されるまで繰り返される。最後に、ラッチ318からのM
SB及びラッチ319を通ったnビット被乗数はNANDゲート3
22により否定論理積される。
301及び302に印加され、nビット被乗数と論理和(乗
算)されるよう、乗数のLSB0(最小位ビット)及びLSB1
がANDゲート303,304に夫々供給され、ANDゲートの出力
は各々加算器310により互いに加算される。この実施例
では、ORゲート401は、ANDゲート303,304からの出力を
加算することにより作られた部分和を補正するのに用い
られる。加算器310及びORゲート401の出力はラッチ311
でラッチされる。従って、同じ演算は、乗数のMSBが処
理されるまで繰り返される。最後に、ラッチ318からのM
SB及びラッチ319を通ったnビット被乗数はNANDゲート3
22により否定論理積される。
次に、NANDゲート322の出力及びラッチ320の出力間の
減算は、加算器323により上記出力を加算することによ
り実行され、一方、桁上げ端子Cinは加算器310,313,317
の桁上げ端子Cinの反転論理とは反対に反転論理1を受
ける。従って、上記計算の結果として、 F×Rの乗算がうまく実行される。
減算は、加算器323により上記出力を加算することによ
り実行され、一方、桁上げ端子Cinは加算器310,313,317
の桁上げ端子Cinの反転論理とは反対に反転論理1を受
ける。従って、上記計算の結果として、 F×Rの乗算がうまく実行される。
2の補数の補正を必要としない上記の場合と反対に、
2の補数の補正を必要とする別な例を考える。部分和が
例えば二進値11XXXXである場合(ここでXが「無関係」
を表す)、2つの場合が存在しうる。すなわち、一つは
乗算の必要を示す論理1である。他は乗算の不要を示す
論理0である。実際、論理が0である時、コードを乗算
するのに問題はない。しかし、論理が1である時、その
乗数の特性により「部分和+乗算さるべき値」の演算は
下式の如く表される。
2の補数の補正を必要とする別な例を考える。部分和が
例えば二進値11XXXXである場合(ここでXが「無関係」
を表す)、2つの場合が存在しうる。すなわち、一つは
乗算の必要を示す論理1である。他は乗算の不要を示す
論理0である。実際、論理が0である時、コードを乗算
するのに問題はない。しかし、論理が1である時、その
乗数の特性により「部分和+乗算さるべき値」の演算は
下式の如く表される。
該計算から分かる如く、部分和演算の結果はコードの
符号を負の数から正の数に反転させる。この誤り計算を
補正するため、ORゲート401,402,403が用いられる。更
に、部分和演算の結果が正から負に符号を反転する場
合、ORゲート401,402,403は再びMSBを生じ、これにより
乗算が完了する。
符号を負の数から正の数に反転させる。この誤り計算を
補正するため、ORゲート401,402,403が用いられる。更
に、部分和演算の結果が正から負に符号を反転する場
合、ORゲート401,402,403は再びMSBを生じ、これにより
乗算が完了する。
第5図を参照するに、被乗数が12であり、乗数が5で
ある別な例が示される。即ち、要するに、2の補数コー
ドを処理する為、本発明の乗算器は、2の補数コードの
MSBビットを処理する最終段階のNANDゲート322の出力を
ラッチ320の出力から減算し、桁上げ入力端子には加算
器が減算を行うのを許容する所定の論理信号が供給され
る。部分和の演算では、オーバーフローを補正する為、
部分和のMSBは乗数の対応ビットによってANDゲート304,
308,315を介して供給される被乗数のMSBに論理的に加算
される。従って、乗算はMSBビットを変換する処理によ
り実行されうる。
ある別な例が示される。即ち、要するに、2の補数コー
ドを処理する為、本発明の乗算器は、2の補数コードの
MSBビットを処理する最終段階のNANDゲート322の出力を
ラッチ320の出力から減算し、桁上げ入力端子には加算
器が減算を行うのを許容する所定の論理信号が供給され
る。部分和の演算では、オーバーフローを補正する為、
部分和のMSBは乗数の対応ビットによってANDゲート304,
308,315を介して供給される被乗数のMSBに論理的に加算
される。従って、乗算はMSBビットを変換する処理によ
り実行されうる。
演算が具体的方法で2の補数によりなされるが、MSB
がディジタル信号器で補正される場合の2つの2の補数
乗算の代わりに、一方が2の補数コードであり、他方が
ストレートコードである時、第4図のNANDゲート322
を、第3図に示された従来のゲートの如くANDゲートに
変更し、加算器323の桁上げCinを「0」に設定すること
により、本発明のこれらの目的は、容易に当業者により
実現されうる。
がディジタル信号器で補正される場合の2つの2の補数
乗算の代わりに、一方が2の補数コードであり、他方が
ストレートコードである時、第4図のNANDゲート322
を、第3図に示された従来のゲートの如くANDゲートに
変更し、加算器323の桁上げCinを「0」に設定すること
により、本発明のこれらの目的は、容易に当業者により
実現されうる。
発明の効果 従って、本発明は2の補数コードの正しい計算を行な
い、パイプラインの利点である高速演算を行ない、部分
和のMSB及び乗算数のMSBを補正することによりパイプラ
イン振幅乗算器にて不可能である2の補数を計算するこ
とを可能にするのに効果的である。
い、パイプラインの利点である高速演算を行ない、部分
和のMSB及び乗算数のMSBを補正することによりパイプラ
イン振幅乗算器にて不可能である2の補数を計算するこ
とを可能にするのに効果的である。
本発明を特に望ましい実施例を参照して説明したが、
当業者により詳細な変形を本発明の精神および範囲から
逸脱することなくなしうることが理解されよう。
当業者により詳細な変形を本発明の精神および範囲から
逸脱することなくなしうることが理解されよう。
第1A及び1B図は夫々2の補数コードを演算する加算器及
び減算器を示す図、 第2図は従来の汎用の加算器/減算器を示す図、 第3図は従来のパイプライン乗算器を示す図、 第4図は本発明によるパイプライン乗算器の回路図、 第5図は本発明による5×12の乗算を示す図である。 100,101,103,104,105,107,201,202,205,204,301,302,30
5,306,307,309,311,312,314,316,318,319,320,321,324,
325……ラッチ、102,106,203,310,313,317,323……加算
器、108……インバータ、303,304,308,315,322′……AN
Dゲート、322……NANDゲート、401,402,403……ORゲー
ト。
び減算器を示す図、 第2図は従来の汎用の加算器/減算器を示す図、 第3図は従来のパイプライン乗算器を示す図、 第4図は本発明によるパイプライン乗算器の回路図、 第5図は本発明による5×12の乗算を示す図である。 100,101,103,104,105,107,201,202,205,204,301,302,30
5,306,307,309,311,312,314,316,318,319,320,321,324,
325……ラッチ、102,106,203,310,313,317,323……加算
器、108……インバータ、303,304,308,315,322′……AN
Dゲート、322……NANDゲート、401,402,403……ORゲー
ト。
Claims (8)
- 【請求項1】順次に接続され、その各々は、第1の所定
のビット数の乗数をラッチする第1のラッチ手段と、第
2の所定のビット数の被乗数を構成するビットをラッチ
する第2のラッチ手段と、前の段の部分和をラッチする
第3のラッチ手段と、該第1のラッチ手段の出力と該第
2のラッチ手段からの出力を乗算する第1の論理ゲート
と、現在の段の部分和を得るため該第3のラッチ手段の
出力と該第1の論理ゲートの出力とを加算する加算器
と、該加算器の出力と前の段でラッチされた値とをラッ
チする第4のラッチ手段とからなる複数の部分和発生手
段よりなり、該複数の部分和発生手段の該第1の論理ゲ
ートによる乗算は該被乗数の下位ビットから順次に該第
2の所定のビット数に対応する回数で行われる、パイプ
ライン乗算器において、 該現在の段の部分和を補正するよう該前の段の部分和の
最上位ビットと、該第1の論理ゲートの出力の最上位ビ
ットを論理和し、得られた論理和を次の段に提供する部
分和補正手段と; 該被乗数の最上位ビットと該乗数を否定論理積し、得ら
れた否定論理積から該複数の部分和手段の最終段で得ら
れた最終部分和を減算する2の補数補正手段を更に有す
る、ディジタル信号処理システムにおける実時間2の補
数コードの乗算装置。 - 【請求項2】前記部分和補正手段は、前記第1の論理ゲ
ートからの出力と、前記第3のラッチ手段からの前記前
の段の部分和とを受け、夫々の最上位ビットを論理和す
る論理和手段と、 補正された部分和を生ずるよう該前の段からの該論理和
手段の出力と対応する該部分和とを受けるラッチ手段と
を有する、請求項1記載のディジタル信号処理システム
における実時間2の補数コードの乗算装置。 - 【請求項3】前記2の補数補正手段は、前記被乗数の最
上位ビットと前記乗数を否定論理積して該被乗数の最上
位ビットに基づいて該乗数を選択的に転送する手段と、 該転送手段に動作可能に結合され、該転送手段の出力か
ら前記最終部分和を減算する手段とからなる、請求項2
記載のディジタル信号処理システムにおける実時間2の
補数コードの乗算装置。 - 【請求項4】前記論理和手段の数は、前記被乗数の前記
第2の所定のビット数より2だけ少ない、請求項2記載
のディジタル信号処理システムにおける実時間2の補数
コードの乗算装置。 - 【請求項5】各々の段にラッチ回路と加算器とを有し、
前の段の部分和を受け、現在の段の部分和を発生する順
次に接続された複数段の部分和発生手段よりなる、パイ
プライン乗算器において、 被乗数を構成するビットと乗数を受け、該ビットを該乗
数で順次に乗算することにより第1の値を発生し、該前
の部分和の最上位ビットと、該第1の値の最上位ビット
を論理和し、該現在の段の部分和を補正する部分和補正
手段と、 該乗数と該被乗数の最上位ビットを否定論理積して得ら
れた第2の値から、該順次に接続された複数段の部分和
発生手段の最終段によって発生された現在の段の部分和
を減算する2の補数補正手段とからなる、ディジタル信
号処理システムにおける実時間2の補数コードの乗算装
置。 - 【請求項6】複数のラッチ回路と加算器を有し、2の補
数コードを乗算する手段を含む乗算装置であって、 被乗数を受ける第1のラッチ手段と、 乗数を受け、該乗数の最下位から2ビットを供給する第
2のラッチ手段と、 該乗数の最下位から2ビットを該被乗数と夫々結合する
第1及び第2の結合手段と、 該第1の結合手段及び該第2の結合手段の出力から現在
の部分和を発生する加算器と、 該第1の結合手段の出力の最上位ビットと、該第2の結
合手段の出力の最上位ビットから補正信号を発生するゲ
ート手段と、 該現在の部分和と、該補正信号を受け、補正された部分
和を発生する部分和補正手段とからなる、ディジタル信
号処理システムにおける実時間2の補数コードの乗算装
置。 - 【請求項7】nビットの被乗数をラッチするラッチ回路
(301)と、nビットの乗数をラッチするラッチ回路(3
02)と、該ラッチ回路(301)の出力の下位2ビットと
該ラッチ回路(302)の出力とを夫々乗算するANDゲート
の組(303,304)と、該ラッチ回路(301)の出力の中の
該下位2ビット以外の出力を1ビットずつ分離して順次
にラッチする少なくとも一のラッチ回路(305,307,……
318)と、該ラッチ回路(302)の出力を順次にラッチす
る少なくとも一のラッチ回路(306,309,……319)と、
該ラッチ回路(305,307,……318)の出力から分離され
た1ビットと該ラッチ回路(306,309,……319)の出力
を乗算する少なくとも一のANDゲート(308,315)と、該
ANDゲートの組(303,304)の出力を加算する加算器(31
0)と、該加算器(310)の出力と該ANDゲートの組の一
方のANDゲート(303)の出力をラッチするラッチ回路
(312)と、部分和を発生する加算器(313,317)と、該
加算器(310,313,317)の出力を夫々順次にラッチする
ラッチ回路(311,316,320)と、該加算器(310,313,31
7)の出力と前の段階でラッチされた出力値をラッチす
るラッチ回路(314,321)と、該ラッチ回路(318,319)
の出力を乗算するANDゲート(322)と、該ANDゲート(3
22)と該ラッチ回路(320)の出力を加算する加算器(3
23)と、該加算器(323)と該ラッチ回路(321)の出力
をラッチするラッチ回路(324,326)を備えている乗算
装置において、 該ANDゲートの組(303,304)の最上位ビットを加算し
て、次の段の該ラッチ回路(311)に供給するORゲート
(401)と、 該ANDゲート(308)の最上位ビットと、該ラッチ回路
(311)の最上位ビットを加算して、次の段の該ラッチ
回路(316,320)に供給して部分和を発生するORゲート
(402,403)と、 該ラッチ回路(318)の被乗数の最上位ビットと、該ラ
ッチ回路(319)の乗数を否定論理積するNANDゲート(3
22)とから構成されることを特徴とする、ディジタル信
号処理システムにおける実時間2の補数コードの乗算装
置。 - 【請求項8】乗数と被乗数を構成するビットを乗算する
乗算手段と、前の段の部分和をラッチする手段と、現在
の段の部分和を得るため該前の段の部分和と該乗算手段
の出力とを加算する加算器とからなる複数の部分和発生
手段よりなるパイプライン乗算器における実時間2の補
数コードの乗算方法であって、 第1の所定のビット数の乗数及び第2の所定のビット数
の被乗数を受ける段階と、 現在の部分和を得るため、該乗数と、該被乗数を構成す
るビットの最下位ビットから順次に選ばれたビットを乗
算する段階と、 該現在の部分和を補正するよう現在選ばれているビット
の前に選ばれたビットに対して得られた先の部分和の最
上位ビットと、該現在の部分和の最上位ビットを論理和
する段階と、 該乗算する段階と、該論理和する段階を該第2の所定の
ビット数に対応する回数だけ繰り返し、最終的部分和を
得る段階と、 該乗数と、該被乗数の最上位ビットを否定論理積して得
られた値から、該最終的部分和を減算する段階とからな
る、ディジタル信号処理システムにおける実時間2の補
数コードの乗算方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1989-8480 | 1989-06-20 | ||
KR1019890008480A KR920003494B1 (ko) | 1989-06-20 | 1989-06-20 | 디지탈 신호처리 시스템에서의 실시간 2's 콤플리멘트코드 숫자의 승산방법 및 회로 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0331930A JPH0331930A (ja) | 1991-02-12 |
JP2608165B2 true JP2608165B2 (ja) | 1997-05-07 |
Family
ID=19287253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2162540A Expired - Fee Related JP2608165B2 (ja) | 1989-06-20 | 1990-06-20 | ディジタル信号処理システムにおける実時間2の補数コードの乗算方法及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5181184A (ja) |
JP (1) | JP2608165B2 (ja) |
KR (1) | KR920003494B1 (ja) |
DE (1) | DE4019646C2 (ja) |
FR (1) | FR2648585B1 (ja) |
GB (1) | GB2234374B (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0576262B1 (en) * | 1992-06-25 | 2000-08-23 | Canon Kabushiki Kaisha | Apparatus for multiplying integers of many figures |
US5404323A (en) * | 1993-11-09 | 1995-04-04 | United Microelectronics Corp. | Pipelined multiplier for signed multiplication |
US5734601A (en) | 1995-01-30 | 1998-03-31 | Cirrus Logic, Inc. | Booth multiplier with low power, high performance input circuitry |
US6347326B1 (en) * | 1999-03-02 | 2002-02-12 | Philips Electronics North America Corporation | N bit by M bit multiplication of twos complement numbers using N/2+1 X M/2+1 bit multipliers |
US6584483B1 (en) * | 1999-12-30 | 2003-06-24 | Intel Corporation | System and method for efficient hardware implementation of a perfect precision blending function |
US7124237B2 (en) * | 2002-10-03 | 2006-10-17 | Seagate Technology Llc | Virtual machine emulation in the memory space of a programmable processor |
EP1623307B1 (en) * | 2003-05-09 | 2015-07-01 | QUALCOMM Incorporated | Processor reduction unit for accumulation of multiple operands with or without saturation |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
DE102007056104A1 (de) * | 2007-11-15 | 2009-05-20 | Texas Instruments Deutschland Gmbh | Verfahren und Vorrichtung zur Multiplikation von Binäroperanden |
CN112749796B (zh) * | 2019-10-31 | 2024-06-11 | 爱思开海力士有限公司 | 用于神经网络的计算设备 |
US11915125B2 (en) | 2019-10-31 | 2024-02-27 | SK Hynix Inc. | Arithmetic devices for neural network |
US12014184B2 (en) | 2019-10-31 | 2024-06-18 | SK Hynix Inc. | Arithmetic devices for neural network including an input distribution signal generation circuit, an output distribution signal generation circuit, and an output distribution signal compensation circuit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR1149028A (fr) * | 1956-04-16 | 1957-12-19 | Electronique & Automatisme Sa | Multiplieur numérique perfectionné |
US3956622A (en) * | 1974-12-20 | 1976-05-11 | Bell Telephone Laboratories, Incorporated | Two's complement pipeline multiplier |
US4761756A (en) * | 1983-08-24 | 1988-08-02 | Amdahl Corporation | Signed multiplier with three port adder and automatic adjustment for signed operands |
US4736335A (en) * | 1984-11-13 | 1988-04-05 | Zoran Corporation | Multiplier-accumulator circuit using latched sums and carries |
-
1989
- 1989-06-20 KR KR1019890008480A patent/KR920003494B1/ko not_active IP Right Cessation
-
1990
- 1990-06-18 FR FR9007569A patent/FR2648585B1/fr not_active Expired - Fee Related
- 1990-06-18 GB GB9013572A patent/GB2234374B/en not_active Expired - Fee Related
- 1990-06-20 US US07/540,686 patent/US5181184A/en not_active Expired - Lifetime
- 1990-06-20 JP JP2162540A patent/JP2608165B2/ja not_active Expired - Fee Related
- 1990-06-20 DE DE4019646A patent/DE4019646C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR910001535A (ko) | 1991-01-31 |
GB2234374B (en) | 1993-08-18 |
GB9013572D0 (en) | 1990-08-08 |
DE4019646C2 (de) | 1995-01-19 |
US5181184A (en) | 1993-01-19 |
JPH0331930A (ja) | 1991-02-12 |
FR2648585B1 (fr) | 1997-01-31 |
KR920003494B1 (ko) | 1992-05-01 |
FR2648585A1 (fr) | 1990-12-21 |
DE4019646A1 (de) | 1991-01-10 |
GB2234374A (en) | 1991-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2608165B2 (ja) | ディジタル信号処理システムにおける実時間2の補数コードの乗算方法及び装置 | |
US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JP2585649B2 (ja) | 除算回路 | |
JP2840169B2 (ja) | 論理回路の自動設計方法およびその装置 | |
CN115658008A (zh) | 一种资源复用型超越函数运算实现方法 | |
JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
JPH0511980A (ja) | 桁あふれ検出方式とその回路 | |
JPH0793134A (ja) | 乗算器 | |
JP3071607B2 (ja) | 乗算回路 | |
JP2606326B2 (ja) | 乗算器 | |
JP2606339B2 (ja) | 乗算器 | |
JP4042215B2 (ja) | 演算処理装置およびその方法 | |
JP2795253B2 (ja) | 除算器 | |
JP2569976B2 (ja) | ディジタルフィルタ | |
JPH10133856A (ja) | 丸め機能付き乗算方法及び乗算器 | |
JP2901463B2 (ja) | 加算装置 | |
JP2753922B2 (ja) | 固定小数点除算方法 | |
JP2777265B2 (ja) | 高基数開平演算装置 | |
JP3112662B2 (ja) | 乗算器 | |
JP2537876B2 (ja) | 丸め処理回路 | |
JP3074958B2 (ja) | 加算機能付きシリアル乗算器 | |
JPH0553768A (ja) | 除算器 | |
JPH113210A (ja) | 3入力比較器、並びにこれを用いた飽和演算装置およびその演算方法 | |
JP3089377B2 (ja) | 正規化浮動小数点乗算回路 | |
Ibrahim et al. | Area-time efficient two's complement square rooting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080213 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090213 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |