JP5222232B2 - フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング - Google Patents

フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング Download PDF

Info

Publication number
JP5222232B2
JP5222232B2 JP2009142857A JP2009142857A JP5222232B2 JP 5222232 B2 JP5222232 B2 JP 5222232B2 JP 2009142857 A JP2009142857 A JP 2009142857A JP 2009142857 A JP2009142857 A JP 2009142857A JP 5222232 B2 JP5222232 B2 JP 5222232B2
Authority
JP
Japan
Prior art keywords
block
data
memory
wear leveling
memory system
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
JP2009142857A
Other languages
English (en)
Other versions
JP2009282989A (ja
Inventor
デビッド ベネット,アラン
アナトリエヴィッチ ゴロベッツ,セルゲイ
トムリン,アンドリュー
シュレーター,チャールズ
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/040,325 external-priority patent/US20060161724A1/en
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2009282989A publication Critical patent/JP2009282989A/ja
Application granted granted Critical
Publication of JP5222232B2 publication Critical patent/JP5222232B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Luminescent Compositions (AREA)
  • General Factory Administration (AREA)
  • Manufacture Of Iron (AREA)
  • Stored Programmes (AREA)
  • Supply, Installation And Extraction Of Printed Sheets Or Plates (AREA)

Description

本発明は、一般的には不揮発性フラッシュメモリシステムの操作に関し、特にそのようなメモリシステムにおける損耗均等化(wear leveling) のようなハウスキーピング操作を実行する手法に関する。本願明細書において参照された全ての特許、特許出願、論文および他の刊行物は、あらゆる目的のためにその全体が本願明細書において参照により援用されている。
多くの商業的に成功した不揮発性メモリ製品が、特に小形形状の取り外し可能なファクタカードまたは埋め込みモジュールの形で、今日使用され、それらは、1つ以上の集積回路チップ上に形成されたフラッシュEEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)のアレイを使用する。普通は(必ずしもそうではないが)別の集積回路チップ上に存するメモリコントローラが、システムが接続されるホストとインターフェイスするようにメモリシステムに含まれてカード内のメモリアレイの動作を制御する。そのようなコントローラは、通常、マイクロプロセッサと、何らかの不揮発性読み出し専用メモリ(ROM)と、揮発性ランダムアクセスメモリ(RAM)と、データがデータのプログラミングおよび読み出しの間にコントローラを通過するときにデータから誤り訂正符号(ECC)を計算するもののような1つ以上の特別の回路とを含む。他のメモリカードおよび埋め込みモジュールはそのようなコントローラを含まないが、それらが接続されるホストが、コントローラ機能を提供するソフトウェアを含む。カードの形のメモリシステムは、ホストの外側のレセプタクルと結合するコネクタを含む。一方、ホスト内に埋め込まれたメモリシステムは、取り外されるように意図されてはいない。
コントローラを含む商業的に入手可能なメモリカードの幾つかは、次の商標、すなわちコンパクトフラッシュ(CF)、マルチメディア(MMC)、セキュアデジタル(SD)、ミニSD、マイクロSD、およびトランスフラッシュのもとで販売されている。コントローラを含まないメモリシステムの例はスマートメディアカードである。これらのカードの全ては、本願の譲受人であるサンディスク コーポレイションから入手可能である。これらのカードの各々は、それが取り外し可能に接続されるホスト装置との特別な機械的および電気的インターフェイスを有する。小形のハンドヘルド式フラッシュメモリ装置の他のクラスは、標準的ユニバーサルシリアルバス(USB)コネクタを通してホストとインターフェイスするフラッシュドライブを含む。サンディスク コーポレイションは、そのような装置をクルーザー(Cruzer)という登録商標の下で提供している。カードのためのホストは、パーソナルコンピュータ、ノートブックコンピュータ、個人用携帯情報端末(PDA)、種々のデータ通信装置、デジタルカメラ、携帯電話機、携帯用オーディオプレーヤ、自動車音響システム、および類似のタイプの装置を含む。フラッシュドライブは、パーソナルコンピュータおよびノートブックコンピュータのような、USBレセプタクルを有するどのようなホストとも協働する。
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つより多いメモリセルの直列ストリングを利用する。ワード線は、多数のこれらの列の中でセルを横断して延びる。列内の個々のセルは、ストリングを流れる電流がアドレス指定されたセルに蓄積されている電荷のレベルに依存することとなるようにストリング中の残りのセルをオンに転換しにくくすることによって、プログラミング中に読み出されベリファイされる。メモリシステムの一部としてのNAND構造のアレイおよびその動作の例が、米国特許第5,570,315号(特許文献8)、第5,774,397号(特許文献9)、第6,046,935号(特許文献10)、第6,373,746号(特許文献11)、第6,456,528号(特許文献12)、第6,522,580号(特許文献13)、第6,771,536号(特許文献14)、および第6,781,877号(特許文献15)に見出される。
前に引用された特許において論じられている、現行のフラッシュEEPROMアレイの電荷記憶素子は、最も一般的には、通常伝導性にドープされたポリシリコン材料から形成される、導電性フローティングゲートである。フラッシュEEPROMシステムにおいて有益な代わりのタイプのメモリセルは、電荷を不揮発性に蓄積するために伝導性フローティングゲートの代わりに非伝導性誘電体材料を利用する。酸化ケイ素、窒化ケイ素および酸化ケイ素から成る3層誘電体(ONO)が、伝導性コントロールゲートと、メモリセルチャネルの上の半伝導性基板の表面との間に挟まれる。セルは、電子をセルチャネルから窒化物に注入することによってプログラムされ、そこでそれらは限られた領域に捕獲され蓄積され、窒化物にホットホールを注入することによって消去される。誘電体記憶素子を使用するいくつかの具体的なセル構造とアレイとが、ハラリらの米国公開特許出願第2003/0109093号(特許文献16)で説明されている。
ほとんど全ての集積回路の用途の場合と同じく、或る集積回路機能を実現するために必要とされるシリコン基板面積を小さくする圧力がフラッシュEEPROMメモリセルアレイに関しても存在する。所与のサイズのメモリカードおよび他のタイプのパッケージの記憶容量を増やすために、或いは容量を増やしかつサイズを小さくするために、シリコン基板の所与の領域に格納され得るデジタルデータの量を増やすことがしばしば望まれる。データの記憶密度を増やす1つの方法は、メモリセルあたりおよび/または記憶ユニットまたは記憶素子あたり1ビットより多いデータを格納することである。これは、記憶素子電荷レベル電圧範囲のウィンドウを2つより多い状態に分割することによって達成される。そのような状態を4つ用いれば各セルは2ビットのデータを記憶することができ、8個の状態は記憶素子あたりに3ビットを記憶させるなどである。フローティングゲートを用いる多状態フラッシュEEPROM構造およびその動作が、米国特許第5,043,940号(特許文献17)および第5,172,338号(特許文献18)で説明され、誘電体フローティングゲートを用いる構造については前述した米国公開特許出願第2003/0109093号(特許文献16)で説明されている。多状態メモリセルアレイの選択された部分は、いろいろな理由から、米国特許第5,930,167号(特許文献19)および第6,456,528号(特許文献12)に記載されているように、2状態(バイナリ)でも操作され得る。
代表的なフラッシュEEPROMアレイのメモリセルは、一緒に消去されるセルの別々のブロックに分けられる。すなわち、ブロックは消去単位、すなわち同時に消去可能な最小数のセル、である。各ブロックは通常1ページ以上のデータを記憶し、ページはプログラミングおよび読み出しの最小単位であるが、別々のサブアレイまたはプレーンにおいて1ページより多くが並列にプログラムされ或いは読み出されてもよい。各ページは通常1セクタ以上のデータを記憶し、セクタのサイズはホストシステムにより定められる。一例としてのセクタは、磁気ディスクドライブに関して確立された標準規格に従う512バイトのユーザデータと、これに加えられる、そのユーザデータにかつ/またはそれが格納されているブロックに関する数バイトのオーバーヘッド情報とを含む。そのようなメモリは通常各ブロック内に16ページ、32ページ、或いはそれより多くのページを有するように設定され、各ページは1つまたはほんの少数のホストセクタのデータを記憶する。
ユーザデータをメモリアレイにプログラムし、またメモリアレイからユーザデータを読み出す間の並列度を高めるために、アレイは、通常、一般にプレーンと称されるサブアレイに分割され、それらは、幾つかのプレーンの各々にまたは全プレーンに同時にデータのセクタをプログラムし或いはそれらから同時にデータのセクタを読み出し得るように並列動作を可能にするために、それら自身のデータレジスタおよび他の回路を含む。単一の集積回路上のアレイは物理的に複数のプレーンに分割され得、或いは各プレーンは別々の1つ以上の集積回路チップから形成され得る。このようなメモリの実施例が、米国特許第5,798,968号(特許文献20)および第5,890,192号(特許文献21)に記載されている。
メモリをさらに効率よく管理するために、ブロック同士を結合させて仮想ブロックまたはメタブロックを形成することができる。すなわち、各メタブロックは、各プレーンからの1つのブロックを含むように定められる。メタブロックの使用が、米国特許第6,763,424号(特許文献22)で説明されている。メタブロックの物理アドレスは、データをプログラムしかつ読み出すための宛先として論理ブロックアドレスからの変換により確立される。同様に、メタブロックの全てのブロックは一緒に消去される。このような大きなブロックおよび/またはメタブロックを持って操作されるメモリシステムのコントローラは、ホストから受け取られた論理ブロックアドレス(LBA)とメモリセルアレイ内の物理ブロック番号(PBN)との間の変換を含む幾つかの機能を実行する。ブロック内の個々のページは、通常、ブロックアドレス内のオフセットにより識別される。アドレス変換は、しばしば、論理ブロック番号(LBN)と論的ページとの中間用語 (intermediate terms) の使用を必要とする。
消去済みブロックプールにおいて維持される特別のブロックを用いて大きなブロックまたはメタブロックシステムを操作することは普通のことである。ブロックの容量より少ない1ページ以上のデータが更新されるとき、更新されたページをプールからの消去済みブロックに書き込み、その後に、変更されないページのデータを元ブロックから消去プールブロックにコピーするのが一般的である。この手法の変形例が、前述した米国特許第6,763,424号(特許文献22)に記載されている。時間が経つと、ホストデータファイルが書き換えられ更新される結果として、多くのブロックの割合に少数のページが有効なデータを包含し、残りのページは最早現行のデータではないデータを包含するように多くのブロックがなり得る。アレイのデータ記憶容量を効率よく使えるようにするために、有効なデータの論理的に関連するページが多数のブロックの中のフラグメントから時折集められて、より少数のブロックの中に整理統合される。このプロセスは一般に“ガーベッジコレクション”と称される。
単一のブロックまたはメタブロック内のデータも、そのブロック内のかなりの量のデータが陳腐化したときに、圧縮され得る。これは、そのブロックの残りの有効なデータを空白の消去済みブロックの中にコピーし、その後に元ブロックを消去することを含む。そのコピーブロックは、元ブロックからの有効なデータの他に、以前は陳腐化したデータにより占められていた消去済み記憶容量を包含する。有効なデータは、通常、コピーブロックの中に論理的順序に配置され、これによりデータの読み出しをより容易にする。
メモリシステムの操作のための制御データは一般的には1つ以上の予備ブロックまたはメタブロックに格納される。そのような制御データは、プログラミング電圧および消去電圧のような操作パラメータと、ファイルディレクトリ情報およびブロック割り当て情報を含む。所与の時にコントローラがメモリシステムを操作するのに必要なだけの情報がRAMにも格納され、更新時にフラッシュメモリに書き戻される。制御データの頻繁な更新は、予備ブロックの頻繁な圧縮および/またはガーベッジコレクションという結果をもたらす。複数の予備ブロックがある場合には、2つ以上の予備ブロックのガーベッジコレクションが同時にトリガーされることがあり得る。そのような時間を消費する操作を避けるために、予備ブロックの自発的なガーベッジコレクションが、必要になる前に、それらがホストに収容されうるときに時々開始され得る。そのような先制データ再配置手法が、2004年8月13日に出願された米国特許出願第10/917,725号(特許文献23)に記載されている。ガーベッジコレクションは、ユーザデータ更新ブロックに対して、それが完全に満杯になり、それによりホストから提供されたデータをメモリに書き込めるようになる直前に行われなければならないガーベッジコレクションをトリガーするのを待つのではなくて、それがほぼ満杯になったときに行われてもよい。
或るメモリシステムでは、物理的メモリセルは2つ以上のゾーンにもグループ分けされる。ゾーンは、物理的メモリまたはメモリシステムの、指定された範囲の論理ブロックアドレスが中にマッピングされる任意の区画されたサブセットであり得る。例えば、64メガバイトのデータを記憶できるメモリシステムは、ゾーンあたりに16メガバイトのデータを記憶する4つのゾーンに区画され得る。論理ブロックアドレスの範囲も4つのグループに分割され、1つのグループが4つのゾーンの各々の物理ブロックに割り当てられる。論理ブロックアドレスは、代表的な実施例では、その各々のデータが、それらの論理ブロックアドレスがマッピングされている単一の物理的ゾーンの外側には決して書き込まれないように、制限される。それ自身のアドレス指定回路、プログラミング回路および読み出し回路を各々有するプレーン(サブアレイ)に分割されているメモリセルアレイでは、各ゾーンは、好ましくは、複数のプレーンからのブロックを、一般的には各プレーンからの同数のブロックを、含む。ゾーンは、主として、論理から物理への変換のようなアドレス管理を簡略化するために使用され、その結果としてより小さな変換テーブルをもたらし、これらのテーブルを保持するために必要なRAMメモリを少なくし、メモリの現在アクティブな領域をアドレス指定するためのアクセス時間を高速化するけれども、その制限の多い性質の故に最適には及ばない損耗均等化をもたらすことがあり得る。
個々のフラッシュEEPROMセルは1ビット以上のデータを表す量の電荷を電荷記憶素子またはユニットに蓄積する。記憶素子の電荷レベルはそのメモリセルのしきい値電圧(一般にVT として参照される)を制御し、それはセルの記憶状態を読み出す基礎として用いられる。しきい値電圧ウィンドウは、一般に、メモリセルの2つ以上の記憶状態の各々について1つずつ、数個の範囲に分割される。これらの範囲は、個々のセルの記憶状態を判定することを可能にする公称感知レベルを含むガードバンドにより分離される。これらの記憶レベルは、隣接するまたは関連する他のメモリセル、ページまたはブロックで実行される電荷を乱すプログラミング、読み出しまたは消去操作の結果として移動する。従って、通常、誤り訂正符号(ECC)がコントローラによって計算されて、プログラムされるホストデータと共に格納され、読み出し中にデータをベリファイし、必要ならば或るレベルのデータ訂正を行うために使用される。また、移動する電荷レベルを、乱す操作がそれらを定められた範囲の外へ完全に移動させ、従って間違ったデータを読み出させるようになる前に、時折その状態範囲の中央に復帰させることができる。この、データリフレッシュまたはスクラブと称されるプロセスは、米国特許第5,532,962号(特許文献24)および第5,909,449号(特許文献25)と、2003年10月3日に出願された米国特許出願第10/678,345号(特許文献26)とに記載されている。
フラッシュメモリセルの応答性は、通常、時間が経つと、セルが消去され再プログラムされた回数の関数として変化する。これは、各々の消去および/または再プログラミング操作の間に少量の電荷が記憶素子誘電体層に捕獲され、それは時間が経つに連れて累積する結果であると考えられている。これは、一般に、メモリセルの信頼性が低下するという結果をもたらし、メモリセルが古くなるに連れて消去およびプログラミングのためにより高い電圧を必要とし得る。メモリ状態がそこでプログラムされ得るところの実効しきい値電圧ウィンドウも、電荷保持の結果として減少し得る。これは、例えば、米国特許第5,268,870号(特許文献27)に記載されている。結果は、メモリセルの限られた有効寿命である。すなわち、メモリセルブロックは、システム外にマッピングされる前に、前もって決められた数の消去および再プログラミングサイクルのみを受けるに過ぎない。フラッシュメモリブロックが望ましく受けるサイクルの数は、メモリセルの具体的な構造、記憶状態のために使用されるしきい値ウィンドウの総量、各セルの記憶状態の数が増えるに連れて普通は増大するしきい値ウィンドウの大きさによる。これらの要素と、他の要素とにより、ライフタイムサイクルの数は少なくて10,000、多くて100,000または数十万であり得る。
前述した米国特許第5,268,870号(特許文献27)に記載されているように、個々のブロックのメモリセルが受けたサイクルの数を追跡することが望ましいと考えられるならば、各ブロックのために、またはブロックのグループの各々のためにカウントを維持することができ、それはブロックが消去されるごとに増分される。このカウントは、そこに記載されているように、各ブロックに格納され得、或いは米国特許第6,426,893号(特許文献28)に記載されているように別のブロックに他のオーバーヘッド情報と共に格納され得る。ブロックが最大ライフタイムサイクルカウントに達したときにブロックをシステム外にマッピングするために用いるほかに、カウントは、メモリセルブロックが古くなってゆくに連れて消去およびプログラミングパラメータを制御するために早くから使用され得る。サイクル数の正確なカウントを維持するのではなくて、米国特許第6,345,001号(特許文献29)はランダムなまたは擬似ランダムなイベントが発生したときにサイクル数の圧縮されたカウントを更新する手法を説明している。
サイクルカウントは、システムのメモリセルブロックの使用を、それらがその寿命の終わりに達する前に、均すためにも使用され得る。幾つかの異なる損耗均等化手法が、米国特許第6,230,233号(特許文献30)、米国公開特許出願第2004/0083335号(特許文献31)、並びに2002年10月28日に出願された次の米国特許出願、すなわち第10/281,739号(現在、国際公開特許出願第2004/040578号として公開されている)(特許文献32)、第10/281,823号(現在、米国公開特許出願第2004/0177212号として公開されている)(特許文献33)、第10/281,670号(現在、国際公開特許出願第2004/040585号として公開されている)(特許文献34)、および第10/281,824号(現在、国際公開特許出願第2004/040459号として公開されている)(特許文献35)、に記載されている。損耗均等化の主な利点は、他のブロックがほとんど使用されていないのに或るブロックがその最大サイクルカウントに達し、これによりシステム外にマッピングされなければならなくなるのを防止することである。サイクルの数をシステムの全てのブロックに適度に均一に分散させることによって、メモリの総容量が良好な性能特性と共に長期間にわたって維持され得る。2004年11月15日に出願された米国特許出願第10/990,189号(特許文献36)に記載されているように、損耗均等化は、メモリブロックサイクルカウントを維持せずに実行されてもよい。
損耗均等化の他のアプローチでは、論理−物理ブロックアドレス変換を、一度に1または数ブロック、増分することによってブロックの物理的ゾーン間の境界をメモリセルアレイ内で徐々に移動させる。これは、米国公開特許出願第2004/0083335号(特許文献31)で説明されている。
メモリセルの少数のブロックがメモリシステムの他のものより遥かに多数の消去および再プログラミングサイクルを受けることの主な原因は、割合に少数の論理ブロックアドスのデータセクタをホストが頻繁に書き換えることである。これは、ファイル割り当てテーブル(FAT)などの、メモリに格納されているハウスキーピングデータの或るセクタをホストが頻繁に更新するメモリシステムの多くの用途において発生する。ホストの特定の使用も、少数の論理ブロックを他よりも遥かに頻繁にユーザデータで書き換えさせる原因になり得る。指定された論理ブロックアドレスにデータを書き込むホストからのコマンドを受け取ったことに応答して、そのデータは消去済みブロックのプールの小数のブロックのうちの1つに書き込まれる。すなわち、同じ論理ブロックアドレスの元データが存在する同じ物理ブロックにデータを再び書き込む代わりに、論理ブロックアドレスは消去済みブロックプールのブロックに再マッピングされる。元の現在無効なデータを含むブロックは、直ぐに消去されるか、または後のガーベッジコレクション操作の一部として消去され、その後に消去済みブロックプールに入れられる。小数の論理ブロックアドレス内のデータだけが他のブロックより遥かに多く更新されるとき、結果は、システムの割合に少数の物理ブロックがより高い率で循環されるということである。もちろん、前述した理由から、そのように著しく不均一な論理ブロックアクセスに遭遇するときには物理ブロックの損耗 (wear) を均す能力をメモリシステム内に設けることが望ましい。
米国特許第5,070,032号 米国特許第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,373,746号 米国特許第6,456,528号 米国特許第6,522,580号 米国特許第6,771,536号 米国特許第6,781,877号 米国公開特許出願第2003/0109093号 米国特許第5,043,940号 米国特許第5,172,338号 米国特許第5,930,167号 米国特許第5,798,968号 米国特許第5,890,192号 米国特許第6,763,424号 米国特許出願第10/917,725号 米国特許第5,532,962号 米国特許第5,909,449号 米国特許出願第10/678,345号 米国特許第5,268,870号 米国特許第6,426,893号 米国特許第6,345,001号 米国特許第6,230,233号 米国公開特許出願第2004/0083335号 国際公開特許出願第2004/040578号 米国公開特許出願第2004/0177212号 国際公開特許出願第2004/040585号 国際公開特許出願第2004/040459号 米国特許出願第10/990,189号
メモリシステムと操作可能に接続されているホストシステムから受信されたコマンドの実行中に、そのコマンドの実行のために設定された時間割り当て内で、ハウスキーピング操作が実行される。メモリシステムがコマンドを実行し得るために必要なハウスキーピング操作に加えて、受信されたコマンドの実行とは直接関連していなくて、この実行のために必要ではないハウスキーピング操作も実行され得る。そのような関連のないハウスキーピング操作は、コマンドが実行されるたびに行われなくてもよいが、或るコマンド実行の間だけに実行されるように限定され得る。例えば、終えるのに時間がかかり過ぎる関連のないハウスキーピング操作は、コマンド関連のハウスキーピング操作がそのコマンドを実行するために不要であるために必要な時間が利用し得るようになるコマンドの受信を待ってもよい。ホストコマンドの実行の一部としてハウスキーピング機能を実行することにより、ホストがハウスキーピング操作を完了させることを許すか否かに関して、それらがホストにより設定された既知の時間割り当て内で完了する限りは、不確実性はない。
関連のないハウスキーピング操作は、損耗均等化、スクラッビング、データ圧縮、および先制ガーベッジコレクションを含むガーベッジコレクションを含む。ガーベッジコレクションまたはコマンド実行に必要な他のハウスキーピング操作に加えて、メモリシステムは、コマンドの実行に必要ではないハウスキーピング操作を実行することができる。例えば、損耗均等化は、書き込みコマンドを実行するためには不要であるけれども、割り当て内でそうする時間があるときには、そのようなコマンドの実行中に都合よく行われる。時間割り当ては、データ書き込みのようなコマンドを実行するためのホストタイムアウトなどにより、またはメモリシステムが投入されそうな用途において書き込みまたは読み出しの間に一定で最低の所要データ転送速度が存在することにより、確立される。複数のハウスキーピング操作を実行するのに充分な時間がない1つの特定の例では、ガーベッジコレクションが不要な書き込みコマンドの実行中に損耗均等化が実行される。
本発明の付加的な態様、利点および特徴は、添付図面と関連して検討されるべきであるその代表的な例についての以下の説明に含まれている。
協働する不揮発性メモリとホストシステムとのブロック図である。 協働する不揮発性メモリとホストシステムとのブロック図である。 図1Aのメモリアレイの第1の構成例を示す。 図1Aのメモリアレイに格納されたオーバーヘッドデータを有するホストデータセクタの例を示す。 図1Aのメモリアレイの第2の構成例を示す。 図1Aのメモリアレイの第3の構成例を示す。 図1Aのメモリアレイの第3の構成例の拡張を示す。 1つの特定の構成の図1Aのアレイのメモリセルのグループの回路図である。 図1Aのメモリアレイの構成および使用の例を示す。 第1の実施形態に従って書き込みコマンドを実行するメモリシステムの動作例を提供するタイミング図である。 図9のタイミングでのメモリシステム動作の態様を示す。 図9のタイミングでのメモリシステム動作の別の態様を示す。 図9〜11により示されている書き込み動作の1つの特定の実行を示す動作フローチャートである。 図12により示されている損耗均等化動作のためのタイミングを示す曲線である。 図12により示されている損耗均等化動作のための別のタイミングを示す曲線である。 図12により示されている損耗均等化動作のための別のタイミングを示す曲線である。 図12のフローチャートの改変形として示されている第2の実施形態に従って書き込みコマンドに応答したメモリシステムの動作を示すフローチャートである。 図14のフローチャートにおいて示されている動作の実行例のタイミング図である。 図15のタイミングでのメモリシステム動作の一態様を示す。 図15のタイミング図に代わるメモリシステムの動作を示すタイミング図である。 第3の実施形態に従って書き込みコマンドの実行中のメモリシステムの動作を示すフローチャートである。 図18のフローチャートに従ってメモリシステムの動作例を示すタイミング図である。 メモリシステム動作の別の実施形態を示すタイミング図である。 メモリシステム動作の別の実施形態を示すタイミング図である。 読み出しコマンド実行中における本発明のいろいろな態様の利用を示すタイミング図である。
メモリ構造およびその動作
最初に図1Aを参照すると、フラッシュメモリはメモリセルアレイとコントローラとを含む。示されている例では、2つの集積回路装置(チップ)11および13はメモリセルのアレイ15と種々の論理回路17とを含む。論理回路17は、データ回路、コマンド回路およびステータス回路を通して別のチップ上のコントローラ19とインターフェイスし、アドレス指定、データ転送、検知およびその他のサポートをアレイ13に提供する。メモリアレイチップの数は、提供される記憶容量により、1から多数におよび得る。或いは、コントローラと一部またはアレイ全体とが単一の集積回路チップに統合されてよいが、それは現在では経済的な選択肢ではない。コントローラ機能を提供するためにホストに依存するフラッシュメモリ装置は、メモリ集積回路装置11および13以外のものをほとんど含まない。
典型的なコントローラ19は、マイクロプロセッサ21と、主としてファームウェアを記憶する読み出し専用メモリ(ROM)23と、主としてメモリチップ11および13に書き込まれまたはこれらから読み出されたユーザデータを一時的に記憶するバッファメモリ(RAM)25とを含む。回路27はメモリアレイチップ( 単数または複数)とインターフェイスし、回路29は接続部31を通してホストとインターフェイスする。この例ではデータの完全性は、コードの計算に専用される回路33でECCを計算することにより判定される。ユーザデータがホストからフラッシュメモリアレイに格納されるべく転送されるとき、この回路はそのデータからECCを計算し、コードはメモリに格納される。そのユーザデータは、後にメモリから読み出される時、再び回路33を通され、これは同じアルゴリズムによってECCを計算し、そのコードを、計算されてこのデータと共に格納されたものと比較する。それらが同等であれば、データの完全性が確認される。それらが違っていれば、利用される特定のECCアルゴリズムにより、間違っているビットは、アルゴリズムによりサポートされる数まで、識別されて訂正され得る。
図1Aのメモリの接続部31はホストシステムの接続部31’と結合し、その例が図1Bにおいて示されている。ホストと図1Aのメモリとの間でのデータ転送はインターフェイス回路35を通して行われる。代表的なホストは、マイクロプロセッサ37、ファームウェアコードを記憶するROM39、およびRAM41も含む。他の回路およびサブシステム43は、具体的なホストシステムに依存して、しばしば、大容量磁気データ記憶ディスクドライブ、キーボードのためのインターフェイス回路、モニタなどを含む。そのようなホストの幾つかの例は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、個人用携帯情報端末(PDA)、MP3および他のオーディオプレーヤ、デジタルカメラ、ビデオカメラ、電子ゲーム機、無線および有線電話装置、留守番電話、ボイスレコーダ、ネットワークルータおよびその他を含む。
図1Aのメモリは、図1Bのホストと取り外し可能に接続され得る形でコントローラおよびその全てのメモリアレイ回路装置を含む小形の閉鎖形メモリカードまたはフラッシュドライブとして実現され得る。すなわち、結合する接続部31および31’は、カードを切り離して他のホストに移すこと、或いは他のカードをホストに接続することによってカードを取り替えることを可能にする。或いは、メモリアレイ装置11および13は、コントローラおよび接続部31を含む他のカードと電気的にかつ機械的に接続可能な別個のカードに封入されてもよい。別の選択肢として、図1Aのメモリは図1Bのホスト内に埋め込まれてもよく、その中では接続部31および31’は永久的に作られる。この場合、メモリは普通他のコンポーネントと共にホストのエンクロージャ内に含まれる。
本願明細書の発明手法は種々の具体的な構成を有するシステムで実施され得、その例が図2〜6において示されている。図2は、メモリセルがグループ分けされてブロックを成しているメモリアレイの一部分を示し、各ブロック内のセルは、単一の消去操作の一部として普通は同時に一緒に消去され得る。ブロックは消去の最小単位である。
図2の個々のメモリセルブロックのサイズは様々でありうるが、1つの商業的に実施されている形は1つのブロックに単一セクタのデータを含む。そのようなデータセクタの内容が図3に示されている。ユーザデータ51は通常512バイトである。ユーザデータ51のほかにオーバーヘッドデータがあり、このオーバーヘッドデータが、ユーザデータから計算されたECC53と、セクタデータおよび/またはそのセクタがプログラムされているブロックに関連するパラメータ55と、パラメータ55および包含され得る他のオーバーヘッドデータから計算されたECC57とを含む。或いは、ユーザデータ51およびパラメータ55の全部から単一のECCが計算されてもよい。
パラメータ55は、そのブロックが経験したプログラミング/消去サイクルの数に関連する量を含むことができ、この量は、各サイクル後にまたは或る数のサイクルの後に更新される。この経験量が損耗均等化アルゴリズムに用いられるとき、全てのブロックの使用(損耗)を均すために論理ブロックアドレスは定期的に異なる物理ブロックアドレスに再マッピングされる。経験量の他の使用方法は、プログラミング、読み出しおよび/または消去の電圧および他のパラメータを、いろいろなブロックが経験したサイクルの数の関数として変更することである。
パラメータ55は、メモリセルの記憶状態の各々に割り当てられたビット値の(それらの“ローテーション”と称される)表示を含むこともできる。これも、損耗均等化に有益な効果を有する。ステータスまたは状態を示す1つ以上のフラグもパラメータ55に含まれ得る。ブロックをプログラミングおよび/または消去するために使用されるべき電圧レベルの表示もパラメータ55の中に格納され得、これらの電圧は、ブロックが経験したサイクルの数と他の要素とが変化すると更新される。パラメータ55の他の例は、ブロック内の欠陥のあるセルの識別と、この物理ブロックにマッピングされているブロックの論理アドレスと、主ブロックに欠陥がある場合の代替のブロックのアドレスとを含む。あらゆるメモリシステムにおいて使用されるパラメータ55の具体的な組み合わせは、設計に応じて変化する。また、オーバーヘッドデータの一部または全部は、ユーザデータを含むかまたはそのオーバーヘッドデータが関連するブロックに格納されるのではなくて、そのような機能に専用されるブロックに格納されてもよい。
図4のマルチセクタブロックは、図2の単一データセクタブロックとは異なる。依然として消去の最小単位であるブロック59の例は4つのページ0〜3を含み、その各々はプログラミングの最小単位である。データの1つ以上のホストセクタが、普通は、少なくともそのセクタのデータから計算されたECCを含むオーバーヘッドデータと共に各ページに格納され、図3のデータセクタの形をとることができる。
ブロック全体のデータ書き換えは、普通、新しいデータを消去ブロックプールの消去済みブロックにプログラムすることを含み、その後に元ブロックは消去されて消去プールに置かれる。ブロックの全ページよりは少ないデータが更新されるとき、更新されたデータは、通常、消去済みブロックプールからの消去済みブロックのページに格納され、残りの変更されないページは元ブロックからその新しいブロックにコピーされる。その後、元ブロックは消去される。或いは、新しいデータは、データが更新されるブロックと関連付けられた更新ブロックに書き込まれてよく、更新ブロックはこのブロックへのさらなる更新を受け入れるようになるべく長く開いたままにされる。更新ブロックが閉じられなければならないとき、更新ブロックと元ブロックとの中の有効なデータがガーベッジコレクション操作で単一のコピーブロックにコピーされる。これらの大ブロック管理手法は、しばしば、元ブロックからデータを移動させ或いはそれを消去することなく、更新されたデータを他のブロックのページに書き込む動作を含む。これは、データの複数のページが同じ論理アドレスを有するという結果をもたらす。データの最新のページは、セクタ内のフィールドまたはページのオーバーヘッドデータとして記録されるプログラミングの時点のような何らかの便利な手法によって識別される。
別のマルチセクタブロック構成が図5に示されている。ここでは、メモリセルアレイ全体が2つ以上のプレーンに物理的に分割され、4個のプレーン0〜3が図に示されている。各プレーンは、他のプレーンから大幅に独立して動作できるようにそれ自身のデータレジスタ、センス増幅器、アドレス指定デコーダなどを有する、メモリセルのサブアレイである。全てのプレーンが単一の集積回路装置上または複数の装置上に設けられ得る。図5のシステム例の各ブロックは16ページP0〜P15を含み、各ページは1, 2またはもっと多くのホストデータセクタと多少のオーバーヘッドデータとの容量を有する。プレーンは単一の制御回路チップ上に、または複数のチップ上に、形成され得る。複数のチップ上の場合、例えば、プレーンのうちの2つは1つのチップ上に形成され、他の2つは別のチップ上に形成され得る。或いは、1つのチップ上のメモリセルがメモリプレーンのうちの1つを提供し、4つのそのようなチップが一緒に使用される。
別のメモリセル構成が図6に示されている。各プレーンはセルの多数のブロックを含む。動作の並列度を高めるために、別々のプレーン内のブロック同士が論理的に結合されてメタブロックを形成する。1つのそのようなメタブロックは、プレーン0のブロック3と、プレーン1のブロック1と、プレーン2のブロック1と、プレーン3のブロック2とから形成されるものとして図6に示されている。各メタブロックは論理的にアドレス指定可能であり、メモリコントローラは、個々のメタブロックを形成するブロックを割り当てて追跡する。ホストシステムは、好ましくは、個々のメタブロックの容量に等しいデータをユニットとしてメモリシステムとインターフェイスする。例えば、図6のそのような論理データブロック61は、コントローラによりメタブロックを構成するブロックの物理ブロック番号(PBN)にマッピングされる論理ブロックアドレスにより識別される。メタブロックの全てのブロックは一緒に消去され、各ブロックからのページは好ましくは同時にプログラムされ読み出される。
図2〜6に関して前に説明したモリを実現するために使用され得る多様なメモリアレイ構造、構成および具体的なセル構造が存在する。NAND形のメモリアレイの1つのブロックが図7に示されている。直列接続されたメモリセルの多数の列方向ストリングが電圧VSSの共通ソース65とビット線BL0〜BLNのうちの1つとの間に接続され、これらのビット線は、アドレスデコーダ、ドライバ、読み出しセンス増幅器などを含む回路67と接続されている。具体的には、1つのそのようなストリングは、ストリングの両端の選択トランジスタ77および79の間に直列に接続された電荷蓄積トランジスタ70,71...72および74を含む。この例では、各ストリングは16個の蓄積トランジスタを含むが、他の数も可能である。ワード線WL0〜WL15は、各ストリングの1つの蓄積トランジスタを横断して延びて、ワード線のアドレスデコーダおよび電圧源ドライバを含む回路81に接続されている。線83および84上の電圧は、ブロックの全ストリングの、それらの選択トランジスタを通しての電圧源65および/またはビット線BL0〜BLNへの接続を一緒に制御する。データおよびアドレスはメモリコントローラから来る。
ブロックの電荷蓄積トランジスタ(メモリセル)の各行は1つ以上のページを含み、各ページのデータは一緒にプログラムされ読み出される。適切な電圧が、ワード線(WL)に、そのワード線に沿うメモリセルのデータをプログラムしまたは読み出すために、印加される。適切な電圧が、関心の対象であるセルと接続されているそれらのビット線(BL)にも印加される。図7の回路は行に沿う全てのセルが一緒にプログラムされ読み出されることを示しているが、行に沿う1つ置きのセルをユニットとしてプログラムし読み出すのが一般的である。この場合、一度に1つ置きのセルと操作可能に接続するように2セットの選択トランジスタが使用され(図示せず)、1つ置きのセルが1ページを形成する。残りのワード線に印加される電圧は、その各々の蓄積トランジスタを伝導性にするために選択される。1つの行のメモリセルをプログラムし或いは読み出す過程で、ビット線に印加された電圧がそれらに接続されているストリングの全てのセルに影響を及ぼし得るので、選択されていない行に前に蓄積された電荷レベルが乱され得る。
前述したタイプのメモリシステムの1つの具体的な構造とその動作とが図8により一般的に示されている。説明を容易にするために大幅に簡略化されているメモリセルアレイ213は、構造に依存して、ブロックまたはメタブロック(PBN)P1〜Pmを含む。ホストからメモリシステムにより受け取られたデータの論理アドレスは、個々の論理ブロックアドレス(LBA)を有する論理グループまたはブロックL1〜Lnを成すようにグループ分けされる。すなわち、メモリシステムの連続する論理アドレス空間全体がアドレスの複数のグループに分割される。論理グループL1〜Lnの各々によりアドレス指定されるデータの量は、物理ブロックまたはメタブロックの各々の記憶容量と同じである。メモリシステムコントローラは、グループL1〜Lnの各々の論理アドレスを物理ブロックP1〜Pmの異なる1つにマッピングする機能215を含む。
メモリシステムアドレス空間に存在する論理グループより多いメモリの物理ブロックが含まれる。図8の例では、4つのそのような余分の物理ブロックが含まれている。本発明の用途を具体的に例示するために提供されるこの簡略化された説明の目的のために、余分のブロックのうちの2つはデータ書き込み中にデータ更新ブロックとして使われ、他の2つの余分のブロックは消去済みブロックプールを構成する。他の余分のブロックが種々の目的のために通常含まれ、1つはブロックに欠陥が生じた場合の余分として含まれる。メモリを操作するためにメモリシステムコントローラにより使用される制御データを格納するために1つ以上の他のブロックが普通使用される。普通は、特定の目的のために特定のブロックが指定されることはない。むしろ、マッピング215は、個々の論理グループのデータがマッピングされる物理ブロックを定期的に変更し、それがブロックP1〜Pmのうちの任意のものである。物理ブロックのうちの、更新ブロックおよび消去済みプールブロックとして役立つものも、メモリシステムの動作中に物理ブロックP1〜Pmの隅から隅まで移動する。物理ブロックのうちの、更新ブロックおよび消去済みプールブロックとして現在指定されているもののアイデンティティはコントローラにより維持される。
図8により表されているメモリシステムへの新しいデータの書き込みを以下に説明する。論理グループL4のデータが物理ブロックP(m−2)にマッピングされると仮定する。また、ブロックP2が更新ブロックとして指定され、完全に消去されて自由に使える状態であると仮定する。この場合、ホストがグループL4内の1つの論理アドレスまたは複数の連続する論理アドレスにデータを書き込むよう命令したとき、そのデータは更新ブロックP2に書き込まれる。新データと同じ論理アドレスを有するブロックP(m−2)に格納されているデータは、その後、陳腐化されて、更新ブロックL4に格納されている新データにより取って代わられる。
後に、これらのデータはP(m−2)ブロックおよびP2ブロックから単一の物理ブロックに整理統合される(ガーベッジコレクションされる)。これは、ブロックP(m−2)からの残っている有効なデータと更新ブロックP2からの新データとを消去済みブロックプール中のブロックP5のような別のブロックに書き込むことにより成し遂げられる。ブロックP(m−2)およびP2は、その後、後に更新ブロックまたは消去プールブロックとして役立つように消去される。或いは、元ブロックP(m−2)内の残っている有効なデータは新データと共にブロックP2に書き込まれてもよく(それが可能ならば)、その後にブロックP(m−2)は消去される。
所与のデータ記憶容量に必要なメモリアレイのサイズを最小にするために、余分のブロックの数は最少に保たれる。普通は限られた数(この例では2個)の更新ブロックがメモリシステムコントローラにより同時に存在することを許される。さらに、更新ブロックからのデータを元の物理ブロックからの残っている有効なデータと整理統合するガーベッジコレクションは、更新ブロックが関連付けられている物理ブロックにホストにより後に別の新データが書き込まれ得るので、普通はなるべく長く延期される。同じ更新ブロックが、その後、追加データを受け取る。ガーベッジコレクションは、時間を必要とし、またその結果として他の操作が遅らされるならば、メモリシステムの性能に悪影響を及ぼし得るので、それは実行され得る度に実行されるのではない。2つのブロックからのデータを別のブロックにコピーするには、特に個々のブロックのデータ記憶容量が非常に大きいときに(それが趨勢である)、かなりの時間がかかる。従って、ホストがデータを書き込むように命令したときに、それを受け入れるのに使える自由なまたは空の更新ブロックがないという事態がしばしば発生する。そのとき、その書き込みコマンドに応じて、その後にホストから新データを受け取れるように、1つの現存する更新ブロックがガーベッジコレクションされる。そのガーベッジコレクションがどれだけ長く延期され得るかの限度に達している。
第1の損耗均等化の実施形態
図9は、2つの更新ブロックのいずれもが自由でなく、消去されていなくて、どちらの更新ブロックとも関連付けられていないブロックのデータが更新されるときのメモリシステムの動作を示す。このとき、ホストから新データを受け取るために利用できる空白の消去済み更新ブロックを作るために更新ブロックのうちの一方がガーベッジコレクションされなければならない。図9の例では、データの2つのセクタまたは他のユニット1および2が書き込まれる。ホスト書き込みコマンドはデータ転送の長さを含み、この場合には2ユニットであり、その後にデータが続く。図9のタイミング図の2番目の線で示されているように、これら2つのデータユニットは、それらの間のメモリシステムビジー信号(図9の3番目の線)が維持されていないので、コマンドが受信された直後に(図9の1番目の線)直接連続して転送される。アサートされたとき、メモリシステムビジー信号はホストにメモリシステムとの通信を休止させる。
時点t4およびt5の間のメモリシステムによるビジー信号のアサートは、図に示されているように、書き込みコマンドを実行するために必要なときにメモリシステムがガーベッジコレクションを実行し、その後に、受信されたデータを書き込むことを可能にする。ホストは、このビジー信号がアクティブであるときには他のコマンド或いはそれ以上のデータをメモリシステムに送らない。図9の最後の線で示されているように、これは、新しい更新ブロックを作るために必要なときにガーベッジコレクションをする時間を作る。コントローラは、データユニット1および2の転送にかかる時間がガーベッジコレクションを開始するために使用されるが、これはそれを完了させるのに充分な時間ではない。それ故に、メモリシステムは、ガーベッジコレクションと更新ブロックへのデータ書き込みとが完了するまでホストを寄せ付けない。データ書き込みの完了後、時点t5でビジー信号が終わると、ホストはメモリシステムとさらに通信できるようになる。
しかし、ほとんどのホストはデータユニットが転送された後にメモリシステムが書き込みコマンドを実行するために限られた一定の時間を許すに過ぎないので、メモリシステムがアサートできるビジー信号の長さは限られている。それより長くビジー信号がアクティブ状態にとどまっていれば、或るホストはそのデータを伴うコマンドを繰り返すかもしれず、また他の或るホストはそのプロセスを完全に中止するかもしれない。メモリシステムは、このメモリがそれと協働するように設計されているところのホストのこのタイムアウト期間を超えないように操作される。1つの一般的なホストタイムアウト期間は250ミリ秒である。いずれにせよ、ホストと、これに接続されているメモリシステムとの間でのコマンドおよびデータの転送はメモリシステムによるビジー信号のアサートにより遅延させられ得るので、その使用は、メモリシステムの全体としての良好な性能にとって遅延が重要であるような場合に限定されるのが望ましい。
ホストのタイムアウト期間に加えて、メモリシステムの動作は、多くの用途において、維持されなければならない最低データ流量により制限される。これは、メモリシステムによりアサートされる個々のビジー信号の持続時間がホストのタイムアウトにより許される最大値より短いことを必要とし得る。
同様に、損耗均等化操作は、好ましくは、他の操作および全体としてのメモリシステムの性能に過度に強い影響を及ぼすことを避けるようにスケジュールされる。前述した特許および特許出願で説明されているように、損耗均等化は、損耗(消去サイクルの数)を均すために論理グループのアドレスの物理的メモリブロックへのマッピングを変更することを含む。例えばしばしば書き換えられる範囲の論理アドレスが、平均より高い率でサイクルされている1つの物理ブロックから、より低いサイクル履歴を有する他の物理ブロックにリダイレクトされる。多くの損耗均等化アルゴリズムがあり、そのうちの或るものは論理グループの再書き込みまたは個々の物理ブロック使用のサイクルカウントを監視し、他の或るものはそのようなカウントを使用しないで損耗を別の方法でメモリブロックに分散させる。
通常、損耗均等化操作は1つのブロックから他のブロックへのデータの転送(交換)を含み、これがこの操作の最も時間を消費する部分である。損耗均等化交換は、メモリブロックの使用の増大する不均衡を修正するためにメモリシステムコントローラによって時々開始される。損耗均等化の目的は、1つまたは少数のブロックがメモリの有効寿命を超える回数にわたってサイクルされることを避けることによってメモリの寿命を延ばすことである。少数の、時には唯一の、メモリブロックが使えなくなると、メモリシステムが動作不能になり得る。
損耗均等化は普通バックグラウンドで行われる。すなわち、ブロックの再マッピングおよびデータ転送はホストがアイドルであるときに行われる。これは、メモリシステムの性能に悪影響を与えないという利点を有するけれども、メモリシステムが損耗均等化を行っている間にホストがコマンドを送ることが防止されず、かつ損耗均等化交換中にメモリシステムから電源を切り離すことさえあり得るという欠点を有する。従って、本願明細書に記載されている例では、損耗均等化はデータ書き込みの一部として時々フォアグラウンドで行われる。
再び図9を参照すると、ガーベッジコレクションの代わりに、書き込みコマンドを実行するためにガーベッジコレクションが不要であるときに損耗均等化が行われ得る。ガーベッジコレクションおよび損耗均等化の両方がブロックのデータを転送する動作を含むので、これら2つの操作は同様の量の時間を必要とする。もちろん、前に論じられたように、ガーベッジコレクションは現在の書き込みコマンドを実行できるように更新ブロックを得るために必要なときに行われる。しかし、新データのために利用可能な更新ブロックがあってガーベッジコレクションが不要であるならば、代わりに損耗均等化を行うために時間を使うことができる。1つの特定の手法では、損耗均等化アルゴリズムは損耗均等化交換が望ましいことをその都度指摘し、交換はガーベッジコレクションが不要な次の書込み操作中に行われる。
図10は、図9のタイミングでの図8のメモリシステムにおけるガーベッジコレクションおよびデータ書き込みの例を示す。2つの更新ブロック1および2が存在するが、現在のデータユニットを書き込むためにそのいずれもが利用できないとき、それらの一方が閉じられて、消去済みブロックプールからの別の1つのブロックがこのデータを受け入れるために開かれる。その理由は、この例では2つの更新ブロックだけが許されることにある。更新ブロック1が共通論理グループ内のデータ更新だけを受け取ることによってブロックAにリンクされるならば、更新ブロック1は他の何らかの論理グループのデータを格納するためには使用され得ない。更新ブロック2も同じ制約を持ち得る。従って、更新ブロック1は図10に示されているガーベッジコレクション操作により閉じられ、ブロックAおよびその更新ブロック1の各々の中の有効なデータは消去済みブロックBにコピーされる。その後、ブロックAおよび更新ブロック1は消去され、これにより2つのさらなる消去プールブロックが提供される。それらの一方はその後、更新ブロック3として示されている新しい第2の更新ブロックとして開かれ得、その後、その中にメモリコントローラのバッファからのデータが格納される。
しかし、図8のメモリシステムにおける書き込みコマンドの実行は、ガーベッジコレクションが行われることを常に必要とするわけではない。例えば、それは、開いている更新ブロックにデータを書き込めるときには、不要である。そのような場合、図9に示されているようにガーベッジコレクションの代わりに損耗均等化操作が行われ得、このときも、損耗均等化操作中に使える更新ブロックが存在する。図11は、この場合をさらに示している。損耗均等化は、この例では、データをソースブロックAから更新ブロック1にコピーする動作を含む。その後、コントローラバッファからのデータが更新ブロック2に書き込まれる。その後、ソースブロックAは消去されて、消去プールブロックとして利用可能になる。図11の例は、ソースブロックAに格納されている論理グループに更新ブロック1が割り当てられているということを仮定している。使用されているシステム更新ブロックは普通非常に少ないので、これは普通でない場合である。より一般的には、ソースブロックAが損耗均等化交換を受けられるようになる前に新しい更新ブロックが開かれなければならない。新しい更新ブロックを開く動作は、通常、別の1つの更新ブロックを閉じる動作を含み、これも普通はガーベッジコレクションを含む。
図9のタイミング図に従う動作の具体的な例が図12の動作フローチャートにより示され、ここで、書き込み動作を可能にするためにガーベッジコレクションが行われなくてもよいならば、代わりに損耗均等化が行われる。ステップ225でホストから書き込みコマンドを受け取ったことに応答して、書き込まれるべきデータがステップ227でホストから受け取られてメモリシステムコントローラのバッファメモリに格納される。ステップ229で、現在の書込み操作に用いるために更新ブロックを解放するためにガーベッジコレクションが必要か否かが判定され、必要ならば、ガーベッジコレクションが行われる。ステップ227および229の順序は逆にされてもよく、或いは、図9に示されているように、時間の一部にわたって同時に実行されてもよい。ステップ229は、ガーベッジコレクションが行われる場合にガーベッジコレクションのカウンタを増分することも含む。このカウンタは前もってリセットされ、このカウントは後にガーベッジコレクションが行われたか否かを判定するために参照される。
次のステップ231で、損耗均等化交換が継続しているか否かが問われる。すなわち、損耗均等化を開始するのに必要な条件が存在するか否かが判定される。前に援用されている特許および特許出願で説明されているように、多数の異なる損耗均等化アルゴリズムがあって、いろいろなイベントがその動作をトリガーする。本願明細書で説明されている損耗均等化の実施形態では、損耗均等化はメモリブロックまたはメタブロックのN消去サイクルごとに開始される。数Nは、例えば約50であり得る。これは出発点であるが、以下で説明するように、損耗均等化がかなりの期間にわたって延期されなければならないときには判定は多少もっと複雑になる。そのような延期は、例えば、多数の連続する書き込み操作がガーベッジコレクションを各々必要とするときに、発生する。そのときには、損耗均等化のために使えるメモリシステムビジー期間はない。これは、例えば、別々の論理グループ内の単一ユニットのデータの連続する数個の書き込みがあるときに、発生する。
損耗均等化が継続していれば、次のステップ233はガーベッジコレクションのカウンタのカウントを調べる。そのカウントがゼロでなければ、これは、ステップ229でガーベッジコレクションが行われたことを、従って、損耗均等化を行う充分な時間がないことも示す。それゆえ損耗均等化は省かれる。しかし、カウントがゼロならば、これはガーベッジコレクションが行われていなくて、従って損耗均等化を行う充分な時間があるかもしれないことを示す。しかし、最初に、ステップ235により、損耗均等化に使うための自由な或いは空の更新ブロックがあるか否かが判定される。否であれば、更新ブロックを得るのに必要なガーベッジコレクションと損耗均等化との両方を行うのに充分な時間はないであろうから、損耗均等化は省かれる。しかし、利用可能な更新ブロックがあれば、前に特定された損耗均等化の特許および特許出願のうちの1つに記載されているアルゴリズムまたは以下のアルゴリズムに従ってステップ237で損耗均等化が行われる。一般に、損耗均等化操作は、損耗均等化のために利用可能な更新ブロックを開くことと、全てのデータをソースブロックからその開かれた更新ブロックにコピーすることと、その後にその更新ブロックを閉じると共にデータの論理グループをソースブロックから更新ブロック(宛先ブロック)に再マッピングするようにアドレス変換テーブルを更新することとを含む。
その後、ステップ239で、メモリシステムコントローラのバッファに受け取られたデータがフラッシュメモリのブロックまたはメタブロックに書き込まれる。その後、ガーベッジコレクションのカウンタは、図12のフローチャートのプロセスによる次のデータ書き込みの間に使われるようにステップ241でゼロに戻される。
損耗均等化交換を開始する方法の例が次に説明される。これは図12のステップ231の一部である。基本的に、損耗均等化は、システムのブロックがN回消去されるごとに開始される。これを監視するために、ブロックの消去の数のカウントがシステムレベルで維持される。しかし、この手法では、ブロックについての消去サイクルの数のカウントを個別に維持する必要はない。
図12のフローチャートに表されているように、継続している損耗均等化交換は、所与のデータ書き込みサイクルの間、そうする充分な時間がないときには実行されなくてもよい。図9および12の例では、継続している損耗均等化交換は、書き込みコマンドを実行するためにガーベッジコレクションが行われなくてはならない場合には省かれる。メモリシステムが一連の、その都度単一のセクタの、データ書き込みを受け、それらのセクタが連続していない論理アドレスを有する場合、ガーベッジコレクションが各書き込み中に行われる。この状態および他の状態では、継続している損耗均等化操作は延期される。このタイプの遅延が生じるかどうかは、メモリシステムがどのように使用されるかによる。しかし、それがしばしは生じるならば、損耗均等化は余り有効ではなくなる。最も有益であるために、損耗均等化は幾つかのシステムブロック消去の一定の間隔を置いて生じるのが好ましい。
従って、損耗均等化が著しい時間にわたって延期されたときには損耗均等化交換の間隔を名目上のNブロック消去間隔から変えるのが望ましい。省略された損耗均等化操作の数が維持され、それらは後にNブロック消去より短い間隔で各々継続され得る。図13A,13Bおよび13Cの曲線は、損耗均等化がN消去サイクルを超えて著しく延期された後に“追いつく”3つの異なる方法を示す。これらの曲線の水平軸は、総ブロックシステム消去カウントを示し、Nカウントごとに縦のマークが付いている。縦軸は、最後の損耗均等化操作以後のシステム消去サイクルの数(WLカウント)を示す。図13A,13Bおよび13Cは、各々、これらの例において損耗均等化交換が行われ得る期間を示すために“交換が行われ得る”を表示している。名目上、WLカウントの数がN(曲線を横切る破線)まで増大すると、損耗均等化が行われてWLカウントはゼロに戻る。これは、例えば、図13Aの271のところに示されている。
WLカウントがNに達した図13Aの消去カウント273では、スケジュールされている損耗均等化は行われない。損耗均等化は、事情が損耗均等化が行われることを許す消去カウント275まで、それ以上の多数の消去サイクル(Nのおよそ半分の)について行われない。そのときに、また、追いつくためにNより小さい間隔(およそNの半分)の後に消去カウント277で、損耗均等化が行われる。しかし、その後、損耗均等化が行われ得ない非常に長い期間がある。この長い期間の故に、省略された損耗均等化交換の全て(この場合には4)は、可能になり次第、許されるならば、消去カウント279以後の各書き込みコマンドの間継続して、行われる。この手法は、単純であるという利点を有するけれども、メモリシステムが過去に多数の損耗均等化交換の省略を経験しているならば、メモリシステムの性能に悪影響を及ぼし得る。
図13Bは、損耗均等化が非常に長い間行われない場合を処理する改変された方法を示す。この例では、その長期間後の第1の損耗均等化交換は281で行われ、また連続する操作がNの半分の消去カウントで行われる。この例でも省略された損耗均等化交換が補充され得るけれども、図13Aの場合のように損耗均等化がまた行われ得るようになったらなるべく速くそれらを行う代わりに、図13Bの手法はその補充損耗均等化交換同士を或る程度少なくともNの半分だけ離す。この手法は、損耗均等化交換のより均一な分散を提供する。
好ましい手法が図13Cに示されている。省略された損耗均等化交換の全てを補充するのではなくて、それらの間の間隔は或る程度小さくされるが、それらのうちの他のものは全く補充されない。図13Aおよび13Bの例と同じく、最後の損耗均等化を実行し得ることに関しての遅れを取り返すために、283における損耗均等化は最後のものからNの半分の消去カウントで行われる。しかし、それから後に損耗均等化交換のない同じ長い期間がある場合、この期間後の285における第2の損耗均等化交換は287における第1のものからNの半分の消去サイクルの後に行われるが、その後の交換は標準のN消去サイクル間隔で行われる。省略された損耗均等化交換のうちの幾つかは単に補充されない。この手法による損耗均等化交換を開始するための具体的な基準は、WLカウントがNより大きくなった後に損耗均等化交換が行われるとき、第2の交換がNの半分の消去カウントの後に行われるということである。しかし、その後の損耗均等化交換は、どんなに多くの交換が省略されていたとしても、標準のN消去カウント間隔で行われる。
図13A,13Bおよび13Cは、損耗均等化を行えない長い期間を処理する3つの異なる方法を提供するが、そうする方法はこれらだけではない。
第2の損耗均等化の実施形態
図14〜16は、損耗均等化操作を行うための、更新ブロックが前から存在することを必要としない代わりの手法を示す。前述したように、図9の方法は、自由な或いは空の更新ブロックが存在しなければ、ステップ235により継続している損耗均等化操作の実行を省略する。一方、図14の手法では、対応するステップ235’による、利用し得る更新ブロックがないという判定は、継続している損耗均等化操作を省略させない。むしろ、継続している損耗均等化操作は、現在の書き込みコマンドの実行中に、後に自動的に完了するように、開始される。現在の書き込みコマンド中に損耗均等化操作を始めるために要する時間は非常に短いので、ガーベッジコレクションまたは他の時間を消費するハウスキーピング機能もそのビジー期間中に行われ得る。また、開始された損耗均等化操作が後の書き込みコマンドの実行中に完了することを確実にするためにそれ以上何もしなくてもよい。なぜならば、それは標準のガーベッジコレクション操作により完了させられるからである。
利用可能な更新ブロックがあれば(図14のステップ235’のところの“はい”)、図9の損耗均等化239に対応して、損耗均等化237’が現在の書き込みコマンドの実行中に行われる。しかし、限られた数のメモリシステム更新ブロックのうちのいずれも利用可能でなければ、図14のステップ301〜304を損耗均等化操作を後に完了するようにセットアップする。同時に開いていることのできる更新ブロックの数を制限するメモリシステムにおいて損耗均等化交換に用いる更新ブロックを開くために、現存する更新ブロックが最初に閉じられなければならない。これはステップ301で行われ、ここでシステム更新ブロックが閉じられるが、例えばシステム更新ブロックのうちの、その時点で最も長く使用されていないもの(LRU)を閉じるのが好ましい。次のステップ302で、消去済みブロックがこの損耗均等化操作のために更新ブロックとして開かれる。次のステップ303で、データの第1のページまたはメタページ(メモリ構造による)が、ソースブロックから今開かれたばかりの更新ブロックにコピーされる。現在の書き込みコマンドの実行中にはこの1つのページまたはメタページだけがコピーされればよいのであるが、時間が利用可能であればそれ以上がコピーされてもよい。全てのデータをソースブロックから新しい更新ブロックにコピーするために必要な時間の量は、特に非常に大きなブロックの場合には、現在の書き込みコマンドの実行中に利用し得るよりも長いことがある。従って、好ましくはソースブロックから最少量のデータ(好ましくはソースブロック内のデータのわずか4分の1)をコピーすることによって、現在の書き込みコマンドの実行から或る程度の時間の後に完了するように損耗均等化交換をセットアップするために充分なことが行われる。
オプションの最適化として、次のステップ304は、1つのページまたはメタページのデータを有する新しい更新ブロックを、強制的に、システム更新ブロックのうちのその時点で最も長く使用されていないもの(LRU)として特定させ得る。この更新ブロックは、今開かれたばかりなので、確かにその時点で最も長く使用されていないものではない。しかし、それをLRU更新ブロックとして指定することによって、それは次に他の更新ブロックが開かれなければならないときに閉じられる。その閉じるプロセスは、最も便利にはソースブロックから残りのページをこのブロックにコピーすることによって実行される、行われるべきガーベッジコレクションを含む。このブロックはその後に閉じられ、必要な新しい更新ブロックが開かれる。損耗均等化交換はメモリシステムの標準的操作の間に完了している。損耗均等化交換の完了のために、それが一旦セットアップされたならば、特別の操作は不要である。
図15は、このプロセスをタイミング図により示す。データの例としてのユニット1および2に関しての現在の書き込みコマンドの実行は間隔307中に行われる。更新ブロックを書き込みコマンドの実行に利用し得るようにするために必要なガーベッジコレクションは最初の間隔309の間に行われ、これに間隔311が続き、その間に、図14のステップ301〜304に関して前述したように損耗均等化操作がセットアップされる。その後に、ホストからコントローラバッファメモリに受け取られたデータのユニット1および2は間隔313の間にフラッシュメモリに書き込まれる。
その後の間隔315の間に、開いた更新ブロックを設けるためにガーベッジコレクションを必要とする次の書き込みコマンドの実行が行われ、ガーベッジコレクション317は損耗均等化交換を完了させる。その後、この例においてデータユニット3および4は間隔319の間にフラッシュメモリに書き込まれる。
図14および15のプロセスは、さらに別の方法で図16により示される。データの1つのページまたはメタページが、損耗均等化のために指定されたソースブロックから、新しく開かれた更新ブロック3にコピーされる(データコピー1)。何時でも同時に2つの更新ブロックだけが開かれていることを許すメモリシステムを仮定すると、更新ブロック3を開けるように更新ブロック2は閉じられた。これは、図15の時間間隔307の間に、図14のステップ301〜304により実行される。その後、図15の時間間隔315の間に、ソースブロックからの残りのデータが更新ブロック3にコピーされる(データコピー2)。従って、後の書き込みコマンドを実行するために必要にされたガーベッジコレクション317は、前にセットアップされていた損耗均等化交換を完成させている。
1ページ以上のデータを新しい更新ブロックにコピーすることは、それを、ガーベッジコレクションプロセスを改変することを必要とせずに、後のガーベッジコレクションのためにセットアップする。損耗均等化交換は、いくぶん自動的に完了する。或いは、最初は新しい更新ブロックにデータをコピーする必要はないが、それにコピーされるべきデータのソースブロックを識別するフラグを付することができる。後にそのフラグに応じてデータ交換を行わせることができる。
同じデータ書き込みおよび損耗均等化操作を成し遂げる代わりの方法が図17のタイミング図により示されている。メモリビジー信号は、単一の書き込みコマンドの実行中にデータユニット1,2および3の各々の転送の後にアサートされる。この例について、前述したように、書き込みコマンドを実行するための更新ブロックを得るためにガーベッジコレクションが必要であり、その後に損耗均等化を行うために他の1つのガーベッジコレクションが必要であるということが仮定される。これは、図14のブロック235’からの“いいえ”経路をとるけれども、そこに示されているのとは別様に事態を処理する。データ書き込みに必要なガーベッジコレクション321(図17)は、第1のビジー信号の間に行われる。その後、第2のビジー信号の間にガーベッジコレクション323は損耗均等化交換のための更新ブロックを作る。その後に損耗均等化交換325の全体が第3のビジー信号の間に行われ、データユニット1,2および3はフラッシュメモリに後に(図示せず)書き込まれる。
図17の例では図14〜16の例と同じ機能が行われるが、それらを成し遂げるために余分のビジー信号期間を必要とする。これにより図14〜16の例では、書き込みコマンドを実行することと損耗均等化交換の大部分を実行することとの両方のためにガーベッジコレクション操作319を利用することによりメモリ性能がより良好である。
図14〜16の例では、損耗均等化交換は、1つが継続しているたびに開始され得る。従って、損耗均等化は、Nメモリシステム消去サイクルごとに、前述した第1の実施形態でそうであったように省略されることを必要とせずに定期的に行われ得る。従って、図13A,13Bおよび13Cの手続きのような手続きは不要である。
第3の損耗均等化の実施形態
図18の動作フローチャートは、図12の動作フローチャートに類似しているが、複数の連続するビジー期間中に単数または複数のハウスキーピングタスクを実行する。ステップ243で書き込みコマンドを受け取った後、次のステップ245で時間割り当てが計算される。すなわち、この書込み操作でハウスキーピング操作を実行するために利用可能な時間の量が最初に判定される。これは、主として、(1)ホストタイムアウトを超えずに各データユニットが転送された後にアサートされ得るメモリシステムビジー信号の最大持続時間に(2)現在の書き込みコマンドにより転送されるデータのユニットの数で表されたデータ転送の長さを乗ずることを含む。なぜならば、以下に説明する図19および20に最もよく示されているように、コントローラがハウスキーピングを行うために利用し得る時間がデータの各ユニットが転送されるときと同時に、またその後に現れるからである。
次のステップ247により、データの複数のユニットのうちの第1のユニットがコントローラバッファメモリに受け取られ、書き込みコマンドを実行できるために必要ならば、ガーベッジコレクションがステップ249で開始される。その後、カウンタなどを減らすことにより、ステップ245で判定された時間割り当てが、このガーベッジコレクションを行うのに要する量の時間だけ(図示せず)減らされ得る。
ステップ251で、データの第2のユニットが受け取られ、現在のデータ書込み操作中に損耗均等化も実行され得るか否かが判定される。ステップ253により、継続している損耗均等化交換があるか否かが、すなわち使用される特定の損耗均等化アルゴリズムに従って損耗均等化を開始する条件が存在するか否かが判定される。あるならば、次のステップ255で、損耗均等化に使用される自由な或いは空の更新ブロックの存在が判定される。1つ存在するならば、損耗均等化が実行され(ステップ257)、次に現在の書き込みコマンドのそれ以上のデータユニットを受け取り(ステップ259)、現在の書き込みコマンドのデータユニットをフラッシュメモリに書き込む(ステップ261)。もちろん、ステップ253によって継続中の損耗均等化がないと判定されたならば、処理はそこからステップ259にじかに移行する。
ステップ255に戻って、損耗均等化中に直ぐに利用できる更新ブロックがなかったならば、次のステップ263は、そのような更新ブロックを得るためにガーベッジコレクションを行う時間があるか否かを確かめる。この例では、ガーベッジコレクションおよび損耗均等化交換の各々はホストからのデータユニットの受け取り後のメモリシステムからのビジー信号の間に行われるので、この照会はデータの第3のユニットがあるか否かである。あるならば、それが受け取られ(ステップ265)、必要なガーベッジコレクション(ステップ267)が行われる。ステップ257の損耗均等化はその後に行われる。しかし、この付加的なガーベッジコレクションのための時間がなければ、プロセスはステップ261に直接進む。
図18のプロセスの変形例として、時間割り当てステップ245の直後に、ガーベッジコレクションおよび損耗均等化交換のうちから、そのための時間があるものを選択することができる。そのための時間がある操作はその後に次々にスケジュールされ得る。これを行うために必要な全ての情報は、書き込みコマンドを受け取った直後に利用可能である。特定の操作が1つのメモリシステムビジー期間内に完了し得なければ、それは他の一つのビジー期間にまで及ぶようにスケジュールされ得る。このようにして、これらのおよび他のハウスキーピング操作のための最大量の時間が非常に効率的に利用され得る。
1つの具体的な操作方法が図19のタイミング図により示され、ここでデータの2つのユニット1および2を書き込む単一の操作の間にガーベッジコレクションと損耗均等化との両方が行われる。メモリシステムは、第1のデータユニットの転送後に必要なガーベッジコレクションを行うために充分な時間にわたってそのビジー信号を維持する。ガーベッジコレクションが完了すると、直ちにビジー信号は除去され、ホストは第2のデータユニットを送る。メモリシステムは、その後、第2のデータユニットの転送後、損耗均等化を行うのに充分な時間にわたって再びビジー信号をアサートする。その後、両方のデータユニットがコントローラバッファメモリからフラッシュメモリのブロックに書き込まれ、その後に、メモリシステムが新しいコマンドを受け取れることをホストに示すためにビジー信号が非アクティブにされる。図19において、メモリシステムバッファへのホストのユニット1および2の転送の間に付加的なビジー期間が挿入されている。前述した図17の場合にもそうである。
2つの異なるハウスキーピング操作、すなわちガーベッジコレクションおよび損耗均等化が連続するメモリシステムビジー期間中に行われるが、図19のメモリシステムビジー期間の各々の間に1つのそのような操作が実行される。その代わりに、特に、ブロック同士の間でデータを転送するためにほとんどの時間が使われるガーベッジコレクションと損耗均等化との場合には、ガーベッジコレクションまたは損耗均等化交換をその2つの連続する期間に分けることができる。その場合、データをコピーする操作の一部は第1のメモリシステムビジー期間の間に行われ、その後に第2のビジー期間の間に完了する。
データ書込み操作は、しばしば、図9および19に示されている2つよりも多いデータユニットの転送を含む。これは、メモリシステム内でガーベッジコレクション、損耗均等化または他のハウスキーピング機能を実行する付加的な機会を提供する。図20はこの例を示し、ここで1つのホスト書き込みコマンドは4つのデータユニット1,2,3および4のためのものである。メモリシステムは、必要であるかまたは望ましければ、連続する期間217,219および221にわたって1つ以上のガーベッジコレクション、損耗均等化または他のハウスキーピング操作を行うことができる。これを行い、またデータを書き込むために、メモリシステムは各データ転送後にビジー信号期間を挿入する。これは、個々のビジー期間を短縮し或いは充分に利用できるようにハウスキーピング機能の実行を複数のメモリシステムビジー期間に広げることができるという利点を有する。
図20の例では、ハウスキーピング期間217,219および221の各々が終了するとビジー信号が非アクティブにされ、これに起因してホストは次のデータユニットを送る。或いは、ビジー信号のアサート解除は期間217,219および221の終了と同期しなくてもよい。ビジー信号の持続時間は、期間217,219および221を含む時間を単一の期間として利用できるように他の何らかの仕方で制御され得る。この場合にビジー信号のアサートを制御する1つの仕方は、所望の操作が完了するまで各々の場合にそれをなるべく長くすることであり、その後、ビジー信号は必要な短い時間だけアサートされる。ビジー信号を制御する他の仕方は、ビジー信号の各々に大体同じ持続時間を持たせることである。この共通の持続時間は、書き込みコマンドの受け取り時に、単数または複数の操作を完了するのに必要な時間を現在の書き込みコマンドにより転送されるデータユニットの数で割って決定される。
損耗均等化アルゴリズムの例
図12のステップ237および図18のステップ257で実行され得る具体的な損耗均等化アルゴリズムについて以下に説明する。1つのソースブロックと1つの宛先ブロックとが選択される。ソースブロックを選択するために論理グループ(図8の211)を通ってポインタが増分される。1つのブロックが損耗均等化を受けた後、ポインタは順番に次の論理グループに移り、そのグループがマッピングされる物理ブロックがソースブロックとして選択される。或いは、ポインタは直接に物理ブロックを通って増分されてもよい。
指されたブロックは、一定の付加的な基準が満たされるならば、ソースブロックとして選択される。ブロックは、ホストデータを包含しなければならず、それが( 図8に関して説明したものに加えて)メモリシステム制御データを包含する予備ブロックであるならば選択されない。その理由は、予備ブロックの使用法の性質の故に、それらに対して損耗均等化を行うことを必要とせずにそれらがメモリを通って循環させられることにある。ブロックは、開いている更新ブロックがそれに関連付けられている場合にも、ソースブロックとしては選択されない。更新ブロックの存在は、そのブロックにマッピングされた論理グループのためのデータがそのブロックとその更新ブロックとの両方に包含されているということを意味する。また、もちろん、欠陥があるためにマッピングアウトされているブロックもソースブロックとして選択されない。
指されたブロックが、これらのまたは他の何らかの理由からソースブロックとして適していなければ、ポインタは順番に次の論理グループまたは物理ブロックへ増分され、この次のブロックも前述した基準と対照されて試験される。この第2のブロックが試験に合格しなければ、他のものが指されて試験される。適切なブロックが見つからないときに考慮されるブロックの数に好ましくは最大数が課される。その後、現在の損耗均等化交換は中止され、調査は次の損耗均等化交換中に再び始められる。
宛先ブロックは消去済みプールブロックから選択され、普通は、ホストからのデータの格納のために使われるように置かれている次のブロックである。しかし、ホストデータを格納する代わりに、ソースブロックからのデータがこの宛先ブロックにコピーされる。マッピングテーブル(215)は、その後、これらのデータが属する論理グループが新しいブロックにマッピングされるように、更新される。その後、ソースブロックは消去されて消去プール内に置かれる。
他の実施形態
図21のタイミング図は、単一のハウスキーピング操作が2つ以上の書き込みコマンドの実行中に行われる例を示す。ハウスキーピング操作の一部分331は1つの書き込みコマンドの実行中に行われ、他の一部分333は次の書き込みコマンドの実行中に行われる。ハウスキーピング操作は3つ以上の書き込みコマンド実行に分散されてもよく、また連続する書き込み実行中に行われなくてもよいが、時間上でさらに分散され得る。この能力を持つことの利点は、特定のハウスキーピング操作を実行するのに必要な時間を特定の書き込みサイクルのメモリビジー信号持続時間から切り離せることである。実際に、連続する書き込みコマンド実行中にメモリシステムビジー信号に均一な持続時間を持たせることができ、個々のハウスキーピング操作を数個のそのようなビジー信号期間にわたって実行することができる。
拡張されたビジー期間(単数または複数)から利益を得る他の1つのハウスキーピング機能は、前述したメモリセルに蓄積された電荷レベルのリフレッシュ(スクラブ)である。受信されたコマンドの実行に関わらない1つ以上のブロックまたはメタブロック内のメモリセルがリフレッシュされる。他の一つは先制ガーベッジコレクションであり、これも前述した。そのようなガーベッジコレクションも、受信されたコマンドの実行に関わらないブロックまたはメタブロック内のデータに関して行われる。受信されたコマンドの実行に同様に不要で必要とされない他のオーバーヘッド操作も、メモリシステムによりアサートされたビジー期間中に実行され得る。これは、大量のデータをコピーすることを必要とするハウスキーピング操作のために特に有益である。なぜならば、そのようなコピー動作はかなりの時間を消費するからである。ホストコマンドの実行中に行われる損耗均等化、スクラッビング、先制ガーベッジコレクション或いは他の類似操作のいずれも、そのコマンドの実行の必須の部分ではない。それらは、受信されたコマンドに直接関連しておらず、またこのコマンドによりトリガーされない。そのような他の操作を行う時間の量についての制限を除けば、ホストコマンドの実行中に行うことのできることについての制限はほとんどない。
さらに、そのような関係のない操作を書き込みコマンドの実行中に実行することに加えて、メモリシステムがビジー信号のアサートまたは他の方法でさらなるホストコマンドの受信を遅らせるように動作できる他のホストコマンドの実行中にそれらを実行することもできる。1つのそのような他のコマンドは読み出しコマンドである。図22は、間隔341中にデータユニットがフラッシュメモリからコントローラメモリに読み込まれることを示している。メモリビジー信号は、この期間中アクティブである。しかし、その直後にビジー信号を落とすのではなくて、それが間隔343中にハウスキーピング操作(または1つの一部分)が行われるための時間を提供するために延長される。ビジー信号が落ちると、データユニット1および2がホストに転送される。図に示されているように、ハウスキーピング操作もこの期間の終わりまで延長され得る。書き込みコマンドの実行中にハウスキーピングを行うために前に論じられた手法の多くは、読み出しコマンドの実行中にそうすることにも応用され得る。
結論
本発明の種々の態様をその代表的な実施形態に関して説明してきたが、本発明が添付されている特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。

Claims (5)

  1. 消去可能で再プログラム可能な不揮発性メモリシステムを操作する方法であって、コマンドを実行するための時間割り当てを有する前記不揮発性メモリシステムの外側から前記コマンドを受信したことに応答して、
    前記不揮発性メモリシステムの外側にビジー信号をアサートしながら、前記コマンドを実行するのに必要な機能を実行するステップと、
    前記受信されたコマンドを実行するのに不必要な前記不揮発性メモリシステム内での1つのハウスキーピング操作の少なくとも一部分を実行するために、前記コマンドを実行して、さらなるホストコマンドを受信することを遅延した後で、前記不揮発性メモリシステムの外側にビジー信号をアサートすることを継続するステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    前記受信されたコマンドは、読み出しコマンドを含む方法。
  3. 請求項1記載の方法において、
    前記コマンドを実行するのに必要な機能は、ガーベッジコレクション操作を含む方法。
  4. 請求項1記載の方法において、
    前記少なくとも1つのハウスキーピング操作は前記不揮発性メモリシステム内で1つの量のデータを1つの場所から他の場所に転送することを含み、そのようなハウスキーピング操作の少なくとも一部分を実行することは前記量のデータの一部分だけを継続するビジー信号時間中に転送することを含む方法。
  5. 請求項1記載の方法において、
    前記不揮発性メモリシステムは、メモリアレイを含み、
    前記少なくとも1つのハウスキーピング操作は、前記メモリアレイの、前記コマンドの実行に関わっていない部分において実行されるガーベッジコレクション操作を含む方法。
JP2009142857A 2005-01-20 2009-06-16 フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング Expired - Fee Related JP5222232B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/040,325 US20060161724A1 (en) 2005-01-20 2005-01-20 Scheduling of housekeeping operations in flash memory systems
US11/040,325 2005-01-20
US11/312,985 2005-12-19
US11/312,985 US7315917B2 (en) 2005-01-20 2005-12-19 Scheduling of housekeeping operations in flash memory systems

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007552175A Division JP4362534B2 (ja) 2005-01-20 2006-01-11 フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング

Publications (2)

Publication Number Publication Date
JP2009282989A JP2009282989A (ja) 2009-12-03
JP5222232B2 true JP5222232B2 (ja) 2013-06-26

Family

ID=36384406

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007552175A Expired - Fee Related JP4362534B2 (ja) 2005-01-20 2006-01-11 フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング
JP2009142857A Expired - Fee Related JP5222232B2 (ja) 2005-01-20 2009-06-16 フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007552175A Expired - Fee Related JP4362534B2 (ja) 2005-01-20 2006-01-11 フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング

Country Status (9)

Country Link
US (3) US7315917B2 (ja)
EP (2) EP1856616B1 (ja)
JP (2) JP4362534B2 (ja)
KR (1) KR101304254B1 (ja)
AT (2) ATE499648T1 (ja)
DE (2) DE602006020363D1 (ja)
IL (1) IL184675A0 (ja)
TW (1) TWI406295B (ja)
WO (1) WO2006078531A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7479846B2 (ja) 2016-10-17 2024-05-09 ビーエーエスエフ ソシエタス・ヨーロピア 3dスペーサーファブリック強化pu複合材及びその使用方法

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6506770B1 (en) * 1996-06-06 2003-01-14 Anormed, Inc. Antiviral compounds
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
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
US7975306B2 (en) * 2004-06-04 2011-07-05 Hewlett-Packard Development Company, L.P. Apparatus and method for monitoring secure software
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP4394047B2 (ja) * 2005-08-05 2010-01-06 信越ポリマー株式会社 キーフレームおよび押釦スイッチ用カバー部材
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US7436708B2 (en) * 2006-03-01 2008-10-14 Micron Technology, Inc. NAND memory device column charging
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据系统有限公司 智能卡存储系统及该系统中文件创建管理的方法
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
JP4362549B1 (ja) * 2006-08-04 2009-11-11 サンディスク コーポレイション 段階的ガーベッジコレクション
US7444462B2 (en) * 2006-09-28 2008-10-28 Sandisk Corporation Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US8949555B1 (en) * 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
US7441071B2 (en) 2006-09-28 2008-10-21 Sandisk Corporation Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
TWI376600B (en) * 2006-09-28 2012-11-11 Sandisk Corp Memory systems and method for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7444463B2 (en) * 2006-09-29 2008-10-28 Sandisk Corporation System for phased garbage collection with state indicators
US7464216B2 (en) * 2006-09-29 2008-12-09 Sandisk Corporation Method for phased garbage collection with state indicators
WO2008042592A2 (en) * 2006-09-29 2008-04-10 Sandisk Corporation Phased garbage collection
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
JP4751814B2 (ja) * 2006-11-28 2011-08-17 富士通東芝モバイルコミュニケーションズ株式会社 携帯端末
KR100881669B1 (ko) * 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
JP5266250B2 (ja) 2006-12-26 2013-08-21 サンディスク テクノロジィース インコーポレイテッド 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
KR100884239B1 (ko) * 2007-01-02 2009-02-17 삼성전자주식회사 메모리 카드 시스템 및 그것의 백그라운드 정보 전송 방법
US7657701B2 (en) * 2007-01-03 2010-02-02 The General Electric Company System and method of flash memory wear leveling using distributed write cycles
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
US7669092B2 (en) * 2007-02-26 2010-02-23 Micron Technology, Inc. Apparatus, method, and system of NAND defect management
JP2008257773A (ja) * 2007-04-02 2008-10-23 Toshiba Corp 不揮発性半導体記憶装置、不揮発性半導体記憶装置の制御方法、不揮発性半導体記憶システム、及びメモリカード
US7913032B1 (en) * 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
JP4410271B2 (ja) * 2007-04-25 2010-02-03 株式会社東芝 メモリ制御装置
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
WO2008147752A1 (en) * 2007-05-24 2008-12-04 Sandisk Corporation Managing housekeeping operations in flash memory
US7788415B2 (en) * 2007-05-28 2010-08-31 Sandisk Il Ltd. Management of internal operations by a storage device
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
TWI369633B (en) 2007-06-27 2012-08-01 Sandisk Corp Phased garbage collection and house keeping operations in a flash memory system
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
KR101447188B1 (ko) * 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
WO2009021176A2 (en) * 2007-08-08 2009-02-12 Sandisk Corporation Urgency and time window manipulation to accommodate unpredictable memory operations
US8099632B2 (en) * 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
US11237956B2 (en) * 2007-08-13 2022-02-01 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US9824006B2 (en) * 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US20090100214A1 (en) * 2007-10-12 2009-04-16 Bei-Chuan Chen Management Platform For Extending Lifespan Of Memory In Storage Devices
JP4554660B2 (ja) * 2007-11-01 2010-09-29 株式会社コナミデジタルエンタテインメント 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
TWI381383B (zh) * 2007-11-14 2013-01-01 Netac Technology Co Ltd 快閃記憶體的資料儲存方法
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7966445B2 (en) * 2007-12-24 2011-06-21 Telefonaktiebolaget L M Ericsson (Publ) Read status controller
EP2077559B1 (en) * 2007-12-27 2012-11-07 Hagiwara Solutions Co., Ltd. Refresh method of a flash memory
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
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
US7957187B2 (en) * 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
US8275928B2 (en) * 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
US8880775B2 (en) * 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8560762B2 (en) * 2008-06-25 2013-10-15 Microsoft Corporation Limited memory power
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
JP2010055247A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd ストレージシステム及び構成管理方法
EP2335245B1 (en) * 2008-09-28 2015-01-07 Ramot at Tel-Aviv University Ltd. Method and system for adaptive coding in flash memories
US8671327B2 (en) * 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
US8230185B2 (en) * 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US8051241B2 (en) 2009-05-07 2011-11-01 Seagate Technology Llc Wear leveling technique for storage devices
US8732389B2 (en) * 2009-06-23 2014-05-20 Seagate Technology Llc Memory wear control
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
KR101662824B1 (ko) * 2009-07-08 2016-10-06 삼성전자주식회사 고체 상태 드라이브 장치 및 그것의 구동 방법
US20110010512A1 (en) * 2009-07-09 2011-01-13 Mediatek Inc. Method for controlling storage system having multiple non-volatile memory units and storage system using the same
US8209450B2 (en) * 2009-08-26 2012-06-26 Seagate Technologies Llc Maintenance operations using configurable parameters
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US20110082599A1 (en) * 2009-10-06 2011-04-07 Makarand Shinde Optimizing Utility Usage by Smart Monitoring
US8013762B2 (en) * 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
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
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US9959209B1 (en) 2010-03-23 2018-05-01 Western Digital Technologies, Inc. Data storage device adjusting command rate profile based on operating mode
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
WO2011128928A1 (en) 2010-04-12 2011-10-20 Hitachi, Ltd. Storage device
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8452937B2 (en) 2010-05-14 2013-05-28 Sandisk Il Ltd. Moving executable code from a first region of a non-volatile memory to a second region of the non-volatile memory to reduce read disturb
JP5464066B2 (ja) * 2010-06-10 2014-04-09 ソニー株式会社 通信装置、及び、通信方法
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8543757B2 (en) 2010-06-23 2013-09-24 Sandisk Technologies Inc. Techniques of maintaining logical to physical mapping information in non-volatile memory systems
US8683148B2 (en) 2010-06-30 2014-03-25 Sandisk Il Ltd. Status indication when a maintenance operation is to be performed at a memory device
US8626986B2 (en) * 2010-06-30 2014-01-07 Sandisk Technologies Inc. Pre-emptive garbage collection of memory blocks
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US9741436B2 (en) * 2010-07-09 2017-08-22 Seagate Technology Llc Dynamically controlling an operation execution time for a storage device
US8949506B2 (en) 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
US20120036301A1 (en) * 2010-08-03 2012-02-09 Caspole Eric R Processor support for filling memory regions
US10445226B2 (en) 2010-08-10 2019-10-15 Rambus Inc. Verify before program resume for memory devices
JP4910064B2 (ja) * 2010-08-31 2012-04-04 株式会社東芝 記憶制御装置、記憶装置、及びデータ移動制御方法
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
JP2012068936A (ja) * 2010-09-24 2012-04-05 Toshiba Corp メモリシステム
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8271692B1 (en) 2010-10-01 2012-09-18 Western Digital Technologies, Inc. Throttled command completion time
JP5535128B2 (ja) * 2010-12-16 2014-07-02 株式会社東芝 メモリシステム
TWI428743B (zh) * 2010-12-24 2014-03-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8521948B2 (en) 2011-01-03 2013-08-27 Apple Inc. Handling dynamic and static data for a system having non-volatile memory
CN102592670B (zh) * 2011-01-07 2015-09-30 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
KR20120084906A (ko) * 2011-01-21 2012-07-31 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 그 관리 방법
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US8560922B2 (en) 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US10338947B2 (en) * 2011-03-15 2019-07-02 Microsoft Technology Licensing, Llc Extent virtualization
JP2012203443A (ja) 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
US9417803B2 (en) 2011-09-20 2016-08-16 Apple Inc. Adaptive mapping of logical addresses to memory devices in solid state drives
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8924636B2 (en) 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
TWI454916B (zh) * 2012-05-08 2014-10-01 Phison Electronics Corp 儲存單元管理方法、記憶體控制器與記憶體儲存裝置
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
TWI479489B (zh) * 2012-08-13 2015-04-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US9411718B2 (en) * 2012-12-21 2016-08-09 Seagate Technology Llc Method to apply fine grain wear leveling and garbage collection
US20140181368A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on storage devices with write counters
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling 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
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
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
US9489297B2 (en) * 2013-01-21 2016-11-08 Sandisk Technologies Llc Pregroomer for storage array
US9153331B2 (en) * 2013-03-13 2015-10-06 Sandisk Technologies Inc. Tracking cell erase counts of non-volatile memory
US20140359181A1 (en) * 2013-05-31 2014-12-04 Hewlett-Packard Development Company, L.P. Delaying Bus Activity To Accomodate Memory Device Processing Time
CN105683926A (zh) * 2013-06-25 2016-06-15 美光科技公司 按需块管理
JP5866032B2 (ja) 2013-08-19 2016-02-17 株式会社東芝 メモリシステム
US10013280B2 (en) * 2013-09-30 2018-07-03 Dell Products, Lp System and method for host-assisted background media scan (BMS)
US9218282B2 (en) 2013-10-31 2015-12-22 Micron Technology, Inc. Memory system data management
US9727249B1 (en) * 2014-02-06 2017-08-08 SK Hynix Inc. Selection of an open block in solid state storage systems with multiple open blocks
JP6260395B2 (ja) * 2014-03-27 2018-01-17 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
CN104951241B (zh) * 2014-03-31 2018-02-27 群联电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US9710176B1 (en) * 2014-08-22 2017-07-18 Sk Hynix Memory Solutions Inc. Maintaining wear spread by dynamically adjusting wear-leveling frequency
US10725668B1 (en) * 2014-08-29 2020-07-28 SK Hynix Inc. Data separation during garbage collection and wear leveling
KR20160049200A (ko) * 2014-10-27 2016-05-09 삼성전자주식회사 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
KR101614107B1 (ko) * 2015-01-09 2016-04-20 성균관대학교산학협력단 비용 효율적인 선택적 메모리 중복 제거 방법 및 장치
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US20160299844A1 (en) * 2015-04-08 2016-10-13 Sandisk Enterprise Ip Llc Mapping Logical Groups of Data to Physical Locations In Memory
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9772777B2 (en) 2015-04-27 2017-09-26 Southwest Research Institute Systems and methods for improved access to flash memory devices
US9875053B2 (en) 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10289327B2 (en) 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10324833B2 (en) * 2015-10-27 2019-06-18 Toshiba Memory Corporation Memory controller, data storage device, and memory control method
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
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
US10133490B2 (en) * 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
US10318163B2 (en) * 2016-03-30 2019-06-11 EMC IP Holding Company LLC Balancing SSD wear in data storage systems
US10338825B2 (en) * 2016-03-31 2019-07-02 EMC IP Holding Company LLC Managing SSD wear rate in hybrid storage arrays
US10324633B2 (en) * 2016-03-31 2019-06-18 EMC IP Holding Company LLC Managing SSD write quotas in data storage systems
US10318185B2 (en) * 2016-07-01 2019-06-11 Intel Corporation Method and apparatus to provide both storage mode and memory mode access to non-volatile memory within a solid state drive
US10739996B1 (en) 2016-07-18 2020-08-11 Seagate Technology Llc Enhanced garbage collection
TWI612473B (zh) * 2017-03-22 2018-01-21 慧榮科技股份有限公司 垃圾回收方法以及使用該方法的裝置
JP2018160194A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステムおよび方法
JP2018181213A (ja) * 2017-04-20 2018-11-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
JP6785205B2 (ja) 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP6982468B2 (ja) * 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
KR102491068B1 (ko) 2017-11-17 2023-01-19 에스케이하이닉스 주식회사 메모리 장치에 대한 태스크들을 스케줄링하는 반도체 장치 및 이를 포함하는 시스템
KR20190120573A (ko) * 2018-04-16 2019-10-24 에스케이하이닉스 주식회사 메모리 시스템, 데이터 처리 시스템 및 메모리 시스템의 동작 방법
US11016693B2 (en) 2018-06-21 2021-05-25 International Business Machines Corporation Block health estimation for wear leveling in non-volatile memories
US10884889B2 (en) 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
US11537307B2 (en) 2018-08-23 2022-12-27 Micron Technology, Inc. Hybrid wear leveling for in-place data replacement media
US10761739B2 (en) * 2018-08-23 2020-09-01 Micron Technology, Inc. Multi-level wear leveling for non-volatile memory
US10860219B2 (en) * 2018-10-05 2020-12-08 Micron Technology, Inc. Performing hybrid wear leveling operations based on a sub-total write counter
JP2020155182A (ja) * 2019-03-20 2020-09-24 キオクシア株式会社 メモリシステム及び不揮発性メモリ
KR20200115102A (ko) 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 유사도에 따라 후보 선택을 가속하는 방법 및 후보 선택을 수행하는 가속기
US11636173B2 (en) 2019-03-28 2023-04-25 SK Hynix Inc. Method for candidate selection and accelerator for performing candidate selection
KR20210006664A (ko) * 2019-07-09 2021-01-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR20210027563A (ko) * 2019-08-28 2021-03-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
TWI715409B (zh) * 2020-01-08 2021-01-01 點序科技股份有限公司 記憶體管理方法及儲存控制器
US11894060B2 (en) 2022-03-25 2024-02-06 Western Digital Technologies, Inc. Dual performance trim for optimization of non-volatile memory performance, endurance, and reliability

Family Cites Families (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4012835A (en) * 1974-09-17 1977-03-22 E. I. Du Pont De Nemours And Co. Method of forming a dual in-line package
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
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
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
GB9111524D0 (en) * 1991-05-29 1991-07-17 Hewlett Packard Co Data storage method and apparatus
JP3134819B2 (ja) * 1997-06-04 2001-02-13 ソニー株式会社 データ処理装置
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
TW261687B (ja) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
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
US5640529A (en) * 1993-07-29 1997-06-17 Intel Corporation Method and system for performing clean-up of a solid state disk during host command execution
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
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
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5768192A (en) * 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6412023B1 (en) * 1998-05-21 2002-06-25 Sony Corporation System for communicating status via first signal line in a period of time in which control signal via second line is not transmitted
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
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US5871890A (en) * 1997-11-14 1999-02-16 Eastman Kodak Company Method for processing roomlight handleable radiographic films using two-stage development
US6233644B1 (en) * 1998-06-05 2001-05-15 International Business Machines Corporation System of performing parallel cleanup of segments of a lock structure located within a coupling facility
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
JP3351398B2 (ja) * 1999-08-09 2002-11-25 株式会社村田製作所 データ通信装置
JP3863330B2 (ja) * 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
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
US6567307B1 (en) * 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6345001B1 (en) 2000-09-14 2002-02-05 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US20020174295A1 (en) * 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
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
JP4042359B2 (ja) * 2001-07-10 2008-02-06 日本電気株式会社 キャッシュ制御方法及びキャッシュ装置
US6931480B2 (en) 2001-08-30 2005-08-16 Micron Technology, Inc. Method and apparatus for refreshing memory to preserve data integrity
US6973535B2 (en) * 2001-09-14 2005-12-06 Cornice, Inc. Digital device configuration and method
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP3928500B2 (ja) 2002-02-26 2007-06-13 株式会社日立製作所 メモリ装置
US6771536B2 (en) * 2002-02-27 2004-08-03 Sandisk Corporation Operating techniques for reducing program and read disturbs of a non-volatile memory
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
DE60316171T2 (de) 2002-10-28 2008-05-29 SanDisk Corp., Milpitas Automatischer abnutzungsausgleich in einem nicht-flüchtigen speichersystem
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6973531B1 (en) 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR100654429B1 (ko) * 2004-03-03 2006-12-06 삼성전자주식회사 무선 스테이션의 트래픽을 동적으로 제어하는 방법 및 장치
KR100568115B1 (ko) 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
DE102004036488A1 (de) * 2004-07-28 2006-03-23 Siemens Ag Verfahren, Vorrichtung und System zur adaptiven Optimierung von Transportprotokollen bei der Übertragung von Bildern
US7398348B2 (en) * 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US20060053247A1 (en) * 2004-09-08 2006-03-09 Hugo Cheung Incremental erasing of flash memory to improve system performance
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7386655B2 (en) * 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
JP2006195736A (ja) 2005-01-13 2006-07-27 Sony Corp 半導体記憶装置及びその制御方法
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060161724A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7827141B2 (en) * 2005-03-10 2010-11-02 Oracle International Corporation Dynamically sizing buffers to optimal size in network layers when supporting data transfers related to database applications
JP5162846B2 (ja) 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7779056B2 (en) 2006-09-15 2010-08-17 Sandisk Corporation Managing a pool of update memory blocks based on each block's activity and data order
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7479846B2 (ja) 2016-10-17 2024-05-09 ビーエーエスエフ ソシエタス・ヨーロピア 3dスペーサーファブリック強化pu複合材及びその使用方法

Also Published As

Publication number Publication date
US7565478B2 (en) 2009-07-21
EP2112599A1 (en) 2009-10-28
EP1856616A2 (en) 2007-11-21
JP2008529130A (ja) 2008-07-31
JP2009282989A (ja) 2009-12-03
DE602006020363D1 (de) 2011-04-07
TW200632935A (en) 2006-09-16
US20060161728A1 (en) 2006-07-20
DE602006009081D1 (de) 2009-10-22
EP2112599B1 (en) 2011-02-23
ATE499648T1 (de) 2011-03-15
KR101304254B1 (ko) 2013-09-05
IL184675A0 (en) 2007-12-03
TWI406295B (zh) 2013-08-21
US20090265508A1 (en) 2009-10-22
US20080091872A1 (en) 2008-04-17
JP4362534B2 (ja) 2009-11-11
WO2006078531A2 (en) 2006-07-27
US8364883B2 (en) 2013-01-29
US7315917B2 (en) 2008-01-01
WO2006078531A3 (en) 2006-11-23
EP1856616B1 (en) 2009-09-09
ATE442627T1 (de) 2009-09-15
KR20070111470A (ko) 2007-11-21

Similar Documents

Publication Publication Date Title
JP5222232B2 (ja) フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング
JP4787266B2 (ja) スクラッチパッドブロック
US20060161724A1 (en) Scheduling of housekeeping operations in flash memory systems
US7451264B2 (en) Cycle count storage methods
US7467253B2 (en) Cycle count storage systems
JP4643711B2 (ja) 状況依存メモリ性能
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
US7441067B2 (en) Cyclic flash memory wear leveling
US7882299B2 (en) System and method for use of on-chip non-volatile memory write cache
US8593866B2 (en) Systems and methods for operating multi-bank nonvolatile memory
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
KR100983212B1 (ko) 데이터 런 프로그래밍
WO2008147752A1 (en) Managing housekeeping operations in flash memory
KR101468432B1 (ko) 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술
US8995183B2 (en) Data retention in nonvolatile memory with multiple data storage formats
WO2007121025A1 (en) Cycle count storage methods and systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120229

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120528

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121018

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130308

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

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5222232

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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