(57)【要約】タイル式メモリからデータを読み取るための方法、装置、システムおよび媒体。いくつかの実施形態では、方法は、一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなくタイル式メモリから二つのキャッシュ・ラインを要求し、二つの要求されたキャッシュ・ラインに関連付けられたデータを返すことを含む。
2009521766.tif 000002
【特許請求の範囲】
【請求項１】
タイル式メモリからデータを読み取る方法であって：
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求する段階と；
二つの要求されたキャッシュ・ラインに関連付けられたデータを返す段階とを含む、
方法。
【請求項２】
前記二つのキャッシュ・ラインを並列に割り当てる段階と；
前記二つのキャッシュ・ラインの整合性を並列に維持する段階と；
前記二つのキャッシュ・ラインに関連付けられたデータをデータ・キャッシュから並列に読み取る段階とを含む、
請求項１記載の方法。
【請求項３】
前記割り当てる段階が：
前記タイル式X読み取り要求のためのアドレスを二つのキャッシュ・タグ・ランダム・アクセス・メモリ（RAM）に対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別する段階と；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込む段階と；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込む段階とを有する、
請求項２記載の方法。
【請求項４】
前記二つのキャッシュ・タグRAMがそれぞれメモリの第一のバンクおよび第二のバンクを含む、請求項３記載の方法。
【請求項５】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標を提供する段階をさらに有する、請求項１記載の方法。
【請求項６】
前記整合性を維持する段階が、仕掛かりのキャッシュ読み取り要求の使用中検査を含む、請求項２記載の方法。
【請求項７】
前記整合性を維持する段階が、二つの読み取り遅延先読み先出しバッファ（FIFO）によって実行される、請求項２記載の方法。
【請求項８】
前記データを読み取る段階が、データ・キャッシュからの前記二つのキャッシュ・ラインのそれぞれについてキャッシュ項目を同時に読み取ることを含み、前記データ・キャッシュはそれに関連付けられたメモリの二つのバンクを含む、請求項２記載の方法。
【請求項９】
ホスト・プロセッサと；
前記ホスト・プロセッサに結合されたグラフィック・エンジンと；
前記グラフィック・エンジンに結合されたタイル式メモリとを有する、
タイル式メモリからのデータを読む装置であって、前記グラフィック・エンジンが：
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求し；
二つの要求されたキャッシュ・ラインに関連付けられたデータを返すよう動作する、
装置。
【請求項１０】
前記二つのキャッシュ・ラインを並列に割り当てるための第一のバンクおよび第二のバンクを有するキャッシュ・タグ・ランダム・アクセス・メモリ（RAM）と；
前記二つのキャッシュ・ラインの整合性を並列に維持する一対の先読み先出しバッファ（FIFO）と；
前記二つのキャッシュ・ラインに関連付けられたデータをそこから読み取るための第一のバンクおよび第二のバンクを有するキャッシュ・データRAMとを有する、
請求項９記載の装置。
【請求項１１】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標が提供される、請求項９記載の装置。
【請求項１２】
前記グラフィック・エンジンが：
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグRAMに対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別し；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込み；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込むよう動作する、
請求項１０記載の装置。
【請求項１３】
実行可能なプログラミング命令が記憶された記憶媒体であって、前記記憶されたプログラム命令が：
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求する命令と；
二つの要求されたキャッシュ・ラインに関連付けられたデータを返す命令とを含む、
記憶媒体。
【請求項１４】
前記二つのキャッシュ・ラインを並列に割り当てる命令と；
前記二つのキャッシュ・ラインの整合性を並列に維持する命令と；
前記二つのキャッシュ・ラインに関連付けられたデータをデータ・キャッシュから並列に読み取る命令とを含む、
請求項１３記載の記憶媒体。
【請求項１５】
前記割り当てる命令が：
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグ・ランダム・アクセス・メモリ（RAM）に対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別する命令と；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込む命令と；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込む命令とを有する、
請求項１４記載の記憶媒体。
【請求項１６】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標を提供する命令をさらに有する、請求項１３記載の記憶媒体。
【請求項１７】
前記整合性を維持する命令が、仕掛かりのキャッシュ読み取り要求の使用中検査を含む、請求項１４記載の記憶媒体。
【請求項１８】
前記データを読み取る命令が、データ・キャッシュからの前記二つのキャッシュ・ラインのそれぞれについてキャッシュ項目を同時に読み取る命令を含み、前記データ・キャッシュはそれに関連付けられたメモリの二つのバンクを含む、請求項１４記載の記憶媒体。
【請求項１９】
ホスト・プロセッサと；
前記ホスト・プロセッサに結合されたグラフィック・エンジンと；
前記グラフィック・エンジンに結合されたタイル式メモリと；
前記ホスト・プロセッサに結合された倍速データ・レート・メモリとを有する、
タイル式メモリからのデータを読むシステムであって、前記グラフィック・エンジンが：
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求し；
二つの要求されたキャッシュ・ラインに関連付けられたデータを返すよう動作する、
システム。
【請求項２０】
前記グラフィック・エンジンおよび前記タイル式メモリが共通のプリント回路基板（PCB）上に一緒に位置されている、請求項１９記載のシステム。
【請求項２１】
前記グラフィック・エンジンが：
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグRAMに対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別し；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込み；
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込むよう動作する、
請求項１９記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
キャッシュ・メモリ・システムは、コンピュータまたはその他の電子システムにおいて、一般にメモリ・アクセス・スピードを改善するために使用されうる。キャッシュ・サイズおよびスピードを上げることは、システム・パフォーマンスを改善する傾向がありうる。しかしながら、キャッシュ・サイズおよびスピードを上げることはコスト高であることがあり、および／またはキャッシュ・サイズおよびスピードの進歩によって限定されることがある。さらに、全体的なシステム・パフォーマンス上の利得と全体的なシステム・コストとをバランスさせることが望ましいことがありうる。
【０００２】
キャッシュ・メモリ・システムにおいては、直接マッピング（direct  mapping）、完全連想式マッピング（fully  associative  mapping）およびセット連想式マッピング（set-associative  mapping）といった種々の型のマッピング方法が使用されうる。セット連想式マッピング・システムについて、キャッシュ・メモリはいくつかの「セット」に分割され、各セットはいくつかの「路（way）」またはキャッシュ・ライン（cache  line）を含む。各セット内ではアドレスの検索は完全に連想式である。各セットにはn個の位置または路がありうる。たとえば、4路の（4-way）セット連想式キャッシュ・メモリでは、データ・ソースでのアドレスは、利用可能性に依存して、所与のセットの4つの路のうちの任意の一つにマッピングされてよい。8路の（8-way）セット連想式キャッシュ・メモリでは、データ・ソースでの前記アドレスは、所与のセット内の8つの路のうちの一つにマッピングされてよい。
【０００３】
メモリ管理はグラフィック処理およびその際遭遇する大量のデータの操作にとって決定的である。3D（三次元）テクスチャリングを含むグラフィックのための処理要求が増すにつれて、メモリ割り当ておよびマッピングのさまざまな側面が、グラフィック処理を向上させるための改善について考察されてきた。いくつかの事例では、グラフィック・データのためのメモリが複数のタイルに編成されることがある。編成されたメモリは、線形に編成されたメモリに比較して、グラフィック・データへのより高速なアクセスを許容しうる。
【０００４】
いくつかの事例では、タイル編成のメモリ・マッピングのためのシステムおよび方法は「y中心（y-major）」または「タイル式Y（tiled-Y）」読み取り要求動作の処理を最適化することに向けられることがある。タイル式Y方式では、Y方向の二つの相続くデータ構造が、メモリ内で連続している。また、Y中心タイリングは、グラフィック・テクスチャー用途のためのメモリの編成の効率的な方法でありうる。いくつかのグラフィック・エンジンおよびグラフィック・システムは、プロセッサからキャッシュ・メモリにY方向にテクスチャー・データをロードしていく。したがって、グラフィック・エンジンまたはシステムは、グラフィック・データ（たとえばテクスチャー・データ）をY方向に読んでいくよう構成されるまたは最適化される。そのような最適化は、タイル式Y読み取り要求が1クロック・サイクルで処理されることを許容する。しかしながら、ある型の動作のための最適化は、他の動作に関して望ましくない結果を有することがある。
【０００５】
本発明は、例として図面で図解されている。図面において、同様の参照符号は類似の要素を示す。図面が本発明のさまざまな実施形態を開示するのは単に解説の目的であって、本発明の範囲を限定することは意図されていない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以下の詳細な記述は、本発明の十全な理解を提供するために数多くの個別的詳細を記載する。しかしながら、当業者は本発明がこうした個別的詳細なしでも実施できることを理解するであろう。その一方で、よく知られた方法、手順、プロトコル、コンポーネントおよび回路は、本発明を埋没させないよう、詳細には記述していない。
【０００７】
本願の諸実施形態は、ハードウェアもしくはソフトウェアまたは両者の組み合わせで実装されてもよい。いくつかの実施形態は、少なくとも一つのプロセッサ、データ記憶システム（揮発性および不揮発性メモリおよび／または記憶素子を含む）、少なくとも一つの入力装置および少なくとも一つの出力装置を有するプログラム可能システム上で実行されるコンピュータ・プログラムとして実装されてもよい。入力データにプログラム・コードが適用され、本稿に記載される機能が実行され、出力情報が生成されうる。出力情報は一つまたは複数の出力装置に加えられてもよい。本稿の目的については、処理システムは、たとえばデジタル信号プロセッサ（DSP）、マイクロコントローラ、特定用途向け集積回路（ASIC）またはマイクロプロセッサといったプロセッサを有する任意のシステムを含みうる。
【０００８】
命令およびプログラムは、汎用または専用のプログラム可能処理システムによって可読な記憶媒体またはデバイス（たとえば、ハードディスク・ドライブ、フロッピー（登録商標）ディスク・ドライブ、読み取り専用メモリ（ROM）、CD-ROMデバイス、フラッシュ・メモリ・デバイス、デジタル多用途ディスク（DVD）または他の記憶デバイス）上に記憶されてもよく、前記記憶媒体またはデバイスが前記処理システムによって読まれたときに、本稿で記載される動作を実行するよう前記処理システムを構成し、動作させてもよい。いくつかの実施形態は、処理システムと一緒に使うよう構成された機械可読記憶媒体として実装され、そのように構成された記憶媒体が前記処理システムを、本稿で記載される機能を実行するよう特定かつ所定の仕方で動作させると考えられてもよい。
【０００９】
いくつかの実施形態では、グラフィック処理システムは、タイル式に編成されたメモリを含んでいてもよい。たとえばディスプレイ画面は長方形の領域すなわちタイルに効率的に分割されうるので、そのようなメモリ編成は、高速かつ効率的なメモリ・アクセスをもたらしうる。タイル分割（タイリング）は、グラフィック・エンジンが、メモリ・サブシステムにおける過剰な数のページ・ミスを引き起こすことなく（すなわち、ヒットを改善する）、より高速にメモリにアクセスすることを許容しうる。グラフィック・メモリは、X中心タイリングおよびY中心タイリングといった、いくつかの異なるフォーマットでタイル分割されうる。X中心タイリング（X-major  tiling）またはタイル式Xフォーマット（tiled-X  format）では、X方向の二つの相続くデータ構造（たとえば、4倍精度語（quadword））が物理的なメモリ内で連続している。Y中心タイリング（Y-major  tiling）では、Y方向の二つの相続くデータ構造（たとえば、4倍精度語）がメモリ内で連続している。当業者は、グラフィック・エンジン、プロセッサ、システムまたはサブシステムが、グラフィック・テクスチャーの正方形の領域、テクセルに対して作用してもよいことを理解するであろう。
【００１０】
X方向でのタイル式編成のメモリのキャッシュ読み取り要求（すなわち、タイル式Xフォーマットの読み取り要求）について、いくつかのメモリ・システムはキャッシュ読み取り要求を二つの読み取り要求に分解することがある。というのも、要求されるデータは、メモリ内で連続していない複数のキャッシュ・ラインにまたがることがありうるからである。キャッシュはキャッシュ・ライン全体を使ってのみアクセスされうるので、たとえば32B（バイト）のキャッシュ読み取り要求は、キャッシュ中で二つのキャッシュ・ラインに対応することがありうる。キャッシュ・ラインが64Bの場合、二つのキャッシュ・ラインは128Bとなりうる。しかしながら、キャッシュ読み取り要求を、二つのキャッシュ・ラインを読み取るための二つの読み取りキャッシュ要求に分解することは、二つのキャッシュ読み取り要求が逐次的に処理されるので、追加的な遅延を導入することになる。
【００１１】
いくつかの実施形態では、立て続けの（back-to-back）（すなわち、連続する）タイル式Y読み取り要求はクロック・サイクル当たり32バイトでキャッシュ・メモリを通って対称的にパイプラインされうる。これに対し、立て続けのタイル式X読み取り要求はそれぞれ二つの読み取りキャッシュ要求に分解されうる。こうして、タイル式X読み取り要求については、追加的なクロックの遅延がキャッシュのパイプラインに導入されうる。キャッシュはキャッシュ・ライン全体を使ってのみアクセスされうるので、たとえば32B（バイト）のキャッシュ読み取り要求は、キャッシュ中で二つのキャッシュ・ラインに対応することがありうる。キャッシュ・ラインが64Bの場合、二つのキャッシュ・ラインは128Bとなりうる。二つの読み取りキャッシュ要求に分解されたタイル式X読み取り要求は、（分解のない）タイル式Y読み取り要求について提供されるようなクロック・サイクルごとに32Bのデータが返されるのではなく、2クロック・サイクルごとに32Bのデータが返される結果となりうる。たとえばグラフィック・オーバーレイおよびディスプレイはタイル式Xフォーマットを使うので、タイル式X読み取り要求も、タイル式Y読み取り要求と同じくらい効率的に処理することが望ましいことがありうる。
【課題を解決するための手段】
【００１２】
本願の実施形態は、二つのキャッシュ・ラインのデータについての一つのキャッシュ読み取り要求によって、該キャッシュ読み取り要求を分解することなく、タイル式メモリ（tiled  memory）からデータを選択的に読み取ることを提供しうる。たとえば、メモリから二つのキャッシュ・ラインを要求する一つのキャッシュ読み取り要求は、二つのキャッシュ・ラインを並列で読み取ってもよい。このようにして、二つのキャッシュ・ラインは同時に読み取られうる。これは、キャッシュ読み取り要求に関する遅延の軽減または解消を許容しうる。というのも、本願によれば、前記一つのキャッシュ読み取り要求は、所望のキャッシュ・ラインそれぞれに一つという二つの読み取り要求に分解されることがないからである。このことは、タイル式メモリに対してなされるキャッシュ読み取り要求に付随する遅延の軽減を提供しうる。
【発明を実施するための最良の形態】
【００１３】
図１は、グラフィック・プロセッサ、システム、サブシステムまたは一般に本稿の実施形態の一部を具現するグラフィック・エンジン１２０を含む例示的なコンピュータ・システムの実施形態１００の機能的なブロック図を示している。システム１００は一般に、CPU（中央処理ユニット）１０５のような処理ユニット、メイン・メモリ・コントローラ１１０、メイン・メモリ１１５、入出力コントローラ１３５、レベル２（L2）テクスチャー・キャッシュ１２０、3Dグラフィック・エンジン１２５、2Dグラフィック・エンジン１３０、ディスプレイ１４５および多様な入力装置１４０を含んでいてもよい。2Dグラフィック・エンジン１４５は、ディスプレイ１４５に送られるべきグラフィック情報を、CPU１０５からの入力ならびにメイン・メモリ１１５およびL2テクスチャー・キャッシュ１２０内のデータに基づいて、決定しうる。CPU１０５はディスク、ネットワークまたはCD-ROMなどに記憶されたデータと、スタートアップ時にブートされたプログラムと、入力装置によるユーザー入力とにアクセスしうる。CPU１０５は、グラフィック・エンジン１２０に送られるデータ・ストリーム（たとえば読み取り要求）を決定しうる。
【００１４】
メモリ１１５は、動的ランダム・アクセス・メモリ（DRAM）・デバイス、静的ランダム・アクセス・メモリ・デバイス（SRAM）・デバイスまたは他のメモリ・デバイスでありうる。メモリ１１５は、CPU１０５、3Dグラフィック・エンジン１２５、2Dグラフィック・エンジン１３０または他の何らかのデバイスによって実行されてもよい、データ信号によって表現される、命令および／またはデータを記憶していてもよい。該命令および／またはデータは、本発明の技法のいずれかおよび／または全部を実行するためのコードを有していてもよい。メモリ１１５は、ソフトウェアおよび／またはデータをも含みうる。L2テクスチャー・キャッシュ１２は、3Dグラフィック・エンジン１２５によるメモリ・アクセスを、アクセスがローカルであることを利用して高速化するために使用されてもよい。当業者は、L2キャッシュ・メモリ１２０がCPU１０５やグラフィック・エンジン１２５、１３０の内部にあっても外部にあってもよいことを理解するであろう。
【００１５】
図１は単に解説の目的のためのものである。たとえば、本願の方法およびシステムのさまざまな実施形態は、集積された、離散的なまたはその他のグラフィック構成において使用されてもよい。
【００１６】
図２は、本願のいくつかの実施形態に基づく方法またはプロセス２００の例示的な流れ図である。本願のいくつかの実施形態では、キャッシュ読み取り要求は、メモリから二つのキャッシュ・ラインを要求することがある。二つのキャッシュ・ラインの要求は、メモリの編成から帰結しうる。たとえば、メモリにアクセスできるのが、キャッシュ・ライン・サイズの単位でであるということがある。一例として、32Bのキャッシュ読み取り要求は二つの64Bキャッシュ・ラインの読み取り要求を喚起することがある。キャッシュ読み取り要求の所望される16Bが各キャッシュ・ラインに位置されているのである。メモリ・システムはキャッシュ・ラインを使うので、メモリに対して128Bの要求がなされることがある。
【００１７】
動作２０５では、タイル式キャッシュ・メモリへの一つのキャッシュ読み取り要求について、メモリから二つのキャッシュ・ラインが要求される。本願の諸実施形態によれば、前記一つのキャッシュ読み取り要求は、各キャッシュ・ライン要求について一つという二つのばらばらのキャッシュ読み取り要求に分解されることはない。
【００１８】
動作２０５では、二つのキャッシュ・ラインに関連付けられたデータが要求者に返される。要求者はCPUでもよいし、他のプロセッサまたは他のデバイスでもよい。
【００１９】
プロセス２００は、二つのキャッシュ・ラインについての一つのキャッシュ読み取り要求を二つのキャッシュ読み取り要求に分解しないことによって、キャッシュ・メモリ読み取り要求を分解する必要を回避、軽減または解消するために使用されうる。
【００２０】
キャッシュ読み取り要求の分解の回避は、分解動作に帰される追加的な遅延を導入しないことによってメモリ・システムの効率およびパフォーマンスを改善しうる。いくつかの実施形態では、キャッシュ読み取り要求はタイル式Xフォーマットの読み取り要求である。
【００２１】
図３は、本願のいくつかの実施形態に基づく方法またはプロセス３００の例示的な流れ図である。プロセス３００の動作３０５および３２５は、それぞれ図２の動作２０５および２１０と実質的に同様であってもよい。したがって、動作３０５および３２５は、上記の動作２０５および２１０の議論を参照することによって容易に理解されうる。
【００２２】
本願のいくつかの実施形態によれば、プロセス３００の動作３１０、３１５および３２５は、一つのキャッシュ読み取り要求がメモリから二つのキャッシュ・ラインを要求するために使用されることがあるタイル式メモリからのデータの読み取りを容易にするいくつかの機構を図解している。
【００２３】
動作３１０では、前記一つのキャッシュ読み取り要求に対応するまたは関連する二つのキャッシュ・ラインが並列に割り当てられてもよい。すなわち、要求されたキャッシュ読み取り要求についてそれに関連する二つのキャッシュ・ラインのそれぞれにおいてヒットがあるかミスがあるか、ならびに、どのキャッシュ・ラインを置換または使用すべきかの決定が、両方のキャッシュ・ラインについて同時に（すなわち、並列に）なされてもよい。効率における利得は、少なくとも部分的に、動作３１０に起因して実現されうる。というのも、キャッシュ・ラインが逐次的にではなく並列的に割り当てられうるからである。
【００２４】
動作３１５では、二つの要求されたキャッシュ・ライン項目の整合性が並列に維持される。このようにして、たとえばミス（a  miss）に起因するキャッシュ・ラインへの上書きを保護または回避するために二つのキャッシュ・ライン項目を逐次的に検査する必要性は、両方のキャッシュ・ライン上で同時に（すなわち、並列に）達成されうる。たとえば、キャッシュ・ライン項目のいずれかにおけるミスの判別は、いずれかについての整合されたキャッシュ項目が完全になるまで、停止を引き起こしてもよい。
【００２５】
動作３２０では、二つのキャッシュ・ラインに関連するデータが読み取られ、キャッシュ読み取り要求が並列に満たされうる。並列データ読み取りは、複数のキャッシュ・データ・メモリ・デバイスまたは並列読み取りに対応したキャッシュ・データ・デバイスを使って達成されてもよい。
【００２６】
動作３１０、３１５および３２０は、組み合わさって、前記一つのキャッシュ読み取り要求について、二つのキャッシュ・ラインの効果的かつ効率的なキャッシュ読み取り要求を実施しうる。二つのキャッシュ・ラインについての並列的な割り当て、整合性維持およびデータ読み取りの諸側面ならびにキャッシュ読み取り要求の分解の回避は、グラフィック・システムにおける遅延の軽減を許容するか、提供するか、または他の形でこれに貢献しうる。
【００２７】
図４は、本願のいくつかの実施形態のためのパイプライン、デバイスまたはシステムの例示的な実装である。タイル式X読み取り要求アドレスがシステム４００によって受領されるか、提供されるか、または他の形で取得される。ある事例では、読み取り要求アドレスは、線形メモリ・アドレスとして提供されるか、他の形でタイル式メモリ・アドレスとしてではなく提供される。モジュール４０５がソース・メモリ・アドレスをタイル式Xフォーマットのメモリ・アドレスに変換する機構を提供する。機能的には、モジュール４０５は、ソース・メモリ・アドレスに対してフェンス、分解、タイル分割および他の機能を実行するよう動作し、タイル式Xメモリ・アドレスを取得しうる。このタイル式Xメモリ・アドレスが本願のタイル式編成のメモリ・システムによってさらに処理およびマッピングされうる。
【００２８】
モジュール４１０では、タイル式X読み取り要求アドレスが、二つのキャッシュ・タグ・ランダム・アクセス・メモリ（RAM）に対して並列に検査されて、タイル式X読み取り要求アドレスがキャッシュ内に位置されているか、システムまたはメイン・メモリから取得されるべきであるかが判定される。所望される読み取り要求について、そのメモリ位置が高速キャッシュ（たとえば、レベル２（L2）キャッシュ）内にあるかどうかを判定する検査がなされる。タイル式X読み取り要求アドレスの、そのアドレスを含んでいるかもしれないキャッシュ内の全タグとの比較が実行される。４１５によってタイル式X読み取り要求アドレスのタグが読み取られ、タグ比較デバイス４２５によって、キャッシュ・タグRAM４３５の二つのバンク（バンク０およびバンク１）のそれぞれに対して比較される。ある事例では、メモリ位置はタグ・キャッシュ内にあり、キャッシュ・ヒットが発生したといわれる。キャッシュ・ヒットの場合では、プロセッサは、タイル式X読み取り要求アドレスによって示されるデータを読み取りうる。
【００２９】
メモリ位置がタグ・キャッシュ内にない場合、キャッシュ・ミスが発生したといわれる。この場合、モジュール４１０は新しいタグ・エントリーをたった今ミスしたメモリ・アドレスのために割り当ててもよい。キャッシュ・タグRAM４３５にタグを書き込むためにデバイス４３０が使用されうる。前記割り当ては、たった今ミスしたメモリ・アドレスについてのタグと、たった今ミスしたメモリ・アドレスからのデータのコピーとを含んでいてよい。
【００３０】
いくつかの実施形態では、キャッシュ・タグRAM４３５に関してタイル式X読み取り要求アドレスについてヒットが発生したかミスが発生したかを示す2ビットのヒット指標が使用されてもよい。下記の表１は、モジュール４１０の比較によって提供されうるさまざまな結果の一覧を含む例示的な表である。示されるように、2ビットの指標は、キャッシュ・タグRAM比較のすべての可能な帰結を含むのに十分である。
【００３１】
【表１】
2009521766.tif 000003
【００３２】
64Bキャッシュ・タグRAMの二つのバンクのいずれか一方においてミスがある場合、タイル式X読み取り要求アドレスが、キャッシュ・タグRAM３３５のミスしたバンクにおける所与のセットについての8つの路の一つに書き込まれる。これは、キャッシュ・タグRAMの各バンクが8路のセット連想式タグとして編成されていることを想定している。キャッシュ・タグRAMのバンクの他の構成が使用されてもよい。このようにして、キャッシュ・タグRAMの両方のバンクは、所与のセットについて、その所与のセットのための路の一つにおいて同じタイル式X読み取り要求アドレス（たとえば、タグ）をもつことになる。
【００３３】
64Bキャッシュ・タグRAM３３５の二つのバンク両方にミスがある場合、タイル式X読み取り要求アドレスは、キャッシュ・タグRAM３３５の両方のバンクにおいて同じセットについての8つの路の一つに書き込まれる。このようにして、キャッシュ・タグRAMの両方のバンクは、キャッシュ・タグRAM３３５の両方のバンクにおいて同じセットについての路の同じ一つにおいて、同じタイル式X読み取り要求アドレス（たとえば、タグ）をもつことになる。
【００３４】
LRU  RAMデバイス３２０は、キャッシュ・タグRAM３３５のバンクにタグが書き込まれるセットを選択するために使われる。タグをどこに書き込むかを決定するための置換ポリシーは、最長未使用時間（LRU:  least  recently  used）アルゴリズムによって支配されてもよい。他の置換ポリシーによる制御が使用されてもよい（たとえばランダムなど）ことは理解しておくべきである。
【００３５】
キャッシュ・タグRAM内の二つのバンクを使った、３１０のタグRAM比較は、並列に実行されてもよい。すなわち、キャッシュ・タグRAM内のバンクの二つのバンクは、ヒット・パフォーマンスの改善を含め本願の向上を得るために、並列に検査されてもよい。パイプライン４００のこの側面は、図３のプロセス３００の動作３１０に対応しうる。
【００３６】
パイプライン４００は、タイル式X読み取り要求アドレスを、使用中検査デバイスまたは機構４４０に回送することに進む。使用中検査デバイス４４０は、現在他のプロセスによって使用されているキャッシュ・ラインを使うまたは使おうとすることから保護するよう備えがされていてもよい。
【００３７】
４４５では、二つのFIFOに同時に書き込みがされてもよい。このようにして、二つの要求されたキャッシュ・ラインは、逐次的に処理されてパイプライン４００に遅延を追加してしまう必要がない。二つのメモリ読み取り遅延FIFO４４０および４４５は、ミスしたタイル式Xキャッシュ項目要求および隣接項目（すなわち、二つのキャッシュ・ライン）に関して検査される。すなわち、ミスしたタイル式Xキャッシュ項目（たとえば64B）要求および第二の隣接項目（たとえば64B）が、遅延FIFO４４０および４４５を使って検査される。ある事例では、二つの遅延FIFO４４０および４４５の一方についてキャッシュ項目マッチがあることが判別され、ミスされたタイル式Xキャッシュ項目（すなわち、第一のキャッシュ項目）は遅延FIFO４４０および４４５の一方の中のマッチしたキャッシュ項目が完全になるまで停止される。このようにして、データ整合性が維持されうる。ミスしたタイル式Xキャッシュ項目は、遅延FIFO４４０および４４５の一方の中のマッチしたキャッシュ項目が完全に他の必要とされるデータを取得できるまで停止される。パイプライン４００のこの側面は、図３のプロセス３００の動作３１５に対応していてもよい。
【００３８】
パイプライン４００の「ミス」という経路を参照すると、タイル式Xキャッシュ読み取り要求が64Bキャッシュ項目両方に対してミスである場合、タイル式Xキャッシュ読み取り要求は、Xタイル分解デバイスまたは機構４５０によって、二つのメモリ・ミス要求に分割される。たとえば、二つのメモリ・ミス要求の二番目のものが64Bインクリメントされてもよい。64Bキャッシュ・エントリーの二番目のものに対してしかミスがない場合、その単一のミス要求アドレスが64Bインクリメントされてもよい。
【００３９】
二つのメモリ・ミスされたキャッシュされた項目の要求を使って、モジュール４５５は、そのミス・キャッシュ項目要求の仮想アドレスをシステムまたはメイン・メモリ（MM）にマッピングされた物理アドレスに変換するよう動作する。モジュール４５５は、どのようにしてミスしたタイル式Xキャッシュ項目が分解され、トランスレーション・ルックアサイド・バッファ（TLB:  translation  lookaside  buffer）および他のアドレス変換機構を使って物理的メモリから取得されるかの、ミス経路に沿った例示的な実装を提供する。仮想的なタイル式Xキャッシュ項目要求アドレスからメイン・メモリ中の物理アドレスへの変換は、モジュール４５０によって、いくつかの仮想アドレス‐物理アドレス変換機構を使って達成されうる。そうした機構として含まれるものには、システムのメイン・メモリのキャッシュされたマッピングのTLB、TLB要求FIFO、TLBデータ・バッファおよびページ収集FIFO（PGF:  page  gathering  FIFO）がある。モジュール４５５は、要求されたアドレス位置、図のMM要求を取得しうる。
【００４０】
パイプライン４００のモジュール４７０は、メイン・メモリからモジュール４５５によって取得された要求されたアドレス・データを、キャッシュ・データRAM４７５に書き込む機構を提供する。モジュール４７０のMM書き込みは、モジュール４５５のMM要求に対応する。キャッシュ・データRAM４７５は、そこからデータが並列に読み取られるよう編成され、パーティションされ、または他の仕方で構成され、かつ管理される。たとえば、キャッシュ・データRAM４７５はRAMの二つのバンク、第一のバンク０および第二のバンク１をもつ。キャッシュ・データRAM４７５のそのような構成および管理は、読み取られるべきキャッシュ読み取り要求の二つのキャッシュ・ラインに関連付けられたデータを並列に読み取るための機構を容易にするか提供する。
【００４１】
したがって、読み取り装置４８０は、両方の読み取り要求キャッシュ・ラインに関連付けられたデータを効果的に並列に読み取る。パイプライン４００のこの側面は、図３の動作３２０に関係していてもよい。
【００４２】
パイプライン４００は、４８５において要求されたデータを集成し、さらに要求された読み取りをCPU、ディスプレイまたはその他のデバイスすなわち要求者による使用のために圧縮解除することに進む。
【００４３】
図５は、本願のいくつかの実施形態に基づくタイル式キャッシュ・メモリ管理のいくつかの側面の例示的な図解である。図５は、本願のさまざまな側面および諸実施形態に基づくキャッシュ読み取り要求のさまざまな側面の表５００を与えている。キャッシュ・ライン型および割り当ての諸側面が列５１０に示され、メモリからのキャッシュ・ライン要求が列５１５に例解され、例示的なキャッシュ書き込みが列５２０に描かれ、例解的なキャッシュ読み取りが列５２５に示されている。列５１０に例解されるように、二つの16Bの読み取り要求（合計32B）が、それぞれXタイル式テクスチャー・フレーム・モードおよびXタイル式テクスチャー・フレーム・モードについて連続的に割り当てられ、あるいはインターリーブされている。列５１５では、それぞれ64Bの二つのキャッシュ・ライン１ａおよび１ｂがメモリから要求される。列５２０では、バンク０およびバンク１キャッシュ書き込みの描写が例解されている。両バンクはフリップされており、よってバンク０およびバンク１が並列に書き込みされてもよいことを注意しておく。列では、例示的なキャッシュ読み取りフォーマットが例解的な目的のために与えられている。
【００４４】
表５００で使われ、あるいは参照されているさまざまなアドレス・ビットのフォーマットが単に例解の目的のために与えられていることは当業者には理解されるはずである。すなわち、本願のいくつかの実施形態の範囲から外れることなく、異なるサイズのタイル、キャッシュ・ライン、割り当てビット、参照されるアドレス・ビット、フリップ・ビットなどが使用されてもよい。
【００４５】
いくつかの実施形態では、機械によって実行されたときに、本願の実施形態のいくつかとの関連で論じた方法を実行する命令が媒体または製造物において具現されてもよい。製造物はCD-ROM、固定もしくは着脱可能な記憶機構、ランダム・アクセス・メモリ（RAM）、フラッシュ・メモリならびに他のデータ記憶およびデータ送達機構を含みうる。
【００４６】
以上の開示は、その個別的な例示的な実施形態を参照して記載してきた。しかしながら、付属の請求項に記載される広義の精神および範囲から外れることなく、さまざまな修正および変更がそれになされてもよいことは明らかであろう。
【図面の簡単な説明】
【００４７】
【図１】本願のいくつかの実施形態に基づくコンピュータ・システムを示す図である。
【図２】本願のいくつかの実施形態に基づく例示的な流れ図である。
【図３】本願のいくつかの実施形態に基づく例示的な流れ図である。
【図４】本願のいくつかの実施形態に基づく例示的な機能的実装を示す図である。
【図５】本願のいくつかの実施形態に基づくタイル式キャッシュ・メモリ管理のいくつかの側面の例示的な図である。
【図１】
2009521766.tif 000004
【図２】
2009521766.tif 000005
【図３】
2009521766.tif 000006
【図４】
2009521766.tif 000007
【図５】
2009521766.tif 000008
【国際調査報告】
2009521766.tif 000009
2009521766.tif 000010
2009521766.tif 000011