JP2014517425A - Slc/mlc混成メモリのブロック管理構成 - Google Patents

Slc/mlc混成メモリのブロック管理構成 Download PDF

Info

Publication number
JP2014517425A
JP2014517425A JP2014515984A JP2014515984A JP2014517425A JP 2014517425 A JP2014517425 A JP 2014517425A JP 2014515984 A JP2014515984 A JP 2014515984A JP 2014515984 A JP2014515984 A JP 2014515984A JP 2014517425 A JP2014517425 A JP 2014517425A
Authority
JP
Japan
Prior art keywords
block
data
blocks
area
memory
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
JP2014515984A
Other languages
English (en)
Other versions
JP5674999B2 (ja
Inventor
アヴラハム メイア
アレキサンダー パレイ
アシフ サデ
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.)
Apple Inc
Original Assignee
Apple 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 Apple Inc filed Critical Apple Inc
Publication of JP2014517425A publication Critical patent/JP2014517425A/ja
Application granted granted Critical
Publication of JP5674999B2 publication Critical patent/JP5674999B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

データを記憶する方法は、多数のアナログメモリセルがブロックに配列されたメモリにデータを記憶することを含む。ブロックの第1サブセットは、第1の記憶密度で第1のデータを記憶するように定義され、そしてブロックの第2サブセットは、第1の記憶密度より高い第2の記憶密度で第2のデータを記憶するように定義される。第1及び第2の各サブセットにおいて、1つ以上のブロックがスペアブロックとして働くように割り当てられ、欠陥となったブロックがスペアブロックと置き換えられる。第2のサブセットにおけるスペアブロックの数が既定スレッシュホールドより少なくなったことを検出すると、第2のサブセットにおける少なくとも1つのブロックから第1のサブセットへデータがコピーされ、少なくとも1つのブロックが第2のサブセットのスペアブロックへ追加される。
【選択図】図1

Description

本発明は、一般的に、データ記憶に関するもので、より詳細には、メモリ装置のメモリブロック管理方法及びシステムに関する。
フラッシュ装置のような幾つかのメモリ装置は、多数のメモリブロックを備えている。この分野ではメモリブロックを管理するための種々の技術が知られている。例えば、参考としてここに援用する米国特許第8,040,744号は、フラッシュEEPROMシステムのような再プログラム可能な不揮発性メモリシステムにおけるスペアブロックの管理技術について述べている。1組の技術において、バイナリー区分及び多状態区分のような2つの区分にメモリが仕切られ、一方の区分のブロックの方が、エラーの発生傾向が高い場合には、エラー発生傾向の高い区画からエラー発生傾向の低い区画へスペアブロックを転送することができる。別の1組の技術において、エラー発生傾向の高い区画に入るブロックは、他方の区画のスペアブロックとして働くように転送される。
別の例として、参考としてここに援用する米国特許出願公告第2010/0174847号は、不揮発性メモリの一部分をメイン多レベルメモリアレイからキャッシュとして働くように仕切る技術について述べている。キャッシュメモリは、メインメモリに比して、メモリセル当たりの記憶容量が少なく、且つ書き込み単位の粒度が微細になるように構成される。キャッシュメモリは、容量増加需要に応答してメインメモリからブロックを割り当てることにより容量が動的に増加される。耐久カウントが平均より高いブロックが割り当てられるのが好ましい。キャッシュのインデックスのサイズを制限するためにデータの論理的アドレスがゾーンに仕切られる。
ここに述べる本発明の一実施形態は、データを記憶する方法を提供する。この方法は、多数のアナログメモリセルがブロックに配列されたメモリにデータを記憶することを含む。ブロックの第1サブセットは、第1の記憶密度で第1のデータを記憶するように定義され、そしてブロックの第2サブセットは、第1の記憶密度より高い第2の記憶密度で第2のデータを記憶するように定義される。第1及び第2の各サブセットにおいて、1つ以上のブロックがスペアブロックとして働くように割り当てられ、欠陥となったブロックがスペアブロックに置き換えられる。第2のサブセットにおけるスペアブロックの数が既定のスレッシュホールドより少なくなったことを検出すると、第2のサブセットにおける少なくとも1つのブロックから第1のサブセットへデータがコピーされ、少なくとも1つのブロックが第2のサブセットのスペアブロックへ追加される。
幾つかの実施形態において、データを記憶することは、メモリセル当たり第1の数のプログラミングレベルを使用して第1のサブセットにおけるメモリセルをプログラミングし、そしてメモリセル当たり第1の数より大きな第2の数のプログラミングレベルを使用して第2のサブセットにおけるメモリセルをプログラミングすることを含む。一実施形態において、第1の記憶密度は、メモリセル当たり1ビットを含む。ここに開示する実施形態では、データをコピーしそして少なくとも1つのブロックを追加することは、第2のサブセットにおけるスペアブロックの数を既定上限以下に維持することを含む。一実施形態では、上限は、単一のスペアブロックを含む。
幾つかの実施形態において、データを記憶することは、第1のサブセットにおけるスペアブロックをオーバープロビジョニング(over-provisioning)オーバーヘッドとして使用するブロックコンパクト化プロセスを第1のサブセットにおいて実行することを含む。一実施形態では、この方法は、既定の選択基準に基づいて第2のサブセットにおいて少なくとも1つのブロックを選択することを含む。1つの規範的な実施形態において、選択基準は、少なくとも1つのブロックにおける有効データの量に依存する。別の実施形態において、選択基準は、少なくとも1つのブロックにおける有効データが断片化された断片の数に依存する。更に別の実施形態において、選択基準は、少なくとも1つのブロックのデータが最も最近に(most recently)無効化された時間に依存する。
更に、本発明の一実施形態によれば、インターフェイス及びプロセッサを備えたデータ記憶装置が提供される。インターフェイスは、多数のアナログメモリセルがブロックに配列されたメモリと通信するように構成され、ブロックの第1サブセットは、第1の記憶密度で第1のデータを記憶するように定義され、そしてブロックの第2サブセットは、第1の記憶密度より高い第2の記憶密度で第2のデータを記憶するように定義される。プロセッサは、第1及び第2の各サブセットにおいて、1つ以上のブロックをスペアブロックとして働くように割り当て、欠陥となったブロックをスペアブロックに置き換え、そして第2のサブセットにおけるスペアブロックの数が既定のスレッシュホールドより少なくなったことを検出すると、第2のサブセットにおける少なくとも1つのブロックから第1のサブセットへデータをコピーし、少なくとも1つのブロックを第2のサブセットのスペアブロックへ追加する、ように構成される。
又、本発明の一実施形態によれば、複数のブロックを含むメモリにデータを記憶する方法が提供される。この方法は、有効データ及び無効データの両方を含む1つ以上のブロックを選択し、その選択されたブロックから有効データを他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行することを含む。メモリの所与のエリア内において、その所与のエリアに記憶された有効データ間で最も以前に(least-recently)プログラムされた有効データを含むブロックが識別される。その識別されたブロックは、コンパクト化プロセスの候補として選択される。一実施形態において、ブロックの識別及び選択は、ブロックにおける有効データの量に関わりなく遂行される。
更に、本発明の一実施形態によれば、インターフェイス及びプロセッサを含むデータ記憶装置が提供される。インターフェイスは、多数のブロックを含むメモリと通信するように構成される。プロセッサは、有効データ及び無効データの両方を含む1つ以上のブロックを選択し、その選択されたブロックから有効データを他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行するように構成されると共に、更に、メモリの所与のエリア内で、その所与のエリアに記憶された有効データの中で最も以前にプログラムされた有効データを含むブロックを識別し、そしてその識別されたブロックをコンパクト化プロセスの候補として選択するように構成される。
更に、多数のブロックを含むメモリであって、データキャッシングのための第1エリア及び長期データ記憶のための第2エリアに分割されたメモリにデータを記憶する方法が提供される。この方法は、有効データ及び無効データの両方を含む1つ以上のブロックを第1エリアにおいて選択し、その選択されたブロックから有効データをメモリ内の他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行することを含む。候補ブロックのコンパクト化により受ける第2エリアでの書き込み動作の数に基づいてコンパクト化プロセスの候補として第1エリアにおいてブロックが選択される。
幾つかの実施形態において、物理的記憶位置を、少なくとも1つのブロックを各々含む各論理的マッピング単位に指定する論理的/物理的アドレスマッピングに基づき第2エリアにデータが記憶され、ブロックを選択することは、ブロックの有効データが属する論理的マッピング単位の数に基づいてブロックを選択することを含む。一実施形態において、ブロックを選択することは、第1エリアにおける少なくとも幾つかのブロックに、ブロックのコンパクト化により受ける第2エリアでの書き込み動作の各数に逆に関係した各スコアを指定し、そしてコンパクト化プロセスのためのブロックの選択において高いスコアを有するブロックに高いプライオリティを与えることを含む。
更に、本発明の一実施形態によれば、インターフェイス及びプロセッサを備えたデータ記憶装置が提供される。インターフェイスは、多数のブロックを含むメモリであって、データキャッシングのための第1エリア及び長期データ記憶のための第2エリアに分割されたメモリと通信するように構成される。プロセッサは、有効データ及び無効データの両方を含む1つ以上のブロックを第1エリアにおいて選択し、その選択されたブロックから有効データをメモリ内の他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行するように構成されると共に、更に、候補ブロックのコンパクト化により受ける第2エリアでの書き込み動作の数に基づいてコンパクト化プロセスの候補として第1エリアにおいてブロックを選択するように構成される。
本発明は、添付図面を参照した実施形態の以下の詳細な説明より完全に理解されよう。
本発明の一実施形態によるメモリシステムを概略的に示すブロック図である。 本発明の実施形態によりメモリブロックを管理する方法を概略的に示すフローチャートである。 本発明の実施形態によりメモリブロックを管理する方法を概略的に示すフローチャートである。 本発明の実施形態によりメモリブロックを管理する方法を概略的に示すフローチャートである。
概略
あるメモリシステム、例えば、フラッシュベースのソリッドステートドライブ(SSD)では、あるメモリエリアが、メモリの他部分に比して低い記憶密度でデータを保持するように構成される。例えば、低密度エリアは、メモリセル当たり単一ビットを保持するように構成され(単一レベルセル−SLC−構成と称され)、そして高密度エリアは、メモリセル当たり多数のビットを保持するように構成される(多レベルセル−MLC−構成と称される)。記憶密度の差は種々の仕方で具現化されるが、低密度及び高密度エリアは、ここでは、一般的に、各々、SLC及びMLCエリアと称される。
次いで、低い記憶密度の場合に、SLCエリアは、典型的に、MLCエリアに比して、プログラミング及び読み出しが迅速であり、且つ耐久性、保持性及び記憶信頼性が改善されていることを特徴とする。SLCエリアは、到来するデータを、MLCエリアに転送するまでキャッシュ記憶し、或いは繊細な又は頻繁に更新される(ホット)データを記憶するといった種々の目的で使用することができる。典型的に、SLCエリアは、MLCエリアより著しく小さい。
ここに述べる本発明の実施形態は、SLC及びMLCエリアに仕切られたメモリにおいてメモリを管理する改良された方法及びシステムを提供する。典型的に、メモリは、多数のアナログメモリセルを各々含む多数のメモリブロックより成る。幾つかの実施形態において、メモリコントローラは、1つ以上のメモリブロックを、SLC及びMLCの各エリアにおいてスペアブロックとして働くように割り当てる。スペアブロックは、例えば、欠陥となったブロック(不良ブロック)に置き換わるか、又は以下に詳細に述べるメモリのオーバープロビジョニングオーバーヘッドを増加するのに使用される。
ここに開示する幾つかの実施形態において、メモリコントローラは、MLCエリアには最少数のスペアブロックのみを、そしてSLCエリアにはできるだけ多くのスペアブロックを割り当てる。SLCエリアは、MLCエリアより著しく小さいので、各スペアブロックは、MLCエリアよりSLCエリアに非常に大きな割合のスペアメモリを追加する。それ故、SLCエリアに付加的なスペアブロックを割り当てることにより得られる性能利得は、通常、MLCエリアに少数のスペアブロックを割り当てることにより生じる性能低下より著しく大きい。
MLCエリアに少数のスペアブロックを維持することは、リスクがあり、即ちMLCメモリブロックは、使用中に欠陥を生じることがあり、そしてMLCエリアは、それらに置き換わるためにスペアブロックがなくなることがある。従って、ここに開示する幾つかの実施形態では、メモリコントローラは、MLCエリアのスペアブロックの数が、ある最小スレッシュホールドより低下しないことを検証する。MLCエリアのスペアブロックの数が少な過ぎることを検出すると、メモリコントローラは、MLCエリアの1つ以上のブロックからSLCエリアへデータをコピーし、そしてMLCにおいて解放されたブロックをスペアブロックとして使用する。
上述した技術は、メモリコントローラが、多数のスペアブロックをSLCエリアへ割り当て、従って、SLCエリアを、高いオーバープロビジョニング比率のために高いスループット及び耐久性で動作することができるようにする。同時に、MLCエリアは、充分な数のスペアブロックが連続的に与えられる。このトレードオフは、メモリシステムの全体的性能を改善する上で助けとなる。例えば、SLCエリアが、データのキャッシュ記憶に使用されるか、又はMLCエリアに関連した管理情報の記憶に使用されるとき、この情報を記憶すると、MLC性能も効率的に改善される。
ここに開示する他の実施形態は、SLCエリアにおいてメモリコントローラにより遂行されるブロックコンパクト化プロセス(「ガーベージコレクション」とも称される)を取り扱う。これらの実施形態は、コンパクト化の候補ブロックを選択するための改善された基準を与える。幾つかの実施形態において、メモリコントローラは、コンパクト化の候補として、最も古いブロック、即ち最も以前に書かれたデータを収容するブロックを選択する。この基準は、例えば、メモリコントローラが各ブロック内の有効データの量を評価することを要求しないので、迅速で且つ単純な管理を可能にする。
別の実施形態では、メモリコントローラは、コンパクト化が招くMLCエリアにおける書き込み動作の数を考慮することによりコンパクト化のための候補SLCブロックを選択する。コンパクト化がMLCエリアにおいて少数の書き込み動作を招くところのSLCブロックは、典型的に、好ましいものである。規範的な実施形態では、メモリコントローラは、例えば、ブロック又はブロックのグループのようなあるサイズのマッピング単位にわたって定義された論理的/物理的アドレスマッピングを使用してメモリにデータを記憶する。これらの実施形態では、メモリコントローラは、ブロック内の有効データの量だけではなく、その有効データが属するマッピング単位の数も考慮することで、コンパクト化の候補ブロックを選択する。典型的に、データが少数のマッピング単位に属するブロックに対してコンパクト化を遂行することが好ましい。というのは、コンパクト化は、MLCエリアへ僅かな量のデータをコピーすることを伴うからである。
システムの説明
図1は、本発明の一実施形態によるメモリシステム20を概略的に示すブロック図である。このシステム20は、種々のホストシステム及び装置、例えば、コンピューティング装置、セルラー電話又は他の通信ターミナル、除去可能なメモリモジュール(時々「USBフラッシュ装置」とも称される)、ソリッドステートディスク(SSD)、デジタルカメラ、音楽及び他のメディアプレーヤ、及び/又はデータが記憶され検索される他のシステム又は装置に使用される。
システム20は、メモリセルアレイ28にデータを記憶するメモリ装置24を備えている。メモリアレイは、多数のメモリブロック30を備えている。各メモリブロック30は、多数のアナログメモリセルを含む。本特許出願及び請求項の文脈において、「アナログメモリセル」という語は、電圧又は電荷のような物理的パラメータの連続的アナログ値を保持するメモリセルを記述するのに使用される。アレイ28は、例えば、NAND、NOR、及び電荷トラップフラッシュ(CTF)フラッシュセル、相変化RAM(PRAM、相変化メモリPCMとも称される)、ニトライドリードオンリメモリ(NROM)、強誘電性RAM(FRAM(登録商標))、磁気RAM(MRAM)及び/又はダイナミックRAM(DRAM)セルのような任意の種類のアナログメモリセルを含む。
セルに蓄積される電荷レベル、及び/又はセルに書き込まれ及びセルから読み出されるアナログ電圧又は電流は、ここでは、総体的に、アナログ値、アナログ記憶値又は記憶値と称される。記憶値は、例えば、スレッシュホールド電圧、又は他の適当な種類の記憶値を含む。システム20は、プログラミングレベルとも称される各プログラミング状態をとるようにセルをプログラミングすることによりアナログメモリセルにデータを記憶する。プログラミング状態は、考えられる状態の限定セットから選択され、そして各プログラミング状態は、ある公称記憶値に対応する。例えば、3ビット/セルMLCは、8つの考えられる公称記憶値の1つをセルに書き込むことにより、8つの考えられるプログラミング状態の1つをとるようにプログラムされる。
メモリ装置24は、メモリ装置に記憶するためのデータをアナログ記憶値へ変換しそしてそれらをメモリセルに書き込む読み取り/書き込み(R/W)ユニット36を備えている。別の実施形態では、R/Wユニットは、変換を行わないが、電圧サンプルが与えられ、即ちセルに記憶するための記憶値が与えられる。アレイ28からデータを読み出すときに、R/Wユニット36は、メモリセルの記憶値を、1ビット以上の解像度を有するデジタルサンプルへ変換する。データは、典型的に、ページと称されるグループでメモリセルへ書き込まれ及びメモリセルから読み取られる。幾つかの実施形態において、R/Wユニットは、1つ以上の負の消去パルスをセルに印加することによりメモリセルのグループを消去することができる。消去は、典型的に、全メモリブロックで遂行される。
メモリ装置24へのデータの記憶及びメモリ装置24からのデータの検索は、メモリコントローラ40により遂行される。メモリコントローラは、メモリ装置24と通信するためのインターフェイス44と、種々のメモリ管理機能を実行するプロセッサ48とを備えている。特に、プロセッサ48は、ここに述べるメモリブロック構成を実行する。
メモリコントローラ40は、メモリ装置に記憶するためのデータを受け入れ、そしてメモリ装置から検索されたデータを出力するためにホスト52と通信する。メモリコントローラ40、特に、プロセッサ48は、ハードウェアで具現化される。或いは又、メモリコントローラ40は、適当なソフトウェア、又はハードウェア及びソフトウェアエレメントの組み合わせを実行するマイクロプロセッサを備えてもよい。
図1の構成は、概念を明瞭にするために示された規範的なシステム構成に過ぎない。他の適当なメモリシステム構成が使用されてもよい。本発明の原理を理解するために必要な要素、例えば、種々のインターフェイス、アドレス回路、タイミング・シーケンス回路、及びデバッグ回路は、図示明瞭化のために省略されている。
図1の例は、単一のメモリ装置24しか示していないが、システム20は、メモリコントローラ40によってコントロールされる多数のメモリ装置を備えてもよい。図1に示す規範的なシステム構成では、メモリ装置24及びメモリコントローラ40は、2つの個別の集積回路(IC)として具現化されている。しかしながら、別の実施形態では、メモリ装置及びメモリコントローラは、単一のマルチチップパッケージ(MCP)又はシステムオンチップ(SoC)において個別の半導体ダイに一体化されて、内部バスで相互接続されてもよい。更に、それとは別に、メモリアレイが配置された同じダイにメモリコントローラ回路の若干又は全部が存在してもよい。更に、それとは別に、メモリコントローラ40の若干又は全部の機能がソフトウェアで具現化されて、ホストシステムのプロセッサ又は他の要素によって実行されてもよい。幾つかの実施形態において、ホスト44及びメモリコントローラ40は、同じダイ上に製造されてもよいし、又は同じ装置パッケージ内の個別のダイ上に製造されてもよい。
幾つかの実施形態において、メモリコントローラ40は、ここに述べる機能を実行するようにソフトウェアでプログラムされた汎用プロセッサを備えている。ソフトウェアは、例えば、ネットワークを経て電子的形態でプロセッサにダウンロードされてもよいし、或いはそれとは別に又はそれに加えて、磁気、光学又は電子メモリのような非一時的な有形媒体上に設けられ及び/又は記憶されてもよい。
アレイ28の規範的構成において、各ブロック30のメモリセルは、多数の行及び列に配置され、そして各メモリセルは、フローティングゲートトランジスタを含む。各行のトランジスタのゲートは、ワード線により接続され、そして各列のトランジスタのソースは、ビット線により接続される。メモリアレイは、典型的に、多数のページに分割され、即ち同時にプログラム及び読み取りされるメモリセルのグループに分割される。ページは、時々、セクタに細分化される。幾つかの実施形態において、各ページは、アレイの全行よりなる。別の実施形態において、各行(ワード線)は、2つ以上のページに分割される。例えば、ある装置では、各行は、2つのページに分割され、一方のページは、奇数順のセルであり、そして他方のページは、偶数順のセルである。
典型的に、メモリコントローラ40は、データをページ単位でプログラムするが、全メモリブロック30を消去する。必ずしもそうでないが、典型的に、メモリブロックは、106程度のメモリセルであり、一方、ページは、103−104程度のメモリセルである。
スペアブロックを有するSLC及びMLCエリアへのメモリ区画化
幾つかの実施形態において、メモリブロック30は、単一レベルセル(SLC)エリア34及びマルチレベルセル(MLC)エリア36へ区画化される。エリア34及び36は、互いに記憶密度が異なり、即ちデータを記憶するのに使用されるメモリセル当たりのビット数が異なり、MLCエリア36の記憶密度は、SLCエリア34より高い。幾つかの実施形態において、SLCエリア34のメモリセルは、メモリセル当たり単一ビットを保持し(例えば、2つの考えられるプログラミングレベルへプログラムすることにより)、一方、MLCエリア36のメモリセルは、セル当たり多数のビットを保持する(例えば、3つ以上の考えられるプログラミングレベルへプログラムすることにより)。或いは又、エリア34のメモリセルは、エリア36のメモリセルより低い、他の適当な記憶密度を有してもよい。
ここに述べる実施形態は、1ビット/セルでデータを記憶するSLCエリア及び1ビット/セルより高い密度でデータを記憶するMLCエリアを参照しているが、ここに開示する技術は、あるメモリエリアに別のメモリエリアより高い密度でデータを記憶する他の適当な技術にも使用できる。異なる数のプログラミングレベルを使用するのとは別に、他の適当な技術を使用してエリア34及び36に異なる記憶密度を具現化することができる。
記憶密度が低いために、SLCエリア34は、典型的に、迅速なプログラミング、長期の耐久性及び保持性、そして時々、高い記憶信頼性を特徴とする。種々の実施形態では、SLCエリアは、システム20において異なる機能を果たす。例えば、SLCエリア34は、ホストから受け取ったデータを、そのデータがMLCエリア36の長期行先アドレスへコピーされるまで、一時的にキャッシュ記憶するのに使用される。この機能は、時々、「バイナリーキャッシュ」又は「SLCキャッシュ」と称される。それに加えて又はそれとは別に、SLCエリア34は、マッピングテーブルのような非常に繊細な情報を記憶するのに使用される。更に別の実施例では、SLCエリア34は、頻繁に更新されるデータ(「ホット」データ)を記憶するのに使用される。
典型的に、SLCエリア34のサイズは、MLCエリア36のサイズより相当に小さい。1つの規範的実施形態では、SLCエリアは、50個のブロック34より成り、一方、MLCエリア36は、2000個のブロックより成る。或いは又、SLCのサイズとMLCのサイズとの間の他の適当な割合を使用することができる。ある実施形態では、SLCエリアのメモリセル及びメモリブロックは、MLCエリアとは構造が異なる。他の実施形態では、SLCエリアのメモリセル及びメモリブロックは、MLCエリアと同様又は同一である。
幾つかの実施形態において、SLC及びMLCの各エリアは、スペアブロックとして働くある数のブロック34を含む。スペアブロックは、種々の目的で使用され、例えば、欠陥となったブロック(不良ブロック)に置き換わるために使用されたり、以下に述べるコンパクト化又は「ガーベージコレクション」プロセスに使用されるオーバープロビジョニングに使用されたりする。
装置24のようなアナログメモリでは、データは、ページ単位でメモリに書き込まれるが、消去は、全メモリブロックに適用される。データは、消去されたページのみに書き込まれ、それ故、その場所でデータを更新することはできない。データを更新することは、更新されたデータを別の物理的な記憶位置に書き込み、データの以前のバージョンを無効とマークし、そして論理的アドレスを物理的記憶位置へ動的にマップすることを含む。
以上の特性のために、メモリのメモリブロックは、無効データページを徐々に蓄積し、その更新されたバージョンは、他の物理的記憶位置に記憶される。無効ページの数を減少するために、メモリコントローラは、コンパクト化又は「ガーベージコレクション」プロセスを実行する。このプロセスは、コンパクト化のために1つ以上のメモリブロックを選択し、その選択されたブロックから他の記憶位置へ有効データをコピーし、次いで、その選択されたメモリブロックを消去する。次いで、消去されたブロックは、その後のプログラミングのための準備ができる。
コンパクト化プロセスの効率(例えば、ブロックのコンパクト化ごとに遂行されるコピー動作の平均数で定量化される)は、メモリのオーバープロビジョニング比率(メモリの真の物理的容量と、データを記憶する外部エンティティに与えられる指定容量との比率)の関数として改善される。
典型的に、ブロック30内に有効データ(ホール)を保持しないメモリエリアの総計サイズは、オーバープロビジョニングオーバーヘッドと称される。オーバープロビジョニングオーバーヘッドは、指定のメモリ容量の小部分として定義されたオーバープロビジョニング比率として指定される。例えば、メモリが5%のオーバープロビジョニング比率を使用し、そしてメモリが論理的にいっぱいであるときには、各メモリブロックは、平均で、95%しかプログラムされない。
メモリがオーバープロビジョニングされると、ガーベージコレクションをより効率的に遂行することができる。換言すれば、ブロックコンパクト化当たりのコピー動作の数を減少することができる。ガーベージコレクションプロセスの効率は、メモリに使用されるオーバープロビジョニング比率の関数として増加する。オーバープロビジョニング比率が高くなると、メモリセルの消耗(wearing)が減少し、プログラミングスループットが高くなる。セルの消耗及び記憶スループットに対するオーバープロビジョニングオーバーヘッドの作用は、メモリがいっぱいであるか又はほぼいっぱいであるときに特に強くなる。
典型的に、プロセッサ48は、1つ以上のブロックをSLCエリア34のスペアブロックとして働くように割り当て、そして1つ以上のブロックをMLCエリア36のスペアブロックとして働くように割り当てる。各スペアブロックは、その各エリア(SLC又はMLC)内で、例えば、使用中に欠陥となるブロックに置き換わるための候補として、又はオーバープロビジョニング比率を高め、ひいては、コンパクト化プロセスの効率を改善するために使用される。
SLC及びMLCエリアにおけるスペアブロックの効率的な割り当て
メモリコントローラ40は、望ましい数のブロック30を、SLCエリア34又はMLCエリア36のスペアブロックとして働くように割り当てる。更に、メモリコントローラは、あるエリアにおけるスペアブロックの数を、他のエリアを犠牲にして、増加するために、あるエリアから別のエリアへデータをコピーする。
本発明の幾つかの実施形態において、メモリコントローラ40は、MLCエリアに最少数のスペアブロックしか維持しないとの犠牲において、SLCエリアに非常に多数のスペアブロックを割り当てる。この種の割り当ては、SLCエリアの性能を著しく改善する。上述したように、SLCエリアは、典型的に、MLCエリアより著しく小さい。それ故、SLCエリアに付加的なスペアブロックを割り当てることにより達成される性能利得は、通常は、MLCエリアからそれらのスペアブロックを除去することにより生じる性能低下より非常に大きい。
例えば、指定サイズの2000個のブロック及び20個の付加的なスペアブロックを有する2ビット/セルのMLCエリアと、50個のブロックを有する1ビット/セルのSLCエリアとに仕切られたメモリについて考える。比較のため、20個のスペアブロックのうちの19個がSLCエリアへ再割り当てされるシナリオを考える。これは、MLCエリアが1つのスペアブロックしかもたず、一方、SLCエリアが50個ではなくて69個のスペアブロックを有することを意味する。この再割り当ては、SLCエリアにおいてスペアブロックの数が約40%増加したこと、即ち著しい性能改善を与える増加を意味する。MLCエリアにおける単一のスペアブロックは、依然、メモリコントローラがブロックコンパクト化を実行できるようにするが、おそらく効率は悪いものである。
実際に、MLCエリア36における幾つかのメモリブロックは、時間と共に欠陥(不良ブロック)となる。メモリコントローラ40は、メモリブロックが欠陥であることを検出すると、そのブロックをスペアブロックに置き換える。MLCエリアに最少数のスペアメモリブロックしか割り当てられないときには(例えば、前記例のように単一のスペアブロック)、MLCエリアにおけるスペアブロックがある時点で全て使用されることになる。そのようなケースでは、ユーザデータを記憶するのに利用できるメモリスペースが指定サイズより小さくなる。
従って、幾つかの実施形態では、メモリコントローラのプロセッサ48は、MLCエリアにおけるスペアブロックの数がある最小値より低下したことを検出すると、MLCエリアにおける付加的なスペアブロックを解放するためにMLCエリア36からSLCエリア34へデータをコピーする。幾つかの実施形態において、プロセッサ48は、MLCエリアにおけるスペアブロックの数を、ある上限以下に維持する。これらのメカニズムは、MLCエリアに充分な数のスペアブロックを適応的に維持すると同時に、考えられる最大数のスペアブロックをSLCエリアに割り当てる。
プロセッサ48は、例えば、消去し損なったブロック、又はデータを正しくプログラムし損なったブロックを検出することにより、適当な技術を使用してMLCエリアにおける欠陥ブロックを検出する。
図2は、本発明の一実施形態によりメモリブロックを管理する方法を概略的に示すフローチャートである。この方法は、初期割り当てステップ60において、メモリコントローラ40のプロセッサ48がSLC及びMLCエリアにスペアメモリブロックを割り当てることで始まる。プロセッサ48は、1つ以上のブロックをSLCエリア34におけるスペアブロックとして働くように割り当てると共に、1つ以上のブロックをMLCエリア36におけるスペアブロックとして働くように割り当てる。上述したように、プロセッサ48は、典型的に、SLCエリアにできるだけ多くのスペアブロックを割り当て、そしてMLCエリアに最少数のスペアブロックだけを割り当てる。
プロセッサ48は、記憶ステップ64において、SLC及びMLCエリアにデータを記憶する。この特定の記憶プロセスは、例えば、SLCエリアの機能(例えば、バイナリーキャッシュ、或いは繊細な又は頻繁に更新されるデータのための記憶スペース)に基づいてある実施形態から別の実施形態へと異なってもよい。典型的に、プロセッサ48は、各エリアに割り当てられるスペアブロックを使用してSLC及びMLCの各エリア内でガーベージコレクション及び不良ブロック置き換えを別々に実行する。
動作中に、プロセッサ48は、不良ブロックチェックステップ68において、MLCエリア36に新たな欠陥ブロックが存在するかどうかチェックする。新たな不良ブロックが検出されない場合には、この方法は、前記ステップ64へループバックし、システム20がデータの記憶を続ける。
新たな欠陥ブロックがMLCエリアで検出された場合には、プロセッサ48は、スペアブロックチェックステップ72において、MLCエリアにスペアブロックが得られるかどうかチェックする。MLCエリアにスペアブロックが得られる場合には、プロセッサ48は、置き換えステップ76において、欠陥ブロックをスペアブロックに置き換える。この方法は、次いで、前記ステップ64へループバックする。
他方、MLCエリアにスペアブロックがそれ以上ない場合には、プロセッサ48は、スペア発生ステップ80において、MLCエリア36の1つ以上のブロックを、付加的なスペアブロックとして働くように解放する。一実施形態では、プロセッサ48は、MLCエリア36の1つ以上のブロックからSLCエリア34へデータをコピーし、次いで、MLCブロックを消去してそれらをスペアブロックとして働くよう指定する。それらのMLCブロックにそれアで存在したデータは、今や、SLCエリアに記憶され、必要に応じてこの別の位置から検索される。SLCエリアの記憶密度が低いために、所与のMLCブロックからのデータは、典型的に、2つ以上のSLCブロックへコピーされる。次いで、プロセッサ48は、ステップ76において、欠陥ブロックを、新たに指定されたスペアブロックに置き換え、そしてこの方法は、前記ステップ64へループバックする。
図2の方法は、概念を明確にするために選択された規範的な方法に過ぎない。別の実施形態では、他の適当な方法を使用することもできる。例えば、図2の方法において、MLCエリアにおける利用可能なスペアブロックの数がゼロまで減少した(即ち、利用可能なスペアブロックがそれ以上ない)ときにMLCエリアに新たなスペアブロックが生成される。別の実施形態では、MLCエリアにおけるスペアブロックの数が他の適当なスレッシュホールドより下がったときにプロセスが開始される。前記プロセスは、MLCエリアに適当な数の新たなスペアブロックを生成するのに使用される。
別の例として、図2の方法では、MLCエリアにおいて不良ブロックを検出するのに応答して新たなスペアMLCブロックが生成される。別の実施形態において、必要に応じて、他の事象に応答して又は周期的に、新たなスペアブロックが生成される。例えば、プロセッサ48は、MLCエリアにおけるスペアブロックの数が許容最小数より低いかどうかチェックするバックグランドタスクを実行する。MLCエリアにおけるスペアブロックの数が少な過ぎる場合には、プロセッサ48は、データをSLCエリアへコピーすることにより1つ以上の新たなスペアMLCブロックを発生する。
プロセッサ48は、どのMLCブロックを解放しそしてスペアブロックへ変換すべきか選択するために種々の方法及び基準を使用する。規範的な実施形態では、プロセッサ48は、最少量の有効データを有するブロックを選択する−典型的に、ブロックを解放するのに必要なコピー動作の数を減少する基準。別の実施形態では、プロセッサ48は、有効データが最小数の断片に細分化されるブロックを選択する−典型的に、SLCエリアの仮想的/物理的アドレスマッピングのサイズを減少する基準。更に別の実施形態では、プロセッサ48は、データが最も最近無効とされたブロックを選択する(例えば、MLCエリアにおいてコンパクト化中にデータをコピーする結果として)。更に、それとは別に、プロセッサ48は、他の適当な基準を使用して、スペアブロックへ変換するためのMLCブロックを選択する。
SLCエリアにおいてコンパクト化のためのブロックを選択する基準
幾つかの実施形態において、メモリコントローラ40のプロセッサ48は、SLCエリア34においてコンパクト化(ガーベージコレクション)プロセスを実行する。コンパクト化プロセスは、エリア34において有効データ及び無効データの両方を含む1つ以上のブロック30を選択し、有効データを他の記憶位置(SLCエリア34及び/又はMLCエリア36における)へコピーし、次いで、それらのブロックを消去する。
ブロックコンパクト化動作は、ある量のデータをある位置から別の位置へコピーすることを含む。コンパクト化のための候補ブロックを選択するとき、典型的に、コンパクト化に僅かな量のデータのコピーしか含まれないブロックを選択するのが好ましい。この種の選択は、メモリスループット及び耐久性を高める上で役立つ。別の事柄は、候補選択プロセスに含まれる管理オーバーヘッドである。
本発明の幾つかの実施形態において、プロセッサ48は、コンパクト化のための候補として、SLCエリアにおける(1つ以上の)最も古いブロックを選択する。換言すれば、プロセッサ48は、SLCエリアにおいて最も以前にプログラムされたデータを含む1つ以上のブロックを選択する。「最も以前にプログラムされたデータ」という語は、書き込み動作がホストから受け取られた新たなデータの結果であるか、又は内部コピー(例えば、コンパクト化)動作の結果であるかに関わりなく、データが書かれた時刻を指す。
コンパクト化のために最も古いブロックを選択することで、メモリコントローラは、近い将来更新されないであろうブロックを高い確率でコンパクト化することができる。更に、この選択基準は、ブロック内の有効データの量に依存しないので、迅速且つ単純な仕方で具現化することができる。この基準を使用するために、メモリコントローラは、ブロック当たりの有効又は無効データの量を評価又は追跡する必要がない。
図3は、本発明の一実施形態によりメモリブロックを管理するための方法を概略的に示すフローチャートである。この図の左側は、記憶プロセスを示し、この図の右側は、ブロック選択・コンパクト化プロセスを示す。2つのプロセスは、典型的に、メモリコントローラにより並列に実行される。
記憶プロセスは、入力ステップ90において、メモリコントローラ40のプロセッサ48がホスト52から記憶のためのデータを受け入れることで始まる。プロセッサ48は、キャッシュステップ94において、SLCエリア34にデータをキャッシュ記憶する。その後の時点で、メモリコントローラは、転送ステップ98において、長期記憶のためにSLCエリアからMLCエリア36にデータを転送する。
選択・コンパクト化プロセスは、最も古いブロックの識別ステップ100において、プロセッサ48がSLCエリアの最も古いブロック(1つ又は複数)を識別することで始まる。最も古いブロックは、SLCエリアにおいて最も以前に書かれたデータを含むブロックとして定義される。次いで、プロセッサ48は、コンパクト化ステップ104において、識別されたブロック(1つ又は複数)をコンパクト化する。コンパクト化は、識別された最も古いブロック(1つ又は複数)からの有効データをSLCエリア又はMLCエリアの新たな位置へコピーすることを含む。次いで、最も古いブロックが消去され、新たなプログラミングの準備ができる。
別の実施形態において、メモリコントローラ40は、論理的/物理的アドレスマッピング構成を使用してメモリ装置24にデータを記憶する。これら実施形態において、データは、論理的アドレスを使用してホスト52によりアドレスされ、メモリコントローラは、論理的アドレスを装置24の物理的記憶位置へ変換する。ある物理的な記憶位置から別の位置へデータを移動するときに(例えば、コンパクト化中に)、メモリコントローラは、移動されたデータの論理的アドレスへマップされた物理的記憶位置を更新する。
メモリコントローラの論理的/物理的アドレスマッピング構成は、典型的に、あるサイズのマッピング単位にわたって定義される。換言すれば、マッピング単位は、マッピングが定義されて遂行される基本的な粒度である。マッピング単位のサイズは、例えば、単一ブロック又は2つ以上のブロックである。
規範的な実施形態において、SLCエリアは、データキャッシングに使用され、MLCエリアは、長期データ記憶に使用され、そしてプロセッサ48は、次のポリシーに従ってSLCエリアにおいてコンパクト化を遂行するブロックベースのフラッシュ変換レイヤ(FTL)を実行する。
■コンパクト化のためにSLCブロックを選択する。
■選択されたSLCブロックからのデータの少なくとも幾つかを、MLCエリアにおけるそのデータのターゲット論理的アドレスへコピーする。この動作は、SLCエリアの他のブロックからの付加的なデータをMLCエリアへコピーすることを含む。というのは、選択されたMLCブロックのデータが、MLCエリアへ総括的にコピーされるべきマッピング単位(この例では論理的MLCブロック)に属するからである。
■選択されたブロックの残りのデータを、SLCエリアの別の位置(例えば、オープンブロック)へコピーする。
幾つかの実施形態において、メモリコントローラ40のプロセッサ48は、コンパクト化が被るMLCエリア内の書き込み動作の数を考慮することによりコンパクト化のための候補ブロックをSLCエリア34において選択する。そのような書き込み動作は、例えば、選択されたブロックからMLCエリアへデータをコピーするとき、及び選択されたSLCブロックからコピーされたデータと同じマッピング単位に属する他のSLCブロックからのデータをMLCエリアへコピーするときに行われる。プロセッサ48は、典型的に、コンパクト化によりMLCエリアに少数の(例えば、考えられる最小数の)書き込み動作を生じさせるSLCブロックを選択する。MLC書き込み動作は、レイテンシーに関して有力であるために、この種の選択基準は、SLCコンパクト化プロセスの効率を高める。
幾つかの実施形態において、プロセッサ48は、SLCブロックのコンパクト化が被るMLC書き込み動作の数と逆の関係にある各スコアをSLCエリアの各ブロックに指定する。これらの実施形態では、プロセッサ48は、コンパクト化のためのSLCブロックを選択する上で高いスコアをもつブロックに優先権を与える。
プロセッサ48は、所与のSLCブロックをコンパクト化することで生じるMLCエリアにおける書き込み動作の数を推定するための適当な方法を使用する。幾つかの実施形態において、この推定は、SLCブロックのデータが属するマッピング単位の数を考慮するものである。従って、幾つかの実施形態において、プロセッサ48は、ブロックにおける有効データの量だけでなく、その有効データが属するマッピング単位の数も考慮することにより、コンパクト化のための候補ブロックをSLCエリア34において選択する。例えば、同じ量の有効データを含む2つのブロックを考える。しかしながら、1つのブロックでは、全ての有効データが単一のマッピング単位に属し、一方、他のブロックでは、有効データが多数のマッピング単位に属する。
コンパクト化を遂行するときには、有効データが、コンパクト化されるブロックから別の記憶位置へマッピング単位粒度でコピーされる。それ故、有効データが多数のマッピング単位に属する場合には、大量のデータをコピーしなければならない。このため、典型的に、有効データが少数のマッピング単位に属するブロックをコンパクト化することが好ましい。
幾つかの実施形態において、プロセッサ48は、ブロックの有効データが属するマッピング単位の数を考慮する基準を使用してコンパクト化のための候補ブロックをSLCエリア34において選択する。有効データが少数のマッピング単位に属するブロックは、典型的に、コンパクト化のために好ましく、そしてその逆のことも言える。有効データの量が少ないブロックは、典型的に、コンパクト化のために好ましく、そしてその逆のことも言える。幾つかの実施形態において、プロセッサ48は、ブロックにおける有効データの量に逆に関係し且つブロックにおける有効データが属するマッピング単位の数にも逆に関係する各スコアをSLCエリアの各ブロックに指定する。これらの実施形態では、プロセッサ48は、コンパクト化のためのブロックを選択する上で高いスコアのブロックに優先権を与える。
図4は、本発明の一実施形態によりメモリブロックを管理するための方法を概略的に示すフローチャートである。この図の左側は、記憶プロセスを示し、この図の右側は、ブロック選択・コンパクト化プロセスを示す。2つのプロセスは、典型的に、メモリコントローラ40により並列に実行される。
記憶プロセスは、データ入力ステップ110において、メモリコントローラ40のプロセッサ48がホスト52から記憶のためのデータを受け入れることで始まる。データは、ある論理的アドレスに記憶するためにホストによりアドレスされる。プロセッサ48は、データキャッシングステップ114において、SLCエリア34にデータをキャッシュ記憶する。プロセッサ48は、アドレス変換ステップ118において、論理的/物理的アドレスマッピングに従い、MLCエリア36におけるデータの物理的記憶位置を決定する。次いで、プロセッサ48は、データ転送ステップ122において、SLCエリアからMLCエリアの適当な物理的記憶位置へデータを転送する。
選択・コンパクト化プロセスは、選択ステップ126において、プロセッサ48がコンパクト化のために1つ以上の候補ブロックを選択することで始まる。プロセッサ48は、候補ブロックのコンパクト化が被るMLC書き込み動作(例えば、SLCからMLCへのコピー)の数に基づいて各候補ブロックを選択する。典型的に、コンパクト化がMLCエリアにおいて少数の書き込み動作しか被らないSLCブロックに優先権が与えられる。幾つかの実施形態において、プロセッサ48は、コンパクト化の魅力を定量化するメトリックをブロックごとに計算する。次いで、プロセッサ48は、ブロックコンパクト化ステップ130において、選択された候補ブロック(1つ又は複数)をコンパクト化する。
ここに述べる実施形態は、主として、SLC及びMLCメモリより成るメモリシステムに向けられたが、ここに述べる方法及びシステムは、異なるハイアラーキー又は記憶密度を有するメモリより成る他の形式のメモリシステムのような他の用途に使用することもできる。
従って、上述した実施形態は、一例として述べたもので、本発明は、特に図示して上述したものに限定されない。むしろ、本発明の範囲は、上述した種々の特徴の組み合わせやサブ組み合わせの両方を包含すると共に、前記説明を読んだときに当業者に明らかとなり且つ従来技術には開示されていない変更や修正も包含する。本特許出願に参考として援用された文書は、本特許出願の一体的部分と考えるべきであるが、本明細書に明確に又は暗示的になされた定義と矛盾するようにそれらの援用文書に用語が定義されたものについては、本明細書の定義のみを考慮されたい。
20:メモリシステム
24:メモリ装置
28:メモリセルアレイ
30:メモリブロック
36:読み取り/書き込み(R/W)ユニット
40:メモリコントローラ
44:インターフェイス
48:プロセッサ
52:ホスト

