JP5001011B2 - ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え - Google Patents

ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え Download PDF

Info

Publication number
JP5001011B2
JP5001011B2 JP2006547247A JP2006547247A JP5001011B2 JP 5001011 B2 JP5001011 B2 JP 5001011B2 JP 2006547247 A JP2006547247 A JP 2006547247A JP 2006547247 A JP2006547247 A JP 2006547247A JP 5001011 B2 JP5001011 B2 JP 5001011B2
Authority
JP
Japan
Prior art keywords
data
sector
degree
memory
block
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.)
Expired - Fee Related
Application number
JP2006547247A
Other languages
English (en)
Other versions
JP2007517320A (ja
JP2007517320A5 (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.)
SanDisk Corp
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Publication of JP2007517320A publication Critical patent/JP2007517320A/ja
Publication of JP2007517320A5 publication Critical patent/JP2007517320A5/ja
Application granted granted Critical
Publication of JP5001011B2 publication Critical patent/JP5001011B2/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/0607Interleaved addressing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、不揮発性フラッシュメモリの動作に関し、より具体的には、大容量メモリセルブロックの管理に関する。
今日、商業的に成功している不揮発性メモリ製品、特に小形形状のファクタカード形式のメモリ製品が数多く使用され、それらには、1つまたはそれ以上の集積回路チップ上に形成されたフラッシュEEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)セルのアレイが用いられている。必ずしもそうであるとは限らないが、通常は別個の集積回路チップ上に位置するメモリコントローラが、カードの接続されているホストと連動し、カード内部のメモリアレイの動作を制御する。このようなコントローラは一般に、マイクロプロセッサと、ある種の不揮発性読み出し専用メモリ(ROM)と、揮発性ランダムアクセスメモリ(RAM)と、データのプログラミングおよび読み出し中にデータがコントローラを通過する際にデータから誤り訂正符号(ECC)を計算する回路のような1つまたはそれ以上の特殊回路とを含む。幾種類かの市販カードには、コンパクトフラッシュ(登録商標)(CF)カード、マルチメディアカード(MMC)、セキュアデジタル(SD)カード、スマートメディアカード、個人タグ(P−Tag)、およびメモリスティックカードがある。この種類のメモリシステムは、メモリカードの実装以外に、さまざまな種類のホストシステム内に代替的に組み込むことができる。
NORおよびNANDの2種類の汎用メモリセルアレイ構造には、商業上の応用が見出されている。典型的なNORアレイでは、メモリセルは、列方向に延在する隣接するビットラインのソース拡散部とドレイン拡散部との間で接続され、コントロールゲートは、セルの行に沿って延在するワードラインに接続されている。メモリセルは、ソースとドレインとの間に位置するセルのチャネル領域の少なくとも一部分の上に配置された少なくとも1つの記憶素子を含む。従って、記憶素子上のプログラムされた電荷レベルによってセルの動作特性が制御され、次いでそれをアドレス指定されたメモリセルに適切な電圧を印加することによって読み出すことができる。このようなセルの例、メモリシステム内でのそれらの使用法、およびそれらを製造する方法は、米国特許第5,070,032号(特許文献1)、第5,095,344号(特許文献2)、第5,313,421号(特許文献3)、第5,315,541号(特許文献4)、第5,343,063号(特許文献5)、第5,661,053号(特許文献6)、および第6,222,762号(特許文献7)に記載されている。
NANDアレイは、1つまたはそれ以上の選択トランジスタと共に個々のビットラインと基準電位との間に接続された、例えば16または32などの2つより多いメモリセルの直列ストリングを用いてセルの列を形成する。ワードラインは、多数のこれらの列内のセルを横断して延びる。1つの列内の個々のセルでは、1つのストリングに流れる電流がアドレス指定されたセル内に蓄積された電荷レベルに依存するように、そのストリング内の残りのセルに強制的に通電することにより、プログラミング時に読み出しおよび検証が行われる。NAND構造のアレイの例およびメモリシステムの一部としてのそれらの動作に関する記載は、米国特許第5,570,315号(特許文献8)、第5,774,397号(特許文献9)、第6,046,935号(特許文献10)および第6,522,580号(特許文献11)に見出されている。
前に参照した特許に論じられているように、ごく一般的には導電性のフローティングゲートである現在のフラッシュEEPROMアレイの電荷蓄積素子は一般に、導電性のドープされたポリシリコン材料から形成される。フラッシュEEPROMシステムに有益な別の種類のメモリセルは、導電性フローティングゲートの代わりに非導電性の誘電体を用いて、不揮発的な方法で電荷を蓄積する。酸化シリコン、窒化シリコン、および酸化シリコン(ONO)で形成された三層誘電体が、導電性コントロールゲートとメモリセルチャネル上方の半導体基板表面との間に挟まれている。セルには、セルチャネルから窒化物内へ電子を注入することによってプログラミングが行われ、窒化物内で電子は限定された領域内に閉じ込められて蓄積され、窒化物内に熱いホールを注入することによって消去が行われる。誘電体記憶素子を用いるいくつかの特定のセル構造およびアレイについては、2002年10月25日に出願された米国特許出願第10/280,352号(特許文献12)に記載されている。
ほとんどすべての集積回路の用途と同じく、ある集積回路機能を実装するのに要するシリコン基板面積の縮小に対する強い要望が、フラッシュEEPROMメモリセルアレイについても存在する。所与のサイズのメモリカードおよび他の種類のパッケージの記憶容量を増大させるために、或いは容量を増大させると同時にサイズを縮小するために、シリコン基板の所与の領域に記憶することができるデジタルデータの量を増大させることが絶えず望まれている。データの記憶密度を高める1つの方法は、1メモリセルおよび/または1記憶素子当たりに1ビットより多いデータを記憶することである。これは、記憶素子の電荷レベル電圧範囲のウィンドウを2つより多い状態に分割することによって達成される。4つのこのような状態を使用することによって各セルが2ビットのデータを記憶することが可能となり、8つの状態では1記憶素子につき3ビットのデータを記憶するなどとなる。フローティングゲートを用いた多状態フラッシュEEPROM構造およびそれらの動作については、米国特許第5,043,940号(特許文献13)および第5,172,338号(特許文献14)に記載され、誘電体フローティングゲートを用いた構造については、前述した米国特許出願第10/280,352号(特許文献12)に記載されている。多状態メモリセルアレイの選択された部分は、米国特許第5,930,167号(特許文献15)および第6,456,528号(特許文献16)に記載されている方法で、種々の理由に対して2つの状態(2値)で動作することもできる。
一般的なフラッシュEEPROMアレイのメモリセルは、一括して消去されるセル群からなる別個のブロックに分割されている。すなわち、ブロックは、消去単位、同時に消去可能な最小のセル数である。1ページより多いデータを一回の動作でプログラムするかもしくは読み出すことができるが、各ブロックは通常、プログラミングおよび読み出しの最小単位である1ページまたはそれ以上のデータを記憶する。各ページは通常、ホストシステムによってサイズが定義されている1つまたはそれ以上のセクタのデータを記憶する。例示的なセクタは、磁気ディスクドライブに関して制定された基準に従った512バイトのユーザデータを含み、それに加えて、ユーザデータおよび/またはそれらが記憶されているブロックに関する数バイトのオーバーヘッド情報を含む。メモリシステムは通常、各ブロックにおいて16、32、またはそれ以上のページで構成され、各ページは、1つまたはごく少数のホストのデータセクタを記憶する。
ユーザデータをメモリアレイにプログラムし、かつそれからユーザデータを読み出す間の並列処理度を高めるために、アレイは通常、一般にプレーンと呼ばれるサブアレイに分割され、プレーンが、並列動作を可能にするためにそれら自体のデータレジスタおよび他の回路を含み、これによりデータの各セクタへのプログラミングまたはプレーンの各々からの読み出しを同時に行うことができる。単一の集積回路上のアレイを物理的にプレーンに分割してもよく、或いは各プレーンを1つまたはそれ以上の別個の集積回路チップから形成してもよい。このようなメモリシステムの例は、米国特許第5,798,968号(特許文献17)および第5,890,192号(特許文献18)に記載されている。
メモリをさらに効率的に管理するために、ブロックをメタブロックとして一緒に結合することができる。すなわち、各々の論理的にアドレス指定可能なメタブロックは、各プレーンから1つの物理ブロックを含むように定義される。メタブロックの使用については、国際公開特許出願第WO02/058074号(特許文献19)に記載されている。メタブロックは、データのプログラミング先および読み出し先としての共通の論理アドレスによって識別される。同様に、メタブロックのすべてのブロックは、一括して消去される。このような大きなブロックおよび/またはメタブロックで動作するメモリシステム内のコントローラは、ホストから受け取った論理ブロックアドレス(LBA)と、メモリセルアレイ内の物理ブロック番号(PBN)およびページアドレスとの間の変換を含むいくつかの機能を実行する。この変換は、論理ブロック番号(LBN)と論理ページとの中間項の使用を含むことが多い。
メモリシステムのコントローラは、その構造および制御ファームウェアによって、ホストによりそれに課される種々の条件下でデータのプログラミングおよび読み出しを行わせることができるのが好ましい。一例を挙げれば、音声、ビデオまたは他のストリーミングデータを高速で受信することができ、データは、メモリシステムが起動されると、リアルタイムで記憶される。別の例を挙げれば、ホストは、アレイに記憶されたファイルアロケーションテーブル(FAT)の書き込み時または更新時に行われるように、メモリシステムに1セクタのデータのプログラミングまたは読み出しを一度で行わせる。
メタブロックに記憶されたデータは頻繁に更新され、更新の可能性は、メタブロックのデータ容量が増大するにつれて高くなる。1つのメタブロックの更新されたセクタは通常、別のメタブロックに書き込まれる。変更のないセクタも通常、データを整理統合するために、同一のプログラミング動作の一部として、当初のメタブロックから新たなメタブロックへコピーされる。あるいは、更新されたデータと一括した単一のメタブロック内への後の再整理統合まで、変更のないデータを当初のメタブロック内に残しておいてもよい。
米国特許第5,070,032号 米国特許第5,095,344号 米国特許第5,313,421号 米国特許第5,315,541号 米国特許第5,343,063号 米国特許第5,661,053号 米国特許第6,222,762号 米国特許第5,570,315号 米国特許第5,774,397号 米国特許第6,046,935号 米国特許第6,522,580号 米国特許出願第10/280,352号 米国特許第5,043,940号 米国特許第5,172,338号 米国特許米国特許第5,930,167号 米国特許第6,456,528号 米国特許第5,798,968号 米国特許第5,890,192号 国際公開特許出願第WO02/058074号
本発明によれば、データがプログラムされるメモリユニットのサイズは、ホストによってプログラムされているデータの特性および量に適応される。単一のプレーン内の1つまたはそれ以上のブロック内で連続してプログラムされている場合のように、特定の状況において行われるデータ整理統合の事例の増加という不利な点がメタブロックにデータを書き込むことによって提供される高度な並列処理の利点を上回る場合は、データの各セクタは、メタブロック内で論理的に一緒に結合されるよりも少ない数のブロックに書き込まれる。
メタブロックの容量を基準としてプログラムされているデータセクタの数が、実行するだけの価値を有する高度な並列処理の利点をもたらす場合は、データの各セクタは、メタブロックの全ブロックに並列に書き込まれる。しかし、特定のデータプログラミング動作がメタブロックの記憶容量に比して少数のデータセクタしか含まず、その結果としてのデータ整理統合動作の増加により、より高度な並列処理が役立つ度合いよりも性能が損なわれる可能性の方が高い場合、メタブロックの使用によって提供される並列処理の利点は実現されない。
本発明の特定の態様によれば、メモリコントローラは、ホストの書き込みコマンド内および/または一連の書き込みコマンド内に含まれたセクタ数に応じて、メタブロック内への高度な並列処理によるか、或いはメタブロックを構成しないより少数のブロックへの低度な並列処理により、データのいくつかのセクタを適応的にプログラムする。データは、物理ブロック内にマップされた論理ブロックに対するホストのデータプログラミングパターンに応じて、Mが4、8または別の整数であるM物理ブロックからなる1メタブロック全体にプログラムしてもよく、M/2、M/4、M/8、またはこれらに類似するもののようなより少ない数のブロックからなる1つのユニットにプログラムしてもよい。特定の種類のホストプログラミング動作では、ホストがFATテーブルなどの演算ファイルを更新するような通常の動作において行われることが多い単一のデータセクタのプログラミングは、メタブロックまたはサブメタブロックではなく、単一のブロックに向けられる。メタブロックは、一回で1セクタをプログラムするためには使用されない。メタブロックは、並列プログラミングによってメタブロックのいくつかのブロックにわたって分散されることになり、それにより1つまたは少数のデータセクタが一回でメタブロックの各ブロックに書き込まれる結果となる、論理的に連続するアドレスを有するほんの少数のセクタのプログラミング動作に使用される可能性もない。単一のブロックは、このような場合に使用されるのが好ましい。これにより、メタブロックのいくつかのブロック全部からのデータを新たなブロックに整理統合し、その後メタブロックのこのような数セクタが更新されるたびに当初のブロックを消去する必要性が回避される。このような単一ブロックに関するデータの整理統合では、単一ブロックの消去のみに終わり、その結果、メモリの耐用寿命を短縮する可能性のあるメモリのプログラミング/消去のサイクル数(磨耗)が減少する。
本発明の別の特定の態様によれば、1つの並列処理度で記憶されたデータへのアクセスは、その方がより最適な性能特性を提供する可能性がある場合、別の並列処理度によるアクセスに変換される。例えば、メタブロックへの並列プログラミングは、メタブロックへのデータ書き込みが変更され、それによって性能が向上すると考えられる場合、単一のプレーン内の各ブロックへの順次プログラミングに変換することができる。このような変換には、メタブロックのブロックからのデータを単一のプレーン内の他のブロックへコピーするステップが含まれる。逆に、単一のプレーン内のブロックへの順次プログラミングは、当初のブロックからメタブロックへデータをコピーするステップを含め、性能を向上させるためのメタブロック内での並列プログラミングに変換することができる。
例示的な実施例では、モードビットはフラッシュメモリアレイに記憶することができ、かつ個々のセクタのユーザデータに対応付け、セクタがメタブロック内で他と共に並列にプログラムされてきたか、或いはそうではなく単一のブロック内で他と共に論理的順序でプログラムされたかを示すことができる。モードビットは、1つのセクタのユーザデータと共に記憶してもよく、代替的に、多くのユーザデータセクタに対するオーバーヘッドデータを含む別のセクタの一部として記憶してもよい。ホストによってあるセクタのユーザデータを読み出すか、或いは再プログラムするように命令されたときにこのビットを読み出すことにより、コントローラは、適切なモードでセクタにアクセスする。初期動作時、コントローラは並列モードで機能するが、一連の1つまたは少数のセクタ書き込み動作を指示するホストのプログラミングコマンドに応答し、順次モードに変更する。次いで、コントローラは、影響を受けたデータセクタと関連するモードビットを変更し、ユーザデータを順次プログラムする。セクタのしきい値数を超過してデータのいくつかのセクタを一括してプログラムすることを指示する1つまたはそれ以上のプログラミングコマンドをホストから受信した場合、コントローラの動作を切り換えて、並列プログラミングモードに復帰させることができる。
さらに、特定の実施例では、各メタブロックは、メモリアレイのいくつかまたはすべてのプレーンの各々からの1つのブロックで形成される。次いで、ユーザデータが、2つの主モードのうちの1つでプログラミングおよび読み出しを実行する。第1の主モードでは、いくつかの連続してアドレス指定されたデータセクタが、このメタブロックの複数のブロックにわたって並列にプログラムされる。この結果、データセクタは、個々のブロック内にランダムな順序で記憶される。それらは、メタブロックが内部に形成されたプレーン間でインタリーブされる。第2の主モードでは、データセクタは、メタブロックの個々のブロック内で順次書き込まれる。コントローラは、並列プログラミングと順次プログラミングとの間でのデータセクタの変更に応じて、プレーン横断的(第1のモード)もしくは単一プレーン内で順次に(第2のモード)物理アドレスの順序を指定しなおすこともできる。これは、ブロック間でデータを移動させるステップを含むことができる。メモリシステムは一般に、メモリシステムの性能を向上させるために、これらの2つのモードのうちの異なるモードにおいて、異なるブロックで動作する。
本発明の追加の態様、利点および特徴は、添付図面と併せてなされる以下の本発明の例示的な実施例の説明に含まれる。本願明細書に参照されるすべての特許、特許出願、論文および他の出版物は、あらゆる目的に対してその全体が本願明細書において参照により援用されている。
図1に、本発明の種々の態様を組み込むことができるフラッシュメモリを含む、コンピュータシステムなどの電子システムを全体として示す。この電子システムのいくつかの例には、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、MP3、および他のオーディオプレーヤ、デジタルカメラ、ビデオカメラ、電子ゲーム機、無線/有線電話通信装置、応答装置、ボイスレコーダ、ネットワークルータなどが含まれる。
図1のこの電子システムは、ランダムアクセスの主システムメモリ25、およびキーボード、モニタ、モデムなどのような少なくとも1つまたはそれ以上の入出力装置27と共にシステムバス23に接続されたプロセッサもしくはマイクロプロセッサ21を含む。一般的なコンピュータシステムバス23に接続された別の主要なコンピュータシステムの構成要素は、ある量の長期の不揮発性メモリである。DRAM(ダイナミックRAM)またはSRAM(スタティックRAM)などの揮発性メモリとは対照的に、不揮発性メモリは、その記憶状態を、デバイスから電力が除去された後においてもなおかつ保持する。一般に、このようなメモリは、メガバイト、ギガバイト、またはテラバイトのデータ記憶容量を有する磁気技術もしくは光技術を用いたディスクドライブである。このデータは、現行処理に用いるためにシステムの揮発性メモリ25に取り込まれ、かつ容易に捕捉、変更、または修正することができる。
図1の場合、大容量記憶装置のメモリは、不揮発性のフラッシュメモリシステム29である。メモリ29は、取り外し可能なメモリカードの形状であってもよく、コンピュータシステム内にハード的に組み込んでも(埋め込んでも)よい。メモリシステム29は、コンピュータシステムバス23に接続されたコントローラ31、および1つまたは複数の集積回路チップで形成されたメモリセルアレイ33を含む。データおよび命令は、コントローラ31から、主としてライン35を介してメモリセルアレイ33に伝達される。同様に、データおよび状態信号は、メモリセルアレイ33からコントローラ31にライン37を介して伝達される。データライン35および37は、実装に応じて直列または並列とすることができる。コントローラ31とアレイ33との間の他の制御回路および状態回路は、図1には示されていない。いくつかのシステムでは、コントローラ31はコンピュータシステム内に埋め込まれ、メモリセルアレイ33は、取り外し可能なカードに実装される。
アレイ33は、各電荷蓄積素子または各電荷蓄積領域が1ビットのデータを記憶するように動作させることができる。代替的に、アレイ33は、多状態セルまたはマルチレベルセルと呼ばれるメモリセルの各電荷蓄積素子または各電荷蓄積領域に記憶された1つよりも多いビット数のデータで動作させることができる。
図2に、ホストインターフェイスおよびメモリ制御機能を実行する単一のコントローラ集積回路チップ121、および複数の集積回路チップ127で構成されたフラッシュメモリセルアレイを含む例示的なメモリカード構造を示す。システムコントローラおよびメモリセルアレイチップは、コントローラ121とメモリチップ127との間でコマンド、アドレス、およびデータを転送することを可能にするバス124によって接続されている。これは一般的であるが、メモリシステムのなかには専用のコントローラを持たずにホストシステムによる直接制御に依存するものもあることに留意されたい。
1セクタにプログラムされたホストデータの各セクタの量に、記憶されたデータの妥当性を判定するために用いられる誤り検出および誤り訂正符号(ECC)が追加されることは、一般的な方法である。次いで、いくつかのこのようなシステムは、データが破損されていないことを保証する1つの方法としてECCを用いることによって読み出されているデータの妥当性をチェックする。ユーザデータのセクタは、ECCおよびヘッダ形式の他のオーバーヘッドデータと共に記憶することもできる。
メモリアレイにアクセスして順次にアドレス指定されたデータのプログラミングまたは読み出しを実行するステップの1つの特性は、「並列処理度」である。すなわち、メモリシステムの性能、すなわちアレイを往復してデータを転送する速度を向上させるために、実行可能な限り多くのデータを並列にプログラムし、かつ読み出すことが通常好ましい。用語「並列処理度」は、本願明細書では、並列にプログラミングまたは読み出しを実行することができるメモリのページ数を指す。1単位モードでは、単一のページのみが一度にアクセスされる。4単位モードでは、複数の連続してアドレス指定されたホストセクタには、一度に最大4ページアクセスされる。いくつかのホストデータアクセスパターンの下で性能および耐久性を向上させるためには、より高い並列処理度を可能にするためのマッピングを構成する必要がある一方で、他のホストデータアクセスパターンの下では、より低い並列処理度に対するマッピングを構成する必要がある。ホストがメモリシステムの異なる部分のデータに異なるパターンでアクセスする可能性があり、メモリシステムの異なる部分に対して異なるようにマッピングを構成することが必要となる。記憶装置の特定のアドレス範囲に記憶されたデータのホストデータアクセスパターンが経時変化する可能性もあり、特定のアドレス範囲のマッピング構成を経時変更することが必要となる。あり得る種々のホストの使用パターンを受けてメモリ利用を最適化するメモリ管理に対する全体的な必要性がある。
図3に、図1および図2のメモリセルアレイの一例を示す。この例では、アレイは、2つの集積回路デバイス、フラッシュ0およびフラッシュ1を含む。もちろん、メモリシステムの所望の記憶容量に応じて1つまたは3つより多いデバイスを用いることができる。各デバイス内のアレイ部分は、4つのプレーン、0〜3に分割されているが、他の実施形態では、2つ、3つまたは4つより多いプレーンを用いることもできる。複数のQページ(1ページは、プログラミングおよび読み出しの最小単位である)がメモリセルの各ブロック(消去の最小単位)内に含まれ、複数のNブロックが各プレーン内に含まれる。1ページは、1つまたは複数のホストデータセクタを記憶する容量を有し、これにより各ブロックにおいて複数のQページとなる可能性があるMデータセクタを各ブロックが記憶する。各プレーンは、プレーン内のメモリブロックおよびページにアクセスするそれ自体の回路を有する。通常、1ページのみが、各プレーン内で同時に書き込みまたは読み出しを実行する。特定の実施形態では、各セクタが、512バイトのユーザデータを含む。各セクタは、フラグ、ユーザデータECC、種々のパラメータ、および他のオーバーヘッドデータ用の追加のビットまたはバイトをも含むことができる。
プレーンの数によって可能な並列処理度が決定され、その度合いでメモリシステムを動作させることができる。並列処理度は、同時にプログラミングまたは読み出しを実行することができるページ数を表す。より高い並列処理度では、より多くのデータを同時に操作することができる。並列処理度は、1、2またはそれ以上とすることができる。高度の並列処理では、複数のプレーン内の複数のページが同時にアクセスされるように、論理アドレス−物理アドレス変換は、コントローラによって行われる。連続した論理アドレスを有するいくつかのデータのセクタは、同時にアクセスされる。このセクタ数は、各ページに記憶されたセクタ数に並列にアクセスを受けているページの数を乗じたものに等しい。並列処理度が1である場合に対しては、本願明細書において、これを1単位モードと呼ぶ。この最も低い並列処理度では、1プレーンの1ページのみが一度にアクセスされる。この場合、単一のページ内に記憶することができる連続した論理アドレスを有するいくつかのホストデータセクタは、一度にアクセスすることができる。
コントローラは、ホストからの書き込みコマンドに指定された一連の論理アドレスを有するデータセクタの数によって、データをメモリにプログラムする際の並列処理度を決定することができる。いくつかのホストコマンドは、単一のコマンド中に、プログラム対象の多数の連続したデータセクタを指定する。コントローラは、より量の多い並列処理でメモリにデータを書き込むことによって、この種類のコマンドに応答し、その一例を図4に示す。他のホストコマンドは、1つのみまたはごく少数の連続した論理アドレスを有するデータセクタを書き込むように指定し、このコマンドは、最低限の並列処理度で実行され、その一例を図5に示す。
説明された特定のメモリの実施例では、最高度の並列処理度に対して、各プレーンに1つずつ、多数のデータセクタを多数の物理ページに同時にプログラムすることができる。これにより、より高度なデータ書き込み性能が可能となる。詳細に述べると、4プレーンに対して、最大4ページを同時に書き込むことができ、これによりデータを一度に1セクタしか書き込むことができないメモリより最大で約4倍の速度でメモリが動作する。その量のデータをプログラムするのに要する別々のプログラミング動作数は有意に減少する。さらに別の例を挙げれば、8プレーンを有するメモリに対して、最高並列処理度でのこのメモリのプログラミングは、データを一度に1ページしかプログラムすることができないメモリより最大で約8倍速い。
マルチプレーンメモリ構成では、各プレーンからの1ブロックを論理的にまとめてメタブロックを形成することができる。ページを示す線を含む図3の8ブロックの組み合わせは、メタブロックの一例である。メタブロックは、ある範囲の連続したホストアドレス内のデータセクタを含むブロックの論理的グループ化である。サブメタブロックは、セットまたは単位として管理されるメタブロック内のブロックのサブセットである。データ管理の目的でいったんメタブロックがサブメタブロックに区分化されると、各サブメタブロックは、その中のデータがメタブロックの他の部分から独立してそれらだけで整理統合されるという点で、実質的に並列処理が少ないメタブロックと同様に管理される。例えば、図3では、このデバイスの各々のデバイス上の4ブロックが、メタブロックを両方のデバイスにわたって拡張せずにメタブロックまたはサブメタブロックを形成することができる。
以下の説明では、以下の専門用語を用いる。(1)当初のブロックは、いくつかの当初のデータセットを含むメタブロックまたはサブメタブロックとする。(2)更新ブロックは、当初のブロックからのいくつかのデータ、または当初のブロックからコピーされたいくつかのデータ、もしくはその両方の更新版を含むメタブロックまたはサブメタブロックとする。(3)論理ブロックまたは論理サブメタブロックは、ブロックの物理位置に関係なく、またはデータが単一の位置に含まれているか、或いは当初のブロックおよび更新ブロックに含まれているかに関係なく、物理メタブロックまたは物理サブメタブロックにマップされたホスト論理セクタのセットとする。
論理メタブロックは、任意の所与の時刻にメタブロックを形成するブロックの物理セットと、任意の所与の時刻にデータが中に存在する物理ブロックを無視して、ある範囲のデータを含むようにホストによって管理される論理構成体との間に位置する中間単位である。さらに、メタブロックは、いくつかのメモリ回路チップにわたってマップすることができ、これにより1つの回路チップ上のメモリセルアレイがNプレーンを含む場合、2つのチップにわたる場合には、メタブロックは最大2Nのブロックを含み、より多くのチップにわたってマップされる場合、より多くのブロックを含む。
所与の論理ブロックアドレス(LBA)を有するデータは、物理ブロック番号(PBN)で識別されたプレーン内の特定の物理メモリブロック内へ、コントローラによってマップされる。メタブロックを構成しているブロックのPBNは、同一である必要はない。図6に、数ブロックで形成されたメタブロックの一例を示し、この数ブロックは、それらのプレーンの各々の中で異なる物理位置を有する。さらに、メタブロックまたはメタブロックの各部分を構成しているブロックがメモリシステムの動作中に変更される際に、各プレーンは固定されたままである必要はなく、各プレーン内で互いに関係なく再配置することができる。
あるセクタが新たなデータで更新される際に、所与のセクタと関連するブロックは、プレーン内の新たなブロックにコピーされる。このブロックは、プレーン内のどこにでも配置することができる。図7に、ある他の任意の物理ブロックへ移動中のサブメタブロックに関する1つの例を示す。
最高度の並列処理のために構成されたメタブロックは、連続する論理アドレスを有する多数のデータセクタにアクセスするホストコマンドに最適である。1ホスト読み出しコマンドまたは1ホスト書き込みコマンド当たりのセクタ数が並列にアクセスすることができるセクタ数を越える場合、高レベルの性能が達成される。漸進的に数が増大するセクタコマンド上で一度に動作するインクリメンタルゲインがホストコマンドについて達成される。というのは、これによって個々のコマンドを発行するステップに関連する1セクタ当たりの処理のオーバーヘッド量が減少するからである。
部分的に更新されたメタブロック内のデータを整理統合することが必要となるため、メタブロックでメモリを動作させる欠点は、ホストが1プレーンについて1セクタのみ書き込み、次いでアレイ内の他の箇所で書き込む場合に明らかとなる。この整理統合は、更新されたデータがプログラムされた新たなメタブロックへの当初のメタブロックからの変化していない全データセクタのコピー、およびその後の当初のメタブロック内の全ブロックの消去を必要とする。8プレーン、1ブロック当たり64ページ、および各ページに記憶された1データセクタを有するメモリアレイの場合、504セクタのコピーおよび8ブロックの消去が必要となる。逆に、新たなデータセクタが1の並列処理度で動作する1つのサブメタブロックに書き込まれた場合、整理統合には56セクタのコピーおよび単一のブロック消去が必要となり、少数のデータセクタを更新することによって生じるオーバーヘッドが大幅に減少する。
データの整理統合および移動に関連する消去はメモリを摩耗させるので、短い、不連続の書き込みは、メモリ磨耗を加速することになる。各メモリブロックは、適切に動作しなくなる前にそれが耐えることのできる有限数の消去/プログラミングサイクルを有する。サイクルの最大数は、いくつかある要因の中でも特に、メモリアレイの構造およびメモリの記憶状態を保持しなければならない精度に依存する。この数値は、10,0000サイクルの低さとすることもでき、100,000サイクルまたはそれ以上のように極めて大きくすることもできるが、メモリシステム内の全ブロックの動作可能性を保持することが重要である。磨耗を最小化するには、ブロック消去を最小限度に抑えるのが好ましい。
以下は、メタブロック、サブメタブロック、またはいずれか一方の一部分が再配置されるか/もしくはデータが整理統合される種々のシナリオである。
(1)ホストがブロック内の1つまたはそれ以上のデータセクタを書き換える場合。このようなとき、このシステムは、消去されたブロックを更新用ブロックとして割り当て、書き換えられたデータは、更新用ブロックに書き込まれる。当初のブロック内の変化していないデータの一部または全部も更新用ブロックにコピーされ、その後同一の論理アドレスでのデータ要求の受信に応じて新たなブロックをアドレス指定するために、このシステム内に保持された論理アドレス−物理アドレス変換が更新される。ホストによるデータコピーまたはデータ書き換えによる更新用ブロックへのプログラミングが当初のブロックに記憶された全データに取って代わると、その後当初のブロックが消去される。
(2)特に当初のブロックが存在するプレーンにおいて、更新用ブロックとして割り当るために消去されたブロックが必要であるが、事前消去されたブロックが使用できない場合、2つまたはそれ以上の他のブロック内のデータが1つまたはそれ以上の他のブロックに整理統合される。次いで、それらの全データが移動された1つまたはそれ以上のブロックが消去され、現行プログラミング動作の更新用ブロックとして用いるのに使用可能となる。
(3)一実施形態では、更新用ブロックとするために必要な1つまたは複数のプレーン内のメタブロックの部分のみを整理統合することができる。残りのプレーン内のメタブロックの各ブロックは、残りのプレーン内の更新用ブロックが必要となった際に、要求に応じて後に整理統合することができる。
(4)さらに別の代替的な実施形態では、いくつかのプレーンでは整理統合が完了しているが、他はそうではないメタブロックは、ホストによって書き込みが行われ、かつ整理統合されたプレーン内の消去されたブロックを要求する。なんらかの所与のメタブロックのデータを完全に整理統合する(ガーベッジコレクションを行う)必要はなく、代わりに、要求に応じたブロックの整理統合および割り当てを可能にするために、各プレーン内のブロックが独立して管理される。この方法で、所与のメタブロックの他の部分から独立して、サブメタブロックをシステムの動作時に新たな物理アドレスに移動させることができる。
データを記憶する際は、高速動作を可能にする方法でデータセクタを物理ブロック内にマップすることにより、コントローラは、メモリ内への書き込みをさらに構成することができる。図4に、アクセスにおいて最大並列度、この例では4X並列インタリービングを可能にする方法でのプレーン0〜プレーン3にわたるメモリのインタリービングを示す。並列インタリービングとは、順次にアドレス指定されたホストセクタがプレーン間にインタリーブされるように、すなわち複数の順次にアドレス指定されたデータセクタが異なるプレーンのページ内で並列に同時にプログラムされるように、メモリがフォーマットされていることを指す。データは、別のメタブロックを形成する次の一連のブロックにデータが書き込まれる前に、1つのメタブロックを構成している各プレーンの1ブロックに同時にプログラムされる。1データセクタのみが各ブロックの個々のページに記憶された図4の例を想定すると、コントローラは、第1のセクタ、セクタ0をプレーン0内の1つのブロックに、第2のセクタ、セクタ1をプレーン1内の1つのブロックに、第3のセクタ、セクタ2をプレーン2内の1つのブロックに、第4のセクタ、セクタ3をプレーン3内の1つのブロックに書き込む。このメモリ構成は、並列マッピングと呼ぶことができる。この場合、これは、「4単位」インタリービングまたは「x4」インタリービングもしくは「4X」インタリービングとなる。このフォーマットへのデータの書き込みを構成すれば、これにより、4つの異なるプレーンの4つのセクタが一度にプログラムされるので、連続してアドレス指定されたホストからの入力データ、通常はビットストリームを、高速の方法で書き込むことができる。
特定の実施例では、入力データは、レジスタとすることができる、各プレーンと関連するバッファによって逐次受信され、データは、コントローラがメモリをインタリーブした方法に従って、1つまたは複数のレジスタから不揮発性メモリセルに並列に書き込まれる。メモリセルの特定のインタリービングは、メモリをそれに応じてフォーマットすることによって得ることができる。データは、それが書き込まれたものと同一のインタリービングフォーマットに従ってメモリから取り出すことができる。
他の度合いの並列インタリービングを含み、多くの異なるメモリをマップする方法がある。その度合いの並列インタリービングよりも多いプレーンがあるかもしれない。例えば、4つのプレーンがあったとしても、特定のプログラミング動作に対する並列インタリービングでは、2つのプレーンに同時にアクセスすることができるだけかもしれない。これは、「2単位」インタリービングまたは「x2」インタリービングもしくは「2X」インタリービングと呼ぶことができる。メモリは、「3単位」インタリービングまたは「x3」インタリービングもしくは「3X」インタリービングで動作することもできる。
図5に、メモリの1単位インタリービングを示す。並列処理度は1である。アクセスが一度に1つのプレーン内の単一のページ毎となるので、これは、非並列処理と呼ばれることもある。図5では、セクタは、1ブロックの全ページが一杯になるまで、そのブロックに順次書き込まれ、その後、書き込みは、別のブロックへ進む。これは、「1単位」インタリービングまたは「x1」インタリービングと呼ぶことができる。
タイミングの例は、図4と図5のインタリービング間の性能の差を示す。図5に従って4つの連続セクタに書き込むと、単一のプレーンの1データレジスタは順次4回充填され、書き込みは順次4回実行される。レジスタロードに25マイクロ秒かかり、書き込みに1ミリ秒かかれば、総使用時間は、4*25マイクロ秒+4*1000マイクロ秒=4100マイクロ秒となる。しかし、図4の並列書き込みでは、4セクタ書き込みには依然として4回の順次データレジスタロードが含まれるが、書き込み動作は1回のみとなる。総使用時間は、4*25マイクロ秒+1000マイクロ秒=1100マイクロ秒となる。この4X並列マッピングは、1Xマッピングを3.7倍上回る性能向上をもたらす。異なるメモリは異なるタイミング特性を有するので、これらの特定の数値は、比較例を提供するためにのみ使用されている。
データセクタに記憶された方法をコントローラに認識させるために、1つまたは複数のインタリービングインジケータビットがコントローラもしくはメモリに記憶されていてもよい。この1つまたは複数のインタリービングインジケータビットを用いて、コントローラは、更新データを記憶する順番もしくはデータを読み出す順番を決定することができる。例えば、メモリ上の各セクタは、セクタが記憶された方法を示すために含まれた1つまたはそれ以上のインジケータビットを有することができる。4プレーンメモリに対して、可能なメモリインタリーブ構成が7通りある。これらのインタリービングインジケータビットは、ユーザデータビットおよびECCなどの他のオーバーヘッドビットに追加されるビットである。インジケータビットは、代替的に、ヘッダではなくテーブルに別個に記憶してもよい。
単一のメモリアレイは通常、異なるインタリービングでアクセスされるブロックを有する。例えば、同一のメモリが、1単位(図5)で記憶されたデータおよび4単位(図4)で記憶された他のデータを有することができる。セクタインタリービングインジケータビットは、セクタを1つまたはそれ以上のブロックに記憶するのに用いられるインタリービングの方法を示す。例えば、1単位インタリービングを用いて第1のデータファイルをメモリに記憶することができ、第1のサブメタブロックに記憶されたセクタに対するインジケータビットがこれを示す。2単位インタリービングを用いることによって、サブメタブロックに第2のデータファイルを記憶することができ、そのように記憶されたセクタに対するインジケータビットがこれを示す。同じ方法で3単位インタリービングを用いることによって、サブメタブロックに第3のデータファイルを記憶することができる。単一のメモリアレイでは、種々のメモリセルブロックを、これらの方法のうちのいくつかで構成することができる。
コントローラは、ホストのプログラミングコマンドの性質から、データを導く方法を決定する。例えば、ホストがFATファイルシステム(MS−DOSファイルフォーマット)を更新している場合、各データ書き込みコマンドは通常、単一のセクタを指定することになる。すなわち、各ホスト書き込みコマンドに応答して、1つのセクタのみがフラッシュメモリにプログラムされる。この場合、データは、メタブロックにではなく、メモリの単一のブロックに、1単位動作によって順次記憶することができる。大容量のファイルがプログラムされる別の種類のデータプログラミング動作では、ホスト書き込みコマンドは、少なくとも1つのメタブロックのかなりの部分または全部を占有する可能性のある極めて多数のデータセクタを論理アドレス順に書き込むように指定する。コントローラは、ホストの活動に応答し、並列処理度をデータ書き込みの性質に合わせる。
論理アドレスを物理アドレスへマップする方法を決定するにあたって個々のデータ書き込みコマンドに応答することに加え、コントローラは、ホスト書き込みコマンドのパターンを監視することができる。この監視は、特定の1ブロックまたは複数ブロックがホストによってアクセスされた回数のカウント値を保持するステップを含むことができる。この情報は、それらのブロックに、或いは別個の物理ブロックに記憶されたデータセクタにオーバーヘッドデータとして記憶することができる。記憶された1つまたは複数の数値の分析には、しきい値の数値と比較するステップ、もしくは2つまたはそれ以上のアクセス利用パターンの頻度差をしきい値の数値と比較するステップを含むことができる。この情報は、例えば、データが頻繁に書き換えられるメタブロックを特定するのに有益であり、この場合、コントローラは、同一の論理アドレスを有するその後の書き込みをむしろ単一のブロックにマップするように決定することができる。これにより、データ更新の結果として整理統合しなければならないデータの量が減少する。
コントローラによって監視および記憶することができる別のプログラミング特性は、ホストが命令した書き込みにより1つまたはそれ以上のページもしくはブロックに書き込みが実行された回数対コントローラによって開始されたデータ整理統合(ガーベッジコレクション)の回数の値である。さらに別のプログラミング特性は、ブロックまたはメタブロックが繰り返し部分的にアクセスされると、このようなブロックにデータを書き込む場合の並列度を下げるのが望ましいことを信号で伝えることができるので、1つのブロックまたはメタブロックの全ページがデータ書き込みのためにアクセスされた回数よりも少ない回数の値である。さらに、個々のホストプログラミングコマンドによって書き込みが実行されたセクタ数の統計値を保持し、物理アドレスへの論理アドレスのマッピングを決定する際に使用することができる。例えば、一度に書き込むようにホスト書き込みコマンドによって指定されるデータセクタが主として1セクタであるのか、或いは4セクタまたはそれ以上であるのかは、極めて有益となりうる。
図4および図5の説明図は、この概念を説明する目的で2つのうちの1つのインタリービング手法で動作される集積回路デバイスのほぼ全体を示しているが、これは通常、メモリを使用する効率的な方法ではない。各デバイスは通常、そのブロックの一部分は並列アクセス(図4による)用のメタブロックを形成するのに用いられ、そのブロックの他の部分は一度に1ブロック(図5による)アクセスされている状態で動作される。
複数のプレーンにわたってセクタアドレスがインタリーブされる方法にはいくつかの利点および不利な点がある。より高度な並列インタリービングの利点は、順次にアドレス指定されたセクタを並列にメモリに書き込むことができる点である。より低度な並列マッピングまたは順次マッピングの利点は、部分的なブロック更新に応答してコピーを要するデータが少ない点、および特に少数のデータセクタが書き換えられる際にガーベッジコレクションを行う必要のあるブロック数が少ない点である。メタブロックに記憶されたデータの一部が書き換えられる際に、当初のブロックに存在する書き換えられなかったデータが新たなブロックにコピーされ、それが新たなデータと共に記憶される。並列マッピングを用いてデータが記憶された場合、データが異なる複数のプレーンにわたって拡がるために、メタブロック全体を書き換えることが必要となる。しかし、データが順次マッピングを用いてサブメタブロックに記憶されていた場合、サブメタブロック内のデータのみが、ガーベッジコレクションを行う必要がある。書き換え対象のデータは、書き換えられていないあらゆるデータと共に新たなブロックに書き込まれ、新たなブロックが、そのメタブロックの他のブロックと連結される。これにより、行う必要のあるコピー、書き込み、書き換え、およびガーベッジコレクションの量が最小化される。
一般に、フラッシュメモリセルは、それらの信頼性が許容できないレベルまで潜在的に低下する以前での有限数の消去/書き込みサイクル(例えば、10,000サイクルと100,000サイクルの間のいずれか)を有する。従って、書き換えおよび書き込みの量を最小化することにより、これがメモリの寿命を増大させる。ガーベッジコレクションには時間がかかるため、ガーベッジコレクションの量を減らすことも性能を向上させる。
以下の実施例は、フラッシュメモリを用いた本発明の特定の実施形態である。しかし、フラッシュメモリは、単に一例として用いられ、本発明は、他のメモリ技術にも用いることができる。特定の実施形態において、本発明は、多数のセクタ「ブロック」を含むフラッシュメモリ素子を含む記憶装置を扱う。ブロックは、1消去動作によって消去されるメモリの単位として定義される。言い換えれば、ブロックは、消去の単位である。本発明は、具体的に、それらのブロックのマッピングおよびアクセスに用いられる機構に取り組む。
ホストデバイスがフラッシュメモリカードにアクセスする際に、いくつかの特有の使用パターンがある。FATファイルシステムは、(1)FAT領域およびディレクトリ領域における単一セクタと、(2)記憶装置のユーザデータ領域におけるマルチセクタとの2つの相異なるパターンに至る。ボリューム内に断片化があれば、特定の用途に対しては、使用は、その後、順次的ではなく「ランダム」となる。
ホストは、種々のホスト使用パターンによってフラッシュメモリにアクセスすることができる。1つの使用パターンは単一セクタモードであり、このモードでは、セクタは一度に1つずつアクセスされる。他の使用パターンはマルチセクタモードであり、この場合、記憶システムは、各フラッシュデバイス内の多数のプレーンにわたり、1プレーンにつき1セクタずつ同時にアクセスする。
本発明は、不揮発性メモリのホスト使用パターン間の並列処理度および不揮発性メモリが構成またはフォーマットされている方法に適合する。並列処理度は、1単位(順次とも呼ばれる)、2単位、3単位、4単位などとすることができる。1単位方式、すなわち順次アクセス方式では、次のブロックへ進む前に、1つのブロック内の各セクタがアドレス指定され、そのアクセスは、一度に1セクタに限定される。並列アクセス方式(1単位アクセスより大きい)では、いくつかの順次的動作、すなわち1単位動作ではなく、1動作において各プレーンからのセクタがアドレス指定される。並列動作によって、処理能力を高めることによるより高い性能が可能となる。これらの2つの方式は、性能および磨耗に関して利点と不利な点とを有する。
本発明は、ホストアクセスを監視し、データをメモリに記憶する方法を切り換えて、いずれかのアクセスモードのメモリ磨耗特性および性能特性をうまくとらえて利用する。
マッピング情報を保持する種々の方式があり、開始LBAのテーブルは、1つの例である。メモリ内に保持されたテーブルは、開始LBAを各物理メモリブロックに対して配置するために用いられる。
セクタマッピングおよびブロック管理を伴うブロックマッピングの適応的並列処理は、新たなデータで上書きされているセクタを含むブロック上でコピー動作または消去動作、もしくは両方を行うだけで、フラッシュメモリに対して最適な書き込み/消去摩耗性能を提供する。
データセクタが単一セクタ並列処理用にマッピングされている領域へのアクセスは、所与の論理ブロック内の順次的アドレス順序づけを保持するために、順次にアドレス指定されたセクタに一回で1つ書き込むように限定される。並列アクセス(1単位アクセスより大きい)では、1プレーンにつき1セクタに同時に書き込むことができ、並列に書き込まれるプレーンの数に等しい係数により、性能が向上する。例えば、4プレーンを有するデバイスは、単一セクタ書き込みより約4倍速くデータを書き込むことができる。8プレーンを有するデバイスは、単一セクタ書き込みより約8倍速くデータを書き込むことができる。16プレーンを有するデバイスは、単一セクタ書き込みより約16倍速くデータを書き込むことができる。
図8に、順次マッピングを用いた場合のデータの修正を示す。4つの連続したセクタを上書きするには、新データを新たなブロックに書き込んで旧データを新たなブロックにコピーし、旧ブロックを消去する必要がある。1回の消去のみ実行する必要があることになる。コピー処理では消去済みセクタはコピーされない。
図9に、並列マッピングを用いた場合のデータの修正を示す。4つの連続したセクタを上書きするには、4つの新たなブロックを見つけ出し、旧データと新データを新たなブロックにコピーし、4つの旧ブロックを消去する必要がある。4回の消去を行う必要がある。ランダムまたは単一のセクタアクセスの下で行われるかもしれない場合、ホスト書き込み数に対して多くのデータ整理統合動作が必要となれば、チップの寿命が消去数の増加によって影響を受けることになる。
各セクタは一般に、ユーザデータ、ECCデータ、およびオーバーヘッドデータを含む。オーバーヘッド情報には、データ管理に必要なセクタID、物理アドレス情報、および他のシステム関連情報が含まれる。本発明の一実施形態では、オーバーヘッド情報は、データマッピングの適合的態様を管理するのに必要な付加情報を含む。いくらかのビット数を、並列処理度、サブメタブロックのサイズ、セクタインタリーブ、またはデータマッピングに関する他の指示を示すために保持することができる。
一例を挙げれば、最大メタブロックサイズが4ブロックである場合、2ビットのマッピングフィールドを用いて並列処理度を示すことができ、00bで1単位を示すことができ、01bで2単位を示すことができるなどとなる。このシナリオでは、第1のプレーン内の第1のブロックは、それがフォーマットされている並列処理度を示すマッピングフィールドを有することになり、それに基づいて、ある別の数のブロックが同一のサブメタブロックに含まれることになる。例えば、第1の値が並列処理度2を示す01bであった場合、メタブロック内の次のブロックのみが同一のサブメタブロックに入ることを示す。
メタブロックの各ブロック内の1つのセクタ、または所与のブロック内の連続したセクタから論理アドレス情報を読み出すことによってデータマッピングを決定し、かつそれに基づいてレイアウトを決定することが可能となるので、このマッピングフィールド情報は、便宜上保持されることになる。例えば、所与のブロック内の最初の2つの物理セクタが離れた2つの論理アドレスであった場合、インターリーブファクタは2となり、従って並列処理度は2となる。データマッピング情報は、セクタのオーバーヘッド情報にではなく、別個のテーブルに記憶してもよく、またデータマッピングが所与のメタブロックまたはサブメタブロックに対して修正されるたびに更新することができる。テーブルは、メモリ素子上の予約領域内の一実施形態の不揮発性メモリに保持される。
さらに、一実施形態では、最適なデータマッピングを決定するための後の分析のために、ホスト使用および/またはカード使用率を追跡記録する統計データが保持される。1つの統計データは、所与のホストコマンドに書き込まれたセクタ数である。この統計データが1つのメタブロックまたはサブメタブロック内の各セクタと共に記憶されれば、この統計データをグループとして分析することができ、最適な並列処理度に関しての決定を行うことができる。特定の実施形態では、この統計データは、セクタに書き込みが行われたときに、セクタのオーバーヘッドに記憶される。別の実施形態では、統計データは、一時的に揮発性メモリに記憶することができ、次いで揮発性メモリ内の別個のテーブルに転送することができる。
統計データは、書き込まれた各セクタまたはブロックに関して、例えばテーブル内に蓄積することもでき、これによって各々の発生回数または相対的発生回数が蓄積され、あるしきい値に基づいて並列処理度が変更される。蓄積の目的で、統計データは、許可された最も近い並列処理にビンされる。例えば、1度の並列処理と4度の並列処理のみが許可された場合、3つのセクタ上で動作している書き込みコマンドは、4つセクタ上で動作しているホストコマンドと共にカウントに蓄積されることになり、4つよりも多いセクタ上でのすべての書き込みコマンドは、4つのセクタ上での動作のカウントにビンされる。最高の並列処理度を表すビンは、コマンドのセクタカウントを最大並列処理度で除算した値だけ増分される。
一例を挙げれば、4が最大並列処理度である場合、16セクタのホスト書き込みは、4単位カウントを4だけ増分することになる。1つの領域が大部分は単一セクタホストコマンドで書き込まれた場合、最適並列処理度は1であることを示す統計データが蓄積される。同様に、1つの領域が大部分は4セクタホストコマンドで書き込まれた場合、最適並列処理度は4であることを示す統計データが蓄積される。
別の統計データは、セクタがホスト書き込みにより書き込まれたか、あるいはデータの整理統合により書き込まれたかである。このような統計データは、例えば別個のテーブルまたは個々のセクタのオーバーヘッド内に、また2つの機構間の相対数の特定のしきい値、もしくは比率に基づいて蓄積することができ、これにより各々の発生回数または相対的発生回数が蓄積され、並列処理度が特定のしきい値に基づいて変更される。例えば、セクタが大部分はデータの整理統合により書き込まれていると判断された場合、データの整理統合活動に含まれるブロック数を最小化するためにこの領域が1単位並列処理用にフォーマットし直されれば、性能または耐久性全体を向上させることができる。
第2の統計データを用いてしきい値に到達することによって、次いで最適並列処理度を決定するための第1の統計データの評価が引き起こされるように、2つの前述した統計データのセットを結合することができる。このような蓄積された統計データを保持するテーブルは、不揮発性メモリに保持されることになり、一実施形態では、メモリ素子上の予約領域に保持される。蓄積された統計データはセクタ毎に保持することはできず、むしろメタブロック毎、またはひとまとまりのメタブロックのようなより大きい領域に保持されることに留意されたい。
このシステムは、空間を節約して使い続けるために、蓄積された統計データを関心のある領域のみで保持するように最適化することができる。例えば、所与の領域に対する蓄積された統計データの保持は、領域が最適にフォーマットされたセクタとは数の異なるセクタ上で動作しているコマンドが検出されたときに開始することができる。このような書き込みは、非最適書き込みコマンドと呼ばれる。
例えば、ある領域が1単位並列処理用にフォーマットされ、領域において4セクタ書き込みが行われている場合、これにより蓄積された統計データをその領域用に格納することができる。ひとたび非最適書き込みコマンドがしきい値を超えると、このシステムは、並列処理度をその領域がフォーマットされているものに切り換える。蓄積された統計データは、1つのホストセクタカウントの発生があれば増分され、もう一つの発生があれば減分されるカウンタとして実装することができる。例えば、1単位および4単位の並列処理のみが許可される場合、単一セクタ書き込みの発生毎に単一カウンタを増分し、4セクタ書き込みの発生毎に減分することができる。特定のしきい値に達したときに、領域のデータ構成が切り換えられる。
ブロックアクセスモード情報を記憶する別の方法は、ブロック用モードビットをシステムエリアに記憶されたマッピングセクタに記憶することである。アクセス統計データもシステムエリアに記憶することができる。
図10に、ホストによる以下の一連の書き込み動作後のブロックの各セクタ内のカウントフィールドの一例を示す。
(1) セクタ0をはじめとして16セクタのホスト書き込み
(2) セクタ16をはじめとして8セクタのホスト書き込み
(3) セクタ24のホスト書き込み(1セクタのみ)
(4) セクタ25のホスト書き込み
(5) セクタ26のホスト書き込み
(6) セクタ27のホスト書き込み
(7) セクタ28のホスト書き込み
(8) セクタ29のホスト書き込み
(9) セクタ30のホスト書き込み、および
(10)セクタ31のホスト書き込み
これも示すのは、1単位(1405)および4単位(1408)の並列処理度のみが可能であると仮定して収集した統計データである。単一セクタ書き込みによって行うことができる8つの書き込み(1405)がある。この統計データは、セクタ24〜セクタ31への書き込みから収集された。4単位書き込みによって行うことができる6つの書き込み(1408)がある。より具体的には、4つの4セクタ書き込みに分割することができる1つの16セクタ書き込み、および2つの4セクタ書き込みに分割することができる1つの8セクタ書き込みがあった。
収集された統計データに基づいて、1単位マッピングまたは4単位マッピング用にフォーマットし直すことができる。例えば、いつ1つのマッピングから別のマッピングへ切り換えるかに関する基準は、(x4のような)あるカウントが別のカウント(x1)を越える時に基づくことができる。他の基準を用いてもよい。
x1およびx4に関する統計データ収集の一例も示す。しかし、他の実施形態では、統計データは、x5、x8、およびx16などの他の可能な並列処理度に対する追跡記録を行うことができる。
図11に異なる種類のセクタマッピング構想の例を示す。各ブロックに対して用いられるアクセス方法に関する知識、また一実施形態では、各ブロックにおけるユーザデータの位置は、各ブロックのIDが入手されたときに読まれて、変換テーブルが初期化される。アクセスモードビットはヘッダから読み出され、ブロックのアクセス方式を示すために変換テーブルに書き込まれる。ブロックは、プレーンからプレーンへと連続している必要はない。
図11に、並列ブロックセクタナンバリングスキーム、1単位ブロックセクタナンバリングスキーム、すなわち順次ブロックセクタナンバリングスキーム、および一部が1単位アクセスで他の部分が1単位より大きい並列セクタナンバリングスキームの例を示す。一部が1単位アクセスで他の部分が1単位より大きい並列セクタナンバリングスキームは、混合モードスキームと呼ぶことができる。これらは、並列アクセス方式、順次(1単位)アクセス方式、および混合モードアクセス方式で、それぞれ用いられる。
図12に、4X対1Xのマッピング変換の一例を示す。これは、4Xマッピングから1Xマッピングへの変換である。通常動作時、フラッシュメモリは一般に、最初は並列モード(1単位アクセスより大きい)であることを意味する最高性能で動作するようにセットアップされる。一般に、更新ブロックの割り当ての機会をトリガとして使用し、メタブロックを1つのフォーマットから別のフォーマットに変換すべきかどうかが決定される。1ブロックにおける単一セクタ書き込みの数がしきい値(ユーザが定義しても、システムの設計者が定義してもよい)を越えると、アクセス方式は、1単位方式に変換される。これには、全セクタが新たなブロックのそれらの適切な位置に書き込まれ、それらのアクセスビットがしかるべく設定されることが必要となる。
図13に、順次マッピングから並列マッピングへの変換の一例を示す。先の場合とは逆に、1つのブロック内のセクタが単一セクタアクセスからマルチセクタアクセスへ移行する場合、アクセス方式が並列アクセスに合わせて変換され、セクタがしかるべく新たなブロックへ再書き込みされ、各セクタ内のアクセスモードビットが調整される。第1の並列処理度のマッピングから第2の並列処理度のマッピングへの変更は、同様の方法で実行される。例えば、マッピングは、2Xから4Xへ、または4Xから8Xへ変換することができ、逆の場合も同様となる。図13における第1の並列処理度は、1Xマッピングである。これは、1Xマッピングから4Xマッピングへの変換である。
すでにデータが書き込まれているセクタへホストからデータの書き込みが行われているときには、このシステムは通常、1つのフォーマットから別のフォーマットへの変更を新たなブロックの割り当てと結び付けることに留意されたい。新たなメタブロックまたはサブメタブロックは、ホストが所与の領域にデータを再書き込みする際に割り当てられる。このようなときに、当初の領域に存在するデータの一部を新たに割り当てられた領域にコピーすることができる。ときには、それは、後のデータの整理統合時にコピーされる。いずれにしてもこのシステムは、全体として、新たな領域を論理ブロックに対して割り当てるイベントをうまく利用してフォーマットを遷移させる。このようなときに、その領域に関する使用ログをリセットすることができる。
コントローラは、必要に応じて、各アクセスモード間で切り換えを行う能力を有する。コントローラは、ホストの使用率に基づいて、いずれのモードを使用すべきかを決定することができる。ある数の単一セクタアクセスが発生した場合、これによって並列アクセスモードから順次アクセスモードへの変換をトリガすることができる。
さらに、混合モードブロックアクセスも可能である。同一のメモリ集積回路内に、一部のデータは順次アクセス向けに記憶することができ、他のデータは並列アクセス向けに記憶することができる。さらに、同一のフラッシュカードシステム内で、1つのメモリ集積回路が順次アクセス用に記憶されたデータを有することができ、それと同時に、別のメモリ集積回路上に記憶された他のデータが並列アクセス向けに記憶される。
結論
本発明の種々の態様を例示的な実施形態に関して説明してきたが、本発明は添付の特許請求の範囲の全範囲内でその権利が保護されるべきことが理解できよう。
不揮発性メモリシステムおよびホストシステムと一体となったその使用法を全体として示す。 図1のメモリシステムの例示的な構造を示す。 図1および図2のメモリシステムのメモリセルアレイの特定の構成を示す。 図7のメモリセルアレイの第1の例示的なブロックの連なりを示す。 図7のメモリセルアレイの第2の例示的なブロックの連なりを示す。 論理ブロックアドレスを図7のメモリセルアレイの物理ブロックへマッピングする方法の一例を示す。 論理ブロックアドレスを図7のメモリセルアレイの物理ブロックへマッピングする方法の別の例を示す。 図7のメモリセルアレイ内のデータの修正の第1の例を示す。 図7のメモリセルアレイ内のデータの修正の第2の例を示す。 ホストによる書き込み動作を追跡記録するための各データセクタ内のカウントフィールドの一例を示す。 データセクタを構成するさまざまな方法の例を示す。 第1の順序から第2の順序へのメモリセルアレイブロックの変換の一例を示す。 第2の順序から第1の順序へのメモリセルアレイブロックの変換の一例を示す。

Claims (5)

  1. 不揮発性メモリシステムであって、
    各ブロックが消去の最小単位である複数のブロックで構成され、少なくとも2つのサブアレイに分割された不揮発性メモリセルのアレイであって、前記少なくとも2つのサブアレイの各々においてデータが同時にアクセス可能な不揮発性メモリセルのアレイを備え、
    前記少なくとも2つのサブアレイ内に、第1のデータを少なくとも第1の並列処理度に従って記憶し、第2のデータを第1の並列処理度よりも小さい第2の並列処理度に従って記憶し、前記並列処理度は並列にプログラムされるかまたは読み出されるメモリのページ数であり、
    第1の並列処理度に従って記憶されたデータのうちの少なくとも一部を更新するコマンドの受信に応答して、
    ブロック内の単一セクタを各々含むデータの書き込み数が所定のしきい値を越えるか、
    ホストがデータを前記不揮発性メモリセルのアレイの領域に書き込んだことに従って前記並列処理度を追跡記録する前記領域に関連する統計値が、前記領域におけるデータが大部分は第2の並列処理度に従って書き込まれたことを示すか、または、
    前記不揮発性メモリセルのアレイの領域に関連する統計値が、前記不揮発性メモリセルのアレイの領域のセクタデータの大部分がデータの整理統合により書き込まれたことを示す場合には、
    第2の並列処理度に従って前記不揮発性メモリセルのアレイにデータを更新した後で、前記データのうちの少なくとも一部を再書き込みする不揮発性メモリシステム。
  2. 請求項1記載の不揮発性メモリシステムにおいて、
    前記少なくとも2つのサブアレイの各々において同時にアクセス可能なデータは、データのセクタを含み、
    前記少なくとも2つのサブアレイ内に記憶されたデータのセクタは、
    前記第1の並列処理度に従って前記サブアレイを跨いでインタリーブされた第1の連続した論理アドレスのセットによって識別される少なくとも第1のデータセクタのセットと、
    前記第2の並列処理度に従って前記少なくとも2つのサブアレイのうちの単一のサブアレイ内にインタリーブされた第2の連続した論理アドレスのセットによって識別される少なくとも第2のデータセクタのセットと、
    を備える不揮発性メモリシステム。
  3. 請求項2記載の不揮発性メモリシステムにおいて、
    記憶されたデータのセクタの並列処理度を示す表示も記憶される不揮発性メモリシステム。
  4. 請求項3記載の不揮発性メモリシステムにおいて、
    前記並列処理度を示す表示は、それらが関係する前記記憶されたデータのセクタ内にオーバーヘッドとして記憶される不揮発性メモリシステム。
  5. 請求項3記載の不揮発性メモリシステムにおいて、
    前記並列処理度を示す表示は、それらが関係する前記記憶されたデータのセクタとは別のセクタに記憶される不揮発性メモリシステム。
JP2006547247A 2003-12-30 2004-12-16 ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え Expired - Fee Related JP5001011B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/750,190 US7631138B2 (en) 2003-12-30 2003-12-30 Adaptive mode switching of flash memory address mapping based on host usage characteristics
US10/750,190 2003-12-30
PCT/US2004/042862 WO2005066794A2 (en) 2003-12-30 2004-12-16 Adaptive mode switching of flash memory address mapping based on host usage characteristics

Publications (3)

Publication Number Publication Date
JP2007517320A JP2007517320A (ja) 2007-06-28
JP2007517320A5 JP2007517320A5 (ja) 2008-02-14
JP5001011B2 true JP5001011B2 (ja) 2012-08-15

Family

ID=34701169

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006547247A Expired - Fee Related JP5001011B2 (ja) 2003-12-30 2004-12-16 ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え

Country Status (8)

Country Link
US (2) US7631138B2 (ja)
EP (1) EP1700221B1 (ja)
JP (1) JP5001011B2 (ja)
KR (1) KR101014599B1 (ja)
CN (1) CN1918552B (ja)
AT (1) ATE554448T1 (ja)
TW (1) TWI303365B (ja)
WO (1) WO2005066794A2 (ja)

Families Citing this family (273)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7627712B2 (en) * 2005-03-22 2009-12-01 Sigmatel, Inc. Method and system for managing multi-plane memory devices
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US7426605B2 (en) * 2005-09-30 2008-09-16 Rudelic John C Method and apparatus for optimizing flash device erase distribution
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
US7793059B2 (en) 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
KR100725410B1 (ko) * 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
EP2242058B1 (en) * 2006-03-31 2014-07-16 Mosaid Technologies Incorporated Flash memory system control scheme
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8595573B2 (en) 2006-12-03 2013-11-26 Apple Inc. Automatic defect management in memory devices
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
KR100843218B1 (ko) * 2006-12-18 2008-07-02 삼성전자주식회사 어드레스 쉬프팅을 이용하여 블럭 사이즈를 변경하는플래시 메모리 장치 및 방법
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
WO2008082950A1 (en) * 2006-12-28 2008-07-10 Sandisk Corporation System for block relinking
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
US8019959B2 (en) * 2007-02-09 2011-09-13 Marvell World Trade Ltd. Nonvolatile memory system
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
CN100530138C (zh) * 2007-06-28 2009-08-19 忆正存储技术(深圳)有限公司 基于多通道闪存设备逻辑条带的自适应控制方法
JP5378197B2 (ja) * 2007-07-20 2013-12-25 パナソニック株式会社 メモリコントローラ、メモリカード、不揮発性メモリシステム
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8300478B2 (en) 2007-09-19 2012-10-30 Apple Inc. Reducing distortion using joint storage
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
CN101178933B (zh) * 2007-12-05 2010-07-28 苏州壹世通科技有限公司 一种闪存阵列装置
US8316277B2 (en) * 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8195912B2 (en) * 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
KR101465789B1 (ko) 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US9477587B2 (en) 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
WO2009140700A1 (en) 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR100982440B1 (ko) 2008-06-12 2010-09-15 (주)명정보기술 단일 플래시 메모리의 데이터 관리시스템
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory
KR20100012938A (ko) * 2008-07-30 2010-02-09 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
TWI373769B (en) * 2008-08-15 2012-10-01 Phison Electronics Corp Block management method for flash memory and storage system and controller using the same
TW201009577A (en) * 2008-08-27 2010-03-01 Phison Electronics Corp Data transfer method for flash memory and flash memory storage system and controller using the same
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
KR101684583B1 (ko) * 2008-09-03 2016-12-08 마벨 월드 트레이드 리미티드 다중-평면 플래시 메모리 내로의 데이터 프로그래밍
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8671327B2 (en) * 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
WO2010035241A1 (en) * 2008-09-28 2010-04-01 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
KR101083673B1 (ko) * 2008-10-01 2011-11-16 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
TW201017771A (en) * 2008-10-29 2010-05-01 Nanya Technology Corp Vertical transistor and fabricating method thereof and vertical transistor array
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
JP2010108385A (ja) * 2008-10-31 2010-05-13 Hitachi Ulsi Systems Co Ltd 記憶装置
US8285970B2 (en) * 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101515098B1 (ko) * 2008-11-20 2015-04-24 삼성전자주식회사 플래시 메모리 장치 및 이의 독출 방법
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8239614B2 (en) 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
TWI407441B (zh) * 2009-03-20 2013-09-01 Phison Electronics Corp 快閃記憶體寫入方法及使用此方法的儲存系統與控制器
TWI385518B (zh) * 2009-03-20 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及儲存系統
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
JP5532671B2 (ja) * 2009-05-08 2014-06-25 ソニー株式会社 データ記憶システムおよびデータ記憶方法、実行装置および制御方法、並びに制御装置および制御方法
KR101606453B1 (ko) * 2009-05-13 2016-04-01 삼성전자주식회사 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
JP4818404B2 (ja) * 2009-06-26 2011-11-16 株式会社東芝 素材サーバおよび素材蓄積方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
KR101581857B1 (ko) * 2009-08-06 2015-12-31 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
KR101717644B1 (ko) 2009-09-08 2017-03-27 샌디스크 테크놀로지스 엘엘씨 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
JP4956593B2 (ja) 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
WO2011031899A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US8972627B2 (en) 2009-09-09 2015-03-03 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
CN101692211B (zh) * 2009-09-15 2011-08-10 苏州超锐微电子有限公司 一种Flash数据管理方法
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
JP5464066B2 (ja) * 2010-06-10 2014-04-09 ソニー株式会社 通信装置、及び、通信方法
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8447920B1 (en) * 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9666065B2 (en) 2010-07-14 2017-05-30 Dongjing Zhao Wireless switch assembly, relay retransmission control system and memory card
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
WO2012048444A1 (en) 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
JP5296763B2 (ja) * 2010-11-11 2013-09-25 株式会社バッファロー 記憶装置、記憶プログラム及び制御方法
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
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
TWI514136B (zh) 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
CN102541464B (zh) * 2010-12-30 2014-07-23 慧荣科技股份有限公司 快闪存储装置及其数据写入方法
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
CN102646448B (zh) * 2011-02-18 2015-09-16 群联电子股份有限公司 用于非易失性内存的数据写入方法、控制器与储存装置
KR101339800B1 (ko) * 2011-02-25 2013-12-10 성균관대학교산학협력단 Pss 행위 모델링 장치 및 방법
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
TWI479491B (zh) * 2011-07-05 2015-04-01 Phison Electronics Corp 記憶體控制方法、記憶體控制器與記憶體儲存裝置
US9477590B2 (en) * 2011-09-16 2016-10-25 Apple Inc. Weave sequence counter for non-volatile memory systems
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103077124B (zh) * 2011-10-25 2015-11-18 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
IN2014CN02917A (ja) 2011-10-26 2015-07-03 Hewlett Packard Development Co
KR20130046122A (ko) * 2011-10-27 2013-05-07 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US9164676B2 (en) * 2011-11-30 2015-10-20 International Business Machines Corporation Storing multi-stream non-linear access patterns in a flash based file-system
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
KR101942272B1 (ko) * 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US9329989B2 (en) * 2011-12-30 2016-05-03 SanDisk Technologies, Inc. System and method for pre-interleaving sequential data
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US8782344B2 (en) 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
CA2883159C (en) * 2012-09-21 2018-09-04 Nyse Group, Inc. High performance data streaming
KR20140080216A (ko) 2012-12-20 2014-06-30 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그의 동작 방법
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
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
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile 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
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9465732B2 (en) 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US20140297921A1 (en) * 2013-03-26 2014-10-02 Skymedi Corporation Method of Partitioning Physical Block and Memory System Thereof
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9478249B2 (en) * 2013-08-30 2016-10-25 Seagate Technology Llc Cache data management for program execution
US9202533B2 (en) * 2013-10-09 2015-12-01 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device changing the number of selected bits and/or the number of selected bays at data write operation
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US10152408B2 (en) 2014-02-19 2018-12-11 Rambus Inc. Memory system with activate-leveling method
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
KR102225989B1 (ko) 2014-03-04 2021-03-10 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9678797B2 (en) 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9582205B2 (en) * 2014-04-17 2017-02-28 Sandisk Technologies Llc Protection scheme with dual programming of a memory system
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
US9772796B2 (en) 2015-04-09 2017-09-26 Sandisk Technologies Llc Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) * 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device
US9889932B2 (en) 2015-07-18 2018-02-13 Tata Consultancy Services Limited Methods and systems for landing of unmanned aerial vehicle
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US9875049B2 (en) * 2015-08-24 2018-01-23 Sandisk Technologies Llc Memory system and method for reducing peak current consumption
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
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling 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
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
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
KR102651425B1 (ko) * 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR102620562B1 (ko) 2016-08-04 2024-01-03 삼성전자주식회사 비휘발성 메모리 장치
US11017838B2 (en) 2016-08-04 2021-05-25 Samsung Electronics Co., Ltd. Nonvolatile memory devices
CN107818118B (zh) * 2016-09-14 2019-04-30 北京百度网讯科技有限公司 数据存储方法和装置
CN107273304A (zh) * 2017-05-24 2017-10-20 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法及固态硬盘
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
TWI645288B (zh) * 2017-07-04 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
KR20190006680A (ko) * 2017-07-11 2019-01-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10261914B2 (en) 2017-08-25 2019-04-16 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
US11086790B2 (en) 2017-08-25 2021-08-10 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
KR20190031683A (ko) * 2017-09-18 2019-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US11289137B2 (en) 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US11436154B2 (en) 2017-12-01 2022-09-06 Micron Technology, Inc. Logical block mapping based on an offset
US10977182B2 (en) * 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
JP2020047348A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 半導体記憶装置及びその制御方法
KR101995034B1 (ko) * 2019-02-26 2019-07-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20200106682A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11150839B2 (en) 2019-12-19 2021-10-19 Western Digital Technologies, Inc. Host and method for interleaving data in a storage system for enhanced quality of service
US11221950B2 (en) * 2019-12-19 2022-01-11 Western Digital Technologies, Inc. Storage system and method for interleaving data for enhanced quality of service
US11157416B2 (en) * 2020-02-27 2021-10-26 Micron Technology, Inc. Firmware loading for a memory controller
US11379117B2 (en) 2020-06-19 2022-07-05 Western Digital Technologies, Inc. Storage system and method for using host-assisted variable zone speed grade modes to minimize overprovisioning
US11456050B2 (en) * 2021-02-24 2022-09-27 Western Digital Technologies, Inc. Relinking scheme in sub-block mode
US11681471B2 (en) * 2021-04-07 2023-06-20 EMC IP Holding Company LLC Bypassing of tier-1 storage in a streaming data storage system
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
CN113420083B (zh) * 2021-06-02 2024-03-19 湖南大学 一种具有可拓展分布式账本的异构并行区块链结构的系统
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
JP2618149B2 (ja) 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
JPH05233426A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
JP3299564B2 (ja) * 1992-05-11 2002-07-08 松下電器産業株式会社 メモリ装置
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
US5341330A (en) 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5649200A (en) 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266596A (ja) 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5519843A (en) 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3215237B2 (ja) 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
JPH08263361A (ja) 1995-03-23 1996-10-11 Mitsubishi Electric Corp フラッシュメモリカード
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5860090A (en) 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
FR2742893B1 (fr) 1995-12-20 1998-01-16 Schlumberger Ind Sa Procede d'inscription d'une donnee dans une memoire reinscriptible
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5896393A (en) 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
JPH10177797A (ja) 1996-12-17 1998-06-30 Toshiba Corp 半導体記憶装置
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6122195A (en) 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US5999947A (en) 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP2914360B2 (ja) 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
JP3119214B2 (ja) 1997-09-30 2000-12-18 ソニー株式会社 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
US6040997A (en) 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
JP2000122923A (ja) * 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
JP4046877B2 (ja) * 1998-12-14 2008-02-13 株式会社ルネサステクノロジ 一括消去型不揮発性メモリおよび携帯電話
JP2000285017A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 記憶装置
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
WO2001008015A1 (fr) 1999-07-28 2001-02-01 Sony Corporation Systeme d'enregistrement, dispositif d'enregistrement de donnees, dispositif a memoire et procede d'enregistrement de donnees
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6775423B2 (en) * 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6834331B1 (en) * 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
JP3992960B2 (ja) * 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
US7062630B2 (en) * 2000-10-26 2006-06-13 Matsushita Electric Industrial Co., Ltd. Storing device for writing data onto a plurality of installed storing mediums, storing control method for the storing device, and program thereof
US7020739B2 (en) * 2000-12-06 2006-03-28 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
IT1315566B1 (it) 2000-12-12 2003-02-18 Federico Renier Metodo per la certificazione dell'invio,della ricezione edell'autenticita' di documenti elettronici ed unita' di rete
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US7328301B2 (en) * 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US7107388B2 (en) * 2003-04-25 2006-09-12 Intel Corporation Method for read once memory
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics

Also Published As

Publication number Publication date
JP2007517320A (ja) 2007-06-28
EP1700221A2 (en) 2006-09-13
US7631138B2 (en) 2009-12-08
CN1918552B (zh) 2012-05-30
TW200535608A (en) 2005-11-01
EP1700221B1 (en) 2012-04-18
KR20060130084A (ko) 2006-12-18
ATE554448T1 (de) 2012-05-15
CN1918552A (zh) 2007-02-21
US20100049908A1 (en) 2010-02-25
WO2005066794A2 (en) 2005-07-21
WO2005066794A3 (en) 2005-11-10
TWI303365B (en) 2008-11-21
KR101014599B1 (ko) 2011-02-16
US20050144361A1 (en) 2005-06-30
US8301826B2 (en) 2012-10-30

Similar Documents

Publication Publication Date Title
JP5001011B2 (ja) ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
JP4787266B2 (ja) スクラッチパッドブロック
JP4834676B2 (ja) オンチップ不揮発性メモリ書き込みキャッシュを使用するシステムおよび方法
JP4960882B2 (ja) クラスタ自動位置合わせ
US7433993B2 (en) Adaptive metablocks
JP4643711B2 (ja) 状況依存メモリ性能
EP1410399B1 (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
JP4362534B2 (ja) フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US20060161724A1 (en) Scheduling of housekeeping operations in flash memory systems
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
JP2014513850A (ja) 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法
JP2009110548A (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
WO2008147752A1 (en) Managing housekeeping operations in flash memory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110602

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120106

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120330

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120517

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees