説明

共有されるL2マッピング・キャッシュのための対称的割り当てのための方法およびシステム

【課題】タイル式メモリからデータを読み取るための方法、装置、システムおよび媒体を提供する。
【解決手段】一つのタイル式X方式キャッシュ読み取り要求について、そのタイル式X方式キャッシュ読み取り要求を分解することなくタイル式メモリから二つのキャッシュ・ラインを要求する段階305と、二つの要求されたキャッシュ・ラインに関連付けられたデータを返す段階325とを含む。また、二つのキャッシュ・ラインを並列に割り当てる段階310と、二つのキャッシュ・ラインの整合性を並列に維持する段階315と、二つのキャッシュ・ラインに関連付けられたデータをデータ・キャッシュから並列に読む段階320を含む。

【発明の詳細な説明】
【背景技術】
【0001】
キャッシュ・メモリ・システムは、コンピュータまたはその他の電子システムにおいて、一般にメモリ・アクセス・スピードを改善するために使用されうる。キャッシュ・サイズおよびスピードを上げることは、システム・パフォーマンスを改善する傾向がありうる。しかしながら、キャッシュ・サイズおよびスピードを上げることはコスト高であることがあり、および/またはキャッシュ・サイズおよびスピードの進歩によって限定されることがある。さらに、全体的なシステム・パフォーマンス上の利得と全体的なシステム・コストとをバランスさせることが望ましいことがありうる。
【0002】
キャッシュ・メモリ・システムにおいては、直接マッピング(direct mapping)、完全連想式マッピング(fully associative mapping)およびセット連想式マッピング(set-associative mapping)といった種々の型のマッピング方法が使用されうる。セット連想式マッピング・システムについて、キャッシュ・メモリはいくつかの「セット」に分割され、各セットはいくつかの「路(way)」またはキャッシュ・ライン(cache line)を含む。各セット内ではアドレスの検索は完全に連想式である。各セットにはn個の位置または路がありうる。たとえば、4路の(4-way)セット連想式キャッシュ・メモリでは、データ・ソースでのアドレスは、利用可能性に依存して、所与のセットの4つの路のうちの任意の一つにマッピングされてよい。8路の(8-way)セット連想式キャッシュ・メモリでは、データ・ソースでの前記アドレスは、所与のセット内の8つの路のうちの一つにマッピングされてよい。
【0003】
メモリ管理はグラフィック処理およびその際遭遇する大量のデータの操作にとって決定的である。3D(三次元)テクスチャリングを含むグラフィックのための処理要求が増すにつれて、メモリ割り当ておよびマッピングのさまざまな側面が、グラフィック処理を向上させるための改善について考察されてきた。いくつかの事例では、グラフィック・データのためのメモリが複数のタイルに編成されることがある。編成されたメモリは、線形に編成されたメモリに比較して、グラフィック・データへのより高速なアクセスを許容しうる。
【0004】
いくつかの事例では、タイル編成のメモリ・マッピングのためのシステムおよび方法は「y中心(y-major)」または「タイル式Y(tiled-Y)」読み取り要求動作の処理を最適化することに向けられることがある。タイル式Y方式では、Y方向の二つの相続くデータ構造が、メモリ内で連続している。また、Y中心タイリングは、グラフィック・テクスチャー用途のためのメモリの編成の効率的な方法でありうる。いくつかのグラフィック・エンジンおよびグラフィック・システムは、プロセッサからキャッシュ・メモリにY方向にテクスチャー・データをロードしていく。したがって、グラフィック・エンジンまたはシステムは、グラフィック・データ(たとえばテクスチャー・データ)をY方向に読んでいくよう構成されるまたは最適化される。そのような最適化は、タイル式Y読み取り要求が1クロック・サイクルで処理されることを許容する。しかしながら、ある型の動作のための最適化は、他の動作に関して望ましくない結果を有することがある。
【0005】
本発明は、例として図面で図解されている。図面において、同様の参照符号は類似の要素を示す。図面が本発明のさまざまな実施形態を開示するのは単に解説の目的であって、本発明の範囲を限定することは意図されていない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
以下の詳細な記述は、本発明の十全な理解を提供するために数多くの個別的詳細を記載する。しかしながら、当業者は本発明がこうした個別的詳細なしでも実施できることを理解するであろう。その一方で、よく知られた方法、手順、プロトコル、コンポーネントおよび回路は、本発明を埋没させないよう、詳細には記述していない。
【0007】
本願の諸実施形態は、ハードウェアもしくはソフトウェアまたは両者の組み合わせで実装されてもよい。いくつかの実施形態は、少なくとも一つのプロセッサ、データ記憶システム(揮発性および不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置および少なくとも一つの出力装置を有するプログラム可能システム上で実行されるコンピュータ・プログラムとして実装されてもよい。入力データにプログラム・コードが適用され、本稿に記載される機能が実行され、出力情報が生成されうる。出力情報は一つまたは複数の出力装置に加えられてもよい。本稿の目的については、処理システムは、たとえばデジタル信号プロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)またはマイクロプロセッサといったプロセッサを有する任意のシステムを含みうる。
【0008】
命令およびプログラムは、汎用または専用のプログラム可能処理システムによって可読な記憶媒体またはデバイス(たとえば、ハードディスク・ドライブ、フロッピー(登録商標)ディスク・ドライブ、読み取り専用メモリ(ROM)、CD-ROMデバイス、フラッシュ・メモリ・デバイス、デジタル多用途ディスク(DVD)または他の記憶デバイス)上に記憶されてもよく、前記記憶媒体またはデバイスが前記処理システムによって読まれたときに、本稿で記載される動作を実行するよう前記処理システムを構成し、動作させてもよい。いくつかの実施形態は、処理システムと一緒に使うよう構成された機械可読記憶媒体として実装され、そのように構成された記憶媒体が前記処理システムを、本稿で記載される機能を実行するよう特定かつ所定の仕方で動作させると考えられてもよい。
【0009】
いくつかの実施形態では、グラフィック処理システムは、タイル式に編成されたメモリを含んでいてもよい。たとえばディスプレイ画面は長方形の領域すなわちタイルに効率的に分割されうるので、そのようなメモリ編成は、高速かつ効率的なメモリ・アクセスをもたらしうる。タイル分割(タイリング)は、グラフィック・エンジンが、メモリ・サブシステムにおける過剰な数のページ・ミスを引き起こすことなく(すなわち、ヒットを改善する)、より高速にメモリにアクセスすることを許容しうる。グラフィック・メモリは、X中心タイリングおよびY中心タイリングといった、いくつかの異なるフォーマットでタイル分割されうる。X中心タイリング(X-major tiling)またはタイル式Xフォーマット(tiled-X format)では、X方向の二つの相続くデータ構造(たとえば、4倍精度語(quadword))が物理的なメモリ内で連続している。Y中心タイリング(Y-major tiling)では、Y方向の二つの相続くデータ構造(たとえば、4倍精度語)がメモリ内で連続している。当業者は、グラフィック・エンジン、プロセッサ、システムまたはサブシステムが、グラフィック・テクスチャーの正方形の領域、テクセルに対して作用してもよいことを理解するであろう。
【0010】
X方向でのタイル式編成のメモリのキャッシュ読み取り要求(すなわち、タイル式Xフォーマットの読み取り要求)について、いくつかのメモリ・システムはキャッシュ読み取り要求を二つの読み取り要求に分解することがある。というのも、要求されるデータは、メモリ内で連続していない複数のキャッシュ・ラインにまたがることがありうるからである。キャッシュはキャッシュ・ライン全体を使ってのみアクセスされうるので、たとえば32B(バイト)のキャッシュ読み取り要求は、キャッシュ中で二つのキャッシュ・ラインに対応することがありうる。キャッシュ・ラインが64Bの場合、二つのキャッシュ・ラインは128Bとなりうる。しかしながら、キャッシュ読み取り要求を、二つのキャッシュ・ラインを読み取るための二つの読み取りキャッシュ要求に分解することは、二つのキャッシュ読み取り要求が逐次的に処理されるので、追加的な遅延を導入することになる。
いくつかの実施形態では、立て続けの(back-to-back)(すなわち、連続する)タイル式Y読み取り要求はクロック・サイクル当たり32バイトでキャッシュ・メモリを通って対称的にパイプラインされうる。これに対し、立て続けのタイル式X読み取り要求はそれぞれ二つの読み取りキャッシュ要求に分解されうる。こうして、タイル式X読み取り要求については、追加的なクロックの遅延がキャッシュのパイプラインに導入されうる。キャッシュはキャッシュ・ライン全体を使ってのみアクセスされうるので、たとえば32B(バイト)のキャッシュ読み取り要求は、キャッシュ中で二つのキャッシュ・ラインに対応することがありうる。キャッシュ・ラインが64Bの場合、二つのキャッシュ・ラインは128Bとなりうる。二つの読み取りキャッシュ要求に分解されたタイル式X読み取り要求は、(分解のない)タイル式Y読み取り要求について提供されるようなクロック・サイクルごとに32Bのデータが返されるのではなく、2クロック・サイクルごとに32Bのデータが返される結果となりうる。たとえばグラフィック・オーバーレイおよびディスプレイはタイル式Xフォーマットを使うので、タイル式X読み取り要求も、タイル式Y読み取り要求と同じくらい効率的に処理することが望ましいことがありうる。
【課題を解決するための手段】
【0011】
本願の実施形態は、二つのキャッシュ・ラインのデータについての一つのキャッシュ読み取り要求によって、該キャッシュ読み取り要求を分解することなく、タイル式メモリ(tiled memory)からデータを選択的に読み取ることを提供しうる。たとえば、メモリから二つのキャッシュ・ラインを要求する一つのキャッシュ読み取り要求は、二つのキャッシュ・ラインを並列で読み取ってもよい。このようにして、二つのキャッシュ・ラインは同時に読み取られうる。これは、キャッシュ読み取り要求に関する遅延の軽減または解消を許容しうる。というのも、本願によれば、前記一つのキャッシュ読み取り要求は、所望のキャッシュ・ラインそれぞれに一つという二つの読み取り要求に分解されることがないからである。このことは、タイル式メモリに対してなされるキャッシュ読み取り要求に付随する遅延の軽減を提供しうる。
【図面の簡単な説明】
【0012】
【図1】本願のいくつかの実施形態に基づくコンピュータ・システムを示す図である。
【図2】本願のいくつかの実施形態に基づく例示的な流れ図である。
【図3】本願のいくつかの実施形態に基づく例示的な流れ図である。
【図4】本願のいくつかの実施形態に基づく例示的な機能的実装を示す図である。
【図5】本願のいくつかの実施形態に基づくタイル式キャッシュ・メモリ管理のいくつかの側面の例示的な図である。
【発明を実施するための形態】
【0013】
図1は、グラフィック・プロセッサ、システム、サブシステムまたは一般に本稿の実施形態の一部を具現するグラフィック・エンジン120を含む例示的なコンピュータ・システムの実施形態100の機能的なブロック図を示している。システム100は一般に、CPU(中央処理ユニット)105のような処理ユニット、メイン・メモリ・コントローラ110、メイン・メモリ115、入出力コントローラ135、レベル2(L2)テクスチャー・キャッシュ120、3Dグラフィック・エンジン125、2Dグラフィック・エンジン130、ディスプレイ145および多様な入力装置140を含んでいてもよい。2Dグラフィック・エンジン145は、ディスプレイ145に送られるべきグラフィック情報を、CPU105からの入力ならびにメイン・メモリ115およびL2テクスチャー・キャッシュ120内のデータに基づいて、決定しうる。CPU105はディスク、ネットワークまたはCD-ROMなどに記憶されたデータと、スタートアップ時にブートされたプログラムと、入力装置によるユーザー入力とにアクセスしうる。CPU105は、グラフィック・エンジン120に送られるデータ・ストリーム(たとえば読み取り要求)を決定しうる。
【0014】
メモリ115は、動的ランダム・アクセス・メモリ(DRAM)・デバイス、静的ランダム・アクセス・メモリ・デバイス(SRAM)・デバイスまたは他のメモリ・デバイスでありうる。メモリ115は、CPU105、3Dグラフィック・エンジン125、2Dグラフィック・エンジン130または他の何らかのデバイスによって実行されてもよい、データ信号によって表現される、命令および/またはデータを記憶していてもよい。該命令および/またはデータは、本発明の技法のいずれかおよび/または全部を実行するためのコードを有していてもよい。メモリ115は、ソフトウェアおよび/またはデータをも含みうる。L2テクスチャー・キャッシュ12は、3Dグラフィック・エンジン125によるメモリ・アクセスを、アクセスがローカルであることを利用して高速化するために使用されてもよい。当業者は、L2キャッシュ・メモリ120がCPU105やグラフィック・エンジン125、130の内部にあっても外部にあってもよいことを理解するであろう。
【0015】
図1は単に解説の目的のためのものである。たとえば、本願の方法およびシステムのさまざまな実施形態は、集積された、離散的なまたはその他のグラフィック構成において使用されてもよい。
【0016】
図2は、本願のいくつかの実施形態に基づく方法またはプロセス200の例示的な流れ図である。本願のいくつかの実施形態では、キャッシュ読み取り要求は、メモリから二つのキャッシュ・ラインを要求することがある。二つのキャッシュ・ラインの要求は、メモリの編成から帰結しうる。たとえば、メモリにアクセスできるのが、キャッシュ・ライン・サイズの単位であるということがある。一例として、32Bのキャッシュ読み取り要求は二つの64Bキャッシュ・ラインの読み取り要求を喚起することがある。キャッシュ読み取り要求の所望される16Bが各キャッシュ・ラインに位置されているのである。メモリ・システムはキャッシュ・ラインを使うので、メモリに対して128Bの要求がなされることがある。
【0017】
動作205では、タイル式キャッシュ・メモリへの一つのキャッシュ読み取り要求について、メモリから二つのキャッシュ・ラインが要求される。本願の諸実施形態によれば、前記一つのキャッシュ読み取り要求は、各キャッシュ・ライン要求について一つという二つのばらばらのキャッシュ読み取り要求に分解されることはない。
【0018】
動作205では、二つのキャッシュ・ラインに関連付けられたデータが要求者に返される。要求者はCPUでもよいし、他のプロセッサまたは他のデバイスでもよい。
【0019】
プロセス200は、二つのキャッシュ・ラインについての一つのキャッシュ読み取り要求を二つのキャッシュ読み取り要求に分解しないことによって、キャッシュ・メモリ読み取り要求を分解する必要を回避、軽減または解消するために使用されうる。
【0020】
キャッシュ読み取り要求の分解の回避は、分解動作に帰される追加的な遅延を導入しないことによってメモリ・システムの効率およびパフォーマンスを改善しうる。いくつかの実施形態では、キャッシュ読み取り要求はタイル式Xフォーマットの読み取り要求である。
【0021】
図3は、本願のいくつかの実施形態に基づく方法またはプロセス300の例示的な流れ図である。プロセス300の動作305および325は、それぞれ図2の動作205および210と実質的に同様であってもよい。したがって、動作305および325は、上記の動作205および210の議論を参照することによって容易に理解されうる。
【0022】
本願のいくつかの実施形態によれば、プロセス300の動作310、315および325は、一つのキャッシュ読み取り要求がメモリから二つのキャッシュ・ラインを要求するために使用されることがあるタイル式メモリからのデータの読み取りを容易にするいくつかの機構を図解している。
【0023】
動作310では、前記一つのキャッシュ読み取り要求に対応するまたは関連する二つのキャッシュ・ラインが並列に割り当てられてもよい。すなわち、要求されたキャッシュ読み取り要求についてそれに関連する二つのキャッシュ・ラインのそれぞれにおいてヒットがあるかミスがあるか、ならびに、どのキャッシュ・ラインを置換または使用すべきかの決定が、両方のキャッシュ・ラインについて同時に(すなわち、並列に)なされてもよい。効率における利得は、少なくとも部分的に、動作310に起因して実現されうる。というのも、キャッシュ・ラインが逐次的にではなく並列的に割り当てられうるからである。
【0024】
動作315では、二つの要求されたキャッシュ・ライン項目の整合性が並列に維持される。このようにして、たとえばミス(a miss)に起因するキャッシュ・ラインへの上書きを保護または回避するために二つのキャッシュ・ライン項目を逐次的に検査する必要性は、両方のキャッシュ・ライン上で同時に(すなわち、並列に)達成されうる。たとえば、キャッシュ・ライン項目のいずれかにおけるミスの判別は、いずれかについての整合されたキャッシュ項目が完全になるまで、停止を引き起こしてもよい。
【0025】
動作320では、二つのキャッシュ・ラインに関連するデータが読み取られ、キャッシュ読み取り要求が並列に満たされうる。並列データ読み取りは、複数のキャッシュ・データ・メモリ・デバイスまたは並列読み取りに対応したキャッシュ・データ・デバイスを使って達成されてもよい。
【0026】
動作310、315および320は、組み合わさって、前記一つのキャッシュ読み取り要求について、二つのキャッシュ・ラインの効果的かつ効率的なキャッシュ読み取り要求を実施しうる。二つのキャッシュ・ラインについての並列的な割り当て、整合性維持およびデータ読み取りの諸側面ならびにキャッシュ読み取り要求の分解の回避は、グラフィック・システムにおける遅延の軽減を許容するか、提供するか、または他の形でこれに貢献しうる。
【0027】
図4は、本願のいくつかの実施形態のためのパイプライン、デバイスまたはシステムの例示的な実装である。タイル式X読み取り要求アドレスがシステム400によって受領されるか、提供されるか、または他の形で取得される。ある事例では、読み取り要求アドレスは、線形メモリ・アドレスとして提供されるか、他の形でタイル式メモリ・アドレスとしてではなく提供される。モジュール405がソース・メモリ・アドレスをタイル式Xフォーマットのメモリ・アドレスに変換する機構を提供する。機能的には、モジュール405は、ソース・メモリ・アドレスに対してフェンス、分解、タイル分割および他の機能を実行するよう動作し、タイル式Xメモリ・アドレスを取得しうる。このタイル式Xメモリ・アドレスが本願のタイル式編成のメモリ・システムによってさらに処理およびマッピングされうる。
【0028】
モジュール410では、タイル式X読み取り要求アドレスが、二つのキャッシュ・タグ・ランダム・アクセス・メモリ(RAM)に対して並列に検査されて、タイル式X読み取り要求アドレスがキャッシュ内に位置されているか、システムまたはメイン・メモリから取得されるべきであるかが判定される。所望される読み取り要求について、そのメモリ位置が高速キャッシュ(たとえば、レベル2(L2)キャッシュ)内にあるかどうかを判定する検査がなされる。タイル式X読み取り要求アドレスの、そのアドレスを含んでいるかもしれないキャッシュ内の全タグとの比較が実行される。415によってタイル式X読み取り要求アドレスのタグが読み取られ、タグ比較デバイス425によって、キャッシュ・タグRAM435の二つのバンク(バンク0およびバンク1)のそれぞれに対して比較される。ある事例では、メモリ位置はタグ・キャッシュ内にあり、キャッシュ・ヒットが発生したといわれる。キャッシュ・ヒットの場合では、プロセッサは、タイル式X読み取り要求アドレスによって示されるデータを読み取りうる。
【0029】
メモリ位置がタグ・キャッシュ内にない場合、キャッシュ・ミスが発生したといわれる。この場合、モジュール410は新しいタグ・エントリーをたった今ミスしたメモリ・アドレスのために割り当ててもよい。キャッシュ・タグRAM435にタグを書き込むためにデバイス430が使用されうる。前記割り当ては、たった今ミスしたメモリ・アドレスについてのタグと、たった今ミスしたメモリ・アドレスからのデータのコピーとを含んでいてよい。
【0030】
いくつかの実施形態では、キャッシュ・タグRAM435に関してタイル式X読み取り要求アドレスについてヒットが発生したかミスが発生したかを示す2ビットのヒット指標が使用されてもよい。下記の表1は、モジュール410の比較によって提供されうるさまざまな結果の一覧を含む例示的な表である。示されるように、2ビットの指標は、キャッシュ・タグRAM比較のすべての可能な帰結を含むのに十分である。
【0031】
【表1】

【0032】
64Bキャッシュ・タグRAMの二つのバンクのいずれか一方においてミスがある場合、タイル式X読み取り要求アドレスが、キャッシュ・タグRAM335のミスしたバンクにおける所与のセットについての8つの路の一つに書き込まれる。これは、キャッシュ・タグRAMの各バンクが8路のセット連想式タグとして編成されていることを想定している。キャッシュ・タグRAMのバンクの他の構成が使用されてもよい。このようにして、キャッシュ・タグRAMの両方のバンクは、所与のセットについて、その所与のセットのための路の一つにおいて同じタイル式X読み取り要求アドレス(たとえば、タグ)をもつことになる。
【0033】
64Bキャッシュ・タグRAM335の二つのバンク両方にミスがある場合、タイル式X読み取り要求アドレスは、キャッシュ・タグRAM335の両方のバンクにおいて同じセットについての8つの路の一つに書き込まれる。このようにして、キャッシュ・タグRAMの両方のバンクは、キャッシュ・タグRAM335の両方のバンクにおいて同じセットについての路の同じ一つにおいて、同じタイル式X読み取り要求アドレス(たとえば、タグ)をもつことになる。
【0034】
LRU RAMデバイス320は、キャッシュ・タグRAM335のバンクにタグが書き込まれるセットを選択するために使われる。タグをどこに書き込むかを決定するための置換ポリシーは、最長未使用時間(LRU: least recently used)アルゴリズムによって支配されてもよい。他の置換ポリシーによる制御が使用されてもよい(たとえばランダムなど)ことは理解しておくべきである。
【0035】
キャッシュ・タグRAM内の二つのバンクを使った、310のタグRAM比較は、並列に実行されてもよい。すなわち、キャッシュ・タグRAM内のバンクの二つのバンクは、ヒット・パフォーマンスの改善を含め本願の向上を得るために、並列に検査されてもよい。パイプライン400のこの側面は、図3のプロセス300の動作310に対応しうる。
【0036】
パイプライン400は、タイル式X読み取り要求アドレスを、使用中検査デバイスまたは機構440に回送することに進む。使用中検査デバイス440は、現在他のプロセスによって使用されているキャッシュ・ラインを使うまたは使おうとすることから保護するよう備えがされていてもよい。
【0037】
445では、二つのFIFOに同時に書き込みがされてもよい。このようにして、二つの要求されたキャッシュ・ラインは、逐次的に処理されてパイプライン400に遅延を追加してしまう必要がない。二つのメモリ読み取り遅延FIFO440および445は、ミスしたタイル式Xキャッシュ項目要求および隣接項目(すなわち、二つのキャッシュ・ライン)に関して検査される。すなわち、ミスしたタイル式Xキャッシュ項目(たとえば64B)要求および第二の隣接項目(たとえば64B)が、遅延FIFO440および445を使って検査される。ある事例では、二つの遅延FIFO440および445の一方についてキャッシュ項目マッチがあることが判別され、ミスされたタイル式Xキャッシュ項目(すなわち、第一のキャッシュ項目)は遅延FIFO440および445の一方の中のマッチしたキャッシュ項目が完全になるまで停止される。このようにして、データ整合性が維持されうる。ミスしたタイル式Xキャッシュ項目は、遅延FIFO440および445の一方の中のマッチしたキャッシュ項目が完全に他の必要とされるデータを取得できるまで停止される。パイプライン400のこの側面は、図3のプロセス300の動作315に対応していてもよい。
【0038】
パイプライン400の「ミス」という経路を参照すると、タイル式Xキャッシュ読み取り要求が64Bキャッシュ項目両方に対してミスである場合、タイル式Xキャッシュ読み取り要求は、Xタイル分解デバイスまたは機構450によって、二つのメモリ・ミス要求に分割される。たとえば、二つのメモリ・ミス要求の二番目のものが64Bインクリメントされてもよい。64Bキャッシュ・エントリーの二番目のものに対してしかミスがない場合、その単一のミス要求アドレスが64Bインクリメントされてもよい。
【0039】
二つのメモリ・ミスされたキャッシュされた項目の要求を使って、モジュール455は、そのミス・キャッシュ項目要求の仮想アドレスをシステムまたはメイン・メモリ(MM)にマッピングされた物理アドレスに変換するよう動作する。モジュール455は、どのようにしてミスしたタイル式Xキャッシュ項目が分解され、トランスレーション・ルックアサイド・バッファ(TLB: translation lookaside buffer)および他のアドレス変換機構を使って物理的メモリから取得されるかの、ミス経路に沿った例示的な実装を提供する。仮想的なタイル式Xキャッシュ項目要求アドレスからメイン・メモリ中の物理アドレスへの変換は、モジュール450によって、いくつかの仮想アドレス‐物理アドレス変換機構を使って達成されうる。そうした機構として含まれるものには、システムのメイン・メモリのキャッシュされたマッピングのTLB、TLB要求FIFO、TLBデータ・バッファおよびページ収集FIFO(PGF: page gathering FIFO)がある。モジュール455は、要求されたアドレス位置、図のMM要求を取得しうる。
【0040】
パイプライン400のモジュール470は、メイン・メモリからモジュール455によって取得された要求されたアドレス・データを、キャッシュ・データRAM475に書き込む機構を提供する。モジュール470のMM書き込みは、モジュール455のMM要求に対応する。キャッシュ・データRAM475は、そこからデータが並列に読み取られるよう編成され、パーティションされ、または他の仕方で構成され、かつ管理される。たとえば、キャッシュ・データRAM475はRAMの二つのバンク、第一のバンク0および第二のバンク1をもつ。キャッシュ・データRAM475のそのような構成および管理は、読み取られるべきキャッシュ読み取り要求の二つのキャッシュ・ラインに関連付けられたデータを並列に読み取るための機構を容易にするか提供する。
【0041】
したがって、読み取り装置480は、両方の読み取り要求キャッシュ・ラインに関連付けられたデータを効果的に並列に読み取る。パイプライン400のこの側面は、図3の動作320に関係していてもよい。
【0042】
パイプライン400は、485において要求されたデータを集成し、さらに要求された読み取りをCPU、ディスプレイまたはその他のデバイスすなわち要求者による使用のために圧縮解除することに進む。
【0043】
図5は、本願のいくつかの実施形態に基づくタイル式キャッシュ・メモリ管理のいくつかの側面の例示的な図解である。図5は、本願のさまざまな側面および諸実施形態に基づくキャッシュ読み取り要求のさまざまな側面の表500を与えている。キャッシュ・ライン型および割り当ての諸側面が列510に示され、メモリからのキャッシュ・ライン要求が列515に例解され、例示的なキャッシュ書き込みが列520に描かれ、例解的なキャッシュ読み取りが列525に示されている。列510に例解されるように、二つの16Bの読み取り要求(合計32B)が、それぞれXタイル式テクスチャー・フレーム・モードおよびXタイル式テクスチャー・フレーム・モードについて連続的に割り当てられ、あるいはインターリーブされている。列515では、それぞれ64Bの二つのキャッシュ・ライン1aおよび1bがメモリから要求される。列520では、バンク0およびバンク1キャッシュ書き込みの描写が例解されている。両バンクはフリップされており、よってバンク0およびバンク1が並列に書き込みされてもよいことを注意しておく。列では、例示的なキャッシュ読み取りフォーマットが例解的な目的のために与えられている。
【0044】
表500で使われ、あるいは参照されているさまざまなアドレス・ビットのフォーマットが単に例解の目的のために与えられていることは当業者には理解されるはずである。すなわち、本願のいくつかの実施形態の範囲から外れることなく、異なるサイズのタイル、キャッシュ・ライン、割り当てビット、参照されるアドレス・ビット、フリップ・ビットなどが使用されてもよい。
【0045】
いくつかの実施形態では、機械によって実行されたときに、本願の実施形態のいくつかとの関連で論じた方法を実行する命令が媒体または製造物において具現されてもよい。製造物はCD-ROM、固定もしくは着脱可能な記憶機構、ランダム・アクセス・メモリ(RAM)、フラッシュ・メモリならびに他のデータ記憶およびデータ送達機構を含みうる。
【0046】
以上の開示は、その個別的な例示的な実施形態を参照して記載してきた。しかしながら、付属の請求項に記載される広義の精神および範囲から外れることなく、さまざまな修正および変更がそれになされてもよいことは明らかであろう。

【特許請求の範囲】
【請求項1】
タイル式メモリからデータを読み取る方法であって:
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求する段階と;
二つの要求されたキャッシュ・ラインに関連付けられたデータを返す段階とを含む、
方法。
【請求項2】
前記二つのキャッシュ・ラインを並列に割り当てる段階と;
前記二つのキャッシュ・ラインの整合性を並列に維持する段階と;
前記二つのキャッシュ・ラインに関連付けられたデータをデータ・キャッシュから並列に読み取る段階とを含む、
請求項1記載の方法。
【請求項3】
前記割り当てる段階が:
前記タイル式X読み取り要求のためのアドレスを二つのキャッシュ・タグ・ランダム・アクセス・メモリ(RAM)に対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別する段階と;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込む段階と;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込む段階とを有する、
請求項2記載の方法。
【請求項4】
前記二つのキャッシュ・タグRAMがそれぞれメモリの第一のバンクおよび第二のバンクを含む、請求項3記載の方法。
【請求項5】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標を提供する段階をさらに有する、請求項1記載の方法。
【請求項6】
前記整合性を維持する段階が、仕掛かりのキャッシュ読み取り要求の使用中検査を含む、請求項2記載の方法。
【請求項7】
前記整合性を維持する段階が、二つの読み取り遅延先読み先出しバッファ(FIFO)によって実行される、請求項2記載の方法。
【請求項8】
前記データを読み取る段階が、データ・キャッシュからの前記二つのキャッシュ・ラインのそれぞれについてキャッシュ項目を同時に読み取ることを含み、前記データ・キャッシュはそれに関連付けられたメモリの二つのバンクを含む、請求項2記載の方法。
【請求項9】
ホスト・プロセッサと;
前記ホスト・プロセッサに結合されたグラフィック・エンジンと;
前記グラフィック・エンジンに結合されたタイル式メモリとを有する、
タイル式メモリからのデータを読む装置であって、前記グラフィック・エンジンが:
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求し;
二つの要求されたキャッシュ・ラインに関連付けられたデータを返すよう動作する、
装置。
【請求項10】
前記二つのキャッシュ・ラインを並列に割り当てるための第一のバンクおよび第二のバンクを有するキャッシュ・タグ・ランダム・アクセス・メモリ(RAM)と;
前記二つのキャッシュ・ラインの整合性を並列に維持する一対の先読み先出しバッファ(FIFO)と;
前記二つのキャッシュ・ラインに関連付けられたデータをそこから読み取るための第一のバンクおよび第二のバンクを有するキャッシュ・データRAMとを有する、
請求項9記載の装置。
【請求項11】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標が提供される、請求項9記載の装置。
【請求項12】
前記グラフィック・エンジンが:
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグRAMに対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別し;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込み;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込むよう動作する、
請求項10記載の装置。
【請求項13】
実行可能なプログラミング命令が記憶された記憶媒体であって、前記記憶されたプログラム命令が:
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求する命令と;
二つの要求されたキャッシュ・ラインに関連付けられたデータを返す命令とを含む、
記憶媒体。
【請求項14】
前記二つのキャッシュ・ラインを並列に割り当てる命令と;
前記二つのキャッシュ・ラインの整合性を並列に維持する命令と;
前記二つのキャッシュ・ラインに関連付けられたデータをデータ・キャッシュから並列に読み取る命令とを含む、
請求項13記載の記憶媒体。
【請求項15】
前記割り当てる命令が:
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグ・ランダム・アクセス・メモリ(RAM)に対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別する命令と;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込む命令と;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込む命令とを有する、
請求項14記載の記憶媒体。
【請求項16】
前記二つの要求されたキャッシュ・ラインに関して完全なヒット、完全なミスおよび部分的なヒットの指標を提供する命令をさらに有する、請求項13記載の記憶媒体。
【請求項17】
前記整合性を維持する命令が、仕掛かりのキャッシュ読み取り要求の使用中検査を含む、請求項14記載の記憶媒体。
【請求項18】
前記データを読み取る命令が、データ・キャッシュからの前記二つのキャッシュ・ラインのそれぞれについてキャッシュ項目を同時に読み取る命令を含み、前記データ・キャッシュはそれに関連付けられたメモリの二つのバンクを含む、請求項14記載の記憶媒体。
【請求項19】
ホスト・プロセッサと;
前記ホスト・プロセッサに結合されたグラフィック・エンジンと;
前記グラフィック・エンジンに結合されたタイル式メモリと;
前記ホスト・プロセッサに結合された倍速データ・レート・メモリとを有する、
タイル式メモリからのデータを読むシステムであって、前記グラフィック・エンジンが:
一つのタイル式Xキャッシュ読み取り要求について、そのタイル式Xキャッシュ読み取り要求を分解することなく前記タイル式メモリから二つのキャッシュ・ラインを要求し;
二つの要求されたキャッシュ・ラインに関連付けられたデータを返すよう動作する、
システム。
【請求項20】
前記グラフィック・エンジンおよび前記タイル式メモリが共通のプリント回路基板(PCB)上に一緒に位置されている、請求項19記載のシステム。
【請求項21】
前記グラフィック・エンジンが:
前記タイル式X読み取り要求アドレスを二つのキャッシュ・タグRAMに対して並列に検査して、前記タイル式X読み取り要求アドレスがヒットかミスかを前記二つのキャッシュ・タグRAMのそれぞれに対して判別し;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの一方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMのうちミスがあったほうに書き込み;
前記タイル式X読み取り要求アドレスが前記二つのキャッシュ・タグRAMの両方についてミスである場合に、前記タイル式X読み取り要求アドレスについてのタグを前記二つのキャッシュ・タグRAMの両方に書き込むよう動作する、
請求項19記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2012−108930(P2012−108930A)
【公開日】平成24年6月7日(2012.6.7)
【国際特許分類】
【出願番号】特願2012−3897(P2012−3897)
【出願日】平成24年1月12日(2012.1.12)
【分割の表示】特願2008−548551(P2008−548551)の分割
【原出願日】平成18年12月11日(2006.12.11)
【出願人】(593096712)インテル コーポレイション (931)
【Fターム(参考)】