JP2004536395A - グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム - Google Patents

グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム Download PDF

Info

Publication number
JP2004536395A
JP2004536395A JP2003509315A JP2003509315A JP2004536395A JP 2004536395 A JP2004536395 A JP 2004536395A JP 2003509315 A JP2003509315 A JP 2003509315A JP 2003509315 A JP2003509315 A JP 2003509315A JP 2004536395 A JP2004536395 A JP 2004536395A
Authority
JP
Japan
Prior art keywords
graphics
context
memory area
rendering
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003509315A
Other languages
English (en)
Inventor
ドイル,ピーター
スリーニヴァス,アディトヤ
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2004536395A publication Critical patent/JP2004536395A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Abstract

1つ又はそれ以上の表示装置における表示のために独立画像を同時にレンダリングするための方法、装置及びシステムである。一実施形態において、グラフィックレンダリングエンジンは、複数の表示装置への表示のために独立画像を同時にレンダリングする。グラフィックコンテキストマネージャは、第1独立画像に関連する第1レンダリングコンテキストを表す情報を第1メモリ領域に記憶し且つ第1メモリ領域から回復する。グラフィックコンテキストマネージャは、第2独立画像に関連する第2レンダリングコンテキストを表す情報を第2メモリ領域に記憶し且つ第2メモリ領域から回復する。

Description

【技術分野】
【0001】
本発明は、一般に、複数の画像のレンダリングに関する。本発明は、更に詳細には、1つ又はそれ以上の表示装置への複数の画像のレンダリングに関する。
【背景技術】
【0002】
画像レンダリングとは、ハイレベルの対象物ベースの表示をある表示装置における表示のためのグラフィック画像に変換することである。例えば、画像レンダリングは、3次元対象物又はシーンの数学的モデルをビットマップ画像に変換する間に現れる。画像レンダリングの他の例は、HTML文書をコンピュータモニタにおける表示のための画像に変換することである。一般に、グラフィックレンダリングエンジンと呼ばれるハードウェア装置により、これらのグラフィック処理タスクを加速することができる。
【0003】
インターネットをサーフィンするとき、通常、複数の画像がコンピュータモニタ上に表示される。例えば、インターネットをサーフィンするとき、ウェブページとウェブページ上に重ね合わされる2つのバナー広告とがコンピュータモニタ上に表示される。グラフィックレンダリングエンジンは、代表的には、ウェブページのような第1画像に関連する命令全てをレンダリングする。第1画像のための命令を完全に処理した後、グラフィックレンダリングエンジンは、バナー広告の1つのような第2画像に関連する命令の処理を開始する。しかしながら、一般に、グラフィックレンダリングエンジンは、第2画像に関連する命令の処理を開始する前に、第1画像に関連する命令のレンダリングを終了しなければならない。このように、グラフィックグラフィックレンダリングエンジンが、グラフィックアプリケーションプログラムが命令を生成するより速く命令を処理する場合、グラフィックグラフィックレンダリングエンジンは、その時間の間、アイドルの状態のまま保たれる。又、次の命令を実行する前に現れる現実の世界のイベントを画像命令が呼び出す場合、グラフィックグラフィックレンダリングエンジンは、その時間の間、アイドルの状態のまま保たれる。代表的には、グラフィックグラフィックレンダリングエンジンは、連続して命令ストリームをサービスする。このようにして、グラフィックレンダリングエンジンが第2命令ストリームに関連する命令の処理を開始する前に、第1命令ストリームに関連する命令は処理された。
【0004】
他の例は、3次元環境において2つの独立した画像をレンダリングすることである。1つの表示スクリーンは、3次元画像を含む第1ウィンドウと、制御2Dグラフィックユーザインタフェースの表示画像を含む第2ウィンドウとを表示する。上で述べたように、先行技術においては、グラフィックレンダリングエンジンが第2ウィンドウにおける画像に関連する命令の処理を開始する前に、第1ウィンドウにおける画像のための命令は処理された。
【0005】
従来の技術は、複数の表示装置上に複数の画像を表示した。代表的には、2つ又はそれ以上のグラフィックレンダリングエンジンが、複数の画像に関連する命令を処理するために存在する。各々のグラフィックレンダリングエンジンは1つの表示装置にサービスする。しかしながら、実際には、複数のグラフィックレンダリングエンジンはより大きい物理的空間を占め、より大きい電力を消費し、1つのグラフィックレンダリングエンジンを生成することに比べてより大きいコストが掛かる。従って、グラフィックレンダリングエンジンの数を減少させる古都は有益である。更に、2つ又はそれ以上のグラフィックレンダリングエンジンをもつ同じ表示スクリーン上の異なる画像をレンダリングすることを試みる従来の技術は重大なアービトレーションの競合に直面する。
【0006】
各々のグラフィックレンダリングエンジンは、レンダリング状態変数のセットにより制御される。これらの状態変数はレンダリングコンテキストとして集合的に呼びならわされている。レンダリング状態関数は、対象物の色、テクスチャ、テクスチャ適用モード等のグラフィックレンダリングプロセスの特定の側面を制御する。
【0007】
特定のレンダリングコンテキストは、各々の画像と共に、その画像がレンダリングされるときに存在する。従来の技術は、画像に関連するレンダリングコンテキストのセットに役にたたない方法を用いている。グラフィックドライバプログラムはアプリケーションプログラムからの命令を受信し、グラフィックレンダリングエンジンに画像に現関連状態変数の設定を含んだその命令を含む命令ストリームを送信する。グラフィックレンダリングエンジンは、他のレンダリング命令の実行の前にこれらのレンダリングコンテキストの命令を処理する。グラフィックレンダリングエンジンが第1画像に関連する処理命令と第2画像に関連する命令との間をスイッチングするとき、グラフィックアプリケーションプログラムはレンダリングコンテキスト命令を送信する必要があり、グラフィックレンダリングエンジンはそれらレンダリングコンテキスト命令を処理することが必要である。
【0008】
従来、グラフィックレンダリングエンジンに関連するレンダリングコンテキストはソフトウェア生成命令ストリームによってのみ修正され、ホストCPUから直接アクセス可能ではなかった。現レンダリングコンテキストのような第1レンダリングコンテキストから、新しいレンダリングコンテキストのような第2レンダリングコンテキストへの変更は、それ故、第2レンダリングコンテキストを設定する状態変数を指定するために命令を生成する応用ソフトウェアを必要とした。第1レンダリングコンテキストが読み込まれる場合、応用ソフトウェアは、後のある時点にその第1レンダリングテキストを回復するために、第1レンダリングコンテキストのシャドーコピーを保つことが必要とされた。
【発明の開示】
【課題を解決するための手段】
【0009】
本発明は種々の修正及び変更形態を必要とする一方、本発明の特定の実施形態は図面を例として示し、以下に詳述する。本発明は、開示された特定の形態に限定されるものではないことを理解する必要があり、それと対照的に、本発明は、本発明の主旨及び発明の適用範囲内に含まれる修正、同等のもの及び代替のもの全てをカバーするものである。
【0010】
以下、本発明の全体的な理解を提供するために、特定命令、指定構成要素、コネクション等について数々の特定な内容により詳述する。しかしながら、本発明はそれらの詳細説明がなくても実行可能であることが明らかであることは、当業者には理解されるであろう。他の例として、本発明を不必要に分かりにくくすることを回避するために、周知の構成要素又は方法については詳細に説明せずに、ブロックダイアグラムを用いて説明する。それ故、詳述する特定の内容は単なる例である。その特定の内容について、本発明の主旨と適用範囲から逸脱することなく、変更すること及び更に検討を加えることが可能である。結合された用語は、直接的に又は非直接的に結合された意味として定義される。
【0011】
一般に、グラフィックレンダリングエンジンは、複数の表示装置上における表示のために独立した画像を、同時にレンダリングする。命令搬送部は、グラフィックレンダリングエンジンに2つ又はそれ以上の独立した画像のための命令を提供する。時間アロケータは、レンダリングされた各々の独立した画像間のグラフィックレンダリングエンジンの同時使用の調停を行う。グラフィックコンテキストマネージャは、確立されたメモリ位置からグラフィックレンダリングエンジンに第1独立画像に関連するレンダリングコンテキストを戻す。
【発明を実施するための最良の形態】
【0012】
図1は、複数の表示装置上の1つ又はそれ以上の画像を表示するためにグラフィックレンダリングエンジンを用いる1つ又はそれ以上の画像をレンダリングするグラフィック装置の実施形態を示すブロック図である。図1を参照するに、グラフィック装置100はグラフィックレンダリングエンジン102、1つ又はそれ以上の命令搬送部104、コンテキストマネージャ106、時間アロケータ108、及び、第1表示装置110と第2表示装置112のような1つ又はそれ以上の表示装置を備える。一実施形態において、グラフィック装置100は、1つのグラフィックレンダリングエンジン102を備える。
【0013】
グラフィックレンダリングエンジン102は、1つの表示装置又は複数の表示装置のどちらかに表示されるために独立画像を生成する。それ故、例えば、2つの独立画像は同じ表示装置上に表示されることが可能であり、又は2つの独立画像は別々の表示装置上に各々表示されることが可能である。各々の独立画像のための命令は、複数のグラフィックアプリケーションプログラムからの命令を含む1つの命令ストリーム114又は別々の命令ストリームによりもたらされる。
【0014】
各々の独立画像は、ブラウザアプリケーションによるバナー広告をもつウェブページを表示する、又は2次元画像に関連する第1命令ストリームを連続してレンダリングし、次いで3次元画像に関連する第2命令ストリームをレンダリングする従来技術に比較して、同時にレンダリングされることが可能である。一般に、従来技術は、バナー広告等の第1ウィンドウに含まれる第1画像に関連する画像命令を完全にレンダリングし、ウェブページ等の第2ウィンドウに含まれる第2画像についての命令を完全にレンダリングする。代表的には、従来技術、即ちグラフィクスレンダリングエンジンは、各々の独立画像のための命令を同時には実行しない。
【0015】
時間アロケータ108は、レンダリングされる各々の独立画像間でグラフィックレンダリングエンジン102の使用を裁定する。グラフィックコンテキストマネージャ106は、メモリ装置(図示せず)においてレンダリングされる各々の独立画像に関連するコンテキストを記憶する。種々のグラフィックアプリケーションは、プロセッサにおいて動き、又は命令ストリームに命令をレンダリングするプロセッサ挿入画像において動くブラウザにおいて動く。命令搬送部104は、命令ストリーム114から処理のためのグラフィックレンダリングエンジン102に命令を提供する。
【0016】
グラフィックレンダリングエンジン102は、グラフィックコンテキストマネージャ106、時間アロケータ108、及びグラフィックレンダリングエンジン102の効率的な使用を行うための1つ又はそれ以上の命令搬送部104を用いて機能する。命令ストリーム114に命令を供給する各々のグラフィックアプリケーションは異なる速度で動作し、画像を生成することが可能である。例えば、ストリーミングライブビデオアップリケーションは、通常、ワードプロセッシングアプリケーションよりかなり速い画像生成速度で動作する。グラフィックレンダリングエンジン102は、グラフィックレンダリングエンジン102がアイドルのまま保たれる時間を最小にするために、2つ又はそれ以上の画像に関する命令を同時にレンダリングすることが可能である。又、従来の技術においては、第1画像のための命令が次の命令を実行する前に生じる実ワードイベントを要求する場合、グラフィックレンダリングエンジン102は、その時間の間、アイドルのまま保たれる。しかしながら、グラフィックレンダリングエンジン102は、グラフィックレンダリングエンジン102のためのアイドル時間を減少させるために、複数の画像から命令を同時にレンダリングすることが可能である。
【0017】
グラフィックレンダリングエンジン102は、第1画像に関連する現レンダリングコンテキストを保存し、確立されたメモリ位置(図示せず)から第2画像に関連する新しいレンダリングコンテキストをロードすることが可能である。一実施形態において、レンダリングコンテキストを記憶するために用いられる確立されたメモリ位置は、論理コンテキスト(図示せず)と呼ばれる。グラフィックスレンダリング装置100は、レンダリングコンテキストをスイッチングするためにレンダリングされるとき、(1)レンダリング状態変数からメモリにおける第1確立メモリ位置に現レンダリングコンテキストを書き込み、(2)メモリにおける第2確立メモリ位置からその新しいレンダリングコンテキストを読み込み、及び(3)その新しいレンダリングコンテキストからの情報を用いてレンダリング状態変数をロードする。一実施形態において、別々の命令搬送部104は、特定の表示装置110、112のために処理される画像レンダリング命令の独立したセットを記憶するために、各々の表示装置110、112に関連している。
【0018】
図2は、中央演算処理装置(CPU),キャッシュ、メモリ、表示装置及びグラフィックコンテキストマネージャの実施形態及び命令搬送部の実施形態を有するグラフィック装置を含むコンピュータシステムの実施形態のブロック図を示している。グラフィック装置200は、複数のリングバッファレジスタ204,206、リングバッファ直接メモリアクセスエンジン(RB DMA ENG)212、グラフィックレンダリングエンジン214及びコンテキスト識別レジスタ(CID)222、224を備えている。複数のリングバッファメモリ領域208、210、複数の確立メモリ位置216,218,220及び複数の表示装置228、230はグラフィック装置200に関連している。一実施形態において、命令搬送部は、複数のリングバッファレジスタ204、206、複数のリングバッファメモリ領域208、210及び直接メモリアクセスエンジン212を含む。一実施形態において、コンテキストマネージャは、コンテキスト識別マネージャ(CID)222、224、アクティブコンテキスト識別レジスタ(Active CID)226及び複数の確立メモリ位置216、218、220からなる。
【0019】
図3は、リングバッファメモリ領域の一実施形態のブロック図を示している。上述のように、命令搬送部の実施形態は、1つ又はそれ以上のリングバッファレジスタ310、及びソフトウェア生成命令がグラフィックレンダリングエンジン(図示せず)に移動されることができる1つ又はそれ以上のリングバッファメモリ領域300を備えている。リングバッファメモリ領域300は、グラフィックアプリケーション(図示せず)からの実際の画像レンダリング命令を維持する。リングバッファレジスタ310は、リングバッファメモリ領域300の開始と長さを規定し、リングバッファメモリ領域300への2つの“オフセット”、ヘッド304及びテール302を備えている。テールオフセット302は、実行されなければならない有効な命令の存在をグラフィックレンダリングエンジンに知らせる。ヘッドオフセット304は、それらの命令が解析されて実行されるとき、グラフィックレンダリングエンジンにより増加される。命令は、リングバッファメモリ領域300の底部からリングバッファメモリ領域300の最上部に戻してラップアラウンドされることができる。一実施形態において、リングバッファメモリ領域300は、バッチバッファ(図示せず)の位置を指し示すために命令を記憶する。バッチバッファは、余分な命令記憶容量を提供するために離散したメモリ領域に記憶されることが可能である画像レンダリング命令の離散リストを備えている。一実施形態において、バッチバッファは、命令ストリームから呼び出されることができる独立した一連の命令を記憶する。
【0020】
図2を再び参照するに、各々のリングバッファレジスタ204、206は、レジスタ内に複数のフィールドを有することが可能である。第1リングバッファレジスタ204のようなリングバッファレジスタの実施形態において含まれるフィールドは、リングバッファ有効validフィールド(V)232、開始アドレスフィールド(S)234、バッファ長さフィールド(L)235、ヘッドオフセットフィールド(H)236、ヘッドラップカウントフィールド(W)233、テールオフセットフィールド(T)237、自動レポートヘッドイネーブルフィールド(R)238、時間スライスフィールド(TS)239及び他の類似したフィールドであることが可能である。
【0021】
リングバッファ有効フィールド232は、この特定のリングバッファレジスタがグラフィックレンダリングエンジン214を共有するための裁定プロセスに含まれるかどうかを制御する。開始アドレスフィールド234は、リングバッファメモリ領域208、210から構成される隣接メモリ領域の開始を指し示す。リングバッファメモリ領域208、210は、システムメモリ232又は専用メモリに位置付けられる。バッファ長さフィールド235は、割り当てられたリングバッファメモリ領域208、210のバイトでのるサイズを指定する。一実施形態において、リングバッファ長さフィールド235は、どの時点においても、リングバッファメモリ領域208,210に提出されることができる最大データ量を規定する。一実施形態において、リングバッファメモリ領域208、210は画像レンダリング命令及び1つ又はそれ以上のバッチバッファ240へのポインタを含むことが可能であり、それ故、特定の命令に対して実質的に無制限メモリ領域を生成する。
【0022】
ヘッドオフセットフィールド236は、グラフィックレンダリングエンジン214が解析する次の命令の開始アドレス234からメモリオフセットを指し示す。例えば、ヘッドオフセット236は、解析された最後の命令が過ぎるまで、1つのメモリを指し示すことが可能である。グラフィックレンダリングエンジン214は、命令が解析されたとき、ヘッドオフセットフィールド236をアップデートする。一旦、ヘッドオフセット236がテールオフセットフィールド237の値に達するとき、即ち両方のオフセットが等しくなったとき、グラフィックレンダリングエンジン214はリングバッファメモリ領域208,210が空であるとみなし、その条件が留まる限り、グラフィックレンダリングエンジン214を共有するために、裁定プロセスから対応するリングバッファレジスタ204、206を取り除く。このようにして、表示には、特定の表示装置のための命令ストリームが中心プロセスから取り除かれることが存在する。又、より効率的なフロー制御アルゴリズムのためのキャッシャブルメモリに、ヘッドポインタ値とヘッドラップカウントフィールド233が書き込まれることを可能にする自動レポートヘッドイネーブルフィールドが、リングバッファレジスタに含まれる。例えば、進行を確認するためにヘッドオフセット236をポーリングする間のフロー制御アルゴリズム。
【0023】
リングバッファメモリ領域208、210は、メモリ領域の終了からメモリ領域の開始まで、命令をラップすることが可能である。ヘッドラップカウントフィールド233は、ヘッドオフセット236がリングバッファメモリ領域208、210の開始アドレス234にラップアラウンドして戻る度に、グラフィックレンダリングエンジン214により増加される。一実施形態において、ヘッドラップカウントフィールド233は、“レポートヘッド”プロセスに書き込まれたDWordに含まれる。グラフィック装置200は、まるでリングバッファメモリ領域208、210が実際の物理的バッファのサイズよりかなり大きい“仮想的”長さを有しているかのように、命令が解析する進行状況を追跡するためにヘッドラップカウントフィールドを用いることができる。
【0024】
テールオフセットフィールド237はリングバッファメモリ領域208における位置を指し示す。テールオフセットフィールド237は、グラフィックアプリケーションソフトウェアが後に実行される付加的な画像レンダリング命令を記憶するために用いることができる命令データの次のメモリユニットを指し示す。例えば、テールオフセットフィールド237は、グラフィックレンダリングエンジン214が実行するように提出された最後の命令に合格した1つのメモリユニット232を指し示す。提出された命令は、リングバッファメモリ領域208、210の末端部から先端部に戻るようにラップアラウンドされることができ、この場合、書き込まれたテールオフセット237は前の値より小さくなる。リングバッファメモリ領域208、210の“空”の状態は、“ヘッドオフセットフィールド236がタールオフセットフィールド237に等しい”として定義される。
【0025】
自動レポートヘッドイネーブルフィールド238は、グラフィックアプリケーションソフトウェア又はオペレーティングソフトウェアが、周期的ベースで特定のCPU詮索システムメモリ位置に書き込まれるヘッドオフセットフィールド236とヘッドラップカウントフィールド233の内容を有するように要求することを可能にする。自動レポートは、ヘッドオフセットフィールド236が進む度に生じるように、プログラムされた量により、プログラムされることができる。自動レポート機構は、リングバッファにおける空き領域の量を決定するために、ソフトウェアがヘッドオフセットフィールド236とヘッドラップカウントフィールド233を用いることを可能にする。このようにして、ヘッドオフセットフィールド236は、命令によりヘッドポインタ値を明白に得る必要がないようにして、適正な最新のヘッドオフセットフィールド236を提供するために、システムメモリに周期的に報告されることが可能である。
【0026】
各々の表示装置228、230は、その個々の表示装置に関連する別々の命令搬送部を有することが可能である。図2に示したように、第1リングバッファレジスタ204と第1リングバッファメモリ領域208は、第1表示装置228に関連している。第2リングバッファレジスタ206と第2リングバッファメモリ領域210は、第2表示装置230に関連している。このようにして、この例においては、第1リングバッファレジスタ204と第1リングバッファメモリ208領域は、第1表示装置228に表示される独立した画像のレンダリングのための命令を提供する。一実施形態において、第1リングバッファレジスタ204と第1リングバッファメモリ領域208は、第2表示装置230に関連している。
【0027】
複数の命令搬送部は、異なる優先順位を各々の命令搬送部に関連させることを可能にする。例えば、低い優先順位の命令搬送部は、割り込みバックグラウンドレンダリングタスクのために用いられることができる。同様に、高い優先順位の命令搬送部は、ビデオフレーム捕捉のような非同期のイベントをサービスするために用いられることができる。また、サービスするための第1命令搬送部に第1表示装置228のような1つの表示装置を、そしてサービスするための第2命令搬送部に第2表示装置230のような1つの表示装置を割り当てることにより、グラフィック装置200は、表示装置毎に別々の命令ストリームをサポートすることができる。更に、グラフィック装置200は、表示装置毎に分離して制御される命令ストリームをサポートすることができる。
【0028】
上述のように、各々の命令搬送部は直接メモリアクセスエンジン212を含むことが可能である。直接メモリアクセスエンジン212は、特定の命令搬送部から命令をもってきて、グラフィックレンダリングエンジン214にそれらの命令を提供する。グラフィクレンダリングエンジン214は、直接メモリアクセスエンジン212により命令搬送部から画像命令を読み込み、それらの画像命令を実行する。グラフィックレンダリングエンジン214は、ヘッドオフセットフィールド236とテールオフセットフィールド237との間の違いにより、リングバッファメモリ領域208、210内の命令の存在を検出する。グラフィックレンダリングエンジン214は、どのような情報を命令が含み、それ故、どのようにその命令を更に実行するかを決定するために、命令の共通の“ヘッダ”フィールドに割り込み、それを復号化する。このような命令の割り込み及び復号化は、一般に、パーシング(parsing)と呼ばれる。
【0029】
一実施形態において、グラフィックレンダリングエンジン214は、どのような情報(例えば、適用される状態変数変化246又はレンダリングされるプリミティブ248)を命令が含むかを調べるために、命令ストリーム242から特定の命令を復号化する。グラフィックレンダリングエンジン214は、次いで、適宜にその命令を実行する。状態変数変化命令246の実行は、源レンダリングコンテキストに特定の変化をもたらす。プリミティブ命令248の実行は、メモリ256、258における適切な画像情報の修正をもたらす(即ち、画像はレンダリングされる)。グラフィックレンダリングエンジン214は、次いで、第1表示画像256と第2表示画像258のような、各々の表示装置228、230に対応するメモリ位置における画像情報を記憶する。一実施形態において、第1表示画像256のための情報と第2表示画像のための情報は、第1表示装置228と第2表示装置230の両方に専用のローカルメモリに記憶される。一実施形態において、第1表示画像256のための命令と第2表示画像258のための命令はシステムメモリ232に記憶される。グラフィックレンダリングエンジン214は、メモリからレンダリングされた画像情報を読み出し、周期的ベースで関連する表示装置にレンダリングされた画像情報を提供する。第1表示装置228のような表示装置は、次いで、この情報に基づいて表示装置に実際の画像を表示する。
【0030】
一実施形態において、グラフィックアプリケーションは命令ストリーム242に命令を供給する。上述のように、これらの命令は、通常、特定の表示装置228、230に関連するリングバッファメモリ領域208、210に記憶されることが可能である。一実施形態において、命令ストリーム242において見つけられた一部の命令のタイプは、状態変数変化命令246、プリミティブ248及びセットコンテキストコマンド250、252とすることが可能である。プリミティブ命令248は、描かれる形状とそれら形状に帰する位置と寸法に関するグラフィックレンダリングエンジン214を命令する。状態変数変化命令246は、画像をレンダリングするときに、ハードウェアグラフィックコンテキスト回路244に記憶されたレンダリング状態変数のセットの現値を修正するためにグラフィックレンダリングエンジン214を命令する。一実施形態において、セットコンテキストコマンド(Set CXT #)250、252は、グラフィックレンダリングエンジン214が、第1確立メモリ位置16のような確立メモリ位置に現レンダリングコンテキストを保存すること、及び第2確立メモリ位置218のような新しい確立メモリ位置から新しいレンダリングコンテキストを回復させることをもたらす。
【0031】
第1確立メモリ位置のような各々の確立メモリ位置は、グラフィックレンダリングエンジン214により、レンダリングされた画像のレンダリングコンテキストを記憶する。同様に、各々の確立メモリ位置216、218、220は、関連する独立画像をレンダリングするとき、用いられるレンダリング状態変数の設定を記憶することが可能である。一実施形態において、複数の確立メモリ位置216、218、220は、グラフィックレンダリングエンジン214がレンダリングされた各々の画像に関連するレンダリングコンテキストのトラックを維持することを可能にする。コンテキストマネージャの実施形態は、複数の画像の現レンダリングを管理するために、複数の確立メモリ位置216、218、220とコンテキスト識別レジスタ222、224、226を含む。コンテキストマネージャの実施形態は、複数の表示装置228、230に画像を表示すること及び第1表示装置228のような同じ表示装置に複数の画像を表示することをサポートするグラフィック表示制御器回路(GDC)270に合わせる。
【0032】
ハードウェアグラフィックコンテキスト回路244における数多くのハードウェア状態変数の設定は、グラフィック装置200におけるレンダリングのようなグラフィック操作を制御する。状態変数は、全体的状態変数とコンテキスト状態変数を含むことが可能である。全体的状態変数は、全てのコンテキスト(例えば、論理アドレスマッピング資源等)に共通であり、それ故、任意の特定のレンダリングコンテキストの範囲の外側にあるとみなされる。しかしながら、特定のグラフィックアプリケーションに関連する各々のレンダリングコンテキストは分離したコンテキスト状態変数のセットを含む。一実施形態において、特定のグラフィックアプリケーションに関するこれらのレンダリングコンテキストは、アクティブなオンチップメモリにおける確立メモリ位置又はシステムメモリ232における複数の確立メモリ位置216、218、220に記憶されることが可能である。
【0033】
上述のように、複数の確立メモリ位置216、218、220は、グラフィックレンダリング画像によりレンダリングされる独立画像に関連するレンダリングコンテキストをメモリ232において記憶すること及びメモリ232から回復することにより、グラフィックレンダリングエンジン214をサポートする。一実施形態において、セットコンテキストA0(250)のような命令ストリーム242からの第2セットコンテキスト命令は、記憶のために第1確立メモリ位置216のような確立メモリ位置にレンダリングされた画像のための現レンダリングコンテキストを送信するようにグラフィックレンダリングエンジン214に命令する。同時に、第2画像を生成するグラフィックアプリケーションに関連する第2確立メモリ位置18は、グラフィクレンダリングエンジン214により同時にレンダリングされる第2画像に関連するレンダリングコンテキストを回復するためにグラフィックレンダリングエンジン214から信号を受信する。一実施形態において、その装置に位置された付加的なコンテキストキャッシュは、メモリバンド幅とスワップコンテキストに必要な時間を減少させる。
【0034】
コンテキストマネージャは又、コンテキスト識別レジスタ(CID)222、224とアクティブコンテキスト識別レジスタ226とからなる。コンテキスト識別レジスタ222、224は、特定のリングバッファレジスタ204,206と、それ故、特定の画像メモリ位置256、258に関連する。
【0035】
一実施形態において、アクティブコンテキスト識別レジスタ226は、現アクティブリングバッファレジスタ204、206に含まれるコンテキスト識別レジスタ222、224値を追跡する。第1コンテキスト識別レジスタ222のような追跡コンテキスト識別レジスタは、特定の確立メモリ位置216、218、220がグラフィックレンダリングエンジンによりレンダリングされている現画像に関連する。
【0036】
一実施形態において、各々のコンテキストと識別レジスタ222、224は、確立メモリ位置アドレスとコンテキストクオリファイアビットとを含む。コンテキストクオリファイアビットは、レンダリングコンテキストの位置がコンテキストスイッチに関して保存/回復されなければならないか、そうではないかを制御する。一実施形態において、各々のコンテキスト識別レジスタ222、224は、“テクスチャパレット保存ディセーブル”コンテキストクオリファイアビット及び““テクスチャパレット回復ディセーブル”コンテキストクオリファイアビットのようなコンテキストクオリファイアビットを実行する。一実施形態において、これらのコンテキストクオリファイアビットは、3次元画像が維持されるべき(即ち、レンダリングコンテキストの一部として保存され回復される)現テクスチャパレットを必要とすることが可能である一方、2次元画像はそうではない2次元と3次元画像との間のコンテキストを交換することの役に立つ。
【0037】
確立メモリ位置216、218、220は、対応するコンテキスト識別レジスタ222、224の確立メモリ位置アドレスにより参照される。確立メモリ位置216、218、220の実際のサイズは、コンテキストスイッチの間に記憶/回復されたデータ量であり、レンダリングコンテキストがテクスチャパレットを含むかどうかに依存する。一実施形態において、コンテキスト識別レジスタ222、224は、メモリ232におけるそれぞれの確立メモリ位置216、218,220サイズを特定するために2つの付加的なレジスタを含むことが可能である。一実施形態において、特定のコンテキスト識別レジスタ222、224は、対応するリングバッファメモリ領域208、210に記憶される命令ストリーム242から“set_context”命令250、252の処理の間に、アクティブなレジスタを生成する。一実施形態において、set_context命令250、252は、コンテキスト識別レジスタ222、224にロードされるように新しいコンテキスト識別値(局所コンテキストアドレス+パレット保存ディセーブルビット)を提供する。set_context命令250、252は又、新しいコンテキストの回復を随意的に抑制するために用いられる回復抑制ビットを含む。一実施形態において、回復抑制ビットは、メモリ232から非識別コンテキストデータのローディングを回避するためにコンテキスト識別の間に、用いられることが可能である。
【0038】
アクティブコンテキスト識別レジスタ226は、第1リングバッファレジスタ204のようなアクティブなリングバッファレジスタのコンテキスト識別値を含む。set_context命令250、252の実行の一部として、アクティブなコンテキスト識別レジスタ226からの確立メモリ位置アドレスフィールドとset_context命令が比較される。それらが異なるか又はアクティブなコンテキスト識別レジスタ226が初期化されない場合、コンテキストスイッチ操作は生じない。
【0039】
一実施形態において、コンテキストスイッチ操作の間に、回復抑制命令フィールドが設定されない場合、コンテキスト回復操作は実行されることが可能である。ここで、第1確立メモリ位置216のような確立メモリ位置のためのアドレス値は、アクティブなコンテキスト識別レジスタ226をロードするために用いられる。命令のコンテキストクオリファイアフィールドは、レンダリングコンテキストの一部の回復を更に調整することが可能であることことに留意されたい。例えば、テクスチャパレットは回復されることも、そうでないことも可能である。
【0040】
HW GFX CXT244は、適切な確立メモリ位置からの新しいコンテキストのロードと共に、セットコンテキスト命令250、252からの値をもつアクティブなコンテキスト識別レジスタをもたらす。この時点で、対応するリングバッファレジスタ204、206とリングバッファメモリ領域208、210は、新しい確立メモリ位置216、218、220にアクティブなコンテキストをスイッチングした。
【0041】
上述のように、各々のグラフィックアプリケーションは異なる速度において画像命令を生成することが可能である。同様に、各々の表示装置228、230は、異なる速度で、表示及びその関連する画像を一新することが可能である。一実施形態において、コンテンツマネージャと命令搬送部は、異なる命令ストリーム間の継ぎ目のないスイッチング、異なる表示装置228、252間の継ぎ目のないスイッチング、及び同じ命令ストリーム242における異なるグラフィックアプリケーションに関連するレンダリングコンテキスト間の継ぎ目のないスイッチングをサポートする。
【0042】
図4は、レンダリングされる各々の独立画像間のグラフィックレンダリングエンジンの使用を割り当てるために時間アロケータの実施形態のブロック図を示している。一実施形態において、時間アロケータ400は、裁定及びスイッチングモジュール410、タイマーレジスタ412、ユニットレジスタ414、ユニット時間カウンタ416及び時間スライスカウンタ418を含む。一実施形態において、時間アロケータ400は、1つのグラフィックレンダリングエンジンの使用を割り当てるために、経過時間の基準と公平使用の基準を提供する。一実施形態において、時間アロケータ400は、複数の表示装置(図示せず)、各々がそれ自身の命令ストリーム413を有する複数のグラフィックアプリケーションプログラム、及び1つの命令ストリーム413における複数のグラフィックアプリケーションプログラムの間の独立画像をレンダリングするためにグラフィックレンダリングエンジン411を割り当てることが可能である。
【0043】
第1リングバッファレジスタ402及び第2リングバッファレジスタ404のような各々のリングバッファレジスタはタイムスライシングされることが可能であるか、又は、リングバッファレジスタは第3リングバッファレジスタ206のようにタイムスライシングされない。後に説明するように、各々の非タイムスライスレジスタは、グラフィックレンダリングエンジン411の使用を一時的に独占するライブビデオのような優先度の高いグラフィック画像のために用いられることが可能である。
【0044】
各々のタイムスライスリングバッファレジスタ402、404は、他のタイムスライスリングバッファへのスイッチングがチェックされるべきであることが示される前に実行される命令実行の所望の持続時間を特定するTIME_SLICEレジスタ420、422をそれに関連させる。一実施形態において、リングバッファレジスタ402、404におけるタイムスライスフィールド420、422は、この特定のリングバッファレジスタ402,404に一致する必要があるグラフィックレンダリングエンジン411を使用する割合を特定するために存在する。タイムスライスフィールド420、422は又、この特定のリングバッファレジスタ402,404に一致する必要があるグラフィックレンダリングエンジン411を使用する最小の絶対時間を特定することが可能である。一実施形態において、命令実行の好適な持続時間は、タイムユニットにおいてプログラムされることが可能である。一実施形態において、ドライバソフトウェア424は、各々のタイムスライスフィールド420、422にこれらのタイムユニット値を書き込むことが可能である。このようにして、ドライバソフトウェア424は、各々のタイムスライスリングバッファレジスタ420、422に当てられる絶対時間と相対時間の両方を制御することが可能である。CPU440は、メモリ442のようなメモリからドライバソフトウェア424にアクセスする。
【0045】
ユニットレジスタ414は、ドライバソフトウェア424により用いられるタイムクアンタムを前方互換ユニットタイムに提供する。ユニットタイムクアンタムの確立は、実際の装置の時間基準が設定及び/又は実行の間で変化することとなる。一実施形態において、ユニットレジスタ414は、実際の時間基準としてグラフィックドライバ400のコアクロック周期を用いている。ユニットレジスタ414は、グラフィック装置400のためのBIOSファームウェア426によりプログラムされることが可能である。他のタイムスライスパラメータは、ユニットレジスタ414により確立されたこのユニットタイムクアンタムに関連して定義される。ユニットレジスタ414により規定された各々のユニットタイムクアンタムは、例えば、1ユニット時間が50マイクロ秒に等しい又は1ユニット時間が40クロックサイクルに等しいとすることが可能である。
【0046】
ユニットレジスタ414は又、リングバッファタイムスライシングをオン又はオフにするために、タイムスライスイネーブルビット(T)428を含む。一実施形態において、ユニットレジスタ414のタイムスライスイネーブルビット428が明確であるとき、固定リングバッファの優先度は効力がある。一実施形態において、タイムスライスイネーブルビットが設定されるとき、タイムスライスリングバッファレジスタ間の裁定はタイムスライスフィールド420、422により制御される。
【0047】
タイマーレジスタ412はタイムスライスのタイミング制御を実行する。タイムスライスイネーブルビット428が設定されるとき、タイムレジスタ412は、各々のリングバッファレジスタ402、404のタイムスライスフィールド420、422位置に書き込まれたユニットの値を読み込む。このモードにおいて、第1リングバッファメモリ領域430のような特定のリングバッファメモリ領域に命令を供給する命令ストリーム413の起動又は再起動は、タイマーカウントダウンフィールド(TC)434が第1リングバッファレジスタ420のような特定のリングバッファのタイムスライスレジスタ420、422位置に内容値と共に初期化されるようにする。タイマーカウントダウンフィールド434は、全てのタイムユニットを減少させる一方、リングバッファメモリ領域からの命令の実行は継続する。
【0048】
タイムスライスカウンタ418は、タイマーカウントダウンフィールド434に全てのタイムユニットを減少させる。ユニットタイムカウンタ416は、全てのコアクロックサイクルをモニタし且つカウントする。ユニットタイムカウンタ416は、ユニットレジスタ414により規定される確立ユニットタイムクアンタムに基づくタイマーカウントダウンフィールド434を減少させるために、タイムスライスカウンタ418に信号を送信する。
【0049】
一実施形態において、次のような2つの条件が存在する場合、グラフィクレンダリングエンジン411は、リングバッファメモリ領域からの命令のレンダリングを止め、他のリングバッファメモリ領域からの命令のレンダリングを開始するために、裁定及びスイッチングモジュールから命令を受信する。2つの条件において、タイマーカウントダウンフィールド434が0になる場合、保留中の命令が他のリングバッファメモリ領域に存在する。グラフィックレンダリングエンジン411は、次いで、第2リングバッファメモリ領域432のような他のリングバッファメモリ領域の実行に向けてスイッチングし、これにより、タイマーカウントダウンフィールド434が第2リングバッファレジスタ404のタイムスライスフィールド422におけるコンテンツと共に再初期化されるようにする。このスイッチングは、次の命令の裁定ポイントにおいて生じる。
【0050】
しかしながら、タイマーカウントダウンフィールド434が0になるとき、第1リングバッファメモリ領域430のような他のリングバッファメモリ領域における保留中の命令がない場合、現リングバッファメモリ領域における命令の実行が継続される。位置実施形態において、現リングバッファメモリ領域における命令の実行は、他のリングバッファレジスタが命令の存在を通信するときまで、いつまでも続く。一実施形態において、第1リングバッファレジスタ402のようなリングバッファレジスタは、ヘッドオフセットフィールド415における値がテールオフセット値417と異なるとき、実行する命令の存在を示す。位置実施形態において、新しい命令の存在は、裁定及びスイッチングモジュール410に通信される。裁定及びスイッチングモジュールは、タイムスライスフィールド402、422において指定された値について現リングバッファメモリ領域において命令の実行を継続し、次いで、新しい命令の実行に向けてスイッチングする。
【0051】
アクティブなコンテキスト識別レジスタは、裁定及びスイッチングモジュール410によりグラフィックレンダリングエンジン411に、アクティブなリングバッファレジスタ(図示せず)のコンテキスト識別レジスタ値を通信する。
【0052】
幾つかの機構は、それぞれのリングバッファメモリ領域に記憶された保留中の命令を有する2つのリングバッファレジスタ間のグラフィックレンダリングエンジン411の使用のための裁定プロセスを中断させることができる。上述のように、第3リングバッファレジスタ406のような非タイムスライシングの優先度の高いリングバッファは、タイマーカウントダウン434を中断するために裁定及びスイッチングモジュール410に通信し、現アクティブタイムスライスリングバッファレジスタのための命令をレンダリングすることが可能である。このような中断は、グラフィックレンダリングエンジン411が非タイムスライスリングバッファに関連する現命令のレンダリングを終了するまでの、一時的なものである。
【0053】
グラフィックアプリケーションソフトウェアからの命令ストリーム413は、グラフィックレンダリングエンジン411の裁定使用を一時的に中断させるための命令を含むことが可能である。例えば、“レジスタをロードせよ”命令423は、それぞれのリングバッファメモリ領域430、432に記憶された保留中の命令を有する2つのタイムスライスリングバッファレジスタ402、422間のグラフィックレンダリングエンジン411の裁定使用を中断することが可能である。ソフトウェアは、タイマーカウントダウンフィールド434をクリアするために“レジスタをロードせよ”命令423を用いることができ、それ故、保留中の命令が他のリングバッファメモリ領域に存在する場合、アクティブなリングバッファレジスタがそのタイムスライスの期間の残りを放棄するように効果的にする。例えば、実行される命令のための時間が、リングバッファレジスタ402、422に一致する絶対最小時間又は特定の使用割合のどちらかを上回ることを予測されないとき、“レジスタをロードせよ”命令423が用いられることが可能である。一実施形態において、第1ストリームに関連する命令が全体のタイムスライス期間を取らない場合、裁定及びスイッチングモジュール410は、保留中の命令を含んでいる他のリングバッファメモリ領域にスイッチングされる。又、例えば、“レジスタをロードせよ”命令423は、グラフィックレンダリングエンジン411が特定の命令シーケンスに関して機能する前に、第2アプリケーションのための保留中の命令が処理されることが可能であるように、きわめて時間を消費する命令又は中断されない命令シーケンスに先立って使用されることが可能である。
【0054】
上述のように、実行する準備ができている命令をもつ他のリングバッファメモリ領域430、432がない場合、命令の実行は合格した“レジスタをロードせよ”命令423を継続する。他のリングバッファ命令の実行の後、他のリングバッファメモリ領域430、432が実行される命令を有しない場合、グラフィックレンダリングエンジン411は、タイマーカウントダウン434による待ち時間なしにオリジナルのリングバッファの命令に戻るように即座にスイッチングされる。
【0055】
命令ストリーム413は又、“イベントを待て”命令425を含むことが可能である。“イベントを待て”命令425は、特定の条件が存在するか特定のイベントが生じるまで、この特定の命令ストリーム413からの命令の実行を休止するために用いられることが可能である。“イベントを待て”命令425の実行が休止を結果的にもたらす場合、他のタイムスライスリングバッファレジスタ402、404は、中断中のリングバッファのタイムスライス期間の残りが切れる前であったとしても、グラフィックレンダリングエンジンはそれらの関連する命令を処理することを可能にする。例えば、“イベントを待て”命令425は、ビデオ捕捉イベントを待つために用いられることが可能である。表示装置は、表示装置の表示スクリーンの垂直最上部からスクリーンの垂直下部までいくとき、画像を表示するためにそれらの命令を用いる必要がある。このように、グラフィックレンダリングエンジン411は、表示スクリーン上の完全な画像のための命令全てをレンダリングし、移行期間が垂直最上部から垂直下部までの間に切れるまで、表示装置のためにそれ以上命令をレンダリングすることはない。グラフィック装置400がそのようなイベントが生じることを待っている間に、“イベントを待て”命令425は、グラフィクレンダリングエンジン411が現表示装置のために生じる非同期性イベントを待っている間に異なる表示装置に関連する他のタイムスライスリングバッファメモリ領域の処理を再度可能にするようにする。非同期性イベントは、ビデオ捕捉イベントのように、規則的なインターバル又は時間と調和するようにして起こらないイベントである。一実施形態において、非同期性イベントは、ランダムに又は命令ストリームの実行に関係ないインターバルで起こる。例えば、表示装置の垂直のブランクイベント、非同期イベントは、実際には、現実世界の時間における規則的なインターバル(即ち60Hz)で起こるが、命令ストリーム413の実行に関する不規則なサービス時間に対して非同期である。
【0056】
図5及び図6は、1つのグラフィックレンダリングエンジンを用いる複数の表示装置上の複数の画像をレンダリングするためのプロセスの実施形態のフロー図を示している。命令ストリームは、1つ又はそれ以上のグラフィックアプリケーションから命令搬送部に命令ストリームが命令を運ぶとき、そのプロセスを始める。
【0057】
ブロック505において、リングバッファレジスタにより規定される第1リングバッファメモリ領域は、複数のグラフィックアップリケーションプログラムか又は1つのグラフィックアプリケーションプログラムにより、命令を受信する。第1リングバッファメモリ領域の位置及びサイズは、第1リングバッファレジスタに含まれるプログラマブルコンテンツにより規定されることが可能である。命令搬送部は、1つ又はそれ以上のリングバッファレジスタ又は類似した装置を含むことが可能である。
【0058】
ブロック510においては、ドライバは、第1リングバッファメモリ領域に画像を表示する命令を記憶する。一実施形態において、対応するリングバッファレジスタにおけるテールオフセットフィールドは、第1リングバッファメモリ領域に含まれる保留中の命令の存在を示すためにドライバにより変化される。第1リングバッファレジスタは、グラフィックレンダリングエンジンと裁定及びスイッチングモジュールに、実行される命令の存在を知らせる。
【0059】
ブロック515においては、命令搬送部は、グラフィックレンダリングエンジンのために第1リングバッファメモリから命令を持ってくるようにDMAエンジンを用いる。裁定及びスイッチングモジュールは、グラフィックレンダリングエンジンが命令を処理するメモリとして、第1リングバッファメモリを設定する。
【0060】
ブロック520においては、グラフィックコンテキストマネージャが第1リングバッファレジスタに関連する現レンダリングを設定する。
【0061】
ブロック525においては、一実施形態において、グラフィックレンダリングエンジンにより処理される第1(現)画像が、次に処理される第2(次の)画像と異なるレンダリングコンテキストを有する場合、次のようなことが生じる。グラフィックコンテキストマネージャは第1画像に関連するレンダリングコンテキストを記憶し、グラフィックレンダリングエンジンに第2画像に関連するコンテキストを回復させる。グラフィックコンテキストマネージャは、確立メモリ位置のような第2メモリ領域における特定のグラフィックアプリケーションからの画像に関連するレンダリングコンテキストを表す状態変数値を記憶し且つ回復させる。第2メモリ領域は、コンテキスト識別レジスタのような第2レジスタに含まれるプログラマブルコンテンツにより規定されることが可能である。
【0062】
ブロック530において、グラフィックレンダリングエンジンは、第1リングバッファメモリ領域のような打アイ1表示装置に関連するリングバッファメモリ領域からの命令を実行し、第1画像表示メモリ領域に適切な修正を行う。時間アロケータに基づいて、グラフィックレンダリングエンジンは、次いで、第2表示装置に関連する第2リングバッファメモリ領域からの命令の実行を開始することが可能である。一実施形態において、グラフィックレンダリングエンジンは、第1リングバッファメモリ領域を供給する同じ命令ストリーム内に含まれる第2グラフィックアプリケーションからの命令の実行を開始する。このようにして、グラフィックレンダリングエンジンは、第1独立画像に関連する命令と第2独立画像に関連する命令との処理の間に、スイッチングにより交互に変わる。グラフィックレンダリングエンジンは、同じ命令ストリーム内の2つの異なるグラフィックアプリケーションからの命令を処理することにより、又は異なるリングバッファメモリ領域からの処理命令間で、スイッチングすることが可能である。グラフィックレンダリングエンジンは、第2独立画像に関連する命令を処理することを開始する前に、第1独立画像に関連する全ての命令を完全に処理することを待つ必要はないことに留意されたい。
【0063】
ブロック535において、時間アロケータは、第1独立画像と第2独立画像に関連する命令の間のグラフィックレンダリングエンジンのバランス使用をロードすることが可能である。一実施形態において、時間アロケータは、2つ又はそれ以上の独立画像に関連する命令の間でグラフィックレンダリングエンジンのバランス使用をロードすることが可能である。一実施形態において、時間アロケータは、各々の画像について決定されるグラフィックレンダリングエンジンの絶対最小使用時間と各々の画像について決定される割合とに基づくグラフィックレンダリングエンジンの使用のバランスをとる。時間アロケータは又、グラフィックレンダリングエンジンの即座の使用を要求する優先度の高い画像、並びに、グラフィックレンダリングエンジンの使用割合と絶対最小時間使用とを共有する画像との間でグラフィックレンダリングエンジンの使用のバランスをとることが可能である。
【0064】
ブロック540において、時間アロケータは、異なるコア周波数で機能する装置と互換性があるタイミング回路においてユニットタイムクアンタムを確立することが可能である。これらのブロックは、任意のセットのシーケンシャル順序の実行を示すことが可能という訳ではないことに留意されたい。例えば、ブロック540は、ブロック505の前に置くことが可能である。
【0065】
ブロック545において、時間アロケータは、グラフィック装置ドライバからのソフトウェア命令により第2画像に関連する命令に対してグラフィックレンダリングエンジンを用いるために、第1画像に関連する命令のために指定される時間を生成することが可能である。
【0066】
ブロック550において、時間アロケータは、グラフィックアプリケーションからのソフトウェア命令により第1画像に生じる画像レンダリングイベントを待つ間に、グラフィックレンダリングエンジンが、第2画像に関連する命令を処理するようにすることが可能である。
【0067】
ブロック555において、グラフィック装置は、1つ又はそれ以上の表示装置上に複数の画像を同時に表示する。
【0068】
ブロック570において、グラフィック装置は、ブロック505において開始されたプロセスを継続する。
【図面の簡単な説明】
【0069】
【図1】複数の表示装置に1つ又はそれ以上の画像を表示するために1つのグラフィックレンダリングエンジンを用いて1つ又はそれ以上の画像をレンダリングするグラフィック装置の実施形態を示すブロック図である。
【図2】中央演算処理装置(CPU)、キャッシュ、メモリ、表示装置及び命令搬送部の実施形態とグラフィックコンテキストマネージャに実施形態を有するグラフィック装置を含むコンピュータシステムの実施形態を示すブロック図である。
【図3】リングバッファメモリ領域の実施形態を示すブロック図である。
【図4】レンダリングされた各々の独立画像間においてグラフィックレンダリングエンジンの使用を割り当てるための時間アロケータの実施形態を示すブロック図である。
【図5】1つのグラフィックレンダリングエンジンを用いて複数の表示装置において複数の画像をレンダリングするための実施形態を示すフロー図である。
【図6】1つのグラフィックレンダリングエンジンを用いて複数の表示装置において複数の画像をレンダリングするための実施形態を示すフロー図である。

Claims (23)

  1. 複数の表示装置における表示のための2つ又はそれ以上の独立画像を同時にレンダリングするためのグラフィックレンダリングエンジンであって、2つ又はそれ以上の独立画像
    は第1独立画像と第2独立画像とを含む、グラフィックレンダリングエンジン;
    ;並びに
    第1メモリ領域に記憶し且つ第1独立画像に関連する第1レンダリングコンテキストを説明する情報を第1メモリ領域から回復するグラフィックコンテキストマネージャであって、第2メモリ領域に記憶し且つ第2独立画像に関連する第2レンダリングコンテキストを説明する情報を第2メモリ領域から回復するグラフィックコンテキストマネージャ;
    から構成されることを特徴とする装置。
  2. 請求項1に記載の装置であって、グラフィックコンテキストマネージャは:
    各々のメモリ領域が特定のグラフィックアプリケーションからの命令に関連するレンダリングコンテキストを記憶する、複数のメモリ領域であって、第1メモリ領域と第2メモリ領域とを含む、複数のメモリ領域;並びに
    第1コンテキスト表示レジスタと第2コンテキスト表示レジスタとを含む複数のコンテキスト表示レジスタであって、第1コンテキスト表示レジスタは第1メモリ領域のアドレスを指し示すための情報を含み、第2コンテキスト表示レジスタは第2メモリ領域のアドレスを指し示すための情報を含む、複数のコンテキスト表示レジスタ;
    から構成される、ことを特徴とする装置。
  3. 請求項2に記載の装置であって、グラフィックコンテキストマネージャは:
    複数のメモリ領域においてどのメモリ領域がグラフィックレンダリングエンジンに供給されるべきレンダリングコンテキスト情報を含んでいるかを追跡するための第3レジスタ;
    から更に構成される、ことを特徴とする装置。
  4. 請求項1に記載の装置であって、第1メモリ領域は、グラフィックレンダリングエンジンを含む同じチップに備えられる、ことを特徴とする装置。
  5. 請求項2に記載の装置であって、第1コンテキスト表示レジスタは、2次元画像に関連する第1レンダリングコンテキストを3次元画像に関連する第2レンダリングコンテキストにスイッチングすることを支援するためのフィールドを含む、ことを特徴とする装置。
  6. 請求項2に記載の装置であって、第1コンテキスト表示レジスタは、テクスチャマップ画像に関連する第1レンダリングコンテキストを非テクスチャマップ画像に関連する第2レンダリングコンテキストにスイッチングすることを支援するためのフィールドを含む、ことを特徴とする装置。
  7. 請求項2に記載の装置であって:
    第1命令ストリームにおける2つ又はそれ以上の独立画像のための命令を含む第1メモリ領域;
    から更に構成される、ことを特徴とする装置。
  8. 請求項2に記載の装置であって:
    第1命令ストリームにおける1つ又はそれ以上の独立画像のための命令を含む第1メモリであって、第2命令ストリームにおける1つ又はそれ以上の独立画像のための命令を含む第1メモリ;
    から構成される、ことを特徴とする装置。
  9. 請求項1に記載の装置であって:
    グラフィックレンダリングエンジンに2つ又はそれ以上の独立画像のための命令を提供する1つ又はそれ以上の命令搬送部であって、第1命令搬送部を含む、1つ又はそれ以上の命令搬送部;
    から構成される、ことを特徴とする装置。
  10. 請求項9に記載の装置であって、各々の命令搬送部は複数の表示装置に関連する、ことを特徴とする装置。
  11. 請求項9に記載の装置であって、第1命令搬送部は:
    命令メモリ領域;
    命令メモリ領域に対して開始と終了を規定する第1レジスタ;並びに
    命令メモリ領域からグラフィックレンダリングエンジンに命令を持っていき且つ提供するためのメモリアクセスエンジン;
    から構成される、ことを特徴とする装置。
  12. 請求項9に記載の装置であって、命令搬送部は:
    命令ストリームから呼び出すことができる独立した一連の命令を記憶するための第3メモリ;
    から更に構成される、ことを特徴とする装置。
  13. 請求項1に記載の装置であって:
    2つ又はそれ以上の独立画像の間のグラフィックレンダリングエンジンの使用を裁定するための時間アロケータ;
    から更に構成される、ことを特徴とする装置。
  14. 請求項13に記載の装置であって、時間アロケータは:
    第1レジスタを含む複数のレジスタであって、第1レジスタは第1レジスタがグラフィックレンダリングエンジンを用いるために裁定プロセスに加わるかどうかを決定するための第1フィールドと、第1命令ストリームからの命令を含むメモリ位置を指し示すための第2フィールドとを含む複数のフィールドを含む、複数のレジスタ;
    から構成される、ことを特徴とする装置。
  15. 請求項13に記載の装置であって、時間アロケータは:
    グラフィックレンダリングエンジンの使用するプログラマブル経過期間を確立するための第1モジュールであって、その期間はプログラマブルユニットタイム期間数により規定され、各々のユニットタイム期間はプログラマブルなリアルタイムのタイムクアンタム数により規定される、第1モジュール;
    から更に構成される、ことを特徴とする装置。
  16. 請求項14に記載の装置であって、時間アロケータは:
    第1独立画像に関連する命令を処理するためのグラフィックレンダリングエンジンを導くための第1モジュールであって、その命令は第1メモリ領域に記憶され、第1メモリ領域は複数のフィールドに含まれる情報により規定されるアドレスを有する、第1モジュール;
    から更に構成される、ことを特徴とする装置。
  17. 第1命令ストリームにおける複数の独立画像に関連する命令を同時にレンダリングする段階;
    第1独立画像に関連する第1レンダリングコンテキストを表す情報を第1メモリ領域に記憶する段階;
    第2独立画像に関連する第2レンダリングコンテキストを表す命令を第2メモリ領域から回復する段階;並びに
    第1レンダリングコンテキストから第2レンダリングコンテキストにグラフィックレンダリングエンジンをスイッチングする段階;
    から構成されることを特徴とする方法。
  18. 請求項17に記載の方法であって:
    第1グラフィックアプリケーションに関連する命令と第2グラフィックアプリケーションに関連する命令との間のグラフィックレンダリングエンジンの使用を割り当てるためにタイミング回路を用いる段階;
    から更に構成される、ことを特徴とする方法。
  19. 請求項17に記載の方法であって:
    複数のメモリ領域に第1メモリ領域と第2メモリ領域とを含む段階;並びに
    複数のメモリ領域におけるどの領域がグラフィックレンダリングエンジンに供給されるレンダリングコンテキスト情報を含むかを追跡するために揮発性メモリを用いる段階;
    から更に構成される、ことを特徴とする方法。
  20. 請求項17に記載の方法であって:
    1つの表示装置に複数の独立画像を表示する段階;
    から更に構成される、ことを特徴とする方法。
  21. 中央演算処理装置;並びに
    グラフィック装置であって、中央演算処理装置はグラフィック装置に結合され、グラフィック装置は複数の表示装置における表示のために2つ又はそれ以上の独立画像を同時にレンダリングするためにグラフィックレンダリングエンジンを含む、グラフィック装置、及び、第1独立画像に関連する第1レンダリングコンテキストを表す情報を第1メモリ領域に記憶し且つ第1メモリ領域から回復するためのグラフィックコンテキストマネージャであって、第2独立画像に関連する第2レンダリングコンテキストを表す情報を第2メモリ領域に記憶し且つ第2メモリ領域から回復するためのグラフィックコンテキストマネージャ;
    から構成されることを特徴とするシステム。
  22. 請求項21に記載のシステムであって、グラフィック装置は:
    2つ又はそれ以上の独立画像間においてグラフィックレンダリングエンジンの使用を裁定するための時間アロケータ;
    から更に構成される、ことを特徴とするシステム。
  23. 請求項21に記載のシステムであって、グラフィック装置は:
    時間アロケータにより制御されるとき、グラフィックレンダリングエンジンに独立画像のための命令を提供するための命令搬送部;
    から更に構成される、ことを特徴とするシステム。
JP2003509315A 2001-06-29 2002-06-28 グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム Pending JP2004536395A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/895,777 US7173627B2 (en) 2001-06-29 2001-06-29 Apparatus, method and system with a graphics-rendering engine having a graphics context manager
PCT/US2002/020682 WO2003003206A2 (en) 2001-06-29 2002-06-28 Apparatus, method and system with a graphics-rendering engine having a graphics context manager

Publications (1)

Publication Number Publication Date
JP2004536395A true JP2004536395A (ja) 2004-12-02

Family

ID=25405077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003509315A Pending JP2004536395A (ja) 2001-06-29 2002-06-28 グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム

Country Status (8)

Country Link
US (1) US7173627B2 (ja)
EP (1) EP1399816A2 (ja)
JP (1) JP2004536395A (ja)
KR (1) KR100668002B1 (ja)
CN (1) CN1324473C (ja)
AU (1) AU2002322359A1 (ja)
TW (1) TWI242753B (ja)
WO (1) WO2003003206A2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3754912B2 (ja) * 2000-11-13 2006-03-15 キヤノン株式会社 マルチメディアコンテンツの配信方法
US9152582B2 (en) 2010-10-01 2015-10-06 Z124 Auto-configuration of a docked system in a multi-OS environment
US9047102B2 (en) * 2010-10-01 2015-06-02 Z124 Instant remote rendering
US8966379B2 (en) 2010-10-01 2015-02-24 Z124 Dynamic cross-environment application configuration/orientation in an active user environment
US8933949B2 (en) 2010-10-01 2015-01-13 Z124 User interaction across cross-environment applications through an extended graphics context
US8819705B2 (en) 2010-10-01 2014-08-26 Z124 User interaction support across cross-environment applications
US8726294B2 (en) 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
US20040012627A1 (en) * 2002-07-17 2004-01-22 Sany Zakharia Configurable browser for adapting content to diverse display types
US6980216B2 (en) * 2004-01-27 2005-12-27 Honeywell International Inc. Graphics driver and method with time partitioning
US7242369B2 (en) * 2004-10-26 2007-07-10 Benq Corporation Method of displaying text on multiple display devices
US20060277126A1 (en) * 2005-06-06 2006-12-07 Intel Corporation Ring credit management
US7308565B2 (en) * 2005-06-15 2007-12-11 Seiko Epson Corporation Saving/restoring task state data from/to device controller host interface upon command from host processor to handle task interruptions
US20070101325A1 (en) * 2005-10-19 2007-05-03 Juraj Bystricky System and method for utilizing a remote memory to perform an interface save/restore procedure
US7583268B2 (en) * 2005-11-10 2009-09-01 Via Technologies, Inc. Graphics pipeline precise interrupt method and apparatus
US7580040B2 (en) 2005-11-10 2009-08-25 Via Technologies, Inc. Interruptible GPU and method for processing multiple contexts and runlists
US7545381B2 (en) * 2005-11-10 2009-06-09 Via Technologies, Inc. Interruptible GPU and method for context saving and restoring
US7590774B2 (en) * 2005-12-01 2009-09-15 Kabushiki Kaisha Toshiba Method and system for efficient context swapping
US7340557B2 (en) * 2005-12-15 2008-03-04 Via Technologies, Inc. Switching method and system for multiple GPU support
US7325086B2 (en) * 2005-12-15 2008-01-29 Via Technologies, Inc. Method and system for multiple GPU support
US7876328B2 (en) * 2007-02-08 2011-01-25 Via Technologies, Inc. Managing multiple contexts in a decentralized graphics processing unit
US8051090B2 (en) * 2007-12-28 2011-11-01 Realtek Semiconductor Corp. File management method of a ring buffer and related file management apparatus
US20120013628A1 (en) * 2009-03-31 2012-01-19 Youichi Itaki Information processing apparatus, screen display control method and program
FR2944692B1 (fr) * 2009-04-27 2011-04-15 Medicrea International Materiel d'osteosynthese vertebrale
US10324605B2 (en) 2011-02-16 2019-06-18 Apple Inc. Media-editing application with novel editing tools
US20120084737A1 (en) 2010-10-01 2012-04-05 Flextronics Id, Llc Gesture controls for multi-screen hierarchical applications
WO2012044557A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Auto-configuration of a docked system in a multi-os environment
US8761831B2 (en) 2010-10-15 2014-06-24 Z124 Mirrored remote peripheral interface
US8775480B2 (en) 2011-01-28 2014-07-08 Apple Inc. Media clip management
US8910032B2 (en) * 2011-01-28 2014-12-09 Apple Inc. Media-editing application with automatic background rendering capabilities
US11747972B2 (en) 2011-02-16 2023-09-05 Apple Inc. Media-editing application with novel editing tools
US9997196B2 (en) 2011-02-16 2018-06-12 Apple Inc. Retiming media presentations
US20130076654A1 (en) 2011-09-27 2013-03-28 Imerj LLC Handset states and state diagrams: open, closed transitional and easel
CN103310479B (zh) * 2012-03-12 2016-09-28 联想(北京)有限公司 图像处理方法和电子设备
US9547356B2 (en) 2013-02-28 2017-01-17 Intel Corporation Context aware power management for graphics devices
US9659342B2 (en) * 2013-06-29 2017-05-23 Intel Corporation Mid command buffer preemption for graphics workloads
US10185604B2 (en) * 2013-10-31 2019-01-22 Advanced Micro Devices, Inc. Methods and apparatus for software chaining of co-processor commands before submission to a command queue
US9563466B2 (en) * 2013-11-05 2017-02-07 Intel Corporation Method and apparatus for supporting programmable software context state execution during hardware context restore flow
CN105469354A (zh) * 2014-08-25 2016-04-06 超威半导体公司 图形处理方法、系统和设备
CN110138769B (zh) * 2019-05-09 2021-06-15 深圳市腾讯网域计算机网络有限公司 一种图像传输的方法以及相关装置
CN114756323B (zh) * 2022-06-14 2022-09-27 统信软件技术有限公司 一种模糊控件创建方法、装置与计算设备

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4530047A (en) * 1980-12-15 1985-07-16 Texas Instruments Incorporated Dual registry digital processor system with external memory interface
US4965559A (en) * 1988-05-31 1990-10-23 Motorola, Inc. Multi-channel graphics controller
JPH0786839B2 (ja) * 1990-02-13 1995-09-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチタスク式データ処理システム
US5644407A (en) 1990-12-20 1997-07-01 Canon Kabushiki Kaisha Image processing apparatus having a remote communication function
DE69230462T2 (de) 1991-11-19 2000-08-03 Sun Microsystems Inc Arbitrierung des Multiprozessorzugriffs zu gemeinsamen Mitteln
FR2705804B1 (fr) 1993-05-27 1995-08-11 Sgs Thomson Microelectronics Architecture de processeur multi-tâches.
US6396504B1 (en) 1994-04-29 2002-05-28 Sun Microsystems, Inc. Graphical image data reformatting method and apparatus
JPH10502181A (ja) * 1994-06-20 1998-02-24 ネオマジック・コーポレイション メモリインタフェースのないグラフィックスコントローラ集積回路
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US5880737A (en) 1995-08-04 1999-03-09 Microsoft Corporation Method and system for accessing texture data in environments with high latency in a graphics rendering system
US5740343A (en) 1995-11-03 1998-04-14 3Dfx Interactive, Incorporated Texture compositing apparatus and method
US6311204B1 (en) * 1996-10-11 2001-10-30 C-Cube Semiconductor Ii Inc. Processing system with register-based process sharing
JP3763136B2 (ja) 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
US5940086A (en) 1997-01-10 1999-08-17 Hewlett Packard Company System and method for dynamically allocating data among geometry accelerators in a computer graphics system
US5969726A (en) 1997-05-30 1999-10-19 Hewlett-Packard Co. Caching and coherency control of multiple geometry accelerators in a computer graphics system
US6188381B1 (en) 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
US6124868A (en) 1998-03-24 2000-09-26 Ati Technologies, Inc. Method and apparatus for multiple co-processor utilization of a ring buffer
US6092124A (en) 1998-04-17 2000-07-18 Nvidia Corporation Method and apparatus for accelerating the rendering of images
US6252610B1 (en) 1998-05-29 2001-06-26 Silicon Graphics, Inc. Method and apparatus for efficiently switching state in a graphics pipeline
US6157393A (en) * 1998-07-17 2000-12-05 Intergraph Corporation Apparatus and method of directing graphical data to a display device
US6252600B1 (en) * 1998-10-02 2001-06-26 International Business Machines Corporation Computer graphics system with dual FIFO interface
US6339427B1 (en) 1998-12-15 2002-01-15 Ati International Srl Graphics display list handler and method
US6392655B1 (en) 1999-05-07 2002-05-21 Microsoft Corporation Fine grain multi-pass for multiple texture rendering
US6362828B1 (en) 1999-06-24 2002-03-26 Microsoft Corporation Method and system for dynamic texture replication on a distributed memory graphics architecture
US6353439B1 (en) 1999-12-06 2002-03-05 Nvidia Corporation System, method and computer program product for a blending operation in a transform module of a computer graphics pipeline
US6674841B1 (en) * 2000-09-14 2004-01-06 International Business Machines Corporation Method and apparatus in a data processing system for an asynchronous context switching mechanism
US6738069B2 (en) 2001-12-31 2004-05-18 Intel Corporation Efficient graphics state management for zone rendering

Also Published As

Publication number Publication date
TWI242753B (en) 2005-11-01
EP1399816A2 (en) 2004-03-24
CN1639686A (zh) 2005-07-13
KR100668002B1 (ko) 2007-01-15
WO2003003206A3 (en) 2003-12-04
WO2003003206A2 (en) 2003-01-09
US20030001848A1 (en) 2003-01-02
KR20040014588A (ko) 2004-02-14
CN1324473C (zh) 2007-07-04
AU2002322359A1 (en) 2003-03-03
US7173627B2 (en) 2007-02-06

Similar Documents

Publication Publication Date Title
JP4383853B2 (ja) 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JP2004536395A (ja) グラフィックコンテキストマネージャを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム
JP3681026B2 (ja) 情報処理装置および方法
US7834882B2 (en) Virtualization of graphics resources
JP5485055B2 (ja) 共有メモリシステム及びその制御方法
US20090160867A1 (en) Autonomous Context Scheduler For Graphics Processing Units
US8089488B2 (en) Virtualization of graphics resources
US7940276B2 (en) Virtualization of graphics resources
JP2010050970A (ja) 中央処理装置と画像処理装置との間で通信するための機器および方法
US7760205B2 (en) Information processing apparatus for efficient image processing
US7612781B2 (en) Memory control method of graphic processor unit
US20060061579A1 (en) Information processing apparatus for efficient image processing
JP4011082B2 (ja) 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
US7644214B2 (en) Information processing apparatus and task execution method
MXPA02005310A (es) Sistema de procesamiento de datos, programa de computadora y medio de registro.
US7577762B1 (en) Cooperative scheduling for multiple consumers
JPH11133943A (ja) データ処理装置及びデータ処理システム
JPH10105154A (ja) グラフィックス表示装置およびグラフィックスプロセッサ
JPH08292914A (ja) データ処理装置及びその方法
JPH10283303A (ja) 画像処理装置及びその方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070613

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071009

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071119

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090306