JP2023092425A - ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法 - Google Patents

ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法 Download PDF

Info

Publication number
JP2023092425A
JP2023092425A JP2022083519A JP2022083519A JP2023092425A JP 2023092425 A JP2023092425 A JP 2023092425A JP 2022083519 A JP2022083519 A JP 2022083519A JP 2022083519 A JP2022083519 A JP 2022083519A JP 2023092425 A JP2023092425 A JP 2023092425A
Authority
JP
Japan
Prior art keywords
memory
storage system
logical block
block address
fragmentation
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
JP2022083519A
Other languages
English (en)
Other versions
JP7293458B1 (ja
Inventor
ジルベルシュタイン・エイナブ
Zilberstein Einav
オシンスキー・ハダス
Oshinsky Hadas
スリマン・マーヤン
Suliman Maayan
インバー・カリン
Inbar Karin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Application granted granted Critical
Publication of JP7293458B1 publication Critical patent/JP7293458B1/ja
Publication of JP2023092425A publication Critical patent/JP2023092425A/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/061Improving I/O performance
    • 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/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
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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

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)

Abstract

Figure 2023092425000001
【課題】ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法を提供する。
【解決手段】記憶システムは、複数の論理ブロックアドレス範囲のそれぞれについてのメモリフラグメンテーションレベルを決定する。所与の論理ブロックアドレス範囲についてのメモリフラグメンテーションレベルは、メモリのフラグメンテーションの現在の状態において当該論理ブロックアドレス範囲を読み出すのに必要とされるメモリセンスの数と、フラグメンテーションがないと想定して当該論理ブロックアドレス範囲を読み出すのに必要とされるメモリセンスの数とに従って、決定される。メモリフラグメンテーションレベルは、メモリフラグメンテーションレベルの増加が逐次読み出し性能の減少をもたらすということにおいて、当該論理ブロックアドレス範囲についての逐次読み出し性能と相関する。
【選択図】図4

Description

記憶システムのメモリのフラグメンテーションは、記憶システムの性能を低減し得る。このようなフラグメンテーションは、ホストが更新をメモリ内に以前に記憶されたファイルに書き込むときに起こり得る。経時的に、フラグメンテーションのレベルが増加し得、性能の劣化の増加をもたらす。記憶システムの性能を増加させるために、パーソナルコンピュータなどの電子デバイスは、ファイルの論理アドレスが断片化された場合、ファイルシステムデフラグメンテーション動作を実行することができる。
一実施形態の不揮発性記憶システムのブロック図である。
一実施形態の記憶モジュールを示すブロック図である。
一実施形態の階層記憶システムを示すブロック図である。
一実施形態による、図1Aに示す不揮発性記憶システムのコントローラの構成要素を示すブロック図である。
一実施形態による、図1Aに示す不揮発性記憶システムの構成要素を示すブロック図である。
一実施形態のホスト及び記憶システムのブロック図である。
一実施形態のホスト、コントローラ、及びメモリダイのブロック図である。
メモリセンスのパーセンテージの増加につれての逐次読み出し低下を示す一実施形態のグラフである。
逐次読み出し低下とフラグメンテーションレベルとの間の相関関係を示す一実施形態のグラフである。
ストレージフラグメンテーションを定量化し性能低下を予測するための一実施形態の方法のフローチャートである。
以下の実施形態は、概して、ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法に関する。一実施形態では、メモリとコントローラとを備える記憶システムが提示されている。コントローラは、メモリの複数の論理ブロックアドレス範囲のそれぞれについてのメモリフラグメンテーションレベルを、(i)メモリのフラグメンテーションの現在の状態において当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスと、(ii)フラグメンテーションがないと想定して当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスとに従って、決定し、決定されたメモリフラグメンテーションレベルと相関する逐次読み出し性能の減少を予測するように構成されている。
別の実施形態において、メモリの複数の論理ブロックアドレス範囲のそれぞれについてメモリフラグメンテーションレベルを、(i)メモリのフラグメンテーションの現在の状態において当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスと、(ii)フラグメンテーションがないと想定して当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスとから、計算することと、計算されたメモリフラグメンテーションレベルと相関する逐次読み出し性能の減少を予測することを含む方法が提供されている。更に別の実施形態では、メモリと、複数の論理ブロックアドレス範囲のそれぞれについてメモリフラグメンテーションレベルを決定するための手段と、メモリフラグメンテーションレベルに基づいて、逐次読み出し性能の減少を予測するための手段とを備える記憶システムが提供されている。他の実施形態が提供されており、単独で又は組み合わせて使用されてもよい。
ここで図面を参照すると、これらの実施形態の態様の実装において使用するのに好適な記憶システムが、図1A~図1Cに示されている。図1Aは、本明細書に記載の主題の一実施形態による(本明細書では記憶デバイス又は単にデバイスと称されることがある)不揮発性記憶システム100を示すブロック図である。図1Aを参照すると、不揮発性記憶システム100は、コントローラ102と、1つ以上の不揮発性メモリダイ104から構成され得る不揮発性メモリとを含む。本明細書で使用される際、ダイという用語は、単一の半導体基板上に形成されている、不揮発性メモリセルと、これらの不揮発性メモリセルの物理的動作を管理するための関連付けられた回路との集合体を指す。コントローラ102は、ホストシステムとインターフェースし、不揮発性メモリダイ104への読み出し、プログラム、及び消去動作のためのコマンドシーケンスを送信する。
コントローラ102(コントローラ102は、不揮発性メモリコントローラ(例えば、フラッシュ、抵抗性ランダムアクセスメモリ(Resistive Random-Access Memory、ReRAM)、相変化メモリ(Phase-Change Memory、PCM)、又は磁気抵抗性ランダムアクセスメモリ(Magneto-Resistive Random-Access Memory、MRAM)コントローラ)であってもよい)は、処理回路、マイクロプロセッサ又はプロセッサ、及びコンピュータ可読媒体の形態をとることができ、コンピュータ可読媒体は、例えば、(マイクロ)プロセッサ、ロジックゲート、スイッチ、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、プログラム可能ロジックコントローラ、及び埋め込みマイクロコントローラによって実行可能なコンピュータ可読プログラムコード(例えば、ファームウェア)を記憶する。コントローラ102は、以下に記載しフロー図に示す様々な機能を実行するためのハードウェア及び/又はファームウェアで構成され得る。また、コントローラの内部にあるとして図に示す構成要素のうちのいくつかはまた、コントローラの外部に記憶されてもよく、他の構成要素が使用されてもよい。追加的に、「と動作可能に通信する」という語句は、と直接通信する、又はと1つ以上の構成要素を介して間接的に(有線又は無線)通信することを意味し得、これは、本明細書において図示及び記載されていることがあり、又は図示及び記載されていないことがある。
本明細書で使用される際、不揮発性メモリコントローラは、不揮発性メモリに記憶されたデータを管理しコンピュータ又は電子デバイスなどのホストと通信するデバイスである。不揮発性メモリコントローラは、本明細書に記載の特定の機能に加えて、様々な機能を有することができる。例えば、不揮発性メモリコントローラは、不揮発性メモリが適切に動作していることを確実にし、不良の不揮発性メモリセルをマッピングし出し(map out)、将来の故障セルと置換される予備セルを割り当てるために、メモリをフォーマットすることができる。予備セルのうちのある部分は、不揮発性メモリコントローラを動作させ他の特徴を実装するためのファームウェアを保持するために使用され得る。動作において、ホストがデータを不揮発性メモリから読み出す又はデータを不揮発性メモリに書き込む必要があるときに、ホストは不揮発性メモリコントローラと通信することができる。ホストが、データがそれに読み出される/書き込まれる論理アドレスを提供する場合、不揮発性メモリコントローラは、ホストから受信された論理アドレスを不揮発性メモリ内の物理アドレスに変換することができる。(代替的に、ホストが、物理アドレスを提供することができる。)不揮発性メモリコントローラはまた、(そうでなければ繰り返しそれに書き込まれる特定のメモリセルブロックのウェアを回避するために書き込みを分散させる)ウェアレベリング及び(ブロックが満杯になった後、有効なデータページのみを新たなブロックに移動させ、このため、フルブロックが消去及び再使用され得る)ガーベッジコレクションなどを含むがこれらに限定されない様々なメモリ管理機能を実行することができる。また、特許請求の範囲に記載の「手段」のための構造は、例えば、コントローラに、記載されている機能を実行するために動作させるように必要に応じてプログラム又は製造される、本明細書に記載のコントローラの構造のうちのいくつか又は全てを含むことができる。
不揮発性メモリダイ104は、ReRAM、MRAM、PCM、NANDフラッシュメモリセル及び/又はNORフラッシュメモリセルを含む任意の好適な不揮発性記憶媒体を含み得る。メモリセルは、固体(例えば、フラッシュ)メモリセルの形態をとることができ、1回プログラム可能、複数回プログラム可能、又は多数回プログラム可能であり得る。メモリセルはまた、シングルレベルセル(Single-Level Cell、SLC)、マルチレベルセル(Multiple-Level Cell、MLC)、トリプルレベルセル(Triple-Level Cell、TLC)、クワッドレベルセル(Quad-Level Cell、QLC)であり得、又は現在既知である若しくは今後開発される他のメモリセルレベル技術を使用し得る。また、メモリセルは、二次元的に又は三次元的に作製され得る。
コントローラ102と不揮発性メモリダイ104との間のインターフェースは、トグルモード200、400、又は800などの任意の好適なフラッシュインターフェースであってもよい。一実施形態では、記憶システム100は、セキュアデジタル(Secure Digital、SD)又はマイクロセキュアデジタル(Micro Secure Digital、マイクロSD)カード(又はUSB、SSDなど)などのカードベースシステムであってもよい。代替の実施形態では、記憶システム100は、埋め込み記憶システムの一部分であってもよい。
図1Aに示す例では、(本明細書では記憶モジュールと称されることがある)不揮発性記憶システム100は、コントローラ102と不揮発性メモリダイ104との間に単一のチャネルを含み、本明細書に記載の主題は、単一のメモリチャネルを有することに限定されない。例えば、(図1B及び図1Cに示すものなど)いくつかの記憶システムアーキテクチャでは、2つ、4つ、8つ、又はこれ以上のメモリチャネルが、コントローラの能力に依存して、コントローラとメモリデバイスとの間に存在し得る。本明細書に記載の実施形態のうちのいずれでは、単一のチャネルが図に示されている場合でも、単一より多いチャネルが、コントローラとメモリダイとの間に存在し得る。
図1Bは、複数の不揮発性記憶システム100を含む記憶モジュール200を示す。したがって、記憶モジュール200は、記憶コントローラ202を含み得、記憶コントローラ202は、ホスト及び記憶システム204とインターフェースし、記憶システム204は、複数の不揮発性記憶システム100を含む。記憶コントローラ202と不揮発性記憶システム100との間のインターフェースは、シリアルアドバンストテクノロジーアタッチメント(Serial Advanced Technology Attachment、SATA)、周辺構成要素相互接続エクスプレス(Peripheral Component Interconnect express、PCIe)インターフェース、又はダブルデータレート(Double-Data-Rate、DDR)インターフェースなどのバスインターフェースであってもよい。一実施形態では、記憶モジュール200は、ラップトップコンピュータ及びタブレットコンピュータなどのサーバPC又はポータブルコンピューティングデバイスにおいて見出されるような、ソリッドステートドライブ(Solid State Drive、SSD)、又は不揮発性デュアルインラインメモリモジュール(Non-Volatile Dual In-line Memory Module、NVDIMM)であってもよい。
図1Cは、階層記憶システムを示すブロック図である。階層記憶システム250は、複数の記憶コントローラ202を含み、複数の記憶コントローラ202のそれぞれは、個々の記憶システム204を制御する。ホストシステム252は、記憶システム内のメモリにバスインターフェースを介してアクセスし得る。一実施形態では、バスインターフェースは、不揮発性メモリエクスプレス(Non-Volatile Memory express、NVMe)又はファイバチャネルオーバイーサネット(Fiber Channel over Ethernet、FCoE)インターフェースであってもよい。一実施形態では、図1Cに示すシステムは、データセンタ又は大容量記憶装置が必要とされる他の場所において見出されるような、複数のホストコンピュータによってアクセス可能であるラックマウント可能な大容量記憶システムであってもよい。
図2Aは、コントローラ102の構成要素をより詳細に示すブロック図である。コントローラ102は、ホストとインターフェースするフロントエンドモジュール108と、1つ以上の不揮発性メモリダイ104とインターフェースするバックエンドモジュール110と、ここで詳細に説明する機能を実行する様々な他のモジュールとを含む。モジュールは、例えば、他の構成要素との使用のために設計されたパッケージ化された機能ハードウェアユニット、関連する機能の特定の機能を通常実行する(マイクロ)プロセッサ若しくは処理回路によって実行可能なプログラムコード(例えば、ソフトウェア又はファームウェア)の一部分、又はより大きいシステムとインターフェースする自己完結型のハードウェア若しくはソフトウェア構成要素の形態をとり得る。コントローラ102は、本明細書では、NANDコントローラ又はフラッシュコントローラと称され得ることがあるが、コントローラ102は、任意の好適なメモリ技術とともに使用され得ることを理解されたく、このうちのいくつかの例が、以下に提供されている。
コントローラ102のモジュールを再び参照すると、バッファマネージャ/バスコントローラ114は、ランダムアクセスメモリ(Random Access Memory、RAM)116内のバッファを管理し、コントローラ102の内部バス調停を制御する。読み出し専用メモリ(Read Only Memory、ROM)118は、システム起動コードを記憶する。コントローラ102から分離して位置するとして図2Aに示すが、他の実施形態では、RAM 116及びROM 118の一方又は両方がコントローラ内に位置してもよい。更に他の実施形態では、RAM及びROMの一部分が、コントローラ102内及びコントローラ外の両方に位置し得る。
フロントエンドモジュール108は、ホストインターフェース120及び物理層インターフェース(Physical Layer Interface、PHY)122を含み、ホストインターフェース120及びPHY 122は、ホスト又は次のレベルの記憶コントローラとの電気的インターフェースを提供する。ホストインターフェース120のタイプの選択は、使用されているメモリのタイプに依存し得る。ホストインターフェース120の例としては、SATA、SATAエクスプレス、シリアルアタッチドスモールコンピュータシステムインターフェース(Serially Attached Small Computer System Interface、SAS)、ファイバチャネル、ユニバーサルシリアルバス(Universal Serial Bus、USB)、PCIe、及びNVMeが挙げられるが、これらに限定されない。ホストインターフェース120は、典型的には、データ、制御信号、及びタイミング信号についての転送を容易にする。
バックエンドモジュール110は、エラー訂正コード(Error Correction Code、ECC)エンジン124を含み、ECCエンジン124は、ホストから受信されたデータバイトをコード化し、不揮発性メモリから読み出されたデータバイトを復号及びエラー訂正をする。コマンドシーケンサ126は、不揮発性メモリダイ104に送信されるプログラムコマンドシーケンス及び消去コマンドシーケンスなどのコマンドシーケンスを生成する。独立ドライブの冗長配列(Redundant Array of Independent Drive、RAID)モジュール128は、RAIDパリティの生成及び失敗したデータの回復を管理する。RAIDパリティは、メモリデバイス104内に書き込まれているデータのための完全性保護の追加のレベルとして使用され得る。いくつかのケースでは、RAIDモジュール128は、ECCエンジン124の一部分であってもよい。メモリインターフェース130は、コマンドシーケンスを不揮発性メモリダイ104に提供し、状態情報を不揮発性メモリダイ104から受信する。一実施形態では、メモリインターフェース130は、トグルモード200、400、又は800インターフェースなどのダブルデータレート(DDR)インターフェースであり得る。フラッシュ制御層132は、バックエンドモジュール110の全体的な動作を制御する。
記憶システム100はまた、外部電気的インターフェース、外部RAM、抵抗器、コンデンサ、又はコントローラ102とインターフェースし得る他の構成要素などの他の分離した構成要素140を含む。代替の実施形態では、物理層インターフェース122、RAIDモジュール128、メディア管理層138、及びバッファ管理/バスコントローラ114のうちの1つ以上は、コントローラ102内で必要でない任意選択の構成要素である。
図2Bは、不揮発性メモリダイ104の構成要素をより詳細に示すブロック図である。不揮発性メモリダイ104は、周辺回路141及び不揮発性メモリ配列142を含む。不揮発性メモリ配列142は、データを記憶するために使用される不揮発性メモリセルを含む。不揮発性メモリセルは、ReRAM、MRAM、PCM、NANDフラッシュメモリセル、並びに/又は二次元及び/若しくは三次元構成におけるNORフラッシュメモリセルを含む任意の好適な不揮発性メモリセルであってもよい。不揮発性メモリダイ104は、データをキャッシュするデータキャッシュ156を更に含む。周辺回路141は、状態情報をコントローラ102に提供する状態マシン152を含む。
再び図2Aを参照すると、(本明細書ではフラッシュ変換層(Flash Translation Layer、FTL)と称される、又はより一般に、メモリがフラッシュでないことがある場合、「メディア管理層」と称される)フラッシュ制御層132は、フラッシュエラーを処理し、ホストとインターフェースする。特に、ファームウェア内のアルゴリズムであり得るFTLは、メモリ管理の内部に関与し、ホストからの書き込みをメモリ104内への書き込みに変換する。メモリ104は、制限された耐久性を有することがあり、複数のページ内にのみ書き込まれ得、及び/又は、メモリ104がメモリセルのブロックとして消去されない限り、書き込まれないことがあるため、FTLが、必要とされることがある。FTLは、ホストに可視でない可能性がある、メモリ104のこれらの潜在的制限を理解する。したがって、FTLは、ホストからの書き込みをメモリ104内への書き込みに変換することを試みる。
FTLは、(本明細書では、テーブル又はデータ構造と称されることがある)論理から物理アドレス(Logical-to-Physical address、L2P)マップ及び割り当てられたキャッシュメモリを含んでもよい。このようにして、FTLは、ホストからの論理ブロックアドレス(Logical Block Address、「LBA」)をメモリ104内の物理アドレスに変換する。FTLは、電力オフ回復(このため、FTLのデータ構造は、急な電力損失の事象において回復され得る)、及びウェアレベリング(このため、メモリブロックにわたるウェアは、故障のより大きい機会をもたらし得るあるブロックの過剰ウェアを防止するように一様である)などを含むがこれらに限定されない他の特徴を含むことができる。
再び図面を参照すると、図3は、一実施形態のホスト300及び(本明細書では、デバイスと称されることがある)記憶システム100のブロック図である。ホスト300は、コンピュータ、携帯電話、デジタルカメラ、タブレット、ウェアラブルデバイス、デジタルビデオレコーダ、監視システムなどを含むがこれらに限定されない任意の好適な形態をとることができる。ホスト300は、プロセッサ330を備え、プロセッサ330は、記憶システムのメモリ104(例えば、不揮発性メモリダイ)内に記憶するために、(例えば、ホストのメモリ340(例えば、DRAM)内に最初に記憶された)データを記憶システム100に送信するように構成されている。ホスト300及び記憶システム100は、図3では別個のボックスとして示されているが、記憶システム100は、ホスト300内に統合されてもよく、記憶システム100は、ホスト300に取り外し可能に接続されてもよく、記憶システム100及びホスト300は、ネットワークを介して通信することができることに留意されたい。また、メモリ104は、記憶システム100内に統合されてもよく、又は記憶システム100に取り外し可能に接続されてもよいことに留意されたい。
上記のように、記憶システムのメモリのフラグメンテーションは、記憶システムの性能を減少させることがある。ホスト(例えば、電話又はラップトップ)が古くなるにつれて(例えば、実地において1年を超える動作後)ストレージを一貫した高性能に保つことは、携帯端末産業及び消費財産業にとって大きな課題及び痛点であり、多くの相手先商標製造会社(Original Equipment Manufacturer、OEM)及び記憶システムベンダーが、この課題を解決しようとしている。記憶デバイスにおいて経時的に観察される性能の劣化の主な理由の1つは、記憶媒体(メモリ)におけるNAND物理フラグメンテーションに関係し、NAND物理フラグメンテーションは、ホスト論理ブロックアドレス(LBA)範囲内のホストファイルシステムレイアウトに整合しない。これは、ホストLBA範囲上に逐次的に存在するファイル又はファイルの一部分が、物理NANDレベルで断片化され得ることを意味する。この状況は、NANDメモリがランダムにアクセスされないという基本的なNAND属性に起因して、記憶システムにおいて非常に頻繁に起こり得る。結果として、ホストファイルシステムによって書き込まれるファイルへの全ての「その場更新(update in place)」(すなわち、既に書き込まれたLBAの再書き込み)は、NANDに順次書き込まれる必要があり、これは、以前に書き込まれたNANDブロックにおいて無効化(「ホール(hole)」を作成する。ファイルが依然としてホストLBA範囲上に逐次的に存在しつつ、ファイルシステムのこの基本的な動作は、記憶物理媒体におけるフラグメンテーションレベルを徐々に増加させる。ホストが、断片化されたファイル又は断片化されたファイルの一部分の逐次読み出しを実行したときに、経験される性能は、断片化されたファイルを読み取るのに必要とされるNANDデータセンス動作の数の増加に起因して、著しく低下し得る。
この状況は、ファイルシステムの挙動がNANDの物理的制限と整合しないことに起因して、記憶システムにおいて非常に頻繁に起こり得るため、記憶システム100が多くの(例えば、数十の)断片化されたファイルで終了する状況があり得る。任意の所与のファイルのデフラグメンテーション(「デフラグ」)プロセスは、追加の書き込みを作成し、記憶システム100の書き込み増幅率(Write Amplification Factor、WAF)、耐久性、及び待機時間に影響を与え得るため、このプロセスは、コストのかかるプロセスである。このため、ホスト300又は記憶システム100は、断片化されたファイルの間で優先順位付けし、デフラグメンテーションプロセスによって最も利益を得るファイルを選択する必要があり得る。
いくつかのホストファイルシステムは、ファイルフラグメンテーションレベルを計算及び定量化するための機構を有する。例えば、FS_IOC_FIEMAPは、ファイルエクステントマッピングを得て論理フラグメンテーションレベルを理解するためにF2FSファイルシステムによって使用される入出力制御(Input-Output Control、IOCTL)である。しかしながら、この機構は、ファイルシステムに可視であるファイルLBAマッピングのみに基づく。ファイルは、上記のように、ホストLBA範囲上で逐次的存在するが、この機構は、メモリ104内のフラグメンテーションの実際のレベルを定量化せず、これは、記憶システム100内の内部アルゴリズム及び分析によって行われ得る。
別の手法では、記憶システム100は、物理ファイルフラグメンテーション条件を徐々に改善し逐次読み出し性能の経時的な劣化を防止するために、コントローラ102によって内部的に(例えば、ファームウェアにおいて)実行される自動デフラグメンテーション解決策を提供するように構成され得る。例えば、コントローラ102は、コントローラ102がNAND読み出しページサイズよりも大きいホスト読み出しのそれぞれについて実行するデータセンスの数を監視するように構成され得る。この方法は、断片化されたNANDページの全てのホスト読み出しにおいて実行され得る。
一実施形態では、コントローラ102は、デフラグ動作のためのLBA範囲間の優先順位付けを可能にするために、(ファイルに対応してもよく又はファイルに対応しなくてもよい)LBA範囲ごとに全体的なデフラグメンテーション尺度を計算するように構成されている。コントローラ102はまた、学習システム、警告機構、又は任意の他のシステム回復実施の一部分として使用され得るファイル読み出し性能低下を予測するように構成され得る。より具体的には、コントローラ102は、(コントローラ102又はホスト300によって作成され得る)LBA範囲マップを参照してストレージ物理フラグメンテーションレベルを定量化し、LBA範囲のそれぞれについての物理フラグメンテーションのレベルを定量化し、LBA範囲のそれぞれについての予想される性能低下のレベルを評価し、デフラグメンテーションのための最も重大なケース(例えば、最も大きい逐次読み出し性能低下が予想されるケース)を識別及び優先順位付けし、システム学習、警告、又は回復方法の一部分として性能低下予測を統合するように構成され得る。
以下の段落は、例示的な実施形態の詳細を提供する。これらは単に例であり、他の実装が使用され得ることを理解されたい。したがって、これらの例の詳細は、例において明示的に記載されていない限り、特許請求の範囲と解釈されるべきではない。
再び図面を参照すると、図4は、一実施形態のホスト100及び記憶システム構成要素(コントローラ102及びメモリダイ104)のブロック図である。図4に示すように、この実施形態でのコントローラ102は、LBAマッピングモジュール400及びフラグメンテーションレベルモジュール410を備える。LBAマッピングモジュール400は、特定のファイルに関係してもよく又は特定のファイルに関係しなくてもよいLBA範囲のマップを作成するように構成されている。上記のように、代替の実施形態では、LBA範囲のマップは、ホスト300又は別のエンティティによって作成される。フラグメンテーションレベルモジュール410は、以下に記載するスキャン及び式の計算を実行するように構成されている。これらの2つのモジュールは、別個のモジュールとして図4に示されているが、これらのモジュールは、組み合わされてもよいことを理解されたい。また、一方又は両方のモジュールは、本明細書に記載されており図面に示す機能を提供するために、ソフトウェア/ファームウェア及び/又はハードウェアで実装されてもよい。
これらの実施形態は、相関関係が、NANDセンスの数の増加と、ファイルをメモリ104から読み出す間に観察される性能低下との間にあることを認識する。この相関関係は、メモリ104に逐次的に書き込まれた1つのGBファイルについて図5のグラフに示されている。図5に示すように、NANDセンスの数が増加するにつれて、逐次読み出しの性能が減少する。より具体的には、グラフの左端は、ファイルの最大逐次読み出し性能を示す。ファイルのランダム書き込み及び逐次読み出しの繰り返しサイクルが実行されるにつれて、ランダム書き込みペイロードはサイクルごとに徐々に増加する。モデル分析の結果は、逐次読み出し性能が、NANDセンスの数が増加するにつれて徐々の劣化を経験することを示す。
一実施形態では、コントローラ102は、NANDセンス動作の数に基づいて、所与のファイル又はLBAマッピングのストレージフラグメンテーションレベル及び予想される性能低下を定義する。これを行うために、コントローラ102は、(例えば、図5に示すように)NANDセンス増加比と予想される性能低下との間の相関関係に基づく式を使用することができる。最初に、コントローラ102は、LBAマッピングの論理から物理マッピングテーブルをスキャンすることができる。このスキャンに基づいて、コントローラ102は、LBA範囲を読み出すのに必要とされるNANDセンスの数を決定することができる。これは、「actualNANDSenses」として定義される。加えて、コントローラ102は、物理フラグメンテーションが全くない場合、LBA範囲を読み出すのに必要とされたNANDセンスの数として「bestNANDSenses」を計算することができる。次いで、「bestNANDSenses」及び「actualNANDSenses」に基づいて、コントローラ102は、以下の式を使用して物理フラグメンテーションレベルを定量化することができる。
Figure 2023092425000002
図6は、逐次読み出し低下とフラグメンテーションレベルとの間の相関関係を示すグラフである。図6は、フラグメンテーションレベル式が、所与のLBA範囲についての予想される性能低下を+/-10%の分解能で予測することができることを示す。この予測は、記憶システム100又はホスト300内のタスクの優先順位付けのために使用され得る。この予測はまた、予想される性能レベル低下が、ある予め構成された閾値を下回るときにフラグを立てるために、記憶システム100又はホスト300のための警告通知又は機構として使用され得、これは、デフラグメンテーション/回復アクションが実行されるべきであることを示すことができる。
図7は、ストレージフラグメンテーションを定量化し性能低下を予測するための一実施形態の方法のフローチャート700である。図7に示すように、物理フラグメンテーションレベル尺度に基づいて記憶システムをデフラグするための方法が提供されている(動作(act)710)。ここで、コントローラ102は、相関LBA範囲マップを作成する(動作720)。上記のように、LBA範囲は、ファイルに関係してもよく、又はファイルに関係しなくてもよく、LBA範囲マップは、記憶システム100の代わりに、ホスト300又は別のエンティティによって作成されてもよい。次いで、コントローラ102は、上記の式に基づいて、LBA範囲のそれぞれについての物理フラグメンテーションのレベルを定量化する(動作730)。次いで、コントローラ102は、LBA範囲のそれぞれについての予想される性能低下のレベルを評価する(動作740)。その後、コントローラ102は、デフラグメンテーションのための最も重大なケース(すなわち、最も大きい逐次読み出し性能低下が予想されるケース)を識別及び優先順位付けする(動作750)。コントローラ102は、性能予測方法を、学習システム、警告機構、又は任意の他のシステム回復実施の一部分として使用することができる(動作760)。
これらの実施形態に関連付けられたいくつかの利点がある。例えば、これらの実施形態は、メモリ104が物理的に断片化されているがLBA範囲が逐次であるときに、記憶システム100又はホスト300が、コストのかかるデフラグメンテーション動作を優先させることを可能にする。これは、全体的なシステム性能及びユーザエクスペリエンスと、このようなデフラグメンテーションプロセスが記憶システム100に課す書き込み増幅率、耐久性、及び待機時間ヒットとの間のより良好なトレードオフをもたらす。これらの実施形態はまた、ある閾値が超えられたときに警告又は回復推奨が提案/トリガされる、予測ベースの学習システム/機構/人工知能(Artificial Intelligence、AI)アルゴリズムのために使用され得る。
最後に、上記のように、任意の好適なタイプのメモリが使用され得る。半導体メモリデバイスは、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、「DRAM」)、スタティックランダムアクセスメモリ(Static Random Access Memory、「SRAM」)デバイスなどの揮発性メモリデバイス、ReRAM、電気的消去可能プログラム可能読み出し専用メモリ(Electrically Erasable Programmable Read Only Memory、「EEPROM」)、(EEPROMのサブセットとも考えられる)フラッシュメモリ、強誘電性ランダムアクセスメモリ(Ferroelectric Random Access Memory、「FRAM」)、及びMRAMなどの不揮発性メモリデバイス、並びに情報を記憶することが可能である他の半導体素子を含む。これらのタイプのメモリデバイスのそれぞれは、異なる構成を有してもよい。例えば、フラッシュメモリデバイスは、NAND又はNOR構成で構成され得る。
メモリデバイスは、受動素子及び/又は能動素子から、任意の組み合わせで形成されてもよい。非限定的な例として、受動半導体メモリ素子は、ReRAMデバイス素子を含み、これらは、いくつかの実施形態では、抗ヒューズ、相変化材料などの抵抗スイッチング記憶素子、及び任意選択で、ダイオードなどのステアリング素子(steering element)を含む。更に非限定的な例として、能動半導体メモリ素子は、EEPROM及びフラッシュメモリデバイス素子を含み、これらは、いくつかの実施形態では、浮遊ゲート、導電性ナノ粒子、又は電荷蓄積誘電材料などの電荷蓄積領域を含む素子を含む。
複数のメモリ素子は、複数のメモリ素子が直列に接続されているように、又は複数のメモリ素子のそれぞれが個々にアクセス可能であるように構成され得る。非限定的な例として、NAND構成(NANDメモリ)内のフラッシュメモリデバイスは、典型的には、直列に接続されたメモリ素子を含む。NANDメモリ配列は、配列がストリングが複数のメモリストリングから構成されているように構成され得、複数のメモリストリングにおいて、ストリングは、単一のビット線を共有しグループとしてアクセスされる複数のメモリ素子から構成されている。代替的に、メモリ素子は、素子のそれぞれが個々にアクセス可能であるように構成され得、例えば、NORメモリ配列であるように構成され得る。NAND及びNORメモリ構成は、例であり、メモリ素子は、別法で構成されてもよい。
基板内及び/又は基板の上に位置する半導体メモリ素子は、二次元(two Dimensional、2D)メモリ構造、三次元(three Dimensional、3D)メモリ構造などのように、二次元又は三次元で配置され得る。
2Dメモリ構造では、半導体メモリ素子は、単一の平面又は単一のメモリデバイスレベルに配置されている。典型的には、2Dメモリ構造では、メモリ素子は、メモリ素子を支持する基板の主表面に実質的に平行に延びる平面(例えば、xz方向平面)に配置されている。基板は、ウェハであってもよく、ウェハの上又はウェハ内に、メモリ素子の層が形成されており、又は基板は、メモリ素子が形成された後にメモリ素子に取り付けられるキャリア基板であってもよい。非限定的な例として、基板は、シリコンなどの半導体を含み得る。
メモリ素子は、複数の行及び/又は列などの整列した配列において単一のメモリデバイスレベルに配置され得る。しかしながら、メモリ素子は非規則的又は非直交構成で配列され得る。メモリ素子はそれぞれ、2つ以上の電極、又はビット線及びワード線などの接触線を有し得る。
3Dメモリ配列は、メモリ素子が複数の平面又は複数のメモリデバイスレベルを占有するように配置されており、これによって、三次元(すなわち、x、y、及びz方向であり、y方向は、基板の主表面に実質的に垂直であり、x及びz方向は、基板の主表面に実質的に平行である)の構造を形成する。
非限定的な例として、3Dメモリ構造は、複数の2Dメモリデバイスレベルのスタックとして垂直に配置され得る。別の非限定的な例として、3Dメモリ配列は、列のそれぞれが複数のメモリ素子を列のそれぞれにおいて有する複数の垂直列(例えば、基板の主表面に実質的に垂直に、すなわちy方向に延びる列)として配置され得る。列は、2D構成、例えば、xz平面に配置されてもよく、素子が複数の垂直にスタックされたメモリ平面上にあるメモリ素子の3D配置をもたらす。三次元のメモリ素子の他の構成がまた、3Dメモリ配列を構築することができる。
非限定的な例として、3D NANDメモリ配列では、メモリ素子は、NANDストリングを単一の水平(例えば、xz)メモリデバイスレベル内に形成するように一緒に結合され得る。代替的に、メモリ素子は、複数の水平メモリデバイスレベルにわたって横断する垂直なNANDストリングを形成するように一緒に結合され得る。他の3D構成が、企図され得、他の3D構成では、いくつかのNANDストリングは、メモリ素子を単一のメモリレベルで含み、他のストリングは、複数のメモリレベルにわたるメモリ素子を含む。3Dメモリ配列はまた、NOR構成及びReRAM構成で設計されてもよい。
典型的には、モノリシック3Dメモリ配列では、1つ以上のメモリデバイスレベルは、単一の基板の上に形成されている。任意選択で、モノリシック3Dメモリ配列はまた、1つ以上のメモリ層を少なくとも部分的に単一の基板内に有し得る。非限定的な例として、基板は、シリコンなどの半導体を含み得る。モノリシック3D配列では、配列のメモリデバイスレベルのそれぞれを構築する層は、典型的には、配列の下にあるメモリデバイスレベルの層上に形成されている。しかしながら、モノリシック3Dメモリ配列の隣接するメモリデバイスレベルの層は、共有されてもよく、又はメモリデバイスレベル間に介在する層を有してもよい。
次いで、同様に、二次元配列は、別個に形成されてもよく、次いで、一緒にパッケージ化されて、複数のメモリ層を有する非モノリシックメモリデバイスを形成してもよい。例えば、非モノリシックスタックメモリは、メモリレベルを別個の基板上に形成することと、次いで、メモリレベルを互いの上にスタックすることとによって構築され得る。基板は、薄くてもよく、又はスタックの前にメモリデバイスレベルから除去されてもよいが、メモリデバイスレベルは、最初に、別個の基板の上に形成されるため、結果として得られるメモリ配列は、モノリシック3Dメモリ配列ではない。更に、複数の2Dメモリ配列又は3Dメモリ配列(モノリシック又は非モノリシック)は、別個のチップ上に形成されてもよく、次いで、一緒にパッケージ化されてスタックチップメモリデバイスを形成してもよい。
関連付けられた回路は、典型的には、メモリ素子の動作及びメモリ素子との通信のために必要とされる。非限定的な例として、メモリデバイスは、プログラミング及び読み出しなどの機能を達成するためにメモリ素子を制御及び駆動するために使用される回路を有し得る。これの関連付けられた回路は、メモリ素子と同じ基板上及び/又は別個の基板上にあってもよい。例えば、メモリ読み出し書き込み動作のためのコントローラは、別個のコントローラチップ上及び/又はメモリ素子と同じ基板上に位置し得る。
本発明は、記載されている2D及び3Dの構造に限定されず、本明細書で説明されているように及び当業者によって理解されるように、本発明の精神及び範囲内の全ての関連するメモリ構造を網羅することが、当業者には理解されよう。
前述の詳細な説明は、本発明がとり得る選択された形態の例示として理解され、本発明の定義として理解されないことが意図されている。全ての均等物を含む以下の特許請求の範囲のみが、特許請求されている発明の範囲を定義することが意図されている。最後に、本明細書に記載の実施形態のうちのいずれかの任意の態様は、単独で又は互いと組み合わせて使用され得ることに留意されたい。

Claims (20)

  1. メモリと、
    前記メモリに結合されたコントローラと
    を備える記憶システムであって、前記コントローラは、
    前記メモリの複数の論理ブロックアドレス範囲のそれぞれについてのメモリフラグメンテーションレベルを、(i)前記メモリのフラグメンテーションの現在の状態において当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスと、(ii)フラグメンテーションがないと想定して当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスとに従って、決定し、
    前記決定されたメモリフラグメンテーションレベルと相関する逐次読み出し性能の減少を予測するように構成されている、記憶システム。
  2. 前記コントローラは、論理から物理アドレスマップを使用して、前記メモリフラグメンテーションレベルを決定するように更に構成されている、請求項1に記載の記憶システム。
  3. 逐次読み出し性能の前記予測された減少は、学習システム、警告機構、又はシステム回復動作のうちの1つ以上において使用される、請求項1に記載の記憶システム。
  4. 前記論理ブロックアドレス範囲のそれぞれは、前記メモリ内の非逐次物理ブロックアドレスにマッピングする逐次論理ブロックアドレスを含む、請求項1に記載の記憶システム。
  5. 前記コントローラは、読み出しコマンドをホストから受信することから独立して、前記メモリフラグメンテーションレベルを決定するように更に構成されている、請求項1に記載の記憶システム。
  6. 前記コントローラは、前記優先順位付けに基づいてデフラグメンテーション動作を実行するように更に構成されている、請求項1に記載の記憶システム。
  7. 前記デフラグメンテーション動作は、前記デフラグメンテーション動作を実行するために命令をホストから受信することなく実行される、請求項6に記載の記憶システム。
  8. 前記複数の論理ブロックアドレス範囲は、複数のファイルに対応する、請求項1に記載の記憶システム。
  9. 前記コントローラは、前記複数の論理ブロックアドレス範囲を識別するように更に構成されている、請求項1に記載の記憶システム。
  10. 前記複数の論理ブロックアドレス範囲は、ホストによって識別される、請求項1に記載の記憶システム。
  11. 前記コントローラは、前記決定されたメモリフラグメンテーションレベルに基づいて、前記複数の論理ブロックアドレス範囲をデフラグメンテーションのために優先順位付けするように更に構成されており、比較的より高いメモリフラグメンテーションレベルを有する論理ブロックアドレス範囲は、比較的より低いメモリフラグメンテーションレベルを有する論理ブロックアドレス範囲よりも優先される、請求項1に記載の記憶システム。
  12. 前記メモリは、三次元メモリを含む、請求項1に記載の記憶システム。
  13. メモリを備える記憶システムにおいて、
    前記メモリの複数の論理ブロックアドレス範囲のそれぞれについてのメモリフラグメンテーションレベルを、(i)前記メモリのフラグメンテーションの現在の状態において当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスと、(ii)フラグメンテーションがないと想定して当該論理ブロックアドレス範囲を読み出すのに必要とされるいくつかのメモリセンスとから、計算することと、
    前記計算されたメモリフラグメンテーションレベルと相関する逐次読み出し性能の減少を予測することと
    を含む方法。
  14. 前記複数の論理ブロックアドレス範囲におけるデフラグメンテーション動作を、メモリフラグメンテーションレベルが減少する順序で実行することを更に含む、請求項13に記載の方法。
  15. 前記デフラグメンテーション動作は、読み出しコマンドをホストから受信することから独立して実行される、請求項14に記載の方法。
  16. 前記デフラグメンテーション動作は、前記デフラグメンテーション動作を実行するためにコマンドをホストから受信することなく実行される、請求項14に記載の方法。
  17. 前記複数の論理ブロックアドレス範囲は、複数のファイルに対応する、請求項13に記載の方法。
  18. メモリと、
    複数の論理ブロックアドレス範囲のそれぞれについてのメモリフラグメンテーションレベルを決定するための手段と、
    前記メモリフラグメンテーションレベルに基づいて、逐次読み出し性能の減少を予測するための手段と
    を備える記憶システム。
  19. 前記複数の論理ブロックアドレス範囲におけるデフラグメンテーション動作を、メモリフラグメンテーションレベルが減少する順序で実行するための手段を更に備える、請求項18に記載の記憶システム。
  20. 読み出しコマンドをホストから受信することから独立して、デフラグメンテーション動作を実行するための手段を更に備える、請求項18に記載の記憶システム。
JP2022083519A 2021-12-21 2022-05-23 ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法 Active JP7293458B1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/558,014 US11809736B2 (en) 2021-12-21 2021-12-21 Storage system and method for quantifying storage fragmentation and predicting performance drop
US17/558,014 2021-12-21

Publications (2)

Publication Number Publication Date
JP7293458B1 JP7293458B1 (ja) 2023-06-19
JP2023092425A true JP2023092425A (ja) 2023-07-03

Family

ID=86767952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022083519A Active JP7293458B1 (ja) 2021-12-21 2022-05-23 ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法

Country Status (4)

Country Link
US (1) US11809736B2 (ja)
JP (1) JP7293458B1 (ja)
KR (1) KR20230094943A (ja)
CN (1) CN116361198A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11842051B2 (en) * 2022-01-25 2023-12-12 Dell Products L.P. Intelligent defragmentation in a storage system
US20240036739A1 (en) * 2022-07-26 2024-02-01 Silicon Motion, Inc. Method and apparatus for performing data fragmentation reduction control of memory device in predetermined communications architecture with aid of fragmentation information detection, and associated computer-readable medium

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268924A (ja) * 2001-03-08 2002-09-20 Toshiba Corp デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法
JP2003186709A (ja) * 2001-12-14 2003-07-04 Hitachi Kokusai Electric Inc デフラグ処理装置
JP2005208697A (ja) * 2004-01-20 2005-08-04 Hitachi Ltd デフラグ方法
US7409522B1 (en) * 2005-10-26 2008-08-05 Network Appliance, Inc. Method and system for reallocating data in a file system
JP2010020641A (ja) * 2008-07-11 2010-01-28 Canon Inc 記録装置、方法及びプログラム
JP2010522400A (ja) * 2007-03-23 2010-07-01 マイクロソフト コーポレーション 自己管理型処理装置
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
JP2016515231A (ja) * 2013-02-08 2016-05-26 マイクロソフト テクノロジー ライセンシング,エルエルシー 不揮発性記憶デバイスのためのメモリーのリアドレシング
US20170083261A1 (en) * 2014-05-26 2017-03-23 Samsung Electronics Co., Ltd. Electronic device and method of analyzing fragmentation of electronic device
JP2018060321A (ja) * 2016-10-04 2018-04-12 富士通株式会社 メモリ制御装置、情報処理装置、およびメモリ制御方法
US20200401557A1 (en) * 2019-06-24 2020-12-24 Western Digital Technologies, Inc. Metadata compaction in a distributed storage system

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721059B2 (en) 2006-07-06 2010-05-18 Nokia Corporation Performance optimization in solid-state media
US7562203B2 (en) * 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
KR101355193B1 (ko) 2007-12-11 2014-01-27 삼성전자주식회사 실시간 임베디드 시스템의 메모리 관리 장치 및 메모리할당/해제/관리 방법
US8190811B2 (en) 2009-06-09 2012-05-29 Seagate Technology, Llc Defragmentation of solid state memory
TW201110135A (en) 2009-09-02 2011-03-16 Silicon Motion Inc Method for establishing a communication channel between a host device and a memory device, associated memory device and controller thereof, and associated host device and host device application
KR101638061B1 (ko) 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US20130173842A1 (en) 2011-12-28 2013-07-04 King Ying Ng Adaptive Logical Group Sorting to Prevent Drive Fragmentation
US8639894B2 (en) 2012-01-27 2014-01-28 Comcast Cable Communications, Llc Efficient read and write operations
WO2013130109A1 (en) 2012-03-02 2013-09-06 Hewlett-Packard Development Company L.P. Shiftable memory defragmentation
US8990477B2 (en) 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
KR20140099737A (ko) 2013-02-04 2014-08-13 삼성전자주식회사 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
US10140067B1 (en) 2013-12-19 2018-11-27 Western Digital Technologies, Inc. Data management for data storage device with multiple types of non-volatile memory media
US9645742B2 (en) 2014-02-05 2017-05-09 Sandisk Technologies Llc Storage module and host device for storage module defragmentation
CN104866428B (zh) 2014-02-21 2018-08-31 联想(北京)有限公司 数据存取方法和数据存取装置
US9519427B2 (en) 2014-09-02 2016-12-13 Sandisk Technologies Llc Triggering, at a host system, a process to reduce declared capacity of a storage device
US9671971B2 (en) * 2015-03-27 2017-06-06 Intel Corporation Managing prior versions of data for logical addresses in a storage device
US10402114B2 (en) 2015-07-06 2019-09-03 Nec Corporation Information processing system, storage control apparatus, storage control method, and storage control program
WO2017145537A1 (ja) 2016-02-22 2017-08-31 ソニー株式会社 撮像装置および撮像装置の製造方法
US10599619B2 (en) 2017-06-02 2020-03-24 Apple Inc. Techniques for managing file fragmentation at a computing device

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268924A (ja) * 2001-03-08 2002-09-20 Toshiba Corp デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法
JP2003186709A (ja) * 2001-12-14 2003-07-04 Hitachi Kokusai Electric Inc デフラグ処理装置
JP2005208697A (ja) * 2004-01-20 2005-08-04 Hitachi Ltd デフラグ方法
US7409522B1 (en) * 2005-10-26 2008-08-05 Network Appliance, Inc. Method and system for reallocating data in a file system
JP2010522400A (ja) * 2007-03-23 2010-07-01 マイクロソフト コーポレーション 自己管理型処理装置
JP2010020641A (ja) * 2008-07-11 2010-01-28 Canon Inc 記録装置、方法及びプログラム
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
JP2016515231A (ja) * 2013-02-08 2016-05-26 マイクロソフト テクノロジー ライセンシング,エルエルシー 不揮発性記憶デバイスのためのメモリーのリアドレシング
US20170083261A1 (en) * 2014-05-26 2017-03-23 Samsung Electronics Co., Ltd. Electronic device and method of analyzing fragmentation of electronic device
JP2018060321A (ja) * 2016-10-04 2018-04-12 富士通株式会社 メモリ制御装置、情報処理装置、およびメモリ制御方法
US20200401557A1 (en) * 2019-06-24 2020-12-24 Western Digital Technologies, Inc. Metadata compaction in a distributed storage system

