IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドの特許一覧

特許7160792キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
<>
  • 特許-キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 図1
  • 特許-キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 図2
  • 特許-キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 図3
  • 特許-キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 図4
  • 特許-キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
(51)【国際特許分類】
   G06F 12/0895 20160101AFI20221018BHJP
   G06F 12/0897 20160101ALI20221018BHJP
【FI】
G06F12/0895 120
G06F12/0897 100
【請求項の数】 15
(21)【出願番号】P 2019501642
(86)(22)【出願日】2017-07-13
(65)【公表番号】
(43)【公表日】2019-07-25
(86)【国際出願番号】 US2017041956
(87)【国際公開番号】W WO2018013824
(87)【国際公開日】2018-01-18
【審査請求日】2020-07-10
(31)【優先権主張番号】15/210,846
(32)【優先日】2016-07-14
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【弁理士】
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ポール ジェームス モイヤー
【審査官】酒井 恭信
(56)【参考文献】
【文献】米国特許第06321297(US,B1)
【文献】特開2008-040982(JP,A)
【文献】特表2005-509204(JP,A)
【文献】米国特許出願公開第2002/0178329(US,A1)
【文献】米国特許出願公開第2014/0156931(US,A1)
【文献】米国特許出願公開第2015/0347302(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08 - 12/0897
(57)【特許請求の範囲】
【請求項1】
第1キャッシュ(120)でのキャッシュミスに応じて、第1データ(170)を、第2キャッシュ(140)のエントリ(145)から前記第1キャッシュに転送することと、
前記第2キャッシュのエントリ及びウェイを示す位置情報(171)を、前記第1データの一部のステータスビットに記憶することであって、前記ステータスビットは、再利用されるコヒーレンシステータスビットである、ことと、
前記第1キャッシュにおいて第2データを受信したことに応じて、前記第1データを、前記第1キャッシュから、記憶された位置情報によって示される前記第2キャッシュのエントリに転送すること(510)と、を含む、
方法。
【請求項2】
前記位置情報を記憶することは、前記第2キャッシュのエントリを示す位置タグを生成することを含む、
請求項1の方法。
【請求項3】
前記位置タグを生成することは、前記第1データのメモリコヒーレンスステータスを示すステータスタグを変更することを含む、
請求項2の方法。
【請求項4】
前記位置タグを位置タグバッファ(335)に記憶することをさらに含む、
請求項2の方法。
【請求項5】
前記位置タグを前記第1データと共に前記第1キャッシュに記憶することをさらに含む、
請求項2の方法。
【請求項6】
前記第1データを前記第1キャッシュから前記第2キャッシュのエントリに転送する前に、前記第2データを受信したことに応じて前記第1データを変更することをさらに含む、
請求項1の方法。
【請求項7】
前記第2キャッシュは、前記第1キャッシュに記憶されたキャッシュラインの各々を記憶するように、前記第1キャッシュを含む、
請求項1の方法。
【請求項8】
第1キャッシュ(140)に配置された第1データ(171)に対するメモリアクセス要求に応じて、前記第1データを記憶する前記第1キャッシュのエントリ(145)のセット及びウェイを示す位置タグ(171)を生成することと、
前記第1データ及び前記位置タグを第2キャッシュ(120)に転送することであって、前記位置タグは、前記第1データの一部のステータスビットに記憶されており、前記ステータスビットは、再利用されるコヒーレンシステータスビットである、ことと、
前記第2キャッシュにおいて第2データを受信したことに応じて、前記第1データを、前記位置タグによって示された前記第1キャッシュのエントリに転送し戻すことと、を含む、
方法。
【請求項9】
第1キャッシュ(120)と、
第2キャッシュ(140)と、
キャッシュコントローラ(130)と、を備え、
前記キャッシュコントローラは、
第1データ(170)を、前記第2キャッシュのエントリ(145)から前記第1キャッシュに転送することと、
前記第2キャッシュのエントリ及びウェイを示す位置情報(171)を、前記第1データの一部のステータスビットに記憶することであって、前記ステータスビットは、再利用されるコヒーレンシステータスビットである、ことと、
前記第1キャッシュにおいて第2データを受信したことに応じて、前記第1データを、前記第1キャッシュから、記憶された位置情報によって示される前記第2キャッシュのエントリに転送することと、
を行うように構成されている、
デバイス(100)。
【請求項10】
前記キャッシュコントローラは、前記第1キャッシュからの前記第1データのエビクトに応じて、前記第1データを、前記第1キャッシュから、記憶された位置情報によって示される前記第2キャッシュのエントリに転送するようにさらに構成されている、
請求項9のデバイス。
【請求項11】
前記キャッシュコントローラは、前記第1データを、前記第1キャッシュから、記憶された位置情報によって示される前記第2キャッシュのセット及びウェイに転送する前に、前記第1データを更新するようにさらに構成されている、
請求項10のデバイス。
【請求項12】
前記第2キャッシュは、前記第1キャッシュに記憶された前記キャッシュラインの各々を記憶するように、前記第1キャッシュを含む、
請求項9のデバイス。
【請求項13】
前記キャッシュコントローラは、前記位置情報を位置タグバッファ(335)に記憶するように構成されている、
請求項9のデバイス。
【請求項14】
前記キャッシュコントローラは、前記位置情報を前記第1データと共に前記第1キャッシュに記憶するように構成されている、
請求項9のデバイス。
【請求項15】
前記キャッシュコントローラは、前記位置情報を、前記第1データのコヒーレンシステータスを示すステータスタグに記憶するように構成されている、
請求項9のデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
処理システムは、通常、プロセッサでの命令の実行をサポートするために、実行中の命令によってアクセスされるデータを記憶するためのメモリモジュールを含むメモリサブシステムを備える。メモリサブシステムは、処理効率を高めるために、実行中の命令によってアクセス可能な全てのデータを記憶するためのメインメモリをメモリ階層の最上位に有し、メインメモリに記憶されたデータのサブセットを記憶するための1つ以上のキャッシュをメモリ階層の下位レベルに有するメモリ階層に構成され得る。例えば、処理システムは、少なくとも2つのキャッシュ(すなわち、上位レベルのキャッシュ(メモリ階層においてメインメモリに近い)及び下位レベルのキャッシュ(処理システムのプロセッサコアに近い))を有するメモリ階層を含むことができ、下位レベルのキャッシュは、上位レベルのキャッシュのサブセットを記憶する。上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータは、例えば、データが処理システムによって更新された場合、又は、着信データ用のスペースを作るためにデータが下位レベルのキャッシュからエビクトされる場合に、後で上位レベルのキャッシュに転送し戻されることがある。データが上位レベルのキャッシュに転送し戻される場合、処理システムは、データを配置するための上位レベルのキャッシュ内の位置を決定する必要があり、これにより、電力及びメモリアクセスリソースを消費する。
【0002】
添付の図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかとなるであろう。異なる図面における同じ参照記号の使用は、類似又は同一のアイテムを示す。
【図面の簡単な説明】
【0003】
図1】いくつかの実施形態による、キャッシュ管理システムを使用する処理システムのブロック図である。
図2】いくつかの実施形態による、データ及び位置タグを上位レベルのキャッシュ内の位置から下位レベルのキャッシュに転送し、その後、更新されたデータ及び位置タグを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する図1の処理システムの一例のブロック図である。
図3】いくつかの実施形態による、データを上位レベルのキャッシュから下位レベルのキャッシュに転送し、位置タグを位置タグバッファに記憶し、その後、更新されたデータを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する場合に位置タグバッファから位置タグにアクセスする図1の処理システムの一例のブロック図である。
図4】いくつかの実施形態による、位置タグバッファに記憶された位置タグの一例のブロック図である。
図5】いくつかの実施形態による、データが異なるキャッシュに転送し戻される場合にキャッシュ位置情報にアクセスできるように、異なるキャッシュのキャッシュ位置情報をキャッシュに記憶する方法のフローチャートである。
【発明を実施するための形態】
【0004】
図1図5は、上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータと共に、データの転送元の上位レベルのキャッシュの位置を示す情報を記憶することによって、メモリ管理効率を向上させる技術を示す。例示すると、キャッシュコントローラは、上位レベルのキャッシュ内の位置に記憶されているデータに対する要求を受信すると、上位レベルのキャッシュの位置情報をデータのステータスタグに記憶する。次に、キャッシュコントローラは、上位レベルのキャッシュの位置を示すステータスタグと共にデータを下位レベルのキャッシュに転送する。その後、データが更新され又は下位レベルのキャッシュからエビクトされる場合、キャッシュコントローラは、ステータスタグの位置情報を読み取り、データを当初の転送元の上位レベルのキャッシュ内の位置に転送し戻す。処理システムは、データの当初の転送元の上位レベルのキャッシュ内の位置を示す情報を記憶することによって、上位レベルのキャッシュ内の同じ位置にデータを効率的に転送し戻す。特に、位置情報データを記憶することによって、データを記憶するために上位レベルのキャッシュ内の位置を特定する必要がなくなることから、電力及びメモリアクセスリソースを節約することができる。
【0005】
図1は、データの転送元のキャッシュ内のセット及びウェイ(way)を示す位置タグを用いてデータを転送及び記憶するように構成された処理システム100の一例を示す図である。したがって、処理システム100は、いくつかのデバイス(例えば、パーソナルコンピュータ、ワークステーション、スマートフォン等のモバイルデバイス、ビデオゲーム機、スマートTV等)の何れにおいても使用することができる。本明細書でさらに説明するように、処理システム100は、プロセッサ110と、L1キャッシュ120と、L1キャッシュコントローラ130と、L2キャッシュ140と、L2キャッシュコントローラ150と、メインメモリ160と、を含む。
【0006】
プロセッサ110は、コンピュータプログラムの形態で構成された命令を実行するための1つ以上の命令パイプラインを含み、これにより、電子デバイスに代わってタスクを実行する。プロセッサ110は、例えばレジスタの形態で或る程度の量の内蔵メモリを有することができるが、かかるメモリは、通常、記憶容量が限られている。したがって、プロセッサ110は、命令を実行するために、例えばL1キャッシュ120及びL2キャッシュ140等の1つ以上のレベルのキャッシュメモリと、メインメモリ160と、を含む処理システム100のメモリ階層に対してデータの記憶及び取り出しを行う。具体的には、プロセッサ110は、命令を実行する過程で、メモリ階層に対してデータを記憶(記憶動作)又はロード(読み出し動作)するために、メモリアクセス要求と呼ばれる動作を生成する。本明細書でさらに説明するように、1つ以上のレベルのキャッシュメモリ120,140及びメインメモリ160は、メモリアクセス要求を満たすために共に動作する。説明のために、図1には2つのレベルのキャッシュメモリが示されているが、処理システム100は、3つ以上のレベルのキャッシュメモリを含み得ることが理解されよう。
【0007】
L1キャッシュ120は、プロセッサ110によるアクセスのためにデータを記憶するように構成されたメモリモジュールである。少なくとも1つの実施形態では、L1キャッシュ120は、エントリのセットを含み、各エントリは、キャッシュラインと呼ばれる関連するデータのユニットを記憶する。各キャッシュラインは、データの識別子として機能するメインメモリ内のアドレスを有する。いくつかの実施形態では、L1キャッシュ120は、セットアソシアティブキャッシュであり、キャッシュがいくつかのセットに分割される。各セットは、いくつかのエントリ(すなわち、ウェイ)を含み、各ウェイは、キャッシュラインを記憶するキャッシュエントリに対応する。各セットは、メインメモリアドレスのサブセットに関連するキャッシュラインのみを記憶し、セットに関連するサブセットは、インデックスと呼ばれるメインメモリアドレスの一部に基づいて、対応するキャッシュコントローラによって識別される。
【0008】
L1キャッシュコントローラ130は、データに対するメモリアクセス要求をプロセッサ110から受信し、L1キャッシュ120を検索して、1つのキャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインを記憶しているか否かを判別するように構成されたモジュールである。要求されたキャッシュラインがL1キャッシュ120内で見つかった場合、キャッシュヒットが発生している。キャッシュヒットの場合、L1キャッシュコントローラ130は、読み出し動作の場合には要求されたキャッシュラインをL1キャッシュ120からプロセッサ110に提供し、書き込み動作の場合には書き込みデータをキャッシュエントリに記憶することによって、メモリアクセス要求を満たす。
【0009】
L2キャッシュ140は、L1キャッシュ120と同様に、エントリのセットを含むメモリであり、各エントリは、関連するキャッシュラインを記憶する。要求されたキャッシュラインがL1キャッシュ120内で見つからなかった場合、キャッシュミスが発生している。L1キャッシュ120においてキャッシュミスが発生した場合、L1キャッシュコントローラ130は、メモリアクセス要求をL2キャッシュコントローラ150に提供する。L2キャッシュコントローラ150は、L1キャッシュ120におけるキャッシュミスに応じて、L1キャッシュコントローラ130からメモリアクセス要求を受信するように構成されたモジュールである。L2キャッシュコントローラ150は、メモリアクセス要求の受信に応じて、L2キャッシュ140の1つのキャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するデータを記憶しているか否かを識別する。記憶している場合、L2キャッシュコントローラ150は、キャッシュヒットを識別し、要求されたデータをL2キャッシュ140からL1キャッシュ120に提供する。要求されたデータがL2キャッシュ140内で見つからなかった場合、L2キャッシュコントローラ150は、キャッシュミスを識別し、メモリアクセス要求をメインメモリ160に提供する。メインメモリ160は、メモリアクセス要求に応じて、要求の対象となるメインメモリアドレスでキャッシュラインを取り出し、そのキャッシュラインをL2キャッシュ140に提供する。
【0010】
要求されたキャッシュラインがL2キャッシュ140内で見つかった場合(L2キャッシュコントローラ150による最初の検索の場合、又は、メモリアクセス要求に応じてメインメモリ160から受信した場合)、L2キャッシュコントローラ150は、L2キャッシュ位置145のセット及びウェイを示すL2位置タグ171を生成する。次に、L2キャッシュコントローラ150は、データ170及びL2位置タグ171を、これらが見つかったL2キャッシュ位置145からL1キャッシュ120に転送する。いくつかの実施形態では、L2キャッシュ140は、L1キャッシュ120を含むように構成されており、L1キャッシュ120に記憶されたキャッシュラインの各々を記憶する。
【0011】
L1キャッシュコントローラ130は、データのより効率的な転送を容易にするために、データ170をL2キャッシュ140に転送し戻す場合にL2位置タグ171を読み取る。L1キャッシュ120内のキャッシュラインがプロセッサ110からの書き込み動作によって更新された場合、更新されたキャッシュラインがL2キャッシュ140に転送されなければならないので、L2キャッシュ140は、L1キャッシュ120を含んだままとなる。更新されたキャッシュラインをL2キャッシュ140に転送する場合、L1キャッシュコントローラ130は、L2位置タグ171を読み取り、キャッシュラインが転送されるL2キャッシュ位置145のセット及びウェイを決定する。L2位置タグ171をデータ170と共に記憶することによって処理効率が向上し、転送されたデータの位置をL2キャッシュコントローラ150に識別させることなく、データ170を同じL2キャッシュ位置145に転送し戻すことができる。対照的に、従来のキャッシュ管理システムでは、例えばデータを記憶するエントリのL2キャッシュのセット及びウェイ情報のルックアップ等のように、転送されたデータのキャッシュエントリを識別することを必要とするので、追加の電力が消費され、L2キャッシュ140へのアクセスが遅くなる。
【0012】
いくつかの実施形態では、L1キャッシュ120は、メモリ階層から転送され、プロセッサ110によって書き込まれるデータの全てを、所定の時間に記憶することができないようなサイズで構成されている。L1キャッシュ120に書き込まれ又は転送されるキャッシュラインを収容するために利用可能なキャッシュラインがL1キャッシュ120に存在しない場合、L1キャッシュコントローラ130は、L2キャッシュ140にエビクトされるキャッシュラインをL1キャッシュ120から選択する。エビクトされるキャッシュラインをL2キャッシュ140に転送する場合、L1キャッシュコントローラ130は、L2位置タグ171を読み取って、キャッシュラインがコピーされるL2キャッシュ位置145のセット及びウェイを決定する。
【0013】
例示すると、動作中、プロセッサ110はメモリアクセス動作を実行する。プロセッサ110は、L1キャッシュコントローラ130にデータ170を要求し、L1キャッシュコントローラ130は、要求されたデータ170についてL1キャッシュ120を検索する。要求されたキャッシュラインがL1キャッシュ120内で見つかった場合、要求されたデータ170がプロセッサ110に提供される。要求されたデータ170がL1キャッシュ120内で見つからなかった場合、L1キャッシュコントローラ130は、メモリアクセス要求をL2キャッシュコントローラ150に提供し、L2キャッシュコントローラ150は、要求されたデータ170についてL2キャッシュ140を検索する。要求されたデータ170がL2キャッシュ140内で見つからなかった場合、L2キャッシュコントローラ150は、メモリアクセス要求をメインメモリ160に提供し、メインメモリ160は、要求されたデータ170をL2キャッシュ140に転送する。
【0014】
要求されたデータ170がL2キャッシュ140内で見つかった場合、L2キャッシュコントローラ150は、要求されたデータ170が見つかったL2キャッシュ位置145のセット及びウェイを示すL2位置タグ171を生成する。L2キャッシュコントローラ150は、要求されたデータ170をL2位置タグ171と共にL1キャッシュ120に転送し、ここでメモリアクセス要求が満たされる。
【0015】
その後、データ170は、L1キャッシュ120からL2キャッシュ140に転送し戻される。いくつかの実施形態では、この転送は、データ170がL1キャッシュで更新された結果として行われるか、又は、着信データ用のスペースを作るためにデータ170がL1キャッシュ120からエビクトされた結果として行われる。L1キャッシュコントローラは、データ170がL2キャッシュ140に転送し戻されたときに、データ170及び関連するL2位置タグ171を、L2位置タグ171によって示されるL2キャッシュ位置145のセット及びウェイに転送する。データ170と共にL1キャッシュ120に記憶されたL2位置タグ171が、L2キャッシュ位置145に関するL2キャッシュ140のセット及びウェイ情報を含むので、データ170をL2位置145のセット及びウェイに転送し戻すことによってL2キャッシュコントローラ150によるルックアップが必要なくなることから、より効率的なキャッシュ管理が容易になる。いくつかの実施形態では、処理システム100は、データ転送元の上位レベルのキャッシュ内のセット及びウェイを示すキャッシュ位置タグであって、データを上位レベルのキャッシュに転送し戻す場合にアクセスされるキャッシュ位置タグを別のバッファ(図1に示されていない)に記憶するように構成されている。
【0016】
図2は、時刻T1に、L2キャッシュコントローラ250が、要求されたデータ270が記憶されているL2キャッシュ240内のL2キャッシュ位置245のセット及びウェイを示すL2位置タグ271を生成し、要求されたデータ270を、関連するL2位置タグ271と共にL1キャッシュ220に転送する一例を示す図である。L1キャッシュコントローラ230は、時刻T1の前に、プロセッサ(図示省略)からデータ270の要求を受信し、L1キャッシュ220を検索して、1つのL1キャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインに指定されたデータ270を記憶しているか否かを判別する。図2の例では、要求されたデータ270がL1キャッシュ220に存在しないので、L1キャッシュコントローラ230は、メモリアクセス要求をL2キャッシュコントローラ250に提供する。L2キャッシュコントローラ250は、メモリアクセス要求に応じて、要求されたデータ270についてL2キャッシュ240を検索し、要求されたデータ270をL2キャッシュ位置245のセット及びウェイで見つける。L2キャッシュコントローラ250は、要求されたデータ270が見つかったL2キャッシュ位置245のセット及びウェイを示すL2位置タグ271を生成する。いくつかの実施形態では、L2位置タグ271は、要求されたデータ270のステータスビットに含まれており、ステータスビットは、データのメモリコヒーレンスステータスを示すものである。たとえば、8ウェイアソシアティブキャッシュの場合、L2位置タグ271によって指定されるL2キャッシュウェイは3ビットを必要とするであろう。いくつかの実施形態では、3ビットは、エントリに記憶されたデータが変更されているか、所定のプロセッサコア専用であるか、プロセッサコア間で共有されているか等を示すために使用されるコヒーレンシステータスビットから再利用される。L2キャッシュコントローラ250がメモリアクセス要求に応じてL2位置タグ271を生成すると、L2キャッシュコントローラ250は、要求されたデータ270と、L2位置タグ271と、をL1キャッシュ220に転送し、データ270は、L1キャッシュ220に記憶され、プロセッサ(図示省略)によって使用可能になる。
【0017】
後の時刻T2において、L1キャッシュ220に転送され記憶されたデータ270は、プロセッサ(図示省略)によって更新される。L1キャッシュコントローラ230は、プロセッサ(図示省略)から更新データ272を受信すると、L2位置タグ271を読み取り、更新データ272を、L2位置タグ271によって示されるL2キャッシュ位置245のセット及びウェイに転送する。このようにして、処理システムは、更新データ272を配置するためのL2キャッシュ240内のセット及びウェイを決定するためのルックアップを実行する必要なしに、更新データ272のコピーをL2キャッシュ240内に維持する。或いは、後の時刻T2において、L1キャッシュ220に転送され記憶されたデータ270は、例えば、着信キャッシュライン用のスペースを作るためにデータ270がL1キャッシュ220からエビクトされた場合に、更新されずにL2キャッシュ240に転送し戻されてもよいことが理解できるであろう。その場合、L1キャッシュコントローラ230は、L2位置タグ271を読み取り、データ270を、L2位置タグ271によって示されるL2キャッシュ位置245のセット及びウェイに転送する。
【0018】
図3は、時刻T1に、L2キャッシュコントローラ350が、要求されたデータ370が記憶されているL2キャッシュ340内のL2キャッシュ位置345のセット及びウェイを示すL2位置タグ371を生成し、要求されたデータ370を、関連するL2位置タグ371と共にL1キャッシュ320に転送する一例を示す図である。L1キャッシュコントローラ330は、時刻T1の前に、プロセッサ(図示省略)からデータ370の要求を受信し、L1キャッシュ320を検索して、1つのL1キャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインに指定されたデータ370を記憶しているか否かを判別する。図3の例では、要求されたデータ370がL1キャッシュ320に存在しないので、L1キャッシュコントローラ330は、メモリアクセス要求をL2キャッシュコントローラ350に提供する。L2キャッシュコントローラ350は、メモリアクセス要求に応じて、要求されたデータ370についてL2キャッシュ340を検索し、要求されたデータ370をL2キャッシュ位置345のセット及びウェイで見つける。L2キャッシュコントローラ350は、要求されたデータ370が見つかったL2キャッシュ位置345のセット及びウェイを示すL2位置タグ371を生成し、要求されたデータ370及びL2位置タグ371を、L1キャッシュ320に転送する。図3の例では、L1キャッシュコントローラ330は、L2位置タグ371を位置タグバッファ335に記憶する。
【0019】
図3の例では、後の時刻T2において、L1キャッシュ320に転送され記憶されたデータ370は、プロセッサ(図示省略)によって更新される。L1キャッシュコントローラ330は、プロセッサ(図示省略)から更新データ372を受信すると、位置タグバッファ335にアクセスし、位置タグバッファ335に記憶されたL2位置タグ371を読み取る。次に、L1キャッシュコントローラ330は、更新データ372を、L2位置タグ371によって示されるL2キャッシュ位置345のセット及びウェイに転送する。このようにして、処理システムは、更新データ372を配置するL2キャッシュ340内のセット及びウェイを決定するためのルックアップを実行する必要なしに、更新データ372のコピーをL2キャッシュ340内に維持する。或いは、後の時刻T2において、L1キャッシュ320に転送され記憶されたデータ370は、例えば、着信キャッシュライン用のスペースを作るためにデータ370がL1キャッシュ320からエビクトされた場合に、更新されずにL2キャッシュ340に転送し戻されてもよいことが理解できるであろう。その場合、L1キャッシュコントローラ330は、位置タグバッファ335にアクセスしてL2位置タグ371を読み取り、データ370を、L2位置タグ371によって示されるL2キャッシュ位置345のセット及びウェイに転送する。
【0020】
図4は、位置タグバッファ435に記憶された位置タグ472の一例を示す図である。位置タグ472は、データ(図示省略)に関連するデータインデックス476と、L2キャッシュウェイ識別子477と、を含む。L2キャッシュ(図示省略)のセットアソシアティビティは、L2キャッシュの何れのセットが、データインデックス476を有するデータを記憶するように構成されているかを決定する。L2キャッシュウェイ識別子477は、以前にデータ(図示省略)がL2キャッシュ(図示省略)から転送された、データインデックス476に関連するセット内のキャッシュウェイを示す。したがって、位置タグ472のデータインデックス476及びL2キャッシュウェイ識別子477の組み合わせは、L1キャッシュ(図示省略)に転送される前にデータ(図示省略)を記憶していたL2キャッシュ(図示省略)内のセット及びウェイを識別する。図4の例では、位置タグ472は、位置タグバッファ435に記憶されている。
【0021】
図5は、いくつかの実施形態による、データがL2キャッシュ位置にコピーバック又はエビクトされる場合にL2セット及びウェイ位置情報がアクセスされるように、L1キャッシュに転送されるデータと共にL2セット及びウェイ位置情報を記憶する図1の処理システム100によって実行される方法500を示すフローチャートである。ステップ502において、L2キャッシュコントローラ150は、L2キャッシュ位置145に記憶されたデータ170に対する要求を受信する。ステップ504において、L2キャッシュコントローラ150は、L2位置情報145を、要求されたデータ170のL2位置タグ171に記憶する。ステップ506において、L2キャッシュコントローラ150は、要求されたデータ170及びL2位置タグ171をL1キャッシュ120に転送し、L1キャッシュ120に記憶させる。ステップ508において、データ170が更新されるかL1キャッシュ120からエビクトされる。ステップ510において、L1キャッシュコントローラ130は、更新又はエビクトされたデータ170を、L2位置タグ171に記憶されたL2キャッシュ位置145に転送する。
【0022】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に内蔵されてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。
【0023】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0024】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。
図1
図2
図3
図4
図5