(57)【特許請求の範囲】
【請求項１】
多項式演算のための部分積発生装置であって、
和が乗数（ｍｕｌｔｉｐｌｉｅｒ）となる２つの入力に基づいて、キャリーの発生に関する相互排他的な値のうち何れか１つをそれぞれ出力する複数の第１エンコーダと、
前記複数の第１エンコーダのうち、前記入力の基準ビットの位置に設けられた第１の第１エンコーダの出力と、前記入力の基準ビットに隣接する上位ビットの位置に設けられた第２の第１エンコーダの出力と、前記入力の基準ビットに隣接する下位ビットの位置に設けられた第３の第１エンコーダの出力と、被乗数（ｍｕｌｔｉｐｌｉｃａｎｄ）とに基づいて、２つの部分積（ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）候補値を生成及び出力する第２エンコーダと、
前記入力の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記第２エンコーダから出力された前記部分積候補値のうち１つを選択するマルチプレクサと、
を含み、
前記相互排他的な値は、Ｐ（Ｐｒｏｐａｇａｔｉｏｎ）値、Ｇ（Ｇｅｎｅｒａｔｉｏｎ）値、及びＴ（Ｔｅｒｍｉｎａｔｉｏｎ）値を含み、
前記Ｐ値は前記下位ビットでキャリーが発生すれば前記基準ビットでもキャリーが発生する状態を表わし、前記Ｇ値は前記基準ビットでキャリーが発生した状態を表わし、前記Ｔ値は前記下位ビットでキャリーが発生しても前記基準ビットでキャリーが発生しない状態を表わす、
装置。
【請求項２】
前記第２エンコーダは、前記第１の第１エンコーダの出力と前記第２の第１エンコーダの出力と前記第３の第１エンコーダの出力とに基づいて、キャリー予測値を生成及び出力する機能をさらに含む、請求項１に記載の装置。
【請求項３】
前記複数の第１エンコーダのうち、前記入力の他の基準ビット位置に設けられた第４の第１エンコーダの出力と、前記入力の他の基準ビットに隣接する上位ビット位置に設けられた第５の第１エンコーダの出力と、前記入力の他の基準ビットに隣接する下位ビットの位置に設けられた第６の第１エンコーダの出力と、前記被乗数とに基づいて、さらに他の２つの部分積候補値を生成及び出力し、
前記第４の第１エンコーダの出力と前記第５の第１エンコーダの出力と前記第６の第１エンコーダの出力に基づいて、キャリー予測値を生成及び出力するさらに他の第２エンコーダと、
前記入力の他の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記さらに他の第２エンコーダから出力された前記さらに他の２つの部分積候補値のうち１つを選択するさらに他のマルチプレクサと、
を含む請求項２に記載の装置。
【請求項４】
前記部分積候補値は、前記キャリーが前記下位ビットで発生したときの第１部分積候補値、及び前記キャリーが前記下位ビットで発生しないときの第２部分積候補値を含む、請求項３に記載の装置。
【請求項５】
前記さらに他の二番目の第１エンコーダは、Ｒａｄｉｘ−４  Ｂｏｏｔｈエンコーディングアルゴリズムに基づいて、前記部分積候補値及び前記さらに他のキャリー予測値をさらに生成させる、請求項３に記載の装置。
【請求項６】
前記第２の第１エンコーダ及び前記第４の第１エンコーダのそれぞれは、前記入力の偶数ビット位置に設けられる、請求項３に記載の装置。
【請求項７】
前記入力は、一連の乗算過程で生成される先行部分積（ｐｒｅｃｅｄｅｎｃｅ  ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）のビット値を受信する、請求項１乃至６いずれか一項に記載の装置。
【請求項８】
前記第１エンコーダのそれぞれは前記入力のビット位置に形成される、請求項１乃至７いずれか一項に記載の装置。
【請求項９】
多項式演算のための部分積発生方法であって、
複数の第１エンコーダが、和が乗数（ｍｕｌｔｉｐｌｉｅｒ）となる２つの入力に基づいて、キャリーの発生に関する相互排他的な値のうち何れか１つをそれぞれ出力することと、
第２エンコーダが、前記複数の第１エンコーダのうち、前記入力の基準ビットの位置に設けられた第１の第１エンコーダの出力と、前記入力の基準ビットに隣接する上位ビットの位置に設けられた第２の第１エンコーダの出力と、前記入力の基準ビットに隣接する下位ビットの位置に設けられた第３の第１エンコーダの出力と、被乗数（ｍｕｌｔｉｐｌｉｃａｎｄ）とに基づいて、２つの部分積（ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）候補値を生成及び出力することと、
マルチプレクサが、前記入力の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記第２エンコーダから出力された前記部分積候補値のうち１つを選択することと、
を含み、
前記相互排他的な値は、Ｐ（Ｐｒｏｐａｇａｔｉｏｎ）値、Ｇ（Ｇｅｎｅｒａｔｉｏｎ）値、及びＴ（Ｔｅｒｍｉｎａｔｉｏｎ）値を含み、
前記Ｐ値は前記下位ビットでキャリーが発生すれば前記基準ビットでもキャリーが発生する状態を表わし、前記Ｇ値は前記基準ビットでキャリーが発生した状態を表わし、前記Ｔ値は前記下位ビットでキャリーが発生しても前記基準ビットでキャリーが発生しない状態を表わす、
方法。
【請求項１０】
前記第２エンコーダが、前記第１の第１エンコーダの出力と前記第２の第１エンコーダの出力と前記第３の第１エンコーダの出力とに基づいて、キャリー予測値を生成及び出力することをさらに含む、請求項９に記載の方法。
【請求項１１】
さらに他の第２エンコーダが、
前記複数の第１エンコーダのうち、前記入力の他の基準ビット位置に設けられた第４の第１エンコーダの出力と、前記入力の他の基準ビットに隣接する上位ビット位置に設けられた第５の第１エンコーダの出力と、前記入力の他の基準ビットに隣接する下位ビットの位置に設けられた第６の第１エンコーダの出力と、前記被乗数とに基づいて、さらに他の２つの部分積候補値を生成及び出力し、
前記第４の第１エンコーダの出力と前記第５の第１エンコーダの出力と前記第６の第１エンコーダの出力に基づいて、キャリー予測値を生成及び出力することと、
さらに他のマルチプレクサが、前記入力の他の基準ビットに隣接する下位ビットにおける前記キャリーの発生に基づいて、前記さらに他の第２エンコーダから出力された前記さらに他の２つの部分積候補値のうち１つを選択することと、
を含む請求項９に記載の方法。
【請求項１２】
前記部分積候補値は、前記キャリーが前記下位ビットで発生したときの第１部分積候補値、及び前記キャリーが前記下位ビットで発生しないときの第２部分積候補値を含む、請求項９に記載の方法。
【請求項１３】
前記入力は、一連の乗算過程で生成される先行部分積のビット値を含む、請求項９乃至１２いずれか一項に記載の方法。
【請求項１４】
コンピュータにより実行されたとき、前記コンピュータに請求項９乃至１３いずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多項式演算のための部分積発生装置及び方法に関する。
【背景技術】
【０００２】
最近のイメージプロセッシング機器または多様なマルチメディア機器は、加算、減算、乗算、除算のような基本的な演算以外に三角関数、ログ関数、及び指数関数のような超越関数の演算を必要とする。このような複雑な超越関数は、ソフトウェアのコンパイル段階で、加算、乗算などの基本演算で分解して処理するように支援されることもできる。しかし、そのような分解は、プロセッサ内部に専用の処理ユニットを設けて、超越関数を処理する方式に比べて、処理時間が非常に長い。映像情報は、処理時間が性能にかかわる重要な指標なので、一般的に専用の処理ユニットを設けたプロセッサが映像情報処理時の超越関数の演算に活用されている。
【０００３】
デジタル機器内で、このような超越関数が処理される方式としては、主に乗算と加算の演算とを利用した方法が使われている。すなわち、超越関数の演算は、多項式の展開によって結果を求める。この際、多項式とは、定数といくつかの変数の積からなる単項式の和からなる。これは、より基本的な演算の構成で考えてみれば、一連の連続した乗算と、これら結果の加算とで構成される。そのうち、乗算の演算は、基本的な算術演算でありながら、また、長い処理時間を要する。したがって、このような乗算の演算の展開時間を減らせれば、全体的な多項式の演算時間を減らすことができて、より高速のデジタル機器を実施することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、多項式演算のための部分積発生装置及び方法を提供することである。
【課題を解決するための手段】
【０００５】
本発明の一態様による多項式演算のための部分積発生装置は、乗数（ｍｕｌｔｉｐｌｉｅｒ）と関連した２つの入力に基づいて、互いに排他的な値のうち何れか１つをそれぞれ出力する複数の第１エンコーダと、前記入力の基準ビットから提供される前記複数の第１エンコーダのうち、最初の第１エンコーダの出力、前記入力の上位ビットから提供される前記位置に対応する前記複数の第１エンコーダのうち、二番目の第１エンコーダの出力及び被乗数（ｍｕｌｔｉｐｌｉｃａｎｄ）に基づいて、２つの部分積（ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）候補値を生成及び出力する第２エンコーダと、前記第２エンコーダから出力された前記部分積候補値のうち１つを選択するマルチプレクサと、を含みうる。
【０００６】
前記入力は、乗数と関連する。
【０００７】
前記第２エンコーダは、前記複数の第１エンコーダのうち、前記最初の第１エンコーダの出力と前記二番目の第１エンコーダの出力とに基づいて、キャリー予測値を生成及び出力する機能をさらに含みうる。
【０００８】
装置は、前記入力の他の基準ビット位置から提供される前記複数の第１エンコーダのうち、さらに他の最初の第１エンコーダの出力、前記入力のさらに他の上位ビット位置から提供される前記第１エンコーダのうち、さらに他の二番目の第１エンコーダの出力、前記第１エンコーダのうち、前記二番目の第１エンコーダの出力、及び前記被乗数に基づいて、さらに他の２つの部分積候補値を生成及び出力し、前記複数の第１エンコーダのうち、前記さらに他の最初の第１エンコーダの出力、前記第１エンコーダの前記さらに他の二番目の第１エンコーダの出力、及び前記第１エンコーダのうち、前記二番目の第１エンコーダの出力に基づいて、キャリー予測値を生成及び出力するさらに他の二番目の第１エンコーダと、前記二番目の第１エンコーダから出力された前記部分積候補値に基づいて、前記さらに他の二番目の第１エンコーダから出力された前記さらに他の部分積候補値のうち１つを選択するさらに他のマルチプレクサと、をさらに含みうる。
【０００９】
装置は、前記入力の他の基準ビット位置から提供される前記複数の第１エンコーダのうち、さらに他の最初の第１エンコーダの出力、前記入力のさらに他の上位ビット位置から提供される前記第１エンコーダのうち、さらに他の二番目の第１エンコーダの出力、及び前記第１エンコーダのうち、前記二番目の第１エンコーダの出力に基づいて、さらに他の２つの部分積候補値を生成させ、前記エンコーディング候補値のそれぞれに、前記被乗数を乗算して、さらに他の２つの部分積候補値を生成及び出力するさらに他の二番目の第１エンコーダと、前記二番目の第１エンコーダから出力された前記部分積候補値に基づいて、前記さらに他の二番目の第１エンコーダから出力された前記さらに他の部分積候補値のうち１つを選択するさらに他のマルチプレクサと、をさらに含みうる。
【００１０】
前記エンコーディング候補値は、キャリーが前記入力の下位ビットで発生する場合に対する第１エンコーディング候補値、及び前記キャリーが前記下位ビットで発生しない場合に対する第２エンコーディング候補値を含みうる。
【００１１】
前記さらに他の二番目の第１エンコーダは、Ｒａｄｉｘ−４  Ｂｏｏｔｈエンコーディングアルゴリズムに基づいて、前記エンコーディング候補値及び前記さらに他のキャリー予測値をさらに生成することができる。
【００１２】
前記二番目の第１エンコーダ及び前記さらに他の二番目の第１エンコーダのそれぞれは、前記入力の偶数ビット位置から提供されうる。
【００１３】
前記入力は、一連の乗算過程で生成される先行部分積（ｐｒｅｃｅｄｅｎｃｅ  ｐａｒｔｉａｌ  ｐｒｏｄｕｃｔ）のビットを受信することができる。
【００１４】
前記最初の第１エンコーダのそれぞれは、前記入力のビット位置に形成されうる。
【００１５】
前記相互排他的な値は、Ｐ（Ｐｒｏｐａｇａｔｉｏｎ）値、Ｇ（Ｇｅｎｅｒａｔｉｏｎ）値、及びＴ（Ｔｅｒｍｉｎａｔｉｏｎ）値を含みうる。
【００１６】
前記Ｐ値は、前記入力の下位ビットでキャリーが発生すれば、前記入力の基準ビットでもキャリーが発生する状態を表わし、前記Ｇ値は、前記基準ビットで前記キャリーが発生する状態を表わし、前記Ｔ値は、前記下位ビットで前記キャリーが発生しても、前記基準ビットで前記キャリーが発生しない状態を表わすことができる。
【００１７】
本発明の他の態様による多項式演算のための部分積発生方法は、２つの入力に基づいて、相互排他的な値であり、入力の基準ビット位置及び上位ビット位置にそれぞれ配されるＰＧＴ値（Ｐｒｏｐａｇａｔｉｏｎ  Ｇｅｎｅｒａｔｉｏｎ  Ｔｅｒｍｉｎａｔｉｏｎ  ｖａｌｕｅ）を生成させる段階と、前記ＰＧＴ値及び被乗数に基づいて、２つの部分積候補値を生成させる段階と、前記部分積候補値のうちから何れか１つを選択する段階と、を含みうる。
【００１８】
前記入力は、被乗数と関連する。
【００１９】
方法は、前記ＰＧＴ値に基づいて、キャリー予測値を生成させる段階をさらに含みうる。方法は、前記入力に基づいて、相互排他的な値であり、前記入力のさらに他の基準ビット位置、さらに他の上位ビット位置、及び前記上位ビット位置に、それぞれ配されるさらに他のＰＧＴ値を生成させる段階と、前記さらに他のＰＧＴ値に基づいて、２つのエンコーディング候補値及びさらに他のキャリー予測値を生成させる段階と、前記エンコーディング候補値のそれぞれに、前記被乗数を乗算して、さらに他の２つの部分積候補値を生成させる段階と、前記キャリー予測値に基づいて、前記さらに他の部分積候補値のうち１つを選択する段階と、をさらに含みうる。
【００２０】
前記エンコーディング候補値は、前記入力の下位ビットでキャリーが発生する場合に対する第１エンコーディング候補値、及び前記キャリーが前記下位ビットで発生しない場合に対する第２エンコーディング候補値を含みうる。
【００２１】
前記相互排他的な値は、Ｐ値、Ｇ値、及びＴ値を含み、前記Ｐ値は、前記入力の下位ビットでキャリーが発生すれば、前記入力の基準ビットでも、キャリーが発生する状態を表わし、前記Ｇ値は、前記基準ビットで前記キャリーが発生する状態を表わし、前記Ｔ値は、前記下位ビットで前記キャリーが発生しても、前記基準ビットで前記キャリーが発生しない状態を表わすことができる。
【００２２】
前記入力は、一連の乗算過程で生成される先行部分積のビット値を含みうる。
【００２３】
方法は、コンピュータでその方法を実施するための命令語を含むプログラムを保存するコンピュータで読取り可能な非一時的な記録媒体に保存することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態による多項式演算のための部分積発生装置の構成を示す図である。
【図２】本発明の一実施形態による第１エンコーダの構成を示す図である。
【図３】本発明の一実施形態による第２エンコーダの構成を示す図である。
【図４】本発明の他の実施形態による第２エンコーダの構成を示す図である。
【図５】本発明の一実施形態によるマルチプレクサの構成を示す図である。
【図６】本発明の一実施形態による多項式演算のための部分積発生方法の流れを示す図である。
【発明を実施するための形態】
【００２５】
以下、添付図面を参照して、本発明の実施のための具体的な例を詳しく説明する。
【００２６】
図１は、本発明の一実施形態による多項式演算のための部分積発生装置１００の構成を示す図である。
【００２７】
部分積発生装置１００は、第１エンコーダ１０１、第２エンコーダ１０２、及びマルチプレクサ１０３を含む。第１エンコーダ１０１は、乗数と関連した２つの入力を受信する。例えば、乗数が‘Ｘ’とする時、第１エンコーダ１０１は、乗数‘Ｘ’と関連した入力‘Ａ’と‘Ｂ’とを受信することができる。それぞれの入力‘Ａ’と‘Ｂ’は、一連の乗算過程で生成される先行部分積になりうる。例えば、乗数‘Ｘ’は、入力‘Ａ’と‘Ｂ’との和で表現される。
【００２８】
第１エンコーダ１０１は、入力の各ビットの位置に形成されうる。もし、入力６ビット長の２つの先行部分積が入力‘Ａ’及び‘Ｂ’である場合、第１エンコーダ１０１は、各ビット位置別に６つが形成されうる。例えば、ｎ番目−第１エンコーダ１０１ａの入力は、‘Ａ［２］’と‘Ｂ［２］’とになりうる。入力‘Ａ［２］’は、乗数‘Ｘ’と関連した何れか１つの先行部分積の３番目のビット値になり、入力‘Ｂ［２］’は、乗数‘Ｘ’と関連した他の１つの先行部分積の３番目のビット値になりうる。理解を助けるために、ｎ番目のビット値に対応する位置を‘基準ビット位置’と称する。
【００２９】
第１エンコーダ１０１は、受信された２つの入力によって互いに排他的な３つの値のうち何れか１つを出力する。例えば、第１エンコーダ１０１は、Ｐ値、Ｇ値、及びＴ値のうち何れか１つの値をＰＧＴ値で出力することが可能である。ＰＧＴ値は、各ビット位置でのキャリー発生と関連した値になりうる。Ｐ値は、下位ビットでキャリーが発生すれば、基準ビットでもキャリーが発生する状態を表わし、Ｇ値は、基準ビットでキャリーが発生した状態を表わし、Ｔ値は、下位ビットでキャリーが発生しても、基準ビットでキャリーが発生しない状態を表わすことができる。例えば、ｎ番目−第１エンコーダ１０１ａは、ビット入力である入力‘Ａ［２］’と‘Ｂ［２］’とによって、Ｐ値（例えば、‘１００’）、Ｇ値（例えば、‘０１０’）、またはＴ値（例えば、‘００１’）のうち何れか１つの値を選択的に出力することができる。ここで、ＰＧＴ値が、３ビットのデータであると説明したが、これは、理解を助けるための例示であって、その他にも多様な変形が可能であるということはいうまでもない。
【００３０】
第２エンコーダ１０２は、隣接した第１エンコーダ１０１のＰＧＴ値の出力を受信する。例えば、ｎ番目−第２エンコーダ１０２ａは、基準ビット位置に対応するｎ番目−第１エンコーダ１０１ａのＰＧＴ値の出力、上位ビット位置に対応するｎ＋１番目−第１エンコーダ１０１ｂのＰＧＴ値の出力、及び下位ビット位置に対応するｎ−１番目−第１エンコーダ１０１ｃのＰＧＴ値の出力を受信することができる。
【００３１】
第２エンコーダ１０２は、さらに、被乗数を受信する。もし、被乗数が‘Ｙ’であれば、第２エンコーダ１０２は、‘Ｙｎ’及び‘Ｙｎ−１’を受信することができる。ここで、Ｙｎは、元の被乗数を、Ｙｎ−１は、１ビットシフトされた被乗数を表わす。
【００３２】
第２エンコーダ１０２は、隣接した第１エンコーダ１０１のＰＧＴ値の出力と被乗数に基づいて、２つの部分積候補値とキャリー予測値（ｃａｒｒｙ  ｅｓｔｉｍａｔｉｏｎ）とを生成する。例えば、ｎ番目−第２エンコーダ１０２ａは、２ｎ番目−第１エンコーダ１０１ａのＰＧＴ値の出力、２ｎ＋１番目−第１エンコーダ１０１ｂのＰＧＴ値の出力、及び２ｎ−１番目−第１エンコーダ１０１ｃのＰＧＴ値の出力を受信する。２ｎ番目−第２エンコーダ１０２ａは、Ｒａｄｉｘ−４  Ｂｏｏｔｈエンコーディングアルゴリズムに基づいて、２つのエンコーディング候補値とキャリー予測値‘ｅ１’とを生成した後、２つのエンコーディング候補値と被乗数‘Ｙ’とをそれぞれ乗算して、２つの部分積候補値‘ｐｐ１＿０’と‘ｐｐ１＿１’とを生成することができる。２つの部分積候補値‘ｐｐ１＿０’と‘ｐｐ１＿１’とのうち何れか１つは、下位ビットでキャリーが発生した時の部分積になり、他の１つは、下位ビットでキャリーが発生しなかった時の部分積になりうる。
【００３３】
第２エンコーダ１０２は、Ｒａｄｉｘ−４  Ｂｏｏｔｈ余剰エンコーディングのために、偶数ビットの位置に形成されうる。例えば、第２エンコーダ１０２は、ｎ−２番目、ｎ番目、ｎ＋２番目のビット位置にそれぞれ形成されうる。
【００３４】
マルチプレクサ１０３は、基準ビット位置に対応する第２エンコーダ１０２の部分積候補値の出力と下位ビット位置に対応する第２エンコーダ１０２のキャリー予測値の出力とを受信する。例えば、ｎ番目−マルチプレクサ１０３ａは、ｎ番目−第２エンコーダ１０２ａの部分積候補値の出力‘ｐｐ１＿０’及び‘ｐｐ１＿１’とｎ−２番目−第２エンコーダ１０２ｂのキャリー予測値の出力‘ｅ０’とを受信することができる。
【００３５】
マルチプレクサ１０３は、下位ビット位置の第２エンコーダ１０２のキャリー予測値の出力に基づいて、基準ビット位置の第２エンコーダ１０２の部分積候補値の出力のうち何れか１つを選択する。例えば、ｎ番目−マルチプレクサ１０３ａは、ｎ番目−第２エンコーダ１０２ａの部分積候補値の出力‘ｐｐ１＿０’及び‘ｐｐ１＿１’のうち何れか１つをｎ−２番目−第２エンコーダ１０２ｂのキャリー予測値の出力‘ｅ０’に基づいて選択することが可能である。
【００３６】
本発明の一態様によって、第１エンコーダ１０１の出力をＰＧＴ値とする時、第１エンコーダ２００は、２つの入力‘Ａ’と‘Ｂ’とに基づいて、‘Ｐ値’、‘Ｇ値’、及び‘Ｔ値’のうち何れか１つを出力する。この際、２つの入力とＰＧＴ値の関係は、次のように定義されうる。
（数式１）
Ｐｎ＝Ａｎ  ＸＯＲ  Ｂｎ
Ｇｎ＝Ａｎ  ＡＮＤ  Ｂｎ
Ｔｎ＝〜（Ａｎ  ＯＲ  Ｂｎ）
Ｐｎ、Ｇｎ、Ｔｎは、それぞれＰＧＴ値のそれぞれのビット値を表わす。
【００３７】
前記の数式１を表で表わせば、次の通りである。
【００３８】
【表１】
0006309196.tif 000002
数式１及び表１のように、ＰＧＴ値は、２つの入力に対して相互排他的な３種の値のうちから何れか１つの値のみ有することが分かる。数式１及び表１のように動作する第１エンコーダ１０１は、多様な方式を通じて実施可能である。
【００３９】
図２は、その一例を示す図である。例えば、第１エンコーダ１０１は、ＸＯＲ論理ゲート、ＡＮＤ論理ゲート、ＮＯＲ論理ゲートなどを含みうる。ＸＯＲ論理ゲート、ＡＮＤ論理ゲート、及びＮＯＲ論理ゲートは、２つの入力Ａｎ及びＢｎを受信する。ＸＯＲ論理ゲートは、入力Ａｎ及びＢｎに基づいて、ＰＧＴ値の最初のビット値であるＰｎ値を出力し、ＡＮＤ論理ゲートは、入力Ａｎ及びＢｎに基づいて、ＰＧＴ値の二番目のビット値であるＧｎ値を出力し、ＮＯＲ論理ゲートは、入力Ａｎ及びＢｎに基づいて、ＰＧＴ値の三番目のビット値であるＴｎ値を出力する。図２の実施形態で、第１エンコーダ１０１が、ＸＯＲ論理ゲート、ＡＮＤ論理ゲート、及びＮＯＲ論理ゲートを含むが、これは、例示に過ぎず、他の論理ゲート、例えば、ＯＲ論理ゲート、ＮＡＮＤ論理ゲート、または当業者に知られたそれ以外の論理ゲートが使われることもある。
【００４０】
図３は、第２エンコーダ１０２の一例を示す図である。第２エンコーダ１０２は、エンコーディング候補値生成部３０１、キャリー予測値生成部３０２、及び部分積候補値生成部３０３を含みうる。
【００４１】
エンコーディング候補値生成部３０１及びキャリー予測値生成部３０２は、３つの隣接した第１エンコーダ（例えば、図１の１０１ａ、１０１ｂ、１０１ｃ）からそれぞれ出力されるＰＧＴ値であるＰＧＴｎ＋１、ＰＧＴｎ＋２、ＰＧＴｎ＋３を受信する。エンコーディング候補値生成部３０１は、２つのエンコーディング候補値ＢＥ１及びＢＥ０をＰＧＴ値であるＰＧＴｎ＋１、ＰＧＴｎ＋２、ＰＧＴｎ＋３に基づいて生成し、キャリー予測値生成部３０２は、キャリー予測値ｅをＰＧＴ値であるＰＧＴｎ＋１、ＰＧＴｎ＋２、ＰＧＴｎ＋３に基づいて生成する。例えば、エンコーディング候補値生成部３０１及びキャリー予測値生成部３０２は、隣接したビット位置の第１エンコーダ１０１ａ、１０１ｂ、１０１ｃ（図１参照）のＰＧＴ値によって、次の表のようなエンコーディングを行う。
【００４２】
【表２】
0006309196.tif 000003
表２の例で、ＰＧＴフィールドの値が‘ＰＰＰ’であれば、これは、各ビットの位置にＰＧＴ値であるＰＧＴｎ＋１、ＰＧＴｎ＋２、ＰＧＴｎ＋３が、いずれも‘Ｐ値’で出力された場合を表わすことができる。‘ＢＥ０’及び‘ＢＥ１’は、２つのエンコーディング候補値を表わし、‘ｅ’は、キャリー予測値を表わす。すなわち、表２のように、エンコーディング候補値生成部３０１は、ＰＧＴ値によって、−２、−１、０、１、２のうち何れか１つの値を有する２つのエンコーディング候補値ＢＥ１、ＢＥ０を生成させ、キャリー予測値生成部３０２は、０、１のうち何れか１つの値を有するキャリー予測値を生成することが可能である。
【００４３】
部分積候補値生成部３０３は、２つのエンコーディング候補値‘ＢＥ０’、‘ＢＥ１’と被乗数‘Ｙ’とに基づいて、２つの部分積候補値‘ＰＰ０’及び‘ＰＰ１’を生成する。例えば、部分積候補値生成部３０３は、エンコーディング候補値ＢＥ１、ＢＥ０のそれぞれに被乗数Ｙを乗算して、部分積候補値ＰＰ０及びＰＰ１を生成する。
【００４４】
表２のように動作する第２エンコーダ１０２は、多様な方式を通じて実施可能である。第２エンコーダ１０２の実施方法を他の例として説明すれば、次の通りである。表２のようなエンコード結果を求めるのは、最終的に部分積を得るためである。したがって、エンコーディング候補値‘−２’、‘−１’、‘０’、‘１’、‘２’に基づいて、次の３種の命令を定義し、該定義された命令に基づいて部分積を生成させる設計技法が使われる。
【００４５】
＊  Ｓｈｉｆｔ：エンコーディング候補値＋２と−２とに対応し、入力値（例えば、被乗数Ｙ）を１ビット位置だけ移動する
＊  Ｚｅｒｏ：エンコーディング候補値０に対応し、０を出力する
＊  Ｎｅｇａｔｉｏｎ：エンコーディング候補値−１、−２に対応し、入力値（例えば、被乗数Ｙ）に対する補数値を得る
この３種の命令と条件（例えば、エンコーディング候補値の発生条件）とを簡略に表わせば、次の表３のようである。
【００４６】
【表３】
0006309196.tif 000004
前記の表は、部分積を生成させる論理構造で使われる各Ｎｅｇａｔｉｏｎ、Ｚｅｒｏ、Ｓｈｉｆｔの値を定義したものである。ここで、各値は、０と１との論理状態を有し、Ｘは、“ｄｏｎ’ｔ−ｃａｒｅ”条件で如何なる値を有しても良い。したがって、前記の表のような論理値でＸの状態を適切に調整すれば、ＰＧＴ値から各Ｎｅｇａｔｉｏｎ、Ｓｈｉｆｔ、Ｚｅｒｏを求める論理式をより簡単にできる。これに対する１つの実施形態は、次の表４ないし表６のようになる。
【００４７】
【表４】
0006309196.tif 000005
0006309196.tif 000006
Ｓｈｉｆｔ０、Ｓｈｉｆｔ１、Ｚｅｒｏ０、Ｚｅｒｏ１、Ｎｅｇ０、及びＮｅｇ１は、それぞれＳｈｉｆｔｎｏ−ｃａｒｒｙ、Ｓｈｉｆｔｃａｒｒｙ、Ｚｅｒｏｎｏ−ｃａｒｒｙ、Ｚｅｒｏｃａｒｒｙ、Ｎｅｇａｔｉｏｎｎｏ−ｃａｒｒｙ、及びＮｅｇａｔｉｏｎｃａｒｒｙの論理表現を表わす。
【００４８】
一方、ＰＧＴ値のＰ値、Ｇ値、Ｔ値は、相互排他的であり、例えば、３種のうちただ１つの値のみＡｃｔｉｖｅ状態である‘１’なので、各命令は、次の数式２のように簡単な論理式で表現される。
（数２）
Ｓｈｉｆｔｎｏ−ｃａｒｒｙ＝Ｐｎ  ＸＯＲ  Ｔｎ−１
Ｓｈｉｆｔｃａｒｒｙ＝Ｐｎ  ＸＯＲ  Ｇｎ−１
Ｚｅｒｏｎｏ−ｃａｒｒｙ＝〜Ｐｎ＋１  ＸＯＲ  Ｔｎ
Ｚｅｒｏｃａｒｒｙ＝〜Ｐｎ＋１  ＸＯＲ  Ｇｎ
Ｎｅｇａｔｉｏｎｎｏ−ｃａｒｒｙ＝Ｐｎ＋１  ＸＯＲ（Ｇｎ  ＯＲ（Ｐｎ  ＡＮＤ  〜Ｔｎ−１））
Ｎｅｇａｔｉｏｎｃａｒｒｙ＝Ｐｎ＋１  ＸＯＲ（Ｇｎ  ＯＲ（Ｐｎ  ＡＮＤ  〜Ｔｎ−１））
数式２及び表２ないし表６のように動作する第２エンコーダ１０２は、多様な方式を通じて実施可能である。第２エンコーダ１０２は、ＸＯＲ、ＡＮＤ、ＮＯＲ論理ゲートなどに基づいて、２つの部分積候補値ＰＰ０、ＰＰ１を生成させる部分４０１とキャリー予測値ｅｎを生成させる部分４０２とを含みうる。たとえ図４の実施形態で、第２エンコーダ１０２が、ＸＯＲ、ＡＮＤ、及びＯＲ論理ゲートを含むが、これは、例示に過ぎず、ＮＯＲ論理ゲート、ＮＡＮＤ論理ゲート、及び当業者に知られたそれ以外の論理ゲートが使われることもある。
【００４９】
より詳細には、部分４０１が、ＰＧＴ値のビット値であるＰｎ、Ｐｎ＋１、Ｇｎ、Ｇｎ＋１、Ｔｎ、及びＴｎ＋１と被乗数Ｙｎとを受信して、Ｐｎ、Ｐｎ＋１、Ｇｎ、Ｇｎ＋１、Ｔｎに基づいて、論理表現Ｓｈｉｆｔｎｏ−ｃａｒｒｙ、Ｓｈｉｆｔｃａｒｒｙ、Ｚｅｒｏｎｏ−ｃａｒｒｙ、Ｚｅｒｏｃａｒｒｙ、Ｎｅｇａｔｉｏｎｎｏ−ｃａｒｒｙ、及びＮｅｇａｔｉｏｎｃａｒｒｙのビット値であるＳ０、Ｓ１、Ｚ０、Ｚ１、及びＮを生成することもできる。ビット値Ｓ０、Ｓ１、Ｚ０、Ｚ１、及びＮと被乗数Ｙｎ及びＹｎ＋１とに基づいて、部分４０１は、部分積候補値ＰＰ０、ＰＰ１を生成することができる。部分４０２は、ビット値Ｐｎ、Ｐｎ＋１、Ｇｎ、Ｇｎ＋１、Ｔｎを受信して、Ｐｎ、Ｐｎ＋１、Ｇｎ、Ｇｎ＋１、Ｔｎに基づいて、キャリー予測値ｅｎを生成することもできる。
【００５０】
図５は、マルチプレクサ１０３の一例を示す図である。マルチプレクサ１０３は、２つのＡＮＤ論理ゲート及び１つのＯＲ論理ゲートを含む。マルチプレクサ１０３は、基準ビット位置の２つの部分積候補値‘ＰＰ０’、‘ＰＰ１’と下位ビット位置のキャリー予測値‘ｅｎ−２’とを受信し、キャリー予測値‘ｅｎ−２’に基づいて、２つの部分積候補値‘ＰＰ０’及び‘ＰＰ１’のうち何れか１つを選択して、最終部分積‘ＰＰｎ’に出力することが可能である。たとえ図５の例で、マルチプレクサ１０３が、ＡＮＤ及びＯＲ論理ゲートを含んでいるが、これは、例示であり、ＡＮＤ論理ゲート及び当業者に知られたそれ以外の論理ゲートも使われる。
【００５１】
図６は、本発明の一実施形態による多項式のための部分積発生方法を示す図である。図１及び図６を参照して、本実施形態による部分積発生方法を説明すれば、次の通りである。
【００５２】
まず、ＰＧＴ値が生成される（６０１）。例えば、第１エンコーダ１０１が、表１及び数式１のように、乗数と関連した２つの入力に基づいて、互いに排他的な値と定義されるＰ値、Ｇ値、及びＴ値のうち何れか１つの値を生成して、ＰＧＴ値として出力することが可能である。
【００５３】
そして、部分積候補値及びキャリー予測値が生成される（６０２）。例えば、第２エンコーダ１０２が、表２ないし表４及び数式２のように、入力のビットに対する基準ビット位置、上位ビット位置、及び下位ビット位置のＰＧＴ値に基づいて、２つのエンコーディング候補値とキャリー予測値とを生成させ、２つのエンコーディング候補値と被乗数とをそれぞれ乗算して、２つの部分積候補値を生成することが可能である。
【００５４】
そして、部分積候補値のうち何れか１つが選択される（６０３）。例えば、マルチプレクサ１０３が、下位ビット位置のキャリー予測値に基づいて、２つの部分積候補値のうちから何れか１つを選択することが可能である。
【００５５】
前述したように、開示された実施形態によれば、それぞれの部分積候補値とキャリー予測値とが基準ビット位置と隣接したＰＧＴ値にのみ依存的であり、相互独立的、並列的に求められるために、入力値のビットの長さが増加しても、キャリー伝達による遅延を減らすことができる。例えば、高速の処理のために、パイプラインステージが増加する時、分解しにくい長い処理時間を必要とするＣＰＡ（Ｃａｒｒｙ  Ｐｒｏｐａｇａｔｉｏｎ  Ａｄｄｅｒ）に比べて、本開示の装置は、一貫性があり、小さく、論理的に分割可能な構造で構成されているので、さらに有利に作用する。さらに、提示された構造は、入力のビットの長さが大きくなっても、一定の処理時間のみを要求するので、さらに大きな乗算器に適用すれば遅延の減少効果はさらに増加する。
【００５６】
一方、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして実施しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【００５７】
コンピュータで読み取り可能な記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ保存装置などがあり、また、キャリアウェーブ（例えば、インターネットを介した伝送）の形態で実施するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータにより読み取り可能なコードとして保存されて実行可能である。そして、本発明を実施するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
【００５８】
さらに、前述した実施形態は、本発明を例示的に説明するためのものであって、本発明の権利範囲が、特定の実施形態に限定されるものではない。
【産業上の利用可能性】
【００５９】
本発明は、多項式演算のための部分積発生装置及び方法関連の技術分野に適用可能である。
【符号の説明】
【００６０】
１００  部分積発生装置
１０１  第１エンコーダ
１０２  第２エンコーダ
１０３  マルチプレクサ
３０１  エンコーディング候補値生成部
３０２  キャリー予測値生成部
３０３  部分積候補値生成部
４０１  部分積候補値を生成させる部分
４０２  キャリー予測値を生成させる部分
【図１】
0006309196.tif 000007
【図２】
0006309196.tif 000008
【図３】
0006309196.tif 000009
【図４】
0006309196.tif 000010
【図５】
0006309196.tif 000011
【図６】
0006309196.tif 000012