(57)【特許請求の範囲】
【請求項１】
キャッシュシステムであって、
複数のテクセルを記憶するためのメモリモジュール（１４０）と、
複数のテクセルから取り出されたキャッシュされたテクセルを記憶するために、前記メモリモジュール（１４０）に結合されたキャッシュモジュール（２２０）と、
キャッシュ済みテクセル識別信号と前記キャッシュモジュール（２２０）における前記キャッシュされたテクセルとのアソシェーションを記憶するためのアドレスモジュール（２１０）と、
前記キャッシュモジュール（２２０）からの前記キャッシュされたテクセルの送信をトリガすることにより、前記キャッシュ済みテクセル識別信号の１つに合致する新テクセル識別信号に応答するために、及び、前記メモリモジュール（１４０）から複数のテクセルのうちの新テクセルを検索することにより、前記キャッシュ済みテクセル識別信号の何れにも合致しない新テクセル識別信号に応答するために、前記キャッシュモジュール（２２０）と前記アドレスモジュール（２１０）に結合された制御モジュール（２９０）であって、前記新テクセルが、前記新テクセル識別信号と関連する、制御モジュール（２９０）と、
前記キャッシュモジュール（２２０）への前記新テクセルの記憶を同期化するために、前記キャッシュモジュール（２２０）への前記新テクセルの記憶をトリガするまで、キャッシュモジュール（２２０）への前記新テクセルの記憶を遅延させるべく、前記制御モジュール（２９０）、前記メモリモジュール（１４０）、及び前記キャッシュモジュール（２２０）に結合された検索バッファ（２６０）とを含む、キャッシュシステム。
【請求項２】
前記キャッシュモジュール（２２０）からの前記キャッシュされたテクセルの送信を同期化するために、前記制御モジュール（２９０）に結合されたバッファモジュール（２４０）をさらに含む、請求項１のシステム。
【請求項３】
前記キャッシュモジュール（２２０）と複数の論理状態のアソシェーションを記憶するために、バッファモジュール（２４０）に結合されたタグ記憶装置（３２０）をさらに含む、請求項２のシステム。
【請求項４】
その値を変更することによって前記キャッシュ済みテクセル識別信号に合致する前記キャッシュモジュール（２２０）に応答するために、前記制御モジュール（２９０）内に配置された第１のカウンタ（４４０）をさらに含む、請求項１乃至３の何れかに記載のシステム。
【請求項５】
その値を変更することによって前記キャッシュモジュール（２２０）による前記キャッシュされたテクセルの送信に応答するために、前記バッファモジュール（２４０）に結合された第２のカウンタ（３３０）をさらに含む、請求項２乃至４の何れかに記載のシステム。
【請求項６】
前記検索バッファ（２６０）が先入れ先出しキューである、請求項１乃至５の何れかに記載のシステム。
【請求項７】
テクセルを要求するための方法であって、
メモリモジュール（１４０）に複数のテクセルを記憶するステップと、
キャッシュモジュール（２２０）に複数のテクセルから取り出されたキャッシュされたテクセルを記憶するステップと、
キャッシュ済みテクセル識別信号と前記キャッシュモジュール（２２０）における前記キャッシュされたテクセルとのアソシェーションをアドレスモジュール（２１０）に記憶するステップと、
前記キャッシュモジュール（２２０）からの前記キャッシュされたテクセルの送信をトリガすることによって、前記キャッシュ済みテクセル識別信号の１つに合致する新テクセル識別信号に応答するステップと、
前記メモリモジュール（１４０）から、前記新テクセル識別信号と関連する、複数のテクセルのうちの新テクセルを検索することによって、前記キャッシュ済みテクセル識別信号の何れにも合致しない新テクセル識別信号に応答するステップと、
前記キャッシュモジュール（２２０）からの前記キャッシュされたテクセルの送信を制御するステップと、
前記キャッシュモジュール（２２０）への前記新テクセルの記憶をトリガするステップと、
前記キャッシュモジュール（２２０）への前記新テクセルの記憶をトリガするまで、キャッシュモジュール（２２０）への前記新テクセルの記憶を遅延させるべく、前記制御モジュール（２９０）、前記メモリモジュール（１４０）、及び前記キャッシュモジュール（２２０）に結合された検索バッファ（２６０）によって、前記キャッシュモジュール（２２０）からの前記キャッシュされたテクセルの送信と前記キャッシュモジュール（２２０）への前記新テクセルの記憶とを同期化するステップとを含む方法。
【請求項８】
前記キャッシュモジュール（２２０）と複数の論理状態とのアソシェーションを記憶するステップをさらに含む、請求項７の方法。
【請求項９】
前記制御モジュール（２９０）内に配置された第１のカウンタ（４４０）の値を変更することによって、前記キャッシュ済みテクセル識別信号に合致する前記新テクセル識別信号に応答するステップをさらに含む、請求項７若しくは８に記載の方法。
【請求項１０】
第２のカウンタ（３３０）の値を変更することによって、前記キャッシュモジュール（２２０）による前記キャッシュされたテクセルの送信に応答するステップをさらに含む、請求項７乃至９の何れかに記載の方法。
【請求項１１】
第２のカウンタ（３３０）の値を変更することによって、前記キャッシュモジュール（２２０）による前記キャッシュされたテクセルの送信に応答するステップと、
前記キャッシュモジュール（２２０）への前記新テクセルの記憶をトリガすることにより、前記制御モジュール（２９０）内に配置された第１のカウンタ（４４０）の値と少なくとも同じ大きさの値を有する前記第２のカウンタ（３３０）の値に応答するステップをさら含む、請求項１０の方法。
【請求項１２】
前記同期化するステップにおける前記キャッシュモジュール（２２０）への前記新テクセルの記憶の遅延を、前記新テクセルより更に新しいテクセルを送信する前に、該更に新しいテクセルに先立って受信された前記新テクセルを送信するように行う、請求項７の方法。
【発明の詳細な説明】
発明の背景
発明の分野
本発明は、一般に、コンピュータグラフィックスシステムの分野に関連し、詳しくは、コンピュータ化されたグラフィックイメージのテクスチャの生成及び処理に関連する。
従来技術の説明
コンピュータによって生成される３次元画素（ピクセル）ベースのグラフィックイメージにおいて臨場感を得るためには、表面のテクスチャ（texture：構造／模様）のような実世界の表面構造をシミュレートするために、現実的な表面シェーディングをグラフィックイメージに付加しなければならない。かかる表面特性を作り出すための従来方式が、テクスチャマッピングである。
テクスチャマッピングは、複雑なイメージ（画像）の外観を作成するための比較的効率の良い技法であり、３次元グラフィックイメージの表面に３次元の細部を直接描写しなければならないという、時間がかかりかつ負荷の大きい計算上のコストをかける必要がない。具体的には、個々の要素（texel：テクセル）から構成されるソース（テクスチャ）イメージは、３次元グラフィックイメージ上に画素合成によりマッピングされる。例えば、オーク製のテーブルのグラフィックイメージを作成するために、先ず、いすの構造が作成される。次に、オーク材のテクスチャイメージがいすの構造表面にマッピングされる。このオークのテクスチャイメージをいす上に正確に統合するために、所定数のテクセルを補間して、いすの表面の各画素を生成する。
当該分野において周知のように、テクスチャイメージから画素を効率的に補間するための、より一般的なテクスチャマッピング技法に、双一次型フィルタリング法（bi-linear filtering）と３−一次型フィルタリング法（tri-linear filtering）の２つがある。
双一次型フィルタリング法では、グラフィックイメージの各画素を補間するために４つのテクセルが使用される。３−一次フィルタリング法では、グラフィックイメージの各画素を補間するために８つのテクセルが使用される。
これらのテクスチャマッピング技法を使用すると、極めて大きな帯域幅を必要とする可能性があるが、これを防止するために、ミップ（multum in parvo：圧縮）マッピングを使用して、テクスチャイメージを個々の「ｄ」レベルの解像度からなるテクスチャマップに圧縮することが多い。ラスター化の走査変換段階の間、テクスチャマップのこれらのミップマップの各々は、特定の「ｄ」レベルの細部について事前計算され、個別に記録される。画素ベースのグラフィックイメージの細部のレベルに応じて、特定の「ｄ」レベルのテクスチャマップが、テクスチャのフィルタリングのために検索される。例えば、グラフィックイメージが、コンピュータによって作成されたグラフィックシーンの背景内のより小さなイメージとして表示される場合は、細部のレベルは低く、そのため、より低い解像度（例えば、ｄ＝４）のテクスチャマップを使用することができる。テクスチャのフィルタリングに必要とされるテクセルが少ないので、低解像度のテクスチャマップでは、システムに要求される帯域幅は小さくなる。一方、グラフィックイメージが、グラフィックシーンの前景に原寸大のイメージとして表示される場合は、より高解像度のテクスチャマップ表面（例えば、ｄ＝０）が使用され、このため、システム全体が必要とする帯域幅は大きくなる。
あいにく、本明細書に参考として組み込んでいる、「Hardware Accelerated Rendering of Anti-aliasing Using a Modified A-Buffer Algorithm」（Computer Graphics,307-316(Siggraph’97 Proceedings)）に記載されているように、実時間の環境では、これらの複雑なテクスチャマッピング技法によって毎秒数千万画素を作成しなければならず、テクスチャマッピングシステムのために高度な計算能力と極めて大きな帯域が必須となる。例えば、テクスチャマッピングシステムの主たる目的が、キャッシュを使用せずに、１クロックサイクル当たり１画素の平均的な画素合成速度を実現することである場合、１つのメモリブロック（例えば、２×２マトリックス構成における４つの３２ビットテクセル）を１クロックサイクル毎に検索しなければならない。クロック周波数が約100MHzの場合、かかる理想的なデータ転送速度を実現するために必要な帯域幅は、約1600メガバイト／秒（MBps）である。
コンピュータによって作成されるグラフィックにおける現実感に対するユーザの期待、並びに、経済的なテクスチャマッピングシステムに対する需要が絶え間なく増加しているために、かかる理想的なデータ転送速度を経済的なコストで実現することはとらえ所のない問題となることが多い。例えば、テクスチャマッピングシステムを並列DRAMメモリモジュールサブシステム構成と統合する商用システムが利用可能である。このようなシステムでは高速のデータ転送速度が得られるが、そのようなシステムは、コストが高いために、平均的な需要者には経済的に非現実的なものである。
より廉価なテクスチャマッピングシステム構成は、テクスチャマッピングシステムをグラフィックアクセラレータカードに統合したものである。グラフィックアクセラレータカードは、アドバンストグラフィックポート／周辺機器相互接続（AGP/PCI）インターフェースによって比較的安価な汎用のパーソナルコンピュータにインターフェースするものである。しかしながら、これには、性能を制限する少なくとも２つの重大な問題がある。
第１に、AGP/PCIインターフェースが、約５１２MBpsの帯域幅しかもたないために、1600MBpsのデータ転送速度を実現するテクスチャマッピングの能力が大きく制限される。具体的には、かかる帯域幅がネックとなって、メモリモジュールから複数のテクセル（メモリブロック）を要求するシステムと、要求されたメモリブロックを受け取るシステムとの間にかなり長い待ち時間が生じる。第２に、画素識別子が走査モジュールによって生成される順に、これらのメモリブロック要求を発行することにより、テクスチャマッピングシステムは、メモリモジュール内のDRAMページをページ切り換えして、必要なメモリブロックを取得しなければならないことが多い。このため、テクスチャマッピングシステム全体にさらに待ち時間が追加されることになる。
かかる性能に関する問題に対処するために、コストに敏感なテクスチャマッピングシステムは、AGP/PCIの制限を最小限にすべくシステム内部に配置されるキャッシュモジュールを使用する。メモリブロック内に含まれている任意のテクセルを必要とする前にメモリブロックを検索することによって、AGP/PCIインターフェースによってこれらのテクセルを検索することに起因する待ち時間が低減される。
しかし、この局所配置キャッシュ（ローカルキャッシュ）構成の性能上の利点は、キャッシュモジュール内に必要とされるメモリブロックを記憶するヒット率に依存する。例えば、テクスチャのプリミティブとして所定の形状（例えば、細長い三角形）を描写するときには、メモリブロックの局所性が不十分であるという問題が生じる。コスト上の制限により、キャッシュモジュールが限定された記憶サイズであることが要求されるために、走査変換の開始に関連するキャッシュモジュール内に記憶されたメモリブロックは、走査変換期間が終了するときには、もはや、キャッシュモジュール内に局所的に記憶されていない。この状況では、キャッシュモジュール内に特定のメモリブロックを配置するのに失敗する割合が増加するだけでなく、メモリブロックをキャッシュモジュール内外にスワップする回数も多くなる。この局所性の問題を最小限にするために、テクスチャマッピングシステムでは、システムのコストを劇的に増加させることなく、メモリモジュールとキャッシュモジュールとを正確に同期化させることが必要である。
多くのテクセル要求をできるだけ速く送信し、テクセル要求と対応するテクセルの処理を同期化させ、コスト効果の高い方式で帯域幅の制限を回避するという問題に効果的に対処することが可能なテクスチャマッピングシステム及び方法が必要とされている。
発明の要約
本発明のシステム及び方法に従えば、先入れ先出し方式を効率的に同期化にして、キャッシュモジュールとメモリモジュール間の動作の同時性を高める高速キャッシングシステムが提供される。キャッシングシステムは、走査モジュール、メモリモジュール、テクスチャキャッシュモジュール、テクスチャフィルタモジュール及び画素処理装置から構成することができる。
走査モジュールは、３次元グラフィックイメージとメモリモジュール内のテクセルのメモリブロックの両方の特定画素に対応する画素識別子を生成する。テクスチャキャッシュモジュールは、これらの画素識別子の各々を対応するメモリブロック（MB）識別子サブコンポーネントとテクセル識別子サブコンポーネントに分離する。先入れ先出し方式に基づき、テクスチャキャッシュモジュールは、各MB識別子を利用して、MB識別子に対応するメモリブロックがキャッシュモジュール内にすでに局所的に記憶されているかどうかを判定する。メモリブロックがすでに局所的にキャッシュされている場合は、テクスチャキャッシュモジュールは、メモリブロック内のテクセルのテクスチャフィルタモジュールへの送信を同期化する。メモリブロックがテクスチャキャッシュモジュール内にまだ局所的にキャッシュされていない場合には、テクスチャキャッシュモジュールは、メモリモジュールから必要なメモリブロックを検索して、テクスチャキャッシュモジュール内の特定の場所にそのメモリブロックを記憶する。これらのテクセルが画素合成のために必要なときに、テクスチャキャッシュモジュールは、これらのテクセルをテクスチャフィルタモジュールに送信する。
このシステム及び方法は、キャッシュモジュールとメモリモジュール間の動作の同時性を効率的な同期化により高めることによって、高性能で、かつコスト効果の高い先入れ先出しキャッシュ方式を確実に実現するものである。
【図面の簡単な説明】
図１は、本発明の好適な実施態様におけるテクスチャマッピングシステムの好適な実施態様を示す高レベル図である。
図２は、好適な実施態様のテクスチャキャッシュモジュールの詳細図である。
図３は、好適な実施態様のアドレスモジュールの詳細図である。
図４は、好適な実施態様の制御モジュールを示す図である。
図５は、好適な実施態様におけるメモリブロック記憶方式からキャッシュブロック記憶方式への変換を示す図である。
好ましい実施態様の詳細な説明
図面を参照して本発明の好適な実施態様を説明する。図面では、同一のまたは機能的に類似の要素には同じ参照番号を付しており、各参照番号の最も左側の数字は、参照番号を最初に使用している図面に対応する。
図１は、画素合成のためのテクセルのキャッシュ性能を改善するための本発明の好適な実施態様のシステムの概要図である。システム１００は、メモリモジュール１４０、走査モジュール１６０、テクスチャキャッシュモジュール（TCM）１３０，テクスチャフィルタモジュール（TFM）１８０、及び画素処理ユニット（PPU）１９０を備える。この実施態様では、メモリモジュール１４０は、複数のメモリブロックの１つに、４×４のマトリックスの各テクセルを記憶するダイナミックランダムアクセスメモリ（DRAM）から構成される。
TCM１３０に結合された走査モジュール１６０は、複数の画素識別子５１０（図５に示す）をTCM１３０に送信する。TCM１３０は、これらの画素識別子５１０の各々を使用して、画素識別子５１０に対応するメモリブロックがメモリモジュール１４０から検索されて、TCM１３０内に局所的にキャッシュされることを確実にしている。メモリブロックが局所的にキャッシュされると、画素識別子５１０に対応するメモリブロック内の各テクセルが、TFM１８０に送信される。TFM１８０は、受信したテクセルをフィルタリングする。フィルタリングされたテクセルは、画素合成のためにPPU１９０に送信される。
図２は、本発明の好適な実施態様のTCM１３０の詳細図である。TCM１３０は、キャッシュモジュール２２０，データフォーマッター２５５、検索バッファ２６０、リクエストバッファ２５０、アドレスモジュール２１０、バッファモジュール２４０，及び制御モジュール２９０から構成される。
本実施態様では、４ウェイ−４セットアソシェーション（4 way-4 set association）を有するSRAMから構成されるキャッシュモジュール２２０は、メモリモジュール１４０内に記憶されたメモリブロックのサブセットを局所的に記憶する。図５に示すように、かかるアソシェーション（関連）により、キャッシュモジュール２２０は、各ウェイが４象限（組）を有する４つのウェイ（例えば、ウェイ０〜３）に構成上分割される。固有のキャッシュブロックアドレス（例えば、０と１５の間の数）を有する各組は、テクセルの４×４のマトリックス（キャッシュブロック）を表す。
走査モジュール１６０とキャッシュモジュール２２０に結合されたアドレスモジュール２１０は、走査モジュール１６０から、整数部（u._, v._, d._）及び小数部（_.uf, _.vf, _.df）を各走査画素について備える画素識別子５１０（u.uf, v.vf, d.df）を受信する。各画素識別子５１０の整数部から、アドレスモジュール２１０は、メモリブロック（MB）識別子とテクセル識別子５２０を生成する。アドレスモジュール２１０は、MB識別子５３０を使用して、メモリモジュール１４０内のメモリブロックを識別する。アドレスモジュール２１０は、テクセル識別子５２０を使用して、そのメモリブロック内に特定のテクセルを配置する。アドレスモジュール２１０は、画素合成のためにテクセル識別子５２０に対応するテクセルを線形補間するための補間係数として、画素識別子５１０の小数部を使用する。
図５に図２と連携して、好適な実施態様におけるこれらの各識別子の用途をより良く示す。双一次型フィルタリングでは、走査モジュール１６０が、３次元グラフィックイメージの各画素毎に４つの１１ビット[10:0]画素識別子５１０を生成する。アドレスモジュール２１０は、画素識別子５１０の各整数部を、９ビットのMB識別子５３０と２ビットのテクセル識別子５２０に分離する。メモリモジュール１４０内の４×４のテクセルメモリブロックを表すMB識別子５３０は、整数部の上位８ビット[10:2]である。このメモリブロック内のテクセルに対して直交座標を表すテクセル識別子５２０は、整数部の下位２ビット[1:0]である。
アドレスモジュール２１０は、MB識別子５３０を使用して、MB識別子５３０に対応するメモリブロックが、すでにキャッシュモジュール２２０のキャッシュブロック内に局所的に記憶されたかどうかを判定する。アドレスモジュール２１０が、メモリブロックがすでに特定のキャッシュブロックアドレスに局所的にキャッシュされている（ヒット）と判定した場合には、アドレスモジュール２１０は、送信タグ信号を生成してバッファモジュール２４０に送信する。送信タグ信号は、キャッシュブロックアドレス、テクセル識別子５２０、補間係数及びヒットマーカーを備える。TCM１３０は、ヒットマーカーを使用して、キャッシュモジュール２２０にすでに局所的にキャッシュされているメモリブロックに対応する送信タグ信号を識別する。
メモリブロックが、まだ局所的にキャッシュされていない（ミスヒット）場合は、アドレスモジュール２１０は、FIFOキューとして動作するリクエストバッファ２５０に検索信号を送信することによって、メモリモジュール１４０からメモリブロックを検索するための要求を開始する。本実施態様では、リクエストバッファ２５０は、４つまでの検索信号を同時に受信することができる。検索信号は、MB識別子５３０と１次元のメモリモジュールアドレスを含む。AGP/PCIインターフェース（不図示）が許容する速度まででしか検索信号をメモリモジュール１４０に送信することができないので、リクエストバッファ２５０は、対応する画素識別子５１０がアドレスモジュール２１０によって受信された順番で、メモリモジュール１４０に検索信号を連続して送信する。しかし、AGP/PCIインターフェースにより、リクエストバッファ２５０の送信速度は最高約５１２MBpsまでに制限される。
メモリモジュール１４０は、MB識別子５３０に対応するメモリブロックをTCM１３０に送信することにより、検索信号の受信に応答する。しかしながら、コスト上の制約のために、キャッシュモジュール２２０の記憶容量が有限の大きさに制限されるので、メモリモジュール１４０から検索されたすべてのメモリブロックを、キャッシュモジュール２２０内に直ちに記憶することができるわけではない。メモリブロックに関連するキャッシュブロックが、メモリブロックを記憶するために利用可能になるまで、FIFOキューとしても動作する検索バッファ２６０が、受信したメモリブロックを受信した順番で一時的に記憶する。本実施態様では、検索バッファ２６０は、システムクロックの２クロックサイクル内で２５６ビットのメモリブロックを受信する。
アドレスモジュール２１０は、検索信号をリクエストバッファ２５０に送信するのに加えて、検索タグ信号と送信タグ信号を生成してバッファモジュール２４０に送信する。検索タグ信号は、図３を参照して説明するタグ基準計数値とキャッシュブロックアドレスを含む。キャッシュブロックアドレスは、MB識別子５３０に対応する検索されたメモリブロックが記憶されることになるキャッシュモジュール２２０内の特定のキャッシュブロックを指定するものである。アドレスモジュール２１０は、最長時間未使用（LRU）アルゴリズムを使用して、各検索タグ信号に対する特定のキャッシュブロックアドレスを決定する。送信タグ信号は、キャッシュブロックアドレス、テクセル識別子、補間係数及びミスマーカーを含む。
制御モジュール２９０は、バッファモジュール２４０内の検索タグ信号を使用して、検索バッファ２６０からメモリブロックに関連するキャッシュブロックへのメモリブロックの送信を制御する。図４を参照してさらに詳述するように、制御モジュール２９０が、キャッシュブロックが検索バッファ２６０の最上部の関連するメモリブロックに利用可能であると判定すると、制御モジュール２９０は、データフォーマッター２５５へのメモリブロックの送信をトリガする。データフォーマッター２５５は、このメモリブロックをその元の形式（フォーマット）からキャッシュモジュール形式に変換するが、それは、本実施態様では、従来のARGB形式である。データフォーマッター２５５は、次に、これらの再フォーマットされた各メモリブロックをキャッシュモジュール２２０に送信し、そこで、メモリブロックは、それらの関連するキャッシュブロックに記憶される。
制御モジュール２９０は、アドレスモジュール２１０によって分離された補間情報を使用して、キャッシュモジュール２２０から各送信タグ信号に関連する各テクセルのTFM１８０への送信をいつトリガするかを決定する。双一次型フィルタリングのようなフィルタリング技法は、画素合成を実行するために２つ以上のテクセルを必要し、これらのテクセルの各々は、キャッシュモジュール２２０が４ウェイ−４セット構成であるために、異なるキャッシュブロックに配置される可能性があり、従って、画素を合成する度に、最大４つの送信タグ信号をキャッシュモジュール２２０に送信しなければならない。
図３は、アドレスモジュール２１０とバッファモジュール２４０をより詳細に示す図である。アドレスモジュール２１０は、アドレスコントローラ３１０、タグモジュール３２０、及びタグ基準カウンタ（TRC）３３０を備える。バッファモジュール２４０は、キャッシュバッファ３３５と送信バッファ３４５から構成される。各バッファ３３５と３４５は、最大４つまでのタグ信号を同時に受信することができる。アドレスコントローラ３１０に結合されたタグモジュールは、各キャッシュブロックのアドレスと、そのキャッシュブロックに記憶されたメモリブロックに対応するMB識別子５３０とのアソシェーションを記憶する。本実施態様では、タグモジュール３２０は、アドレスコントローラ３１０によって編集されるテーブルである。
アドレスコントローラ３１０は、リクエストバッファ２５０、タグモジュール３２０、TRC３３０、キャッシュバッファ３３５、送信バッファ３４５及び走査モジュール１６０に結合される。この好適な実施態様では、アドレスコントローラ３１０は、状態マシンであり、この状態マシンは、インテル準拠のパーソナルコンピュータの中央処理装置（CPU）（不図示）によって実行されるソフトウエアプログラムであるか、または、状態マシンを実施するよう構成されたハードウエアから代替的に構成される。走査モジュール１６０から画素識別子５１０を受信すると、アドレスコントローラ３１０は、各画素識別子５１０のMB識別子５３０の部分と、タグモジュール３２０に記憶されたMB識別子５３０を比較する。TRC３３０は、アドレスコントローラ３１０がこれら２つのMB識別子５３０の一致（ヒット）を連続して検出した回数を記録する。この実施態様では、TRC３３０は８ビットカウンタであり、最初は０に設定される。
アドレスコントローラ３１０が、受信したMB識別子５３０と、タグモジュール３２０に記憶されたMB識別子５３０が一致を検出すると、アドレスコントローラ３１０は、ヒットマーカー、MB識別子５３０に対応するテクセル識別子５２０、及び、MB識別子５３０に関連するキャッシュブロックアドレスを含む前述の送信タグ信号を生成する。アドレスコントローラ３１０は、また、TRC３３０の値を１だけ増加させる。
アドレスコントローラ３１０が、受信したMB識別子５３０と、タグモジュール３２０に記憶されたMB識別子５３０の１つとの一致を検出できない場合は、アドレスコントローラ３１０は、MB識別子５３０と一次元メモリモジュールアドレスを含む検索タグ信号を生成する。さらに、送信タグ信号と検索タグ信号が生成されて、バッファモジュール２４０に送信される。検索タグ信号は、現在のTRC値、及び、前述したように、アドレスコントローラ３１０によって、LRUアルゴリズムを使用することにより、一致検出されなかったMB識別子５３０に関連付けられるキャッシュブロックアドレスとを含む。このキャッシュブロックアドレスは、キャッシュモジュール２２０内の位置として使用され、そこで、一致検出されなかったMB識別子５３０に対応する検索されたメモリブロックが記憶される。「ヒット」した場合と異なり、「ミス」した場合には、TRC３３０の値が１だけ増加されることはなく、TRC３３０の現在の値が、検索タグ信号に組み込まれ、TRC３３０は１に戻される。このTRCの値は、アドレスコントローラ３１０が「ミス」の状態を識別する前の連続して「ヒット」した数を表す。「ミス」の状態用の送信タグ信号は、テクセル識別子５２０、テクセル識別子５２０に対応するキャッシュブロックアドレス、及び「ミス」マーカーを含む。「ミス」マーカーは、メモリモジュール１４０から検索されなければならないメモリブロックに対応するそれらの送信タグ信号を識別するために使用される。この場合、検索タグ信号と送信タグ信号はいずれも、キャッシュバッファ３３５と送信バッファ３４５の終わりにそれぞれ追加される。
図４は、TCM１３０の制御モジュール２９０の詳細図である。制御モジュール２９０は、検索コントローラ４１０、送信コントローラ４３０、データ基準カウンタ（DRC）４４０及びステータスモジュール４５０を備える。DRC４４０は、キャッシュモジュール２２０に送信される、「ヒット」マーカーを有する連続した送信タグ信号の数を記録する。本実施態様では、DRC４４０は８ビットカウンタであり、ステータスモジュール４５０はテーブルであり、このテーブルで、各キャッシュブロックアドレスは、ある論理状態（例えば、「リードオンリー（読み出しのみ）」の論理状態または「ライトオンリー（書き込みのみ）」の論理状態）に関連付けられる。
送信バッファ３５０、DRC４４０、及びステータスモジュール４５０に結合される送信コントローラ４３０は、送信バッファ３５０の最上部における送信タグ信号に対応するメモリブロック内のテクセルを、いつTCM１３０によってさらに処理するかを制御する。好適な実施態様では、送信コントローラ４３０は状態マシンであり、この状態マシンは、インテル準拠のパーソナルコンピュータのＣＰＵによって実行されるソフトウエアプログラムであるか、または、代替的に、かかる状態マシンを実施するために構成されたハードウエアコンポーネントからなる。特定の画素に関連する送信タグ信号がいずれも、「ヒット」マーカーを含み、送信バッファ３５０によって送信されるべき次の信号であり、対応するキャッシュブロックのステータスモジュール４５０の論理状態が、「リードオンリー」状態に設定されている場合は、送信コントローラ４３０は、送信タグ信号をキャッシュモジュール２２０に送信するために送信バッファ３５０をトリガする。次に、キャッシュモジュール２２０は、送信タグ信号に対応するテクセルをTFM１８０に送信する。ほぼ同じ時間に、送信コントローラ４３０は、また、最初は０の値に設定されているDRC４４０を１だけ増加させる。送信バッファ３５０の最上部にあり、特定の画素識別子５１０に関連する送信タグ信号の少なくとも１つが、「ミス」マーカーを含む場合は、送信コントローラ４３０は、ただちに送信バッファ３５０をトリガして、送信タグ信号をキャッシュモジュール２２０に送信するのではなく、検索コントローラ４１０が、キャッシュブロックの論理状態を「リードオンリー」から「ライトオンリー」状態に変更して、検索バッファ２６０からのメモリブロックの検索をトリガする。「ライトオンリー」への論理状態の変化を検出すると、送信コントローラ４３０は、その論理状態を「リードオンリー」状態に再び変更し、DRCを１だけ増加して、画素合成のために必要とされる送信タグ信号をキャッシュモジュール２２０に送信するために送信バッファ３５０をトリガする。
検索コントローラ４１０は、検索バッファ２６０、キャッシュバッファ３４０、DRC４４０及びステータスモジュール４５０に結合される。好適な実施態様では、検索コントローラ４１０は状態マシンであり、この状態マシンは、インテル準拠のパーソナルコンピュータのＣＰＵによって実行されるソフトウエアプログラムであるか、代替的に、かかる状態マシンを実施するために構成されたハードウエアからなる。検索コントローラ４１０には、ステータスモジュール４５０内の特定のキャッシュブロックに関連付けられた論理状態を「リードオンリー」から「ライトオンリー」に変更することによって、キャッシュブロック２２０内のメモリブロックの書き込みを同期させる役目がある。具体的には、検索コントローラ４１０は、検索タグ信号に対応するメモリブロックが、メモリモジュール１４０から検索バッファ２６０によって受信されるのを待つ。受信されると、検索コントローラ４１０は、現在のDRCの値を検索タグ信号内のTRCの値と比較する。このTRCの値が０より大きくてDRCの値より小さい場合は、検索コントローラ４１０は停止する。DRCの値がTRCの値以上であり、検索バッファ２６０が空でない場合は、検索コントローラ４１０は、キャッシュブロックアドレスに対応する論理状態を「ライトオンリー」に設定し、DRCの値を０に戻す。
上述したように、「ライトオンリー」に論理状態を変更することによって、検索コントローラ４１０が、キャッシュバッファ３４０をトリガして、検索バッファ２６０の最上部における検索されたメモリブロックを再フォーマットのためにデータフォーマッター２５５に送信することになる。次に、データフォーマッター２５５は、再フォーマットされたメモリブロックをキャッシュモジュール２２０に送信し、そこで、メモリブロックは、検索タグ信号に対応するキャッシュブロックに記憶される。メモリブロックが、キャッシュモジュール２２０内に記憶されると、送信コントローラ４３０は、キャッシュブロックの論理状態を「リードオンリー」に戻すことによって、「ライトオンリー」への論理状態の変化に応答する。この一連の技法には、後で必要になるテクセルを含むメモリブロックを上書きしてしまうリスクがあるが、この技法によって回避される待ち時間の大きさは、これらのメモリブロックを再検索することに起因するわずかな遅延を補って余りあるものである。
好適な実施態様についての以上の説明は、例示と説明のために提示したものである。開示したそのままの形態を本発明の全てとすることも、また、本発明をそれに限定することも意図したものではない。上記の教示に照らして、多くの修正及び変更が可能である。例えば、本発明の代替の実施態様では、双一次型フィルタリングではなくて、３−一次型フィルタリングをサポートすることができる。好適な実施態様は、本発明の原理とその実際の用途を最良に説明するために選択され、記述されたものであり、これにより、当業者は、種々の態様で本発明を最良に利用することが可能であり、かつ、意図した特定の用途に適するような種々の修正を施してそれらを利用する事が可能である。一方、本システム及び方法は、帯域幅がネックとなって大量のデータを効率的に処理できないような状況でも使用することができる。本発明の範囲は、請求の範囲とその均等物によって規定されるべきものである。
【図１】
0004205176.tif 000002
【図２】
0004205176.tif 000003
【図３】
0004205176.tif 000004
【図４】
0004205176.tif 000005
【図５】
0004205176.tif 000006