JP6485320B2 - キャッシュメモリおよびキャッシュメモリの制御方法 - Google Patents

キャッシュメモリおよびキャッシュメモリの制御方法 Download PDF

Info

Publication number
JP6485320B2
JP6485320B2 JP2015209087A JP2015209087A JP6485320B2 JP 6485320 B2 JP6485320 B2 JP 6485320B2 JP 2015209087 A JP2015209087 A JP 2015209087A JP 2015209087 A JP2015209087 A JP 2015209087A JP 6485320 B2 JP6485320 B2 JP 6485320B2
Authority
JP
Japan
Prior art keywords
data
cache
memory
cache memory
ratio
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
JP2015209087A
Other languages
English (en)
Other versions
JP2017083949A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015209087A priority Critical patent/JP6485320B2/ja
Priority to US15/286,664 priority patent/US10073788B2/en
Publication of JP2017083949A publication Critical patent/JP2017083949A/ja
Application granted granted Critical
Publication of JP6485320B2 publication Critical patent/JP6485320B2/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/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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/12Replacement control
    • 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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、キャッシュメモリおよびキャッシュメモリの制御方法に関する。
CPU(Central Processing Unit)等の演算処理装置は、主記憶装置に比べて高速にアクセス可能なキャッシュメモリを有する。キャッシュメモリは、演算処理部であるCPUコア等のプロセッサコアと主記憶装置との間に配置され、主記憶装置に記憶されたデータの一部を記憶する。
キャッシュメモリは、プロセッサコアからのアクセス要求で指定されたデータを記憶している場合(キャッシュヒット)、記憶しているデータをプロセッサコアに転送する。また、キャッシュメモリは、アクセス要求で指定されたデータを記憶していない場合(キャッシュミス)、主記憶装置からデータを取得し、取得したデータをプロセッサコアに転送し、主記憶装置から取得したデータを記憶する。これにより、アクセス要求で指定されたデータは、キャッシュメモリに登録される。
なお、キャッシュメモリは、主記憶装置から取得したデータを登録する空き領域がない場合、キャッシュメモリに記憶したデータのいずれかを追い出して空き領域を生成する。キャッシュメモリから追い出すデータを選択する手法として、LRU(Least Recently Used)方式が知られている。LRU方式では、キャッシュメモリは、使用されていない時間が最も長いデータを、追い出すデータとして選択する。
なお、主記憶装置のアクセス時間がデータの主記憶装置内での格納先によって異なるシステムでは、LRU方式とは別の選択方式により、キャッシュメモリから追い出すデータを選択する手法が提案されている(例えば、特許文献1、2参照)。この種の選択方式では、キャッシュメモリに記憶したデータのうち、主記憶装置のアクセス時間が短いデータを、キャッシュメモリから追い出すデータとして優先して選択する。
特開平10−187540号公報 特開平7−152649号公報
近年、DRAM(Dynamic Random Access Memory)とNVRAM(Non-Volatile Random Access Memory)とを含む主記憶装置の研究が行われている。NVRAMは、例えば、PCM(Phase Change Memory)、ReRAM(Resistive RAM)、MRAM(Magnetoresistive RAM)等である。LRU方式等の従来の手法は、アクセス時間が互いに異なる複数のメモリデバイス(例えば、DRAMとNVRAM)を含む主記憶装置を想定していない。このため、複数のメモリデバイス(例えば、DRAMとNVRAM)を含む主記憶装置に接続されたキャッシュメモリに、LRU方式等の従来の手法を適用した場合、キャッシュメモリから追い出すデータが適切に選択されない場合がある。キャッシュメモリから追い出すデータが適切に選択されない場合、例えば、主記憶装置に記憶されたデータに対するアクセス時間の平均は、追い出すデータを適切に選択した場合に比べて増加する。
また、主記憶装置のアクセス時間が短いデータを、キャッシュメモリから追い出すデータとして優先して選択する方式では、アクセス時間が他のメモリデバイスより短いメモリデバイスにアクセスが集中した場合、キャッシュミスの頻度が増加する場合がある。この場合、主記憶装置に記憶されたデータに対するアクセス時間の平均は、追い出すデータを適切に選択した場合に比べて増加する。
1つの側面では、本件開示のキャッシュメモリおよびキャッシュメモリの制御方法は、主記憶装置に記憶されたデータに対するアクセス時間を低減することを目的とする。
一観点によれば、キャッシュメモリは、アクセス要求からデータ転送までの時間を示すレイテンシが互いに異なる複数のメモリデバイスを含む記憶装置に記憶されたデータの一部を保持するデータ保持部と、複数のメモリデバイスのレイテンシの比と複数のメモリデバイスに対するアクセス頻度の比との複数のメモリデバイス毎の積と、複数のメモリデバイスから転送されてデータ保持部に保持されたデータの量を示すデータ量の比とを比較し、積とデータ量の比との比較結果に基づいて、データ保持部からのデータの追い出しを制御する制御部とを有する。
別の観点によれば、アクセス要求からデータ転送までの時間を示すレイテンシが互いに異なる複数のメモリデバイスを含む記憶装置に記憶されたデータの一部をデータ保持部に格納するキャッシュメモリの制御方法では、キャッシュメモリが有する制御部は、複数のメモリデバイスのレイテンシの比と複数のメモリデバイスに対するアクセス頻度の比との複数のメモリデバイス毎の積と、複数のメモリデバイスから転送されてデータ保持部に保持されたデータの量を示すデータ量の比とを比較し、積とデータ量の比との比較結果に基づいて、データ保持部からのデータの追い出しを制御する。
本件開示のキャッシュメモリおよびキャッシュメモリの制御方法は、主記憶装置に記憶されたデータに対するアクセス時間を低減できる。
キャッシュメモリおよびキャッシュメモリの制御方法の一実施形態を示す図である。 キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。 図2に示したキャッシュメモリの動作の一例を示す図である。 図3に示したキャッシュ追い出し処理の一例を示す図である。 図4に示したキャッシュ追い出し処理を適用した場合とLRU方式を適用した場合との比較例を示す図である。 キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。 図6に示したキャッシュメモリの動作の一例を示す図である。 キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。 図8に示したキャッシュメモリの動作の一例を示す図である。
以下、実施形態について、図面を用いて説明する。
図1は、キャッシュメモリおよびキャッシュメモリの制御方法の一実施形態を示す。なお、キャッシュメモリ10の構成は、図1に示す例に限定されない。図1に示すキャッシュメモリ10は、演算処理部であるCPUコア等のプロセッサコア20と記憶装置200との間に配置される。例えば、キャッシュメモリ10およびプロセッサコア20は、CPU等の演算処理装置100に搭載される。なお、例えば、キャッシュメモリが階層構造を有する場合、キャッシュメモリ10は、演算処理装置100の外部に配置されてもよい。記憶装置200は、アクセス要求からデータ転送までの時間を示すレイテンシが互いに異なる複数のメモリデバイス210(210A、210B)を有する。例えば、メモリデバイス210Aは、DRAMであり、メモリデバイス210Bは、レイテンシがDRAMより大きいNVRAMである。
例えば、キャッシュメモリ10は、記憶装置200に記憶されたデータDATA(DATAa、DATAb)の一部を記憶する。データDATAaは、記憶装置200内のメモリデバイス210Aに記憶されるデータDATAを示し、データDATAbは、記憶装置200内のメモリデバイス210Bに記憶されるデータDATAを示す。また、データDATAの記憶装置200での格納先を示すアドレスADRのうち、アドレスADRaは、メモリデバイス210Aに割り当てられたアドレスADRを示し、アドレスADRbは、メモリデバイス210Bに割り当てられたアドレスADRを示す。
キャッシュメモリ10は、複数のメモリデバイス210に記憶されたデータDATA(DATAa、DATAb)の一部を保持するデータ保持部12と、制御部14とを有する。例えば、キャッシュメモリ10は、プロセッサコア20からアクセス要求を受けた場合、アクセス要求で指定されたアドレスADRに対応するデータDATA(以下、要求データDATAとも称する)がデータ保持部12に保持されているか否かを判定する。
要求データDATAがデータ保持部12に保持されている場合、キャッシュメモリ10は、データ保持部12に保持されているデータDATAをプロセッサコア20に転送する。要求データDATAがデータ保持部12に保持されていない場合、キャッシュメモリ10は、記憶装置200から要求データDATAを取得し、取得した要求データDATAをプロセッサコア20に転送する。また、キャッシュメモリ10は、記憶装置200から取得した要求データDATAをデータ保持部12に格納する。これにより、アクセス要求で指定されたアドレスADRに対応する要求データDATAは、キャッシュメモリ10に登録される。
なお、キャッシュメモリ10は、記憶装置200から取得した要求データDATAを登録する空き領域がない場合、データ保持部12に保持されたデータDATAのいずれかをキャッシュメモリ10から追い出し、空き領域を生成する。キャッシュメモリ10から追い出すデータDATAを選択する処理は、制御部14により実行される。以下、キャッシュメモリ10から追い出すデータDATA、すなわち、データ保持部12から追い出すデータDATAは、追い出しデータDATAとも称される。
制御部14は、複数のメモリデバイス210A、210Bのレイテンシの比と複数のメモリデバイス210A、210Bに対するアクセス頻度の比との複数のメモリデバイス210A、210B毎の積を算出する。以下、複数のメモリデバイス210A、210Bのレイテンシの比は、レイテンシ比とも称され、複数のメモリデバイス210A、210Bに対するアクセス頻度の比は、アクセス比とも称される。
例えば、メモリデバイス210Aのレイテンシが10ナノ秒(ns)で、メモリデバイス210Bのレイテンシが50nsである場合、メモリデバイス210Aとメモリデバイス210Bとのレイテンシ比は、1:5である。また、アドレスADRaに対するアクセス要求の発生頻度がアドレスADRbに対するアクセス要求の発生頻度の2倍である場合、メモリデバイス210Aとメモリデバイス210Bとのアクセス比は、2:1である。この場合、メモリデバイス210A、210Bとのレイテンシ比とメモリデバイス210A、210Bのアクセス比との積は、2:5(=(1×2):(5×1))である。
ここで、レイテンシ比の算出に使用される各メモリデバイス210のレイテンシは、例えば、データDATAの読み出し時のレイテンシとデータDATAの書き込み時のレイテンシとの平均でもよい。あるいは、レイテンシ比の算出に使用される各メモリデバイス210のレイテンシは、読み出し時のレイテンシのみでもよいし、書き込み時のレイテンシのみでもよい。なお、データDATAの読み出し時のレイテンシは、例えば、メモリデバイス210が読み出し要求を受けてから最初のデータを出力するまでの時間でもよいし、最後のデータを出力するまでの時間でもよい。また、データDATAの書き込み時のレイテンシは、例えば、メモリデバイス210が書き込み要求を受けてから最初のデータを書き込むまでの時間でよいし、最後のデータの書き込みが完了するまでの時間でもよい。
また、制御部14は、複数のメモリデバイス210A、210Bから転送されてデータ保持部12に保持されたデータDATAの量を示すデータ量の比(以下、キャッシュ比とも称する)を算出する。なお、キャッシュ比は、データ保持部12に保持されたデータDATAをメモリデバイス210A、210B毎に分けた場合の複数のメモリデバイス210A、210Bのデータ量の比である。例えば、データ保持部12に保持されたデータDATAのうち、30%がアドレスADRaに対応するデータDATAaで、70%がアドレスADRbに対応するデータDATAbである場合、メモリデバイス210A、210Bのキャッシュ比は、3:7である。制御部14は、レイテンシ比とアクセス比との積と、キャッシュ比とを比較する。
そして、制御部14は、キャッシュ比がレイテンシ比とアクセス比との積に近づくように、追い出しデータDATAを選択する。例えば、メモリデバイス210A、210Bのキャッシュ比が3:7で、メモリデバイス210A、210Bのレイテンシ比とアクセス比との積が2:5である場合、制御部14は、データDATAaを追い出しデータDATAとして選択する。このように、制御部14は、レイテンシ比とアクセス比との積とキャッシュ比との比較結果に基づいて、データ保持部12からのデータDATAの追い出しを制御する。
ここで、例えば、LRU方式では、使用されていない時間が最も長いデータDATAがデータ保持部12から追い出されるため、メモリデバイス210A、210Bのレイテンシに拘わらず、キャッシュ比はアクセス比に近づく。すなわち、LRU方式では、追い出しデータDATAを選択する際に、メモリデバイス210A、210Bのレイテンシは考慮されない。このため、LRU方式では、メモリデバイス210Aよりレイテンシの大きいメモリデバイス210Bにアクセスする頻度が増加するおそれがある。この場合、記憶装置200に割り当てられたアドレスADRで指定されるデータDATAに対するアクセス時間の平均(以下、平均ペナルティとも称する)は、増加する。
また、記憶装置200へのアクセス時間が短いデータDATAを、追い出しデータDATAとして優先して選択する方式では、メモリデバイス210A、210Bのアクセス比は考慮されない。このため、メモリデバイス210Aよりレイテンシの大きいメモリデバイス210Bに記憶されたデータDATAbがアクセス頻度に対して過剰にデータ保持部12に残る場合がある。したがって、メモリデバイス210Aに割り当てられたアドレスADRaに対するアクセスが集中した場合、キャッシュミスの頻度が増加し、キャッシュメモリ10の平均ペナルティが増加するおそれがある。
これに対し、制御部14は、メモリデバイス210A、210Bのレイテンシをメモリデバイス210A、210Bのアクセス頻度で重み付けした情報(レイテンシ比とアクセス比との積)とキャッシュ比とに基づいて、追い出しデータDATAを選択する。これにより、キャッシュメモリ10は、例えば、データDATAa、DATAbの一方がアクセス頻度に対して過剰にデータ保持部12に残ることを抑制できる。すなわち、データ保持部12から追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリ10は、平均ペナルティの増加を抑制できる。
以上、図1に示す実施形態では、制御部14は、メモリデバイス210A、210Bのレイテンシ比とアクセス比との積とメモリデバイス210A、210Bのキャッシュ比との比較結果に基づいて、キャッシュメモリ10から追い出すデータDATAを選択する。これにより、キャッシュメモリ10から追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリ10の平均ペナルティを低減することができる。すなわち、記憶装置200に記憶されたデータDATAに対するアクセス時間を低減することができる。
図2は、キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。なお、キャッシュメモリCMEMの構成は、図2に示す例に限定されない。図1で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。図2以降では、カウンタ(CTa、CTb、UDCa、UDCb等)のカウント値には、カウンタと同じ符号を使用する。
図2に示すキャッシュメモリCMEMは、CPUコア等のプロセッサコアPCORと主記憶装置MMEMとの間に配置され、メモリ制御部MCLを介して主記憶装置MMEMにアクセスする。なお、メモリ制御部MCLは、キャッシュメモリCMEMと主記憶装置MMEMとの間のデータ転送等を実行する。
キャッシュメモリCMEM、プロセッサコアPCORおよびメモリ制御部MCLは、CPU等の演算処理装置PUに搭載される。なお、例えば、キャッシュメモリが階層構造を有する場合、キャッシュメモリCMEMは、演算処理装置PUの外部に配置されてもよい。主記憶装置MMEMは、レイテンシが互いに異なる複数のメモリデバイスDRAM、NVRAMを有する。例えば、メモリデバイスDRAMは、DRAMであり、メモリデバイスNVRAMは、レイテンシがDRAMより大きいNVRAMである。以下、メモリデバイスDRAM、NVRAMは、それぞれDRAM、NVRAMとも称される。
キャッシュメモリCMEMは、複数のメモリデバイスDRAM、NVRAMのいずれかに記憶されたデータDATAの一部を保持するデータ保持部DMEMと、追い出し制御部RCLと、キャッシュ制御部CCLとを有する。
データ保持部DMEMは、キャッシュテーブルCTBLを有する。データ保持部DMEMに保持されるデータDATAは、例えば、キャッシュテーブルCTBLにより、キャッシュメモリCMEMのキャッシュライン単位で管理される。
例えば、キャッシュテーブルCTBLは、アドレスADRの一部分のビット群に対応するタグTAG、データDATA、LRUビット、フラグFLG等の要素を有する。タグTAGおよびデータDATAの一例として図2に示した0x00、0xXXXX等の”0x”は、16進数であることを示す。
LRUビットは、数字が小さくなるほど、古いデータDATA(使用されていない時間が最も長いデータDATA)を示す。フラグFLGは、データ保持部DMEMに保持されたデータDATAの返却先(すなわち、転送元)のメモリデバイスDRAM、NVRAMを示す種別情報の一例である。また、データ保持部DMEMのうち、フラグFLGを保持する領域は、種別情報を保持する情報保持部の一例である。
例えば、”0”に設定されたフラグFLGに対応するデータDATA(図2に示す例では、タグ0x00のデータ0xXXXXおよびタグ0xFFのデータ0xYYYY)は、アドレスADRaに対応するデータDATAであり、DRAMに返却される。また、”1”に設定されたフラグFLGに対応するデータDATA(図2に示す例では、タグ0xFEのデータ0xZZZZ)は、アドレスADRbに対応するデータDATAであり、NVRAMに返却される。キャッシュテーブルCTBL内の情報は、キャッシュ制御部CCLの制御により更新される。
キャッシュ制御部CCLは、プロセッサコアPCORからアクセス要求を受けた場合、アクセス要求で指定されたアドレスADR(以下、要求アドレスADRとも称する)に対応する要求データDATAがデータ保持部DMEMに保持されているか否かを判定する。
要求データDATAがデータ保持部DMEMに保持されている場合、キャッシュ制御部CCLは、データ保持部DMEMに保持されているデータDATAをプロセッサコアPCORに転送する。要求データDATAがデータ保持部DMEMに保持されていない場合、キャッシュ制御部CCLは、主記憶装置MMEMから要求データDATAをメモリ制御部MCLを介して取得し、取得した要求データDATAをプロセッサコアPCORに転送する。また、キャッシュ制御部CCLは、主記憶装置MMEMから取得した要求データDATAをデータ保持部DMEMに格納する。例えば、キャッシュ制御部CCLは、主記憶装置MMEMから取得した要求データDATAをキャッシュテーブルCTBLに登録し、キャッシュテーブルCTBLを更新する。これにより、アクセス要求で指定されたアドレスADRに対応する要求データDATAは、キャッシュメモリCMEMのキャッシュテーブルCTBLに登録される。
なお、キャッシュ制御部CCLは、主記憶装置MMEMから取得した要求データDATAを登録する空き領域がない場合、データ保持部DMEMに保持されたデータDATAのいずれかをキャッシュメモリCMEMから追い出す。例えば、キャッシュ制御部CCLは、主記憶装置MMEMから取得した要求データDATAを登録する空き領域がない場合、追い出し制御部RCLにより選択されたデータDATAを、キャッシュメモリCMEMから追い出す。すなわち、キャッシュ制御部CCLおよび追い出し制御部RCLは、データ保持部DMEMからのデータDATAの追い出しを制御する制御部の一例である。
例えば、追い出し制御部RCLは、主記憶装置MMEMへのアクセスを複数のメモリデバイスDRAM、NVRAM毎にカウントする複数のカウンタCT(CTa、CTb)と、レジスタ部LREG、CREGとを有する。例えば、カウンタCTaは、追い出し制御部RCLに転送された要求アドレスADRがアドレスADRaを示す場合、カウントアップして、DRAMへのアクセスをカウントする。また、カウンタCTbは、要求アドレスADRがアドレスADRbを示す場合、カウントアップして、NVRAMへのアクセスをカウントする。カウンタCTは、定期的にリセットされる。
レジスタ部CREGは、複数のメモリデバイスDRAM、NVRAMから転送されてデータ保持部DMEMに保持されたデータDATAの量を示すデータ量の比(キャッシュ比)を示す第1情報を保持する第1レジスタ部の一例である。例えば、レジスタ部CREGは、アップダウンカウンタUDC(UDCa、UDCb)を有する。
アップダウンカウンタUDCaは、DRAMからキャッシュメモリCMEMに転送されたデータDATA(以下、DRAMのデータDATAとも称する)を保持しているキャッシュラインの数をカウントする。また、アップダウンカウンタUDCbは、NVRAMからキャッシュメモリCMEMに転送されたデータDATA(以下、NVRAMのデータとも称する)を保持しているキャッシュラインの数をカウントする。そして、レジスタ部CREGは、各アップダウンカウンタUDCのカウント値UDCa、UDCb(すなわち、DRAM、NVRAMのキャッシュ比)を保持する。各アップダウンカウンタUDCは、例えば、キャッシュメモリCMEMのキャッシュラインの数がアップダウンカウンタUDCでカウント可能な数より大きい場合、定期的にリセットされる。
レジスタ部LREGは、複数のメモリデバイスDRAM、NVRAMのレイテンシの比を示す第2情報を保持する第2レジスタ部の一例である。図2に示す例では、レジスタ部LREGは、DRAM、NVRAMの仕様等により予め決められたそれぞれのレイテンシの値(すなわち、DRAM、NVRAMのレイテンシ比)を保持する。例えば、DRAM、NVRAMのそれぞれのレイテンシは、ファームウェア等からパラメータとして追い出し制御部RCLに与えられる。
追い出し制御部RCLは、例えば、複数のメモリデバイスDRAM、NVRAMのレイテンシ比と複数のメモリデバイスDRAM、NVRAMのアクセス比との積を、レジスタ部LREGおよびカウンタCTa、CTbを用いて算出する。そして、追い出し制御部RCLは、レイテンシ比とアクセス比との積とキャッシュ比とを比較し、比較結果に基づいて、追い出しデータDATAを選択する。
ここで、主記憶装置MMEMのレイテンシの平均LAVは、式(1)で表される。
LAV=(Aa×LTa×Ma+Ab×LTb×Mb)/(Aa+Ab) ・・・(1)
式(1)のAa、Abは、DRAM、NVRAMのアクセスの割合をそれぞれ示し、LTa、LTbは、DRAM、NVRAMのレイテンシをそれぞれ示す。また、式(1)のMaは、DRAMに割り当てられたアドレスADRaに対するアクセスのキャッシュミス率を示し、Mbは、NVRAMに割り当てられたアドレスADRbに対するアクセスのキャッシュミス率を示す。
キャッシュミス率Ma、Mbがわかれば、式(1)を用いて、主記憶装置MMEMのレイテンシの平均LAVを最適化することができるが、キャッシュミス率Ma、Mbがどのように変化するかは、CPU使用率等のワークロードに依存するため、容易に求まらない。このため、キャッシュメモリCMEMは、キャッシュミス率Ma、Mbを用いずに、データDATAの追い出しを制御する。例えば、キャッシュメモリCMEMは、DRAM、NVRAMのキャッシュ比がDRAM、NVRAMのレイテンシ比とアクセス比との積に近づくように、データDATAの追い出しを制御する。これにより、主記憶装置MMEMのレイテンシの平均LAVを低減することができる。
例えば、DRAM、NVRAMのレイテンシがそれぞれ10ns、50ns(LTA=10ns、LTb=50ns)の場合、主記憶装置MMEMのレイテンシの平均LAVは、以下に示すようになる。なお、DRAM、NVRAMのアクセスの割合は、それぞれ2/3、1/3(APa=2/3、APb=1/3)とする。
キャッシュメモリCMEMでは、DRAM、NVRAMのキャッシュ比は、DRAM、NVRAMのレイテンシ比(1:5)とアクセス比(2:1)との積(2:5)に近づく。例えば、DRAM、NVRAMのキャッシュ比が”2:5”になり、DRAM、NVRAMのキャッシュミス率Ma、Mbがそれぞれ15%、5%になった場合、主記憶装置MMEMのレイテンシの平均LAVは、式(1)より、約1.8nsである。
これに対し、LRU方式では、DRAM、NVRAMのキャッシュ比は、DRAM、NVRAMのアクセス比(2:1)に近づく。例えば、DRAM、NVRAMのキャッシュ比が”2:1”になり、DRAM、NVRAMのキャッシュミス率Ma、Mbの両方が10%になった場合、主記憶装置MMEMのレイテンシの平均LAVは、式(1)より、約2.3nsである。
また、NVRAMに比べてレイテンシが小さいDRAMのデータDATAを優先して追い出す方式では、NVRAMのデータDATAがアクセス頻度に対して過剰にデータ保持部DMEMに残る場合がある。例えば、DRAM、NVRAMのキャッシュ比が”1:9”になり、DRAM、NVRAMのキャッシュミス率Ma、Mbがそれぞれ30%、2%になった場合、主記憶装置MMEMのレイテンシの平均LAVは、式(1)より、約2.3nsである。
このように、キャッシュメモリCMEMは、LRU方式等に比べて、主記憶装置MMEMのレイテンシの平均LAVを小さくできる。
図3は、図2に示したキャッシュメモリCMEMの動作の一例を示す図である。
ステップS100では、追い出し制御部RCLは、プロセッサコアPCORから受けたアドレスADR(要求アドレスADR)に基づいて、アクセス先(アクセス対象のデータDATAの格納先)がDRAMか否かを判定する。例えば、追い出し制御部RCLは、要求アドレスADRがDRAMに割り当てられたアドレスADRaを示す場合、アクセス先がDRAMであると判定する。また、追い出し制御部RCLは、要求アドレスADRがNVRAMに割り当てられたアドレスADRbを示す場合、アクセス先がNVRAMであると判定する。
アクセス先がDRAMである場合、キャッシュメモリCMEMの動作は、ステップS120に移る。一方、アクセス先がDRAMでない場合(すなわち、アクセス先がNVRAMである場合)、キャッシュメモリCMEMの動作は、ステップS140に移る。
ステップS120では、追い出し制御部RCLは、カウンタCTaのカウント値CTaをインクリメントする(CTa=CTa+1)。ステップS120の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS160に移る。
ステップS140では、追い出し制御部RCLは、カウンタCTbのカウント値CTbをインクリメントする(CTb=CTb+1)。ステップS140の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS160に移る。
ステップS160では、キャッシュ制御部CCLは、プロセッサコアPCORから受けたアドレスADR(要求アドレスADR)に基づいて、キャッシュメモリCMEMがキャッシュヒットしたか否かを判定する。例えば、キャッシュ制御部CCLは、要求アドレスADRで指定されるデータDATAがキャッシュテーブルCTBLに登録されている場合、キャッシュメモリCMEMがキャッシュヒットしたと判定する。
キャッシュメモリCMEMがキャッシュヒットした場合、キャッシュメモリCMEMの動作は、ステップS280に移る。一方、キャッシュメモリCMEMがキャッシュヒットしない場合(すなわち、キャッシュミスした場合)、キャッシュメモリCMEMの動作は、ステップS180に移る。
ステップS180では、キャッシュ制御部CCLは、要求アドレスADRで指定されるデータDATAを登録する空き領域が有るか否かを判定する。空き領域が有る場合、キャッシュメモリCMEMの動作は、ステップS220に移る。一方、空き領域が無い場合、キャッシュメモリCMEMの動作は、ステップS200に移る。
ステップS200では、キャッシュメモリCMEMは、キャッシュ追い出し処理を実行する。これにより、空き領域が生成される。なお、キャッシュ追い出し処理の詳細は、図4で説明する。ステップS200の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS220に移る。
ステップS220では、キャッシュ制御部CCLは、要求アドレスADRで指定されたデータDATAを主記憶装置MMEMから取得し、主記憶装置MMEMから取得したデータDATAをデータ保持部DMEMの空き領域に格納する。ステップS220の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS240に移る。
ステップS240では、キャッシュ制御部CCLは、データ保持部DMEMに格納したデータDATA(要求アドレスADRで指定されたデータDATA)に関する情報をキャッシュテーブルCTBLに登録し、キャッシュテーブルCTBLを更新する。これにより、要求アドレスADRで指定されたデータDATAは、キャッシュテーブルCTBLに登録される。ステップS240の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS260に移る。
ステップS260では、追い出し制御部RCLは、キャッシュ比を更新する。例えば、追い出し制御部RCLは、要求アドレスADRで指定されたデータDATA(ステップS220の処理で主記憶装置MMEMから取得したデータDATA)に対応するアップダウンカウンタUDCのカウント値をインリメントする。
なお、ステップS200のキャッシュ追い出し処理が実行された場合、追い出し制御部RCLは、データ保持部DMEMから追い出されたデータDATAに対応するアップダウンカウンタUDCのカウント値をデクリメントする。例えば、ステップS200のキャッシュ追い出し処理によりDRAMのデータDATAがデータ保持部DMEMから追い出された場合、追い出し制御部RCLは、レジスタ部CREG内のアップダウンカウンタUDCaのカウント値UDCaをデクリメントする。また、ステップS200のキャッシュ追い出し処理によりNVRAMのデータDATAがデータ保持部DMEMから追い出された場合、追い出し制御部RCLは、レジスタ部CREG内のアップダウンカウンタUDCbのカウント値UDCbをデクリメントする。
ステップS260の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS280に移る。
ステップS280では、キャッシュ制御部CCLは、キャッシュテーブルCTBLのLRUビットを更新する。ステップS280の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS300に移る。
ステップS300では、キャッシュ制御部CCLは、アクセス要求が読み出し要求の場合、主記憶装置MMEMから取得したデータDATAをプロセッサコアPCORに転送する。あるいは、キャッシュ制御部CCLは、アクセス要求が書き込み要求の場合、書き込みデータDATAをデータ保持部DMEMに書き込み、キャッシュテーブルCTBLを更新する。
なお、キャッシュメモリCMEMの動作は、図3に示す例に限定されない。例えば、キャッシュメモリCMEMは、ステップS220の処理を実行する前に、ステップS260の処理(キャッシュ比の更新)を実行してもよい。
図4は、図3に示したキャッシュ追い出し処理(ステップS200の処理)の一例を示す図である。図4では、キャッシュメモリCMEMがnウェイ(nは2以上の整数)のセットアソシアティブ方式である場合を例にして、キャッシュ追い出し処理を説明する。nウェイのセットアソシアティブ方式では、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのいずれかに保持されたデータDATAをデータ保持部DMEMから追い出すことにより、空き領域を生成する。なお、インデックスは、アドレスADRの一部分のビット群に対応する。
ステップS201では、追い出し制御部RCLは、レジスタ部LREG、カウンタCTA、CTbを参照して、レイテンシ比とアクセス比とのメモリデバイス(DRAM、NVRAM)毎の積を算出する。例えば、レジスタ部LREGに保持された情報が”Da:Db”を示す場合、DRAMとNVRAMとのレイテンシ比は、”Da:Db”である。また、カウンタCTaのカウント値CTaとカウンタCTbのカウント値CTbとの比が”Aa:Ab”である場合、DRAMとNVRAMとのアクセス比は、”Aa:Ab”である。
この場合、DRAMとNVRAMとのレイテンシ比とDRAMとNVRAMとのアクセス比とのメモリデバイス(DRAM、NVRAM)毎の積は、(Aa×Da):(Ab×Db)である。ステップS201の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS202に移る。
ステップS202では、追い出し制御部RCLは、レイテンシ比とアクセス比との積がキャッシュ比より大きいか否かを判定する。例えば、レジスタ部CREG内のアップダウンカウンタUDCaのカウント値UDCaとアップダウンカウンタUDCbのカウント値UDCbとの比が”Ca:Cb”である場合、DRAMとNVRAMとのキャッシュ比は、”Ca:Cb”である。この場合、追い出し制御部RCLは、レイテンシ比とアクセス比との積における比の値”(Aa×Da)/(Ab×Db)”がキャッシュ比における比の値”Ca/Cb”より大きいか否かを判定する。
レイテンシ比とアクセス比との積がキャッシュ比より大きい場合、キャッシュメモリCMEMの動作は、ステップS203に移る。一方、レイテンシ比とアクセス比との積がキャッシュ比以下の場合、キャッシュメモリCMEMの動作は、ステップS205に移る。
ステップS203では、追い出し制御部RCLは、データ保持部DMEMから追い出すデータDATAの候補(以下、追い出し候補とも称する)に、DRAMのデータDATAが存在するか否かを判定する。例えば、追い出し制御部RCLは、キャッシュテーブルCTBLを参照し、要求アドレスADRで指定されるインデックスに対応するフラグFLGの中から、DRAMを示すフラグFLG(例えば、”0”に設定されたフラグFLG)を検索する。
DRAMを示すフラグFLGが検出された場合、DARMのデータDATAは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのいずれかに保持されている。すなわち、DRAMを示すフラグFLGが検出された場合、追い出し候補にDRAMのデータDATAが存在する。追い出し候補にDRAMのデータDATAが存在する場合、キャッシュメモリCMEMの動作は、ステップS204に移る。
一方、DRAMを示すフラグFLGが検出されない場合、DARMのデータDATAは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのいずれにも保持されていない。すなわち、DRAMを示すフラグFLGが検出されない場合、追い出し候補にDRAMのデータDATAは存在しない。追い出し候補にDRAMのデータDATAが存在しない場合、キャッシュメモリCMEMの動作は、ステップS206に移る。
ステップS204では、キャッシュメモリCMEMは、追い出し候補のDRAMのデータDATAのうち、LRUが最も低い(最も古い)データDATAをデータ保持部DMEMから追い出す。
例えば、追い出し制御部RCLは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのうち、キャッシュテーブルCTBLのフラグFLGがDRAMを示すキャッシュラインを検索対象にする。そして、追い出し制御部RCLは、検索対象のキャッシュラインのうち、キャッシュテーブルCTBLのLRUビットの数字が最も小さいキャッシュラインを選択する。これにより、追い出しデータDATAを保持しているキャッシュラインが選択される。また、追い出し制御部RCLは、選択したキャッシュラインを示す情報(例えば、nウェイのうちのどのウェイのキャッシュラインかを示す情報)をキャッシュ制御部CCLに通知する。
キャッシュ制御部CCLは、追い出し制御部RCLにより選択されたキャッシュラインに保持されているデータDATA(DRAMのデータDATA)を、データ保持部DMEMから追い出す。なお、例えば、追い出しデータDATAがストア動作等により更新されたダーティな状態である場合、キャッシュ制御部CCLは、追い出しデータDATAを主記憶装置MMEM内のDRAMに書き戻す。追い出しデータDATAがダーティでない場合(クリーンなデータDATAである場合)、キャッシュ制御部CCLは、追い出しデータDATAを破棄する。
データ保持部DMEMからデータDATAが追い出されることにより、データ保持部DMEMに空き領域が生成され、キャッシュ追い出し処理が終了する。ステップS204の処理が実行された後、キャッシュメモリCMEMの動作は、図3に示したステップS220に移る。
ステップS205では、追い出し制御部RCLは、追い出し候補に、NVRAMのデータDATAが存在するか否かを判定する。例えば、追い出し制御部RCLは、キャッシュテーブルCTBLを参照し、要求アドレスADRで指定されるインデックスに対応するフラグFLGの中から、NVRAMを示すフラグFLG(例えば、”1”に設定されたフラグFLG)を検索する。
NVRAMを示すフラグFLGが検出された場合、NVARMのデータDATAは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのいずれかに保持されている。すなわち、NVRAMを示すフラグFLGが検出された場合、追い出し候補にNVRAMのデータDATAが存在する。追い出し候補にNVRAMのデータDATAが存在する場合、キャッシュメモリCMEMの動作は、ステップS206に移る。
一方、NVRAMを示すフラグFLGが検出されない場合、NVARMのデータDATAは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのいずれにも保持されていない。すなわち、DRAMを示すフラグFLGが検出されない場合、追い出し候補にNVRAMのデータDATAは存在しない。追い出し候補にNVRAMのデータDATAが存在しない場合、キャッシュメモリCMEMは、ステップS204の処理を実行し、キャッシュ追い出し処理を終了する。
ステップS206では、キャッシュメモリCMEMは、追い出し候補のNVRAMのデータDATAのうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。
例えば、追い出し制御部RCLは、要求アドレスADRで指定されるインデックスに対応するn個のキャッシュラインのうち、キャッシュテーブルCTBLのフラグFLGがNVRAMを示すキャッシュラインを検索対象にする。そして、追い出し制御部RCLは、検索対象のキャッシュラインのうち、キャッシュテーブルCTBLのLRUビットの数字が最も小さいキャッシュラインを選択し、選択したキャッシュラインを示す情報をキャッシュ制御部CCLに通知する。これにより、追い出しデータDATAを保持しているキャッシュラインが選択される。
キャッシュ制御部CCLは、追い出し制御部RCLにより選択されたキャッシュラインに保持されているデータDATA(NVRAMのデータDATA)を、データ保持部DMEMから追い出す。なお、例えば、追い出しデータDATAがダーティな状態である場合、キャッシュ制御部CCLは、追い出しデータDATAを主記憶装置MMEM内のNVRAMに書き戻す。追い出しデータDATAがダーティでない場合(クリーンなデータDATAである場合)、キャッシュ制御部CCLは、追い出しデータDATAを破棄する。
データ保持部DMEMからデータDATAが追い出されることにより、データ保持部DMEMに空き領域が生成され、キャッシュ追い出し処理が終了する。ステップS206の処理が実行された後、キャッシュメモリCMEMの動作は、図3に示したステップS220に移る。
このように、キャッシュメモリCMEMは、キャッシュ比がレイテンシ比とアクセス比との積に近づくように、データ保持部DMEMからのデータDATAの追い出しを制御する。これにより、例えば、DRAMのデータDATAおよびNVRAMのデータDATAの一方がアクセス頻度に対して過剰にデータ保持部DMEMに残ることを抑制できる。すなわち、データ保持部DMEMから追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリCMEMは、平均ペナルティの増加を抑制できる。
なお、キャッシュ追い出し処理は、図4に示す例に限定されない。例えば、追い出し制御部RCLは、ステップS201の処理を実行する前に、追い出し候補にDRAMのデータDATAとNVRAMのデータDATAとの両方が存在するか否かを判定してもよい。追い出し候補にDRAMのデータDATAとNVRAMのデータDATAとの両方が存在する場合、キャッシュメモリCMEMは、図4に示す動作からステップS203、S205を省いた処理を実行する。なお、追い出し候補にDRAMのデータDATAとNVRAMのデータDATAの一方のみが存在する場合、キャッシュメモリCMEMは、追い出し候補のデータDATAのうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。
図5は、図4に示したキャッシュ追い出し処理を適用した場合とLRU方式を適用した場合との比較例を示す。すなわち、図5は、図2に示したキャッシュメモリCMEMを用いた場合と、LRU方式のキャッシュメモリを用いた場合との比較例を示す。図5の縦軸は、PARSEC(Princeton Application Repository for Shared-Memory Computers)ベンチマークの実行時間(単位は、秒)を示す。
図4に示したキャッシュ追い出し処理を適用した場合、実行時間は、約1.967秒であり、LRU方式を適用した場合、実行時間は、約2.185秒である。図4に示したキャッシュ追い出し処理を適用することにより、LRU方式に比べて、実行時間は約11%短縮される。
また、キャッシュメモリCMEMでは、NVRAMに割り当てられたアドレスADRbに対するアクセスのキャッシュミス率は、約0.5%である(図示せず)。LRU方式では、NVRAMに割り当てられたアドレスADRbに対するアクセスのキャッシュミス率は、約1%である(図示せず)。このように、NVRAMに割り当てられたアドレスADRbに対するアクセスのキャッシュミス率は、約1%から約0.5%に改善される。NVRAMは、例えば、書き込みのコストがDRAMに比べて高い、書き込み回数に制限がある等のデメリットを有する。このため、NVRAMに割り当てられたアドレスADRbに対するアクセスのキャッシュミス率を低減させることは、メリットとなる。
以上、図2から図5に示す実施形態においても、図1に示した実施形態と同様の効果を得ることができる。例えば、キャッシュメモリCMEMは、DRAM、NVRAMのレイテンシ比とアクセス比との積とDRAM、NVRAMのキャッシュ比との比較結果に基づいて、キャッシュメモリCMEMから追い出すデータDATAを選択する。これにより、キャッシュメモリCMEMから追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリCMEMの平均ペナルティを低減することができる。すなわち、主記憶装置MEMに記憶されたデータDATAに対するアクセス時間を低減することができる。
図6は、キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。図1から図5で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
図6に示すキャッシュメモリCMEM2は、CPUコア等のプロセッサコアPCORと主記憶装置MMEM2との間に配置され、メモリ制御部MCLを介して主記憶装置MMEM2にアクセスする。なお、メモリ制御部MCLは、キャッシュメモリCMEM2と主記憶装置MMEM2との間のデータ転送等を実行する。
キャッシュメモリCMEM2、プロセッサコアPCORおよびメモリ制御部MCLは、CPU等の演算処理装置PU2に搭載される。なお、例えば、キャッシュメモリが階層構造を有する場合、キャッシュメモリCMEM2は、演算処理装置PU2の外部に配置されてもよい。主記憶装置MMEM2は、レイテンシが互いに異なる複数のメモリデバイスDRAM、CNVRAMを有する。例えば、メモリデバイスDRAMは、DRAMである。メモリデバイスCNVRAMは、レイテンシがDRAMより大きいNVRAMと、NVRAMに接続されたキャッシュメモリCMとを有する。このため、メモリデバイスCNVRAMのレイテンシは、キャッシュメモリCMがキャッシュヒットする場合とキャッシュミスする場合とで異なる。すなわち、メモリデバイスCNVRAMは、レイテンシが変化する第1メモリデバイスの一例である。
キャッシュメモリCMEM2は、複数のメモリデバイスDRAM、CNVRAMのいずれかに記憶されたデータDATAの一部を保持するデータ保持部DMEMと、追い出し制御部RCL2と、キャッシュ制御部CCLと、レイテンシ計測部MEASとを有する。データ保持部DMEMおよびキャッシュ制御部CCLは、図2に示したデータ保持部DMEMおよびキャッシュ制御部CCLと同一または同様である。
レイテンシ計測部MEASは、メモリデバイスCNVRAMのレイテンシを計測する。例えば、レイテンシ計測部MEASは、アクセス要求が演算処理装置PU2から主記憶装置MMEM2に発行されてからデータ転送までの時間(主記憶装置MMEM2へのアクセス時間)をレイテンシとして計測する。そして、レイテンシ計測部MEASは、計測したレイテンシを追い出し制御部RCL2に通知する。
追い出し制御部RCL2は、レイテンシ計測部MEASで計測したレイテンシの平均値を用いて、複数のメモリデバイスDRAM、CNVRAMのレイテンシの比を算出する。例えば、追い出し制御部RCL2は、複数のカウンタCT(CTa、CTb)と、レジスタ部LREG2、CREGとを有する。追い出し制御部RCL2は、図2に示したレジスタ部LREGの代わりにレジスタ部LREG2を有することを除いて、図2に示した追い出し制御部RCLと同一または同様である。カウンタCTa、CTbおよびレジスタ部CREGは、図2に示したカウンタCTa、CTbおよびレジスタ部CREGと同一または同様である。
レジスタ部LREG2は、レイテンシ計測部MEASによるレイテンシの計測回数をカウントするカウンタCTPと、レイテンシ計測部MEASで計測されたレイテンシの総和(累積値)を保持するレジスタTREGとを有する。例えば、レジスタ部LREG2は、レジスタTREGに保持されたレイテンシの累積値をカウンタCTPのカウント値CTPで除算することにより、メモリデバイスCNVRAMのレイテンシの平均値を算出する。
そして、レジスタ部LREG2は、メモリデバイスDRAMの仕様等により予め決められたレイテンシの値と、メモリデバイスCNVRAMのレイテンシの平均値とを保持する。これにより、メモリデバイスDRAM、CNVRAMのレイテンシ比がレジスタ部LREG2に保持される。カウンタCTPおよびレジスタTREGは、定期的にリセットされる。
なお、キャッシュメモリCMEM2の構成は、図6に示す例に限定されない。例えば、カウンタCTPおよびレジスタTREGは、レジスタ部LREG2の外部に設けられてもよい。あるいは、レジスタ部LREG2は、レイテンシ計測部MEASで計測されたレイテンシをリングバッファ等に記録し、リングバッファ等に記録したレイテンシの平均を算出してもよい。
図7は、図6に示したキャッシュメモリCMEM2の動作の一例を示す。図7に示す動作は、図3に示した動作にステップS230の処理が追加されていることを除いて、図3に示した動作と同一または同様である。図3で説明した処理(ステップS230以外の処理)については、詳細な説明を省略する。キャッシュメモリCMEM2は、ステップS220の処理を実行した後に、ステップS230の処理を実行する。
ステップS230では、レイテンシ計測部MEASは、メモリデバイスCNVRAMのレイテンシを計測する。そして、追い出し制御部RCL2は、図6で説明したように、レジスタ部LREG2に保持されているメモリデバイスDRAM、CNVRAMのレイテンシ比を更新する。なお、メモリデバイスCNVRAMのレイテンシの計測は、例えば、ステップS220の処理の実行時(メモリデバイスCNVRAMにアクセス要求を発行したとき)に開始される。
ステップS230の処理が実行された後、キャッシュメモリCMEMの動作は、ステップS240に移る。なお、アクセス対象がメモリデバイスCNVRAM(レイテンシが変化するメモリデバイス)でない場合、ステップS230の処理は、実行されない。この場合、ステップS220の処理が実行された後、ステップS230の処理がスキップされ、ステップS240の処理が実行される。
なお、キャッシュメモリCMEMの動作は、図7に示す例に限定されない。例えば、キャッシュメモリCMEMは、ステップS220の処理を実行する前に、ステップS260の処理(キャッシュ比の更新)を実行してもよい。
以上、図6から図7に示す実施形態においても、図2から図5に示した実施形態と同様の効果を得ることができる。例えば、キャッシュメモリCMEM2は、メモリデバイスDRAM、CNVRAMのレイテンシ比とアクセス比との積とメモリデバイスDRAM、CNVRAMのキャッシュ比とを比較する。そして、キャッシュメモリCMEM2は、比較結果に基づいて、キャッシュメモリCMEM2から追い出すデータDATAを選択する。これにより、キャッシュメモリCMEM2から追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリCMEM2の平均ペナルティを低減することができる。すなわち、主記憶装置MEM2に記憶されたデータDATAに対するアクセス時間を低減することができる。
さらに、キャッシュメモリCMEM2は、メモリデバイスCNVRAMのレイテンシを計測して、メモリデバイスDRAM、CNVRAMのレイテンシ比を随時更新する。これにより、キャッシュメモリCMEM2は、レイテンシが変化するメモリデバイスCNVRAMを含む主記憶装置MMEM2で使用される場合でも、キャッシュメモリCMEM2から追い出すデータDATAを適切に選択することができる。
図8は、キャッシュメモリおよびキャッシュメモリの制御方法の別の実施形態を示す図である。図1から図7で説明した要素と同一または同様の要素については、同一または同様の符号を付し、これ等については、詳細な説明を省略する。
図8に示すキャッシュメモリCMEM3は、CPUコア等のプロセッサコアPCORと主記憶装置MMEM3との間に配置され、メモリ制御部MCLを介して主記憶装置MMEM3にアクセスする。なお、メモリ制御部MCLは、キャッシュメモリCMEM3と主記憶装置MMEM3との間のデータ転送等を実行する。
キャッシュメモリCMEM3、プロセッサコアPCORおよびメモリ制御部MCLは、CPU等の演算処理装置PU3に搭載される。なお、例えば、キャッシュメモリが階層構造を有する場合、キャッシュメモリCMEM3は、演算処理装置PU3の外部に配置されてもよい。主記憶装置MMEM3は、レイテンシが互いに異なる複数のメモリデバイスMDEVa、MDEVb、MDEVcを有する。アドレスADRa、ADRb、ADRcは、メモリデバイスMDEVa、MDEVb、MDEVcに割り当てられたそれぞれのアドレスADRを示す。
キャッシュメモリCMEM3は、複数のメモリデバイスMDEVa、MDEVb、MDEVcのいずれかに記憶されたデータDATAの一部を保持するデータ保持部DMEMと、追い出し制御部RCL3と、キャッシュ制御部CCLとを有する。データ保持部DMEMおよびキャッシュ制御部CCLは、図2に示したデータ保持部DMEMおよびキャッシュ制御部CCLと同一または同様である。
追い出し制御部RCL3は、例えば、主記憶装置MMEM3へのアクセスを複数のメモリデバイスMDEVa、MDEVb、MDEVc毎にカウントする複数のカウンタCT(CTa、CTb、CTc)と、レジスタ部LREG3、CREG2とを有する。例えば、カウンタCTcは、追い出し制御部RCL3に転送された要求アドレスADRがアドレスADRcを示す場合、カウントアップして、メモリデバイスMDEVcへのアクセスをカウントする。カウンタCTは、定期的にリセットされる。
レジスタ部CREG2は、メモリデバイスMDEVa、MDEVb、MDEVcのキャッシュ比を示す情報を保持する。例えば、レジスタ部CREG2は、アップダウンカウンタUDC(UDCa、UDCb、UDCc)を有する。
アップダウンカウンタUDCaは、メモリデバイスMDEVaからキャッシュメモリCMEM3に転送されたデータDATA(以下、メモリデバイスMDEVaのデータDATAとも称する)を保持しているキャッシュラインの数をカウントする。アップダウンカウンタUDCbは、メモリデバイスMDEVbからキャッシュメモリCMEM3に転送されたデータDATA(以下、メモリデバイスMDEVbのデータDATAとも称する)を保持しているキャッシュラインの数をカウントする。アップダウンカウンタUDCcは、メモリデバイスMDEVcからキャッシュメモリCMEM3に転送されたデータDATA(以下、メモリデバイスMDEVcのデータDATAとも称する)を保持しているキャッシュラインの数をカウントする。そして、レジスタ部CREG2は、各アップダウンカウンタUDCのカウント値UDCa、UDCb、UDCc(すなわち、メモリデバイスMDEVa、MDEVb、MDEVcのキャッシュ比)を保持する。各アップダウンカウンタUDCは、例えば、キャッシュメモリCMEM3のキャッシュラインの数がアップダウンカウンタUDCでカウント可能な数より大きい場合、定期的にリセットされる。
レジスタ部LREG3は、複数のメモリデバイスMDEVa、MDEVb、MDEVcのレイテンシ比を示す情報を保持する。例えば、レジスタ部LREG3は、メモリデバイスMDEVa、MDEVb、MDEVcの仕様等により予め決められたそれぞれのレイテンシの値(すなわち、メモリデバイスMDEVa、MDEVb、MDEVcのレイテンシ比)を保持する。例えば、メモリデバイスMDEVa、MDEVb、MDEVcのそれぞれのレイテンシは、ファームウェア等からパラメータとして追い出し制御部RCL3に与えられる。
追い出し制御部RCL3は、例えば、複数のメモリデバイスMDEVa、MDEVb、MDEVcのレイテンシ比と複数のメモリデバイスMDEVa、MDEVb、MDEVcのアクセス比との積を、レジスタ部LREG2およびカウンタCTを用いて算出する。そして、追い出し制御部RCL3は、レイテンシ比とアクセス比との積とキャッシュ比とを比較し、比較結果に基づいて、追い出しデータDATAを選択する。
なお、キャッシュメモリCMEM3の構成は、図8に示す例に限定されない。例えば、キャッシュメモリCMEM3は、図6に示したレイテンシ計測部MEAS、カウンタCTPおよびレジスタTREGを有してもよい。
図9は、図8に示したキャッシュメモリCMEM3の動作の一例を示す。なお、キャッシュ追い出し処理(図3に示したステップS200の処理)以外のキャッシュメモリCMEM3の動作は、図3に示した動作で説明される。したがって、図9は、キャッシュ追い出し処理の一例を示す。なお、図9に示す動作は、メモリデバイスMDEVaのデータDATA、メモリデバイスMDEVbのデータDATA、メモリデバイスMDEVcのデータDATAが追い出し候補に存在する場合のキャッシュ追い出し処理の一例である。
ステップS210の処理は、図3に示したステップS180の処理において空き領域が無いと判定された場合に、実行される。
ステップS210では、追い出し制御部RCLは、レイテンシ比(Da:Db:Dc)とアクセス比(Aa:Ab:Ac)とのメモリデバイスMDEVa、MDEVb、MDEVc毎の積を正規化する。
レイテンシ比の各項の値Da、Db、Dcは、メモリデバイスMDEVa、MDEVb、MDEVcのレイテンシにそれぞれ対応する。また、アクセス比の各項の値Aa、Ab、Acは、カウンタCTa、CTb、CTcのカウント値CTa、CTb、CTcにそれぞれ対応する。
レイテンシ比(Da:Db:Dc)とアクセス比(Aa:Ab:Ac)との積を正規化した場合の各項の値Ta、Tb、Tcは、式(2)から式(4)でそれぞれ表される。
Ta=(Aa×Da)/(Aa×Da+Ab×Db+Ac×Dc) ・・・(2)
Tb=(Ab×Db)/(Aa×Da+Ab×Db+Ac×Dc) ・・・(3)
Tc=(Ac×Dc)/(Aa×Da+Ab×Db+Ac×Dc) ・・・(4)
ステップS210の処理が実行された後、キャッシュメモリCMEM3の動作は、ステップS211に移る。
ステップS211では、追い出し制御部RCLは、メモリデバイスMDEVa、MDEVb、MDEVcのキャッシュ比(Ca:Cb:Cc)を正規化する。
キャッシュ比の各項の値Ca、Cb、Ccのうち、値Caは、メモリデバイスMDEVaのデータDATAを保持しているキャッシュラインの数に対応し、値Cbは、メモリデバイスMDEVbのデータDATAを保持しているキャッシュラインの数に対応する。そして、値Ccは、メモリデバイスMDEVcのデータDATAを保持しているキャッシュラインの数に対応する。
キャッシュ比(Ca:Cb:Cc)を正規化した場合の各項の値NCa、NCb、NCcは、式(5)から式(7)でそれぞれ表される。
NCa=Ca/(Ca+Cb+Cc) ・・・(5)
NCb=Cb/(Ca+Cb+Cc) ・・・(6)
NCc=Cc/(Ca+Cb+Cc) ・・・(7)
ステップS211の処理が実行された後、キャッシュメモリCMEM3の動作は、ステップS212に移る。
ステップS212では、追い出し制御部RCLは、各値NCを各値Tで除算して得られる複数の除算値(NCa/Ta、NCb/Tb、NCc/Tc)の最大値が値NCaを値Taで除算した値(NCa/Ta)か否かを判定する。
値NCaを値Taで除算した値(NCa/Ta)が最大値である場合、キャッシュメモリCMEM3の動作は、ステップS214に移る。一方、値NCaを値Taで除算した値(NCa/Ta)が最大値でない場合、キャッシュメモリCMEM3の動作は、ステップS213に移る。
ステップS213では、複数の除算値(NCa/Ta、NCb/Tb、NCc/Tc)の最大値が値NCbを値Tbで除算した値(NCb/Tb)か否かを判定する。値NCbを値Tbで除算した値(NCb/Tb)が最大値である場合、キャッシュメモリCMEM3の動作は、ステップS215に移る。一方、値NCbを値Tbで除算した値(NCb/Tb)が最大値でない場合、キャッシュメモリCMEM3の動作は、ステップS216に移る。
ステップS214では、キャッシュメモリCMEM3は、追い出し候補のメモリデバイスMDEVaのデータDATAのうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。データ保持部DMEMからデータDATAが追い出されることにより、データ保持部DMEMに空き領域が生成され、キャッシュ追い出し処理が終了する。ステップS214の処理が実行された後、キャッシュメモリCMEM3の動作は、図3に示したステップS220に移る。
ステップS215では、キャッシュメモリCMEM3は、追い出し候補のメモリデバイスMDEVbのデータDATAのうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。データ保持部DMEMからデータDATAが追い出されることにより、データ保持部DMEMに空き領域が生成され、キャッシュ追い出し処理が終了する。ステップS215の処理が実行された後、キャッシュメモリCMEM3の動作は、図3に示したステップS220に移る。
ステップS216では、キャッシュメモリCMEM3は、追い出し候補のメモリデバイスMDEVcのデータDATAのうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。データ保持部DMEMからデータDATAが追い出されることにより、データ保持部DMEMに空き領域が生成され、キャッシュ追い出し処理が終了する。ステップS216の処理が実行された後、キャッシュメモリCMEM3の動作は、図3に示したステップS220に移る。
このように、キャッシュメモリCMEM3は、各値NCを各値Tで除算して得られる複数の除算値(NCa/Ta、NCb/Tb、NCc/Tc)のうちの最大値に対応するメモリデバイスMDEVのデータDATAをデータ保持部DMEMから追い出す。これにより、例えば、メモリデバイスMDEVa、MDEVb、MDEVcのそれぞれから転送されたデータDATAがアクセス頻度に対して過剰にデータ保持部DMEMに残ることを抑制できる。すなわち、データ保持部DMEMから追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリCMEM3は、平均ペナルティの増加を抑制できる。
なお、キャッシュ追い出し処理は、図9に示す例に限定されない。例えば、キャッシュメモリCMEM3は、メモリデバイスMDEVa、MDEVb、MDEVcのうちの1つから転送されたデータDATAのみが追い出し候補に存在する場合、追い出し候補のうち、LRUが最も低いデータDATAを追い出す。
また、キャッシュメモリCMEM3は、メモリデバイスMDEVa、MDEVb、MDEVcのうちの2つから転送されたデータDATAのみが追い出し候補に存在する場合、2つのメモリデバイスMDEVに対応する除算値(NC/T)を比較する。そして、キャッシュメモリCMEM3は、2つのメモリデバイスMDEVに対応する除算値(NC/T)のうち、大きい方の除算値に対応するメモリデバイスMDEVのデータDATAを追い出す。
あるいは、キャッシュメモリCMEM3は、主記憶装置MMEM3内のメモリデバイスMDEVの数が4つ以上の場合、複数のメモリデバイスMDEVにそれぞれ対応する複数の除算値(NC/T)のうち、最大値に対応するメモリデバイスMDEVを選択する。そして、キャッシュメモリCMEM3は、選択したメモリデバイスMDEVのデータDATA(かつ、追い出し候補)のうち、LRUが最も低いデータDATAをデータ保持部DMEMから追い出す。
以上、図8から図9に示す実施形態においても、図2から図5に示した実施形態と同様の効果を得ることができる。例えば、キャッシュメモリCMEM3は、メモリデバイスMDEVa、MDEVb、MDEVcのレイテンシ比とアクセス比との積とメモリデバイスMDEVa、MDEVb、MDEVcのキャッシュ比とを比較する。そして、キャッシュメモリCMEM3は、比較結果に基づいて、キャッシュメモリCMEM3から追い出すデータDATAを選択する。これにより、キャッシュメモリCMEM3から追い出すデータDATAを適切に選択することができる。この結果、キャッシュメモリCMEM3の平均ペナルティを低減することができる。すなわち、主記憶装置MEM3に記憶されたデータDATAに対するアクセス時間を低減することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
10‥キャッシュメモリ;12‥データ保持部;14‥制御部;20‥プロセッサコア;100‥演算処理装置;200‥記憶装置;210、210A、210B‥メモリデバイス;CREG、CREG2、LREG、LREG2、LREG3‥レジスタ部;CNVRAM、DRAM、MDEVa、MDEVb、MDEVc、NVRAM‥メモリデバイス;CTa、CTb、CTc、CTP‥カウンタ;CTBL‥キャッシュテーブル;DMEM‥データ保持部;MCL‥メモリ制御部;MMEM、MMEM2、MMEM3‥主記憶装置;PCOR‥プロセッサコア;PU、PU2、PU3‥演算処理装置;RCL、RCL2、RCL3‥追い出し制御;TREG‥レジスタ;UDCa、UDCb‥アップダウンカウンタ;

Claims (6)

  1. アクセス要求からデータ転送までの時間を示すレイテンシが互いに異なる複数のメモリデバイスを含む記憶装置に記憶されたデータの一部を保持するデータ保持部と、
    前記複数のメモリデバイスのレイテンシの比と前記複数のメモリデバイスに対するアクセス頻度の比との前記複数のメモリデバイス毎の積と、前記複数のメモリデバイスから転送されて前記データ保持部に保持されたデータの量を示すデータ量の比とを比較し、前記積と前記データ量の比との比較結果に基づいて、前記データ保持部からのデータの追い出しを制御する制御部と
    を有することを特徴とするキャッシュメモリ。
  2. 請求項1に記載のキャッシュメモリにおいて、
    前記制御部は、
    前記記憶装置へのアクセスを前記複数のメモリデバイス毎にカウントする複数のカウンタと、
    前記データ量の比を示す第1情報を保持する第1レジスタ部と、
    前記複数のメモリデバイスのレイテンシの比を示す第2情報を保持する第2レジスタ部とを有する
    ことを特徴とするキャッシュメモリ。
  3. 請求項1または請求項2に記載のキャッシュメモリにおいて、
    前記データ保持部に記憶されたデータの転送元のメモリデバイスの種別を示す種別情報を保持する情報保持部をさらに有し、
    前記制御部は、前記比較結果と、前記情報保持部に保持された前記種別情報とに基づいて、前記データ保持部からのデータの追い出しを制御する
    ことを特徴とするキャッシュメモリ。
  4. 請求項3に記載のキャッシュメモリにおいて、
    前記制御部は、前記データ保持部から追い出すデータのメモリデバイスの種別を前記比較結果に基づいて決定し、前記データ保持部から追い出すデータの候補のうち、決定した種別のメモリデバイスから転送されたデータを検索対象にして、前記検索対象のデータのうち、使用されていない時間が最も長いデータを前記データ保持部から追い出す
    ことを特徴とするキャッシュメモリ。
  5. 請求項1ないし請求項4のいずれか1項に記載のキャッシュメモリにおいて、
    前記複数のメモリデバイスのいずれかがレイテンシが変化する第1メモリデバイスである場合に、前記第1メモリデバイスのレイテンシを計測するレイテンシ計測部をさらに有し、
    前記制御部は、前記レイテンシ計測部で計測したレイテンシの平均値を用いて、前記複数のメモリデバイスのレイテンシの比を算出する
    ことを特徴とするキャッシュメモリ。
  6. アクセス要求からデータ転送までの時間を示すレイテンシが互いに異なる複数のメモリデバイスを含む記憶装置に記憶されたデータの一部をデータ保持部に格納するキャッシュメモリの制御方法において、
    前記キャッシュメモリが有する制御部は、前記複数のメモリデバイスのレイテンシの比と前記複数のメモリデバイスに対するアクセス頻度の比との前記複数のメモリデバイス毎の積と、前記複数のメモリデバイスから転送されて前記データ保持部に保持されたデータの量を示すデータ量の比とを比較し、
    前記制御部は、前記積と前記データ量の比との比較結果に基づいて、前記データ保持部からのデータの追い出しを制御する
    ことを特徴とするキャッシュメモリの制御方法。
