(57)【要約】【課題】本発明は、フレームの異なる領域を描画する際に実行されるグラフィック処理の監視に関する。【解決手段】グラフィック処理装置６は、画素値のフレームの異なる領域を別々に描画する、描画回路２４を備える。描画回路２４に連結された監視回路３０、３２、３４、３６、３８、４０は、描画された領域ごとに１つ以上のパラメータを取り込み、これらのパラメータをパラメータメモリ８に記憶する。性能フレームは、画像フレーム内の領域に対応する性能フレーム内の領域ごとに性能を表す画素値を備え、取り込まれた性能パラメータに基づいて選択された視覚的特徴を有する、取り込みおよび記憶を行ったパラメータから生成することができる。視覚的特徴は、グレースケール値、画素強度、または画素色調であり得る。【選択図】図１
2010027050.tif 000002
【特許請求の範囲】
【請求項１】
シーンを表す画素値のフレームを描画するためのグラフィック処理装置であって、
前記フレームの異なる領域を別々に描画するための描画回路と、
描画された領域ごとに１つ以上のパラメータを取り込むように、前記描画回路に連結された監視回路と、
領域ごとに、前記監視回路によって取り込まれた前記１つ以上のパラメータを別々に記憶するように、前記監視回路に連結されたパラメータメモリと、
を備える、グラフィック処理装置。
【請求項２】
前記シーンは、１つ以上のプリミティブを含み、前記フレームは、複数の画素値のタイルで形成される、請求項１に記載のグラフィック処理装置。
【請求項３】
前記描画回路は、前記フレームを生成するように、前記１つ以上のプリミティブを特徴付けるデータに応答して、一連の前記タイルを描画し、前記タイルのそれぞれが、前記タイルと潜在的に交差するものとして識別された前記１つ以上のプリミティブの選択のために順々に描画される、タイルベースの描画回路である、請求項２に記載のグラフィック処理装置。
【請求項４】
前記監視回路は、性能監視回路を含み、前記１つ以上のパラメータは、１つ以上の性能パラメータを含む、請求項１に記載のグラフィック処理装置。
【請求項５】
前記描画回路は、現在アクティブな領域の描画完了時に、前記現在アクティブな領域に対する画素値をフレームメモリに書き込み、
前記監視回路は、前記描画回路が、前記フレームメモリに書き込まれる完了領域に対する、描画された画素値を持たない時に、前記１つ以上のパラメータを前記パラメータメモリに書き込む、請求項１に記載のグラフィック処理装置。
【請求項６】
前記パラメータメモリおよび前記フレームメモリは、共有メモリの一部である、請求項５に記載のグラフィック処理装置。
【請求項７】
前記監視回路は、各領域の描画に関連付けられたイベントをカウントするように、前記グラフィック処理装置内のそれぞれのポイントに連結された１つ以上のカウンタを備える、請求項１に記載のグラフィック処理装置。
【請求項８】
前記１つ以上のカウンタのうちの少なくとも１つに関連付けられたパラメータ選択回路は、前記グラフィック処理装置内のどのポイントが連結され、したがって、どのイベントがカウントされるのかを選択するように、パラメータ選択信号に応答する、請求項７に記載のグラフィック処理装置。
【請求項９】
前記パラメータ選択信号は、ユーザがどのイベントをカウントすべきかを選択できるように、ユーザプログラマブルである、請求項８に記載のグラフィック処理装置。
【請求項１０】
前記１つ以上のパラメータは、
領域を描画する際に前記グラフィック処理装置によって使用される処理サイクルの数、
領域を描画する時の前記グラフィック処理装置のキャッシュメモリ内のキャッシュミスの数、
領域を描画する時の前記グラフィック処理装置に連結されたバス上のバストランザクションの数、および
領域を描画する時に処理される前記領域と潜在的に交差するものとして識別されるプリミティブの数、
のうちの１つ以上を備える、請求項１に記載のグラフィック処理装置。
【請求項１１】
前記フレームの描画完了時に、前記パラメータメモリは、前記フレームを形成する前記領域の配列に対応するパラメータの配列を含む、請求項１に記載のグラフィック処理装置。
【請求項１２】
シーンを表す画素値のフレームを描画するグラフィック処理装置のための監視データを生成する方法であって、
前記フレームの異なる領域を別々に描画するステップと、
描画された領域ごとに１つ以上のパラメータを取り込むステップと、
領域ごとに前記取り込まれた１つ以上のパラメータを別々に記憶するステップと、
を含む、方法。
【請求項１３】
シーンを表す画素値のフレームを描画するためのグラフィック処理装置であって、
前記フレームの異なる領域を別々に描画するための描画手段と、
描画された領域ごとに１つ以上のパラメータを取り込むための、前記描画手段に連結された監視手段と、
領域ごとに前記監視手段によって取り込まれた前記１つ以上のパラメータを別々に記憶するための、前記監視手段に連結されたパラメータメモリ手段と、
を備える、グラフィック処理装置。
【請求項１４】
シーンを表す画像フレームの異なる領域を別々に描画するグラフィック処理装置を解析する方法であって、
前記フレームのそれぞれの領域に対して、パラメータメモリ内に記憶された１つ以上のパラメータの配列を読み込むステップと、
前記画像フレーム内の対応する領域の少なくとも１つのパラメータに基づいて選択された少なくとも１つの視覚的特徴を有する、パラメータを表す画素値の領域を備えたパラメータフレームを生成するステップと、
を含む、方法。
【請求項１５】
前記シーンは、１つ以上のプリミティブを含み、前記フレームは、複数の画素値のタイルで形成される、請求項１４に記載の方法。
【請求項１６】
前記１つ以上のプリミティブを特徴付けるデータに応答して、前記画像フレームが一連の前記タイルとして描画され、前記タイルのそれぞれが、前記タイルと潜在的に交差するものとして識別された前記１つ以上のプリミティブの選択のために順々に描画される、請求項１５に記載の方法。
【請求項１７】
前記１つ以上のパラメータは、１つ以上の性能パラメータを含む、請求項１４に記載の方法。
【請求項１８】
前記パラメータフレーム内の各領域は、前記画像フレーム内に対応する領域を有する、請求項１４に記載の方法。
【請求項１９】
前記少なくとも１つの視覚的特徴は、
画素グレースケール値、
画素強度、および
画素色調、
のうちの１つ以上を含む、請求項１４に記載の方法。
【請求項２０】
複数のパラメータフレームは、画像フレームごとに生成され、異なるパラメータフレームは、異なるパラメータに依存する画素値を備えた領域を有する、請求項１４に記載の方法。
【請求項２１】
前記１つ以上のパラメータの配列および前記画像フレームは、共有メモリ内に記憶される、請求項１４に記載の方法。
【請求項２２】
前記グラフィック処理装置は、集積回路の一部であり、前記読み込みおよび生成ステップは、前記集積回路に連結された汎用コンピュータによって実行される、請求項１４に記載の方法。
【請求項２３】
汎用コンピュータが請求項１４に記載の方法を実行するように制御するためのコンピュータプログラムを記憶した、コンピュータプログラム記憶媒体。
【請求項２４】
請求項１に記載のグラフィック処理装置を制御するためのドライバコンピュータプログラムを記憶した、コンピュータプログラム記憶媒体であって、前記ドライバコンピュータプログラムによって、ユーザは、取り込まれる前記１つ以上のパラメータの選択が可能になる、コンピュータプログラム記憶媒体。
【請求項２５】
前記ドライバプログラムによって、ユーザは、前記パラメータメモリとして使用される記憶位置の選択が可能になる、請求項２４に記載のコンピュータプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィック処理の分野に関する。より具体的には、本発明は、フレームの異なる領域を描画する際に実行されるグラフィック処理の監視に関する。
【背景技術】
【０００２】
グラフィック処理は、計算集中型のタスクである。このようなグラフィック処理を効率的に実行できるようにするために、しばしば、例えば性能ボトルネックを低減するように、実行されている処理、またはその処理を実行しているシステムを適合させる必要がある。性能ボトルネックおよび他の動作特性を生じさせる影響は、捕らえ難いものである可能性があり、性能の低さまたは他の問題の発生を識別することが困難な場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
実行されるグラフィック処理動作に関する診断／性能情報を取り込むことができる監視回路を備えた、グラフィック処理システムを提供することが知られている。このような情報は、例えば、各フレームを描画する際に、グラフィック処理装置の処理サイクルがどのくらい使用されるのかを、ハードウェアの設計者またはアプリケーションの作者に示す。このような機構は、過剰な数の処理サイクルが必要となる、といった問題の存在を識別する際に有用となる場合があるが、そのような問題を何が生じさせているのかを理解するにあたっての問題が存在する。その中にある問題を識別するように、グラフィック処理システムの複雑な挙動の理解を支援することができる技術が、好都合である。
【課題を解決するための手段】
【０００４】
一態様によれば、本発明は、シーンを表す画素値のフレームを描画するためのグラフィック処理装置であって、
該フレームの異なる領域を別々に描画するための描画回路と、
描画された領域ごとに１つ以上のパラメータを取り込むように、該描画回路に連結された監視回路と、
領域ごとに、該監視回路によって取り込まれた該１つ以上のパラメータを別々に記憶するように、該監視回路に連結されたパラメータメモリと、を備える、グラフィック処理装置を提供する。
【０００５】
本技術は、フレーム内の複数の別々に描画された領域のそれぞれに関する取り込みパラメータによって、それらのパラメータを生じさせる影響、およびそれらがし得る潜在的な問題のより即座の理解を可能にするものと認識する。例えば、描画されたフレーム内の特定の領域に関連付けられた過度のサイクルカウントを示すパラメータによって、ユーザは、その原因を識別する時に、その過度のサイクルカウントを生じさせる領域に固有の特性に集中できるようになる。取り込まれた監視パラメータと、描画されたフレーム内の対応する領域との間の即座の相関が可能になることで、診断、最適化、および他のアクティビティを大幅に容易にする。
【０００６】
グラフィック処理装置によって実行される描画は、多種多様な異なる形態を取ることができるものと理解されよう。一例では、描画されたシーンは、１つ以上のプリミティブを含み得、フレームは、複数の画素値のタイルで形成され得る。
【０００７】
上述の状況では、描画回路は、フレーム全体を生成するように、１つ以上のプリミティブ（primitive）を特徴付けるデータを読み込み、一連のタイルを描画し、タイルのそれぞれが、タイルと潜在的に交差するものとして識別されたプリミティブの選択のために順々に描画される、タイルベースの描画回路であることができる。
【０００８】
このようなシステムでの各タイルの別々の描画は、その描画に関連付けられたパラメータの別々の取り込みおよび記憶に、よく適している。
【０００９】
取り込まれ、記憶されたパラメータは、多種多様な形態を有することができるものと理解されよう。パラメータは、一般的な意味では診断用であることができる。しかしながら、本技術は特に、監視、取り込み、記憶を行ったパラメータが性能パラメータである場合の用途に、よく適している。
【００１０】
監視回路のアクションが描画回路を妨げないことが有利である。なぜなら、そのような妨げは、不正確な、および／または誤解を招くパラメータの取り込みを生じさせる可能性があるからである。例えば、パラメータの取り込みおよび記憶アクションが、描画回路によって要求されるメモリアクセスを妨げる場合は、監視、取り込み、および記憶を行わずに存在する欠陥の結果としてではなく、そのような監視、取り込み、および記憶を行った結果として、性能の低下が観察され得る。
【００１１】
本発明の一部の実施形態では、描画回路は、現在アクティブな領域の描画完了時に、その現在アクティブな領域に対する画素値をフレームメモリに書き込む。監視回路は、描画回路が、フレームメモリに書き込まれる完了領域に対する描画された画素値を持たない時に、１つ以上のパラメータをパラメータメモリに書き込むように形成することができる。このようにして、パラメータのパラメータメモリへの書き込みは、描画回路が、それ自体の書き込みを行おうとしていない時に実行することができ、したがって、監視回路は、グラフィック処理装置の性能の、この面への影響が少なくなる。
【００１２】
パラメータメモリおよびフレームメモリは、別々に提供することができるが、これらが共有メモリの一部を形成すれば好都合であることが理解されよう。特殊用途のパラメータメモリを監視回路による使用に対してのみ提供することは、現場で使用する場合、監視が不要である時には、専用パラメータメモリがアイドル状態にあることとなるので、無駄となる。パラメータメモリが、共有メモリの一部を形成する場合、その共有メモリは、監視回路によって生成されたパラメータを記憶する必要がない時には、他の目的に使用することができ、また、使用できるパラメータメモリのサイズの柔軟性がより大きくなる。
【００１３】
監視回路は、多種多様な異なる形態を取ることができる。監視回路を、各領域の描画に関連付けられたイベントをカウントするように、グラフィック処理装置内のそれぞれのポイントに連結された１つ以上のカウンタの形態で提供することで、多種多様な有用なパラメータを提供することができる低オーバヘッドの監視機構を提供する。
【００１４】
監視回路の柔軟性は、グラフィック処理装置内のどのポイント／イベントが、関係するカウンタによってカウントされるのかを選択するように、１つ以上のカウンタに関連付けられ、パラメータ選択信号に応答する、パラメータ選択回路を提供することによって改善することができる。このようにして、提供が必要となるカウンタが比較的少ないので、監視回路に関連付けられたオーバヘッドを削減することができ、また、広範囲にわたるパラメータを取り込む必要がある場合、これは、異なる描画に対して異なるイベントをカウンタがカウントするように、異なるパラメータ選択信号を有する同じフレームの描画を再実行することによって達成することができる。
【００１５】
上述の柔軟性は、パラメータ選択信号が、ユーザプログラマブルな信号である時に援助される。
【００１６】
監視されるパラメータは、多種多様な異なる形態を有することができるものと理解されよう。監視することができる特に有用なパラメータには、領域を描画する際にグラフィック処理装置によって使用される処理サイクルの数、領域を描画する時のグラフィック処理装置のキャッシュメモリ内のキャッシュミスの数、領域を描画する時のグラフィック処理装置に連結されたバス上のバストランザクションの数、および領域を描画する時の、処理される領域と潜在的に交差するものとして識別されるプリミティブの数、が挙げられる。異なる実施形態では、上述したものとは異なる、および／または代替的な多くのパラメータも監視、取り込み、および記憶することができるものと理解されよう。本技術は、特定のグラフィック処理装置に適する／有用であるとみなされ得る、多種多様な異なるパラメータを包含する。
【００１７】
パラメータは、種々の異なる方法でパラメータメモリ内に記憶され得る。しかしながら、フレームの描画完了時に、パラメータメモリが、描画されたフレームを形成する領域の配列に対応するパラメータの配列を含むように、パラメータがパラメータメモリ内に記憶されることが好都合である。領域とパラメータ配列の要素との間の一対一対応は、パラメータデータの即座の理解、およびそのような理解を支援する、そのパラメータデータの簡略化された処理を容易にする。
【００１８】
別の態様によれば、本発明は、シーンを表す画素値のフレームを描画するグラフィック処理装置のための監視データを生成する方法であって、
該フレームの異なる領域を別々に描画するステップと、
描画された領域ごとに１つ以上のパラメータを取り込むステップと、
領域ごとに該取り込まれた１つ以上のパラメータを別々に記憶するステップと、を含む、方法を提供する。
【００１９】
さらなる態様によれば、本発明は、シーンを表す画像フレームの異なる領域を別々に描画するグラフィック処理装置を解析する方法であって、
該フレームのそれぞれの領域に対して、パラメータメモリ内に記憶された１つ以上のパラメータの配列を読み込むステップと、
該画像フレーム内の対応する領域の少なくとも１つのパラメータに基づいて選択された少なくとも１つの視覚的特徴を有する、パラメータを表す画素値の領域を備えたパラメータフレームを生成するステップと、を含む、方法を提供する。
【００２０】
上述した領域単位基準での描画のためのパラメータデータの取り込みに加えて、本発明の補完的な態様は、シーンを表す画像フレームの異なる領域を別々に描画するグラフィック処理装置を解析する方法であって、
該フレームのそれぞれの領域に対して、パラメータメモリ内に記憶された１つ以上のパラメータの配列を読み込むステップと、
該画像フレーム内の対応する領域の少なくとも１つのパラメータに基づいて選択された少なくとも１つの視覚的特徴を有する、パラメータを表す画素値の領域を備えたパラメータフレームを生成するステップと、を含む、方法を提供する。
【００２１】
フレーム内に別々に描画された領域に関して別々に取り込まれたパラメータデータを有することで、この本技術の態様は、そのようなパラメータの配列を読み込み、かつ、画像フレーム内の対応する領域の少なくとも１つのパラメータに基づいて選択された少なくとも１つの視覚的特徴を有する、パラメータを表す画素値の領域を備えた表示用のパラメータフレームの生成に役立つ。
【００２２】
このようにして、取り込まれたパラメータデータは、重要なパラメータを生じさせる画像フレームの領域を識別するように、パラメータフレームと画像フレームとの比較を容易にする、等によって、パラメータデータの理解を大幅に容易にする様式で、領域単位基準でパラメータフレームとして表示することができる。
【００２３】
上述のように、画像フレームの描画は、領域単位の処理を生じさせる種々の異なる方法で実行することができるが、本技術は特に、タイルベースの描画に、よく適している。さらに、パラメータメモリ内に記憶されたパラメータは、多くの異なる形態を有することができるが、本技術は、パラメータが性能パラメータである時の使用に、よく適している。
【００２４】
パラメータを表す画素値の視覚的特徴は、種々の異なる方法で選択することができる。パラメータフレームを使用して取り込まれたパラメータデータの即座の理解を可能にする際に特に有用な、一部の視覚的特徴は、画素グレースケール値、画素強度、および／または画素色調である。
【００２５】
取り込まれたパラメータ値からパラメータフレームを１つしか生成しないことも可能であるが、これは、一部の例示的な実施形態では、異なるパラメータに依存するピクセル値を備えた領域を有する異なるパラメータフレームによって、画像フレームごとに複数のパラメータフレームを生成することができるように、複数のパラメータの配列（または複数のパラメータ要素を有する配列）を取り込むことが有用となり得る。性能ボトルネック等を生じさせる影響は、捕らえ難いものとなる可能性があり、問題は、画像フレーム内の特定の領域に対する影響の組み合わせを識別できるように、複数のパラメータフレームを使用して、より容易に識別することができ得る。
【００２６】
多くの実施形態では、グラフィック処理装置は、集積回路の一部であり、上述の読み込みおよび生成ステップが、関係する集積回路に連結された汎用コンピュータによって実行されるのが好都合となり得るものと理解されよう。このように、診断／性能監視の理由のために集積回路に連結された汎用コンピュータは、ハードウェアおよびソフトウェアの設計およびデバッグ段階を通して、当業者には、なじみのあるものとなろう。
【００２７】
本発明の別の態様は、上述の読み込みおよび生成の方法に基づいて汎用コンピュータを制御するためのコンピュータプログラムを記憶した、コンピュータプログラム記憶媒体を提供する。
【００２８】
監視回路およびパラメータメモリを組み込んだグラフィック処理装置は、使用のためにこのような特徴を構成することが必要になる場合がある。したがって、本技術の別の態様は、上述のグラフィック処理装置を制御し、特に、ユーザが、取り込むべき１つ以上のパラメータを選択することを可能にする、ドライバコンピュータプログラムを記憶する、コンピュータプログラム記憶媒体を提供する。
【００２９】
このようなドライバコンピュータプログラムは、グラフィック処理装置が一部を形成する集積回路によって、またはグラフィック処理装置を初期化および制御するドライバのような、グラフィック処理装置が一部を形成するユーザ装置内で実行することができる。
【００３０】
また、ドライバプログラムによって、ユーザは、パラメータメモリとして使用される記憶位置の選択が可能になる。
【００３１】
本発明の上述の、および他の目的、特徴、および利点は、添付図面とともに読み取られる例示的な実施形態の以下の詳細な説明から明らかとなろう。
【図面の簡単な説明】
【００３２】
【図１】グラフィック処理ユニットを組み込み、診断用汎用コンピュータおよびＬＣＤディスプレイに連結された、システムオンチップの集積回路を概略的に示した図である。
【図２】描画すべき３つのプリミティブを含み、タイル単位基準で別々に描画された画素値のタイルの配列で描画および構成された、画像フレームを概略的に示した図である。
【図３】図２の画像フレームに対応し、それぞれのタイルと潜在的に交差するプリミティブの数を表す、取り込まれたパラメータ値の性能パラメータ配列を概略的に示した図である。
【図４】性能フレーム内の画素値の各タイルが、図３の性能パラメータ配列から読み込んだ時の、図２の画像フレーム内の対応するタイルに関連付けられたパラメータ値に対応する視覚的特徴を有する、図３の性能パラメータ配列から生成した性能フレームを概略的に示した図である。
【図５】カウンタ値の取り込み、およびパラメータとしてのカウンタ値のパラメータメモリへの記憶を含む、図１のグラフィック処理ユニットによって実行されるタイルの描画を概略的に示した流れ図である。
【図６】図４に示されるような性能フレームを、図３に示されるような性能パラメータ配列からどのように生成することができるのかを概略的に示した流れ図である。
【図７】監視回路（カウンタおよびカウンタ制御器）の初期化を含む、グラフィック処理ユニットを初期化する際のドライバコンピュータプログラムのアクションを概略的に示した図である。
【図８】少なくとも図６に示される処理を実行するのに好適なタイプの汎用コンピュータを概略的に示した図である。
【発明を実施するための形態】
【００３３】
図１は、全てがシステムバス１４を介して連結された、中央処理装置４（汎用ＡＲＭプロセッサ等）、グラフィック処理ユニット６、メモリ８、ディスプレイドライバ１０、入出力回路１２を含む、システムオンチップの集積回路２を概略的に示している。汎用コンピュータ１６は、図８に関連して下述するように、メモリ８からのデータの読み込み、およびメモリ８へのデータの書き込みを可能にするように、入出力回路１２に接続される。汎用コンピュータ１６によってメモリ８から読み込まれたデータは、画像フレームデータ１８、および性能パラメータデータ２０の配列を含むことができる。汎用コンピュータ１６は、グラフィック処理ユニット６によって実行された処理の理解を容易にするように、性能データ２０の配列を使用して、画像フレームデータ１８を表示することができ、かつ性能フレームを生成して表示することができる。性能パラメータデータは、多種多様な異なるパラメータを表すことができる。これらのパラメータの実施例を以下に考察する。
【００３４】
通常の（非診断）動作では、グラフィック処理ユニット６は、ディスプレイドライバ１０を使用して付属のＬＣＤ２２上に表示するための画像フレームデータ１８を生成する。グラフィック処理ユニット６は、Ｃａｍｂｒｉｄｇｅ，ＥｎｇｌａｎｄのＡＲＭ  ＬｉｍｉｔｅｄによるＭＡＬＩグラフィック処理ユニット設計によって実行されるタイプの、タイルベースの描画等を含む、３次元グラフィック処理を実行する。
【００３５】
グラフィック処理ユニット６は、システムバス１４に接続するためのメモリインタフェース２８とともに、タイルベースの描画回路２４と、グラフィック処理ユニットキャッシュ２６とを含む。実際には、グラフィック処理ユニット６は、一般的に、さらに多くの回路要素を含むことになるが、これらは、明確にするために図１から除外されているものと理解されよう。
【００３６】
図１には、カウンタ制御器３４によって制御され、多重化器３６、３８を介して、カウントされるべきそれぞれの信号が供給されるカウンタ３０、３２を含む、監視回路も示されている。多重化器３６、３８のそれぞれは、グラフィック処理ユニット６によって使用される処理クロックサイクルの数、タイルベースの描画回路２４によって描画されているタイルと潜在的に交差するものとして識別されたプリミティブの数、グラフィック処理ユニットキャッシュ２６内のミス、およびメモリインタフェース回路２８によって実行されるバストランザクションを選択的に監視するように、グラフィック処理ユニット６内の異なるポイントにそれぞれ連結された、４つの入力信号を受信する。多重化器３６、３８は、監視すべき異なるイベント信号を選択して、これらのイベント信号を、カウントされるように、それぞれのカウンタ３０、３２に供給する。カウンタ制御器３４は、多重化器３６、３８によってカウンタ３０、３２に渡された信号を選択するように、メモリマップされたレジスタ４０内のユーザプログラマブルな値に応答する。したがって、ユーザは、画像フレームが描画された時に、どちらのパラメータを監視すべきかを選択して、性能パラメータ配列を形成するように、レジスタ４０に書き込むことができる。レジスタ４０は、性能パラメータ配列データ２０が記憶されるメモリ８内の記憶場所を指定するように、ユーザプログラマブルでもある。
【００３７】
カウンタ制御器３４は、タイルベースの描画回路２４によって生成されたタイル完了信号に応答し、カウンタ３０、３２の現在の値を読み込むように、カウンタ制御器３４を起動させ、それらのカウンタ値を生じさせる描画されたタイルに対応する位置に、性能パラメータ配列データ２０の一部としてメモリ８内に書き込まれるように、これらの値を、メモリインタフェース回路２８に送信する。カウント値は、関係するカウントの性質に応じて、累積的であり得、またはそれらを読み込むたびにリセットされ得る。
【００３８】
メモリインタフェース回路２８はまた、タイルベースの描画回路２４によって生成された描画タイルの画素値を、メモリ８の画像フレーム１８内に書き込む役割を果たす。このような、描画されたタイルの画素値の書き込みは、各タイルが完了した時にバーストで行われ、パラメータデータの性能パラメータ配列２０への書き込みは、パラメータの書き込みがグラフィック処理ユニット６の性能を妨げないように、タイルデータの画素値の書き込みの間の間隙に適合させることができる。メモリインタフェース２８は、タイルベースの描画回路２４からの書き込みが常に高い優先度を有するように、タイルベースの描画回路２４からの書き込みと、カウンタ制御器３４からの書き込みとを仲裁するように配設することができる。
【００３９】
タイルベースの描画は、本実施例では、１６×１６の画素値を含むタイルを使用して実行される（しかしながら、他のサイズおよび形状のタイルも可能であるものと理解されよう）。メモリ８内に記憶された表示リスト４２は、タイルベースの描画回路によって描画された各タイルと潜在的に交差する、プリミティブのリストを記憶する。表示リスト４２は、汎用プロセッサ４によって生成され、メモリ８内に記憶され得る。グラフィック処理ユニット６は、関係するタイルと潜在的に交差するプリミティブを識別するデータに応じて、かつ、あらゆるテクスチャ、シェーディング、または使用中であり得る他のグラフィック制御データを考慮して、表示リスト４２を読み込み、その後各画素値を計算することによって、タイル単位基準で描画する役目をする。タイルが生成されると、１６×１６の画素値の配列が、メモリ８の画像フレーム１８内の対応する位置内に書き込まれる。このようなタイル単位処理は、総じて、各プリミティブを、プリミティブ単位基準で画像フレーム１８内に順々に描画することによって画像が形成される、通常は即時モード処理と称される処理とは区別される。
【００４０】
監視されるパラメータは、多種多様な異なる形態を取ることができる。監視に特に有用なパラメータには、各タイルを描画する際にグラフィック処理ユニット６によって使用される処理サイクルの数、各タイルを描画する時のグラフィック処理ユニットキャッシュ２６内のキャッシュミスの数、各タイルを描画する時のメモリインタフェース回路２８によって実行されたシステムバス１４へのバストランザクションの数、および／または表示リスト４２の読み込みから、タイルベースの描画回路２４によって識別された時に処理されているタイルと潜在的に交差するものとして識別されたプリミティブの数が挙げられる。
【００４１】
図２は、描画される単純な画像フレームを概略的に示す。この画像フレームは、２つの三角形および１つの正方形の形態で３つプリミティブを含む。画像フレームは、１０×１０のタイルで構成され、これらのタイルのそれぞれは、１６×１６の画素値を含むことが確認されよう。各タイルは、タイルベースの描画回路２４によって順々に描画される。各タイルが描画される時に、そのタイルと潜在的に交差するプリミティブの数を識別するように、メモリ８内の表示リスト４２が読み込まれる。このプリミティブ数のデータは、タイルベースの描画回路２４によって出力され、カウンタ３０、３２のうちの１つ内に取り込まれる。
【００４２】
図３は、配列内の各タイルと潜在的に交差するプリミティブの数が取り込まれて記憶された、図２の画像フレームに対応する性能パラメータ配列を示す。画像フレーム内の各タイルに関する、記憶されたプリミティブの数を表すパラメータ値が存在することが確認されよう。本実施例では、図２の画像フレームのタイルと、図３の性能パラメータ配列内に記憶されたパラメータ値との間に一対一対応が存在する。図３の性能パラメータ配列内の各エントリは、プリミティブカウントの数、サイクルカウント、キャッシュミスカウント、メモリトランザクションカウントの数等の、同じタイルに関連する複数の異なるパラメータを含むことができるものと理解されよう。代替的には、別々の性能パラメータ配列を、監視および取り込みを行った異なる性能パラメータに関して保持することができる。各ファイルに関連付けられたプリミティブの数は、取り込み、カウントするのに比較的単純なパラメータであるが、図３に示されたデータの配列の解釈は、図３に二次元配列の形態で示されていても、単純ではないことが図３から観察されよう。
【００４３】
図４は、取り込まれた性能パラメータの理解および解釈を容易にするために、性能フレームを、図３の性能パラメータ配列からどのように生成し得るかを示す。図４の性能フレームは、図２の画像フレームのタイルと、図３の性能パラメータアレイ内に記憶されたデータ値との一対一対応のタイルで形成される。便宜上、性能フレーム内のタイルは、図２の画像フレーム内のタイルと同じサイズを有することができる。すなわち、図３の性能パラメータ配列内の対応するパラメータ値に依存して選択された少なくとも１つの視覚的特徴を有する、１６×１６のパラメータを表す画素値で形成される。図３の性能パラメータ配列から、全てのタイルに対するプリミティブの最大数は３であり、最小数は０であることが確認されよう。最大および最小値は、性能パラメータ配列内で検索することができ、また、図４の性能フレーム内のパラメータを表す画素値のパラメータと視覚的特徴との間のマッピングを効率的に選択するのに使用することができる。別の手法は、ユーザに、使用するマップを手動で選択できるようにするものであり、例えば、最大および最小値、ならびに、どの視覚的特徴がこれらに対応するか等であって、視覚的特徴は、これらの最大および最小値間のパラメータ値に基づいて、所定の様式で変化する。最小および最大値は、単一の性能パラメータ配列に基づいて決定することができ、または、同じパラメータに対する複数の性能パラメータ配列に基づいて決定し得る。個々の性能フレーム内の特異なパラメータ値の識別を、より容易に可能にすることができるので、同じパラメータに対して取り込まれた複数の配列のパラメータ値を考慮してマッピングを設定することが好ましい場合がある。図４に示された実施例は、潜在的に交差するプリミティブが３つであったタイルに対しては黒べたのシェーディングに、プリミティブが２つであったタイルに対しては網目のシェーディングに、プリミティブが１つであったタイルに対しては斜線のシェーディングに、プリミティブがゼロであったタイルに対してはシェーディング無しに関連付けている。このように、そのような高い数のプリミティブが問題であるとみなされる場合、それに対し最高数のプリミティブの考慮が必要なタイルを容易に識別することができ、図２の画像フレームとの視覚的な比較が成され得る。このような高い数のプリミティブを生じさせる画像フレームの性質は、その後必要に応じて適合させ得る。
【００４４】
上述したものは、性能フレームをどのように形成することができるのかを示す一実施例に過ぎないと理解されよう。パラメータ値に基づいて変化する視覚的特徴は、多種多様な異なる形態を有し得る。一実施例として、視覚的特徴は、画素グレースケール値、画素強度、および／または画素色調であり得る。必要に応じて、他の視覚的特徴（例えば、ある程度のパラメータ値を超えた時に点滅する）も想定および使用され得る。
【００４５】
図５は、タイルベースの描画回路２４によって実行される処理に対応する流れ図を概略的に示している。ステップ４４で、描画される第１のタイルが選択される。ステップ４６で、現在のタイルと潜在的に交差するプリミティブを識別するように、表示リスト４２が読み込まれる。ステップ４８で、読み込まれたプリミティブを使用してタイルを描画し、また、監視されている現在選択されたパラメータに基づいて、カウンタ３０、３２を更新する。ステップ５０で、描画された画素値の配列が、メモリ８内の画像フレーム１８内に書き込まれる。ステップ５２で、直前に描画されたタイルに対する、カウンタ３０、３２からの性能カウンタ値が、メモリインタフェース回路２８を介して、カウンタ制御器３４によって性能パラメータ配列２０内に書き込まれる。ステップ５４で、現在のタイルが、画像フレーム内の最後のファイルであるかどうかを識別する。現在のタイルが最後のタイルではない場合は、ステップ５６で次のタイルを選択し、処理はステップ４６に戻り、そうでない場合は、画像フレームの描画は完了している。
【００４６】
図６は、図３に示されているようなパラメータの配列からの、図４に示されるような性能フレームの生成を概略的に示した流れ図である。図６に示される処理は、図１の診断コンピュータ１６によって実行され得、当該コンピュータは、入出力ユニット１２を介してメモリ８から性能データ２０の配列を読み込んでいる。ステップ５８で、性能パラメータ値と視覚的特徴との間のマッピングは、上述のように計算または選択される。ステップ６０で、性能パラメータ配列内の第１の値が選択される。ステップ６２では、ステップ６０で配列から読み込まれた性能パラメータに依存する視覚的特徴を有する、性能を表す画素値の対応するタイルを生成する。ステップ６４で、性能を表す画素値のタイルが、図４の性能フレームに書き込まれる。ステップ６６で、配列内の現在のパラメータ値が、最後の配列値であるかどうかを判断する。現在のパラメータ値が最後の配列値ではない場合は、ステップ６８で次の配列値を選択し、処理はステップ６２へ戻る。全ての配列値が、性能を表す画素値にマップされ、図４の全ての性能フレームが生成されている場合、処理はステップ７０に進み、性能フレームは診断コンピュータ１６上に表示される。図６に示された処理は、ディスクメモリ等のコンピュータが読み取り可能な記憶媒体に記憶されたコンピュータプログラムの制御下で、診断コンピュータ１６によって実行され得る。
【００４７】
図７は、図１のグラフィック処理ユニット６を初期化する際の、ドライバコンピュータプログラムの動作を概略的に示している。ドライバコンピュータプログラムは、図１内の汎用プロセサ４によって実行され得、メモリ８内に記憶され得る。ステップ７２で、グラフィック処理ユニット６は、本技術が関係する診断能力に関するものを除いて初期化される。ステップ７４で、診断の実行が必要であるかどうかが決定される。診断が不要である場合、処理はステップ７６に進み、グラフィック処理ユニット６が起動される。
【００４８】
診断が必要である場合は、ステップ７８で、どのパラメータを監視するのかを指定するユーザ入力を読み込む。このユーザ入力は、診断コンピュータ１６を介して行うことができる。ユーザ入力は、システムオンチップの集積回路２が一部を実行する装置に関連付けられた入力デバイスを介して、等の多くの他の方法で実行することもできる。どのパラメータを監視するのかを指定するユーザ入力は、カウンタ制御器３４内のレジスタ４０に書き込まれ、それに応じて、上述のように、多重化器３６、３８に対する対応する制御信号を生成する。カウンタ制御器３４へのパラメータ選択値の書き込みは、ステップ８０で行われる。ステップ８２で、性能パラメータ配列２０に対してどのメモリ記憶場所を使用するのかを指定する、さらなるユーザ入力が読み込まれる。このユーザ入力が受信された時、ステップ８４では、各タイルが完了する際、性能パラメータ配列２０内に書き込まれるパラメータデータに関して、カウンタ制御器３４が、メモリ８に対する適切にアドレス指定されたメモリトランザクションを生成するように、このメモリ記憶場所を指定する情報をカウンタ制御器３４のレジスタ４０内に書き込む。処理は、その後ステップ７６へ進み、グラフィック処理ユニット６が起動される。
【００４９】
図８は、上述の技術を実現するために使用され得るタイプの汎用コンピュータ２００を概略的に示す。汎用コンピュータ２００は、全てが共有バス２２２を解して接続された、中央処理装置２０２、ランダムアクセスメモリ２０４、リードオンリメモリ２０６、ネットワークインタフェースカード２０８、ハードディスクドライブ２１０、ディスプレイドライバ２１２、およびキーボード２１８およびマウス２２０を伴うユーザ入出力回路２１６を含む。動作に際し、中央処理装置２０２は、コンピュータプログラム命令を実行し、該命令は、ランダムアクセスメモリ２０４、リードオンリメモリ２０６、およびハードディスクドライブ２１０のうちの１つ以上内に記憶するか、ネットワークインタフェースカード２０８を介して動的にダウンロードすることができる。実行された処理の結果は、ディスプレイドライバ２１２およびモニタ２１４を介してユーザに表示され得る。汎用コンピュータ２００の動作を制御するユーザ入力は、ユーザ入出力回路２１６を介して、キーボード２１８またはマウス２２０から受信され得る。コンピュータプログラムは、種々の異なるコンピュータ言語で書き込むことができるものと理解されよう。コンピュータプログラムは、記録媒体上に記憶および配信され得、または汎用コンピュータ２００に動的にダウンロードされ得る。適切なコンピュータプログラムの制御下で動作する時、汎用コンピュータ２００は、上述の技術を実行することができ、また、上述の技術を実行するための装置を形成するものとみなすことができる。汎用コンピュータ２００のアーキテクチャは大幅に異なり得、図８は一実施例に過ぎない。
【００５０】
本発明の例示的な実施形態を、図面を参照しながら本願明細書に詳述したが、本発明は、それらの厳密な実施形態に限定されるものではなく、また、種々の変更および修正は、添付の特許請求の範囲に記載の本発明の範囲および趣旨から逸脱することなく、当業者によって行うことができるものと理解されたい。
【符号の説明】
【００５１】
２  集積回路
４  中央処理装置
６  グラフィック処理ユニット
８  メモリ
１０  ディスプレイドライバ
１２  入出力回路
１４  システムバス
１６  汎用コンピュータ
１８  画像フレームデータ
２０  性能パラメータデータ
２２  ＬＣＤ
２４  タイルベースの描画回路
２６  グラフィック処理ユニットキャッシュ
２８  メモリインタフェース
３０、３２  カウンタ
３４  カウンタ制御器
３６、３８  多重化器
４０  レジスタ
４２  表示リスト
【図１】
2010027050.tif 000003
【図２】
2010027050.tif 000004
【図３】
2010027050.tif 000005
【図４】
2010027050.tif 000006
【図５】
2010027050.tif 000007
【図６】
2010027050.tif 000008
【図７】
2010027050.tif 000009
【図８】
2010027050.tif 000010
【外国語明細書】
2010027050.tif 000011
2010027050.tif 000012
2010027050.tif 000013
2010027050.tif 000014
2010027050.tif 000015
2010027050.tif 000016
2010027050.tif 000017
2010027050.tif 000018
2010027050.tif 000019
2010027050.tif 000020
2010027050.tif 000021
2010027050.tif 000022
2010027050.tif 000023
2010027050.tif 000024
2010027050.tif 000025
2010027050.tif 000026
2010027050.tif 000027
2010027050.tif 000028
2010027050.tif 000029
2010027050.tif 000030
2010027050.tif 000031
2010027050.tif 000032
2010027050.tif 000033
2010027050.tif 000034
2010027050.tif 000035
2010027050.tif 000036
2010027050.tif 000037