(57)【要約】【解決手段】頂点情報がアプリケーションプロセッサから検索され、グラフィックイメージを表わす面を構築するために使用されるグラフィックプロセッサ及び方法が示される。そして、構築された面は、ピクセル情報へ再現されうる。頂点情報は、面のうちの少なくとも１つに関連付けられた１つの頂点データを有する複数のデータブロックの各々を含む。データブロックの各々は、そこに含まれている頂点データに対応する可変長を有する。グラフィックプロセッサの少なくとも１つの実施形態では、頂点情報は、ピンポン頂点バッファ構成を使用して、アプリケーションプロセッサからバッチで検索されうる。グラフィックプロセッサの同じ又は別の実施形態では、ピクセル情報は、アプリケーションプロセッサによって生成された命令によって制御されるフレームバッファのピンポン構成によってディスプレイに提示されうる。【選択図】      図３
2008513910.tif 000002
【特許請求の範囲】
【請求項１】
３Ｄグラフィックイメージを表わす複数の面に関連した頂点情報であって、前記面のうちの少なくとも１つに関連した１つの頂点データ、及び前記頂点データに対応する可変長を有する各データブロックからなる複数のデータブロックを備える前記頂点情報を受け取るように構成されたメモリと、
前記メモリ内の頂点情報から前記面を構築するように構成されたアセンブラと、
前記アセンブラによって構築された面をピクセル情報に再現するように構成されたピクセル処理エンジンと
を備えるグラフィックプロセッサ。
【請求項２】
前記アセンブラは更に、前記構築された全ての面を時計回り頂点順又は反時計回り頂点順の何れかで前記ピクセル処理エンジンに提供するように構成された請求項１のグラフィックプロセッサ。
【請求項３】
前記面の各々は三角形を含む請求項１のグラフィックプロセッサ。
【請求項４】
前記頂点情報は、複数の三角形ストリップ、複数の三角形ファン、又はこれらの組み合わせに圧縮される請求項３のグラフィックプロセッサ。
【請求項５】
前記メモリは更に、前記頂点情報とともに複数の命令を受け取るように構成され、前記命令のうちの少なくとも１つは、前記頂点情報の一部が、三角形ストリップ又は三角形ファンとしてフォーマットされているかを示し、
前記アセンブラは更に、前記命令のうちの少なくとも１つから、前記頂点情報の一部に関連する面を構築するように構成された請求項４のグラフィックプロセッサ。
【請求項６】
前記各頂点データは、ディスプレイ座標及び属性情報を含み、前記各頂点のデータブロックの長さは、そこに含まれる属性情報の量に対応する請求項１のグラフィックプロセッサ。
【請求項７】
前記属性情報は、深さ、色、透明度、反射色、テクスチャ、又はブレンド情報を含む請求項６のグラフィックプロセッサ。
【請求項８】
前記メモリは更に、前記頂点情報とともに複数の命令を受け取るように構成され、
前記ピクセル処理エンジンは、ピンポンフレームバッファを備え、
前記ピクセル処理エンジンは更に、前記メモリ内の命令に応答して、前記アセンブラによって構築された面の第１の部分から生成されたピクセル情報を、前記ピンポンフレームバッファのうちの１つからディスプレイへ提供し、同時に、前記アセンブラによって構築された面の第２の部分から生成されたピクセル情報を、前記ピンポンフレームバッファのうちの他の１つへ書き込むように構成された請求項１のグラフィックプロセッサ。
【請求項９】
複数の面に関連する前記頂点情報のバッチを、アプリケーションプロセッサから検索し、かつ、前記バッチを前記メモリに提供するように構成されたインタフェースを更に備える請求項１のグラフィックプロセッサ。
【請求項１０】
前記インタフェースは更に、
前記バッチに対する要求を前記アプリケーションプロセッサへ送り、
前記バッチの前記アプリケーションプロセッサ内におけるバッファ位置に関する情報を、前記アプリケーションプロセッサから受け取り、
前記バッファ位置から前記バッチを検索する
ことによって、前記アプリケーションプロセッサから前記頂点情報のバッチを検索するように構成された請求項９のグラフィックプロセッサ。
【請求項１１】
グラフィックイメージング方法であって、
グラフィックイメージを表わす複数の面に関連した頂点情報であって、前記面のうちの少なくとも１つに関連した１つの頂点データ、及び前記頂点データに対応する可変長を有する各データブロックからなる複数のデータブロックを備える前記頂点情報をアプリケーションプロセッサから検索することと、
前記検索された頂点情報から前記面を構築することと、
前記構築された面をピクセル情報に再現することと
を含む方法。
【請求項１２】
前記面は全て、時計回り頂点順又は反時計回り頂点順の何れかで構築される請求項１の方法。
【請求項１３】
前記面の各々は三角形を含む請求項１１の方法。
【請求項１４】
前記頂点情報は、複数の三角形ストリップ、複数の三角形ファン、又はこれらの組み合わせに圧縮される請求項１３の方法。
【請求項１５】
前記頂点情報とともに複数の命令を前記アプリケーションプロセッサから検索することを更に含み、前記命令のうちの少なくとも１つは、前記頂点情報の一部が、三角形ストリップ又は三角形ファンとしてフォーマットされているかを示し、前記頂点情報の一部に関連する面は、前記命令のうちの少なくとも１つから構築される請求項１４の方法。
【請求項１６】
前記各頂点データは、ディスプレイ座標及び属性情報を含み、前記各頂点のデータブロックの長さは、そこに含まれる属性情報の量に対応する請求項１１の方法。
【請求項１７】
前記属性情報は、深さ、色、透明度、反射色、テクスチャ、又はブレンド情報を含む請求項１６の方法。
【請求項１８】
前記頂点情報とともに複数の命令を前記アプリケーションプロセッサから受け取ることと、
前記命令に応答して、前記構築された面の第１の部分から生成されたピクセル情報を、第１のピンポンフレームバッファからディスプレイへ提供し、同時に、前記構築された面の第２の部分から生成されたピクセル情報を、第２のピンポンフレームバッファへ書き込むことと
を更に含む請求項１１の方法。
【請求項１９】
前記頂点情報は、前記アプリケーションプロセッサからバッチで検索され、前記頂点情報のバッチの各々は、複数の面に関連付けられている請求項１１の方法。
【請求項２０】
前記バッチの各々は、
前記バッチに対する要求を前記アプリケーションプロセッサへ送り、
前記バッチの前記アプリケーションプロセッサ内におけるバッファ位置に関する情報を、前記アプリケーションプロセッサから受け取り、
前記バッファ位置から前記バッチを検索する
ことによって、前記アプリケーションプロセッサから検索される請求項１９の方法。
【請求項２１】
前記アプリケーションプロセッサはピンポンバッファを備え、
前記方法は更に、前記頂点情報の第１のバッチを、前記ピンポンバッファのうちの１つに書き込み、前記アプリケーションプロセッサが、前記頂点情報の第１のバッチを前記ピンポンバッファのうちの１つに書き込むと同時に、前記ピンポンバッファのうちの他の１つから、前記頂点情報の第２のバッチを検索するように前記アプリケーションプロセッサを使用することを含む請求項１１の方法。
【請求項２２】
グラフィックイメージを表わす複数の面に関連した頂点情報であって、前記面のうちの少なくとも１つに関連した１つの頂点データ、及び前記頂点データに対応する可変長を有する各データブロックからなる複数のデータブロックを備える前記頂点情報を受け取る手段と、
前記頂点情報から前記面を構築する手段と、
前記構築された面をピクセル情報に再現する手段と
を備えるグラフィックプロセッサ。
【請求項２３】
グラフィックイメージを表わす複数の面に関連した頂点情報と、前記頂点情報に関連した複数の命令とを格納するように構成されたメモリと、
複数の前記面に関連している前記頂点情報のバッチを、アプリケーションプロセッサから検索し、前記バッチを前記メモリに提供するように構成されたインタフェースと、
前記メモリ内の頂点情報から前記面を構築するように構成されたアセンブラと、
前記構築された面をピクセル情報に再現するように構成されたピクセル処理エンジンと
を備えるグラフィックプロセッサ。
【請求項２４】
前記インタフェースは更に、
前記バッチに対する要求を前記アプリケーションプロセッサへ送り、
前記バッチの前記アプリケーションプロセッサ内におけるバッファ位置に関する情報を、前記アプリケーションプロセッサから受け取り、
前記バッファ位置から前記バッチを検索する
ことによって、前記アプリケーションプロセッサから前記頂点情報のバッチを検索するように構成された請求項２３のグラフィックプロセッサ。
【請求項２５】
前記頂点情報は、前記面のうちの少なくとも１つに関連した１つの頂点データを有する各データブロックからなる複数のデータブロックを備え、
前記各データブロックは、そこに含まれる前記頂点データに対応する可変長を有する請求項２３のグラフィックプロセッサ。
【請求項２６】
前記各頂点データは、ディスプレイ座標及び属性情報を含み、前記各頂点のデータブロックの長さは、そこに含まれる属性情報の量に対応する請求項２５のグラフィックプロセッサ。
【請求項２７】
前記属性情報は、深さ、色、透明度、反射色、テクスチャ、又はブレンド情報を含む請求項２６のグラフィックプロセッサ。
【請求項２８】
前記面の各々は三角形を含む請求項２３のグラフィックプロセッサ。
【請求項２９】
前記頂点情報は、複数の三角形ストリップ、複数の三角形ファン、又はこれらの組み合わせに圧縮される請求項２８のグラフィックプロセッサ。
【請求項３０】
前記メモリは更に、前記頂点情報とともに第２の複数の命令を受け取るように構成され、
前記第２の複数の命令のうちの少なくとも１つは、前記頂点情報の一部が、三角形ストリップ又は三角形ファンとしてフォーマットされているかを示し、
前記アセンブラは更に、前記第２の複数の命令のうちの少なくとも１つから、前記頂点情報の一部に関連する三角形を構築するように構成された請求項２９のグラフィックプロセッサ。
【請求項３１】
前記アセンブラは更に、前記構築された全ての面を時計回り頂点順又は反時計回り頂点順の何れかで前記ピクセル処理エンジンに提供するように構成された請求項２３のグラフィックプロセッサ。
【請求項３２】
グラフィックイメージング方法であって、
グラフィックイメージを表わす複数の面に関連し、かつ複数の面に関連したバッチでアプリケーションプロセッサから検索される頂点情報を前記アプリケーションプロセッサから検索することと、
前記検索された頂点情報から前記面を構築することと、
前記構築された面をピクセル情報に再現することと
を含む方法。
【請求項３３】
前記バッチに対する要求を前記アプリケーションプロセッサへ送り、
前記バッチの前記アプリケーションプロセッサ内におけるバッファ位置に関する情報を、前記アプリケーションプロセッサから受け取り、
前記バッファ位置から前記バッチを検索すること
によって、前記アプリケーションプロセッサから前記各バッチが検索される請求項３２の方法。
【請求項３４】
前記頂点情報は、前記面のうちの少なくとも１つに関連した１つの頂点データを有する各データブロックからなる複数のデータブロックを備え、
前記各データブロックは、そこに含まれる前記頂点データに対応する可変長を有する請求項３２の方法。
【請求項３５】
前記各頂点データは、ディスプレイ座標及び属性情報を含み、前記各頂点のデータブロックの長さは、そこに含まれる属性情報の量に対応する請求項３４の方法。
【請求項３６】
前記属性情報は、深さ、色、透明度、反射色、テクスチャ、又はブレンド情報を含む請求項３５の方法。
【請求項３７】
前記面の各々は三角形を含む請求項３２の方法。
【請求項３８】
前記頂点情報は、複数の三角形ストリップ、複数の三角形ファン、又はこれらの組み合わせに圧縮される請求項３７の方法。
【請求項３９】
前記頂点情報とともに第２の複数の命令を前記アプリケーションプロセッサから検索することを更に含み、
前記第２の複数の命令のうちの少なくとも１つは、前記頂点情報の一部が、三角形ストリップ又は三角形ファンとしてフォーマットされているかを示し、
前記頂点情報の一部に関連する三角形は、前記第２の複数の命令のうちの少なくとも１つから構築される請求項３８の方法。
【請求項４０】
前記面は全て、時計回り頂点順又は反時計回り頂点順の何れかで構築される請求項３２の方法。
【請求項４１】
グラフィックイメージを表わす複数の面に関連した頂点情報と、前記頂点情報を備えた複数の命令とを受け取るように構成されたメモリと、
前記メモリ内の頂点情報から前記面を構築するように構成されたアセンブラと、
ピンポンフレームバッファを備えたピクセル処理エンジンとを備え、
前記ピクセル処理エンジンは、前記メモリ内の命令に応答して更に、前記構築された面の第１の部分から生成されたピクセル情報を、前記ピンポンフレームバッファのうちの１つからディスプレイへ提供し、同時に、前記構築された面の第２の部分から生成されたピクセル情報を、前記ピンポンフレームバッファのうちの他の１つへ書き込むように構成されたグラフィックプロセッサ。
【請求項４２】
ピンポンバッファを備え、かつ頂点情報によって定義された複数の面を含むグラフィックイメージを生成するように構成され、更に前記ピンポンバッファのうちの１つに対して前記頂点情報の第１のバッチを書き込むように構成されたアプリケーションプロセッサと、
前記アプリケーションプロセッサが前記頂点情報の第１のバッチを前記ピンポンバッファのうちの１つへ書き込むと同時に、前記ピンポンバッファの他の１つから前記頂点情報の第２のバッチを検索するように構成されたインタフェースを有するグラフィックプロセッサとを備え、
前記グラフィックプロセッサは更に、前記頂点情報の第２のバッチから構築された面をピクセル情報に再現するように構成されたピクセル処理エンジンを備えるグラフィックスイメージングシステム。
【請求項４３】
前記グラフィックプロセッサに接続されたディスプレイを更に備える請求項４２のグラフィックイメージングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、グラフィックイメージングに関し、特に、グラフィックプロセッサのための効率的なインタフェース及びアセンブラに関する。
【背景技術】
【０００２】
パーソナルコンピュータ、ラップトップ、モバイル電話、携帯情報端末（ＰＤＡ）、及びその他のデバイスへの電子ゲーム及びマルチメディア表示の統合は、今日の消費者電子市場の主流になった。これら電子ゲーム及びマルチメディア表示は、三次元（３Ｄ）グラフィックとして知られている技術によってサポートされる。３Ｄグラフィックは、グラフィックイメージを作成し、かつ二次元（２Ｄ）ディスプレイにそれらのイメージを投影するために使用される。これは、グラフィックイメージを、三角形、正方形、長方形、平行四辺形あるいは他の適切な面のような基本成分に分割することにより達成されうる。典型的なグラフィックイメージは、ワイヤーフレームと呼ばれる構造に組み立てられた何千もの面を必要としうる。ワイヤーフレーム面は、ディスプレイの駆動に適切なピクセル情報へ再現される前に更に処理されうる。
【０００３】
従来、コンピュータの中央処理装置（ＣＰＵ）は、これら面をピクセル情報に再現するために使用されるハードウェアを用いて、ワイヤーフレームの構成を完全に処理するために使用されてきた。このアプローチはうまくいく。しかし、ＣＰＵは、オーディオ入力及びユーザ入力のような他の処理機能と同様に、ワイヤーフレーム面について相当な量を処理しなければならない。その結果、ＣＰＵは酷使され、様々なソフトウェア要求をリアルタイムでサービス提供できなくなる。この問題は、より現実的なグラフィックに対する顧客需要が増加すると、より顕著になりうる。
【０００４】
したがって、必要なものは、ＣＰＵの負荷を低減することができるグラフィックプロセッサである。このグラフィックプロセッサは、グラフィックイメージの視覚的品質を高める効率的なインタフェース及びアセンブラを持つべきである。
【発明の開示】
【０００５】
本発明の１つの局面では、グラフィックプロセッサは、グラフィックイメージを表わす複数の面に関連した頂点情報を受け取る構成されたメモリを含む。頂点情報は、それぞれが、面のうちの少なくとも１つに関連付けられた１つの頂点データを有する複数のデータブロックを備える。各データブロックは、そこに含まれている頂点データに対応する可変長を持っている。グラフィックプロセッサはまた、メモリ内の頂点情報から面を構築するように構成されたアセンブラと、前記アセンブラによって構築された面をピクセル情報に再現するように構成されたピクセル処理エンジンとを含む。
【０００６】
本発明の別の局面では、グラフィックイメージング方法は、グラフィックイメージを表わす複数の面に関連した頂点情報を、アプリケーションプロセッサから検索することを含む。この頂点情報は、複数のデータブロックを備えている。これらデータブロックの各々は、面のうちの少なくとも１つに関連する１つの頂点データを有する。そして、データブロックの各々は、そこに含まれている頂点データに対応する可変長を有する。この方法は更に、検索された頂点情報から面を構築することと、構築された面をピクセル情報に再現することとを含む。
【０００７】
また本発明の別の局面では、グラフィックプロセッサは、グラフィックイメージを表わす複数の面に関連している頂点情報を、アプリケーションプロセッサから検索する手段を含む。頂点情報は、面のうちの少なくとも１つに関連した１つの頂点データを有する複数のデータブロックを備える。そして、各データブロックは、そこに含まれている頂点データに対応する可変長を有する。グラフィックプロセッサはまた、検索された頂点情報から面を構築する手段と、前記構築された面をピクセル情報に再現する手段とを含む。
【０００８】
本発明の更に別の局面では、グラフィックイメージング方法は、グラフィックイメージを表わす複数の面に関連した頂点情報をアプリケーションプロセッサから検索することを含む。この頂点情報は、アプリケーションプロセッサからバッチで検索される。頂点情報のバッチの各々は、複数の面に関連している。この方法は更に、検索された頂点情報から面を構築することと、前記構築された面をピクセル情報に再現することとを含む。
【０００９】
本発明の更なる局面では、グラフィックプロセッサは、グラフィックイメージを表わす複数の面に関連した頂点情報と、頂点情報を備えた複数の命令とを取得するように構成されたメモリと、メモリ内の頂点情報から面を構築するように構成されたアセンブラと、ピンポンフレームバッファを備えるピクセル処理エンジンとを含む。そして、ピクセル処理エンジンは更に、メモリ内の命令に応答して、構築された面の第１の部分から生成されたピクセル情報を、ピンポンフレームバッファのうちの１つからディスプレイへ提供し、同時に、構築された面の第２の部分から生成されたピクセル情報を、ピンポンフレームバッファのうちの他の１つへ書き込むように構成されている。
【００１０】
本発明の更なる局面では、グラフィックイメージングシステムは、頂点情報によって定義された複数の面を含むグラフィックイメージを生成するように構成されたアプリケーションプロセッサを含む。このアプリケーションプロセッサはピンポンバッファを備え、更に、ピンポンバッファのうちの１つに対して頂点情報の第１のバッチを書き込むように構成されている。このグラフィックイメージングシステムはまた、アプリケーションプロセッサが頂点情報の第１のバッチをピンポンバッファのうちの１つへ書き込むと同時に、ピンポンバッファの他の１つから頂点情報の第２のバッチを検索するように構成されたインタフェースを有するグラフィックプロセッサを含む。このグラフィックプロセッサは更に、頂点情報の第２のバッチから構築された面をピクセル情報に再現するように構成されたピクセル処理エンジンを備えている。
【００１１】
本発明の他の実施形態が、本発明の様々な実施形態が例示によって示され記述されている以下の詳細説明から、当業者に容易に明らかになることが理解される。理解されるように、本発明は、全て、本発明の精神及び範囲から逸脱することなく、他の実施形態及び異なる実施形態も可能であり、その幾つかの詳細は、その他様々な観点において変更することが可能である。従って、図面及び詳細説明は、本質における一例と見なされるべきであって、限定と見なされるべきではない。
【発明を実施するための最良の形態】
【００１２】
本発明の局面は、添付図面において、限定ではなく、一例として例示される。
【００１３】
添付図面に関連して以下に述べる詳細説明は、本発明の様々な実施形態の説明として意図され、本発明が実行されうる唯一の実施形態を表わすようには意図されない。詳細説明は、本発明の完全な理解を提供する目的での具体的詳細を含んでいる。しかしながら、本発明が、これら具体的詳細なしで実現されうることが、当業者に明白になろう。いくつかの実例では、周知の構成及びコンポーネントが、本発明の概念を不明瞭にしないためにブロック図形式で示される。
【００１４】
図１は、パーソナルコンピュータ、ラップトップ、モバイル電話、ＰＤＡ、又はその他の適切なデバイスへ統合される３Ｄグラフィックシステムを例示する概念ブロック図である。この３Ｄグラフィックシステムは、アプリケーションプロセッサ１０２を含みうる。アプリケーションプロセッサ１０２の目的は、３Ｄグラフィックイメージのワイヤーフレーム構造を生成し、それらのイメージをワイヤーフレーム構造に変換することである。
【００１５】
アプリケーションプロセッサ１０２は任意のソフトウェアにより実現されるエンティティでありうる。図１に示される３Ｄグラフィックシステムの実施形態では、アプリケーションプロセッサ１０２は、外部メモリ１０６とともにマイクロプロセッサ１０４を含んでいる。システムバス１０８は、２つの間の通信をサポートするために使用されうる。マイクロプロセッサ１０４は、例えば、電子ゲーム用の３Ｄグラフィックソフトウェアのような様々なソフトウェアプログラムを実行するためのプラットフォームを提供するために使用されうる。このソフトウェアは、工場で、外部メモリ１０６へプログラムされるかもしれない。あるいは、動作中に、無線リンク、電話回線接続、ケーブルモデム接続、デジタル加入者線（ＤＳＬ）、光ファイバーリンク、衛星リンク、又は他の適切な通信リンクを通じて遠隔サーバからダウンロードされるかもしれない。
【００１６】
電子ゲームアプリケーションでは、ソフトウェアは、ゲームが行われる物理的環境を表わす仮想３Ｄワールドを形成するために使用されうる。ユーザは、ユーザインターフェース１１０を操作することにより、この仮想３Ｄワールドを探検することができる。ユーザインターフェース１１０は、キーパッド、ジョイスティック、トラックボール、マウス、あるいはユーザが仮想３Ｄワールドを通じて前後、上下、左右に操作することを可能にする他の任意の適切なデバイスでありうる。ソフトウェアは、ユーザが、仮想３Ｄワールドを通じて自分が操作することにより見るものを表す一連の３Ｄグラフィックイメージを生成するために使用されうる。
【００１７】
アプリケーションプロセッサ１０２は、更に、システムバス１０８に接続されたＤＳＰ１１２を含みうる。ＤＳＰ１１２は、マイクロプロセッサ１０４の処理要求を低減するアプリケーション特有のアルゴリズムを実行する組込式グラフィックソフトウェアレイヤで実現されうる。ＤＳＰ１１２は、３Ｄグラフィックイメージの各々を、ワイヤーフレーム構造を形成する面に分割するために使用されてもよい。３Ｄグラフィックシステムの動作を例示するために、以下の説明では、三角形の面を用いる。しかしながら、当業者であれば、ここで説明する原理を、例えば正方形、長方形、平行四辺形のような別の面、あるいはその他の適切な面に容易に拡張できるであろう。
【００１８】
ＤＳＰ１１２は、例えば、外部面をワイヤーフレーム構造に適用することを含む他の処理をも実行する。ＤＳＰ１１２はまた、様々な明暗（lighting）モデルを外部面要素に適用しうる。背面除去（Back face culling）は、ワイヤーフレームの一部、特に、ユーザが見ることのできないワイヤーフレームの裏側（back side）を除去するために使用される。ワイヤーフレーム構造はまた、ディスプレイの外側のイメージ部分の除去のために切り取られうる。
【００１９】
ワイヤーフレーム構造は、その後、その外部面要素と共に、ＤＳＰ１１２によって、３Ｄ数学的空間から２Ｄディスプレイ空間へ変換されうる。２Ｄディスプレイ空間では、三角形のそれぞれが、その３つの頂点の面属性とディスプレイ座標とによって定義されうる。面属性は、深さ（Ｚ）、色（Ｒ、Ｇ、Ｂ）、反射色（Ｒｓ、Ｇ、Ｂ）、テクスチャ（Ｕ、Ｖ）、およびブレンド情報（Ａ）を含みうる。ブレンド情報は透明度に関連しており、かつ、一方が他方の上にあることにより２つが重なっている場合、一方のピクセルの色が、他方のピクセルとどのように組み合わさるべきかを特定する。各面の面属性及びディスプレイ座標は、本明細書では「頂点情報」と称される。ＤＳＰ１１２によって生成される頂点情報は、外部メモリ１０６に格納されるか、あるいは、ＤＳＰの内部メモリに格納される。
【００２０】
頂点情報は、更に、各三角形の領域を含みうる。ＤＳＰ１１２は、三角形における任意の２つのベクトルのクロス乗積をとることにより、三角形の領域を計算することができる。この領域は、反時計回りの頂点順の三角形に対して正の符号を、その逆周りの頂点順の三角形に対して負の符号を持つ。領域の符号は、詳しく後述するような手法で三角形をピクセル情報に再現するために使用されうる。
【００２１】
グラフィックプロセッサ１１４は、外部バス１１６を介してアプリケーションプロセッサ１０２と通信しうる。ブリッジ１１８は、外部バス１１６とシステムバス１０８との間でデータを転送するために使用されうる。グラフィックプロセッサ１１４の目的は、アプリケーションプロセッサ１０２の負荷を低減することである。１つの実施形態では、グラフィックプロセッサ１１４は、その処理機能を極めて迅速に実行できるように、専用のハードウェアコンポーネントを用いて設計される。
【００２２】
図２は、グラフィックプロセッサの概念ブロック図である。グラフィックプロセッサ１１４は、コマンドエンジン２０２、ピクセル処理エンジン２０４、およびフレームバッファ２０６ａ，２０６ｂを含みうる。コマンドエンジン２０２は、アプリケーションプロセッサ１０２によって生成された頂点情報から三角形を構築し、かつピクセル処理エンジン２０４にこの三角形を提供するために使用されうる。後で詳細に記述する方法では、三角形は、コマンドエンジン２０２がアプリケーションプロセッサ１０２から受け取った命令の第１のセットに基づいて、コマンドエンジン２０２によって構築される。ピクセル処理エンジン２０４は、各三角形をピクセル情報に再現するために使用されうる。コマンドエンジン２０２が、他のフレームバッファからのピクセル情報を、表示のためにディスプレイ１２０にリリースする間（図１参照）、ピクセル処理エンジン２０４が、フレームバッファのうちの１つに書き込むことができるように、フレームバッファ２０６ａ，２０６ｂは、ピンポン構造で構成されうる。コマンドエンジン２０２は、アプリケーションプロセッサ１０２から受け取った命令の第２のセットから、フレームバッファ２０６ａ，２０６ｂのピンポン動作を制御するために使用されうる。
【００２３】
ピクセル処理エンジン２０４は、三角形内部のピクセルの位置と、３つの頂点において定義された属性とに基づいて三角形の内部を塗り潰す補間処理を用いて、各三角形をピクセル情報に再現するために使用されうる。頂点の各属性は、以下に示すように、ディスプレイ座標（ｘ，ｙ）の関数として一次方程式によって表現されうる。
【数１】
2008513910.tif 000003
【００２４】
ここで、ｋ＝Ｚ，Ａ，Ｒ，Ｇ，Ｂ，Ｒｓ，Ｇｓ，Ｂｓ，Ｕ，Ｖである。
【００２５】
三角形の内部は、辺方程式（edge equation）によって定義されうる。三角形の３辺は、以下に示すように、ディスプレイ座標（ｘ，ｙ）の関数として一次方程式によって表現されうる。
【数２】
2008513910.tif 000004
【００２６】
グラフィックプロセッサ１１４の少なくとも１つの実施形態では、コマンドエンジン２０２は、ピクセル処理エンジン２０４に対して一度に１つの三角形を供給する。特に、コマンドエンジン２０２は、三角形の３つの頂点の属性及びディスプレイ座標に加えて、三角形の領域から構成される三角形をセットアップエンジン２０８に提供する。セットアップエンジン２０８は、この情報を使って、属性係数（Ａｋ，Ｂｋ，Ｃｋ）及び辺係数（Ａ０−２，Ｂ０−２，Ｃ０−２）を計算する。不要な処理遅延を回避するために、セットアップエンジン２０８が、現在の三角形の属性係数と辺係数とを計算した直後に、コマンドエンジン２０２は、セットアップエンジン２０８に新たな三角形を提供するように構成されうる。
【００２７】
セットアップエンジン２０８は、属性係数と辺係数とを、これら係数が計算された三角形とともに、シェーディングエンジン２１０へ提供するように構成されうる。シェーディングエンジン２１０は、三角形内の各ピクセルの線形補間を行なうために使用されうる。これは、様々な方法で行われうる。一例として、シェーディングエンジン２１０は、三角形の周りの境界ボックスを作成し、次に、この境界ボックスを、ラスタースキャン法によって、ピクセル毎に通過する。シェーディングエンジン２１０は、各ピクセルについて、ピクセルが上述した方程式（２）〜（４）に記載した辺方程式を使用して、三角形内にあるかどうかを判定する。Ｅ０（ｘ、ｙ）、Ｅ１（ｘ、ｙ）、及びＥ２（ｘ、ｙ）が、すべて０以上である場合、ピクセルは三角形の内部にあると考えられる。この関係は、三角形が反時計回り頂点順にピクセル処理エンジン２０４に提供されると仮定している。これは、アプリケーションプロセッサ１０２によるソフトウェア、あるいはコマンドエンジン２０２内で行われうる。コマンドエンジン２０２が、三角形の適切な頂点順序を保証するのに責任を持つのであれば、それは、三角形の領域の符号ビットを評価することにより行われうる。以前に述べたように、アプリケーションプロセッサ１０２によって計算される三角形の領域は、反時計回り頂点順の三角形には正の符号を、そうでない場合には負の符号を持つであろう。したがって、符号ビットが負の場合、コマンドエンジン２０２は、頂点がピクセル処理エンジン２０４に提供される順序を逆にするかもしれない。何れの場合であれ、シェーディングエンジン２１０が、三角形内にピクセルが存在しないと判定すると、シェーディングエンジンは、次のピクセルに進む。しかしながら、ピクセルが三角形内に存在するシェーディングエンジン２１０が判定すると、シェーディングエンジン２１０は、式（１）からピクセルの属性を計算しうる。
【００２８】
ＨＳＲ（陰面消去：Hidden Surface Removal）エンジン２１２は、１つのオブジェクトが別のオブジェクトの前にある場合に、隠されたピクセルを消去するために使用されうる。これは、新たなピクセルの深さ属性を、同じディスプレイ座標と目に見えないドロップピクセルとを持つ以前に再現されたピクセルの深さ属性と比較することによって達成されうる。
【００２９】
ＨＳＲエンジン２１２からの個々の可視ピクセルの属性は、テクスチャエンジン２１４へ提供されうる。テクスチャエンジン２１４は、メモリ（図示せず）からテクスチャデータを検索するために、ピクセルのテクスチャ属性を使用しうる。テクスチャデータは、ピクセルの属性と共に、ブレンディングエンジン２１６に提供される。ブレンディングエンジン２１６は、このピクセルを、テクスチャデータとブレンドする。ピクセルは更に、透明効果を生成するために、同じディスプレイ座標を持つ以前に再現された任意のピクセルとブレンドされうる。この結果は、フレームバッファ２０６ａ，２０６ｂに格納されうる。
【００３０】
図３は、コマンドエンジンの概念ブロック図である。アプリケーションプロセッサ１０２内のメモリは、コマンドエンジン２０２が頂点バッファから読み取りながら、ＤＳＰ１１２が頂点バッファの他の１つに書き込みができるように、ピンポン構造で構成された頂点バッファ３１０ａ，３１０ｂを用いて構成されうる。コマンドエンジン２０２は、ピンポン構成によって、一度に１つの三角形ではなく、頂点情報をバッチで検索できるようになる。コマンドエンジン２０２による単一三角形の要求は、アプリケーションプロセッサ１０２に対する割り込み数を増加させる。これは、アプリケーションプロセッサ１０２を遅くし、貧弱な性能に至らしめる。
【００３１】
コマンドエンジン２０２は、バスインタフェース３０２及びデータキューを含みうる。データキューは、一例として、ファースト・イン・ファースト・アウト（ＦＩＦＯ）メモリ３０４を含む任意の種類の記憶デバイスでありうる。コマンドエンジン２０２はまた、ＦＩＦＯ３０４を命令及び頂点情報で満たすために、アプリケーションプロセッサ１０２内の頂点バッファ３１０ａ，３１０ｂへのアクセスを要求するために使用されるコントローラ３０６を含む。頂点バッファ３１０ａ，３１０ｂにアクセスするために、コントローラ３０６は、サイドバンドシグナリングを用いて、ＤＳＰ１１２に割り込みを送る。この割り込みに応答して、ＤＳＰ１１２は、検索される頂点情報のバッチのための開始アドレス及び停止アドレスを送ることにより、頂点バッファのうちの１つへのアクセスを許可する。コントローラ３０６からの割り込みを受け取った時に、ＤＳＰ１１２が、バッファのうちの１つへの書き込みを行っているのであれば、ＤＳＰ１１２は、コマンドエンジン２０２が、その他の頂点バッファからの命令及び頂点情報を読むことを許可するだろう。ＤＳＰ１１２が頂点バッファへの書き込みを終了した場合、ＤＳＰ１１２が、コントローラ３０６から別の割り込みを受け取るまで、バッファは、ＤＳＰ１１２によってロックされうる。コマンドエンジン２０２は、より多くの頂点情報のためにＤＳＰ１１２へ割り込みを送る前に、頂点バッファを完全に読み取る。
【００３２】
この命令及び頂点情報は、図４Ａに示すように、ＦＩＦＯメモリ内に配置されうる。ＦＩＦＯメモリは、ＦＩＦＯメモリの下側からシフトインされ、上側からシフトアウトされる命令及び頂点情報を備えた多くのメモリブロックを含む。ＦＩＦＯメモリは、最初の２つのメモリブロック４０１，４０２を占有する命令と、その後に続く、１つのメモリブロック４０３〜４０８を占有する各頂点のための頂点情報を備えた６つの頂点のための頂点情報とで示されている。更に、次の２つのメモリブロック４０９，４１０を占有する２つの命令が示され、その後には、７つの頂点のための頂点情報、すなわち、１つのメモリブロック４１１〜４１７を占有する各頂点のための頂点情報が続いている。
【００３３】
図４Ｂは、各メモリブロックにおける頂点情報のためのデータ構造の例を示す。この例では、メモリブロックは６×３２ビットである。第１のアドレスＡ１は、頂点が属する三角形の領域を示す３２ビットのデータを格納するために使用されうる。第２のアドレスＡ２は、頂点のためのディスプレイ座標を格納するために使用されうる。ディスプレイ座標は、１６ビットのｘ座標および１６ビットのｙ座標を含んでいる。頂点の属性は、最後の４つのアドレスＡ３〜Ａ６に格納されうる。一例として、頂点の深さ（すなわちｚ座標）は、第３のアドレスＡ３において格納されうる。頂点の８ビット赤（Ｒ）色成分、及び８ビット緑（Ｇ）色成分も、第３のアドレスＡ３に格納されうる。頂点の８ビット青（Ｂ）色成分は、３つの８ビット反射成分（Ｒｓ、Ｇｓ、Ｂｓ）と共に第４のアドレスＡ４に格納されうる。８ビットブレンド値（Ａ）は、１６ビットＵテクスチャ座標とともに第５のアドレスＡ５に格納されうる。最後に、１６ビットＶテクスチャ座標が、第６のアドレスＡ６に格納されうる。
【００３４】
図４Ａから容易に理解されるように、アプリケーションプロセッサ１０２とコマンドエンジンとの間の外部バス１１６上のトラフィックは、三角形をピクセル情報に再現するために必要な頂点の数を低減することによって低減することができる。これは、共通の頂点を共有する複数の三角形を用いて、三角形を三角形のストリップ又はファンに構成することによって達成される。三角形ストリップの一例を図５Ａに示す。また、三角形ファンの一例を図５Ｂに示す。図５Ａに示すように、通常は１２の頂点を必要とする４つの三角形が、６つの頂点を持つ三角形ストリップとして表される。図５Ｂに示すように、通常は１５の頂点を必要とする５つの三角形が、７つの頂点を持つ三角形ファンとして表される。
【００３５】
図３，図４Ａ，図５Ａ及び図５Ｂに示すように、アセンブラ３０８は、命令を解釈し、三角形を構築するために使用されうる。あるいは、命令を判断し、アセンブラ３０８を、三角形を構築するように構成するためにコントローラ３０６が使用されうる。三角形がストリップ及びファンから構築される手法は、システム要求及び設計の全体的制約に依存して変わりうる。３Ｄグラフィックスシステムの１つの実施形態では、三角形の構築は、頂点情報が受け取られるシーケンスに基づきうる。この実施形態では、頂点情報に先行する２つの命令は続く頂点情報を、ストリップ又はファンとして識別し、かつ、結果として得られるピクセル情報が書き込まれるべきフレームバッファのうちの１つを示すために使用されうる。
【００３６】
アセンブラ３０８は、ＦＩＦＯメモリ３０４から受け取る最初の３つのベクトルＶＡ，ＶＢ，ＶＣによってストリップの第１の三角形５０２を定義する。第１の三角形５０２の領域は、３つの頂点のうちの任意の頂点情報を用いて含まれているかもしれない。ストリップ内の第２の三角形５０４は、受け取った次の頂点ＶＤと、最後に受け取られた２つの頂点ＶＢ，ＶＣとから、アセンブラ３０８によって定義されうる。第２の三角形５０４の領域は、頂点ＶＤの頂点情報に含まれうる。図５Ａに示すように、第１の三角形５０２の頂点は、反時計回り順５０３でアセンブラ３０８に提供されるが、第２の三角形５０４の頂点は、時計回り順５０５でアセンブラに提供されることが容易に分かる。従って、アセンブラ３０８は、第２の三角形５０４をピクセル処理エンジンに提供する前に、最後の２つの頂点ＶＣ，ＶＤの順番を逆にするために使用されうる。
【００３７】
ストリップにおける残りの三角形は、頂点ＶＣ，ＶＤ，ＶＥによって定義される第３の三角形５０６と、頂点ＶＤ，ＶＥ，ＶＦによって定義される第４の三角形５０８と同様にして定義されうる。第３の三角形５０６の領域は、頂点ＶＥの頂点情報に含まれ、第４の三角形５０８の領域は、頂点ＶＦの頂点情報に含まれる。アセンブラ３０８は、第４の三角形５０８が、反時計周りの頂点順でピクセル処理エンジンに提供されるように、最後の２つの頂点ＶＥ，ＶＦの順を逆にするために使用されうる。
【００３８】
ファンの三角形もまた同様の方法で構築されうる。アセンブラ３０８は、ＦＩＦＯメモリ３０４から受け取った最初の３つの頂点ＶＧ，ＶＨ，ＶＩによって、ファン内の第１の三角形５１０を定義する。第１の三角形５１０の領域は、任意の頂点の頂点情報に含まれる。しかしながら、このようなファン構成では、受け取られた最初の頂点は、全ての三角形のための共通の頂点である。したがって、ファンにおける第２の三角形５１２は、共通の頂点ＶＧ、受け取られた次の頂点ＶＪ、及び受け取られた最後の頂点ＶＩによってアセンブラ３０８によって定義される。第２の三角形５１２の領域は、頂点ＶＪのための頂点情報に含まれうる。ファンにおける第３の三角形５１４は、共通の頂点ＶＧ、受け取られた次の頂点ＶＫ、及び受け取られた最後の頂点ＶＪから同様に定義される。第３の三角形５１４の領域は、頂点ＶＫのための頂点情報に含まれうる。このように、アセンブラ３０８は、頂点ＶＧ，ＶＫ，ＶＬによってファン内の第４の三角形５１６を定義し、頂点ＶＧ，ＶＬ，ＶＭによってファイン内の第５の三角形５１８を定義する。第４の三角形５１６の領域は、頂点ＶＧのための頂点情報に含まれうる。また、第５の三角形５１８の領域は、頂点ＶＭのための頂点情報に含まれうる。アセンブラ３０８は、各三角形が、反時計周りの頂点順でピクセル処理エンジンに提供されるように、ファン内の各三角形の最後の２つの頂点の順序を逆にするために使用されうる。
【００３９】
図２に戻って示すように、コマンドエンジン２０２は、毎秒１００，０００以上の三角形の処理をサポートするように要求されうる。コマンドエンジン２０２がこの要求を満たす能力は、大部分は、アプリケーションプロセッサ１０２からグラフィックプロセッサ１１４に送信されうる情報量に依存するかもしれない。三角形をストリップ又はファン形式にパックするために圧縮アルゴリズムを使用することは、この要求を満たすのに必要なバス帯域幅を著しく低減することができる。しかしながら、アプリケーションプロセッサ１０２とグラフィックプロセッサ１１４との間のデータ転送効率を更に増加させるために、他の技術が適用されても良い。一例として、各頂点に対して可変長データ構造が使用されうる。頂点データ構造の長さは、再現処理中に要求される属性に従って変わりうる。一例として、任意数の三角形の面は、テクスチャを必要としない。この場合、テクスチャ座標が図４Ｂのメモリブロックから省略されうる。この場合、頂点データを格納するために必要とされるメモリブロックは、６×３２ビットのメモリブロックから、５×３２ビットのメモリブロックになるかもしれない。また、頂点のために転送される必要のある情報量は２３バイトから１７バイトに減少する。三角形の領域は、ストリップ又はファンの何れかからなる第１の三角形内の３つの頂点のうちの２つについては頂点情報とともに送信される必要はないので、これら三角形のメモリブロックも、５×３２ビットのメモリブロックへ減少することが可能である。
【００４０】
ここで開示された実施形態に関連して記述された様々の説明的論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、アプリケーションに固有の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）あるいはその他のプログラマブル論理デバイス、ディスクリートゲートあるいはトランジスタロジック、ディスクリートハードウェア部品、又は上述された機能を実現するために設計された上記何れかの組み合わせを用いて実現又は実行されうる。汎用プロセッサとしてマイクロプロセッサを用いることが可能であるが、代わりに、従来技術によるプロセッサ、コントローラ、マイクロコントローラ、あるいは状態機器を用いることも可能である。プロセッサは、たとえばＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアに接続された１つ以上のマイクロプロセッサ、またはこのような任意の構成である計算デバイスの組み合わせとして実現することも可能である。
【００４１】
ここで開示された実施形態に関連して記述された方法やアルゴリズムは、ハードウェアや、プロセッサによって実行されるソフトウェアモジュールや、これらの組み合わせによって直接的に具現化される。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、あるいは当該技術分野で知られているその他の型式の記憶媒体に収納されうる。記憶媒体は、プロセッサがそこから情報を読み取り、またそこに情報を書き込むことができるようにプロセッサに結合される。または、記憶媒体はプロセッサに統合されうる。このプロセッサと記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、送信及び／又は受信コンポーネント、あるいはその他の場所に存在することもできる。あるいは、このプロセッサと記憶媒体は、送信及び／又は受信コンポーネント、あるいはその他の場所にディスクリート部品として存在しうる。
【００４２】
開示された実施形態における上述の記載は、当該技術分野におけるいかなる人であっても、本発明の活用または利用を可能とするように提供される。これらの実施形態への様々な変形例もまた、当該技術分野における熟練者に対しては明らかであって、ここで定義された一般的な原理は、本発明の主旨または範囲を逸脱せずに他の実施形態にも適用されうる。このように、本発明は、ここで示された実施形態に制限されるものではなく、「１又は複数」と明示的に述べられていないのであれば、単数形による要素に対する参照が、「１及び１のみ」を意味するように意図されていない請求項に対応した全範囲に相当するものを意図している。本開示を通じて記載され、当業者に周知、あるいは後に周知になる様々な実施形態の要素に対する全ての構造的及び機能的等化物は、本明細書において参照によって明らかに組み込まれ、特許請求の範囲に含まれるものと意図される。更に、本明細書に開示された何れも、特許請求の範囲に明示的に記載されているかに関わらず、公衆に放棄されることは意図されていない。要素が、"means for"フレーズを用いて明示的に記載されていないのであれば、あるいは方法請求項の場合、"step for"フレーズを用いて明示的に記載されていないのであれば、どの請求項要素も、３５Ｕ．Ｓ．Ｃ  １１２条第６パラグラフの下で解釈されるものではない。
【図面の簡単な説明】
【００４３】
【図１】図１は、アプリケーションプロセッサの動作を例示する３Ｄグラフィックシステムの概念ブロック図である。
【図２】図２は、グラフィックプロセッサの動作を例示する３Ｄグラフィックシステムの概念ブロック図である。
【図３】図３は、アプリケーションプロセッサとグラフィックプロセッサとの間のインタフェースを例示する３Ｄグラフィックシステムの概念ブロック図である。
【図４Ａ】図４Ａは、命令及び頂点情報がアプリケーションプロセッサから検索され、グラフィックスプロセッサ内のメモリに格納される方法を例示する概念図である。
【図４Ｂ】図４Ｂは、図４Ａのグラフィックプロセッサのメモリにおける頂点情報のデータ構造を例示する概念図である。
【図１】
2008513910.tif 000005
【図２】
2008513910.tif 000006
【図３】
2008513910.tif 000007
【図４Ａ】
2008513910.tif 000008
【図４Ｂ】
2008513910.tif 000009
【国際調査報告】
2008513910.tif 000010
2008513910.tif 000011
2008513910.tif 000012
2008513910.tif 000013
2008513910.tif 000014