JP2015209087A 2015-10-23 2015-10-23 キャッシュメモリおよびキャッシュメモリの制御方法 Active JP6485320B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015209087A JP6485320B2 (ja) 2015-10-23 2015-10-23 キャッシュメモリおよびキャッシュメモリの制御方法
US15/286,664 US10073788B2 (en) 2015-10-23 2016-10-06 Information processing device and method executed by an information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015209087A JP6485320B2 (ja) 2015-10-23 2015-10-23 キャッシュメモリおよびキャッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2017083949A JP2017083949A (ja) 2017-05-18
JP6485320B2 true JP6485320B2 (ja) 2019-03-20

Family

ID=58558626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015209087A Active JP6485320B2 (ja) 2015-10-23 2015-10-23 キャッシュメモリおよびキャッシュメモリの制御方法

Country Status (2)

Country Link
US (1) US10073788B2 (ja)
JP (1) JP6485320B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US11977484B2 (en) * 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
CN112398790B (zh) * 2019-08-15 2021-11-19 华为技术有限公司 通信方法、装置和计算机可读存储介质
US11681617B2 (en) * 2021-03-12 2023-06-20 Arm Limited Cache victim selection based on completer determined cost in a data processing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0689232A (ja) 1992-09-08 1994-03-29 Fujitsu Ltd キャッシュメモリの制御方法
JP3490742B2 (ja) * 1993-09-08 2004-01-26 松下電器産業株式会社 メモリ管理装置
JP3486435B2 (ja) 1993-11-30 2004-01-13 キヤノン株式会社 メモリキャッシング方法及び装置
JP2976909B2 (ja) * 1996-12-25 1999-11-10 日本電気株式会社 キャッシュ・データの掃き出し制御方法
JP2008181190A (ja) * 2007-01-23 2008-08-07 Matsushita Electric Ind Co Ltd キャッシュ制御装置
JP5868213B2 (ja) * 2012-02-24 2016-02-24 三菱電機株式会社 キャッシュ制御装置、及びキャッシュ制御方法
US9524248B2 (en) * 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
CN105094686B (zh) * 2014-05-09 2018-04-10 华为技术有限公司 数据缓存方法、缓存和计算机系统

Also Published As

Publication number Publication date
JP2017083949A (ja) 2017-05-18
US10073788B2 (en) 2018-09-11
US20170115892A1 (en) 2017-04-27

Similar Documents

Publication Publication Date Title
JP6485320B2 (ja) キャッシュメモリおよびキャッシュメモリの制御方法
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
JP5580894B2 (ja) Tlbプリフェッチング
US9158685B2 (en) System cache with cache hint control
US9563575B2 (en) Least recently used mechanism for cache line eviction from a cache memory
US8271729B2 (en) Read and write aware cache storing cache lines in a read-often portion and a write-often portion
JP7390304B2 (ja) 大規模なキャッシュサイズに適合する領域ベースのディレクトリスキーム
JP6708019B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
KR20170100003A (ko) 가상 주소들을 사용하여 액세스된 캐시
JP7340326B2 (ja) メンテナンス動作の実行
US9552301B2 (en) Method and apparatus related to cache memory
US8880844B1 (en) Inter-core cooperative TLB prefetchers
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
US9720847B2 (en) Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed
US9043570B2 (en) System cache with quota-based control
US7380068B2 (en) System and method for contention-based cache performance optimization
JP2017021399A (ja) 半導体装置及びキャッシュメモリ制御方法
JP5976225B2 (ja) スティッキー抜去エンジンを伴うシステムキャッシュ
EP3724772B1 (en) Home agent based cache transfer acceleration scheme
US20120144124A1 (en) Method and apparatus for memory access units interaction and optimized memory scheduling
KR102482516B1 (ko) 메모리 어드레스 변환
US11561906B2 (en) Rinsing cache lines from a common memory page to memory
US10725675B2 (en) Management apparatus, information processing apparatus, management method, and computer program product
US20070180193A1 (en) History based line install
US9734071B2 (en) Method and apparatus for history-based snooping of last level caches

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181221

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: 20190122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190204

R150 Certificate of patent or registration of utility model

Ref document number: 6485320

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150