JP7160792B2 - キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 - Google Patents

キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 Download PDF

Info

Publication number
JP7160792B2
JP7160792B2 JP2019501642A JP2019501642A JP7160792B2 JP 7160792 B2 JP7160792 B2 JP 7160792B2 JP 2019501642 A JP2019501642 A JP 2019501642A JP 2019501642 A JP2019501642 A JP 2019501642A JP 7160792 B2 JP7160792 B2 JP 7160792B2
Authority
JP
Japan
Prior art keywords
cache
data
location
tag
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019501642A
Other languages
English (en)
Other versions
JP2019521447A (ja
Inventor
ジェームス モイヤー ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2019521447A publication Critical patent/JP2019521447A/ja
Application granted granted Critical
Publication of JP7160792B2 publication Critical patent/JP7160792B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

処理システムは、通常、プロセッサでの命令の実行をサポートするために、実行中の命令によってアクセスされるデータを記憶するためのメモリモジュールを含むメモリサブシステムを備える。メモリサブシステムは、処理効率を高めるために、実行中の命令によってアクセス可能な全てのデータを記憶するためのメインメモリをメモリ階層の最上位に有し、メインメモリに記憶されたデータのサブセットを記憶するための1つ以上のキャッシュをメモリ階層の下位レベルに有するメモリ階層に構成され得る。例えば、処理システムは、少なくとも2つのキャッシュ(すなわち、上位レベルのキャッシュ(メモリ階層においてメインメモリに近い)及び下位レベルのキャッシュ(処理システムのプロセッサコアに近い))を有するメモリ階層を含むことができ、下位レベルのキャッシュは、上位レベルのキャッシュのサブセットを記憶する。上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータは、例えば、データが処理システムによって更新された場合、又は、着信データ用のスペースを作るためにデータが下位レベルのキャッシュからエビクトされる場合に、後で上位レベルのキャッシュに転送し戻されることがある。データが上位レベルのキャッシュに転送し戻される場合、処理システムは、データを配置するための上位レベルのキャッシュ内の位置を決定する必要があり、これにより、電力及びメモリアクセスリソースを消費する。
添付の図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかとなるであろう。異なる図面における同じ参照記号の使用は、類似又は同一のアイテムを示す。
いくつかの実施形態による、キャッシュ管理システムを使用する処理システムのブロック図である。 いくつかの実施形態による、データ及び位置タグを上位レベルのキャッシュ内の位置から下位レベルのキャッシュに転送し、その後、更新されたデータ及び位置タグを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する図1の処理システムの一例のブロック図である。 いくつかの実施形態による、データを上位レベルのキャッシュから下位レベルのキャッシュに転送し、位置タグを位置タグバッファに記憶し、その後、更新されたデータを下位レベルのキャッシュから上位レベルのキャッシュ内の位置に転送する場合に位置タグバッファから位置タグにアクセスする図1の処理システムの一例のブロック図である。 いくつかの実施形態による、位置タグバッファに記憶された位置タグの一例のブロック図である。 いくつかの実施形態による、データが異なるキャッシュに転送し戻される場合にキャッシュ位置情報にアクセスできるように、異なるキャッシュのキャッシュ位置情報をキャッシュに記憶する方法のフローチャートである。
図1~図5は、上位レベルのキャッシュから下位レベルのキャッシュに転送されるデータと共に、データの転送元の上位レベルのキャッシュの位置を示す情報を記憶することによって、メモリ管理効率を向上させる技術を示す。例示すると、キャッシュコントローラは、上位レベルのキャッシュ内の位置に記憶されているデータに対する要求を受信すると、上位レベルのキャッシュの位置情報をデータのステータスタグに記憶する。次に、キャッシュコントローラは、上位レベルのキャッシュの位置を示すステータスタグと共にデータを下位レベルのキャッシュに転送する。その後、データが更新され又は下位レベルのキャッシュからエビクトされる場合、キャッシュコントローラは、ステータスタグの位置情報を読み取り、データを当初の転送元の上位レベルのキャッシュ内の位置に転送し戻す。処理システムは、データの当初の転送元の上位レベルのキャッシュ内の位置を示す情報を記憶することによって、上位レベルのキャッシュ内の同じ位置にデータを効率的に転送し戻す。特に、位置情報データを記憶することによって、データを記憶するために上位レベルのキャッシュ内の位置を特定する必要がなくなることから、電力及びメモリアクセスリソースを節約することができる。
図1は、データの転送元のキャッシュ内のセット及びウェイ(way)を示す位置タグを用いてデータを転送及び記憶するように構成された処理システム100の一例を示す図である。したがって、処理システム100は、いくつかのデバイス(例えば、パーソナルコンピュータ、ワークステーション、スマートフォン等のモバイルデバイス、ビデオゲーム機、スマートTV等)の何れにおいても使用することができる。本明細書でさらに説明するように、処理システム100は、プロセッサ110と、L1キャッシュ120と、L1キャッシュコントローラ130と、L2キャッシュ140と、L2キャッシュコントローラ150と、メインメモリ160と、を含む。
プロセッサ110は、コンピュータプログラムの形態で構成された命令を実行するための1つ以上の命令パイプラインを含み、これにより、電子デバイスに代わってタスクを実行する。プロセッサ110は、例えばレジスタの形態で或る程度の量の内蔵メモリを有することができるが、かかるメモリは、通常、記憶容量が限られている。したがって、プロセッサ110は、命令を実行するために、例えばL1キャッシュ120及びL2キャッシュ140等の1つ以上のレベルのキャッシュメモリと、メインメモリ160と、を含む処理システム100のメモリ階層に対してデータの記憶及び取り出しを行う。具体的には、プロセッサ110は、命令を実行する過程で、メモリ階層に対してデータを記憶(記憶動作)又はロード(読み出し動作)するために、メモリアクセス要求と呼ばれる動作を生成する。本明細書でさらに説明するように、1つ以上のレベルのキャッシュメモリ120,140及びメインメモリ160は、メモリアクセス要求を満たすために共に動作する。説明のために、図1には2つのレベルのキャッシュメモリが示されているが、処理システム100は、3つ以上のレベルのキャッシュメモリを含み得ることが理解されよう。
L1キャッシュ120は、プロセッサ110によるアクセスのためにデータを記憶するように構成されたメモリモジュールである。少なくとも1つの実施形態では、L1キャッシュ120は、エントリのセットを含み、各エントリは、キャッシュラインと呼ばれる関連するデータのユニットを記憶する。各キャッシュラインは、データの識別子として機能するメインメモリ内のアドレスを有する。いくつかの実施形態では、L1キャッシュ120は、セットアソシアティブキャッシュであり、キャッシュがいくつかのセットに分割される。各セットは、いくつかのエントリ(すなわち、ウェイ)を含み、各ウェイは、キャッシュラインを記憶するキャッシュエントリに対応する。各セットは、メインメモリアドレスのサブセットに関連するキャッシュラインのみを記憶し、セットに関連するサブセットは、インデックスと呼ばれるメインメモリアドレスの一部に基づいて、対応するキャッシュコントローラによって識別される。
L1キャッシュコントローラ130は、データに対するメモリアクセス要求をプロセッサ110から受信し、L1キャッシュ120を検索して、1つのキャッシュエントリが、メモリアクセス要求の対象となるメモリアドレスに関連するキャッシュラインを記憶しているか否かを判別するように構成されたモジュールである。要求されたキャッシュラインがL1キャッシュ120内で見つかった場合、キャッシュヒットが発生している。キャッシュヒットの場合、L1キャッシュコントローラ130は、読み出し動作の場合には要求されたキャッシュラインをL1キャッシュ120からプロセッサ110に提供し、書き込み動作の場合には書き込みデータをキャッシュエントリに記憶することによって、メモリアクセス要求を満たす。
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に提供する。
要求されたキャッシュラインが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に記憶されたキャッシュラインの各々を記憶する。
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へのアクセスが遅くなる。
いくつかの実施形態では、L1キャッシュ120は、メモリ階層から転送され、プロセッサ110によって書き込まれるデータの全てを、所定の時間に記憶することができないようなサイズで構成されている。L1キャッシュ120に書き込まれ又は転送されるキャッシュラインを収容するために利用可能なキャッシュラインがL1キャッシュ120に存在しない場合、L1キャッシュコントローラ130は、L2キャッシュ140にエビクトされるキャッシュラインをL1キャッシュ120から選択する。エビクトされるキャッシュラインをL2キャッシュ140に転送する場合、L1キャッシュコントローラ130は、L2位置タグ171を読み取って、キャッシュラインがコピーされるL2キャッシュ位置145のセット及びウェイを決定する。
例示すると、動作中、プロセッサ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に転送する。
要求されたデータ170がL2キャッシュ140内で見つかった場合、L2キャッシュコントローラ150は、要求されたデータ170が見つかったL2キャッシュ位置145のセット及びウェイを示すL2位置タグ171を生成する。L2キャッシュコントローラ150は、要求されたデータ170をL2位置タグ171と共にL1キャッシュ120に転送し、ここでメモリアクセス要求が満たされる。
その後、データ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に示されていない)に記憶するように構成されている。
図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に記憶され、プロセッサ(図示省略)によって使用可能になる。
後の時刻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のセット及びウェイに転送する。
図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に記憶する。
図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のセット及びウェイに転送する。
図4は、位置タグバッファ435に記憶された位置タグ472の一例を示す図である。位置タグ472は、データ(図示省略)に関連するデータインデックス476と、L2キャッシュウェイ識別子477と、を含む。L2キャッシュ(図示省略)のセットアソシアティビティは、L2キャッシュの何れのセットが、データインデックス476を有するデータを記憶するように構成されているかを決定する。L2キャッシュウェイ識別子477は、以前にデータ(図示省略)がL2キャッシュ(図示省略)から転送された、データインデックス476に関連するセット内のキャッシュウェイを示す。したがって、位置タグ472のデータインデックス476及びL2キャッシュウェイ識別子477の組み合わせは、L1キャッシュ(図示省略)に転送される前にデータ(図示省略)を記憶していたL2キャッシュ(図示省略)内のセット及びウェイを識別する。図4の例では、位置タグ472は、位置タグバッファ435に記憶されている。
図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に転送する。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の記憶媒体、又は、記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に内蔵されてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (15)

  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のデバイス。
JP2019501642A 2016-07-14 2017-07-13 キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法 Active JP7160792B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/210,846 2016-07-14
US15/210,846 US10956339B2 (en) 2016-07-14 2016-07-14 System and method for storing cache location information for cache entry transfer
PCT/US2017/041956 WO2018013824A1 (en) 2016-07-14 2017-07-13 System and method for storing cache location information for cache entry transfer

Publications (2)

Publication Number Publication Date
JP2019521447A JP2019521447A (ja) 2019-07-25
JP7160792B2 true JP7160792B2 (ja) 2022-10-25

Family

ID=60941122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019501642A Active JP7160792B2 (ja) 2016-07-14 2017-07-13 キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法

Country Status (6)

Country Link
US (2) US10956339B2 (ja)
EP (1) EP3485382B1 (ja)
JP (1) JP7160792B2 (ja)
KR (2) KR20190018730A (ja)
CN (1) CN109478164B (ja)
WO (1) WO2018013824A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11294572B2 (en) * 2017-07-06 2022-04-05 Seagate Technology, Llc Data storage system with late read buffer assignment after arrival of data in cache
KR20190023433A (ko) * 2017-08-29 2019-03-08 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
TWI697902B (zh) * 2019-01-24 2020-07-01 瑞昱半導體股份有限公司 電子裝置及電子裝置的管理方法
US20220004501A1 (en) * 2020-07-02 2022-01-06 Ampere Computing Llc Just-in-time synonym handling for a virtually-tagged cache

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178329A1 (en) 2001-04-11 2002-11-28 Shailender Chaudhry Reverse directory for facilitating accesses involving a lower-level cache
JP2008040982A (ja) 2006-08-09 2008-02-21 Toshiba Microelectronics Corp マイクロプロセッサおよびその制御方法
US20140156931A1 (en) 2012-12-05 2014-06-05 Advanced Micro Devices, Inc. State encoding for cache lines
US20150347302A1 (en) 2014-05-29 2015-12-03 Green Cache AB Management of shared pipeline resource usage based on level information

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222989A (ja) * 1992-11-30 1994-08-12 Sgs Thomson Microelectron Inc コピーバックキャッシュタグメモリ
US5623627A (en) * 1993-12-09 1997-04-22 Advanced Micro Devices, Inc. Computer memory architecture including a replacement cache
US6321297B1 (en) 1998-01-05 2001-11-20 Intel Corporation Avoiding tag compares during writes in multi-level cache hierarchy
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US7159070B2 (en) 2003-12-09 2007-01-02 Emc Corp Methods and apparatus for caching a location index in a data storage system
US20070073974A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Eviction algorithm for inclusive lower level cache based upon state of higher level cache
JP4297968B2 (ja) 2006-02-14 2009-07-15 富士通株式会社 コヒーレンシ維持装置およびコヒーレンシ維持方法
US7711902B2 (en) * 2006-04-07 2010-05-04 Broadcom Corporation Area effective cache with pseudo associative memory
US20090055589A1 (en) 2007-08-24 2009-02-26 Arm Limited Cache memory system for a data processing apparatus
TW201015319A (en) * 2008-09-17 2010-04-16 Panasonic Corp Cache memory, memory system, data copying method and data rewriting method
US8572323B2 (en) * 2010-12-30 2013-10-29 Freescale Semiconductor, Inc. Cache result register for quick cache information lookup
WO2013058745A1 (en) * 2011-10-18 2013-04-25 Soft Machines, Inc. Methods and systems for managing synonyms in virtually indexed physically tagged caches
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US8856455B2 (en) * 2012-03-28 2014-10-07 International Business Machines Corporation Data cache block deallocate requests
US9514044B2 (en) 2013-05-24 2016-12-06 Hewlett Packard Enterprise Development Lp Multi-level cache tracking table
CN104346294B (zh) * 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机***
WO2015075674A1 (en) * 2013-11-21 2015-05-28 Green Cache AB Systems and methods for direct data access in multi-level cache memory hierarchies
US20160055100A1 (en) 2014-08-19 2016-02-25 Advanced Micro Devices, Inc. System and method for reverse inclusion in multilevel cache hierarchy
US9990289B2 (en) 2014-09-19 2018-06-05 Advanced Micro Devices, Inc. System and method for repurposing dead cache blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178329A1 (en) 2001-04-11 2002-11-28 Shailender Chaudhry Reverse directory for facilitating accesses involving a lower-level cache
JP2005509204A (ja) 2001-04-11 2005-04-07 サン・マイクロシステムズ・インコーポレイテッド 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
JP2008040982A (ja) 2006-08-09 2008-02-21 Toshiba Microelectronics Corp マイクロプロセッサおよびその制御方法
US20140156931A1 (en) 2012-12-05 2014-06-05 Advanced Micro Devices, Inc. State encoding for cache lines
US20150347302A1 (en) 2014-05-29 2015-12-03 Green Cache AB Management of shared pipeline resource usage based on level information

Also Published As

Publication number Publication date
CN109478164B (zh) 2024-04-16
US20180018271A1 (en) 2018-01-18
US12026099B2 (en) 2024-07-02
WO2018013824A1 (en) 2018-01-18
EP3485382A4 (en) 2020-03-25
CN109478164A (zh) 2019-03-15
KR20230050477A (ko) 2023-04-14
KR102680596B1 (ko) 2024-07-03
EP3485382B1 (en) 2024-05-01
EP3485382A1 (en) 2019-05-22
JP2019521447A (ja) 2019-07-25
KR20190018730A (ko) 2019-02-25
US10956339B2 (en) 2021-03-23
US20210173789A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
US12026099B2 (en) System and method for storing cache location information for cache entry transfer
JP6630449B2 (ja) 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
JP2019525330A (ja) キャッシュテスト領域に基づくプリフェッチデータに対するキャッシュ転送ポリシーの選択
JP2009524137A (ja) 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
US20180113815A1 (en) Cache entry replacement based on penalty of memory access
JP7264806B2 (ja) キャッシュエントリでメモリアクセス要求のペンデンシを識別するシステム及び方法
WO2016131175A1 (zh) 多核***中数据访问者目录的访问方法及设备
US20130282977A1 (en) Cache control device, cache control method, and program thereof
EP3724774B1 (en) Rinsing cache lines from a common memory page to memory
JP2019521410A (ja) 別のキャッシュレベルからのヒントに基づくキャッシュエントリエイジの設定
US10503640B2 (en) Selective data retrieval based on access latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220620

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220620

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220701

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220705

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221013

R150 Certificate of patent or registration of utility model

Ref document number: 7160792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150