JP2007535006A - システムメモリへのgpuのレンダリング - Google Patents

システムメモリへのgpuのレンダリング Download PDF

Info

Publication number
JP2007535006A
JP2007535006A JP2007510913A JP2007510913A JP2007535006A JP 2007535006 A JP2007535006 A JP 2007535006A JP 2007510913 A JP2007510913 A JP 2007510913A JP 2007510913 A JP2007510913 A JP 2007510913A JP 2007535006 A JP2007535006 A JP 2007535006A
Authority
JP
Japan
Prior art keywords
data
graphics processing
processing subsystem
image data
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007510913A
Other languages
English (en)
Other versions
JP4926947B2 (ja
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 JP2007535006A publication Critical patent/JP2007535006A/ja
Application granted granted Critical
Publication of JP4926947B2 publication Critical patent/JP4926947B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/122Tiling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]

Abstract

本グラフィックス処理サブシステムはシステムメモリを、画像のレンダリングとスキャンアウトのためのそのグラフィックスメモリとして使用する。データバスのデッドロックを防ぐべく、本システムは、データバスの代替の仮想チャネルを使用して、第1データの書込み操作を終えるのに必要なシステムメモリの追加データにアクセスできる。システムメモリと通信する際、拡張バイトイネーブル情報を含むデータパケットにより、本システムは大量のデータを任意のバイトマスキングでシステムメモリに書き込む。レンダリング済み画像データの高度な2次元局所性を活用すべく、本システムは画像データをシステムメモリにてタイルフォーマットで構成する。タイル変換ユニットは、画像データ仮想アドレスを対応のシステムメモリアドレスに変換する。本システムは、システムメモリから画像データを読み出して表示信号に変換する。
【選択図】図2

Description

関連出願の相互参照
[0001]本出願は、2001年8月14日に発行された「Method and apparatus for accelerating the transfer of graphical images」という名称の米国特許第6,275,243号に関連し、この特許の開示は、あらゆる目的のために、参照により本明細書に組み込まれる。
発明の背景
[0002]本発明は、コンピュータグラフィックスの分野に関する。多くのコンピュータグラフィック画像は、所与の視点からの3次元のシーンと光との相互作用を数学的にモデリングすることによって作成される。このプロセスは、レンダリングと呼ばれ、所与の視点からのシーンの2次元画像を生成し、実世界のシーンの写真を撮ることに似ている。
[0003]コンピュータグラフィックスの需要、および特にリアルタイムのコンピュータグラフィックスの需要が増加するにつれて、レンダリングプロセスを加速するように構成されているグラフィックス処理サブシステムを備えたコンピュータシステムが普及してきた。これらのコンピュータシステムでは、レンダリングプロセスは、コンピュータの汎用中央処理ユニット(CPU)とグラフィックス処理サブシステムとの間で分けられる。一般に、CPUは、所与のシーンにおける対象物の位置、動き、および不調和を決定するなど、高レベルの操作を実行する。これらの高レベルの操作から、CPUは、所望のレンダリング済み画像または複数のレンダリング済み画像を定義する1組のレンダリングコマンドおよびデータを生成する。例えば、レンダリングコマンドおよびデータは、あるシーンについてのシーンジオメトリ、ライティング、シェーディング、テクスチャ、動き、および/またはカメラのパラメータを定義することができる。グラフィックス処理サブシステムは、1組のレンダリングコマンドおよびデータから1つまたは複数のレンダリング済み画像を作成する。
[0004]一般のグラフィックス処理サブシステムは、1つまたは複数のグラフィックス処理ユニット(GPU)またはコプロセッサを含む。各GPUは、CPUによって生成されるレンダリングコマンドを実行する。1つまたは複数のGPUに加えて、グラフィックス処理サブシステムは、メモリも含む。グラフィックスサブシステムメモリは、表示装置に出力される1つまたは複数のレンダリング済み画像、ジオメトリデータ、テクスチャデータ、ライティングおよびシェーディングデータ、および1つまたは複数のレンダリング済み画像を生成するために使用される他のデータを格納するために使用される。
[0005]レンダリング性能を最大にするために、グラフィックスサブシステムのメモリは、一般に、コンピュータシステムによって使用される汎用システムメモリから分離される。これによって、グラフィックス処理サブシステムは、メモリアクセス性能、およびしたがってレンダリング性能を最大限にすることができる。しかし、グラフィックス処理サブシステム用の個別のメモリを有することによって、何百メガバイト以上になり得る追加メモリの消費だけではなく、電源レギュレータ、フィルタ、冷却装置などの構成要素をサポートするコスト、および複雑さが増した回路基板によって、コストが大幅に増大する。さらに、個別のグラフィックス処理サブシステムのメモリに必要な余分なスペースは、特に、ノートブックコンピュータやモバイル機器の問題をもたらす可能性がある。
[0006]個別のグラフィックス処理サブシステムメモリに関連する問題の解決策の1つは、統合メモリアーキテクチャ(unified memory architecture)を使用することであり、統合メモリアーキテクチャでは、例えば、ジオメトリデータ、テクスチャデータ、ライティングおよびシェーディングデータ、およびレンダリング済み画像など、グラフィックス処理サブシステムによって必要とされるデータのすべてがコンピュータシステムの汎用システムメモリに格納される。従来、グラフィックス処理サブシステムをシステムメモリに接続するデータバスは、統合メモリアーキテクチャシステムの性能を制限する。
[0007]PCI−Expressデータバス標準などの改良されたデータバス標準は、メモリのアクセスに使用できる帯域幅を増やすが、統合メモリアーキテクチャにより最適なレンダリング性能を達成することは、依然として、メモリ帯域幅および待ち時間に注意を払うことを必要とする。さらに、PCI−Expressデータバス標準は、システムデッドロックや、選択式メモリアクセスのオーバーヘッドが高いことを含めて、それ自体の問題をもたらす。さらに、レンダリング済み画像をメモリから表示装置に転送するプロセスであるスキャンアウトは、視覚的不連続性および誤差を防ぐために正確なタイミングを必要とする。このために、システムメモリに格納されているレンダリング済み画像からスキャンアウトを行うことは難しい。
[0008]したがって、統合メモリアーキテクチャを使用するグラフィックス処理サブシステムが良いレンダリング性能およびシステムメモリからの誤差のないスキャンアウトを提供することが望ましい。さらに、グラフィックス処理サブシステムが、システムデッドロックや、選択式メモリアクセスのオーバーヘッドが高いなどの問題を防ぐことが望ましい。
発明の概要
[0009]本発明の一実施形態によって、グラフィックス処理サブシステムは、システムメモリを、画像のレンダリング、およびスキャンアウトのためのそのグラフィックスメモリとして使用することができる。データバスのデッドロックを防ぐために、グラフィックス処理サブシステムは、データバスの代替の仮想チャネルを使用して、第1のデータの書き込み操作を完了するのに必要なシステムメモリの追加データにアクセスすることができる。システムメモリと通信する際、拡張バイトイネーブル情報を含むデータパケットによって、グラフィックス処理サブシステムは、大量のデータを任意のバイトマスキングでシステムメモリに書き込むことができる。レンダリング済み画像データの高度な2次元局所性(the high degree of two−dimensional locality)を活用するために、グラフィックス処理サブシステムは、画像データを、システムメモリにおいてタイルフォーマットで構成する。タイル変換ユニットは、画像データ仮想アドレスを、対応するシステムメモリアドレスに変換する。グラフィックス処理サブシステムは、システムメモリから画像データを読み出し、それを表示信号に変換する。
[0010]一実施形態では、グラフィックス処理サブシステムは、レンダリングデータに応じてレンダリング済み画像の画像データを作成するように構成されているレンダリングユニット、およびデータバスを介してコンピュータシステムのシステムメモリ装置と接続するように構成されているデータバスインターフェイスを備える。グラフィックス処理サブシステムと関連付けられているグラフィックスメモリへの第1のデータの書き込み操作に応じて、グラフィックス処理サブシステムは、第1のデータの書き込み操作を完了するのに必要な第2のデータを取り出すように構成されている。次いで、グラフィックス処理サブシステムは、第2のデータからシステムメモリ内の第1のデータの宛先を決定し、第1のデータの書き込み操作をシステムメモリ内の第1のデータの宛先に向け直す。さらに別の実施形態で、システムメモリ内の第1のデータの宛先は、グラフィックス処理サブシステムに関連付けられているグラフィックスメモリとして指定されるシステムメモリの一部内にある。別の実施形態では、第2のデータは、アドレス変換情報を含み、グラフィックス処理サブシステムは、グラフィックスメモリに関連付けられている仮想アドレスをシステムメモリ内の対応する宛先に変換するように構成されている。
[0011]一実施形態では、グラフィックス処理サブシステムは、データバスの第1の仮想チャネルからデータバスインターフェイスを介して第1のデータの書き込み操作を受信し、データバスの第2の仮想チャネルを使用して、データバスインターフェイスを介してシステムメモリから第2のデータを取り出すように構成されている。代替の一実施形態では、グラフィックス処理サブシステムは、グラフィックス処理サブシステムに接続されているローカルメモリから第2のデータを取り出すように構成されている。
[0012]別の一実施形態では、グラフィックス処理サブシステムは、画像のある位置に対応する仮想メモリアドレスを、システムメモリ内の画像データのタイル構成内のメモリアドレスに変換するように構成されているタイルアドレス変換ユニットを含む。タイルアドレス変換ユニットは、画像の連続部分に対応するある範囲の仮想メモリアドレスに応じて、データバス上でデータバスインターフェイスを介して複数のシステムメモリアクセスを開始するようにさらに構成することができる。仮想メモリアドレスの範囲に応じて、複数のシステムメモリアクセスは、システムメモリの非連続部分に対するものでもあり得る。
[0013]さらに別の実施形態では、データバスインターフェイスは、システムメモリに関連付けられているメモリコントローラが第1のデータパケットタイプと互換性があることを示す指示に応じて、第1のデータパケットタイプのデータパケットを使用してデータバスを介して第3のデータをシステムメモリに伝えるように構成されている。第1のデータパケットタイプは、拡張バイトイネーブルデータを含む。メモリコントローラが第1のデータパケットタイプと互換性がないことを示す指示に応じて、データバスインターフェイスは、第2のデータパケットタイプの複数のデータパケットを使用してデータバスを介して第3のデータをシステムメモリに伝える。
[0014]別の一実施形態では、グラフィックス処理サブシステムは、レンダリング済み画像に対応する表示信号を表示装置に伝えるように構成されている表示装置コントローラを含む。一実施形態では、表示装置コントローラは、グラフィックス処理サブシステムに接続されているローカルメモリからレンダリング済み画像に対応する画像データを取り出すように構成されている。別の一実施形態では、表示装置コントローラは、レンダリング済み画像と対応する画像データをシステムメモリから取り出すように構成されている。
[0015]一実施形態では、表示装置コントローラは、システムメモリ内の画像データのタイル構成からレンダリング済み画像の第1の行に対応する第1の画像データを取り出し、第1の画像データを表示装置に伝えるように構成されている。グラフィックス処理サブシステムは、レンダリング済み画像の第1の行を含むレンダリング済み画像の1組のタイルに対応する1組の画像データをシステムメモリから取り出す。グラフィックス処理サブシステムは、画像データの第1の行を含まない1組の画像データの部分を破棄することができる。別の一実施形態では、表示装置コントローラは、1組のタイルに含まれ、レンダリング済み画像の少なくとも1つの追加行に対応する第2の画像データを格納するように構成されている画像データキャッシュを含む。表示装置コントローラは、第1の画像データを取り出した後、画像データキャッシュから第2の画像データを取り出し、第2の画像データを表示装置に伝えるように構成されている。
[0016]本発明は、図面を参照して説明する。図面では、同じ参照番号の使用は、同じ構成要素を示す。
発明の詳細な説明
[0017]図1は、パーソナルコンピュータ、ビデオゲームコンソール、個人用デジタル補助装置、または他のデジタル装置など、本発明の一実施形態を実施するのに適したコンピュータシステム100のブロック図である。コンピュータシステム100は、ソフトウェアアプリケーション、およびオプションでオペレーティングシステムを稼働させる中央処理ユニット(CPU)105を含む。一実施形態では、CPU105は、実際には、並列で動作するいくつかの個別の中央処理ユニットである。メモリ110は、CPU105によって使用するアプリケーションおよびデータを格納する。ストレージ115は、アプリケーションおよびデータ用の不揮発性ストレージを提供するものであり、ストレージ115には、固定式ディスクドライブ、取外式ディスクドライブ、フラッシュメモリ装置、CD−ROM、DVD−ROM、または他の光記憶装置などがある。ユーザ入力装置120は、1人または複数人のユーザからのユーザ入力をコンピュータシステム100に伝えるものであり、ユーザ入力装置120には、キーボード、マウス、ジョイスティック、タッチ画面、および/またはマイクロフォンなどがある。ネットワークインターフェイス125によって、コンピュータシステム100は、電子通信ネットワークを介して他のコンピュータシステムと通信することができ、ネットワークインターフェイス125には、ローカルエリアネットワークおよび広域ネットワーク、例えばインターネットなどを介した有線または無線の通信などがある。コンピュータシステム100の構成要素は、CPU105、メモリ110、データストレージ115、ユーザ入力装置120、およびネットワークインターフェイス125などがあり、1つまたは複数のデータバス160を介して接続される。データバスの例には、ISA、PCI、AGP、PCI、PCI−Express、およびHyperTransportのデータバスなどがある。
[0018]グラフィックスサブシステム130は、データバス160およびコンピュータシステム100の構成要素にさらに接続される。グラフィックスサブシステムは、コンピュータシステムのマザーボードと統合してもよく、またはコンピュータシステムに固定式または取外式に接続されている個別の回路基板上に配置されていてもよい。グラフィックスサブシステム130は、グラフィックス処理ユニット(GPU)135およびグラフィックスメモリを含む。グラフィックスメモリは、出力画像の各ピクセルのピクセルデータを格納するために使用される表示メモリ140(フレームバッファなど)を含む。ピクセルデータは、CPU105から直接表示メモリ140に提供することができる。あるいは、CPU105は、GPU135がそこから1つまたは複数の出力画像のピクセルデータを生成する所望の出力画像を定義するデータおよび/またはコマンドをGPU135に提供する。所望の出力画像を定義するデータおよび/またはコマンドは、追加メモリ145に格納される。一実施形態では、GPU135は、あるシーンについてのジオメトリ、ライティング、シェーディング、テクスチャ、動き、および/またはカメラのパラメータを定義するレンダリングコマンド、およびデータから出力画像のピクセルデータを生成する。
[0019]別の一実施形態では、表示メモリ140および/または追加メモリ145は、メモリ110の一部分であり、CPU105と共有される。あるいは、表示メモリ140および/または追加メモリ145は、グラフィックスサブシステム130の専用として提供される1つまたは複数の個別メモリである。グラフィックスサブシステム130は、表示メモリ218の画像、および表示装置150に表示される画像のためのピクセルデータを定期的に出力する。表示装置150は、CRT、LCD、プラズマ、およびOLEDのディスプレイを含めて、コンピュータシステム100からの信号に応じて可視情報を表示できる任意の装置である。コンピュータシステム100は、表示装置150に、アナログ信号またはデジタル信号を提供することができる。
[0020]別の一実施形態では、グラフィックス処理サブシステム130は、GPU135に似た1つまたは複数の追加のGPU155を含む。さらに別の一実施形態では、グラフィックス処理サブシステム130は、グラフィックスコプロセッサ165を含む。グラフィックス処理コプロセッサ165および追加のGPU155は、GPU135と並行して、またはGPU135の代わりに動作するように構成されている。追加のGPU155は、GPU135と同様に、レンダリングコマンドから出力画像のピクセルデータを生成する。追加のGPU155は、GPU135と共に、出力画像の異なる部分のピクセルデータを同時に生成したり、または異なる出力画像のピクセルデータを同時に生成したりするように動作することができる。一実施形態では、グラフィックスコプロセッサ165は、GPU135および/または追加のGPU155のジオメトリ変換、シェーダ計算、および背面カリング操作(backface culling operation)など、レンダリング関連のタスクを行う。
[0021]追加のGPU155は、GPU135と同じ回路基板上に配置して、データバス160への接続をGPU135と共有することができ、またはデータバス160に別々に接続されている追加の回路基板に配置することができる。追加のGPU155は、GPU135と同じモジュールまたはチップパッケージに統合することもできる。追加のGPU155は、表示メモリ140および追加メモリ145と似たそれ自体の表示メモリおよび追加メモリを有することができ、またはメモリ140および145をGPU135と共有することもできる。一実施形態では、グラフィックスコプロセッサ165は、データバス160の制御に使用されるNorthbridgeチップやSouthbridgeチップなどのコンピュータシステムチップセット(図示せず)と統合される。
[0022]システムデッドロックは、2つの操作がそれぞれの操作を完了する前にいずれも他方からの応答を必要とすることによる、システムの実行における停止である。システムデッドロックの1つの原因は、データバスを介してCPUをグラフィックス処理サブシステムに接続するポステッドライト操作(posted write operation)に起因する。PCI−Expressデータバスなど、多くのタイプのデータバスでは、データバスを介して他の任意の読み取り操作または書き込み操作が行われる前に、ポステッドライト操作が完了されなければならない。ポステッドライト操作とは、宛先がそれを受け付けるとすぐに要求者によって完了されると考えられる書き込み操作である。性能上、PCI−Expressは、メモリのすべての書き込みにポステッドライト操作を使用する。構成およびI/OへのPCI−Expressの書き込み操作は、一般に、非ポステッドライト操作であり、例えばデータなしの完了メッセージなど、書き込みが終了したという確認を必要とする。
[0023]ポステッドライト操作は他のデータバスの操作をブロックするので、システムデッドロックは、CPUによって発行されたポステッドライトを完了するためにグラフィックス処理サブシステムが追加の情報を必要とするときに作成され得る。例えば、グラフィックス処理サブシステムは、処理の便宜上、線形連続メモリ構成(linear contiguous memory organization)を使用することが多いが、統合メモリアーキテクチャでグラフィックメモリとして使用されるコンピュータシステムの汎用メモリの部分は、一般に、1組の非連続メモリページとして構成される。ページ変換テーブルは、メモリアドレスを、グラフィックス処理サブシステムによって使用される線形連続アドレススペースから、コンピュータシステムメモリによって使用されるページ化非連続アドレススペース(paged,non−contiguous address space)に変換し、グラフィックス処理サブシステムがコンピュータシステムメモリにアクセスできるようにする。一実施形態では、ページ変換テーブルは、システムメモリに格納されている。グラフィックス処理サブシステムがグラフィックスメモリ内の所与のメモリアドレスへのアクセスを必要とするとき、グラフィックス処理サブシステムのアドレス変換部分は、ページ変換テーブルの適切な部分を取り出し、グラフィックス処理サブシステムによって使用される線形メモリアドレスを、システムメモリによって使用される対応するページ化メモリアドレスに変換し、次いで、システムメモリの変換されたメモリアドレスにアクセスする。
[0024]データがグラフィックスメモリの宛先に書き込まれることを要求するポステッドライトコマンドをCPUが発行するとき、ポステッドライトコマンドが受け付けられるまで、他のデータバス完了操作を完了することができない。しかし、ポステッドライトコマンドを受け付けるには、グラフィックス処理サブシステムは、システムメモリに格納されているページ変換テーブルにアクセスして、グラフィックスメモリ内の宛先に対応するページ化メモリアドレスを決定する必要がある。ポステッドライトコマンドは、それが受け付けられるまで、その後のバス完了操作をブロックするため、データをページ変換テーブルから戻すバス完了操作がポステッドライト操作によってブロックされる。ポステッドライト操作は、グラフィックス処理サブシステムがページ変換テーブルからデータを受信するまで完了することができないため、コンピュータシステムはデッドロックされる。
[0025]別の実施例では、グラフィックス処理システムは、異なるいくつかのコンテキストで実行することができる。個別のコンテキストを、グラフィックス処理サブシステムによって処理される各アプリケーション、ウィンドウ、および/または実行スレッドと関連付けることができる。コンテキスト間の切替時、グラフィック処理サブシステムは、前のコンテキストからのすべての操作を終了し、前のコンテキストに関連付けられている状態情報を格納し、新しいコンテキストの状態情報をロードし、新しいコンテキストの操作の実行を開始する。適切な実行を確保するために、新しいコンテキストの状態情報がメモリからロードされるまで、新しいコンテキストからのコマンドを実行することができない。
[0026]統合メモリアーキテクチャシステムでは、コンテキスト状態情報は、システムメモリに格納することができる。CPUが、ポステッドライト操作を介してコンテキストを切り替えるようにグラフィックス処理システムに指示したとき、グラフィックス処理サブシステムは、新しいコンテキスト状態情報をシステムメモリからロードする必要がある。しかし、グラフィックス処理サブシステムがコンテキストを切り替えるまで、ポステッドライト操作が完了されないため、グラフィックス処理サブシステムは、データバスを介してシステムメモリにアクセスすることができない。したがって、コンピュータシステムはデッドロックする。
[0027]図2は、本発明の一実施形態による、コンピュータシステム200におけるシステムデッドロックを防ぐ一般的な技術を示す。CPU205は、データバス上でポステッドライト操作215を介して第1のデータ210をグラフィックス処理サブシステム220に伝える。ポステッドライト操作215を完了するために、グラフィックス処理サブシステム220は、システムメモリ230から第2のデータ225を取り出す必要がある。システムメモリ230にアクセスするための以前の技術下では、ポステッドライト操作215は、グラフィックス処理サブシステム220がシステムデータ内の第2のデータ225にアクセスするのをブロックしていた。
[0028]本発明の一実施形態では、グラフィックス処理サブシステム220は、データバスを介して通信するために代替の仮想チャネルを開くことによって、システムメモリ230の第2のデータ225にアクセスする。仮想チャネルは、同じデータバスを介したデータ通信用の独立パスを提供する。一例として、PCI−Expressバス仕様によって、1つのPCI−Expressデータバスは、異なるいくつかのデータ交換を伝えることができ、各データ交換は、独立して、PCT−Expressデータバス上の他のデータの交換からの干渉なしに起こる。
[0029]データバス上の例えばVC0などの第1の仮想チャネルを介してグラフィックス処理サブシステム220に伝えられたポステッドライト操作215に応じて、グラフィックス処理サブシステム220は、システムメモリ230から第2のデータ225を取り出すための例えばVC1などの第2の仮想チャネルをデータバス上に開く。第2の仮想チャネルVC1を使用して、グラフィックス処理サブシステム220は、データバスを介して第2のデータ225の要求235をシステムメモリ230に送信する。データバスの第2の仮想チャネルVC2を使用したシステムメモリ230からの応答240は、第2のデータ225をグラフィックス処理サブシステム220に戻す。
[0030]システムメモリ230から第2の仮想チャネルを介して取り出された第2のデータ225を使用して、グラフィックス処理サブシステムは、第1のデータ210のポステッドライト操作215を完了させるのに必要な情報を決定する。例えば、ポステッドライト操作215が第1のデータ210をグラフィックスメモリに書き込もうとしている場合、第2のデータ225は、グラフィックスメモリ内の線形メモリアドレスを、システムメモリ230内の対応するページ化メモリアドレスに変換するために使用されるアドレス変換テーブルの一部分とすることができる。次いで、グラフィックス処理サブシステム220は、245で、第1のデータ210をグラフィックスメモリ250に書き込むことができ、グラフィックスメモリ250は、コンピュータシステム200の統合メモリアーキテクチャでは、システムメモリ230の一部分に配置される。これによって、ポステッドライト操作215が完了し、追加の操作のために第1の仮想チャネルが解放される。
[0031]別の実施例では、第1のデータ210は、グラフィックス処理サブシステム220のコンテキスト切替コマンドを含み得る。この例では、CPU205は、第1の仮想チャネル上で、ポステッドライト操作215を介して、コンテキスト切替コマンドを含む第1のデータ210をグラフィックス処理サブシステム220に伝える。それに応じて、グラフィックス処理サブシステム220は、例えばVC1など、代替の仮想チャネルを開いて、この例ではコンテキスト状態情報を含む第2のデータ225をシステムメモリ230から取り出す。次いで、第2のデータ225は、第1のデータ210に含まれているコンテキスト切替コマンドに従ってコンテキストを切り替えるために、グラフィックス処理サブシステム220によって使用され、それによって、ポステッドライト操作215が完了し、追加の操作のために第1の仮想チャネルが解放される。また、グラフィックス処理サブシステムは、実行がそのコンテキストに戻ったときに後で取り出すことができるように、前のコンテキストのコンテキスト状態情報をメモリに書き込む。
[0032]図3は、本発明の別の実施形態による、コンピュータシステム300におけるシステムデッドロックを防ぐ一般的な技術を示す。CPU305は、データバス上でポステッドライト操作315を介して第1のデータ310をグラフィックス処理サブシステム320に伝える。上述した実施形態と同様に、グラフィックス処理サブシステム320は、ポステッドライト操作315を完了させるために第2のデータ325を取り出す必要がある。
[0033]ポステッドライト操作315によってブロックされるデータバスを介して第2のデータを取り出そうとするときに起こるデッドロックの問題を回避するために、コンピュータシステム300の実施形態は、ローカルメモリ330を含む。一実施形態では、ローカルメモリ330は、個別のデータバスを介してグラフィックス処理サブシステム320と通信する。ローカルメモリ330は、ポステッドライト操作315を完了するためにグラフィックス処理サブシステムが必要とする第2のデータ325を格納する。ローカルメモリ330は、第1のデータ310が関与しているポステッドライト操作の完了に使用される第2のデータ325を格納する必要があるため、ローカルメモリ330を少量のメモリとすることによって、統合メモリアーキテクチャの利点の多くを保持することができる。
[0034]CPU305とグラフィックス処理サブシステムとの間の第1のデータバスを介してポステッドライト操作315がグラフィックス処理サブシステム320に伝えられるのに応じて、グラフィックス処理サブシステム320は、個別のデータバスを介して第2のデータ325の要求335をロ―カルメモリ330に送信する。ローカルメモリ330からの応答340は、個別のデータバスを介して第2のデータ325を戻す。
[0035]ローカルメモリ330から取り出された第2のデータ325を使用して、グラフィックス処理サブシステム320は、第1のデータ310のポステッドライト操作315を完了させるのに必要な情報を決定する。例えば、ポステッドライト操作315が第1のデータ310をグラフィックスメモリに書き込もうとしている場合、第2のデータ325は、グラフィックスメモリ内の線形メモリアドレスを、システムメモリ355内の対応するページ化メモリアドレスに変換するために使用されるアドレス変換テーブルの一部分とすることができる。次いで、グラフィックス処理サブシステム320は、345で、第1のデータ310をグラフィックスメモリ350に書き込むことができ、グラフィックスメモリ350は、コンピュータシステム300の統合メモリアーキテクチャでは、システムメモリ355の一部分に配置される。これによって、ポステッドライト操作315が完了し、追加操作のためにCPU305とグラフィックス処理サブシステム320との間のデータバスが解放される。
[0036]別の実施例では、第1のデータ310は、グラフィックス処理サブシステム320のコンテキスト切替コマンドを含み得る。この実施例では、CPU305は、ポステッドライト操作315を介して、コンテキスト切替コマンドを含む第1のデータ310をグラフィックス処理サブシステム320に伝える。これに応じて、グラフィックス処理サブシステム320は、この実施例ではコンテキスト状態情報を含む第2のデータ325をローカルメモリ330から取り出す。次いで、第2のデータ325は、第1のデータ310に含まれているコンテキスト切替コマンドに従ってコンテキストを切り替えるために、グラフィックス処理サブシステム320によって使用され、それによって、ポステッドライト操作315が完了し、追加の操作のためにCPU305とグラフィックス処理サブシステム320との間のデータパスが解放される。
[0037]統合メモリアーキテクチャを備えるグラフィックス処理サブシステムを実装する別の問題は、選択式のメモリアクセスに関連するオーバーヘッドが高いことである。グラフィックス処理サブシステムは、一般に、画像データの大きい連続ブロックではなく、少数のまばらに分散されているピクセスの画像データを書き込み、または更新する。逆に、コンピュータシステムは、大きい連続ブロックでアクセスされるようにそのシステムメモリを最適化する。こうした差に対処するために、PCI−Expressなど多くのデータバス標準によって、メモリに書き込まれるデータに加えて、バイトイネーブルデータを含むことができる。バイトイネーブルデータは、データのブロックの部分がシステムメモリに書き込まれないようにマスクオフする。バイトイネーブルデータの使用によって、装置は、少数のまばらに分散されているピクセルの更新のみを行いながら、データの大きい連続ブロックをシステムメモリに送信することができる。
[0038]データのブロックの部分がメモリに書き込まれないように選択的にマスキングするためにバイトイネーブルデータを含むにもかかわらず、選択的なメモリアクセスは、依然として、かなりのオーバーヘッドを必要とする。一例として、図4Aは、PCI−Express標準に従ってフォーマットされたデータの標準パケット400を示している。パケット400は、ヘッダー405およびボディ410を含む。ボディ410は、データバスを介して、グラフィックス処理サブシステムなどのある装置から、コンピュータのシステムメモリに関連付けられているメモリコントローラなどの別の装置に伝えられるデータを含む。ヘッダー405は、パケット400をその目的の宛先に向けるための情報を含む。
[0039]標準パケット400のヘッダー405は、バイトイネーブルデータ415も含む。PCI−Express標準によれば、バイトイネーブルデータ415は、8ビットのマスク値である。バイトイネーブルデータ415によって、ボディ410内のデータの最初の4バイト420およびデータの最後の4バイト425をバイトイネーブルデータ415の値に従って選択的にマスキングできるようにする。例えば、バイトイネーブルデータ415の最初のビットが「0」である場合、ボディ410の最初のバイトは、宛先装置に書き込まれない。逆に、バイトイネーブルデータ415内のあるバイトを「1」に設定することによって、ボディ410内の対応するバイトを宛先装置に書き込むことができる。しかし、バイトイネーブルデータ415は、ボディの最初の4バイト420および最後の4バイト425の選択的なマスキングを可能にするだけである。PC−Express標準によれば、ボディ410のデータの中央のバイト430は、全部宛先装置に書き込まれるはずである。
[0040]PCI−Express標準がバイトイネーブルデータを8ビット値に制限するため、任意にマスキングされた画像データを書き込もうとすると、グラフィックス処理サブシステムは、厳しく制限される。グラフィックス処理サブシステムは、パケットボディの任意のバイトを選択的にマスキングする能力をしばしば必要とする。しかし、標準PCI−Expressパケットを使用するとき、グラフィックス処理サブシステムは、一度に最高8バイトしかマスキングできない。したがって、標準PCI−Expressパケットを使用する際、グラフィックス処理サブシステムは、任意のバイトのマスキングが要求されるとき、8バイトのボディのパケットに制限される。グラフィックス処理サブシステムは、より大きいデータ群の任意のバイトのマスキングを必要とする場合、データのブロックを8バイト以下の部分に分割し、各部分に個別のPCI−Expressパケットを使用する必要がある。
[0041]8バイトのボディのPCI−Expressパケットを使用することは、データバス帯域幅を非常に無駄遣いする。一般のPCI−Expressヘッダーが20バイト長であるため、パケットボディ内の8バイトのデータを送信することは、合計28バイトを必要とする。この無駄の多いオーバーヘッドは、グラフィックス処理サブシステムがより大きいデータ群の任意のバイトのマスキングを必要とするとき、悪化する。例えば、任意のバイトのマスキングによる32バイトのデータ群の送信には、個別の標準PCI−Expressパケットが4つ必要であり、合計112バイトのバス帯域幅を消費する。
[0042]図4Bは、本発明の一実施形態による、データバスを介して通信するために任意のバイトのマスキングを可能にする改良されたPCI−Expressパケット450を示している。PCI−Express標準は、ベンダー定義のパケットの定義を可能にする。宛先装置が非標準パケットヘッダーを解釈することができることを条件に、ベンダー定義のパケットは、非標準パケットヘッダーを有することができる。図4Bは、非標準ヘッダー455およびボディ460を含むベンダー定義のパケット450を示している。標準PCI−Expressパケットと同様に、ボディ460は、ある装置から別の装置にデータバスを介して通信されるデータを含む。ヘッダー455は、パケット450をその目的の宛先に向けるための情報を含む。
[0043]非標準ヘッダー455は、拡張バイトイネーブルデータ465も含む。一実施形態では、拡張バイトイネーブルデータ465は、ボディ460内の任意のバイトの任意のマスキングを可能にするのに十分なビットを含む。別の実施形態では、拡張バイトイネーブルデータ465のバイト数は、ボディ465のバイト数に等しい。一実装形態例では、拡張バイトイネーブルデータ465は、32ビットであり、ボディ460の最高32ビットまでのデータが選択的にマスキングされるのを可能にする。
[0044]宛先装置はパケット450の非標準ヘッダー455を適切に解釈することができなければならないため、本発明の一実施形態は、グラフィックス処理サブシステムに関連付けられている装置ドライバを使用して、コンピュータシステムNorthbridgeまたはCPUと統合することができるコンピュータのシステムメモリコントローラがパケット460の非標準ヘッダー455との互換性があるかどうかを検出する。システムメモリコントローラに互換性がある場合、グラフィックス処理サブシステムは、システムメモリに書き込まれるデータを選択的にマスキングするために、パケット450のフォーマットを使用するように指示される。逆に、システムメモリコントローラに互換性がない場合、装置ドライバは、システムメモリに書き込まれるデータを選択的にマスキングするために、標準PCI−Expressパケット400のフォーマットを使用するようグラフィックス処理サブシステムに指示する。
[0045]図5Aおよび5Bは、本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す。一般に、画像データの2次元アレイは、システムまたはグラフィックスメモリに、末端同士接続された一連の行または列として構成されている。例えば、メモリ内のフレームバッファは、画像内のピクセルの第1の行のすべての画像データで始まり、画像内のピクセルの第2の行のすべての画像データ、次いで画像内のピクセルの第3の行のすべての画像データが続くなど、以下同様に続く。
[0046]画像データのこの構成は、画像の2次元座標のメモリの対応する位置への変換を簡単にするが、統合メモリアーキテクチャのための追加のデータバス帯域幅を必要とする。グラフィックス処理サブシステムは、高度な2次元局所性でグラフィックスメモリにアクセスする。例えば、グラフィックス処理システムは、いずれも同じ行および近くの行にある所与の1つのピクセルおよび近くのピクセルの画像データを同時に作成することができる。
[0047]引き続きこの例で、上述した線形メモリ構成を使用するとき、異なる行の隣接するピクセル間のシステムメモリにおける距離は、何百または何千バイトも離れている。上述したように、この距離は、特に、パケットヘッダー内のバイトイネーブルデータのサイズがパケットボディの長さを制限する従来の実装形態では、データバスパケットに許容されるサイズより大きいため、グラフィックス処理サブシステムは、隣接するピクセル群の画像データを書き込むには、データバスを介して複数の小さいパケットをシステムメモリに送信する必要がある。1つの大きいパケットではなく、複数の小さいパケットを使用することによって被るデータバスのオーバーヘッドは、コンピュータシステムの性能および効率を低下させる。
[0048]図5Aおよび5Bは、本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す。グラフィックス処理サブシステムによって生成された画像データの2次元の局所性を活用するために、本発明の一実施形態は、画像データを1組のタイルとして構成する。各タイルは、ピクセルの2次元アレイの画像データを含む。図5Aは、画像500の一部分を示している。画像500は、タイル505、510、および515を含めて、いくつかのタイルに分割される。図5Aの一実施形態では、各タイルは、4×4アレイのピクセルを含む。しかし、代替の実施形態において、任意の数のピクセルを有する正方形のタイルおよび非正方形のタイルを使用してもよい。図5Aで、各ピクセルは、画像500におけるピクセルの行および列でラベル付けされている。例えば、タイル505は、画像500の最初の4行のそれぞれに最初の4つのピクセルを含む。
[0049]図5Bは、本発明の一実施形態によるシステムメモリに構成されている画像500の一部分を表す画像データ550を示している。この実施形態では、各タイルの画像データは、システムメモリに連続的に格納される。例えば、システムメモリの一部分555は、タイル505のすべてのピクセルの画像データを格納する。一実施形態では、タイル505の画像データの後に、タイル510のすべてのピクセルの画像データを格納するシステムメモリの一部分560がある。あるいは、システムメモリの一部分560は、タイル515のすべてのピクセルの画像データを格納してもよい。
[0050]画像データをピクセルの2次元タイルの組として格納することによって、隣接する行のピクセル間のシステムメモリにおける距離は、特に同じタイルに両方のピクセルが存在する場合、短縮される。その結果、グラフィックス処理サブシステムは、単一の書き込み操作を使用して、データバスを介して近くのピクセルの組をシステムメモリに書き込むことが頻繁にできるようになる。
[0051]別の実施形態では、画像データのシステムメモリにおけるタイルとしての構成は、グラフィックス処理システムおよび/またはCPUの一部分に対して隠されている。代わりに、ピクセルは、上述したように、走査線ごとにフレームバッファに構成されている仮想アドレスによって参照される。グラフィックス処理サブシステムのタイルアドレス変換部分は、仮想アドレスを使用して、メモリアクセス要求を、システムメモリ内に格納されている画像データのタイル構成への1つまたは複数のアクセス要求に変換する。
[0052]図6Aおよび6Bは、本発明の一実施形態による、画像データにアクセスする一例を示す。図6Aは、画像例600の一部分を示している。画像例600は、タイル605、610、615、および620を含む。範囲625は、グラフィックス処理サブシステムによってアクセスされる1組のピクセル例に相当する。この例では、範囲625は、タイル605および610の部分に及ぶ。一実施形態では、範囲625は、1つまたは複数の仮想アドレスを使用して参照される。
[0053]範囲625に対応する画像データを取り出すには、グラフィックス処理サブシステムは、範囲625の参照に使用される1つまたは複数の仮想メモリアドレスを、1つまたは複数のシステムメモリアドレスに変換する。一実施形態では、タイル変換テーブルは、仮想メモリアドレスとシステムメモリアドレスとの間の変換に使用される。次いで、グラフィックス処理サブシステムは、所望の画像データを含む1つまたは複数のタイルのすべてまたは一部分を取り出す。
[0054]図6Bは、上述した範囲625に対応する画像データを含むシステムメモリ600の一部分を示す。システムメモリ600の一部分は、タイル605に対応する画像データ605、およびタイル610に対応する画像データ610を含む。画像データ605内の画像データのサブセット615は、タイル605内の範囲625の部分に対応する。同様に、画像データ610内の画像データのサブセット620は、タイル610内の範囲625の部分に対応する。
[0055]一実施形態では、グラフィックス処理サブシステムは、画像の要求された範囲を含む1つまたは複数のタイルを識別する。次いで、グラフィックス処理サブシステムは、識別されたタイルのそれぞれを取り出し、要求された範囲外の画像データを破棄する。次いで、画像データの残りの部分は、グラフィックス処理サブシステムによって、画像の要求された範囲に対応する連続する1組の画像データにアセンブルされる。あるいは、グラフィックス処理サブシステムは、識別された各タイルの要求された部分のみを取り出すことができる。この実施形態では、グラフィックス処理サブシステムは、いくつかの非連続メモリアクセスを使用して、画像の連続する範囲に対応する画像データを取り出すことができる。
[0056]グラフィックス処理サブシステムは、画像をレンダリングするために画像データを読み取ったり書き込んだりすることを含めて、いくつかの異なる目的のためにタイル構成でシステムメモリに格納された画像の範囲にアクセスすることができる。一実施形態では、グラフィックス処理サブシステムは、表示すべき画像を、スキャンアウトの前に、上述したローカルメモリ330などのローカルメモリに転送する。本発明の代替実施形態によって、グラフィックス処理サブシステムは、レンダリング済み画像をシステムメモリから表示装置に転送することができる。すなわちスキャンアウトと呼ばれるプロセスである。スキャンアウトは、一般に、画像データが正確な時間間隔で表示装置に伝えられることを必要とする。グラフィックス処理サブシステムが、例えば、システムメモリから画像データを取り出すのが遅れることによるなど、画像データを適切な時に表示装置に伝えることができない場合、ティアリングなど、視覚的なアーティファクトが生成される。
[0057]一般に、画像データは、行ごとに表示装置に伝えられる。一実施形態では、グラフィックス処理サブシステムは、行が表示装置に伝えられる前に、画像の1行または複数行の画像データを取り出す。図7Aは、この実施形態の適用例を示している。図7Aは、画像700を示している。一実施形態では、画像は、上述したようにいくつかのタイルに分割される。グラフィックス処理サブシステムは、表示装置に画像700の行705を伝える。行705が表示装置に伝えられている間に、グラフィックス処理サブシステムは、例えば行710および/または行715など、画像700のその後の行の画像データをシステムメモリから取り出す。
[0058]図7Bは、画像データを表示装置に伝えるために使用されるグラフィックス処理サブシステムの一部分の例730の動作を示す。一部分730は、画像データを、表示装置740に伝えられる表示信号に変換するように構成されているスキャンアウトユニット735を含む。スキャンアウトユニット735によって出力された表示信号は、デジタル信号またはアナログ信号とすることができる。
[0059]一実施形態では、スキャンアウトユニットは、システムメモリからタイルフォーマットの画像データを取り出す。画像データの各タイルは、画像の一部分の画像データの2行以上を含んでいるため、スキャンアウトユニット735は、取り出された各タイルの部分から画像の所望の行をアセンブルする。例えば、行705の画像データは、タイル707の画像データ760の部分745、タイル709の画像データ765の部分750、タイル711の画像データ770の部分755を含めて、いくつかの異なるタイルの部分からアセンブルすることができる。一実施形態では、取り出されたタイルの未使用の部分は破棄される。
[0060]代替の実施形態では、スキャンアウトユニット735が1組のタイルから所与の行の画像データを取り出す間に、スキャンアウトユニット735は、画像のその後の1行または複数行の画像データの格納も行う。これによって、スキャンアウトのためにシステムメモリにアクセスする回数が低減し、したがって、グラフィックス処理サブシステムの効率および性能が向上する。
[0061]図7Cは、この代替実施形態の実装形態例771の動作を示している。この例では、スキャンアウトユニット736は、スキャンアウトユニット736によって望まれる行を含む画像データのタイルをシステムメモリから取り出す。スキャンアウトユニットは、取り出された各タイルの適切な部分からの所望の行をアセンブルする。例えば、行705の画像データは、部分745、750、および755を含めて、異なるタイルのいくつかの部分からアセンブルすることができる。
[0062]所望の行の画像データがいくつかのタイルの部分からアセンブルされる間に、その後の1行または複数行の画像データが1つまたは複数の走査線キャッシュに格納される。例えば、例えば行710など、所望の行に続く最初の行の画像データが走査線キャッシュ790に格納される。その後の最初の行の画像データは、タイル部分772、774、および776を含み得る。同様に、タイル部分778および780を含むその後の第2の行の画像データが走査線キャッシュ788に格納される。タイル部分782、783、および784を含むその後の第3の行の画像データが走査線キャッシュ785に格納される。
[0063]したがって、その後の行について、走査線ユニット736は、適切な走査線キャッシュから次の所望の行の画像データを取り出すことができる。一実施形態では、所与の画像について、走査線ユニット735がシステムメモリから各タイルを一度だけ読み取ればよいように、画像のタイル内の画像データの各行に対応する走査線キャッシュが存在する。代替の実施形態では、グラフィックス処理サブシステムのハードウェアの複雑性を低減するために、走査線キャッシュがより少なくてもよい。
[0064]本発明は、システムメモリを、画像のレンダリングおよびスキャンアウトのためのそのグラフィックスメモリとして使用することができるグラフィックス処理サブシステムを提供する。本発明は、コンピュータグラフィックスサブシステムを参照して説明してきたが、本発明は、音声構成要素および通信構成要素を含めて、コンピュータシステムの他の構成要素に適用可能である。本発明は、その特定の例および実施形態に関して説明してきたが、これらは単に本発明の例示にすぎず、制限的なものではない。したがって、本発明の範囲は、特許請求の範囲によってのみ決定されるものとする。
本発明の一実施形態の実施に適したコンピュータシステムを示すブロック図である。 本発明の一実施形態によるシステムデッドロックを防ぐ一般的な技術を示す図である。 本発明の別の一実施形態によるシステムデッドロックを防ぐ一般的な技術を示す図である。 本発明の一実施形態によるデータバスを介してメモリに選択的にアクセスするシステムを示す図である。 本発明の一実施形態によるデータバスを介してメモリに選択的にアクセスするシステムを示す図である。 本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す図である。 本発明の一実施形態による、システムメモリにおいて表示情報を整理して、レンダリング性能を向上させるシステムを示す図である。 本発明の一実施形態による表示情報にアクセスするシステムを示す図である。 本発明の一実施形態による表示情報にアクセスするシステムを示す図である。 本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。 本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。 本発明の実施形態による、システムメモリ内の表示情報を表示装置に出力するシステムを示す図である。

Claims (21)

  1. データのレンダリングに応じてレンダリング済み画像の画像データを作成するように構成されているレンダリングユニットと、
    データバスを介してコンピュータシステムのシステムメモリ装置に接続されるように構成されているデータバスインターフェイスと
    を備えるグラフィックス処理サブシステムであって、
    前記グラフィックス処理サブシステムに関連付けられているグラフィックスメモリへの第1のデータの書き込み操作に応じて、前記グラフィックス処理サブシステムが、前記第1のデータの前記書き込み操作を完了させるのに必要な第2のデータを取り出し、前記システムメモリ内の前記第1のデータの宛先を前記第2のデータから決定し、前記第1のデータの前記書き込み操作を前記システムメモリ内の前記第1のデータの前記宛先に向け直すように構成されている
    グラフィックス処理サブシステム。
  2. 前記システムメモリ内の前記第1のデータの前記宛先が、前記グラフィックス処理サブシステムに関連付けられている前記グラフィックスメモリとして指定される前記システムメモリの一部内にある、請求項1に記載のグラフィックス処理サブシステム。
  3. 前記データバスの第1の仮想チャネルから前記データバスインターフェイスを介して前記第1のデータの前記書き込み操作を受信し、前記データバスの第2の仮想チャネルを使用して、前記データバスインターフェイスを介してシステムメモリから前記第2のデータを取り出すようにさらに構成されている、請求項1に記載のグラフィックス処理サブシステム。
  4. 前記グラフィックス処理サブシステムに接続されているローカルメモリから前記第2のデータを取り出すようにさらに構成されている、請求項1に記載のグラフィックス処理サブシステム。
  5. 前記第2のデータが、アドレス変換情報を含み、前記グラフィックス処理サブシステムが、前記グラフィックスメモリに関連付けられている仮想アドレスをシステムメモリ内の対応する宛先に変換するように構成されている、請求項1に記載のグラフィックス処理サブシステム。
  6. 前記第2のデータが、コンテキスト状態情報を含み、前記グラフィックス処理サブシステムが、前記第1のデータに応じてコンテキスト切替を行うように構成されている、請求項1に記載のグラフィックス処理サブシステム。
  7. 画像のある位置に対応する仮想メモリアドレスを、システムメモリ内の画像データのタイル構成内のメモリアドレスに変換するように構成されているタイルアドレス変換ユニット
    をさらに備える、請求項1に記載のグラフィックス処理サブシステム。
  8. 前記タイルアドレス変換ユニットが、画像の連続部分に対応するある範囲の仮想メモリアドレスに応じて、前記データバス上で前記データバスインターフェイスを介して複数のシステムメモリアクセスを開始するようにさらに構成されている、請求項7に記載のグラフィックス処理サブシステム。
  9. 前記複数のシステムメモリアクセスが、システムメモリの非連続部分に対するものである、請求項8に記載のグラフィックス処理サブシステム。
  10. 前記データバスインターフェイスが、前記システムメモリに関連付けられているメモリコントローラが前記第1のデータパケットタイプとの互換性があることを示す指示に応じて、第1のデータパケットタイプのデータパケットを使用して、前記データバスを介して第3のデータを前記システムメモリに伝え、前記メモリコントローラが前記第1のデータパケットタイプと互換性がないことを示す指示に応じて、第2のデータパケットタイプの複数のデータパケットを使用して、前記データバスを介して前記第3のデータを前記システムメモリに伝えるように構成されている、請求項1に記載のグラフィックス処理サブシステム。
  11. 前記第1のデータパケットタイプが拡張バイトイネーブルデータを含む、請求項10に記載のグラフィックス処理サブシステム。
  12. レンダリング済み画像に対応する表示信号を表示装置に伝えるように構成されている表示装置コントローラをさらに含む、請求項1に記載のグラフィックス処理サブシステム。
  13. 前記表示装置コントローラが、前記グラフィックス処理サブシステムに接続されているローカルメモリから前記レンダリング済み画像に対応する画像データを取り出すように構成されている、請求項12に記載のグラフィックス処理サブシステム。
  14. 前記表示装置コントローラが、前記システムメモリから前記レンダリング済み画像に対応する画像データを取り出すように構成されている、請求項12に記載のグラフィックス処理サブシステム。
  15. 前記表示装置コントローラが、前記システムメモリ内の画像データのタイル構成から前記レンダリング済み画像の第1の行に対応する第1の画像データを取り出し、前記第1の画像データを前記表示装置に伝えるように構成されている、請求項14に記載のグラフィックス処理サブシステム。
  16. 前記表示装置コントローラが、前記レンダリング済み画像の前記第1の行を含む前記レンダリング済み画像の1組のタイルに対応する1組の画像データを前記システムメモリから取り出すように構成されている、請求項15に記載のグラフィックス処理サブシステム。
  17. 前記表示装置コントローラが、画像データの前記第1の行を含まない、前記1組の画像データの一部分を破棄するように構成されている、請求項16に記載のグラフィックス処理サブシステム。
  18. 前記表示装置コントローラが、前記1組のタイルに含まれ、前記レンダリング済み画像の少なくとも1つの追加行に対応する第2の画像データを格納するように構成されている画像データキャッシュを含み、
    前記表示装置コントローラが、前記第1の画像データを取り出した後、前記画像データキャッシュから前記第2の画像データを取り出し、前記第2の画像データを前記表示装置に伝えるように構成されている
    請求項16に記載のグラフィックス処理サブシステム。
  19. システムメモリ内の画像データのタイル構成からレンダリング済み画像の第1の行に対応する第1の画像データを取り出し、前記第1の画像データを表示装置に伝えるように構成されている表示装置コントローラを備える、グラフィックス処理サブシステム。
  20. 前記表示装置コントローラが、画像データの前記第1の行を含まない、前記1組の画像データの一部分を破棄するように構成されている、請求項19に記載のグラフィックス処理サブシステム。
  21. 前記表示装置コントローラが、前記1組のタイルに含まれ、前記レンダリング済み画像の少なくとも1つの追加行に対応する第2の画像データを格納するように構成されている画像データキャッシュを含み、
    前記表示装置コントローラが、前記第1の画像データを取り出した後、前記画像データキャッシュから前記第2の画像データを取り出し、前記第2の画像データを前記表示装置に伝えるように構成されている、請求項19に記載のグラフィックス処理サブシステム。
JP2007510913A 2004-04-27 2005-04-26 システムメモリへのgpuのレンダリング Active JP4926947B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/833,694 2004-04-27
US10/833,694 US20050237329A1 (en) 2004-04-27 2004-04-27 GPU rendering to system memory
PCT/US2005/014368 WO2005104740A2 (en) 2004-04-27 2005-04-26 Gpu rendering to system memory

Publications (2)

Publication Number Publication Date
JP2007535006A true JP2007535006A (ja) 2007-11-29
JP4926947B2 JP4926947B2 (ja) 2012-05-09

Family

ID=35135944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007510913A Active JP4926947B2 (ja) 2004-04-27 2005-04-26 システムメモリへのgpuのレンダリング

Country Status (8)

Country Link
US (1) US20050237329A1 (ja)
EP (1) EP1741089B1 (ja)
JP (1) JP4926947B2 (ja)
CN (1) CN1950878B (ja)
CA (1) CA2564601A1 (ja)
DE (1) DE602005018623D1 (ja)
TW (1) TWI390400B (ja)
WO (1) WO2005104740A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140480A (ja) * 2008-12-12 2010-06-24 Nvidia Corp Cpuトラフィックを特殊とマークすることによるデッドロックの回避
JP2012238158A (ja) * 2011-05-11 2012-12-06 Canon Inc データ転送装置及びデータ転送方法
JP2013534680A (ja) * 2010-07-15 2013-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Pciエクスプレス適合デバイスの資源にアクセスするためのシステム及び方法
JP2015176569A (ja) * 2014-03-18 2015-10-05 日本電気株式会社 情報処理装置、描画方法、及びプログラム

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8497865B2 (en) 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
EP1687732A4 (en) 2003-11-19 2008-11-19 Lucid Information Technology Ltd METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US20090027383A1 (en) 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US20080079737A1 (en) 2003-11-19 2008-04-03 Reuven Bakalash Multi-mode parallel graphics rendering and display system supporting real-time detection of mode control commands (MCCS) programmed within pre-profiled scenes of the graphics-based application
JP4244028B2 (ja) * 2004-09-22 2009-03-25 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
EP1681656A1 (en) * 2005-01-18 2006-07-19 Oculus Info Inc. System and method for processing map data
EP1846834A2 (en) 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphics processing and display system employing multiple graphics cores on a silicon chip of monolithic construction
US20080143731A1 (en) * 2005-05-24 2008-06-19 Jeffrey Cheng Video rendering across a high speed peripheral interconnect bus
US7730336B2 (en) * 2006-05-30 2010-06-01 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods
US7444583B2 (en) * 2005-05-27 2008-10-28 Microsoft Corporation Standard graphics specification and data binding
US7619628B2 (en) * 2005-06-24 2009-11-17 Microsoft Corporation Caching digital image data
US7554550B2 (en) * 2005-06-24 2009-06-30 Microsoft Corporation Non-destructive processing of digital image data
US7535433B2 (en) * 2006-05-18 2009-05-19 Nvidia Corporation Dynamic multiple display configuration
US8555099B2 (en) * 2006-05-30 2013-10-08 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods
US7986327B1 (en) * 2006-10-23 2011-07-26 Nvidia Corporation Systems for efficient retrieval from tiled memory surface to linear memory display
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
TWI328198B (en) * 2006-12-11 2010-08-01 Via Tech Inc Gpu context switching system
TWI372352B (en) 2008-01-04 2012-09-11 Asustek Comp Inc Method for assisting in calculation of data using display card
US8245011B2 (en) * 2008-02-08 2012-08-14 Texas Instruments Incorporated Method and system for geometry-based virtual memory management in a tiled virtual memory
US8849190B2 (en) 2009-04-21 2014-09-30 Andrew Llc Radio communication systems with integrated location-based measurements for diagnostics and performance optimization
US9793982B2 (en) 2009-04-21 2017-10-17 Commscope Technologies Llc System for automatic configuration of a mobile communication system
US9189242B2 (en) * 2009-09-24 2015-11-17 Nvidia Corporation Credit-based streaming multiprocessor warp scheduling
US8669990B2 (en) 2009-12-31 2014-03-11 Intel Corporation Sharing resources between a CPU and GPU
US8537169B1 (en) 2010-03-01 2013-09-17 Nvidia Corporation GPU virtual memory model for OpenGL
CN101976183B (zh) * 2010-09-27 2012-02-22 广东威创视讯科技股份有限公司 一种多窗口图像同时更新时图像更新的方法及装置
US8683135B2 (en) * 2010-10-31 2014-03-25 Apple Inc. Prefetch instruction that ignores a cache hit
CN102096897B (zh) * 2011-03-17 2012-05-02 长沙景嘉微电子有限公司 基于分块渲染的gpu中块存储策略的实现
CN102270095A (zh) * 2011-06-30 2011-12-07 威盛电子股份有限公司 多重显示器控制方法及其系统
US8830246B2 (en) * 2011-11-30 2014-09-09 Qualcomm Incorporated Switching between direct rendering and binning in graphics processing
US9305324B2 (en) * 2012-12-21 2016-04-05 Nvidia Corporation System, method, and computer program product for tiled deferred shading
US9495721B2 (en) * 2012-12-21 2016-11-15 Nvidia Corporation Efficient super-sampling with per-pixel shader threads
EP2775695B1 (en) * 2013-03-07 2016-08-17 ABB Schweiz AG Mobile device with context specific transformation of data items to data images
EP3014456A4 (en) * 2013-06-24 2017-01-18 Intel Corporation Page management approach to fully utilize hardware caches for tiled rendering
US8719374B1 (en) 2013-09-19 2014-05-06 Farelogix, Inc. Accessing large data stores over a communications network
GB2521151B (en) 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configurable thread ordering for a data processing apparatus
GB2521155B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
CN105427236A (zh) * 2015-12-18 2016-03-23 魅族科技(中国)有限公司 一种图像渲染方法及装置
CN105678680A (zh) * 2015-12-30 2016-06-15 魅族科技(中国)有限公司 一种图像处理的方法和装置
US10282808B2 (en) * 2016-05-27 2019-05-07 Intel Corporation Hierarchical lossless compression and null data support
US10417733B2 (en) * 2017-05-24 2019-09-17 Samsung Electronics Co., Ltd. System and method for machine learning with NVMe-of ethernet SSD chassis with embedded GPU in SSD form factor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212654A (ja) * 1996-02-06 1997-08-15 Sony Computer Entertainment:Kk 描画装置及び描画方法
US6665788B1 (en) * 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104417A (en) * 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
US5907330A (en) * 1996-12-18 1999-05-25 Intel Corporation Reducing power consumption and bus bandwidth requirements in cellular phones and PDAS by using a compressed display cache
US6195734B1 (en) * 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6075546A (en) * 1997-11-10 2000-06-13 Silicon Grahphics, Inc. Packetized command interface to graphics processor
US6275243B1 (en) * 1998-04-08 2001-08-14 Nvidia Corporation Method and apparatus for accelerating the transfer of graphical images
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
WO2002015470A2 (en) * 2000-08-17 2002-02-21 Advanced Micro Devices, Inc. System and method for separate virtual channels for posted requests in a multiprocessor system
US20020083254A1 (en) * 2000-12-22 2002-06-27 Hummel Mark D. System and method of implementing interrupts in a computer processing system having a communication fabric comprising a plurality of point-to-point links
US6847370B2 (en) * 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
US7009618B1 (en) * 2001-07-13 2006-03-07 Advanced Micro Devices, Inc. Integrated I/O Remapping mechanism
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212654A (ja) * 1996-02-06 1997-08-15 Sony Computer Entertainment:Kk 描画装置及び描画方法
US6665788B1 (en) * 2001-07-13 2003-12-16 Advanced Micro Devices, Inc. Reducing latency for a relocation cache lookup and address mapping in a distributed memory system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140480A (ja) * 2008-12-12 2010-06-24 Nvidia Corp Cpuトラフィックを特殊とマークすることによるデッドロックの回避
US8392667B2 (en) 2008-12-12 2013-03-05 Nvidia Corporation Deadlock avoidance by marking CPU traffic as special
JP2013534680A (ja) * 2010-07-15 2013-09-05 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Pciエクスプレス適合デバイスの資源にアクセスするためのシステム及び方法
JP2012238158A (ja) * 2011-05-11 2012-12-06 Canon Inc データ転送装置及びデータ転送方法
JP2015176569A (ja) * 2014-03-18 2015-10-05 日本電気株式会社 情報処理装置、描画方法、及びプログラム

Also Published As

Publication number Publication date
EP1741089B1 (en) 2009-12-30
CN1950878A (zh) 2007-04-18
EP1741089A2 (en) 2007-01-10
WO2005104740A3 (en) 2006-09-21
DE602005018623D1 (de) 2010-02-11
JP4926947B2 (ja) 2012-05-09
WO2005104740A2 (en) 2005-11-10
CN1950878B (zh) 2010-06-16
CA2564601A1 (en) 2005-11-10
EP1741089A4 (en) 2008-01-16
TW200620151A (en) 2006-06-16
US20050237329A1 (en) 2005-10-27
TWI390400B (zh) 2013-03-21

Similar Documents

Publication Publication Date Title
JP4926947B2 (ja) システムメモリへのgpuのレンダリング
US6658531B1 (en) Method and apparatus for accessing graphics cache memory
US7456835B2 (en) Register based queuing for texture requests
US7589741B1 (en) Processing high numbers of independent textures in a 3-D graphics pipeline
US6473086B1 (en) Method and apparatus for graphics processing using parallel graphics processors
US6097402A (en) System and method for placement of operands in system memory
US6911983B2 (en) Double-buffering of pixel data using copy-on-write semantics
JP3350043B2 (ja) 図形処理装置及び図形処理方法
US6331854B1 (en) Method and apparatus for accelerating animation in a video graphics system
US20090307406A1 (en) Memory Device for Providing Data in a Graphics System and Method and Apparatus Thereof
US6157384A (en) Apparatus and method for drawing
EP0883065B1 (en) Non-blocking pipelined cache
EP1721298A2 (en) Embedded system with 3d graphics core and local pixel buffer
US20030011592A1 (en) Index processor
JP2002117412A (ja) 画像処理システム、デバイス、方法及びコンピュータプログラム
JP2003323339A (ja) メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体
US20050275665A1 (en) System and method for efficiently supporting image rotation modes by utilizing a display controller
JPS58136093A (ja) 表示制御装置
JP2007026473A (ja) 描画装置及び描画方法
JPH0727556B2 (ja) バスアクセス方式
JPH05257793A (ja) 計算機システム
JPH07199907A (ja) 表示制御装置
JP2000200078A (ja) 画像デ―タ処理装置およびその処理方法
JPS62257563A (ja) デ−タ転送制御装置
GB2352380A (en) Random access video memory control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110629

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110822

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4926947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250