JP2009503744A - 予定再生操作を伴う不揮発性メモリ - Google Patents

予定再生操作を伴う不揮発性メモリ Download PDF

Info

Publication number
JP2009503744A
JP2009503744A JP2008525169A JP2008525169A JP2009503744A JP 2009503744 A JP2009503744 A JP 2009503744A JP 2008525169 A JP2008525169 A JP 2008525169A JP 2008525169 A JP2008525169 A JP 2008525169A JP 2009503744 A JP2009503744 A JP 2009503744A
Authority
JP
Japan
Prior art keywords
data
host
memory
block
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008525169A
Other languages
English (en)
Other versions
JP4977703B2 (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
Priority claimed from US11/259,423 external-priority patent/US7409489B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2009503744A publication Critical patent/JP2009503744A/ja
Application granted granted Critical
Publication of JP4977703B2 publication Critical patent/JP4977703B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable

Abstract

不揮発性メモリアレイにおいて、消去済みブロックの不足が生じる前に行われる再生操作のスケジューリングは、制限時間の超過を招く長期間の再生を回避する。メモリコントローラは、メモリアレイに記憶されるデータに関する情報をもとに、プログラムされ得る追加のホストデータと遂行される再生操作とを推定し、メモリが満杯になるまで書き込み操作の合間に再生操作が均一に分散するようにスケジュールを組む。

Description

本願は、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの操作に関し、より具体的にはこのようなメモリの中の使用可能な空間の管理に関する。本願明細書で参照される特許、特許出願、記事、その他の出版物、文書、事柄はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。
初期世代の商用フラッシュメモリシステムでは、メモリセルからなる矩形のアレイが、標準ディスクドライブセクタのデータ量、すなわち512バイトを、各々記憶する多数のセルグループに分割されていた。さらに通常ならば、誤り訂正符号(ECC)を記憶し、、ことによるとユーザデータおよび/またはこれを記憶するメモリセルグループに、関係する他のオーバーヘッドデータを記憶するため、16バイトなどの一定量のデータが各グループに加わる。このような各グループの中にあるメモリセルは、ともに消去可能な最低数のメモリセルである。すなわち、消去単位は事実上、1つのデータセクタを、そしてオーバーヘッドデータが含まれる場合はオーバーヘッドデータを、記憶するメモリセル数である。米国特許第5,602,987号(特許文献1)および第6,426,893号(特許文献2)には、このタイプのメモリシステムの例が記載されている。フラッシュメモリの特徴として、メモリセルにデータを再度プログラムする前にメモリセルを消去する必要がある。
フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストと着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、このようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込む場合、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタまたはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム(DOS)のように、メモリシステムの論理アドレス空間の中のアドレスにデータを書き込み、かつこれからデータを読み出す。メモリシステムの中のコントローラは、ホストから受け取った論理アドレスをメモリアレイの中のデータが実際に記憶される物理アドレスに翻訳し、これらのアドレス翻訳の経緯を把握する。メモリシステムのデータ記憶容量は少なくとも、メモリシステムのために設定される論理アドレス空間全体にわたってアドレスされるデータ量に相当する。
後続世代のフラッシュメモリシステムでは、消去単位のサイズが複数セクタのデータを十分に記憶するメモリセルブロックまで拡大した。メモリシステムの接続先にあたるホストシステムがセクタなどの小さな最小単位でデータをプログラムし読み出すとしても、フラッシュメモリの1消去単位には多数のセクタが記憶される。ホストが論理セクタのデータの更新や置き換えを行うときに、ブロック内のいくつかのデータセクタが用済みになることは多々ある。ブロックに記憶されたデータに上書きを行うには事前にブロック全体を消去しなければならないから、新規または更新済みデータは通常、あらかじめ消去されデータのための容量が残っている別のブロックに記憶される。この過程で元のブロックには用済みデータが残り、メモリ内の貴重な空間を取る。しかし、このブロックは、その中に有効データが残っていると消去できない。
したがって、メモリ記憶容量の有効利用を図るため、有効な不完全ブロックのデータ量を消去済みブロックにコピーすることによってこれを整理または回収するのが一般的であり、こうすればデータのコピー元にあたるブロックを消去でき、その記憶容量の全体を再利用できる。ブロック内のデータセクタをそれぞれの論理ブロックの順にグループ分けするためにデータをコピーすることも望ましく、こうすればデータを読み出して、読み出したデータをホストへ転送する速度が上がる。そのようなデータコピーがあまりにも頻繁に行われると、メモリシステムの動作性能が低下することがある。これは特に、メモリの記憶容量が、システムの論理アドレス空間を通じてホストによってアドレス指定可能なデータ量と大差ない場合、つまりよくある場合、メモリシステムの動作に影響する。この場合は、ホストプログラミングコマンドが実行される前にデータを整理または回収する必要がある。そうするとプログラミングの時間が長引く。
所与の半導体エリアに記憶できるデータのビット数を増やすため、ブロックのサイズはメモリシステムの世代交代を通じて拡大している。256以上のデータセクタを記憶するブロックが一般的になりつつある。加えてデータのプログラミングと読み出しにあたって並列度を高めるため、アレイまたはサブアレイからなる2つ、4つ、またはそれ以上のブロックがしばしばメタブロックとして論理的にともにリンクされる。そのような大容量操作単位には、それらを効率的に操作するという課題がともなう。
したがって、不揮発性メモリの記憶されたデータ管理の改善が求められている。有効データを収容しておらず、新規な有効データを記憶するために現在使用できないメモリ空間を効率的に再生するシステムもまた求められている。ホストデータのプログラミングなどの他のメモリ操作への影響がごく僅かかまたは皆無となるように再生操作を遂行するシステムもまた求められている。
米国特許第5,602,987号 米国特許第6,426,893号 米国特許出願第10/915,039号 米国特許第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/0147278号 米国公開特許出願第2003/0109093号 米国特許出願第10/749,189号 米国特許出願第10/841,118号 米国特許出願第11/016,271号 米国特許第6,763,424号 米国特許出願第10/750,155号 米国特許出願第10/749,831号 米国特許出願第10/917,888号 米国特許出願第10/917,867号 米国特許出願第10/917,889号 米国特許出願第10/917,725号 米国特許出願第10/897,049号 米国特許出願第11/022,369号 米国特許出願第11/040,325号 米国特許出願第11/060,249号 米国特許出願第11/060,174号 米国特許出願第11/060,248号 米国仮特許出願第60/705,388号
メモリが消去済みブロックを使い果たす前にメモリアレイの空間を再生すれば、ホストデータのプログラミングがひどく遅れて制限時間の超過を招くリスクは回避できる。メモリにホストデータが入るにつれ、メモリが満杯になるまでに消去済みブロックが使い果たされないようにメモリアレイの空間を再生する。再生は、消去済みブロックが不足するかなり前に再生が始まるスケジュールに従って行うことができる。再生操作は交互比に従ってホストデータの書き込みと交互に行われるから、再生操作は、長時間かけて一気に行われる代わりに長期間にわたって分散する。この交互比は、残りの全再生書き込みに対する残りの全ホスト書き込みの比となるように算出される。
ファイル本位ホストインターフェイスがメモリをホストへ接続する場合、メモリコントローラは、メモリアレイに記憶されるデータについて正確で最新の情報を得ることができ、メモリが満杯になる前にメモリに書き込むことができる追加のホストデータの量と、メモリが満杯になる前に必要とされる再生の量とから、適切な交互比を推定できる。再生操作を残りの時間の全体にわたって均一に分散することにより、一定レートのホストデータプログラミングを達成する。セクタ本位インターフェイスやその他のインターフェイスを有するメモリの場合、このような推定を果たすための情報がホストから提供されるため、交互比を同様に計算できる。
交互比は間隔を置いて計算でき、あるいはホストによるある程度の記憶データの削除などのトリガイベントがあるときに計算できる。このようにして交互比は適宜更新され、状況の変化に適応する。
再生は様々なモードで様々に管理できる。書き込まれるホストデータと果たされる再生操作との推定に基づく適応再生に加えて、ある程度の低い(またはゼロの)レートで空間を再生する最小再生モードがあってよい。最小再生モードは通常、再生可能な空間に比べて十分な消去済みブロックがある場合に適用する。ある程度の最大レートで空間を交互に再生する最大再生モードもあってよい。最大再生モードは通常、消去済みブロックがほとんどない場合に、つまりメモリがほぼ満杯のときによくある状況に適用する。加えて、ホストコマンドに応じて(交互にではなく)連続的に再生を果たすことができる。ホストコマンドに応じて再生を禁じることもできる。
フラッシュメモリの概説
現在のフラッシュメモリシステムおよびホストデバイスとの典型的な動作を、図1〜8との関係で説明する。このようなシステムで本発明の様々な態様を実施できる。図1のホストシステム1は、フラッシュメモリ2の中にデータを記憶し、かつフラッシュメモリ2からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ2はそれよりも一般的なカードの形で図に示され、このカードは、機械的および電気的コネクタの嵌合部分3および4を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在多く市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および/または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムは類似する。これらのカードはいずれも、本願の譲受人であるサンディスク コーポレイション(SanDisk Corporation) から入手できる。サンディスク コーポレイションはまた、クルーザー(Cruzer)という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス(USB)差込口に差し込まれることによってホストと接続するUSBプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連動して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
このようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。パーソナルコンピュータ(PC)、ラップトップおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、携帯形オーディオプレイヤ等が含まれる。ホストは通常ならば1種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、一部のホストはメモリカードを差し込むアダプタを要する。
図1のホストシステム1は、メモリ2が接続される限りにおいて、回路とソフトウェアとの組み合わせからなる、2つの主要部分を有するものとみなすことができる。それらはアプリケーション部5と、メモリ2と連動するドライバ部6である。例えばパーソナルコンピュータの場合、アプリケーション部5は、ワープロ、グラフィック、コントロールまたはその他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話、または専ら1組の機能を遂行するためのその他のホストシステムの場合、アプリケーション部5は、写真を撮影したり記憶したりするためにカメラを動作させる、電話をかけたり受けたりするために携帯電話を動作させる、ソフトウェアを含む。
図1のメモリシステム2はフラッシュメモリ7および回路8を含み、回路はいずれも、データをやり取りし、かつメモリ7を制御するため、カードの接続先にあたるホストと連動する。コントローラ8は通常、データのプログラミングと読み出しの際にホスト1によって使用されるデータの論理アドレスとメモリ7の物理アドレスとの変換を行う。
図2を参照し、図1の不揮発性メモリ2として使用できる典型的フラッシュメモリシステムの回路が説明される。システムコントローラは普通、システムバス13沿いに1つ以上の集積回路メモリチップと並列で接続される単一集積回路チップ11上で実施され、図2にはただひとつのこのようなメモリチップ15が示されている。図に示された特定のバス13は、データを搬送する1セットの導体17と、メモリアドレスのためのセット19と、制御および状態信号のためのセット21とを含む。あるいは、これらの3機能の間で1セットの導体を時分割共用できる。さらに、2004年8月9日に出願された米国特許出願第10/915,039号「リングバス構造とフラッシュメモリシステムにおけるその使用(Ring Bus Structure and It's Use in Flash Memory Systems) 」(特許文献3)で説明されているリングバスなど、これとは別のシステムバス構成を使用できる。
典型的コントローラチップ11は、インターフェイス回路25を通じてシステムバス13と連動する独自の内部バス23を有する。このバスへ通常接続される主要機能には、プロセッサ27(例えば、マイクロプロセッサまたはマイクロコントローラ)と、システムを初期化(「ブート」)するためのコードを収容する読み出し専用メモリ(ROM)29と、主にメモリとホストとの間で転送されるデータをバッファするために使われるランダムアクセスメモリ(RAM)31と、コントローラを通じてメモリとホストとの間を行き来するデータのために誤り訂正符号(ECC)を計算し検査する回路33とがある。コントローラバス23は回路35を通じてホストシステムと連動し、これは、メモリカードに収容される図2のシステムの場合、コネクタ4の一部をなすカードの外部接点37を通じて果たされる。クロック39は、コントローラ11の他のコンポーネントの各々に接続され、他のコンポーネントの各々によって利用される。
メモリチップ15と、システムバス13に接続される他のメモリチップは通常、複数のサブアレイまたはプレーンに編制されたメモリセルアレイを収容し、簡潔を図るために2つのこのようなプレーン41および43が図に示されているが、これよりも多い、例えば4つ、または8つの、このようなプレーンを代わりに使用することもできる。あるいは、チップ15のメモリセルアレイはプレーンに分割しなくともよい。しかし、分割するなら、各々のプレーンは互いに独立して動作できる独自の列制御回路45および47を有する。回路45および47は、システムバス13のアドレス部19からそれぞれのメモリセルアレイのアドレスを受け取り、それぞれのビット線49および51のうちの、特定の1つ以上のビット線をアドレス指定するため、それらを復号化する。ワード線53は、アドレスバス19で受け取るアドレスに応じて行制御回路55を通じてアドレス指定される。ソース電圧制御回路57および59もまたそれぞれのプレーンに接続され、pウェル電圧制御回路61および63も同様である。メモリチップ15がただひとつのメモリセルアレイを有し、2つ以上のこのようなチップがシステムに存在する場合、各チップのアレイは、前述したマルチプレーンチップ内のプレーンまたはサブアレイと同様に動作させることができる。
データは、システムバス13のデータ部17に接続されたそれぞれのデータ入出力回路65および67を通じてプレーン41および43を出入りする。回路65および67は、それぞれの列制御回路45および47を通じてプレーンへ接続する線69および71を通じて、メモリセルの中にデータをプログラムし、かつそれぞれのプレーンのメモリセルからデータを読み出すためにある。
コントローラ11は、データをプログラムし、読み出し、消去し、かつ様々なハウスキーピング作業に応対するためにメモリチップ15の動作を制御するが、各々のメモリチップもまた、このような機能を遂行するためにコントローラ11からのコマンドを実行する何らかの制御回路を収容する。インターフェイス回路73はシステムバス13の制御および状態部21へ接続される。コントローラからのコマンドは状態マシン75へ提供され、状態マシンは、これらのコマンドを実行するために他の回路の特定の制御も提供する。制御線77〜81は、図2に示す他の回路に状態マシン75を接続する。状態マシン75からの状態情報は、バス部21に沿ってコントローラ11へ送信するため、ライン83に沿ってインターフェイス73へ伝達される。
現在はメモリセルアレイ41および43のNANDアーキテクチャが好まれているが、NORなどの他のアーキテクチャを代わりに使用することもできる。NANDフラッシュメモリおよびメモリシステムの一部としてのこれの動作の例が、米国特許第5,570,315号(特許文献4)、第5,774,397号(特許文献5)、第6,046,935号(特許文献6)、第6,373,746号(特許文献7)、第6,456,528号(特許文献8)、第6,522,580号(特許文献9)、第6,771,536号(特許文献10)、および第6,781,877号(特許文献11)ならびに米国公開特許出願第2003/0147278号(特許文献12)を参照することによって得られる。
図2のメモリシステムのメモリセルアレイ41の一部分にあたる図3の回路図には、NANDアレイの例が示されている。多数のグローバルビット線が提供されるが、説明の簡潔を図るため、図3には4つのこのような線91〜94だけが示されている。これらのビット線の1ビット線と基準電位との間には、いくつかの直列接続メモリセルストリング97〜104が接続される。メモリセルストリング99を代表として使用し、ストリングの両端にある選択トランジスタ111および112には複数の電荷記憶メモリセル107〜110が直列で接続される。1ストリングの選択トランジスタが通電すると、ストリングがそのビット線と基準電位との間で接続される。次いで、そのストリングの中で一度に1つのメモリセルがプログラムされ、または読み出される。
図3のワード線115〜118は、数々のメモリセルストリングの各々で1つのメモリセルの電荷記憶素子にわたって個別に延在し、ゲート119および120は、ストリングの各末端にある選択トランジスタの状態を制御する。共通のワードおよびコントロールゲート線115〜120を共用するメモリセルストリングは、ともに消去されるメモリセルのブロック123を形成する。このセルからなるブロックは、一度に物理的に消去できる最小数のセルを収容する。ワード線115〜118の1ワード線沿いの1行のメモリセルが一度にプログラムされる。通常、NANDアレイの行は規定の順序でプログラムされ、この場合は、接地または共通電位へ接続されたストリングの末端に最も近いワード線118沿いの行から始まる。次にワード線117沿いのメモリセル行がプログラムされ、ブロック123の全体を通じて同様に進むなどである。最後にワード線115沿いの行がプログラムされる。
第2のブロック125は類似し、そのメモリセルストリングは第1のブロック123のストリングと同じグローバルビット線へ接続されるが、異なる1組のワード線およびコントロールゲート線を有する。ワード線およびコントロールゲート線は、行制御回路55によって適切な動作電圧まで駆動される。図2のプレーン1および2のような、2つ以上のプレーンまたはサブアレイがシステムにある場合、それらの間に延在する共通ワード線を1つのメモリアーキテクチャで使用する。代わりに、共通ワード線を共用する3つ以上のプレーンまたはサブアレイがあってもよい。別のメモリアーキテクチャでは、個々のプレーンまたはサブアレイのワード線が別々に駆動される。
前に参照されているNAND特許および公開特許出願のいくつかで説明されているように、3つ以上の検出可能な電荷レベルを各電荷記憶素子または領域に記憶するようメモリシステムを動作させることができ、これにより2ビット以上のデータを各々に記憶する。メモリセルの電荷記憶素子は一般的には導電性フローティングゲートであるが、代わりに米国公開特許出願第2003/0109093号(特許文献13)で説明される非導電性誘電性電荷捕獲材であってもよい。
図4は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ7(図1)の編制を概念的に示している。1つの集積メモリセルチップ、2つのチップ(各チップ上のプレーンのうちの2つ)、または4つの別々のチップの上に、メモリセルの4つのプレーンまたはサブアレイ131〜134があってよい。具体的な配置は以降の説明にとって重要でない。もちろん、1、2、8、16以上などの、これ以外の数のプレーンがシステムの中にあってもよい。プレーンは、それぞれのプレーン131〜134に位置するブロック137、138、139、および140の矩形によって図4に示すメモリセルブロックに各々分割される。各プレーンには何十、何百ものブロックがあってよい。前述したように、メモリセルのブロックは消去の単位、すなわちともに物理的に消去できる最小数のメモリセルである。しかし、並列性を高めるためには、これよりも大きいメタブロック単位でブロックを操作する。各プレーンから1つのブロックが論理的にリンクされることによってメタブロックを形成する。4つのブロック137〜140によって1つのメタブロック141が形成される様子が図に示されている。通常ならば、1メタブロック内の全てのセルが一緒に消去される。ブロック145〜148からなる第2のメタブロック143に見られるように、メタブロックを形成するように使用されるブロックを、それぞれのプレーンの中の同じ相対的位置に制限する必要はない。通常は全てのプレーンにわたってメタブロックを延在させるのが好ましいが、高いシステム性能のためには、異なるプレーンにある1つ、2つ、または3つのブロックのいずれかまたは全部からなるメタブロックを動的に形成する能力を用いてメモリシステムを操作することができる。これにより、1回のプログラミング操作で記憶のために使用できるデータ量にメタブロックのサイズをより近づけることが可能となる。
個々のブロックはさらに、動作上の目的のため、図5に示すようにメモリセルのページに分割される。例えば、ブロック131〜134の各々のメモリセルは8つのページP0〜P7に各々分割されている。代わりに、16、32、またはそれ以上のメモリセルページが各ブロックの中にあってよい。ページは、ブロックの中でデータをプログラムし読み出す単位であり、一度にプログラムされる、または読み出される、最少量のデータを収容する。図3のNANDアーキテクチャでは、ブロックの中でワード線沿いのメモリセルからページが形成されている。しかし、メモリシステムの動作上の並列性を高めるために、2つ以上のブロックの中にあるこのようなページをメタページの中に論理的にリンクできる。図5には、4つのブロック131〜134の各々にある1つの物理ページから形成されたメタページ151が示されている。メタページ151は、例えば4つのブロックの各々にあるページP2を含むが、メタページのページは、ブロックの各々の中で同じ相対的位置になくてもよい。全4つのプレーンにわたって最大量のデータを並行してプログラムし読み出すことが望ましいが、高いシステム性能のため、異なるプレーンの中にある別々のブロックの1つ、2つ、または3つのページのいずれかまたは全てからメタページを形成するべくメモリシステムを操作することもできる。これにより、並行して簡便に扱えるデータ量にプログラミングおよび読み出し動作を適合させることができ、さらにデータがプログラムされない部分がメタページに残る機会は減る。
図5に示す複数のプレーンの物理ページからなるメタページは、それらの複数のプレーンのワード線行に沿ってメモリセルを収容する。1つのワード線行にある全てのセルを同時にプログラムするよりは、2つ以上のインターリーブされたグループでそれらを交互にプログラムするほうがむしろ一般的であり、各グループは、(単一ブロック内の)1ページのデータまたは(複数のブロックにまたがる)1メタページのデータを記憶する。交互のメモリセルを一度にプログラムすることにより、データレジスタやセンス増幅器を含むひとまとまりの周辺回路を各ビット線のために用意する必要はなく、むしろ隣接するビット線の間で時分割共用される。これは、周辺回路に要する基板空間の量を節約し、メモリセルの行沿いの実施密度を増やすことができる。さもなくば、所与のメモリシステムから最大限の並列性を引き出すために、行沿いの全セルを同時にプログラムするのが望ましい。ほとんどのデータ管理目的で、メタブロックおよびメタページはブロックおよびページと同様に扱うことができる。メタブロックおよびメタページに関して本願に提示される例は概して、消去およびプログラミングの単位としてブロックとページとをそれぞれ使用するメモリにも当てはまる。同様に、ブロックとページに関して提示される例は概して、メタブロックとメタページとを使用するメモリにも当てはまる。
非常に大きい消去ブロックを伴うメモリアレイの操作を効率的に制御するにあたって1つの課題となるのは、所与の書き込み操作のときに記憶されるデータセクタの数を、メモリのブロックの容量に一致させ、その境界に整合させることである。1つのアプローチでは、メタブロック全体を埋め尽くす量に満たない一定量のデータを記憶するのに必要なため、ホストからの新規データの記憶するのに使うメタブロックを、最大ブロック数未満で適宜構成する。適応メタブロックの使用が、2003年12月30日に出願された米国特許出願第10/749,189号「適応メタブロック(Adaptive Metablocks) 」(特許文献14)で説明されている。データブロック間の境界とメタブロック間の物理的境界の整合は、2004年5月7日に出願された米国特許出願第10/841,118号(特許文献15)、2004年12月16日に出願された米国特許出願第11/016,271号「データランプログラミング(Data Run Programming)」(特許文献16)で説明されている。
図3を参照し、行沿いの互い違いのメモリセルへのデータの同時プログラミングを最も簡便に果たすには、NANDストリングの少なくとも一端に沿って2行の選択トランジスタ(図示せず)を、図に示された1行の代わりに、提供することである。この場合、一方の行の選択トランジスタは、1つの制御信号に応じてブロック内の互い違いのストリングをそれぞれのビット線へ接続し、他方の行の選択トランジスタは、別の制御信号に応じて介在する互い違いのストリングをそれぞれのビット線へ接続する。したがって、メモリセルの各行には2ページ分のデータが書き込まれる。
各論理ページのデータ量は通常、1つ以上の整数のデータセクタ数であって、各セクタは慣例上512バイトのデータを収容する。図6は、1ページまたはメタページの、2つのデータのセクタ153および155からなる論理データページを示している。各セクタは普通、512バイトのユーザデータまたはシステムデータが記憶される部分157と、部分157にあるデータまたはこれを記憶する物理ページまたはブロックに関係するオーバーヘッドデータのための別のバイト数159を収容する。オーバーヘッドデータのバイト数は通常ならば16バイトであり、セクタ153および155の各々につき合計528バイトになる。オーバーヘッド部分159は、プログラミング中にデータ部分157から算出されるECC、その論理アドレス、ブロックが消去され再プログラムされる回数の経験カウント、1つ以上の制御フラグ、動作電圧レベル等に加え、このようなオーバーヘッドデータ159から算出されるECCを収容できる。代わりに、オーバーヘッドデータ159またはオーバーヘッドデータ159の一部分は、他のブロックの別のページに記憶できる。
メモリの並列性が高まるにつれメタブロックのデータ記憶容量は増し、その結果、データページおよびメタページのサイズも増す。データページは3セクタ以上のデータを収容できる。1データページ内に2つのセクタと、各メタページにつき2つのデータページとで、1メタページ内のセクタは4つになる。よって、各メタページは2,048バイトのデータを記憶する。これは高度な並列性であり、行内のメモリセル数の増加にともないさらに高めることができる。このため、ページおよびメタページ内のデータ量を増やすために、フラッシュメモリの幅が拡大されつつある。前述した物理的に小さい再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは市販され、データ記憶容量は512メガバイト(MB)、1ギガバイト(GB)、2GB、4GB以上になる。
図7は、ホストとこのような大容量メモリシステムとの間の一般的なインターフェイスを示している。ホストは、ホストによって実行されるアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。ワープロデータファイルはその一例であり、コンピュータ支援設計(CAD)ソフトウェアの描画ファイルもこれにあたり、主にPC、ラップトップコンピュータ等、一般的なコンピュータホストに見られる。pdf形式の文書もこのようなファイルである。静止画デジタルビデオカメラは各写真につきデータファイルを生成し、データファイルはメモリカードに記憶される。携帯電話は、電話帳などの内蔵メモリカード上のファイルからデータを利用する。PDAは、住所ファイル、カレンダーファイル等、数通りのファイルを記憶し使用する。このような用途において、メモリカードはホストを操作するソフトウェアを収容することもある。
図7で、連続する論理アドレス空間161は、メモリシステムに記憶される全データのためのアドレスを提供するにあたって十分に大きい。通常、論理アドレス空間はメモリアレイの物理アドレス空間よりいくぶん小さいから、メモリアレイにはある程度の余分な空間がある。ホスト論理アドレス空間は通常、データクラスタの単位に分割される。所与のホストシステムにおいて、いくつかのデータセクタを収容するように各クラスタを設計でき、4から64セクタあたりが一般的である。標準的なセクタは512バイトのデータを収容する。
図7の例では、3つのファイル1,2,および3が作成されたものとして示されている。ホストシステムで実行するアプリケーションプログラムは、整列された1組のデータとして各ファイルを作成し、一意な名前またはその他の参照符によってこれを識別する。ファイル1にはホストによって、他のファイルにまだ割り振られていない十分に使用可能な論理アドレス空間が、割り当てられる。ファイル1は、一連の使用可能な論理アドレス範囲が割り当てられた状態で示されている。このほかに通常ならば、ホストオペレーティングソフトウェアのための特定の範囲などの、特定の目的のためにアドレス範囲が割り振られ、これらのアドレス範囲は、たとえホストがデータに論理アドレスを割り当てようとするときに、これらのアドレスがまだ利用されていなくとも、データの記憶にあたって回避される。
ホストは同様に、後ほどホストによってファイル2が作成されるときに、論理アドレス空間161の中の2つの異なる連続アドレス範囲を、図7に示すように割り当てる。ファイルに連続する論理アドレスを割り当てる必要はなく、すでに他のファイルに割り振られているアドレス範囲の間にあるアドレスの断片であってもよい。この例はさらに、ホストによって作成されたもうひとつのファイル3に、ファイル1および2やその他のデータにまだ割り振られていないホストアドレス空間の別の部分が割り振られる様子を示している。この例で、ファイル1、ファイル2、およびファイル3にはいずれも、共通論理アドレス空間(論理アドレス空間161)の一部分が割り当てられる。
ホストは、ファイルアロケーションテーブル(FAT)を保守することによってメモリ論理アドレス空間を絶えず把握し、このファイルアロケーションテーブルでは、ホストが様々なホストファイルに割り当てる論理アドレスが保守される。FATテーブルは通常、ホストメモリと同様に不揮発性メモリに記憶され、新しいファイルが記憶されるとき、他のファイルが削除されるとき、ファイルが修正されるとき等に、ホストによって頻繁に更新される。ホストは、例えばホストファイルが削除されるときに、FATテーブルを更新することによって削除ファイルに前に割り振られていた論理アドレスを解除して、それらの論理アドレスを別のデータファイルに使用できることを明らかにする。
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置を顧慮しない。典型的なホストは、その論理アドレス空間と、これがその各種ファイルに割り振った論理アドレスだけを認識する。他方、メモリシステムは、典型的なホスト/カードインターフェイスを通じて、データが書き込まれた論理アドレス空間部分だけを認識し、特定のホストファイルへ割り振られる論理アドレスは認識せず、ホストファイルの数すら認識しない。メモリシステムコントローラは、データの記憶や引き出しのためのホストから提供される論理アドレスを、ホストデータが記憶されるフラッシュメモリセルアレイの中の一意の物理アドレスに変換する。ブロック163は、メモリシステムコントローラによって保守される論理−物理アドレス変換の作業テーブルを表している。
メモリシステムコントローラは、システムの性能を高い水準に維持しながらメモリアレイ165のブロックおよびメタブロックの中でデータファイルを記憶する形にプログラムされる。この例証では4つのプレーンまたはサブアレイが使われている。データは好ましくは、各プレーンのブロックから形成されたメタブロック全体にわたってシステムが許容する最大限の並列度でプログラムされ、読み出される。通常は、メモリコントローラによって使用されるオペレーティングファームウェアおよびデータを記憶する予約ブロックとして、少なくとも1つのメタブロック167が割り振られる。そして、ホストオペレーティングソフトウェアやホストFATテーブル等の記憶のため、別のメタブロック169または複数のメタブロックを割り振ることができる。物理記憶空間のほとんどはデータファイルの記憶のために残る。しかし、メモリコントローラは、様々なファイルオブジェクトの中で受信データがホストによってどのように割り振られたかを認識しない。通常、メモリコントローラがホストとのやり取りを通じて知ることの全ては、ホストによって特定の論理アドレスに書き込まれるデータが対応する物理アドレスに記憶されるということだけであり、これはコントローラの論理−物理アドレステーブル163によって保守される。
典型的なメモリシステムにおいては、アドレス空間161の中でデータを記憶する必要があるのとは別に数ブロック分の記憶容量が余分に用意される。メモリの寿命の中で他のブロックが欠陥となった場合に代用される冗長ブロックとして、これらの余分なブロックを1つ以上用意することができる。当初メタブロックに割り当てられていた欠陥ブロックのための冗長ブロックを代用する等、個々のメタブロックの中に収容されるブロックの論理的グループ分けは通常、様々な理由から変更される。消去済みブロックのプールでは、メタブロック171などの、1つ以上の補助的ブロックが通常保守される。ホストがメモリシステムにデータを書き込む場合、コントローラはホストによって割り当てられた論理アドレスを、消去済みブロックプールにあるメタブロックの中の物理アドレスに変換する。次いで、論理アドレス空間161の中でデータを記憶するために使われていない他のメタブロックは消去され、以降のデータ書き込み操作のときに使用するため消去済みプールブロックとして指定される。
特定のホスト論理アドレスに記憶されたデータは、新規のデータによって頻繁に上書きされ、当初の記憶データが用済みになる。これに応じてメモリシステムコントローラは新規のデータを消去済みブロックに書き込み、データを論理アドレスに記憶する新しい物理ブロックを明らかにするために、それらの論理アドレスの論理−物理アドレステーブルを変更する。次いで、それらの論理アドレスのところで当初のデータを収容するブロックは消去され、新規のデータの記憶のために使用できるようになる。通常、書き込みが始まるときに消去ブロックプールの事前に消去済みのブロックに十分な記憶容量がない場合は、この消去を進行中のデータ書き込み操作が完了する前に行わなければならない。これはシステムのデータプログラミング速度を損なうおそれがある。メモリコントローラは通常、ある特定の論理アドレスにあるデータが用済みになっていることを、ホストがそれと同じ論理アドレスに新しいデータを書き込むときに初めて知る。したがって、メモリのブロックの多くは、そのような無効データを暫くの間記憶している可能性がある。
集積回路メモリチップの領域を効率よく運用するためにブロックとメタブロックのサイズは拡大している。その結果、個々のデータ書き込みの大部分で記憶されるデータの量はメタブロックの記憶容量に満たなく、多くの場合、ブロックの記憶容量にすら満たない。メモリシステムコントローラは普通、新規のデータを消去済みプールのメタブロックに誘導するから、メタブロックには埋まらない部分が生じる。新規のデータが別のメタブロックに記憶されたデータの更新である場合、別のメタブロックにある、新規のデータメタページの論理アドレスと連続する論理アドレスを持つ、残りの有効データメタページもまた、望ましくは論理アドレスの順序で新しいメタブロックにコピーされる。古いメタブロックは、他の有効データメタページを保持することがある。その結果、個々の特定のメタブロックのメタページのデータはいずれ用済み、無効になり、新規のデータによって置き換えられ、同じ論理アドレスが異なるメタブロックに書き込まれることになる。
論理アドレス空間161の全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するため、用済みデータで占められたメモリ部分はガーベッジコレクション操作で再生できる。有効データを収容するブロックに消去済みの空間がある場合には、整理統合によって消去済みの空間を再生することもでき、その有効データをより少数のブロックに整理統合することにより消去済みブロックプールにブロックを加えることができる。こうしてブロックは、メモリ空間を再使用に向けて再生するため、ガーベッジコレクションまたは整理統合の対象となる。メタブロックの中でデータセクタをできる限り論理アドレスと同じ順序に保つことも望ましい。というのは、こうすれば連続する論理アドレスでデータをより効率的に読み出すことができる。よって、通常は、このさらなる目的のためにもデータの整理統合とガーベッジコレクションとが行われる。米国特許第6,763,424号(特許文献17)には、不完全ブロックデータ更新を受け取るときのメモリ管理とメタブロック使用の態様がいくつか記載されている。本願ではガーベッジコレクションと整理統合を「再生」と総称し、ガーベッジコレクションまたは整理統合の一部として遂行される操作を「再生操作」と呼ぶ。
再生の例
ガーベッジコレクションのときには、論理アドレス範囲が連続しているかまたはほぼ連続している有効データのページが、用済みデータを収容する1つ以上のコピー元ブロックから回収され、コピー先ブロックへ再度書き込まれる。このコピー先ブロックは消去済みブロックプールの中にあるものであってよく、またはある程度の有効データを収容するものであってよい。1つ以上のコピー元ブロックから全ての有効データメタページがコピーされたら、先々の使用に向けてそれらを消去できる。図8Aおよび8Bは代表的なガーベッジコレクション操作を示している。図8Aは、ブロック1のページ0〜2にある有効データX、X+1、およびX+2がブロック1からブロック3へコピーされ、ブロック2のページ1から有効データX+3がブロック3へコピーされる様子を示している。データX、X+1、X+2、およびX+3がブロック3へコピーされた後、ブロック1および2は、直ちに消去できるブロックのプールへ加えることができ、通常ならばその後間もなく消去される。図8Bはこのガーベッジコレクションの後の状況を示し、ブロック1および2は消去され、ブロック3にはデータが入っている。このガーベッジコレクション操作の結果、ブロック1および2は消去済みブロックプールに加わるが、ブロック3はもはや消去済みブロックプールにないから、消去済みブロックプールは1ブロック分増加する。これを果たすため、データX、X+1、X+2、およびX+3はコピーされる。この例のデータ単位はページの内容に等しく、1つ以上のデータセクタを収容できる。代わりに、データは論理的なセクタ単位になってなくともよく、その場合、ページの内容は均一サイズの個別にアドレス指定可能な単位を有さなくてよい。同様に、他の再生操作の例は、論理的にアドレス指定可能なセクタ単位になったデータ、または他の何らかの形式になったデータに当てはまる。この例で、データX、X+1、X+2、およびX+3は、それらがブロック3にて順次に記憶されるようにコピーされる。これとは別の例では、データのコピー先にあたるブロックでデータは順次に記憶されない。
図9Aおよび9Bはもうひとつのガーベッジコレクションの例を示している。ここでは、ページ0および2に用済みデータを収容するブロック2から、有効データだけを収容するブロック1にかけて有効データYがコピーされる。Yがコピーされた後、ブロック2には用済みデータだけが残るから、ブロック2は消去される。図9Bはガーベッジコレクションの後の状況を示し、データYはブロック1の予め消去されていたブロック1のページ3に記憶され、ブロック2は消去されている。よって、この例では、消去済みブロックプールのブロックは必要とされない。データYがメモリアレイの1ページを満たすデータ量なら、この操作でただひとつのページがコピーされ、1つのブロックが消去され、結果的に1つの追加の消去ブロックが消去済みブロックプールに加わる。この例で、データYとデータX、X+1、X+2に論理的な関係はない。これ以外の例では、データを、論理的に関係するデータを収容するブロックへコピーできる。
データ圧縮はガーベッジコレクションの特定の形であり、通常ならばブロックから全ての有効データページを読み出し、それらを新しいブロックへ書き込み、その過程で無効データを含むページは無視する。また、有効データを含むページは好ましくは、そこに記憶されるデータの論理アドレスの順序に一致する物理アドレス順で配置される。非順次(無秩序)形式でデータを記憶するブロックにデータ圧縮を行うので、圧縮後にデータを順次形式で記憶することもできる。用済みデータを収容するページは新しいブロックへコピーされないから、新しいブロックに占めるページ数は古いブロックに占めるページ数を下回る。次いで、古いブロックは消去され、新規データの記憶のために使用できるようになる。この整理統合によって得られる追加のページ容量は、他のデータの記憶に役立てることができる。
図10Aおよび10Bはデータ圧縮の一例を示している。図10Aはデータで満たされたブロック1を示し、データのいくつかは用済みであり、いくつかは有効である。ブロック1に記憶されるデータは順番に並んでいない。ブロック1は、米国特許出願第10/750,155号(特許文献18)で説明されているものなど、一部のメモリ設計で使われている無秩序(chaotic) 更新ブロックの典型である。ブロック1のページ2および3は有効データのコピーZ+1およびZ+2を収容し、ページ0および1は用済みデータのコピーを収容する。無秩序更新ブロックが限られた論理アドレス範囲にマッピングされる場合、ブロックは満杯になると圧縮されるので、そのブロックの論理アドレス範囲の中でさらなる更新が可能となる。図10Bは圧縮後の状況を示している。ブロック1のページ2および3の有効データZ+1およびZ+2はブロック2へコピーされ、順次に記憶されるように配置される。データを順次に記憶することの一利点として、異なるセクタ位置のインデックスを保守する必要はなく、このようなインデックスの保守にともなうオーバーヘッドは抑えられる。ブロック2は、追加データの記憶に使用できる消去済みの空間をページ2および3に収容する。有効データが全てブロック2へコピーされ、消去された後のブロック1が図に示されている。圧縮の結果、消去済みブロックプールの消去済みブロック数に変わりはないが、前にはなかった空間がブロック2にあり、データの書き込みに使用できる。この圧縮を達成するために2つのページからデータがコピーされる。
データの記憶空間を用意するためにデータの整理統合を使用できる。一部のメモリシステムでは、メモリの消去済みの空間が、有効データをも収容するブロックの中で細かく分散してすべては使えない場合がある。受信する新規のデータが、データをプログラムするための十分な空間があるブロックの記憶データと論理的な関係を持たない場合には、部分的に満たされたブロックではなく消去済みブロックにこれをプログラムするのが望ましい。記憶済みのデータと論理的な関係を持たないこのような新規データは通常、消去済みブロックプールにある消去済みブロックに記憶される。ある程度の時間が経つと、論理的に無関係な新規のデータには使用できない消去済みの空間を有する複数のブロックが発生することがある。これは空間の浪費を招く。このような部分的に書き込まれたブロックの有効データは併合できる。例えば、消去済みの空間を持つ2つのブロックの有効データを併合できるので、併合された消去済みの空間から消去済みブロックが形成される。
図11Aはページ0〜2にデータX、X+1、およびX+2を収容するブロック1を示し、ブロック2はページ0にデータYを収容する。データYは、データX、X+1、およびX+2に対し論理的な関係を持たない。ブロック1のデータX+2に連続する、またはブロック2のデータYに連続する、さらなるデータが受信されるか否かを確かめるため、ブロック1および2は、暫くの間消去済みの空間をある状態に保つことができる。さらなる連続するデータが受信されずに何らかのしきい値時間が過ぎると、または他の何らかの条件が満たされると、整理統合に向けてブロック1および2をマークできる。整理統合にまわせるブロックのリストを保守でき、それらのブロックに収容された有効データの量に従ってリストからブロックを選択できるので、それらの有効データが併合されることにより、1ブロックが満たされるかまたは満たされた状態に近づく。図11Bは、整理統合後のブロック1および2を示している。データYはブロック1へコピーされ、ブロック2は消去されている。この整理統合では、消去済みブロックプールへブロックを加えるために、1ページ分のデータ(ブロック2のページ0にあるデータY)をコピーするだけでよい。通常はコピー数を抑える形で整理統合を行うのが望ましいから、データX、X+1、およびX+2をブロック2へコピーする代わりに、データYをブロック1にコピーする。
データの整理統合とガーベッジコレクションには時間がかかり、データの整理統合またはガーベッジコレクションをホストからのコマンドを実行する前に行う必要がある場合は特に、メモリシステムの性能に影響する。メモリシステムコントローラは普通、このような操作を可能な限りバックグラウンドで行うようスケジュールするが、これらの操作を遂行する必要から、コントローラは、このような操作が完了するまではビジー状態信号をホストに提供しなければならない。例えば、ホストがメモリに書き込もうとするデータの全てを記憶するにあたって十分な事前に消去済みのメタブロックが消去済みブロックプールにない場合には、ホストコマンドの実行が延期されるから、まずはデータの整理統合またはガーベッジコレクションで1つ以上の有効データのメタブロックを片づける必要があり、その後にそれらのメタブロックを消去できる。したがって、このような混乱を最小限に抑えるためにメモリ制御の管理に注意を払わなければならない。以下の米国特許出願では、このような手法が数多く説明されている。これらの米国特許出願とは、2003年12月30日に出願された米国特許出願第10/749,831号「大きい消去ブロックを有する不揮発性メモリシステムの管理(Management of Non-Volatile Memory Systems Having Large Erase Blocks) 」(特許文献19)、2003年12月30日に出願された米国特許出願第10/750,155号「ブロック管理システムを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Block Management System) 」(特許文献18)、2004年8月13日に出願された米国特許出願第10/917,888号「メモリプレーンアラインメントを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Memory Planes Alignment) 」(特許文献20)、2004年8月13日に出願された米国特許出願第10/917,867号(特許文献21)、2004年8月13日に出願された米国特許出願第10/917,889号「段階的プログラム障害処理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Phased Program Failure Handling) 」(特許文献22)、および2004年8月13日に出願された米国特許出願第10/917,725号「制御データ管理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Control Data Management) 」(特許文献23)である。
メモリコントローラはまた、ホストによって不揮発性メモリに記憶されるFATテーブルのデータをメモリシステムの効率的な動作に役立てることもできる。例えば、論理アドレスの解除によりホストによってデータが用済みと識別されたことを知るのに役立てる。メモリコントローラは、通常ならばホストがその論理アドレスに新規データを書き込むことで、データが用済みと識別されたことを事前に知ることができ、このような無効データを収容するブロックの消去スケジュールを立てることができる。これは、2004年7月21日に出願された米国特許出願第10/897,049号「不揮発性メモリシステムでデータを保守する方法および装置(Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems)」(特許文献24)で説明されている。この他の手法として、ホストがメモリに新規のデータを書き込むパターンを監視することにより、所与の書き込み操作が単一ファイルか否かを、または複数のファイルである場合にはファイル間のどこに境界があるかを推定する。2004年12月23日に出願された米国特許出願第11/022,369号「最適逐次クラスタ管理のためのFAT解析(FAT Analysis for Optimized Sequential Cluster Management)」(特許文献25)では、この種の手法の使用が説明されている。
メモリシステムを効率よく操作するには、ホストによって個々のファイルのデータに割り当てられる論理アドレスについて、コントローラができるだけ多くのことを知ることが望ましい。かくしてデータファイルは、ファイルの境界が分からなければ多数のメタブロックに散在するところを、コントローラによって1つのメタブロックまたは1グループのメタブロックの中で、記憶することができる。その結果、データの整理統合およびガーベッジコレクション操作の回数と複雑さは抑えられる。結果的にメモリシステムの性能は向上する。しかし、前述したように、ホスト/メモリインターフェイスが論理アドレス空間161(図7)を含む場合、メモリコントローラがホストデータファイル構造について多くを知ることは困難である。
論理アドレス本位インターフェイスを伴う再生
図12は、図7のホスト/メモリインターフェイスの、ファイルが削除されるときの動作を示している。ホストシステムで実行するアプリケーション201は、メモリにてファイル2を削除するべきと判断する。例えば、PCで実行するアプリケーション201は、ユーザ入力に基づき、または他の理由により、ファイル2がもはや必要でないと判断する。その結果、アプリケーションはファイル2を削除する命令をホストのドライバ部へ送信する。この場合は、メモリに記憶される各ファイルに使われる論理アドレスを指示するためにFATを用いてデータ記憶が管理される。例えば、2つの別々の論理アドレス範囲203および205を有するものとしてファイル2が図に示されている。各々の論理アドレス範囲203および205は、複数の連続するクラスタを含むことがある。ファイル2は2つの別々の論理アドレス範囲203および205を有するものとして図に示されているが、ファイルが多数の論理アドレス範囲に断片化され、介在する論理アドレスに他のファイルがマッピングされることは多々ある。ファイル2を削除する命令の結果としてFATは修正されるので、ファイル2に割り振られていた論理アドレス範囲203および205のクラスタは解除され、ホストによる以降の割り振りに使用できるようになる。しかし、通常、ホストのFATにおけるこれらのクラスタの解除にともない、メモリコントローラによって使用されるメモリ管理構造は変更されない。論理−物理アドレス翻訳163はメモリコントローラによって保守されるテーブルを含み、テーブルには、データクラスタを記憶する物理アドレスが記録される。アドレス範囲203および205は物理アドレス範囲209および211へそれぞれマッピングされる。この記録は、アプリケーションからの「ファイル2削除」コマンドの結果として変更されない。よって、テーブルは、論理アドレス範囲203および205の項目を維持する。また、対応する物理位置209および207はデータで埋められた状態を保つが、このデータはアプリケーションによってもはや必要とされない。メモリコントローラは通常、論理アドレス範囲203および205の論理−物理アドレス翻訳を、これらのアドレスを持つ新規のデータがホストによって送信されるときに限り、変更する。メモリコントローラはクラスタの解除を知らないから、通常ならば各論理アドレスにつき少なくとも1つの項目は維持し、それ故、論理アドレス範囲全体を占拠されたものとみなす。通常、メモリの論理アドレス範囲より多くの物理空間があるから、たとえ見かけ上の有効なデータで論理アドレス範囲全体が満たされていても、消去済みの空間または用済みデータで占められた空間は余分にある。
図13は、メモリにホストデータが書き込まれるにつれてメモリアレイの物理空間がどのように管理されるかを例示するものである。物理空間は有効データでほぼ満たされたものとして扱われ、これは全論理アドレス範囲に相当する。メモリに残された空間は、消去済みの空間および用済みデータで占められた空間とからなる。メモリアレイへホストデータがプログラムされるにつれ、用済みデータで占められる空間の量は図に示されたように増加する。というのは、ある特定の論理アドレスとともに受信された新規セクタは新しい物理位置に記憶され、論理−物理アドレス翻訳163に記録されるからである。これは、同じ論理アドレスを持つ記憶済みセクタに取って代わる。次いで、記憶済みセクタは用済みとなり、記憶済みセクタの物理位置は用済みデータを収容するものとして記録される。用済みデータの量が増えるにつれて消去済みの空間は減る。ある時点で、ホストデータのプログラミングを続行するのに十分な消去済みの空間はなくなる。図13は、時点t1でメモリに消去済みの空間が残っていない状態を示している。よって、時点t1で、メモリアレイにはそれ以上ホストデータをプログラムできない。これとは別の例では、メモリアレイに残る消去済みの空間がある程度の最小量になった時点でプログラミングが停止する。時点t1では、用済みデータで占められた空間を再生するためにガーベッジコレクション操作が始まる。この操作は、時点t2で全ての用済みの空間が再生されて消去済みの空間になったときに終了する。これとは別の例では、全ての可能な空間が再生される前に、例えばホストデータのプログラミングを続行するのに十分な空間が再生された時点で、ガーベッジコレクション操作が終了する。時点t2でホストデータのプログラミングは再び始まり、時点t3ではホストデータの書き込みが止まり、もう一度ガーベッジコレクション操作が始まる。図13に示す視点は、メモリコントローラの視点から見たメモリにおけるデータの状態であって、必ずしもホストの視点と同じではない。メモリコントローラが論理空間を満杯とみなしても、ホストが同じ空間を大方空いているとみなすことはある。
図13に示すようにメモリを管理することの欠点として、時点t1およびt2の間にホストにとってメモリは使用不能となる。したがって、t1からt2までの期間中、ホストデータは書き込まれない。多数のページをコピーしなければならないため、t1からt2までの時間はかなりの長さになることがある。場合によってはこの時間があまりに長いため、ホストはタイムアウトとなる。つまりホストにはデータの一部分を書き込むにあたって最大時間があり、消去済みの空間が不足しているときに新規のデータの書き込みを可能にするために必要とされるガーベッジコレクションがこの最大時間を超過することがある。
図14は、ホストデータを書き込むにあたって十分な消去済みの空間が残っている状態でガーベッジコレクションを遂行する、代替のメモリ管理方法を示している。この例で、ガーベッジコレクションは、これが絶対に必要となる前に遂行される。ガーベッジコレクションは、米国特許出願第11/040,325号(特許文献26)で説明されているように、ホストデータの書き込みの合間に交互に行うことができる。消去済みブロック数がある程度のしきい値に達することでこのような交互のガーベッジコレクションを開始するためのトリガとしてよい。交互のガーベッジコレクション操作によってメモリへのホストデータプログラミングは減速する。しかし、このガーベッジコレクション操作により、ホストデータが書き込み不能となる程度まで消去済みブロック数が減少するのを防ぐことができる。よって、ホストがタイムアウトしたりプログラミングを中断したりするリスクは低下または解消する。プログラミング速度が不必要に損なわれることがないよう、十分な消去済みブロックが使用可能となった時点で交互のガーベッジコレクションを止めることができる。よって、交互のガーベッジコレクションがオン/オフに切り替わるにつれ、または交互のガーベッジコレクションのレートが変化するにつれ、消去済みの空間の量は変化する。
図15は、ホストデータの書き込みと交互に行われるガーベッジコレクションのタイミング図を示している。N3ページ分のホストデータが書き込まれた後、ガーベッジコレクション操作の一部としてN4ページ分のデータが書き込まれるか、またはx個のブロックが消去される。このサイクルは繰り返される。こうしてガーベッジコレクションにともなうオーバーヘッドは、一度に集中してタイムアウトを招く代わりに、時間の経過に沿って分散される。整理統合、他の再生操作、または他のハウスキーピング操作もまたこのやり方で交互に行うことができる。この文脈におけるハウスキーピング操作は、メモリコントローラがメモリアレイの中でデータを保守するために着手する操作を指す。このような操作には損耗レベル化操作とデータスクラブ操作とが含まれることがある。
ファイル本位インターフェイスを伴う再生
一部のメモリインターフェイスでは、より効率的な再生を可能にするため、メモリコントローラがさらなる情報を入手できる。いずれも2005年2月16日に出願された米国特許出願第11/060,249号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」(特許文献27)、米国特許出願第11/060,174号「フラッシュメモリにおける直接ファイルデータプログラミングおよび削除(Direct File Data Programming and Deletion in Flash Memories) 」(特許文献28)、米国特許出願第11/060,248号「フラッシュメモリにおける直接データファイル記憶の実施手法(Direct Data File Storage Implementation Techniques in Flash Memories)」(特許文献29)、ならびに2005年8月3日に出願された仮特許出願第60/705,388号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」(特許文献30)では、このようなメモリインターフェイスの例が説明されている。ファイルは、メモリのために規定された論理アドレス範囲の論理アドレスへマッピングされずにホストからメモリへ送信される。このようなメモリは、ファイル本位インターフェイスを有するとみなすことができる。ファイルは主に、メモリの中でそのファイルにとって専用のメタブロックに記憶される。ファイルの記憶位置はファイル識別子とオフセットとを用いて記録される。図16は、このような直接データファイル記憶を使用するメモリインターフェイスを示し、ファイルはメモリへ送信され、メモリではファイル/オフセット−物理アドレス翻訳173が行われる。このようなメモリは断片化を抑える形でファイルを保守でき、かくしてほとんどのメタブロックはただひとつのファイルのデータを収容する。このようなメモリのメモリコントローラは、記憶されるデータについてより多くの情報を得る。具体的に、データをファイルによって識別するメモリコントローラは、ファイル本位のやり方でファイルを記憶できる。
図17は、図16のインターフェイスを使用するメモリシステムに記憶されるファイルをアプリケーションが削除するときに何が起こるかを示している。アプリケーション225は、ファイル2を削除すべきと指示するコマンドを送信する。このコマンドはホストからメモリへ送信され、その際、論理セクタアドレスによってファイルを識別する必要はない。ホストはファイル識別子を用いてファイルを識別できる。ファイル2はブロックa、b、およびcへマッピングされ、そのマッピングはファイル/オフセット−物理翻訳173によって記録されている。このコマンドにより、ファイル/オフセット−物理翻訳173はファイル2の削除を反映するべく更新される。その結果、ブロックa、b、およびcは新規のデータのために再使用できるようにするためのガーベッジコレクションのスケジュールに組み入れられる。よって、論理セクタアドレスを使用するメモリの場合のように代わりのデータがメモリアレイに記憶されるまで待つ代わりに、アプリケーションによるファイルの削除によりガーベッジコレクションに着手できる。この場合、メモリコントローラは全論理アドレス空間を見るとは限らない。代わりに、メモリコントローラは、メモリに記憶されるデータの有効性について正確な情報を得る。ある時点で、メモリコントローラは、メモリアレイの中で有効データがほとんどないかまたは皆無と認識することがある。それとは別の時点で、メモリコントローラは、メモリアレイが有効データで満杯かまたはほぼ満杯と認識することもある。メモリアレイにおける有効および用済みデータに関するこのような情報により、再生はこれまで以上に効率的に管理できる。
図18は、直接データファイルインターフェイスを使用するメモリで動作するメモリ再生システムの一例を示している。図18は、ホストデータの書き込みにともなうメモリアレイの状態を示している。図に示す視点はコントローラの視点を表し、この場合の視点はホストの視点に一致する。ここで、有効データを収容するメモリ部分が比較的小さいことが分かり、メモリの残りの部分は消去済みブロックと再生可能な空間とからなる。再生可能な空間は、用済みデータで占められた空間の他に、消去済みブロックの中にない消去済みの空間からなる。メモリによってはそのように散らばった消去済みの空間を追加データの記憶に使用するものもあるが、このような消去済みの空間を消去済みブロックに整理統合した上でデータの記憶に使用するシステムもある。図18は、時点t5まで有効データの量が着実に増加する様子を示している。この間、再生操作は遂行されないから、再生可能な空間の量は一定に保たれる。この期間中には消去済みブロックに有効データが書き込まれるにつれて消去済みブロックの空間が減少する。時点t5で1つ以上のファイルが削除され、メモリアレイに記憶されるそれらのファイルのデータは用済みになる。したがって、有効データで占められた空間の量は減少し、再生可能な空間の量は相応に増加する。次いで、時点t5からt6にかけてさらなるデータがメモリアレイにプログラムされ、有効データの量は再び増加し、消去済みブロックの空間は減少する。メモリは時点t6で、さらなるデータのプログラミングに再生操作が必要とみなされる地点にまで到達する。この地点は、消去済みブロックの空間がある程度のしきい値に達するときに到達してよく、または他の何らかの基準に依拠してよい。時点t6からt7にかけて、再生可能な空間の一部を消去済みブロックに変換するために再生操作が遂行される。これらの再生操作のときにはメモリアレイに新規のデータが書き込まれないから、有効データで占められる空間の量は一定に保たれる。時点t7で再生操作は終わり、新規のデータのプログラミングが再び始まる。このシステムは、再生操作を必要なときにだけ遂行する前述したシステムに類似する。このようなシステムの一欠点として、t6からt7までの時間が制限時間を超過するので、ホストが書き込み操作を中断するおそれがある。再生操作を必要なときにだけ遂行する代わりに、これが必要となる前に、ホストの書き込み操作に大きく影響しない形で、遂行することは可能である。直接データファイル記憶システムを使用するメモリなど、メモリアレイに記憶される用済みデータの量についてより充実した情報を得るメモリでは特に、ホストの書き込み操作にほとんど影響しないように、再生操作のスケジュールを巧みに組むことは可能である。
図19は、メモリアレイの中で空間をいかに管理できるかの模範を示している。有効データは、メモリアレイが有効データで満たされるまで一定の割合で増加する。同時に、再生操作によって再生可能な空間が消去済みブロックに変換されるにつれて再生可能な空間は減少する。このようにしてメモリアレイの空間を管理するシステムはスケジュールに従って再生操作を遂行するので、個々の再生操作が個々のホスト書き込み操作の合間に分散されることにより、一定速度のホストデータ書き込みが提供される。これを果たすために、コントローラは、メモリアレイを埋め尽くすのにこのような追加の有効データ量を推定でき、さらにメモリが満杯になる前に必要とされる再生操作の数を推定できる。次いで、残りの時間にわたって再生操作を均一に分散するレートで再生操作のスケジュールを組む。これにより、メモリが時期尚早に消去済みブロックを使い果たすことはなくなる。再生操作は、これまでどおりメモリアレイに新規のデータをプログラムする操作の合間にはさみ込むことができる。再生操作は、あるブロックから別のブロックにかけてデータの一部をコピーすることと、有効データを収容していないブロックを消去することとを含む。空間を再生するレートは交互比によって、すなわちホスト書き込み操作数に対する再生操作数の比によって、求めることができる。場合によっては、消去操作より遥かに多くのコピー操作があるため、この比の計算にあたってブロック消去操作が無視される。この場合の比は、新規のデータのための書き込み操作に対する再生のための書き込み操作の比となる。
図20は、このようなシステムにおいて時点t10に1つ以上のファイルが削除されるときに何が起こるかを示している。時点t10までは、有効データで占められた空間が増加し、再生可能な空間と消去済みブロックの空間はいずれも、有効データ量の増加にともない減少する。破線で示されているように、再生可能な空間は、メモリが満杯になるときに全ての再生可能な空間の再生を保証するレートで再生される。時点t10では1つ以上のファイルが削除されるので、かつて有効データで占められていた空間は用済みデータで占められ、それ故、再生可能な空間となる。t10の後にメモリアレイはさらなる有効データを記憶できるが、これを果たすには追加の再生操作を要する。したがって、コントローラは、再生操作を遂行すべきレートを再計算する。これは、メモリアレイに記憶されるデータの状態変化に対応する適応スケジューリングシステムを提供する。その結果、再生レートは修正され、さらに再生レートは有効データをプログラムするレートに影響するから、有効データをプログラムするレートも変更される。適応再生スケジューリングシステムは、周期的に、さもなくばホストコマンドによってトリガされるとき、または他の何らかのイベントによってトリガされるときに、交互比を再計算できる。
図21は、3通りの再生モードがあるメモリ管理のもうひとつの例を示している。第1のモードでは、t12より前のホストデータ書き込み中に再生操作は遂行されない。有効データの量は、消去済みブロックの空間の量が減少するのと同じ割合で増加する。この間、用済みとなるデータはないから、再生可能な空間の量はほぼ同じに保たれる。いくつかのブロックは、消去され使われずにいるブロックの部分を残しながら有効データを記憶することがある。これらの消去済み部分は、消去済みの空間を1つ以上の消去済みブロックに統合する形に有効データを整理統合することによって再生できる。よって、このモードでは、たとえ用済みになるデータがなくとも再生可能な空間がある程度増加することがある。いくつかの例では、再生レートが決してゼロにならないようにするため、この第1のモードで最小再生レートを保守できる。再生レートは低い、またはゼロのため、この第1のモードでホストデータをプログラムするレートは高い。
第2のモードでは、t12からt13にかけて、図19および20に示された適応スケジュールに従って再生操作を遂行する。この場合、再生レートが計算され、新規のデータのプログラミングの合間に再生操作がはさみ込まれるので、メモリが満たされるにつれて再生可能な空間は減少する。この交互の再生操作のため、第2のモードで新規のデータをプログラムするレートは第1のモードより若干低い。第2のモードは、メモリ内の有効データがしきい値を超過するときに、消去済みブロックの空間がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。
第3のモードでは、新規のデータを書き込むことが可能な消去済みブロックを用意するため、t13の後に、最大レートで再生操作が遂行される。再生操作のレートの増加によってホストデータをプログラムするレートは減少する。第3のモードは、有効データの量がしきい値を超過するときに、消去済みブロックの空間量がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。
適応スケジューリング−詳細例
これより、ホストデータをプログラムするレートを一定に保ちながら適応スケジューリングシステムに従って再生操作を遂行する不揮発性メモリの管理を、直接データファイル記憶インターフェイスを持つメモリの例を用いて詳しく説明する。この例では、メモリコントローラによって監視されるパラメータから適切な交互比を計算する方法を明らかにする。図22には、このようなメモリで時間の経過にともなうメモリ空間のページの様々な状態が詳しく示されている。メモリアレイのページまたはブロックで起こり得る数々の遷移も示されている。メモリアレイはブロックからなり、各ブロックは複数のページを収容する。この例では用語「ブロック」および「ページ」を使用するが、この例は、消去とプログラミングの単位としてそれぞれメタブロックとメタページとを有するメモリにも通用する。ブロックは、3通りの状態のいずれかひとつとして随時扱われ、これらのブロックの中にあるページは、5つの状態のいずれかひとつとして扱われる。図22には、時間の経過にともないこれらの5つの状態の各々をとるページの番号が示されている。
データ記憶にあたってのブロック分類
ファイルブロック:ファイルブロックはホストデータで満たされ、用済みデータを収容しない。実際には、最低限のプログラムされていないページを、例えば2ページを、ファイルブロックに収容できる場合がある。
不完全ブロック:不完全ブロックはある程度のホストデータを収容し、またある程度の消去済みページおよび/または用済みページを収容する。
消去済みブロック:消去済みブロックプールの中にある完全に消去されたブロック。
これらの3つのカテゴリに加え、いくつかのブロックは用済みデータで満たされることがある。例えば、ホストによって削除または消去されるファイルが指示された直後に、そのファイルを収容するブロックがガーベッジコレクションのスケジュールに組み入れられる。これらのブロックのいくつかはデータで満たされている。しかし、このようなブロックは多大なリソースを要することなく速やかに消去されるから、この計算の目的では考慮されない。
データ記憶にあたってのページ分類
ページおよび同一ブロック内の他のページの状態に従ってメモリアレイのページを分類するための用語を以下の一覧に示す。図22には各々の状態をとるページの番号が示されている。
ファイルブロックページ(FBP):これは、ファイルブロックに収容された有効ホストデータページ数である。
データページ(DP):これは、不完全ブロックに収容された有効ホストデータページ数である。
用済みページ(OP):これは、不完全ブロックに収容された用済みホストデータページ数である。
消去済みページ(EP):これは、不完全ブロックに収容された消去済みページ数である。用済みページ(OP)および消去済みページ(EP)とによってメモリアレイに再生可能な空間が形成されると考えることができる。
消去済みブロックページ(EBP):これは、消去済みブロックに収容された消去済みページ数である。
用済みデータだけを収容するブロックの中に存在するページは、長時間にわたって存在せず、それらの再生の要するガーベッジコレクションの点で多大な負担をかけないから、この一覧で無視されている。
前に記載された5つの、相互排他的なカテゴリに加えて、メモリアレイ内のページに関係する2つの数として総ページ数と総データページ数とがある。これらの用語は前述したカテゴリに該当するページを表す。これらの数はメモリコントローラによって追跡される。
総ページ(TP):これは、データ記憶に使用できるデバイス内の総ページ数であり、デバイスのデータ容量に相当する。
総データページ(TDP):これは、任意の時点で有効ホストデータを収容するページ数である。データページはファイルブロックまたは不完全ブロックのいずれかの中にある。
データコピー操作の段階:データコピー操作には2つの段階があるが、以下の適応スケジューリングの分析にあたってそれらを別々に考慮する必要はない。
(1)ガーベッジコレクション段階:デバイスに用済みページが存在し、それらをなくすためにガーベッジコレクション操作が遂行される。
(2)ブロック整理統合段階:不完全ブロックの中で拘束されている消去済み容量を回復させるためにブロック整理統合操作が遂行される。
ホストが有効データとして同じファイルにデータを書き込む場合、整理統合がなくとも有効な空間と消去済みの空間だけを収容するブロックを引き続き使用できるから、通常は、ガーベッジコレクションを先に行い、ブロック整理統合はあとまわしにしたほうがよい。ファイルが閉じられている場所でも、ファイルは再び開き、データはプログラムブロックに書き込まれる。用済みデータを含むブロックを再び使用するには、その前にガーベッジコレクションを行わなければならないから、このようなガーベッジコレクションをあとまわしにすることに利点はない。
デバイス操作に起因するページ遷移
図22には、以下のページ遷移が示されている。
用済みページから消去済みブロックページ(1):用済みページを収容するブロックから有効データページがコピーされた後に、このブロックが消去されるときに起こる。
データページからデータページ(2):コピー元ブロックからコピー先ブロックへコピーされるデータページに関係する。
消去済みページから消去済みブロックページ(3):コピー元ブロックからコピー先ブロックへ全ての有効データページがコピーされた後にコピー元ブロックが消去されると、コピー先ブロックにプログラムされていた消去済みページは事実上、コピー元ブロック内の消去済みブロックページとなる。
消去済みブロックページから消去済みページ(4):コピー元ブロックから消去済みブロックへ有効データページがコピーされた後、消去済みブロックの中の残りの消去済みブロックページは消去済みページになる。
データページからファイルブロックページ(5):不完全ブロックの中にある有効データページは、ブロックが満杯になるとファイルブロックページになる。
消去済みブロックページからファイルブロックページ(6):消去済みブロックページは、ブロックがホストによって書き込まれるデータで満たされるとファイルブロックページになる。
図23は、メモリアレイのブロックでこれらの遷移がどのように起こるかを例示するものである。図23Aはメモリアレイの中の4つのブロックA〜Dを示し、データの量と状態はブロックによって異なる。ブロックAのページ0〜3は有効データ(網掛けにより指示)を各々収容するから、ブロックAは有効データで満たされている。したがって、ブロックAはファイルブロックとみなされる。ブロックBは、有効データ(データX)を収容するページ0と、用済みデータ(斜線により指示)を収容するページ1および2と、消去済み状態にあるページ3とを含む。ブロックBは、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックCは、有効データで満たされたページ0および1と、消去済み状態にあるページ2および3とを有する。ブロックCもまた、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックDは完全に消去され、データを収容していないから、消去済みブロックとみなされる。
図23AのブロックAは唯一のファイルブロックだから、ファイルブロックページ(FBP)数はブロックAにあるページ数に、すなわち4に等しい。データページ(DP)数はブロックBおよびCにある有効ページ数であり、したがって3に等しい。用済みページ(OP)数はブロックBおよびCにて用済みデータで満たされているページ数であり、2に等しい。消去済みページ(EP)数はブロックBおよびCで消去済み状態にあるページ数であり、3に等しい。ブロックDは唯一の消去済みブロックだから、消去済みブロックページ(EBP)数はブロックDにあるページ数であり、4に等しい。この例で、総ページ(TP)は要するに全ブロックの総ページ数であり、ここでは16ページである。総データページ(TDP)は、有効データを収容するページ数であり、ここでは7ページである。
図23Aは、ブロックBのページ0からブロックCのページ2にかけて有効データXがコピーされる様子を示している。これは、DPからDPに至るタイプ(2)遷移の一例である。その後、図23BのブロックBには用済みデータだけが残るから、ブロックBはこの時点で消去のキューに入れることができる。図23BのブロックDには新規の有効データYが書き込まれ、かくしてブロックDのページ0はデータページになる。ブロックDのページ1〜3は、タイプ(4)遷移で消去済みブロックページから消去済みページに変化する。図23Cは、ブロックBが消去された後のブロックA〜Dを示している。ページ0〜2は、タイプ(1)遷移で用済みページから消去済みブロックページに変わる。ブロックBのページ3は、不完全ブロックの中の消去済みページから、図23Cの消去済みブロックの中の消去済みブロックページに変わる。これはタイプ(3)遷移の一例である。図23Cではまた、ブロックDのページ0からブロックCのページ3へ有効データYがコピーされ、その結果、ブロックCは図23Dに示すように有効データで一杯になる。よって、図23DのブロックCはファイルブロックとみなされる。かつてデータページだったブロックCのページ0〜2は、ブロックCがタイプ(5)遷移でファイルブロックになるときにファイルブロックページになる。図23Dではまた、ブロックBに有効データがプログラムされてブロックBを満たす。ブロックBのページは、タイプ(6)遷移で消去済みブロックページからファイルブロックページに変化する。
この適応スケジューリング方式の一目的は、一定レートのホストデータプログラミングを提供するため、ホスト書き込み操作と再生操作とを交互に行うことにある。よって、総データページ(TDP)が増加する割合は、総データページ(TDP)が総ページ(TP)に等しくなるまで、すなわちメモリが満杯になるまで一定である。この例では、様々なパラメータの計算にあたってある程度の概算を行う。しかし、他の例ではこれとは別の仮定に基づくことができ、あるいはこれとは別のやり方で計算を行うことができる。この計算では、コピーされるデータのデータグループ構造を無視する。したがって、データグループはコピーのときに分割されることがある。コピー元ブロックからデータページをコピーしてコピー先ブロックの使用可能な消去済みページが満たされたら、残りのデータページを別のコピー先ブロックにコピーできる。
コントローラは、再生操作と新規のデータ書き込みとの適切な交互比の計算にあたって使用される特定のパラメータ値を保守する。本願明細書で紹介する計算では計算の基本データ単位としてページを使用するが、ブロックやメタブロックなどの、別の単位を使用することもできる。交互比は、コントローラによって保守されるパラメータ値だけを、すなわち総ページ(TP)、総データページ(TDP)、不完全ブロックページ(PBP)、および消去済みブロックページ(EBP)だけを用いて以下に示すように計算できる。
(ホストデータ):(コピーデータ)交互比の導出
デバイスが満杯になる前にデバイスに書き込むことができる追加のホストデータページ数は以下の式によって求められる。
書き込まれるホストデータ=TP−TDP
消去済みページ(EP)およびデータページ(DP)の数もまた、コントローラによって監視されるパラメータを用いて以下のように書くことができる。
消去済みページ(EP)=TP−TDP−OP−EBP
データページ(DP)=PBP−EP−OP
=PBP−(TP−TDP−OP−EBP)−OP
=TDP+PBP+EBP−TP
コピーしなければならない有効データの量は、全ての不完全ブロックが同数の有効データページを収容するとする概算に基づいて求める。1ブロック内の総ページ数をNとすると、不完全ブロック内の平均有効ページ数はN*DP/PBPである。
不完全ブロックの中にあるデータページのごく僅かをコピーするだけでよい。データがコピーされるコピー先ブロックになる不完全ブロックには残余が存在する。全てのコピーで不完全ブロックがコピー先ブロックとして使われ、消去済みブロックを使用する必要はないと仮定する。消去される各不完全ブロックにある有効データは消去に先駆けコピーされるから、データのコピー元にあたるブロックの数は、作ろうとする消去済みブロックの数に等しい。作られる消去済みブロックの数=(PBP−DP)/Nである。
よって、消去されるブロック数にブロック当たりの平均有効ページ数を掛けることにより、メモリアレイで全再生可能な空間を再生するためにコピーされるデータ量の概算が得られる。
コピーされるデータ ={N*DP/PDP}*{(PBP−DP)/N}
=DP*(PBP−DP)/PBP
=(TDP+PBP+EBP−TP)*(PBP−TDP−PBP−EBT+TP)/PBP
=(TDP+PBP+EBP−TP)*(TP−TDP−EBP)/PBP
実際にはコピーされる有効データの量が最も少ないブロックがコピー操作のためのコピー元ブロックとして選択されるから、これが、コピーされるデータ量を多めに見積もるという点に留意されたい。したがって、全ての不完全ブロックが同じ割合でデータページを収容するとする単純化に基づくデータコピーのレートは、必要なレートよりいくぶん高くなる。
(ホストデータ):(コピーデータ)交互比
=(書き込まれるホストデータ)/(コピーされるデータ)
=(TP−TDP)*PBP/(TDP+PBP+EBP−TP)/(TP−TDP−EBP)
これは、メモリが満杯になるまでホストデータのプログラミングを一定のレートで継続することを可能にする交互比を与える。この比は周期的に更新でき、あるいは何らかのトリガイベントに応じて更新できる。この比は、一定レートのホストデータプログラミングを可能にするように再生操作のスケジュールを組むのに使用できる式の一例である。これとは別の式を使用することもできる。交互比を計算するための式は、前述した計算などに基づいてよく、あるいは実際のメモリにおける経験に基づいてよい。計算にあたって無視すべきファクタについて仮定を加えることによって式は単純化できる。代わりに、より複雑な式では、ブロックの消去にこのような時間、またはガーベッジコレクションのコピー先ブロックとして消去済みブロックが必要となる可能性などのさらなるファクタを考慮に入れることができる。
前述した例のメモリはファイル本位のホストインターフェイスを有するが、本発明の態様は、セクタ本位のホストインターフェイス、または他の何らかのホストインターフェイスを使用するメモリにも応用できる。セクタ本位インターフェイスを持つ一部のメモリは、説明している手法の応用から大いに利益を受けるには十分な情報を欠くが、ある程度の性能の向上は達成できる。加えて、セクタ本位インターフェイスを有する一部のメモリはFATを解析するか、さもなくば記憶データの状態についてさらなる情報を入手する。一部のホストは、さらなるコマンドを用いて記憶データに関する情報をコントローラに提供する。再生のスケジュールを早期に組むため、このような情報を役立てることができる。
ホスト操作
いくつかの例において、不揮発性メモリにおける再生操作を各種モードで各様に管理できる。前述したように、再生操作は第1のモードにおいてある程度の最小レート(いくつかの例ではゼロを含む)で動作でき、第2のモードにおいて適応的に動作でき、第3のモードにおいて最大レートで動作できる。再生モードは、メモリコントローラが所定の基準に従って選択できる。いくつかの例では、ホストが再生モードを制御できる。ホストは、前述した3モードのどれが選択されるかを判断できる。加えて、ホストは、現在のホスト活動または予期されるホスト活動に基づき、適切な再生モードを選択するコマンドを有することができる。ホストシステムは、図1に示すようにメモリシステムから物理的に分離してよい。代わりに、オンカードアプリケーションを実行するメモリカード内のプロセッサをホストとみなすこともできる。米国仮特許出願第60/705,388号(特許文献30)ではこのような構成が説明されている。
メモリの再生モードに関する第1のホストコマンドは、交互操作の代わりに連続再生操作を可能にする「再生オン(Reclaim_on)」コマンドである。このようにして行われる再生操作は、ホストコマンドの実行に遅れを生じさせず、ホストにとって透過であるから、バックグラウンド操作とみなされる。「再生オン」は、ホストが暫くの間追加のコマンドを送信しないことをメモリに告げる「アイドル(idle)」コマンドに相当する。一部のシステムにおいて、これらは同じコマンドである。これがもたらす再生オンモードは、別のホストコマンドの受信時に終了する。
「再生ノーマル(Reclaim_normal)」コマンドは、メモリのデフォルト再生モードでの動作を可能にする。これは、適応スケジュールに従って再生することを意味することがあり、あるいは再生モード選択の制御権をメモリコントローラに与え、メモリコントローラが何らかの所定の基準に基づき再生モードを選択することを意味することがある。メモリは、再生オンモードを終了させるホストコマンドの受信時に、デフォルトでこのモードに入ることができる。
「再生オフ(Reclaim_off)」コマンドは、再生操作を禁じ、ホスト操作だけを遂行させる。最大のホストデータ書き込み性能を提供するためにこのモードを選ぶことができる。このモードは、再生オンコマンドまたは再生ノーマルコマンドによって終了する。
再生レートの降順による可能な再生モード階層は以下のとおりである。
再生オン:デバイスは、別のコマンドが受信されるまで連続再生操作を遂行する。
最大交互:再生操作は、一定の最大交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の上限である。
適応交互:再生操作は、適応交互比に従ってホストデータ書き込み操作と交互に行われる。
最小交互:再生操作は、一定の最小交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の下限である。
再生オフ:再生操作は禁じられ、ホストデータ書き込み操作だけが遂行される。
前述した説明が一定レートのホストデータ書き込みに言及している点に留意すべきである。交互再生によって提供される一定レートは複数のサイクルにわたって看取される。個々のサイクルのレベルで見た場合、再生操作を交えた周期的なホスト書き込み操作の中でホストデータの書き込みが行われる。しかし、サイクル当たりまたは多数のサイクルにわたる、ホストデータ書き込みレートは、推定されたレートで一定に保ったままにすることができるから、メモリアレイが満杯になるまでこれを維持できる。
前述した説明では、メモリアレイの中で再生可能な空間が消去済みブロックに変換されるレートが一定であることが分かる。しかし、たとえサイクル当たりまたは単位時間当たりの再生操作数が一定でも、再生操作によって消去済みブロックが作られるレートが一定になるとは限らない。というのは、再生の対象となるブロックは、再生が容易なブロックから先に再生されるように選択されるからである。したがって、適応再生が始まるときに、再生の対象となるブロックにRページ分の有効データがあると、ブロックはコピーされるデータのRページずつ再生される。その後、2Rページ分の有効データを有するブロックを再生するには、消去済みブロックを作るたびに2R回のコピー操作を要する。したがって、再生によって消去済みブロックが作られるレートは、以前のレートの半分まで減少する。消去済みブロックが作られるレートは、これとは別の例では、ブロックの再生順序に応じて別様に変動する。ブロックがそこに収容された有効データの量にかかわりなく再生されるならば、再生によって消去済みブロックが作られるレートはそこそこ一定となる。
これまで本発明の様々な態様をその代表的な実施形態との関係で説明してきたが、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
現在実施されているホストと接続された不揮発性メモリシステムとを概略的に示す。 図1の不揮発性メモリとして使用されるフラッシュメモリシステムの例のブロック図である。 図2のシステムに使用できるメモリセルアレイの代表的な回路図である。 図2のシステムの物理メモリの編制例を示す。 図4の物理メモリの一部分の拡大図を示す。 図4および5の物理メモリの一部分のさらなる拡大図を示す。 ホストと再プログラム可能なメモリシステムとの間の一般的な先行技術の論理アドレスインターフェイスを示す。 不揮発性メモリにおけるガーベッジコレクションの一例を示す。 不揮発性メモリにおけるガーベッジコレクションの一例を示す。 不揮発性メモリにおけるガーベッジコレクションのもうひとつの例を示す。 不揮発性メモリにおけるガーベッジコレクションのもうひとつの例を示す。 不揮発性メモリにおける圧縮の一例を示す。 不揮発性メモリにおける圧縮の一例を示す。 不揮発性メモリにおける整理統合の一例を示す。 不揮発性メモリにおける整理統合の一例を示す。 図7のインターフェイスを使用する不揮発性メモリに記憶されるファイルのホストアプリケーションによるファイルの削除を示す。 不揮発性メモリの空間がどのように管理されるかの一例を示す。 不揮発性メモリの空間がどのように管理されるかのもうひとつの例を示す。 交互のホスト書き込み操作とガーベッジコレクション操作とを示す。 ホストに対しファイル本位インターフェイスを有する不揮発性メモリを示す。 図16のインターフェイスを使用する不揮発性メモリに記憶されるファイルのホストアプリケーションによるファイルの削除を示す。 ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理の一例を示す。 メモリアレイが満杯になるまで一定レートのホストデータプログラミングを提供する、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。 ファイルの削除に適応する適応再生スケジューリングを有する、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。 3つのモード、すなわち最小再生レートを有する初期モードと、適応的にスケジュールされる再生レートを有する適応モードと、および最大再生レートを有する最終モードとにおける、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理のもうひとつの例を示す。 様々な状態にあるメモリアレイ部分とそれらの状態間の可能なデータ遷移とを含む、ファイル本位インターフェイスを有する不揮発性メモリにおける空間管理の詳細図を示す。 収容されたデータが図22の遷移に一致する遷移をたどるメモリアレイのブロックを示す。 収容されたデータが図22の遷移に一致する遷移をたどるメモリアレイのブロックを示す。 収容されたデータが図22の遷移に一致する遷移をたどるメモリアレイのブロックを示す。 収容されたデータが図22の遷移に一致する遷移をたどるメモリアレイのブロックを示す。

Claims (21)

  1. ブロックの消去単位を有する不揮発性メモリで空間を管理する方法であって、前記不揮発性メモリは有効データで部分的に満たされたブロックを有する方法において、
    (a)ホストから受信するホストデータを前記不揮発性メモリにプログラムすることと、(b)ある1つのブロックから別のブロックにかけて記憶済み有効データをコピーすることとを、前記メモリアレイで空間を再生するためにコピーされる有効データの量の推定から導き出される交互比に従い、交互に行うステップを含む方法。
  2. 請求項1記載の方法において、
    前記交互に行うステップは、前記ホストから受信するホストデータを前記不揮発性メモリに一定のレートでプログラムすることを提供する方法。
  3. 請求項2記載の方法において、
    前記交互比は、前記不揮発性メモリが有効データで満たされるまで前記一定のレートでプログラムすることを継続するように計算される方法。
  4. 請求項1記載の方法において、
    前記交互比は、ホストコマンドに応じて再計算される方法。
  5. 請求項1記載の方法において、
    前記交互比は、前記メモリアレイに記憶され得る追加データの推定から導き出される方法。
  6. 請求項5記載の方法において、
    前記メモリアレイに記憶され得る追加データの量の推定は、ホストファイルが用済みであることを伝えるホストからの受信情報から導き出される方法。
  7. 請求項1記載の方法において、
    前記交互に行うステップは、記憶済みデータをコピーすることを禁じる再生オフモードと、ホストデータをプログラムせず記憶済みデータをコピーすることを可能にする再生オンモードとを含む複数のモードから交互モードを選択するホストコマンドに応じて起こる方法。
  8. ページのプログラミング単位とブロックの消去単位とを有するメモリアレイで空間を再生する方法であって、1ブロックは2つ以上のページを収容し、前記メモリアレイは完全にではなく部分的に有効データで各々満たされた複数のブロックを収容する方法において、
    前記複数のブロックに記憶される有効データの量に依拠するレートで前記複数のブロックに記憶される有効データをコピーするステップと、
    前記複数のブロックの個々のブロックを、前記個々のブロックにある全有効データがコピーされた後に、消去するステップと、
    を含む方法。
  9. 請求項8記載の方法において、
    前記コピーするステップは、ホスト書き込み操作と交互に行われ、前記レートは、ホスト書き込み操作に許される時間内にコピーされる有効データの量によって設定される方法。
  10. 請求項9記載の方法において、
    前記レートは、反復サイクルの1サイクルで書き込まれるホストデータのページ数に対するコピーされる有効データのページ数の比によって設定される方法。
  11. 請求項10記載の方法において、
    前記比は、等式r=x/yから計算され、
    ここで、xは、前記複数のブロックにて空間を再生するためにコピーしなければならない前記複数のブロックに収容された有効データの量の推定であり、
    yは、前記メモリアレイが満杯になる前に前記メモリアレイに記憶され得る追加のホストデータの量である方法。
  12. 請求項9記載の方法において、
    前記レートは、前記メモリアレイが前記ホスト書き込み操作によって満たされていくにつれ、有効データをコピーすることを、前記ホスト書き込み操作の合間に均一に分配するように計算される方法。
  13. 請求項8記載の方法において、
    前記複数のブロックは、代替のデータを提供することなく用済みデータを識別するホストコマンドによって用済みと識別される前記用済みデータを収容する方法。
  14. ブロックの消去単位を有する不揮発性メモリで空間を管理する方法であって、
    (a)ホストから受信するホストデータを前記不揮発性メモリにプログラムすることと、(b)ある1つのブロックから別のブロックにかけて記憶済み有効データをコピーすることとを、前記メモリがホストデータで満ちるにつれ複数のサイクルにわたり一定のレートでホストデータがプログラムされるように、交互比に従い、反復サイクルにて、交互に行うステップを含む方法。
  15. 請求項14記載の方法において、
    前記交互比は、前記メモリアレイにプログラムできる追加のホストデータの総量の推定と、前記メモリアレイにて全ての再生可能な空間を再生するために、ある1つのブロックから別のブロックにかけてコピーしなければならない記憶済み有効データの総量の推定とから計算される方法。
  16. 請求項15記載の方法において、
    前記コピーしなければならない記憶済み有効データの推定は、有効データで部分的に満たされた全ブロックにわたって有効データが均一に分散していると仮定することによって得られる方法。
  17. メモリシステムであって、
    複数のブロックを含む不揮発性メモリアレイであって、1ブロックは最小消去単位である不揮発性メモリアレイと、
    前記不揮発性メモリアレイに記憶されるホストデータのために論理−物理マッピングの記録を保守するメモリコントローラであって、前記記録は複数の項目を有し、個々の項目は一意なファイル識別子およびオフセットによって論理アドレスを指示し、前記メモリコントローラはホストによって供給される情報に従い記憶データが有効または用済みかを判断し、前記メモリコントローラは、残りの再生可能な空間を再生するためにコピーされるデータの量と、前記メモリアレイが満杯になる前に書き込まれる追加のホストデータの総量とに依拠するレートで、有効データをコピーするメモリコントローラと、
    を備えるメモリシステム。
  18. 請求項17記載のメモリシステムにおいて、
    前記レートは、ホストコマンドに応じて再計算されるメモリシステム。
  19. 請求項17記載のメモリシステムにおいて、
    前記レートは、前記メモリが有効ホストデータで満たされるまで一定レートのホストデータプログラミングを提供するように計算されるメモリシステム。
  20. 請求項17記載のメモリシステムにおいて、
    前記メモリシステムは、標準インターフェイスを通じて前記ホストと通信する着脱可能なメモリカードにて具現化されるメモリシステム。
  21. 請求項17記載のメモリシステムにおいて、
    前記ホストは、ホストファイルを参照するための一意なファイル識別子を用いてホストファイルに関する情報を提供するメモリシステム。
JP2008525169A 2005-08-03 2006-08-01 予定再生操作を伴う不揮発性メモリ Active JP4977703B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US70538805P 2005-08-03 2005-08-03
US60/705,388 2005-08-03
US11/259,423 2005-10-25
US11/259,423 US7409489B2 (en) 2005-08-03 2005-10-25 Scheduling of reclaim operations in non-volatile memory
US11/259,439 2005-10-25
US11/259,439 US7984084B2 (en) 2005-08-03 2005-10-25 Non-volatile memory with scheduled reclaim operations
PCT/US2006/030166 WO2007019198A2 (en) 2005-08-03 2006-08-01 Non-volatile memory with scheduled reclaim operations

Publications (2)

Publication Number Publication Date
JP2009503744A true JP2009503744A (ja) 2009-01-29
JP4977703B2 JP4977703B2 (ja) 2012-07-18

Family

ID=38083567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008525169A Active JP4977703B2 (ja) 2005-08-03 2006-08-01 予定再生操作を伴う不揮発性メモリ

Country Status (4)

Country Link
EP (1) EP1910928A2 (ja)
JP (1) JP4977703B2 (ja)
KR (1) KR101089150B1 (ja)
WO (1) WO2007019198A2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197788A (ja) * 2010-03-17 2011-10-06 Toshiba Corp メモリシステム
JP2012519899A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの選択
US8392476B2 (en) 2010-02-16 2013-03-05 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2013525917A (ja) * 2010-04-29 2013-06-20 フリースケール セミコンダクター インコーポレイテッド エミュレート電気的消去可能(eee)メモリおよび動作方法
KR20180034079A (ko) * 2016-09-27 2018-04-04 삼성전자주식회사 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템
JP2019106174A (ja) * 2017-12-14 2019-06-27 インテル・コーポレーション 記憶デバイスにおけるシステムタイムスタンプを用いたバックグラウンドデータ・リフレッシュ
WO2023082252A1 (zh) * 2021-11-15 2023-05-19 华为技术有限公司 一种垃圾回收方法、存储器和存储器管理装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
JP4461187B1 (ja) 2008-12-24 2010-05-12 株式会社東芝 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
TW201140315A (en) * 2010-05-11 2011-11-16 Jmicron Technology Corp Method for estimating capacity usage status of storage unit, and associated memory device and controller thereof
US11188229B2 (en) 2015-09-25 2021-11-30 Hitachi Vantara Llc Adaptive storage reclamation
CN106897022B (zh) * 2015-12-17 2019-05-31 腾讯科技(深圳)有限公司 一种管理存储设备的方法及装置
CN111090595B (zh) * 2019-11-19 2022-12-20 中国航空工业集团公司西安航空计算技术研究所 一种nand flash垃圾回收均衡优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63231643A (ja) * 1987-03-20 1988-09-27 Fujitsu Ltd 実時間ガ−ベジコレクシヨン方式
JP2002541551A (ja) * 1999-03-31 2002-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ガベージコレクションをスケジュールする方法
US20040073748A1 (en) * 2002-10-09 2004-04-15 Rudelic John C. Queued copy command
WO2004077447A1 (ja) * 2003-02-28 2004-09-10 Fujitsu Limited フラッシュメモリ及びメモリ制御方法
US20050149686A1 (en) * 2004-01-05 2005-07-07 International Business Machines Corporation Method and apparatus for dynamic incremental defragmentation of memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7437557B2 (en) * 2003-06-03 2008-10-14 Lg Electronics Inc. Garbage collection system and method for a mobile communication terminal

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63231643A (ja) * 1987-03-20 1988-09-27 Fujitsu Ltd 実時間ガ−ベジコレクシヨン方式
JP2002541551A (ja) * 1999-03-31 2002-12-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ガベージコレクションをスケジュールする方法
US20040073748A1 (en) * 2002-10-09 2004-04-15 Rudelic John C. Queued copy command
WO2004077447A1 (ja) * 2003-02-28 2004-09-10 Fujitsu Limited フラッシュメモリ及びメモリ制御方法
US20050149686A1 (en) * 2004-01-05 2005-07-07 International Business Machines Corporation Method and apparatus for dynamic incremental defragmentation of memory

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012519899A (ja) * 2009-03-04 2012-08-30 マイクロン テクノロジー, インク. メモリブロックの選択
US8751731B2 (en) 2009-03-04 2014-06-10 Micron Technology, Inc. Memory super block allocation
US8392476B2 (en) 2010-02-16 2013-03-05 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2011197788A (ja) * 2010-03-17 2011-10-06 Toshiba Corp メモリシステム
JP2013525917A (ja) * 2010-04-29 2013-06-20 フリースケール セミコンダクター インコーポレイテッド エミュレート電気的消去可能(eee)メモリおよび動作方法
KR20180034079A (ko) * 2016-09-27 2018-04-04 삼성전자주식회사 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템
KR102611638B1 (ko) 2016-09-27 2023-12-08 삼성전자주식회사 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 데이터 저장 시스템
JP2019106174A (ja) * 2017-12-14 2019-06-27 インテル・コーポレーション 記憶デバイスにおけるシステムタイムスタンプを用いたバックグラウンドデータ・リフレッシュ
WO2023082252A1 (zh) * 2021-11-15 2023-05-19 华为技术有限公司 一种垃圾回收方法、存储器和存储器管理装置

Also Published As

Publication number Publication date
EP1910928A2 (en) 2008-04-16
WO2007019198A3 (en) 2007-06-21
KR20080042851A (ko) 2008-05-15
KR101089150B1 (ko) 2011-12-02
JP4977703B2 (ja) 2012-07-18
WO2007019198A2 (en) 2007-02-15

Similar Documents

Publication Publication Date Title
JP4977703B2 (ja) 予定再生操作を伴う不揮発性メモリ
US7984084B2 (en) Non-volatile memory with scheduled reclaim operations
US7877540B2 (en) Logically-addressed file storage methods
US7877539B2 (en) Direct data file storage in flash memories
US8214583B2 (en) Direct file data programming and deletion in flash memories
KR101272642B1 (ko) 플래시 메모리시스템 내의 데이터 저장 용량의 리클레이밍
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US20060184719A1 (en) Direct data file storage implementation techniques in flash memories
US20070143378A1 (en) Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20090182791A1 (en) Non-Volatile Memories And Method With Adaptive File Handling In A Directly Mapped File Storage System
US20070143560A1 (en) Non-volatile memories with memory allocation for a directly mapped file storage system
US20090210614A1 (en) Non-Volatile Memories With Versions of File Data Identified By Identical File ID and File Offset Stored in Identical Location Within a Memory Page
US20100146197A1 (en) Non-Volatile Memory And Method With Memory Allocation For A Directly Mapped File Storage System
US20070143567A1 (en) Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20070136553A1 (en) Logically-addressed file storage systems
JP2009503729A (ja) 論理アドレス空間と直接データファイル方式で動作するインターフェイスシステム
KR20110081150A (ko) 다중 수행 모드 메모리 시스템
KR101378031B1 (ko) 데이터 파일을 직접적으로 저장하는 메모리 블록의 관리
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
JP5266250B2 (ja) 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用
JP4441577B2 (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
JP2009519555A (ja) 論理アドレス形ファイル記憶
JP2010515163A (ja) ダイレクトデータファイルメモリシステムにおけるlbaインターフェイスの管理

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110729

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110822

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110829

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110926

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4977703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150420

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

Year of fee payment: 3

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250