JP2005190289A - Memory controller, flash memory system therewith, and method for controlling flash memory - Google Patents

Memory controller, flash memory system therewith, and method for controlling flash memory Download PDF

Info

Publication number
JP2005190289A
JP2005190289A JP2003432517A JP2003432517A JP2005190289A JP 2005190289 A JP2005190289 A JP 2005190289A JP 2003432517 A JP2003432517 A JP 2003432517A JP 2003432517 A JP2003432517 A JP 2003432517A JP 2005190289 A JP2005190289 A JP 2005190289A
Authority
JP
Japan
Prior art keywords
zone
block
flash memory
data
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003432517A
Other languages
Japanese (ja)
Other versions
JP4433792B2 (en
Inventor
Rikiya Kawada
力也 川田
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.)
TDK Corp
Original Assignee
TDK 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
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2003432517A priority Critical patent/JP4433792B2/en
Publication of JP2005190289A publication Critical patent/JP2005190289A/en
Application granted granted Critical
Publication of JP4433792B2 publication Critical patent/JP4433792B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide a flash memory system that increases an allowable number for defective blocks to occur as a whole by lending a block that belongs to a certain zone to any zone where the number of defective blocks that have occurred has exceeded the allowable number. <P>SOLUTION: The memory controller includes: an allocation management function for managing the correspondence between a zone composed of a plurality of blocks within a flash memory and a logical block address space of a host system allocated to the zone; an access control function for controlling access to the zone; a borrower/lender management function for managing the correspondence between a lender's zone and a borrower's zone when the blocks are lent and borrowed between the zones; and an information setting function for setting, in the redundant area of the block lent, information showing that the blocks are being lent when data about the logical block address allocated to the borrower's zone are written. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関する。   The present invention relates to a memory controller, a flash memory system including the memory controller, and a flash memory control method.

近年、メモリカードやシリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されていることが要求される。   In recent years, a flash memory is often used as a semiconductor memory used in a memory system such as a memory card or a silicon disk. This flash memory is a kind of non-volatile memory, and is required to retain data regardless of whether power is turned on.

ところで、上記のような装置に特に用いられることが多いNAND型フラッシュメモリは、メモリセルを消去状態(論理値の「1」)から書込状態(論理値の「0」)に変化させる場合には、メモリセル単位で行うことができるが、メモリセルを書込状態(論理値の「0」)から消去状態(論理値の「1」)に変化させる場合には、メモリセル単位で行うことができず、複数のメモリセルからなる所定の消去単位(ブロック)でしかこれを行うことができない。かかる一括消去動作は、一般的にブロック消去と呼ばれている。   By the way, the NAND flash memory that is often used in the above-described devices is used when a memory cell is changed from an erased state (logical value “1”) to a written state (logical value “0”). Can be performed in units of memory cells. However, when a memory cell is changed from a written state (logical value “0”) to an erased state (logical value “1”), it must be performed in memory cells. This can only be done with a predetermined erase unit (block) consisting of a plurality of memory cells. Such a batch erase operation is generally called block erase.

従って、NAND型フラッシュメモリで、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理が一般的に行なわれている。このようにしてデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内での物理ブロックアドレスの対応関係は、データを書替える毎に動的に変化する。従って、この対応関係を管理するためには、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。   Therefore, when data is rewritten in the NAND flash memory, new data (data after rewriting) is written to the erased block which has been erased, and old data (data before rewriting) is written. A process of erasing the written block is generally performed. When data is rewritten in this way, the data after rewriting is written in a different block from before rewriting, so the correspondence between the logical block address given by the host system and the physical block address in the flash memory Changes dynamically every time data is rewritten. Therefore, in order to manage this correspondence, an address conversion table showing the correspondence between the logical block address and the physical block address is required.

このアドレス変換テーブルを、フラッシュメモリ内の全ブロックを対象にして作成した場合、フラッシュメモリの容量の増加に伴いアドレス変換テーブルのサイズが大きくなっているため、アドレス変換テーブルを作成する際の領域的、又は時間的な負担が大きくなる。この問題を解決するため、特許文献1(特開2000ー284996)では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。   If this address translation table is created for all blocks in the flash memory, the size of the address translation table increases as the flash memory capacity increases. Or, the time burden increases. In order to solve this problem, in Patent Document 1 (Japanese Patent Laid-Open No. 2000-284996), the flash memory is divided into a plurality of zones, and an address conversion table is created for the blocks allocated to each zone.

又、上記ゾーンを採用したフラッシュメモリシステムでは、不良ブロックの発生を考慮して、ホストシステム側のアドレス空間(特定範囲の論理ブロックアドレスに対応したアドレス空間)対して、ゾーンを構成するブロックを余分に割当てている。
特開2000ー284996号公報
In addition, in the flash memory system adopting the above zone, in consideration of the occurrence of a defective block, an extra block constituting the zone is added to the host system side address space (address space corresponding to a specific range of logical block addresses). Assigned.
JP 2000-284996 A

上記のようにフラッシュメモリ内の複数のブロックでゾーンを構成した場合に、各ゾーンに割当てる予備的なブロック(不良ブロックの発生を考慮して、余分に割当てられたブロック)の数を多くすると、予備的なブロックの比率が高くなり同一容量のフラッシュメモリでカバーできるホストシステム側のアドレス空間が狭くなる(以下、同一容量のフラッシュメモリでカバーできるホストシステム側のアドレス空間の広狭を使用効率という。)。一方、各ゾーンに割当てる予備的なブロックの数を少なくすると、フラッシメモリの
使用効率は向上するが、不良ブロックの発生に対する許容量(許容できる不良ブロックの発生数)が低下する。このようなことを考慮して、各ゾーンの予備的なブロックの数は決定されるが、初期不良や長期使用による不良ブロック化等により、不良ブロックの発生数が許容量を越える場合がある。
When a zone is configured with a plurality of blocks in the flash memory as described above, if the number of spare blocks (an extra allocated block in consideration of the occurrence of a bad block) allocated to each zone is increased, The ratio of spare blocks increases and the address space on the host system side that can be covered by the flash memory of the same capacity becomes narrower (hereinafter, the width of the address space on the host system side that can be covered by the flash memory of the same capacity is called usage efficiency). ). On the other hand, if the number of spare blocks allocated to each zone is reduced, the use efficiency of the flash memory is improved, but the allowable amount for the generation of defective blocks (the allowable number of defective blocks generated) decreases. Considering this, the number of preliminary blocks in each zone is determined. However, the number of defective blocks may exceed the allowable amount due to initial failure or defective block formation due to long-term use.

そこで、本発明は、不良ブロックの発生数が許容量を越えたゾーンに対して、他のゾーンに属するブロックを貸出すことにより、不良ブロックの発生に対する全体としての許容量を向上させたメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。   Accordingly, the present invention provides a memory controller that improves the overall tolerance for the occurrence of defective blocks by lending blocks belonging to other zones to the zone where the number of occurrences of the defective blocks exceeds the tolerance. And a flash memory system including the memory controller, and a flash memory control method.

本発明に係る目的は、フラッシュメモリ内の複数ブロックで構成されたゾーンと、該ゾーンに割当てられるホストシステム側の論理ブロックアドレス空間との対応を管理する割当管理機能と、
前記ゾーンに対するアクセスを制御するアクセス制御機能と、
前記ゾーン間でブロックの貸借をするときの貸出側のゾーンと借入側のゾーンの対応を管理する貸借管理機能と、
前記貸出側のゾーンから貸出されたブロックに、前記借入側のゾーンに割当てられている論理ブロックアドレスのデータを書込んだときに、前記貸出されたブロックの冗長領域に、貸出されていることを示す情報を設定する情報設定機能を備えたことを特徴とするメモリコントローラによって達成される。又、本発明に係る目的は、前記メモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステムによっても達成される。
An object of the present invention is to provide an allocation management function for managing the correspondence between a zone composed of a plurality of blocks in a flash memory and a logical block address space on the host system side allocated to the zone,
An access control function for controlling access to the zone;
A loan management function for managing the correspondence between the zone on the lending side and the zone on the borrowing side when lending blocks between the zones; and
When the data of the logical block address assigned to the borrowing zone is written in the block lent out from the lent zone, the block is lent out in the redundant area of the lent block. This is achieved by a memory controller having an information setting function for setting information to be shown. The object of the present invention is also achieved by a flash memory system comprising the memory controller and a flash memory.

ここで、「ゾーン間でブロックの貸借をする」とは、一方のゾーンに割当てられている論理ブロックアドレスのデータを、他方のゾーン内のブロックに書込むことを意味している。   Here, “lending / leaving a block between zones” means writing data of a logical block address assigned to one zone to a block in the other zone.

又、本発明によれば、前記貸借管理機能によって、前記貸出側のゾーンと前記借入側のゾーンの対応関係に関する情報が、前記フラッシュメモリ内の特定のブロックに保存されることが好ましい。   Further, according to the present invention, it is preferable that information relating to the correspondence relationship between the lending side zone and the borrowing side zone is stored in a specific block in the flash memory by the lending management function.

ここで、「前記貸出側のゾーンと前記借入側のゾーンの対応関係に関する情報」としては、前記貸出側のゾーンと前記借入側のゾーンの対応関係を示した貸借管理テーブルが挙げられる。   Here, the “information regarding the correspondence between the lending side zone and the borrowing side zone” includes a lending management table showing the correspondence between the lending side zone and the borrowing side zone.

又、本発明によれば、前記冗長領域の特定のビットに設定される論理値が、前記貸出されていることを示す情報に対応することが好ましい。   According to the present invention, it is preferable that a logical value set in a specific bit of the redundant area corresponds to the information indicating that the lending is performed.

つまり、貸出側のゾーン内のブロックに書込まれているデータが、借入側のゾーンに割当てられている論理ブロックアドレスのデータであるか、又は貸出側のゾーンに割当てられている論理ブロックアドレスのデータであるかを、特定のビットに設定される論理値によって判別できることが好ましい。   In other words, the data written to the block in the lending side zone is the data of the logical block address assigned to the borrowing side zone, or the logical block address assigned to the lending side zone. It is preferable that whether it is data can be determined by a logical value set in a specific bit.

又、本発明によれば、前記貸借管理機能が、前記ゾーン毎の不良ブロック数に関する情報に基づいて前記貸出側のゾーンと借入側のゾーンの対応関係を決定することが好ましい。   Further, according to the present invention, it is preferable that the lending management function determines a correspondence relationship between the lending side zone and the borrowing side zone based on information relating to the number of defective blocks for each zone.

このようにすることにより、不良ブロック数の多い借入側のゾーンに対して、不良ブロック数の少ない貸出側のゾーンを円滑に割当てることができる。   By doing so, it is possible to smoothly assign the lending-side zone with a small number of defective blocks to the borrowing-side zone with a large number of defective blocks.

又、本発明によれば、前記貸借管理機能によって、前記ラッシュメモリ内の不良ブロックに関する情報が、フラッシュメモリ内の特定のブロックに保存されることが好ましい。   Further, according to the present invention, it is preferable that the information regarding the defective block in the rush memory is stored in a specific block in the flash memory by the loan management function.

ここで、不良ブロックに関する情報としては、不良ブロックの物理ブロックアドレスの示した情報等が挙げられる。   Here, the information regarding the bad block includes information indicated by the physical block address of the bad block.

又、本発明によれば、前記貸借管理機能によって、前記ゾーン毎の不良ブロック数に関する情報が、フラッシュメモリ内の特定のブロックに保存されることが好ましい。   Further, according to the present invention, it is preferable that the information relating to the number of defective blocks for each zone is stored in a specific block in the flash memory by the loan management function.

本発明に係る目的は、ホストシステム側の論理ブロックアドレス空間と、フラッシュメモリ内の複数ブロックで構成されたゾーンとの対応関係に従って、前記ホストシステム側から前記フラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
書込み先のブロックを確保できない第1のゾーンに対して割当てられた第2のゾーン内のブロックに、前記第1のゾーンに対応する論理ブロックアドレスのデータを書込む処理と前記第2のゾーン内のブロックに対する書込み処理で、前記第1のゾーンに対応する論理ブロックアドレスのデータが書込まれたブロックの冗長領域に、前記第1のゾーンに対応する論理ブロックアドレスのデータが書込まれていることを示す情報を設定する処理とを含むフラッシュメモリの制御方法によって達成される。
An object of the present invention is to provide a flash memory that controls access from the host system side to the flash memory in accordance with a correspondence relationship between a logical block address space on the host system side and a zone composed of a plurality of blocks in the flash memory. Control method,
A process of writing data of a logical block address corresponding to the first zone to a block in the second zone assigned to the first zone in which a block to be written to cannot be secured; and in the second zone In the writing process to the block, data of the logical block address corresponding to the first zone is written in the redundant area of the block in which the data of the logical block address corresponding to the first zone is written. This is achieved by a flash memory control method including a process for setting information indicating the above.

本発明によれば、不良ブロックの発生数が許容量を越えたゾーンに対して、他のゾーンに属するブロックを貸出すようにしたので、不良ブロックの発生に対する全体としての許容量を向上させることができる。又、不良ブロックの発生数が許容量を越えたゾーンに対して、上記のような回避策が用意されているので、予備的なブロックの比率を低くしてフラッシメモリの使用効率を向上させることもできる。   According to the present invention, since a block belonging to another zone is lent out to a zone in which the number of occurrences of defective blocks exceeds the allowable amount, the overall allowable amount for the generation of defective blocks can be improved. Can do. Also, since the above-mentioned workaround is prepared for the zone where the number of defective blocks exceeds the allowable amount, the ratio of spare blocks should be lowered to improve the usage efficiency of the flash memory. You can also.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム1の説明]
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常ホストシステム4に着脱可能に装着されて使用され、ホストシステム4に対して一種の外部記憶装置として用いられる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[Description of flash memory system 1]
FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present invention. As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a controller 3 that controls the flash memory 2. The flash memory system 1 is normally used by being detachably attached to the host system 4, and is used as a kind of external storage device for the host system 4.

尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。   Examples of the host system 4 include various information processing apparatuses such as a personal computer and a digital still camera that process various information such as characters, sounds, and image information.

フラッシュメモリ2は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、1ブロックは32ページで構成され、1ページは512バイトのユーザ領域と16バイトの冗長領域で構成されている。   The flash memory 2 is a device that executes reading or writing in units of pages and erasing in units of blocks. For example, one block is composed of 32 pages, and one page is a 512-byte user area and a 16-byte redundant area. It is configured.

コントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積されている
。以下に各ブロックの機能を説明する。
The controller 3 includes a host interface control block 5, a microprocessor 6, a host interface block 7, a work area 8, a buffer 9, a flash memory interface block 10, an ECC (error collection code) block 11, And a flash memory sequencer block 12. The controller 3 constituted by these functional blocks is integrated on one semiconductor chip. The function of each block will be described below.

マイクロプロセッサ6は、コントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。   The microprocessor 6 is a functional block that controls the operation of the entire functional blocks constituting the controller 3.

ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づきホストインターフェースブロック7は動作する。   The host interface control block 5 is a functional block that controls the operation of the host interface block 7. Here, the host interface control block 5 includes an operation setting register (not shown) for setting the operation of the host interface block 7, and the host interface block 7 operates based on the operation setting register.

ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続され、かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインタ―フェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   The host interface block 7 is a functional block that exchanges data, address information, status information, and external command information with the host system 4. That is, when the flash memory system 1 is attached to the host system 4, the flash memory system 1 and the host system 4 are connected to each other via the external bus 13, and in this state, the host system 4 connects to the flash memory system 1. The supplied data or the like is taken into the controller 3 using the host interface block 7 as an entrance, and the data or the like supplied from the flash memory system 1 to the host system 4 is sent to the host system 4 using the host interface block 7 as an exit. To be supplied.

さらに、ホストインターフェースブロック7は、ホストシステム4より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。   Further, the host interface block 7 includes a task file register (not shown) for temporarily storing a host address and an external command supplied from the host system 4 and an error register (not shown) set when an error occurs. ) Etc.

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される機能ブロックである。   The work area 8 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and is a functional block configured by a plurality of SRAM (Static Random Access Memory) cells.

バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4が受け取り可能な状態になるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2が書込み可能な状態となるまでバッファ9に保持される。   The buffer 9 is a functional block that temporarily holds data read from the flash memory 2 and data to be written to the flash memory 2. That is, data read from the flash memory 2 is held in the buffer 9 until the host system 4 can receive data, and data to be written to the flash memory 2 is stored in the buffer 9 until the flash memory 2 becomes writable. Retained.

フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。   The flash memory sequencer block 12 is a functional block that controls the operation of the flash memory 2 based on internal commands. The flash memory sequencer block 12 includes a plurality of registers (not shown), and information necessary for executing an internal command is set in the plurality of registers. When information necessary for executing an internal command is set in the plurality of registers, the flash memory sequencer block 12 executes processing based on the information. Here, the “internal command” is a command given from the controller 3 to the flash memory 2 and is distinguished from an “external command” which is a command given from the host system 4 to the flash memory system 1.

フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報及び内部コマンド情報の授受を行う機能ブロックである。   The flash memory interface block 10 is a functional block that exchanges data, address information, status information, and internal command information with the flash memory 2 via the internal bus 14.

ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[メモリセルの説明]
次に、図2及び3参照して図1に示したフラッシュメモリ2を構成するメモリセル16の具体的な構造について説明する。
The ECC block 11 generates an error correction code to be added to data to be written to the flash memory 2, and detects and corrects errors included in the read data based on the error correction code added to the read data. Function block.
[Description of memory cell]
Next, a specific structure of the memory cell 16 constituting the flash memory 2 shown in FIG. 1 will be described with reference to FIGS.

図2は、フラッシュメモリを構成するメモリセル16の構造を概略的に示す断面図である。同図に示したように、メモリセル16は、P型半導体基板17に形成されたN型のソース拡散領域18及びドレイン拡散領域19と、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17を覆って形成されたトンネル酸化膜20と、トンネル酸化膜20上に形成されたフローティングゲ―ト電極21と、フローティングゲート電極21上に形成された絶縁膜22と、絶縁膜22上に形成されたコントロールゲ―ト電極23とから構成される。このような構成を有するメモリセル16が、フラッシュメモリ内で複数個直列に接続されている。   FIG. 2 is a cross-sectional view schematically showing the structure of the memory cell 16 constituting the flash memory. As shown in the figure, the memory cell 16 includes an N-type source diffusion region 18 and a drain diffusion region 19 formed in the P-type semiconductor substrate 17, and a P between the source diffusion region 18 and the drain diffusion region 19. Tunnel oxide film 20 formed to cover type semiconductor substrate 17, floating gate electrode 21 formed on tunnel oxide film 20, insulating film 22 formed on floating gate electrode 21, and insulating film 22 The control gate electrode 23 is formed on the top. A plurality of memory cells 16 having such a configuration are connected in series in the flash memory.

メモリセル16は、フローティングゲート電極21に電子が注入されているか否かによって、「消去状態(電子が蓄積されていない状態)」と「書込状態(電子が蓄積されている状態)」のいずれかの状態が示される。ここで、1つのメモリセル16は1ビットのデータに対応し、メモリセル16の「消去状態」が論理値の「1」のデータに対応し、メモリセル16の「書込状態」が論理値の「0」のデータに対応する。   The memory cell 16 has either an “erased state (a state where no electrons are accumulated)” or a “written state (a state where electrons are accumulated)” depending on whether electrons are injected into the floating gate electrode 21 or not. Is shown. Here, one memory cell 16 corresponds to 1-bit data, the “erased state” of the memory cell 16 corresponds to data of “1” of the logical value, and the “written state” of the memory cell 16 corresponds to the logical value. Corresponds to “0” data.

「消去状態」においては、フローティングゲート電極21に電子が蓄積されていないため、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されていないときには、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にチャネルが形成されず、ソース拡散領域18とドレイン拡散領域19は電気的に絶縁される。一方、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されると、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にチャネル(図示せず)が形成され、ソース拡散領域18とドレイン拡散領域19は、このチャネルによって電気的に接続される。   In the “erased state”, since electrons are not accumulated in the floating gate electrode 21, when the read voltage (high level voltage) is not applied to the control gate electrode 23, the source diffusion region 18 and the drain diffusion region 19 In the meantime, no channel is formed on the surface of the P-type semiconductor substrate 17, and the source diffusion region 18 and the drain diffusion region 19 are electrically insulated. On the other hand, when a read voltage (high level voltage) is applied to the control gate electrode 23, a channel (not shown) is formed on the surface of the P-type semiconductor substrate 17 between the source diffusion region 18 and the drain diffusion region 19. The source diffusion region 18 and the drain diffusion region 19 are electrically connected by this channel.

すなわち、「消去状態」においてはコントロールゲート電極23に読出し電圧(高レベル電圧)が印加されていない状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に絶縁され、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加された状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に接続される。   That is, in the “erased state”, when the read voltage (high level voltage) is not applied to the control gate electrode 23, the source diffusion region 18 and the drain diffusion region 19 are electrically insulated, and the control gate electrode 23 In the state where the read voltage (high level voltage) is applied, the source diffusion region 18 and the drain diffusion region 19 are electrically connected.

図3は、「書込状態」であるメモリセル16を概略的に示す断面図である。同図に示したように、「書込状態」とは、フローティングゲート電極21に電子が蓄積されている状態を指す。フローティングゲート電極21はトンネル酸化膜20及び絶縁膜22に挟まれているため、一旦、フローティングゲート電極21に注入された電子は、きわめて長時間フローティングゲート電極21内にとどまる。この「書込状態」においては、フローティングゲート電極21に電子が蓄積されているので、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されているか否かに関わらず、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にはチャネル24が形成される。したがって、「書込状態」においてはソース拡散領域18とドレイン拡散領域19とは、コントロ―ルゲート電極23に読出し電圧(高レベル電圧)が印加されているか否かに関わらず、チャネル24によって常に電気的に接続状態となる。   FIG. 3 is a cross-sectional view schematically showing the memory cell 16 in the “written state”. As shown in the figure, the “written state” refers to a state in which electrons are accumulated in the floating gate electrode 21. Since the floating gate electrode 21 is sandwiched between the tunnel oxide film 20 and the insulating film 22, the electrons once injected into the floating gate electrode 21 stay in the floating gate electrode 21 for a very long time. In this “write state”, since electrons are accumulated in the floating gate electrode 21, regardless of whether or not a read voltage (high level voltage) is applied to the control gate electrode 23, A channel 24 is formed on the surface of the P-type semiconductor substrate 17 between the drain diffusion region 19. Therefore, in the “written state”, the source diffusion region 18 and the drain diffusion region 19 are always electrically connected by the channel 24 regardless of whether or not a read voltage (high level voltage) is applied to the control gate electrode 23. Connection state.

又、上記メモリセル16が消去状態であるか書込状態であるかは、次のようにして読み出すことができる。メモリセル16はフラッシュメモリ内で複数個直列に接続されている。この直列体の中で選択するメモリセル16に低レベル電圧を印加し、それ以外のメモリセル16のコントロールゲート電極23に高レベル電圧を印加する。この状態でメモリセル16の直列体が導通状態であるか否かの検出が行われる。その結果、この直列体が導通状態であれば、選択されたメモリセル16は書込状態であると判断され、絶縁状態であれ
ば、選択されたフラッシュメモリセル16は消去状態であると判断される。このようにして、直列体に含まれる任意のメモリセル16に保持されたデータが「0」であるのか「1」であるのかを読み出すことができる。
Whether the memory cell 16 is in an erased state or a written state can be read as follows. A plurality of memory cells 16 are connected in series in the flash memory. A low level voltage is applied to the memory cell 16 selected in the series body, and a high level voltage is applied to the control gate electrode 23 of the other memory cells 16. In this state, it is detected whether or not the serial body of the memory cells 16 is in a conductive state. As a result, if the serial body is in a conductive state, it is determined that the selected memory cell 16 is in a written state, and if it is in an isolated state, it is determined that the selected flash memory cell 16 is in an erased state. The In this way, it is possible to read out whether the data held in any memory cell 16 included in the serial body is “0” or “1”.

又、消去状態であるメモリセル16を書込状態に変化させる場合は、コントロールゲート電極23が高電位側となる高電圧を印加し、トンネル酸化膜20を介してフローティングゲート電極21へ電子を注入する。この際、FN(ファウラ―ノルトハイム)トンネル電流が流れフロ―ティングゲート電極21に電子が注入される。一方、書込状態であるフラッシュメモリセル16を消去状態に変化させる場合は、コントロールゲート電極23が低電位側となる高電圧を印加し、トンネル酸化膜20を介してフローティングゲート電極21に蓄積された電子を排出する。
[フラッシュメモリのメモリ構造の説明]
次に、フラッシュメモリのメモリ構造を説明する。図4は、フラッシュメモリのメモリ構造を概略的に示す図である。図4に示したように、フラッシュメモリはデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
When the memory cell 16 in the erased state is changed to the written state, a high voltage is applied so that the control gate electrode 23 is on the high potential side, and electrons are injected into the floating gate electrode 21 through the tunnel oxide film 20. To do. At this time, an FN (Fowler-Nordheim) tunnel current flows and electrons are injected into the floating gate electrode 21. On the other hand, when changing the flash memory cell 16 in the written state to the erased state, a high voltage is applied to the control gate electrode 23 on the low potential side, and the voltage is stored in the floating gate electrode 21 via the tunnel oxide film 20. Discharge electrons.
[Description of flash memory structure]
Next, the memory structure of the flash memory will be described. FIG. 4 schematically shows a memory structure of the flash memory. As shown in FIG. 4, the flash memory is composed of pages, which are processing units for reading and writing data, and blocks, which are data erasing units.

上記ページは、例えば512バイトのユーザ領域25と、16バイトの冗長領域26によって構成される。ユーザ領域25は、主に、ホストシステム4から供給されるデ―タが格納される領域であり、冗長領域26は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加情報が格納される領域である。   The page is composed of, for example, a user area 25 of 512 bytes and a redundant area 26 of 16 bytes. The user area 25 is an area mainly storing data supplied from the host system 4, and the redundant area 26 stores additional information such as an error collection code, a corresponding logical block address and a block status. It is an area.

エラ―コレクションコードは、ユーザ領域25に格納されたデータに含まれる誤りを訂正するための付加情報であり、ECCブロックによって生成される。このエラ―コレクションコードに基づき、ユーザ領域25に格納されたデータに含まれる誤りが所定数以下であれば、その誤りが訂正される。   The error collection code is additional information for correcting an error included in the data stored in the user area 25, and is generated by an ECC block. Based on the error collection code, if the number of errors included in the data stored in the user area 25 is equal to or less than a predetermined number, the error is corrected.