Also Published As

Publication number Publication date
KR20230094943A (ko) 2023-06-28
CN116361198A (zh) 2023-06-30
US11809736B2 (en) 2023-11-07
JP7293458B1 (ja) 2023-06-19
US20230195353A1 (en) 2023-06-22

Similar Documents

Publication Publication Date Title
US20170123972A1 (en) Garbage collection based on queued and/or selected write commands
US20160188206A1 (en) Non-Volatile Memory Systems Utilizing Storage Address Tables
US11543987B2 (en) Storage system and method for retention-based zone determination
JP7293458B1 (ja) ストレージフラグメンテーションを定量化し性能低下を予測するための記憶システム及び方法
US11262928B2 (en) Storage system and method for enabling partial defragmentation prior to reading in burst mode
US11836374B1 (en) Storage system and method for data placement in zoned storage
US11847343B2 (en) Storage system and method for non-blocking coherent re-writes
US11626183B2 (en) Method and storage system with a non-volatile bad block read cache using partial blocks
US11520695B2 (en) Storage system and method for automatic defragmentation of memory
US11698751B2 (en) Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer
US11487450B1 (en) Storage system and method for dynamic allocation of control blocks for improving host write and read
US11119938B2 (en) Apparatus and method to synchronize memory map between a storage device and host
US11030106B2 (en) Storage system and method for enabling host-driven regional performance in memory
US11513963B2 (en) Data storage device and method for application identifier handler heads-up for faster storage response
US11429663B2 (en) Storage system and method for host-assisted memory block color coding for faster media search
US11809747B2 (en) Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation
US20230400994A1 (en) Data Storage Device and Method for Dynamic Prediction of Random Read with Low Memory Consumption
US11487449B2 (en) Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns
US20240231689A1 (en) Data Storage Device and Method for Dynamic Controller Memory Buffer Allocation
US11429296B2 (en) Storage system, host, and method for extended and imaginary logical-to-physical address mapping
US20240143227A1 (en) Data Storage Device and Method for Reducing Flush Latency
US20220197532A1 (en) Data Storage Device and Method for Enabling Endurance Re-Evaluation
US20230409234A1 (en) Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment
US20210373789A1 (en) Storage System, Host, and Method for Optimizing Storage of a Sequence of Images

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220606

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20220624

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230328

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230607

R150 Certificate of patent or registration of utility model

Ref document number: 7293458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150