JPH0621983B2 - 乗算器 - Google Patents
乗算器Info
- Publication number
- JPH0621983B2 JPH0621983B2 JP58190717A JP19071783A JPH0621983B2 JP H0621983 B2 JPH0621983 B2 JP H0621983B2 JP 58190717 A JP58190717 A JP 58190717A JP 19071783 A JP19071783 A JP 19071783A JP H0621983 B2 JPH0621983 B2 JP H0621983B2
- Authority
- JP
- Japan
- Prior art keywords
- multiplier
- data
- multiplicand
- partial product
- bits
- 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 - Lifetime
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
- G06F7/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
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)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は乗算方式に関し、特にN倍精度の乗算回路に簡
単な回路を追加するのみで、2N倍精度の乗算を直接行
い得るようにした乗算方式に関する。
単な回路を追加するのみで、2N倍精度の乗算を直接行
い得るようにした乗算方式に関する。
従来の高速乗算器の一構成例を第1図に示す。同図にお
いて、乗数レジスタ2にセットされた乗数が4分割さ
れ、順次下位から乗数選択回路3により選択され、被乗
数レジスタ1にセットされた被乗数の倍数を倍数発生回
路4により発生する。発生された倍数はキャリ・セイブ
・アダー・トウリー5に入力される。キャリ・セイブ・
アダー・トウリー5は図示するように複数個のキャリ・
セイブ・アダー(キャリ保留加算器)6〜13をトウリ
ー状に配置して構成のものであり、複数個の加算の対象
となる数を最終的に2個に絞る。キャリ・セイブ・アダ
ー自体の動作は第2図の加算例に示すように3個の入力
から、キャリを伝播せずに和とは別にハーフ・キャリの
形で保持する。このとき、和も通常の意味の和とは異な
るのでハーフ・サムと呼ぶことが多い。加算においては
キャリの伝播に一番時間がかゝるので、高速乗算器では
第1図に示すようにキャリ・セイブ・アダー・トウリー
5により加算すべき数を2個まで絞った後、キャリ・プ
ロパゲイト・アダー(キャリ伝播加算器)14によりキ
ャリ伝播加算を行い、一つにまとめる。下位乗数による
ハープ・キャリ、ハーフ・サムの形をした部分積は上位
の部分積に加えるため乗数ビット分だけ右シフトされ、
再度キャリ・セイブ・アダー・トウリー5に入力され
る。このとき、右シフトにより、キャリ・セイブ・アダ
ー・トウリー5よりこぼれる部分がスピル・アダー(こ
ぼれ加算器)15により和をとられ、乗算結果レジスタ
16の下位の所定の位置にセットされる。
いて、乗数レジスタ2にセットされた乗数が4分割さ
れ、順次下位から乗数選択回路3により選択され、被乗
数レジスタ1にセットされた被乗数の倍数を倍数発生回
路4により発生する。発生された倍数はキャリ・セイブ
・アダー・トウリー5に入力される。キャリ・セイブ・
アダー・トウリー5は図示するように複数個のキャリ・
セイブ・アダー(キャリ保留加算器)6〜13をトウリ
ー状に配置して構成のものであり、複数個の加算の対象
となる数を最終的に2個に絞る。キャリ・セイブ・アダ
ー自体の動作は第2図の加算例に示すように3個の入力
から、キャリを伝播せずに和とは別にハーフ・キャリの
形で保持する。このとき、和も通常の意味の和とは異な
るのでハーフ・サムと呼ぶことが多い。加算においては
キャリの伝播に一番時間がかゝるので、高速乗算器では
第1図に示すようにキャリ・セイブ・アダー・トウリー
5により加算すべき数を2個まで絞った後、キャリ・プ
ロパゲイト・アダー(キャリ伝播加算器)14によりキ
ャリ伝播加算を行い、一つにまとめる。下位乗数による
ハープ・キャリ、ハーフ・サムの形をした部分積は上位
の部分積に加えるため乗数ビット分だけ右シフトされ、
再度キャリ・セイブ・アダー・トウリー5に入力され
る。このとき、右シフトにより、キャリ・セイブ・アダ
ー・トウリー5よりこぼれる部分がスピル・アダー(こ
ぼれ加算器)15により和をとられ、乗算結果レジスタ
16の下位の所定の位置にセットされる。
第4図は従来の4倍精度乗算回路の構成例を示す図で、
4倍精度の乗算は、被乗数レジスタ21および乗数レジ
スタ22にセットされた被乗数および乗数を、第3図に
示すように被乗数の上位α(2倍精度),下位β(2倍
精度)、乗数の上位γ(2倍精度),下位δ(2倍精
度)に分け、β×δ,α×δ,β×γ,α×γの順に乗
算器23により乗算を行い、その結果を乗算結果レジス
タ24にセットする。この乗算結果を4倍精度演算のた
め附加的な回路を持った2倍精度の加算器25により以
下の順序で加算し最終結果を出す。
4倍精度の乗算は、被乗数レジスタ21および乗数レジ
スタ22にセットされた被乗数および乗数を、第3図に
示すように被乗数の上位α(2倍精度),下位β(2倍
精度)、乗数の上位γ(2倍精度),下位δ(2倍精
度)に分け、β×δ,α×δ,β×γ,α×γの順に乗
算器23により乗算を行い、その結果を乗算結果レジス
タ24にセットする。この乗算結果を4倍精度演算のた
め附加的な回路を持った2倍精度の加算器25により以
下の順序で加算し最終結果を出す。
(1) β×δH+α×δL…上位へのキャリ保持。
(2) (前記(1)の加算結果)+β×γL…上位へのキャリ
保持。
保持。
(3) α×δH+β×γH+(前記(1)の加算からのキャ
リ)+(前記(2)の加算からのキャリ)…上位へのキャリ保
持。
リ)+(前記(2)の加算からのキャリ)…上位へのキャリ保
持。
(4) (前記(3)の加算結果)+α×δL…上位へのキャリ
保持。
保持。
(5) α×γH+(前記(3)の加算からのキャリ)+(前記
(4)の加算からのキャリ)。
(4)の加算からのキャリ)。
なお、こゝでは最終的な積の正規化については省略して
いるが、さらに正規化が必要な場合がある。また、α×
βH,α×δLなどの末尾のH,Lは乗算器23での4
倍精度の乗算結果の上位、下位をそれぞれ示している。
第3図には、上記4個の積の桁合せを図式的に示す。
いるが、さらに正規化が必要な場合がある。また、α×
βH,α×δLなどの末尾のH,Lは乗算器23での4
倍精度の乗算結果の上位、下位をそれぞれ示している。
第3図には、上記4個の積の桁合せを図式的に示す。
以上、従来は上記のような手順で4倍精度の乗算を行っ
ていたので、実行時間が2倍精度の乗算の実行時間の4
倍よりも相当長くなるという欠点があった。
ていたので、実行時間が2倍精度の乗算の実行時間の4
倍よりも相当長くなるという欠点があった。
本発明は上述の点にかんがみてなされたもので、N倍精
度の乗算回路を基本構成とし、簡単な手段を追加するこ
とにより2N倍精度の乗算を直接実行し、2N倍精度の
乗算の実行時間をN倍精度の乗算の実行時間の4倍より
も短かくする乗算方式を提供することを目的とする。
度の乗算回路を基本構成とし、簡単な手段を追加するこ
とにより2N倍精度の乗算を直接実行し、2N倍精度の
乗算の実行時間をN倍精度の乗算の実行時間の4倍より
も短かくする乗算方式を提供することを目的とする。
本発明の要点は、nビットデータとm(nはmの整数
倍、但しm≠n。)ビットデータが入力される倍数発生
回路を有するN倍精度データの乗算回路を用いる2N倍
精度データの乗算器において、2N倍精度の被乗数に下
位ビットとしてゼロを付加して2nビットに構成したデ
ータを2分割して上位データと下位データとして一方を
選択する被乗数選択手段と、2N倍精度の乗数に下位ビ
ットとしてゼロを付加して2nビットに構成したデータ
をmビット毎に分割して任意の桁の乗数分割部分を選択
する乗数選択手段とを有し、前記被乗数選択手段と前記
乗数選択手段は、前記被乗数選択手段が選択するデータ
と、前記乗数選択手段が選択する前記乗数分割部分との
部分積の桁位置が下位から上位となる順序で、前記それ
ぞれの選択を行ない、前記倍数発生回路は、前記被乗数
選択手段で選択されたデータと前記乗数選択手段で選択
された乗数分割部分とを乗じて倍数を得、更に、前記得
られた倍数と下位の部分積とを加算して上位の部分積を
出力するキャリー・セイブ・アダー・トウリーと、前記
上位の部分積、又は前記mビットだけ右シフトした前記
上位の部分積を、前記下位の部分積とみなして前記キャ
リー・セイブ・アダー・トリーにフィードバックする桁
合わせ手段と、前記選択された乗数分割部分の桁位置と
前記被乗数選択手段で選択されたデータの上位/下位位
置との対応関係により前記桁合わせ手段のシフト実行の
有無を制御する制御手段と、前記上位の部分積が入力さ
れるキャリ・プロパゲイト・アダーとスピルアダーとを
有する点にある。
倍、但しm≠n。)ビットデータが入力される倍数発生
回路を有するN倍精度データの乗算回路を用いる2N倍
精度データの乗算器において、2N倍精度の被乗数に下
位ビットとしてゼロを付加して2nビットに構成したデ
ータを2分割して上位データと下位データとして一方を
選択する被乗数選択手段と、2N倍精度の乗数に下位ビ
ットとしてゼロを付加して2nビットに構成したデータ
をmビット毎に分割して任意の桁の乗数分割部分を選択
する乗数選択手段とを有し、前記被乗数選択手段と前記
乗数選択手段は、前記被乗数選択手段が選択するデータ
と、前記乗数選択手段が選択する前記乗数分割部分との
部分積の桁位置が下位から上位となる順序で、前記それ
ぞれの選択を行ない、前記倍数発生回路は、前記被乗数
選択手段で選択されたデータと前記乗数選択手段で選択
された乗数分割部分とを乗じて倍数を得、更に、前記得
られた倍数と下位の部分積とを加算して上位の部分積を
出力するキャリー・セイブ・アダー・トウリーと、前記
上位の部分積、又は前記mビットだけ右シフトした前記
上位の部分積を、前記下位の部分積とみなして前記キャ
リー・セイブ・アダー・トリーにフィードバックする桁
合わせ手段と、前記選択された乗数分割部分の桁位置と
前記被乗数選択手段で選択されたデータの上位/下位位
置との対応関係により前記桁合わせ手段のシフト実行の
有無を制御する制御手段と、前記上位の部分積が入力さ
れるキャリ・プロパゲイト・アダーとスピルアダーとを
有する点にある。
以下、本発明の一実施例を図面に基づいて説明する。
第5図は本発明の一実施例をなす乗算回路の構成を示す
図であり、被乗数レジスタ31,32、乗数レジスタ3
3,34に、被乗数,乗数の上位56ビット、下位56
ビットがそれぞれセットされる。同図の乗算回路では1
度の乗算に使用される乗数は16ビットであり、被乗数
選択回路35により、被乗数として16ビットの4倍の
64ビットが倍数発生回路37へ送出される。すなわ
ち、データA1として上位データ56ビットに下位デー
タの上位8ビットが併合され、また、データA2として
下位データの残りの48ビットに16個のゼロが併合さ
れて選択される。一方、乗数選択回路6では乗数の上位
データ33,下位データ34に16個のゼロを附加して
128ビットとしたとき、16ビットずつ、B1,B
2,……B8の8個のデータの中から1個を倍数発生回
路37へ送出する。倍数発生回路37は、8個の倍数発
生器よりなり、各倍数発生器では、第8図に示すよう
に、乗数に関して、補正1ビット+データ2ビットの3
ビットを1組として各ビットパターンに対応して倍数を
発生させており、ある倍数発生器での乗数のデータ2ビ
ットのうち下位ビットは隣合う下位の倍数発生器での乗
数の補正ビットと重複して使用している。このため乗数
データBiの16ビットを倍数発生回路37に送出する
とき同時にデータBi−1の最下位ビット倍数発生回路
37に送出している。データB8がゼロであるにもかか
わらず倍数発生回路37に送出する理由は、同時に送出
される乗数の最下位データであるB7の最下位ビットに
よる補正を行うためである。また、データB1に対する
補正ビットは0とする。第8図を簡単に説明すると、被
乗数の倍数を加算を伴うことなく被乗数のシフトおよび
反転だけで発生させるため、例えばある倍数発生器での
乗数が「011」の場合、3倍数ではなく4倍数を発生
させ、隣合う下位の倍数発生器で乗数が「100」の場
合、負の4倍数(元の倍数発生器では負の1倍数に相当
する)を発生することにより実質的に3倍数とするもの
である。第8図において、2の補数化は、被乗数の反転
だけでは1の補数にしかならないので2の補数に補正す
る必要があることを示している。また、同図で乗数が
「111」の場合は、被乗数としてすべて1とし、2の
補正化によってゼロとする。
図であり、被乗数レジスタ31,32、乗数レジスタ3
3,34に、被乗数,乗数の上位56ビット、下位56
ビットがそれぞれセットされる。同図の乗算回路では1
度の乗算に使用される乗数は16ビットであり、被乗数
選択回路35により、被乗数として16ビットの4倍の
64ビットが倍数発生回路37へ送出される。すなわ
ち、データA1として上位データ56ビットに下位デー
タの上位8ビットが併合され、また、データA2として
下位データの残りの48ビットに16個のゼロが併合さ
れて選択される。一方、乗数選択回路6では乗数の上位
データ33,下位データ34に16個のゼロを附加して
128ビットとしたとき、16ビットずつ、B1,B
2,……B8の8個のデータの中から1個を倍数発生回
路37へ送出する。倍数発生回路37は、8個の倍数発
生器よりなり、各倍数発生器では、第8図に示すよう
に、乗数に関して、補正1ビット+データ2ビットの3
ビットを1組として各ビットパターンに対応して倍数を
発生させており、ある倍数発生器での乗数のデータ2ビ
ットのうち下位ビットは隣合う下位の倍数発生器での乗
数の補正ビットと重複して使用している。このため乗数
データBiの16ビットを倍数発生回路37に送出する
とき同時にデータBi−1の最下位ビット倍数発生回路
37に送出している。データB8がゼロであるにもかか
わらず倍数発生回路37に送出する理由は、同時に送出
される乗数の最下位データであるB7の最下位ビットに
よる補正を行うためである。また、データB1に対する
補正ビットは0とする。第8図を簡単に説明すると、被
乗数の倍数を加算を伴うことなく被乗数のシフトおよび
反転だけで発生させるため、例えばある倍数発生器での
乗数が「011」の場合、3倍数ではなく4倍数を発生
させ、隣合う下位の倍数発生器で乗数が「100」の場
合、負の4倍数(元の倍数発生器では負の1倍数に相当
する)を発生することにより実質的に3倍数とするもの
である。第8図において、2の補数化は、被乗数の反転
だけでは1の補数にしかならないので2の補数に補正す
る必要があることを示している。また、同図で乗数が
「111」の場合は、被乗数としてすべて1とし、2の
補正化によってゼロとする。
先ず、第5図の乗算回路が2倍精度乗算器として使用さ
れる場合の動作概要を第6図の乗算順序を参照しながら
説明する。
れる場合の動作概要を第6図の乗算順序を参照しながら
説明する。
(1) 倍数発生回路37の8本の各々の出力線には、被乗
数56ビット×乗数3ビットの倍数がそれぞれ出力さ
れ、キャリ・セイブ・アダー・トウリー38に入力さ
れ、データA1とデータB4の部分積(A1×B4)5
1がハーフ・キャリ、ハーフ・サムの形で求められる。
数56ビット×乗数3ビットの倍数がそれぞれ出力さ
れ、キャリ・セイブ・アダー・トウリー38に入力さ
れ、データA1とデータB4の部分積(A1×B4)5
1がハーフ・キャリ、ハーフ・サムの形で求められる。
(2) 上記(1)と同様に倍数発生回路37とキャリ・セイ
ブ・アダー・トウリー38によりデータA1とデータB
3との部分積(A1×B3)52が求められる。上記
(1)と異なるのは、(1)での部分積A1×B4が部分積桁
合せ用選択回路39によって右に16ビットシフトされ
キャリ・セイブ・アダー・トウリー38に入力されてA
1×B3との和がとられ、右にシフトすることにより、
こぼれたA1×B4の下位16ビットの部分は、スピル
・アダー41によって和がとられる。
ブ・アダー・トウリー38によりデータA1とデータB
3との部分積(A1×B3)52が求められる。上記
(1)と異なるのは、(1)での部分積A1×B4が部分積桁
合せ用選択回路39によって右に16ビットシフトされ
キャリ・セイブ・アダー・トウリー38に入力されてA
1×B3との和がとられ、右にシフトすることにより、
こぼれたA1×B4の下位16ビットの部分は、スピル
・アダー41によって和がとられる。
(3) 上記(2)と同様A1×B2の部分積53が求められ
る。
る。
(4) 上記(2)と同様A1×B1の部分積54が求められ
る。
る。
(5) ハーフ・キャリ,ハーフ・サムの形で求められてい
る部分積51〜54をキャリ・プロパゲイト・アダー4
0により1つにまとめ、乗算結果が得られる。
る部分積51〜54をキャリ・プロパゲイト・アダー4
0により1つにまとめ、乗算結果が得られる。
次に第5図の乗算回路が4倍精度乗算器として使用され
る場合の動作を説明する。16ビット乗算は、第7図に
示す順序で実行される。このとき、2倍精度乗算と異な
る点は次の4通りの場合である。すなわち、 (i) 部分積61ないし部分積65と部分積66の和、 (ii) 部分積61ないし部分積67と部分積68の和、 (iii) 部分積61ないし部分積69と部分積70の
和、 (iv) 部分積61ないし部分積71と部分積72の和、 の場合、2倍精度乗算と異なる。この場合、部分積を右
に16ビットシフトすることなくそのまゝ、キャリ・セ
イブ・アダー・トウリー38に入力する。また、このと
きは、スピル・アダー41も使用しない。
る場合の動作を説明する。16ビット乗算は、第7図に
示す順序で実行される。このとき、2倍精度乗算と異な
る点は次の4通りの場合である。すなわち、 (i) 部分積61ないし部分積65と部分積66の和、 (ii) 部分積61ないし部分積67と部分積68の和、 (iii) 部分積61ないし部分積69と部分積70の
和、 (iv) 部分積61ないし部分積71と部分積72の和、 の場合、2倍精度乗算と異なる。この場合、部分積を右
に16ビットシフトすることなくそのまゝ、キャリ・セ
イブ・アダー・トウリー38に入力する。また、このと
きは、スピル・アダー41も使用しない。
こゝで、部分積を右に16ビットするか、そのまゝとす
るかを選択するのが部分積桁合せ用選択回路39であ
る。
るかを選択するのが部分積桁合せ用選択回路39であ
る。
4倍精度乗算では16ビット乗算を16回実行するが、
下位の部分については上位へのキャリだけを拾い、結果
として結果レジスタ群42〜46の116ビットだけ求
める。結果レジスタ46の4ビットは、4ビットを1デ
ィジットとしたとき、結果の最上位がゼロの場合、カー
ド・ディシットとして使用する。結果レジスタ群42〜
46のセットするデータを第7図に示す演算手段に従っ
て説明すると以下の通りとなる。
下位の部分については上位へのキャリだけを拾い、結果
として結果レジスタ群42〜46の116ビットだけ求
める。結果レジスタ46の4ビットは、4ビットを1デ
ィジットとしたとき、結果の最上位がゼロの場合、カー
ド・ディシットとして使用する。結果レジスタ群42〜
46のセットするデータを第7図に示す演算手段に従っ
て説明すると以下の通りとなる。
結果レジスタ46には、部分積61ないし部分積73を
右に16ビットシフトするとき、ビット中の上位4ビッ
トをセットする。
右に16ビットシフトするとき、ビット中の上位4ビッ
トをセットする。
結果レジスタ45には、部分積61ないし部分積74を
右に16ビットシフトするとき、スピル・アダー41に
よって求まる和16ビットをセットする。
右に16ビットシフトするとき、スピル・アダー41に
よって求まる和16ビットをセットする。
結果レジスタ44には、部分積61ないし部分積75を
右に16ビットシフトするとき、スピル・アダー41に
よって求まる和16ビットをセットする。
右に16ビットシフトするとき、スピル・アダー41に
よって求まる和16ビットをセットする。
結果レジスタ43には、部分積61ないし部分積76の
うち上位から65ないし80ビットに相当し、スピル・
アダー41によって求まる和16ビットがセットされ
る。
うち上位から65ないし80ビットに相当し、スピル・
アダー41によって求まる和16ビットがセットされ
る。
結果レジスタ42には、部分積61ないし部分積76の
うち上位から1ないし64ビットに相当し、キャリ・プ
ロパゲイト・アダー40によって求まる和64ビットが
セットされる。
うち上位から1ないし64ビットに相当し、キャリ・プ
ロパゲイト・アダー40によって求まる和64ビットが
セットされる。
以上、上記実施例によれば、乗算回路の主要部分である
倍数発生回路37、キャリ・セイブ・アダー・トウリー
38の規模を2倍にすることなく、2N倍精度乗算回路
をN倍精度乗算回路を基本的に構成できるので、以下の
(1)〜(3)に示すような効果が得られる。
倍数発生回路37、キャリ・セイブ・アダー・トウリー
38の規模を2倍にすることなく、2N倍精度乗算回路
をN倍精度乗算回路を基本的に構成できるので、以下の
(1)〜(3)に示すような効果が得られる。
(1) 従来のように2N倍精度乗算をN倍精度の4回の乗
算に分割しなくて済み、実行時間の短縮が図れる。
算に分割しなくて済み、実行時間の短縮が図れる。
(2) 従来は、2N倍精度乗算をN倍精度の4回の乗算に
分割し、この4回の乗算の積をN倍精度加算器で1つに
まとめる場合、2N倍精度を特別に意識した回路をN倍
精度加算器に持たせていたが、その必要がなくなり、N
倍精度加算器の構成が簡略化できる。
分割し、この4回の乗算の積をN倍精度加算器で1つに
まとめる場合、2N倍精度を特別に意識した回路をN倍
精度加算器に持たせていたが、その必要がなくなり、N
倍精度加算器の構成が簡略化できる。
(3) 従来のように、2N倍精度をN倍精度の4回の乗算
に分割し、この4回の乗算の積をN倍精度加算器に送る
場合、最上位ディジットがゼロであっても正規化するこ
となく送るという特別な結果の選択をしなくて済み、乗
算の結果の選択回路が簡略化できる。
に分割し、この4回の乗算の積をN倍精度加算器に送る
場合、最上位ディジットがゼロであっても正規化するこ
となく送るという特別な結果の選択をしなくて済み、乗
算の結果の選択回路が簡略化できる。
以上説明したように本発明に係る乗算器は、被乗数から
選択されるデータと乗数から選択される乗数分割部分
は、これらの部分積の桁位置が下位の方からとなるよう
に順次選択される。そのため、被乗数から選択されたデ
ータと乗数から選択された乗数分割部分との部分積と、
右シフト又はシフトされないところの前回に演算された
キャリー・セイブ・アダー・トウリーの出力との和を、
即ち、被乗数から選択されたデータと乗数から選択され
た乗数分割部分との部分積の累積を、キャリー・セイブ
・アダー・トウリーにより順次求めることができる。従
って、被乗数の上位データおよび下位データと、乗数の
全ての乗数分割部分に対するキャリー・セイブ・アダー
・トウリーでの演算が終了した時点でのキャリ・プロパ
ゲイト・アダーとスピルアダーの出力が、そのまま2N
倍精度の被乗数と乗数の乗算結果となる。つまり、N倍
精度の乗算結果を得ることなく直接2N倍精度の乗算結
果を得ることができる。この結果、本願発明では、2N
倍精度の乗算をN倍精度の4度の乗算に分けて行なう方
法と比べて、分割されて演算された結果を加算するため
の加算器を必要としないため、構成を簡略化でき、ま
た、加算を必要としない分、実行時間を短縮できるとい
う顕著な効果を得ることができる。
選択されるデータと乗数から選択される乗数分割部分
は、これらの部分積の桁位置が下位の方からとなるよう
に順次選択される。そのため、被乗数から選択されたデ
ータと乗数から選択された乗数分割部分との部分積と、
右シフト又はシフトされないところの前回に演算された
キャリー・セイブ・アダー・トウリーの出力との和を、
即ち、被乗数から選択されたデータと乗数から選択され
た乗数分割部分との部分積の累積を、キャリー・セイブ
・アダー・トウリーにより順次求めることができる。従
って、被乗数の上位データおよび下位データと、乗数の
全ての乗数分割部分に対するキャリー・セイブ・アダー
・トウリーでの演算が終了した時点でのキャリ・プロパ
ゲイト・アダーとスピルアダーの出力が、そのまま2N
倍精度の被乗数と乗数の乗算結果となる。つまり、N倍
精度の乗算結果を得ることなく直接2N倍精度の乗算結
果を得ることができる。この結果、本願発明では、2N
倍精度の乗算をN倍精度の4度の乗算に分けて行なう方
法と比べて、分割されて演算された結果を加算するため
の加算器を必要としないため、構成を簡略化でき、ま
た、加算を必要としない分、実行時間を短縮できるとい
う顕著な効果を得ることができる。
第1図は従来の高速乗算器の構成例を示す図、第2図は
キャリ・セイブ加算例を示す図、第3図は乗算の順序と
桁合せを示す図、第4図は従来の4倍精度乗算回路の構
成例を示す図、第5図は本発明に係るN倍精度乗算回路
を基本とした2N倍精度乗算回路の構成を示す図、第6
図、第7図は第5図の乗算回路を用いて、N倍精度の乗
算、2N倍精度乗算の乗算の順序と桁合せをそれぞれ示
す図、第8図は倍数発生器で発生する倍数を示す図であ
る。 1……被乗数レジスタ、2……乗数レジスタ、3……乗
数選択回路、4……倍数発生回路、5……キャリ・セイ
ブ・アダー・トウリー、6〜13……キャリ・セイブ・
アダー、14……キャリ・プロパゲイト・アダー、15
……スピル・アダー、16……乗算結果レジスタ、21
……被乗数レジスタ、22……乗数レジスタ、23……
乗算器、24……乗算結果レジスタ、25……加算器、
26……加算結果レジスタ、31,32……被乗数レジ
スタ、33,34……乗数レジスタ、35……被乗数選
択回路、36……乗数選択回路、37……倍数発生回
路、38……キャリ・セイブ・アダー・トウリー、40
……キャリ・プロパゲイト・アダー、41……スピル・
アダー、42〜46……結果レジスタ群。
キャリ・セイブ加算例を示す図、第3図は乗算の順序と
桁合せを示す図、第4図は従来の4倍精度乗算回路の構
成例を示す図、第5図は本発明に係るN倍精度乗算回路
を基本とした2N倍精度乗算回路の構成を示す図、第6
図、第7図は第5図の乗算回路を用いて、N倍精度の乗
算、2N倍精度乗算の乗算の順序と桁合せをそれぞれ示
す図、第8図は倍数発生器で発生する倍数を示す図であ
る。 1……被乗数レジスタ、2……乗数レジスタ、3……乗
数選択回路、4……倍数発生回路、5……キャリ・セイ
ブ・アダー・トウリー、6〜13……キャリ・セイブ・
アダー、14……キャリ・プロパゲイト・アダー、15
……スピル・アダー、16……乗算結果レジスタ、21
……被乗数レジスタ、22……乗数レジスタ、23……
乗算器、24……乗算結果レジスタ、25……加算器、
26……加算結果レジスタ、31,32……被乗数レジ
スタ、33,34……乗数レジスタ、35……被乗数選
択回路、36……乗数選択回路、37……倍数発生回
路、38……キャリ・セイブ・アダー・トウリー、40
……キャリ・プロパゲイト・アダー、41……スピル・
アダー、42〜46……結果レジスタ群。
フロントページの続き (56)参考文献 特開 昭57−59245(JP,A) 特開 昭50−115740(JP,A) 特開 昭58−137045(JP,A) 特開 昭53−135534(JP,A)
Claims (1)
- 【請求項1】nビットデータとm(nはmの整数倍、但
しm≠n。)ビットデータが入力される倍数発生回路を
有するN倍精度データの乗算回路を用いる2N倍精度デ
ータの乗算器において、 2N倍精度の被乗数に下位ビットとしてゼロを付加して
2nビットに構成したデータを2分割して上位データと
下位データとして一方を選択する被乗数選択手段と、 2N倍精度の乗数に下位ビットとしてゼロを付加して2
nビットに構成したデータをmビット毎に分割して任意
の桁の乗数分割部分を選択する乗数選択手段とを有し、 前記被乗数選択手段と前記乗数選択手段は、前記被乗数
選択手段が選択するデータと、前記乗数選択手段が選択
する前記乗数分割部分との部分積の桁位置が下位から上
位となる順序で前記それぞれの選択を行ない、 前記倍数発生回路は、前記被乗数選択手段で選択された
データと前記乗数選択手段で選択された乗数分割部分と
を乗じて倍数を得、 更に、前記得られた倍数と下位の部分積とを加算して上
位の部分積を出力するキャリー・セイブ・アダー・トウ
リーと、 前記上位の部分積、又は前記mビットだけ右へシフトし
た前記上位の部分積を、前記下位の部分積とみなして前
記キャリー・セイブ・アダー・トリーにフィードバック
する桁合わせ手段と、 前記選択された乗数分割部分の桁位置と前記被乗数選択
手段で選択されたデータの上位/下位位置との対応関係
により前記桁合わせ手段のシフト実行の有無を制御する
制御手段と、 前記上位の部分積が入力されるキャリ・プロパゲイト・
アダーとスピルアダーとを有することを特徴とする乗算
器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58190717A JPH0621983B2 (ja) | 1983-10-14 | 1983-10-14 | 乗算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP58190717A JPH0621983B2 (ja) | 1983-10-14 | 1983-10-14 | 乗算器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6083140A JPS6083140A (ja) | 1985-05-11 |
| JPH0621983B2 true JPH0621983B2 (ja) | 1994-03-23 |
Family
ID=16262648
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP58190717A Expired - Lifetime JPH0621983B2 (ja) | 1983-10-14 | 1983-10-14 | 乗算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0621983B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH061438B2 (ja) * | 1984-04-26 | 1994-01-05 | 日本電気株式会社 | 倍精度乗算器 |
| JPH03185516A (ja) * | 1989-12-14 | 1991-08-13 | Fujitsu Ltd | 10進数を2進数に変換する方法 |
| JPH03256117A (ja) * | 1990-03-07 | 1991-11-14 | Fujitsu Ltd | 乗算器 |
| US5283755A (en) * | 1993-04-14 | 1994-02-01 | International Business Machines Corporation | Multiplier employing carry select or carry look-ahead adders in hierarchical tree configuration |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5440185B2 (ja) * | 1974-02-21 | 1979-12-01 | ||
| JPS5759245A (en) * | 1980-09-26 | 1982-04-09 | Fujitsu Ltd | Double-length multiplier |
| JPS58137045A (ja) * | 1982-02-05 | 1983-08-15 | Matsushita Electric Ind Co Ltd | 並列乗算器 |
-
1983
- 1983-10-14 JP JP58190717A patent/JPH0621983B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6083140A (ja) | 1985-05-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0318957B1 (en) | Population counting in computer systems | |
| US6735611B2 (en) | Arithmetic processor | |
| EP0018519B1 (en) | Multiplier apparatus having a carry-save/propagate adder | |
| JPH1195981A (ja) | 乗算回路 | |
| JPH0375901B2 (ja) | ||
| JPH0368416B2 (ja) | ||
| US4868777A (en) | High speed multiplier utilizing signed-digit and carry-save operands | |
| JPH01169531A (ja) | 高速二進・十進算術論理演算装置および二進化十進数に対する演算方法 | |
| US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
| US5132925A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
| CA1219955A (en) | Digital multiplying circuit | |
| US6018758A (en) | Squarer with diagonal row merged into folded partial product array | |
| US5357455A (en) | Floating point remainder generator for a math processor | |
| Yan et al. | An energy-efficient multiplier with fully overlapped partial products reduction and final addition | |
| JPH0833816B2 (ja) | 固定小数点除算方式 | |
| JP2597775B2 (ja) | 除算方法および除算装置 | |
| US4727507A (en) | Multiplication circuit using a multiplier and a carry propagating adder | |
| US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
| US5677863A (en) | Method of performing operand increment in a booth recoded multiply array | |
| JP3227538B2 (ja) | 2進整数乗算器 | |
| US5777915A (en) | Multiplier apparatus and method for real or complex numbers | |
| JPS6083140A (ja) | 乗算器 | |
| JPH0820942B2 (ja) | 高速乗算器 | |
| US5239498A (en) | Methods and apparatus for improved quotient correction in nonrestoring division computation circuits | |
| JPH01302426A (ja) | 高速並列乗算回路 |