(57)【要約】【解決手段】  圧縮されたスーパータイル画像のディスプレイのための方法が開示される。１つの実施形態においては、複数の圧縮されたスーパータイルフレームから画像フレームをディスプレイするための方法は、圧縮されたスーパータイルフレームを読み出すことと、圧縮されたスーパータイルフレームを拡大することと、拡大されたスーパータイルフレームを結合して画像フレームを生成することと、を含む。拡大することは、拡大されたスーパータイルフレーム内のタイルであって対応する圧縮されたスーパータイルフレーム内にないタイルに対してブランク画素を挿入することによって、圧縮されたスーパータイルフレームの各々に対応する拡大されたスーパータイルフレームを生成することを含むことができる。対応するシステム及びコンピュータプログラム製品もまた開示される。【選択図】図３
2013541746.tif 000002
【特許請求の範囲】
【請求項１】
複数の圧縮されたスーパータイルフレームから画像フレームをディスプレイするための方法であって、
前記圧縮されたスーパータイルフレームを読み出すことと、
前記圧縮されたスーパータイルフレームの各々を拡大し、拡大されたスーパータイルフレームにおける当該圧縮されたスーパータイルフレームに由来しない１つ以上のタイルに対してブランク画素を挿入することによって、前記拡大されたスーパータイルフレームを生成することと、
複数の前記拡大されたスーパータイルフレームを結合して前記画像フレームを生成することと、を備える方法。
【請求項２】
システムメモリから読み出された複数のタイルから前記圧縮されたスーパータイルフレームを作成することと、
前記生成された画像フレームをディスプレイすることと、を更に備え、
前記拡大されたスーパータイルフレーム及び前記生成された画像フレームのいずれも前記システムメモリに書き込まれない請求項１の方法。
【請求項３】
前記圧縮されたスーパータイルフレームの１つ以上を複数のプロセッサの各々において処理することを更に備える請求項１の方法。
【請求項４】
前記画像フレームの複数のタイルから複数のスーパータイルフレームを決定することと、
前記スーパータイルフレームの１つ以上を前記プロセッサの各々に割り当てることと、
前記スーパータイルフレームのそれぞれを圧縮することと、を更に備える請求項３の方法。
【請求項５】
前記スーパータイルフレームの各々は前記画像フレームの非隣接タイルを備える請求項４の方法。
【請求項６】
前記それぞれのスーパータイルフレームを前記複数のプロセッサにおける別々のプロセッサ内に記憶することを更に備える請求項５の方法。
【請求項７】
前記圧縮することは、前記スーパータイルフレームのそれぞれに対して、実質的に、対応するプロセッサに割り当てられたタイルのセットだけを記憶することを備える請求項４の方法。
【請求項８】
当該拡大することは当該結合することと実質的に同時に行われる請求項１の方法。
【請求項９】
当該結合することは加算動作を用いて前記複数の拡大されたスーパータイルフレームを結合することを備える請求項１の方法。
【請求項１０】
画像フレームの複数の圧縮されたスーパータイルフレームから前記画像フレームをディスプレイするためのシステムであって、
制御プロセッサと、
前記制御プロセッサに結合され、その各々は前記圧縮されたスーパータイルフレームの１つ以上を処理するように構成される複数のグラフィクス処理ユニットと、
スーパータイルフレーム結合器と、を備え、
前記スーパータイルフレーム結合器は、
前記圧縮されたスーパータイルフレームを読み出すことと、
前記圧縮されたスーパータイルフレームの各々を拡大し、拡大されたスーパータイルフレームにおける当該圧縮されたスーパータイルフレームに由来しない１つ以上のタイルに対してブランク画素を挿入することによって、前記拡大されたスーパータイルフレームを生成することと、
複数の前記拡大されたスーパータイルフレームを結合して前記画像フレームを生成することと、のために構成されるシステム。
【請求項１１】
前記システムは前記制御プロセッサ及び前記グラフィクス処理ユニットに結合されるシステムメモリを更に備え、
前記拡大されたスーパータイルフレーム及び前記生成された画像フレームのいずれも前記システムメモリに書き込まれない請求項１０のシステム。
【請求項１２】
前記画像フレームを表す複数のスーパータイルフレームを作成し、前記スーパータイルフレームの１つ以上を前記グラフィクス処理ユニットの各々に割り当てるように構成されるスーパータイルフレーム生成器と、
前記スーパータイルフレームのそれぞれを圧縮するように構成されるスーパータイルフレーム圧縮器と、を更に備える請求項１０のシステム。
【請求項１３】
前記スーパータイルフレーム圧縮器は、前記スーパータイルフレームのそれぞれに対して、実質的に、対応するグラフィクス処理ユニットに割り当てられたタイルのセットだけを記憶するように更に構成される請求項１２のシステム。
【請求項１４】
前記スーパータイルフレームの各々は前記画像フレームの非隣接タイルを備える請求項１０のシステム。
【請求項１５】
当該拡大することは当該結合することと実質的に同時に行われる請求項１０のシステム。
【請求項１６】
命令を記憶するコンピュータ可読媒体であって、前記命令は、実行されるときに、複数の圧縮されたスーパータイルフレームから画像フレームをある方法でディスプレイするように適合させられ、前記方法は、
前記圧縮されたスーパータイルフレームを読み出すことと、
前記圧縮されたスーパータイルフレームの各々を拡大し、拡大されたスーパータイルフレームにおける当該圧縮されたスーパータイルフレームに由来しない１つ以上のタイルに対してブランク画素を挿入することによって、前記拡大されたスーパータイルフレームを生成することと、
複数の前記拡大されたスーパータイルフレームを結合して前記画像フレームを生成することと、を備えるコンピュータ可読媒体。
【請求項１７】
システムメモリから読み出された複数のタイルから前記圧縮されたスーパータイルフレームを作成することと、
前記生成された画像フレームをディスプレイすることと、を前記方法が更に備え、
前記拡大されたスーパータイルフレーム及び前記生成された画像フレームのいずれも前記システムメモリに書き込まれない請求項１６のコンピュータ可読媒体。
【請求項１８】
前記圧縮されたスーパータイルフレームの１つ以上を複数のプロセッサの各々において処理することを前記方法が更に備える請求項１６のコンピュータ可読媒体。
【請求項１９】
前記複数のタイルから複数のスーパータイルフレームを決定することと、
前記スーパータイルフレームの１つ以上を前記プロセッサの各々に割り当てることと、
前記スーパータイルフレームのそれぞれを圧縮することと、を前記方法が更に備える請求項１６のコンピュータ可読媒体。
【請求項２０】
前記スーパータイルフレームの各々は前記画像フレームの非隣接タイルを備える請求項１６のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像のディスプレイにおけるメモリ消費を低減することに関する。
【背景技術】
【０００２】
幾つかのグラフィクス処理システムは、グラフィクスタスクの並列処理を通しての性能向上を可能にするために、複数のグラフィクス処理ユニット（ＧＰＵ）等の多重処理ユニットを含む。例えばグラフィクス重視のゲームは、多重ＧＰＵを用いることにより提供される追加的な処理能力を有することを必要として、又はそのような処理能力を有することからの利益を享受し得るように、動作していることがある。
【０００３】
システムにおいて利用可能な多重ＧＰＵは、描画中の交互フレームを処理すること（即ち交互フレーム描画(alternate frame rendering)）又は同じフレームの部分部分を処理することを含め、様々な方法で用いられる。例えば、あるフレームが、同じフレームを同時に処理中の２つのＧＰＵシステムの両ＧＰＵにより効率的に操作され得る複雑な処理を必要としている場合、ＣＰＵは同じフレームを両ＧＰＵに分配することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多重サンプリング(multisampling)が有効にされているとき等の幾つかのグラフィクス処理モードにおいては、各ＧＰＵにおいてフレームを処理するために必要なメモリフットプリント(memory footprint)が相当大きくなる。例えば多重サンプリング又はスーパーサンプリングが用いられる場合、フレームの各画素は多重サンプルを含み得るので、ＧＰＵメモリ内に記憶されるフレームデータのサイズが顕著に増大する。必要なメモリフットプリントの増大は、フレームを描画する際のスケーラビリティ制限、帯域制限及び遅延に起因する性能低下をもたらし得る。
【０００５】
そこで、各プロセッサがフレームを処理する際に必要なメモリフットプリントを低減する方法及びシステムが求められている。
【課題を解決するための手段】
【０００６】
本発明の実施形態は、圧縮されたスーパータイル画像(supertile images)のディスプレイを可能にする。１つの実施形態においては、複数の圧縮されたスーパータイルフレームから画像フレームをディスプレイするための方法は、圧縮されたスーパータイルフレームを読み出すことと、圧縮されたスーパータイルフレームを拡大することと、拡大されたスーパータイルフレームを結合して画像フレームを生成することと、を含む。拡大することは、拡大されたスーパータイルフレーム内のタイルであって対応する圧縮されたスーパータイルフレーム内にないタイルに対してブランク画素を挿入することによって、圧縮されたスーパータイルフレームの各々に対応する拡大されたスーパータイルフレームを生成することを含むことができる。
【０００７】
別の実施形態は、画像フレームの複数の圧縮されたスーパータイルフレームから画像フレームをディスプレイするためのシステムである。システムは、制御プロセッサと、制御プロセッサに結合される複数のグラフィクス処理ユニットと、スーパータイルフレーム結合器と、を含む。各グラフィクス処理ユニットは、圧縮されたスーパータイルフレームの１つ以上を処理するように構成される。スーパータイルフレーム結合器は、圧縮されたスーパータイルフレームを読み出し、圧縮されたスーパータイルフレームを拡大し、拡大されたフレームを結合して画像フレームを生成するように構成される。
【０００８】
更に別の実施形態は、命令を記憶するコンピュータ可読媒体であり、ここで命令は、実行されるときに、複数の圧縮されたスーパータイルフレームから画像フレームをある方法でディスプレイするように適合させられ、その方法は、圧縮されたスーパータイルフレームを読み出すことと、圧縮されたスーパータイルフレームを拡大することと、拡大されたスーパータイルフレームを結合して画像フレームを生成することと、を備える。
【０００９】
本発明の更なる実施形態、特徴及び利点並びに本発明の種々の実施形態の構成及び動作は、添付図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【００１０】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明の実施形態を示し、そして明細書と共に、本発明の原理を説明すること及び関連分野を含めた当業者が本発明の実施形態を作りそして使用するのを可能にすることに更に役立つ。
【００１１】
【図１】図１は本発明の実施形態に従うグラフィクスコンピューティング環境のブロック図である。
【００１２】
【図２】図２は本発明の実施形態に従う画像フレームの例示的なタイル化及びスーパータイルフレームのプロセッサへの例示的な割り当てを示す図である。
【００１３】
【図３】図３は本発明の実施形態に従い各プロセッサに割り当てられた圧縮されたフレームの例示的な拡大を示す図である。
【００１４】
【図４】図４は本発明の実施形態に従う多重ＧＰＵシステムにおける画像フレームの処理を示すフローチャートである。
【００１５】
【図５】図５は本発明の実施形態に従う圧縮されたスーパータイルフレームの結合を示すフローチャートである。
【００１６】
添付図面を参照して本発明が説明されることになる。概して、ある要素が最初に現れる図面は、対応する参照番号における最も左の単一又は複数の数字によって典型的には示される。
【発明を実施するための形態】
【００１７】
概要及び要約の欄ではなく、詳細な説明の欄が特許請求の範囲を解釈するために用いられることが意図されていると理解されるべきである。概要及び要約の欄は、発明者によって検討された本発明の１つ以上のしかし全部ではない例示的な実施形態を説明することができ、従って本発明及び添付の特許請求の範囲を限定することが意図されているわけではけっしてない。
【００１８】
多重のグラフィクス処理ユニット（ＧＰＵ）等の多重グラフィクスプロセッサを有するグラフィクスシステムは、幾つかのグラフィクス動作が並列で実行されるのを可能にすることによって、単一のＧＰＵを有するシステムよりも強化された性能を提供することができる。多重グラフィクスプロセッサは、ＧＰＵ、汎用ＧＰＵ（ＧＰＧＰＵ）、ＣＰＵ、それらの組み合わせ又はここに説明されるように画像データを処理することが可能な他のプロセッサを備えることができる。図１は本発明の実施形態に従う多重ＧＰＵコンピューティング環境を示している。例えばコンピューティング環境１００は、ＧＰＵ１０４及び１０６に結合される中央処理ユニット（ＣＰＵ）１０２を含む。図１には２つのＧＰＵの実施形態が示されているが、関連分野を含めた当業者がここでの説明に基づき理解するであろうように、本発明の実施形態は任意の数のＧＰＵを含み得る。ＧＰＵ１０４及び１０６の各々は、メモリ、ディスプレイ等の追加的な部品に結合されていてよい。ＧＰＵ１０４及び１０６は、グラフィクス処理（例えば描画(rendering)）等のグラフィクス関連タスクをＣＰＵ１０２から受け取る。当業者によって理解されるであろうように、ＧＰＵ１０４及び１０６は、図示されるように個別の部品（即ち別々のデバイス）であってよく、一体化部品（例えば、単一の集積回路（ＩＣ）や単一パッケージハウジングの多重ＩＣ等の単一デバイスへと集積化されたもの、他のＩＣ、例えばＣＰＵ又はノースブリッジへと集積化されたもの）であってよく、そして非類似のもの（例えば性能等の何らかの異なる能力を有しているもの）であってよい。
【００１９】
ＧＰＵ１０４は、コマンドプロセッサ１１２、メモリ制御器１１４及びローカルグラフィクスメモリ１１６等の部品を含む。コマンドプロセッサ１１２は、ＧＰＵ１０４上でのコマンド実行を制御する。例えばコマンドプロセッサ１１２は、ＧＰＵ１０４内で処理されるべきＣＰＵ１０２からのコマンド及びデータの受信を制御し且つ／又は連携させることができる。コマンドプロセッサ１１２はまた、例えばメモリ制御器１１４を介して、グラフィクスメモリ１１６内でのメモリの割り当てを制御し且つ／又は連携させることができる。メモリ制御器１１４は、データの読み出し及び書き込みのためのグラフィクスメモリ１１６へのアクセスを制御することができる。
【００２０】
ＧＰＵ１０４と同様にして、ＧＰＵ１０６は、コマンドプロセッサ１１８、メモリ制御器１２０及びグラフィクスメモリ１２２を含み得る。コマンドプロセッサ１１８、メモリ制御器１２０及びグラフィクスメモリ１２２の機能は、上述したＧＰＵ１０４における対応するデバイス１１２、１１４及び１１６と同様である。
【００２１】
コンピューティング環境１００はまた、システムメモリ１０８を含む。システムメモリ１０８は、ＧＰＵ１０４及び１０６とＣＰＵ１０２との間で転送されるコマンド及びデータを保持するために用いられ得る。グラフィクス動作を用いてデータが処理された後、処理されたデータはＧＰＵ１０４及び１０６からシステムメモリ１０８へ書き戻され得る。例えば幾つかの実施形態においては、グラフィクスメモリ１１６からの処理されたデータは、更なる処理のために又は画面１１０等の画面上でのディスプレイのために用いられるより先に、システムメモリ１０８に書き込まれ得る。幾つかの実施形態においては、ＧＰＵ１０４及び／又は１０６内で処理されたフレームデータは、ディスプレイエンジン１２３を介して画面１１０へと書き込まれる。ディスプレイエンジン１２３は、ハードウエア及び／若しくはソフトウエア内に実装されてよく又はそれらの組み合わせとして実装されてよく、そして画面１１０の特定の特性に合わせてデータのディスプレイを最適化する機能を含んでいてよい。別の実施形態においては、ディスプレイエンジン１２３は、処理されたディスプレイデータをＧＰＵメモリ１１６及び／又はＧＰＵメモリ１２２から直接的に受け取ることができる。
【００２２】
コンピューティングシステム１００の種々のデバイスは、通信基盤１２６によって結合される。例えば通信基盤１２６は、周辺部品相互接続エクスプレス(Peripheral Component Interconnect Express)（ＰＣＩ−Ｅ）バス、イーサネット（登録商標）(Ethernet（登録商標）)、ファイヤワイヤ(Fire Wire)及び／又は他の相互接続デバイスを含む１つ以上の通信バスを含み得る。ある実施形態においては、通信基盤１２６は、２つ以上のＧＰＵを互いに結合する相互接続デバイスを含み得る。
【００２３】
本発明の実施形態においては、タイルのセット(sets of tiles)の画像フレームから複数のプロセッサへの割り当ては、スーパータイル化(supertiling)と称される。あるプロセッサに割り当てられた元の画像フレームからのタイルのセットは、スーパータイルフレームと称される。各ＧＰＵはまた、各ＧＰＵに割り当てられたスーパータイルフレーム内で処理されるべきタイルに基き各ＧＰＵのローカルメモリ内でなされるべきメモリ割り当てを決定する論理を含む。例えばＧＰＵ１０４は、タイル圧縮化論理ブロック１２８を含み、またＧＰＵ１０６はタイル圧縮化論理ブロック１３０を含む。各タイル圧縮化論理ブロックは、それぞれのＧＰＵに割り当てられたタイルのために必要なメモリ割り当てを決定する機能を含むことができ、本発明の教示に従ってそれぞれのローカルメモリ内でのタイルの記憶を連携させると共に、本発明の実施形態に従ってそれぞれのグラフィクスメモリ内でのタイルの論理レイアウトを決定することができる。
【００２４】
ある実施形態においては、ＧＰＵ１０４及び１０６の１つ以上はまた、スーパータイルフレーム結合論理ブロック１３２を含むことができる。スーパータイルフレーム結合論理ブロック１３２は、多重ＧＰＵ内で別々に処理されたタイルを、１つの画面上でディスプレイされ得る又はシステムメモリへ転送され得る単一のフレームへと結合する論理を含む。幾つかの実施形態においては、スーパータイルフレーム結合ブロック１３２は、それ自身のＧＰＵ１０４のローカルメモリ１１６の他にＧＰＵ１０６のローカルメモリ１２２にもアクセスして、各ＧＰＵで別個に処理されたタイルをリトリーブする(retrieve)ことができる。ある実施形態に従うと、スーパータイルフレーム結合論理ブロック１３２は、それぞれのＧＰＵに割り当てられていないタイルのロケーション内に不使用画素（「ブランク画素」とも称される）を挿入することによって、１つ以上の圧縮されたフレーム（圧縮されたスーパータイルフレームとも称される）を完全解像度フレームへと拡大する機能を含む。更に他の実施形態においては、スーパータイルフレーム結合ブロック１３２は、圧縮されたフレームをＧＰＵのそれぞれのローカルメモリからリトリーブしまたエクスポートする(export)ことができ、その結果、隣接するメモリにおいて最初に全フレームを再構成する必要性なしに、フレームがディスプレイされ得る。尚、スーパータイルフレーム結合論理ブロック１３２及び／又はその機能は、ＧＰＵ１０４若しくは１０６の少なくとも１つの内部に実装されてよく又は両ＧＰＵの外部に実装されてよい。例えばある実施形態においては、スーパータイルフレーム結合論理ブロック１３２は、ディスプレイエンジン１２３内に実装され得る。別の実施形態においては、スーパータイルフレーム結合論理ブロック１３２は、ＧＰＵのラスタライザ動作(rasterizer operations)（ＲＯＰ）論理内に実装され得る。
【００２５】
上述の説明では、ＧＰＵ１０４及び１０６は厳選された部品及び機能を含むものとして図示されている。しかし、当業者であれば、ＧＰＵ１０４及び１０６の一方又は両方が、限定はされないがシェーダエンジン等の他の部品を含み得ることを理解するはずである。
【００２６】
図２は２つのＧＰＵへの画像フレームのタイルの例示的な割り当てと各ＧＰＵローカルメモリのローカルメモリ内の対応するタイルのレイアウトの例とを示している。例えばフレーム２０２は、ＧＰＵ１０４及び１０６によって画面１１０上に描画されるべき画像を含み得る。フレーム２０２内の各小さな長方形は１つのタイルを表す。１つのタイルは任意のサイズの長方形であってよいが、一般に用いられるタイルサイズは１６×１６画素及び３２×３２画素である。複数のタイルに分割されたフレーム２０２等の１つのフレームは、タイル化フレーム(tiled frame)と称される。図示される実施形態においては、ＣＰＵ１０２はフレーム２０２のタイルをチェッカーボードパターンで割り当て、各１つおきのタイルはＧＰＵ１０４のグラフィックメモリ１１６に割り当てられ、残りのタイルはＧＰＵ１０６のグラフィックメモリ１２２に割り当てられる。前述したように、各ＧＰＵは、画像フレーム２０２からの処理されるべき複数のタイルを備えるスーパータイルフレームを割り当てられる。
【００２７】
タイル割り当てのパターンは、ディスプレイのモードを含む種々の要因に基き得る。例えば、画面１１０上でのフレーム２０２の最終的なディスプレイが、左から右へ及び上から下へのパターンでタイルを漸次ディスプレイすることによって実行される場合、割り当てられたタイルの数に関して及び割り当てられたタイルの空間分布に関して両ＧＰＵの間で作業負荷がバランスされるように、タイルを交互に各ＧＰＵに割り当てることが有利であろう。
【００２８】
図２はまた、各ＧＰＵに割り当てられたフレームのタイルがどのようにしてＧＰＵ１０４及び１０６のそれぞれグラフィックメモリ１１６及び１２２内で論理的に配置され得るのかの例を示している。システムメモリ１０８内のタイル化画像フレーム２０２は、１６タイルを有するものとして図示されている。異なるサイズのタイル及び／又は異なる数のタイルを有するフレームも可能である。タイルは、割り当ての例示的なパターンが都合よく示されるように、０１〜１６の範囲の番号で示されている。図示される例においては、タイルはチェッカーボードパターンで２つのＧＰＵ内に割り当てられる。それぞれのＧＰＵにタイルを割り当てる他のパターンも可能である。ＧＰＵ１０４内のグラフィクスメモリ１１６におけるメモリ区域２０４は、ＧＰＵ１０４に割り当てられたタイルを図示されるような配置で有することができる（メモリ区域２０２、２０４及び２０６内に示される０１〜１６の範囲にある対応するタイル番号は、同じタイルの複製を表す）。図示されるように、タイルは、ＧＰＵ１０４に割り当てられたタイルの間での、それぞれのタイルのフレーム２０２内での出現の順序に対応して、左から右、上から下への方法で長方形グリッド内に配置されてよい。同様に、ＧＰＵ１０６内のグラフィクスメモリ１２２におけるメモリ区域２０６は、ＧＰＵ１０６に割り当てられたタイルを図示されるような配置で有することができる。各ＧＰＵに割り当てられたタイルは、例えば、割り当てられたタイルを記憶するためだけにメモリ空間を割り当て、割り当てられていないタイルのためには空間を割り当てないことによって、メモリフットプリントを最小にするように圧縮されたフレームの形態で、対応するＧＰＵメモリ内に記憶される。図示される例においては、各グラフィクスメモリ内に当該ＧＰＵに割り当てられたタイルのみを記憶することによって、各グラフィクスメモリ内でフレームのために必要なメモリフットプリントは、全フレームを記憶するために必要なフットプリントの約半分に低減される。また、割り当てられたタイルのみをそのグラフィクスメモリ内に記憶することによって、各ＧＰＵは割り当てられていないタイルの処理を回避する。
【００２９】
図３は本発明の実施形態に従い圧縮されたフレームを混合して完全解像度フレームを生成するプロセスの側面を模式的に示している。図２に示されるように、タイル化フレーム２０２からのタイルは、別々のＧＰＵに割り当てられ、そして圧縮されたフレーム２０４及び２０６としてそれぞれのＧＰＵメモリ内に記憶される。図２において最初に示された圧縮されたフレーム２０４及び２０６が、再び図３に示されている。圧縮されたフレーム２０４及び２０６は、対応するＧＰＵに割り当てられたタイルを各々が含む非圧縮フレーム（以下「拡大されたフレーム」又は「拡大されたスーパータイルフレーム」と称される）３０２及び３０４にそれぞれ拡大される。拡大されたフレーム３０２及び３０４において番号を伴って示される各タイルは、それぞれの圧縮されたフレームからの対応するタイルを表す。フレーム３０２及び３０４において「Ｘ」で標識付けられる各タイルは、本発明の実施形態に従い挿入されたブランク画素を表す。挿入されたブランク画素を伴う拡大されたフレーム３０２及び３０４は、結合されて（「混合されて」とも称される）それぞれのＧＰＵで処理されたタイル化フレーム２０２の全てのタイルを含む最終結合された完全解像度フレーム３０６を生成する。結合された完全解像度フレーム３０６は、次いで画面上でディスプレイされ得る。
【００３０】
図４は本発明の実施形態に従い多重ＧＰＵによってフレームが処理されるのを可能にするプロセスのフローチャートである。動作４０２においては、描画されるべき画像に対応するタイル化フレームが作成される。本発明の実施形態に従うタイル化フレームは、全フレーム（又はディスプレイ区域）が複数のタイルでカバーされるような方法で複数のタイルへと分割されたフレームである。タイルは通常は１６×１６、３２×３２又は６４×６４画素のサイズである。メモリアクセス等のフレームの次の処理は、個々のタイルに基くことができる。ある実施形態に従うと、あるタイルはフレーム内でその左上画素の位置によって指定され得る。
【００３１】
ある実施形態に従うと、タイル化に供されるフレームは、対応する画像が描画されるべきディスプレイ上の全ての画素位置のための１つ以上の断片(fragments)を伴うラスタライズされたデータ(rasterized data)を備える。ラスタライズされたフレームの画素及び／又は画素断片は、頂点シェーダ、幾何シェーダ及び／又は画素シェーダ等の１つ以上のシェーダプログラムの出力であってよい。シェーダプログラムは、典型的には画素のクワッド(quads)、即ち２×２のブロックを処理する。シェーダの出力はＲＯＰによって処理されてよく、ＲＯＰは、それらブロックが出力バッファに書き込まれるより先に、色合成(color combining)及びアンチエイリアシング(antialiasing)等の機能を行う。ＲＯＰは出力バッファ上で動作してタイル化フレームを定義することができる。
【００３２】
ステップ４０４では、タイルのセットが複数のプロセッサに割り当てられる。例えば、左上タイルで始まるタイル化フレームの１つおきのタイルがＧＰＵ１＿１０４に割り当てられてよく、そして残りのタイルはＧＰＵ２＿１０６に割り当てられてよい。ＧＰＵ１及びＧＰＵ２へのスーパータイルフレームのそのような割り当ては、図２に示されている。図２に示されるように、各プロセッサは、各プロセッサに割り当てられたスーパータイルフレームを、これを各プロセッサのメモリに記憶する前に、各プロセッサに割り当てられたタイルのみを記憶することによって、圧縮する。各ＧＰＵに記憶されたフレームは、圧縮されたスーパータイルフレームである。ある実施形態においては、圧縮は、それぞれのプロセッサに割り当てられるタイルを定義するリスト又は予め定められたパターンを維持すること、及び割り当てられたタイルをそれぞれのプロセッサ内の連続的メモリ内に記憶することにより達成される。
【００３３】
ステップ４０６では、各プロセッサは、各プロセッサに割り当てられたタイルに必要な任意の処理を行う。そのような処理は、例えば、１つ以上のシェーダプログラムによる処理を含み得る。ある実施形態においては、各プロセッサがそれに割り当てられたタイルの処理を完了したら、それぞれのプロセッサから、別々に割り当てられたタイルの再組み立てを連携させてフレームを形成する部品へと、信号が送られてよい。例えば、メッセージパケットが送られてよく、レジスタ値がセットされてよく、且つ／又はハードウエア信号がアサートされてよい。
【００３４】
ステップ４０８では、それぞれのプロセッサ内で圧縮されたスーパータイルフレームが読み出される。ある実施形態においては、グラフィクスドライバ又は他の論理は、割り当てられたタイルの処理を各プロセッサが完了した旨の信号を各プロセッサから受け取る。グラフィクスドライバ又は他の論理は次いで、圧縮されたフレームを各プロセッサのメモリからリトリーブすることができる。ある実施形態においては、圧縮されたフレームを受け取り且つ結合する論理は、スーパータイルフレーム結合論理ブロック１３２内に実装される。
【００３５】
ステップ４１０では、それぞれのプロセッサからリトリーブされた圧縮されたフレームは、非圧縮化されて対応する拡大されたフレームを生成する。圧縮されたフレームを読み出し且つ結合する論理は、グラフィクスプロセッサメモリから圧縮されたフレームを読み出すと共にこれを拡大する一方で、例えばシステムメモリ内又はグラフィクスメモリ内のバッファに書き込むことができる。ある実施形態に従うと、圧縮されたフレームの読み出しは、タイル毎に行われ得る。別の実施形態においては、圧縮されたフレーム全体が要求され得る。
【００３６】
ある実施形態においては、拡大されたフレーム（「拡大されたスーパータイルフレーム」とも称される）は、当該プロセッサに割り当てられていない各タイルに対してブランクを再挿入することによって、それぞれの圧縮されたフレームから構成される。ブランクタイル（即ち有効データを含まないものとして標識付けられたタイル）は、有効内容(valid content)を伴わない画素（「ブランク画素」）として定義される画素で構成され得る。ある実施形態においては、ブランク画素は０値を伴う画素である。０の値を有するブランク画素は、「黒色画素」とも称される。別の実施形態においては、ブランク画素及び／又はブランクタイルは、それぞれの圧縮されたフレームに対応する拡大されたフレームの好都合な結合を可能にする任意の方法で標識付けられてよい。
【００３７】
ステップ４１２では、処理されたタイルを伴う拡大されたフレームが結合されて、結合された完全解像度フレームを形成する。ある実施形態に従うと、結合すること又は混合することは、それぞれの拡大されたフレームに対して加算動作を実行することを通して達成される。各タイル位置に対して１つの（一方の）拡大されたフレームのみが非ブランクタイル値を有するはずであるから、フレームを結合する加算動作は、各タイルが処理されたタイルである結合された完全解像度フレームを結果としてもたらす。ある実施形態においては、加算動作を行う前に各ブランク画素を黒色画素（即ち０の値を伴う画素）で置換することによって、完全解像度フレームの各画素の値がその処理された値である結合された完全解像度フレームが得られる。
【００３８】
ステップ４１４では、ステップ４１２で構成された結合された完全解像度フレームは、ディスプレされてよく、あるいは例えばデジタル的に記憶される等の別の目的で使用されてよい。
【００３９】
図５は実施形態に従い多重の圧縮されたフレームから結合された完全解像度フレームを構成する方法５００を示している。ステップ５０２では、結合された完全解像度フレームを保持するために、メモリバッファが初期化される。メモリバッファは、フレームバッファ、グラフィクスメモリ内のメモリ区域又はシステムメモリ区域内のメモリであってよい。
【００４０】
ステップ５０３では、圧縮されたフレームに基づき構成されることになる拡大されたフレームを保持するために、メモリ区域が初期化される。拡大されたフレームのメモリ区域は、拡大されるべき各圧縮されたフレームのために再初期化及び再使用され得る。拡大されたフレームのメモリ区域は、システムメモリ、グラフィクスメモリ又は他のメモリ内にあってよい。
【００４１】
ステップ５０４では、圧縮されたフレームがメモリから読み出される。圧縮されたフレームは、上述のステップ４０４に関連して説明したように、それぞれのプロセッサに対応するグラフィクスメモリ内に記憶され得る。対応するグラフィクスメモリからの圧縮されたフレームの読み出しは、タイルを個別に読み出すことに基づいていてよく、単一の読み出し命令で全フレームを読み出すことに基いていてよく、あるいは中間サイズのメモリを読むことに基いていてよい。読み出しに際しては、圧縮されたフレーム及び／又はその一部が、システムメモリ又はグラフィクスメモリに書き込まれ得る。
【００４２】
ステップ５０６では、最後に読み出される圧縮されたフレームからのタイルが読み出される。最後に読み出される圧縮されたフレームを処理することにおけるステップ５０６の各呼び出し(invocation)においては、最後に読み出される圧縮されたフレームからのタイルは、圧縮されたフレームの左上角で始まり左から右、上から下へのパターンで進むシーケンスで読み出され得る。
【００４３】
ステップ５０８では、拡大されたフレーム内のタイルの位置が決定される。ある実施形態に従うと、拡大されたフレーム内のタイルの位置は、それぞれのプロセッサへのタイル割り当てのパターンに基いて決定され得る。別の実施形態においては、各タイルは、拡大されたフレームにおけるその位置をエンコードされたものであってよい。例えばタイルは、それぞれのプロセッサにおける処理に先立ち元のタイル化フレーム内でのその位置をエンコードされたものであってよい。決定された位置に基き、拡大されたフレーム内にタイルが挿入され得る。
【００４４】
ステップ５１０では、最後に挿入されたタイルの位置に基づき、最後に挿入されたタイルに隣接してブランク画素が挿入される。ステップ４１０に関連して前述したように、ブランク画素は、拡大されたフレームにおいて当該画素が有効データを有していないことを示す特定実装向けの方法で定義され得る。チェックボードパターンで２つのプロセッサに割り当てられた元のタイル化フレームからのタイルを各圧縮されたフレームが備える実施形態においては、ブランク画素は、最後に割り当てられたタイルの隣のタイル（即ち、左、右、上及び下のタイル）に割り当てられてよい。
【００４５】
ステップ５１２では、最後に挿入されたタイルが現在フレーム内の最後のセルであるかどうかが決定される。最後のセルでない場合には、現在フレーム内の全てのタイルが処理されるまで、ステップ５０６〜５１２が繰り返される、現在フレームの最後のタイルが拡大されたフレーム内に挿入され且つ対応するブランク画素が挿入された後に、処理はステップ５１４へ進む。
【００４６】
ステップ５１４では、現在の拡大されたフレームが現在の結合された完全解像度フレームと結合される。ある実施形態に従うと、結合は、現在の拡大されたフレームを現在の結合された完全解像度フレームに加算することによって達成される。加算動作による結合が利用可能であるのは、本発明の実施形態においては、１つの拡大されたフレームのみが、結合された完全解像度フレーム内の特定のタイル位置のための有効画素データを有しているはずだからである。
【００４７】
ステップ５１６では、最後に圧縮されたフレームが処理されたかどうかが決定される。上述したように、現在処理中の元のタイル化フレームは、各プロセッサが圧縮されたフレームを処理するような多重プロセッサの間で割り当てられたものであり得る。最後に圧縮されたフレームが処理されていない場合には、処理はステップ５０４へ戻り、最後に圧縮されたフレームが拡大され且つ完全解像度フレームへと結合されるまで、ステップ５０４〜５１６が繰り返される。最後に圧縮されたフレームが完全解像度フレームへと結合されると、元のタイル化フレームの処理は完了し、またそれぞれのプロセッサ内で別々に処理された圧縮されたフレームを結合することによって、結合された完全解像度フレームが構成されたことになる。
【００４８】
本発明の側面を実施する論理によって実行される命令は、Ｃ及びＣ＋＋等の種々のプログラミング言語、アセンブリ言語、並びに／又はハードウエア記述言語（ＨＬＤ）においてコード化されてよく、また論理又は他のデバイスによって実行され得るオブジェクトコードへとコンパイルされてよい。
【００４９】
上述の実施形態は、ベリログ(Verilog)、ＲＴＬ、ネットリスツ(netlists)等のハードウエア記述言語において記述されてよく、またこれらの記述は、ここに説明されるような本発明の側面を具現化する１つ以上のハードウエアデバイスを作り出すマスクワーク／フォトマスクの生成を通して製造プロセスを最終的に構成するために用いられ得る。
【００５０】
本発明の側面は、全体又は一部においてコンピュータ可読媒体に記憶され得る。コンピュータ可読媒体に記憶された命令は、本発明の実施形態の全部又は一部を行うようにプロセッサを適合させることができる。
【００５１】
特定の機能の実装及びそれらの関係性を示す機能構築ブロックを補助として、本発明が上述のように説明されてきた。これらの機能構築ブロックの境界は、説明の便宜上ここでは適宜画定されてきた。特定の機能及びそれらの関係性が適切に実行される限りにおいて、代替的な境界が画定され得る。
【００５２】
本発明の種々の実施形態がこれまで説明されてきたが、それらは例示のみを目的として提示されてきたものであり且つ限定を目的としていないことが理解されるべきである。本発明の精神及び範囲から逸脱することなしに形態及び詳細における種々の変更がここではなされ得ることが、関連分野を含めた当業者には明らかなはずである。従って、本発明の広さ及び範囲は、上述したいかなる例示的な実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらと均等なものに従ってのみ画定されるべきである。
【００５３】
特定の実施形態の上述した説明は、本発明の一般的性質を十分に明らかにするであろうから、他者は、当業者における知識を適用することによって、過度の実験なしに、本発明の一般的概念から逸脱することなく、そのような特定の実施形態を容易に修正し且つ／又は種々の応用に適応させることができる。従って、そのような適応及び修正は、ここに提示されている教示及び指針に基いて、開示されている実施形態と均等なものの意味及び範囲の範疇にあることが意図されている。ここでの用語等は、説明を目的としたものであって限定を目的としていないことが理解されるべきであり、本出願書類の用語等は教示及び指針の下で当業者によって解釈されるべきである。
【図１】
2013541746.tif 000003
【図２】
2013541746.tif 000004
【図３】
2013541746.tif 000005
【図４】
2013541746.tif 000006
【図５】
2013541746.tif 000007
【国際調査報告】
2013541746.tif 000008
2013541746.tif 000009