(57)【要約】  本グラフィックス処理サブシステムはシステムメモリを、画像のレンダリングとスキャンアウトのためのそのグラフィックスメモリとして使用する。データバスのデッドロックを防ぐべく、本システムは、データバスの代替の仮想チャネルを使用して、第１データの書込み操作を終えるのに必要なシステムメモリの追加データにアクセスできる。システムメモリと通信する際、拡張バイトイネーブル情報を含むデータパケットにより、本システムは大量のデータを任意のバイトマスキングでシステムメモリに書き込む。レンダリング済み画像データの高度な２次元局所性を活用すべく、本システムは画像データをシステムメモリにてタイルフォーマットで構成する。タイル変換ユニットは、画像データ仮想アドレスを対応のシステムメモリアドレスに変換する。本システムは、システムメモリから画像データを読み出して表示信号に変換する。【選択図】図２
2007535006.tif 000002
【特許請求の範囲】
【請求項１】
データのレンダリングに応じてレンダリング済み画像の画像データを作成するように構成されているレンダリングユニットと、
データバスを介してコンピュータシステムのシステムメモリ装置に接続されるように構成されているデータバスインターフェイスと
を備えるグラフィックス処理サブシステムであって、
前記グラフィックス処理サブシステムに関連付けられているグラフィックスメモリへの第１のデータの書き込み操作に応じて、前記グラフィックス処理サブシステムが、前記第１のデータの前記書き込み操作を完了させるのに必要な第２のデータを取り出し、前記システムメモリ内の前記第１のデータの宛先を前記第２のデータから決定し、前記第１のデータの前記書き込み操作を前記システムメモリ内の前記第１のデータの前記宛先に向け直すように構成されている
グラフィックス処理サブシステム。
【請求項２】
前記システムメモリ内の前記第１のデータの前記宛先が、前記グラフィックス処理サブシステムに関連付けられている前記グラフィックスメモリとして指定される前記システムメモリの一部内にある、請求項１に記載のグラフィックス処理サブシステム。
【請求項３】
前記データバスの第１の仮想チャネルから前記データバスインターフェイスを介して前記第１のデータの前記書き込み操作を受信し、前記データバスの第２の仮想チャネルを使用して、前記データバスインターフェイスを介してシステムメモリから前記第２のデータを取り出すようにさらに構成されている、請求項１に記載のグラフィックス処理サブシステム。
【請求項４】
前記グラフィックス処理サブシステムに接続されているローカルメモリから前記第２のデータを取り出すようにさらに構成されている、請求項１に記載のグラフィックス処理サブシステム。
【請求項５】
前記第２のデータが、アドレス変換情報を含み、前記グラフィックス処理サブシステムが、前記グラフィックスメモリに関連付けられている仮想アドレスをシステムメモリ内の対応する宛先に変換するように構成されている、請求項１に記載のグラフィックス処理サブシステム。
【請求項６】
前記第２のデータが、コンテキスト状態情報を含み、前記グラフィックス処理サブシステムが、前記第１のデータに応じてコンテキスト切替を行うように構成されている、請求項１に記載のグラフィックス処理サブシステム。
【請求項７】
画像のある位置に対応する仮想メモリアドレスを、システムメモリ内の画像データのタイル構成内のメモリアドレスに変換するように構成されているタイルアドレス変換ユニット
をさらに備える、請求項１に記載のグラフィックス処理サブシステム。
【請求項８】
前記タイルアドレス変換ユニットが、画像の連続部分に対応するある範囲の仮想メモリアドレスに応じて、前記データバス上で前記データバスインターフェイスを介して複数のシステムメモリアクセスを開始するようにさらに構成されている、請求項７に記載のグラフィックス処理サブシステム。
【請求項９】
前記複数のシステムメモリアクセスが、システムメモリの非連続部分に対するものである、請求項８に記載のグラフィックス処理サブシステム。
【請求項１０】
前記データバスインターフェイスが、前記システムメモリに関連付けられているメモリコントローラが前記第１のデータパケットタイプとの互換性があることを示す指示に応じて、第１のデータパケットタイプのデータパケットを使用して、前記データバスを介して第３のデータを前記システムメモリに伝え、前記メモリコントローラが前記第１のデータパケットタイプと互換性がないことを示す指示に応じて、第２のデータパケットタイプの複数のデータパケットを使用して、前記データバスを介して前記第３のデータを前記システムメモリに伝えるように構成されている、請求項１に記載のグラフィックス処理サブシステム。
【請求項１１】
前記第１のデータパケットタイプが拡張バイトイネーブルデータを含む、請求項１０に記載のグラフィックス処理サブシステム。
【請求項１２】
レンダリング済み画像に対応する表示信号を表示装置に伝えるように構成されている表示装置コントローラをさらに含む、請求項１に記載のグラフィックス処理サブシステム。
【請求項１３】
前記表示装置コントローラが、前記グラフィックス処理サブシステムに接続されているローカルメモリから前記レンダリング済み画像に対応する画像データを取り出すように構成されている、請求項１２に記載のグラフィックス処理サブシステム。
【請求項１４】
前記表示装置コントローラが、前記システムメモリから前記レンダリング済み画像に対応する画像データを取り出すように構成されている、請求項１２に記載のグラフィックス処理サブシステム。
【請求項１５】
前記表示装置コントローラが、前記システムメモリ内の画像データのタイル構成から前記レンダリング済み画像の第１の行に対応する第１の画像データを取り出し、前記第１の画像データを前記表示装置に伝えるように構成されている、請求項１４に記載のグラフィックス処理サブシステム。
【請求項１６】
前記表示装置コントローラが、前記レンダリング済み画像の前記第１の行を含む前記レンダリング済み画像の１組のタイルに対応する１組の画像データを前記システムメモリから取り出すように構成されている、請求項１５に記載のグラフィックス処理サブシステム。
【請求項１７】
前記表示装置コントローラが、画像データの前記第１の行を含まない、前記１組の画像データの一部分を破棄するように構成されている、請求項１６に記載のグラフィックス処理サブシステム。
【請求項１８】
前記表示装置コントローラが、前記１組のタイルに含まれ、前記レンダリング済み画像の少なくとも１つの追加行に対応する第２の画像データを格納するように構成されている画像データキャッシュを含み、
前記表示装置コントローラが、前記第１の画像データを取り出した後、前記画像データキャッシュから前記第２の画像データを取り出し、前記第２の画像データを前記表示装置に伝えるように構成されている
請求項１６に記載のグラフィックス処理サブシステム。
【請求項１９】
システムメモリ内の画像データのタイル構成からレンダリング済み画像の第１の行に対応する第１の画像データを取り出し、前記第１の画像データを表示装置に伝えるように構成されている表示装置コントローラを備える、グラフィックス処理サブシステム。
【請求項２０】
前記表示装置コントローラが、画像データの前記第１の行を含まない、前記１組の画像データの一部分を破棄するように構成されている、請求項１９に記載のグラフィックス処理サブシステム。
【請求項２１】
前記表示装置コントローラが、前記１組のタイルに含まれ、前記レンダリング済み画像の少なくとも１つの追加行に対応する第２の画像データを格納するように構成されている画像データキャッシュを含み、
前記表示装置コントローラが、前記第１の画像データを取り出した後、前記画像データキャッシュから前記第２の画像データを取り出し、前記第２の画像データを前記表示装置に伝えるように構成されている、請求項１９に記載のグラフィックス処理サブシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]本出願は、２００１年８月１４日に発行された「Ｍｅｔｈｏｄ  ａｎｄ  ａｐｐａｒａｔｕｓ  ｆｏｒ  ａｃｃｅｌｅｒａｔｉｎｇ  ｔｈｅ  ｔｒａｎｓｆｅｒ  ｏｆ  ｇｒａｐｈｉｃａｌ  ｉｍａｇｅｓ」という名称の米国特許第６，２７５，２４３号に関連し、この特許の開示は、あらゆる目的のために、参照により本明細書に組み込まれる。
【発明の背景】
【０００２】
[0002]本発明は、コンピュータグラフィックスの分野に関する。多くのコンピュータグラフィック画像は、所与の視点からの３次元のシーンと光との相互作用を数学的にモデリングすることによって作成される。このプロセスは、レンダリングと呼ばれ、所与の視点からのシーンの２次元画像を生成し、実世界のシーンの写真を撮ることに似ている。
【０００３】
[0003]コンピュータグラフィックスの需要、および特にリアルタイムのコンピュータグラフィックスの需要が増加するにつれて、レンダリングプロセスを加速するように構成されているグラフィックス処理サブシステムを備えたコンピュータシステムが普及してきた。これらのコンピュータシステムでは、レンダリングプロセスは、コンピュータの汎用中央処理ユニット（ＣＰＵ）とグラフィックス処理サブシステムとの間で分けられる。一般に、ＣＰＵは、所与のシーンにおける対象物の位置、動き、および不調和を決定するなど、高レベルの操作を実行する。これらの高レベルの操作から、ＣＰＵは、所望のレンダリング済み画像または複数のレンダリング済み画像を定義する１組のレンダリングコマンドおよびデータを生成する。例えば、レンダリングコマンドおよびデータは、あるシーンについてのシーンジオメトリ、ライティング、シェーディング、テクスチャ、動き、および／またはカメラのパラメータを定義することができる。グラフィックス処理サブシステムは、１組のレンダリングコマンドおよびデータから１つまたは複数のレンダリング済み画像を作成する。
【０００４】
[0004]一般のグラフィックス処理サブシステムは、１つまたは複数のグラフィックス処理ユニット（ＧＰＵ）またはコプロセッサを含む。各ＧＰＵは、ＣＰＵによって生成されるレンダリングコマンドを実行する。１つまたは複数のＧＰＵに加えて、グラフィックス処理サブシステムは、メモリも含む。グラフィックスサブシステムメモリは、表示装置に出力される１つまたは複数のレンダリング済み画像、ジオメトリデータ、テクスチャデータ、ライティングおよびシェーディングデータ、および１つまたは複数のレンダリング済み画像を生成するために使用される他のデータを格納するために使用される。
【０００５】
[0005]レンダリング性能を最大にするために、グラフィックスサブシステムのメモリは、一般に、コンピュータシステムによって使用される汎用システムメモリから分離される。これによって、グラフィックス処理サブシステムは、メモリアクセス性能、およびしたがってレンダリング性能を最大限にすることができる。しかし、グラフィックス処理サブシステム用の個別のメモリを有することによって、何百メガバイト以上になり得る追加メモリの消費だけではなく、電源レギュレータ、フィルタ、冷却装置などの構成要素をサポートするコスト、および複雑さが増した回路基板によって、コストが大幅に増大する。さらに、個別のグラフィックス処理サブシステムのメモリに必要な余分なスペースは、特に、ノートブックコンピュータやモバイル機器の問題をもたらす可能性がある。
【０００６】
[0006]個別のグラフィックス処理サブシステムメモリに関連する問題の解決策の１つは、統合メモリアーキテクチャ（ｕｎｉｆｉｅｄ  ｍｅｍｏｒｙ  ａｒｃｈｉｔｅｃｔｕｒｅ）を使用することであり、統合メモリアーキテクチャでは、例えば、ジオメトリデータ、テクスチャデータ、ライティングおよびシェーディングデータ、およびレンダリング済み画像など、グラフィックス処理サブシステムによって必要とされるデータのすべてがコンピュータシステムの汎用システムメモリに格納される。従来、グラフィックス処理サブシステムをシステムメモリに接続するデータバスは、統合メモリアーキテクチャシステムの性能を制限する。
【０００７】
[0007]ＰＣＩ−Ｅｘｐｒｅｓｓデータバス標準などの改良されたデータバス標準は、メモリのアクセスに使用できる帯域幅を増やすが、統合メモリアーキテクチャにより最適なレンダリング性能を達成することは、依然として、メモリ帯域幅および待ち時間に注意を払うことを必要とする。さらに、ＰＣＩ−Ｅｘｐｒｅｓｓデータバス標準は、システムデッドロックや、選択式メモリアクセスのオーバーヘッドが高いことを含めて、それ自体の問題をもたらす。さらに、レンダリング済み画像をメモリから表示装置に転送するプロセスであるスキャンアウトは、視覚的不連続性および誤差を防ぐために正確なタイミングを必要とする。このために、システムメモリに格納されているレンダリング済み画像からスキャンアウトを行うことは難しい。
【０００８】
[0008]したがって、統合メモリアーキテクチャを使用するグラフィックス処理サブシステムが良いレンダリング性能およびシステムメモリからの誤差のないスキャンアウトを提供することが望ましい。さらに、グラフィックス処理サブシステムが、システムデッドロックや、選択式メモリアクセスのオーバーヘッドが高いなどの問題を防ぐことが望ましい。
【発明の概要】
【０００９】
[0009]本発明の一実施形態によって、グラフィックス処理サブシステムは、システムメモリを、画像のレンダリング、およびスキャンアウトのためのそのグラフィックスメモリとして使用することができる。データバスのデッドロックを防ぐために、グラフィックス処理サブシステムは、データバスの代替の仮想チャネルを使用して、第１のデータの書き込み操作を完了するのに必要なシステムメモリの追加データにアクセスすることができる。システムメモリと通信する際、拡張バイトイネーブル情報を含むデータパケットによって、グラフィックス処理サブシステムは、大量のデータを任意のバイトマスキングでシステムメモリに書き込むことができる。レンダリング済み画像データの高度な２次元局所性（ｔｈｅ  ｈｉｇｈ  ｄｅｇｒｅｅ  ｏｆ  ｔｗｏ−ｄｉｍｅｎｓｉｏｎａｌ  ｌｏｃａｌｉｔｙ）を活用するために、グラフィックス処理サブシステムは、画像データを、システムメモリにおいてタイルフォーマットで構成する。タイル変換ユニットは、画像データ仮想アドレスを、対応するシステムメモリアドレスに変換する。グラフィックス処理サブシステムは、システムメモリから画像データを読み出し、それを表示信号に変換する。
【００１０】
[0010]一実施形態では、グラフィックス処理サブシステムは、レンダリングデータに応じてレンダリング済み画像の画像データを作成するように構成されているレンダリングユニット、およびデータバスを介してコンピュータシステムのシステムメモリ装置と接続するように構成されているデータバスインターフェイスを備える。グラフィックス処理サブシステムと関連付けられているグラフィックスメモリへの第１のデータの書き込み操作に応じて、グラフィックス処理サブシステムは、第１のデータの書き込み操作を完了するのに必要な第２のデータを取り出すように構成されている。次いで、グラフィックス処理サブシステムは、第２のデータからシステムメモリ内の第１のデータの宛先を決定し、第１のデータの書き込み操作をシステムメモリ内の第１のデータの宛先に向け直す。さらに別の実施形態で、システムメモリ内の第１のデータの宛先は、グラフィックス処理サブシステムに関連付けられているグラフィックスメモリとして指定されるシステムメモリの一部内にある。別の実施形態では、第２のデータは、アドレス変換情報を含み、グラフィックス処理サブシステムは、グラフィックスメモリに関連付けられている仮想アドレスをシステムメモリ内の対応する宛先に変換するように構成されている。
【００１１】
[0011]一実施形態では、グラフィックス処理サブシステムは、データバスの第１の仮想チャネルからデータバスインターフェイスを介して第１のデータの書き込み操作を受信し、データバスの第２の仮想チャネルを使用して、データバスインターフェイスを介してシステムメモリから第２のデータを取り出すように構成されている。代替の一実施形態では、グラフィックス処理サブシステムは、グラフィックス処理サブシステムに接続されているローカルメモリから第２のデータを取り出すように構成されている。
【００１２】
[0012]別の一実施形態では、グラフィックス処理サブシステムは、画像のある位置に対応する仮想メモリアドレスを、システムメモリ内の画像データのタイル構成内のメモリアドレスに変換するように構成されているタイルアドレス変換ユニットを含む。タイルアドレス変換ユニットは、画像の連続部分に対応するある範囲の仮想メモリアドレスに応じて、データバス上でデータバスインターフェイスを介して複数のシステムメモリアクセスを開始するようにさらに構成することができる。仮想メモリアドレスの範囲に応じて、複数のシステムメモリアクセスは、システムメモリの非連続部分に対するものでもあり得る。
【００１３】
[0013]さらに別の実施形態では、データバスインターフェイスは、システムメモリに関連付けられているメモリコントローラが第１のデータパケットタイプと互換性があることを示す指示に応じて、第１のデータパケットタイプのデータパケットを使用してデータバスを介して第３のデータをシステムメモリに伝えるように構成されている。第１のデータパケットタイプは、拡張バイトイネーブルデータを含む。メモリコントローラが第１のデータパケットタイプと互換性がないことを示す指示に応じて、データバスインターフェイスは、第２のデータパケットタイプの複数のデータパケットを使用してデータバスを介して第３のデータをシステムメモリに伝える。
【００１４】
[0014]別の一実施形態では、グラフィックス処理サブシステムは、レンダリング済み画像に対応する表示信号を表示装置に伝えるように構成されている表示装置コントローラを含む。一実施形態では、表示装置コントローラは、グラフィックス処理サブシステムに接続されているローカルメモリからレンダリング済み画像に対応する画像データを取り出すように構成されている。別の一実施形態では、表示装置コントローラは、レンダリング済み画像と対応する画像データをシステムメモリから取り出すように構成されている。
【００１５】
[0015]一実施形態では、表示装置コントローラは、システムメモリ内の画像データのタイル構成からレンダリング済み画像の第１の行に対応する第１の画像データを取り出し、第１の画像データを表示装置に伝えるように構成されている。グラフィックス処理サブシステムは、レンダリング済み画像の第１の行を含むレンダリング済み画像の１組のタイルに対応する１組の画像データをシステムメモリから取り出す。グラフィックス処理サブシステムは、画像データの第１の行を含まない１組の画像データの部分を破棄することができる。別の一実施形態では、表示装置コントローラは、１組のタイルに含まれ、レンダリング済み画像の少なくとも１つの追加行に対応する第２の画像データを格納するように構成されている画像データキャッシュを含む。表示装置コントローラは、第１の画像データを取り出した後、画像データキャッシュから第２の画像データを取り出し、第２の画像データを表示装置に伝えるように構成されている。
【００１６】
[0016]本発明は、図面を参照して説明する。図面では、同じ参照番号の使用は、同じ構成要素を示す。
【発明の詳細な説明】
【００１７】
[0017]図１は、パーソナルコンピュータ、ビデオゲームコンソール、個人用デジタル補助装置、または他のデジタル装置など、本発明の一実施形態を実施するのに適したコンピュータシステム１００のブロック図である。コンピュータシステム１００は、ソフトウェアアプリケーション、およびオプションでオペレーティングシステムを稼働させる中央処理ユニット（ＣＰＵ）１０５を含む。一実施形態では、ＣＰＵ１０５は、実際には、並列で動作するいくつかの個別の中央処理ユニットである。メモリ１１０は、ＣＰＵ１０５によって使用するアプリケーションおよびデータを格納する。ストレージ１１５は、アプリケーションおよびデータ用の不揮発性ストレージを提供するものであり、ストレージ１１５には、固定式ディスクドライブ、取外式ディスクドライブ、フラッシュメモリ装置、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光記憶装置などがある。ユーザ入力装置１２０は、１人または複数人のユーザからのユーザ入力をコンピュータシステム１００に伝えるものであり、ユーザ入力装置１２０には、キーボード、マウス、ジョイスティック、タッチ画面、および／またはマイクロフォンなどがある。ネットワークインターフェイス１２５によって、コンピュータシステム１００は、電子通信ネットワークを介して他のコンピュータシステムと通信することができ、ネットワークインターフェイス１２５には、ローカルエリアネットワークおよび広域ネットワーク、例えばインターネットなどを介した有線または無線の通信などがある。コンピュータシステム１００の構成要素は、ＣＰＵ１０５、メモリ１１０、データストレージ１１５、ユーザ入力装置１２０、およびネットワークインターフェイス１２５などがあり、１つまたは複数のデータバス１６０を介して接続される。データバスの例には、ＩＳＡ、ＰＣＩ、ＡＧＰ、ＰＣＩ、ＰＣＩ−Ｅｘｐｒｅｓｓ、およびＨｙｐｅｒＴｒａｎｓｐｏｒｔのデータバスなどがある。
【００１８】
[0018]グラフィックスサブシステム１３０は、データバス１６０およびコンピュータシステム１００の構成要素にさらに接続される。グラフィックスサブシステムは、コンピュータシステムのマザーボードと統合してもよく、またはコンピュータシステムに固定式または取外式に接続されている個別の回路基板上に配置されていてもよい。グラフィックスサブシステム１３０は、グラフィックス処理ユニット（ＧＰＵ）１３５およびグラフィックスメモリを含む。グラフィックスメモリは、出力画像の各ピクセルのピクセルデータを格納するために使用される表示メモリ１４０（フレームバッファなど）を含む。ピクセルデータは、ＣＰＵ１０５から直接表示メモリ１４０に提供することができる。あるいは、ＣＰＵ１０５は、ＧＰＵ１３５がそこから１つまたは複数の出力画像のピクセルデータを生成する所望の出力画像を定義するデータおよび／またはコマンドをＧＰＵ１３５に提供する。所望の出力画像を定義するデータおよび／またはコマンドは、追加メモリ１４５に格納される。一実施形態では、ＧＰＵ１３５は、あるシーンについてのジオメトリ、ライティング、シェーディング、テクスチャ、動き、および／またはカメラのパラメータを定義するレンダリングコマンド、およびデータから出力画像のピクセルデータを生成する。
【００１９】
[0019]別の一実施形態では、表示メモリ１４０および／または追加メモリ１４５は、メモリ１１０の一部分であり、ＣＰＵ１０５と共有される。あるいは、表示メモリ１４０および／または追加メモリ１４５は、グラフィックスサブシステム１３０の専用として提供される１つまたは複数の個別メモリである。グラフィックスサブシステム１３０は、表示メモリ２１８の画像、および表示装置１５０に表示される画像のためのピクセルデータを定期的に出力する。表示装置１５０は、ＣＲＴ、ＬＣＤ、プラズマ、およびＯＬＥＤのディスプレイを含めて、コンピュータシステム１００からの信号に応じて可視情報を表示できる任意の装置である。コンピュータシステム１００は、表示装置１５０に、アナログ信号またはデジタル信号を提供することができる。
【００２０】
[0020]別の一実施形態では、グラフィックス処理サブシステム１３０は、ＧＰＵ１３５に似た１つまたは複数の追加のＧＰＵ１５５を含む。さらに別の一実施形態では、グラフィックス処理サブシステム１３０は、グラフィックスコプロセッサ１６５を含む。グラフィックス処理コプロセッサ１６５および追加のＧＰＵ１５５は、ＧＰＵ１３５と並行して、またはＧＰＵ１３５の代わりに動作するように構成されている。追加のＧＰＵ１５５は、ＧＰＵ１３５と同様に、レンダリングコマンドから出力画像のピクセルデータを生成する。追加のＧＰＵ１５５は、ＧＰＵ１３５と共に、出力画像の異なる部分のピクセルデータを同時に生成したり、または異なる出力画像のピクセルデータを同時に生成したりするように動作することができる。一実施形態では、グラフィックスコプロセッサ１６５は、ＧＰＵ１３５および／または追加のＧＰＵ１５５のジオメトリ変換、シェーダ計算、および背面カリング操作（ｂａｃｋｆａｃｅ  ｃｕｌｌｉｎｇ  ｏｐｅｒａｔｉｏｎ）など、レンダリング関連のタスクを行う。
【００２１】
[0021]追加のＧＰＵ１５５は、ＧＰＵ１３５と同じ回路基板上に配置して、データバス１６０への接続をＧＰＵ１３５と共有することができ、またはデータバス１６０に別々に接続されている追加の回路基板に配置することができる。追加のＧＰＵ１５５は、ＧＰＵ１３５と同じモジュールまたはチップパッケージに統合することもできる。追加のＧＰＵ１５５は、表示メモリ１４０および追加メモリ１４５と似たそれ自体の表示メモリおよび追加メモリを有することができ、またはメモリ１４０および１４５をＧＰＵ１３５と共有することもできる。一実施形態では、グラフィックスコプロセッサ１６５は、データバス１６０の制御に使用されるＮｏｒｔｈｂｒｉｄｇｅチップやＳｏｕｔｈｂｒｉｄｇｅチップなどのコンピュータシステムチップセット（図示せず）と統合される。
【００２２】
[0022]システムデッドロックは、２つの操作がそれぞれの操作を完了する前にいずれも他方からの応答を必要とすることによる、システムの実行における停止である。システムデッドロックの１つの原因は、データバスを介してＣＰＵをグラフィックス処理サブシステムに接続するポステッドライト操作（ｐｏｓｔｅｄ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ）に起因する。ＰＣＩ−Ｅｘｐｒｅｓｓデータバスなど、多くのタイプのデータバスでは、データバスを介して他の任意の読み取り操作または書き込み操作が行われる前に、ポステッドライト操作が完了されなければならない。ポステッドライト操作とは、宛先がそれを受け付けるとすぐに要求者によって完了されると考えられる書き込み操作である。性能上、ＰＣＩ−Ｅｘｐｒｅｓｓは、メモリのすべての書き込みにポステッドライト操作を使用する。構成およびＩ／ＯへのＰＣＩ−Ｅｘｐｒｅｓｓの書き込み操作は、一般に、非ポステッドライト操作であり、例えばデータなしの完了メッセージなど、書き込みが終了したという確認を必要とする。
【００２３】
[0023]ポステッドライト操作は他のデータバスの操作をブロックするので、システムデッドロックは、ＣＰＵによって発行されたポステッドライトを完了するためにグラフィックス処理サブシステムが追加の情報を必要とするときに作成され得る。例えば、グラフィックス処理サブシステムは、処理の便宜上、線形連続メモリ構成（ｌｉｎｅａｒ  ｃｏｎｔｉｇｕｏｕｓ  ｍｅｍｏｒｙ  ｏｒｇａｎｉｚａｔｉｏｎ）を使用することが多いが、統合メモリアーキテクチャでグラフィックメモリとして使用されるコンピュータシステムの汎用メモリの部分は、一般に、１組の非連続メモリページとして構成される。ページ変換テーブルは、メモリアドレスを、グラフィックス処理サブシステムによって使用される線形連続アドレススペースから、コンピュータシステムメモリによって使用されるページ化非連続アドレススペース（ｐａｇｅｄ，ｎｏｎ−ｃｏｎｔｉｇｕｏｕｓ  ａｄｄｒｅｓｓ  ｓｐａｃｅ）に変換し、グラフィックス処理サブシステムがコンピュータシステムメモリにアクセスできるようにする。一実施形態では、ページ変換テーブルは、システムメモリに格納されている。グラフィックス処理サブシステムがグラフィックスメモリ内の所与のメモリアドレスへのアクセスを必要とするとき、グラフィックス処理サブシステムのアドレス変換部分は、ページ変換テーブルの適切な部分を取り出し、グラフィックス処理サブシステムによって使用される線形メモリアドレスを、システムメモリによって使用される対応するページ化メモリアドレスに変換し、次いで、システムメモリの変換されたメモリアドレスにアクセスする。
【００２４】
[0024]データがグラフィックスメモリの宛先に書き込まれることを要求するポステッドライトコマンドをＣＰＵが発行するとき、ポステッドライトコマンドが受け付けられるまで、他のデータバス完了操作を完了することができない。しかし、ポステッドライトコマンドを受け付けるには、グラフィックス処理サブシステムは、システムメモリに格納されているページ変換テーブルにアクセスして、グラフィックスメモリ内の宛先に対応するページ化メモリアドレスを決定する必要がある。ポステッドライトコマンドは、それが受け付けられるまで、その後のバス完了操作をブロックするため、データをページ変換テーブルから戻すバス完了操作がポステッドライト操作によってブロックされる。ポステッドライト操作は、グラフィックス処理サブシステムがページ変換テーブルからデータを受信するまで完了することができないため、コンピュータシステムはデッドロックされる。
【００２５】
[0025]別の実施例では、グラフィックス処理システムは、異なるいくつかのコンテキストで実行することができる。個別のコンテキストを、グラフィックス処理サブシステムによって処理される各アプリケーション、ウィンドウ、および／または実行スレッドと関連付けることができる。コンテキスト間の切替時、グラフィック処理サブシステムは、前のコンテキストからのすべての操作を終了し、前のコンテキストに関連付けられている状態情報を格納し、新しいコンテキストの状態情報をロードし、新しいコンテキストの操作の実行を開始する。適切な実行を確保するために、新しいコンテキストの状態情報がメモリからロードされるまで、新しいコンテキストからのコマンドを実行することができない。
【００２６】
[0026]統合メモリアーキテクチャシステムでは、コンテキスト状態情報は、システムメモリに格納することができる。ＣＰＵが、ポステッドライト操作を介してコンテキストを切り替えるようにグラフィックス処理システムに指示したとき、グラフィックス処理サブシステムは、新しいコンテキスト状態情報をシステムメモリからロードする必要がある。しかし、グラフィックス処理サブシステムがコンテキストを切り替えるまで、ポステッドライト操作が完了されないため、グラフィックス処理サブシステムは、データバスを介してシステムメモリにアクセスすることができない。したがって、コンピュータシステムはデッドロックする。
【００２７】
[0027]図２は、本発明の一実施形態による、コンピュータシステム２００におけるシステムデッドロックを防ぐ一般的な技術を示す。ＣＰＵ２０５は、データバス上でポステッドライト操作２１５を介して第１のデータ２１０をグラフィックス処理サブシステム２２０に伝える。ポステッドライト操作２１５を完了するために、グラフィックス処理サブシステム２２０は、システムメモリ２３０から第２のデータ２２５を取り出す必要がある。システムメモリ２３０にアクセスするための以前の技術下では、ポステッドライト操作２１５は、グラフィックス処理サブシステム２２０がシステムデータ内の第２のデータ２２５にアクセスするのをブロックしていた。
【００２８】
[0028]本発明の一実施形態では、グラフィックス処理サブシステム２２０は、データバスを介して通信するために代替の仮想チャネルを開くことによって、システムメモリ２３０の第２のデータ２２５にアクセスする。仮想チャネルは、同じデータバスを介したデータ通信用の独立パスを提供する。一例として、ＰＣＩ−Ｅｘｐｒｅｓｓバス仕様によって、１つのＰＣＩ−Ｅｘｐｒｅｓｓデータバスは、異なるいくつかのデータ交換を伝えることができ、各データ交換は、独立して、ＰＣＴ−Ｅｘｐｒｅｓｓデータバス上の他のデータの交換からの干渉なしに起こる。
【００２９】
[0029]データバス上の例えばＶＣ０などの第１の仮想チャネルを介してグラフィックス処理サブシステム２２０に伝えられたポステッドライト操作２１５に応じて、グラフィックス処理サブシステム２２０は、システムメモリ２３０から第２のデータ２２５を取り出すための例えばＶＣ１などの第２の仮想チャネルをデータバス上に開く。第２の仮想チャネルＶＣ１を使用して、グラフィックス処理サブシステム２２０は、データバスを介して第２のデータ２２５の要求２３５をシステムメモリ２３０に送信する。データバスの第２の仮想チャネルＶＣ２を使用したシステムメモリ２３０からの応答２４０は、第２のデータ２２５をグラフィックス処理サブシステム２２０に戻す。
【００３０】
[0030]システムメモリ２３０から第２の仮想チャネルを介して取り出された第２のデータ２２５を使用して、グラフィックス処理サブシステムは、第１のデータ２１０のポステッドライト操作２１５を完了させるのに必要な情報を決定する。例えば、ポステッドライト操作２１５が第１のデータ２１０をグラフィックスメモリに書き込もうとしている場合、第２のデータ２２５は、グラフィックスメモリ内の線形メモリアドレスを、システムメモリ２３０内の対応するページ化メモリアドレスに変換するために使用されるアドレス変換テーブルの一部分とすることができる。次いで、グラフィックス処理サブシステム２２０は、２４５で、第１のデータ２１０をグラフィックスメモリ２５０に書き込むことができ、グラフィックスメモリ２５０は、コンピュータシステム２００の統合メモリアーキテクチャでは、システムメモリ２３０の一部分に配置される。これによって、ポステッドライト操作２１５が完了し、追加の操作のために第１の仮想チャネルが解放される。
【００３１】
[0031]別の実施例では、第１のデータ２１０は、グラフィックス処理サブシステム２２０のコンテキスト切替コマンドを含み得る。この例では、ＣＰＵ２０５は、第１の仮想チャネル上で、ポステッドライト操作２１５を介して、コンテキスト切替コマンドを含む第１のデータ２１０をグラフィックス処理サブシステム２２０に伝える。それに応じて、グラフィックス処理サブシステム２２０は、例えばＶＣ１など、代替の仮想チャネルを開いて、この例ではコンテキスト状態情報を含む第２のデータ２２５をシステムメモリ２３０から取り出す。次いで、第２のデータ２２５は、第１のデータ２１０に含まれているコンテキスト切替コマンドに従ってコンテキストを切り替えるために、グラフィックス処理サブシステム２２０によって使用され、それによって、ポステッドライト操作２１５が完了し、追加の操作のために第１の仮想チャネルが解放される。また、グラフィックス処理サブシステムは、実行がそのコンテキストに戻ったときに後で取り出すことができるように、前のコンテキストのコンテキスト状態情報をメモリに書き込む。
【００３２】
[0032]図３は、本発明の別の実施形態による、コンピュータシステム３００におけるシステムデッドロックを防ぐ一般的な技術を示す。ＣＰＵ３０５は、データバス上でポステッドライト操作３１５を介して第１のデータ３１０をグラフィックス処理サブシステム３２０に伝える。上述した実施形態と同様に、グラフィックス処理サブシステム３２０は、ポステッドライト操作３１５を完了させるために第２のデータ３２５を取り出す必要がある。
【００３３】
[0033]ポステッドライト操作３１５によってブロックされるデータバスを介して第２のデータを取り出そうとするときに起こるデッドロックの問題を回避するために、コンピュータシステム３００の実施形態は、ローカルメモリ３３０を含む。一実施形態では、ローカルメモリ３３０は、個別のデータバスを介してグラフィックス処理サブシステム３２０と通信する。ローカルメモリ３３０は、ポステッドライト操作３１５を完了するためにグラフィックス処理サブシステムが必要とする第２のデータ３２５を格納する。ローカルメモリ３３０は、第１のデータ３１０が関与しているポステッドライト操作の完了に使用される第２のデータ３２５を格納する必要があるため、ローカルメモリ３３０を少量のメモリとすることによって、統合メモリアーキテクチャの利点の多くを保持することができる。
【００３４】
[0034]ＣＰＵ３０５とグラフィックス処理サブシステムとの間の第１のデータバスを介してポステッドライト操作３１５がグラフィックス処理サブシステム３２０に伝えられるのに応じて、グラフィックス処理サブシステム３２０は、個別のデータバスを介して第２のデータ３２５の要求３３５をロ―カルメモリ３３０に送信する。ローカルメモリ３３０からの応答３４０は、個別のデータバスを介して第２のデータ３２５を戻す。
【００３５】
[0035]ローカルメモリ３３０から取り出された第２のデータ３２５を使用して、グラフィックス処理サブシステム３２０は、第１のデータ３１０のポステッドライト操作３１５を完了させるのに必要な情報を決定する。例えば、ポステッドライト操作３１５が第１のデータ３１０をグラフィックスメモリに書き込もうとしている場合、第２のデータ３２５は、グラフィックスメモリ内の線形メモリアドレスを、システムメモリ３５５内の対応するページ化メモリアドレスに変換するために使用されるアドレス変換テーブルの一部分とすることができる。次いで、グラフィックス処理サブシステム３２０は、３４５で、第１のデータ３１０をグラフィックスメモリ３５０に書き込むことができ、グラフィックスメモリ３５０は、コンピュータシステム３００の統合メモリアーキテクチャでは、システムメモリ３５５の一部分に配置される。これによって、ポステッドライト操作３１５が完了し、追加操作のためにＣＰＵ３０５とグラフィックス処理サブシステム３２０との間のデータバスが解放される。
【００３６】
[0036]別の実施例では、第１のデータ３１０は、グラフィックス処理サブシステム３２０のコンテキスト切替コマンドを含み得る。この実施例では、ＣＰＵ３０５は、ポステッドライト操作３１５を介して、コンテキスト切替コマンドを含む第１のデータ３１０をグラフィックス処理サブシステム３２０に伝える。これに応じて、グラフィックス処理サブシステム３２０は、この実施例ではコンテキスト状態情報を含む第２のデータ３２５をローカルメモリ３３０から取り出す。次いで、第２のデータ３２５は、第１のデータ３１０に含まれているコンテキスト切替コマンドに従ってコンテキストを切り替えるために、グラフィックス処理サブシステム３２０によって使用され、それによって、ポステッドライト操作３１５が完了し、追加の操作のためにＣＰＵ３０５とグラフィックス処理サブシステム３２０との間のデータパスが解放される。
【００３７】
[0037]統合メモリアーキテクチャを備えるグラフィックス処理サブシステムを実装する別の問題は、選択式のメモリアクセスに関連するオーバーヘッドが高いことである。グラフィックス処理サブシステムは、一般に、画像データの大きい連続ブロックではなく、少数のまばらに分散されているピクセスの画像データを書き込み、または更新する。逆に、コンピュータシステムは、大きい連続ブロックでアクセスされるようにそのシステムメモリを最適化する。こうした差に対処するために、ＰＣＩ−Ｅｘｐｒｅｓｓなど多くのデータバス標準によって、メモリに書き込まれるデータに加えて、バイトイネーブルデータを含むことができる。バイトイネーブルデータは、データのブロックの部分がシステムメモリに書き込まれないようにマスクオフする。バイトイネーブルデータの使用によって、装置は、少数のまばらに分散されているピクセルの更新のみを行いながら、データの大きい連続ブロックをシステムメモリに送信することができる。
【００３８】
[0038]データのブロックの部分がメモリに書き込まれないように選択的にマスキングするためにバイトイネーブルデータを含むにもかかわらず、選択的なメモリアクセスは、依然として、かなりのオーバーヘッドを必要とする。一例として、図４Ａは、ＰＣＩ−Ｅｘｐｒｅｓｓ標準に従ってフォーマットされたデータの標準パケット４００を示している。パケット４００は、ヘッダー４０５およびボディ４１０を含む。ボディ４１０は、データバスを介して、グラフィックス処理サブシステムなどのある装置から、コンピュータのシステムメモリに関連付けられているメモリコントローラなどの別の装置に伝えられるデータを含む。ヘッダー４０５は、パケット４００をその目的の宛先に向けるための情報を含む。
【００３９】
[0039]標準パケット４００のヘッダー４０５は、バイトイネーブルデータ４１５も含む。ＰＣＩ−Ｅｘｐｒｅｓｓ標準によれば、バイトイネーブルデータ４１５は、８ビットのマスク値である。バイトイネーブルデータ４１５によって、ボディ４１０内のデータの最初の４バイト４２０およびデータの最後の４バイト４２５をバイトイネーブルデータ４１５の値に従って選択的にマスキングできるようにする。例えば、バイトイネーブルデータ４１５の最初のビットが「０」である場合、ボディ４１０の最初のバイトは、宛先装置に書き込まれない。逆に、バイトイネーブルデータ４１５内のあるバイトを「１」に設定することによって、ボディ４１０内の対応するバイトを宛先装置に書き込むことができる。しかし、バイトイネーブルデータ４１５は、ボディの最初の４バイト４２０および最後の４バイト４２５の選択的なマスキングを可能にするだけである。ＰＣ−Ｅｘｐｒｅｓｓ標準によれば、ボディ４１０のデータの中央のバイト４３０は、全部宛先装置に書き込まれるはずである。
【００４０】
[0040]ＰＣＩ−Ｅｘｐｒｅｓｓ標準がバイトイネーブルデータを８ビット値に制限するため、任意にマスキングされた画像データを書き込もうとすると、グラフィックス処理サブシステムは、厳しく制限される。グラフィックス処理サブシステムは、パケットボディの任意のバイトを選択的にマスキングする能力をしばしば必要とする。しかし、標準ＰＣＩ−Ｅｘｐｒｅｓｓパケットを使用するとき、グラフィックス処理サブシステムは、一度に最高８バイトしかマスキングできない。したがって、標準ＰＣＩ−Ｅｘｐｒｅｓｓパケットを使用する際、グラフィックス処理サブシステムは、任意のバイトのマスキングが要求されるとき、８バイトのボディのパケットに制限される。グラフィックス処理サブシステムは、より大きいデータ群の任意のバイトのマスキングを必要とする場合、データのブロックを８バイト以下の部分に分割し、各部分に個別のＰＣＩ−Ｅｘｐｒｅｓｓパケットを使用する必要がある。
【００４１】
[0041]８バイトのボディのＰＣＩ−Ｅｘｐｒｅｓｓパケットを使用することは、データバス帯域幅を非常に無駄遣いする。一般のＰＣＩ−Ｅｘｐｒｅｓｓヘッダーが２０バイト長であるため、パケットボディ内の８バイトのデータを送信することは、合計２８バイトを必要とする。この無駄の多いオーバーヘッドは、グラフィックス処理サブシステムがより大きいデータ群の任意のバイトのマスキングを必要とするとき、悪化する。例えば、任意のバイトのマスキングによる３２バイトのデータ群の送信には、個別の標準ＰＣＩ−Ｅｘｐｒｅｓｓパケットが４つ必要であり、合計１１２バイトのバス帯域幅を消費する。
【００４２】
[0042]図４Ｂは、本発明の一実施形態による、データバスを介して通信するために任意のバイトのマスキングを可能にする改良されたＰＣＩ−Ｅｘｐｒｅｓｓパケット４５０を示している。ＰＣＩ−Ｅｘｐｒｅｓｓ標準は、ベンダー定義のパケットの定義を可能にする。宛先装置が非標準パケットヘッダーを解釈することができることを条件に、ベンダー定義のパケットは、非標準パケットヘッダーを有することができる。図４Ｂは、非標準ヘッダー４５５およびボディ４６０を含むベンダー定義のパケット４５０を示している。標準ＰＣＩ−Ｅｘｐｒｅｓｓパケットと同様に、ボディ４６０は、ある装置から別の装置にデータバスを介して通信されるデータを含む。ヘッダー４５５は、パケット４５０をその目的の宛先に向けるための情報を含む。
【００４３】
[0043]非標準ヘッダー４５５は、拡張バイトイネーブルデータ４６５も含む。一実施形態では、拡張バイトイネーブルデータ４６５は、ボディ４６０内の任意のバイトの任意のマスキングを可能にするのに十分なビットを含む。別の実施形態では、拡張バイトイネーブルデータ４６５のバイト数は、ボディ４６５のバイト数に等しい。一実装形態例では、拡張バイトイネーブルデータ４６５は、３２ビットであり、ボディ４６０の最高３２ビットまでのデータが選択的にマスキングされるのを可能にする。
【００４４】
[0044]宛先装置はパケット４５０の非標準ヘッダー４５５を適切に解釈することができなければならないため、本発明の一実施形態は、グラフィックス処理サブシステムに関連付けられている装置ドライバを使用して、コンピュータシステムＮｏｒｔｈｂｒｉｄｇｅまたはＣＰＵと統合することができるコンピュータのシステムメモリコントローラがパケット４６０の非標準ヘッダー４５５との互換性があるかどうかを検出する。システムメモリコントローラに互換性がある場合、グラフィックス処理サブシステムは、システムメモリに書き込まれるデータを選択的にマスキングするために、パケット４５０のフォーマットを使用するように指示される。逆に、システムメモリコントローラに互換性がない場合、装置ドライバは、システムメモリに書き込まれるデータを選択的にマスキングするために、標準ＰＣＩ−Ｅｘｐｒｅｓｓパケット４００のフォーマットを使用するようグラフィックス処理サブシステムに指示する。
【００４５】
[0045]図５Ａおよび５Ｂは、本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す。一般に、画像データの２次元アレイは、システムまたはグラフィックスメモリに、末端同士接続された一連の行または列として構成されている。例えば、メモリ内のフレームバッファは、画像内のピクセルの第１の行のすべての画像データで始まり、画像内のピクセルの第２の行のすべての画像データ、次いで画像内のピクセルの第３の行のすべての画像データが続くなど、以下同様に続く。
【００４６】
[0046]画像データのこの構成は、画像の２次元座標のメモリの対応する位置への変換を簡単にするが、統合メモリアーキテクチャのための追加のデータバス帯域幅を必要とする。グラフィックス処理サブシステムは、高度な２次元局所性でグラフィックスメモリにアクセスする。例えば、グラフィックス処理システムは、いずれも同じ行および近くの行にある所与の１つのピクセルおよび近くのピクセルの画像データを同時に作成することができる。
【００４７】
[0047]引き続きこの例で、上述した線形メモリ構成を使用するとき、異なる行の隣接するピクセル間のシステムメモリにおける距離は、何百または何千バイトも離れている。上述したように、この距離は、特に、パケットヘッダー内のバイトイネーブルデータのサイズがパケットボディの長さを制限する従来の実装形態では、データバスパケットに許容されるサイズより大きいため、グラフィックス処理サブシステムは、隣接するピクセル群の画像データを書き込むには、データバスを介して複数の小さいパケットをシステムメモリに送信する必要がある。１つの大きいパケットではなく、複数の小さいパケットを使用することによって被るデータバスのオーバーヘッドは、コンピュータシステムの性能および効率を低下させる。
【００４８】
[0048]図５Ａおよび５Ｂは、本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す。グラフィックス処理サブシステムによって生成された画像データの２次元の局所性を活用するために、本発明の一実施形態は、画像データを１組のタイルとして構成する。各タイルは、ピクセルの２次元アレイの画像データを含む。図５Ａは、画像５００の一部分を示している。画像５００は、タイル５０５、５１０、および５１５を含めて、いくつかのタイルに分割される。図５Ａの一実施形態では、各タイルは、４×４アレイのピクセルを含む。しかし、代替の実施形態において、任意の数のピクセルを有する正方形のタイルおよび非正方形のタイルを使用してもよい。図５Ａで、各ピクセルは、画像５００におけるピクセルの行および列でラベル付けされている。例えば、タイル５０５は、画像５００の最初の４行のそれぞれに最初の４つのピクセルを含む。
【００４９】
[0049]図５Ｂは、本発明の一実施形態によるシステムメモリに構成されている画像５００の一部分を表す画像データ５５０を示している。この実施形態では、各タイルの画像データは、システムメモリに連続的に格納される。例えば、システムメモリの一部分５５５は、タイル５０５のすべてのピクセルの画像データを格納する。一実施形態では、タイル５０５の画像データの後に、タイル５１０のすべてのピクセルの画像データを格納するシステムメモリの一部分５６０がある。あるいは、システムメモリの一部分５６０は、タイル５１５のすべてのピクセルの画像データを格納してもよい。
【００５０】
[0050]画像データをピクセルの２次元タイルの組として格納することによって、隣接する行のピクセル間のシステムメモリにおける距離は、特に同じタイルに両方のピクセルが存在する場合、短縮される。その結果、グラフィックス処理サブシステムは、単一の書き込み操作を使用して、データバスを介して近くのピクセルの組をシステムメモリに書き込むことが頻繁にできるようになる。
【００５１】
[0051]別の実施形態では、画像データのシステムメモリにおけるタイルとしての構成は、グラフィックス処理システムおよび／またはＣＰＵの一部分に対して隠されている。代わりに、ピクセルは、上述したように、走査線ごとにフレームバッファに構成されている仮想アドレスによって参照される。グラフィックス処理サブシステムのタイルアドレス変換部分は、仮想アドレスを使用して、メモリアクセス要求を、システムメモリ内に格納されている画像データのタイル構成への１つまたは複数のアクセス要求に変換する。
【００５２】
[0052]図６Ａおよび６Ｂは、本発明の一実施形態による、画像データにアクセスする一例を示す。図６Ａは、画像例６００の一部分を示している。画像例６００は、タイル６０５、６１０、６１５、および６２０を含む。範囲６２５は、グラフィックス処理サブシステムによってアクセスされる１組のピクセル例に相当する。この例では、範囲６２５は、タイル６０５および６１０の部分に及ぶ。一実施形態では、範囲６２５は、１つまたは複数の仮想アドレスを使用して参照される。
【００５３】
[0053]範囲６２５に対応する画像データを取り出すには、グラフィックス処理サブシステムは、範囲６２５の参照に使用される１つまたは複数の仮想メモリアドレスを、１つまたは複数のシステムメモリアドレスに変換する。一実施形態では、タイル変換テーブルは、仮想メモリアドレスとシステムメモリアドレスとの間の変換に使用される。次いで、グラフィックス処理サブシステムは、所望の画像データを含む１つまたは複数のタイルのすべてまたは一部分を取り出す。
【００５４】
[0054]図６Ｂは、上述した範囲６２５に対応する画像データを含むシステムメモリ６００の一部分を示す。システムメモリ６００の一部分は、タイル６０５に対応する画像データ６０５、およびタイル６１０に対応する画像データ６１０を含む。画像データ６０５内の画像データのサブセット６１５は、タイル６０５内の範囲６２５の部分に対応する。同様に、画像データ６１０内の画像データのサブセット６２０は、タイル６１０内の範囲６２５の部分に対応する。
【００５５】
[0055]一実施形態では、グラフィックス処理サブシステムは、画像の要求された範囲を含む１つまたは複数のタイルを識別する。次いで、グラフィックス処理サブシステムは、識別されたタイルのそれぞれを取り出し、要求された範囲外の画像データを破棄する。次いで、画像データの残りの部分は、グラフィックス処理サブシステムによって、画像の要求された範囲に対応する連続する１組の画像データにアセンブルされる。あるいは、グラフィックス処理サブシステムは、識別された各タイルの要求された部分のみを取り出すことができる。この実施形態では、グラフィックス処理サブシステムは、いくつかの非連続メモリアクセスを使用して、画像の連続する範囲に対応する画像データを取り出すことができる。
【００５６】
[0056]グラフィックス処理サブシステムは、画像をレンダリングするために画像データを読み取ったり書き込んだりすることを含めて、いくつかの異なる目的のためにタイル構成でシステムメモリに格納された画像の範囲にアクセスすることができる。一実施形態では、グラフィックス処理サブシステムは、表示すべき画像を、スキャンアウトの前に、上述したローカルメモリ３３０などのローカルメモリに転送する。本発明の代替実施形態によって、グラフィックス処理サブシステムは、レンダリング済み画像をシステムメモリから表示装置に転送することができる。すなわちスキャンアウトと呼ばれるプロセスである。スキャンアウトは、一般に、画像データが正確な時間間隔で表示装置に伝えられることを必要とする。グラフィックス処理サブシステムが、例えば、システムメモリから画像データを取り出すのが遅れることによるなど、画像データを適切な時に表示装置に伝えることができない場合、ティアリングなど、視覚的なアーティファクトが生成される。
【００５７】
[0057]一般に、画像データは、行ごとに表示装置に伝えられる。一実施形態では、グラフィックス処理サブシステムは、行が表示装置に伝えられる前に、画像の１行または複数行の画像データを取り出す。図７Ａは、この実施形態の適用例を示している。図７Ａは、画像７００を示している。一実施形態では、画像は、上述したようにいくつかのタイルに分割される。グラフィックス処理サブシステムは、表示装置に画像７００の行７０５を伝える。行７０５が表示装置に伝えられている間に、グラフィックス処理サブシステムは、例えば行７１０および／または行７１５など、画像７００のその後の行の画像データをシステムメモリから取り出す。
【００５８】
[0058]図７Ｂは、画像データを表示装置に伝えるために使用されるグラフィックス処理サブシステムの一部分の例７３０の動作を示す。一部分７３０は、画像データを、表示装置７４０に伝えられる表示信号に変換するように構成されているスキャンアウトユニット７３５を含む。スキャンアウトユニット７３５によって出力された表示信号は、デジタル信号またはアナログ信号とすることができる。
【００５９】
[0059]一実施形態では、スキャンアウトユニットは、システムメモリからタイルフォーマットの画像データを取り出す。画像データの各タイルは、画像の一部分の画像データの２行以上を含んでいるため、スキャンアウトユニット７３５は、取り出された各タイルの部分から画像の所望の行をアセンブルする。例えば、行７０５の画像データは、タイル７０７の画像データ７６０の部分７４５、タイル７０９の画像データ７６５の部分７５０、タイル７１１の画像データ７７０の部分７５５を含めて、いくつかの異なるタイルの部分からアセンブルすることができる。一実施形態では、取り出されたタイルの未使用の部分は破棄される。
【００６０】
[0060]代替の実施形態では、スキャンアウトユニット７３５が１組のタイルから所与の行の画像データを取り出す間に、スキャンアウトユニット７３５は、画像のその後の１行または複数行の画像データの格納も行う。これによって、スキャンアウトのためにシステムメモリにアクセスする回数が低減し、したがって、グラフィックス処理サブシステムの効率および性能が向上する。
【００６１】
[0061]図７Ｃは、この代替実施形態の実装形態例７７１の動作を示している。この例では、スキャンアウトユニット７３６は、スキャンアウトユニット７３６によって望まれる行を含む画像データのタイルをシステムメモリから取り出す。スキャンアウトユニットは、取り出された各タイルの適切な部分からの所望の行をアセンブルする。例えば、行７０５の画像データは、部分７４５、７５０、および７５５を含めて、異なるタイルのいくつかの部分からアセンブルすることができる。
【００６２】
[0062]所望の行の画像データがいくつかのタイルの部分からアセンブルされる間に、その後の１行または複数行の画像データが１つまたは複数の走査線キャッシュに格納される。例えば、例えば行７１０など、所望の行に続く最初の行の画像データが走査線キャッシュ７９０に格納される。その後の最初の行の画像データは、タイル部分７７２、７７４、および７７６を含み得る。同様に、タイル部分７７８および７８０を含むその後の第２の行の画像データが走査線キャッシュ７８８に格納される。タイル部分７８２、７８３、および７８４を含むその後の第３の行の画像データが走査線キャッシュ７８５に格納される。
【００６３】
[0063]したがって、その後の行について、走査線ユニット７３６は、適切な走査線キャッシュから次の所望の行の画像データを取り出すことができる。一実施形態では、所与の画像について、走査線ユニット７３５がシステムメモリから各タイルを一度だけ読み取ればよいように、画像のタイル内の画像データの各行に対応する走査線キャッシュが存在する。代替の実施形態では、グラフィックス処理サブシステムのハードウェアの複雑性を低減するために、走査線キャッシュがより少なくてもよい。
【００６４】
[0064]本発明は、システムメモリを、画像のレンダリングおよびスキャンアウトのためのそのグラフィックスメモリとして使用することができるグラフィックス処理サブシステムを提供する。本発明は、コンピュータグラフィックスサブシステムを参照して説明してきたが、本発明は、音声構成要素および通信構成要素を含めて、コンピュータシステムの他の構成要素に適用可能である。本発明は、その特定の例および実施形態に関して説明してきたが、これらは単に本発明の例示にすぎず、制限的なものではない。したがって、本発明の範囲は、特許請求の範囲によってのみ決定されるものとする。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施形態の実施に適したコンピュータシステムを示すブロック図である。
【図２】本発明の一実施形態によるシステムデッドロックを防ぐ一般的な技術を示す図である。
【図３】本発明の別の一実施形態によるシステムデッドロックを防ぐ一般的な技術を示す図である。
【図４Ａ】本発明の一実施形態によるデータバスを介してメモリに選択的にアクセスするシステムを示す図である。
【図４Ｂ】本発明の一実施形態によるデータバスを介してメモリに選択的にアクセスするシステムを示す図である。
【図５Ａ】本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す図である。
【図５Ｂ】本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す図である。
【図６Ａ】本発明の一実施形態による表示情報にアクセスするシステムを示す図である。
【図６Ｂ】本発明の一実施形態による表示情報にアクセスするシステムを示す図である。
【図７Ａ】本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。
【図７Ｂ】本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。
【図７Ｃ】本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。
【図１】
2007535006.tif 000003
【図２】
2007535006.tif 000004
【図３】
2007535006.tif 000005
【図４Ａ】
2007535006.tif 000006
【図４Ｂ】
2007535006.tif 000007
【図５Ａ】
2007535006.tif 000008
【図５Ｂ】
2007535006.tif 000009
【図６Ａ】
2007535006.tif 000010
【図６Ｂ】
2007535006.tif 000011
【図７Ａ】
2007535006.tif 000012
【図７Ｂ】
2007535006.tif 000013
【図７Ｃ】
2007535006.tif 000014
【国際調査報告】
2007535006.tif 000015
2007535006.tif 000016