JP2021125267A - ストレージ装置のブロックレベルの故障予測のためのシステム及び方法 - Google Patents

ストレージ装置のブロックレベルの故障予測のためのシステム及び方法 Download PDF

Info

Publication number
JP2021125267A
JP2021125267A JP2021018242A JP2021018242A JP2021125267A JP 2021125267 A JP2021125267 A JP 2021125267A JP 2021018242 A JP2021018242 A JP 2021018242A JP 2021018242 A JP2021018242 A JP 2021018242A JP 2021125267 A JP2021125267 A JP 2021125267A
Authority
JP
Japan
Prior art keywords
block
target block
data
vulnerability factor
controller
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.)
Pending
Application number
JP2021018242A
Other languages
English (en)
Other versions
JP2021125267A5 (ja
Inventor
ニマ,エリヤシ
Elyasi Nima
チャンホ,チェ
Chang-Ho Choi
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021125267A publication Critical patent/JP2021125267A/ja
Publication of JP2021125267A5 publication Critical patent/JP2021125267A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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
    • G06F3/0658Controller construction arrangements
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】ストレージ装置におけるブロックレベルの故障予測のためのシステム及び方法を提供する。
【解決手段】1つ以上のブロックを含むソリッドステートドライブ(SSD)における動的ウェアレベリング及びロードリダイレクトのための方法は、コントローラによって、データをライトするための要請を受信する段階と、1つ以上のブロックの脆弱性因子を演算する段階と、データをライトするための要請を受けるためのターゲットブロックを1つ以上のブロックから選択する段階と、ターゲットブロックの前記脆弱性因子に基づいて、ターゲットブロックの状態を決定する段階と、ターゲットブロックの前記状態に基づいて、ターゲットブロックにデータをライトする段階と、データがターゲットブロックにライトされたことに基づいて、マッピングテーブルをアップデートする段階と、を備える。
【選択図】図3

Description

本発明は、ストレージ装置のブロックレベルの故障予測のためのシステム及び方法に関する。
コンピュータのメモリシステムは、ソリッドステートドライブ(Solid-State Drive、SSD)などのようなストレージ装置を多数含み得る。メモリシステム内でのそれぞれのSSDは、多数のフラッシュチップを含むことができ、それぞれのフラッシュチップは、多数のブロックを含むことができ、それぞれのブロックは、多数のページを含み得る。ページは、数(several)キロバイト(kilobyte)とすることができ、SSDのデータを読み書きするための最小単位である。
本背景技術に開示された上記の情報は、本発明の背景の理解を高めるためのものに過ぎず、従来技術を形成していない情報を含み得る。
米国特許出願公開第2014/0258658号明細書 米国特許出願公開第2017/0277441号明細書 米国特許出願公開第2018/0181492号明細書 米国特許出願公開第2019/0034251号明細書 米国特許出願公開第2019/0289029号明細書
CHEN, et.al.; Energy and Memory Efficient Mapping of Bitonic Sorting On FPGA; Ming Hsieh Department of Electrical Engineering, University of Southern California; Ganges.use.edu/wiki/TAPAS; pps. 1-37 JUN, et.al.; Terabyte Sort on FPGA-Accelerated Flash Storage, 2017 IEEE Computer Society 25th Annual International Symposium on Field-Programmable Custom Computing Machines; pps. 1-8 MUELLER, et.al.; Sorting Networks on FPGAs, System Group, Department of Ccomputer Science; http://www.systems.ethz.ch/; pps. 1-25 MUSLIM, et. al.; Efficient FPGA Implementation of OpenCl High-Performance Computing Applications via High-level Synthesis; IEEE ACCESS; Volume 5, 2017; pps. 2747-2762 SRIVASTAVA, et.al. and CHEN et.al.; A Hybrid Design for High Performance Large-scale Sorting on FPGA; Department of Computer Science, University of Southern California and Ming Hsieh Department of Electrical Engineering, University of Southern California, respectively; 2015 IEEE, pps. 1-6
本発明は、上記の従来技術に鑑みてなされたものであって、本発明の目的は、ストレージ装置におけるブロックレベルの故障予測のためのシステム及び方法を提供することにある。
本発明の実施形態は、ストレージ装置のブロックレベルの故障予測のためのシステム及び方法に関するものである。
本発明のいくつかの実施形態による1つ以上のブロックを含むソリッドステートドライブ(Solid-State Drive、SSD)における動的ウェアレベリング(wear-leveling)及びロードリダイレクト(load redirection)のための方法であって、前記方法は、コントローラによって、データをライト(write)するための要請を受信する段階と、前記コントローラによって、前記1つ以上のブロックの脆弱性因子を演算する段階と、前記コントローラによって、前記データをライト(write)するための要請を受けるためのターゲットブロックを前記1つ以上のブロックから選択する段階と、前記コントローラによって、前記ターゲットブロックの前記脆弱性因子に基づいて、前記ターゲットブロックの状態を決定する段階と、前記コントローラによって、前記ターゲットブロックの前記状態に基づいて、前記ターゲットブロックに前記データをライト(write)する段階と、前記コントローラによって、前記データが前記ターゲットブロックにライト(write)されたことに基づいて、マッピングテーブルをアップデートする段階と、を備える。
いくつかの実施形態によると、前記方法は、前記ターゲットブロックの前記脆弱性因子があらかじめ決められた閾値よりも大きい場合に、前記コントローラによって複製ブロックに前記データをライト(write)する段階、をさらに備える。
いくつかの実施形態によれば、前記状態は、定常状態(healthy status)、脆弱な状態(vulnerable status)及び廃止状態(retired status)のうち、少なくとも1つを含む。
いくつかの実施形態によると、前記マッピングテーブルは、前記ターゲットブロックにライト(write)された前記データの論理ページナンバー(Logical Page Number、LPN)を前記ターゲットブロックにライト(write)された前記データの物理ページナンバー(Physical Page Number、PPN)にマップするテーブルを含む。
いくつかの実施形態によると、前記ターゲットブロックは、前記ターゲットブロックの前記脆弱性因子に基づいて選択される。
いくつかの実施形態によると、最小の脆弱性因子を有する前記ターゲットブロックが選択される。
いくつかの実施形態によれば、前記脆弱性因子は、ブロックレベルのメタデータ(block level metadata)から生成された第1のパラメータセット、及びドライブレベルのメタデータ(drive level metadata)から生成された第2のパラメータセットを使用して演算される。
いくつかの実施形態によれば、前記ブロックレベルのメタデータは、リード(read)エラー、ライト(write)エラー及び消去エラーのうち、少なくとも1つを含む。
いくつかの実施形態によると、前記のドライブレベルのメタデータは、ページの識別、ブロックの識別、タイムスタンプ、ブロックベースのエラー、及びドライブのログデータのうち、1つ以上を含む。
本発明のいくつかの実施形態によるコントローラ及び1つ以上のブロックを含むソリッドステートドライブ(Solid-State Drive、SSD)システムであって、前記コントローラは、データをライト(write)するための要請を受信し、前記1つ以上のブロックの脆弱性因子を演算し、前記データをライト(write)するための要請を受けるためのターゲットブロックを前記1つ以上のブロックから選択し、前記ターゲットブロックの前記脆弱性因子に基づいて、前記ターゲットブロックの状態を決定し、前記ターゲットブロックの前記状態に基づいて、前記ターゲットブロックに前記データをライト(write)し、そして前記データが前記ターゲットブロックにライト(write)されたことに基づいて、マッピングテーブルをアップデートするように構成される。
いくつかの実施形態によると、前記ターゲットブロックの前記脆弱性因子があらかじめ決められた閾値よりも大きい場合に、前記コントローラは、複製ブロックに前記データをライト(write)するように、さらに構成される。
いくつかの実施形態によれば、前記状態は、定常状態(healthy status)、脆弱な状態(vulnerable status)、及び廃止状態(retired status)のうち、少なくとも1つを含む。
いくつかの実施形態によると、前記ターゲットブロックは、前記ターゲットブロックの前記脆弱性因子に基づいて選択される。
いくつかの実施形態によると、最小の脆弱性因子を有する前記ターゲットブロックが選択される。
いくつかの実施形態によれば、前記脆弱性因子は、ブロックレベルのメタデータ(block level metadata)から生成された第1のパラメータセット、及びドライブレベルのメタデータ(drive level metadata)から生成された第2のパラメータセットを使用して演算される。
いくつかの実施形態によれば、前記ブロックレベルのメタデータは、リード(read)エラー、ライト(write)エラー及び消去エラーのうち、少なくとも1つを含む。
いくつかの実施形態によると、前記ドライブレベルのメタデータは、ページの識別、ブロックの識別、タイムスタンプ、ブロックベースのエラー、及びドライブのログデータのうち、1つ以上を含む。
本発明のいくつかの実施形態による1つ以上のメモリ装置を含むメモリシステム内での動的ウェアレベリング(wear-leveling)及びロードリダイレクト(load redirection)のための方法であって、前記方法は、コントローラによって、データをライト(write)するための要請を受信する段階と、前記コントローラによって、前記1つ以上のメモリ装置の脆弱性因子を演算する段階と、前記コントローラによって、前記データをライト(write)するための要請を受けるためのターゲット装置を、前記脆弱性因子に基づいて前記1つ以上のメモリ装置から選択する段階と、前記コントローラによって、前記データをライト(write)するための要請を前記ターゲット装置に伝達する段階と、を備える。
いくつかの実施形態によれば、前記1つ以上のメモリ装置は、1つ以上のフラッシュチップを含む。
いくつかの実施形態によれば、前記1つ以上のフラッシュチップの前記脆弱性因子は、前記1つ以上のフラッシュチップ内のすべてのブロックの脆弱性因子の合計と同一である。
いくつかの実施形態によれば、最小の脆弱性因子を有するフラッシュチップがターゲットのフラッシュチップとして選択される。
いくつかの実施形態によれば、前記1つ以上のメモリ装置は、1つ以上のソリッドステートドライブ(Solid-State Drive、SSD)を含む。
いくつかの実施形態によれば、前記1つ以上のSSDの前記脆弱性因子は、前記1つ以上のSSD内のすべてのフラッシュチップの脆弱性因子の合計と同一である。
いくつかの実施形態によれば、最小の脆弱性因子を有するSSDがターゲットSSDとして選択される。
本発明によると、より脆弱なブロックに対する摩耗を減らし、メモリ装置の寿命を増加させることができる。
本発明によると、メモリ装置の信頼性を向上させることができる。
本発明の実施形態による1つ以上のストレージ装置を有するメモリシステムのイメージを示す。 本発明の実施形態によるソリッドステートドライブ(Solid-State Drive、SSD)内のブロックが故障(又はフェイル、fail)するか否かを予測する方法に対するフローチャートである。 本発明の実施形態によるSSD内のブロックにわたってロード(load)を分散させるための方法のフローチャートである。 本発明の実施形態によるLTPテーブル及びPTLテーブルを示す。 本発明の実施形態による、ブロックレベル、チップレベル及び装置レベルで追跡されるメタデータを示すチャートである。 本発明の実施形態によるメモリシステム内のメモリ装置にわたってロードを分散させるための方法に対するフローチャートである。
ソリッドステートドライブ(Solid-State Drive、以下SSD)のブロック内のページは、時間が経つにつれて劣化(wearing、「摩耗」と称する)して不良が発生する傾向がある。現場でのSSD不良は、サーバーのシャットダウンにつながることがあり、これにより、データセンターのスケールのアプリケーションの性能と可用性を害してしまい得る。このような予期せぬ不良を軽減又は防止するために、SSDを活用するシステムは、不良が発生する前にドライブを交換することにより不良を防止するために、簡単な閾値ベースのモデルを使用することがある。このような保護メカニズムは、高いレベルの誤警報につながるか、又はすべてのSSD不良を予測/予防することはできない。なお、物理的エラーを識別する場合、SSDはそのエラーから回復できない場合があり、これに応じて追加の装置不良を防止できないことがある。さらに、SSD内のいくつかの欠陥のあるページによって、SSDの頻繁なエラーが発生することがある。
いくつかの実施形態によると、メモリシステムは、ブロックレベルにおいて故障予測モジュールの結果を活用し、メモリシステムの多数のSSD装置にわたってロード(load)をリダイレクト(redirect)し、そして動的にチューニングすることができる。このようなアプローチは、SSDの寿命を延長し、使用可能な容量をよりよく活用することができる。
多様な実施形態によると、本発明は、メモリシステムのSSD内でブロックにわたってデータ(つまり、ロード)を比例的に複製及びリダイレクトするメカニズムを含み得る。メカニズムは、ブロックの脆弱性因子(vulnerability factor)に基づいてブロックに負荷を割り当てることができる。脆弱性因子は、ブロックが故障(又はフェイル、fail)である可能性を示すことができ、故障予測モジュールを使用して演算されることが可能である。たとえば、脆弱性因子が低いブロックは、フェイルの可能性が低い反面、脆弱性因子が高いブロックは、フェイルの可能性がもっと高い。いくつかの実施形態では、ロードは脆弱性因子のより低いブロックにターゲットすることができる。いくつかの実施形態では、より高い脆弱性因子を有するブロック(つまり、あらかじめ決定された閾値よりも大きい脆弱性因子を有するブロック)にライト(write)されたデータは、将来の不良発生時に、データ損失を防ぐために、他のブロックに複製されることが可能である。データをライト(write)した後、対応するマッピングテーブルはアップデートされ、これは論理ページナンバー(Logical Page Number、以下LPN)対物理ページナンバー(Physical Page Number、以下PPN)のテーブル(つまり、LTPテーブル)、及びPPN対LPNのテーブル(つまり、PTLテーブル)を含み得る。
多様な実施形態によると、本発明は、またSSD内のフラッシュチップにわたって、そしてメモリシステム内のSSDにわたって負荷を割り当てるためのメカニズムに関するものである(例えば、ウェアレベリングアルゴリズム)。フラッシュチップは、フラッシュチップ内の各ブロックの脆弱性因子の合計で定義される脆弱性因子を有し得る。ロードは、フラッシュチップの脆弱性因子に応じてフラッシュチップに分散されることが可能である。例えば、ロードは、あらかじめ決定された範囲内にある脆弱性因子を有するフラッシュチップに向けられ得る。同様に、SSDは、SSD内の各フラッシュチップの脆弱性因子の合計として定義される脆弱性因子を有し得る。ロードはSSDの脆弱性因子に応じてSSDに分散されることが可能である。例えば、ロードは、あらかじめ決定された範囲内にある脆弱性因子を有するSSDに向けられる。
発明の実施形態によると、より脆弱なブロックに対する摩耗を減らし、ブロック及びSSDの寿命を増加させることができる。そして、開示された実施形態は、次のような利点を提供することができる。つまり、
● 脆弱性因子に基づいて、各SSDドライブにロードを割り当てる
● 予測された「フェイルした(as failed)」ブロックの数に基づいて、各SSDドライブにロードを割り当てる
● 予測モジュールの信頼性に基づいて、各SSDドライブにロードを割り当てる
● 装置が脆弱であると識別/予測される場合は、装置をより良く使用するための装置の寿命及び信頼性が向上する
図1は、本発明の実施形態による多数のストレージ装置を有するメモリシステムのイメージを示す。
図1によると、メモリシステム100は、多数のストレージ装置110を含み得る。いくつかの実施形態では、ストレージ装置110は、SSD110を含み得る。図1に示すように、SSD110は、マルチレベルのストレージを有し得る。たとえば、それぞれのSSD110は、多数のフラッシュチップ111を含むことができ、それぞれのフラッシュチップ111は、多数のブロック112を含むことができ、それぞれのブロック112は、多数のページ113を含み得る。ページ113は、数(several)キロバイト(kilobyte)とすることができ、SSD110にデータを読み書きするための最小単位とし得る。
いくつかの実施形態では、SSD110は、エンベデッドコントローラ114(例えば、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、プロセッサなど)を含み得る。他の実施形態では、コントローラ114は、SSD110の外部にあり得る。SSDコントローラ114は、リード(read)及びライト(write)の要請を提供し、ウェアレベリング(wear-levelling)アルゴリズムを実行し、エラーの回復手順を実行するための論理回路を含み得る。いくつかの実施形態では、SSDコントローラ114によって実行されるプロセスは、任意の適切なファームウェア(すなわち、ASIC(Application-Specific Integrated Circuit))を使用して実施される。なお、ページ113は、SSDコントローラ114が限られた数のビットエラーを回復して修正するために使用するECC(Error Correction Code)のメタデータを含み得る。
一実施形態によると、コントローラ114は、チップ111内のブロック112に要請を伝送することができる。要請は、ブロック112内のページ113に格納されたデータをリード(read)すること(つまり、リード(read)要請)であるか、又はブロック112内のページ113に新しいデータをライト(write)すること(つまり、ライト(write)要請)である。もし要請がブロック112内の欠陥のあるページ113を対象とする場合には、要請は頻繁にフェイルすることになり得る。なお、ハードウェアの不良に起因するビットエラーの数が特定の値(たとえば、閾値)を超える場合には、SSDコントローラ114は、ビットエラーを修正できず、損傷されたデータをホストに提供してしまい得る。
特定の回数の繰り返しフェイル後、システム管理者は、メモリシステム100内のSSD110を交換することを選択し得るが、これは、メモリシステム100のランニングコスト及びメンテナンスコストを増加させ、また結果的にサーバーのシャットダウンによってアプリケーション(又は応用プログラム、application)の性能と可用性を害し得る。一方で、ページ113にライト(write)動作(つまり、プログラムの動作)が遂行されるときにエラーが発生する場合は、ページ113は、フェイルとしてマークされることができ、これ以上使用されないとし得る。ブロック112において、特定の数のページ113がフェイルしたと判定されると、ブロック112全体が廃止(retire)される。SSD110は、使われなくなったブロック112を代替するために、いくつかの予備ブロック112を別途に残しておくことができる。SSD110が、利用可能な予備ブロックが不足している場合(例えば、予備ブロックの90%以上が使用されている場合)、SSD110は、交換を必要とし得る。
いくつかの実施形態では、SSD110を交換する代わりに、細分化された(又はファイングレイン、fine-grained)ブロックの故障予測は、将来の不良を防止するために、早期に欠陥のあるブロックを廃止することができる。しかし、ブロックレベルで細分化されたエラーを予測することは不可能である。ブロックレベルのエラーを予測するためのプロセスは、SSD内の個々のブロックに対して相対的に大量の履歴データを必要とし得る。SSDは、数十万個のブロックを有し得るため、そのプロセスはSSD内の大規模なデータセットを処理し、かつ分析することを要求し得る。これは、SSDが限られた演算及び処理能力を有するため、問題になり得る。その上に、データセットを格納することは、SSD上の有用なストレージ空間を占有してしまい得る。
いくつかの実施形態では、ブロックの故障予測方法は、フェイルする可能性のあるブロック112を識別するために使用されることが可能であり、将来のエラーを防止するために、これらのブロック112を廃止することができる。これのため、開示されたシステムは、パラメータ/予測因子のセットを生成し、これを、不良を予測するためのマシンラーニング(Machine Learning、ML)のモジュールを実行する予測モジュールに供給するために、物理的なエラーのローカリティ(局所性)を活用し、ブロックレベル及び装置レベルの情報を結合するファームウェアレベルの故障予測技術を含む。予測モジュールの出力に基づいて、ブロック112が将来の不良として識別される場合には、そのブロック112は、廃止される。
図2は、本発明の実施形態によるSSD内のブロックがフェイルであるかを予測する方法に対するフローチャートである。いくつかの実施形態によると、図2に示された動作の数と順序は変わることができる。例えば、いくつかの実施形態によると、別のことが明示又は暗示されない限り、より少ないか、又は追加の動作があり得る。また、別のことが明示又は暗示されない限り、動作の順序が変わることができる。いくつかの実施形態では、図2に示された動作は、任意の適切なファームウェアを使用して実施されることが可能である。
図2を参照すると、段階210で、ブロックレベルのデータが、疑われるブロックに対するパラメータのセット(例えば、ブロックレベルのパラメータ)を構築するのに利用可能なドライブベースのログデータから抽出される。疑われるブロックは、頻繁にフェイル(失敗)するか、又は後にフェイルし得るブロックであり得る。一部の例において、抽出されるブロックレベルのデータは、リード(read)エラー、ライト(write)エラー又は消去エラーを含み得る。いくつかの実施形態では、ブロックレベルのパラメータは、疑われるブロックから直接抽出されたデータに当該パラメータが基づいているため、疑われるブロックの状態の正確な測定を提供することができる。段階205で、開示されたシステムは、疑われるブロックに対する他のパラメータのセット(つまり、ドライブレベルのパラメータ)を生成するためにSSDレベルのデータも、また抽出することができる。抽出されたSSDレベルのデータは、ページ/ブロックの識別(つまり、ID)、タイムスタンプ(timestamp)、ブロックベースのリード(read)/ライト(write)/消去のエラー、及びドライブのログデータを含み得る。いくつかの実施形態では、ドライブレベルのパラメータはSSD内のすべてのブロックにわたって平均化できるSSDレベルのデータから誘導されるため、疑われるブロックの状態の大略的な測定を提供することができる。段階210及び段階205で生成されたブロックレベルのパラメータ及びドライブレベルのパラメータは、故障予測モジュールに伝送される。段階215で、故障予測モジュールは、ブロックがフェイルする確率(つまり、ブロックの脆弱性因子)を決定するために、ブロックレベルのパラメータ及びドライブレベルのパラメータを使用するマシンラーニング(ML、machine learning)のモジュールを実行することができる。マシンラーニングモジュールは、ロジスティック回帰及びランダムフォレストを使用することができるが、これに限定されない。段階220で、コントローラは、故障予測モジュールによって演算された脆弱性因子をあらかじめ決められた閾値と比較して、ブロックがフェイルするか否かを決定する。脆弱性因子が閾値よりも大きい場合には、ブロックはフェイルすると予測され、段階225で、そのブロックは、もはや使用されないはずである(つまり、廃止されたブロック)。確率が閾値よりも小さいか等しい場合には、ブロックがフェイルしないと予測され、そのブロックは、使用し続けられる。
しかし、閾値に基づいて脆弱なブロックを廃止することは、効率的でない可能性がある。ブロックを廃止することは、脆弱なブロックの如何なる追加使用も排除してしまい、誤った予測が行われた場合、ブロックを廃止することは、容量の浪費を招き得る。
脆弱なブロックを単に廃止する代わりに、このようなブロックは、その脆弱性因子に比例するワークロードを割り当てることにより、相変わらず使用される。これのため、脆弱性因子は、SSD内のブロック(つまり、状態)を分類するのに使用される。たとえば、状態は、正常(healthy)、脆弱性又は廃止を含み得るが、これらに限定されない。脆弱性因子が0(zero)であるブロックは、故障予測モジュールによって今後フェイルになると予測されず、正常ブロックとして識別される(つまり、正常状態)。脆弱性因子が1であるブロックは、P/Eサイクル寿命の限界に到達したか、又は既にフェイルした特定の数のページを持つとすることができ、廃止されたブロックとして識別される(つまり、廃止状態)。脆弱性因子が0(zero)と1との間であるブロックは、故障予測モジュールによってフェイルしたと予測され、脆弱なものとして識別される(つまり、脆弱な状態)。脆弱性因子は、次のように定義される。つまり、
脆弱性因子(Vulnerability_Factor) =
Figure 2021125267
多様な実施形態では、ワークロードは、ブロックの脆弱性因子に基づいて、ブロックに割り当てられる(例えば、ウェアレベリングアルゴリズムを介して)。多様な実施形態では、脆弱性因子のより低いブロックは、したがって、フェイルする可能性が低く、先にターゲット化(標的化)されることが可能である。加えて、脆弱性因子は、ライト(write)要請のために、特定のブロックを使用するか否かを決定するのに使用される。フェイルする確率が高い脆弱なブロックは、後に不良が発生する場合にデータが失われる可能性があるため、ライト(write)要請に理想的でないとし得る。このアプローチは、より脆弱なブロックの使用を暗黙的に減らすことができる。いくつかの実施形態では、データがあらかじめ決定された閾値よりも大きい脆弱性因子を有する脆弱なブロックにライト(write)される場合には、データは、また複製ブロックにライト(write)されることが可能である。複製は、脆弱なブロックの後の不良からデータの損失を防ぐのを助けることができる。なお、脆弱性因子は、どのくらい多くの脆弱なブロックのコンテンツが複製されるかを決定するために使用される。このアプローチは、複製ブロック上で複製に必要な空間を限定することで、より効率的な複製メカニズムを作成することができる。脆弱なブロックから複製されるデータの量を限定することで、複製ブロックは脆弱なブロックのコンテンツ全体が複製される場合よりも少なく使用される。従って、複製ブロックを少なく使用することは、それの摩耗を減らすことができる。
図3は、本発明の実施形態によるSSDのブロックにわたってロード(load)を分散するための方法に対するフローチャートである。いくつかの実施形態によると、図3に示された動作の数と順序は変わることができる。例えば、いくつかの実施形態によると、別のことが明示又は暗示されない限り、より少ないか、又は追加の動作があり得る。また、別のことが明示又は暗示されない限り、動作の順序が変わることができる。いくつかの実施形態では、図3に示された動作は、任意の適切なファームウェアを使用して実施されることが可能である。
図3を参照すると、段階305で、SSDは要請を受信する。要請は、リード(read)又はライト(write)要請であり得る。段階310では、要請がリード(read)要請であるか否かが決定される。要請がリード(read)要請である場合には、手順(方法)は、段階315に進行する。段階315で、LTPテーブルがデータのPPNを識別するために検討され、PPNにおいてデータがリード(read)される。いくつかの実施形態では、要請されたデータは、1つ以上のブロックに格納される。例えば、データは、既存のブロック及び任意の複製ブロックに格納されることが可能である。したがって、LPNは、1つ以上のPPNに対応することができる。既存のブロック上でデータが損傷された場合は、データは複製ブロック上で相変わらず回復されることが可能である。
段階310では、要請がリード(read)要請ではないと決定された場合には、手順は、段階320に進むことができる。段階320で、データを受信するブロック(つまり、ターゲットブロック)が選択される。いくつかの実施形態では、ターゲットブロックは、それらの脆弱性因子に応じて選択される。例えば、最小の脆弱性因子を有するブロックがターゲットブロックとして選択される。段階325で、ターゲットブロックが脆弱であるか否かが決定される。脆弱なブロックは、脆弱性因子が0(zero)よりも大きいが、1よりも小さいブロックを含み得る。ターゲットブロックの状態が脆弱ではない場合には、手順は段階335に進むことができる。段階335で、ターゲットブロックのPPNが、データをライト(write)するために選択され、マッピングテーブル(つまり、LTPテーブル又はPTLテーブル)がアップデートされる。
段階325では、ターゲットブロックが脆弱なものと決定される場合には、手順は、段階330に進むことができる。段階330で、ターゲットブロックに対する脆弱性因子が決定され、手順は段階340に進むことができる。段階340で、ターゲットブロックの脆弱性因子は、あらかじめ決定された閾値と比較される。脆弱性因子があらかじめ決定された閾値よりも大きい場合には、手順は、段階345に進むことができる。段階345で、ターゲットブロックのPPNが選択され、データは選択されたPPNにライト(write)される。データの複製本も複製ブロックにライト(write)され、マッピングテーブルがアップデートされる。段階340で、脆弱性因子があらかじめ決められた閾値よりも小さいか等しい場合には、手順は、段階350に進むことができる。段階350で、ターゲットブロックのPPNが選択され、データは、複製なしに選択されたPPNにライト(write)される。また、マッピングテーブルもアップデートされる。
図4は、本発明の実施形態によるLTPテーブル及びPTLテーブルを示す。
図4を参照すると、SSDは2つのマッピングテーブル、つまり、LTPテーブル410及びPTLテーブル420を有し得る。LTPテーブル410は、論理ページナンバー(又は番号、number)(Logical Page Number、LPN)を物理ページナンバー(Physical Page Number、PPN)にマッピングする。LTPテーブル410に示すように、それぞれのLPNはPPNに対応する。例えば、LPN0はPPN0に対応する。いくつかの実施形態では、データは複製されることがあり、多数のPPN、つまり、既存のブロックで1つのPPN、複製ブロック上で追加のPPN、に格納されることがある。従って、LPNは、1つ以上のPPNに対応することができる。例えば、LPN1は、PPN1のデータがPPN3上で複製されたためPPN1及びPPN3に対応することができる。
図4によると、PTLテーブル420は、PPNをLPNにマッピングする。PTLテーブル420に示すように、それぞれのPPNはLPNに対応する。例えば、PPN0はLPN0に対応する。いくつかの実施形態では、1つ以上のPPNは同一のLPNに対応することができる。たとえば、PPN1のデータがPPN3で複製されたためPPN1及びPPN3はすべてLPN1と対応することができる。LTPテーブル410及びPTLテーブル420の両方で、与えられたLPNに対するPPNのリストが維持されることが可能である。
リード(read)要請においては、要請されたデータのPPNが、LTPテーブル410にアクセスすることにより取り出される。そのPPNを使用して、要請されたデータはアクセス及びリード(read)されることが可能である。いくつかの実施形態では、既存のPPNのデータが損傷されることがあり、データは、複製PPNから回収されることが可能である。ライト(write)要請においては、データをライト(write)するためにPPNが選択される。新しい項目が、LTPテーブル410に追加される。データの複製が要求される場合には、複製PPNも、対応するLPNに対するLTPテーブルの同一の項目に追加されることが可能である。例えば、LTPテーブル410のLPN1は、PPN1のデータがPPN3で複製されたためPPN1及びPPN3に対応する。LPNをアップデートするときに、対応するPPNは、LTPテーブル410上で無効になることができる。ガベージコレクション(garbage collection)のうち、PPNが移動される場合には、それの対応するLPNは、PTLテーブル420から位置づけられる。以下で、対応するLPNに対するPPNリストは、LTPテーブル410でアップデートされることが可能である。
ブロックの脆弱性因子を割り出すことに加えて、脆弱性因子は、フラッシュチップレベル(例えば、チップの脆弱性因子)及びSSDレベル(例えば、SSDの脆弱性因子)でも決定されることがある。フラッシュチップの脆弱性因子は、フラッシュチップ内の各ブロックの脆弱性因子の合計として定義され、以下のように説明される。つまり、
チップの脆弱性因子(CHIP_VUL_FACTOR) =
Figure 2021125267
N:フラッシュチップでブロックの個数
Figure 2021125267
:ブロックiの脆弱性因子
フラッシュチップにライト(write)要請(つまり、ロード)を割り当てるとき、ファームウェアは1/CHIP_VUL_FACTORに比例してターゲットのフラッシュチップを決定する。従って、脆弱/フェイルのブロックの数がより多いフラッシュチップは、より少ない要請を受けることができる。
同様に、SSDの脆弱性因子は、SSD内のそれぞれのフラッシュチップのチップ脆弱性因子の合計として定義され、以下のように説明される。つまり、
SSDの脆弱性因子(SSD_VUL_FACTOR) =
Figure 2021125267
K:SSD内のフラッシュチップの個数

それぞれのSSDにロードを割り当てるとき、ロードはSSDの脆弱性因子に応じてSSDに割り当てられる。例えば、ロードは、SSDの脆弱性因子が最も小さいSSDに割り当てられる。
図5は、本発明の実施形態によるブロックレベル、チップレベル及び装置レベルで追跡されるメタデータを示すチャートである。
図5を参照すると、装置(装置、device)のファームウェアは、ブロックレベルのメタデータ510及びチップレベルのメタデータ520を維持する。装置レベルのメタデータ530は、システムレベルで維持される。ブロックレベルのメタデータ510は、それぞれの個々のブロックの脆弱性因子を含み得る。チップレベルのメタデータ520は、個々のフラッシュチップの脆弱性因子を含み得る。装置レベルのメタデータ530は、システムでの個々のSSDの脆弱性因子を含み得る。
したがって、図5に示すように、ブロックレベル、チップレベル及び装置レベルのメタデータがそれぞれ維持されることができるため、本発明の実施形態は、多様な抽象化レベル(例えば、ブロックレベル、チップレベル、又は装置(つまり、個々のSSD)レベル)で実施され得る。たとえば、それぞれのフラッシュチップの脆弱性因子が演算され得る。チップの脆弱性因子は、チップ内のそれぞれのブロックの脆弱性因子の合計として定義される。いくつかの実施形態では、ワークロードは、チップの脆弱性因子に応じてフラッシュチップに伝達される。
なお、それぞれのSSDの脆弱性因子も演算され得る。SSD脆弱性因子は、SSD内のそれぞれのチップの脆弱性因子の合計として定義される。いくつかの実施形態では、ワークロードは、SSDの脆弱性因子に応じてSSDに伝達される。
なお、ブロック内のそれぞれのページの脆弱性因子も演算されることがある。いくつかの実施形態では、ワークロードは、ページの脆弱性因子に基づいてページに伝達される。
図6は、本発明の実施形態によるメモリシステム内のメモリ装置にわたってロード(負荷)を分散するための方法に対するフローチャートである。いくつかの実施形態によると、図6に示された動作の数と順序は変わることができる。例えば、いくつかの実施形態によると、別のことが明示又は暗示されない限り、より少ないか、又は追加の動作があり得る。また、別のことが明示又は暗示されない限り、動作の順序が変わることができる。いくつかの実施形態では、図6に示された動作は、任意の適切なファームウェアを使用して実施されることが可能である。
図6を参照すると、段階610で、メモリシステムは、メモリ装置にデータをライト(write)するための要請を受信することができる。多様な実施形態では、メモリ装置は、ページ、ブロック、フラッシュチップ又はSSDを含み得る。段階620で、コントローラ(つまり、ファームウェア)は、メモリシステムのそれぞれのメモリ装置の脆弱性因子を演算することができる。いくつかの実施形態では、ブロックの脆弱性因子は、故障予測モジュールを使用して演算され得る。いくつかの実施形態では、フラッシュチップの脆弱性因子は、フラッシュチップ内のブロックの脆弱性因子の合計と同一であり得る。いくつかの実施形態では、SSDの脆弱性因子は、SSD内のフラッシュチップの脆弱性因子の合計と同一であり得る。
段階630では、メモリ装置の脆弱性因子に基づいて、データをライト(write)するメモリ装置が選択され得る。いくつかの実施形態では、最小の脆弱性因子を有するメモリ装置(つまり、脆弱さが最も小さいメモリ装置)が、データをライト(write)するために選択され得る。段階640で、データのライト(write)要請は、選択されたメモリ装置に伝達される。
本明細書で記述された本発明の実施形態による電子又は電気装置、及び/又は他の任意の関連された装置又はコンポーネントは、任意の適切なハードウェア、ファームウェア、(例えば、ASIC)、ソフトウェア、又はソフトウェア、ファームウェア及びハードウェアの組み合わせを用いて実装される。たとえば、これらの装置の多様なコンポーネントは、1つの集積回路(Integrated Circuit、IC)チップ又は個別のICチップ上に形成される。なお、これらの装置の多様なコンポーネントは、フレキシブルプリント回路フィルム(Flexible Printed Circuit Film)、TCP(Tape Carrier Package)、プリント回路基板(Printed Circuit Board、PCB)上に実装されたり、単一の基板上に形成されたりする。なお、これらの装置の多様なコンポーネントは、コンピュータプログラム命令語を実行し、本明細書で説明された多様な機能を遂行するための他のシステムコンポーネントと相互作用する、1つ以上のコンピューティング装置又は1つ以上のプロセッサで遂行されるプロセス又はスレッド(Thread)であり得る。コンピュータプログラムの命令語は、例えば、RAM(Random Access Memory)などのような標準的なメモリ装置を利用するコンピューティング装置において実装されるメモリ内に格納される。コンピュータプログラム命令語はまた、例えば、CD-ROM、フラッシュドライブ(Flash Drive)、又はそのような他の一時的でないコンピュータリード(read)可能な媒体(Non-transitory Computer Readable Media)に格納されることも可能である
本発明の特徴やそれを達成する方法は、実施形態の詳細な説明と添付された図面を参照すれば明らかになるだろう。以下では、例としての実施形態は、類似の参照符号は類似の要素(element)を指す添付図面を参照して、詳細に説明されるだろう。しかし、本発明は、異なる多様な形態で実施され、本明細書で単に例示された実施形態に限定されるものではない。むしろ、これらの実施形態は、この発明が徹底的で完全なものになるための例として提供され、当業者に本発明の特徴と機能を完全に伝えるはずである。したがって、本発明の技術分野における通常の知識を有する者が本発明の特徴と機能を完全に理解するために必要としないプロセス、要素(element)及び技術は、説明されない可能性がある。別途に言及されない限り、類似した参照符号は、添付された図面と記載された説明において類似した要素を示し、従ってそれに対する説明は繰り返されまい。図面では、要素、レイヤー及び領域の相対的な大きさは、明快さのために誇張されることがある。
上述した説明において、説明の目的及び多様な実施形態の完全な理解を提供するために、多数の具体的な詳細が示された。しかし、多様な実施形態は、これらの具体的な詳細なしに、又は1つ以上の同等の配置で実施され得るということが明らかである。なお、当業者は、本明細書に説明された1つ以上の実施形態の多様な特徴が、本発明の思想又は範囲を逸脱せずに、任意の適切な方法で結合されることがあると認識するだろう。他の例では、多様な実施形態を不必要に曖昧にすることを避けるために、よく知られている構造及び装置はブロック図の形態で示される。
要素、レイヤー、領域又はコンポーネントが、他の要素、レイヤー、領域又はコンポーネント「上に」、「に連結された」、「に結合された」と述べられるとき、それは他の要素、レイヤー、領域又はコンポーネント「にすぐ」、「に直接連結された」、「に直接結合された」ことであり得るか、1つ以上の介在の要素、レイヤー、領域又はコンポーネントが存在することができる。しかし、「直接連結された/直接結合された」と述べられるとき、中間のコンポーネントなしに、他のコンポーネントを直接連結又は結合する1つの構成要素を意味する。一方、「間」、「すぐ間」、又は「隣接する」、「直接隣接する」などのようなコンポーネント間の関係を説明する他の表現も同様に解釈されることができる。なお、要素又はレイヤーが2つの要素又はレイヤー 「の間に」と言及されるとき、それは、単に要素又はレイヤーが2つの要素又はレイヤーの間にあり得るか、1つ以上の介在の要素又はレイヤーがまた存在することができる。
本明細書で使用される用語は、単に特定の実施形態を説明するためのものであり、本発明を限定しようとするために意図されていない。本明細書で使用されたように、文脈上明らかに別の意味を示していると判定されない限り、単数形「1つ」は、1つ以上の形態も含むものと意図される。「構成される」、「構成されている」、「含む」、及び「含んでいる」という用語が、本明細書で使用されるとき、これらの用語は、定められた特徴、整数、段階、動作、要素及び/又はコンポーネントが存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、コンポーネント及び/又はそれらのグループの追加若しくは存在を不可能にしない。本明細書で使用されているように、「及び/又は」という用語は、1つ以上の列挙された項目と関連付けられた任意かつすべての組み合わせを含む。
本明細書で使用されているように、「だいたい(大体)」、「約」、「およそ(大略)」の用語及びこれと類似の用語は、近似値の用語として使用され、程度の用語ではない、本発明の当業者によって識別される測定又は計算された値の固有の変動を考慮するためのものである。本明細書で使用される「約」又は「およそ」の用語は、言及された値を含んでおり、特定の数量の測定に関連された測定方法とエラー(つまり、測定システムの限界)を考慮して、当業者によって決定された特定の値に対する許容可能な偏差の範囲内を意味する。たとえば、「約」は、1つ以上の標準偏差以内、又は明示された値の±30%、20%、10%、5%以内を意味することができる。なお、本発明の実施形態を説明するとき、「できる」の使用は、「本発明の1つ以上の実施形態」を意味する。本明細書で使用される「使用する(use)」、「使用している(using)」、及び「使用された(used)」の用語は、それぞれ「活用する(utilize)」、「活用している(utilizing)」、及び「活用された(utilized)」の用語と同義語であると見なされる。また、「例としての」という用語は、例又は例示を示すものと意図される。
特定の実施形態が異なるように実施されることがある場合には、特定のプロセスの順序は、説明された順序とは異なるように遂行される。例えば、連続的に記述されて2つのプロセスは、実質的に同時に遂行されたり、説明された順序とは逆の順序で遂行されたりできる。
上述した内容は、例としての実施形態を説明したものであり、本発明を限定するものと解釈されてはならない。いくつかの実施形態が説明されたが、当業者は、例としての実施形態の新しい教示及び利点から実質的に逸脱せずに、例としての実施形態では多くの修正が可能であることを容易に理解するだろう。したがって、このようなすべての修正は、請求の範囲に定義された例としての実施形態の範囲内に含まれるように意図される。請求の範囲で、機能表現(ミーンズ・ プラス・ファンクション)のクレームは、引用された機能を遂行することで、ここで説明された構造及び構造的等価物だけではなく、等価構造を含むように意図される。したがって、上述した内容は、例としての実施形態を例示したものであり、開示された特定の実施形態に限られると解釈されてはならず、添付された特許請求の範囲の範囲内で開示された例としての実施形態及び他の例としての実施形態に対する修正が含まれるように意図されたものと理解しなければならない。本発明の概念は、次の請求の範囲によって定義され、請求の範囲の等価物が含まれる。
100 メモリシステム
110 ストレージ装置
111 フラッシュチップ
112 ブロック
113 ページ
114 コントローラ
410 LTPテーブル
420 PTLテーブル
510、520、530 メタデータ




Claims (24)

  1. 1つ以上のブロックを含むソリッドステートドライブ(Solid-State Drive、SSD)で動的ウェアレベリング(wear-leveling)及びロードリダイレクト(load redirection)のための方法であって、
    コントローラによって、データをライト(write)するための要請を受信する段階と、
    前記コントローラによって、前記1つ以上のブロックの脆弱性因子を演算する段階と、
    前記コントローラによって、前記データをライト(write)するための前記要請を受けるためのターゲットブロックを前記1つ以上のブロックから選択する段階と、
    前記コントローラによって、前記ターゲットブロックの前記脆弱性因子に基づいて、前記ターゲットブロックの状態を決定する段階と、
    前記コントローラによって、前記ターゲットブロックの前記状態に基づいて、前記ターゲットブロックに前記データをライト(write)する段階と、
    前記コントローラによって、前記データが前記ターゲットブロックにライト(write)されたことに基づいて、マッピングテーブルをアップデートする段階と、を備える
    方法。
  2. 前記ターゲットブロックの前記脆弱性因子があらかじめ決められた閾値よりも大きい場合に、前記コントローラによって、複製ブロックに前記データをライト(write)する段階、をさらに備える
    請求項1に記載の方法。
  3. 前記状態は、正常状態(healthy status)、脆弱な状態(vulnerable status)、及び廃止状態(retired status)のうち、少なくとも1つを含む
    請求項1に記載の方法。
  4. 前記マッピングテーブルは、前記ターゲットブロックにライト(write)された前記データの論理ページナンバー(Logical Page Number、LPN)を前記ターゲットブロックにライト(write)された前記データの物理ページナンバー(Physical Page Number、PPN)にマップするテーブルを含む
    請求項1に記載の方法。
  5. 前記ターゲットブロックは、前記ターゲットブロックの前記脆弱性因子に基づいて選択される
    請求項1に記載の方法。
  6. 最小の脆弱性因子を有する前記ターゲットブロックが選択される
    請求項5に記載の方法。
  7. 前記脆弱性因子は、ブロックレベルのメタデータ(block level metadata)から生成された第1のパラメータセット及びドライブレベルのメタデータ(drive level metadata)から生成された第2のパラメータセットを使用して演算される
    請求項1に記載の方法。
  8. 前記ブロックレベルのメタデータは、リード(read)エラー、ライト(write)エラー及び消去エラーのうち、少なくとも1つを含む
    請求項7に記載の方法。
  9. 前記ドライブレベルのメタデータは、ページの識別、ブロックの識別、タイムスタンプ、ブロックベースのエラー及びドライブのログデータのうち、1つ以上を含む
    請求項7に記載の方法。
  10. コントローラと1つ以上のブロックを含むソリッドステートドライブ(Solid-State Drive、SSD)システムであって、
    前記コントローラは、
    データをライト(write)するための要請を受信し、
    前記1つ以上のブロックの脆弱性因子を演算し、
    前記データをライト(write)するための要請を受けるためのターゲットブロックを前記1つ以上のブロックから選択し、
    前記ターゲットブロックの前記脆弱性因子に基づいて、前記ターゲットブロックの状態を決定し、
    前記ターゲットブロックの前記状態に基づいて、前記ターゲットブロックに前記データをライト(write)し、
    前記データが前記ターゲットブロックにライト(write)されたことに基づいて、マッピングテーブルをアップデートするように構成される
    システム。
  11. 前記ターゲットブロックの前記脆弱性因子があらかじめ決められた閾値よりも大きい場合に、前記コントローラは、複製ブロックに前記データをライト(write)するように、さらに構成される
    請求項10に記載のシステム。
  12. 前記状態は、正常状態(healthy status)、脆弱な状態(vulnerable status)、及び廃止状態(retired status)のうち、少なくとも1つを含む
    請求項10に記載のシステム。
  13. 前記ターゲットブロックは、前記ターゲットブロックの前記脆弱性因子に基づいて選択される
    請求項10に記載のシステム。
  14. 最小の脆弱性因子を有する前記ターゲットブロックが選択される
    請求項13に記載のシステム。
  15. 前記脆弱性因子は、ブロックレベルのメタデータ(block level metadata)から生成された第1のパラメータセット及びドライブレベルのメタデータ(drive level metadata)から生成された第2のパラメータセットを使用して演算される
    請求項10に記載のシステム。
  16. 前記ブロックレベルのメタデータは、リード(read)エラー、ライト(write)エラー及び消去エラーのうち、少なくとも1つを含む
    請求項15に記載のシステム。
  17. 前記ドライブレベルのメタデータは、ページの識別、ブロックの識別、タイムスタンプ、ブロックベースのエラー及びドライブのログデータのうち、1つ以上を含む 請求項15に記載のシステム。
  18. 1つ以上のメモリ装置を含むメモリシステムにおける動的ウェアレベリング(wear-leveling)及びロードリダイレクト(load redirection)のための方法であって、
    コントローラによって、データをライト(write)するための要請を受信する段階と、
    前記コントローラによって、前記1つ以上のメモリ装置の脆弱性因子を演算する段階と、
    前記コントローラによって、前記データをライト(write)するための要請を受けるためのターゲット装置を、前記脆弱性因子に基づいて前記1つ以上のメモリ装置から選択する段階と、
    前記コントローラによって、前記データをライト(write)するための要請を前記ターゲット装置に伝達する段階と、を備える
    方法。
  19. 前記1つ以上のメモリ装置は、1つ以上のフラッシュチップを含む
    請求項18に記載の方法。
  20. 前記1つ以上のフラッシュチップの前記脆弱性因子は、前記1つ以上のフラッシュチップ内のすべてのブロックの脆弱性因子の合計と同一である
    請求項19に記載の方法。
  21. 最小の脆弱性因子を有するフラッシュチップがターゲットのフラッシュチップとして選択される
    請求項19に記載の方法。
  22. 前記1つ以上のメモリ装置は、1つ以上のソリッドステートドライブ(Solid-State Drive、SSD)を含む
    請求項18に記載の方法。
  23. 前記1つ以上のSSDの前記脆弱性因子は、前記1つ以上のSSD内のすべてのフラッシュチップの脆弱性因子の合計と同一である
    請求項22に記載の方法。
  24. 最小の脆弱性因子を有するSSDがターゲットSSDとして選択される
    請求項22に記載の方法。
JP2021018242A 2020-02-07 2021-02-08 ストレージ装置のブロックレベルの故障予測のためのシステム及び方法 Pending JP2021125267A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062971773P 2020-02-07 2020-02-07
US62/971773 2020-02-07
US16/843823 2020-04-08
US16/843,823 US11275510B2 (en) 2020-02-07 2020-04-08 Systems and methods for storage device block-level failure prediction

Publications (2)

Publication Number Publication Date
JP2021125267A true JP2021125267A (ja) 2021-08-30
JP2021125267A5 JP2021125267A5 (ja) 2024-02-07

Family

ID=74550421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021018242A Pending JP2021125267A (ja) 2020-02-07 2021-02-08 ストレージ装置のブロックレベルの故障予測のためのシステム及び方法

Country Status (6)

Country Link
US (1) US11275510B2 (ja)
EP (1) EP3862865B1 (ja)
JP (1) JP2021125267A (ja)
KR (1) KR20210101166A (ja)
CN (1) CN113312276B (ja)
TW (1) TWI836181B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220221852A1 (en) * 2021-01-14 2022-07-14 University Of Louisiana At Lafayette Method and architecture for embryonic hardware fault prediction and self-healing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653778B2 (en) 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
US7573773B2 (en) 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US8156392B2 (en) * 2008-04-05 2012-04-10 Fusion-Io, Inc. Apparatus, system, and method for bad block remapping
CN102081576B (zh) * 2011-03-01 2012-07-11 华中科技大学 一种闪存的磨损平衡方法
US8838897B2 (en) 2011-06-29 2014-09-16 New Jersey Institute Of Technology Replicating tag entries for reliability enhancement in cache tag arrays
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
US9430322B2 (en) 2012-08-02 2016-08-30 Sandisk Technologies Llc Device based wear leveling using intrinsic endurance
US9471450B2 (en) 2013-03-07 2016-10-18 International Business Machines Corporation Reducing data loss in a computing storage environment
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9423970B2 (en) 2013-12-30 2016-08-23 Sandisk Technologies Llc Method and system for predicting block failure in a non-volatile memory
US20160042141A1 (en) 2014-08-08 2016-02-11 International Business Machines Corporation Integrated assessment of needs in care management
US20170068467A1 (en) 2015-09-04 2017-03-09 HGST Netherlands B.V. Wear management for flash memory devices
US10593421B2 (en) * 2015-12-01 2020-03-17 Cnex Labs, Inc. Method and apparatus for logically removing defective pages in non-volatile memory storage device
US10365996B2 (en) 2016-03-24 2019-07-30 Advanced Micro Devices, Inc. Performance-aware and reliability-aware data placement for n-level heterogeneous memory systems
US10331537B2 (en) 2016-12-23 2019-06-25 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
US10621353B2 (en) 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
KR20180092715A (ko) 2017-02-10 2018-08-20 삼성전자주식회사 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치
US20180332012A1 (en) 2017-05-12 2018-11-15 International Business Machines Corporation Post-compilation configuration management
CN107562641A (zh) * 2017-07-11 2018-01-09 捷开通讯(深圳)有限公司 存储空间的均衡磨损方法、系统和装置
US10684902B2 (en) 2017-07-28 2020-06-16 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US11288116B2 (en) 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
US10791137B2 (en) 2018-03-14 2020-09-29 Synack, Inc. Risk assessment and remediation
US11042646B2 (en) 2018-08-13 2021-06-22 International Business Machines Corporation Selecting data storage based on data and storage classifications
CN109783398B (zh) * 2019-01-18 2020-09-15 上海海事大学 一种基于相关感知页面级ftl固态硬盘性能优化方法

Also Published As

Publication number Publication date
EP3862865A1 (en) 2021-08-11
KR20210101166A (ko) 2021-08-18
CN113312276B (zh) 2023-08-08
TWI836181B (zh) 2024-03-21
US20210247912A1 (en) 2021-08-12
US11275510B2 (en) 2022-03-15
TW202147119A (zh) 2021-12-16
EP3862865B1 (en) 2022-06-22
CN113312276A (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
US10884940B2 (en) Method and apparatus for using compression to improve performance of low voltage caches
US9952795B2 (en) Page retirement in a NAND flash memory system
EP2920700B1 (en) Memory segment remapping to address fragmentation
US7478285B2 (en) Generation and use of system level defect tables for main memory
US20220156180A1 (en) Security check systems and methods for memory allocations
US20150270015A1 (en) Memory mapping
US10262754B2 (en) Fine grained online remapping to handle memory errors
JP4843693B2 (ja) 記憶装置
US9229803B2 (en) Dirty cacheline duplication
EP3198448B1 (en) Hardware assisted object memory migration
CN112543909A (zh) 用于媒体持久和诊断的增强码字
KR20220030188A (ko) 통합 장치 로그를 사용한 복수의 불휘발성 메모리 스테이트 드라이브 블록-레벨 고장 예측 방안
CN107765994B (zh) 在智能存储器装置内部执行数据擦除的方法
US8862858B1 (en) Method and system for fast block storage recovery
JP2021125267A (ja) ストレージ装置のブロックレベルの故障予測のためのシステム及び方法
US10733069B2 (en) Page retirement in a NAND flash memory system
KR20210158317A (ko) 저장 장치의 블록 레벨 실패 예측에 기반한 데이터 배치를 위한 시스템 및 방법
US9934093B2 (en) Control device, method of controlling a storage device, and storage system
US10528426B2 (en) Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices
US20240143440A1 (en) Page retirement techniques for multi-page dram faults

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240130

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240524