(57)【要約】一実施形態により、コンピュータ・システムを開示する。このコンピュータ・システムは、グラフィックス・アクセラレータとそのグラフィックス・アクセラレータに結合されたグラフィックス・キャッシュを含む。このグラフィックス・キャッシュはテクスチャ・データ、カラー・データ、深度データを記憶する。
2004510270.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス・コア、および前記グラフィックス・コアに結合された統合型グラフィックス・キャッシュを含み、前記統合型グラフィックス・キャッシュが、テクスチャ・データ、カラー・データ、および深度データを記憶するコンピュータ・システム。
【請求項２】
前記グラフィックス・キャッシュが、テクスチャ・データを記憶するテクスチャ・キャッシュと、カラー・データと深度データを記憶するカラー／深度バッファを備える請求項１に記載のコンピュータ・システム。
【請求項３】
ＣＰＵ（中央処理装置）コアと、前記ＣＰＵコアに結合されたＣＰＵキャッシュをさらに含む請求項１に記載のコンピュータ・システム。
【請求項４】
前記ＣＰＵキャッシュおよび前記グラフィックス・キャッシュに結合されたバス・インターフェースをさらに含む請求項３に記載のコンピュータ・システム。
【請求項５】
前記グラフィックス・コアが、タイルベース・レンダリング・アーキテクチャに従って動作する請求項１に記載のコンピュータ・システム。
【請求項６】
前記バス・インターフェースに結合されたメイン・メモリをさらに含む請求項１に記載のコンピュータ・システム。
【請求項７】
前記グラフィックス・コアが、画像の多角形を拡大し、前記多角形を前記グラフィックス・キャッシュにレンダリングする請求項２に記載のコンピュータ・システム。
【請求項８】
前記画像の多角形の拡大を、ビューポート変換を介して実施する請求項７に記載のコンピュータ・システム。
【請求項９】
前記多角形がレンダリングされた後、前記グラフィックス・コアが、前記画像の多角形をダウンサンプリングする請求項７に記載のコンピュータ・システム。
【請求項１０】
前記画像の多角形の前記ダウンサンプリングが、ビット・アライン・ブロック転送を実行することによって実施される請求項９に記載のコンピュータ・システム。
【請求項１１】
画像をスーパーサンプリングするための方法であって、グラフィックス・コアで最初のタイルの多角形を受け取ることと、前記最初のタイルの多角形を統合型グラフィックス・キャッシュにレンダリングすることを含み、前記統合型グラフィックス・キャッシュが、前記画像のテクスチャ・データ、カラー・データ、深度データを記憶する方法。
【請求項１２】
グラフィックス・コアで多角形を受け取った後、前記多角形を拡大することをさらに含む請求項１１に記載の方法。
【請求項１３】
前記多角形を前記画像の元のサイズの４倍に拡大する請求項１２に記載の方法。
【請求項１４】
ビューポート変換を使用して拡大を実施する請求項１２に記載の方法。
【請求項１５】
前記多角形をレンダリングするプロセスが画像の多角形をセットアップすることと、前記画像の多角形内のピクセルをラスタ化することを含む請求項１１に記載の方法。
【請求項１６】
前記画像の多角形内のピクセルをテクスチャリングすることをさらに含む請求項１５に記載の方法。
【請求項１７】
前記多角形をレンダリングした後、前記多角形をダウンサンプリングすることをさらに含む請求項１１に記載の方法。
【請求項１８】
前記ダウンサンプリングをビット・アライン・ブロック転送を介して実施する請求項１７に記載の方法。
【請求項１９】
統合型グラフィックス・キャッシュがレンダリングすべきタイルをさらに含むかどうかを決定することと、その場合、グラフィックス・コアで画像の第２のタイルの多角形を受け取ることと、前記第２のタイルの多角形を前記統合型グラフィックス・キャッシュにレンダリングすることとをさらに含む請求項１１に記載の方法。
【請求項２０】
グラフィックス・アクセラレータと、前記グラフィックス・アクセラレータに結合された統合型グラフィックス・キャッシュとを備えており、前記統合型グラフィックス・キャッシュが、テクスチャ・データ、カラー・データ、および深度データを記憶するＣＰＵ（中央処理装置）。
【請求項２１】
前記グラフィックス・キャッシュが、テクスチャ・データを記憶するテクスチャ・キャッシュと、カラー・データと深度データを記憶するカラー／深度バッファとを備える請求項２０に記載のＣＰＵ。
【請求項２２】
ＣＰＵコアと、前記ＣＰＵコアに結合されたＣＰＵキャッシュとをさらに備える請求項２０に記載のＣＰＵ。
【請求項２３】
前記ＣＰＵキャッシュおよび前記グラフィックス・キャッシュに結合されたバス・インターフェースをさらに備える請求項２２に記載のＣＰＵ。
【請求項２４】
前記グラフィックス・アクセラレータが、タイルベース・レンダリング・アーキテクチャに従って動作する請求項２３に記載のＣＰＵ。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、コンピュータ・システムに関する。さらに詳細には、本発明は、３次元グラフィックス処理に関する。
【０００２】
（背景）
コンピュータが生成するグラフィックスは、一般に産業、事務、教育および娯楽の様々な分野で使用される。コンピュータ・グラフィックスは、表示モニタ上のピクセルによって表される。しかし、表示装置には、限られた数のピクセルしか含まれていないので、しばしばエイリアシングが生じる。アナログ・データをデジタル形式で表す必要から引き起こされるエイリアシングにより、表示された画像の端部がギザギザになる。
【０００３】
エイリアシングを少なくするために使用される技法の適用は、通常、アンチエイリアシングと呼ばれる。フルシーン・アンチエイリアシングに使用される一技法は、スーパーサンプリングとして知られている。スーパーサンプリングは、元のグラフィックス・シーンを高解像度でレンダリングし、その後、元の表示解像度にフィルタ・ダウンする手法である。したがって、スーパーサンプリングは、本質的に、エイリアシング効果をより高い空間周波数にシフトする。
【０００４】
しかし、スーパーサンプリング技法を使用中、コンピュータ・システムによって生じるパフォーマンス上の欠陥がある。スーパーサンプリングに関する問題点は、画像を高解像度でレンダリングし、その後その画像をフィルタ・ダウンするため、追加の処理が必要で、その上余分な記憶装置と帯域幅が必要になることである。たとえば、表示装置の各ＸとＹ方向で２倍（２×）にスーパーサンプリングするには、記憶装置と帯域幅を４倍（４×）にする必要がある。したがって、記憶装置と帯域幅を追加せずにスーパーサンプリングを有効に実現することが望ましい。
【０００５】
本発明は、本発明の様々な実施形態についての以下の詳細な説明および添付の図面から、さらによく理解されるであろう。ただし、図面は、本発明を特定の実施形態に限定するものではなく、例示および理解のためのものであることを留意されたい。
【０００６】
（詳細な説明）
スーパーサンプリングを有効に実施するための方法および装置を開示する。本発明の以下の詳細な説明では、本発明の完全な理解をもたらすため、多くの具体的な詳細を記載する。しかし、本発明は、こうした具体的な詳細なしで実施できることが、当業者には明らかであろう。他の例では、本発明を不明瞭にしないために、詳細にではなく、周知の構造およびデバイスを構成図で示した。
【０００７】
本明細書において「一実施形態」または「ある実施形態」との引用は、実施形態に関連して述べる具体的な特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所に現れる表現「一実施形態では」は、必ずしもすべて同じ実施形態を指すのではない。
【０００８】
図１は、コンピュータ・システム１００の一実施形態の構成図である。コンピュータ・システム１００は、プロセッサ・バス１１０に結合された中央処理装置（プロセッサ）１０５を含む。一実施形態では、プロセッサ１０５は、カリフォルニア州サンタクララのインテル・コーポレーションから市販されているＰｅｎｔｉｕｍ（登録商標）ＩＩファミリおよびモバイルＰｅｎｔｉｕｍ（登録商標）およびＰｅｎｔｉｕｍ（登録商標）ＩＩプロセッサを含むＰｅｎｔｉｕｍ（登録商標）プロセッサ・ファミリのプロセッサである。あるいは、他のプロセッサを使用することもできる。
【０００９】
チップ・セット１２０もプロセッサ・バス１１０に結合される。チップ・セット１２０は、メイン・メモリ１１３を制御するメモリコントローラを備えることができる。さらに、チップ・セット１２０は、カリフォルニア州サンタクララのインテル・コーポレーションが開発したＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ Ｇｒａｐｈｉｃｓ Ｐｏｒｔ：アクセラレイテッド・グラフィックス・ポート）仕様２．０に準拠したインターフェースを備えることもできる。チップ・セット１２０は、ビデオ・デバイス１２５に結合され、メイン・メモリ１１３へのアクセスを求めるビデオ・データ要求を処理する。メイン・メモリ１１３は、チップ・セット１２０を介してプロセッサ・バス１１０に結合される。
【００１０】
メイン・メモリ１１３はチップ・セット１２０を介してプロセッサ・バス１１０に結合される。メイン・メモリ１１３は、プロセッサ１０５によって実行される命令シーケンスを記憶する。一実施形態では、メイン・メモリ１１３は、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）システムを含む。しかし、メイン・メモリ１１３は他の構成でもよい。プロセッサ１０５によって実行される命令シーケンスは、メイン・メモリ１１３または他のどの記憶デバイスによっても検索することができる。複数のプロセッサおよび／または複数のメイン・メモリ・デバイスなど、追加のデバイスをプロセッサ・バス１１０に結合することもできる。コンピュータ・システム１００は単一のプロセッサを用いて記載してあるが、複数のプロセッサをプロセッサ・バス１１０に結合することもできる。ビデオ・デバイス１２５もチップ・セット１２０に結合される。一実施形態では、ビデオ・デバイスは陰極線管（ＣＲＴ）や液晶表示装置（ＬＣＤ）などのビデオ・モニタとそれに必要なサポート回路を含む。
【００１１】
プロセッサ・バス１１０はチップ・セット１２０によってシステム・バス１３０に結合される。一実施形態では、システム・バス１３０は、カリフォルニア州サンタクララのインテル・コーポレーションが開発したＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ Ｃｏｍｐｏｎｅｎｔ Ｉｎｔｅｒｃｏｎｎｅｃｔ：周辺装置相互接続）仕様２．１に準拠した標準バスであるが、他のバス標準を使用することもできる。オーディオ・デバイス１２７などの多数のデバイスをシステム・バス１３０に結合することもできる。
【００１２】
バス・ブリッジ１４０はシステム・バス１３０を２次バス１５０に結合する。一実施形態では、２次バス１５０は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが開発したＩＳＡ（Ｉｎｄｕｓｔｒｙ Ｓｔａｎｄａｒｄ Ａｒｃｈｉｔｅｃｔｕｒｅ：産業標準構成）仕様１．０ａに準拠したバスである。しかし、他のバス標準、たとえば、コンパック・コンピュータ他が開発したＥＩＳＡ（Ｅｘｔｅｎｄｅｄ Ｉｎｄｕｓｔｒｙ Ｓｔａｎｄａｒｄ Ａｒｃｈｉｔｅｃｔｕｒｅ：拡張産業標準構成）仕様３．１２も使用することができる。ハード・ディスク１５３やディスク駆動装置１５４など、複数のデバイスを２次バス１５０に結合することができる。カーソル制御デバイス（図１に図示せず）など他のデバイスを２次バス１５０に結合することもできる。
【００１３】
図２は、プロセッサ１０５の一実施形態の構成図である。プロセッサ１０５は、ＣＰＵコア２１０、ＣＰＵキャッシュ２２０、グラフィックス・コア２３０、グラフィックス・キャッシュ２４０およびバス・インターフェース２５０を備える。ＣＰＵコア２１０は、コンピュータ・システム１００で受け取る非グラフィック命令を実行する。ＣＰＵキャッシュ２２０は、ＣＰＵコア２１０に結合される。一実施形態によれば、ＣＰＵキャッシュ２２０は、データおよびＣＰＵコア２１０が実行する命令シーケンスを記憶するための高速記憶装置である。
【００１４】
バス・インターフェース２５０はＣＰＵキャッシュ２２０に結合される。バス・インターフェース２５０は、データがプロセッサ１０５に送られまたそれから配信されるように、ＣＰＵキャッシュ２２０とグラフィックス・キャッシュ２４０をプロセッサ・バス１１０に接続する。
【００１５】
グラフィックス・コア２３０は、グラフィック変換を計算するための専用のグラフィックス・アクセラレータを含む。グラフィックス・コア２３０がグラフィック計算を処理している間、グラフィックス・コア２３０は、ＣＰＵコア２１０が非グラフィック命令を有効に実行できるようにする。一実施形態によれば、グラフィックス・コアは、タイルベース・レンダリング・アーキテクチャに従って動作する。レンダリングは、ピクセル単位で異なるカラーおよび位置情報を計算する動作である。それによって、見る人は、ビデオ・デバイス１２５の２次元モニタ上で深さを感知することができる。
【００１６】
レンダリングは、１組の頂点としてのみ以前に記憶された対象物の表面上の点を埋める。そうすると、３次元効果のための陰影をつけた立体の対象物が画面上に描かれる。対象物をレンダリングするには、カラーおよび位置情報を決定することが必要である。有効に行うには、対象物の多数の頂点を複数の三角形にセグメント化し、次いで、これらの三角形（３つの頂点の組）をグラフィックス・コア２３０で１度に１つずつ処理する。
【００１７】
タイルベース・レンダリングでは、グラフィックス・コア２３０は、シーンが完了するまで、三角形を１つずつ用いて、特定のグラフィックス・シーン（または画像）内に多角形を形成する。しかし、シーンをレンダリングする前に、グラフィックス・コア２３０は、シーンを一連の三角形に細分化する。その後、三角形を、各三角形のバウンディング・ボックスを調べることによってタイルにソートする（またはビニングする（ｂｉｎｎｅｄ））。タイル・ビニングは、どのタイル内に三角形があるかを決定する。一実施形態では、グラフィックス・キャッシュ２４０は、シーンの各タイルのためのバッファを含む。このバッファは、バッファ内に含まれる特定の三角形を指すポインタを含む。各三角形がビニングされた後、シーンの各タイルは１度に１つずつレンダリングされる。
【００１８】
グラフィックス・キャッシュ２４０はグラフィックス・コア２３０とバス・インターフェース２５０に結合される。一実施形態によれば、グラフィックス・キャッシュ２４０は、１２８×６４ピクセル・サイズのタイルを収容できる統合型グラフィックス・キャッシュであり、各ピクセルは、３２ビットのカラー値および深度値を含む。他の実施形態では、グラフィックス・キャッシュ２４０は、カラー・データと深度データに加えて、テクスチャ・データを記憶する。他の実施形態では、グラフィックス・キャッシュ２４０は、タイル・サイズ１２８×６４を収容するための６４キロバイトの静的ランダム・アクセス・メモリである。しかし、グラフィックス・キャッシュ２４０としては、他のサイズやタイプの記憶デバイスも使用することができることを当業者は理解されたい。
【００１９】
図３は、グラフィックス・キャッシュ２４０の一実施形態の構成図である。グラフィックス・キャッシュ２４０は、グラフィックス・テクスチャ・キャッシュ３２０およびグラフィックス・カラー／Ｚタイル・バッファ３４０を含む。グラフィックス・テクスチャ・キャッシュ３２０は、対象物をテクスチャ・マッピングするために使用されるテクスチャ・データを記憶する。テクスチャ・マッピングは、色や輝度などの２次元特性に加えて、３次元特性（たとえば、対象物の透過性および反射性の程度）でテクスチャを符号化するものである。テクスチャが決定されると、そのテクスチャで３次元対象物を包むことができる。
【００２０】
グラフィックス・カラー／Ｚタイル・バッファ３４０は、１つまたは複数のグラフィック・シーンの各タイル内のピクセルごとにカラー・データと深度データを記憶する。タイル・サイズは、カラーと深度フォーマット、およびグラフィックス・カラー／Ｚタイル・バッファ３４０のサイズに基づいて決定することができる。したがって、一実施形態によれば、グラフィックス・カラー／Ｚタイル・バッファ３４０は、特定のタイルの内部に含まれるすべての三角形に対して、中間のカラー・データと深度データのアクセスを実施できるのに十分な大きさである。他の実施形態によれば、カラー・データと深度データは、タイルの最後の三角形のレンダリング完了後に、メイン・メモリ１１３に書き込まれる。
【００２１】
一実施形態によれば、グラフィックス・キャッシュ２４０の使用で、余分な記憶装置と帯域幅の必要性をなくすことによって、グラフィックス・コア２３０が、スーパーサンプリングを有効に実施できるようになる。図４は、グラフィックス・コア２３０によるスーパーサンプリング中のデータ流れの一実施形態の流れ図である。説明のため、値ｋ＝４はＸおよびＹ方向に２倍（２×）にスーパーサンプリングしたものと仮定する。さらに、タイル・サイズを１２８×６４とし、多角形は、仮想タイル・サイズ６４×３２にビニングされると仮定する。ただし、このプロセスは、他の値ｋおよびタイル・サイズを使用しても実施できることを当業者は理解されたい。
【００２２】
図４を参照すると、プロセス・ブロック４１０で、１つのタイルのためのの複数の多角形が、グラフィックス・コア２３０でメイン・メモリ１１３から、チップ・セット１２０内にあるＡＧＰポートを介して受け取られる。プロセス・ブロック４２０で、多角形はグラフィックス・コア２３０で拡大される。この例はｋ＝４であるので、多角形は元のサイズの４倍（４×）に拡大される。この拡大は、グラフィックス・コア２３０がサポートするビューポート変換を使用することによって実施される。ビューポート変換では、ワールド座標がグラフィックス・コア２３０によって表示画面の座標上にマッピングされる。その後、グラフィックス・コア２３０が変換を加速させる。ビューポート変換の適用により、タイルにレンダリングするために最終画像を拡大するため、ビューポートの寸法を操作することができる。
【００２３】
プロセス・ブロック４３０で、拡大された多角形をセットアップする。一実施形態によれば、セットアップ段階で、各頂点に関連する入力データを取り込み、走査変換に必要な様々なパラメータを計算する。他の実施形態によれば、多角形の様々な頂点属性を補間するために必要な勾配も計算される。
【００２４】
プロセス・ブロック４４０で、多角形のラスタ化およびテクスチャリングのためのテクスチャ・データをグラフィックス・コア２３０で実行する。ラスタ化の間、多角形内のピクセルが処理される。さらに、テクスチャリングできる場合は、テクスチャをピクセルに適用する。プロセス・ブロック４５０で、タイルのレンダリングを完了する。タイル内の最後の三角形のレンダリング完了後、グラフィックス・カラー／Ｚタイル・バッファ３４０は、元のサイズの４×のタイルの完全な画像を含む。プロセス・ブロック４６０で、伸縮（ｓｔｒｅｔｃｈ）ビット・アライン・ブロック転送（ｂｉｔ ａｌｉｇｎｅｄ ｂｌｏｃｋ ｔｒａｎｓｆｅｒ：ＢＬＴ）を実行する。ＢＬＴは、ピクセル、または他のデータを１つの記憶場所から他へコピーするプロセスである。伸縮ＢＬＴは、物理的タイル・サイズから仮想タイル・サイズへ画像をダウン・サンプリングするために実施する。
【００２５】
伸縮ＢＬＴは、物理的タイル・サイズと等しいサイズの（２つの多角形でできた）長方形をレンダリングすることによって完了する。物理的タイルにおいて（たとえば、グラフィックス・カラー／Ｚタイル・バッファ３４０において）スーパーサンプリングされた画像は伸縮ＢＬＴのソースであると考えられるが、その宛先は、メモリ１１３内に割り当てられる。一実施形態によれば、グラフィックス・コア２３０は、宛先三角形用の宛先のためのテクスチャ・マップとして伸縮ＢＬＴのソースを処理する。このため、グラフィックス・テクスチャ・キャッシュ３２０は、タイル中のテクスチャ・データの良好な利用を維持するため、じゃまされずに維持される。
【００２６】
プロセス・ブロック４７０で、グラフィックス・カラー／Ｚタイル・バッファ３４０でタイルをさらにレンダリングする必要があるかどうかを決定する。タイルをさらにレンダリングする必要があると決定した場合、制御はブロック４１０に戻り、別のタイルの多角形をグラフィックス・コア２３０でグラフィックス・カラー／Ｚタイル・バッファ３４０から受け取る。一実施形態によれば、グラフィックス・コア２３０はパイプライン・エンジンを含む。それによって、グラフィックス・コア２３０での次のタイルのレンダリングを、前のタイルの伸縮ＢＬＴの実行中に開始することができる。
【００２７】
上記のように、タイルベースのレンダリング用の統合型グラフィックス・キャッシュを使用すると、外部の記憶装置と帯域幅の要求を増加させる必要なく、有効にスーパーサンプリングした画像を得ることができる。
【００２８】
通常、非タイル・ベースのレンダリングを利用するグラフィックス・エンジンは、まず、スーパーサンプリングした画像全体を記憶場所にレンダリングしなければならず、それは、ダウンサンプリングする前は、元の表示解像度のｋ倍である。この記憶は、通常、グラフィックス・エンジンと同じ半導体デバイスで実施するには大きすぎる。したがって、メイン・メモリ内の記憶装置と帯域幅を増大することが必要である。
【００２９】
上記のように、統合型グラフィックス・キャッシュは、スーパーサンプリングされた画像を（たとえば伸縮ＢＬＴを介して）後でフィルタ・ダウンするための一時的記憶域を提供する。その結果、元のサイズの最終画像をメモリ１１３などのメイン・システム・メモリ内に書き出し、記憶することのみが必要とされる。したがって、余分な記憶装置と帯域幅を必要としない、スーパーサンプリングの有効な実施について記載した。
【００３０】
本発明の多くの変更および修正は、上記の説明を読んだ後、当業者には疑いなく明らかになるであろうが、例によって示しかつ説明した特定の実施形態はどれも限定的ではないと見なすべきものとする。したがって、様々な実施形態の詳細に対する参照は、本発明とみなされるこれらの特徴のみを記載する特許請求の範囲を限定するものではない。
【図面の簡単な説明】
【図１】
コンピュータ・システムの一実施形態の構成図である。
【図２】
プロセッサの一実施形態の構成図である。
【図３】
グラフィックス・キャッシュの一実施形態の構成図である。
【図４】
スーパーサンプリング中のデータ流れの一実施形態の流れ図である。
【図１】
2004510270.tif 000003
【図２】
2004510270.tif 000004
【図３】
2004510270.tif 000005
【図４】
2004510270.tif 000006
【国際公開パンフレット】
2004510270.tif 000007
2004510270.tif 000008
2004510270.tif 000009
2004510270.tif 000010
2004510270.tif 000011
2004510270.tif 000012
2004510270.tif 000013
2004510270.tif 000014
2004510270.tif 000015
2004510270.tif 000016
2004510270.tif 000017
2004510270.tif 000018
2004510270.tif 000019
2004510270.tif 000020
2004510270.tif 000021
2004510270.tif 000022
2004510270.tif 000023
2004510270.tif 000024
2004510270.tif 000025
2004510270.tif 000026
2004510270.tif 000027
【国際公開パンフレット（コレクトバージョン）】
2004510270.tif 000028
2004510270.tif 000029
【国際調査報告】
2004510270.tif 000030
2004510270.tif 000031
2004510270.tif 000032
2004510270.tif 000033