(57)【特許請求の範囲】
【請求項１】
データ処理装置であって、
データを保存するように設定されたメモリと、
前記メモリからフェッチされたデータを保存するように設定されたキャッシュと、
処理パイプラインであって、複数のパイプライン段階を有し、且つ、前記処理パイプラインに沿って進むプログラム命令により指定されたデータ処理操作を実行するように設定された、処理パイプラインと
を含み、
前記処理パイプラインが、複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含み、
前記第１パイプライン部分が、標的データを利用する主題命令に応答するように構成されたロード段階であって、前記標的データが前記キャッシュ内にまだ保存されていない時に、前記メモリから前記標的データをフェッチし、前記標的データを前記キャッシュ内に保存することにより、前記主題命令に応答する前記ロード段階を含み、
前記第１パイプライン部分が、前記標的データが前記キャッシュ内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させる
ように設定された、前記ロード段階に続く第１ゲート段階を含み、
前記第２パイプライン部分が、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答するように設定された追加の処理段階を含み、
前記第２パイプライン部分が、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプラインから前記主題命令をリタイアさせる
ように設定された、前記追加の処理段階に続く第２ゲート段階を含み、
前記標的データを利用する全てのプログラム命令が、前記処理パイプラインからリタイアされるまで、前記標的データが前記キャッシュ内に固定される、データ処理装置。
【請求項２】
前記標的データが、別の標的データの１つ以上の性質を指定する記述子データであり、前記追加の処理操作が、前記キャッシュ内に保存された前記標的データに応じて、前記メモリから前記別の標的データをフェッチするのに用いられる、請求項１に記載の装置。
【請求項３】
前記第２パイプライン部分が、前記標的データを利用して、前記メモリ内における、前記別の標的データの保存位置を定める、請求項２に記載の装置。
【請求項４】
前記第１ゲート段階が、前記第１パイプライン部分内の第１段階と前記第１パイプライン部分内の中間段階のうちの１つに前記主題命令を返すことにより、前記主題命令を再循環させる、請求項１に記載の装置。
【請求項５】
前記第２ゲート段階が、前記第２パイプライン部分内の第１段階と前記第２パイプライン部分内の中間段階のうちの１つに前記主題命令を返すことにより、前記主題命令を再循環させる、請求項１に記載の装置。
【請求項６】
処理パイプラインが、前記第１パイプライン部分と前記第２パイプライン部分との間の１つ以上の中間段階を含む、請求項１に記載の装置。
【請求項７】
前記処理パイプラインが、グラフィクス処理ユニット内のテクスチャパイプラインである、請求項１に記載の装置。
【請求項８】
前記処理パイプラインが、グラフィクス処理ユニット内のテクスチャパイプラインであり、前記別の標的データが、テクスチャデータであり、前記標的データが、前記テクスチャデータの１つ以上のパラメータを指定する記述子データである、請求項２または３に記載の装置。
【請求項９】
前記グラフィクス処理ユニットが、１つ以上の他の処理パイプラインを含む、請求項７に記載の装置。
【請求項１０】
前記主題命令が前記処理パイプラインを通過する際に、前記処理パイプラインが、前記主題命令の状態データを保存するように設定され、前記状態データが、前記標的データの前記キャッシュ内の保存位置を指定する値を含む、請求項１に記載の装置。
【請求項１１】
前記主題命令が、標的データを共有する一群の主題命令のうちの１つであり、前記状態データが、前記一群の主題命令内の各々の主題命令を識別する、請求項１０に記載の装置。
【請求項１２】
少なくとも、前記標的データを共有する前記一群の主題命令が、前記共有標的データの利用を完了するまで、前記標的データが、前記キャッシュ内に固定される、請求項１１に記載の装置。
【請求項１３】
前記主題命令が、プログラムスレッドの一部であり、前記処理パイプラインが、異なるプログラムスレッドにそれぞれ由来する、複数の主題命令を並列に処理するように設定される、請求項１に記載の装置。
【請求項１４】
処理のために前記処理パイプラインに前記主題命令を発送するように設定されたスレッド発送回路を含む、請求項１に記載の装置。
【請求項１５】
データ処理装置であって、
データを保存するメモリ手段と、
前記メモリ手段からフェッチされたデータを保存するキャッシュ手段と、
処理パイプライン手段であって、前記処理パイプライン手段に沿って進むプログラム命令により指定されたデータ処理操作を実行するための、データ処理操作を実行する複数のパイプライン段階手段を有する、処理パイプライン手段と
を含み、
前記処理パイプライン手段が、複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含み、
前記第１パイプライン部分が、標的データを利用する主題命令に応答するためのロード段階手段であって、前記標的データが前記キャッシュ手段内にまだ保存されていない時に、前記メモリ手段から前記標的データをフェッチし、前記キャッシュ手段内に前記標的データを保存することにより、前記主題命令に応答するためのロード段階手段を含み、
前記第１パイプライン部分が、前記標的データが前記キャッシュ手段内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ手段内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ手段内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させる
前記ロード段階手段に続く第１ゲート段階手段を含み、
前記第２パイプライン部分が、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答する追加の処理段階手段を含み、
前記第２パイプライン部分が、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプライン手段から前記主題命令をリタイアさせる
前記追加の処理段階手段に続く第２ゲート段階手段を含み、
前記標的データを利用する全てのプログラム命令が、前記処理パイプライン手段からリタイアされるまで、前記標的データが前記キャッシュ手段内に固定される、データ処理装置。
【請求項１６】
以下の工程：
メモリ内にデータを保存することと、
前記メモリからフェッチされたデータをキャッシュ内に保存することと、
複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含む、処理パイプライン手段に沿って進むプログラム命令により指定されたデータ処理操作を実行することとと
を含み、
更に、
前記第１パイプライン部分内でロード段階を利用して、標的データを利用する主題命令に応答することであって、前記標的データが前記キャッシュ内にまだ保存されていない時に、前記メモリから前記標的データをフェッチし、前記標的データを前記キャッシュ内に保存することにより、前記主題命令に応答することと、
前記第１パイプライン部分内で、前記ロード段階に続く第１ゲート段階を利用して、前記標的データが前記キャッシュ内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させることと、
前記第２パイプライン部分内で追加の処理段階を利用して、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答することと、
前記第２パイプライン部分内で、前記追加の処理段階に続く第２ゲート段階を利用して、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプライン手段から前記主題命令をリタイアさせることと
を含み、
前記標的データを利用する全てのプログラム命令が、前記処理パイプライン手段からリタイアされるまで、前記標的データが前記キャッシュ内に固定される、データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム分野に関する。より具体的には、本発明は、処理パイプラインを含むデータ処理システム、及び、そのようなデータ処理システム内での処理パイプラインの制御に関する。
【背景技術】
【０００２】
データ処理システム内で並列実行の度合いを増やすことにより、１サイクル当たりに実行される命令数を増加させるような処理パイプラインを組み込んでいる、データ処理システムを提供することが知られている。処理パイプライン内でパイプライン段階の数が増すことにより、並列に実行され得るプログラム命令の数が増す。しかしながら、数多くのパイプライン段階を有する処理パイプラインでは、失敗した命令を効率的に処理することが難しい。例えば、処理パイプラインに沿ったロード命令処理が、そのロードされたデータを予定時間内に受信し損なう場合、１つの取り組みは、それに対して、処理パイプラインを失速させることであり得る。これは、極めて効率が悪くなり得る。別の取り組みは、失敗したロード命令に依存する後の命令がない場合、ロード命令が、工程中の処理「バブル」として処理パイプラインに沿って進み、そのパイプラインを通り抜けて進んでいる他のプログラム命令に一致して其のロード命令を許可することであり、それにより、これらの他の処理命令の実行が妨げられない。この取り組みの問題点は、パイプライン内にバブルが存在することで、並列に実行されているプログラム命令の数が減り、それにより、１サイクル値当たりの総実行命令数が低減することである。
【発明の概要】
【課題を解決するための手段】
【０００３】
一態様から見れば、本発明は、以下を含むデータ処理装置を提供する：
データを保存するように設定されたメモリと、
前記メモリからフェッチしたデータを保存するように設定されたキャッシュと、
複数のパイプライン段階を有し、且つ、前記処理パイプラインに沿って進むプログラム命令により指定されたデータ処理操作を実行するように設定された、処理パイプラインと
を含み、
前記処理パイプラインが、複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含み、
前記第１パイプライン部分が、標的データを利用して、前記標的データが前記キャッシュ内にまだ保存されていない時に、前記メモリから前記標的データをフェッチし、前記標的データを前記キャッシュ内に保存することにより、主題命令に応答するように設定されたロード段階を含み、
前記第１パイプライン部分が、前記標的データが前記キャッシュ内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させる
ように設定された、前記ロード段階に続く第１ゲート段階を含み、
前記第２パイプライン部分が、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答するように設定された追加の処理段階を含み、
前記第２パイプライン部分が、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプラインから前記主題命令を引き下げる
ように設定された、前記追加の処理段階に続く第２ゲート段階を含む。
【０００４】
本発明は、第１パイプライン部分と第２パイプライン部分とを含む処理パイプラインを与える。第１パイプライン部分は、標的データをキャッシュメモリにロードし、次に、標的データがロードされていることを確認するのに用いられる。標的データがロードされていない場合、主題命令は、第１パイプライン部分内で再循環され（処理パイプライン段階に戻され）、第２パイプライン部分を通過しない。これにより、処理バブルが第２パイプライン部分を通過するのが妨げられ、主題命令が完了するように、より多くの時間を第１パイプライン部分に与える。第２パイプライン部分自体は、追加の処理操作を実行するのに用いられ、それらの追加の処理操作が完了されているか否かを判定し、確認する第２ゲート段階を含む。追加の処理操作が完了していない場合、主題命令は、第２パイプライン部分内で再循環され、追加の処理操作が完了するように、より多くの時間を与える。第２ゲート段階が、追加の処理操作が完了していると判定する場合、主題命令が、引き下げられ得る。そのように、処理パイプラインは、一方が第１パイプライン部分により形成され、他方が第２パイプライン部分により形成される、２つのループを含む。主題命令は、その主題命令のための標的データがキャッシュ内に保存されるまで、第１パイプライン部分内で再循環する。標的データが、収集され、キャッシュ内で利用可能になった後に、主題命令が、第２パイプライン部分に放出され、その第２パイプライン部分内では、必要であれば、第２パイプライン部分により実行される追加の処理操作が完了し、その主題命令が引き下げられるまで、その主題命令は、再循環され得る。
【０００５】
本発明の好ましい実施形態では、標的データは、標的データを利用する全てのプログラム命令が、処理パイプラインから引き下げられるまで、キャッシュ内に固定され得る。このように、第１パイプライン部分を操作することにより、キャッシュ内に置かれている標的データは、もはや必要とされなくなるまで、そのキャッシュ内に保持されるので、効率は、向上し得る。これにより、第２パイプライン部分内での処理バブルの可能性が低減する。
【０００６】
標的データが、様々な異なる形態を取り得ることが理解されるが、幾つかの実施形態では、標的データは、別の標的データの１つ以上の性質を指定する記述子データであり、その追加の処理操作は、キャッシュ内に保存された標的データに応じて、メモリから別の標的データをフェッチするのに用いられる。そのように、追加の処理操作は、標的データに応じてメモリからのデータのフェッチが間接的に指定される、処理操作であり、従って、重要なことは、第２パイプライン部分で別の標的データをフェッチする追加の処理操作を有利に実行しようとする前に、第１パイプライン部分の操作により、標的データがキャッシュメモリ内に保存されるべきであることである。
【０００７】
第１ゲート回路及び第２ゲート回路は、関連するパイプライン部分内の第１段階又は中間段階のうちの１つであり得る、先行する段階に、主題命令を再循環させるのに用いられる。
【０００８】
第２パイプライン部分は、第１パイプライン部分の直後に続くことができる。しかしながら、他の実施形態では、処理パイプラインは、第１パイプライン部分と第２パイプライン部分との間の１つ以上の中間段階を含む。
【０００９】
本技術は、様々な異なる形態及び用途の処理パイプラインに適用され得ることが理解される。しかしながら、本技術は、処理パイプラインがグラフィクス処理ユニット内のテクスチャパイプラインであるような実施形態に十分に適している。そのようなテクスチャパイプラインは、通常、メモリからデータをロードする要求が高く、テクスチャパイプライン内の追加の処理操作は、以前にロードされたデータに依存する。この文脈内で、本技術は、主題命令が第１パイプライン部分に進むのを許可する前に、標的データがキャッシュ内に保存されるのを確保し、それにより、第１パイプライン部分の処理パイプライン下流内に生じる処理バブルの数が低減することにより、効率が向上する。
【００１０】
追加的な標的データは、テクスチャデータであってもよく、標的データは、テクスチャデータの１つ以上のパラメータを指定する記述子データであってもよい。これらのパラメータは、例えば、特定の画素に利用されるべきテクスチャデータの保存アドレスを選定するのに利用され得る。
【００１１】
標的データは、数多くの主題命令により再利用されてもよく、効率は、キャッシュ内に保存された標的データが共有される場合に、向上し得る。状態データは、パイプラインを通る際に各々の主題命令の中に格納され、その状態データには、共有標的データのキャッシュ内の保存位置を指定する値が含まれ得る。
【００１２】
主題命令は、標的データを共有する一群の主題命令のうちの１つであってもよく、一群のプログラム命令内の各々の主題命令を識別する状態データと共に処理される（主題命令群は、４個一組として一緒に処理され得る４つの隣接する画素値に関連し得る）。
【００１３】
全ての主題命令群が、共有標的データを利用するのを完了させるまで、主題命令群の標的データは、キャッシュ内に固定されることになる。
【００１４】
一般に、処理パイプライン内の主題命令が、それらの主題命令の間に相互依存がないように異なるプログラム関連情報から取られる場合に、処理パイプラインの効率は、増加する。関連情報発送回路は、処理のために処理パイプラインに主題命令を発送するように設定され得る。関連情報引き下げ回路は、主題命令が完了した時に、主題命令を処理パイプラインから引き下げるように利用され得る。
【００１５】
別の態様から見れば、本発明は、以下を含むデータ処理装置を提供する。
データを保存するためのメモリ手段と、
前記メモリからフェッチされたデータを保存するためのキャッシュ手段と、
前記処理パイプラインに沿って進むプログラム命令により指定されたデータ処理操作を実行するための処理パイプライン手段と、データ処理操作を実行する複数のパイプライン段階手段を有する処理パイプライン手段と
を含む、
前記処理パイプライン手段が、複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含み、
前記第１パイプライン部分が、標的データを利用して、前記標的データが前記キャッシュ内にまだ保存されていない時に、前記メモリ手段から前記標的データをフェッチし、前記キャッシュ手段内に前記標的データを保存することにより、主題命令に応答するロード段階手段を含み、
前記第１パイプライン部分が、前記ロード段階手段に続いて、前記標的データが前記キャッシュ内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ手段内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ手段内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させる
第１ゲート段階手段を含み、
前記第２パイプライン部分が、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答する追加の処理段階手段を含み、
前記第２パイプライン部分が、前記追加の処理段階手段に続いて、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプライン手段から前記主題命令を引き下げる
第２ゲート段階手段を含む。
【００１６】
追加的な態様から見れば、本発明は、以下の工程を含む、データ処理方法を提供する：
メモリ内にデータを保存することと、
前記メモリからフェッチされたデータをキャッシュ内に保存することと、
複数のパイプライン段階を有する前記処理パイプラインに沿って進むプログラム命令により指定されたデータ処理操作を実行することと
を含み、
前記処理パイプライン手段が、複数のパイプライン段階を有する第１パイプライン部分と、後続する複数のパイプライン段階を有する第２パイプライン部分とを含み、更に、
前記第１パイプライン部分内でロード段階を利用して、前記標的データが前記キャッシュ内にまだ保存されていない時に、前記メモリから前記標的データをフェッチし、前記標的データを前記キャッシュ内に保存することにより、主題命令に応答することと、
前記第１パイプライン部分内で、前記ロード段階に続く第１ゲート段階を利用して、前記標的データが前記キャッシュ内に存在するかを判定し、
（ｉ）前記標的データが前記キャッシュ内に存在しない場合、前記主題命令を、前記第１パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記標的データが前記キャッシュ内に存在する場合、前記主題命令を前記第２パイプライン部分に通過させることと、
前記第２パイプライン部分内で追加の処理段階を利用して、前記標的データを利用して追加の処理操作を実行することにより、前記主題命令に応答することと、
前記第２パイプライン部分内で、前記追加の処理段階に続く第２ゲート段階を利用して、前記追加の処理操作が完了されているかを判定し、
（ｉ）前記追加の処理操作が完了されていない場合、前記主題命令を、前記第２パイプライン部分を通り抜けるように再循環させ、
（ｉｉ）前記追加の処理操作が完了されている場合、前記処理パイプライン手段から前記主題命令を引き下げることと
を含む。
【００１７】
上記のこと、並びに、本発明の他の目的、特徴及び利点は、付属の図面に関連して読まれる、説明のための実施形態の以下の詳細な記述から、明らかになる。
【図面の簡単な説明】
【００１８】
【図１】複数の処理パイプラインを含む、グラフィクス処理ユニットを概略的に示す。
【図２】第１パイプライン部分と第２パイプライン部分とを含む、テクスチャパイプラインを概略的に示す。
【図３】記述子データと、テクスチャパイプラインにより処理されるテクスチャデータとの間の関連を概略的に示す。
【図４】共有される記述キャッシュと、記述子データを共有する一群のプログラム命令とを概略的に示す。
【図５】図２のテクスチャパイプラインの操作を概略的に示す流れ図である。
【発明を実施するための形態】
【００１９】
図１は、メモリ４に結合されたグラフィクス処理ユニット２を概略的に示す。メモリ４は、グラフィクス処理の当業者に知られているような、グラフィクス処理に必要とされるプログラムデータ、テクスチャデータ、記述子データ及び他のデータを保存する。グラフィクス処理ユニット２は、テクスチャパイプラインを含む複数の処理パイプライン６、ロード保存パイプライン８、第１演算パイプライン１０及び第２演算パイプライン１２を含む。関連情報発送回路１４は、適切な処理パイプライン６、８、１０、１２にプログラム命令を発送し、関連情報引き下げ回路１６は、処理パイプライン６、８、１０、１２からプログラム命令を引き下げ、同様に、プログラム命令が完全に完了した際に、処理関連情報を引き下げる。図１のパイプライン配置は、処理パイプラインを含む処理装置の単なる例示であり、多くの他の異なる形態の処理装置、同様に、多くの他の異なる形態のグラフィクス処理ユニットが利用されてもよいことが理解される。
【００２０】
図１のテクスチャパイプライン６は、第１パイプライン部分１８と第２パイプライン部分２０とを有するように示されている。第１パイプライン部分１８は、メモリ４から記述子データをフェッチし、テクスチャパイプライン６の近くに結合される共有記述キャッシュ２２内に、そのデータを保存することに責任がある。前述パイプライン２０の第２部分は、記述キャッシュ２２内に保存された記述子データに応じて、メモリ４からテクスチャデータをフェッチすることに携わる。テクスチャパイプライン６の他の部分は、選別及び画素操作等の追加の処理操作を実行し得る。
【００２１】
図１では、メモリ４は、統合されたブロックとして示される。しかしながら、実地では、メモリ４は、複数レベルのキャッシュメモリ、主要メモリ、及び、ハードディスクドライブ等の非揮発性データ格納器で形成されるメモリ階層構造を含んでもよいことが理解される。
【００２２】
図２は、概略的に、テクスチャパイプライン６を更に詳細に示す。特に、テクスチャパイプライン６は、第１パイプライン部分１８と複数のパイプラインの中間段階２４と第２パイプライン部分２０とを含む。第１パイプライン部分１８は、主題命令（例えば、画素テクスチャをロードしようとする命令）に応答し、取り出されるテクスチャデータのアドレスを確定するのに続けて利用される記述子データをフェッチする要求を、メモリ４に送出するロード段階２６を含む。第１パイプライン部分１８内の後段階は、メモリが、要求された記述子データを返したか否かを順次問い合わせるのに用いられ、データが返されている場合、キャッシュロード段階は、戻された記述子データを共有記述キャッシュ２２にロードするのに用いられる。第１パイプライン部分１８内の第１ゲート段階２８は、主題命令が第１ゲート段階２８に達する時に、記述子データ（標的データ）が、供給記述キャッシュ２２にロードされているか否かを判定するのに用いられる。記述子データ（標的データ）が、共有記述キャッシュ２２内にある場合、主題命令は、中間段階２４に、次に、第２パイプライン部分２０に渡される。記述子データが、共有記述キャッシュ２２内にない場合、主題命令は、その命令を第１パイプライン部分１８の頂部に戻すことにより再循環されるために、第１パイプライン部分を再び通過し、それにより、その記述子データがメモリ４から戻るように、より多くの時間が得られ得る。これにより、共有記述キャッシュ２２内にあるその必要な記述子データをまだ有していない主題命令を、中間段階２４と第２パイプライン部分２０とを含むパイプラインの後続部分に渡すことが回避され、それにより、テクスチャパイプライン６のこれらの後続部分内に、望まれない処理バブルを導入することが回避される。
【００２３】
主題命令は、第１ゲート段階２８を通過した場合、画素値の変化率を定める導関数の生成、テクスチャマップレベルの選択、及び、メモリ４からロードされるテクスチャデータのアドレスの生成等の、追加の処理操作が実行される中間段階２４に進む。次に、主題命令は、メモリ４からテクスチャデータをロードする等の追加の処理操作を実行する追加の処理段階を含む、第２パイプライン部分２０に渡される。第２パイプライン部分２０の末端の第２ゲート段階３０は、その追加の処理段階により実行されるべき追加の処理操作が完了されているか否かを判定する。第１パイプライン部分１８と同様に、追加の処理操作は、テクスチャデータが実際に返された時に完了され得る。追加の処理操作が完了していない場合、主題命令は、第２パイプライン部分２０内に再循環され、テクスチャデータが戻るように、より多くの時間を与えることができる。テクスチャデータは、それが戻されている場合、取り戻されたテクスチャデータに選別操作を加えること、導出された色値をレジスタに書き込むこと等の、第２パイプライン部分に続く、テクスチャパイプライン６内の処理操作を施され得る。
【００２４】
図３は、記述子データとテクスチャデータとの間の関連を概略的に示す。記述子データは、画像記述子３２と表面記述子３４と抽出記述子３６とを含み得る。これらの記述子３２、３４、３６は、メモリ４内に保存され、テクスチャパイプライン６により利用され、メモリ４からテクスチャデータ３８のどの部分が読まれるか、その取り出されたテクスチャデータをどのように処理するのかを判定する。特に、主題命令のために取り出された画像記述子データは、現時点で用いられるそのテクスチャの縮尺として、複数のテクスチャ表記のうちのどれが利用されるべきかを指定するデータと、テクスチャデータの形式（例えば、ＲＧＢ等）と、テクスチャデータの寸法と、関連するテクスチャデータの表面記述子へのポインタとを含み得る。表面記述子は、テクスチャデータの関連インスタンスの開始メモリアドレスへのポインタを含み、そのテクスチャデータの関連インスタンスは、そのテクスチャデータのインスタンスの行ピッチを示すピッチ値と共に用いられる。
【００２５】
図３に示された、記述子データとテクスチャデータとの間の関連は、第１パイプライン部分１８内のキャッシュ内に保存された標的データと、第２パイプライン部分２０によりキャッシュ標的データに応じて取り戻された更なる標的データとの間の関連の１つの例示である。本技術は、この事例、又は、実際には、グラフィクス処理の分野に限定されない。
【００２６】
図４は、複数のキャッシュ線を含む共有記述キャッシュ２２を概略的に示し、キャッシュ線の各々は、記述子データの共有インスタンスを保存し、関連する指標値を有する。この事例では、共有記述キャッシュ２２は、指標を付けられているが、他の実施形態では、保存されたタグ値を利用して、共有記述キャッシュ２２から取り出すのを望まれている特定の記述子データを識別することも可能であり得る。その上、図４では、共有記述キャッシュ２２の各々のキャッシュ線が、固定計数フィールド４０を含むことが示され、そのフィールドは、テクスチャパイプライン６内の、処理要求を受けているどれ程の数の主題命令が、関連する記述子を利用しているか示す計数値を保存する。主題命令が記述子をロードしようとする度に、その記述子が既に貯えられているか否かにかかわらず、固定計数は、増分され、その記述子を利用するのを望む主題命令が、テクスチャパイプライン６内に存在することを示す。主題命令が、テクスチャパイプライン６から引き下げられ、その主題命令が参照する記述子の利用を完了する度に、それらの記述子に関連する固定計数値は、減分される。そのように、固定計数がゼロに達する時には、テクスチャパイプライン６内の全ての主題命令は、その記述子の利用を完了しており、共有記述子キャッシュ内で固定解除されることにより、他の記述子値に道をあけるようにキャッシュ線が交換され得る。
【００２７】
その上、図４では、関連情報群の状態４２が示される。主題命令の群は、一緒に処理され、それらの群が利用する記述子を共有し得る。この事例では、関連情報群の状態は、識別子ＴＳ０、ＴＳ１、ＴＳ２、ＴＳ３、ＴＳ４で各々の主題命令を識別し、並びに、この例示の実施形態では、その関連譲歩群内の主題命令により利用される記述子が配置される場所である、キャッシュ線を指し示す指標値を保存する。
【００２８】
図５は、図２のテクスチャパイプラインの操作を概略的に示す流れ図である。工程４４では、処理は、主題命令が第１パイプライン部分１８内に受信されるまで待機する。次に、工程４６は、その主題命令の記述子データが、供給記述子キャッシュ２２内に既に存在しているか否かを判定する。記述子データが、既に存在している場合、処理は、工程４８に進む。記述子データが、共有記述子キャッシュ２２内にまだ存在してない場合、工程５０は、メモリ４から共有記述子キャッシュ２２への記述子のロードを初期化するのに用いられる。工程５４は、第１ゲート段階２８により実行され、主題命令により必要とされる全ての記述子データが、現時点で共有キャッシュ内に存在するか、又は、記述子データがまだ存在していないかを判定する。その記述子データが存在していない場合、主題命令は、再循環され、処理は、工程５０に戻る。
【００２９】
全ての記述子データが、共有記述子キャッシュ２２内に存在していると判定される場合、処理は、主題命令が、可能であれば１つ以上の中間段階２４を介して第２パイプライン部分２０に渡される、工程４８に進む。工程５６は、保存されたテクスチャマップデータに関連して描写される画像の一部分の解像度として利用されるテクスチャマップレベルを確定する。テクスチャデータのこのロードは、共有記述子キャッシュ２２内に保存される記述子データに応じて算出されるメモリ４内のアドレスからのロードである。工程６０は、第２ゲート段階により実行され、追加の処理操作が完了しているか否かを判定する。追加の処理操作が、完了していない場合、処理は、工程５６に戻る。追加の処理操作が完了している場合、処理は、算出された色画素値が工程６４でレジスタに書き込まれる前に選別操作が実行される、工程６２に進み、主題命令は、テクスチャパイプライン６により処理されている。
【００３０】
テクスチャパイプライン６により実行される処理は、図４に関連して前に記載されたように、キャッシュ固定を組み込んでおり、固定値が、テクスチャパイプライン内の「仕掛り中」の主題命令の数を追跡するように増分又は減分することが理解される。
【００３１】
本発明の説明上の実施形態は、本明細書で、付属の図面を参照しつつ詳細に記載されているが、本発明は、それらの正確な実施形態に限定されず、付属の請求項により定義されるような本発明の範囲及び趣旨から逸脱することなく、様々な変更及び修正が当業者により行われ得ると理解されるべきである。
【符号の説明】
【００３２】
２  グラフィクス処理ユニット
４  メモリ
６、８、１０、１２  パイプライン
１４、１６  回路
１８  第１パイプライン段階
２０  第２パイプライン段階
２２  共有記述キャッシュ
２４  中間段階
２８  第１ゲート段階
３２、３４、３６  記述子
３８  テクスチャデータ
【図１】
0006017171.tif 000002
【図２】
0006017171.tif 000003
【図３】
0006017171.tif 000004
【図４】
0006017171.tif 000005
【図５】
0006017171.tif 000006