JP2011023037A - 並列データ処理装置 - Google Patents
並列データ処理装置 Download PDFInfo
- Publication number
- JP2011023037A JP2011023037A JP2010222022A JP2010222022A JP2011023037A JP 2011023037 A JP2011023037 A JP 2011023037A JP 2010222022 A JP2010222022 A JP 2010222022A JP 2010222022 A JP2010222022 A JP 2010222022A JP 2011023037 A JP2011023037 A JP 2011023037A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- instruction
- processing element
- array
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 774
- 238000000034 method Methods 0.000 claims abstract description 138
- 230000008569 process Effects 0.000 claims abstract description 68
- 238000012546 transfer Methods 0.000 claims description 149
- 239000000872 buffer Substances 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 14
- 230000007547 defect Effects 0.000 claims description 9
- 230000002950 deficient Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims 5
- 238000001514 detection method Methods 0.000 claims 4
- 230000003213 activating effect Effects 0.000 claims 3
- 238000013500 data storage Methods 0.000 claims 3
- 238000011156 evaluation Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 8
- 230000010354 integration Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 102100022460 Alpha-1-acid glycoprotein 2 Human genes 0.000 description 1
- 101000678191 Homo sapiens Alpha-1-acid glycoprotein 2 Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical group [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Executing Machine-Instructions (AREA)
- Hardware Redundancy (AREA)
- Image Processing (AREA)
Abstract
【解決手段】 データ処理装置は、処理要素のSIMD(単一命令複数データ)アレイ10を備える。前記処理要素は、複数の処理ブロックに作動可能に分割され、前記処理ブロックは、データ項目のそれぞれのグループを処理するように作動可能である。
【選択図】 図1
Description
図1は、グラフィックデータ処理システム3を示すシステムレベルのブロック図である。システム3は、インタフェース2を介して、パーソナルコンピュータまたはワークステーションなどのホストシステム(図示せず)と接続する。このようなシステムは、制御目的のために従属(embedded)プロセッサユニット(EPU)を具備することができる。例えば、特定のグラフィックスシステム3は、グラフィックプロセッサの全体的な機能を制御するため、およびホストシステムと接続するための従属処理ユニット(EPU)8を含む。システムは、ビデオ出力インタフェース14を介して表示画面に出力するためにグラフィックデータを処理する処理コア10を含む。ローカルメモリ12が、グラフィックスシステム3のために提供される。
図5は、処理コアをさらに詳細に示す。スレッドマネージャ102は、EPU8から制御信号を受信するために接続される。制御信号は、いつ命令がフェッチされるべきか、および命令がどこで見つけられるべきかに関して、スレッドマネージャに知らせる。スレッドマネージャ102は、これらの命令をアレイコントローラ104に、およびチャネルコントローラ108に提供するために接続される。アレイコントローラおよびチャネルコントローラ104と108は、受信された命令に依存する処理ブロック106に制御信号を転送するために接続される。
処理要素のアレイは、命令ストリームで一連の命令を実行するために制御される。処理ブロック106用のこのような命令ストリームは「スレッド」として知られている。各スレッドは、1つまたは複数のタスクを実行するために協調して動作する。用語「マルチスレッド」は、単一のタスクを実行するために複数のスレッドを使用することを指すが、用語「マルチタスキング」が、複数のタスクを同時に実行するための複数のスレッドを使用することを指す。これらの命令ストリームまたはスレッドを管理するのがスレッドマネージャ102である。
アレイコントローラ104は、処理ブロック106の動作を命令し、図7にさらに詳細に示される。
チャネルコントローラ108は、アレイコントローラ104による命令の実行に関して非同期で動作する。これが、計算および外部I/Oを同時に実行し、可能な限り重複できるようにする。計算(PE)動作は、さらに詳細に以下に説明されるように、スレッドマネージャのセマフォによってI/O動作と同期される。
単一のメモリ、またはその他のアドレス指定されたデバイスへのアクセスを要求する大多数の要素を有するコンピュータシステムにおいては、記憶ユニットへのアクセスは要素ごとに連続して実行される場合に処理速度のかなりの減速がある場合がある。
処理ブロック106の1つは、図10にさらに詳細に示される。処理ブロック106は、それぞれのデータ項目で並列に動作するが、同じ命令(SIMD)を実行するように配列されているプロセッサ要素1061のアレイを含む。各プロセッサ要素1061は、プロセッサユニット1061a、PEレジスタファイル1061b、およびPEメモリユニット1061cを含む。PEメモリユニット1063cは、プロセッサユニット1061aによる処理のためのデータ項目を記憶するために使用される。各プロセッサユニット1061aは、PEレジスタファイル1061bを介して、そのPEメモリユニット1061cに、およびそのPEメモリユニット1061cからデータを転送できる。プロセッサユニット1061aは、処理中のデータを記憶するためにPEレジスタファイル1061bも使用する。プロセッサユニット1061aとメモリユニット1061c間でのデータ項目の転送は、アレイコントローラ104によって制御される。
axi+byj+c
を、xiとyjの値の範囲に関して評価するための既知の装置である。
図11は、図1から図10のシステムを使用するグラフィックデータ処理方法での簡略化されたステップを示す。ホストシステムは、グラフィックスシステムによって処理され、表示されるプリミティブグラフィック画像の頂点に関するデータを作成する。それから、データは、頂点データのブロックとして、あるいはそれはホストシステムによってグラフィックスシステムに対して作成されるため、頂点ごとにどちらかで転送される。
スレッドマネージャ
図6に関して前述されたように、スレッドごとにフェッチされた命令を記憶するためのキャッシュメモリユニット1024を備える、スレッドマネージャ102に関する詳細な説明がここで示される。キャッシュユニット1024は、スレッドごとに1つずつ、一連の先入れ先出し(FIFO)バッファによって置換できる。また、スレッドマネージャは、命令フェッチユニット1023、スレッドスケジューラ1025、スレッドプロセッサ1026、セマフォコントローラ1028、およびステータスブロック1030も含む。
スレッドスケジューラは、実行時、以下のスケジューリングトリガの1つが発生すると必ず、どのスレッドがアクティブとならなければならないのかを計算し直す。
スレッドは(準備完了ではなく)、影響を受けやすい(YIELDING)。
−命令キャッシュ失敗で待機中でない限り
−ゼロセマフォで待機中でない限り
−ビジー実行ユニットで待機中でない限り、あるいは
−HALT(停止)命令で待機中でない限り、
つねに準備完了であると見なされる。
スレッドの同期および他のリソースへのアクセスの制御は、セマフォコントローラ1028によって提供される。
セマフォは、8ビットの符号なしカウントを有する。しかしながら、msb(ビット7)は、オーバフロービットとして使用され、このようにして絶対に設定されてはならない。任意のセマフォのビット7が設定されると必ず、スレッドマネージャステータスレジスタ内のセマフォオーバフローフラグがセットされる。対応する割込みイネーブルが設定されると、EPUは割り込まれる。セマフォオーバフローフラグは、EPUによってクリアされるまで設定されたままとなる。
以下の動作は、セマフォごとに提供される。
セマフォは、それらが、どの実行ユニットによって信号で知らされるのかに応じて4つのグループに分けられる。
(2)グループ内のセマフォ数
(3)セマフォグループ名
(4)グループ内のセマフォが知らされる信号
において、
(1)0 (2)32 (3)スレッド (4)スレッドとEPU
(1)1 (2)16 (3)チャネル (4)チャネルコントローラ
(1)2 (2)16 (3)ロード/記憶 (4)ロード/記憶ユニット
(1)3 (2)16 (3)PE (4)PEシーケンサ
である。
ここで、図7に示されるように、アレイコントローラ104に関する詳細な説明が示される。アレイコントローラ104は、処理ブロック106の動作を命令する。アレイコントローラ104は、スレッドマネージャから命令を受け取るために接続されている命令ランチャ1041を備える。命令ランチャ1041は、追加の特定の命令情報を命令ランチャに提供する命令テーブル1042に索引を付ける。
(ロード/記憶のためのイネーブルとして使用される)イネーブルスタックへの書込み
(ロード/記憶のための索引が付けられたアドレスとして使用される)Pレジスタへの書込み(図6)
(MEEフィードバック用のイネーブルとして使用される)Vレジスタへの書込み(図6)
命令ランチャ1041は、命令がアクセスするのがどのレジスタかを決定し、命令が起動されるとこれらのレジスタをロックする。命令が完了すると、レジスタはアンロックされる。ロード/記憶命令にとって、アクセスされたレジスタを決定することは率直である。これは、アクセスされたレジスタが命令で直接的に符号化されるためである。PE命令の場合、タスクは、アクセスされたレジスタの集合がマイクロコードに依存するため、さらに複雑である。この問題は、命令によってアクセスされる4つのオペランドのバイト長さを示す、命令テーブル1042をアドレス指定するためにPE命令の9つのビットを使用することによって解決される。
ロード/記憶コントローラ1045の詳細な説明がここに示される。
ロード/記憶コントローラ1045は、PEメモリ1063上で以下の動作を実行する。
I/Oチャネル転送
PEメモリからPEレジスタファイルへのロードおよび記憶
ロード命令および記憶命令は、単一メモリページとレジスタファイルの4つのクワタ詰めバイトの間で示されるバイト数を、以下の通りに転送する。
メモリページの全てまたは一部は、MEEフィードバックバッファにコピーされてよい。ページアドレスは、メモリベースレジスタ機構(以下を参照)で修正できる。ページの各クワタ詰めバイトは、MEEフィードバックバッファのA部分、B部分、またはC部分の任意のサブセットにコピーすることができ、フィードバックバッファプッシュは、それぞれのクワタ詰めバイトの後に使用できる。
メモリリフレッシュは、他の全てのメモリ動作に対して優先順位を有する。ロード/記憶対I/Oチャネルの優先順位は、ステータスレジスタビットで選択される。
PEメモリは動的であり、リフレッシュされなければならない。これは、全てのページがリフレッシュ期間のたびに読み取られることを保証することによって、ソフトウェア内で達成されてよい。しかしながら、好ましい方法は、アーキテクチャ内でのハードウェアリフレッシュを含むことである。
ロード/記憶コントローラ1045によって使用されているメモリアドレスは、以下の2つの機構のどちらか、または両方で操作する命ことができる。
メモリベースレジスタは、命令の中のあるビットにより条件が設けられる、適切な命令によって指定されるページアドレスにオプションで追加される。
命令の索引ビットが設定されると、命令のメモリのクワタ詰めバイトアドレスの低い5つのビットが、PEごとに、PEのPレジスタの低い5つのビットと論理和される。
チャネルコントローラ108に関する詳細な説明を以下に続ける。前述されたように、チャネルコントローラは、外部メモリとPEメモリの間でデータの転送を制御する。各処理ブロック106では、転送エンジンが、ブロックI/Oレジスタとバスアーキテクチャ間で、直接メモリアクセスDMA転送を実行する。チャネル命令に応じて、データ転送はビニングユニット1069を通過するか、あるいは直接的に外部メモリへ/外部メモリから移動する。
PEメモリから外部メモリにデータを転送する書込み命令
チャネルおよびビニングユニット内でレジスタ値を操作する付帯演算命令
スレッドマネージャ102からの命令は、低優先順位、高優先順位およびビンナー命令に押し込まれる。各FIFOが、スレッドマネージャ102に送信される自身の「完全」表示を有し、その結果、完全命令FIFOでブロックされたスレッドは、別のスレッドが、いっぱいではない命令FIFOの中に命令を押し込むのを妨げないだろう。
前述されたように、各処理ブロック106は、ブロックI/Oバスとシステムバス6の間で取り付けられている、関連付けられたビニングユニット1069を有する。ビニングユニットは、外部メモリ内のビンリストのプリミティブポインタの読み取りおよび書込みに対する特殊なサポートを提供する。
ビンリストは、リストデータをメモリに出力することによって、外部メモリ内で作成される。ビンリストは、メモリ内のビンのコンテンツの場所を示す。このようなリスト構造の保守は、ポインタアレイの形を取る追加の記憶ユニットを必要とする。ビンナーハードウェアは、メモリ内のこれらの構造に直接的にアクセスする。
ビニングハードウェアは、図9に詳細に示されており、PEアレイ1061が、プリミティブポインタを外部メモリに対して読書きできるようにするために必要とされるbinnitizationプロセスに関係する計算を処理する責任を負う。
ビンリストメモリの割当て
コンテキスト切替え時のビニング状態の保存および復元
ビニングユニット1069がBinner書込み命令を実行しているとき、それはビンリストの作成のために割り当てられる未知の量のメモリを必要とする。それは、このメモリにEPU8から一度に一部分を要求し、それを必要としているどのビンリストにもそれを割り当てる。ビンナーユニット1068は、32バイトの小さなチャンク(部分)をビンリストに割り当てるが、これは、それがこのレベルで割り当てられなければならないのであれば、不寛容にEPUをロードするだろう。代わりに、EPUは、それが適切であると決定するどのようなサイズ(例えば、64kBytesであるが、32バイトの任意の便利な倍数)であれデータの大きな部分を提供し、ビンナーユニット1068はこれを、チャンク発生器1106を使用して個々のチャンクに分割する。EPUからの大量のデータの転送は、EPUにとってさらに効率的であり、ビニングユニット1069の少量のデータの処理は、ビニングユニット1069にとってより効率的である。
図14は、図5および図10に図示されている処理要素の一部を形成する、プロセッサユニット1061aおよびPEレジスタファイル1061bを示す。PE1061は、マルチプレクサ210および212(AおよびB)を介して(R、S、VおよびPと示される)8ビットレジスタ202、204、206,208のブロックからデータ値を受け取るために接続される論理演算ユニット(ALU)214を含む。
複数ビットのイネーブルスタックをハードウェア内で提供することにより、ソフトウェアが、ALUがネスト化された命令シーケンスを処理しているときに、単一イネーブルビットのコンテンツを保存し、ロードする必要性を取り除くことができる。
Claims (206)
- 処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、前記処理要素が、複数の処理ブロックに作動可能に分割され、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能である、データ処理装置。
- 共通受信命令に従ってそれぞれのデータ項目を処理するように作動可能である処理要素のアレイを備えるデータ処理装置であって、前記処理要素が、少なくとも1つの処理要素を有する複数の処理ブロックに作動可能に分割され、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能である、データ処理装置。
- 前記処理ブロックの中の少なくとも1つが、欠陥のある処理ブロックの代わりにデータ項目のグループを処理するように作動可な冗長ブロックである、請求項1または2記載の装置。
- 処理ブロックに生じる欠陥を検出し、かつこの処理ブロックのデータ処理機能を冗長処理ブロックに転送するように作動可能な欠陥検出手段を備える、請求項3記載の装置。
- 各処理ブロックには、関連するブロックの欠陥処理要素の代わりにデータ項目を処理するように作動可能な少なくとも1つの冗長処理要素が装備されている、前述の請求項のいずれか一項に記載の装置。
- 処理ブロックの前記処理要素が、その中の所定数の処理要素を有するグループに配置され、各々のこのようなグループが、前記グループの欠陥処理要素を取り換えるための少なくとも1つのこのような冗長処理要素を含む、請求項5記載の装置。
- 処理要素に生じる欠陥を検出し、かつこの処理要素のデータ処理機能を冗長処理要素に転送するように作動可能な欠陥検出手段を備える、請求項5または6記載の装置。
- 各処理ブロックが、各処理要素のための数式を評価し、かつそれぞれの評価を前記処理ブロックの前記処理要素に供給するように作動可能である、前述の請求項のいずれか一項に記載の装置。
- 前記ブロックの各処理要素のための式ax+by+cを評価するように作動可能であり、各処理要素が、特定の(x,y)値を割り当てられ、かつa、bおよびcが式評価器に供給された係数である、請求項8記載の装置。
- 前記係数a、bおよびcが、前記処理ブロックの前記処理要素によって式評価器に供給される、請求項9記載の装置。
- 前記係数a、bおよびcが、前記処理ブロックの外部にある供給源によって前記式評価器に供給される、請求項9記載の装置。
- 前記処理要素によって処理される命令項目およびデータ項目が、互いから別々に前記処理要素に供給される、前述の請求項のいずれか一項に記載の装置。
- 処理ブロックの処理要素によって処理されるデータ項目が、この処理ブロックの処理要素によって供給される、前述の請求項のいずれか一項に記載の装置。
- 各処理要素が、データ項目および命令項目を受信し、受信命令項目に従って作動可能であるプロセッサユニットと、前記プロセッサユニットから受信されたデータ項目を記憶するメモリユニットと、前記プロセッサユニットと前記メモリユニットとの間に配置され、前記プロセッサユニットおよび前記メモリユニットからのデータ項目を記憶するように作動可能であり、これらのユニットの他方に転送し、かつ前記処理要素の前記プロセッサユニットによって処理するためのデータ項目を記憶するように作動可能であるレジスタファイルとを含む、前述の請求項のいずれか一項に記載の装置。
- データ項目および命令項目を記憶する外部メモリと、
各処理要素と前記外部メモリとの間のデータ項目および命令項目の転送を制御するコントローラ手段とを備え、
前記または各処理要素が、
データ項目および命令項目を受信するように接続され、かつ前記命令項目に従って前記データ項目を処理するように作動可能なプロセッサユニットと、
前記プロセッサユニットに入力するためのデータ項目を一時的に記憶する複数の記憶レジスタであって、前記記憶レジスタの少なくとも1つがオフセット値を記憶するように作動可能である記憶レジスタと、
データ項目と外部メモリアドレスを示すアドレスデータを記憶するメモリユニットと、
データ項目を記憶するレジスタファイルであって、前記レジスタファイルが、前記プロセッサユニットと前記メモリユニットとの間に接続され、これらのユニットの他方に転送するためにこれらのユニットのいずれかからデータ項目を受信し、かつ前記処理要素の外部のメモリにデータ項目を転送し、かつ前記プロセッサユニットによって処理するためのデータ項目を記憶する、レジスタファイルとを備え、
前記コントローラが、オフセット値を前記記憶レジスタから検索し、前記オフセット値を所定の基準アドレスと結合し、計算された内部アドレスを生じさせ、前記内部メモリの前記計算された内部アドレスに記憶された外部アドレスデータを検索し、かつ前記外部アドレスで前記外部メモリにアクセスするように作動可能である、前述の請求項のいずれか一項に記載のデータ処理装置。 - 前記コントローラが、記憶データまたは命令項目を外部メモリの外部アドレスから検索し、前記検索されたデータまたは命令項目を前記処理要素に転送するように作動可能である、請求項15記載のデータ処理装置。
- 前記コントローラが、前記処理要素からのデータ項目を前記外部メモリアドレスに記憶するための前記外部メモリに転送するように作動可能である、請求項15記載のデータ処理装置。
- 各処理要素が、
命令項目に従ってデータ項目を処理するプロセッサユニットと、
前記処理要素がデータ項目を処理するために使用可能であるかどうかを指示するイネーブルレジスタとを備え、
前記イネーブルレジスタが、複数のインディケータを含み、各々が前記処理要素の使用許可状態または使用禁止状態を示すように作動可能であり、前記インディケータ全てが前記使用許可状態を示す場合、前記処理要素がデータ項目の処理のために利用可能である、前述の請求項のいずれか一項に記載のデータ処理装置。 - 前記イネーブルレジスタの各インディケータが、関連される前記処理要素のための条件付処理ステップの状態を示すように作動可能である、請求項18記載のデータ処理装置。
- 前記イネーブルレジスタがハードウェアレジスタによって備えられる、請求項18または19記載のデータ処理装置。
- 前記アレイの各処理要素が、少なくとも1つの隣接処理要素にデータ項目を直接転送するように作動可能であり、かつ各処理ブロックが、データ項目を他の処理ブロックの処理要素に直接に転送するように作動可能である処理要素を含む、前述の請求項のいずれか一項に記載のデータ処理装置。
- 各処理要素が、データ項目および命令項目を受信し、かつ受信命令項目に従って受信データ項目を処理するように作動可能であるプロセッサユニットと、データ項目を記憶するメモリユニットと、データ項目を記憶し、かつデータ項目を前記プロセッサユニットおよびメモリユニットに転送するために接続されるレジスタファイルとを含み、前記レジスタファイルが、前記処理要素の外部のメモリにデータ項目を転送するために接続され、かつ隣接処理要素にデータ項目を転送するために接続されている、請求項21記載のデータ処理装置。
- 前記処理要素が、単一集積回路上に備えられている、請求項21または22記載のデータ処理装置。
- 各処理ブロックの前記処理要素が、前記集積回路でそれぞれ直列に接続され、前記直列の最初の処理要素を除いて、各処理要素が、データ項目を前記直列の前の処理要素に直接転送するように作動であり、かつ前記直列の最後の処理要素を除いて、各処理要素が、データ項目を前記直列の次の処理要素に直接転送するように作動可能である、請求項23記載のデータ処理装置。
- 前記処理ブロックの前記処理要素が、前記集積回路のそれぞれの2次元アレイに接続され、各処理要素が、データ項目を前記アレイの少なくとも3つの隣接処理要素に転送するように作動可能である、請求項23記載のデータ処理装置。
- 前記処理ブロックが直列に接続され、処理ブロックの最後の処理要素が、データを前記直列の他の処理ブロックの最初の処理要素に転送するように作動可能である、請求項24または25記載のデータ処理装置。
- 前記処理ブロックが直列に接続され、処理ブロックの最後の処理要素が、前記直列の前記最後の処理ブロックを除いて、データを前記直列の前記次の処理ブロックの最初の処理要素に転送するように作動可能である、請求項24または25記載のデータ処理装置。
- 複数の命令ストリームの各々に対する命令項目を検索する手段と、
前記複数の命令ストリームを結合してシリアル命令ストリームにする手段と、
前記シリアル命令ストリームを処理要素のアレイのデータ処理を制御する処理コントローラまたは前記処理要素へおよび前記処理要素からのデータの転送を制御するデータ転送コントローラのいずれかに配分する手段とを含むコントローラを備える、前述の請求項のいずれか一項に記載のデータ処理装置。 - 検索された命令項目を記憶するキャッシュメモリを含む、請求項28記載のデータ処理装置。
- 各々が各命令ストリーム用であり、それぞれの命令ストリームを制御する複数の命令ストリームプロセッサと、
命令ストリーム間の同期を制御するセマフォコントローラと、
前記命令ストリームの各々に関する状態情報を供給する状態ブロックと、
状態情報を受信するように接続され、かつ前記命令ストリームのどれがアクティブであるべきであるかを決定するように作動可能であるスケジューリング手段とを備える、請求項28または29記載のデータ処理装置。 - 各命令ストリームが、相対優先順位レベルを割り当てられる、請求項28、29または30記載のデータ処理装置。
- 前記複数の別個の命令ストリームの実行間の同期を保持する手段を含むセマフォコントローラを備える、前述の請求項のいずれか一項に記載のデータ処理装置。
- セマフォをプリセットする手段を有する、請求項32記載のデータ処理装置。
- セマフォ値を減分する手段を有する、請求項32または33記載のデータ処理装置。
- セマフォ値を増分する手段を有する、請求項32乃至34記載のいずれか一項に記載のデータ処理装置。
- 前記セマフォを複数のグループに配列する手段を有する、請求項32乃至35のいずれか一項に記載のデータ処理装置。
- 前記セマフォをグループに配列する手段が、前記セマフォを増分できるその実行ユニットにより制御される、請求項36記載のデータ処理装置。
- 共有リソースに対する複数の命令ストリームのアクセスを制御する手段を有する、請求項32乃至37のいずれか一項に記載のデータ処理装置。
- プロセッサによって出された命令に応じてセマフォを増分および/または減分する手段を有する、請求項32乃至38のいずれか一項に記載のデータ処理装置。
- 命令を受信するように接続された手段と、受信命令を関連する命令に応じて処理要素のアレイに転送するように作動可能なルーティング手段とを含むアレイコントローラを備える、前述の請求項のいずれか一項に記載のデータ処理装置。
- 前記アレイコントローラが、受信命令をデータ処理命令およびデータ転送命令に分離する命令ランチャを備える、請求項40記載のデータ処理装置。
- 前記ルーティング手段が、
前記処理要素によるデータの処理に関するデータ処理命令を処理する処理要素命令シーケンサと、
前記処理要素へおよび/または前記処理要素からのデータ項目の転送に関するデータ転送命令を処理するデータ転送コントローラとを備える、請求項40または41記載のデータ処理装置。 - 前記処理要素命令シーケンサが、マイクロコード命令をマイクロコード命令が前記アレイのデータ処理機能に関連する前記処理要素のアレイに転送するように作動可能である、請求項42記載のデータ処理装置。
- 各処理要素がさらにレジスタのセットを備える、かつ前記命令ランチャが、前記処理要素のどのレジスタが命令によってアクセスされるかを決定する手段と、前記命令が実行されている間に他の命令がこれらのレジスタにアクセスすることを防止する手段とを含む、請求項40、41、42または43記載のデータ処理装置。
- 前記命令ランチャが、一旦命令が完了したとすると他の命令による使用のためのレジスタを取り外す手段を有する、請求項44記載のデータ処理装置。
- どのレジスタがデータ処理命令によってアクセスされるかを決定する際に前記命令ランチャを助ける命令テーブルをさらに備える、請求項40乃至45のいずれか一項に記載のデータ処理装置。
- 前記命令ランチャが、シリアル命令の出現を保持すると同時に前記処理要素命令シーケンサと前記データ転送コントローラとの間の並列動作も保持する、請求項40乃至46のいずれか一項に記載のデータ処理装置。
- 前記ルーティング手段が、前記プロセッサユニットレジスタのいずれかが命令によって使用中であることを記録するように作動可能なレジスタ使用モニタ手段を含む、請求項47記載のデータ処理装置。
- 前記レジスタ使用モニタ手段が、命令によって既に使用中であるレジスタの使用を必要とする他の命令の動作を防止するように作動可能である、請求項48記載のデータ処理装置。
- 前記データ転送コントローラが、処理要素のSIMD(単一命令複数のデータ)アレイの処理要素の内部メモリユニットへおよび/または前記内部メモリからデータの転送を制御するように作動可能であり、各処理要素が、処理ユニットおよび内部メモリユニットを含み、前記制御手段が、前記内部メモリユニットへおよび/または前記内部メモリからのデータ転送が、関連する前記処理要素の処理ユニットの動作とは無関係に実行される制御手段を備える、請求項40乃至49のいずれか一項に記載のデータ処理装置。
- 各処理要素が、前記処理ユニットと前記内部メモリユニットとの間の転送のためのデータ項目を記憶し、かつ前記プロセッサユニットによって処理するレジスタファイルを含み、かつ前記データ転送コントローラがさらに、前記内部メモリユニットと処理要素のレジスタファイルとの間のデータの転送を制御する手段を備える、請求項50記載のデータ処理装置。
- 数式評価器(MEE)をさらに含み、かつ前記データ転送コントローラが、処理要素の前記内部メモリユニットと前記式評価器との間のデータの転送を制御する手段を有する、請求項50または請求項51記載のデータ処理装置。
- 前記データ転送コントローラが、一方の処理要素の内部メモリユニットと他方の処理要素の前記内部メモリユニットとの間でデータを転送する手段を有する、請求項50、51、または52記載のデータ処理装置。
- 前記データ転送コントローラが、前記処理要素の内部メモリにメモリリフレッシュを実行する手段を有する、請求項50乃至53のいずれか一項に記載のデータ処理装置。
- 前記データ転送コントローラが、処理要素の内部メモリユニットと前記処理要素の外部のメモリとの間のデータの転送を実行する手段を有する、請求項50乃至55のいずれか一項に記載のデータ処理装置。
- 前記処理要素へおよび前記処理要素から転送するためのデータ項目を記憶するローカルメモリユニットであって、前記データ項目が、前記メモリユニットのアドレスに記憶されているローカルメモリユニットと、
前記ローカルメモリユニットに関するセグメント情報を記憶する各処理ブロックのためのセグメントレジスタであって、前記セグメント情報が、関連する前記処理ブロックによってアクセスされる前記ローカルメモリユニットのアドレスエリアを示すセグメントレジスタを備える、前述の請求項のいずれか一項に記載のデータ処理装置。 - 前記処理要素が、前記ローカルメモリユニットに関するアドレス情報を含む命令項目を受信するように接続され、かつ受信アドレス情報および記憶セグメント情報に基づいて前記ローカルメモリユニットにアクセスするように作動可能である、請求項56記載のデータ処理装置。
- 前記処理要素が、前記セグメント情報を前記アドレス情報に加え、ローカルメモリユニットのターゲットアドレスを生じさせるように作動可能である、請求項57記載のデータ処理装置。
- 前述の請求項のいずれか一項に記載のデータ処理装置およびローカルメモリユニットのアドレスにデータ項目を記憶するローカルメモリユニットを使用してデータを処理する方法であって、
命令項目を前記処理要素に供給することであって、前記命令項目が前記ローカルメモリユニットに記憶されたデータ項目に関するアドレス情報を含むことと、
各処理ブロックのためのセグメント情報を得ることであって、前記セグメント情報が、処理ブロックがアクセスする前記ローカルメモリユニットのアドレス領域に関することと、
セグメント情報およびアドレス情報を結合し、ターゲットアドレス情報を生成し、かつ
前記ターゲットアドレス情報に基づいて前記ローカルメモリユニットにアクセスすることとを備える、方法。 - 各処理要素が、プロセッサユニットと、データ項目をデータ記憶ユニットへおよびデータ記憶ユニットから転送するメモリ入出力ポートと、データ項目を前記プロセッサユニットに転送するデータレジスタのセットとを備え、前記データレジスタのセットの前記レジスタの各々が、データ項目を前記メモリ入出力ポートから受信し、かつデータ項目を前記プロセッサユニットの出力から受信し、かつデータ項目を前記プロセッサユニットの入力に転送するために接続される、前述の請求項のいずれか一項に記載のデータ処理装置。
- 前記データレジスタのセットが4つのこのようなデータレジスタを含む、請求項60記載のデータ処理装置。
- 入力データ項目を前記データレジスタの3つから受信するように接続され、かつ所定数のデータビットだけ受信されたデータ項目をシフトし、シフトされたデータ項目を前記3つのデータレジスタに転送するように作動可能なデータシフタを備える、請求項60または61記載のデータ処理装置。
- 前記データシフタが浮動小数点計算のためにデータ項目を3つのデータレジスタから受信し、第4のデータレジスタが浮動小数点演算の指数を記憶するために使用される、請求項62記載のデータ処理装置。
- 前記処理装置が論理演算ユニットを備える、請求項60、61、62または63記載のデータ処理装置。
- 前記データレジスタのセットが、N(ここでNは少なくとも4である)個のこのようなレジスタを含む、請求項60記載のデータ処理装置。
- 入力データ項目を前記データレジスタのN−1個から受信し、かつ所定数のデータビットだけ受信されたデータ項目をシフトし、かつシフトされたデータ項目をNー1個のデータレジスタに転送するように作動可能であるデータシフタを備える、請求項65記載のデータ処理装置。
- 前記データシフタが、浮動小数点計算のためにデータ項目をN−1個のデータレジスタから受信し、第N番目のデータレジスタが、浮動小数点演算の指数を記憶するために使用される、請求項66記載のデータ処理装置。
- 前述の請求項のいずれか一項に記載のデータ処理装置で命令ストリームをスケジュールする方法であって、どの命令ストリームが、時間における特定の瞬間に優先順位を有するかを決定し、かつこの命令ストリームを前記SIMDアレイに転送することを備える、方法。
- 命令ストリームが、現在アクティブストリームがいつでも実行できるようになった高位優先順位を有しているかどうかを決定するステップと、
高位優先順位命令ストリームがいつでも実行できるようになった場合、高位優先順位を有する前記命令ストリームを起動するステップとを備える、請求項68記載の方法。 - アクティブ命令ストリームがストールしたかどうかを決定するステップと、
高位優先順位命令ストリームがペンディングである場合、前記高位優先順位を有する前記命令ストリームを起動するステップとを備える、請求項68記載の方法。 - 請求項1乃至67のいずれか一項に記載のデータ処理装置のメモリへのデータ読み出しアクセスを制御する方法であって、
前記メモリへのアクセスを必要とする処理要素を選択し、
ターゲットアドレスを選択された処理要素から検索し、
前記ターゲットアドレスを前記複数の処理要素に伝送し、
トランザクション識別情報を前記処理要素に伝送し、その情報が関連する前記ターゲットアドレスアクセスを識別し、
前記トランザクション識別情報を前記ターゲットアドレスへのアクセスを必要とする前記または各処理要素に記憶し、
前記トランザクション識別情報とともに前記ターゲットアドレスから得られたデータを前記複数の処理要素に伝送し、
前記トランザクション識別情報が記憶される前記または各処理要素に得られたデータを記憶することとを含む、方法。 - 請求項1乃至67のいずれか一項に記載され、データ項目がその中のアドレスに記憶されたメモリユニットと、前記メモリユニットにアクセスする複数の処理要素とを含むデータ処理装置のメモリユニットからデータ項目を検索する方法であって、
前記メモリユニットへのアクセスを必要とする前記アレイの各処理要素に対して、アクセスインディケータを関連する前記処理要素が前記メモリユニットへのアクセスを必要とすることを示すように設定し、かつこのようなアクセスが必要とされる前記メモリユニットのターゲットアドレスを記憶し、
セットされたアクセスインディケータを有する前記処理要素の中の1つを選択し、かつ記憶されたターゲットアドレスをこの選択された処理要素から検索し、
検索されたターゲットアドレスおよびトランザクション識別情報を前記アレイの前記処理要素に伝送し、
セットされた前記アクセスインディケータを有する各処理要素に対して、伝送されたターゲットアドレスを記憶されたターゲットアドレスとを比較し、記憶されたターゲットアドレスおよび伝送されたターゲットアドレスが等しい場合、前記アクセスインディケータをクリアし、かつ前記トランザクション識別情報を記憶し、
前記メモリユニットの伝送されたターゲットアドレスに記憶された少なくとも1つのデータ項目を検索し、
前記検索されたデータ項目または各検索されたデータ項目および関連トランザクション識別情報を前記アレイの前記処理要素に伝送し、
記憶されたトランザクション識別情報を有する各処理要素に対して、記憶されたトランザクション識別情報を前記伝送されたトランザクション識別情報とを比較し、かつ前記記憶されたトランザクション情報が前記伝送されたトランザクション情報に等しい場合、前記検索されたデータ項目または各検索されたデータ項目を受信することとを備える、方法。 - データ項目がその中のアドレスに記憶されたメモリユニットと、前記メモリユニットにアクセスする複数の処理要素とを含む請求項1乃至67のいずれか一項に記載のデータ処理装置のメモリユニットにデータ項目を書き込む方法であって、
前記メモリユニットへのアクセスを必要とする前記アレイの各処理要素に対して、アクセスインディケータを関連する前記処理要素が前記メモリユニットへのアクセスを必要とすることを示すように設定し、かつこのようなアクセスが必要とされる前記メモリユニットのターゲットアドレスを記憶し、
セットされたアクセスインディケータを有する前記処理要素の中の1つを選択し、かつ記憶されたターゲットアドレスをこの選択された処理要素から検索し、
検索されたターゲットアドレスおよびトランザクション識別情報を前記アレイの前記処理要素全てに伝送し、
セットされた前記アクセスインディケータを有する各処理要素に対して、伝送されたターゲットアドレスを記憶されたターゲットアドレスとを比較し、記憶されたターゲットアドレスおよび伝送されたターゲットアドレスが等しい場合、前記アクセスインディケータをクリアし、かつ前記トランザクション識別情報を記憶し、
トランザクション識別情報を前記アレイの処理要素に伝送し、
記憶されたトランザクション識別情報を有する各処理要素に対して、記憶されたトランザクション識別情報を前記伝送されたトランザクション識別情報とを比較し、かつ前記記憶されたトランザクション情報が前記伝送されたトランザクション情報に等しい場合、前記ターゲットアドレスで前記メモリユニットに記憶される少なくとも1つのデータ項目を伝送し、
前記伝送されたデータ項目または各伝送されたデータ項目を前記メモリユニットの前記ターゲットアドレスに記憶することとを備える、方法。 - 処理要素が、データ項目を前記ターゲットメモリアドレスのそれぞれの領域に記憶する、請求項73記載の方法。
- 請求項1乃至67のいずれか一項に記載のデータ処理装置で作動する複数の命令ストリームを制御する方法であって、
前記データ処理装置内のそれぞれのリソースの状態を示すのに役立つ複数のセマフォ値を供給し、
前記セマフォ値に応じて前記命令ストリームの操作を制御することとを備える、方法。 - 命令ストリームの操作を制御することが、
リソースに対するセマフォ値を評価し、
前記評価されたセマフォ値が所定値に等しい場合、前記命令ストリームの操作を停止し、
前記評価されたセマフォ値が前記所定値よりも大きい場合、前記セマフォ値を減分し、かつ前記命令ストリームの操作を継続することとを備える、請求項75記載の方法。 - 命令ストリームの操作を制御することが、
リソースに対するセマフォ値を評価し、
前記評価されたセマフォ値が所定値に等しい場合、前記命令ストリームの操作を停止し、
前記評価されたセマフォ値が前記所定値よりも小さい場合、前記セマフォ値を増分し、かつ前記命令ストリームの操作を継続することとを備える、請求項75記載の方法。 - 負セマフォ値が、この特定のセマフォ値によって休止された命令ストリームの数を示す、請求項75、76または77記載の方法。
- 各セマフォ値が、命令ストリームまたは前記SIMDアレイの実行ユニットによって増分できる、請求項75乃至78のいずれか一項に記載の方法。
- 前記セマフォが複数のグループに配置される、請求項75乃至78のいずれか一項に記載の方法。
- 前記セマフォグループが、前記セマフォを増分できるその実行ユニットにより配置される、請求項80記載の方法。
- 所定のセマフォが、共有リソースへの複数の命令ストリームのアクセスを制御するために使用される、請求項75乃至81のいずれか一項に記載の方法。
- セマフォ値がプロセッサによって増分および/または減分できる請求項75乃至82のいずれか一項に記載の方法。
- 単一集積回路上に装備されている請求項1乃至67のいずれか一項に記載のデータ処理装置。
- 中央処理装置および請求項1乃至67のいずれか一項に記載のデータ処理装置を含むモノリシック集積回路。
- ホスト汎用データ処理装置および請求項1乃至67のいずれか一項に記載のデータ処理装置を含むグラフィックデータ処理システム。
- 単一集積回路上に装備されている請求項86記載のデータ処理装置。
- 複数の処理ブロックに作動可能に分割される複数の処理要素を備えるデータ処理装置であって、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能である、データ処理装置。
- 実質的に添付図面を参照して前述され、添付図面に示されるようなデータ処理装置。
- 処理要素のSIMD(単一命令複数データ)アレイを使用してデータ項目を処理する方法であって、
共通命令を前記アレイの前記処理要素の全てに供給し、
各処理要素が前記共通命令に従って異なるデータ項目を処理するようにそれぞれのデータ項目を前記処理要素に供給することを備え、
前記データ項目が、前記命令項目とは無関係に前記処理要素に供給される、方法。 - 前記アレイによって処理されるデータ項目が、前記アレイの前記処理要素の少なくとも1つによって直接供給される、請求項90記載の方法。
- 前記処理要素が、複数の処理ブロックに作動可能に分割され、各ブロックが所定のグループからデータ項目を処理するように作動可能である、請求項90記載の方法。
- 処理要素のSIMD(単一命令複数データ)アレイおよび前記アレイの各処理要素に対する数式の評価を生じるように作動可能な数式評価器を使用して前記評価器によって受信された命令および係数に従って処理する方法であって、
命令項目のストリームを前記評価器に供給し、
少なくとも1つの係数を前記評価器に供給することとを備え、
前記係数または各係数が前記命令項目とは無関係に前記評価器に供給される、方法。 - 前記係数または各係数が、前記アレイの前記処理要素の少なくとも1つによって供給される、請求項93記載の方法。
- 共通命令項目およびそれぞれのデータ項目を受信するように接続される処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、前記データ項目および前記命令項目が互いに無関係に前記処理要素に供給される、データ処理装置。
- 共通命令項目およびそれぞれのデータ項目を受信するように接続される処理要素のSIMD(単一命令複数データ)アレイと、命令項目および係数データ項目を受信するように接続され、かつ各処理要素に対する数式を評価し、それぞれの評価を前記処理要素に供給するように作動可能な数式評価器とを備えるデータ処理装置であって、前記係数データ項目および前記命令項目が、互いに無関係に前記数式評価器に供給される、データ処理装置。
- 処理要素が、複数のアクティブ処理ブロックに作動可能に分割される処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能であり、前記処理ブロックの少なくとも1つが、欠陥のある処理ブロックの代わりにデータ項目のグループを処理するように作動可能な冗長ブロックである、データ処理装置。
- 処理ブロックに生じる欠陥を検出し、かつこの処理ブロックの前記データ処理機能を冗長処理ブロックに転送するように作動可能な欠陥検出手段を備える、請求項97記載の装置。
- 各処理ブロックには、関連する前記ブロックの欠陥処理要素の代わりにデータ項目を処理するように作動可能な少なくとも1つの冗長処理要素が装備されている、請求項97または98記載の装置。
- 処理要素が、複数の処理ブロックに作動可能に分割されて前記処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能であり、各処理ブロックには、関連するブロックの欠陥のある処理ブロックの代わりにデータ項目を処理するように作動可能な少なくとも1つの冗長処理要素が装備されている、データ処理装置。
- 処理ブロックの前記処理要素が、その中に所定数の処理要素を有するグループに配置され、各このようなグループが、前記グループの欠陥処理要素を取り換えるための少なくとも1つのこのような冗長処理要素を含む、請求項99または100記載の装置。
- 処理要素に生じる欠陥を検出し、かつこの処理要素のデータ処理機能を冗長処理要素に転送するように作動可能な欠陥検出手段を備える、請求項99、100または101記載の装置。
- 命令項目に従ってデータ項目を処理する処理要素の単一命令複数データ(SIMD)アレイであって、処理要素のアレイが、データ項目のそれぞれのグループを処理するように作動可能な複数の処理ブロックに作動可能に分割される単一命令複数データアレイと、
前記処理要素へおよび前記処理要素から転送するためのデータ項目を記憶するローカルメモリユニットであって、前記データ項目が前記メモリユニットのアドレスに記憶されているローカルメモリユニットと、
前記ローカルメモリユニットに関するセグメント情報を記憶する、各処理ブロックに対するセグメントレジスタであって、前記セグメント情報が、関連する前記処理ブロックによってアクセスされる前記ローカルメモリユニットのアドレス領域を示すセグメントレジスタ備える、データ処理装置。 - 命令項目に従ってデータ項目を処理する処理要素の単一命令複数データ(SIMD)アレイであって、処理要素のアレイが、データ項目のそれぞれのグループを処理するように作動可能な複数の処理ブロックに作動可能に分割される単一命令複数データアレイと、
前記処理要素へおよび前記処理要素から転送するためのデータ項目を記憶するローカルメモリユニットであって、前記データ項目が前記メモリユニットのアドレスに記憶されているローカルメモリユニットと、
前記ローカルメモリユニットに関するセグメント情報を記憶する、各処理ブロックに対するセグメントレジスタであって、前記セグメント情報が、関連する前記処理ブロックによってアクセスされる前記ローカルメモリユニットのアドレス領域を示すセグメントレジスタを備える、データ処理装置。 - 前記処理要素が、前記ローカルメモリユニットに関するアドレス情報を含む命令項目を受信するように接続され、かつ受信されたアドレス情報および記憶されたセグメント情報に基づいて前記ローカルメモリユニットにアクセスするように作動可能である、請求項103記載のデータ処理装置。
- 前記処理要素が、前記セグメント情報を前記アドレス情報に加え、ローカルメモリユニットターゲットアドレスを生じさせるように作動可能である請求項104記載のデータ処理装置。
- 処理要素の単一命令複数データ(SIMD)アレイであって、前記処理要素のアレイがデータ項目のそれぞれのグループを処理するように作動可能な複数の処理ブロックに作動可能に分割される単一命令複数データアレイと、前記処理要素へおよび前記処理要素から転送するためのデータ項目を記憶するローカルメモリユニットであって、前記データ項目が、前記ローカル記憶ユニットのアドレスに記憶されているローカルメモリユニットを含むデータ処理装置を使用してデータを処理する方法であって、
命令項目を前記処理要素に供給することであって、前記命令項目が、前記ローカルメモリユニットに記憶されたデータ項目に関するアドレス情報を含むことと、
各処理ブロックのためのセグメント情報を得ることであって、前記セグメント情報が、処理ブロックがアクセスする前記ローカルメモリユニットの前記アドレス領域に関することと、
前記セグメント情報およびアドレス情報を結合し、ターゲットアドレス情報を生成し、
前記ターゲットアドレス情報に基づいて前記ローカルメモリユニットにアクセスすることとを備える、方法。 - 前記セグメント情報およびアドレス情報が、前記セグメント情報を前記アドレス情報に付加することによって結合される、請求項106記載の方法。
- 処理要素のSIMD(単一命令複数データ)アレイを使用してデータ項目を処理する方法であって、
共通命令を前記アレイの前記処理要素の全てに供給し、
各処理要素が前記共通命令に従って異なるデータ項目を処理するようにそれぞれのデータ項目を前記処理要素に供給することとを備え、
前記命令が、前記データ項目とは別々に前記処理要素に供給され、かつ前記データ項目が、前記アレイの前記処理要素の少なくとも1つによって供給される、方法。 - 処理要素のSIMD(単一命令複数データ)アレイを使用してデータ項目を処理する方法であって、
共通命令を前記アレイの前記処理要素の全てに供給し、
各処理要素に対する結果データ項目を生成する前記アレイの各処理要素に対する数式を評価し、
それぞれの結果データ項目を前記処理要素に供給することとを備え、
前記命令が、前記結果データ項目とは別々に前記処理要素に供給され、かつ前記数式のための係数が、前記アレイの前記処理要素の少なくとも1つによって供給される、方法。 - 前記処理要素が、複数の処理ブロックに作動可能に分割され、各ブロックが所定のデータ項目のグループからのデータ項目を処理するように作動可能である、請求項108または109記載の方法。
- 共通命令に従ってそれぞれのデータ項目を処理するように作動可能な複数の処理要素であって、前記処理要素が、それによって処理要素の単一命令複数データ(SIMD)を形成する複数の処理要素と、
命令を前記処理要素に供給するように作動可能な制御手段と、
データ項目を前記処理要素に供給するように作動可能であり、それによって前記処理要素によって受信された命令に従って処理するオペランド供給手段とを備え、
前記オペランド供給手段が、前記アレイの前記処理要素の少なくとも1つから前記処理要素に供給するためのデータ項目を受信するように接続されている、データ処理装置。 - 共通命令に従ってそれぞれのデータ項目を処理するように作動可能な複数の処理要素であって、前記処理要素が、それによって処理要素の単一命令複数データ(SIMD)を形成する複数の処理要素と、
命令を前記処理要素に供給するように作動可能な制御手段と、
前記アレイの各処理要素に対する数式を評価するように作動可能な数式評価器と、
係数をそれによって処理するために前記評価器に供給するように作動可能であるオペランド供給手段とを備え、
前記オペランド供給手段が、前記アレイの前記処理要素の少なくとも1つから前記評価器に供給するための係数を受信するように接続されている、データ処理アーキテクチャ。 - ターゲット外部メモリアドレスがそれの中の内部アドレスに記憶され、内部アドレスがオフセット値だけ基準アドレスからオフセットされる内部メモリを含む処理要素によって外部メモリへのアクセスを制御する方法であって、前記ターゲットアドレスが、アクセスが必要とされる外部メモリのアドレスを示す方法において、
前記オフセット値を検索し、
前記基準アドレスおよび前記オフセット値を結合し、計算内部アドレスを生成し、
前記ターゲットアドレスを前記計算された内部アドレスによって示されたそれの中の前記アドレスで前記内部メモリから前記ターゲットアドレスを検索し、
前記検索されたターゲットアドレスに基づいて前記外部メモリにアクセスすることとを備える、方法。 - 前記処理要素が、受信命令に従ってデータ項目を処理するプロセッサユニットを備え、前記プロセッサユニットが、前記プロセッサユニットに転送するためのデータ項目を記憶し、かつ前記オフセット値を記憶するレジスタを含む、請求項113記載の方法。
- 前記外部メモリにアクセスすることが、記憶データまたは命令項目を前記外部メモリの前記ターゲットアドレスから検索し、かつ検索されたデータ項目または命令項目を前記処理要素に転送することを備える、請求項113または114記載の方法。
- 前記外部メモリにアクセスすることが、データ項目を前記ターゲットアドレスにその中に記憶するための前記外部メモリに供給することを備える、請求項113、114または115記載の方法。
- 命令項目に従ってデータ項目を処理する少なくとも1つの処理要素と、
データ項目および命令項目を記憶する外部メモリと、
前記または各処理要素と前記メモリとの間でデータ項目および命令項目の転送を制御するコントローラ手段とを備え、
前記または各処理要素が、
データ項目および命令項目を受信するように接続され、かつ前記命令項目に従って前記データ項目を処理するように作動可能であるプロセッサユニットと、
前記プロセッサユニットに入力するためのデータ項目を一時的に記憶する複数の記憶レジスタであって、前記記憶レジスタの少なくとも1つが、オフセット値を記憶するように作動可能である複数の記憶レジスタと、
外部メモリアドレスを示すデータ項目およびアドレスデータを記憶するメモリユニットと、
データ項目を記憶するレジスタファイルとを備え、前記レジスタファイルが、前記プロセッサユニットと前記メモリユニットとの間に接続され、これらのユニットの他のユニットに転送するためのこれらのユニットのいずれかからデータ項目を受信し、前記処理要素に外部のメモリ中のデータ項目を転送し、かつ前記プロセッサユニットによって処理するためのデータ項目を記憶し、
前記コントローラが、オフセット値を前記記憶レジスタから検索し、前記オフセット値を所定の基準アドレスと結合し、計算された内部アドレスを生じさせ、内部メモリの計算された内部アドレスに記憶された外部アドレスデータを検索し、かつ外部アドレスで前記外部メモリにアクセスするように作動可能である、データ処理装置。 - 前記コントローラが、記憶されたデータまたは命令項目を前記外部メモリの前記外部アドレスから検索し、かつ前記検索されたデータ項目または命令項目を前記処理要素に転送するように作動可能である、請求項117記載のデータ処理装置。
- 前記コントローラが、前記外部メモリアドレスでその中に記憶するためにデータ項目を前記処理要素から前記外部メモリに転送するように作動可能である、請求項117記載のデータ処理装置。
- 処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、各処理要素が、
命令項目に従ってデータ項目を処理するプロセッサユニットと、
前記処理要素がデータ項目を処理するのに役立つかどうかを示すイネーブルレジスタとを備え、
前記イネーブルレジスタが、各々が前記処理要素の使用許可状態または使用禁止状態を示すように作動可能である複数のインディケータを含み、前記インディケータ全てが前記使用許可状態を示す場合、前記処理要素が、データ項目を処理するのに役立つ、データ処理装置。 - 前記イネーブルレジスタの各インディケータが、関連する前記処理要素のための条件付処理ステップの状態を示すように作動可能である、請求項120記載のデータ処理装置。
- 処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、各処理要素が、プロセッサユニットと、データ項目をデータ記憶ユニットへおよびデータ記憶ユニットから転送するメモリ入出力ポートと、データ項目を前記プロセッサユニットに転送するデータレジスタのセットとを備え、前記データレジスタのセットの前記レジスタの各々が、データ項目を前記メモリ入出力ポートから受信し、かつデータ項目を前記プロセッサユニットの出力から受信し、かつデータ項目を前記プロセッサユニットの入力に転送するために接続される、データ処理装置。
- 前記データレジスタのセットが4つのこのようなデータレジスタを含む、請求項122記載のデータ処理装置。
- 入力データ項目を前記データレジスタの3つから受信するように接続され、所定数のデータビットだけ受信データ項目をシフトし、かつシフトされたデータ項目を3つのデータレジスタに転送するように作動可能なデータシフタを備える、請求項122または123記載のデータ処理装置。
- 前記データシフタが、浮動小数点計算のためにデータ項目を3つのデータレジスタから受信し、4番目のデータレジスタが、浮動小数点演算の指数を記憶するために使用される、請求項124記載のデータ処理装置。
- 前記処理装置が論理演算ユニットを含む、請求項122乃至125のいずれか一項に記載のデータ処理装置。
- 前記データレジスタのセットが、N(ここで、Nは少なくとも4である)個のこのようなデータレジスタを含む、請求項122記載のデータ処理装置。
- 入力データ項目を前記データレジスタのN−1個から受信するように接続され、かつ所定数のデータビットだけ受信データ項目をシフトし、かつシフトされたデータ項目をN−1個のデータレジスタに転送するように作動可能なデータシフタを備える、請求項127記載のデータ処理装置。
- 前記データシフタが、浮動小数点計算のためにデータ項目をN−1個のデータレジスタから受信し、N番目のレジスタが、浮動小数点演算の指数を記憶するために使用される、請求項128記載のデータ処理装置。
- 処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、各処理要素が、データ項目および命令項目を受信し、かつ受信命令項目に従って受信データ項目を処理するように作動可能なプロセッサユニットと、データ項目を記憶するメモリユニットと、データ項目を記憶し、かつ前記プロセッサユニットおよび前記メモリユニットの中のデータ項目を転送するために接続されたレジスタファイルとを備え、前記レジスタファイルも、外部のメモリ中のデータ項目を前記処理要素に転送するために接続され、かつ前記処理要素の前記プロセッサユニットによって処理するためのデータ項目を記憶するように作動可能である、データ処理装置。
- 各プロセッサユニットが、データ項目を前記レジスタファイルに記憶し、かつデータ項目を前記レジスタファイルから同時に読み出すように作動可能である請求項130記載のデータ処理装置。
- 各メモリユニットがダイナミックランダムアクセスメモリ(DRAM)ユニットによって装備されている、請求項130または131記載のデータ処理装置。
- 処理要素が複数の処理ブロックに作動可能に分割される処理要素のSIMD(単一命令複数データ)アレイを備えるデータ処理装置であって、前記処理ブロックが、データ項目のそれぞれのグループを処理するように作動可能であり、前記アレイの各処理要素が、少なくとも1つの隣接処理要素中のデータ項目を直接転送するように作動可能であり、かつ各処理ブロックが、他の処理ブロックの処理要素の中のデータ項目を直接転送するように作動可能である処理要素を含む、データ処理装置。
- 各処理要素が、データ項目および命令項目を受信し、かつ受信命令項目に従って受信データ項目を処理するように作動可能なプロセッサユニットと、データ項目を記憶するメモリユニットと、データ項目を記憶し、かつデータ項目を前記プロセッサユニットおよび前記メモリユニットに転送するために接続されたレジスタファイルとを備え、前記レジスタファイルが、データ項目を前記処理要素の外部のメモリに転送するために接続され、かつデータ項目を隣接処理要素に転送するために接続される、請求項133記載のデータ処理装置。
- 前記処理要素が単一集積回路上に備えられる、請求項133または134記載のデータ処理装置。
- 各処理ブロックの前記処理要素が、それぞれ前記集積回路において直列に接続され、各処理要素が、直列の最初を除いて、データ項目を前記直列の前の処理要素に直接転送するように作動可能であり、かつ各処理要素が、前記直列の最後を除いて、データ項目を前記直列の次の処理要素に直接転送するように作動可能である、請求項135記載のデータ処理装置。
- 前記処理ブロックの前記処理要素が、前記集積回路のそれぞれの2次元アレイに接続され、各処理要素が、データ項目を前記アレイの少なくとも3つの隣接処理要素に転送するように作動可能である請求項136記載のデータ処理装置。
- 前記処理ブロックが直列に接続され、処理ブロックの最後の処理要素が、前記直列の他の処理ブロックの最初の処理要素にデータを転送するように作動可能である、請求項136または137記載のデータ処理装置。
- 前記処理ブロックが直列に接続され、処理ブロックの最後の処理要素が、前記直列の最後の処理ブロックを除いて、前記直列の次の処理ブロックの最初の処理要素にデータを転送するように作動可能である、請求項136または137記載のデータ処理装置。
- その各々が処理ユニットおよび内部メモリユニットを含む処理要素のアレイを制御するコントローラであって、
複数の命令ストリームの各々に対する命令項目を検索する手段と、
前記複数の命令ストリームを結合し、シリアル命令ストリームにする手段と、
前記シリアル命令ストリームを前記処理要素のアレイのデータ処理を制御する処理コントローラまたは前記処理要素へおよび前記処理要素からのデータの転送を制御するデータ転送コントローラのいずれかに分配する手段とを備えている、コントローラ。 - 検索された命令項目を記憶するキャッシュメモリを備える、請求項140記載のコントローラ。
- 各々が各命令ストリーム用であり、それぞれの命令ストリームを制御する複数の命令ストリームプロセッサと、
命令ストリーム間の同期を制御するセマフォコントローラと、
前記命令ストリームの各々に関する状態情報を供給する状態ブロックと、
状態情報を受信するように接続され、命令ストリームのどれがアクティブであるべきであるかを決定するように作動可能であるスケジューリング手段とを備えている、請求項140または141記載のコントローラ。 - 各命令ストリームが相対優先順位レベルを割り当てられる、請求項140乃至142のいずれか一項に記載のコントローラ。
- 前記プロセッサのアレイがSIMD(単一命令複数データ)アレイである、請求項140乃至143のいずれか一項に記載のコントローラ。
- その各々が処理ユニットおよび内部メモリユニットを含む処理要素のアレイで使用するスレッドマネージャであって、
複数のスレッドの各々に対する命令項目を外部メモリから検索する手段であって各スレッドは命令のストリームである手段と、
前記スレッドを結合し、シリアル命令ストリームにする手段と、
前記シリアル命令ストリームを前記処理要素のアレイのデータ処理を制御する処理コントローラまたは前記処理要素の外部メモリユニットと外部メモリユニットとの間でのデータの転送を制御する入出力データ転送チャネルコントローラのいずれかに分配する手段とを備えている、スレッドマネージャ。 - メモリからの前記命令検索をバッファリングするキャッシュメモリを含む、請求項145記載のスレッドマネージャ。
- 各々が各アクティブスレッド用であり、かつそれぞれのスレッドを制御する複数のスレッドプロセッサと、
スレッド間の同期を制御するセマフォコントローラと、
前記スレッドの各々に関する状態情報を供給する状態ブロックとを備えている、請求項145または146記載のスレッドマネージャ。 - どのスレッドが時間における任意の特定の瞬間にもアクティブであるべきであるかを決定するスケジューラを備える、請求項145乃至147のいずれか一項に記載のスレッドマネージャ。
- 前記プロセッサのアレイがSIMD(単一命令複数データ)アレイである、請求項145乃至148のいずれか一項に記載のスレッドマネージャ。
- 処理要素のSIMD(単一命令複数データ)アレイで命令ストリームをスケジュールする方法であって、どの命令ストリームが時間における特定の瞬間に優先順位を有するかを決定し、かつこの命令ストリームを前記SIMDアレイに転送することとを備える、方法。
- 現在のアクティブストリームがいつでも実行できるようになった高位優先順位を命令ストリームが有するかどうかを決定するステップと、 高位優先順位命令ストリームがいつでも実行できるようになった場合、前記高位優先順位を有する前記命令ストリームを起動するステップとを備える、請求項150記載の方法。
- アクティブ命令ストリームがストールしたかどうかを決定するステップと、
高位命令ストリームがペンディングである場合、前記高位優先順位を有する前記命令ストリームを起動するステップとを備える、請求項151記載の方法。 - 処理要素のSIMD(単一命令複数データ)アレイを含むデータ処理装置で操作する複数の命令ストリームを制御する方法であって、
前記データ処理装置内のそれぞれのリソースの状態を示すのに役立つ複数のセマフォ値を供給し、
前記セマフォ値に依存して前記命令ストリームの操作を制御することとを備える方法。 - 命令ストリームの操作を制御することが、
リソースのための前記セマフォ値を評価し、
前記評価されたセマフォ値が所定の値を等しい場合、前記命令ストリームの操作を停止し、または
前記評価されたセマフォ値が所定の値よりも大きい場合、前記命令ストリームの前記セマフォ値を減分し、かつ継続することとを備える、請求項153記載の方法。 - 命令ストリームの操作を制御することが、
リソースのための前記セマフォ値を評価し、
前記評価されたセマフォ値が所定の値に等しい場合、命令ストリームの操作を停止し、または
前記評価されたセマフォ値が所定の値よりも小さい場合、前記命令ストリームの前記セマフォ値を増分し、かつ継続することとを備える、請求項153または154記載の方法。 - 負セマフォ値が、この特定のセマフォ値によって停止された命令ストリームの数を示す、請求項155記載の方法。
- 各セマフォ値が、命令ストリームまたは前記SIMDアレイの実行ユニットによって増分できる、請求項153乃至156のいずれか一項に記載の方法。
- 前記セマフォが複数のグループに配置されている、請求項153乃至157のいずれか一項に記載の方法。
- 前記セマフォグループが、前記セマフォが増分できる実行ユニットにより配置されている、請求項158記載の方法。
- 所定のセマフォが、共有リソースへの複数の命令ストリームのアクセスを制御するために使用される、請求項153乃至159のいずれか一項に記載の方法。
- セマフォ値が、プロセッサによって増分および/または減分できる、請求項153乃至160のいずれか一項に記載の方法。
- 処理要素が複数の処理ブロックに作動可能に分割され、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能であり、各処理要素が処理ユニットおよび内部メモリユニットを含み、かつ前記SIMD(単一命令複数データ)アレイが複数の別個の命令ストリームを処理する処理要素の前記SIMDアレイで使用するためのセマフォコントローラであって、
複数の別個の命令ストリームの実行間の同期を保持する手段を備えている、セマフォコントローラ。 - セマフォ値をプリセットする手段を有する、請求項162記載のセマフォコントローラ。
- セマフォ値を減分する手段を有する、請求項162または163記載のセマフォコントローラ。
- セマフォ値を増分する手段を有する、請求項162乃至164のいずれか一項に記載のセマフォコントローラ。
- 前記セマフォを複数のグループに配列する手段を有する、請求項162乃至165のいずれか一項に記載のセマフォコントローラ。
- 前記セマフォをグループに配列する手段が、前記セマフォが増分できる実行ユニットにより制御される、請求項166記載のセマフォコントローラ。
- 共有リソースへの複数の命令ストリームのアクセスを制御する手段を有する、請求項162乃至167のいずれか一項に記載のセマフォコントローラ。
- EPUによって出された命令に応じてセマフォ値を増分および/または減分する手段を有する、請求項162乃至168のいずれか一項に記載のセマフォコントローラ。
- 処理要素のSIMD(単一命令複数データ)アレイとセマフォコントローラとを備えているデータ処理装置であって、
前記複数の別個の命令ストリームの実行間の同期を保持する手段を含む、データ処理装置。 - データ処理システムでデータ項目の転送を制御するデータ転送コントローラであって、
処理要素の内部メモリユニットへおよび処理要素の内部メモリユニットからのデータの転送を制御するように作動可能な制御手段を備え、各処理要素が、処理ユニットおよび内部メモリユニットを含み、前記制御手段が、前記内部メモリユニットへおよび/または前記内部メモリユニットからのデータ転送が関連する前記処理要素の前記処理ユニットの動作とは無関係に実行されるように作動可能である、データ転送コントローラ。 - 各処理要素が、データ項目を処理する処理ユニットと、データ項目を記憶する内部メモリユニットとを含む処理要素のアレイと、
内部メモリユニットへおよび/または内部メモリユニットからのデータ転送が関連する前記処理要素の前記処理ユニットの動作とは無関係に実行されるように処理要素の内部メモリユニットへおよび/処理要素の内部メモリユニットからのデータの転送を制御するように作動可能なデータ転送コントローラとを備えている、データ処理装置。 - 前記処理要素のアレイがSIMD(単一命令複数データ)アレイである、請求項171または172記載のデータ処理装置。
- 前記処理要素が、複数の処理ブロックに作動可能に分割され、前記処理ブロックが、データ項目のそれぞれのグループを処理するように作動可能である、請求項171、172または173記載のデータ処理装置。
- 各処理要素が、前記プロセッサユニットと前記メモリユニットとの間で転送するためのデータ項目を記憶し、かつ前記プロセッサユニットによって処理するレジスタファイルを含み、かつ前記データ転送コントローラが、処理要素の前記内部メモリユニットと前記レジスタファイルとの間のデータ項目の転送を制御する手段をさらに含む、請求項171乃至174のいずれか一項に記載のデータ処理装置。
- 数式評価器(MEE)をさらに備え、かつ前記データ転送コントローラが、処理要素の前記内部メモリユニットと前記数式評価器との間のデータの転送を制御する手段を有する、請求項172、173、174または175記載のデータ処理装置。
- 前記データ転送コントローラが、一方の処理要素の前記内部メモリユニットと他方の処理要素の前記内部メモリユニットとの間でデータを転送する手段を有する、請求項172乃至176のいずれか一項に記載のデータ処理装置。
- 前記データ転送コントローラが、前記処理要素の前記内部メモリユニットでメモリリフレッシュを実行する手段を有する、請求項172乃至177のいずれか一項に記載のデータ処理装置。
- 前記データ転送コントローラが、処理要素の内部メモリユニットと前記処理要素の外部のメモリとの間のデータの転送を実行する手段を有する、請求項172乃至178のいずれか一項に記載のデータ処理装置。
- 各々が処理ユニットと内部メモリユニットとを含み、かつデータを処理するように作動可能である処理要素のアレイを含むデータ処理システムでデータを転送する方法であって、
内部メモリユニットへおよび前記内部メモリユニットからのデータ転送が関連する前記処理要素のプロセッサユニットの動作とは無関係に実行されるように処理要素の前記内部メモリユニットへおよび/または前記内部メモリユニットからデータを転送することを備える、方法。 - 処理要素が複数の処理ブロックに作動可能に分割される処理要素のアレイを備えているデータ処理装置でデータを転送する方法であって、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能であり、各処理要素が、処理ユニットと内部メモリユニットとを含み、かつデータを処理するように作動可能である方法において、
この内部メモリユニットへおよび/またはこの内部メモリユニットからのデータ転送が関連する前記処理要素の前記プロセッサユニットの動作とは無関係であるように処理要素の内部メモリユニットへおよび/または処理要素の内部メモリユニットからのデータの転送を制御することを備える、方法。 - データ項目を処理するように作動可能であり、かつ各々がその中にデータを記憶する複数のレジスタを含むプロセッサユニットと、内部メモリユニットとを備える処理要素のSIMD(単一命令複数データ)アレイと、
命令を受信するように接続され、受信命令に従って前記SIMDアレイの動作を制御するように作動可能であるアレイコントローラとを備え、
前記アレイコントローラが、
受信命令をデータ処理命令およびデータ転送命令に分離する命令ランチャと、
データ処理命令を前記命令ランチャから受信するために接続され、かつデータ処理命令を前記処理要素に転送する処理要素命令シーケンサと、
データ転送命令を前記命令ランチャから受信するために接続され、かつ前記処理要素の前記それぞれの内部メモリユニットへおよびこの内部メモリユニットからのデータ転送を制御するデータ転送コントローラと、
プロセッサユニットレジスタのどれが命令によって使用中であるかを記録するように作動可能なレジスタ使用モニタ手段とを備える、データ処理装置。 - 前記レジスタ使用モニタ手段が、既に命令によって使用中であるレジスタの使用を必要とする他の命令の動作を防止するように作動可能である請求項182記載のデータ処理装置。
- 前記処理要素が、データ項目のそれぞれのグループを処理する複数の処理ブロックに作動可能に分割される、請求項182または183記載のデータ処理装置。
- 処理要素が複数の処理ブロックに作動可能に分割される処理要素のSIMD(単一命令複数データ)アレイの動作を制御するアレイコントローラで使用するためのレジスタスコアボードユニットであって、前記処理ブロックがデータ項目のそれぞれのグループを処理するように作動可能であり、前記アレイコントローラが、データ処理命令を扱う処理要素命令シーケンサと、データ転送命令を扱うデータ転送コントローラとを備えるレジスタスコアボードユニットにおいて、
シリアル命令実行の出現を維持すると同時に前記処理要素命令シーケンサと前記データ転送コントローラとの間で並列演算を行う手段を備える、レジスタスコアボードユニット。 - 処理要素のアレイの動作を制御するアレイコントローラであって、前記コントローラが、命令を受信するように接続された手段と、関連する命令に応じて受信命令を処理要素のアレイに転送するように作動可能なルーティング手段とを備える、アレイコントローラ。
- 受信命令をデータ処理命令およびデータ転送命令に分離する手段を備える、請求項186記載のコントローラ。
- 前記ルーティング手段が、
前記処理要素によるデータの処理に関するデータ処理命令を処理する処理要素命令シーケンサと、
前記処理要素へおよび/または前記処理要素からのデータ項目の転送に関するデータ転送命令を処理するデータ転送コントローラとを備えている、請求項185または186記載のコントローラ。 - 前記処理要素命令シーケンサが、マイクロコード命令が前記アレイのデータ処理機能に関する処理要素の前記アレイにマイクロコード命令を転送するように作動可能である請求項188記載のコントローラ。
- その各々が処理ユニットおよび内部メモリユニットを含み、かつデータを処理するように作動可能である処理要素のアレイと、
命令を受信するように接続される手段と、関連する前記命令に応じて処理要素の前記アレイに受信命令を転送するように作動可能なルーティング手段とを備えるアレイコントローラとを備えているデータ処理装置。 - 前記アレイコントローラが、受信命令をデータ処理命令およびデータ転送命令に分離する命令ランチャを備える、請求項190記載のデータ処理装置。
- 前記ルーティング手段が、
前記処理要素によるデータの処理に関するデータ処理命令を処理する処理要素命令シーケンサと、
前記処理要素へおよび/または前記処理要素からのデータ項目の転送に関するデータ転送命令を処理するデータ転送コントローラとを備えている、請求項190または191記載のデータ処理装置。 - 前記処理要素命令シーケンサが、マイクロコード命令が前記アレイのデータ処理機能に関する処理要素の前記アレイにマイクロコード命令を転送するように作動可能である請求項192記載のデータ処理装置。
- 各処理要素がさらにレジスタのセットを備え、かつ前記命令ランチャが、前記処理要素のどのレジスタが命令によってアクセスされるかを決定する手段と、前記命令が実行されている間、他の命令がこれらのレジスタにアクセスすることを防止する手段とを含む、請求項190乃至193のいずれか一項に記載のデータ処理装置。
- 前記命令ランチャが、一旦前記命令が完了したとすると、他の命令によって使用するための前記レジスタを取り外す手段を有する、請求項194記載のデータ処理装置。
- どのレジスタがデータ処理命令によってアクセスされるかを決定する際に前記命令ランチャを助ける命令テーブルをさらに備える、請求項190乃至194のいずれか一項に記載のデータ処理装置。
- 前記命令ランチャが直列実行の出現を保持すると同時に前記処理要素命令シーケンサと前記データ転送コントローラとの間の並列動作も保持する、請求項190乃至196のいずれか一項に記載のデータ処理装置。
- 前記ルーティング手段が、前記プロセッサユニットのどれが命令によって使用中であるかを記録するように作動可能なレジスタ使用モニタ手段を含む、請求項197記載のデータ処理装置。
- 複数の処理要素を含むデータ処理装置のメモリへのデータ読み出しアクセスを制御する方法であって、
前記メモリへのアクセスを必要とする処理要素を選択し、
ターゲットアドレスを選択された処理要素から検索し、
前記ターゲットアドレスを前記複数の処理要素に伝送し、
その情報が関連する前記ターゲットアドレスアクセス動作を識別するトランザクション識別情報を前記処理要素に伝送し、
前記トランザクション識別情報を前記ターゲットアドレスへのアクセスを必要とする前記または各処理要素に記憶し、
前記トランザクション識別情報とともに前記ターゲットアドレスから得られたデータを前記複数の処理要素に伝送し、
得られたデータを前記トランザクション識別情報が記憶される前記または各処理要素に記憶することとを備える、方法。 - データ項目がその中のアドレスに記憶されるメモリユニットと、前記メモリユニットにアクセスする複数の処理要素とを含むデータ処理装置のメモリユニットからデータ項目を検索する方法であって、
前記メモリユニットへのアクセスを必要とする前記アレイの各処理要素に対して、関連する前記処理要素が前記メモリユニットへのアクセスを必要とすることを示すようにアクセスインディケータをセットし、かつこのようなアクセスが必要とされる前記メモリユニットのターゲットアドレスを記憶し、
セットされた前記アクセスインディケータを有する処理要素の中の1つを選択し、かつ記憶されたターゲットアドレスをこの選択された処理要素から検索し、
検索されたターゲットアドレスおよびトランザクション識別情報を前記アレイの前記処理要素に伝送し、
セットされた前記アクセスインディケータを有する各処理要素に対して、伝送されたターゲットアドレスを記憶されたターゲットアドレスと比較し、かつ記憶されたターゲットアドレスおよび伝送されたターゲットアドレスが等しい場合、前記アクセスインディケータをクリアし、かつ前記トランザクション識別情報を記憶し、
前記メモリユニットの前記伝送されたターゲットアドレスに記憶された少なくとも1つのデータ項目を検索し、
前記検索されたデータ項目または各検索されたデータ項目および関連トランザクション識別情報を前記アレイの前記処理要素に伝送し、
記憶されたトランザクション識別情報を有する各処理要素に対して、前記記憶されたトランザクション識別情報を前記伝送されたトランザクション識別情報と比較し、かつ記憶されたトランザクション情報が伝送されたトランザクション情報に等しい場合、前記検索されたデータ項目または各検索されたデータ項目を受信することとを備える、方法。 - 前記必要とされたデータが、前記トランザクション識別情報が発生された順序で戻される、請求項199または200記載の方法。
- 前記必要とされるデータが、前記メモリから検索された順序で戻される、請求項199または200記載の方法。
- データ項目がその中のアドレスに記憶されるメモリユニットと、前記メモリユニットにアクセスする複数の処理要素とを含むデータ処理装置のメモリユニットにデータ項目を書き込む方法であって、
前記メモリユニットへのアクセスを必要とする前記アレイの各処理要素に対して、関連する前記処理要素が前記メモリユニットへのアクセスを必要とすることを示すようにアクセスインディケータをセットし、かつこのようなアクセスが必要とされる前記メモリユニットのターゲットアドレスを記憶し、
セットされた前記アクセスインディケータを有する処理要素の中の1つを選択し、かつ記憶されたターゲットアドレスをこの選択された処理要素から検索し、
検索されたターゲットアドレスおよびトランザクション識別情報を前記アレイの前記処理要素全てに伝送し、
セットされた前記アクセスインディケータを有する各処理要素に対して、伝送されたターゲットアドレスを記憶されたターゲットアドレスと比較し、かつ記憶されたターゲットアドレスおよび伝送されたターゲットアドレスが等しい場合、前記アクセスインディケータをクリアし、かつ前記トランザクション識別情報を記憶し、
トランザクション識別情報を前記アレイの前記処理要素に伝送し、
記憶されたトランザクション識別情報を有する各処理要素に対して、前記記憶されたトランザクション識別情報を前記伝送されたトランザクション情報と比較し、かつ記憶されたトランザクション情報が伝送されたトランザクション情報に等しい場合、前記ターゲットアドレスで前記メモリユニットに記憶される少なくとも1つのデータ項目を伝送し、
前記伝送されたデータ項目または各伝送されたデータ項目を前記メモリユニットの前記ターゲットアドレスに記憶することとを備える、方法。 - 処理要素が、前記ターゲットメモリアドレスのそれぞれの領域にデータ項目を記憶する、請求項203記載の方法。
- 処理要素のSIMD(単一命令複数データ)アレイと、前記処理要素によってアクセスするデータ項目を記憶するデータ記憶手段と、請求項199乃至204のいずれか一項に記載の方法に従って前記記憶手段へのアクセスを制御する制御手段とを備えている、データ処理装置。
Applications Claiming Priority (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9908209A GB2348976A (en) | 1999-04-09 | 1999-04-09 | Single instruction multiple data array |
GB9908229A GB2348983A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing system |
GB9908204A GB2348974B (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908205A GB2348975A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908214A GB2348978A (en) | 1999-04-09 | 1999-04-09 | Parallel redundant data processing apparatus |
GB9908228A GB2348982A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing system |
GB9908219A GB2348979A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing system with shared memory |
GB9908226A GB2348981A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing system with SIMD array |
GB9908225A GB2348980B (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908201A GB2348972A (en) | 1999-04-09 | 1999-04-09 | Array controller for array of processing elements |
GB9908203A GB2348973B (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908211A GB2348977A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems with a SIMD array |
GB9908199A GB2348971B (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908227A GB2349484A (en) | 1999-04-09 | 1999-04-09 | Parallel data processing system with SIMD array |
GB9908230A GB2348984B (en) | 1999-04-09 | 1999-04-09 | Parallel data processing systems |
GB9908222A GB2352306A (en) | 1999-04-09 | 1999-04-09 | Parallel processing apparatus using a SIMD array |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000611183A Division JP5285828B2 (ja) | 1999-04-09 | 2000-04-07 | 並列データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011023037A true JP2011023037A (ja) | 2011-02-03 |
Family
ID=27585628
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000611183A Expired - Lifetime JP5285828B2 (ja) | 1999-04-09 | 2000-04-07 | 並列データ処理装置 |
JP2010222022A Pending JP2011023037A (ja) | 1999-04-09 | 2010-09-30 | 並列データ処理装置 |
JP2010222021A Pending JP2011023036A (ja) | 1999-04-09 | 2010-09-30 | 並列データ処理装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000611183A Expired - Lifetime JP5285828B2 (ja) | 1999-04-09 | 2000-04-07 | 並列データ処理装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010222021A Pending JP2011023036A (ja) | 1999-04-09 | 2010-09-30 | 並列データ処理装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7363472B2 (ja) |
EP (1) | EP1181648A1 (ja) |
JP (3) | JP5285828B2 (ja) |
AU (1) | AU3829500A (ja) |
WO (1) | WO2000062182A2 (ja) |
Families Citing this family (156)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162875A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel Data Processing Apparatus |
US7526630B2 (en) * | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
US20080162874A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel data processing apparatus |
US20070242074A1 (en) * | 1999-04-09 | 2007-10-18 | Dave Stuttard | Parallel data processing apparatus |
EP1181648A1 (en) | 1999-04-09 | 2002-02-27 | Clearspeed Technology Limited | Parallel data processing apparatus |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
US20080008393A1 (en) * | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
US8174530B2 (en) * | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
US8169440B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
US8171263B2 (en) * | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
GB2370380B (en) | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
US7069422B2 (en) * | 2000-12-22 | 2006-06-27 | Modelski Richard P | Load-shift carry instruction |
US7013302B2 (en) * | 2000-12-22 | 2006-03-14 | Nortel Networks Limited | Bit field manipulation |
EP1384160A2 (en) | 2001-03-02 | 2004-01-28 | Atsana Semiconductor Corp. | Apparatus for variable word length computing in an array processor |
US7185174B2 (en) | 2001-03-02 | 2007-02-27 | Mtekvision Co., Ltd. | Switch complex selectively coupling input and output of a node in two-dimensional array to four ports and using four switches coupling among ports |
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
US7000090B2 (en) | 2002-01-21 | 2006-02-14 | Analog Devices, Inc. | Center focused single instruction multiple data (SIMD) array system |
US6941446B2 (en) * | 2002-01-21 | 2005-09-06 | Analog Devices, Inc. | Single instruction multiple data array cell |
US7480909B2 (en) * | 2002-02-25 | 2009-01-20 | International Business Machines Corporation | Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking |
US6865659B2 (en) * | 2002-06-07 | 2005-03-08 | Sun Microsystems, Inc. | Using short references to access program elements in a large address space |
US6980209B1 (en) * | 2002-06-14 | 2005-12-27 | Nvidia Corporation | Method and system for scalable, dataflow-based, programmable processing of graphics data |
US6825843B2 (en) * | 2002-07-18 | 2004-11-30 | Nvidia Corporation | Method and apparatus for loop and branch instructions in a programmable graphics pipeline |
GB2391083B (en) | 2002-07-19 | 2006-03-01 | Picochip Designs Ltd | Processor array |
JP2004362086A (ja) * | 2003-06-03 | 2004-12-24 | Matsushita Electric Ind Co Ltd | 情報処理装置および機械語プログラム変換装置 |
US7421565B1 (en) * | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7836450B2 (en) * | 2003-08-28 | 2010-11-16 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7849297B2 (en) | 2003-08-28 | 2010-12-07 | Mips Technologies, Inc. | Software emulation of directed exceptions in a multithreading processor |
JP4818918B2 (ja) * | 2003-08-28 | 2011-11-16 | ミップス テクノロジーズ インコーポレイテッド | マルチスレッド化されたマイクロプロセッサで並行命令ストリームを開始する命令 |
US7418585B2 (en) * | 2003-08-28 | 2008-08-26 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7711931B2 (en) * | 2003-08-28 | 2010-05-04 | Mips Technologies, Inc. | Synchronized storage providing multiple synchronization semantics |
US7870553B2 (en) | 2003-08-28 | 2011-01-11 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US9032404B2 (en) | 2003-08-28 | 2015-05-12 | Mips Technologies, Inc. | Preemptive multitasking employing software emulation of directed exceptions in a multithreading processor |
US7594089B2 (en) * | 2003-08-28 | 2009-09-22 | Mips Technologies, Inc. | Smart memory based synchronization controller for a multi-threaded multiprocessor SoC |
US7239322B2 (en) | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US8643659B1 (en) | 2003-12-31 | 2014-02-04 | 3Dlabs Inc., Ltd. | Shader with global and instruction caches |
GB2411745B (en) * | 2004-03-02 | 2006-08-02 | Imagination Tech Ltd | Method and apparatus for management of control flow in a simd device |
US9098932B2 (en) * | 2004-08-11 | 2015-08-04 | Ati Technologies Ulc | Graphics processing logic with variable arithmetic logic unit control and method therefor |
US7577869B2 (en) * | 2004-08-11 | 2009-08-18 | Ati Technologies Ulc | Apparatus with redundant circuitry and method therefor |
GB2417105B (en) * | 2004-08-13 | 2008-04-09 | Clearspeed Technology Plc | Processor memory system |
US7827555B2 (en) * | 2004-09-13 | 2010-11-02 | Integrated Device Technology, Inc. | Scheduler for a multiprocessing computing system |
US7634774B2 (en) * | 2004-09-13 | 2009-12-15 | Integrated Device Technology, Inc. | System and method of scheduling computing threads |
US7644255B2 (en) * | 2005-01-13 | 2010-01-05 | Sony Computer Entertainment Inc. | Method and apparatus for enable/disable control of SIMD processor slices |
US7746349B1 (en) | 2005-03-16 | 2010-06-29 | Nvidia Corporation | Method and apparatus for display of data |
CN1993709B (zh) * | 2005-05-20 | 2010-12-15 | 索尼株式会社 | 信号处理设备 |
US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
US7475197B1 (en) * | 2005-10-25 | 2009-01-06 | Nvidia Corporation | Cross process memory management |
US7447873B1 (en) | 2005-11-29 | 2008-11-04 | Nvidia Corporation | Multithreaded SIMD parallel processor with loading of groups of threads |
US7594095B1 (en) | 2005-11-29 | 2009-09-22 | Nvidia Corporation | Multithreaded SIMD parallel processor with launching of groups of threads |
US7788468B1 (en) | 2005-12-15 | 2010-08-31 | Nvidia Corporation | Synchronization of threads in a cooperative thread array |
US7584342B1 (en) | 2005-12-15 | 2009-09-01 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and SIMD instruction issue |
US7861060B1 (en) | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US8077174B2 (en) | 2005-12-16 | 2011-12-13 | Nvidia Corporation | Hierarchical processor array |
US7634637B1 (en) * | 2005-12-16 | 2009-12-15 | Nvidia Corporation | Execution of parallel groups of threads with per-instruction serialization |
US8074224B1 (en) * | 2005-12-19 | 2011-12-06 | Nvidia Corporation | Managing state information for a multi-threaded processor |
US7697007B1 (en) | 2005-12-19 | 2010-04-13 | Nvidia Corporation | Predicated launching of compute thread arrays |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
US7526634B1 (en) | 2005-12-19 | 2009-04-28 | Nvidia Corporation | Counter-based delay of dependent thread group execution |
US7865894B1 (en) | 2005-12-19 | 2011-01-04 | Nvidia Corporation | Distributing processing tasks within a processor |
US7631171B2 (en) * | 2005-12-19 | 2009-12-08 | Sun Microsystems, Inc. | Method and apparatus for supporting vector operations on a multi-threaded microprocessor |
CN101371263A (zh) * | 2006-01-10 | 2009-02-18 | 光明测量公司 | 用于在并行处理系统中处理多媒体数据的算法步骤的方法和装置 |
US7647476B2 (en) * | 2006-03-14 | 2010-01-12 | Intel Corporation | Common analog interface for multiple processor cores |
US9563433B1 (en) | 2006-09-01 | 2017-02-07 | Allsearch Semi Llc | System and method for class-based execution of an instruction broadcasted to an array of processing elements |
US20080059762A1 (en) * | 2006-09-01 | 2008-03-06 | Bogdan Mitu | Multi-sequence control for a data parallel system |
WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
US20080055307A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | Graphics rendering pipeline |
US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
US7627723B1 (en) | 2006-09-21 | 2009-12-01 | Nvidia Corporation | Atomic memory operators in a parallel processor |
US8087029B1 (en) | 2006-10-23 | 2011-12-27 | Nvidia Corporation | Thread-type-based load balancing in a multithreaded processor |
US8108872B1 (en) | 2006-10-23 | 2012-01-31 | Nvidia Corporation | Thread-type-based resource allocation in a multithreaded processor |
US8108625B1 (en) | 2006-10-30 | 2012-01-31 | Nvidia Corporation | Shared memory with parallel access and access conflict resolution mechanism |
US7680988B1 (en) | 2006-10-30 | 2010-03-16 | Nvidia Corporation | Single interconnect providing read and write access to a memory shared by concurrent threads |
US8176265B2 (en) | 2006-10-30 | 2012-05-08 | Nvidia Corporation | Shared single-access memory with management of multiple parallel requests |
US8429656B1 (en) | 2006-11-02 | 2013-04-23 | Nvidia Corporation | Thread count throttling for efficient resource utilization |
US8271746B1 (en) | 2006-11-03 | 2012-09-18 | Nvidia Corporation | Tiering of linear clients |
US7663621B1 (en) * | 2006-11-03 | 2010-02-16 | Nvidia Corporation | Cylindrical wrapping using shader hardware |
US9135017B2 (en) * | 2007-01-16 | 2015-09-15 | Ati Technologies Ulc | Configurable shader ALU units |
JP4913685B2 (ja) * | 2007-07-04 | 2012-04-11 | 株式会社リコー | Simd型マイクロプロセッサおよびsimd型マイクロプロセッサの制御方法 |
GB2454865B (en) | 2007-11-05 | 2012-06-13 | Picochip Designs Ltd | Power control |
US20090248919A1 (en) * | 2008-03-25 | 2009-10-01 | Jerzy Szwagrzyk | Method for external fifo acceleration |
US8073559B2 (en) * | 2008-06-19 | 2011-12-06 | Varian Semiconductor Equipment Associates, Inc. | Material transport systems using autonomous controls |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
KR101572879B1 (ko) | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
GB2470037B (en) | 2009-05-07 | 2013-07-10 | Picochip Designs Ltd | Methods and devices for reducing interference in an uplink |
GB2470771B (en) | 2009-06-05 | 2012-07-18 | Picochip Designs Ltd | A method and device in a communication network |
GB2470891B (en) | 2009-06-05 | 2013-11-27 | Picochip Designs Ltd | A method and device in a communication network |
WO2011040599A1 (ja) | 2009-10-02 | 2011-04-07 | シャープ株式会社 | 血管状態モニタリング装置およびモニタリング方法 |
GB2474071B (en) | 2009-10-05 | 2013-08-07 | Picochip Designs Ltd | Femtocell base station |
DE102009054637A1 (de) * | 2009-12-15 | 2011-06-16 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Recheneinheit |
US8627042B2 (en) * | 2009-12-30 | 2014-01-07 | International Business Machines Corporation | Data parallel function call for determining if called routine is data parallel |
US9173604B2 (en) | 2010-03-19 | 2015-11-03 | Sharp Kabushiki Kaisha | Measurement device, measurement method, measurement result processing device, measurement system, measurement result processing method, control program, and recording medium |
US8683185B2 (en) | 2010-07-26 | 2014-03-25 | International Business Machines Corporation | Ceasing parallel processing of first set of loops upon selectable number of monitored terminations and processing second set |
GB2482869B (en) | 2010-08-16 | 2013-11-06 | Picochip Designs Ltd | Femtocell access control |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
US8688957B2 (en) * | 2010-12-21 | 2014-04-01 | Intel Corporation | Mechanism for conflict detection using SIMD |
GB2489716B (en) | 2011-04-05 | 2015-06-24 | Intel Corp | Multimode base system |
GB2489919B (en) | 2011-04-05 | 2018-02-14 | Intel Corp | Filter |
GB2491098B (en) | 2011-05-16 | 2015-05-20 | Intel Corp | Accessing a base station |
US9183614B2 (en) | 2011-09-03 | 2015-11-10 | Mireplica Technology, Llc | Processor, system, and method for efficient, high-throughput processing of two-dimensional, interrelated data sets |
US9037931B2 (en) | 2011-12-21 | 2015-05-19 | Advanced Micro Devices, Inc. | Methods and systems for logic device defect tolerant redundancy |
EP2608558A1 (en) * | 2011-12-22 | 2013-06-26 | Thomson Licensing | System and method for adaptive streaming in a multipath environment |
WO2013100783A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Method and system for control signalling in a data path module |
US9411592B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Vector address conflict resolution with vector population count functionality |
US9411584B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality |
KR102102166B1 (ko) | 2013-04-22 | 2020-04-21 | 삼성전자 주식회사 | 심드 구조 기반의 쓰레드 분기 관리 장치 및 방법 |
US9274904B2 (en) * | 2013-06-18 | 2016-03-01 | Advanced Micro Devices, Inc. | Software only inter-compute unit redundant multithreading for GPUs |
US9218291B2 (en) * | 2013-07-25 | 2015-12-22 | International Business Machines Corporation | Implementing selective cache injection |
US9934043B2 (en) * | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
JP2016066218A (ja) * | 2014-09-24 | 2016-04-28 | 株式会社ソシオネクスト | プロセッサ、半導体集積回路、及びベクトル命令の処理方法 |
KR102497849B1 (ko) | 2016-05-09 | 2023-02-07 | 삼성전자주식회사 | 분석물질 농도 예측 방법 및 장치 |
US10699362B2 (en) * | 2016-06-23 | 2020-06-30 | Intel Corporation | Divergent control flow for fused EUs |
US20180005059A1 (en) * | 2016-07-01 | 2018-01-04 | Google Inc. | Statistics Operations On Two Dimensional Image Processor |
US10616316B2 (en) | 2016-09-15 | 2020-04-07 | International Business Machines Corporation | Processing element host management in a stream computing environment |
US10162680B2 (en) * | 2016-12-13 | 2018-12-25 | GM Global Technology Operations LLC | Control of data exchange between a primary core and a secondary core using a freeze process flag and a data frozen flag in real-time |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
JP2018165913A (ja) * | 2017-03-28 | 2018-10-25 | 富士通株式会社 | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US20190303297A1 (en) * | 2018-04-02 | 2019-10-03 | Intel Corporation | Apparatus, methods, and systems for remote memory access in a configurable spatial accelerator |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) * | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
DE102018115902A1 (de) | 2018-07-01 | 2020-01-02 | Oliver Bartels | SIMD-Prozessor mit CAM zur Operandenauswahl nach Mustererkennung |
GB2578320B (en) | 2018-10-23 | 2023-07-05 | Advanced Risc Mach Ltd | Graphics processing |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US11074213B2 (en) * | 2019-06-29 | 2021-07-27 | Intel Corporation | Apparatuses, methods, and systems for vector processor architecture having an array of identical circuit blocks |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US11500811B2 (en) * | 2020-06-12 | 2022-11-15 | Alibaba Group Holding Limited | Apparatuses and methods for map reduce |
KR20230087553A (ko) * | 2020-10-15 | 2023-06-16 | 아세니움 인코포레이티드 | 백그라운드 로드를 갖는 병렬 처리 아키텍처 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62274454A (ja) * | 1986-05-23 | 1987-11-28 | Hitachi Ltd | 並列処理計算機 |
JPH03132861A (ja) * | 1989-10-19 | 1991-06-06 | Agency Of Ind Science & Technol | マルチプロセッサ・システムの再構成制御方式 |
JPH0668053A (ja) * | 1992-08-20 | 1994-03-11 | Toshiba Corp | 並列計算機 |
JPH06131309A (ja) * | 1992-10-21 | 1994-05-13 | Sanyo Electric Co Ltd | 並列計算機システム |
JPH06231092A (ja) * | 1992-05-22 | 1994-08-19 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム |
JPH07253957A (ja) * | 1994-03-15 | 1995-10-03 | Hitachi Ltd | 並列プロセッサの切替え制御方式 |
JPH08503563A (ja) * | 1992-11-13 | 1996-04-16 | ザ・ユニヴァーシティ・オヴ・ノース・キャロライナ・アト・チャペル・ヒル | 画像発生アーキテクチャおよび装置 |
JPH0926888A (ja) * | 1995-07-13 | 1997-01-28 | Hitachi Ltd | 排他制御装置 |
JPH09288652A (ja) * | 1996-04-23 | 1997-11-04 | Nec Corp | 並列プロセッサの冗長切り替え装置 |
JPH10133872A (ja) * | 1996-10-29 | 1998-05-22 | Fujitsu Ltd | 命令バッファを有するプロセッサ装置 |
JPH10187631A (ja) * | 1996-07-02 | 1998-07-21 | Sun Microsyst Inc | 拡張された対称マルチプロセッサ・アーキテクチャ |
Family Cites Families (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3537074A (en) * | 1967-12-20 | 1970-10-27 | Burroughs Corp | Parallel operating array computer |
FR2253418A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2253420A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2253423A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4229790A (en) * | 1978-10-16 | 1980-10-21 | Denelcor, Inc. | Concurrent task and instruction processor and method |
US4314349A (en) | 1979-12-31 | 1982-02-02 | Goodyear Aerospace Corporation | Processing element for parallel array processors |
US4435758A (en) * | 1980-03-10 | 1984-03-06 | International Business Machines Corporation | Method for conditional branch execution in SIMD vector processors |
GB2074351B (en) | 1980-03-28 | 1984-01-04 | Int Computers Ltd | Data processing system |
FI66995C (fi) | 1980-06-12 | 1984-12-10 | Elevator Gmbh | Foerfarande och anordning foer att oeverfoera data mellanprocessorer i ett flerprocessorsystem |
US4590465A (en) | 1982-02-18 | 1986-05-20 | Henry Fuchs | Graphics display system using logic-enhanced pixel memory cells |
US4484273A (en) * | 1982-09-03 | 1984-11-20 | Sequoia Systems, Inc. | Modular computer system |
US4602328A (en) * | 1982-12-17 | 1986-07-22 | L'etat Francais Represente Par Le Ministre Des P.T.T. (Centre National D'etudes Des Telecommunications) | Management system for the memory of a processor or microprocessor |
JPS59136859A (ja) * | 1983-01-27 | 1984-08-06 | Nec Corp | バツフア制御装置 |
US5247689A (en) * | 1985-02-25 | 1993-09-21 | Ewert Alfred P | Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments |
US5113523A (en) | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
US4972314A (en) | 1985-05-20 | 1990-11-20 | Hughes Aircraft Company | Data flow signal processor method and apparatus |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
US4739476A (en) | 1985-08-01 | 1988-04-19 | General Electric Company | Local interconnection scheme for parallel processing architectures |
US4907148A (en) * | 1985-11-13 | 1990-03-06 | Alcatel U.S.A. Corp. | Cellular array processor with individual cell-level data-dependent cell control and multiport input memory |
US4835729A (en) * | 1985-12-12 | 1989-05-30 | Alcatel Usa, Corp. | Single instruction multiple data (SIMD) cellular array processing apparatus with on-board RAM and address generator apparatus |
GB8605366D0 (en) * | 1986-03-05 | 1986-04-09 | Secr Defence | Digital processor |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
CA1293819C (en) * | 1986-08-29 | 1991-12-31 | Thinking Machines Corporation | Very large scale computer |
US4985832A (en) * | 1986-09-18 | 1991-01-15 | Digital Equipment Corporation | SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors |
US5230079A (en) * | 1986-09-18 | 1993-07-20 | Digital Equipment Corporation | Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register |
US5175865A (en) * | 1986-10-28 | 1992-12-29 | Thinking Machines Corporation | Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers |
US5165023A (en) * | 1986-12-17 | 1992-11-17 | Massachusetts Institute Of Technology | Parallel processing system with processor array and network communications system for transmitting messages of variable length |
US5127104A (en) * | 1986-12-29 | 1992-06-30 | Dataflow Computer Corporation | Method and product involving translation and execution of programs by automatic partitioning and data structure allocation |
FR2622989B1 (fr) * | 1987-11-06 | 1992-11-27 | Thomson Csf | Machine multiprocesseur reconfigurable pour traitement du signal |
US5081575A (en) | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
CA1309198C (en) | 1987-12-10 | 1992-10-20 | Carlo J. Evangelisti | Parallel rendering of smoothly shaded color triangles with anti-aliased edges for a three dimensional color display |
US4939638A (en) * | 1988-02-23 | 1990-07-03 | Stellar Computer Inc. | Time sliced vector processing |
GB2216306A (en) | 1988-02-29 | 1989-10-04 | Ardent Computer Corp | Load and synchronize computer architecture and process |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5038282A (en) * | 1988-05-11 | 1991-08-06 | Massachusetts Institute Of Technology | Synchronous processor with simultaneous instruction processing and data transfer |
US4970724A (en) | 1988-12-22 | 1990-11-13 | Hughes Aircraft Company | Redundancy and testing techniques for IC wafers |
US5151969A (en) * | 1989-03-29 | 1992-09-29 | Siemens Corporate Research Inc. | Self-repairing trellis networks |
EP0424618A3 (en) | 1989-10-24 | 1992-11-19 | International Business Machines Corporation | Input/output system |
JP2835103B2 (ja) | 1989-11-01 | 1998-12-14 | 富士通株式会社 | 命令指定方法及び命令実行方式 |
GB8925721D0 (en) | 1989-11-14 | 1990-01-04 | Amt Holdings | Processor array system |
US6070003A (en) | 1989-11-17 | 2000-05-30 | Texas Instruments Incorporated | System and method of memory access in apparatus having plural processors and plural memories |
US5339447A (en) | 1989-11-17 | 1994-08-16 | Texas Instruments Incorporated | Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data |
US5239654A (en) | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
US5522083A (en) | 1989-11-17 | 1996-05-28 | Texas Instruments Incorporated | Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors |
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 |
JP3102495B2 (ja) * | 1989-12-28 | 2000-10-23 | 株式会社日立製作所 | 仮想記憶管理方法 |
US5185872A (en) | 1990-02-28 | 1993-02-09 | Intel Corporation | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy |
US5276886A (en) * | 1990-10-11 | 1994-01-04 | Chips And Technologies, Inc. | Hardware semaphores in a multi-processor environment |
US5625836A (en) | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5734921A (en) | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5828894A (en) | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5175858A (en) * | 1991-03-04 | 1992-12-29 | Adaptive Solutions, Inc. | Mechanism providing concurrent computational/communications in SIMD architecture |
JP2743608B2 (ja) * | 1991-03-27 | 1998-04-22 | 日本電気株式会社 | 共有レジスタ制御方式 |
US5522080A (en) * | 1991-10-24 | 1996-05-28 | Intel Corporation | Centralized control SIMD processor having different priority levels set for each data transfer request type and successively repeating the servicing of data transfer request in a predetermined order |
CA2073516A1 (en) * | 1991-11-27 | 1993-05-28 | Peter Michael Kogge | Dynamic multi-mode parallel processor array architecture computer system |
JP2642039B2 (ja) | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
JP2878538B2 (ja) * | 1992-12-03 | 1999-04-05 | 富士通株式会社 | データ処理装置及びデータ処理方法 |
GB2273377A (en) | 1992-12-11 | 1994-06-15 | Hughes Aircraft Co | Multiple masks for array processors |
US5437045A (en) * | 1992-12-18 | 1995-07-25 | Xerox Corporation | Parallel processing with subsampling/spreading circuitry and data transfer circuitry to and from any processing unit |
US5457779A (en) | 1993-01-15 | 1995-10-10 | Silicon Graphics, Inc. | System for accessing graphic data in a SIMD processing environment |
US5825921A (en) | 1993-03-19 | 1998-10-20 | Intel Corporation | Memory transfer apparatus and method useful within a pattern recognition system |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JP3199205B2 (ja) * | 1993-11-19 | 2001-08-13 | 株式会社日立製作所 | 並列演算装置 |
US5745778A (en) | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US5606683A (en) * | 1994-01-28 | 1997-02-25 | Quantum Effect Design, Inc. | Structure and method for virtual-to-physical address translation in a translation lookaside buffer |
CN1107597A (zh) | 1994-02-24 | 1995-08-30 | 吴乾弥 | 管线式与心跳式及单指令多数据流的阵列处理架构及方法 |
US5487022A (en) | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Normalization method for floating point numbers |
US5673407A (en) | 1994-03-08 | 1997-09-30 | Texas Instruments Incorporated | Data processor having capability to perform both floating point operations and memory access in response to a single instruction |
US5652872A (en) * | 1994-03-08 | 1997-07-29 | Exponential Technology, Inc. | Translator having segment bounds encoding for storage in a TLB |
WO1995028686A1 (en) | 1994-04-15 | 1995-10-26 | David Sarnoff Research Center, Inc. | Parallel processing computer containing a multiple instruction stream processing architecture |
JP3308770B2 (ja) | 1994-07-22 | 2002-07-29 | 三菱電機株式会社 | 情報処理装置および情報処理装置における計算方法 |
US5590356A (en) * | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
US5649135A (en) * | 1995-01-17 | 1997-07-15 | International Business Machines Corporation | Parallel processing system and method using surrogate instructions |
US5630160A (en) | 1995-03-08 | 1997-05-13 | Texas Instruments Incorporated | Floating point exponent compare using repeated two bit compare cell |
US5752031A (en) * | 1995-04-24 | 1998-05-12 | Microsoft Corporation | Queue object for controlling concurrency in a computer system |
US6112019A (en) | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5808690A (en) * | 1996-01-02 | 1998-09-15 | Integrated Device Technology, Inc. | Image generation system, methods and computer program products using distributed processing |
US5850489A (en) * | 1996-01-02 | 1998-12-15 | Integrated Device Technology, Inc. | Linear expression evaluator |
US5831625A (en) * | 1996-01-02 | 1998-11-03 | Integrated Device Technology, Inc. | Wavelet texturing |
US5892517A (en) * | 1996-01-02 | 1999-04-06 | Integrated Device Technology, Inc. | Shared access texturing of computer graphic images |
US6108460A (en) * | 1996-01-02 | 2000-08-22 | Pixelfusion Limited | Load balanced image generation |
US5835925A (en) | 1996-03-13 | 1998-11-10 | Cray Research, Inc. | Using external registers to extend memory reference capabilities of a microprocessor |
US6104842A (en) * | 1996-06-10 | 2000-08-15 | Integrated Device Technology, Inc. | Geometry processing of digital video models and images |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US6154225A (en) | 1996-10-11 | 2000-11-28 | Silicon Motion, Inc. | Virtual refresh™ architecture for a video-graphics controller |
US6016395A (en) | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US6697063B1 (en) | 1997-01-03 | 2004-02-24 | Nvidia U.S. Investment Company | Rendering pipeline |
US5796385A (en) * | 1997-01-28 | 1998-08-18 | Integrated Device Technology, Inc. | Luminance controlled color resolution reduction |
US5949426A (en) * | 1997-01-28 | 1999-09-07 | Integrated Device Technology, Inc. | Non-linear texture map blending |
US6055619A (en) | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
US6131151A (en) | 1997-11-12 | 2000-10-10 | Lsi Logic Corporation | Processing high-speed digital datastreams with reduced memory |
US6055579A (en) | 1997-11-17 | 2000-04-25 | Silicon Graphics, Inc. | Distributed control and synchronization of multiple data processors using flexible command queues |
US6173389B1 (en) | 1997-12-04 | 2001-01-09 | Billions Of Operations Per Second, Inc. | Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor |
US6259460B1 (en) | 1998-03-26 | 2001-07-10 | Silicon Graphics, Inc. | Method for efficient handling of texture cache misses by recirculation |
US6173388B1 (en) | 1998-04-09 | 2001-01-09 | Teranex Inc. | Directly accessing local memories of array processors for improved real-time corner turning processing |
US6266759B1 (en) * | 1998-12-14 | 2001-07-24 | Cray, Inc. | Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor |
US6304955B1 (en) | 1998-12-30 | 2001-10-16 | Intel Corporation | Method and apparatus for performing latency based hazard detection |
US6308252B1 (en) * | 1999-02-04 | 2001-10-23 | Kabushiki Kaisha Toshiba | Processor method and apparatus for performing single operand operation and multiple parallel operand operation |
EP1181648A1 (en) | 1999-04-09 | 2002-02-27 | Clearspeed Technology Limited | Parallel data processing apparatus |
US8171263B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US20080008393A1 (en) | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
CN1993709B (zh) * | 2005-05-20 | 2010-12-15 | 索尼株式会社 | 信号处理设备 |
US7447873B1 (en) * | 2005-11-29 | 2008-11-04 | Nvidia Corporation | Multithreaded SIMD parallel processor with loading of groups of threads |
US20080059762A1 (en) * | 2006-09-01 | 2008-03-06 | Bogdan Mitu | Multi-sequence control for a data parallel system |
-
2000
- 2000-04-07 EP EP00917203A patent/EP1181648A1/en not_active Withdrawn
- 2000-04-07 AU AU38295/00A patent/AU3829500A/en not_active Abandoned
- 2000-04-07 WO PCT/GB2000/001332 patent/WO2000062182A2/en not_active Application Discontinuation
- 2000-04-07 JP JP2000611183A patent/JP5285828B2/ja not_active Expired - Lifetime
-
2001
- 2001-10-09 US US09/972,797 patent/US7363472B2/en not_active Expired - Fee Related
-
2006
- 2006-12-22 US US11/615,849 patent/US20080040575A1/en not_active Abandoned
-
2007
- 2007-01-31 US US11/669,868 patent/US7925861B2/en not_active Expired - Fee Related
-
2010
- 2010-09-30 JP JP2010222022A patent/JP2011023037A/ja active Pending
- 2010-09-30 JP JP2010222021A patent/JP2011023036A/ja active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62274454A (ja) * | 1986-05-23 | 1987-11-28 | Hitachi Ltd | 並列処理計算機 |
JPH03132861A (ja) * | 1989-10-19 | 1991-06-06 | Agency Of Ind Science & Technol | マルチプロセッサ・システムの再構成制御方式 |
JPH06231092A (ja) * | 1992-05-22 | 1994-08-19 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム |
JPH0668053A (ja) * | 1992-08-20 | 1994-03-11 | Toshiba Corp | 並列計算機 |
JPH06131309A (ja) * | 1992-10-21 | 1994-05-13 | Sanyo Electric Co Ltd | 並列計算機システム |
JPH08503563A (ja) * | 1992-11-13 | 1996-04-16 | ザ・ユニヴァーシティ・オヴ・ノース・キャロライナ・アト・チャペル・ヒル | 画像発生アーキテクチャおよび装置 |
JPH07253957A (ja) * | 1994-03-15 | 1995-10-03 | Hitachi Ltd | 並列プロセッサの切替え制御方式 |
JPH0926888A (ja) * | 1995-07-13 | 1997-01-28 | Hitachi Ltd | 排他制御装置 |
JPH09288652A (ja) * | 1996-04-23 | 1997-11-04 | Nec Corp | 並列プロセッサの冗長切り替え装置 |
JPH10187631A (ja) * | 1996-07-02 | 1998-07-21 | Sun Microsyst Inc | 拡張された対称マルチプロセッサ・アーキテクチャ |
JPH10133872A (ja) * | 1996-10-29 | 1998-05-22 | Fujitsu Ltd | 命令バッファを有するプロセッサ装置 |
Also Published As
Publication number | Publication date |
---|---|
US7363472B2 (en) | 2008-04-22 |
JP2002541586A (ja) | 2002-12-03 |
US20080040575A1 (en) | 2008-02-14 |
JP5285828B2 (ja) | 2013-09-11 |
EP1181648A1 (en) | 2002-02-27 |
WO2000062182A2 (en) | 2000-10-19 |
AU3829500A (en) | 2000-11-14 |
US20070226458A1 (en) | 2007-09-27 |
US7925861B2 (en) | 2011-04-12 |
US20020174318A1 (en) | 2002-11-21 |
JP2011023036A (ja) | 2011-02-03 |
WO2000062182A3 (en) | 2001-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5285828B2 (ja) | 並列データ処理装置 | |
US7526630B2 (en) | Parallel data processing apparatus | |
US7506136B2 (en) | Parallel data processing apparatus | |
US8762691B2 (en) | Memory access consolidation for SIMD processing elements using transaction identifiers | |
US8171263B2 (en) | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions | |
US7802079B2 (en) | Parallel data processing apparatus | |
US20080008393A1 (en) | Parallel data processing apparatus | |
US20080007562A1 (en) | Parallel data processing apparatus | |
US20160283241A1 (en) | Parallel data processing apparatus | |
US7627736B2 (en) | Thread manager to control an array of processing elements | |
US20070294510A1 (en) | Parallel data processing apparatus | |
US7966475B2 (en) | Parallel data processing apparatus | |
US8169440B2 (en) | Parallel data processing apparatus | |
US8174530B2 (en) | Parallel date processing apparatus | |
US20070242074A1 (en) | Parallel data processing apparatus | |
US20080162874A1 (en) | Parallel data processing apparatus | |
US20080016318A1 (en) | Parallel data processing apparatus | |
GB2348971A (en) | Accessing a memory unit in a parallel data processing system | |
US20080162875A1 (en) | Parallel Data Processing Apparatus | |
GB2348976A (en) | Single instruction multiple data array | |
GB2348978A (en) | Parallel redundant data processing apparatus | |
GB2348982A (en) | Parallel data processing system | |
GB2348984A (en) | Parallel data processing system | |
GB2348973A (en) | SIMD array with array controller | |
GB2348972A (en) | Array controller for array of processing elements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101029 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101029 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20101105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110411 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110411 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20110419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130516 |