JP3846638B2 - 画素エンジン・データ・キャッシング機構 - Google Patents
画素エンジン・データ・キャッシング機構 Download PDFInfo
- Publication number
- JP3846638B2 JP3846638B2 JP53266497A JP53266497A JP3846638B2 JP 3846638 B2 JP3846638 B2 JP 3846638B2 JP 53266497 A JP53266497 A JP 53266497A JP 53266497 A JP53266497 A JP 53266497A JP 3846638 B2 JP3846638 B2 JP 3846638B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- texel
- cache
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Processing (AREA)
- Image Input (AREA)
- Image Generation (AREA)
Description
本発明は、全般的にはコンピュータ・システムに関し、詳細にはグラフィックス・コンピュータ・システム・キャッシングに関する。
発明の背景
パーソナル・コンピュータやワーク・ステーションなどのグラフィックス・コンピュータ・システムは、コンピュータ出力ディスプレイにビデオ画像およびグラフィック画像を表示する。近年、グラフィック・コンピュータ・システムに対する需要は常に増加している。コンピュータ技術の進歩によって、コンピュータ・ディスプレイ上での複雑なグラフィック画像が可能になっている。エンジニアおよび設計者は多くの場合、様々な計算作業に複雑なグラフィックス・シミュレーションを使用するコンピュータ支援設計システムを使用する。また、コンピュータ・システムが主流になるにつれて、マルチメディア、パーソナル・コンピュータ・ゲーム、その他のアプリケーションにおいて家庭で使用できる高性能なグラフィックス・コンピュータ・システムに対する需要が増加している。したがって、高性能なグラフィックス・コンピュータ・システムのコストを削減する努力も継続されている。
グラフィックス性能を高めるために設計者が使用する1つの従来技術の方法では、コンピュータ・システムにパイプライン・プロセッサが実装されている。当業者に知られているように、パイプライン処理では、順次命令ストリーム中のタスクの間の並行処理を使用して処理速度を向上させる。
第1図は、制御回路103とメモリ109とを含むパイプライン式プロセッサ105を実装した従来技術のコンピュータ・システム101の一部を示す。パイプライン・プロセッサ105を用いた場合、制御回路103からのタスクの実行が重ね合わされ、したがって各命令が同時に実行される。制御回路103はパイプライン・プロセッサ105の段0にタスクを発行する。このタスクは、パイプライン・プロセッサ105のN個の段を進み、最終的にメモリ109に出力される。
第1図に示したように、パイプライン・プロセッサ105は、グラフィックス処理のためにデータ情報を得るときにメモリ109にアクセスする必要がある。第1図で、パイプライン・プロセッサ105の段Mは、メモリ109から入力111を通してデータ情報を受け取る。当技術分野で良く知られているように、メモリへのアクセスは、システム性能全体に対して悪影響を与える。したがって、コンピュータ・システム設計者は、可能なときにはいつでも、性能を最大にするために高性能グラフィックス・コンピュータ・システム内のメモリ・アクセスの実行を最小限に抑える。
メモリ・アクセスを最小限に抑える1つの従来技術の解決策は、高速キャッシュ・メモリの実装である。第1図に示したように、キャッシュ107は、パイプライン・プロセッサ105とメモリ109との間に結合される。パイプライン・プロセッサ105の段Nからの出力は、キャッシュ107に出力され、最終的にメモリ109に書込まれる。メモリ109への読取りアクセスはキャッシュ107にキャッシュされ、したがってその後、キャッシュされたデータ・エントリは、メモリ109からではなくキャッシュ107から直接読み取ることができる。特に、キャッシュ107に「ヒット」がある場合、段Mは、要求されたデータをメモリ109からではなくキャッシュ107から入力111を通して受け取る。キャッシュ107は高速メモリであるので、低速メモリ109へのメモリ・アクセスが全体的に減少するため、全体的なコンピュータ・システム性能が向上する。
キャッシュ・メモリ107など従来技術のキャッシュ・メモリを使用すると、コンピュータ・システムはいくつかの悪影響を受ける。一例を挙げれば、従来技術のキャッシュ・メモリは一般にかなりの基板面積を占めるので、キャッシュ・メモリは通常、非常に高価である。そのため、低コスト・グラフィックス・コンピュータ・システムの設計者は一般に、大規模なキャッシュ・メモリを含めようとしない。
高性能なコンピュータ・グラフィックス・システム内のキャッシュ・メモリに関する他の問題は、そのようなキャッシュ・メモリが非常に高価であるだけでなく、場合によってはシステム性能をそれほど向上させないことである。その1つの理由は、特に複雑なグラフィックス・アプリケーションのためにメモリに記憶される特殊データの性質および構成によって説明することができる。従来技術のキャッシュ・メモリは一般に、複雑な高性能グラフィックス・コンピュータ・システムで使用されるいくつかの異なる種類のグラフィックス・データ・フォーマットに最適に適合するようになっていない。
したがって、画素エンジンなどのパイプライン式プロセッサと共に、グラフィックス・コンピュータ・システム内でメモリ・アクセスの数を削減するように動作するデータ・キャッシング機構が必要である。そのようなデータ・キャッシング機構は、グラフィックス・コンピュータ・システムで必要とされるメモリ帯域幅を減少させて最大の性能を与える。また、そのようなデータ・キャッシング機構は最小限の数のゲートを使用し、それによって回路基板面積を最小限に抑え、したがって全体的なシステム・コストを削減する。さらに、そのようなデータ・キャッシング機構は、グラフィックス・コンピュータ・システムで最大のキャッシング性能を与えるように、それぞれの異なるグラフィックス・データ・タイプまたはフォーマットに対処し、それらに適合するように最適化される。
発明の概要
パイプライン式プロセッサにデータを供給する方法および装置を開示する。一実施態様では、グラフィックス・コンピュータ・システムにおいてタスクを処理するように構成されたパイプライン・プロセッサが、データ・キャッシング機構からデータを受け取るように結合される。タスクがパイプライン・プロセッサ内の最初側の段を進む際、最初側の段によってデータ・キャッシング機構へのデータ要求が生成される。タスクがパイプライン・プロセッサ内の最初側の段からその後に続く段へ進む際、データ・キャッシング機構は、要求されたデータを得るにはどこにアクセスすべきかを判定し、次いで要求されたデータを得る。タスクがパイプライン・プロセッサの後続の段に到達すると、データ・キャッシング機構は、要求されたデータをパイプライン・プロセッサのその後続の段に与える。パイプライン・プロセッサの最初側の段が、データを求める要求を事前に、すなわち要求されたデータが実際に後続の段で必要とされる前に行うので、メモリ・アクセス遅延時間がなくなる。本発明の他の特徴および利点は、以下に記載した詳細な説明、図面、請求の範囲から明らかになろう。本発明の他の特徴および利点は、添付の図面と、以下に記載した詳細な説明から明らかになろう。
【図面の簡単な説明】
添付の図面では、本発明を一例として図示しており、制限として図示してはいない。
第1図は、パイプライン・プロセッサおよびキャッシュ・メモリを実装した簡略化された従来技術のコンピュータ・システムの図である。
第2図は、本発明の教示によるコンピュータ・システムのブロック図である。
第3図は、本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態のブロック図である。
第4図は、メモリ内のダブルワード境界に存在する所望のデータ・エントリの図である。
第5図は、本発明の教示によるプリフェッチ論理の一実施形態のブロック図形態の図である。
第6A図ないし第6F図は、本発明の教示による画素エンジン・データ・キャッシング機構の一実施形態で使用されるLRU置換方式のプロセス・フローを表す流れ図である。
第7図は、本発明の教示によるフェッチ論理で使用されるシフト及びマージ論理の一実施形態のブロック図形態の図である。
詳細な説明
要求されたデータをパイプライン式プロセッサに供給する方法および装置を開示する。以下の説明では、本発明を完全に理解していただくためにデータ・タイプ、ワード長など多数の特定の詳細を記載する。しかし、当業者には、本発明を実施する場合にこのような特定の詳細が必要とされないことが自明であろう。他の例では、本発明を不必要に暖昧にするのを回避するために、周知の材料および方法については詳しくは説明しない。
本明細書で説明する本発明は、グラフィックス・コンピュータ・システムで使用できる様々なデータ・タイプまたはフォーマットに画素エンジン・データ・キャッシング機構を使用することによってグラフィックス・コンピュータ・サブシステム内のメモリ要求の数を削減する。本明細書で説明する本発明のデータ・ディスプレイ・キャッシング機構で使用される最適化を用いた場合、最小限の回路基板面積が使用され、したがって全体的なコンピュータ・システム・コストが削減される。また、本発明は、本明細書で説明する画素エンジン・データ・キャッシング機構を用いた場合に、要求されたデータをほぼ遅延時間なしで受け取るパイプライン・プロセッサを使用することによって、コンピュータ・システム・スループットを最大にする。したがって、本発明は、減少されたメモリ・アクセス帯域幅を有する低コストの高性能グラフィックス・コンピュータ・システムを提供するのを助ける。
第2図には、本発明がブロック図形態で示されている。コンピュータ・システム201は、システム・メモリ206および通信バス208に結合された中央演算処理装置(CPU)204を含む。グラフィックス・サブシステム202は、通信バス208を通してCPU204と通信する。コンピュータ・システム201の出力されたグラフィックスおよびビデオは、グラフィックス・サブシステム202のビデオ出力回路212に結合された出力ディスプレイ214に表示される。グラフィックス・サブシステム202は、通信バス208に結合されたバス・インタフェース回路210も含む。制御回路203はバス・インタフェース210に結合される。システム性能を高めるために、パイプライン・プロセッサ205は、制御回路203に結合され、ローカル・メモリ回路209に記憶される出力情報を生成する。画素エンジン・データ・キャッシング機構215は、パイプライン・プロセッサ205からデータ要求213情報を受け取るように結合され、この要求に応答して、パイプライン・プロセッサ205に要求されたデータ211を生成する。ビデオ出力回路212は、ローカル・メモリ回路209からデータ情報を読み取り、次いで対応する画像を出力ディスプレイ214に出力する。
本発明の一実施形態では、バス・インタフェース回路210はPCIインタフェース回路である。この実施形態では、制御回路203は、縮小命令セット・コンピュータ(RISC)と、命令キャッシュなど対応するサポート回路と、VGA互換回路とを含む。ローカル・メモリ回路209は、ローカル・ダイナミック・ランダム・アクセス・メモリ(DRAM)と、リフレッシュ回路やメモリ・コントローラなど関連するサポート回路とを含む。ビデオ出力回路212は、陰極管コントローラ(CRTC)とビデオ先入れ先出しメモリ(FIFO)とを含む。この実施形態では、DRAM(図示せず)を除くグラフィックス・サブシステム202内のすべての装置が共通の基板上に存在する。
第2図に示したように、パイプライン・プロセッサ205は、制御回路203から段0の入力216で、実行すべきタスクを受け取る。段0は、対応する演算を実行し、それが完了すると、タスクはパイプライン・プロセッサ205内の次の段に進む。段0は、このタスクに関する処理を完了した後、制御回路203から次のタスクを受け取る準備をする。したがって、パイプライン・プロセッサ205内のすべてのN個の段が、関連するタスクに対する演算を実行しているとき、N個のタスクはほぼ同時に処理されている。タスクがパイプライン・プロセッサ205のすべてのN個の段を順次進んだ後、その結果得られた出力情報が段Nの出力218から生成され、ローカル・メモリ回路209に格納される。
当然のことながら、特定のタスクがパイプライン・プロセッサ205に入ると、パイプラインの後続の段での処理に必要なローカル・メモリ回路209内のある種のデータ・エントリを事前に知ることができる。たとえば、第2図を参照するとわかるように、タスクがパイプライン・プロセッサ205の段0に入ったと仮定する。タスクはパイプライン・プロセッサ205内で段Aに進む。段Aで、タスクが最終的にパイプライン・プロセッサ205の段Mに進んだときに段Mが特定のデータ情報を必要とすることがわかる。このデータが段Mで必要とされることは、この特定のタスクがまだ段Mに伝搬していなくてもわかる。
本発明は、段Aからデータ要求213を受け取るように構成された画素エンジン・データ・キャッシング機構215を用意することによって、パイプライン処理の特性を利用する。画素エンジン・データ・キャッシング機構は、データ要求213に応答して、段Mで必要とされるデータ情報を事前に知る。したがって、画素エンジン・データ・キャッシング機構215は、必要に応じて、タスクがパイプライン・プロセッサ205内で段Mに進んでいる間に、ローカル・メモリ回路209にアクセスし、要求されたデータを取り込むことができる。タスクが最終的に段Mに到達すると、画素エンジン・データ・キャッシング機構215は、要求されたデータ211をパイプライン・プロセッサ205の段Mに供給する。したがって、タスクが到達した直後に、段Mではすでに、必要なデータ情報が使用できるはずなので、通常メモリに必要とされる遅延時間はほぼなくなる。何らかの理由で、タスクた到達した直後に、要求されたデータが段Mで得られない場合でも、画素エンジン・データ・キャッシング機構215とパイプライン・プロセッサ205が同時に処理される際の、メモリ遅延時間は少なくとも短縮される。
当然のことながら、データ要求信号213がパイプライン・プロセッサ205の段Aからのみ発信され、要求されたデータ211がパイプライン・プロセッサ205の段Mにのみ与えられるという第2図は本発明の実施形態の一例を示すに過ぎない。
また、さらに、画素エンジン・データ・キャッシング機構215にキャッシュ・メモリを実装してローカル・メモリ回路209のメモリ・アクセス帯域幅を減少できることが理解されよう。画素エンジン・データ・キャッシング機構215ではすでにパイプライン・プロセッサ205の段Mへのメモリ・アクセス遅延時間がないので、画素エンジン・データ・キャッシング機構215からのローカル・メモリ回路209のメモリ・アクセスの数を削減され、全体的なシステム性能を向上させるうえで助けとなる。
第3図は、画素エンジン・データ・キャッシング機構315の一実施形態をブロック図形態で示す。画素エンジン・データ・キャッシング機構315は、フェッチ論理321に結合された中間待ち行列319に結合されたプリフェッチ論理317を含む。プリフェッチ論理317は、第2図のパイプライン・プロセッサ205からデータ要求313を受け取る。
プリフェッチ論理317は、メモリへのデータ要求325を生成するように構成され、ローカル・メモリ回路309がこの要求を受け取る。ローカル・メモリ回路309は、メモリへのデータ要求325に応答してデータを出力し、このデータをフィルFIFO323が受け取る。データはさらに、フェッチ論理321に与えられる。フェッチ論理321は、要求されたデータ311をパイプライン・プロセッサ205に供給する。
第3図に示したように、パイプラインからのデータ要求313は、アドレス信号313Aと、方向信号313Bと、バイト・イネーブル・マスク信号313Cと、タイプ信号313Dと、モード信号313Eとを含む。これらの信号について以下の表1で説明する。
本発明の一実施形態では、アドレス信号313Aは24ビット信号であり、要求されたデータが配置されたローカル・メモリ回路309内の開始バイト・アドレスを表す。この実施形態では、メモリ・エントリが64ビット・ダブルワードに構成され、パイプライン・プロセッサに供給される要求されたデータは32ビット・ワードまたは4バイト・ワードである。当然のことながら、本発明の他の実施形態は、64ビット・ダブルワード以外のデータをメモリから検索し、かつ/あるいは32ビット・ワード以外のデータを要求側パイプライン・プロセッサに供給することができる。
方向信号313Bは、ローカル・メモリ回路309からデータを読み取る特定の方向を示す1ビット・フラグである。たとえば、ローカル・メモリ回路309内でスキャン・ラインを更新している場合、そのスキャン・ライン内の個々のデータ・エントリ、たとえば画素を左から右へ、あるいは右から左へ更新することができる。以下で詳しく論じるように、本発明のキャッシュ・メモリ329の構成は、方向信号313Bで示されるローカル・メモリ回路309からデータ・エントリを読み取る方向に対して最適化される。
バイト・イネーブル・マスク信号313Cは4ビット信号であり、所与の開始バイト・アドレスから始まるどのバイトが画素エンジンによって要求されたかを示す。
タイプ信号313Dは2ビット信号であり、読取り要求の種類を示す。特に、本発明の一実施形態では、いくつかの異なるデータ・フォーマットまたはタイプが使用される。この実施形態では、タイプ信号「0」はテクセル・データ読取り要求を表す。タイプ信号「1」は画素データ読取り要求を表す。タイプ信号「2」はZデータ要求を表す。最後に、タイプ信号「3」は、テクセル専用モードで動作するパイプライン・プロセッサに対応するテクセル・データ要求を表す。
モード信号313Eは、本発明のパイプライン・プロセッサがテクセル専用モードで動作するかどうかを示すフラグである。本発明の一実施形態では、パイプライン・プロセッサは、パイプライン式プロセッサによってテクセル情報のみが処理されるテクセル専用モードで動作することもできる。非テクセル専用モードでは、本発明のパイプライン式プロセッサは、テクセル、画素、またはZ情報を処理することができる。以下で詳しく論じるように、本発明のキャッシュ・メモリ329は、パイプライン・プロセッサが任意の時に動作することのできるどちらかのモードに応答してその構成を適合させるように最適化される。
第3図に示したように、プリフェッチ論理317はタグ・メモリ333を含む。タグ・メモリ333は、任意の特定の時にキャッシュ・メモリ329に記憶されているデータ・エントリのローカル・メモリ・アドレスまたはタグを含む。本発明の一実施形態では、キャッシュ・メモリ329は、ローカル・メモリ回路309から得たダブルワード・エントリを含む4つのライン・バッファを含む。したがって、タグ・メモリ333は、キャッシュ・メモリ329の4つのライン・バッファに含まれるデータ・エントリの対応するダブルワード・メモリ・アドレスを含む。当然のことながら、本発明の他の実施形態は、4つよりも多く、あるいは少ないライン・バッファを備えることができる。
第5図は、プリフェッチ論理517をブロック図形態で示す図である。プリフェッチ論理517がパイプライン・プロセッサ205からデータ要求513を受け取った後、アドレス計算/割振り回路535は、ローカル・メモリ回路309の要求されたデータ・エントリのアドレス、あるいは必要に応じて複数のアドレスを算出する。アドレス計算/割振り回路535は、アドレス信号513Aおよびバイト・イネーブル・マスク信号513Cで示される所与のアドレスおよび要求されたバイトの知識を用いて、要求されたデータ311を最終的にパイプライン205に与えるにはローカル・メモリ回路309から1つのダブルワードを取り込まなければならないか、それとも2つのダブルワードを取り込まなければならないかを判定することができる。さらに、ローカル・メモリ回路309から2つのダブルワードを取り込まなければならない場合、アドレス計算/割振り回路535は、要求されたデータ311を与えるにはダブルワードをどのようにシフトしマスクしなければならないかを判定することができる。
第4図は、アドレス計算/割振り回路535によって実行されるプロセスを説明するうえで助けとなる図である。第4図に示したように、ローカル・メモリ回路401は、アドレス位置0ないし15に記憶されているバイト情報を含むと仮定する。次に、たとえば、要求されたデータ403がローカル・メモリ回路401のバイト位置7ないし10に配置されていると仮定する。したがって、開始バイト・メモリ・アドレス411はバイト7を指し示す。第4図に示したように、要求されたデータ403がダブルワード境界409上に存在する場合、要求されたデータ403のすべての4バイト(7ないし10)を得るには、第1のダブルワード405と第2のダブルワード407を共にローカル・メモリ回路401から取り込まなければならない。したがって、要求されたデータ403を得るには、アドレス0から始まる第1のダブルワード405と、アドレス8から始まる第2のダブルワード407をローカル・メモリ回路401から取り込まなければならない。たとえば、要求されたデータ403のすべての4バイトが第1のダブルワード405のバイト位置0ないし7に配置されている場合、要求されたデータ403を得るにはローカル・メモリ回路401から第1のダブルワード405を取り込むだけでよい。同様に、要求されたデータ403のすべての4バイトが第2のダブルワード407のメモリ位置8ないし15に存在する場合、要求されたデータ403を得るには第2のダブルワード407をローカル・メモリ回路401から取り込むだけでよい。
開始ダブルワード・アドレスが判定された後、このアドレスはアドレス計算/割振り回路535によって優先順位付けされる。この優先順位付けは、取り込んだダブルワードを後でキャッシュ・メモリ329にどのようにキャッシュするかを判定するために行われる。ローカル・メモリ回路309から1つのダブルワードを取り込むだけでよい場合、その1つのダブルワードに最高の優先順位が割り当てられるのは自明である。しかし、ローカル・メモリ回路309から2つのダブルワードを取りこまなければならない場合、キャッシングのために2つのダブルワードのうちの一方により高い優先順位が割り当てられる。
例示のために、再び第4図を参照する。この例では、ローカル・メモリ回路401から第1のダブルワード405と第2のダブルワード407の両方を取り込まなければならないと仮定する。データをローカル・メモリ回路401から右から左へ読み取る場合、第1のダブルワード405に最高の優先順位が割り当てられる。しかし、ダブルワード・エントリをローカル・メモリ回路401から左から右へ読み取る場合、第2のダブルワード407に最高の優先順位が割り当てられる。
本発明のアドレス計算/割振り回路535によって使用されるこの優先順位付け方式は、メモリを右から左へ読み取る場合、1番右のダブルワードをキャッシュする必要がある可能性は低く、後に続くメモリ・アクセスで1番左のダブルワードが再びアクセスされる可能性が高いことを利用している。逆に、ダブルワード・エントリをローカル・メモリ回路401から左から右へ読み取る場合、1番左のダブルワードが再びアクセスされる可能性は低く、後に続くメモリ・アクセスで1番右のエントリがアクセスされる可能性は高い。メモリの方向性読取りは、スキャン・ラインのためなどでメモリ・エントリにアクセスするときに重要である。
前述のように、アドレス計算/割振り回路535は、方向信号313Bによって、メモリがアクセスされている方向を知る。第5図に示したように、アドレス計算/割振り回路535は2つのメモリ・アドレスを判定すると共に、この2つのメモリ・アドレスに優先順位付けした後、最高優先順位メモリ・アドレスが第1のメモリ・アドレス541として出力される。必要に応じて、他のメモリ・アドレスが第2のメモリ・アドレス543として出力される。タグ比較回路537がこの2つのメモリ・アドレス信号541および543を受け取る。
タグ比較回路537は、第1のメモリ・アドレス541および第2のメモリ・アドレス543をタグ・メモリ533に記憶されているダブルワード・アドレスと比較する。タグ・メモリ533に記憶されているダブルワード・アドレスは、第3図のキャッシュ・メモリ329にキャッシュされているダブルワードに対応する。アドレス計算/割振り回路535によって算出されたダブルワードと、タグ・メモリ533に記憶されているアドレスが一致した場合は、キャッシュ「ヒット」がある。したがって、要求されたデータがすでにキャッシュ・メモリ329に記憶されているので、ローカル・メモリ回路309への追加のアクセスは必要とされない。したがって、本発明によってメモリ帯域幅が向上する。第1のメモリ・アドレス信号541と第2のメモリ・アドレス信号543の両方に関するキャッシュ「ヒット」がタグ・メモリ533内にあるかどうかをタグ比較回路537が判定することに留意されたい。
キャッシュ「ヒット」がなく、実際に第3図のローカル・メモリ回路309からデータを取り込む必要がある場合、タグ比較回路537は、メモリ525への対応するデータ要求を生成する。タグ比較回路537は、第1のキャッシュ・ヒット信号545と第2のキャッシュ・ヒット信号547も生成する。第1のキャッシュ・ヒット信号545は、キャッシュ・メモリ329に第1のメモリ・アドレス541が存在するかどうかをLRU管理回路に示す。第1のキャッシュ・メモリ・アドレス541が実際にキャッシュ・メモリ329に存在する場合、第1のキャッシュ・ヒット信号545は、どの特定のキャッシュ・ライン・エントリが第1のメモリ・アドレス541に対応するかも示す。同様に、第2のキャッシュ・ヒット信号547は、第2のメモリ・アドレス信号543に関連するキャッシュ・ヒットがあったかどうかと、キャッシュ・ヒットがあった場合に、キャッシュ・メモリ329内のどのキャッシュ・ライン・エントリが第2のメモリ・アドレス534に対応するかを示す。
前述のように、本発明の一実施形態では、パイプライン式プロセッサ205は2つの動作モード、すなわちテクセル専用モードと非テクセル専用モードとを有する。LRU管理回路539は、モード信号513Eを監視して、パイプライン・プロセッサ205がどちらのモードで動作しているかを判定する。パイプライン・プロセッサがテクセル専用モードで動作していることをモード信号513が示す場合、LRU管理回路539は、キャッシュ・メモリ329内のすべてのキャッシュ・ラインをテクセル情報に割り振る。しかし、パイプライン・プロセッサ205が非テクセル専用モードで動作していることをモード信号513Eが示す場合、LRU管理回路539は、キャッシュ・メモリ329内のキャッシュ・ラインの一部をテクセル情報に割り振り、キャッシュ・メモリ329の他の部分を画素情報とZ情報に割り振る。
したがって、本発明のキャッシュ・メモリは、パイプライン・プロセッサ205が動作している特定のモードに適合し、パイプライン・プロセッサ205が動作している特定のモード向けにキャッシュ・メモリ329を動的に最適化する。
一実施形態では、パイプライン・プロセッサがテクセル専用モードで動作している場合、キャッシュ・メモリ329のすべての4つのライン・バッファがテクセル情報に割り振られる。パイプライン・プロセッサが非テクセル専用モードで動作している場合、LRU管理回路539は、キャッシュ・メモリ329内の4つのライン・バッファのうちの2つをテクセル情報に割り振り、1つのライン・バッファを画素情報に割り振り、1つのライン・バッファをZ情報に割り振る。
テクセル情報に割り振られる4つのラインのうちの2つなど、特定のデータ・タイプにキャッシュ・メモリ329内の複数のキャッシュ・ライン・エントリを割り振る場合、LRU管理回路539は、キャッシュ・メモリ329内のキャッシュ・ラインを置換する際にLRUアルゴリズムを使用する。したがって、キャッシュ・メモリ329に記憶されているデータ・タイプ、最も「古い」ラインはどれか、あるいは最初に更新されたラインはどれかに応じて、ライン・バッファが置換される。ある種の状況では、LRU管理回路539は、任意のキャッシュ・メモリ329エントリを要求されたデータで置換することのないインテリジェンスを有するように最適化される。この状況が発生するのは、方向信号313Bで示された方向情報に基づいて、二度と必要とされない特定のダブルワードをローカル・メモリ回路309から取り込んだ場合である。
LRU管理回路539は、ダブルワード・エントリがどこから得られるか、すなわちローカル・メモリ回路309から得られるか、それともキャッシュ・メモリ329から得られるかを判定し、どこにダブルワード・エントリを記憶するか、すなわちキャッシュ・メモリ329内のどの特定のキャッシュ・メモリ・ラインに記憶するかを判定した後、第5図に示したようにSELECT_STORE_1信号527AおよびSELECT_STORE_2信号527Bを出力する。SELECT_STORE_1 527AおよびSELECT_STORE_2 527Bは、プリフェッチ論理517からシフト/マスク527Cとともに第3図の中間待ち行列319に出力される。
第6A図ないし第6F図は、LRU管理回路539の一実施形態のプロセス・フローを示すフローチャート601を示す。第6A図に示したように、決定ブロック603で、パイプライン・プロセッサがテクセル専用モードで動作しているか否かが判定される。パイプライン・プロセッサがテクセル専用モードで動作している場合、処理ブロック605が実行される。パイプライン・プロセッサが非テクセル専用モードで動作している場合は、プロセス・ブロック607が実行される。
第6B図は、テクセル専用モード処理ブロック605のプロセスを示す。まず、決定ブロック609ないし615に示したように第1優先順位メモリ・アドレスに対してキャッシュ・ライン・ヒットがあるかどうかが判定される。キャッシュ・ラインのうちのどれかにヒットがあった場合、処理ブロック617ないし623に示したように、ヒットがあった特定のキャッシュ・ラインに対応する値がSELECT_STORE_1に割り当てられる。どのキャッシュ・ラインにもキャッシュ・ヒットがなかった場合、処理ブロック625に示したように、ローカル・メモリからFIFOを介してデータが得られることを示す値がSELECT_STORE_1に割り当てられる。また、FIFOから受け取ったデータは、最初に更新されたキャッシュ・ラインまたは最も「古い」キャッシュ・ラインに置き換わる。
第1優先順位アドレスに対する処理が完了した後、決定ブロック627ないし633に示したように、第2優先順位メモリ・アドレスに対してキャッシュ・ヒットがあったかどうかが判定される。キャッシュ・ヒットがあった場合、処理ブロック637ないし643に示したように、特定のキャッシュ・ライン・ヒットに対応する値がSELECT_STORE_2に割り当てられる。第2優先順位メモリ・アドレスに対するキャッシュ・ライン・ヒットがなかった場合、FIFOからデータを受け取るべきであることを示す値がSELET_STORE_2に割り当てられる。また、決定ブロック609ないし615でヒットがあった場合、SELECT_STORE_2に示されているFIFOから受け取るデータが、最初に更新されたキャッシュ・ラインに置き換わる。一方、決定ブロック609ないし615に関連するキャッシュ・ライン・ヒットがなかった場合、決定ブロック635ならびに処理ブロック645および647に示したように、SELECT_STORE_2に示されているFIFOから受け取るデータが、2番目に更新されたキャッシュ・ラインに置き換わる。
第6C図は、非テクセル専用モード処理607に関連する処理を示す。まず、決定ブロック649および651に示したように、読取り要求のデータ・フォーマットがテクセル・タイプであるか、それとも画素タイプであるか、それともZタイプであるかが判定される。読取りタイプがテクセル・タイプである場合、非テクセル専用モード処理ブロック653が実行される。読取りタイプが画素タイプである場合、非テクセル専用モード画素処理ブロック655が実行される。最後に、読取りタイプがテクセル・タイプでも、あるいは画素タイプでもない場合、非テクセル専用モードZ処理ブロック657が実行される。
第6D図は、非テクセル専用モード・テクセル処理ブロック653に関する処理を示す。まず、決定ブロック659および661に示したように第1優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあるかどうかが判定される。第1優先順位メモリ・アドレスに関連するキャッシュ・ライン・ヒットがあった場合、処理ブロック667および669に示したように、ヒット・キャッシュ・ラインに対応する値がSELECT_STORE_1に割り当てられる。第1優先順位メモリ・アドレス・ヒットの場合にSELECT_STORE_1に値が割り当てられた後、決定ブロック677ないし679に示したように、第2優先順位メモリ・アドレスに関連するキャッシュ・ライン・ヒットがあったかどうかが判定される。この第2優先順位メモリ・アドレスに関連するキャッシュ・ヒットもあった場合、処理ブロック681および683に示したように、ヒット・キャッシュ・ラインに対応する値がSELECT_STORE_2に割り当てられる。この状況で第2優先順位メモリ・アドレス・キャッシュ・ヒットがなかった場合、処理ブロック685に示したように、FIFOからデータを受け取るべきであることを示す値がSELECT_STORE_2に割り当てられる。また、SELECT_STORE_2に示されているFIFOから受け取るデータは、データ・キャッシュには記憶されていない。SELECT_STORE_2は低優先順位ダブルワードに対応するので、特定のダブルワードがメモリにキャッシュされないことが事前に決定されている。
第1優先順位メモリ・アドレス・キャッシュ・ヒットがなかったと仮定すると、決定ブロック663および665に示したように、第2優先順位・メモリ・アドレス・キャッシュ・ヒットがあるかどうかが判定される。第2優先順位メモリ・アドレス・キャッシュ・ヒットがあり、第1優先順位メモリ・キャッシュ・ヒットがない場合、処理ブロック671および673に示したように、ヒット・キャッシュ・ラインに対応する値がSELECT_STORE_2に割り当てられ、FIFOからデータを受け取るべきであることを示す値がSELECT_STORE_1に割り当てられる。また、FIFOから受け取るデータは、SELECT_STORE_2に示されたキャッシュ・ライン内のデータに置き換わるように指定される。これは、SELECT_STORE_2に示されているデータがすでに、低優先順位ダブルワードであると判定されており、したがってこの低優先順位ダブルワードが、FIFOから取り込まれる高優先順位ダブルワードで置換されることから説明することができる。第1優先順位メモリ・キャッシュ・ヒットも、あるいは第2優先順位メモリ・キャッシュ・ヒットもなかった場合、FIFOからデータを受け取るべきであり、かつこのデータがキャッシュ・メモリには記憶されないことを示す値がSELECT_STORE_2に割り当てられる。さらに、処理ブロック675に示したように、FIFOからデータを受け取るべきであり、かつこのデータがキャッシュ・ライン0とキャッシュ・ライン1との間の最初に更新されたキャッシュ・ラインに記憶されることを示す値がSELECT_STORE_1に割り当てられる。この特定の実施形態では、キャッシュ・メモリのキャッシュ・ライン0および1がテクセル情報に割り振られることに留意されたい。
第6E図は、非テクセル専用モード画素処理ブロック655に関連する処理を示す。第6E図に示したように、まず、第1優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあったかどうかが判定される。このようなキャッシュ・ヒットがあった場合、処理ブロック691に示したように、キャッシュ・ライン2に対応する値がSELECT_STORE_1に割り当てられる。第1優先順位メモリ・アドレス・ヒットがあった場合、処理ブロック689に示したように、FIFOからデータを受け取るべきであり、かつこのデータがキャッシュ・ライン2内のデータに置き換わることを示す値がSELECT_STORE_1に割り当てられる。この特定の実施形態では、キャッシュ・ライン2が画素情報専用であることに留意されたい。
第6F図は、非テクセル専用モードZ処理ブロック657に関連する処理を示す。まず、決定ブロック693に示したように、第1優先順位メモリ・アドレスに関連するキャッシュ・ヒットがあったかどうかが判定される。ヒットがあった場合、キャッシュ・ライン3に対応する値がSELECT_STORE_1に割り当てられる。ヒットがなかった場合、FIFOからデータを受け取り、かつそのデータがキャッシュ・ライン3に記憶されることを示す値がSELECT_STORE_1に割り当てられる。非テクセル専用モードでは、キャッシュ・ライン3がZ情報専用であることに留意されたい。
再び第3図を参照すると、プリフェッチ論理317の出力はSELECT_STORE_1 327A、SELECT_STORE_2 327B、シフト/マスク327Cとして示されている。本発明の一実施形態では、この3つの信号はそれぞれ、4ビット信号である。中間待ち行列319は、第3図に示したように、SELECT_STORE_1 327A、SELECT_STORE_2 327B、シフト/マスク327Cを受け取り、この信号をフェッチ論理321に渡すように構成される。本発明の一実施形態では、中間待ち行列はFIFOである。信号は、要求を出した特定のタスクがパイプライン205の段Mに到達したときに、要求されたデータ311がパイプラインに供給されるように、中間待ち行列319で待機するに過ぎない。
第3図に示したように、フェッチ論理321はキャッシュ・メモリ329とシフト及びマージ論理331とを含む。シフト及びマージ論理331は、受け取った信号SELECT_STORE_1 327A、SELECT_STORE_2 327B、シフト/マスク327Cによって、(1)要求されたデータには1つのダブルワードが必要であるか、それとも2つのダブルワードが必要であるかと、(2)第1優先順位ダブルワードがキャッシュ・メモリ329から検索されるか、それともフィルFIFO323から検索されるかと、(3)ダブルワードがまだキャッシュ・メモリにキャッシュされていない場合に第1のダブルワードがどのキャッシュ・ラインに記憶されるかと、(4)第2優先順位ダブルワードが必要である場合に、第2優先順位ダブルワードがキャッシュ・メモリ329から得られるか、それともフィルFIFO323から得られるかと、(5)キャッシュ・ラインがある場合、第2のダブルワードがどのキャッシュ・ラインに記憶されるかと、(6)要求されたデータ311を適切に構築するには(必要に応じて)第1のダブルワードおよび第2のダブルワードをどのようにシフトしマージするかを知る。
第7図は、シフト及びマージ論理731をブロック図形態で示す。第7図に示したように、選択回路1 749Aと選択回路2 749Bは、キャッシュ・ライン0 729A、キャッシュ・ライン1 729B、キャッシュ・ライン2 729C、キャッシュ・ライン3 729D、FIFOデータ723Aおよび723Bから54ビット・ダブルワード値を受け取るように結合される。選択回路1 729AはSELECT_STORE_1 727Aを受け取るように結合される。選択回路2 749BはSELECT_STORE_2 727Bを受け取るように結合される。第7図に示した実施形態では、選択回路1 749Aおよび選択回路2 749Bを簡単なマルチプレクサ選択回路とみなすことができる。すなわち、SELECT_STORE_1 727AおよびSELECT_STORE_2 727Bの対応する入力に基づいて、5つの54ビット入力信号のうちの1つが出力される。第7図に示したように、選択回路1 749Aの出力はシフタ1 751Aに結合される。同様に、選択回路2 749Bの出力はシフタ2 751Bに結合される。シフタ1 751Aおよびシフタ2 751Bはシフト/マスク727Cを受け取るように結合される。シフタ1 751Aおよびシフタ2 751Bの32ビット出力は、パイプライン205に対して、要求された32ビット・データ711を生成するように論理OR回路753に論理ORされる。
シフタ1 751Aおよびシフタ2 751Bを例示するために、再び第4図を参照し以下の表2を参照する。
この例では、要求されたデータ403がローカル・メモリ回路401内のメモリ・アドレス7ないし10に存在すると仮定する。第4図に示したように、要求されたデータ403はダブルワード境界409上に存在する。この例ではさらに、ローカル・メモリ回路401からデータを読み取る方向が右から左であると仮定する。したがって、第1優先順位ダブルワードが第1のダブルワード405になり、第2の優先順位ダブルワードが第2のダブルワード407になる。
この例では、要求されたデータ403は、上記の表2の最後の行に示したケース番号11に対応する。したがって、第7図のシフト/マスク727Cは、ケース11に対応する値を含む。表2に示したように、第1のダブル・データ・ワード列は、ケース11では、第1のダブルワードのバイト番号7が要求された場合に、対応する第2のダブル・データ・ワード・バイトがバイト0、1、2になることを示す。再び第4図を参照するとわかるように、第2のダブルワード407のバイト0、1、2はローカル・メモリ回路401内のバイト8、9、10に対応する。したがって、再び第7図を参照し、引き続き同じ例を検討するとわかるように、シフト/マスク727Cからケース11を受け取ったシフタ1 751Aは、入力64ビットのバイト7に対応するビットが、ローカルOR入力753が受け取るシフタ1 751Aからの出力32ビット信号の第1バイトとして現れるようにシフトされるように64ビット入力をシフトさせる。同様に、シフタ2も、入力64ビット・データの0バイト、1バイト、2バイトが、論理OR回路753が受け取るシフタ2 751Bからの出力32ビット信号中の第2ビット、第3ビット、第4ビットとして現れるようにシフトされるようにケース11に対応するシフト/マスク727Cの値を受け取る。
当然のことながら、上記で与えた例を、論じていない表2の他の10個のケースに適用することもできる。たとえば、表2のケース10に対応する値をシフト/マスク727Cに割り当てる場合、シフタ1 751Aへの入力64ビット・データ・ストリームは、バイト6および7が出力32ビット・ワードの最初の2バイトとして現れるようにシフトされる。同様に、シフタ2への入力64ビット・データ・ストリームのバイト0および1は、シフタ2 751Bからの出力32ビット信号の最後の2バイトとして現れるようにシフトされる。したがって、再び第2図を参照するとわかるように、要求されたデータ211は画素エンジン・データ・キャッシング機構215からパイプライン・プロセッサ205の段Mに出力される。
したがって、要求されたデータをパイプライン・プロセッサに与える装置および方法について説明した。本発明を用いた場合、データをキャッシュして必要なメモリ・アクセスの数を削減することによって、グラフィックス・コンピュータ・システム内のメモリ帯域幅が効果的に減少する。また、本発明は、パイプライン・プロセッサが動作する特定のモードに基づいて関連するコンピュータ・グラフィックス・システムの性能を最大にするように最適化された適合キャッシュを採用できる。前述の実施形態では、パイプライン・プロセッサがテクセル専用モードで動作している場合、キャッシュはすべてのキャッシュ・ラインをテクセル情報に割り振るように最適化される。一方、パイプライン・プロセッサが非テクセル専用モードで動作している場合、4つのキャッシュ・ラインのうちの2つがテクセル情報に割り振られ、1つのキャッシュ・ラインは画素情報専用になり、最後のキャッシュ・ラインはZ情報専用になる。さらに、本発明は、メモリからデータが読み取られる方向と、任意の特定の時間にパイプライン・プロセッサが動作している特定のモードに基づく斬新な置換アルゴリズムをキャッシュ・メモリで使用する。このインテリジェント置換アルゴリズムを用いた場合、メモリ・アクセスはさらに削減され、したがってさらに、コンピュータ・システム内の利用可能なメモリ帯域幅が増加する。当然のことながら、本発明は、大規模で高価な従来技術のキャッシュ・メモリを使用する必要なしにデータ・キャッシング機構を使用する。
上記の詳細な説明では、要求されたデータをパイプライン・プロセッサに与える装置および方法について説明した。本発明の装置および方法について、その特定の例示的な実施形態を参照して説明した。しかし、本発明の広い趣旨および範囲から逸脱せずに本発明に様々な修正および変更を加えられることは明白である。したがって、本発明の明細書および図面は、制限的なものではなく例示的なものとみなすべきである。
Claims (21)
- パイプラインの所定の段においてタスクが必要とするデータについて、そのデータ要求が前記所定の段に先行する所定の段において事前に分かるパイプライン・プロセッサにおいて、要求されたデータを、パイプラインの前記先行する所定の段から見て後続する前記所定の段に供給する、データ供給装置であって、
パイプラインの前記先行する所定の段からのデータ要求を受けるプリフェッチ論理と、
前記プリフェッチ論理の出力信号に応じて、要求データを後続する前記所定の段に供給するフェッチ論理とを備え、
前記フェッチ論理にはキャッシング機構のキャッシュメモリが備えられ、キャッシング機構のタグメモリが前記プリフェッチ論理に備えられ、
前記プリフェッチ論理は、受けたデータ要求についてキャッシュヒットがないと前記タグメモリの利用によって判断されたときには、要求されたデータをメモリからフェッチするデータ要求を発生させ、かつ、受けたデータ要求に応じて、キャッシュヒットであれば、要求されたデータが含まれるキャッシュラインを含む記憶位置を示す前記出力信号を生成し、その出力信号はそれを受ける中間待ち行列を介して、データを必要とする当該タスクが前記所定の段に到達したときに要求データが前記所定の段に供給されるように、前記フェッチ論理に送られる
ことを特徴とする、データ供給装置。 - パイプライン・プロセッサが、テクセル専用動作モードと非テクセル専用動作モードとを有するように構成されることを特徴とする請求項1に記載の装置。
- データが、テクセル・データとピクセル・データとを含むことを特徴とする請求項2に記載の装置。
- キャッシュ・メモリが、パイプライン・プロセッサがテクセル専用動作モードで動作するように構成されているときに、テクセル・データのみをキャッシュするように構成されることを特徴とする請求項3に記載の装置。
- キャッシュ・メモリは、パイプライン・プロセッサが非テクセル専用動作モードで動作するように構成されているときには、キャッシュ・メモリの第1の部分にテクセル・データのみをキャッシュし、キャッシュ・メモリの第2の部分にピクセル・データのみをキャッシュするように構成されることを特徴とする請求項4に記載の装置。
- データ要求がモード信号を含み、そのモード信号は、パイプライン・プロセッサが非テクセル専用動作モードで動作しているか否かを示す、ことを特徴とする請求項2に記載の装置。
- データ要求には、
要求されたデータのメモリ・アドレスを示すアドレス信号と、
要求されたデータをメモリから読み取る方向を示す方向信号と、
要求されたデータのシフト量を示すシフト/マスク信号と、
要求されたデータの種類を示すタイプ信号と、
パイプライン・プロセッサがテクセル専用動作モードで動作しているか、それとも非テクセル専用動作モードで動作しているかを示すモード信号と
が含まれることを特徴とする請求項6に記載の装置。 - 要求されたデータをメモリから読み取る方向に対応している、要求されたデータの部分のみが、キャッシュ・メモリにキャッシュされることを特徴とする請求項7に記載の装置。
- フェッチ論理がシフト及びマージ論理を含み、シフト及びマージ論理が、シフト/マスク信号に応答して第1のダブル・ワードと第2のダブル・ワードのバイトをシフトさせマージさせて、要求されたデータを生成するように構成されることを特徴とする請求項7に記載の装置。
- 中間待ち行列が、プリフェッチ論理とフェッチ論理との間に結合されていることを特徴とする請求項1に記載の装置。
- データがさらに、Zデータを含み、キャッシュ・メモリは、パイプライン・プロセッサが非テクセル専用動作モードで動作するように構成されているときには、キャッシュ・メモリの第3の部分にZデータのみをキャッシュするように構成されることを特徴とする請求項5に記載の装置。
- コンピュータ・システムであって、
中央演算処理装置(CPU)と、
CPUに結合されたシステム・メモリと、
CPUに結合されたバスと、
データを生成し出力ディスプレイ上に表示するためにバスに結合されたグラフィックス・サブシステムとを備え、
このグラフィックス・サブシステムが、パイプライン・プロセッサと、出力ディスプレイにデータを出力するように構成されたビデオ出力回路とを備え、
前記パイプライン・プロセッサは、
パイプラインの所定の段においてタスクが必要とするデータについて、そのデータ要求が前記所定の段に先行する所定の段において事前に分かり、要求されたデータを、パイプラインの前記先行する所定の段から見て後続する前記所定の段に供給するよう構成されており、そして、
パイプラインの前記先行する所定の段からのデータ要求を受けるプリフェッチ論理と、
前記プリフェッチ論理の出力信号に応じて、要求データを後続する前記所定の段に供給するフェッチ論理とを備え、
前記フェッチ論理にはキャッシング機構のキャッシュメモリが備えられ、キャッシング機構のタグメモリが前記プリフェッチ論理に備えられ、
前記プリフェッチ論理には、受けたデータ要求についてキャッシュヒットがないと前記タグメモリの利用によって判断されたときには、要求されたデータをメモリからフェッチするデータ要求を発生させ、かつ、受けたデータ要求に応じて、キャッシュヒットであれば、要求されたデータが含まれるキャッシュラインを含む記憶位置を示す前記出力信号を生成し、その出力信号はそれを受ける中間待ち行列を介して、データを必要とする当該タスクが前記所定の段に到達したときに要求データが前記所定の段に供給されるように、前記フェッチ論理に送られる
ことを特徴とする、コンピュータ・システム。 - パイプライン・プロセッサが、テクセル専用動作モードと非テクセル専用動作モードとを有するように構成され、データ要求がモード信号を含み、そのモード信号は、パイプライン・プロセッサが非テクセル専用動作モードで動作しているか否かを示す、ことを特徴とする請求項12に記載のコンピュータ・システム。
- データが、テクセル・データとピクセル・データとを含むことを特徴とする請求項13に記載のコンピュータ・システム。
- パイプライン・プロセッサがテクセル専用動作モードで動作する第1の構成では、キャッシュ・メモリがテクセル・データのみを記憶し、パイプライン・プロセッサが非テクセル専用動作モードで動作する第2の構成では、キャッシュ・メモリの第1の部分がテクセル・データのみを記憶し、キャッシュ・メモリの第2の部分がピクセル・データのみを記憶することを特徴とする請求項14に記載のコンピュータ・システム。
- 要求されたデータがキャッシュ・メモリにキャッシュされていないときには、第1のダブル・ワードと第2のダブル・ワードがメモリからフェッチされることを特徴とする請求項12に記載のコンピュータ・システム。
- 第1および第2のダブル・ワードのうちの一方のみがキャッシュ・メモリにキャッシュされることを特徴とする請求項16に記載のコンピュータ・システム。
- 第1および第2のダブル・ワードのうちのキャッシュされる一方が、メモリから第1および第2のダブル・ワードが読み取られる方向に対応することを特徴とする請求項17に記載のコンピュータ・システム。
- 第1のダブル・ワードおよび第2のダブル・ワードがデータ・キャッシング機構によってシフトされマージされて、要求されたデータが構築されることを特徴とする請求項16に記載のコンピュータ・システム。
- データがさらに、Zデータを含み、非テクセル専用動作モードでは、Zデータがキャッシュ・メモリの第3の部分に記憶されることを特徴とする請求項15に記載のコンピュータ・システム。
- グラフィックス・サブシステムがさらに、ローカル・メモリとデータ・キャッシング機構との間に結合された先入れ先出し(FIFO)メモリを備えることを特徴とする請求項12に記載のコンピュータ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/616,540 US5761720A (en) | 1996-03-15 | 1996-03-15 | Pixel engine pipeline processor data caching mechanism |
US08/616,540 | 1996-03-15 | ||
PCT/US1997/003389 WO1997034231A1 (en) | 1996-03-15 | 1997-03-04 | Pixel engine data caching mechanism |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005367805A Division JP4181576B2 (ja) | 1996-03-15 | 2005-12-21 | キャッシング機構 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000507010A JP2000507010A (ja) | 2000-06-06 |
JP3846638B2 true JP3846638B2 (ja) | 2006-11-15 |
Family
ID=24469917
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53266497A Expired - Fee Related JP3846638B2 (ja) | 1996-03-15 | 1997-03-04 | 画素エンジン・データ・キャッシング機構 |
JP2005367805A Expired - Fee Related JP4181576B2 (ja) | 1996-03-15 | 2005-12-21 | キャッシング機構 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005367805A Expired - Fee Related JP4181576B2 (ja) | 1996-03-15 | 2005-12-21 | キャッシング機構 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5761720A (ja) |
JP (2) | JP3846638B2 (ja) |
CN (1) | CN1133934C (ja) |
AU (1) | AU2195697A (ja) |
CA (1) | CA2249392C (ja) |
WO (1) | WO1997034231A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2530598A1 (en) | 2011-05-18 | 2012-12-05 | Canon Kabushiki Kaisha | Data supply device, cache device, data supply method, and cache method |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987567A (en) * | 1996-09-30 | 1999-11-16 | Apple Computer, Inc. | System and method for caching texture map information |
US5933855A (en) | 1997-03-21 | 1999-08-03 | Rubinstein; Richard | Shared, reconfigurable memory architectures for digital signal processing |
US6895452B1 (en) | 1997-06-04 | 2005-05-17 | Marger Johnson & Mccollom, P.C. | Tightly coupled and scalable memory and execution unit architecture |
US7136068B1 (en) * | 1998-04-07 | 2006-11-14 | Nvidia Corporation | Texture cache for a computer graphics accelerator |
WO1999060480A1 (en) * | 1998-05-15 | 1999-11-25 | Richard Rubinstein | Shared, reconfigurable cache memory execution subsystem |
US7047391B2 (en) * | 1998-09-14 | 2006-05-16 | The Massachusetts Institute Of Technology | System and method for re-ordering memory references for access to memory |
US6452603B1 (en) | 1998-12-23 | 2002-09-17 | Nvidia Us Investment Company | Circuit and method for trilinear filtering using texels from only one level of detail |
US6919895B1 (en) | 1999-03-22 | 2005-07-19 | Nvidia Corporation | Texture caching arrangement for a computer graphics accelerator |
AU2000237002A1 (en) * | 2000-02-16 | 2001-08-27 | Intel Corporation | Processor with cache divided for processor core and pixel engine uses |
US6734867B1 (en) * | 2000-06-28 | 2004-05-11 | Micron Technology, Inc. | Cache invalidation method and apparatus for a graphics processing system |
US6665775B1 (en) | 2000-09-22 | 2003-12-16 | Intel Corporation | Cache dynamically configured for simultaneous accesses by multiple computing engines |
US6784892B1 (en) * | 2000-10-05 | 2004-08-31 | Micron Technology, Inc. | Fully associative texture cache having content addressable memory and method for use thereof |
US6801208B2 (en) | 2000-12-27 | 2004-10-05 | Intel Corporation | System and method for cache sharing |
KR100505695B1 (ko) * | 2003-07-12 | 2005-08-03 | 삼성전자주식회사 | 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법 |
US7769950B2 (en) * | 2004-03-24 | 2010-08-03 | Qualcomm Incorporated | Cached memory system and cache controller for embedded digital signal processor |
US7724263B2 (en) * | 2004-05-14 | 2010-05-25 | Nvidia Corporation | System and method for a universal data write unit in a 3-D graphics pipeline including generic cache memories |
US7868902B1 (en) | 2004-05-14 | 2011-01-11 | Nvidia Corporation | System and method for pixel data row forwarding in a 3-D graphics pipeline |
WO2005116982A1 (en) * | 2004-05-25 | 2005-12-08 | Ssd Company Limited | Data processing unit, drawing apparatus and pixel packer |
JP2006065805A (ja) * | 2004-08-30 | 2006-03-09 | Canon Inc | 画像処理装置及び制御方法 |
US8089486B2 (en) * | 2005-03-21 | 2012-01-03 | Qualcomm Incorporated | Tiled prefetched and cached depth buffer |
US7843460B2 (en) * | 2007-04-13 | 2010-11-30 | Seiko Epson Corporation | Method and apparatus for bandwidth corruption recovery |
CN102004663B (zh) * | 2009-09-02 | 2017-03-01 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
US8150215B2 (en) * | 2010-03-24 | 2012-04-03 | Altek Corporation | Routable image pipeline device |
US9047686B2 (en) * | 2011-02-10 | 2015-06-02 | Qualcomm Incorporated | Data storage address assignment for graphics processing |
US9239793B2 (en) * | 2011-12-13 | 2016-01-19 | Ati Technologies Ulc | Mechanism for using a GPU controller for preloading caches |
US9824013B2 (en) * | 2012-05-08 | 2017-11-21 | Qualcomm Incorporated | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US10181176B2 (en) * | 2016-03-04 | 2019-01-15 | Samsung Electronics Co., Ltd. | Efficient low-power texture cache architecture |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4794524A (en) * | 1984-07-03 | 1988-12-27 | Zilog, Inc. | Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit |
DE3816310A1 (de) * | 1987-06-26 | 1989-01-12 | Bbc Brown Boveri & Cie | Verfahren zur anreicherung von titan in der unmittelbaren oberflaechenzone eines bauteils aus einer mindestens 2,0 gew.-% titan enthaltenden nickelbasis-superlegierung und verwendung der nach dem verfahren angereicherten oberflaeche |
US5136696A (en) * | 1988-06-27 | 1992-08-04 | Prime Computer, Inc. | High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions |
US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
DE69122147T2 (de) * | 1990-03-16 | 1997-01-30 | Hewlett Packard Co | Verfahren und Einrichtung zum Abschneiden von Pixeln von Quellen- und Zielfenstern in einem graphischen System |
US5185856A (en) * | 1990-03-16 | 1993-02-09 | Hewlett-Packard Company | Arithmetic and logic processing unit for computer graphics system |
JPH0444136A (ja) * | 1990-06-11 | 1992-02-13 | Nec Corp | メモリアクセス制御装置 |
US5421028A (en) * | 1991-03-15 | 1995-05-30 | Hewlett-Packard Company | Processing commands and data in a common pipeline path in a high-speed computer graphics system |
DE4227733A1 (de) * | 1991-08-30 | 1993-03-04 | Allen Bradley Co | Konfigurierbarer cachespeicher und datenverarbeitungssystem mit einem derartigen speicher |
US5454076A (en) * | 1994-03-02 | 1995-09-26 | Vlsi Technology, Inc. | Method and apparatus for simultaneously minimizing storage and maximizing total memory bandwidth for a repeating pattern |
US5579473A (en) * | 1994-07-18 | 1996-11-26 | Sun Microsystems, Inc. | Interface controller for frame buffer random access memory devices |
-
1996
- 1996-03-15 US US08/616,540 patent/US5761720A/en not_active Expired - Lifetime
-
1997
- 1997-03-04 CA CA002249392A patent/CA2249392C/en not_active Expired - Fee Related
- 1997-03-04 CN CNB971944008A patent/CN1133934C/zh not_active Expired - Fee Related
- 1997-03-04 JP JP53266497A patent/JP3846638B2/ja not_active Expired - Fee Related
- 1997-03-04 AU AU21956/97A patent/AU2195697A/en not_active Abandoned
- 1997-03-04 WO PCT/US1997/003389 patent/WO1997034231A1/en active Application Filing
- 1997-11-24 US US08/976,748 patent/US6157987A/en not_active Expired - Lifetime
-
2005
- 2005-12-21 JP JP2005367805A patent/JP4181576B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2530598A1 (en) | 2011-05-18 | 2012-12-05 | Canon Kabushiki Kaisha | Data supply device, cache device, data supply method, and cache method |
US9235522B2 (en) | 2011-05-18 | 2016-01-12 | Canon Kabushiki Kaisha | Data supply device, cache device, data supply method, and cache method |
Also Published As
Publication number | Publication date |
---|---|
US5761720A (en) | 1998-06-02 |
AU2195697A (en) | 1997-10-01 |
CA2249392A1 (en) | 1997-09-18 |
JP2000507010A (ja) | 2000-06-06 |
US6157987A (en) | 2000-12-05 |
CA2249392C (en) | 2005-07-12 |
CN1133934C (zh) | 2004-01-07 |
WO1997034231A1 (en) | 1997-09-18 |
CN1217799A (zh) | 1999-05-26 |
JP4181576B2 (ja) | 2008-11-19 |
JP2006185442A (ja) | 2006-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4181576B2 (ja) | キャッシング機構 | |
US10365930B2 (en) | Instructions for managing a parallel cache hierarchy | |
US7415575B1 (en) | Shared cache with client-specific replacement policy | |
US6434639B1 (en) | System for combining requests associated with one or more memory locations that are collectively associated with a single cache line to furnish a single memory operation | |
US8244984B1 (en) | System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy | |
US5353426A (en) | Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete | |
US6889291B1 (en) | Method and apparatus for cache replacement for a multiple variable-way associative cache | |
US6856320B1 (en) | Demand-based memory system for graphics applications | |
US7278008B1 (en) | Virtual address translation system with caching of variable-range translation clusters | |
US7334108B1 (en) | Multi-client virtual address translation system with translation units of variable-range size | |
US8949541B2 (en) | Techniques for evicting dirty data from a cache using a notification sorter and count thresholds | |
US7475190B2 (en) | Direct access of cache lock set data without backing memory | |
JPH10504124A (ja) | 2方向セットアソシエーテイブ・キャッシュ・メモリ | |
US8060700B1 (en) | System, method and frame buffer logic for evicting dirty data from a cache using counters and data types | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
US6889289B2 (en) | Method of distributed caching | |
EP0676690B1 (en) | Delayed write of store instruction in processor device | |
JPH11288386A (ja) | コンピュータシステム | |
US5761709A (en) | Write cache for servicing write requests within a predetermined address range | |
US6570573B1 (en) | Method and apparatus for pre-fetching vertex buffers in a computer system | |
US7797492B2 (en) | Method and apparatus for dedicating cache entries to certain streams for performance optimization | |
JP2006072832A (ja) | 画像処理システム | |
CA2502390C (en) | Pixel engine data caching mechanism | |
JPH06103169A (ja) | 中央演算処理装置のリードデータプリフェッチ機構 | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050621 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050921 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051221 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060712 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060727 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060817 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130901 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |