JP6770230B2 - 演算処理装置、情報処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置、情報処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6770230B2 JP6770230B2 JP2016193545A JP2016193545A JP6770230B2 JP 6770230 B2 JP6770230 B2 JP 6770230B2 JP 2016193545 A JP2016193545 A JP 2016193545A JP 2016193545 A JP2016193545 A JP 2016193545A JP 6770230 B2 JP6770230 B2 JP 6770230B2
- Authority
- JP
- Japan
- Prior art keywords
- move
- buffer
- request
- cache
- memory access
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6032—Way prediction in set-associative cache
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)
Description
[キャッシュの構成]
図6は、本実施の形態におけるL1キャッシュとL2キャッシュの構成を示す図である。L2キャッシュとL3キャッシュに適用した場合の構成も同様である。また、L3キャッシュとメモリアクセスコントローラMACに適用した場合の構成も、メモリアクセスコントローラMACにはキャッシュメモリがないことを除いて、同様である。
次に、図6のL1キャッシュの動作について説明する。図2の動作と一部重複する説明もあるが、図2の動作と一部重複する部分も含めて説明する。
Pステージ:パイプラインに命令を投入するか否かを決定する。
Tステージ:TLBでアドレス変換(論理アドレスから物理アドレスへ変換)し、TAGメモリ、DATAメモリにアクセスする。
Mステージ:キャッシュヒット判定を行う。
Sステージ:キャッシュヒットの場合、4つのWAYのデータを読み出し、アドレスが一致したWAY番号のデータを選択して出力する。キャッシュミスの場合、ムーブインバッファに空きがあるかの判定と、インデックスアドレスが一致するかの判定とを行い、両方真ならマッチカウンタがWAY数に達しているか否かの判定とを行う。
Bステージ:キャッシュヒットの場合、データを命令発行部に応答する。キャッシュミスの場合、マッチカウンタがWAY数に達していないならムーブインバッファ確保指示、達していたらムーブインバッファの獲得を抑止しメモリアクセス要求の滞留指示をする。
Rステージ:キャッシュヒットの場合、メモリアクセス要求のアクセス結果を命令発行部へ通知し、メモリアクセス要求を終了する。キャッシュミスの場合、ムーブインバッファを確保し(有効ビットを「1」にし、インデックスアドレスを登録し、インデックスアドレスが一致していた場合インデックスマッチフラグを「1」にする)、ムーブイン要求を発行する。
R1ステージ:キャッシュミスの場合、マッチカウンタをインクリメントし、リプレースWAYを確定する。
R2ステージ:キャッシュミスの場合、リプレースWAYをムーブインバッファに登録する。
R3ステージ以降:キャッシュミスの場合、ムーブインバッファからリプレースWAYの読み出しが可能になり、L2キャッシュからデータ応答を受信するのを待つ。
次に、マッチカウンタの数と、マッチカウンタを異なるインデックスアドレスについて共用にするか専用にするかについて3つのマッチカウンタ例について説明する。前提として、図14、図15、図16に示す動作例では、ムーブインバッファは前述の4個ではなく、例えば16個である。
第1のマッチカウンタ例では、L1キャッシュが、マッチカウンタを1個のみ有し、異なるインデックスアドレスが1個のマッチカウンタを共用する。つまり、ムーブインバッファに登録中のムーブイン要求と同一インデックスアドレスADD_Aのメモリアクセス要求が、ムーブインバッファを獲得すると、1個のマッチカウンタがインクリメントされる。その後、同一インデックスアドレスADD_Aのメモリアクセス要求が発生すると、ムーブインバッファ制御部は、マッチカウンタのカウント値が最大のWAY数に対応する値に達していればムーブインバッファの獲得を抑止し、達していなければムーブインバッファの獲得を許可する。また、同一インデックスアドレスADD_Bのメモリアクセス要求が発生した場合も、マッチカウンタのカウント値でムーブインバッファの獲得を判定する。つまり、登録中の第1のムーブイン要求と同一のインデックスアドレスADD_Aのメモリアクセス要求だけでなく、登録中の第2のムーブイン要求のインデックスアドレスADD_Bのメモリアクセス要求も、共用のマッチカウンタの値でムーブインバッファの獲得要否を判定し、獲得すれば共用のマッチカウンタをインクリメントする。
第2のマッチカウンタ例では、L1キャッシュが、マッチカウンタを1個のみ有し、最初に発生した同一インデックスアドレスの専用にする。つまり、マッチカウンタを獲得できた登録中ムーブイン要求と同一インデックスアドレスのメモリアクセス要求は、マッチカウンタを利用して全WAYでムーブインバッファを獲得できる。しかし、マッチカウンタを獲得できなかった他の同一インデックスアドレスのメモリアクセス要求は、マッチカウンタを利用して全WAYでムーブインバッファを獲得できない。また、データ応答によりマッチカウンタのカウント値が0になると、マッチカウンタの専用状態が解除される。
第3のマッチカウンタ例では、L1キャッシュが、マッチカウンタを2個有し、2個のマッチカウンタは、最初に発生した2種類の同一インデックスアドレスそれぞれに専用になる。つまり、最初に発生した同一インデックスアドレスAのメモリアクセス要求により専用マッチカウンタが獲得され、次に発生した2つ目の同一インデックスアドレスBも専用マッチカウンタを獲得できる。そして、マッチカウンタを獲得できた2種類の同一インデックスアドレスA,Bのメモリアクセス要求は、それぞれのマッチカウンタによりWAY数(=4)のムーブインバッファの獲得ができる。しかし、マッチカウンタを獲得できなかった他の同一インデックスアドレスCのメモリアクセス要求は、マッチカウンタによるWAY数までのWAYの利用ができず、同一インデックスアドレスCのムーブイン要求を並行して発行できない。また、第2のマッチカウンタ例と同様に、データ応答によりカウント値が0になると、マッチカウンタの専用状態が解除される。
メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部とを有するキャッシュとを有し、
前記ムーブインバッファ制御部は、前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、(a)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファの獲得を決定し前記ムーブイン要求を発行し、(b)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記ウエイ数に達している場合は、前記ムーブインバッファの獲得抑止を決定し前記ムーブイン要求の発行を抑止する、演算処理装置。
前記キャッシュは、さらに、
前記ムーブインバッファ制御部が前記ムーブインバッファを獲得する場合、前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイから、前記同一インデックスのメモリアクセス要求に対して発行するムーブイン要求の応答データを登録する前記キャッシュメモリのリプレースウエイを選択し、前記選択したリプレースウエイを前記ムーブインバッファに登録するリプレースウエイ選択部を有する、付記1に記載の演算処理装置。
前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数をカウントするマッチカウンタを有し、
前記ムーブインバッファ制御部は、前記同一インデックスのメモリアクセス要求に対し前記ムーブインバッファを獲得する場合、前記マッチカウンタをインクリメントし、前記同一インデックスのメモリアクセス要求に対して発行したムーブイン要求に対するデータ応答後に前記獲得したムーブインバッファを開放する場合、前記マッチカウンタをデクリメントする、付記1に記載の演算処理装置。
前記マッチカウンタは、複数の異なる前記同一インデックスのムーブイン要求で共用される共用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記複数の異なる同一インデックスのうちいずれかの前記同一インデックスのメモリアクセス要求に対し前記ムーブインバッファを獲得する場合、前記共用マッチカウンタをインクリメントし、前記獲得したムーブインバッファを開放する場合、前記共用マッチカウンタをデクリメントする、付記3に記載の演算処理装置。
前記マッチカウンタは、単一の前記同一インデックスのムーブイン要求で専用される専用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記単一の同一インデックスのメモリアクセス要求に対し前記ムーブインバッファを獲得する場合、前記専用マッチカウンタをインクリメントし、前記獲得したムーブインバッファを開放する場合、前記専用マッチカウンタをデクリメントする、付記3に記載の演算処理装置。
前記ムーブインバッファ制御部は、前記単一の同一インデックス以外の前記同一インデックスのメモリアクセス要求に対して、前記専用マッチカウンタの値にかかわらず、前記ムーブインバッファの獲得抑止を決定し前記ムーブイン要求の発行を抑止する、付記5に記載の演算処理装置。
前記マッチカウンタは、複数の異なる前記同一インデックスのムーブイン要求でそれぞれ専用される複数の専用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記同一インデックスのメモリアクセス要求に対し前記ムーブインバッファを獲得する場合、前記同一インデックスに対応する専用マッチカウンタをインクリメントし、前記獲得したムーブインバッファを開放する場合、前記専用マッチカウンタをデクリメントする、付記3に記載の演算処理装置。
前記ムーブインバッファは、ムーブイン要求が発行中か否かを示す有効ビットと、発行中のムーブイン要求のインデックス、リプレースウエイ、データをそれぞれ記憶する複数のエントリを有し、さらに、前記各エントリは、登録中のムーブイン要求が前記同一インデックスのムーブイン要求を示す同一インデックスフラグを記憶し、
前記ムーブインバッファ制御部は、前記同一インデックスのメモリアクセス要求に対してムーブインバッファを獲得するときに、前記同一インデックスフラグを登録し、前記獲得したムーブインバッファを開放するとき前記同一インデックスフラグが記憶されている場合、前記マッチカウンタをデクリメントする、付記3に記載の演算処理装置。
前記リプレースウエイ選択部は、前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイのうち、前記タグメモリ内の前記同一インデックスの無効のウエイを優先して、前記リプレースウエイに選択する、付記2に記載の演算処理装置。
前記リプレースウエイ選択部は、前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイが前記タグメモリの前記同一インデックスで有効な場合、アクセスの古さに基づいて前記リプレースウエイを選択する、付記9に記載の演算処理装置。
前記メモリアクセス要求発行部は、命令発行部であり、
前記キャッシュは、第1レベルキャッシュであり、
前記ムーブインバッファ制御部は、前記第1レベルキャッシュよりメインメモリに近い第2レベルキャッシュに前記ムーブイン要求を発行する、付記1に記載の演算処理装置。
前記メモリアクセス要求発行部は、第1のキャッシュであり、
前記キャッシュは、前記第1のキャッシュよりメインメモリに近い第2のキャッシュである、付記1に記載の演算処理装置。
前記ムーブインバッファ制御部は、前記第2のキャッシュより前記メインメモリに近い第3のキャッシュに前記ムーブイン要求を発行する、付記12に記載の演算処理装置。
前記ムーブインバッファ制御部は、前記メインメモリへのアクセスを制御するメモリ制御部に前記ムーブイン要求を発行する、付記12に記載の演算処理装置。
演算処理装置と、
前記演算処理装置からアクセスされる主記憶装置とを有し、
前記演算処理装置は、
メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部とを有するキャッシュとを有し、
前記ムーブインバッファ制御部は、前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、(a)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファの獲得を決定し前記ムーブイン要求を発行し、(b)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記ウエイ数に達している場合は、前記ムーブインバッファの獲得抑止を決定し前記ムーブイン要求の発行を抑止する、情報処理装置。
メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部とを有するキャッシュとを有する演算処理装置の制御方法であって、
前記ムーブインバッファ制御部は、
前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、(a)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファの獲得を決定し前記ムーブイン要求を発行し、(b)前記メモリアクセス要求がムーブインバッファに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記ムーブインバッファに登録中である前記同一インデックスのムーブイン要求の数が前記ウエイ数に達している場合は、前記ムーブインバッファの獲得抑止を決定し前記ムーブイン要求の発行を抑止する、演算処理装置の制御方法。
20:L2キャッシュ
3:命令発行部
11:リクエストポート
TLB:トランスレーション・ルックアサイド・バッファ
DATA_RAM, TAG_RAM:キャッシュメモリ
DATA RAM:データメモリ
TAG RAM:タグメモリ
LRU:LRU回路
MIB_CN:ムーブインバッファ制御部
MCH_CNT:マッチカウンタ
MIB:ムーブインバッファ
VALID:有効ビット
IDX_ADD:インデックスアドレス
DATA:データ
IDX_MCH_FLG:インデックスマッチフラグ
MI_RQ:ムーブイン要求
RPL_SEL:リプレースWAY選択回路
RPL_WAY:リプレースWAY
DATA_RSP:データ応答
EJ_OD:追い出しオーダ
WAY:ウエイ
Claims (10)
- メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部と、前記ムーブイン要求を登録する複数のエントリを有するムーブインバッファと、マッチカウンタと、リプレースウエイ選択部とを有するキャッシュとを有し、
前記ムーブインバッファ制御部は、前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、
(a)前記メモリアクセス要求がムーブインバッファの前記複数のエントリに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファのエントリを獲得し前記ムーブイン要求を発行し前記マッチカウンタをインクリメントし、
(b)前記メモリアクセス要求が前記同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記ウエイ数に達している場合は、前記ムーブインバッファの前記エントリの獲得を抑止し前記ムーブイン要求の発行を抑止し、
(c)前記同一インデックスを持つメモリアクセス要求に対して発行したムーブイン要求に対するデータ応答後に前記獲得したムーブインバッファの前記エントリを開放する場合、前記マッチカウンタをデクリメントし、
前記リプレースウエイ選択部が、前記ムーブインバッファのエントリに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイから、前記同一インデックスのメモリアクセス要求に対して発行するムーブイン要求の応答データを登録する前記キャッシュメモリのリプレースウエイを選択する前に、前記ムーブインバッファ制御部が前記ムーブインバッファの前記複数のエントリのいずれかのエントリを獲得する、演算処理装置。 - 前記マッチカウンタは、複数の異なる前記同一インデックスのムーブイン要求で共用される共用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記複数の異なる同一インデックスのうちいずれかの前記同一インデックスのメモリアクセス要求に対し前記ムーブインバッファのエントリを獲得する場合、前記共用マッチカウンタをインクリメントし、前記獲得したムーブインバッファのエントリを開放する場合、前記共用マッチカウンタをデクリメントする、請求項1に記載の演算処理装置。 - 前記マッチカウンタは、単一の前記同一インデックスのムーブイン要求で専用される専用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記単一の同一インデックスのメモリアクセス要求に対し前記ムーブインバッファのエントリを獲得する場合、前記専用マッチカウンタをインクリメントし、前記獲得したムーブインバッファのエントリを開放する場合、前記専用マッチカウンタをデクリメントする、請求項1に記載の演算処理装置。 - 前記ムーブインバッファ制御部は、前記単一の同一インデックス以外の前記同一インデックスのメモリアクセス要求に対して、前記専用マッチカウンタの値にかかわらず、前記ムーブインバッファのエントリの獲得抑止を決定し前記ムーブイン要求の発行を抑止する、請求項3に記載の演算処理装置。
- 前記マッチカウンタは、複数の異なる前記同一インデックスのムーブイン要求でそれぞれ専用される複数の専用マッチカウンタを有し、
前記ムーブインバッファ制御部は、前記同一インデックスのメモリアクセス要求に対し前記ムーブインバッファのエントリを獲得する場合、前記同一インデックスに対応する専用マッチカウンタをインクリメントし、前記獲得したムーブインバッファのエントリを開放する場合、前記専用マッチカウンタをデクリメントする、請求項1に記載の演算処理装置。 - 前記ムーブインバッファの前記複数のエントリには、ムーブイン要求が発行中か否かを示す有効ビットと、発行中のムーブイン要求のインデックス、リプレースウエイ、データをそれぞれ記憶し、さらに、前記各エントリは、登録中のムーブイン要求が前記同一インデックスのムーブイン要求を示す同一インデックスフラグを記憶し、
前記ムーブインバッファ制御部は、前記同一インデックスのメモリアクセス要求に対してムーブインバッファのエントリを獲得するときに、前記同一インデックスフラグを登録し、前記獲得したムーブインバッファのエントリを開放するとき前記同一インデックスフラグが記憶されている場合、前記マッチカウンタをデクリメントする、請求項1に記載の演算処理装置。 - 前記リプレースウエイ選択部は、前記ムーブインバッファのエントリに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイのうち、前記タグメモリ内の前記同一インデックスの無効のウエイを優先して、前記リプレースウエイに選択する、請求項1に記載の演算処理装置。
- 前記リプレースウエイ選択部は、前記ムーブインバッファのエントリに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイが前記タグメモリの前記同一インデックスで有効な場合、アクセスの古さに基づいて前記リプレースウエイを選択する、請求項7に記載の演算処理装置。
- 演算処理装置と、
前記演算処理装置からアクセスされる主記憶装置とを有し、
前記演算処理装置は、
メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部と、前記ムーブイン要求を登録する複数のエントリを有するムーブインバッファと、マッチカウンタと、リプレースウエイ選択部とを有するキャッシュとを有し、
前記ムーブインバッファ制御部は、前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、
(a)前記メモリアクセス要求がムーブインバッファの前記複数のエントリに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファのエントリを獲得し前記ムーブイン要求を発行し前記マッチカウンタをインクリメントし、
(b)前記メモリアクセス要求が前記同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記ウエイ数に達している場合は、前記ムーブインバッファのエントリの獲得を抑止し前記ムーブイン要求の発行を抑止し、
(c)前記同一インデックスを持つメモリアクセス要求に対して発行したムーブイン要求に対するデータ応答後に前記獲得したムーブインバッファの前記エントリを開放する場合、前記マッチカウンタをデクリメントし、
前記リプレースウエイ選択部が、前記ムーブインバッファのエントリに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイから、前記同一インデックスのメモリアクセス要求に対して発行するムーブイン要求の応答データを登録する前記キャッシュメモリのリプレースウエイを選択する前に、前記ムーブインバッファ制御部が前記ムーブインバッファの前記複数のエントリのいずれかのエントリを獲得する、情報処理装置。 - メモリアクセス要求を発行するメモリアクセス要求発行部と、
タグメモリとデータメモリを有するキャッシュメモリと、前記メモリアクセス要求がキャッシュミスした場合に前記メモリアクセス要求のデータを要求するムーブイン要求を発行するムーブインバッファ制御部と、前記ムーブイン要求を登録する複数のエントリを有するムーブインバッファと、マッチカウンタと、リプレースウエイ選択部とを有するキャッシュとを有する演算処理装置の制御方法であって、
前記ムーブインバッファ制御部は、前記メモリアクセス要求がキャッシュ判定でキャッシュミスしたとき、
(a)前記メモリアクセス要求がムーブインバッファの前記複数のエントリに登録中のいずれかのムーブイン要求のインデックスと同じインデックスである同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記キャッシュメモリのウエイ数未満の場合は、前記ムーブインバッファのエントリを獲得し前記ムーブイン要求を発行し前記マッチカウンタをインクリメントし、
(b)前記メモリアクセス要求が前記同一インデックスを有し、且つ前記マッチカウンタのカウント値が前記ウエイ数に達している場合は、前記ムーブインバッファのエントリの獲得を抑止し前記ムーブイン要求の発行を抑止し、
(c)前記同一インデックスを持つメモリアクセス要求に対して発行したムーブイン要求に対するデータ応答後に前記獲得したムーブインバッファの前記エントリを開放する場合、前記マッチカウンタをデクリメントし、
前記リプレースウエイ選択部が、前記ムーブインバッファのエントリに登録中である前記同一インデックスのムーブイン要求のウエイ以外のウエイから、前記同一インデックスのメモリアクセス要求に対して発行するムーブイン要求の応答データを登録する前記キャッシュメモリのリプレースウエイを選択する前に、前記ムーブインバッファ制御部が前記ムーブインバッファの前記複数のエントリのいずれかのエントリを獲得する、演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016193545A JP6770230B2 (ja) | 2016-09-30 | 2016-09-30 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
US15/683,838 US10552331B2 (en) | 2016-09-30 | 2017-08-23 | Arithmetic processing device having a move-in buffer control unit that issues a move-in request in shorter time upon a memory access request, information apparatus including the same and method for controlling the arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016193545A JP6770230B2 (ja) | 2016-09-30 | 2016-09-30 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018055568A JP2018055568A (ja) | 2018-04-05 |
JP6770230B2 true JP6770230B2 (ja) | 2020-10-14 |
Family
ID=61758846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016193545A Active JP6770230B2 (ja) | 2016-09-30 | 2016-09-30 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10552331B2 (ja) |
JP (1) | JP6770230B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6770230B2 (ja) | 2016-09-30 | 2020-10-14 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
JP6947974B2 (ja) | 2017-09-13 | 2021-10-13 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10853256B2 (en) * | 2019-01-04 | 2020-12-01 | Arm Limited | Cache operation in an apparatus supporting both physical and virtual address mapping |
CN109918131B (zh) * | 2019-03-11 | 2021-04-30 | 中电海康无锡科技有限公司 | 一种基于非阻塞指令cache的指令读取方法 |
JP2023079640A (ja) * | 2021-11-29 | 2023-06-08 | 富士通株式会社 | 演算処理装置および演算処理方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960006484B1 (ko) * | 1992-09-24 | 1996-05-16 | 마쯔시다 덴기 산교 가부시끼가이샤 | 캐쉬메모리장치 |
US5680572A (en) * | 1994-02-28 | 1997-10-21 | Intel Corporation | Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers |
JPH08328960A (ja) | 1995-05-30 | 1996-12-13 | Hitachi Ltd | キャッシュメモリ装置 |
JPH09218823A (ja) | 1996-02-08 | 1997-08-19 | Hitachi Ltd | キャッシュメモリ制御装置 |
JP2001051899A (ja) * | 1999-08-12 | 2001-02-23 | Hitachi Ltd | キャッシュメモリ装置 |
US6401175B1 (en) * | 1999-10-01 | 2002-06-04 | Sun Microsystems, Inc. | Shared write buffer for use by multiple processor units |
US6282617B1 (en) * | 1999-10-01 | 2001-08-28 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
JP2002082832A (ja) * | 2000-09-08 | 2002-03-22 | Nec Corp | キャッシュ更新方法及びキャッシュ更新制御システム並びに記録媒体 |
US7107367B1 (en) * | 2003-08-12 | 2006-09-12 | Advanced Micro Devices, Inc. | Method for efficient buffer tag allocation |
JP4550511B2 (ja) | 2004-07-27 | 2010-09-22 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法 |
US7669009B2 (en) * | 2004-09-23 | 2010-02-23 | Intel Corporation | Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches |
US7302528B2 (en) * | 2004-11-19 | 2007-11-27 | Intel Corporation | Caching bypass |
WO2007088591A1 (ja) * | 2006-01-31 | 2007-08-09 | Fujitsu Limited | メモリアクセス制御装置およびメモリアクセス制御方法 |
KR101077513B1 (ko) * | 2007-06-20 | 2011-10-28 | 후지쯔 가부시끼가이샤 | 캐시 메모리 장치, 연산 처리 장치 및 그 제어 방법 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
WO2012127628A1 (ja) * | 2011-03-22 | 2012-09-27 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
JP2012203729A (ja) * | 2011-03-25 | 2012-10-22 | Fujitsu Ltd | 演算処理装置および演算処理装置の制御方法 |
JP6179369B2 (ja) * | 2013-11-22 | 2017-08-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6451538B2 (ja) * | 2015-07-22 | 2019-01-16 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6770230B2 (ja) | 2016-09-30 | 2020-10-14 | 富士通株式会社 | 演算処理装置、情報処理装置及び演算処理装置の制御方法 |
-
2016
- 2016-09-30 JP JP2016193545A patent/JP6770230B2/ja active Active
-
2017
- 2017-08-23 US US15/683,838 patent/US10552331B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20180095886A1 (en) | 2018-04-05 |
US10552331B2 (en) | 2020-02-04 |
JP2018055568A (ja) | 2018-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6770230B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
US10558577B2 (en) | Managing memory access requests with prefetch for streams | |
JP2554449B2 (ja) | キャッシュ・メモリを有するデータ処理システム | |
JP5482801B2 (ja) | 演算処理装置 | |
US6425055B1 (en) | Way-predicting cache memory | |
US10929308B2 (en) | Performing maintenance operations | |
JP2018005395A (ja) | 演算処理装置、情報処理装置および演算処理装置の制御方法 | |
KR20160033651A (ko) | 상이한 인덱싱 방식을 사용하는 1차 캐시와 오버플로 캐시를 갖는 캐시 시스템 | |
JP2010033480A (ja) | キャッシュメモリおよびキャッシュメモリ制御装置 | |
CN113760787B (zh) | 多级高速缓存数据推送系统、方法、设备和计算机介质 | |
US9846580B2 (en) | Arithmetic processing device, arithmetic processing system, and method for controlling arithmetic processing device | |
US7761665B2 (en) | Handling of cache accesses in a data processing apparatus | |
US10831673B2 (en) | Memory address translation | |
US10853262B2 (en) | Memory address translation using stored key entries | |
US8255632B2 (en) | Pre-fetch control apparatus | |
WO2007090175A1 (en) | Cache locking without interference from normal allocation | |
KR20210037216A (ko) | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 | |
JP6947974B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP2014186579A (ja) | キャッシュメモリ、キャッシュメモリ制御装置、および、そのキャッシュメモリ制御方法 | |
US8423719B2 (en) | Apparatus, processor and method of controlling cache memory | |
US10866904B2 (en) | Data storage for multiple data types | |
JP2001195390A (ja) | ベクトル処理装置のオペランドキャッシュ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170830 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200609 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200807 |
|
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: 20200825 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200907 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6770230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |