(57)【要約】【課題】各タイルの全ピクセル値のこのような読み取りおよび書き込みを行うことは、不利に高い回数のメモリアクセスを要求する。その結果、スピードの低下およびエネルギー消費の増大が生じることとなる。【解決手段】遅延描画コマンドを用いるウィンドウ表示は、タイルメモリ４０内に記憶された１つまたは複数の新規のピクセル値を形成するようにフレームバッファ３０のタイル２２に対して書き込む描画コマンドを処理することにより動作する。タイルメモリ内のどのピクセルが、新規のピクセル値を記憶するダーティピクセルであり、タイルメモリ内のどのピクセルが、新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータも、形成される。ダーティピクセルデータに応じて、タイルメモリ内に記憶された新規のピクセル値は、フレームバッファメモリに対して書き込まれる。タイルメモリ内のクリーンピクセルに対応するフレームバッファメモリ内に記憶されたピクセルは、書き込まれることがないため、変更されないままとなる。【選択図】図６
2011129109.tif 000002
【特許請求の範囲】
【請求項１】
フレームバッファメモリの１つのタイルに対して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を形成するように書き込む、１つまたは複数の描画コマンドを処理するステップと、
前記１つまたは複数の新規のピクセル値をタイルメモリ内に記憶するステップと、
前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するステップと、
前記ダーティピクセルデータに依存して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むステップと、
を含む、ウィンドウ表示を形成する方法。
【請求項２】
前記タイルは、それらを合わせると前記フレームバッファメモリの前記ウィンドウ表示に対応する複数のタイルのうちの１つである請求項１に記載の方法。
【請求項３】
処理、記憶、形成、および書き込みの前記ステップを前記複数のタイルの各１つずつに対して別個に実行して、前記フレームバッファメモリの前記ウィンドウ表示のフレーム全体を形成する、請求項２に記載の方法。
【請求項４】
１つまたは複数の描画コマンドを生成するステップと、
前記１つまたは複数の描画コマンドを記憶して、１つまたは複数の遅延描画コマンドのコマンド記憶部を形成するステップと、
前記複数のタイルの各１つずつに対して、現在処理中のタイルに対して書き込む１つまたは複数の遅延描画コマンドを前記コマンド記憶部から読み取って、現在レンダリング中の前記タイルに書き込む前記１つまたは複数の遅延描画コマンドを処理するステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記１つまたは複数の描画コマンドを記憶する前記ステップは、前記１つまたは複数の描画コマンドのうちのどれが、前記複数のタイルのうちのどれに書き込むかを特定することにより、前記１つまたは複数の描画コマンドを貯蔵することと、貯蔵記憶部を含むコマンド記憶部であって、前記貯蔵記憶部の各１つずつは、前記複数のタイルの対応するタイルに対して書き込む１つまたは複数の遅延コマンドを記憶するコマンド記憶部を、前記複数のタイルの各１つずつに対して、形成することとを含む、請求項４に記載の方法。
【請求項６】
前記ダーティデータは、各ビットが前記タイル内のピクセルに対応するビットフィールドを備え、且つ、（ｉ）前記ピクセルが前記ダーティピクセルのうちの１つであること、および（ｉｉ）前記ピクセルが前記クリーンピクセルのうちの１つであること、のうちの１つであることを示すビット値を有する、請求項１に記載の方法。
【請求項７】
前記ダーティデータは、どのピクセル値が前記タイルメモリから前記フレームバッファメモリへとコピーされるかを制御するために用いられる書き込みマスクを形成する、請求項１に記載の方法。
【請求項８】
ウィンドウマネージャを用いて、ウィンドウ制御コマンドを生成するステップと、
前記ウィンドウ表示内における１つまたは複数のウィンドウおよび前記ディスプレイの任意のバックグラウンド領域を描画するよう構成されたバックグラウンド描画プログラムに対応する、１つまたは複数のアプリケーションプログラムに対して、前記ウィンドウ制御コマンドを発行するステップと、
前記ウィンドウ制御コマンドに応じて、前記１つまたは複数のアプリケーションプログラムと前記バックグラウンド描画プログラムとを用いて、前記１つまたは複数の描画コマンドを形成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
処理、記憶、形成、および書き込みの前記ステップは、タイルベースのグラフィックス処理ユニットにより実行される、請求項１に記載の方法。
【請求項１０】
前記ウィンドウ表示は、非複合的ウィンドウ表示である、請求項１に記載の方法。
【請求項１１】
フレームバッファメモリの１つのタイルに対して書き込む１つまたは複数の描画コマンドに応答して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を形成する処理回路と、
前記１つまたは複数の新規のピクセル値を記憶するよう構成されたタイルメモリと、
前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するよう構成されたダーティピクセルデータ形成回路と、
前記ダーティピクセルデータに応答して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に書き込む書き込み生成回路と、
を備える、フレームバッファにおいてウィンドウ表示を形成するための装置。
【請求項１２】
フレームバッファメモリの１つのタイルに対して書き込む１つまたは複数の描画コマンドに応答して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を形成する処理手段と、
前記１つまたは複数の新規のピクセル値を記憶するためのタイルメモリ手段と、
前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するためのダーティピクセルデータ形成手段と、
前記ダーティピクセルデータに応答して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むための書き込み生成手段と、
を備える、ウィンドウ表示を形成する装置。
【請求項１３】
フレームバッファメモリの１つのタイルに対して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を形成するように書き込む、１つまたは複数の描画コマンドを処理するステップと、
前記１つまたは複数の新規のピクセル値をタイルメモリ内に記憶するステップと、
前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するステップと、
前記ダーティピクセルデータに依存して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むステップと、
を含む方法を実行することにより、ウィンドウ表示を形成するためのデータを処理するための装置を制御するためのコンピュータプログラムを記憶するコンピュータプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。さらに詳細には、本発明は、データ処理システム内のフレームバッファにおけるウィンドウ表示の形成に関する。
【背景技術】
【０００２】
いくつかのデータ処理システムではウィンドウ表示が使用されることが知られている。ウィンドウ表示は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ製のＷｉｎｄｏｗｓ（登録商標）  ＸＰオペレーティングシステムおよびＬｉｎｕｘ等のオペレーティングシステムのＸ  Ｗｉｎｄｏｗｓ（登録商標）  ｓｙｓｔｅｍコンポーネント等を実行するシステム等により利用される。係るシステム内において、描画コマンドは、ディスプレイに送られると所望のウィンドウ表示を生じさせるピクセル値をフレームバッファメモリ内に形成するために、アプリケーションプログラムまたはディスプレイのバックグラウンドを維持するように対応するプログラムにより生成される。一般に、係るウィンドウ表示は、バックグラウンド上で、重なり得る複数のウィンドウを含む。ユーザ入力の制御下で、ウィンドウの表示順序は変わり得るものであり、またウィンドウのサイズおよび位置も変化し得る。係る変化が生じると、通常、ウィンドウマネージャプログラムは、アプリケーションプログラム（単数または複数）またはバックグラウンド描画プログラムに対して、ウィンドウ制御コマンドを発行し、その結果、次に、要求される新規のピクセル値がウィンドウ表示に対するフレームバッファメモリに対して書き込まれるよう、これらのプログラムがグラフィックスシステムに対して描画コマンドを発行する。
【０００３】
添付の図面の図１および図２は、係るシステムを示す。図１は、第１ウィンドウ４および第２ウィンドウ６がその上に形成されたバックグラウンド画像２を有するウィンドウ表示を示す。第２ウィンドウ６は第１ウィンドウ４よりも表示順序が高く、したがって、第２ウィンドウ６が第１ウィンドウ４の一部の上に重なっている場合、第１ウィンドウ４のその部分は隠される。コンピュータ・マウスを用いて行われる等のユーザ入力により、第２ウィンドウ６は図示のようにウィンドウ表示内の異なった位置に移動され得る。その結果、第１ウィンドウ４上で表示されていた他の異なった部分が第２ウィンドウ６により覆われる一方、以前第２ウィンドウ６が上に重なっていた第１ウィンドウ４の部分は覆われた状態から脱する。
【０００４】
図２は、ユーザ入力に応答してウィンドウ制御コマンドを生成するウィンドウマネージャ８を図式的に示す。このウィンドウ制御コマンドは、それぞれ、第２ウィンドウ６を担当する第１アプリケーションプログラム１２と、第１ウィンドウ４を担当する第２アプリケーションプログラム１４と、バックグラウンド画像２の描画を担当するバックグラウンド描画プログラム１６とに渡される。ウィンドウ制御コマンドは、例えば、ウィンドウマネージャ８が、第１アプリケーションプログラム１２、第２アプリケーションプログラム１４、またはバックグラウンド描画プログラム１６のうちの１つに対して、それぞれの関連するグラフィック内容を用いて、描画するよう指示するスクリーン上のエリアを指定してもよい。次に、第１アプリケーションプログラム１２、第２アプリケーションプログラム１４、およびバックグラウンド描画プログラム１６は、グラフィックスシステムに渡される描画コマンドを生成する。その描画コマンドの結果、グラフィックスシステムにより、必要なピクセル値が、フレームメモリ内の関連する位置において生成される。このように、第２ウィンドウ６が移動された結果、第１ウィンドウ４が完全に表示されるようになると、第１ウィンドウ４の上部右側コーナーにおいて、第２アプリケーションプログラム１４による描画が必要となる。ウィンドウマネージャ８により生成されるウィンドウ制御コマンドは、第１ウィンドウ４の上部右側コーナーに対するピクセルデータを第２アプリケーションプログラム１４が生成するよう指示するウィンドウ制御コマンドを発行する。第２アプリケーションプログラム１４は、このウィンドウ制御コマンドに応答して、ウィンドウ４の現在覆われていない上部右側コーナーに対するピクセル値を生成する描画コマンドを、グラフィックスシステムに対して発行する。
【０００５】
図１および図２に関して例示および討論されるシステムおよび機構は、描画コマンドがグラフィックスシステムに対して発行されると、この描画コマンドは実質的に直ちに実行され、現在表示されている画像に対するピクセル値を記憶するフレームバッファメモリに書き込まれるとの仮定に基づくものである。グラフィックスシステムが描画コマンドを受信すると、グラフィックスシステムは描画コマンドに応答して、遅延なくフレームバッファメモリにアクセスし、ピクセル値の読み取りおよび書き込みが実行できるものと仮定される。一般に、ディスプレイにより使用される係る構成は、単一バッファのフレームバッファメモリおよび即時モードのグラフィックスレンダリングを利用する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在一般的になりつつある他の形態のグラフィックスシステムでは、タイルベースのグラフィックスレンダリングが利用される。係るシステムは、一般にメモリアクセスの方法がより効率的であるため、低コストおよび低電力の実装に適している。特に、タイルベースのシステムは通常、遅延レンダリングを使用し、二重バッファモードで動作する。係るシステムにおいては、描画コマンドが受信および分析されると、フレーム全体の中でどのタイルが、これらの描画コマンドにより変更されるピクセル値を含むかが特定される。フレームはこの目的のために複数のタイルに分割される。このように、描画コマンドは、各タイルリストが、形成される画像データの新規のフレームに対して、当該のタイル内のピクセル値を変化させるこれらすべての描画コマンドを含むように、描画コマンドのタイルリストに「貯蔵」される。新規フレームに対するすべての描画コマンドが生成され複数のタイルリストに貯蔵されると、これらのタイルリストは、タイルメモリ内に記憶されたタイルに対するピクセル値を生成するよう、別個に処理される。タイルの処理が完了すると、タイルメモリの内容がフレームバッファメモリに書き出される。すべてのタイルが処理され、関連するタイルメモリの内容がフレームバッファに書き出されると、新規のフレームデータは、完成され、二重バッファ構成におけるアクティブなフレームバッファを切り替えることにより、表示され得る。係る二重バッファのタイルベースレンダリングシステムは、ウィンドウ表示のサポートに適さない。
【０００７】
より詳細には、ウィンドウ表示において、ユーザ入力が、表示中のピクセル値の変更を要求すると、タイルベースシステム内においては、通常は、まず現在のフレームのピクセル値から各タイルの内容を読み取り、各ピクセル値のタイルを変更し、次に、各ピクセル値のタイルをフレームバッファに書き戻すことが要求される。各タイルの全ピクセル値のこのような読み取りおよび書き込みを行うことは、不利に高い回数のメモリアクセスを要求する。その結果、スピードの低下およびエネルギー消費の増大が生じることとなる。
【課題を解決するための手段】
【０００８】
１つの態様から観ると、本発明は、ウィンドウ表示を形成する方法を提供し、この方法は、フレームバッファメモリの１つのタイルに対して書き込まれる１つまたは複数の新規のピクセル値を形成するように、前記タイルに対して書き込む１つまたは複数の描画コマンドを処理するステップと、前記１つまたは複数の新規のピクセル値をタイルメモリ内に記憶するステップと、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するステップと、前記ダーティピクセルデータに応じて、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むステップとを含む。
【０００９】
フレームバッファメモリにおいてウィンドウ表示内で、フレームバッファメモリ内のタイルに書き込む描画コマンドを処理する際、システムが、タイル内のどのピクセルが変更され、どのピクセルが新規のピクセル値を記憶しているかを示すダーティピクセルデータも生成する場合、まず既存のピクセル値のタイルをフレームバッファメモリから読み込む必要なしに、このダーティピクセルデータは、フレームバッファメモリへの新規のピクセル値の書き込みの制御に使われ得ることを、本技術は認識する。ダーティピクセルデータは、フレームバッファメモリ内の既存のピクセルデータが変更なしに保存されるタイル内のクリーンピクセルに対応するように、フレームバッファメモリ内の要求されたピクセル位置への書き込みを管理する。なぜなら、これらのクリーンピクセル位置に対して書き込みが行われないためである。このように、ウィンドウ表示のサポートが、より高速に且つより効果的に行われる。システムは、フレームバッファメモリに書き込まれる前に新規のピクセル値が書き込まれるタイルメモリを依然として使用するが、ダーティピクセルデータの動作がタイルメモリからの書き込みを管理する機能を果たすため、新規のピクセル値のみがフレームバッファメモリに書き込まれ、したがってフレームバッファメモリ内の変更されないピクセル値は適切な方法で保存される。
【００１０】
係るシステム内のタイルが異なった様々なサイズを有することは理解できるであろう。１つの極端な例では、タイルはフレームバッファと同じサイズを有し、タイルメモリはフレームバッファメモリに対するデータのすべてを記憶する能力を持っていてもよい。他の極端な例では、タイルは単一ピクセルのサイズであってもよい。しかし一般には、１つのタイルは、全タイルの合計がフレームバッファメモリのウィンドウ表示に相当する複数のタイルのうちの１つである。異なったタイルサイズが選択可能であり、本技術はこれらすべてのタイルサイズに適用可能であることを理解すべきであるが、タイルサイズの一般的な値は、１６×１６ピクセルとなり得る。
【００１１】
処理、記憶、形成、および書き込みのステップを複数のタイルのうちの各１つずつに対して別個に実行して、フレームバッファメモリのウィンドウ表示のフレーム全体を形成してもよい。処理のタイルベースの特性は、処理、記憶、形成、および書き込みのステップを実行するための並列ハードウェアの使用により、アクセレレーションに適したものである。
【００１２】
生成された描画コマンドは、１つまたは複数の遅延描画コマンドを保持するコマンド記憶部内において即時実行されることなく記憶されてもよい。次に、このコマンド記憶部内の遅延描画コマンドは、現在処理中のタイルに書き込まれる１つまたは複数の遅延描画コマンドを抽出するために、複数のタイルの各１つずつに関して読み出されてもよい。
【００１３】
１つまたは複数の描画コマンドを記憶することは、描画コマンドのうちのどの描画コマンドが複数のタイルのうちのどのタイルに書き込むかを特定することによって描画コマンドを貯蔵することと、遅延コマンドが書き込む複数のタイルのうちの各１つずつに対して別個の貯蔵記憶部を形成することとを含んでもよい。描画コマンドが遅延される際このようにして効率的に描画コマンドをソートすることにより、各タイルに対する貯蔵記憶部が形成され、次に、タイルを描画するトリガが発せられると、各タイルに対する遅延描画コマンドは、そのタイルに対応する貯蔵記憶部から直接読み取られ、（おそらくは高度な並列ハードウェアを用いて）レンダリングされてもよい。
【００１４】
ダーティデータは広い範囲の異なった形態を取り得るものであり、一般的な意味において、タイル内のどのピクセルが変更されタイル内のどのピクセルが変更されていないかを特定する機能を有する任意のデータ構造であり得ることが理解されるであろう。しかし、ダーティデータを記憶および操作するハードウェア的に効率的な方法は、各ビットが、タイル内のピクセルに対応し、且つ、ダーティピクセルであるピクセルとクリーンピクセルであるピクセルのうちの１つであることを示すビット値を有するビットフィールドを使用することである。この意味において、ダーティおよびクリーンは、これらの用語がキャッシュメモリの分野内で用いられるのと同様に、変化された値（ダーティ）および変化されてない値（クリーン）を示すために用いられる。
【００１５】
ダーティピクセルデータは、どのピクセル値をタイルメモリからフレームバッファにコピーするか制御するために用いられる書き込みマスクを好都合に形成し得る。係る書き込みマスクは、新規のピクセル値をタイルメモリからフレームバッファメモリにコピーする要求された書き込みを生成する専用ハードウェアを制御するのに適している。
【００１６】
本技術は、ウィンドウマネージャが、１つまたは複数のアプリケーションプログラム（対応するウィンドウを有する）と、ディスプレイの任意のバックグラウンド領域を描画するためのバックグラウンド描画プログラムとに対して発行されるウィンドウ制御コマンドを生成するシステムにおいて、好都合に用いられ得る。次に、アプリケーションプログラムおよびバックグラウンド描画プログラムは、ウィンドウ制御コマンドに応答して、上述のようにタイルごとのベースで処理される描画コマンドを生成することができる。
【００１７】
処理、記憶、形成、および書き込みのステップは、タイルベースのグラフィックス処理ユニットにより実行され得る。係る専用ハードウェアは、本技術を利用するのに適している。一方、本技術は、適切なソフトウェア制御下で動作する汎用プロセッサにより実行され得ることが理解されるであろう。さらに、どのタスクが係る実施形態のどの部分により行われるかの区別が、例えは電力／効率対柔軟性等の、関連するシステムの優先順位によって必要に応じて変化するよう、専用のグラフィックス処理ハードウェアとソフトウェアの制御下で動作する汎用プロセッサとの組合せが用いられてもよい。
【００１８】
本技術は、複合方式を用いるシステムにおいて有用である一方で、ウィンドウ表示が非複合的なウィンドウ表示であるシステムにも適している。一般に、非複合的ウィンドウ表示は、ユーザがウィンドウを移動させウィンドウ表示を変更するときに必要な描画を処理するための機構を有するハードウェアを必要とする。
【００１９】
他の態様から観ると、本発明は、ウィンドウ表示を形成する装置を提供し、この装置は、フレームバッファメモリの１つのタイルに対して書き込む１つまたは複数の描画コマンドに応答して、前記タイルに書き込まれる１つまたは複数の新規ピクセル値を形成する処理回路と、前記１つまたは複数の新規のピクセル値を記憶するよう構成されたタイルメモリと、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するよう構成されたダーティピクセル形成回路と、前記ダーティピクセルデータに応答して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に書き込む書き込み生成回路とを備える。
【００２０】
さらに他の態様から観ると、本発明は、ウィンドウ表示を形成する装置を提供し、この装置は、フレームバッファメモリの１つのタイルに対して書き込む１つまたは複数の描画コマンドに応答して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を形成する処理手段と、前記１つまたは複数の新規のピクセル値を記憶するためのタイルメモリ手段と、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するためのダーティピクセルデータ形成手段と、前記ダーティピクセルデータに応答して、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むための書き込み生成手段とを備える。
【００２１】
さらに他の態様から観ると、本発明は、フレームバッファメモリの１つのタイルに対して、前記タイルに書き込まれる１つまたは複数の新規のピクセル値を生成するように書き込む１つまたは複数の描画コマンドを処理するステップと、フレームバッファメモリの１つのタイルに対して書き込まれる１つまたは複数の新規のピクセル値を書き込む１つまたは複数の描画コマンドを処理するステップと、前記１つまたは複数の新規のピクセル値をタイルメモリ内に記憶するステップと、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶するダーティピクセルであり、前記タイルメモリ内のどのピクセルが、前記１つまたは複数の新規のピクセル値を記憶しないクリーンピクセルであるかを示すダーティピクセルデータを形成するステップと、前記ダーティピクセルデータに応じて、前記タイルメモリの前記ダーティピクセル内に記憶された前記１つまたは複数の新規のピクセル値を、前記フレームバッファメモリ内に記憶されたピクセル値が変更なく保存された前記タイルメモリ内のクリーンピクセルに対応するように、前記フレームバッファメモリの対応する位置に対して書き込むステップとを含む方法を実行することによりウィンドウ表示を形成するためのデータを処理するための装置を制御するためのコンピュータプログラムを記憶するコンピュータプログラム記憶媒体を提供する。
【００２２】
本発明に関する、上述の、および他の、目的、特徴、および特長は、添付の図面との関連で読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】ウィンドウ表示の概略図である。
【図２】ウィンドウ制御コマンドを生成するためのウィンドウマネージャプログラムと、アプリケーションプログラムと、グラフィックスシステムに対する描画コマンドを生成するためのバックグラウンド描画プログラムとの関係を示す概略図である。
【図３】レンダリングのためにウィンドウ表示内のフレームをどのようにタイルに分割するかを示すともに、それに伴うダーティピクセルデータの形成を示す図である。
【図４】タイルベースのレンダリングを用いてウィンドウ表示を生成するためのグラフィックス処理ユニットを示す概略図である。
【図５】グラフィックス処理ユニットのラスタ化部分を示す概略図である。
【図６】新規のピクセル値およびダーティピクセルデータを用いてフレームメモリに対する書き込みを生成することを示す概略図である。
【図７】タイルベースのウィンドウ表示システム内におけるフレームメモリに対する書き込みを制御するダーティピクセルデータの形成および使用を概説するフローチャートである。
【図８】ウィンドウ表示システムにおけるアプリケーションプログラムとフレームバッファメモリとの間に広がる異なった機能層を説明する概略図である。
【図９】複合的ウィンドウ表示システムへの本技術の適用を説明する概略図である。
【発明を実施するための形態】
【００２４】
図３は、アプリケーションプログラムにより描画されたウィンドウ２０と、フレーム上のそれ以外の部分を形成するバックグラウンド領域とを含むウィンドウ表示のフレーム１８を図式的に示す。フレームは、８つのタイル２２に分割される。実際にはフレームがそれよりも多くのタイルに分割されてもよいことが理解されるであろう。さらに、本技術は、フレームが単一のタイルを含む場合または各タイルが１つのピクセルのみを含む場合にも、使用され得る。
【００２５】
図３の下部は、タイルのうちの１つがどのように処理されるかを示す。このタイルは、１６×１６ピクセルのサイズを有するものとして示されるが、これは可能なタイルサイズの１例に過ぎないものである。そのタイルに対する新規のピクセル値を生成する描画コマンドは、以下で説明するように、貯蔵のプロセスにより特定される。これらの描画コマンドが特定されると、描画コマンドは、現在選択されたタイルに関して処理され、生成された新規のピクセル値は、グラフィックス処理ユニット内においてタイルメモリに書き込まれる。このように、その描画コマンドを処理するレンダリング動作と、当該の新規ピクセル値をタイルメモリに記憶する記憶動作とが、タイルに対して行われる。同時に、各新規のピクセル値がタイルメモリに書き込まれると、ダーティピクセルデータ内の対応するビットが、当該のピクセル位置が新規のピクセル値を含むことを示すよう、設定される。ダーティピクセルデータは、ビット値がすべての変更されていないクリーンピクセルを示すよう、初期化される。したがって、タイルに対するすべての描画コマンドが処理されると、ダーティピクセルデータは、新規のピクセル値が書き込まれたこれらの位置すべてにおけるダーティピクセルを示すよう設定されたビット値を含むようになる。図３に示すように、フレーム内におけるウィンドウ２０の下部左側コーナーに対応する新規のピクセル値が、タイルの上部右側コーナーのピクセル位置に書き込まれ、ダーティピクセルデータ内の対応する位置が書き込まれて、これらのピクセル位置がダーティであることが示される。
【００２６】
ダーティピクセルデータは、図３において２次元の形で示され、２５６個のダーティビットフィールドとして示される。２次元の形におけるピクセルと２５６ビットのフィールドとの間には１対１のマッピングが存在し、ダーティピクセルデータのこれらの表現は等価であることが理解されるであろう。
【００２７】
図４は、描画コマンドを生成するアプリケーションプログラム２４と、タイルベースのレンダリングを用いてこれらの描画コマンドを処理するためのグラフィックス処理ユニット２６と、異なったタイルに対して貯蔵された描画コマンドをメモリ内において記憶するタイルリスト２８と、ウィンドウ表示を表現する新規のピクセル値が書き込まれるフレームバッファメモリ３０（異なったアーキテクチャでは、フレームバッファ（３０）はＧＰＵまたはシステムメモリ内に存在してもよい）との関係を図式的に示す。図４に示されるグラフィックス処理ユニット２６を取り囲む点線は、グラフィックス処理ユニット２６内の要素を表す。実際に、他の実施形態では、これらの要素のすべてまたは一部は、他のハードウェアコンポーネントにより、またはソフトウェアにより、提供されてもよい。例えば、グラフィックス処理ユニット２６のタスクのすべてを、適切にプログラムされた汎用コンピュータを用いて実行することが可能であろう。係る実施形態は、実行される処理に関する柔軟性および可視性の点でいくつかの利点を有するであろう。しかし、図４に示すグラフィックス処理ユニット２６の内容は、高速且つ低電力のタイルベースのグラフィックスレンダリングに適している。
【００２８】
図４に示すグラフィックス処理ユニット２６は、受信された描画コマンドに対して変換、倍率変更、回転等の変形動作を実行するための変形ユニット３２を含む。貯蔵ユニット３４は変形された描画コマンドを受信し、それらの描画コマンドに対して、描画コマンドのうちのどれが複数のタイル２２のうちのどれに書き込むかを特定する貯蔵を実行する。例えば、点、直線、または三角形が描画される場合、この特定により、これが所与のタイル２２と少なくとも部分的に交わるかどうかが判定される。その描画コマンドにより生成された新規のピクセルが少なくとも部分的に所与のタイル内に含まれる場合、その描画コマンドはそのタイルに「貯蔵」され、対応する関連付けられた貯蔵記憶部３６内に記憶される。各貯蔵記憶部３６は、１つのタイル２２に対応し、ラスタ化されたときに新規のピクセル値をそのタイル内に書き込む描画コマンドを含む。この貯蔵は正確なものでなくともよく、どの新規のピクセル値が設定されるかは確実な判定ができないが、これらのうちのいくつかがタイル内に含まれる何らかの可能性がある場合には、描画コマンドがそのタイルに貯蔵されるように注意深いアプローチを採り得ることが理解できるであろう。描画コマンドが実際にラスタ化（処理／レンダリング）されると、新規のピクセル値およびそれらの位置の絶対的な判定が行われるであろう。これらのいずれもが当該のタイル内に含まれないならば、いくつかの処理努力は無駄となるであろうが、最終的に生じる結果は正確なものとなる。
【００２９】
貯蔵記憶部３６が共同して、ラスタ化ユニット３８により処理される描画コマンドを記憶するコマンド記憶部を形成する。貯蔵記憶部３６は、所望により、汎用メモリに記憶されてもよい。
【００３０】
ラスタ化ユニット３８は、ウィンドウ表示の新規のフレームを生成する描画コマンドがすべて受信され、適切な貯蔵記憶部３６に配置されたことを示すフレーム終了（ＥＯＦ）信号を変形ユニット３２から受信したときに、貯蔵記憶部３６からの描画コマンドの処理を開始するようトリガされる。実際には、グラフィックス処理ユニット２６は、いくつかの異なったアプリケーションプログラムおよびバックグラウンド描画プログラムから描画コマンドを受信するであろう。通常、ウィンドウズ（登録商標）マネージャ８は、フレーム終了コマンドを生成し、このコマンドをグラフィックス処理ユニット３６に直接渡す。
【００３１】
図４に示すように、複数のラスタ化ユニット３８は並列に提供される。ラスタ化ユニット３８は、現在処理中の貯蔵記憶部３６を備える独立した入力ソースをそれぞれが有し、現在処理中のタイル２２に対するピクセル値に対応する独立した出力データをそれぞれが生成するため、並列動作に適している。したがって、ラスタ化動作は、並列動作に適している。各ラスタ化ユニット３８は、当該のタイルの貯蔵記憶部３６内の描画コマンドが処理されるときに新規のピクセル値が書き込まれるタイルメモリ４０を含む。同時に、ラスタ化ユニット３８は、タイルメモリ４０内のどのピクセルが新規のピクセル値を含む（すなわち、フレームバッファメモリ３０内において更新されるべきピクセル値を含む）かを示すダーティピクセルデータを形成する。貯蔵記憶部３６内の描画コマンドが処理されると、ラスタ化ユニット３８は、ダーティピクセルデータに依存して、それらの位置における新規のピクセル値のみをフレームバッファメモリ３０に書き込む一連の書き込みコマンドを形成する。これらのピクセルがクリーンピクセルである（すなわち、変更されていない）ことがダーティピクセルデータにより示されるタイルメモリ４０内のピクセルは、フレームバッファメモリ３０に書き込まれず、したがって、これらの位置におけるフレームバッファメモリ内に記憶されているピクセルは、変更されないままである。このように、ダーティピクセルデータは、タイルメモリ４０からフレームバッファメモリ３０への書き込みトランザクションを生成するための書き込みマスクとして機能する。そのため、これらの書き込みは、当該のタイル２２に対する、貯蔵記憶部３６から処理された描画コマンドにより更新されたピクセル値に制限される。
【００３２】
図５は、ラスタ化ユニット３８をさらに詳細に図式的に示す。ラスタ化エンジン４２は、貯蔵された描画コマンドを貯蔵記憶部３６から受信する。ラスタ化エンジン４２は、新規のピクセル値を形成するために、テクスチャおよび他のデータも受信する。このテクスチャおよび他のデータは、多様な異なった形を取り得ることが理解できるであろう。テクスチャおよび他のデータは、特定の用途および使用に特有のシェーダープログラムおよび／またはシェーダーハードウェアにより、個々のタイルに対して、カスタム生成されてもよい。新規のピクセル値を生成するための描画コマンドに関連して用いられるこの形のテクスチャデータおよび他のデータは、当業者にはよく知られている。
【００３３】
ラスタ化エンジン４２は、その新規のピクセル値を生成し、それらの新規のピクセル値をタイルメモリ４０に記憶する。タイルメモリ４０は、生成された新規のピクセル値を記憶するためにラスタ化ユニット３８により用いられるローカルのスクラッチパッドメモリの形であるとも考えられる。新規のピクセル値がラスタ化エンジン４２によりタイルメモリ４０に書き込まれる毎に、ダーティピクセルデータ内の対応するビットが設定される。このダーティピクセルデータは、ダーティビットフィールド４４内に記憶される。
【００３４】
ラスタ化エンジン４２が、当該のタイルに対する貯蔵記憶部３６内の描画コマンドのすべてを処理すると、ラスタ化エンジン４２は、書き込みトランザクション生成器４６に対してタイル終了（ｅｏｔ）信号を発行する。書き込みトランザクション生成器４６は、ダーティピクセルデータフィールド４４内に記憶されたダーティピクセルデータに応答し、これを、書き込みトランザクションマスクとして使用してフレームバッファメモリ３０に対して一連の書き込みを生成し、タイルメモリ４０から新規のピクセル値のみを読み取り、フレームバッファメモリ３０内において対応する位置にそれらを書き込む。当該のピクセルがクリーンである（変更されていない）ことを示すダーティピクセルデータ内のビットは、フレームバッファ３０に対する書き出しの対象とならない。
【００３５】
図６は、フレームバッファメモリ３０に対する新規のピクセル値の書き込みを図式的に示す。図示のように、タイルメモリ４０内の新規のピクセル値は、ダーティデータフィールド４４に記憶されたダーティピクセルデータ内のダーティピクセルの制御下で、書き込みトランザクション生成器４６により読み取られ、フレームバッファメモリ３０の対応する部分に対して書き込まれる。フレームバッファメモリ３０は、ウィンドウ表示の先行するフレームからの既存のピクセル値をすでに含む。ウィンドウ表示の現在のフレームを生成するためにタイルに対して処理された描画コマンドにより変更されないこれらの既存のピクセル値は、フレームバッファメモリ３０内において変更されることなく保存され、新規のピクセル値のみが図示のように適切な位置に書き込まれる。
【００３６】
図７は、本技術に係る処理を図式的に説明するフローチャートである。ステップ４８において、描画する第１タイルが選択される。ステップ５０において、現在処理中のタイルに対する第１描画コマンドを貯蔵記憶部３６から読み取る。ステップ５２において、読み取った描画コマンドを処理し、ラスタ化ユニット３８のタイルメモリ４０内に記憶された新規のピクセル値を生成する。次にステップ５４において、ステップ５２における処理により書き込まれた新規のピクセル値のすべての位置に対応するビット値を、これらの位置がダーティピクセルデータを含むことを示す値に設定することにより、ステップ５２において処理された描画コマンドに対するダーティピクセルデータを形成する。
【００３７】
ステップ５６において、現在のタイルに対する貯蔵記憶部３６内の最後の描画コマンドが処理されたかどうかを判定する。タイルに対して処理すべき描画コマンドがさらにまだ残っている場合、ステップ５８において、次の描画コマンドを選択し、ステップ５２に処理を戻す。現在処理中のタイルに対する描画コマンドのすべてがステップ５２においてレンダリング／ラスタ化／処理を行われた場合、処理はステップ５８へと進む。ステップ５８において、ダーティピクセルデータを読み取り、タイルメモリ４０内に記憶された新規のピクセル値のフレームバッファメモリ３０に対する書き込みを形成する。次にステップ６０において、ウィンドウ表示の新規のフレーム内における最後のタイルが処理されたかどうかを判定する。処理すべきさらなるタイルが存在する場合、ステップ６２において次のタイルを選択し、処理をステップ５０に戻す。すべてのタイルが処理されたら、図７に示す処理は終了する。
【００３８】
図８は、ウィンドウ表示の形成に関連する様々なハードウェアのおよびソフトウェアの要素を図式的に示す。これらの要素は、当業者がよく理解できるよう、階層的順序で示されている。この階層上の１端における要素は、ソフトウェアである。この階層上の他端における要素は、ハードウェアである。ハードウェア要素とソフトウェア要素との間の正確な区分は、実装ごとに異なり得る。１例として、図８に示すアクセレレータ要素は、ハードウェアで提供されてもよく、またソフトウェアで提供されてもよい。汎用プロセッサを実行するハードウェアが、ウィンドウ表示のフレームが書き込まれるフレームバッファメモリに制限されるハードウェア要素を用いて以前説明した処理のすべてを実行してもよい。他の実施形態では、ハードウェアアクセラレータおよびハードウェア要素に対して、より大きい信頼が置かれ得る。なぜなら、これらは、通常、より高速且つよりエネルギー効率が高いグラフィックス処理を実行するからである。
【００３９】
図９は、複合的ウィンドウ表示システムにおける本技術の使用を図式的に示す。このシステムにおいて、第１アプリケーション６２プログラムは、第１フレームバッファメモリ６８に使用されたダーティピクセルデータの制御を書き込まれる前に上述のようなタイルベースの処理を行う描画コマンドを発行する。同様に、第２アプリケーション６４は、そのピクセル値を第２フレームバッファメモリ７０に対して書き込み、バックグラウンド描画プログラム６６は、そのピクセル値を第３フレームバッファメモリ７２に対して書き込む。処理の際に各タイルに対して生成されたダーティピクセルデータの使用に関連して上記で説明したタイルベースの処理技術は、フレームバッファメモリ６８、７０、および７２に対するアクセス動作の回数を低減することを支援する。これにより、動作が高速となり、電力消費が低減される。アプリケーション６２、６４、および６６のそれぞれは本技術を用いることにより、その後複合化されるそれぞれのフレームバッファ６８、７０、および７２が効果的に生成される。個々のアプリケーション６２、６４、および６６は、それぞれのフレームをより効果的に生成するように、ダーティデータの使用から利点を得る。
【００４０】
第１、第２、および第３のフレームバッファメモリ６８、７０、および７２は、システムの汎用メモリ内において動的に割り当てられた領域である。複合機構７４は、ハードウェアまたはソフトウェアであり得るものであり、ウィンドウ表示を形成するウィンドウに関する現在のサイズ、位置、および表示順序等を定めるウィンドウデータに応じて、フレームメモリ６８、７０、および７２内のピクセルデータを組み合わせるよう機能する。複合機構７４は、ディスプレイドライバ７８を介してディスプレイ８０に送られるピクセルデータ値を生成し、これをディスプレイフレームバッファメモリ７６内に記憶する。
【００４１】
本発明の例示の実施形態を添付の図面を参照しつつ本明細書において詳細に説明してきたが、本発明がこれらの正確な実施形態に限定されるものではなく、添付の請求項により定められる本発明の範囲および精神から逸脱することなく当業者によりこれに様々な変化および変更を加えることが可能であることを理解すべきである。
【符号の説明】
【００４２】
３０  フレームバッファメモリ
４０  タイルメモリ
４４  ダーティデータフィールド
４６  書き込みトランザクション生成器
【図１】
2011129109.tif 000003
【図２】
2011129109.tif 000004
【図３】
2011129109.tif 000005
【図４】
2011129109.tif 000006
【図５】
2011129109.tif 000007
【図６】
2011129109.tif 000008
【図７】
2011129109.tif 000009
【図８】
2011129109.tif 000010
【図９】
2011129109.tif 000011
【外国語明細書】
2011129109.tif 000012
2011129109.tif 000013
2011129109.tif 000014
2011129109.tif 000015
2011129109.tif 000016
2011129109.tif 000017
2011129109.tif 000018
2011129109.tif 000019
2011129109.tif 000020
2011129109.tif 000021
2011129109.tif 000022
2011129109.tif 000023
2011129109.tif 000024
2011129109.tif 000025
2011129109.tif 000026
2011129109.tif 000027
2011129109.tif 000028
2011129109.tif 000029
2011129109.tif 000030
2011129109.tif 000031
2011129109.tif 000032
2011129109.tif 000033
2011129109.tif 000034
2011129109.tif 000035
2011129109.tif 000036
2011129109.tif 000037