(57)【要約】本発明は、少なくとも１つの第１の入力、少なくとも１つの第２の入力、および少なくとも１つの出力を有する少なくとも１つの第１の回路を必要とする方法を提供する。この方法は、少なくとも１つの第１の入力の少なくとも１つの第１の値に基づいて、第２の回路の少なくとも１つの出力の少なくとも１つの第１の値を判断するステップを含む。第２の回路は、第１の回路および少なくとも１つの第２の入力の少なくとも１つの第１の値に基づいて生成された第１の構成情報を使用して、構成された。この方法はまた、前記少なくとも１つの出力の少なくとも１つの第１の値を判断するのと同時に、第１の回路および少なくとも１つの第２の入力の少なくとも１つの第２の値に基づく第２の構成情報を生成するステップを含む。
2009518965.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの第１の入力、少なくとも１つの第２の入力、および少なくとも１つの出力を有する少なくとも１つの第１の回路を必要とする方法であって、
前記少なくとも１つの第１の入力の少なくとも１つの第１の値に基づいて、第２の回路の少なくとも１つの出力の少なくとも１つの第１の値を判断するステップであって、前記第２の回路は、前記第１の回路および前記少なくとも１つの第２の入力の少なくとも１つの第１の値に基づいて生成された第１の構成情報を使用して構成されたステップと、
前記少なくとも１つの出力の前記少なくとも１つの第１の値を判断するのと同時に、第１の回路および少なくとも１つの第２の入力の少なくとも１つの第２の値に基づく第２の構成情報を生成するステップとを含む方法。
【請求項２】
前記第２の回路の前記少なくとも１つの出力の前記少なくとも１つの第１の値は、前記少なくとも１つの第１の入力の前記少なくとも１つの第１の値、および前記少なくとも１つの第２の入力の前記少なくとも１つの第１の値に応じて、前記第１の回路によって生成される前記第１の回路の前記少なくとも１つの出力の少なくとも１つの値に対応する、請求項１に記載の方法。
【請求項３】
前記第２の構成情報を生成するステップは、前記少なくとも１つの第１の回路に対応する少なくとも１つの発生器機能を使用して、前記第２の構成情報を生成するステップを含み、前記少なくとも１つの第１の回路に対応する前記少なくとも１つの発生器機能を使用して前記第２の構成情報を生成するステップは、前記少なくとも１つの発生器機能を使用してルックアップ・テーブルを生成するステップを含む、請求項１に記載の方法。
【請求項４】
前記第２の回路に関連する構成メモリに前記第２の構成情報を提供するステップであって、前記構成メモリへ前記第２の構成情報を提供するステップは、前記第２の回路の前記少なくとも１つの出力の前記少なくとも１つの第１の値を判断するのと同時に、前記構成メモリに前記第２の構成情報を提供するステップを含んでいるステップを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの第１の入力の少なくとも１つの第２の値に基づいて、前記第２の回路の少なくとも１つの出力の少なくとも１つの第２の値を判断するステップと、前記第２の回路の前記少なくとも１つの出力の前記少なくとも１つの第２の値を判断するのと同時に、前記少なくとも１つの第１の回路、および前記少なくとも１つの第２の入力の少なくとも１つの第３の値に対応する前記少なくとも１つの発生器機能を使用して、第３の構成情報を生成するステップとを含む、請求項１に記載の方法。
【請求項６】
コード・シーケンスの一部をデータ・ストリームの部分に相関させるように構成された少なくとも１つの相関器を備えた整合フィルタを必要とする方法であって、
前記相関器を使用して、前記コード・シーケンスの前記一部、およびデータ・ストリームの第１の部分に基づく少なくとも１つの第１の相関値を判断するステップであって、前記相関器が前記データ・ストリームの前記第１の部分に基づいて生成された第１の構成情報を使用して構成されたステップと、
前記少なくとも１つの第１の相関値を判断するのと同時に、前記データ・ストリームの第２の部分に基づき第２の構成情報を生成するステップとを含む方法。
【請求項７】
前記少なくとも１つの第１の相関値を判断するステップは、複数の相関器を使用して、前記コード・シーケンスの前記一部および前記データ・ストリームの複数の第１の部分に基づいて、複数の第１の相関値を判断するステップであって、前記複数の相関器はそれぞれ、前記データ・ストリームの前記複数の第１の部分の対応するものに基づいて生成された、複数の第１の構成情報セットを使用して構成されたステップを含む、請求項６に記載の方法。
【請求項８】
前記第２の構成情報を生成するステップは、前記相関器に対応する少なくとも１つの発生器機能を使用して、前記第２の構成情報を生成するステップを含み、前記少なくとも１つの第１の回路に対応する前記少なくとも１つの発生器機能を使用して前記第２の構成情報を生成するステップは、前記少なくとも１つの発生器機能を使用して、少なくとも１つのルックアップ・テーブルを生成するステップを含む、請求項６に記載の方法。
【請求項９】
前記相関器に関連する構成メモリに前記第２の構成情報を提供するステップであって、前記構成メモリに前記第２の構成情報を提供するステップは、前記少なくとも１つの第１の相関値を判断するのと同時に、前記構成メモリに前記第２の構成情報を提供するステップを含む、請求項６に記載の方法。
【請求項１０】
前記データ・ストリームの第２の部分に基づいて少なくとも１つの第２の相関値を判断するステップと、前記少なくとも１つの第２の相関値を判断するのと同時に、前記データ・ストリームの第３の部分に基づいて前記少なくとも１つの発生器機能を使用して第３の構成情報を生成するステップを含む、請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概して回路に関し、より詳細には、回路の動的定数畳み込みに関する。
【背景技術】
【０００２】
現代の計算装置のデジタル回路は普通、１つまたは複数の入力信号に応じて１つまたは複数の出力信号を生成するのに使用される。極めて単純な例をとるため、ＡＮＤゲートは、バイナリ１またはバイナリ０に対応することができる、２つの入力を受ける。ＡＮＤゲートの出力は、２つの入力が両方とも１または０のいずれかである場合にバイナリ１であり、２つの入力が異なる場合にバイナリ０である。プロセッサ、メモリ素子、特定用途向け集積回路などのより複雑な回路は、ＡＮＤゲートなどの単純な論理素子を組み合わせることによって形成することができる。デジタル回路の入力および／または出力の値は普通、クロックで時間内に評価される。例えば、デジタル回路の出力の値は、クロック信号の立ち上がりエッジの入力の値に基づいて測定することができる。したがって、デジタル回路の状態は、クロック周波数で変化する可能性がある、または変化することが可能である。
【０００３】
デジタル回路の全状態は普通、クロック周波数で変わるが、デジタル回路の部分へのいくつかの入力は、デジタル回路を駆動するのに使用されるクロック周波数より小さい周波数で、変化する可能性がある。いくつかの場合では、デジタル回路の一部への入力は、主に偶然に変化しないままである可能性がある。しかし、他の場合では、デジタル回路の一部への１つまたは複数の入力は、クロック周期より大きい期間にわたって予測可能に一定である可能性がある。したがって、デジタル回路は、入力が一定に留まっているクロック・サイクルの数に対して入力がその一定値と等しいことを前提にすることによって単純化することができる。入力が異なる定数値に変わると、デジタル回路をそれに応じて変更することができる。したがって、デジタル回路は、入力の変化の周波数と同じ周波数で変化することができる。選択した期間に対する１つまたは複数の入力の一定の値を前提とすることによって、デジタル回路を単純化することは従来から、「定数畳み込み」と言う。
【０００４】
図１は、回路１００、および回路１００に対応する定数畳み込み回路１０５の従来の静的実施を概念的に示している。回路１００は、入力ＡおよびＢを受け、対応する出力Ｃを生成する。入力Ａは、クロック周波数で変化すると仮定され、入力Ｂはクロック周波数より小さい周波数で変化する。したがって、回路１００は静的なままであり、回路１００の出力Ｃはクロック周波数で変化する。定数畳み込み回路１０５は、入力Ａを受け、入力Ｂの選択した定数値に対して回路１００によって行われるように、入力Ａに同じ動作を行い、対応する出力Ｃを生成する。しかし、入力Ｂはクロック周波数より小さい周波数で変化するので、定数畳み込み回路１０５の出力Ｃはまた、入力Ｂの周波数で変化する。
【０００５】
定数畳み込み回路１０５の構造は普通、動的構成メモリ内に含まれる情報によって判断される。動的構成メモリの内容は、一定入力Ｂの異なる値に対応するように、定数畳み込み回路１０５の構造を変えるように変化させることができる。例えば、定数畳み込み回路１０５は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）として実施することができ、ＦＰＧＡルックアップ・テーブルへの入力は動的構成メモリ内に記憶させることができる。定数畳み込み回路１０５の構造は、入力Ｂに関連する周波数で、動的構成メモリに新規情報を与えることによって、入力Ｂの周波数で変えることができる。例えば、入力Ｂの異なる値に応答する異なるプログラミング入力は、設計時間で（すなわち、静的に）発生させることができ、システムによって記憶することができる。記憶したプログラミング入力はその後、入力Ｂに関連する周波数で動的構成メモリに提供することができる。しかし、定数畳み込みシステムの静的生成および記憶は、再構成の適用性を制限する。例えば、記憶装置の費用は、異なる定数値の数が大きい場合に禁止することができる。加えて、構成が外部記憶される場合、要求に応じてそれらをロードするのに必要な入出力帯域幅は、法外に大きい可能性がある。
【０００６】
操作中の定数畳み込み回路１０５を再構成することにより、誤った出力につながる可能性があり、システムの残りまで伝播することができる。したがって、従来の定数畳み込みは、定数畳み込み回路１０５は、定数畳み込み回路１０５の知られていない一時的状態を再構成中に生成される誤った結果を受けることができるターゲット領域から隔離するために、再構成過程中に計算を停止する必要がある。例えば、システム・クロックを取り除く、再構成過程の継続期間の間一定にターゲット領域を設定する、または再構成フラッグを設定することによって停止することができる。
【０００７】
計算を停止することにより、計算を停止するのに使用される特定の技術に関わらず、定数畳み込み回路を含む計算ファブリックに対するダウンタイムにつながる。ダウンタイムは、システム・クロック周波数と比較した場合に、比較的まれに変化する入力に対する入力に対する再構成を抑制することによって、計算時間にわたって分割することができる。しかし、比較的まれに変化する変数に対する定数畳み込みを抑制することにより、定数畳み込みを行うことができる場合の数が限られる。別の方法では、計算ファブリック・ダウンタイムは、迅速な再構成速度を可能にするチップ・レベル・アーキテクチャ特性を与えることによって短くすることができる。しかし、チップ・レベル・アーキテクチャ特性は、価値のあるダイ領域を消費し、チップ上の回路の性能の減少につながり、計算ファブリックの適用の数を少なくする可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記問題の１つまたは複数の影響に対処することを対象としている。
【課題を解決するための手段】
【０００９】
以下は、本発明のいくつかの態様の基本的理解を行うために、本発明の簡単な要約を示す。この要約は、本発明の排他的な概要ではない。本発明の主要なまたは重要な要素を特定する、または本発明の範囲を画定することを意図したものではない。その唯一の目的は、後に論じるより詳細な説明に対する前置きとして、簡単な形でいくつかの概念を示すことである。
【００１０】
本発明の一実施形態では、少なくとも１つの第１の入力、少なくとも１つの第２の入力、および少なくとも１つの出力を有する少なくとも１つの第１の回路を必要とする方法が提供される。この方法は、少なくとも１つの第１の入力の少なくとも１つの第１の値に基づいて、第２の回路の少なくとも１つの出力の少なくとも１つの第１の値を判断するステップを含んでいる。第２の回路は、第１の回路および少なくとも１つの第２の入力の少なくとも１つの第１の値に基づいて生成された第１の構成情報を使用して、構成された。この方法はまた、前記少なくとも１つの出力の少なくとも１つの第１の値を判断するのと同時に、第１の回路および少なくとも１つの第２の入力の少なくとも１つの第２の値に基づく第２の構成情報を生成するステップを含む。
【００１１】
本発明の別の実施形態では、コード・シーケンスの一部をデータ・ストリームの部分に相関させるように構成された少なくとも１つの相関器を備えた整合フィルタを必要とする方法が提供される。この方法は、相関器を使用して、コード・シーケンスの一部、およびデータ・ストリームの第１の部分に基づく少なくとも１つの第１の相関値を判断するステップを含む。相関器は、データ・ストリームの第１の部分に基づいて生成された第１の構成情報を使用して構成された。この方法はまた、少なくとも１つの第１の相関値を判断するのと同時に、データ・ストリームの第２の部分に基づき第２の構成情報を生成するステップを含んでいる。
【００１２】
本発明は、添付の図面と合わせて以下の説明を参照することによって理解することができ、同様の参照番号は同様の要素を特定する。
【００１３】
本発明は様々な変更形態および代替形態の影響を受けやすく、その特定の実施形態を図面において例として示し、本明細書で詳細に記載した。しかし、特定の実施形態の本明細書の説明は、本発明を開示した特定の形に制限することを意図したものではなく、逆に、添付の特許請求の範囲によって定義されるように、発明の精神および範囲内に含まれる全ての変更形態、同等物、および代替形態を含むことを意図していることを理解すべきである。
【発明を実施するための最良の形態】
【００１４】
本発明の例示的な実施形態を以下に記載する。明確にするために、実際の実施の特性全てを本明細書に記載していない。もちろん、このような実際の実施形態の開発において、１つの実施から別の実施に変わる、システム関連および事業関連制約との整合などの、開発者の特定の目的を達成するために、多くの実施特定の決定を行うべきであることが分かるだろう。さらに、このような開発努力は複雑であり時間がかかる可能性があるが、それにも関わらず、本開示の利点を有する、当業者が引き受けるルーチンであることが分かるだろう。
【００１５】
本発明の一部、および対応する詳細な説明は、ソフトウェア、またはアルゴリズムおよびコンピュータ・メモリ内のデータ・ビット上の操作を示す記号表示に関して示されている。これらの説明および表示は、当業者が、他の当業者にその作業の実態を効果的に伝えるものである。本明細書で使用されるような、また一般的に使用されるような、アルゴリズムという用語は、所望の結果につながる一貫した一連のステップであると考えられる。ステップは、物理的量の物理的操作を必要とするものである。普通、必ずしもでないが、これらの量は、記憶する、伝送する、組み合わせる、比較する、あるいは操作することが可能である、光学、電気、または磁気信号の形をとる。時々、主に普通の使用の理由で、これらの信号をビット、値、素子、記号、文字、用語、数などと呼ぶことが便利であることが証明された。
【００１６】
しかし、これらおよび同様の用語の全ては、適当な物理的量に関連させることであり、これらの量につけられた単に便利なラベルであることを念頭に置くべきである。そうでないと特に記されない限り、または議論から明らかであるように、「処理する」、「計算する」、「算出する」、「判断する」または「表示する」などの用語は、コンピュータ・システムのレジスタおよびメモリ内の物理的電子量として示されたデータを、コンピュータ・システム・メモリまたはレジスタ、またはこのような他の情報記憶、伝送、または表示装置内の物理的量として同様に示される他のデータに操作し変換する、コンピュータ・システム、または同様の電子計算装置の動作およびプロセスのことを言う。
【００１７】
また、本発明のソフトウェア実施態様は普通、いくつかの形のプログラム記憶媒体上で符号化される、またはいくつかのタイプの伝送媒体上で実施されることに留意されたい。プログラム記憶媒体は、磁気（例えば、フロッピ・ディスクまたはハード・ドライブ）、または光学（例えば、コンパクト・ディスク読取専用メモリ、すなわち「ＣＤ  ＲＯＭ」）であってもよく、読取専用またはランダム・アクセスであってもよい。同様に、伝送媒体は撚線ペア、同軸ケーブル、光ファイバ、または当技術分野で知られているいくつかの他の適切な伝送媒体であってもよい。本発明は、あらゆる所与の実施のこれらの態様によって制限されない。
【００１８】
本発明を次に、添付の図面を参照して記載する。様々な構造、システム、および装置は、説明する目的のみで、当業者によく知られている詳細で本発明を遮らないように、図面に概念的に示されている。それにも関わらず、添付の図面は、本発明の例示的な実施例を記載および説明するように含まれている。本明細書に使用する語および語句は、関連する技術分野の当業者によるこれらの語および語句の理解と一致する意味を有するように理解および解釈すべきである。用語または語句の特殊な定義、すなわち、当業者によって理解されるような通常および慣例的な意味と異なる定義は、本明細書の用語または語句の一貫した使用によって暗示することを意図したものではない。用語または語句が特殊な意味、すなわち、当業者に理解される以外の意味を有することを意図した範囲で、このような特殊な定義は、用語または語句に対して特殊な定義を直接および明確に提供する定義方法で、明細書に明確に記載する。
【００１９】
図２は、システム２００の例示的な一実施形態を概念的に示している。例示的な実施形態では、システム２００は、１つまたは複数の動的入力２０５、および１つまたは複数の一定入力２１０を受ける。本明細書で使用するように、「動的」および「一定」という用語は、動的入力２０５および一定入力２１０でアサートされる値が変化する、または変化することが予期される相対速度のことを言うことが理解される。動的入力２０５でアサートされる値は、一定入力２１０でアサートされる値の変化速度より速い速度で変化することが予期される。したがって、「一定」という用語は、一定入力２１０でアサートされた値は、動的入力２０５でアサートされた値が変化する可能性がある期間より長い期間にわたって、ほぼ一定のままであることを暗示することを意図している。例えば、動的入力２０５でアサートされた値は、システム２００に関連するクロック周波数で変化することができ、一定入力２１０でアサートされた値は、クロック周波数より小さい周波数で変化することができる。しかし、「一定」という用語は、一定入力２１０でアサートされた値が変化しないことを暗示することを意図していないが、いくつかの実施形態では、一定入力２１０の１つまたは複数でアサートされた値の１つまたは複数は、システム２００の動作中には変化することができない。
【００２０】
例示的な実施形態では、一定入力２１０でアサートされた値が制御ユニット２１５に提供され、それによって一定入力２１０でアサートされた値を発生器２２０に提供することができる。制御ユニット２１５はまた、一定入力２１０でアサートされた値が一定に留まることが予期される、期間の間に動的入力２１５でアサートすることができる値を示す情報を提供することができる。例示的な実施形態では、制御ユニット２１５は、動的入力２０５でアサートされた値を受け、これらの値、またはそれを示す情報を発生器２２０に提供することができる。動的入力２０５でアサートされた値はまた、バッファ２２５に提供することができ、これらの値を所定の期間記憶することができ、それによってシステム２００に待ち時間を加えることができる。しかし、本開示の利点を有する当業者は、本発明が動的入力２０５でアサートされた値が制御ユニット２１５および／または発生器２２０に提供される実施形態に限らないことを理解すべきである。一代替実施形態では、制御ユニット２１５は、動的入力２０５でアサートされた値を受けることができず、代わりに、動的入力２０５でアサートすることができる値を表すことができる情報を形成することができる。例えば、動的入力２０５でアサートされる値は、擬似ランダム情報を含むことができる。制御ユニット２１５はしたがって、先を考え、動的入力２０５でアサートすることができる擬似ランダム情報を予測することができる。予測値はその後、発生器２２０に提供することができる。
【００２１】
発生器２２０は、一定入力２１０でアサートされた値、および動的入力２０５でアサートされた、またはアサートすることができる値に基づいて、１つまたは複数の出力の値を示す構成情報を生成するのに使用することができる回路である。本開示の利点を有する当業者は、発生器２２０があらゆる回路に対応することができ、したがって、本発明は発生器２２０のあらゆる特定の実施に限らないことを理解すべきである。一実施形態では、発生器２２０は、一定入力２１０でアサートされた値の各組合せに対する出力の値、および動的入力２０５でアサートされた、またはアサートすることができる各値を判断する。例えば、発生器２２０が単一のＡＮＤゲートからなる回路に対応し、ＡＮＤゲートへの一定入力でアサートされた値がバイナリ１である場合、その後、発生器２２０はバイナリ１の動的入力値に関連するバイナリ１、およびバイナリ０の動的入力値に関連するバイナリ０を判断することができる。一実施形態では、発生器２２０によって判断された構成情報は、ルックアップ・テーブルの形で提供することができる。例えば、一定入力２１０でアサートされた値を使用して発生器２２０によって判断された出力の値は、ルックアップ・テーブル内に記憶し、動的入力２０５でアサートされた値を使用して処理することができる。
【００２２】
発生器２２０によって判断された構成情報は、構成メモリ２３０内に記憶することができる。例示的な実施形態では、構成情報は、構成メモリ２３０内の位置２３５に記憶される。例えば、発生器２２０によって判断されたルックアップ・テーブルは、位置２３５内に記憶することができる。前に判断した構成情報はまた、構成メモリ２３０内の位置２４０に記憶することができる。したがって、位置２３５に記憶した構成情報は、以下に詳細に論じるように、位置２４０内にシフトすることができる。構成メモリ２３０によって記憶された構成情報は、定数畳み込み回路２４５に提供することができる。例えば、位置２４０に記憶されたルックアップ・テーブルは、定数畳み込み回路２４５に提供することができる。
【００２３】
定数畳み込み回路２４５は、動的入力２０５でアサートされた値、および発生器２２０によって判断された構成情報を使用して、出力２５０の１つまたは複数の値を判断することができる。一実施形態では、定数畳み込み回路２４５は、動的入力２０５でアサートされた値、および発生器２２０によって判断された構成情報を使用して、出力２５０の１つまたは複数の値を判断することができるフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）である。例えば、定数畳み込み回路２４５は、発生器２２０によって判断されたルックアップ・テーブルを処理するために動的入力２０５でアサートされた値を使用することによって、出力２５０の１つまたは複数の値を判断することができるルックアップ・テーブル・ベース・フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）であってもよい。
【００２４】
定数畳み込み回路２４５に供給された構成情報は、位置２４０に記憶することができる。したがって、発生器２２０は、定数畳み込み回路２４５が、動的入力２０５でアサートされた値、および位置２４０に記憶された構成情報を使用して、出力２５０の１つまたは複数の値を判断しながら、一定入力２１０でアサートすることができる異なる一式の値に関連する構成情報を生成することができる。定数畳み込み回路２４５の動作と同時に生成される構成情報は、以下に詳細に論じるように、定数畳み込み回路２４５による後の使用のために、位置２３５に記憶することができる。発生器２２０は、定数畳み込み回路２４５の動作と同時に構成情報を生成することができるので、定数畳み込みは、システム２００による競争を停止することなくシステム２００内で行うことができる。一実施形態では、位置２３５、２４０は、異なるメモリ平面に対応することができる。
【００２５】
図３は、静的システム３００の例示的な一実施形態を概念的に示している。図示した実施形態では、静的システム３００は複数のサブシステム３０５（１−ｎ）を備えている。指数（１−ｎ）は本明細書では、個別のサブシステム３０５（１−ｎ）、またはサブシステム３０５（１−ｎ）のサブセットを示すのに使用されている。しかし、明確にするために、これらの指数はサブシステム３０５に集合的に言及する場合に省略される可能性がある。この約束事は、単一の識別数字および複数の指数に関連する要素のあらゆるグループのことを言う場合に使用される。サブシステム３０５はまた、指標ｇ０・・・ｇｎに関連している。図示した実施形態では、静的システム３００は、いくつかの同一のサブシステム３０５を互いに接続することによって（部分的に）実施することができる。しかし、本開示の利点を有する当業者は、静的システム３００は必ずしも同一のサブシステム３０５を備えていなくてもよく、また図３に示さない他のサブシステムまたは他の回路を備えていてもよいことを理解すべきである。サブシステム、その機能、およびいずれの追加の回路の間の接続はまた、図３では明確にするために省略される。
【００２６】
静的システム３００内の各サブシステム３０５は、０・・・ｑの番号を付けた一式の入力Ｉを有する。図示した実施形態では、入力０・・・ｐは高い遷移周波数を有し、畳み込みに対しては考慮されない。したがって、入力０・・・ｐは、動的入力と考えることができる。入力ｐ＋１・・・ｑは、低い遷移周波数（システム・クロックに対して）を有し、畳み込みに対して選択される。したがって、入力ｐ＋１・・・ｑは、一定入力と考えることができる。静的システム３００内のサブシステム３０５は、０・・・ｍの番号を付けた一式のサブシステム出力Ｒを生成することができる。一実施形態では、サブシステム３０５は、ＦＰＧＡなどのルックアップ・テーブル・ベース計算ファブリックの一部であってもよい。
【００２７】
図４は、定数畳み込みシステム４００の例示的な一実施形態を概念的に示している。図３に示す各サブシステムｇ０・・・ｇｎの実施は、ｈ０・・・ｈｎともラベル付けされた、定数畳み込みサブシステム４０５に置き換えた。各定数畳み込みサブシステム４０５の出力は、対応するサブシステム３０５の出力と同じである。各定数畳み込みサブシステム４０５に対する一式の入力は、定数畳み込みにより小さくなり、したがって入力Ｉは指数０・・・ｐを有する。一実施形態では、定数畳み込みサブシステム４０５は、大きなルックアップ・テーブル（ＬＬＵＴ）として実施される。しかし、本開示の利点を有する当業者は、本発明はルックアップ・テーブル実施に限らないことを理解すべきである。代替実施形態では、定数畳み込みシステム４００を代表するいずれのメモリ・コンテンツも使用することができる。
【００２８】
ＬＬＵＴコンテンツは、一定入力ｐ＋１・・・ｑの変化の最大周波数で変えることができ、発生器機能を使用して、上に論じたように、ランタイムでＬＬＵＴを占めることができる。ＬＬＵＴコンテンツへのアクセスは、Ｘｉｌｉｎｘ  ＳＲＬ１６プリミティブなどのローカル・インターフェイスを介して行うことができる。したがって、システム４００は、一定入力ｐ＋１・・・ｑの一式の値Ｂｉに対するＬＬＵＴを使用して動作することができ、発生器機能は一定入力ｐ＋１・・・ｑの一式の異なる値Ｂｉ＋１に対するＬＬＵＴを占める。必要なもの全ては、異なるアドレス・オフセットでＬＬＵＴから読み取るためであるので、動的定数値がＢｉ＋１に変化する場合に、これにより計算を停止させる必要がなくなる。アドレス・オフセットは、実施ファブリックによる設計の選択の問題である。４入力ルックアップ・テーブルから構成され、シリアル・シフト・レジスタ機構（例えば、ＳＲＬ１６）を介してランタイムに新規定数で占められたＦＰＧＡでは、オフセットは、新規コンテンツの各ビットがシフトされる場合に、ＬＵＴ入力を操作する必要がある。これは、ＬＵＴ入力とテーブル内でアクセスされたビットの間の関係を保存するのに必要である可能性がある。
【００２９】
図５は、定数畳み込みサブシステム５００の例示的な一実施形態を概念的に示している。例えば、定数畳み込みサブシステム５００は、図４に示す定数畳み込みサブシステム４０５の１つのＦＰＧＡターゲット実施であってもよい。図示した実施形態では、各出力Ｒ０・・・Ｒｍは、対応するルックアップ・テーブル５０５（１−ｍ）を使用して、テーブル・ルックアップを行うことによって生成される。ルックアップ・テーブル５０５への入力は、入力０・・・ｐの値である。しかし、本開示の利点を有する当業者は、いずれの数のルックアップ・テーブル５０５を使用することができ、ルックアップ・テーブル５０５の数は出力Ｒ０・・・Ｒｍの数に対応しなくてもよいことを理解すべきである。例えば、サブシステム５００のＦＰＧＡ実施への入力の数が４より大きい場合、２つ以上の４ビット・ルックアップ・テーブル５０５は、各出力を生成するのに必要である可能性がある。別の例では、５以上の入力ビットを有する１つまたは複数のルックアップ・テーブル５０５を使用することができる。
【００３０】
ルックアップ・テーブル５０５によって行われる一定機能は、一定の入力のサブセットが変化するおおよその周波数で置き換えることができる。これは、一定入力ｐ＋１・・・ｑでアサートされた値で全ての可能な動的入力０・・・ｐを通して循環するように、図３に示すサブシステム３０５の実施を使用して行うことができる。サブシステム３０５によって生成される各結果はその後、ルックアップ・テーブル５０５にロードすることができる。例えば、各出力ビットは、動的入力が加えられた場合に、ルックアップ・テーブル５０５内の選択位置で記憶された出力が生成されるように、出力ビットに対して使用される動的入力に関連するルックアップ・テーブル５０５内の位置にロードすることができる。全ての可能な出力がルックアップ・テーブル５０５に書き込まれた場合、再構成シーケンスが完了する。サブシステム３０５はその後、一定入力ｐ＋１・・・ｑの適当な値を提供し、また動的入力０・・・ｐの全ての可能な値を通して循環することによって、別のサブシステム４０５、５００に対してＬＵＴコンテンツを供給することができる。
【００３１】
一実施形態では、新規コンテンツをロードする機構は、Ｘｉｌｉｎｘ  Ｖｉｒｔｅｘ系の装置のＳＲＬ１６機能などの１ビット・シフト・レジスタであってもよい。ＳＲＬ１６モードでは、ルックアップ・テーブル５０５の１６ビット・コンテンツは、シフト・レジスタのように挙動する。特殊な入力ピンは新規入力を供給し、書込み可能ピンは、シフトするかどうかを判断する。書込み可能ピンが高く、クロック移行が起こると、シフト・レジスタのコンテンツは１つの位置だけ移動し、位置０は次に新規入力を含んでおり、位置１５の古いコンテンツが失われて位置１４によって上書きされる。新規コンテンツでのシフトの場合、ルックアップ・テーブル５０５への入力を調節することができる。例えば、いくつかのシフトの後にバイナリ入力００００を供給することにより、位置０での現在の一定コンテンツの代わりに、最近ロードされた新規コンテンツを生成する。これを説明するために、ルックアップ・テーブル５０５への入力を動的に調節することができる。ＦＰＧＡ上の多数のコンテキスト・ルックアップ・テーブル５０５なしで、サポートすることができる最大数の動的入力は、ルックアップ・テーブル５０５上の入力の数の半分である。あるいは、古いコンテンツは、再構成中にルックアップ・テーブル５０５からシフトされ、本計算には利用可能ではない。ＦＰＧＡ上の多数のコンテキスト・ルックアップ・テーブル５０５では、動的入力の数は単一のコンテキストの場合と同様に制約しなくてもよい。計算は、新規構成データを第２のコンテキスト内にロードしながら、１つのコンテキストを使用して続けることができる。定数切換時に、第２のコンテキストは動的コンテキストとなる。
【００３２】
図６は、整合フィルタ６００の例示的な一実施形態を概念的に示している。整合フィルタ６００は、ユニバーサル・モバイル・テレコミュニケーション・システム（ＵＭＴＳ）などの、符号分割多重アクセス（ＣＤＭＡ）通信システム内で幅広く使用されている。ＵＭＴＳセル内の全てのモバイル・ユニットは、同じ周波数スペクトルを使用する。異なるユニット間の識別を可能にするため、それぞれ独自のコード・シーケンスを伝送する。ＵＭＴＳセルラ基地局は、伝送間で区別するように、これらの異なるコード・シーケンスを検出することが可能でなければならない。これは、コード・シーケンスが入力ストリーム内で整合されたときを示す値を出力する、整合フィルタ６００を使用して達成することができる。高い値は、優れた整合を示す。したがって、図示した実施形態では、整合フィルタ６００は、ＵＭＴＳ多チャンネル複合コード整合フィルタ（ＣＣＭＦ）６００である。しかし、当業者は、本発明はＣＣＭＦ６００に限らず、代替実施形態では、いずれの整合フィルタ６００をも使用することができることを理解すべきである。
【００３３】
ＣＤＭＡでは、チップは物理層での２進数のことを言う。整合を検索する場合、コードとデータ・ストリームの間の相関は、検索ウィンドウと呼ばれる、連続チップ・オフセットで行われる。ＵＭＴＳでは、３８４万個のチップ／秒がある。整合フィルタ６００内の（１つまたは複数の）相関器はしたがって、エンジンによってサポートされる最大３２コール・ロードを処理することが可能である。コールに対する４つのサンプル供給はそれぞれ、１６０個のチップのウィンドウ・サイズにわたって検索することができる。１５３．６ＭＨｚのクロック速度では、チップ毎に利用可能な４０サイクルがある。整合フィルタ６００は、一度に１つの２５６チップシンボルで予期コード・シーケンスと２つのソースの流入データ・ストリームの間の相関を行う。流入データ・ストリームは２倍オーバーサンプリングされて、これに対して相関される４つの異なるデータ・ストリームを生成する。
【００３４】
図示した実施形態では、コードは、２つの２５６ビット・レジスタを備えることができる、コード・レジスタ（ＣＯＤＥ  ＲＥＧ）内に記憶される。データは、図の上部の２つのレジスタ内に記憶され、一方は実部（Ｉ  Ｄａｔａ  Ｒｅｇ）用であり、もう一方は虚部（Ｑ  Ｄａｔａ  Ｒｅｇ）用である。各データ・レジスタは、４１５ワード・データ・シフト・レジスタであり、ここで各ワードはチップの４ビット・サンプルである。データ・レジスタの一番右側の３７６ワードのみが、３７６ワード・ベクトルとしてドット積サブブロック（ＤＰＳＢ）に出力される。残りの３９ワードは、出力に到達するまで、シフトさせることができる。ＤＰＳＢ０は、入力としてワード０〜２５５をとり、クロック・サイクル毎に１つ、仮定０〜３９に対する結果を計算する。ＤＰＳＢ３は、入力としてワード１２０〜２７５をとり、仮定１２０〜１５９に対する結果を計算する。したがって、約４０のクロック・サイクルを使用して、ソース・コンポーネントに対する１６０の仮定を計算することができる。約１６０のクロック・サイクルの後に、４つのソースに対する全ての仮定を計算することができる。
【００３５】
図７は、図６に示す、ＤＰＳＢの２５６個の位置それぞれに関連する相関を行うように使用することができる、相関器７００の例示的な一実施形態を概念的に示している。図示した実施形態では、１０ビット入力は、１０ビット出力を生成する。相関器７００は、局所的に発生したコードの複素共役を複合データ・サンプルで掛けることができる。図６に示す各ＤＰＳＢは、相関器７００によって計算される相関関数を実施する、２５６個の同一の発生器セルから構成することができる。
【００３６】
相関器７００の定数畳み込み（データ畳み込み）実施は、データ・ストリームが４０サイクル検索ウィンドウ上で一定のままであることを認識する。したがって、相関を行うように計算の数を減らす機会が存在する。データが相関器７００内に畳み込まれた状態で、その動的入力をたった２ビットに小さくすることができ、出力は１０ビットのままである。出力ビットはそれぞれ、単一の４ビットＬＵＴを使用して生成することができる。一実施形態では、ＬＵＴの半分だけが使用され、次の定数に対応する新規構成を、上に論じたように、計算と並行してＬＵＴ内にシフトさせることができる。相関器７００に関連する発生器に対して、データ・アイテムに対する４つのコード値全てを計算するには、４クロック・サイクルが必要である。４０サイクル再構成期間およびデータ・アイテム毎の４サイクルで、１０個のデータ・アイテムが発生器を共有することができる。４１５個のデータ・アイテム全てに対する構成を計算することは、４２個の発生器ユニットを必要とする可能性がある。相関器７００に対応する定数畳み込みセルは、１０個のＳＲＬ１６イネーブルＬＵＴ、およびコード入力を調節する加算器からなることができる。正確な４サイクル・ウィンドウで新規構成をシフトさせるためにチップ・イネーブル信号を生成するために、追加の制御回路を設けることができる。同じ発生器ユニットを共有するセルのクラスタでは、ＣＥ信号は、４ビット・シフト・レジスタとして動作する単一のＳＲＬ１６ＬＵＴを使用して生成することができる。
【００３７】
図８は、定数畳み込みセルに対する再構成シーケンス８００の例示的な一実施形態を概念的に示している。１０個のＳＲＬ１６インスタンス化ＬＵＴ８０５（１〜１０）のコンテンツが、５つの連続クロック・サイクルで示されている。ＣＬＫｉ−１では、ＳＲＬ１６  ８００（１）、８００（６）の下の４つの位置のみが占められている。一実施形態では、これは電源オン・リセットに独自の状態である可能性がある。他の実施形態では、および／または他の時に、底部行からシフトされた古い構成データが、上部位置を占める可能性がある。ＣＬＫｉ−１では、セルのチップ・イネーブル信号が高くなる。これにより、ＳＲＬ１６  ８００が第１のメモリ・ビット内へシフト・レジスタ入力ピン上にあるものをロードし、既存のコンテンツをさらに１ビットだけＬＵＴ８００内にシフトすることにつながる。１０個のＳＲＬ１６  ８００の入力ピンは、関連する発生器ユニットの１０ビット出力によって駆動される。ＣＬＫｉに関連する信号は、コード「１１」に対する構成をロードし、ＣＬＫｉ＋１に関連する信号はコード「１０」などに対する構成をロードする。ＣＬＫｉ＋３では、ＣＥ信号は、再構成が終了するときに低くなる。ＬＵＴ入力は、シフトしているメモリ・コンテンツを扱うように調節される。コードは入力をセル内のＬＵＴ８００全てに提供するので、調節回路の少ない費用をセル全体にわたって分割することができる。
【００３８】
図９は、図７に示す相関器７００を実施するのに使用することができる、定数畳み込み回路の論理構造９００の例示的な一実施形態を概念的に示している。図示した実施形態では、論理構造９００は、定数畳み込み回路の物理的配置に対応していない。図示した実施形態では、論理構造９００は、定数畳み込み回路の物理的配置に対応していない。図示した実施形態では、ＤＰＳＢ長さは、全てのデータ・アイテムを同時に含むように、２５６から２９５セルまで伸ばされる。ＤＰＳＢはまた、同じデータ・アイテムが列を形成するように位置合わせすることができる。ＤＰＳＢを普通のデータ・アイテムによって位置合わせした状態で、関連する発生器ユニットは、最小数の評価を行うことしかできない。例えば、特定のデータ素子に対する構成は普通、４つのＤＰＳＢ全てに対して生成しなければならない。４つのセル全てに接続された単一の発生器は、構成を供給することができる。これに対して、従来の静的実施は、必要以上に多くの回数、基本的な発生器計算を行う。
【００３９】
同様の網掛けを有する論理構造９００内の様々な領域は、特定の発生器ユニットの周りのセル・クラスタ化を示している。ラベルＧ１（および、網掛けなし）は、これらのセルに関連する発生器がデータ・アイテム毎に１つのセルを供給することを示し、それによってＧ１ユニットはデータ・アイテム毎に４つのサイクルで約４０サイクル内に１０セルを構成することができる。ラベルＧ２（および、左から右への網掛け）は、これらのセルに関連する発生器が、データ・アイテム毎に２つのセルを供給することを示し、それによってＧ２ユニットは、データ・アイテム毎に４つのサイクルで約４０サイクル内に２０セルを構成することができる。ラベルＧ３（および、右から左への網掛け）は、これらのセルに関連する発生器がデータ・アイテム毎に３つのセルを供給することを示し、それによってＧ３ユニットはデータ・アイテム毎に４つのサイクルで約４０サイクル内に３０セルを構成することができる。ラベルＧ４（および、斜め網掛け）は、これらのセルに関連する発生器がデータ・アイテム毎に４つのセルを供給することを示し、それによってＧ４ユニットはデータ・アイテム毎に４つのサイクルで約４０サイクル内に４０セルを構成することができる。したがって、定数畳み込み実施は、３分の１以上だけ、リソース要件を小さくすることができる。
【００４０】
本発明は、本明細書の教示の利点を有する当業者に自明の、異なるが等価な方法で、変更および実施することができるので、上に開示した特定の実施形態は、単に例示的なものである。さらに、下記特許請求の範囲に記載したもの以外で、本明細書に示す構成または設計の詳細の限定を意図するものではない。したがって、上に開示した特定の実施形態は変形または変更可能であるのは明らかであり、このような変更形態全ては発明の範囲および精神内であると考えられる。したがって、本明細書で求める保護は、下記の特許請求の範囲に記載したようなものである。
【図面の簡単な説明】
【００４１】
【図１】回路の従来の静的実施、および回路の静的実施に対応する従来の定数畳み込み回路を示す略図である。
【図２】本発明による、システムの例示的な一実施形態を示す略図である。
【図３】本発明による、静的システムの例示的な一実施形態を示す略図である。
【図４】本発明による、定数畳み込みシステムの例示的な一実施形態を示す略図である。
【図５】本発明による、定数畳み込みサブシステムの例示的な一実施形態を示す略図である。
【図６】本発明による、整合フィルタの例示的な一実施形態を示す略図である。
【図７】本発明による、相関器の例示的な一実施形態を示す略図である。
【図８】本発明による、定数畳み込みセルに対する再構成シーケンスの例示的な一実施形態を示す略図である。
【図９】本発明による、図７に示す相関器を実行するのに使用することができる、定数畳み込み回路の論理構造の例示的な一実施形態を示す略図である。
【図１】
2009518965.tif 000003
【図２】
2009518965.tif 000004
【図３】
2009518965.tif 000005
【図４】
2009518965.tif 000006
【図５】
2009518965.tif 000007
【図６】
2009518965.tif 000008
【図７】
2009518965.tif 000009
【図８】
2009518965.tif 000010
【図９】
2009518965.tif 000011
【国際調査報告】
2009518965.tif 000012
2009518965.tif 000013
2009518965.tif 000014