JP2004272894A - グラフィックス処理ユニットのマルチスレッド式カーネル - Google Patents
グラフィックス処理ユニットのマルチスレッド式カーネル Download PDFInfo
- Publication number
- JP2004272894A JP2004272894A JP2004042172A JP2004042172A JP2004272894A JP 2004272894 A JP2004272894 A JP 2004272894A JP 2004042172 A JP2004042172 A JP 2004042172A JP 2004042172 A JP2004042172 A JP 2004042172A JP 2004272894 A JP2004272894 A JP 2004272894A
- Authority
- JP
- Japan
- Prior art keywords
- coprocessor
- memory
- task
- processing
- buffer
- 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
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/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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/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
-
- 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
- G06F9/5016—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 the resource being the 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】 コプロセッサの処理をスケジューリングし、これによって、アプリケーションが、スケジューラにタスクをサブミットでき、スケジューラが、各アプリケーションが資格を与えられる処理の量および処理の順序を判定できる、システムおよび方法を提供する。この目的に関して、処理を必要とするタスクを、メモリマネージャによって管理される物理メモリまたは仮想メモリに保管することができる。本発明は、特定のタスクが処理の準備ができているかどうかを判定するさまざまな技法も提供する。「実行リスト」を使用して、コプロセッサが、タスクの間または割込みの後で時間を浪費しないことを保証することができる。
【選択図】 図2
Description
前に定義した動作(上のステップ1から16を参照されたい)の一部またはすべてを、DMAバッファがハードウェアにサブミットされる前に行うことができる。しかし、これらの動作の一部は、DMAバッファがハードウェアにサブミットされるまで実行が困難である場合がある。たとえば、メモリリソースの位置は、DMAバッファがコプロセッサにサブミットされる直前まで、判定が困難である可能性がある。これは、補助メモリリソースが、コプロセッサで実行されるときに各DMAバッファと共に移動される可能性があるからである。
コマンドバッファが、APIによってコプロセッサカーネルにサブミットされるときに、カーネルモードドライバは、ハードウェア固有のDMAバッファおよびそのDMAバッファを実行するのに必要なメモリリソースのリストを生成する役割を担うことができる。特定のDMAバッファフォーマットが、IHVによって定義される場合があるが、ソフトウェアプロバイダは、自身がカーネルモードドライバのリソースリストのフォーマットを定義する作業を知ることができる。
一般に、DMAバッファによって参照されるメモリリソースは、コプロセッサによる実行のためにDMAバッファがサブミットされる前に、メモリ内に持ち込まれる。参照されるメモリリソースをメモリ内に持ち込むことを、リソースのページングと称する。ページングに、上で説明した準備ワーカースレッドと、カーネルモードドライバなどのドライバの間の対話を含めることができる。準備ワーカースレッドと補助メモリマネージャの間の動きを示す擬似アルゴリズムについて、図6を参照されたい。
2)ページイン:特定のメモリリソースをシステムメモリから補助メモリ内の空き位置に持ち込む;
3)再配置:特定のメモリリソースをある補助メモリ位置から別の補助メモリ位置に移動する。
上で説明したコマンドラインを使用して、スケジューラによってページングバッファを生成して、コマンドを実行することができる。本発明に関連して使用されるページングバッファのさまざまな実施形態は、図7に示されているように実施することができる。
ページングバッファ生成時の前処理;
ページングバッファ内の同期ポイントでのCPU処理;
メモリリソースを移動する「Blit」コマンド;
ページングバッファが完了した後のCPU作業の後処理。
コプロセッサスケジューリングの信頼性を高めるために、コプロセッサによって、DMAバッファ全体より微細な粒度での割込みをサポートすることができる。たとえば、コプロセッサおよびサポートするハードウェアによって、三角形の処理の前または後だけではなく、三角形の処理の中での割込みをサポートすることができる。
上で説明した基本的なスケジューリングモデルの複雑さの一部は、コプロセッサコンテキストが共通のコプロセッサアドレス空間を共有している可能性があるという事実に起因する。このアドレス空間を仮想化することによって、よりスマートなシステムを提供することができる。アドレス空間の仮想化では、補助メモリマネージャによって、メモリを移動することができ、リソースを補助メモリから完全に追い出すことさえできる。これは、リソースに関する実際にコプロセッサから可視のアドレスを、その寿命の間に変更できることを意味する。したがって、ユーザモードで構築されるコマンドバッファは、コマンドバッファが実行のためにスケジューリングされるまでアドレスが未知である可能性があるので、そのアドレスによって割り当てを直接に参照することができない。
2)メモリアクセスに関するコマンドバッファの確認
3)カーネルモードでのメモリリソースリストの構築
4)別々のコマンドバッファおよびDMAバッファの作成
5)割り込まれたDMAバッファのリソースの割込み前の位置への移動
プロセッサコンテキストごとの仮想アドレス空間を提供する際に、特定のコプロセッサコンテキスト内での割り当てによって、そのコンテキストのアドレス空間内の独自のアドレスを得ることができる。このアドレスは、割り当ての寿命の間に変更する必要がない。したがって、コマンドバッファによって、このアドレスを直接に参照することができ、パッチは不要である。コマンドバッファを確認し、DMAバッファにコピーする必要もなくなる。DMAバッファでのメモリ参照は、コプロセッサの仮想アドレス空間内であり、そのアドレス空間が、実際にすべてのコプロセッサコンテキストについてプライベートなので、有効性に関してメモリ参照を確認する必要はなく、したがって、アプリケーションに可視でないDMAバッファ内のコマンドバッファの確認された内容を隠蔽する必要はない。割り当てまたは追い出された割り当てによって占められていないアドレス空間(ハンドルまたは実アドレス)は、ハードウェアによってダミーページにリダイレクトされるか、アクセスフォールトを引き起こすことができる。これによって、コンテキストが、アクセスすると思われないメモリにアクセスできないので、カーネルモードメモリのセキュリティが保たれる。
高度なモデルで、カーネルモードのビデオメモリマネージャ「VidMm」などの補助メモリマネージャによって、コプロセッサコンテキストに関する仮想アドレス空間を提供でき、さまざまなコプロセッサコンテキストの間で、これらがメモリの公平な分け前を得られるように物理メモリを管理することができる。基本モデルの割り当て方式に対するこの改善のさまざまな実施形態を、図9に示す。図9には、当業者に馴染みのある用語を使用して本発明の実施形態を示す。というのは、これが、当技術分野で認識された概念に対応するからである。たとえば、「VidMm」は、ビデオメモリマネージャであり、「サンク(Thunk)インターフェース」は、サンクインターフェースである。しかし、この用語は、本発明をより明瞭に説明するのに使用されるが、本発明を制限する意図の表明と解釈するべきではないことに留意されたい。したがって、「VidMm」は、任意の補助メモリに関するメモリマネージャとすることができ、「サンクインターフェース」は、任意の適当なインターフェースとすることができる。
高度なモデルでのスケジューリングは、基本モデルでのスケジューリングに非常に似ている。DMAバッファがコプロセッサにサブミットされる前にDMAバッファを準備するワーカースレッドが依然としてある。しかし、高度なモデルでワーカースレッドによって達成できる作業は、ページング動作だけに制限される必要がある。
高度なモデルでのページングは、基本モデルのページングと異なる。高度なモデルでは、ページングされる割り当てのアドレスが、既に知られており、メモリマネージャは、単に、それを有効にする必要がある。リソースリスト内の割り当てを有効にするために、メモリマネージャは、空いている物理補助メモリの範囲を見つけ、ドライバに、ページテーブルまたはハンドルをその範囲にマッピングするように要求する必要がある。必要であれば、物理メモリの範囲が連続するページのセットになることを要求することができる。
当技術分野で既知または将来に開発される、仮想アドレス空間の提供に関する技法のいずれかを、本発明と共に使用することができる。そのようなアドレス空間を使用できる方法を示すために、共通の仮想アドレス空間技法を使用する2つの例を、本明細書で示す。コプロセッサの仮想アドレス空間を作成する複数の方法があり、当業者が本明細書の例から外挿できることを理解されたい。これに関して、可変長フラットページテーブルおよびマルチレベルページテーブルを使用する仮想アドレス空間を、本明細書で説明する。
1)ページテーブル自体を、物理アドレスを介して参照することができる。
2)陰極線管(CRT)を、連続するメモリ範囲について物理アドレスにプログラムすることができる。
3)仮想印刷エンジン(VPE)によって、物理アドレスに直接にDMAを実行することができる。
4)オーバーレイは、物理アドレスから直接に読み取ることができる。
5)コプロセッサコンテキストを、物理アドレスを介して参照することができる。
6)プライマリリングバッファを、物理アドレスを介して参照することができる。
コプロセッサコンテキストごとの仮想アドレス空間の追加によって、高度なスケジューリングモデルが、適度に良好に動作し、一般に、特にメモリ圧迫がほとんどまたはまったくないときに、大きいCPUオーバーヘッドを必要としない。ほとんどの場合に、DMAバッファをスケジューラにサブミットできるときに、そのバッファによって参照されるリソースが、既にメモリ内に存在し、したがって、DMAバッファは、ページングスレッドによるページングをまったく必要としない。しかし、スケジューリングに関して、タイムキーピング(time keeping)の精度を高めることによって、モデルをさらに改善することができる。
1)無効なリングバッファまたはDMAバッファを参照しているコンテキストへのコンテキスト切り替えが発生する。
2)プリミティブが描かれようとしており、必要なメモリリソースの一部が存在しない(たとえば、頂点シェーダコード、頂点バッファ、テクスチャ)。
2)コプロセッサが、無効なメモリアクセスによって引き起こされるページフォールトを生成する
3)スケジューラが、異なるコンテキストへの切り替えを要求する
4)コプロセッサが、DMAストリーム内の無効なコマンドに続いて無効動作割込みを生成する
前に提示したデマンドフォールトモデルは、複数のイベントをシグナリングするために割込みを激しく使用する可能性がある。ページフォールトなど、これらのイベントの一部は、メモリ圧迫の下で非常に頻繁に発生する可能性がある。割込みが発生する時と、コプロセッサがCPUによって新しいタスクを与えられる時の間に、コプロセッサが長時間停止状態を生じる可能性がある。割込み待ち時間を隠蔽し、コプロセッサを動作状態に保つために、実行リストという概念が導入された。
2)現在のコンテキストが、ページフォールトを生成した。
3)現在のコンテキストが、一般保護フォールト(コプロセッサによってサポートされる場合に)を生成した。
4)コプロセッサが、新しい実行リストに切り替えることを要求された。
コプロセッサが、現在、実行リストA(1−3−5−2)を実行している。
コンテキスト4に関するコマンドがサブミットされるが、コンテキスト4は、アイドルであり、コンテキスト1より高い優先順位である。実行リストB(4−1−3−2)が生成され、スケジューラが、実行リストBをコプロセッサにサブミットする。
コンテキスト#1は、コプロセッサが、実行リストBからのコンテキスト#4に遷移するまで実行される。
コプロセッサが、遷移をシグナリングする割込みを生成する。
コプロセッサが、コンテキスト#4から#1に遷移し、その後、CPUが割り込まれる前に#3に遷移する。
CPUが、割り込まれ、コンテキスト切り替えハンドラが呼び出される。
ドライバが、現在のコプロセッサコンテキストをサンプリングするが、これは#3である。
コプロセッサが、現在、実行リストA(1−3−5−2)を実行している。
コンテキスト4に関するコマンドがサブミットされるが、コンテキスト4は、アイドルであり、コンテキスト1より高い優先順位である。スケジューラが、実行リストBをコプロセッサにサブミットする。
スケジューラが、実行リストBを構築するのにビジーである間に、コプロセッサがコンテキスト#3に遷移する。
コプロセッサが、コンテキスト#3への遷移をシグナリングする割込みを生成する。
CPUが、割り込まれ、コンテキスト切り替えハンドラが呼び出される。
ドライバが現在のコプロセッサコンテキストをサンプリングするが、これは#3である。
2)各コンテキスト切り替え(コンテキストXからXへのにせのコンテキスト切り替えを含む)に割込みを生成する能力。
3)VidMmが任意の時に現在実行されているコプロセッサコンテキストを照会する方法。
4)割込みの前に、進行中のコプロセッサコンテキストをメモリに保存すること。
5)スケジューラがコンテキスト切り替えの理由を判定できるようにするためにCPUによってコンテキストが可読になる方法でのコプロセッサコンテキストの保存。
2)コンテキスト#1のタイムカンタムが満了し、スケジューラが、新しい実行リストB(2−3−4−5−1)を送る。
3)CPUでカンタム満了を処理している間に、コプロセッサが、コンテキスト#1が空になるのでコンテキスト#1について完了し、したがってコンテキスト#2に遷移する。コプロセッサは、このイベントについてコンテキスト切り替え割込みを生成した。
4)コプロセッサが、新しい実行リストに関する通知をCPUから受け取り、したがって、それに遷移した。コプロセッサが、このイベントに関するコンテキスト切り替え割込みを生成した。
5)新しい実行リストのコンテキスト#2のレンダリングコマンドを処理している間に、コプロセッサが、ページフォールトに出会い、したがって、コンテキスト#3に遷移した。コプロセッサが、このイベントに関するコンテキスト切り替え割込みを生成した。
6)コンテキスト#3が、ページフォールトを発生し、したがって、コプロセッサが、コンテキスト#4に切り替えた。コプロセッサが、このイベントに関するコンテキスト切り替え割込みを生成した。
7)CPUが、最終的にコンテキスト切り替えについて割り込まれる。最初の割込みが送出されて以来、4つのコンテキスト切り替えが実際に発生した。
高度なスケジューリングモデルでのメモリ保護の導入に伴って、コプロセッサに送られるDMAバッファが、主として、実行中のアプリケーションのプロセス内部のユーザモードドライバによって構築される可能性がある。これらのDMAバッファは、アプリケーションのプロセス内でマッピングされる可能性があり、ユーザモードドライバは、これらに直接に書き込むことができるが、カーネルドライバは、これを確認することができない。DMAバッファは、誤ってその仮想アドレスにアクセスするアプリケーションによって、または悪意のあるアプリケーションによって故意に、書き込まれる可能性がある。ドライバモデルがセキュアであることを可能にするために、すなわち、アプリケーションが、するべきではないリソースにアクセスできなくするために、ユーザモードで構築されるDMAバッファを、行うことが許可されるものに関して制限することができる。具体的に言うと、組み込まれるDMAバッファは、下記の例示的な方法で制限された機能性を有することができる。
2)現在のディスプレイ(たとえば、CRT、随意アクセス制御(DAC)、Technical Document Management System(TDMS)、Television−Out Port(TV−OUT)、Internet2(I2C)バス)に影響する命令を含めることを許可されることができない。
3)アダプタ全般(たとえば位相ロックループ(PLL))に影響する命令を含めることができない。
4)限られた電源管理および/または構成スペースを有することができる。
5)コンテキスト切り替えを防ぐ命令を含めることを許可されることができない。
2)DACのルックアップテーブルの更新(DAC LUTのプログラミングが、特権的機能性である必要が絶対にないことに留意されたい。というのは、どのアプリケーションでも、望むならば、プライマリスクリーンにレンダリングすることができ、ルックアップテーブル(LUT)の再プログラミングによって、そうでなければアクセスできない情報へのアクセスをアプリケーションがユーザに与えられるようにはならないからである。
3)ディスプレイ出力のプログラミング(TDMS、TV−OUT、…)
4)子デバイス/モニタとの通信(I2C、…)
5)クロックのプログラミング(PLL)
6)コプロセッサの電源状態の変更
7)コプロセッサの構成(構成スペース、BIOS、…)
この機能性は、通常は、アプリケーションレンダリングストリームと完全に独立のシステムイベント(たとえば、ブート、解像度変更、pnp検出、電源管理)の後に必要になる。したがって、この機能性は、特定のアプリケーションのコプロセッサコンテキストでキューイングされることを必要としない。この機能性は、特定のシステムイベントが発生しているときに、ユーザモードドライバからの介入を一切伴わずに、カーネルモードドライバ自体によって使用することができる。
1)特権フェンスの挿入
2)フリップ命令の挿入
3)「コンテキスト切り替えなし」領域の挿入
特殊なハードウェアサポートを必要としない特権的DMAバッファをサポートする方法の1つが、ハードウェアに送られる実際のDMAバッファをカーネルモードで構築することを要求することである。このシナリオでは、ユーザモードドライバが、DMAバッファによく似たコマンドバッファを構築し、カーネルモードドライバにサブミットする。カーネルモードドライバは、このコマンドバッファを確認し、カーネルモードでのみ可視のDMAバッファにコピーする。確認中に、カーネルモードドライバは、特権的命令が存在しないことを検証する。これは、基本モデルで要求される確認に似ているが、メモリが仮想化されるので、メモリアクセスに関する確認は不要である。
おそらく、特権的DMAチャネルをサポートする最も簡単なハードウェア手法は、特権的コマンドをコプロセッサコンテキストリングに直接に挿入することである。リング自体は、既に特権的チャネルであり、カーネルモードからのみアクセス可能である。これを、図20の図に示す。
コプロセッサ内で限定DMAバッファ対特権的DMAバッファをサポートする異なる手法を、図21に示す。これを参照して、開始アドレスおよび終了アドレスの両方をDWORDに整列できることに留意されたい。アドレスの未使用ビットは、フラグの指定に再利用することができる。開始アドレスの第1ビットによって、リダイレクトされるDMAバッファが特権的DMAバッファであることを指定することができる。セキュリティを強化するために、特権的DMAバッファによって、補助メモリ内の物理アドレスを参照することができる。限定DMAバッファによって、コプロセッサコンテキスト仮想アドレス空間内の仮想アドレスを参照することができる。
スケジューラおよび補助メモリマネージャが、コプロセッサコンテキストの進行を追跡し、そのコンテキストのDMAストリーム内の命令のフローを制御するために、DMAストリーム内で下記の例示的命令をサポートするようにコプロセッサを構成することができる。
1)フェンス(限定および特権的の両方)
2)トラップ
3)コンテキスト切り替えの許可/禁止
書込フェンスは、前に説明したタイプのフェンスであり、唯一の必要なフェンスタイプである。書込フェンスによって、フェンス命令の前に処理されるすべてのメモリ書込が、グローバルに可視になる(すなわち、それらがキャッシュからフラッシュされ、メモリコントローラから肯定応答が受け取られている)ことが保証される。
読取フェンスは、書込フェンスに似た、より軽いタイプのフェンスである。読取フェンスによって、フェンスの前のレンダリング動作に関するメモリ読取のすべてが終了することが保証されるが、一部の書込が、まだ未解決である可能性がある。読取フェンスがサポートされる場合には、スケジューラは、これを使用して、非レンダターゲット割り当ての寿命を制御する。
トップオブパイプフェンスは、非常に軽量のフェンスである。トップオブパイプフェンスのサポートは、任意選択である。トップオブパイプフェンスによって、DMAバッファ内でフェンス命令の前の最後のバイトが、コプロセッサによって読み取られた(必ずしも処理されていない)ことだけが保証される。コプロセッサは、フェンスが処理された後に(そのDMAバッファンの内容がもはや有効でなくなるので)、DMAバッファのうちでトップオブパイプフェンスに先立つ部分を再読み取りしない場合がある。サポートされる場合に、このタイプのフェンスは、DMAバッファの寿命を制御するのにスケジューラによって使用される。
2)コンテキスト切り替え命令がDMAストリームに存在しない。
3)DMAストリームの命令が使い果たされない。
4)ページフォールトが発生しない(ページレベルフォールトがサポートされる場合)。
全画面アプリケーションが、パイプライン内のバブルなしでシームレスに動作できるようにするために、コプロセッサによって、フリップ(すなわち、ディスプレイのベースアドレスの変更)をキューイングする命令を提供することができる。ディスプレイサーフェスは、一般に、物理モデルから連続的に割り当てられ、仮想アドレスではなく物理アドレスを使用してCRTCによって参照される。したがって、フリップ命令を使用して、CRTCを、表示される新しい物理アドレスにプログラムすることができる。これは、物理アドレスであって仮想アドレスではないので、不良アプリケーションが、潜在的に、補助メモリのうちで別のアプリケーションまたはユーザに属する部分(秘密が含まれる可能性がある)を表示するようにCRTCをプログラムすることができる。このため、フリップ命令を実施して、宛先が確認されてからカーネルモデルドライバによってのみDMAストリームに挿入される特権的命令であることを保証することによって、ほとんどのコンピュータシステムのセキュリティを保護することができる。
前に定義した制御命令を使用して、スケジューラによって、クリティカルセクションおよびミューテクスなどの高水準の同期化オブジェクトを構築することができる。スケジューラは、待機の条件が満たされたならば、CPUによって明示的に再スケジューリングされるまで、選択されたDMAバッファを実行されないように保護することによって、そのような同期化プリミティブを実施することができる。オブジェクトの待機は、フェンスなど、スケジューラによって実施することができる。論理的にフェンスに続くDMAバッファを、スケジューラによってキューイングすることができるが、待機条件が満たされるまで、コプロセッサコンテキストのリングにサブミットすることはできない。オブジェクトを待つようになったならば、シグナリングされるまで、スケジューラによってコプロセッサコンテキストをその特定のオブジェクトのウェイトリストに移動することができる。コプロセッサコンテキストDMAストリームに、割込みコマンドが続くフェンスを挿入することによって、オブジェクトにシグナリングすることができる。そのような割込みを受け取るときに、スケジューラは、どのオブジェクトがシグナリングされているかを識別し、待っているコプロセッサコンテキストをレディキューに戻さなければならないかどうかを判定することができる。コプロセッサコンテキストをレディキューに戻すときに、スケジューラは、リングからしまわれたDMAバッファを挿入する。
セマフォ:指定された数のコプロセッサスレッドが、同時に共有リソースへのアクセス権を有することができる。
スケジューラは、上で説明した同期化機構を複数の目的に使用することができる。割込みによってコプロセッサが停止しないので、CPUは、通知のサブセットだけを見る必要があり、したがって、一部の通知を、一緒に圧搾することができる。DMAバッファ内のすべての通知に正しく応答するために、スケジューラは、挿入されたイベントのヒストリを、これらのイベントを処理するのに必要なすべてのパラメータと共に維持することができる。
現在のコプロセッサは、PCI仕様によって許可される限度に非常に近いところまでPCIアパーチャを公開している。将来の世代のコプロセッサは、アパーチャを介して公開できるものより多くのオンボードの補助メモリを有する。したがって、将来に、すべての補助メモリが同時にPCIアパーチャを介して可視になると仮定することができなくなる。
前に説明したサーフェスレベルフォールトは、ほとんどの場合に良好に働くことができるが、改善できるシナリオがある。たとえば、サーフェスレベルフォールトを使用すると、非常に大きいデータセットを使用するあるアプリケーションが、同時にメモリ内にデータセット全体を置くことができず、したがって正しく機能しない場合がある。高度なモデルで実施できるこれに対する解決策が、ページレベルフォールト機構である。
Claims (79)
- メモリと、
前記メモリからデータを読み取り、前記メモリにデータを書き込むように構成された中央処理装置(CPU)と、
少なくとも前記メモリからデータを読み取るように構成されたグラフィックス処理ユニット(GPU)であって、マルチスレッド化された方法でアプリケーションを実行し、各実行中のアプリケーションに、前記メモリへのそれ自体の仮想アドレス空間を与えるように構成されるGPUと
を備えることを特徴とするコンピュータシステム。 - 前記GPUは、実行リストに基づいて次に実行されるアプリケーションを選択するように構成されることを特徴とする請求項1に記載のコンピュータシステム。
- 前記CPUは、前記実行リストを維持するように構成されることを特徴とする請求項2に記載のコンピュータシステム。
- 前記GPUは、前記仮想アドレス空間のページングを管理するのにハンドルテーブルを使用することを特徴とする請求項1に記載のコンピュータシステム。
- 前記GPUは、前記仮想アドレス空間のページングを管理するのに、メモリ記述子リストハンドルと共にハンドルテーブルを使用することを特徴とする請求項1に記載のコンピュータシステム。
- 前記GPUは、前記仮想アドレス空間のページングを管理するのにフラットページテーブルを使用することを特徴とする請求項1に記載のコンピュータシステム。
- 前記GPUは、前記仮想アドレス空間のページングを管理するのにマルチレベルページテーブルを使用することを特徴とする請求項1に記載のコンピュータシステム。
- GPUスケジューラをさらに備え、前記GPUスケジューラは、実行ウェーブ内の2つの現在のGPUコンテキストを追跡するように構成されることを特徴とする請求項1に記載のコンピュータシステム。
- 前記GPUは、前記GPUが必要とするロードされていないデータのデマンドフォールトを実行するように構成されることを特徴とする請求項1に記載のコンピュータシステム。
- フォールトのレベルが、サーフェス粒度であることを特徴とする請求項9に記載のコンピュータシステム。
- ページフォールトが、無効なバッファを参照するコンテキストに向かって発生するコンテキスト切り替えに応答して生成されることを特徴とする請求項10に記載のコンピュータシステム。
- ページフォールトが、前記必要なリソースの一部またはすべてがロードされていないプリミティブを描画する、前記GPUに対する命令に応答して生成されることを特徴とする請求項10に記載のコンピュータシステム。
- 前記GPUは、限定DMAバッファおよび特権的DMAバッファの両方を支援することを特徴とする請求項1に記載のコンピュータシステム。
- 前記GPUは、プログラマブルPCIアパーチャを支援することを特徴とする請求項1に記載のコンピュータシステム。
- コプロセッサによる処理のためにタスクをスケジューリングする方法であって、
コプロセッサによる処理のためにタスクをメモリグループに集めるステップであって、前記メモリグループは、第1アプリケーションに関するステップと、
前記タスクをスケジューラに渡すステップであって、スケジューラ機能は、前記タスクを処理する順序を判定することを含み、前記順序は、1つまたは複数の他のアプリケーションに関するタスクを含むことができるステップと、
前記タスクの処理の順序を判定するステップであって、前記順序は、前記第1アプリケーションと1つまたは複数の他のアプリケーションとの間の任意の相対優先順位、ならびに前記第1アプリケーションおよび1つまたは複数の他のアプリケーションが資格を与えられる処理時間の対応する量を考慮に入れるステップと、
任意の必要なメモリリソースがコプロセッサアクセス可能メモリ位置で使用可能であることを保証することによって、処理のためにタスクを準備するステップであって、前記タスクの準備は、前記スケジューラによって決定される前記順序で行われるステップと、
前記準備に従って準備されたタスクを処理のために前記コプロセッサにサブミットするステップと
を備えることを特徴とする方法。 - 前記コプロセッサは、グラフィックス処理ユニット(GPU)を含むことを特徴とする請求項15に記載の方法。
- 前記第1アプリケーションが前記コプロセッサによる処理を必要とする1つまたは複数のタスクを有するときに、アプリケーションプログラムインターフェース(API)を呼び出すステップをさらに備えることを特徴とする請求項15に記載の方法。
- ユーザモードドライバを呼び出すステップをさらに備え、前記ユーザモードドライバの機能は、前記1つまたは複数のタスクに関連するレンダリングコマンドを前記メモリグループに置くことを含むことを特徴とする請求項17に記載の方法。
- 前記レンダリングコマンドを前記APIに返すステップと、これをコプロセッサカーネルにサブミットするステップとをさらに備えることを特徴とする請求項18に記載の方法。
- カーネルモードドライバによってダイナミックメモリアクセス(DMA)バッファを生成するステップをさらに備え、前記コプロセッサによる処理を必要とする1つまたは複数のタスクは、前記DMAバッファを生成するのに使用され、前記DMAバッファは、前記DMAバッファを生成するのに使用された前記1つまたは複数のタスクを表すことを特徴とする請求項15に記載の方法。
- 前記カーネルモードドライバによってメモリリソースのリストを生成するステップをさらに備え、前記リストによって表される前記メモリリソースは、前記DMAバッファによって表される1つまたは複数のタスクを処理するために前記コプロセッサによって必要とされることを特徴とする請求項20に記載の方法。
- 前記コプロセッサアクセス可能メモリ位置内のメモリアドレスを訂正するために、メモリリソースの前記リスト上に前記メモリリソースを持ち込むためにページングバッファを構築するステップをさらに備えることを特徴とする請求項21に記載の方法。
- 前記準備するステップは、任意の必要なメモリリソースをページングするために前記コプロセッサアクセス可能メモリ位置内の位置を判定することができるメモリマネージャプロセスを呼び出す準備スレッドによって達成されることを特徴とする請求項15に記載の方法。
- すべての必要なメモリリソースをページングするのに十分な空きが前記コプロセッサアクセス可能メモリ位置にないと前記メモリマネージャプロセスが判定するときにDMAバッファを分割するステップをさらに備えることを特徴とする請求項23に記載の方法。
- 請求項15に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
- 請求項15に記載の方法を実行する際に使用されるコンピュータ実行可能命令を担持することを特徴とする変調されたデータ信号。
- 請求項15に記載の方法を実行する手段を備えることを特徴とするコンピューティングデバイス。
- コプロセッサによる処理のためにタスクをスケジューリングする方法であって、
コプロセッサによる処理のためにタスクをメモリグループに集めるステップであって、前記メモリグループは、第1アプリケーションに関するステップと、
前記タスクをスケジューラに渡すステップであって、前記スケジューラの機能は、前記タスクの処理の順序を判定することを含み、前記順序は、1つまたは複数の他のアプリケーションに関するタスクを含めることができるステップと、
前記タスクの処理の順序を判定するステップであって、前記順序は、前記第1アプリケーションと1つまたは複数の他のアプリケーションとの間の任意の相対優先順位、ならびに前記第1アプリケーションおよび1つまたは複数の他のアプリケーションが資格を与えられる処理時間の対応する量を考慮に入れるステップと、
任意の必要なメモリリソースが前記コプロセッサによってアクセス可能なメモリ位置で使用可能であることを保証することによって、処理のためにタスクを準備するステップであって、前記タスクの準備は、前記スケジューラによって決定される前記順序で行われるステップと、
タスクを処理のために前記コプロセッサにサブミットするステップと、
コプロセッサ可読メモリを前記さまざまなタスクの間で配分するために前記コプロセッサ可読メモリを管理するステップと、
前記タスクに関する仮想アドレス空間を提供するステップと
を含むことを特徴とする方法。 - 前記コプロセッサは、グラフィックス処理ユニット(GPU)であることを特徴とする請求項28に記載の方法。
- タスクをDMAバッファに保管するステップをさらに備え、前記保管は、ユーザモードドライバによって達成されることを特徴とする請求項28に記載の方法。
- 前記DMAバッファに関連するリソースリストで参照されるメモリリソースを確認するステップをさらに備え、確認するステップは、空いているコプロセッサ可読メモリの範囲を見つけるステップと、その範囲にページテーブルまたはメモリリソースハンドルをマッピングするようにカーネルモードドライバに要求するステップとを伴うことを特徴とする請求項30に記載の方法。
- 前記仮想アドレス空間は、コプロセッサ可読メモリを事前定義されたメモリ量のページに分割するフラットページテーブルの使用を介して仮想化され、さらに、コプロセッサ可読メモリアドレスを指定する識別子を含むページテーブルは、前記仮想アドレス空間内に設けられることを特徴とする請求項28に記載の方法。
- 前記仮想アドレス空間は、コプロセッサ可読メモリを事前定義のメモリ量のページに分割するマルチレベルページテーブルの使用を介して仮想化され、さらに、コプロセッサ可読メモリアドレスを指定する識別子を含む複数ページテーブルは、前記仮想アドレス空間内に設けられることを特徴とする請求項28に記載の方法。
- コプロセッサ可読メモリの一部は、処理を必要とするタスクに関連するすべての必要なメモリリソースがコプロセッサ可読メモリ内で使用可能であるかどうかを示すのに使用されることを特徴とする請求項28に記載の方法。
- 請求項28に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
- 請求項28に記載の方法を実行する際に使用されるコンピュータ実行可能命令を担持することを特徴とする変調されたデータ信号。
- 請求項28に記載の方法を実行する手段を含むことを特徴とするコンピューティングデバイス。
- ディスプレイサーフェスのベースアドレスを割り当てるステップであって、前記ディスプレイサーフェスは、コプロセッサ可読メモリ内で連続的に割り当てられるステップと、
タスクを前記スケジューラに渡すステップであって、前記タスクの処理は、ディスプレイサーフェスの前記ベースアドレスを再割り当てするステップと
をさらに備えることを特徴とする請求項28に記載の方法。 - 前記タスクの処理は、ディスプレイサーフェスの前記ベースアドレスを即座に再割り当てすることを特徴とする請求項38に記載の方法。
- 前記タスクの処理は、後続のディスプレイ同期期間の発生時にディスプレイサーフェスの前記ベースアドレスを再割り当てすることを特徴とする請求項38に記載の方法。
- コプロセッサによる処理のためにタスクのスケジューリングを支援する装置であって、
中央処理装置(CPU)と、
コプロセッサと、
前記コプロセッサによる処理のためにタスクを生成する1つまたは複数のアプリケーションであって、前記タスクは、まず、アプリケーション固有メモリ位置に保管される1つまたは複数のアプリケーションと、
前記タスクが処理される順序を判定するスケジューラプロセスとを備え、前記順序は、第1アプリケーションと1つまたは複数の他のアプリケーションとの間の任意の相対優先順位、ならびに前記第1アプリケーションおよび1つまたは複数の他のアプリケーションが資格を与えられる処理時間の対応する量を考慮に入れることを特徴とする装置。 - 前記コプロセッサは、GPUであることを特徴とする請求項41に記載の装置。
- 前記コプロセッサは、タスク情報をコプロセッサアクセス可能メモリ位置に自動的に保存することによって、タスクの処理中に割込みを支援することを特徴とする請求項41に記載の装置。
- 1つまたは複数のタスクのプライベートアドレス空間、タスクが累積されるプライベートリングバッファ、およびタスクが処理されていないときにハードウェア状態が保存されるコプロセッサアクセス可能メモリのプライベート部分の少なくとも1つをさらに備えることを特徴とする請求項43に記載の装置。
- 前記コプロッサは、前記スケジューラプロセスによって読み取り可能な指定されたシステムメモリ位置に、タスクからタスクへのコプロセッサ切り替えのヒストリに関する情報を保管することができることを特徴とする請求項41に記載の装置。
- 前記コプロセッサは、前記システムメモリ位置にタスクからタスクへのコプロセッサ切り替えの前記ヒストリに関する情報を保管する前に、前記システムメモリ位置のベースアドレスを指定することを特徴とする請求項45に記載の装置。
- 前記コプロセッサは、前記システムメモリ位置にタスクからタスクへのコプロセッサ切り替えの前記ヒストリに関する情報を保管する前に、前記システムメモリ位置のサイズを指定することを特徴とする請求項45に記載の装置。
- 前記コプロセッサは、前記システムメモリ位置のどこに前記コプロセッサが次に書き込まなければならないかを示す書込ポインタを指定することを特徴とする請求項45に記載の装置。
- 前記コプロセッサは、前記コプロセッサにフェンス命令で指定されるアドレスに前記フェンス命令に関連するデータを書き込ませるフェンス命令を支援することを特徴とする請求項41に記載の装置。
- 前記コプロセッサは、前記コプロセッサによって処理されるときにCPU割込みを生成することができるトラップ命令を支援することを特徴とする請求項41に記載の装置。
- 前記コプロセッサは、コンテキスト切り替えが禁止されるときに前記コプロセッサが現在のコプロセッサタスクから切り替えないようにするコンテキスト切り替え許可/禁止命令を支援することを特徴とする請求項41に記載の装置。
- コプロセッサによる処理のためにタスクの処理を支援するためにアプリケーションにメモリを与える方法であって、
少なくとも1つのアプリケーションに仮想アドレス空間を与えるステップと、
コプロセッサによる処理に関する1つまたは複数のタスクに関する情報を前記仮想アドレス空間内で保管するステップであって、前記1つまたは複数のタスクは、少なくとも部分的に前記少なくとも1つのアプリケーションによって生成されるステップと、
前記仮想アドレス空間内の少なくとも1つの仮想アドレスに対応する物理メモリ内の位置を識別するステップと、
前記1つまたは複数のタスクが処理のために前記コプロセッサにサブミットされるときに、前記仮想アドレス空間内の少なくとも1つの仮想アドレスに対応する物理メモリ内の前記位置にアクセスするステップと
を備えることを特徴とする方法。 - 前記コプロセッサは、グラフィックス処理ユニット(GPU)を含むことを特徴とする請求項52に記載の方法。
- 物理メモリ内の位置の前記識別は、メモリリソースを物理メモリ内の別の位置に移動することができるメモリマネージャによって達成されることを特徴とする請求項52に記載の方法。
- 1つまたは複数のタスクに関する前記情報は、前記仮想アドレス空間の別々の部分に割り当てられ、各部分は、前記タスクを処理するのに必要なメモリリソースの前記位置を含むコンテキスト情報を含むことを特徴とする請求項52に記載の方法。
- メモリリソースを確認するステップをさらに備え、前記確認するステップは、空いている物理メモリの範囲を見つけるステップと、その範囲にメモリリソースハンドルをマッピングするようにドライバに要求するステップとを含むことを特徴とする請求項52に記載の方法。
- 前記仮想アドレス空間は、コプロセッサ可読メモリを事前定義のメモリ量のページに分割するフラットページテーブルの使用を介して仮想化され、さらに、コプロセッサ可読メモリアドレスを指定する識別子を含むページテーブルは、前記仮想アドレス空間内に設けられることを特徴とする請求項52に記載の方法。
- 前記仮想アドレス空間は、コプロセッサ可読メモリを事前定義のメモリ量のページに分割するマルチレベルページテーブルの使用を介して仮想化され、さらに、コプロセッサ可読メモリアドレスを指定する識別子を含む複数ページテーブルは、前記仮想アドレス空間内に設けられることを特徴とする請求項52に記載の方法。
- 物理メモリの一部は、処理を必要とするタスクに関連するすべての必要なメモリリソースは物理メモリ内で処理に使用可能であるかどうかを示すのに使用されることを特徴とする請求項52に記載の方法。
- 前記物理メモリは、2つの部分、すなわち、大きい部分および小さい部分を含み、前記小さい部分は、前記大きい部分のメモリ位置への参照を含むことを特徴とする請求項52に記載の方法。
- 前記小さい部分は、前記大きい部分内のメモリの4キロバイト(6)ブロックを参照することを特徴とする請求項60に記載の方法。
- 補助メモリマネージャが、前記参照を前記大きい部分内のメモリ位置にマッピングすることを特徴とする請求項60に記載の方法。
- 請求項52に記載の方法を実行するコンピュータ実行可能命令を備えることを特徴とするコンピュータ可読媒体。
- 請求項52に記載の方法を実行する際に使用されるコンピュータ実行可能命令を担持することを特徴とする変調されたデータ信号。
- 請求項52に記載の方法を実行する手段を備えることを特徴とするコンピューティングデバイス。
- コプロセッシングスケジューラと共に使用されるコプロセッサであって、
スケジューラプロセスによってそれにサブミットされるタスクを処理するコプロセッサであって、前記スケジューラプロセスは、前記タスクの処理を要求するアプリケーションの優先順位に従って前記コプロセッサにタスクをサブミットし、前記優先順位は、1つまたは複数のアプリケーションが資格を与えられるコプロセッサ時間の量を決定するコプロセッサ
を備えることを特徴とするコプロセッサ。 - 前記タスクは、まず、アプリケーション固有メモリ位置に保管されることを特徴とする請求項66に記載のコプロセッサ。
- 前記コプロセッサは、コンテキストごとのアドレス空間内にタスクに関する情報を保管し、さらに、タスクに関する前記情報は、1つまたは複数の間に入るタスクを処理した後に前記コプロセッサが前記タスクまたは前記タスクの一部を処理できるようにすることを特徴とする請求項66に記載のコプロセッサ。
- 前記コプロセッサは、切り替えイベントが発生するときに実行リストの後続タスクに即座に切り替えることによって、前記実行リストからのタスクを処理することを特徴とする請求項66に記載のコプロセッサ。
- 切り替えイベントが、前にサブミットされたタスクの処理の完了、タスクの処理でのページフォールト、タスクの処理での一般保護フォールト、および中央処理装置(CPU)による新しい実行リストへの切り替えの要求の少なくとも1つを含むことを特徴とする請求項69に記載のコプロセッサ。
- 前記コプロセッサは、GPUを含むことを特徴とする請求項66に記載のコプロセッサ。
- 前記コプロセッサは、メモリマネージャによって、コプロセッサ可読メモリ内のメモリリソースにアクセスすることを特徴とする請求項66に記載のコプロセッサ。
- 前記メモリリソースは、仮想メモリアドレスへの参照を含むことを特徴とする請求項72に記載のコプロセッサ。
- ユーザモードドライバがシステムセキュリティを危険にさらさずにDMAバッファを構築できるようにすることによってコプロセッサタスクの効率的なスケジューリングを可能にするコンピューティングシステムであって、
コプロセッサと、
特権的メモリとして指定されたメモリと、
限定DMAバッファを構築するユーザモードドライバであって、前記コプロセッサは、前記限定DMAバッファを処理しているときに前記特権的メモリにアクセスできないユーザモードドライバと、
特権的DMAバッファを構築するカーネルモードであって、前記コプロセッサは、前記特権的DMAバッファを処理しているときに前記特権的メモリにアクセスできるカーネルモードと
を備えることを特徴とするコンピューティングシステム。 - 前記コプロセッサは、GPUであることを特徴とする請求項74に記載の装置。
- ハンドルごとの基準でメモリが特権的メモリとして指定されるかどうかを指定する機構およびページごとの基準でメモリが特権的メモリとして指定されるかどうかを指定する機構の1つをさらに備えることを特徴とする請求項74に記載の装置。
- 前記コプロセッサは、特権的メモリとして指定されたメモリにアクセスするように前記限定DMAバッファが前記コプロセッサに指示する場合に、ページフォールトを生成することを特徴とする請求項74に記載の装置。
- 前記限定DMAバッファの特徴は、仮想アドレスへの参照だけを含むこと、現在の表示に影響する命令を含まないこと、アダプタに影響する命令を含まないこと、限られた電源管理を有すること、限られた構成スペースを有すること、およびコンテキスト切り替えを防ぐ命令を含まないことの1つを含むことを特徴とする請求項74に記載の装置。
- 特権的メモリとして指定される前記メモリは、コプロセッサコンテキストごとの基準で特権があるものとして指定されることを特徴とする請求項74に記載の装置。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US44839903P | 2003-02-18 | 2003-02-18 | |
US44840003P | 2003-02-18 | 2003-02-18 | |
US44840203P | 2003-02-18 | 2003-02-18 | |
US60/448,400 | 2003-02-18 | ||
US60/448,402 | 2003-02-18 | ||
US60/448,399 | 2003-02-18 | ||
US47451303P | 2003-05-29 | 2003-05-29 | |
US60/474,513 | 2003-05-29 | ||
US10/763,777 US7673304B2 (en) | 2003-02-18 | 2004-01-22 | Multithreaded kernel for graphics processing unit |
US10/763,777 | 2004-01-22 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010186585A Division JP5335743B2 (ja) | 2003-02-18 | 2010-08-23 | タスクのスケジューリングを支援する装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004272894A true JP2004272894A (ja) | 2004-09-30 |
JP2004272894A5 JP2004272894A5 (ja) | 2007-04-05 |
JP4979880B2 JP4979880B2 (ja) | 2012-07-18 |
Family
ID=32738973
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004042172A Expired - Fee Related JP4979880B2 (ja) | 2003-02-18 | 2004-02-18 | グラフィックス処理ユニットのマルチスレッド式カーネル |
JP2010186585A Expired - Fee Related JP5335743B2 (ja) | 2003-02-18 | 2010-08-23 | タスクのスケジューリングを支援する装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010186585A Expired - Fee Related JP5335743B2 (ja) | 2003-02-18 | 2010-08-23 | タスクのスケジューリングを支援する装置 |
Country Status (4)
Country | Link |
---|---|
US (4) | US7673304B2 (ja) |
EP (2) | EP2560097A3 (ja) |
JP (2) | JP4979880B2 (ja) |
CN (2) | CN101894044B (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009081593A1 (ja) * | 2007-12-26 | 2009-07-02 | Softbank Mobile Corp. | 通信端末、通信方法および通信プログラム |
JP2013504127A (ja) * | 2009-09-03 | 2013-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Gpuワークのハードウエアベースでのスケジューリング |
JPWO2011135759A1 (ja) * | 2010-04-30 | 2013-07-18 | 日本電気株式会社 | 情報処理装置及びタスク切り替え方法 |
JP2016511493A (ja) * | 2013-03-15 | 2016-04-14 | クアルコム,インコーポレイテッド | システムメモリ管理ユニットコンテキストを保存および復元するための方法および装置 |
US9588817B2 (en) | 2011-01-21 | 2017-03-07 | Fujitsu Limited | Scheduling method and scheduling system for assigning application to processor |
JP2017522659A (ja) * | 2014-06-26 | 2017-08-10 | インテル コーポレイション | 仮想化環境におけるインテリジェントgpuスケジューリング |
JP2021022379A (ja) * | 2019-07-27 | 2021-02-18 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | ハードウェアアクセラレータの自律ジョブキューイングシステム |
JP2022188077A (ja) * | 2019-07-27 | 2022-12-20 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | ハードウェアアクセラレータの自律ジョブキューイングシステム |
Families Citing this family (166)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895520B1 (en) | 2001-03-02 | 2005-05-17 | Advanced Micro Devices, Inc. | Performance and power optimization via block oriented performance measurement and control |
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 |
US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US7015913B1 (en) * | 2003-06-27 | 2006-03-21 | Nvidia Corporation | Method and apparatus for multithreaded processing of data in a programmable graphics processor |
US7239322B2 (en) | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US7676809B2 (en) * | 2003-10-09 | 2010-03-09 | International Business Machines Corporation | System, apparatus and method of enhancing priority boosting of scheduled threads |
US7725618B2 (en) * | 2004-07-29 | 2010-05-25 | International Business Machines Corporation | Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment |
WO2006022202A1 (ja) * | 2004-08-27 | 2006-03-02 | Matsushita Electric Industrial Co., Ltd. | 情報処理装置、例外制御回路 |
US7369135B2 (en) | 2004-10-29 | 2008-05-06 | Nvidia Corporation | Memory management system having a forward progress bit |
US7409719B2 (en) * | 2004-12-21 | 2008-08-05 | Microsoft Corporation | Computer security management, such as in a virtual machine or hardened operating system |
US7647557B2 (en) * | 2005-06-29 | 2010-01-12 | Intel Corporation | Techniques for shuffling video information |
US20070038939A1 (en) * | 2005-07-11 | 2007-02-15 | Challen Richard F | Display servers and systems and methods of graphical display |
US8817029B2 (en) * | 2005-10-26 | 2014-08-26 | Via Technologies, Inc. | GPU pipeline synchronization and control system and method |
US8087021B1 (en) * | 2005-11-29 | 2011-12-27 | Oracle America, Inc. | Automated activity processing |
US8212832B2 (en) * | 2005-12-08 | 2012-07-03 | Ati Technologies Ulc | Method and apparatus with dynamic graphics surface memory allocation |
US7656409B2 (en) * | 2005-12-23 | 2010-02-02 | Intel Corporation | Graphics processing on a processor core |
US7911474B2 (en) * | 2006-04-03 | 2011-03-22 | Siemens Medical Solutions Usa, Inc. | Memory management system and method for GPU-based volume rendering |
US8081184B1 (en) * | 2006-05-05 | 2011-12-20 | Nvidia Corporation | Pixel shader program thread assembly |
CN101071388B (zh) * | 2006-05-12 | 2010-05-12 | 联想(北京)有限公司 | 一种进程隔离控制系统及方法 |
US7756911B2 (en) * | 2006-06-09 | 2010-07-13 | International Business Machines Corporation | Method and system for executing a task and medium storing a program therefor |
US7454596B2 (en) * | 2006-06-29 | 2008-11-18 | Intel Corporation | Method and apparatus for partitioned pipelined fetching of multiple execution threads |
US20080147915A1 (en) * | 2006-09-29 | 2008-06-19 | Alexander Kleymenov | Management of memory buffers for computer programs |
US8438365B2 (en) * | 2006-10-06 | 2013-05-07 | Calos Fund Limited Liability Company | Efficient data loading in a data-parallel processor |
JP2008102778A (ja) * | 2006-10-19 | 2008-05-01 | Fujitsu Ltd | 情報処理装置、情報処理装置の制御方法及びプログラム |
US8031198B1 (en) * | 2006-10-31 | 2011-10-04 | Nvidia Corporation | Apparatus and method for servicing multiple graphics processing channels |
US7830387B2 (en) * | 2006-11-07 | 2010-11-09 | Microsoft Corporation | Parallel engine support in display driver model |
US8056093B1 (en) * | 2006-12-07 | 2011-11-08 | Nvidia Corporation | Asynchronous kernel processing for a graphics processing system |
US7876328B2 (en) * | 2007-02-08 | 2011-01-25 | Via Technologies, Inc. | Managing multiple contexts in a decentralized graphics processing unit |
US7617386B2 (en) * | 2007-04-17 | 2009-11-10 | Xmos Limited | Scheduling thread upon ready signal set when port transfers data on trigger time activation |
US8233527B2 (en) * | 2007-05-11 | 2012-07-31 | Advanced Micro Devices, Inc. | Software video transcoder with GPU acceleration |
US20080278595A1 (en) * | 2007-05-11 | 2008-11-13 | Advance Micro Devices, Inc. | Video Data Capture and Streaming |
US8861591B2 (en) * | 2007-05-11 | 2014-10-14 | Advanced Micro Devices, Inc. | Software video encoder with GPU acceleration |
US8139070B1 (en) * | 2007-10-03 | 2012-03-20 | Matrox Graphics, Inc. | Systems for and methods of context switching in a graphics processing system |
US20090160867A1 (en) * | 2007-12-19 | 2009-06-25 | Advance Micro Devices, Inc. | Autonomous Context Scheduler For Graphics Processing Units |
US9418171B2 (en) | 2008-03-04 | 2016-08-16 | Apple Inc. | Acceleration of rendering of web-based content |
US8477143B2 (en) | 2008-03-04 | 2013-07-02 | Apple Inc. | Buffers for display acceleration |
US8289333B2 (en) | 2008-03-04 | 2012-10-16 | Apple Inc. | Multi-context graphics processing |
US8386664B2 (en) * | 2008-05-22 | 2013-02-26 | International Business Machines Corporation | Reducing runtime coherency checking with global data flow analysis |
GB2462860B (en) * | 2008-08-22 | 2012-05-16 | Advanced Risc Mach Ltd | Apparatus and method for communicating between a central processing unit and a graphics processing unit |
US8312433B2 (en) * | 2008-12-15 | 2012-11-13 | International Business Machines Corporation | Operating system aided code coverage |
US8698823B2 (en) * | 2009-04-08 | 2014-04-15 | Nvidia Corporation | System and method for deadlock-free pipelining |
US8413153B2 (en) * | 2009-06-12 | 2013-04-02 | Freescale Semiconductor Inc. | Methods and systems for sharing common job information |
US7970963B2 (en) * | 2009-06-29 | 2011-06-28 | Oracle America, Inc. | Efficient buffer management in a multi-threaded network interface |
US8484647B2 (en) | 2009-07-24 | 2013-07-09 | Apple Inc. | Selectively adjusting CPU wait mode based on estimation of remaining work before task completion on GPU |
EP2282264A1 (en) * | 2009-07-24 | 2011-02-09 | ProximusDA GmbH | Scheduling and communication in computing systems |
CN101996082B (zh) * | 2009-08-28 | 2014-06-11 | 国际商业机器公司 | 协处理器系统和在本地存储器上加载应用程序的方法 |
KR101080845B1 (ko) * | 2009-10-30 | 2011-11-07 | (주)지노게임즈 | 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 |
US8643655B2 (en) * | 2009-11-12 | 2014-02-04 | Nvidia Corporation | Method and system for communicating with external device through processing unit in graphics system |
CN101706741B (zh) * | 2009-12-11 | 2012-10-24 | 中国人民解放军国防科学技术大学 | 一种基于负载平衡的cpu和gpu两级动态任务划分方法 |
US8860743B2 (en) * | 2009-12-31 | 2014-10-14 | Nvidia Corporation | Sparse texture systems and methods |
US8681169B2 (en) * | 2009-12-31 | 2014-03-25 | Nvidia Corporation | Sparse texture systems and methods |
US8823724B2 (en) * | 2009-12-31 | 2014-09-02 | Nvidia Corporation | Sparse texture systems and methods |
CN101833438A (zh) * | 2010-04-19 | 2010-09-15 | 浙江大学 | 一种基于多重并行的数据通用处理方法 |
DE102010028227A1 (de) * | 2010-04-27 | 2011-10-27 | Robert Bosch Gmbh | Coprozessor mit Ablaufsteuerung |
US8723877B2 (en) * | 2010-05-20 | 2014-05-13 | Apple Inc. | Subbuffer objects |
US9058675B2 (en) * | 2010-05-29 | 2015-06-16 | Intel Corporation | Non-volatile storage for graphics hardware |
CN102013191B (zh) * | 2010-09-02 | 2012-10-03 | 东北师范大学 | 一种用于操作系统实验教学的智能教具 |
US8464104B2 (en) | 2010-09-10 | 2013-06-11 | International Business Machines Corporation | Mobility of versioned workload partitions |
US9176795B2 (en) * | 2010-12-13 | 2015-11-03 | Advanced Micro Devices, Inc. | Graphics processing dispatch from user mode |
US8797332B2 (en) * | 2010-12-15 | 2014-08-05 | Ati Technologies Ulc | Device discovery and topology reporting in a combined CPU/GPU architecture system |
US20120194526A1 (en) * | 2010-12-15 | 2012-08-02 | Benjamin Thomas Sander | Task Scheduling |
US20120198464A1 (en) * | 2011-01-31 | 2012-08-02 | Toyota Jidosha Kabushiki Kaisha | Safety controller and safety control method |
US9633407B2 (en) | 2011-07-29 | 2017-04-25 | Intel Corporation | CPU/GPU synchronization mechanism |
WO2013037077A1 (en) * | 2011-09-12 | 2013-03-21 | Intel Corporation | Multiple simultaneous displays on the same screen |
US8627036B2 (en) | 2011-09-12 | 2014-01-07 | Microsoft Corporation | Memory management techniques |
US9886312B2 (en) | 2011-09-28 | 2018-02-06 | Microsoft Technology Licensing, Llc | Dynamic provisioning of virtual video memory based on virtual video controller configuration |
US9652282B2 (en) * | 2011-11-08 | 2017-05-16 | Nvidia Corporation | Software-assisted instruction level execution preemption |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US20130155077A1 (en) | 2011-12-14 | 2013-06-20 | Advanced Micro Devices, Inc. | Policies for Shader Resource Allocation in a Shader Core |
US9122522B2 (en) * | 2011-12-14 | 2015-09-01 | Advanced Micro Devices, Inc. | Software mechanisms for managing task scheduling on an accelerated processing device (APD) |
KR101869939B1 (ko) | 2012-01-05 | 2018-06-21 | 삼성전자주식회사 | 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치 |
US8692832B2 (en) * | 2012-01-23 | 2014-04-08 | Microsoft Corporation | Para-virtualized asymmetric GPU processors |
US9256915B2 (en) * | 2012-01-27 | 2016-02-09 | Qualcomm Incorporated | Graphics processing unit buffer management |
US9384711B2 (en) | 2012-02-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Speculative render ahead and caching in multiple passes |
US9996394B2 (en) * | 2012-03-01 | 2018-06-12 | Microsoft Technology Licensing, Llc | Scheduling accelerator tasks on accelerators using graphs |
EP3654178B1 (en) | 2012-03-30 | 2023-07-12 | Intel Corporation | Mechanism for issuing requests to an accelerator from multiple threads |
EP2831693B1 (en) | 2012-03-30 | 2018-06-13 | Intel Corporation | Apparatus and method for accelerating operations in a processor which uses shared virtual memory |
EP2831720A4 (en) * | 2012-03-30 | 2015-12-09 | Intel Corp | PREFERRING MEDIA DEVICES WITH DETERMINED FUNCTIONS |
CN108681519B (zh) * | 2012-03-30 | 2022-04-08 | 英特尔公司 | 用于从多线程发送请求至加速器的机制 |
US9495308B2 (en) * | 2012-05-22 | 2016-11-15 | Xockets, Inc. | Offloading of computation for rack level servers and corresponding methods and systems |
US9286122B2 (en) * | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
US9230517B2 (en) | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
US9177533B2 (en) | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9235925B2 (en) | 2012-05-31 | 2016-01-12 | Microsoft Technology Licensing, Llc | Virtual surface rendering |
US9104478B2 (en) | 2012-06-15 | 2015-08-11 | Freescale Semiconductor, Inc. | System and method for improved job processing of a number of jobs belonging to communication streams within a data processor |
US9286118B2 (en) | 2012-06-15 | 2016-03-15 | Freescale Semiconductor, Inc. | System and method for improved job processing to reduce contention for shared resources |
US10002021B2 (en) | 2012-07-20 | 2018-06-19 | Qualcomm Incorporated | Deferred preemption techniques for scheduling graphics processing unit command streams |
CN102890643B (zh) * | 2012-07-26 | 2015-01-21 | 上海交通大学 | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 |
CN109032791B (zh) | 2012-08-22 | 2022-10-21 | 汞王国资产有限公司 | 多核架构中的资源分配 |
CN103677984B (zh) * | 2012-09-20 | 2016-12-21 | 中国科学院计算技术研究所 | 一种物联网计算任务调度系统及其方法 |
US9058268B1 (en) | 2012-09-20 | 2015-06-16 | Matrox Graphics Inc. | Apparatus, system and method for memory management |
US11013993B2 (en) | 2012-09-28 | 2021-05-25 | Sony Interactive Entertainment Inc. | Pre-loading translated code in cloud based emulated applications |
US10423424B2 (en) * | 2012-09-28 | 2019-09-24 | Nvidia Corporation | Replicated stateless copy engine |
US9633230B2 (en) * | 2012-10-11 | 2017-04-25 | Intel Corporation | Hardware assist for privilege access violation checks |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US9361116B2 (en) * | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US9250954B2 (en) * | 2013-01-17 | 2016-02-02 | Xockets, Inc. | Offload processor modules for connection to system memory, and corresponding methods and systems |
US9575634B2 (en) * | 2013-03-04 | 2017-02-21 | Facebook, Inc. | Techniques for asynchronous rendering |
US9632977B2 (en) | 2013-03-13 | 2017-04-25 | Nxp Usa, Inc. | System and method for ordering packet transfers in a data processor |
US9665409B2 (en) * | 2013-05-29 | 2017-05-30 | Citrix Systems, Inc. | Methods and apparatus facilitating access to storage among multiple computers |
US9741090B2 (en) | 2013-06-03 | 2017-08-22 | Panasonic Intellectual Property Corporation Of America | Graphics display processing device, graphics display processing method, and vehicle equipped with graphics display processing device |
US9307007B2 (en) | 2013-06-14 | 2016-04-05 | Microsoft Technology Licensing, Llc | Content pre-render and pre-fetch techniques |
US9563561B2 (en) * | 2013-06-25 | 2017-02-07 | Intel Corporation | Initiation of cache flushes and invalidations on graphics processors |
US9424079B2 (en) | 2013-06-27 | 2016-08-23 | Microsoft Technology Licensing, Llc | Iteration support in a heterogeneous dataflow engine |
US9507961B2 (en) | 2013-07-01 | 2016-11-29 | Qualcomm Incorporated | System and method for providing secure access control to a graphics processing unit |
CN104346298B (zh) * | 2013-08-06 | 2018-12-25 | 北京数码视讯软件技术发展有限公司 | 基于智能卡的数据处理方法、装置及智能卡 |
US11113054B2 (en) | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
US20150109315A1 (en) * | 2013-10-23 | 2015-04-23 | Nvidia Corporation | System, method, and computer program product for mapping tiles to physical memory locations |
CN103559166A (zh) * | 2013-11-11 | 2014-02-05 | 厦门亿联网络技术股份有限公司 | 一种多核之间的高速数据传输的方法 |
US9547767B2 (en) * | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
CN105683914B (zh) * | 2013-11-22 | 2019-09-24 | 英特尔公司 | 改进图形处理单元上的链式任务的性能的方法和装置 |
JP6507169B2 (ja) * | 2014-01-06 | 2019-04-24 | ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company | 複数のユーザインターフェース動作ドメインを有する車両 |
WO2015130282A1 (en) * | 2014-02-27 | 2015-09-03 | Hewlett-Packard Development Company, L. P. | Communication between integrated graphics processing units |
KR102114245B1 (ko) | 2014-04-10 | 2020-06-05 | 삼성전자 주식회사 | 그래픽스 상태 관리 장치 및 방법 |
US9740464B2 (en) | 2014-05-30 | 2017-08-22 | Apple Inc. | Unified intermediate representation |
US10346941B2 (en) | 2014-05-30 | 2019-07-09 | Apple Inc. | System and method for unified application programming interface and model |
US10430169B2 (en) | 2014-05-30 | 2019-10-01 | Apple Inc. | Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit |
US9928564B2 (en) * | 2014-06-26 | 2018-03-27 | Intel Corporation | Efficient hardware mechanism to ensure shared resource data coherency across draw calls |
US10521874B2 (en) * | 2014-09-26 | 2019-12-31 | Intel Corporation | Method and apparatus for a highly efficient graphics processing unit (GPU) execution model |
US9564108B2 (en) * | 2014-10-20 | 2017-02-07 | Amlogic Co., Limited | Video frame processing on a mobile operating system |
US9792663B2 (en) | 2014-12-15 | 2017-10-17 | Microsoft Technology Licensing, Llc | User-defined command buffer formats supporting data-parallel translation |
US10068306B2 (en) | 2014-12-18 | 2018-09-04 | Intel Corporation | Facilitating dynamic pipelining of workload executions on graphics processing units on computing devices |
US9817776B2 (en) * | 2015-01-19 | 2017-11-14 | Microsoft Technology Licensing, Llc | Memory descriptor list caching and pipeline processing |
MA41915A (fr) * | 2015-04-07 | 2018-02-13 | Benjamin Gittins | Unités de requête de transfert de mémoire programmable |
CN106155811B (zh) * | 2015-04-28 | 2020-01-07 | 阿里巴巴集团控股有限公司 | 资源服务装置、资源调度方法和装置 |
US10067954B2 (en) | 2015-07-22 | 2018-09-04 | Oracle International Corporation | Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations |
US10169105B2 (en) * | 2015-07-30 | 2019-01-01 | Qualcomm Incorporated | Method for simplified task-based runtime for efficient parallel computing |
US10176548B2 (en) * | 2015-12-18 | 2019-01-08 | Ati Technologies Ulc | Graphics context scheduling based on flip queue management |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10599488B2 (en) * | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
CN108984264B (zh) * | 2017-06-02 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
WO2019031858A1 (en) * | 2017-08-08 | 2019-02-14 | Samsung Electronics Co., Ltd. | METHOD AND APPARATUS FOR DETERMINING MEMORY NEEDS IN A NETWORK |
US10423478B2 (en) * | 2017-08-29 | 2019-09-24 | Red Hat, Inc. | Security enhanced out of process user space handling of hardware events |
US10846223B2 (en) * | 2017-10-19 | 2020-11-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Cache coherency between a device and a processor |
CN109697114B (zh) * | 2017-10-20 | 2023-07-28 | 伊姆西Ip控股有限责任公司 | 用于应用迁移的方法和机器 |
US10437735B2 (en) | 2017-12-13 | 2019-10-08 | Red Hat, Inc. | Process isolation for out of process page fault handling |
US11132145B2 (en) * | 2018-03-14 | 2021-09-28 | Apple Inc. | Techniques for reducing write amplification on solid state storage devices (SSDs) |
CN110389826B (zh) * | 2018-04-20 | 2023-03-31 | 伊姆西Ip控股有限责任公司 | 用于处理计算任务的方法、设备和计算程序产品 |
CN108874468B (zh) * | 2018-06-20 | 2021-03-26 | 深圳市腾讯网络信息技术有限公司 | 应用程序的加载方法、装置、计算机设备及存储介质 |
GB2570743B (en) | 2018-06-29 | 2021-06-23 | Imagination Tech Ltd | Tile assignment to processing cores within a graphics processing unit |
CN109445847B (zh) * | 2018-07-09 | 2021-09-17 | 北京东土科技股份有限公司 | 工业服务器微内核架构实现方法 |
US11138009B2 (en) * | 2018-08-10 | 2021-10-05 | Nvidia Corporation | Robust, efficient multiprocessor-coprocessor interface |
KR102700419B1 (ko) * | 2018-09-04 | 2024-08-30 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
DE102018217581A1 (de) * | 2018-10-15 | 2020-04-16 | Robert Bosch Gmbh | Verfahren zur Steuerung einer Produktionsanlage, Computerprogramm, maschinenlesbares Speichermedium, elektronische Steuereinheit sowie Produktionsanlage |
CN110399215A (zh) * | 2019-06-25 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种协处理器、一种电子设备及一种数据处理方法 |
TWI709308B (zh) * | 2019-07-22 | 2020-11-01 | 思銳科技股份有限公司 | 網路模擬器平台上之時間控管方法及系統 |
US11481255B2 (en) | 2019-09-10 | 2022-10-25 | International Business Machines Corporation | Management of memory pages for a set of non-consecutive work elements in work queue designated by a sliding window for execution on a coherent accelerator |
CN110750304B (zh) * | 2019-09-30 | 2022-04-12 | 百富计算机技术(深圳)有限公司 | 提升任务切换效率的方法及终端设备 |
US11416961B2 (en) | 2020-05-29 | 2022-08-16 | Samsung Electronics Co., Ltd. | Variable entry transitional ring storage for efficiently accessing graphics states |
US12086899B2 (en) * | 2020-08-07 | 2024-09-10 | Advanced Micro Devices, Inc. | Graphics processing unit with selective two-level binning |
US11335296B2 (en) | 2020-09-14 | 2022-05-17 | Apple Inc. | Low-latency context switch systems and methods |
CN112506676B (zh) * | 2020-12-02 | 2024-04-05 | 深圳市广和通无线股份有限公司 | 进程间的数据传输方法、计算机设备和存储介质 |
CN112579254B (zh) * | 2020-12-08 | 2022-03-29 | 成都海光微电子技术有限公司 | 图形处理器的仿真方法、装置、电子设备和存储介质 |
CN113448698B (zh) * | 2020-12-24 | 2024-04-02 | 北京新氧科技有限公司 | 业务模块相互调用的实现方法、装置、设备及存储介质 |
CN113253664B (zh) * | 2021-07-02 | 2021-10-15 | 峰岹科技(深圳)股份有限公司 | 协处理器、协处理器控制方法、终端及存储介质 |
CN113747060B (zh) * | 2021-08-12 | 2022-10-21 | 荣耀终端有限公司 | 图像处理的方法、设备、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0212523A (ja) * | 1988-04-20 | 1990-01-17 | Internatl Business Mach Corp <Ibm> | コンピユータ・デイスプレイ・システム |
JPH03202941A (ja) * | 1989-12-28 | 1991-09-04 | Toshiba Corp | 情報処理装置 |
JPH04299389A (ja) * | 1990-09-14 | 1992-10-22 | Hughes Aircraft Co | ディスプレイシステム |
JPH04311233A (ja) * | 1991-04-09 | 1992-11-04 | Nec Corp | アドレス変換装置 |
JPH07234821A (ja) * | 1993-12-27 | 1995-09-05 | Toshiba Corp | ページング装置およびディスプレイコントローラ |
JPH07271344A (ja) * | 1994-03-29 | 1995-10-20 | Hitachi Ltd | グラフィック表示装置 |
JPH10207723A (ja) * | 1996-12-30 | 1998-08-07 | Hewlett Packard Co <Hp> | 仮想装置アクセス・システム |
JP2002183750A (ja) * | 2000-10-04 | 2002-06-28 | Terarikon Inc | レンダリングシステム及びレンダリング方法 |
JP2002529850A (ja) * | 1998-11-09 | 2002-09-10 | インテル コーポレイション | システムにおける要求のスケジューリング |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713748A (en) * | 1985-02-12 | 1987-12-15 | Texas Instruments Incorporated | Microprocessor with block move instruction |
US4992958A (en) * | 1988-06-27 | 1991-02-12 | Hitachi, Ltd. | Method and apparatus for controlling printer |
US5016161A (en) * | 1989-04-12 | 1991-05-14 | Sun Microsystems, Inc. | Method and apparatus for the flow control of devices |
JPH0312768A (ja) | 1989-06-09 | 1991-01-21 | Hitachi Micro Comput Eng Ltd | I/oコントローラ |
US5253340A (en) * | 1990-01-19 | 1993-10-12 | Canon Kabushiki Kaisha | Data processing apparatus having a graphics device with priority scheduling of drawing requests |
JPH0418638A (ja) * | 1990-05-11 | 1992-01-22 | Fujitsu Ltd | 静的メモリ割当て処理方法 |
US5220653A (en) * | 1990-10-26 | 1993-06-15 | International Business Machines Corporation | Scheduling input/output operations in multitasking systems |
JPH0797413B2 (ja) | 1991-05-16 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | グラフィックス・システムにおけるピック方法および装置 |
US5630128A (en) | 1991-08-09 | 1997-05-13 | International Business Machines Corporation | Controlled scheduling of program threads in a multitasking operating system |
US5437017A (en) * | 1992-10-09 | 1995-07-25 | International Business Machines Corporation | Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system |
JPH08180001A (ja) * | 1994-04-12 | 1996-07-12 | Mitsubishi Electric Corp | 通信方式及び通信方法及びネットワークインタフェース |
US5777629A (en) * | 1995-03-24 | 1998-07-07 | 3Dlabs Inc. Ltd. | Graphics subsystem with smart direct-memory-access operation |
US5794037A (en) * | 1995-05-01 | 1998-08-11 | Intergraph Corporation | Direct access to slave processing by unprotected application using context saving and restoration |
US5748468A (en) * | 1995-05-04 | 1998-05-05 | Microsoft Corporation | Prioritized co-processor resource manager and method |
US5918050A (en) * | 1995-05-05 | 1999-06-29 | Nvidia Corporation | Apparatus accessed at a physical I/O address for address and data translation and for context switching of I/O devices in response to commands from application programs |
US5887190A (en) * | 1995-05-15 | 1999-03-23 | Nvidia Corporation | System for determining from a command storing in a storage circuit an application program which has initiated the command to determine an input/output device address |
US5852443A (en) | 1995-08-04 | 1998-12-22 | Microsoft Corporation | Method and system for memory decomposition in a graphics rendering system |
US5742797A (en) * | 1995-08-11 | 1998-04-21 | International Business Machines Corporation | Dynamic off-screen display memory manager |
US5854637A (en) * | 1995-08-17 | 1998-12-29 | Intel Corporation | Method and apparatus for managing access to a computer system memory shared by a graphics controller and a memory controller |
US5797115A (en) * | 1995-08-24 | 1998-08-18 | Fuller; Billy | Measuring direct and indirect usage of a central processing unit |
US5696927A (en) * | 1995-12-21 | 1997-12-09 | Advanced Micro Devices, Inc. | Memory paging system and method including compressed page mapping hierarchy |
US5864713A (en) * | 1996-02-12 | 1999-01-26 | Hewlett-Packard Company | Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer |
US5864512A (en) * | 1996-04-12 | 1999-01-26 | Intergraph Corporation | High-speed video frame buffer using single port memory chips |
US6049329A (en) | 1996-06-04 | 2000-04-11 | International Business Machines Corporartion | Method of and system for facilitating user input into a small GUI window using a stylus |
US5983332A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5826079A (en) * | 1996-07-05 | 1998-10-20 | Ncr Corporation | Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
US6070002A (en) * | 1996-09-13 | 2000-05-30 | Silicon Graphics, Inc. | System software for use in a graphics computer system having a shared system memory |
US6317134B1 (en) * | 1996-09-13 | 2001-11-13 | Silicon Graphics, Inc. | System software for use in a graphics computer system having a shared system memory and supporting DM Pbuffers and other constructs aliased as DM buffers |
US5761506A (en) * | 1996-09-20 | 1998-06-02 | Bay Networks, Inc. | Method and apparatus for handling cache misses in a computer system |
US5930827A (en) * | 1996-12-02 | 1999-07-27 | Intel Corporation | Method and apparatus for dynamic memory management by association of free memory blocks using a binary tree organized in an address and size dependent manner |
JPH10294834A (ja) | 1997-04-18 | 1998-11-04 | Fuji Xerox Co Ltd | 画像形成装置の制御方法 |
US6349320B1 (en) * | 1997-06-03 | 2002-02-19 | Fmr Corp. | Computer executable workflow management and control system |
US6069638A (en) * | 1997-06-25 | 2000-05-30 | Micron Electronics, Inc. | System for accelerated graphics port address remapping interface to main memory |
US6704871B1 (en) * | 1997-09-16 | 2004-03-09 | Safenet, Inc. | Cryptographic co-processor |
US6708273B1 (en) * | 1997-09-16 | 2004-03-16 | Safenet, Inc. | Apparatus and method for implementing IPSEC transforms within an integrated circuit |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6075546A (en) | 1997-11-10 | 2000-06-13 | Silicon Grahphics, Inc. | Packetized command interface to graphics processor |
US6065071A (en) * | 1998-03-26 | 2000-05-16 | Nvidia Corporation | Method and apparatus for trapping unimplemented operations in input/output devices |
US6081854A (en) * | 1998-03-26 | 2000-06-27 | Nvidia Corporation | System for providing fast transfers to input/output device by assuring commands from only one application program reside in FIFO |
US6023738A (en) * | 1998-03-30 | 2000-02-08 | Nvidia Corporation | Method and apparatus for accelerating the transfer of graphical images |
US6092124A (en) * | 1998-04-17 | 2000-07-18 | Nvidia Corporation | Method and apparatus for accelerating the rendering of images |
US6496916B1 (en) * | 1998-04-17 | 2002-12-17 | Agere Systems Inc. | System for flexible memory paging in partitioning memory |
US6092127A (en) * | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available |
US6480952B2 (en) * | 1998-05-26 | 2002-11-12 | Advanced Micro Devices, Inc. | Emulation coprocessor |
US6065089A (en) * | 1998-06-25 | 2000-05-16 | Lsi Logic Corporation | Method and apparatus for coalescing I/O interrupts that efficiently balances performance and latency |
US6252600B1 (en) * | 1998-10-02 | 2001-06-26 | International Business Machines Corporation | Computer graphics system with dual FIFO interface |
WO2000021232A2 (en) * | 1998-10-02 | 2000-04-13 | International Business Machines Corporation | Conversational browser and conversational systems |
US6295602B1 (en) * | 1998-12-30 | 2001-09-25 | Spyrus, Inc. | Event-driven serialization of access to shared resources |
JP2000215068A (ja) | 1999-01-21 | 2000-08-04 | Matsushita Electric Ind Co Ltd | マルチタスクスケジュ―リング装置 |
US6496912B1 (en) * | 1999-03-25 | 2002-12-17 | Microsoft Corporation | System, method, and software for memory management with intelligent trimming of pages of working sets |
JP2000285246A (ja) | 1999-03-31 | 2000-10-13 | Toshiba Corp | 情報処理装置 |
US6650333B1 (en) * | 1999-06-09 | 2003-11-18 | 3Dlabs Inc., Ltd. | Multi-pool texture memory management |
US6437788B1 (en) * | 1999-07-16 | 2002-08-20 | International Business Machines Corporation | Synchronizing graphics texture management in a computer system using threads |
US6493837B1 (en) * | 1999-07-16 | 2002-12-10 | Microsoft Corporation | Using log buffers to trace an event in a computer system |
US6137126A (en) * | 1999-08-17 | 2000-10-24 | Advanced Micro Devices, Inc. | Method to reduce gate-to-local interconnect capacitance using a low dielectric constant material for LDD spacer |
US6518973B1 (en) * | 1999-08-31 | 2003-02-11 | Microsoft Corporation | Method, system, and computer program product for efficient buffer level management of memory-buffered graphics data |
US6604156B1 (en) | 1999-09-15 | 2003-08-05 | Koninklijke Philips Electronics N.V. | Message buffer full handling in a CAN device that employs reconfigurable message buffers |
JP2001092657A (ja) | 1999-09-22 | 2001-04-06 | Toshiba Corp | 中央演算装置、コンパイル方法、及びコンパイルプログラムを記録した記録媒体 |
US6446186B1 (en) * | 1999-10-27 | 2002-09-03 | Nvidia Corporation | Method, apparatus and article of manufacture for mapping physical memory in a virtual address system |
US6525739B1 (en) * | 1999-12-02 | 2003-02-25 | Intel Corporation | Method and apparatus to reuse physical memory overlapping a graphics aperture range |
US6600493B1 (en) * | 1999-12-29 | 2003-07-29 | Intel Corporation | Allocating memory based on memory device organization |
US6477612B1 (en) * | 2000-02-08 | 2002-11-05 | Microsoft Corporation | Providing access to physical memory allocated to a process by selectively mapping pages of the physical memory with virtual memory allocated to the process |
TW501045B (en) * | 2000-03-03 | 2002-09-01 | Sony Computer Entertainment Inc | Entertainment device and computer system having exchangeability |
US7397949B2 (en) | 2000-06-21 | 2008-07-08 | Microsoft Corporation | Serial storage of ink and its properties |
US6782432B1 (en) * | 2000-06-30 | 2004-08-24 | Intel Corporation | Automatic state savings in a graphics pipeline |
TW531706B (en) | 2000-07-20 | 2003-05-11 | Ibm | Method and apparatus in a data processing system for dynamic graphics context switching |
US6859208B1 (en) * | 2000-09-29 | 2005-02-22 | Intel Corporation | Shared translation address caching |
US6798421B2 (en) * | 2001-02-28 | 2004-09-28 | 3D Labs, Inc. Ltd. | Same tile method |
US7234144B2 (en) * | 2002-01-04 | 2007-06-19 | Microsoft Corporation | Methods and system for managing computational resources of a coprocessor in a computing system |
US7448036B2 (en) * | 2002-05-02 | 2008-11-04 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
US20040231000A1 (en) * | 2003-02-18 | 2004-11-18 | Gossalia Anuj B. | Video aperture management |
US7444637B2 (en) * | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
US7421694B2 (en) * | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
US7673304B2 (en) | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
US6947051B2 (en) * | 2003-02-18 | 2005-09-20 | Microsoft Corporation | Video memory management |
-
2004
- 2004-01-22 US US10/763,777 patent/US7673304B2/en active Active
- 2004-02-17 EP EP12004595.0A patent/EP2560097A3/en not_active Withdrawn
- 2004-02-17 EP EP20040003537 patent/EP1450257A3/en not_active Withdrawn
- 2004-02-18 CN CN2010101586125A patent/CN101894044B/zh not_active Expired - Fee Related
- 2004-02-18 CN CN2004100283577A patent/CN1538296B/zh not_active Expired - Fee Related
- 2004-02-18 JP JP2004042172A patent/JP4979880B2/ja not_active Expired - Fee Related
-
2008
- 2008-07-14 US US12/172,910 patent/US9298498B2/en active Active
-
2010
- 2010-01-15 US US12/657,278 patent/US8671411B2/en not_active Expired - Lifetime
- 2010-08-23 JP JP2010186585A patent/JP5335743B2/ja not_active Expired - Fee Related
-
2016
- 2016-03-07 US US15/063,074 patent/US20160259671A1/en not_active Abandoned
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0212523A (ja) * | 1988-04-20 | 1990-01-17 | Internatl Business Mach Corp <Ibm> | コンピユータ・デイスプレイ・システム |
US5113180A (en) * | 1988-04-20 | 1992-05-12 | International Business Machines Corporation | Virtual display adapter |
JPH03202941A (ja) * | 1989-12-28 | 1991-09-04 | Toshiba Corp | 情報処理装置 |
JPH04299389A (ja) * | 1990-09-14 | 1992-10-22 | Hughes Aircraft Co | ディスプレイシステム |
JPH04311233A (ja) * | 1991-04-09 | 1992-11-04 | Nec Corp | アドレス変換装置 |
JPH07234821A (ja) * | 1993-12-27 | 1995-09-05 | Toshiba Corp | ページング装置およびディスプレイコントローラ |
JPH07271344A (ja) * | 1994-03-29 | 1995-10-20 | Hitachi Ltd | グラフィック表示装置 |
JPH10207723A (ja) * | 1996-12-30 | 1998-08-07 | Hewlett Packard Co <Hp> | 仮想装置アクセス・システム |
JP2002529850A (ja) * | 1998-11-09 | 2002-09-10 | インテル コーポレイション | システムにおける要求のスケジューリング |
JP2002183750A (ja) * | 2000-10-04 | 2002-06-28 | Terarikon Inc | レンダリングシステム及びレンダリング方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009081593A1 (ja) * | 2007-12-26 | 2009-07-02 | Softbank Mobile Corp. | 通信端末、通信方法および通信プログラム |
JP2013504127A (ja) * | 2009-09-03 | 2013-02-04 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | Gpuワークのハードウエアベースでのスケジューリング |
JPWO2011135759A1 (ja) * | 2010-04-30 | 2013-07-18 | 日本電気株式会社 | 情報処理装置及びタスク切り替え方法 |
JP5776688B2 (ja) * | 2010-04-30 | 2015-09-09 | 日本電気株式会社 | 情報処理装置及びタスク切り替え方法 |
US9588817B2 (en) | 2011-01-21 | 2017-03-07 | Fujitsu Limited | Scheduling method and scheduling system for assigning application to processor |
JP2016511493A (ja) * | 2013-03-15 | 2016-04-14 | クアルコム,インコーポレイテッド | システムメモリ管理ユニットコンテキストを保存および復元するための方法および装置 |
JP2017522659A (ja) * | 2014-06-26 | 2017-08-10 | インテル コーポレイション | 仮想化環境におけるインテリジェントgpuスケジューリング |
JP2021022379A (ja) * | 2019-07-27 | 2021-02-18 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | ハードウェアアクセラレータの自律ジョブキューイングシステム |
US11397612B2 (en) | 2019-07-27 | 2022-07-26 | Analog Devices International Unlimited Company | Autonomous job queueing system for hardware accelerators |
JP2022188077A (ja) * | 2019-07-27 | 2022-12-20 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | ハードウェアアクセラレータの自律ジョブキューイングシステム |
JP7467554B2 (ja) | 2019-07-27 | 2024-04-15 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | ハードウェアアクセラレータの自律ジョブキューイングシステム |
Also Published As
Publication number | Publication date |
---|---|
US7673304B2 (en) | 2010-03-02 |
EP2560097A3 (en) | 2016-02-10 |
JP5335743B2 (ja) | 2013-11-06 |
JP4979880B2 (ja) | 2012-07-18 |
EP2560097A2 (en) | 2013-02-20 |
EP1450257A2 (en) | 2004-08-25 |
CN1538296B (zh) | 2010-05-26 |
EP1450257A3 (en) | 2007-09-05 |
CN101894044B (zh) | 2012-05-09 |
CN101894044A (zh) | 2010-11-24 |
US20040160446A1 (en) | 2004-08-19 |
US8671411B2 (en) | 2014-03-11 |
US20100122259A1 (en) | 2010-05-13 |
CN1538296A (zh) | 2004-10-20 |
JP2010287254A (ja) | 2010-12-24 |
US20160259671A1 (en) | 2016-09-08 |
US9298498B2 (en) | 2016-03-29 |
US20080301687A1 (en) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5335743B2 (ja) | タスクのスケジューリングを支援する装置 | |
JP5091215B2 (ja) | コプロセッサの性能を強化するシステムおよび方法 | |
CN101685391B (zh) | 管理计算系统中协处理器的计算资源的方法和系统 | |
US7290261B2 (en) | Method and logical apparatus for rename register reallocation in a simultaneous multi-threaded (SMT) processor | |
CN105579961B (zh) | 数据处理系统及操作方法、用于数据处理系统的硬件单元 | |
US8380907B2 (en) | Method, system and computer program product for providing filtering of GUEST2 quiesce requests | |
US8719543B2 (en) | Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices | |
US6233599B1 (en) | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers | |
EP1023661B1 (en) | Application programming interface enabling application programs to control allocation of physical memory in a virtual memory system | |
US8572624B2 (en) | Providing multiple quiesce state machines in a computing environment | |
US7661115B2 (en) | Method, apparatus and program storage device for preserving locked pages in memory when in user mode | |
US8140834B2 (en) | System, method and computer program product for providing a programmable quiesce filtering register | |
JP2009537053A (ja) | 仮想化されたトランザクショナルメモリのグローバルオーバーフロー方法 | |
KR100988395B1 (ko) | 태스크 스케줄링 방법, 태스크 스케줄링 지원 장치, 코프로세싱 스케줄러에 관련하여 사용하기 위한 코프로세서, 및 컴퓨터 판독가능 저장 매체 | |
US8458438B2 (en) | System, method and computer program product for providing quiesce filtering for shared memory | |
KR101130361B1 (ko) | 코프로세서 내의 연산을 스트림라인하는 방법 | |
US8782675B2 (en) | Method and system of accessing display window memory | |
Groote et al. | Computer Organization | |
JPH06309183A (ja) | グラフィックス資源共用アクセス方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070215 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070215 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090724 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100521 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100823 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110920 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20110921 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110927 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110921 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120316 |
|
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: 20120410 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120418 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150427 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4979880 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |