(57)【要約】キャッシュ（１２０）は、上位レベルのキャッシュ（１４０）から下位レベルのキャッシュに転送されるデータ（１７０）と共に、データの転送元の上位レベルのキャッシュ位置を示す情報（１７１）を記憶する。キャッシュコントローラ（１３０）は、上位レベルのキャッシュ内の位置に記憶されたデータに対する要求を受信すると、上位レベルのキャッシュ位置情報を当該データのステータスタグに記憶する。次に、キャッシュコントローラは、データを、上位レベルのキャッシュ位置を示すステータスタグと共に下位レベルのキャッシュに転送する。次いで、データが更新され又は下位レベルのキャッシュからエビクトされる場合、キャッシュコントローラは、ステータスタグ位置情報を読み取り、データを、転送元である上位レベルのキャッシュ内の位置に転送し戻す。【選択図】図１
2019521447.tif 000002
【特許請求の範囲】
【請求項１】
第１キャッシュ（１２０）でのキャッシュミスに応じて、第１データ（１７０）を、第２キャッシュ（１４０）のエントリ（１４５）から前記第１キャッシュに転送することと、
前記第２キャッシュのエントリを示す位置情報（１７１）を記憶することと、
前記第１キャッシュにおいて第２データを受信したことに応じて、記憶された位置情報に基づいて、前記第１データを前記第１キャッシュから前記第２キャッシュのエントリに転送すること（５１０）と、を含む、
方法。
【請求項２】
前記位置情報を記憶することは、前記第２キャッシュのエントリを示す位置タグを生成することを含む、
請求項１の方法。
【請求項３】
前記位置タグを生成することは、前記第１データのメモリコヒーレンスステータスを示すステータスタグを変更することを含む、
請求項２の方法。
【請求項４】
前記位置タグを位置タグバッファ（３３５）に記憶することをさらに含む、
請求項２の方法。
【請求項５】
前記位置タグを前記第１データと共に前記第１キャッシュに記憶することをさらに含む、
請求項２の方法。
【請求項６】
前記第１データを前記第１キャッシュから前記第２キャッシュのエントリに転送する前に、前記第２データを受信したことに応じて前記第１データを変更することをさらに含む、
請求項１の方法。
【請求項７】
前記第２キャッシュは前記第１キャッシュを含む、
請求項１の方法。
【請求項８】
第１キャッシュ（１４０）に配置された第１データ（１７１）に対するメモリアクセス要求に応じて、前記第１データを記憶する前記第１キャッシュのエントリ（１４５）を示す位置タグ（１７１）を生成することと、
前記第１データ及び前記位置タグを第２キャッシュ（１２０）に転送することと、
前記第２キャッシュにおいて第２データを受信したことに応じて、前記位置タグに基づいて、前記第１データを前記第１キャッシュのエントリに転送し戻すことと、を含む、
方法。
【請求項９】
第１キャッシュ（１２０）と、
第２キャッシュ（１４０）と、
キャッシュコントローラ（１３０）と、を備え、
前記キャッシュコントローラは、
第１データ（１７０）を、前記第２キャッシュのエントリ（１４５）から前記第１キャッシュに転送することと、
前記第２キャッシュのエントリを示す位置情報（１７１）を記憶することと、
前記第１キャッシュにおいて第２データを受信したことに応じて、記憶された位置情報に基づいて、前記第１データを前記第１キャッシュから前記第２キャッシュのエントリに転送することと、
を行うように構成されている、
デバイス（１００）。
【請求項１０】
前記キャッシュコントローラは、前記第１キャッシュからの前記第１データのエビクトに応じて、前記第１データを、前記第１キャッシュから、記憶された位置情報によって示される前記第２キャッシュのエントリに転送するようにさらに構成されている、
請求項９のデバイス。
【請求項１１】
前記キャッシュコントローラは、前記第１データを、前記第１キャッシュから、記憶された位置情報によって示される前記第２キャッシュのセット及びウェイに転送する前に、前記第１データを更新するようにさらに構成されている、
請求項１０のデバイス。
【請求項１２】
前記第２キャッシュは前記第１キャッシュを含む、
請求項９のデバイス。
【請求項１３】
前記キャッシュコントローラは、前記位置情報を位置タグバッファ（３３５）に記憶するように構成されている、
請求項９のデバイス。
【請求項１４】
前記キャッシュコントローラは、前記位置情報を前記データと共に前記第１キャッシュに記憶するように構成されている、
請求項９のデバイス。
【請求項１５】
前記キャッシュコントローラは、前記位置情報を、前記データのコヒーレンシステータスを示すステータスタグに記憶するように構成されている、
請求項９のデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
処理システムは、通常、プロセッサでの命令の実行をサポートするために、実行中の命令によってアクセスされるデータを記憶するためのメモリモジュールを含むメモリサブシステムを備える。メモリサブシステムは、処理効率を高めるために、実行中の命令によってアクセス可能な全てのデータを記憶するためのメインメモリをメモリ階層の最上位に有し、メインメモリに記憶されたデータのサブセットを記憶するための１つ以上のキャッシュをメモリ階層の下位レベルに有するメモリ階層に構成され得る。例えば、処理システムは、少なくとも２つのキャッシュ（すなわち、上位レベルのキャッシュ（メモリ階層においてメインメモリに近い）及び下位レベルのキャッシュ（処理システムのプロセッサコアに近い））を有するメモリ階層を含むことができ、下位レベルのキャッシュは、上位レベルのキャッシュのサブセットを記憶する。上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータは、例えば、データが処理システムによって更新された場合、又は、着信データ用のスペースを作るためにデータが下位レベルのキャッシュからエビクトされる場合に、後で上位レベルのキャッシュに転送し戻されることがある。データが上位レベルのキャッシュに転送し戻される場合、処理システムは、データを配置するための上位レベルのキャッシュ内の位置を決定する必要があり、これにより、電力及びメモリアクセスリソースを消費する。
【０００２】
添付の図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかとなるであろう。異なる図面における同じ参照記号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【０００３】
【図１】いくつかの実施形態による、キャッシュ管理システムを使用する処理システムのブロック図である。
【図２】いくつかの実施形態による、データ及び位置タグを上位レベルのキャッシュ内の位置から下位レベルのキャッシュに転送し、その後、更新されたデータ及び位置タグを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する図１の処理システムの一例のブロック図である。
【図３】いくつかの実施形態による、データを上位レベルのキャッシュから下位レベルのキャッシュに転送し、位置タグを位置タグバッファに記憶し、その後、更新されたデータを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する場合に位置タグバッファから位置タグにアクセスする図１の処理システムの一例のブロック図である。
【図４】いくつかの実施形態による、位置タグバッファに記憶された位置タグの一例のブロック図である。
【図５】いくつかの実施形態による、データが異なるキャッシュに転送し戻される場合にキャッシュ位置情報にアクセスできるように、異なるキャッシュのキャッシュ位置情報をキャッシュに記憶する方法のフローチャートである。
【発明を実施するための形態】
【０００４】
図１〜図５は、上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータと共に、データの転送元の上位レベルのキャッシュの位置を示す情報を記憶することによって、メモリ管理効率を向上させる技術を示す。例示すると、キャッシュコントローラは、上位レベルのキャッシュ内の位置に記憶されているデータに対する要求を受信すると、上位レベルのキャッシュの位置情報をデータのステータスタグに記憶する。次に、キャッシュコントローラは、上位レベルのキャッシュの位置を示すステータスタグと共にデータを下位レベルのキャッシュに転送する。その後、データが更新され又は下位レベルのキャッシュからエビクトされる場合、キャッシュコントローラは、ステータスタグの位置情報を読み取り、データを当初の転送元の上位レベルのキャッシュ内の位置に転送し戻す。処理システムは、データの当初の転送元の上位レベルのキャッシュ内の位置を示す情報を記憶することによって、上位レベルのキャッシュ内の同じ位置にデータを効率的に転送し戻す。特に、位置情報データを記憶することによって、データを記憶するために上位レベルのキャッシュ内の位置を特定する必要がなくなることから、電力及びメモリアクセスリソースを節約することができる。
【０００５】
図１は、データの転送元のキャッシュ内のセット及びウェイ（way）を示す位置タグを用いてデータを転送及び記憶するように構成された処理システム１００の一例を示す図である。したがって、処理システム１００は、いくつかのデバイス（例えば、パーソナルコンピュータ、ワークステーション、スマートフォン等のモバイルデバイス、ビデオゲーム機、スマートＴＶ等）の何れにおいても使用することができる。本明細書でさらに説明するように、処理システム１００は、プロセッサ１１０と、Ｌ１キャッシュ１２０と、Ｌ１キャッシュコントローラ１３０と、Ｌ２キャッシュ１４０と、Ｌ２キャッシュコントローラ１５０と、メインメモリ１６０と、を含む。
【０００６】
プロセッサ１１０は、コンピュータプログラムの形態で構成された命令を実行するための１つ以上の命令パイプラインを含み、これにより、電子デバイスに代わってタスクを実行する。プロセッサ１１０は、例えばレジスタの形態で或る程度の量の内蔵メモリを有することができるが、かかるメモリは、通常、記憶容量が限られている。したがって、プロセッサ１１０は、命令を実行するために、例えばＬ１キャッシュ１２０及びＬ２キャッシュ１４０等の１つ以上のレベルのキャッシュメモリと、メインメモリ１６０と、を含む処理システム１００のメモリ階層に対してデータの記憶及び取り出しを行う。具体的には、プロセッサ１１０は、命令を実行する過程で、メモリ階層に対してデータを記憶（記憶動作）又はロード（読み出し動作）するために、メモリアクセス要求と呼ばれる動作を生成する。本明細書でさらに説明するように、１つ以上のレベルのキャッシュメモリ１２０，１４０及びメインメモリ１６０は、メモリアクセス要求を満たすために共に動作する。説明のために、図１には２つのレベルのキャッシュメモリが示されているが、処理システム１００は、３つ以上のレベルのキャッシュメモリを含み得ることが理解されよう。
【０００７】
Ｌ１キャッシュ１２０は、プロセッサ１１０によるアクセスのためにデータを記憶するように構成されたメモリモジュールである。少なくとも１つの実施形態では、Ｌ１キャッシュ１２０は、エントリのセットを含み、各エントリは、キャッシュラインと呼ばれる関連するデータのユニットを記憶する。各キャッシュラインは、データの識別子として機能するメインメモリ内のアドレスを有する。いくつかの実施形態では、Ｌ１キャッシュ１２０は、セットアソシアティブキャッシュであり、キャッシュがいくつかのセットに分割される。各セットは、いくつかのエントリ（すなわち、ウェイ）を含み、各ウェイは、キャッシュラインを記憶するキャッシュエントリに対応する。各セットは、メインメモリアドレスのサブセットに関連するキャッシュラインのみを記憶し、セットに関連するサブセットは、インデックスと呼ばれるメインメモリアドレスの一部に基づいて、対応するキャッシュコントローラによって識別される。
【０００８】
Ｌ１キャッシュコントローラ１３０は、データに対するメモリアクセス要求をプロセッサ１１０から受信し、Ｌ１キャッシュ１２０を検索して、１つのキャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインを記憶しているか否かを判別するように構成されたモジュールである。要求されたキャッシュラインがＬ１キャッシュ１２０内で見つかった場合、キャッシュヒットが発生している。キャッシュヒットの場合、Ｌ１キャッシュコントローラ１３０は、読み出し動作の場合には要求されたキャッシュラインをＬ１キャッシュ１２０からプロセッサ１１０に提供し、書き込み動作の場合には書き込みデータをキャッシュエントリに記憶することによって、メモリアクセス要求を満たす。
【０００９】
Ｌ２キャッシュ１４０は、Ｌ１キャッシュ１２０と同様に、エントリのセットを含むメモリであり、各エントリは、関連するキャッシュラインを記憶する。要求されたキャッシュラインがＬ１キャッシュ１２０内で見つからなかった場合、キャッシュミスが発生している。Ｌ１キャッシュ１２０においてキャッシュミスが発生した場合、Ｌ１キャッシュコントローラ１３０は、メモリアクセス要求をＬ２キャッシュコントローラ１５０に提供する。Ｌ２キャッシュコントローラ１５０は、Ｌ１キャッシュ１２０におけるキャッシュミスに応じて、Ｌ１キャッシュコントローラ１３０からメモリアクセス要求を受信するように構成されたモジュールである。Ｌ２キャッシュコントローラ１５０は、メモリアクセス要求の受信に応じて、Ｌ２キャッシュ１４０の１つのキャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するデータを記憶しているか否かを識別する。記憶している場合、Ｌ２キャッシュコントローラ１５０は、キャッシュヒットを識別し、要求されたデータをＬ２キャッシュ１４０からＬ１キャッシュ１２０に提供する。要求されたデータがＬ２キャッシュ１４０内で見つからなかった場合、Ｌ２キャッシュコントローラ１５０は、キャッシュミスを識別し、メモリアクセス要求をメインメモリ１６０に提供する。メインメモリ１６０は、メモリアクセス要求に応じて、要求の対象となるメインメモリアドレスでキャッシュラインを取り出し、そのキャッシュラインをＬ２キャッシュ１４０に提供する。
【００１０】
要求されたキャッシュラインがＬ２キャッシュ１４０内で見つかった場合（Ｌ２キャッシュコントローラ１５０による最初の検索の場合、又は、メモリアクセス要求に応じてメインメモリ１６０から受信した場合）、Ｌ２キャッシュコントローラ１５０は、Ｌ２キャッシュ位置１４５のセット及びウェイを示すＬ２位置タグ１７１を生成する。次に、Ｌ２キャッシュコントローラ１５０は、データ１７０及びＬ２位置タグ１７１を、これらが見つかったＬ２キャッシュ位置１４５からＬ１キャッシュ１２０に転送する。いくつかの実施形態では、Ｌ２キャッシュ１４０は、Ｌ１キャッシュ１２０を含むように構成されており、Ｌ１キャッシュ１２０に記憶されたキャッシュラインの各々を記憶する。
【００１１】
Ｌ１キャッシュコントローラ１３０は、データのより効率的な転送を容易にするために、データ１７０をＬ２キャッシュ１４０に転送し戻す場合にＬ２位置タグ１７１を読み取る。Ｌ１キャッシュ１２０内のキャッシュラインがプロセッサ１１０からの書き込み動作によって更新された場合、更新されたキャッシュラインがＬ２キャッシュ１４０に転送されなければならないので、Ｌ２キャッシュ１４０は、Ｌ１キャッシュ１２０を含んだままとなる。更新されたキャッシュラインをＬ２キャッシュ１４０に転送する場合、Ｌ１キャッシュコントローラ１３０は、Ｌ２位置タグ１７１を読み取り、キャッシュラインが転送されるＬ２キャッシュ位置１４５のセット及びウェイを決定する。Ｌ２位置タグ１７１をデータ１７０と共に記憶することによって処理効率が向上し、転送されたデータの位置をＬ２キャッシュコントローラ１５０に識別させることなく、データ１７０を同じＬ２キャッシュ位置１４５に転送し戻すことができる。対照的に、従来のキャッシュ管理システムでは、例えばデータを記憶するエントリのＬ２キャッシュのセット及びウェイ情報のルックアップ等のように、転送されたデータのキャッシュエントリを識別することを必要とするので、追加の電力が消費され、Ｌ２キャッシュ１４０へのアクセスが遅くなる。
【００１２】
いくつかの実施形態では、Ｌ１キャッシュ１２０は、メモリ階層から転送され、プロセッサ１１０によって書き込まれるデータの全てを、所定の時間に記憶することができないようなサイズで構成されている。Ｌ１キャッシュ１２０に書き込まれ又は転送されるキャッシュラインを収容するために利用可能なキャッシュラインがＬ１キャッシュ１２０に存在しない場合、Ｌ１キャッシュコントローラ１３０は、Ｌ２キャッシュ１４０にエビクトされるキャッシュラインをＬ１キャッシュ１２０から選択する。エビクトされるキャッシュラインをＬ２キャッシュ１４０に転送する場合、Ｌ１キャッシュコントローラ１３０は、Ｌ２位置タグ１７１を読み取って、キャッシュラインがコピーされるＬ２キャッシュ位置１４５のセット及びウェイを決定する。
【００１３】
例示すると、動作中、プロセッサ１１０はメモリアクセス動作を実行する。プロセッサ１１０は、Ｌ１キャッシュコントローラ１３０にデータ１７０を要求し、Ｌ１キャッシュコントローラ１３０は、要求されたデータ１７０についてＬ１キャッシュ１２０を検索する。要求されたキャッシュラインがＬ１キャッシュ１２０内で見つかった場合、要求されたデータ１７０がプロセッサ１１０に提供される。要求されたデータ１７０がＬ１キャッシュ１２０内で見つからなかった場合、Ｌ１キャッシュコントローラ１３０は、メモリアクセス要求をＬ２キャッシュコントローラ１５０に提供し、Ｌ２キャッシュコントローラ１５０は、要求されたデータ１７０についてＬ２キャッシュ１４０を検索する。要求されたデータ１７０がＬ２キャッシュ１４０内で見つからなかった場合、Ｌ２キャッシュコントローラ１５０は、メモリアクセス要求をメインメモリ１６０に提供し、メインメモリ１６０は、要求されたデータ１７０をＬ２キャッシュ１４０に転送する。
【００１４】
要求されたデータ１７０がＬ２キャッシュ１４０内で見つかった場合、Ｌ２キャッシュコントローラ１５０は、要求されたデータ１７０が見つかったＬ２キャッシュ位置１４５のセット及びウェイを示すＬ２位置タグ１７１を生成する。Ｌ２キャッシュコントローラ１５０は、要求されたデータ１７０をＬ２位置タグ１７１と共にＬ１キャッシュ１２０に転送し、ここでメモリアクセス要求が満たされる。
【００１５】
その後、データ１７０は、Ｌ１キャッシュ１２０からＬ２キャッシュ１４０に転送し戻される。いくつかの実施形態では、この転送は、データ１７０がＬ１キャッシュで更新された結果として行われるか、又は、着信データ用のスペースを作るためにデータ１７０がＬ１キャッシュ１２０からエビクトされた結果として行われる。Ｌ１キャッシュコントローラは、データ１７０がＬ２キャッシュ１４０に転送し戻されたときに、データ１７０及び関連するＬ２位置タグ１７１を、Ｌ２位置タグ１７１によって示されるＬ２キャッシュ位置１４５のセット及びウェイに転送する。データ１７０と共にＬ１キャッシュ１２０に記憶されたＬ２位置タグ１７１が、Ｌ２キャッシュ位置１４５に関するＬ２キャッシュ１４０のセット及びウェイ情報を含むので、データ１７０をＬ２位置１４５のセット及びウェイに転送し戻すことによってＬ２キャッシュコントローラ１５０によるルックアップが必要なくなることから、より効率的なキャッシュ管理が容易になる。いくつかの実施形態では、処理システム１００は、データ転送元の上位レベルのキャッシュ内のセット及びウェイを示すキャッシュ位置タグであって、データを上位レベルのキャッシュに転送し戻す場合にアクセスされるキャッシュ位置タグを別のバッファ（図１に示されていない）に記憶するように構成されている。
【００１６】
図２は、時刻Ｔ１に、Ｌ２キャッシュコントローラ２５０が、要求されたデータ２７０が記憶されているＬ２キャッシュ２４０内のＬ２キャッシュ位置２４５のセット及びウェイを示すＬ２位置タグ２７１を生成し、要求されたデータ２７０を、関連するＬ２位置タグ２７１と共にＬ１キャッシュ２２０に転送する一例を示す図である。Ｌ１キャッシュコントローラ２３０は、時刻Ｔ１の前に、プロセッサ（図示省略）からデータ２７０の要求を受信し、Ｌ１キャッシュ２２０を検索して、１つのＬ１キャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインに指定されたデータ２７０を記憶しているか否かを判別する。図２の例では、要求されたデータ２７０がＬ１キャッシュ２２０に存在しないので、Ｌ１キャッシュコントローラ２３０は、メモリアクセス要求をＬ２キャッシュコントローラ２５０に提供する。Ｌ２キャッシュコントローラ２５０は、メモリアクセス要求に応じて、要求されたデータ２７０についてＬ２キャッシュ２４０を検索し、要求されたデータ２７０をＬ２キャッシュ位置２４５のセット及びウェイで見つける。Ｌ２キャッシュコントローラ２５０は、要求されたデータ２７０が見つかったＬ２キャッシュ位置２４５のセット及びウェイを示すＬ２位置タグ２７１を生成する。いくつかの実施形態では、Ｌ２位置タグ２７１は、要求されたデータ２７０のステータスビットに含まれており、ステータスビットは、データのメモリコヒーレンスステータスを示すものである。たとえば、８ウェイアソシアティブキャッシュの場合、Ｌ２位置タグ２７１によって指定されるＬ２キャッシュウェイは３ビットを必要とするであろう。いくつかの実施形態では、３ビットは、エントリに記憶されたデータが変更されているか、所定のプロセッサコア専用であるか、プロセッサコア間で共有されているか等を示すために使用されるコヒーレンシステータスビットから再利用される。Ｌ２キャッシュコントローラ２５０がメモリアクセス要求に応じてＬ２位置タグ２７１を生成すると、Ｌ２キャッシュコントローラ２５０は、要求されたデータ２７０と、Ｌ２位置タグ２７１と、をＬ１キャッシュ２２０に転送し、データ２７０は、Ｌ１キャッシュ２２０に記憶され、プロセッサ（図示省略）によって使用可能になる。
【００１７】
後の時刻Ｔ２において、Ｌ１キャッシュ２２０に転送され記憶されたデータ２７０は、プロセッサ（図示省略）によって更新される。Ｌ１キャッシュコントローラ２３０は、プロセッサ（図示省略）から更新データ２７２を受信すると、Ｌ２位置タグ２７１を読み取り、更新データ２７２を、Ｌ２位置タグ２７１によって示されるＬ２キャッシュ位置２４５のセット及びウェイに転送する。このようにして、処理システムは、更新データ２７２を配置するためのＬ２キャッシュ２４０内のセット及びウェイを決定するためのルックアップを実行する必要なしに、更新データ２７２のコピーをＬ２キャッシュ２４０内に維持する。或いは、後の時刻Ｔ２において、Ｌ１キャッシュ２２０に転送され記憶されたデータ２７０は、例えば、着信キャッシュライン用のスペースを作るためにデータ２７０がＬ１キャッシュ２２０からエビクトされた場合に、更新されずにＬ２キャッシュ２４０に転送し戻されてもよいことが理解できるであろう。その場合、Ｌ１キャッシュコントローラ２３０は、Ｌ２位置タグ２７１を読み取り、データ２７０を、Ｌ２位置タグ２７１によって示されるＬ２キャッシュ位置２４５のセット及びウェイに転送する。
【００１８】
図３は、時刻Ｔ１に、Ｌ２キャッシュコントローラ３５０が、要求されたデータ３７０が記憶されているＬ２キャッシュ３４０内のＬ２キャッシュ位置３４５のセット及びウェイを示すＬ２位置タグ３７１を生成し、要求されたデータ３７０を、関連するＬ２位置タグ３７１と共にＬ１キャッシュ３２０に転送する一例を示す図である。Ｌ１キャッシュコントローラ３３０は、時刻Ｔ１の前に、プロセッサ（図示省略）からデータ３７０の要求を受信し、Ｌ１キャッシュ３２０を検索して、１つのＬ１キャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインに指定されたデータ３７０を記憶しているか否かを判別する。図３の例では、要求されたデータ３７０がＬ１キャッシュ３２０に存在しないので、Ｌ１キャッシュコントローラ３３０は、メモリアクセス要求をＬ２キャッシュコントローラ３５０に提供する。Ｌ２キャッシュコントローラ３５０は、メモリアクセス要求に応じて、要求されたデータ３７０についてＬ２キャッシュ３４０を検索し、要求されたデータ３７０をＬ２キャッシュ位置３４５のセット及びウェイで見つける。Ｌ２キャッシュコントローラ３５０は、要求されたデータ３７０が見つかったＬ２キャッシュ位置３４５のセット及びウェイを示すＬ２位置タグ３７１を生成し、要求されたデータ３７０及びＬ２位置タグ３７１を、Ｌ１キャッシュ３２０に転送する。図３の例では、Ｌ１キャッシュコントローラ３３０は、Ｌ２位置タグ３７１を位置タグバッファ３３５に記憶する。
【００１９】
図３の例では、後の時刻Ｔ２において、Ｌ１キャッシュ３２０に転送され記憶されたデータ３７０は、プロセッサ（図示省略）によって更新される。Ｌ１キャッシュコントローラ３３０は、プロセッサ（図示省略）から更新データ３７２を受信すると、位置タグバッファ３３５にアクセスし、位置タグバッファ３３５に記憶されたＬ２位置タグ３７１を読み取る。次に、Ｌ１キャッシュコントローラ３３０は、更新データ３７２を、Ｌ２位置タグ３７１によって示されるＬ２キャッシュ位置３４５のセット及びウェイに転送する。このようにして、処理システムは、更新データ３７２を配置するＬ２キャッシュ３４０内のセット及びウェイを決定するためのルックアップを実行する必要なしに、更新データ３７２のコピーをＬ２キャッシュ３４０内に維持する。或いは、後の時刻Ｔ２において、Ｌ１キャッシュ３２０に転送され記憶されたデータ３７０は、例えば、着信キャッシュライン用のスペースを作るためにデータ３７０がＬ１キャッシュ３２０からエビクトされた場合に、更新されずにＬ２キャッシュ３４０に転送し戻されてもよいことが理解できるであろう。その場合、Ｌ１キャッシュコントローラ３３０は、位置タグバッファ３３５にアクセスしてＬ２位置タグ３７１を読み取り、データ３７０を、Ｌ２位置タグ３７１によって示されるＬ２キャッシュ位置３４５のセット及びウェイに転送する。
【００２０】
図４は、位置タグバッファ４３５に記憶された位置タグ４７２の一例を示す図である。位置タグ４７２は、データ（図示省略）に関連するデータインデックス４７６と、Ｌ２キャッシュウェイ識別子４７７と、を含む。Ｌ２キャッシュ（図示省略）のセットアソシアティビティは、Ｌ２キャッシュの何れのセットが、データインデックス４７６を有するデータを記憶するように構成されているかを決定する。Ｌ２キャッシュウェイ識別子４７７は、以前にデータ（図示省略）がＬ２キャッシュ（図示省略）から転送された、データインデックス４７６に関連するセット内のキャッシュウェイを示す。したがって、位置タグ４７２のデータインデックス４７６及びＬ２キャッシュウェイ識別子４７７の組み合わせは、Ｌ１キャッシュ（図示省略）に転送される前にデータ（図示省略）を記憶していたＬ２キャッシュ（図示省略）内のセット及びウェイを識別する。図４の例では、位置タグ４７２は、位置タグバッファ４３５に記憶されている。
【００２１】
図５は、いくつかの実施形態による、データがＬ２キャッシュ位置にコピーバック又はエビクトされる場合にＬ２セット及びウェイ位置情報がアクセスされるように、Ｌ１キャッシュに転送されるデータと共にＬ２セット及びウェイ位置情報を記憶する図１の処理システム１００によって実行される方法５００を示すフローチャートである。ステップ５０２において、Ｌ２キャッシュコントローラ１５０は、Ｌ２キャッシュ位置１４５に記憶されたデータ１７０に対する要求を受信する。ステップ５０４において、Ｌ２キャッシュコントローラ１５０は、Ｌ２位置情報１４５を、要求されたデータ１７０のＬ２位置タグ１７１に記憶する。ステップ５０６において、Ｌ２キャッシュコントローラ１５０は、要求されたデータ１７０及びＬ２位置タグ１７１をＬ１キャッシュ１２０に転送し、Ｌ１キャッシュ１２０に記憶させる。ステップ５０８において、データ１７０が更新されるかＬ１キャッシュ１２０からエビクトされる。ステップ５１０において、Ｌ１キャッシュコントローラ１３０は、更新又はエビクトされたデータ１７０を、Ｌ２位置タグ１７１に記憶されたＬ２キャッシュ位置１４５に転送する。
【００２２】
コンピュータ可読記憶媒体は、命令及び／又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（登録商標）ディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープ、磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）、キャッシュ）、不揮発性メモリ（例えば、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ）、又は、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム（例えば、システムＲＡＭ又はＲＯＭ）に内蔵されてもよいし、コンピュータシステム（例えば、磁気ハードドライブ）に固定的に取り付けられてもよいし、コンピュータシステム（例えば、光学ディスク又はユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））に接続されてもよい。
【００２３】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、１つ以上のさらなるアクティビティが実行される場合があり、１つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【００２４】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
【図１】
2019521447.tif 000003
【図２】
2019521447.tif 000004
【図３】
2019521447.tif 000005
【図４】
2019521447.tif 000006
【図５】
2019521447.tif 000007
【国際調査報告】
2019521447.tif 000008
2019521447.tif 000009