JP2009519555A - Logical address file storage - Google Patents

Logical address file storage Download PDF

Info

Publication number
JP2009519555A
JP2009519555A JP2008545919A JP2008545919A JP2009519555A JP 2009519555 A JP2009519555 A JP 2009519555A JP 2008545919 A JP2008545919 A JP 2008545919A JP 2008545919 A JP2008545919 A JP 2008545919A JP 2009519555 A JP2009519555 A JP 2009519555A
Authority
JP
Japan
Prior art keywords
file
host
data
sectors
memory system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008545919A
Other languages
Japanese (ja)
Inventor
ウェルシュ シンクレア,アラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Corp
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/300,568 external-priority patent/US20070136553A1/en
Priority claimed from US11/302,764 external-priority patent/US7877540B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2009519555A publication Critical patent/JP2009519555A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Abstract

ホストによって論理アドレス範囲にマッピングされるファイルは、メモリシステムへ送信される前に論理的に断片化される。その後、論理的に断片化した部分はメモリシステムのブロックに格納されるときに再度組み立てられる。ホストはデータの送信に先立ち、データのファイル−論理マッピングに関する情報をメモリシステムに提供する。メモリは、データが属するファイルに基づきデータの格納位置を選択する。  Files that are mapped to logical address ranges by the host are logically fragmented before being sent to the memory system. The logically fragmented parts are then reassembled when stored in a block of the memory system. Prior to data transmission, the host provides the memory system with information about the file-to-logical mapping of the data. The memory selects a data storage position based on the file to which the data belongs.

Description

本願は、半導体フラッシュメモリ等の再プログラム可能な不揮発性メモリシステムの動作に関し、より具体的にはそのようなメモリ内におけるデータの管理に関する。本願明細書で参照する特許、特許出願、記事、その他の出版物、文書、事柄はいずれも、あらゆる目的のためにその全体が本願明細書において参照により援用されている。   This application relates to the operation of a reprogrammable non-volatile memory system such as a semiconductor flash memory, and more specifically to the management of data in such a memory. All patents, patent applications, articles, other publications, documents and matters referenced 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 a standard amount of disk drive sector data, ie 512 bytes. More usually, an additional amount, such as 16 bytes, to store an error correction code (ECC) and possibly other 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 one data sector and the number of memory cells that store overhead data when overhead data is included. US Pat. Nos. 5,602,987 (Patent Document 1) and 6,426,893 (Patent Document 2) describe examples of this type of memory system. As a feature of flash memory, memory cells must be erased before data can be reprogrammed into them.

フラッシュメモリシステムは多くの場合、パーソナルコンピュータやカメラ等、様々なホストに着脱可能な状態で接続するメモリカードまたはフラッシュドライブの形で提供されるが、そのようなホストシステムの中に埋め込まれることもある。ホストは通常、メモリへデータを書き込むときに、メモリシステムの連続する仮想アドレス空間の中でセクタ、クラスタ、またはその他のデータ単位に一意な論理アドレスを割り当てる。ホストは、ディスクオペレーティングシステム(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 writes data to memory, it typically 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. As the host updates or replaces data in logical sectors, several data sectors in the block are often used up. Since the entire block must be erased before it can be overwritten, the new or updated data is usually stored in a separate block that has been previously erased and has room for the 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 of the effective partial block by copying it to the erased block, and in this way, the block corresponding to the data copy source Can be deleted and the entire storage capacity can be reused. It is also desirable to copy the data in order to group the data sectors in the block in the order of their logical addresses, which increases the speed at which the data is read and the read data is 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 when the storage capacity of the memory is not very different from the amount of data addressed by the host through the system's logical address space, that is often the case. 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 block size has increased through the generational changes in memory systems. Blocks that store more than 256 data sectors are becoming common. In addition, two, four, or more blocks of different arrays or subarrays are often logically linked together as metablocks to increase the degree of parallelism in programming and reading data. Such a large-capacity operation unit involves the problem of operating the memory system efficiently.

従来の一般的なホストとメモリシステムとの間のインターフェイスは、メモリによって格納されるデータセクタに論理アドレス方式を使用する。しかし、ホストファイルは論理アドレス空間にマッピングされるときにしばしば論理的に断片化し、その結果、メモリアレイの中で広く分散する。この場合、メモリアレイ内のブロックは多数のファイルの部分を収容し、しばしば有効データと用済みデータがそこに混在するから、メモリアレイの管理はより困難となる。用済みデータで占められた空間を再生するため、場合によっては大量の有効データをコピーする必要がある。
米国特許第5,602,987号 米国特許第6,426,893号 米国特許出願第10/915,039号 米国特許第5,570,315号 米国特許第5,774,397号 米国特許第6,046,935号 米国特許第6,373,746号 米国特許第6,456,528号 米国特許第6,522,580号 米国特許第6,771,536号 米国特許第6,781,877号 米国公開特許出願第2003/0147278号 米国公開特許出願第2003/0109093号 米国特許第6,763,424号 米国特許出願第10/749,831号 米国特許出願第10/750,155号 米国特許出願第10/917,888号 米国特許出願第10/917,867号 米国特許出願第10/917,889号 米国特許出願第10/917,725号 米国特許出願第10/749,189号 米国特許出願第10/841,118号 米国特許出願第11/016,271号 米国特許出願第10/897,049号 米国特許出願第11/022,369号 米国特許出願第11/060,174号 米国特許出願第11/060,248号 米国特許出願第11/060,249号 仮米国特許出願第60/705,388号 米国特許出願第11/196,869号 米国特許出願第11/259,423号
The conventional interface between a typical host and a memory system uses a logical addressing scheme for data sectors stored by the memory. However, host files are often logically fragmented when mapped to a logical address space and as a result are widely distributed within the memory array. In this case, the blocks in the memory array contain a large number of file parts, and valid data and used data are often mixed there, making management of the memory array more difficult. In order to reclaim the space occupied by used data, it is sometimes necessary to copy a large amount of valid data.
US Pat. No. 5,602,987 US Pat. No. 6,426,893 US patent application Ser. No. 10 / 915,039 US Pat. No. 5,570,315 US Pat. No. 5,774,397 US Pat. No. 6,046,935 US Pat. No. 6,373,746 US Pat. No. 6,456,528 US Pat. No. 6,522,580 US Pat. No. 6,771,536 US Pat. No. 6,781,877 US Published Patent Application No. 2003/0147278 US Published Patent Application No. 2003/0109093 US Pat. No. 6,763,424 US patent application Ser. No. 10 / 749,831 US patent application Ser. No. 10 / 750,155 US patent application Ser. No. 10 / 917,888 US patent application Ser. No. 10 / 917,867 US patent application Ser. No. 10 / 917,889 US patent application Ser. No. 10 / 917,725 US patent application Ser. No. 10 / 749,189 US patent application Ser. No. 10 / 841,118 US patent application Ser. No. 11 / 016,271 US patent application Ser. No. 10 / 897,049 US Patent Application No. 11 / 022,369 US Patent Application No. 11 / 060,174 US Patent Application No. 11 / 060,248 US patent application Ser. No. 11 / 060,249 Provisional US Patent Application No. 60 / 705,388 US patent application Ser. No. 11 / 196,869 US Patent Application No. 11 / 259,423

本発明の一実施形態によるメモリシステムは、論理アドレス方式を使用するホストからデータを受信する。ホストはまず、ホストファイルを論理アドレス空間にマッピングする。次いで、ホストは、ある特定のホストデータセクタが割り当てられたファイルがどれかを指示する信号をメモリシステムに提供する。その後、ホストデータセクタを受信したメモリシステムは、あらかじめ受信しておいた割り当て情報をもとにホストデータセクタの格納位置を判断する。具体的に、メモリシステムは同じホストファイルのセクタをメモリアレイの同じメタブロックに格納する。かくして、ファイルは複数のメタブロックを占めることがある。また、ホストは、ホストファイルの終端が送信済みであることを合図し、これを受けてメモリシステムはファイルを閉じ、ファイルの格納効率を上げるための操作を遂行できる。   A memory system according to an embodiment of the present invention receives data from a host using a logical address scheme. The host first maps the host file to the logical address space. The host then provides a signal to the memory system indicating which file is assigned a particular host data sector. Thereafter, the memory system that has received the host data sector determines the storage location of the host data sector based on the allocation information received in advance. Specifically, the memory system stores the same host file sector in the same metablock of the memory array. Thus, a file may occupy multiple metablocks. In addition, the host signals that the end of the host file has been transmitted, and in response to this, the memory system can perform an operation for closing the file and increasing the storage efficiency of the file.

ホストがデータセクタの割り当てをメモリシステムに通知する通知方式ではディレクトリセクタとFATセクタを使用するので、この通知方式の信号は従来の論理インターフェイスに適合する。具体的に、新規ファイルの先頭はファイルの第1のクラスタを指示するディレクトリセクタによって識別される。次いで、そのクラスタのセクタが送信され、新規メタブロックに格納される。前の受信済みクラスタに論理的に連続するクラスタは、前のクラスタと同じファイルのものと仮定できる。ホストは、前のクラスタと同じファイルのものではない新規クラスタを送信するときに、その変化を指示する。新規クラスタが新規ホストファイルのものならば(これまでこのファイルのセクタは送信されたことがなく、したがってファイルのための開放メタブロックは存在しない)、ホストは新規ファイルの先頭を指示するディレクトリセクタを送信する。新規クラスタが開放ファイルのものならば(これまでこのファイルのセクタは送信されたことがあり、ファイルのための1つ以上のメタブロックに格納されている)、ホストは開放ファイルの前のクラスタのFAT項目と新規クラスタのポインタを含むFATセクタを送信する。ホストはファイル割り当て情報を伝える信号を送信するほかに、ファイルの終端を指示するFATセクタを送信できる。そのようなFATセクタはファイルの最終クラスタの項目を含み、ファイルの終端を指示する。FATおよびディレクトリ情報を不揮発性メモリに格納する従来の方式と違い、この方式は、割り当て情報を、それが言及するところのホストデータを送信する前に送信する。ほとんどの従来方式は、ホストからFATセクタとディレクトリセクタとして送信される割り当て情報をメモリシステムで使用するようにはなっていない。   Since the notification method in which the host notifies the allocation of the data sector to the memory system uses the directory sector and the FAT sector, the signal of this notification method is compatible with the conventional logical interface. Specifically, the beginning of a new file is identified by a directory sector that points to the first cluster of the file. The sectors of that cluster are then transmitted and stored in the new metablock. A cluster that is logically contiguous to the previous received cluster can be assumed to be of the same file as the previous cluster. When the host sends a new cluster that is not in the same file as the previous cluster, it will indicate the change. If the new cluster is for a new host file (the sector of this file has never been sent, so there is no free metablock for the file), the host will change the directory sector to indicate the beginning of the new file. Send. If the new cluster is for an open file (the sector of this file has been sent so far and is stored in one or more metablocks for the file), the host Send a FAT sector containing a FAT entry and a pointer to the new cluster. In addition to transmitting a signal that conveys file allocation information, the host can transmit a FAT sector that indicates the end of the file. Such a FAT sector contains an entry for the last cluster of the file and indicates the end of the file. Unlike conventional schemes that store FAT and directory information in non-volatile memory, this scheme transmits allocation information before transmitting the host data it refers to. Most conventional systems do not use allocation information transmitted from the host as FAT sectors and directory sectors in the memory system.

メモリシステムはある特定のホストファイルのデータの結び付きを保つため、ホストから提供されるファイル割り当て情報を役立てることができる。ホストファイルはホストによって論理アドレス範囲にマッピングされるときに論理的に断片化することがあるが、メモリシステムはこのマッピングに関する情報をもとにファイルのデータを専用ブロックに格納できる。この場合、ホストが新規ファイルの先頭を指示すると新規ブロックが開放する。その後、そのブロックのものと指示されるデータは同じメタブロックに格納される。必要に応じ、そのファイルのためのさらなるメタブロックを開放する。最終的にはホストがファイルの終端を指示するか、さもなくばメモリシステムが他の何らかの理由によりファイルを閉じる。この時点で、ホストファイルのデータで部分的にのみ満たされたメタブロックがあるならば、共通ブロックにて、その残余のデータを他のファイルの同様の残余データと併合できる。ファイルの大半は専用メタブロックの中にあるから、その後ホストがファイルを削除する場合は(ディレクトリセクタ、またはその他によって指示される)、有効データをほんのわずかコピーするだけでファイルで占められた空間を容易に回復できる。また、ホストは、電力が間もなく停止することを通知方式によってメモリシステムに知らせることができるから、メモリシステムは停電に向けて準備できる(例えば、揮発性メモリの中にあるデータを不揮発性メモリに格納する)。また、ホストは、電力が維持されることを通知方式によってメモリシステムに知らせることができるから、メモリシステムは再生操作等のハウスキーピング操作を遂行できる。   The memory system can use the file allocation information provided by the host to keep the data associated with a particular host file. Although the host file may be logically fragmented when mapped to a logical address range by the host, the memory system can store the data of the file in a dedicated block based on the information regarding this mapping. In this case, the new block is released when the host indicates the beginning of the new file. Thereafter, the data indicated as that block is stored in the same metablock. If necessary, free further metablocks for the file. Eventually the host will indicate the end of the file, or the memory system will close the file for some other reason. At this point, if there is a metablock that is only partially filled with host file data, the remaining data can be merged with similar remaining data in other files in a common block. Since most of the files are in a dedicated metablock, if the host subsequently deletes the file (directed by a directory sector, or otherwise), the space occupied by the file can be saved with only a small copy of valid data. It can be recovered easily. In addition, the host can inform the memory system that power will soon be stopped by a notification method, so the memory system can prepare for a power outage (eg, store data in volatile memory in non-volatile memory) To do). In addition, since the host can notify the memory system that power is maintained, the memory system can perform a housekeeping operation such as a reproduction operation.

フラッシュメモリの概説
現在のフラッシュメモリシステムと、ホストデバイスとの典型的な動作とを、図1〜図7との関係で説明する。そのようなシステムで本発明の様々な態様を実装できる。図1のホストシステム1は、フラッシュメモリ2の中にデータを格納し、フラッシュメモリ2からデータを引き出す。フラッシュメモリはホストの中に埋め込むこともできるが、メモリ2はそれよりも一般的なカードの形で示され、このカードは、機械および電気コネクタの嵌合部分3および4を通じて着脱可能な状態でホストへ接続される。例えばコンパクトフラッシュ(CF)、マルチメディアカード(MMC)、セキュアデジタル(SD)、ミニSD、メモリスティック、スマートメディア、トランスフラッシュカード等、様々なフラッシュメモリカードが現在市販されている。これらのカードの各々はそれぞれの規格化された仕様に従い独特の機械的および/または電気的インターフェイスを有するが、各々に内蔵されたフラッシュメモリシステムはよく似ている。これらのカードはいずれも、本願の譲受人であるサンディスク コーポレイションから入手できる。また、サンディスク
コーポレイションは、そのクルーザー(Cruzer)という商標のもとで一連のフラッシュドライブを提供し、フラッシュドライブは、ホストのユニバーサル・シリアル・バス(USB)差込口に差し込まれることによってホストと接続するUSBプラグを有する小形の手持ち式メモリシステムである。これらのメモリカードとフラッシュドライブの各々は、ホストと連係して内蔵されたフラッシュメモリの動作を制御するコントローラを内蔵する。
Overview of Flash Memory A typical flash memory system and typical operation with a host device will be described with reference to FIGS. Various aspects of the invention can be implemented in such a system. The host system 1 in FIG. 1 stores data in the flash memory 2 and extracts data from the flash memory 2. The flash memory can be embedded in the host, but the memory 2 is shown in the form of a more general card, which is detachable through mating parts 3 and 4 of mechanical and electrical connectors. Connected to the host. For example, various flash memory cards such as compact flash (CF), multimedia card (MMC), secure digital (SD), mini SD, memory stick, smart media, and trans flash card are currently available on the market. Although each of these cards has a unique mechanical and / or electrical interface according to their respective standardized specifications, the flash memory system built into each is very similar. All of these cards are available from SanDisk Corporation, the assignee of the present application. SanDisk Corporation also provides a series of flash drives under its Cruiser trademark, which are connected to the host by plugging into the host's universal serial bus (USB) port. A small handheld memory system with a USB plug to connect to. Each of these memory cards and flash drives incorporates a controller that controls the operation of the built-in flash memory in cooperation with the host.

そのようなメモリカードとフラッシュドライブとを使用するホストシステムは数多くあり様々である。これにはパーソナルコンピュータ(PC)、ラップトップをはじめとする携帯用コンピュータ、携帯電話機、個人用携帯情報端末(PDA)、デジタル静止画カメラ、デジタル動画カメラ、携帯用オーディオプレイヤ等が含まれる。ホストは通常ならば1種類以上のメモリカードまたはフラッシュドライブのための一体化された差込口を内蔵するが、メモリカードを差し込むアダプタを必要とするものもある。   There are many host systems that use such memory cards and flash drives. This includes personal computers (PCs), portable computers such as laptops, mobile phones, personal digital assistants (PDAs), digital still image cameras, digital video cameras, and portable audio players. Hosts usually have an integrated socket for one or more types of memory cards or flash drives, but some require an adapter to plug in a memory card.

図1のホストシステム1は、メモリ2が考慮される限りにおいて、回路とソフトウェアとの組み合わせからなる、2つの主要部分を有するものとみなすことができる。それらはアプリケーション部5と、メモリ2と連係するドライバ部6である。例えばパーソナルコンピュータの場合、アプリケーション部5は、ワープロ、グラフィック、コントロール、その他一般的なアプリケーションソフトウェアを実行するプロセッサを含むことがある。カメラ、携帯電話機、または専ら1セットの機能を遂行するその他のホストシステムの場合、アプリケーション部5は、写真を撮影したり格納したりするためのカメラを動作させるソフトウェアや、電話をかけたり受けたりするための携帯電話機を動作させるソフトウェア等を含む。   As long as the memory 2 is considered, the host system 1 of FIG. 1 can be regarded as having two main parts consisting of a combination of a circuit and software. They are an application unit 5 and a driver unit 6 linked to the memory 2. For example, in the case of a personal computer, the application unit 5 may include a processor that executes word processing, graphics, control, and other general application software. In the case of a camera, mobile phone, or other host system that performs a single set of functions, the application unit 5 may be software that operates the camera for taking and storing pictures, and making and receiving calls. Software for operating a mobile phone to perform the operation.

図1のメモリシステム2はフラッシュメモリ7と回路8とを含み、それら回路はいずれも、データをやり取りするため、そしてメモリ7を制御するため、カードの接続先にあたるホストと連係する。コントローラ8は通常、データのプログラミングと読み出し中にホスト1によって使用されるデータの論理アドレスとメモリ7の物理アドレスとの変換を行う。   The memory system 2 of FIG. 1 includes a flash memory 7 and a circuit 8, all of which are linked to a host that is a connection destination of a card in order to exchange data and to control the memory 7. The controller 8 typically translates between the logical address of the data used by the host 1 and the physical address of the memory 7 during data programming and reading.

図2を参照すると、図1の不揮発性メモリ2として使用できる典型的なフラッシュメモリシステムの回路が記載されている。システムコントローラは通常、システムバス13沿いに1つ以上の集積回路メモリチップと並列に接続される単一集積回路チップ11上で実装され、図2にはただ1つのそのようなメモリチップ15が示されている。図に示された特定のバス13は、データを搬送する別個の1セットの導体17と、メモリアドレスのためのセット19と、制御および状態信号のためのセット21とを含む。あるいは、これらの3機能の間で1セットの導体を時分割共用できる。さらに、2004年8月9日に出願された「Ring Bus Structure and Its Use in Flash Memory Systems」という米国特許出願第10/915,039号(特許文献3)に記載されているリングバス等、これとは別のシステムバス構成を使用できる。   Referring to FIG. 2, a circuit of a typical flash memory system that can be used as the nonvolatile memory 2 of FIG. 1 is described. The system controller is typically implemented on a single integrated circuit chip 11 connected in parallel with one or more integrated circuit memory chips along the system bus 13, and only one such memory chip 15 is shown in FIG. Has been. The particular bus 13 shown in the figure includes a separate set of conductors 17 that carry data, a set 19 for memory addresses, and a set 21 for control and status signals. Alternatively, one set of conductors can be shared in time division among these three functions. Further, a ring bus described in US Patent Application No. 10 / 915,039 (Patent Document 3) entitled “Ring Bus Structure and Its Use in Flash Memory Systems” filed on August 9, 2004, and the like. A different system bus configuration can be used.

典型的なコントローラチップ11は、インターフェイス回路25を通じてシステムバス13と連係する独自の内部バス23を有する。このバスへ通常接続される主要機能には、プロセッサ27(マイクロプロセッサまたはマイクロコントローラ)と、システムを初期化(「ブート」)するためのコードを収容する読み出し専用メモリ(ROM)29と、主にメモリとホストとの間で転送されるデータをバッファするために使われるランダムアクセスメモリ(RAM)31と、コントローラを通じてメモリとホストとの間を行き来するデータのための誤り訂正符号(ECC)を計算し検査する回路33とがある。コントローラバス23は回路35を通じてホストシステムと連係し、これは、メモリカードに内蔵される図2のシステムの場合、コネクタ4の一部をなすカードの外部接点37を通じて果たされる。クロック39は、コントローラ11の他のコンポーネントの各々に接続され、他のコンポーネントの各々によって利用される。   A typical controller chip 11 has its own internal bus 23 that interfaces with the system bus 13 through an interface circuit 25. The main functions normally connected to this bus include a processor 27 (microprocessor or microcontroller), a read only memory (ROM) 29 that contains code for initializing ("booting") the system, and mainly Random access memory (RAM) 31 used to buffer data transferred between the memory and the host, and an error correction code (ECC) for data going back and forth between the memory and the host through the controller And a circuit 33 for inspecting. The controller bus 23 communicates with the host system through a circuit 35, which is accomplished through the card's external contacts 37 which form part of the connector 4 in the case of the system of FIG. The clock 39 is connected to each of the other components of the controller 11 and is used by each of the other components.

メモリチップ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がただ1つのメモリセルアレイを有し、2つ以上のそのようなチップがシステムに存在する場合、各チップのアレイは、前述したマルチプレーンチップ内のプレーンまたはサブアレイと同様に動作させることができる。   Memory chip 15 and other memory chips connected to system bus 13 typically contain a memory cell array organized into a plurality of subarrays or planes, and two such planes 41 and 43 are shown for simplicity. However, more such, for example, 4 or 8 such planes could be used instead. Alternatively, the memory cell array of the chip 15 may not be divided into planes. However, if divided, each plane has its own column control circuits 45 and 47 that can operate independently of each other. The circuits 45 and 47 receive the addresses of the respective memory cell arrays from the address section 19 of the system bus 13 and decode them to address one or more specific bit lines of the respective bit lines 49 and 51. To do. The word line 53 is addressed through the row control circuit 55 according to the address received by the address bus 19. Source voltage control circuits 57 and 59 are also connected to the respective planes, as are p-well voltage control circuits 61 and 63. If memory chip 15 has only one memory cell array and more than one such chip is present in the system, the array of each chip should be operated in the same way as a plane or sub-array within a multi-plane chip as described above. Can do.

データは、システムバス13のデータ部17に接続されたそれぞれのデータ入出力回路65および67を通じてプレーン41および43を出入りする。回路65および67は、それぞれの列制御回路45および47を通じてプレーンへ接続する線69および71を通じてそれぞれのプレーンのメモリセルの中にデータをプログラムするため、そしてメモリセルからデータを読み出すためにある。   Data enters and exits the planes 41 and 43 through the respective data input / output circuits 65 and 67 connected to the data section 17 of the system bus 13. Circuits 65 and 67 are for programming data into and reading data from the memory cells of each plane through lines 69 and 71 that connect to the plane through respective column control circuits 45 and 47.

コントローラ11は、データをプログラムしたり、読み出したり、消去したり、かつ様々なハウスキーピング作業に応対したりするため、メモリチップ15の動作を制御するが、各々のメモリチップも、そのような機能を遂行するためにコントローラ11からのコマンドを実行する何らかの制御回路を収容する。インターフェイス回路73はシステムバス13の制御/状態部21へ接続される。コントローラからのコマンドは状態マシン75へ提供され、この状態マシンは、これらのコマンドを実行するために他の回路の特定の制御を提供する。制御線77〜81は、図2に示す他の回路に状態マシン75を接続する。状態マシン75からの状態情報は、バス部21に沿ってコントローラ11へ送信するため、線83に沿ってインターフェイス73へ伝達される。   The controller 11 controls the operation of the memory chip 15 for programming, reading, erasing data, and responding to various housekeeping operations. Each memory chip also has such a function. In order to carry out the above, some control circuit for executing a command from the controller 11 is accommodated. The interface circuit 73 is connected to the control / status unit 21 of the system bus 13. Commands from the controller are provided to state machine 75, which provides specific control of other circuits to execute these commands. Control lines 77-81 connect the state machine 75 to the other circuits shown in FIG. The state information from the state machine 75 is transmitted along the line 83 to the interface 73 for transmission to the controller 11 along the bus unit 21.

現在はメモリセルアレイ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 memory cell arrays 41 and 43 is preferred, but other architectures such as NOR can be used instead. An example of a NAND flash memory and its operation as part of a memory system are described in U.S. Pat. Nos. 5,570,315, 5,774,397, and 6,046. No. 935 (Patent Literature 6), No. 6,373,746 (Patent Literature 7), No. 6,456,528 (Patent Literature 8), No. 6,522,580 (Patent Literature 9), No. 6, No. 771,536 (Patent Document 10) and 6,781,877 (Patent Document 11) and US Published Patent Application No. 2003/0147278 (Patent Document 12).

図2のメモリシステムのメモリセルアレイ41の一部分にあたる図3の回路図には、NANDアレイの例が示されている。多数のグローバルビット線が提供されるが、説明の簡潔を図るため、図2では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 memory cell array 41 of the memory system of FIG. A number of global bit lines are provided, but only four such lines 91-94 are shown in FIG. 2 for simplicity of illustration. Several memory cell strings 97 to 104 connected in series are connected between one of these bit lines and the reference potential. The memory cell string 99 is used as a representative, and a plurality of charge storage memory cells 107 to 110 are connected in series to the select transistors 111 and 112 at both ends of the string. When one string of select transistors is energized, the string is connected between its bit line and a reference potential. Then, one memory cell in the string is programmed or read at a time.

図3のワード線115〜118は、数あるメモリセルストリングの各々で1つのメモリセルの電荷蓄積素子にわたって個別に延在し、ゲート119および120は、ストリングの各末端にて選択トランジスタの状態を制御する。共通のワードおよびコントロールゲート線115〜120を共用するメモリセルストリングは、ともに消去されるメモリセルのブロック123を形成する。このセルからなるブロックは、一度に物理的に消去できる最小数のセルを収容する。ワード線115〜118の1ワード線沿いの1行のメモリセルが一度にプログラムされる。通常、NANDアレイの行は規定の順序でプログラムされ、この場合、接地等の共通電位へ接続されたストリングの末端に最も近いワード線118沿いの行から始まる。次いで、ワード線117沿いのメモリセル行がプログラムされ、ブロック123の全体を通じて同様に進む。最後にワード線115沿いの行がプログラムされる。   The word lines 115-118 of FIG. 3 extend individually across the charge storage elements of one memory cell in each of a number of memory cell strings, and gates 119 and 120 indicate the state of the select transistor at each end of the string. Control. Memory cell strings sharing a common word and control gate lines 115-120 form a block 123 of memory cells that are erased together. This block of cells contains the minimum number of cells that can be physically erased at one time. One row of memory cells along one word line of word lines 115 to 118 is programmed at a time. Normally, the rows of the NAND array are programmed in a defined order, starting with the row along the word line 118 closest to the end of the string connected to a common potential such as ground. The memory cell row along word line 117 is then programmed and proceeds similarly throughout block 123. Finally, the row along word line 115 is programmed.

第2のブロック125は類似し、そのメモリセルストリングは第1のブロック123のストリングと同じグローバルビット線へ接続するが、異なるワードおよびコントロールゲート線のセットを有する。ワードおよびコントロールゲート線は、行制御回路55によって適当な動作電圧まで駆動される。図2のプレーン1および2等、2つ以上のプレーンまたはサブアレイがシステムにある場合、それらの間に延在する共通ワード線を1つのメモリアーキテクチャで使用する。あるいは、共通ワード線を共用する3つ以上のプレーンまたはサブアレイがあってもよい。別のメモリアーキテクチャでは、個別のプレーンまたはサブアレイのワード線が別々に駆動される。   The second block 125 is similar and its memory cell string connects to the same global bit line as the string of the first block 123, but has a different set of words and control gate lines. The word and control gate lines are driven to an appropriate operating voltage by the row control circuit 55. If more than one plane or sub-array is present in the system, such as planes 1 and 2 in FIG. 2, a common word line extending between them is used in one memory architecture. Alternatively, there may be more than two planes or subarrays sharing a common word line. In another memory architecture, individual planes or sub-array word lines are driven separately.

前に参照した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 the memory cell is generally a conductive floating gate, but may be a non-conductive dielectric charge trapping material described in US Published Patent Application No. 2003/0109093.

図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 discussion. Of course, there can be other numbers of planes in the system, such as 1, 2, 8, 16 or more. The planes are individually divided into memory cell blocks indicated by rectangles in FIG. 4, such as blocks 137, 138, 139, and 140 located in planes 131 to 134, respectively. Each plane can have dozens or hundreds of blocks. As described above, a block of memory cells is an erasing unit, that is, the minimum number of memory cells that can be physically erased together. However, in order to increase parallelism, the block is operated in units of larger metablocks. One block from each plane is logically linked together to form a metablock. A state in which one metablock 141 is formed by four blocks 137 to 140 is shown. Normally, all cells in one metablock are erased together. As seen in the second metablock 143 consisting of blocks 145-148, the blocks used to form the metablock need not be constrained to the same relative position within each plane. It is usually preferable to extend metablocks across all planes, but for high system performance, dynamically metablocks consisting of one, two, or three blocks in different planes The ability to form can be used to operate the memory system. This makes it possible to make the metablock size closer to the amount of data that can be stored in one programming operation.

個別のブロックはさらに、動作上の目的のため、図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 blocks 131 to 134 is divided into eight pages P0 to P7. Alternatively, there can be 16, 32, or more pages of memory cells in each block. A page is a unit in which data is programmed and read in a block, and contains a minimum amount of data programmed at one time. In the NAND architecture of FIG. 3, a page is formed from memory cells along a word line in a block. However, such pages in more than one block can be logically linked to metapages to increase the operational parallelism of the memory system. FIG. 5 shows a metapage 151 formed from one physical page in each of the four blocks 131 to 134. The metapage 151 includes, for example, a page P2 in each of the four blocks, but the metapage page does not necessarily occupy the same relative position in each block. It is desirable to program and read the maximum amount of data across all four planes in parallel, but for high system performance, either one, two, or three pages of separate blocks in different planes Alternatively, the memory system can be operated to form a metapage from everything. As a result, the programming and reading operations can be adapted to the amount of data that can be easily handled in parallel, and the chance that the portion where the data is not programmed remains in the metapage is reduced.

図5に示す複数のプレーンの物理ページから形成されるメタページは、それらの複数のプレーンのワード線行に沿ってメモリセルを収容する。1つのワード線行にある全てのセルを同時にプログラムするよりも、2つ以上の互い違いのグループでそれらをかわるがわるにプログラムするほうがむしろ一般的であり、各グループは、(単一ブロック内の)1ページのデータまたは(複数のブロックにまたがる)1メタページのデータを格納する。交互のメモリセルを一度にプログラムすることにより、データレジスタやセンス増幅器を含むひとまとまりの周辺回路を各ビット線のために用意する必要はなく、むしろそれらは隣接するビット線によって時分割共用される。これにより周辺回路に要する基板空間の量を節約し、メモリセルの行沿いの実装密度を増すことができる。さもなくば、所与のメモリシステムから最大限の並列性を引き出すため、行沿いの全セルを同時にプログラムするのが望ましい。   A metapage formed from 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 at the same time, it is more common to program them alternately in two or more staggered groups, where each group contains 1 (in a single block) Stores page data or one metapage data (across multiple blocks). By programming alternating memory cells at once, there is no need to provide a single peripheral circuit for each bit line, including data registers and sense amplifiers, rather they are time shared by adjacent bit lines. . As a result, the amount of substrate space required for the peripheral circuit can be saved, and the mounting density along the row of memory cells can be increased. Otherwise, it is desirable to program all cells along a row simultaneously in order to derive maximum parallelism from a given memory system.

図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. 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またはこれの一部分は、他のブロックの別のページに格納できる。   The data amount of each logical page is usually an integer number of data of one sector or more, and each sector conventionally stores 512 bytes of data. FIG. 6 shows a logical data page composed of two sectors 153 and 155 of one page or metapage data. Each sector typically has a portion 157 of 512 bytes of user or system data stored and an additional number of bytes 159 for overhead data relating to either the data in the portion 157 or the physical page or block storing it. To accommodate. The number of bytes of overhead data is normally 16 bytes, for a total of 528 bytes for each of sectors 153 and 155. The overhead portion 159 includes the ECC calculated from the data portion 157 during programming, its logical address, the experience count of the number of times the block has been erased and reprogrammed, one or more control flags, the operating voltage level, and / or the like. In addition, ECC calculated from such overhead data 159 can be accommodated. Alternatively, overhead data 159 or a portion thereof can be stored on another page in another block.

メモリの並列性が高まるにつれメタブロックのデータ格納容量は増加し、その結果、データページおよびメタページのサイズも増す。かくして、データページは3セクタ以上のデータを収容する場合がある。1データページ内に2セクタ、そして各メタページにつき2データページで、1メタページ内のセクタは4つになる。よって、各メタページは2,048バイトのデータを格納する。これは高度な並列度であり、行内のメモリセル数の増加にともないさらに高めることができる。このため、ページおよびメタページ内のデータ量を増やすため、フラッシュメモリの幅は拡大しつつある。本願で説明する多くの例では、消去とプログラミングの単位としてメタブロックとメタページをそれぞれ使用するが、記載されている手法のほとんどは、ブロックとページとが消去とプログラミングの単位となる場合にも等しく当てはまる。同様に、ブロックとページとを使用するメモリシステムに適用される手法は一般に、メタブロックとメタページにも当てはめることができる。   As the memory parallelism increases, the data storage capacity of the metablock increases and, as a result, the size of the data page and metapage also increases. Thus, a data page may contain data of more than 3 sectors. There are two sectors in one data page, and two data pages for each metapage, so there are four sectors in one 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, in order to increase the amount of data in the page and metapage, the width of the flash memory is expanding. Many of the examples described in this application use metablocks and metapages as the units for erasure and programming, respectively, but most of the techniques described also apply when blocks and pages are units for erasure and programming. Equally true. Similarly, techniques applied to memory systems that use blocks and pages can generally be applied to metablocks and metapages.

前に特定した物理的に小さい再プログラム可能な不揮発性メモリカードおよびフラッシュドライブは市販され、データ格納容量は512メガバイト(MB)、1ギガバイト(GB)、2GB、4GBまたはそれ以上にもなる。図7は、ホストとそのような大容量メモリシステムとの間の最も一般的なインターフェイスを示す。ホストは、ホストによって実行されるアプリケーションソフトウェアまたはファームウェアプログラムによって生成または使用されるデータファイルを処理する。ワープロデータファイルはその一例であり、コンピュータ支援設計(CAD)ソフトウェアの描画ファイルもこれにあたり、主にPC、ラップトップコンピュータ等、一般的なコンピュータホストに見られる。pdf形式の文書もそのようなファイルである。静止画デジタルビデオカメラは写真ごとにデータファイルを生成し、データファイルはメモリカードに格納される。携帯電話機は、電話帳等、内蔵メモリカード上のファイルからデータを利用する。PDAは、住所ファイル、カレンダーファイル等、数通りのファイルを格納し使用する。そのような用途において、メモリカードはホストを操作するソフトウェアを収容することもある。   The previously identified physically small reprogrammable non-volatile memory cards and flash drives are commercially available, with data storage capacity of 512 megabytes (MB), 1 gigabyte (GB), 2 GB, 4 GB or more. FIG. 7 shows the most common 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 such a file. The still picture digital video camera generates a data file for each photo, 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.

メモリシステム、特に着脱可能なカードに埋め込まれるメモリシステムは、標準インターフェイスを通じて様々なホストと通信することができる。メモリシステムとの通信にあたってホストが使用するインターフェイスはホストによって異なることがある。インターフェイスには、共通論理アドレス空間を有する論理アドレシングシステムを使用するものと、ファイル本位アドレシングシステムを使用するものとの2種類がある。   Memory systems, particularly those embedded in removable cards, can communicate with various hosts through standard interfaces. The interface used by the host to communicate with the memory system may vary from host to host. There are two types of interfaces: those using a logical addressing system having a common logical address space, and those using a file-oriented addressing system.

論理アドレシング
図7には、ホストとメモリシステムとの間の一般的な論理インターフェイスが示されている。連続する論理アドレス空間161は、メモリシステムに格納される全てのデータのためのアドレスを提供するにあたって十分に大きい。ホストアドレス空間は通常、データクラスタの単位に分割される。所与のホストシステムにおいて、数セクタのデータを収容するように各クラスタを設計でき、4〜64セクタあたりが一般的である。標準的なセクタは512バイトのデータとある程度のオーバーヘッドデータとを収容する。
Logical Addressing FIG. 7 shows a general logical interface between a host and a memory system. The contiguous logical address space 161 is large enough to provide an address for all data stored in the memory system. The host address space is usually divided into data cluster units. In a given host system, each cluster can be designed to accommodate several sectors of data, typically around 4 to 64 sectors. A standard sector contains 512 bytes of data and some overhead data.

図7の例では、3つのデータファイル1、2、および3が作成されたものとして示されている。ホストシステムで実行するアプリケーションプログラムは、整列された1セットのデータとして各ファイルを作成し、一意な名前またはその他の参照符によってこれを識別する。ファイル1にはホストによって、他のファイルにまだ割り振られていない十分に使用可能な論理アドレス空間が割り当てられる。ファイル1は、一連の使用可能な論理アドレス範囲が割り当てられた状態で示されている。この他に通常ならば、ホストオペレーティングソフトウェアのための特定の範囲等、特定の目的のためにアドレス範囲が割り振られ、それらは、たとえホストがデータに論理アドレスを割り当てるときにこれらのアドレスがまだ利用されていなくとも、データの格納にあたって回避される。   In the example of FIG. 7, three data files 1, 2, and 3 are shown as created. An application program running on the host system creates each file as an ordered set of data and identifies it by a unique name or other reference. File 1 is assigned by the host a fully usable logical address space that has not yet been allocated to other files. File 1 is shown with a series of available logical address ranges assigned. Besides this, address ranges are usually allocated for specific purposes, such as specific ranges for the host operating software, and they are still available when the host assigns logical addresses to the data. Even if not, it is avoided when storing data.

ホストは同様に、後ほどホストによってファイル2が作成されるときに、論理アドレス空間161の中の2つの異なる隣接したアドレス範囲を、図7に示すように、割り当てる。隣接する論理アドレスをファイルに割り当てる必要はなく、既に他のファイルに割り振られているアドレス範囲の間にあるアドレスの断片であってもよい。この例はさらに、ホストによって作成されたもう1つのファイル3に、ファイル1および2やその他のデータにまだ割り振られていないホストアドレス空間の別の部分が割り振られる様子を示している。この例で、ファイル1と、ファイル2と、ファイル3はいずれも、共通の論理アドレス空間(論理アドレス空間161)の一部分に割り当てられる。   The host similarly assigns two different adjacent address ranges in the logical address space 161 as shown in FIG. 7 when file 2 is created later by the host. Adjacent logical addresses need not be assigned to files, but may be fragments of addresses that are between address ranges already assigned to other files. This example further shows that another file 3 created by the host is allocated another portion of the host address space that has not yet been allocated to files 1 and 2 and other data. In this example, file 1, file 2, and file 3 are all assigned to a part of a common logical address space (logical address space 161).

ホストは、ファイルアロケーションテーブル(FAT)とディレクトリを保守することによってメモリ論理アドレス空間を絶えず把握し、ホストが様々なホストファイルに割り当てる論理アドレスは保守される。ディレクトリとFATは通常、ホストメモリのほかに不揮発性メモリにも格納され、新規ファイルが格納されたり、他のファイルが削除されたり、ファイルが修正されたりするとき等に、ホストによって頻繁に更新される。ホストは、例えばホストファイルが削除されるときにディレクトリとFATテーブルを更新することによって削除ファイルに割り振られていた論理アドレスを解除して、それらの論理アドレスを別のデータファイルに使用できることを明らかにする。場合によってはファイルが削除されるときにディレクトリだけが更新され、用済みデータクラスタのFAT項目は存続する。FATで使われる論理アドレスは論理ブロックアドレス(LBA)と呼ばれることがあり、異なるファイルのデータにとって共通に使用される論理アドレス空間にわたってそのような論理アドレシングを使用するインターフェイスはLBAインターフェイスと呼ばれることがある。   The host keeps track of the memory logical address space by maintaining file allocation tables (FAT) and directories, and the logical addresses that the host assigns to various host files are maintained. Directories and FATs are usually stored in non-volatile memory in addition to host memory and are frequently updated by the host when new files are stored, other files are deleted, files are modified, etc. The Reveals that the host can release the logical address assigned to the deleted file, for example by updating the directory and FAT table when the host file is deleted, and use those logical addresses for another data file To do. In some cases, only the directory is updated when the file is deleted, and the FAT entry of the used data cluster persists. A logical address used in FAT is sometimes referred to as a logical block address (LBA), and an interface that uses such logical addressing across a logical address space commonly used for data in different files is sometimes referred to as an LBA interface. .

ホストは、メモリシステムコントローラがファイルを格納するために選択する物理位置を顧慮しない。典型的なホストは、その論理アドレス空間と、これがその各種ファイルに割り振った論理アドレスだけを認識する。他方、メモリシステムは、典型的なホスト/カードインターフェイスを通じて、データが書き込まれた論理アドレス空間部分だけを認識し、特定のホストファイルへ割り振られる論理アドレスは認識せず、ホストファイルの数すら認識しない。メモリシステムコントローラは、データの格納や引き出しのためのホストから提供される論理アドレスを、ホストデータが格納されるフラッシュメモリセルアレイの中の一意な物理アドレスに変換する。ブロック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 the host for storing and retrieving data into a unique physical address in the flash memory cell array in which the host data is stored. Block 163 represents these logical-to-physical address translation work tables maintained by the memory system controller.

メモリシステムコントローラは、システムの性能を高い水準に維持しながらメモリアレイ165のブロックおよびメタブロックの中でデータファイルを格納するようにプログラムされる。この例証では4つのプレーンまたはサブアレイが使われている。データは好ましくは、各プレーンのブロックから形成されたメタブロック全体にわたって、システムが許す最大限の並列度でプログラムされ、読み出される。通常は、メモリコントローラによって使用されるオペレーティングファームウェアおよびデータを格納する予約ブロックとして、少なくとも1つのメタブロック167が割り振られる。ホストオペレーティングソフトウェアやホストFATテーブル等の格納のため、別のメタブロック169または複数のメタブロックを割り振ることができる。物理格納空間のほとんどはデータファイルの格納のために残る。しかし、メモリコントローラは、様々なファイルオブジェクトにおいて受信データがホストによってどのように割り振られたかを通常認識しない。通常、メモリコントローラがホストとのやり取りを通じて認識することの全ては、ホストによって特定の論理アドレスに書き込まれるデータが対応する物理アドレスに格納されるということだけであり、これはコントローラの論理−物理アドレステーブル163によって保守される。   The memory system controller is programmed to store data files in blocks and metablocks of the memory array 165 while maintaining high system performance. In this illustration, four planes or subarrays are used. The data is preferably programmed and read across the entire metablock formed from the blocks in each plane with the maximum degree of parallelism allowed by the system. Normally, at least one metablock 167 is allocated as a reserved block for storing operating firmware and data used by the memory controller. Another metablock 169 or multiple metablocks can be allocated for storage of host operating software, host FAT table, and the like. Most of the physical storage space remains for storing data files. However, the memory controller normally does not recognize how the received data is allocated by the host in the various file objects. Normally, all the memory controller recognizes through interaction with the host is that the data written by the host to a specific logical address is stored at the corresponding physical address, which is the logical-physical address of the controller Maintained by table 163.

典型的なメモリシステムにおいて、アドレス空間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 the amount of data in the address space 161. One or more of these extra blocks can be prepared as redundant blocks to be substituted when other blocks fail during the lifetime of the memory. The logical grouping of blocks contained in individual metablocks typically changes for various reasons, such as substituting redundant blocks for defective blocks that were originally assigned to metablocks. An erased block pool typically maintains one or more additional blocks, such as metablock 171. When the host writes data to the memory system, the controller translates the logical address assigned by the host into a physical address in a metablock in the erased block pool. Next, other metablocks not used for data storage in the logical address space 161 are erased and designated as erased pool blocks for use in subsequent data write operations.

特定のホスト論理アドレスに格納されたデータは、元の格納データが用済みになると、新規データによって頻繁に上書きされる。これに応じてメモリシステムコントローラは新規データを消去済みブロックに書き込み、論理アドレスでデータを格納する新規の物理ブロックを明らかにするため、それらの論理アドレスの論理−物理アドレステーブルを変更する。次いで、それらの論理アドレスで元のデータを収容するブロックは消去され、新規データの格納のために使用できるようになる。通常、書き込みが始まるときに消去ブロックプールの消去済みブロックに十分な格納容量がない場合、この消去はしばしば、最新のデータ書き込み操作が完了する前に行わなければならない。これはシステムのデータプログラミング速度を損なうおそれがある。メモリコントローラは通常、ある所与の論理アドレスにあるデータが用済みになっていることを、ホストがそれと同じ論理アドレスに新規データを書き込むときに初めて知る。したがって、メモリのブロックの多くは、そのような無効データを暫くの間格納することがある。   Data stored at a specific host logical address is frequently overwritten with new data when 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 blocks containing the original data at those logical addresses are then erased and made available for storing new data. Typically, if the erased block of the erase block pool does not have enough storage capacity when writing begins, this erasure often must occur before the most recent data write operation is completed. This can compromise the data programming speed of the system. A memory controller typically knows that data at a given logical address is obsolete only when the host writes new data to that same logical address. Thus, many blocks of memory may store such invalid data for some time.

集積回路メモリチップの領域を効率よく使用するためのブロックとメタブロックのサイズは拡大している。その結果、個別データ書き込みの大部分で格納されるデータ量はメタブロックの格納容量に満たなく、多くの場合、ブロックの格納容量にすら満たない。メモリシステムコントローラは通常、新規データを消去済みプールのメタブロックへ誘導するから、メタブロックには埋まらない部分が生じる。新規データが別のメタブロックに格納されたデータの更新にあたる場合、その別のメタブロックにある、新規データメタページの論理アドレスと隣接する論理アドレスを持つ、残りの有効データメタページもまた、望ましくは論理アドレスの順序で新規メタブロックにコピーされる。古いメタブロックは他の有効データメタページを保持することがある。その結果、個別メタブロックの一部のメタページのデータはいずれ用済み、無効となり、同じ論理アドレスを持つ新規データに置き換えられ、別のメタブロックに書き込まれる。   The sizes of blocks and metablocks for efficiently using the area of the integrated circuit memory chip are increasing. As a result, the amount of data stored in most of the individual data writing is less than the storage capacity of the metablock, and in many cases, not even the storage capacity of the block. Since the memory system controller typically 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 metapage in the other metablock with a logical address adjacent to the logical address of the new data metapage is also desirable. Are copied to the new metablock in logical address order. Old metablocks may hold other valid data metapages. As a result, some metapage data of the individual metablock will eventually be used or invalidated, replaced with new data having the same logical address, and written to another metablock.

論理アドレス空間161の全体にわたってデータ格納のために十分な物理メモリ空間を維持するため、そのようなデータは定期的に圧縮または整理される(ガーベッジコレクション)。メタブロックの中でデータセクタをできる限り論理アドレスと同じ順序に保つことも望ましく、なぜならこうすれば連続する論理アドレスでデータをより効率的に読み出すことができるからである。よって、通常は、このさらなる目的のためにもデータの圧縮とガーベッジコレクションが行われる。米国特許第6,763,424号(特許文献14)には、部分的ブロックデータ更新を受け取るときのメモリ管理とメタブロック使用の態様がいくつか記載されている。   In order to maintain sufficient physical memory space for data storage throughout the logical address space 161, such data is periodically compressed or organized (garbage collection). It is also desirable to keep the data sectors in the metablock in the same order as the logical addresses as much as possible because this allows more efficient reading of data at successive logical addresses. Thus, data compression and garbage collection are usually performed for this additional purpose. US Pat. No. 6,763,424 describes several aspects of memory management and metablock usage when receiving partial block data updates.

データ圧縮では通常、メタブロックから有効データメタページを全て読み出し、それらを新規メタブロックに書き込み、その過程で無効データを含むメタページは無視する。また、有効データを含むメタページは好ましくは、そこに格納されたデータの論理アドレスの順序に一致する物理アドレスの順序に配置される。無効データを収容するメタページは新規メタブロックへコピーされないから、新規メタブロックに占めるメタページ数は古いメタブロックにおけるメタページ数を下回る。次いで、古いブロックは消去され、新規データの格納のために使用できるようになる。この整理によって得られる追加メタページ容量は、他のデータの格納に役立てることができる。   Data compression typically reads all valid data metapages from a metablock, writes them to a new metablock, and ignores metapages that contain invalid data in the process. Also, metapages containing valid data are preferably arranged in a physical address order that matches the logical address order of the data stored therein. Since metapages containing invalid data are not copied to the new metablock, the number of metapages in the new metablock is less than the number of metapages in the old metablock. The old block is then erased and can be used to store new data. The additional metapage capacity obtained by this arrangement can be used to store other data.

ガーベッジコレクション中に、論理アドレスが隣接するかほぼ隣接する有効データのメタページが2つ以上のメタブロックから回収され、別のメタブロック、通常ならば消去済みブロックプールのメタブロックに書き換えられる。元の2つ以上のメタブロックから全ての有効データメタページがコピーされたら、先々の使用に向けてそれらを消去できる。   During garbage collection, a metapage of valid data that is adjacent or nearly adjacent to a logical address is retrieved from two or more metablocks and rewritten to another metablock, usually an erased block pool metablock. Once all valid data metapages have been copied from the original two or more metablocks, they can be deleted for future use.

データの整理とガーベッジコレクションには時間がかかり、データの整理またはガーベッジコレクションをホストからのコマンドを実行する前に行う必要がある場合は特に、メモリシステムの性能に影響する。メモリシステムコントローラは通常、そのような操作を可能な限りバックグラウンドで行うようにスケジュールするが、これらの操作を遂行する必要から、コントローラは、そのような操作が完了するまではビジーステータス標識をホストに提供しなければならない。ホストコマンドの実行を延期する一例として、ホストがメモリに書き込もうとするデータの全てを格納するにあたって十分な消去済みメタブロックが消去済みブロックプールにない場合、まずはデータの整理またはガーベッジコレクションで1つ以上の有効データメタブロックを片づける必要があり、その後それらのメタブロックを消去できる。これまで、そのような混乱を最小限に抑えるためにメモリ制御の管理に注意が払われてきた。そのような手法が、2003年12月30日に出願された「Management of Non-Volatile Memory Systems Having Large Erase Blocks 」という米国特許出願第10/749,831号(特許文献15)、2003年12月30日に出願された「Non-Volatile Memory and Method with Block Management System 」という米国特許出願第10/750,155号(特許文献16)、2004年8月13日に出願された「Non-Volatile Memory and Method with Memory Planes Alignment 」という米国特許出願第10/917,888号(特許文献17)、2004年8月13日に出願された米国特許出願第10/917,867号(特許文献18)、2004年8月13日に出願された「Non-Volatile Memory and Method with Phased Program Failure Handling 」という米国特許出願第10/917,889号(特許文献19)、および2004年8月13日に出願された「Non-Volatile Memory and Method with Control Data Management 」という米国特許出願第10/917,725号(特許文献20)に数多く記載されている。   Data organization and garbage collection are time consuming and affect the performance of the memory system, especially if data organization or garbage collection must be done before executing a command from the host. Memory system controllers typically schedule such operations in the background as much as possible, but because of the need to perform these operations, the controller hosts a busy status indicator until such operations are complete. Must be provided to. As an example of postponing the execution of a host command, if there are not enough erased metablocks in the erased block pool to store all of the data that the host is trying to write to memory, then one or more of the data is organized or garbage collected first Valid data metablocks need to be cleaned up, and then those metablocks can be erased. In the past, attention has been paid to managing memory controls to minimize such confusion. Such a technique is disclosed in US Patent Application No. 10 / 749,831, “Management of Non-Volatile Memory Systems Having Large Erase Blocks” filed on Dec. 30, 2003 (Patent Document 15), Dec. 2003. US Patent Application No. 10 / 750,155 (Patent Document 16) entitled “Non-Volatile Memory and Method with Block Management System” filed on 30th, “Non-Volatile Memory” filed on 13th August 2004 and Method with Memory Planes Alignment ", U.S. Patent Application No. 10 / 917,888 (Patent Document 17), U.S. Patent Application No. 10 / 917,867, filed Aug. 13, 2004 (Patent Document 18), US patent application Ser. No. 10 / 917,889 entitled “Non-Volatile Memory and Method with Phased Program Failure Handling” filed on August 13, 2004; Many of these are described in US Patent Application No. 10 / 917,725 (Patent Document 20) entitled “Non-Volatile Memory and Method with Control Data Management” filed on August 13, 2004.

非常に大きい消去ブロックを伴うメモリアレイの動作を効率的に制御するにあたって1つの課題となるのは、所与の書き込み操作中に格納されるデータセクタの数を、メモリのブロックの容量に一致させ、その境界に整合させることである。1つのアプローチでは、ホストからの新規データの格納に使うメタブロックを、メタブロック全体を埋め尽くす量に満たない一定量のデータを格納する必要があるように最大ブロック数未満で適宜構成する。適応メタブロックの使用が、2003年12月30日に出願された「Adaptive Metablocks」という米国特許出願第10/749,189号(特許文献21)に記載されている。データブロック間の境界とメタブロック間の物理的境界の整合が、2004年5月7日に出願された米国特許出願第10/841,118号(特許文献22)、および2004年12月16日に出願された「Data Run Programming」という米国特許出願第11/016,271号(特許文献23)に記載されている。   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. , To match that boundary. In one approach, the metablocks used to store new data from the host are appropriately configured with less than the maximum number of blocks so that a certain amount of data that does not fill the entire metablock needs to be stored. The use of adaptive metablocks is described in US patent application Ser. No. 10 / 749,189 entitled “Adaptive Metablocks” filed Dec. 30, 2003. The alignment of boundaries between data blocks and physical boundaries between metablocks is described in US patent application Ser. No. 10 / 841,118 filed May 7, 2004, and December 16, 2004. Is described in U.S. Patent Application No. 11 / 016,271 (Patent Document 23) entitled “Data Run Programming”.

また、メモリコントローラは、ホストによって不揮発性メモリに格納されるFATテーブルのデータをメモリシステムをより効率的に動作させるのに役立てることができる。例えば、論理アドレスの解除によりホストによってデータが用済みと識別されたことを知るのに役立てる。メモリコントローラは、通常ならばホストがその論理アドレスに新規データを書き込むことから知るこれを、事前に知ることにより、そのような無効データを収容するブロックの消去スケジュールを立てることができる。これは、2004年7月21日に出願された「Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems」という米国特許出願第10/897,049号(特許文献24)に記載されている。この他の手法として、ホストがメモリに新規データを書き込むホストパターンを監視することにより、所与の書き込み操作が単一ファイルか否かを、または複数のファイルである場合にはファイル間の境界がどこにあるかを推定する。2004年12月23日に出願された「FAT Analysis for Optimized Sequential Cluster Management」という米国特許出願第11/022,369号(特許文献25)には、この種の手法の使用が記載されている。   In addition, the memory controller can use the data of the FAT table stored in the nonvolatile memory by the host to operate the memory system more efficiently. For example, it is useful for knowing that data has been identified as being used by the host by releasing the logical address. By knowing in advance that the host normally knows from writing new data to its logical address, the memory controller can schedule the erasure of blocks containing such invalid data. This is described in US patent application Ser. No. 10 / 897,049 entitled “Method and Apparatus for Maintaining Data on Non-Volatile Memory Systems” filed on July 21, 2004. Another approach is to monitor the host pattern where the host writes new data to the memory to determine whether a given write operation is a single file or, if there are multiple files, the boundary between files. Estimate where it is. US patent application Ser. No. 11 / 022,369 entitled “FAT Analysis for Optimized Sequential Cluster Management” filed on Dec. 23, 2004 describes the use of this type of technique.

メモリシステムを効率よく操作するには、ホストによって個別のファイルのデータに割り当てられる論理アドレスについて、コントローラができるだけ多くのことを知ることができるのが望ましい。しかし、前述したように、ホスト/メモリインターフェイスが論理アドレス空間161(図7)を含む場合、メモリコントローラがホストデータファイル構造について多くを知ることは困難である。   In order to operate the memory system efficiently, it is desirable that the controller know as much as possible about the logical addresses assigned to the data of individual files by the host. 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.

ファイル本位アドレシング
大量データ格納のためのホスト−メモリシステム間の代替のインターフェイスは、論理アドレス空間の使用を解消する。あるいは、ホストは、一意なファイルID(またはその他の一意な参照符)と、ファイル内でのデータ単位(バイト等)のオフセットアドレスとによって各ファイルを論理的にアドレスする。このファイルアドレスはメモリシステムコントローラへ直接提供され、メモリシステムコントローラは、各ホストファイルのデータが物理的に格納される位置について独自のテーブルを保管する。この新規インターフェイスは、図2〜図6に関して前述したのと同じメモリシステムで実装できる。図2〜図6で説明したものとの主な違いは、メモリシステムがホストシステムと通信することにある。
An alternative interface between the host-memory system for file-oriented addressing mass data storage eliminates the use of logical address space. Alternatively, the host logically addresses each file with a unique file ID (or other unique reference) and an offset address of a data unit (such as bytes) within the file. This file address is provided directly to the memory system controller, which keeps a unique table for the location where each host file's data is physically stored. This new interface can be implemented in the same memory system as described above with respect to FIGS. The main difference from that described in FIGS. 2-6 is that the memory system communicates with the host system.

図8にはファイル本位インターフェイスが示され、これは図7の論理アドレスインターフェイスと比較するべきものである。ファイル1、2、および3の各々の識別と図8のファイルの中でのデータのオフセットは、メモリコントローラへ直接引き渡される。次いで、この論理アドレス情報はメモリコントローラ機能173によってメモリ165のメタブロックおよびメタページの物理アドレスに翻訳される。   FIG. 8 shows the file-oriented interface, which should be compared with the logical address interface of FIG. The identification of each of the files 1, 2, and 3 and the offset of the data in the file of FIG. 8 is passed directly to the memory controller. This logical address information is then translated by the memory controller function 173 into physical addresses of metablocks and metapages in the memory 165.

メモリシステムは、各ファイルを構成するデータの位置を認識しているため、これらのデータは、ホストがファイルを削除した後直ちに消去できる。典型的な論理アドレスインターフェイスでは通常、このようにならない。さらに、論理アドレスを使用する代わりにファイルオブジェクトによってホストデータを識別することにより、メモリシステムコントローラは、頻繁なデータの整理および回収の必要性を抑える方法でデータを格納できる。したがって、データコピー操作の頻度とコピーされるデータ量は大幅に低下し、これによりメモリシステムのデータプログラミングおよび読み出し性能は向上する。   Since the memory system knows the location of the data making up each file, these data can be erased immediately after the host deletes the file. This is usually not the case with typical logical address interfaces. Furthermore, by identifying host data by file objects instead of using logical addresses, the memory system controller can store data in a manner that reduces the need for frequent data organization and recovery. Therefore, the frequency of data copy operations and the amount of data copied are greatly reduced, thereby improving the data programming and reading performance of the memory system.

ファイル本位インターフェイスの例として、直接データファイル記憶を使用するものがある。いずれも2005年2月16日に出願された、Alan W. Sinclairのみによる、または同人と併せてPeter J. Smithによる同時係属中の米国特許出願第11/060,174号(特許文献26)、第11/060,248号(特許文献27)、および第11/060,249号(特許文献28)、およびAlan W. SinclairとBarry Wrightにより出願された「Direct Data File Storage in Flash Memories」という仮米国特許出願第60/705,388号(特許文献29)(これ以降「直接データファイル記憶出願」と総称する)では、直接データファイル記憶メモリシステムが記載されている。   An example of a file-oriented interface is one that uses direct data file storage. US patent application Ser. No. 11 / 060,174, filed on Feb. 16, 2005, solely by Alan W. Sinclair, or by Peter J. Smith in conjunction with him. No. 11 / 060,248 (Patent Document 27) and 11 / 060,249 (Patent Document 28) and a temporary file called “Direct Data File Storage in Flash Memories” filed by Alan W. Sinclair and Barry Wright. US Patent Application No. 60 / 705,388 (patent document 29) (hereinafter collectively referred to as "direct data file storage application") describes a direct data file storage memory system.

図8に示された、これらの直接データファイル記憶出願の直接データファイルインターフェイスは、図7に示された前述した論理アドレス空間インターフェイスよりシンプルであり、メモリシステムの性能を上げるため、直接データファイル記憶は多くの用途にとって好ましい。しかし、現在、ホストシステムは主に論理アドレス空間インターフェイスで動作するように構成されているから、直接データファイルインターフェイスを有するメモリシステムはほとんどのホストに適合しない。したがって、どちらのインターフェイスとでも動作できるメモリシステムを提供するのが望ましい。   The direct data file interface of these direct data file storage applications shown in FIG. 8 is simpler than the previously described logical address space interface shown in FIG. 7, and direct data file storage is used to increase the performance of the memory system. Is preferred for many applications. However, at present, the host system is mainly configured to operate with a logical address space interface, so a memory system with a direct data file interface is not suitable for most hosts. Accordingly, it is desirable to provide a memory system that can operate with either interface.

論理−仮想ファイルマッピング
2005年8月3日に出願された「Interfacing systems operating through a logical address space and on a direct data file basis」という米国特許出願第11/196,869号(特許文献30)は、メモリシステムが論理アドレス形インターフェイスまたはファイル本位インターフェイスのいずれかを用いてホストと連係することを可能にするシステムを記載している。図9は、そのようなシステムを示す。この例は、図7のホスト動作に図8のファイル本位メモリ動作を組み合わせ、さらにメモリシステムの中にアドレス変換172を加えるものである。アドレス変換172は、メモリ空間161にまたがる論理アドレスのグループを、修正されたアドレス空間161’にまたがる個別の論理ファイルa〜jにマッピングする。好ましくは論理アドレス空間161全体がこれらの論理ファイルに分割され、かくして論理ファイルの数は、論理アドレス空間および個別の論理ファイルのサイズに依拠する。論理ファイルの各々は、空間161にまたがる1グループの連続論理アドレスのデータを収容する。各々の論理ファイルの中のデータ量は好ましくは同じであり、その量は、メモリ165の1メタブロックのデータ格納容量に等しい。論理ファイルの不等サイズおよび/またはメモリのブロックまたはメタブロックの格納容量とは異なるサイズは、確かに可能ではあるが、好ましくはない。
Logical - virtual file mapping was filed on August 3, 2005, "Interfacing systems operating through a logical address space and on a direct data file basis " that the US patent application Ser. No. 11 / 196,869 (Patent Document 30), A system is described that allows a memory system to interface with a host using either a logical address type interface or a file based interface. FIG. 9 shows such a system. In this example, the host operation of FIG. 7 is combined with the file-oriented memory operation of FIG. 8, and an address conversion 172 is added to the memory system. Address translation 172 maps groups of logical addresses that span memory space 161 to individual logical files aj that span modified address space 161 '. Preferably the entire logical address space 161 is divided into these logical files, thus the number of logical files depends on the logical address space and the size of the individual logical files. Each logical file contains data of a group of consecutive logical addresses that span the space 161. The amount of data in each logical file is preferably the same, and the amount is equal to the data storage capacity of one metablock in memory 165. While unequal sizes of logical files and / or sizes different from the storage capacity of blocks of memory or metablocks are certainly possible, they are not preferred.

個々のファイルa〜jの中のデータは、ファイル内の論理オフセットアドレスによって表される。論理ファイルのファイル識別子とデータオフセットは173でメモリ165内の物理アドレスに変換される。論理ファイルa〜jは、直接データファイル記憶出願で記載されているのと同じプロセスとプロトコルとによってメモリ165に直接格納される。そのプロセスは、図9のデータファイル1〜3をメモリ165に格納するプロセスと同じであるが、各論理ファイル内のデータ量は分かっているから、特にその量がメモリのブロックまたはメタブロックの容量に等しければ、プロセスはより簡単なものとなる。図9は、論理ファイルa〜jの各々がメモリ165の異なるメタブロックの1つにマッピングされる様子を示している。ファイル本位データ記憶が、ホストの本来の相手方にあたる現在の論理アドレスメモリシステムと同じか同等のやり方で、ホストとやり取りすることもまた望ましい。個別の論理ファイルを対応する個別のメモリメタブロックにマッピングすることにより、論理アドレス空間インターフェイスを使用する場合と実質的に同じ性能とタイミング特性が直接データファイルインターフェイスメモリシステムで達成される。   The data in each file aj is represented by a logical offset address within the file. The file identifier and data offset of the logical file are converted to physical addresses in the memory 165 at 173. Logical files aj are stored directly in memory 165 by the same process and protocol described in the direct data file storage application. The process is the same as the process of storing the data files 1 to 3 in FIG. 9 in the memory 165, but the amount of data in each logical file is known. If they are equal, the process is simpler. FIG. 9 shows how each of logical files aj is mapped to one of the different metablocks in memory 165. It is also desirable for file-oriented data storage to interact with the host in the same or equivalent manner as the current logical address memory system that is the host's original counterpart. By mapping individual logical files to corresponding individual memory metablocks, substantially the same performance and timing characteristics are achieved with a direct data file interface memory system as when using a logical address space interface.

従来の論理アドレス空間インターフェイスを通じてホストと連係するように設計された図9のデータファイル本位バックエンド記憶システムには、直接データファイルインターフェイスを加えることもできる。ファイルインターフェイスからのホストデータファイルと論理インターフェイスによって変換される論理ファイルはいずれも、メモリメタブロックアドレスに翻訳される。次いで、データは、直接データファイルプロトコルを実行することによってそれらのメモリアドレスに格納される。このプロトコルには、前述した直接データファイル記憶出願の直接データファイル記憶手法が盛り込まれる。   A data file interface can also be added directly to the data file based backend storage system of FIG. 9 designed to work with a host through a conventional logical address space interface. Both the host data file from the file interface and the logical file converted by the logical interface are translated into memory metablock addresses. The data is then stored at those memory addresses by directly executing the data file protocol. This protocol incorporates the direct data file storage technique of the aforementioned direct data file storage application.

論理アドレス形ファイル記憶
前述したように、メモリシステムにおいて、隣接するメモリアレイ領域に格納されファイル本位の方法で管理されるファイルとしてデータを保守することには利点がある。しかし、多くのホストは、論理アドレスを有するデータセクタの形でデータをメモリシステムに提供する。そのようなシステムでホストファイルは論理的に断片化することがあり、その結果、1ホストファイルが多数の論理アドレス範囲を占め、介在する論理アドレス範囲は他のデータによって占められることとなる。論理アドレス空間を所定の方法で仮想ファイルにマッピングすることにより、論理的にアドレスされたデータをファイル本位バックエンドで処理できるが、仮想ファイルは論理アドレス空間の論理的に断片化したパターンをとどめるから、1つの仮想ファイルを収容するメタブロックが多数のホストファイルからのデータを収容することになる。メモリシステムにとっては、論理的にアドレスされたデータをホストから受け取り、1ホストファイルのデータを、多くのまたは他のファイルのデータが入っていない1つ以上のブロックにまとめておく方法でこれを格納するのが望ましい。こうすれば、たとえホストが全ファイルに共通の論理アドレス空間の論理アドレスを持つセクタの形でデータを送る場合でも、ファイル本位記憶の利点のいくつかは実現できる。
Logical Address File Storage As previously mentioned, there is an advantage in maintaining data as files stored in adjacent memory array areas and managed in a file-oriented manner in a memory system. However, many hosts provide data to the memory system in the form of data sectors with logical addresses. In such a system, the host file may be logically fragmented, resulting in one host file occupying multiple logical address ranges and intervening logical address ranges occupied by other data. By mapping the logical address space to the virtual file in a predetermined way, the logically addressed data can be processed by the file-oriented back end, but the virtual file only retains the logically fragmented pattern of the logical address space. A metablock containing one virtual file will contain data from multiple host files. For memory systems, it receives logically addressed data from the host and stores it in a way that puts data from one host file into one or more blocks that do not contain many or other file data. It is desirable to do. In this way, some of the advantages of file-oriented storage can be realized even if the host sends data in the form of sectors with logical addresses in a common logical address space for all files.

一実施形態において、ホストは、データセクタの送信に先立ちそのデータセクタに関する情報をメモリシステムへ送信する。この情報は、メモリシステムがそのセクタを同じファイルの他のセクタとともに格納する際に役立てることができる。かくして、同じファイルのセクタを、そのファイルだけを格納する特定のブロックにまとめておくことができる(しかし、複数のファイルのデータを格納するブロックもある)。ホストによって送信される情報は、送信されようとするセクタの割り当て情報を提供するFATセクタとディレクトリセクタの形をとってよい。これは、ホストがデータセクタを送信した後にFATセクタとディレクトリセクタの形で割り当て情報を送信する通常の順序とは逆の順序にあたる。また、従来のシステムのメモリシステムは通常、FATセクタとディレクトリセクタの内容をもとにその動作を修正することはしない。   In one embodiment, the host sends information about the data sector to the memory system prior to sending the data sector. This information can be useful when the memory system stores the sector along with other sectors of the same file. Thus, sectors of the same file can be grouped into specific blocks that store only that file (although some blocks store data from multiple files). The information transmitted by the host may take the form of a FAT sector and a directory sector that provide allocation information for the sector to be transmitted. This is the reverse of the normal order in which the host sends the allocation information in the form of FAT sectors and directory sectors after sending the data sectors. In addition, the memory system of the conventional system usually does not modify the operation based on the contents of the FAT sector and the directory sector.

論理アドレス形ファイル記憶方式の一目的は、論理的に断片化したデータをホストから受け取り、断片化の度合いが論理的配置より低い物理的配置でファイルを格納することにある。かくして、論理アドレス空間の隣接しない2箇所以上にマッピングされるファイル(2箇所の間に他の論理アドレスがある)は、物理メモリアレイの中で隣接して格納される。ファイルを物理的に隣接するように格納するということは、1ファイルの全データが1つのブロックに収まることを意味し、あるいはファイルのデータが1ブロックの容量を超える場合には、そのファイルのデータだけで1つ以上のブロックが独占的に占有され、そのファイルのデータとそのファイル以外のデータを収容するブロックがただ1つとなることを意味する。そのファイルのデータを格納するブロックは特定の配置になっていなくてもよい。したがって、この文脈における「隣接」は、ファイルを収容するブロックが寄り集まっていることを意味するのではなく、個別のブロック内でのデータの配置を指す。   One object of the logical address type file storage system is to receive logically fragmented data from the host and store the file in a physical arrangement in which the degree of fragmentation is lower than the logical arrangement. Thus, files that are mapped to two or more non-adjacent locations in the logical address space (there are other logical addresses between the two locations) are stored adjacent in the physical memory array. Storing files so that they are physically adjacent means that all the data of one file can fit in one block, or if the file data exceeds the capacity of one block, the data of that file This means that one or more blocks are exclusively occupied, and there is only one block that accommodates data of the file and data other than the file. The block for storing the data of the file may not be in a specific arrangement. Thus, “adjacent” in this context does not mean that the blocks containing the files are clustered, but refers to the arrangement of data within individual blocks.

図10は、本発明の一実施形態に従い論理アドレス形ファイル記憶方式を示す。ファイル1、ファイル2、およびファイル3は、メモリアレイ180に格納するためにホストによって送信される。ファイル−論理アドレス変換160はホストによって図7に示すものと同様に行われ、その結果ファイル1、2、および3は共通の論理アドレス空間161へマッピングされる。このマッピングによってファイルはデータファイル2に見られるように論理的に断片化することがあり、データファイル2は論理アドレス空間161の2つの部分を占め、2つの部分は、ファイル2のデータによって占有されていない中間部分によって隔てられている。データファイル3も同様に2つの部分に分かれている。メモリシステムによってはファイルはさらに断片化し、ファイルは多数の分離された論理アドレス空間部分を占めることがある。ファイル−論理アドレス変換情報182は、ファイル−論理アドレス変換160によってデータファイル1、2、および3が論理アドレス空間にマッピングされるときに生成される。ファイル−論理アドレス変換情報182はメモリへ引き渡される。しかし、多くの従来のシステムと違って、この場合のファイル−論理変換情報182は、これが言及するところのデータより前にメモリへ送信される。したがって、論理アドレス空間161の2つの異なる論理アドレス範囲へのファイル2のマッピングを反映する情報は、それらの論理アドレス範囲のデータセクタが送信される前にメモリへ送信される。論理−物理アドレス翻訳184は、個別のセクタを格納する物理位置の判定にあたってファイル−論理アドレス変換情報182を役立てることにより行うことができる。   FIG. 10 illustrates a logical address type file storage scheme according to an embodiment of the present invention. File 1, file 2, and file 3 are sent by the host for storage in memory array 180. File-to-logical address conversion 160 is performed by the host in the same manner as shown in FIG. 7 so that files 1, 2, and 3 are mapped to a common logical address space 161. This mapping may cause the file to be logically fragmented as seen in data file 2, which occupies two parts of logical address space 161, and the two parts are occupied by data in file 2. Not separated by a middle part. The data file 3 is similarly divided into two parts. Depending on the memory system, the file may be further fragmented and the file may occupy many separate logical address space portions. The file-logical address conversion information 182 is generated when the data files 1, 2, and 3 are mapped to the logical address space by the file-logical address conversion 160. The file-logical address conversion information 182 is transferred to the memory. However, unlike many conventional systems, the file-to-logical conversion information 182 in this case is sent to memory prior to the data it refers to. Thus, information reflecting the mapping of file 2 to two different logical address ranges in logical address space 161 is transmitted to memory before data sectors in those logical address ranges are transmitted. The logical-physical address translation 184 can be performed by using the file-logical address conversion information 182 in determining the physical location where the individual sectors are stored.

図10は、予約ブロックとして割り当てられたメタブロック167と、ホストオペレーティングシステム、ホストFATテーブル、その他の格納のために割り当てられたメタブロック169と、これまでどおり消去済みブロックプールで保守されるメタブロック171とを示している。また、図10は、1つのメタブロックに格納されたファイル1と、別のメタブロックにあるファイル2と、前述した以外の2つのメタブロックを占めるファイル3とを示している。ファイル2は論理アドレス空間161の2つの別々の部分にマッピングされているが、論理−物理アドレス翻訳184の結果、ファイル2の2つの部分は一緒に格納される。同様に、ファイル3は2つの部分に論理的に断片化され、論理アドレス空間161の互いに隔てられた2つの部分を占めている。論理アドレス空間の介在部分にはファイル3以外のさらなるデータがマッピングされている。しかし、ファイル3の論理的に分離した部分は、他のファイルのデータが入っていない2つのメタブロックに一緒に格納される。ただ1つのファイルのデータだけを収容するこのメタブロックのファイルの配置は、ファイルが用済みになるときにメタブロック全体が用済みとなり、通常ならばガーベッジコレクション中に行う有効データのコピーが必要でなくなるから、有利である。ファイルは整数個のメタブロックを埋め尽くすとは限らず、メタブロックの不使用部分を維持するとメモリ容量が減少するから、全てのメタブロックが1ファイルのデータだけを格納するのは効率的でないかもしれない。しかし、たとえいくつかのメタブロックが複数のファイルのデータを収容する場合でも、メモリアレイにおけるファイルの断片化の度合いは従来のシステムに比べて抑えることができる。   FIG. 10 shows metablocks 167 allocated as reserved blocks, metablocks 169 allocated for storage of the host operating system, host FAT table, etc., and metablocks maintained in the erased block pool as before. 171. FIG. 10 shows a file 1 stored in one metablock, a file 2 in another metablock, and a file 3 occupying two metablocks other than those described above. File 2 is mapped to two separate parts of logical address space 161, but as a result of logical-physical address translation 184, the two parts of file 2 are stored together. Similarly, file 3 is logically fragmented into two parts and occupies two parts of logical address space 161 that are separated from one another. Further data other than the file 3 is mapped to the intervening portion of the logical address space. However, the logically separated portion of file 3 is stored together in two metablocks that do not contain data from other files. The placement of this metablock file, which contains only one file's data, will result in the entire metablock being used up when the file is used up, usually requiring a copy of the valid data during garbage collection. It is advantageous because it disappears. A file does not necessarily fill an integer number of metablocks, and maintaining the unused portion of a metablock reduces memory capacity, so it may not be efficient for all metablocks to store only one file of data. unknown. However, even when several metablocks contain data of a plurality of files, the degree of file fragmentation in the memory array can be suppressed as compared with the conventional system.

図11は、論理アドレス空間161へマッピングされ、このマッピングにより4つの部分に論理的に断片化されるファイルAの例を示す。このマッピングに関するファイル−論理アドレス変換情報182は、メモリへデータが送信される前にメモリへ送信される。このようにファイルAの各部がマッピングされる論理アドレスは、ファイル−論理アドレス情報182によってファイルAと識別される。ファイルAのデータがメモリへ送信されるとき、メモリへ送信されたファイルAのデータの格納位置が、ファイルAとしての識別によって決まる。図11は、メモリで行われる論理−物理翻訳184を示している。論理アドレス空間161の別々の部分にマッピングされたファイルAの各部は、物理メモリアレイ180の隣接する部分にマッピングされる。この例で、メタブロック4はファイルAのデータで満たされ、メタブロック7はファイルAのデータで部分的に満たされている。メタブロック7のデータには後ほど他のファイルのデータを併合できるから、メモリアレイ空間は浪費されない。しかし、メタブロック4は専らファイルAのデータだけを格納し続ける。ファイルAが閉じると、メモリはメタブロック7のデータを他のファイルの同様のデータとともに整理できる。複数のファイルからの残余のファイルデータを1つの共通ブロックで効率的に併合する直接データファイル出願には、そのような部分的メタブロックの整理の仕方が記載されている。   FIG. 11 shows an example of a file A that is mapped to the logical address space 161 and logically fragmented into four parts by this mapping. The file-logical address conversion information 182 regarding this mapping is transmitted to the memory before the data is transmitted to the memory. Thus, the logical address to which each part of the file A is mapped is identified as the file A by the file-logical address information 182. When the data of the file A is transmitted to the memory, the storage position of the data of the file A transmitted to the memory is determined by the identification as the file A. FIG. 11 shows logical-physical translation 184 performed in memory. Each part of file A mapped to a separate part of logical address space 161 is mapped to an adjacent part of physical memory array 180. In this example, metablock 4 is filled with data from file A, and metablock 7 is partially filled with data from file A. Since the data of the metablock 7 can be merged with data of another file later, the memory array space is not wasted. However, the metablock 4 continues to store exclusively the data of file A. When file A is closed, the memory can organize the data in metablock 7 with similar data in other files. The direct data file application that efficiently merges the remaining file data from a plurality of files into one common block describes how to organize such partial metablocks.

通知方式
ホストからメモリへファイル−論理アドレス変換情報を送信するには、様々な通知方式が可能である。一例において、使用する通知方式の形式はメモリに制御情報を格納するときに一般的に使われるものと同じである。この方式ではFATセクタとディレクトリセクタを使って不揮発性メモリでFATおよびディレクトリ情報を更新するので、その情報を後ほどリカバリに役立てることができる。図12は、ファイル割り当て情報がどのように格納されるかを示す。ファイルAおよびBはメモリに格納される。ディレクトリは、ファイルAとファイルBの項目の両方を収容する。ディレクトリ項目は、ファイルの第1のクラスタのアドレス等、ファイルについて様々な情報を収容する。ファイルAの場合、ディレクトリ項目はクラスタ2が第1のクラスタであることを伝えているから、ファイルAの第1のFAT項目はクラスタ2の項目である。ファイルBの場合、ディレクトリ項目は第1のクラスタがクラスタ0であることを伝えている。FAT内のクラスタ項目はそのファイルの次のクラスタを指示する。したがって、あるファイルの第1のFAT項目の位置をディレクトリから入手したら、そのファイルに割り当てられた前のクラスタのFAT項目によって後続のFAT項目が指示される。FAT項目は、ある特定のファイルで1つのFAT項目が次のFAT項目の位置を指示することから「連なっている」と見ることができる。ファイルAの場合、ディレクトリが指示する第1のクラスタはクラスタ2である。クラスタ2の項目は、ファイルAの次のクラスタがクラスタ3であると伝えている。クラスタ3の項目は、ファイルAの次のクラスタがクラスタ4であると伝えている。クラスタ4の項目はファイルの終端(EoF)を伝えている。したがって、ファイルAに割り当てられた最後のクラスタはクラスタ4である。ファイルBの場合、ディレクトリが指示する第1のクラスタはクラスタ0である。クラスタ0の項目は、ファイルBの次のクラスタがクラスタ1であると伝えている。クラスタ1の項目は、ファイルBの次のクラスタがクラスタ5であると伝えている。クラスタ5の項目はファイルBの次のクラスタがクラスタ6であると伝え、クラスタ6の項目はファイルの終端を伝えている。したがって、ファイルBの最後のクラスタはクラスタ6である。通常、FATとディレクトリの情報はホストによって保守され、FATセクタとディレクトリセクタの送信によって定期的に不揮発性メモリに格納される。
Notification Methods Various notification methods are possible for sending file-logical address conversion information from the host to the memory. In one example, the format of the notification method used is the same as that generally used when storing control information in the memory. In this method, since FAT and directory information are updated in the nonvolatile memory using the FAT sector and the directory sector, the information can be used for recovery later. FIG. 12 shows how file allocation information is stored. Files A and B are stored in memory. The directory contains both file A and file B entries. The directory item contains various information about the file, such as the address of the first cluster of the file. In the case of file A, the directory item tells that cluster 2 is the first cluster, so the first FAT item of file A is the cluster 2 item. For file B, the directory entry tells that the first cluster is cluster 0. The cluster entry in the FAT points to the next cluster in the file. Thus, once the location of the first FAT entry for a file is obtained from the directory, the subsequent FAT entry is indicated by the FAT entry for the previous cluster assigned to that file. A FAT item can be viewed as “connected” because one FAT item indicates the position of the next FAT item in a particular file. In the case of file A, the first cluster indicated by the directory is cluster 2. The item of cluster 2 tells that the next cluster of file A is cluster 3. The item of cluster 3 indicates that the next cluster of file A is cluster 4. The item of cluster 4 conveys the end of file (EoF). Therefore, the last cluster assigned to file A is cluster 4. In the case of file B, the first cluster indicated by the directory is cluster 0. The item of cluster 0 tells that the next cluster of file B is cluster 1. The item of cluster 1 tells that the next cluster of file B is cluster 5. The item of cluster 5 tells that the next cluster of file B is cluster 6, and the item of cluster 6 tells the end of the file. Therefore, the last cluster of file B is cluster 6. Normally, FAT and directory information is maintained by the host and periodically stored in non-volatile memory by sending FAT sectors and directory sectors.

以前の方式では、ファイル−論理アドレス情報の格納にディレクトリおよびFAT構造を役立てていた。しかし、本発明の一実施形態による方式は以前の方式と違って、メモリへデータを送信する前にファイル−論理アドレス情報を送信する。典型的な従来のシステムで、FATセクタとディレクトリセクタは、それらが言及するところのデータが送信されメモリに格納された後にだけ送信されていた。FATセクタとディレクトリセクタの送信を遅らせることには、データが書き込まれる前に停電があった場合に不揮発性メモリに誤った情報が記録されるのを防ぐという理由がある。一実施形態における方式は、ファイルのFATの一部を、それが言及するところのファイルが格納される前にただ書き込むことによってこの問題を回避する。こうすれば、停電が生じた場合に、ファイルの書き込みが完了しなかったことと、ファイルデータが使用できないかもしれないこととが、不完全なFATから分かる。   Previous schemes used directory and FAT structures to store file-logical address information. However, unlike the previous scheme, the scheme according to an embodiment of the present invention transmits file-logical address information before transmitting data to the memory. In a typical prior system, the FAT and directory sectors were only transmitted after the data they referred to was transmitted and stored in memory. The reason for delaying the transmission of the FAT sector and the directory sector is to prevent erroneous information from being recorded in the non-volatile memory when a power failure occurs before data is written. The scheme in one embodiment avoids this problem by simply writing a portion of the file's FAT before the file it refers to is stored. In this way, in the event of a power failure, it can be seen from the incomplete FAT that the file writing has not been completed and that the file data may not be usable.

例示的な通知方式において、ホストによって送信されるデータセクタのファイル割り当てをメモリに通知するため、FATセクタとディレクトリセクタがホストによって送信される。通常、送信されるホストデータのクラスタごとにファイル割り当て情報を送信する必要はない。メモリは通常、ホストが連続するセクタのクラスタを送信する場合に、それらのクラスタが同じファイルに属するものと仮定する。したがって、ホストは、1つのファイルを連続クラスタのストリームとして送信する場合に、第1のクラスタを送信する前にそのファイルを識別し、最後のセクタの後にファイル終端標識を送信するだけでよい。図13は、ホストが図12のファイルAをメモリへ送信する例を示す。まずは、ファイルAの第1のクラスタがクラスタ2であることを伝えるディレクトリセクタ301が送信される。次いで、クラスタ2のセクタが送信されるが、これは新規ホストファイルの先頭にあたるから、メモリによってメモリアレイの新規ブロック302に格納される。その後、クラスタ3および4のセクタが順次受信され、クラスタ2のセクタと同じブロックに格納される。ホストはクラスタ4が受信された後に、これがファイルAの最後のクラスタであることを伝えるクラスタ4のファイル終端項目を含むFATセクタ303を送信する。この時点でファイルAの全体は格納済みだから、ファイルAのFAT情報一式を送信することもできる。メモリはこの時点でファイルAを閉じることができ、さらに必要とあらば再生操作を遂行できる。これは、ファイルを他のファイルの書き込みを介さずに論理的に連続する方法で送信する例である。   In an exemplary notification scheme, a FAT sector and a directory sector are transmitted by the host to notify the memory of data sector file assignments transmitted by the host. Normally, it is not necessary to transmit file allocation information for each cluster of host data to be transmitted. The memory normally assumes that when the host sends clusters of consecutive sectors, those clusters belong to the same file. Thus, when sending a file as a stream of continuous clusters, the host need only identify the file before sending the first cluster and send an end-of-file indicator after the last sector. FIG. 13 shows an example in which the host transmits the file A of FIG. 12 to the memory. First, a directory sector 301 is transmitted that indicates that the first cluster of file A is cluster 2. Next, the sector of cluster 2 is transmitted, which is at the beginning of the new host file and is therefore stored in the new block 302 of the memory array by the memory. Thereafter, the sectors of clusters 3 and 4 are sequentially received and stored in the same block as the sectors of cluster 2. After receiving the cluster 4, the host sends a FAT sector 303 containing the end of file item for cluster 4 telling it that this is the last cluster of file A. Since the entire file A has already been stored at this time, a set of FAT information of the file A can be transmitted. The memory can close file A at this point, and can perform playback operations if necessary. This is an example in which a file is transmitted in a logically continuous manner without writing other files.

図14は、ホストが図12のファイルBを送信する例を示している。まずは、ファイルBの第1のクラスタがクラスタ0であることを伝えるディレクトリセクタ410が送信される。次いで、クラスタ0のセクタが送信されるが、これらは新規ファイルの第1のセクタだから、新規ブロック412に格納される。次いで、クラスタ1のセクタを受信するが、これらはクラスタ0のセクタの続きだから、これらもまたファイルBのものと仮定されるので、ブロック412に格納される。次いで、クラスタ1のFAT項目を含むFATセクタ414を受信し、この項目のポインタがファイルBの次のクラスタがクラスタ5であることを伝える。この時点でクラスタ5はまだホストによって送信されていないから、FATセクタ414にクラスタ5の項目はなくてよい。FATセクタ414は、クラスタ1からクラスタ5にかけて論理アドレスの飛躍はあってもクラスタ1の後に次ぐファイルBの次のデータがクラスタ5のセクタにあることを、メモリコントローラに知らせる。次いで、クラスタ5のセクタが受信され、クラスタ1のセクタとともにブロック412に格納される。次いで、クラスタ6を受信するが、これはクラスタ5の続きだから、これもブロック412に格納される。その後、クラスタ6のファイル終端項目を含むFATセクタ416を受信する。ここでファイルBを閉じることができ、さらに必要とあらばファイルBを収容するブロックで再生操作を遂行できる。メモリは、論理アドレスに飛躍があるときに、ホストが同じファイルの次のクラスタの書き込みを継続すると仮定する場合がある。そのようなメモリシステムにおいて、論理アドレスの飛躍をともないながら同じファイルからのデータの書き込みをホストが継続するにあたって、具体的な通知は必要とされない。クラスタ1のセクタとクラスタ5のセクタとの間には論理アドレスの飛躍があるが、ホストは、ファイルBの送信に専らあてがわれた期間にわたってファイルBを送信するから(つまりこの期間内に他のファイルからデータセクタは送信されないから)、図14は、他のファイルの書き込みを介さない、論理的に連続しない、ファイル書き込みの例とみなすことができる。   FIG. 14 shows an example in which the host transmits the file B of FIG. First, a directory sector 410 is transmitted that indicates that the first cluster of file B is cluster 0. Next, the sectors of cluster 0 are transmitted, but since these are the first sectors of the new file, they are stored in the new block 412. Cluster 1 sectors are then received, but since they are a continuation of cluster 0 sectors, they are also assumed to be file B and are therefore stored in block 412. A FAT sector 414 containing the FAT entry for cluster 1 is then received and the pointer to this entry tells that the next cluster in file B is cluster 5. At this point, cluster 5 has not yet been transmitted by the host, so there may not be an entry for cluster 5 in FAT sector 414. The FAT sector 414 notifies the memory controller that the next data of the file B after the cluster 1 is in the sector of the cluster 5 even if the logical address jumps from the cluster 1 to the cluster 5. The cluster 5 sector is then received and stored in block 412 along with the cluster 1 sector. Cluster 6 is then received, but since this is a continuation of cluster 5, it is also stored in block 412. Thereafter, the FAT sector 416 including the file end item of the cluster 6 is received. Here, the file B can be closed, and if necessary, the reproduction operation can be performed in the block containing the file B. The memory may assume that the host continues to write the next cluster of the same file when there is a jump in the logical address. In such a memory system, no specific notification is required when the host continues to write data from the same file with a jump in logical address. There is a jump in the logical address between the sector of cluster 1 and the sector of cluster 5, but the host transmits file B over the period dedicated to the transmission of file B (that is, within this period other FIG. 14 can be regarded as an example of file writing that is not logically continuous and does not involve writing of another file.

図15Aは、ホストによって論理アドレス空間の一部にマッピングされた2つのファイルCおよびDを示している。この場合、2つのファイルCおよびDは論理アドレス空間の中で断片化するばかりでなく、一時的に断片化した状態で送信される。ファイルCおよびDのクラスタはホストによって論理的な順序で送信されるから、最初にクラスタ10が送信され、次にクラスタ11、次にクラスタ12というふうに続く。この場合、クラスタは論理的に連続する順序で送信されるが、あるファイルから別のファイルにかけてある程度の変更を伴う。メモリはファイル間の変更の通知をホストから受ける。   FIG. 15A shows two files C and D mapped by the host to part of the logical address space. In this case, the two files C and D are not only fragmented in the logical address space but also transmitted in a temporarily fragmented state. Since the clusters of files C and D are sent by the host in a logical order, cluster 10 is sent first, then cluster 11 and then cluster 12 and so on. In this case, the clusters are sent in a logically sequential order, but with some change from one file to another. The memory receives notification of changes between files from the host.

図15Bは、ホストが別のファイルの書き込みを開始することをどのようにメモリに通知するかを示す。まずは、ファイルCの第1のクラスタがクラスタ10であることを伝えるディレクトリセクタ520が送信される。次いで、クラスタ10のセクタがホストによって送信され、それらは新規ファイルの第1のセクタであるから、メモリアレイ内の新規ブロック522に格納される。次いで、ホストは、ファイルDの第1のクラスタがクラスタ11であることを伝える別のディレクトリセクタ524を送信する。その後、クラスタ11が送信され、別の新規ブロック526に格納される。次いで、クラスタ12が受信され、クラスタ11とともにブロック526に格納される。メモリシステムは、クラスタ12がクラスタ11の続きであってホストから別段の指示は受けていないから、クラスタ12がクラスタ11と同じファイルに属するものと仮定する。次いで、クラスタ10の項目を含むFATセクタがホストによって送信される。このクラスタ10の項目は、クラスタ10のファイル(ファイルC)の次のクラスタへのポインタを含む。この場合、そのポインタが指示するファイルCの次のクラスタはクラスタ13である。次いで、クラスタ13を受信すると、メモリシステムは、たとえこれが論理的には最後に受信したクラスタ(クラスタ12)の続きであっても、クラスタ13がファイルCに割り当てられたものであることを承知しているから、クラスタ13のセクタはクラスタ10のセクタとともにブロック522に格納される。   FIG. 15B shows how the host notifies the memory that it will start writing another file. First, a directory sector 520 is transmitted that indicates that the first cluster of file C is cluster 10. The sectors of cluster 10 are then transmitted by the host and are stored in a new block 522 in the memory array because they are the first sector of the new file. The host then sends another directory sector 524 telling that the first cluster of file D is cluster 11. Thereafter, the cluster 11 is transmitted and stored in another new block 526. Cluster 12 is then received and stored in block 526 with cluster 11. The memory system assumes that the cluster 12 belongs to the same file as the cluster 11 because the cluster 12 is a continuation of the cluster 11 and has not received another instruction from the host. The FAT sector containing the cluster 10 entry is then transmitted by the host. This item of the cluster 10 includes a pointer to the next cluster of the file (file C) of the cluster 10. In this case, the next cluster of the file C indicated by the pointer is the cluster 13. Then, upon receipt of cluster 13, the memory system knows that cluster 13 was assigned to file C, even though this is logically a continuation of the last received cluster (cluster 12). Therefore, the sector of cluster 13 is stored in block 522 together with the sector of cluster 10.

下の表は、前述した例のファイルデータ割り当てを識別する通知方式を要約したものである。

Figure 2009519555
The table below summarizes the notification scheme for identifying the file data allocation in the example described above.
Figure 2009519555

クラスタが割り当てられたファイルを伝える前述した信号に加えて、ホストは、クラスタがある特定のファイルの最後のクラスタであることを伝える指示を、そのクラスタのファイル終端項目を含むFATセクタによって、送信できる。これによりファイルを閉じることができ、メモリシステムは、そのファイルを収容するブロックで後述する再生操作を遂行できる。   In addition to the signals described above that convey the file to which the cluster is assigned, the host can send an indication that the cluster is the last cluster of a particular file via the FAT sector containing the end-of-file entry for that cluster. . As a result, the file can be closed, and the memory system can perform a reproduction operation to be described later in a block that accommodates the file.

メモリ操作
一例において、ホストによってファイルが閉じられると、そのファイルデータを収容するメタブロックは再生操作の対象としてマークされる。本発明の手法を使用するメモリシステムでメモリ空間を再生するために用いられる手法は、直接データファイル記憶出願に記載されているものに類似している。具体的に、ファイルが閉じた時点でそのファイルのデータで満たされたメタブロックが1つ以上存在するかもしれないが、大抵はそのファイルのデータで部分的に満たされただけのメタブロックが1つある。ホストは、これらの残余のファイルデータを効率よく格納するため、ある1つのファイルの残余のファイルデータを、別のファイルの残余のファイルデータを収容するメタブロックへ、コピーすることができる。移動する残余のファイルデータとその移動先は、不使用のメモリ空間の量を低く抑える形で選ばれる。したがって、メタブロックの30%を占める残余のファイルデータを残してファイルが閉じるならば、メモリシステムは、メタブロックに占める残余のファイルデータの割合が70%(または、ほぼ70%)のメタブロックを探す。複数のファイルのデータ部分を収容するメタブロックは共通ブロックとみなすことができる。直接データファイル記憶手法に本願の手法を組み合わせることもできるが、本発明の実施形態は通常、メモリアレイ内でのデータ管理にあたって、直接データファイル記憶で使われるファイル識別子ではなく、論理アドレスを使用する。
In one example of memory operation , when a file is closed by the host, the metablock containing the file data is marked for playback operation. The technique used to reclaim the memory space in a memory system using the technique of the present invention is similar to that described in the direct data file storage application. Specifically, there may be one or more metablocks filled with the file's data when the file is closed, but there is usually only one metablock partially filled with the file's data. There is one. In order to efficiently store these remaining file data, the host can copy the remaining file data of one file to a metablock containing the remaining file data of another file. The remaining file data to be moved and its destination are selected in a manner that keeps the amount of unused memory space low. Therefore, if the file is closed while leaving the remaining file data that occupies 30% of the metablock, the memory system will replace the metablock with the remaining file data occupying 70% (or almost 70%) of the metablock. look for. Metablocks that contain the data portions of multiple files can be considered common blocks. Although the present technique can be combined with the direct data file storage technique, embodiments of the present invention typically use logical addresses rather than file identifiers used in direct data file storage for data management within the memory array. .

本発明の一実施形態によるメモリシステムは、別の例において、メモリアレイの中で1つ以上の専用メタブロックと1つの共通ブロックとにファイルを格納するから、ホストにとってファイルがもはや必要でなくなったら、専用メタブロックを再利用のために直ちに消去でき、共通ブロックはガーベッジコレクションのスケジュールに組み入れることができる。ホストによって送信されるディレクトリおよびFAT情報では通常、ホストがファイルを削除したことを、そのファイルのディレクトリ項目を除去することによって伝える。場合によっては、この削除がFAT項目に反映される。メモリシステムは、ファイルがホストによって削除されたことをディレクトリから判断できるから、そのファイルのデータだけを収容するメタブロックは消去できる。この時点でそのようなメタブロックは、継続的再生操作の一部として、消去されるメタブロックのキューに加えることができる。同様に、そのファイルのデータを収容する共通ブロックはガーベッジコレクションされるメタブロックのキューに加えることができるので、用済みデータで占められた空間は再生できる。メモリシステムがホストのファイル削除を把握し、それらのファイルがメタブロックの中で隣接して格納され、多くのメタブロックがただ1つのファイルのデータだけを収容するなら、再生操作のスケジュールを効率よく組むことができる。2005年10月25日に出願された「Scheduling of reclaim operations in non-volatile memory」という米国特許出願第11/259,423号(特許文献31)には、そのようなスケジューリングの例が記載されている。   The memory system according to one embodiment of the present invention, in another example, stores files in one or more dedicated metablocks and one common block in the memory array, so that the files are no longer needed for the host. Dedicated metablocks can be immediately deleted for reuse, and common blocks can be incorporated into a garbage collection schedule. Directory and FAT information sent by the host typically tells the host that it has deleted the file by removing the directory entry for that file. In some cases, this deletion is reflected in the FAT item. Since the memory system can determine from the directory that the file has been deleted by the host, the metablock containing only the file's data can be deleted. At this point, such metablocks can be added to the queue of metablocks to be deleted as part of a continuous playback operation. Similarly, the common block containing the data for the file can be added to the garbage collected metablock queue so that the space occupied by the used data can be reclaimed. If the memory system keeps track of host file deletions and those files are stored contiguously in metablocks, and many metablocks contain only one file's data, schedule the replay operations efficiently Can be assembled. An example of such scheduling is described in US Patent Application No. 11 / 259,423 entitled “Scheduling of reclaim operations in non-volatile memory” filed on October 25, 2005. Yes.

FATセクタとディレクトリセクタに基づく通知方式には、これがLBAインターフェイスで既に一般的に使われている信号を使用するという利点がある。FATセクタとディレクトリセクタは送信のタイミングが多くの従来のシステムと異なるが、有効な情報を収容し、一般に従来のLBAインターフェイスに適合する。よって、本発明の一実施形態による通知方式を使用するホストは、そのような通知方式を使用しないメモリシステムに適合する。そのようなメモリシステムはFATセクタとディレクトリセクタを格納するが、ホストデータセクタの格納位置を判断するにあたってそれらを役立てない。このようにして格納されたFATセクタは既に格納済みデータクラスタの項目を含むから、有効である。したがって、予期せぬ停電が起こる場合に、不揮発性メモリに格納されたFATデータに誤りはない。あるファイルのFAT情報が不完全であることから、停電が起きたときにメモリシステムがそのファイルのデータ格納を完了しなかったことが分かる。   The notification scheme based on FAT sectors and directory sectors has the advantage that it uses signals already commonly used in LBA interfaces. Although the FAT sector and the directory sector are different from many conventional systems in transmission timing, they contain useful information and are generally compatible with the conventional LBA interface. Thus, a host using a notification scheme according to an embodiment of the present invention is compatible with a memory system that does not use such a notification scheme. Such a memory system stores a FAT sector and a directory sector, but does not help them in determining the storage location of the host data sector. The FAT sector stored in this manner is effective because it includes an already stored data cluster item. Therefore, when an unexpected power failure occurs, there is no error in the FAT data stored in the nonvolatile memory. Since the FAT information of a certain file is incomplete, it can be understood that the memory system did not complete the data storage of the file when a power failure occurred.

前述した例では制御データのセクタ(FATとディレクトリ)を使って割り当て情報を送信するが、既存の論理インターフェイスに適合する信号を使ってホストから他の情報を送信することもできる。2つ以上の同じFATセクタを送信することにより、その後のホスト挙動をメモリシステムに伝えることができる。ホストは、一例において、メモリシステムに直ちにアクセスする必要がないこと、そして電力が維持されることを、メモリシステムに伝えることができる。これは、重複するFATセクタを相次いで送信することによって指示できる。これらのセクタの一方だけがメモリシステムによって書き込まれる場合と、両方が書き込まれる場合とがある。重複FATセクタを受信することに応じて、メモリシステムは、電力が維持されホストが即座のアクセスを求めていないと判断しているので、アイドル状態に入ることができる。アイドル状態に入ったメモリシステムは、再生操作等のハウスキーピング操作を遂行して、用済みデータを収容するメタブロックのガーベッジコレクションを行ったり、未書き込み部分があるメタブロックを整理したりできる。アイドル状態は、別のホストコマンドを受信することにより終了する。メモリシステムは、アイドルモードでハウスキーピング操作を遂行している最中にホストに対しビジーステータスを伝えることができる。ビジーステータス標識はメモリシステムがハウスキーピング操作を遂行していることをホストに知らせるが、ホストがハウスキーピング操作を終了し新たなコマンドの実行を開始するためのコマンドを送信することを阻止するものではない。ホストは、別の例において、同じFATセクタを3回送信することによって間近に迫った電力停止を伝えることができる。メモリシステムは、シャットダウン状態に入ることによってそのような信号に対応できる。この状態に入ったメモリシステムは、まだ格納されていないデータを不揮発性メモリに格納し、電力を無事停止するための他の何らかの操作を遂行するまでは、ホストに対しビジーステータスを指示する。ホストはメモリシステムがビジーでなくなるまで待った上で電力を停止させる。また、ホストは、複数の同じFATまたはディレクトリセクタを送信することによって他のホスト挙動を伝えることができる。また、ホストは、制御情報セクタの繰り返しによって削除の対象となる特定のファイルを識別できる。ある特定のファイルが削除されるべきであるという指示をメモリシステムがホストから受け取ると、そのファイルはガーベッジコレクションのキューに投入される。同様に、ホストは制御情報セクタの繰り返しによって消去の対象となる特定のファイルを識別できる。ある特定のファイルが消去されるべきであるという指示をメモリシステムがホストから受け取ると、メモリシステムは、そのファイルをガーベッジコレクションのキューに投入し、直ちにガーベッジコレクションに取りかかって、そのファイルの全データを不揮発性メモリアレイから除去する。   In the above-described example, the allocation information is transmitted using the sector (FAT and directory) of the control data. However, other information can be transmitted from the host using a signal suitable for the existing logical interface. By sending two or more of the same FAT sectors, subsequent host behavior can be communicated to the memory system. The host can tell the memory system that, in one example, it does not need immediate access to the memory system and that power is maintained. This can be indicated by transmitting overlapping FAT sectors one after another. There are cases where only one of these sectors is written by the memory system and both are written. In response to receiving the duplicate FAT sector, the memory system can enter an idle state because it determines that power is maintained and the host does not seek immediate access. A memory system that has entered an idle state can perform a housekeeping operation such as a reproduction operation to perform garbage collection of metablocks that contain used data, or organize metablocks that have unwritten portions. The idle state is terminated by receiving another host command. The memory system can communicate a busy status to the host while performing a housekeeping operation in the idle mode. The busy status indicator informs the host that the memory system is performing a housekeeping operation, but does not prevent the host from sending a command to terminate the housekeeping operation and begin executing a new command. Absent. In another example, the host can communicate an imminent power outage by sending the same FAT sector three times. The memory system can respond to such a signal by entering a shutdown state. The memory system that has entered this state stores data that has not yet been stored in the non-volatile memory, and instructs the host of the busy status until some other operation for safely stopping the power is performed. The host waits until the memory system is no longer busy before turning off the power. The host can also convey other host behavior by sending multiple identical FAT or directory sectors. The host can identify a specific file to be deleted by repeating the control information sector. When the memory system receives an indication from the host that a particular file should be deleted, that file is placed in the garbage collection queue. Similarly, the host can identify a specific file to be erased by repeating the control information sector. When the memory system receives an indication from the host that a particular file should be erased, the memory system places the file in the garbage collection queue, immediately begins garbage collection, and all the data in the file is collected. Remove from the non-volatile memory array.

通知信号を使用できるメモリシステムがそのような通知信号を提供しないホストへ接続される場合、このメモリシステムはホストが通知信号を提供しないと判断し、次いでそのような信号を必要としない方法でデータを格納する。メモリシステムは、ホストから最初に連絡を受けるときにこの判断を下すことができる。例えば、メモリシステムは、FATまたはディレクトリセクタを省いて書き込まれるデータセクタを受信する場合に、ホストがそのような信号を提供できないと判断でき、格納位置の選択にあたってセクタのファイル割り当てを無視するデータ格納方式を選ぶことができる。ホストは、一例において、ホストからの「ドライブ識別(identify drive)」コマンドによりメモリシステムが通知信号を使用できるか否かを判断できる。メモリシステムは「ドライブ識別」コマンドに応じてこの能力の有無を含む情報を返す。通知信号をサポートしないホストへ接続されたメモリシステムによって使われるデフォルトのデータ格納方式では、特定のセクタのファイル割り当てにかかわりなく図7に示すようにデータを格納できる。2003年12月30日に出願された米国特許出願第10/750,155号(特許文献16)、2004年8月13日に出願された米国特許出願第10/917,888号(特許文献17)、第10/917,867号(特許文献18)、第10/917,889号(特許文献19)、および米国特許出願第10/917,725号(特許文献20)には、そのような格納方式の例が記載されている。   If a memory system that can use a notification signal is connected to a host that does not provide such a notification signal, the memory system determines that the host does not provide a notification signal and then data in a manner that does not require such a signal. Is stored. The memory system can make this determination when it first receives contact from the host. For example, if a memory system receives a data sector that is written without a FAT or directory sector, the memory system can determine that the host cannot provide such a signal and ignore the sector's file allocation in selecting a storage location. You can choose the method. In one example, the host can determine whether the memory system can use the notification signal by an “identify drive” command from the host. In response to the “drive identification” command, the memory system returns information including the presence or absence of this capability. In the default data storage method used by a memory system connected to a host that does not support the notification signal, data can be stored as shown in FIG. 7 regardless of the file allocation of a specific sector. U.S. Patent Application No. 10 / 750,155 filed on December 30, 2003 (Patent Document 16), U.S. Patent Application No. 10 / 917,888 filed on August 13, 2004 (Patent Document 17) ), 10 / 917,867 (patent document 18), 10 / 917,889 (patent document 19), and US patent application 10 / 917,725 (patent document 20), such as An example of a storage method is described.

別の実施形態において、通知方式は既存のインターフェイスに準拠する通信に限定されない。ホストからメモリシステムへ割り当て情報を提供するため、既存のインターフェイスに適合しない追加的なコマンドを定義できる。そのような追加的なコマンドを使用するホストとカードは通常、最初に接続されるときにハンドシェークルーティンを必要とし、その上でそのような追加的なコマンドの使用が可能であることを確認できる。通常、そのような追加的なコマンドを使用できるホストとカードは、追加的なコマンドを使用できないホストまたはカードへ接続された場合に、追加的なコマンドなしでも動作できる。よって、そのような新規コマンドを使用するホストとメモリシステムにとって下位互換性は維持される。ファイル割り当て情報を伝えることに関係しない追加的なコマンドも供給される。例えば、ホストがある特定のファイルを消去または削除するための明示的なコマンドを定義できる。   In another embodiment, the notification scheme is not limited to communications compliant with existing interfaces. To provide allocation information from the host to the memory system, additional commands that do not fit into existing interfaces can be defined. Hosts and cards that use such additional commands typically require handshaking routines when they are first connected, on which they can confirm that the use of such additional commands is possible. Typically, hosts and cards that can use such additional commands can operate without additional commands when connected to a host or card that cannot use the additional commands. Thus, backward compatibility is maintained for the host and memory system using such new commands. Additional commands not related to conveying file allocation information are also provided. For example, an explicit command can be defined to erase or delete a particular file on the host.

これまで本発明の様々な態様をその例示的な実施形態との関係で説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。   While various aspects of the present invention have been described in relation to exemplary embodiments thereof, it is to be understood that the invention is entitled to protection within the full scope of the appended claims. I can do it.

現在実装されているホストと接続された不揮発性メモリシステムとを概略的に示す。1 schematically shows a non-volatile memory system connected to a currently implemented host. 図1の不揮発性メモリとして使用するフラッシュメモリシステム例のブロック図である。FIG. 2 is a block diagram of an example flash memory system used as the nonvolatile memory of FIG. 1. 図2のシステムに使用できるメモリセルアレイの代表的な回路図である。FIG. 3 is a typical circuit diagram of a memory cell array that can be used in the system of FIG. 図2のシステムの物理メモリの編制例を示す。An example of the physical memory organization of the system of FIG. 図4の物理メモリの一部分の拡大図を示す。FIG. 5 shows an enlarged view of a portion of the physical memory of FIG. 4. 図4および5の物理メモリの一部分のさらなる拡大図を示す。Figure 6 shows a further enlarged view of a portion of the physical memory of Figures 4 and 5; ホストと再プログラム可能なメモリシステムとの間の共通論理アドレスインターフェイスを示す。Fig. 2 illustrates a common logical address interface between a host and a reprogrammable memory system. ホストと再プログラム可能なメモリシステムとの間のファイルインターフェイスを示す。Fig. 2 shows a file interface between a host and a reprogrammable memory system. メモリシステムによる論理アドレス−論理ファイル変換に使用される論理アドレスインターフェイスを示す。Fig. 4 illustrates a logical address interface used for logical address to logical file translation by a memory system. メモリシステムにおける論理−物理アドレス翻訳がホストから受信するファイル−論理アドレス情報に依拠する、ホストとメモリシステムとの間の論理インターフェイスを示す。Fig. 4 illustrates a logical interface between a host and a memory system, where logical-physical address translation in the memory system relies on file-logical address information received from the host. ファイルがホストによって論理的に断片化し、その後ファイルが格納されるときにメモリシステムによって断片化が解消する、図10の論理インターフェイスを示す。FIG. 11 illustrates the logical interface of FIG. 10 where a file is logically fragmented by the host and then fragmented by the memory system when the file is stored. ディレクトリとファイルアロケーションテーブル(FAT)を用いたメモリシステムにおけるファイルAおよびBのファイル割り当て情報の格納を示す。The storage of file allocation information of files A and B in a memory system using a directory and a file allocation table (FAT) is shown. ホストファイルAが論理的に連続するホストデータクラスタとして送信される場合の通知方式の動作を示す。The operation of the notification method when the host file A is transmitted as a logically continuous host data cluster is shown. ホストファイルBが論理アドレスの飛躍を含むホストデータクラスタとして送信される場合の通知方式の動作を示す。The operation of the notification method when the host file B is transmitted as a host data cluster including a jump in logical address is shown. ディレクトリとファイルアロケーションテーブル(FAT)を含むメモリシステムにおけるファイルCおよびDのファイル割り当て情報の格納を示す。FIG. 5 shows storage of file allocation information of files C and D in a memory system including a directory and a file allocation table (FAT). ファイルCとファイルDとでセクタのクラスタを交替しながらホストファイルCおよびDが論理的に連続するクラスタとして送信される場合の通知方式を示す。A notification method in the case where the host files C and D are transmitted as logically continuous clusters while the sector cluster is exchanged between the file C and the file D is shown.

Claims (34)

複数のファイルのデータセクタを不揮発性メモリアレイに格納する方法であって、前記複数のファイルの各々のセクタはホストによって共通の論理アドレス空間にマッピングされる方法において、
ホストデータセクタが割り当てられたファイルを伝えるファイル割り当て情報を前記ホストから受信するステップと、
その後、前記不揮発性メモリアレイに格納する前記ホストデータセクタを前記ホストから受信するステップと、
その後、前記ホストからの前記ファイル割り当て情報に基づきこれが割り当てられた前記ファイルに応じて決定される前記不揮発性メモリアレイ内の物理位置に前記ホストデータセクタを格納するステップと、
を含む方法。
A method of storing data sectors of a plurality of files in a non-volatile memory array, wherein each sector of the plurality of files is mapped to a common logical address space by a host,
Receiving file allocation information from the host carrying a file to which a host data sector has been allocated;
Then receiving from the host the host data sector to be stored in the non-volatile memory array;
Then storing the host data sector at a physical location in the non-volatile memory array determined according to the file to which it has been assigned based on the file assignment information from the host;
Including methods.
請求項1記載の方法において、
前記ホストからのファイル割り当て情報は、ファイルアロケーションテーブル情報のセクタを含む方法。
The method of claim 1, wherein
The file allocation information from the host includes a sector of file allocation table information.
請求項2記載の方法において、
前記ホストデータセクタは、セクタからなるクラスタ内にあり、前記ファイルアロケーションテーブル情報のセクタは、前記クラスタを指し示すファイルアロケーションテーブル項目を含む方法。
The method of claim 2, wherein
The host data sector is in a cluster of sectors, and the sector of the file allocation table information includes a file allocation table entry that points to the cluster.
請求項1記載の方法において、
前記ホストからのファイル割り当て情報は、前記ファイル項目を収容するディレクトリ情報のセクタを含む方法。
The method of claim 1, wherein
The file allocation information from the host includes a sector of directory information containing the file item.
請求項1記載の方法において、
前記セクタは、前記ファイルからのセクタの格納に専らあてがわれた消去ブロックに格納される方法。
The method of claim 1, wherein
The method wherein the sectors are stored in an erase block dedicated to storing sectors from the file.
請求項5記載の方法において、
前記ホストデータセクタを格納した後に、前記セクタが前記ファイルにおける最終セクタであることを伝える追加情報を前記ホストから受信し、これに応じて前記ファイルは閉じられ、再生スケジュールに組み入れられる方法。
The method of claim 5, wherein
A method of receiving additional information from the host after storing the host data sector indicating that the sector is the last sector in the file, and in response the file is closed and incorporated into a playback schedule.
請求項1記載の方法において、
前記ホストから2つ以上の同じ制御データのセクタを受信するステップと、これに応じて前記ホストへステータス標識を提供しつつ再生操作を遂行するステップとをさらに含む方法。
The method of claim 1, wherein
Receiving two or more sectors of the same control data from the host; and correspondingly performing a playback operation while providing a status indicator to the host.
請求項1記載の方法において、
2つ以上の同じ制御データセクタを受信するステップと、これに応じて前記メモリアレイを停電に向けて準備するステップとをさらに含む方法。
The method of claim 1, wherein
Receiving two or more of the same control data sectors, and correspondingly preparing the memory array for a power failure accordingly.
最小消去単位としてメタブロックを有する不揮発性メモリアレイにホストファイルからのホストデータセクタを格納する方法であって、前記ホストファイルのセクタと他のファイルのセクタは共通の論理アドレス空間にマッピングされる方法において、
前記ホストファイルの第1の複数のデータセクタを受信するステップであって、前記第1の複数のセクタは前記論理アドレス空間の第1の部分を占めるステップと、
その後、前記ホストファイルのものではない第2の複数のセクタを受信するステップであって、前記第2の複数のセクタは前記論理アドレス空間の第2の部分を占めるステップと、
その後、前記ホストファイルの第3の複数のセクタを受信するステップであって、前記第3の複数のセクタは前記論理アドレス空間の第3の部分を占め、前記論理アドレス空間の前記第1の部分は前記論理アドレス空間の前記第3の部分から間隔をおくステップと、
前記論理アドレス空間の前記第1および第3の部分を前記ホストファイルに割り当てられたものとして識別する情報に応じて、前記第1の複数のセクタと前記第3の複数のセクタを前記メモリアレイの第1のメタブロックに格納するステップと、
前記第2の複数のセクタを前記メモリアレイの第2のメタブロックに格納するステップと、
を含む方法。
A method of storing host data sectors from a host file in a non-volatile memory array having a metablock as a minimum erasure unit, wherein the host file sectors and other file sectors are mapped to a common logical address space In
Receiving a first plurality of data sectors of the host file, wherein the first plurality of sectors occupy a first portion of the logical address space;
Then receiving a second plurality of sectors that are not of the host file, wherein the second plurality of sectors occupy a second portion of the logical address space;
Thereafter, receiving a third plurality of sectors of the host file, wherein the third plurality of sectors occupies a third portion of the logical address space and the first portion of the logical address space Is spaced from the third portion of the logical address space;
In response to information identifying the first and third portions of the logical address space as assigned to the host file, the first plurality of sectors and the third plurality of sectors are identified in the memory array. Storing in a first metablock;
Storing the second plurality of sectors in a second metablock of the memory array;
Including methods.
請求項9記載の方法において、
前記第1のメタブロックは、前記ホストファイルのデータの格納に専らあてがわれる方法。
The method of claim 9, wherein
The first metablock is dedicated to storing data of the host file.
請求項9記載の方法において、
前記論理アドレス空間の前記第1および第3の部分は、前記ホストによって送信されるディレクトリおよびファイルアロケーションテーブルセクタにより、前記ホストファイルに割り当てられたものとして識別される方法。
The method of claim 9, wherein
The method wherein the first and third portions of the logical address space are identified as assigned to the host file by a directory and file allocation table sector transmitted by the host.
請求項9記載の方法において、
前記論理アドレス空間の前記第2の部分は、前記論理アドレス空間の前記第1の部分から前記論理アドレス空間の前記第3の部分まで延在し、前記第2の複数のセクタを受信することに先立ち、前記第2の複数のセクタの第1のクラスタが前記ホストファイルに割り当てられていないことを伝えるディレクトリセクタを受信するステップをさらに含む方法。
The method of claim 9, wherein
The second portion of the logical address space extends from the first portion of the logical address space to the third portion of the logical address space and receives the second plurality of sectors. Prior to receiving a directory sector that communicates that a first cluster of the second plurality of sectors is not assigned to the host file.
請求項12記載の方法において、
前記第3の複数のセクタを受信することに先立ち、前記第3の複数のセクタの第1のクラスタが前記ホストファイルへ割り当てられていることを伝えるファイルアロケーションテーブルセクタを受信するステップをさらに含む方法。
The method of claim 12, wherein
Prior to receiving the third plurality of sectors, further comprising receiving a file allocation table sector indicating that a first cluster of the third plurality of sectors is assigned to the host file. .
最小消去単位としてメタブロックを有する不揮発性メモリアレイにホストデータファイルを格納する方法であって、
前記ホストデータファイルの第1の複数のデータセクタを受信するステップであって、前記第1の複数のセクタの各々は前記メモリアレイのために設定された論理アドレス空間の論理アドレスを有し、前記複数のセクタは前記論理アドレス空間の2つ以上の不連続部分を占める論理アドレスを有するステップと、
前記ホストデータファイルのものではない第2の複数のデータセクタを受信するステップであって、前記第2の複数のセクタの各々は前記論理アドレス空間の論理アドレスを有し、前記第2の複数のセクタは前記第1の複数のセクタの受信を交えながら受信されるステップと、
前記論理アドレス空間の前記2つ以上の不連続部分の前記データを、前記ホストデータファイルのデータだけを収容するメタブロックに格納するステップと、
を含む方法。
A method of storing a host data file in a non-volatile memory array having a metablock as a minimum erase unit,
Receiving a first plurality of data sectors of the host data file, each of the first plurality of sectors having a logical address in a logical address space set for the memory array; A plurality of sectors having logical addresses occupying two or more discontinuous portions of the logical address space;
Receiving a second plurality of data sectors that are not of the host data file, wherein each of the second plurality of sectors has a logical address in the logical address space; A sector is received while receiving the first plurality of sectors; and
Storing the data of the two or more discontinuous portions of the logical address space in a metablock containing only data of the host data file;
Including methods.
請求項14記載の方法において、
前記第1の複数のセクタの各々の受信に先立ち、前記第1の複数のセクタの各々に関するファイル割り当て情報を受信するステップをさらに含み、前記ファイル割り当て情報は前記第1の複数のセクタの各々を前記ホストデータファイルに属するものとして識別する方法。
The method of claim 14, wherein
Prior to receiving each of the first plurality of sectors, further comprising receiving file allocation information regarding each of the first plurality of sectors, the file allocation information including each of the first plurality of sectors. A method of identifying as belonging to the host data file.
請求項15記載の方法において、
前記ファイル割り当て情報は、ファイルアロケーションテーブルおよびディレクトリセクタの形をとる方法。
The method of claim 15, wherein
The file allocation information takes the form of a file allocation table and a directory sector.
請求項14記載の方法において、
前記ホストデータファイルの終端の前記論理アドレスを伝えるファイル終端情報を受信するステップと、これに応じて前記ホストデータファイルを閉じるステップと、ガーベッジコレクションに向けて前記ホストデータファイルのスケジュールを組むステップとをさら含む方法。
The method of claim 14, wherein
Receiving file end information conveying the logical address of the end of the host data file, closing the host data file accordingly, and scheduling the host data file for garbage collection. Further including methods.
メモリシステムを、ホストデータファイルのセクタを共通の論理アドレス空間に割り当てるホストと連係する方法であって、
前記メモリシステムが、前記ホストから複数のホストデータセクタを受信し、前記複数のセクタはホストファイルに割り当てられ、前記複数のホストデータセクタは前記ホストによって割り当てられた隣接しない論理アドレスを有し、
前記メモリシステムが、前記複数のセクタが前記ホストファイルに割り当てられているか否かを判定し、かつ前記メモリシステムが、前記複数のセクタが前記ホストファイルに割り当てられているとする判定に応じて、前記複数のセクタが隣接して配置されるように前記メモリアレイの一部に前記複数のセクタを格納する方法。
A method of coordinating a memory system with a host that assigns sectors of a host data file to a common logical address space,
The memory system receives a plurality of host data sectors from the host, the plurality of sectors are assigned to a host file, the plurality of host data sectors have non-adjacent logical addresses assigned by the host;
In response to determining whether the plurality of sectors are assigned to the host file and the memory system determines that the plurality of sectors are assigned to the host file, A method of storing the plurality of sectors in a part of the memory array such that the plurality of sectors are arranged adjacent to each other.
請求項18記載の方法において、
前記メモリシステムは、前記ホストから受信するファイル割り当て情報を用いて前記複数のセクタの各々が前記ホストファイルに割り当てられているか否かを判定する方法。
The method of claim 18, wherein:
The memory system determines whether each of the plurality of sectors is allocated to the host file using file allocation information received from the host.
請求項19記載の方法において、
前記ホストから受信する前記ファイル割り当て情報は、1つ以上のファイルアロケーションテーブルセクタを含む方法。
The method of claim 19, wherein
The method wherein the file allocation information received from the host includes one or more file allocation table sectors.
請求項19記載の方法において、
前記ホストから受信する前記ファイル割り当て情報は、1つ以上のディレクトリセクタを含む方法。
The method of claim 19, wherein
The file allocation information received from the host includes one or more directory sectors.
請求項18記載の方法において、
前記メモリシステムは、さらに、前記ホストファイルの終端が受信済みと判定し、これに応じて前記ファイルを閉じ、かつガーベッジコレクションに向けて前記ファイルのスケジュールを組む方法。
The method of claim 18, wherein:
The memory system further determines that the end of the host file has been received, closes the file accordingly, and schedules the file for garbage collection.
ホストデータファイルのセクタを共通の論理アドレス空間に割り当てるホストと連係する不揮発性メモリシステムであって、
ホストファイルに割り当てられた複数のホストデータセクタを受信するメモリインターフェイスであって、前記複数のホストデータセクタは前記ホストによって割り当てられた隣接しない論理アドレスを有するメモリインターフェイスと、
前記複数のセクタが前記ホストファイルに割り当てられているか否かを判定し、かつ前記複数のセクタが前記ホストファイルに割り当てられているとする判定に応じて、前記複数のセクタが隣接して配置されるように前記メモリアレイの一部に前記複数のセクタを格納するメモリコントローラと、
を備える不揮発性メモリシステム。
A non-volatile memory system associated with a host that allocates a sector of a host data file to a common logical address space,
A memory interface for receiving a plurality of host data sectors assigned to a host file, wherein the plurality of host data sectors have non-adjacent logical addresses assigned by the host;
In response to determining whether the plurality of sectors are allocated to the host file and determining that the plurality of sectors are allocated to the host file, the plurality of sectors are arranged adjacent to each other. A memory controller for storing the plurality of sectors in a part of the memory array,
A non-volatile memory system comprising:
請求項23記載の不揮発性メモリシステムにおいて、
前記メモリコントローラは、前記ホストから受信するファイル割り当て情報を用いて前記複数のセクタの各々が前記ホストファイルに割り当てられているか否かを判定する不揮発性メモリシステム。
The non-volatile memory system of claim 23.
The non-volatile memory system, wherein the memory controller determines whether each of the plurality of sectors is allocated to the host file using file allocation information received from the host.
請求項24記載の不揮発性メモリシステムにおいて、
前記ホストから受信する前記ファイル割り当て情報は、1つ以上のファイルアロケーションテーブルセクタを含む不揮発性メモリシステム。
The non-volatile memory system of claim 24.
The non-volatile memory system, wherein the file allocation information received from the host includes one or more file allocation table sectors.
請求項24記載の不揮発性メモリシステムにおいて、
前記ホストから受信する前記ファイル割り当て情報は、1つ以上のディレクトリセクタを含む揮発性メモリシステム。
The non-volatile memory system of claim 24.
The file allocation information received from the host is a volatile memory system including one or more directory sectors.
請求項23記載の不揮発性メモリシステムにおいて、
前記メモリコントローラは、さらに、前記ホストファイルの終端が受信済みと判定し、これに応じて前記ファイルを閉じ、かつガーベッジコレクションに向けて前記ファイルのスケジュールを組む不揮発性メモリシステム。
The non-volatile memory system of claim 23.
The non-volatile memory system, wherein the memory controller further determines that the end of the host file has been received, closes the file accordingly, and schedules the file for garbage collection.
ホストから受信するデータを不揮発性メモリアレイに格納する不揮発性メモリシステムであって、
前記メモリシステムのために設定される論理アドレス空間から割り当てられた論理アドレスを有するデータセクタとして複数のホストファイルを受信し、前記複数のホストファイルの前記論理アドレス空間への割り当てに関する割り当て情報を受信するインターフェイスと、
論理アドレスを有するデータセクタの格納位置を判定する論理−物理翻訳回路であって、前記位置は、前記割り当て情報をもとに前記複数のホストファイルのどれが前記論理アドレスに割り当てられているかに従って決定する論理−物理翻訳回路と、
を備える不揮発性メモリシステム。
A non-volatile memory system for storing data received from a host in a non-volatile memory array,
Receiving a plurality of host files as data sectors having logical addresses allocated from a logical address space set for the memory system, and receiving allocation information relating to the allocation of the plurality of host files to the logical address space; Interface,
A logical-physical translation circuit for determining a storage position of a data sector having a logical address, wherein the position is determined according to which of the plurality of host files is allocated to the logical address based on the allocation information. Logical-physical translation circuit to
A non-volatile memory system comprising:
請求項28記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、メモリコントローラの一部である不揮発性メモリシステム。
The non-volatile memory system of claim 28.
The logical-physical translation circuit is a nonvolatile memory system that is part of a memory controller.
請求項28記載の不揮発性メモリシステムにおいて、
前記インターフェイスは、前記セクタを受信することに先立ち、前記セクタに関する割り当て情報を受信する不揮発性メモリシステム。
The non-volatile memory system of claim 28.
The non-volatile memory system, wherein the interface receives allocation information about the sector prior to receiving the sector.
請求項28記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、前記セクタを、前記ホストファイルの別のセクタの格納位置に物理的に隣接する位置に格納する不揮発性メモリシステム。
The non-volatile memory system of claim 28.
The logical-physical translation circuit is a nonvolatile memory system that stores the sector at a location physically adjacent to a storage location of another sector of the host file.
請求項28記載の不揮発性メモリシステムにおいて、
前記論理−物理翻訳回路は、前記複数のホストファイルの各々のセクタを、個別のブロックが前記ホストファイルのセクタだけを収容するように不揮発性メモリアレイの別々のブロックに格納する不揮発性メモリシステム。
The non-volatile memory system of claim 28.
The non-volatile memory system, wherein the logical-physical translation circuit stores each sector of the plurality of host files in a separate block of a non-volatile memory array such that a separate block contains only the sector of the host file.
請求項28記載の不揮発性メモリシステムにおいて、
前記割り当て情報は、前記不揮発性メモリアレイにおいて、前記複数のホストファイルのセクタの格納には使われないブロックに格納される不揮発性メモリシステム。
The non-volatile memory system of claim 28.
In the nonvolatile memory array, the allocation information is stored in a block that is not used for storing sectors of the plurality of host files.
請求項28記載の不揮発性メモリシステムにおいて、
前記インターフェイスは、ホストファイルの終端の指示を受信し、これに応じて前記メモリアレイに格納される前記ホストファイルのセクタは別のホストファイルのセクタと同じブロックに格納される不揮発性メモリシステム。
The non-volatile memory system of claim 28.
The non-volatile memory system, wherein the interface receives an end-of-host instruction and, in response, the host file sector stored in the memory array is stored in the same block as another host file sector.
JP2008545919A 2005-12-13 2006-12-07 Logical address file storage Pending JP2009519555A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/300,568 US20070136553A1 (en) 2005-12-13 2005-12-13 Logically-addressed file storage systems
US11/302,764 US7877540B2 (en) 2005-12-13 2005-12-13 Logically-addressed file storage methods
PCT/US2006/061733 WO2007070763A2 (en) 2005-12-13 2006-12-07 Logically-addressed file storage

Publications (1)

Publication Number Publication Date
JP2009519555A true JP2009519555A (en) 2009-05-14

Family

ID=38163589

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008545919A Pending JP2009519555A (en) 2005-12-13 2006-12-07 Logical address file storage

Country Status (4)

Country Link
EP (1) EP1960863A2 (en)
JP (1) JP2009519555A (en)
TW (1) TWI336856B (en)
WO (1) WO2007070763A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645918B2 (en) 2012-08-24 2017-05-09 Samsung Electronics Co., Ltd. Storage devices including non-volatile memory and memory controller and methods of allocating write memory blocks

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI385520B (en) * 2008-02-29 2013-02-11 Via Tech Inc Management methods and systems for storage units
JP2009211234A (en) * 2008-03-01 2009-09-17 Toshiba Corp Memory system
TWI492050B (en) * 2010-04-12 2015-07-11 Phison Electronics Corp Storage device, memory controller, and data protection method
US9727570B2 (en) * 2011-06-03 2017-08-08 Apple Inc. Mount-time unmapping of unused logical addresses in non-volatile memory systems
TWI489272B (en) 2012-04-03 2015-06-21 Phison Electronics Corp Data protecting method, and memory controller and memory storage device using the same
CN103377149B (en) * 2012-04-16 2016-05-11 群联电子股份有限公司 Method, Memory Controller and the memorizer memory devices of protected data
US9952769B2 (en) * 2015-09-14 2018-04-24 Microsoft Technology Licensing, Llc. Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1069420A (en) * 1996-08-29 1998-03-10 Sony Corp Information recording and reproducing device and information recording and reproducing method
TWI246064B (en) * 2002-07-29 2005-12-21 Milsys Ltd Data storage and processing device, electronic appliance, electronic system and method of operating an appliance that responds to a plurality of commands
JPWO2005103903A1 (en) * 2004-04-20 2007-08-30 松下電器産業株式会社 Nonvolatile storage system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645918B2 (en) 2012-08-24 2017-05-09 Samsung Electronics Co., Ltd. Storage devices including non-volatile memory and memory controller and methods of allocating write memory blocks

Also Published As

Publication number Publication date
WO2007070763A2 (en) 2007-06-21
WO2007070763A3 (en) 2007-09-13
EP1960863A2 (en) 2008-08-27
TWI336856B (en) 2011-02-01
TW200809594A (en) 2008-02-16

Similar Documents

Publication Publication Date Title
US7877540B2 (en) Logically-addressed file storage methods
JP5178514B2 (en) Method and system for dual mode access for storage devices
US7877539B2 (en) Direct data file storage in flash memories
US20070136553A1 (en) Logically-addressed file storage systems
US8214583B2 (en) Direct file data programming and deletion in flash memories
JP5236469B2 (en) Mass data storage system
US7984233B2 (en) Direct data file storage implementation techniques in flash memories
JP4533956B2 (en) Free up data storage capacity of flash memory system
JP4977703B2 (en) Non-volatile memory with scheduled playback operation
JP2009519555A (en) Logical address file storage
US20100146197A1 (en) Non-Volatile Memory And Method 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
US20090182791A1 (en) Non-Volatile Memories And Method With Adaptive File Handling In A Directly Mapped File Storage System
US20070143378A1 (en) Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070143567A1 (en) Methods for data alignment in non-volatile memories with a directly mapped file storage system
US20080307158A1 (en) Method and apparatus for providing data type and host file information to a mass storage system
US20070143560A1 (en) Non-volatile memories with memory allocation for a directly mapped file storage system
JP2009503729A (en) Interface system that operates with logical address space and direct data file method
KR101378031B1 (en) Management of memory blocks that directly store data files
JP5068754B2 (en) Improved host interface
US20090164745A1 (en) System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
JP4441577B2 (en) Conversion data unit storage in memory system with fixed size storage block
KR20090108694A (en) Use of a direct data file system with a continuous logical address space interface
JP2009503740A (en) Indexing file data in reprogrammable non-volatile memory that directly stores data files
KR20090108695A (en) Managing a lba interface in a direct data file memory system