(57)【要約】本発明はデータ処理論理セルフィールドおよび少なくとも１つのシーケンシャルなＣＰＵを有するデータ処理装置に関する。このデータ処理装置においては、殊にブロック的な形態でのデータ交換のためのシーケンシャルなＣＰＵとデータ処理論理セルフィールドとの結合がキャッシュメモリに案内される配線を実現することが提案される。
2006524850.tif 000002
【特許請求の範囲】
【請求項１】
データ処理論理セルフィールドおよび少なくとも１つのシーケンシャルなＣＰＵを有するデータ処理装置において、
キャッシュメモリに案内される配線によって例えばブロック的な形態でデータを交換するために、前記シーケンシャルなＣＰＵおよび前記データ処理論理セルフィールドが結合されることを特徴とする、データ処理装置。
【請求項２】
実行時間が制限されているコンフィギュレーションを用いるリコンフィギュアラブルなユニットの動作方法であって、前記コンフィギュレーションは該コンフィギュレーションの最大許容実行時間を、例えば同調カウンタのトリガによって延長可能である、リコンフィギュアラブルなユニットの動作方法において、
前記コンフィギュレーションによるコンフィギュレーションの実行時間の延長を割込に応答して阻止することを特徴とする、リコンフィギュアラブルなユニットの動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の詳細な説明
本発明は独立請求項の上位概念記載のデータ処理方法およびデータ処理装置に関し、したがってデータ処理のためのリコンフィギュアラブルなプロセッサ技術を使用する際の改善に取り組む。
【０００２】
論理セルフィールドの有利な構造に関しては、本出願人によるＸＰＰアーキテクチャおよび既に開示されている先行の保護権を主張する明細書に示されており、これらは開示を目的として完全な範囲が取り入れられる。したがって殊にDE 44 16 881 A1, DE 197 81 412 A1, DE 197 81 483 A1, DE 196 54 846 A1, DE 196 54 593 A1, DE 197 04 044.6 A1, DE 198 80 129 A1, DE 198 61 088 A1, DE 199 80 312 A1, PCT/DE 00/01869, DE 100 36 627 A1, DE 100 28 397 A1, DE 101 10 530 A1, DE 101 11 014 A1, PCT/EP 00/10516, EP 01 102 674 A1, DE 198 80 128 A1, DE 101 39 170 A1, DE 198 09 640 A1, DE 199 26 538.0 A1, DE 100 50 442 A1ならびにPCT/EP 02/02398, DE 102 40 000, DE 102 02 044, DE 102 02 175, DE 101 29 237, DE 101 42 904, DE 101 35 210, EP 01 129 923, PCT/EP 02/10084, DE 102 12 622, DE 102 36 271, DE 102 12 621, EP 02 009 868, DE 102 36 272, DE 102 41 812, DE 102 36 269, DE 102 43 322, EP 02 022 692同様にEP 02 001 331およびEP 02 027 277に記載されている。
【０００３】
リコンフィギュアラブルな技術に対する従来のアプローチにおける問題は、データ処理を最初にシーケンシャルなＣＰＵにおいてコンフィギュアラブルなデータ処理論理セルフィールドなどを使用して行うべき場合、および／または、シーケンシャルに実施すべき多数および／または膨大な処理ステップが存在するデータ処理が所望される場合に生じる。
【０００４】
したがって、どのようにしてデータ処理をコンフィギュアラブルなデータ処理論理セルフィールにおいてもＣＰＵにおいても行うことができるかに取り組むアプローチが公知である。
【０００５】
つまりWO 00/49496からは、実行時間にコンフィギュレーションプログラムのロードによって再定義できる作用を有するリコンフィギュアラブルな命令を実行することができるコンフィギュアラブルな機能ユニットを包含するプロセッサを用いてコンピュータプログラムを実施する方法が公知であり、この方法はリコンフィギュアラブルな命令の組み合わせを選択するステップと、それぞれのコンフィギュレーションプログラムを各組み合わせに対して形成するステップと、コンピュータプログラムを実行するステップとを包含する。この方法においては、実施中に組み合わせの内の１つからなる命令がもたらされて、コンフィギュアラブルな機能ユニットがこの組み合わせのためのコンフィギュレーションプログラムでもってコンフィギュレーションされていない度に、組み合わせの全ての命令に対するコンフィギュレーションプログラムがコンフィギュアラブルな機能ユニットにロードされるべきである。
【０００６】
さらにWO 02/50665 A1からは、コンフィギュアラブルな機能ユニットを有するデータ処理装置が公知であり、このデータ処理装置においてはコンフィギュアラブルな機能ユニットがコンフィギュアラブルな機能にしたがい命令を実行するために使用される。コンフィギュアラブルな機能ユニットはプログラミング可能な論理演算を実施するために、独立してコンフィギュアラブルな多数の論理ブロックを有し、これによりコンフィギュアラブルな機能がインプリメントされる。コンフィギュアラブルな接続回路がコンフィギュアラブルな論理ブロックとコンフィギュアラブルな機能ユニットの入力側との間、また機能ユニットの出力側との間に配置されている。このことはコンフィギュアラブルな論理ブロックを介して論理機能の分配の最適化を可能にする。
【０００７】
従来のアーキテクチャにおける問題は、結合を行うべき場合、および／または、データストリーミング、ハイパースレッディング、マルチスレッディングなどのような技術が合理的且つ性能を向上するように十分に使用されるべき場合に生じる。アーキテクチャの説明は、Dean N. Tulson, Susan J. Eggersらによる「Exploiting Choice : Instruction Fetch and Issue on Implementable Simultaneous Multi-Threading Processo」 Proceedings of the 23th annual international Symposium on Computer Architecture, Philadelphia, １９９６年５月に記載されている。
【０００８】
ハイパースレッディング技術およびマルチスレッディング技術は、現在のマイクロプロセッサがその性能を、特殊化された深いパイプライン的に制御される多数の機能ユニットおよびメモリ階層から得ることを考慮して開発された技術であり、このことは機能コアにおける高周波を許容する。しかしながら厳密に階層的なメモリ配置によって、コア周波数とメモリ周波数の差に起因するキャッシュへのエラーアクセス時には、データがメモリから読み出されるまでコアクロック周期が複数回経過するのでより大きな欠点が存在する。さらには分岐の際、殊に誤って予測された分岐の際には問題が生じる。したがって、いわゆるＳＭＴ、同時マルチプロセッシング（simultaneous multi-threading）方法として、命令を実行できない場合、または全ての機能ユニットが使用されない場合には常に種々のタスクを切り換えることが提案された。
【０００９】
本出願人によるものではない前述の刊行物の例示的に説明した技術は、確かにコンフィギュレーションをコンフィギュアラブルなデータ処理論理セルフィールドにロードすることができる配置が示されているが、もっともこの配置においてはＣＰＵのＡＬＵと、ＦＰＧＡやＤＳＰなどであれコンフィギュアラブルなデータ処理論理セルフィールとの間のデータ交換はレジスタを介して行われる。換言すれば、データストリームからなるデータを差し当たりシーケンシャルにレジスタに書き込み、続けてシーケンシャルに再びこのレジスタに格納しなければならない。データに外部からアクセスすべき場合にも問題が生じる。何故ならばこのような場合自体に、ＡＬＵと比較したデータ処理の時間的な経過の際、またコンフィギュレーションの割り当ての際などにもさらに問題が存在するからである。本出願人によるものではない固有の保護権から公知であるような従来の配置は殊に、ＤＦＰやＦＰＧＡなどのコンフィギュアラブルなデータ処理論理セルフィールドにおいて機能を実行するために使用されるが、ＣＰＵ固有のＡＬＵにおいてはこの機能を効率的に処理することはできない。したがって、コンフィギュアラブルなデータ処理論理セルフィールドは事実上、コンフィギュアラブルなデータ処理論理セルフィールド支援の無いＣＰＵのＡＬＵ算術論理演算装置において可能であろうよりも効率的なアルゴリズムの実行を可能にするユーザ定義のオプコードを実現するために使用される。
【００１０】
したがって前述したように、従来技術においては結合が通常の場合ワードベースであり、データストリームを処理するために必要とされるようなブロックベースではない。差し当たり、レジスタを介する密結合を用いる場合よりも効率的にデータ処理を実現することが望ましい。
【００１１】
粗粒度および／または細粒度に構成されている論理セルおよび論理セルエレメントからなる論理セルフィールドを使用するための別の可能性は、そのようなフィールドと埋め込み式のシステムにおける従来のＣＰＵおよび／またはＣＰＵコアとの非常に緩い結合（疎結合）である。この場合、従来のシーケンシャルなプログラム、例えばＣ、Ｃ＋＋などで記述されているプログラムをＣＰＵなどにおいて実行することができ、このプログラムによって細粒度および／または粗粒度のデータ処理論理セルフィールドにおけるデータ処理の呼び出しが具体化される。この論理セルフィールドに対するプログラミングの際にＣまたは他の高水準言語によっては記述されていないプログラムをデータ処理のために設けなければならないことは問題である。ここでは従来のＣＰＵアーキテクチャにおいてもこのＣＰＵアーキテクチャと共に動作するデータ処理論理セルフィールドフィールドにおいてもＣプログラムなどを実行できること、すなわち、殊にデータ処理論理セルフィールドを用いてほぼシーケンシャルなプログラム処理であるにもかかわらずデータストリーム能力が維持されたままであり、他方ではそれと同時にＣＰＵが過剰な疎結合でない状態で動作できることも可能であり続けることが望ましい。このことは殊にPACT02 (DE 196 51 075.9-53, WO 98/26356), PACT04 (DE 196 54 846.2-53, WO98/29952), PACT08, (DE 197 04 728.9, WO98/35299), PACT13 (DE 199 26.538.0, WO 00/77652), PACT31 (DE 102 12 621.6-53, PCT/EP 02/10572)からも公知であるようにデータ処理論理セルフィールド配置においてデータ処理論理セルフィールド内でシーケンシャルなデータ処理を行うことも既に公知である。もっともこの場合、個々のコンフィギュレーションにおいては、例えばリソースを節約するなどのために、部分的な実行しか達成されず、この部分的な実行によっては、シーケンシャルなプロセッサのための従来の機械モデルの場合のように、プログラマが一塊の高水準言語コードを自動的に容易に問題なくデータ処理論理セルフィールドにおいて変換できることにはならない。シーケンシャルに動作する機械のためのモデルの原理にしたがい、高水準言語コードをデータ処理論理セルフィールドにおいて変換することはさらに困難である。
【００１２】
さらに従来技術からは、アレイ部分のそれぞれ異なる機能を実現する複数のコンフィギュレーションを同時にプロセッサフィールド（ＰＡ）において実行でき、またコンフィギュレーションの切り替えまたは幾つかのコンフィギュレーションの切り替えを他のコンフィギュレーションの妨害を受けることなく実行時間に行えることが公知である。フィールドにロードすべき部分コンフィギュレーションをデッドロック無しに行えることをどのようにして保証できるかという方法、またそれを変換するためにハードウェアでインプリメントされている手段が公知である。このことは殊に、フィルモ（ＦＩＬＭＯ）技術に関連する明細書 PACT05 (DE 196 54 593.5-53, WO 98/31102), PACT10 (DE 198 07 872.2, WO 99/44147, WO 99/44120), PACT13 (DE 199 26 538.0, WO 00/77652), PACT17 (DE 100 28 397.7, WO02/13000) ; PACT31 (DE 102 12 621.6, WO 03/036507)に記載されている。この技術は所定のやり方で既に並列化を実現し、またコンフィギュレーションの相応の構成および割り当てにおいて一種のマルチタスキング／マルチスレッディングも、しかも計画、すなわちスケジューリングおよび／または時間使用計画制御までも行われるように実現している。つまり従来技術からは既に、少なくとも個々のタスクにコンフィギュレーションを相応に割り当てて、および／または、コンフィギュレーションおよび／または一連のコンフィギュレーションにスレッドを相応に割り当ててマルチタスキングおよび／またはマルチスレッディングを可能にする、時間使用計画制御手段および時間使用計画制御方法自体は公知である。タスク、スレッド、マルチスレッドおよびハイパースレッドのスケジューリングを目的とした、従来技術においてコンフィギュレーションおよび／またはコンフィギュレーション管理のために使用されたそのような時間使用計画制御手段の使用はそれ自体発明性があると見なされる。
【００１３】
また少なくとも、有利な変形形態における部分的な見地によれば、少なくとも半導体アーキテクチャの有利な変形形態においてマルチタスキング、マルチスレッディング、ハイパースレッディングのようなデータ処理およびプログラム処理の現代の技術を支援できることが望ましい。
【００１４】
本発明の基本思想は、産業上の用途のための新規な方法および新規な装置を提供することである。
【００１５】
この課題の解決手段は独立請求項に記載されている。有利な実施形態には従属請求項に記載されている。
【００１６】
したがって本発明の第１の重要な見地は、データ処理論理セルフィールドによるロードコンフィギュレーションの実施に応答してデータがデータ処理論理セルフィールドに供給される、および／または、ＳＴＯＲＥコンフィギュレーションが相応に実行されることによってこのデータ処理論理セルフィールドからデータが書き出される（ＳＴＯＲＥ）ことである。これらのロードコンフィギュレーションおよび／またはストアコンフィギュレーションは有利には、データ処理論理セルフィールドにおいて直接的または間接的に各メモリ位置のアドレスが生成され、そのアドレスへとロードおよび／またはストアするように直接的または間接的にアクセスされるべきように構成されている。アドレス生成によるこのコンフィギュレーションによって、１つのコンフィギュレーション内で多数のデータをデータ処理論理セルフィールドにロードすることが可能であり、そのデータ処理論理セルフィールドではそれらのデータを必要に応じて内部メモリ（ｉＲＡＭ）に格納することができる、および／または、そのデータ処理論理セルフィールドでそれらのデータをレジスタおよび／または同様の固有のメモリ手段を備えたＥＡＬＵのような内部セルに格納することができる。したがってロードコンフィギュレーションないしストアコンフィギュレーションはブロック的に且つほぼデータストリーム的に、殊に個々のアクセスに比べてより高速なデータのロードを可能にし、またそのようなロードコンフィギュレーションを、先行してロードされたデータを処理し、実際にデータを評価および／または変更して実行する１つまたは複数のコンフィギュレーションが実施される前に実施することができる。データのロードおよび／または書き込みを典型的には、大きな論理セルフィールドにおいてこの論理セルフィールドの小さい部分領域へと行うことができ、他方では別の部分領域が別のタスクを扱っている。本発明のこの特徴及び別の特徴に関しては図１に示唆されている。データ処理フィールドの両側にメモリセルが設けられており、データが第１の処理ステップにおいて一方の側のメモリからデータ処理フィールドを介して他方の側のメモリに流れ、その他方の側においてはフィールドを最初に通過した際に得られた中間結果が第２のメモリに格納され、必要に応じてフィールドがコンフィギュレーションし直され、次いで中間結果はさらなる処理のために逆方向に流れることなどが行われている、既に公開されている本出願人による別の刊行物に記載されているピン・ポン（Ping-Pong）的なデータ処理においては、例えば一方のメモリ側にはアレイ部分におけるＬＯＡＤコンフィギュレーションによって新たなデータを事前ロードすることができ、他方では、反対のメモリ側からはデータを別のアレイ部分におけるＳＴＯＲＥコンフィギュレーションでもって書き出すことができる。この同時的なＬＯＡＤ／ＳＴＯＲＥ手順は通常の場合、メモリ領域の空間的な分離を行わなくても可能である。
【００１７】
内部メモリを_がデータで満たされる種々の可能性が存在することを再度言及しておく。内部メモリを殊に前もって、データストリーム的なアクセスを使用する別個のロードコンフィギュレーションによって事前ロードすることができる。このことはベクトルレジスタとしての使用に相当し、その結果、内部メモリは常に少なくとも部分的に、外に向かって見えるＸＰＰの状態の一部でなければならず、したがってコンテクスト切替の際には記憶されるか、書き直されなければならない。択一的および／または付加的に、内部メモリ（ｉＲＡＭ）を別個の「ロード命令」によってＣＰＵにロードすることができる。このことはコンフィギュレーションによる低減されたロード手順につながり、またメモリ階層に対するより広範なインタフェースを生じさせることができる。ここでもまたベクトルレジスタにアクセスが行われるようにアクセスが行われる。
【００１８】
キャッシュコントローラの命令によるメモリからのバーストとしても事前ロードを構成することができる。さらには、所定の事前ロード命令が初期アドレスおよび初期の大きさないしステップ幅によって定義されている所定のメモリ面積を内部メモリ（ＩＲＡＭ）にマッピングするようにキャッシュを構成することも可能であり、またこのことは非常に性能の良いものとして多くの事例において好ましい。全ての内部ＲＡＭが対応付けられていれば、次のコンフィギュレーションを起動することができる。起動は全てのバースト的なロード手順が終了するまで待機を伴う。しかしながらこのことは、事前ロード命令が予め十分前に出力されて、キャッシュの局在化が割込またはタスク切替によって妨害されない限りはトランスパレントである。殊に、メモリからのデータのロードを回避する「プレロード・クリーン（Preload-clean）」命令を使用することができる。
【００１９】
キャッシュ的にＩＲＡＭに格納されている特定のメモリ領域の内容がメモリ階層に書き直せることを保証するために同期命令が必要とされ、このことは大域的に、またはアクセスされるメモリ領域の特定によって行うことができる；大域的なアクセスは「完全な書き直し（full write back）」に相当する。ＩＲＡＭの事前ロードを単純化するために、このＩＲＡＭの事前ロードをベースアドレス、必要に応じて（多次元のデータフィールドへのアクセスの際には）１つまたは複数のステップ幅ならびに全体の実行の長さの簡単な指示によって特定し、これらをレジスタなどに格納して、どのようにロードされるべきかを決定するためにこのレジスタにアクセスすることが可能である。
【００２０】
レジスタがＦＩＦＯとして構成されている場合には殊に有利である。この場合、マルチスレッド環境における複数の仮想プロセッサに対してもそれぞれ１つのＦＩＦＯを設けることができる。さらにはキャッシュにおいては通例であるようなＴＡＧメモリとして使用するためのメモリ位置を設けることができる。
【００２１】
ＩＲＡＭの内容のマーキングはキャッシュの意味における「ダーティ（dirty）」として役立ち、したがってその内容が同一のＩＲＡＭにおいて再び使用されるべきではない場合には、内容を可能な限り高速に外部のメモリに書き直すことができる。したがってＸＰＰフィールドおよびキャッシュコントローラを単一のユニットと見なすことができる。何故ならばこのユニットは種々の命令ストリームを必要としないからである。むしろキャッシュコントローラを、ＸＰＰパイプラインにおけるステップ「コンフィギュレーションフェッチ」、「オペランドフェッチ」（ＩＲＡＭプレロード）および「書き直し」、すなわちＣＦ、ＯＦおよびＷＢのインプリメンテーションと見なすことができ、この際実施ステップ（ｅｘ）もトリガされる。例えばキャッシュエラーアクセスまたは異なる長さのコンフィギュレーションによる長期の潜在および事前不可視性に基づき、ステップが複数のコンフィギュレーションと広範に重畳する場合には有利であり、この際疎結合を目的としてコンフィギュレーションＦＩＦＯおよびデータ事前ロードＦＩＦＯ（パイプライン）が使用される。プレロードにはそれ自体公知のＦＩＬＭＯを後置できることを言及しておく。また事前ロードは推測的でもよく、推測の程度はコンパイラに依存して決定ができることを言及しておく。しかしながら誤った事前ロードによる欠点は、実施されたコンフィギュレーションではなく事前ロードされただけのコンフィギュレーションを、対応付けられているデータと同様に上書きのために容易にイネーブルできる限りは発生しない。ＦＩＦＯの事前ロードは数コンフィギュレーション先行させることができ、また例えばアルゴリズムの特性に依存していてもよい。このためにハードウェアを使用することが可能である。
【００２２】
使用されるデータをＩＲＡＭから外部メモリに書き直すということは、ＸＰＰに対応付けられている適切なキャッシュコントローラによって行えるが、この際このキャッシュコントローラは典型的にはタスクに優先順位を与え、有利には、対応付けられている実施状態に基づいて、高い優先順位を有する事前ロードオペレーションが実施される。他方では、別のブロックにおける重畳するＩＲＡＭエンティティ、または目標ＩＲＡＭブロックにおける空のＩＲＡＭエンティティの不足による事前ロードも阻止することができる。後者の場合には、コンフィギュレーションおよび／または書き直しが終了するまでコンフィギュレーションを待機することができる。この場合、異なるブロックにおけるＩＲＡＭエンティティは使用状態にあるか「ダーティ」でよい。最終的に使用されるクリーンなＩＲＡＭを放棄することができる。すなわち「空」と見なすことができる。空でもなく、またクリーンでもないＩＲＡＭエンティティが存在する場合には、「ダーティ」なＩＲＡＭ部分ないし空ではないＩＲＡＭ部分をメモリ階層に書き直す必要がある。常にただ１つのエンティティのみが使用できる状態にあり、またキャッシュ効果を達成するＩＲＡＭブロック内には１つ以上のエンティティが存在するべきなので、空でもなく、またクリーンでもない依然として「ダーティ」なＩＲＡＭエンティティは存在するということが発生する可能性はない。
【００２３】
ＳＭＴプロセッサがＸＰＰスレッドリソースと結合されているアーキテクチャの例が図４ａ〜ｃに例示的に示されている。
【００２４】
ここに紹介する有利な変形形態においても、必要に応じてメモリトラフィックを制限することが必要であり、このことはコンテクスト切替の間に種々のやり方で可能である。例えばコンフィギュレーションの場合のように、純粋な読み出しデータを記憶する必要はない。中断することができない（非割り込み的な）コンフィギュレーションにおいては、バスおよびＰＡＥの局所的な状態を記憶する必要はない。
【００２５】
修正されたデータのみを記憶して、メモリトラフィックを低減するためにキャッシュストラテジを使用することができる。このために殊に頻繁にコンテクストが切り替えられる場合にはＬＲＵストラテジ（ＬＲＵ＝最も古く使用された、least recently used）を殊に事前ロードメカニズムに付加的にインプリメントすることができる。
【００２６】
ＩＲＡＭがメインメモリの局所的なキャッシュコピーとして定義され、各ＩＲＡＭには初期アドレスおよび修正状態情報が対応付けられている場合に、ＩＲＡＭセルがＳＭＴ支援のためのようにも応答しており、その結果ＩＲＡＭの初期アドレスのみを記憶して、コンテクストとして再びロードするだけでよいことは有利である。この場合目下のコンフィギュレーションのＩＲＡＭに関する初期アドレスは、同一のアドレスを有するＩＲＡＭエンティティを使用のために選択する。ＩＲＡＭエンティティのアドレスＴＡＧが新たにロードされたコンテクストないし新たにロードすべきコンテクストのアドレスに対応しない場合には、相応のメモリ領域を空のＩＲＡＭエンティティにロードすることができ、この際このメモリ領域を自由なＩＲＡＭ領域と解することができる。そのような領域を使用できない場合には、前述の方法を使用することができる。
【００２７】
その他の点では、書き直しよって惹起される遅延を、目下アクティブでないＩＲＡＭエンティティを不必要な記憶周期の間に書き直すことを試みる殊に別個の状態マシン（キャッシュコントローラ）の使用により回避できることを言及しておく。
【００２８】
上記の記載から明らかであるように、有利にはキャッシュを明示的なキャッシュと解することができ、通常の場合のようにプログラマおよび／またはコンパイラにはトランスパレントなキャッシュとしては解されないことを言及しておく。ここで相応の制御を行うために、例えばコンパイラによって次の命令を出力することができる：各コンフィギュレーションによって使用されるＩＲＡＭ事前ロード命令に先行するコンフィギュレーション事前ロード命令。この種のコンフィギュレーション事前ロード命令は可能な限り早期にスケジューラによって設けられることが望ましい。さらには、つまり択一的および／または付加的に、同様に早期にスケジューラによって設けられることが望ましいＩＲＡＭ事前ロード命令を設けることができ、またコンフィギュレーションのためにＩＲＡＭ事前ロード命令に続くコンフィギュレーション実施命令を設けることができ、このコンフィギュレーション実施命令を殊に見積もられた潜在時間（遅延時間）だけ事前ロード命令に対して遅延させることができる。
【００２９】
キャッシュの書き直しを強制する命令に続いて、コンフィギュレーション待機命令を実施することもでき、この際両方の命令はコンパイラから出力され、しかも殊に、ロード／ストアユニットのような別の機能ユニットの命令が、潜在的に「ダーティ」であるかＩＲＡＭにおいて使用状態にあるメモリ領域にアクセスできる場合に出力される。したがって、データハザードを回避しつつ命令ストリームおよびキャッシュ内容の同期を必ず行うことができる。相応の処理によってこの種の同期命令は必ずしも頻繁に行われるものではない。
【００３０】
データのロードおよび／またはデータの格納は必ずしも完全な論理セルフィールドベースの手順によって行う必要がないことを言及しておく。むしろ、例えば別個および／または専用の１つまたは複数のＤＭＡユニット、すなわち殊にＤＭＡコントローラを設けることも可能であり、これらのユニットは例えば必要であればさらに、殊にＣＴおよび／または論理セルフィールドからの初期アドレス、ステップ幅、ブロックの大きさ、目標アドレスなどに関する設定によってコンフィギュレーションないし機能準備および／または調整される。
【００３１】
殊にキャッシュからのロード、またキャッシュへのロードを行うこともできる。このことは以下の利点を有する。すなわち、キャッシュメモリ手段における読み出しまたは書き込み的なやり方でのアクセスが典型的には非常に高速に、且つせいぜい僅かな潜在時間でもって行われ、また典型的にはＣＰＵユニットが典型的に別個のＬＯＡＤ／ＳＴＯＲＥユニットを介してこのキャッシュに接続されているために、データ処理論理セルフィールド内に別個の回路装置を設ける必要なく、キャッシュコントローラを介する比較的大きなメモリバンクとの外部通信が処理され、その結果データへのアクセス、およびＣＰＵコアとデータ処理論理セルフィールドとの間でのデータの交換をブロック的に高速に、且つデータの各伝送に対して別個の命令を例えばＣＰＵのオプコードフェッチャから取り出して処理する必要なく行うことができる。
【００３２】
このキャッシュ結合は、レジスタがＬＯＡＤ／ＳＴＯＲＥユニットを介してのみキャッシュと通信する場合には、これらのレジスタを介するＡＬＵとのデータ処理論理セルフィールドの結合よりも実質的に好適であることを言及しておく。このこと自体はＰＡＣＴ自身によるものではない刊行物から公知である。
【００３３】
複数のデータ処理論理セルフィールまたはこれらのデータ処理論理セルフィールドの内の１つに対応付けられているシーケンシャルなＣＰＵユニットのロード／メモリユニットとの別のコネクションおよび／またはそのユニットのレジスタとの別のデータコネクションを設けることができる。
【００３４】
この種のユニットの応答を殊にＶＰＵないしＸＰＰとして構成されているデータ処理論理セル配置の別個の入出力端子（ＩＯポート）を介して行うことができる、および／または、単一ポートの後段に接続されている１つまたは複数のマルチプレクサによって行うことができる。
【００３５】
殊にブロック的におよび／またはストリーム的におよび／またはランダムアクセス殊にＲＭＷモード（Read-Modify-Write-Modus）で、書き込みおよび／または読み出し的なやり方で行われるキャッシュ領域、および／または、ＬＯＡＤ／ＳＴＯＲＥユニットおよび／または（それ自体従来技術においては公知である）シーケンシャルなＣＰＵのレジスタとのコネクションへのアクセスの他に、ＲＡＭのような外部の大容量メモリ、ハードディスクおよび／またはアンテナなどのような他のデータ交換ポートとのコネクションも行えることを言及しておく。キャッシュ手段および／またはＬＯＡＤ／ＳＴＯＲＥユニット手段および／またはレジスタユニットの異なるメモリ手段へのこのアクセスのために別個のポートを設けることができる。ここで適切なドライバ、バッファ、レベル整合のためのシグナルプロセッサなど、例えばＬＳ７４２４４、ＬＳ７４２４５を設けることができることを言及しておく。その他の点では、殊に、しかしながらデータ処理論理セルフィールドに流れ込む、またはこのデータ処理論理セルフィールドへと流れたデータストリームを専ら処理するためではなく、フィールドの論理セルはＡＬＵないしＥＡＬＵを包含することができ、また典型的には包含するようになり、その論理セルフィールドの入力側および／または出力側には、殊に入力側にも出力側にも例えばＭＰＥＧ−４デコーディングには必要であるように継続的なデータストリームからビットブロックを切り取るために、細粒度でコンフィギュアラブルなＦＰＧＡ的な短い回路を前段に置くことができることを言及しておく。このことは一方では、データストリームがセルに到達すべき場合、且つそのセルにおいて比較的大きなＰＡＥユニットによる阻止が行われることなく一種の事前処理を行うことができる場合には有利である。このことはまた、ＡＬＵがＳＩＭＤ算術論理演算装置として構成される場合には非常に有利であり、この場合、例えば３２ビットのデータ幅の非常に長いデータ入力語が前段に接続されているＦＰＧＡ的な帯を介して、ＳＩＭＤ算術論理演算装置において並列に実行することができる、例えば４ビットの幅の並列な複数のデータ語に分割され、このことは相応の用途が必要とされる限り、システムの全体性能を著しく高めることができる。前記においては、前段ないし後段に接続されているＦＰＧＡ的な構造が問題であったことを言及しておく。しかしながら明示的に言及しておくが、ＦＰＧＡ的ということでもって必ずしも１ビット粒度の装置に関連している必要はない。この超細粒度の構造の代わりに単に、例えば４ビット幅の細粒度の構造を設けることが可能である。すなわち、殊にＳＩＭＤ算術論理演算装置として構成されているＡＬＵユニットの前段および／または後段におけるＦＰＧＡ的な入力構造および／または出力構造を例えば、常に４ビット幅のデータ語が供給および／または処理されるようにコンフィギュレーションすることができる。ここでカスケードを設けることが可能であり、その結果例えば到来する３２ビット幅のデータ語が、４つに分割されるないし分割されている相並んで配置されている８ビットのＦＰＧＡ的な構造に流れ、これらの４つの８ビット幅のＦＰＧＡ的な構造の後段には���つの４ビット幅のＦＰＧＡ的な構造を有する２つの帯が配置されており、また場合によっては、それぞれの目的のために必要と見なされるのであれば、この種のさらなる帯の他に例えば、並列に配置されている１６個の２ビット幅のＦＰＧＡ的な構造が設けられる。そのような場合には、純粋な超細粒度のＦＰＧＡ的な構造に比べてコンフィギュレーションの煩雑さを相当に低減することができる。さらにはこれによって、ＦＰＧＡ的な構造のコンフィギュレーションメモリなどをより小さくすることができ、したがってチップ面積を節約できることを言及しておく。ＦＰＧＡ的な帯構造は図３にも関連させて開示されているように、殊にＰＡＥにおける配置に関して、非常に容易に擬似ランダムノイズ発生器のインプリメンテーションを可能にすることも言及しておく。この際にステップ毎に、ただ１つのＦＰＧＡセルから得られる個々の出力ビットがＦＰＧＡセルに繰り返し記憶し直される場合には、ただ１つのセルを用いてもシーケンシャルに擬似ランダムノイズを創造的に生成することができ、このことはそれ自体で発明性があると見なされる。これについては図５を参照されたい。
【００３６】
原理的に、データブロックストリームにおける前述の結合の利点はキャッシュを介して達成することができる。しかしながら、キャッシュが帯のように（スライス的に）構成されている場合、またスライスの内の複数、殊に全てのスライスに同時にアクセスできる場合には殊に有利である。このことは、データ処理論理セルフィールド（ＸＰＰ）および／または１つのシーケンシャルなＣＰＵおよび／または複数のシーケンシャルなＣＰＵが、ハイパースレッディング、マルチタスキングおよび／またはマルチスレッディングであれ、複数のスレッドを実行できる場合（これはさらに詳細に論ずることになる）には有利である。すなわち有利にはキャッシュメモリ手段にはスライスアクセスないしスライスアクセス実現制御手段が設けられている。例えば各スレッドには固有のスライスを対応付けることができる。このことは後に、スレッドを用いて実行すべき命令群の再記録時にその都度相応のキャッシュ領域にアクセスされることをスレッドの実行時に保証することを可能にする。
【００３７】
キャッシュを必ずしもスライスに分割する必要はなく、分割される場合であっても各スライスに必ずしも固有のスレッドを割り当てる必要はないことをここで再度言及しておく。もっともこのことは遙かに有利な方式であることを示唆しておく。全てのキャッシュ領域が同時にまたは所定の時間に一時的に使用される場合が存在する可能性があることをさらに示唆しておく。むしろ、例えば手に収まる移動電話（携帯電話）、ラップトップ、カメラなどにおいて生じる典型的なデータ処理用途では、全てのキャッシュは必要とされない時間が頻繁に存在することが見込まれる。したがって、個々のキャッシュ領域を、そのエネルギ消費が著しく降下するように、殊に０またはほぼ０に降下するように電力供給から分離できる場合には殊に有利である。このことはキャッシュがスライス的に構成されている場合、適切な電力分離手段を介したこのキャッシュのスライス的な遮断によって行うことができる。これについては例えば図２を参照されたい。分離はクロックを低下させるか、クロックを分離するか、電力を分離することによって行うことができる。殊に、個々のキャッシュスライスなどにはアクセス識別手段を対応付けることができ、このアクセス識別手段はそれぞれのキャッシュ領域ないしそれぞれのキャッシュスライスが目下の所、これらに対応付けられており、またこれらを使用するスレッド、ハイパースレッドまたはタスクを有するか否かを識別するために構成されている。アクセス識別手段によってそのような場合でないことが識別される限り、典型的にはタスクおよび／またはそれどころか電力の分離が実現される。分離後に電力を再び供給する際にキャッシュ領域の即座の再要求が可能である、すなわち現行の適切な半導体技術を用いてハードウェアでインプリメントされる限り、電力供給のオン・オフによる著しい遅延が見込まれてはならないことを言及しておく。このことは論理セルフィールドの使用に関係なく多数の用途において重要である。
【００３８】
本発明においてもたらされるさらなる特別な利点は、ブロック的な形態でのデータないしオペランドの伝送に関する殊に効率的な結合が確かにもたされているが、それにもかかわらず、シーケンシャルなＣＰＵおよびＸＰＰないしデータ処理論理セルフィールドにおける正確に等しい処理時間が必要とされるようなやり方での平衡化は必要とされないことである。むしろ処理は、実際上は頻繁に依存しないやり方で、殊にシーケンシャルなＣＰＵおよびデータ処理論理セルフィールド配置をスケジューラなどに対して別個のリソースと見なすことができるようなやり方で行われる。このことは、マルチタスキング、マルチスレッディングおよびハイパースレッディングのような公知のデータ処理プログラム分割技術の即座の変換を可能にする。これによって生じる利点とは経路平衡化は必要ないこと、すなわち（例えばＲＩＳＣユニットにおける）シーケンシャルな部分と（例えばＸＰＰにおける）データフローの部分との間の非平衡化によって、例えばシーケンシャルなＣＰＵ（すなわち例えばＲＩＳＣ機能ユニット）内で任意の数のパイプライン段を通過することができること、種々のやり方でのクロッキングが可能であることなどである。本発明のさらなる利点は、ロードコンフィギュレーションないしストアコンフィギュレーションのＸＰＰまたは他のデータ処理論理セルフィールドへのコンフィギュレーションによって、ＣＰＵのクロック速度やオプコードフェッチャが動作する速度などによってはもはや決定されていない速度でもってデータをフィールドにロードすることができる、もしくはこのフィールドから書き出すことができる点にある。換言すれば、シーケンシャルなＣＰＵの経過制御は、依然として疎結合が存在することなく、データ論理セルフィールドのデータ通過量に対してもはや隘路的に制限されていない。
【００３９】
本発明の殊に有利な変形形態においては、ＸＰＰユニットにとっては既知であるＣＴ（ないしＣＭ；コンフィギュレーションマネージャないしコンフィギュレーションテーブル）を使用して、複数のＣＴを用いて階層的に配置されている１つまたは複数のＸＰＰフィールドのコンフィギュレーションも、また同時に１つまたは複数のシーケンシャルなＣＰＵのコンフィギュレーションもそこではほぼマルチスレッディングスケジューラ管理およびマルチスレッディングハードウェア管理として使用することが可能であり、このことはＦＩＬＭＯなどのような公知の技術をマルチスレッディングの際のハードウェア支援による管理に使用できるといる内在的な利点を有しているが、択一的に、および／または、殊に階層的な配置においては付加的に、例えばデータ処理論理セルフィールドが例えばＸＰＰコンフィギュレーションをシーケンシャルなＣＰＵのオプコードフェッチャからコプロセッサインタフェースを介して得ることが可能である。これによってシーケンシャルなＣＰＵおよび／または他のＸＰＰから、ＸＰＰにおいてデータを実行する呼び出しを具体化させることができる。ＸＰＰは例えば前述のキャッシュ結合を介して、および／または、ＸＰＰないしデータ処理論理セルフィールドにおいてデータのロードおよび／または書き出しのためにアドレスを生成する、ＬＯＡＤコンフィギュレーションおよび／またはＳＴＯＲＥコンフィギュレーションを用いて、データ交換において保持される。換言すれば、コプロセッサ的および／またはスレッドリソース的なデータ処理論理セルフィールドの結合が可能であり、他方ではこれと同時にデータストリーム的なデータロードがキャッシュ結合および／またはＩ／Ｏポート結合によって行われる。
【００４０】
コプロセッサの結合、すなわちデータ処理論理セルフィールドの結合によって典型的には、スケジューリングがこの論理セルフィールドに対しても、シーケンシャルなＣＰＵにおいてまたはこのシーケンシャルなＣＰＵの上位のスケジューラユニットないし相応のスケジューラ手段において行われることを言及しておく。そのような場合実際には、スレッディング制御およびスレッディング管理がスケジューラないしシーケンシャルなＣＰＵにおいて行われる。このことはそれ自体可能であるにもかかわらず、少なくとも本発明の最も簡単な実施形態においては強制的なものではない。むしろ、標準的なコプロセッサ、例えば８０８６／８０８７の組み合わせの場合のような従来のやり方でデータ処理論理セルフィールドを使用することができる。
【００４１】
殊に有利な変形形態においては、コンフィギュレーションの種類に依存せずに、コプロセッサを介してであれ、スケジューラとして一緒に使用されるＸＰＰないしデータ処理論理セルフィールドなどのコンフィギュレーションマネージャ（ＣＴ）を介してであれ、または別のやり方であれ、データ処理論理セルフィールド内で、またはデータ処理論理セルフィールドの直ぐ近くで、もしくはデータ処理論理セルフィールドの管理のもとで、殊に本出願人による先行の種々の明細書および刊行物から公知であるＸＰＰアーキテクチャにおけるメモリ、殊に内部メモリを殊に、ＲＡＭ−ＰＡＥ、または他の相応の管理されたメモリまたは内部メモリはベクトルレジスタのように応答し、すなわちＬＯＡＤコンフィギュレーションを介してロードされる大量のデータをベクトルレジスタにおけるようにベクトル的に内部メモリに格納し、次いで、ＸＰＰないしデータ処理論理セルフィールドをコンフィギュレーションし直した後、すなわちデータの本来の処理を実施する新たなコンフィギュレーションの上書きないし追加ロードおよび／または起動が行われた後に（この関連において、そのような処理コンフィギュレーションのために、例えばウェーブモードでおよび／またはシーケンシャルに連続して実行できる複数のコンフィギュレーションも参照できることを示唆しておく）ベクトルレジスタの場合のようにアクセスし、この際に得られた結果および／または中間結果を再び内部メモリ、またはＸＰＰを介して内部メモリのように管理される外部メモリに供給し、そのメモリにこれらの結果を格納することができる。そのようなＸＰＰアクセスのもとでベクトルレジスタ的に処理結果が書き込まれる記憶手段は、処理コンフィギュレーションのリコンフィギュレーション後にＳＴＯＲＥコンフィギュレーションのロードによって適切なやり方で書き出される。このことはやはり、Ｉ／Ｏポートを介してであれ、事前にデータを形成したＸＰＰまたは他の相応のデータ処理ユニットにおいてシーケンシャルなＣＰＵおよび／または他のコンフィギュレーションが後の時点においてアクセスすることができる外部のメモリ領域および／または、殊に有利には、キャッシュメモリ領域へと直接的にデータストリーム的に行われる。
【００４２】
殊に有利な変形形態においては、少なくとも所定のデータ処理結果および／または中間結果のために、得られたデータを格納することができるメモリ手段ないしベクトルレジスタ手段として、シーケンシャルなＣＰＵまたは他のデータ処理ユニットがアクセスできるキャッシュ領域または他の領域へのＳＴＯＲＥコンフィギュレーションを介してデータが書き出されている内部メモリを使用するのではなく、そのような内部メモリの代わりに、殊にスライス的に編成することができる、殊にアクセス予約された相応のキャッシュ領域に直接的に結果を書き出すことができる。このことは場合によっては、殊にＸＰＰユニットまたはデータ処理論理セルフィールドユニットとキャッシュとの間の経路は信号伝播時間が重要であるような長さであるときに、比較的長い潜在時間の欠点を有するが、場合によっては別のＳＴＯＲＥコンフィギュレーションは必要とされないことにもなる。その他の点では、データのキャッシュ領域へのこの種の記憶は、前述したように、書き込みの行われるメモリが物理的にキャッシュコントローラの近くに位置し、且つキャッシュとして構成されていることによって可能であるが、択一的および／または付加的に、殊にＲＡＭにおけるＸＰＰメモリ領域の一部、ＸＰＰ内部のメモリなどをＰＡＥを介して（これについてはPACT31 (DE 102 12 621.6, WO 03/036507)を参照されたい）提供する可能性も存在することを言及しておく。データ処理論理セルフィールドにおいて検出される処理結果を記憶する際に潜在時間は短く保持されるべき場合には有利であり、これに対し依然として「準キャッシュ」として使用されるメモリ領域への他のユニットによるアクセスの際の潜在時間は重要にならない、もしくは殆ど重要にならない。
【００４３】
その他の点では、従来のシーケンシャルなＣＰＵのキャッシュコントローラが、データ処理論理セルフィールドとのデータ交換に使用されることなく、このデータ処理論理セルフィールド上および／またはこのデータ処理論理セルフィールドにおいて物理的に存在するキャッシュとしてのメモリ領域に応答することを言及しておく。せいぜい局所的な僅かな所要面積しか有さないデータ処理論理セルフィールドにおいてアプリケーションが実行される場合、および／または、使用されるメモリ量に関して僅かなコンフィギュレーションしかさらに必要とされない場合には、この１つまたは複数のシーケンシャルなＣＰＵをキャッシュとして使用できることは有利である。動的な環境を有する、すなわち大きさが変化するキャッシュ領域の管理のためにキャッシュコントローラを構成することができ、また構成されることを言及しておく。動的なキャッシュ管理のための動的なキャッシュ環境管理ないしキャッシュ環境管理手段は典型的には、シーケンシャルなＣＰＵおよび／またはデータ処理論理セルフィールドにおける動作負荷および／または入出力負荷を考慮する。換言すれば、ウェーブリコンフィギュレーションであれ、または他のやり方であれ高速にコンフィギュレーションし直すことができるようにするために、どれほど多くのＮＯＰのデータアクセスが所定の時間内でシーケンシャルなＣＰＵにおいて存在するか、および／または、どれほど多くのコンフィギュレーションをＸＰＰフィールドにおいてこのために設けられているメモリ領域に事前に格納されるべきであるかを分析することができる。これによって明白な動的なキャッシュの大きさは殊に有利には実行時間について動的である。すなわちキャッシュコントローラはその都度、クロック毎またはクロック群ごとに変化する可能性がある目下のキャッシュの大きさを管理する。その他の点では、ベクトルレジスタの場合のような内部メモリとして、また外部アクセスのためのキャッシュ的なメモリとしてのアクセス（これはメモリアクセスに関係する）を伴うＸＰＰフィールドないしデータ処理論理セルフィールドのアクセス管理は既にDE 196 54 595およびPCT/DE 97/03013 (PACT03)に記載されていることを言及しておく。前述の刊行物は開示を目的とする参照により完全な範囲で本発明に取り入れられる。
【００４４】
前記においては、殊に実行時間においてリコンフィギュアラブルであるデータ処理論理セルフィールドを参照した。このデータ処理論理セルフィールドにはコンフィギュレーション管理ユニット（ＣＴないしＣＭ）を設けることができることを論じた。開示を目的として参照した本出願人の種々の保護権ならびに本出願人による別の先行の刊行物からは、コンフィギュレーション自体の管理が公知である。この種のユニット、また殊にシーケンシャルなＣＰＵなどとの結合に依存せずに目下の所まだ必要でないコンフィギュレーションを事前ロードできる作用を、マルチタスキング動作においておよび／またはハイパースレッディングおよび／またはマルチスレッディングの際に、タスク切替ないしスレッド切替および／またはハイパースレッド切替を行うために非常に良好に使用できることも明示的に言及しておく。これについては例えば図６ａ〜６ｃを参照されたい。このために、スレッドまたはタスクの実行中に、データ処理論理セルフィールドの個々のセルまたはセル群、すなわち例えばＰＡＥフィールドのＰＡＥに（ＰＡ）おけるコンフィギュレーションメモリに、種々の課題、すなわちタスクまたはスレッドないしハイパースレッドのためのコンフィギュレーションもロードすることができる。タスクまたはスレッドが遮断される場合、例えば、リソースが現在の所他のアクセスによって依然として阻止されている場合であれ、例えば潜在に起因してデータが他のユニットによって依然として形成されていない、またはデータを他のユニットから受信していない場合であれ、そのようなデータをまだ使用できないためにデータを待機しなければならない場合には、他のタスクまたはスレッドのためのコンフィギュレーションは事前ロード可能である、および／または、事前ロードされており、殊にコンフィギュレーション切替のための時間オーバヘッドを殊にブラインド的にロードされたコンフィギュレーションの際に待機する必要なく、これらのコンフィギュレーションに切り替えることができる。タスク内で続きがありそうであると予測され、予測が外れる場合（予測ミス）にもこの技術が使用されるが、この種の動作は予測のない動作において有利となる。したがって、純粋にシーケンシャルな１つのＣＰＵおよび／または純粋にシーケンシャルな複数のＣＰＵを使用する場合、殊に専らそのようなＣＰＵを使用する場合、コンフィギュレーションマネージャの接続によってマルチスレッド管理シェアウェアが実現される。これに関しては殊にPACT10 (DE 198 07 872.2, WO 99/44147, WO 99/44120)およびPACT17 (DE 100 28 397.7, WO 02/13000)に記載されている。殊にＣＰＵおよび／または若干のシーケンシャルなＣＰＵのためにのみハイパースレッド管理が所望される場合に、特に保護権を参照して記述されているＦＩＬＭＯのような所定の部分回路を省略することは十分であると見なすことができる。したがって殊に、ＸＰＰまたは他のデータ処理論理セルフィールドと結合されているまたは結合されていない、純粋にシーケンシャルに動作する１つおよび／または複数のＣＰＵにとってのハイパースレッド管理のためのＦＩＬＭＯを備えているおよび／または備えていない前記刊行物に記載されているコンフィギュレーションマネージャの使用が開示され、したがってそれ自体で権利が主張される。これに関してはそれ自体発明性のある特徴と見なされる。その他の点では、殊に命令レジスタおよび／またはデータレジスタとしてシーケンシャルなＣＰＵを構成するために殊にデータ処理論理セルフィールドにおける１つまたは複数のメモリ領域を使用して、１つのアレイ内に１つまたは複数のシーケンシャルなＣＰＵが構成される、殊にPACT31 (DE 102 12 621.6-53, PCT/EP 02/10572)およびPACT34 (DE 102 41 812.8, PCT/EP 03/09957) から公知であるような従来技術を用いて複数のＣＰＵを実現できることを言及しておく。リングメモリおよび／または選択自由アクセスメモリを備えたシーケンサをどのように構成できるかは既に、先行の明細書、例えばPACT02, (DE 196 51 075.9-53, WO 98/26356), PACT04 (DE 196 54 846.2-53, WO 98/29952), PACT08, (DE 197 04 728.9, WO 98/35299)に開示されていることを言及しておく。
【００４５】
PACT10 (DE 198 07 872.2, WO 99/44147, WO 99/44120)およびPACT17 (DE 100 28 397.7, WO 02/13000)を参照する_公知のＣＴ技術を使用する、タスク切替ないしスレッド切替および／またはハイパースレッド切替を、それ自体公知のソフトウェアによってインプリメントされるオペレーティングシステムスケジューラなどにはＣＴによって性能スライスおよび／または時間スライスが割り当てられ、その間に、リソースが自由であることを前提として、どのタスクまたはスレッドによって続けてどの部分自体を実行できるかが決定されるように行うことができ、有利には行われる。これに関する例として以下のものが挙げられる：先ず第１のタスクに関してはアドレス列が生成されるべきであり、このアドレス列にしたがいＬＯＡＤコンフィギュレーションの実施中に、前述のようにしてデータ処理論理セルフィールドが結合されているメモリおよび／またはキャッシュメモリからデータがロードされるべきである。これらのデータが存在すると即座に、本来のデータ処理コンフィギュレーションの内の第２のデータ処理コンフィギュレーションを開始することができる。割込などが完全なタスク切替を強制しない限りはこのコンフィギュレーションを実施できることが保証されるので、このデータ処理コンフィギュレーションも事前ロードすることができる。従来のプロセッサにおいては、データが確かに要求されるが、ロードアクセスのためにキャッシュ内にはデータは存在しない、いわゆるキャッシュミスの問題が公知である。そのようなケースが本発明による結合において生じる場合には、殊にソフトウェアによってインプリメントされるオペレーティングシステムスケジューラ、および／または、別のハードウェアおよび／またはソフトウェアによってインプリメントされる相応に作用するユニットが殊に次に起こりうる実施のために決定しており、したがって有利には事前にデータ処理論理セルフィールドの使用可能なコンフィギュレーションメモリのうちの１つに、殊に他のコンフィギュレーションの内の１つ、例えば待機される各データのロードを行ったＬＯＡＤコンフィギュレーションの実施中にバックグラウンドでロードされた他のスレッド、ハイパースレッドおよび／またはタスクに有利には切り替えることができる。事前コンフィギュレーションに対して、殊に粗粒度に構成されているデータ処理論理セルフィールドのデータ処理論理セルの実際の相互接続によって妨害されることなく、別個のコンフィギュレーション配線をコンフィギュレーションされたユニットからそれぞれのセルへと直接的におよび／または適切なバスシステムを介して案内できることはそれ自体従来技術において公知であるが、ここで再度明示的に言及しておく。何故ならば、直線的に延びる別のコンフィギュレーションを妨害することなく、妨害のない事前コンフィギュレーションを実現するためにこの構成は殊に有利だからである。このことは殊にPACT10 (DE 198 07 872.2, WO 99/44147, WO 99/44120), PACT17 (DE 100 28 397.7, WO 02/13000) PACT13 (DE 199 26 538.0, WO 00/77652), PACT02 (DE 196 51 075.9, WO 98/26356)およびPACT08 (DE 197 04 728.9, WO 98/35299)に記載されている。PACT19 (DE 102 02 044.2, WO 2003/060747)およびPACT11 (DE 101 39 170.6, WO 03/017095)を参照して、タスク・スレッド切替および／またはハイパースレッド切替の間に、ないしタスク・スレッド切替および／またはハイパースレッド切替に基づいて切り替えられたコンフィギュレーションが実行された場合、しかも、有利には分割不可能で、中断不可能であり、したがって準原始的なコンフィギュレーションにおいて最後まで実行された場合には、部分的に他の別のコンフィギュレーションが前述のように相応のスケジューラ、殊にオペレーティングシステムに近いスケジューラによって設定、実行される、および／または、事前に所属のＬＯＡＤコンフィギュレーションが実施された各コンフィギュレーションが設定、実行される。殊に事前にＬＯＡＤコンフィギュレーションが実施された処理コンフィギュレーションを実施する前に、例えばＬＯＡＤコンフィギュレーションまたはデータロード式のＤＭＡコントローラの状態を問い合わせることによって、そうこうしている内に相応のデータがアレイに流れているか否か、すなわち典型的に生じるような潜在時間が経過しているか、および／または、データが実際に存在しているか否かを検査することができる。
【００４６】
換言すれば、例えばコンフィギュレーションが依然として行われていないため、データが依然としてロードされていなかったため、および／または、データが依然として書き出されていなかったために潜在時間が生じている場合に、この潜在時間は、既に事前にコンフィギュレーションされており、且つ書き出しのために既に使用可能であるリソースに書き出すことができる、ないし既に使用可能であるデータを用いて動作するスレッド、ハイパースレッドおよび／またはタスクが実施されることによって調整および／または隠蔽される。このようにして潜在時間は十分に隠され、またそれ自体実施すべき多数のスレッド、ハイパースレッドおよび／またはタスクを前提として、データ処理論理セルフィールドの実質的に１００％の利用が達成される。
【００４７】
例えばスケジューラまたはＣＴによってスレッドが自由に対応付けられる、_ＸＰＰ内部のメモリリソースを十分多く設けることによって、同時におよび／または重畳的に、複数のスレッドのキャッシュ動作および／または書き込み動作を実行することができ、このことは場合によっては生じる潜在の調整にとって殊にプラスに作用する。
【００４８】
シーケンシャルなＣＰＵとの同時的な結合の際のデータストリーム能力に関して、および／または、ＸＰＰアレイないしデータ処理論理セルフィールドの結合、また同時にコンフィギュレーションマネージャなどのような適切なスケジューラユニットとの結合に関して前述のシステムを用いることにより、殊に容易にリアルタイム能力のあるシステムを実現することができる。リアルタイム能力については、到来するデータ、ないし殊にデータの到来をシグナリングする割込に対して、いかなる場合も越えてはならない最大時間内に反応できることが保証されなければならない。このことを例えば、割込に基づくタスク切替によって、および／または、例えば割込に優先順位が与えられている場合には、所定の割込を目下無視できることを確認することによって行うことができ、この場合にもこのことは所定の時間内で確認されるべきである。この種のリアルタイム能力のあるシステムでのタスク切替は典型的には３つの様式で行うことができる。すなわち、タスクが所定の時間実行されている場合（タイマ原理）、他のアクセスによるリソースの阻止によってであれ、殊に書き込み的および／または読み出し的なやり方でのリソースへのアクセスの際における潜在に起因する場合であれリソースが使用できない場合、すなわちデータアクセスによる潜在状態の場合、および／または、割込が発生する場合である。
【００４９】
その他の点では、殊に、割込処理のためにイネーブルすべきないし切り替えられるべきリソースにおける、実行時間が制限されたコンフィギュレーションもウォッチドッグないし追従カウンタを新たにトリガできることを言及しておく。
【００５０】
そうでない場合には、PACT 29 (DE 102 12 622.4, WO 03/081454)の参照によっても、実行時間を延長するために追従カウンタないしウォッチドッグを新たにトリガすることをタスクスイッチによって阻止できることが明示的に記載されているが、本願発明によれば、割込が同様に、すなわちタスクスイッチに応じて、追従カウンタないしウォッチドッグおよび新たなトリガを阻止するように作用を及ぼすことができ、すなわちそのような場合においては、コンフィギュレーションが新たなトリガ自体によってその最大限に可能な実行時間を延長することを阻止できることが明示的に開示される。
【００５１】
本発明を用いて、データ処理論理セルフィールドのリアルタイム能力を、３つの可能な変形のうちの１つまたは複数がインプリメントされることによって達成することができる。
【００５２】
第１の変形では、スケジューラないしＣＴによって応答可能なリソース内で例えば割込を実行するための切替が行われる。このことは、割込または他の要求への応答時間がこの時間中にコンフィギュレーションを中断なしでさらに実行できるほど長い限りは危機的ではなく、殊に、目下実行されているコンフィギュレーションを処理している間に、割込の実行のために切り替えられるべき各リソースに割込を実行するためのコンフィギュレーションを事前ロードすることができる。割込を実行する事前ロードすべきコンフィギュレーションの選択は例えばＣＴによって実施されるべきである。割込を実行するためにイネーブルされる、ないし切り替えられるリソースにおけるコンフィギュレーションの実行時間を制限することも可能である。これに関してはPACT29/PCT(PCT/DEO3/000942)に示唆されている。
【００５３】
より高速に割込に反応しなければならないシステムにおいては、個々のリソース、すなわち例えば別個のＸＰＰユニットおよび／またはＸＰＰフィールドの部分をその種の実行のために予約することは有利となる。高速に実行すべき割込が生じた場合には、殊にクリティカルな割込のために既に予め事前ロードされたコンフィギュレーションを実行することができるか、割込を処理するコンフィギュレーションの予約されたリソースへのロードが即座に開始される。相応の割込のためにその都度必要とされるコンフィギュレーションの選択は相応のトリガ、ウェーブ実行などによって可能である。
【００５４】
その他の点では、記述の方法を用いることにより、ＬＯＡＤ／ＳＴＯＲＥコンフィギュレーションの使用を介してコードリエントラントが達成されることによって、割込への即時的な反応を得ることは容易に可能であることを言及しておく。データを処理するコンフィギュレーションが終了する度に、または所定の時間、例えばコンフィギュレーションが５回または１０回行われる毎にＳＴＯＲＥコンフィギュレーションが実施され、次いで事前に書き込まれた各メモリ領域へのアクセスによりＬＯＡＤコンフィギュレーションが実施される。ＳＴＯＲＥコンフィギュレーションによって使用されるメモリ領域が、タスクにおける経過によって別のコンフィギュレーションが関連する全ての情報（状態、データ）を書き出すまで使用されていないままであることが保証される場合には、再ロードの際、すなわち前もって開始されているが最後までは実行されていないコンフィギュレーションまたはコンフィギュレーションチェーンへの再供給の際に再び同一の条件が得られることが保証される。まだ古くなっていないＳＴＯＲＥメモリ領域を同時に保護するＬＯＡＤ／ＳＴＯＲＥコンフィギュレーションのそのような中間回路を、付加的なプログラマの手間を要することなく、例えばコンパイラによって非常に簡単に生成することができる。そこではリソース予約が必要に応じて有利となる。リソース予約の際および／または他の場合において、所定のコンフィギュレーションの事前ロードによって、高い優先順位が与えられている割込の少なくとも十分な数の割込に対して反応できることを、ここで再度言及しておく。
【００５５】
割込への反応の殊に有利な別の変形形態では、応答可能なリソースの内の少なくとも１つがシーケンシャルなＣＰＵである場合に、このシーケンシャルなＣＰＵにおいて、やはりデータ処理論理セルフィールドに対するコードが禁止されている割り込みルーチンが実行される。換言すれば、時間が重要な割込ルーチンは、ＸＰＰデータ処理ステップが呼び出されることなく、専らシーケンシャルなＣＰＵにおいて実行される。このことは、データ処理論理セルフィールドにおける処理手順が中断されないことを保証し、このデータ処理論理セルフィールドにおけるさらなる実行をタスク切替の後に行うことができる。したがって本来の割込ルーチンはＸＰＰコードを有していないにもかかわらず、割込に基づいて、もはやリアルタイムには関連しない後の時点において、割込および／またはリアルタイム要求によって検出された状態および／またはデータに対してデータ処理論理セルフィールドを使用して反応できるようになる。
【図面の簡単な説明】
【００５６】
【図１ａ】本発明による実施形態の概略図。
【図１ｂＩ】本発明による実施形態の概略図。
【図１ｂＩＩ】本発明による実施形態の概略図。
【図１ｂＩＩＩ】本発明による実施形態の概略図。
【図１ｃ】本発明による実施形態の概略図。
【図１ｄ】本発明による実施形態の概略図。
【図１ｅ１】本発明による実施形態の概略図。
【図１ｅ２】本発明による実施形態の概略図。
【図１ｆ１】本発明による実施形態の概略図。
【図１ｆ２】本発明による実施形態の概略図。
【図２】キャッシュのスライス的な遮断を表す概略図。
【図３Ｉ】ＦＰＧＡ的な帯構造の概略図。
【図３ＩＩ】ＦＰＧＡ的な帯構造の概略図。
【図３ＩＩＩ】ＦＰＧＡ的な帯構造の概略図。
【図３ａ】ＦＰＧＡ的な帯構造の概略図。
【図４ａ】ＳＭＴプロセッサがＸＰＰスレッドリソースと結合されているアーキテクチャの概略図。
【図４ｂ】ＳＭＴプロセッサがＸＰＰスレッドリソースと結合されているアーキテクチャの概略図。
【図４ｃ】ＳＭＴプロセッサがＸＰＰスレッドリソースと結合されているアーキテクチャの概略図。
【図５】ＦＰＧＡセルの構造の概略図。
【図６ａ】タスク切替を表す概略図。
【図６ｂ】タスク切替を表す概略図。
【図６ｃ】タスク切替を表す概略図。
【図１ａ】
2006524850.tif 000003
【図１ｂＩ】
2006524850.tif 000004
【図１ｂＩＩ】
2006524850.tif 000005
【図１ｂＩＩＩ】
2006524850.tif 000006
【図１ｃ】
2006524850.tif 000007
【図１ｄ】
2006524850.tif 000008
【図１ｅ１】
2006524850.tif 000009
【図１ｅ２】
2006524850.tif 000010
【図１ｆ１】
2006524850.tif 000011
【図１ｆ２】
2006524850.tif 000012
【図２】
2006524850.tif 000013
【図３Ｉ】
2006524850.tif 000014
【図３ＩＩ】
2006524850.tif 000015
【図３ＩＩＩ】
2006524850.tif 000016
【図３ａ】
2006524850.tif 000017
【図４ａ】
2006524850.tif 000018
【図４ｂ】
2006524850.tif 000019
【図４ｃ】
2006524850.tif 000020
【図５】
2006524850.tif 000021
【図６ａ】
2006524850.tif 000022
【図６ｂ】
2006524850.tif 000023
【図６ｃ】
2006524850.tif 000024
【国際調査報告】
2006524850.tif 000025
2006524850.tif 000026
2006524850.tif 000027
2006524850.tif 000028
2006524850.tif 000029
2006524850.tif 000030
2006524850.tif 000031
2006524850.tif 000032