JP3886988B2 - データ生成タスクの並列実行システムおよび方法 - Google Patents
データ生成タスクの並列実行システムおよび方法 Download PDFInfo
- Publication number
- JP3886988B2 JP3886988B2 JP2004190393A JP2004190393A JP3886988B2 JP 3886988 B2 JP3886988 B2 JP 3886988B2 JP 2004190393 A JP2004190393 A JP 2004190393A JP 2004190393 A JP2004190393 A JP 2004190393A JP 3886988 B2 JP3886988 B2 JP 3886988B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- processing element
- processing
- data generation
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Input (AREA)
Description
A.1.システムの概要
図1は、レンダリングしたシーンで使用するより多くのジオメトリ・データを提供するシステム100の概要を示す。システム100は、パーソナル・コンピュータ(PC)、(Microsoft Corporation(Washington州、Redmond)によって製造されたMicrosoftのXbox(商標)ゲーミング・コンソールなど)ゲーミング・コンソール、または他の種類のプラットフォームなど、任意のプラットフォームに実装することができる。ジオメトリ・データとは、シーンをレンダリングするための3次元グラフィックス処理パイプラインで通常使用される情報を指す。通常のアプリケーションでは、データは、様々なキャラクタ、背景のオブジェクト、テクスチャなど、レンダリングされるシーンを構成する様々なオブジェクト(例えばモデル)を定義する、3次元グラフィックス処理パイプラインへの入力である。こうしたオブジェクトは、相互接続された多角形(ポリゴン)、通常は三角形、のメッシュとして表現される。各三角形は3つの頂点で構成される。この頂点は、頂点に関連する位置を識別する情報、ならびに頂点に関する他の情報(例えば色、テクスチャ座標、法線(normal)など)を収容する。例示の一実装形態では、単一の頂点に関連付けられた64バイトの情報がある。(説明を簡単にするため、本明細書では主に技法および実装形態について上記で定義したようなジオメトリ・データの処理/生成に関連して説明する。ただし、この技法および実装形態は、任意の種類のデータの処理/生成に使用できることを留意されたい。)
図1では、各CPU108、110、112の全体のそれぞれが、ホスト関連処理の単一スレッド、またはジオメトリ生成処理の単一スレッドに充てられている。しかし、図2は、CPU(108、110、…112)内の処理リソースを複数のスレッド(例えば、2つ以上のスレッド)に割り当てる構成200を示している。すなわち、CPU1(108)は、ホスト関連処理に充てた複数のスレッド(202、204、…205)を含む。CPU2(110)は、ジオメトリ関連処理に充てた複数のスレッド(206、208、…209)を含む。CPUn(112)は、ジオメトリ関連処理に充てた複数のスレッド(210、212、…213)を含む。他の実装形態では、単一のCPUに関連付けられた役割をホスト関連の処理とジオメトリ関連の処理(または他の種類の処理)に分割することができる。例えば、CPU1(108)のスレッド202をホスト関連の処理に充て、スレッド204をジオメトリ関連の処理に充てることができる。一実装形態では、細分化ハードウェア・スレッド化技法を使用してマルチスレッド化を実装することができる。
図3は、ジオメトリ関連のタスクに充てたCPU2からCPUn(110、…112)を使用したジオメトリ・データの生成、ならびに、これらのユニット(110、112)に供給されたデータ量に対して、これらのユニットが供給するジオメトリ・データ量を測定した結果の圧縮解除の比率を、示すものである。より具体的には、CPU2(110)は、(詳細レベル(level-of-detail)の処理と共に)手続き型ジオメトリ論理または高次表面テセレーション論理など、データ生成論理302を含む。同様に、CPUn(112)は、(詳細レベルの処理と共に)手続き型ジオメトリ論理または高次表面テセレーション論理データ生成論理304を含む。論理302に与えられる入力データを比較的細い矢印306で示し、論理302によって生成される出力データを比較的太い矢印308で示す。これは、上記で強調した概念を示すものであって、すなわち、論理302は比較的少量のデータを受信し、それに反応して比較的大量のジオメトリ・データを生成することを示している。(細い矢印306で示した)入力データと(太い矢印308で示した)出力データの比を、論理302の圧縮解除比率と呼ぶ。こうした圧縮解除比率は一適用例では少なくとも1対10、他の適用例では少なくとも1対100、また別の適用例などでは少なくとも1対1000、またはそれより大きくてもよい。例えば、少なくとも1対100の圧縮解除が提供された場合は、入力データ量の出力データ量に対する比が少なくとも1/100であることを示す。CPUn(112)は、矢印310で示した入力データを受信し、矢印312で示した出力データを提供する。CPU2(110)についての論述は、CPUn(112)の機能にも当てはまる。CPU2(110)からCPUn(112)によって提供された出力データは、GPU処理モジュール104に供給され、例えば、従来の3次元グラフィックス処理パイプラインでさらに処理される。(上記の論述は、システム100の例示の利点を強調するために、比較的大きい圧縮解除比率に関連して構成されているが、例えば1対10など比較的小さい圧縮解除比率も可能である。)
図4および5は、図1で示したL2キャッシュ122の構成および動作に関する、さらなる詳細を提供するものである。例示の一実装形態では、図4から開始して、L2キャッシュ122は、n−ウェイ・セット・アソシアティブ・キャッシュとして実装され、一実装形態では、nは16以下でもよい(ただし、他の実装形態では16セットよりも多いセット・アソシアティブ・キャッシュを使用することができる)。より具体的には、L2キャッシュ122は複数のセット(402、404、406、…408)を含む。各セットは、それに関連付けられた様々なフィールドを有する複数のキャッシュ・ラインを含む。第1のフィールド410は、特定のラインに提供された情報が有効か無効かを示す有効性ビット(validity bit)を提供する。第2のフィールド412は、アドレス・マッチングのために使用するタグ情報を提供する。第3のフィールド414はデータを提供する。従来の論理要素のグループは、アドレス416をL2キャッシュ122のエントリと突合せ、その位置に格納されたデータを出力する。すなわち、アドレス416の指標(インデックス)部分418を使用して、L2キャッシュ122内の特定のキャッシュ・ライン420を識別する。アドレス416のタグ部分422は、L2キャッシュ122のフィールド412に格納されたタグ情報と、指標部分418によって識別されたキャッシュ・ライン内のタグ部分422とを比較することによって、システム100がL2キャッシュ122内のデータの特定部分を識別できるようにする。比較要素424、426、428、および430は、こうしたタグ比較機能を実行する。要素432、434、436、および438は、L2キャッシュ122内の一致した位置に格納されたデータを転送する。
図7および図8は、CPU(108、110、…112)で使用される論理になされた改善に関する。すなわち、通常、CPUはプログラミング命令ストックの規定のセットを使用してプログラミングできるように設計されている。こうしたプログラミング命令は、ロードおよび格納操作、算術演算、分岐操作などの組合せに関する。図7および8は、グラフィックス・アプリケーションで使用されるCPUアーキテクチャでよく見られる命令セットに対する2つの改善を示す。
図9〜11は、図1で示したシステム100の例示の操作方法を示す。より具体的には、図9〜11には、上述のジオメトリ・データ・ストリーミング機能に関連する操作の2つの態様(aspect)が示してある。図9は、ストリーミング動作に関連する読取り機能を示し、図10および11は、ストリーミング動作に関連する書込み機能を示すものである。これに関連して、「読取り」は情報を例示のジオメトリ生成CPUにロードすることを指す。ジオメトリ生成CPUは次いで、入力データに関する手続き型ジオメトリ(または他の処理)の実行を行って出力ジオメトリ・データを提供する。「書込み」は、こうしたデータをジオメトリ生成CPUからGPUモジュールに転送することを指し、またそれに関連するキャッシュ管理の事柄すべてに関するものである。
(読取りストリーミング動作を示す)図9から始め、手続き型ジオメトリ論理904(またはジオメトリ・データを生成する他の種類の処理論理)、レジスタ906、およびL1キャッシュ908を含む例示のCPU902を示す。L2キャッシュ910もこの図に示してある。読取りストリーム動作の目的は、入力情報を入力ソースから有効に受信することである。こうしたソースを図9で包括的にバス912として示す。バス912によって提供される情報は、(図1の)システム・メモリ130、ホストCPU、または他のソースに由来することができる。例えば、ゲーム環境で3次元シーンを生成する場合、入力情報は3次元グラフィックス処理パイプラインでレンダリングされるべきオブジェクトの位置、またはそのシーンの他の属性を表すことができる。
図10は、書込みストリーミング動作(operations)1000を示す。この図は、手続き型ジオメトリ論理1004(またはジオメトリ・データを生成する他の種類の処理論理)、レジスタ1006、およびL1キャッシュ1008を有する例示のCPU1002を示す。CPU1002ならびにGPUモジュール1014に割り当てられたFIFO1012を含むL2キャッシュのロックされたセット1010が示してある。より具体的には、FIFO1012は、CPU1002によって転送されたジオメトリ・データを受信する。FIFO1012は、GPUモジュール1014が取り出すことができるジオメトリ・データの一時的レポジトリ(保管場所)としての働きもする。
図10を参照すると、GPUモジュール1014がジオメトリ・データをL2キャッシュのロックされたセット1010のFIFO1012から受信した場合、それによってGPUモジュール1014は、CPU1002によるFIFO1012への追加のジオメトリ・データの転送のためにメモリ・スペースを開放する。図11は、GPUモジュール1014がCPU1002にこうした開放スペースを通知する技法を示す。
図12は、図1で示したシステム100によって行われる上述のストリーミング動作の概要を示す。図の左側は、CPUモジュール処理1202に関するものであり、すなわち、図1で示したCPUモジュール102で行われる動作を示す。より具体的には、ブロック1204、1206、および1208は、CPU110、CPU112など、図1で示した個々のCPUで行われる処理に関する。図の右側は、GPUモジュール処理1210に関するものであり、すなわち図1で示したGPUモジュール104(かつGPUモジュール1212として図12に再掲した)で行われる動作に関する。CPUモジュール処理1202で行われる動作はGPUモジュール処理1210で行われる動作と並列に行うことができる。さらに、(ブロック1204、1206、1208の)個々のCPUで行われる動作は互いに並列に行うことができる。(ストリーミング動作の論述を簡単にするため、図1で示したホストCPU108など、任意のホストCPUの役割を図12では省略してあることを留意されたい。)
図13は、上述の並列アーキテクチャおよび技法を実装するために使用することができる例示のゲーム・システム1300を示す。このシステムは、ゲーム・コンソール1302、およびコントローラ1304(1)および1304(2)で示した4つまでのコントローラを備える。ゲーム・コンソール1302は、内部ハードディスクドライブおよび携帯用媒体ドライブ1306を装備している。この携帯用媒体ドライブ1306は、光記憶ディスク1308で示したような、様々な形態の携帯用記憶媒体をサポートする。適合する携帯用記憶媒体の例には、DVD、CD−ROM、ゲーム・ディスク、ゲーム・カートリッジなどが含まれる。
データ生成タスクを並列に実行するアーキテクチャおよび関連方法を開示した。例示の一適用例では、このアーキテクチャおよび関連方法は、複雑で現実性のあるシーンをレンダリングする大量のジオメトリ・データを提供するものである。同時に、このアーキテクチャおよび関連方法は、システム・メモリのデータ転送動作の量を低減する方法も提供する。
102 CPUモジュール
104 GPUモジュール
106 フロント・サイド・バス
108 CPU1(例えばホスト)
110 CPU2(例えばジオメトリ)
112 CPUn(例えばジオメトリ)
114 グラフィックス・エンジン
116、118,120 L1キャッシュ
124、126,128 バス・インタフェース・ユニット
122 共有L2
130 メモリ
132 メモリ・コントローラ
134 クロスバー
136 I/Oモジュール
138 I/Oインターフェース
140 追加の1つまたは複数のCPUモジュール(任意選択)
142 対称型多重処理(Symmetric Multiprocessing(SMP))インターフェース
144 GPUインターフェース
146 CPUインターフェース
148 クロスバー
150 コヒーレンシ・モジュール
200 CPU内の処理リソースを複数のスレッドに割り当てる構成
202 スレッド1(例えばホスト)
204 スレッド2(例えばホスト)
205 任意選択の追加のスレッド
206 スレッド1(例えばジオメトリ)
208 スレッド2(例えばジオメトリ)
209 任意選択の追加のスレッド
210 スレッド1(例えばジオメトリ)
212 スレッド2(例えばジオメトリ)
213 任意選択の追加のスレッド
214、216,218、220、222、224 L1キャッシュ
226 両方のスレッド用の1つのL1
302 データ生成論理(例えば手続き型ジオメトリ)
304 データ生成論理(例えば手続き型ジオメトリ)
410 有効性
412 タグ
414 データ
416 アドレス
418 指標
420 特定のキャッシュ・ライン
422 タグ
502 ロックされたセット
504 アンロック・セット
506、508、510、512 FIFOバッファ
514 アドレス
516、518 「無視」ビット・フィールド
602 CPU処理モジュール
604 専用L2キャッシュ
902 CPU
904 手続き型ジオメトリ論理
906 レジスタ
908 L1キャッシュ
910 L2キャシュ
912 バス
1000 書込みストリーミング動作
1002 CPU
1004 手続き型ジオメトリ論理
1006 レジスタ
1008 L1キャッシュ
1010 L2のロックされたセット
1012 FIFO
1014 GPUモジュール
1102 CPU
1104 手続き型ジオメトリ論理
1106 レジスタ
1110 L2キャッシュ
1112 GPUモジュール
1114 末尾ポインタ
1300 ゲーム・システム
1302 ゲーム・コンソール
1304 コントローラ
1306 携帯用媒体ドライブ
1308 光記憶ディスク
1310 スロット
1312 電源ボタン
1314 排出ボタン
1320 A/Vインターフェース・ケーブル
1322 電源ケーブル
1324 モデム・コネクタ
1330 シリアル・ケーブル
1332 コントロール・レバー
1334 D−パッド
1336 表面ボタン
1338 トリガ釦
Claims (57)
- (a)システム・メモリと、
(b)コンピュータ処理モジュールであって、
(b1)タスクを実行するように構成されたホスト処理要素、
(b2)前記タスク内のサブタスクを実行するように構成されたデータ生成処理要素であって、
入力データを受信するように構成された論理、および、
前記入力データを処理して出力データを生成するように構成された論理
を含み、出力データ量は入力データ量よりも多く、前記入力データ量の前記出力データ量に対する比は圧縮解除の比率を規定し、
前記データ生成処理要素によって生成された前記出力データは前記データ生成処理要素によって生成される前には前記システム・メモリに収容されないように構成されたデータ生成処理要素、
(b3)前記データ生成処理要素に結合され、前記出力データを受信するキャッシュ・メモリ、および、
(b4)前記出力データを前記キャッシュ・メモリから出力するコンピュータ処理モジュール・インターフェース
を含むコンピュータ処理モジュールと、
(c)通信バスと、
(d)データ処理モジュールであって、
前記通信バスを介して前記コンピュータ処理モジュール・インターフェースに結合されて前記出力データを受信するデータ処理モジュール・インターフェース、および、
前記出力データを前記キャッシュ・メモリから受信し処理し、末尾ポインタを使用してデータを取り出したばかりの前記キャッシュ・メモリ内の位置を示すデータ処理エンジン
を含むデータ処理モジュールと
を備えたシステムであって、
前記コンピュータ処理モジュールは、書込みストリーミング動作モード時に、前記データ生成処理要素からストリーミング書込み出力データを受信する目的で前記キャッシュ・メモリの一部を割り当てるように構成され、
前記システムは、前記書込みストリーミング動作モード時に、出力データを、前記システム・メモリからではなく、前記割り当てられた前記キャッシュ・メモリの一部から前記データ処理モジュールに転送するように構成され、
前記データ処理モジュールは、前記末尾ポインタを前記データ生成処理要素のキャッシュ可能なアドレスに転送し、前記末尾ポインタは、前記データ処理モジュールがデータを取り出したばかりの前記キャッシュ・メモリ内の前記位置を前記データ生成処理要素に通知するように構成される
ことを特徴とするシステム。 - 前記ホスト処理要素は、コンピュータ処理装置に実装されたスレッドを備え、前記データ生成処理要素は前記同じコンピュータ処理装置に実装された、または別のコンピュータ処理装置に実装されたスレッドを備えることを特徴とする請求項1に記載のシステム。
- 複数のホスト処理要素をさらに備えることを特徴とする請求項1に記載のシステム
- 前記複数のホスト処理要素は、それぞれ少なくとも1つのコンピュータ処理装置に実装された複数のスレッドを備えることを特徴とする請求項3に記載のシステム。
- 複数のデータ生成処理要素をさらに備えることを特徴とする請求項1に記載のシステム。
- 前記複数のデータ生成処理要素は、それぞれ少なくとも1つのコンピュータ処理装置に実装された複数のスレッドを備えることを特徴とする請求項5に記載のシステム。
- 前記ホスト処理要素および前記データ生成処理要素は、それぞれ静的に割り当てられた機能を実行することを特徴とする請求項1に記載のシステム。
- 前記ホスト処理要素および前記データ生成処理要素は、それぞれ動的に割り当てられた機能を実行することを特徴とする請求項1に記載のシステム。
- 複数のデータ生成処理要素をさらに備え、前記複数のデータ生成処理要素はそれぞれ前記キャッシュ・メモリに結合されることを特徴とする請求項1に記載のシステム。
- 前記データ生成処理要素はL1キャッシュを含み、前記コンピュータ処理モジュールの前記キャッシュ・メモリはL2キャッシュであることを特徴とする請求項1に記載のシステム。
- 前記コンピュータ処理モジュールは、読取りストリーミング動作モード時に、前記データ生成処理要素の前記L1キャッシュに、前記L2キャッシュをバイパスして前記入力データを転送することによって、前記入力データを提供するように構成されることを特徴とする請求項10に記載のシステム。
- 前記コンピュータ処理モジュールは、前記書込みストリーミング動作モード時に、前記出力データを、前記L1キャッシュをバイパスして前記L2キャッシュに転送するように構成されることを特徴とする請求項10に記載のシステム。
- 前記キャッシュ・メモリは、n−ウェイ・セット・アソシアティブ・キャッシュであり、前記部分は、前記n−ウェイ・セット・アソシアティブ・キャッシュの少なくとも1つのセットをロックすることによって割り当てられることを特徴とする請求項1に記載のシステム。
- 前記キャッシュ・メモリの前記割り当てられた部分は、前記データ生成処理要素を前記データ処理モジュールに結合する少なくとも1つのFIFOバッファを形成することを特徴とする請求項1に記載のシステム。
- 前記システムは、アドレスの上部セクションおよび下部セクションを無視し、アドレスの中間セクションを使用して前記少なくとも1つのFIFOバッファ内にラップして、前記少なくとも1つのFIFOバッファを示すように構成されることを特徴とする請求項14に記載のシステム。
- 前記データ処理モジュールは、変更したダイレクト・メモリ・アクセス(DMA)プロトコルを使用して、前記キャッシュ・メモリから受信した出力データを処理するように構成されることを特徴とする請求項1に記載のシステム。
- 前記コンピュータ処理モジュールは、キャッシュ・ラインにアクセスした後、キャッシュ・ラインをダーティー状態に維持するように構成されることを特徴とする請求項1に記載のシステム。
- 前記圧縮解除比率は少なくとも1対10であることを特徴とする請求項1に記載のシステム。
- 前記圧縮解除比率は少なくとも1対100であることを特徴とする請求項1に記載のシステム。
- 前記圧縮解除比率は少なくとも1対1000であることを特徴とする請求項1に記載のシステム。
- 前記データ生成処理要素は、少なくとも1つの判定基準に応じてその動作中に圧縮解除の比率を動的に変えるように構成されることを特徴とする請求項1に記載のシステム。
- 前記少なくとも1つの判定基準はシーン内のオブジェクトに関連付けられたシーンの深度であることを特徴とする請求項21に記載のシステム。
- 前記入力データを処理する前記論理は、ドット生成命令を受信すると、AOS計算技法を使用して、ドット生成操作を行うように構成された論理をさらに備えることを特徴とする請求項1に記載のシステム。
- 前記入力データを処理する前記論理は、データを第1の情報内容量から第2の情報内容量に圧縮して前記出力データを提供する論理をさらに含み、前記第1の情報内容量は前記第2の情報内容量よりも多いことを特徴とする請求項1に記載のシステム。
- 前記ホスト処理要素によって実行される前記タスクは、グラフィックス処理タスクに関連し、前記データ生成処理要素によって実行されるサブタスクはジオメトリ・データの前記生成に関連することを特徴とする請求項1に記載のシステム。
- 前記ホスト処理要素によって実行される前記タスクは、3次元ゲーム・アプリケーションの高レベルの態様(aspect)に関連することを特徴とする請求項25に記載のシステム。
- 前記入力データを処理する前記論理は、前記入力データを前記出力データに変換するように構成された手続き型ジオメトリ論理を備え、前記出力データは1組の頂点を備えることを特徴とする請求項25に記載のシステム。
- 前記入力データを処理する前記論理は、高次表面で表された情報を1組の頂点を備える出力データに変換するように構成された高次表面テセレーション・エンジンを備えることを特徴とする請求項25に記載のシステム。
- (a)システム・メモリと、
(b)タスクを実行するように構成されたホスト処理要素と、
(c)前記タスク内のサブタスクを実行するように構成されたデータ生成処理要素であって、
入力データを受信するように構成された論理、および
前記入力データを処理して出力データを生成するように構成された論理
を含み、出力データ量は入力データ量よりも多く、入力データ量の出力データ量に対する比は圧縮解除の比率を規定し、前記データ生成処理要素によって生成された前記出力データは前記データ生成処理要素によって生成される前にはシステム・メモリに収容されないように構成されたデータ生成処理要素と、
(d)前記データ生成処理要素によって生成された前記出力データをキャッシュ・メモリの割り当てられた部分に格納するキャッシュ・メモリと、
(e)通信バスと、
(f)前記通信バスを介して前記出力データを前記キャッシュ・メモリから取り出し、前記出力データを処理するように構成され、末尾ポインタを使用してデータを取り出したばかりの前記キャッシュ・メモリ内の位置を示すデータ処理エンジンと、
(g)末尾ポインタを提供して、前記通信バスを介して前記データ生成処理要素のキャッシュ可能なアドレスを更新するように構成された末尾ポインタ更新機構と
を備えることを特徴とするシステム。 - ホスト処理要素、データ生成要素、およびデータ処理エンジンを含み、前記ホスト処理要素および前記データ生成要素が通信バスを介して前記データ処理エンジンに結合されているシステムにおいてデータを処理する方法であって、
(a)前記ホスト処理要素内で、タスクの一部としてサブタスクの実行を要求するタスクを実行すること、
(b)前記ホスト処理要素によって指令された場合に、前記データ生成処理要素内で前記サブタスクを実行することであって、入力データを受信すること、および前記入力データを処理して出力データを生成することを含むサブタスクを実行し、出力データ量は入力データ量よりも多く、前記入力データ量の前記出力データ量に対する比は圧縮解除の比率を規定し、前記データ生成処理要素によって生成された前記出力データは、前記データ生成処理要素によって生成される前にはシステム・メモリに収容されないようにサブタスクを実行すること、
(c)前記出力データをキャッシュ・メモリの割り当てられた部分でバッファリングすること、
(d)データ処理エンジンによって、前記出力データを、前記システム・メモリではなく前記キャッシュ・メモリから前記通信バスを介して取り出すこと、
(e)前記取り出した出力データを前記データ処理エンジンで処理し、前記データ処理エンジンは末尾ポインタを使用してデータを取り出したばかりの前記キャッシュ・メモリ内の位置を示すこと、および
(f)末尾ポインタを前記データ生成処理要素のキャッシュ可能なアドレスに転送し、前記末尾ポインタは、前記データ生成処理要素に、前記データ処理エンジンがデータを取り出したばかりの前記キャッシュ・メモリ内の位置を通知すること
を備えることを特徴とする方法。 - 前記ホスト処理要素は、コンピュータ処理装置に実装されたスレッドを備え、前記データ生成処理要素は前記同じコンピュータ処理装置に実装された、または別のコンピュータ処理装置に実装されたスレッドを備えることを特徴とする請求項30に記載の方法。
- 複数のホスト処理要素をさらに備えることを特徴とする請求項30に記載の方法。
- 前記複数のホスト処理要素は、それぞれ少なくとも1つのコンピュータ処理装置に実装された複数のスレッドを備えることを特徴とする請求項32に記載の方法。
- 複数のデータ生成処理要素をさらに備えることを特徴とする請求項30に記載の方法。
- 前記複数のデータ生成処理要素は、それぞれ少なくとも1つのコンピュータ処理装置に実装された複数のスレッドを備えることを特徴とする請求項34に記載の方法。
- 前記ホスト処理要素および前記データ生成処理要素は、それぞれ静的に割り当てられた機能を実行することを特徴とする請求項30に記載の方法。
- 前記ホスト処理要素および前記データ生成処理要素は、それぞれ動的に割り当てられた機能を実行することを特徴とする請求項30に記載の方法。
- 複数のデータ生成処理要素をさらに備え、当該複数のデータ生成処理要素はそれぞれ前記キャッシュ・メモリに結合されることを特徴とする請求項30に記載の方法。
- 前記データ生成処理要素はL1キャッシュを含み、前記キャッシュ・メモリはL2キャッシュであることを特徴とする請求項30に記載の方法。
- 前記データ生成処理要素は、読取りストリーミング動作モード時に、前記L2キャッシュをバイパスした、前記データ生成処理要素の前記L1キャッシュへの前記入力データの転送によって前記入力データを受信することを特徴とする請求項39に記載の方法。
- 前記データ生成ユニットは、書込みストリーミング動作モード時に、前記出力データを前記L2キャッシュに、前記L1キャッシュをバイパスして転送することによって前記出力データを提供することを特徴とする請求項39に記載の方法。
- 前記キャッシュ・メモリは、n−ウェイ・セット・アソシアティブ・キャッシュであり、前記部分は、前記n−ウェイ・セット・アソシアティブ・キャッシュの少なくとも1つのセットをロックすることによって割り当てられることを特徴とする請求項30に記載の方法。
- 前記キャッシュ・メモリの前記割り当てられた部分は、前記データ生成処理要素を前記データ処理エンジンに結合する少なくとも1つのFIFOバッファを形成することを特徴とする請求項30に記載の方法。
- アドレスの上部セクションおよび下部セクションを無視し、アドレスの中間セクションを使用して前記少なくとも1つのFIFOバッファ内にラップして、前記少なくとも1つのFIFOバッファを示すことをさらに備えることを特徴とする請求項43に記載の方法。
- 前記データ処理エンジンは、変更したダイレクト・メモリ・アクセス(DMA)プロトコルを使用して、前記キャッシュ・メモリから受信した出力データを処理することを特徴とする請求項30に記載の方法。
- キャッシュ・ラインにアクセスした後、キャッシュ・ラインをダーティー状態に維持することをさらに備えることを特徴とする請求項30に記載の方法。
- 前記圧縮解除比率は少なくとも1対10であることを特徴とする請求項30に記載の方法。
- 前記圧縮解除比率は少なくとも1対100であることを特徴とする請求項30に記載の方法。
- 前記圧縮解除比率は少なくとも1対1000であることを特徴とする請求項30に記載の方法。
- 前記サブタスクを前記実行することは、少なくとも1つの判定基準に応じて前記データ生成処理要素の動作中に圧縮解除の前記比率を動的に変えることを含むことを特徴とする請求項30に記載の方法。
- 前記少なくとも1つの判定基準はシーン内のオブジェクトに関連付けられたシーンの深度であることを特徴とする請求項50に記載の方法。
- 前記サブタスクを前記実行することは、ドット生成命令を受信すると、AOS計算技法を使用して、ドット生成操作を行うことをさらに含むことを特徴とする請求項30に記載の方法。
- 前記サブタスクを前記実行することは、データを第1の情報内容量から第2の情報内容量に圧縮して前記出力データを提供することをさらに含み、前記第1の情報内容量は前記第2の情報内容量よりも多いことを特徴とする請求項30に記載の方法。
- 前記ホスト処理要素によって実行される前記タスクは、グラフィックス処理タスクに関連し、前記データ生成処理要素によって実行される前記サブタスクはジオメトリ・データの前記生成に関連することを特徴とする請求項30に記載の方法。
- 前記ホスト処理要素によって実行される前記タスクは、3次元ゲーム・アプリケーションの高レベルの態様(aspect)に関連することを特徴とする請求項54に記載の方法。
- 前記入力データを前記処理することは、手続き型ジオメトリを行って前記入力データを前記出力データに変換することを備え、前記出力データは1組の頂点を備えることを特徴とする請求項54に記載の方法。
- 前記入力データを前記処理することは、高次表面テセレーションを行って、高次表面で表された情報を1組の頂点を備える出力データに変換することを備えることを特徴とする請求項54に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/611,415 US6862027B2 (en) | 2003-06-30 | 2003-06-30 | System and method for parallel execution of data generation tasks |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005025749A JP2005025749A (ja) | 2005-01-27 |
JP3886988B2 true JP3886988B2 (ja) | 2007-02-28 |
Family
ID=33477053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004190393A Expired - Fee Related JP3886988B2 (ja) | 2003-06-30 | 2004-06-28 | データ生成タスクの並列実行システムおよび方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US6862027B2 (ja) |
EP (1) | EP1498824A3 (ja) |
JP (1) | JP3886988B2 (ja) |
Families Citing this family (161)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8010508B2 (en) | 2001-10-15 | 2011-08-30 | Maya-Systems Inc. | Information elements locating system and method |
US7606819B2 (en) | 2001-10-15 | 2009-10-20 | Maya-Systems Inc. | Multi-dimensional locating system and method |
US20080058106A1 (en) * | 2002-10-07 | 2008-03-06 | Maya-Systems Inc. | Multi-dimensional locating game system and method |
US7355601B2 (en) * | 2003-06-30 | 2008-04-08 | International Business Machines Corporation | System and method for transfer of data between processors using a locked set, head and tail pointers |
US8788996B2 (en) | 2003-09-15 | 2014-07-22 | Nvidia Corporation | System and method for configuring semiconductor functional circuits |
US8775997B2 (en) | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8732644B1 (en) | 2003-09-15 | 2014-05-20 | Nvidia Corporation | Micro electro mechanical switch system and method for testing and configuring semiconductor functional circuits |
JP2005132525A (ja) * | 2003-10-29 | 2005-05-26 | Toyota Industries Corp | 産業車輌における立席型運転席用背もたれ構造 |
US7536692B2 (en) * | 2003-11-06 | 2009-05-19 | Intel Corporation | Thread-based engine cache partitioning |
US8711161B1 (en) | 2003-12-18 | 2014-04-29 | Nvidia Corporation | Functional component compensation reconfiguration system and method |
US9292904B2 (en) * | 2004-01-16 | 2016-03-22 | Nvidia Corporation | Video image processing with parallel processing |
US7089341B2 (en) * | 2004-03-31 | 2006-08-08 | International Business Machines Corporation | Method and apparatus for supporting interrupt devices configured for a particular architecture on a different platform |
US7719540B2 (en) * | 2004-03-31 | 2010-05-18 | Intel Corporation | Render-cache controller for multithreading, multi-core graphics processor |
US7706633B2 (en) * | 2004-04-21 | 2010-04-27 | Siemens Corporation | GPU-based image manipulation method for registration applications |
US7362705B2 (en) * | 2004-05-13 | 2008-04-22 | International Business Machines Corporation | Dynamic load-based credit distribution |
US8427490B1 (en) | 2004-05-14 | 2013-04-23 | Nvidia Corporation | Validating a graphics pipeline using pre-determined schedules |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7840757B2 (en) * | 2004-07-29 | 2010-11-23 | International Business Machines Corporation | Method and apparatus for providing high speed memory for a processing unit |
US20060047862A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Automatic hardware data link initialization |
US20060045031A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Automatic hardware data link initialization using multiple state machines |
US8723231B1 (en) | 2004-09-15 | 2014-05-13 | Nvidia Corporation | Semiconductor die micro electro-mechanical switch management system and method |
JP4244028B2 (ja) * | 2004-09-22 | 2009-03-25 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、制御用プロセッサおよび情報処理装置 |
US7546401B2 (en) * | 2004-09-23 | 2009-06-09 | International Business Machines Corporation | Byte to byte alignment of multi-path data |
US8624906B2 (en) * | 2004-09-29 | 2014-01-07 | Nvidia Corporation | Method and system for non stalling pipeline instruction fetching from memory |
US8711156B1 (en) | 2004-09-30 | 2014-04-29 | Nvidia Corporation | Method and system for remapping processing elements in a pipeline of a graphics processing unit |
US7305524B2 (en) * | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
US7475190B2 (en) * | 2004-10-08 | 2009-01-06 | International Business Machines Corporation | Direct access of cache lock set data without backing memory |
US8332592B2 (en) * | 2004-10-08 | 2012-12-11 | International Business Machines Corporation | Graphics processor with snoop filter |
US7577794B2 (en) | 2004-10-08 | 2009-08-18 | International Business Machines Corporation | Low latency coherency protocol for a multi-chip multiprocessor system |
US20060080511A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Enhanced bus transactions for efficient support of a remote cache directory copy |
DE102004051568A1 (de) * | 2004-10-22 | 2006-05-04 | Siemens Ag | Verfahren zur schnellen Bildverarbeitung medizinischer Bilder |
US7385925B2 (en) * | 2004-11-04 | 2008-06-10 | International Business Machines Corporation | Data flow control method for simultaneous packet reception |
US20060101208A1 (en) * | 2004-11-09 | 2006-05-11 | Intel Corporation | Method and apparatus for handling non-temporal memory accesses in a cache |
US9111368B1 (en) | 2004-11-15 | 2015-08-18 | Nvidia Corporation | Pipelined L2 cache for memory transfers for a video processor |
US20060149804A1 (en) * | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US7522167B1 (en) | 2004-12-16 | 2009-04-21 | Nvidia Corporation | Coherence of displayed images for split-frame rendering in multi-processor graphics system |
US7260765B2 (en) * | 2004-12-17 | 2007-08-21 | International Business Machines Corporation | Methods and apparatus for dynamically reconfigurable parallel data error checking |
US7499452B2 (en) * | 2004-12-28 | 2009-03-03 | International Business Machines Corporation | Self-healing link sequence counts within a circular buffer |
US20060140122A1 (en) * | 2004-12-28 | 2006-06-29 | International Business Machines Corporation | Link retry per virtual channel |
US7869666B2 (en) | 2005-01-13 | 2011-01-11 | Nvidia Corporation | Video processing system and method with dynamic tag architecture |
US20060159023A1 (en) * | 2005-01-14 | 2006-07-20 | International Business Machines Corporation | CRC error history mechanism |
US7791741B2 (en) * | 2005-04-08 | 2010-09-07 | Palo Alto Research Center Incorporated | On-the-fly state synchronization in a distributed system |
US8819103B2 (en) * | 2005-04-08 | 2014-08-26 | Palo Alto Research Center, Incorporated | Communication in a distributed system |
US7873962B2 (en) * | 2005-04-08 | 2011-01-18 | Xerox Corporation | Distributed control systems and methods that selectively activate respective coordinators for respective tasks |
US7469312B2 (en) * | 2005-02-24 | 2008-12-23 | International Business Machines Corporation | Computer system bus bridge |
US7275125B2 (en) * | 2005-02-24 | 2007-09-25 | International Business Machines Corporation | Pipeline bit handling circuit and method for a bus bridge |
US7330925B2 (en) * | 2005-02-24 | 2008-02-12 | International Business Machines Corporation | Transaction flow control mechanism for a bus bridge |
US7275124B2 (en) * | 2005-02-24 | 2007-09-25 | International Business Machines Corporation | Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability |
US7234017B2 (en) * | 2005-02-24 | 2007-06-19 | International Business Machines Corporation | Computer system architecture for a processor connected to a high speed bus transceiver |
US20060190655A1 (en) * | 2005-02-24 | 2006-08-24 | International Business Machines Corporation | Apparatus and method for transaction tag mapping between bus domains |
US7206886B2 (en) * | 2005-02-24 | 2007-04-17 | International Business Machines Corporation | Data ordering translation between linear and interleaved domains at a bus interface |
US7194567B2 (en) * | 2005-02-24 | 2007-03-20 | International Business Machines Corporation | Method and system for ordering requests at a bus interface |
JP4448784B2 (ja) * | 2005-03-15 | 2010-04-14 | 株式会社日立製作所 | 並列計算機の同期方法及びプログラム |
US20060212853A1 (en) * | 2005-03-18 | 2006-09-21 | Marvell World Trade Ltd. | Real-time control apparatus having a multi-thread processor |
US8195922B2 (en) | 2005-03-18 | 2012-06-05 | Marvell World Trade, Ltd. | System for dynamically allocating processing time to multiple threads |
US7706007B2 (en) * | 2005-04-08 | 2010-04-27 | Palo Alto Research Center Incorporated | Synchronization in a distributed system |
US7456833B1 (en) | 2005-06-15 | 2008-11-25 | Nvidia Corporation | Graphical representation of load balancing and overlap |
US7483035B2 (en) * | 2005-07-07 | 2009-01-27 | Via Technologies, Inc. | Texture cache control using a data dependent slot selection scheme |
US9092170B1 (en) | 2005-10-18 | 2015-07-28 | Nvidia Corporation | Method and system for implementing fragment operation processing across a graphics bus interconnect |
US7629978B1 (en) * | 2005-10-31 | 2009-12-08 | Nvidia Corporation | Multichip rendering with state control |
US7500062B2 (en) * | 2005-11-17 | 2009-03-03 | International Business Machines Corporation | Fast path memory read request processing in a multi-level memory architecture |
US7561163B1 (en) * | 2005-12-16 | 2009-07-14 | Nvidia Corporation | Detecting connection topology in a multi-processor graphics system |
JP4487959B2 (ja) | 2006-03-17 | 2010-06-23 | ソニー株式会社 | 画像処理装置および画像処理方法、並びにプログラム |
JP5007059B2 (ja) * | 2006-03-28 | 2012-08-22 | クラリオン株式会社 | 立体視車載表示装置 |
CA2609873C (en) | 2006-03-29 | 2012-12-04 | Mathieu Audet | Multi-dimensional locating system and method |
US20070255903A1 (en) * | 2006-05-01 | 2007-11-01 | Meir Tsadik | Device, system and method of accessing a memory |
US8081184B1 (en) * | 2006-05-05 | 2011-12-20 | Nvidia Corporation | Pixel shader program thread assembly |
US8223159B1 (en) * | 2006-06-20 | 2012-07-17 | Nvidia Corporation | System and method for transferring data between unrelated API contexts on one or more GPUs |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8269782B2 (en) * | 2006-11-10 | 2012-09-18 | Sony Computer Entertainment Inc. | Graphics processing apparatus |
US8149242B2 (en) * | 2006-11-10 | 2012-04-03 | Sony Computer Entertainment Inc. | Graphics processing apparatus, graphics library module and graphics processing method |
US8736627B2 (en) * | 2006-12-19 | 2014-05-27 | Via Technologies, Inc. | Systems and methods for providing a shared buffer in a multiple FIFO environment |
CA2617688C (en) * | 2007-02-22 | 2015-08-18 | Alpex Pharma S.A. | Solid dosage formulations containing weight-loss drugs |
US8276164B2 (en) | 2007-05-03 | 2012-09-25 | Apple Inc. | Data parallel computing on multiple processors |
WO2008127622A2 (en) * | 2007-04-11 | 2008-10-23 | Apple Inc. | Data parallel computing on multiple processors |
AU2011253819B2 (en) * | 2007-04-11 | 2014-05-22 | Apple Inc. | Parallel runtime execution on multiple processors |
US8341611B2 (en) * | 2007-04-11 | 2012-12-25 | Apple Inc. | Application interface on multiple processors |
US11836506B2 (en) | 2007-04-11 | 2023-12-05 | Apple Inc. | Parallel runtime execution on multiple processors |
US8286196B2 (en) | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
US8108633B2 (en) * | 2007-04-11 | 2012-01-31 | Apple Inc. | Shared stream memory on multiple processors |
AU2011253721B8 (en) * | 2007-04-11 | 2014-06-26 | Apple Inc. | Data parallel computing on multiple processors |
US8826123B2 (en) | 2007-05-25 | 2014-09-02 | 9224-5489 Quebec Inc. | Timescale for presenting information |
CA2601154C (en) | 2007-07-07 | 2016-09-13 | Mathieu Audet | Method and system for distinguising elements of information along a plurality of axes on a basis of a commonality |
US8683126B2 (en) | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
US8659601B1 (en) | 2007-08-15 | 2014-02-25 | Nvidia Corporation | Program sequencer for generating indeterminant length shader programs for a graphics processor |
US8411096B1 (en) | 2007-08-15 | 2013-04-02 | Nvidia Corporation | Shader program instruction fetch |
US8698819B1 (en) | 2007-08-15 | 2014-04-15 | Nvidia Corporation | Software assisted shader merging |
US9024957B1 (en) | 2007-08-15 | 2015-05-05 | Nvidia Corporation | Address independent shader program loading |
US8601392B2 (en) | 2007-08-22 | 2013-12-03 | 9224-5489 Quebec Inc. | Timeline for presenting information |
KR101103546B1 (ko) | 2007-10-01 | 2012-01-09 | 국방과학연구소 | 듀얼 프로세스를 이용한 프로그램을 포함하는 시험 장치 |
US8724483B2 (en) | 2007-10-22 | 2014-05-13 | Nvidia Corporation | Loopback configuration for bi-directional interfaces |
US8219975B2 (en) * | 2007-10-26 | 2012-07-10 | Microsoft Corporation | Real-time analysis of performance data of a video game |
US8780123B2 (en) | 2007-12-17 | 2014-07-15 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
US9064333B2 (en) * | 2007-12-17 | 2015-06-23 | Nvidia Corporation | Interrupt handling techniques in the rasterizer of a GPU |
CA2657835C (en) | 2008-03-07 | 2017-09-19 | Mathieu Audet | Documents discrimination system and method thereof |
US9035959B2 (en) * | 2008-03-28 | 2015-05-19 | Intel Corporation | Technique to share information among different cache coherency domains |
US8605099B2 (en) * | 2008-03-31 | 2013-12-10 | Intel Corporation | Partition-free multi-socket memory system architecture |
US9716854B2 (en) * | 2008-04-09 | 2017-07-25 | Imagine Communications Corp. | Video multiviewer system with distributed scaling and related methods |
US9172900B2 (en) * | 2008-04-09 | 2015-10-27 | Imagine Communications Corp. | Video multiviewer system with switcher and distributed scaling and related methods |
US8773469B2 (en) * | 2008-04-09 | 2014-07-08 | Imagine Communications Corp. | Video multiviewer system with serial digital interface and related methods |
US8717435B2 (en) * | 2008-04-09 | 2014-05-06 | Hbc Solutions, Inc. | Video monitoring device providing parametric signal curve display features and related methods |
US9124847B2 (en) * | 2008-04-10 | 2015-09-01 | Imagine Communications Corp. | Video multiviewer system for generating video data based upon multiple video inputs with added graphic content and related methods |
US9615049B2 (en) * | 2008-04-10 | 2017-04-04 | Imagine Communications Corp. | Video multiviewer system providing direct video data transfer to graphics processing unit (GPU) memory and related methods |
US8811499B2 (en) * | 2008-04-10 | 2014-08-19 | Imagine Communications Corp. | Video multiviewer system permitting scrolling of multiple video windows and related methods |
US8923385B2 (en) | 2008-05-01 | 2014-12-30 | Nvidia Corporation | Rewind-enabled hardware encoder |
US8681861B2 (en) | 2008-05-01 | 2014-03-25 | Nvidia Corporation | Multistandard hardware video encoder |
US20090287693A1 (en) | 2008-05-15 | 2009-11-19 | Mathieu Audet | Method for building a search algorithm and method for linking documents with an object |
CN102047316B (zh) * | 2008-05-30 | 2016-08-24 | 先进微装置公司 | 具有分布式第一阶缓存系统及集中式第二阶缓存的着色组合 |
US8286198B2 (en) | 2008-06-06 | 2012-10-09 | Apple Inc. | Application programming interfaces for data parallel computing on multiple processors |
US8225325B2 (en) | 2008-06-06 | 2012-07-17 | Apple Inc. | Multi-dimensional thread grouping for multiple processors |
CA2677921C (en) | 2008-09-12 | 2017-06-13 | Mathieu Ma Audet | Method of managing groups of arrays of documents |
US8489851B2 (en) | 2008-12-11 | 2013-07-16 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
TW201044185A (en) * | 2009-06-09 | 2010-12-16 | Zillians Inc | Virtual world simulation systems and methods utilizing parallel coprocessors, and computer program products thereof |
US8234450B2 (en) * | 2009-07-10 | 2012-07-31 | Via Technologies, Inc. | Efficient data prefetching in the presence of load hits |
US9142057B2 (en) * | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
US9331869B2 (en) | 2010-03-04 | 2016-05-03 | Nvidia Corporation | Input/output request packet handling techniques by a device specific kernel mode driver |
JP5242628B2 (ja) * | 2010-05-06 | 2013-07-24 | 株式会社スクウェア・エニックス | ゲーム開発におけるプログラマーの生産性を向上させる高級言語 |
US8364999B1 (en) * | 2010-06-23 | 2013-01-29 | Nvdia Corporation | System and method for processor workload metering |
JP5499987B2 (ja) * | 2010-08-13 | 2014-05-21 | 富士通株式会社 | 共有キャッシュメモリ装置 |
US8423516B2 (en) * | 2010-09-15 | 2013-04-16 | International Business Machines Corporation | Speculative execution in a real-time data environment |
US20130198273A1 (en) | 2010-10-16 | 2013-08-01 | James Charles Vago | Methods, devices, and systems for video gaming |
US9058093B2 (en) | 2011-02-01 | 2015-06-16 | 9224-5489 Quebec Inc. | Active element |
CN102682138B (zh) * | 2011-03-15 | 2015-03-11 | 深圳光启高等理工研究院 | 一种数据处理方法 |
GB2529075A (en) * | 2011-06-16 | 2016-02-10 | Imagination Tech Ltd | Graphics processor with non-blocking concurrent architecture |
KR101918464B1 (ko) | 2011-09-14 | 2018-11-15 | 삼성전자 주식회사 | 스위즐드 버추얼 레지스터 기반의 프로세서 및 스위즐 패턴 제공 장치 |
US10289657B2 (en) | 2011-09-25 | 2019-05-14 | 9224-5489 Quebec Inc. | Method of retrieving information elements on an undisplayed portion of an axis of information elements |
CN104025065B (zh) * | 2011-12-21 | 2018-04-06 | 英特尔公司 | 用于存储器层次察觉的生产者‑消费者指令的装置和方法 |
US8373710B1 (en) * | 2011-12-30 | 2013-02-12 | GIS Federal LLC | Method and system for improving computational concurrency using a multi-threaded GPU calculation engine |
US9519693B2 (en) | 2012-06-11 | 2016-12-13 | 9224-5489 Quebec Inc. | Method and apparatus for displaying data element axes |
US9646080B2 (en) | 2012-06-12 | 2017-05-09 | 9224-5489 Quebec Inc. | Multi-functions axis-based interface |
CN102880509B (zh) * | 2012-09-17 | 2014-09-24 | 北京大学 | 基于cuda的格网数字高程模型邻域分析的系统和方法 |
US9849372B2 (en) * | 2012-09-28 | 2017-12-26 | Sony Interactive Entertainment Inc. | Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title |
US9356645B2 (en) | 2012-11-16 | 2016-05-31 | International Business Machines Corporation | Saving bandwidth in transmission of compressed data |
US9632801B2 (en) | 2014-04-09 | 2017-04-25 | Intel Corporation | Banked memory access efficiency by a graphics processor |
CN105892931A (zh) * | 2014-05-16 | 2016-08-24 | 上海京知信息科技有限公司 | 一种支持基于智能闪存缓存的异构cpu-gpu系统架构的操作系统原型 |
US9946771B2 (en) | 2014-05-30 | 2018-04-17 | Apple Inc. | User interface for searching |
KR101620602B1 (ko) | 2014-10-29 | 2016-05-11 | 재단법인대구경북과학기술원 | Gpu를 이용한 큰 규모 그래프 처리 시스템 및 방법 |
US20160210231A1 (en) * | 2015-01-21 | 2016-07-21 | Mediatek Singapore Pte. Ltd. | Heterogeneous system architecture for shared memory |
US11169925B2 (en) * | 2015-08-25 | 2021-11-09 | Samsung Electronics Co., Ltd. | Capturing temporal store streams into CPU caches by dynamically varying store streaming thresholds |
JP6381823B2 (ja) * | 2015-11-22 | 2018-08-29 | 浩平 海外 | データベース処理高速化のシステム、方法、及び、プログラム |
US10402234B2 (en) * | 2016-04-15 | 2019-09-03 | Nec Corporation | Fine-grain synchronization in data-parallel jobs |
US10402235B2 (en) * | 2016-04-15 | 2019-09-03 | Nec Corporation | Fine-grain synchronization in data-parallel jobs for distributed machine learning |
US11356334B2 (en) * | 2016-04-15 | 2022-06-07 | Nec Corporation | Communication efficient sparse-reduce in distributed machine learning |
CN105827976A (zh) * | 2016-04-26 | 2016-08-03 | 北京博瑞空间科技发展有限公司 | 基于gpu的视频采集与处理装置及系统 |
US10192281B2 (en) | 2016-07-07 | 2019-01-29 | Intel Corporation | Graphics command parsing mechanism |
CN107861890B (zh) * | 2016-09-22 | 2020-04-14 | 龙芯中科技术有限公司 | 访存处理方法、装置及电子设备 |
KR102725293B1 (ko) * | 2016-12-28 | 2024-11-01 | 재단법인대구경북과학기술원 | 그래프 처리 시스템 및 그래프 처리 시스템의 동작 방법 |
US10379827B2 (en) * | 2016-12-29 | 2019-08-13 | Intel Corporation | Automatic identification and generation of non-temporal store and load operations in a dynamic optimization environment |
US10325341B2 (en) * | 2017-04-21 | 2019-06-18 | Intel Corporation | Handling pipeline submissions across many compute units |
CA3007166C (en) | 2017-06-05 | 2024-04-30 | 9224-5489 Quebec Inc. | Method and apparatus of aligning information element axes |
US11275556B2 (en) | 2018-02-27 | 2022-03-15 | Zetane Systems Inc. | Method, computer-readable medium, and processing unit for programming using transforms on heterogeneous data |
CN108509374A (zh) * | 2018-04-13 | 2018-09-07 | 济南浪潮高新科技投资发展有限公司 | 一种实现申威笔记本显示芯片配置的方法 |
US11086552B2 (en) * | 2019-04-26 | 2021-08-10 | EMC IP Holding Company LLC | System and method for selective backup promotion using a dynamically reserved memory register |
CN111898747B (zh) * | 2019-05-05 | 2023-06-30 | 杭州海康威视数字技术股份有限公司 | 一种特征比对方法及电子设备 |
GB2597496B (en) * | 2020-07-23 | 2024-04-03 | Advanced Risc Mach Ltd | Data processing systems |
CN111930525B (zh) * | 2020-10-10 | 2021-02-02 | 北京世纪好未来教育科技有限公司 | Gpu资源使用方法、电子设备及计算机可读介质 |
CN116048816B (zh) * | 2023-03-23 | 2023-08-22 | 摩尔线程智能科技(北京)有限责任公司 | 数据请求处理方法、装置、电子设备和存储介质 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5581705A (en) * | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5696985A (en) * | 1995-06-07 | 1997-12-09 | International Business Machines Corporation | Video processor |
US5778096A (en) * | 1995-06-12 | 1998-07-07 | S3, Incorporated | Decompression of MPEG compressed data in a computer system |
US5842004A (en) * | 1995-08-04 | 1998-11-24 | Sun Microsystems, Inc. | Method and apparatus for decompression of compressed geometric three-dimensional graphics data |
US5841973A (en) * | 1996-03-13 | 1998-11-24 | Cray Research, Inc. | Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory |
US5821950A (en) * | 1996-04-18 | 1998-10-13 | Hewlett-Packard Company | Computer graphics system utilizing parallel processing for enhanced performance |
US5740409A (en) * | 1996-07-01 | 1998-04-14 | Sun Microsystems, Inc. | Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities |
US6124868A (en) * | 1998-03-24 | 2000-09-26 | Ati Technologies, Inc. | Method and apparatus for multiple co-processor utilization of a ring buffer |
US6801207B1 (en) * | 1998-10-09 | 2004-10-05 | Advanced Micro Devices, Inc. | Multimedia processor employing a shared CPU-graphics cache |
US6363438B1 (en) * | 1999-02-03 | 2002-03-26 | Sun Microsystems, Inc. | Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers |
US6601104B1 (en) * | 1999-03-11 | 2003-07-29 | Realtime Data Llc | System and methods for accelerated data storage and retrieval |
US6449699B2 (en) * | 1999-03-29 | 2002-09-10 | International Business Machines Corporation | Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems |
JP2001118082A (ja) * | 1999-10-15 | 2001-04-27 | Toshiba Corp | 描画演算処理装置 |
US6574725B1 (en) * | 1999-11-01 | 2003-06-03 | Advanced Micro Devices, Inc. | Method and mechanism for speculatively executing threads of instructions |
US7236637B2 (en) * | 1999-11-24 | 2007-06-26 | Ge Medical Systems Information Technologies, Inc. | Method and apparatus for transmission and display of a compressed digitized image |
US6801208B2 (en) * | 2000-12-27 | 2004-10-05 | Intel Corporation | System and method for cache sharing |
US6725296B2 (en) * | 2001-07-26 | 2004-04-20 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers |
US6820174B2 (en) * | 2002-01-18 | 2004-11-16 | International Business Machines Corporation | Multi-processor computer system using partition group directories to maintain cache coherence |
US6816161B2 (en) * | 2002-01-30 | 2004-11-09 | Sun Microsystems, Inc. | Vertex assembly buffer and primitive launch buffer |
US7103748B2 (en) * | 2002-12-12 | 2006-09-05 | International Business Machines Corporation | Memory management for real-time applications |
US6820143B2 (en) * | 2002-12-17 | 2004-11-16 | International Business Machines Corporation | On-chip data transfer in multi-processor system |
US6961820B2 (en) * | 2003-02-13 | 2005-11-01 | International Business Machines Corporation | System and method for identifying and accessing streaming data in a locked portion of a cache |
-
2003
- 2003-06-30 US US10/611,415 patent/US6862027B2/en not_active Expired - Fee Related
-
2004
- 2004-05-28 EP EP04012762A patent/EP1498824A3/en not_active Withdrawn
- 2004-06-28 JP JP2004190393A patent/JP3886988B2/ja not_active Expired - Fee Related
- 2004-12-30 US US11/027,454 patent/US7333114B2/en not_active Expired - Fee Related
-
2005
- 2005-02-25 US US11/065,343 patent/US20060095672A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20040263519A1 (en) | 2004-12-30 |
US20050122339A1 (en) | 2005-06-09 |
EP1498824A3 (en) | 2009-05-20 |
US20060095672A1 (en) | 2006-05-04 |
US7333114B2 (en) | 2008-02-19 |
JP2005025749A (ja) | 2005-01-27 |
EP1498824A2 (en) | 2005-01-19 |
US6862027B2 (en) | 2005-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3886988B2 (ja) | データ生成タスクの並列実行システムおよび方法 | |
US7355601B2 (en) | System and method for transfer of data between processors using a locked set, head and tail pointers | |
US10402937B2 (en) | Multi-GPU frame rendering | |
US9916643B1 (en) | Multi-sample antialiasing optimization via edge tracking | |
US10162642B2 (en) | Shader with global and instruction caches | |
CN107250996B (zh) | 用于存储器分级体系的压实的方法和装置 | |
JP5229968B2 (ja) | 複数クラスデータキャッシュポリシー | |
CN102713837B (zh) | 用于管理并行高速缓存层级的指令 | |
US9513975B2 (en) | Technique for computational nested parallelism | |
TWI489385B (zh) | 一種用於預先擷取快取線的電腦實作方法與子系統 | |
JP4493626B2 (ja) | マルチプロセッサシステム、ライブラリモジュール、および描画処理方法 | |
US20050219253A1 (en) | Render-cache controller for multithreading, multi-core graphics processor | |
US20060106591A1 (en) | System with PPU/GPU architecture | |
US10430915B2 (en) | Multi-GPU frame rendering | |
JP2010086528A (ja) | 単一パステセレーション | |
US7385608B1 (en) | State tracking methodology | |
US20170372448A1 (en) | Reducing Memory Access Latencies During Ray Traversal | |
US9720842B2 (en) | Adaptive multilevel binning to improve hierarchical caching | |
TWI525438B (zh) | 透過貼圖硬體執行記憶體存取操作之技術 | |
TW201439770A (zh) | 透過貼圖硬體執行記憶體存取操作之技術 | |
US9971699B2 (en) | Method to control cache replacement for decoupled data fetch | |
US8144156B1 (en) | Sequencer with async SIMD array | |
US20030011592A1 (en) | Index processor | |
US8686999B2 (en) | Dynamic fragment coverage antialiasing | |
US8223157B1 (en) | Stochastic super sampling or automatic accumulation buffering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060907 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20060907 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20060927 |
|
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: 20061031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061122 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101201 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111201 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131201 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |