(57)【特許請求の範囲】
【請求項１】
多ビット乗数と多ビット被乗数との乗算を行なうための乗算装置であって、
前記乗数をブースアルゴリズムに従ってデコードして複数の選択制御信号を生成するためのブースエンコーダ、
前記ブースエンコーダからの複数の選択制御信号各々と前記多ビット被乗数とから複数の部分積を生成するブース選択回路、および
前記ブース選択回路の生成する複数の部分積をツリー状に加算して部分積数を順次低減して最終中間乗算値を生成するための中間積生成回路を備え、前記中間積生成回路は、前記多ビット乗数の所定のビット位置で２つの分割アレイに分割される分割アレイ構造を有し、前記２つの分割アレイが、個別に前記最終中間乗算値をそれぞれ生成し、かつ前記分割アレイの各々は、前記ツリー状に加算するように配置される複数段の加算回路およびブース選択回路を含み、
前記中間積生成回路からの前記最終中間乗算値を加算して前記多ビット乗数と前記多ビット被乗数の乗算値を生成する最終加算回路を備え、
前記分割アレイは、前記複数の選択制御信号の伝達方向と直交する方向に整列して配置され、
前記最終加算回路は前記分割アレイの間に配置され、
前記分割アレイ各々の加算回路のツリーアレイは前記最終加算回路へ向かう方向に沿ってツリー状に加算を行なう、乗算装置。
【請求項２】
前記複数段の加算回路は互いにビット幅の異なる加算回路を備え、
前記複数段の加算回路は、一方端が整列し、かつ他方端が個々のビット幅に応じて位置が異なるように対応の分割アレイ内に配置され、
前記ブースエンコーダは、前記他方端側に配置される、請求項１記載の乗算装置。
【請求項３】
前記ブースエンコーダは、前記最終加算回路を間に挟むように分割して配置される、請求項２記載の乗算装置。
【請求項４】
前記多ビット被乗数を受けて前記ブース選択回路へ与える被乗数発生回路をさらに備え、前記被乗数発生回路は前記分割アレイの間に配置される、請求項１から３のいずれかに記載の乗算装置。
【請求項５】
前記分割アレイは、前記複数の選択制御信号の伝達方向に関して整列して配置され、前記分割アレイは、それぞれ、同一方向に沿って部分積をツリー状に加算する複数段の加算回路を含む、請求項１記載の乗算装置。
【請求項６】
前記ブースエンコーダは、前記分割アレイの各々に対面するように分割して配置される、請求項５記載の乗算装置。
【請求項７】
前記分割アレイの各々は、互いにビット幅の異なる複数段の加算回路を含み、
前記複数段の加算回路は一方側が整列して配置され、
前記他方端側に、前記分割されて配置されるブースエンコーダがそれぞれ配置される、請求項６記載の乗算装置。
【請求項８】
前記分割されて配置されるブースエンコーダは、前記分割アレイに関して対向する側に配置される、請求項７記載の乗算装置。
【請求項９】
前記分割されて配置されるブースエンコーダは、前記分割アレイの間に配置される、請求項７記載の乗算装置。
【請求項１０】
前記多ビット被乗数を前記ブース選択回路へ与えるための被乗数データ発生回路をさらに含み、
前記被乗数データ発生回路は、前記分割アレイに共通に、かつ前記分割アレイの一方に対面して配置される、請求項５記載の乗算装置。
【請求項１１】
前記多ビット被乗数を前記ブース選択回路へ与えるための被乗数データ発生回路をさらに備え、
前記被乗数データ発生回路は、前記分割アレイの間の領域に配置される、請求項５記載の乗算装置。
【請求項１２】
前記多ビット被乗数を前記ブース選択回路へ与えるための被乗数データ発生回路をさらに備え、
前記被乗数データ発生回路は、前記分割アレイ間の領域に配置される、請求項８記載の乗算装置。
【請求項１３】
前記多ビット被乗数を前記ブース選択回路へ与えるための被乗数データ発生回路をさらに備え、
前記被乗数データ発生回路は、分割ブースエンコーダに隣接して前記分割アレイ間の領域に配置される、請求項９記載の乗算装置。
【請求項１４】
前記被乗数発生回路は、前記分割アレイの前記選択制御信号の伝達方向と直交する方向の高さに応じた高さを有するように分割構造とされる、請求項１１から１３のいずれかに記載の乗算装置。
【請求項１５】
前記最終加算回路は、前記分割アレイに共通に設けられ、かつ前記分割アレイからの最終中間積を加算して最終積を生成する、請求項５記載の乗算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、乗算装置に関し、特に、ブースアルゴリズムに従って乗数をエンコードし、ワレスツリー型加算回路を用いて部分積を加算して乗数と被乗数の積を求めるワレスツリー型乗算装置に関する。
【０００２】
【従来の技術】
コンピュータなどを用いる演算処理装置において、乗算は最も多く行なわれる演算の１つであり、高速の演算処理システムを構築するためには、この乗算装置の高速化が必要不可欠である。乗算装置を構成する方法には種々の方法があるが、キャリーセーブ方式を用いる乗算装置とワレスツリーを用いた乗算装置が広く知られている。
【０００３】
図１２（Ａ）は、従来の並列乗算回路の部分の構成を概略的に示す図である。図１２（Ａ）においては、乗数ビットＹ（ｊ−１）−Ｙ（ｊ＋２）を被乗数ビットＸ（ｉ−１）−Ｘ（ｉ＋２）の４ビットの乗算を行なう部分の構成を示す。
【０００４】
図１２（Ａ）において、乗数ビットＹ（ｊ−１）−Ｙ（ｊ＋２）と被乗数ビットＸ（ｉ−１）−Ｘ（ｉ＋２）の交差部にそれぞれ対応して乗算単位回路ＵＭが配置される。乗数ビットＹ（ｊ−１）−Ｙ（ｊ＋２）それぞれに対応して配置される乗算単位回路の行により、部分積ＰＰ０−ＰＰ３が生成される。この部分積ＰＰ０−ＰＰ３を桁合わせして加算することにより、乗数ビットＹ（ｊ−１）−Ｙ（ｊ＋２）と被乗数ビットＸ（ｉ−１）−Ｘ（ｉ＋２）の乗算結果が得られる。図１２（Ａ）において、列方向（図１２（Ａ））の縦方向）に整列して配置される乗算単位回路ＵＭが、同一桁に整列して配置される。各乗算単位回路ＵＭのキャリーは次列の１桁上位の乗算単位回路ＵＭへ与えられる。
【０００５】
図１２（Ｂ）は、図１２（Ａ）に示す乗算単位回路ＵＭの構成を概略的に示す図である。図１２（Ｂ）において乗算単位回路ＵＭは、乗数ビットＹｂと被乗数ビットＸａを受けるＡＮＤ回路９００と、ＡＮＤ回路９００の出力ビットと前段の乗算単位回路のサム出力Ｓｉｎと、同一段の下位桁の乗算単位回路からのキャリー入力Ｃｉｎとを加算して、サム出力Ｓおよびキャリー出力Ｃｏｕｔを生成する全加算器９０２を含む。ＡＮＤ回路９００からは、ビットＸａおよびＹｂの乗算結果Ｘａ・Ｙｂが出力される。
【０００６】
この図１２（Ｂ）に示す乗算単位回路をアレイ状に配置して構成される図１２（Ａ）に示す並列乗算回路は、単に、ビットＸ（ｉ−２）−Ｘ（ｉ＋２）および乗数ビットＹ（ｊ−１）−Ｙ（ｊ＋２）を乗算して加算するだけである。図１２（Ａ）に示す並列乗算回路は、図１２（Ｂ）に示す乗算単位回路ＵＭをアレイ状に規則的に配置するだけであり、レイアウトが容易であり、また設計に要する期間を短縮することができ、集積回路化に適した構成を有している。
【０００７】
しかしながら、このキャリーセーブ方式の並列乗算回路においてはキャリーを上位桁へ伝達し、同一列（部分積）内ではキャリー伝搬はなく高速である。しかし、計算時間が乗数Ｙのビット数に比例するため（部分積の数が乗数ビットの数に比例する）、多ビット乗算を行なう場合、計算時間が長くなるという問題があり、たとえば５４ビットのなどの多ビットの演算が要求されるマイクロプロセッサ等に対しては、図１２（Ａ）に示す並列乗算回路の構成は適しているとはいえない。
【０００８】
この図１２（Ａ）に示す並列乗算回路の欠点を解消するために、同一桁内並列加算方式と呼ばれる方式が用いられ、計算の並列度を高くすることが行なわれる。
【０００９】
図１３は、従来の並列乗算回路の他の構成を概略的に示す図である。図３１においても、乗数Ｙの４ビットＹ（ｊ−１）−Ｙ（ｊ＋２）と被乗数ＸのビットＸ（ｉ−１）−Ｘ（ｉ＋２）の部分の構成を示す。この図１３に示す並列乗算回路の構成においては、加算段Ｐ０−Ｐ３において、その加算結果を示すサム出力は、次段ではなく、次の次の段の乗算単位回路ＵＭへ与えられる。すなわち１段の加算段を飛越してサム出力が伝達される。この図１３に示す並列乗算回路は、同一桁内において並列に演算することのできる加算の数を増加させ、演算速度を高くすることを図る。これは、一般に「桁内並列加算方式」と呼ばれる。キャリーセーブ方式は、さらに各加算段におけるキャリーを、次段の加算段の１つ上位桁の乗算単位ユニットへ与え、同一加算段内での、キャリーの伝搬を停止する。
【００１０】
しかしながら、この図１３に示す構成では、図１２（Ａ）に示す並列乗算回路の構成に比べて、各乗算単位回路のサム出力を伝達する信号線の配線長が約２倍程度長くなる（加算段２段分サム出力を伝達する必要があるため）。一般に、配線遅延は、その配線長の二乗に比例することが知られており、したがって、この図１３に示す構成における配線遅延は、図１２（Ａ）に示す並列乗算回路のそれの２倍となり、この桁内並列加算方式の乗算回路の配線遅延を低減するために、たとえば特開昭６３−５５６２７においては、この乗算器アレイを２分割する構成が提案されている。
【００１１】
図１４は、上述の特開昭６３−５５６２７に示される乗算装置の構成を概略的に示す図である。図１４において、乗算アレイが２つのブロックＢＬ１およびＢＬ２に分割され、これらの乗算ブロックＢＬ１およびＢＬ２の間に、最終段加算回路ＦＳＡが配置される。ブロックＢＬ１は、被乗数ＸのビットＸ０−Ｘｎと乗数ＹのビットＹ０−Ｙ（ｎ／２）についての部分積加算による乗算を行なう。乗算ブロックＢＬ２においては、乗数ＹについてビットＹ（（ｎ／２）−３）−Ｙｎと被乗数ＸのビットＸ０−Ｘｎの部分積の加算を行なう。
【００１２】
ブロックＢＬ１およびＢＬ２それぞれにおいては、キャリーセーブ加算方式で乗算回路が構成されており、各単位乗算回路のキャリー出力は、次段の加算回路の１ビット上位桁の単位乗算回路へ与えられる。ブロックＢＬ１およびＢＬ２において個々に乗算が行なわれ、これらのブロックＢＬ１およびＢＬ２の中間乗算結果が、最終段加算回路ＦＳＡで加算されて乗数Ｙと被乗数Ｘの乗算結果を示す出力が得られる。
【００１３】
乗算ブロックＢＬ１およびＢＬ２においては、サム出力が伝達される加算回路の段Ｐｊ−１〜Ｐｊ，Ｐｋ−１〜ＰＫ＋２の数が低減され、配線遅延の影響をなくし、高速で乗算を行なうことを図る。しかしながら、この図１４に示す構成では、乗算ブロックＢＬ１およびＢＬ２においては、乗数Ｙのビットに対応して加算回路を設ける必要があり、また各加算回路を介してキャリーが伝搬されるため、高速化に限度がある。
【００１４】
また、この特開昭６３−５５６２７号公報においては、加算回路の段数を低減するために、ブースアルゴリズムを利用することを述べている。しかしながら、このブースアルゴリズムを用いる場合でも、乗算器アレイは、キャリーセーブ方式であり、単に加算回路の段数が低減されるだけであり、高速化にも限度があり、５４ビットなどの多ビット乗算を行なう乗算器においては、この図１４に示す構成を含めてキャリーセーブ加算方式はほとんど用いられない。また、この特開昭６３−５５６２７号においては、乗算器アレイの分割構造のみが述べられており、乗数Ｙおよび被乗数Ｘを、分割乗算ブロックＢＬ１およびＢＬ２にどのように与えるかについての具体的配置については何ら考察していない。
【００１５】
図１５は、従来のワレスツリー型乗算装置の全体の構成を概略的に示す図である。この図１５に示すワレスツリー型乗算装置の構成は、たとえば特開平９−２３１０５６号公報に示されている。図１５において、ワレスツリー型乗算装置は、被乗数Ｘを格納する被乗数レジスタ回路１１０１と、乗数Ｙを格納する乗数レジスタ回路１１０２と、乗数レジスタ回路１１０２からの乗数Ｙを所定のブースアルゴリズムに従ってエンコードするブースエンコーダ１１０９と、ブースエンコーダ１１０９からの選択制御信号１１０４−１１１１それぞれに対応して設けられ、被乗数レジスタ回路１１０１からの乗数Ｘとブースエンコーダ１１０９からの選択制御信号１１０４−１１１１それぞれとに従って部分積を生成する部分積発生回路１１１３−１１２０と、部分積発生回路１１１３−１１２０からの部分積１１２１−１１２８を加算するワレスツリー部１１２９と、ワレスツリー部１１２９からの２つの中間積結果１１３０を加算して積を生成する最終加算部１１３１を含む。
【００１６】
ブースエンコーダ１１０９は、この乗数Ｙの所定数のビットに対応して設けられ、それぞれ所定のブースアルゴリズムに従ってエンコード動作を行なうブースエンコード回路１０４５−１０５２を含む。部分積発生回路１１１３−１１２０は、それぞれ被乗数Ｘの各ビットに対して所定のブースアルゴリズムに従って候補ビットを生成し、この生成した候補ビットから、対応のブースエンコード回路１０４５−１０５２からの選択制御信号１１０４−１１１１に従って候補ビットを選択して、部分積を生成する。
【００１７】
ワレスツリー部１１２９は、この部分積１１２１−１１２８をツリー状に順次数を低減して加算を行ない、８個の部分積１１２１−１１２８を２つの中間積１１３０にまで低減する。ブースアルゴリズムに従って乗数Ｙのビットを圧縮して、生成される部分積の数を低減し、次いでワレスツリー部１１２９で部分積の数を各段ごとに低減することにより、演算の高速化を図る。
【００１８】
図１６は、図１５に示すワレスツリー部１１２９の構成を概略的に示す図である。図１６においてワレスツリー部１１２９は、部分積発生回路１１１３−１１２０から生成された部分積（以下第０次部分積と称す）を加算するための４：２加算回路１１４１および１１４２と、これらの４：２加算回路１１４１および１１４２からの出力を加算して２つの中間積１１３０を生成する４：２加算回路１１４０を含む。４：２加算回路１１３８は、第０次部分積１１２１−１１２４を加算して、２つの中間積１１４１を出力する。４：２加算回路１１３９は第０次部分積１１２５−１１２８を加算して中間積１１４２を生成する。これらの４：２加算回路１１３８および１１３９は、４入力（Ｉ１−Ｉ４）２出力（キャリーＣおよびサムＳ）の加算回路である。４：２加算回路１１４０も同様、４入力（Ｉ１−Ｉ４）２出力（キャリーＣおよびサムＳ）の加算回路であり、４：２全加算回路１１３８および１１３９の出力を加算して、２つの中間積１１３０を生成する。
【００１９】
したがって、８個の部分積を、２段の加算回路でツリー状に加算して中間積を生成して最終加算部１１３１へ与えることができる。ブースエンコーダ１１０３は、そのアルゴリズムに従って乗数Ｙのビット数を低減している（２次のブースアルゴリズムでは半減）。したがってこのブースアルゴリズムおよびワレスツリー構造を利用することにより、８個の０次部分積を第１次の部分積に圧縮し、次いでこの４個の部分積を２つの中間積に圧縮することができ、加算回路の段数が低減され、応じて高速で演算を行なうことができる。
【００２０】
図１７は、図１６に示す４：２加算回路１１３８の構成を概略的に示す図である。図１７において、４：２加算回路１１３８は、ｎビットの４入力２出力加算素子ＡＥ１−ＡＥｎを含む。これらの加算素子ＡＥ１−ＡＥｎの各々は、第０次部分積１１２４−１１２１の同一桁の４ビットを入力Ｉ１−Ｉ４に受け、かつ前段の加算素子のキャリー出力ＣＯをキャリー入力ＣＩに受けて２ビットの加算結果ＣおよびＳを出力する。２ビットの加算結果において、下位ビットがサムＳで表わされ、上位ビットがキャリーＣで表わされる。これらの加算素子ＡＥ１−ＡＥｎの２ビットの出力は、それぞれ並列に、第０次部分積１１４１として出力される。キャリーは、これらの加算素子ＡＥ１−ＡＥｎを伝搬している。
【００２１】
このようなワレスツリーを用いて順次乗算を行なうことにより、８個の第０次部分積を４個の第１次部分積に圧縮し、次いで、これらの４個の第１次部分積を２つの２次部分積（中間積）に圧縮することができ、キャリーセーブ方式の並列乗算回路よりも加算回路の段数を大幅に低減することができる。
【００２２】
なお、この４入力２出力加算素子の具体的構成は、前述の先行技術特開平９−２３１０５６号公報にその一例が示されている。
【００２３】
一般に、コンピュータシステムにおいては、５４ビット以上の乗算が行なわれる。この４：２加算回路を用いたワレスツリー型アレイ構成を５４ビット乗算装置に適用した場合に考えられる構成を図１８に示す。図１８において、ワレスツリー型乗算装置は、乗数Ｙをブースアルゴリズムに従ってエンコードして選択制御信号を生成するブースエンコーダ１と、被乗数Ｘを格納する被乗数レジスタ回路２と、ブースエンコーダ１からの選択制御信号それぞれに対応して設けられ、被乗数レジスタ回路２からの被乗数Ｘと対応の選択制御信号とに従って第０次部分積を生成するブースセレクタ３ａ−３αと、第０次部分積を加算して第１次部分積を生成する第１次４：２加算回路４ａ−４ｇと、加算回路４ａ−４ｂからの第１次部分積を加算して第２次部分積を生成する第２次４：２加算回路５ａ−５ｅと、第２次４：２加算回路５ａ−５ｅからの第２次部分積を加算して第３次部分積を生成する第３次４：２加算回路６ａおよび６ｂと、６ａおよび６ｂからの第３次部分積（最終中間積）を加算して最終加算結果すなわち乗数Ｙと被乗数Ｘの積Ｚを出力する最終加算回路７を含む。
【００２４】
図１８においては、乗数Ｙおよび被乗数Ｘはともに５４ビットである。２次のブースアルゴリズムに従った場合、部分積の積は、乗数Ｙのビット数の１／２に低減される。ここで、２次のブースアルゴリズムは、一般に次式で表わされる。
【００２５】
Ｚ＝Ｘ・Σ（ｙ（２ｊ）＋ｙ（２ｊ＋１）−２・ｙ（２ｊ＋２）・２2j
ここで、総和は、ｊ＝０〜ｎ／２−１について行なわれる。すなわち、乗数Ｙの隣り合う３ビットを同時に見ることにより、被乗数Ｘに掛け合わされて形成される部分積を半分にすることができる。また、隣接する３ビットｙ（２ｊ）、ｙ（２ｊ＋１）およびｙ（２ｊ＋２）の値に応じて、加算されるべき部分積は、±２・Ｘ、±Ｘ、および０のいずれかである。ブースセレクタ３ａ−３αは、ブースエンコーダ１に含まれるブースエンコード回路１ａ−１αからの選択制御信号に従った被乗数Ｘのシフト／反転により、選択制御信号が指定する部分積を生成する。ここで、２・Ｘは、１ビット左シフト操作により実現され、−Ｘは、２の補数演算により、全ビット値の反転に１を加えることにより実現される。
【００２６】
ブースセレクタ３ａ−３αそれぞれにおいて生成された第０次部分積を第１次４：２加算回路４ａ−４ｇで加算する。すなわち、ブースセレクタ３ａおよび３ｂの生成する第０次部分積は、第１次４：２加算回路４ａで加算される。ブースセレクタ３ｃ−３ｆの生成する第０次部分積は、第１次４：２加算回路４ｂで加算される。ブースセレクタ３ｂ−３ｊの生成する第０次部分積は、第１次加算回路３ｋで加算される。ブースセレクタ３ｋ−３ｎが生成する第０次部分積は、第１次４：２加算回路４ｂで加算される。
【００２７】
ブースセレクタ３ｏ−３ｒが生成する第０次部分積は、第１次４：２加算回路４ｅで加算される。ブースセレクタ３ｓ−３ｖが生成する第０次部分積は、第１次４：２加算回路４ｆで加算される。ブースセレクタ３ｗ−３ｚが生成する第０次部分積は、第１次４：２加算回路４ｇで加算される。ブースセレクタ３αが生成する第０次部分積については、加算は行なわれない。
【００２８】
第１次４：２加算回路４ａおよび４ｂのそれぞれの生成する第１次部分積は、第２次４：２加算回路５ａで加算される。第１次４：２加算回路４ｃおよび４ｄの生成する第１次部分積は、第２次４：２加算回路５ｂで加算される。第１次４：２加算回路４ｅおよび４ｆの生成する第１次部分積は、第２次４：２加算回路５ｃで加算される。第１次４：２加算回路４ｇの生成する第１次部分積とブースセレクタ３αの生成する第０次部分積は、第２次４：２加算回路５ｅで加算される。
【００２９】
第２次４：２加算回路５ａおよび５ｂの生成する第２次部分積は、第３次４：２加算回路６ａで加算される。第２次４：２加算回路５ｃおよび５ｄの生成する第２次部分積は、第３次４：２加算回路６ｂで加算される。
【００３０】
第３次４：２加算回路６ａおよび６ｂの生成する第３次部分積が、最終積加算回路７で加算され、最終加算結果を示す積Ｚが最終加算回路７から出力される。一般に、加算回路は、その次数が増大するにつれてビット幅が大きくなる。
【００３１】
このワレスツリー型乗算装置において、桁合わせをして加算器を配置した場合、配線が錯綜するため、図１８に示すように、ブースセレクタ３ａ−３αおよび４：２加算回路４ａ−４ｇ、５ａ−５ｄ、および６ａおよび６ｂはすべて、その一方端が整列して配置される。これにより、配線が単に通過する空き領域などを詰めて、乗算装置の占有面積を低減する。
【００３２】
この図１８に示すワレスツリー型乗算装置において、部分積が順次半減されており、加算回路の段数がキャリーセーブ型の乗算回路に比べて大幅に低減され、キャリーセーブ型乗算装置に比べて高速に乗算を行なうことができる。
【００３３】
【発明が解決しようとする課題】
この図１８に示すワレスツリー型乗算装置においては、加算器から生成される部分積の伝搬方向は、図１８の被乗数レジスタ回路２から最終加算回路７に向かって一方方向である。したがって、演算は各加算段において並列に実行されるものの、演算のクリティカルパスは、図１８に矢印で示すように、被乗数レジスタ２からブースセレクタ３ａより第０次部分積が生成され、次いで第１次４：２加算回路４ａで加算され、次いで第２次４：２加算回路５ａで加算されて第２次部分積が生成され、次いで第３次４：２加算回路６ａで加算されて生成される第３次部分積が最終加算回路７に到達するまでの経路となる。この部分積加算器は、図１８の横方向に最低５４ビットを必要とし、このクリティカルパスの経路は、ブースセレクタ２７段、第１次４：２加算回路７段、第２次４：５２加算回路４段、第３次４：２加算回路２段、および最終加算回路１段の合計４１段で構成される。
【００３４】
各段において出力を高速で生成するために、構成要素のトランジスタのサイズ（ＭＯＳトランジスタの場合チャネル幅とチャネル長の比）を大きくすると、乗算装置のこの乗算アレイの面積が増加する。したがって、高集積化の観点から、構成要素のトランジスタのサイズは必要最低限のサイズとしている。この第３段４：２加算回路６ａから最終段加算回路７へ、乗算アレイの１／２の長さの距離にわたって第３次部分積を伝達する必要があり、この間の信号伝搬遅延が増加し、高速で乗算を行なうことができなくなるという問題が生じる。
【００３５】
またブースセレクタ３ａ−３αにより生成した第０次部分積は、各段の加算回路で加算されるため、この加算回路の次数が大きくなるほど、加算回路のビット幅が増加し、この５４ビット乗算装置の場合、最終段加算回路７のビット幅が、８０ビット程度になる。乗算装置においては、レイアウト面積をできるだけ小さくするため、この乗算アレイの一方端は整列して配置され、はみ出した部分は、乗算装置の他方側にレイアウトされる。したがって、この領域における空き領域の面積分布が単調増加または単調減少のように規則的とならず、不規則となり、他回路を容易にレイアウトすることができず、空き領域として放置されるため、レイアウトエリア使用効率が低く、高集積化された乗算装置を得ることができないという問題があった。
【００３６】
それゆえ、この発明の目的は、高速で乗算を行なうことのできるワレスツリー型乗算装置を提供することである。
【００３７】
この発明の他の目的は、面積使用効率の優れたかつ高速動作するワレスツリー型乗算装置を提供することである。
【００３８】
【課題を解決するための手段】
請求項１に係る乗算装置は、多ビット乗数をブースアルゴリズムに従ってデコードして複数の選択制御信号を生成するためのブースエンコーダと、このブースエンコーダからの複数の選択制御信号各々と多ビット被乗数とから複数の部分積を生成するブース選択回路と、この複数のブース選択回路の生成する複数の部分積をツリー状に加算して部分積数を順次低減して最終中間乗算値を生成する中間積生成回路を備える。中間積生成回路は、ブースセレクタの出力の所定のビット位置で２つの分割アレイに分割される分割アレイ構造を有し、それらの分割アレイは個別に最終中間乗算値をそれぞれ生成し、かつ分割アレイの各々はツリー状に加算するように配置される複数段の加算回路およびブース選択回路を含む。
【００３９】
請求項１に係る乗算装置は、さらに、この中間積生成回路からの最終中間乗算値を加算して多ビット乗数と多ビット被乗数の乗算値を生成する最終加算回路を備える。
【００４０】
請求項１に係る乗算装置において、分割アレイが選択制御信号の伝達方向と直交する方向に整列して配置され、最終加算回路は、分割アレイの間に配置される。分割アレイの加算回路ツリーアレイは、最終加算回路へ向かう方向に沿ってツリー状に加算を行なう。
【００４１】
請求項２に係る乗算装置は、請求項１の複数段の加算回路は、互いにビット幅の異なる加算回路を含み、複数段の加算回路は一方端が整列し、かつ他方端が個々のビット幅に応じて位置が異なるように対応の分割アレイ内に配置され、ブースエンコーダは、これらの分割アレイの他方端に配置される。
【００４２】
請求項３に係る乗算装置は、請求項２のブースエンコーダが、この最終加算回路を間に挟むように分割して配置される。
【００４３】
請求項４に係る乗算装置は、請求項１から３のいずれかの装置が多ビット被乗数を受けて複数のブース選択回路へ与える被乗数発生回路をさらに備える。この被乗数発生回路は分割アレイの間に配置される。
【００４４】
請求項５に係る乗算装置は、請求項１の分割アレイが複数の選択制御信号の伝達方向に関して整列して配置され、分割アレイはそれぞれ同一方向に沿って部分積をツリー状に加算する複数段の加算回路を含む。
【００４５】
請求項６に係る乗算装置は請求項５のブースエンコーダが分割アレイ各々に対面するように分割して配置される。
【００４６】
請求項７に係る乗算装置は、請求項６の装置において分割アレイの各々が互いにビット幅の異なる複数段の加算回路を含み、これら複数段の加算回路は一方側が整列して配置され、各分割アレイの他方端側に分割ブースエンコーダが配置される。
【００４７】
請求項８に係る乗算装置は、請求項７の分割ブースエンコーダが、分割アレイに関して対向する側にそれぞれ配置される。
【００４８】
請求項９に係る乗算装置は、請求項７の分割ブースエンコーダが、分割アレイの間に配置される。
【００４９】
請求項１０に係る乗算装置は請求項５の装置がさらに多ビット被乗数を複数のブース選択回路へ与えるための被乗数データ発生回路を含み、この被乗数データ発生回路は分割アレイに共通にかつ分割アレイの一方に対面して配置される。
【００５０】
請求項１１に係る乗算装置は、請求項５の装置がさらに多ビット被乗数をブース選択回路へ与えるための被乗数データ発生回路をさらに備え、この被乗数データ発生回路は分割アレイの間の領域に配置される。
【００５１】
請求項１２に係る乗算装置は、請求項８の装置が多ビット被乗数をブース選択回路へ与える被乗数データ発生回路をさらに備え、この被乗数データ発生回路は、分割アレイ間の領域に配置される。
【００５２】
請求項１３に係る乗算装置は、請求項９の装置がさらに多ビット被乗数をブース選択回路へ与えるための被乗数データ発生回路をさらに備える。この被乗数データ発生回路は、分割ブースエンコーダに隣接して分割アレイ間の領域に配置される。
【００５３】
請求項１４に係る乗算装置は、請求項１１から１３のいずれかの被乗数発生回路が、分割アレイの選択制御信号の伝達する方向と直交する方向の高さに応じた高さを有するように分割構造とされる。
【００５４】
請求項１５に係る乗算装置は、請求項５の最終加算回路が分割アレイに共通に設けられ、各分割アレイからの最終中間積を加算して最終積を生成する。
【００５５】
ワレスツリー型乗算装置において、乗算ツリーアレイを分割構造とし、かつ分割アレイ個々において乗算を行なうことにより、クリティカルパスの長さが低減され、高速の乗算が可能となる。
【００５６】
また、ブースエンコーダの配置領域を考慮することにより、加算回路のビット幅が異なる不規則な領域に、効率的にブースエンコーダを配置することができ、面積利用効率に優れた乗算装置を実現することができる。
【００５７】
【発明の実施の形態】
［実施の形態１］
図１（Ａ）は、この発明の実施の形態１に従う乗算装置の乗算アレイの構成を概略的に示す図である。図１（Ａ）において、この乗算アレイＭＡは、乗数Ｙの特定のビット位置に応じて分割される２つの分割ワレスツリーアレイＤＷＡおよびＤＷＢを含む。分割ワレスツリーアレイＤＷＡおよびＤＷＢの間に最終加算回路ＦＮＡＤが配置される。分割ワレスツリーアレイＤＷＡおよびＤＷＢは、この最終加算回路ＦＮＡＤ方向に加算結果を伝搬させる。したがって、乗算アレイＭＡにおけるワレスツリーの加算回路段は、分割ワレスツリーアレイＤＷＡおよびＤＷＢにより２分割されるため、部分積の加算結果を伝達する際のクリティカルパスの長さが低減され、高速で乗算を行なうことができる。
【００５８】
なお、被乗数Ｘの最上位ビット位置は、分割ワレスツリーアレイＤＷＡおよびＤＷＢの、図１（Ａ）の右側にあってもよく、また左側にあってもよい。一方、乗数Ｙについては、分割ワレスツリーアレイＤＷＡおよびＤＷＢそれぞれにおける部分積加算信号伝搬方向ＡおよびＢについて、下位ビットから上位ビットとなるように乗数Ｙのビットが配置される。分割ワレスツリーアレイＤＷＡおよびＤＷＢの加算回路の段数は好ましくは等しくされる。クリティカルパスの長さが１／２倍になる。
【００５９】
［変更例］
図１（Ｂ）は、この発明の実施の形態１の乗算装置の変更例を概略的に示す図である。図１（Ｂ）においては、乗算アレイＭＡは、被乗数Ｘビットの伝達方向について並列に配置される分割ワレスツリーアレイＤＷＣおよびＤＷＤに分割される。これらの分割ワレスツリーアレイＤＷＣおよびＤＷＤに対し共通に最終加算回路ＦＮＡＤが配置される。
【００６０】
分割ワレスツリーアレイＤＷＣは、乗数Ｙａと被乗数Ｘの乗算を行ない、分割ワレスツリーアレイＤＷＤは、乗数Ｙｂと被乗数Ｘの乗算を行なう。乗数Ｙは、Ｙａ＋Ｙｂである（ビット位置が２分割される）。これらの分割ワレスツリーアレイＤＷＣおよびＤＷＤにおいては、加算回路の段数は好ましくは同じであり、かつ矢印ＣおよびＤに沿って部分積加算信号が伝搬される。したがって、この場合においても、分割ワレスツリーアレイＤＷＣおよびＤＷＤの信号伝搬遅延のクリティカルパスは、図１（Ｂ）の矢印ＣおよびＤの一方端から他方端までの全長であり、乗算アレイＭＡにおけるクリティカルパス（矢印Ｃ＋Ｄに近似的に相当する）に比べて短くすることができ、高速の乗算を行なうことができる。
【００６１】
なお、この図１（Ｂ）においても、乗数ＹａおよびＹｂのいずれが上位ビットであってもよく、また被乗数Ｘもその上位ビット位置は任意である。
【００６２】
以上のように、この発明の実施の形態１に従えば、ワレスツリー構造の乗算アレイＭＡを乗数Ｙの特定のビット位置で分割ワレスツリーアレイに分割して個々に乗算を行ない、その分割ワレスツリーアレイの個々の乗算結果を最終加算回路で加算しており、信号伝搬のクリティカルパスを低減することができ、高速の乗算を行なう乗算装置が実現される。
【００６３】
［実施の形態２］
図２は、この発明の実施の形態２に従う乗算装置の構成を概略的に示す図である。この図２以降において示すこの発明に従う乗算装置は、２次のブースアルゴリズムに従って５４ビットの乗数Ｙおよび５４ビットの被乗数Ｘの乗算を行なう。
【００６４】
図２において、乗算アレイは、分割アレイＤＷａおよびＤＷｂに分割される。分割アレイＤＷａは、ブースエンコーダ１に含まれるブースエンコード回路１ａ−１ｎからの選択制御信号に従って、被乗数レジスタ回路２からの被乗数データから第０次部分積を生成するブースセレクタ３ａ−３ｎと、ブースセレクタ３ａ−３ｎにより生成される第０次部分積を加算して、第１次部分積を生成する第１次４：２加算回路４ａ−４ｄと、これらの第１次４：２加算回路４ａ−４ｄが形成する第１次部分積を加算して第２次部分積を生成する第２次４：２加算回路５ａおよび５ｂと、第２次４：２加算回路４ｂ−４ｄからの第２次部分積を加算して第３次部分積を生成する第３次４：２加算回路６ａを含む。分割ワレスツリーアレイＤＷａにおいて、ブースセレクタ３ａ−３ｎのシフト回路／インバータ回路を、１つの小さな四角い箱で示す。また加算回路４ａ−４ｄ、５ａ，５ｂおよび６ａにおいて、単位加算器も、同様１つの小さな四角い箱で示す。
【００６５】
ブースエンコーダ１は、２次のブースアルゴリズムに従って選択制御信号を生成する。したがって、５４ビットの乗数Ｙに対して２７個のブースエンコード回路１ａ−１αが設けられる。このブースエンコーダ１においては、乗数Ｙのビット位置は、ブースエンコード回路１ｎにより、その位置が逆転される。すなわち、ブースエンコード回路１ａ−１ｎは、それぞれ乗数Ｙの下位ビットから中位ビットに対応して配置される。一方、ブースエンコード回路１ｏ−１αは、分割アレイＤＷｂは、位置が逆転され、下方向から上方向に向かって中位ビットから上位ビットに対応するように配置される。
【００６６】
分割アレイＤＷｂは、ブースエンコード回路１ｏ−１αに対応して設けられ、対応のブースエンコード回路からの選択制御信号に従って、被乗数レジスタ回路２からの多ビット被乗数Ｘから第０次部分積を生成するブースセレクタ３ｏ−３αと、これらのブースセレクタ３ｏ−３αからの第０次部分積を加算して第１次部分積を生成する第１次４：２加算回路４ｅ−４ｇと、第１次４：２加算回路４ｅ−４ｇが生成する第１次部分積を加算して第２次部分積を生成する第２次加算回路５ｃおよび５ｄと、第２次４：２加算回路５ｃおよび５ｄの生成する第２次部分積を加算して第３次部分積を生成する第３次加算回路６ｂを含む。
【００６７】
分割アレイＤＷａおよびＤＷｂの間に最終加算回路７が配置され、乗算結果Ｚがこの最終加算回路７から出力される。
【００６８】
ここで、第２次４：２加算回路５ｄがブースセレクタ３αとほぼ同じサイズを有しているのは、以下の理由による。第２次部分積まで部分積を４：２の割合で順次圧縮していく場合、ブースセレクタ３αは、単に配線のみで第１次部分積を生成する。２次のブースアルゴリズムにおいては、第０次部分積は、互いに２ビットずつその桁位置が異なっている。したがって、第１次４：２加算回路４ｇとブースセレクタ３αの生成する第０次（擬似第１次）部分積を加算する場合、第２次４：２加算回路５ｄにおいては、加算する必要のない桁が存在する。この桁は、単に配線で形成され、加算器は配置されない。したがって、この第２次４：２加算回路５ｄは、他の第２次４：２加算回路よりもサイズが小さくされる。これについては後に詳細に説明する。
【００６９】
この乗算アレイにおいては、ブースセレクタ３ａ−３αならびに４：２加算回路４ａ−４ｇ、５ａ−５ｄ、６ａ，６ｂおよび７が配置される。分割アレイＤＷａにおいて信号伝搬のクリティカルパスは矢印で示すように、ブースエンコード回路１ａからブースセレクタ３ａの全シフト／インバータへ信号が伝達される時間と、ブースセレクタ３ａにおいて第０次部分積が生成されるまでに要する時間と、この第０次部分積が第１次４：２加算回路４ａで加算されて第１次部分積を生成する時間と、この第１次部分積が第２次４：２加算回路５ａで加算されて第２次部分積が生成される時間と、この第２次部分積が第３次４：２加算回路６ａで加算されて第３次部分積が生成される時間と、この第３次部分積が最終加算回路へ伝達されるのに要する時間の和の遅延を有する。
【００７０】
一方、分割アレイＤＷｂにおいて信号伝搬のクリティカルパスの遅延は、矢印で示すようにブースエンコード回路１ｏから選択制御信号および被乗数レジスタ回路２からの被乗数Ｘデータがブースセレクタ３ｏへ伝達されるのに要する時間、このブースセレクタ３ｏにおいて第０次部分積が生成されて第１次４：２加算回路４ｅへ伝達される時間、第１次４：２加算回路４ｅからの第１次部分積が生成され第２次４：２加算回路５ｃへ伝達される時間、および第２次４：２加算回路５ｃで第２次部分積が生成されて第３次４：２加算回路６ｂへ伝達されるのに要する時間と、この第３次４：２加算回路６ｂで第３次部分積が生成されて最終加算回路７へ伝達されるのに要する時間の和である。したがって、この分割アレイ構造においては、クリティカルパスは、先の図１８に示す構成に比べて大幅に短縮されており、また第３次４：２加算回路６ａおよび６ｂからの最終加算回路７までの距離は短く、高速で最終加算回路７から最終積Ｚを生成することができる。
【００７１】
つまり、ブースエンコーダ１をほぼ二等分割し、乗算アレイの分割アレイＤＷａおよびＤＷｂもほぼ乗算アレイの二等分割構造とすることにより、信号伝搬のクリティカルパスの配線長をほぼ図１８に示す乗算アレイのそれの１／２とすることができ、高速で乗算結果を生成することができる。
【００７２】
図３は、図２に示す分割アレイＤＷｂのワレスツリーの構成を概略的に示す図である。図３において、この分割アレイＤＷｂにおいてブースセレクタ３ｏ−３αにより生成された第０次部分積は、第１段加算回路４ｅ，４ｆおよび４ｇにより加算される。第１段加算回路４ｅおよび４ｆの生成する第２次部分積が、第２段加算回路５ｃで加算される。一方、第２段加算回路５ｄは、第１段加算回路４ｇと第０次部分積とを加算する。
【００７３】
これらの第２段加算回路５ｃおよび５ｄが生成した第２次部分積が第３段加算回路６ｂで加算され、第３次部分積（最終部分積）が形成される。
【００７４】
したがって、このツリー状加算により、第０次部分積から、第１次、第２次および第３次と生成される部分積の数を低減しかつ加算回路の段数低減によりキャリー伝搬の経路が短縮される。各段において並列に加算動作が実行される。
【００７５】
図４は、この第２段加算回路５ｂに対する部分積の構成を概略的に示す図である。図４においては、最上位ビットＭＳＢ側で、各部分積が位置合わせされている状態を一例として示す。ブースセレクタ３ｗ−３ｚにより第０次部分積が生成される（図１８参照）。第２次ブースアルゴリズムにおいては、各部分積は、２ビットずつその位置が異なっている。したがって、ブースセレクタ３ｗ、３ｘ、３ｙおよび３ｚでそれぞれ生成される第０次部分積は、２桁ずつ位置がずれている。加算時においては、これらの桁合わせをして加算が行なわれる。加算回路４ｇは、ブースセレクタ３ｗ−３ｚよりも、ビット幅が２つ大きい。一方、ブースセレクタ３αが生成する第０次部分積は、ブースセレクタ３ｚが生成する第０次部分積よりも２桁上位の部分積である。したがって、第１段加算回路（第１次４：２加算回路）４ｇにおいては、下位に対応の桁が存在しない４：２加算回路においては、単に２入力しか与えられない場合、２入力はそのまま出力として出力されるため、単に配線が設けられるだけである。したがって、第２段加算回路５ｄにおいては、このブースセレクタ３αの各桁位置に応じて、４：２加算器を設け、第１段加算回路４ｇの生成する第０次部分積とブースセレクタ３αの生成する第０次部分積の加算を行なう。したがって第２次４：２加算回路５ｄ（第２段加算回路）において加算する必要がない桁が存在するため、乗算アレイ内において、第２次４：２加算回路５ｄのビット幅が、ブースセレクタ３αのビット幅と同じとされ、これにより、できるだけ乗算アレイのビット幅を狭くする。しかしながら、一般にワレスツリーにおいてこのツリー状の加算が進むにつれてその加算結果のビット幅が大きくなり、ビット幅は拡張される。したがって図２に示すように、乗算アレイにおいては、各加算回路の水平方向の幅が不規則に分布する。
【００７６】
以上のように、この発明の実施の形態１に従えば、ワレスツリー型乗算アレイを２分割し、それぞれで個々に乗算を行なった後、最終加算を行なっており、信号伝搬のクリティカルパスの配線長が半減され、高速で乗算を行なうことができる。
【００７７】
［実施の形態３］
図５は、この発明の実施の形態３に従う乗算装置のアレイ部の構成を概略的に示す図である。図５において、この乗算装置は、乗算アレイが２つの分割アレイＤＷａおよびＤＷｂに分割される。この分割アレイＤＷａおよびＤＷｂの間に、最終加算回路７が配置される。この構成は、先の図２に示す実施の形態２の構成と同じである。本実施の形態２においては、さらに、この最終加算回路７に隣接して、分割アレイＤＷａおよびＤＷｂの間に被乗数Ｘを受けて、ブースセレクタ３ａ−３αへ共通に被乗数データを与える被乗数レジスタ回路２が配置される。被乗数レジスタ回路２は、したがって、分割アレイＤＷａおよびＤＷｂに対し反対方向に被乗数データを伝達する。
【００７８】
分割アレイＤＷａおよびＤＷｂに対応して、ブースエンコーダ１も、２つの分割エンコーダ１Ａおよび１Ｂに分割される。
【００７９】
この図５に示す構成において、分割アレイＤＷａにおけるクリティカルパスは、矢印で示すように、被乗数レジスタ回路２からブースセレクタ３ａに被乗数データが伝達されされ、そのブースセレクタ３ａにおいて第０次部分積が生成され第１次４：２加算回路４ａへ第０次部分積が伝達される経路、この第１次４：２加算回路４ａにおいて第１次部分積が形成されて第２次４：２加算回路５ａへ伝達される経路、および第２次４：２加算回路５ａにおいて生成された第２次部分積が第３次４：２加算回路６ａへ与えられる経路、およびこの第３次４：２加算回路６ａから第３次部分積が形成されて最終加算回路７へ与えられる経路である。
【００８０】
一方、分割アレイＤＷｂにおいてクリティカルパスは、被乗数レジスタ回路２からの被乗数データがブースセレクタ３ｏへ伝達される経路、このブースセレクタ３ｏにおいて、分割ブースエンコーダ１Ｂからの対応の選択制御信号に従って第０次部分積を生成する経路、この第０次部分積が第１次４：２加算回路４ｅへ伝達される経路、第１次４：２加算回路４ｅから第１次部分積が第２次４：２加算回路５ｃへ伝達される経路、この加算回路５ｃからの第２次部分積が第３次４：２加算回路６ｂへ伝達される経路、および第３次４：２加算回路５ｄにおいて第３次部分積が生成されて最終加算回路７へ伝達される経路である。
【００８１】
したがってこの図５に示す分割アレイ構造においては、被乗数レジスタ回路２からの被乗数データは分割アレイＤＷａおよびＤＷｂそれぞれを伝達されるだけである。被乗数データをブースセレクタ３ａ−３αへ伝達するために必要とされる時間を短縮することができ、応じて、信号伝搬遅延を低減して、高速で乗算を行なって乗算結果Ｚを生成することができる。他の構成は、図２に示す構成と同じである。
【００８２】
以上のように、この発明の実施の形態３に従えば、分割アレイの間に被乗数レジスタ回路を最終加算回路に隣接して配置しており、被乗数データ伝達経路の配線長を短くすることができ、応じて乗算時における信号伝搬のクリティカルパスの配線長を短縮することができ、高速の演算を行なうことができる。
【００８３】
［実施の形態４］
図６は、この発明の実施の形態４に従う乗算装置の構成を概略的に示す図である。図６に示す構成においても、先の図２に示す実施の形態１と同様、乗算アレイは乗数Ｙの特定のビット位置で、分割アレイＤＷａおよびＤＷｂに分割される。これらの分割アレイＤＷａおよびＤＷｂの間に最終加算回路７が配置される。分割アレイＤＷａおよびＤＷｂにおいて、ブースセレクタ３ａ−３α、第１次４：２加算回路４ａ−４ｇ、第２次４：２加算回路５ａ−５ｄ、および第３次４：２加算回路、および最終加算回路７は、その一方端が整列して配置される。ワレスツリーにおいては、そのツリー内を加算信号が伝搬するにつれ、加算回路のビット幅が大きくなる。しかしながら、この分割アレイＤＷａおよびＤＷｂのように、第１段加算回路、第２段加算回路および第３段加算回路を順次配置するのではなく、この加算結果の信号伝搬方向に沿って、第１次４：２加算回路、第２次４：２加算回路および第３次４：２加算回路を配置する構成の場合、これらの加算回路の幅は、不規則に変化することになる。この加算回路のはみ出し領域に、分割アレイＤＷａおよびＤＷｂに対応して、分割ブースエンコーダ１ａおよび１ｂを配置する。分割ブースエンコーダ１ａおよび１ｂは、最終加算回路７を間に挟むように配置される。
【００８４】
分割アレイ構造においては、中央部に（分割アレイの境界領域）に最終加算回路が配置され、その最終加算回路７の両側に、最終部分積生成回路（第３段加算回路）が配置される。したがって、この乗算アレイの中央領域において分割アレイ内の加算回路のはみ出し部分が集中することになる。この領域に隣接して、分割ブースエンコーダ１ａおよび１ｂを配置することにより、ブースエンコーダ１のブースエンコード回路１ａ−１αのサイズを同じとして配置することができ、はみ出し領域を効率的に利用したサイズの小さな乗算装置を実現することができる。
【００８５】
また、分割アレイＤＷａおよびＤＷｂは、二等分割構成の場合、最終加算回路７を軸として線対称の形となり、加算回路のレイアウトが容易となり、また、このはみ出し領域の形状も線対称となるため、分割ブースエンコード１Ａおよび１Ｂを容易に配置することができる。
【００８６】
以上のように、この発明の実施の形態４に従えば、加算回路のはみ出し領域に隣接して分割ブースエンコーダを配置しており、面積利用効率の優れたサイズの小さな乗算装置を容易に実現することができる。また、実施の形態１と同様の効果も得ることができる。
【００８７】
なお、この実施の形態４においても、被乗数Ｘを受ける被乗数レジスタ回路２の、最上位ビット位置および最下位ビット位置はその両端のいずれの側にあってもよい。また、乗数Ｙ（Ｙ＜ｎ：０＞）は、分割ブースエンコーダ１Ａに対し、乗数データＹ＜ｋ：０＞が与えられ、分割ブースエンコーダ１Ｂに対し乗数データＹ＜ｎ：ｋ＋１＞が与えられる。各ブースエンコード回路が受ける乗数データビットの数は、用いられるブースアルゴリズムの数に応じて異なる。本実施の形態においては２次のブースアルゴリズムが用いられており、各ブースエンコード回路１ａ−１αそれぞれに対し、３ビットの乗数データが与えられる。この場合、配線により、分割ブースエンコード１Ｂに対し、上位ビット位置および下位ビット位置が変更される。
【００８８】
［実施の形態５］
図７は、この発明の実施の形態５に従う乗算装置の構成を概略的に示す図である。この図７に示す乗算装置においては、先の実施の形態３と同様、分割アレイＤＷａおよびＤＷｂの間に、最終加算回路７に隣接して、被乗数レジスタ回路２が配置される。分割アレイＤＷａおよびＤＷｂにおいては、ブースセレクタ３ａ−３αおよび第１段−第３段加算回路が一端を整列して配置される。他方端の加算回路の端部が不規則に配置される領域に、分割ブースエンコーダ１Ａおよび１Ｂが、それぞれ分割アレイＤＷａおよびＤＷｂに対応して配置される。この分割ブースエンコーダ１Ａおよび１Ｂは、最終加算回路７を間に挟むように配置される。この図７に示す構成においては、先の実施の形態３の効果に加えて、さらに、加算回路が不規則にはみ出す領域に分割ブースエンコーダ１Ａおよび１Ｂを配置しており、それらの分割ブースエンコーダ１Ａおよび１Ｂのブースエンコード回路のサイズをすべて等しくして配置することができ、また最終加算回路７に関して分割アレイの構造が線対称であり、レイアウトが容易となる。したがって、面積利用効率の優れたサイズの小さい高速演算を行なうことのできる乗算装置を実現することができる。
【００８９】
［実施の形態６］
図８は、この発明の実施の形態６に従う乗算装置の構成を概略的に示す図である。図８において、乗算アレイが並列に配置される２つの分割アレイＤＷｃおよびＤＷｄに分割される。分割アレイＤＷｃは、ブースセレクタ３ａ−３ｎ、第１次４：２加算回路４ａ、第２次４：２加算回路５ａ、および第３次４：２加算回路６ａを含む。分割アレイＤＷｄは、ブースセレクタ３ｏ−３αと、第１次４：２加算回路４ｅ−４ｇと、第２次４：２加算回路５ｃおよび５ｄと、第３次４：２加算回路６ｂを含む。これらの分割アレイＤＷｃおよびＤＷｄにおいては、そのアレイ境界領域において各ブースセレクタおよび４：２加算回路の端部が整列して配置される。
【００９０】
分割アレイＤＷｄのブースセレクタ３ｏに対面して、被乗数レジスタ回路２が配置され、分割アレイＤＷｄおよびＤＷｃに被乗数Ｘのデータを共通に与える。
【００９１】
ブースエンコーダ１は、この分割アレイＤＷｃおよびＤＷｄの並列配置に対応して、２つの分割ブースエンコーダ１Ａおよび１Ｂに分割される。分割ブースエンコーダ１Ａは、分割アレイＤＷｃの、加算回路の突出する領域に対面して配置される。この分割ブースエンコーダ１Ａにおいては、第２次４：２加算回路５ａが、ブースセレクタよりもそのビット幅が長く、この第２次４：２加算回路５ａと衝突するのを防止するため、加算回路４ｂおよび５ａと対面する領域においてブースエンコード回路の長さ方向のレイアウトの幅が広くされる。また、第１次４：２加算回路４ａおよび４ｂの間のブースセレクタに対面する領域においてブースエンコーダの幅方向の長さが長くされる。これらのブースエンコード回路を、この分割アレイＤＷｃの突出領域の形状に応じてレイアウトし、ブースエンコード回路が、それぞれブースセレクタと対向するように配置される。
【００９２】
一方、分割アレイＤＷｄに対して、分割ブースエンコーダ１Ｂは、第２次４：２加算回路５ｃを間に挟むようにさらにサブ分割ブースエンコーダ１ＢＡおよび１ＢＢに分割される。この分割アレイＤＷｄにおいては、第２次４：２加算回路２のビット幅は、ブースセレクタのビット幅と同じであり、この第２次４：２加算回路５ａに対面する領域をブースエンコード回路配置領域として利用することができる。したがってこの分割ブースエンコーダ１Ｂにおいては、各ブースエンコード回路のサイズを同じとし、基本レイアウトを有する回路セルを規則的に配置して、設計およびレイアウトを容易とし、また、第２次４：２加算回路５ｃを間に挟むように分割サブブースエンコーダ１ＢＡおよび１ＢＢを配置する。これにより、分割アレイＤＷｂの加算回路の突出領域を利用して効率的にブースエンコーダを配置することができる。また、乗算装置自体のはみ出し領域がなく、小占有面積の乗算装置が実現される。
【００９３】
この分割アレイＤＷｂにおいて、ブースセレクタ３ｏ−３αおよび加算回路の一方端部は、分割アレイ境界領域においては整列して配置される。
【００９４】
また、被乗数レジスタ回路２の突出もできるだけ避けるために、長さの短い分割ブースエンコーダ１Ｂと対面するように、この被乗数レジスタ回路２が配置される。
【００９５】
分割アレイＤＷｄおよびＤＷｃに対し共通に最終加算回路７が配置される。
この図８に示す乗算装置の構成においては、分割アレイＤＷｄおよびＤＷｃにおいて信号の伝搬方向はすべて同じであり、最終加算回路７に向かって加算結果が伝達される。しかしながら、分割アレイＤＷｃおよびＤＷｄは個々に部分積加算演算を行なっており、そのクリティカルパスは、分割アレイＤＷｃおよびＤＷｄそれぞれにおけるクリティカルパスで与えられる。したがって、この分割アレイＤＷｄおよびＤＷｃを並列に配置する構成においても、クリティカルパスの配線長は、従来の装置に比べて半減され、高速の乗算を実現することができる。
【００９６】
なおこの図８に示す構成において、乗数Ｙの部分乗数ＹＡおよびＹＢは、いずれが上位ビットであってもよい。また、被乗数レジスタ回路２においていずれが上位ビット側であってもよい。分割ブースエンコーダ１Ａおよび１Ｂにおいては、この最終加算回路７に近い位置が、上位ビット位置となる。
【００９７】
以上のように、この発明の実施の形態６に従えば、乗算アレイの分割アレイに分割して並列に配置し、その分割アレイの加算回路のはみ出し領域に対面してブースエンコーダを分割して配置しており、クリティカルパスが半減されて、高速乗算が行なわれる乗算装置が実現される。また、この分割アレイのはみ出し領域に一方端を整列させて分割エンコーダを配置しており、面積利用効率の優れた小占有面積の乗算装置を実現することができる。
【００９８】
［実施の形態７］
図９は、この発明の実施の形態７に従う乗算装置の構成を概略的に示す図である。図７においても、乗算アレイが、分割アレイＤＷｃおよびＤＷｄに分割され、これらの分割アレイＤＷｃおよびＤＷｄが並列に配置される。被乗数レジスタ回路２が、分割アレイＤＷｄのブースセレクタ３ｏに対面して配置され、これらの分割アレイＤＷｃおよびＤＷｄに共通に被乗数Ｘのデータを与える。分割アレイＤＷｃおよびＤＷｄは、これらの互いに対向する端部（境界領域から離れた端部）が整列して配置される。すなわち分割アレイＤＷｃにおいては、ブースセレクタ３ａ−３ｎ、４：２加算回路４ａ−４ｄ、５ａ，５ｂおよび６ａの境界領域から離れた端部が整列して配置される。分割アレイの境界領域に、加算回路のはみ出し領域が存在する。分割アレイＤＷｄにおいても、同様、ブースセレクタ３ｏ−３α、４：２加算回路４ｅ−４ｇ、５ｄおよび６ａの分割アレイ境界領域から離れた端部が整列して配置される。分割アレイ境界領域においては、この加算回路のはみ出し領域が存在する。これらの分割アレイＤＷｃおよびＤＷｄそれぞれに対面して、この分割アレイ境界領域に分割ブースエンコーダ１Ａおよび１Ｂが配置される。分割ブースエンコーダ１Ａは、先の図８に示す構成と同様、この分割アレイＤＷｃの不規則なはみ出し領域に応じて、そのブースエンコード回路のレイアウトが調整される。したがって、この分割ブースエンコーダ１Ａは、分割アレイＤＷｃのはみ出し領域に対応して凹み領域を有し、また分割アレイＤＷｃの後退領域に対応してはみ出し領域を有する。
【００９９】
一方、分割アレイＤＷｄに対面して、この分割アレイ境界領域に配置される分割ブースエンコーダ１Ｂは、第１次４：２加算回路４ｆを間に挟むようにサブブースエンコーダ１ＢＡおよび１ＢＢにさらに分割される。分割ブースエンコーダ１Ａおよび１Ｂの互いに対面する端部は、それぞれ整列して配置される。
【０１００】
この図９に示す構成においても、分割アレイＤＷｃおよびＤＷｄの構成は図８に示す構成と同じであり、クリティカルパスの配線長が低減され、高速乗算が可能となる。
【０１０１】
また、この分割アレイ境界領域にブースエンコーダ１を配置することにより、この境界領域に乗数Ｙのデータを伝達する配線を集中して配設することができ、乗数Ｙのデータビットを伝達する信号線のレイアウトが容易となる。
【０１０２】
また、分割アレイＤＷｃおよびＤＷｄの境界領域と対向する端部が整列して配置されており、この乗算装置内における空き領域が低減され、面積利用効率の優れた乗算装置を実現することができる。
【０１０３】
［実施の形態８］
図１０は、この発明の実施の形態８に従う乗算装置の全体の構成を概略的に示す図である。この図１０に示す乗算装置は、図８に示す乗算装置と、以下の点においてその構成が異なっている。すなわち、分割アレイＤＷｃおよびＤＷｄの間の領域に、被乗数Ｘデータを格納する被乗数レジスタ回路２が配置される。この被乗数レジスタ回路２は、分割アレイＤＷｃおよびＤＷｄの高さ方向にできるだけ合わせるため、複数列（２列）に配置されるレジスタを備える分割構造とされる。
【０１０４】
他の構成は、図８に示す構成と同じである。
この図１０に示す構成に従えば、被乗数レジスタ回路２から、分割アレイＤＷｃおよびＤＷｄにおけるブースセレクタへの配線長が等しくなる。したがって、分割アレイＤＷｃおよびＤＷｄにおけるクリティカルパスの配線遅延を等しくすることができ（図中矢印で示す）、分割アレイＤＷｃおよびＤＷｄのクリティカルパスの配線長を実質的に等しくすることにより（二等分割した場合）、より高速の乗算を行なうことができる。また、図８に示す乗算装置と同様の効果が得られる。
【０１０５】
［実施の形態９］
図１１はこの発明の実施の形態９に従う乗算装置の全体の構成を概略的に示す図である。この図１１に示す乗算装置は、図９に示す乗算装置と以下の点においてその構成が異なる。すなわち、分割アレイＤＷｄおよびＤＷｃの境界領域において、分割ブースエンコーダ１Ａおよび１Ｂの間に、被乗数レジスタ回路２が配置される。この被乗数レジスタ回路２は、高さを、分割アレイＤＷｃおよびＤＷｄに合わせるため、レジスタ（被乗数Ｘの各ビットを格納するレジスタ）が複数列（２列）に整列して配置される。他の構成は図９に示す構成と同じである。
【０１０６】
この図１１に示す構成の場合においても、被乗数Ｘを格納する被乗数レジスタ回路２の出力データビットは、分割アレイＤＷｃおよびＤＷｄに対し、その配線長を等しくすることができる。したがってこの分割アレイＤＷｃおよびＤＷｄが、ほぼ二等分割される場合、これらの分割アレイＤＷｃおよびＤＷｄのクリティカルパスの配線長をほぼ等しくすることができ、このクリティカルパスの配線長のアンバランスに起因する演算の遅れ（タイミングの待ち合わせ等）をなくすことができ、高速で乗算を行なう乗算装置を得ることができる。また、先の図９に示す構成と同様の効果も得ることができる。
【０１０７】
［他の適用例］
上述の実施の形態の説明においては、２次のブースアルゴリズムが用いられている。しかしながら、このブースアルゴリズムは、たとえば３次のブースアルゴリズムなどの他の次数のブースアルゴリズムであってもよい。
【０１０８】
また、単に、ブースアルゴリズムを利用せずに、ワレスツリーのみを用いる乗算装置であってもブースエンコーダおよび被乗数レジスタの配置は適用可能である。
【０１０９】
実施の形態６から９のように、並列に分割アレイを配置する場合、生成される部分積の上位ビット位置は、いずれであってもよい。最下位ビット端で、その各回路の端部が整列して配置されてもよく、また最上位ビット側で、各回路の端部が整列して配置されてもよい。分割アレイＤＷｄおよびＤＷｃにおいては、最終加算回路７において加算結果（積）Ｚを生成するために、部分積のビット位置は線対称ではなく、並行移動の形、すなわち分割アレイ境界側で、一方の分割アレイが最下位ビット位置、他方の分割アレイにおいては最上位ビット位置となり、対向する端部は、その逆となる。
【０１１０】
また、分割アレイに分割する乗数ビットの位置は任意であり、クリティカルパスが短縮されればよい。
【０１１１】
【発明の効果】
以上のように、この発明に従えば、乗算装置のクリティカルパスを分割アレイ構成により短縮することができ、高速で乗算を行なうことのできる乗算装置を実現することができる。また、分割アレイ構成により、部分積加算回路のはみ出し部分の分布を規則的にすることができ、このはみ出し領域に、ブースエンコーダを容易にレイアウトすることができ、乗算装置のサイズを低減することができる。
【０１１２】
すなわち、請求項１に係る発明に従えば、ブースアルゴリズムに従って乗算を行なうワレスツリー型乗算アレイを、乗数の特定のビット位置で分割し、分割アレイそれぞれにおいて部分積を生成するように構成しているため、部分積加算結果の伝搬経路のクリティカルパスの配線長を短くすることができ、高速で乗算を行なうことのできる乗算装置を得ることができる。
【０１１３】
また、最終加算回路を分割アレイの間に配置しており、この最終加算回路に向かって各分割アレイが加算結果信号を伝搬しており、最終部分積を最終加算回路へ伝達する経路が短くなり、高速で乗算を行なうことができる。
【０１１４】
請求項２に係る発明に従えば、ブースエンコーダを、部分積加算回路のはみ出し領域に対面して配置しており、乗算装置の面積を有効に利用することができ、乗算装置のサイズを低減することができる。
【０１１５】
請求項３に係る発明に従えば、ブースエンコーダが最終加算回路を間に挟むようにさらに分割されており、より乗算装置のサイズを低減することができる。
【０１１６】
請求項４に係る発明に従えば、被乗数を発生する被乗数発生回路を分割アレイの間に配置しており、分割アレイへの被乗数発生回路からの配線長が等しくなり、この分割アレイに対する信号伝搬のクリティカルパスの遅延を等しくすることができ、タイミングマージンを大きくすることができる。
【０１１７】
請求項５に係る発明に従えば、分割アレイを並列に配置しており、加算結果信号伝搬のクリティカルパスの配線長を短くすることができ、応じて高速で乗算する乗算装置を得ることができる。
【０１１８】
請求項６に係る発明に従えば、ブースエンコーダを分割アレイ各々に対面するように分割して配置しており、各分割アレイに対する、ブースエンコード信号（選択制御信号）の伝搬遅延を等しくすることができる。また、分割アレイおよび分割ブースエンコーダを整列して配置することができ、小サイズの乗算装置を得ることができる。
【０１１９】
請求項７に係る発明に従えば、分割アレイに対応してブースエンコーダを分割し、かつ対応の分割アレイの部分積加算回路のはみ出し領域に対面して分割ブースエンコーダを配置しており、乗算装置の面積を効率的に利用して、小サイズの乗算装置を実現することができる。
【０１２０】
請求項８に係る発明に従えば、分割ブースエンコーダを、分割アレイの両側に配置しており、乗算装置の部分積加算回路のはみ出し領域を有効に利用し、ブースエンコーダを配置して、小サイズの乗算装置を実現することができる。
【０１２１】
請求項９に係る発明に従えば、分割ブースエンコーダを分割アレイの間に配置しており、分割ブースエンコーダへ乗算を与える配線のレイアウトが集中的にこの分割アレイ領域に配置することができ、配線レイアウトが容易となる。
【０１２２】
請求項１０に係る発明に従えば、被乗数データを発生する回路を分割アレイの一方側に対面して配置しており、通常の乗算アレイの被乗数データ発生回路のレイアウトを利用することができる。
【０１２３】
請求項１１に係る発明に従えば、被乗数データ発生回路を分割アレイの間の領域に配置しており、分割アレイに対する被乗数データの伝搬遅延を各分割アレイに対して等しくすることができる。
【０１２４】
請求項１２に係る発明に従えば、分割被乗数データ発生回路を分割アレイの間の領域に配置しており、各分割アレイに対する被乗数データの伝搬遅延を分割アレイそれぞれに対し等しくすることができる。
【０１２５】
請求項１３に係る発明に従えば、分割エンコーダに隣接して被乗数データ発生回路を配置しており、配線をこの領域に集中させることができ、配線レイアウトが簡略化される。
【０１２６】
請求項１４に係る発明に従えば、被乗数発生回路を分割アレイの高さに合わせて分割構造としており、小占有面積の乗算装置が得られる。
【０１２７】
請求項１５に係る発明に従えば、分割アレイに共通に最終加算回路を設けており、各分割アレイから最終加算回路への信号伝搬遅延を最小とすることができ、高速乗算をする乗算回路を得ることができる。
【図面の簡単な説明】
【図１】  （Ａ）および（Ｂ）は、この発明の実施の形態１に従う乗算装置の原理的構成を示す図である。
【図２】  この発明の実施の形態２に従う乗算装置の全体の構成を概略的に示す図である。
【図３】  図２に示す乗算装置の分割アレイの加算ツリーを示す図である。
【図４】  図２に示す乗算装置の下方分割アレイの加算回路のビット幅とブースセレクタのビット幅との対応を示す図である。
【図５】  この発明の実施の形態３に従う乗算装置の全体の構成を概略的に示す図である。
【図６】  この発明の実施の形態４に従う乗算装置の全体の構成を概略的に示す図である。
【図７】  この発明の実施の形態５に従う乗算装置の全体の構成を概略的に示す図である。
【図８】  この発明の実施の形態６に従う乗算装置の全体の構成を概略的に示す図である。
【図９】  この発明の実施の形態７に従う乗算装置の全体の構成を概略的に示す図である。
【図１０】  この発明の実施の形態８に従う乗算装置の全体の構成を概略的に示す図である。
【図１１】  この発明の実施の形態９に従う乗算装置の全体の構成を概略的に示す図である。
【図１２】  （Ａ）は従来のキャリーセーブ方式並列乗算回路の構成を概略的に示し、（Ｂ）は、（Ａ）に示す乗算単位回路の構成を概略的に示す図である。
【図１３】  従来の桁内飛越し加算型キャリーセーブ加算方式乗算回路の構成を概略的に示す図である。
【図１４】  従来の改良されたキャリーセーブ方式乗算回路の構成を概略的に示す図である
【図１５】  従来のワレスツリー型乗算回路の構成を概略的に示す図である。
【図１６】  図１５に示すワレスツリー部の構成を概略的に示す図である。
【図１７】  図１６に示す加算回路の構成を概略的に示す図である。
【図１８】  本発明が適用される５４ビット乗算回路の構成を概略的に示す図である。
【符号の説明】
ＤＷＡ−ＤＷＤ  分割ワレスツリーアレイ、１  ブースエンコーダ、２  被乗数レジスタ回路、１ａ−１α  ブースエンコード回路、３ａ−３α  ブースセレクタ、４ａ−４ｇ  第１次４：２加算回路、５ａ−５Ｄ  第２次４：２加算回路、６ａ，６ｂ  第３次４：２加算回路、７  最終加算回路、ＤＷａ−ＤＷｄ  分割アレイ、１Ａ，１Ｂ  分割ブースエンコーダ、１ＢＡ，１ＢＢ  分割サブブースエンコーダ。
【図１】
0004282193.tif 000002
【図２】
0004282193.tif 000003
【図３】
0004282193.tif 000004
【図４】
0004282193.tif 000005
【図５】
0004282193.tif 000006
【図６】
0004282193.tif 000007
【図７】
0004282193.tif 000008
【図８】
0004282193.tif 000009
【図９】
0004282193.tif 000010
【図１０】
0004282193.tif 000011
【図１１】
0004282193.tif 000012
【図１２】
0004282193.tif 000013
【図１３】
0004282193.tif 000014
【図１４】
0004282193.tif 000015
【図１５】
0004282193.tif 000016
【図１６】
0004282193.tif 000017
【図１７】
0004282193.tif 000018
【図１８】
0004282193.tif 000019