Claims (30)

  1. データを記憶する方法において、
    多数のアナログメモリセルがブロックに配列されたメモリにデータを記憶し、ブロックの第1サブセットは、第1の記憶密度で第1のデータを記憶するように定義され、そしてブロックの第2サブセットは、前記第1の記憶密度より高い第2の記憶密度で第2のデータを記憶するように定義され、
    前記第1及び第2の各サブセットにおいて、1つ以上のブロックをスペアブロックとして働くように割り当て、欠陥となったブロックをスペアブロックと置き換え、
    前記第2のサブセットにおけるスペアブロックの数が既定スレッシュホールドより少なくなったことを検出すると、前記第2のサブセットにおける少なくとも1つのブロックから前記第1のサブセットへデータをコピーし、前記少なくとも1つのブロックを前記第2のサブセットのスペアブロックに追加する、
    ことを含む方法。
  2. 前記データを記憶することは、メモリセル当たり第1の数のプログラミングレベルを使用して第1のサブセットにおけるメモリセルをプログラミングし、そしてメモリセル当たり前記第1の数より大きな第2の数のプログラミングレベルを使用して前記第2のサブセットにおけるメモリセルをプログラミングすることを含む、請求項1に記載の方法。
  3. 前記第1の記憶密度は、メモリセル当たり1ビットを含む、請求項1に記載の方法。
  4. 前記データをコピーしそして少なくとも1つのブロックを追加することは、前記第2のサブセットにおけるスペアブロックの数を既定上限以下に維持することを含む、請求項1に記載の方法。
  5. 前記上限は、単一のスペアブロックを含む、請求項4に記載の方法。
  6. 前記データを記憶することは、前記第1のサブセットにおけるスペアブロックをオーバープロビジョニングオーバーヘッドとして使用するブロックコンパクト化プロセスを前記第1のサブセットにおいて実行することを含む、請求項1に記載の方法。
  7. 既定の選択基準に基づいて前記第2のサブセットにおいて少なくとも1つのブロックを選択することを含む、請求項1に記載の方法。
  8. 前記選択基準は、前記少なくとも1つのブロックの有効データの量に依存する、請求項7に記載の方法。
  9. 前記選択基準は、前記少なくとも1つのブロックの有効データが断片化された断片の数に依存する、請求項7に記載の方法。
  10. 前記選択基準は、前記少なくとも1つのブロックのデータが最も最近に無効化された時刻に依存する、請求項7に記載の方法。
  11. 多数のアナログメモリセルがブロックに配列されたメモリと通信するように構成されたインターフェイスであって、ブロックの第1サブセットは、第1の記憶密度で第1のデータを記憶するように定義され且つブロックの第2サブセットは、前記第1の記憶密度より高い第2の記憶密度で第2のデータを記憶するように定義されたインターフェイスと、
    前記第1及び第2の各サブセットにおいて、1つ以上のブロックをスペアブロックとして働くように割り当て、欠陥となったブロックをスペアブロックと置き換え、且つ第2のサブセットにおけるスペアブロックの数が既定スレッシュホールドより少なくなったことを検出すると、第2のサブセットにおける少なくとも1つのブロックから第1のサブセットへデータをコピーし、少なくとも1つのブロックを第2のサブセットのスペアブロックに追加するように構成されたプロセッサと、
    を備えたデータ記憶装置。
  12. 前記プロセッサは、メモリセル当たり第1の数のプログラミングレベルを使用して第1のサブセットにおけるメモリセルをプログラミングし、そしてメモリセル当たり前記第1の数より大きな第2の数のプログラミングレベルを使用して前記第2のサブセットにおけるメモリセルをプログラミングするように構成された、請求項11に記載の装置。
  13. 前記第1の記憶密度は、メモリセル当たり1ビットを含む、請求項11に記載の装置。
  14. 前記プロセッサは、前記第2のサブセットにおけるスペアブロックの数を既定上限以下に維持するように構成される、請求項11に記載の装置。
  15. 前記上限は、単一のスペアブロックを含む、請求項14に記載の装置。
  16. 前記プロセッサは、前記第1のサブセットにおけるスペアブロックをオーバープロビジョニングオーバーヘッドとして使用するブロックコンパクト化プロセスを前記第1のサブセットにおいて実行するように構成される、請求項11に記載の装置。
  17. 前記プロセッサは、既定の選択基準に基づいて前記第2のサブセットにおいて少なくとも1つのブロックを選択するように構成される、請求項11に記載の装置。
  18. 前記選択基準は、前記少なくとも1つのブロックの有効データの量に依存する、請求項11に記載の装置。
  19. 前記選択基準は、前記少なくとも1つのブロックの有効データが断片化された断片の数に依存する、請求項11に記載の装置。
  20. 前記選択基準は、前記少なくとも1つのブロックのデータが最も最近に無効化された時刻に依存する、請求項11に記載の装置。
  21. 複数のブロックを含むメモリにおいて、有効データ及び無効データの両方を含む1つ以上のブロックを選択し、その選択されたブロックから有効データを他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行し、
    メモリの所与のエリア内において、その所与のエリアに記憶された有効データ間で最も以前にプログラムされた有効データを含むブロックを識別し、
    その識別されたブロックを、コンパクト化プロセスの候補として選択する、
    ことを含むデータ記憶方法。
  22. 前記ブロックの識別及び選択は、ブロックにおける有効データの量に関わりなく遂行する、請求項21に記載の方法。
  23. 多数のブロックを含むメモリと通信するように構成されたインターフェイスと、
    有効データ及び無効データの両方を含む1つ以上のブロックを選択し、その選択されたブロックから有効データを他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化方法を実行するように構成されると共に、更に、メモリの所与のエリア内において、その所与のエリアに記憶された有効データ間で最も以前にプログラムされた有効データを含むブロックを識別し、そしてその識別されたブロックをコンパクト化プロセスの候補として選択するように構成されたプロセッサと、
    を備えたデータ記憶装置。
  24. 前記プロセッサは、ブロックにおける有効データの量に関わりなくブロックを識別し、選択するように構成された、請求項23に記載の装置。
  25. 多数のブロックを含むメモリであって、データキャッシングのための第1エリア及び長期データ記憶のための第2エリアに分割されたメモリにおいて、有効データ及び無効データの両方を含む1つ以上のブロックを第1エリアにおいて選択し、その選択されたブロックから有効データをメモリ内の他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行し、及び
    候補ブロックのコンパクト化によって被る第2エリアでの書き込み動作の数に基づいてコンパクト化プロセスの候補として第1エリアにおいてブロックを選択する、
    ことを含むデータ記憶方法。
  26. 物理的記憶位置を、少なくとも1つのブロックを各々含む各論理的マッピング単位に指定する論理的/物理的アドレスマッピングに基づいて第2エリアにデータを記憶し、前記ブロックを選択することは、ブロックの有効データが属する論理的マッピング単位の数に基づいてブロックを選択することを含む、請求項25に記載の方法。
  27. 前記ブロックを選択することは、第1エリアにおける少なくとも幾つかのブロックに、ブロックのコンパクト化によって被る第2エリアでの書き込み動作の各数に逆に関係した各スコアを指定し、そしてコンパクト化プロセスのためのブロックを選択する上で高いスコアを有するブロックに高いプライオリティを与えることを含む、請求項25に記載の方法。
  28. 多数のブロックを含むメモリであって、データキャッシングのための第1エリア及び長期データ記憶のための第2エリアに分割されたメモリと通信するように構成されたインターフェイスと、
    有効データ及び無効データの両方を含む1つ以上のブロックを第1エリアにおいて選択し、その選択されたブロックから有効データをメモリ内の他の記憶位置へコピーし、次いで、その選択されたブロックを消去するコンパクト化プロセスを実行するように構成されると共に、更に、候補ブロックのコンパクト化によって被る第2エリアでの書き込み動作の数に基づいてコンパクト化プロセスの候補として第1エリアにおいてブロックを選択するように構成されたプロセッサと、
    を備えたデータ記憶装置。
  29. 前記プロセッサは、物理的記憶位置を、少なくとも1つのブロックを各々含む各論理的マッピング単位に指定する論理的/物理的アドレスマッピングに基づいて第2エリアにデータを記憶し、そしてブロックの有効データが属する論理的マッピング単位の数に基づいてブロックを選択するように構成された、請求項28に記載の装置。
  30. 前記プロセッサは、第1エリアにおけるブロックに、ブロックのコンパクト化によって被る第2エリアでの書き込み動作の各数に逆に関係した各スコアを指定し、そしてコンパクト化プロセスのためのブロックを選択する上で高いスコアを有するブロックに高いプライオリティを与えるように構成された、請求項28に記載の装置。
JP2014515984A 2011-06-15 2012-06-14 Slc/mlc混成メモリのブロック管理構成 Expired - Fee Related JP5674999B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161497074P 2011-06-15 2011-06-15
US61/497,074 2011-06-15
US13/355,536 2012-01-22
US13/355,536 US8886990B2 (en) 2011-01-27 2012-01-22 Block management schemes in hybrid SLC/MLC memory
PCT/US2012/042416 WO2012174216A2 (en) 2011-06-15 2012-06-14 Block management schemes in hybrid slc/mlc memory

Publications (2)

Publication Number Publication Date
JP2014517425A true JP2014517425A (ja) 2014-07-17
JP5674999B2 JP5674999B2 (ja) 2015-02-25

Family

ID=47357726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014515984A Expired - Fee Related JP5674999B2 (ja) 2011-06-15 2012-06-14 Slc/mlc混成メモリのブロック管理構成

Country Status (7)

Country Link
US (1) US8886990B2 (ja)
EP (1) EP2565792B1 (ja)
JP (1) JP5674999B2 (ja)
KR (1) KR101551584B1 (ja)
CN (1) CN103688247B (ja)
TW (1) TWI463315B (ja)
WO (1) WO2012174216A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078229A (ja) * 2012-10-05 2014-05-01 Samsung Electronics Co Ltd メモリシステム及びそれの読み出し校正方法
JP2017045382A (ja) * 2015-08-28 2017-03-02 京セラ株式会社 電子機器
JP2018073240A (ja) * 2016-11-01 2018-05-10 富士通株式会社 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法
JP2021125090A (ja) * 2020-02-07 2021-08-30 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
US11836392B2 (en) 2018-10-30 2023-12-05 Micron Technology, Inc. Relocating data to low latency memory

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072104A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory device with physical cell value deterioration accommodation and methods useful in conjunction therewith
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8443153B1 (en) 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) * 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8732518B2 (en) 2011-04-13 2014-05-20 Netapp, Inc. Reliability based data allocation and recovery in a storage system
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US9965208B1 (en) 2012-02-23 2018-05-08 Micron Technology, Inc. Memory device having a controller to enable and disable mode control circuitry of the controller
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9684589B2 (en) * 2012-11-29 2017-06-20 Hewlett-Packard Development Company, L.P. Memory module including memory resistors
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US8954655B2 (en) * 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
US10102028B2 (en) 2013-03-12 2018-10-16 Sas Institute Inc. Delivery acknowledgment in event stream processing
US9489148B2 (en) 2013-03-13 2016-11-08 Seagate Technology Llc Selecting between non-volatile memory units having different minimum addressable data unit sizes
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US20150006784A1 (en) 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
TWI502591B (zh) * 2013-08-05 2015-10-01 Silicon Motion Inc 用來管理一記憶裝置之方法以及記憶裝置與控制器
CN104346292B (zh) 2013-08-05 2017-10-24 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
CN107391389B (zh) 2013-08-05 2020-11-24 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
WO2015018044A1 (en) 2013-08-08 2015-02-12 Telefonaktiebolaget L M Ericsson (Publ) Methods and devices for random access
US9519577B2 (en) * 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US9460815B2 (en) * 2013-12-30 2016-10-04 Sandisk Technologies Llc Reusing partial bad blocks in NAND memory
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9122651B1 (en) 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9356986B2 (en) * 2014-08-08 2016-05-31 Sas Institute Inc. Distributed stream processing
US9552166B2 (en) 2014-09-02 2017-01-24 Sandisk Technologies Llc. Process and apparatus to reduce declared capacity of a storage device by deleting data
US9582202B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by moving data
US9652153B2 (en) 2014-09-02 2017-05-16 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses
US9582193B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
US9582220B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
US9524112B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by trimming
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
US9582203B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9582212B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device
US9158681B1 (en) * 2014-09-02 2015-10-13 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by conditionally trimming
US9563370B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device
US9665311B2 (en) 2014-09-02 2017-05-30 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable
US9524105B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
US9563362B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Host system and process to reduce declared capacity of a storage device by trimming
CN105426113B (zh) * 2014-09-05 2018-11-02 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US9600420B2 (en) * 2014-10-29 2017-03-21 Qualcomm Incorporated Reducing decompression time without impacting compression ratio
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US9632705B2 (en) 2014-12-17 2017-04-25 Sandisk Technologies Llc System and method for adaptive memory layers in a memory device
US9690491B2 (en) * 2014-12-17 2017-06-27 Sandisk Technologies Llc System and method for managing data in a memory device
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
CN105843748B (zh) * 2015-01-15 2019-06-11 华为技术有限公司 一种对内存中内存页的处理方法及装置
CN104615550B (zh) * 2015-01-27 2019-01-18 华为技术有限公司 一种存储设备坏块的处理方法、装置及存储设备
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10008250B2 (en) 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
TWI569139B (zh) * 2015-08-07 2017-02-01 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US9548105B1 (en) * 2015-10-29 2017-01-17 Sandisk Technologies Llc Enhanced post-write read for 3-D memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
CN106649136B (zh) * 2015-11-03 2022-09-23 西安中兴新软件有限责任公司 一种数据存储方法和存储装置
US9946483B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US9946473B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive
US9569143B1 (en) 2015-12-11 2017-02-14 Sandisk Technologies Llc In block data folding for 3D non-volatile storage
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US20170271030A1 (en) * 2016-03-18 2017-09-21 Alibaba Group Holding Limited Method and system for using downgraded flash die for cache applications
US10162561B2 (en) * 2016-03-21 2018-12-25 Apple Inc. Managing backup of logical-to-physical translation information to control boot-time and write amplification
TWI614605B (zh) * 2016-03-31 2018-02-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI603193B (zh) * 2016-03-31 2017-10-21 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
KR102550343B1 (ko) 2016-07-27 2023-07-03 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법
KR101884913B1 (ko) * 2016-08-09 2018-08-02 고려대학교 산학협력단 별도의 가상 영역으로 관리되는 복수의 정보 저장 테이블을 가지는 메모리 장치 및 그의 제어 방법
US9940052B2 (en) 2016-09-14 2018-04-10 Micron Technology, Inc. Memory device configuration commands
KR20180045087A (ko) 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11288017B2 (en) 2017-02-23 2022-03-29 Smart IOPS, Inc. Devices, systems, and methods for storing data using distributed control
US10049047B1 (en) 2017-03-10 2018-08-14 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
US10095626B2 (en) 2017-03-10 2018-10-09 Toshiba Memory Corporation Multibit NAND media using pseudo-SLC caching technique
DE102017205274A1 (de) * 2017-03-29 2018-10-04 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aktualisieren eines Programmes
CN107291381B (zh) * 2017-05-18 2020-04-28 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘
CN107678684B (zh) * 2017-08-22 2020-11-10 深圳市硅格半导体有限公司 存储器的无效数据清除方法、装置和存储器
US10545685B2 (en) 2017-08-30 2020-01-28 Micron Technology, Inc. SLC cache management
US10509722B2 (en) 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
CN107527655A (zh) * 2017-09-12 2017-12-29 山东大学 一种闪存存储器混合读写方法及混合读写闪存存储器
TWI644215B (zh) * 2017-11-02 2018-12-11 慧榮科技股份有限公司 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
US11354247B2 (en) 2017-11-10 2022-06-07 Smart IOPS, Inc. Devices, systems, and methods for configuring a storage device with cache
US11163679B2 (en) * 2018-04-04 2021-11-02 SK Hynix Inc. Garbage collection strategy for memory system and method of executing such garbage collection
US11069425B2 (en) * 2018-08-21 2021-07-20 Intel Corporation Multi-level memory repurposing technology to process a request to modify a configuration of a persistent storage media
CN109445681B (zh) * 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储系统
CN110888593B (zh) 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) * 2018-09-07 2023-05-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888820B (zh) * 2018-09-07 2022-01-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
KR102546229B1 (ko) * 2018-10-05 2023-06-22 삼성전자주식회사 리드 리클레임 동작 시에 버퍼 메모리를 이용하는 스토리지 장치
KR102243920B1 (ko) * 2018-10-08 2021-04-22 강원대학교산학협력단 하이브리드 디바이스를 포함하는 비휘발성 메모리 장치 및 그 동작 방법
CN109582248B (zh) * 2018-12-14 2022-02-22 深圳市硅格半导体有限公司 闪存数据的写入方法、装置及计算机可读存储介质
US10896724B2 (en) 2018-12-18 2021-01-19 Western Digital Technologies, Inc. Non-volatile storage system with reduced program transfers
KR20200085513A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN111562880A (zh) * 2019-02-14 2020-08-21 英韧科技(上海)有限公司 一种数据存储装置、系统及数据写入方法
CN111863074B (zh) 2019-04-28 2024-03-01 桑迪士克科技有限责任公司 块中不同字线上的每单元具有不同位的存储器设备
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11907114B2 (en) 2019-08-18 2024-02-20 Smart IOPS, Inc. Devices, systems, and methods for dynamically remapping memory addresses
US11580030B2 (en) 2019-08-18 2023-02-14 Smart IOPS, Inc. Devices, systems, and methods of logical-to-physical address mapping
US11126548B1 (en) * 2020-03-19 2021-09-21 Micron Technology, Inc. Accelerated in-memory cache with memory array sections having different configurations
CN113515230B (zh) * 2020-04-10 2023-11-14 宏碁股份有限公司 数据写入方法及存储控制器
US11610641B2 (en) 2020-07-09 2023-03-21 SK Hynix Inc. Wafer-yields and write-QoS in flash-based solid state drives
US11416177B2 (en) 2020-08-11 2022-08-16 Micron Technology, Inc. Memory sub-system storage mode control
EP3985675B1 (en) 2020-08-18 2024-01-31 Changxin Memory Technologies, Inc. Method and device for repairing fail bits
US11797371B2 (en) 2020-08-18 2023-10-24 Changxin Memory Technologies, Inc. Method and device for determining fail bit repair scheme
US11887685B2 (en) 2020-08-18 2024-01-30 Changxin Memory Technologies, Inc. Fail Bit repair method and device
US11791010B2 (en) 2020-08-18 2023-10-17 Changxin Memory Technologies, Inc. Method and device for fail bit repairing
CN112463053B (zh) * 2020-11-27 2023-01-06 苏州浪潮智能科技有限公司 一种固态硬盘的数据写入方法和装置
JP2022146531A (ja) 2021-03-22 2022-10-05 キオクシア株式会社 メモリシステム
CN112908403B (zh) * 2021-03-31 2022-05-17 长鑫存储技术有限公司 备用电路分派方法、装置、设备及介质
US11881278B2 (en) 2021-03-31 2024-01-23 Changxin Memory Technologies, Inc. Redundant circuit assigning method and device, apparatus and medium
US11791012B2 (en) 2021-03-31 2023-10-17 Changxin Memory Technologies, Inc. Standby circuit dispatch method, apparatus, device and medium
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
TWI811674B (zh) * 2021-05-06 2023-08-11 大陸商北京集創北方科技股份有限公司 快閃記憶體的操作方法、系統單晶片及資訊處理裝置
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11646081B2 (en) 2021-08-03 2023-05-09 Sandisk Technologies Llc Reliability compensation for uneven NAND block degradation
US11960756B2 (en) 2021-12-14 2024-04-16 Micron Technology, Inc. Management of storage space in solid state drives to support proof of space activities
US11941254B2 (en) 2021-12-14 2024-03-26 Micron Technology, Inc. Test memory sub-systems through validation of responses to proof of space challenges
US20230244394A1 (en) * 2022-02-02 2023-08-03 Micron Technology, Inc. Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive
US11977742B2 (en) 2022-02-02 2024-05-07 Micron Technology, Inc. Solid state drives configurable to use storage spaces of remote devices in activities involving proof of space
TWI814590B (zh) * 2022-09-26 2023-09-01 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300269A1 (en) * 2008-05-28 2009-12-03 Radke William H Hybrid memory management
JP2012068986A (ja) * 2010-09-24 2012-04-05 Toshiba Corp メモリシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
JP4700562B2 (ja) 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008123414A (ja) * 2006-11-15 2008-05-29 Hitachi Ltd ストレージ管理装置、計算機システムおよびストレージ管理方法
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8291152B2 (en) * 2009-01-07 2012-10-16 Silicon Motion, Inc. Method for operating non-volatile memory and data storage system using the same
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300269A1 (en) * 2008-05-28 2009-12-03 Radke William H Hybrid memory management
JP2012068986A (ja) * 2010-09-24 2012-04-05 Toshiba Corp メモリシステム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078229A (ja) * 2012-10-05 2014-05-01 Samsung Electronics Co Ltd メモリシステム及びそれの読み出し校正方法
JP2017045382A (ja) * 2015-08-28 2017-03-02 京セラ株式会社 電子機器
JP2018073240A (ja) * 2016-11-01 2018-05-10 富士通株式会社 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法
US11836392B2 (en) 2018-10-30 2023-12-05 Micron Technology, Inc. Relocating data to low latency memory
JP2021125090A (ja) * 2020-02-07 2021-08-30 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
US11275651B2 (en) 2020-02-07 2022-03-15 Tdk Corporation Memory controller and flash memory system
JP7302497B2 (ja) 2020-02-07 2023-07-04 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム

Also Published As

Publication number Publication date
KR101551584B1 (ko) 2015-09-08
CN103688247A (zh) 2014-03-26
TWI463315B (zh) 2014-12-01
US20120246391A1 (en) 2012-09-27
CN103688247B (zh) 2016-10-12
EP2565792B1 (en) 2015-02-18
WO2012174216A2 (en) 2012-12-20
EP2565792A1 (en) 2013-03-06
WO2012174216A3 (en) 2013-03-14
US8886990B2 (en) 2014-11-11
JP5674999B2 (ja) 2015-02-25
KR20140025574A (ko) 2014-03-04
TW201308077A (zh) 2013-02-16

Similar Documents

Publication Publication Date Title
JP5674999B2 (ja) Slc/mlc混成メモリのブロック管理構成
TWI647702B (zh) 記憶體控制器、記憶體系統及於一記憶體中管理資料配置的方法
US11036628B2 (en) Storage system having a host directly manage physical data locations of storage device
US10838859B2 (en) Recency based victim block selection for garbage collection in a solid state device (SSD)
JP5728672B2 (ja) ハイブリッドメモリ管理
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US20150067415A1 (en) Memory system and constructing method of logical block
US8856475B1 (en) Efficient selection of memory blocks for compaction
US9535611B2 (en) Cache memory for hybrid disk drives
US20100169586A1 (en) Memory storage device and a control method thereof
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US11036429B2 (en) Memory control method, memory storage device and memory control circuit unit to determine a source block using interleaving information
US11334480B2 (en) Data storage device and non-volatile memory control method
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20230091792A1 (en) Memory system and method of controlling nonvolatile memory
US10545700B2 (en) Memory management method, memory storage device and memory control circuit unit
JP2013196161A (ja) 半導体記憶装置の制御方法
WO2014185038A1 (ja) 半導体記憶装置およびその制御方法
US11556249B2 (en) Delaying random data relocation for reducing write amplification in storage devices
US11036414B2 (en) Data storage device and control method for non-volatile memory with high-efficiency garbage collection
US10990520B2 (en) Method for gabage collecting for non-volatile memory
CN111949199B (zh) 一种存储设备的数据写入方法、装置及存储设备
TW202022614A (zh) 用於非揮發性記憶體之記憶體回收的方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141222

R150 Certificate of patent or registration of utility model

Ref document number: 5674999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees