JP6277572B2 - データキャッシング方法、キャッシュおよびコンピュータシステム - Google Patents
データキャッシング方法、キャッシュおよびコンピュータシステム Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 43
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 4
- 238000013507 mapping Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005265 energy consumption Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
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
-
- 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/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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
-
- 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/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/604—Details relating to cache allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid 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
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に送信するステップと
を含む。
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に送信するように構成される送信モジュールと
を含む。
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番目を選択するステップとであってよい。
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番目を選択するステップとであってよい。
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と
を含んでよい。
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である。
第1の事前に設定された条件を満たすCache lineがCache内に存在しないとき、第2の事前に設定された条件を満たすCache lineがCache内に存在するかどうかを決定し、
第2の事前に設定された条件を満たすCache lineがCache内に存在するとき、第2の事前に設定された条件を満たすCache lineから置き換えられるべき第1のCache lineを選択するようにさらに構成され、ここで、第2の事前に設定された条件を満たすCache lineは、その過去のアクセス頻度が事前に設定された頻度よりも低く、且つ、NVMタイプのメモリに対応している変更されていないCache lineを含む。
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である。
第2の事前に設定された条件を満たすCache lineがCache内に存在しないとき、LRUリンクリストの最前端のCache lineが第1のCache lineであると決定するようにさらに構成される。
第1のCache lineが第2のCache lineで置き換えられた後、メモリ内にあるとともにアクセスアドレスによって示される記憶媒体のタイプに従って、第2のCache lineに対応するメモリのタイプを記録するようにさらに構成される。
12 ハイブリッドメモリ
31 受信モジュール
32 ヒット決定モジュール
33 置き換え決定モジュール
34 読み出しモジュール
35 置き換えモジュール
36 送信モジュール
111 中央処理装置
112 キャッシュ
113 メモリコントローラ
121 ダイナミック・ランダム・アクセス・メモリ
122 不揮発性メモリ
Claims (24)
- プロセッサ、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は前記アクセスアドレスおよび前記アクセスされるべきデータを含む、ステップと、
前記アクセスされるべきデータを前記プロセッサに送信するステップと
を含む、方法。 - 第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に記載の方法。 - 前記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に記載の方法。 - 前記第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項に記載の方法。 - 第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に記載の方法。 - 前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するステップ
をさらに含む、請求項5に記載の方法。 - 前記第1のCache lineを第2のCache lineで置き換える前記ステップの後、
前記ハイブリッドメモリ内にあるとともに前記アクセスアドレスによって示される記憶媒体のタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するステップ
をさらに含む、請求項1乃至6のいずれか1項に記載の方法。 - 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。 - 前記置き換え決定モジュールは、具体的には、
前記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。 - 前記置き換え決定モジュールは、具体的には、
前記Cache内のCache lineの位置フラグビットに従って、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの前記LRUリンクリスト内の最初のM個のCache line内に存在するかどうかを決定するように構成され、前記Cache lineの前記位置フラグビットは、前記Cache lineに対応するメモリのタイプがDRAMタイプまたはNVMタイプであることを示すように構成される、請求項9に記載のCache。 - 前記置き換え決定モジュールは、
前記第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。 - 前記置き換え決定モジュールは、具体的には、
前記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。 - 前記置き換え決定モジュールは、
前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するようにさらに構成される、請求項12に記載のCache。 - 前記置き換えモジュールは、
前記第1のCache lineが前記第2のCache lineで置き換えられた後、前記ハイブリッドメモリ内にあるとともに前記アクセスアドレスによって示される記憶媒体のタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するようにさらに構成される、請求項8乃至13のいずれか1項に記載のCache。 - プロセッサ、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によって、前記アクセスされるべきデータを前記プロセッサに送信するステップと
を含む、方法。 - 第1の事前に設定された条件を満たすCache lineが前記Cache内に存在するかどうかを決定する前記ステップは、
前記Cacheによって、前記DRAMタイプの前記メモリに対応するCache lineが前記Cacheの最近最も使用されていない(LRU)リンクリスト内の最初のM個のCache line内に存在するかどうかを決定するステップであって、前記LRUリンクリスト内の前記最初のM個のCache lineが、その過去のアクセス頻度が前記事前に設定された頻度よりも低いCache lineである、ステップ
を含む、請求項15に記載の方法。 - 前記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に記載の方法。 - 第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に記載の方法。 - 前記Cacheによって、前記第2の事前に設定された条件を満たすCache lineが前記Cache内に存在しないとき、前記LRUリンクリストの最前端のCache lineが前記第1のCache lineであると決定するステップ
をさらに含む、請求項15乃至18のいずれか1項に記載の方法。 - 前記Cacheによって、前記アクセスアドレスに対応するメモリのタイプを取得するステップと、
前記Cacheによって、且つ、前記アクセスアドレスに対応する前記メモリのタイプに従って、前記第2のCache lineに対応するメモリのタイプを記録するステップと
をさらに含む、請求項15乃至18のいずれか1項に記載の方法。 - Cache、ハイブリッドメモリおよび前記Cacheおよび前記ハイブリッドメモリに結合されているプロセッサを含むコンピュータシステムであって、前記Cacheは請求項1乃至7のいずれか1項に記載の前記方法を実行するように構成される、コンピュータシステム。
- Cache、ハイブリッドメモリおよび前記Cacheおよび前記ハイブリッドメモリに結合されているプロセッサを含むコンピュータシステムであって、前記Cacheは請求項15乃至20のいずれか1項に記載の前記方法を実行するように構成される、コンピュータシステム。
- プログラムコードとともにコンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項1乃至7のいずれか1項に記載の前記方法を実行するために使用される、コンピュータプログラム。
- プログラムコードとともにコンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項15乃至20のいずれか1項に記載の前記方法を実行するために使用される、コンピュータプログラム。
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)
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)
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 | 浪潮(北京)电子信息产业有限公司 | 一种在计算机异常掉电时的数据保存方法 |
-
2014
- 2014-05-09 CN CN201410193960.4A patent/CN105094686B/zh active Active
-
2015
- 2015-05-07 JP JP2016564221A patent/JP6277572B2/ja active Active
- 2015-05-07 EP EP15789250.6A patent/EP3121703B1/en active Active
- 2015-05-07 KR KR1020167028378A patent/KR102036769B1/ko active IP Right Grant
- 2015-05-07 WO PCT/CN2015/078502 patent/WO2015169245A1/zh active Application Filing
-
2016
- 2016-11-09 US US15/347,776 patent/US10241919B2/en active Active
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 |