(57)【要約】      （修正有）【課題】パイプライン・プロセッサの動作モードに基づいてキャッシュ構成の最適化を図る。【解決手段】グラフィックスコンピュータは第１の動作モード（テクセル専用モード）と第２の動作モード（非テクセル専用モード）を有する。第１のデータタイプ（テクセルデータ）と第２のデータタイプ（ピクセルデータ）をキャッシュする。キャッシュラインは、動作モードに応答して従って割り振られる。第１の割振りを用いる場合に、第１のデータタイプのみをキャッシュする第１の部分として割り振られ、第２のデータタイプのみをキャッシュする第２の部分として割り振られ、第２の割振りを用いる場合に、第１のデータタイプのみをキャッシュする第３の部分として割り振られ、第２のデータタイプのみをキャッシュする第４の部分として割り振られる。【選択図】図５
2006185442.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス・コンピュータ・システム内でデータをキャッシュする装置であって、
第１の動作モードと第２の動作モードとを有するように構成されたグラフィックス・コンピュータ・システムと、
複数のキャッシュ・ラインを有し、データをキャッシュするように構成され、データが第１のデータ・タイプと第２のデータ・タイプとを含むキャッシュ・メモリと、
複数のキャッシュ・ラインの、第１の動作モードに応答した第１の割振り、および、複数のキャッシュ・ラインの、第２の動作モードに応答した第２の割振りをする割り振り機構とを備え、
第１の割振りを用いる場合に、複数のキャッシュ・ラインの幾つかが、１のデータ・タイプのみをキャッシュする第１の部分として割り振られ、複数のキャッシュ・ラインの他の幾つかが、第２のデータ・タイプのみをキャッシュする第２の部分として割り振られ、
第２の割振りを用いる場合に、複数のキャッシュ・ラインの幾つかが、第１のデータ・タイプのみをキャッシュする第３の部分として割り振られ、複数のキャッシュ・ラインの他の幾つかが、第２のデータ・タイプのみをキャッシュする第４の部分として割り振られる、
ことを特徴とする装置。
【請求項２】
複数のキャッシュ・ラインの第１の部分がすべての複数のキャッシュ・ラインを含み、複数のキャッシュ・ラインの第２の部分が複数のキャッシュ・ラインをまったく含まないことを特徴とする請求項１に記載の装置。
【請求項３】
データにはさらに第３のデータ・タイプが含まれ、第３のデータ・タイプは第２の割り振りにおいてキャッシュされ、その第２の割り振りを用いる場合には、複数のキャッシュ・ラインのさらに他の幾つかが、第３のデータ・タイプをキャッシュする第５の部分として割り振られること、を特徴とする請求項１または２に記載の装置。
【請求項４】
複数のキャッシュ・ラインの第３の部分が２つのライン・バッファを含み、複数のキャッシュ・ラインの第４の部分が、１つのライン・バッファを含み、複数のキャッシュ・ラインの第５の部分が１つのライン・バッファを含むことを特徴とする請求項３に記載の装置。
【請求項５】
第１のデータ・タイプがテクセル情報であり、第２のデータ・タイプが画素情報であり、第３のデータ・タイプがＺ情報であることを特徴とする請求項３または４に記載の装置。
【請求項６】
複数のキャッシュ・ラインの第１の部分が４つのライン・バッファを含むことを特徴とする請求項２に記載の装置。
【請求項７】
第１のデータ・タイプがテクセル情報であることを特徴とする請求項２または６に記載の装置。
【請求項８】
グラフィックス・コンピュータ・システムがパイプライン・プロセッサを含み、そのパイプライン・プロセッサの初めの方の段を通り、次いで後続の段に進むタスクを処理するようになされ、さらに、
要求されたデータを後続の段に供給するためのデータ要求信号が、初めの方の段によって生成され、
キャッシュ・メモリを含んでいて、初めの方の段からのデータ要求信号に応答して要求されたデータを後続の段に供給するように構成されたデータ・キャッシング機構を備える
ことを特徴とする請求項１に記載の装置。
【請求項９】
パイプライン・プロセッサが、第１の動作モードと第２の動作モードとを有するように構成されることを特徴とする請求項８に記載の装置。
【請求項１０】
データ・キャッシング機構がさらに、
キャッシュ・メモリに結合され、データ要求信号を受け取るように結合され、要求されたデータがキャッシュ・メモリにキャッシュされているかどうかを確認するように構成されたプリフェッチ論理と、
プリフェッチ論理と後続の段とに結合され、要求されたデータがキャッシュ・メモリにキャッシュされていない場合にこの要求されたデータをフェッチし、要求されたデータを後続の段に供給するように構成され、要求されたデータをキャッシュ・メモリにキャッシュするように構成されたフェッチ論理と
を含むことを特徴とする請求項９に記載の装置。
【請求項１１】
要求されたデータがキャッシュ・メモリにキャッシュされているときにＬＲＵ置換方式が使用されることを特徴とする請求項１０に記載の装置。
【請求項１２】
データ要求信号が、
要求されたデータのメモリ・アドレスを示すアドレス信号と、
要求されたデータをメモリから読み取る方向を示す方向信号と、
要求されたデータのメモリ・アドレスから必要なバイトを示すバイト・イネーブル信号と、
要求されたデータの種類を示すタイプ信号と、
パイプライン・プロセッサが第１のモードで動作しているか、それとも第２のモードで動作しているかを示すモード信号とを含むことを特徴とする請求項１１に記載の装置。
【請求項１３】
要求されたデータをメモリから読み取る方向に対応する、要求されたデータの部分のみがキャッシュ・メモリにキャッシュされることを特徴とする請求項１２に記載の装置。
【請求項１４】
フェッチ論理がシフト及びマージ論理を含み、シフト及びマージ論理が、シフト／マスク信号に応答して第１のデータ・エントリと第２のデータ・エントリをシフトしマージして、要求されたデータを生成するように構成されることを特徴とする請求項１２に記載の装置。
【請求項１５】
データ・キャッシング機構がさらに、プリフェッチ論理とフェッチ論理との間に結合された中間待ち行列を含むことを特徴とする請求項１０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にはコンピュータ・システムに関し、詳細にはグラフィックス・コンピュータ・システム・キャッシングに関する。
【０００２】
〔背景技術〕
パーソナル・コンピュータやワーク・ステーションなどのグラフィックス・コンピュータ・システムは、コンピュータ出力ディスプレイにビデオ画像およびグラフィック画像を表示する。近年、グラフィック・コンピュータ・システムに対する需要は常に増加している。コンピュータ技術の進歩によって、コンピュータ・ディスプレイ上での複雑なグラフィック画像が可能になっている。エンジニアおよび設計者は多くの場合、様々な計算作業に複雑なグラフィックス・シミュレーションを使用するコンピュータ支援設計システムを使用する。また、コンピュータ・システムが主流になるにつれて、マルチメディア、パーソナル・コンピュータ・ゲーム、その他のアプリケーションにおいて家庭で使用できる高性能なグラフィックス・コンピュータ・システムに対する需要が増加している。したがって、高性能なグラフィックス・コンピュータ・システムのコストを削減する努力も継続されている。
【０００３】
グラフィックス性能を高めるために設計者が使用する１つの従来技術の方法では、コンピュータ・システムにパイプライン・プロセッサが実装されている。当業者に知られているように、パイプライン処理では、順次命令ストリーム中のタスクの間の並行処理を使用して処理速度を向上させる。
【０００４】
図１は、制御回路１０３とメモリ１０９とを含むパイプライン式プロセッサ１０５を実装した従来技術のコンピュータ・システム１０１の一部を示す。パイプライン・プロセッサ１０５を用いた場合、制御回路１０３からのタスクの実行が重ね合わされ、したがって各命令が同時に実行される。制御回路１０３はパイプライン・プロセッサ１０５の段０にタスクを発行する。このタスクは、パイプライン・プロセッサ１０５のＮ個の段を進み、最終的にメモリ１０９に出力される。
【０００５】
図１に示したように、パイプライン・プロセッサ１０５は、グラフィックス処理のためにデータ情報を得るときにメモリ１０９にアクセスする必要がある。図１で、パイプライン・プロセッサ１０５の段Ｍは、メモリ１０９から入力１１１を通してデータ情報を受け取る。当技術分野で良く知られているように、メモリへのアクセスは、システム性能全体に対して悪影響を与える。したがって、コンピュータ・システム設計者は、可能なときにはいつでも、性能を最大にするために高性能グラフィックス・コンピュータ・システム内のメモリ・アクセスの実行を最小限に抑える。
【０００６】
メモリ・アクセスを最小限に抑える１つの従来技術の解決策は、高速キャッシュ・メモリの実装である。図１に示したように、キャッシュ１０７は、パイプライン・プロセッサ１０５とメモリ１０９との間に結合される。パイプライン・プロセッサ１０５の段Ｎからの出力は、キャッシュ１０７に出力され、最終的にメモリ１０９に書込まれる。メモリ１０９への読取りアクセスはキャッシュ１０７にキャッシュされ、したがってその後、キャッシュされたデータ・エントリは、メモリ１０９からではなくキャッシュ１０７から直接読み取ることができる。特に、キャッシュ１０７に「ヒット」がある場合、段Ｍは、要求されたデータをメモリ１０９からではなくキャッシュ１０７から入力１１１を通して受け取る。キャッシュ１０７は高速メモリであるので、低速メモリ１０９へのメモリ・アクセスが全体的に減少するため、全体的なコンピュータ・システム性能が向上する。
【０００７】
キャッシュ・メモリ１０７など従来技術のキャッシュ・メモリを使用すると、コンピュータ・システムはいくつかの悪影響を受ける。一例を挙げれば、従来技術のキャッシュ・メモリは一般にかなりの基板面積を占めるので、キャッシュ・メモリは通常、非常に高価である。そのため、低コスト・グラフィックス・コンピュータ・システムの設計者は一般に、大規模なキャッシュ・メモリを含めようとしない。
【０００８】
高性能なコンピュータ・グラフィックス・システム内のキャッシュ・メモリに関する他の問題は、そのようなキャッシュ・メモリが非常に高価であるだけでなく、場合によってはシステム性能をそれほど向上させないことである。その１つの理由は、特に複雑なグラフィックス・アプリケーションのためにメモリに記憶される特殊データの性質および構成によって説明することができる。従来技術のキャッシュ・メモリは一般に、複雑な高性能グラフィックス・コンピュータ・システムで使用されるいくつかの異なる種類のグラフィックス・データ・フォーマットに最適に適合するようになっていない。
【０００９】
〔発明の概要〕
したがって、画素エンジンなどのパイプライン式プロセッサと共に、グラフィックス・コンピュータ・システム内でメモリ・アクセスの数を削減するように動作するデータ・キャッシング機構が必要である。そのようなデータ・キャッシング機構は、グラフィックス・コンピュータ・システムで必要とされるメモリ帯域幅を減少させて最大の性能を与える。また、そのようなデータ・キャッシング機構は最小限の数のゲートを使用し、それによって回路基板面積を最小限に抑え、したがって全体的なシステム・コストを削減する。さらに、そのようなデータ・キャッシング機構は、グラフィックス・コンピュータ・システムで最大のキャッシング性能を与えるように、それぞれの異なるグラフィックス・データ・タイプまたはフォーマットに対処し、それらに適合するように最適化される。
【００１０】
この明細書には、パイプライン式プロセッサにデータを供給する方法および装置が開示される。一実施態様では、グラフィックス・コンピュータ・システムにおいてタスクを処理するように構成されたパイプライン・プロセッサが、データ・キャッシング機構からデータを受け取るように結合される。タスクがパイプライン・プロセッサ内の最初側の段を進む際、最初側のその段によってデータ・キャッシング機構へのデータ要求が生成される。タスクがパイプライン・プロセッサ内の最初側の段からその後に続く段へ進む際、データ・キャッシング機構は、要求されたデータを得るにはどこにアクセスすべきかを判定し、次いで要求されたデータを得る。タスクがパイプライン・プロセッサの後続の段に到達すると、データ・キャッシング機構は、要求されたデータをパイプライン・プロセッサのその後続の段に与える。パイプライン・プロセッサの最初側の段が、データを求める要求を事前に、すなわち要求されたデータが実際に後続の段で必要とされる前に行うので、メモリ・アクセス遅延時間がなくなる。本発明の他の特徴および利点は、以下に記載した詳細な説明、図面、請求の範囲から明らかになろう。本発明の他の特徴および利点は、添付の図面と、以下に記載した詳細な説明から明らかになろう。
【００１１】
要求されたデータをパイプライン式プロセッサに供給する方法および装置を開示する。以下の説明では、本発明を完全に理解していただくためにデータ・タイプ、ワード長など多数の特定の詳細を記載する。しかし、当業者には、本発明を実施する場合にこのような特定の詳細が必要とされないことが自明であろう。他の例では、本発明を不必要に曖昧にするのを回避するために、周知の材料および方法については詳しくは説明しない。
【００１２】
本明細書で説明する本発明は、グラフィックス・コンピュータ・システムで使用できる様々なデータ・タイプまたはフォーマットに画素エンジン・データ・キャッシング機構を使用することによってグラフィックス・コンピュータ・サブシステム内のメモリ要求の数を削減する。本明細書で説明する本発明のデータ・ディスプレイ・キャッシング機構で使用される最適化を用いた場合、最小限の回路基板面積が使用され、したがって全体的なコンピュータ・システム・コストが削減される。また、本発明は、本明細書で説明する画素エンジン・データ・キャッシング機構を用いた場合に、要求されたデータをほぼ遅延時間なしで受け取るパイプライン・プロセッサを使用することによって、コンピュータ・システム・スループットを最大にする。したがって、本発明は、減少されたメモリ・アクセス帯域幅を有する低コストの高性能グラフィックス・コンピュータ・システムを提供するのを助ける。
【発明を実施するための形態】
【００１３】
図２には、本発明がブロック図形態で示されている。コンピュータ・システム２０１は、システム・メモリ２０６および通信バス２０８に結合された中央演算処理装置（ＣＰＵ）２０４を含む。グラフィックス・サブシステム２０２は、通信バス２０８を通してＣＰＵ２０４と通信する。コンピュータ・システム２０１の出力されたグラフィックスおよびビデオは、グラフィックス・サブシステム２０２のビデオ出力回路２１２に結合された出力ディスプレイ２１４に表示される。グラフィックス・サブシステム２０２は、通信バス２０８に結合されたバス・インタフェース回路２１０も含む。制御回路２０３はバス・インタフェース２１０に結合される。システム性能を高めるために、パイプライン・プロセッサ２０５は、制御回路２０３に結合され、ローカル・メモリ回路２０９に記憶される出力情報を生成する。画素エンジン・データ・キャッシング機構２１５は、パイプライン・プロセッサ２０５からデータ要求２１３情報を受け取るように結合され、この要求に応答して、パイプライン・プロセッサ２０５に要求されたデータ２１１を生成する。ビデオ出力回路２１２は、ローカル・メモリ回路２０９からデータ情報を読み取り、次いで対応する画像を出力ディスプレイ２１４に出力する。
【００１４】
本発明の一実施形態では、バス・インタフェース回路２１０はＰＣＩインタフェース回路である。この実施形態では、制御回路２０３は、縮小命令セット・コンピュータ（ＲＩＳＣ）と、命令キャッシュなど対応するサポート回路と、ＶＧＡ互換回路とを含む。ローカル・メモリ回路２０９は、ローカル・ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）と、リフレッシュ回路やメモリ・コントローラなど関連するサポート回路とを含む。ビデオ出力回路２１２は、陰極管コントローラ（ＣＲＴＣ）とビデオ先入れ先出しメモリ（ＦＩＦＯ）とを含む。この実施形態では、ＤＲＡＭ（図示せず）を除くグラフィックス・サブシステム２０２内のすべての装置が共通の基板上に存在する。
【００１５】
図２に示したように、パイプライン・プロセッサ２０５は、制御回路２０３から段０の入力２１６で、実行すべきタスクを受け取る。段０は、対応する演算を実行し、それが完了すると、タスクはパイプライン・プロセッサ２０５内の次の段に進む。段０は、このタスクに関する処理を完了した後、制御回路２０３から次のタスクを受け取る準備をする。したがって、パイプライン・プロセッサ２０５内のすべてのＮ個の段が、関連するタスクに対する演算を実行しているとき、Ｎ個のタスクはほぼ同時に処理されている。タスクがパイプライン・プロセッサ２０５のすべてのＮ個の段を順次進んだ後、その結果得られた出力情報が段Ｎの出力２１８から生成され、ローカル・メモリ回路２０９に格納される。
【００１６】
当然のことながら、特定のタスクがパイプライン・プロセッサ２０５に入ると、パイプラインの後続の段での処理に必要なローカル・メモリ回路２０９内のある種のデータ・エントリを事前に知ることができる。たとえば、図２を参照するとわかるように、タスクがパイプライン・プロセッサ２０５の段０に入ったと仮定する。タスクはパイプライン・プロセッサ２０５内で段Ａに進む。段Ａで、タスクが最終的にパイプライン・プロセッサ２０５の段Ｍに進んだときに段Ｍが特定のデータ情報を必要とすることがわかる。このデータが段Ｍで必要とされることは、この特定のタスクがまだ段Ｍに伝搬していなくてもわかる。
【００１７】
本発明は、段Ａからデータ要求２１３を受け取るように構成された画素エンジン・データ・キャッシング機構２１５を用意することによって、パイプライン処理の特性を利用する。画素エンジン・データ・キャッシング機構は、データ要求２１３に応答して、段Ｍで必要とされるデータ情報を事前に知る。したがって、画素エンジン・データ・キャッシング機構２１５は、必要に応じて、タスクがパイプライン・プロセッサ２０５内で段Ｍに進んでいる間に、ローカル・メモリ回路２０９にアクセスし、要求されたデータを取り込むことができる。タスクが最終的に段Ｍに到達すると、画素エンジン・データ・キャッシング機構２１５は、要求されたデータ２１１をパイプライン・プロセッサ２０５の段Ｍに供給する。したがって、タスクが到達した直後に、段Ｍではすでに、必要なデータ情報が使用できるはずなので、通常メモリに必要とされる遅延時間はほぼなくなる。何らかの理由で、タスクが到達した直後に、要求されたデータが段Ｍで得られない場合でも、画素エンジン・データ・キャッシング機構２１５とパイプライン・プロセッサ２０５が同時に処理される際の、メモリ遅延時間は少なくとも短縮される。
【００１８】
当然のことながら、データ要求信号２１３がパイプライン・プロセッサ２０５の段Ａからのみ発信され、要求されたデータ２１１がパイプライン・プロセッサ２０５の段Ｍにのみ与えられるという図２は本発明の実施形態の一例を示すに過ぎない。データ要求信号２１３はパイプライン・プロセッサ２０５の任意の数の段から発信することができ、要求されたデータ２１１はパイプライン・プロセッサ２０５内の任意の数の段に与えることができる。本発明は、パイプライン・プロセッサ内の後続の段のためにメモリから得る要求された情報が事前にわかるあらゆるパイプライン・プロセスに適用することができる。
【００１９】
また、さらに、画素エンジン・データ・キャッシング機構２１５にキャッシュ・メモリを実装してローカル・メモリ回路２０９のメモリ・アクセス帯域幅を減少できることが理解されよう。画素エンジン・データ・キャッシング機構２１５ではすでにパイプライン・プロセッサ２０５の段Ｍへのメモリ・アクセス遅延時間がないので、画素エンジン・データ・キャッシング機構２１５からのローカル・メモリ回路２０９のメモリ・アクセスの数を削減され、全体的なシステム性能を向上させるうえで助けとなる。
【００２０】
図３は、画素エンジン・データ・キャッシング機構３１５の一実施形態をブロック図形態で示す。画素エンジン・データ・キャッシング機構３１５は、フェッチ論理３２１に結合された中間待ち行列３１９に結合されたプリフェッチ論理３１７を含む。プリフェッチ論理３１７は、図２のパイプライン・プロセッサ２０５からデータ要求３１３を受け取る。プリフェッチ論理３１７は、メモリ３２５へのデータ要求を生成するように構成され、ローカル・メモリ回路３０９がこの要求を受け取る。ローカル・メモリ回路３０９は、メモリ３２５へのデータ要求に応答してデータを出力し、このデータをフィルＦＩＦＯ３２３が受け取る。データはさらに、フェッチ論理３２１に与えられる。フェッチ論理３２１は、要求されたデータ３１１をパイプライン・プロセッサ２０５に供給する。
【００２１】
図３に示したように、パイプラインからのデータ要求３１３は、アドレス信号３１３Ａと、方向信号３１３Ｂと、バイト・イネーブル・マスク信号３１３Ｃと、タイプ信号３１３Ｄと、モード信号３１３Ｅとを含む。これらの信号について以下の表１で説明する。
【００２２】
【表１】
2006185442.tif 000003
【００２３】
本発明の一実施形態では、アドレス信号３１３Ａは２４ビット信号であり、要求されたデータが配置されたローカル・メモリ回路３０９内の開始バイト・アドレスを表す。この実施形態では、メモリ・エントリが６４ビット・ダブルワードに構成され、パイプライン・プロセッサに供給される要求されたデータは３２ビット・ワードまたは４バイト・ワードである。当然のことながら、本発明の他の実施形態は、６４ビット・ダブルワード以外のデータをメモリから検索し、かつ／あるいは３２ビット・ワード以外のデータを要求側パイプライン・プロセッサに供給することができる。
【００２４】
方向信号３１３Ｂは、ローカル・メモリ回路３０９からデータを読み取る特定の方向を示す１ビット・フラグである。たとえば、ローカル・メモリ回路３０９内でスキャン・ラインを更新している場合、そのスキャン・ライン内の個々のデータ・エントリ、たとえば画素を左から右へ、あるいは右から左へ更新することができる。以下で詳しく論じるように、本発明のキャッシュ・メモリ３２９の構成は、方向信号３１３Ｂで示されるローカル・メモリ回路３０９からデータ・エントリを読み取る方向に対して最適化される。
【００２５】
バイト・イネーブル・マスク信号３１３Ｃは４ビット信号であり、所与の開始バイト・アドレスから始まるどのバイトが画素エンジンによって要求されたかを示す。
【００２６】
タイプ信号３１３Ｄは２ビット信号であり、読取り要求の種類を示す。特に、本発明の一実施形態では、いくつかの異なるデータ・フォーマットまたはタイプが使用される。この実施形態では、タイプ信号「０」はテクセル・データ読取り要求を表す。タイプ信号「１」は画素データ読取り要求を表す。タイプ信号「２」はＺデータ要求を表す。最後に、タイプ信号「３」は、テクセル専用モードで動作するパイプライン・プロセッサに対応するテクセル・データ要求を表す。
【００２７】
モード信号３１３Ｅは、本発明のパイプライン・プロセッサがテクセル専用モードで動作するかどうかを示すフラグである。本発明の一実施形態では、パイプライン・プロセッサは、パイプライン式プロセッサによってテクセル情報のみが処理されるテクセル専用モードで動作することもできる。非テクセル専用モードでは、本発明のパイプライン式プロセッサは、テクセル、画素、またはＺ情報を処理することができる。以下で詳しく論じるように、本発明のキャッシュ・メモリ３２９は、パイプライン・プロセッサが任意の時に動作することのできるどちらかのモードに応答してその構成を適合させるように最適化される。
【００２８】
図３に示したように、プリフェッチ論理３１７はタグ・メモリ３３３を含む。タグ・メモリ３３３は、任意の特定の時にキャッシュ・メモリ３２９に記憶されているデータ・エントリのローカル・メモリ・アドレスまたはタグを含む。本発明の一実施形態では、キャッシュ・メモリ３２９は、ローカル・メモリ回路３０９から得たダブルワード・エントリを含む４つのライン・バッファを含む。したがって、タグ・メモリ３３３は、キャッシュ・メモリ３２９の４つのライン・バッファに含まれるデータ・エントリの対応するダブルワード・メモリ・アドレスを含む。当然のことながら、本発明の他の実施形態は、４つよりも多く、あるいは少ないライン・バッファを備えることができる。
【００２９】
図５は、プリフェッチ論理５１７をブロック図形態で示す図である。プリフェッチ論理５１７がパイプライン・プロセッサ２０５からデータ要求５１３を受け取った後、アドレス計算／割振り回路５３５は、ローカル・メモリ回路３０９の要求されたデータ・エントリのアドレス、あるいは必要に応じて複数のアドレスを算出する。アドレス計算／割振り回路５３５は、アドレス信号５１３Ａおよびバイト・イネーブル・マスク信号５１３Ｃで示される所与のアドレスおよび要求されたバイトの知識を用いて、要求されたデータ３１１を最終的にパイプライン２０５に与えるにはローカル・メモリ回路３０９から１つのダブルワードを取り込まなければならないか、それとも２つのダブルワードを取り込まなければならないかを判定することができる。さらに、ローカル・メモリ回路３０９から２つのダブルワードを取り込まなければならない場合、アドレス計算／割振り回路５３５は、要求されたデータ３１１を与えるにはダブルワードをどのようにシフトしマスクしなければならないかを判定することができる。
【００３０】
図４は、アドレス計算／割振り回路５３５によって実行されるプロセスを説明するうえで助けとなる図である。図４に示したように、ローカル・メモリ回路４０１は、アドレス位置０ないし１５に記憶されているバイト情報を含むと仮定する。次に、たとえば、要求されたデータ４０３がローカル・メモリ回路４０１のバイト位置７ないし１０に配置されていると仮定する。したがって、開始バイト・メモリ・アドレス４１１はバイト７を指し示す。図４に示したように、要求されたデータ４０３がダブルワード境界４０９上に存在する場合、要求されたデータ４０３のすべての４バイト（７ないし１０）を得るには、第１のダブルワード４０５と第２のダブルワード４０７を共にローカル・メモリ回路４０１から取り込まなければならない。したがって、要求されたデータ４０３を得るには、アドレス０から始まる第１のダブルワード４０５と、アドレス８から始まる第２のダブルワード４０７をローカル・メモリ回路４０１から取り込まなければならない。たとえば、要求されたデータ４０３のすべての４バイトが第１のダブルワード４０５のバイト位置０ないし７に配置されている場合、要求されたデータ４０３を得るにはローカル・メモリ回路４０１から第１のダブルワード４０５を取り込むだけでよい。同様に、要求されたデータ４０３のすべての４バイトが第２のダブルワード４０７のメモリ位置８ないし１５に存在する場合、要求されたデータ４０３を得るには第２のダブルワード４０７をローカル・メモリ回路４０１から取り込むだけでよい。
【００３１】
開始ダブルワード・アドレスが判定された後、このアドレスはアドレス計算／割振り回路５３５によって優先順位付けされる。この優先順位付けは、取り込んだダブルワードを後でキャッシュ・メモリ３２９にどのようにキャッシュするかを判定するために行われる。ローカル・メモリ回路３０９から１つのダブルワードを取り込むだけでよい場合、その１つのダブルワードに最高の優先順位が割り当てられるのは自明である。しかし、ローカル・メモリ回路３０９から２つのダブルワードを取りこまなければならない場合、キャッシングのために２つのダブルワードのうちの一方により高い優先順位が割り当てられる。
【００３２】
例示のために、再び図４を参照する。この例では、ローカル・メモリ回路４０１から第１のダブルワード４０５と第２のダブルワード４０７の両方を取り込まなければならないと仮定する。データをローカル・メモリ回路４０１から右から左へ読み取る場合、第１のダブルワード４０５に最高の優先順位が割り当てられる。しかし、ダブルワード・エントリをローカル・メモリ回路４０１から左から右へ読み取る場合、第２のダブルワード４０７に最高の優先順位が割り当てられる。
【００３３】
本発明のアドレス計算／割振り回路５３５によって使用されるこの優先順位付け方式は、メモリを右から左へ読み取る場合、１番右のダブルワードをキャッシュする必要がある可能性は低く、後に続くメモリ・アクセスで１番左のダブルワードが再びアクセスされる可能性が高いことを利用している。逆に、ダブルワード・エントリをローカル・メモリ回路４０１から左から右へ読み取る場合、１番左のダブルワードが再びアクセスされる可能性は低く、後に続くメモリ・アクセスで１番右のエントリがアクセスされる可能性は高い。メモリの方向性読取りは、スキャン・ラインのためなどでメモリ・エントリにアクセスするときに重要である。
【００３４】
前述のように、アドレス計算／割振り回路５３５は、方向信号３１３Ｂによって、メモリがアクセスされている方向を知る。図５に示したように、アドレス計算／割振り回路５３５は２つのメモリ・アドレスを判定すると共に、この２つのメモリ・アドレスに優先順位付けした後、最高優先順位メモリ・アドレスが第１のメモリ・アドレス５４１として出力される。必要に応じて、他のメモリ・アドレスが第２のメモリ・アドレス５４３として出力される。タグ比較回路５３７がこの２つのメモリ・アドレス信号５４１および５４３を受け取る。
【００３５】
タグ比較回路５３７は、第１のメモリ・アドレス５４１および第２のメモリ・アドレス５４３をタグ・メモリ５３３に記憶されているダブルワード・アドレスと比較する。タグ・メモリ５３３に記憶されているダブルワード・アドレスは、図３のキャッシュ・メモリ３２９にキャッシュされているダブルワードに対応する。アドレス計算／割振り回路５３５によって算出されたダブルワードと、タグ・メモリ５３３に記憶されているアドレスが一致した場合は、キャッシュ「ヒット」がある。したがって、要求されたデータがすでにキャッシュ・メモリ３２９に記憶されているので、ローカル・メモリ回路３０９への追加のアクセスは必要とされない。したがって、本発明によってメモリ帯域幅が向上する。第１のメモリ・アドレス信号５４１と第２のメモリ・アドレス信号５４３の両方に関するキャッシュ「ヒット」がタグ・メモリ５３３内にあるかどうかをタグ比較回路５３７が判定することに留意されたい。
【００３６】
キャッシュ「ヒット」がなく、実際に図３のローカル・メモリ回路３０９からデータを取り込む必要がある場合、タグ比較回路５３７は、メモリ５２５への対応するデータ要求を生成する。タグ比較回路５３７は、第１のキャッシュ・ヒット信号５４５と第２のキャッシュ・ヒット信号５４７も生成する。第１のキャッシュ・ヒット信号５４５は、キャッシュ・メモリ３２９に第１のメモリ・アドレス５４１が存在するかどうかをＬＲＵ管理回路に示す。第１のキャッシュ・メモリ・アドレス５４１が実際にキャッシュ・メモリ３２９に存在する場合、第１のキャッシュ・ヒット信号５４５は、どの特定のキャッシュ・ライン・エントリが第１のメモリ・アドレス５４１に対応するかも示す。同様に、第２のキャッシュ・ヒット信号５４７は、第２のメモリ・アドレス信号５４３に関連するキャッシュ・ヒットがあったかどうかと、キャッシュ・ヒットがあった場合に、キャッシュ・メモリ３２９内のどのキャッシュ・ライン・エントリが第２のメモリ・アドレス５３４に対応するかを示す。
【００３７】
前述のように、本発明の一実施形態では、パイプライン式プロセッサ２０５は２つの動作モード、すなわちテクセル専用モードと非テクセル専用モードとを有する。ＬＲＵ管理回路５３９は、モード信号５１３Ｅを監視して、パイプライン・プロセッサ２０５がどちらのモードで動作しているかを判定する。パイプライン・プロセッサがテクセル専用モードで動作していることをモード信号５１３が示す場合、ＬＲＵ管理回路５３９は、キャッシュ・メモリ３２９内のすべてのキャッシュ・ラインをテクセル情報に割り振る。しかし、パイプライン・プロセッサ２０５が非テクセル専用モードで動作していることをモード信号５１３Ｅが示す場合、ＬＲＵ管理回路５３９は、キャッシュ・メモリ３２９内のキャッシュ・ラインの一部をテクセル情報に割り振り、キャッシュ・メモリ３２９の他の部分を画素情報とＺ情報に割り振る。
【００３８】
したがって、本発明のキャッシュ・メモリは、パイプライン・プロセッサ２０５が動作している特定のモードに適合し、パイプライン・プロセッサ２０５が動作している特定のモード向けにキャッシュ・メモリ３２９を動的に最適化する。
【００３９】
一実施形態では、パイプライン・プロセッサがテクセル専用モードで動作している場合、キャッシュ・メモリ３２９のすべての４つのライン・バッファがテクセル情報に割り振られる。パイプライン・プロセッサが非テクセル専用モードで動作している場合、ＬＲＵ管理回路５３９は、キャッシュ・メモリ３２９内の４つのライン・バッファのうちの２つをテクセル情報に割り振り、１つのライン・バッファを画素情報に割り振り、１つのライン・バッファをＺ情報に割り振る。
【００４０】
テクセル情報に割り振られる４つのラインのうちの２つなど、特定のデータ・タイプにキャッシュ・メモリ３２９内の複数のキャッシュ・ライン・エントリを割り振る場合、ＬＲＵ管理回路５３９は、キャッシュ・メモリ３２９内のキャッシュ・ラインを置換する際にＬＲＵアルゴリズムを使用する。したがって、キャッシュ・メモリ３２９に記憶されているデータ・タイプ、最も「古い」ラインはどれか、あるいは最初に更新されたラインはどれかに応じて、ライン・バッファが置換される。ある種の状況では、ＬＲＵ管理回路５３９は、任意のキャッシュ・メモリ３２９エントリを要求されたデータで置換することのないインテリジェンスを有するように最適化される。この状況が発生するのは、方向信号３１３Ｂで示された方向情報に基づいて、二度と必要とされない特定のダブルワードをローカル・メモリ回路３０９から取り込んだ場合である。
【００４１】
ＬＲＵ管理回路５３９は、ダブルワード・エントリがどこから得られるか、すなわちローカル・メモリ回路３０９から得られるか、それともキャッシュ・メモリ３２９から得られるかを判定し、どこにダブルワード・エントリを記憶するか、すなわちキャッシュ・メモリ３２９内のどの特定のキャッシュ・メモリ・ラインに記憶するかを判定した後、図５に示したようにＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１信号５２７ＡおよびＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２信号５２７Ｂを出力する。ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ５２７ＡおよびＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ５２７Ｂは、プリフェッチ論理５１７からシフト／マスク５２７Ｃとともに図３の中間待ち行列３１９に出力される。
【００４２】
図６〜図１１は、ＬＲＵ管理回路５３９の一実施形態のプロセス・フローを示すフローチャート６０１を示す。図６に示したように、決定ブロック６０３で、パイプライン・プロセッサがテクセル専用モードで動作しているか否かが判定される。パイプライン・プロセッサがテクセル専用モードで動作している場合、処理ブロック６０５が実行される。パイプライン・プロセッサが非テクセル専用モードで動作している場合は、プロセス・ブロック６０７が実行される。
【００４３】
図７は、テクセル専用モード処理ブロック６０５のプロセスを示す。まず、決定ブロック６０９ないし６１５に示したように第１優先順位メモリ・アドレスに対してキャッシュ・ライン・ヒットがあるかどうかが判定される。キャッシュ・ラインのうちのどれかにヒットがあった場合、処理ブロック６１７ないし６２３に示したように、ヒットがあった特定のキャッシュ・ラインに対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。どのキャッシュ・ラインにもキャッシュ・ヒットがなかった場合、処理ブロック６２５に示したように、ローカル・メモリからＦＩＦＯを介してデータが得られることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。また、ＦＩＦＯから受け取ったデータは、最初に更新されたキャッシュ・ラインまたは最も「古い」キャッシュ・ラインに置き換わる。
【００４４】
第１優先順位アドレスに対する処理が完了した後、決定ブロック６２７ないし６３３に示したように、第２優先順位メモリ・アドレスに対してキャッシュ・ヒットがあったかどうかが判定される。キャッシュ・ヒットがあった場合、処理ブロック６３７ないし６４３に示したように、特定のキャッシュ・ライン・ヒットに対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に割り当てられる。第２優先順位メモリ・アドレスに対するキャッシュ・ライン・ヒットがなかった場合、ＦＩＦＯからデータを受け取るべきであることを示す値がＳＥＬＥＴ＿ＳＴＯＲＥ＿２に割り当てられる。また、決定ブロック６０９ないし６１５でヒットがあった場合、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に示されているＦＩＦＯから受け取るデータが、最初に更新されたキャッシュ・ラインに置き換わる。一方、決定ブロック６０９ないし６１５に関連するキャッシュ・ライン・ヒットがなかった場合、決定ブロック６３５ならびに処理ブロック６４５および６４７に示したように、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に示されているＦＩＦＯから受け取るデータが、２番目に更新されたキャッシュ・ラインに置き換わる。
【００４５】
図８は、非テクセル専用モード処理６０７に関連する処理を示す。まず、決定ブロック６４９および６５１に示したように、読取り要求のデータ・フォーマットがテクセル・タイプであるか、それとも画素タイプであるか、それともＺタイプであるかが判定される。読取りタイプがテクセル・タイプである場合、非テクセル専用モード処理ブロック６５３が実行される。読取りタイプが画素タイプである場合、非テクセル専用モード画素処理ブロック６５５が実行される。最後に、読取りタイプがテクセル・タイプでも、あるいは画素タイプでもない場合、非テクセル専用モードＺ処理ブロック６５７が実行される。
【００４６】
図９は、非テクセル専用モード・テクセル処理ブロック６５３に関する処理を示す。まず、決定ブロック６５９および６６１に示したように第１優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあるかどうかが判定される。第１優先順位メモリ・アドレスに関連するキャッシュ・ライン・ヒットがあった場合、処理ブロック６６７および６６９に示したように、ヒット・キャッシュ・ラインに対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。第１優先順位メモリ・アドレス・ヒットの場合にＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に値が割り当てられた後、決定ブロック６７７ないし６７９に示したように、第２優先順位メモリ・アドレスに関連するキャッシュ・ライン・ヒットがあったかどうかが判定される。この第２優先順位メモリ・アドレスに関連するキャッシュ・ヒットもあった場合、処理ブロック６８１および６８３に示したように、ヒット・キャッシュ・ラインに対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に割り当てられる。この状況で第２優先順位メモリ・アドレス・キャッシュ・ヒットがなかった場合、処理ブロック６８５に示したように、ＦＩＦＯからデータを受け取るべきであることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に割り当てられる。また、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に示されているＦＩＦＯから受け取るデータは、データ・キャッシュには記憶されていない。ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２は低優先順位ダブルワードに対応するので、特定のダブルワードがメモリにキャッシュされないことが事前に決定されている。
【００４７】
第１優先順位メモリ・アドレス・キャッシュ・ヒットがなかったと仮定すると、決定ブロック６６３および６６５に示したように、第２優先順位・メモリ・アドレス・キャッシュ・ヒットがあるかどうかが判定される。第２優先順位メモリ・アドレス・キャッシュ・ヒットがあり、第１優先順位メモリ・キャッシュ・ヒットがない場合、処理ブロック６７１および６７３に示したように、ヒット・キャッシュ・ラインに対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に割り当てられ、ＦＩＦＯからデータを受け取るべきであることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。また、ＦＩＦＯから受け取るデータは、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に示されたキャッシュ・ライン内のデータに置き換わるように指定される。これは、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に示されているデータがすでに、低優先順位ダブルワードであると判定されており、したがってこの低優先順位ダブルワードが、ＦＩＦＯから取り込まれる高優先順位ダブルワードで置換されることから説明することができる。第１優先順位メモリ・キャッシュ・ヒットも、あるいは第２優先順位メモリ・キャッシュ・ヒットもなかった場合、ＦＩＦＯからデータを受け取るべきであり、かつこのデータがキャッシュ・メモリには記憶されないことを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２に割り当てられる。さらに、処理ブロック６７５に示したように、ＦＩＦＯからデータを受け取るべきであり、かつこのデータがキャッシュ・ライン０とキャッシュ・ライン１との間の最初に更新されたキャッシュ・ラインに記憶されることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。この特定の実施形態では、キャッシュ・メモリのキャッシュ・ライン０および１がテクセル情報に割り振られることに留意されたい。
【００４８】
図１０は、非テクセル専用モード画素処理ブロック６５５に関連する処理を示す。図１０に示したように、まず、第１優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあったかどうかが判定される。このようなキャッシュ・ヒットがあった場合、処理ブロック６９１に示したように、キャッシュ・ライン２に対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。第１優先順位メモリ・アドレス・ヒットがあった場合、処理ブロック６８９に示したように、ＦＩＦＯからデータを受け取るべきであり、かつこのデータがキャッシュ・ライン２内のデータに置き換わることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。この特定の実施形態では、キャッシュ・ライン２が画素情報専用であることに留意されたい。
【００４９】
図１１は、非テクセル専用モードＺ処理ブロック６５７に関連する処理を示す。まず、決定ブロック６９３に示したように、第１優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあったかどうかが判定される。ヒットがあった場合、キャッシュ・ライン３に対応する値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。ヒットがなかった場合、ＦＩＦＯからデータを受け取り、かつそのデータがキャッシュ・ライン３に記憶されることを示す値がＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１に割り当てられる。非テクセル専用モードでは、キャッシュ・ライン３がＺ情報専用であることに留意されたい。
【００５０】
再び図３を参照すると、プリフェッチ論理３１７の出力はＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ３２７Ａ、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ３２７Ｂ、シフト／マスク３２７Ｃとして示されている。本発明の一実施形態では、この３つの信号はそれぞれ、４ビット信号である。中間待ち行列３１９は、図３に示したように、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ３２７Ａ、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ３２７Ｂ、シフト／マスク３２７Ｃを受け取り、この信号をフェッチ論理３２１に渡すように構成される。本発明の一実施形態では、中間待ち行列はＦＩＦＯである。信号は、要求を出した特定のタスクがパイプライン２０５の段Ｍに到達したときに、要求されたデータ３１１がパイプラインに供給されるように、中間待ち行列３１９で待機するに過ぎない。
【００５１】
図３に示したように、フェッチ論理３２１はキャッシュ・メモリ３２９とシフト及びマージ論理３３１とを含む。シフト及びマージ論理３３１は、受け取った信号ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ３２７Ａ、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ３２７Ｂ、シフト／マスク３２７Ｃによって、（１）要求されたデータには１つのダブルワードが必要であるか、それとも２つのダブルワードが必要であるかと、（２）第１優先順位ダブルワードがキャッシュ・メモリ３２９から検索されるか、それともフィルＦＩＦＯ３２３から検索されるかと、（３）ダブルワードがまだキャッシュ・メモリにキャッシュされていない場合に第１のダブルワードがどのキャッシュ・ラインに記憶されるかと、（４）第２優先順位ダブルワードが必要である場合に、第２優先順位ダブルワードがキャッシュ・メモリ３２９から得られるか、それともフィルＦＩＦＯ３２３から得られるかと、（５）キャッシュ・ラインがある場合、第２のダブルワードがどのキャッシュ・ラインに記憶されるかと、（６）要求されたデータ３１１を適切に構築するには（必要に応じて）第１のダブルワードおよび第２のダブルワードをどのようにシフトしマージするかを知る。
【００５２】
図１２は、シフト及びマージ論理７３１をブロック図形態で示す。図１２に示したように、選択回路１  ７４９Ａと選択回路２  ７４９Ｂは、キャッシュ・ライン０  ７２９Ａ、キャッシュ・ライン１  ７２９Ｂ、キャッシュ・ライン２  ７２９Ｃ、キャッシュ・ライン３  ７２９Ｄ、ＦＩＦＯデータ７２３Ａおよび７２３Ｂから５４ビット・ダブルワード値を受け取るように結合される。選択回路１  ７２９ＡはＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ７２７Ａを受け取るように結合される。選択回路２  ７４９ＢはＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ７２７Ｂを受け取るように結合される。図１２に示した実施形態では、選択回路１  ７４９Ａおよび選択回路２  ７４９Ｂを簡単なマルチプレクサ選択回路とみなすことができる。すなわち、ＳＥＬＥＣＴ＿ＳＴＯＲＥ＿１  ７２７ＡおよびＳＥＬＥＣＴ＿ＳＴＯＲＥ＿２  ７２７Ｂの対応する入力に基づいて、５つの５４ビット入力信号のうちの１つが出力される。図１２に示したように、選択回路１  ７４９Ａの出力はシフタ１  ７５１Ａに結合される。同様に、選択回路２  ７４９Ｂの出力はシフタ２  ７５１Ｂに結合される。シフタ１  ７５１Ａおよびシフタ２  ７５１Ｂはシフト／マスク７２７Ｃを受け取るように結合される。シフタ１  ７５１Ａおよびシフタ２  ７５１Ｂの３２ビット出力は、パイプライン２０５に対して、要求された３２ビット・データ７１１を生成するように論理ＯＲ回路７５３に論理ＯＲされる。
【００５３】
シフタ１  ７５１Ａおよびシフタ２  ７５１Ｂを例示するために、再び図４を参照し以下の表２を参照する。
【００５４】
【表２】
2006185442.tif 000004
【００５５】
この例では、要求されたデータ４０３がローカル・メモリ回路４０１内のメモリ・アドレス７ないし１０に存在すると仮定する。図４に示したように、要求されたデータ４０３はダブルワード境界４０９上に存在する。この例ではさらに、ローカル・メモリ回路４０１からデータを読み取る方向が右から左であると仮定する。したがって、第１優先順位ダブルワードが第１のダブルワード４０５になり、第２の優先順位ダブルワードが第２のダブルワード４０７になる。
【００５６】
この例では、要求されたデータ４０３は、上記の表２の最後の行に示したケース番号１１に対応する。したがって、図１２のシフト／マスク７２７Ｃは、ケース１１に対応する値を含む。表２に示したように、第１のダブル・データ・ワード列は、ケース１１では、第１のダブルワードのバイト番号７が要求された場合に、対応する第２のダブル・データ・ワード・バイトがバイト０、１、２になることを示す。再び図４を参照するとわかるように、第２のダブルワード４０７のバイト０、１、２はローカル・メモリ回路４０１内のバイト８、９、１０に対応する。したがって、再び図１２を参照し、引き続き同じ例を検討するとわかるように、シフト／マスク７２７Ｃからケース１１を受け取ったシフタ１  ７５１Ａは、入力６４ビットのバイト７に対応するビットが、ローカルＯＲ入力７５３が受け取るシフタ１  ７５１Ａからの出力３２ビット信号の第１バイトとして現れるようにシフトされるように６４ビット入力をシフトさせる。同様に、シフタ２も、入力６４ビット・データの０バイト、１バイト、２バイトが、論理ＯＲ回路７５３が受け取るシフタ２  ７５１Ｂからの出力３２ビット信号中の第２ビット、第３ビット、第４ビットとして現れるようにシフトされるようにケース１１に対応するシフト／マスク７２７Ｃの値を受け取る。
【００５７】
当然のことながら、上記で与えた例を、論じていない表２の他の１０個のケースに適用することもできる。たとえば、表２のケース１０に対応する値をシフト／マスク７２７Ｃに割り当てる場合、シフタ１  ７５１Ａへの入力６４ビット・データ・ストリームは、バイト６および７が出力３２ビット・ワードの最初の２バイトとして現れるようにシフトされる。同様に、シフタ２への入力６４ビット・データ・ストリームのバイト０および１は、シフタ２  ７５１Ｂからの出力３２ビット信号の最後の２バイトとして現れるようにシフトされる。したがって、再び図２を参照するとわかるように、要求されたデータ２１１は画素エンジン・データ・キャッシング機構２１５からパイプライン・プロセッサ２０５の段Ｍに出力される。
【００５８】
したがって、要求されたデータをパイプライン・プロセッサに与える装置および方法について説明した。本発明を用いた場合、データをキャッシュして必要なメモリ・アクセスの数を削減することによって、グラフィックス・コンピュータ・システム内のメモリ帯域幅が効果的に減少する。また、本発明は、パイプライン・プロセッサが動作する特定のモードに基づいて関連するコンピュータ・グラフィックス・システムの性能を最大にするように最適化された適合キャッシュを採用できる。前述の実施形態では、パイプライン・プロセッサがテクセル専用モードで動作している場合、キャッシュはすべてのキャッシュ・ラインをテクセル情報に割り振るように最適化される。一方、パイプライン・プロセッサが非テクセル専用モードで動作している場合、４つのキャッシュ・ラインのうちの２つがテクセル情報に割り振られ、１つのキャッシュ・ラインは画素情報専用になり、最後のキャッシュ・ラインはＺ情報専用になる。さらに、本発明は、メモリからデータが読み取られる方向と、任意の特定の時間にパイプライン・プロセッサが動作している特定のモードに基づく斬新な置換アルゴリズムをキャッシュ・メモリで使用する。このインテリジェント置換アルゴリズムを用いた場合、メモリ・アクセスはさらに削減され、したがってさらに、コンピュータ・システム内の利用可能なメモリ帯域幅が増加する。当然のことながら、本発明は、大規模で高価な従来技術のキャッシュ・メモリを使用する必要なしにデータ・キャッシング機構を使用する。
【００５９】
上記の詳細な説明では、要求されたデータをパイプライン・プロセッサに与える装置および方法について説明した。本発明の装置および方法について、その特定の例示的な実施形態を参照して説明した。しかし、本発明の広い趣旨および範囲から逸脱せずに本発明に様々な修正および変更を加えられることは明白である。したがって、本発明の明細書および図面は、制限的なものではなく例示的なものとみなすべきである。
なお、パイプライン・プロセッサの動作モードに基づいてキャッシュ構成の最適化をする態様を列挙すれば次のようであります。
（ア）  ４６．グラフィックス・コンピュータ・システム内でデータをキャッシュする装置であって、
第１の動作モードと第２の動作モードとを有するように構成されたグラフィックス・コンピュータ・システムと、
複数のキャッシュ・ラインを有し、データをキャッシュするように構成され、データが第１のデータ・タイプと第２のデータ・タイプとを含むキャッシュ・メモリと、
第１の割振りを用いた場合に、複数のキャッシュ・ラインの第１の部分が第１のデータ・タイプのみをキャッシュするように割り振られ、複数のキャッシュ・ラインの第２の部分が第２のデータ・タイプのみをキャッシュするように割り振られる、第１の動作モードに応答した複数のキャッシュ・ラインの第１の割振り機構と、
第２の割振りを用いた場合に、複数のキャッシュ・ラインの第３の部分が第１のデータ・タイプのみをキャッシュするように割り振られ、複数のキャッシュ・ラインの第４の部分が第２のデータ・タイプのみをキャッシュするように割り振られる、第２の動作モードに応答した複数のキャッシュ・ラインの第２の割振り機構とを備えることを特徴とする装置。
（イ）複数のキャッシュ・ラインの第１の部分がすべての複数のキャッシュ・ラインを含み、複数のキャッシュ・ラインの第２の部分が複数のキャッシュ・ラインをまったく含まないことを特徴とする上記（ア）に記載の装置。
（ウ）データがさらに第３のデータ・タイプを含み、第２の割振り機構がさらに、複数のキャッシュ・ラインの第５の部分に第３のデータ・タイプをキャッシュすることを特徴とする上記（ア）に記載の装置。
（エ）複数のキャッシュ・ラインの第３の部分が２つのライン・バッファを含み、複数のキャッシュ・ラインの第４の部分が１つのライン・バッファを含み、複数のキャッシュ・ラインの第５の部分が１つのライン・バッファを含むことを特徴とする上記（ウ）に記載の装置。
（オ）第１のデータ・タイプがテクセル情報であり、第２のデータ・タイプが画素情報であり、第３のデータ・タイプがＺ情報であることを特徴とする上記（エ）に記載の装置。
（カ）複数のキャッシュ・ラインの第１の部分が４つのライン・バッファを含むことを特徴とする上記（イ）に記載の装置。
（キ）第１のデータ・タイプがテクセル情報であることを特徴とする上記（カ）に記載の装置。
【図面の簡単な説明】
【００６０】
【図１】パイプライン・プロセッサおよびキャッシュ・メモリを実装した簡略化された従来技術のコンピュータ・システムの図である。
【図２】本発明の教示によるコンピュータ・システムのブロック図である。
【図３】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態のブロック図である。
【図４】メモリ内のダブルワード境界に存在する所望のデータ・エントリの図である。
【図５】本発明の教示によるプリフェッチ論理の一実施形態のブロック図形態の図である。
【図６】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図７】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図８】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図９】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図１０】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図１１】本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるＬＲＵ置換方式のプロセス・フローを表す流れ図である。
【図１２】本発明の教示によるフェッチ論理で使用されるシフト及びマージ論理の一実施形態のブロック図形態の図である。
【符号の説明】
【００６１】
１０１  コンピュータ・システム（従来技術）
２０２  グラフィックス・サブシステム
３１５  データ・キャッシング機構
５１７  プリフェッチ論理
７３１  シフト及びマージ論理
【図１】
2006185442.tif 000005
【図２】
2006185442.tif 000006
【図３】
2006185442.tif 000007
【図４】
2006185442.tif 000008
【図５】
2006185442.tif 000009
【図６】
2006185442.tif 000010
【図７】
2006185442.tif 000011
【図８】
2006185442.tif 000012
【図９】
2006185442.tif 000013
【図１０】
2006185442.tif 000014
【図１１】
2006185442.tif 000015
【図１２】
2006185442.tif 000016