【手続補正書】
【提出日】平成18年2月24日(2006.2.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  コンフィグレーション可能な多次元のセルアレイを再コンフィグレーションする方法において、
再コンフィグレーション可能な複数のセルのうち少なくとも１つのセルに対し再コンフィグレーションユニットにより新たな再コンフィグレーション命令を伝送し、
前記再コンフィグレーションユニットは、再コンフィグレーション不可能な状態にあるセルに対する再コンフィグレーション命令を格納するメモリを有しており、
前記再コンフィグレーションユニットは、前記少なくとも１つのセルに対する再コンフィグレーション命令が前記メモリに格納されていないという条件に基づき、該少なくとも１つのセルへ新たな再コンフィグレーション命令を伝送し、
該新たな再コンフィグレーション命令に応答して、前記少なくとも１つのセルが再コンフィグレーション可能な状態にあるならば、該少なくとも１つのセルを前記新たな再コンフィグレーション命令に従い再コンフィグレーションし、再コンフィグレーション可能な状態にないならば、前記少なくとも１つのセルにより拒否情報が前記再コンフィグレーションユニットへ伝送され、
該拒否情報に応答して、前記再コンフィグレーションユニットは前記新たな再コンフィグレーション命令を前記メモリに格納することを特徴とする、
コンフィグレーション可能な多次元のセルアレイを再コンフィグレーションする方法。
【請求項２】  ２次元またはそれ以上の次元のセルアレイを備えたコンポーネント（たとえばＦＰＧＡ，ＤＰＧＡ，ＤＦＰ等）をデッドロックなく自動的にコンフィグレーションおよび再コンフィグレーションする方法において、
コンフィグレーションおよび再コンフィグレーションを制御するユニットは、割り当てられたコンフィグレーション可能なエレメントの集合を管理し、
該集合は、コンフィグレーション可能なすべてのエレメントの部分集合または全体集合を成し、前記の管理を、
１．１  割り当てられたコンフィグレーション可能なエレメントの再コンフィグレーション要求が前記ユニットへ送られ、
１．２  該ユニットは要求を処理し、ここで、
ａ）コンフィグレーション可能なエレメントの目下のステータスを保護し、
ｂ）存在する先行の要求におけるまだロードすべきコンフィグレーションデータをバッファメモ（ＦＩＬＭＯ）からコンフィグレーション可能なエレメントへ可能なかぎりロードし、
ｃ）コンフィグレーションデータが該ユニットのメモリ内に存在しているならば、再コンフィグレーション要求を該ユニットにおけるメモリ内のロードすべきコンフィグレーションデータのアドレスに変換し、
ｄ）コンフィグレーションデータが該ユニットのメモリ内に存在していないならば、上位のユニットにおいて対応するＩＤをもつコンフィグレーションデータを要求してロードし、
１．３  前記ユニットは命令シーケンスのコンフィグレーションデータを処理し、ここで、
ａ）コンフィグレーション可能なエレメントがコンフィグレーションデータを受け入れることができるならば、コンフィグレーション可能なエレメントへ該データをロードし、
ｂ）コンフィグレーションデータを受け入れることのできないコンフィグレーション可能なエレメントのデータは、その時間順序に従いバッファメモリ（ＦＩＬＭＯ）へロードし、
１．４  コンフィグレーションデータが完全に処理されてしまった後、再び新たに発生する要求を受け入れ、新たな要求が発生するまで、存在する先行の要求においてまだロードしなければならないコンフィグレーションデータを、バッファメモリ（ＦＩＬＭＯ）からコンフィグレーション可能なエレメントへロードする、
ことにより行うことを特徴とする、
２次元またはそれ以上の次元のセルアレイを備えたコンポーネント（たとえばＦＰＧＡ，ＤＰＧＡ，ＤＦＰ等）をデッドロックなく自動的にコンフィグレーションおよび再コンフィグレーションする方法。
【請求項３】  コンフィグレーション可能なエレメントに受け入れられなかったコンフィグレーションデータを、バッファメモリ（ＦＩＬＭＯ）の最後に書き込む、請求項２記載の方法。
【請求項４】  コンフィグレーション可能なエレメントに書き込むため、コンフィグレーションデータをバッファメモリの最初から最後まで読み出し、バッファメモリを常に完全にスキャンする、請求項２または３記載の方法。
【請求項５】  バッファメモリの最初においてコンフィグレーション可能なエレメントに書き込まれるコンフィグレーションデータをバッファメモリ内で消去し、つまり読み出しポインタを書き込まれたデータの後ろにセットする、請求項２から４のいずれか１項記載の方法。
【請求項６】  バッファメモリの中間からコンフィグレーション可能なエレメントに書き込まれるコンフィグレーションデータを、
ａ）バッファメモリ内で消去されたとマーキングし、それにより新たな読み出しスキャン時には飛び越されるようにするかまたは、
ｂ）バッファメモリ（ＦＩＬＭＯ）内で消去し、該消去にあたり、まだ存在しているコンフィグレーションデータを消去すべきメモリロケーションからバッファメモリ（ＦＩＬＭＯ）の最初または最後までシフトし、消去されたメモリロケーションが既存のコンフィグレーションデータにより占有され、それに応じてポインタがメモリの最初または最後に合わせて整合されるよう、前記のシフトを行う、
請求項２から５いずれか１項記載の方法。
【請求項７】  ステートマシン（ガーベージコレクタ）が前記ユニットのメモリ（ＣＴＲ）を、メモリの隙間が生じないように管理し、ここでメモリの隙間を存在しているコンフィグレーションデータによって、メモリの隙間の最初から出発してメモリ（ＣＴＲ）の最後までシフトし、消去されたメモリロケーションが既存のコンフィグレーションデータによって占有され、それに応じてポインタがメモリの最後に合わせて整合され、ＩＤの変換がシフトされたメモリロケーションに合わせて整合されるよう、前記のシフトを行う、請求項２から６のいずれか１項記載の方法。
【請求項８】  ユニットに到来する要求をコンフィグレーションルーチンの一義的な識別子（ＩＤ）に変換し、ＩＤはメモリ（ＣＴＲ）内のメモリロケーションを指す、請求項２から７のいずれか１項記載の方法。
【請求項９】  コンフィグレーションデータは別のコンフィグレーションデータのロードに作用する（ＥＸＥＣＵＴＥ）、請求項２から８のいずれか１項記載の方法。
【請求項１０】  前記ユニットは階層構造的に１つのツリー構造内に配置されている、請求項２から９のいずれか１項記載の方法。
【請求項１１】  前記ツリー構造内で最上位におかれたユニットは、１つの共通のメモリを上位のコンピュータと分け合い、上位のコンピュータはコンポーネント内のシーケンスを上位のユニットとの通信を介して制御する、請求項２から１０のいずれか１項記載の方法。
【請求項１２】  中間および最上位の階層平面に属するユニットは、通常の要求（トリガ）のほかにＩＤの要求にも応答し、参照されるコンフィグレーションルーチンにおけるメモリロケーションのアドレスへの前記ＩＤの変換が行われ、トリガからＩＤへの変換が省略される、請求項２から１１のいずれか１項記載の方法。
【請求項１３】  コンフィグレーションデータは別のユニットへの要求により、該別のユニットにおける他のコンフィグレーションデータの実行に作用を及ぼし（ＴＲＩＧＧＥＲ）、ここで前記要求は、
ａ）ブロードキャストとして他のすべてのユニットへ送られる、
ｂ）すぐ上に位置するユニットだけに送られる、
ｃ）すぐ下に位置するユニットだけに送られる、
ｄ）アドレッシングされた特定のユニットへ送られる、
請求項２から１２のいずれか１項記載の方法。
【請求項１４】  コンフィグレーション可能なエレメントにおいて受け入れられなかった該エレメントの所定のコンフィグレーションデータをバッファメモリ（ＦＩＬＭＯ）にロードし、１つの命令シーケンスにおける後続のコンフィグレーションデータ全体もバッファメモリにロードする、請求項２記載の方法。
【請求項１５】  １つの命令シーケンスにおける先行するすべてのコンフィグレーションデータをコンフィグレーション可能なエレメントにロードできたときだけ、コンフィグレーション可能なエレメントへ該エレメントの所定のコンフィグレーションデータをロードする、請求項２記載の方法。
【請求項１６】  請求項１３および／または請求項１４記載の方法を使用することにより、命令シーケンス内のまえもって定められた一定のコンフィグレーション順序を守る、請求項２，１４または１５記載の方法。
【請求項１７】  割り当てられたエレメントから到来する再コンフィグレーション要求を、対応する命令シーケンスの一義的な識別番号に変換する、請求項２記載の方法。
【請求項１８】  識別番号への変換にあたり参照された再コンフィグレーション要求を検出せず、参照されていないとマーキングして処理する、請求項２または１７記載の方法。
【請求項１９】  識別番号の変換をルックアップテーブルを介して行う、請求項２または１７記載の方法。
【請求項２０】  割り当てられたエレメントから到来する再コンフィグレーション要求には一義的な識別番号がすでに設けられている、請求項２記載の方法。
【請求項２１】  一義的な識別番号をメモリ内の対応する命令シーケンスのアドレスに変換する、請求項２または１７から２０のいずれか１項記載の方法。
【請求項２２】  有効なアドレスが存在していなければ、対応する命令シーケンスをメモリにロードしてアドレス参照を確立する、請求項２または２１記載の方法。
【請求項２３】  識別番号からアドレスへの変換をルックアップテーブルによって行う、請求項２または２１記載の方法。
【請求項２４】  バッファメモリを別個のメモリとしては構成せず、精確に命令シーケンスと一致させ、コンフィグレーション不可能なコンフィグレーションワードをそのようなワードとしてマーキングし、該命令シーケンスが再度呼び出されたときにはマーキングされたコンフィグレーションワードだけを新たに処理する、請求項２から２３のいずれか１項記載の方法。
【請求項２５】  命令シーケンスをポインタによってチェーン結合し、以前はコンフィグレーション不可能だったコンフィグレーションワードをコンフィグレーション可能なエレメントへロードするときに時間順序が守られるよう、前記のチェーン結合を行う、請求項２または２４記載の方法。
【請求項２６】  命令シーケンスを完全にポインタによりチェーン結合し、ガーベージコレクタがチェーンに基づきすべての命令シーケンスにわたって動作し、除去すべき命令シーケンスを後続の命令シーケンスによって上書きし、ポインタチェーンから取り除く、請求項２または２４記載の方法。