JP4977703B2 - Non-volatile memory with scheduled playback operation - Google Patents
Non-volatile memory with scheduled playback operation Download PDFInfo
- Publication number
- JP4977703B2 JP4977703B2 JP2008525169A JP2008525169A JP4977703B2 JP 4977703 B2 JP4977703 B2 JP 4977703B2 JP 2008525169 A JP2008525169 A JP 2008525169A JP 2008525169 A JP2008525169 A JP 2008525169A JP 4977703 B2 JP4977703 B2 JP 4977703B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- host
- block
- memory array
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 381
- 238000000034 method Methods 0.000 claims description 40
- 230000003044 adaptive effect Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 2
- 238000007596 consolidation process Methods 0.000 description 21
- 230000007704 transition Effects 0.000 description 19
- 238000007726 management method Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 8
- 230000007423 decrease Effects 0.000 description 8
- 238000013519 translation Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000017702 response to host Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
本願は、半導体フラッシュメモリなどの再プログラム可能な不揮発性メモリシステムの操作に関し、より具体的にはこのようなメモリの中の使用可能な空間の管理に関する。本願明細書で参照される特許、特許出願、記事、その他の出版物、文書、事柄はどれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。 This application relates to the operation of reprogrammable non-volatile memory systems, such as semiconductor flash memory, and more particularly to the management of available space in such memory. Any patents, patent applications, articles, other publications, documents, or matters referred to herein are hereby incorporated by reference in their entirety for all purposes.
初期世代の商用フラッシュメモリシステムでは、メモリセルからなる矩形のアレイが、標準ディスクドライブセクタのデータ量、すなわち512バイトを、各々記憶する多数のセルグループに分割されていた。さらに通常ならば、誤り訂正符号(ECC)を記憶し、、ことによるとユーザデータおよび/またはこれを記憶するメモリセルグループに、関係する他のオーバーヘッドデータを記憶するため、16バイトなどの一定量のデータが各グループに加わる。このような各グループの中にあるメモリセルは、ともに消去可能な最低数のメモリセルである。すなわち、消去単位は事実上、1つのデータセクタを、そしてオーバーヘッドデータが含まれる場合はオーバーヘッドデータを、記憶するメモリセル数である。米国特許第5,602,987号(特許文献1)および第6,426,893号(特許文献2)には、このタイプのメモリシステムの例が記載されている。フラッシュメモリの特徴として、メモリセルにデータを再度プログラムする前にメモリセルを消去する必要がある。 In early generation commercial flash memory systems, a rectangular array of memory cells was divided into a number of cell groups each storing the amount of data in a standard disk drive sector, ie 512 bytes. More usually, an error correction code (ECC) is stored, possibly a certain amount, such as 16 bytes, to store user data and / or other overhead data related to the memory cell group storing it. Data will be added to each group. The memory cells in each such group are the minimum number of memory cells that can be erased together. That is, the erase unit is effectively the number of memory cells that store one data sector and, if overhead data is included, the overhead data. U.S. Pat. Nos. 5,602,987 and 6,426,893 describe examples of this type of memory system. As a feature of flash memory, it is necessary to erase the memory cell before reprogramming the data into the memory cell.
フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストと着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、このようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込む場合、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタまたはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム(DOS)のように、メモリシステムの論理アドレス空間の中のアドレスにデータを書き込み、かつこれからデータを読み出す。メモリシステムの中のコントローラは、ホストから受け取った論理アドレスをメモリアレイの中のデータが実際に記憶される物理アドレスに翻訳し、これらのアドレス翻訳の経緯を把握する。メモリシステムのデータ記憶容量は少なくとも、メモリシステムのために設定される論理アドレス空間全体にわたってアドレスされるデータ量に相当する。 Flash memory systems are often provided in the form of memory cards or flash drives that are detachably connected to various hosts, such as personal computers and cameras, but can also be embedded in such host systems. is there. When a host normally writes data to memory, it assigns a unique logical address to a sector, cluster or other data unit within the contiguous virtual address space of the memory system. The host, like a disk operating system (DOS), writes data to and reads data from addresses in the logical address space of the memory system. The controller in the memory system translates the logical address received from the host into a physical address where the data in the memory array is actually stored, and grasps the history of the address translation. The data storage capacity of the memory system corresponds at least to the amount of data addressed over the entire logical address space set for the memory system.
後続世代のフラッシュメモリシステムでは、消去単位のサイズが複数セクタのデータを十分に記憶するメモリセルブロックまで拡大した。メモリシステムの接続先にあたるホストシステムがセクタなどの小さな最小単位でデータをプログラムし読み出すとしても、フラッシュメモリの1消去単位には多数のセクタが記憶される。ホストが論理セクタのデータの更新や置き換えを行うときに、ブロック内のいくつかのデータセクタが用済みになることは多々ある。ブロックに記憶されたデータに上書きを行うには事前にブロック全体を消去しなければならないから、新規または更新済みデータは通常、あらかじめ消去されデータのための容量が残っている別のブロックに記憶される。この過程で元のブロックには用済みデータが残り、メモリ内の貴重な空間を取る。しかし、このブロックは、その中に有効データが残っていると消去できない。 In subsequent generation flash memory systems, the size of the erase unit has been expanded to a memory cell block that can sufficiently store data of a plurality of sectors. Even if the host system, which is the connection destination of the memory system, programs and reads data in a small minimum unit such as a sector, a large number of sectors are stored in one erase unit of the flash memory. When the host updates or replaces logical sector data, several data sectors in a block are often used up. Since the entire block must be erased before the data stored in the block can be overwritten, new or updated data is usually stored in a separate block that has been previously erased and has room for data. The In this process, the used data remains in the original block and takes up valuable space in the memory. However, this block cannot be erased if valid data remains in it.
したがって、メモリ記憶容量の有効利用を図るため、有効な不完全ブロックのデータ量を消去済みブロックにコピーすることによってこれを整理または回収するのが一般的であり、こうすればデータのコピー元にあたるブロックを消去でき、その記憶容量の全体を再利用できる。ブロック内のデータセクタをそれぞれの論理ブロックの順にグループ分けするためにデータをコピーすることも望ましく、こうすればデータを読み出して、読み出したデータをホストへ転送する速度が上がる。そのようなデータコピーがあまりにも頻繁に行われると、メモリシステムの動作性能が低下することがある。これは特に、メモリの記憶容量が、システムの論理アドレス空間を通じてホストによってアドレス指定可能なデータ量と大差ない場合、つまりよくある場合、メモリシステムの動作に影響する。この場合は、ホストプログラミングコマンドが実行される前にデータを整理または回収する必要がある。そうするとプログラミングの時間が長引く。 Therefore, in order to effectively use the memory storage capacity, it is common to arrange or collect the data amount of the effective incomplete block by copying it to the erased block, and this is equivalent to the data copy source. Blocks can be erased and their entire storage capacity can be reused. It is also desirable to copy the data to group the data sectors in the block in the order of their logical blocks, which increases the speed at which the data is read and transferred to the host. If such data copying is performed too frequently, the operating performance of the memory system may be degraded. This particularly affects the operation of the memory system if the storage capacity of the memory is not very different from the amount of data that can be addressed by the host through the logical address space of the system. In this case, the data needs to be organized or retrieved before the host programming command is executed. This will prolong the programming time.
所与の半導体エリアに記憶できるデータのビット数を増やすため、ブロックのサイズはメモリシステムの世代交代を通じて拡大している。256以上のデータセクタを記憶するブロックが一般的になりつつある。加えてデータのプログラミングと読み出しにあたって並列度を高めるため、アレイまたはサブアレイからなる2つ、4つ、またはそれ以上のブロックがしばしばメタブロックとして論理的にともにリンクされる。そのような大容量操作単位には、それらを効率的に操作するという課題がともなう。 In order to increase the number of bits of data that can be stored in a given semiconductor area, the size of the block has increased through generational changes in memory systems. Blocks that store more than 256 data sectors are becoming common. In addition, two, four, or more blocks of arrays or subarrays are often logically linked together as metablocks to increase parallelism in programming and reading data. Such large capacity operation units have the problem of operating them efficiently.
したがって、不揮発性メモリの記憶されたデータ管理の改善が求められている。有効データを収容しておらず、新規な有効データを記憶するために現在使用できないメモリ空間を効率的に再生するシステムもまた求められている。ホストデータのプログラミングなどの他のメモリ操作への影響がごく僅かかまたは皆無となるように再生操作を遂行するシステムもまた求められている。
メモリが消去済みブロックを使い果たす前にメモリアレイの空間を再生すれば、ホストデータのプログラミングがひどく遅れて制限時間の超過を招くリスクは回避できる。メモリにホストデータが入るにつれ、メモリが満杯になるまでに消去済みブロックが使い果たされないようにメモリアレイの空間を再生する。再生は、消去済みブロックが不足するかなり前に再生が始まるスケジュールに従って行うことができる。再生操作は交互比に従ってホストデータの書き込みと交互に行われるから、再生操作は、長時間かけて一気に行われる代わりに長期間にわたって分散する。この交互比は、残りの全再生書き込みに対する残りの全ホスト書き込みの比となるように算出される。 If the memory array is reclaimed before the memory runs out of erased blocks, the risk of host data programming being severely delayed and exceeding the time limit can be avoided. As the host data enters the memory, the memory array space is reclaimed so that the erased blocks are not used up until the memory is full. Replay can be performed according to a schedule where playback begins long before the number of erased blocks runs short. Since the reproduction operation is alternately performed with the writing of the host data in accordance with the alternating ratio, the reproduction operation is dispersed over a long period of time instead of being performed at a stretch over a long time. This alternating ratio is calculated to be the ratio of the remaining all host writes to the remaining all playback writes.
ファイル本位ホストインターフェイスがメモリをホストへ接続する場合、メモリコントローラは、メモリアレイに記憶されるデータについて正確で最新の情報を得ることができ、メモリが満杯になる前にメモリに書き込むことができる追加のホストデータの量と、メモリが満杯になる前に必要とされる再生の量とから、適切な交互比を推定できる。再生操作を残りの時間の全体にわたって均一に分散することにより、一定レートのホストデータプログラミングを達成する。セクタ本位インターフェイスやその他のインターフェイスを有するメモリの場合、このような推定を果たすための情報がホストから提供されるため、交互比を同様に計算できる。 When a file-oriented host interface connects memory to the host, the memory controller can get accurate and up-to-date information about the data stored in the memory array and can be written to the memory before it is full From this amount of host data and the amount of playback required before the memory is full, an appropriate alternating ratio can be estimated. A constant rate of host data programming is achieved by distributing the replay operations uniformly throughout the remaining time. In the case of a memory having a sector-oriented interface and other interfaces, information for performing such an estimation is provided from the host, so that the alternating ratio can be calculated in the same manner.
交互比は間隔を置いて計算でき、あるいはホストによるある程度の記憶データの削除などのトリガイベントがあるときに計算できる。このようにして交互比は適宜更新され、状況の変化に適応する。 The alternating ratio can be calculated at intervals, or it can be calculated when there is a triggering event, such as deletion of some stored data by the host. In this way, the alternating ratio is appropriately updated to adapt to changes in the situation.
再生は様々なモードで様々に管理できる。書き込まれるホストデータと果たされる再生操作との推定に基づく適応再生に加えて、ある程度の低い(またはゼロの)レートで空間を再生する最小再生モードがあってよい。最小再生モードは通常、再生可能な空間に比べて十分な消去済みブロックがある場合に適用する。ある程度の最大レートで空間を交互に再生する最大再生モードもあってよい。最大再生モードは通常、消去済みブロックがほとんどない場合に、つまりメモリがほぼ満杯のときによくある状況に適用する。加えて、ホストコマンドに応じて(交互にではなく)連続的に再生を果たすことができる。ホストコマンドに応じて再生を禁じることもできる。 Playback can be managed differently in different modes. In addition to adaptive playback based on estimates of host data to be written and playback operations performed, there may be a minimum playback mode that plays back space at some low (or zero) rate. The minimum playback mode is usually applied when there are enough erased blocks compared to the reproducible space. There may also be a maximum playback mode in which space is played back alternately at a certain maximum rate. Maximum playback mode usually applies to situations where there are few erased blocks, that is, when the memory is almost full. In addition, playback can be performed continuously in response to host commands (not alternately). Playback can also be prohibited in response to host commands.
フラッシュメモリの概説
現在のフラッシュメモリシステムおよびホストデバイスとの典型的な動作を、図1〜8との関係で説明する。このようなシステムで本発明の様々な態様を実施できる。図1のホストシステム1は、フラッシュメモリ2の中にデータを記憶し、かつフラッシュメモリ2からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ2はそれよりも一般的なカードの形で図に示され、このカードは、機械的および電気的コネクタの嵌合部分3および4を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在多く市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および/または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムは類似する。これらのカードはいずれも、本願の譲受人であるサンディスク コーポレイション(SanDisk Corporation) から入手できる。サンディスク コーポレイションはまた、クルーザー(Cruzer)という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス(USB)差込口に差し込まれることによってホストと接続するUSBプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連動して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
Overview of Flash Memory Typical operations with current flash memory systems and host devices are described in relation to FIGS. Various aspects of the present invention can be implemented in such a system. The
このようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。パーソナルコンピュータ(PC)、ラップトップおよび他の携帯用コンピュータ、携帯電話、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、携帯形オーディオプレイヤ等が含まれる。ホストは通常ならば1種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、一部のホストはメモリカードを差し込むアダプタを要する。 There are many host systems that use such memory cards and flash drives. These include personal computers (PCs), laptops and other portable computers, mobile phones, personal digital assistants (PDAs), digital still cameras, digital video cameras, portable audio players, and the like. While hosts usually incorporate an integrated slot for one or more types of memory cards or flash drives, some hosts require an adapter to plug in a memory card.
図1のホストシステム1は、メモリ2が接続される限りにおいて、回路とソフトウェアとの組み合わせからなる、2つの主要部分を有するものとみなすことができる。それらはアプリケーション部5と、メモリ2と連動するドライバ部6である。例えばパーソナルコンピュータの場合、アプリケーション部5は、ワープロ、グラフィック、コントロールまたはその他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話、または専ら1組の機能を遂行するためのその他のホストシステムの場合、アプリケーション部5は、写真を撮影したり記憶したりするためにカメラを動作させる、電話をかけたり受けたりするために携帯電話を動作させる、ソフトウェアを含む。
As long as the
図1のメモリシステム2はフラッシュメモリ7および回路8を含み、回路はいずれも、データをやり取りし、かつメモリ7を制御するため、カードの接続先にあたるホストと連動する。コントローラ8は通常、データのプログラミングと読み出しの際にホスト1によって使用されるデータの論理アドレスとメモリ7の物理アドレスとの変換を行う。
The
図2を参照し、図1の不揮発性メモリ2として使用できる典型的フラッシュメモリシステムの回路が説明される。システムコントローラは普通、システムバス13沿いに1つ以上の集積回路メモリチップと並列で接続される単一集積回路チップ11上で実施され、図2にはただひとつのこのようなメモリチップ15が示されている。図に示された特定のバス13は、データを搬送する1セットの導体17と、メモリアドレスのためのセット19と、制御および状態信号のためのセット21とを含む。あるいは、これらの3機能の間で1セットの導体を時分割共用できる。さらに、2004年8月9日に出願された米国特許出願第10/915,039号「リングバス構造とフラッシュメモリシステムにおけるその使用(Ring Bus Structure and It's Use in Flash Memory Systems) 」(特許文献3)で説明されているリングバスなど、これとは別のシステムバス構成を使用できる。
With reference to FIG. 2, a circuit of a typical flash memory system that can be used as the
典型的コントローラチップ11は、インターフェイス回路25を通じてシステムバス13と連動する独自の内部バス23を有する。このバスへ通常接続される主要機能には、プロセッサ27(例えば、マイクロプロセッサまたはマイクロコントローラ)と、システムを初期化(「ブート」)するためのコードを収容する読み出し専用メモリ(ROM)29と、主にメモリとホストとの間で転送されるデータをバッファするために使われるランダムアクセスメモリ(RAM)31と、コントローラを通じてメモリとホストとの間を行き来するデータのために誤り訂正符号(ECC)を計算し検査する回路33とがある。コントローラバス23は回路35を通じてホストシステムと連動し、これは、メモリカードに収容される図2のシステムの場合、コネクタ4の一部をなすカードの外部接点37を通じて果たされる。クロック39は、コントローラ11の他のコンポーネントの各々に接続され、他のコンポーネントの各々によって利用される。
The
メモリチップ15と、システムバス13に接続される他のメモリチップは通常、複数のサブアレイまたはプレーンに編制されたメモリセルアレイを収容し、簡潔を図るために2つのこのようなプレーン41および43が図に示されているが、これよりも多い、例えば4つ、または8つの、このようなプレーンを代わりに使用することもできる。あるいは、チップ15のメモリセルアレイはプレーンに分割しなくともよい。しかし、分割するなら、各々のプレーンは互いに独立して動作できる独自の列制御回路45および47を有する。回路45および47は、システムバス13のアドレス部19からそれぞれのメモリセルアレイのアドレスを受け取り、それぞれのビット線49および51のうちの、特定の1つ以上のビット線をアドレス指定するため、それらを復号化する。ワード線53は、アドレスバス19で受け取るアドレスに応じて行制御回路55を通じてアドレス指定される。ソース電圧制御回路57および59もまたそれぞれのプレーンに接続され、pウェル電圧制御回路61および63も同様である。メモリチップ15がただひとつのメモリセルアレイを有し、2つ以上のこのようなチップがシステムに存在する場合、各チップのアレイは、前述したマルチプレーンチップ内のプレーンまたはサブアレイと同様に動作させることができる。
The
データは、システムバス13のデータ部17に接続されたそれぞれのデータ入出力回路65および67を通じてプレーン41および43を出入りする。回路65および67は、それぞれの列制御回路45および47を通じてプレーンへ接続する線69および71を通じて、メモリセルの中にデータをプログラムし、かつそれぞれのプレーンのメモリセルからデータを読み出すためにある。
Data enters and exits the
コントローラ11は、データをプログラムし、読み出し、消去し、かつ様々なハウスキーピング作業に応対するためにメモリチップ15の動作を制御するが、各々のメモリチップもまた、このような機能を遂行するためにコントローラ11からのコマンドを実行する何らかの制御回路を収容する。インターフェイス回路73はシステムバス13の制御および状態部21へ接続される。コントローラからのコマンドは状態マシン75へ提供され、状態マシンは、これらのコマンドを実行するために他の回路の特定の制御も提供する。制御線77〜81は、図2に示す他の回路に状態マシン75を接続する。状態マシン75からの状態情報は、バス部21に沿ってコントローラ11へ送信するため、ライン83に沿ってインターフェイス73へ伝達される。
The
現在はメモリセルアレイ41および43のNANDアーキテクチャが好まれているが、NORなどの他のアーキテクチャを代わりに使用することもできる。NANDフラッシュメモリおよびメモリシステムの一部としてのこれの動作の例が、米国特許第5,570,315号(特許文献4)、第5,774,397号(特許文献5)、第6,046,935号(特許文献6)、第6,373,746号(特許文献7)、第6,456,528号(特許文献8)、第6,522,580号(特許文献9)、第6,771,536号(特許文献10)、および第6,781,877号(特許文献11)ならびに米国公開特許出願第2003/0147278号(特許文献12)を参照することによって得られる。
Currently, the NAND architecture of
図2のメモリシステムのメモリセルアレイ41の一部分にあたる図3の回路図には、NANDアレイの例が示されている。多数のグローバルビット線が提供されるが、説明の簡潔を図るため、図3には4つのこのような線91〜94だけが示されている。これらのビット線の1ビット線と基準電位との間には、いくつかの直列接続メモリセルストリング97〜104が接続される。メモリセルストリング99を代表として使用し、ストリングの両端にある選択トランジスタ111および112には複数の電荷記憶メモリセル107〜110が直列で接続される。1ストリングの選択トランジスタが通電すると、ストリングがそのビット線と基準電位との間で接続される。次いで、そのストリングの中で一度に1つのメモリセルがプログラムされ、または読み出される。
An example of a NAND array is shown in the circuit diagram of FIG. 3 corresponding to a part of the
図3のワード線115〜118は、数々のメモリセルストリングの各々で1つのメモリセルの電荷記憶素子にわたって個別に延在し、ゲート119および120は、ストリングの各末端にある選択トランジスタの状態を制御する。共通のワードおよびコントロールゲート線115〜120を共用するメモリセルストリングは、ともに消去されるメモリセルのブロック123を形成する。このセルからなるブロックは、一度に物理的に消去できる最小数のセルを収容する。ワード線115〜118の1ワード線沿いの1行のメモリセルが一度にプログラムされる。通常、NANDアレイの行は規定の順序でプログラムされ、この場合は、接地または共通電位へ接続されたストリングの末端に最も近いワード線118沿いの行から始まる。次にワード線117沿いのメモリセル行がプログラムされ、ブロック123の全体を通じて同様に進むなどである。最後にワード線115沿いの行がプログラムされる。
3 extend individually across the charge storage elements of one memory cell in each of a number of memory cell strings, and
第2のブロック125は類似し、そのメモリセルストリングは第1のブロック123のストリングと同じグローバルビット線へ接続されるが、異なる1組のワード線およびコントロールゲート線を有する。ワード線およびコントロールゲート線は、行制御回路55によって適切な動作電圧まで駆動される。図2のプレーン1および2のような、2つ以上のプレーンまたはサブアレイがシステムにある場合、それらの間に延在する共通ワード線を1つのメモリアーキテクチャで使用する。代わりに、共通ワード線を共用する3つ以上のプレーンまたはサブアレイがあってもよい。別のメモリアーキテクチャでは、個々のプレーンまたはサブアレイのワード線が別々に駆動される。
The
前に参照されているNAND特許および公開特許出願のいくつかで説明されているように、3つ以上の検出可能な電荷レベルを各電荷記憶素子または領域に記憶するようメモリシステムを動作させることができ、これにより2ビット以上のデータを各々に記憶する。メモリセルの電荷記憶素子は一般的には導電性フローティングゲートであるが、代わりに米国公開特許出願第2003/0109093号(特許文献13)で説明される非導電性誘電性電荷捕獲材であってもよい。 Operating the memory system to store more than two detectable charge levels in each charge storage element or region, as described in some of the previously referenced NAND patents and published patent applications. In this way, data of 2 bits or more is stored in each. The charge storage element of a memory cell is generally a conductive floating gate, but instead is a non-conductive dielectric charge trapping material described in US Published Patent Application No. 2003/0109093. Also good.
図4は、以降のさらなる説明で一例として使用するフラッシュメモリセルアレイ7(図1)の編制を概念的に示している。1つの集積メモリセルチップ、2つのチップ(各チップ上のプレーンのうちの2つ)、または4つの別々のチップの上に、メモリセルの4つのプレーンまたはサブアレイ131〜134があってよい。具体的な配置は以降の説明にとって重要でない。もちろん、1、2、8、16以上などの、これ以外の数のプレーンがシステムの中にあってもよい。プレーンは、それぞれのプレーン131〜134に位置するブロック137、138、139、および140の矩形によって図4に示すメモリセルブロックに各々分割される。各プレーンには何十、何百ものブロックがあってよい。前述したように、メモリセルのブロックは消去の単位、すなわちともに物理的に消去できる最小数のメモリセルである。しかし、並列性を高めるためには、これよりも大きいメタブロック単位でブロックを操作する。各プレーンから1つのブロックが論理的にリンクされることによってメタブロックを形成する。4つのブロック137〜140によって1つのメタブロック141が形成される様子が図に示されている。通常ならば、1メタブロック内の全てのセルが一緒に消去される。ブロック145〜148からなる第2のメタブロック143に見られるように、メタブロックを形成するように使用されるブロックを、それぞれのプレーンの中の同じ相対的位置に制限する必要はない。通常は全てのプレーンにわたってメタブロックを延在させるのが好ましいが、高いシステム性能のためには、異なるプレーンにある1つ、2つ、または3つのブロックのいずれかまたは全部からなるメタブロックを動的に形成する能力を用いてメモリシステムを操作することができる。これにより、1回のプログラミング操作で記憶のために使用できるデータ量にメタブロックのサイズをより近づけることが可能となる。
FIG. 4 conceptually illustrates the organization of the flash memory cell array 7 (FIG. 1) used as an example in the further description below. There may be four planes or subarrays 131-134 of memory cells on one integrated memory cell chip, two chips (two of the planes on each chip), or four separate chips. The specific arrangement is not important for the following description. Of course, there may be other numbers of planes in the system, such as 1, 2, 8, 16 or more. The planes are each divided into memory cell blocks shown in FIG. 4 by rectangles of
個々のブロックはさらに、動作上の目的のため、図5に示すようにメモリセルのページに分割される。例えば、ブロック131〜134の各々のメモリセルは8つのページP0〜P7に各々分割されている。代わりに、16、32、またはそれ以上のメモリセルページが各ブロックの中にあってよい。ページは、ブロックの中でデータをプログラムし読み出す単位であり、一度にプログラムされる、または読み出される、最少量のデータを収容する。図3のNANDアーキテクチャでは、ブロックの中でワード線沿いのメモリセルからページが形成されている。しかし、メモリシステムの動作上の並列性を高めるために、2つ以上のブロックの中にあるこのようなページをメタページの中に論理的にリンクできる。図5には、4つのブロック131〜134の各々にある1つの物理ページから形成されたメタページ151が示されている。メタページ151は、例えば4つのブロックの各々にあるページP2を含むが、メタページのページは、ブロックの各々の中で同じ相対的位置になくてもよい。全4つのプレーンにわたって最大量のデータを並行してプログラムし読み出すことが望ましいが、高いシステム性能のため、異なるプレーンの中にある別々のブロックの1つ、2つ、または3つのページのいずれかまたは全てからメタページを形成するべくメモリシステムを操作することもできる。これにより、並行して簡便に扱えるデータ量にプログラミングおよび読み出し動作を適合させることができ、さらにデータがプログラムされない部分がメタページに残る機会は減る。
The individual blocks are further divided into pages of memory cells for operational purposes as shown in FIG. For example, each memory cell of the
図5に示す複数のプレーンの物理ページからなるメタページは、それらの複数のプレーンのワード線行に沿ってメモリセルを収容する。1つのワード線行にある全てのセルを同時にプログラムするよりは、2つ以上のインターリーブされたグループでそれらを交互にプログラムするほうがむしろ一般的であり、各グループは、(単一ブロック内の)1ページのデータまたは(複数のブロックにまたがる)1メタページのデータを記憶する。交互のメモリセルを一度にプログラムすることにより、データレジスタやセンス増幅器を含むひとまとまりの周辺回路を各ビット線のために用意する必要はなく、むしろ隣接するビット線の間で時分割共用される。これは、周辺回路に要する基板空間の量を節約し、メモリセルの行沿いの実施密度を増やすことができる。さもなくば、所与のメモリシステムから最大限の並列性を引き出すために、行沿いの全セルを同時にプログラムするのが望ましい。ほとんどのデータ管理目的で、メタブロックおよびメタページはブロックおよびページと同様に扱うことができる。メタブロックおよびメタページに関して本願に提示される例は概して、消去およびプログラミングの単位としてブロックとページとをそれぞれ使用するメモリにも当てはまる。同様に、ブロックとページに関して提示される例は概して、メタブロックとメタページとを使用するメモリにも当てはまる。 A metapage composed of physical pages of a plurality of planes shown in FIG. 5 accommodates memory cells along word line rows of the plurality of planes. Rather than programming all the cells in a word line row simultaneously, it is more common to program them alternately in two or more interleaved groups, each group (within a single block) One page of data or one metapage of data (across multiple blocks) is stored. By programming alternating memory cells at a time, it is not necessary to provide a group of peripheral circuits including data registers and sense amplifiers for each bit line, but rather are time-shared between adjacent bit lines. . This saves the amount of substrate space required for the peripheral circuitry and can increase the implementation density along the row of memory cells. Otherwise, it is desirable to program all cells along a row simultaneously in order to derive maximum parallelism from a given memory system. For most data management purposes, metablocks and metapages can be treated like blocks and pages. The examples presented herein with respect to metablocks and metapages also generally apply to memories that use blocks and pages, respectively, as erase and programming units. Similarly, the examples presented for blocks and pages generally apply to memory using metablocks and metapages.
非常に大きい消去ブロックを伴うメモリアレイの操作を効率的に制御するにあたって1つの課題となるのは、所与の書き込み操作のときに記憶されるデータセクタの数を、メモリのブロックの容量に一致させ、その境界に整合させることである。1つのアプローチでは、メタブロック全体を埋め尽くす量に満たない一定量のデータを記憶するのに必要なため、ホストからの新規データの記憶するのに使うメタブロックを、最大ブロック数未満で適宜構成する。適応メタブロックの使用が、2003年12月30日に出願された米国特許出願第10/749,189号「適応メタブロック(Adaptive Metablocks) 」(特許文献14)で説明されている。データブロック間の境界とメタブロック間の物理的境界の整合は、2004年5月7日に出願された米国特許出願第10/841,118号(特許文献15)、2004年12月16日に出願された米国特許出願第11/016,271号「データランプログラミング(Data Run Programming)」(特許文献16)で説明されている。 One challenge in efficiently controlling the operation of a memory array with very large erase blocks is to match the number of data sectors stored during a given write operation to the capacity of the block of memory. And align with that boundary. Because one approach is required to store a certain amount of data that does not fill the entire metablock, the metablocks used to store new data from the host are configured appropriately below the maximum number of blocks. To do. The use of adaptive metablocks is described in US patent application Ser. No. 10 / 749,189, “Adaptive Metablocks” filed Dec. 30, 2003 (Patent Document 14). The alignment of the boundaries between data blocks and the physical boundaries between metablocks is described in US patent application Ser. No. 10 / 841,118, filed on May 7, 2004, on December 16, 2004. This is described in filed US patent application Ser. No. 11 / 016,271, “Data Run Programming”.
図3を参照し、行沿いの互い違いのメモリセルへのデータの同時プログラミングを最も簡便に果たすには、NANDストリングの少なくとも一端に沿って2行の選択トランジスタ(図示せず)を、図に示された1行の代わりに、提供することである。この場合、一方の行の選択トランジスタは、1つの制御信号に応じてブロック内の互い違いのストリングをそれぞれのビット線へ接続し、他方の行の選択トランジスタは、別の制御信号に応じて介在する互い違いのストリングをそれぞれのビット線へ接続する。したがって、メモリセルの各行には2ページ分のデータが書き込まれる。 Referring to FIG. 3, for the most convenient simultaneous programming of data into alternating memory cells along a row, two rows of select transistors (not shown) are shown in the figure along at least one end of the NAND string. Is to provide instead of one line. In this case, the select transistors in one row connect the staggered strings in the block to the respective bit lines in response to one control signal, and the select transistors in the other row intervene in response to another control signal. Connect alternate strings to each bit line. Accordingly, two pages of data are written in each row of memory cells.
各論理ページのデータ量は通常、1つ以上の整数のデータセクタ数であって、各セクタは慣例上512バイトのデータを収容する。図6は、1ページまたはメタページの、2つのデータのセクタ153および155からなる論理データページを示している。各セクタは普通、512バイトのユーザデータまたはシステムデータが記憶される部分157と、部分157にあるデータまたはこれを記憶する物理ページまたはブロックに関係するオーバーヘッドデータのための別のバイト数159を収容する。オーバーヘッドデータのバイト数は通常ならば16バイトであり、セクタ153および155の各々につき合計528バイトになる。オーバーヘッド部分159は、プログラミング中にデータ部分157から算出されるECC、その論理アドレス、ブロックが消去され再プログラムされる回数の経験カウント、1つ以上の制御フラグ、動作電圧レベル等に加え、このようなオーバーヘッドデータ159から算出されるECCを収容できる。代わりに、オーバーヘッドデータ159またはオーバーヘッドデータ159の一部分は、他のブロックの別のページに記憶できる。
The amount of data in each logical page is usually an integer number of one or more data sectors, and each sector conventionally accommodates 512 bytes of data. FIG. 6 shows a logical data page consisting of two
メモリの並列性が高まるにつれメタブロックのデータ記憶容量は増し、その結果、データページおよびメタページのサイズも増す。データページは3セクタ以上のデータを収容できる。1データページ内に2つのセクタと、各メタページにつき2つのデータページとで、1メタページ内のセクタは4つになる。よって、各メタページは2,048バイトのデータを記憶する。これは高度な並列性であり、行内のメモリセル数の増加にともないさらに高めることができる。このため、ページおよびメタページ内のデータ量を増やすために、フラッシュメモリの幅が拡大されつつある。前述した物理的に小さい再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは市販され、データ記憶容量は512メガバイト(MB)、1ギガバイト(GB)、2GB、4GB以上になる。 As memory parallelism increases, the data storage capacity of the metablock increases and, as a result, the size of the data pages and metapages also increase. The data page can contain data of 3 sectors or more. There are four sectors in one metapage, with two sectors in one data page and two data pages for each metapage. Therefore, each metapage stores 2,048 bytes of data. This is a high degree of parallelism and can be further increased as the number of memory cells in a row increases. For this reason, the width of the flash memory is being expanded in order to increase the amount of data in the page and metapage. The physically small reprogrammable non-volatile memory cards and flash drives described above are commercially available, with data storage capacities of 512 megabytes (MB), 1 gigabyte (GB), 2 GB, 4 GB or more.
図7は、ホストとこのような大容量メモリシステムとの間の一般的なインターフェイスを示している。ホストは、ホストによって実行されるアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。ワープロデータファイルはその一例であり、コンピュータ支援設計(CAD)ソフトウェアの描画ファイルもこれにあたり、主にPC、ラップトップコンピュータ等、一般的なコンピュータホストに見られる。pdf形式の文書もこのようなファイルである。静止画デジタルビデオカメラは各写真につきデータファイルを生成し、データファイルはメモリカードに記憶される。携帯電話は、電話帳などの内蔵メモリカード上のファイルからデータを利用する。PDAは、住所ファイル、カレンダーファイル等、数通りのファイルを記憶し使用する。このような用途において、メモリカードはホストを操作するソフトウェアを収容することもある。 FIG. 7 shows a typical interface between a host and such a mass memory system. The host processes data files generated or used by application software or firmware programs executed by the host. A word processor data file is an example, and a computer aided design (CAD) software drawing file corresponds to this, and is mainly found in general computer hosts such as PCs and laptop computers. A document in the pdf format is also such a file. The still picture digital video camera generates a data file for each photograph, and the data file is stored in a memory card. A cellular phone uses data from a file on a built-in memory card such as a telephone directory. The PDA stores and uses several types of files such as address files and calendar files. In such applications, the memory card may contain software that operates the host.
図7で、連続する論理アドレス空間161は、メモリシステムに記憶される全データのためのアドレスを提供するにあたって十分に大きい。通常、論理アドレス空間はメモリアレイの物理アドレス空間よりいくぶん小さいから、メモリアレイにはある程度の余分な空間がある。ホスト論理アドレス空間は通常、データクラスタの単位に分割される。所与のホストシステムにおいて、いくつかのデータセクタを収容するように各クラスタを設計でき、4から64セクタあたりが一般的である。標準的なセクタは512バイトのデータを収容する。
In FIG. 7, the contiguous
図7の例では、3つのファイル1,2,および3が作成されたものとして示されている。ホストシステムで実行するアプリケーションプログラムは、整列された1組のデータとして各ファイルを作成し、一意な名前またはその他の参照符によってこれを識別する。ファイル1にはホストによって、他のファイルにまだ割り振られていない十分に使用可能な論理アドレス空間が、割り当てられる。ファイル1は、一連の使用可能な論理アドレス範囲が割り当てられた状態で示されている。このほかに通常ならば、ホストオペレーティングソフトウェアのための特定の範囲などの、特定の目的のためにアドレス範囲が割り振られ、これらのアドレス範囲は、たとえホストがデータに論理アドレスを割り当てようとするときに、これらのアドレスがまだ利用されていなくとも、データの記憶にあたって回避される。
In the example of FIG. 7, three
ホストは同様に、後ほどホストによってファイル2が作成されるときに、論理アドレス空間161の中の2つの異なる連続アドレス範囲を、図7に示すように割り当てる。ファイルに連続する論理アドレスを割り当てる必要はなく、すでに他のファイルに割り振られているアドレス範囲の間にあるアドレスの断片であってもよい。この例はさらに、ホストによって作成されたもうひとつのファイル3に、ファイル1および2やその他のデータにまだ割り振られていないホストアドレス空間の別の部分が割り振られる様子を示している。この例で、ファイル1、ファイル2、およびファイル3にはいずれも、共通論理アドレス空間(論理アドレス空間161)の一部分が割り当てられる。
Similarly, when the
ホストは、ファイルアロケーションテーブル(FAT)を保守することによってメモリ論理アドレス空間を絶えず把握し、このファイルアロケーションテーブルでは、ホストが様々なホストファイルに割り当てる論理アドレスが保守される。FATテーブルは通常、ホストメモリと同様に不揮発性メモリに記憶され、新しいファイルが記憶されるとき、他のファイルが削除されるとき、ファイルが修正されるとき等に、ホストによって頻繁に更新される。ホストは、例えばホストファイルが削除されるときに、FATテーブルを更新することによって削除ファイルに前に割り振られていた論理アドレスを解除して、それらの論理アドレスを別のデータファイルに使用できることを明らかにする。 The host keeps track of the memory logical address space by maintaining a file allocation table (FAT), in which the logical addresses that the host assigns to the various host files are maintained. The FAT table is usually stored in non-volatile memory similar to the host memory and is frequently updated by the host when new files are stored, when other files are deleted, when files are modified, etc. . Obviously, when a host file is deleted, the host can release the logical addresses previously allocated to the deleted file by updating the FAT table and use those logical addresses for another data file. To.
ホストは、メモリシステムコントローラがファイルを記憶するために選択する物理位置を顧慮しない。典型的なホストは、その論理アドレス空間と、これがその各種ファイルに割り振った論理アドレスだけを認識する。他方、メモリシステムは、典型的なホスト/カードインターフェイスを通じて、データが書き込まれた論理アドレス空間部分だけを認識し、特定のホストファイルへ割り振られる論理アドレスは認識せず、ホストファイルの数すら認識しない。メモリシステムコントローラは、データの記憶や引き出しのためのホストから提供される論理アドレスを、ホストデータが記憶されるフラッシュメモリセルアレイの中の一意の物理アドレスに変換する。ブロック163は、メモリシステムコントローラによって保守される論理−物理アドレス変換の作業テーブルを表している。
The host does not care about the physical location that the memory system controller chooses to store the file. A typical host recognizes only its logical address space and the logical addresses it has assigned to its various files. On the other hand, the memory system recognizes only the portion of the logical address space where data is written, through a typical host / card interface, not the logical address allocated to a particular host file, and not even the number of host files. . The memory system controller converts a logical address provided from a host for storing and retrieving data into a unique physical address in a flash memory cell array in which the host data is stored.
メモリシステムコントローラは、システムの性能を高い水準に維持しながらメモリアレイ165のブロックおよびメタブロックの中でデータファイルを記憶する形にプログラムされる。この例証では4つのプレーンまたはサブアレイが使われている。データは好ましくは、各プレーンのブロックから形成されたメタブロック全体にわたってシステムが許容する最大限の並列度でプログラムされ、読み出される。通常は、メモリコントローラによって使用されるオペレーティングファームウェアおよびデータを記憶する予約ブロックとして、少なくとも1つのメタブロック167が割り振られる。そして、ホストオペレーティングソフトウェアやホストFATテーブル等の記憶のため、別のメタブロック169または複数のメタブロックを割り振ることができる。物理記憶空間のほとんどはデータファイルの記憶のために残る。しかし、メモリコントローラは、様々なファイルオブジェクトの中で受信データがホストによってどのように割り振られたかを認識しない。通常、メモリコントローラがホストとのやり取りを通じて知ることの全ては、ホストによって特定の論理アドレスに書き込まれるデータが対応する物理アドレスに記憶されるということだけであり、これはコントローラの論理−物理アドレステーブル163によって保守される。
The memory system controller is programmed to store data files in the blocks and metablocks of the
典型的なメモリシステムにおいては、アドレス空間161の中でデータを記憶する必要があるのとは別に数ブロック分の記憶容量が余分に用意される。メモリの寿命の中で他のブロックが欠陥となった場合に代用される冗長ブロックとして、これらの余分なブロックを1つ以上用意することができる。当初メタブロックに割り当てられていた欠陥ブロックのための冗長ブロックを代用する等、個々のメタブロックの中に収容されるブロックの論理的グループ分けは通常、様々な理由から変更される。消去済みブロックのプールでは、メタブロック171などの、1つ以上の補助的ブロックが通常保守される。ホストがメモリシステムにデータを書き込む場合、コントローラはホストによって割り当てられた論理アドレスを、消去済みブロックプールにあるメタブロックの中の物理アドレスに変換する。次いで、論理アドレス空間161の中でデータを記憶するために使われていない他のメタブロックは消去され、以降のデータ書き込み操作のときに使用するため消去済みプールブロックとして指定される。
In a typical memory system, an extra storage capacity for several blocks is prepared separately from the need to store data in the
特定のホスト論理アドレスに記憶されたデータは、新規のデータによって頻繁に上書きされ、当初の記憶データが用済みになる。これに応じてメモリシステムコントローラは新規のデータを消去済みブロックに書き込み、データを論理アドレスに記憶する新しい物理ブロックを明らかにするために、それらの論理アドレスの論理−物理アドレステーブルを変更する。次いで、それらの論理アドレスのところで当初のデータを収容するブロックは消去され、新規のデータの記憶のために使用できるようになる。通常、書き込みが始まるときに消去ブロックプールの事前に消去済みのブロックに十分な記憶容量がない場合は、この消去を進行中のデータ書き込み操作が完了する前に行わなければならない。これはシステムのデータプログラミング速度を損なうおそれがある。メモリコントローラは通常、ある特定の論理アドレスにあるデータが用済みになっていることを、ホストがそれと同じ論理アドレスに新しいデータを書き込むときに初めて知る。したがって、メモリのブロックの多くは、そのような無効データを暫くの間記憶している可能性がある。 Data stored at a specific host logical address is frequently overwritten with new data, and the original stored data is used up. In response, the memory system controller writes new data to the erased block and modifies the logical-physical address table for those logical addresses to reveal the new physical block that stores the data at the logical address. The block containing the original data at those logical addresses is then erased and can be used to store new data. Typically, if the pre-erased block in the erase block pool does not have sufficient storage capacity when writing begins, this erase must be done before the ongoing data write operation is completed. This can compromise the data programming speed of the system. A memory controller typically knows that data at a particular logical address is obsolete only when the host writes new data to that same logical address. Therefore, many blocks of memory may store such invalid data for some time.
集積回路メモリチップの領域を効率よく運用するためにブロックとメタブロックのサイズは拡大している。その結果、個々のデータ書き込みの大部分で記憶されるデータの量はメタブロックの記憶容量に満たなく、多くの場合、ブロックの記憶容量にすら満たない。メモリシステムコントローラは普通、新規のデータを消去済みプールのメタブロックに誘導するから、メタブロックには埋まらない部分が生じる。新規のデータが別のメタブロックに記憶されたデータの更新である場合、別のメタブロックにある、新規のデータメタページの論理アドレスと連続する論理アドレスを持つ、残りの有効データメタページもまた、望ましくは論理アドレスの順序で新しいメタブロックにコピーされる。古いメタブロックは、他の有効データメタページを保持することがある。その結果、個々の特定のメタブロックのメタページのデータはいずれ用済み、無効になり、新規のデータによって置き換えられ、同じ論理アドレスが異なるメタブロックに書き込まれることになる。 In order to efficiently operate the area of the integrated circuit memory chip, the sizes of blocks and metablocks have been increased. As a result, the amount of data stored in most individual data writes is less than the storage capacity of the metablock, and in many cases even less than the storage capacity of the block. Since the memory system controller normally directs new data to the metablock of the erased pool, some parts of the metablock are not filled. If the new data is an update of data stored in another metablock, the remaining valid data metapages in another metablock with logical addresses that are contiguous with the logical address of the new data metapage are also , Preferably copied to a new metablock in logical address order. Old metablocks may hold other valid data metapages. As a result, the metapage data of each specific metablock will eventually be used and invalidated, replaced with new data, and the same logical address will be written to different metablocks.
論理アドレス空間161の全体にわたってデータを記憶するのに十分な物理メモリ空間を維持するため、用済みデータで占められたメモリ部分はガーベッジコレクション操作で再生できる。有効データを収容するブロックに消去済みの空間がある場合には、整理統合によって消去済みの空間を再生することもでき、その有効データをより少数のブロックに整理統合することにより消去済みブロックプールにブロックを加えることができる。こうしてブロックは、メモリ空間を再使用に向けて再生するため、ガーベッジコレクションまたは整理統合の対象となる。メタブロックの中でデータセクタをできる限り論理アドレスと同じ順序に保つことも望ましい。というのは、こうすれば連続する論理アドレスでデータをより効率的に読み出すことができる。よって、通常は、このさらなる目的のためにもデータの整理統合とガーベッジコレクションとが行われる。米国特許第6,763,424号(特許文献17)には、不完全ブロックデータ更新を受け取るときのメモリ管理とメタブロック使用の態様がいくつか記載されている。本願ではガーベッジコレクションと整理統合を「再生」と総称し、ガーベッジコレクションまたは整理統合の一部として遂行される操作を「再生操作」と呼ぶ。
In order to maintain enough physical memory space to store data throughout the
再生の例
ガーベッジコレクションのときには、論理アドレス範囲が連続しているかまたはほぼ連続している有効データのページが、用済みデータを収容する1つ以上のコピー元ブロックから回収され、コピー先ブロックへ再度書き込まれる。このコピー先ブロックは消去済みブロックプールの中にあるものであってよく、またはある程度の有効データを収容するものであってよい。1つ以上のコピー元ブロックから全ての有効データメタページがコピーされたら、先々の使用に向けてそれらを消去できる。図8Aおよび8Bは代表的なガーベッジコレクション操作を示している。図8Aは、ブロック1のページ0〜2にある有効データX、X+1、およびX+2がブロック1からブロック3へコピーされ、ブロック2のページ1から有効データX+3がブロック3へコピーされる様子を示している。データX、X+1、X+2、およびX+3がブロック3へコピーされた後、ブロック1および2は、直ちに消去できるブロックのプールへ加えることができ、通常ならばその後間もなく消去される。図8Bはこのガーベッジコレクションの後の状況を示し、ブロック1および2は消去され、ブロック3にはデータが入っている。このガーベッジコレクション操作の結果、ブロック1および2は消去済みブロックプールに加わるが、ブロック3はもはや消去済みブロックプールにないから、消去済みブロックプールは1ブロック分増加する。これを果たすため、データX、X+1、X+2、およびX+3はコピーされる。この例のデータ単位はページの内容に等しく、1つ以上のデータセクタを収容できる。代わりに、データは論理的なセクタ単位になってなくともよく、その場合、ページの内容は均一サイズの個別にアドレス指定可能な単位を有さなくてよい。同様に、他の再生操作の例は、論理的にアドレス指定可能なセクタ単位になったデータ、または他の何らかの形式になったデータに当てはまる。この例で、データX、X+1、X+2、およびX+3は、それらがブロック3にて順次に記憶されるようにコピーされる。これとは別の例では、データのコピー先にあたるブロックでデータは順次に記憶されない。
Reproduction Example During garbage collection, pages of valid data whose logical address range is contiguous or nearly contiguous are retrieved from one or more copy source blocks containing used data and re-entered to the copy destination block. Written. This copy destination block may be in the erased block pool or may contain some valid data. Once all valid data metapages have been copied from one or more source blocks, they can be erased for future use. Figures 8A and 8B illustrate a typical garbage collection operation. FIG. 8A shows how valid data X, X + 1, and X + 2 on pages 0-2 of
図9Aおよび9Bはもうひとつのガーベッジコレクションの例を示している。ここでは、ページ0および2に用済みデータを収容するブロック2から、有効データだけを収容するブロック1にかけて有効データYがコピーされる。Yがコピーされた後、ブロック2には用済みデータだけが残るから、ブロック2は消去される。図9Bはガーベッジコレクションの後の状況を示し、データYはブロック1の予め消去されていたブロック1のページ3に記憶され、ブロック2は消去されている。よって、この例では、消去済みブロックプールのブロックは必要とされない。データYがメモリアレイの1ページを満たすデータ量なら、この操作でただひとつのページがコピーされ、1つのブロックが消去され、結果的に1つの追加の消去ブロックが消去済みブロックプールに加わる。この例で、データYとデータX、X+1、X+2に論理的な関係はない。これ以外の例では、データを、論理的に関係するデータを収容するブロックへコピーできる。
9A and 9B show another example of garbage collection. Here, valid data Y is copied from
データ圧縮はガーベッジコレクションの特定の形であり、通常ならばブロックから全ての有効データページを読み出し、それらを新しいブロックへ書き込み、その過程で無効データを含むページは無視する。また、有効データを含むページは好ましくは、そこに記憶されるデータの論理アドレスの順序に一致する物理アドレス順で配置される。非順次(無秩序)形式でデータを記憶するブロックにデータ圧縮を行うので、圧縮後にデータを順次形式で記憶することもできる。用済みデータを収容するページは新しいブロックへコピーされないから、新しいブロックに占めるページ数は古いブロックに占めるページ数を下回る。次いで、古いブロックは消去され、新規データの記憶のために使用できるようになる。この整理統合によって得られる追加のページ容量は、他のデータの記憶に役立てることができる。 Data compression is a specific form of garbage collection that normally reads all valid data pages from a block and writes them to a new block, ignoring pages that contain invalid data in the process. Also, pages containing valid data are preferably arranged in physical address order that matches the logical address order of the data stored therein. Since data compression is performed on blocks that store data in a nonsequential (disordered) format, the data can be stored in a sequential format after compression. Since the page containing the used data is not copied to the new block, the number of pages in the new block is less than the number of pages in the old block. The old block is then erased and made available for storing new data. The additional page capacity gained by this consolidation can be used to store other data.
図10Aおよび10Bはデータ圧縮の一例を示している。図10Aはデータで満たされたブロック1を示し、データのいくつかは用済みであり、いくつかは有効である。ブロック1に記憶されるデータは順番に並んでいない。ブロック1は、米国特許出願第10/750,155号(特許文献18)で説明されているものなど、一部のメモリ設計で使われている無秩序(chaotic) 更新ブロックの典型である。ブロック1のページ2および3は有効データのコピーZ+1およびZ+2を収容し、ページ0および1は用済みデータのコピーを収容する。無秩序更新ブロックが限られた論理アドレス範囲にマッピングされる場合、ブロックは満杯になると圧縮されるので、そのブロックの論理アドレス範囲の中でさらなる更新が可能となる。図10Bは圧縮後の状況を示している。ブロック1のページ2および3の有効データZ+1およびZ+2はブロック2へコピーされ、順次に記憶されるように配置される。データを順次に記憶することの一利点として、異なるセクタ位置のインデックスを保守する必要はなく、このようなインデックスの保守にともなうオーバーヘッドは抑えられる。ブロック2は、追加データの記憶に使用できる消去済みの空間をページ2および3に収容する。有効データが全てブロック2へコピーされ、消去された後のブロック1が図に示されている。圧縮の結果、消去済みブロックプールの消去済みブロック数に変わりはないが、前にはなかった空間がブロック2にあり、データの書き込みに使用できる。この圧縮を達成するために2つのページからデータがコピーされる。
10A and 10B show an example of data compression. FIG. 10A shows
データの記憶空間を用意するためにデータの整理統合を使用できる。一部のメモリシステムでは、メモリの消去済みの空間が、有効データをも収容するブロックの中で細かく分散してすべては使えない場合がある。受信する新規のデータが、データをプログラムするための十分な空間があるブロックの記憶データと論理的な関係を持たない場合には、部分的に満たされたブロックではなく消去済みブロックにこれをプログラムするのが望ましい。記憶済みのデータと論理的な関係を持たないこのような新規データは通常、消去済みブロックプールにある消去済みブロックに記憶される。ある程度の時間が経つと、論理的に無関係な新規のデータには使用できない消去済みの空間を有する複数のブロックが発生することがある。これは空間の浪費を招く。このような部分的に書き込まれたブロックの有効データは併合できる。例えば、消去済みの空間を持つ2つのブロックの有効データを併合できるので、併合された消去済みの空間から消去済みブロックが形成される。 Data consolidation can be used to provide data storage space. In some memory systems, the erased space of the memory may not be fully usable because it is finely distributed in blocks that also contain valid data. If the new data to be received does not have a logical relationship with the stored data of the block that has sufficient space to program the data, program this into the erased block instead of the partially filled block It is desirable to do. Such new data that has no logical relationship with the stored data is typically stored in erased blocks in the erased block pool. After some time, multiple blocks with erased space that cannot be used for new logically unrelated data may occur. This leads to wasted space. The valid data of such partially written blocks can be merged. For example, since the effective data of two blocks having erased spaces can be merged, erased blocks are formed from the merged erased spaces.
図11Aはページ0〜2にデータX、X+1、およびX+2を収容するブロック1を示し、ブロック2はページ0にデータYを収容する。データYは、データX、X+1、およびX+2に対し論理的な関係を持たない。ブロック1のデータX+2に連続する、またはブロック2のデータYに連続する、さらなるデータが受信されるか否かを確かめるため、ブロック1および2は、暫くの間消去済みの空間をある状態に保つことができる。さらなる連続するデータが受信されずに何らかのしきい値時間が過ぎると、または他の何らかの条件が満たされると、整理統合に向けてブロック1および2をマークできる。整理統合にまわせるブロックのリストを保守でき、それらのブロックに収容された有効データの量に従ってリストからブロックを選択できるので、それらの有効データが併合されることにより、1ブロックが満たされるかまたは満たされた状態に近づく。図11Bは、整理統合後のブロック1および2を示している。データYはブロック1へコピーされ、ブロック2は消去されている。この整理統合では、消去済みブロックプールへブロックを加えるために、1ページ分のデータ(ブロック2のページ0にあるデータY)をコピーするだけでよい。通常はコピー数を抑える形で整理統合を行うのが望ましいから、データX、X+1、およびX+2をブロック2へコピーする代わりに、データYをブロック1にコピーする。
FIG. 11A shows
データの整理統合とガーベッジコレクションには時間がかかり、データの整理統合またはガーベッジコレクションをホストからのコマンドを実行する前に行う必要がある場合は特に、メモリシステムの性能に影響する。メモリシステムコントローラは普通、このような操作を可能な限りバックグラウンドで行うようスケジュールするが、これらの操作を遂行する必要から、コントローラは、このような操作が完了するまではビジー状態信号をホストに提供しなければならない。例えば、ホストがメモリに書き込もうとするデータの全てを記憶するにあたって十分な事前に消去済みのメタブロックが消去済みブロックプールにない場合には、ホストコマンドの実行が延期されるから、まずはデータの整理統合またはガーベッジコレクションで1つ以上の有効データのメタブロックを片づける必要があり、その後にそれらのメタブロックを消去できる。したがって、このような混乱を最小限に抑えるためにメモリ制御の管理に注意を払わなければならない。以下の米国特許出願では、このような手法が数多く説明されている。これらの米国特許出願とは、2003年12月30日に出願された米国特許出願第10/749,831号「大きい消去ブロックを有する不揮発性メモリシステムの管理(Management of Non-Volatile Memory Systems Having Large Erase Blocks) 」(特許文献19)、2003年12月30日に出願された米国特許出願第10/750,155号「ブロック管理システムを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Block Management System) 」(特許文献18)、2004年8月13日に出願された米国特許出願第10/917,888号「メモリプレーンアラインメントを伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Memory Planes Alignment) 」(特許文献20)、2004年8月13日に出願された米国特許出願第10/917,867号(特許文献21)、2004年8月13日に出願された米国特許出願第10/917,889号「段階的プログラム障害処理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Phased Program Failure Handling) 」(特許文献22)、および2004年8月13日に出願された米国特許出願第10/917,725号「制御データ管理を伴う不揮発性メモリおよび方法(Non-Volatile Memory and Method with Control Data Management) 」(特許文献23)である。 Data consolidation and garbage collection are time consuming and affect the performance of the memory system, especially if data consolidation or garbage collection must be done before executing a command from the host. Memory system controllers usually schedule such operations in the background as much as possible, but the need to perform these operations causes the controller to send a busy signal to the host until such operations are complete. Must be provided. For example, if there are not enough pre-erased metablocks in the erased block pool to store all of the data that the host wants to write to memory, host command execution will be postponed, so the data is organized first. One or more valid data metablocks need to be cleaned up by integration or garbage collection, and then those metablocks can be erased. Therefore, care must be taken in managing memory control to minimize such confusion. The following US patent applications describe many such techniques. These US patent applications include US Patent Application No. 10 / 749,831, filed December 30, 2003, "Management of Non-Volatile Memory Systems Having Large Erase Blocks) ", US Patent Application No. 10 / 750,155, filed December 30, 2003," Non-Volatile Memory and Method with Block Management System ". Management System) ", U.S. Patent Application Serial No. 10 / 917,888, filed August 13, 2004," Non-Volatile Memory and Method with Memory " Planes Alignment) ”(patent document 20), US patent application Ser. No. 10 / 917,867 filed Aug. 13, 2004 (patent) 21), US patent application Ser. No. 10 / 917,889, filed Aug. 13, 2004, “Non-Volatile Memory and Method with Phased Program Failure Handling” (U.S. Pat. No. 6,057,028) and US patent application Ser. No. 10 / 917,725, filed Aug. 13, 2004, “Non-Volatile Memory and Method with Control Data Management”. ] (Patent Document 23).
メモリコントローラはまた、ホストによって不揮発性メモリに記憶されるFATテーブルのデータをメモリシステムの効率的な動作に役立てることもできる。例えば、論理アドレスの解除によりホストによってデータが用済みと識別されたことを知るのに役立てる。メモリコントローラは、通常ならばホストがその論理アドレスに新規データを書き込むことで、データが用済みと識別されたことを事前に知ることができ、このような無効データを収容するブロックの消去スケジュールを立てることができる。これは、2004年7月21日に出願された米国特許出願第10/897,049号「不揮発性メモリシステムでデータを保守する方法および装置(Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems)」(特許文献24)で説明されている。この他の手法として、ホストがメモリに新規のデータを書き込むパターンを監視することにより、所与の書き込み操作が単一ファイルか否かを、または複数のファイルである場合にはファイル間のどこに境界があるかを推定する。2004年12月23日に出願された米国特許出願第11/022,369号「最適逐次クラスタ管理のためのFAT解析(FAT Analysis for Optimized Sequential Cluster Management)」(特許文献25)では、この種の手法の使用が説明されている。 The memory controller can also use the FAT table data stored in the non-volatile memory by the host for efficient operation of the memory system. For example, it is useful for knowing that data has been identified as being used by the host by releasing the logical address. Normally, the memory controller can know in advance that the data has been identified as being used by writing new data to its logical address, and the memory controller can schedule the erasure of blocks containing such invalid data. Can stand. No. 10 / 897,049 filed Jul. 21, 2004 “Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems”. (Patent Document 24). Another approach is to monitor the pattern of the host writing new data to the memory to determine whether a given write operation is a single file, or if there are multiple files, where the boundaries between files Estimate if there is. US patent application Ser. No. 11 / 022,369, “FAT Analysis for Optimized Sequential Cluster Management” (Patent Document 25), filed on December 23, 2004, The use of the technique is described.
メモリシステムを効率よく操作するには、ホストによって個々のファイルのデータに割り当てられる論理アドレスについて、コントローラができるだけ多くのことを知ることが望ましい。かくしてデータファイルは、ファイルの境界が分からなければ多数のメタブロックに散在するところを、コントローラによって1つのメタブロックまたは1グループのメタブロックの中で、記憶することができる。その結果、データの整理統合およびガーベッジコレクション操作の回数と複雑さは抑えられる。結果的にメモリシステムの性能は向上する。しかし、前述したように、ホスト/メモリインターフェイスが論理アドレス空間161(図7)を含む場合、メモリコントローラがホストデータファイル構造について多くを知ることは困難である。 In order to operate the memory system efficiently, it is desirable for the controller to know as much as possible about the logical addresses assigned to the data of individual files by the host. Thus, a data file can be stored in a metablock or group of metablocks by a controller where the file boundaries are not known. As a result, the number and complexity of data consolidation and garbage collection operations is reduced. As a result, the performance of the memory system is improved. However, as described above, if the host / memory interface includes the logical address space 161 (FIG. 7), it is difficult for the memory controller to know much about the host data file structure.
論理アドレス本位インターフェイスを伴う再生
図12は、図7のホスト/メモリインターフェイスの、ファイルが削除されるときの動作を示している。ホストシステムで実行するアプリケーション201は、メモリにてファイル2を削除するべきと判断する。例えば、PCで実行するアプリケーション201は、ユーザ入力に基づき、または他の理由により、ファイル2がもはや必要でないと判断する。その結果、アプリケーションはファイル2を削除する命令をホストのドライバ部へ送信する。この場合は、メモリに記憶される各ファイルに使われる論理アドレスを指示するためにFATを用いてデータ記憶が管理される。例えば、2つの別々の論理アドレス範囲203および205を有するものとしてファイル2が図に示されている。各々の論理アドレス範囲203および205は、複数の連続するクラスタを含むことがある。ファイル2は2つの別々の論理アドレス範囲203および205を有するものとして図に示されているが、ファイルが多数の論理アドレス範囲に断片化され、介在する論理アドレスに他のファイルがマッピングされることは多々ある。ファイル2を削除する命令の結果としてFATは修正されるので、ファイル2に割り振られていた論理アドレス範囲203および205のクラスタは解除され、ホストによる以降の割り振りに使用できるようになる。しかし、通常、ホストのFATにおけるこれらのクラスタの解除にともない、メモリコントローラによって使用されるメモリ管理構造は変更されない。論理−物理アドレス翻訳163はメモリコントローラによって保守されるテーブルを含み、テーブルには、データクラスタを記憶する物理アドレスが記録される。アドレス範囲203および205は物理アドレス範囲209および211へそれぞれマッピングされる。この記録は、アプリケーションからの「ファイル2削除」コマンドの結果として変更されない。よって、テーブルは、論理アドレス範囲203および205の項目を維持する。また、対応する物理位置209および207はデータで埋められた状態を保つが、このデータはアプリケーションによってもはや必要とされない。メモリコントローラは通常、論理アドレス範囲203および205の論理−物理アドレス翻訳を、これらのアドレスを持つ新規のデータがホストによって送信されるときに限り、変更する。メモリコントローラはクラスタの解除を知らないから、通常ならば各論理アドレスにつき少なくとも1つの項目は維持し、それ故、論理アドレス範囲全体を占拠されたものとみなす。通常、メモリの論理アドレス範囲より多くの物理空間があるから、たとえ見かけ上の有効なデータで論理アドレス範囲全体が満たされていても、消去済みの空間または用済みデータで占められた空間は余分にある。
Playback with Logical Address Standard Interface FIG. 12 illustrates the operation of the host / memory interface of FIG. 7 when a file is deleted. The
図13は、メモリにホストデータが書き込まれるにつれてメモリアレイの物理空間がどのように管理されるかを例示するものである。物理空間は有効データでほぼ満たされたものとして扱われ、これは全論理アドレス範囲に相当する。メモリに残された空間は、消去済みの空間および用済みデータで占められた空間とからなる。メモリアレイへホストデータがプログラムされるにつれ、用済みデータで占められる空間の量は図に示されたように増加する。というのは、ある特定の論理アドレスとともに受信された新規セクタは新しい物理位置に記憶され、論理−物理アドレス翻訳163に記録されるからである。これは、同じ論理アドレスを持つ記憶済みセクタに取って代わる。次いで、記憶済みセクタは用済みとなり、記憶済みセクタの物理位置は用済みデータを収容するものとして記録される。用済みデータの量が増えるにつれて消去済みの空間は減る。ある時点で、ホストデータのプログラミングを続行するのに十分な消去済みの空間はなくなる。図13は、時点t1でメモリに消去済みの空間が残っていない状態を示している。よって、時点t1で、メモリアレイにはそれ以上ホストデータをプログラムできない。これとは別の例では、メモリアレイに残る消去済みの空間がある程度の最小量になった時点でプログラミングが停止する。時点t1では、用済みデータで占められた空間を再生するためにガーベッジコレクション操作が始まる。この操作は、時点t2で全ての用済みの空間が再生されて消去済みの空間になったときに終了する。これとは別の例では、全ての可能な空間が再生される前に、例えばホストデータのプログラミングを続行するのに十分な空間が再生された時点で、ガーベッジコレクション操作が終了する。時点t2でホストデータのプログラミングは再び始まり、時点t3ではホストデータの書き込みが止まり、もう一度ガーベッジコレクション操作が始まる。図13に示す視点は、メモリコントローラの視点から見たメモリにおけるデータの状態であって、必ずしもホストの視点と同じではない。メモリコントローラが論理空間を満杯とみなしても、ホストが同じ空間を大方空いているとみなすことはある。
FIG. 13 illustrates how the physical space of the memory array is managed as host data is written to the memory. The physical space is treated as being almost filled with valid data, which corresponds to the entire logical address range. The space left in the memory consists of erased space and space occupied by used data. As host data is programmed into the memory array, the amount of space occupied by used data increases as shown in the figure. This is because a new sector received with a particular logical address is stored in a new physical location and recorded in the logical-
図13に示すようにメモリを管理することの欠点として、時点t1およびt2の間にホストにとってメモリは使用不能となる。したがって、t1からt2までの期間中、ホストデータは書き込まれない。多数のページをコピーしなければならないため、t1からt2までの時間はかなりの長さになることがある。場合によってはこの時間があまりに長いため、ホストはタイムアウトとなる。つまりホストにはデータの一部分を書き込むにあたって最大時間があり、消去済みの空間が不足しているときに新規のデータの書き込みを可能にするために必要とされるガーベッジコレクションがこの最大時間を超過することがある。 As a disadvantage of managing the memory as shown in FIG. 13, the memory is unavailable to the host between times t1 and t2. Therefore, the host data is not written during the period from t1 to t2. Since a large number of pages have to be copied, the time from t1 to t2 can be quite long. In some cases this time is so long that the host times out. This means that the host has a maximum time to write a portion of the data, and the garbage collection required to allow new data to be written when the erased space is insufficient will exceed this maximum time. Sometimes.
図14は、ホストデータを書き込むにあたって十分な消去済みの空間が残っている状態でガーベッジコレクションを遂行する、代替のメモリ管理方法を示している。この例で、ガーベッジコレクションは、これが絶対に必要となる前に遂行される。ガーベッジコレクションは、米国特許出願第11/040,325号(特許文献26)で説明されているように、ホストデータの書き込みの合間に交互に行うことができる。消去済みブロック数がある程度のしきい値に達することでこのような交互のガーベッジコレクションを開始するためのトリガとしてよい。交互のガーベッジコレクション操作によってメモリへのホストデータプログラミングは減速する。しかし、このガーベッジコレクション操作により、ホストデータが書き込み不能となる程度まで消去済みブロック数が減少するのを防ぐことができる。よって、ホストがタイムアウトしたりプログラミングを中断したりするリスクは低下または解消する。プログラミング速度が不必要に損なわれることがないよう、十分な消去済みブロックが使用可能となった時点で交互のガーベッジコレクションを止めることができる。よって、交互のガーベッジコレクションがオン/オフに切り替わるにつれ、または交互のガーベッジコレクションのレートが変化するにつれ、消去済みの空間の量は変化する。 FIG. 14 shows an alternative memory management method in which garbage collection is performed in a state where sufficient erased space remains for writing host data. In this example, garbage collection is performed before this is absolutely necessary. Garbage collection can be alternated between host data writes, as described in US patent application Ser. No. 11 / 040,325. It may be a trigger for starting such alternate garbage collection when the number of erased blocks reaches a certain threshold value. Alternate garbage collection operations slow down host data programming to memory. However, this garbage collection operation can prevent the number of erased blocks from decreasing to the extent that host data cannot be written. Thus, the risk of the host timing out or interrupting programming is reduced or eliminated. Alternate garbage collection can be stopped when enough erased blocks are available so that programming speed is not unnecessarily compromised. Thus, the amount of erased space changes as alternating garbage collection switches on / off or as the rate of alternating garbage collection changes.
図15は、ホストデータの書き込みと交互に行われるガーベッジコレクションのタイミング図を示している。N3ページ分のホストデータが書き込まれた後、ガーベッジコレクション操作の一部としてN4ページ分のデータが書き込まれるか、またはx個のブロックが消去される。このサイクルは繰り返される。こうしてガーベッジコレクションにともなうオーバーヘッドは、一度に集中してタイムアウトを招く代わりに、時間の経過に沿って分散される。整理統合、他の再生操作、または他のハウスキーピング操作もまたこのやり方で交互に行うことができる。この文脈におけるハウスキーピング操作は、メモリコントローラがメモリアレイの中でデータを保守するために着手する操作を指す。このような操作には損耗レベル化操作とデータスクラブ操作とが含まれることがある。 FIG. 15 shows a timing diagram of garbage collection performed alternately with writing of host data. After N3 pages of host data have been written, N4 pages of data are written or x blocks are erased as part of the garbage collection operation. This cycle is repeated. Thus, the overhead associated with garbage collection is distributed over time instead of being concentrated all at once and incurring timeouts. Consolidation, other replay operations, or other housekeeping operations can also be alternated in this manner. Housekeeping operations in this context refer to operations that the memory controller undertakes to maintain data in the memory array. Such operations may include wear leveling operations and data scrub operations.
ファイル本位インターフェイスを伴う再生
一部のメモリインターフェイスでは、より効率的な再生を可能にするため、メモリコントローラがさらなる情報を入手できる。いずれも2005年2月16日に出願された米国特許出願第11/060,249号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」(特許文献27)、米国特許出願第11/060,174号「フラッシュメモリにおける直接ファイルデータプログラミングおよび削除(Direct File Data Programming and Deletion in Flash Memories) 」(特許文献28)、米国特許出願第11/060,248号「フラッシュメモリにおける直接データファイル記憶の実施手法(Direct Data File Storage Implementation Techniques in Flash Memories)」(特許文献29)、ならびに2005年8月3日に出願された仮特許出願第60/705,388号「フラッシュメモリにおける直接データファイル記憶(Direct Data File Storage in Flash Memories)」(特許文献30)では、このようなメモリインターフェイスの例が説明されている。ファイルは、メモリのために規定された論理アドレス範囲の論理アドレスへマッピングされずにホストからメモリへ送信される。このようなメモリは、ファイル本位インターフェイスを有するとみなすことができる。ファイルは主に、メモリの中でそのファイルにとって専用のメタブロックに記憶される。ファイルの記憶位置はファイル識別子とオフセットとを用いて記録される。図16は、このような直接データファイル記憶を使用するメモリインターフェイスを示し、ファイルはメモリへ送信され、メモリではファイル/オフセット−物理アドレス翻訳173が行われる。このようなメモリは断片化を抑える形でファイルを保守でき、かくしてほとんどのメタブロックはただひとつのファイルのデータを収容する。このようなメモリのメモリコントローラは、記憶されるデータについてより多くの情報を得る。具体的に、データをファイルによって識別するメモリコントローラは、ファイル本位のやり方でファイルを記憶できる。
Playback with a file-oriented interface Some memory interfaces allow the memory controller to obtain more information to enable more efficient playback. No. 11 / 060,249, “Direct Data File Storage in Flash Memories” (Patent Document 27), US Patent Application No. 11 / 060,249 filed on Feb. 16, 2005. 11 / 060,174 “Direct File Data Programming and Deletion in Flash Memories” (Patent Document 28), US Patent Application No. 11 / 060,248 “Direct Data in Flash Memory” “Direct Data File Storage Implementation Techniques in Flash Memories” (Patent Document 29), and provisional patent application No. 60 / 705,388 filed Aug. 3, 2005 “Direct Data in Flash Memory” “Direct Data File Storage in Flash Memories” (Patent Document 30) Now, an example of such a memory interface is described. The file is sent from the host to the memory without being mapped to a logical address in the logical address range defined for the memory. Such a memory can be regarded as having a file-oriented interface. Files are mainly stored in memory in a metablock dedicated to that file. The storage location of the file is recorded using the file identifier and the offset. FIG. 16 shows a memory interface that uses such direct data file storage, where the file is sent to memory, where file / offset-
図17は、図16のインターフェイスを使用するメモリシステムに記憶されるファイルをアプリケーションが削除するときに何が起こるかを示している。アプリケーション225は、ファイル2を削除すべきと指示するコマンドを送信する。このコマンドはホストからメモリへ送信され、その際、論理セクタアドレスによってファイルを識別する必要はない。ホストはファイル識別子を用いてファイルを識別できる。ファイル2はブロックa、b、およびcへマッピングされ、そのマッピングはファイル/オフセット−物理翻訳173によって記録されている。このコマンドにより、ファイル/オフセット−物理翻訳173はファイル2の削除を反映するべく更新される。その結果、ブロックa、b、およびcは新規のデータのために再使用できるようにするためのガーベッジコレクションのスケジュールに組み入れられる。よって、論理セクタアドレスを使用するメモリの場合のように代わりのデータがメモリアレイに記憶されるまで待つ代わりに、アプリケーションによるファイルの削除によりガーベッジコレクションに着手できる。この場合、メモリコントローラは全論理アドレス空間を見るとは限らない。代わりに、メモリコントローラは、メモリに記憶されるデータの有効性について正確な情報を得る。ある時点で、メモリコントローラは、メモリアレイの中で有効データがほとんどないかまたは皆無と認識することがある。それとは別の時点で、メモリコントローラは、メモリアレイが有効データで満杯かまたはほぼ満杯と認識することもある。メモリアレイにおける有効および用済みデータに関するこのような情報により、再生はこれまで以上に効率的に管理できる。
FIG. 17 illustrates what happens when an application deletes a file stored in a memory system using the interface of FIG. The
図18は、直接データファイルインターフェイスを使用するメモリで動作するメモリ再生システムの一例を示している。図18は、ホストデータの書き込みにともなうメモリアレイの状態を示している。図に示す視点はコントローラの視点を表し、この場合の視点はホストの視点に一致する。ここで、有効データを収容するメモリ部分が比較的小さいことが分かり、メモリの残りの部分は消去済みブロックと再生可能な空間とからなる。再生可能な空間は、用済みデータで占められた空間の他に、消去済みブロックの中にない消去済みの空間からなる。メモリによってはそのように散らばった消去済みの空間を追加データの記憶に使用するものもあるが、このような消去済みの空間を消去済みブロックに整理統合した上でデータの記憶に使用するシステムもある。図18は、時点t5まで有効データの量が着実に増加する様子を示している。この間、再生操作は遂行されないから、再生可能な空間の量は一定に保たれる。この期間中には消去済みブロックに有効データが書き込まれるにつれて消去済みブロックの空間が減少する。時点t5で1つ以上のファイルが削除され、メモリアレイに記憶されるそれらのファイルのデータは用済みになる。したがって、有効データで占められた空間の量は減少し、再生可能な空間の量は相応に増加する。次いで、時点t5からt6にかけてさらなるデータがメモリアレイにプログラムされ、有効データの量は再び増加し、消去済みブロックの空間は減少する。メモリは時点t6で、さらなるデータのプログラミングに再生操作が必要とみなされる地点にまで到達する。この地点は、消去済みブロックの空間がある程度のしきい値に達するときに到達してよく、または他の何らかの基準に依拠してよい。時点t6からt7にかけて、再生可能な空間の一部を消去済みブロックに変換するために再生操作が遂行される。これらの再生操作のときにはメモリアレイに新規のデータが書き込まれないから、有効データで占められる空間の量は一定に保たれる。時点t7で再生操作は終わり、新規のデータのプログラミングが再び始まる。このシステムは、再生操作を必要なときにだけ遂行する前述したシステムに類似する。このようなシステムの一欠点として、t6からt7までの時間が制限時間を超過するので、ホストが書き込み操作を中断するおそれがある。再生操作を必要なときにだけ遂行する代わりに、これが必要となる前に、ホストの書き込み操作に大きく影響しない形で、遂行することは可能である。直接データファイル記憶システムを使用するメモリなど、メモリアレイに記憶される用済みデータの量についてより充実した情報を得るメモリでは特に、ホストの書き込み操作にほとんど影響しないように、再生操作のスケジュールを巧みに組むことは可能である。 FIG. 18 shows an example of a memory playback system that operates on a memory that uses a direct data file interface. FIG. 18 shows the state of the memory array as the host data is written. The viewpoint shown in the figure represents the viewpoint of the controller, and the viewpoint in this case matches the viewpoint of the host. Here, it can be seen that the memory portion that accommodates the valid data is relatively small, and the remaining portion of the memory consists of erased blocks and reproducible space. The reproducible space includes erased space that is not in the erased block in addition to the space occupied by the used data. Some memories use erased space scattered in that way to store additional data, but some systems use this erased space to store data after consolidating them into erased blocks. is there. FIG. 18 shows how the amount of valid data steadily increases until time t5. During this time, since the reproduction operation is not performed, the amount of reproducible space is kept constant. During this period, the space of the erased block decreases as valid data is written to the erased block. At time t5, one or more files are deleted and the data in those files stored in the memory array is obsolete. Thus, the amount of space occupied by valid data decreases and the amount of reproducible space increases correspondingly. Then, from time t5 to t6, more data is programmed into the memory array, the amount of valid data increases again, and the erased block space decreases. The memory reaches a point at time t6 where a replay operation is deemed necessary for further data programming. This point may be reached when the erased block space reaches some threshold or may depend on some other criteria. From time t6 to t7, a reproduction operation is performed to convert a part of the reproducible space into an erased block. Since new data is not written to the memory array during these reproduction operations, the amount of space occupied by valid data is kept constant. At time t7, the playback operation ends and new data programming starts again. This system is similar to the system described above that performs replay operations only when needed. One disadvantage of such a system is that the time from t6 to t7 exceeds the time limit, which may cause the host to interrupt the write operation. Instead of performing the replay operation only when necessary, it is possible to perform it in a manner that does not significantly affect the host write operation before it is required. Skillfully schedule the replay operation so that it has little impact on the host write operation, especially with memory that gets more information about the amount of used data stored in the memory array, such as memory that uses a direct data file storage system It is possible to assemble.
図19は、メモリアレイの中で空間をいかに管理できるかの模範を示している。有効データは、メモリアレイが有効データで満たされるまで一定の割合で増加する。同時に、再生操作によって再生可能な空間が消去済みブロックに変換されるにつれて再生可能な空間は減少する。このようにしてメモリアレイの空間を管理するシステムはスケジュールに従って再生操作を遂行するので、個々の再生操作が個々のホスト書き込み操作の合間に分散されることにより、一定速度のホストデータ書き込みが提供される。これを果たすために、コントローラは、メモリアレイを埋め尽くすのにこのような追加の有効データ量を推定でき、さらにメモリが満杯になる前に必要とされる再生操作の数を推定できる。次いで、残りの時間にわたって再生操作を均一に分散するレートで再生操作のスケジュールを組む。これにより、メモリが時期尚早に消去済みブロックを使い果たすことはなくなる。再生操作は、これまでどおりメモリアレイに新規のデータをプログラムする操作の合間にはさみ込むことができる。再生操作は、あるブロックから別のブロックにかけてデータの一部をコピーすることと、有効データを収容していないブロックを消去することとを含む。空間を再生するレートは交互比によって、すなわちホスト書き込み操作数に対する再生操作数の比によって、求めることができる。場合によっては、消去操作より遥かに多くのコピー操作があるため、この比の計算にあたってブロック消去操作が無視される。この場合の比は、新規のデータのための書き込み操作に対する再生のための書き込み操作の比となる。 FIG. 19 shows an example of how space can be managed in a memory array. Valid data increases at a constant rate until the memory array is filled with valid data. At the same time, the reproducible space decreases as the reproducible space is converted into erased blocks by the replay operation. Since the system for managing the space of the memory array in this way performs the replay operation according to the schedule, the individual replay operations are distributed between the individual host write operations to provide a constant rate of host data write. The To accomplish this, the controller can estimate the amount of such additional valid data to fill the memory array, and can estimate the number of playback operations that are required before the memory is full. The replay operations are then scheduled at a rate that uniformly distributes the replay operations over the remaining time. This prevents the memory from running out of erased blocks prematurely. The replay operation can be sandwiched between operations to program new data into the memory array as before. The reproduction operation includes copying a part of data from one block to another and erasing a block that does not contain valid data. The rate of reclaiming space can be determined by the alternating ratio, that is, by the ratio of the number of replay operations to the number of host write operations. In some cases, there are far more copy operations than erase operations, so block erase operations are ignored in calculating this ratio. The ratio in this case is the ratio of the write operation for reproduction to the write operation for new data.
図20は、このようなシステムにおいて時点t10に1つ以上のファイルが削除されるときに何が起こるかを示している。時点t10までは、有効データで占められた空間が増加し、再生可能な空間と消去済みブロックの空間はいずれも、有効データ量の増加にともない減少する。破線で示されているように、再生可能な空間は、メモリが満杯になるときに全ての再生可能な空間の再生を保証するレートで再生される。時点t10では1つ以上のファイルが削除されるので、かつて有効データで占められていた空間は用済みデータで占められ、それ故、再生可能な空間となる。t10の後にメモリアレイはさらなる有効データを記憶できるが、これを果たすには追加の再生操作を要する。したがって、コントローラは、再生操作を遂行すべきレートを再計算する。これは、メモリアレイに記憶されるデータの状態変化に対応する適応スケジューリングシステムを提供する。その結果、再生レートは修正され、さらに再生レートは有効データをプログラムするレートに影響するから、有効データをプログラムするレートも変更される。適応再生スケジューリングシステムは、周期的に、さもなくばホストコマンドによってトリガされるとき、または他の何らかのイベントによってトリガされるときに、交互比を再計算できる。 FIG. 20 shows what happens when one or more files are deleted at time t10 in such a system. Until time t10, the space occupied by valid data increases, and both the reproducible space and the erased block space decrease as the effective data amount increases. As indicated by the dashed line, the reproducible space is replayed at a rate that guarantees replay of all reproducible space when the memory is full. Since one or more files are deleted at time t10, the space once occupied by valid data is occupied by used data, and thus becomes a reproducible space. After t10, the memory array can store more valid data, but this requires additional playback operations. Therefore, the controller recalculates the rate at which the playback operation should be performed. This provides an adaptive scheduling system that responds to changes in the state of data stored in the memory array. As a result, the playback rate is modified, and the playback rate affects the rate at which valid data is programmed, so the rate at which valid data is programmed is also changed. The adaptive playback scheduling system can recalculate the alternating ratio periodically, when triggered by a host command, or when triggered by some other event.
図21は、3通りの再生モードがあるメモリ管理のもうひとつの例を示している。第1のモードでは、t12より前のホストデータ書き込み中に再生操作は遂行されない。有効データの量は、消去済みブロックの空間の量が減少するのと同じ割合で増加する。この間、用済みとなるデータはないから、再生可能な空間の量はほぼ同じに保たれる。いくつかのブロックは、消去され使われずにいるブロックの部分を残しながら有効データを記憶することがある。これらの消去済み部分は、消去済みの空間を1つ以上の消去済みブロックに統合する形に有効データを整理統合することによって再生できる。よって、このモードでは、たとえ用済みになるデータがなくとも再生可能な空間がある程度増加することがある。いくつかの例では、再生レートが決してゼロにならないようにするため、この第1のモードで最小再生レートを保守できる。再生レートは低い、またはゼロのため、この第1のモードでホストデータをプログラムするレートは高い。 FIG. 21 shows another example of memory management with three playback modes. In the first mode, the playback operation is not performed during the host data writing before t12. The amount of valid data increases at the same rate as the amount of space in the erased block decreases. During this time, since there is no data to be used, the amount of reproducible space is kept substantially the same. Some blocks may store valid data while leaving portions of the blocks that are erased and unused. These erased portions can be reproduced by consolidating the valid data in such a way that the erased space is integrated into one or more erased blocks. Therefore, in this mode, the reproducible space may increase to some extent even if there is no data to be used. In some examples, the minimum playback rate can be maintained in this first mode to ensure that the playback rate never goes to zero. Since the playback rate is low or zero, the rate at which host data is programmed in this first mode is high.
第2のモードでは、t12からt13にかけて、図19および20に示された適応スケジュールに従って再生操作を遂行する。この場合、再生レートが計算され、新規のデータのプログラミングの合間に再生操作がはさみ込まれるので、メモリが満たされるにつれて再生可能な空間は減少する。この交互の再生操作のため、第2のモードで新規のデータをプログラムするレートは第1のモードより若干低い。第2のモードは、メモリ内の有効データがしきい値を超過するときに、消去済みブロックの空間がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。 In the second mode, the reproduction operation is performed from t12 to t13 according to the adaptive schedule shown in FIGS. In this case, the replay rate is calculated and the replay operation is sandwiched between the programming of new data, so the reproducible space decreases as the memory is full. Because of this alternate playback operation, the rate at which new data is programmed in the second mode is slightly lower than in the first mode. The second mode can be initiated when valid data in memory exceeds a threshold, when the space of erased blocks falls below the threshold, or based on some other criteria.
第3のモードでは、新規のデータを書き込むことが可能な消去済みブロックを用意するため、t13の後に、最大レートで再生操作が遂行される。再生操作のレートの増加によってホストデータをプログラムするレートは減少する。第3のモードは、有効データの量がしきい値を超過するときに、消去済みブロックの空間量がしきい値を下回るときに、または他の何らかの基準に基づき、開始できる。 In the third mode, the reproduction operation is performed at the maximum rate after t13 in order to prepare an erased block in which new data can be written. Increasing the rate of playback operations reduces the rate at which host data is programmed. The third mode can be initiated when the amount of valid data exceeds the threshold, when the amount of space in the erased block is below the threshold, or based on some other criteria.
適応スケジューリング−詳細例
これより、ホストデータをプログラムするレートを一定に保ちながら適応スケジューリングシステムに従って再生操作を遂行する不揮発性メモリの管理を、直接データファイル記憶インターフェイスを持つメモリの例を用いて詳しく説明する。この例では、メモリコントローラによって監視されるパラメータから適切な交互比を計算する方法を明らかにする。図22には、このようなメモリで時間の経過にともなうメモリ空間のページの様々な状態が詳しく示されている。メモリアレイのページまたはブロックで起こり得る数々の遷移も示されている。メモリアレイはブロックからなり、各ブロックは複数のページを収容する。この例では用語「ブロック」および「ページ」を使用するが、この例は、消去とプログラミングの単位としてそれぞれメタブロックとメタページとを有するメモリにも通用する。ブロックは、3通りの状態のいずれかひとつとして随時扱われ、これらのブロックの中にあるページは、5つの状態のいずれかひとつとして扱われる。図22には、時間の経過にともないこれらの5つの状態の各々をとるページの番号が示されている。
データ記憶にあたってのブロック分類
ファイルブロック:ファイルブロックはホストデータで満たされ、用済みデータを収容しない。実際には、最低限のプログラムされていないページを、例えば2ページを、ファイルブロックに収容できる場合がある。
不完全ブロック:不完全ブロックはある程度のホストデータを収容し、またある程度の消去済みページおよび/または用済みページを収容する。
消去済みブロック:消去済みブロックプールの中にある完全に消去されたブロック。
Adaptive Scheduling-Detailed Example The non-volatile memory management for performing playback operations according to the adaptive scheduling system while keeping the host data programming rate constant will now be described in detail using the example of a memory with a direct data file storage interface. To do. This example demonstrates how to calculate the appropriate alternating ratio from parameters monitored by the memory controller. FIG. 22 shows in detail various states of pages in the memory space over time in such a memory. A number of possible transitions in a page or block of the memory array are also shown. The memory array consists of blocks, each block containing a plurality of pages. In this example, the terms “block” and “page” are used, but this example also applies to memories having metablocks and metapages as erase and programming units, respectively. A block is treated as any one of three states at any time, and pages in these blocks are treated as any one of five states. FIG. 22 shows the page numbers that take each of these five states over time.
Block classification for data storage
File block : The file block is filled with host data and does not contain used data. Actually, there may be a case where the minimum unprogrammed page, for example, two pages can be accommodated in the file block.
Incomplete block : An incomplete block contains some host data and some erased and / or used pages.
Erased block : A completely erased block in the erased block pool.
これらの3つのカテゴリに加え、いくつかのブロックは用済みデータで満たされることがある。例えば、ホストによって削除または消去されるファイルが指示された直後に、そのファイルを収容するブロックがガーベッジコレクションのスケジュールに組み入れられる。これらのブロックのいくつかはデータで満たされている。しかし、このようなブロックは多大なリソースを要することなく速やかに消去されるから、この計算の目的では考慮されない。 In addition to these three categories, some blocks may be filled with obsolete data. For example, immediately after a file to be deleted or deleted is indicated by the host, a block containing the file is included in the garbage collection schedule. Some of these blocks are filled with data. However, such blocks are not considered for the purposes of this calculation because they are quickly erased without requiring significant resources.
データ記憶にあたってのページ分類
ページおよび同一ブロック内の他のページの状態に従ってメモリアレイのページを分類するための用語を以下の一覧に示す。図22には各々の状態をとるページの番号が示されている。
ファイルブロックページ(FBP):これは、ファイルブロックに収容された有効ホストデータページ数である。
データページ(DP):これは、不完全ブロックに収容された有効ホストデータページ数である。
用済みページ(OP):これは、不完全ブロックに収容された用済みホストデータページ数である。
消去済みページ(EP):これは、不完全ブロックに収容された消去済みページ数である。用済みページ(OP)および消去済みページ(EP)とによってメモリアレイに再生可能な空間が形成されると考えることができる。
消去済みブロックページ(EBP):これは、消去済みブロックに収容された消去済みページ数である。
用済みデータだけを収容するブロックの中に存在するページは、長時間にわたって存在せず、それらの再生の要するガーベッジコレクションの点で多大な負担をかけないから、この一覧で無視されている。
Page Classification for Data Storage Terms for classifying pages in the memory array according to the state of the page and other pages in the same block are listed below. FIG. 22 shows the page numbers in each state.
File block page (FBP) : This is the number of valid host data pages contained in the file block.
Data pages (DP) : This is the number of valid host data pages contained in an incomplete block.
Used pages (OP) : This is the number of used host data pages contained in incomplete blocks.
Erased pages (EP) : This is the number of erased pages contained in an incomplete block. It can be considered that a reusable space is formed in the memory array by the used page (OP) and the erased page (EP).
Erased block page (EBP) : This is the number of erased pages contained in the erased block.
Pages that exist in blocks that contain only used data are ignored in this list because they do not exist for a long time and do not place a heavy burden on the garbage collection they need to regenerate.
前に記載された5つの、相互排他的なカテゴリに加えて、メモリアレイ内のページに関係する2つの数として総ページ数と総データページ数とがある。これらの用語は前述したカテゴリに該当するページを表す。これらの数はメモリコントローラによって追跡される。
総ページ(TP):これは、データ記憶に使用できるデバイス内の総ページ数であり、デバイスのデータ容量に相当する。
総データページ(TDP):これは、任意の時点で有効ホストデータを収容するページ数である。データページはファイルブロックまたは不完全ブロックのいずれかの中にある。
データコピー操作の段階:データコピー操作には2つの段階があるが、以下の適応スケジューリングの分析にあたってそれらを別々に考慮する必要はない。
(1)ガーベッジコレクション段階:デバイスに用済みページが存在し、それらをなくすためにガーベッジコレクション操作が遂行される。
(2)ブロック整理統合段階:不完全ブロックの中で拘束されている消去済み容量を回復させるためにブロック整理統合操作が遂行される。
In addition to the five mutually exclusive categories described above, there are two numbers related to pages in the memory array: total page number and total data page number. These terms represent pages that fall into the categories described above. These numbers are tracked by the memory controller.
Total pages (TP) : This is the total number of pages in the device that can be used for data storage and corresponds to the data capacity of the device.
Total data pages (TDP) : This is the number of pages that contain valid host data at any given time. Data pages are in either file blocks or incomplete blocks.
Stages of data copy operation: There are two stages in the data copy operation, but they do not need to be considered separately in the following adaptive scheduling analysis.
(1) Garbage collection stage: There are used pages in the device, and a garbage collection operation is performed to eliminate them.
(2) Block consolidation / integration stage: A block consolidation / integration operation is performed to recover an erased capacity constrained in an incomplete block.
ホストが有効データとして同じファイルにデータを書き込む場合、整理統合がなくとも有効な空間と消去済みの空間だけを収容するブロックを引き続き使用できるから、通常は、ガーベッジコレクションを先に行い、ブロック整理統合はあとまわしにしたほうがよい。ファイルが閉じられている場所でも、ファイルは再び開き、データはプログラムブロックに書き込まれる。用済みデータを含むブロックを再び使用するには、その前にガーベッジコレクションを行わなければならないから、このようなガーベッジコレクションをあとまわしにすることに利点はない。 If the host writes data to the same file as valid data, blocks that contain only valid and erased space can continue to be used without consolidation, so typically, garbage collection is performed first and block consolidation is performed. You should turn around. Even where the file is closed, the file is reopened and the data is written to the program block. Since garbage collection must be performed before the block containing the obsolete data can be used again, there is no advantage in deferring such garbage collection.
デバイス操作に起因するページ遷移
図22には、以下のページ遷移が示されている。
用済みページから消去済みブロックページ(1):用済みページを収容するブロックから有効データページがコピーされた後に、このブロックが消去されるときに起こる。
データページからデータページ(2):コピー元ブロックからコピー先ブロックへコピーされるデータページに関係する。
消去済みページから消去済みブロックページ(3):コピー元ブロックからコピー先ブロックへ全ての有効データページがコピーされた後にコピー元ブロックが消去されると、コピー先ブロックにプログラムされていた消去済みページは事実上、コピー元ブロック内の消去済みブロックページとなる。
消去済みブロックページから消去済みページ(4):コピー元ブロックから消去済みブロックへ有効データページがコピーされた後、消去済みブロックの中の残りの消去済みブロックページは消去済みページになる。
データページからファイルブロックページ(5):不完全ブロックの中にある有効データページは、ブロックが満杯になるとファイルブロックページになる。
消去済みブロックページからファイルブロックページ(6):消去済みブロックページは、ブロックがホストによって書き込まれるデータで満たされるとファイルブロックページになる。
Page Transition Caused by Device Operation FIG. 22 shows the following page transition.
Used page to erased block page (1) : Occurs when a block is erased after a valid data page is copied from the block containing the used page.
Data page to data page (2) : related to the data page copied from the copy source block to the copy destination block.
Erased page to erased block page (3) : When the copy source block is erased after all valid data pages have been copied from the copy source block to the copy destination block, the erased page programmed in the copy destination block Is effectively an erased block page in the source block.
Erased block page to erased page (4) : After the valid data page is copied from the copy source block to the erased block, the remaining erased block pages in the erased block become erased pages.
Data page to file block page (5) : A valid data page in an incomplete block becomes a file block page when the block is full.
Erased block page to file block page (6) : An erased block page becomes a file block page when the block is filled with data written by the host.
図23は、メモリアレイのブロックでこれらの遷移がどのように起こるかを例示するものである。図23Aはメモリアレイの中の4つのブロックA〜Dを示し、データの量と状態はブロックによって異なる。ブロックAのページ0〜3は有効データ(網掛けにより指示)を各々収容するから、ブロックAは有効データで満たされている。したがって、ブロックAはファイルブロックとみなされる。ブロックBは、有効データ(データX)を収容するページ0と、用済みデータ(斜線により指示)を収容するページ1および2と、消去済み状態にあるページ3とを含む。ブロックBは、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックCは、有効データで満たされたページ0および1と、消去済み状態にあるページ2および3とを有する。ブロックCもまた、ある程度の有効データを収容するが、有効データで満たされているわけではないから、不完全ブロックとみなされる。ブロックDは完全に消去され、データを収容していないから、消去済みブロックとみなされる。
FIG. 23 illustrates how these transitions occur in a block of the memory array. FIG. 23A shows four blocks A to D in the memory array, and the amount and state of data differ from block to block. Since pages 0-3 of block A each contain valid data (indicated by shading), block A is filled with valid data. Therefore, block A is regarded as a file block. Block B includes
図23AのブロックAは唯一のファイルブロックだから、ファイルブロックページ(FBP)数はブロックAにあるページ数に、すなわち4に等しい。データページ(DP)数はブロックBおよびCにある有効ページ数であり、したがって3に等しい。用済みページ(OP)数はブロックBおよびCにて用済みデータで満たされているページ数であり、2に等しい。消去済みページ(EP)数はブロックBおよびCで消去済み状態にあるページ数であり、3に等しい。ブロックDは唯一の消去済みブロックだから、消去済みブロックページ(EBP)数はブロックDにあるページ数であり、4に等しい。この例で、総ページ(TP)は要するに全ブロックの総ページ数であり、ここでは16ページである。総データページ(TDP)は、有効データを収容するページ数であり、ここでは7ページである。 Since block A in FIG. 23A is the only file block, the number of file block pages (FBP) is equal to the number of pages in block A, ie four. The number of data pages (DP) is the number of valid pages in blocks B and C and is therefore equal to 3. The number of used pages (OP) is the number of pages filled with used data in blocks B and C, and is equal to two. The number of erased pages (EP) is the number of pages in the erased state in blocks B and C and is equal to 3. Since block D is the only erased block, the number of erased block pages (EBP) is the number of pages in block D and is equal to four. In this example, the total page (TP) is, in short, the total number of pages of all blocks, and here is 16 pages. The total data page (TDP) is the number of pages containing valid data, and is 7 pages here.
図23Aは、ブロックBのページ0からブロックCのページ2にかけて有効データXがコピーされる様子を示している。これは、DPからDPに至るタイプ(2)遷移の一例である。その後、図23BのブロックBには用済みデータだけが残るから、ブロックBはこの時点で消去のキューに入れることができる。図23BのブロックDには新規の有効データYが書き込まれ、かくしてブロックDのページ0はデータページになる。ブロックDのページ1〜3は、タイプ(4)遷移で消去済みブロックページから消去済みページに変化する。図23Cは、ブロックBが消去された後のブロックA〜Dを示している。ページ0〜2は、タイプ(1)遷移で用済みページから消去済みブロックページに変わる。ブロックBのページ3は、不完全ブロックの中の消去済みページから、図23Cの消去済みブロックの中の消去済みブロックページに変わる。これはタイプ(3)遷移の一例である。図23Cではまた、ブロックDのページ0からブロックCのページ3へ有効データYがコピーされ、その結果、ブロックCは図23Dに示すように有効データで一杯になる。よって、図23DのブロックCはファイルブロックとみなされる。かつてデータページだったブロックCのページ0〜2は、ブロックCがタイプ(5)遷移でファイルブロックになるときにファイルブロックページになる。図23Dではまた、ブロックBに有効データがプログラムされてブロックBを満たす。ブロックBのページは、タイプ(6)遷移で消去済みブロックページからファイルブロックページに変化する。
FIG. 23A shows how valid data X is copied from
この適応スケジューリング方式の一目的は、一定レートのホストデータプログラミングを提供するため、ホスト書き込み操作と再生操作とを交互に行うことにある。よって、総データページ(TDP)が増加する割合は、総データページ(TDP)が総ページ(TP)に等しくなるまで、すなわちメモリが満杯になるまで一定である。この例では、様々なパラメータの計算にあたってある程度の概算を行う。しかし、他の例ではこれとは別の仮定に基づくことができ、あるいはこれとは別のやり方で計算を行うことができる。この計算では、コピーされるデータのデータグループ構造を無視する。したがって、データグループはコピーのときに分割されることがある。コピー元ブロックからデータページをコピーしてコピー先ブロックの使用可能な消去済みページが満たされたら、残りのデータページを別のコピー先ブロックにコピーできる。 One purpose of this adaptive scheduling scheme is to alternately perform host write and replay operations to provide constant rate host data programming. Thus, the rate at which the total data page (TDP) increases is constant until the total data page (TDP) is equal to the total page (TP), that is, until the memory is full. In this example, a certain amount of rough estimation is performed when calculating various parameters. However, other examples may be based on other assumptions or may be performed in other ways. This calculation ignores the data group structure of the copied data. Therefore, the data group may be divided when copying. Once the data page is copied from the source block and the available erased page of the destination block is filled, the remaining data page can be copied to another destination block.
コントローラは、再生操作と新規のデータ書き込みとの適切な交互比の計算にあたって使用される特定のパラメータ値を保守する。本願明細書で紹介する計算では計算の基本データ単位としてページを使用するが、ブロックやメタブロックなどの、別の単位を使用することもできる。交互比は、コントローラによって保守されるパラメータ値だけを、すなわち総ページ(TP)、総データページ(TDP)、不完全ブロックページ(PBP)、および消去済みブロックページ(EBP)だけを用いて以下に示すように計算できる。 The controller maintains specific parameter values that are used in calculating the appropriate alternating ratio between the playback operation and the new data write. In the calculation introduced in the present specification, a page is used as a basic data unit of calculation, but another unit such as a block or a metablock may be used. The alternating ratio is as follows using only the parameter values maintained by the controller: only total page (TP), total data page (TDP), incomplete block page (PBP), and erased block page (EBP). Can be calculated as shown.
(ホストデータ):(コピーデータ)交互比の導出
デバイスが満杯になる前にデバイスに書き込むことができる追加のホストデータページ数は以下の式によって求められる。
書き込まれるホストデータ=TP−TDP
(Host Data): (Copy Data) Derivation of Interleave Ratio The number of additional host data pages that can be written to the device before the device is full is determined by the following equation:
Host data to be written = TP-TDP
消去済みページ(EP)およびデータページ(DP)の数もまた、コントローラによって監視されるパラメータを用いて以下のように書くことができる。
消去済みページ(EP)=TP−TDP−OP−EBP
データページ(DP)=PBP−EP−OP
=PBP−(TP−TDP−OP−EBP)−OP
=TDP+PBP+EBP−TP
The number of erased pages (EP) and data pages (DP) can also be written as follows using parameters monitored by the controller:
Erased page (EP) = TP-TDP-OP-EBP
Data page (DP) = PBP-EP-OP
= PBP- (TP-TDP-OP-EBP) -OP
= TDP + PBP + EBP-TP
コピーしなければならない有効データの量は、全ての不完全ブロックが同数の有効データページを収容するとする概算に基づいて求める。1ブロック内の総ページ数をNとすると、不完全ブロック内の平均有効ページ数はN*DP/PBPである。 The amount of valid data that must be copied is determined based on an approximation that all incomplete blocks contain the same number of valid data pages. When the total number of pages in one block is N, the average number of effective pages in the incomplete block is N * DP / PBP.
不完全ブロックの中にあるデータページのごく僅かをコピーするだけでよい。データがコピーされるコピー先ブロックになる不完全ブロックには残余が存在する。全てのコピーで不完全ブロックがコピー先ブロックとして使われ、消去済みブロックを使用する必要はないと仮定する。消去される各不完全ブロックにある有効データは消去に先駆けコピーされるから、データのコピー元にあたるブロックの数は、作ろうとする消去済みブロックの数に等しい。作られる消去済みブロックの数=(PBP−DP)/Nである。 Only a small portion of the data page in the incomplete block needs to be copied. There is a residue in an incomplete block that becomes a copy destination block to which data is copied. It is assumed that incomplete blocks are used as copy destination blocks in all copies, and it is not necessary to use erased blocks. Since valid data in each incomplete block to be erased is copied prior to erasure, the number of blocks corresponding to the data copy source is equal to the number of erased blocks to be created. Number of erased blocks created = (PBP-DP) / N.
よって、消去されるブロック数にブロック当たりの平均有効ページ数を掛けることにより、メモリアレイで全再生可能な空間を再生するためにコピーされるデータ量の概算が得られる。
コピーされるデータ ={N*DP/PDP}*{(PBP−DP)/N}
=DP*(PBP−DP)/PBP
=(TDP+PBP+EBP−TP)*(PBP−TDP−PBP−EBT+TP)/PBP
=(TDP+PBP+EBP−TP)*(TP−TDP−EBP)/PBP
実際にはコピーされる有効データの量が最も少ないブロックがコピー操作のためのコピー元ブロックとして選択されるから、これが、コピーされるデータ量を多めに見積もるという点に留意されたい。したがって、全ての不完全ブロックが同じ割合でデータページを収容するとする単純化に基づくデータコピーのレートは、必要なレートよりいくぶん高くなる。
(ホストデータ):(コピーデータ)交互比
=(書き込まれるホストデータ)/(コピーされるデータ)
=(TP−TDP)*PBP/(TDP+PBP+EBP−TP)/(TP−TDP−EBP)
Thus, by multiplying the number of blocks to be erased by the average number of effective pages per block, an approximation of the amount of data copied to reproduce the entire reproducible space in the memory array can be obtained.
Data to be copied = {N * DP / PDP} * {(PBP-DP) / N}
= DP * (PBP-DP) / PBP
= (TDP + PBP + EBP-TP) * (PBP-TDP-PBP-EBT + TP) / PBP
= (TDP + PBP + EBP-TP) * (TP-TDP-EBP) / PBP
Note that this actually overestimates the amount of data to be copied because the block with the least amount of valid data to be copied is selected as the source block for the copy operation. Thus, the rate of data copy based on simplification, where all incomplete blocks contain data pages at the same rate, is somewhat higher than the required rate.
(Host data): (Copy data) Interchange ratio = (Host data to be written) / (Data to be copied)
= (TP-TDP) * PBP / (TDP + PBP + EBP-TP) / (TP-TDP-EBP)
これは、メモリが満杯になるまでホストデータのプログラミングを一定のレートで継続することを可能にする交互比を与える。この比は周期的に更新でき、あるいは何らかのトリガイベントに応じて更新できる。この比は、一定レートのホストデータプログラミングを可能にするように再生操作のスケジュールを組むのに使用できる式の一例である。これとは別の式を使用することもできる。交互比を計算するための式は、前述した計算などに基づいてよく、あるいは実際のメモリにおける経験に基づいてよい。計算にあたって無視すべきファクタについて仮定を加えることによって式は単純化できる。代わりに、より複雑な式では、ブロックの消去にこのような時間、またはガーベッジコレクションのコピー先ブロックとして消去済みブロックが必要となる可能性などのさらなるファクタを考慮に入れることができる。 This provides an alternating ratio that allows programming of host data to continue at a constant rate until the memory is full. This ratio can be updated periodically or in response to some triggering event. This ratio is an example of an equation that can be used to schedule a playback operation to allow constant rate host data programming. Other formulas can be used. The formula for calculating the alternating ratio may be based on the above-described calculation or the like, or may be based on experience in actual memory. The formula can be simplified by making assumptions about factors that should be ignored in the calculation. Instead, more complex formulas can take into account additional factors such as the time to erase a block, or the possibility that an erased block may be required as a garbage collection destination block.
前述した例のメモリはファイル本位のホストインターフェイスを有するが、本発明の態様は、セクタ本位のホストインターフェイス、または他の何らかのホストインターフェイスを使用するメモリにも応用できる。セクタ本位インターフェイスを持つ一部のメモリは、説明している手法の応用から大いに利益を受けるには十分な情報を欠くが、ある程度の性能の向上は達成できる。加えて、セクタ本位インターフェイスを有する一部のメモリはFATを解析するか、さもなくば記憶データの状態についてさらなる情報を入手する。一部のホストは、さらなるコマンドを用いて記憶データに関する情報をコントローラに提供する。再生のスケジュールを早期に組むため、このような情報を役立てることができる。 Although the example memory described above has a file-oriented host interface, aspects of the invention can also be applied to memory using a sector-oriented host interface or some other host interface. Some memories with a sector-oriented interface lack sufficient information to greatly benefit from the application of the described technique, but some performance improvement can be achieved. In addition, some memories with sector oriented interfaces parse the FAT or otherwise obtain more information about the state of stored data. Some hosts use additional commands to provide information about stored data to the controller. Such information can be used to set up a reproduction schedule early.
ホスト操作
いくつかの例において、不揮発性メモリにおける再生操作を各種モードで各様に管理できる。前述したように、再生操作は第1のモードにおいてある程度の最小レート(いくつかの例ではゼロを含む)で動作でき、第2のモードにおいて適応的に動作でき、第3のモードにおいて最大レートで動作できる。再生モードは、メモリコントローラが所定の基準に従って選択できる。いくつかの例では、ホストが再生モードを制御できる。ホストは、前述した3モードのどれが選択されるかを判断できる。加えて、ホストは、現在のホスト活動または予期されるホスト活動に基づき、適切な再生モードを選択するコマンドを有することができる。ホストシステムは、図1に示すようにメモリシステムから物理的に分離してよい。代わりに、オンカードアプリケーションを実行するメモリカード内のプロセッサをホストとみなすこともできる。米国仮特許出願第60/705,388号(特許文献30)ではこのような構成が説明されている。
Host operation In some examples, playback operations in non-volatile memory can be managed in various modes. As described above, the playback operation can operate at a certain minimum rate (including zero in some examples) in the first mode, can operate adaptively in the second mode, and can operate at the maximum rate in the third mode. Can work. The playback mode can be selected by the memory controller according to a predetermined standard. In some examples, the host can control the playback mode. The host can determine which of the three modes described above is selected. In addition, the host may have a command to select an appropriate playback mode based on current host activity or expected host activity. The host system may be physically separated from the memory system as shown in FIG. Alternatively, the processor in the memory card that executes the on-card application can be considered as the host. US Provisional Patent Application No. 60 / 705,388 (Patent Document 30) describes such a configuration.
メモリの再生モードに関する第1のホストコマンドは、交互操作の代わりに連続再生操作を可能にする「再生オン(Reclaim_on)」コマンドである。このようにして行われる再生操作は、ホストコマンドの実行に遅れを生じさせず、ホストにとって透過であるから、バックグラウンド操作とみなされる。「再生オン」は、ホストが暫くの間追加のコマンドを送信しないことをメモリに告げる「アイドル(idle)」コマンドに相当する。一部のシステムにおいて、これらは同じコマンドである。これがもたらす再生オンモードは、別のホストコマンドの受信時に終了する。 The first host command relating to the memory playback mode is a “playback on (Reclaim_on)” command that allows continuous playback operations instead of alternating operations. The playback operation performed in this way is regarded as a background operation because it does not cause a delay in the execution of the host command and is transparent to the host. “Playback On” corresponds to an “idle” command that tells the memory that the host will not send an additional command for a while. In some systems, these are the same commands. The play-on mode that this results in ends when another host command is received.
「再生ノーマル(Reclaim_normal)」コマンドは、メモリのデフォルト再生モードでの動作を可能にする。これは、適応スケジュールに従って再生することを意味することがあり、あるいは再生モード選択の制御権をメモリコントローラに与え、メモリコントローラが何らかの所定の基準に基づき再生モードを選択することを意味することがある。メモリは、再生オンモードを終了させるホストコマンドの受信時に、デフォルトでこのモードに入ることができる。 The “replay normal (Reclaim_normal)” command enables operation in the default playback mode of the memory. This can mean playing according to an adaptive schedule, or it can mean giving the memory controller control over playback mode selection and the memory controller selecting the playback mode based on some predetermined criteria. . The memory can enter this mode by default upon receipt of a host command that terminates the playback on mode.
「再生オフ(Reclaim_off)」コマンドは、再生操作を禁じ、ホスト操作だけを遂行させる。最大のホストデータ書き込み性能を提供するためにこのモードを選ぶことができる。このモードは、再生オンコマンドまたは再生ノーマルコマンドによって終了する。 The “playback off (Reclaim_off)” command prohibits the playback operation and performs only the host operation. This mode can be selected to provide maximum host data write performance. This mode is terminated by a playback on command or a playback normal command.
再生レートの降順による可能な再生モード階層は以下のとおりである。
再生オン:デバイスは、別のコマンドが受信されるまで連続再生操作を遂行する。
最大交互:再生操作は、一定の最大交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の上限である。
適応交互:再生操作は、適応交互比に従ってホストデータ書き込み操作と交互に行われる。
最小交互:再生操作は、一定の最小交互比でホストデータ書き込み操作と交互に行われる。これは、適応交互比の下限である。
再生オフ:再生操作は禁じられ、ホストデータ書き込み操作だけが遂行される。
Possible playback mode hierarchies according to the descending order of playback rates are as follows.
Play On : The device performs a continuous playback operation until another command is received.
Maximum alternation : The replay operation is performed alternately with the host data write operation at a constant maximum alternation ratio. This is the upper limit of the adaptive alternating ratio.
Adaptive alternation : The replay operation is performed alternately with the host data write operation according to the adaptive alternation ratio.
Minimum alternation : The replay operation is performed alternately with the host data write operation at a certain minimum alternation ratio. This is the lower limit of the adaptive alternating ratio.
Playback off : Playback operation is prohibited, and only host data write operation is performed.
前述した説明が一定レートのホストデータ書き込みに言及している点に留意すべきである。交互再生によって提供される一定レートは複数のサイクルにわたって看取される。個々のサイクルのレベルで見た場合、再生操作を交えた周期的なホスト書き込み操作の中でホストデータの書き込みが行われる。しかし、サイクル当たりまたは多数のサイクルにわたる、ホストデータ書き込みレートは、推定されたレートで一定に保ったままにすることができるから、メモリアレイが満杯になるまでこれを維持できる。 It should be noted that the above description refers to constant rate host data writes. The constant rate provided by alternate regeneration is observed over multiple cycles. When viewed at the level of individual cycles, host data is written in a periodic host write operation with a replay operation. However, the host data write rate per cycle or over many cycles can be kept constant at the estimated rate and can be maintained until the memory array is full.
前述した説明では、メモリアレイの中で再生可能な空間が消去済みブロックに変換されるレートが一定であることが分かる。しかし、たとえサイクル当たりまたは単位時間当たりの再生操作数が一定でも、再生操作によって消去済みブロックが作られるレートが一定になるとは限らない。というのは、再生の対象となるブロックは、再生が容易なブロックから先に再生されるように選択されるからである。したがって、適応再生が始まるときに、再生の対象となるブロックにRページ分の有効データがあると、ブロックはコピーされるデータのRページずつ再生される。その後、2Rページ分の有効データを有するブロックを再生するには、消去済みブロックを作るたびに2R回のコピー操作を要する。したがって、再生によって消去済みブロックが作られるレートは、以前のレートの半分まで減少する。消去済みブロックが作られるレートは、これとは別の例では、ブロックの再生順序に応じて別様に変動する。ブロックがそこに収容された有効データの量にかかわりなく再生されるならば、再生によって消去済みブロックが作られるレートはそこそこ一定となる。 In the above description, it can be seen that the rate at which the reproducible space in the memory array is converted to erased blocks is constant. However, even if the number of reproduction operations per cycle or unit time is constant, the rate at which erased blocks are created by the reproduction operation is not always constant. This is because the block to be reproduced is selected so that the block that is easy to reproduce is reproduced first. Therefore, when adaptive reproduction starts, if there are valid data for R pages in the block to be reproduced, the blocks are reproduced for each R page of the copied data. Thereafter, to reproduce a block having valid data for 2R pages, 2R copy operations are required every time an erased block is created. Therefore, the rate at which erased blocks are created by playback is reduced to half of the previous rate. In another example, the rate at which erased blocks are created varies differently depending on the playback order of the blocks. If a block is played back regardless of the amount of valid data contained therein, the rate at which the erased blocks are created by playback is reasonably constant.
これまで本発明の様々な態様をその代表的な実施形態との関係で説明してきたが、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。 While various aspects of the present invention have been described with respect to exemplary embodiments thereof, it will be understood that the rights should be protected within the full scope of the appended claims.
Claims (21)
(a)ホストから受信するホストデータを前記不揮発性メモリアレイに記憶する操作と、(b)前記不揮発性メモリアレイのある1つのブロックから前記不揮発性メモリアレイの別のブロックにかけて記憶済み有効データをコピーして、前記不揮発性メモリアレイ内にホストデータを記憶する消去ブロックを形成する操作とを交互に行うステップを含み、
前記交互に行うステップは、前記不揮発性メモリアレイ内のホストデータを記憶する消去ブロックが使い果たされないように、前記不揮発性メモリアレイの消去ブロックを再生するためにコピーされる有効データの変化量の推定値に依拠する交互比に適応して基づく方法。A method of managing space in a non-volatile memory array of a memory system that is detachably connected to a host, the non-volatile memory array having a block erase unit and partially filled with valid data In a method having blocks,
Operations and for storing host data in the nonvolatile memory array for receiving from (a) a host, the (b) the stored valid data toward another block of the nonvolatile memory array of one block of the nonvolatile memory array Copying and alternately forming an erase block for storing host data in the non-volatile memory array,
The altering step includes changing the amount of valid data copied to reproduce the erase block of the nonvolatile memory array so that the erase block storing the host data in the nonvolatile memory array is not used up. A method based on an adaptive ratio that relies on an estimate of .
前記交互に行うステップは、前記不揮発性メモリアレイにホストデータを一定のレートで記憶することを提供する方法。The method of claim 1, wherein
Performing the alternating method provides for storing host data in a constant rate in the nonvolatile memory array.
前記交互比は、前記不揮発性メモリアレイが有効データで満たされるまで、消去ブロックが使い果たされずに一定のレートでホストデータを記憶し続けるようにさらに計算される方法。The method of claim 2, wherein
The alternation ratio is further calculated such that the erase block is not exhausted and continues to store host data at a constant rate until the non-volatile memory array is filled with valid data.
前記交互比は、前記不揮発性メモリアレイにホストデータを記憶するために前記ホストから受信したホストコマンドに応じて再計算される方法。The method of claim 1, wherein
The alternating ratio is recalculated in response to a host command received from the host to store host data in the non-volatile memory array .
前記交互比は、前記不揮発性メモリアレイに記憶され得る追加のホストデータの変化量の推定値にさらに基づく方法。The method of claim 1, wherein
The alternating ratio is further based on an estimate of the amount of change in additional host data that can be stored in the non-volatile memory array.
前記不揮発性メモリアレイに記憶され得る追加のホストデータの変化量の推定値は、ホストファイルが用済みであることを示す前記ホストから受信した情報にさらに基づく方法。The method of claim 5, wherein
The estimated value of the amount of change in the non-volatile memory additional host data may be stored in array further method based on the host or we received the information indicating that the host file is obsolete.
前記交互に行うステップは、記憶済み有効データをコピーすることを禁じる再生オフモードと、前記不揮発性メモリアレイにホストデータを記憶せずに記憶済み有効データをコピーすることを可能にする再生オンモードとを含む複数のモードから交互モードを選択するホストコマンドに応じて起こる方法。The method of claim 1, wherein
Performing the alternating reproduction on mode to allow the reproduction-off mode to prohibit copying the already stored valid data, copying the already stored valid data in the nonvolatile memory array without storing host data A method that occurs in response to a host command that selects an alternate mode from a plurality of modes including:
前記メモリシステムと着脱可能な状態で接続するホストから受信したホストデータを記憶する前記不揮発性メモリアレイ内に複数のブロックを形成するように、複数のブロックに記憶される有効データを前記不揮発性メモリアレイの別のブロックにコピーするステップであって、ホストデータを記憶する消去ブロックが使い果たされないように、複数のブロックに記憶される有効データの変化量に適応して依拠するレートで前記コピーするステップが行われるステップと、
複数のブロックの個々のブロックを、個々のブロックにある全有効データがコピーされた後に、消去するステップと、
を含む方法。A method of reclaiming space in a non-volatile memory array of a memory system that is detachably connected to a host, the non- volatile memory array having a page programming unit and a block erasing unit, In a method of accommodating more than one page, the non-volatile memory array also accommodates a plurality of blocks each partially filled with valid data, but not completely ,
Valid data stored in a plurality of blocks is stored in the non-volatile memory so as to form a plurality of blocks in the non-volatile memory array that stores host data received from a host connected in a detachable manner with the memory system. Copying to another block of the array, said copy at a rate that relies on adaptively changing the amount of valid data stored in the plurality of blocks so that the erase block storing host data is not exhausted Steps to be performed, and
The individual blocks of the multiple blocks, after the entire effective data is copied in the block of the individual, and the step of erasing,
Including methods.
前記コピーするステップは、ホスト書き込み操作と交互に行われ、前記レートは、ホスト書き込み操作に許される時間内にコピーされる有効データの変化量によって設定される方法。The method of claim 8, wherein
The copying is performed alternately with a host write operation, and the rate is set according to a change amount of valid data copied within a time allowed for the host write operation.
前記レートは、反復サイクルの1サイクルで書き込まれるホストデータのページ数に対するコピーされる有効データのページ数の比によって設定される方法。The method of claim 9, wherein
The rate is set by a ratio of the number of pages of valid data copied to the number of pages of host data written in one cycle of the repetition cycle.
前記比は、等式r=x/yから適応して計算され、
ここで、xは、複数のブロックにて空間を再生するためにコピーしなければならない複数のブロックに収容された有効データの変化量の推定値であり、
yは、前記不揮発性メモリアレイが満杯になる前に前記不揮発性メモリアレイに記憶され得る追加のホストデータの変化量の推定値である方法。The method of claim 10, wherein:
The ratio is calculated adaptively from the equation r = x / y;
Here, x is the estimated value of the variation of the effective data contained in the block of numbers Ifuku shall be copied to play space in multiple blocks,
y is an estimate of the amount of change in additional host data that can be stored in the non-volatile memory array before the non-volatile memory array is full.
前記レートは、前記不揮発性メモリアレイがホスト書き込み操作によって満たされていくにつれて、前記コピーするステップを、ホスト書き込み操作の合間に均一に分配するように計算される方法。The method of claim 9, wherein
The rate is the hand as the gradually filled with the non-volatile memory array Gaho strike write operation, a method of the step of said copy, is calculated to uniformly distribute in between host write operation.
有効データがコピーされる複数のブロックは、ホストコマンドによって用済みと識別される用済みデータも収容する方法。The method of claim 8, wherein
Block of multiple effective data is copied, the method also accommodates Data for the obsolete Ru identified by the host command.
(a)ホストから受信するホストデータを前記不揮発性メモリアレイに記憶する操作と、(b)前記不揮発性メモリアレイのある1つのブロックから前記不揮発性メモリアレイの別のブロックにかけて記憶済み有効データをコピーする操作とを、交互比に従い、反復サイクルにて、交互に行うので、ホストデータが記憶され得るブロックが使い果たされずに前記不揮発性メモリアレイがホストデータで満ちるにつれて、複数のサイクルにわたり一定のレートでホストデータが記憶されるステップを含む方法。A method of managing space in a nonvolatile memory array of a memory system connected in a detachable manner with a host , wherein the nonvolatile memory array has a block erase unit,
Operations and for storing host data in the nonvolatile memory array for receiving from (a) a host, the (b) the stored valid data toward another block of the nonvolatile memory array of one block of the nonvolatile memory array the operations that copy, in accordance with alternate ratio at repeated cycles, is performed alternately, hands the non-volatile memory array without block is used up by the host data may be stored is as the filling in the host data, constant over a plurality of cycles A method comprising the step of storing host data at a rate of.
前記交互比は、前記不揮発性メモリアレイに記憶され得る追加のホストデータの総量の推定値と、前記不揮発性メモリアレイにて全ての再生可能な空間を再生するために、ある1つのブロックから別のブロックにかけてコピーしなければならない記憶済み有効データの総量の推定値とから計算される方法。The method of claim 14, wherein
The alternate ratio is the estimated value of the total amount of additional host data may be stored in non-volatile memory array, in order to reproduce all the playable space in the nonvolatile memory array, separate from one single block method is calculated from the estimated value of the total amount of the stored valid data toward the block must be copied.
前記コピーしなければならない記憶済み有効データの総量の推定値は、有効データで部分的に満たされた全ブロックにわたって有効データが均一に分散していると仮定することによって得られる方法。The method of claim 15, wherein
The method estimates of the total amount of the copied the stored valid data must is obtained by assuming that the effective data across all the blocks partially filled with valid data are uniformly dispersed.
複数のブロックを含む不揮発性メモリアレイであって、1ブロックは最小消去単位である不揮発性メモリアレイと、
前記ホストから受信し、かつ前記不揮発性メモリアレイに記憶されるホストデータのために論理−物理マッピングの記録を保守するメモリコントローラであって、前記記録は複数の項目を有し、個々の項目は一意なファイル識別子およびオフセットによって論理アドレスを示し、前記メモリコントローラは、前記ホストによって供給される情報に従って記憶データが有効かまたは用済みかを判断し、またコピーされる有効データの変化量と、前記不揮発性メモリアレイが満杯になる前に前記不揮発性メモリアレイに記憶され得る追加のホストデータの総変化量とに適応して依拠するレートで複数の消去ブロックを形成するように、前記不揮発性メモリアレイのある1つのブロックから別のブロックにかけて有効データをコピーするようにさらに構成されるメモリコントローラと、
を備えるメモリシステム。 A memory system that is detachably connected to a host ,
A non-volatile memory array including a plurality of blocks, wherein one block is a minimum erase unit;
A memory controller that maintains a record of logical-to-physical mapping for host data received from the host and stored in the non-volatile memory array, the record having a plurality of items, each item being the logical address indicates the unique file identifiers and offsets, the memory controller includes: the host to determine obsolete therefore whether the stored data is valid or information supplied by, and the amount of change in the effective data to be copied such that said non-volatile memory array is to form the non-volatile total change amount and a plurality of erase blocks in relying rate to adapt to the additional host data may be stored in the memory array before the full, the non further to copy the valid data toward another block from one block of sexually memory array When configured memory controller,
A memory system comprising:
前記レートは、ホストコマンドに応じて再計算されるメモリシステム。The memory system of claim 17, wherein
The rate is recalculated in response to a host command.
前記レートは、前記不揮発性メモリアレイが有効ホストデータで満たされるまで、ホストデータを一定のレートで記憶することを提供するように計算されるメモリシステム。The memory system of claim 17, wherein
The memory system is calculated to provide for storing host data at a constant rate until the non-volatile memory array is filled with valid host data.
前記メモリシステムは、標準インターフェイスを通じて前記ホストと通信する着脱可能なメモリカードにて具現化されるメモリシステム。The memory system of claim 17, wherein
The memory system is embodied as a removable memory card that communicates with the host through a standard interface.
前記ホストは、ホストファイルを参照するための一意なファイル識別子を用いてホストファイルに関する情報を供給するメモリシステム。The memory system of claim 17, wherein
The host memory system to provide information about the host file using a unique file identifier to refer to the host file.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70538805P | 2005-08-03 | 2005-08-03 | |
US60/705,388 | 2005-08-03 | ||
US11/259,439 | 2005-10-25 | ||
US11/259,423 | 2005-10-25 | ||
US11/259,423 US7409489B2 (en) | 2005-08-03 | 2005-10-25 | Scheduling of reclaim operations in non-volatile memory |
US11/259,439 US7984084B2 (en) | 2005-08-03 | 2005-10-25 | Non-volatile memory with scheduled reclaim operations |
PCT/US2006/030166 WO2007019198A2 (en) | 2005-08-03 | 2006-08-01 | Non-volatile memory with scheduled reclaim operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009503744A JP2009503744A (en) | 2009-01-29 |
JP4977703B2 true JP4977703B2 (en) | 2012-07-18 |
Family
ID=38083567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008525169A Active JP4977703B2 (en) | 2005-08-03 | 2006-08-01 | Non-volatile memory with scheduled playback operation |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1910928A2 (en) |
JP (1) | JP4977703B2 (en) |
KR (1) | KR101089150B1 (en) |
WO (1) | WO2007019198A2 (en) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
JP4461187B1 (en) | 2008-12-24 | 2010-05-12 | 株式会社東芝 | Nonvolatile semiconductor memory drive device, information processing device, and storage area management method in nonvolatile semiconductor memory drive device |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
JP2011192260A (en) | 2010-02-16 | 2011-09-29 | Toshiba Corp | Semiconductor storage device |
JP5404483B2 (en) * | 2010-03-17 | 2014-01-29 | 株式会社東芝 | Memory system |
US8341372B2 (en) * | 2010-04-29 | 2012-12-25 | Freescale Semiconductor, Inc. | Emulated electrically erasable (EEE) memory and method of operation |
TW201140315A (en) * | 2010-05-11 | 2011-11-16 | Jmicron Technology Corp | Method for estimating capacity usage status of storage unit, and associated memory device and controller thereof |
US11188229B2 (en) | 2015-09-25 | 2021-11-30 | Hitachi Vantara Llc | Adaptive storage reclamation |
CN106897022B (en) * | 2015-12-17 | 2019-05-31 | 腾讯科技(深圳)有限公司 | A kind of method and device of management storage equipment |
KR102611638B1 (en) * | 2016-09-27 | 2023-12-08 | 삼성전자주식회사 | Method of operating storage device and data storage system including storage device |
US11099760B2 (en) * | 2017-12-14 | 2021-08-24 | Intel Corporation | Background data refresh using a system timestamp in storage devices |
CN111090595B (en) * | 2019-11-19 | 2022-12-20 | 中国航空工业集团公司西安航空计算技术研究所 | NAND FLASH garbage recovery balanced optimization method |
WO2023082252A1 (en) * | 2021-11-15 | 2023-05-19 | 华为技术有限公司 | Garbage collection method, and memory and memory management apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63231643A (en) * | 1987-03-20 | 1988-09-27 | Fujitsu Ltd | Real-time garbage collection system |
GB9907280D0 (en) * | 1999-03-31 | 1999-05-26 | Philips Electronics Nv | A method of scheduling garbage collection |
US7093071B2 (en) * | 2002-10-09 | 2006-08-15 | Intel Corporation | Queued copy command |
JP4017178B2 (en) * | 2003-02-28 | 2007-12-05 | スパンション エルエルシー | Flash memory and memory control method |
US7437557B2 (en) * | 2003-06-03 | 2008-10-14 | Lg Electronics Inc. | Garbage collection system and method for a mobile communication terminal |
US7519639B2 (en) * | 2004-01-05 | 2009-04-14 | International Business Machines Corporation | Method and apparatus for dynamic incremental defragmentation of memory |
-
2006
- 2006-08-01 KR KR1020087005059A patent/KR101089150B1/en not_active IP Right Cessation
- 2006-08-01 JP JP2008525169A patent/JP4977703B2/en active Active
- 2006-08-01 WO PCT/US2006/030166 patent/WO2007019198A2/en active Application Filing
- 2006-08-01 EP EP06789237A patent/EP1910928A2/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2009503744A (en) | 2009-01-29 |
EP1910928A2 (en) | 2008-04-16 |
WO2007019198A2 (en) | 2007-02-15 |
KR101089150B1 (en) | 2011-12-02 |
KR20080042851A (en) | 2008-05-15 |
WO2007019198A3 (en) | 2007-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4977703B2 (en) | Non-volatile memory with scheduled playback operation | |
US7984084B2 (en) | Non-volatile memory with scheduled reclaim operations | |
US7877540B2 (en) | Logically-addressed file storage methods | |
US7877539B2 (en) | Direct data file storage in flash memories | |
US8214583B2 (en) | Direct file data programming and deletion in flash memories | |
US7984233B2 (en) | Direct data file storage implementation techniques in flash memories | |
TWI437441B (en) | Method and system for storage address re-mapping for a multi-bank memory device | |
KR101272642B1 (en) | Reclaiming data storage capacity in flash memory systems | |
US20070143378A1 (en) | Non-volatile memories with adaptive file handling in a directly mapped file storage system | |
US20090182791A1 (en) | Non-Volatile Memories And Method With Adaptive File Handling In A Directly Mapped File Storage System | |
US20070143560A1 (en) | Non-volatile memories with memory allocation for a directly mapped file storage system | |
US20090210614A1 (en) | Non-Volatile Memories With Versions of File Data Identified By Identical File ID and File Offset Stored in Identical Location Within a Memory Page | |
US20100146197A1 (en) | Non-Volatile Memory And Method With Memory Allocation For A Directly Mapped File Storage System | |
US20070143567A1 (en) | Methods for data alignment in non-volatile memories with a directly mapped file storage system | |
JP2009503729A (en) | Interface system that operates with logical address space and direct data file method | |
US20070136553A1 (en) | Logically-addressed file storage systems | |
KR20110081150A (en) | Multiple performance mode memory system | |
US20090164745A1 (en) | System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System | |
KR101378031B1 (en) | Management of memory blocks that directly store data files | |
JP5266250B2 (en) | Use of direct data file system with continuous logical address space interface | |
JP4441577B2 (en) | Conversion data unit storage in memory system with fixed size storage block | |
JP2009519555A (en) | Logical address file storage | |
JP2010515163A (en) | Management of LBA interface in direct data file memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110418 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110722 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110729 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110822 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110926 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120321 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4977703 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150420 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150420 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |