JPH0736152B2 - 演算回路 - Google Patents
演算回路Info
- Publication number
- JPH0736152B2 JPH0736152B2 JP3268605A JP26860591A JPH0736152B2 JP H0736152 B2 JPH0736152 B2 JP H0736152B2 JP 3268605 A JP3268605 A JP 3268605A JP 26860591 A JP26860591 A JP 26860591A JP H0736152 B2 JPH0736152 B2 JP H0736152B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- booth
- zero
- multiplicand
- multiplication
- 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
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
【0001】
【産業上の利用分野】本発明は、符号つきおよび符号な
しのオーバフローフラグを提供する乗算器を備えた演算
回路に関する。
しのオーバフローフラグを提供する乗算器を備えた演算
回路に関する。
【0002】
【従来の技術】整数の乗算は、どこでも行われる算術演
算であるが、これをマイクロコンピュータで実行するに
は、多量の資源を必要とし、また、完了するには多くの
クロックサイクルを要する。従って、市販のマイクロプ
ロセッサでは乗算命令の実現には種々のものが見られ
る。あるマイクロプロセッサは「乗算ステップ」命令の
みをサポートするが、あるハイエンドプロセッサは、乗
算器をハードウェアで実装する。多くのプロセッサはブ
ースアルゴリズムを用いて乗算を行う。
算であるが、これをマイクロコンピュータで実行するに
は、多量の資源を必要とし、また、完了するには多くの
クロックサイクルを要する。従って、市販のマイクロプ
ロセッサでは乗算命令の実現には種々のものが見られ
る。あるマイクロプロセッサは「乗算ステップ」命令の
みをサポートするが、あるハイエンドプロセッサは、乗
算器をハードウェアで実装する。多くのプロセッサはブ
ースアルゴリズムを用いて乗算を行う。
【0003】大部分のマイクロプロセッサでは、乗算を
行うとき、次のごとくオーバフローの可能性が存在す
る。すなわち、2つのnビットのオペランドを乗算する
場合、結果は、一般の場合に2nビットの幅となる。A
LUは、一般的にはnビットの幅なので、現存のALU
を使用して乗算の全2nビットの結果を計算することは
非現実的である。従って、多くのプロセッサは、結果の
中で、下位のnビットのみを計算するので、精度が失わ
れる可能性がある。上位のnビットが零の場合にのみ、
結果は正しく、精度が失われることはない。
行うとき、次のごとくオーバフローの可能性が存在す
る。すなわち、2つのnビットのオペランドを乗算する
場合、結果は、一般の場合に2nビットの幅となる。A
LUは、一般的にはnビットの幅なので、現存のALU
を使用して乗算の全2nビットの結果を計算することは
非現実的である。従って、多くのプロセッサは、結果の
中で、下位のnビットのみを計算するので、精度が失わ
れる可能性がある。上位のnビットが零の場合にのみ、
結果は正しく、精度が失われることはない。
【0004】上位nビットが零でない場合、nビットの
乗算器で完全な精度を得るには、被乗数と乗数をそれぞ
れn/2ビットのオペランドに分解し、4回の乗算を実
施して全2nビットの積を再構成することにより完全な
積を計算しなければならない。従って、下位のnビット
の結果を計算するプロセッサには、精度が失われたか否
かを知らせるために、状態ワードにフラグを設定するよ
うな機構が存在しなければならない。
乗算器で完全な精度を得るには、被乗数と乗数をそれぞ
れn/2ビットのオペランドに分解し、4回の乗算を実
施して全2nビットの積を再構成することにより完全な
積を計算しなければならない。従って、下位のnビット
の結果を計算するプロセッサには、精度が失われたか否
かを知らせるために、状態ワードにフラグを設定するよ
うな機構が存在しなければならない。
【0005】例えば、32ビットの2つの数を乗算する
ことによって得られる積は、64ビットの数である。し
かし、単一チップのマイクロプロセッサの場合に一般的
であるように、この積が計算されて32ビットのみとな
る場合、プログラマは、結果が32個の有効ビットを越
えないように種々のソフトウェア技術により保証しなけ
ればならない。
ことによって得られる積は、64ビットの数である。し
かし、単一チップのマイクロプロセッサの場合に一般的
であるように、この積が計算されて32ビットのみとな
る場合、プログラマは、結果が32個の有効ビットを越
えないように種々のソフトウェア技術により保証しなけ
ればならない。
【0006】さもなければ、結果の上位のビットは、失
われることがある。オーバフローを避ける他の方法は、
倍精度の乗算(例えば、64ビット)を利用することで
ある。しかし、これには、ハードウェア量のかなりの増
加か、または、計算時間の増加が必要である。集積回路
の乗算器の回路に、オーバフローフラグを含めることは
公知である。
われることがある。オーバフローを避ける他の方法は、
倍精度の乗算(例えば、64ビット)を利用することで
ある。しかし、これには、ハードウェア量のかなりの増
加か、または、計算時間の増加が必要である。集積回路
の乗算器の回路に、オーバフローフラグを含めることは
公知である。
【0007】オーバフロー(「V」)フラグが設定され
るのは、オーバフローが符号つきの数の乗算から生ずる
ときである。桁上げ(「C」)フラグが設定されるの
は、符号なしの数の乗算からオーバフローが生じるとき
である。しかし、多くの従来の用途では、「V」フラグ
の制御には、倍精度の乗算が必要とされ、それにより、
単精度の乗算のみを必要とする場合に比較して、かなり
の付加回路が必要とされた。
るのは、オーバフローが符号つきの数の乗算から生ずる
ときである。桁上げ(「C」)フラグが設定されるの
は、符号なしの数の乗算からオーバフローが生じるとき
である。しかし、多くの従来の用途では、「V」フラグ
の制御には、倍精度の乗算が必要とされ、それにより、
単精度の乗算のみを必要とする場合に比較して、かなり
の付加回路が必要とされた。
【0008】2の補数の形で表される2つのオペランド
の乗算は、その結果の上位ワード(nビット)が、その
2つのオペランドを符号つきとして扱うか、符号なしと
して扱うかに依存して異なる(結果の下位のnビット
は、常に同一である)ために、より複雑となる。すなわ
ち、符号つき数の最上位ビットは符号ビットであり、
「0」は正の数を表し、「1」は負の数を表す。
の乗算は、その結果の上位ワード(nビット)が、その
2つのオペランドを符号つきとして扱うか、符号なしと
して扱うかに依存して異なる(結果の下位のnビット
は、常に同一である)ために、より複雑となる。すなわ
ち、符号つき数の最上位ビットは符号ビットであり、
「0」は正の数を表し、「1」は負の数を表す。
【0009】符号なしの数の場合、第1のビットは、単
に最上位の桁である。従って、例えば、ワードサイズが
n=8の場合、0xff(ここで0xは16進表現を表
す)と0xff自身との符号つきの乗算により下位の積
として0x01が生じ、上位の積として0x00が生じ
る。
に最上位の桁である。従って、例えば、ワードサイズが
n=8の場合、0xff(ここで0xは16進表現を表
す)と0xff自身との符号つきの乗算により下位の積
として0x01が生じ、上位の積として0x00が生じ
る。
【0010】一方、0xffとこの0xff自身の符号
なしの乗算により、積の下位には0x01が生じるが、
積の上位には0xfeが生じる。さらに、上位ワードが
0であるが、下位のnビットがその積を正しくは表さな
い場合が存在する。例えば、0x40と0x02の積の
ような2つの正整数の乗算により、結果として、0x8
0が生じる。これは、2の補数表示において負である。
あるマイクロプロセッサは、従って、別々の符号つきと
符号なしの乗算命令をサポートし、各命令により、精度
の損失を示すために同一のフラグ(通常は、「C」フラ
グ)が設定される。
なしの乗算により、積の下位には0x01が生じるが、
積の上位には0xfeが生じる。さらに、上位ワードが
0であるが、下位のnビットがその積を正しくは表さな
い場合が存在する。例えば、0x40と0x02の積の
ような2つの正整数の乗算により、結果として、0x8
0が生じる。これは、2の補数表示において負である。
あるマイクロプロセッサは、従って、別々の符号つきと
符号なしの乗算命令をサポートし、各命令により、精度
の損失を示すために同一のフラグ(通常は、「C」フラ
グ)が設定される。
【0011】乗算を行うためにシフト−加算技術を利用
するある市販の32ビットマイクロプロセッサの場合、
すべての乗算は、符号なしのオペランドに対して行われ
る。符号つきのオペランドに対して乗算を行う場合、そ
のオペランドを、まず符号なしの形に変換し、乗算を実
行し、そして、結果を符号つきの数の形に戻す。乗算中
にオーバフローが生じた場合には単一のフラグVが設定
されるが、このフラグVの制御は、2つの場合で異なる
ことがある。しかし、高速演算の場合、大部分のマイク
ロプロセッサは、拡張ブースアルゴリズムで乗算を達成
する。このアルゴリズムは、算術論理演算装置(AL
U)を繰り返し使用する。
するある市販の32ビットマイクロプロセッサの場合、
すべての乗算は、符号なしのオペランドに対して行われ
る。符号つきのオペランドに対して乗算を行う場合、そ
のオペランドを、まず符号なしの形に変換し、乗算を実
行し、そして、結果を符号つきの数の形に戻す。乗算中
にオーバフローが生じた場合には単一のフラグVが設定
されるが、このフラグVの制御は、2つの場合で異なる
ことがある。しかし、高速演算の場合、大部分のマイク
ロプロセッサは、拡張ブースアルゴリズムで乗算を達成
する。このアルゴリズムは、算術論理演算装置(AL
U)を繰り返し使用する。
【0012】乗算が完了したときにCフラグとVフラグ
の値が利用できるように、ブースアルゴリズムを使用す
るときほぼリアルタイムで、すなわち、乗算の進行中
に、オーバフローを確実に表示するオーバフロー表示器
を構成することは特に困難である。これは、32ビット
の乗算の場合に、これらのフラグが試験される可能性の
ある場合が264通り存在するからである。
の値が利用できるように、ブースアルゴリズムを使用す
るときほぼリアルタイムで、すなわち、乗算の進行中
に、オーバフローを確実に表示するオーバフロー表示器
を構成することは特に困難である。これは、32ビット
の乗算の場合に、これらのフラグが試験される可能性の
ある場合が264通り存在するからである。
【0013】
【発明が解決しようとする課題】本発明の目的は、ブー
ス乗算器で使用されるオーバフロー表示器を実現するマ
イクロプロセッサを提供することである。
ス乗算器で使用されるオーバフロー表示器を実現するマ
イクロプロセッサを提供することである。
【0014】
【課題を解決するための手段】nビットの結果Rを発生
するために、それぞれnビットの被乗数Aと乗数Bを乗
算する手段を有する演算回路を発明した。この演算回路
は、積のビット数がnより大きいときにフラグを設定す
る手段を有する。符号つきおよび符号なしの乗算から生
じるオーバフロー用に別々のフラグを設けてもよい。
するために、それぞれnビットの被乗数Aと乗数Bを乗
算する手段を有する演算回路を発明した。この演算回路
は、積のビット数がnより大きいときにフラグを設定す
る手段を有する。符号つきおよび符号なしの乗算から生
じるオーバフロー用に別々のフラグを設けてもよい。
【0015】
【実施例】以下の詳細な説明では、従来技術のブース乗
算技術を先ず調べることにする。 [拡張ブースアルゴリズム] このブースアルゴリズムは一度に乗算器の複数のビット
を検査することによって、「シフトおよび加算」の乗算
法の速度を速くする。今、nビットの整数AとBを考え
る。
算技術を先ず調べることにする。 [拡張ブースアルゴリズム] このブースアルゴリズムは一度に乗算器の複数のビット
を検査することによって、「シフトおよび加算」の乗算
法の速度を速くする。今、nビットの整数AとBを考え
る。
【数1】
【0016】ここで、下付きのiは、ビットの桁を示
し、aiとbiは、値0または1をとり、nは、ワードサ
イズである。拡張ブースアルゴリズムは、以下のように
Aを書き替えることと等価である。
し、aiとbiは、値0または1をとり、nは、ワードサ
イズである。拡張ブースアルゴリズムは、以下のように
Aを書き替えることと等価である。
【数2】 ここで、
【数3】 (4)fj=−2a2j+1+a2j+a2j-1 である。式(2)と(4)から、AとBの積は次のごと
く書くことができる。
く書くことができる。
【数4】 表1はfjのとる値をまとめたものである。
【0017】表1:ブース因数fjの取る値、および、
ALUに対する等価な信号
ALUに対する等価な信号
【表1】
【0018】(5)において和を計算するために、fj
は、値0、±1、±2をとり得るので、被乗数は、0に
するか、同一のままに保つか、または、左シフトし、そ
して、部分和に加え、または、この部分和から引き算し
れなければならない。fjを被乗数に乗算するほかに、
22jを乗算するためには、毎回4を掛けて増大させなけ
ればならない。
は、値0、±1、±2をとり得るので、被乗数は、0に
するか、同一のままに保つか、または、左シフトし、そ
して、部分和に加え、または、この部分和から引き算し
れなければならない。fjを被乗数に乗算するほかに、
22jを乗算するためには、毎回4を掛けて増大させなけ
ればならない。
【0019】この後者の乗算は、2ビット被乗数を左シ
フトする(<<2)ことにより実現される。なお、
(5)の第1の項は、積の上位ワードのみに寄与するの
で、積の下位のnビットを決定するには、n/2個の項
の和を評価することになる。ブースアルゴリズムは、か
くして、加算の数を半分に減少させることにより乗算を
加速させる。
フトする(<<2)ことにより実現される。なお、
(5)の第1の項は、積の上位ワードのみに寄与するの
で、積の下位のnビットを決定するには、n/2個の項
の和を評価することになる。ブースアルゴリズムは、か
くして、加算の数を半分に減少させることにより乗算を
加速させる。
【0020】左シフト、零の発生および加算/減算は、
代表的なALUの一部であるので、上に概略述べたブー
スアルゴリズムを実施するには、別のハードウェアは必
要ではない。上に述べたブースアルゴリズムは、乗算器
の3ビットの符号化を使用しているが、より多くのビッ
トを符号化し、従って、さらに速く乗算を行うためにブ
ースアルゴリズムを一般化することができる(しかし、
何等かの付加的なハードウェアは、必要となる)。次の
説明では、3ビットの符号化を行う拡張ブースアルゴリ
ズムを仮定する。
代表的なALUの一部であるので、上に概略述べたブー
スアルゴリズムを実施するには、別のハードウェアは必
要ではない。上に述べたブースアルゴリズムは、乗算器
の3ビットの符号化を使用しているが、より多くのビッ
トを符号化し、従って、さらに速く乗算を行うためにブ
ースアルゴリズムを一般化することができる(しかし、
何等かの付加的なハードウェアは、必要となる)。次の
説明では、3ビットの符号化を行う拡張ブースアルゴリ
ズムを仮定する。
【0021】表1は、ブース因数fjを発生するために
現在の技術で知られている、3つの信号fzero、f
minus、およびftwoにfjが如何に分解できるかを示
す。式(6)〜(8)はこれらの信号の論理を与える。
この場合、添字は、ビットの桁を示し、バーは、補信号
を示し、∧の記号は、論理AND演算を示し、そして、
∨は、論理OR演算を示す。
現在の技術で知られている、3つの信号fzero、f
minus、およびftwoにfjが如何に分解できるかを示
す。式(6)〜(8)はこれらの信号の論理を与える。
この場合、添字は、ビットの桁を示し、バーは、補信号
を示し、∧の記号は、論理AND演算を示し、そして、
∨は、論理OR演算を示す。
【数5】
【0022】[ブースアルゴリズムのハードウェアによ
る実現]マイクロプロセッサで実現することができるブ
ースアルゴリズムに要求されるハードウェアのブロック
線図を図1に示す。陰影のない要素は、ブースアルゴリ
ズムを実現するために必要とされるものであり、そし
て、すべて、nビットの幅を有する。この実現には、加
算器108の代表的な構成を使用している。
る実現]マイクロプロセッサで実現することができるブ
ースアルゴリズムに要求されるハードウェアのブロック
線図を図1に示す。陰影のない要素は、ブースアルゴリ
ズムを実現するために必要とされるものであり、そし
て、すべて、nビットの幅を有する。この実現には、加
算器108の代表的な構成を使用している。
【0023】この加算器では、2つのオペランドのop
1およびop2ならびに入力桁上げcinが供給され、そ
して、和aluと出力桁上げcoutが最上位ビット(す
なわち、ビットn−1)から発生される。2:1マルチ
プレクサ100は、被乗数Aを、左オペランドレジスタ
(lop)101に供給する。ALU111における別
のハードウェアにより、零発生手段102、1つ左へシ
フトする左シフト手段103およびlopの1の補数発
生手段104が動作可能となる。
1およびop2ならびに入力桁上げcinが供給され、そ
して、和aluと出力桁上げcoutが最上位ビット(す
なわち、ビットn−1)から発生される。2:1マルチ
プレクサ100は、被乗数Aを、左オペランドレジスタ
(lop)101に供給する。ALU111における別
のハードウェアにより、零発生手段102、1つ左へシ
フトする左シフト手段103およびlopの1の補数発
生手段104が動作可能となる。
【0024】lopの2の補数は、まず1の補数を作
り、それから、入力桁上げcinを1にセットすることに
より得ることができる。ブース因数fjは、0、±1、
±2の値をとるので、上記のハードウェアは、ブース因
数をlopに乗算するのに十分であり、かくして、
(5)における和を計算することができる。手段10
2、103および104の一実施例を、図2に示す。
り、それから、入力桁上げcinを1にセットすることに
より得ることができる。ブース因数fjは、0、±1、
±2の値をとるので、上記のハードウェアは、ブース因
数をlopに乗算するのに十分であり、かくして、
(5)における和を計算することができる。手段10
2、103および104の一実施例を、図2に示す。
【0025】「零発生」手段102は、mux202の
入力1を選択することにより行われ、他の機能について
は、入力0が選択される。「左シフト」手段103は、
mux200の入力1を選択することにより行われる。
「1の補数」手段104は、mux201の入力1を選
択することによって行われ、これにより、反転器203
は、必要な反転を行う。
入力1を選択することにより行われ、他の機能について
は、入力0が選択される。「左シフト」手段103は、
mux200の入力1を選択することにより行われる。
「1の補数」手段104は、mux201の入力1を選
択することによって行われ、これにより、反転器203
は、必要な反転を行う。
【0026】部分積であるALUからの結果は、右オペ
ランドレジスタ106に戻すことができ、あるいはま
た、ブース反復、従って、乗算が完了しているときには
結果レジスタ110に格納することができる。また、l
opをスケーリングするためにlopを2ビットだけ左
シフトし、結果レジスタ110を2ビットだけ右シフト
し、そして、次々のブース因数を計算するために結果レ
ジスタ110に1個の余分のビットストレージbを提供
する設備が存在する。
ランドレジスタ106に戻すことができ、あるいはま
た、ブース反復、従って、乗算が完了しているときには
結果レジスタ110に格納することができる。また、l
opをスケーリングするためにlopを2ビットだけ左
シフトし、結果レジスタ110を2ビットだけ右シフト
し、そして、次々のブース因数を計算するために結果レ
ジスタ110に1個の余分のビットストレージbを提供
する設備が存在する。
【0027】最初に、乗数Bの結果レジスタ110への
格納は、マルチプレクサ105(rop mux)を介
して、右オペランドレジスタ106(rop)にそれを
格納することによって行われる。
格納は、マルチプレクサ105(rop mux)を介
して、右オペランドレジスタ106(rop)にそれを
格納することによって行われる。
【0028】次に、op1を0にし、cinを0にセット
し、そして、マルチプレクサ109は、ALU出力に接
続された入力を選択し、それにより、乗数を結果レジス
タRRに格納する。続いて、op1とop2の両方を0
にし、cinを0にセットし、そして、マルチプレクサ1
05が、alu出力に接続された入力を選択することに
より、(部分積を保持する)ropを0にする。また、
被乗数は、lopに格納され、追加ビットbは0にされ
る。
し、そして、マルチプレクサ109は、ALU出力に接
続された入力を選択し、それにより、乗数を結果レジス
タRRに格納する。続いて、op1とop2の両方を0
にし、cinを0にセットし、そして、マルチプレクサ1
05が、alu出力に接続された入力を選択することに
より、(部分積を保持する)ropを0にする。また、
被乗数は、lopに格納され、追加ビットbは0にされ
る。
【0029】実行に1クロックサイクルを要する1回の
ブース反復は、次の動作よりなる。すなわち、
(a2j+1,a2jおよびa2j-1として扱われる)bビット
とともに結果レジスタ110の最下位の2ビットを検査
することにより、fjはfzero、ftwo、およびfminus
について決定される。lopは、このfjを乗算され、
そして、部分積ropに加えられ、その結果は、rop
に再び格納される。
ブース反復は、次の動作よりなる。すなわち、
(a2j+1,a2jおよびa2j-1として扱われる)bビット
とともに結果レジスタ110の最下位の2ビットを検査
することにより、fjはfzero、ftwo、およびfminus
について決定される。lopは、このfjを乗算され、
そして、部分積ropに加えられ、その結果は、rop
に再び格納される。
【0030】桁上げcoutは、nビット加算器108の
最上位ビットから発生させることができる。また、lo
pは、2つだけ左シフトされてこのlopに戻される。
結果レジスタ110のビット1(すなわち、最下位ビッ
トの次のビット)は、bビットに移動されて、結果レジ
スタ110は、(論理的に)2だけ右シフトされる。
最上位ビットから発生させることができる。また、lo
pは、2つだけ左シフトされてこのlopに戻される。
結果レジスタ110のビット1(すなわち、最下位ビッ
トの次のビット)は、bビットに移動されて、結果レジ
スタ110は、(論理的に)2だけ右シフトされる。
【0031】これにより、第1回目のブース反復(j=
0)と第1のサイクルが完了される。上記の方法は、式
(5)の和における項を次々と加えるために(部分積や
bビットを0にせずに)繰り返される。この反復は、n
/2サイクルの間、すなわち、ブース因数と結果レジス
タ110の両方が0となって、乗算が完了したことを示
すまで続く。明らかに、この場合、乗算に必要とされる
サイクル数は、乗数の非零ビットの数に依存し、結果を
計算する最大サイクル数は、n/2(および初期化の2
サイクル)である。上記のことは、従来技術で知られた
原理に従うブース乗算器の動作を示したものである。
0)と第1のサイクルが完了される。上記の方法は、式
(5)の和における項を次々と加えるために(部分積や
bビットを0にせずに)繰り返される。この反復は、n
/2サイクルの間、すなわち、ブース因数と結果レジス
タ110の両方が0となって、乗算が完了したことを示
すまで続く。明らかに、この場合、乗算に必要とされる
サイクル数は、乗数の非零ビットの数に依存し、結果を
計算する最大サイクル数は、n/2(および初期化の2
サイクル)である。上記のことは、従来技術で知られた
原理に従うブース乗算器の動作を示したものである。
【0032】[桁上げフラグとオーバフローフラグを設
定する付加ハードウェア] 本発明によれば、以下に述べるように、追加のハードウ
ェアが、桁上げフラグとオーバフローフラグを設定する
ために必要とされる。図1において、与えられたレジス
タにおけるビット数は、(最上位ビットであるn−1か
ら最下位ビットであるビット0まで配列された)nビッ
トが示してある例示的なレジスタ112により示された
如くである。
定する付加ハードウェア] 本発明によれば、以下に述べるように、追加のハードウ
ェアが、桁上げフラグとオーバフローフラグを設定する
ために必要とされる。図1において、与えられたレジス
タにおけるビット数は、(最上位ビットであるn−1か
ら最下位ビットであるビット0まで配列された)nビッ
トが示してある例示的なレジスタ112により示された
如くである。
【0033】別のビットnが、本発明の技術を実施する
ために使用される。従って、n+1ビットのレジスタが
必要である。(同様に、もう1個の追加ビットn+1を
必要とする場合、必要とされるレジスタの大きさはn+
2ビットである)。なお、これらの追加ビットは、従来
技術によるブース乗算器を実現するためには必要とされ
ない。
ために使用される。従って、n+1ビットのレジスタが
必要である。(同様に、もう1個の追加ビットn+1を
必要とする場合、必要とされるレジスタの大きさはn+
2ビットである)。なお、これらの追加ビットは、従来
技術によるブース乗算器を実現するためには必要とされ
ない。
【0034】[データ経路への変更] ブース因数乗算部(102,103,104)、rop
106、rop mux105、op2用の零発生部1
07およびALUは、n+1ビット幅に変更されなけれ
ばならない。さらに、lop101とlop mux1
00は、n+2ビット幅に変更されなければならない。
これらの要素は、図1に陰影を付けて示してある。乗算
の開始時に、lopの2つの追加ビットとropの追加
ビットは、0に初期化される。
106、rop mux105、op2用の零発生部1
07およびALUは、n+1ビット幅に変更されなけれ
ばならない。さらに、lop101とlop mux1
00は、n+2ビット幅に変更されなければならない。
これらの要素は、図1に陰影を付けて示してある。乗算
の開始時に、lopの2つの追加ビットとropの追加
ビットは、0に初期化される。
【0035】[制御信号] 制御信号の説明および論理的な表現は、次の通りであ
る。 1.前のサイクルからのfzeroとfminusの値(Fzero
とFminusで示す)がそれぞれ必要である。これらの2
つの値FzeroおよびFminusは、fzeroが前のサイクル
で真の場合には更新されない。すなわち、それらは(最
初の0のときを除き)非零ブース因数の前の値である。
る。 1.前のサイクルからのfzeroとfminusの値(Fzero
とFminusで示す)がそれぞれ必要である。これらの2
つの値FzeroおよびFminusは、fzeroが前のサイクル
で真の場合には更新されない。すなわち、それらは(最
初の0のときを除き)非零ブース因数の前の値である。
【0036】本明細書では、大文字で始まる信号名称
は、前のサイクルからの小文字の対応する信号の値を示
す。信号対fzero、Fzero、およびfminus、F
minusは、マスタスレーブラッチとして構成することが
でき、そして、すべて0に初期化される。
は、前のサイクルからの小文字の対応する信号の値を示
す。信号対fzero、Fzero、およびfminus、F
minusは、マスタスレーブラッチとして構成することが
でき、そして、すべて0に初期化される。
【0037】 2.mlpsign:これは、マルチプレクサの符号で
あって、真は、マルチプレクサが負であることを示す。 3.mlcsign:これは被乗数の符号であって、真
は、被乗数が負であることを示す。
あって、真は、マルチプレクサが負であることを示す。 3.mlcsign:これは被乗数の符号であって、真
は、被乗数が負であることを示す。
【0038】 4.hibitsnz(lopの上位ビットは0ではな
い):この信号は、現在の反復までにlopから(下位
のnビットを越えて)左シフトされた上位ビットが非零
であるということ、すなわち、lop内にはn個より多
くの有効ビットが存在するということを示す。lop
は、一度に2ビット左にシフトされるので、lopの2
つの追加ビットを調べることによりこの信号を設定する
ことが可能である。
い):この信号は、現在の反復までにlopから(下位
のnビットを越えて)左シフトされた上位ビットが非零
であるということ、すなわち、lop内にはn個より多
くの有効ビットが存在するということを示す。lop
は、一度に2ビット左にシフトされるので、lopの2
つの追加ビットを調べることによりこの信号を設定する
ことが可能である。
【0039】
【数6】 ここで、Hibitsnzは、前のサイクルからのhi
bitsnzの値であり、その2つの信号は、0に初期
化可能なマスタスレーブラッチとして実現することがで
きる。このための例示的な回路は、図5に示してある。 5.hiallone(被乗数の上位ビットは、すべて
1である):この信号は、lopから左シフトされたビ
ットがすべて1であるということを示す。
bitsnzの値であり、その2つの信号は、0に初期
化可能なマスタスレーブラッチとして実現することがで
きる。このための例示的な回路は、図5に示してある。 5.hiallone(被乗数の上位ビットは、すべて
1である):この信号は、lopから左シフトされたビ
ットがすべて1であるということを示す。
【数7】
【0040】Hialloneは、前のサイクルからの
hialloneの値である。Hialloneはブー
ス乗算の開始時に真にセットされる。hiallone
およびHialloneは、マスタスレーブラッチとし
て実現することができる。このための例示的な回路は、
図6に示してある。 6.mlczero:この信号は、被乗数が零であると
いうことを示す。lopの有効ビット数がn−2より少
なく、そして、部分積からそれを減算した後に、その結
果の最上位ビットがセットされない場合、lopは0に
されなければならない。
hialloneの値である。Hialloneはブー
ス乗算の開始時に真にセットされる。hiallone
およびHialloneは、マスタスレーブラッチとし
て実現することができる。このための例示的な回路は、
図6に示してある。 6.mlczero:この信号は、被乗数が零であると
いうことを示す。lopの有効ビット数がn−2より少
なく、そして、部分積からそれを減算した後に、その結
果の最上位ビットがセットされない場合、lopは0に
されなければならない。
【数8】
【0041】ここでMlczeroは、前のサイクルか
らのmlczeroの値である。信号mlczeroと
Mlczeroは、マスタスレーブラッチとして実現す
ることができ、そして、図5に示した方法と類似した方
法で0に初期化することができる。かくして、上記の論
理により、lopの零比較論理の必要がなくなる。
らのmlczeroの値である。信号mlczeroと
Mlczeroは、マスタスレーブラッチとして実現す
ることができ、そして、図5に示した方法と類似した方
法で0に初期化することができる。かくして、上記の論
理により、lopの零比較論理の必要がなくなる。
【0042】 7.hiprodff(積の上位ワードが0xff..
である):これは、積の上位ワードのすべてのビットが
1であるということを示す。次式では、最初の項は、ブ
ース因数が負となり、そして、被乗数がn個までの有効
ビットを有し、そして、非零となる最初のときにhip
rodffを設定する。第2項と第3項は、それぞれ、
ブース因数が0の場合、または、ブース因数が負で被乗
数がn個までの有効ビットを有する場合に、hipro
dffを設定したままとする。
である):これは、積の上位ワードのすべてのビットが
1であるということを示す。次式では、最初の項は、ブ
ース因数が負となり、そして、被乗数がn個までの有効
ビットを有し、そして、非零となる最初のときにhip
rodffを設定する。第2項と第3項は、それぞれ、
ブース因数が0の場合、または、ブース因数が負で被乗
数がn個までの有効ビットを有する場合に、hipro
dffを設定したままとする。
【数9】
【0043】信号hiprodffとHiprodff
も、図5に示した回路に類似のマスタスレーブ回路を使
用して発生することができる。 [符号なしのオーバフローフラグ] 以下の3つの場合においては、桁上げフラグCを、セッ
トしなければならない。何故各項が必要とされるかを示
すために、以下の例ではワードサイズをn=8と仮定す
る。これらの場合を実現する論理図を図3に示す。 場合1:ブース因数が正であり、かつ、alunがセッ
トされている場合に、桁上げフラグがセットされる(例
えば、0x03*0x7f)。
も、図5に示した回路に類似のマスタスレーブ回路を使
用して発生することができる。 [符号なしのオーバフローフラグ] 以下の3つの場合においては、桁上げフラグCを、セッ
トしなければならない。何故各項が必要とされるかを示
すために、以下の例ではワードサイズをn=8と仮定す
る。これらの場合を実現する論理図を図3に示す。 場合1:ブース因数が正であり、かつ、alunがセッ
トされている場合に、桁上げフラグがセットされる(例
えば、0x03*0x7f)。
【数10】
【0044】 場合2:次式で、第1項は、前の反復で上位ワードすべ
て1となり、現在の反復では、被乗数がn個より多くの
有効ビットを有する場合である(例えば、0xff*0
x7f)。この項はまた、fj=1であり、そして、1
が結果の上位ワードに加えられ、それにより、このワー
ドが0になる場合(例えば0x04*0x3f)を含
む。第2項は、前の反復から得られた結果の上位ワード
が、すべてが1というわけではなく、そして、lopが
n個より多くの有効ビットを有する場合である(例え
ば、0xff*0x7d)。
て1となり、現在の反復では、被乗数がn個より多くの
有効ビットを有する場合である(例えば、0xff*0
x7f)。この項はまた、fj=1であり、そして、1
が結果の上位ワードに加えられ、それにより、このワー
ドが0になる場合(例えば0x04*0x3f)を含
む。第2項は、前の反復から得られた結果の上位ワード
が、すべてが1というわけではなく、そして、lopが
n個より多くの有効ビットを有する場合である(例え
ば、0xff*0x7d)。
【数11】
【0045】 場合3:この場合は、(5)の第1項に相当する。乗数
が負であり、被乗数が0または1以外の場合である(例
えば、0xff*0x02)。この場合、結果の上位ワ
ードは、非零であり、従って、桁上げフラグをセットし
れなければならない。
が負であり、被乗数が0または1以外の場合である(例
えば、0xff*0x02)。この場合、結果の上位ワ
ードは、非零であり、従って、桁上げフラグをセットし
れなければならない。
【数12】
【0046】[符号つきオーバフローフラグ] 次の場合には、オーバフローフラグVをセットしなけれ
ばならない。これらの場合についてもまた、n=8の例
で示す。これらの場合を実現する論理図を、図4に示
す。 場合1:ブース因数の最初の非零の値が負であり、al
uの(n−1)番目のビットからの桁上げcoutが存在
するが、alun-1はセットされておらず、被乗数が0
ではない場合(例えば、0xc0*0xfc)、オーバ
フローフラグをセットしなければならない。
ばならない。これらの場合についてもまた、n=8の例
で示す。これらの場合を実現する論理図を、図4に示
す。 場合1:ブース因数の最初の非零の値が負であり、al
uの(n−1)番目のビットからの桁上げcoutが存在
するが、alun-1はセットされておらず、被乗数が0
ではない場合(例えば、0xc0*0xfc)、オーバ
フローフラグをセットしなければならない。
【数13】
【0047】 場合2:lopがnビットより大きな幅であり、被乗数
の上位ビットのすべてが1ではない場合(例えば、0x
aa*0xfd)、オーバフローフラグをセットしなけ
ればならない。こうして、被乗数が負であって最終積が
n個までの有効ビットを有する場合には、オーバフロー
フラグの設定を行わないようにする。
の上位ビットのすべてが1ではない場合(例えば、0x
aa*0xfd)、オーバフローフラグをセットしなけ
ればならない。こうして、被乗数が負であって最終積が
n個までの有効ビットを有する場合には、オーバフロー
フラグの設定を行わないようにする。
【数14】
【0048】 場合3:部分積の下位のnビットとスケーリングされた
被乗数で加算/減算がなされても、符号は、前および現
在のブース因数の符号とそれぞれ同一である。従って、
非零のブース因数が2回の連続反復で正であり、そし
て、(n−1)番目のビットからの桁上げcoutが、a
lun-1と同一でない場合(例えば、0xcc*0xf
b、および、0x3f*0xfb)、オーバフローフラ
グをセットしなければならない。
被乗数で加算/減算がなされても、符号は、前および現
在のブース因数の符号とそれぞれ同一である。従って、
非零のブース因数が2回の連続反復で正であり、そし
て、(n−1)番目のビットからの桁上げcoutが、a
lun-1と同一でない場合(例えば、0xcc*0xf
b、および、0x3f*0xfb)、オーバフローフラ
グをセットしなければならない。
【数15】 ここで+を丸で囲む記号は、排他的論理和演算(XO
R)を表す。
R)を表す。
【0049】 場合4:この場合は、前および現在の非零のブース因数
が2回の連続反復動作で負であることを除き、前の場合
と同様である(例えば、0x03*0x5f、および、
0xfd*0x5f)。
が2回の連続反復動作で負であることを除き、前の場合
と同様である(例えば、0x03*0x5f、および、
0xfd*0x5f)。
【数16】
【0050】 場合5:この場合は、ブース因数は±2であり、被乗数
は正でlopの(n−1)番目のビットが常に1となる
場合(例えば、0xfd*0x7f)、または、被乗数
が負でlopの(n−1)番目のビットが常に0となる
場合(例えば、0xdb*0xfa)である。
は正でlopの(n−1)番目のビットが常に1となる
場合(例えば、0xfd*0x7f)、または、被乗数
が負でlopの(n−1)番目のビットが常に0となる
場合(例えば、0xdb*0xfa)である。
【数17】
【0051】 場合6:乗算の終りに、積の符号(すなわち、alu
n-1)が、乗数と被乗数の積から期待される符号と一致
しない場合(例えば、0x80*0xff、および、0
x7f*0xfe)、オーバフローフラグをセットしな
ければならない。
n-1)が、乗数と被乗数の積から期待される符号と一致
しない場合(例えば、0x80*0xff、および、0
x7f*0xfe)、オーバフローフラグをセットしな
ければならない。
【数18】 ここで、
【数19】 prodsign=mlpsignmlcsign であり、「eom」は、乗算終信号である。
【0052】[他の実施例] 上記の実施例は、ブース因数fjを発生するために3ビ
ットのブース再符号化を使用する乗数に関するものであ
った。しかし、本発明は、fjを発生するために4ビッ
トまたは5ビットのブース再符号化を使用する乗算器で
使用してもよい。これらの場合、lopレジスタは、n
+2個より多くのビットを必要とする。
ットのブース再符号化を使用する乗数に関するものであ
った。しかし、本発明は、fjを発生するために4ビッ
トまたは5ビットのブース再符号化を使用する乗算器で
使用してもよい。これらの場合、lopレジスタは、n
+2個より多くのビットを必要とする。
【0053】さらに、ropは、n+1個より多くのビ
ットを必要とする可能性がある。さらに、上記は、符号
なしのオーバフロー操作または符号つきのオーバフロー
操作のいずれかからのオーバフローが検出できるよう
に、CフラグとVフラグの両方が一定の乗算の後に検査
されるということを仮定している。しかし、そうである
必要はない。
ットを必要とする可能性がある。さらに、上記は、符号
なしのオーバフロー操作または符号つきのオーバフロー
操作のいずれかからのオーバフローが検出できるよう
に、CフラグとVフラグの両方が一定の乗算の後に検査
されるということを仮定している。しかし、そうである
必要はない。
【0054】すなわち、別々の命令を符号つきおよび符
号なしの乗算に与えてもよい。その場合には、実際に行
われる命令に関連したフラグのみを調べるだけでよい。
例えば、Cフラグのみを発生する回路を設けて、「符号
なしの乗算」命令を行うときに必要なオーバフロー表示
を提供するようにしてもよい。「符号つき乗算」を行う
場合、オペランドは、符号なしの形に変換し、次に、結
果を符号つきの形に戻し、それにより、Cフラグを使用
してオーバフローを表示させてもよい。
号なしの乗算に与えてもよい。その場合には、実際に行
われる命令に関連したフラグのみを調べるだけでよい。
例えば、Cフラグのみを発生する回路を設けて、「符号
なしの乗算」命令を行うときに必要なオーバフロー表示
を提供するようにしてもよい。「符号つき乗算」を行う
場合、オペランドは、符号なしの形に変換し、次に、結
果を符号つきの形に戻し、それにより、Cフラグを使用
してオーバフローを表示させてもよい。
【0055】一方、符号つきオーバフロー(V)フラグ
のみを使用する場合、ある回路は大きさを減少してもよ
い。すなわち、零発生手段102、左シフト手段10
3、1の補数手段104、2:1mux105、rop
106、零発生手段107、nビット加算器108は、
上に示したn+1ではなくnビットを有するだけでよ
い。
のみを使用する場合、ある回路は大きさを減少してもよ
い。すなわち、零発生手段102、左シフト手段10
3、1の補数手段104、2:1mux105、rop
106、零発生手段107、nビット加算器108は、
上に示したn+1ではなくnビットを有するだけでよ
い。
【0056】本技術から生じるオーバフロー信号は、演
算回路の外部に設けたフラグをセットするために使用し
てもよい。その場合、プログラマは、オーバフローを防
止するためにオペランドを変形し、または、オーバフロ
ーが示されたときに他の手段を講じてもよい。しかし、
他の方法も使用可能である。例えば、本発明の技術によ
り生じたオーバフロー信号は、LISP言語または他の
オブジェクト指向言語における演算動作のオペランドの
大きさおよび(または)精度を変更するために使用して
もよい。
算回路の外部に設けたフラグをセットするために使用し
てもよい。その場合、プログラマは、オーバフローを防
止するためにオペランドを変形し、または、オーバフロ
ーが示されたときに他の手段を講じてもよい。しかし、
他の方法も使用可能である。例えば、本発明の技術によ
り生じたオーバフロー信号は、LISP言語または他の
オブジェクト指向言語における演算動作のオペランドの
大きさおよび(または)精度を変更するために使用して
もよい。
【0057】その場合、オペランドは、乗算が行われる
ときに、最初、最小の大きさにしてもよい。次に、(符
号つきまたは符号なしの)乗算の後、該当するフラグV
またはフラグCをテストし、もしもオーバフローが存在
すれば、オペランドの大きさは適当に増大してもよい。
従って、一定のオーバフローフラグは、ある場合に(レ
ジスタの内容を設定するように)このオーバフローフラ
グが発生されるチップで内部的に使用してもよい。
ときに、最初、最小の大きさにしてもよい。次に、(符
号つきまたは符号なしの)乗算の後、該当するフラグV
またはフラグCをテストし、もしもオーバフローが存在
すれば、オペランドの大きさは適当に増大してもよい。
従って、一定のオーバフローフラグは、ある場合に(レ
ジスタの内容を設定するように)このオーバフローフラ
グが発生されるチップで内部的に使用してもよい。
【0058】上記の実施例は、(単一の加算器を有す
る)単一のALUを使用する反復ブース乗算器について
与えられたが、他の構成も可能である。例えば、多重加
算技術によりブース乗算の実施に必要な反復数が減少さ
れる。さらに、十分な数の加算器を使用して、この加算
器を通るパスを1回のみにすることさえ可能である。本
技術は、乗算回路のすべてのこれらの構成において使用
してもよい。
る)単一のALUを使用する反復ブース乗算器について
与えられたが、他の構成も可能である。例えば、多重加
算技術によりブース乗算の実施に必要な反復数が減少さ
れる。さらに、十分な数の加算器を使用して、この加算
器を通るパスを1回のみにすることさえ可能である。本
技術は、乗算回路のすべてのこれらの構成において使用
してもよい。
【0059】さらに、本発明の特定の構成が、信号であ
る、hitbitsnz、hiallone、mlcz
eroおよびhiprodff(および、それらの前の
値)について与えられたが、回路は、種々の異なる方法
で区切り、それにより、本発明を実施するために使用す
ることができる他の信号を発生させてもよい。
る、hitbitsnz、hiallone、mlcz
eroおよびhiprodff(および、それらの前の
値)について与えられたが、回路は、種々の異なる方法
で区切り、それにより、本発明を実施するために使用す
ることができる他の信号を発生させてもよい。
【0060】以上の説明は、本発明の一実施例に関する
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考え得るが、それらはいずれも本発明の技術
的範囲に包含される。なお特許請求の範囲に記載した参
照符号は、発明の容易なる理解のためで、その技術的範
囲を制限するように解釈されるべきではない。
もので、この技術分野の当業者であれば、本発明の種々
の変形例が考え得るが、それらはいずれも本発明の技術
的範囲に包含される。なお特許請求の範囲に記載した参
照符号は、発明の容易なる理解のためで、その技術的範
囲を制限するように解釈されるべきではない。
【発明の効果】以上述べた如く、本発明によれば、ブー
スアルゴリズムを使用するとき、ほぼリアルタイムでオ
ーバフローを確実に表示するオーバフロー表示器が提供
される。
スアルゴリズムを使用するとき、ほぼリアルタイムでオ
ーバフローを確実に表示するオーバフロー表示器が提供
される。
【図面の簡単な説明】
【図1】本発明の実施例を示す。
【図2】図1のブース乗算器を構成する方法を示す。
【図3】桁上げフラグCを発生する論理図を示す。
【図4】オーバフローフラグVを発生させる論理図を示
す。
す。
【図5】信号hibitsnzと信号Hibitsnz
を発生する論理図を示す。
を発生する論理図を示す。
【図6】信号hialloneおよび信号Hiallo
neを発生する論理図を示す。
neを発生する論理図を示す。
51、52;61、62 マスタスレーブラッチ 100、105、109 2:1マルチプレクサ 101 左オペランドレジスタ 102、107 零発生手段 103 左シフトレジスタ 104 1の補数発生手段 106 右オペランドレジスタ 108 加算器 110 結果レジスタ 111 ALU 112 レジスタ 200、201、202 2:1マルチプレクサ 203 反転器
Claims (3)
- 【請求項1】 n個の有効ビットを有する結果(R)を
発生するために、n個の有効ビットを有する被乗数
(A)と、n個の有効ビットを有する乗数(B)を乗算
する乗算手段と、符号つきの被乗数と符号つきの乗数と
の積のビット数がnより大きいときに、オーバフローフ
ラグ(V)をセットするオーバフローフラグセット手段
とからなる演算回路において、前記乗算手段は、乗数
(B)からブース因数(fj)を発生するブース因数発
生手段(110)と、nビットを有する左オペランドレ
ジスタ(101)とを有し、前記オーバフローフラグセ
ット手段は、前記被乗数(A)の上位ビットがシフトさ
れる少なくとも2個の追加ビットを前記左オペランドレ
ジスタに追加することを特徴とする演算回路。 - 【請求項2】 前記ブース因数発生手段が、 (1)少なくともn+1ビットを有し、ブース因数が0
であることを判定する手段によって発生される信号f
zeroによって制御される零発生手段(102)と、 (2)少なくともn+1ビットを有し、ブース因数が2
であることを判定する手段によって発生される信号f
twoによって制御される左シフト手段(103)と、 (3)少なくともn+1ビットを有し、ブース因数が負
であることを判定する手段によって発生される信号f
minusによって制御される1の補数手段(104)と、 前のサイクルから信号fzeroおよびfminusを記憶して
それらを信号FzeroおよびFminusとして発生する手段
とを有することを特徴とする請求項1の演算回路。 - 【請求項3】 符号なしの被乗数と符号なしの乗数との
積のビット数がnより大きいときに桁上げフラグ(C)
をセットする桁上げフラグセット手段(300〜30
7)をさらに有し、この桁上げフラグセット手段は、 (1)nビットを有する乗数(B)を最初に受け、その
後、少なくともn+1ビットを有する加算器(108)
の出力を受けることにより部分積を記憶する、少なくと
もn+1ビットを有する右オペランドレジスタ(10
6)と、 (2)前記加算器によって前記右オペランドレジスタ
(106)にある部分積に加算される結果を生成するた
めに、被乗数(A)とブース因子を乗算する手段とから
なることを特徴とする請求項1の演算回路。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/585,443 US5138570A (en) | 1990-09-20 | 1990-09-20 | Multiplier signed and unsigned overflow flags |
| US585443 | 1990-09-20 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06119148A JPH06119148A (ja) | 1994-04-28 |
| JPH0736152B2 true JPH0736152B2 (ja) | 1995-04-19 |
Family
ID=24341463
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3268605A Expired - Fee Related JPH0736152B2 (ja) | 1990-09-20 | 1991-09-20 | 演算回路 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5138570A (ja) |
| EP (1) | EP0476911A3 (ja) |
| JP (1) | JPH0736152B2 (ja) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5036482A (en) * | 1989-04-07 | 1991-07-30 | Intel Corporation | Method and circuitry for digital system multiplication |
| US5218564A (en) * | 1991-06-07 | 1993-06-08 | National Semiconductor Corporation | Layout efficient 32-bit shifter/register with 16-bit interface |
| JP3081710B2 (ja) * | 1992-08-18 | 2000-08-28 | 株式会社東芝 | オーバーフロー検出機能付き乗算装置 |
| US5801978A (en) * | 1994-09-22 | 1998-09-01 | National Semiconductor Corporation | Overflow detection for integer-multiply instruction |
| US5682339A (en) * | 1995-05-26 | 1997-10-28 | National Semiconductor Corporation | Method for performing rotate through carry using a 32 bit barrel shifter and counter |
| US5978826A (en) * | 1995-12-01 | 1999-11-02 | Lucent Techologies Inc. | Adder with even/odd 1-bit adder cells |
| US5928317A (en) * | 1996-12-31 | 1999-07-27 | Lucent Technologies Inc. | Fast converter for left-to-right carry-free multiplier |
| US6151616A (en) * | 1999-04-08 | 2000-11-21 | Advanced Micro Devices, Inc. | Method and circuit for detecting overflow in operand multiplication |
| ITMI20051172A1 (it) * | 2005-06-21 | 2006-12-22 | Fernando Bianchetti | "dispositivo chirurgico piezoelettrico e metodo per la preparazione di sito implantare" |
| US11301214B2 (en) * | 2020-06-09 | 2022-04-12 | Verisilicon Microelectronics (Shanghai) Co., Ltd. | Device for performing multiply/accumulate operations |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2175261A5 (ja) * | 1972-03-06 | 1973-10-19 | Inst Francais Du Petrole | |
| US4153938A (en) * | 1977-08-18 | 1979-05-08 | Monolithic Memories Inc. | High speed combinatorial digital multiplier |
| JPS5776635A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Floating multiplying circuit |
| JPS6054070A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 演算装置 |
| US4665500A (en) * | 1984-04-11 | 1987-05-12 | Texas Instruments Incorporated | Multiply and divide unit for a high speed processor |
| US4575812A (en) * | 1984-05-31 | 1986-03-11 | Motorola, Inc. | X×Y Bit array multiplier/accumulator circuit |
| JPH01267728A (ja) * | 1988-04-19 | 1989-10-25 | Ricoh Co Ltd | 乗算器 |
| US4893267A (en) * | 1988-11-01 | 1990-01-09 | Motorola, Inc. | Method and apparatus for a data processor to support multi-mode, multi-precision integer arithmetic |
| US4941119A (en) * | 1988-11-30 | 1990-07-10 | Control Data Corporation | Method and apparatus for predicting an overflow in an integer multiply |
-
1990
- 1990-09-20 US US07/585,443 patent/US5138570A/en not_active Expired - Lifetime
-
1991
- 1991-09-11 EP EP19910308267 patent/EP0476911A3/en not_active Withdrawn
- 1991-09-20 JP JP3268605A patent/JPH0736152B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0476911A3 (en) | 1993-01-27 |
| JPH06119148A (ja) | 1994-04-28 |
| US5138570A (en) | 1992-08-11 |
| EP0476911A2 (en) | 1992-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6099158A (en) | Apparatus and methods for execution of computer instructions | |
| US4597053A (en) | Two-pass multiplier/accumulator circuit | |
| JP2000259394A (ja) | 浮動小数点乗算器 | |
| JP3418460B2 (ja) | 倍精度除算回路および方法 | |
| JPH0612229A (ja) | 乗累算回路 | |
| US5440702A (en) | Data processing system with condition code architecture for executing single instruction range checking and limiting operations | |
| US5309383A (en) | Floating-point division circuit | |
| JPH0736152B2 (ja) | 演算回路 | |
| US4594680A (en) | Apparatus for performing quadratic convergence division in a large data processing system | |
| US5317528A (en) | Random number generator | |
| JPH05250146A (ja) | 整数累乗処理を行なうための回路及び方法 | |
| EP0605885A2 (en) | Method and apparatus for automatically designing logic circuit, and multiplier | |
| US6598065B1 (en) | Method for achieving correctly rounded quotients in algorithms based on fused multiply-accumulate without requiring the intermediate calculation of a correctly rounded reciprocal | |
| JPH04355827A (ja) | 開平演算装置 | |
| US5805489A (en) | Digital microprocessor device having variable-delay division hardware | |
| US5317531A (en) | Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division | |
| US6151616A (en) | Method and circuit for detecting overflow in operand multiplication | |
| US20060184594A1 (en) | Data processing apparatus and method for determining an initial estimate of a result value of a reciprocal operation | |
| Sravya et al. | Hardware posit numeration system primarily based on arithmetic operations | |
| US5646874A (en) | Multiplication/multiplication-accumulation method and computing device | |
| US6035310A (en) | Method and circuit for performing a shift arithmetic right operation | |
| JP3198868B2 (ja) | 乗算処理装置 | |
| JP2591250B2 (ja) | データ処理装置 | |
| Zhang | Capstone Project: CPU Design with Multiplexer | |
| Crespo | Vector Multiply-Accumulate Unit for Transprecision Computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |