(57)【要約】      （修正有）【課題】ｎビットデータの二乗演算を行うために用いられる拡張可能二乗器を提供する。【解決手段】拡張可能二乗器は、ビット拡張回路と、複数の演算ユニットとを具える。前記ビット拡張回路は、複数のビット拡張データを出力するｎ−１個のビット拡張出力端子を具える。前記演算ユニットは、バイナリ重みにしたがって、これらに対応する前記ｎビットデータの複数のビットコードを受ける。加えて、最上位ビットのビットコードを除いて、他の演算ユニットは、個々の前記ビット拡張回路による対応するビット拡張データ出力を受ける。本発明は、対応するビット拡張データ及びビットコードに基づいて前記ｎビットデータの二乗演算値を発生する。【選択図】図７
2006039743.tif 000002
【特許請求の範囲】
【請求項１】
ｎビットデータの二乗演算を行う拡張可能二乗器において、ｎが０に等しくない正の整数であり、該拡張可能二乗器は、
対応するビット拡張データを出力するｎ−１個のビット拡張出力端子を有するビット拡張回路であって、ｉ番目のビット拡張データは、
【数１】
2006039743.tif 000009
であり、ｂｎ−１、ｂｊ及びｂｉ＋１は、ｎビットデータのｎ−１番目、ｊ番目及びｉ＋１番目のビットコードであり、ｉ、ｊ及びｋは正の整数である、ビット拡張回路と、
複数の演算ユニットであって、最上位ビットのビットコードを受ける演算ユニットを除いてバイナリ重みにしたがってｎビットデータのビットコードを受ける、複数の演算ユニットとを具え、前記ビット拡張出力端子に結合された前記演算ユニットの入力端子は、前記ビット拡張データを受けるこれらに対応し、前記演算ユニットの各々は、演算子を発生するために、前記ビット拡張データと前記ビットコード及び２の二乗とを乗算し、前記ビットコードの二乗値を加えることを特徴とする拡張可能二乗器。
【請求項２】
請求項１に記載の拡張可能二乗器において、前記演算ユニットの出力を受け、前記演算ユニットの出力を、
【数２】
2006039743.tif 000010
のように演算する加算演算ユニットをさらに具え、Ｓｉは、ｉ番目のビットコードを受ける前記演算ユニットから発生された演算子を表わし、Ｃｎ−１は、最上位ビットのビットコードを受ける前記演算ユニットから発生された、前記最上位ビットのビットコードの二乗に等しい演算子を表わすことを特徴とする拡張可能二乗器。
【請求項３】
請求項１に記載の拡張可能二乗器において、バイナリ重みに従ってビットコードを発生するデコーダをさらに具えることを特徴とする拡張可能二乗器。
【請求項４】
請求項１に記載の拡張可能二乗器において、前記ｎビットデータの最上位ビットのビットコードは、前記ｎビットデータが正か否かを決定する符号ビットを表わすことを特徴とする拡張可能二乗器。
【請求項５】
ｎビットデータの二乗値を演算する二乗演算の方法において、ｎはｎビットコードを具える正の整数であり、該二乗演算の方法は、
ｎ−１ビット拡張データを発生するステップであって、ｉ番目のビット拡張データは、
【数３】
2006039743.tif 000011
であり、ｂｎ−１、ｂｊ及びｂｉ＋１は、ｎビットデータのｎ−１番目、ｊ番目及びｉ＋１番目のビットコードであり、ｉ、ｊ及びｋは正の整数である、ステップと、
最上位ビットのビットコードを受ける演算ユニットを除いて、前記ビットコードの各々が、複数の計算を発生するために、前記ビット拡張データの１つと乗算するステップと、
前記演算子を、
【数４】
2006039743.tif 000012
にしたがって演算し、前記ｎビットデータの二乗値を発生するステップとを含み、
Ｓｉは、ｉ番目のビットコードを受ける前記演算ユニットから発生された演算子を表わし、Ｃｎ−１は、最上位ビットのビットコードを受ける前記演算ユニットから発生された、前記最上位ビットのビットコードの二乗に等しい演算子を表わすことを特徴とする、二乗演算の方法。
【請求項６】
請求項５に記載の二乗演算の方法において、前記ｎビットデータの最上位ビットのビットコードは、前記ｎビットデータが正か否かを決定する符号ビットを表わすことを特徴とする二乗演算の方法。
【請求項７】
請求項５に記載の二乗演算の方法において、前記ｎビットデータが負である場合、前記ビット拡張データは演算前に反転されることを特徴とする二乗演算の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二乗器に関し、より特には拡張可能二乗器に関する。
【背景技術】
【０００２】
二乗演算は、ＶＬＳＩ回路、通信システム及びレーダシステムにおいて広く用いられてきた。以前には、乗算器が二乗演算を行うのに用いられてきた。複雑な演算システム又は集積回路により、何十万の乗算器が必要とされる。これは、コストの増加を招く。
【０００３】
この問題を解決するため、二乗演算技術及び回路が開発されてきた。図１は、ブース乗算の表である。図１を参照すると、ｙは被乗数を表わし、ｘは乗数を表わし、ｉはビット数及び整数を表わす。ブース法は、演算ごとに３ビットをチェックし、２ビットをスキップする。したがって、図１に示されるように、１ビットは重なり、部分積の項のｍ／２列が発生される。
【０００４】
図２は、先行技術の二乗器の部分的な乗算行列である。図２を参照すると、Ａはビットコードを表わし、下付き文字はビットコードのビットを表わす。図２において、４ビットデータ（Ａ０Ａ１Ａ２Ａ３）二乗演算の部分乗算行列を示す。
【０００５】
加えて、ブース符号化方法も二乗演算に用いられる。例えば、ブース符号化方法が８ビットデータに関する二乗演算を行う前に、この８ビットデータは以下のように示される。
−ｂ７２７＋ｂ６２６＋・・・＋ｂ０２０＝Ｂ３２６＋Ｂ２２４＋Ｂ１２２＋Ｂ０２０
ここで、ｂは８ビットデータのビットコードを表わし、下付き文字はビットコードのビットを表わす。Ｂ１、Ｂ２、Ｂ３及びＢ４は、ブース符号化方法による演算を表わし、以下のように示される。
Ｂｉ＝−２ｂ２ｉ＋１＋ｂ２ｉ＋ｂ２ｉ−１
【０００６】
図３は、８ビットブース法による部分的に折り畳まれた乗算行列である。図３を参照すると、８ビットデータの二乗値は、以下のように示されることができる。
（２Ｂ３２６＋２Ｂ２２４＋２Ｂ１２２）×Ｂ０２０＋Ｂ０×２０
＋（２Ｂ３２４＋２Ｂ２２２）×Ｂ１２４＋Ｂ１×２Ｂ１４
＋（２Ｂ３２２）×Ｂ２２８＋Ｂ２×Ｂ２２８
＋Ｂ３×Ｂ３２１２
この式は、以下のように単純化されることができる。
（Ｐ０２３＋Ｃ０）＋（Ｐ１２３＋Ｃ１）２４＋（Ｐ２２３＋Ｃ２）２８＋Ｃ３２１２
ここで、Ｐ及びＣは、以下の式によって表わされる。
Ｃｉ＝Ｂｉ×Ｂｉ      ｉ＝１，．．．，４
Ｐｉ＝（−ｂ７２５−２ｉ＋ｂ６２４−２ｉ＋・・・＋ｂ２ｉ＋２２０＋ｂ２ｉ＋１２０）×Ｂｉ
ｉ＝０，．．．，２
【０００７】
これらの先行技術の方法は、大きいサイズの回路を必要とする。この要求は、回路の集積の傾向と衝突する。
【０００８】
したがって、本発明は、回路のサイズを効率的に減少する拡張可能二乗器に向けられる。
【０００９】
本発明は、データ二乗演算に関する上述した拡張可能二乗器に関する二乗演算の方法にも向けられる。
【００１０】
本発明は、ｎビットデータの二乗演算を行う拡張可能二乗器を開示する。ｎは、０に等しくない正の整数である。拡張可能二乗器は、ビット拡張回路及び複数の演算ユニットを具える。ビット拡張回路は、対応するビット拡張データを出力するｎ−１個のビット拡張出力端子を有し、ｉ番目のビット拡張データは、
【数１】
2006039743.tif 000003
であり、ｂｎ−１、ｂｊ及びｂｉ＋１は、ｎビットデータのｎ−１番目、ｊ番目及びｉ＋１番目のビットコードを表わし、ｉ、ｊ及びｋは、正の整数である。複数の演算ユニットは、バイナリ重みにしたがってｎビットデータのビットコードを受ける。最上位ビットのビットコードを受ける演算ユニットを除いて、演算ユニットの入力端子は、ビット拡張データを受けるために、これらに対応するビット拡張出力端子に結合される。演算ユニットの各々は、ビット拡張データにビットコードと２の二乗とを乗算し、ビットコードの二乗値を加え、演算子を発生する。
【００１１】
本発明の実施例において、拡張可能二乗器は、前記演算ユニットの出力を受け、前記演算ユニットの出力を以下のように演算する加算演算ユニットをさらに具える。
【数２】
2006039743.tif 000004
ここで、Ｓｉは、ｉ番目のビットコードを受ける演算ユニットから発生された演算子を表わし、Ｃｎ−１は、最上位ビットのビットコードを受ける演算ユニットから発生された、最上位ビットのビットコードの二乗に等しい演算子を表わす。
【００１２】
いくつかの実施例において、拡張可能二乗器は、バイナリ重みにしたがってビットコードを発生するデコーダをさらに具える。
【００１３】
本発明は、ｎビットデータの二乗値を演算する二乗演算方法も開示する。この方法は、ｎ−１ビット拡張データを発生するステップを含み、ここで、ｉ番目のビット拡張データは、
【数３】
2006039743.tif 000005
であり、ｂｎ−１、ｂｊ及びｂｉ＋１は、ｎビットデータのｎ−１番目、ｊ番目及びｉ＋１番目のビットコードを表わし、ｉ、ｊ及びｋは、正の整数である。最上位ビットのビットコードを受ける演算ユニットを除いて、ビットコードの各々は、複数の計算を発生するために、ビット拡張データの１つに乗算される。前記計算は、複数の演算子を発生するために、２を乗算され、これらに対応するビットコードの二乗値を加算される。ｎビットデータの二乗値は、以下の式にしたがって前記演算子を演算することによって発生される。
【数４】
2006039743.tif 000006
ここで、Ｓｉは、ｉ番目のビットコードを受ける演算ユニットから発生された演算子を表わし、Ｃｎ−１は、最上位ビットのビットコードを受ける演算ユニットから発生された、最上位ビットのビットコードの二乗に等しい演算子を表わす。
【００１４】
したがって、本発明は、前記式を用いる。前記演算ユニットは、前記演算子を、前記ビットコード及びこれらに対応するビット拡張データにしたがって、ｎビットデータの二乗値を発生するために発生する。これらの式によって、本発明の拡張可能二乗器は、有効に減少されることができる。したがって、システム全体のサイズも減少する。
【００１５】
本発明の上述した及び他の目的、特徴及び利点を理解可能にするために、図を伴う好適実施例は、以下に詳細に記載される。
【発明を実施するための最良の形態】
【００１６】
以下は、４ビット及び８ビットデータに関する二乗演算の説明である。
【００１７】
４ビットデータを記述する式は、以下に示される。
Ｂ＝−ｂ３２３＋ｂ２２２＋ｂ１２１＋ｂ０２０
ここで、ｂは４ビットデータのビットコードを表わし、下付き文字はビットコードのビットを表わす。４ビットデータに関する二乗演算は、図４における行列として示すことができる。
【００１８】
図４は、本発明の一実施例による４ビットデータに関する二乗演算の演算行列である。図４を参照すると、この行列は、以下の式（１）によって表わすことができる。
Ｂ２＝（−２ｂ３２３＋２ｂ２２２＋２ｂ１２１）×ｂ０２０＋ｂ０×ｂ０２０
＋（−２ｂ３２２＋２ｂ２２１）×ｂ１２２＋ｂ１×ｂ１２２
＋（−２ｂ３２１）×ｂ２２４＋ｂ２×ｂ２２４
＋ｂ３×ｂ３２６                                            （１）
式（１）は以下のように簡単にすることができる。
Ｓ０＋Ｓ１２２＋Ｓ２２４＋Ｃ０２６
ここで、Ｓ及びＣは式（２）のように表わすことができる。
Ｓｊ＝（Ｐｊ２２＋Ｃｆ）      ｊ＝０，．．．，２
Ｃｉ＝ｂｉ×ｂｉ      ｉ＝０，．．．，２                    （２）
ここで、Ｐｊは以下のように規定される。
Ｐｉ＝（−ｂ３２２−ｉ＋ｂ２２１−ｉ＋ｂｉ＋１２０）×ｂｉ
ｉ＝０，．．．，２
ここで、この式の一部はＢＥｉによって表わされ、Ｐｉは式（３）において示される。
Ｐｉ＝ＢＥｉ×ｂｉ                    （３）
【００１９】
以下は、８ビットデータに関する二乗演算の説明である。８ビットデータを記述する式は、以下に示される。
Ｂ＝−ｂ７２７＋ｂ６２６＋ｂ５２５＋ｂ４２４＋ｂ３２３＋ｂ２２２＋ｂ１２１＋ｂ０２０
【００２０】
８ビットデータに関する二乗演算は、図５における行列のように示すことができる。
【００２１】
図５は、本発明の一実施例による５ビットデータに関する二乗演算の演算行列である。図５を参照すると、この行列は以下の式によって表わすことができる。
Ｂ２＝（−２ｂ７２７＋２ｂ６２６＋２ｂ５２５＋２ｂ４２４＋２ｂ３２３＋２ｂ２２２＋２ｂ１２１）×ｂ０２０＋ｂ０×ｂ０２０
＋（−２ｂ７２６＋２ｂ６２５＋２ｂ５２４＋２ｂ４２３＋２ｂ３２２＋２ｂ２２１）×ｂ１２２＋ｂ１×ｂ１２２
＋（−２ｂ７２５＋２ｂ６２４＋２ｂ５２３＋２ｂ４２２＋２ｂ３２１）×ｂ２２４＋ｂ２×ｂ２２４
＋（−２ｂ７２４＋２ｂ６２３＋２ｂ５２２＋２ｂ４２１）×ｂ３２６＋ｂ３×ｂ３２６
＋（−２ｂ７２３＋２ｂ６２２＋２ｂ５２１）×ｂ４２８＋ｂ４×ｂ４２８
＋（−２ｂ７２２＋２ｂ６２１）×ｂ５２１０＋ｂ５×ｂ５２１０
＋（−２ｂ７２１）×ｂ６２１２＋ｂ６×ｂ６２１２
＋ｂ７×ｂ７２１４
この式は以下のように簡単にすることができる。
Ｓ０＋Ｓ１２２＋Ｓ２２４＋Ｓ３２６＋Ｓ４２８＋Ｓ５２１０＋Ｓ６２１２＋Ｃ７２１４
ここで、Ｓ及びＣは式（２）のように表わすことができる。
Ｓｊ＝（Ｐｊ２２＋Ｃｆ）      ｊ＝０，．．．，６
Ｃｉ＝ｂｉ×ｂｉ      ｉ＝０，．．．，７                    （２）
ここで、Ｐｊは以下のように規定される。
Ｐｉ＝（−ｂ７２６−ｉ＋ｂ６２５−ｉ＋・・・＋ｂ２２１−ｉ＋ｂｉ＋１２０）×ｂｉ
ｉ＝０，．．．，２
ここで、この式の一部はＢＥｉによって表わされ、Ｐｉは式（３）において示される。
【００２２】
図６は、本発明の一実施例による二乗演算の方法を示すフローチャートである。４ビット及び８ビットデータに関する二乗演算にしたがって、本発明は、ｎビットデータに関する二乗演算を開示する。図６を参照すると、本発明は、ｎビットデータに関する二乗演算を行う。ｎビットデータは以下のように示すことができる。
Ｂ＝ｂｎ−１２ｎ−１＋ｂｎ−２２ｎ−２＋・・・＋ｂ０２０
【００２３】
ステップＳ６０１は、ｎ−１ビット拡張データＢＥを発生し、ｉ番目の拡張データＢＥは、以下のように示すことができる。
【数５】
2006039743.tif 000007
【００２４】
ステップＳ６２０において、式（３）において示されるような計算Ｐを発生するために、すべてのビット拡張データは、これらに対応するビットコードと乗算する。ステップＳ６３０において、以下に示されるような演算子Ｓを発生するために、すべての計算Ｐは、２の二乗と乗算し、次に、これらに対応するビットコードの二乗を加算する。
Ｓｊ＝（Ｐｊ２２＋Ｃｊ）      ｊ＝０，．．．，ｎ−２
Ｃｉ＝ｂｉ×ｂｉ      ｉ＝０，．．．，ｎ−１
【００２５】
ステップＳ６４０は、以下のようなすべての演算子Ｓによるｎビットデータの二乗演算の結果を発生する。
【数６】
2006039743.tif 000008
【００２６】
ｎビットデータの最上位ビットのビットコードは、ｎビットデータが正かそうでないかを決定する符号ビットを表わすことができる。ｎビットデータが負である場合、ビット拡張データＢＥは、演算前に反転されるべきである。
【００２７】
図７は、本発明の一実施例によるｎビットデータ用の拡張可能二乗器を示すブロック図である。図７を参照すると、この拡張可能二乗器の設計は、前記二乗演算の方法にしたがう。ビット拡張回路７０１は、ｎ−１個のビット拡張データ（ＢＥ０〜ＢＥｎ−２）を演算ユニット（Ａ０〜Ａｎ−２）に出力するｎ−１個のビット拡張出力端子を具える。図７を参照すると、本拡張可能二乗器は、バイナリ重みにしたがってｎビットデータのｎビットコードを受けるｎ個の演算ユニット（Ａ０〜Ａｎ−１）をさらに具える。
【００２８】
図７を参照すると、本拡張可能二乗器は、デコーダ７０３及び加算演算ユニットをさらに具える。デコーダ７０３は、対応する演算ユニットにｎビットコードを発生する演算ユニット（Ａ０〜Ａｎ−１）の入力端子に結合される。すべての演算ユニットは、ｎビットデータの二乗演算に関して、入力データにしたがって演算子を加算演算ユニット７０５に発生する。デコーダ７０３がｎビットデータをｎビットコード（ｂ０〜ｂｎ−１）にデコードした後、ビットコード（ｂ０〜ｂｎ−１）を演算ユニット（Ａ０〜Ａｎ−１）に伝送する。最上位ビットのビットコードを受ける演算ユニットＡｎ−１を除いて、他の演算ユニットは、図６におけるステップＳ６２０及びＳ６３０において示されるように、ビット拡張データＢＥｉ及びビットコードｂｉにしたがって、演算子（Ｓ０〜Ｓｎ−２）を加算演算ユニット７０５に発生する。演算ユニットＡｎ−１は、演算子Ｃｎ−１を加算演算ユニット７０５に発生及び伝送するために、受けたビットコードｂｎ−１を二乗する。加算演算ユニット７０５は、ステップＳ６４０において示されるように、演算ユニット（Ａ０〜Ａｎ−２）からの出力にしたがって、ｎビットデータの二乗を発生する。
【００２９】
図８は、本発明の一実施例による１６ビットデータ用の拡張可能二乗器を示すブロック図である。図８を参照すると、巨大なデータ演算用の回路のサイズを縮小するために、本発明の拡張可能二乗器は、モジュール技術を使用する。図８における拡張可能二乗器は、ビット拡張回路８０１と、デコーダ８０３と、加算演算ユニット８０５とを具える。異なるのは、演算ユニットが、例えば、演算モジュール８１０によって置き換えられることができることである。他の項目は、図６及び７において説明されたものと同様である。詳細な説明は繰り返されない。
【００３０】
図８における１６ビット拡張可能二乗器はモジュール技術によって実現されるが、本発明はこれに限定されない。当業者は、モジュール技術が４ビット及び８ビット拡張可能二乗器に用いられることができることを理解するであろう。演算モジュールにおける演算ユニットの数は、特に制限されない。
【００３１】
したがって、本発明の二乗演算にしたがって設計された拡張可能二乗器は、ｎビット二乗演算を実行することができる。本発明は、拡張可能二乗器を設計するために、ｎビットデータを直接二乗する。したがって、拡張可能二乗器のコストは下がる。加えて、拡張可能二乗器は、回路のサイズを縮小するために、モジュール技術に適合することができる。したがって、システム全体のコストは下げられる。
【００３２】
本発明は、好例の実施例によって説明されたが、これらに限定されない。むしろ、添付された実施例は、本発明の等価物の範囲から逸脱することなく当業者によって形成されることができる本発明の他の変形例及び実施例を含むように広く構成されるべきである。
【図面の簡単な説明】
【００３３】
【図１】ブース乗算の表である。
【図２】先行技術の二乗器の部分乗算行列である。
【図３】８ビットブース法による部分的に折り畳まれた乗算行列である。
【図４】本発明の一実施例による４ビットデータに関する二乗演算の演算行列である。
【図５】本発明の一実施例による５ビットデータに関する二乗演算の演算行列である。
【図６】本発明の一実施例による二乗演算の方法を示すフローチャートである。
【図７】本発明の一実施例によるｎビットデータ用の拡張可能二乗器を示すブロック図である。
【図８】本発明の一実施例による１６ビットデータ用の拡張可能二乗器を示すブロック図である。
【手続補正書】
【提出日】平成16年10月14日(2004.10.14)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】追加
【補正の内容】
【図１】
2006039743.tif 000013
【図２】
2006039743.tif 000014
【図３】
2006039743.tif 000015
【図４】
2006039743.tif 000016
【図５】
2006039743.tif 000017
【図６】
2006039743.tif 000018
【図７】
2006039743.tif 000019
【図８】
2006039743.tif 000020
【手続補正書】
【提出日】平成16年12月15日(2004.12.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
ステップＳ６１０は、ｎ−１ビット拡張データＢＥを発生し、ｉ番目の拡張データＢＥは、以下のように示すことができる。
【数５】
2006039743.tif 000021
【外国語明細書】
Title of Invention
2006039743.tif 000022
2006039743.tif 000023
2006039743.tif 000024
2006039743.tif 000025
2006039743.tif 000026
2006039743.tif 000027
2006039743.tif 000028
2006039743.tif 000029
2006039743.tif 000030
2006039743.tif 000031
2006039743.tif 000032
2006039743.tif 000033
2006039743.tif 000034
2006039743.tif 000035
2006039743.tif 000036
2006039743.tif 000037
2006039743.tif 000038
2006039743.tif 000039
2006039743.tif 000040
2006039743.tif 000041
2006039743.tif 000042
2006039743.tif 000043
2006039743.tif 000044
2006039743.tif 000045