JP4251950B2 - MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD - Google Patents

MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Download PDF

Info

Publication number
JP4251950B2
JP4251950B2 JP2003336497A JP2003336497A JP4251950B2 JP 4251950 B2 JP4251950 B2 JP 4251950B2 JP 2003336497 A JP2003336497 A JP 2003336497A JP 2003336497 A JP2003336497 A JP 2003336497A JP 4251950 B2 JP4251950 B2 JP 4251950B2
Authority
JP
Japan
Prior art keywords
flash memory
block
address
chip
zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003336497A
Other languages
Japanese (ja)
Other versions
JP2005107601A (en
Inventor
健三 木田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2003336497A priority Critical patent/JP4251950B2/en
Publication of JP2005107601A publication Critical patent/JP2005107601A/en
Application granted granted Critical
Publication of JP4251950B2 publication Critical patent/JP4251950B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)

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. The process of erasing the written block must be performed. When rewriting data in this way, the data after rewriting is written in a different block from before rewriting, so the logical block address given from the host system side and the physical block address that is the block address in the flash memory The correspondence between and 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.

このアドレス変換テーブルを、フラッシュメモリ内の全ブロックを対象にして作成した場合、フラッシュメモリの容量の増加に伴いアドレス変換テーブルのサイズが大きくなるため、アドレス変換テーブルを作成する際の領域的、又は時間的な負担が大きくなる。この問題を解決するため、特許文献1(特開2000−284996)では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。
特表2000−284996
If this address conversion table is created for all blocks in the flash memory, the size of the address conversion table increases with the increase in the capacity of the flash memory. 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 blocks allocated to each zone.
Special table 2000-284996

特許文献1(特開2000−284996)では、アドレス変換テーブルのサイズが小さくなるため、各ゾーン毎に作成されるアドレス変換テーブルの作成時間は短縮される。しかしながら、各アドレス変換テーブル毎の作成時間を合計した総作成時間は、フラッシュメモリ内の全ブロックを対象にしたアドレス変換テーブルの作成時間と変らず、変換テーブルの作成時間が分散されたにすぎなかった。   In Patent Document 1 (Japanese Patent Application Laid-Open No. 2000-284996), since the size of the address conversion table is reduced, the time required for generating the address conversion table for each zone is shortened. However, the total creation time of the total creation time for each address translation table is not different from the creation time of the address translation table for all blocks in the flash memory, only the translation table creation time is distributed. It was.

ところで、フラッシュメモリを用いたメモリシステムは、通常、ホストシステムに接続して使用され、メモリシステム側からの書込みや読出し等の処理要求に基づいて処理を実行する。従って、ホストステム側からの書込みや読出し等の処理要求がないときには、実行すべき処理の無い空白時間が発生する。   By the way, a memory system using a flash memory is usually used by being connected to a host system, and executes processing based on processing requests such as writing and reading from the memory system side. Accordingly, when there is no processing request such as writing or reading from the host stem side, a blank time without processing to be executed occurs.

又、複数チップのフラッシュメモリを用いたメモリシステムでは、いずれかのチップがビジー状態(処理を受付けない状態)のときに、ビジー状態(処理を受付けない状態)でないチップに対して、書込み処理、読出し処理又は消去処理等を実行することができる。   Further, in a memory system using a multi-chip flash memory, when any chip is in a busy state (a state where processing is not accepted), a write process is performed on a chip which is not busy (a state where processing is not accepted). A read process or an erase process can be executed.

そこで、本発明は、従来のフラッシュメモリを用いたメモリシステムで有効に活用されていなかった実行すべき処理の無い空白時間等を利用して効率的にアドレス変換テーブルを作成することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。   Therefore, the present invention provides a memory controller that can efficiently create an address conversion table using a blank time without processing to be executed that has not been effectively used in a memory system using a conventional flash memory. And a flash memory system including the memory controller, and a flash memory control method.

本発明に係る目的は、フラッシュメモリの複数ブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成手段と、
前記アドレス変換テーブルを用いて前記ゾーンに対するアクセスを制御するアクセス制御手段を備えたメモリコントローラであって、
前記テーブル作成手段が、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいてアドレス変換テーブルを作成することを特徴とするメモリコントローラによって達成される。又、このメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステムによって達成される。
An object of the present invention is to create a table creating means for creating an address conversion table for a zone composed of a plurality of blocks of flash memory;
A memory controller comprising access control means for controlling access to the zone using the address conversion table,
The table creation means is achieved by a memory controller that creates an address translation table based on a table creation management table indicating a progress of creation of the address translation table. The invention is also achieved by a flash memory system including the memory controller and a flash memory.

又、本発明によれば、前記テーブル作成手段が、ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成するように構成されていることが好ましい。   According to the present invention, it is preferable that the table creating means is configured to create the address conversion table when there is no processing to be executed based on a processing request from the host system side.

又、本発明によれば、前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、前記テーブル作成手段が、アドレス変換テーブルを作成するように構成されていることが好ましい。
According to the present invention, the zone is composed of blocks in a flash memory having a plurality of chips.
When any of the flash memories is in a process request acceptance refusal state, the table creating means reads the address conversion table by performing a read process on the flash memory in a process request standby state. It is preferably configured to create.

ここで、「ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており」とは、ゾーンを構成するブロックが、単一のチップ内のブロックだけで構成されておらず、複数のチップに散在していることを意味する。又、「受入拒否状態」とは、フラッシュメモリがビジー状態(処理を受付けない状態)であることを意味し、「待機状態」とは、フラッシュメモリがビジー状態(処理を受付けない状態)ではなく、処理要求を受入得る状態であることを意味する。   Here, “the zone is composed of blocks in the flash memory of multiple chips” means that the blocks constituting the zone are not composed of only blocks in a single chip, but are scattered in multiple chips. Means that The “acceptance rejected state” means that the flash memory is busy (state that does not accept processing), and the “standby state” does not mean that the flash memory is busy (state that does not accept processing). This means that the processing request can be accepted.

又、本発明によれば、前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることが好ましい。   According to the present invention, it is preferable that the acceptance refusal state is caused by execution of a write process or an erase process.

又、本発明によれば、前記テーブル作成管理テーブルが、前記ゾーンを構成するブロックと、前記アドレス変換テーブルの作成に係る読出し処理を開始するときに読出し処理の対象となるブロックを、直接的又は間接的に示していることが好ましい。ここで、ゾーンを構成するブロックを示す方法としては、例えば、物理ブロックアドレスにより範囲指定する。又、読出し処理の対象となるブロックを示す方法としては、例えば、物理ブロックアドレスにより直接指定する。   Further, according to the present invention, the table creation management table directly or directly selects a block constituting the zone and a block subjected to a read process when a read process related to the creation of the address conversion table is started. It is preferable to indicate indirectly. Here, as a method of indicating the blocks constituting the zone, for example, a range is designated by a physical block address. Further, as a method for indicating a block to be read, for example, it is directly designated by a physical block address.

本発明に係る目的は、フラッシュメモリの複数ブロックで構成されたゾーン毎にアドレス変換テーブルを作成し、該アドレス変換テーブルを用いて前記ゾーン対してアクセスを行なうフラッシュメモリの制御方法であって、
前記アドレス変換テーブルの作成処理を中断するときに、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルの情報を更新し、
前記アドレス変換テーブルの作成処理を再開するときに、前記テーブル作成管理テーブルに基づいてアドレス変換テーブルの作成を再開することを特徴とするフラッシュメモリの制御方法によって達成される。
An object of the present invention is a flash memory control method for creating an address conversion table for each zone composed of a plurality of blocks of flash memory, and accessing the zone using the address conversion table,
When interrupting the process of creating the address translation table, update the information in the table creation management table indicating the progress of creating the address translation table,
This is achieved by a flash memory control method that resumes the creation of an address translation table based on the table creation management table when the address translation table creation process is resumed.

又、本発明によれば、ホストシステム側からの処理要求に基づいて実行すべき処理のないときに前記アドレス変換テーブルを作成することが好ましい。   According to the present invention, it is preferable that the address conversion table is created when there is no processing to be executed based on a processing request from the host system side.

又、本発明によれば、前記ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており、
前記フラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリに対して読出し処理を行なうことにより、アドレス変換テーブルを作成することが好ましい。
According to the present invention, the zone is composed of blocks in a flash memory having a plurality of chips.
When any of the flash memories is in a process request acceptance refusal state, it is preferable to create an address conversion table by performing a read process on the flash memory in a process request standby state.

又、本発明によれば、前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることが好ましい。   According to the present invention, it is preferable that the acceptance refusal state is caused by execution of a write process or an erase process.

ここで、「ゾーンが複数チップのフラッシュメモリ内のブロックで構成されており」とは、ゾーンを構成するブロックが、単一のチップ内のブロックだけで構成されておらず、複数のチップに散在していることを意味する。又、「受入拒否状態」とは、フラッシュメモリがビジー状態(処理を受付けない状態)であることを意味し、「待機状態」とは、フラッシュメモリがビジー状態(処理を受付けない状態)ではなく、処理要求を受入得る状態であることを意味する。   Here, “the zone is composed of blocks in the flash memory of multiple chips” means that the blocks constituting the zone are not composed of only blocks in a single chip, but are scattered in multiple chips. Means that The “acceptance rejected state” means that the flash memory is busy (state that does not accept processing), and the “standby state” does not mean that the flash memory is busy (state that does not accept processing). This means that the processing request can be accepted.

又、本発明によれば、前記アドレス変換テーブルの作成処理を中断するときに、
前記アドレス変換テーブルの作成に係る読出し処理を再開するときに、読出し処理の対象となるブロックの物理ブロックアドレスに係る情報を更新することが好ましい。
According to the present invention, when the address conversion table creation process is interrupted,
It is preferable to update the information related to the physical block address of the block to be read when the read process related to the creation of the address conversion table is resumed.

本発明によれば、フラッシュメモリ内の複数ブロックで構成されたゾーンをアクセスする際に用いられるアドレス変換テーブルを作成する処理を、ホストシステム側からの処理要求の無いときに、断続的に行ない効率的にアドレス変換テーブルを作成している。又、複数チップのフラッシュメモリを用いたメモリシステムの場合には、いずれかのチップがビジー状態(処理を受付けない状態)のときに、ビジー状態(処理を受付けない状態)でないチップに対する読出し処理を行なうことができるので、この際にテーブル作成処理を行なえば更に効率的にアドレス変換テーブルを作成することができる。   According to the present invention, the process of creating an address conversion table used when accessing a zone composed of a plurality of blocks in the flash memory is performed intermittently when there is no processing request from the host system side. An address translation table is created. In the case of a memory system using a multi-chip flash memory, when one of the chips is in a busy state (a state where processing is not accepted), a read process is performed on a chip which is not busy (a state where processing is not accepted). Therefore, if a table creation process is performed at this time, an address conversion table can be created more efficiently.

又、本発明によれば、テーブル作成管理テーブルを用いて、アドレス変換テーブルの作成進行状況を管理するようにしたので、アドレス変換テーブルを作成する処理を、断続的に行なうことができる。   In addition, according to the present invention, since the creation progress of the address translation table is managed using the table creation management table, the process of creating the address translation table can be performed intermittently.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム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 the 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 the erased state or the 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 data area 25 of 512 bytes and a redundant area 26 of 16 bytes. The data 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 correction 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で構成されている。そして、このゾーンが1000ブロック分の論理ブロックアドレスの空間に割当てられている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。又、ゾーンを構成するブロックが、24ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。
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]
Next, a zone constituted by a plurality of blocks in the flash memory will be described with reference to the drawings. 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 which are units of read and write processing. This zone is assigned to a logical block address space for 1000 blocks. Here, the block is a unit of erasing processing, and the page is a unit of reading and writing processing. Further, the reason why the blocks constituting the zone are allocated to the extra 24 blocks is that the occurrence of defective blocks is taken into consideration.

又、図6は、2チップのフラッシュメモリでゾーンを構成した例である。この例では、フラッシュメモリのチップ0内の512ブロックとチップ1内の512ブロックで各ゾーンを構成している。ここで、チップ0内の物理ブロックアドレスの先頭から512のブロックと、チップ1内の物理ブロックアドレスの先頭から512のブロックを、ゾーン0に割当て、それ以降のゾーン(ゾーン1〜ゾーンN)についても、物理ブロックアドレスの順番で各ゾーンに順次割当てた。又、各ゾーン(ゾーン0〜ゾーンN)は、1000ブロック分の論理ブロックアドレスの空間に割当てられている。   FIG. 6 shows an example in which a zone is constituted by a two-chip flash memory. In this example, each zone is composed of 512 blocks in the flash memory chip 0 and 512 blocks in the chip 1. Here, 512 blocks from the top of the physical block address in chip 0 and 512 blocks from the top of the physical block address in chip 1 are assigned to zone 0, and the subsequent zones (zone 1 to zone N) Also, the zones were sequentially assigned in the order of physical block addresses. Each zone (zone 0 to zone N) is assigned to a logical block address space for 1000 blocks.

本発明に係るフラッシュメモリシステムでは、上記のようなゾーンに対して後述するアドレス変換テーブルと候補テーブルを作成し、ゾーンに対するアクセスを行なっている。例えば、図7に示したようにアドレス変換テーブル31は、ゾーン全体に対して1テーブル作成し、候補テーブル32、33は、ゾーンを構成するチップ毎に、つまり、チップ0に対して候補テーブル32を作成し、チップ1に対して候補テーブル33を作成する。
[アドレス変換テーブルの説明]
次に、上記アドレス変換テーブルについて、図面を参照して説明する。図8は、アドレス変換テーブルの一例を示したものであり、(a)は1つのチップ内のブロックでゾーンを構成した場合のアドレス変換テーブルを示し、(b)は2つのチップ内のブロックでゾーンを構成した場合のアドレス変換テーブルを示している。
In the flash memory system according to the present invention, an address conversion table and a candidate table, which will be described later, are created for such a zone, and the zone is accessed. For example, as shown in FIG. 7, one address conversion table 31 is created for the entire zone, and the candidate tables 32 and 33 are set for each chip constituting the zone, that is, for the chip 0, the candidate table 32. And a candidate table 33 is created for the chip 1.
[Description of address translation table]
Next, the address conversion table will be described with reference to the drawings. FIG. 8 shows an example of an address conversion table. (A) shows an address conversion table when a zone is configured by blocks in one chip, and (b) shows blocks in two chips. An address conversion table when a zone is configured is shown.

図8(a)は、1つのチップ内のブロックB0000〜B1023(物理ブロックアドレスの0000〜1023)でゾーンを構成し、このゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合のアドレス変換テーブルを示している。このアドレス変換テーブルには、各論理ブロックアドレスに対応するデータが格納されているブロックの物理ブロックアドレスが、論理ブロックアドレス順に記述されている。ここで、対応するデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、対応するデータが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う。)が設定される。   In FIG. 8A, a zone is formed by blocks B0000 to B1023 (physical block addresses 0000 to 1023) in one chip, and address conversion is performed when this zone is allocated to a space of 1000 blocks of logical block addresses. Shows the table. 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. Here, for a logical block address in which the corresponding data is not stored, a flag (not a physical block address but a corresponding data is stored in a portion corresponding to the logical block address in the address conversion table ( Hereinafter, a flag indicating that the corresponding data is not stored is referred to as an unstored flag).

図8(b)は、図6に示したようにゾーンを構成した場合、つまり、チップ0内のブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)とチップ1内のブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)でゾーンを構成し、このゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てた場合のアドレス変換テーブルを示している。このアドレス変換テーブルには、各論理ブロックアドレスに対応するデータが格納されているチップの番号とそのチップ内での物理ブロックアドレスが、論理ブロックアドレス順に記述されている。ここで、ゾーンを構成するチップ0内のブロックの、物理ブロックアドレスの範囲と、チップ1内のブロックの、物理ブロックアドレスの範囲が同一になっているが、アドレス変換テーブルにチップの番号が記述されているため、各論理ブロックアドレスに対応するデータの格納先は一意的に特定される。又、対応するデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、チップの番号や物理ブロックアドレスではなく、未格納フラグとが設定される。   FIG. 8B shows a case where zones are configured as shown in FIG. 6, that is, blocks B0000 to B0511 (physical block addresses 0000 to 0511) in chip 0 and blocks B0000 to B0511 in chip 1 (physical). An address conversion table in the case where a zone is configured with block addresses 0000 to 0511) and this zone is allocated to a logical block address space for 1000 blocks is shown. In this address conversion table, the number of the chip storing the data corresponding to each logical block address and the physical block address in that chip are described in the order of the logical block address. Here, the physical block address range of the blocks in the chip 0 constituting the zone and the physical block address range of the blocks in the chip 1 are the same, but the chip number is described in the address conversion table. Therefore, the storage location of data corresponding to each logical block address is uniquely identified. For a logical block address in which corresponding data is not stored, not a chip number or a physical block address but an unstored flag is set in a portion corresponding to the logical block address in the address conversion table.

次に、このアドレス変換テーブルを作成する方法について説明する。図8(a)に示したアドレス変換テーブルを作成する場合、例えば、1000ブロック分の物理ブロックアドレスを記述できる領域をSRAM上に確保し、物理ブロックアドレスを記述する領域に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成するゾーンに割当てられているブロック(冗長領域)を順次読出していき、冗長領域に論理ブロックアドレス(対応論理ブロックアドレスとして記述されている論理ブロックアドレス)が記述されていた場合には、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、その論理ブロックアドレスが記述されていたブロックの物理ブロックアドレスを記述する。この処理を、ゾーンを構成する1024ブロックについて順次行ない、この処理が完了するとアドレス変換テーブルが完成する。尚、このアドレス変換テーブルの作成処理で、物理ブロックアドレスが記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。   Next, a method for creating this address conversion table will be described. When the address conversion table shown in FIG. 8A is created, for example, an area that can describe the physical block addresses for 1000 blocks is secured on the SRAM, and an unstored flag is set as an initial setting in the area that describes the physical block addresses. Set. After that, the blocks (redundant area) assigned to the zone for creating the address conversion table were read sequentially, and the logical block address (logical block address described as the corresponding logical block address) was described in the redundant area. In this case, the physical block address of the block in which the logical block address is described is described in the portion corresponding to the logical block address of the address conversion table. This process is sequentially performed for the 1024 blocks constituting the zone, and when this process is completed, the address conversion table is completed. In the address conversion table creation process, the unstored flag described in the initial setting remains as it is for the part where the physical block address is not described.

図8(b)に示したアドレス変換テーブルを作成する場合、例えば、1000ブロック分のチップの番号と物理ブロックアドレスを記述できる領域をSRAM上に確保し、そのチップの番号と物理ブロックアドレスを記述する領域のいずれか、又は双方に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成するゾーンに割当てられているチップ0内のブロック(冗長領域)を順次読出していき、冗長領域に論理ブロックアドレス(対応論理ブロックアドレスとして記述されている論理ブロックアドレス)が記述されていた場合には、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、その論理ブロックアドレスが記述されていたブロックの物理ブロックアドレスを記述する。この際、物理ブロックアドレスと共にチップの番号も記述する。又、チップ1についも同様の処理を行ない、ゾーンに割当てられているチップ0内の512ブロックとチップ1内の512ブロックについて、この処理が完了するとアドレス変換テーブルが完成する。尚、このアドレス変換テーブルの作成処理で、物理ブロックアドレスとチップの番号が記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。   When the address conversion table shown in FIG. 8B is created, for example, an area where 1000 block chip numbers and physical block addresses can be described is secured on the SRAM, and the chip number and physical block address are described. An unstored flag is set as an initial setting in one or both of the areas to be processed. Thereafter, the blocks (redundant areas) in the chip 0 assigned to the zone for creating the address conversion table are sequentially read, and the logical block addresses (logical block addresses described as corresponding logical block addresses) are stored in the redundant areas. If it is described, the physical block address of the block in which the logical block address is described is described in the portion corresponding to the logical block address of the address conversion table. At this time, the chip number is also described together with the physical block address. The same processing is performed for the chip 1, and when this processing is completed for the 512 blocks in the chip 0 and the 512 blocks in the chip 1 assigned to the zone, the address conversion table is completed. In the address conversion table creation process, the unstored flag described in the initial setting remains as it is for the part where the physical block address and the chip number are not described.

上述のようにアドレス変換テーブルを作成する場合、ブロックの冗長領域に対して読出し処理を行ない、論理ブロックアドレスが記述されていた場合には、それに応じた記述をアドレス変換テーブルに加えるというテーブル作成処理を、ゾーンを構成する全ブロックについて行なわなければならない。このテーブル作成処理を、ゾーンを構成する全ブロックについて連続して行なった場合、作成にかかる時間が長くなり、その間、ホストシステム側からの処理要求を受けることができなくなる。   When creating an address translation table as described above, a table creation process is performed in which a read process is performed on a redundant area of a block, and if a logical block address is described, a corresponding description is added to the address translation table. Must be performed for all blocks constituting the zone. If this table creation processing is performed continuously for all the blocks constituting the zone, the time required for creation increases, and during that time, it becomes impossible to receive a processing request from the host system side.

そこで、本発明に係るフラッシュメモリシステムでは、このテーブル作成処理を、ホストシステム側からの処理要求の無いときに、断続的に行ない効率的にアドレス変換テーブルを作成している。又、複数チップのフラッシュメモリを用いたメモリシステムの場合には、いずれかのチップがビジー状態(処理を受付けない状態)のときに、ビジー状態(処理を受付けない状態)でないチップに対する読出し処理を行なうことができるので、この際にテーブル作成処理を行なえば更に効率的にアドレス変換テーブルを作成することができる。   Therefore, in the flash memory system according to the present invention, this table creation processing is intermittently performed when there is no processing request from the host system side, and the address translation table is created efficiently. In the case of a memory system using a multi-chip flash memory, when one of the chips is in a busy state (a state where processing is not accepted), a read process is performed on a chip which is not busy (a state where processing is not accepted). Therefore, if a table creation process is performed at this time, an address conversion table can be created more efficiently.

上記のように断続的にテーブル作成処理を行なうために、本発明に係るフラッシュメモリシステムでは、例えば、図9に示したようなテーブル作成管理テーブルを用いて、アドレス変換テーブルの作成進行状況を管理している。このテーブル作成管理テーブルには、ゾーンを構成するブロックに関する情報と、テーブル作成処理の進行状況に関する情報が記述されている。図9には、チップ0内のブロックB0512〜B1023(物理ブロックアドレスの0512〜1023)とチップ1内のブロックB0512〜B1023(物理ブロックアドレスの0512〜1023)でゾーンを構成した場合のテーブル作成管理テーブルが示されている。   In order to perform the table creation processing intermittently as described above, in the flash memory system according to the present invention, for example, the creation progress of the address conversion table is managed using the table creation management table as shown in FIG. is doing. In this table creation management table, information relating to blocks constituting the zone and information relating to the progress of table creation processing are described. FIG. 9 shows a table creation management in the case where a zone is configured by blocks B0512 to B1023 (physical block addresses 0512 to 1023) in chip 0 and blocks B0512 to B1023 (physical block addresses 0512 to 1023) in chip 1. A table is shown.

このテーブル作成管理テーブルには、テーブル作成処理を行なうチップ0内の先頭ブロックと終了ブロックと、チップ1内の先頭ブロックと終了ブロックが記述されている。つまり、チップ0内の先頭ブロックB0512(物理ブロックアドレスの0512)から終了ブロックB1023(物理ブロックアドレスの1023)までのテーブル作成処理と、チップ1内の先頭ブロックB0512(物理ブロックアドレスの0512)から終了ブロックB1023(物理ブロックアドレスの1023)までのテーブル作成処理が完了すればアドレス変換テーブルの作成が完了する。又、進行状況に関する情報を記述する部分には、テーブル作成処理を中断するときに、再開時にテーブル作成処理の対象となるブロックの物理ブロックアドレスを記述する。   In the table creation management table, the first block and end block in chip 0 and the first block and end block in chip 1 for performing table creation processing are described. That is, the table creation processing from the first block B0512 (physical block address 0512) in the chip 0 to the end block B1023 (physical block address 1023) and the first block B0512 (physical block address 0512) in the chip 1 are completed. When the table creation process up to block B1023 (physical block address 1023) is completed, the creation of the address translation table is completed. Further, in the portion describing the information on the progress status, when the table creation process is interrupted, the physical block address of the block to be subjected to the table creation process at the time of restart is described.

ここで、アドレス変換テーブルの作成を開始する際には、図9(a)に示したように進行状況に関する情報を記述する部分には、先頭ブロックの物理ブロックアドレスが設定される。このテーブル作成管理テーブルに基づいてチップ1内のブロックに対するテーブル作成処理が開始された場合、B0512(物理ブロックアドレスの0512)から順次テーブル作成処理が行われていく。その後、チップ1内のB0512(物理ブロックアドレスの0512)からB0754(物理ブロックアドレスの0754)までテーブル作成処理が終った時点で処理を中断する場合は、図9(b)に示したようにチップ1の進行状況に関する情報を記述する部分に、B0755(物理ブロックアドレスの0755)を記述する。   Here, when the creation of the address conversion table is started, the physical block address of the first block is set in the portion describing the information on the progress status as shown in FIG. When the table creation processing for the block in the chip 1 is started based on the table creation management table, the table creation processing is sequentially performed from B0512 (physical block address 0512). After that, when the table creation processing from B0512 (physical block address 0512) to B0754 (physical block address 0754) in the chip 1 is terminated, as shown in FIG. B0755 (physical block address 0755) is described in the portion describing information on the progress status of 1.

次に、テーブル作成処理を再開したときにチップ0内のブロックに対するテーブル作成処理が開始された場合、B0512(物理ブロックアドレスの0512)から順次テーブル作成処理が行われていく。その後、チップ0内のB0512(物理ブロックアドレスの0512)からB0799(物理ブロックアドレスの0799)までテーブル作成処理が終った時点で処理を中断する場合は、図9(c)に示したようにチップ0の進行状況に関する情報を記述する部分に、B0800(物理ブロックアドレスの0800)を記述する。   Next, when the table creation processing for the block in the chip 0 is started when the table creation processing is resumed, the table creation processing is sequentially performed from B0512 (physical block address 0512). After that, when the table creation processing is finished from B0512 (physical block address 0512) to B0799 (physical block address 0799) in chip 0, the processing is interrupted as shown in FIG. 9C. B0800 (physical block address 0800) is described in the portion describing information on the progress status of 0.

次に、テーブル作成処理を再開したときにチップ1内のブロックに対するテーブル作成処理が開始された場合、B0755(物理ブロックアドレスの0755)から順次テーブル作成処理が行われていく。その後、チップ1内の最終ブロックB1023(物理ブロックアドレスの1023)までテーブル作成処理が終った時点で処理を中断する場合は、図9(d)に示したようにチップ1の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。   Next, when the table creation process is started for the block in the chip 1 when the table creation process is resumed, the table creation process is sequentially performed from B0755 (physical block address 0755). Thereafter, when the table creation process is terminated up to the final block B1023 (physical block address 1023) in the chip 1, information regarding the progress status of the chip 1 is displayed as shown in FIG. Write a flag indicating completion in the description part.

次に、テーブル作成処理を再開したときにチップ0内のブロックに対するテーブル作成処理が開始された場合、B0800(物理ブロックアドレスの0800)から順次テーブル作成処理が行われていく。その後、チップ0内の最終ブロックB1023(物理ブロックアドレスの1023)までテーブル作成処理が終った時点で、図9(e)に示したようにチップ0の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。更に、ゾーンを構成する全てのチップの進行状況に関する情報を記述する部分に完了を示すフラグが記述された場合、つまりアドレス変換テーブルの作成が完了した場合には、図9(e)に示したように全体の進行状況に関する情報を記述する部分に、完了を示すフラグを記述する。尚、1つのチップでゾーンを構成した場合は、全体の進行状況に関する情報を記述する部分を設ける必要はない。
[候補テーブルの説明]
次に、候補テーブルについて、図面を参照して説明する。この候補テーブルは、データの書込み先として準備しておく消去済ブロック(以下、データの書込み先として準備しておく消去済ブロックを書込み候補ブロックと言う。)を設定しておくテーブルである。又、この候補テーブルは、ゾーンを構成するチップ毎、例えば、図7に示したようにゾーンを構成するチップ0内の512ブロックについて1テーブルと、チップ1内の512ブロックについて1テーブルの計2テーブル作成することが好ましい。つまり、ゾーンを構成するチップ0内の512ブロックから選ばれた書込み候補ブロックと、チップ1内の512ブロックから選ばれた書込み候補ブロックを1ブロックずつ設定する。
Next, when the table creation process is started for the block in the chip 0 when the table creation process is resumed, the table creation process is sequentially performed from B0800 (physical block address 0800). After that, when the table creation processing is completed up to the final block B1023 (physical block address 1023) in the chip 0, the process is completed in the part describing information on the progress status of the chip 0 as shown in FIG. Describe the flag indicating. Furthermore, when a flag indicating completion is described in the portion describing information on the progress status of all the chips constituting the zone, that is, when the creation of the address translation table is completed, the state shown in FIG. As described above, a flag indicating completion is described in the part describing information on the overall progress status. When a zone is composed of one chip, there is no need to provide a part for describing information relating to the overall progress status.
[Explanation of candidate table]
Next, the candidate table will be described with reference to the drawings. This candidate table is a table in which erased blocks prepared as data write destinations (hereinafter, erased blocks prepared as data write destinations are referred to as write candidate blocks) are set. Further, this candidate table has a total of 2 for each chip constituting the zone, for example, one table for 512 blocks in chip 0 and one table for 512 blocks in chip 1 as shown in FIG. It is preferable to create a table. That is, one block is set for each write candidate block selected from 512 blocks in chip 0 and one block selected from 512 blocks in chip 1 constituting the zone.

次に、上記候補テーブルに書込み候補ブロックとして設定される消去済ブロックの検索方法について説明する。尚、書込み候補ブロックとして設定される消去済ブロックの検索方法は、ゾーンを構成するチップ0内の512ブロックに対する場合と、チップ1内の512ブロックにする場合とで同様なので、ゾーンを構成するチップ0内の512ブロックに対する消去済ブロックの検索方法について説明する。   Next, a method for searching for erased blocks set as write candidate blocks in the candidate table will be described. The erased block search method set as the write candidate block is the same for the 512 blocks in the chip 0 constituting the zone and for the 512 blocks in the chip 1. A method of searching for erased blocks for 512 blocks within 0 will be described.

この消去済ブロックの検索方法では、ゾーンを構成するチップ0内の512ブロックに対応する512ビットの領域をSRAM上に確保し、その領域の各ビットに各ブロックを割当てた消去済ブロック検索用テーブルを設定する。図10は、この消去済ブロック検索用テーブルを概念的に示した概念図である。図10(a)に示した消去済ブロック検索用テーブルの左上のビットが、チップ0内のB0000(物理ブロックアドレスの0000)のブロックに、その隣がB0001(物理ブロックアドレスの0001)のブロックに対応するように設定していき、右下のビットをB0511(物理ブロックアドレスの0511)のブロックに対応させる。つまり、チップ0内の各ブロックを、物理ブロックアドレスの順番で、上の行から下の行へ、各行を左から右へ順次割当てていく。   In this erased block search method, a 512-bit area corresponding to 512 blocks in chip 0 constituting a zone is secured on the SRAM, and an erased block search table in which each block is assigned to each bit of the area. Set. FIG. 10 is a conceptual diagram conceptually showing this erased block search table. The upper left bit of the erased block search table shown in FIG. 10A is a block of B0000 (physical block address 0000) in chip 0, and its neighbor is a block of B0001 (physical block address 0001). Corresponding settings are made, and the lower right bit is made to correspond to the block B0511 (physical block address 0511). That is, each block in the chip 0 is sequentially allocated from the upper row to the lower row and from the left to the right in the order of the physical block addresses.

ここで、各ビットに対応するチップ0内のブロックに、データが書込まれている場合は、そのビットに「0」を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに「1」を設定する。このように設定された消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、各ブロックの冗長領域に記述されているデータを読出したときに、対応論理ブロックアドレス又は不良ブロックであることを示すブロックステータスが記述されていた場合は、そのブロックに対応するビットに「0」を設定し、対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていない場合は、そのブロックに対応するビットに「1」を設定する。又、作成後は、消去済ブロックにデータを書込んだ場合は、そのブロックに対応するビットを「1」から「0」に書替え、データが書込まれているブロックをブロック消去した場合は、そのブロックに対応するビットを「0」から「1」に書替えるというような更新を随時行なう。   Here, when data is written in a block in chip 0 corresponding to each bit, “0” is written in that bit, and when data is not written (in the case of an erased block), “1” is set in the bit. The erased block search table set in this way can be created together when creating the address conversion table. That is, when the data described in the redundant area of each block is read, if a corresponding logical block address or a block status indicating a defective block is described, “0” is set in the bit corresponding to the block. ”And the corresponding logical block address and the block status indicating that it is a defective block are not described,“ 1 ”is set to the bit corresponding to the block. After creation, when data is written to an erased block, the bit corresponding to that block is rewritten from “1” to “0”, and when a block in which data is written is erased, Updates such as rewriting the bit corresponding to the block from “0” to “1” are performed as needed.

この消去済ブロック検索用テーブルを用いて消去済ブロックを検索する場合は、図10(b)に示したように、各ビットを左上から右下に向かって、つまりB0000(物理ブロックアドレスの0000)に対応するビットからB0511(物理ブロックアドレスの0511)に対応するビットに向かって、上の行から下の行へ、各行を左から右へ順次検索する。例えば、B0000(物理ブロックアドレスの0000)に対応するビットから順次検索していき、B0010(物理ブロックアドレスの0010)に対応するビットが「1」であればここで検索が終了し、次回の検索は、B0011(物理ブロックアドレスの0011)に対応するビットから開始される。尚、B0511(物理ブロックアドレスの0511)に対応するビットまで検索が進んだ場合は、B0000(物理ブロックアドレスの0000)に対応するビットに戻って検索する。   When an erased block is searched using this erased block search table, as shown in FIG. 10B, each bit is moved from the upper left to the lower right, that is, B0000 (physical block address 0000). From the bit corresponding to B0511 (physical block address 0511) to the bit corresponding to B0511 (physical block address 0511), each row is sequentially searched from left to right from the top row to the bottom row. For example, the search is performed sequentially from the bit corresponding to B0000 (physical block address 0000). If the bit corresponding to B0010 (physical block address 0010) is “1”, the search ends here and the next search is performed. Starts with a bit corresponding to B0011 (physical block address 0011). If the search proceeds to the bit corresponding to B0511 (physical block address 0511), the search returns to the bit corresponding to B0000 (physical block address 0000).

次に、上記検索で検出した消去済ブロックを、書込み候補ブロックとして設定する候補テーブルについて説明する。図11は候補テーブルのデータ項目を示す図である。この候補テーブルには、データ項目としてブロック番号、チェック要求フラグ、エラー検出フラグ及びチェックスタートページが設定されている。   Next, a candidate table for setting erased blocks detected by the above search as write candidate blocks will be described. FIG. 11 is a diagram showing data items in the candidate table. In this candidate table, a block number, a check request flag, an error detection flag, and a check start page are set as data items.

ここで、ブロック番号の設定部には、上記検索により検出した消去済ブロックのブロックアドレスを設定する。又、候補テーブルに設定されている書込み候補ブロックにデータを書込んだ場合は、このブロック番号の設定部に「未設定フラグ(例えば、ブロック番号の設定部にブロックアドレスが有効か又は無効かを示すビットを設け、このビットが無効を示している場合を未設定フラグとする。そして、ブロック番号の設定部にブロックアドレスを設定したときは、このビットが有効を示すようにする。)」を設定する。チェック要求フラグの設定部には、チェック要求の有無、つまり、チェックの完了前は「有りフラグ」を、チェックの完了後は「無しフラグ」を設定する。エラー検出フラグの設定部には、後述する消去状態のチェックでエラーを検出しなかったときは「OKフラグ」を、エラーを検出したときに「NGフラグ」を設定する。チェックスタートページの設定部には、後述する消去状態のチェックを中断した場合に、中断解除後に処理を続行するページを設定する。尚、候補テーブルに設定されている書込み候補ブロックにデータを書込んだ場合は、ブロック番号、チェック要求フラグ及びエラー検出フラグの設定部に「未設定フラグ」を設定し、チェックスタートページの設定部に「0」を設定する。   Here, in the block number setting section, the block address of the erased block detected by the search is set. In addition, when data is written to the write candidate block set in the candidate table, the block number setting part displays “unset flag (for example, whether the block address is valid or invalid in the block number setting part). If the bit indicates invalid, this bit is set as an unset flag, and when a block address is set in the block number setting part, this bit is set valid.) Set. In the check request flag setting section, the presence / absence of a check request is set, that is, the “present flag” is set before the check is completed, and the “not present flag” is set after the check is completed. In the error detection flag setting section, an “OK flag” is set when no error is detected in an erase state check described later, and an “NG flag” is set when an error is detected. In the check start page setting section, a page for continuing the processing after canceling the interruption when an erase state check to be described later is interrupted is set. In addition, when data is written in the write candidate block set in the candidate table, the “unset flag” is set in the setting part of the block number, check request flag and error detection flag, and the check start page setting part Set “0” to.

この候補テーブルに設定された書込み候補ブロックは、データを書込む前に、消去状態のチェックが行なわれる。この消去状態のチェックでは、候補テーブルのブロック番号の設定部に設定されているブロックの各ページのデータが全て消去状態(論理値の「1」)であるかがチェックされ、全てのビットが消去状態(論理値の「1」)であればエラー検出フラグの設定部に「OKフラグ」が、1ビットでも書込状態(論理値の「0」)のビットがあればエラー検出フラグの設定部に「NGフラグ」がセットされる。   The write candidate block set in this candidate table is checked for an erased state before data is written. In this erasure check, it is checked whether all the data of each page of the block set in the block number setting part of the candidate table is in the erasure state (logical value “1”), and all the bits are erased. If it is in the state (logical value “1”), if the “OK flag” is in the error detection flag setting part and the bit is in the write state (logical value “0”), the error detection flag setting part "NG flag" is set in

例えば、初期設定時に図11(a)に示したように、ブロック番号、チェック要求フラグ及びエラー検出フラグの設定部に「未設定フラグ」を、チェックスタートページの設定部に「0」を設定する。次に、消去済ブロックを検索し、そのブロックアドレスがB0010であれば、ブロック番号の設定部にB0010を設定し、チェック要求フラグの設定部に「有りフラグ」を設定する(図11(b))。   For example, as shown in FIG. 11A at the time of initial setting, “unset flag” is set in the setting part of the block number, check request flag and error detection flag, and “0” is set in the setting part of the check start page. . Next, an erased block is searched, and if the block address is B0010, B0010 is set in the block number setting unit, and “present flag” is set in the check request flag setting unit (FIG. 11B). ).

その後、消去状態のチェックを実行し、14ページまでチェックを終了した時点で処理を中断したときは、チェックスタートページに「15」を設定する(図11(c))。その後、消去状態のチェックを再開し、その処理が完了したときに、32ページ全てが正常に消去されていた場合は、図11(d)に示したように、チェック要求フラグの設定部に「無しフラグ」を、エラー検出フラグの設定部に「OKフラグ」を設定する。一方、正常に消去されていないページが検出された場合には、図11(e)に示したように、チェック要求フラグの設定部に「無しフラグ」を、エラー検出フラグの設定部に「NGフラグ」を設定する。
[複数チップのフラッシュメモリを用いたメモリシステムの場合の説明]
複数チップのフラッシュメモリを用いたメモリシステムで、いずれかのチップがビジー状態(処理を受付けない状態)のときに、ビジー状態(処理を受付けない状態)でないチップに対するテーブル作成処理を行なう場合について説明する。
Thereafter, the check of the erased state is executed, and when the processing is interrupted when the check is finished up to the 14th page, “15” is set in the check start page (FIG. 11C). Thereafter, the check of the erasure state is resumed, and when all the 32 pages have been normally erased when the processing is completed, as shown in FIG. “None flag” and “OK flag” in the error detection flag setting section. On the other hand, when a page that has not been erased normally is detected, as shown in FIG. 11E, the “none flag” is set in the check request flag setting section and “NG” is set in the error detection flag setting section. Set the flag.
[Explanation of memory system using multi-chip flash memory]
Describes the case of performing a table creation process for a chip that is not busy (state that does not accept processing) when any chip is busy (state that does not accept processing) in a memory system using a multi-chip flash memory To do.

図12は、このテーブル作成処理を説明するための概念図である。図12に示した例では、各ゾーンを2つのフラッシュメモリ35、36で構成している。ここで、例えば、ゾーン0に含まれるブロックの消去処理が行なわれ、その処理対象となったフラッシュメモリ35(チップ0)内のブロックが、ビジー状態(処理を受付けない状態)になった場合に、フラッシュメモリ36(チップ1)に対してテーブル作成処理に係る冗長領域の読出し処理を行なう場合について説明する。   FIG. 12 is a conceptual diagram for explaining this table creation processing. In the example shown in FIG. 12, each zone is composed of two flash memories 35 and 36. Here, for example, when a block included in zone 0 is erased and the block in the flash memory 35 (chip 0) that is the processing target is in a busy state (a state in which no process is accepted). A case will be described in which a redundant area read process related to the table creation process is performed on the flash memory 36 (chip 1).

この処理では、メモリコントローラ34は、CE信号(チップイネーブル信号)によりチップ0を選択して、消去処理を実行するためのコマンド情報やアドレス情報等を出力する。このコマンド情報やアドレス情報等を受取ったフラッシュメモリ35(チップ0)は、その処理が完了するまでの間、ビジー状態(処理を受付けない状態)になる。又、フラッシュメモリ35(チップ0)は、ビジー状態(処理を受付けない状態)であることを、BUSY信号(ビジー信号)によりメモリコントローラ34に通知する。この通知を受取ったメモリコントローラ34は、CE信号(チップイネーブル信号)によりチップ1を選択して、冗長領域の読出し処理を実行するためのコマンド情報やアドレス情報等を出力する。   In this process, the memory controller 34 selects the chip 0 by the CE signal (chip enable signal), and outputs command information, address information, and the like for executing the erasure process. The flash memory 35 (chip 0) that has received this command information, address information, and the like is in a busy state (a state in which processing is not accepted) until the processing is completed. Further, the flash memory 35 (chip 0) notifies the memory controller 34 that it is in a busy state (state in which processing is not accepted) by a BUSY signal (busy signal). Receiving this notification, the memory controller 34 selects the chip 1 based on the CE signal (chip enable signal), and outputs command information, address information, and the like for executing read processing of the redundant area.

ここで、上記フラッシュメモリシステムにおける処理を、図13に示したタイミング図を参照して説明する。まず、メモリコントローラが、チップ0側のCE信号(チップイネーブル信号)を低レベルとし、内部バスにDATA信号(データ信号)として、消去処理を実行するためのコマンド情報やアドレス情報等を出力する。これに対応して、チップ0側のフラッシュメモリは、消去処理を開始し、その処理が完了するまでBUSY信号(ビジー信号)を低レベルにする。続いて、チップ0側のBUSY信号(ビジー信号)が低レベルになったことを検出したメモリコントローラは、チップ1側のCE信号(チップイネーブル信号)を低レベルとし、内部バスにDATA信号(データ信号)として、冗長領域の読出し処理を実行するためのコマンド情報やアドレス情報等を出力する。これに対応して、チップ1側のフラッシュメモリが読出しデータを出力する。   Here, the processing in the flash memory system will be described with reference to the timing chart shown in FIG. First, the memory controller sets the CE signal (chip enable signal) on the chip 0 side to a low level, and outputs command information, address information, and the like for executing an erasing process as a DATA signal (data signal) to the internal bus. In response to this, the flash memory on the chip 0 side starts the erasing process, and keeps the BUSY signal (busy signal) at a low level until the process is completed. Subsequently, the memory controller that has detected that the BUSY signal (busy signal) on the chip 0 side has become low level sets the CE signal (chip enable signal) on the chip 1 side to low level, and sends a DATA signal (data) to the internal bus. As the signal, command information, address information, etc. for executing the redundant area read processing are output. In response to this, the flash memory on the chip 1 side outputs read data.

又、冗長領域の読出し処理又は消去処理等の内部コマンドは、下記のようにして実行される。例えば、チップ0側のフラッシュメモリに消去処理を実行させる場合、まず、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような消去処理の設定がなされる。
1)内部コマンドとして内部消去コマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
2)消去処理を行なうフラッシュメモリのチップの番号と、その処理の対象となるブロックの物理ブロックアドレスが、フラッシュメモリシ―ケンサブロック内の所定のレジスタに設定される。
Also, internal commands such as redundant area read processing or erase processing are executed as follows. For example, when causing the flash memory on the chip 0 side to execute the erase process, first, the following erase process is set in the register of the flash memory sequencer block.
1) An internal erase command is set as an internal command in a predetermined register in the flash memory sequencer block.
2) The chip number of the flash memory to be erased and the physical block address of the block to be processed are set in a predetermined register in the flash memory sequencer block.

その後、上記消去処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに内部消去コマンドを実行するためのコマンド情報やアドレス情報等が供給される。この際、上記消去処理の設定(チップの番号の設定)で、チップ0を設定しておけば、チップ0側のCE信号(チップイネーブル信号)が低レベルなるため、この消去処理がチップ0側のフラッシュメモリで開始され、処理が完了するまで、チップ0側のフラッシュメモリは、ビジー状態(処理を受付けない状態)になる。   Thereafter, the flash memory sequencer block executes the process based on the setting of the erase process. When this process is executed, command information, address information, and the like for executing an internal erase command are supplied from the flash memory interface block to the flash memory via the internal bus. At this time, if chip 0 is set in the erasure process setting (chip number setting), the CE signal (chip enable signal) on the chip 0 side becomes low level, so this erasure process is performed on the chip 0 side. Until the processing is completed, the flash memory on the chip 0 side is in a busy state (a state in which processing is not accepted).

このチップ0側のビジー状態(処理を受付けない状態)を、BUSY信号(ビジー信号)により検出し、チップ1側のフラッシュメモリに冗長領域の読出し処理を実行させる場合、まず、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような冗長領域の読出し処理の設定がなされる。
1)内部コマンドとして冗長領域の読出しコマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
2)冗長領域の読出し処理を行なうフラッシュメモリのチップの番号と、読出す冗長領域の物理ブロックアドレスが、フラッシュメモリシ―ケンサブロック内の所定のレジスタに設定される。
When this busy state (state where processing is not accepted) on the chip 0 side is detected by the BUSY signal (busy signal) and the flash memory on the chip 1 side executes the redundant area read processing, first, the flash memory sequencer block The following register setting for the redundant area is set in the register.
1) A redundant area read command is set in a predetermined register in the flash memory sequencer block as an internal command.
2) The chip number of the flash memory that performs the reading process of the redundant area and the physical block address of the redundant area to be read are set in a predetermined register in the flash memory sequencer block.

その後、上記冗長領域の読出し処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに冗長領域の読出しコマンドを実行するためのコマンド情報やアドレス情報等が供給される。この際、上記冗長領域の読出し処理の設定(チップの番号の設定)で、チップ1を設定しておけば、チップ1側のCE信号(チップイネーブル信号)が低レベルなるため、この冗長領域の読出し処理がチップ1側のフラッシュメモリで行なわれる。   Thereafter, the flash memory sequencer block executes the process based on the setting of the redundant area read process. When this process is executed, command information, address information, and the like for executing a read command for the redundant area are supplied from the flash memory interface block to the flash memory via the internal bus. At this time, if the chip 1 is set in the setting of the reading process of the redundant area (setting of the chip number), the CE signal (chip enable signal) on the chip 1 side becomes low level. Read processing is performed in the flash memory on the chip 1 side.

尚、上記のようにして読出した冗長領域に、論理ブロックアドレスが記述されていた場合には、それに応じた記述がアドレス変換テーブルに加えられる。   If a logical block address is described in the redundant area read as described above, a description corresponding to the logical block address is added to the address conversion table.

