JP2018190412A - ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 - Google Patents
ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 Download PDFInfo
- Publication number
- JP2018190412A JP2018190412A JP2018084819A JP2018084819A JP2018190412A JP 2018190412 A JP2018190412 A JP 2018190412A JP 2018084819 A JP2018084819 A JP 2018084819A JP 2018084819 A JP2018084819 A JP 2018084819A JP 2018190412 A JP2018190412 A JP 2018190412A
- Authority
- JP
- Japan
- Prior art keywords
- write group
- memory
- write
- group table
- buffer
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In 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)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Static Random-Access Memory (AREA)
Abstract
【解決手段】メモリモジュール100は、メモリコントローラー130を備え、メモリコントローラーはホストレイヤー132と、不揮発性メモリ110に連結されたメディアレイヤー136と、ホストレイヤー、メディアレイヤー、揮発性メモリに連結されて複数の行を含む第1書き込みグループテーブルを格納するロジックコア134とを含む。ロジックコアは、キャッシュラインアドレス及び書き込みグループ識別子を含むパーシスタント書き込みコマンドと関連するデータを受信し、揮発性メモリにキャッシュラインアドレスのデータを書き込み、書き込みグループ識別子に対応する選択されたバッファにキャッシュラインアドレスを格納し、有効エントリを含む選択されたバッファの位置を識別するために他の書き込みグループ識別子に対応する行をアップデートする。
【選択図】図2A
Description
前記ロジックコアは、更に、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルのバッファを識別する、前記書き込みグループ識別子に対応する前記第0書き込みグループテーブルの行ビットマップを検索し、前記対応する行ビットマップに基づいて、前記書き込みグループ識別子に関連する前記複数のバッファのうちの1つのバッファが利用可能な空間を有するか否かを判断し、前記複数のバッファのうちの1つのバッファが利用可能な空間を有すると判断された場合、前記1つのバッファを前記選択されたバッファとして選択し、前記書き込みグループ識別子に関連するバッファが利用可能な空間を有しないと判断された場合、前記第2書き込みグループテーブルに利用可能なバッファがあるか否かを判断し、前記第2書き込みグループテーブルに利用可能なバッファがあると判断された場合、前記利用可能なバッファを前記書き込みグループ識別子に関連付けるために前記対応する行ビットマップをアップデートし、前記利用可能なバッファを前記選択されたバッファとして選択し得る。
前記パーシスタント書き込みコマンドは、パーシストフラッグ(Persist Flag)を更に含み、前記ロジックコアは、前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索し、前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込み得る。
前記メモリモジュールは、キャッシュメタデータメモリを更に含み、前記ロジックコアは、前記第2書き込みグループテーブルに格納されたキャッシュラインアドレスの各々に対するパーシスト状態を前記キャッシュメタデータメモリに格納し得る。
前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、前記ロジックコアは、前記パーシストフラッグが設定されたか否か判断し、前記パーシストフラッグが設定されたと判断された場合、各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索し、前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記キャッシュラインアドレスに対応するパーシスト状態が設定されたか否かを判断し、前記キャッシュラインアドレスに対応する前記パーシスト状態が設定されたと判断された場合、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込み、前記キャッシュラインアドレスに対応するパーシスト状態が設定されないと判断された場合、前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを防止し得る。
前記メモリモジュールは、不揮発性デュアルインラインメモリモジュール(NVDIMM:Non−Volatile Dual In−line Memory Module)であり得る。
前記パーシスタント書き込みコマンドは、パーシストフラッグ(Persist Flag)を更に含み、前記方法は、前記メモリコントローラーが、前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索するステップと、前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、を更に含み得る。
前記メモリモジュールは、キャッシュメタデータメモリを更に含み、前記方法は、前記メモリコントローラーが、前記第2書き込みグループテーブルに格納されたキャッシュラインアドレスの各々に対するパーシスト状態を前記キャッシュメタデータメモリに格納するステップと、を更に含み得る。
前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、前記方法は、前記メモリコントローラーが、前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索するステップと、前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記キャッシュラインアドレスに対応するパーシスト状態が設定されたか否かを判断するステップと、前記キャッシュラインアドレスに対応する前記パーシスト状態が設定されたと判断された場合、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、前記キャッシュラインアドレスに対応するパーシスト状態が設定されないと判断された場合、前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを防止するステップと、を更に含み得る。
前記メモリモジュールは、不揮発性デュアルインラインメモリモジュール(NVDIMM:Non−Volatile Dual In−line Memory Module)であり得る。
110 揮発性メモリ
112 キャッシュされたデータ
114 キャッシュメタデータ
116 L2読み込み/書き込みキャッシュ
118 L3書き込みバッファ
120 不揮発性メモリ
130 メモリコントローラー
132 ホストレイヤー
134 ロジックコア
134c キャッシュコントローラー
134d 揮発性メモリコントローラー
134h ホストレイヤーに対するインターフェース
134L1 L1プリフェッチ(Prefetch)バッファ
134m メディアレイヤーに対するインターフェース
134md メタデータキャッシュ
134p プリフェッチャー(Prefetcher)
134s SRAM
136 メディアレイヤー
200 ホストプロセッサ
250 バス
304、904 第1書き込みグループテーブル(L1WGT)
306、906 第2書き込みグループテーブル(L2WGT)
402、404 L1WGTの位置
406 テール(Entry[1])に対応する位置
408 テール(Entry[2])に対応する位置
500 レコード動作、Record関数
600 フラッシュ動作
640 ライトバック動作
902 第0書き込みグループテーブル(L0WGT)
908 グローバルビットマップ
Claims (20)
- 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールであって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記ロジックコアは、
前記ホストレイヤーを通じてキャッシュラインアドレス及び書き込みグループ識別子を含むパーシスタント書き込みコマンドを受信し、
前記ホストレイヤーを通じて前記パーシスタント書き込みコマンドに関連するデータを受信し、
前記パーシスタント書き込みコマンドに応答して、
前記揮発性メモリに前記キャッシュラインアドレスのデータを書き込み、
第2書き込みグループテーブルにある複数のバッファのうちの前記書き込みグループ識別子に対応する選択されたバッファに前記キャッシュラインアドレスを格納し、
有効なエントリを含む前記選択されたバッファの位置を識別するために、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの行をアップデートすることを特徴とするメモリモジュール。 - 前記ロジックコアは、対応する書き込みグループに関連する各々の行が前記対応する書き込みグループに関連する前記第1書き込みグループテーブル及び前記第2書き込みグループテーブルの行を識別する行ビットマップを含む複数の行を有する第0書き込みグループテーブルを更に格納することを特徴とする請求項1に記載のメモリモジュール
- 前記ロジックコアは、更に、
前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルのバッファを識別する、前記書き込みグループ識別子に対応する前記第0書き込みグループテーブルの行ビットマップを検索し、
前記対応する行ビットマップに基づいて、前記書き込みグループ識別子に関連する前記複数のバッファのうちの1つのバッファが利用可能な空間を有するか否かを判断し、
前記複数のバッファのうちの1つのバッファが利用可能な空間を有すると判断された場合、前記1つのバッファを前記選択されたバッファとして選択し、
前記書き込みグループ識別子に関連するバッファが利用可能な空間を有しないと判断された場合、
前記第2書き込みグループテーブルに利用可能なバッファがあるか否かを判断し、
前記第2書き込みグループテーブルに利用可能なバッファがあると判断された場合、
前記利用可能なバッファを前記書き込みグループ識別子に関連付けるために前記対応する行ビットマップをアップデートし、
前記利用可能なバッファを前記選択されたバッファとして選択することを特徴とする請求項2に記載のメモリモジュール。 - 前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、
前記ロジックコアは、
前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、
各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索し、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを特徴とする請求項1に記載のメモリモジュール。 - キャッシュメタデータメモリを更に含み、
前記ロジックコアは、前記第2書き込みグループテーブルに格納されたキャッシュラインアドレスの各々に対するパーシスト状態を前記キャッシュメタデータメモリに格納することを特徴とする請求項1に記載のメモリモジュール。 - 前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、
前記ロジックコアは、
前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、
各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索し、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記キャッシュラインアドレスに対応するパーシスト状態が設定されたか否かを判断し、
前記キャッシュラインアドレスに対応する前記パーシスト状態が設定されたと判断された場合、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込み、
前記キャッシュラインアドレスに対応するパーシスト状態が設定されないと判断された場合、前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを防止することを特徴とする請求項5記載のメモリモジュール。 - 前記メモリモジュールは、不揮発性デュアルインラインメモリモジュール(NVDIMM)であることを特徴とする請求項1に記載のメモリモジュール。
- 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールであって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記ロジックコアは、
前記ホストレイヤーを通じて書き込みグループ識別子を含むフラッシュコマンドを受信し、
各々の行が第2書き込みグループテーブルの対応するバッファにある有効なエントリを識別するヘッドポインタ及びテールポインタを含む、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの1つ以上の行を検索し、
各々のバッファが前記第1書き込みグループテーブルの対応する行の前記ヘッドポインタ及び前記テールポインタによって識別される前記有効なエントリに1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索し、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを特徴とするメモリモジュール。 - 前記ロジックコアは、前記第2書き込みグループテーブルの対応するバッファを空けるために、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの行の前記ヘッドポインタ及び前記テールポインタを同じ値にアップデートすることを特徴とする請求項8に記載のメモリモジュール。
- 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールであって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記ロジックコアは、
前記ホストレイヤーを通じてフラッシュコマンドを受信し、
各々の行が第2書き込みグループテーブルの対応するバッファにある有効なエントリを識別するヘッドポインタ及びテールポインタを含む前記第1書き込みグループテーブルの各々の行に対して、前記第2書き込みグループテーブルの対応するバッファを検索し、
前記第2書き込みグループテーブルの対応するバッファの有効なエントリの各々に対して、対応するキャッシュラインアドレスを検索して前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込み、
前記第2書き込みグループテーブルの対応するバッファを空けるために、前記第1書き込みグループテーブルの行の前記ヘッドポインタ及び前記テールポインタを同じ値にアップデートすることを特徴とするメモリモジュール。 - 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールの動作方法であって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記メモリコントローラーが、
キャッシュラインアドレス及び書き込みグループ識別子を含むパーシスタント書き込みコマンドを受信するステップと、
前記パーシスタント書き込みコマンドに関連するデータを受信するステップと、
前記パーシスタント書き込みコマンドに応答して、
前記揮発性メモリに前記キャッシュラインアドレスのデータを書き込むステップと、
第2書き込みグループテーブルにある複数のバッファのうちの前記書き込みグループ識別子に対応する選択されたバッファに前記キャッシュラインアドレスを格納するステップと、
有効なエントリを含む前記選択されたバッファの位置を識別するために、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの行をアップデートするステップと、を有することを特徴とする方法。 - 前記ロジックコアは、対応する書き込みグループに関連する各々の行が前記対応する書き込みグループに関連する前記第1書き込みグループテーブル及び前記第2書き込みグループテーブルの行を識別する行ビットマップを含む複数の行を有する第0書き込みグループテーブルを更に含むことを特徴とする請求項11項に記載の方法。
- 前記メモリコントローラーが、
前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルのバッファを識別する、前記書き込みグループ識別子に対応する前記第0書き込みグループテーブルの行ビットマップを検索するステップと、
前記対応する行ビットマップに基づいて、前記書き込みグループ識別子に関連する前記複数のバッファのうちの1つのバッファが利用可能な空間を有するか否かを判断するステップと、
前記複数のバッファのうちの1つのバッファが利用可能な空間を有すると判断された場合、前記1つのバッファを前記選択されたバッファとして選択するステップと、
前記書き込みグループ識別子に関連するバッファが利用可能な空間を有しないと判断された場合、
前記第2書き込みグループテーブルに利用可能なバッファがあるか否かを判断するステップと、
前記第2書き込みグループテーブルに利用可能なバッファがあると判断された場合、
前記利用可能なバッファを前記書き込みグループ識別子に関連付けるために前記対応する行ビットマップをアップデートするステップと、
前記利用可能なバッファを前記選択されたバッファとして選択するステップと、を更に含むことを特徴とする請求項12に記載の方法。 - 前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、
前記メモリコントローラーが、
前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、
各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索するステップと、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、を更に含むことを特徴とする請求項11に記載の方法。 - 前記メモリモジュールは、キャッシュメタデータメモリを更に含み、
前記メモリコントローラーが、前記第2書き込みグループテーブルに格納されたキャッシュラインアドレスの各々に対するパーシスト状態を前記キャッシュメタデータメモリに格納するステップと、を更に含むことを特徴とする請求項11に記載の方法。 - 前記パーシスタント書き込みコマンドは、パーシストフラッグを更に含み、
前記メモリコントローラーが、
前記パーシストフラッグが設定されたか否かを判断し、前記パーシストフラッグが設定されたと判断された場合、
各々のバッファが1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索するステップと、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記キャッシュラインアドレスに対応するパーシスト状態が設定されたか否かを判断するステップと、
前記キャッシュラインアドレスに対応する前記パーシスト状態が設定されたと判断された場合、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、
前記キャッシュラインアドレスに対応するパーシスト状態が設定されないと判断された場合、前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むことを防止するステップと、を更に含むことを特徴とする請求項15に記載の方法。 - 前記メモリモジュールは、不揮発性デュアルインラインメモリモジュール(NVDIMM)であることを特徴とする請求項11に記載の方法。
- 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールの動作方法であって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記メモリコントローラーが、
書き込みグループ識別子を含むフラッシュコマンドを受信するステップと、
各々の行が第2書き込みグループテーブルの対応するバッファにある有効なエントリを識別するヘッドポインタ及びテールポインタを含む、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの1つ以上の行を検索するステップと、
各々のバッファが前記第1書き込みグループテーブルの対応する行の前記ヘッドポインタ及び前記テールポインタによって識別される前記有効なエントリに1つ以上のキャッシュラインアドレスを格納する、前記書き込みグループ識別子に関連する前記第2書き込みグループテーブルの1つ以上のバッファを検索するステップと、
前記書き込みグループ識別子に関連する前記1つ以上のバッファの1つ以上のキャッシュラインアドレスの各々に対して、前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、を含むことを特徴とする方法。 - 前記メモリコントローラーが、前記第2書き込みグループテーブルの対応するバッファを空けるために、前記書き込みグループ識別子に対応する前記第1書き込みグループテーブルの行の前記ヘッドポインタ及び前記テールポインタを同じ値にアップデートするステップと、を更に含むことを特徴とする請求項18に記載の方法。
- 揮発性メモリ、不揮発性メモリ、及びメモリコントローラーを備えるメモリモジュールの動作方法であって、
前記メモリコントローラーは、ホストレイヤーと、前記不揮発性メモリに連結されたメディアレイヤーと、前記ホストレイヤー、前記メディアレイヤー、及び前記揮発性メモリに連結されて、複数の行を含む第1書き込みグループテーブルを格納し、前記揮発性メモリ及び前記不揮発性メモリを制御するロジックコアと、を含み、
前記メモリコントローラーが、
フラッシュコマンドを受信するステップと、
各々の行が第2書き込みグループテーブルの対応するバッファにある有効なエントリを識別するヘッドポインタ及びテールポインタを含む前記第1書き込みグループテーブルの各々の行に対して、前記第2書き込みグループテーブルの対応するバッファを検索するステップと、
前記第2書き込みグループテーブルの対応するバッファの有効なエントリの各々に対して、対応するキャッシュラインアドレスを検索して前記揮発性メモリの前記キャッシュラインアドレスのデータを前記不揮発性メモリに書き込むステップと、
前記第2書き込みグループテーブルの対応するバッファを空けるために、前記第1書き込みグループテーブルの行の前記ヘッドポインタ及び前記テールポインタを同じ値にアップデートするステップと、を含むことを特徴とする方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762503835P | 2017-05-09 | 2017-05-09 | |
US62/503,835 | 2017-05-09 | ||
US15/669,851 US11175853B2 (en) | 2017-05-09 | 2017-08-04 | Systems and methods for write and flush support in hybrid memory |
US15/669,851 | 2017-08-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018190412A true JP2018190412A (ja) | 2018-11-29 |
JP7115899B2 JP7115899B2 (ja) | 2022-08-09 |
Family
ID=64096702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018084819A Active JP7115899B2 (ja) | 2017-05-09 | 2018-04-26 | ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11175853B2 (ja) |
JP (1) | JP7115899B2 (ja) |
KR (1) | KR102506392B1 (ja) |
CN (1) | CN108874701B (ja) |
TW (1) | TWI771387B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020534598A (ja) * | 2017-09-15 | 2020-11-26 | クアルコム,インコーポレイテッド | 不揮発性メモリのためのPersistent Write |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10216685B1 (en) * | 2017-07-19 | 2019-02-26 | Agiga Tech Inc. | Memory modules with nonvolatile storage and rapid, sustained transfer rates |
US10996888B2 (en) * | 2017-10-31 | 2021-05-04 | Qualcomm Incorporated | Write credits management for non-volatile memory |
KR102495539B1 (ko) * | 2018-07-16 | 2023-02-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10573391B1 (en) * | 2018-12-03 | 2020-02-25 | Micron Technology, Inc. | Enhanced flush transfer efficiency via flush prediction |
US10521383B1 (en) * | 2018-12-17 | 2019-12-31 | Micron Technology, Inc. | Handling operation collisions in a non-volatile memory |
KR20200074464A (ko) * | 2018-12-17 | 2020-06-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
CN111352865B (zh) * | 2018-12-24 | 2022-05-24 | 北京忆芯科技有限公司 | 存储控制器的写缓存 |
US10936496B2 (en) * | 2019-06-07 | 2021-03-02 | Micron Technology, Inc. | Managing collisions in a non-volatile memory system with a coherency checker |
US10846222B1 (en) | 2019-07-01 | 2020-11-24 | Vmware, Inc. | Dirty data tracking in persistent memory systems |
US11074181B2 (en) * | 2019-07-01 | 2021-07-27 | Vmware, Inc. | Dirty data tracking in persistent memory systems |
KR102287774B1 (ko) * | 2019-11-01 | 2021-08-06 | 연세대학교 산학협력단 | 비휘발성 메모리를 이용한 로그 구조 병합 트리 기반의 데이터 베이스의 데이터 처리 방법 |
US11526299B2 (en) * | 2019-12-19 | 2022-12-13 | Micron Technology, Inc. | Elastic buffer for media management of a memory sub-system |
KR20210097010A (ko) * | 2020-01-29 | 2021-08-06 | 삼성전자주식회사 | 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화 |
CN111324306B (zh) * | 2020-02-16 | 2021-04-20 | 西安奥卡云数据科技有限公司 | 一种基于nvdimm的数据分类缓存分配方法 |
KR102591808B1 (ko) * | 2020-04-29 | 2023-10-23 | 한국전자통신연구원 | 컴퓨팅 시스템 및 그 동작 방법 |
CN111753337B (zh) * | 2020-07-02 | 2023-02-21 | 上海电器科学研究所(集团)有限公司 | 一种储能电池管理系统意外断电soc处理方法 |
US20230359553A1 (en) * | 2020-10-23 | 2023-11-09 | Hewlett-Packard Development Company, L.P. | Access to volatile memories |
US11972109B2 (en) | 2021-03-01 | 2024-04-30 | Micron Technology, Inc. | Two-stage buffer operations supporting write commands |
CN113721839B (zh) * | 2021-07-23 | 2024-04-19 | 阿里巴巴达摩院(杭州)科技有限公司 | 用于处理图数据的计算系统和存储分层方法 |
US11687463B2 (en) * | 2021-10-29 | 2023-06-27 | Dell Products L.P. | Management of flushing working set based on barrier in page descriptor ring |
US20230251963A1 (en) * | 2022-02-04 | 2023-08-10 | National Technology & Engineering Solutions Of Sandia, Llc | Architectural support for persistent applications |
US11966590B2 (en) | 2022-02-25 | 2024-04-23 | Samsung Electronics Co., Ltd. | Persistent memory with cache coherent interconnect interface |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
JP2017045379A (ja) * | 2015-08-28 | 2017-03-02 | 株式会社東芝 | メモリ装置およびメモリ制御方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
WO2008055272A2 (en) | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Integrating data from symmetric and asymmetric memory |
US9223642B2 (en) | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US8700840B2 (en) | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US8219776B2 (en) * | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US9003159B2 (en) * | 2009-10-05 | 2015-04-07 | Marvell World Trade Ltd. | Data caching in non-volatile memory |
JP2011154547A (ja) * | 2010-01-27 | 2011-08-11 | Toshiba Corp | メモリ管理装置及びメモリ管理方法 |
CN103534759B (zh) * | 2011-06-24 | 2016-05-25 | 国际商业机器公司 | 用于执行最优写入的线性记录设备及其执行方法 |
EP3451176B1 (en) | 2011-09-30 | 2023-05-24 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy having different operating modes |
GB2510760B (en) | 2011-12-20 | 2020-05-20 | Intel Corp | Dynamic partial power down of memory-side cache in a 2-level memory hierarchy |
KR101625777B1 (ko) * | 2011-12-28 | 2016-05-30 | 인텔 코포레이션 | 휘발성 메모리 및 비휘발성 메모리 간의 코드 및 데이터 저장소들을 분산하기 위한 방법 및 장치 |
US9535827B2 (en) | 2011-12-29 | 2017-01-03 | Intel Corporation | RAM disk using non-volatile random access memory |
US9552176B2 (en) | 2013-04-12 | 2017-01-24 | Microsoft Technology Licensing, Llc | Block storage using a hybrid memory device |
US9129674B2 (en) * | 2013-06-27 | 2015-09-08 | Intel Corporation | Hybrid memory device |
US10191822B2 (en) | 2014-02-20 | 2019-01-29 | Rambus Inc. | High performance persistent memory |
US9916185B2 (en) * | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9880754B2 (en) | 2014-07-09 | 2018-01-30 | Dell Products, Lp | System and method for enabling transportability of a non volatile dual inline memory module |
US10078448B2 (en) | 2015-07-08 | 2018-09-18 | Samsung Electronics Co., Ltd. | Electronic devices and memory management methods thereof |
KR102408613B1 (ko) * | 2015-08-27 | 2022-06-15 | 삼성전자주식회사 | 메모리 모듈의 동작 방법, 및 메모리 모듈을 제어하는 프로세서의 동작 방법, 및 사용자 시스템 |
CN105468539B (zh) * | 2015-11-19 | 2018-10-23 | 上海新储集成电路有限公司 | 一种混合内存写操作的实现方法 |
-
2017
- 2017-08-04 US US15/669,851 patent/US11175853B2/en active Active
-
2018
- 2018-01-15 KR KR1020180004966A patent/KR102506392B1/ko active IP Right Grant
- 2018-03-12 TW TW107108186A patent/TWI771387B/zh active
- 2018-04-25 CN CN201810376289.5A patent/CN108874701B/zh active Active
- 2018-04-26 JP JP2018084819A patent/JP7115899B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110055458A1 (en) * | 2009-09-03 | 2011-03-03 | 248 Solid State, Inc. | Page based management of flash storage |
JP2017045379A (ja) * | 2015-08-28 | 2017-03-02 | 株式会社東芝 | メモリ装置およびメモリ制御方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020534598A (ja) * | 2017-09-15 | 2020-11-26 | クアルコム,インコーポレイテッド | 不揮発性メモリのためのPersistent Write |
JP7123129B2 (ja) | 2017-09-15 | 2022-08-22 | クアルコム,インコーポレイテッド | 不揮発性メモリのためのPersistent Write |
US11650765B2 (en) | 2017-09-15 | 2023-05-16 | Qualcomm Incorporated | Apparatus and method for performing persistent write operations using a persistent write command |
Also Published As
Publication number | Publication date |
---|---|
KR102506392B1 (ko) | 2023-03-07 |
US20180329651A1 (en) | 2018-11-15 |
JP7115899B2 (ja) | 2022-08-09 |
TWI771387B (zh) | 2022-07-21 |
US11175853B2 (en) | 2021-11-16 |
KR20180123625A (ko) | 2018-11-19 |
CN108874701B (zh) | 2023-04-28 |
CN108874701A (zh) | 2018-11-23 |
TW201903612A (zh) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7115899B2 (ja) | ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 | |
US11055230B2 (en) | Logical to physical mapping | |
US7594067B2 (en) | Enhanced data access in a storage device | |
US9043531B2 (en) | High speed input/output performance in solid state devices | |
CN107818052B (zh) | 内存访问方法及装置 | |
CN109952565B (zh) | 内存访问技术 | |
JPS5845611A (ja) | 周辺メモリ・システム | |
US11232037B2 (en) | Using a first-in-first-out (FIFO) wraparound address lookup table (ALT) to manage cached data | |
JP2022050016A (ja) | メモリシステム | |
US9870826B2 (en) | Memory apparatus and data access method thereof by using multiple memories for lifetime extension | |
US11126573B1 (en) | Systems and methods for managing variable size load units | |
US8924652B2 (en) | Simultaneous eviction and cleaning operations in a cache | |
US11556276B2 (en) | Memory system and operating method thereof | |
US9146858B2 (en) | Control device, storage device, and storage control method | |
CN113254363A (zh) | 具有部分逻辑到物理地址转换表的非易失性存储控制器 | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
EP4116829A1 (en) | Systems and methods for managing variable size load units | |
CN110045921B (zh) | 用于数据处理的装置和访问存储电路的方法 | |
US20200278925A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP2024029438A (ja) | メモリデバイス及びメモリシステム | |
TW202223900A (zh) | 快閃記憶體系統及其快閃記憶體裝置 | |
JP6027479B2 (ja) | 半導体メモリ装置 | |
JP2022143762A (ja) | メモリシステム、制御方法およびメモリコントローラ | |
EP3948550A1 (en) | An apparatus, method and computer program for managing memory page updates within non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220523 |
|
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: 20220712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220728 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7115899 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |