(57)【要約】      （修正有）【課題】光線追跡法を効率的に実装するための方法及び装置を提供する。【解決手段】配布されるタイム・ベース信号は、メモリ・キャッシュ内にあるデータのためにアドレス変換を提供する、メモリ・ディレクトリに結合される。メモリ・ディレクトリは、メモリ・ディレクトリ・エントリが配布されるタイム・ベース信号によってアクセスされたか否かを指示する属性ビットを有する。さらに、メモリ・ディレクトリは、配布されるタイム・ベース信号による１つのメモリ・ディレクトリ・エントリへのアクセスの後に、当該メモリ・ディレクトリ・エントリが無効であると見なすべきか否かを指示する属性ビットを有する。当該メモリ・ディレクトリ・エントリがタイム・ベース信号によるアクセスの後に無効であると見なすべきであれば、当該メモリ・ディレクトリ・エントリを使用する、如何なるアドレス変換の試みもキャッシュ・ミスを生じさせることになろう。【選択図】図９
2008123497.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・キャッシュ内のデータを無効化する方法であって、
前記メモリ・キャッシュの第１の部分に対応する第１のメモリ・ディレクトリ・エントリ及び前記メモリ・キャッシュの第２の部分に対応する第２のメモリ・ディレクトリ・エントリを作成するステップを含み、
前記第１及び第２のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュ内の前記データのための有効アドレスを実アドレスに変換することを可能にし、
配布されるタイム・ベース信号を受信することに応答して前記第１のメモリ・ディレクトリ・エントリが無効であることを指示するように、前記第１のメモリ・ディレクトリ・エントリ内に第１のビットをセットするステップと、
前記配布されるタイム・ベース信号を生成するステップと、
前記配布されるタイム・ベース信号を受信することに応答して、前記第１及び第２のメモリ・ディレクトリ・エントリ内に第２のビットをセットするステップと、
前記メモリ・キャッシュの前記第１の部分のためのメモリ・アドレス変換要求を受信するステップと、
前記第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが無効であることを決定するステップとをさらに含む、方法。
【請求項２】
前記配布されるタイム・ベース信号を受信することに応答して、前記メモリ・キャッシュの前記第１の部分を無効化するステップと、
前記第１のメモリ・ディレクトリ・エントリに対応する第１の記憶位置内のデータを更新するステップと、
前記第１及び第２のメモリ・ディレクトリ・エントリ内の前記第２のビットをクリアするステップと、
前記メモリ・キャッシュの前記第１の部分のためのメモリ・アドレス変換要求を受信するステップと、
前記第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが有効であることを決定するステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記メモリ・キャッシュの前記第１の部分が無効であることを決定するステップと、
前記第１の記憶位置から前記データを検索するステップと、
前記データを前記メモリ・キャッシュの前記第１の部分内に配置するステップとをさらに含む、請求項２に記載の方法。
【請求項４】
前記メモリ・キャッシュの前記第２の部分のためのメモリ・アドレス変換要求を受信するステップと、
前記第２のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第２のメモリ・ディレクトリ・エントリが有効であることを決定するステップとをさらに含み、
前記第２のメモリ・ディレクトリ・エントリ内の前記第１のビットは、前記配布されるタイム・ベース信号を受信することに応答して前記第２のメモリ・ディレクトリ・エントリが有効であると見なすべきであることを指示する、請求項１に記載の方法。
【請求項５】
前記配布されるタイム・ベース信号は、イメージ処理システムのフレーム・リフレッシュ周波数に従って周期的に生成される、請求項１に記載の方法。
【請求項６】
前記配布されるタイム・ベース信号は、各々が少なくとも１つのメモリ・キャッシュを有する複数の多重コア処理要素に配布される、請求項１に記載の方法。
【請求項７】
動的空間インデックスが前記メモリ・キャッシュの前記第１の部分に格納され、静的空間インデックスが前記メモリ・キャッシュの前記第２の部分に格納される、請求項１に記載の方法。
【請求項８】
請求項１ないし請求項７の何れか１項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムを記録したコンピュータ可読媒体。
【請求項９】
イメージ処理システムであって、
第１の処理要素に結合され且つ配布されるタイム・ベース信号を周期的に生成するように構成されたフレーム・リフレッシュ・タイマ回路と、
少なくとも第１及び第２の部分を有するメモリ・キャッシュと、
少なくとも第１及び第２のメモリ・ディレクトリ・エントリを有するメモリ・ディレクトリとを備え、
前記第１のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュの前記第１の部分内のデータのための有効アドレスを実アドレスに変換することを可能にし、前記第２のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュの前記第２の部分内のデータのための有効アドレスを実アドレスに変換することを可能にし、
前記第１の処理要素は、配布されるタイム・ベース信号を受信することに応答して前記第１のメモリ・ディレクトリ・エントリが無効であることを指示するように、前記第１のメモリ・ディレクトリ・エントリ内に第１のビットをセットをセットし、前記配布されるタイム・ベース信号を受信することに応答して、前記第１及び第２のメモリ・ディレクトリ・エントリ内に第２のビットをセットし、前記メモリ・キャッシュの前記第１の部分内のデータのためのメモリ・アドレス変換要求を受信し、前記第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが無効であることを決定するように構成される、イメージ処理システム。
【請求項１０】
さらに、前記第１の処理要素は、
前記配布されるタイム・ベース信号を受信することに応答して、前記メモリ・キャッシュの前記第１の部分を無効化し、
前記第１のメモリ・ディレクトリ・エントリに対応する第１の記憶位置内のデータを更新し、
前記第１及び第２のメモリ・ディレクトリ・エントリ内の前記第２のビットをクリアし、
前記メモリ・キャッシュの前記第１の部分のためのメモリ・アドレス変換要求を受信し、
前記第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが有効であることを決定するように構成される、請求項９に記載のイメージ処理システム。
【請求項１１】
さらに、前記第１の処理要素は、
前記メモリ・キャッシュの前記第１の部分が無効であることを決定し、
前記データを前記第１の記憶位置から検索し、
前記データを前記メモリ・キャッシュの前記第１の部分内に配置するように構成される、請求項１０に記載のイメージ処理システム。
【請求項１２】
前記フレーム・リフレッシュ・タイマ回路は、第２の処理要素にも結合される、請求項９に記載のイメージ処理システム。
【請求項１３】
動的空間インデックスが前記メモリ・キャッシュの前記第１の部分に格納され、静的空間インデックスが前記メモリ・キャッシュの前記第２の部分に格納される、請求項９に記載のイメージ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ処理に係る。
【背景技術】
【０００２】
３次元シーンから２次元イメージを描画（レンダリング）するプロセスは、一般に、イメージ処理と呼ばれる。現代のコンピュータ産業が発展するにつれて、イメージ処理も同様に発展してきた。イメージ処理の発展における１つの特定の目標は、３次元シーンのできるだけ現実的な２次元のシミュレーション又は表現を作成することである。現実的なイメージを描画する際の１つの制限は、最近のモニタがピクセルの使用を通してイメージを表示するということである。
【０００３】
ピクセルは、モニタ上で照射することができる最小の領域である。最新のモニタは、ディスプレイ全体又は描画されたシーンを構成するために、何十万又は何百万ものピクセルの組み合わせを使用する。個々のピクセルはグリッド・パターン状に配列されていて、モニタの表示領域全体を集合的にカバーする。各ピクセルを照射することにより、表示用の最終的なピクチャを描画することができる。
【０００４】
ピクセルを使用して２次元モニタ上に実世界の３次元シーンを描画するための１つの技術は、ラスタ化と呼ばれる。ラスタ化は、ベクトル形式（シーン内の幾何学的物体の数学的な表現）で表される２次元イメージを、モニタ上のディスプレイ用の個々のピクセルに変換するプロセスである。ラスタ化は、グラフィックスを速く描画することができ、しかも比較的少ない計算能力しか使用しないという利点を有する。しかし、ラスタ化は、幾つかの欠点を有する。例えば、ラスタ化は、光の物理的性質に基づいておらず、むしろ２次元平面上に投影される３次元シーン内の３次元の幾何学的物体の形状に基づいているので、しばしば現実感が不足する。さらに、ラスタ化を用いて３次元シーンを描画するのに必要な計算能力は、描画すべき３次元シーンがより複雑になるのに応じて直接的に増大する。イメージ処理がより現実的になるとともに、描画される３次元シーンもより複雑となる。従って、描画すべき３次元シーンがより複雑になるのに応じてラスタ化の計算能力が直接的に増大するので、イメージ処理が発展するとともに、ラスタ化を使用することは不利となる。
【０００５】
ピクセルを使用して２次元モニタ上に実世界の３次元シーンを描画するための他の技術は、光線追跡法（レイ・トレーシング法）と呼ばれる。光線追跡法は、モニタ・スクリーン上に描画すべき３次元シーンへの想像上の光線の伝搬を追跡する。これらの光線は、モニタ・スクリーンの後に位置する観察者の目から出て、モニタ・スクリーンを構成するピクセルを通過し、３次元シーンの方へ向かう。追跡される各光線は、３次元シーンに到達し、このシーン内の物体と交差することがある。もし、光線が３次元シーン内の物体と交差すれば、この物体の特性及び他の幾つかの要因を使用して、その交点における色及び光の量（又はその欠如）を計算する。次に、これらの計算を使用して、追跡される光線が通過したピクセルの最終的な色を決定する。
【０００６】
光線を追跡するプロセスは、単一の３次元シーンについて何度も行われる。例えば、ディスプレイ内の各ピクセルごとに、単一の光線を追跡することができる。一旦、モニタ・スクリーンの２次元ディスプレイを構成する全てのピクセルの色を決定するのに十分な数の光線が追跡されたならば、３次元シーンの２次元的な合成結果をモニタ・スクリーン上に表示して、観察者に提示することができる。
【０００７】
一般に、光線追跡法は、ラスタ化よりも優れた現実感を以て、実世界の３次元シーンを描画することができる。その１つの理由は、光線追跡法が、実世界の環境内で光がどのように進行し且つどのように振る舞うかをシミュレートしていて、ラスタ化のように単に３次元の形状を２次元平面上に投影していないという点にある。従って、光線追跡法を使用して描画されるグラフィックスは、観察者が実世界で観察するように、モニタ上に正確に現れることになる。
【０００８】
さらに、光線追跡法は、３次元シーンがより複雑になるにつれて、ラスタ化よりも良好に３次元シーンの複雑さの増大に対処する。光線追跡法が必要とする計算能力は、３次元シーンがより複雑になるのに応じて対数的に増大する。その１つの理由は、３次元シーンがより複雑になっても、同じ数の光線をかかる３次元シーンに当てることができるという点にある。従って、光線追跡法は、３次元シーンがより複雑になっても、ラスタ化のようには計算能力の要件の点で不利を被らない。
【０００９】
光線追跡法の１つの主要な欠点は、３次元シーンを描画するのに大量の計算、従って大きな処理能力が必要であるということである。このことが問題となるのは、速い描画が必要とされる場合、例えば、イメージ処理システムを用いて、ゲーム・コンソール内にアニメーション用のグラフィックスを描画する場合である。大量の計算が必要であるという光線追跡法の要件により、現実的に見えるほどアニメーションを速く描画するのは困難である（現実的なアニメーションは約２０〜２４フレーム／秒である）。
【００１０】
従って、光線追跡法を実装するためのより効率的な技術及び装置が要請されている。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、光線追跡法を効率的に実装するための方法及び装置を提供することである。
【００１２】
本発明の第１の側面に従って、メモリ・キャッシュ内のデータを無効化する方法が提供される。この方法は、前記メモリ・キャッシュの第１の部分に対応する第１のメモリ・ディレクトリ・エントリ及び前記メモリ・キャッシュの第２の部分に対応する第２のメモリ・ディレクトリ・エントリを作成するステップを含み、前記第１及び第２のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュ内の前記データのための有効アドレス−実アドレス変換対を供給し、配布されるタイム・ベース信号を受信するときに前記第１のメモリ・ディレクトリ・エントリが無効であることを指示するように、前記第１のメモリ・ディレクトリ・エントリ内に第１のビットをセットするステップと、前記配布されるタイム・ベース信号を生成するステップと、前記配布されるタイム・ベース信号を受信することに応答して、前記第１及び第２のメモリ・ディレクトリ・エントリ内に第２のビットをセットするステップと、前記メモリ・キャッシュの前記第１の部分のためのメモリ・アドレス変換要求を受信するステップと、第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが無効であることを決定するステップとをさらに含む。
【００１３】
本発明の第２の側面に従って、前記方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラムを記録したコンピュータ可読媒体が提供される。
【００１４】
本発明の第３の側面に従って、イメージ処理システムが提供される。このイメージ処理システムは、第１の処理要素に結合され且つ配布されるタイム・ベース信号を周期的に生成するように構成されたフレーム・リフレッシュ・タイマ回路と、少なくとも第１の部分及び第２の部分を有するメモリ・キャッシュと、少なくとも第１及び第２のメモリ・ディレクトリ・エントリを有するメモリ・ディレクトリとを備え、前記第１のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュの前記第１の部分内のデータのための有効アドレス−実アドレス変換対を供給し、前記第２のメモリ・ディレクトリ・エントリは、前記メモリ・キャッシュの前記第２の部分内のデータのための有効アドレス−実アドレス変換対を供給し、前記第１の処理要素は、配布されるタイム・ベース信号を受信するときに前記第１のメモリ・ディレクトリ・エントリが無効であることを指示するように、前記第１のメモリ・ディレクトリ・エントリ内に第１のビットをセットをセットし、前記配布されるタイム・ベース信号を受信することに応答して、前記第１及び第２のメモリ・ディレクトリ・エントリ内に第２のビットをセットし、前記メモリ・キャッシュの前記第１の部分内のデータのためのメモリ・アドレス変換要求を受信し、前記第１のメモリ・ディレクトリ・エントリ内の前記第１及び第２のビットを検査することにより、前記第１のメモリ・ディレクトリ・エントリが無効であることを決定するように構成される。
【００１５】
本発明は、メモリ・キャッシュの選択した部分を無効化する一方、メモリ・キャッシュの他の部分の有効性を維持するための方法及びイメージ処理システムを提供する。本発明の１つの側面に従って、配布されるタイム・ベース信号をメモリ・ディレクトリ内の属性ビットと共に使用することにより、メモリ・キャッシュの選択した部分を無効化することができる。配布されるタイム・ベース信号は、メモリ・ディレクトリ内のエントリに結合することができる。タイム・ベース信号を配布するときに、メモリ・ディレクトリ・エントリ内の属性ビットをセットすることにより、配布されるタイム・ベース信号によってメモリ・ディレクトリ・エントリがアクセスされたことを指示することができる。さらに、メモリ・ディレクトリ・エントリは、無効化属性ビットも保持することができる。このビットがセットされると、メモリ・ディレクトリ・エントリは、次の配布されるタイム・ベース信号を受信するときに無効であると見なすように指示することができる。もし、或るメモリ・ディレクトリ・エントリ内の無効化属性ビットがセットされ、そしてこのメモリ・ディレクトリ・エントリがアクセスされたならば、このメモリ・ディレクトリ・エントリを通して以後に行われる任意のアドレス変換要求は、キャッシュ・ミスを生じさせることになろう。かかるキャッシュ・ミスが生ずる場合、処理要素は、メモリ（例えば、システム・メモリ）から有効データを取り出し、これをメモリ・キャッシュ内のデータと置き換えることができる。従って、配布されるタイム・ベース信号及びメモリ・ディレクトリ・エントリ内の属性ビットを使用することにより、或るメモリ・ディレクトリ・エントリがアドレス変換を供給したメモリ・キャッシュの部分を効率的に無効化することができる。
【００１６】
以下、本発明の実施形態を参照して説明する。しかし、本発明は、かかる特定の実施形態に限定されないことを理解すべきである。以下で説明する特徴及び要素の任意の組み合わせは、異なる実施形態に関係するか否かに拘わらず、本発明を実施するために考慮されているからである。さらに、種々の実施形態において、本発明は、先行技術からは期待できない多数の利点を提供する。しかし、本発明の実施形態が他の可能な解決策及び／又は先行技術からは期待できない利点を達成可能であるとしても、特定の実施形態によって特定の利点が達成されるか否かは本発明を限定するものではない。従って、以下で説明する側面、特徴、実施形態及び利点は、単なる例示であるに過ぎず、各請求項に明示的に記載されている場合を除き、各請求項を限定する要素と解すべきではない。同様に、「本発明」への言及は、本明細書に開示されている任意の発明的主題の一般化であると解すべきではないし、各請求項に明示的に記載されている場合を除き、各請求項を限定する要素であると解すべきでもない。
【００１７】
１つの側面において、本発明は、コンピュータ上で実行されるときに、メモリ・キャッシュ内のデータを無効化する動作を実行するプログラムを記録したコンピュータ可読媒体として実装される。このプログラムは、（本明細書で説明する方法を含む）実施形態の諸機能を定義し、種々のコンピュータ可読媒体上に記録することができる。コンピュータ可読媒体の例には、（１）ＣＤ−ＲＯＭディスクによって代表される非書き込み可能な記憶媒体、（２）フロッピ・ディスク又はハード・ディスク・ドライブによって代表される書き込み可能な記憶媒体、（３）コンピュータ・ネットワーク又は無線通信を含む電話ネットワークによって代表される通信媒体などがある。通信媒体は、インターネット及び他のネットワークから情報をダウンロードするものを含む。かかるコンピュータ可読媒体は、本発明の諸機能を定義するコンピュータ可読命令を担持する場合には、本発明の実施形態を表す。
【００１８】
一般に、本発明を実装するために実行されるルーチンは、オペレーティング・システムの一部であるか、或いは特定のアプリケーション、コンポーネント、プログラム、モジュール、オブジェクト又は命令のシーケンスとすることができる。一般に、本発明に従ったプログラムは、ネイティブ・コンピュータによって機械可読フォーマット（従って、実行可能命令）に変換される、多くの命令から構成される。さらに、このプログラムは、当該プログラムに対しローカルに存在するか、或いはメモリ内又は記憶デバイス上に置かれる、変数及びデータ構造から構成される。さらに、以下で説明する種々のプログラムは、発明の特定の実施形態内で当該プログラムがそのために実装されるアプリケーションに基づいて識別することができる。しかし、以下で使用されている任意のプログラム命名法は、単に説明の便宜上のものであるに過ぎないことを理解されたい。従って、本発明は、そのような命名法によって識別され及び／又は暗示される、任意の特定のアプリケーション内でのみ使用されるものと限定的に解すべきではない。
【発明を実施するための最良の形態】
【００１９】
＜プロセッサ・レイアウト及び通信ネットワーク＞
図１は、本発明に従った多重コア処理要素１００を示す。多重コア処理要素１００は、複数の基本スループット・エンジン（ＢＴＥ）１０５を含む。ＢＴＥ１０５は、複数の処理スレッド及びコア・キャッシュ（例えば、Ｌ１キャッシュ）を含む。各ＢＴＥ１０５の内部にある処理スレッドは、共有された多重コア処理要素キャッシュ１１０（例えば、Ｌ２キャッシュ）にアクセスする。
【００２０】
さらに、ＢＴＥ１０５は、複数のインボックス１１５にもアクセスする。インボックス１１５は、メモリマップド・アドレス空間とすることができる。インボックス１１５は、各ＢＴＥ１０５の内部にある処理スレッドにマップされる。各ＢＴＥ１０５の内部にある各スレッドは、１つのメモリマップド・インボックスを有し、他の全てのメモリマップド・インボックス１１５にアクセスする。インボックス１１５は、ＢＴＥ１０５によって使用される、低レイテンシ及び高帯域幅の通信ネットワークを構成する。
【００２１】
ＢＴＥ１０５は、互いに通信し且つデータ処理作業を複数のＢＴＥ１０５間で再配布するためのネットワークとして、インボックス１１５を使用する。幾つかの実施形態については、例えば、ＢＴＥ１０５による処理の結果を受信するために、別個のアウトボックスを通信ネットワーク内で使用することができる。他の実施形態については、インボックス１１５は、アウトボックスとしても作用することができる。例えば、１つのＢＴＥ１０５が処理機能の結果を他のＢＴＥ１０５のインボックスに直接的に書くと、後者のＢＴＥ１０５がその結果を使用するということである。
【００２２】
イメージ処理システムの総合性能は、ＢＴＥ１０５がどれくらい良好に作業を分割し且つ再配布することができるかに関連づけられる。インボックス１１５のネットワークは、フレーム間コヒーレンシを有さないＢＴＥ通信情報パケットが共有された多重コア処理要素キャッシュ１１０内のデータを破損しないように、作業を収集し且つこれを他のＢＴＥ１０５に配布するために使用することができる。１フレーム当たり何百万もの３角形を描画可能なイメージ処理システムは、このように接続された多数のＢＴＥ１０５を含む。
【００２３】
本発明の１つの実施形態では、１つのＢＴＥ１０５のスレッドを、作業負荷マネージャ（ＷＭ）に割り当てる。イメージ処理システムは、種々のソフトウェア及びハードウェア・コンポーネントを使用して、３次元シーンから２次元イメージを描画する。本発明の１つの実施形態に従ったイメージ処理システムは、ＷＭを使用して、このイメージ処理システムによって出された光線で空間インデックスを探査する。図４〜図６を参照して後述するように、空間インデックスは、比較的大きな３次元シーンを比較的小さなバウンディング・ボリュームへ分割するために使用される、木状のデータ構造として実装することができる。イメージ処理のために光線追跡法を使用するイメージ処理システムは、空間インデックスを使用して、光線−バウンディング・ボリューム交差を速やかに決定することができる。本発明１つの実施形態では、ＷＭは、空間インデックスを使用して、光線−バウンディング・ボリューム交差テストを遂行することができる。
【００２４】
本発明の１つの実施形態では、多重コア処理要素１００上にある各ＢＴＥ１０５の他のスレッドは、ベクトル・スループット・エンジン（ＶＴＥ）とすることができる。ＷＭは、光線−バウンディング・ボリューム交差を決定した後、インボックス１１５を介して、複数のＶＴＥのうちの１つに光線を出す（送る）ことができる。その後、かかるＶＴＥは、この光線がバウンディング・ボリューム内に含まれるプリミティブと交差するか否かを決定することができる。また、ＶＴＥは、この光線が通過したピクセルの色の決定に関係する動作を遂行することができる。
【００２５】
図２は、本発明に従った多重コア処理要素のネットワーク２００を示す。図２では、図１の１つのＢＴＥ１０５のスレッドが作業負荷マネージャ（ＷＭ）２０５であるものとして示されている。多重コア処理要素のネットワーク２００内の各多重コア処理要素２２０１−Ｎは、１つのＷＭ２０５１−Ｎを含む。また、多重コア処理要素のネットワーク２００内の各多重コア処理要素２２０１−Ｎは、複数のＶＴＥ２１０を含むことができる。
【００２６】
ＷＭ２０５１−Ｎは、他のＷＭ２０５１−Ｎ及び／又は他の多重コア処理要素２２０１−ＮのＶＴＥ２１０と通信するために、高速バス２２５を使用する。各ＶＴＥ２１０は、高速バス２２５を使用して、他のＶＴＥ２１０又はＷＭ２０５１−Ｎと通信する。ＷＭ２０５１−Ｎは、高速バス２２５を使用することにより、イメージ処理に関連するタスクを収集し且つこれを他のＷＭ２０５１−Ｎに配布したり、又はタスクを他のＶＴＥ２１０に配布することができる。高速バス２２５を使用すると、ＷＭ２０５１−Ｎは、ＷＭの通信と関係するデータ・パケットでメモリ・キャッシュ２３０に影響を与えることなく、通信を行うことができる。
【００２７】
＜３次元シーン＞
図３は、イメージ処理システムによって描画すべき３次元シーン３０５を例示する。３次元シーン３０５内には、物体３２０が存在する。図３の物体３２０は、互いに異なる幾何学的形状を有する。図３は、４つの物体３２０だけを示すが、典型的な３次元シーン内の物体の数は、これより多くてもよいし少なくてもよい。一般に、３次元シーンは、図３に示すものよりも多い物体を有するであろう。
【００２８】
図３に示すように、これらの物体の幾何学的形状及びサイズは、互いに異なる。例えば、図３の１つの物体は角錐３２０Ａであり、他の物体は箱形３２０Ｂ−Ｄである。最近のイメージ処理システムでは、物体は、より小さく且つ単純な幾何学的形状（例えば、正方形、円、３角形など）へ分割されることが多い。その後、かかる多数の幾何学的形状によってより大きな物体が表される。一般に、かかる幾何学的形状は、プリミティブと呼ばれる。
【００２９】
３次元シーン３０５内には、光源３２５Ａ−Ｂも示されている。これらの光源は、３次元シーン３０５内にある物体３２０を照射する。さらに、３次元シーン３０５内の光源３２５及び物体３２０の位置に依存して、これらの光源は、３次元シーン３０５内の物体上に影を投げかけることがある。
【００３０】
３次元シーン３０５は、イメージ処理システムによって、２次元ピクチャとして描画される。また、イメージ処理システムは、この２次元ピクチャをモニタ３１０上に表示させる。モニタ３１０は、最終的な２次元ピクチャを描画するために、異なる色の多数のピクセル３３０を使用する。
【００３１】
３次元シーン３０５を２次元ピクチャとして描画するためにイメージ処理システムによって使用される１つの方法は、光線追跡法と呼ばれる。光線追跡法は、観察者の視点３１５から３次元シーン３０５に向かう方向に想像上の光線を出す（撃ち込む）、イメージ処理システムによって行われる。これらの光線は、通常の光線に類似する特性及び振る舞いを有する。
【００３２】
図３に示されている１つの光線３４０は、視点３１５の位置から出て、３次元シーン３０５を通過する。光線３４０が視点３１５から３次元シーン３０５の方向に進行する際、光線３４０は、イメージ処理システムによって最終的な２次元ピクチャが描画されるような平面を通過する。図３では、この平面はモニタ３１０として表される。光線３４０がこの平面又はモニタ３１０を通過する点は、ピクセル３３５として表される。
【００３３】
既に簡述したように、殆どのイメージ処理システムは、モニタ３１０上に最終的なシーンを描画するために、何十万又は何百万ものピクセルのグリッド３３０を使用する。グリッド３３０は、フレームとも呼ばれる。各ピクセルは、モニタ３１０上に最終的な合成済みの２次元ピクチャを描画するために、異なる色を表示することができる。３次元シーンから２次元ピクチャを描画するために光線追跡法を用いるイメージ処理システムは、観察者の視点３１５から出た光線３４０が３次元シーン３０５内の物体に当たれば、その交点における色を計算するであろう。その後、イメージ処理システムは、光線３４０が観察者の視点３１５から３次元シーン３０５の方向に進行する過程で通過した特定のピクセルに対し、前記交点について計算された色を割り当てるであろう。
【００３４】
１ピクセル当たりに出される光線の数は、変わることがある。幾つかのピクセルは、描画すべき特定の３次元シーンについて出される多数の光線を有することがある。その場合、当該ピクセルの最終的な色は、当該ピクセルのために出された光線の全てからの各色の寄与によって決定される。他のピクセルには、２次元ピクチャ内の当該ピクセルの結果的な色を決定するために単一の光線だけが出されることがある。幾つかのピクセルには、イメージ処理システムによってどんな光線も出されないことがある。その場合、当該ピクセルの色は、イメージ処理システム内のアルゴリズムによって、決定、近似又は割り当てることができる。
【００３５】
２次元ピクチャ内のピクセル３３５の最終的な色を決定するために、イメージ処理システムは、光線３４０が３次元シーン３０５内の物体と交差するか否かを決定しなければならない。もし、光線３４０が３次元シーン３０５内のどの物体とも交差しなければ、それにはデフォルトの背景色（例えば、日中の空又は夜空を表す、青又は黒）を割り当てる。一方、光線３４０が３次元シーン３０５を通過する際に、３次元シーン３０５内の物体に当たることもある。そのような場合には、光線３４０が通過するピクセルに対し、当該物体の色を割り当てる。しかし、ピクセルに割り当てる前に、当該物体の色を決定しなければならない。
【００３６】
元の光線３４０が当たった物体の色には、多くの要因が寄与する。例えば、３次元シーン３０５内の光源３２５Ａ−Ｂが物体を照射することがある。さらに、物体の物理的性質が、その物体の色に寄与することがある。例えば、この物体が反射又は透明の特性を有していれば、他の非光源物体がこの物体の色に寄与する。
【００３７】
３次元シーン３０５内の他の物体からの効果を決定するために、元の光線３４０と物体との交点から２次光線を出すことができる。例えば、元の光線３４０及び物体の交点への光の寄与を決定するために、影光線３４１を出すことができる。もし、この物体が半透明の特性を有していれば、イメージ処理システムは、どの色又は光がこの物体の本体を透過するかを決定するために透過光線３４４を出すことができる。もし、この物体が反射の特性を有していれば、イメージ処理システムは、どの色又は光が物体３２０上で反射されるかを決定するために、反射光線を出すことができる。
【００３８】
１つのタイプの２次光線は、影光線とすることができる。各影光線は、元の光線３４０及び物体の交点から３次元シーン３０５内の光源まで追跡することができる。もし、影光線がこの光源に到達する前に他の物体に遭遇せずに、影光線がこの光源に到達すれば、この光源は、元の光線３４０が物体に当たった点でその物体を照射するであろう。
【００３９】
例えば、影光線３４１Ａは、元の光線３４０及び物体３２０Ａの交点から出て、光源３２５Ａに向かう方向に進行する。影光線３４１Ａは、３次元シーン３０５内の他の任意の物体３２０に遭遇せずに、光源３２５Ａに到達する。従って、光源３２５Ａは、元の光線３４０及び物体３２０Ａの交点において物体３２０Ａを照射するであろう。
【００４０】
他の影光線は、元の光線３４０及び物体の交点と、３次元シーン内の他の物体によって阻止される光源との間にそれらの経路を有することができる。もし、元の光線３４０及び物体の交点と光源の間の経路を妨害する物体が不透明であれば、この光源は、元の光線３４０及び物体の交点において物体を照射しないであろう。従って、この光源は、元の光線３４０の色に寄与しないし、２次元ピクチャ内の描画すべきピクセルの色にも寄与しない。しかし、物体が半透明又は透明であれば、この光源は、元の光線３４０及び物体の交点において物体を照射する。
【００４１】
例えば、影光線３４１Ｂは、元の光線３４０及び物体３２０Ａの交点から出て、光源３２５Ｂに向かう方向に進行する。この例において、影光線３４１Ｂの経路は、物体３２０Ｄによって阻止される。もし、物体３２０Ｄが不透明であれば、光源３２５Ｂは、元の光線３４０及び物体３２０Ａの交点において物体３２０Ａを照射しないであろう。しかし、物体３２０Ｄが半透明又は透明であれば、光源３２５Ｂは、元の光線３４０及び物体３２０Ａの交点において物体３２０Ａを照射する。
【００４２】
他のタイプの２次光線は、透過光線である。元の光線３４０と交差する物体が透明又は半透明の特性を有する場合（例えば、ガラス）、イメージ処理システムは、透過光線を出すことができる。透過光線は、元の光線３４０が物体に当たる角度に対し或る角度を以て、物体を通過する。例えば、図３では、透過光線３４４は、元の光線３４０と交差した物体３２０Ａを通過するように図示されている。
【００４３】
他のタイプの２次光線は、反射光線である。元の光線３４０と交差した物体が反射の特性を有する場合（例えば、金属仕上げ）、イメージ処理システムは、どの色又は光が物体３２０上で反射されるかを決定するために、反射光線を出すことができる。反射光線は、元の光線３４０が物体に当たる角度に対し或る角度を以て、物体から離れるように進行する。例えば、イメージ処理システムは、元の光線３４０と交差した物体３２０Ａ上でどの色又は光が反射されるかを決定するために、反射光線３４３を出すことができる。
【００４４】
色及び光に対する全ての２次光線（例えば、影光線、透過光線、反射光線など）の総合的な寄与は、元の光線３４０が通過したピクセルの最終的な色に帰着するであろう。
【００４５】
＜ＫＤツリー＞
光線追跡法を実装するときに遭遇する１つの問題は、出された光線が描画すべき３次元シーン内の任意の物体と交差するか否かを速やかに且つ効率的に決定することである。かかる光線の交差をより効率的に決定するための１つの公知の方法は、空間インデックスを使用するというものである。空間インデックスは、３次元シーン又は実世界を（この３次元シーン全体に比べて）小さなボリュームに分割する。これらの小さなボリュームは、プリミティブを含むこともあるし、含んでいないこともある。次に、イメージ処理システムは、これらの小さなボリュームの既知の境界を使用して、光線がこれらの小さなボリューム内に含まれるプリミティブと交差するか否かを決定する。もし、光線がプリミティブを含むボリュームと交差すれば、そのボリューム内に含まれるプリミティブの既知の位置及び次元に対する光線の軌跡を使用して、光線交差テストを行うことができる。もし、光線が特定のボリュームと交差しなければ、そのボリューム内に含まれるプリミティブについて光線−プリミティブ交差テストを行う必要はない。さらに、光線がプリミティブを含まないバウンディング・ボリュームと交差すれば、そのバウンディング・ボリュームについて光線−プリミティブ交差テストを行う必要はない。従って、空間インデックスを使用すると、必要な光線−プリミティブ交差テストの数を削減することができるので、光線追跡法を実装するイメージ処理システムの性能が大幅に向上する。異なる空間インデックス加速データ構造の幾つかの例には、オクトツリー、ｋ次元のツリー（ＫＤツリー）及び２分空間分割ツリー（ＢＳＰツリー）がある。幾つかの異なる空間インデックス構造が存在するが、本発明の実施形態を説明する便宜上、以下の例ではＫＤツリーを使用する。しかし、異なるタイプの空間インデックスのうち任意のものを本発明の実施形態に適用することができる。
【００４６】
ＫＤツリーは、３次元シーン全体又は空間をより小さなボリュームへ分割するために、バウンディング・ボリュームに整列した軸を使用する。すなわち、ＫＤツリーは、既知の軸と平行な分割用平面を使用することを通して、３次元シーンによって包含される３次元空間を分割することができる。かかる分割用平面は、１つのより大きな空間をより小さなバウンディング・ボリュームへ分割する。これらのより小さなバウンディング・ボリュームは、互いに３次元シーン内の空間全体を構成するものである。より大きな１つのバウンディング・ボリュームをより小さな２つのバウンディング・ボリュームに分割するという決定は、ＫＤツリー構築アルゴリズムを使用することを通して、イメージ処理システムがこれを行うことができる。
【００４７】
１つのバウンディング・ボリュームをより小さなボリュームに分割すべき場合を決定するための１つの基準は、このバウンディング・ボリューム内に含まれるプリミティブの数である。すなわち、１つのバウンディング・ボリュームが予定のしきい値よりも多いプリミティブを含む限り、ツリー構築アルゴリズムは、より多くの分割用平面を引くことによって、ボリュームの分割を継続することができる。１つのバウンディング・ボリュームをより小さなボリュームに分割すべき場合を決定するための他の基準は、このバウンディング・ボリューム内に含まれる空間の量である。さらに、このバウンディング・ボリュームの分割を継続するという決定は、このバウンディング・ボリュームを作成する平面と交差するプリミティブの数に基づいてもよい。
【００４８】
３次元シーンの分割は、複数のノード、枝及び葉から構成された２分木構造によって表すことができる。この２分木内の各親ノードが、１つの比較的大きなバウンディング・ボリュームを表すのに対し、当該各親ノードから子ノードに延びる枝は、このバウンディング・ボリュームを１つの分割用平面によって分割した後に得られる、比較的小さな分割済みボリュームを表す。１つの軸に整列したＫＤツリーでは、各親ノードは、他のノードへの２つの枝を含むことができる。親ノードは、１つ又は２つの葉ノードへの枝（すなわち、ポインタ）を含むことができる。葉ノードは、より小さなボリュームへさらに細分されないノードであって、プリミティブへのポインタを含む。また、親ノードは、さらに細分される他の親ノードへの枝を含むことができる。さらに、親ノードは、分割用平面がどの軸のどの点に沿って引かれたかを決定するために必要な情報を保持することができる。
【００４９】
＜バウンディング・ボリューム＞
図４〜図６は、イメージ処理システムによって描画すべき２次元空間及び対応するＫＤツリーを示す。説明を簡単にするため、ＫＤツリーを構築するのに２次元シーンが使用されるものとする。しかし、ＫＤツリーは、３次元シーンを表すためにも使用することができる。図４〜図６の２次元的例では、３次元構造内で使用される分割用平面及びバウンディング・ボリュームの代わりに、分割用線及びバウンディング・エリアが示されている。しかし、これらの概念は、物体を含む３次元シーンにも容易に適用することができる。
【００５０】
図４は、モニタ３１０上に表示される最終的なピクチャ内で描画すべきプリミティブ４１０を含む、２次元シーン４０５を示す。このシーン全体を表す最大のボリュームは、バウンディング・ボリューム１（ＢＶ１）によって包含される。対応するＫＤツリーでは、これは、ルート・ノードとも呼ばれる、最上位のノード４５０によって表すことができる。バウンディング・ボリュームが、例えば、３つ以上のプリミティブを含む場合、イメージ処理システムは、バウンディング・ボリュームをより小さなバウンディング・ボリュームに分割する動作を継続することができる。前述のように、１つのバウンディング・ボリュームをより小さなバウンディング・ボリュームに分割する動作を継続するという決定は、多くの要因に基づいてもよい。しかし、この例の説明を簡単にするため、１つのバウンディング・ボリュームの分割を継続するという決定は、プリミティブの数にのみ基づくものとする。図４から分かるように、ＢＶ１は６つのプリミティブを含む。従って、ＫＤツリー構築アルゴリズムは、ＢＶ１をより小さなバウンディング・ボリュームに分割することができる。
【００５１】
図５は、図４と同じ２次元シーン４０５を示す。しかし、図５では、ツリー構築アルゴリズムは、ＢＶ１をより小さな２つのバウンディング・ボリュームＢＶ２及びＢＶ３に分割している。ＢＶ１の分割は、ｘ軸上の点ｘ１においてｘ軸に沿って分割用平面ＳＰ１４１５を引くことにより行われた。このＢＶ１の分割は、親ノードＢＶ１４５０の下にあり且つＢＶ２及びＢＶ３にそれぞれ対応する、２つのノード４５５及び４６０としてＫＤツリー内に反映されている。この時点で、ＢＶ１を表す親ノードは、ＢＶ１の下に位置する２つのノードＢＶ２及びＢＶ３へのポインタのような情報を格納することができる。
【００５２】
ＫＤツリー構築アルゴリズムは、バウンディング・ボリュームＢＶ３が予定のしきい値（例えば、３以上）を超えるプリミティブを含むという理由で、ＢＶ３の分割を継続することができる。しかし、ＫＤツリー構築アルゴリズムは、バウンディング・ボリュームＢＶ２が予定のしきい以下のプリミティブしか含まないという理由で（例えば、ＢＶ２は２つのプリミティブ４１０Ａを含むに過ぎない）、ＢＶ２の分割を継続しなくてもよい。ＢＶ２のように、さらに分割又は細分されないノードは、葉ノードと呼ばれる。
【００５３】
図６は、図５と同じ２次元シーン４０５を示す。しかし、図６では、ＫＤツリー構築アルゴリズムは、ＢＶ３をより小さな２つのバウンディング・ボリュームＢＶ４及びＢＶ５に分割している。ＢＶ３の分割は、ｙ軸上の点ｙ１においてｙ軸に沿って分割用平面ＳＰ２４２０を引くことにより行われた。ＢＶ３は、２つの子ノードに分割されたので、今やこれを親ノードと呼ぶことができる。また、ＢＶ３の分割は、ＢＶ４及びＢＶ５にそれぞれ対応する、２つの葉ノード４６５及び４７０としてＫＤツリー内に反映されている。ＢＶ４及びＢＶ５は、葉ノードである。というのは、それらが表すボリュームは、より小さなバウンディング・ボリュームにさらに分割されないからである。これらの２つの葉ノード、ＢＶ４及びＢＶ５は、ＫＤツリーにおいて、分割されたバウンディング・ボリュームを表す親ノードＢＶ３の下に位置する。
【００５４】
この時点で、ＢＶ３を表す親ノードは、ＢＶ３の下に位置する２つの葉ノードＢＶ４及びＢＶ３へのポインタのような情報を格納することができる。
【００５５】
この時点で、ＫＤツリー構築アルゴリズムは、シーン内の全てのバウンディング・ボリュームが（１つのバウンディング・ボリューム内に含めることができる）予定のしきい以下のプリミティブしか含まないので、これらのバウンディング・ボリュームの分割を停止する。葉ノードは、各葉が表すバウンディング・ボリューム内に含まれるプリミティブへのポインタを保持する。例えば、葉ノードＢＶ２は、プリミティブ４１０Ａへのポインタを保持し、葉ノードＢＶ４は、プリミティブ４１０Ｂへのポインタを保持し、葉ノードＢＶ５は、プリミティブ４１０Ｃへのポインタを保持する。
【００５６】
光線追跡法を実装するイメージ処理システムは、空間インデックス（ＫＤツリー）を探査するために、図２の作業負荷マネージャ（ＷＭ）２０５を使用することができる。ＫＤツリーの探査は、ＫＤツリーの下位レベル（子ノード）への枝を選択することにより、光線がこの子ノード内に含まれるプリミティブと交差するか否かを決定するように進行する。ＷＭ２０５は、出された光線の座標及び軌跡を使用して、ＫＤツリーを探査する。ＷＭ２０５は、光線−バウンディング・ボリューム交差テストを実行することにより、光線がＫＤツリー構造内のノードによって表されるバウンディング・ボリュームの１つの平面と交差するか否かを決定する。もし、光線がプリミティブだけを含む１つのバウンディング・ボリューム（すなわち、１つの葉ノード）と交差すれば、ＷＭ２０５は、光線及び関連する情報を光線−プリミティブ交差テストのためにベクトル・スループット・エンジン（ＶＴＥ）２１０に送ることができる。光線−プリミティブ交差テストは、光線がこのバウンディング・ボリューム内のプリミティブと交差するか否かを決定するために実行することができる。この方法の利点は、シーン内に含まれる各プリミティブごとに光線−プリミティブ交差テストを実行することに比較すると、光線がシーン内の１つの物体と交差するか否かを決定するために必要とされる光線−プリミティブ交差テストの数がより少なくなるという点にある。
【００５７】
結果的に得られたＫＤツリー構造、すなわち空間インデックス構造は、図２のメモリ・キャッシュ２３０内に格納することができる。ＫＤツリー及びＫＤツリーを構成する対応するデータのサイズは、メモリ・キャッシュ２３０内に格納するために最適化することができる。ＫＤツリーをメモリ・キャッシュ２３０内に格納することにより、ＷＭ２０５は、光線がイメージ処理システムによって出されるごとにメモリからＫＤツリーを検索することなく、イメージ処理システムによって出された光線でＫＤツリーを探査することができる。
【００５８】
＜複数の空間インデックス＞
３次元シーンは、静的物体及び動的物体を有することがある。静的物体は、比較的長い期間（例えば、幾つかのフレーム）にわたって移動しないか又は形状を変えない物体である。例えば、建築物は、静的物体と見なすことができる。図７は、３次元シーン５００内の建築物５０５を示す。この建築物５０５は、比較的長い期間にわたって移動しないか又は形状を変えないから、静的物体に相当する。
【００５９】
対照的に、動的物体は、比較的短い期間（例えば、１つ又は２つのフレーム）にわたって移動するか又は形状を変える物体である。自動車は、動的物体の１例である。例えば、図７の自動車５１０は、比較的短い期間にわたって３次元シーン５００内で水平に移動することができる。
【００６０】
前述のように、イメージ処理システムは、空間インデックス（例えば、ＫＤツリー）を使用して、３次元シーンから２次元イメージ（すなわち、フレーム）を描画することができる。もし、この３次元シーンが変われば（例えば、この３次元シーン内の物体が移動するか又は形状を変えれば）、イメージ処理システムは、次の２次元イメージ又はフレームを正確に描画するために、３次元シーン内の物体を表す空間インデックスを変更又は再構築しなければならないであろう。
【００６１】
もし、３次元シーン内の全ての物体がフレーム間で静的であれば（すなわち、移動しないか又は形状を変えないのであれば）、フレーム間で空間インデックスを再構築する必要はない。しかし、イメージ処理システムが光線追跡のために単一の空間インデックスのみを使用しており、しかもフレーム内の幾つかの物体が或るフレームから次のフレームまでの間に移動するか又は形状を変えるのであれば、３次元シーンを構成する物体の変化を正確に表すために、空間インデックスを再構築する必要がある。例えば、１つの動的物体が第１のフレーム内の第１の位置から第２のフレーム内の第２の位置に移動する場合、第１のフレーム内の当該物体の第１の位置を表す空間インデックスは、第２のフレーム内の当該物体の第２の位置を正確に表さないことがある。従って、空間インデックスは、第２のフレーム内の当該物体の第２の位置を正確に表すために、再構築されねばならないであろう。
【００６２】
イメージ処理システムによって空間インデックス全体を再構築することは、相当な量の処理サイクルを必要とし、その結果、３次元シーンの最小の部分だけが変化したに過ぎないとしても、３次元シーンから２次元イメージを描画するのに必要な時間の総量が増加することになろう。しかし、本発明によれば、３次元シーン内の物体の位置又は形状の変化に応答するのに必要な時間の量を削減するために、２つの別個の空間インデックスを構築することができる。かかる変化に応答するのに必要な時間の量を削減することによって、３次元シーンから２次元イメージを描画するのに必要な時間の量を同様に削減することができる。
【００６３】
図８は、３次元シーン内の全ての物体を表すことができる、２つの別個の空間インデックスを示す。１つの空間インデックスは、例えば、３次元シーン内の全ての静的物体を表す、静的空間インデックス６０５Ａである。他の空間インデックスは、例えば、３次元シーン内の動的物体を表す、動的空間インデックス６１０Ａである。
【００６４】
説明の便宜上、静的空間インデックス６０５Ａに対応する３次元シーンは、図７の３次元シーン５００であるものとする。従って、静的空間インデックス６０５Ａは、図７の３次元シーン５００内の静的物体である建築物５０５を表す。さらに、動的空間インデックス６１０Ａは、図７の３次元シーン５００内の動的物体（すなわち、自動車５１０）に対応する。
【００６５】
空間インデックスを探査するために図２の作業負荷マネージャ（ＷＭ）２０５を使用するイメージ処理システムは、空間インデックスを処理要素のメモリ・キャッシュ（例えば、図２のメモリ・キャッシュ２３０）内に格納することができる。空間インデックスをメモリ・キャッシュ内に格納すると、この空間インデックス内に格納された情報をＷＭ２０５がアクセスするのに必要な時間が削減され、その結果、この空間インデックスを通して行われる光線の探査を促進させることができる。本発明によれば、静的空間インデックス６０５Ａ及び動的空間インデックス６１０Ａは、メモリ・キャッシュの別個の部分に格納することができる。メモリ・キャッシュの別個の部分に静的空間インデックス及び動的空間インデックスを格納すると、静的空間インデックスに影響せずに動的空間インデックスを更新することができる。
【００６６】
図８は、メモリ・キャッシュ６２０の別個の部分に空間インデックスが格納されている状況を示す。例えば、静的空間インデックス６０５Ａをメモリ・キャッシュ６２０の静的空間インデックス部分６２５に格納し、動的空間インデックス６１０Ａをメモリ・キャッシュ６２０の動的空間インデックス部分６３０に格納する。
【００６７】
図９は、静的空間インデックス及び動的空間インデックスを作成し、これらの空間インデックスをメモリ・キャッシュ内に格納するための、本発明に従った方法７００のフローチャートを示す。この方法７００は、ステップ７０５において開始し、そこでイメージ処理システムは、３次元シーン内の静的物体を表す１つの静的空間インデックス（例えば、図８の静的空間インデックス６０５Ａ）を作成する。例えば、イメージ処理システムは、図４〜図６を参照して既に説明したようなＫＤツリーを構築する。また、ステップ７０５において、イメージ処理システムは、３次元シーン内の全ての動的物体を表す１つの動的空間インデックス（例えば、図８の動的空間インデックス６１０Ａ）を作成する。イメージ処理システムは、静的空間インデックスと同じタイプの空間インデックス又は静的空間インデックスとは異なるタイプの空間インデックスを構築することができる。例えば、静的空間インデックス及び動的空間インデックスの両方がＫＤツリーであることもあるし、静的空間インデックスがＫＤツリーで且つ動的空間インデックスがＢＳＰツリーであることもある。
【００６８】
次に、ステップ７１０において、イメージ処理システムは、静的空間インデックスをメモリ・キャッシュの静的空間インデックス部分に格納する。例えば、イメージ処理システムは、静的空間インデックスを図８のメモリ・キャッシュ６２０の静的空間インデックス部分６２５に格納する。静的空間インデックスの格納動作を終了した後、ステップ７１５に移行し、そこでイメージ処理システムは、動的空間インデックスをメモリ・キャッシュの動的空間インデックス部分に格納する。例えば、イメージ処理システムは、動的空間インデックスを図８のメモリ・キャッシュ６２０の動的空間インデックス部分６３０に格納する。
【００６９】
次に、ステップ７２０において、イメージ処理システムは、描画中の現フレームについて光線追跡を行う。ステップ７２０では、少なくとも１つのＷＭ２０５（例えば、ＷＭ２０５１−Ｎ）は、静的空間インデックス６０５Ａ及び動的空間インデックス６１０Ａを使用して、３次元シーン５００を通過する光線を追跡する。ＷＭ２０５が一方又は両方の空間インデックスの葉ノードへの光線を探査した後、ＷＭ２０５は、この光線を図２のベクトル・スループット・エンジン（ＶＴＥ）に送る。ＶＴＥ２１０は、この光線が探査済みの葉ノードに対応するバウンディング・ボリューム内に含まれる１つのプリミティブに当たるか否かを決定する。
【００７０】
光線は、静的空間インデックスの葉ノードに対応するバウンディング・ボリューム内のプリミティブ、及び動的空間インデックスの葉ノードに対応するバウンディング・ボリューム内のプリミティブに当たることがある。そうであれば、光線が通過したピクセルの色を決定するために、最初に交差したプリミティブが使用されるであろう。
【００７１】
イメージ処理システムは、視点（例えば、図３の視点３１５）と光線及びプリミティブの交点との間の距離を計算することにより、どのプリミティブが最初に交差したかを決定する。この最初に交差したプリミティブは、視点と光線及びプリミティブの交点との間の距離が最も短いものである。
【００７２】
イメージ処理システムは、３次元シーンから２次元イメージ（すなわち、フレーム）を描画するのに十分な数の光線追跡されるまで、３次元シーンを通過する光線の追跡を継続する。
【００７３】
現フレームのための光線追跡を終了した後、イメージ処理システムは、ステップ７２５に移行し、そこでメモリ・キャッシュ６２０の動的空間インデックス部分６３０を無効化する。メモリ・キャッシュ６２０の動的空間インデックス部分６３０の無効化は、陳腐化している動的空間インデックスをメモリ・キャッシュ６２０からパージするために行うことができる。メモリ・キャッシュの動的空間インデックス部分６３０の無効化は、イメージ処理システムによって描画すべき次のフレームのために新しい動的空間インデックスを作成し且つこれをメモリ・キャッシュ６２０内に保存する必要があるという予測に基づいて、行うことができる。新しい動的空間インデックスは、例えば、描画すべき次のフレーム内の動的物体の新しい位置を反映するために作成しなければならないことがある。
【００７４】
後述するように、キャッシュの動的空間インデックス部分の無効化は、配布されるタイム・ベース信号及びメモリ・ディレクトリ内の属性を使用することにより、行うことができる。メモリ・キャッシュは、フレーム単位で無効化することができる。
【００７５】
次に、ステップ７３０において、イメージ処理システムは、現時点が静的空間インデックスを更新すべき時間であるか否かを決定する。イメージ処理システムは、例えば、以前に静的物体と見なされていた物体が移動するか又は形状を変え、従って静的物体ではなく動的物体と見なす必要がある場合には、現時点が静的空間インデックスを更新すべき時間であると決定する。さらに、例えば、以前に動的であった物体がもはや移動していないか又は形状を変えておらず、そのため現在では静的物体と見なすことができる場合には、現時点が静的空間インデックスを更新すべき時間であると決定する。イメージ処理システムは、ステップ７３０において、時々、静的空間インデックスを更新する必要があると決定することができるが、この決定の頻度は、動的空間インデックスを更新する必要があると決定する頻度よりも低いのが普通である。例えば、新しい動的空間インデックスをフレームごとに作成する必要があり得るのに対し、静的空間インデックスは６０フレームが経過した後にだけ更新する必要があるに過ぎない。
【００７６】
もし、現時点が静的空間インデックスを更新すべき時間であれば、イメージ処理システムは、ステップ７０５に戻り、そこで３次元シーン内の物体の変化に対応するように静的空間インデックス及び動的空間インデックスを更新する。
【００７７】
しかし、現時点が静的空間インデックスを更新すべき時間でなければ、イメージ処理システムは、ステップ７３５に移行し、そこでイメージ処理システムによって描画すべき次のフレームのために使用することができる、新しい動的空間インデックスを作成する。この新しい動的空間インデックスは、３次元シーン内の動的物体の新しい位置又は形状を反映することができる。
【００７８】
例えば、図１０は、図７の３次元シーン５００を示す。しかし、３次元シーン５００内の動的物体（すなわち、自動車５１０）は、３次元シーン５００内の第１の位置５１５Ａから新しい位置５１５Ｂに移動している。一方、静的物体（すなわち、建築物５０５）は同じ位置に留まっている。従って、新しい３次元シーン５００を適正に表すために、イメージ処理システムによって新しい動的空間インデックスを作成する。この新しい動的空間インデックスは、３次元シーン５００内の動的物体（すなわち、自動車５１０）の移動を反映するものである。対照的に、静的物体は３次元シーン５００内の位置を変えていないので、図７の静的物体を表すために作成された静的空間インデックスは、図１０の静的物体を正確に表す。
【００７９】
従って、３次元シーン内の物体の移動に応答して３次元シーン内の全ての物体（すなわち、静的物体及び動的物体）を表す単一の空間インデックスを再構築する代わりに、３次元シーン内の物体の移動に対応するように動的空間インデックスだけを再構築しなければならない。３次元シーン内の物体の一部だけを表す空間インデックスの再構築は、全ての物体（すなわち、静的物体及び動的物体）を表す空間インデックスの再構築に比較して、より少ない時間を必要とするに過ぎない。
【００８０】
新しい動的空間インデックス６１０Ｂを作成した後、イメージ処理システムは、ステップ７１５に戻り、そこで新しい動的空間インデックス６１０Ｂをメモリ・キャッシュ６２０の動的空間インデックス部分６３０に格納する。
【００８１】
図１１は、静的空間インデックス及び動的空間インデックスを格納するために使用された図８のメモリ・キャッシュ６２０を示す。しかし、イメージ処理システムは、３次元シーン内の物体の古い位置又は形状に対応する動的空間インデックスを、新しい動的空間インデックスで置き換えている。例えば、新しい動的空間インデックス６１０Ｂは、自動車５１０の新しい位置５１５Ｂを表す。この新しい動的空間インデックス６１０Ｂは、自動車５１０の第１の位置５１５Ａを表していた動的空間インデックス６１０Ａから僅かに異なっているに過ぎない。図１１に示すように、古い動的空間インデックスと新しい動的空間インデックスとの間の違いは、動的空間インデックス６１０Ｂの部分６１５Ｂである。この部分６１５Ｂは、第１の位置５１５Ａから第２の位置５１５Ｂまでの自動車５１０Ｂの位置の変化に対応する。
【００８２】
図１１は、静的空間インデックス６０５Ａも示す。静的物体（すなわち、建築物５０５）が３次元シーン５００内でその位置又は形状を変えていないので、図１１の静的空間インデックス６０５Ａは、図８の静的空間インデックス６０５Ａから変わっていない。
【００８３】
＜データ依存有効期限による動的キャッシュ無効化＞
前述のように、本発明に従ったイメージ処理システム内のメモリ・キャッシュは、動的空間インデックス及び静的空間インデックスの両方を保持する。さらに、メモリ・キャッシュは、静的空間インデックスを格納するための静的空間インデックス部分と、動的空間インデックスを格納するための動的空間インデックス部分とを有する。或る状況では、静的空間インデックス及び動的空間インデックスを別個に格納することが望ましいであろう。というのは、静的空間インデックスを格納するための静的空間インデックス部分を有効状態に維持している間に、動的空間インデックスを格納するための動的空間インデックス部分を周期的に無効化することができるからである。
【００８４】
動的空間インデックスを格納するための動的空間インデックス部分の周期的な無効化は、３次元シーン内の物体の（移動又は衝突に起因する）新しい位置に対応する新しい動的空間インデックスをイメージ処理システムが使用するであろうという予測に基づいて、これを行うことができる。従って、新しい動的空間インデックスを、メモリ・キャッシュ内に格納することができる。メモリ・キャッシュの動的空間インデックス部分だけを周期的に無効化すると、静的空間インデックスはメモリ・キャッシュ内に留まるが、古い動的空間インデックス（例えば、３次元シーン内の物体の古い位置を表すもの）は有効に廃棄することができる。その後、新しい動的空間インデックスを、古い動的空間インデックスが格納されていた記憶位置に格納することができる。
【００８５】
本発明の実施形態によれば、メモリ・キャッシュの動的空間インデックス部分は、配布されるタイム・ベース信号及びメモリ・ディレクトリ内のエントリに関連する属性ビットの組み合わせを使用して、無効化することができる。配布されるタイム・ベース信号は、イメージ処理システム内にある諸処理要素に配布することができ、それにより、多重コア処理要素のネットワークを通してそれぞれのメモリ・キャッシュの動的空間インデックス部分を同期的に且つ周期的に無効化することができるようになる。
【００８６】
メモリ・キャッシュの部分を無効化するために配布されるタイム・ベース信号及び追加の属性ビットの組み合わせを使用すると、フレームごとに何千又は何百万ものキャッシュ無効化命令を実行する必要性を排除することができる。これらの無効化命令を実行する必要性を排除すると、１つ又は複数の処理要素は他のイメージ処理に関係する他のタスクを実行することができ、その結果、イメージ処理システムの総合性能を改善することができる。
【００８７】
図１２は、配布されるタイム・ベース信号を生成することができるフレーム・リフレッシュ・タイマ回路１０１０を含む、本発明に従った多重コア処理要素のネットワーク１０００を示す。多重コア処理要素のネットワーク１０００は、図２のネットワーク２に類似する。しかし、図１０の多重コア処理要素のネットワーク１０００は、さらにフレーム・リフレッシュ・タイマ回路１０１０を含む。フレーム・リフレッシュ・タイマ回路１０１０は、多重コア処理要素のネットワーク１０００と同じチップ上に配置することができる。しかし、フレーム・リフレッシュ・タイマ回路１０１０は、多重コア処理要素のネットワーク１０００とは別のチップ上に配置することもできる。
【００８８】
フレーム・リフレッシュ・タイマ回路１０１０は、配布されるタイム・ベース信号を生成する回路を含む。配布されるタイム・ベース信号は、多重コア処理要素のネットワーク１０００内の多重コア処理要素２２０１−Ｎ間で配布される電気パルスとすることができる。フレーム・リフレッシュ・タイマ回路１０１０内の回路は、周期的な電気パルスを生成する任意の適切な回路とすることができる。例えば、かかる回路は、クロック発信器及びこのクロック発信器にゲートを接続した１つのトランジスタを含み、クロック発信器がトランジスタのゲートに電圧を供給するとき、トランジスタがそのソース及びドレインの間に電流を流すように構成することができる。生成されたパルスは、フレーム・リフレッシュ・タイマ回路１０１０と多重コア処理要素２２０１−Ｎの間の任意の適切な電気接続（例えば、銅線、トレースなど）を介して、配布することができる。
【００８９】
本発明に従って、配布されるタイム・ベース信号の期間は、イメージ処理システムのフレーム・リフレッシュ周波数に基づいて決定することができる。例えば、イメージ処理システムは、１フレームを毎秒６０回描画又はリフレッシュする。イメージ処理システムが新しいフレームを描画する前に、３次元シーン内の物体の新しい位置を表すために新しい動的空間インデックスを作成することができる。この新しい動的空間インデックスは、メモリ・キャッシュ内に格納する必要がある。しかし、古い動的空間インデックス（すなわち、以前のフレームを描画するために使用されたもの）が、依然としてメモリ・キャッシュ内に格納されていることがある。新しいフレームを描画する場合には、イメージ処理システムが物体の古い位置を使用しないように、古い動的空間インデックスを無効化する必要がある。従って、イメージ処理システムが新しい動的空間インデックスを（例えば、毎秒６０回）作成するごとに、古い動的空間インデックスを（例えば、毎秒６０回）無効化する必要がある。
【００９０】
従って、配布されるタイム・ベース信号の期間は、イメージ処理システムによって必要とされるようなメモリ・キャッシュの動的空間インデックス部分を無効化するために、１／６０秒とすることができる。
【００９１】
仮想アドレス変換を使用するイメージ処理システムは、それによって使用される有効アドレスを記憶位置に対応する実アドレスに変換／マップするために、メモリ・ディレクトリを使用することができる。図１３は、有効アドレスをメモリ・キャッシュ６２０内の記憶位置に対応する実アドレスにマップするために使用することができる、メモリ・ディレクトリ１１０５を示す。本発明によれば、図１３に示すように、配布されるタイム・ベース信号は、メモリ・ディレクトリ１１０５内の全てのエントリに結合することができる。配布されるタイム・ベース信号は、メモリ・キャッシュの空間インデックス部分を無効化するために、メモリ・ディレクトリと共に使用することができる。
【００９２】
前述のように、メモリ・キャッシュ６２０は、静的空間インデックスに関係するデータを格納するための静的空間インデックス部分６２５と、動的空間インデックスに関係するデータを格納するための動的空間インデックス部分６３０とを有する。メモリ・キャッシュ６２０の動的空間インデックス部分６３０内にあるデータにアクセスするために、メモリ・ディレクトリ・エントリを提供することができる。メモリ・ディレクトリ・エントリは、メモリ・キャッシュ６２０の動的空間インデックス部分６３０の有効アドレスを、メモリ・キャッシュ６２０の動的空間インデックス部分６３０の実アドレスにマップする。例えば、メモリ・ディレクトリ・エントリ１１１５は、メモリ・キャッシュ６２０の動的空間インデックス部分６３０の有効アドレスを、メモリ・キャッシュ６２０の動的空間インデックス部分６３０の実アドレスにマップする。
【００９３】
アドレス変換情報に加えて、メモリ・ディレクトリ１１０５内のメモリ・ディレクトリ・エントリは、属性ビット１１２０を保持する。これらの属性ビット１１２０は、メモリ・キャッシュ内のデータに関係する属性を定義する。本発明に従って、メモリ・ディレクトリ内の既存の属性ビットに、新しい第１の属性ビットが追加される。この新しい第１の属性ビットは、配布されるタイム・ベース信号がメモリ・ディレクトリ・エントリ１１１５によって次に受信されるときに、メモリ・ディレクトリ・エントリ１１１５を無効化すべきか否かを指示する。この新しい第１の属性ビットは、「配布されるタイム・ベース信号によるアクセス時にメモリ・ディレクトリ・エントリを無効化（ｉｎｖ＿ｏｎ＿ｄｔｂｓ）」ビットと呼ばれる。さらに、本発明に従って、メモリ・ディレクトリ・エントリ１１１５は、新しい第２の属性ビットも保持する。この新しい第２の属性ビットは、メモリ・ディレクトリ・エントリ１１１５が、配布されるタイム・ベース信号（ａｃｃ＿ｂｙ＿ｄｔｂｓ）によってアクセスされたか否かを指示する。この新しい第２の属性ビットは、「配布されるタイム・ベース信号によるアクセス（ａｃｃ＿ｂｙ＿ｄｔｂｓ）」ビットと呼ばれる。
【００９４】
ｉｎｖ＿ｏｎ＿ｄｔｂｓビット及びａｃｃ＿ｂｙ＿ｄｔｂｓビットを比較すると、その結果に応じて、メモリ・ディレクトリ・エントリからマップされたキャッシュ内の記憶位置が有効であるか否かを指示することができる。例えば、図１３のメモリ・ディレクトリ・エントリ１１１５は、ａｃｃ＿ｂｙ＿ｄｔｂｓビット及びｉｎｖ＿ｏｎ＿ｄｔｂｓビットの両方を有する。図１３に示すように、メモリ・ディレクトリ・エントリ１１１５は、そのｉｎｖ＿ｏｎ＿ｄｔｂｓビットをアサートしている（例えば、論理「１」）。 このことは、イメージ処理システムがメモリ・キャッシュ内にデータ（例えば、動的空間インデックス）を格納するのを望んでいること、具体的には、配布されるタイム・ベース信号を受信するときに無効化されるメモリ・ディレクトリ・エントリ１１１５内に保持される有効アドレスに対応するメモリ・キャッシュ内の記憶位置に前記データを格納するのを望んでいることを指示することができる。
【００９５】
さらに、図１３に示すように、メモリ・ディレクトリ・エントリ１１１５は、そのａｃｃ＿ｂｙ＿ｄｔｂｓビットをアサートしている（例えば、論理「１」）。 このことは、メモリ・ディレクトリ・エントリ１１１５が、フレーム・リフレッシュ・タイマ回路１０１０から配布されるタイム・ベース信号（すなわち、パルス）を受信したことを指示する。従って、次に１つの処理要素がメモリ・キャッシュ６２０の動的空間インデックス部分６３０内にあるデータにアクセスするとき（すなわち、メモリ・キャッシュ６２０の動的空間インデックス部分６３０に対応する、メモリ・ディレクトリ・エントリ１１１５によって指定された範囲内で有効アドレスを変換しようとするとき）、ａｃｃ＿ｂｙ＿ｄｔｂｓビット及びｉｎｖ＿ｏｎ＿ｄｔｂｓビットを検査することにより、メモリ・ディレクトリ・エントリが無効であり、その結果、キャッシュ・ミスを引き起こすであろうということを指示することができる。
【００９６】
このキャッシュ・ミスに応答して、処理要素は、メモリ（例えば、システム・メモリ）から有効データを取り出し、この有効データをメモリ・キャッシュ１１１０内に配置することができる。メモリから取り出されるデータは、例えば、描画すべき次のフレームのためにイメージ処理システムによって作成される新しい動的空間インデックスであり得る。
【００９７】
従って、特定のメモリ・ディレクトリ・エントリ用のｉｎｖ＿ｏｎ＿ｄｔｂｓビットをセットすることによって、イメージ処理システムは、周期的に無効化すべきメモリ・キャッシュの空間インデックス部分を指定することができる。さらに、この無効化の周波数は、イメージ処理システムのフレーム・リフレッシュ周波数に調節することができる、配布されるタイム・ベース信号の周波数によって決定される。
【００９８】
さらに、配布されるタイム・ベース信号は、各々が１つのメモリ・ディレクトリ及び１つのメモリ・キャッシュを有する、複数の多重コア処理要素（例えば、図１２に示す各多重コア処理要素２２０１−Ｎ）に配布することができる。多重コア処理要素内の各メモリ・ディレクトリは、複数の属性ビットを保持することができる。これらの属性ビットは、配布されるタイム・ベース信号によって次にアクセスされるときに、キャッシュの特定の空間インデックス部分（例えば、動的空間インデックス部分６３０）が無効化されることを指示することができる。各メモリ・キャッシュ２３０の空間インデックス部分を無効化することによって、複数の多重コア処理要素間のメモリ・コヒーレンシを達成することができる。
【００９９】
例えば、多重コア処理要素の各々は、３次元シーンから単一フレームを描画することに関係するタスクを実行することができる。さらに、多重コア処理要素２２０１−Ｎの各メモリ・キャッシュ２３０は、同じ動的空間インデックスのコピーを保持することができる。フレームがイメージ処理システムによって描画された後、その動的空間インデックスに対応するメモリ・ディレクトリ・エントリは、配布されるタイム・ベース信号を使用することを通して、各メモリ・キャッシュ２３０内で同時に無効化することができる。その後、動的空間インデックスを保持する任意のメモリ・キャッシュ２３０の空間インデックス部分にアクセスするどんな将来の試みも、キャッシュ・ミスを引き起こし、その結果、処理要素（例えば、作業負荷マネージャ２０５１−Ｎ）はメモリ（例えば、システム・メモリ）から有効データを取り出すことを必要とするであろう
【０１００】
メモリ・キャッシュ全体を（例えば、フラッシュ無効化を通して）無効化するのとは対照的に、メモリ・キャッシュの一部を無効化する能力は、イメージ処理システムがフレーム間でキャッシュ内のデータ（例えば、静的空間インデックス）を維持する間に、キャッシュの他の部分（例えば、動的空間インデックス）を無効化することを可能にする。
【０１０１】
アドレス変換を提供するメモリ・ディレクトリ１１０５に加えて、メモリ・キャッシュ６２０と共にキャッシュ・ディレクトリを使用することにより、実アドレスをメモリ・キャッシュ６２０内のエントリにマップすることができる。もし、メモリ・キャッシュ６２０内のキャッシュ・エントリを無効にせずに、メモリ・ディレクトリ１１０５においてキャッシュ・エントリが無効化されるならば、古いデータがメモリ・キャッシュ６２０内にそのまま残り、イメージ処理システムによって後でアクセスされる可能性がある。古いデータにアクセスすることができるのは、それがシステム・メモリからのデータ（例えば、新しい動的空間インデックス）と置き換えられておらず、しかもメモリ・キャッシュ６２０内の古いデータのアドレスのための変換を供給する、メモリ・ディレクトリ・エントリ内のａｃｃ＿ｂｙ＿ｄｔｂｓビットをイメージ処理システムがリセットする場合である。しかし、本発明によれば、スクラバ（scrubber）機能を使用することにより、配布されるタイム・ベース信号に応答してメモリ・キャッシュ６２０内の古いデータを無効化することができる。
【０１０２】
例えば、図１４は、キャッシュ・ディレクトリ１２０５を示す。各キャッシュ・ディレクトリ・エントリは、当該キャッシュ・ディレクトリ・エントリに対応するメモリ・キャッシュ６２０内のデータが有効又は無効であることを指示するための有効ビットを保持することができる。また、各キャッシュ・ディレクトリ・エントリは、メモリ・キャッシュ６２０が実アドレスに対応するエントリを保持しているか否かを決定するために使用される、タグ・ビット及びセット・ビットを保持することができる。
【０１０３】
本発明によれば、スクラバ機能は、タイム・ベース無効化信号を受信するときに活動化することができる。活動化されると、スクラバ機能は、ｉｎｖ＿ｏｎ＿ｄｔｂｓビットがアサートされているエントリを求めて、メモリ・ディレクトリ１１０５を探索する。スクラバ機能は、各メモリ・ディレクトリ・エントリのｉｎｖ＿ｏｎ＿ｄｔｂｓビットがアサートされているか否かを決定し、メモリ・ディレクトリ１１０５内の実アドレスと一致するエントリを求めてメモリ・キャッシュ６２０を探索し、キャッシュ・ディレクトリ１２０５内の対応する有効ビットを（例えば、「０」に）セットすることにより、対応するメモリ・キャッシュ・エントリを無効化することができる。従って、スクラバ機能によって無効化されたキャッシュ・エントリへの如何なるアクセスの試みも、キャッシュ・ミスを引き起こすであろう。従って、スクラバ機能は、配布されるタイム・ベース信号によって無効化されたメモリ・ディレクトリ・エントリに対応する、メモリ・キャッシュ６２０内の古いデータを無効化することによって、メモリ・キャッシュ６２０内の古いデータが将来においてアクセスされないことを保証することができる。 
【０１０４】
本明細書では、メモリ・キャッシュを無効化する方法及び装置は、動的空間インデックスを保持するメモリ・キャッシュの一部を無効化するものとして説明されたが、本発明は、動的空間インデックスのみを保持するキャッシュ・メモリ領域を無効化することに限定されないことを理解されたい。その代わりに、イメージ処理に関係するか否かに拘わらず、任意のタイプのデータを保持するメモリ・キャッシュの任意の部分を、本明細書で説明した方法及び装置によって無効化することができる。
【０１０５】
本発明によれば、配布されるタイム・ベース信号は、メモリ・キャッシュ内にあるデータのためにアドレス変換を提供する、メモリ・ディレクトリに結合される。メモリ・ディレクトリは、メモリ・ディレクトリ・エントリが配布されるタイム・ベース信号によってアクセスされたか否かを指示する属性ビットを有する。さらに、メモリ・ディレクトリは、配布されるタイム・ベース信号による１つのメモリ・ディレクトリ・エントリへのアクセスの後に、当該メモリ・ディレクトリ・エントリが無効であると見なすべきか否かを指示する属性ビットを有する。もし、当該メモリ・ディレクトリ・エントリが配布されるタイム・ベース信号によってアクセスされ、しかも当該メモリ・ディレクトリ・エントリがタイム・ベース信号によるアクセスの後に無効であると見なすべきであれば、当該メモリ・ディレクトリ・エントリを使用する、如何なるアドレス変換の試みもキャッシュ・ミスを生じさせることになろう。キャッシュ・ミスに応じて、システム・メモリからの有効データの検索を開始することができる。
【０１０６】
前述の説明は、本発明の実施形態に向けられているが、本発明の基本概念から逸脱することなく本発明の他の実施形態を想到し得ることは明らかである。本発明の範囲は、請求項の記載に基づいて決定されるべきものである。
【図面の簡単な説明】
【０１０７】
【図１】本発明に従った多重コア処理要素を示す図である。
【図２】本発明に従った多重コア処理要素のネットワークを示す図である。
【図３】本発明に従ったイメージ処理システムによって描画すべき３次元シーンを示す図である。
【図４】本発明に従ったイメージ処理システムによって描画すべき２次元空間及びこのイメージ処理システムによって作成される対応する空間インデックスを示す図である。
【図５】本発明に従ったイメージ処理システムによって描画すべき２次元空間及びこのイメージ処理システムによって作成される対応する空間インデックスを示す図である。
【図６】本発明に従ったイメージ処理システムによって描画すべき２次元空間及び当該イメージ処理システムによって作成される対応する空間インデックスを示す図である。
【図７】本発明に従ったイメージ処理システムによって描画すべき３次元シーンを示す図である。
【図８】静的空間インデックス及び動的空間インデックスを保持するための、本発明に従ったメモリ・キャッシュを示す図である。
【図９】空間インデックスを作成し且つこれらの空間インデックスをメモリ・キャッシュ内に格納することを管理するための、本発明に従った方法を示すフローチャートである。
【図１０】本発明に従ったイメージ処理システムによって描画すべき３次元シーンを示す図である。
【図１１】静的空間インデックス及び動的空間インデックスを保持するための、本発明に従ったメモリ・キャッシュを示す図である。
【図１２】本発明に従った多重コア処理要素のネットワークを示す図である。
【図１３】本発明に従ったメモリ・ディレクトリ及びメモリ・キャッシュを示す図である。
【図１４】本発明に従ったキャッシュ・ディレクトリ及びメモリ・キャッシュを示す図である。
【符号の説明】
【０１０８】
１００    多重コア処理要素
２２０    多重コア処理要素
６２０    メモリ・キャッシュ
６２５    静的空間インデックス部分
６３０    動的空間インデックス部分
１０１０  フレーム・リフレッシュ・タイマ回路
１１０５  メモリ・ディレクトリ
１１１５  メモリ・ディレクトリ・エントリ
１１２０  属性ビット
【図１】
2008123497.tif 000003
【図２】
2008123497.tif 000004
【図３】
2008123497.tif 000005
【図４】
2008123497.tif 000006
【図５】
2008123497.tif 000007
【図６】
2008123497.tif 000008
【図７】
2008123497.tif 000009
【図８】
2008123497.tif 000010
【図９】
2008123497.tif 000011
【図１０】
2008123497.tif 000012
【図１１】
2008123497.tif 000013
【図１２】
2008123497.tif 000014
【図１３】
2008123497.tif 000015
【図１４】
2008123497.tif 000016