対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが格納されていない場合は消去済ブロックであると判断する。   The corresponding logical block address indicates to which logical block address the block corresponds when data is stored in the block. If no data is stored in the block, the corresponding logical block address is not stored. Therefore, whether or not the block is an erased block depends on whether or not the corresponding logical block address is stored. Judgment can be made. That is, if the corresponding logical block address is not stored, it is determined that the block is an erased block.

ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行なうことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。[論理ブロックアドレスと物理ブロックアドレスの説明]
フラッシュメモリはデータの上書きができないため、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なわなければならない。この際、消去はブロック単位で処理されるため、古いデータ(書替前のデータ)が書込まれていたページが含まれるブロックの、全ページのデータが消去されてしまう。従って、データの書替えを行なう場合、書替えるページが含まれるブロックの、他のページのデータについても、消去済ブロックに移動させる処理が必要となる。
The block status is a flag indicating whether or not the block is a bad block (a block in which data cannot be normally written). If it is determined that the block is a bad block, the block status is bad. A flag indicating a block is set. [Description of logical block address and physical block address]
Since data cannot be overwritten in the flash memory, when rewriting data, new data (data after rewriting) is written to the erased block that has been erased, and old data (data before rewriting). The process of erasing the block in which "." Has been written must be performed. At this time, since erasure is processed in units of blocks, data of all pages of a block including a page in which old data (data before rewriting) is written is erased. Therefore, when data is rewritten, it is necessary to perform processing for moving the data of other pages of the block including the page to be rewritten to the erased block.

上記のようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応
関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリの冗長領域に書込まれている対応論理ブロックアドレスに基づいて作成され、データが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。
[ゾーンの構成の説明]
本発明に係るフラッシュメモリシステムでは、フラッシュメモリ内の領域を複数のゾーンに分割して使用する方法を採用しており、各ゾーンは、フラッシュメモリ内の複数のブロックで構成されている。図5は、1024のブロックでゾーンを構成した例を示している。この例では、ゾーンは、1024のブロックB0000〜B1023で構成され、各ブロックは、32のページP00〜P31で構成されている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリの仕様によって異なる。
When rewriting data as described above, since the data after rewriting is written in a different block from before rewriting, the logical block address given from the host system side and the physical block which is the block address in the flash memory The correspondence with the address changes dynamically every time data is rewritten. For this reason, an address conversion table showing the correspondence between logical block addresses and physical block addresses is required. This address conversion table is created based on the corresponding logical block address written in the redundant area of the flash memory, and each time the data is rewritten, the correspondence relationship of the part involved in the rewriting is updated.
[Description of zone configuration]
The flash memory system according to the present invention employs a method of dividing an area in the flash memory into a plurality of zones, and each zone is composed of a plurality of blocks in the flash memory. FIG. 5 shows an example in which a zone is composed of 1024 blocks. In this example, the zone is composed of 1024 blocks B0000 to B1023, and each block is composed of 32 pages P00 to P31. Here, the block is a unit of erasing processing, and the page is a unit of reading and writing processing. Note that the storage capacity of each block and the number of pages of each block differ depending on the specifications of the flash memory.

又、このゾーンは、一定範囲の論理ブロックアドレス空間に割当てられている。例えば、図6に示した例では、1024のブロックで構成されたゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てている。ここで、ゾーンを構成するブロックが、24ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので、実質的には23ブロック分が余計に割当てられていることになる。尚、ゾーンを構成するブロックの数は、フラッシュメモリシステムの用途やフラッシュメモリの仕様に応じて適宜設定される。   This zone is assigned to a certain range of logical block address space. For example, in the example shown in FIG. 6, a zone composed of 1024 blocks is allocated to a space of 1000 blocks of logical block addresses. Here, the reason why the blocks constituting the zone are allocated to the extra 24 blocks is because of the occurrence of defective blocks. However, when data is rewritten and new data is once written to another block, and then the block where the old data has been written is erased, a spare block for writing the new data is necessary. In effect, an extra 23 blocks are allocated. The number of blocks constituting the zone is appropriately set according to the use of the flash memory system and the specification of the flash memory.

又、各ブロックの冗長領域に対応論理ブロックアドレスを書込むときに、ホストシステム側から与えられる論理ブロックアドレスをそのまま書込んでも、又は各ゾーンに割当てられた論理ブロックアドレス空間内での通番(各ゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合は0〜999までの通番)を書込んでも良い(以下、各ゾーンに割当てられた論理ブロックアドレス空間内での通番を論理通番と言う。)。ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。例えば、図6でゾーン0に割当てられた論理ブロックアドレス空間の先頭アドレスがADD0の場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン0:ADD0
ゾーン1:ADD0+1000×1
ゾーン2:ADD0+1000×2



ゾーンN:ADD0+1000×N
尚、本発明に係るフラッシュメモリシステムでは、後述するようにゾーン間でブロックの貸借を行なっているため、貸出側のゾーンに属するブロックの冗長領域には、貸出側のゾーンに割当てられた論理ブロックアドレスと、借入側のゾーンに割当てられた論理ブロックアドレスが記述されることになる。この際、貸出側のゾーンに属するブロックの冗長領域に、各ゾーンに割当てられた論理通番だけを記述した場合、その論理通番だけでは、その論理通番が貸出側の論理通番であるか、又は借入側の論理通番であるかを判断することができなくなる。従って、ブロックの冗長領域に、各ゾーンに割当てられた論理通番を記述する場合には、そのブロックが貸出されているか否かを示す情報を設定する必要がある。この情報を設定する場合、例えば、冗長領域の特定のビットを貸出フラグに割当て、そのビットの論理値でそのブロックが貸出されているか否かを示すようにすればよい。
[ゾーン間でのブロック貸借の説明]
本発明に係るフラッシュメモリシステムでは、ゾーンに割当てられている論理ブロック
アドレス空間のデータを書込むときに、そのゾーン内で書込み先のブロックを確保できなくなった場合に、他のゾーンからブロックを借用することにより不足したブロックを補充している。このブロックの貸借を行なうときの、貸出側のゾーンと借入側のゾーンとの組合せは、不良ブロックの発生数等を考慮して適宜設定することが好ましい。
Also, when writing the corresponding logical block address to the redundant area of each block, the logical block address given from the host system side is written as it is, or the serial number in each logical block address space assigned to each zone (each If a zone is assigned to a logical block address space for 1000 blocks, a serial number from 0 to 999 may be written (hereinafter, a serial number in the logical block address space assigned to each zone is called a logical serial number. .) Here, the logical sequence number can be converted into an actual logical block address by adding an offset corresponding to each zone. For example, when the top address of the logical block address space assigned to zone 0 in FIG. 6 is ADD0, the following offset is assigned to each zone.
Zone 0: ADD0
Zone 1: ADD0 + 1000x1
Zone 2: ADD0 + 1000x2



Zone N: ADD0 + 1000 × N
Since the flash memory system according to the present invention lends blocks between zones as will be described later, a logical block assigned to a lending side zone is included in a redundant area of a block belonging to the lending side zone. The address and the logical block address assigned to the borrower's zone will be described. At this time, if only the logical sequence number assigned to each zone is described in the redundant area of the block belonging to the lending-side zone, the logical sequence number is the lending-side logical sequence number or borrowing only with that logical sequence number. It is not possible to determine whether it is a logical sequence number on the side. Therefore, when the logical serial number assigned to each zone is described in the redundant area of the block, it is necessary to set information indicating whether or not the block is lent out. When this information is set, for example, a specific bit in the redundant area may be assigned to the lending flag, and the logical value of the bit may indicate whether or not the block is lent.
[Explanation of block lending between zones]
In the flash memory system according to the present invention, when data in a logical block address space allocated to a zone is written, if a block to be written to cannot be secured in the zone, the block is borrowed from another zone. By doing so, the missing blocks are replenished. The combination of the loan-side zone and the borrowing-side zone when lending the block is preferably set as appropriate in consideration of the number of defective blocks generated.

尚、貸出側のゾーンと借入側のゾーンとの組合せは、書込み先のブロックを確保できないゾーンが発生したときに、逐次設定することが好ましい。例えば、書込み先のブロックを確保できないゾーンが発生したときに、そのゾーンに対して不良ブロックの発生数が少ないゾーンを逐次割当てるようにすればよい。但し、先天性不良ブロック(出荷時からの不良ブロック)の周辺では、後天性不良ブロック(使用中に発生した不良ブロック)の発生確立が高いと考えられるため、先天性不良ブロックの多いエリアに割当てられたゾーンと、先天性不良ブロックの少ないエリアに割当てられたゾーンを対応させるような組合せを予め設定しておき、書込み先のブロックを確保できないゾーンが発生したときに、その設定に従ってブロックの貸借を行なっても良い。   It should be noted that the combination of the lending-side zone and the borrowing-side zone is preferably set sequentially when a zone in which a writing destination block cannot be secured occurs. For example, when a zone in which a write destination block cannot be secured occurs, a zone having a small number of defective blocks may be sequentially assigned to the zone. However, in the vicinity of congenital defective blocks (defective blocks from the time of shipment), it is considered that there is a high probability of acquiring acquired defective blocks (defective blocks that occurred during use). A combination that matches the assigned zone and the zone assigned to the area with few congenital bad blocks is set in advance. May be performed.

又、貸出側のゾーンと借入側のゾーンとの対応関係については、その対応関係を示したテーブル(以下、貸出側のゾーンと借入側のゾーンとの対応関係を示したテーブルを貸借管理テーブルという。)を作成し、フラッシュメモリ内の特定のブロックに保存しておくことが好ましい。例えば、図7に示した貸借管理テーブルでは、借入側のゾーン番号と貸出側のゾーン番号を併記することにより、対応関係を示している。このテーブルに基づいてブロックの貸借を行なった場合、例えば、ゾーン0はゾーン1からブロックを借用し、ゾーン5はゾーン4からブロックを借用することになる。   The correspondence between the lending-side zone and the borrowing-side zone is a table showing the correspondence (hereinafter, the table showing the correspondence between the lending-side zone and the borrowing-side zone is called a lending management table). .) Is preferably created and stored in a specific block in the flash memory. For example, in the loan management table shown in FIG. 7, the correspondence relationship is indicated by writing the zone number on the borrowing side and the zone number on the lending side together. When borrowing a block based on this table, for example, zone 0 borrows a block from zone 1, and zone 5 borrows a block from zone 4.