図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present invention. 図2は、フラッシュメモリ2を構成するメモリセル16の構造を概略的に示す断面図である。FIG. 2 is a cross-sectional view schematically showing the structure of the memory cell 16 constituting the flash memory 2. 図3は、書込状態であるメモリセル16を概略的に示す断面図である。FIG. 3 is a cross-sectional view schematically showing the memory cell 16 in the written state. 図4は、フラッシュメモリ2のアドレス空間の構造を概略的に示す図である。FIG. 4 is a diagram schematically showing the structure of the address space of the flash memory 2. 図5は、1024のブロックでゾーンを構成した例を示す図である。FIG. 5 is a diagram showing an example in which a zone is composed of 1024 blocks. 図6は、2チップのフラッシュメモリでゾーンを構成した例を示す図である。FIG. 6 is a diagram showing an example in which a zone is configured by a two-chip flash memory. 図7は、図6に示したゾーンに対するアドレス変換テーブルと候補テーブルの関係を示す図である。FIG. 7 is a diagram showing the relationship between the address conversion table and the candidate table for the zone shown in FIG. 図8は、アドレス変換テーブルの例を示した図である。FIG. 8 is a diagram illustrating an example of an address conversion table. 図9は、テーブル作成管理テーブルの例を示した図である。FIG. 9 is a diagram illustrating an example of the table creation management table. 図10は、消去済ブロック検索用テーブルの例を示す概念図である。FIG. 10 is a conceptual diagram illustrating an example of an erased block search table. 図11は、候補テーブルの例として、候補テーブルのデータ項目を示す図である。FIG. 11 is a diagram illustrating data items of the candidate table as an example of the candidate table. 図12は、複数チップでゾーンを構成した場合のテーブル作成処理を説明するための概念図である。FIG. 12 is a conceptual diagram for explaining table creation processing when a zone is configured by a plurality of chips. 図13は、複数チップでゾーンを構成した場合のテーブル作成処理を説明するためのタイミング図である。FIG. 13 is a timing chart for explaining table creation processing when a zone is configured by a plurality of chips.

符号の説明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 冗長領域
31 アドレス変換テーブル
32、33 候補テーブル
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 area 26 Redundant area 31 Address conversion table 32, 33 Candidate table

Claims (7)

フラッシュメモリの複数個のブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成手段と、
前記アドレス変換テーブルを用いて前記ゾーンに対するアクセスを制御するアクセス制御手段を備えたメモリコントローラであって、
前記ゾーンは、複数チップのフラッシュメモリ内のブロックで構成されており、
前記テーブル作成手段前記複数チップのフラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリのチップに対して読出し処理を行なうことにより、前記アドレス変換テーブルを作成することを特徴とするメモリコントローラ。
And table creation means for creating an address conversion table for the zone comprised of a plurality blocks in the flash memory,
A memory controller comprising access control means for controlling access to the zone using the address conversion table,
The zone is composed of blocks in a multi-chip flash memory,
It said table creation means, any of the flash memory of the plurality of chips is when it is receiving refusal state of the processing request, by performing read processing to the flash memory chips in the standby state of the processing request , a memory controller, characterized in that to create the address conversion table.
前記テーブル作成手段が、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいて前記アドレス変換テーブルを作成することを特徴とする請求項1記載のメモリコントローラ。2. The memory controller according to claim 1, wherein the table creation unit creates the address translation table based on a table creation management table indicating a progress of creation of the address translation table. 前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることを特徴とする請求項1又は2記載のメモリコントローラ。 3. The memory controller according to claim 1, wherein the acceptance refusal state is caused by execution of a write process or an erase process. 請求項1乃至記載のいずれかのメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。 Flash memory system comprising: a flash memory of any of the memory controller and a plurality of chips of claims 1 to 3, wherein. フラッシュメモリの複数個のブロックで構成されたゾーンに対するアドレス変換テーブルを作成するテーブル作成処理と
前記アドレス変換テーブルを用いて前記ゾーン対するアクセスを制御するアクセス制御処理と
を備えたフラッシュメモリの制御方法であって、
前記ゾーンは、複数チップのフラッシュメモリ内のブロックで構成されており、
前記テーブル作成処理では、前記複数チップのフラッシュメモリのうちのいずれかが、処理要求の受入拒否状態になった時に、処理要求の待機状態にあるフラッシュメモリのチップに対して読出し処理を行なうことにより、前記アドレス変換テーブル作成ることを特徴とするフラッシュメモリの制御方法。
And table creation processing for creating an address conversion table for the zone comprised of a plurality blocks in the flash memory,
An access control process for controlling the access against the zone by using the address conversion table
A flash memory control method comprising:
The zone is composed of blocks in a multi-chip flash memory,
In the table creation process , when any one of the flash memories of the plurality of chips enters a process request acceptance refusal state, a read process is performed on a flash memory chip in a process request standby state. the control method of a flash memory, characterized in that you create the address conversion table.
前記テーブル作成処理では、前記アドレス変換テーブルの作成進行状況を示したテーブル作成管理テーブルに基づいて前記アドレス変換テーブルを作成する処理を中断及び再開することを特徴とする請求項5記載のフラッシュメモリの制御方法。6. The flash memory according to claim 5, wherein in the table creation process, the process of creating the address translation table is suspended and restarted based on a table creation management table indicating a progress of creation of the address translation table. Control method. 前記受入拒否状態が、書込み処理又は消去処理の実行によって生じたものであることを特徴とする請求項5又は6記載のフラッシュメモリの制御方法。 7. The flash memory control method according to claim 5 , wherein the acceptance refusal state is caused by execution of a write process or an erase process.
JP2003336497A 2003-09-26 2003-09-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Expired - Fee Related JP4251950B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003336497A JP4251950B2 (en) 2003-09-26 2003-09-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
JP2003336497A JP4251950B2 (en) 2003-09-26 2003-09-26 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2005107601A JP2005107601A (en) 2005-04-21
JP4251950B2 true JP4251950B2 (en) 2009-04-08

Family

ID=34532587

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4251950B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4636046B2 (en) * 2007-03-29 2011-02-23 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Also Published As

Publication number Publication date
JP2005107601A (en) 2005-04-21

Similar Documents

Publication Publication Date Title
JP2647312B2 (en) Batch erase nonvolatile semiconductor memory device
US9075740B2 (en) Memory system
US7330995B2 (en) Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process
JP2005190288A (en) Memory controller, flash memory system therewith, and method for controlling flash memory
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4461754B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4173410B2 (en) Memory controller and flash memory system including the memory controller
JP4433792B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4251950B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4419525B2 (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
JP4177292B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD
JP4213053B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4203994B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2005316793A (en) Flash memory system and control method of flash memory
JP3934659B1 (en) Memory controller and flash memory system
JP4068594B2 (en) Flash memory controller, flash memory system, and flash memory control method
JP4222879B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
JP4561110B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP2003337757A (en) Memory controller, flash memory system, and controlling method for the same
JP4282410B2 (en) Flash memory control circuit, and memory controller and flash memory system provided with the control circuit
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: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20081222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081224

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120130

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130130

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees