(57)【特許請求の範囲】
【請求項１】
被除数を除数で割って商を生成する割り算を含む演算を行う計算装置において、
第１補正項を生成する第１補正項生成器と、
第２補正項を生成する第２補正項生成器と、
（ｉ−２）番目の部分の余りのレフト−シフトされた値から前記第１補正項を引く第１引き算器と、
前記（ｉ−２）番目の部分の余りの前記レフト−シフトされた値から前記第２補正項を引く第２引き算器と、
前記（ｉ−１）番目の部分の余りの計算で、ボローが発生するか否かを検出するキャリー伝達検出器と、
（１−ｉ）番目の商デジット、前記（ｉ−２）番目の部分の余り及びキャリー伝達検出器の出力に応答してｉ番目の商デジットを予測する商デジット予測手段と、
前記予測されたｉ番目の商デジットに応答して前記第１及び第２引き算器の出力のうちの一つをｉ番目の部分の余りとして選択する選択手段と、
を含む、ことを特徴とする計算装置。
【請求項２】
前記第１補正項は、前記予測されたｉ番目の商デジットが＋１である場合の条件的補正項であり、前記第２補正項は、前記予測されたｉ番目の商デジットが−１である場合の条件的補正項である、ことを特徴とする請求項１に記載の計算装置。
【請求項３】
前記商デジット予測手段は、
前記（ｉ−１）番目の商デジット及び前記（ｉ−２）番目の部分の余りに応答して、第１商デジットを予測する第１商デジット予測テーブルロジックと、
前記（ｉ−１）番目の商デジット及び前記（ｉ−２）番目の部分の余りに応答して、第２商デジットを予測する第２商デジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第１及び第２商デジットのうちの一つを前記ｉ番目の商デジットとして選択するマルチプレクサと、
を含む、ことを特徴とする請求項１に記載の計算装置。
【請求項４】
前記第１商デジットは、ボローが発生した場合の条件的商デジットであり、前記第２商デジットは、ボローが発生しない場合の条件的商デジットである、ことを特徴とする請求項３に記載の計算装置。
【請求項５】
前記計算装置は、浮動小数点割り算を行う装置である、ことを特徴とする請求項１に記載の計算装置。
【請求項６】
被除数ｘを除数ｄで割って商ｑを生成する割り算を含む計算を行う計算装置において、
各繰り返し演算で、下の式に与えられる部分の余りを計算する繰り返し的な割り算回路と、
ｘ（ｉ）＝４ｘ（ｉ−２）−（２ｑ−（ｉ−１）＋ｑ−ｉ）＊ｄ
ここで、ｘ（ｉ）はｉ番目の部分の余り、 ｘ（ｉ−２）は（ｉ−２）番目の部分の余り、ｑ−（ｉ−１）は（ｉ−１）番目の商デジット、ｑ−ｉはｉ番目の商デジット、ｘ（０）＝ｘ、そしてｑ−ｉ∈｛−１、０、＋１｝、
前記（ｉ−２）番目の部分の余りから前記（ｉ−１）番目の商デジットを選択する商デジット選択回路と、
（ｉ−１）番目の部分の余りの計算で、ボローが発生するか否かを検出するキャリー伝達検出器と、
前記（ｉ−１）番目の商デジット、前記（ｉ−２）番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、ｉ番目の商デジットを予測する商デジット予測回路と、
を含む、ことを特徴とする計算装置。
【請求項７】
前記（ｉ−２）番目の部分の余り、前記（ｉ−１）番目の商デジットと前記予測された商デジットによりｉ番目の部分の余りを計算する回路をさらに含む、ことを特徴とする請求項６に記載の計算装置。
【請求項８】
前記計算装置は、浮動小数点割り算装置である、ことを特徴とする請求項６に記載の割り算装置。
【請求項９】
前記（ｉ−１）番目の商デジット、前記（ｉ−２）番目の部分の余り、前記ｉ番目の商デジット、及び前記ｉ番目の部分の余りを貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項６に記載の計算装置。
【請求項１０】
各繰り返し演算で、ｘ（ｉ）＝４ｘ（ｉ−２）−（２ｑ−（ｉ−１）＋ｑ−ｉ）＊ｄ、ここで、ｘ（ｉ）はｉ番目の部分の余り、ｘ（ｉ−２）は（ｉ−２）番目の部分の余り、ｑ−（ｉ−１）は（ｉ−１）番目の商デジット、ｑ−ｉはｉ番目の商デジット、ｘ（０）＝ｘ、そしてｑ−ｉ∈｛−１、０、＋１｝、に与えられる一つの部分の余りを計算する繰り返し割り算技法を使用して、被除数ｘを除数ｄで割って商ｑを生成する割り算方法を含む計算方法において、
（ａ）前記（ｉ−２）番目の部分の余りｘ（ｉ−２）から前記（ｉ−１）番目の商デジットｑ−（ｉ−１）を選択する段階と、
（ｂ）（ｉ−１）番目の部分の余りの計算で、ボローが発生するか否かを検出する段階と、
（ｃ）前記（ｉ−１）番目の商デジット、前記（ｉ−２）番目の部分の余り、そして前記ボローが発生するか否かに基づいて、（ｉ−１）番目の部分の余りの計算なしに、ｉ番目の商デジットを予測し、前記予測されたｉ番目の商デジットにより前記ｉ番目の部分の余りを計算する段階と、を備え、
（ｄ）前記商ｑを計算するために前記段階（ｂ）及び（ｃ）を繰り返すこと、
を特徴とする計算方法。
【請求項１１】
繰り返し演算技法により被個数の平方根を計算する手段を含む計算装置において、
（ｉ−２）番目の部分の余りから（ｉ−１）番目のルートのデジットを選択するルートデジット選択器と、
（ｉ−２）番目の部分の平方根と前記（ｉ−１）番目のルートのデジットにより第１補正項を生成する第１補正項生成器と、
（ｉ−１）番目の部分の平方根により第２補正項を生成する第２補正項生成器と、
前記（ｉ−１）番目の部分の平方根により第３補正項を生成する第３補正項生成器と、
前記（ｉ−２）番目の部分の余りのレフト−シフトされた値から前記第１補正項及び前記第２補正項を引く第１引き算器と、
前記（ｉ−２）番目の部分の余りの前記レフト−シフトされた値から前記第１補正項及び第２補正項を引く第２引き算器と、
（ｉ−１）番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出するキャリー伝達検出器と、
前記（ｉ−１）番目のルートのデジット、前記（ｉ−２）番目の部分の余り及び前記キャリー伝達検出器の出力に応答してｉ番目のルートのデジットを予測するルートデジット予測手段と、
前記予測されたｉ番目のルートのデジットに応答して前記第１及び第２引き算器の出力のうちの一つをｉ番目の部分の余りとして選択する選択手段と、
を含むことを特徴とする計算装置。
【請求項１２】
前記第２補正項は、前記予測されたｉ番目のルートのデジットが＋１である場合の条件的補正項であり、前記第３補正項は、前記予測されたｉ番目のルートのデジットが−１である場合の条件的補正項である、
ことを特徴とする請求項１１に記載の計算装置。
【請求項１３】
前記ルートデジット予測手段は、
前記（ｉ−１）番目のルートのデジット及び前記（ｉ−２）番目の部分の余りに応答して、第１ルートのデジットを予測する第１ルートデジット予測テーブルロジックと、
前記（ｉ−１）番目のルートのデジット及び前記（ｉ−２）番目の部分の余りに応答して、第２ルートのデジットを予測する第２ルートデジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第１及び第２ルートのデジットのうちの一つを前記ｉ番目のルートのデジットとして選択するマルチプレクサと、を含む、ことを特徴とする請求項１１に記載の計算装置。
【請求項１４】
前記（ｉ−１）番目のルートのデジット、前記（ｉ−２）番目の部分の余り、前記ｉ番目のルートのデジット、及び前記ｉ番目の部分の余りを貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項１１に記載の計算装置。
【請求項１５】
前記（ｉ−２）番目の部分の余り、前記（ｉ−２）番目の部分の平方根、前記（ｉ−１）番目の部分の平方根、及びｉ番目の部分の平方根を貯蔵する貯蔵回路をさらに含む、ことを特徴とする請求項１１に記載の計算装置。
【請求項１６】
各繰り返し演算で次の式に与えられる部分の余りを計算する繰り返し的な平方根演算回路を含む計算装置において、
各繰り返し演算で、次の式の計算を行い、
ｘ（ｉ）＝４ｘ（ｉ−２）−２（２ｑ（ｉ−２）＋ｑ−（ｉ−１）２−ｉ＋１）ｑ−（ｉ−１）−２（２ｑ（ｉ−１）＋ｑ−ｉ２−ｉ）ｑ−ｉ
ここで、ｘ（ｉ）はｉ番目の部分の余りを示し、ｘ（ｉ−１）は（ｉ−１）番目の部分の余り、ｘ（ｉ−２）は（ｉ−２）番目の部分の余り、ｑ−ｉはｉ番目のルートのデジット、ｑ−（ｉ−１）は（ｉ−１）番目のルートのデジット、ｑ（ｉ−１）は（ｉ−１）番目の部分の平方根、ｑ（ｉ−２）は（ｉ−２）番目の部分の平方根、ｘ（０）＝ｚ−１，そしてｑ−ｉ∈｛−１、０、＋１｝、
前記（ｉ−２）番目の部分の余りから前記（ｉ−１）番目のルートのデジットを選択するルートデジット選択回路と、
（ｉ−１）番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出するキャリー伝達検出器と、
前記（ｉ−１）番目のルートのデジット、前記（ｉ−２）番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、ｉ番目のルートのデジットを予測するルートデジット予測回路と、を含む、ことを特徴とする計算装置。
【請求項１７】
前記（ｉ−２）番目の部分の余り、前記ｉ番目の部分の余り、前記（ｉ−２）番目の部分の平方根、前記（ｉ−１）番目の部分の平方根、及びｉ番目の部分の平方根を貯蔵する貯蔵回路、をさらに含む、ことを特徴とする請求項１６に記載の計算装置。
【請求項１８】
前記計算装置は、浮動小数点平方根演算を行う装置である、ことを特徴とする請求項１６に記載の計算装置。
【請求項１９】
前記繰り返し的な平方根演算回路は、
（ｉ−２）番目の部分の平方根と前記（ｉ−１）番目のルートのデジットにより第１補正項を生成する第１補正項生成器と、
（ｉ−１）番目の部分の平方根により第２補正項を生成する第２補正項生成器と、
前記（ｉ−１）番目の部分の平方根により第３補正項を生成する第３補正項生成器と、
前記（ｉ−２）番目の部分の余りのレフト−シフトされた値から前記第１補正項及び前記第２補正項を引く第１引き算器と、
前記（ｉ−２）番目の部分の余りの前記レフト−シフトされた値から前記第１補正項及び前記第２補正項を引く第２引き算器と、
前記（ｉ−１）番目のルートのデジット、前記（ｉ−２）番目の部分の余り及び前記キャリー伝達検出器の出力に応答して、ｉ番目のルートのデジットを予測するルートデジット予測手段と、
前記予測されたｉ番目のルートのデジットに応答して、前記第１及び第２引き算器の出力のうちの一つをｉ番目の部分の余りとして選択する選択手段と、を含む、ことを特徴とする請求項１６に記載の計算装置。
【請求項２０】
前記第２補正項は、前記予測されたｉ番目のルートのデジットが＋１である場合の条件的補正項であり、前記第３補正項は、前記予測されたｉ番目のルートのデジットが−１である場合の条件的補正項である、ことを特徴とする請求項１９に記載の計算装置。
【請求項２１】
前記ルートデジット予測手段は、
前記（ｉ−１）番目のルートのデジット及び前記（ｉ−２）番目の部分の余りに応答して、第１ルートのデジットを予測する第１ルートデジット予測テーブルロジックと、
前記（ｉ−１）番目のルートのデジット及び前記（ｉ−２）番目の部分の余りに応答して、第２ルートのデジットを予測する第２ルートデジット予測テーブルロジックと、
前記キャリー伝達検出器の前記出力に応答して、前記第１及び第２ルートのデジットのうちの一つを前記ｉ番目のルートのデジットとして選択するマルチプレクサと、を含む、ことを特徴とする請求項１９に記載の計算装置。
【請求項２２】
各繰り返し演算で、
ｘ（ｉ）＝４ｘ（ｉ−２）−２（２ｑ（ｉ−２）＋ｑ−（ｉ−１）２−ｉ＋１）ｑ−（ｉ−１）−２（２ｑ（ｉ−１）＋ｑ−ｉ２−ｉ）ｑ−ｉ   、ここで、ｘ（ｉ）はｉ番目の部分の余りを示し、ｘ（ｉ−１）は（ｉ−１）番目の部分の余り、ｘ（ｉ−２）は（ｉ−２）番目の部分の余り、ｑ−ｉはｉ番目のルートのデジット、ｑ−（ｉ−１）は（ｉ−１）番目のルートのデジット、ｑ（ｉ−１）は（ｉ−１）番目の部分の平方根、ｑ（ｉ−２）は（ｉ−２）番目の部分の平方根、ｘ（０）＝ｚ−１、そしてｑ−ｉ∈｛−１、０、＋１｝、に与えられる一つの部分の余りを計算する繰り返し割り算技法を使用して、被個数ｚの平方根ｑを計算するための計算方法において、
（ａ）前記（ｉ−２）番目の部分の余りから前記（ｉ−１）番目のルートのデジットを選択する段階と、
（ｂ）前記（ｉ−１）番目の部分の余りの計算で、ボローまたはキャリー−インが発生するか否かを検出する段階と、
（ｃ）前記（ｉ−１）番目のルートのデジット、前記（ｉ−２）番目の部分の余り、そして前記ボローまたはキャリー−インが発生するか否かに基づいて、前記（ｉ−１）番目の部分の余りの計算なしに、前記ｉ番目のルートのデジットを予測し、前記予測されたｉ番目のルートのデジットにより前記ｉ番目の部分の余りを計算する段階と、を備え、
（ｄ）前記平方根ｑを計算するために前記段階（ｂ）及び（ｃ）を繰り返すこと、を特徴とする計算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理分野に関するものであり、より具体的には、割り算と平方根演算を高速で実行する計算装置及び計算方法に関するものである。
【０００２】
【従来の技術】
最近、グラフィックレンダリング（Graphic Rendering）、ＣＡＤ（Computer Aided Design）、ＤＳＰ（Digital Signal Processing）などのような、複雑な計算を要求するコンピュータ応用環境が、徐々に増加している。したがって、大部分の高性能のマイクロプロセスは、ＩＥＥＥ７５４−１９８５浮動小数点標準案に基づいた浮動小数点加算（Addition）、掛け算（Multiplication）、割り算（Division）、平方根演算（Square Rooting）などを支援している。
【０００３】
一般的なデータ処理システムにおいて、割り算及び平方根演算の実行の比率は、加算や掛け算に比べて相対的に非常に低い。しかし、加算と掛け算は３サイクルの待ち時間(Latency)を有する一方、割り算と平方根演算は２０サイクル以上の待ち時間を有するので、待ち時間の面で、割り算と平方根演算はシステムの全体の性能に大きい影響を与える。
【０００４】
よく知られた割り算アルゴリズムのうちの一つが、ＳＲＴ割り算アルゴリズムである。ＳＲＴは、Sweeney Robertson,およびTocher の頭字語(Acronym)であり、それらの三人は、ほほ同じ時期にそのような特性のアルゴリズムを独立的に各々提案した。ＳＲＴ割り算アルゴリズムは、商デジット(Quotient Digit)として加算／引き算の遂行が不要な０を許すことによって、非復元割り算(Non-restoring Division)のスピードを向上させる。ＳＲＴ割り算アルゴリズムの原理は、平方根演算にも適用されることができる。ＳＲＴアルゴリズムは、例えば、Behrooz Parhami,“Computer Arithmetic Algorithms and Hardware Design",Oxford University Press 2000 に詳細に記載されている。
【０００５】
伝統的な基数−２(Radix-2)ＳＲＴアルゴリズムは、ハードウェーアで実現することが容易であるが、商(Quotient)／平方根(Square Root) を求めるためには、多数の繰り返し演算(Iterations)を実行することが必要である。一方、基数−４ＳＲＴアルゴリズムは、基数−２ＳＲＴアルゴリズムに比べて、繰り返し演算が１／２に減るが、基数−２ＳＲＴアルゴリズムに比べて、ハードウェーアで実現することが複雑であり、各繰り返し実行の遅延時間が増える。例えば、［特許文献１］の米国特許第５２５８９４４号には、基数−４アルゴリズムを利用し、各繰り返し演算ステップで商を選択するために、ルックアップテーブル(Lookup Table)を参照する技術が開示されている。
【非特許文献１】
ベローズ  パーハミ  「コンピュータ算術アルゴリズムとハードウェアデザイン」オックスフォード・ユニバーシティ・プレス  ２０００ ( Behrooz  Parhami,“Computer Arithmetic Algorithms and Hardware Design”、Oxford University Press ２０００）
【特許文献１】
米国特許第５２５８９４４号明細書
【０００６】
【発明が解決しようとする課題】
本発明の目的は、基数−２アルゴリズムを使用して割り算及び平方根演算を高速で実行できる計算装置及びその計算方法を提供することにある。
【０００７】
【課題を解決するための手段】
本発明によると、非復元基数−２割り算及び／または平方根演算アルゴリズムが提供される。本発明のアルゴリズムは、一種の変形された基数−２ＳＲＴアルゴリズムと言える。本発明のアルゴリズムでは、従来の基数−２ＳＲＴアルゴリズムと同一の商／ルートデジットセット（Quotient／Root Digit SET）{−１,０,＋１} が使用され、特に、新規な商／平方根予測テーブル（Quotient／Root Prediction Table）ロジックが使用される。商／平方根予測テーブルロジックによって、ｉ番目の商／平方根デジットが決められ、前記ｉ番目の商／平方根のデジットは、（ｉ−２）番目の部分の余り（Partial Remainder）から求められた（ｉ−１）番目の商／平方根のデジットに基づいて決められる。（ｉ−１）番目の部分の余りの計算に必要な（ｉ−１）番目の補正項（Correction Term）が、（ｉ−２）番目の補正項と同時に生成される。これは（ｉ−１）番目の部分の余りを求めるための繰り返し演算の省略を可能にする。
【０００８】
本発明の基数−２アルゴリズムによれば、従来の基数−２ＳＲＴアルゴリズムに比べて繰り返し演算時間が１／２に減るが、従来の基数−４ＳＲＴアルゴリズムとは異なり、各繰り返し演算の遅延時間は増えない。
【０００９】
【発明の実施の形態】
以下、添付した図１を参照して、本発明の望ましい実施の形態を詳細に説明する。
【００１０】
Ｉ．商予測テーブルＱＰＴを使用する基数−２割り算アルゴリズム
【００１１】
本発明による浮動少数点２進割り算アルゴリズム（Floating Point Binary Division Algorithm）の表記法（Notation）は、次の通りである。
ｚ  被除数（Ｄｉｖｉｄｅｎｄ）    ｚ０．ｚ−１ｚ−２...ｚ−２ｎ
ｄ  除数（Ｄｉｖｉｓｏｒ）        ０．ｄ−１ｄ−２...ｄ−ｎ
ｑ  商（Ｑｕｏｔｉｅｎｔ）        １．ｑ−１ｑ−２...ｑ−ｎ
ｘ  余り（Ｒｅｍａｉｎｄｅｒ）    ｘ０．ｘ−１ｘ−２...ｘ−２ｎ
【００１２】
余りｘの表現ｚ−（ｄ＊ｑ）は、基本的な割り算の方程式 ｚ＝（ｄ＊ｑ）＋ｘから誘導されたものである。
【００１３】
割り算アルゴリズムは、部分の余り（Partial Remainder：ＰＲ）を使用して商デジットを順次に求める。
【００１４】
基数−２割り算の循環式は、次の式（１）で表示される。
ｘ（ｉ）＝２ｘ（ｉ−１）−ｉｄ    …（１）
【００１５】
ここで、ｘ（ｉ）はｉ番目の部分の余りであり、ｘ（ｉ−１）は（ｉ−１）番目の部分の余りであり、ｑ−ｉはｉ番目の商デジット、ｄは除数、ｑ−ｉ＊ｄはｉ番目の補正項である。また、式（１）で、初期部分の余りｘ（０）＝ｚ、ｑ−ｉ∈｛−１、０、＋１｝である。
【００１６】
上の式（１）は、次のように（ｉ−２）番目の部分の余りｘ（ｉ−２）で表示されることができる。
ｘ（ｉ）＝４ｘ（ｉ−２）−（ｉ−１）−ｉｄ    …（２）
【００１７】
式（２）によると、ｉ番目の部分の余りｘ（ｉ）は（ｉ−２）番目の部分の余りｘ（ｉ−２）、（ｉ−１）番目の商デジットｑ−（−ｉ−１）、ｉ番目の商デジットｑ−ｉ、及び除数ｄから求められる。結局、式（２）は、（ｉ−１）番目の商デジットｑ−（ｉ−１）に従属するｉ番目の商デジットｑ−ｉが決められると、ｉ番目の商デジットｑ−ｉの決定に必要な（ｉ−１）番目の部分の余りｘ（ｉ−１）を求めるための（ｉ−１）番目の繰り返し演算の省略が可能である、ことを示している。
【００１８】
本発明の基数−２割り算アルゴリズムは、商デジットセット｛−１、０、＋１｝を使用する。本発明の基数−２割り算アルゴリズムによれば、ｉ番目の部分の余りｘ（ｉ）を求めるのに必要とするｉ番目の商デジットｑ−ｉは（ｉ−１）番目の部分の余りｘ（ｉ−１）のレフト−シフトされた値２ｘ（ｉ−１）によって下のように決められる。
もし ２ｘ（ｉ−１）＜−１／２であれば ｑ−ｉ＝−１
もし −１／２≦２ｘ（ｉ−１）＜１／２であれば ｑ−ｉ＝０
もし ２ｘ（ｉ−１）≧１／２であれば ｑ−ｉ＝＋１
【００１９】
本発明によれば、（ｉ−１）番目の商デジットｑ−（ｉ−１）が決められ、決められたｑ−（ｉ−１）に基づいて、（ｉ−１）番目の部分の余りｘ（ｉ−１）を求めるための繰り返し演算の遂行なしに、ｉ番目の商デジットｑ−ｉが正確に予測される。このｉ番目の商デジットｑ−ｉの予測には、商予測テーブルＱＰＴが使用される。また、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算に必要な（ｉ−１）番目の繰り返し演算の補正項が生成され、ｉ番目の商デジットｑ−ｉ＝＋１になる場合の（ｉ−１）番目の補正項と、ｑ−ｉ＝−１になる場合の（ｉ−１）番目の補正項とが、（ｉ−２）番目の補正項の生成と同時に生成される。
このように求められた（ｉ−２）番目の補正項、（ｉ−１）番目の商デジットｑ−（ｉ−１）、ｉ番目の商デジットｑ−ｉ＝＋１ になる場合の（ｉ−１）番目の補正項、そしてｑ−ｉ＝−１になる場合の（ｉ−１）番目の補正項によって、二つの条件的部分の余り（Conditional Partial Remainder）ｘ１及びｘ２が計算され、この条件的部分の余りｘ１及びｘ２のうちの一つが、予測されたｉ番目の商デジットｑ−ｉの値に従って、最終的にｘ（ｉ）として選択される。
【００２０】
次には、本発明によるｉ番目の商デジットｑ−ｉの予測について、詳細に説明する。
【００２１】
商デジットの予測のために、ここでは除数ｄ＝０.１ ｄ−２ ｄ−３ ｄ−４...が考慮される。
ｉ番目の商デジットｑ−ｉの予測、ケース１：ｄ−２＝１（ ｉ'th Quotient Digit  ｑ−ｉ  Prediction Case１：ｄ−２＝１ ）
（１）もし ｘ（ｉ−２）<１／８ であれば ｑ−（ｉ−１）＝０である。 したがって、−１／２<２ｘ（ｉ−１）<１／４ になるので、ｑ−ｉ＝０になる。
（２）もし １／８≦ｘ（ｉ−２）<１／４ であれば ｑ−（ｉ−１）＝０ である。したがって、２ｘ（ｉ−１）≧１／２になるので、ｑ−ｉ＝＋１になる。
（３）もし １／４≦ｘ（ｉ−２）<３／８ であればｑ−（ｉ−１）＝＋１ である。この時に、２ｘ（ｉ−１）<−１／２ である場合に、ｑ−ｉ＝−１になり、−１／２<Ｘ（ｉ−１）<１／４ である場合は ｑ−ｉ＝０になる。
（４）もし ３／８≦ｘ（ｉ−２）<１／２ であれば、ｑ−（ｉ−１）＝＋１ になる。したがって、−１／２≦２ｘ（ｉ−１）<１／２ になるので、ｑ−ｉ＝０になる。
（５）もし １／２≦ｘ（ｉ−２）<５／８ であれば、ｑ−（ｉ−１）＝−１ になる。したがって、−１／２≦２ｘ（ｉ−１）<１／２ になるので ｑ−ｉ＝０になる。
（６）もし ５／８≦ｘ（ｉ−２）<３／４ であれば、ｑ−（ｉ−１）＝−１ になる。この時に、−１／２≦２ｘ（ｉ−１）<１／２である場合に、ｑ−ｉ＝０ になり、２ｘ（ｉ−１）<−１／２ である場合に ｑ−ｉ＝−１ になる。
（７）もし ３／４≦ｘ（ｉ−２）<７／８ であれば、ｑ−（ｉ−１）＝０ になる。したがって、２ｘ（ｉ−１）<−１／２ になるので、ｑ−ｉ＝−１ になる。
（８）もし ７／８≦ｘ（ｉ−２）<１ であれば、ｑ−（ｉ−１）＝０ になり、常に−１／２≦２ｘ（ｉ−１）<１／２ になるので、ｑ−ｉ＝０ になる。
ｉ番目の商デジットｑ−ｉの予測、ケース２：ｄ−２＝０（ｉ'th Quotient Digit ｑ−ｉ  Prediction Case２：ｄ−２＝０ ）
【００２２】
ｄ−２＝１である場合のように、各同一の条件下で、ｑ−（ｉ−１）を求め、これに基づいてｑ−ｉを予測できるということを、この技術分野に通常的な知識を有する者は良く理解できる。
【００２３】
上の結果に従って、ｉ番目の商デジットｑ−ｉを予測するための商デジット予測テーブルＱＰＴを作ることが可能である。次の表１は、除数ｄ＝０.１１ｄ−３ｄ−４…である場合（ｑ−ｉ Prediction Case１：ｄ−２＝１）に予測されたｉ番目の商デジットｑ−ｉを示し、また、表２は、除数ｄ＝０.１０ｄ−３ｄ−４…である場合（ｑ−ｉ Prediction Case２：ｄ−２＝０）に予測されたｉ番目の商デジットｑ−ｉを示している。
【００２４】
【表１】
0003941868.tif 000002
【００２５】
表１で、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝０.０１０ｘ−４ｘ−５…である場合、除数ｄ＝０.１１ｄ−３ｄ−４…であるので、（ｉ−１）番目の商デジットｑ−（ｉ−１）は‘＋１’になる。（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボロー（Borrow）が発生すれば、（If Borrow＝１）ｉ番目の商デジットｑ−ｉは‘−１’になり、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算でボローが発生しなければ（If Borrow＝０）、ｉ番目の商デジットｑ−ｉは‘０’になる。
【００２６】
【表２】
0003941868.tif 000003
【００２７】
表２で、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝０.１１０ｘ−４ｘ−５…である場合、除数ｄ＝０.１０ｄ−３ｄ−４…であるので、（ｉ−１）番目の商デジットｑ−（ｉ−１）は‘０’になる。（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生すれば（If Borrow＝１）ｉ番目の商デジットｑ−ｉは‘−１’になり、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生しなければ（If Borrow＝０）ｉ番目の商デジットｑ−ｉは‘０’になる。
【００２８】
次の表３及び４は、被除数ｚ＝０.０１０００１０１であり、除数ｄ＝０.１０１０である場合、既存の基数−２ＳＲＴ割り算アルゴリズムにより得られる割り算の結果と、本発明の基数−２割り算アルゴリズムにより得られる割り算の結果と、を各々示している。
【００２９】
【表３】
0003941868.tif 000004
【００３０】
【表４】
0003941868.tif 000005
【００３１】
表３及び表４から、既存の基数−２ＳＲＴ割り算アルゴリズムの演算結果（表３）と本発明の基数−２割り算アルゴリズムの演算結果（表４）とが、同一であることがわかる。
【００３２】
本発明の基数−２割り算アルゴリズムによれば、表４に示したように、一番目の繰り返し演算で、初期部分の余りｘ（０）から一番目の商デジットｑ−１ が計算され、次に、前記計算されたｑ−１ に基づいて、商予測テーブルＱＰＴが二番目の商デジットｑ−２ を予測する。（ 従来の基数−２ＳＲＴ割り算アルゴリズムによれば、ｑ−２ は二番目の繰り返し演算から求められる。）そして、商デジットｑ−１ 及びｑ−２ により、一番目の部分の余りｘ（１）が計算される。二番目の繰り返し演算で、ｘ（１）から三番目の商デジットｑ−３ が計算され、このｑ−３ に基づいて、商予測テーブルＱＰＴが四番目の商デジットｑ−４ を予測する。（従来の基数−２ＳＲＴ割り算アルゴリズムによれば、ｑ−４ は四番目の繰り返し演算から求められる）。そして、デジットｑ−３ 及びｑ−４ により二番目の部分の余りｘ（２）が計算される。したがって、本発明の基数−２割り算アルゴリズムによれば、従来の基数−２ＳＲＴ割り算アルゴリズムの一番目の部分の余りｘ（１）と三番目の部分の余りｘ（３）とを求めるための繰り返し演算を省略できるので、本発明のアルゴリズムの待ち時間は、従来の基数−２割り算アルゴリズムに比べて１／２に減る。さらに、本発明の基数−２割り算アルゴリズムの各繰り返し演算の遂行時間は、従来の基数−２ＳＲＴ割り算アルゴリズムのそれと同一であるので、本発明の基数−２割り算アルゴリズムは、従来の基数−２ＳＲＴ割り算アルゴリズムに比べてさらに速いスピードで割り算を遂行できる。
【００３３】
II. 平方根予測テーブル（Root Prediction Table：ＲＰＴ）を使用する基数−２平方根演算アルゴリズム
本発明による浮動少数点２進平方根演算アルゴリズムの表記法は、次の通りである。
ｚ  被個数（Radicand）  ｚ１ｚ０．．ｚ−１ｚ−２．．．ｚ−ｎ（１≦ｚ<４）
ｑ  平方根（Square Root）  １．ｑ−１ｑ−２．．．ｑ−ｎ（１≦ｑ<２）
ｘ  余り（Remainder）    ｘ１ｘ０ｘ−１ｘ−２．．．ｘ−ｎ（０≦ｘ<４）
【００３４】
平方根演算の基本方程式はｚ＝ｑ２＋ｘである。ＳＲＴ平方根演算アルゴリズムは部分の余りを有し、ルートデジットｑ−１ｑ−２．．．ｑ−ｎを順次に求めることである。
【００３５】
基数−２平方根演算の循環式は次の通りである。
ｘ（ｉ）＝２ｘ（ｉ−１）ｑ（ｉ−１）−ｉ−ｉ−ｉ  …（３）
【００３６】
ここで、ｘ（ｉ）とｘ（ｉ−１）とは、各々ｉ番目及び（ｉ−１）番目の部分の余りを示し、ｑ−ｉはｉ番目のルートのデジットを示し、 ｑ（ｉ−１）は（ｉ−１）番目の部分の平方根を示す。また、式（３）で、初期部分の余りｘ（０）＝ｚ−１であり、ｑ−ｉ ∈｛−１、０、＋１｝である。
【００３７】
式（３）は、次のように（ｉ−２）番目の繰り返し演算の循環式に変えることができる。
ｘ（ｉ）＝４ｘ（ｉ−２）ｑ（ｉ−２）−（ｉ−１）−ｉ＋１−（ｉ−１）ｑ（ｉ−１）−ｉ−ｉ−ｉ    …（４）
【００３８】
ここで、ｘ（ｉ−２）は（ｉ−２）番目の部分の余りであり、ｑ（ｉ−２）番目の部分の平方根、そして、ｑ−（ｉ−１）は番目のルートのデジットである。
【００３９】
式（４）で、項２ｑ（ｉ−２）＋ｑ−（ｉ−１）２−ｉ＋１ をＣ（ｉ−２）に代置し、項２ｑ（ｉ−１）＋ｑ−ｉ２−ｉ をＣ（ｉ−１）に代置すれば、式４は次のように簡略化されることができる。
ｘ（ｉ）＝４ｘ（ｉ−１）Ｃ（ｉ−２）−（ｉ−１）Ｃ（ｉ−１）−ｉ …（５）
【００４０】
ここで、式（５）において、Ｃ（ｉ−２）は（ｉ−２）番目の補正項であり、Ｃ（ｉ−１）はｉ番目の繰り返し演算の補正項である。
【００４１】
平方根演算も、割り算のように、各繰り返し演算で部分の余りによってルートのデジットを選択し、補正項を生成して次の部分の余りを求める。
【００４２】
本発明の基数−２平方根演算アルゴリズムも、本発明の基数−２割り算アルゴリズムのように、ルートデジットセットとして｛−１、０、＋１｝を使用する。
本発明の基数−２平方根演算アルゴリズムで、ｉ番目のルートデジットｑ−ｉ は（ｉ−１）番目の部分の余りｘ（ｉ−１）により下のように決められる。
ｘ（ｉ−１）<−１／２であればｑ−ｉ＝−１
−１／２≦ｘ（ｉ−１）<１／２であれば、ｑ−ｉ＝０
ｘ（ｉ−１）≧１／２であればｑ−ｉ＝＋１
【００４３】
本発明の基数−２平方根演算アルゴリズムは（ｉ−２）番目の部分の余りｘ（ｉ−２）の４ビットに基づいて、ｉ番目のルートデジットｑ−ｉを予測する。本発明の基数−２平方根演算アルゴリズムは、（ｉ−２）番目の補正項Ｃ（ｉ−２）の生成と同時に、ｉ番目の部分の余りの計算に必要な（ｉ−１）番目の補正項Ｃ（ｉ−１）を生成する。特に、（ｉ−１）番目の補正項Ｃ（ｉ−１）の生成において、ｉ番目のルートデジットｑ−ｉ＝＋１になる場合の補正項とｑ−ｉ＝−１になる場合の補正項とが、予め同時に生成される。このように求められた（ｉ−１）番目のルートのデジットｑ−（ｉ−１）、ｉ番目のルートのデジットｑ−ｉ、（ｉ−２）番目の補正項Ｃ（ｉ−２）、ｑ−ｉ＝＋１になる場合のｉ番目の補正項とｑ−ｉ＝−１になる場合のｉ番目の補正項とによって、二つの条件的部分の余りｘ１及びｘ２が計算され、この条件的部分の余りｘ１及びｘ２のうちの一つが、最終的に決められたｉ番目のルートのデジットｑ−ｉの値に従って、ｘ（ｉ）として選択される。
【００４４】
上述のように、本発明の基数−２平方根演算アルゴリズムは、（ｉ−１）番目の部分の余りｘ（ｉ−１）を求めるための繰り返し演算の省略を可能にする。したがって、本発明の基数−２平方根演算アルゴリズムによれば、従来の基数−２ＳＲＴ平方根演算アルゴリズムに比べて、繰り返し演算遂行時間が１／２に減るが、従来の基数−４ＳＲＴ平方根演算のアルゴリズムとは異なり、各繰り返し演算の遅延時間が増加しない。
【００４５】
本発明によるルートデジットの予測は、下の条件に従って遂行される。
【００４６】
被個数ｚ＝ｚ２ｚ１ｘ０．ｚ−１ｚ−２．．．であり、部分の余りｘ（ｉ）＝ｘ２ｘ１ｘ０．ｘ−１ｘ−２．．．とする。
ｉ番目ルートデジットｑ−ｉの予測、ケース１：ｚ−１＝０  and ｘ２＝０（ｉ'th Root Digit  ｑ−ｉ  Prediction  Case１：ｚ−１＝０ and ｘ２＝０）
ｚ−１＝０、そしてｘ２＝０である場合に、ｑ−（ｉ−１）は常に＋１になる。
このような初期の条件下で、
（１）もし ０≦ｘ（ｉ−２）<１ であれば ｘ（ｉ−１）<−１／２ である。
したがって、ｑ−ｉ＝−１になる。
（２）もし １≦ｘ（ｉ−２）<５／４、そして ｘ（ｉ−１）<−１／２ である場合は ｑ−ｉ＝−１ になり、もし １≦ｘ（ｉ−２）<５／４、そして −１／２≦ｘ（ｉ−１）<１／２である場合は ｑ−ｉ＝０になる。
（３）もし ５／４≦ｘ（ｉ−２）<３／２、そして −１／２≦ｘ（ｉ−１）<１／２ である場合は ｑ−ｉ＝０になり、もし ５／４≦ｘ（ｉ−２）<３／２、そして ｘ（ｉ−１）≧１／２である場合はｑ−ｉ＝＋１ になる。
（４）もし ３／２≦ｘ（ｉ−２）<３ であればｘ（ｉ−１）≧１／２になり、ｑ−ｉ＝＋１になる。
（５）もし ３≦ｘ（ｉ−２）<１３／４、そして ｘ（ｉ−１）<−１／２ である場合はｑ−ｉ＝−１になり、もし ３≦ｘ（ｉ−２）<１３／４、そしてｘ（ｉ−１）≧１／２ になる場合は ｑ−ｉ＝＋１になる。
（６）もし ｘ（ｉ−２）≧１３／４ であれば、ｘ（ｉ−１）<−１／２ になる。したがって、ｑ−ｉ＝−１ になる。
ｉ番目ルートデジットｑ−ｉの予測、ケース２：ｚ−１＝０ and ｘ２＝１（ｉ'th Root Digit  ｑ−ｉ Prediction Case２：ｚ−１＝０ and ｘ２＝１）
ｚ−１＝０、そしてｘ２＝１である場合に、ｑ−（ｉ−１）は常に−１になる。このような初期条件下で、先の場合（ｑ−ｉ Prediction Case１：Ｚ−１＝０ and ｘ２＝０）と同一の条件下で、ルートのデジットを求めることができることをこの分野の通常的な知識を有する者は良く理解できる。
【００４７】
上の結果に従って、ｉ番目のルートのデジットｑ−ｉを予測するための、ルートデジット予測テーブルＲＰＴを作ることが可能である。次の表５は、被個数ｚ＝ｚ２ｚ１ｚ０．０ｚ−２．．．であり、部分の余りｘ（ｉ）＝０ｘ１ｘ０．ｘ−１ｘ−２．．．である場合（ｑ−ｉ  Prediction Case １：ｚ−１＝０ and ｘ２＝０）に予測されたｉ番目のルートのデジットｑ−ｉを示し、表６は、被個数ｚ＝ｚ２ｚ１ｚ０．０Ｚ−２．．．であり、部分の余りｘ（ｉ）＝１ｘ１ｘ０．ｘ−１ｘ−２．．．である場合（ｑ−ｉ  Prediction Case ２：ｚ−１＝０ and ｘ２＝１）に予測されたｉ番目のルートのデジットｑ−ｉを示している。
【００４８】
【表５】
0003941868.tif 000006
【００４９】
表５で、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝０００.１０ｘ−３ｘ−４．．．である場合（ｉ−１）番目のルートのデジットｑ−（ｉ−１）は‘＋１’または‘−１’になる。（ｉ−１）番目のルートのデジットｑ−（ｉ−１）＝＋１である場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生すれば、ｉ番目のルートのデジットｑ−ｉは‘１’になり、また、この場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生しなくても、ｉ番目のルートのデジットｑ−ｉやはり‘−１’になる。また、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝０１０.１１ｘ−３ｘ−４．．．であり、（ｉ−１）番目のルートのデジットｑ−（ｉ−１）＝−１である場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、キャリー−インが発生すれば、ｉ番目のルートのデジットｑ−ｉは‘０’になり、また、この場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、キャリー−インが発生しなければ、ｉ番目のルートのデジットｑ−ｉは‘−１’になる。
【００５０】
【表６】
0003941868.tif 000007
【００５１】
表６で、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝１０１.０１ｘ−３ｘ−４．．．である場合（ｉ−１）番目のルートのデジットｑ−（ｉ−１）は‘＋１’または‘−１’になる。（ｉ−１）番目のルートのデジットｑ−（ｉ−１）＝＋１である場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生すれば、ｉ番目のルートのデジットｑ−ｉは‘−１’になり、また、この場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローが発生しなければ、ｉ番目のルートのデジットｑ−ｉは‘０’になる。また、例えば、（ｉ−２）番目の部分の余りｘ（ｉ−２）＝１１０．１１ｘ−３ｘ−４．．．であり、（ｉ−１）番目のルートのデジットｑ−（ｉ−１）＝−１である場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算でキャリー−インが発生すれば、ｉ番目のルートのデジットｑ−ｉは‘＋１’になり、また、この場合に、（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、キャリー−インが発生しなければ、ｉ番目のルートのデジットｑ−ｉは‘０’になる。
【００５２】
次の表７及び８は、被個数ｚ＝０１.１１０１１０である場合に、従来の基数−２ＳＲＴ平方根演算アルゴリズムにより得られる平方根演算の結果と、本発明の基数−２平方根演算アルゴリズムにより得られる平方根演算の結果とを、各々示している。
【００５３】
【表７】
0003941868.tif 000008
【００５４】
【表８】
0003941868.tif 000009
【００５５】
従来の基数−２ＳＲＴ平方根演算アルゴリズムは、表７で示したように、各繰り返し演算で、部分の余りの関係に従って各ルートのデジットを決め、決められたルートのデジットを使用して、次の部分の余りを計算するので、浮動少数点のデジット(Whole Bits＋Fraction Bits )の数と同一の数の繰り返し演算が必要である。
【００５６】
一方、本発明の基数−２平方根演算アルゴリズムによれば、表８で示したように、初期部分の余りｘ（０）からルートのデジットｑ０ 及びｑ−１ が求められ、ｑ０ 及びｑ−１ に基づいてルートデジット予測テーブルＲＰＴがｑ−２ を予測する。（従来の基数−２ＳＲＴ平方根演算アルゴリズムによれば、ｑ−２ は二番目の繰り返し演算から求められる。）そして、デジットｑ０ 、ｑ−１ 及びｑ−２ により一番目の部分の余りｘ（１）が計算される。二番目の繰り返し演算で、ｘ（１）からｑ−３ が計算され、ｑ−３ に基づいてルート予測テーブルＲＰＴがｑ−４ を予測する（従来の基数−２ＳＲＴ平方根演算アルゴリズムによれば、ｑ−４ 四番目の繰り返し演算から求められる）。そして、デジットｑ−３ 及びｑ−４ により二番目の部分の余りｘ（２）が計算される。三番目の繰り返し演算で、ｘ（２）からｑ−５ が計算され、ｑ−５ に基づいてルート予測テーブルＲＰＴがｑ−６ を予測する。（従来の基数−２ＳＲＴ平方根演算アルゴリズムによれば、ｑ−６ は六番目の繰り返し演算から求められる）。そして、デジットｑ−５ 及びｑ−６ により三番目の部分の余りｘ（３）が計算される。
【００５７】
したがって、本発明の基数−２平方根演算アルゴリズムによれば、従来の基数−２ＳＲＴ平方根演算アルゴリズムの一番目の部分の余りｘ（１）、三番目の部分の余りｘ（３）、及び五番目の部分の余りｘ（５）を求めるための繰り返し演算を省略することができるので、本発明のアルゴリズムの待ち時間は、従来の基数−２ＳＲＴアルゴリズムに比べて１／２に減る。さらに、本発明の基数−２平方根演算アルゴリズムのそれと同一であるので、本発明の基数−２平方根演算アルゴリズムは、従来の基数−２ＳＲＴ平方根演算アルゴリズムに比べて、さらに速いスピードで平方根演算を遂行できる。
【００５８】
図１は、本発明による割り算及び／または平方根計算装置１の機能的回路ブロック図である。
割り算及び／または平方根計算装置１は、割り算／平方根演算の遂行に必要なクロック信号ＣＬＫｓと制御信号を供給する制御器１０、割り算のための除数ｄを貯蔵するための除数レジスタ１２、（ｉ−２）番目の商デジットｑ−（ｉ−２）を貯蔵するための、または（ｉ−２）番目のルートのデジットｑ−（ｉ−２）を含む（ｉ−２）番目の部分の平方根ｑ（ｉ−２）を貯蔵するための商／ルートレジスタ１４、（ｉ−２）番目の部分の余りｘ（ｉ−２）を貯蔵するための余りレジスタ１６、を備える。また、割り算／平方根計算装置１は、（ｉ−２）番目の部分の余りｘ（ｉ−２）により（ｉ−１）番目の商／ルートのデジットｑ−（ｉ−１）を選択する商／ルートデジット選択器１８、及び（ｉ−１）番目の商デジットｑ−（ｉ−１）を貯蔵するための、または（ｉ−１）番目のルートのデジットｑ−（ｉ−１）を含む（ｉ−１）番目の部分の平方根ｑ（ｉ−１）を貯蔵するための商／ルートレジスタ２０、を備える。
【００５９】
マルチプレクサ２２は、除数レジスタ１２の内容（すなわち、除数ｄ）と、レジスタ１４の内容、(すなわち、商デジットｑ−（ｉ−２）またはルートのデジットｑ−（ｉ−２）を含む（ｉ−２）番目の部分の平方根ｑ（ｉ−２）)のうちのいずれか一つを、補正項生成器２６に選択的に提供する。マルチプレクサ２４は、レジスタ１２の内容（すなわち、除数ｄ）と商／ルートレジスタ２０の内容（すなわち。商デジットｑ−（ｉ−１）またはルートのデジットｑ−（ｉ−１）を含む（ｉ−１）番目の部分の平方根ｑ（ｉ−１））のうちのいずれか一つを、補正項生成器２８及び３０で選択的に提供する。具体的には、割り算の間に、マルチプレクサ２２及び２４は、除数レジスタ１２に貯蔵された除数ｄを、補正項生成器２６、２８及び３０に提供する。平方根演算の間には、マルチプレクサ２２が（ｉ−２）番目の部分の平方根ｑ（ｉ−２）を補正項生成器２６に提供し、マルチプレクサ２４が（ｉ−１）番目の部分の平方根ｑ（ｉ−１）を、補正項生成器２８及び３０に提供する。
【００６０】
補正項生成器２６は（ｉ−２）番目の補正項を生成する。補正項生成器２８及び３０は（ｉ−１）番目の補正項を生成する。特に、補正項生成器２８は、ｉ番目の商／ルートのデジットｑ−１＝１であることの仮定下で、（ｉ−１）番目の補正項を生成し、補正項生成器３０は、ｉ番目の商／ルートのデジットｑ−１＝−１であることの仮定の下で、（ｉ−１）番目の補正項を生成する。補正項生成器２６、２８及び３０は、補正項を同時に生成する。補正項生成器２６の出力は減算器３２及び３４に提供され、補正項生成器２８及び３０の出力は減算器３２及び３４に各々提供される。
【００６１】
減算器３２、３４は、余りレジスタ１６の内容（すなわち、ｘ（ｉ−２））が供給される。減算器３２は、（ｉ−２）番目の部分の余りｘ（ｉ−２）のレフト−シフトされた値４ｘ（ｉ−２）から、補正項生成器２６の出力そして／または補正項生成器２８の出力を引く。類似するに、減算器３４は（ｉ−２）番目の部分の余りｘ（ｉ−２）のレフト−シフトされた値４ｘ（ｉ−２）から補正項生成器２６の出力、そして／または補正項生成器３０の出力、を引く。減算器３２は、割り算時に（ｉ−２）番目の部分の余りのレフト−シフトされた値４ｘ（ｉ−２）から、補正項生成器２８の出力を引く。減算器３２は、平方根演算時に（ｉ−２）番目の部分の余りのレフト−シフトされた値４ｘ（ｉ−２）から、補正項生成器２６及び補正項生成器２８の出力を引く。減算器３４は、割り算時に（ｉ−２）番目の部分の余りのレフト−シフトされた値４ｘ（ｉ−２）から補正項生成器３０の出力を引く。減算器３４は、平方根演算時に、（ｉ−２）番目の部分の余りのレフト−シフトされた値４ｘ（ｉ−２）から、補正項生成器２６及び補正項生成器３０の出力を引く。減算器３２及び３４の出力ｘ１、ｘ２は、マルチプレクサ３６に提供される。
【００６２】
図１で、参照番号３８は、キャリー伝播検出器（Carry Propagation Detecter）を示す。キャリー伝播検出器３８は（ｉ−２）番目の補正項から（ｉ−１）番目の部分の余りｘ（ｉ−１）の計算で、ボローまたはキャリー−インが発生するか否かを検出する。キャリー伝播検出技術は、与えられた位置で、キャリーが発生するか、伝播されるか、または消滅されるかを検出することであり、この技術の分野で、よく知られていることであるので、ここでは、それに対する詳細な説明は省略する。
【００６３】
本発明による割り算／平方根計算(演算)を行う計算装置１は、二つの商／ルートデジット予測テーブルロジック４０及び４２を備える。商／ルートデジット予測テーブルロジック４０は、先の表１、２、５及び６のボローまたはキャリー−インが発生する場合（すなわち、Borrow／Carry-in ＝１ ）のｉ番目の商／ルートデジットを有している。一方、商／ルートデジット予測テーブルロジック４２は、先の表１、２、５、６のボローまたはキャリー−インが発生しない場合（すなわち、Borrow／Carry-in ＝１ ）のｉ番目の商／ルートデジットを有している。商／ルートデジット予測テーブルロジック４０及び４２は、余りレジスタ１６の内容（すなわち、ｘ（ｉ−２））と商／ルートレジスタ２０の内容（すなわち、ｑ−（ｉ−１）とが供給される。
【００６４】
商／ルートデジット予測テーブルロジック４０は、余りレジスタ１６の内容（すなわち、ｘ（ｉ−２））と商／ルートレジスタ２０との内容（すなわち、ｑ−（ｉ−１））に対応する、ｉ番目の条件的商／ルートのデジットｑ１（すなわち、Borrow／Carry-in ＝１ である場合の、ｉ番目の商／ルートのデジット）を予測する。商／ルートデジット予測テーブルロジック４２は、レジスタ１６の内容（すなわち、ｘ（ｉ−２））と商／ルートレジスタ２０の内容（すなわち、ｑ−（ｉ−１））とに対応する、ｉ番目の条件的商／ルートのデジットｑ２（すなわち、Borrow／Carry-in ＝０である場合の、ｉ番目の商／ルートのデジット）を予測する。
【００６５】
商／ルートデジット予測テーブルロジック４０及び４２の出力ｑ１、ｑ２は、マルチプレクサ４４に提供される。マルチプレクサ４４は、キャリー伝播検出器３８の出力に応答して、商／ルートデジット予測テーブルロジック４０及び４２の出力ｑ１、ｑ２のうちの一つを選択し、マルチプレクサ４４の出力ｑ１またはｑ２がｉ番目の商／ルートのデジットｑ−ｉ として決められる。
【００６６】
マルチプレクサ４４から出力されるｉ番目の商／ルートのデジットｑ−ｉ は、マルチプレクサ３６に提供されると同時に、レジスタ４６に貯蔵される。一方、マルチプレクサ３６は、ｉ番目の商／ルートのデジットｑ−ｉ に応答して、減算器３２及び３４の出力ｘ１、ｘ２のうちの一つを選択し、マルチプレクサ３６の出力のｘ１またはｘ２は、ｉ−１番目の部分の余りｘ（ｉ）として余りレジスタ４８に貯蔵される。
【００６７】
以上のように、本発明の割り算及び平方根計算装置１で、補正項生成器と部分の余りを計算するブロックが割り算及び平方根演算のために共有される。したがって、本発明の割り算及び平方根計算装置１は小さい面積オーバーヘッド（Area Overhead）を有する。
【００６８】
【発明の効果】
本発明の基数−２アルゴリズムによれば、（ｉ−１）番目の部分の余りの計算に必要な（ｉ−１）番目の補正項が（ｉ−２）番目の補正項と同時に生成されるので、（ｉ−１）番目の部分の余りを求めるための繰り返し演算の省略が可能となった。したがって、従来の基数−２ＳＲＴアルゴリズムに比べて繰り返し演算時間が１／２に減るが、従来の基数−４ＳＲＴアルゴリズムとは異なり、各繰り返し演算の遅延時間が増えることがない。また、本発明による割り算及び平方根計算装置の補正項生成器及び部分の余りの計算ブロックが、割り算及び平方根演算のために共有されるので、本発明による割り算及び平方根計算装置は、小さい面積オーバーヘッドを有することとなる。
【図面の簡単な説明】
【図１】本発明による割り算(及び／または)平方根計算を行う計算装置の機能的回路ブロック図である。
【符号の説明】
１    割り算(及び／または)平方根計算(演算)を行う計算装置
１０  制御器
１２  除数レジスタ
１４、２０、４６  商／ルートレジスタ
１６、４８  余りレジスタ
１８  商／ルートデジット選択器
２２、２４、３６、４４  マルチプレクサ
２６、２８、３０  補正項生成器
３２、３４  減算器
３８  キャリー伝播検出器（ＣＰＤ）
４０、４２  商／ルートデジット予測テーブルロジック（Ｑ／ＲＰＴ）
【図１】
0003941868.tif 000010