Movatterモバイル変換


[0]ホーム

URL:


JP4362549B1 - Gradual garbage collection - Google Patents

Gradual garbage collection
Download PDF

Info

Publication number
JP4362549B1
JP4362549B1JP2009522934AJP2009522934AJP4362549B1JP 4362549 B1JP4362549 B1JP 4362549B1JP 2009522934 AJP2009522934 AJP 2009522934AJP 2009522934 AJP2009522934 AJP 2009522934AJP 4362549 B1JP4362549 B1JP 4362549B1
Authority
JP
Japan
Prior art keywords
block
data
garbage collection
write
volatile memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009522934A
Other languages
Japanese (ja)
Other versions
JP2009545819A (en
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/499,598external-prioritypatent/US7451265B2/en
Priority claimed from US11/499,606external-prioritypatent/US7444461B2/en
Application filed by SanDisk CorpfiledCriticalSanDisk Corp
Application grantedgrantedCritical
Publication of JP4362549B1publicationCriticalpatent/JP4362549B1/en
Publication of JP2009545819ApublicationCriticalpatent/JP2009545819A/en
Expired - Fee Relatedlegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Classifications

Landscapes

Abstract

Translated fromJapanese

不揮発性メモリ記憶システムを動作させる方法が提供される。この方法では、データを書き込む書き込みコマンドが受け取られる。書き込みコマンドは、書き込みコマンドの実行を完了させるためのタイムアウト期間を割り当てられる。タイムアウト期間内に、ガーベッジコレクション動作の一部分が実行される。書き込みコマンドに関連付けられたデータは、不揮発性メモリ記憶システムに関連付けられたバッファに書き込まれる。  A method of operating a non-volatile memory storage system is provided. In this method, a write command for writing data is received. The write command is assigned a timeout period for completing the execution of the write command. A portion of the garbage collection operation is performed within the timeout period. Data associated with the write command is written to a buffer associated with the non-volatile memory storage system.

Description

Translated fromJapanese

本発明は、一般的にはメモリ動作に関し、特に段階的ガーベッジコレクション動作を実行する方法およびシステムに関する。  The present invention relates generally to memory operations, and more particularly to a method and system for performing a stepped garbage collection operation.

不揮発性メモリ記憶システムでは、メモリに格納されているデータのブロックは、メモリの記憶容量を再生利用するために定期的にガーベッジコレクション(すなわち、圧縮または整理統合)される。代表的なガーベッジコレクション動作では、ブロックからの有効なデータが他のブロックにコピーされる。有効なデータが転送された後、オリジナルブロックは記憶容量を提供するために消去される。現在、書き込み動作は、不揮発性メモリ記憶システムをトリガしてガーベッジコレクション動作を実行させることができる。ホストは、書き込み動作の実行のために一定量の時間を許し、(トリガされたならば)ガーベッジコレクションを含む。例えば、セキュアデジタルプロトコルは、その時間量を250ミリ秒に制限する。不揮発性メモリ記憶システムが書き込み動作においてこの一定量の時間を越えれば、タイムアウトエラーに帰着する可能性がある。  In a non-volatile memory storage system, blocks of data stored in memory are periodically garbage collected (ie, compressed or consolidated) to reclaim the memory capacity of the memory. In a typical garbage collection operation, valid data from a block is copied to another block. After valid data is transferred, the original block is erased to provide storage capacity. Currently, a write operation can trigger a non-volatile memory storage system to perform a garbage collection operation. The host allows a certain amount of time to perform the write operation and includes garbage collection (if triggered). For example, secure digital protocols limit that amount of time to 250 milliseconds. If the non-volatile memory storage system exceeds this certain amount of time in a write operation, it may result in a timeout error.

メモリブロックのサイズは、増大する容量、より高度の並列性、およびダイサイズのスケーリングに起因して大きくなってきている。従って、より多くのデータが転送されるので書き込み動作の実行により長い時間がかかるようになっている。従って、ガーベッジコレクション動作は、書き込み動作に割り当てられた一定量の時間を容易に超える可能性がある。その結果として、ガーベッジコレクション動作を実行するための時間の量がその一定量の時間を超えるときにタイムアウトエラーを防止する必要がある。  Memory block sizes are becoming larger due to increasing capacity, higher parallelism, and die size scaling. Therefore, since more data is transferred, it takes longer time to execute the write operation. Thus, a garbage collection operation can easily exceed a certain amount of time assigned to a write operation. As a result, timeout errors need to be prevented when the amount of time for performing a garbage collection operation exceeds that fixed amount of time.

本発明の種々の実施形態は、段階的ガーベッジコレクションの方法および/またはシステムを提供する。実施形態が、方法、回路、システム、あるいは装置を含む多くの仕方で実現され得ることが理解されるべきである。本発明のいくつかの実施形態が以下に記載される。  Various embodiments of the present invention provide a method and / or system for staged garbage collection. It is to be understood that the embodiments can be implemented in many ways, including a method, circuit, system, or apparatus. Several embodiments of the invention are described below.

本発明の1つの実施形態に従って、不揮発性メモリ記憶システムを動作させる方法が提供される。この方法では、データを書き込むために書き込みコマンドが受け取られる。書き込みコマンドには、書き込みコマンドの実行を完了させるためのタイムアウト期間が割り当てられる。このタイムアウト期間内に、ガーベッジコレクション動作の一部が実行される。書き込みコマンドに関連付けられたデータは、不揮発性メモリ記憶システムに関連付けられたバッファに書き込まれる。  In accordance with one embodiment of the present invention, a method for operating a non-volatile memory storage system is provided. In this method, a write command is received to write data. The write command is assigned a timeout period for completing execution of the write command. During this timeout period, part of the garbage collection operation is performed. Data associated with the write command is written to a buffer associated with the non-volatile memory storage system.

本発明の他の実施形態および利点は、本発明の原理を例を挙げて示す添付図面と関連して考慮される以下の詳細な記述から明らかである。  Other embodiments and advantages of the present invention will become apparent from the following detailed description considered in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.

本発明は、添付図面と関連する以下の詳細な記述によって容易に理解されるであろう。同様の参照数字は同様の構造要素を示す。  The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings. Like reference numerals indicate like structural elements.

本発明の1つの実施形態に従う、不揮発性メモリ記憶システムの例の簡略ブロック図である。1 is a simplified block diagram of an example non-volatile memory storage system, according to one embodiment of the invention. FIG.メモリセルアレイのプレーンへの編成の簡略ブロック図である。It is a simplified block diagram of organization of a memory cell array into planes.メモリセルのページの簡略ブロック図である。FIG. 3 is a simplified block diagram of a page of memory cells.メモリセルのセクタの簡略ブロック図である。FIG. 4 is a simplified block diagram of a sector of a memory cell.ホストと不揮発性メモリ記憶システムとの間の論理インターフェイスの簡略ブロック図である。2 is a simplified block diagram of a logical interface between a host and a non-volatile memory storage system. FIG.本発明の1つの実施形態に従う、段階的ガーベッジコレクションのための動作の概略のフローチャート図である。FIG. 3 is a schematic flowchart diagram of operations for phased garbage collection, according to one embodiment of the present invention.本発明の1つの実施形態に従う、複数の部分に分割された1つのガーベッジコレクション動作の簡略ブロック図を示す。FIG. 4 shows a simplified block diagram of a single garbage collection operation divided into multiple portions, in accordance with one embodiment of the present invention.本発明の1つの実施形態に従う、段階的ガーベッジコレクションを実行するための詳細な動作のフローチャート図である。FIG. 4 is a flowchart diagram of detailed operations for performing a stepwise garbage collection, in accordance with one embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされる順次更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 4 is a simplified block diagram of a memory block with sequential update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされる順次更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 4 is a simplified block diagram of a memory block with sequential update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 3 is a simplified block diagram of a memory block with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 3 is a simplified block diagram of a memory block with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 3 is a simplified block diagram of a memory block with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 3 is a simplified block diagram of a memory block with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。FIG. 3 is a simplified block diagram of a memory block with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention.本発明の1つの実施形態に従う、書き込みバッファブロックへのアクセスを最適化する動作のフローチャート図である。FIG. 5 is a flowchart diagram of operations for optimizing access to a write buffer block, according to one embodiment of the invention.本発明の1つの実施形態に従う、新しいデータをスクラッチパッドブロックに一時的に格納するための動作のフローチャート図である。FIG. 5 is a flowchart diagram of operations for temporarily storing new data in a scratch pad block, in accordance with one embodiment of the present invention.本発明の1つの実施形態に従う、シングルセクタ書き込みコマンドに関連付けられた不揮発性メモリ記憶システム動作のフローチャート図である。FIG. 4 is a flowchart diagram of non-volatile memory storage system operation associated with a single sector write command, in accordance with one embodiment of the present invention.本発明の1つの実施形態に従う、マルチセクタ書き込みコマンドに関連付けられた不揮発性メモリ記憶システム動作のフローチャート図である。FIG. 6 is a flowchart diagram of non-volatile memory storage system operation associated with a multi-sector write command, according to one embodiment of the invention.

添付図面と共に1つ以上の実施形態の詳細な記述が以下に提供される。この詳細な記述は、そのような実施形態と関連して提供されるけれども、特定の実施形態に限定されない。範囲は特許請求の範囲のみにより限定され、多くの変形例、改変、および同等物が含まれる。完全な理解を提供するために以下の記述において多くの特定の細部が明らかにされる。これらの細部は例示を目的として提供され、記述された実施形態はこれらの細部の一部または全部を用いずに特許請求の範囲に従って実現され得る。明瞭性を目的として、記述を不必要に分かりにくくしないように、実施形態に関連する技術分野で知られている技術的事項は詳しくは記述されていない。  A detailed description of one or more embodiments is provided below along with the accompanying drawings. This detailed description is provided in connection with such embodiments, but is not limited to any particular embodiment. The scope is limited only by the claims and includes many variations, modifications, and equivalents. In the following description, numerous specific details are set forth in order to provide a thorough understanding. These details are provided for the purpose of example, and the described embodiments may be implemented according to the claims without some or all of these details. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail so that the description is not unnecessarily obscured.

ここに記載されている実施形態は、段階的ガーベッジコレクションの方法および/またはシステムを提供する。一般的に、ガーベッジ動作は複数の段階に分割され得る。ガーベッジコレクション動作の段階(あるいは部分)は、複数のタイムアウト期間にわたって実行され得る。1つの実施形態では、以下でより詳しく説明されるように、ガーベッジコレクション動作の一部分は1タイムアウト期間内に実行され、書き込みコマンドから受け取られるデータはバッファに格納され得る。  The embodiments described herein provide a method and / or system for staged garbage collection. In general, the garbage operation can be divided into multiple stages. The stage (or portion) of the garbage collection operation may be performed over multiple timeout periods. In one embodiment, as described in more detail below, a portion of the garbage collection operation may be performed within one timeout period and data received from a write command may be stored in a buffer.

図1は、本発明の1つの実施形態に従う、不揮発性メモリ記憶システムの例の簡略ブロック図である。ホストシステム(例えば、デスクトップコンピュータ、オーディオプレーヤ、デジタルカメラ、および他の計算装置)は、不揮発性メモリ記憶システム102にデータを書き込み、またそこからデータを読み出すことができる。不揮発性メモリ記憶システム102は、ホストに組み込まれるか、あるいはホストに取り外し可能に接続され得る。図1に示されているように、不揮発性メモリ記憶システム102は、メモリ118と通信するメモリコントローラ110を含む。一般に、メモリコントローラ110はメモリ118の動作を制御する。動作の例は、データを書き込む(あるいはプログラムする)動作、データを読み出す動作、データを消去する動作、データをベリファイする動作、ガーベッジコレクション動作を処理する動作、および他の動作を含む。メモリコントローラ110はホストインターフェイス104を通してシステムバス126とインターフェイスするバス124を含み、メモリコントローラはメモリインターフェイス108を通してメモリ118とインターフェイスする。ホストインターフェイス104、プロセッサ106(例えば、マイクロプロセッサ、マイクロコントローラ、および他のプロセッサ)、メモリインターフェイス108、ランダムアクセスメモリ(RAM)112、誤り訂正符号(ECC)回路114、および読み出し専用メモリ(ROM)116は、バス124を通して通信する。ROM116は、メモリ118の動作を制御するためのプログラム命令を含む記憶システムファームウェアを記憶することができる。プロセッサ106は、ROM116からロードされたプログラム命令を実行するように構成される。記憶システムファームウェアはRAM112に一時的にロードされ、そして付加的に、RAMはホストとメモリ118との間で転送されるデータをバッファリングするために使用され得る。ECC回路114は、ホストとメモリ118との間でメモリコントローラ110を通るエラーがないかを調べる。エラーが発見されたならば、ECC回路114は数個のエラービットを訂正することができ、その個数は使用されるECCアルゴリズムによる。  FIG. 1 is a simplified block diagram of an example non-volatile memory storage system, according to one embodiment of the present invention. Host systems (eg, desktop computers, audio players, digital cameras, and other computing devices) can write data to and read data from the non-volatilememory storage system 102. The non-volatilememory storage system 102 can be built into the host or removably connected to the host. As shown in FIG. 1, the non-volatilememory storage system 102 includes a memory controller 110 that communicates with amemory 118. In general, the memory controller 110 controls the operation of thememory 118. Examples of operations include an operation of writing (or programming) data, an operation of reading data, an operation of erasing data, an operation of verifying data, an operation of processing a garbage collection operation, and other operations. Memory controller 110 includes a bus 124 that interfaces withsystem bus 126 throughhost interface 104, and the memory controller interfaces withmemory 118 throughmemory interface 108.Host interface 104, processor 106 (eg, microprocessors, microcontrollers, and other processors),memory interface 108, random access memory (RAM) 112, error correction code (ECC)circuit 114, and read only memory (ROM) 116 Communicate through the bus 124. TheROM 116 can store storage system firmware including program instructions for controlling the operation of thememory 118. Theprocessor 106 is configured to execute program instructions loaded from theROM 116. The storage system firmware is temporarily loaded intoRAM 112, and additionally, RAM can be used to buffer data transferred between the host andmemory 118. TheECC circuit 114 checks whether there is an error passing through the memory controller 110 between the host and thememory 118. If an error is found, theECC circuit 114 can correct several error bits, depending on the ECC algorithm used.

メモリ118は、アレイロジック120、不揮発性メモリセルアレイ122、およびメモリセルアレイ123を含むことができる。不揮発性メモリセルアレイ122は、いろいろな不揮発性メモリ構造および技術を含むことができる。不揮発性メモリ技術の例として、フラッシュメモリ(例えば、NAND、NOR、マルチレベルセル(MLC)、分割ビット線NOR(DINOR)、AND、大容量結合比(HiCR)、非対称無接点トランジスタ(ACT)、他のフラッシュメモリ)、消去可能でプログラム可能な読み出し専用メモリ(EPROM)、電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)、読み出し専用メモリ(ROM)、一回だけプログラム可能なメモリ(OTP)、および他のメモリ技術を含むことができる。  Thememory 118 can include anarray logic 120, a nonvolatile memory cell array 122, and amemory cell array 123. The non-volatile memory cell array 122 can include a variety of non-volatile memory structures and technologies. Examples of non-volatile memory technologies include flash memory (eg, NAND, NOR, multi-level cell (MLC), split bit line NOR (DINOR), AND, large capacitance coupling ratio (HiCR), asymmetric contactless transistor (ACT), Other flash memory), erasable programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), read only memory (ROM), one time programmable memory ( OTP), and other memory technologies.

1つの実施形態では、メモリ118は、付加的に、バッファを記憶するように構成されるメモリセルアレイ123を含むことができる。バッファは、段階的ガーベッジコレクション動作においてデータを記憶するように構成される。以下でより詳しく説明されるように、段階的ガーベッジコレクション動作では、書き込みコマンドから受け取られた新しいデータがバッファに格納され得る。本発明の実施形態に従って、バッファはRAM112および/または不揮発性メモリセルアレイ122に置かれてもよいということが理解されるべきである。不揮発性メモリセルアレイ122と同様に、メモリセルアレイ123はいろいろなメモリ構造および技術を含むことができる。メモリセルアレイ123はバッファリング動作のために構成されるので、メモリセルアレイは不揮発性メモリアレイ122より高速で、より経済的で、かつより信頼できる異なるメモリ構造を組み入れることができる。  In one embodiment, thememory 118 may additionally include amemory cell array 123 configured to store a buffer. The buffer is configured to store data in a stepwise garbage collection operation. As described in more detail below, in a stepwise garbage collection operation, new data received from a write command may be stored in the buffer. It should be understood that the buffer may be located inRAM 112 and / or non-volatile memory cell array 122 in accordance with embodiments of the present invention. Similar to the non-volatile memory cell array 122, thememory cell array 123 can include a variety of memory structures and technologies. Because thememory cell array 123 is configured for buffering operations, the memory cell array can incorporate different memory structures that are faster, more economical, and more reliable than the non-volatile memory array 122.

アレイロジック120は、メモリコントローラ110を不揮発性メモリセルアレイ122およびメモリセルアレイ123とインターフェイスさせ、そして、例えばアドレス指定、データ転送およびセンシング、および他のサポートを不揮発性メモリセルアレイおよびメモリセルアレイに提供することができる。不揮発性メモリセルアレイ122およびメモリセルアレイ123をサポートするために、アレイロジック120は行デコーダ、列デコーダ、電荷ポンプ、ワード線電圧発生器、ページバッファ、入出力バッファ、アドレスバッファ、および他の回路を含むことができる。  Array logic 120 may interface memory controller 110 with non-volatile memory cell array 122 andmemory cell array 123 and provide, for example, addressing, data transfer and sensing, and other support to the non-volatile memory cell array and memory cell array. it can. In order to support the non-volatile memory cell array 122 and thememory cell array 123, thearray logic 120 includes a row decoder, a column decoder, a charge pump, a word line voltage generator, a page buffer, an input / output buffer, an address buffer, and other circuits. be able to.

図2は、メモリセルアレイのプレーンへの編成の簡略ブロック図である。1つ以上のメモリセルアレイは、複数のプレーンまたはサブアレイに分割され得る。図2の例では、1つのメモリセルアレイが4つのプレーン202〜205に分割されている。1,2,8,16,あるいはそれ以上など、他の数のプレーンが不揮発性メモリ記憶システムに存在し得ることが理解されるべきである。各プレーン202,203,204,または205は、それぞれのプレーン202〜205内に位置するブロック210〜213および220〜223のようなメモリセルのブロックに分割され得る。メモリセルのブロックは、物理的に一緒に消去可能な最小数のメモリセルである。並列性を高めるために、ブロックはより大きなメタブロック単位で操作され、その場合各プレーン202,203,204,または205からの1ブロックが互いに論理的にリンクされて1つのメタブロックを形成する。例えば、4つのブロック210〜213が互いに論理的にリンクされて1つのメタブロックを形成することができる。さらに、メタブロックを形成するために使用されるブロックは、プレーン202〜205のようなそれぞれのプレーン内のいろいろな位置からのブロックであり得る。例えば、それぞれのプレーン202〜205内のいろいろな位置からの4つのブロック220〜223は、論理的に互いにリンクされて他の1つのメタブロックを形成することができる。メタブロックは不揮発性メモリ記憶システム内の4つの論理プレーン202〜205の全てにわたって広がることができ、あるいは不揮発性メモリ記憶システムは1つ以上の異なるプレーン内の1つ以上のブロックから動的にメタブロックを形成することができる。  FIG. 2 is a simplified block diagram of the organization of the memory cell array into planes. One or more memory cell arrays may be divided into a plurality of planes or subarrays. In the example of FIG. 2, one memory cell array is divided into fourplanes 202 to 205. It should be understood that other numbers of planes, such as 1, 2, 8, 16, or more may exist in a non-volatile memory storage system. Eachplane 202, 203, 204, or 205 may be divided into blocks of memory cells such as blocks 210-213 and 220-223 located within the respective plane 202-205. A block of memory cells is the minimum number of memory cells that can be physically erased together. To increase parallelism, the blocks are operated in larger metablock units, where one block from eachplane 202, 203, 204, or 205 is logically linked together to form one metablock. For example, four blocks 210-213 can be logically linked together to form one metablock. Further, the blocks used to form the metablocks can be blocks from various locations within each plane, such as planes 202-205. For example, four blocks 220-223 from various locations within each plane 202-205 can be logically linked together to form another one metablock. A metablock can extend across all four logical planes 202-205 in a non-volatile memory storage system, or a non-volatile memory storage system can dynamically meta data from one or more blocks in one or more different planes. Blocks can be formed.

図3は、メモリセルのページの簡略ブロック図である。ブロック210〜213のような各々のブロックは、メモリセルのページにさらに分割されている。図3に示されているように、各ブロック210,211,212,あるいは213は8ページP0〜P7に分割されている。代わりに、各ブロック210,211,212,あるいは213の中にメモリセルの16ページ、32ページ、あるいはもっと多くのページがあり得る。不揮発性メモリ記憶システムの動作並列性を高めるために、2つ以上のブロックの中のページが論理的にリンクされてメタページにされてもよい。例えば、4つのブロック210〜213の各々からの、P1のような1つずつのページでメタページが形成され得る。メタページは不揮発性メモリ記憶システム内の全てのプレーンにわたって広がることができ、あるいは不揮発性メモリ記憶システムは1つ以上の異なるプレーン内の1つ以上の別々のブロック内の1つ以上のページからメタページを動的に形成することができる。  FIG. 3 is a simplified block diagram of a page of memory cells. Each block, such as blocks 210-213, is further divided into pages of memory cells. As shown in FIG. 3, eachblock 210, 211, 212, or 213 is divided into 8 pages P0 to P7. Alternatively, there may be 16 pages, 32 pages, or more pages of memory cells in eachblock 210, 211, 212, or 213. To increase the operational parallelism of non-volatile memory storage systems, pages in two or more blocks may be logically linked into metapages. For example, a metapage may be formed with one page, such as P1, from each of the four blocks 210-213. A metapage can span across all planes in a non-volatile memory storage system, or a non-volatile memory storage system can meta-data from one or more pages in one or more separate blocks in one or more different planes. Pages can be formed dynamically.

図4は、メモリセルのセクタの簡略ブロック図である。ページは1つ以上のセクタにさらに分割され得る。各ページ内のデータの量は、整数個の1つ以上のセクタのデータであることができ、各セクタは512バイトのデータを記憶することができる。図4は、2つのセクタ402および404に分割されたページ401を示す。各セクタ402または404は、512バイトのサイズであり得るデータ406と、データに関連付けられたオーバーヘッドデータ405とを含む。オーバーヘッドデータ405のサイズは16バイトであることができ、例えば、プログラミング中にデータ406から計算されたECCと、データに関連付けられた論理アドレスと、ブロックが消去され再プログラムされた総回数と、制御フラグと、動作電圧レベルと、データに関連付けられた他の情報とを記憶することができる。  FIG. 4 is a simplified block diagram of a sector of a memory cell. A page may be further divided into one or more sectors. The amount of data in each page can be an integer number of one or more sectors of data, and each sector can store 512 bytes of data. FIG. 4 shows a page 401 that is divided into two sectors 402 and 404. Each sector 402 or 404 includesdata 406, which may be 512 bytes in size, andoverhead data 405 associated with the data. The size of theoverhead data 405 can be 16 bytes, for example, the ECC calculated from thedata 406 during programming, the logical address associated with the data, the total number of times the block has been erased and reprogrammed, and the control Flags, operating voltage levels, and other information associated with the data can be stored.

図5は、ホストと不揮発性メモリ記憶システムとの間の論理インターフェイスの簡略ブロック図である。連続的論理アドレス空間512はメモリに格納され得るデータのためにアドレスを提供する。ホストに見られる論理アドレス空間512は、データのクラスタのインクリメントに分割され得る。各クラスタは、例えば4セクタと64セクタとの間の数個のセクタのデータを含むことができる。  FIG. 5 is a simplified block diagram of a logical interface between a host and a non-volatile memory storage system. The continuous logical address space 512 provides addresses for data that can be stored in memory. The logical address space 512 seen by the host can be divided into increments of clusters of data. Each cluster may contain several sectors of data, for example between 4 and 64 sectors.

図5に示されているように、ホスト上で実行されるアプリケーションプログラムは3つのデータファイル1,2,および3を作る。ファイル1,2,および3は、データの順序集合であることができて、一意の名前または他のリファレンスにより識別される。ホストは、他のファイルに既に配置されていない論理アドレス空間をファイル1に割り当てる。ここで、ファイル1は1つの連続的範囲の利用可能な論理アドレスを割り当てられているように示されている。  As shown in FIG. 5, the application program executed on the host creates threedata files 1, 2, and 3.Files 1, 2, and 3 can be ordered sets of data and are identified by unique names or other references. The host assigns to file 1 a logical address space that is not already arranged in another file. Here,file 1 is shown as being assigned one continuous range of available logical addresses.

ホストがファイル1の後にファイル2を作るとき、ホストは論理アドレス空間512の中の2つの異なる範囲の連続的アドレスを同様に割り当てる。ホストは、ファイル1,2,または3のようなファイルに連続的な論理アドレスを割り当てることはできず、既に他のファイルに割り当てられている論理アドレス範囲の間の論理アドレスのフラグメントを割り当てることができる。図5の例は、前にファイル1および2および他のデータに割り当てられていなかった論理アドレス空間512の中の1つの不連続的なアドレス範囲が他の1つのファイル3に割り当てられることを示している。  When the host createsfile 2 afterfile 1, the host assigns two different ranges of consecutive addresses in logical address space 512 as well. A host cannot assign consecutive logical addresses to files such asfiles 1, 2, or 3, but can assign logical address fragments between logical address ranges already assigned to other files. it can. The example of FIG. 5 shows that one non-contiguous address range in logical address space 512 that was not previously assigned tofiles 1 and 2 and other data is assigned to oneother file 3. ing.

ホストはファイル割り当てテーブル(FAT)を維持することによって論理アドレス空間512を追跡することができ、ここで変換によりファイル1〜3のような種々のデータファイルにホストによって割り当てられた論理アドレスが維持される。ホストはファイル1〜3を、不揮発性メモリ記憶システムがファイルを格納した物理的位置によってではなくて、それらの論理アドレスにより、参照する。一方、不揮発性メモリ記憶システムは、データが書き込まれている論理アドレスの部分によってファイル1〜3を参照するのであって、ファイルに割り当てられた論理アドレスによってファイルを参照するのではない。不揮発性メモリ記憶システムは、ホストにより提供された論理アドレスを、ホストからのデータが格納されるメモリセルアレイ502内の一意の物理アドレスに変換する。ブロック504は、これらの論理アドレス−物理アドレス変換のテーブルを表し、これは不揮発性メモリ記憶システムにより維持される。  The host can track the logical address space 512 by maintaining a file allocation table (FAT), where the translation maintains the logical addresses assigned by the host to various data files such as files 1-3. The The host references files 1-3 by their logical addresses, not by the physical location where the non-volatile memory storage system stored the files. On the other hand, the nonvolatile memory storage system refers to thefiles 1 to 3 by the portion of the logical address in which data is written, and does not refer to the file by the logical address assigned to the file. The non-volatile memory storage system converts the logical address provided by the host into a unique physical address in thememory cell array 502 in which data from the host is stored.Block 504 represents a table of these logical address-physical address translations, which is maintained by the non-volatile memory storage system.

図6は、本発明の1つの実施形態に従う、段階的ガーベッジコレクションのための動作の概略のフローチャート図である。特定のホスト論理アドレスに格納されたデータはオリジナルの格納されているデータが陳腐化したときに新しいデータで上書きされ得るということが理解されるべきである。不揮発性メモリ記憶システムは、これに応じて、その新しいデータを更新ブロックに書き込み、そしてその新しいデータが格納された新しい物理的ブロックを特定するためにこれらの論理アドレスについて論理アドレス−物理アドレステーブルを変更する。これらの論理アドレスに存するオリジナルデータを含むブロックはその後消去され、付加的なデータの格納のために利用可能にされる。そのような消去は、書き込み動作の前に実行され得る。その結果として、メモリコントローラは、所与の論理アドレスに存するデータが新データが同じ論理アドレスに書き込まれた後にホストによって陳腐化あるいは無効にされたことを知る。従って、メモリの多数のブロックがある期間にわたって無効のデータを記憶しているということがあり得る。  FIG. 6 is a schematic flowchart diagram of operations for staged garbage collection, in accordance with one embodiment of the present invention. It should be understood that data stored at a particular host logical address can be overwritten with new data when the original stored data becomes obsolete. In response, the non-volatile memory storage system writes the new data to the update block and creates a logical address-physical address table for these logical addresses to identify the new physical block where the new data is stored. change. The block containing the original data present at these logical addresses is then erased and made available for storing additional data. Such erasure can be performed before the write operation. As a result, the memory controller knows that the data residing at a given logical address has been stale or invalidated by the host after the new data has been written to the same logical address. Thus, it is possible that many blocks of memory have stored invalid data over a period of time.

ブロックおよびメタブロックのサイズは増大しつつあり、この増大は、個々のデータ書込みの大きな部分が、1つのメタブロックの記憶容量より少ない、また多くの場合に1つのブロックのものよりも少ない量のデータを格納するという結果をもたらす。不揮発性メモリ記憶システムは、新しいデータを消去済みプールメタブロックに向け得るので、そのような向け方はブロックまたはメタブロックの部分が満たされないという結果をもたらし得る。新データが他の1つのメタブロックに格納されているあるデータの更新であるならば、他の1つのメタブロックからのデータの、新データメタページのものに連続する論理アドレスを有する残りの有効なメタページも新しいメタブロックに論理アドレス順にコピーされる。旧メタブロックは、他の有効なデータメタページを保つことができる。従って、個々のメタブロックのあるメタページのデータが陳腐化あるいは無効化され、同じ論理アドレスが異なるメタブロックに書き込まれて新データに取って代わられ得る。  The size of blocks and metablocks is increasing and this increase is due to the fact that a large portion of each data write is less than the storage capacity of one metablock and often less than that of one block. Resulting in storing data. Since non-volatile memory storage systems can direct new data to the erased pool metablock, such orientation can result in the block or portion of the metablock not being filled. If the new data is an update of some data stored in one other metablock, the remaining valid with the logical address consecutive to that of the new data metapage of the data from the other one metablock Metapages are also copied to the new metablock in logical address order. Old metablocks can hold other valid data metapages. Thus, the data on a metapage with individual metablocks can become obsolete or invalidated, and the same logical address can be written into different metablocks to replace the new data.

論理アドレス空間にデータを格納するための充分な物理メモリ空間を維持するために、そのようなデータは定期的にガーベッジコレクション(すなわち、圧縮または整理統合)され得る。一般に、ガーベッジコレクション動作は、ブロックから有効なデータを読み出してその有効なデータを新しいブロックに書き込むことを含み、その過程で無効なデータを無視する。例えば、図5のブロック図では、新データファイル3の作成は旧データファイル3を陳腐化する。旧データファイル3は、旧データファイル3により使用されていた物理容量を再生利用するために、消去され得る。しかし、そのような消去動作は、ファイル2と旧ファイル3とが同じ物理的ブロックに格納されていたならば、ガーベッジコレクション動作をトリガする。  In order to maintain sufficient physical memory space for storing data in the logical address space, such data can be periodically garbage collected (ie, compressed or consolidated). In general, a garbage collection operation includes reading valid data from a block and writing the valid data to a new block, ignoring invalid data in the process. For example, in the block diagram of FIG. 5, the creation of the new data file 3 makes theold data file 3 obsolete. Theold data file 3 can be deleted in order to reclaim the physical capacity used by theold data file 3. However, such an erase operation triggers a garbage collection operation iffile 2 andold file 3 were stored in the same physical block.

図6に戻って、不揮発性メモリ記憶システムは、書き込みコマンドに割り当てられたタイムアウト期間の中でガーベッジコレクション動作を実行することができる。ガーベッジコレクション動作が1タイムアウト期間内に完了され得なければ、本発明の1つの実施形態に従って、その1つのガーベッジコレクション動作は数個の異なる段階(または部分)に分割され得る。ここで、不揮発性メモリ記憶システムは、複数の書き込みコマンドに割り当てられたタイムアウト期間を用いてガーベッジコレクション動作の部分を実行する。換言すれば、不揮発性メモリ記憶システムは、1つのガーベッジコレクション動作の部分を実行するために、複数の書き込みコマンドに割り当てられたタイムアウト期間を利用する。  Returning to FIG. 6, the non-volatile memory storage system may perform a garbage collection operation within the timeout period assigned to the write command. If a garbage collection operation cannot be completed within one timeout period, that one garbage collection operation can be divided into several different stages (or portions) according to one embodiment of the present invention. Here, the non-volatile memory storage system performs a portion of the garbage collection operation using a timeout period assigned to a plurality of write commands. In other words, the non-volatile memory storage system utilizes a timeout period assigned to multiple write commands to perform a portion of one garbage collection operation.

図6に示されているように、新しいデータを書き込む書き込みコマンドが動作602で受け取られる。本願明細書で使用される“新しいデータ”という用語は、メモリに書き込まれるべき書き込みコマンドから不揮発性メモリ記憶システムにより受け取られるデータとして定義される。書き込みコマンドには、書き込みコマンドの実行を完了させるためのタイムアウト期間が割り当てられる。換言すれば、タイムアウト期間は、書き込みコマンドの実行のために割り当てられた期間である。割り当てられるタイムアウト期間の一例は250ミリ秒である。書き込みコマンドは、シングルセクタ書き込みコマンドまたはマルチセクタ書き込みコマンドであり得る。以下でより詳しく説明されるように、シングルセクタ書き込みコマンドでは、新しいデータは単一セクタとしてメモリ中のランダムなアドレスに書き込まれ得る。マルチセクタ書き込みコマンドでは、連続的な論理アドレスを有する新しいデータの複数のセクタがメモリに書き込まれる。  As shown in FIG. 6, a write command to write new data is received atoperation 602. The term “new data” as used herein is defined as data received by a non-volatile memory storage system from a write command to be written to memory. The write command is assigned a timeout period for completing execution of the write command. In other words, the timeout period is a period allocated for execution of the write command. An example of an assigned timeout period is 250 milliseconds. The write command can be a single sector write command or a multi-sector write command. As described in more detail below, with a single sector write command, new data can be written as a single sector to a random address in memory. With a multi-sector write command, multiple sectors of new data having consecutive logical addresses are written to memory.

1つのガーベッジコレクション動作がタイムアウト期間内に完了され得なければ、動作604に示されているように、ガーベッジコレクション動作の一部分が書き込みコマンドに割り当てられたタイムアウト期間内に実行される。ガーベッジコレクションの残りの部分は、後のタイムアウト期間に完了させられ得る。例えば、図7は、本発明の1つの実施形態に従う、複数の部分780および781に分割された1つのガーベッジコレクション動作の例の簡略ブロック図を示す。図7に示されているように、不揮発性メモリ記憶システムは、マルチセクタ書き込みコマンド704を受け取り、その後に新しいデータの複数のセクタ760〜762がメモリに格納されるべく受け取られる。データの各セクタ760,761,または762が受け取られた後にビジー信号702がアサートされる。不揮発性メモリ記憶システムは書き込みコマンドの実行を許すためにビジー信号702をアサートするが、それは(必要ならば)ガーベッジコレクション動作と他の動作とを含むことができる。ホストは、ビジー信号702がアサートされているときには他のコマンドまたは追加のデータを不揮発性メモリ記憶システムに送らない。ホストは書き込みコマンドの実行のために限られた一定量の時間(すなわち、タイムアウト期間750〜752)を与えるので、不揮発性メモリ記憶システムはデータの各セクタ760,761,または762が受け取られた後に限られた量の時間にわたってビジー信号702をアサートすることができる。ビジー信号がタイムアウト期間750,751,または752より長くアクティブであり続ければ、ホストは書き込みコマンドを反復するかあるいはプロセスをアボートすることができる。従って、不揮発性メモリ記憶システムは、タイムアウト期間750,751,または752より長くビジー信号702をアサートすることはできない。データの複数のセクタ760〜762の書き込みの完了後のビジー信号702の解除は、ホストが不揮発性メモリ記憶システムとさらに通信することを可能にする。  If one garbage collection operation cannot be completed within the timeout period, a portion of the garbage collection operation is performed within the timeout period assigned to the write command, as shown in operation 604. The remainder of the garbage collection can be completed at a later timeout period. For example, FIG. 7 shows a simplified block diagram of an example of a single garbage collection operation divided into a plurality of portions 780 and 781, in accordance with one embodiment of the present invention. As shown in FIG. 7, the non-volatile memory storage system receives amulti-sector write command 704, after which multiple sectors 760-762 of new data are received to be stored in memory. A busy signal 702 is asserted after eachsector 760, 761, or 762 of data is received. The non-volatile memory storage system asserts a busy signal 702 to allow execution of a write command, which can include garbage collection operations and other operations (if necessary). The host does not send other commands or additional data to the non-volatile memory storage system when the busy signal 702 is asserted. Since the host provides a limited amount of time for the execution of the write command (ie, the timeout period 750-752), the non-volatile memory storage system will receive after eachsector 760, 761, or 762 of data has been received. The busy signal 702 can be asserted for a limited amount of time. If the busy signal remains active longer than thetimeout period 750, 751, or 752, the host can repeat the write command or abort the process. Thus, the non-volatile memory storage system cannot assert the busy signal 702 for longer than thetimeout period 750, 751, or 752. Release of busy signal 702 after completion of writing of multiple sectors 760-762 of data allows the host to further communicate with the non-volatile memory storage system.

図7をなお参照すると、ガーベッジコレクションの部分780および781は複数のタイムアウト期間750〜752の間に割り当てられ得る。換言すれば、不揮発性メモリ記憶システムは、1つのガーベッジコレクション動作の各部分780または781を実行するために各タイムアウト期間750,751,または752を利用することができる。例えば、1つのガーベッジコレクションの第1の部分780は第1のタイムアウト期間750の間に実行される。ここで、有効なデータの部分が第1のタイムアウト期間750中に1ブロックから他の1ブロックにコピーされ得る。第2のタイムアウト期間751において、第1のタイムアウト期間に開始された前のガーベッジコレクション動作が続けられる。不揮発性メモリ記憶システムは、前のガーベッジコレクションが完了するまで、タイムアウト期間751の間に前のガーベッジコレクション動作の第2の部分781を実行する。前のガーベッジコレクションは、有効なデータの残りの部分または最後の部分を1ブロックから他の1ブロックにコピーすることによって完了させられ得る。前のガーベッジコレクション動作が第2のタイムアウト期間751内に完了させられ得なければ、不揮発性メモリ記憶システムはガーベッジコレクション動作を完了させるために、第3のタイムアウト期間752のような後のタイムアウト期間を使用することができる。マルチセクタ書き込みコマンド704の終わりに、不揮発性メモリ記憶システムは、ストップコマンド706が受け取られた後に、データの全てのセクタ760〜762がメモリセルアレイに書き込まれるまでビジー信号をアサートすることができる。図7はマルチセクタ書き込みコマンドに関連する動作を示しているということに留意するべきである。以下でより詳しく説明されるように、実行されるガーベッジコレクション動作は、シングルセクタ書き込みコマンドとマルチセクタ書き込みコマンドとについては異なり得る。例えば、以下でより詳しく説明されるように、新しいデータを格納するために使用されるバッファのタイプは、受け取られた書き込みコマンドがシングルセクタ書き込みコマンドであるのか、それともマルチセクタ書き込みコマンドであるのかによる。  Still referring to FIG. 7, garbage collection portions 780 and 781 may be allocated during a plurality of timeout periods 750-752. In other words, the non-volatile memory storage system can utilize eachtimeout period 750, 751, or 752 to perform each portion 780 or 781 of one garbage collection operation. For example, a first portion 780 of one garbage collection is performed during afirst timeout period 750. Here, a portion of valid data can be copied from one block to another during thefirst timeout period 750. In thesecond timeout period 751, the previous garbage collection operation started in the first timeout period is continued. The non-volatile memory storage system performs the second portion 781 of the previous garbage collection operation during thetimeout period 751 until the previous garbage collection is complete. The previous garbage collection can be completed by copying the remaining or last part of valid data from one block to another. If the previous garbage collection operation cannot be completed within thesecond timeout period 751, the non-volatile memory storage system may use a later timeout period, such as thethird timeout period 752, to complete the garbage collection operation. Can be used. At the end of themulti-sector write command 704, the non-volatile memory storage system can assert a busy signal until all sectors 760-762 of data are written to the memory cell array after thestop command 706 is received. It should be noted that FIG. 7 illustrates operations associated with a multi-sector write command. As will be described in more detail below, the garbage collection operations performed may be different for single sector write commands and multi-sector write commands. For example, as described in more detail below, the type of buffer used to store new data depends on whether the received write command is a single sector write command or a multi-sector write command. .

図6に戻って、ガーベッジコレクション動作の一部分がタイムアウト期間内に実行された後、動作606で、書き込み動作から受け取られた新しいデータは不揮発性メモリ記憶システムに関連付けられたバッファに格納され得る。1つの実施形態では、バッファは不揮発性メモリセルアレイ(例えば、図1に示されている不揮発性メモリアレイ122)に関連付けられたデータ構造であり得る。データ構造の例は、書き込みバッファブロックのような不揮発性メモリセルアレイのブロックを含み、これは以下でより詳しく記載される。他の1つの実施形態では、バッファは揮発性メモリセルアレイのブロックであり得る。例えば、新しいデータは、不揮発性メモリ記憶システムに関連付けられたRAM(例えば、図1に示されているRAM112)に置かれたブロックに格納され得る。さらに他の1つの実施形態では、前に論じられたように、新しいデータは別のメモリセルアレイ(例えば、図1に示されているメモリセルアレイ123)に置かれたブロックに格納され得る。  Returning to FIG. 6, after a portion of the garbage collection operation is performed within the timeout period, at operation 606 new data received from the write operation may be stored in a buffer associated with the non-volatile memory storage system. In one embodiment, the buffer may be a data structure associated with a non-volatile memory cell array (eg, non-volatile memory array 122 shown in FIG. 1). Examples of data structures include non-volatile memory cell array blocks, such as write buffer blocks, which are described in more detail below. In another embodiment, the buffer may be a block of a volatile memory cell array. For example, new data may be stored in blocks located in RAM (eg,RAM 112 shown in FIG. 1) associated with the non-volatile memory storage system. In yet another embodiment, as previously discussed, new data may be stored in blocks located in another memory cell array (eg,memory cell array 123 shown in FIG. 1).

図8は、本発明の1つの実施形態に従う、段階的ガーベッジコレクションを実行するための詳細な動作のフローチャート図である。図8に示されているように、新しいデータをメモリに書き込むために書き込みコマンドが動作802で受け取られる。1つの実施形態では、書き込みコマンドはシングルセクタ書き込みコマンドである。ある環境では、以下でより詳しく説明されるように、他の1つの実施形態に従って、書き込みコマンドはマルチセクタ書き込みコマンドでもあり得る。書き込みコマンドが受け取られた後、不揮発性メモリ記憶システムは動作804でビジー信号をアサートする。  FIG. 8 is a flowchart diagram of detailed operations for performing tiered garbage collection, according to one embodiment of the present invention. As shown in FIG. 8, a write command is received atoperation 802 to write new data to the memory. In one embodiment, the write command is a single sector write command. In some circumstances, the write command may also be a multi-sector write command, as described in more detail below, according to another embodiment. After the write command is received, the non-volatile memory storage system asserts a busy signal at operation 804.

書き込みコマンドが実行される前に、動作806でガーベッジコレクション期間の間にガーベッジコレクション動作の一部分が実行される。例えば、1つの実施形態では、1つ以上のブロックがガーベッジコレクション動作のために選択される。その1つ以上のブロックは有効なデータおよび/または無効なデータを含み得る。有効なデータは、ガーベッジコレクション期間中に第2のブロックにコピーされる。ガーベッジコレクション動作に割り当てられたガーベッジコレクション期間と、コピーされるべき有効なデータの量とにより、有効なデータの全部または有効なデータの一部分が第2のブロックにコピーされる。ガーベッジコレクション動作のために割り当てられたガーベッジコレクション期間は、
ガーベッジコレクション期間=タイムアウト期間−Tprog
と表現することができ、ここでタイムアウト期間は、前に論じられたように、固定された、限られた期間である。Tprogは、新しいデータをメモリに(例えば、バッファに)書き込むことに関連付けられた最大プログラミング時間であるか、あるいは不揮発性メモリ記憶システムが新しいデータをメモリに書き込むために必要とする最大時間である。その結果として、1つの実施形態では、不揮発性メモリ記憶システムは、有効なデータを1つ以上のブロックから第2のブロックにコピーするための時間の量を追跡する。不揮発性メモリ記憶システムは、時間がガーベッジコレクション期間を超える前にコピーをやめる。
A portion of the garbage collection operation is performed during the garbage collection period atoperation 806 before the write command is executed. For example, in one embodiment, one or more blocks are selected for a garbage collection operation. The one or more blocks may include valid data and / or invalid data. Valid data is copied to the second block during garbage collection. Depending on the garbage collection period assigned to the garbage collection operation and the amount of valid data to be copied, all of the valid data or a portion of the valid data is copied to the second block. Garbage collection period allocated for garbage collection operation is
Garbage collection period = timeout period-Tprog
Where the timeout period is a fixed, limited period as previously discussed. Tprog is the maximum programming time associated with writing new data to memory (eg, to a buffer) or the maximum time that a non-volatile memory storage system needs to write new data to memory. As a result, in one embodiment, the non-volatile memory storage system tracks the amount of time to copy valid data from one or more blocks to the second block. Non-volatile memory storage systems cease copying before the time exceeds the garbage collection period.

ガーベッジコレクション動作がガーベッジコレクション期間により完了させられ得なければ、書き込みコマンドに関連付けられた新しいデータは動作810で書き込みバッファブロックに書き込まれ得る。不揮発性メモリ記憶システムは、ガーベッジコレクション動作の前に、間に、または後に、新しいデータを書き込みバッファブロックに書き込むことができる。以下でより詳しく説明されるように、ガーベッジコレクション動作が完了すると直ぐに新しいデータは書き込みバッファブロックから更新ブロックにコピーされ得る。書き込みバッファブロックは不揮発性メモリ記憶システムによってメモリ内に維持される。一般に、書き込みバッファブロックは、不揮発性メモリ記憶システムにおいて新しいデータをバッファリングする。1つの実施形態では、書き込みバッファブロックは複数の論理アドレスにわたって広がる。他の1つの実施形態では、書き込みバッファブロックは1つの論理アドレス空間全体にわたって広がる。論理アドレス空間全体にわたって広がることで、書き込みバッファブロックは、不揮発性メモリ記憶システム全体にわたって全ての論理アドレスと論理アドレスの全てのグループ(すなわち、全ての論理グループ)に書き込まれようとしているデータを記憶することができる。換言すれば、複数の異なる論理グループと関連付けられた新しいデータが書き込みバッファブロックに格納され得る。論理グループは、メタブロックのサイズと同等であり得るサイズを有する論理アドレスのグループである。新しいデータは、順次にあるいは非順次に(すなわち、カオス的またはランダムな順序で)書き込みバッファブロックに書き込まれ得る。以下でより詳しく説明されるように、書き込みバッファブロックに書き込まれた新しいデータは後に他のブロック(例えば、更新ブロック)にコピーされるので、書き込みバッファブロックは一時的バッファとして役立つ。本願明細書で使用される“書き込みバッファブロッククリーニング”という用語は、書き込みバッファブロックに格納された新しいデータが他のブロックにコピーされることを意味する。  If the garbage collection operation cannot be completed by the garbage collection period, new data associated with the write command can be written to the write buffer block atoperation 810. The non-volatile memory storage system can write new data to the write buffer block before, during, or after the garbage collection operation. As will be described in more detail below, new data may be copied from the write buffer block to the update block as soon as the garbage collection operation is complete. The write buffer block is maintained in memory by a non-volatile memory storage system. In general, the write buffer block buffers new data in a non-volatile memory storage system. In one embodiment, the write buffer block extends across multiple logical addresses. In another embodiment, the write buffer block extends across one logical address space. By extending across the entire logical address space, the write buffer block stores data that is about to be written to all logical addresses and all groups of logical addresses (ie, all logical groups) throughout the non-volatile memory storage system. be able to. In other words, new data associated with a plurality of different logical groups can be stored in the write buffer block. A logical group is a group of logical addresses having a size that can be equal to the size of a metablock. New data may be written to the write buffer block sequentially or non-sequentially (ie, in chaotic or random order). As will be described in more detail below, the write buffer block serves as a temporary buffer because new data written to the write buffer block is later copied to another block (eg, an update block). As used herein, the term “write buffer block cleaning” means that new data stored in a write buffer block is copied to another block.

1つの実施形態では不揮発性メモリ記憶システムが書き込みバッファブロックを段階的ガーベッジコレクション動作のために使用するということに留意するべきである。従って、書き込みバッファブロックは最も更新された新しいデータを記憶していないかもしれない。その結果として、新しいデータが後の読み出し動作で読み出されるならば、不揮発性メモリ記憶システムは、更新ブロックに格納されている新しいデータと書き込みバッファブロックに格納されている新しいデータとのどちらが最も新たに更新されたものであるかを調べる。読み出し動作は、その後、最も新たに更新された新しいデータにアクセスして戻す。他の1つの実施形態では、不揮発性メモリ記憶システムは、非段階的ガーベッジコレクション動作および段階的ガーベッジコレクション動作の両方のために書き込みバッファブロックを使用することができる。ここでは、書き込みバッファブロックは全ての書き込み動作のために使用される。換言すれば、非段階的ガーベッジコレクションおよび段階的ガーベッジコレクション動作からの新しいデータが書き込みバッファブロックに書き込まれる。従って、書き込みバッファブロックは、書き込みキャッシュのように動作し、従って最も新たに更新された新しいデータを包含する。  It should be noted that in one embodiment, the non-volatile memory storage system uses write buffer blocks for phased garbage collection operations. Thus, the write buffer block may not store the most updated new data. As a result, if new data is read in a later read operation, the non-volatile memory storage system is the most recent of the new data stored in the update block and the new data stored in the write buffer block. Check if it has been updated. A read operation then accesses and returns the most recently updated new data. In another embodiment, the non-volatile memory storage system may use a write buffer block for both non-staged garbage collection operations and staged garbage collection operations. Here, the write buffer block is used for all write operations. In other words, new data from non-staged garbage collection and staged garbage collection operations is written to the write buffer block. Thus, the write buffer block behaves like a write cache and thus contains the most recently updated new data.

書き込みバッファブロックに関連付けられたインデックス情報は、別のデータ構造に、あるいは書き込みバッファブロック自体の一部として、格納され得る。そのデータ構造はメモリコントローラのRAMに格納され得る。データ構造に格納されたインデックス情報は、書き込みバッファブロックに格納されたデータのトラッキングおよびアクセスを可能にする。インデックス情報は、例えば、書き込みバッファブロック内の位置への論理アドレスのマップまたは書き込みバッファブロックの有効な索引へのポインタを含むことができる。索引情報は、更新ブロックが閉じられた後あるいは書き込みバッファブロックへの数個の更新の後に、更新され得る。以下でより詳しく説明されるように、1つの実施形態では、書き込みバッファブロックはセクタレベルの索引のために構成され得る。他の1つの実施形態では、書き込みバッファブロックはページ境界索引のために構成され得る。書き込みバッファブロックは、満杯時に圧縮されることもできる。例えば、書き込みバッファブロックに格納されている有効なデータは新しいブロックにコピーされ、それは新しい書き込みバッファブロックとして参照されるべきあり、陳腐なエントリを有する既存の書き込みバッファブロックは消去される。本願明細書で使用される“書き込みバッファ圧縮”という用語は、書き込みバッファブロックに格納されている有効なデータが圧縮されることを意味する。  Index information associated with the write buffer block may be stored in a separate data structure or as part of the write buffer block itself. The data structure can be stored in the RAM of the memory controller. The index information stored in the data structure allows tracking and access of data stored in the write buffer block. The index information can include, for example, a logical address map to a location in the write buffer block or a pointer to a valid index of the write buffer block. The index information can be updated after the update block is closed or after several updates to the write buffer block. As described in more detail below, in one embodiment, the write buffer block may be configured for a sector level index. In another embodiment, the write buffer block may be configured for a page boundary index. Write buffer blocks can also be compressed when full. For example, valid data stored in a write buffer block is copied to a new block, which should be referred to as a new write buffer block, and an existing write buffer block with stale entries is erased. As used herein, the term “write buffer compression” means that valid data stored in a write buffer block is compressed.

図8をなお参照すると、新しいデータが書き込みバッファブロックに書き込まれ、かつガーベッジコレクション動作がガーベッジコレクション期間中に実行された後、不揮発性メモリ記憶システムは動作812でタイムアウト期間の前にビジー信号を解除する。従って、1つのガーベッジコレクション動作または1つのガーベッジコレクション動作の一部分を含む書き込みコマンドを実行するための合計時間はタイムアウト期間を越えない。タイムアウト期間内にガーベッジコレクション動作の一部分が実行されるのであれば、残りの部分は後のタイムアウト期間で完了させられる。ガーベッジコレクション動作が完了すると、ガーベッジコレクションされた1つ以上のブロックが消去されて付加的なデータの格納のために利用可能にされる。  Still referring to FIG. 8, after new data is written to the write buffer block and a garbage collection operation is performed during the garbage collection period, the non-volatile memory storage system releases the busy signal before the timeout period at operation 812. To do. Thus, the total time for executing a write command that includes one garbage collection operation or a portion of one garbage collection operation does not exceed the timeout period. If a portion of the garbage collection operation is performed within the timeout period, the remaining portion is completed in a later timeout period. When the garbage collection operation is complete, one or more garbage collected blocks are erased and made available for storing additional data.

図9Aおよび9Bは、本発明の実施形態に従う、段階的にガーベッジコレクションされる順次更新ブロックを伴うメモリブロックの簡略ブロック図である。図9Aに示されているように、オリジナルのブロックA980と、関連する順次更新ブロックA982とがガーベッジコレクションのために選択される。一般に、書き込みコマンドから受け取られたデータは更新ブロックに書き込まれ得る。その中でデータが更新される各々の論理グループのために更新ブロックとして専用のメタブロックが割り当てられ得る。データの論理セクタは論理的に連続するセクタのセットを含む論理グループに格納されるということに留意するべきである。更新ブロックは、データを順次にあるいはカオス的順序で(すなわち、非順次に)受け入れるように管理され得る。順次更新ブロックA982のような順次更新ブロックは、全ての有効なセクタが現在同じメタブロックに置かれている論理グループにおいて1つ以上の物理ページを満たすデータを書き込むために書き込みコマンドがホストから受け取られたときに割り当てられるメタブロックであるということが理解されるべきである。順次更新ブロックに書き込まれるデータのセクタは、セクタがオリジナルブロックに書き込まれている対応する論理セクタに取って代わるように論理的にアドレス指定されて順次に書き込まれる。この論理グループの中の更新されるセクタは、順次更新ブロックが閉じられるかあるいはカオス的更新ブロックに変換されるまで、この順次更新ブロックに書き込まれ得る。順次更新ブロックは順次更新ブロックの最後の物理セクタ位置が書き込みされたときに閉じられたと見なされるということに留意するべきである。換言すれば、順次更新ブロックの閉鎖は、ホストにより書き込まれるかあるいはオリジナルブロックからコピーされる更新されるセクタデータによって順次更新ブロックが完全に満たされることに起因し得る。以下でより詳しく説明されるように、カオス的更新ブロックは、ホストにより書き込まれるデータのセクタが、更新される論理グループ内の前に書き込まれたデータのセクタに論理的に連続していないときに順次更新ブロックからの変換によって作られ得る。  9A and 9B are simplified block diagrams of a memory block with sequential update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention. As shown in FIG. 9A, the original block A980 and the associated sequential update block A982 are selected for garbage collection. In general, data received from a write command can be written to an update block. A dedicated metablock can be assigned as an update block for each logical group in which data is updated. It should be noted that the logical sectors of data are stored in a logical group that includes a set of logically contiguous sectors. Update blocks may be managed to accept data sequentially or in chaotic order (ie, non-sequentially). A sequential update block, such as sequential update block A982, receives a write command from the host to write data that fills one or more physical pages in a logical group where all valid sectors are currently located in the same metablock. It should be understood that this is a metablock that is assigned at the time. Sectors of data that are written to sequential update blocks are written logically with sequential addressing so that the sector replaces the corresponding logical sector written to the original block. Updated sectors in this logical group can be written to this sequential update block until the sequential update block is closed or converted to a chaotic update block. It should be noted that a sequential update block is considered closed when the last physical sector position of the sequential update block is written. In other words, the closure of the sequential update block may be due to the sequential update block being completely filled with updated sector data written by the host or copied from the original block. As described in more detail below, a chaotic update block is used when a sector of data written by the host is not logically contiguous with a sector of previously written data in the logical group being updated. It can be made by conversion from a sequential update block.

オリジナルブロックA980は無効なデータと有効なデータとを含むことができ、図9Aではそれぞれハッチパターンおよびドットパターンで表されている。オリジナルブロックA980からコピーされた有効なデータに加えて、順次更新ブロックA982はガーベッジコレクション動作の前に順次更新ブロックAに書き込まれた既存のデータ981を付加的に含むということに留意するべきである。新しいデータ983を書き込む書き込みコマンドが受け取られたとき、書き込みコマンドは順次更新ブロックA982の閉鎖を誘発し得るが、それは1種のガーベッジコレクション動作である。なぜならば、それは新しいデータが開いている更新ブロックを持っていない論理グループと関連付けられるかあるいは新しいデータがガーベッジコレクション動作を引き起こすからである。不揮発性メモリ記憶システムはビジー信号をアサートし、その後、第1のガーベッジコレクション期間970に達するまで有効なデータをオリジナルブロックA980から順次更新ブロックA982にコピーする。コピー中、不揮発性メモリ記憶システムは時間を追跡し、不揮発性メモリ記憶システムは第1のガーベッジコレクション期間970を超える前にコピー動作をやめる。図9Aに示されているように、オリジナルブロックA980に有効なデータがなお残っているので、ガーベッジコレクション動作はガーベッジコレクション期間970内に完了させられ得ない。その結果として、有効なデータの部分が順次更新ブロックA982にコピーされた後、新しいデータ983は、第1のタイムアウト期間に達する前に許された残っている時間内に書き込みバッファブロック908に書き込まれる。  Theoriginal block A 980 can include invalid data and valid data, and is represented by a hatch pattern and a dot pattern in FIG. 9A, respectively. It should be noted that in addition to the valid data copied from the original block A980, the sequential update block A982 additionally contains existingdata 981 that was written to the sequential update block A prior to the garbage collection operation. . When a write command to writenew data 983 is received, the write command can trigger the closure of the sequentialupdate block A 982, which is a kind of garbage collection operation. This is because new data is associated with a logical group that does not have an open update block, or new data causes a garbage collection operation. The non-volatile memory storage system asserts a busy signal and then copies valid data from the original block A980 to the update block A982 sequentially until the first garbage collection period 970 is reached. During copying, the non-volatile memory storage system keeps track of time and the non-volatile memory storage system stops the copy operation before the first garbage collection period 970 is exceeded. As shown in FIG. 9A, the garbage collection operation cannot be completed within the garbage collection period 970 because valid data still remains in the original block A980. As a result, after a portion of valid data has been sequentially copied to updateblock A 982,new data 983 is written to writebuffer block 908 within the time remaining allowed before the first timeout period is reached. .

図9Bは、ガーベッジコレクション動作の残りの部分が第2のタイムアウト期間内に完了させられ得ることを示す。ここで、新しいデータ984を書き込む第2の書き込みコマンドが第1の書き込みコマンドの後に受け取られる。その結果として、第2の書き込みコマンドに第2のタイムアウト期間が割り当てられる。第2のタイムアウト期間の間に、残りの有効なデータがオリジナルブロックA980から順次更新ブロックA982にコピーされる。この例では、残っている有効なデータの全体(または有効なデータの最後の部分)が第2のガーベッジコレクション期間972内に順次更新ブロックA982にコピーされ得る。従って、ガーベッジコレクション動作は第2のタイムアウト期間内に完了させられ得る。順次更新ブロックA982は満杯にされているので、順次更新ブロックAは新しいオリジナルブロックA985または非更新ブロックに変換される。ガーベッジコレクション動作はこの第2のタイムアウト期間内に完了させられるので、オリジナルブロックA980は消去され、付加的なデータの格納に利用可能にされ得る。オリジナルブロックA980が消去された後、更新ブロックC986が割り当てられ、第2の書き込みコマンドから受け取られた新しいデータ984は新たに割り当てられた更新ブロックCに書き込まれる。更新ブロックC986は新しいオリジナルブロックA985に関連付けられるかもしれないしあるいは関連付けられないかもしれないということに留意するべきである。  FIG. 9B shows that the remaining portion of the garbage collection operation can be completed within the second timeout period. Here, a second write command for writingnew data 984 is received after the first write command. As a result, a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid data is sequentially copied from the original block A980 to the update block A982. In this example, the entire remaining valid data (or the last portion of valid data) may be sequentially copied to theupdate block A 982 within the second garbage collection period 972. Accordingly, the garbage collection operation can be completed within the second timeout period. Since the sequential update block A982 is full, the sequential update block A is converted to a new original block A985 or a non-update block. Since the garbage collection operation is completed within this second timeout period, theoriginal block A 980 can be erased and made available for storing additional data. After theoriginal block A 980 is erased, anupdate block C 986 is allocated, andnew data 984 received from the second write command is written to the newly allocated update block C. It should be noted that update block C986 may or may not be associated with new original block A985.

第2のタイムアウト期間内にガーベッジコレクションが完了した後、第2のタイムアウト期間内に利用可能な時間があれば、不揮発性メモリ記憶システムは書き込みバッファブロッククリーニング動作を行うことができる。書き込みバッファブロック908は、書き込みバッファブロックに書き込まれた新しいデータ983のような新しいデータが後に他のブロック(例えば、更新されたブロックC986)にコピーされるので、一時的バッファとして役立つ。図9Bの例では、第2のタイムアウト期間内に書き込みバッファブロッククリーニング動作のための時間がある。書き込みバッファブロック908に格納されている新しいデータ983は、新しいデータ984と同じ論理グループの中にある。従って、新しいデータ983は、ガーベッジコレクション動作の完了後に更新ブロックC986にコピーされる。書き込みバッファブロック908に格納されている新しいデータ983は無効としてマークされ、従って、書き込みバッファブロック内の付加的なスペースは付加的な新しいデータの格納のために利用可能にされ得る。書き込みバッファブロッククリーニング動作は全てのガーベッジコレクションの完了後に実行されるわけではないかもしれないということに留意するべきである。書き込みバッファブロッククリーニングのタイミングは以下でより詳しく説明される。  After garbage collection is completed within the second timeout period, the non-volatile memory storage system can perform a write buffer block cleaning operation if there is time available within the second timeout period. Writebuffer block 908 serves as a temporary buffer because new data, such asnew data 983 written to the write buffer block, is later copied to another block (eg, updated block C986). In the example of FIG. 9B, there is a time for the write buffer block cleaning operation within the second timeout period.New data 983 stored inwrite buffer block 908 is in the same logical group asnew data 984. Accordingly,new data 983 is copied to the update block C986 after the garbage collection operation is completed.New data 983 stored in thewrite buffer block 908 is marked as invalid, so that additional space in the write buffer block can be made available for storing additional new data. It should be noted that the write buffer block cleaning operation may not be performed after completion of all garbage collection. The write buffer block cleaning timing is described in more detail below.

図10A〜10Eは、本発明の実施形態に従う、段階的にガーベッジコレクションされるカオス的更新ブロックを伴うメモリブロックの簡略ブロック図である。図10Aに示されているように、オリジナルブロックA902およびカオス的更新ブロックA904がガーベッジコレクションのために選択される。一般に、カオス的更新ブロックA904のようなカオス的更新ブロックは、データのセクタが1つの論理グループ内でランダムな順序で、個々のセクタの任意の反復を伴って、更新されることを可能にする。カオス的更新ブロックは、ホストにより書き込まれるデータのセクタが、更新される論理グループ内の前に書き込まれたデータのセクタに論理的に連続していないときに順次更新ブロックからの変換によって作成され得る。この論理グループにおいてその後に更新される全てのデータのセクタは、グループ内でのそれらの論理セクタアドレスが何であっても、カオス的更新ブロック内の次の利用可能なセクタ位置に書き込まれる。  10A-10E are simplified block diagrams of memory blocks with chaotic update blocks that are garbage collected in stages, in accordance with an embodiment of the present invention. As shown in FIG. 10A, an original block A902 and a chaotic update block A904 are selected for garbage collection. In general, a chaotic update block, such as chaotic update block A904, allows sectors of data to be updated in random order within a logical group, with arbitrary repetitions of individual sectors. . A chaotic update block can be created by conversion from a sequential update block when the sector of data written by the host is not logically contiguous to the sector of previously written data in the logical group being updated. . All sectors of data subsequently updated in this logical group are written to the next available sector location in the chaotic update block whatever their logical sector address in the group.

ここで、オリジナルブロックA902およびカオス的更新ブロックA904は、図10Aにおいてハッチパターンおよびドットパターンでそれぞれ表される無効なデータおよび有効なデータを含む。新しいデータ901を書き込む書き込みコマンドが受け取られたとき、不揮発性メモリ記憶システムはビジー信号をアサートし、その後、第1のガーベッジコレクション期間950に達するまで有効なデータをオリジナルブロックA902およびカオス的更新ブロックA904から新しいブロックA906にコピーする。コピー中、不揮発性メモリ記憶システムは時間を追跡し、不揮発性メモリ記憶システムは第1のガーベッジコレクション期間950を超える前にコピー動作をやめる。図10Aに示されているように、オリジナルブロックA902およびカオス的更新ブロックA904に有効なデータがなお残っているので、ガーベッジコレクション動作は第1のガーベッジコレクション期間950内に完了させられ得ない。その結果として、有効なデータの部分が新しいブロックA906にコピーされた後、ガーベッジコレクション動作が始まる前に受け取られた新しいデータ901は第1のタイムアウト期間に達する前に書き込みバッファブロック908に書き込まれる。  Here, the original block A902 and the chaotic update block A904 include invalid data and valid data respectively represented by a hatch pattern and a dot pattern in FIG. 10A. When a write command to writenew data 901 is received, the non-volatile memory storage system asserts a busy signal, after which valid data is transferred to the original block A902 and chaotic update block A904 until the firstgarbage collection period 950 is reached. To a new block A906. During the copy, the non-volatile memory storage system keeps track of time, and the non-volatile memory storage system stops the copy operation before the firstgarbage collection period 950 is exceeded. As shown in FIG. 10A, the garbage collection operation cannot be completed within the firstgarbage collection period 950 because valid data still remains in the original block A902 and the chaotic update block A904. As a result, after the valid data portion is copied to the new block A 906, thenew data 901 received before the garbage collection operation begins is written to thewrite buffer block 908 before the first timeout period is reached.

