JP2006524850A - データ処理方法およびデータ処理装置 - Google Patents

データ処理方法およびデータ処理装置 Download PDF

Info

Publication number
JP2006524850A
JP2006524850A JP2006505004A JP2006505004A JP2006524850A JP 2006524850 A JP2006524850 A JP 2006524850A JP 2006505004 A JP2006505004 A JP 2006505004A JP 2006505004 A JP2006505004 A JP 2006505004A JP 2006524850 A JP2006524850 A JP 2006524850A
Authority
JP
Japan
Prior art keywords
configuration
data processing
data
logic cell
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006505004A
Other languages
English (en)
Inventor
フォアバッハ マーティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PACT XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Publication of JP2006524850A publication Critical patent/JP2006524850A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Logic Circuits (AREA)

Abstract

本発明はデータ処理論理セルフィールドおよび少なくとも1つのシーケンシャルなCPUを有するデータ処理装置に関する。このデータ処理装置においては、殊にブロック的な形態でのデータ交換のためのシーケンシャルなCPUとデータ処理論理セルフィールドとの結合がキャッシュメモリに案内される配線を実現することが提案される。

Description

発明の詳細な説明
本発明は独立請求項の上位概念記載のデータ処理方法およびデータ処理装置に関し、したがってデータ処理のためのリコンフィギュアラブルなプロセッサ技術を使用する際の改善に取り組む。
論理セルフィールドの有利な構造に関しては、本出願人によるXPPアーキテクチャおよび既に開示されている先行の保護権を主張する明細書に示されており、これらは開示を目的として完全な範囲が取り入れられる。したがって殊に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に記載されている。
リコンフィギュアラブルな技術に対する従来のアプローチにおける問題は、データ処理を最初にシーケンシャルなCPUにおいてコンフィギュアラブルなデータ処理論理セルフィールドなどを使用して行うべき場合、および/または、シーケンシャルに実施すべき多数および/または膨大な処理ステップが存在するデータ処理が所望される場合に生じる。
したがって、どのようにしてデータ処理をコンフィギュアラブルなデータ処理論理セルフィールにおいてもCPUにおいても行うことができるかに取り組むアプローチが公知である。
つまりWO 00/49496からは、実行時間にコンフィギュレーションプログラムのロードによって再定義できる作用を有するリコンフィギュアラブルな命令を実行することができるコンフィギュアラブルな機能ユニットを包含するプロセッサを用いてコンピュータプログラムを実施する方法が公知であり、この方法はリコンフィギュアラブルな命令の組み合わせを選択するステップと、それぞれのコンフィギュレーションプログラムを各組み合わせに対して形成するステップと、コンピュータプログラムを実行するステップとを包含する。この方法においては、実施中に組み合わせの内の1つからなる命令がもたらされて、コンフィギュアラブルな機能ユニットがこの組み合わせのためのコンフィギュレーションプログラムでもってコンフィギュレーションされていない度に、組み合わせの全ての命令に対するコンフィギュレーションプログラムがコンフィギュアラブルな機能ユニットにロードされるべきである。
さらに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, 1996年5月に記載されている。
ハイパースレッディング技術およびマルチスレッディング技術は、現在のマイクロプロセッサがその性能を、特殊化された深いパイプライン的に制御される多数の機能ユニットおよびメモリ階層から得ることを考慮して開発された技術であり、このことは機能コアにおける高周波を許容する。しかしながら厳密に階層的なメモリ配置によって、コア周波数とメモリ周波数の差に起因するキャッシュへのエラーアクセス時には、データがメモリから読み出されるまでコアクロック周期が複数回経過するのでより大きな欠点が存在する。さらには分岐の際、殊に誤って予測された分岐の際には問題が生じる。したがって、いわゆるSMT、同時マルチプロセッシング(simultaneous multi-threading)方法として、命令を実行できない場合、または全ての機能ユニットが使用されない場合には常に種々のタスクを切り換えることが提案された。
本出願人によるものではない前述の刊行物の例示的に説明した技術は、確かにコンフィギュレーションをコンフィギュアラブルなデータ処理論理セルフィールドにロードすることができる配置が示されているが、もっともこの配置においてはCPUのALUと、FPGAやDSPなどであれコンフィギュアラブルなデータ処理論理セルフィールとの間のデータ交換はレジスタを介して行われる。換言すれば、データストリームからなるデータを差し当たりシーケンシャルにレジスタに書き込み、続けてシーケンシャルに再びこのレジスタに格納しなければならない。データに外部からアクセスすべき場合にも問題が生じる。何故ならばこのような場合自体に、ALUと比較したデータ処理の時間的な経過の際、またコンフィギュレーションの割り当ての際などにもさらに問題が存在するからである。本出願人によるものではない固有の保護権から公知であるような従来の配置は殊に、DFPやFPGAなどのコンフィギュアラブルなデータ処理論理セルフィールドにおいて機能を実行するために使用されるが、CPU固有のALUにおいてはこの機能を効率的に処理することはできない。したがって、コンフィギュアラブルなデータ処理論理セルフィールドは事実上、コンフィギュアラブルなデータ処理論理セルフィールド支援の無いCPUのALU算術論理演算装置において可能であろうよりも効率的なアルゴリズムの実行を可能にするユーザ定義のオプコードを実現するために使用される。
したがって前述したように、従来技術においては結合が通常の場合ワードベースであり、データストリームを処理するために必要とされるようなブロックベースではない。差し当たり、レジスタを介する密結合を用いる場合よりも効率的にデータ処理を実現することが望ましい。
粗粒度および/または細粒度に構成されている論理セルおよび論理セルエレメントからなる論理セルフィールドを使用するための別の可能性は、そのようなフィールドと埋め込み式のシステムにおける従来のCPUおよび/またはCPUコアとの非常に緩い結合(疎結合)である。この場合、従来のシーケンシャルなプログラム、例えばC、C++などで記述されているプログラムをCPUなどにおいて実行することができ、このプログラムによって細粒度および/または粗粒度のデータ処理論理セルフィールドにおけるデータ処理の呼び出しが具体化される。この論理セルフィールドに対するプログラミングの際にCまたは他の高水準言語によっては記述されていないプログラムをデータ処理のために設けなければならないことは問題である。ここでは従来のCPUアーキテクチャにおいてもこのCPUアーキテクチャと共に動作するデータ処理論理セルフィールドフィールドにおいてもCプログラムなどを実行できること、すなわち、殊にデータ処理論理セルフィールドを用いてほぼシーケンシャルなプログラム処理であるにもかかわらずデータストリーム能力が維持されたままであり、他方ではそれと同時にCPUが過剰な疎結合でない状態で動作できることも可能であり続けることが望ましい。このことは殊に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)からも公知であるようにデータ処理論理セルフィールド配置においてデータ処理論理セルフィールド内でシーケンシャルなデータ処理を行うことも既に公知である。もっともこの場合、個々のコンフィギュレーションにおいては、例えばリソースを節約するなどのために、部分的な実行しか達成されず、この部分的な実行によっては、シーケンシャルなプロセッサのための従来の機械モデルの場合のように、プログラマが一塊の高水準言語コードを自動的に容易に問題なくデータ処理論理セルフィールドにおいて変換できることにはならない。シーケンシャルに動作する機械のためのモデルの原理にしたがい、高水準言語コードをデータ処理論理セルフィールドにおいて変換することはさらに困難である。
さらに従来技術からは、アレイ部分のそれぞれ異なる機能を実現する複数のコンフィギュレーションを同時にプロセッサフィールド(PA)において実行でき、またコンフィギュレーションの切り替えまたは幾つかのコンフィギュレーションの切り替えを他のコンフィギュレーションの妨害を受けることなく実行時間に行えることが公知である。フィールドにロードすべき部分コンフィギュレーションをデッドロック無しに行えることをどのようにして保証できるかという方法、またそれを変換するためにハードウェアでインプリメントされている手段が公知である。このことは殊に、フィルモ(FILMO)技術に関連する明細書 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)に記載されている。この技術は所定のやり方で既に並列化を実現し、またコンフィギュレーションの相応の構成および割り当てにおいて一種のマルチタスキング/マルチスレッディングも、しかも計画、すなわちスケジューリングおよび/または時間使用計画制御までも行われるように実現している。つまり従来技術からは既に、少なくとも個々のタスクにコンフィギュレーションを相応に割り当てて、および/または、コンフィギュレーションおよび/または一連のコンフィギュレーションにスレッドを相応に割り当ててマルチタスキングおよび/またはマルチスレッディングを可能にする、時間使用計画制御手段および時間使用計画制御方法自体は公知である。タスク、スレッド、マルチスレッドおよびハイパースレッドのスケジューリングを目的とした、従来技術においてコンフィギュレーションおよび/またはコンフィギュレーション管理のために使用されたそのような時間使用計画制御手段の使用はそれ自体発明性があると見なされる。
また少なくとも、有利な変形形態における部分的な見地によれば、少なくとも半導体アーキテクチャの有利な変形形態においてマルチタスキング、マルチスレッディング、ハイパースレッディングのようなデータ処理およびプログラム処理の現代の技術を支援できることが望ましい。
本発明の基本思想は、産業上の用途のための新規な方法および新規な装置を提供することである。
この課題の解決手段は独立請求項に記載されている。有利な実施形態には従属請求項に記載されている。
したがって本発明の第1の重要な見地は、データ処理論理セルフィールドによるロードコンフィギュレーションの実施に応答してデータがデータ処理論理セルフィールドに供給される、および/または、STOREコンフィギュレーションが相応に実行されることによってこのデータ処理論理セルフィールドからデータが書き出される(STORE)ことである。これらのロードコンフィギュレーションおよび/またはストアコンフィギュレーションは有利には、データ処理論理セルフィールドにおいて直接的または間接的に各メモリ位置のアドレスが生成され、そのアドレスへとロードおよび/またはストアするように直接的または間接的にアクセスされるべきように構成されている。アドレス生成によるこのコンフィギュレーションによって、1つのコンフィギュレーション内で多数のデータをデータ処理論理セルフィールドにロードすることが可能であり、そのデータ処理論理セルフィールドではそれらのデータを必要に応じて内部メモリ(iRAM)に格納することができる、および/または、そのデータ処理論理セルフィールドでそれらのデータをレジスタおよび/または同様の固有のメモリ手段を備えたEALUのような内部セルに格納することができる。したがってロードコンフィギュレーションないしストアコンフィギュレーションはブロック的に且つほぼデータストリーム的に、殊に個々のアクセスに比べてより高速なデータのロードを可能にし、またそのようなロードコンフィギュレーションを、先行してロードされたデータを処理し、実際にデータを評価および/または変更して実行する1つまたは複数のコンフィギュレーションが実施される前に実施することができる。データのロードおよび/または書き込みを典型的には、大きな論理セルフィールドにおいてこの論理セルフィールドの小さい部分領域へと行うことができ、他方では別の部分領域が別のタスクを扱っている。本発明のこの特徴及び別の特徴に関しては図1に示唆されている。データ処理フィールドの両側にメモリセルが設けられており、データが第1の処理ステップにおいて一方の側のメモリからデータ処理フィールドを介して他方の側のメモリに流れ、その他方の側においてはフィールドを最初に通過した際に得られた中間結果が第2のメモリに格納され、必要に応じてフィールドがコンフィギュレーションし直され、次いで中間結果はさらなる処理のために逆方向に流れることなどが行われている、既に公開されている本出願人による別の刊行物に記載されているピン・ポン(Ping-Pong)的なデータ処理においては、例えば一方のメモリ側にはアレイ部分におけるLOADコンフィギュレーションによって新たなデータを事前ロードすることができ、他方では、反対のメモリ側からはデータを別のアレイ部分におけるSTOREコンフィギュレーションでもって書き出すことができる。この同時的なLOAD/STORE手順は通常の場合、メモリ領域の空間的な分離を行わなくても可能である。
内部メモリを_がデータで満たされる種々の可能性が存在することを再度言及しておく。内部メモリを殊に前もって、データストリーム的なアクセスを使用する別個のロードコンフィギュレーションによって事前ロードすることができる。このことはベクトルレジスタとしての使用に相当し、その結果、内部メモリは常に少なくとも部分的に、外に向かって見えるXPPの状態の一部でなければならず、したがってコンテクスト切替の際には記憶されるか、書き直されなければならない。択一的および/または付加的に、内部メモリ(iRAM)を別個の「ロード命令」によってCPUにロードすることができる。このことはコンフィギュレーションによる低減されたロード手順につながり、またメモリ階層に対するより広範なインタフェースを生じさせることができる。ここでもまたベクトルレジスタにアクセスが行われるようにアクセスが行われる。
キャッシュコントローラの命令によるメモリからのバーストとしても事前ロードを構成することができる。さらには、所定の事前ロード命令が初期アドレスおよび初期の大きさないしステップ幅によって定義されている所定のメモリ面積を内部メモリ(IRAM)にマッピングするようにキャッシュを構成することも可能であり、またこのことは非常に性能の良いものとして多くの事例において好ましい。全ての内部RAMが対応付けられていれば、次のコンフィギュレーションを起動することができる。起動は全てのバースト的なロード手順が終了するまで待機を伴う。しかしながらこのことは、事前ロード命令が予め十分前に出力されて、キャッシュの局在化が割込またはタスク切替によって妨害されない限りはトランスパレントである。殊に、メモリからのデータのロードを回避する「プレロード・クリーン(Preload-clean)」命令を使用することができる。
キャッシュ的にIRAMに格納されている特定のメモリ領域の内容がメモリ階層に書き直せることを保証するために同期命令が必要とされ、このことは大域的に、またはアクセスされるメモリ領域の特定によって行うことができる;大域的なアクセスは「完全な書き直し(full write back)」に相当する。IRAMの事前ロードを単純化するために、このIRAMの事前ロードをベースアドレス、必要に応じて(多次元のデータフィールドへのアクセスの際には)1つまたは複数のステップ幅ならびに全体の実行の長さの簡単な指示によって特定し、これらをレジスタなどに格納して、どのようにロードされるべきかを決定するためにこのレジスタにアクセスすることが可能である。
レジスタがFIFOとして構成されている場合には殊に有利である。この場合、マルチスレッド環境における複数の仮想プロセッサに対してもそれぞれ1つのFIFOを設けることができる。さらにはキャッシュにおいては通例であるようなTAGメモリとして使用するためのメモリ位置を設けることができる。
IRAMの内容のマーキングはキャッシュの意味における「ダーティ(dirty)」として役立ち、したがってその内容が同一のIRAMにおいて再び使用されるべきではない場合には、内容を可能な限り高速に外部のメモリに書き直すことができる。したがってXPPフィールドおよびキャッシュコントローラを単一のユニットと見なすことができる。何故ならばこのユニットは種々の命令ストリームを必要としないからである。むしろキャッシュコントローラを、XPPパイプラインにおけるステップ「コンフィギュレーションフェッチ」、「オペランドフェッチ」(IRAMプレロード)および「書き直し」、すなわちCF、OFおよびWBのインプリメンテーションと見なすことができ、この際実施ステップ(ex)もトリガされる。例えばキャッシュエラーアクセスまたは異なる長さのコンフィギュレーションによる長期の潜在および事前不可視性に基づき、ステップが複数のコンフィギュレーションと広範に重畳する場合には有利であり、この際疎結合を目的としてコンフィギュレーションFIFOおよびデータ事前ロードFIFO(パイプライン)が使用される。プレロードにはそれ自体公知のFILMOを後置できることを言及しておく。また事前ロードは推測的でもよく、推測の程度はコンパイラに依存して決定ができることを言及しておく。しかしながら誤った事前ロードによる欠点は、実施されたコンフィギュレーションではなく事前ロードされただけのコンフィギュレーションを、対応付けられているデータと同様に上書きのために容易にイネーブルできる限りは発生しない。FIFOの事前ロードは数コンフィギュレーション先行させることができ、また例えばアルゴリズムの特性に依存していてもよい。このためにハードウェアを使用することが可能である。
使用されるデータをIRAMから外部メモリに書き直すということは、XPPに対応付けられている適切なキャッシュコントローラによって行えるが、この際このキャッシュコントローラは典型的にはタスクに優先順位を与え、有利には、対応付けられている実施状態に基づいて、高い優先順位を有する事前ロードオペレーションが実施される。他方では、別のブロックにおける重畳するIRAMエンティティ、または目標IRAMブロックにおける空のIRAMエンティティの不足による事前ロードも阻止することができる。後者の場合には、コンフィギュレーションおよび/または書き直しが終了するまでコンフィギュレーションを待機することができる。この場合、異なるブロックにおけるIRAMエンティティは使用状態にあるか「ダーティ」でよい。最終的に使用されるクリーンなIRAMを放棄することができる。すなわち「空」と見なすことができる。空でもなく、またクリーンでもないIRAMエンティティが存在する場合には、「ダーティ」なIRAM部分ないし空ではないIRAM部分をメモリ階層に書き直す必要がある。常にただ1つのエンティティのみが使用できる状態にあり、またキャッシュ効果を達成するIRAMブロック内には1つ以上のエンティティが存在するべきなので、空でもなく、またクリーンでもない依然として「ダーティ」なIRAMエンティティは存在するということが発生する可能性はない。
SMTプロセッサがXPPスレッドリソースと結合されているアーキテクチャの例が図4a〜cに例示的に示されている。
ここに紹介する有利な変形形態においても、必要に応じてメモリトラフィックを制限することが必要であり、このことはコンテクスト切替の間に種々のやり方で可能である。例えばコンフィギュレーションの場合のように、純粋な読み出しデータを記憶する必要はない。中断することができない(非割り込み的な)コンフィギュレーションにおいては、バスおよびPAEの局所的な状態を記憶する必要はない。
修正されたデータのみを記憶して、メモリトラフィックを低減するためにキャッシュストラテジを使用することができる。このために殊に頻繁にコンテクストが切り替えられる場合にはLRUストラテジ(LRU=最も古く使用された、least recently used)を殊に事前ロードメカニズムに付加的にインプリメントすることができる。
IRAMがメインメモリの局所的なキャッシュコピーとして定義され、各IRAMには初期アドレスおよび修正状態情報が対応付けられている場合に、IRAMセルがSMT支援のためのようにも応答しており、その結果IRAMの初期アドレスのみを記憶して、コンテクストとして再びロードするだけでよいことは有利である。この場合目下のコンフィギュレーションのIRAMに関する初期アドレスは、同一のアドレスを有するIRAMエンティティを使用のために選択する。IRAMエンティティのアドレスTAGが新たにロードされたコンテクストないし新たにロードすべきコンテクストのアドレスに対応しない場合には、相応のメモリ領域を空のIRAMエンティティにロードすることができ、この際このメモリ領域を自由なIRAM領域と解することができる。そのような領域を使用できない場合には、前述の方法を使用することができる。
その他の点では、書き直しよって惹起される遅延を、目下アクティブでないIRAMエンティティを不必要な記憶周期の間に書き直すことを試みる殊に別個の状態マシン(キャッシュコントローラ)の使用により回避できることを言及しておく。
上記の記載から明らかであるように、有利にはキャッシュを明示的なキャッシュと解することができ、通常の場合のようにプログラマおよび/またはコンパイラにはトランスパレントなキャッシュとしては解されないことを言及しておく。ここで相応の制御を行うために、例えばコンパイラによって次の命令を出力することができる:各コンフィギュレーションによって使用されるIRAM事前ロード命令に先行するコンフィギュレーション事前ロード命令。この種のコンフィギュレーション事前ロード命令は可能な限り早期にスケジューラによって設けられることが望ましい。さらには、つまり択一的および/または付加的に、同様に早期にスケジューラによって設けられることが望ましいIRAM事前ロード命令を設けることができ、またコンフィギュレーションのためにIRAM事前ロード命令に続くコンフィギュレーション実施命令を設けることができ、このコンフィギュレーション実施命令を殊に見積もられた潜在時間(遅延時間)だけ事前ロード命令に対して遅延させることができる。
キャッシュの書き直しを強制する命令に続いて、コンフィギュレーション待機命令を実施することもでき、この際両方の命令はコンパイラから出力され、しかも殊に、ロード/ストアユニットのような別の機能ユニットの命令が、潜在的に「ダーティ」であるかIRAMにおいて使用状態にあるメモリ領域にアクセスできる場合に出力される。したがって、データハザードを回避しつつ命令ストリームおよびキャッシュ内容の同期を必ず行うことができる。相応の処理によってこの種の同期命令は必ずしも頻繁に行われるものではない。
データのロードおよび/またはデータの格納は必ずしも完全な論理セルフィールドベースの手順によって行う必要がないことを言及しておく。むしろ、例えば別個および/または専用の1つまたは複数のDMAユニット、すなわち殊にDMAコントローラを設けることも可能であり、これらのユニットは例えば必要であればさらに、殊にCTおよび/または論理セルフィールドからの初期アドレス、ステップ幅、ブロックの大きさ、目標アドレスなどに関する設定によってコンフィギュレーションないし機能準備および/または調整される。
殊にキャッシュからのロード、またキャッシュへのロードを行うこともできる。このことは以下の利点を有する。すなわち、キャッシュメモリ手段における読み出しまたは書き込み的なやり方でのアクセスが典型的には非常に高速に、且つせいぜい僅かな潜在時間でもって行われ、また典型的にはCPUユニットが典型的に別個のLOAD/STOREユニットを介してこのキャッシュに接続されているために、データ処理論理セルフィールド内に別個の回路装置を設ける必要なく、キャッシュコントローラを介する比較的大きなメモリバンクとの外部通信が処理され、その結果データへのアクセス、およびCPUコアとデータ処理論理セルフィールドとの間でのデータの交換をブロック的に高速に、且つデータの各伝送に対して別個の命令を例えばCPUのオプコードフェッチャから取り出して処理する必要なく行うことができる。
このキャッシュ結合は、レジスタがLOAD/STOREユニットを介してのみキャッシュと通信する場合には、これらのレジスタを介するALUとのデータ処理論理セルフィールドの結合よりも実質的に好適であることを言及しておく。このこと自体はPACT自身によるものではない刊行物から公知である。
複数のデータ処理論理セルフィールまたはこれらのデータ処理論理セルフィールドの内の1つに対応付けられているシーケンシャルなCPUユニットのロード/メモリユニットとの別のコネクションおよび/またはそのユニットのレジスタとの別のデータコネクションを設けることができる。
この種のユニットの応答を殊にVPUないしXPPとして構成されているデータ処理論理セル配置の別個の入出力端子(IOポート)を介して行うことができる、および/または、単一ポートの後段に接続されている1つまたは複数のマルチプレクサによって行うことができる。
殊にブロック的におよび/またはストリーム的におよび/またはランダムアクセス殊にRMWモード(Read-Modify-Write-Modus)で、書き込みおよび/または読み出し的なやり方で行われるキャッシュ領域、および/または、LOAD/STOREユニットおよび/または(それ自体従来技術においては公知である)シーケンシャルなCPUのレジスタとのコネクションへのアクセスの他に、RAMのような外部の大容量メモリ、ハードディスクおよび/またはアンテナなどのような他のデータ交換ポートとのコネクションも行えることを言及しておく。キャッシュ手段および/またはLOAD/STOREユニット手段および/またはレジスタユニットの異なるメモリ手段へのこのアクセスのために別個のポートを設けることができる。ここで適切なドライバ、バッファ、レベル整合のためのシグナルプロセッサなど、例えばLS74244、LS74245を設けることができることを言及しておく。その他の点では、殊に、しかしながらデータ処理論理セルフィールドに流れ込む、またはこのデータ処理論理セルフィールドへと流れたデータストリームを専ら処理するためではなく、フィールドの論理セルはALUないしEALUを包含することができ、また典型的には包含するようになり、その論理セルフィールドの入力側および/または出力側には、殊に入力側にも出力側にも例えばMPEG−4デコーディングには必要であるように継続的なデータストリームからビットブロックを切り取るために、細粒度でコンフィギュアラブルなFPGA的な短い回路を前段に置くことができることを言及しておく。このことは一方では、データストリームがセルに到達すべき場合、且つそのセルにおいて比較的大きなPAEユニットによる阻止が行われることなく一種の事前処理を行うことができる場合には有利である。このことはまた、ALUがSIMD算術論理演算装置として構成される場合には非常に有利であり、この場合、例えば32ビットのデータ幅の非常に長いデータ入力語が前段に接続されているFPGA的な帯を介して、SIMD算術論理演算装置において並列に実行することができる、例えば4ビットの幅の並列な複数のデータ語に分割され、このことは相応の用途が必要とされる限り、システムの全体性能を著しく高めることができる。前記においては、前段ないし後段に接続されているFPGA的な構造が問題であったことを言及しておく。しかしながら明示的に言及しておくが、FPGA的ということでもって必ずしも1ビット粒度の装置に関連している必要はない。この超細粒度の構造の代わりに単に、例えば4ビット幅の細粒度の構造を設けることが可能である。すなわち、殊にSIMD算術論理演算装置として構成されているALUユニットの前段および/または後段におけるFPGA的な入力構造および/または出力構造を例えば、常に4ビット幅のデータ語が供給および/または処理されるようにコンフィギュレーションすることができる。ここでカスケードを設けることが可能であり、その結果例えば到来する32ビット幅のデータ語が、4つに分割されるないし分割されている相並んで配置されている8ビットのFPGA的な構造に流れ、これらの4つの8ビット幅のFPGA的な構造の後段には8つの4ビット幅のFPGA的な構造を有する2つの帯が配置されており、また場合によっては、それぞれの目的のために必要と見なされるのであれば、この種のさらなる帯の他に例えば、並列に配置されている16個の2ビット幅のFPGA的な構造が設けられる。そのような場合には、純粋な超細粒度のFPGA的な構造に比べてコンフィギュレーションの煩雑さを相当に低減することができる。さらにはこれによって、FPGA的な構造のコンフィギュレーションメモリなどをより小さくすることができ、したがってチップ面積を節約できることを言及しておく。FPGA的な帯構造は図3にも関連させて開示されているように、殊にPAEにおける配置に関して、非常に容易に擬似ランダムノイズ発生器のインプリメンテーションを可能にすることも言及しておく。この際にステップ毎に、ただ1つのFPGAセルから得られる個々の出力ビットがFPGAセルに繰り返し記憶し直される場合には、ただ1つのセルを用いてもシーケンシャルに擬似ランダムノイズを創造的に生成することができ、このことはそれ自体で発明性があると見なされる。これについては図5を参照されたい。
原理的に、データブロックストリームにおける前述の結合の利点はキャッシュを介して達成することができる。しかしながら、キャッシュが帯のように(スライス的に)構成されている場合、またスライスの内の複数、殊に全てのスライスに同時にアクセスできる場合には殊に有利である。このことは、データ処理論理セルフィールド(XPP)および/または1つのシーケンシャルなCPUおよび/または複数のシーケンシャルなCPUが、ハイパースレッディング、マルチタスキングおよび/またはマルチスレッディングであれ、複数のスレッドを実行できる場合(これはさらに詳細に論ずることになる)には有利である。すなわち有利にはキャッシュメモリ手段にはスライスアクセスないしスライスアクセス実現制御手段が設けられている。例えば各スレッドには固有のスライスを対応付けることができる。このことは後に、スレッドを用いて実行すべき命令群の再記録時にその都度相応のキャッシュ領域にアクセスされることをスレッドの実行時に保証することを可能にする。
キャッシュを必ずしもスライスに分割する必要はなく、分割される場合であっても各スライスに必ずしも固有のスレッドを割り当てる必要はないことをここで再度言及しておく。もっともこのことは遙かに有利な方式であることを示唆しておく。全てのキャッシュ領域が同時にまたは所定の時間に一時的に使用される場合が存在する可能性があることをさらに示唆しておく。むしろ、例えば手に収まる移動電話(携帯電話)、ラップトップ、カメラなどにおいて生じる典型的なデータ処理用途では、全てのキャッシュは必要とされない時間が頻繁に存在することが見込まれる。したがって、個々のキャッシュ領域を、そのエネルギ消費が著しく降下するように、殊に0またはほぼ0に降下するように電力供給から分離できる場合には殊に有利である。このことはキャッシュがスライス的に構成されている場合、適切な電力分離手段を介したこのキャッシュのスライス的な遮断によって行うことができる。これについては例えば図2を参照されたい。分離はクロックを低下させるか、クロックを分離するか、電力を分離することによって行うことができる。殊に、個々のキャッシュスライスなどにはアクセス識別手段を対応付けることができ、このアクセス識別手段はそれぞれのキャッシュ領域ないしそれぞれのキャッシュスライスが目下の所、これらに対応付けられており、またこれらを使用するスレッド、ハイパースレッドまたはタスクを有するか否かを識別するために構成されている。アクセス識別手段によってそのような場合でないことが識別される限り、典型的にはタスクおよび/またはそれどころか電力の分離が実現される。分離後に電力を再び供給する際にキャッシュ領域の即座の再要求が可能である、すなわち現行の適切な半導体技術を用いてハードウェアでインプリメントされる限り、電力供給のオン・オフによる著しい遅延が見込まれてはならないことを言及しておく。このことは論理セルフィールドの使用に関係なく多数の用途において重要である。
本発明においてもたらされるさらなる特別な利点は、ブロック的な形態でのデータないしオペランドの伝送に関する殊に効率的な結合が確かにもたされているが、それにもかかわらず、シーケンシャルなCPUおよびXPPないしデータ処理論理セルフィールドにおける正確に等しい処理時間が必要とされるようなやり方での平衡化は必要とされないことである。むしろ処理は、実際上は頻繁に依存しないやり方で、殊にシーケンシャルなCPUおよびデータ処理論理セルフィールド配置をスケジューラなどに対して別個のリソースと見なすことができるようなやり方で行われる。このことは、マルチタスキング、マルチスレッディングおよびハイパースレッディングのような公知のデータ処理プログラム分割技術の即座の変換を可能にする。これによって生じる利点とは経路平衡化は必要ないこと、すなわち(例えばRISCユニットにおける)シーケンシャルな部分と(例えばXPPにおける)データフローの部分との間の非平衡化によって、例えばシーケンシャルなCPU(すなわち例えばRISC機能ユニット)内で任意の数のパイプライン段を通過することができること、種々のやり方でのクロッキングが可能であることなどである。本発明のさらなる利点は、ロードコンフィギュレーションないしストアコンフィギュレーションのXPPまたは他のデータ処理論理セルフィールドへのコンフィギュレーションによって、CPUのクロック速度やオプコードフェッチャが動作する速度などによってはもはや決定されていない速度でもってデータをフィールドにロードすることができる、もしくはこのフィールドから書き出すことができる点にある。換言すれば、シーケンシャルなCPUの経過制御は、依然として疎結合が存在することなく、データ論理セルフィールドのデータ通過量に対してもはや隘路的に制限されていない。
本発明の殊に有利な変形形態においては、XPPユニットにとっては既知であるCT(ないしCM;コンフィギュレーションマネージャないしコンフィギュレーションテーブル)を使用して、複数のCTを用いて階層的に配置されている1つまたは複数のXPPフィールドのコンフィギュレーションも、また同時に1つまたは複数のシーケンシャルなCPUのコンフィギュレーションもそこではほぼマルチスレッディングスケジューラ管理およびマルチスレッディングハードウェア管理として使用することが可能であり、このことはFILMOなどのような公知の技術をマルチスレッディングの際のハードウェア支援による管理に使用できるといる内在的な利点を有しているが、択一的に、および/または、殊に階層的な配置においては付加的に、例えばデータ処理論理セルフィールドが例えばXPPコンフィギュレーションをシーケンシャルなCPUのオプコードフェッチャからコプロセッサインタフェースを介して得ることが可能である。これによってシーケンシャルなCPUおよび/または他のXPPから、XPPにおいてデータを実行する呼び出しを具体化させることができる。XPPは例えば前述のキャッシュ結合を介して、および/または、XPPないしデータ処理論理セルフィールドにおいてデータのロードおよび/または書き出しのためにアドレスを生成する、LOADコンフィギュレーションおよび/またはSTOREコンフィギュレーションを用いて、データ交換において保持される。換言すれば、コプロセッサ的および/またはスレッドリソース的なデータ処理論理セルフィールドの結合が可能であり、他方ではこれと同時にデータストリーム的なデータロードがキャッシュ結合および/またはI/Oポート結合によって行われる。
コプロセッサの結合、すなわちデータ処理論理セルフィールドの結合によって典型的には、スケジューリングがこの論理セルフィールドに対しても、シーケンシャルなCPUにおいてまたはこのシーケンシャルなCPUの上位のスケジューラユニットないし相応のスケジューラ手段において行われることを言及しておく。そのような場合実際には、スレッディング制御およびスレッディング管理がスケジューラないしシーケンシャルなCPUにおいて行われる。このことはそれ自体可能であるにもかかわらず、少なくとも本発明の最も簡単な実施形態においては強制的なものではない。むしろ、標準的なコプロセッサ、例えば8086/8087の組み合わせの場合のような従来のやり方でデータ処理論理セルフィールドを使用することができる。
殊に有利な変形形態においては、コンフィギュレーションの種類に依存せずに、コプロセッサを介してであれ、スケジューラとして一緒に使用されるXPPないしデータ処理論理セルフィールドなどのコンフィギュレーションマネージャ(CT)を介してであれ、または別のやり方であれ、データ処理論理セルフィールド内で、またはデータ処理論理セルフィールドの直ぐ近くで、もしくはデータ処理論理セルフィールドの管理のもとで、殊に本出願人による先行の種々の明細書および刊行物から公知であるXPPアーキテクチャにおけるメモリ、殊に内部メモリを殊に、RAM−PAE、または他の相応の管理されたメモリまたは内部メモリはベクトルレジスタのように応答し、すなわちLOADコンフィギュレーションを介してロードされる大量のデータをベクトルレジスタにおけるようにベクトル的に内部メモリに格納し、次いで、XPPないしデータ処理論理セルフィールドをコンフィギュレーションし直した後、すなわちデータの本来の処理を実施する新たなコンフィギュレーションの上書きないし追加ロードおよび/または起動が行われた後に(この関連において、そのような処理コンフィギュレーションのために、例えばウェーブモードでおよび/またはシーケンシャルに連続して実行できる複数のコンフィギュレーションも参照できることを示唆しておく)ベクトルレジスタの場合のようにアクセスし、この際に得られた結果および/または中間結果を再び内部メモリ、またはXPPを介して内部メモリのように管理される外部メモリに供給し、そのメモリにこれらの結果を格納することができる。そのようなXPPアクセスのもとでベクトルレジスタ的に処理結果が書き込まれる記憶手段は、処理コンフィギュレーションのリコンフィギュレーション後にSTOREコンフィギュレーションのロードによって適切なやり方で書き出される。このことはやはり、I/Oポートを介してであれ、事前にデータを形成したXPPまたは他の相応のデータ処理ユニットにおいてシーケンシャルなCPUおよび/または他のコンフィギュレーションが後の時点においてアクセスすることができる外部のメモリ領域および/または、殊に有利には、キャッシュメモリ領域へと直接的にデータストリーム的に行われる。
殊に有利な変形形態においては、少なくとも所定のデータ処理結果および/または中間結果のために、得られたデータを格納することができるメモリ手段ないしベクトルレジスタ手段として、シーケンシャルなCPUまたは他のデータ処理ユニットがアクセスできるキャッシュ領域または他の領域へのSTOREコンフィギュレーションを介してデータが書き出されている内部メモリを使用するのではなく、そのような内部メモリの代わりに、殊にスライス的に編成することができる、殊にアクセス予約された相応のキャッシュ領域に直接的に結果を書き出すことができる。このことは場合によっては、殊にXPPユニットまたはデータ処理論理セルフィールドユニットとキャッシュとの間の経路は信号伝播時間が重要であるような長さであるときに、比較的長い潜在時間の欠点を有するが、場合によっては別のSTOREコンフィギュレーションは必要とされないことにもなる。その他の点では、データのキャッシュ領域へのこの種の記憶は、前述したように、書き込みの行われるメモリが物理的にキャッシュコントローラの近くに位置し、且つキャッシュとして構成されていることによって可能であるが、択一的および/または付加的に、殊にRAMにおけるXPPメモリ領域の一部、XPP内部のメモリなどをPAEを介して(これについてはPACT31 (DE 102 12 621.6, WO 03/036507)を参照されたい)提供する可能性も存在することを言及しておく。データ処理論理セルフィールドにおいて検出される処理結果を記憶する際に潜在時間は短く保持されるべき場合には有利であり、これに対し依然として「準キャッシュ」として使用されるメモリ領域への他のユニットによるアクセスの際の潜在時間は重要にならない、もしくは殆ど重要にならない。
その他の点では、従来のシーケンシャルなCPUのキャッシュコントローラが、データ処理論理セルフィールドとのデータ交換に使用されることなく、このデータ処理論理セルフィールド上および/またはこのデータ処理論理セルフィールドにおいて物理的に存在するキャッシュとしてのメモリ領域に応答することを言及しておく。せいぜい局所的な僅かな所要面積しか有さないデータ処理論理セルフィールドにおいてアプリケーションが実行される場合、および/または、使用されるメモリ量に関して僅かなコンフィギュレーションしかさらに必要とされない場合には、この1つまたは複数のシーケンシャルなCPUをキャッシュとして使用できることは有利である。動的な環境を有する、すなわち大きさが変化するキャッシュ領域の管理のためにキャッシュコントローラを構成することができ、また構成されることを言及しておく。動的なキャッシュ管理のための動的なキャッシュ環境管理ないしキャッシュ環境管理手段は典型的には、シーケンシャルなCPUおよび/またはデータ処理論理セルフィールドにおける動作負荷および/または入出力負荷を考慮する。換言すれば、ウェーブリコンフィギュレーションであれ、または他のやり方であれ高速にコンフィギュレーションし直すことができるようにするために、どれほど多くのNOPのデータアクセスが所定の時間内でシーケンシャルなCPUにおいて存在するか、および/または、どれほど多くのコンフィギュレーションをXPPフィールドにおいてこのために設けられているメモリ領域に事前に格納されるべきであるかを分析することができる。これによって明白な動的なキャッシュの大きさは殊に有利には実行時間について動的である。すなわちキャッシュコントローラはその都度、クロック毎またはクロック群ごとに変化する可能性がある目下のキャッシュの大きさを管理する。その他の点では、ベクトルレジスタの場合のような内部メモリとして、また外部アクセスのためのキャッシュ的なメモリとしてのアクセス(これはメモリアクセスに関係する)を伴うXPPフィールドないしデータ処理論理セルフィールドのアクセス管理は既にDE 196 54 595およびPCT/DE 97/03013 (PACT03)に記載されていることを言及しておく。前述の刊行物は開示を目的とする参照により完全な範囲で本発明に取り入れられる。
前記においては、殊に実行時間においてリコンフィギュアラブルであるデータ処理論理セルフィールドを参照した。このデータ処理論理セルフィールドにはコンフィギュレーション管理ユニット(CTないしCM)を設けることができることを論じた。開示を目的として参照した本出願人の種々の保護権ならびに本出願人による別の先行の刊行物からは、コンフィギュレーション自体の管理が公知である。この種のユニット、また殊にシーケンシャルなCPUなどとの結合に依存せずに目下の所まだ必要でないコンフィギュレーションを事前ロードできる作用を、マルチタスキング動作においておよび/またはハイパースレッディングおよび/またはマルチスレッディングの際に、タスク切替ないしスレッド切替および/またはハイパースレッド切替を行うために非常に良好に使用できることも明示的に言及しておく。これについては例えば図6a〜6cを参照されたい。このために、スレッドまたはタスクの実行中に、データ処理論理セルフィールドの個々のセルまたはセル群、すなわち例えばPAEフィールドのPAEに(PA)おけるコンフィギュレーションメモリに、種々の課題、すなわちタスクまたはスレッドないしハイパースレッドのためのコンフィギュレーションもロードすることができる。タスクまたはスレッドが遮断される場合、例えば、リソースが現在の所他のアクセスによって依然として阻止されている場合であれ、例えば潜在に起因してデータが他のユニットによって依然として形成されていない、またはデータを他のユニットから受信していない場合であれ、そのようなデータをまだ使用できないためにデータを待機しなければならない場合には、他のタスクまたはスレッドのためのコンフィギュレーションは事前ロード可能である、および/または、事前ロードされており、殊にコンフィギュレーション切替のための時間オーバヘッドを殊にブラインド的にロードされたコンフィギュレーションの際に待機する必要なく、これらのコンフィギュレーションに切り替えることができる。タスク内で続きがありそうであると予測され、予測が外れる場合(予測ミス)にもこの技術が使用されるが、この種の動作は予測のない動作において有利となる。したがって、純粋にシーケンシャルな1つのCPUおよび/または純粋にシーケンシャルな複数のCPUを使用する場合、殊に専らそのようなCPUを使用する場合、コンフィギュレーションマネージャの接続によってマルチスレッド管理シェアウェアが実現される。これに関しては殊にPACT10 (DE 198 07 872.2, WO 99/44147, WO 99/44120)およびPACT17 (DE 100 28 397.7, WO 02/13000)に記載されている。殊にCPUおよび/または若干のシーケンシャルなCPUのためにのみハイパースレッド管理が所望される場合に、特に保護権を参照して記述されているFILMOのような所定の部分回路を省略することは十分であると見なすことができる。したがって殊に、XPPまたは他のデータ処理論理セルフィールドと結合されているまたは結合されていない、純粋にシーケンシャルに動作する1つおよび/または複数のCPUにとってのハイパースレッド管理のためのFILMOを備えているおよび/または備えていない前記刊行物に記載されているコンフィギュレーションマネージャの使用が開示され、したがってそれ自体で権利が主張される。これに関してはそれ自体発明性のある特徴と見なされる。その他の点では、殊に命令レジスタおよび/またはデータレジスタとしてシーケンシャルなCPUを構成するために殊にデータ処理論理セルフィールドにおける1つまたは複数のメモリ領域を使用して、1つのアレイ内に1つまたは複数のシーケンシャルなCPUが構成される、殊にPACT31 (DE 102 12 621.6-53, PCT/EP 02/10572)およびPACT34 (DE 102 41 812.8, PCT/EP 03/09957) から公知であるような従来技術を用いて複数のCPUを実現できることを言及しておく。リングメモリおよび/または選択自由アクセスメモリを備えたシーケンサをどのように構成できるかは既に、先行の明細書、例えば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)を参照する_公知のCT技術を使用する、タスク切替ないしスレッド切替および/またはハイパースレッド切替を、それ自体公知のソフトウェアによってインプリメントされるオペレーティングシステムスケジューラなどにはCTによって性能スライスおよび/または時間スライスが割り当てられ、その間に、リソースが自由であることを前提として、どのタスクまたはスレッドによって続けてどの部分自体を実行できるかが決定されるように行うことができ、有利には行われる。これに関する例として以下のものが挙げられる:先ず第1のタスクに関してはアドレス列が生成されるべきであり、このアドレス列にしたがいLOADコンフィギュレーションの実施中に、前述のようにしてデータ処理論理セルフィールドが結合されているメモリおよび/またはキャッシュメモリからデータがロードされるべきである。これらのデータが存在すると即座に、本来のデータ処理コンフィギュレーションの内の第2のデータ処理コンフィギュレーションを開始することができる。割込などが完全なタスク切替を強制しない限りはこのコンフィギュレーションを実施できることが保証されるので、このデータ処理コンフィギュレーションも事前ロードすることができる。従来のプロセッサにおいては、データが確かに要求されるが、ロードアクセスのためにキャッシュ内にはデータは存在しない、いわゆるキャッシュミスの問題が公知である。そのようなケースが本発明による結合において生じる場合には、殊にソフトウェアによってインプリメントされるオペレーティングシステムスケジューラ、および/または、別のハードウェアおよび/またはソフトウェアによってインプリメントされる相応に作用するユニットが殊に次に起こりうる実施のために決定しており、したがって有利には事前にデータ処理論理セルフィールドの使用可能なコンフィギュレーションメモリのうちの1つに、殊に他のコンフィギュレーションの内の1つ、例えば待機される各データのロードを行ったLOADコンフィギュレーションの実施中にバックグラウンドでロードされた他のスレッド、ハイパースレッドおよび/またはタスクに有利には切り替えることができる。事前コンフィギュレーションに対して、殊に粗粒度に構成されているデータ処理論理セルフィールドのデータ処理論理セルの実際の相互接続によって妨害されることなく、別個のコンフィギュレーション配線をコンフィギュレーションされたユニットからそれぞれのセルへと直接的におよび/または適切なバスシステムを介して案内できることはそれ自体従来技術において公知であるが、ここで再度明示的に言及しておく。何故ならば、直線的に延びる別のコンフィギュレーションを妨害することなく、妨害のない事前コンフィギュレーションを実現するためにこの構成は殊に有利だからである。このことは殊に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)を参照して、タスク・スレッド切替および/またはハイパースレッド切替の間に、ないしタスク・スレッド切替および/またはハイパースレッド切替に基づいて切り替えられたコンフィギュレーションが実行された場合、しかも、有利には分割不可能で、中断不可能であり、したがって準原始的なコンフィギュレーションにおいて最後まで実行された場合には、部分的に他の別のコンフィギュレーションが前述のように相応のスケジューラ、殊にオペレーティングシステムに近いスケジューラによって設定、実行される、および/または、事前に所属のLOADコンフィギュレーションが実施された各コンフィギュレーションが設定、実行される。殊に事前にLOADコンフィギュレーションが実施された処理コンフィギュレーションを実施する前に、例えばLOADコンフィギュレーションまたはデータロード式のDMAコントローラの状態を問い合わせることによって、そうこうしている内に相応のデータがアレイに流れているか否か、すなわち典型的に生じるような潜在時間が経過しているか、および/または、データが実際に存在しているか否かを検査することができる。
換言すれば、例えばコンフィギュレーションが依然として行われていないため、データが依然としてロードされていなかったため、および/または、データが依然として書き出されていなかったために潜在時間が生じている場合に、この潜在時間は、既に事前にコンフィギュレーションされており、且つ書き出しのために既に使用可能であるリソースに書き出すことができる、ないし既に使用可能であるデータを用いて動作するスレッド、ハイパースレッドおよび/またはタスクが実施されることによって調整および/または隠蔽される。このようにして潜在時間は十分に隠され、またそれ自体実施すべき多数のスレッド、ハイパースレッドおよび/またはタスクを前提として、データ処理論理セルフィールドの実質的に100%の利用が達成される。
例えばスケジューラまたはCTによってスレッドが自由に対応付けられる、_XPP内部のメモリリソースを十分多く設けることによって、同時におよび/または重畳的に、複数のスレッドのキャッシュ動作および/または書き込み動作を実行することができ、このことは場合によっては生じる潜在の調整にとって殊にプラスに作用する。
シーケンシャルなCPUとの同時的な結合の際のデータストリーム能力に関して、および/または、XPPアレイないしデータ処理論理セルフィールドの結合、また同時にコンフィギュレーションマネージャなどのような適切なスケジューラユニットとの結合に関して前述のシステムを用いることにより、殊に容易にリアルタイム能力のあるシステムを実現することができる。リアルタイム能力については、到来するデータ、ないし殊にデータの到来をシグナリングする割込に対して、いかなる場合も越えてはならない最大時間内に反応できることが保証されなければならない。このことを例えば、割込に基づくタスク切替によって、および/または、例えば割込に優先順位が与えられている場合には、所定の割込を目下無視できることを確認することによって行うことができ、この場合にもこのことは所定の時間内で確認されるべきである。この種のリアルタイム能力のあるシステムでのタスク切替は典型的には3つの様式で行うことができる。すなわち、タスクが所定の時間実行されている場合(タイマ原理)、他のアクセスによるリソースの阻止によってであれ、殊に書き込み的および/または読み出し的なやり方でのリソースへのアクセスの際における潜在に起因する場合であれリソースが使用できない場合、すなわちデータアクセスによる潜在状態の場合、および/または、割込が発生する場合である。
その他の点では、殊に、割込処理のためにイネーブルすべきないし切り替えられるべきリソースにおける、実行時間が制限されたコンフィギュレーションもウォッチドッグないし追従カウンタを新たにトリガできることを言及しておく。
そうでない場合には、PACT 29 (DE 102 12 622.4, WO 03/081454)の参照によっても、実行時間を延長するために追従カウンタないしウォッチドッグを新たにトリガすることをタスクスイッチによって阻止できることが明示的に記載されているが、本願発明によれば、割込が同様に、すなわちタスクスイッチに応じて、追従カウンタないしウォッチドッグおよび新たなトリガを阻止するように作用を及ぼすことができ、すなわちそのような場合においては、コンフィギュレーションが新たなトリガ自体によってその最大限に可能な実行時間を延長することを阻止できることが明示的に開示される。
本発明を用いて、データ処理論理セルフィールドのリアルタイム能力を、3つの可能な変形のうちの1つまたは複数がインプリメントされることによって達成することができる。
第1の変形では、スケジューラないしCTによって応答可能なリソース内で例えば割込を実行するための切替が行われる。このことは、割込または他の要求への応答時間がこの時間中にコンフィギュレーションを中断なしでさらに実行できるほど長い限りは危機的ではなく、殊に、目下実行されているコンフィギュレーションを処理している間に、割込の実行のために切り替えられるべき各リソースに割込を実行するためのコンフィギュレーションを事前ロードすることができる。割込を実行する事前ロードすべきコンフィギュレーションの選択は例えばCTによって実施されるべきである。割込を実行するためにイネーブルされる、ないし切り替えられるリソースにおけるコンフィギュレーションの実行時間を制限することも可能である。これに関してはPACT29/PCT(PCT/DEO3/000942)に示唆されている。
より高速に割込に反応しなければならないシステムにおいては、個々のリソース、すなわち例えば別個のXPPユニットおよび/またはXPPフィールドの部分をその種の実行のために予約することは有利となる。高速に実行すべき割込が生じた場合には、殊にクリティカルな割込のために既に予め事前ロードされたコンフィギュレーションを実行することができるか、割込を処理するコンフィギュレーションの予約されたリソースへのロードが即座に開始される。相応の割込のためにその都度必要とされるコンフィギュレーションの選択は相応のトリガ、ウェーブ実行などによって可能である。
その他の点では、記述の方法を用いることにより、LOAD/STOREコンフィギュレーションの使用を介してコードリエントラントが達成されることによって、割込への即時的な反応を得ることは容易に可能であることを言及しておく。データを処理するコンフィギュレーションが終了する度に、または所定の時間、例えばコンフィギュレーションが5回または10回行われる毎にSTOREコンフィギュレーションが実施され、次いで事前に書き込まれた各メモリ領域へのアクセスによりLOADコンフィギュレーションが実施される。STOREコンフィギュレーションによって使用されるメモリ領域が、タスクにおける経過によって別のコンフィギュレーションが関連する全ての情報(状態、データ)を書き出すまで使用されていないままであることが保証される場合には、再ロードの際、すなわち前もって開始されているが最後までは実行されていないコンフィギュレーションまたはコンフィギュレーションチェーンへの再供給の際に再び同一の条件が得られることが保証される。まだ古くなっていないSTOREメモリ領域を同時に保護するLOAD/STOREコンフィギュレーションのそのような中間回路を、付加的なプログラマの手間を要することなく、例えばコンパイラによって非常に簡単に生成することができる。そこではリソース予約が必要に応じて有利となる。リソース予約の際および/または他の場合において、所定のコンフィギュレーションの事前ロードによって、高い優先順位が与えられている割込の少なくとも十分な数の割込に対して反応できることを、ここで再度言及しておく。
割込への反応の殊に有利な別の変形形態では、応答可能なリソースの内の少なくとも1つがシーケンシャルなCPUである場合に、このシーケンシャルなCPUにおいて、やはりデータ処理論理セルフィールドに対するコードが禁止されている割り込みルーチンが実行される。換言すれば、時間が重要な割込ルーチンは、XPPデータ処理ステップが呼び出されることなく、専らシーケンシャルなCPUにおいて実行される。このことは、データ処理論理セルフィールドにおける処理手順が中断されないことを保証し、このデータ処理論理セルフィールドにおけるさらなる実行をタスク切替の後に行うことができる。したがって本来の割込ルーチンはXPPコードを有していないにもかかわらず、割込に基づいて、もはやリアルタイムには関連しない後の時点において、割込および/またはリアルタイム要求によって検出された状態および/またはデータに対してデータ処理論理セルフィールドを使用して反応できるようになる。
本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 本発明による実施形態の概略図。 キャッシュのスライス的な遮断を表す概略図。 FPGA的な帯構造の概略図。 FPGA的な帯構造の概略図。 FPGA的な帯構造の概略図。 FPGA的な帯構造の概略図。 SMTプロセッサがXPPスレッドリソースと結合されているアーキテクチャの概略図。 SMTプロセッサがXPPスレッドリソースと結合されているアーキテクチャの概略図。 SMTプロセッサがXPPスレッドリソースと結合されているアーキテクチャの概略図。 FPGAセルの構造の概略図。 タスク切替を表す概略図。 タスク切替を表す概略図。 タスク切替を表す概略図。

Claims (2)

  1. データ処理論理セルフィールドおよび少なくとも1つのシーケンシャルなCPUを有するデータ処理装置において、
    キャッシュメモリに案内される配線によって例えばブロック的な形態でデータを交換するために、前記シーケンシャルなCPUおよび前記データ処理論理セルフィールドが結合されることを特徴とする、データ処理装置。
  2. 実行時間が制限されているコンフィギュレーションを用いるリコンフィギュアラブルなユニットの動作方法であって、前記コンフィギュレーションは該コンフィギュレーションの最大許容実行時間を、例えば同調カウンタのトリガによって延長可能である、リコンフィギュアラブルなユニットの動作方法において、
    前記コンフィギュレーションによるコンフィギュレーションの実行時間の延長を割込に応答して阻止することを特徴とする、リコンフィギュアラブルなユニットの動作方法。
JP2006505004A 2003-04-04 2004-04-05 データ処理方法およびデータ処理装置 Pending JP2006524850A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10315295 2003-04-04
DE10321834 2003-05-15
PCT/EP2004/003603 WO2004088502A2 (de) 2003-04-04 2004-04-05 Verfahren und vorrichtung für die datenverarbeitung

Publications (1)

Publication Number Publication Date
JP2006524850A true JP2006524850A (ja) 2006-11-02

Family

ID=33132675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505004A Pending JP2006524850A (ja) 2003-04-04 2004-04-05 データ処理方法およびデータ処理装置

Country Status (5)

Country Link
US (2) US20070011433A1 (ja)
EP (1) EP1611528A2 (ja)
JP (1) JP2006524850A (ja)
DE (1) DE112004000026D2 (ja)
WO (1) WO2004088502A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243086A (ja) * 2011-05-19 2012-12-10 Renesas Electronics Corp 半導体集積回路装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2441005A2 (en) 2009-06-09 2012-04-18 Martin Vorbach System and method for a cache in a multi-core processor
CN102737007B (zh) 2011-04-07 2015-01-28 中兴通讯股份有限公司 一种支持多个数据单元任意置换的方法和装置
WO2013147885A1 (en) 2012-03-30 2013-10-03 Intel Corporation Apparatus and method for accelerating operations in a processor which uses shared virtual memory
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
EP2840503A1 (de) * 2013-08-22 2015-02-25 Continental Automotive GmbH Verfahren zum Betreiben eines Pufferspeichers einer Datenverarbeitungsanlage und Datenverarbeitungsanlage
JP2016178229A (ja) 2015-03-20 2016-10-06 株式会社東芝 再構成可能な回路
CN108108191A (zh) * 2018-01-09 2018-06-01 湖南国科微电子股份有限公司 一种soc芯片及soc芯片cpu指令集的配置方法
DE102018215139A1 (de) * 2018-09-06 2020-03-12 Robert Bosch Gmbh Betriebsverfahren und Steuereinheit für ein Daten-/Signalauswertesystem, Daten-/Signalauswertesystem, Ultraschallbetriebsassistenzsystem und Arbeitsvorrichtung
US11803507B2 (en) 2018-10-29 2023-10-31 Secturion Systems, Inc. Data stream protocol field decoding by a systolic array

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141174A (ja) * 1993-11-17 1995-06-02 Matsushita Electric Ind Co Ltd レジスタ装置
JPH08328824A (ja) * 1995-03-31 1996-12-13 Kawasaki Steel Corp 回路システム
JPH11184718A (ja) * 1997-12-19 1999-07-09 Matsushita Electric Ind Co Ltd プログラマブルなデータ処理装置
JP2000242623A (ja) * 1999-02-23 2000-09-08 Atr Adaptive Communications Res Lab 通信サービス品質制御方法及び装置
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
JP2002108702A (ja) * 2000-10-03 2002-04-12 Hitachi Ltd マイクロコンピュータ及びデータ処理装置
JP2002229780A (ja) * 2001-01-30 2002-08-16 Handotai Rikougaku Kenkyu Center:Kk 大規模データパス・アーキテクチャの実行機構

Family Cites Families (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2067477A (en) * 1931-03-20 1937-01-12 Allis Chalmers Mfg Co Gearing
GB971191A (en) * 1962-05-28 1964-09-30 Wolf Electric Tools Ltd Improvements relating to electrically driven equipment
US3564506A (en) * 1968-01-17 1971-02-16 Ibm Instruction retry byte counter
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US3956589A (en) * 1973-11-26 1976-05-11 Paradyne Corporation Data telecommunication system
DE2713648A1 (de) * 1976-03-26 1977-10-06 Tokyo Shibaura Electric Co Stromzufuhr-steuervorrichtung fuer speichervorrichtungen
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4498172A (en) * 1982-07-26 1985-02-05 General Electric Company System for polynomial division self-testing of digital networks
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4566102A (en) * 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
US4646300A (en) * 1983-11-14 1987-02-24 Tandem Computers Incorporated Communications method
US4720778A (en) * 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US5225719A (en) * 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US4748580A (en) * 1985-08-30 1988-05-31 Advanced Micro Devices, Inc. Multi-precision fixed/floating-point processor
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4760525A (en) * 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US5367208A (en) * 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
FR2606184B1 (fr) * 1986-10-31 1991-11-29 Thomson Csf Dispositif de calcul reconfigurable
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5119290A (en) * 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
US5081575A (en) * 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
NL8800053A (nl) * 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
US4901268A (en) * 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
US5081375A (en) * 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
GB8906145D0 (en) * 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5203005A (en) * 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
CA2021192A1 (en) * 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5489857A (en) * 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
GB8925723D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system
US5212777A (en) * 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
JP3118266B2 (ja) * 1990-03-06 2000-12-18 ゼロックス コーポレイション 同期セグメントバスとバス通信方法
US5483620A (en) * 1990-05-22 1996-01-09 International Business Machines Corp. Learning machine synapse processor system apparatus
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5218302A (en) * 1991-02-06 1993-06-08 Sun Electric Corporation Interface for coupling an analyzer to a distributorless ignition system
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
FR2681791B1 (fr) * 1991-09-27 1994-05-06 Salomon Sa Dispositif d'amortissement des vibrations pour club de golf.
JP2791243B2 (ja) * 1992-03-13 1998-08-27 株式会社東芝 階層間同期化システムおよびこれを用いた大規模集積回路
JP2647327B2 (ja) * 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
US5493663A (en) * 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
US5386154A (en) * 1992-07-23 1995-01-31 Xilinx, Inc. Compact logic cell for field programmable gate array chip
US5581778A (en) * 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
US5497498A (en) * 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5857109A (en) * 1992-11-05 1999-01-05 Giga Operations Corporation Programmable logic device for real time video processing
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5386518A (en) * 1993-02-12 1995-01-31 Hughes Aircraft Company Reconfigurable computer interface and method
US5596742A (en) * 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
WO1994025917A1 (en) * 1993-04-26 1994-11-10 Comdisco Systems, Inc. Method for scheduling synchronous data flow graphs
US5502838A (en) * 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
US6064819A (en) * 1993-12-08 2000-05-16 Imec Control flow and memory management optimization
WO1995025306A2 (en) * 1994-03-14 1995-09-21 Stanford University Distributed shared-cache for multi-processors
US5515107A (en) * 1994-03-30 1996-05-07 Sigma Designs, Incorporated Method of encoding a stream of motion picture data
US5504439A (en) * 1994-04-01 1996-04-02 Xilinx, Inc. I/O interface cell for use with optional pad
US5896551A (en) * 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5798719A (en) * 1994-07-29 1998-08-25 Discovision Associates Parallel Huffman decoder
US5513366A (en) * 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5619720A (en) * 1994-10-04 1997-04-08 Analog Devices, Inc. Digital signal processor having link ports for point-to-point communication
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
JP3598139B2 (ja) * 1994-12-28 2004-12-08 株式会社日立製作所 データ処理装置
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5757207A (en) * 1995-03-22 1998-05-26 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US6077315A (en) * 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
WO1996034346A1 (en) * 1995-04-28 1996-10-31 Xilinx, Inc. Microprocessor with distributed registers accessible by programmable logic device
GB9508931D0 (en) * 1995-05-02 1995-06-21 Xilinx Inc Programmable switch for FPGA input/output signals
US5600597A (en) * 1995-05-02 1997-02-04 Xilinx, Inc. Register protection structure for FPGA
JP3677315B2 (ja) * 1995-06-01 2005-07-27 シャープ株式会社 データ駆動型情報処理装置
US5671432A (en) * 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
ZA965340B (en) * 1995-06-30 1997-01-27 Interdigital Tech Corp Code division multiple access (cdma) communication system
US5889982A (en) * 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US5784313A (en) * 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5734869A (en) * 1995-09-06 1998-03-31 Chen; Duan-Ping High speed logic circuit simulator
US5642058A (en) * 1995-10-16 1997-06-24 Xilinx , Inc. Periphery input/output interconnect structure
US5608342A (en) * 1995-10-23 1997-03-04 Xilinx, Inc. Hierarchical programming of electrically configurable integrated circuits
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
CA2166369C (en) * 1995-12-29 2004-10-19 Robert J. Blainey Method and system for determining inter-compilation unit alias information
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5898602A (en) * 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5635851A (en) * 1996-02-02 1997-06-03 Xilinx, Inc. Read and writable data bus particularly for programmable logic devices
US5727229A (en) * 1996-02-05 1998-03-10 Motorola, Inc. Method and apparatus for moving data in a parallel processor
US6020758A (en) * 1996-03-11 2000-02-01 Altera Corporation Partially reconfigurable programmable logic device
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
JP2000513523A (ja) * 1996-06-21 2000-10-10 オーガニック システムズ インコーポレイテッド プロセスの即時制御を行う動的に再構成可能なハードウェアシステム
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) * 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US6624658B2 (en) * 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US5859544A (en) * 1996-09-05 1999-01-12 Altera Corporation Dynamic configurable elements for programmable logic devices
US6049866A (en) * 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
JP3934710B2 (ja) * 1996-09-13 2007-06-20 株式会社ルネサステクノロジ マイクロプロセッサ
US6178494B1 (en) * 1996-09-23 2001-01-23 Virtual Computer Corporation Modular, hybrid processor and method for producing a modular, hybrid processor
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
US5913925A (en) * 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
US6338106B1 (en) * 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US5865239A (en) * 1997-02-05 1999-02-02 Micropump, Inc. Method for making herringbone gears
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US5884075A (en) * 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
GB2323188B (en) * 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
US6035371A (en) * 1997-05-28 2000-03-07 3Com Corporation Method and apparatus for addressing a static random access memory device based on signals for addressing a dynamic memory access device
US6011407A (en) * 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US6058266A (en) * 1997-06-24 2000-05-02 International Business Machines Corporation Method of, system for, and computer program product for performing weighted loop fusion by an optimizing compiler
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6072348A (en) * 1997-07-09 2000-06-06 Xilinx, Inc. Programmable power reduction in a clock-distribution circuit
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6170051B1 (en) * 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6078736A (en) * 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
JP3719570B2 (ja) * 1997-10-20 2005-11-24 株式会社パワーシステム 電気二重層コンデンサ
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
JPH11147335A (ja) * 1997-11-18 1999-06-02 Fuji Xerox Co Ltd 描画処理装置
US6075935A (en) * 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6172520B1 (en) * 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US6034538A (en) * 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
DE19807872A1 (de) * 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6173419B1 (en) * 1998-05-14 2001-01-09 Advanced Technology Materials, Inc. Field programmable gate array (FPGA) emulator for debugging software
US6052524A (en) * 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
JP3123977B2 (ja) * 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック
US6202182B1 (en) * 1998-06-30 2001-03-13 Lucent Technologies Inc. Method and apparatus for testing field programmable gate arrays
US7100026B2 (en) * 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
JP3551353B2 (ja) * 1998-10-02 2004-08-04 株式会社日立製作所 データ再配置方法
US6249756B1 (en) * 1998-12-07 2001-06-19 Compaq Computer Corp. Hybrid flow control
US6826763B1 (en) * 1998-12-11 2004-11-30 Microsoft Corporation Accelerating a distributed component architecture over a network using a direct marshaling
US6694434B1 (en) * 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6191614B1 (en) * 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
US6512804B1 (en) * 1999-04-07 2003-01-28 Applied Micro Circuits Corporation Apparatus and method for multiple serial data synchronization using channel-lock FIFO buffers optimized for jitter
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6211697B1 (en) * 1999-05-25 2001-04-03 Actel Integrated circuit that includes a field-programmable gate array and a hard gate array having the same underlying structure
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6745317B1 (en) * 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6341318B1 (en) * 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6972798B1 (en) * 1999-08-31 2005-12-06 Canon Kabushiki Kaisha Focusing device and method
US6349346B1 (en) * 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6519674B1 (en) * 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
US6845445B2 (en) * 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
EP1342158B1 (de) * 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
EP1182559B1 (en) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US20020087828A1 (en) * 2000-12-28 2002-07-04 International Business Machines Corporation Symmetric multiprocessing (SMP) system with fully-interconnected heterogenous microprocessors
US6976239B1 (en) * 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
AU2002347560A1 (en) * 2001-06-20 2003-01-02 Pact Xpp Technologies Ag Data processing method
JP3580785B2 (ja) * 2001-06-29 2004-10-27 株式会社半導体理工学研究センター ルックアップテーブル、ルックアップテーブルを備えるプログラマブル論理回路装置、および、ルックアップテーブルの構成方法
US7036114B2 (en) * 2001-08-17 2006-04-25 Sun Microsystems, Inc. Method and apparatus for cycle-based computation
US7472230B2 (en) * 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US7000161B1 (en) * 2001-10-15 2006-02-14 Altera Corporation Reconfigurable programmable logic system with configuration recovery mode
US20030108046A1 (en) * 2001-12-06 2003-06-12 Simeone John B. Interface device
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
WO2005010632A2 (en) * 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7299458B2 (en) * 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US7155708B2 (en) * 2002-10-31 2006-12-26 Src Computers, Inc. Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation
US7873811B1 (en) * 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7299339B2 (en) * 2004-08-30 2007-11-20 The Boeing Company Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141174A (ja) * 1993-11-17 1995-06-02 Matsushita Electric Ind Co Ltd レジスタ装置
JPH08328824A (ja) * 1995-03-31 1996-12-13 Kawasaki Steel Corp 回路システム
JPH11184718A (ja) * 1997-12-19 1999-07-09 Matsushita Electric Ind Co Ltd プログラマブルなデータ処理装置
JP2000242623A (ja) * 1999-02-23 2000-09-08 Atr Adaptive Communications Res Lab 通信サービス品質制御方法及び装置
JP2001167066A (ja) * 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
JP2002108702A (ja) * 2000-10-03 2002-04-12 Hitachi Ltd マイクロコンピュータ及びデータ処理装置
JP2002229780A (ja) * 2001-01-30 2002-08-16 Handotai Rikougaku Kenkyu Center:Kk 大規模データパス・アーキテクチャの実行機構

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243086A (ja) * 2011-05-19 2012-12-10 Renesas Electronics Corp 半導体集積回路装置

Also Published As

Publication number Publication date
US20070011433A1 (en) 2007-01-11
WO2004088502A2 (de) 2004-10-14
EP1611528A2 (de) 2006-01-04
US20100122064A1 (en) 2010-05-13
WO2004088502A3 (de) 2005-01-13
DE112004000026D2 (de) 2006-06-14

Similar Documents

Publication Publication Date Title
US7500085B2 (en) Identifying code for compilation
Caspi et al. A streaming multi-threaded model
US20100122064A1 (en) Method for increasing configuration runtime of time-sliced configurations
US7873816B2 (en) Pre-loading context states by inactive hardware thread in advance of context switch
US7603540B2 (en) Using field programmable gate array (FPGA) technology with a microprocessor for reconfigurable, instruction level hardware acceleration
JP3714598B2 (ja) マルチスレッド式プロセッサでのスレッド優先順位の変更
US6134653A (en) RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US7424599B2 (en) Apparatus, method, and instruction for software management of multiple computational contexts in a multithreaded microprocessor
US8914618B2 (en) Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US20140115594A1 (en) Mechanism to schedule threads on os-sequestered sequencers without operating system intervention
US10705849B2 (en) Mode-selectable processor for execution of a single thread in a first mode and plural borrowed threads in a second mode
EP1963963A2 (en) Methods and apparatus for multi-core processing with dedicated thread management
JP2008527506A (ja) Os隔離シーケンサー上のユーザーレベルのマルチスレッド化をエミュレートする機構
JPWO2010097847A1 (ja) プロセッサ装置、マルチスレッドプロセッサ装置
Govindarajan et al. Design and performance evaluation of a multithreaded architecture
JP2009032257A (ja) 有限状態機械制御コードを選択的に用いるプロセッサアーキテクチャ
US7516311B2 (en) Deterministic microcontroller context arrangement
US7562207B2 (en) Deterministic microcontroller with context manager
Wei et al. A near-memory processor for vector, streaming and bit manipulation workloads
JP2006215592A (ja) 再構成可能な、命令レベルのハードウェアによる高速化のためにマイクロプロセッサとともにfpgaテクノロジを使用する方法および装置
EP3188025A1 (en) Memory node with cache for emulated shared memory computers
WO2006081094A2 (en) Deterministic microcontroller
JP2005504366A (ja) プロセッサクラスタ
EP1550950A1 (en) Semiconductor device
WO2007039837A2 (en) Implied instruction set computing (iisc) / dual instruction set computing (disc) / single instruction set computing (sisc) / recurring multiple instruction set computing (rmisc) based computing machine / apparatus / processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091030

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100304

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100326

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110713