又、書込み先のブロックを確保できないゾーンが発生したときに、そのゾーンに対して不良ブロックの発生数が少ないゾーンを逐次割当てるようにする場合には、各ゾーン毎の不良ブロックの数、又は不良ブロックの物理ブロックアドレス等をフラッシュメモリ内の特定のブロックに保存しておくことが好ましい。このようにすれば、各ゾーンの不良ブロックの数を容易に把握できるため、貸出側のゾーンを円滑に割当てることができる。   In addition, when a zone in which a block to be written to cannot be secured occurs, and when a zone with a small number of bad blocks is assigned to the zone, the number of bad blocks in each zone or a bad It is preferable to store the physical block address of the block in a specific block in the flash memory. In this way, since the number of defective blocks in each zone can be easily grasped, the lending-side zone can be assigned smoothly.

次に、フラッシュメモリにアクセスするときに用いられるアドレス変換テーブルについて、図面を参照して説明する。図8は、借入側のアドレス変換テーブルの一例を示したものであり、1024のブロックでゾーンを構成し、このゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合のアドレス変換テーブルを示している。このアドレス変換テーブルには、各論理ブロックアドレスに対応するデータが格納されているブロックの物理ブロックアドレスが、論理ブロックアドレス順に記述されている。   Next, an address conversion table used when accessing the flash memory will be described with reference to the drawings. FIG. 8 shows an example of an address conversion table on the borrowing side, and shows an address conversion table when a zone is composed of 1024 blocks and the zone is allocated to a logical block address space for 1000 blocks. ing. In this address conversion table, physical block addresses of blocks storing data corresponding to each logical block address are described in the order of logical block addresses.

ここで、物理ブロックアドレスを記述する場合に、フラッシュメモリ内での実際のアドレスを記述しても良いが、アドレス変換テーブルを作成するSRAM上の領域を少なくするため、物理ブロックアドレスの順番で付けた各ゾーン内での通番(0〜1023)が記述されることが多い(以下、物理ブロックアドレスの順番で付けた各ゾーン内での通番を物理通番と言う。)。この場合、アドレス変換テーブル上の物理通番だけでは、借用しているブロックであるか否かの判断ができないので、アドレス変換テーブルに借用フラグ等を設け、この借用フラグにより借用しているブロックであるか否かを示すようにすることが好ましい。例えば、借用しているブロックであるか否かを示すビットを設け、このビットの論理値(「0」又は「1」)で借用しているブロックであるか否かを示すようにすればよい。図8に示した借入側のアドレス変換テーブルでは、借用したブロックではない場合に借用フラグを「0」に、借用したブロックの場合に借用フラグを「1」にしている。   Here, when the physical block address is described, the actual address in the flash memory may be described. However, in order to reduce the area on the SRAM for creating the address conversion table, the physical block address is assigned in the order. In many cases, serial numbers (0 to 1023) in each zone are described (hereinafter, serial numbers assigned in the order of physical block addresses are referred to as physical serial numbers). In this case, since it is not possible to determine whether the block is borrowed only by the physical serial number on the address conversion table, a borrowing flag is provided in the address conversion table and the block is borrowed by this borrowing flag. It is preferable to indicate whether or not. For example, a bit indicating whether or not the block is borrowed may be provided, and a logical value (“0” or “1”) of this bit may indicate whether or not the block is borrowed. . In the borrower's address conversion table shown in FIG. 8, the borrowing flag is set to “0” when the block is not borrowed, and the borrowing flag is set to “1” when the block is borrowed.

又、物理通番(0〜1023)は、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ内での実際のアドレスに変換することができる。例えば、フラッシュメ
モリ内のブロックをアドレス順でゾーン0からゾーンNに割付けた場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン0:0
ゾーン1:1024×1
ゾーン2:1024×2



ゾーンN:1024×N
尚、対応するデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、対応するデータが格納されていないことを示すデータ、例えば「111 1111 1111b(2進数)」が設定される。
The physical serial number (0 to 1023) can be converted into an actual address in the flash memory by adding an offset corresponding to each zone. For example, when blocks in the flash memory are assigned to zones 0 to N in the order of addresses, the following offsets are assigned to each zone.
Zone 0: 0
Zone 1: 1024x1
Zone 2: 1024x2



Zone N: 1024 x N
For a logical block address in which the corresponding data is not stored, data indicating that the corresponding data is not stored in the portion corresponding to the logical block address in the address conversion table, not the physical block address, for example, “111 1111 1111b (binary number)” is set.

又、図8に示した借入側のアドレス変換テーブルを作成する場合は、例えば、1000ブロック分の借用フラグと物理通番(物理ブロックアドレス)を記述できる領域をSRAM上に確保し、初期設定として借用フラグを記述する部分に「0」(借用したブロックではないことを示すフラグ)を設定し、物理ブロックアドレスを記述する領域に「111 1111 1111b(2進数)」(データが格納されていないことを示すデータ)を設定する。その後、アドレス変換テーブルを作成するゾーン(借入側のゾーン)に割当てられているブロックの冗長領域を順次読出していき、冗長領域の対応論理ブロックアドレスを記述する部分に論理ブロックアドレスを示す論理通番が記述されていた場合には、アドレス変換テーブルのその論理通番に対応した部分(その論理ブロックアドレスに対応した部分)に、その論理通番が記述されていたブロックの物理通番を記述する。この処理を、ゾーンを構成する1024ブロックについて順次行なうことにより、借入側のゾーンに格納されているデータに対応した部分のアドレス変換テーブルが作成される。   When creating the borrower's address conversion table shown in FIG. 8, for example, an area that can describe the borrowing flag and physical serial number (physical block address) for 1000 blocks is secured on the SRAM and borrowed as an initial setting. “0” (a flag indicating that the block is not borrowed) is set in the portion describing the flag, and “111 1111 1111b (binary number)” (indicating that no data is stored in the area describing the physical block address) Set the data shown). After that, the redundant area of the block assigned to the zone for creating the address conversion table (the borrower's zone) is read sequentially, and the logical sequence number indicating the logical block address is written in the portion describing the corresponding logical block address of the redundant area. If it is described, the physical serial number of the block in which the logical serial number is described is described in the part corresponding to the logical serial number (the part corresponding to the logical block address) of the address conversion table. By sequentially performing this process for the 1024 blocks constituting the zone, an address conversion table corresponding to the data stored in the borrower's zone is created.

上記処理では、貸出側のゾーンから借用しているブロックに格納されているデータに対応した部分の変換テーブルが作成されないため、以下のような追加処理が必要となる。この追加処理は、上記借入側のゾーンと対応する貸出側のゾーンのブロック(冗長領域)を読出し、冗長領域の貸出フラグに割当てられているビットに、貸出していることを示すフラグが設定されている場合(例えば、貸出していないときに論理値の「0」を、貸出しているときに論理値の「1」を設定するのであれば、「1」が設定されていた場合)に行なわれる。   In the above process, the conversion table corresponding to the data stored in the block borrowed from the lending side zone is not created, so the following additional process is required. In this additional processing, a block (redundant area) of the lending side zone corresponding to the borrowing side zone is read, and a flag indicating that the lending is set is set in the bit assigned to the lending flag of the redundant area. (For example, if the logical value “0” is set when not rented, and if the logical value “1” is set when lent), then “1” is set).