図10Bは、その次のタイムアウト期間におけるガーベッジコレクション動作の続きを示す。ここで、第1の書き込みコマンドの後に第2の書き込みコマンドが受け取られ、第2のタイムアウト期間が第2の書き込みコマンドに割り当てられる。第2のタイムアウト期間の間に、残りの有効なデータが、第2のガーベッジコレクション期間951に達するまでオリジナルブロックA902およびカオス的更新ブロックA904から新しいブロックA906にコピーされる。図10Bに示されているように、オリジナルブロックA902およびカオス的更新ブロックA904に有効なデータがなお残っているので、ガーベッジコレクション動作は第2のガーベッジコレクション期間951内に完了させられ得ない。従って、有効なデータの部分が新しいブロックA906にコピーされた後、ガーベッジコレクション動作が始まる前に受け取られた新しいデータ905は書き込みバッファブロック908に書き込まれる。  FIG. 10B shows the continuation of the garbage collection operation in the next timeout period. Here, a second write command is received after the first write command, and a second timeout period is assigned to the second write command. During the second timeout period, the remaining valid data is copied from the original block A902 and the chaotic update block A904 to the new block A906 until the secondgarbage collection period 951 is reached. As shown in FIG. 10B, the garbage collection operation cannot be completed within the secondgarbage collection period 951 because valid data still remains in the original block A902 and the chaotic update block A904. Thus, after the valid data portion is copied to the new block A 906, thenew data 905 received before the garbage collection operation begins is written to thewrite buffer block 908.

図10Cは、ガーベッジコレクション動作の残りの部分が第3のタイムアウト期間内に完了させられ得ることを示す。第2の書き込みコマンド後に第3の書き込みコマンドが受け取られる。その結果として、第3のタイムアウト期間が第3の書き込みコマンドに割り当てられる。第3のタイムアウト期間の間に、残りの有効なデータがオリジナルブロックA902およびカオス的更新ブロックA904から新しいブロックA906にコピーされる。ここで、全ての残りの有効なデータ(あるいは有効なデータの最後の部分)が第3のガーベッジコレクション期間953内に新しいブロックA906にコピーされ得る。従って、ガーベッジコレクション動作は第3のタイムアウト期間内に完了させられ得る。ガーベッジコレクション動作がこの第3のタイムアウト期間に完了させられるので、オリジナルブロックA902およびカオス的更新ブロックA904は消去されて付加的なデータの格納のために利用可能にされ得る。オリジナルブロックA902およびカオス的更新ブロックA904が消去された後、新しい更新ブロックB962が割り当てられ、第3の書き込みコマンドから受け取られた新しいデータ909は新たに割り当てられた更新ブロックBに書き込まれる。新しいデータ909は書き込みバッファブロック908に書き込まれないが、それは、ガーベッジコレクション動作が完了して、その次のタイムアウト期間まで新しいデータをバッファリングする必要がないからである。この例では、書き込みバッファブロッククリーニング動作が実行され、その動作で、新しいデータ901,905,および909が同じ論理グループに属すると仮定して、書き込みバッファブロック908に格納されている新しいデータ901および905が更新ブロックB962にコピーされる。  FIG. 10C shows that the remaining portion of the garbage collection operation can be completed within the third timeout period. A third write command is received after the second write command. As a result, a third timeout period is assigned to the third write command. During the third timeout period, the remaining valid data is copied from the original block A902 and the chaotic update block A904 to the new block A906. Here, all remaining valid data (or the last part of valid data) can be copied to the new block A 906 within the third garbage collection period 953. Thus, the garbage collection operation can be completed within the third timeout period. Since the garbage collection operation is completed during this third timeout period, the original block A902 and the chaotic update block A904 can be erased and made available for storing additional data. After the original block A902 and the chaotic update block A904 are erased, a new update block B962 is allocated andnew data 909 received from the third write command is written to the newly allocated update blockB. New data 909 is not written to thewrite buffer block 908 because the garbage collection operation is complete and new data need not be buffered until the next timeout period. In this example, a write buffer block cleaning operation is performed that assumes that thenew data 901, 905, and 909 belong to the same logical group, and thenew data 901 and 905 stored in thewrite buffer block 908. Is copied to the update block B962.

図10Dは、第4のタイムアウト期間中に行われる他の1つのガーベッジコレクション動作を示す。図10Dに示されているように、オリジナルブロックB960およびカオス的更新ブロックB962がガーベッジコレクションのために選択される。カオス的更新ブロックに変換されている更新ブロックB962は、第1、第2、および第3の書き込みコマンドに関連する新しいデータ901,905,および909を含む。第4の書き込みコマンドが受け取られたとき、不揮発性メモリ記憶システムはビジー信号をアサートし、その後に有効なデータをオリジナルブロックB960およびカオス的更新ブロックB962から新しいブロックB964にコピーする。図10Dに示されているように、有効なデータがオリジナルブロックB960およびカオス的更新ブロックB962になお残っているので、ガーベッジコレクション動作は第4のガーベッジコレクション期間952内に完了させられ得ない。有効なデータの部分が新しいブロックB964にコピーされた後、第4の書き込みコマンドから受け取られた新しいデータ903は書き込みバッファブロック908に書き込まれる。  FIG. 10D shows another garbage collection operation that occurs during the fourth timeout period. As shown in FIG. 10D, original block B960 and chaotic update block B962 are selected for garbage collection. Update block B962, which has been converted to a chaotic update block, includesnew data 901, 905, and 909 associated with the first, second, and third write commands. When the fourth write command is received, the non-volatile memory storage system asserts a busy signal and then copies valid data from the original block B960 and the chaotic update block B962 to the new block B964. As shown in FIG. 10D, the garbage collection operation cannot be completed within the fourth garbage collection period 952 because valid data still remains in the original block B960 and the chaotic update block B962. After the valid data portion is copied to thenew block B 964, thenew data 903 received from the fourth write command is written to thewrite buffer block 908.

図10Eは、図10Dのガーベッジコレクション動作の残りの部分が第5のタイムアウト期間に完了させられ得ることを示す。第4の書き込みコマンド後に第5の書き込みコマンドが受け取られる。その結果として、第5のタイムアウト期間が第5の書き込みコマンドに割り当てられる。第5のタイムアウト期間の間に、残りの有効なデータがオリジナルブロックB960およびカオス的更新ブロックB962から新しいブロックB964にコピーされる。ここで、全ての残りの有効なデータ(あるいは有効なデータの最後の部分)が第5のガーベッジコレクション期間953内に新しいブロックB964にコピーされ得る。従って、始めに第4のタイムアウト期間中に実行されたガーベッジコレクション動作は第5のタイムアウト期間内に完了させられ得る。ガーベッジコレクション動作がこの第5のタイムアウト期間に完了させられるので、オリジナルブロックB960およびカオス的更新ブロックB962は消去されて、付加的なデータの格納のために利用可能にされる。オリジナルブロックB960およびカオス的更新ブロックB962が消去された後、更新ブロックC965が割り当てられ、第5の書き込みコマンドから受け取られた新しいデータ907は新たに割り当てられた更新ブロックCに書き込まれる。更新ブロックC965は新しいブロックB964に関連付けられるかもしれないしあるいは関連付けられないかもしれないということに留意するべきである。ここで、書き込みバッファブロッククリーニング動作が実行され、従って、新しいデータ903および新しいデータ907が同じ論理グループに属すると仮定して、書き込みバッファブロック908に格納されている新しいデータ903は更新ブロックC965にコピーされる。  FIG. 10E shows that the remaining portion of the garbage collection operation of FIG. 10D can be completed in the fifth timeout period. A fifth write command is received after the fourth write command. As a result, a fifth timeout period is assigned to the fifth write command. During the fifth timeout period, the remaining valid data is copied from the original block B960 and the chaotic update block B962 to the new block B964. Here, all the remaining valid data (or the last part of the valid data) can be copied to thenew block B 964 within the fifth garbage collection period 953. Thus, the garbage collection operation initially performed during the fourth timeout period can be completed within the fifth timeout period. Since the garbage collection operation is completed during this fifth timeout period, the original block B960 and the chaotic update block B962 are erased and made available for storing additional data. After the original block B960 and the chaotic update block B962 are erased, an update block C965 is allocated and thenew data 907 received from the fifth write command is written into the newly allocated update block C. It should be noted that update block C965 may or may not be associated with new block B964. Here, a write buffer block cleaning operation is performed, so thenew data 903 stored in thewrite buffer block 908 is copied to the update block C965, assuming that thenew data 903 and thenew data 907 belong to the same logical group. Is done.

図11は、本発明の1つの実施形態に従う、書き込みバッファブロックへのアクセスを最適化する動作のフローチャート図である。書き込みバッファブロックの維持は、あるオーバーヘッドを導入する。オーバーヘッドを減少させるために、1つの実施形態では、書き込みバッファブロックへの書き込みが最小にされ得る。図11に示されているように、動作1002で書き込みコマンドが受け取られる。その後、不揮発性メモリ記憶システムは動作1004で実行時間を推定する。実行時間は、書き込みコマンドを実行する期間である。書き込みコマンドの実行は、例えば、新しいデータをメモリにプログラムする(すなわち、書き込む)ことと、ガーベッジコレクション動作を実行することと、他の動作の実行とを含み得る。例えば、実行時間は、有効なデータを1つ以上のブロックから他の1つのブロックにコピーするための期間と新しいデータを書き込む期間とを含み得る。  FIG. 11 is a flowchart diagram of operations for optimizing access to a write buffer block, in accordance with one embodiment of the present invention. Maintaining the write buffer block introduces some overhead. To reduce overhead, in one embodiment, writing to the write buffer block can be minimized. As shown in FIG. 11, atoperation 1002, a write command is received. Thereafter, the non-volatile memory storage system estimates execution time atoperation 1004. The execution time is a period for executing the write command. Execution of a write command may include, for example, programming (ie, writing) new data into memory, performing garbage collection operations, and performing other operations. For example, the execution time may include a period for copying valid data from one or more blocks to another block and a period for writing new data.

不揮発性メモリ記憶システムは、実行時間を即時に推定する。不揮発性メモリ記憶システムは、種々のパラメータに基づいて実行時間を推定することができる。パラメータの例として、ガーベッジコレクションのタイプ(例えば、ブロック閉鎖、整理統合、圧縮、および他のタイプ)、ガーベッジコレクションされるべきブロック(例えば、更新ブロックおよび他のブロック)に格納されている有効なデータの量、不揮発性メモリ記憶システムに関連するプログラミング時間、ガーベッジコレクションされるブロックのサイズ(例えば、メタブロックのサイズ)、プレパディング(pre-padding) が必要か否か、プレパディングされるべきデータの量、パイプライニング、キャッシング、周波数設定、プログラム破損、および他のパラメータを含む。実行時間を推定する1つの例では、最初の1つ以上のブロックは12ページの有効なデータを含み、その12ページの有効なデータが1つの第2のブロックにコピーされる。不揮発性メモリ記憶システムは、12ページの有効なデータを読み出すために不揮発性メモリ記憶システムが必要とする時間の量とその有効なデータを第2のブロックに書き込むために不揮発性メモリ記憶システムが必要とする時間の量とを加えることによって実行時間を推定することができる。  Non-volatile memory storage systems estimate the execution time immediately. Non-volatile memory storage systems can estimate execution time based on various parameters. Examples of parameters include the type of garbage collection (eg, block closure, consolidation, compression, and other types), valid data stored in the blocks that are to be garbage collected (eg, update blocks and other blocks) Amount of data, programming time associated with the non-volatile memory storage system, size of garbage collected blocks (eg, metablock size), whether pre-padding is required, Includes quantity, pipelining, caching, frequency settings, program corruption, and other parameters. In one example of estimating execution time, the first one or more blocks contain 12 pages of valid data, and the 12 pages of valid data are copied into one second block. A non-volatile memory storage system requires an amount of time required by the non-volatile memory storage system to read 12 pages of valid data and a non-volatile memory storage system to write the valid data to the second block The execution time can be estimated by adding the amount of time.

不揮発性メモリ記憶システムが実行時間を推定した後、その実行時間は動作1006でタイムアウト期間と比較される。動作1008に示されているように、その推定された実行時間がタイムアウト期間より短ければあるいは動作がタイムアウト期間内に完了させられ得るならば、ガーベッジコレクション動作が、引き起こされたならば、実行されてタイムアウト期間内に完了させられ、新しいデータが更新ブロックに書き込まれる。一方、動作1010に示されているように、推定された実行時間がタイムアウト期間を超える(すなわち、タイムアウト期間より大きいかあるいはタイムアウト期間に等しい)ならば、新しいデータは書き込みバッファブロックに書き込まれ、割り当てられたガーベッジコレクション期間は、書き込みバッファブロッククリーニングのためにあるいはガーベッジコレクション動作(引き起こされたならば)の一部分を実行するために使用され得る。1つの実施形態では、以下でより詳しく説明されるように、書き込みバッファブロッククリーニングは、タイムアウト期間内に残っている時間の間に、書き込みバッファブロック内の第1の有効なエントリから始まることができる。推定された実行時間がタイムアウト期間を超えるときに書き込みバッファブロックに書き込むことによって、書き込みバッファブロックへの書き込みはより少数となり、従って、書き込みバッファブロックを維持することに関連するオーバーヘッドは低減され得る。  After the non-volatile memory storage system estimates the execution time, the execution time is compared to a timeout period atoperation 1006. As shown in operation 1008, if the estimated execution time is shorter than the timeout period or if the operation can be completed within the timeout period, a garbage collection operation is performed if triggered. Completed within the timeout period and new data is written to the update block. On the other hand, as shown in operation 1010, if the estimated execution time exceeds the timeout period (ie, greater than or equal to the timeout period), new data is written to the write buffer block and allocated. The reserved garbage collection period can be used for write buffer block cleaning or to perform a portion of the garbage collection operation (if triggered). In one embodiment, as will be described in more detail below, write buffer block cleaning can begin with the first valid entry in the write buffer block for the time remaining within the timeout period. . By writing to the write buffer block when the estimated execution time exceeds the timeout period, there are fewer writes to the write buffer block, and thus the overhead associated with maintaining the write buffer block can be reduced.

書き込みバッファブロック−ページ境界索引付け
1つの実施形態では、書き込みバッファブロックは複数のページを含むように構成され、書き込みバッファブロック内の各ページは索引付けされる。書き込みバッファブロックの各ページは、1セクタ以上の新しいデータを記憶するように構成される。従って、1ポインタが1ページを指すかあるいは参照し、1ページ内の複数のセクタは1ポインタにより参照され得るが、それは、ポインタが1つのページを指すのであってページ内の複数のセクタを指すのではないからである。ここで、同じメタページに属する新しいデータのセクタは、書き込みバッファブロックの同じメタページに書き込まれる。しかし、別々のメタページに属する新しいデータのセクタは書き込みバッファブロックの別々のメタページに書き込まれる。例えば、第1の書き込みコマンドに関連付けられた新しいデータの第1のセクタは書き込みバッファブロックの第1のページに書き込まれる。その後、新しいデータの第2のセクタが第2の書き込みコマンドから受け取られる。その新しいデータの第2のセクタが新しいデータの第1、第2と同じメタページに属するならば、第2のセクタは書き込みバッファブロックの第1のページに書き込まれる。一方、新しいデータの第2のセクタが別のメタページに属するならば、第2のセクタは書き込みバッファブロックの別のメタページに書き込まれる。
Write Buffer Block-Page Boundary Indexing In one embodiment, the write buffer block is configured to include multiple pages, and each page in the write buffer block is indexed. Each page of the write buffer block is configured to store new data of one sector or more. Thus, a pointer points to or references a page, and multiple sectors within a page can be referenced by a pointer, but it points to a page and points to multiple sectors within the page. Because it is not. Here, sectors of new data belonging to the same metapage are written to the same metapage of the write buffer block. However, sectors of new data belonging to different metapages are written to different metapages of the write buffer block. For example, the first sector of new data associated with the first write command is written to the first page of the write buffer block. Thereafter, a second sector of new data is received from the second write command. If the second sector of the new data belongs to the same metapage as the first and second of the new data, the second sector is written to the first page of the write buffer block. On the other hand, if the second sector of new data belongs to another metapage, the second sector is written to another metapage of the write buffer block.

書き込みバッファブロック−セクタレベル索引付け
他の1つの実施形態では、書き込みバッファブロックは複数のセクタを含むように構成され、書き込みバッファブロック内の1つ以上のセクタは索引付けされ得る。例えば、1ポインタが複数のセクタ(例えば、4セクタ)を指すかあるいは参照することができる。他の1つの例では、1ポインタが1セクタを指すかあるいは参照することができる。書き込みバッファブロック内の各セクタが索引付けされる例では、新しいデータは書き込みバッファブロックの単一のセクタに書き込まれる。他の1つの書き込みコマンドに関連付けられたその次の新しいデータは書き込みバッファブロック内の次の利用可能なセクタに書き込まれる。例えば、複数の書き込みコマンドからの新しいデータのセクタは、書き込みバッファブロック内の同じページの別々のセクタに書き込まれ得る。従って、書き込みバッファブロックは複数のセクタを含むように構成されることができ、各セクタは新しいデータの1つのセクタを記憶するように構成される。
Write Buffer Block—Sector Level Indexing In another embodiment, the write buffer block is configured to include multiple sectors, and one or more sectors in the write buffer block may be indexed. For example, one pointer can point to or refer to a plurality of sectors (eg, four sectors). In another example, one pointer can point to or reference one sector. In the example where each sector in the write buffer block is indexed, new data is written to a single sector of the write buffer block. The next new data associated with one other write command is written to the next available sector in the write buffer block. For example, new data sectors from multiple write commands may be written to separate sectors on the same page in the write buffer block. Thus, the write buffer block can be configured to include multiple sectors, with each sector configured to store one sector of new data.

タイムアウトエラーなしでシングルセクタ書き込みを持続させるために、不揮発性メモリ記憶システムは、割り当てられたセクタが不揮発性メモリ記憶システムのメタブロックの総数より多いように数個のセクタを書き込みバッファブロックに割り当てることができる。書き込みバッファブロックが複数のメタブロックで構成され得るということが理解されるべきである。書き込みバッファブロックに割り当てられるセクタの数を計算するために、例えば、書き込みバッファブロックを構成するメタブロックの数Mは、
M=M1+(M1*M2)/(Metablock_Size-M2) (1.0)
と定義することができ、“Metablock_Size"は“メタブロックサイズ”を意味し、ここで、
M1=RoundUp.to.Nearest.Integer[(N-1)*(Total.Number.of.Metablocks.in.System)/(Mtablock_Size)]
であり、ここで“RoundUp.to.Nearest.Integer"は“最近の整数への切り上げ”を意味し、“Total.Number.of.Metablocks.in.System"は“システム内のメタブロックの総数”を意味し、
M2=RoundUp.to.Nearest.Integer[(N*Tgc)/(N*TO-Tgc)]
であり、
N=RoundDown.to.Nearest.Integer[(Tgc+TO)/TO]
であり、ここで“RoundDown.to.Nearest.Integer"は“最近の整数への切り下げ”を意味し、TOはタイムアウト期間であり、Tgc は1つの完全なガーベッジコレクション動作を実行するための時間である。書き込みバッファブロックに割り当てられるセクタの総数は、
セクタの総数=M*Metablock_Size (1.2)
として定義されることができ、ここでMは方程式1.0で定義され、“Metablock_Size"は、512セクタ/メタブロック、1,024セクタ/メタブロック、2,048セクタ/メタブロックあるいは他のサイズのようなセクタ数で表した各メタブロックのサイズである。一般に、方程式1.0および1.2は、書き込みバッファブロックに割り当てられるセクタの総数を不揮発性メモリ記憶システム内のメタブロックの総数より大きく定義する。メタブロックの総数に加えて、方程式1.0は、書き込みバッファブロックに関連するオーバーヘッドを維持するための1つ以上のメタブロック(またはセクタ)(以降、“オーバーヘッドメタブロック”または“オーバーヘッドセクタ”)を割り当てる。例えば、オーバーヘッドメタブロックの数を定める方程式1.0の部分は(M1*M2)/(Metablock_size-M2) であり、ここでオーバーヘッドセクタはオーバーヘッドブロックをメタブロックサイズと乗じることによって計算され得る。
In order to persist single sector writes without timeout errors, the non-volatile memory storage system allocates several sectors to the write buffer block so that the allocated sectors are greater than the total number of meta-blocks in the non-volatile memory storage system Can do. It should be understood that a write buffer block can be composed of multiple metablocks. In order to calculate the number of sectors allocated to the write buffer block, for example, the number M of metablocks constituting the write buffer block is:
M = M1 + (M1 * M2) / (Metablock_Size-M2) (1.0)
“Metablock_Size” means “metablock size”, where
M1 = RoundUp.to.Nearest.Integer [(N-1) * (Total.Number.of.Metablocks.in.System) / (Mtablock_Size)]
Where “RoundUp.to.Nearest.Integer” means “rounded up to the nearest integer” and “Total.Number.of.Metablocks.in.System” means “total number of metablocks in the system” Means
M2 = RoundUp.to.Nearest.Integer [(N * Tgc) / (N * TO-Tgc)]
And
N = RoundDown.to.Nearest.Integer [(Tgc + TO) / TO]
Where “RoundDown.to.Nearest.Integer” means “round down to the nearest integer”, TO is the timeout period, and Tgc is the time to perform one complete garbage collection operation. is there. The total number of sectors allocated to the write buffer block is
Total number of sectors = M * Metablock_Size (1.2)
Where M is defined by Equation 1.0 and “Metablock_Size” is 512 sectors / metablock, 1,024 sectors / metablock, 2,048 sectors / metablock or other size Is the size of each metablock expressed in sectors. In general, equations 1.0 and 1.2 define the total number of sectors allocated to the write buffer block to be greater than the total number of metablocks in the non-volatile memory storage system. In addition to the total number of metablocks, Equation 1.0 provides one or more metablocks (or sectors) to maintain overhead associated with write buffer blocks (hereinafter “overhead metablocks” or “overhead sectors”). Assign. For example, the part of Equation 1.0 that defines the number of overhead metablocks is (M1 * M2) / (Metablock_size-M2), where the overhead sector can be calculated by multiplying the overhead block by the metablock size.

方程式1.2で定められる数のセクタを書き込みバッファブロックに割り当てることにより、連続的でランダムなシングルセクタ書き込みという最悪の場合のシナリオにおいてもタイムアウトエラーが回避され得る。タイムアウトエラーは、書き込みバッファブロックが満杯でガーベッジコレクション動作が完了させられ得ないときに生じ得る。最悪の場合のシナリオは、各シングルセクタ書き込みコマンドが別々の論理グループに書き込み、これによりどの書き込みでも1つの完全なガーベッジコレクション動作を引き起こすときに、生じる。この悪い場合のシナリオでは、セクタが蓄積されて書き込みバッファブロックに書き込まれる。この悪い場合のシナリオは、全てのタイムアウト期間で新しいデータの単一のセクタが書き込みバッファブロックに書き込まれると共に不揮発性メモリ記憶システムが1つの完全なガーベッジコレクション動作を実行するために必要な全ての時間(Tgc)で1セクタが無効とマークされるかのように見られ得る。さらに、書き込みバッファブロックが満たされるかあるいは満杯であるとき、書き込みバッファブロックは、新しいセクタが受け取られるけれども書き込みバッファブロッククリーニング動作が実行され得ないように、圧縮される。従って、1つの悪い場合のシナリオでは、ガーベッジコレクション期間がタイムアウト期間より大きいときには書き込みバッファブロックは空にされるより速く満たされる。  By assigning the number of sectors defined in Equation 1.2 to the write buffer block, timeout errors can be avoided even in the worst case scenario of continuous random single sector writes. A timeout error can occur when the write buffer block is full and the garbage collection operation cannot be completed. The worst case scenario occurs when each single sector write command writes to a separate logical group, which causes every write to cause one complete garbage collection operation. In this bad scenario, sectors are accumulated and written to the write buffer block. This bad case scenario is that a single sector of new data is written to the write buffer block at all timeout periods and all the time required for the non-volatile memory storage system to perform one complete garbage collection operation. It can be seen as if one sector is marked invalid at (Tgc). Further, when the write buffer block is full or full, the write buffer block is compressed such that a new sector is received but a write buffer block cleaning operation cannot be performed. Thus, in one bad case scenario, the write buffer block fills faster than it is emptied when the garbage collection period is greater than the timeout period.

しかし、書き込みバッファブロック内の複数のセクタが同じ論理グループに属するならば、1ガーベッジコレクション動作中に全てのセクタが整理統合され得る。充分なメタブロックMを書き込みバッファブロックに割り当てることにより、不揮発性メモリ記憶システム内のメタブロックの総数より多くのセクタ(またはエントリ)が書き込みバッファブロックに存在することになり、従って、複数の有効なセクタが書き込みバッファブロックに書き込まれている論理グループが存在することになる。書き込みバッファブロックの1つのセクタがガーベッジコレクションされるあるいは整理統合されるとき、同じ論理グループに属する全てのセクタが1つの新しい更新ブロックに整理統合され、書き込みバッファブロックにおいて無効とマークされる。従って、書き込みバッファブロックを空にする速度は充填速度より大きくなり、これにより書き込みバッファブロックが満杯であるかあるいは満たされることを防止する。従って、前述した最悪の場合のシナリオについてもタイムアウトエラーの発生が防止され得るように、所与の全てのTgcについて、不揮発性メモリ記憶システムは不揮発性メモリ記憶システム内のメタブロックの総数より大きい数のセクタを書き込みバッファブロックに割り当てる。  However, if multiple sectors in the write buffer block belong to the same logical group, all sectors can be consolidated during one garbage collection operation. By allocating enough metablocks M to the write buffer block, there will be more sectors (or entries) in the write buffer block than the total number of metablocks in the non-volatile memory storage system, and thus multiple valid There will be a logical group in which sectors are written to the write buffer block. When one sector of a write buffer block is garbage collected or consolidated, all sectors belonging to the same logical group are consolidated into one new update block and marked invalid in the write buffer block. Thus, the rate at which the write buffer block is emptied is greater than the fill rate, thereby preventing the write buffer block from being full or filled. Thus, for a given Tgc, the non-volatile memory storage system is a number greater than the total number of metablocks in the non-volatile memory storage system so that timeout errors can be prevented even in the worst case scenario described above. Are allocated to the write buffer block.

図12は、本発明の1つの実施形態に従う、新しいデータをスクラッチパッドブロックに一時的に格納するための動作のフローチャート図である。不揮発性メモリ記憶システムがマルチレベルバッファリングまたは複数のバッファレベルを持つことができ、それがマルチレベルキャッシングの思想と類似し得るということが理解されるべきである。この実施形態では、書き込みバッファブロックは、多数のバッファレベルのうちの1つに関連付けられ得る。複数バッファレベルでは、新しいデータを書き込みバッファブロックに直ぐに書き込む代わりに、新しいデータは、書き込みバッファブロックに書き込まれる前に一時的に他の1つのバッファレベルに格納され得る。書き込みバッファブロックのバッファレベルと異なるバッファレベルでの新しいデータの一時的格納は、段階的ガーベッジコレクション動作における書き込みバッファブロックの使用に関連する複雑さ、オーバーヘッド、および待ち時間を低減することができる。バッファの1つの例はスクラッチパッドブロックである。スクラッチパッドブロックは、書き込みバッファブロックとは異なるバッファレベルに関連付けられ得る。例えば、スクラッチパッドブロックは第1のバッファレベルとして使用され、書き込みバッファブロックは第2のバッファレベルとして使用され得る。前に論じられたように、シングルセクタ索引付けでは、複数の書き込みコマンドからの新しいデータのセクタは、書き込みバッファブロック内の同じページの別々のセクタに書き込まれ得る。不揮発性メモリ記憶システムは部分的なページをプログラムできないかもしれないので、本発明の1つの実施形態に従って、新しいデータは、書き込みバッファブロックに転送される前に、スクラッチパッドブロックのような第1のバッファレベルに一時的に格納され得る。スクラッチパッドブロックはデータ更新ブロックの1つの形であって、その中では関連する1つの論理グループ内の論理セクタがランダムな順序で任意の量の反復を伴って更新され得る。スクラッチパッドブロックは、意図された論理セクタが終了したりあるいは物理ページ境界を越えたりしない書き込みコマンドにより作られる。スクラッチパッドブロックは部分的物理ページに相当するデータを包含することができるけれども部分的プログラム済みページデータは許されない。スクラッチパッドブロックは、不揮発性メモリ記憶システム内の各更新ブロックのために1つの有効なページのデータを保持することができる。不揮発性メモリ記憶システムは、例えば、8個の更新ブロックを割り当てられることができ、従って、スクラッチパッドブロックは9個の有効なページのデータを記憶することができる。  FIG. 12 is a flowchart diagram of operations for temporarily storing new data in a scratch pad block, in accordance with one embodiment of the present invention. It should be understood that a non-volatile memory storage system can have multi-level buffering or multiple buffer levels, which can be similar to the idea of multi-level caching. In this embodiment, the write buffer block may be associated with one of a number of buffer levels. At the multiple buffer level, instead of writing new data immediately to the write buffer block, the new data can be temporarily stored in one other buffer level before being written to the write buffer block. Temporary storage of new data at a buffer level different from the buffer level of the write buffer block can reduce the complexity, overhead, and latency associated with using the write buffer block in a stepwise garbage collection operation. One example of a buffer is a scratch pad block. The scratch pad block may be associated with a different buffer level than the write buffer block. For example, the scratch pad block may be used as the first buffer level and the write buffer block may be used as the second buffer level. As discussed previously, in single sector indexing, sectors of new data from multiple write commands can be written to separate sectors on the same page in the write buffer block. Since the non-volatile memory storage system may not be able to program partial pages, in accordance with one embodiment of the present invention, new data is transferred to the first buffer pad block before being transferred to the write buffer block. It can be temporarily stored at the buffer level. A scratchpad block is a form of data update block in which logical sectors within an associated logical group can be updated in random order with any amount of repetition. A scratch pad block is created by a write command that does not terminate the intended logical sector or cross a physical page boundary. Although the scratchpad block can contain data corresponding to partial physical pages, partial programmed page data is not allowed. The scratch pad block can hold one valid page of data for each update block in the non-volatile memory storage system. A non-volatile memory storage system can be allocated, for example, 8 update blocks, and thus the scratchpad block can store 9 valid pages of data.

図12に示されているように、書き込みコマンドから受け取られた新しいデータは始めに動作1102でスクラッチパッドブロックに書き込まれる。スクラッチパッドブロックは複数のページを含むことができ、各ページは複数のセクタを含む。新しいデータはスクラッチパッドブロックのセクタにコピーされる。動作1104で、新しいデータは、その後、書き込みバッファブロックに関連付けられているスクラッチパッドブロック内の1つのページが満杯であるとき、スクラッチパッドブロックから書き込みバッファブロックにコピーされる。従って、不揮発性メモリ記憶システムは、スクラッチパッドブロック内のページのセクタを、ページの全てのセクタが種々の書き込みコマンドからの新しいデータで満たされるまで、蓄積する。不揮発性メモリ記憶システムは、その後、そのページ全体(例えば、8セクタの新しいデータ)をスクラッチパッドブロックから書き込みバッファブロックに1プログラム動作でコピーする。書き込みバッファブロックはスクラッチパッドブロックより大きくてより多くの有効なデータを収容し得るので、スクラッチパッドブロックはより少量のガーベッジコレクションされるべきデータを有する。従って、スクラッチパッドブロックのガーベッジコレクションは書き込みバッファブロックのガーベッジコレクションより高速である。その結果として、新しいデータをスクラッチパッドブロックを経由して書き込みバッファブロックに書き込む動作は、新しいデータを書き込みバッファブロックに直接書き込む動作より速い。  As shown in FIG. 12, new data received from a write command is first written to the scratch pad block atoperation 1102. The scratch pad block can include multiple pages, each page including multiple sectors. New data is copied to the sector of the scratchpad block. Inoperation 1104, new data is then copied from the scratch pad block to the write buffer block when one page in the scratch pad block associated with the write buffer block is full. Thus, the non-volatile memory storage system accumulates the sectors of the page in the scratchpad block until all sectors of the page are filled with new data from various write commands. The non-volatile memory storage system then copies the entire page (eg, 8 sectors of new data) from the scratch pad block to the write buffer block in one program operation. Since the write buffer block is larger than the scratch pad block and can accommodate more useful data, the scratch pad block has a smaller amount of data to be garbage collected. Therefore, garbage collection of the scratch pad block is faster than garbage collection of the write buffer block. As a result, the operation of writing new data to the write buffer block via the scratch pad block is faster than the operation of writing new data directly to the write buffer block.

オーディオ/ビデオデータ
不揮発性メモリ記憶システムに格納されているオーディオ/ビデオファイル(以降、“オーディオ/ビデオデータ”)に関連付けられたデータにアクセスするホストは、他のデータと比べて所定の速度でオーディオ/ビデオデータを書き込む必要があるかもしれない。ホストがオーディオ/ビデオデータを不揮発性メモリ記憶システムにおよび/または不揮発性メモリ記憶システムからストリーミングするとき、ストリームに割り当てられる帯域幅は、所定の速度と一致するかあるいはそれを超える。オーディオ/ビデオデータのアクセス中に行われるガーベッジコレクション動作は、オーディオ/ビデオデータの書き込み性能を低下させることがある。従って、1つの実施形態では、マルチセクタ書き込みコマンドがオーディオ/ビデオデータに関連付けられていないかあるいはマルチセクタ書き込みコマンドがオーディオ/ビデオ書き込みの始まりにあるときには段階的ガーベッジコレクションが行われる。
Audio / video data A host accessing data associated with an audio / video file (hereinafter “audio / video data”) stored in a non-volatile memory storage system is capable of audio at a predetermined rate relative to other data. / You may need to write video data. When a host streams audio / video data to and / or from a non-volatile memory storage system, the bandwidth allocated to the stream matches or exceeds a predetermined rate. A garbage collection operation performed during the access of the audio / video data may deteriorate the writing performance of the audio / video data. Thus, in one embodiment, gradual garbage collection occurs when a multi-sector write command is not associated with audio / video data or when the multi-sector write command is at the beginning of an audio / video write.

オーディオ/ビデオデータを他のデータから区別するために、1つの実施形態では、不揮発性メモリ記憶システムは、マルチセクタ書き込みコマンドに関連付けられたターゲット論理アドレスを参照することができる。オーディオ/ビデオデータは順次に書き込まれるので、逆方向ジャンプ(backwards jump)として解釈されるターゲット論理アドレスは、新しいデータがオーディオ/ビデオデータ(あるいはオーディオ/ビデオデータの始まり)ではないことを示すことができる。他の1つの実施形態では、不揮発性メモリ記憶システムは、新しいデータに関連付けられたセクタの数を参照することによってもオーディオ/ビデオデータを他のデータから区別することができる。オーディオ/ビデオデータは、記録単位(recording unit)と称される単位で格納され得る。オーディオ/ビデオデータに関連付けられる最小の記録単位の長さは32セクタであり得る。従って、32セクタの整数倍ではない新しいデータに関連付けられたセクタの数は、その新しいデータがオーディオ/ビデオデータではないことを示すことができる。記録単位に整列しないか、あるいは記録単位の始まりから始まらない受け取られた新しいデータも、その新しいデータがオーディオ/ビデオデータではないことを示すことができる。  In order to distinguish audio / video data from other data, in one embodiment, the non-volatile memory storage system can reference a target logical address associated with a multi-sector write command. Since audio / video data is written sequentially, the target logical address interpreted as a backwards jump may indicate that the new data is not audio / video data (or the beginning of audio / video data). it can. In another embodiment, the non-volatile memory storage system can also distinguish audio / video data from other data by referring to the number of sectors associated with the new data. Audio / video data may be stored in units called recording units. The minimum recording unit length associated with audio / video data may be 32 sectors. Thus, the number of sectors associated with new data that is not an integer multiple of 32 sectors can indicate that the new data is not audio / video data. New data received that does not align with the recording unit or does not start from the beginning of the recording unit can also indicate that the new data is not audio / video data.

その結果として、次の条件、すなわち(1)マルチセクタ書き込みコマンドがガーベッジコレクション動作を引き起こす、(2)ターゲット論理アドレスが逆方向ジャンプとして解釈される、(3)ターゲット論理アドレスが記録単位境界と整列させられていない、(4)新しいデータに関連付けられたセクタの数が32の整数倍でなければ、ストップコマンドが受け取られた(すなわち、マルチセクタ書き込みコマンドの終わり)後、という条件のうちの1つが当てはまるならば、段階的ガーベッジコレクションが実行され得る。  As a result, the following conditions are met: (1) Multi-sector write command causes garbage collection operation, (2) Target logical address is interpreted as backward jump, (3) Target logical address is aligned with recording unit boundary One of the conditions: (4) after the stop command is received (ie, at the end of the multi-sector write command), if (4) the number of sectors associated with the new data is not an integer multiple of 32 If one is true, a stepwise garbage collection can be performed.

シングルセクタ書き込み
図13は、本発明の1つの実施形態に従う、シングルセクタ書き込みコマンドに関連付けられた不揮発性メモリ記憶システム動作のフローチャート図である。新しいデータは、メモリセルアレイ全体の中でランダムなアドレスにシングルセクタとして書き込まれ得る。ホストアクティビティとカードフラグメンテーションとにより、ホストは複数のセクタを有する長いファイルをシングルセクタ書き込みコマンドを用いてランダムな位置に書き込むことができる。限られた数の割り当てられた更新ブロックがあるので、これらのシングルセクタ書き込みは、更新ブロックを速やかに用いることができ、これにより、その後の書き込み動作のためにブロックをクリアするガーベッジコレクション動作を実行するように不揮発性メモリ記憶システムを促すことができる。
Single Sector Write FIG. 13 is a flowchart diagram of non-volatile memory storage system operation associated with a single sector write command, according to one embodiment of the invention. New data can be written as a single sector at random addresses within the entire memory cell array. Host activity and card fragmentation allows the host to write long files with multiple sectors to random locations using a single sector write command. Since there is a limited number of allocated update blocks, these single sector writes can use the update block quickly, thereby performing a garbage collection operation that clears the block for subsequent write operations. Can encourage non-volatile memory storage systems.

図13に示されているように、シングルセクタ書き込みコマンドが動作1202で受け取られる。その後、そのシングルセクタ書き込みコマンドがガーベッジコレクション動作を引き起こすか否かについて動作1204で判定が行われる。そのシングルセクタ書き込みコマンドがガーベッジコレクション動作を引き起こさなければ、新しいデータは動作1220でメモリに書き込まれる。しかし、シングルセクタ書き込みコマンドがガーベッジコレクション動作を引き起こすならば、ペンディングしている段階的ガーベッジコレクション(すなわち、既に始まっているけれども、ガーベッジコレクションが完了させられ得ないために段階的に実行されたガーベッジコレクション動作)があるか否かについて他の1つの判定が動作1206で行われる。段階的ガーベッジコレクションがあるならば、動作1208でその段階的ガーベッジコレクション動作が続行される。換言すれば、前のガーベッジコレクション動作からの残りの部分が続行される。動作1210に示されているように、ガーベッジコレクション期間(例えば、タイムアウト期間とプログラミング時間との差)まであるいは段階的ガーベッジコレクションが完了させられるまで、段階的ガーベッジコレクション動作が実行される。  As shown in FIG. 13, a single sector write command is received atoperation 1202. Thereafter, a determination is made atoperation 1204 as to whether the single sector write command causes a garbage collection operation. If the single sector write command does not cause a garbage collection operation, new data is written to memory at operation 1220. However, if a single-sector write command causes a garbage collection operation, pending staged garbage collection (i.e., garbage collection that has been started but has been executed in stages because garbage collection cannot be completed). Another determination is made atoperation 1206 as to whether there is an operation). If there is a staged garbage collection, the staged garbage collection operation continues atoperation 1208. In other words, the remaining part from the previous garbage collection operation is continued. As shown inoperation 1210, a staged garbage collection operation is performed until a garbage collection period (eg, the difference between the timeout period and the programming time) or until staged garbage collection is completed.

段階的ガーベッジコレクション動作がガーベッジコレクション期間内に完了させられ得なければ、新しいデータは動作1218で書き込みバッファブロックに書き込まれる。ガーベッジコレクション期間に達していないかあるいは段階的ガーベッジコレクション動作がガーベッジコレクション期間の前に完了させられ得たならば、段階的ガーベッジコレクション動作を完了させた後であっても、シングルセクタ書き込みコマンドがなおガーベッジコレクション動作を引き起こすか否かについての他の1つの判定が動作1212で行われる。シングルセクタ書き込みコマンドがガーベッジコレクションを引き起こさなければ、新しいデータが動作1220でメモリに書き込まれる。一方、シングルセクタ書き込みコマンドがガーベッジコレクションを引き起こすならば、動作1216に示されているガーベッジコレクション期間まで動作1214でガーベッジコレクション動作が実行される。ガーベッジコレクション動作がガーベッジコレクション期間までに完了させられ得なければ、新しいデータは動作1218で書き込みバッファブロックに書き込まれる。そうでなければ、新しいデータは動作1220でメモリに書き込まれる。段階的ガーベッジコレクションがあってかつ現在の書き込みコマンドもガーベッジコレクション動作を引き起こすならば、動作1216に示されているガーベッジコレクション期間は動作1210に示されているガーベッジコレクション期間の続きであるということに留意するべきである。従って、段階的ガーベッジコレクションがあってかつ現在のシングルセクタ書き込みコマンドがガーベッジコレクション動作を引き起こすならば、両方の動作が総ガーベッジコレクション期間内に完了させられる。換言すれば、動作1208に示されている段階的ガーベッジコレクション動作と動作1214に示されているガーベッジコレクション動作との両方のために割り当てられる実行時間は、例えば、タイムアウト期間とプログラミング時間との差である。  If the staged garbage collection operation cannot be completed within the garbage collection period, new data is written to the write buffer block atoperation 1218. If the garbage collection period has not been reached or if the staged garbage collection operation could be completed before the garbage collection period, the single sector write command is still in effect even after the staged garbage collection operation has been completed. Another determination as to whether to cause a garbage collection operation is made atoperation 1212. If the single sector write command does not cause garbage collection, new data is written to memory at operation 1220. On the other hand, if the single sector write command causes garbage collection, the garbage collection operation is performed inoperation 1214 until the garbage collection period indicated inoperation 1216. If the garbage collection operation cannot be completed by the garbage collection period, new data is written to the write buffer block atoperation 1218. Otherwise, new data is written to memory at operation 1220. Note that if there is a tiered garbage collection and the current write command also causes a garbage collection operation, the garbage collection period shown inoperation 1216 is a continuation of the garbage collection period shown inoperation 1210. Should do. Thus, if there is a tiered garbage collection and the current single sector write command causes a garbage collection operation, both operations are completed within the total garbage collection period. In other words, the execution time allocated for both the stepped garbage collection operation shown inoperation 1208 and the garbage collection operation shown inoperation 1214 is, for example, the difference between the timeout period and the programming time. is there.

新しいデータが動作1220でメモリに書き込まれた後、書き込みバッファブロックに有効なエントリがあるか否かについて、またタイムアウト期間に達しているか否かについて、動作1224で判定が行われる。書き込みバッファブロックに有効なエントリがないかあるいはタイムアウト期間に達しているならば、動作は終了する。一方、有効なエントリがあってかつタイムアウト期間に達していなければ、書き込みバッファブロッククリーニング動作が動作1226でタイムアウト期間まで実行される。書き込みバッファブロック圧縮動作も、この期間中にタイムアウト期間まで実行され得る。  After new data is written to memory at operation 1220, a determination is made atoperation 1224 as to whether there is a valid entry in the write buffer block and whether a timeout period has been reached. If there is no valid entry in the write buffer block or the timeout period has been reached, the operation ends. On the other hand, if there is a valid entry and the timeout period has not been reached, the write buffer block cleaning operation is performed until the timeout period inoperation 1226. Write buffer block compression operations may also be performed during this period up to the timeout period.

マルチセクタ書き込み
図14は、本発明の1つの実施形態に従う、マルチセクタ書き込みコマンドに関連付けられた不揮発性メモリ記憶システム動作のフローチャート図である。メモリセルアレイに書き込まれる大抵の新しいデータは、連続した順次論理アドレス空間を占める大きなデータファイルである。ホストアクティビティにより、ホストは大きなデータファイルをマルチセクタ書き込みコマンドを用いて書き込むことができる。そのような新しいデータは、複数のタイムアウト期間を有する新しいデータの複数のセクタを含む。図7は、マルチセクタ書き込みコマンドの例を示す。一般に、複数のタイムアウト期間が利用可能なので、新しいデータは、書き込みバッファブロックの代わりに、割り当てられた更新ブロックに書き込まれ得る。従って、ガーベッジコレクションは、普通は、マルチセクタ書き込みコマンドに割り当てられた複数のタイムアウト期間内に完了させられ得るので、書き込みバッファブロックは普通は複数の書き込みコマンドで使用されない。
Multi-Sector Write FIG. 14 is a flowchart diagram of non-volatile memory storage system operation associated with a multi-sector write command, according to one embodiment of the invention. Most new data written to the memory cell array is a large data file that occupies a continuous sequential logical address space. Host activity allows the host to write large data files using multi-sector write commands. Such new data includes multiple sectors of new data having multiple timeout periods. FIG. 7 shows an example of a multi-sector write command. In general, since multiple timeout periods are available, new data can be written to the allocated update block instead of the write buffer block. Thus, the write buffer block is normally not used for multiple write commands because garbage collection can normally be completed within multiple timeout periods assigned to multi-sector write commands.

図14に示されているように、マルチセクタ書き込みコマンドが動作1302で受け取られる。その後、動作1304で、新しいデータのセクタは格納され(あるいはバッファリングされ)、必要ならばガーベッジコレクション動作が実行され得る。ここで、複数のタイムアウト期間がマルチセクタ書き込みコマンドに割り当てられ、1ガーベッジコレクション動作は普通はマルチセクタ書き込みコマンドの終わりまでに完了させられ得るので、不揮発性メモリ記憶システムは書き込みバッファブロックを利用しないかもしれない。従って、書き込みバッファブロックの代わりに、不揮発性メモリ記憶システムは、新しいデータを不揮発性メモリ記憶システムに関連付けられているRAMに、あるいは不揮発性メモリ記憶システムに関連付けられている他のメモリに格納することができるのと同時に、割り当てられたタイムアウト期間を用いてガーベッジコレクション動作を実行するために新しいデータのセクタとセクタとの間にビジー信号をアサートする。  As shown in FIG. 14, a multi-sector write command is received atoperation 1302. Thereafter, at operation 1304, the new sector of data is stored (or buffered) and a garbage collection operation may be performed if necessary. Here, since multiple timeout periods are assigned to the multi-sector write command and one garbage collection operation can normally be completed by the end of the multi-sector write command, the non-volatile memory storage system may not utilize the write buffer block. unknown. Thus, instead of a write buffer block, the non-volatile memory storage system may store new data in the RAM associated with the non-volatile memory storage system or in other memory associated with the non-volatile memory storage system. At the same time, a busy signal is asserted between sectors of new data to perform a garbage collection operation using the allocated timeout period.

ホストセクタがバッファリングされた後、新しいデータのN個未満のセクタが受け取られたのか否かについて動作1306で判定が行われる。前に論じられたように、ガーベッジコレクション動作は、普通は、マルチセクタ書き込み動作に割り当てられた複数のタイムアウト期間内に完了させられ得るので、マルチセクタ書き込みコマンドに関連付けられた新しいデータは書き込みバッファブロックに書き込まれないかもしれない。しかし、1つの実施形態では、ガーベッジコレクション動作を完了させるために充分なタイムアウト期間が割り当てられなければ、書き込みバッファブロックがマルチセクタ書き込みコマンドで使用され得る。従って、ガーベッジコレクション動作が引き起こされるか否かに関わらず、
N=round-down to nearest integer [(Tgc+TO)/TO] (2.0)
として定義された新しいデータの少なくともN個のセクタを伴うマルチセクタ書き込みコマンドが書き込みバッファブロックにではなくて更新ブロックに直接書き込まれ得る。ここで“round-down to nearest integer" は、“最近の整数への切り捨て”を意味する。方程式2.0は、書き込みコマンドがシングルセクタ書き込みコマンドであるときあるいは不揮発性メモリ記憶システムがマルチセクタ書き込みコマンドで新しいデータのN個未満のセクタを受け取ったときに、新しいデータが書き込みバッファブロックに書き込まれることを示す。
After the host sector is buffered, a determination is made atoperation 1306 as to whether less than N sectors of new data have been received. As previously discussed, the garbage collection operation can normally be completed within the multiple timeout periods assigned to the multi-sector write operation, so that new data associated with the multi-sector write command is written to the write buffer block. May not be written to. However, in one embodiment, the write buffer block can be used in a multi-sector write command if sufficient timeout periods are not allocated to complete the garbage collection operation. Therefore, regardless of whether the garbage collection action is triggered or not,
N = round-down to nearest integer [(Tgc + TO) / TO] (2.0)
A multi-sector write command with at least N sectors of new data defined as can be written directly to the update block rather than to the write buffer block. Here “round-down to nearest integer” means “round down to the nearest integer”. Equation 2.0 shows that new data is written to the write buffer block when the write command is a single sector write command or when the non-volatile memory storage system receives less than N sectors of new data with a multi-sector write command. Indicates that

なお図14を参照すると、N個未満のセクタが受け取られたならば、不揮発性メモリ記憶システムは、図13に示されているシングルセクタ書き込みコマンド動作に従ってマルチセクタ書き込みコマンドを操作する。しかし、新しいデータのN個より多くのセクタが受け取られたならば、書き込みバッファブロッククリーニング動作が実行され得るか否かについて動作1310で判定が行われる。例えば、動作1302で受け取られた新しいデータがガーベッジコレクションを引き起こさなかったならば、あるいは新しいデータが割り当てられたガーベッジコレクション期間の前に完了させられたガーベッジコレクションを引き起こしたのであれば、書き込みバッファブロッククリーニング動作が実行され得る。しかし、新しいデータが記録単位境界に整列させられているならば、新しいデータはオーディオ/ビデオデータであるかもしれないので、書き込みバッファブロックリーニングは実行されない。書き込みバッファブロッククリーニング動作が実行され得なければ、新しいデータは動作1314でメモリに書き込まれる。書き込みバッファブロッククリーニング動作が実行され得るならば、マルチセクタ書き込みコマンド実行中に不揮発性メモリ記憶システムによりアサートされた合計のビジー期間がTgc−Tprogになるまで、動作1312で段階的ガーベッジコレクション動作および書き込みバッファブロッククリーニング動作が実行される。その後、新しいデータは動作1314で不揮発性メモリセルアレイに書き込まれる。この実施形態では、動作1312に示されている書き込みバッファブロッククリーニングは、Tgc−Tprogの期間まで、4タイムアウト期間、5タイムアウト期間、および他の期間などのいろいろな期間の間にマルチセクタ書き込みコマンドから受け取られた始めの数個のセクタの中間(例えば、第2のセクタと第3のセクタとの間)に、実行され得る。  Still referring to FIG. 14, if less than N sectors are received, the non-volatile memory storage system operates the multi-sector write command according to the single sector write command operation shown in FIG. However, if more than N sectors of new data have been received, a determination is made atoperation 1310 as to whether a write buffer block cleaning operation can be performed. For example, if the new data received inoperation 1302 did not cause garbage collection, or if the new data caused garbage collection to be completed before the allocated garbage collection period, write buffer block cleaning An operation may be performed. However, if the new data is aligned with the recording unit boundary, the write buffer block cleaning is not performed because the new data may be audio / video data. If a write buffer block cleaning operation cannot be performed, new data is written to memory atoperation 1314. If a write buffer block cleaning operation can be performed, a stepwise garbage collection operation and write inoperation 1312 until the total busy period asserted by the non-volatile memory storage system during execution of the multi-sector write command is Tgc-Tprog. A buffer block cleaning operation is performed. Thereafter, new data is written to the non-volatile memory cell array atoperation 1314. In this embodiment, the write buffer block cleaning shown inoperation 1312 is performed from a multi-sector write command during various periods such as a 4 timeout period, a 5 timeout period, and other periods up to a period of Tgc-Tprog. It may be performed in the middle of the first few sectors received (eg, between the second sector and the third sector).

書き込みコマンドが実行された後、新しいデータが32セクタの整数倍であるか否かについて動作1316で判定が行われる。新しいデータが32セクタの整数倍であれば、新しいデータはオーディオ/ビデオ関連であるかも知れず、動作は終了する。一方、新しいデータが32セクタの整数倍でなければ、動作1318で、書き込みバッファブロック内に有効なエントリがあるか否かについて、またタイムアウト期間に達しているか否かについて、判定が行われる。有効なエントリが書き込みバッファブロック内にないかあるいはタイムアウト期間に達していれば、動作は終了する。一方、有効なエントリがあってかつタイムアウト期間に達していなければ、動作1320でタイムアウト期間まで書き込みバッファブロッククリーニング動作が実行される。  After the write command is executed, a determination is made atoperation 1316 as to whether the new data is an integer multiple of 32 sectors. If the new data is an integer multiple of 32 sectors, the new data may be audio / video related and the operation ends. On the other hand, if the new data is not an integer multiple of 32 sectors, a determination is made atoperation 1318 as to whether there is a valid entry in the write buffer block and whether a timeout period has been reached. If there is no valid entry in the write buffer block or the timeout period has been reached, the operation ends. On the other hand, if there is a valid entry and the timeout period has not been reached, the write buffer block cleaning operation is executed until the timeout period inoperation 1320.

前述した実施形態は、段階的ガーベッジコレクションのための方法および/またはシステムを提供する。ガーベッジコレクション動作は複数の段階に分割されることができ、その複数の段階は複数のタイムアウト期間にわたって実行される。ガーベッジコレクション動作を分割することにより、ガーベッジコレクション動作の各段階はタイムアウト期間内に完了させられることができ、これによりタイムアウトエラーを防止する。  The embodiments described above provide a method and / or system for staged garbage collection. The garbage collection operation can be divided into multiple stages, which are performed over multiple timeout periods. By dividing the garbage collection operation, each stage of the garbage collection operation can be completed within the timeout period, thereby preventing timeout errors.

前述した実施形態は明確な理解を目的としてある程度詳細に記載されているけれども、実施形態は提示された細目に限定されない。実施形態を実現する多くの代わりの方法がある。従って、開示された実施形態は実例となるものであって制限するものではないと見なされるべきであり、実施形態は本願明細書で与えられた細目に限定されるべきではなくて、添付されている特許請求の範囲の範囲および同等物の中で改変され得る。特許請求の範囲で明示的に述べられていない限り、特許請求の範囲において要素および/または動作は動作の特定の順序を示唆しない。  Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the embodiments are not limited to the details presented. There are many alternative ways of implementing the embodiments. Accordingly, the disclosed embodiments are to be considered as illustrative and not restrictive, and the embodiments should not be limited to the details provided herein, but are appended. Modifications may be made within the scope and equivalents of the following claims. Unless explicitly stated in the claims, elements and / or actions do not imply a particular order of operation in the claims.

Claims (8)

Translated fromJapanese
不揮発性メモリ記憶システムを動作させる方法であって、
複数のデータを書き込む書き込みコマンドを受け取るステップであって、前記書き込みコマンドが前記書き込みコマンドの実行を完了させるためのタイムアウト期間を割り当てられるステップと、
ビジー信号をアサートするステップと、
ガーベッジコレクション期間の間に複数の有効なデータの一部分を不揮発性メモリの1つ以上の第1のブロックから不揮発性メモリの第2のブロックにコピーするステップと、
複数の論理アドレスにわたって広がるように構成された不揮発性メモリの第3のブロックに前記複数のデータを書き込むステップと、
前記タイムアウト期間の前に前記ビジー信号を解除するステップと、
を含む方法。
A method of operating a non-volatile memory storage system, comprising:
Receiving a write command for writing a plurality of data, wherein the write command is assigned a timeout period for completing execution of the write command;
Asserting a busy signal;
A step of copying the second blockof the nonvolatile memory portion of the plurality of valid data from one or more first blocksof the nonvolatile memory during the garbage collection time period,
Writing the plurality of data to a third block ofnon-volatile memory configured to span across a plurality of logical addresses;
Releasing the busy signal before the timeout period;
Including methods.
請求項1記載の方法において、
前記複数の有効なデータの一部分をコピーするステップは、
前記複数の有効なデータの一部分を1つ以上の第1のブロックから第2のブロックにコピーするステップのための時間を追跡するステップと、
前記時間が前記ガーベッジコレクション期間を超える前に前記複数の有効なデータの一部分をコピーするステップを止めるステップと、
を含む方法。
The method of claim 1, wherein
Copying a portion of the plurality of valid data,
Tracking a time for copying a portion of the plurality of valid data from one or more first blocks to a second block;
Stopping copying a portion of the plurality of valid data before the time exceeds the garbage collection period;
Including methods.
請求項1記載の方法において、
前記複数の有効なデータの一部分をコピーするステップおよび前記複数のデータを第3のブロックに書き込むステップの前に前記書き込みコマンドの実行のための実行時間を推定するステップをさらに含み、
前記実行時間が前記タイムアウト期間を越える場合、前記複数の有効なデータの一部分がコピーされかつ前記複数のデータが前記第3のブロックに書き込まれる方法。
The method of claim 1, wherein
Copying a portion of the plurality of valid data and writing an execution time for execution of the write command before writing the plurality of data to a third block;
A method in which a portion of the plurality of valid data is copied and the plurality of data is written to the third block if the execution time exceeds the timeout period.
請求項1記載の方法において、
前記複数のデータを書き込むステップは、
前記複数のデータをスクラッチパッドブロックに書き込むステップと、
前記複数のデータを前記スクラッチパッドブロックから前記第3のブロックにコピーするステップと、
を含む方法。
The method of claim 1, wherein
The step of writing the plurality of data includes:
Writing the plurality of data into a scratchpad block;
Copying the plurality of data from the scratch pad block to the third block;
Including methods.
請求項1記載の方法において、
前記複数のデータを書き込むステップは、
前記複数のデータを第1のバッファレベルに書き込むステップと、
前記複数のデータを前記第1のバッファレベルから前記第3のブロックにコピーするステップであって、前記第3のブロックが第2のバッファレベルに関連付けられるステップと、
を含む方法。
The method of claim 1, wherein
The step of writing the plurality of data includes:
Writing the plurality of data to a first buffer level;
Copying the plurality of data from the first buffer level to the third block, wherein the third block is associated with a second buffer level;
Including methods.
請求項1記載の方法において、
前記ガーベッジコレクション期間は、前記タイムアウト期間と前記複数のデータを書き込むステップに関連付けられたプログラミング時間との差である方法。
The method of claim 1, wherein
The garbage collection period is a difference between the timeout period and a programming time associated with writing the plurality of data.
請求項1記載の方法において、
前記第3のブロックは、書き込みバッファブロックである方法。
The method of claim 1, wherein
The method wherein the third block is a write buffer block.
請求項1記載の方法において、
前記第3のブロックは、論理アドレス空間全体にわたって広がるように構成される方法。
The method of claim 1, wherein
The method wherein the third block is configured to span the entire logical address space.
JP2009522934A2006-08-042007-07-19 Gradual garbage collectionExpired - Fee RelatedJP4362549B1 (en)

Applications Claiming Priority (3)

Application NumberPriority DateFiling DateTitle
US11/499,598US7451265B2 (en)2006-08-042006-08-04Non-volatile memory storage systems for phased garbage collection
US11/499,606US7444461B2 (en)2006-08-042006-08-04Methods for phased garbage collection
PCT/US2007/073891WO2008019218A2 (en)2006-08-042007-07-19Phased garbage collection

Publications (2)

Publication NumberPublication Date
JP4362549B1true JP4362549B1 (en)2009-11-11
JP2009545819A JP2009545819A (en)2009-12-24

Family

ID=39033552

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP2009522934AExpired - Fee RelatedJP4362549B1 (en)2006-08-042007-07-19 Gradual garbage collection

Country Status (4)

CountryLink
JP (1)JP4362549B1 (en)
KR (1)KR100922308B1 (en)
TW (1)TWI343522B (en)
WO (1)WO2008019218A2 (en)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP4498426B2 (en)2008-03-012010-07-07株式会社東芝 Memory system
FR2950462A1 (en)*2009-09-212011-03-25St Microelectronics RoussetData writing and reading method for e.g. flash memory in chip card, involves reading wear counter from temporary information structure after metadata page is erased, incrementing read counter, and programming incremented counter in page
EP2299363B1 (en)2009-09-212013-01-09STMicroelectronics (Rousset) SASMethod for levelling the wear in a non-volatile memory
US8417876B2 (en)*2010-06-232013-04-09Sandisk Technologies Inc.Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US8683148B2 (en)2010-06-302014-03-25Sandisk Il Ltd.Status indication when a maintenance operation is to be performed at a memory device
JP2014132505A (en)*2010-12-162014-07-17Toshiba CorpMemory system
JP5535128B2 (en)2010-12-162014-07-02株式会社東芝 Memory system
KR101157763B1 (en)*2010-12-272012-06-25서울시립대학교 산학협력단Variable space page mapping method and apparatus for flash memory device with trim command processing
US9710326B2 (en)2014-07-282017-07-18SK Hynix Inc.Encoder by-pass with scrambler
JP6320318B2 (en)*2015-02-172018-05-09東芝メモリ株式会社 Storage device and information processing system including storage device
US9990304B2 (en)*2015-11-132018-06-05Samsung Electronics Co., LtdMultimode storage management system
US11126544B2 (en)2016-12-142021-09-21Via Technologies, Inc.Method and apparatus for efficient garbage collection based on access probability of data
TWI631460B (en)*2017-05-192018-08-01群聯電子股份有限公司Data reading method, memory control circuit unit and memory storage device
KR102529710B1 (en)*2018-02-192023-05-09에스케이하이닉스 주식회사Memory system and operation method thereof
KR102750797B1 (en)*2018-07-312025-01-09에스케이하이닉스 주식회사Apparatus and method for performing garbage collection to predicting required time
US11281578B2 (en)2019-08-202022-03-22Micron Technology, Inc.Garbage collection in a memory sub-system during a low battery state
US11726869B2 (en)2019-08-202023-08-15Micron Technology, Inc.Performing error control operation on memory component for garbage collection
US11282567B2 (en)2019-08-202022-03-22Micron Technology, Inc.Sequential SLC read optimization
US11281392B2 (en)2019-08-282022-03-22Micron Technology, Inc.Garbage collection in a memory component using an adjusted parameter

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR100528973B1 (en)2003-11-052005-11-16한국전자통신연구원Apparatus and method for garbage collection
US7315917B2 (en)2005-01-202008-01-01Sandisk CorporationScheduling of housekeeping operations in flash memory systems

Also Published As

Publication numberPublication date
KR20090053901A (en)2009-05-28
TWI343522B (en)2011-06-11
JP2009545819A (en)2009-12-24
WO2008019218A2 (en)2008-02-14
TW200825738A (en)2008-06-16
KR100922308B1 (en)2009-10-21
WO2008019218A3 (en)2008-09-12

Similar Documents

PublicationPublication DateTitle
JP4362549B1 (en) Gradual garbage collection
US7444461B2 (en)Methods for phased garbage collection
US7451265B2 (en)Non-volatile memory storage systems for phased garbage collection
US7444462B2 (en)Methods for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
US7441071B2 (en)Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer
Hu et al.Write amplification analysis in flash-based solid state drives
US7464216B2 (en)Method for phased garbage collection with state indicators
US7444463B2 (en)System for phased garbage collection with state indicators
JP4931810B2 (en) FAT analysis for optimized sequential cluster management
US7987332B2 (en)Methods for storing memory operations in a queue
JP5571691B2 (en) Maintaining mapping address tables in storage
JP5728672B2 (en) Hybrid memory management
JP2021128582A (en) Memory system and control method
US20070016721A1 (en)Flash file system power-up by using sequential sector allocation
US20080162787A1 (en)System for block relinking
CN100501868C (en) Implementation method of file system based on NAND Flash memory
US20080235480A1 (en)Systems for storing memory operations in a queue
US20080235489A1 (en)Systems for forcing an update block to remain sequential
US20130103889A1 (en)Page-buffer management of non-volatile memory-based mass storage devices
US8341375B2 (en)Methods for conversion of update blocks based on association with host file management data structures
US11556249B2 (en)Delaying random data relocation for reducing write amplification in storage devices
US20080162612A1 (en)Method for block relinking
KR20160139864A (en)Non-volatile memory system
US7904670B2 (en)Methods for conversion of update blocks based on comparison with a threshold size
TWI380303B (en)Methods for storing memory operations in a queue

Legal Events

DateCodeTitleDescription
TRDDDecision of grant or rejection written
A01Written decision to grant a patent or to grant a registration (utility model)

Free format text:JAPANESE INTERMEDIATE CODE: A01

A61First payment of annual fees (during grant procedure)

Free format text:JAPANESE INTERMEDIATE CODE: A61

Effective date:20090817

R150Certificate of patent or registration of utility model

Ref document number:4362549

Country of ref document:JP

Free format text:JAPANESE INTERMEDIATE CODE: R150

Free format text:JAPANESE INTERMEDIATE CODE: R150

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

S111Request for change of ownership or part of ownership

Free format text:JAPANESE INTERMEDIATE CODE: R313113

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

R360Written notification for declining of transfer of rights

Free format text:JAPANESE INTERMEDIATE CODE: R360

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

R370Written measure of declining of transfer procedure

Free format text:JAPANESE INTERMEDIATE CODE: R370

S111Request for change of ownership or part of ownership

Free format text:JAPANESE INTERMEDIATE CODE: R313113

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

R350Written notification of registration of transfer

Free format text:JAPANESE INTERMEDIATE CODE: R350

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20120821

Year of fee payment:3

FPAYRenewal fee payment (event date is renewal date of database)

Free format text:PAYMENT UNTIL: 20130821

Year of fee payment:4

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

S533Written request for registration of change of name

Free format text:JAPANESE INTERMEDIATE CODE: R313533

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

R350Written notification of registration of transfer

Free format text:JAPANESE INTERMEDIATE CODE: R350

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

R250Receipt of annual fees

Free format text:JAPANESE INTERMEDIATE CODE: R250

LAPSCancellation because of no payment of annual fees

[8]ページ先頭

©2009-2025 Movatter.jp