JP2021501941A - メモリブロックリクレーム方法およびメモリブロックリクレーム装置 - Google Patents

メモリブロックリクレーム方法およびメモリブロックリクレーム装置 Download PDF

Info

Publication number
JP2021501941A
JP2021501941A JP2020524281A JP2020524281A JP2021501941A JP 2021501941 A JP2021501941 A JP 2021501941A JP 2020524281 A JP2020524281 A JP 2020524281A JP 2020524281 A JP2020524281 A JP 2020524281A JP 2021501941 A JP2021501941 A JP 2021501941A
Authority
JP
Japan
Prior art keywords
memory
controller
memory block
information
command
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
Application number
JP2020524281A
Other languages
English (en)
Other versions
JP7279889B2 (ja
Inventor
ロンノス、フロリアン
ヤン、ウェイ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2021501941A publication Critical patent/JP2021501941A/ja
Application granted granted Critical
Publication of JP7279889B2 publication Critical patent/JP7279889B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

メモリブロックリクレーム方法およびメモリブロックリクレーム装置が提供される。方法は、媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階(S201)と、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階(S202)とを備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。

Description

本願は、コンピュータ技術分野、特に、メモリブロックリクレーム方法およびメモリブロックリクレーム装置に関する。
不揮発性デュアルインラインメモリモジュール(non−volatile dual in−line memory module、NVDIMM)は、コンピュータのランダムアクセスメモリ(random access memory、RAM)である。NVDIMMは、複数の不揮発性メモリ(non−volatile memory、NVM)チップを含み得る。NVDIMMはさらに、システムの電源が完全にオフになっている場合でも、完全なメモリデータを格納できる。NVDIMM上のNVMチップは、具体的には、不揮発性ランダムアクセスメモリ(non−volatile random access memory、NVRAM)であってよいことが理解できる。NVDIMM上のNVMは、相変化メモリ(phase change memory、PCM)、抵抗変化型ランダムアクセスメモリ(resistive random access memory、RRAM(登録商標))、磁気ランダムアクセスメモリ(magnetic random access memory、MRAM)、スピントランスファトルク磁気ランダムアクセスメモリ(spin−transfer torque MRAM、STT MRAM)等を含み得る。NVDIMMは、NVDIMM−Pプロトコルを用いることによりメモリコントローラと通信する。NVDIMM−Pプロトコルは、ダブルデータレート(double DATA rate、DDR)プロトコルとの互換性があるバスアクセスプロトコルである。
しかしながら、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)と比較すると、NVMは、疲労抵抗が低く、書き込み回数が制限されている。従って、NVMチップにおけるいくつかのメモリブロックが最大書き込み回数に達した場合、NVMチップは利用できなくなり、NVDIMM全体の耐用期間に影響が及ぶ。NVMチップにおける異なるメモリブロックの書き込み回数が不均衡になるのを回避し、ウェアレベリング効果を高め、NVDIMMの耐用期間を延ばすために、NVDIMMに対してメモリ管理を実行する必要がある。
本願の実施形態は、メモリブロックリクレームの速度を改善してウェアレベリング効果を高めるために、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
第1の態様によれば、本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。
媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。
可能な実装において、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階は、
媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
媒体コントローラが、メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する。
媒体コントローラがメモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除できるので、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリングの効果を高めることができ、NVDIMMの性能を改善することができ、NVDIMMの耐用期間を延ばすことができる。このようにして、メモリモジュールは、NVDIMMがメモリとして用いられる場合に管理される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、方法は、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む段階
をさらに備える。
この実装において、アンマッピングコマンドは、消去モード指示情報をさらに含む。この場合、メモリブロック内のデータが機微データであるときは、媒体コントローラは、予め定められたパターンを有する機微データを上書きすることにより機微データを保護してNVDIMMのセキュリティを改善するよう命令され得る。
可能な実装において、方法は、
媒体コントローラが、メモリコントローラにより送信される読み出しコマンドを受信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
媒体コントローラがエラー応答情報をメモリコントローラへ送信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と、
をさらに備える。
第2の態様によれば、本願の実施形態は、メモリブロックリクレーム方法をさらに提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
メモリコントローラが、プロセッサにより送信されるトリム(TRIM)命令を受信する段階であって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する段階と
を備える。
アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられ、リクレームされたメモリブロックは、利用可能なメモリブロックである。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、アンマッピングコマンドはさらに、予め定められたパターンをメモリブロックに書き込むよう媒体コントローラに命令するために用いられる。
可能な実装において、方法は、
メモリコントローラが、読み出しコマンドを媒体コントローラへ送信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、送信する段階と、
メモリコントローラが、媒体コントローラにより送信されるエラー応答情報を受信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える。
第3の態様によれば、本願の実施形態は、第1の態様におけるメモリブロックリクレーム方法を実行するように構成されたメモリをさらに提供する。メモリは、第1の態様におけるものと同じ技術的特徴および技術的効果を有する。本願においては、詳細を改めて説明しない。
本願の実施形態の第3の態様は、メモリを提供する。
メモリは、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、媒体コントローラは、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラと通信し、不揮発性メモリは、複数のメモリブロックを含み、媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意的な実装において、メモリコントローラはさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
任意的な実装において、媒体コントローラはさらに、
メモリコントローラにより送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
第4の態様によれば、本願の実施形態は、コンピュータシステムをさらに提供する。
コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、メモリコントローラは、
プロセッサにより送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラへ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられる、送信することと
を行うように構成される。
媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
可能な実装において、メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
メモリコントローラはさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラへ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
媒体コントローラはさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
メモリコントローラはさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
本願の実施形態または従来技術における技術的解決手段をより明確に説明すべく、実施形態を説明するために必要な添付図面を以下で簡潔に説明する。以下の説明における添付図面が本願のいくつかの実施形態を示しているに過ぎないことは明らかである。
本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。
本願の実施形態1によるメモリブロックリクレーム方法の概略フローチャートである。
本願の実施形態2によるメモリブロックリクレーム方法のシグナリングフローチャートである。
本願の実施形態によるデータ読み出し方法のフローチャートである。
当業者が本願における技術的解決手段をより良く理解できるよう、以下では、本願の実施形態における添付図面を参照して、本願の実施形態における技術的解決手段を明確に説明する。説明される実施形態が本願の実施形態のいくつかに過ぎず、全てではないことは明らかである。
図1は、本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。図1に示されるように、コンピュータシステム100は少なくとも、プロセッサ102、メモリコントローラ106およびNVDIMM108を含み得る。通常、メモリコントローラ106は、プロセッサ102に統合され得る。図1に示される構成要素に加え、コンピュータシステム100は、通信インタフェースと、外部記憶デバイスとして用いられるディスクなどの別の構成要素とをさらに含み得ることに留意すべきである。このことは、本明細書において限定されない。
プロセッサ(processor)102は、コンピュータシステム100のコンピューティングコア兼制御コア(control unit)である。プロセッサ102は、1または複数のプロセッサコア(core)104を含み得る。プロセッサ102は、非常に大規模な集積回路であってよい。オペレーティングシステムおよび別のソフトウェアプログラムがプロセッサ102にインストールされることにより、プロセッサ102は、NVDIMM108、キャッシュおよびディスクにアクセスできる。本願の本実施形態において、プロセッサ102におけるコア104は、例えば中央処理装置(central processing unit、CPU)であってよく、または別の特定用途向け集積回路(application specific integrated circuit、ASIC)であってよいことが理解できる。
メモリコントローラ(memory controller)106は、コンピュータシステム100内のNVDIMM108を制御し、NVDIMM108からコア104へのデータ伝送を管理および計画するように構成されたバス回路コントローラである。データは、メモリコントローラ106を用いることにより、NVDIMM108とコア104との間でやり取りされ得る。メモリコントローラ106は、別個のチップであってよく、システムバスを用いることによりコア104に接続されている。当業者であれば、メモリコントローラ106は、代替的に(図1に示されるように)プロセッサ102に統合され得るか、またはノースブリッジに組み込まれ得ることを認識し得る。メモリコントローラ106の具体的な位置は、本願の本実施形態において限定されない。実際の適用では、メモリコントローラ106は、通信インタフェース1062および制御回路1064を含んでよく、メモリコントローラ106は、通信インタフェース1062を通じて、プロセッサ102およびNVDIMM108と通信し得る。メモリコントローラ106は、制御回路1064を用いることにより必要なロジックを制御して、データをNVDIMM108に書き込み得るか、または、データをNVDIMM108から読み出し得る。
NVDIMM108は、コンピュータシステム100のランダムアクセスメモリ(RAM)であり、コンピュータシステム100のメモリまたは記憶デバイスとして用いられ得る。NVDIMM108は、媒体コントローラ110、少なくとも1つのNVM112および1または複数のキャッシュ114を含み得る。媒体コントローラ110は、制御能力を有する論理回路を含み得る。NVM112は、オペレーティングシステムにおいて現在動作中の様々なソフトウェア、入力データおよび出力データ、外部記憶デバイスとやり取りされる情報等を格納するように構成される。NVM112は、チップの形態で存在し得る。例えば、NVM112は、相変化メモリ(phase change memory、PCM)、抵抗変化型ランダムアクセスメモリ(resistive random access memory、RRAM(登録商標))、磁気ランダムアクセスメモリ(magnetic random access memory、MRAM)またはスピントランスファトルク磁気ランダムアクセスメモリ(spin−transfer torque MRAM、STT MRAM)など、メモリとして用いられ得る不揮発性メモリを含み得る。
メモリコントローラ106は、バス105を用いることにより、NVDIMM108に接続されている。メモリコントローラ106は、NVDIMM−Pプロトコルに準拠してNVDIMM108と通信する。NVDIMM−Pプロトコルは、ダブルデータレート(double DATA rate、DDR)プロトコルとの互換性がある非同期プロトコルである。媒体コントローラ110は、メモリコントローラ106のメモリアクセスコマンドに基づいて、NVM112に格納されたデータにアクセスし得る。メモリコントローラ106により送信されるメモリアクセスコマンドは、読み出しコマンドまたは書き込みコマンドであってよいことが理解できる。媒体コントローラ110は、メモリコントローラ106により送信される読み出しコマンドに基づき、NVM112からデータを読み出して当該データを読み出しバッファに格納し、当該読み出しバッファから当該データを読み出すようメモリコントローラ106に命令するために非同期信号をメモリコントローラ106へ送信し得るか、または、媒体コントローラ110は、メモリコントローラ106により送信される書き込みコマンドに基づき、まず、データを書き込みバッファに格納し、書き込みバッファ内の当該データをNVM112またはキャッシュ114に書き込み得る。
本願の本実施形態において、バス105は少なくとも、データバスおよびコマンド/アドレスバスを含み得る。データバスは、データおよびメタデータを伝送するように構成される。コマンド/アドレスバスは、読み出しコマンドまたは書き込みコマンドなどのメモリアクセスコマンドを伝送するように構成される。キャッシュ114は、媒体コントローラ110によりNVM112から読み出されるデータをキャッシュするように構成される。
NVDIMMの耐用期間を延ばしてNVDIMMの性能を改善するために、媒体コントローラは、例えば、ウェアレベリング(Wear Leveling)、不良ブロック管理およびキャッシュとNVMとの間のデータ移行といった異なる媒体管理オペレーションを実行する必要がある。ウェアレベリングは、メモリブロックの消去/書き込みの回数が同じになるのを保証することによりNVDIMMの耐用期間を延ばすために、データがNVDIMMの各メモリブロックへ可能な限り均等に分散されることを意味する。媒体コントローラは、新しいメモリブロックをデータに割り当てる場合、摩耗の回数がより少ないメモリブロックをメモリアイドルリストから優先的に選択する。不良ブロックの管理は、メモリブロックが不良ブロックであると自らが判断した後に、現在の不良ブロック内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択されることを意味する。キャッシュとNVMとの間のデータ移行は、頻繁にアクセスされるデータをキャッシュに格納し、アクセスの頻度が低いデータをNVMへ移行することにより、読み出し要求/書き込み要求の処理速度を改善するというものである。しかしながら、キャッシュにおけるデータがNVMに書き込まれた場合、キャッシュ内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択される必要がある。メモリアイドルリストをタイムリーに更新することが、媒体コントローラの媒体管理オペレーションの管理効果を決定付け、さらに、NVDIMMの耐用期間および性能に影響を及ぼすことが、前述の分析から認識できる。
前述の媒体管理オペレーションの効率を改善するために、本願の実施形態は、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
以下では、特定の実施形態を参照して、本願の実施形態において提供されるメモリブロックリクレーム方法およびメモリブロックリクレーム装置を詳細に説明する。以下の特定の実施形態において、同じまたは同様の概念または処理は、いくつかの実施形態では詳細に説明されないことがある。
本願の実施形態の一態様は、メモリブロックリクレーム方法を提供する。図2は、本願の実施形態1によるメモリブロックリクレーム方法の概略フローチャートである。本実施形態において、媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信し、アンマッピングコマンドに基づいてメモリブロックをリクレームし、メモリブロックを利用可能なメモリブロックへ変換することにより、媒体コントローラの媒体管理オペレーションの管理効果を高め、さらに、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。図2に示されるように、本実施形態において提供されるメモリブロックリクレーム方法は、図1に示されるコンピュータシステムに適用される。例えば、メモリブロックリクレーム方法は、図1における媒体コントローラにより実行され得る。コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備える。メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信する。不揮発性メモリは、複数のメモリブロックを有する。メモリブロックリクレーム方法は、以下の段階を備える。
S201.メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、媒体コントローラは、メモリコントローラにより送信されるアクセス要求を受信した場合、通常、対応するメモリ物理アドレスをアクセス要求におけるメモリ論理アドレスに割り当て、メモリ論理アドレスとメモリ物理アドレスとの間のマッピング関係を格納する。メモリコントローラがメモリ論理アドレスを読み出したか、または書き込んだ場合、媒体コントローラは、マッピング関係に基づいて、この対応するメモリ物理アドレスに対応するデータを読み出し得るか、または書き込み得る。媒体コントローラは、メモリ物理アドレスをメモリ論理アドレスに割り当てた場合、メモリアイドルリストからメモリブロックを選択する。NVMチップ内のメモリブロック間のウェアレベリング効果を保証するために、未使用のメモリブロックが利用可能なメモリブロックへ時間内に変換されるのを保証することにより、いくつかのメモリブロックが媒体管理に関与できず、メモリリソースが浪費され、NVDIMMの耐用期間が短縮されるケースを回避すべきである。前述の目的を達成するために、メモリコントローラは、アンマッピングコマンド(unmap command)を媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を保持する。アンマッピングコマンドは、アンマッピングコマンドに基づいてメモリブロックをリクレームするよう媒体コントローラに命令するために用いられる。媒体コントローラは、アンマッピングコマンドを受信した場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、リクレーム対象メモリブロックのメモリ物理アドレス情報を決定し得る。
S202.媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックである。
例えば、媒体コントローラは、アンマッピングコマンドにおけるメモリ論理アドレス情報に基づいて、指定のメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックであり、媒体コントローラは、ウェアレベリングなどの媒体管理を実行する場合、メモリブロックを管理し得る。あるオブジェクトを解放する場合、既存のメモリコントローラは通常、当該オブジェクトに対応するデータにより占有されているメモリブロックのアンマッピングコマンドを媒体コントローラへ送信しない。本実施形態において、アンマッピングコマンドが媒体コントローラへ送信され、指定のメモリブロックがリクレームされることにより、当該メモリブロックが、利用可能なメモリブロックへ変換され、未使用のメモリブロックを、可能な限り速やかに解放できる。これにより、過剰な割り当てによって生じる比較的高いオーバヘッドが回避される。このようにして、未使用のメモリブロックが媒体管理オペレーションにおいて可能な限り早く管理され得ることにより、NVDIMMの記憶性能が改善し、NVDIMMの耐用期間が延びる。
本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。
例えば、図2に示される実施形態に基づいて、本願の実施形態はさらに、メモリブロックリクレーム方法を提供する。図3は、本願の実施形態2によるメモリブロックリクレーム方法のシグナリングフローチャートである。本実施形態では、媒体コントローラがアンマッピングコマンドに基づいてメモリブロックをリクレームする特定の処理を詳細に説明する。図3に示されるように、メモリブロックリクレーム方法は、以下の段階を備える。
S301.媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、本実施形態におけるS301は、図2に示される実施形態におけるS201と同じである。本願においては、詳細を改めて説明しない。
任意選択で、図2および図3に示される実施形態において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
例えば、媒体コントローラは、メモリブロックをリクレームする場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックの開始アドレスと、リクレーム対象メモリブロックの全長とに基づいて、メモリ物理アドレス内のどのメモリブロックをリクレームするかを決定する。例えば、リクレーム対象メモリブロックが連続するメモリブロック1、2および3を含む場合、開始アドレスは、例えば、メモリブロック1の第1のアドレスであってよく、長さ情報は3であってよい。任意選択で、メモリコントローラおよび媒体コントローラは、メモリブロックの粒度と一致する。任意選択で、アンマッピングコマンドは、メモリブロックの粒度サイズ情報をさらに含み得る。
任意選択で、前述の実施形態に基づいて、S301の前に、メモリブロックリクレーム方法は、以下の段階をさらに備える。
S300.メモリコントローラが、プロセッサにより送信されるトリム命令を受信する。トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、プロセッサ(例えば、図1における任意のプロセッサコア104)は、トリム命令(TRIM instruction)をメモリコントローラへ送信し、メモリコントローラは、トリム命令を受信した後に、アンマッピングコマンドを媒体コントローラへ送信する。トリム命令は、どのメモリブロックがもはや用いられておらず消去され得るかをメモリに通知するためにオペレーティングシステムにより用いられるコマンドである。
具体的には、プロセッサにおいて動作しているオペレーティングシステムがあるオブジェクトを削除した場合、媒体コントローラは、当該オブジェクトが削除されたことを認識できず、論理アドレスと物理アドレスとの間のマッピング関係を依然として格納する。従って、本願の本実施形態において、オブジェクトファイルが削除された場合、プロセッサは、トリム命令をメモリコントローラへ送信し得る。トリム命令は、メモリブロックのアドレスを保持し、トリム命令は、メモリブロックのデータに対応するオブジェクトが削除されたことをメモリコントローラに通知するために用いられ、メモリブロックのデータは、削除されてよく、メモリブロックは、リクレームされてよい。
実際の適用では、あるオブジェクトと当該オブジェクトに対応するデータとが解放されているケース、予め設定されたサイズを超えるサイズのメモリブロックが解放されているケース、アプリケーションが終了しているケース、メモリの読み出し要求/書き込み要求の回数が予め設定された回数未満であるケース、または、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、とプロセッサが判断しているケースのいずれか1つをプロセッサが検出した場合、プロセッサは、トリム命令をメモリコントローラへ送信する。
例えば、プロセッサは、あるオブジェクトが解放されていることを検出した場合、当該オブジェクトによりリクレーム対象メモリブロックとして占有されているメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサコアとメモリコントローラとの間のシグナリングの相互作用を低減するために、プロセッサは、予め設定されたサイズを超えるサイズのメモリブロックが解放されていることを検出した場合、リクレーム対象メモリブロックとしてメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサは、あるアプリケーションが終了していることを検出した場合、当該アプリケーションによりリクレーム対象メモリブロックとして占有されているメモリブロックを用いることにより、トリム命令をメモリコントローラへ送信する。任意選択で、比較的少数の読み出し要求/書き込み要求があることを検出した場合、すなわち、メモリがアイドルである場合、プロセッサは、トリム命令をメモリコントローラへ送信することにより、メモリがビジーである場合にメモリの解放を回避し、これにより、メモリの読み出し性能/書き込み性能を改善する。任意選択で、プロセッサは、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、と判断した場合、代替的に、トリム命令をメモリコントローラへ送信し得る。
実際の適用では、第4世代ダブルデータレート(fourth−generation double data rate、DDR4)同期インタフェースまたは第5世代ダブルデータレート(fifth−generation double DATA rate、DDR5)同期インタフェースが、媒体コントローラとメモリコントローラとの間で用いられ得る。異なるDDRインタフェースが用いられる場合、メモリコントローラにより媒体コントローラへ送信されるアンマッピングコマンドのフォーマットが異なる。
第1の可能な実装において、DDR4インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンド(unmap command)のフォーマットが以下の表1に示される。
Figure 2021501941
例えば、アンマッピングコマンドの長さが制限されていることに起因して、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。例えば、メモリコントローラは、第1のアンマッピングコマンドを第1のクロックビートで送信した後に、第1のアドレス拡張コマンドを第2のクロックビートで送信し、次に、第2のアンマッピングコマンドおよび第2のアドレス拡張コマンドを後続のクロックビートで順に送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、2つのクロックビートで送信される。アドレス拡張コマンドのフォーマットも、表1に示される。1つのクロックビートが1つのクロック変更端であり、変更端は、立ち上がり端または立ち下がり端であってよい。
例えば、表1に示されるように、アンマッピングコマンドおよびアドレス拡張コマンドにおいて、H(high)はバイナリデータ1を表し、L(low)はバイナリデータ0を表す。CKE0(Clock Enable)ビットは、クロックイネーブル信号を示すために用いられ、前の(前のサイクルの)ビットは、前のクロックが有効であるかどうかを示すために用いられ、現在の(現在のサイクルの)ビットは、現在のクロックが有効であるかどうかを示すために用いられる。表1に示されるように、前のビットおよび現在のビットの両方がHである場合、クロックイネーブル信号は有効であり、媒体コントローラは、クロックイネーブル信号が有効であるときは、アンマッピングコマンドを受信する。CS(Chip Select)はチップ選択信号である。メモリチャネル上には複数のメモリモジュールが存在し、メモリコントローラは、チップ選択信号を用いることにより、アンマッピングコマンドおよびアドレス拡張コマンドを受信するメモリモジュールを決定し得る。あるメモリモジュールにより受信されたチップ選択信号がLである場合、これは、アンマッピングコマンドおよびアドレス拡張コマンドを受信するよう当該メモリモジュールが選択されていることを示す。ADDR[39:2]フィールドは、リクレーム対象メモリブロックの開始アドレスを格納するために用いられる。言い換えると、ADDR[39:2]は、リクレーム対象メモリブロックの開始アドレス、すなわち、第1のリクレーム対象メモリブロックの開始アドレスである。LENGTH[4:0]は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。LENGTH[4:0]を例として用いると、LENGTH[4:0]フィールドの最大値は32である。この場合、1つのアンマッピングコマンドが、メモリブロックをリクレーム32するよう命令するために用いられ得る。OPCODE[0]フィールドは、消去モード情報を示すために用いられる。
第2の可能な実装において、DDR5インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンドのフォーマットは、以下の表2において示される。
Figure 2021501941
第1の可能な実装と同様に、アンマッピングコマンドの長さが制限されていることに起因して、アンマッピングコマンドは、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。第1の可能な実装とは異なり、この実装では、アンマッピングコマンドおよびアドレス拡張コマンドの両方が、送信において2つのクロックサイクルを費やす必要があり、各クロックサイクルは、1つのクロック立ち上がり端および1つのクロック立ち下がり端を含む。本実施形態において、メモリコントローラは、第1のクロックサイクルの2つのクロック端でアンマッピングコマンドの第1の部分を送信した後に、第2のクロックサイクルの2つのクロック端でアンマッピングコマンドの第2の部分を送信し、次に、第3のクロックサイクルの2つのクロック端でアドレス拡張コマンドの第1の部分を送信し、次に、第4のクロックサイクルの2つのクロック端でアドレス拡張コマンドの第2の部分を送信する。メモリコントローラは、他のアンマッピングコマンドおよびアドレス拡張コマンドを後続のクロックビートで順に送信する。アドレス拡張コマンドのフォーマットも、表2に示される。
アンマッピングコマンドおよびアドレス拡張コマンドにおいて、H(high)はバイナリデータ1を表し、L(low)はバイナリデータ0を表す。CS(Chip Select)はチップ選択信号である。CSが第1のクロックサイクルにおいてLであることが検出された場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドが始まっていることを示す。第2のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドについては、CSがHであることが検出された場合、これは、アンマッピングコマンドの第2の部分またはアドレス拡張コマンドが受信されていることを示す。しかしながら、CSが第2のクロックにおいてLであることが依然として検出されている場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドにエラーが発生していることを示す。この場合、これら2つのクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得るか、または、第1のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得る。ADDR[39:1]フィールドは、リクレーム対象メモリブロックの開始アドレスを示すために用いられる。言い換えると、ADDR[39:1]フィールドは、第1のリクレーム対象メモリブロックの開始アドレスを示すために用いられる。LENGTH[6:0]は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。LENGTH[6:0]を例として用いると、LENGTH[6:0]フィールドの最大値は128である。この場合、1つのアンマッピングコマンドが、128個のメモリブロックをリクレームするよう命令するために用いられ得る。OPCODE[0]は、消去モード情報を示すために用いられるフィールドである。
S302.媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。具体的には、媒体コントローラは、アンマッピングコマンドを受信した後に、アンマッピングコマンドにおける第1のメモリ論理アドレス情報に基づいて、第1のメモリ論理アドレスに対応する第1のメモリ物理アドレスを決定し得る。この場合、媒体コントローラが、第1のメモリ論理アドレスと第1のメモリ物理アドレスとの間のマッピング関係を削除し得ることにより、第1のメモリ物理アドレスの対応するメモリ論理アドレスがなくなり、媒体コントローラは、新しいメモリ論理アドレスを第1のメモリ物理アドレスに割り当て得る。第1のメモリ論理アドレスと第1のメモリ物理アドレスとの間のマッピング関係が削除されていない場合、メモリコントローラが第1のメモリ論理アドレスに次回アクセスするときにのみ、媒体コントローラは、第1のメモリ物理アドレスにアクセスできる。しかしながら、これら2回のアクセスの間の間隔は、非常に長くなり得る。これにより、第1のメモリ物理アドレスの消去/書き込みの回数が確実に、NVM内の別のメモリブロックの消去/書き込みの回数未満になる。このことは、NVDMMの耐用期間に影響を及ぼし得る。
S303.媒体コントローラがメモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、対応するメモリ論理アドレスがないメモリ物理アドレスが、利用可能なメモリブロックであり、媒体コントローラは、メモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、メモリアイドルリストに示されるメモリブロックは、利用可能なメモリブロックである。言い換えると、あるメモリブロックが新しいアクセス要求に割り当てられる必要がある場合、媒体コントローラは、メモリアイドルリストに基づいて、当該メモリブロックを割り当て得る。実際の適用では、メモリアイドルリスト内のメモリブロックが、メモリブロックの書き込み回数の昇順で配置され得る。メモリブロックを割り当てる処理において、媒体コントローラは、消去/書き込みの回数が少ないメモリブロックを優先的に割り当て得る。当然ながら、実際の適用では、媒体コントローラは、代替的に、メモリブロックをランダムに割り当て得る。このことは、本明細書において限定されない。本願の本実施形態によるNVDIMMを備えるコンピュータシステムにおいて、メモリコントローラは、NVDIMM−Pプロトコルに従ってアンマッピングコマンドを媒体コントローラへ送信することで、メモリブロックをリクレームするよう媒体コントローラに命令し得る。媒体コントローラは、アンマッピングコマンドを受信した後に、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係をアンマッピングコマンドにおいて保持されるメモリ論理アドレス情報に基づいて削除し、対応するメモリブロックをリクレームし得る。
メモリコントローラがアンマッピングコマンドを本願の本実施形態による媒体コントローラへ送信するこの方式で、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除でき、これにより、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリング効果を高めることができ、NVDIMMの性能を延ばすことができ、NVDIMMの耐用期間を延ばすことができる。このようにして、メモリモジュールは、NVDIMMがメモリとして用いられる場合に管理される。
当業者であれば、NVMチップがバイト単位で書き込みをサポートするので、メモリの更新中、メモリブロック内のデータが直接書き換えられ得ることで、未使用のメモリブロックに対して消去およびガベージコレクションを予め実行する必要がないことを把握し得る。この場合、実際の適用では、処理速度を改善するために、メモリブロックが解放された場合、リクレームされたメモリブロックが消去されないことがある。しかしながら、機微データの場合には、未消去データの漏洩リスクが生じ得る。従って、本願の本実施形態では、表1および表2に示されるように、アンマッピングコマンドは、OPCODE[0]フィールドをさらに含み得る。OPCODE[0]フィールドは、消去モード情報を示すために用いられる。具体的には、媒体コントローラは、アンマッピングコマンドにおけるOPCODE[0]フィールドの消去モード指示情報に基づいて、データブロックが消去される必要があるかどうかを判断し得る。例えば、OPCODE[0]の値が0である場合、これは、メモリブロック内のデータ情報が消去される必要がないことを示す。OPCODE[0]の値が1である場合、これは、メモリブロック内のデータ情報が消去される必要があることを示す。
具体的には、図3に示されるように、S302の後に、メモリブロックリクレーム方法は、以下の段階をさらに備え得る。
S304.消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む。例えば、本願の本実施形態において、OPCODE[0]の値が1である場合、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。メモリブロックがリクレームされた後に、媒体コントローラは、予め定められたパターン(pre−defined pattern)をリクレームされたメモリブロックに書き込んで、メモリブロック内の元のデータを上書きし、メモリブロック内の機微データの漏洩を防止し得る。実際の適用では、予め定められたパターンは、予め設定されたレジスタに格納され得る。予め定められたパターンは、全て0、全て1、または任意の他の予め定められたデータであってよい。このことは、本明細書において限定されない。実際の適用では、S304は、S303の前に実行され得るか、もしくはS303の後に実行され得るか、またはS303と同時に実行され得る。このことは、本願において限定されない。
本願の本実施形態によるメモリブロックリクレーム方法において、アンマッピングコマンドは、消去モード指示情報をさらに含む。これにより、メモリブロック内のデータが機微データである場合、媒体コントローラは、予め定められたパターンを用いることにより機微データを上書きすることにより機微データを保護してNVDIMMのセキュリティを改善するよう命令され得る
さらに、実際の適用では、複数のプロセッサまたは複数のプロセッサコアが同じメモリブロックにアクセスするケースがあり得る。この場合、メモリブロックがリクレームされた後に、別のプロセッサがメモリブロックにアクセスするケースがあり得る。以下では、メモリコントローラと媒体コントローラとの間の、メモリブロックがリクレームされた後のデータ読み出し処理を詳細に説明する。図4は、本願の実施形態によるデータ読み出し方法のフローチャートである。図4に示されるように、当該方法は、以下の段階を備え得る。
S402.メモリコントローラが、プロセッサにより送信されるメモリアクセス要求を受信する。メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む。本願の本実施形態において、読み出し要求におけるメモリ論理アドレス情報は、前述の実施形態において説明された、トリムコマンドにおけるメモリ論理アドレス情報と同じである。
S404.メモリコントローラが読み出しコマンドを媒体コントローラへ送信する。具体的には、メモリコントローラは、受信したメモリアクセス要求に基づいて、読み出しコマンドを媒体コントローラへ送信する。読み出しコマンドは、メモリブロック内のデータを読み出すために用いられ、メモリアクセス要求は、アクセス対象メモリブロックのメモリ論理アドレスを保持する。
S406.媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する。媒体コントローラは、読み出しコマンドを受信した後に、読み出しコマンドにおけるメモリ論理アドレスに対応するメモリ物理アドレスについて問い合わせる。読み出しコマンドにおけるメモリ論理アドレス情報はトリムコマンドにおけるメモリ論理アドレス情報と同じなので、媒体コントローラは、トリム命令に基づいて、メモリ論理アドレスに対応するメモリブロックをリクレームする。従って、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できない。
S408.媒体コントローラがエラー応答情報をメモリコントローラへ送信する。エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる。上述のように、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できないので、対応する物理アドレスから対応するデータを取得できず、データをメモリコントローラへ戻すことができない。従って、この段階において、媒体コントローラは、エラー応答情報をメモリコントローラへ送信して、読み出しコマンドの実行が失敗していることをメモリコントローラに通知し得る。
S410.メモリコントローラが、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信する。例えば、メモリコントローラは、媒体コントローラにより送信されるエラー応答情報を受信した後に、さらに、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信し得る。読み出し失敗情報は、読み出しコマンドの実行が失敗していることをプロセッサに通知するために用いられる。
任意選択で、メモリコントローラは、エラー応答情報を受信した場合、エラー応答情報内で保持されるエラータイプ指示情報に基づいて、エラータイプを決定する必要がある。具体的には、メモリコントローラは、エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係に基づいて、受信したエラー応答情報におけるエラータイプを決定し得る。エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係は、モードレジスタに格納され得る。
任意選択で、本願の本実施形態において、エラー応答情報は、エラータイプ指示情報およびエラー指示情報(Poison)を含む。エラー指示情報は、読み出しコマンドの実行が失敗していることを示すために用いられ、エラータイプ指示情報は、失敗タイプを示すために用いられる。失敗タイプは、エラーデータと、訂正不可能なチェックコードエラーと、媒体エラーと、メモリチャネルエラーとを含む。
例えば、エラー応答情報は、ポイズンビットを含む。ポイズンビットの値が0である場合、これは、読み出しコマンドが正常に実行されていることを示す。ポイズンビットの値が1である場合、これは、読み出しコマンドの実行が失敗していることを示す。エラー応答情報は、読み出しコマンド実行失敗のタイプを示すために用いられるエラータイプ指示情報をさらに含む。例えば、メモリコントローラは、エラー応答情報内のポイズンビットの値が1であることに基づいて、読み出しコマンドの実行が失敗している、と判断し、エラータイプ指示情報に基づいて、読み出しコマンド実行失敗のタイプはメモリブロックに対応するメモリ物理アドレスではない、と判断し得る。例えば、エラータイプ指示情報の異なる値が、異なるエラータイプを表し得る。エラータイプはさらに、エラーデータ、訂正不可能なチェックコードエラー、媒体エラー、メモリチャネルエラー等であってよい。
1つのケースにおいて、DDR4インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表3に示される。
Figure 2021501941
DQ0からDQ63とCB0からCB7とは全て、データラインであり、データを伝送するために用いられる。UI0からUI7は、クロックラインであり、データ伝送中に用いられるクロックビートを示す。例えば、UI0は、第1のクロックビートであると同時に立ち上がりクロック端であり、UI1は、第2のクロックビートであると同時に立ち下がりクロック端である。DDR4において、少なくとも4つのクロックサイクルが、エラー応答情報を送信する必要がある。表3に示されるように、本願の本実施形態において示されるエラー応答情報において、RID[7:0]フィールドは、読み出しコマンドの識別子IDを示すために用いられる。エラー指示情報は、読み出しコマンドが不正確であるかどうかを示すために用いられる。エラータイプ指示情報フィールドは、エラータイプを示すために用いられる。ECC(Error Correcting Code、ECC)フィールドは、伝送されるデータの訂正情報を示すために用いられる。RFUフィールドは、予約フィールドである。
別のケースにおいて、DDR5インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表4に示される。
Figure 2021501941
表3に示されるエラー応答情報とは異なり、DDR5では、データラインは比較的少数のビットを含み、DQは32ビットである。この場合、同じ数のビットを有するエラー応答情報を伝送するためにDDR5において必要なクロックビートの数は、DDR4において必要なクロックビートの数よりも多い。
メモリコントローラによりプロセッサへ送信される読み出し失敗情報は、エラータイプ指示情報およびエラー指示情報を含み得る。任意選択で、読み出し失敗情報は、代替的に、エラー指示情報であってよく、エラー指示情報は、読み出しの失敗を示すためにのみ用いられる。
本願の実施形態の別の態様は、メモリをさらに提供する。例えば、メモリは、図1におけるNVDIMMであってよい。メモリの構造が、図1におけるNVDIMMに示され得る。メモリは、媒体コントローラ110と、媒体コントローラ110に接続された不揮発性メモリ(例えば、図1におけるNVM112)とを含む。媒体コントローラ110は、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラ106と通信し、不揮発性メモリは、複数のメモリブロックを含む。媒体コントローラ110は、例えば、図2から図4におけるメモリブロックリクレーム方法を実行し得る。
具体的には、媒体コントローラ110は、
メモリコントローラ106により送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意選択で、媒体コントローラ110はさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ110はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
任意選択で、媒体コントローラ110はさらに、
メモリコントローラ106により送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ106へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
本願の実施形態の別の態様が、コンピュータシステムをさらに提供する。コンピュータシステムの構造が図1に示され、コンピュータシステムは、プロセッサ102と、メモリコントローラ106と、媒体コントローラ110と、媒体コントローラ110に接続された不揮発性メモリ(例えば、図1におけるNVM112)とを備える。
メモリコントローラ106は、NVDIMM−Pプロトコルを用いることにより媒体コントローラ110と通信し、不揮発性メモリは、複数のメモリブロックを含み、メモリコントローラ106は、
プロセッサ102により送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラ110へ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラ110に命令するために用いられる、送信することと
を行うように構成される。
媒体コントローラ110は、
メモリコントローラ106により送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ110はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込むように構成される。
任意選択で、メモリコントローラ106はさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
メモリコントローラ106はさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラ110へ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
媒体コントローラ110はさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ106へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
メモリコントローラ106はさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
当業者であれば、本明細書において開示された実施形態で説明された例との組み合わせで、ユニットおよびアルゴリズムの段階が、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装され得ることを認識し得る。機能がハードウェアにより実行されるか、またはソフトウェアにより実行されるかは、技術的解決手段の具体的な応用および設計上の制約に依存する。当業者は、異なる方法を用いて、説明された機能を特定の用途ごとに実装し得るが、当該実装が本願の範囲を超えるとみなされるべきではない。
前述の実施形態の全部または一部が、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の組み合わせを用いて実装されてよい。実施形態を実装するためにソフトウェアプログラムが用いられる場合、実施形態の全部または一部が、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能の全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータサーバまたはデータセンタへ、有線(例えば、同軸ケーブル、光ファイバまたはデジタル加入者線(DSL))方式または無線(例えば、赤外線、電波またはマイクロ波)方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、1または複数の使用可能な媒体を統合したサーバまたはデータセンタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー(登録商標)ディスク、ハードディスクまたは磁気テープ)、光媒体(例えば、DVD)または半導体媒体(例えば、ソリッドステートディスク(Solid State Disk (SSD))など、プログラムコードを格納できる様々な非一時的(non−transitory)機械可読媒体であってよい。
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
本願は、コンピュータ技術分野、特に、メモリブロックリクレーム方法およびメモリブロックリクレーム装置に関する。
不揮発性デュアルインラインメモリモジュール(non−volatile dual in−line memory module、NVDIMM)は、コンピュータのランダムアクセスメモリ(random access memory、RAM)である。NVDIMMは、複数の不揮発性メモリ(non−volatile memory、NVM)チップを含み得る。NVDIMMはさらに、システムの電源が完全にオフになっている場合でも、完全なメモリデータを格納できる。NVDIMM上のNVMチップは、具体的には、不揮発性ランダムアクセスメモリ(non−volatile random access memory、NVRAM)であってよいことが理解できる。NVDIMM上のNVMは、相変化メモリ(phase change memory、PCM)、抵抗変化型ランダムアクセスメモリ(resistive random access memory、RRAM(登録商標))、磁気ランダムアクセスメモリ(magnetic random access memory、MRAM)、スピントランスファトルク磁気ランダムアクセスメモリ(spin−transfer torque MRAM、STT MRAM)等を含み得る。NVDIMMは、NVDIMM−Pプロトコルを用いることによりメモリコントローラと通信する。NVDIMM−Pプロトコルは、ダブルデータレート(double DATA rate、DDR)プロトコルとの互換性があるバスアクセスプロトコルである。
しかしながら、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)と比較すると、NVMは、疲労抵抗が低く、書き込み回数が制限されている。従って、NVMチップにおけるいくつかのメモリブロックが最大書き込み回数に達した場合、NVMチップは利用できなくなり、NVDIMM全体の耐用期間に影響が及ぶ。NVMチップにおける異なるメモリブロックの書き込み回数が不均衡になるのを回避し、ウェアレベリング効果を高め、NVDIMMの耐用期間を延ばすために、NVDIMMに対してメモリ管理を実行する必要がある。
本願の実施形態は、メモリブロックリクレームの速度を改善してウェアレベリング効果を高めるために、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
第1の態様によれば、本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。
媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。
可能な実装において、媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階は、
媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
媒体コントローラが、メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する。
媒体コントローラがメモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除できるので、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリングの効果を高めることができ、NVDIMMの性能を改善することができ、NVDIMMの耐用期間を延ばすことができる。このようにして、メモリモジュールは、NVDIMMがメモリとして用いられる場合に管理される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、方法は、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む段階
をさらに備える。
この実装において、アンマッピングコマンドは、消去モード指示情報をさらに含む。この場合、メモリブロック内のデータが機微データであるときは、媒体コントローラは、予め定められたパターンを有する機微データを上書きすることにより機微データを保護してNVDIMMのセキュリティを改善するよう命令され得る。
可能な実装において、方法は、
媒体コントローラが、メモリコントローラにより送信される読み出しコマンドを受信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
媒体コントローラがエラー応答情報をメモリコントローラへ送信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と、
をさらに備える。
第2の態様によれば、本願の実施形態は、メモリブロックリクレーム方法をさらに提供する。
方法は、コンピュータシステムに適用され、コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、方法は、
メモリコントローラが、プロセッサにより送信されるトリム(TRIM)命令を受信する段階であって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する段階と
を備える。
アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられ、リクレームされたメモリブロックは、利用可能なメモリブロックである。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、アンマッピングコマンドはさらに、予め定められたパターンをメモリブロックに書き込むよう媒体コントローラに命令するために用いられる。
可能な実装において、方法は、
メモリコントローラが、読み出しコマンドを媒体コントローラへ送信する段階であって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、送信する段階と、
メモリコントローラが、媒体コントローラにより送信されるエラー応答情報を受信する段階であって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える。
第3の態様によれば、本願の実施形態は、第1の態様におけるメモリブロックリクレーム方法を実行するように構成されたメモリをさらに提供する。メモリは、第1の態様におけるものと同じ技術的特徴および技術的効果を有する。本願においては、詳細を改めて説明しない。
本願の実施形態の第3の態様は、メモリを提供する。
メモリは、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、媒体コントローラは、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラと通信し、不揮発性メモリは、複数のメモリブロックを含み、媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意的な実装において、媒体コントローラはさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
任意的な実装において、媒体コントローラはさらに、
メモリコントローラにより送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
第4の態様によれば、本願の実施形態は、コンピュータシステムをさらに提供する。
コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備え、メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信し、不揮発性メモリは、複数のメモリブロックを有し、メモリコントローラは、
プロセッサにより送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラへ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラに命令するために用いられる、送信することと
を行うように構成される。
媒体コントローラは、
メモリコントローラにより送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
可能な実装において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
可能な実装において、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラはさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
可能な実装において、メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
メモリコントローラはさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラへ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
媒体コントローラはさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラへ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
メモリコントローラはさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
本願の実施形態における技術的解決手段をより明確に説明すべく、実施形態を説明するために必要な添付図面を以下で簡潔に説明する。以下の説明における添付図面が本願のいくつかの実施形態を示しているに過ぎないことは明らかである。
本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。
本願の実施形態1によるメモリブロックリクレーム方法の概略フローチャートである。
本願の実施形態2によるメモリブロックリクレーム方法のシグナリングフローチャートである。
本願の実施形態によるデータ読み出し方法のフローチャートである。
当業者が本願における技術的解決手段をより良く理解できるよう、以下では、本願の実施形態における添付図面を参照して、本願の実施形態における技術的解決手段を明確に説明する。説明される実施形態が本願の実施形態のいくつかに過ぎず、全てではないことは明らかである。
図1は、本願の実施形態によるコンピュータシステムの概略アーキテクチャ図である。図1に示されるように、コンピュータシステム100は少なくとも、プロセッサ102、メモリコントローラ106およびNVDIMM108を含み得る。通常、メモリコントローラ106は、プロセッサ102に統合され得る。図1に示される構成要素に加え、コンピュータシステム100は、通信インタフェースと、外部記憶デバイスとして用いられるディスクなどの別の構成要素とをさらに含み得ることに留意すべきである。このことは、本明細書において限定されない。
プロセッサ(processor)102は、コンピュータシステム100のコンピューティングコア兼制御コア(control core)である。プロセッサ102は、1または複数のプロセッサコア(core)104を含み得る。プロセッサ102は、非常に大規模な集積回路であってよい。オペレーティングシステムおよび別のソフトウェアプログラムがプロセッサ102にインストールされることにより、プロセッサ102は、NVDIMM108、キャッシュおよびディスクにアクセスできる。本願の本実施形態において、プロセッサ102におけるコア104は、例えば中央処理装置(central processing unit、CPU)であってよく、または別の特定用途向け集積回路(application− specific integrated circuit、ASIC)であってよいことが理解できる。
メモリコントローラ(memory controller)106は、コンピュータシステム100内のNVDIMM108を制御し、NVDIMM108からコア104へのデータ伝送を管理および計画するように構成されたバス回路コントローラである。データは、メモリコントローラ106を用いることにより、NVDIMM108とコア104との間でやり取りされ得る。メモリコントローラ106は、別個のチップであってよく、システムバスを用いることによりコア104に接続されている。当業者であれば、メモリコントローラ106は、代替的に(図1に示されるように)プロセッサ102に統合され得るか、またはノースブリッジに組み込まれ得ることを認識し得る。メモリコントローラ106の具体的な位置は、本願の本実施形態において限定されない。実際の適用では、メモリコントローラ106は、通信インタフェース1062および制御回路1064を含んでよく、メモリコントローラ106は、通信インタフェース1062を通じて、プロセッサ102およびNVDIMM108と通信し得る。メモリコントローラ106は、制御回路1064を用いることにより必要なロジックを制御して、データをNVDIMM108に書き込み得るか、または、データをNVDIMM108から読み出し得る。
NVDIMM108は、コンピュータシステム100のランダムアクセスメモリ(RAM)であり、コンピュータシステム100のメモリまたは記憶デバイスとして用いられ得る。NVDIMM108は、媒体コントローラ110、少なくとも1つのNVM112および1または複数のキャッシュ114を含み得る。媒体コントローラ110は、制御能力を有する論理回路を含み得る。NVM112は、オペレーティングシステムにおいて現在動作中の様々なソフトウェア、入力データおよび出力データ、外部記憶デバイスとやり取りされる情報等を格納するように構成される。NVM112は、チップの形態で存在し得る。例えば、NVM112は、相変化メモリ(phase change memory、PCM)、抵抗変化型ランダムアクセスメモリ(resistive random access memory、RRAM(登録商標))、磁気ランダムアクセスメモリ(magnetic random access memory、MRAM)またはスピントランスファトルク磁気ランダムアクセスメモリ(spin−transfer torque MRAM、STT MRAM)など、メモリとして用いられ得る不揮発性メモリを含み得る。
メモリコントローラ106は、バス105を用いることにより、NVDIMM108に接続されている。メモリコントローラ106は、NVDIMM−Pプロトコルに準拠してNVDIMM108と通信する。NVDIMM−Pプロトコルは、ダブルデータレート(double DATA rate、DDR)プロトコルとの互換性がある非同期プロトコルである。媒体コントローラ110は、メモリコントローラ106のメモリアクセスコマンドに基づいて、NVM112に格納されたデータにアクセスし得る。メモリコントローラ106により送信されるメモリアクセスコマンドは、読み出しコマンドまたは書き込みコマンドであってよいことが理解できる。媒体コントローラ110は、メモリコントローラ106により送信される読み出しコマンドに基づき、NVM112からデータを読み出して当該データを読み出しバッファに格納し、当該読み出しバッファから当該データを読み出すようメモリコントローラ106に命令するために非同期信号をメモリコントローラ106へ送信し得るか、または、媒体コントローラ110は、メモリコントローラ106により送信される書き込みコマンドに基づき、まず、データを書き込みバッファに格納し、書き込みバッファ内の当該データをNVM112またはキャッシュ114に書き込み得る。
本願の本実施形態において、バス105は少なくとも、データバスおよびコマンド/アドレスバスを含み得る。データバスは、データおよびメタデータを伝送するように構成される。コマンド/アドレスバスは、読み出しコマンドまたは書き込みコマンドなどのメモリアクセスコマンドを伝送するように構成される。キャッシュ114は、媒体コントローラ110によりNVM112から読み出されるデータをキャッシュするように構成される。
NVDIMMの耐用期間を延ばしてNVDIMMの性能を改善するために、媒体コントローラは、例えば、ウェアレベリング(Wear Leveling)、不良ブロック管理およびキャッシュとNVMとの間のデータ移行といった異なる媒体管理オペレーションを実行する必要がある。ウェアレベリングは、メモリブロックの消去/書き込みの回数が同じになるのを保証することによりNVDIMMの耐用期間を延ばすために、データがNVDIMMの各メモリブロックへ可能な限り均等に分散されることを意味する。媒体コントローラは、新しいメモリブロックをデータに割り当てる場合、摩耗の回数がより少ないメモリブロックをメモリアイドルリストから優先的に選択する。不良ブロックの管理は、メモリブロックが不良ブロックであると自らが判断した後に、現在の不良ブロック内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択されることを意味する。キャッシュとNVMとの間のデータ移行は、頻繁にアクセスされるデータをキャッシュに格納し、アクセスの頻度が低いデータをNVMへ移行することにより、読み出し要求/書き込み要求の処理速度を改善するというものである。しかしながら、キャッシュにおけるデータがNVMに書き込まれた場合、キャッシュ内のデータ用に、メモリアイドルリストから新しいメモリブロックが選択される必要がある。メモリアイドルリストをタイムリーに更新することが、媒体コントローラの媒体管理オペレーションの管理効果を決定付け、さらに、NVDIMMの耐用期間および性能に影響を及ぼすことが、前述の分析から認識できる。
前述の媒体管理オペレーションの効率を改善するために、本願の実施形態は、メモリブロックリクレーム方法およびメモリブロックリクレーム装置を提供する。
以下では、特定の実施形態を参照して、本願の実施形態において提供されるメモリブロックリクレーム方法およびメモリブロックリクレーム装置を詳細に説明する。以下の特定の実施形態において、同じまたは同様の概念または処理は、いくつかの実施形態では詳細に説明されないことがある。
本願の実施形態の一態様は、メモリブロックリクレーム方法を提供する。図2は、本願の実施形態1によるメモリブロックリクレーム方法の概略フローチャートである。本実施形態において、媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信し、アンマッピングコマンドに基づいてメモリブロックをリクレームし、メモリブロックを利用可能なメモリブロックへ変換することにより、媒体コントローラの媒体管理オペレーションの管理効果を高め、さらに、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。図2に示されるように、本実施形態において提供されるメモリブロックリクレーム方法は、図1に示されるコンピュータシステムに適用される。例えば、メモリブロックリクレーム方法は、図1における媒体コントローラにより実行され得る。コンピュータシステムは、メモリコントローラと、媒体コントローラと、媒体コントローラに接続された不揮発性メモリとを備える。メモリコントローラは、NVDIMM−Pプロトコルを用いることにより媒体コントローラと通信する。不揮発性メモリは、複数のメモリブロックを有する。メモリブロックリクレーム方法は、以下の段階を備える。
S201.メモリコントローラが、アンマッピングコマンドを媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、媒体コントローラは、メモリコントローラにより送信されるアクセス要求を受信した場合、通常、対応するメモリ物理アドレスをアクセス要求におけるメモリ論理アドレスに割り当て、メモリ論理アドレスとメモリ物理アドレスとの間のマッピング関係を格納する。メモリコントローラがメモリ論理アドレスを読み出したか、または書き込んだ場合、媒体コントローラは、マッピング関係に基づいて、この対応するメモリ物理アドレスに対応するデータを読み出し得るか、または書き込み得る。媒体コントローラは、メモリ物理アドレスをメモリ論理アドレスに割り当てた場合、メモリアイドルリストからメモリブロックを選択する。NVMチップ内のメモリブロック間のウェアレベリング効果を保証するために、未使用のメモリブロックが利用可能なメモリブロックへ時間内に変換されるのを保証することにより、いくつかのメモリブロックが媒体管理に関与できず、メモリリソースが浪費され、NVDIMMの耐用期間が短縮されるケースを回避すべきである。前述の目的を達成するために、メモリコントローラは、アンマッピングコマンド(unmap command)を媒体コントローラへ送信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を保持する。アンマッピングコマンドは、アンマッピングコマンドに基づいてメモリブロックをリクレームするよう媒体コントローラに命令するために用いられる。媒体コントローラは、アンマッピングコマンドを受信した場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、リクレーム対象メモリブロックのメモリ物理アドレス情報を決定し得る。
S202.媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックである。
例えば、媒体コントローラは、アンマッピングコマンドにおけるメモリ論理アドレス情報に基づいて、指定のメモリブロックをリクレームする。リクレームされたメモリブロックは、利用可能なメモリブロックであり、媒体コントローラは、ウェアレベリングなどの媒体管理を実行する場合、メモリブロックを管理し得る。あるオブジェクトを解放する場合、既存のメモリコントローラは通常、当該オブジェクトに対応するデータにより占有されているメモリブロックのアンマッピングコマンドを媒体コントローラへ送信しない。本実施形態において、アンマッピングコマンドが媒体コントローラへ送信され、指定のメモリブロックがリクレームされることにより、当該メモリブロックが、利用可能なメモリブロックへ変換され、未使用のメモリブロックを、可能な限り速やかに解放できる。これにより、過剰な割り当てによって生じる比較的高いオーバヘッドが回避される。このようにして、未使用のメモリブロックが媒体管理オペレーションにおいて可能な限り早く管理され得ることにより、NVDIMMの記憶性能が改善し、NVDIMMの耐用期間が延びる。
本願の実施形態は、メモリブロックリクレーム方法を提供する。
方法は、
媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
媒体コントローラが、メモリ論理アドレス情報に基づいてメモリブロックをリクレームする段階であって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備える。媒体コントローラは、メモリコントローラにより送信されるアンマッピングコマンドを受信した後に、アンマッピングコマンドに含まれるリクレーム対象メモリブロックのメモリ論理アドレス情報に基づいて、対応するメモリブロックを解放し、当該メモリブロックをリクレームすることにより、媒体コントローラの媒体管理オペレーション効果を高め、NVDIMMの記憶性能を改善し、NVDIMMの耐用期間を延ばす。
例えば、図2に示される実施形態に基づいて、本願の実施形態はさらに、メモリブロックリクレーム方法を提供する。図3は、本願の実施形態2によるメモリブロックリクレーム方法のシグナリングフローチャートである。本実施形態では、媒体コントローラがアンマッピングコマンドに基づいてメモリブロックをリクレームする特定の処理を詳細に説明する。図3に示されるように、メモリブロックリクレーム方法は、以下の段階を備える。
S301.媒体コントローラが、メモリコントローラにより送信されるアンマッピングコマンドを受信する。アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、本実施形態におけるS301は、図2に示される実施形態におけるS201と同じである。本願においては、詳細を改めて説明しない。
任意選択で、図2および図3に示される実施形態において、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
例えば、媒体コントローラは、メモリブロックをリクレームする場合、アンマッピングコマンドにおけるリクレーム対象メモリブロックの開始アドレスと、リクレーム対象メモリブロックの全長とに基づいて、メモリ物理アドレス内の特定のアドレスに対応するリクレーム対象メモリブロックを決定する。例えば、リクレーム対象メモリブロックが連続するメモリブロック1、2および3を含む場合、開始アドレスは、例えば、メモリブロック1の第1のアドレスであってよく、長さ情報は3であってよい。任意選択で、メモリコントローラおよび媒体コントローラは、メモリブロックの粒度と一致する。任意選択で、アンマッピングコマンドは、メモリブロックの粒度サイズ情報をさらに含み得る。
任意選択で、前述の実施形態に基づいて、S301の前に、メモリブロックリクレーム方法は、以下の段階をさらに備える。
S300.メモリコントローラが、プロセッサにより送信されるトリム命令を受信する。トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む。
例えば、プロセッサ(例えば、図1における任意のプロセッサコア104)は、トリム命令(TRIM instruction)をメモリコントローラへ送信し、メモリコントローラは、トリム命令を受信した後に、アンマッピングコマンドを媒体コントローラへ送信する。トリム命令は、どのメモリブロックがもはや用いられておらず消去され得るかをメモリに通知するためにオペレーティングシステムにより用いられるコマンドである。
具体的には、プロセッサにおいて動作しているオペレーティングシステムがあるオブジェクトを削除した場合、媒体コントローラは、当該オブジェクトが削除されたことを認識できず、論理アドレスと物理アドレスとの間のマッピング関係を依然として格納する。従って、本願の本実施形態において、オブジェクトファイルが削除された場合、プロセッサは、トリム命令をメモリコントローラへ送信し得る。トリム命令は、メモリブロックのアドレスを保持し、トリム命令は、メモリブロックのデータに対応するオブジェクトが削除されたことをメモリコントローラに通知するために用いられ、メモリブロックのデータは、削除されてよく、メモリブロックは、リクレームされてよい。
実際の適用では、あるオブジェクトと当該オブジェクトに対応するデータとが解放されているケース、予め設定されたサイズを超えるサイズのメモリブロックが解放されているケース、アプリケーションが終了しているケース、メモリの読み出し要求/書き込み要求の回数が予め設定された回数未満であるケース、または、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、とプロセッサが判断しているケースのいずれか1つをプロセッサが検出した場合、プロセッサは、トリム命令をメモリコントローラへ送信する。
例えば、プロセッサは、あるオブジェクトが解放されていることを検出した場合、当該オブジェクトにより占有されているメモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサコアとメモリコントローラとの間のシグナリングの相互作用を低減するために、プロセッサは、予め設定されたサイズを超えるサイズのメモリブロックが解放されていることを検出した場合、メモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、プロセッサは、あるアプリケーションが終了していることを検出した場合、当該アプリケーションにより占有されているメモリブロックをリクレームするために、トリム命令をメモリコントローラへ送信する。任意選択で、比較的少数の読み出し要求/書き込み要求があることを検出した場合、すなわち、メモリがアイドルである場合、プロセッサは、トリム命令をメモリコントローラへ送信することにより、メモリがビジーである場合にメモリの解放を回避し、これにより、メモリの読み出し性能/書き込み性能を改善する。任意選択で、プロセッサは、予め設定されたオペレーティングシステムメモリ管理アルゴリズムに基づいて、トリム命令が送信される必要がある、と判断した場合、代替的に、トリム命令をメモリコントローラへ送信し得る。
実際の適用では、第4世代ダブルデータレート(fourth−generation double data rate、DDR4)同期インタフェースまたは第5世代ダブルデータレート(fifth−generation double DATA rate、DDR5)同期インタフェースが、媒体コントローラとメモリコントローラとの間で用いられ得る。異なるDDRインタフェースが用いられる場合、メモリコントローラにより媒体コントローラへ送信されるアンマッピングコマンドのフォーマットが異なる。
第1の可能な実装において、DDR4インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンド(unmap command)のフォーマットが以下の表1に示される。
Figure 2021501941
例えば、アンマッピングコマンドの長さが制限されていることに起因して、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。例えば、メモリコントローラは、第1のアンマッピングコマンドを第1のクロックビートで送信した後に、第1のアドレス拡張コマンドを第2のクロックビートで送信し、次に、第2のアンマッピングコマンドおよび第2のアドレス拡張コマンドを後続のクロックビートで順に送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、2つのクロックビートで送信される。アドレス拡張コマンドのフォーマットも、表1に示される。1つのクロックビートが1つのクロック変更端であり、変更端は、立ち上がり端または立ち下がり端であってよい。
例えば、表1に示されるように、アンマッピングコマンドおよびアドレス拡張コマンドにおいて、H(high)はバイナリデータ1を表し、L(low)はバイナリデータ0を表す。CKE0(Clock Enable)ビットは、クロックイネーブル信号を示すために用いられ、前の(前のサイクルの)ビットは、前のクロックが有効であるかどうかを示すために用いられ、現在の(現在のサイクルの)ビットは、現在のクロックが有効であるかどうかを示すために用いられる。表1に示されるように、前のビットおよび現在のビットの両方がHである場合、クロックイネーブル信号は有効であり、媒体コントローラは、クロックイネーブル信号が有効であるときは、アンマッピングコマンドを受信する。CS(Chip Select)はチップ選択信号である。メモリチャネル上には複数のメモリモジュールが存在し、メモリコントローラは、チップ選択信号を用いることにより、アンマッピングコマンドおよびアドレス拡張コマンドを受信するメモリモジュールを決定し得る。あるメモリモジュールにより受信されたチップ選択信号がLである場合、これは、アンマッピングコマンドおよびアドレス拡張コマンドを受信するよう当該メモリモジュールが選択されていることを示す。ADDR[39:2]フィールドは、リクレーム対象メモリブロックの開始アドレスを格納するために用いられる。言い換えると、ADDR[39:2]は、リクレーム対象メモリブロックの開始アドレス、すなわち、第1のリクレーム対象メモリブロックの開始アドレスである。LENGTH[4:0]は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。LENGTH[4:0]を例として用いると、LENGTH[4:0]フィールドの最大値は32である。この場合、1つのアンマッピングコマンドが、メモリブロックをリクレーム32するよう命令するために用いられ得る。OPCODE[0]フィールドは、消去モード情報を示すために用いられる。
第2の可能な実装において、DDR5インタフェースは、媒体コントローラとメモリコントローラとの間で用いられ、アンマッピングコマンドのフォーマットは、以下の表2において示される。
Figure 2021501941
第1の可能な実装と同様に、アンマッピングコマンドの長さが制限されていることに起因して、アンマッピングコマンドは、リクレーム対象メモリブロックの完全なアドレス情報を保持できない。従って、メモリコントローラは、アンマッピングコマンドを送信した後に、通常、さらにアドレス拡張コマンドを送信する。アンマッピングコマンドおよびアドレス拡張コマンドは、連続で送信される。具体的には、メモリコントローラは、アンマッピングコマンドとアドレス拡張コマンドとを交互に送信する。第1の可能な実装とは異なり、この実装では、アンマッピングコマンドおよびアドレス拡張コマンドの両方が、送信において2つのクロックサイクルを費やす必要があり、各クロックサイクルは、1つのクロック立ち上がり端および1つのクロック立ち下がり端を含む。本実施形態において、メモリコントローラは、第1のクロックサイクルの2つのクロック端でアンマッピングコマンドの第1の部分を送信した後に、第2のクロックサイクルの2つのクロック端でアンマッピングコマンドの第2の部分を送信し、次に、第3のクロックサイクルの2つのクロック端でアドレス拡張コマンドの第1の部分を送信し、次に、第4のクロックサイクルの2つのクロック端でアドレス拡張コマンドの第2の部分を送信する。メモリコントローラは、他のアンマッピングコマンドおよびアドレス拡張コマンドを後続のクロックビートで順に送信する。アドレス拡張コマンドのフォーマットも、表2に示される。
アンマッピングコマンドおよびアドレス拡張コマンドにおいて、H(high)はバイナリデータ1を表し、L(low)はバイナリデータ0を表す。CS(Chip Select)はチップ選択信号である。CSが第1のクロックサイクルにおいてLであることが検出された場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドが始まっていることを示す。第2のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドについては、CSがHであることが検出された場合、これは、アンマッピングコマンドの第2の部分またはアドレス拡張コマンドが受信されていることを示す。しかしながら、CSが第2のクロックサイクルにおいてLであることが依然として検出されている場合、これは、アンマッピングコマンドまたはアドレス拡張コマンドにエラーが発生していることを示す。この場合、これら2つのクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得るか、または、第1のクロックサイクルにおけるアンマッピングコマンドまたはアドレス拡張コマンドが破棄され得る。ADDR[39:1]フィールドは、リクレーム対象メモリブロックの開始アドレスを示すために用いられる。言い換えると、ADDR[39:1]フィールドは、第1のリクレーム対象メモリブロックの開始アドレスを示すために用いられる。LENGTH[6:0]は、リクレーム対象メモリブロックの長さ情報を示すために用いられ、具体的には、リクレーム対象メモリブロックの数を示すために用いられ得る。LENGTH[6:0]を例として用いると、LENGTH[6:0]フィールドの最大値は128である。この場合、1つのアンマッピングコマンドが、128個のメモリブロックをリクレームするよう命令するために用いられ得る。OPCODE[0]は、消去モード情報を示すために用いられるフィールドである。
S302.媒体コントローラが、メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。具体的には、媒体コントローラは、アンマッピングコマンドを受信した後に、アンマッピングコマンドにおける第1のメモリ論理アドレス情報に基づいて、第1のメモリ論理アドレスに対応する第1のメモリ物理アドレスを決定し得る。この場合、媒体コントローラが、第1のメモリ論理アドレスと第1のメモリ物理アドレスとの間のマッピング関係を削除し得ることにより、第1のメモリ物理アドレスの対応するメモリ論理アドレスがなくなり、媒体コントローラは、新しいメモリ論理アドレスを第1のメモリ物理アドレスに割り当て得る。第1のメモリ論理アドレスと第1のメモリ物理アドレスとの間のマッピング関係が削除されていない場合、メモリコントローラが第1のメモリ論理アドレスに次回アクセスするときにのみ、媒体コントローラは、第1のメモリ物理アドレスにアクセスできる。しかしながら、これら2回のアクセスの間の間隔は、非常に長くなり得る。これにより、第1のメモリ物理アドレスの消去/書き込みの回数が確実に、NVM内の別のメモリブロックの消去/書き込みの回数未満になる。このことは、NVDMMの耐用期間に影響を及ぼし得る。
S303.媒体コントローラがメモリブロックのメモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、対応するメモリ論理アドレスがないメモリ物理アドレスに対応するメモリブロックが、利用可能なメモリブロックであり、媒体コントローラは、メモリ物理アドレスをメモリアイドルリストに追加する。本願の本実施形態において、メモリアイドルリストに示されるメモリブロックは、利用可能なメモリブロックである。言い換えると、あるメモリブロックが新しいアクセス要求に割り当てられる必要がある場合、媒体コントローラは、メモリアイドルリストに基づいて、当該メモリブロックを割り当て得る。実際の適用では、メモリアイドルリスト内のメモリブロックが、メモリブロックの書き込み回数の昇順で配置され得る。メモリブロックを割り当てる処理において、媒体コントローラは、消去/書き込みの回数が少ないメモリブロックを優先的に割り当て得る。当然ながら、実際の適用では、媒体コントローラは、代替的に、メモリブロックをランダムに割り当て得る。このことは、本明細書において限定されない。本願の本実施形態によるNVDIMMを備えるコンピュータシステムにおいて、メモリコントローラは、NVDIMM−Pプロトコルに従ってアンマッピングコマンドを媒体コントローラへ送信することで、メモリブロックをリクレームするよう媒体コントローラに命令し得る。媒体コントローラは、アンマッピングコマンドを受信した後に、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係をアンマッピングコマンドにおいて保持されるメモリ論理アドレス情報に基づいて削除し、対応するメモリブロックをリクレームし得る。
メモリコントローラがアンマッピングコマンドを本願の本実施形態による媒体コントローラへ送信するこの方式で、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を時間内に削除でき、これにより、利用可能なメモリブロックの数を増やすことができ、メモリブロック間のウェアレベリング効果を高めることができ、NVDIMMの性能を改善することができ、NVDIMMの耐用期間を延ばすことができる。このようにして、メモリモジュールは、NVDIMMがメモリとして用いられる場合に管理される。
当業者であれば、NVMチップがバイト単位で書き込みをサポートするので、メモリの更新中、メモリブロック内のデータが直接書き換えられ得ることで、未使用のメモリブロックに対して消去およびガベージコレクションを予め実行する必要がないことを把握し得る。この場合、実際の適用では、処理速度を改善するために、メモリブロックが解放された場合、リクレームされたメモリブロックが消去されないことがある。しかしながら、機微データの場合には、未消去データの漏洩リスクが生じ得る。従って、本願の本実施形態では、表1および表2に示されるように、アンマッピングコマンドは、OPCODE[0]フィールドをさらに含み得る。OPCODE[0]フィールドは、消去モード情報を示すために用いられる。具体的には、媒体コントローラは、アンマッピングコマンドにおけるOPCODE[0]フィールドの消去モード指示情報に基づいて、データブロックが消去される必要があるかどうかを判断し得る。例えば、OPCODE[0]の値が0である場合、これは、メモリブロック内のデータ情報が消去される必要がないことを示す。OPCODE[0]の値が1である場合、これは、メモリブロック内のデータ情報が消去される必要があることを示す。
具体的には、図3に示されるように、S302の後に、メモリブロックリクレーム方法は、以下の段階をさらに備え得る。
S304.消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、媒体コントローラが、予め定められたパターンをメモリブロックに書き込む。例えば、本願の本実施形態において、OPCODE[0]の値が1である場合、媒体コントローラは、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する。メモリブロックがリクレームされた後に、媒体コントローラは、予め定められたパターン(pre−defined pattern)をリクレームされたメモリブロックに書き込んで、メモリブロック内の元のデータを上書きし、メモリブロック内の機微データの漏洩を防止し得る。実際の適用では、予め定められたパターンは、予め設定されたレジスタに格納され得る。予め定められたパターンは、全て0、全て1、または任意の他の予め定められたデータであってよい。このことは、本明細書において限定されない。実際の適用では、S304は、S303の前に実行され得るか、もしくはS303の後に実行され得るか、またはS303と同時に実行され得る。このことは、本願において限定されない。
本願の本実施形態によるメモリブロックリクレーム方法において、アンマッピングコマンドは、消去モード指示情報をさらに含む。これにより、メモリブロック内のデータが機微データである場合、媒体コントローラは、予め定められたパターンを用いることにより機微データを上書きすることにより機微データを保護してNVDIMMのセキュリティを改善するよう命令され得る
さらに、実際の適用では、複数のプロセッサまたは複数のプロセッサコアが同じメモリブロックにアクセスするケースがあり得る。この場合、メモリブロックがリクレームされた後に、別のプロセッサがメモリブロックにアクセスするケースがあり得る。以下では、メモリコントローラと媒体コントローラとの間の、メモリブロックがリクレームされた後のデータ読み出し処理を詳細に説明する。図4は、本願の実施形態によるデータ読み出し方法のフローチャートである。図4に示されるように、当該方法は、以下の段階を備え得る。
S402.メモリコントローラが、プロセッサにより送信されるメモリアクセス要求を受信する。メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む。本願の本実施形態において、メモリアクセス要求におけるメモリ論理アドレス情報は、前述の実施形態において説明された、トリムコマンドにおけるメモリ論理アドレス情報と同じである。
S404.メモリコントローラが読み出しコマンドを媒体コントローラへ送信する。具体的には、メモリコントローラは、受信したメモリアクセス要求に基づいて、読み出しコマンドを媒体コントローラへ送信する。読み出しコマンドは、メモリブロック内のデータを読み出すために用いられ、メモリアクセス要求は、アクセス対象メモリブロックのメモリ論理アドレスを保持する。
S406.媒体コントローラが、対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断する。媒体コントローラは、読み出しコマンドを受信した後に、読み出しコマンドにおけるメモリ論理アドレスに対応するメモリ物理アドレスについて問い合わせる。読み出しコマンドにおけるメモリ論理アドレス情報はトリムコマンドにおけるメモリ論理アドレス情報と同じなので、媒体コントローラは、トリム命令に基づいて、メモリ論理アドレスに対応するメモリブロックをリクレームする。従って、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できない。
S408.媒体コントローラがエラー応答情報をメモリコントローラへ送信する。エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる。上述のように、媒体コントローラは、対応するメモリ物理アドレスをメモリ論理アドレス情報に基づいて発見できないので、対応する物理アドレスから対応するデータを取得できず、データをメモリコントローラへ戻すことができない。従って、この段階において、媒体コントローラは、エラー応答情報をメモリコントローラへ送信して、読み出しコマンドの実行が失敗していることをメモリコントローラに通知し得る。
S410.メモリコントローラが、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信する。例えば、メモリコントローラは、媒体コントローラにより送信されるエラー応答情報を受信した後に、さらに、エラー応答情報に基づいて、読み出し失敗情報をプロセッサへ送信し得る。読み出し失敗情報は、読み出しコマンドの実行が失敗していることをプロセッサに通知するために用いられる。
任意選択で、メモリコントローラは、エラー応答情報を受信した場合、エラー応答情報内で保持されるエラータイプ指示情報に基づいて、エラータイプを決定する必要がある。具体的には、メモリコントローラは、エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係に基づいて、受信したエラー応答情報におけるエラータイプを決定し得る。エラータイプ指示情報と失敗タイプとの間の予め設定されたマッピング関係は、モードレジスタに格納され得る。
任意選択で、本願の本実施形態において、エラー応答情報は、エラータイプ指示情報およびエラー指示情報(例えば、ポイズンビットにより示される情報)を含む。エラー指示情報は、読み出しコマンドの実行が失敗していることを示すために用いられ、エラータイプ指示情報は、失敗タイプを示すために用いられる。失敗タイプは、エラーデータと、訂正不可能なチェックコードエラーと、媒体エラーと、メモリチャネルエラーとを含む。
例えば、エラー応答情報は、ポイズンビットを含む。ポイズンビットの値が0である場合、これは、読み出しコマンドが正常に実行されていることを示す。ポイズンビットの値が1である場合、これは、読み出しコマンドの実行が失敗していることを示す。エラー応答情報は、読み出しコマンド実行失敗のタイプを示すために用いられるエラータイプ指示情報をさらに含む。例えば、メモリコントローラは、エラー応答情報内のポイズンビットの値が1であることに基づいて、読み出しコマンドの実行が失敗している、と判断し、エラータイプ指示情報に基づいて、読み出しコマンド実行失敗のタイプはメモリブロックに対応するメモリ物理アドレスではない、と判断し得る。例えば、エラータイプ指示情報の異なる値が、異なるエラータイプを表し得る。エラータイプはさらに、エラーデータ、訂正不可能なチェックコードエラー、媒体エラー、メモリチャネルエラー等であってよい。
1つのケースにおいて、DDR4インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表3に示される。
Figure 2021501941
DQ0からDQ63とCB0からCB7とは全て、データラインであり、データを伝送するために用いられる。UI0からUI7は、クロックラインであり、データ伝送中に用いられるクロックビートを示す。例えば、UI0は、第1のクロックビートであると同時に立ち上がりクロック端であり、UI1は、第2のクロックビートであると同時に立ち下がりクロック端である。DDR4において、少なくとも4つのクロックサイクルが、エラー応答情報を送信する必要がある。表3に示されるように、本願の本実施形態において示されるエラー応答情報において、RID[7:0]フィールドは、読み出しコマンドの識別子IDを示すために用いられる。エラー指示情報は、読み出しコマンドが不正確であるかどうかを示すために用いられる。エラータイプ指示情報フィールドは、エラータイプを示すために用いられる。ECC(Error Correcting Code、ECC)フィールドは、伝送されるデータの訂正情報を示すために用いられる。RFUフィールドは、予約フィールドである。
別のケースにおいて、DDR5インタフェースが媒体コントローラとメモリコントローラとの間で用いられる場合、エラー応答情報の可能なフォーマットが以下の表4に示される。
Figure 2021501941
表3に示されるエラー応答情報とは異なり、DDR5では、データラインは比較的少数のビットを含み、DQは32ビットである。この場合、同じ数のビットを有するエラー応答情報を伝送するためにDDR5において必要なクロックビートの数は、DDR4において必要なクロックビートの数よりも多い。
メモリコントローラによりプロセッサへ送信される読み出し失敗情報は、エラータイプ指示情報およびエラー指示情報を含み得る。任意選択で、読み出し失敗情報は、代替的に、エラー指示情報であってよく、エラー指示情報は、読み出しの失敗を示すためにのみ用いられる。
本願の実施形態の別の態様は、メモリをさらに提供する。例えば、メモリは、図1におけるNVDIMMであってよい。メモリの構造が、図1におけるNVDIMMに示され得る。メモリは、媒体コントローラ110と、媒体コントローラ110に接続された不揮発性メモリ(例えば、図1におけるNVM112)とを含む。媒体コントローラ110は、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラ106と通信し、不揮発性メモリは、複数のメモリブロックを含む。媒体コントローラ110は、例えば、図2から図4におけるメモリブロックリクレーム方法を実行し得る。
具体的には、媒体コントローラ110は、
メモリコントローラ106により送信されるアンマッピングコマンドを受信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意選択で、媒体コントローラ110はさらに、
メモリ論理アドレス情報に基づいて、メモリ論理アドレスとメモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
メモリブロックのメモリ物理アドレスをメモリアイドルリストに追加することと
を行うように構成される。
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ110はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込む
ように構成される。
任意選択で、媒体コントローラ110はさらに、
メモリコントローラ106により送信される読み出しコマンドを受信することであって、読み出しコマンドは、読み出し対象データのメモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ106へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
本願の実施形態の別の態様が、コンピュータシステムをさらに提供する。コンピュータシステムの構造が図1に示され、コンピュータシステムは、プロセッサ102と、メモリコントローラ106と、媒体コントローラ110と、媒体コントローラ110に接続された不揮発性メモリ(例えば、図1におけるNVM112)とを備える。
メモリコントローラ106は、NVDIMM−Pプロトコルを用いることにより媒体コントローラ110と通信し、不揮発性メモリは、複数のメモリブロックを含み、メモリコントローラ106は、
プロセッサ102により送信されるトリム命令を受信することであって、トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを媒体コントローラ110へ送信することであって、アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含み、アンマッピングコマンドは、メモリブロックをリクレームするよう媒体コントローラ110に命令するために用いられる、送信することと
を行うように構成される。
媒体コントローラ110は、
メモリコントローラ106により送信されるアンマッピングコマンドを受信することと、
メモリ論理アドレス情報に基づいてメモリブロックをリクレームすることであって、リクレームされたメモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される。
任意選択で、メモリ論理アドレス情報は、リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、開始アドレスは、リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる。
任意選択で、アンマッピングコマンドは、消去モード指示情報をさらに含み、媒体コントローラ110はさらに、
消去モード指示情報がメモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンをメモリブロックに書き込むように構成される。
任意選択で、メモリコントローラ106はさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、メモリアクセス要求は、読み出し対象データのメモリ論理アドレス情報を含む、受信すること
を行うように構成される。
メモリコントローラ106はさらに、メモリアクセス要求に基づいて読み出しコマンドを媒体コントローラ110へ送信することであって、読み出しコマンドは、メモリ論理アドレス情報を保持する、送信することを行うように構成される。
媒体コントローラ110はさらに、
対応するメモリ物理アドレスがメモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報をメモリコントローラ106へ送信することであって、エラー応答情報は、読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される。
メモリコントローラ106はさらに、エラー応答情報に基づいて読み出し失敗情報をプロセッサへ送信するように構成される。
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
当業者であれば、本明細書において開示された実施形態で説明された例との組み合わせで、ユニットおよびアルゴリズムの段階が、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアとの組み合わせにより実装され得ることを認識し得る。機能がハードウェアにより実行されるか、またはソフトウェアにより実行されるかは、技術的解決手段の具体的な応用および設計上の制約に依存する。当業者は、異なる方法を用いて、説明された機能を特定の用途ごとに実装し得るが、当該実装が本願の範囲を超えるとみなされるべきではない。
前述の実施形態の全部または一部が、ソフトウェア、ハードウェア、ファームウェアまたはこれらの任意の組み合わせを用いて実装されてよい。実施形態を実装するためにソフトウェアプログラムが用いられる場合、実施形態の全部または一部が、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上でロードおよび実行された場合、本願の実施形態による手順または機能の全部または一部が生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは別のプログラム可能な装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されても、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてもよい。例えば、コンピュータ命令は、あるウェブサイト、コンピュータ、サーバまたはデータセンタから、別のウェブサイト、コンピュータサーバまたはデータセンタへ、有線(例えば、同軸ケーブル、光ファイバまたはデジタル加入者線(DSL))方式または無線(例えば、赤外線、電波またはマイクロ波)方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータがアクセス可能な任意の使用可能な媒体であっても、1または複数の使用可能な媒体を統合したサーバまたはデータセンタなどのデータ記憶デバイスであってもよい。使用可能な媒体は、磁気媒体(例えば、フロッピー(登録商標)ディスク、ハードディスクまたは磁気テープ)、光媒体(例えば、DVD)または半導体媒体(例えば、ソリッドステートディスク(Solid State Disk (SSD))など、プログラムコードを格納できる様々な非一時的(non−transitory)機械可読媒体であってよい。
本願において提供される実施形態は例に過ぎないことに留意すべきである。当業者であれば、説明の便宜および簡潔性のために、前述の実施形態において、実施形態は、異なる態様を強調していること、および、ある実施形態において詳細に説明されない部分については、別の実施形態の関連する説明を参照すべきことを明確に把握し得る。本願の実施形態と、特許請求の範囲と、添付図面において開示された特徴とは、独立して存在しても、組み合わせで存在してもよい。本願の実施形態においてハードウェアの形態で説明された特徴は、ソフトウェアにより実行されてよく、その逆も同様である。このことは、本明細書において限定されない。
[項目1]
メモリブロックリクレーム方法であって、上記方法は、コンピュータシステムに適用され、上記コンピュータシステムは、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記方法は、
上記媒体コントローラが、上記メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、上記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームする段階であって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームする段階と
を備えるメモリブロックリクレーム方法。
[項目2]
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームする上記段階は、
上記媒体コントローラが、上記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと上記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
上記媒体コントローラが、上記メモリブロックの上記メモリ物理アドレスをメモリアイドルリストに追加する段階と
を有する、
項目1に記載の方法。
[項目3]
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目1または2に記載の方法。
[項目4]
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記方法は、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、上記媒体コントローラが、予め定められたパターンを上記メモリブロックに書き込む段階
をさらに備える、項目1から3のいずれか一項に記載の方法。
[項目5]
上記方法は、
上記媒体コントローラが、上記メモリコントローラにより送信される読み出しコマンドを受信する段階であって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、受信する段階と、
上記媒体コントローラが、対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
上記媒体コントローラがエラー応答情報を上記メモリコントローラへ送信する段階であって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と
をさらに備える、項目1から4のいずれか一項に記載の方法。
[項目6]
メモリブロックリクレーム方法であって、上記方法は、コンピュータシステムに適用され、上記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記方法は、
上記メモリコントローラが、上記プロセッサにより送信されるトリム(TRIM)命令を受信する段階であって、上記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
上記メモリコントローラが、アンマッピングコマンドを上記媒体コントローラへ送信する段階であって、上記アンマッピングコマンドは、上記リクレーム対象メモリブロックの上記メモリ論理アドレス情報を含み、上記アンマッピングコマンドは、上記メモリブロックをリクレームするよう上記媒体コントローラに命令するために用いられ、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、送信する段階と
を備えるメモリブロックリクレーム方法。
[項目7]
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目6に記載の方法。
[項目8]
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、上記アンマッピングコマンドはさらに、予め定められたパターンを上記メモリブロックに書き込むよう上記媒体コントローラに命令するために用いられる、項目6または7に記載の方法。
[項目9]
上記方法は、
上記メモリコントローラが、読み出しコマンドを上記媒体コントローラへ送信する段階であって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、送信する段階と、
上記メモリコントローラが、上記媒体コントローラにより送信されるエラー応答情報を受信する段階であって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
をさらに備える、項目6から8のいずれか一項に記載の方法。
[項目10]
媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備えるメモリであって、上記媒体コントローラは、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを含み、上記媒体コントローラは、
上記メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、上記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームすることであって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
メモリ。
[項目11]
上記媒体コントローラはさらに、
上記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと上記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
上記メモリブロックの上記メモリ物理アドレスをメモリアイドルリストに追加すること
を行うように構成される、
項目10に記載のメモリ。
[項目12]
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目10または11に記載のメモリ。
[項目13]
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記媒体コントローラはさらに、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを上記メモリブロックに書き込むこと
を行うように構成される、
項目10から12のいずれか一項に記載のメモリ。
[項目14]
上記媒体コントローラはさらに、
上記メモリコントローラにより送信される読み出しコマンドを受信することであって、上記読み出しコマンドは、読み出し対象データの上記メモリ論理アドレス情報を含む、受信することと、
対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を上記メモリコントローラへ送信することであって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成される、
項目10から13のいずれか一項に記載のメモリ。
[項目15]
コンピュータシステムであって、上記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、上記媒体コントローラに接続された不揮発性メモリとを備え、上記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより上記媒体コントローラと通信し、上記不揮発性メモリは、複数のメモリブロックを有し、上記メモリコントローラは、
上記プロセッサにより送信されるトリム命令を受信することであって、上記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
アンマッピングコマンドを上記媒体コントローラへ送信することであって、上記アンマッピングコマンドは、上記リクレーム対象メモリブロックの上記メモリ論理アドレス情報を含み、上記アンマッピングコマンドは、上記メモリブロックをリクレームするよう上記媒体コントローラに命令するために用いられる、送信することと
を行うように構成され、
上記媒体コントローラは、
上記メモリコントローラにより送信される上記アンマッピングコマンドを受信することと、
上記メモリ論理アドレス情報に基づいて上記メモリブロックをリクレームすることであって、リクレームされた上記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
を行うように構成される、
コンピュータシステム。
[項目16]
上記メモリ論理アドレス情報は、上記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、上記開始アドレスは、上記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、上記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、項目15に記載のシステム。
[項目17]
上記アンマッピングコマンドは、消去モード指示情報をさらに含み、上記媒体コントローラはさらに、
上記消去モード指示情報が上記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを上記メモリブロックに書き込むこと
を行うように構成される、
項目15または16に記載のシステム。
[項目18]
上記メモリコントローラはさらに、
プロセッサにより送信されるメモリアクセス要求を受信することであって、上記メモリアクセス要求は、読み出し対象データの上記メモリ論理アドレス情報を含む、受信することを行うように構成され、
上記メモリコントローラはさらに、上記メモリアクセス要求に基づいて読み出しコマンドを上記媒体コントローラへ送信することであって、上記読み出しコマンドは、上記メモリ論理アドレス情報を保持する、送信することを行うように構成され、
上記媒体コントローラはさらに、
対応するメモリ物理アドレスが上記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
エラー応答情報を上記メモリコントローラへ送信することであって、上記エラー応答情報は、上記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
を行うように構成され、
上記メモリコントローラはさらに、上記エラー応答情報に基づいて読み出し失敗情報を上記プロセッサへ送信することを行うように構成される、
項目15から17のいずれか一項に記載のシステム。

Claims (18)

  1. メモリブロックリクレーム方法であって、前記方法は、コンピュータシステムに適用され、前記コンピュータシステムは、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記方法は、
    前記媒体コントローラが、前記メモリコントローラにより送信されるアンマッピングコマンドを受信する段階であって、前記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
    前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームする段階であって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームする段階と
    を備えるメモリブロックリクレーム方法。
  2. 前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームする前記段階は、
    前記媒体コントローラが、前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除する段階と、
    前記媒体コントローラが、前記メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加する段階と
    を有する、
    請求項1に記載の方法。
  3. 前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項1または2に記載の方法。
  4. 前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記方法は、
    前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、前記媒体コントローラが、予め定められたパターンを前記メモリブロックに書き込む段階
    をさらに備える、請求項1から3のいずれか一項に記載の方法。
  5. 前記方法は、
    前記媒体コントローラが、前記メモリコントローラにより送信される読み出しコマンドを受信する段階であって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、受信する段階と、
    前記媒体コントローラが、対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断する段階と、
    前記媒体コントローラがエラー応答情報を前記メモリコントローラへ送信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信する段階と
    をさらに備える、請求項1から4のいずれか一項に記載の方法。
  6. メモリブロックリクレーム方法であって、前記方法は、コンピュータシステムに適用され、前記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記方法は、
    前記メモリコントローラが、前記プロセッサにより送信されるトリム(TRIM)命令を受信する段階であって、前記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信する段階と、
    前記メモリコントローラが、アンマッピングコマンドを前記媒体コントローラへ送信する段階であって、前記アンマッピングコマンドは、前記リクレーム対象メモリブロックの前記メモリ論理アドレス情報を含み、前記アンマッピングコマンドは、前記メモリブロックをリクレームするよう前記媒体コントローラに命令するために用いられ、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、送信する段階と
    を備えるメモリブロックリクレーム方法。
  7. 前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項6に記載の方法。
  8. 前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、前記アンマッピングコマンドはさらに、予め定められたパターンを前記メモリブロックに書き込むよう前記媒体コントローラに命令するために用いられる、請求項6または7に記載の方法。
  9. 前記方法は、
    前記メモリコントローラが、読み出しコマンドを前記媒体コントローラへ送信する段階であって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、送信する段階と、
    前記メモリコントローラが、前記媒体コントローラにより送信されるエラー応答情報を受信する段階であって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、受信する段階と
    をさらに備える、請求項6から8のいずれか一項に記載の方法。
  10. 媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備えるメモリであって、前記媒体コントローラは、NVDIMM−Pプロトコルを用いることによりプロセッサのメモリコントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを含み、前記媒体コントローラは、
    前記メモリコントローラにより送信されるアンマッピングコマンドを受信することであって、前記アンマッピングコマンドは、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
    前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームすることであって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
    を行うように構成される、
    メモリ。
  11. 前記媒体コントローラはさらに、
    前記メモリ論理アドレス情報に基づいて、メモリ論理アドレスと前記メモリブロックの対応するメモリ物理アドレスとの間のマッピング関係を削除することと、
    前記メモリブロックの前記メモリ物理アドレスをメモリアイドルリストに追加すること
    を行うように構成される、
    請求項10に記載のメモリ。
  12. 前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項10または11に記載のメモリ。
  13. 前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
    前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを前記メモリブロックに書き込むこと
    を行うように構成される、
    請求項10から12のいずれか一項に記載のメモリ。
  14. 前記媒体コントローラはさらに、
    前記メモリコントローラにより送信される読み出しコマンドを受信することであって、前記読み出しコマンドは、読み出し対象データの前記メモリ論理アドレス情報を含む、受信することと、
    対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
    エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
    を行うように構成される、
    請求項10から13のいずれか一項に記載のメモリ。
  15. コンピュータシステムであって、前記コンピュータシステムは、プロセッサと、メモリコントローラと、媒体コントローラと、前記媒体コントローラに接続された不揮発性メモリとを備え、前記メモリコントローラは、NVDIMM−Pプロトコルを用いることにより前記媒体コントローラと通信し、前記不揮発性メモリは、複数のメモリブロックを有し、前記メモリコントローラは、
    前記プロセッサにより送信されるトリム命令を受信することであって、前記トリム命令は、リクレーム対象メモリブロックのメモリ論理アドレス情報を含む、受信することと、
    アンマッピングコマンドを前記媒体コントローラへ送信することであって、前記アンマッピングコマンドは、前記リクレーム対象メモリブロックの前記メモリ論理アドレス情報を含み、前記アンマッピングコマンドは、前記メモリブロックをリクレームするよう前記媒体コントローラに命令するために用いられる、送信することと
    を行うように構成され、
    前記媒体コントローラは、
    前記メモリコントローラにより送信される前記アンマッピングコマンドを受信することと、
    前記メモリ論理アドレス情報に基づいて前記メモリブロックをリクレームすることであって、リクレームされた前記メモリブロックは、利用可能なメモリブロックである、リクレームすることと
    を行うように構成される、
    コンピュータシステム。
  16. 前記メモリ論理アドレス情報は、前記リクレーム対象メモリブロックの開始アドレスおよび長さ情報を含み、前記開始アドレスは、前記リクレーム対象メモリブロックの第1のアドレスを示すために用いられ、前記長さ情報は、リクレーム対象メモリブロックの数を示すために用いられる、請求項15に記載のシステム。
  17. 前記アンマッピングコマンドは、消去モード指示情報をさらに含み、前記媒体コントローラはさらに、
    前記消去モード指示情報が前記メモリブロック内のデータ情報を消去するよう命令した場合、予め定められたパターンを前記メモリブロックに書き込むこと
    を行うように構成される、
    請求項15または16に記載のシステム。
  18. 前記メモリコントローラはさらに、
    プロセッサにより送信されるメモリアクセス要求を受信することであって、前記メモリアクセス要求は、読み出し対象データの前記メモリ論理アドレス情報を含む、受信することを行うように構成され、
    前記メモリコントローラはさらに、前記メモリアクセス要求に基づいて読み出しコマンドを前記媒体コントローラへ送信することであって、前記読み出しコマンドは、前記メモリ論理アドレス情報を保持する、送信することを行うように構成され、
    前記媒体コントローラはさらに、
    対応するメモリ物理アドレスが前記メモリ論理アドレス情報に基づいて見つからない、と判断することと、
    エラー応答情報を前記メモリコントローラへ送信することであって、前記エラー応答情報は、前記読み出しコマンドの実行が失敗していることを示すために用いられる、送信することと
    を行うように構成され、
    前記メモリコントローラはさらに、前記エラー応答情報に基づいて読み出し失敗情報を前記プロセッサへ送信することを行うように構成される、
    請求項15から17のいずれか一項に記載のシステム。
JP2020524281A 2017-11-07 2017-11-07 メモリブロックリクレーム方法およびメモリブロックリクレーム装置 Active JP7279889B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/109808 WO2019090493A1 (zh) 2017-11-07 2017-11-07 内存块回收方法和装置

Publications (2)

Publication Number Publication Date
JP2021501941A true JP2021501941A (ja) 2021-01-21
JP7279889B2 JP7279889B2 (ja) 2023-05-23

Family

ID=66437532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020524281A Active JP7279889B2 (ja) 2017-11-07 2017-11-07 メモリブロックリクレーム方法およびメモリブロックリクレーム装置

Country Status (6)

Country Link
US (2) US20200257620A1 (ja)
EP (2) EP4345629A3 (ja)
JP (1) JP7279889B2 (ja)
KR (1) KR102517685B1 (ja)
CN (2) CN111108488B (ja)
WO (1) WO2019090493A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102517685B1 (ko) * 2017-11-07 2023-04-05 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 블록 복구 방법 및 디바이스
JP7159069B2 (ja) * 2019-01-29 2022-10-24 キオクシア株式会社 メモリシステムおよび制御方法
JP2021135760A (ja) * 2020-02-27 2021-09-13 キオクシア株式会社 メモリシステムおよびメモリ制御方法
CN112162701B (zh) * 2020-09-18 2023-12-22 北京浪潮数据技术有限公司 一种存储空间回收方法、装置、设备及计算机存储介质
US20220318042A1 (en) * 2021-04-01 2022-10-06 RAMScaler, Inc. Distributed memory block device storage
TWI773371B (zh) * 2021-06-09 2022-08-01 宇瞻科技股份有限公司 固態硬碟
US20240028230A1 (en) * 2022-07-20 2024-01-25 Micron Technology, Inc. Storage Access Communications and Data Placement for Improved Performance and Reduced Write Amplification

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258804A (ja) * 2004-03-11 2005-09-22 Toshiba Corp メモリカード装置およびメモリカード制御方法
JP2008535102A (ja) * 2005-03-31 2008-08-28 クゥアルコム・インコーポレイテッド データ記憶装置を管理するためのメカニズム及び方法
US20140006689A1 (en) * 2012-03-16 2014-01-02 Kabushiki Kaisha Toshiba Non-volatile memory device, control method for information processing device, and information processing device
JP2014232543A (ja) * 2012-06-19 2014-12-11 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
JP2015501960A (ja) * 2012-03-13 2015-01-19 株式会社日立製作所 不揮発半導体メモリを含んだ不揮発半導体記憶デバイスを有するストレージシステム
JP2016206938A (ja) * 2015-04-22 2016-12-08 キヤノン株式会社 情報処理システム、情報処理システムのメモリ制御方法、及びプログラム
US20170102873A1 (en) * 2015-10-07 2017-04-13 Craig Hanson Dimm ssd addressing performance techniques
JP2017157214A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. インモジュール機能を遂行するメモリモジュール

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1271524C (zh) * 2003-03-19 2006-08-23 华为技术有限公司 一种静态内存管理方法
US7502256B2 (en) 2004-11-30 2009-03-10 Siliconsystems, Inc. Systems and methods for reducing unauthorized data recovery from solid-state storage devices
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
JP5087954B2 (ja) * 2007-03-01 2012-12-05 横河電機株式会社 メモリ管理装置
US9134918B2 (en) * 2009-12-31 2015-09-15 Sandisk Technologies Inc. Physical compression of data with flat or systematic pattern
US8407445B1 (en) * 2010-03-31 2013-03-26 Emc Corporation Systems, methods, and computer readable media for triggering and coordinating pool storage reclamation
US8949502B2 (en) * 2010-11-18 2015-02-03 Nimble Storage, Inc. PCIe NVRAM card based on NVDIMM
CN102622309B (zh) * 2011-01-30 2016-03-30 华为数字技术(成都)有限公司 数据安全擦除方法及装置
CN102622310A (zh) * 2011-01-30 2012-08-01 成都市华为赛门铁克科技有限公司 无效数据擦除方法、装置及***
JP5624510B2 (ja) * 2011-04-08 2014-11-12 株式会社東芝 記憶装置、記憶システム及び認証方法
US10803970B2 (en) * 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
US8938584B2 (en) * 2012-04-30 2015-01-20 Dell Products, Lp System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated
JP5586718B2 (ja) * 2012-06-19 2014-09-10 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
US9235344B2 (en) * 2012-11-28 2016-01-12 International Business Machines Corporation Identifying redundant data for disk image streaming
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
CN103559138B (zh) * 2013-10-09 2016-03-30 华为技术有限公司 固态硬盘及其空间管理方法
CN103577343B (zh) * 2013-11-20 2016-04-06 华为技术有限公司 内存管理方法和装置
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式***
CN103984641B (zh) * 2014-05-22 2017-12-22 华为技术有限公司 一种基于精简配置技术的存储空间回收方法及其装置
US9841902B2 (en) * 2014-11-20 2017-12-12 Avago Technologies General Ip (Singapore) Pte. Ltd. Peripheral component interconnect express controllers configured with non-volatile memory express interfaces
US10261725B2 (en) * 2015-04-10 2019-04-16 Toshiba Memory Corporation Storage system capable of invalidating data stored in a storage device thereof
JP2017027388A (ja) * 2015-07-23 2017-02-02 株式会社東芝 メモリシステムおよび不揮発性メモリの制御方法
KR20170059049A (ko) * 2015-11-19 2017-05-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20170206165A1 (en) * 2016-01-14 2017-07-20 Samsung Electronics Co., Ltd. Method for accessing heterogeneous memories and memory module including heterogeneous memories
CN105760311B (zh) * 2016-02-17 2019-08-30 珠海全志科技股份有限公司 trim命令响应方法和***及操作***
US9927999B1 (en) 2016-09-09 2018-03-27 Western Digital Technologies, Inc. Trim management in solid state drives
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
CN106980541B (zh) * 2017-03-10 2019-11-19 浙江大学 一种大页内存压缩回收***及方法
US11243899B2 (en) * 2017-04-28 2022-02-08 International Business Machines Corporation Forced detaching of applications from DMA-capable PCI mapped devices
CN107291625B (zh) * 2017-06-19 2020-06-09 济南浪潮高新科技投资发展有限公司 一种用于Nand Flash的指针式逻辑地址映射表实现方法
GB2563883B (en) 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Invalidation of a target realm in a realm hierarchy
US10649967B2 (en) 2017-07-18 2020-05-12 Vmware, Inc. Memory object pool use in a distributed index and query system
US10585754B2 (en) * 2017-08-15 2020-03-10 International Business Machines Corporation Memory security protocol
KR102517685B1 (ko) * 2017-11-07 2023-04-05 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 블록 복구 방법 및 디바이스
US10275352B1 (en) * 2017-12-28 2019-04-30 Advanced Micro Devices, Inc. Supporting responses for memory types with non-uniform latencies on same channel

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258804A (ja) * 2004-03-11 2005-09-22 Toshiba Corp メモリカード装置およびメモリカード制御方法
JP2008535102A (ja) * 2005-03-31 2008-08-28 クゥアルコム・インコーポレイテッド データ記憶装置を管理するためのメカニズム及び方法
JP2015501960A (ja) * 2012-03-13 2015-01-19 株式会社日立製作所 不揮発半導体メモリを含んだ不揮発半導体記憶デバイスを有するストレージシステム
US20140006689A1 (en) * 2012-03-16 2014-01-02 Kabushiki Kaisha Toshiba Non-volatile memory device, control method for information processing device, and information processing device
JP2014232543A (ja) * 2012-06-19 2014-12-11 株式会社東芝 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置
JP2016206938A (ja) * 2015-04-22 2016-12-08 キヤノン株式会社 情報処理システム、情報処理システムのメモリ制御方法、及びプログラム
US20170102873A1 (en) * 2015-10-07 2017-04-13 Craig Hanson Dimm ssd addressing performance techniques
JP2017157214A (ja) * 2016-03-03 2017-09-07 三星電子株式会社Samsung Electronics Co.,Ltd. インモジュール機能を遂行するメモリモジュール

Also Published As

Publication number Publication date
KR102517685B1 (ko) 2023-04-05
US20230325311A1 (en) 2023-10-12
EP3696681A1 (en) 2020-08-19
EP4345629A2 (en) 2024-04-03
CN111108488A (zh) 2020-05-05
EP3696681A4 (en) 2020-10-21
US20200257620A1 (en) 2020-08-13
KR20200078592A (ko) 2020-07-01
US11886333B2 (en) 2024-01-30
CN111108488B (zh) 2022-05-10
JP7279889B2 (ja) 2023-05-23
EP4345629A3 (en) 2024-07-03
CN113760185A (zh) 2021-12-07
EP3696681B1 (en) 2023-12-20
WO2019090493A1 (zh) 2019-05-16

Similar Documents

Publication Publication Date Title
JP2021501941A (ja) メモリブロックリクレーム方法およびメモリブロックリクレーム装置
TWI741671B (zh) 記憶體系統
US9734085B2 (en) DMA transmission method and system thereof
US9395921B2 (en) Writing data using DMA by specifying a buffer address and a flash memory address
US11960749B2 (en) Data migration method, host, and solid state disk
US10635358B2 (en) Memory management method and storage controller
US11249911B2 (en) Storage device, memory system, and operating method for managing host-resident L2P map cache
JP2018073040A (ja) メモリシステム
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
US20160124639A1 (en) Dynamic storage channel
CN113032293A (zh) 缓存管理器及控制部件
TWI734220B (zh) 主機輸出入命令的執行裝置及方法及電腦程式產品
KR20210112548A (ko) 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법
US11573732B2 (en) Storage device, memory system comprising the same, and operation method thereof
US20210034513A1 (en) Storage device and operating method thereof
CN113031849A (zh) 直接内存存取单元及控制部件
US20230147477A1 (en) Storage device, memory system comprising the same, and operation method thereof
EP4160422A1 (en) Method for using intermediate device to process data, computer system, and intermediate device
CN117369710A (zh) 用于控制部件的方法及相关产品
CN113867615A (zh) 缓存智能分配方法及控制部件

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200608

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210726

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220425

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220425

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220506

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220510

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20220722

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20220726

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20220906

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20221011

C302 Record of communication

Free format text: JAPANESE INTERMEDIATE CODE: C302

Effective date: 20221209

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20221213

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230301

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20230314

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20230411

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20230411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230427

R150 Certificate of patent or registration of utility model

Ref document number: 7279889

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150