この追加処理を、貸出側のブロックの冗長領域と、借入側のアドレス変換テーブルを示している図9を参照して説明する。貸出側のブロックの冗長領域で、物理通番6のブロックの冗長領域には、貸出していることを示すフラグ「1」が設定されており、対応論理ブロックアドレスを記述する部分には、論理通番3が記述されている。つまり、貸出側の物理通番6のブロックには、借入側のゾーンに割当てられている論理ブロックアドレス空間のデータが格納されており、そのデータは論理ブロックアドレス空間内での論理通番は3(000 0000 0011b(2進数))に対応している。この借用ブロックに関する情報を借入側のアドレス変換テーブルに追加する処理では、借入側のアドレス変換テーブルの論理通番3に対応した部分の借用フラグを「1」に設定し、物理ブロックアドレスを記述する部分に物理通番6(000 0000 0110b(2進数))を記述する。上記のような追加処理を、貸出側の冗長領域に、貸出していることを示すフラグ「1」が設定されている全ブロックについて行なえば、借入側のアドレス変換テーブルが完成する。尚、貸出側のゾーンから借用しているブロックが無い場合は、上記追加処理を行なう必要がない。   This additional processing will be described with reference to FIG. 9 showing the redundant area of the block on the lending side and the address conversion table on the borrowing side. In the redundant area of the block on the lending side, in the redundant area of the block with the physical sequence number 6, the flag “1” indicating that it is lent is set, and in the portion describing the corresponding logical block address, the logical sequence number 3 Is described. In other words, the block of the physical serial number 6 on the lending side stores the data of the logical block address space allocated to the zone on the borrowing side, and the logical serial number in the logical block address space is 3 (000 0000 0011b (binary number)). In the process of adding information on the borrowed block to the borrower's address translation table, the borrow flag corresponding to the logical serial number 3 of the borrower's address translation table is set to “1” and the physical block address is described Describes the physical serial number 6 (000 0000 0110b (binary number)). If the above-described additional processing is performed for all blocks in which the flag “1” indicating that lending is performed in the lending-side redundant area, the borrowing-side address conversion table is completed. If there is no block borrowed from the zone on the lending side, there is no need to perform the additional processing.

又、貸出側のアドレス変換テーブルを作成する場合は、例えば、1000ブロック分の物理ブロックアドレスを記述できる領域をSRAM上に確保し、初期設定として物理ブロックアドレスを記述する部分に「111 1111 1111b(2進数)」(データが格納されていないことを示すデータ)を設定する。その後、アドレス変換テーブルを作成するゾーン(貸出側のゾーン)に割当てられているブロックの冗長領域を順次読出していき、冗長領域の対応論理ブロックアドレスを記述する部分に論理ブロックアドレスを示す論理通番が記述されていた場合には、アドレス変換テーブルのその論理通番に対応した部分(その論理ブロックアドレスに対応した部分)に、その論理通番が記述されていたブロックの物理通番を記述する。この処理を、ゾーン内の貸出されていないブロック(貸出していないことを示すフラグ「0」が設定されているブロック)について順次行なうことにより、貸出側のアドレス変換テーブルが完成する。   When creating the address conversion table on the lending side, for example, an area where the physical block addresses for 1000 blocks can be described is secured on the SRAM, and “111 1111 1111b ( Binary)) ”(data indicating that no data is stored). After that, the redundant area of the block assigned to the zone for creating the address conversion table (lending side zone) is read sequentially, and the logical sequence number indicating the logical block address is written in the portion describing the corresponding logical block address of the redundant area. If it is described, the physical serial number of the block in which the logical serial number is described is described in the part corresponding to the logical serial number (the part corresponding to the logical block address) of the address conversion table. This processing is sequentially performed for blocks that are not lent in the zone (blocks that are set with a flag “0” indicating that they are not lent), thereby completing the address conversion table on the rent side.

次に貸出側のゾーンから借用したブロックに、借入側のゾーンに割当てられている論理ブロックアドレス空間のデータを書込む処理について説明する。尚、この書込み処理は、通常、借入側のゾーン内で、データの書込み先となるブロック(消去済ブロック、又は、有効なデータが書込まれていないブロック)を確保できない場合に行われる。又、書込み先のブロックを確保できなくなったゾーンに、貸出側のゾーンが設定されていない場合には、各ゾーン毎の不良ブロックの数を参照して貸出側のゾーンの割当てが行なわれる。   Next, processing for writing data in the logical block address space allocated to the borrowing zone to the block borrowed from the lending zone will be described. This write process is usually performed when a block (erased block or block in which valid data is not written) that is a data write destination cannot be secured in the borrowing zone. In addition, when a lending side zone is not set in a zone in which a writing destination block cannot be secured, the lending side zone is allocated with reference to the number of defective blocks in each zone.

この処理では、最初に貸出側のゾーンに対する消去済ブロックの検索が行なわれる。この検索では、例えば、図10(a)に示したような消去済ブロック検索用テーブルが用いられる。この消去済ブロック検索用テーブルは、ゾーンを構成する各ブロックを、SRAM上の各ビットに対応させ、各ビットの論理値(「0」又は「1」)により、データが書込まれている状態、又はデータが書込まれていない状態を示したものである。ここで、消去済ブロック検索用テーブル上のビットは、ゾーンを構成する1024のブロック(物理通番0〜1023)に対応している。この対応関係については、消去済ブロック検索用テーブル上のビットを、上の行から下の行へ、各行を左から右へ物理ブロックアドレス順に対応させている(物理通番の順序で対応させている。)。従って、消去済ブロック検索用テーブルの左上のビットが、物理通番0のブロックに対応し、右下のビットが、物理通番1023のブロックに対応する。   In this process, first, an erased block is searched for the lending side zone. In this search, for example, an erased block search table as shown in FIG. 10A is used. In this erased block search table, each block constituting the zone is associated with each bit on the SRAM, and data is written according to the logical value (“0” or “1”) of each bit. Or a state in which no data is written. Here, the bits on the erased block search table correspond to 1024 blocks (physical serial numbers 0 to 1023) constituting the zone. With respect to this correspondence, the bits on the erased block search table are associated with each other in the order of physical block addresses from the upper row to the lower row, and from the left to the right in the order of the physical block addresses. .) Therefore, the upper left bit of the erased block search table corresponds to the block having the physical sequence number 0, and the lower right bit corresponds to the block having the physical sequence number 1023.

又、図10(a)に示した消去済ブロック検索用テーブルでは、消去済ブロック検索用テーブル上の各ビットに対応したブロックに、データが書込まれている場合又は不良ブロックであることを示すブロックステータスが記述されている場合は、そのビットに「0」を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに「1」を設定している。尚、この消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。例えば、消去済ブロック検索用テーブルを作成するSRAM上の領域に「0」を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに「1」を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、ゾーンを構成するブロックの冗長領域に記述されているデータを読出したときにこの処理を行なえば、消去済ブロックに対応するビットだけに「1」が設定され、消去済ブロックでないブロックに対応するビットは予め設定した「0」のままになる。又、作成後は、消去済ブロックにデータを書込んだときに、そのブロックに対応するビットを「1」から「0」に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを「0」から「1」に変更する更新処理を逐次行なう必要がある。   Further, the erased block search table shown in FIG. 10A indicates that data is written in a block corresponding to each bit on the erased block search table or that it is a defective block. When the block status is described, “0” is set to the bit, and when the data is not written (in the case of the erased block), “1” is set to the bit. The erased block search table can be created together with the address conversion table. For example, “0” is set in the SRAM area for creating the erased block search table, and the corresponding logical block address is not described in the redundant area of each block and the block status indicating that it is a bad block is not described. Sometimes, if the bit corresponding to the block is set to “1”, the address conversion table can be created together. In other words, if this process is performed when the data described in the redundant area of the blocks constituting the zone is read out, only “1” is set to the bit corresponding to the erased block, and this corresponds to the block that is not the erased block. The bit to be maintained remains “0” set in advance. After creation, when data is written to an erased block, the bit corresponding to that block is changed from “1” to “0”, and the block in which data is written is erased. Therefore, it is necessary to sequentially perform update processing for changing the bit corresponding to the block from “0” to “1”.

次に、この消去済ブロック検索用テーブルを用いた消去済ブロックの検索を、図10(b)を参照して説明する。この消去済ブロックの検索では、物理通番0のブロックに対応
するビット(一番上の行の、一番左のビット)から、物理通番1023のブロックに対応するビット(一番下の行の、一番右のビット)までを走査していき、消去済ブロックに対応する「1」のビットを検索する。ここで、前記走査は、上の行から下の行へ、各行を左から右へ向かって行なわれる。
Next, retrieval of erased blocks using the erased block search table will be described with reference to FIG. In this erased block search, the bit corresponding to the block with the physical sequence number 1023 (from the leftmost bit in the top row) to the bit corresponding to the block with the physical sequence number 1023 (in the bottom row, (The rightmost bit) is scanned, and a bit of “1” corresponding to the erased block is searched. Here, the scanning is performed from the upper row to the lower row and from the left to the right in each row.

図10(b)に示した消去済ブロック検索用テーブルで、一番上の行の、一番左のビットから走査を開始した場合、上から4番目の行の、左から5番目のビットが「1」なので、ここで検索を終了し、このビットに対応する物理通番28のブロックに、借入側のゾーンに割当てられている論理ブロックアドレス空間のデータが書込まれる。   In the erased block search table shown in FIG. 10B, when scanning is started from the leftmost bit in the top row, the fifth bit from the left in the fourth row from the top is Since it is “1”, the search is terminated here, and the data of the logical block address space allocated to the borrower's zone is written in the block of the physical serial number 28 corresponding to this bit.

尚、この消去済ブロック検索用テーブルは、貸出側のゾーンに割当てられている論理ブロックアドレス空間のデータを書込む消去済ブロックを検索する場合も同様に使用され、次回の検索は、上から4番目の行の、左から6番目のビットから走査が開始される。更に、このような検索を続けていき、一番下の行の、一番右のビットまで走査が進んだときは、一番上の行の、一番左のビットに戻り走査が続けられる。   This erased block search table is used in the same way when searching for an erased block into which data in the logical block address space allocated to the renting zone is written. Scanning starts from the sixth bit from the left in the th row. Further, such a search is continued, and when scanning proceeds to the rightmost bit in the bottom row, scanning returns to the leftmost bit in the top row and scanning is continued.

次に、貸出側の上記消去済ブロック検索用テーブルを用いて検索した消去済ブロックに、借入側のゾーンに割当てられている論理ブロックアドレス空間のデータを書込む処理について説明する。この書込み処理では、図1に示したバッファ9に書込みデータを取込んだ後、フラッシュメモリシーケンサブロック12が有するレジスタに、以下のような書込み処理の設定がなされる。
1)内部コマンドとして内部書込みコマンドが、フラッシュメモリシーケンサブロック12内の所定のレジスタに設定される。
2)貸出側の上記消去済ブロック検索用テーブルを用いて検索された消去済ブロックの物理通番に、貸出側のゾーンに対応したオフセットが加えられ、このオフセットの加算によって生成された物理ブロックアドレスにページ番号に相当する5ビット(32のページを識別するためのビット)が付加されたページのアドレスが、フラッシュメモリシ―ケンサブロック12内の所定のレジスタに設定される。
Next, a process for writing the data of the logical block address space allocated to the borrower side zone into the erased block retrieved using the erased block search table on the lending side will be described. In this write process, after the write data is taken into the buffer 9 shown in FIG. 1, the following write process is set in the register of the flash memory sequencer block 12.
1) An internal write command is set in a predetermined register in the flash memory sequencer block 12 as an internal command.
2) An offset corresponding to the zone on the lending side is added to the physical serial number of the erased block retrieved using the erased block search table on the lending side, and the physical block address generated by adding this offset is added. The address of the page to which 5 bits (bits for identifying 32 pages) corresponding to the page number are added is set in a predetermined register in the flash memory sequencer block 12.

その後、上記書込み処理の設定に基づいて、フラッシュメモリシーケンサブロック12が処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロック10から、内部バス14を介してフラッシュメモリ2に内部書込みコマンドを実行するためのコマンド情報やアドレス情報等が供給される。又、バッファ9に保持されている書込みデータも、内部バス14を介してフラッシュメモリ2に供給され、上記フラッシュメモリシ―ケンサブロック12内の所定のレジスタに設定したページにデータが書込まれる。   Thereafter, the flash memory sequencer block 12 executes processing based on the setting of the write processing. When this processing is executed, command information and address information for executing an internal write command are supplied from the flash memory interface block 10 to the flash memory 2 via the internal bus 14. The write data held in the buffer 9 is also supplied to the flash memory 2 via the internal bus 14, and the data is written to a page set in a predetermined register in the flash memory sequencer block 12.

又、上記書込み処理の終了後に、データを書込んだブロックの冗長領域に、貸出していることを示すフラグが設定されると共に、対応論理ブロックアドレスを記述する部分にそのブロックに書込んだデータの論理通番(借入側のゾーンに割当てられている論理ブロックアドレス空間内での論理通番)が書込まれる。この冗長領域への書込み処理は、冗長領域に書込むデータを設定するバッファに上記フラグや論理通番等のデータを設定した後に、フラッシュメモリシ―ケンサブロック12内の所定のレジスタにコマンドやアドレスを設定することにより上述の書込み処理と同様に実行できる。   In addition, after completion of the writing process, a flag indicating that the data is lent out is set in the redundant area of the block in which the data has been written, and the data written in the block is described in the portion describing the corresponding logical block address. A logical serial number (a logical serial number in the logical block address space allocated to the borrower's zone) is written. In the writing process to the redundant area, after setting data such as the flag and the logical serial number in a buffer for setting data to be written to the redundant area, a command and an address are assigned to a predetermined register in the flash memory sequencer block 12. By setting, it can be executed in the same manner as the above-described writing process.

次に、借用したブロックに書込まれているデータを、読出す処理について説明する。借用したブロックに書込まれているデータを読出す場合は、読出すデータの論理ブロックアドレスに割当てられている借入側のゾーン内のブロックではなく、貸出側のゾーン内のブロックからデータが読出されるので、読出すデータの論理ブロックアドレスが貸出側のゾーン内の物理ブロックアドレスに変換される。つまり、借用したブロックに書込まれてい
るデータの読出し処理では、図8に示した借入側のアドレス変換テーブルによって与えられる物理通番に対して、貸出側のオフセットが加えられ、変換テーブルによって与えられる物理通番が貸出側のゾーン内のブロックに対応する物理ブロックアドレスに変換される。尚、貸出側のオフセットが加えられるのは、図8に示した借入側のアドレス変換テーブルで、借用フラグに「1」が設定されているところの物理通番だけで、借用フラグに「0」が設定されているところの物理通番に対しては、借入側のオフセットが加えられる。
Next, processing for reading data written in the borrowed block will be described. When reading data written in a borrowed block, the data is read from the block in the lending side, not the block in the borrowing zone assigned to the logical block address of the data to be read. Therefore, the logical block address of the data to be read is converted into a physical block address in the rent side zone. In other words, in the process of reading the data written in the borrowed block, the lending-side offset is added to the physical sequence number given by the borrowing-side address conversion table shown in FIG. The physical serial number is converted into a physical block address corresponding to a block in the lending side zone. The offset on the lending side is added only to the physical serial number where “1” is set in the borrowing flag in the address conversion table on the borrowing side shown in FIG. 8, and “0” is set in the borrowing flag. The borrower's offset is added to the set physical serial number.

上記のようにして得られた物理ブロックアドレスに基づいて読出し処理を行なう場合、図1に示したフラッシュメモリシーケンサブロック12が有するレジスタに、以下のような読出し処理の設定がなされる。
1)内部コマンドとして内部読出しコマンドが、フラッシュメモリシーケンサブロック12内の所定のレジスタに設定される。
2)アドレス変換テーブルによって与えられる物理通番に、貸出側のゾーンに対応したオフセットが加えられ、このオフセットの加算によって生成された物理ブロックアドレスにページ番号に相当する5ビット(32のページを識別するためのビット)が付加されたページのアドレスが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
When the read process is performed based on the physical block address obtained as described above, the following read process is set in the register of the flash memory sequencer block 12 shown in FIG.
1) An internal read command is set in a predetermined register in the flash memory sequencer block 12 as an internal command.
2) An offset corresponding to the lending side zone is added to the physical sequence number given by the address conversion table, and 5 bits (32 pages corresponding to the page number) are identified in the physical block address generated by adding this offset. The address of the page to which the bit is added is set in a predetermined register in the flash memory sequencer block.

その後、上記読出し処理の設定に基づいて、フラッシュメモリシーケンサブロック12が処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロック10から、内部バス14を介してフラッシュメモリ2に内部書込みコマンドを実行するためのコマンド情報やアドレス情報等がフラッシュメモリに供給される。その後、フラッシュメモリ2からフラッシュメモリシーケンサブロック12内の所定のレジスタに設定したアドレスのページから出力されデータがバッファ9に取込まれ、更に、そのデータはホストシステム4側に転送される。   Thereafter, the flash memory sequencer block 12 executes the process based on the setting of the read process. When this processing is executed, command information and address information for executing an internal write command to the flash memory 2 are supplied from the flash memory interface block 10 to the flash memory via the internal bus 14. Thereafter, the data output from the page of the address set in the predetermined register in the flash memory sequencer block 12 from the flash memory 2 is fetched into the buffer 9 and further transferred to the host system 4 side.

図1は、本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。FIG. 1 is a block diagram schematically showing a flash memory system according to the present invention. 図2は、フラッシュメモリを構成するメモリセルの構造を概略的に示す断面図である。FIG. 2 is a cross-sectional view schematically showing the structure of the memory cell constituting the flash memory. 図3は、書込状態であるメモリセルを概略的に示す断面図である。FIG. 3 is a cross-sectional view schematically showing a memory cell in a written state. 図4は、フラッシュメモリのアドレス空間の構造を概略的に示す図である。FIG. 4 is a diagram schematically showing the structure of the address space of the flash memory. 図5は、1024のブロックでゾーンを構成した例を示す図である。FIG. 5 is a diagram showing an example in which a zone is composed of 1024 blocks. 図6は、各ゾーンと論理ブロックアドレス空間との対応関係を示す図である。FIG. 6 is a diagram showing the correspondence between each zone and the logical block address space. 図7は、貸借管理テーブルの例を示す図である。FIG. 7 is a diagram illustrating an example of a loan management table. 図8は、借入側のアドレス変換テーブルの例を示した図である。FIG. 8 is a diagram showing an example of the address conversion table on the borrower side. 図9は、借入側のアドレス変換テーブルと貸出側のブロックとの対応関係を示す図である。FIG. 9 is a diagram showing the correspondence between the address conversion table on the borrowing side and the block on the lending side. 図10は、消去済ブロック検索用テーブルの例を示す概念図である。FIG. 10 is a conceptual diagram illustrating an example of an erased block search table.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2、35、36 フラッシュメモリ
3 コントローラ
4 ホストコンピュータ
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
16 メモリセル
17 P型半導体基板
18 ソース拡散領域
19 ドレイン拡散領域
20 トンネル酸化膜
21 フローティングゲート電極
22 絶縁膜
23 コントロールゲート電極
24 チャネル
25 ユーザ領域
26 冗長領域
1 Flash memory system 2, 35, 36 Flash memory 3 Controller 4 Host computer 5 Host interface control block 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 Flash memory sequencer block 13 External bus 14 Internal bus 16 Memory cell 17 P-type semiconductor substrate 18 Source diffusion region 19 Drain diffusion region 20 Tunnel oxide film 21 Floating gate electrode 22 Insulating film 23 Control gate electrode 24 Channel 25 User region 26 Redundant region

Claims (8)

フラッシュメモリ内の複数ブロックで構成されたゾーンと、該ゾーンに割当てられるホストシステム側の論理ブロックアドレス空間との対応を管理する割当管理機能と、
前記ゾーンに対するアクセスを制御するアクセス制御機能と、
前記ゾーン間でブロックの貸借をするときの貸出側のゾーンと借入側のゾーンの対応を管理する貸借管理機能と、
前記貸出側のゾーンから貸出されたブロックに、前記借入側のゾーンに割当てられている論理ブロックアドレスのデータを書込んだときに、前記貸出されたブロックの冗長領域に、貸出されていることを示す情報を設定する情報設定機能を備えたことを特徴とするメモリコントローラ。
An allocation management function for managing the correspondence between a zone composed of a plurality of blocks in the flash memory and a logical block address space on the host system side allocated to the zone;
An access control function for controlling access to the zone;
A loan management function for managing the correspondence between the zone on the lending side and the zone on the borrowing side when lending blocks between the zones; and
When the data of the logical block address assigned to the borrowing zone is written in the block lent out from the lent zone, the block is lent out in the redundant area of the lent block. A memory controller comprising an information setting function for setting information to be indicated.
前記貸借管理機能によって、前記貸出側のゾーンと前記借入側のゾーンの対応関係に関する情報が、前記フラッシュメモリ内の特定のブロックに保存されることを特徴とする請求項1記載のメモリコントローラ。 The memory controller according to claim 1, wherein the loan management function stores information on a correspondence relationship between the lending side zone and the borrowing side zone in a specific block in the flash memory. 前記冗長領域の特定のビットに設定される論理値が、前記貸出されていることを示す情報に対応することを特徴とする請求項1又は2記載のメモリコントローラ。 3. The memory controller according to claim 1, wherein a logical value set in a specific bit of the redundant area corresponds to information indicating that the lending is performed. 前記貸借管理機能が、前記ゾーン毎の不良ブロック数に関する情報に基づいて前記貸出側のゾーンと借入側のゾーンの対応関係を決定することを特徴とする請求項1乃至3記載のメモリコントローラ。 4. The memory controller according to claim 1, wherein the lending management function determines a correspondence relationship between the lending side zone and the borrowing side zone based on information on the number of defective blocks for each zone. 前記貸借管理機能によって、前記フラッシュメモリ内の不良ブロックに関する情報が、フラッシュメモリ内の特定のブロックに保存されることを特徴とする請求項1乃至4記載のメモリコントローラ。 5. The memory controller according to claim 1, wherein information relating to a defective block in the flash memory is stored in a specific block in the flash memory by the loan management function. 前記貸借管理機能によって、前記ゾーン毎の不良ブロック数に関する情報が、フラッシュメモリ内の特定のブロックに保存されることを特徴とする請求項1乃至5記載のメモリコントローラ。 6. The memory controller according to claim 1, wherein information relating to the number of defective blocks for each zone is stored in a specific block in a flash memory by the loan management function. 請求項1乃至6記載のいずれか1項記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。 A flash memory system comprising the memory controller according to any one of claims 1 to 6 and a flash memory. ホストシステム側の論理ブロックアドレス空間と、フラッシュメモリ内の複数ブロックで構成されたゾーンとの対応関係に従って、前記ホストシステム側から前記フラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
書込み先のブロックを確保できない第1のゾーンに対して割当てられた第2のゾーン内のブロックに、前記第1のゾーンに対応する論理ブロックアドレスのデータを書込む処理と前記第2のゾーン内のブロックに対する書込み処理で、前記第1のゾーンに対応する論理ブロックアドレスのデータが書込まれたブロックの冗長領域に、前記第1のゾーンに対応する論理ブロックアドレスのデータが書込まれていることを示す情報を設定する処理とを含むフラッシュメモリの制御方法。
A flash memory control method for controlling access from the host system side to the flash memory according to a correspondence relationship between a logical block address space on the host system side and a zone configured by a plurality of blocks in the flash memory,
A process of writing data of a logical block address corresponding to the first zone to a block in the second zone assigned to the first zone in which a block to be written to cannot be secured; and in the second zone In the writing process to the block, data of the logical block address corresponding to the first zone is written in the redundant area of the block in which the data of the logical block address corresponding to the first zone is written. And a method for controlling the flash memory.
JP2003432517A 2003-12-26 2003-12-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Expired - Fee Related JP4433792B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003432517A JP4433792B2 (en) 2003-12-26 2003-12-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003432517A JP4433792B2 (en) 2003-12-26 2003-12-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2005190289A true JP2005190289A (en) 2005-07-14
JP4433792B2 JP4433792B2 (en) 2010-03-17

Family

ID=34790197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003432517A Expired - Fee Related JP4433792B2 (en) 2003-12-26 2003-12-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP4433792B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (en) * 2006-11-13 2008-05-29 Tdk Corp Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory
JP2008226188A (en) * 2007-03-15 2008-09-25 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP2009301525A (en) * 2008-05-14 2009-12-24 Hitachi Ltd Storage device using flash memory
JP2015166993A (en) * 2014-03-04 2015-09-24 ソニー株式会社 Memory controller, storage unit, information processing system and control method thereof
CN111177020A (en) * 2018-11-13 2020-05-19 爱思开海力士有限公司 Storage device and operation method thereof
CN114089916A (en) * 2018-01-12 2022-02-25 珠海极海半导体有限公司 Data acquisition system and temperature and humidity sensor system

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (en) * 2006-11-13 2008-05-29 Tdk Corp Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory
JP4636005B2 (en) * 2006-11-13 2011-02-23 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2008226188A (en) * 2007-03-15 2008-09-25 Tdk Corp Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP4661809B2 (en) * 2007-03-15 2011-03-30 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2009301525A (en) * 2008-05-14 2009-12-24 Hitachi Ltd Storage device using flash memory
JP2015166993A (en) * 2014-03-04 2015-09-24 ソニー株式会社 Memory controller, storage unit, information processing system and control method thereof
CN114089916A (en) * 2018-01-12 2022-02-25 珠海极海半导体有限公司 Data acquisition system and temperature and humidity sensor system
CN114089916B (en) * 2018-01-12 2022-12-20 珠海极海半导体有限公司 Data acquisition system and temperature and humidity sensor system
CN111177020A (en) * 2018-11-13 2020-05-19 爱思开海力士有限公司 Storage device and operation method thereof
CN111177020B (en) * 2018-11-13 2023-05-05 爱思开海力士有限公司 Memory device and method of operating the same

Also Published As

Publication number Publication date
JP4433792B2 (en) 2010-03-17

Similar Documents

Publication Publication Date Title
US9075740B2 (en) Memory system
US7330995B2 (en) Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process
US7315870B2 (en) Memory controller, flash memory system, and method for recording data on flash memory
JP2008524705A (en) Scratch pad block
JP2006018373A (en) Memory controller, flash memory system and control method for flash memory
JP4158526B2 (en) Memory card and data writing method to memory
JP4433792B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4173410B2 (en) Memory controller and flash memory system including the memory controller
JP2005316793A (en) Flash memory system and control method of flash memory
JP4419525B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4461754B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4213053B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP3934659B1 (en) Memory controller and flash memory system
JP4068594B2 (en) Flash memory controller, flash memory system, and flash memory control method
JP4203994B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4194473B2 (en) Memory controller and flash memory system including the memory controller
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP4251950B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US20120311243A1 (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
JP4282410B2 (en) Flash memory control circuit, and memory controller and flash memory system provided with the control circuit
JP2005209140A (en) Memory controller, flash memory system and control method
JP2006048746A (en) Memory card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091221

R150 Certificate of patent or registration of utility model

Ref document number: 4433792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees