(57)【要約】【課題】乗算論理規模の増大を抑えて反復乗算による乗算速度を高速化する。【解決手段】乗算器は、部分積生成部（２）で部分積（ＰＰ０〜ＰＰ８）を生成し、該部分積に対し部分積加算部（３）で桁上げ保存加算を行い、サムデータ（Ｓ）と桁上げデータ（Ｃ）を生成し、サムデータと桁上げデータを加算回路（４）で加算し、Ｎビットの被乗数とＭ／Ｌビットの部分乗数との部分乗算をＬサイクル繰返してＮビットの被乗数とＭビットの乗数の乗算結果を取得可能であり、ｉサイクル目で利用する部分乗数と被乗数とに関する桁上げ保存加算結果であるＮ＋Ｍ／Ｌビットのサムデータと桁上げデータの夫々の上位Ｎビット（未確定部分）と、ｉサイクル目の桁上げ保存加算結果であるサムデータと桁上げデータの夫々の下位Ｍ／Ｌビット（確定部分）の加算により生ずる桁上げ情報とを、第１帰還経路２０と第２帰還経路２１を介してｉ＋１サイクル目の桁上げ保存加算に加える。【選択図】        図１
2005055950.tif 000002
【特許請求の範囲】
【請求項１】
ブースの論理によって部分積を生成する部分積生成部と、前記部分積の加算を行ってサムデータと桁上げデータを出力する部分積加算部と、前記サムデータと桁上げデータを加算する加算回路とを備え、被乗数に乗算する乗数を部分乗数に分けて複数サイクルで乗算可能な乗算器であって、
前記複数サイクルの所定サイクルで利用する部分乗数と被乗数に関し前記部分積加算部で得られた部分積加算結果であるサムデータと桁上げデータの夫々の未確定部分を前記部分積加算部に帰還する第１帰還経路と、
前記所定サイクルで得られた部分積加算結果であるサムデータと桁上げデータの夫々の確定部分を前記加算回路で加算し、加算結果により生ずる桁上げ情報を前記部分積加算部に帰還する第２帰還経路とを有し、
前記部分積加算部は、前記所定サイクルの次のサイクルにおける部分乗数と被乗数とに関する部分積加算に、前記第１帰還経路を介して供給される前記未確定部分及び前記第２帰還経路を介して供給される桁上げ情報を加えることを特徴とする乗算器。
【請求項２】
前記部分積加算部はワレス木構造を有することを特徴とする請求項１記載の乗算器。
【請求項３】
前記加算回路はキャリー・ルック・アヘッド形式で加算を行うことを特徴とする請求項２記載の乗算器。
【請求項４】
被乗数は３２ビット、乗数は３２ビット、部分乗数は１６ビット、複数サイクルは２サイクル、加算回路は４８ビット加算回路であることを特徴とする請求項３記載の乗算器。
【請求項５】
乗算器と乗算器を制御する制御部とを有するデータ処理装置であって、
前記乗算器は、ブースの論理による部分積に桁上げ保存加算を行ってサムデータと桁上げデータを生成し、生成した前記サムデータと桁上げデータを加算して、Ｎビットの被乗数とＭ／Ｌビットの部分乗数との部分乗算をＬサイクル繰返してＮビットの被乗数とＭビットの乗数の乗算結果を取得可能であり、
ｉサイクル目で利用する部分乗数と被乗数とに関する前記桁上げ保存加算結果であるＮ＋Ｍ／Ｌビットのサムデータと桁上げデータの夫々の上位Ｎビットと、前記ｉサイクル目の桁上げ保存加算結果であるサムデータと桁上げデータの夫々の下位Ｍ／Ｌビットの加算により生ずる桁上げ情報とを、ｉ＋１サイクル目の前記桁上げ保存加算に加えることを特徴とするデータ処理装置。
【請求項６】
乗算器と乗算器を制御する制御部とを有するデータ処理装置であって、
前記乗算器は、ブースの論理によって部分積を生成する部分積生成部と、前記部分積の桁上げ保存加算を行ってサムデータと桁上げデータを生成する部分積加算部と、前記サムデータと桁上げデータを加算する加算回路とを備え、Ｎビットの被乗数とＭ／Ｌビットの部分乗数との部分乗算をＬサイクル繰返してＮビットの被乗数とＭビットの乗数の乗算結果を取得可能であり、
前記部分積加算部は、ｉサイクル目で利用する部分乗数と被乗数とに関する前記桁上げ保存加算結果であるＮ＋Ｍ／Ｌビットのサムデータ及び桁上げデータの夫々の上位Ｎビットと、前記ｉサイクル目の桁上げ保存加算結果であるサムデータ及び桁上げデータの夫々の下位Ｍ／Ｌビットに対する前記加算回路による加算により生ずる桁上げ情報とを、ｉ＋１サイクル目の前記桁上げ保存加算に加えることを特徴とするデータ処理装置。
【請求項７】
Ｍ＝３２、Ｎ＝３２、Ｌ＝２であり、前記桁上げ保存加算結果であるサムデータと桁上げデータの夫々は４８ビットであることを特徴とする請求項５又は６記載のデータ処理装置。
【請求項８】
前記制御部は中央処理装置であることを特徴とする請求項５又は６記載のデータ処理装置。
【請求項９】
１個の半導体基板に形成されていることを特徴とする請求項５又は６記載のデータ処理装置。
【請求項１０】
コンピュータが読取って論理設計に用いることが可能な、回路モジュールの論理記述データを記録した記録媒体であって、前記論理記述データは、回路モジュールを構成する回路ブロックとして乗算器の論理記述データを含み、
前記乗算器は、ブースの論理による部分積に桁上げ保存加算を行ってサムデータと桁上げデータを生成し、生成した前記サムデータと桁上げデータを加算して、被乗数と部分乗数との部分乗算を複数サイクル繰返して被乗数と乗数の乗算結果を取得可能であって、
ｉサイクル目で利用する部分乗数と被乗数とに関する前記桁上げ保存加算結果であるサムデータと桁上げデータの夫々の未確定部分と、前記ｉサイクル目の桁上げ保存加算結果であるサムデータと桁上げデータの夫々の確定部分の加算により生ずる桁上げ情報とを、ｉ＋１サイクル目の前記桁上げ保存加算に加えることを特徴とする論理記述データの記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、反復乗算による乗算技術に関し、乗算器、乗算器を有するデータ処理装置例えばマイクロコンピュータ、更には乗算器の論理記述データを記録した記録媒体に適用して有効な技術に関する。
【０００２】
【従来の技術】
反復乗算による乗算技術では、被乗数に乗算する乗数を部分乗数に分けて複数サイクルで乗算する。この反復乗算を行う第１の乗算器は、ブースの論理で生成した部分積を加算しサムデータと桁上げデータを生成する乗算器コアと、サムデータと桁上げデータを加算する加算回路を有し、ｉ＋１サイクルにおける部分乗数と被乗数とに関する部分積加算に、加算回路によるｉサイクル目の加算結果を当該サイクルでの部分乗算結果として加える（特許文献１の図１）。反復乗算を行う別の第２の乗算器は、ブースの論理で生成した部分積を加算しサムデータ（サム値）と桁上げデータを生成する乗算器コアと、サムデータと桁上げデータを加算する加算回路とを有し、乗算器コアはｉサイクル目の部分積加算結果であるサムデータと桁上げデータを入力側に帰還してｉ＋１サイクル目における部分乗数と被乗数とに関する部分積加算に加える（特許文献１の図２）。
【０００３】
【特許文献１】
特開平７−２７１５５７号公報（図１、図２）
【０００４】
【発明が解決しようとする課題】
第１の乗算器では、上記ｉ＋１サイクルに代表されるように、乗算器コアによる後のサイクルの部分積加算では前のサイクルの部分積加算結果に対する加算回路での加算結果を部分乗算結果として用いなければならないため、乗算器コアで部分積加算結果を得るのに必要な処理時間は、最初のサイクルに比べて後のサイクルの方が長くなり、その後のサイクルの演算時間に合わせて演算サイクル時間が決まり、結果として、乗算処理速度の高速化が阻まれることになる。
【０００５】
第２の乗算器では、乗算器コアによる部分積加算の反復処理では各部分積加算処理のサイクル時間は同じであるが、加算回路によるサムデータと桁上げデータの加算は乗算器コアによる反復加算が完了したときの部分積加算結果であるサムデータと桁上げデータに対して行うことになるから、加算回路のビット数が被乗数と乗数の積のビット数よりも少なければ加算処理を複数回に分けて行わなければならない。例えば３２×３２ビット乗算の場合、最終の部分積加算結果は６４ビットになるから、その後の加算を１回で完了するには６４ビットの加算回路が必要になり、３２ビットの加算回路では加算処理を２回に分けなければならず、乗算処理効率が低下する。ちなみに、３２×３２ビット乗算の場合、第１の乗算器では４８ビットの加算回路を採用すればよい。加算回路の論理規模の増大は半導体集積回路化されたマイクロコンピュータなどのチップ面積増大を招く。
【０００６】
本発明の目的は、論理規模の増大を招くこと無く反復乗算による乗算速度を高速化することができる乗算器を提供することにある。
【０００７】
本発明の別の目的は、チップ面積の小型化とデータ処理の高速化に寄与することができるデータ処理装置を提供することにある。
【０００８】
本発明の更に別の目的は、論理規模の増大を招くこと無く反復乗算による乗算速度を高速化する乗算器の設計容易化に資することができる論理記述データの記録媒体を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕本発明に係る乗算器は、ブースの論理によって部分積を生成する部分積生成部（２）と、前記部分積の加算を行ってサムデータと桁上げデータを出力する部分積加算部（３）と、前記サムデータと桁上げデータを加算する加算回路（４）とを備え、被乗数に乗算する乗数を部分乗数に分けて複数サイクルで乗算可能であって、前記複数サイクルの所定サイクルで利用する部分乗数と被乗数に関し前記部分積加算部で得られた部分積加算結果であるサムデータ（Ｓ）と桁上げデータ（Ｃ）の夫々の未確定部分を前記部分積加算部に帰還する第１帰還経路（２０）と、前記所定サイクルで得られた部分積加算結果であるサムデータと桁上げデータの夫々の確定部分を前記加算回路で加算し、加算結果により生ずる桁上げ情報を前記部分積加算部に帰還する第２帰還経路（２１）とを有する。前記部分積加算部は、前記所定サイクルの次のサイクルにおける部分乗数と被乗数とに関する部分積加算に、前記所定サイクルで前記第１帰還経路を介して供給される部分積加算結果のサムデータと桁上げデータ及び前記第２帰還経路を介して供給される桁上げ情報を加える。
【００１２】
上記手段によれば、前記部分積加算部は、第１帰還経路から帰還される部分積加算結果の未確定部分を次の部分積加算に加えるので、加算回路による加算結果を帰還して次の部分積加算に加える従来の第１乗算器に比べてサイクルタイムが短くなる。第１帰還経路から帰還される部分積加算結果の未確定部分だけを次の部分積加算に加えただけでは正しい部分乗算結果を当該次の部分積加算に加えることはできない。加算回路でサムデータと桁上げデータの夫々の確定部分を加算したときの桁上げ情報も次の部分積加算に加えることが必要である。この桁上げ情報の帰還は第２帰還経路を介して行う。よって、従来の第２乗算器のように全ビットの範囲で部分積加算を反復して最後にサムデータと桁上げデータを加算回路で加算することを要しないから、加算回路の論理規模を増大することを要しない。しかも、第２の帰還経路から桁上げ情報が帰還される前に、第１帰還経路から帰還される部分積加算結果を用いた次の部分積加算処理を開始することができるから、従来の第１乗算器に比べて乗算処理のサイクルタイムが短くなるのを保証することができる。尚、上記未確定部分及び確定部分とは、乗数と被乗数に対する最終的な乗算結果に対する確定及び未確定を考えるものとする。
【００１３】
本発明の具体的な形態として、前記部分積加算部は例えばワレス木（ワレスツリー）構造を有する。前記加算回路は例えばキャリー・ルック・アヘッド形式で加算を行う。被乗数が３２ビット、乗数が３２ビットの乗算を想定すると、複数サイクルが２サイクルのとき、部分乗数は１６ビット、前記加算回路は４８ビット加算回路である。
【００１４】
〔２〕本発明に係るデータ処理装置は、乗算器と乗算器を制御する制御部とを有する。前記乗算器は、ブースの論理による部分積に桁上げ保存加算を行ってサムデータと桁上げデータを生成し、生成した前記サムデータと桁上げデータを加算して、Ｎビットの被乗数とＭ／Ｌビットの部分乗数との部分乗算をＬサイクル繰返してＮビットの被乗数とＭビットの乗数の乗算結果を取得可能であり、ｉサイクル目で利用する部分乗数と被乗数とに関する前記桁上げ保存加算結果であるＮ＋Ｍ／Ｌビットのサムデータと桁上げデータの夫々の上位Ｎビット（未確定部分）と、前記ｉサイクル目の桁上げ保存加算結果であるサムデータと桁上げデータの夫々の下位Ｍ／Ｌビット（確定部分）の加算により生ずる桁上げ情報とを、ｉ＋１サイクル目の前記桁上げ保存加算に加える。
【００１５】
上記手段によれば、前記部分積加算部は、ｉサイクル目の部分積加算結果をｉ＋１サイクル目の部分積加算に加えるので、部分積加算結果であるサムデータと桁上げデータの加算結果をｉ＋１サイクル目の部分積加算に加える従来の第１乗算器に比べてサイクルタイムが短くなる。ｉサイクル目の部分積加算結果をｉ＋１サイクル目の部分積加算に加えただけでは正しい部分乗算結果を当該次の部分積加算に加えることはできない。ｉサイクル目で得られたサムデータと桁上げデータの確定部分を加算したときの桁上げ情報もｉ＋１サイクル目の部分積加算に加えられることになる。よって、従来の第２乗算器のように全ビットの範囲で部分積加算を反復して最後にサムデータと桁上げデータを加算することを要しないから、サムデータと桁上げデータを加算する回路の論理規模を増大することを要しない。しかも、ｉサイクル目のサムデータと桁上げデータの加算による所定の桁上げ情報が帰還される前に、ｉサイクル目のサムデータと桁上げデータを用いた次の部分積加算処理を開始することができるから、従来の第１乗算器に比べて乗算処理のサイクルタイムが短くなるのを保証することができる。
【００１６】
本発明の具体的な形態として、Ｍ＝３２、Ｎ＝３２、Ｌ＝２のとき、前記桁上げ保存加算結果であるサムデータと桁上げデータの夫々は４８ビットである。前記制御部は例えば中央処理装置である。データ処理装置は例えば１個の半導体基板に形成されて半導体集積回路化される。
【００１７】
〔３〕本発明に係る論理記述データの記録媒体は、コンピュータが読取って論理設計に用いることが可能な、回路モジュールの論理記述データを記録した記録媒体であって、前記論理記述データは、回路モジュールを構成する回路ブロックとして乗算器の論理記述データを含む。前記乗算器は、ブースの論理による部分積に桁上げ保存加算を行ってサムデータと桁上げデータを生成し、生成した前記サムデータと桁上げデータを加算して、複数ビット（Ｎビット）の被乗数と複数ビット（Ｍ／Ｌビット）の部分乗数との部分乗算を複数サイクル（Ｌサイクル）繰返して前記被乗数と乗数の乗算結果を取得可能であって、ｉサイクル目で利用する部分乗数と被乗数とに関する前記桁上げ保存加算結果である複数ビット（Ｎ＋Ｍ／Ｌビット）のサムデータと桁上げデータの夫々の未確定部分（上位Ｎビット）と、前記ｉサイクル目の桁上げ保存加算結果であるサムデータと桁上げデータの夫々の確定部分（下位Ｍ／Ｌビット）の加算により生ずる桁上げ情報とを、ｉ＋１サイクル目の前記桁上げ保存加算に加える。
【００１８】
この記録媒体に記録された論理記述データを用いることにより、論理規模の増大を招くこと無く反復乗算による乗算速度を高速化することができる乗算器の設計を容易化するのに資することができる。
【００１９】
【発明の実施の形態】
図１には反復乗算による乗算器の一例が示される。同図に示される乗算器１は、３２ビット×３２ビットの乗算処理を３２ビット×１６ビット×２サイクルで行う回路であって、ブースの論理によって被乗数Ａと乗数Ｂの３２ビットの部分積ＰＰ０〜ＰＰ８を生成する部分積生成部２と、前記部分積の桁上げ保存加算を行って夫々４８ビットのサムデータ（第１データ）Ｓと桁上げデータ（第２データ）Ｃを生成する部分積加算部３と、前記サムデータと桁上げデータを加算する加算回路４とを備える。
【００２０】
データラッチ５は３２ビットの被乗数Ａを保持する。データラッチ６は３２ビットの乗数データＢを２つに分け、第１部分乗算サイクルで下位１６ビットの部分乗数を、次の第２部分乗算サイクルで上位１６ビットの部分乗数に２回に分けて保持するレジスタである。
【００２１】
部分積生成部２は、データラッチの部分乗数を入力するブースエンコーダ７と、ブースエンコーダの出力と被乗数から部分積を生成する部分積生成回路８によって構成される。ブースエンコーダ７は２次のブースの方法によって生成部分積の個数を半分にしている。ブースエンコーダ７によるブースの方法については公知であるからその詳細な説明は省略するが、乗数の連続する左右ビットの論理値を判定する。部分積生成回路８はその判定結果にしたがって部分積の初期値に対するシフトや被乗数の加減算などを行って、夫々３２ビットの部分積ＰＰ０〜ＰＰ８を生成する。
【００２２】
部分積加算回路３は桁上げ保存加算器を用いた３−２加算回路（３−２ａｄｄｅｒ）１０〜１３と４−２加算回路（４−２ａｄｄｅｒ）１４〜１６によってワレス木（Ｗａｌｌａｃｅ  Ｔｒｅｅ）を構成し、部分積を加算して各ビット単位の部分積加算結果である夫々４８ビットのサムデータＳと桁上げデータＣを生成する。３−２加算回路１０〜１３は桁を合わせて３入力される部分積を加算する計算を桁上げ抜きの和と桁上げとを別々に求めて行う回路である。左右の２個の３−２加算回路１０，１１の出力は４−２加算回路１４で桁を合わせて加算され、左右の２個の３−２加算回路１２，１３の出力は４−２加算回路１５で桁を合わせて加算され、４−２加算回路１４，１５の出力はその後段の４−２加算回路１６で加算され、この４−２加算回路１６の出力が夫々４８ビットのサムデータＳと桁上げデータＣになる。部分積加算結果としてサムデータＳと桁上げデータＣを別々に用いるのは、加算を繰り返し行う場合、毎回全ビットの和を求めるより、各ビット単位のサム（和）と桁上げ情報（キャリー）を求めてから最後に全ビットのサムデータと桁上げデータの和を４−２加算器で求めた方が演算処理効率が良いからである。
【００２３】
データラッチ１８は４８ビットのサムデータＳをラッチし、データラッチ１９は４８ビットの桁上げデータＣをラッチする。
【００２４】
４８ビットのサムデータＳと桁上げデータＣの夫々の上位３２ビットＳ［４７：１６］（第３データ）とＣ［４７：１６］（第４データ）は第１帰還経路２０を介して前記３−２加算器１３に帰還される。前記３−２加算回路１３は第２部分乗算サイクルにおいて第１帰還経路２０からの入力を加算する。第１帰還経路２０から帰還されるサムデータＳと桁上げデータＣの夫々の上位３２ビットＳ［４７：１６］とＣ［４７：１６］は、第１部分乗算サイクルで得られる４８ビットのサムデータＳと桁上げデータＣの内で最終的な乗算結果に対する未確定部分として位置付けられる。
【００２５】
前記加算回路４はキャリー先見（キャリー・ルック・アヘッド）型の加算回路であり、データラッチ１８、１９にラッチされた４８ビットのサムデータＳと桁上げデータＣを入力して加算する。加算結果はデータラッチ２２にラッチされる。第１部分乗算サイクルでは４８ビットのサムデータＳと桁上げデータＣの夫々の確定部分（最終的な乗算結果に対する確定部分）である下位１６ビットＳ［１５：０］とＣ［１５：０］の加算により生ずる１６ビット目の桁上げ情報ＣＡＲＲＹが第２帰還経路２１を介して前記４−２加算回路１６に帰還される。桁上げ情報ＣＡＲＲＹの帰還位置は前記４−２加算回路１６の最下位ビットとされる。
【００２６】
第２部分乗算サイクルにおいて部分積加算回路３は、第１部分乗算サイクルで利用する下位１６ビットの部分乗数と被乗数とに関する前記桁上げ保存加算結果である４８ビットのサムデータと桁上げデータの夫々の上位３２ビットの未確定部分（最終的な乗算結果に対する未確定部分）と、第１部分乗算サイクルの桁上げ保存加算結果であるサムデータと桁上げデータの加算回路４による下位１６ビット（最終的な乗算結果に対する確定部分）の加算により生ずる桁上げ情報ＣＡＲＲＹ［１６］とを、第１部分乗算サイクルから第２部分乗算サイクルの桁上げ保存加算に加えることが可能になる。
【００２７】
図２には図１の乗算器１による乗算データフローが例示される。１ｓｔは第１部分乗算サイクル、２ｎｄは第２部分乗算サイクルである。第１部分乗算サイクルのＳ、Ｃはデータラッチ１８，１９にラッチされる夫々４８ビットのサムデータＳと桁上げデータＣである。その内の最終的な乗算結果に対する未確定部分である上位３２ビットが第２部分乗算サイクルで部分積加算回路３に帰還される。
また、データラッチ１８，１９にラッチされた夫々４８ビットのサムデータＳと桁上げデータＣの内の最終的な乗算結果に対する確定部分である下位１６ビットの加算により生ずる桁上げ情報ＣＡＲＲＹ［１６］が第２部分乗算サイクルで部分積加算回路３に帰還される。帰還された桁上げ情報ＣＡＲＲＹ［１６］、Ｓ［４７：１６］、Ｃ［４７：１６］が第２演算サイクルの部分積加算に加えられる。尚、データラッチ２２は、特に制限されないが、６４ビットとされ、第１部分乗算サイクルでは下位１６ビット（１ｓｔ結果）をラッチし、第２部分乗算サイクルでは上位４８ビット（２ｎｄ結果）をラッチする。
【００２８】
図３には図１の乗算器の動作サイクルが示される。被乗数３２ビット×乗数下位１６ビットの演算を行う第１部分乗算サイクルはサイクルｍ１１とｍ１２を含み、被乗数３２ビット×乗数上位１６ビットの演算を行う第２部分乗算サイクルはサイクルｍ２１とｍ２２を含む。以下の説明では便宜上部分積生成部２と部分積加算部３を併せて乗算器コア２３とも記す。
【００２９】
サイクルｍ１１では乗算器コア２３においてサムデータと桁上げデータの下位１６ビットが最終乗算結果に対して確定する。
【００３０】
サイクルｍ１２では確定したサムデータと桁上げデータの下位１６ビットを加算回路４で加算してデータラッチ２２の下位側に保存する。
【００３１】
サイクルｍ２１では、第１部分乗算サイクルの乗算器コア２３で得られた最終乗算結果に対する未確定部分である上位３２ビットの部分積加算結果Ｓ［４７：１６］とＣ［４７：１６］を部分積加算部３に帰還し、被乗数３２ビット×乗数上位１６ビットから生成される部分積との加算に加えられる。更にこのとき、加算回路４で求められた確定部分の加算による下位１６ビット目の桁上げ情報（キャリーアウト）ＣＡＲＲＹ［１６］も部分積加算部３に帰還される。上位３２ビットのＳ［４７：１６］及びＣ［４７：１６］の帰還動作は桁上げ情報ＣＡＲＲＹ［１６］を取得する加算演算の完了を待たずに開始される。桁上げ情報ＣＡＲＲＹ［１６］の帰還位置は最終段の４−２加算回路１６であり、上位３２ビットのＳ［４７：１６］及びＣ［４７：１６］の帰還位置は初段の３−２加算回路１３とされるからである。これによって、上位４８ビットの部分積加算結果ＳとＣが夫々確定する。
【００３２】
サイクルｍ２２では、加算回路４の出力により、上位４８ビットの乗算結果が確定する。Ｚは６４ビットの乗算結果である。
【００３３】
図４には図１の乗算器１による乗算サイクルの一例が示される。第１部分乗算サイクルにおけるサイクルｍ１２と第２部分乗算サイクルにおけるｍ２１は並行される。図の例ではアレイと記載されたサイクルは乗算器コア２３の動作サイクル、ＣＬＡと記載されたサイクルは加算回路４の動作サイクルを意味する。サイクルｍ１１の動作に最も時間を要するので、最も遅いそのサイクル時間（例えば論理段数２４段に相当する時間）で他のサイクル動作時間も拘束されることになる。
【００３４】
図５には第１の比較例が示される。これは、ブースの論理で生成した部分積を加算しサムデータと桁上げデータを生成する乗算器コアと、サムデータと桁上げデータを加算する加算回路を有し、第１部分乗算サイクルにおける加算回路による加算結果を第２部分乗算サイクルにおける部分乗数と被乗数とに関する部分積加算に加える。即ち、被乗数３２ビット×乗数下位１６ビットの第１部分乗算サイクルにおいてサイクルｍ１１では被乗数３２ビット×乗数下位１６ビットから生成される部分積の加算を行う。サイクルｍ１２では部分積加算結果のＳとＣを加算回路で加算する。これによって下位１６ビットの乗算結果が確定する。被乗数３２ビット×乗数上位１６ビットの第２部分乗算サイクルにおいてサイクルｍ２１では第１部分乗算サイクルのサイクルｍ１２で得られた未確定な上位３２ビットの乗算結果を乗算アレイに帰還し、被乗数３２ビット×乗数上位１６ビットの第２部分乗算サイクルで生成される部分積との加算を行う。これによって夫々の部分積加算結果Ｓ，Ｃの上位４８ビットが確定する。サイクルｍ２２では確定した上位４８ビットの部分積加算結果Ｓ，Ｃの加算を行い、これによって、上位４８ビットの乗算結果が確定し、３２ビット×３２ビットの乗算を終了する。
【００３５】
図６には図５の乗算器による乗算データフローが例示される。図７には図５の比較例における乗算サイクルが例示される。第２部分乗算サイクルにおけるサイクルｍ２１の動作に最も時間を要するので、最も遅いそのサイクル時間（論理段数２９段に相当する時間）が他のサイクル動作時間を律束することになる。
【００３６】
図８には図１の乗算器１と図５の比較例に係る乗算器の乗算サイクルタイムに関する比較例が示される。図１の乗算器１を採用する場合の各サイクルタイムは論理段数２４段の動作遅延時間に相当する時間であれば良いのに対し、図５の比較例を採用する場合の各サイクルタイムは論理段数２９段の動作遅延時間に相当する時間を採らなければならない。
【００３７】
図１の乗算器１は第２部分乗算サイクルにおいて、第１部分乗算サイクルのサイクルｍ１１で乗算器コア２３から得られる未確定な上位３２ビットの部分積加算結果Ｓ［４７：１６］とＣ［４７：１６］を帰還する。図５の比較例の場合は最終加算回路から出力される未確定な上位３２ビットの乗算結果を帰還させる。
この相異故に、図１の乗算器１を用いれば、１サイクル当たりの論理段数を削減でき、動作周波数を高くすることができる。
【００３８】
図９には第２の比較例が示される。これは、ブースの論理で生成した部分積を加算しサムデータ（サム値）と桁上げデータを生成する乗算器コアと、サムデータと桁上げデータを加算する加算回路とを有し、乗算器コアは第１部分乗算サイクルの部分積加算結果であるサムデータと桁上げデータを入力側に帰還して第２部分乗算サイクルにおける部分乗数と被乗数とに関する部分積加算に加える。この比較例では最終反復が完了してから最終加算を行うため、３２ビット×３２ビット乗算の場合、部分積加算結果Ｃ，Ｓは６４ビットになる。このため、図１０に示されるように、ｍ１１，ｍ１２，ｍ１３の３サイクルで当該乗算を完了するには、６４ビットの論理規模を有する加算回路が必要となり、その論理規模を３２ビット幅に減らすと逆に演算サイクルがｍ１１、ｍ１２、ｍ２１、ｍ２２の４サイクルに増えてしまう。
【００３９】
この比較例との関係では、図１の乗算器１は、確定した部分積加算結果Ｓ，Ｃに対しては加算回路４で加算して１６ビット目の桁上げ信号ＣＡＲＲＹ［１６］を上位側乗数の部分乗算に与えるようにするから、３サイクルの演算サイクルでも最終段の加算回路４の論理規模（加算可能なビット数幅）を増大させることを要しない。
【００４０】
図１１には乗算器１を搭載したマイクロコンピュータが例示される。マイクロコンピュータ３０は、例えば単結晶シリコンのような１個の半導体基板にＣＭＯＳなどの集積回路製造技術によって形成される。マイクロコンピュータ３０は、代表的に示された乗算器（ＭＵＬ）１、中央処理（ＣＰＵ）３１、ランダムアクセスメモリ（ＲＡＭ）３２、リードオンリメモリ（ＲＯＭ）３３、入出力回路（ＩＯ）３４、及び内部バス３５を有する。ＣＰＵ３１はＲＯＭ３３等から命令をフェッチし、フェッチした命令を解読し、解読結果にしたがって演算処理を行って命令を実行する。ＣＰＵ３１は乗算器１の制御部として位置付けられる。即ち、ＣＰＵ３１が乗算命令をフェッチすると、乗数及び被乗数を前記データラッチ５，６にロードし、図３及び図４で説明したサイクルにしたがって第１部分乗算サイクル及び第２部分乗算サイクルの動作を制御し、データラッチ２２に得られた乗算結果をＲＡＭ３３等にストアする制御を行う。ＲＡＭ３２はＣＰＵ３１のワーク領域などに用いられる。ＲＯＭ３３はＣＰＵ３１の制御プログラムや制御データを保持する。
【００４１】
図１で説明した乗算器１を採用することにより、マイクロコンピュータ１のチップ面積の小型化とデータ処理の高速化に寄与することができる。
【００４２】
前記乗算器１をマイクロコンピュータなどの半導体集積回路に搭載するとき、その乗算器１の設計に所謂ＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）モジュールを用いることができる。ＩＰモジュールは論理記述データによって特定される回路モジュールとして把握することができる。乗算器１のＩＰモジュールは図１２に例示されるように記録媒体４１に記録して提供される。
【００４３】
記録媒体４１は、例えばコンピュータ４２のディスクドライブ４３で光学的に読取り可能なＣＤ−ＲＯＭ（コンパクト・ディスク−リード・オンリ・メモリ）、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ（ディジタル・ビデオ・ディスク−ＲＯＭ）、ＤＶＤ−ＲＡＭ（ディジタル・ビデオ・ディスク−ランダム・アクセス・メモリ）等とされる。或は、コンピュータ４２に内蔵又は外付けされたＩＤＥ（インテグレーテッド・ディスク・エレクトロニクス）又はＡＴＡＰＩ（ＡＴアタッチメント・パケット・インタフェース）などのインタフェースを介して接続されるハードディスク装置の磁気ディスク、ＰＣカードに代表される各種規格のフラッシュメモリカード、フレキシブルディスク、磁気テープ、更にはコンピュータの内部回路にオンボードされたＲＯＭやＲＡＭ等のメモリデバイスであってよい。
【００４４】
論理記述データ４４は、例えばＨＤＬ（ハードウェア・ディスクリプション・ランゲージ）を用いて、ＲＴＬ（レジスタ・トランスファ・レベル）のような機能記述によって乗算器１の機能を特定する。その具体的な記述内容については図示を省略するが、一般的には構成要素を階層的に記述し、その記述にはｍｏｄｕｌｅ〜ｅｎｄｍｏｄｕｌｅ等の構文を用いることができる。論理記述データ４４には検証用データ４５を付随させることができる。検証用データ４５とは、乗算器１と他の回路モジュールとの間の動作に関する検証用データであり、乗算器１への入力に対して出力状態を示すデータ等とされる。
【００４５】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４６】
例えば、乗数と被乗数のビット数は３２ビットに限定されない。部分乗数のビット数は１６ビットに限定されない。部分乗算の繰返し回数は２回に限定されない。ブースエンコーダの論理は２次のブースの論理に限定されない。上記夫々を適宜変更可能である。乗算器はマイクロコンピュータ以外にデータ処理用の各種半導体集積回路に広く適用することができる。
【００４７】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００４８】
すなわち、本発明に係る乗算器によれば、論理規模の増大を招くこと無く反復乗算による乗算速度を高速化することができる。
【００４９】
乗算器を搭載した瀕発明に係るデータ処理装置はチップ面積の小型化とデータ処理の高速化に寄与することができる。
【００５０】
上記乗算器の論理記述データを記録した記録媒体を用いることにより、論理規模の増大を招くこと無く反復乗算による乗算速度を高速化する乗算器の設計を容易化するのに役立つ。
【図面の簡単な説明】
【図１】本発明に係る反復乗算による乗算器の一例を示すブロック図である。
【図２】図１の乗算器による乗算データフローを例示するデータフロー図である。
【図３】図１の乗算器の動作サイクルを例示するブロック図である。
【図４】図１の乗算器による乗算サイクルを示すタイミングチャートである。
【図５】本発明に係る乗算器に対する第１の比較例の乗算器を示すブロック図である。
【図６】図５の乗算器による乗算データフローを示すデータフロー図である。
【図７】図５の比較例に係る乗算器の乗算サイクルが示すタイミングチャートである。
【図８】図１の乗算器と図５の比較例に係る乗算器の乗算サイクルタイムを比較するタイミングチャートである。
【図９】本発明に係る乗算器に対する第２の比較例の乗算器を示すブロック図である。
【図１０】図９の乗算器における加算回路のビット幅と演算サイクル数との関係を示すタイミングチャートである。
【図１１】図１の乗算器を搭載したマイクロコンピュータを例示するブロック図である。
【図１２】図１の乗算器のＩＰモジュールを構成する論理記述データとこれを記録した記録媒体の説明図である。
【符号の説明】
１  乗算器
２  部分積生成部
３  部分積加算部
４  加算回路
Ａ  被乗数
Ｂ  乗数
７  ブースエンコーダ
８  部分積生成回路
ＰＰ０〜ＰＰ８  部分積
１０〜１３  ３−２加算回路
１４〜１６  ４−２加算回路
Ｓ  サムデータ
Ｃ  桁上げデータ
２０  第１帰還経路
Ｓ［４７：１６］  第１帰還経路から帰還されるサムデータ
Ｃ［４７：１６］  第１帰還経路から帰還される桁上げデータ
２１  第２帰還経路
２３  乗算器コア
ＣＡＲＲＹ  第２帰還経路から帰還される桁上げ情報
３０  マイクロコンピュータ
３１  中央処理装置
４１  記録媒体
４２  コンピュータ
４４  論理記述データ
４５  検証用データ
【図１】
2005055950.tif 000003
【図２】
2005055950.tif 000004
【図３】
2005055950.tif 000005
【図４】
2005055950.tif 000006
【図５】
2005055950.tif 000007
【図６】
2005055950.tif 000008
【図７】
2005055950.tif 000009
【図８】
2005055950.tif 000010
【図９】
2005055950.tif 000011
【図１０】
2005055950.tif 000012
【図１１】
2005055950.tif 000013
【図１２】
2005055950.tif 000014