JP2009512917A - スケーラブルなマルチスレッド型メディア処理アーキテクチャ - Google Patents
スケーラブルなマルチスレッド型メディア処理アーキテクチャ Download PDFInfo
- Publication number
- JP2009512917A JP2009512917A JP2008532869A JP2008532869A JP2009512917A JP 2009512917 A JP2009512917 A JP 2009512917A JP 2008532869 A JP2008532869 A JP 2008532869A JP 2008532869 A JP2008532869 A JP 2008532869A JP 2009512917 A JP2009512917 A JP 2009512917A
- Authority
- JP
- Japan
- Prior art keywords
- data
- execution
- task
- address
- data storage
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000013500 data storage Methods 0.000 claims abstract description 50
- 238000009877 rendering Methods 0.000 claims abstract description 12
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009849 deactivation Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000010521 absorption reaction Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000004148 unit process 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/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/3824—Operand accessing
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
Description
このことは、処理パイプライン内のデータ記憶の管理を、同じパイプライン内の処理スレッドの割り当て、及び、実行リソースの競合に基づいた命令のスケジューリングと区別する3フェーズ・スケジューリング・システムを用いて行なわれる。
一実施形態は、データ・ソース内で長時間ブロックされるのを回避するための手段を含むことが好ましい。
一実施形態は、プログラム可能なデータ・シーケンサを介して、データを統一された記憶領域にロードするための方法を含むことが好ましい。
一実施形態は、データが正しい順序で処理されることを保証する方法を提供することが好ましい。
この方法は、タイル・ベースのレンダリング・システムにおいて実現できることが好ましい。
本発明の実施形態は、異なるマルチプロセッサ・コアによってスケーラブルである(ここで、各々のマルチプロセッサ・コアは、タイルの異なるセクタに合致され、取り付けられたパイプラインの数に基づいてタイルのサイズを調整することができ、頂点データは、プリスケジューリング・ブロックを用いてパイプラインにわたって均一に分散され、ベント・プロセッサは、プリスケジューリング・ブロックによって同じくパイプラインにわたって均一に分散される)ことが好ましい。
図1は、システムを有するスケジューリング・フェーズを示す。第1のフェーズは、110において、プロセッサ記憶リソース(Processor Storage Resource)140において使用可能な十分なリソースがあることに基づいて、使用可能なソース100から入力のデータ・ソースを選択することで開始する。次に、120において、プロセッサ記憶リソースの割り当てが行なわれ、記憶装置内のデータ・アドレスがもたらされる。次に、130において、このアドレスを用いて、選択されたソースのサービスに必要とされるデータをロードする。次に、150において、(これらに限られるものではないが)発信データ・ソースID、データ・ソース100によって与えられる実行アドレス、及びデータ・アドレスからなるタスクが構成される。次に、生成されたタスクは、タスク・キュー160に挿入される。
スレッド・マネージャ1026に出すことができるタスクについて、タスク・キューがタスク制御ユニット(TCU)1024によって走査され、これは、
・未解決の実行依存性を有しておらず、
・その一時的記憶の割り当て、及びデータ・インスタンスの特定の最小数(データ・マスター最小サービス・カウントと同じ数)についての実行スレッドの数、又は
・その年齢が許容可能な最大数に達した又はこれを超えた、
任意のタスクである。
外部依存性は、条件が解除されるまでタスクの実行をブロックするMTMPの外部にあるハードウェアの部分から与えられる条件である。例えば、タスクは、進行する前に、処理パイプライン1040の1つを終了することを必要とすることがある。
サービスのためのタスクが選択されると、図1のスケジューリング・フェーズ2に概略的に示されるように、そのデータ・インスタンスは、それら及び必要とされる一時的レジスタ・リソースが使用可能になるため、スレッドに分散される。一時的レジスタ記憶はまた、共有のデータ・ストア1036からも割り当てられ、該ストアは、入力、出力、及び一時的記憶領域の間で固定された方法で予め分けられ、次に独立して管理される。入力及び一時的記憶は、組み合わされて単一の区画にされ、どちらもスケジューリングのフェーズ1に割り当てられるが、このことは、必要以上に長く一時的記憶を保有するという不利な点を有する。
・コード・キャッシュ・ミス
・現在無効な状態コードに依存するブランチ
・まだ戻されていない外部メモリ読み出しからのデータ
・別のスレッドが現在所有していないセマフォーを獲得しようとする試み
・待機同期
である。
アクティブなスレッドの選択のための待ち時間を最小にするために、いずれかの顕著な依存性が終了するとすぐに、スレッド・マネージャは、非アクティブなスレッドの状態を更新する。
本発明の好ましい実施形態において、システムは、タイル・ベース型レンダリング・システム内で使用するように適合される。
テキスチャリング・シェーディング・ユニットは、HSRユニットからデータを取得し、それを用いてテキスチャをフェッチし、周知の技術を用いて可視オブジェクト内の各ピクセルにシェーディングを適用する。
イベント・データ・マスター(EDM)1824には、システム内の他のデータ・マスター及びホストからのイベントが提供され、処理システム・イベント及び一般的なコマンドのために、アーキテクチャを用いることが可能になり、これらのイベントをサービスするために、ホスト・プロセッサに割り込む必要性を回避する。
データ処理に対する手法は、使用可能な幾つかの付加的な機能と共に前に述べられたとおりである。具体的には、PDSは、今や、ピクセル・データについて、1組の座標イテレータ1810又はテキスチャリング・ユニット1866を介して、データを共有データ・ストアにロードすることもできる。
頂点処理は、前に述べたような一般的なデータ・ソースと類似した方法で機能し、処理された頂点ごとに、タイリング・エンジンに発行が行われる。
頂点処理の場合、使用可能なパイプラインにわたって入ってくるプリミティブ・データを分散させることによって、スケーラビリティを達成することができる。一般に、このことは、簡単なラウンドロビン機構を用いて、又は、最も忙しくないパイプラインに頂点のブロックを送ることによって行なわれる。ラウンドロビン機構は、パイプラインにおいて後にタイリング機構を簡単化するので、好ましいものである。
前述のように、HSTユニット2200は、入ってくるタイリングされたパラメータ・リストを処理する。上述のように、ピクセル・データ・マスター2230及び2231は、それぞれHSRユニットのタグ・バッファの異なる部分にマッピングされる。各々のPDMは、特有のメディア処理コア2250、2251専用のものである。テキスチャリング・パイプライン(2260、2261)及びピクセル処理パイプライン(2270、2271)は、メディア処理コアと共に複製される。前に述べられたように、タイルが終了すると、処理されたピクセル・データは、MTMPのものからピクセル処理ユニット2270、2271に送られる。ピクセル処理ユニットは、それらの割り当てがメモリ内に格納されたピクセルに対して重ならならず、それらをピクセル処理パイプラインの残りと共に直接スケーラブルにするので、処理ユニットと共に複製される。
Claims (63)
- 複数の実行スレッドにおいて多数のデータ・ストリームを処理する方法であって、
データ記憶手段内の記憶の可用性に基づいて、複数のデータ・ソースの少なくとも1つからデータを選択し、
そのように選択された前記データについての、前記データ記憶手段内のアドレスを割り当て、
そのように割り当てられた前記データ・アドレスにおいて選択されたデータをロードし、
前記選択されたデータ・ソース、前記データ・アドレス、及び実行アドレスを含む実行タスクを構成し、
前に構成された他のタスクと共に前記タスクをキューに入れ、
各々のタスクについてどの処理リソースが必要とされるかを判断し、
使用可能な前記処理リソースに基づいて、実行のためのタスクを選択し、
複数の処理スレッドにわたって実行のための選択されたタスクを分散させ、
データ依存性のために前記スレッドのいずれかが停止するかどうかを判断し、
前記データ依存性のために停止することはない、アクティブなスレッドのサブセットを繰り返し選択し、
アクティブなスレッドを実行する、
ステップを含むことを特徴とする方法。 - 各々のデータ・ソースは、各々が前記データ・ソースのいずれかにおける他のデータと無関係に処理することが可能なデータの量である、複数のデータ・インスタンスを含むことを特徴とする請求項1に記載の方法。
- 各々のデータ・ソースは、最小のデータ・インスタンス・カウントを、前記選択するステップに提供することを特徴とする請求項2に記載の方法。
- データ・ソースは、前記最小のデータ・インスタンス・カウントに基づいて選択されることを特徴とする請求項3に記載の方法。
- 前記選択するステップは、データ・ソースから複数のデータ・インスタンスを選択し、それらを前記割り当てるステップ及び前記ロードするステップに提供し、タスクを構成することを特徴とする請求項2、請求項3、又は請求項4に記載の方法。
- 前記実行のためのタスクを選択するステップは、タスクの実行依存性に基づいてタスクを選択することを特徴とする、前記請求項のいずれかに記載の方法。
- 前記実行依存性は、外部依存性及び内部依存性を含むことを特徴とする請求項6に記載の方法。
- 実行依存性を有するタスクをブロックするステップを含むことを特徴とする請求項6又は請求項7に記載の方法。
- 前記タスクを分散させるステップは、タスクから複数の実行スレッドにデータ・インスタンスを分散させるステップを含むことを特徴とする前記請求項のいずれかに記載の方法。
- タスクの実行が拒否されるたびに、タスクについての年齢カウンタを増加させるステップを含むことを特徴とする前記請求項のいずれかに記載の方法。
- 前記年齢カウンタが所定値を超えたときにタスクを実行するステップを含むことを特徴とする請求項10に記載の方法。
- タイル・ベース・レンダリング・システムにおいて用いるための前記請求項のいずれかに記載の方法。
- 前記選択されたデータをロードするステップは、コード実行アドレスをプログラム可能なデータ・シーケンサ(PDS)に提供し、前記コード実行アドレスからのコードを実行して、前記データを前記データ記憶手段に書き込ませるステップを含むことを特徴とする、前記請求項のいずれかに記載の方法。
- 前記コードの前記実行により、データが、前記データ・ソースから前記データ記憶手段に直接書き込まれることを特徴とする請求項13に記載の方法。
- 前記コードの前記実行により、データが、別のデータ記憶場所からフェッチされ、前記データ記憶手段に書き込まれることを特徴とする、請求項13又は請求項14に記載の方法。
- 前記PDSは、マルチスレッド型処理手段におけるスレッドを含むことを特徴とする請求項13、請求項14、又は請求項15に記載の方法。
- データ・ソースが選択されるたびに、前記記憶手段内の入力データ記憶を割り当てるステップを含むことを特徴とする、前記請求項のいずれかに記載の方法。
- データ・ソースは、同じ出力バッファを共有する複数のデータ・インスタンスを含み、前記同じ出力バッファ要件を共有する前記データ・インスタンスが使い果たされたことを前記データ・ソースが知らせるまで、これらのデータ・インスタンスの第1のものだけにおいて出力データ記憶を割り当てることを特徴とする請求項2に記載の方法。
- 前記方法は、複数の処理コア上で実行され、異なる処理コアを異なるタイルの部分に割り当てるステップを含むことを特徴とする請求項12に記載の方法。
- 前記複数の処理コアから入手可能なプロセッサ・パイプラインの数に基づいて、前記タイルのサイズを選択するステップを含むことを特徴とする請求項19に記載の方法。
- 頂点データを受け取り、これを使用可能な前記プロセッサ・パイプラインにわたって分散させるステップを含むことを特徴とする請求項20に記載の方法。
- ピクセル・データを受け取り、これを使用可能な前記プロセッサ・パイプラインにわたって分散させるステップを含むことを特徴とする請求項20又は請求項21に記載の方法。
- 前記コードの実行により、テキスチャ座標又はイテレータ内で反復される他のデータが、前記データ記憶手段に直接書き込まれることを特徴とする請求項13に記載の方法。
- 前記コードの実行により、テキスチャ・データがサンプリングされ、フィルタにかけられ、前記データ記憶手段に書き込まれることを特徴とする請求項13に記載の方法。
- 多数のデータ・ストリームを処理するための装置であって、
複数のデータ・ソースと、
データ記憶手段内の記憶の可用性に基づいて、前記複数のデータ・ソースからデータ・ソースを選択するための手段と、
選択されたデータ・ソースについての、前記データ記憶手段内のアドレスを割り当てるための手段と、
前記選択されたデータ・ソースについてのデータを前記記憶手段内の前記アドレスにロードするための手段と、
前記選択されたデータ・ソース、実行アドレス、及び前記データ・アドレスを含む、実行されるタスクを構成するための手段と、
構成されたタスクについてのタスク・キューと、
処理リソースの可用性に基づいて、実行のためのタスクを選択するための手段と、
選択されたタスクを複数の実行スレッドにわたって分散させるための手段と、
データ依存性のためにいずれかのスレッドが停止するかどうかを判断するための手段と、
前記データ依存性のために停止することはない、アクティブなスレッドのサブセットを繰り返し選択するための手段と、
アクティブなスレッドを実行するための手段と、
を備えることを特徴とする装置。 - 各々のデータ・ソースは、各々が前記データ・ソースのいずれかの中の他のデータを参照することなく処理できるデータ量である、複数のデータ・インスタンスを含むことを特徴とする請求項25に記載の装置。
- 各々のデータ・ソースは、最小のデータ・インスタンス・カウントを、前記選択する手段に提供することを特徴とする請求項26に記載の装置。
- 前記選択する手段は、前記最小のデータ・インスタンス・カウントに基づいて、データ・ソースを選択することを特徴とする請求項27に記載の装置。
- 前記選択する手段は、前記データ・ソースから複数のデータ・インスタンスを選択し、前記タスク構成手段によって使用するために、これらを前記割り当てる手段及び前記ロードする手段に提供することを特徴とする、請求項26、請求項27、又は請求項28のいずれかに記載の装置。
- 前記選択する手段は、タスクの実行依存性に基づいて、実行のためのタスクを選択することを特徴とする、請求項25から請求項29までのいずれかに記載の装置。
- 前記実行依存性は、外部依存性及び内部依存性を含むことを特徴とする請求項30に記載の装置。
- 実行依存性を有するタスクをブロックするための手段を含むことを特徴とする、請求項30又は請求項31に記載の装置。
- 前記タスクを分散させるための手段は、タスクから複数の実行スレッドにデータ・インスタンスを分散させるための手段を含むことを特徴とする、請求項25から請求項32までのいずれかに記載の装置。
- タスクの実行が拒否されるたびに、タスクについての年齢カウンタを増加させるための手段を含むことを特徴とする、請求項25から請求項33までのいずれかに記載の装置。
- 前記実行する手段は、その年齢カウンタが所定値を超えたときにタスクを実行することを特徴とする請求項34に記載の装置。
- タイル・ベース・レンダリング・システムで用いるための請求項25から請求項35までのいずれかに記載の装置。
- コード実行アドレスをプログラム可能なデータ・シーケンサ(PDS)に提供するための手段と、前記コード実行アドレスからの前記コードを実行して、データを前記データ記憶手段に書き込ませるための手段とを含むことを特徴とする、請求項25から請求項36までのいずれかに記載の装置。
- 前記コードを実行するための前記手段により、データが、前記データ・ソースから前記データ記憶手段に直接書き込まれることを特徴とする請求項37に記載の装置。
- 前記コードを実行するための前記手段により、データが、別のデータ記憶場所からフェッチされ、前記データ記憶手段に書き込まれることを特徴とする請求項37に記載の装置。
- 前記コードを実行するための前記手段により、テキスチャ座標又は反復ユニット内で反復される他のデータが、前記データ記憶手段に直接書き込まれることを特徴とする請求項37に記載の装置。
- 前記コードを実行するための前記手段により、テキスチャ・データがサンプリングされ、フィルタにかけられ、テキスチャリング・エンジンにより前記データ記憶手段に書き込まれることを特徴とする請求項37に記載の装置。
- 前記PDSは、マルチスレッド型プロセッサにおけるスレッドを含むことを特徴とする請求項37に記載の装置。
- データ記憶装置内のアドレスを割り当てるための前記手段は、データ・ソースが選択されるたびにアドレスを割り当てることを特徴とする、請求項25から請求項42までのいずれかに記載の装置。
- データ・ソースは、同じ出力バッファを共有する複数のデータ・インスタンスを含み、データ記憶を割り当てるための前記手段は、前記同じ出力バッファを共有する前記データ・インスタンスが使い果たされたことを前記データ・ソースが知らせるまで、これらのデータ・インスタンスの第1のものだけにおいて出力バッファのデータ記憶を割り当てることを特徴とする請求項37に記載の装置。
- 各々が異なるタイルの部分に割り当てられた、複数のマルチスレッド型プロセッサ・コアを含むことを特徴とする請求項36に記載の装置。
- 選択される前記タイルのサイズは、前記複数のプロセッサ・コアから入手可能なプロセッサ・パイプラインの数に依存することを特徴とする請求項45に記載の装置。
- プレスケジューラが頂点データを受け取り、これを使用可能なプロセッサ・パイプラインにわたって分散させるための手段を含むことを特徴とする、請求項45又は請求項46に記載の装置。
- プリスケジューラがデータを受け取り、これを使用可能なプロセッサ・パイプラインにわたって分散させることを特徴とする、請求項45、請求項46、又は請求項47のいずれかに記載の装置。
- マルチスレッド型データ処理システムにおいてデータ記憶を割り当てる方法であって、
データ記憶の可用性に基づいて、複数のデータ・ソースの1つからデータを選択し、コード実行アドレスをプログラム可能なデータ・シーケンサに与え、前記コード実行アドレスからのコードを実行して、データを前記データ記憶手段に書き込ませるステップを含むことを特徴とする方法。 - 前記コードの前記実行により、データが、前記データ・ソースから前記データ記憶手段に直接書き込まれることを特徴とする請求項49に記載の方法。
- 前記コードの前記実行により、データが、別のデータ記憶場所からフェッチされ、前記データ記憶手段に書き込まれることを特徴とする、請求項49又は請求項50に記載の方法。
- 前記プログラム可能なデータ・シーケンサは、マルチスレッド型処理システムにおけるスレッドを含むことを特徴とする、請求項49、請求項50、又は請求項51に記載の方法。
- データ・ソースが選択されるたびに、前記データ記憶手段内の入力データ記憶が割り当てられることを特徴とする、請求項49から請求項52までのいずれかに記載の方法。
- データ・ソースは、同じ出力バッファ要件を共有する複数のデータ・インスタンスを含み、前記同じ出力バッファ要件を共有する前記データ・インスタンスが使い果たされたことを前記データ・ソースが知らせるまで、これらのデータ・インスタンスの第1のものだけにおいて出力バッファのデータ記憶が前記データ記憶手段内に割り当てられることを特徴とする、請求項49から請求項53までに記載の方法。
- 前記コードの前記実行により、テキスチャ座標又は反復ユニット内で反復される他のデータが、前記データ記憶手段に書き込まれることを特徴とする請求項49に記載の方法。
- 前記コードの前記事項により、テキスチャ・データがサンプリングされ、フィルタにかけられ、前記データ記憶手段に書き込まれることを特徴とする請求項49に記載の方法。
- 各々がタイルの異なるセクタに割り当てられた、複数のマルチスレッド型プロセッサ・コアを含むことを特徴とする、タイル・ベース型コンピュータ・グラフィックス・レンダリング・システム。
- 選択された前記タイルのサイズは、前記プロセッサ・コアから使用可能なプロセッサ・パイプラインの数に基づいていることを特徴とする請求項57に記載のシステム。
- プレスケジューラが頂点データを受け取り、この頂点データを使用可能なプロセッサ・パイプラインにわたって分散させることを特徴とする請求項58に記載のシステム。
- プレスケジューラがデータを受け取り、このデータを使用可能なプロセッサ・パイプラインにわたって分散させることを特徴とする、請求項58又は請求項59に記載のシステム。
- 複数の実行スレッドにおいて多数のデータ・ストリームを処理する方法であって、
データ記憶手段内の記憶の可用性に基づいて、複数のデータ・ソースの少なくとも1つからデータを選択し、
そのように選択された前記データについての、前記データ記憶手段内のアドレスを割り当て、
そのように割り当てられた前記データ・アドレスにおいて選択されたデータをロードし、
前記選択されたデータ・ソース、前記データ・アドレス、及び実行アドレスを含む実行タスクを構成し、
前に構成された他のタスクと共に前記タスクをキューに入れ、
各々のタスクについてどの処理リソースが必要とされるかを判断し、
使用可能な前記処理リソースに基づいて、実行のためのタスクを選択し、
複数の処理スレッドにわたって実行のための選択されたタスクを分散させる、
ステップを含むことを特徴とする方法。 - 多数のデータ・ストリームを処理するための装置であって、
複数のデータ・ソースと、
データ記憶手段内の記憶の可用性に基づいて、前記複数のデータ・ソースからデータ・ソースを選択するための手段と、
選択されたデータ・ソースについての、前記データ記憶手段内のアドレスを割り当てるための手段と、
前記選択されたデータ・ソースについてのデータを前記記憶手段内の前記アドレスにロードするための手段と、
前記選択されたデータ・ソース、実行アドレス、及び前記データ・アドレスを含む、実行されるタスクを構成するための手段と、
構成されたタスクについてのタスク・キューと、
処理リソースの可用性に基づいて、実行のためのタスクを選択するための手段と、
選択されたタスクを複数の実行スレッドにわたって分散させるための手段と、
データ依存性のためにいずれかのスレッドが停止するかどうかを判断するための手段と、
を備えることを特徴とする装置。 - マルチスレッド型処理システムにおいてデータ記憶を割り当てるための装置であって、
データ記憶の可用性に基づいて、複数のデータ・ソースの1つからデータを選択するための手段と、
コード実行アドレスをプログラム可能なデータ・シーケンサに提供するための手段と、
前記コード実行アドレスからの前記コードを実行し、データを前記データ記憶装置に書き込ませるための手段と、
を備えることを特徴とする装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0519597.9A GB0519597D0 (en) | 2005-09-26 | 2005-09-26 | Scalable multi-threaded media processing architecture |
GB0519597.9 | 2005-09-26 | ||
PCT/GB2006/003603 WO2007034232A2 (en) | 2005-09-26 | 2006-09-26 | Scalable multi-threaded media processing architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009512917A true JP2009512917A (ja) | 2009-03-26 |
JP5202319B2 JP5202319B2 (ja) | 2013-06-05 |
Family
ID=35335465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008532869A Active JP5202319B2 (ja) | 2005-09-26 | 2006-09-26 | スケーラブルなマルチスレッド型メディア処理アーキテクチャ |
Country Status (5)
Country | Link |
---|---|
US (1) | US8046761B2 (ja) |
EP (2) | EP1932077B1 (ja) |
JP (1) | JP5202319B2 (ja) |
GB (2) | GB0519597D0 (ja) |
WO (1) | WO2007034232A2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0524804D0 (en) | 2005-12-05 | 2006-01-11 | Falanx Microsystems As | Method of and apparatus for processing graphics |
GB2442266B (en) * | 2006-09-29 | 2008-10-22 | Imagination Tech Ltd | Improvements in memory management for systems for generating 3-dimensional computer images |
US9965886B2 (en) * | 2006-12-04 | 2018-05-08 | Arm Norway As | Method of and apparatus for processing graphics |
GB0723536D0 (en) | 2007-11-30 | 2008-01-09 | Imagination Tech Ltd | Multi-core geometry processing in a tile based rendering system |
GB2458488C (en) | 2008-03-19 | 2018-09-12 | Imagination Tech Ltd | Untransformed display lists in a tile based rendering system |
CN101650787A (zh) * | 2008-08-13 | 2010-02-17 | 鸿富锦精密工业(深圳)有限公司 | 仿生老化系统及其老化方法 |
WO2010058246A1 (en) * | 2008-11-24 | 2010-05-27 | Freescale Semiconductor, Inc. | Management of multiple resource providers |
GB0900700D0 (en) * | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
EP2253233A1 (en) * | 2009-05-21 | 2010-11-24 | Philip Morris Products S.A. | An electrically heated smoking system |
GB201004673D0 (en) * | 2010-03-19 | 2010-05-05 | Imagination Tech Ltd | Processing of 3D computer graphics data on multiple shading engines |
US9311102B2 (en) * | 2010-07-13 | 2016-04-12 | Advanced Micro Devices, Inc. | Dynamic control of SIMDs |
US9158610B2 (en) * | 2011-08-04 | 2015-10-13 | Microsoft Technology Licensing, Llc. | Fault tolerance for tasks using stages to manage dependencies |
US8949853B2 (en) * | 2011-08-04 | 2015-02-03 | Microsoft Corporation | Using stages to handle dependencies in parallel tasks |
JP5894496B2 (ja) * | 2012-05-01 | 2016-03-30 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9424685B2 (en) | 2012-07-31 | 2016-08-23 | Imagination Technologies Limited | Unified rasterization and ray tracing rendering environments |
US9317948B2 (en) | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US9207944B1 (en) | 2013-03-15 | 2015-12-08 | Google Inc. | Doubling thread resources in a processor |
US10204391B2 (en) | 2013-06-04 | 2019-02-12 | Arm Limited | Method of and apparatus for processing graphics |
US9824414B2 (en) * | 2014-12-09 | 2017-11-21 | Intel Corporation | Thread dispatching for graphics processors |
GB201505067D0 (en) * | 2015-03-25 | 2015-05-06 | Advanced Risc Mach Ltd | Rendering systems |
GB2553744B (en) | 2016-04-29 | 2018-09-05 | Advanced Risc Mach Ltd | Graphics processing systems |
US10115223B2 (en) * | 2017-04-01 | 2018-10-30 | Intel Corporation | Graphics apparatus including a parallelized macro-pipeline |
EP3843045B1 (en) * | 2020-05-28 | 2022-06-22 | Imagination Technologies Limited | Task merging |
US11048553B1 (en) * | 2020-09-14 | 2021-06-29 | Gunther Schadow | Processing of messages and documents carrying business transactions |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002502801A (ja) * | 1998-02-13 | 2002-01-29 | ダイムラークライスラー・アクチェンゲゼルシャフト | 繊維強化複合材料の製造方法 |
WO2002067116A2 (en) * | 2001-02-19 | 2002-08-29 | Imagination Technologies Limited | Control of priority and instruction rates on a multithreaded processor |
JP2002528786A (ja) * | 1998-08-24 | 2002-09-03 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 |
JP2002532801A (ja) * | 1998-12-16 | 2002-10-02 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング |
JP2002540505A (ja) * | 1999-03-22 | 2002-11-26 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチストリーミングデジタルプロセッサ用のストリーム間制御および通信 |
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
JP2005182825A (ja) * | 2003-12-18 | 2005-07-07 | Nvidia Corp | マルチスレッド式マイクロプロセッサのスレッドにまたがるアウト・オブ・オーダー命令ディスパッチ |
JP2008521097A (ja) * | 2004-11-15 | 2008-06-19 | エヌヴィディア コーポレイション | ビデオ処理 |
JP2008524720A (ja) * | 2004-12-20 | 2008-07-10 | エヌヴィディア コーポレイション | プログラム可能なハードウェアを用いたリアルタイムディスプレイの後処理 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948050B1 (en) * | 1989-11-17 | 2005-09-20 | Texas Instruments Incorporated | Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware |
US5517631A (en) * | 1991-02-01 | 1996-05-14 | Quantum Corporation | Miniature disk drive having embedded sector servo with split data fields and automatic on-the-fly data block sequencing |
US5412788A (en) * | 1992-04-16 | 1995-05-02 | Digital Equipment Corporation | Memory bank management and arbitration in multiprocessor computer system |
US5339413A (en) * | 1992-08-21 | 1994-08-16 | International Business Machines Corporation | Data stream protocol for multimedia data streaming data processing system |
JP3696901B2 (ja) * | 1994-07-19 | 2005-09-21 | キヤノン株式会社 | 負荷分散方法 |
GB2336982B (en) * | 1995-01-31 | 2000-01-19 | Videologic Ltd | Improvements relating to computer 3D rendering systems |
GB2311882B (en) | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
US6272600B1 (en) | 1996-11-15 | 2001-08-07 | Hyundai Electronics America | Memory request reordering in a data processing system |
JPH10333925A (ja) * | 1997-02-27 | 1998-12-18 | Zuno Ltd | オートノマス・エージェント・アーキテクチャ |
US5860018A (en) * | 1997-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Method for tracking pipeline resources in a superscalar processor |
US6044429A (en) * | 1997-07-10 | 2000-03-28 | Micron Technology, Inc. | Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths |
US6343352B1 (en) | 1997-10-10 | 2002-01-29 | Rambus Inc. | Method and apparatus for two step memory write operations |
US6418458B1 (en) * | 1998-10-02 | 2002-07-09 | Ncr Corporation | Object-oriented prioritized work thread pool |
DE19846274A1 (de) * | 1998-10-08 | 2000-04-20 | Alcatel Sa | Verfahren zur Durchführung von kooperativem Multitasking in einem Nachrichtenübertragungsnetz und Netzelement dafür |
US6359623B1 (en) * | 1998-11-12 | 2002-03-19 | Hewlett-Packard Company | Method and apparatus for performing scan conversion in a computer graphics display system |
US20010042187A1 (en) | 1998-12-03 | 2001-11-15 | Marc Tremblay | Variable issue-width vliw processor |
JP2001167060A (ja) * | 1999-12-07 | 2001-06-22 | Hitachi Ltd | タスク並列化方法 |
US6523098B1 (en) * | 1999-12-22 | 2003-02-18 | Intel Corporation | Mechanism for efficient low priority write draining |
US6728862B1 (en) * | 2000-05-22 | 2004-04-27 | Gazelle Technology Corporation | Processor array and parallel data processing methods |
IL137085A (en) * | 2000-06-29 | 2004-08-31 | Eci Telecom Ltd | Method for effective utilizing of shared resources in computerized systems |
CA2416053C (en) | 2000-07-19 | 2008-11-18 | Novatek Engineering Inc. | Downhole data transmission system |
US7401211B2 (en) * | 2000-12-29 | 2008-07-15 | Intel Corporation | Method for converting pipeline stalls caused by instructions with long latency memory accesses to pipeline flushes in a multithreaded processor |
US7539625B2 (en) * | 2004-03-17 | 2009-05-26 | Schlumberger Technology Corporation | Method and apparatus and program storage device including an integrated well planning workflow control system with process dependencies |
US7430654B2 (en) * | 2003-07-09 | 2008-09-30 | Via Technologies, Inc. | Dynamic instruction dependency monitor and control system |
US7366877B2 (en) * | 2003-09-17 | 2008-04-29 | International Business Machines Corporation | Speculative instruction issue in a simultaneously multithreaded processor |
US7114060B2 (en) * | 2003-10-14 | 2006-09-26 | Sun Microsystems, Inc. | Selectively deferring instructions issued in program order utilizing a checkpoint and multiple deferral scheme |
US7614054B2 (en) * | 2003-12-31 | 2009-11-03 | Intel Corporation | Behavioral model based multi-threaded architecture |
US6940514B1 (en) * | 2004-04-26 | 2005-09-06 | Sun Microsystems, Inc. | Parallel initialization path for rasterization engine |
US7664936B2 (en) * | 2005-02-04 | 2010-02-16 | Mips Technologies, Inc. | Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages |
US7266674B2 (en) * | 2005-02-24 | 2007-09-04 | Microsoft Corporation | Programmable delayed dispatch in a multi-threaded pipeline |
-
2005
- 2005-09-26 GB GBGB0519597.9A patent/GB0519597D0/en not_active Ceased
-
2006
- 2006-09-26 WO PCT/GB2006/003603 patent/WO2007034232A2/en active Application Filing
- 2006-09-26 EP EP06779565.8A patent/EP1932077B1/en active Active
- 2006-09-26 JP JP2008532869A patent/JP5202319B2/ja active Active
- 2006-09-26 US US11/527,325 patent/US8046761B2/en active Active
- 2006-09-26 EP EP18160804.3A patent/EP3367237A1/en active Pending
- 2006-09-26 GB GB0618972A patent/GB2430513B/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002502801A (ja) * | 1998-02-13 | 2002-01-29 | ダイムラークライスラー・アクチェンゲゼルシャフト | 繊維強化複合材料の製造方法 |
JP2002528786A (ja) * | 1998-08-24 | 2002-09-03 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 |
JP2002532801A (ja) * | 1998-12-16 | 2002-10-02 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチストリーミングプロセッサ向けの優先順位付き命令スケジューリング |
JP2002540505A (ja) * | 1999-03-22 | 2002-11-26 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチストリーミングデジタルプロセッサ用のストリーム間制御および通信 |
JP2004518183A (ja) * | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
WO2002067116A2 (en) * | 2001-02-19 | 2002-08-29 | Imagination Technologies Limited | Control of priority and instruction rates on a multithreaded processor |
JP2005182825A (ja) * | 2003-12-18 | 2005-07-07 | Nvidia Corp | マルチスレッド式マイクロプロセッサのスレッドにまたがるアウト・オブ・オーダー命令ディスパッチ |
JP2008521097A (ja) * | 2004-11-15 | 2008-06-19 | エヌヴィディア コーポレイション | ビデオ処理 |
JP2008524720A (ja) * | 2004-12-20 | 2008-07-10 | エヌヴィディア コーポレイション | プログラム可能なハードウェアを用いたリアルタイムディスプレイの後処理 |
Non-Patent Citations (1)
Title |
---|
JPN7012000950; 'PowerVR stellt SGX-Chip mit Unified Shader vor' Computer Base , 200508 * |
Also Published As
Publication number | Publication date |
---|---|
JP5202319B2 (ja) | 2013-06-05 |
US8046761B2 (en) | 2011-10-25 |
GB0519597D0 (en) | 2005-11-02 |
US20070101013A1 (en) | 2007-05-03 |
GB2430513B (en) | 2009-12-30 |
WO2007034232A2 (en) | 2007-03-29 |
WO2007034232A3 (en) | 2008-01-24 |
EP3367237A1 (en) | 2018-08-29 |
GB0618972D0 (en) | 2006-11-08 |
EP1932077B1 (en) | 2018-04-25 |
EP1932077A2 (en) | 2008-06-18 |
GB2430513A (en) | 2007-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5202319B2 (ja) | スケーラブルなマルチスレッド型メディア処理アーキテクチャ | |
US20210049729A1 (en) | Reconfigurable virtual graphics and compute processor pipeline | |
US20210349763A1 (en) | Technique for computational nested parallelism | |
US8144149B2 (en) | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units | |
US10032242B2 (en) | Managing deferred contexts in a cache tiling architecture | |
US10095526B2 (en) | Technique for improving performance in multi-threaded processing units | |
US7634637B1 (en) | Execution of parallel groups of threads with per-instruction serialization | |
US9293109B2 (en) | Technique for storing shared vertices | |
US9286119B2 (en) | System, method, and computer program product for management of dependency between tasks | |
US10002031B2 (en) | Low overhead thread synchronization using hardware-accelerated bounded circular queues | |
US8533435B2 (en) | Reordering operands assigned to each one of read request ports concurrently accessing multibank register file to avoid bank conflict | |
US9495721B2 (en) | Efficient super-sampling with per-pixel shader threads | |
US7366842B1 (en) | Creating permanent storage on the fly within existing buffers | |
US8564604B2 (en) | Systems and methods for improving throughput of a graphics processing unit | |
US9418616B2 (en) | Technique for storing shared vertices | |
CN108305313B (zh) | 用于细分绘制空间的一个或多个图块的集合的、用于绘制的图形处理单元和方法 | |
KR20120058605A (ko) | Gpu 워크의 하드웨어 기반 스케쥴링 | |
US7747842B1 (en) | Configurable output buffer ganging for a parallel processor | |
KR20130123645A (ko) | 그래픽 처리 장치를 위한 동적 로드 밸런싱 장치 및 방법 | |
TW201435581A (zh) | 透過管線狀態繫結觸發的效能事件擷取 | |
US9697044B2 (en) | Application programming interface to enable the construction of pipeline parallel programs | |
US9594599B1 (en) | Method and system for distributing work batches to processing units based on a number of enabled streaming multiprocessors | |
CN114968549A (zh) | 用于向任务分配资源的方法和设备 | |
US9406101B2 (en) | Technique for improving the performance of a tessellation pipeline | |
US8976185B2 (en) | Method for handling state transitions in a network of virtual processing nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120619 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120717 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130104 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130131 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5202319 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |