JP6277572B2 - データキャッシング方法、キャッシュおよびコンピュータシステム - Google Patents

データキャッシング方法、キャッシュおよびコンピュータシステム Download PDF

Info

Publication number
JP6277572B2
JP6277572B2 JP2016564221A JP2016564221A JP6277572B2 JP 6277572 B2 JP6277572 B2 JP 6277572B2 JP 2016564221 A JP2016564221 A JP 2016564221A JP 2016564221 A JP2016564221 A JP 2016564221A JP 6277572 B2 JP6277572 B2 JP 6277572B2
Authority
JP
Japan
Prior art keywords
cache
cache line
memory
type
preset condition
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
JP2016564221A
Other languages
English (en)
Other versions
JP2017519275A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2017519275A publication Critical patent/JP2017519275A/ja
Application granted granted Critical
Publication of JP6277572B2 publication Critical patent/JP6277572B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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
    • 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
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/065Replication mechanisms
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation
    • 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/0673Single storage device
    • G06F3/068Hybrid storage device

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)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明の実施形態は記憶技術に関し、詳細には、データキャッシング方法、キャッシュおよびコンピュータシステムに関する。
現在、インターネットアプリケーションおよびビッグデータアプリケーション等のデータ中心型アプリケーションがより増えている。これらのアプリケーションは、強力な記憶サポートを必要とする。
従来技術では、ダイナミック・ランダム・アクセス・メモリ(Dynamic Random-Access Memory, DRAM)がコンピュータシステムにおいて一般的に使用される。しかしながら、技術によって制限されて、DRAMは容量が比較的小さく、且つ比較的多くのエネルギーを消費し、従って、大容量および低エネルギー消費のためのアプリケーションの要件を満たすことは難しい。最近、不揮発性メモリ(Non-Volatile Memory, NVM)が広く使用されている。大記憶容量および低エネルギー消費という利点によって、NVMはDRAMに取って代わり、且つコンピュータシステムとして使用され、このことは、大容量および低エネルギー消費のためのアプリケーションの要件を満たすことができる。しかしながら、DRAMと比較すると、NVMは比較的長い読み出し/書き込み遅延を有する。DRAMおよびNVMのそれぞれがそれら自身の利点および欠点を有するため、低エネルギー消費を有し、且つアプリケーションのための大容量および高性能のメモリを提供するために、DRAMおよびNVMを含むハイブリッドメモリが従来技術においてさらに使用される。
本発明の実施形態は、データキャッシング方法、キャッシュおよびコンピュータシステムを提供する。
第1の態様によると、本発明の実施形態はデータキャッシング方法を提供し、ここで、方法はCacheによって実行され、且つ、
CPUによって送信されるデータアクセス要求を受信するステップであって、ここで、データアクセス要求はアクセスアドレスを含む、ステップと、
アクセスアドレスに従って、アクセスされるべきデータがCache内にキャッシュされているかどうかを決定するステップと、
アクセスされるべきデータがCache内にキャッシュされていないとき、Cache内のCache lineの過去のアクセス頻度およびCache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定するステップであって、ここで、第1の事前に設定された条件を満たすCache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリDRAMタイプのメモリに対応しているCache lineを含み、メモリはDRAMタイプのメモリおよび不揮発性メモリNVMタイプのメモリを含む、ステップと、
第1の事前に設定された条件を満たすCache lineがCache内に存在するとき、第1の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択するステップと、
アクセスアドレスに従って、メモリからアクセスされるべきデータを読み出すステップと、
第1のCache lineを第2のCache lineで置き換えるステップであって、ここで、第2のCache lineはアクセスアドレスおよびアクセスされるべきデータを含む、ステップと、
Cacheによって、アクセスされるべきデータをCPUに送信するステップと
を含む。
第2の態様によると、本発明の実施形態はCacheを提供し、Cacheは、
CPUによって送信されるデータアクセス要求を受信するように構成される受信モジュールであって、ここで、データアクセス要求はアクセスアドレスを含む、受信モジュールと、
アクセスアドレスに従って、アクセスされるべきデータがCache内にキャッシュされているかどうかを決定するように構成されるヒット決定モジュールと、
アクセスされるべきデータがCache内にキャッシュされていないとき、Cache内のCache lineの過去のアクセス頻度およびCache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、第1の事前に設定された条件を満たすCache lineがCache内に存在するとき、第1の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択するように構成される置き換え決定モジュールであって、ここで、第1の事前に設定された条件を満たすCache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリDRAMタイプのメモリに対応しているCache lineを含み、メモリはDRAMタイプのメモリおよび不揮発性メモリNVMタイプのメモリを含む、置き換え決定モジュールと、
アクセスアドレスに従って、メモリからアクセスされるべきデータを読み出すように構成される読み出しモジュールと、
第1のCache lineを第2のCache lineで置き換えるように構成される置き換えモジュールであって、ここで、第2のCache lineはアクセスアドレスおよびアクセスされるべきデータを含む、置き換えモジュールと、
アクセスされるべきデータをCPUに送信するように構成される送信モジュールと
を含む。
第3の態様によると、本発明の実施形態はプロセッサと、ハイブリッドメモリと、前述の第2の態様に係るCacheとを含むコンピュータシステムを提供し、ここで、ハイブリッドメモリはDRAMおよびNVMを含み、プロセッサ、ハイブリッドメモリおよびCacheはバスを使用することによって接続される。
本発明の実施形態では、アクセス要求のミスが生じるとともにCacheが置き換えられるべきCache lineを決定する必要があるとき、Cache lineの過去のアクセス頻度だけでなくCache lineに対応するメモリのタイプもまた考慮される必要がある。従って、DRAMタイプに対応するCache lineは優先して置き換えられてよく、このことは、DRAM内に記憶されるデータのためのCache内のキャッシング量を低減する。CacheはNVM内に記憶されるデータのためのキャッシング量を増加させることができ、NVM内に記憶されるデータへのアクセス要求のために、対応するデータが可能な限りCache内で見つけられることができ、それによって、NVMからデータを読み出すケースを低減し、NVMからデータを読み出すことにおける遅延を低減し、アクセス効率を効果的に改善する。
本発明の実施形態における、または従来技術における技術的解決手段をより明確に説明するために、以下では、実施形態または従来技術を説明するために必要とされる添付図面を簡潔に説明する。明らかに、以下の説明における添付図面は本発明のいくつかの実施形態を示し、当業者は、創造的努力なしにこれらの添付図面から他の図面をさらに導出することができる。
図1は、本発明の実施形態に係るコンピュータシステムの構築的な図である。 図2は、本発明の実施形態に係るデータキャッシング方法のフローチャートである。 図3は、本発明の実施形態に係るCacheの概略構成図である。
本発明の実施形態の目的、技術的解決手段および利点をより明確にするために、以下では、本発明の実施形態における添付図面を参照して、本発明の実施形態における技術的解決手段を明確に説明する。明らかに、説明される実施形態は、本発明の実施形態の一部であるが全てではない。創造的努力なしに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
図1は、本発明の実施形態に係るコンピュータシステムの構築的な図である。図1に示されるように、コンピュータシステムはプロセッサ(Processor)11およびハイブリッドメモリ(Hybrid Memory)12を含む。Processor11はCPU111、キャッシュ(Cache)112およびメモリコントローラ(Memory controller)113を含んでよく、Hybrid Memory12はDRAM121およびNVM122を含んでよい。Processor11、Hybrid Memory12およびキャッシュ(Cache)112は、バスを使用することによって接続される。Hybrid Memory12およびMemory controller113はメモリバス(Memory Bus)13を使用することによって接続されてよい。
データアクセス中、CPUはデータアクセス要求をCacheに送信してよく、ここで、データアクセス要求はアクセスアドレスを含む。Hybrid Memory内のいくつかのデータは、応答速度を向上するためにCache内にキャッシュされる。従って、Cacheは最初に、アクセスアドレスに従って、CPUがアクセスすることを要求するデータがCache内にキャッシュされているかどうかを決定する。換言すると、Cacheは最初に、アクセスアドレスに従って、Cache内でアクセスされるように要求されるデータに対してヒットが生じることができるかどうかを決定する。Cache内でヒットが生じるとき、すなわち、アクセスされるべきデータがCache内にキャッシュされているとき、CacheはCPUに、CPUがアクセスすることを要求するデータを直接返してよい。Cache内でミスが生じるとき、すなわち、アクセスされるべきデータがCache内にキャッシュされていないとき、データアクセス要求は、Memory controllerを使用することによって、Hybrid Memoryに送信され、その結果、CPUがアクセスすることを要求するデータはHybrid Memoryから読み出される。
Cache内のキャッシュ空間は一般に比較的小さいため、データアクセスプロセスでは、Cacheは、変化するアクセス要件を満たすために、アクセスケースに従って、Cache内のキャッシュされているコンテンツを絶えず更新する必要がある。具体的には、現在のデータアクセスに対してCache内でヒットが生じるとき、キャッシュライン(Cache line)は置き換えられも更新されもせず、現在のデータアクセスに対してCache内でミスが生じるとき、Cacheは、現在キャッシュされているキャッシュライン(Cache line)から置き換えられるべきCache lineを決定し、そのCache lineをメモリから読み出された新しいCache lineで置き換える必要がある。
当業者は、Cacheとメモリとの間のデータ交換がCache Controllerを使用することによって実行されることを知ることができる。Cache lineは、Cache Controllerにおける最小操作単位である。換言すると、Cache Controllerがデータをメモリに書き込むとき、Cache ControllerはデータのlineをCache line の単位でメモリに書き込み、Cache Controllerがメモリからデータを読み出すとき、データはまた、Cache lineに従って読み出される。説明の容易さのために、本発明の実施形態では、1つのCache lineは1つのCache line内のデータを表すことができる。本発明の実施形態における「Cache lineを置き換える」は、Cache内の1つのCache lineにおけるデータをメモリから読み出された1つのCache lineにおけるデータで置き換えることを指す。前述のプロセスでは、Cacheは、最も低いアクセス頻度を有するCache lineについて現在キャッシュされているCache lineを検索し、最も低いアクセス頻度を有するCache lineは置き換えられるべきCache lineであると決定する。しかしながら、Cacheは置き換えられるべきCache lineに対応するメモリのタイプがDRAMタイプであるかまたはNVMタイプであるかを理解せず、すなわち、置き換えられるべきCache lineがDRAMから来るかまたはNVMから来るかを知らない。
DRAMおよびNVMのいくつかのタイプに対して行われる分析から、DRAMの読み出し/書き込み性能とNVMの読み出し/書き込み性能との間に違いがあることが発見される。本発明の実施形態では、NVMは相変化メモリ(Phase Change Memory, PCM)、スピントランスファートルク磁気ランダムアクセスメモリ(Spin Transfer Torque-Magnetic Random Access Memory, STT-MRAM)および抵抗性ランダムアクセスメモリ(Resistive Random Access Memory, RRAM(登録商標))を含むがそれらに限定はされない。DRAMの読み出し/書き込み性能およびNVMの読み出し/書き込み性能は、具体的には、表1に示されることができる。
表1から、NVMの記憶容量はDRAMの記憶容量よりも大きく、且つ、NVMはDRAMよりも少ないエネルギーを消費するが、NVMの読み出し/書き込み遅延はDRAMの読み出し/書き込み遅延よりも長く、且つ、NVMは書き込み数に対して制限を有することがわかることができる。
従って、前述の従来技術によると、Cacheによって決定される置き換えられるべきCache lineに対応するメモリのタイプがNVMタイプである場合、置き換えられるべきCache lineはCacheから削除されることになり、且つ、データは次のアクセス要求のためにHybrid MemoryのNVMから呼び出される必要がある。NVMの読み出し/書き込み遅延はDRAMの読み出し/書き込み遅延よりも長いため、アクセス遅延の問題が必然的に生じ、且つ、アクセス遅延に対するアプリケーションの比較的高い要件が満たされることができない。
従って、方法の実施形態では、Cacheが置き換えられるべきCache lineを決定するとき、各現在キャッシュされているCache lineの過去のアクセス頻度が考慮される必要があるだけでなく、各Cache lineに対応するメモリのタイプもまたさらに考慮される必要がある。そのタイプがDRAMタイプであるメモリに対応するCache lineが優先して考慮され、すなわち、そのタイプがDRAMタイプであるメモリに対応するCache lineが優先して置き換えられる。このようにして、例えDRAMのCache lineがCacheから削除され、且つ、次のデータアクセスにおいてデータがDRAMから呼び出される必要があるときでも、DRAMのアクセス遅延は極端に長くはない。そのタイプがDRAMタイプであるメモリに対応するCache lineは、Cache line内のデータがメモリのDRAM内に記憶されていることを表す。そのタイプがNVMタイプであるメモリに対応するCache lineは、Cache line内のデータがメモリのNVM内に記憶されていることを表す。
本発明の技術的解決手段は、以下の具体的な実施形態を使用することによって詳細に説明される。
図2は、本発明の実施形態に係るデータキャッシング方法のフローチャートである。方法はCacheによって実行されてよく、且つ、具体的には、Cache内のCache Controllerによって実行されてよい。図1および図2内に示されるように、本実施形態における方法は以下を含んでよい:
S201. Cacheは、CPUによって送信されるデータアクセス要求を受信し、ここで、データアクセス要求はアクセスアドレスを含む。
S202. Cacheは、アクセスアドレスに従って、アクセスされるべきデータがCache内にキャッシュされているかどうかを決定し、アクセスされるべきデータがCache内にキャッシュされている場合、S207が実行され、アクセスされるべきデータがCache内にキャッシュされていない場合、S203が実行される。
具体的には、CPUはアプリケーションによって送信されるデータアクセス要求を受信するとともにデータアクセス要求をCacheに送信してよい。CacheはCPUによって要求されるアクセスアドレスをCache内にキャッシュされている全てのCache lineのアドレスと比較して、要求されているデータがCache内にキャッシュされているかどうか、すなわち、ヒットが生じるかどうかを決定してよい。具体的な実施では、Cacheのマッピング戦略が連想マッピングである場合、Cacheはキャッシング範囲全体内で検索および比較を実行し、Cacheのマッピング戦略が連想マッピングではないがセット連想マッピングである場合、Cacheは、アクセスアドレス内のインデックス(index)ビットに従って、Cache内のアクセスアドレスが属するセットを決定して、アクセスアドレス内のタグ(tag)ビットに従って、アクセスアドレスがセット内に含まれているかどうかをさらに決定してよい。アクセスアドレスがセット内に含まれているとき、Cacheは、有効ビットに従って、キャッシュされているデータが有効であるかどうかを決定してよい。データが有効である場合、対応するデータが、アクセスアドレス内のデータオフセットに従って発見されてよく、且つ、データはCPUに返される。
S203. Cacheは、Cache内のCache lineの過去のアクセス頻度およびCache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、第1の事前に設定された条件を満たすCache lineがCache内に存在する場合、S204が実行され、第1の事前に設定された条件を満たすCache lineがCache内に存在しない場合、S208が実行される。
第1の事前に設定された条件を満たすCache lineは、その過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリDRAMタイプのメモリに対応しているCache lineを含み、且つ、メモリはDRAMタイプのメモリおよび不揮発性メモリNVMタイプのメモリを含む。
S204. 第1の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択する。
アクセスされるべきデータがCache内にキャッシュされていないとき、すなわち、ミスが生じるとき、Cacheは、Cache lineを現在キャッシュされているCache lineから置き換えられるべきCache lineとして決定する必要があり、ここで、置き換えられるべきCache lineとして決定されるCache lineは、第1のCache lineである。第1のCache lineが決定されているとき、全ての現在キャッシュされているCache lineの過去のアクセス頻度に対してだけでなく、全てのCache lineに対応するメモリのタイプに対してもまた参照が行われる必要がある。Cache lineの過去のアクセス頻度は、対応するキャッシュされているデータのアクセス温度を表すために使用され、且つ、Cache lineに対応するメモリのタイプは、Cache lineのソースがDRAMであるかまたはNVMであるかを表す。
本実施形態では、Cacheが第1のCache lineを決定する戦略は、過去のアクセス頻度に基づいて、そのタイプがDRAMであるメモリに対応するCache lineを可能な限り置き換えること、すなわち、そのタイプがDRAMタイプであるメモリに対応するCache lineを優先して置き換えることであってよい。
例えば、Cacheは最初に、その過去のアクセス頻度が事前に設定された頻度よりも低いいくつかのCache lineを全てのキャッシュされているCache lineから選択して、次いで、いくつかのCache lineのそれぞれに対応するメモリのタイプに従って、DRAMタイプのメモリに対応するCache lineが置き換えられるべき第1のCache lineとして使用されると決定してよい。いくつかのCache lineがそのタイプがDRAMタイプであるメモリに対応する2つ以上のCache lineを含む場合、その過去のアクセス頻度が最も低Cache lineが置き換えられるべき第1のCache lineとして決定されてよい。
S205. Cacheは、アクセスアドレスに従って、メモリからアクセスされるべきデータを読み出す。
置き換えられるべき第1のCache lineを決定した後、Cacheは、アクセスアドレスに従って、アクセスされるべきデータをメモリから読み出してよく、ここで、アクセスされるべきデータはDRAM内に記憶されてよく、またはNVM内に記憶されてよい。
S206. Cacheは、第1のCache lineを第2のCache lineで置き換え、ここで、第2のCache lineはアクセスアドレスおよびアクセスされるべきデータを含む。
アクセスされるべきデータを読み出した後、Cacheは第1のCache lineを第2のCache lineで置き換えてよい。本発明の本実施形態では、説明の容易さのために、Cache line内にあるとともにメモリから読み出されたデータは、第2のCache lineと呼ばれることは留意されるべきである。第1のCache lineを第2のCache lineで置き換えることは、Cache内で、メモリから読み出されるデータをキャッシュして、第1のCache line内のデータを削除するか、または第1のCache line内のデータをメモリにライトバックすることを指す。具体的な実施では、locationフラグビットがCache内の各Cache lineに追加されてよく、このフラグビットは、Cache lineに対応するメモリのタイプがDRAMタイプであるかまたはNVMタイプであるかを見分けるために使用される。
Cacheは、メモリ内にあるとともにアクセスアドレスによって示される記憶媒体のタイプに従って、第2のCache lineに対応するメモリのタイプを記録してよい。換言すると、フラグビットは第2のCache lineに追加されることができる。例えば、フラグビットのために、1つのbitが使用されてよい。bitが1であるとき、第2のCache lineに対応するメモリタイプがDRAMタイプであることを表し、bitが0であるとき、第2のCache lineに対応するメモリタイプがNVMタイプであることを表す。
第1のCache lineがCacheから削除されているとき、置き換えられるべき第1のCache lineのModifyフラグビットがクリーン(clean)である場合、第1のCache line内のデータは変更されておらず、メモリ内に記憶されているデータと一致していることを表す。この場合、第1のCache line内のデータは、メモリにライトバックされる必要はなく、第1のCache line内のデータは直接削除されてよい。置き換えられるべき第1のCache lineの変更フラグビットがダーティ(dirty)である場合、第1のCache line内のデータは変更されており、メモリ内に記憶されているデータと一致していないことを表す。この場合、第1のCache line内のデータは、最初にメモリにライトバックされる必要があり、次いで、第1のCache lineは削除される。
S207. Cacheは、アクセスされるべきデータをCPUに送信し、手順は終了する。
前述の操作を完了した後、Cacheは、CPUに、読み出されたアクセスされるべきデータを送信してよい。
結論として、本実施形態における方法では、アクセス要求のミスが生じるとともにCacheが置き換えられるべきCache lineを決定する必要があるとき、Cache lineの過去のアクセス頻度だけでなくCache lineに対応するメモリのタイプもまた考慮される必要がある。従って、DRAMタイプに対応するCache lineは優先して置き換えられてよく、このことは、DRAM内に記憶されるデータのためのCache内のキャッシング量を低減する。CacheはNVM内に記憶されるデータのためのキャッシング量を増加させることができ、NVM内に記憶されるデータへのアクセス要求のために、対応するデータが可能な限りCache内で見つけられることができ、それによって、NVMからデータを読み出すケースを低減し、NVMからデータを読み出すことにおける遅延を低減し、アクセス効率を効果的に改善する。
前述の実施形態では、全てのCache lineの過去のアクセス頻度は、最近最も使用されていない(Least Recently Used, LRU)リンクリストの助けを借りて取得されることができる。
具体的には、LRUリンクリストでは、Cache lineはアクセス頻度の昇順で記録され、Cacheによって第1の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定するステップは、具体的には、
DRAMタイプのメモリに対応するCache lineがCacheの最近最も使用されていないLRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、ここで、LRUリンクリスト内の最初のM個のCache lineが、その過去のアクセス頻度が事前に設定された頻度よりも低いCache lineである、ステップと、
DRAMタイプのメモリに対応するCache lineがLRUリンクリスト内の最初のM個のCache line内に存在するとき、第1のCache lineとして、DRAMタイプのメモリに対応しているとともに最初のM個のCache line内にある決定されたCache lineの1番目を選択するステップとであってよい。
「第1の」は、DRAMタイプのメモリに対応するCache lineの、LRUリンクリスト内の最初のM個のCache lineにおける最前に位置するCache lineを指す。
Mの値が比較的大きく設定される場合、そのタイプがDRAMタイプであるメモリに対応するCache lineを置き換える確率は高くなることができることは留意されるべきである。しかしながら、Mの値は過度に大きく設定されることはできず、そうでなければ、DRAM内に記憶されているデータはCacheに入ることはできない。当業者は、Mの値を適宜設定してよい。
S208. Cacheは、第2の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、第2の事前に設定された条件を満たすCache lineがCache内に存在する場合、S209が実行され、第2の事前に設定された条件を満たすCache lineがCache内に存在しない場合、S210が実行される。
第2の事前に設定された条件を満たすCache lineは、その過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、NVMタイプのメモリに対応している変更されていないCache lineを含む。
具体的には、Cacheが第1の事前に設定された条件を満たすCache lineがCache内に存在しないと決定するとき、Cacheは、そのタイプがNVMであるメモリに対応するCache lineを置き換える必要があり得る。
Cache lineのModifyフラグビットがcleanである場合、すなわち、Cache line内のデータが変更されておらずメモリ内に記憶されているデータと一致している場合、Cache line内のデータは置き換え中にメモリにライトバックされる必要はなく、Cache lineのModifyフラグビットがdirtyである場合、すなわち、Cache line内のデータが変更されておりメモリ内に記憶されているデータと一致していない場合、Cache line内のデータは置き換え中にメモリに最初にライトバックされる必要があることが分析によって発見される。しかしながら、NVMは書き込み数に対して制限を有する。従って、そのタイプがNVMであるメモリに対応するCache lineが置き換えられる必要があるとき、NVMに対する書き込み数を可能な限り低減するために、そのModifyフラグビットがcleanであるCache lineが優先して置き換えられてよい。
S209. 第2の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択し、S205が実行される。
Cacheによって、第2の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定するステップは、具体的には、
NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanを表すCache lineがCacheのLRUリンクリスト内の最初のN個のCache line内に存在するかどうかを決定するステップであって、ここで、最初のN個のCache lineはその過去のアクセス頻度が事前に設定された頻度よりも低いCache lineである、ステップと、
NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanであるCache lineがLRUリンクリスト内の最初のN個のCache line内に存在するとき、第1のCache lineとして、NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanである、最初のN個のCache line内の決定されたCache lineの1番目を選択するステップとであってよい。
具体的な実施では、MおよびNの値は、アプリケーションの挙動に従って調整されてよい。異なるタイプのメモリに対応するCache lineを置き換えることにおける遅延はDRAM < NVM (clean) < NVM (dirty)という関係を有するため、Cache内で、NVMキャッシュからのCache lineを記憶するための時間は、適切に延長されてよい。従って、N≦Mが一般に設定されてよい。
S210. Cacheは、第1のCache lineとして、最も低い過去のアクセス頻度を有するCache lineを選択し、S205が実行される。
さらに、第2の事前に設定された条件を満たすCache lineがCache内に存在しないとき、LRUリンクリストの最前端のCache lineが第1のCache lineである。
具体的には、そのタイプがNVMタイプであるメモリに対応するとともにそのModifyフラグビットがcleanであるCache lineがLRUリンクリスト内の最初のN個のCache line内に存在しない場合、Cacheは、LRUリンクリストの最前端の第1のCache lineが第1のCache lineであると決定してよい。この場合、決定された第1のCache lineは、そのタイプがNVMタイプであるメモリに対応するとともにそのModifyフラグビットがdirtyであるCache lineである。
本発明の別の実施形態では、Cacheは、メモリ内にあるとともにアクセスアドレスによって示される記憶媒体のタイプに従って、第2のCache lineに対応するメモリのタイプをさらに記録してよい。
具体的には、Cacheは、以下の2つの実施方式で、Cache lineに対応するメモリのタイプを取得してよい。
方式1: 第2のCache lineに対応するメモリのタイプが、メモリ内のアクセスアドレスが属するアドレス範囲に従って決定されて記録される。
具体的には、この方式では、Hybrid Memoryにおける物理アドレスは連続的であり、例えば、前のn GBはDRAMであり、後ろのn GBはNVMである。
従って、CacheはアクセスアドレスがDRAMアドレス範囲に属するかまたはNVMアドレス範囲に属するかを決定してよい。アクセスアドレスがDRAMアドレス範囲に属する場合、Cacheは、第2のCache lineに対応するメモリのタイプがDRAMタイプであると記録してよく、アクセスアドレスがNVMアドレス範囲に属する場合、Cacheは、第2のCache lineに対応するメモリのタイプがNVMタイプであると記録してよい。
方式2: 第2のCache lineに対応するメモリのタイプが、Memory Controllerによってフィードバックされる情報に従って決定されて記録される。
具体的には、この方式では、マッピングテーブルがMemory Controller内に記憶されてよく、ここで、マッピングテーブルはDRAMアドレス範囲またはNVMアドレス範囲を記録し、またはDRAMアドレス範囲とNVMアドレス範囲の両方を記録してよい。アドレス範囲は、連続的であっても不連続であってもよい。Memory Controllerは、アクセスアドレスおよびマッピングテーブルに従って、Hybrid Memory内のアクセスアドレスの記憶位置を決定してよい。加えて、Memory ControllerとCacheとの間のデータ交換中、フラグビットが追加されてよく、Memory Controllerは、追加されたフラグビットを使用することによって、Hybrid Memory内のアクセスアドレスの記憶位置をCacheに送信してよい。
具体的な実施では、ミスが生じるとき、Cacheはデータアクセス要求をMemory Controllerに送信する必要があり、ここで、データアクセス要求はアクセスアドレスを含む。Memory Controllerは、データアクセス要求に従って、Hybrid Memoryからアクセスされるべきデータを読み出してよく、且つ、Memory Controllerは、アクセスアドレスおよびマッピングテーブルに従って、Hybrid Memory内のアクセスアドレスの記憶位置を取得してよい。その後、Memory Controllerはデータ読み出し応答をCacheに送信してよく、ここで、データ読み出し応答は、アクセスされるべきデータとHybrid Memory内のアクセスアドレスの記憶位置とを含む。それに応じて、Cacheは、Memory Controllerによって送信されるデータ読み出し応答に含まれる記憶位置に従って、第2のCache lineに対応するメモリのタイプを記録してよい。
前述の実施形態の技術的解決手段は、以下の2つの具体的な例を使用することによって詳細に説明される。
Hybrid Memoryでは、前の2 GBはDRAMであり、後ろの2 GBはNVMであり、Cacheのマッピング戦略は連想マッピングであり、CPUはCacheからのデータを要求し、アクセスアドレスは0x08000000であり、アクセスアドレスはHybrid Memoryの第1GB内に配置され、データバスは32ビットを有すると仮定される。
例1: ローカル検索の後、Cacheが対応するデータを発見しない場合、このことは、ミスが生じることを示し、CacheはLRUリンクリスト内の最初の5個のCache lineを検索し、最初の5個のCache lineのlocationフラグビットに従って、そのタイプがDRAMであるメモリに対応するCache lineが見つからないと決定する。その後、CacheがLRUリンクリスト内の最初の3個のCache lineのModifyフラグビットをチェックするとともに2番目のCache lineのModifyフラグビットが0であることを発見する場合、これはcleanを示し、そのCache lineは置き換えられるべき第1のCache lineである。Cacheは、第1のCache lineを置き換えるために、そのアクセスアドレスが0x08000000であるデータを含むCache lineをCache内に読み出して、読み出されたデータをCPUに返してよい。加えて、Cacheはアクセスアドレス(0x08000000)に従って、データがDRAM内に記憶されていると決定してよい。従って、Cacheは新たに読み出されたCache line、すなわち第2のCache lineを、LRUリンクリストの末尾に追加し、Cache lineのlocationフラグビットを0に設定し(第2のCache lineがDRAMから来ることを表す)、Modifyフラグビットを0に設定する(第2のCache line内のデータが変更されていないことを表す)。
例2: ローカル検索の後、Cacheが対応するデータを発見しない場合、このことは、ミスが生じることを示し、CacheはLRUリンクリスト内の最初の5個のCache lineを検索し、最初の5個のCache lineのlocationフラグビットに従って、そのタイプがDRAMであるメモリに対応するCache lineが見つかるとともにそのCache lineが置き換えられるべき第1のCache lineであると決定する。DRAMのModifyフラグビットが1である(第1のCache line内のデータが変更されていることを表す)場合、Cacheは第1のCache line内のデータを最初にライトバックし、次いで、Cacheは、第1のCache lineを置き換えるために、そのアクセスアドレスが0x08000000であるデータを含むCache lineをCache内に読み出して、読み出されたデータをCPUに返してよい。加えて、Cacheはアクセスアドレス(0x08000000)に従って、データがDRAM内に記憶されていると決定してよい。従って、Cacheは新たに読み出されたCache line、すなわち第2のCache lineを、LRUリンクリストの末尾に追加し、Cache lineのlocationフラグビットを0に設定し(第2のCache lineがDRAMから来ることを表す)、Modifyフラグビットを0に設定する(第2のCache line内のデータが変更されていないことを表す)。
本発明の本実施形態では、Cacheが置き換えられるべきCache lineを決定しているとき、そのタイプがDRAMであるメモリに対応するCache lineが優先して置き換えられ、その結果、NVMからデータを読み出すことにおける遅延を回避するために、そのタイプがNVMであるメモリに対応するCache lineは可能な限り保持されることは前述のプロセスからわかることができる。そのタイプがDRAMであるメモリに対応するCache lineが置き換えられることができないとき、可能な限りNVMに対する書き込み数を低減するとともにメモリの寿命を延長するために、そのタイプがNVMであるメモリに対応するとともにそのModifyフラグビットがcleanであるCache lineが優先して置き換えられる。
図3は、本発明の実施形態に係るCacheの概略構成図である。図3に示されるように、本実施形態におけるCacheは、
CPUによって送信されるデータアクセス要求を受信するように構成される受信モジュール31であって、ここで、データアクセス要求はアクセスアドレスを含む、受信モジュール31と、
アクセスアドレスに従って、アクセスされるべきデータがCache内にキャッシュされているかどうかを決定するように構成されるヒット決定モジュール32と、
アクセスされるべきデータがCache内にキャッシュされていないとき、Cache内のCache lineの過去のアクセス頻度およびCache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、第1の事前に設定された条件を満たすCache lineがCache内に存在するとき、第1の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択するように構成される置き換え決定モジュール33であって、ここで、第1の事前に設定された条件を満たすCache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリDRAMタイプのメモリに対応しているCache lineを含み、メモリはDRAMタイプのメモリおよび不揮発性メモリNVMタイプのメモリを含む、置き換え決定モジュール33と、
アクセスアドレスに従って、メモリからアクセスされるべきデータを読み出すように構成される読み出しモジュール34と、
第1のCache lineを第2のCache lineで置き換えるように構成される置き換えモジュール35であって、ここで、第2のCache lineはアクセスアドレスおよびアクセスされるべきデータを含む、置き換えモジュール35と、
アクセスされるべきデータをCPUに送信するように構成される送信モジュール36と
を含んでよい。
さらに、置き換え決定モジュール33は、具体的には
DRAMタイプのメモリに対応するCache lineがCacheの最近最も使用されていないLRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定し、
DRAMタイプのメモリに対応するCache lineがLRUリンクリスト内の最初のM個のCache line内に存在するとき、第1のCache lineとして、DRAMタイプのメモリに対応しているとともに最初のM個のCache line内にある決定されたCache lineの1番目を選択するように構成され、ここで、LRUリンクリスト内の最初のM個のCache lineが、その過去のアクセス頻度が事前に設定された頻度よりも低いCache lineである。
さらに、置き換え決定モジュール33は、
第1の事前に設定された条件を満たすCache lineがCache内に存在しないとき、第2の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、
第2の事前に設定された条件を満たすCache lineがCache内に存在するとき、第2の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択するようにさらに構成され、ここで、第2の事前に設定された条件を満たすCache lineは、その過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、NVMタイプのメモリに対応している変更されていないCache lineを含む。
さらに、置き換え決定モジュール33は、具体的には、
NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanを表すCache lineがCacheのLRUリンクリスト内の最初のN個のCache line内に存在するかどうかを決定し、
NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanであるCache lineがLRUリンクリスト内の最初のN個のCache line内に存在するとき、第1のCache lineとして、NVMタイプのメモリに対応しているとともにそのModifyフラグビットがcleanである、最初のN個のCache line内の決定されたCache lineの1番目を選択するように構成され、ここで、最初のN個のCache lineはその過去のアクセス頻度が事前に設定された頻度よりも低いCache lineである。
さらに、置き換え決定モジュール33は、
第2の事前に設定された条件を満たすCache lineがCache内に存在しないとき、LRUリンクリストの最前端のCache lineが第1のCache lineであると決定するようにさらに構成される。
さらに、置き換えモジュール35は、
第1のCache lineが第2のCache lineで置き換えられた後、メモリ内にあるとともにアクセスアドレスによって示される記憶媒体のタイプに従って、第2のCache lineに対応するメモリのタイプを記録するようにさらに構成される。
本実施形態におけるCacheは、前述の方法の実施形態における技術的解決手段を実行するために使用されてよく、その実施原理および技術的効果は同様であり、詳細はここでは説明されない。
本発明の実施形態は、コンピュータシステムの実施形態をさらに提供してよい。コンピュータシステムの実施形態の概略構成図については、図1に示されるアーキテクチャに対して参照が行われてよい。すなわち、プロセッサ(Processor)11およびハイブリッドメモリ(Hybrid Memory)12が含まれ、ここで、Processor11はCPU111、CPUキャッシュ(Cache)112およびメモリコントローラ(Memory controller)113を含んでよく、Hybrid Memory12はDRAM121およびNVM122を含んでよく、Hybrid Memory12およびMemory controller113はメモリバス(Memory Bus)13を使用することによって接続されてよい。
Cache112は、Cacheの前述の実施形態で説明される構造を使用してよく、Cache112は、前述の方法の実施形態における技術的解決手段を実行してよい。その実施原理および技術的効果は同様であり、詳細はここでは説明されない。
当業者は、方法の実施形態のステップの全てまたはいくつかが関連するハードウェアに命令するプログラムによって実施されてよいことを理解することができる。プログラムはコンピュータ可読記憶媒体内に記憶されてよい。プログラムが動作すると、方法の実施形態のステップが実行される。前述の記憶媒体は、ROM、RAM、磁気ディスクまたは光ディスク等のプログラムコードを記憶することができる任意の媒体を含む。
最後に、前述の実施形態は単に、本発明を限定するためではなく、本発明の技術的解決手段を説明するために意図されることは留意されるべきである。本明細書で提供される実施形態は単なる例示的なものである。当業者は、説明の便利さおよび簡潔さのために、前述の実施形態では、実施形態は異なる側面を強調し、1つの実施形態で詳細に説明されない部分については、別の実施形態の関連する説明に対して参照が行なわれてよいことを明確に知ることができる。本発明の実施形態、請求項および添付図面で開示される特徴は、独立して存在してよく、または組み合わせて存在してよい。
11 プロセッサ
12 ハイブリッドメモリ
31 受信モジュール
32 ヒット決定モジュール
33 置き換え決定モジュール
34 読み出しモジュール
35 置き換えモジュール
36 送信モジュール
111 中央処理装置
112 キャッシュ
113 メモリコントローラ
121 ダイナミック・ランダム・アクセス・メモリ
122 不揮発性メモリ

Claims (24)

  1. プロセッサ、Cacheおよびハイブリッドメモリを含むコンピュータシステム内で適用するデータキャッシング方法であって、前記方法は前記Cacheによって実行され、且つ、
    前記プロセッサによって送信されるデータアクセス要求を受信するステップであって、前記データアクセス要求はアクセスアドレスを含む、ステップと、
    前記アクセスアドレスに従って、アクセスされるべきデータが前記Cache内にキャッシュされているかどうかを決定するステップと、
    前記アクセスされるべきデータが前記Cache内にキャッシュされていないとき、前記Cache内のCache lineの過去のアクセス頻度および前記Cache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定するステップであって、前記第1の事前に設定された条件を満たす前記Cache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリ(DRAM)タイプのメモリに対応しているCache lineを含み、前記ハイブリッドメモリは前記DRAMタイプの前記メモリおよび不揮発性メモリ(NVM)タイプのメモリを含む、ステップと、
    前記第1の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第1の事前に設定された条件を満たす前記Cache lineから置き換えられるべき第1のCache lineを選択するステップと、
    前記アクセスアドレスに従って、前記ハイブリッドメモリから前記アクセスされるべきデータを読み出すステップと、
    前記第1のCache lineを第2のCache lineで置き換えるステップであって、前記第2のCache lineは前記アクセスアドレスおよび前記アクセスされるべきデータを含む、ステップと、
    前記アクセスされるべきデータを前記プロセッサに送信するステップと
    を含む、方法。
  2. 第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定する前記ステップは、
    前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの最近最も使用されていない(LRU)リンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、前記LRUリンクリスト内の前記最初のM個のCache lineが、その過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineである、ステップを含み、
    前記第1の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第1の事前に設定された条件を満たす前記Cache lineから置き換えられるべき第1のCache lineを選択する前記ステップは、
    前記DRAMタイプの前記メモリに対応する前記Cache lineが前記LRUリンクリスト内の前記最初のM個のCache line内に存在するとき、前記第1のCache lineとして、前記DRAMタイプの前記メモリに対応しているとともに前記最初のM個のCache line内にある決定されたCache lineを選択するステップを含む、請求項1に記載の方法。
  3. 前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定する前記ステップは、
    前記Cache内のCache lineの位置フラグビットに従って、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、前記Cache lineの前記位置フラグビットは、前記Cache lineに対応するメモリのタイプがDRAMタイプまたはNVMタイプであることを示すように構成される、ステップ
    を含む、請求項2に記載の方法。
  4. 前記第1の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、第2の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定するステップであって、前記第2の事前に設定された条件を満たす前記Cache lineは、その過去のアクセス頻度が前記事前に設定された頻度よりも低く、且つ、前記NVMタイプの前記メモリに対応している変更されていないCache lineを含む、ステップと、
    前記第2の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第2の事前に設定された条件を満たす前記Cache lineから前記置き換えられるべき第1のCache lineを選択するステップと
    をさらに含む、請求項1乃至3のいずれか1項に記載の方法。
  5. 第2の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定する前記ステップは、
    前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanを表すCache lineが前記Cacheの前記LRUリンクリスト内の最初のN個のCache line内に存在するかどうかを決定するステップであって、前記最初のN個のCache lineはその過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineであり、前記Nは前記M以下である、ステップを含み、
    前記第2の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第2の事前に設定された条件を満たす前記Cache lineから前記置き換えられるべき第1のCache lineを選択する前記ステップは、
    前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである前記Cache lineが前記LRUリンクリスト内の前記最初のN個のCache line内に存在するとき、前記第1のCache lineとして、前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである、前記最初のN個のCache line内の決定されたCache lineを選択するステップを含む、
    請求項4に記載の方法。
  6. 前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するステップ
    をさらに含む、請求項5に記載の方法。
  7. 前記第1のCache lineを第2のCache lineで置き換える前記ステップの後、
    前記ハイブリッドメモリ内にあるとともに前記アクセスアドレスによって示される記憶媒体のタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するステップ
    をさらに含む、請求項1乃至6のいずれか1項に記載の方法。
  8. Cacheであって、
    コンピュータシステムのプロセッサによって送信されるデータアクセス要求を受信するように構成される受信モジュールであって、前記データアクセス要求はアクセスアドレスを含み、前記コンピュータシステムは、前記Cache、ハイブリッドメモリおよび前記Cacheおよび前記ハイブリッドメモリに結合されている前記プロセッサを含む、受信モジュールと、
    前記アクセスアドレスに従って、アクセスされるべきデータが前記Cache内にキャッシュされているかどうかを決定するように構成されるヒット決定モジュールと、
    前記アクセスされるべきデータが前記Cache内にキャッシュされていないとき、前記Cache内のCache lineの過去のアクセス頻度および前記Cache lineに対応するメモリのタイプに従って、第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定し、前記第1の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第1の事前に設定された条件を満たす前記Cache lineから置き換えられるべき第1のCache lineを選択するように構成される置き換え決定モジュールであって、前記第1の事前に設定された条件を満たす前記Cache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリ(DRAM)タイプのメモリに対応しているCache lineを含み、前記ハイブリッドメモリは前記DRAMタイプの前記メモリおよび不揮発性メモリ(NVM)タイプのメモリを含む、置き換え決定モジュールと、
    前記アクセスアドレスに従って、前記ハイブリッドメモリから前記アクセスされるべきデータを読み出すように構成される読み出しモジュールと、
    前記第1のCache lineを第2のCache lineで置き換えるように構成される置き換えモジュールであって、前記第2のCache lineは前記アクセスアドレスおよび前記アクセスされるべきデータを含む、置き換えモジュールと、
    前記アクセスされるべきデータを前記プロセッサに送信するように構成される送信モジュールと
    を含む、Cache。
  9. 前記置き換え決定モジュールは、具体的には、
    前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの最近最も使用されていない(LRU)リンクリスト内の最初のM個のCache line内に存在するかどうかを決定し、
    前記DRAMタイプの前記メモリに対応する前記Cache lineが前記LRUリンクリスト内の前記最初のM個のCache line内に存在するとき、前記第1のCache lineとして、前記DRAMタイプの前記メモリに対応しているとともに前記最初のM個のCache line内にある決定されたCache lineを選択するように構成され、前記LRUリンクリスト内の前記最初のM個のCache lineが、その過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineである、請求項8に記載のCache。
  10. 前記置き換え決定モジュールは、具体的には、
    前記Cache内のCache lineの位置フラグビットに従って、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定するように構成され、前記Cache lineの前記位置フラグビットは、前記Cache lineに対応するメモリのタイプがDRAMタイプまたはNVMタイプであることを示すように構成される、請求項9に記載のCache。
  11. 前記置き換え決定モジュールは、
    前記第1の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、第2の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定し、
    前記第2の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第2の事前に設定された条件を満たす前記Cache lineから前記置き換えられるべき第1のCache lineを選択するようにさらに構成され、前記第2の事前に設定された条件を満たす前記Cache lineは、その過去のアクセス頻度が前記事前に設定された頻度よりも低く、且つ、前記NVMタイプの前記メモリに対応している変更されていないCache lineを含む、請求項8乃至10のいずれか1項に記載のCache。
  12. 前記置き換え決定モジュールは、具体的には、
    前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanを表すCache lineが前記Cacheの前記LRUリンクリスト内の最初のN個のCache line内に存在するかどうかを決定し、
    前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである前記Cache lineが前記LRUリンクリスト内の前記最初のN個のCache line内に存在するとき、前記第1のCache lineとして、前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである、前記最初のN個のCache line内の決定されたCache lineを選択するように構成され、前記最初のN個のCache lineはその過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineであり、前記Nは前記M以下である、請求項11に記載のCache。
  13. 前記置き換え決定モジュールは、
    前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するようにさらに構成される、請求項12に記載のCache。
  14. 前記置き換えモジュールは、
    前記第1のCache lineが前記第2のCache lineで置き換えられた後、前記ハイブリッドメモリ内にあるとともに前記アクセスアドレスによって示される記憶媒体のタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するようにさらに構成される、請求項8乃至13のいずれか1項に記載のCache。
  15. プロセッサ、Cacheおよびハイブリッドメモリを含むコンピュータシステム内で適用するデータキャッシング方法であって、
    前記Cacheによって、前記プロセッサによって送信されるデータアクセス要求を受信するステップであって、前記データアクセス要求はアクセスアドレスを含む、ステップと、
    前記Cacheによって、且つ、前記アクセスアドレスに従って、アクセスされるべきデータが前記Cache内にキャッシュされているかどうかを決定するステップと、
    前記Cacheによって、且つ、前記Cache内のCache lineの過去のアクセス頻度および前記Cache lineに対応するメモリのタイプに従って、前記アクセスされるべきデータが前記Cache内にキャッシュされていないとき、第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定するステップであって、前記第1の事前に設定された条件を満たす前記Cache lineはその過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、ダイナミック・ランダム・アクセス・メモリ(DRAM)タイプのメモリに対応しているCache lineを含み、前記ハイブリッドメモリは前記DRAMタイプの前記メモリおよび不揮発性メモリ(NVM)タイプのメモリを含む、ステップと、
    前記Cacheによって、前記第1の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、第2の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定するステップであって、前記第2の事前に設定された条件を満たす前記Cache lineは、その過去のアクセス頻度が前記事前に設定された頻度よりも低く、且つ、前記NVMタイプの前記メモリに対応している変更されていないCache lineを含む、ステップと、
    前記Cacheによって、前記第2の事前に設定された条件を満たす前記Cache lineが前記Cache内に存在するとき、前記第2の事前に設定された条件を満たす前記Cache lineから置き換えられるべき第1のCache lineを選択するステップと、
    前記Cacheによって、前記アクセスアドレスに従って、前記ハイブリッドメモリから前記アクセスされるべきデータを読み出すステップと、
    前記Cacheによって、前記第1のCache lineを第2のCache lineで置き換えるステップであって、前記第2のCache lineは前記アクセスアドレスおよび前記アクセスされるべきデータを含む、ステップと、
    前記Cacheによって、前記アクセスされるべきデータを前記プロセッサに送信するステップと
    を含む、方法。
  16. 第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定する前記ステップは、
    前記Cacheによって、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの最近最も使用されていない(LRU)リンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、前記LRUリンクリスト内の前記最初のM個のCache lineが、その過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineである、ステップ
    を含む、請求項15に記載の方法。
  17. 前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定する前記ステップは、
    前記Cacheによって、且つ、前記Cache内のCache lineの位置フラグビットに従って、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、前記Cache lineの前記位置フラグビットは、前記Cache lineに対応するメモリのタイプがDRAMタイプまたはNVMタイプであることを示すように構成される、ステップ
    を含む、請求項16に記載の方法。
  18. 第2の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定する前記ステップは、
    前記Cacheによって、前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanを表すCache lineが前記Cacheの前記LRUリンクリスト内の最初のN個のCache line内に存在するかどうかを決定するステップであって、前記最初のN個のCache lineはその過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineであり、前記Nは前記M以下である、ステップを含み、
    前記第2の事前に設定された条件を満たす前記Cache lineから前記置き換えられるべき第1のCache lineを選択する前記ステップは、
    前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである前記Cache lineが前記LRUリンクリスト内の前記最初のN個のCache line内に存在するとき、前記Cacheによって、前記第1のCache lineとして、前記NVMタイプの前記メモリに対応しているとともにそのModifyフラグビットがcleanである、前記最初のN個のCache line内の決定されたCache lineを選択するステップを含む、
    請求項16または17に記載の方法。
  19. 前記Cacheによって、前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するステップ
    をさらに含む、請求項15乃至18のいずれか1項に記載の方法。
  20. 前記Cacheによって、前記アクセスアドレスに対応するメモリのタイプを取得するステップと、
    前記Cacheによって、且つ、前記アクセスアドレスに対応する前記メモリのタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するステップと
    をさらに含む、請求項15乃至18のいずれか1項に記載の方法。
  21. Cache、ハイブリッドメモリおよび前記Cacheおよび前記ハイブリッドメモリに結合されているプロセッサを含むコンピュータシステムであって、前記Cacheは請求項1乃至7のいずれか1項に記載の前記方法を実行するように構成される、コンピュータシステム。
  22. Cache、ハイブリッドメモリおよび前記Cacheおよび前記ハイブリッドメモリに結合されているプロセッサを含むコンピュータシステムであって、前記Cacheは請求項15乃至20のいずれか1項に記載の前記方法を実行するように構成される、コンピュータシステム。
  23. プログラムコードとともにコンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項1乃至7のいずれか1項に記載の前記方法を実行するために使用される、コンピュータプログラム。
  24. プログラムコードとともにコンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項15乃至20のいずれか1項に記載の前記方法を実行するために使用される、コンピュータプログラム。
JP2016564221A 2014-05-09 2015-05-07 データキャッシング方法、キャッシュおよびコンピュータシステム Active JP6277572B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410193960.4 2014-05-09
CN201410193960.4A CN105094686B (zh) 2014-05-09 2014-05-09 数据缓存方法、缓存和计算机系统
PCT/CN2015/078502 WO2015169245A1 (zh) 2014-05-09 2015-05-07 数据缓存方法、缓存和计算机系统

Publications (2)

Publication Number Publication Date
JP2017519275A JP2017519275A (ja) 2017-07-13
JP6277572B2 true JP6277572B2 (ja) 2018-02-14

Family

ID=54392171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016564221A Active JP6277572B2 (ja) 2014-05-09 2015-05-07 データキャッシング方法、キャッシュおよびコンピュータシステム

Country Status (6)

Country Link
US (1) US10241919B2 (ja)
EP (1) EP3121703B1 (ja)
JP (1) JP6277572B2 (ja)
KR (1) KR102036769B1 (ja)
CN (1) CN105094686B (ja)
WO (1) WO2015169245A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6485320B2 (ja) * 2015-10-23 2019-03-20 富士通株式会社 キャッシュメモリおよびキャッシュメモリの制御方法
EP3388935B1 (en) * 2016-01-06 2021-09-29 Huawei Technologies Co., Ltd. Cache management method, cache controller and computer system
CN107229574A (zh) * 2016-03-23 2017-10-03 上海复旦微电子集团股份有限公司 缓存及其控制方法
CN107229546A (zh) * 2016-03-23 2017-10-03 上海复旦微电子集团股份有限公司 缓存的模拟方法及装置
CN107229575A (zh) * 2016-03-23 2017-10-03 上海复旦微电子集团股份有限公司 缓存性能的评估方法及装置
CN108021514B (zh) * 2016-10-28 2020-11-06 华为技术有限公司 一种缓存替换的方法和设备
CN106569961B (zh) * 2016-10-31 2023-09-05 珠海市一微半导体有限公司 一种基于访存地址连续性的cache模块及其访存方法
US10417134B2 (en) * 2016-11-10 2019-09-17 Oracle International Corporation Cache memory architecture and policies for accelerating graph algorithms
CN108255692B (zh) * 2016-12-28 2021-02-26 新华三技术有限公司 信息处理方法及装置
CN107368437B (zh) * 2017-07-24 2021-06-29 郑州云海信息技术有限公司 一种末级缓存管理方法及系统
US11301378B2 (en) * 2017-10-12 2022-04-12 Rambus Inc. Nonvolatile physical memory with DRAM cache and mapping thereof
CN111488298A (zh) * 2017-12-29 2020-08-04 贵阳忆芯科技有限公司 优化nvm接口命令执行顺序的方法与装置
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
JP7071640B2 (ja) * 2018-09-20 2022-05-19 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
CN110134514B (zh) * 2019-04-18 2021-04-13 华中科技大学 基于异构内存的可扩展内存对象存储系统
CN110347338B (zh) * 2019-06-18 2021-04-02 重庆大学 混合内存数据交换处理方法、系统及可读存储介质
CN112289353B (zh) * 2019-07-25 2024-03-12 上海磁宇信息科技有限公司 一种优化的具有ecc功能的mram系统及其操作方法
CN112667528A (zh) * 2019-10-16 2021-04-16 华为技术有限公司 一种数据预取的方法及相关设备
CN111221749A (zh) * 2019-11-15 2020-06-02 新华三半导体技术有限公司 数据块写入方法、装置、处理器芯片及Cache
CN112612727B (zh) * 2020-12-08 2023-07-07 成都海光微电子技术有限公司 一种高速缓存行替换方法、装置及电子设备
CN116897335A (zh) * 2021-02-26 2023-10-17 华为技术有限公司 一种缓存替换方法和装置
CN113421599A (zh) * 2021-06-08 2021-09-21 珠海市一微半导体有限公司 一种预缓存外部存储器数据的芯片及其运行方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307477A (en) 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US7457926B2 (en) 2005-05-18 2008-11-25 International Business Machines Corporation Cache line replacement monitoring and profiling
US7478197B2 (en) 2006-07-18 2009-01-13 International Business Machines Corporation Adaptive mechanisms for supplying volatile data copies in multiprocessor systems
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
CN100481028C (zh) * 2007-08-20 2009-04-22 杭州华三通信技术有限公司 一种利用缓存实现数据存储的方法和装置
US7962695B2 (en) 2007-12-04 2011-06-14 International Business Machines Corporation Method and system for integrating SRAM and DRAM architecture in set associative cache
CN101236530B (zh) * 2008-01-30 2010-09-01 清华大学 高速缓存替换策略的动态选择方法
JP2011022933A (ja) * 2009-07-17 2011-02-03 Toshiba Corp メモリ管理装置を含む情報処理装置及びメモリ管理方法
US20100185816A1 (en) * 2009-01-21 2010-07-22 Sauber William F Multiple Cache Line Size
CN102473140B (zh) 2009-07-17 2015-05-13 株式会社东芝 存储器管理装置
US8914568B2 (en) 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
CN102253901B (zh) 2011-07-13 2013-07-24 清华大学 一种基于相变内存的读写区分数据存储替换方法
CN103548005B (zh) * 2011-12-13 2016-03-30 华为技术有限公司 替换缓存对象的方法和装置
CN102760101B (zh) * 2012-05-22 2015-03-18 中国科学院计算技术研究所 一种基于ssd 的缓存管理方法及系统
CN102831087B (zh) * 2012-07-27 2016-05-11 国家超级计算深圳中心(深圳云计算中心) 基于混合存储器的数据读写处理方法和装置
US9128845B2 (en) * 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
CN103092534B (zh) * 2013-02-04 2016-01-27 中国科学院微电子研究所 一种内存结构的调度方法和装置
CN103927203B (zh) 2014-03-26 2018-06-26 上海新储集成电路有限公司 一种计算机系统及控制方法
CN103927145B (zh) 2014-04-28 2017-02-15 中国科学院微电子研究所 一种基于混合内存的系统休眠、唤醒方法及装置
CN103914403B (zh) 2014-04-28 2016-11-02 中国科学院微电子研究所 一种混合内存访问情况的记录方法及其系统
CN104035893A (zh) 2014-06-30 2014-09-10 浪潮(北京)电子信息产业有限公司 一种在计算机异常掉电时的数据保存方法

Also Published As

Publication number Publication date
CN105094686B (zh) 2018-04-10
EP3121703A4 (en) 2017-05-17
JP2017519275A (ja) 2017-07-13
EP3121703A1 (en) 2017-01-25
CN105094686A (zh) 2015-11-25
KR20160132458A (ko) 2016-11-18
EP3121703B1 (en) 2019-11-20
KR102036769B1 (ko) 2019-10-25
WO2015169245A1 (zh) 2015-11-12
US20170060752A1 (en) 2017-03-02
US10241919B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
JP6277572B2 (ja) データキャッシング方法、キャッシュおよびコンピュータシステム
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
CN104346294B (zh) 基于多级缓存的数据读/写方法、装置和计算机系统
US8745334B2 (en) Sectored cache replacement algorithm for reducing memory writebacks
JP5440067B2 (ja) キャッシュメモリ制御装置およびキャッシュメモリ制御方法
US20150058570A1 (en) Method of constructing share-f state in local domain of multi-level cache coherency domain system
JP4563486B2 (ja) 上位レベル・キャッシュのエビクション候補を識別するための巡回スヌープ
CN105740164A (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
CN110018971B (zh) 缓存替换技术
JP6859361B2 (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US9418016B2 (en) Method and apparatus for optimizing the usage of cache memories
CN109952565B (zh) 内存访问技术
US20100205344A1 (en) Unified cache structure that facilitates accessing translation table entries
US8335908B2 (en) Data processing apparatus for storing address translations
US10282308B2 (en) Method and apparatus for reducing TLB shootdown overheads in accelerator-based systems
WO2016095761A1 (zh) 缓存的处理方法和装置
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
JP2017126334A (ja) 記憶装置及びその動作方法並びにシステム
KR102252377B1 (ko) 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법
US8924652B2 (en) Simultaneous eviction and cleaning operations in a cache
US11188467B2 (en) Multi-level system memory with near memory capable of storing compressed cache lines
JP7160792B2 (ja) キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
CN114600092A (zh) 用于混合dimm中的非易失性存储器的低延时高速缓存

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171208

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171228

R150 Certificate of patent or registration of utility model

Ref document number: 6277572

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250