(57)【要約】  実施形態は、概して、ダイレクトマップキャッシュ部分およびマルチウェイキャッシュ部分を含む非対称セットの結合キャッシュに関する。プロセッサは、データ処理用の１または複数の処理コアと、１または複数の処理コア用のメインメモリからのデータをキャッシュする結合キャッシュメモリとを含む得、キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含む。キャッシュメモリは、第１のキャッシュ部分と、第２のキャッシュ部分とに非対称セットを含み、第１のキャッシュ部分は、第２のキャッシュ部分より大きい。キャッシュメモリ用の連携置換ポリシは、第１のキャッシュ部分および第２のキャッシュ部分のデータ置換を規定する。
2018512650.tif 000002
【特許請求の範囲】
【請求項１】
データ処理用の１または複数の処理コアと、
前記１または複数の処理コアのためにメインメモリからのデータをキャッシュする結合キャッシュメモリと
を備えるプロセッサであって、
前記結合キャッシュメモリは、ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、マルチウェイのキャッシュを含む第２のキャッシュ部分とを含み、
前記結合キャッシュメモリは、前記第１のキャッシュ部分と、前記第２のキャッシュ部分とに非対称セットを有し、前記第１のキャッシュ部分は、前記第２のキャッシュ部分より大きく、
前記結合キャッシュメモリは、前記第１のキャッシュ部分および前記第２のキャッシュ部分のデータ置換のための連携置換ポリシを含む、
プロセッサ。
【請求項２】
前記第１のキャッシュ部分と前記第２のキャッシュ部分との間にデータ転送はない、
請求項１に記載のプロセッサ。
【請求項３】
前記メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置または前記ダイレクトマップの部分の単一の位置にキャッシュされ得る、
請求項１または２に記載のプロセッサ。
【請求項４】
前記連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１から３のいずれか一項に記載のプロセッサ。
【請求項５】
前記連携置換ポリシのためのビットは、前記マルチウェイの部分のウェイごとに前記第２のキャッシュ部分に格納される、
請求項４に記載のプロセッサ。
【請求項６】
マルチウェイ部分の第１のウェイ用の前記連携置換ポリシのための前記ビットは、
前記第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項５に記載のプロセッサ。
【請求項７】
前記マルチウェイのキャッシュの部分のサイズは、前記ダイレクトマップの部分のサイズと線形にスケールしない、
請求項１から６のいずれか一項に記載のプロセッサ。
【請求項８】
前記マルチウェイのキャッシュの部分のサイズは、前記ダイレクトマップの部分のピンニング要件と、衝突率との１または複数に少なくとも部分的に基づく、
請求項１から７のいずれか一項に記載のプロセッサ。
【請求項９】
結合キャッシュが２ｎキャッシュラインまたはセクタキャッシュラインであり、マルチウェイ部分のセット数が２ｍであり、前記マルチウェイ部分のウェイ数が２Ｗである全体サイズに関して、ｎはｍおよびｗの総和より大きい、
請求項１から８のいずれか一項に記載のプロセッサ。
【請求項１０】
メインメモリのメモリアドレス用のアクセスリクエストを受信する段階と、
前記メモリアドレス用の結合キャッシュのヒットまたはミスがあるかどうかを判定する段階であって、結合キャッシュメモリは、
ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、
マルチウェイキャッシュを含む第２のキャッシュ部分とを有し、前記第２のキャッシュ部分は、前記第１のキャッシュ部分より小さい、
段階と、
前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする段階と、
前記第１のキャッシュ部分および前記第２のキャッシュ部分の両方のミスに関して、前記第１のキャッシュ部分および前記第２のキャッシュ部分のための連携置換ポリシに従って、前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する段階と、
を備える方法。
【請求項１１】
前記メインメモリのアドレスは、マルチウェイの部分のウェイのいずれかの位置、またはダイレクトマップ部分の単一の位置にマッピングされ得る、
請求項１０に記載の方法。
【請求項１２】
前記連携置換ポリシに従ってデータを置換する段階は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１０または１１に記載の方法。
【請求項１３】
前記第２のキャッシュ部分の前記連携置換ポリシのためにビットを格納する段階をさらに備える
請求項１２に記載の方法。
【請求項１４】
マルチウェイの部分の第１のウェイ用の前記連携置換ポリシのためのビットは、
前記第１のウェイのエントリとマルチウェイの部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項１３に記載の方法。
【請求項１５】
前記ＬＲＵアルゴリズムの前記適用は、前記第１のキャッシュ部分または前記第２のキャッシュ部分の置換位置のために複数の優先順位を含む、
請求項１２に記載の方法。
【請求項１６】
前記複数の優先順位は、
有効データがマップエントリに格納されていない場合、ダイレクトマップ部分の前記マップエントリにキャッシュされるべきデータを格納することを規定する第１の優先順位と、
有効データが前記マップエントリに格納されていない場合、マルチウェイ部分のマップブロックにキャッシュされるべきデータを格納することを規定する、前記第１の優先順位より低い第２の優先順位と、
ダイレクトマップエントリが対応する全てのマルチウェイエントリより古い場合、前記ダイレクトマップ部分のブロックにキャッシュされるべきデータを格納することを規定する、前記第２の優先順位より低い第３の優先順位と、
特定のウェイのエントリが対応するダイレクトマップエントリより古く、それが前記マルチウェイ部分のより古い前記エントリの一部である場合、前記マルチウェイ部分の前記特定のウェイのブロックにキャッシュされるべきデータを格納することを規定する、前記第３の優先順位より低い第４の優先順位と、
前記マルチウェイ部分の前記ウェイのいずれかのブロックにキャッシュされるべきデータを格納することを規定する、前記第４の優先順位より低い第５の優先順位と
を含む、
請求項１５に記載の方法。
【請求項１７】
コンピューティングシステム用のデータ記憶のためのメインメモリと、
無線データ送信用の送信機および受信機と、
プロセッサと
を備えるコンピューティングシステムであって、
前記プロセッサは、データ処理用の１または複数の処理コアと、
前記１または複数の処理コア用のメインメモリからのデータをキャッシュする結合キャッシュメモリと
を含み、
前記結合キャッシュメモリは、ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含み、
前記結合キャッシュメモリは、非対称セットの結合キャッシュであり、前記第１のキャッシュ部分は、前記第２のキャッシュ部分より大きく、
前記結合キャッシュメモリは、前記第１のキャッシュ部分および前記第２のキャッシュ部分のデータ置換のために連携置換ポリシを含む、
コンピューティングシステム。
【請求項１８】
前記メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置またはダイレクトマップ部分の単一の位置にキャッシュされ得る、
請求項１７に記載のコンピューティングシステム。
【請求項１９】
前記連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１７または１８に記載のコンピューティングシステム。
【請求項２０】
前記連携置換ポリシのためのビットは、マルチウェイ部分のウェイごとに前記第２のキャッシュ部分に格納される、
請求項１９に記載のコンピューティングシステム。
【請求項２１】
前記マルチウェイ部分の第１のウェイ用の前記連携置換ポリシのための前記ビットは、
前記第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項２０に記載のコンピューティングシステム。
【請求項２２】
メインメモリのメモリアドレスのためにアクセスリクエストを受信する手順と、
前記メモリアドレスのために結合キャッシュにヒットまたはミスがあるかどうかを判定する手順と、
第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする手順と、
前記第１のキャッシュ部分および前記第２のキャッシュ部分の両方のミスに関して、前記結合キャッシュのために連携置換ポリシに従って、前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する手順と
を備える動作をコンピュータに実行させる
プログラムであって、
結合キャッシュメモリは、
ダイレクトマップのキャッシュを含む前記第１のキャッシュ部分と、
マルチウェイキャッシュを含む前記第２のキャッシュ部分とを含む、
プログラム。
【請求項２３】
前記メインメモリのアドレスは、前記第２のキャッシュ部分の前記マルチウェイキャッシュのウェイのいずれかの位置、または前記第１のキャッシュ部分の前記ダイレクトマップのキャッシュの単一の位置にマッピングされ得る、
請求項２２に記載のプログラム。
【請求項２４】
前記連携置換ポリシに従ってデータを置換する手順は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項２２または２３に記載のプログラム。
【請求項２５】
請求項２２から２４のうちのいずれか一項に記載のプログラムを格納するためのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に説明される実施形態は、概して、電子デバイスの分野に関し、より詳細には、非対称セットの結合キャッシュに関する。
【背景技術】
【０００２】
コンピュータメモリにおいて、キャッシュメモリ（単に、キャッシュとも呼ばれる）は、様々に実装され得、メモリ位置が単一の位置にマッピングされるダイレクトマップキャッシュと、メモリ位置が特定セットの位置にマッピングされるマルチウェイキャッシュとを含む。
【０００３】
ダイレクトマップキャッシュは、キャッシュ実装の簡略化から生ずる特定の利点がある。動作において、メモリ素子が存在するかどうかを決定すべく、単一のキャッシュ位置をサーチする必要があるに過ぎない。しかしながら、ダイレクトマップキャッシュは、低連想度の欠点があり、その結果、ピンニング（キャッシュのアドレスをロックする）も問題となる。
【０００４】
対照的に、マルチウェイキャッシュは、連想度およびピンニング問題に対処することができる。しかしながら、マルチウェイキャッシュは、より複雑であり、セットの各キャッシュ位置がサーチされなくてはならないので、要素がキャッシュに存在するかどうかを決定すべくより多くのサーチを必要とする。さらに、複数のキャッシュの使用が、著しい複雑さを構成要素の設計および動作に加える。
【図面の簡単な説明】
【０００５】
本明細書に記載される実施形態は、例として図示されるものであり、限定のためにではなく、添付の図面における図において、同様の参照符号は、類似の要素を指す。
【図１】実施形態による非対称セットの結合キャッシュの説明図である。
【図２】ダイレクトマップキャッシュの説明図である。
【図３】マルチウェイキャッシュメモリの説明図である。
【図４】実施形態による連携置換ポリシ付きの非対称セットの結合キャッシュを含むプロセッサの説明図である。
【図５】結合キャッシュ動作のためのプロセスを説明するフローチャートである。
【図６Ａ】実施形態による結合疑似ＬＲＵの第１の部分の計算を説明するフローチャートである。
【図６Ｂ】実施形態による結合疑似ＬＲＵの第２の部分の計算を説明するフローチャートである。
【図７】実施形態による結合キャッシュの置換優先順位を説明するフローチャートである。
【図８】結合キャッシュメモリを含む電子装置またはシステムの実施形態の説明図である。
【発明を実施するための形態】
【０００６】
本明細書に説明される実施形態は、概して、非対称セットの結合キャッシュに関する。  本説明の目的で、「キャッシュメモリ」または「キャッシュ」は、メインメモリからなど、別のメモリからの頻繁に使用される情報を格納するメモリを意味する。「メインメモリ」または「プライマリメモリ」は、プロセッサまたはコンピュータが主にプログラムおよびデータにアクセスするコンピュータメモリである。メインメモリは、概してランダムアクセスメモリ（ＲＡＭ）である。
【０００７】
より具体的には、ＣＰＵキャッシュは、頻繁に使用されるアドレスにアクセスするコンピュータの中央処理装置（ＣＰＵ）によって利用されるキャッシュであり、これによりメインメモリからのデータへのアクセスを低減する。キャッシュは、頻繁に使用されるメインメモリ位置からのデータを格納するより小型でより高速のメモリである。データキャッシュは概して、より大きなキャッシュレベルの階層として編成され、Ｌ１はプロセッサコアに最も近い小型で高速のキャッシュであり、Ｌ２およびＬ３は、ＣＰＵから徐々に遠くに離れるにつれて、徐々により大型でより低速のキャッシュとなる。
【０００８】
「ダイレクトマップキャッシュ」または「ダイレクトマップメモリキャッシュ」は、メモリの任意の特定の素子が、キャッシュメモリの特定の単一のキャッシュ位置にマッピングされるキャッシュを意味する。
【０００９】
「マルチウェイキャッシュ」または「マルチウェイメモリキャッシュ」は、メモリの任意の特定の素子が、キャッシュメモリの特定セットの複数のキャッシュ位置にマッピングされるキャッシュを意味する。例えば、２ウェイメモリキャッシュは、メインメモリの特定の位置がキャッシュメモリの２つのメモリ位置のセットにマッピングされるキャッシュである。対照的に、完全連想型キャッシュメモリは、メインメモリの任意の特定の位置がキャッシュメモリの任意の位置にキャッシュされ得るキャッシュメモリである。
【００１０】
２ＬＭ（ニアメモリおよびファーメモリを含む２レベルメモリ）技術の特定用途において、キャッシュ実装のための解決策は、以下を含む場合がある。
（１）非常に大きいタグ（ｔａｇ）を必要とするマルチウェイキャッシュ（ＭＷ）。非常に大きいニアメモリキャッシュ上では、中央処理装置（ＣＰＵ）ダイ上にタグの全てを維持するのは非実用的である。
（２）ダイレクトマップキャッシュ（ＤＭ）が、メタデータのタグのためのに高帯域幅メモリ（ＨＢＭ）の予備の誤り訂正符号（ＥＣＣ）ビットを利用し得るダイレクトマップキャッシュ。（「高帯域幅メモリ（ＨＤＭ）ＤＲＡＭ」、ＪＥＤＥＣ規格ＪＥＳＤ２３５、２０１３年１０月）
【００１１】
処理環境において、ダイレクトマップキャッシュは、キャッシュタグのためにメモリメタデータ（予備ＥＣＣビット）を使用できるフローの簡略化、および簡易の実装の利点がある。しかしながら、ダイレクトマップキャッシュには低連想度の欠点があり、その結果、ピンニング（キャッシュにアドレスをロックする）がまた、問題となる。対照的に、マルチウェイキャッシュは、結合性およびピンニング問題に対処する。しかしながら、マルチウェイキャッシュは通常、キャッシュのために必要とされるキャッシュタグを提供すべくメモリメタデータビットを利用することができず、その結果、極めて大きくなり得る。
【００１２】
そのような問題は、相補型マルチウェイキャッシュがダイレクトマップキャッシュと連携して動作することにより少なくとも部分的に解決され得る。特定の解決策は、マルチウェイキャッシュをメインのダイレクトマップキャッシュへの「ビクティムキャッシュ」として利用することを含み得る。概して、ビクティムキャッシュは、置換時にＣＰＵキャッシュからエビクトされたデータ（キャッシュされたデータのラインなど）を保持するために使用されるキャッシュである。従って、マルチウェイキャッシュが、ダイレクトマップキャッシュのためのビクティムキャッシュとして機能しているなら、データがダイレクトマップキャッシュに置換された場合、マルチウェイキャッシュへと書き込まれる。このフローにより、連想度の問題に対処し、キャッシュのデータのピンニングを可能にする。しかしながら、その実装の代償は、メインのダイレクトマップキャッシュと、ビクティム多用途キャッシュとの間の数多くの転送である。
【００１３】
いくつかの実施形態において、単一の結合キャッシュは、第１のダイレクトマップ部分と、第２のマルチウェイ部分とを含み、ダイレクトマップ部分およびマルチウェイ部分は、連携置換ポリシによって管理される。いくつかの実施形態において、連携置換ポリシは、新たなフィルデータが置換ポリシに従ってキャッシュ部分のどちらかのデータを置換することができることを規定する。このように、２つのキャッシュ間のデータ転送は、ビクティムキャッシュ実装に反して、回避され得る。いくつかの実施形態において、解決策は従って、キャッシュ部分のデータアレイ間の任意のデータ転送なしで、上記の２つの解決策を両方のキャッシュ部分に対処する連携置換ポリシと結合することを含む。
【００１４】
ダイレクトマップキャッシュ部分とマルチウェイキャッシュ部分とを結合する非対称キャッシュ解決策の実装により、簡易なスケーラビリティを可能にする。いくつかの実施形態において、マルチウェイキャッシュ部分のサイズは、ダイレクトマップキャッシュ部分のピンニング要件と衝突率との１または複数によって少なくとも部分的に派生される。２つのキャッシュ部分は、共にスケーリングする必要はない。ピンニング要件は、メモリユニット間で著しく異ならず、ダイレクトマップ衝突は、比較的小さいマルチウェイキャッシュで解決され得るからである。ダイレクトマップ部分のオーバーヘッドは、最小であり、従って、この部分は、比較的低いコストで任意のサイズへと拡張され得る。
【００１５】
図１は、実施形態による非対称セットの結合キャッシュの説明図である。いくつかの実施形態において、ダイレクトマップキャッシュおよびマルチウェイキャッシュのそれぞれの問題を克服すべく、非対称セットの結合メモリ１００（結合キャッシュとも呼ばれる）が形成され、利用される。いくつかの実施形態において、結合キャッシュ１００は、２つのキャッシュ部分、第１のダイレクトマップ部分１１０（第１のキャッシュ部分とも呼ばれる）および第２のマルチウェイ部分１２０（第２のキャッシュ部分とも呼ばれる）に区分けされ、第１のダイレクトマップ部分は、第２のマルチウェイ部分より大きい。第１のキャッシュ部分１１０および第２のキャッシュ部分１２０は、簡潔に図示されており、結合キャッシュ１００内の第１のキャッシュ部分１１０および第２のキャッシュ部分１２０のスケールまたは位置を示すことを意図しない。第２のマルチウェイ部分は、上記のように２ウェイキャッシュであり得るが、実施形態は、マルチウェイキャッシュの特定数のウェイに限定されない。いくつかの実施形態において、結合キャッシュは、メインメモリ１３０からのデータをキャッシュするように動作可能である。メインメモリは、これに限定されないが、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含み得る。
【００１６】
図２は、ダイレクトマップキャッシュの説明図である。図１に示されるダイレクトマップ部分１１０などのダイレクトマップキャッシュは、任意の特定のメモリ位置が、キャッシュメモリの具体的なキャッシュ位置にマッピングされるキャッシュである。例えば、図２は、メインメモリ２３０の位置に含まれるデータキャッシングのためのダイレクトマップキャッシュメモリ２１０を示し、この簡単な例では、キャッシュメモリ２１０は、４つのキャッシュラインを含み、メインメモリ２３０は、１６個のデータ位置を含む。図示されるように、キャッシュメモリの各キャッシュラインは、少なくとも有効フィールド（任意のデータがキャッシュラインに格納されているかどうかを示す有効ビットに対して、「Ｖ」として示される）、修正（または、ダーティ）フィールド（対応するメモリブロックが変更されているかどうかを示す修正ビットに対して、「Ｍ」として示される）、エントリ用のタグを保持するタグフィールド、およびキャッシュデータを保持するデータフィールドを含む。メインメモリ２３０の各位置は、キャッシュメモリの記憶用に単一のキャッシュラインにマッピングされる。例えば、メインメモリの位置０００１は、キャッシュメモリ２１０のライン０１にマッピングされる。しかしながら、位置０１０１もまた、メインメモリの特定の他の位置と同様に、ダイレクトマップキャッシュメモリ２１０の同じライン０１にマッピングされる。この理由により、データは、どのメモリ位置がアクセスされたかに応じてダイレクトマップキャッシュメモリにおいてしばしば置換され得る。
【００１７】
図３は、マルチウェイキャッシュメモリの説明図である。図３に示されるように、図１に示される第２のマルチウェイ部分１２０などのマルチウェイキャッシュメモリは、キャッシュ動作のために複数のウェイを含む。マルチウェイキャッシュは、これに限定されないが、メインメモリ３３０からのデータのキャッシングのために２ウェイキャッシュメモリ３２０を含み得る。２ウェイキャッシュメモリ３２０に対して、メインメモリ３３０の各位置は、キャッシュメモリ３２０の２つのキャッシュラインにマッピングされる。
【００１８】
例えば、メインメモリ３３０の位置０００１は、２ウェイの各々のマルチウェイキャッシュメモリ１１０のキャッシュラインにマッピングされ、メインメモリ３３０の位置０００１は、マルチウェイキャッシュメモリ３２０のライン０１（ウェイ＝０およびセット＝１）と、ライン１１（ウェイ＝１およびセット＝１）とにマッピングされる。
【００１９】
再度図１を参照すると、結合キャッシュ１００は、図２に示されるメインメモリ２３０または図３に示されるメインメモリ３３０等のメインメモリ１３０からのデータをキャッシュするように動作し得る。結合キャッシュ１００は、コンピューティングシステム用のＣＰＵなどのプロセッサの一部であり得る。いくつかの実施形態において、小さいマルチウェイキャッシュ部分および大きいダイレクトマップ部分を含む結合キャッシュは、小さいオンダイ制御アレイ（ＬＲＵ実装用のＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）ビット、有効ビットＶ、修正（ダーティ）ビットＭおよびタグを含む）のみを必要とし、ニアメモリチップのメタデータとして実装され得る。
【００２０】
非対称セットの結合キャッシュの実施形態の実装において、以下の特性が適用され得る。
（ａ）結合キャッシュ１００がセクタキャッシュである場合、キャッシュライン（ＣＬ）用またはセクタキャッシュライン（ＳＰＬ）用の結合キャッシュ１００のキャッシュ部分１１０および１２０の両方に同じサイズがある。
（ｂ）結合キャッシュ１００の全体サイズ（ｔｏｔａｌ  Ｓｉｚｅ）は、
Ｓｉｚｅ＿Ｔｏｔａｌ＝２ｎＣＬ'ｓまたは２ｎＳＰＬ'ｓ    ［１］
である。  （ｃ）マルチウェイ部分１２０のセット（Ｓｅｔ）数は、
Ｓｅｔｓ＿ＭＷ＝２ｍ    ［２］
である。  （ｄ）マルチウェイ部分１２０用のウェイ（Ｗａｙ）数は、
Ｗａｙｓ＿ＭＷ＝２Ｗ        ［３］
である。
【００２１】
（ｅ）結合キャッシュ１００のサイズ、セット数、およびウェイ数間の関係：
ｎ＞ｍ＋ｗ        ［４］
【００２２】
結合キャッシュに対して式［１］−［４］にて与えられる上記の特性に基づいて、以下が結論され得る。
（ａ）ダイレクトマップ部分１１０のサイズ（Ｓｉｚｅ）は、
Ｓｉｚｅ＿ＤＭ＝２ｎ−（２（ｍ＋ｗ））    ［５］
である。  （ｂ）ダイレクトマップセット数とマルチウェイセット数との間の比は、
ｒ＝（２ｎ−（２（ｍ＋ｗ）））／（２（ｍ＋ｗ））＝（２（ｎ−ｍ−ｗ））−１    ［６］
である。
但し、ｒは常に正の整数である。
（ｃ）ダイレクトマップセットのｍｓｂ'ｓ（最上位ビット）（ｄｍｓｍ）の計算：
ｄｍｓｍ＝ｔａｇ  ｍｏｄ  ｒ    ［７］
但し、ｔａｇは、ａｄｄｒｅｓｓ  ＣＬ＿ａｄｄｒｅｓｓ｛ｍａｘ−ａｄｄｒｅｓｓ−ｂｉｔ：ｎ｝である。
（ｄ）値ＣＬ／ＳＰＬは、２１である。簡略化のために、ＣＬ＿ａｄｄｒｅｓｓは、アドレスビット｛ｍａｘ−ａｄｄｒｅｓｓ−ｂｉｔ：１｝、または
ＣＬ＿ａｄｄｒｅｓｓ＝＝ａｄｄｒｅｓｓ"  １  （右シフト、ゼロフィル）    ［８］
と呼ばれ得る。
【００２３】
いくつかの実施形態において、非対称セットの結合キャッシュにキャッシュされるメインメモリの各アドレス（ａｄｄｒｅｓｓ）は、
（ａ）マルチウェイセット＃（ＣＬ＿ａｄｄｒｅｓｓ  ｂｉｔｓ｛ｍ−１：０｝）の（２Ｗ）ウェイのうちの１つ、および
（ｂ）ダイレクトマップの単一のセットが、｛ＤＭＳＭ  ＩＩ  ＣＬ＿ａｄｄｒｅｓｓ｛ｎ−１：０｝であること
の各々へとマッピングされ得る。
【００２４】
その結果、マルチウェイ部分の各セットに対して、同じａｄｄｒｅｓｓ  ｂｉｔｓ  ＣＬ＿ａｄｄｒｅｓｓ｛ｍ−１：０｝を有するセットを関連付けられることが可能である。言い換えれば、マルチウェイキャッシュのセットの各々にマッピングされるダイレクトマップ部分には（ｒ＊２（ｎ−ｍ−ｗ））のセットがある。
【００２５】
結合非対称セットキャッシュの特定の例において、キャッシュ特性は、以下であり得る。  合計メモリ：４Ｍ  ＣＬ'ｓ（ｎ＝２２）；
１６ウェイ（ｗ＝４）；  マルチウェイキャッシュ：１Ｍ  ＣＬ'ｓ（ｍ＝１６）；  ダイレクトマップキャッシュ３Ｍ  ＣＬ'ｓ；  ＣＬ＿ａｄｄｒｅｓｓ  ｂｉｔｓ  ２９：０；  マルチウェイ部分用のセットは、ＣＬ＿ａｄｄｒｅｓｓ｛１５：０｝である；および  ダイレクトマップ部分用のセット：（ｔａｇ  ｍｏｄ３）  ＩＩ  ＣＬ＿ａｄｄｒｅｓｓ｛１９：０｝。
【００２６】
マルチウェイ部分のセットごとに、同一のａｄｄｒｅｓｓ  ｂｉｔｓ  ＣＬ＿ａｄｄｒｅｓｓ｛１５：０｝を有する４８個の結合セットがある。これらは、
（ｔａｇ  ｍｏｄ  ３＝０｝＊ＣＬ＿ａｄｄｒｅｓｓ｛１９：１６｝、
（ｔａｇ  ｍｏｄ  ３＝１｝＊ＣＬ＿ａｄｄｒｅｓｓ｛１９：１６｝および
（ｔａｇ  ｍｏｄ  ３＝２｝＊ＣＬ＿ａｄｄｒｅｓｓ｛１９：１６｝
である。
【００２７】
図４は、実施形態による非対称セットの結合キャッシュを含むプロセッサの説明図である。いくつかの実施形態において、図示されていない他の構成要素に加えて、プロセッサ４００は、データ処理用の１または複数のコア４３０と、第１のダイレクトマップ部分４１０（第１のキャッシュ部分とも呼ばれる）および第２のマルチウェイ部分４２０（第２のキャッシュ部分とも呼ばれる）を含む非対称セットの結合キャッシュ４０５（結合キャッシュとも呼ばれる）を含む、頻繁に使用されるデータの記憶用に１または複数のキャッシュメモリとを含み、第１のダイレクトマップ部分は、第２のマルチウェイ部分より大きい。図１と同様に、結合キャッシュ４０５の第１のキャッシュ部分４１０および第２のキャッシュ部分４２０は、簡潔に図示されており、結合キャッシュ４０５内の第１のキャッシュ部分４１０および第２のキャッシュ部分４２０のスケールまたは位置、またはプロセッサ４００内の結合キャッシュのスケールまたは位置を示すことを意図しない。
【００２８】
いくつかの実施形態において、結合キャッシュ４０５は、第１のキャッシュ部分４１０および第２のキャッシュ部分４２０用の連携置換ポリシ４５０に従属する。いくつかの実施形態において、連携置換ポリシは、本明細書において「結合疑似最低使用頻度」（結合疑似ＬＲＵまたはＣＰ−ＬＲＵ）ポリシとも呼ばれ得るポリシであり、最低使用頻度ポリシが、第１のダイレクトマップ部分４１０および第２のマルチウェイ部分４２０に格納されるデータに連携して適用される。  しかしながら、連携置換ポリシは、結合疑似ＬＲＵ実装に限定されず、他の実施形態において他の置換ポリシを実装し得る。１つの例において、代替的な実施形態は、第１のダイレクトマップ部分４１０または第２のマルチウェイ部分４２０の置換のために選択された位置がランダムに選択されるランダム置換アルゴリズムを利用し得る。
【００２９】
連携置換ポリシ４５０の適用において、ＬＲＵの適用は通常、ＣＰＵダイ上に実装されるべきであることが留意されるべきであり、ＬＲＵが、メモリのＧＢ（ギガバイト）ごとに２ＭＢ（メガバイト）、またはメモリの８ＧＢ（ギガバイト）ごとに１６ＭＢ（メガバイト）を必要とし得る６４バイトキャッシュラインであるなら、ダイレクトマップセットごとに１ビットですら非常に高価であり得る。いくつかの実施形態において、連携置換ポリシは第１のダイレクトマップ部分４１０上のＬＲＵビットを不要とし、代わりに図４にＬＲＵビット４２５として示される第２のマルチウェイ部分４２０のみをこの目的で使用する。
【００３０】
いくつかの実施形態において、ＬＲＵ置換ポリシを利用する結合キャッシュ４０５用のための連携置換ポリシ４５０は、最低使用頻度（ＬＲＵ）比較を示すべく、結合キャッシュ４０５のマルチウェイ部分４２０におけるウェイごとに２つのＬＲＵビット４２５を実装する。いくつかの実施形態において、特定のウェイ用の２ビットＭＷ−ＬＲＵのビット（ここでは、第１のウェイと呼ばれる）は、
ビット０：第１のウェイのエントリ対マルチウェイ部分の他のウェイを比較し、ＬＲＵが第１のウェイ（ＭＷ−ＬＲＵ）に格納されることを示す、
ビット１：第１のウェイのエントリ対、対応するダイレクトマップ位置を比較し、ＬＲＵが第１のウェイ（ＬＲＵ対ＤＭ）に位置付けられることを示す、および
ダイレクトマップセットごとにＬＲＵビットは無いこと
を含む。
【００３１】
しかしながら、実施形態は、特定のビット順序またはビット数に限定されず、マルチウェイ部分のウェイのために追加ビットを含み得る。
【００３２】
結合疑似ＬＲＵポリシの実装は、決定がマルチウェイエントリ間、またはマルチウェイエントリと単一のダイレクトマップセットとの間で行われるという事実に基づく。ダイレクトマッピングは、マップメインメモリの任意の位置が単一のキャッシュ位置にマッピングされることを保証するので、異なるダイレクトマップセット間にＬＲＵ関係はない。
【００３３】
さらに、ＬＲＵビットの数は、マルチウェイセットの数に比例し、非対称セットの結合キャッシュのダイレクトマップセットの数より小さいことが留意される。マルチウェイキャッシュ部分４２０のサイズは、結合キャッシュのサイズと線形にスケールアップする必要はなく、従ってＬＲＵコストは、ダイレクトマップキャッシュ上の従来のＬＲＵよりはるかに小さい。この特性は、ＣＰＵ上のキャッシュのための物理コストを著しく低減するように作用するので複数のＧＢのニアメモリキャッシュにとって非常に重要である。
【００３４】
いくつかの実施形態において、結合キャッシュ４０５にアクセスすると、ルックアップに加えて、ダイレクトマップセットの選択に関する全てのウェイとの比較が行われる（ａｄｄｒｅｓｓ＆ｔａｇ  ｍｏｄ  Ｒのビット２９：２６）。その結果は、ＤＭマッチベクトルと呼ばれる１６ビットベクトルである。
【００３５】
図５は、結合キャッシュ動作のプロセスを説明するフローチャートである。いくつかの実施形態において、５００においてメインメモリ（ＣＬ＿ａｄｄｒｅｓｓに関連する）のメモリアドレスへのアクセス時に、５０２において結合キャッシュにヒットがある（アドレスが結合キャッシュに存在することが示された）かどうかについて判断がなされ、結合キャッシュは、図１の結合キャッシュ１００に示されるように、ダイレクトマップ部分およびマルチウェイ部分を含む。いくつかの実施形態において、判断は、５１０において、マルチウェイ部分のヒットがあるかどうかでなされる。いくつかの実施形態において、マルチウェイ部分のためのルックアップは、ＣＰＵダイ上のマルチウェイタグの位置のせいと、マルチウェイキャッシュ部分の比較的小さいサイズのせいとで、非常に迅速である。ルックアップがタグヒットである場合、データは、５１２において、マルチウェイキャッシュ部分からリクエスタのためにアクセスされる。
【００３６】
いくつかの実施形態において、５１０において、マルチウェイキャッシュ部分にミスがある場合、次に、５２０において、ダイレクトマップキャッシュ部分にヒットまたはミスがあるかどうかの決定があり、それは、ダイレクトマップアドレスを読み出し、ダイレクトマップキャッシュのためのメタデータタグを比較することにより実行され得る。しかしながら、実施形態は、マルチウェイキャッシュ部分およびダイレクトマップキャッシュ部分のためのルックアップの特定の順序に限定されない。代替的な実施形態において、５３０において、ダイレクトマップキャッシュ部分およびマルチウェイキャッシュ部分の両方のための並列のルックアッププロセスがあり得る。
【００３７】
いくつかの実施形態において、５４０において、ダイレクトマップキャッシュ部分にミスがある場合、従って、結合キャッシュの両方の部分にミスがある場合、５２４において、マルチウェイセットのＬＲＵと、マルチウェイセットの各々およびダイレクトマップセットのＶ（有効）ビットとのチェックが行われる。これらのセットのうち最低使用頻度セットが、５４０において、ダイレクトマップ部分に含まれる場合、データは、５４２において、ダイレクトマップキャッシュラインからエビクトされ、新しいデータがそこにフィルされる（すなわち、新しいデータが格納される）。これらのセットのうち最低使用頻度セットが、５４０において、マルチウェイ部分に含まれる場合、次に、データは、５４４において、マルチウェイキャッシュラインからエビクトされ、新しいデータがそこにフィルされる。最低使用頻度セットの位置の決定は、５３０において、例えば、図７に示される優先順位の適用を含み得る。しかしながら、実施形態は、ＬＲＵ置換ポリシに限定されず、従って、他の実施形態において、要素５２４および５４０は、置換位置を決定すべく異なるポリシを実装し得、異なるポリシは、１つの例において、ダイレクトマップキャッシュ部分またはマルチウェイキャッシュ部分をランダムに選択し得るランダム置換ポリシを含む。
【００３８】
図６Ａは、実施形態による結合疑似ＬＲＵの第１の部分の計算を説明するフローチャートである。図６Ａに示されるように、６００において、図１の結合キャッシュ１００に示されるように、ダイレクトマップ部分およびマルチウェイ部分を含む結合キャッシュ上にヒットがあると、６０５において、ＬＲＵビットの計算が行われる。いくつかの実施形態において、ＬＲＵ対ＤＭビットの計算は、以下のとおりである。
（ａ）６１０において、ターゲットが結合キャッシュのＤＭ部分にある場合、６１５において、ベクトルによって選択されたウェイのＬＲＵ対ＤＭビットの全てがクリアされ（例えば、ゼロにセットされ）、ＤＭは、同じＤＭセットに関連する全てのＭＷエントリより最近に使用されたことを示す。
（ｂ）６１０において、ターゲットが結合キャッシュのＭＷ部分にある場合、６２０において、ターゲットのＬＲＵ対ＤＭビットがセットされ、ＭＷのターゲットがＤＭセットより最近に使用されたことを示す。
【００３９】
図６Ｂは、実施形態による結合疑似ＬＲＵの第２の部分の計算を説明するフローチャートである。いくつか実施形態において、６５０において、ＭＷ−ＬＲＵビット計算は、以下のとおりである。
（ａ）６５５において、ターゲットＭＷ−ＬＲＵビットをセットし、
（ｂ）６６０において、全ての他のＭＷ−ＬＲＵビットがセットされた場合、他の全てをクリアする。
【００４０】
図７は、実施形態による結合キャッシュの置換の優先順位を説明するフローチャートである。しかしながら、実施形態は、特定セットの置換優先順位に限定されず、他の実装において他のタイプの優先順位を含み得る。図１に示される結合キャッシュ１００などの、ダイレクトマップキャッシュ部分およびマルチウェイキャッシュ部分を含む結合キャッシュにおけるキャッシュミスの場合、ダイレクトマップ部分およびマルチウェイ部分のデータを置換する可能性がある。いくつかの実施形態において、連携置換ポリシによる結合キャッシュのキャッシュミス後のデータ置換のための位置選択は、複数の優先順位に従って実行される。いくつか実施形態において、置換のための優先順位は、ダイレクトマップ部分およびマルチウェイ部分に含まれるデータの有効性および年齢に基づく。
【００４１】
例において、置換のための優先順位は、これに限定されないが、以下を含み得る。  優先順位０（第１の最も高い優先順位）に関して、７１０において、ダイレクトマップキャッシュラインが無効である（有効データがダイレクトマップキャッシュラインに格納されていない）場合、データは、７１５において、ダイレクトマップキャッシュラインに置かれる。これは、機会があるときにダイレクトマップ部分に有効データを格納すべく行われる。
【００４２】
そうでない場合、優先順位１（第１の優先順位より低い優先順位である第２の優先順位）に関して、７２０において、ダイレクトマップキャッシュラインが有効である場合でマルチウェイキャッシュラインのいずれかが無効である場合、７２５において、機会があるときにそのような位置に有効データを格納すべく、無効なマルチウェイキャッシュラインにデータがフィルされる。
【００４３】
そうでない場合、優先順位２（第２の優先順位より低い優先順位である第３の優先順位）に関して、要素７３０において、非ゼロのＤＭマッチベクトルのＬＲＵ対ＤＭビットの全てが「１」である場合、７３５において、ダイレクトマップエントリが全ての対応するマルチウェイエントリより古いので、ダイレクトマップ部分の値を置換する。
【００４４】
そうでない場合、優先順位３（第３の優先順位より低い優先順位である第４の優先順位）に関して、要素７４０において、マルチウェイ値がＬＲＵ対ＤＭおよびＭＷ−ＬＲＵの両方をゼロとして有する場合、７４５において、そのような値を置換し、そのような値はその対応するダイレクトマップエントリより古く、それがマルチウェイ部分のより古いエントリの一部である。
【００４５】
そうでない場合、優先順位４（第４の優先順位より低い優先順位である第５の優先順位）に関して、７５５において、ゼロ値を有するＭＷ−ＬＲＵのマルチウェイエントリを選択する。
【００４６】
図８は、結合キャッシュメモリを含む電子装置またはシステムの実施形態の説明図である。この説明図では、本説明に関係のない特定の標準的かつ周知の構成要素は示さない。例えば、単一のチップ上で複数の要素を組み合わせたＳｏＣ（システムオンチップ）を含む別個の要素として示される要素は、組み合わせてもよい。装置またはシステム（概してシステム８００と呼ばれる）は、これに限定されないが、コンピューティングシステムを含み得る。
【００４７】
いくつかの実施形態において、システム８００は、処理情報用の相互接続８０２に結合される１または複数のプロセッサ８３０などの処理手段を含み得る。プロセッサ８３０は、１または複数の物理プロセッサおよび１または複数の論理プロセッサを含み得る。いくつかの実施形態において、プロセッサは、１または複数の汎用プロセッサまたは専用プロセッサを含み得る。図示されていない数多くの他の要素に加えて、プロセッサ８３０は、１または複数のコアおよびＬ１キャッシュ８３２、および１または複数のＬ２キャッシュ８３４を含み得る。さらに、１または複数のＬ３キャッシュ８３６は、プロセッサ８３０の一部であり得、マザーボードに取り付けられ得、そうでなければシステム８００に実装され得る。
【００４８】
いくつかの実施形態において、プロセッサ８３０は、図３および４に示されるように、非対称セットの結合キャッシュ８４０を含み得、結合キャッシュ８４０は、ダイレクトマップ部分８４４およびマルチウェイ部分８４６を含み、ダイレクトマップ部分８４４は、マルチウェイ部分８４６より大きい。プロセッサおよびキャッシュの構造は、実装に応じて異なり得る。１つの実施形態において、コアおよびＬ１、Ｌ２、Ｌ３キャッシュ８３２−８３６は、結合キャッシュ８４０とインターフェースで接続し得、結合キャッシュ８４０は、外部相互接続とインターフェースで接続し得る。別の実施形態において、コア８３２からのＩ／Ｏアクセスは、結合キャッシュ８４０をバイパスし得る。しかしながら、実施形態は、これらの特定の実装に限定されない。いくつかの実施形態において、ダイレクトマップ部分８４４およびマルチウェイ部分８４６は、例えば、１つの例において、ＬＲＵベースの置換ポリシなどの連携置換ポリシに従属し、それは、図５、６Ａ、６Ｂおよび７に示されるように実装され得る。
【００４９】
相互接続８０２は、データ送信用の通信手段である。相互接続８０２は、簡潔に単一の相互接続として示されているが、複数の異なる相互接続またはバスを表し得、そのような相互接続へのコンポーネント接続は変更し得る。図８において示された相互接続８０２は、適切なブリッジ、アダプタ、もしくはコントローラにより接続された任意の１または複数の別個の物理バス、ポイントツーポイント接続、またはそれらの両方を表す抽象概念である。
【００５０】
いくつかの実施形態において、装置８００は、プロセッサ８３０により実行されるべき命令および情報を格納するためのメインメモリ８０６としてランダムアクセスメモリ（ＲＡＭ）または他のダイナミック記憶デバイスもしくは要素をさらに含む。メインメモリ８０６は、これに限定されないが、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含み得る。いくつかの実施形態において、メインメモリ８０６のデータは、１または複数の結合キャッシュ８４０を含む１または複数のキャシュを利用してキャッシュされる。システム８００はさらに、特定の素子の記憶のために、例えば、フラッシュメモリを含む１または複数の不揮発性メモリ素子８０８を含み得る。システム８００はまた、プロセッサ８３０に対する静的情報および命令を格納するためのリードオンリメモリ（ＲＯＭ）８１０または他の静的記憶デバイス、および、データ記憶のためのソリッドステートドライブのようなデータ記憶装置８１２を含み得る。
【００５１】
いくつかの実施形態において、システム８００は、相互接続８０２に結合される１または複数の送信機または受信機８１４を含む。いくつかの実施形態において、システム８００は、無線通信を介したデータの送信および受信のために、無線送信機、受信機、またはその両方を用いてダイポールまたはモノポールアンテナなどの１または複数のアンテナ８１８と、有線通信を介したデータの送信および受信のために、１または複数のポート８１６とを含み得る。
【００５２】
いくつかの実施形態において、システム８００は、ハードボタンおよびソフトボタン、ジョイスティック、マウスまたは他のポインティングデバイス、音声コマンドシステム、もしくはジェスチャ認識システムを含む、データ入力のための１または複数の入力デバイス８２０を有する。
【００５３】
いくつかの実施形態において、システム８００は、出力ディスプレイ８２２を有し、ディスプレイ８２２はユーザに情報またはコンテンツを表示するために、液晶ディスプレイ（ＬＣＤ）、または任意の他のディスプレイ技術を含み得る。いくつかの環境において、ディスプレイ８２２は、入力デバイス８２２の少なくとも一部としてもまた利用されるタッチスクリーンを含み得る。
【００５４】
システム８００はまた、バッテリまたは他の電源８２４を含み得、これらは、装置８００において電力を供給または生成するための太陽電池、燃料電池、充電されたコンデンサ、近接場誘導結合、または他のシステム、もしくはデバイスを有し得る。電源８２４により供給された電力は、システム８００の要素に必要とされるように配分され得る。
【００５５】
上の説明において、説明の目的のために、数多くの具体的な詳細が、説明される実施形態の徹底的な理解を与えるべく説明されている。しかしながら、これらの具体的な詳細のいくつかがなくても、様々な実施形態が実施可能である場合があることは、当業者には明らかであろう。他の場合において、周知の構造およびデバイスが、ブロック図の形態で示されている。中間構造が、図示された構成要素の間にあってもよい。本明細書に説明または例示される構成要素は、図示または説明されていない付加的な入力または出力を備えてもよい。
【００５６】
様々な実施形態は、様々なプロセスを含んでよい。これらのプロセスは、ハードウェア構成要素により実行してもよく、または、コンピュータプログラムまたは機械実行可能命令内に組み入れてもよく、このコンピュータプログラムまたは機械実行可能命令を用いて、汎用もしくは専用プロセッサまたは命令がプログラミングされた論理回路に、当該プロセスを実行させてもよい。または、当該プロセスは、ハードウェアとソフトウェアとを組み合わせることにより実行してもよい。
【００５７】
様々な実施形態のいくつかの部分は、コンピュータプログラム製品として提供されてよく、このコンピュータプログラム製品は、コンピュータプログラム命令がその上に格納されたコンピュータ可読媒体を含んでよく、当該コンピュータプログラム命令を用いて、コンピュータ（または他の電子デバイス）をプログラムし、１または複数のプロセッサによる実行をできるようにし、特定の実施形態にかかるプロセスを実行するようにしてもよい。コンピュータ可読媒体は、磁気ディスク、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、光磁気ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能なプログラム可能読み取り専用メモリ（ＥＰＲＯＭ）、電気消去可能なプログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、磁気もしくは光学カード、フラッシュメモリ、または、電子的命令を格納するのに適した他の種類のコンピュータ可読媒体、を含んでいてもよいが、これらに限定されるものではない。さらに、実施形態はまた、コンピュータプログラム製品としてダウンロードしてもよく、プログラムは、離れた場所にあるコンピュータから要求側コンピュータへ転送してもよい。
【００５８】
当該方法の多くは、最も基本的な形態で説明されているが、本実施形態の基本範囲から逸脱しない限り、当該方法のいずれかにプロセスが追加されるか、またはそのいずれかから削除を行うことができ、記載されているメッセージに情報を加減することができる。多くのさらなる修正および適応がなされ得ることは、当業者には明らかだろう。特定の実施形態は、概念を限定するためにではなく、説明するために提供されている。実施形態の範囲は、上述の具体的な例により決定されるものではなく、以下の請求項によってのみ決定される。
【００５９】
要素「Ａ」が要素「Ｂ」に（と）結合されていると言う場合、要素Ａは、要素Ｂと直接的に結合されてもよく、または、例えば、要素Ｃを介して間接的に結合されてもよい。明細書または請求項において、構成要素、特徴、構造、プロセス、または特性Ａが、構成要素、特徴、構造、プロセス、または特性Ｂの「原因」となることを述べる場合、これは、「Ａ」は「Ｂ」の少なくとも部分的な原因であることを意味するが、また、「Ｂ」の原因となることを補助する少なくとも１つの他の構成要素、特徴、構造、プロセス、または特性があってもよいことも意味する。明細書が、構成要素、特徴、構造、プロセス、または特性が、含まれ「てもよい」、含まれる「かもしれない」、または含まれる「だろう」ことを示す場合、当該特定の構成要素、特徴、構造、プロセス、または特性が含まれることは不可欠ではない。本明細書または請求項が、「１つの（「ａ」または「ａｎ」）」要素を指す場合、これは、説明される要素が１つしかないことを意味しているのではない。
【００６０】
実施形態は、実装または例である。本明細書における「一実施形態」、「１つの実施形態」、「いくつかの実施形態」、または「他の実施形態」への言及は、当該実施形態に関して説明される特定の特徴、構造、または特性が、少なくともいくつかの実施形態に含まれることを意味するが、必ずしも全ての実施形態に含まれるわけではない。「一実施形態」、「１つの実施形態」、または「いくつかの実施形態」という様々な出現があっても、必ずし全てが、同じ実施形態に言及しているわけではない。例示的な実施形態の前述の説明において、様々な特徴が、本開示を簡素化し、様々な新規な態様のうち１または複数の理解を助ける目的で、単一の実施形態、図、または説明にまとめてグループ化されている場合があることは理解されるべきである。しかしながら、この開示方法が、請求項に記載された実施形態が各請求項に明示的に記載されるよりも多くの特徴を必要とするという意図を示すものとして解釈されるべきではない。むしろ、以下の請求項が示すように、新規な態様は、前述の開示された単一の実施形態の全ての特徴よりも少ない。従って、請求項は、この明細書中に明示的に組み込まれ、各請求項は別個の実施形態として独立する。
【００６１】
いくつかの実施形態において、プロセッサは、データ処理用の１または複数の処理コアと、１または複数の処理コアのためにデータをキャッシュする結合キャッシュメモリとを含み、キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含む。いくつかの実施形態において、結合キャッシュメモリは、第１のキャッシュ部分と、第２のキャッシュ部分とに非対称セットを含み、第１のキャッシュ部分は、第２のキャッシュ部分より大きく、キャッシュメモリ用の連携置換ポリシ結合は、第１のキャッシュ部分および第２のキャッシュ部分のデータ置換を規定する。
【００６２】
いくつか実施形態において、第１のキャッシュ部分と第２のキャッシュ部分との間にデータ転送はない。
【００６３】
いくつか実施形態において、メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置またはダイレクトマップ部分の単一の位置にキャッシュされ得る。
【００６４】
いくつか実施形態において、連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む。
【００６５】
いくつか実施形態において、連携置換ポリシのためのビットは、マルチウェイ部分のウェイごとに第２のキャッシュ部分に格納される。いくつかの実施形態において、マルチウェイ部分の第１のウェイ用の連携置換ポリシのためのビットは、第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、第１のウェイのエントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットとを含む。
【００６６】
いくつかの実施形態において、マルチウェイキャッシュ部分のサイズは、ダイレクトマップ部分のサイズと線形にスケールしない。
【００６７】
いくつかの実施形態において、マルチウェイ部分のサイズは、ダイレクトマップ部分のピンニング要件と衝突率との１または複数に少なくとも部分的に基づく。
【００６８】
いくつかの実施形態において、キャッシュメモリが２ｎキャッシュラインまたはセクタキャッシュラインであり、マルチウェイ部分のセット数が２ｍであり、マルチウェイ部分のウェイ数が２Ｗである全体サイズに関して、ｎはｍおよびｗの総和より大きい。
【００６９】
いくつかの実施形態において、方法は、メインメモリのメモリアドレス用のアクセスリクエストを受信する工程と、メモリアドレス用の結合キャッシュのヒットまたはミスがあるかどうかを判定する工程であって、キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含み、第２のキャッシュ部分は、第１のキャッシュ部分より小さい、工程と、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする工程と、第１のキャッシュ部分および第２のキャッシュ部分の両方のミスに関して、第１のキャッシュ部分および第２のキャッシュ部分のために連携置換ポリシに従って、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する工程とを含む。
【００７０】
いくつかの実施形態において、メインメモリのアドレスは、マルチウェイ部分のウェイのいずれかの位置、またはダイレクトマップ部分の単一の位置にマッピングされ得る。
【００７１】
いくつかの実施形態において、連携置換ポリシに従ってデータを置換する工程は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む。
【００７２】
いくつかの実施形態において、方法はさらに、第２のキャッシュ部分の連携置換ポリシのためにビットを格納する工程を備える。いくつかの実施形態において、マルチウェイ部分の第１のウェイ用の連携置換ポリシのためのビットは、第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、第１のウェイのエントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットとを含む。
【００７３】
いくつかの実施形態において、ＬＲＵアルゴリズムの適用は、第１のキャッシュ部分または第２のキャッシュ部分の置換位置のために複数の優先順位を含む。いくつかの実施形態において、複数の優先順位は、有効データがマップエントリに格納されていない場合、ダイレクトマップ部分のマップエントリにキャッシュされるべきデータを格納することを規定する第１の優先順位と、有効データがマップエントリに格納されていない場合、マルチウェイ部分のマップキャッシュラインにキャッシュされるべきデータを格納することを規定する、第１の優先順位より低い第２の優先順位と、ダイレクトマップエントリが対応する全てのマルチウェイエントリより古い場合、ダイレクトマップ部分のキャッシュラインにキャッシュされるべきデータを格納することを規定する、第２の優先順位より低い第３の優先順位と、特定のウェイのエントリが対応するダイレクトマップエントリより古く、それがマルチウェイ部分のより古いエントリの一部である場合、マルチウェイ部分の特定のウェイのブロックにキャッシュされるべきデータを格納することを規定する、第３の優先順位より低い第４の優先順位と、マルチウェイ部分のウェイのいずれかのブロックにキャッシュされるべきデータを格納することを規定する、第４の優先順位より低い第５の優先順位とを含む。
【００７４】
いくつかの実施形態において、コンピューティングシステムは、記コンピューティングシステム用のデータ記憶のためのメインメモリと、無線データ送信用の送信機および受信機と、プロセッサとを備え、プロセッサは、データ処理用の１または複数の処理コアと、１または複数の処理コア用のメインメモリからのデータをキャッシュするキャッシュメモリとを含み、結合キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含む。いくつかの実施形態において、キャッシュメモリは、非対称セットの結合キャッシュであり、第１のキャッシュ部分は、第２のキャッシュ部分より大きい。いくつかの実施形態において、キャッシュメモリ用の連携置換ポリシは、第１のキャッシュ部分および第２のキャッシュ部分のデータ置換を規定する。
【００７５】
いくつかの実施形態において、メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置、またはダイレクトマップ部分の単一の位置にキャッシュされ得る。
【００７６】
いくつかの実施形態において、連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む。いくつかの実施形態において、連携置換ポリシのためのビットは、マルチウェイ部分のウェイごとに第２のキャッシュ部分に格納される。いくつかの実施形態において、マルチウェイ部分の第１のウェイ用の連携置換ポリシのためのビットは、第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、第１のウェイのエントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットとを含む。
【００７７】
いくつかの実施形態において、命令シーケンスを表すデータをその上に格納している非一時的コンピュータ可読記憶媒体は、プロセッサによって実行される場合、メインメモリのメモリアドレスのためにアクセスリクエストを受信する工程と、メモリアドレス用の結合キャッシュにヒットまたはミスがあるかどうかを判定する工程であって、結合キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含む、工程と、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする工程と、第１のキャッシュ部分および第２のキャッシュ部分の両方のミスに関して、キャッシュメモリのために連携置換ポリシに従って、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する工程とを含む動作をプロセッサに実行させる。
【００７８】
いくつかの実施形態において、メインメモリのアドレスは、第２のキャッシュ部分のマルチウェイキャッシュのウェイのいずれかの位置、または第１のキャッシュ部分のダイレクトマップキャッシュの単一の位置にマッピングされ得る。
【００７９】
いくつかの実施形態において、連携置換ポリシに従ってデータを置換する段階は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む。
【００８０】
いくつかの実施形態において、装置は、メインメモリのメモリアドレスのためにアクセスリクエストを受信するための手段と、メモリアドレスのために結合キャッシュにヒットまたはミスがあるかどうかを判定するための手段であって、結合キャッシュメモリは、ダイレクトマップキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含む、手段と、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかにヒットがある場合、キャッシュ部分の要求データにアクセスするための手段と、第１のキャッシュ部分および第２のキャッシュ部分の両方にミスがある場合、結合キャッシュのために連携置換ポリシに従って、第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換するための手段とを含む。
【００８１】
いくつかの実施形態において、メインメモリのアドレスは、第２のキャッシュ部分のマルチウェイキャッシュのウェイのいずれかの位置、または第１のキャッシュ部分のダイレクトマップキャッシュの単一の位置にマッピングされ得る。
【００８２】
いくつかの実施形態において、連携置換ポリシに従ってデータを置換するための手段は、最低使用頻度（ＬＲＵ）アルゴリズムを適用する。
【図１】
2018512650.tif 000003
【図２】
2018512650.tif 000004
【図３】
2018512650.tif 000005
【図４】
2018512650.tif 000006
【図５】
2018512650.tif 000007
【図６Ａ】
2018512650.tif 000008
【図６Ｂ】
2018512650.tif 000009
【図７】
2018512650.tif 000010
【図８】
2018512650.tif 000011
【手続補正書】
【提出日】平成29年10月30日(2017.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理用の１または複数の処理コアと、
前記１または複数の処理コアのためにメインメモリからのデータをキャッシュする結合キャッシュメモリと
を備えるプロセッサであって、
前記結合キャッシュメモリは、ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、マルチウェイのキャッシュを含む第２のキャッシュ部分とを含み、
前記結合キャッシュメモリは、前記第１のキャッシュ部分と、前記第２のキャッシュ部分とに非対称セットを有し、前記第１のキャッシュ部分は、前記第２のキャッシュ部分より大きく、
前記結合キャッシュメモリは、前記第１のキャッシュ部分および前記第２のキャッシュ部分のデータ置換のための連携置換ポリシを含む、
プロセッサ。
【請求項２】
前記第１のキャッシュ部分と前記第２のキャッシュ部分との間にデータ転送はない、
請求項１に記載のプロセッサ。
【請求項３】
前記メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置または前記ダイレクトマップの部分の単一の位置にキャッシュされ得る、
請求項１または２に記載のプロセッサ。
【請求項４】
前記連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１から３のいずれか一項に記載のプロセッサ。
【請求項５】
前記連携置換ポリシのためのビットは、前記マルチウェイの部分のウェイごとに前記第２のキャッシュ部分に格納される、
請求項４に記載のプロセッサ。
【請求項６】
マルチウェイ部分の第１のウェイ用の前記連携置換ポリシのための前記ビットは、
前記第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項５に記載のプロセッサ。
【請求項７】
前記マルチウェイのキャッシュの部分のサイズは、前記ダイレクトマップの部分のサイズと線形にスケールしない、
請求項１から６のいずれか一項に記載のプロセッサ。
【請求項８】
前記マルチウェイのキャッシュの部分のサイズは、前記ダイレクトマップの部分のピンニング要件と、衝突率との１または複数に少なくとも部分的に基づく、
請求項１から７のいずれか一項に記載のプロセッサ。
【請求項９】
結合キャッシュが２ｎキャッシュラインまたはセクタキャッシュラインであり、マルチウェイ部分のセット数が２ｍであり、前記マルチウェイ部分のウェイ数が２Ｗである全体サイズに関して、ｎはｍおよびｗの総和より大きい、
請求項１から８のいずれか一項に記載のプロセッサ。
【請求項１０】
メインメモリのメモリアドレス用のアクセスリクエストを受信する段階と、
前記メモリアドレス用の結合キャッシュのヒットまたはミスがあるかどうかを判定する段階であって、結合キャッシュメモリは、
ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、
マルチウェイキャッシュを含む第２のキャッシュ部分とを有し、前記第２のキャッシュ部分は、前記第１のキャッシュ部分より小さい、
段階と、
前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする段階と、
前記第１のキャッシュ部分および前記第２のキャッシュ部分の両方のミスに関して、前記第１のキャッシュ部分および前記第２のキャッシュ部分のための連携置換ポリシに従って、前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する段階と、
を備える方法。
【請求項１１】
前記メインメモリのアドレスは、マルチウェイの部分のウェイのいずれかの位置、またはダイレクトマップ部分の単一の位置にマッピングされ得る、
請求項１０に記載の方法。
【請求項１２】
前記連携置換ポリシに従ってデータを置換する段階は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１０または１１に記載の方法。
【請求項１３】
前記第２のキャッシュ部分の前記連携置換ポリシのためにビットを格納する段階をさらに備える
請求項１２に記載の方法。
【請求項１４】
マルチウェイの部分の第１のウェイ用の前記連携置換ポリシのためのビットは、
前記第１のウェイのエントリとマルチウェイの部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項１３に記載の方法。
【請求項１５】
前記ＬＲＵアルゴリズムの前記適用は、前記第１のキャッシュ部分または前記第２のキャッシュ部分の置換位置のために複数の優先順位を含む、
請求項１２に記載の方法。
【請求項１６】
前記複数の優先順位は、
有効データがマップエントリに格納されていない場合、ダイレクトマップ部分の前記マップエントリにキャッシュされるべきデータを格納することを規定する第１の優先順位と、
有効データが前記マップエントリに格納されていない場合、マルチウェイ部分のマップブロックにキャッシュされるべきデータを格納することを規定する、前記第１の優先順位より低い第２の優先順位と、
ダイレクトマップエントリが対応する全てのマルチウェイエントリより古い場合、前記ダイレクトマップ部分のブロックにキャッシュされるべきデータを格納することを規定する、前記第２の優先順位より低い第３の優先順位と、
特定のウェイのエントリが対応するダイレクトマップエントリより古く、それが前記マルチウェイ部分のより古い前記エントリの一部である場合、前記マルチウェイ部分の前記特定のウェイのブロックにキャッシュされるべきデータを格納することを規定する、前記第３の優先順位より低い第４の優先順位と、
前記マルチウェイ部分の前記ウェイのいずれかのブロックにキャッシュされるべきデータを格納することを規定する、前記第４の優先順位より低い第５の優先順位と
を含む、
請求項１５に記載の方法。
【請求項１７】
コンピューティングシステム用のデータ記憶のためのメインメモリと、
無線データ送信用の送信機および受信機と、
プロセッサと
を備えるコンピューティングシステムであって、
前記プロセッサは、データ処理用の１または複数の処理コアと、
前記１または複数の処理コア用のメインメモリからのデータをキャッシュする結合キャッシュメモリと
を含み、
前記結合キャッシュメモリは、ダイレクトマップのキャッシュを含む第１のキャッシュ部分と、マルチウェイキャッシュを含む第２のキャッシュ部分とを含み、
前記結合キャッシュメモリは、非対称セットの結合キャッシュであり、前記第１のキャッシュ部分は、前記第２のキャッシュ部分より大きく、
前記結合キャッシュメモリは、前記第１のキャッシュ部分および前記第２のキャッシュ部分のデータ置換のために連携置換ポリシを含む、
コンピューティングシステム。
【請求項１８】
前記メインメモリの各アドレスは、マルチウェイ部分のウェイのいずれかの位置またはダイレクトマップ部分の単一の位置にキャッシュされ得る、
請求項１７に記載のコンピューティングシステム。
【請求項１９】
前記連携置換ポリシは、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項１７または１８に記載のコンピューティングシステム。
【請求項２０】
前記連携置換ポリシのためのビットは、マルチウェイ部分のウェイごとに前記第２のキャッシュ部分に格納される、
請求項１９に記載のコンピューティングシステム。
【請求項２１】
前記マルチウェイ部分の第１のウェイ用の前記連携置換ポリシのための前記ビットは、
前記第１のウェイのエントリとマルチウェイ部分のそれぞれの他のウェイのエントリとの最低使用頻度比較を示す第１のビットと、
前記第１のウェイの前記エントリと対応するダイレクトマップ位置のエントリとの最低使用頻度比較を示す第２のビットと
を含む、
請求項２０に記載のコンピューティングシステム。
【請求項２２】
メインメモリのメモリアドレスのためにアクセスリクエストを受信する手順と、
前記メモリアドレスのために結合キャッシュにヒットまたはミスがあるかどうかを判定する手順と、
第１のキャッシュ部分か、第２のキャッシュ部分かのどちらかのヒットに関して、ヒットがあるキャッシュ部分の要求データにアクセスする手順と、
前記第１のキャッシュ部分および前記第２のキャッシュ部分の両方のミスに関して、前記結合キャッシュのために連携置換ポリシに従って、前記第１のキャッシュ部分か、前記第２のキャッシュ部分かのどちらかのメモリアドレス用のデータを置換する手順と
を備える動作をコンピュータに実行させる
プログラムであって、
結合キャッシュメモリは、
ダイレクトマップのキャッシュを含む前記第１のキャッシュ部分と、
マルチウェイキャッシュを含む前記第２のキャッシュ部分とを含む、
プログラム。
【請求項２３】
前記メインメモリのアドレスは、前記第２のキャッシュ部分の前記マルチウェイキャッシュのウェイのいずれかの位置、または前記第１のキャッシュ部分の前記ダイレクトマップのキャッシュの単一の位置にマッピングされ得る、
請求項２２に記載のプログラム。
【請求項２４】
前記連携置換ポリシに従ってデータを置換する手順は、最低使用頻度（ＬＲＵ）アルゴリズムの適用を含む、
請求項２２または２３に記載のプログラム。
【請求項２５】
請求項２２から２４のうちのいずれか一項に記載のプログラムを格納するためのコンピュータ可読記憶媒体。
【国際調査報告】
2018512650.tif 000012
2018512650.tif 000013