Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4194473B2 - Memory controller and flash memory system including the memory controller - Google Patents
[go: Go Back, main page]

JP4194473B2 - Memory controller and flash memory system including the memory controller - Google Patents

Memory controller and flash memory system including the memory controller Download PDF

Info

Publication number
JP4194473B2
JP4194473B2 JP2003376132A JP2003376132A JP4194473B2 JP 4194473 B2 JP4194473 B2 JP 4194473B2 JP 2003376132 A JP2003376132 A JP 2003376132A JP 2003376132 A JP2003376132 A JP 2003376132A JP 4194473 B2 JP4194473 B2 JP 4194473B2
Authority
JP
Japan
Prior art keywords
block
zone
flash memory
blocks
data
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 - Lifetime
Application number
JP2003376132A
Other languages
Japanese (ja)
Other versions
JP2005141419A (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 JP2003376132A priority Critical patent/JP4194473B2/en
Publication of JP2005141419A publication Critical patent/JP2005141419A/en
Application granted granted Critical
Publication of JP4194473B2 publication Critical patent/JP4194473B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

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

近年、メモリカードやシリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されていることが要求される。   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)では、フラッシュメモリ内を複数のゾーンに分割し、各ゾーンに割当てられたブロックを対象にしてアドレス変換テーブルを作成している。   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 the blocks allocated to each zone.

又、上記ゾーンを採用したフラッシュメモリシステムでは、不良ブロックの発生を考慮して、ホストシステム側のデータ領域(特定範囲の論理ブロックアドレスに対応したデータ領域)対して、ゾーンを構成するブロックが余分に割当てている。
特開2000ー284996
In addition, in the flash memory system adopting the above-described zone, in consideration of the occurrence of a defective block, the block constituting the zone is extra for the host system side data area (data area corresponding to the logical block address in a specific range). 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 data area on the host system side that can be covered by the flash memory of the same capacity becomes narrower (hereinafter, the width of the data area 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.

そこで、本発明は、フラッシメモリの使用効率を低下させることなく、不良ブロックの発生に対する許容量を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。   Accordingly, an object of the present invention is to provide a memory controller and a flash memory system including the memory controller that can improve the tolerance for the occurrence of a defective block without reducing the use efficiency of the flash memory.

本発明に係る目的は、フラッシュメモリ内の複数ブロックで構成されたゾーンと、該ゾーンに割当てられるホストシステム側の論理ブロックアドレス空間との対応関係を管理する割当管理機能と
前記ゾーンに対するアクセスを制御するアクセス制御機能と、
複数の前記ゾーンに属するブロックが存在するように前記ゾーンを構成するゾーン構成機能とを備えたことを特徴とするメモリコントローラによって達成される。
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, and to control access to the zone. Access control function to
This is achieved by a memory controller comprising a zone configuration function that configures the zone such that a plurality of blocks belonging to the zone exist.

又、本発明に係る目的は、前記メモリコントローラと、フラッシュメモリを備えることを特徴とするフラッシュメモリシステムによっても達成される。   The object of the present invention is also achieved by a flash memory system comprising the memory controller and a flash memory.

ここで、「複数の前記ゾーンに属するブロックが存在する」とは、2又は3以上のゾーンに属するブロックが存在し、そのブロックは2又は3以上のゾーンが共用する共用ブロックとなっていることを意味する。   Here, “there are blocks belonging to a plurality of zones” means that there are blocks belonging to two or more zones, and the blocks are shared blocks shared by two or more zones. Means.

又、本発明によれば、前記ゾーン構成機能が、2つの前記ゾーンに属するブロックが存在するように前記ゾーンを構成することが好ましい。   According to the present invention, it is preferable that the zone configuration function configures the zone such that there are blocks belonging to two zones.

ここで、「2つの前記ゾーンに属するブロックが存在する」とは、2つのゾーンが共用する共用ブロックが存在することを意味する。   Here, “there are blocks belonging to two zones” means that there are shared blocks shared by the two zones.

又、本発明によれば、前記ゾーン構成機能が、前記ゾーンのうちのいずれか1つのゾーンと、他の2つのゾーンとに属するブロックが存在するように前記ゾーンを構成することが好ましい。   According to the present invention, it is preferable that the zone configuration function configures the zone such that a block belonging to any one of the zones and the other two zones exists.

ここで、「前記ゾーンのうちのいずれか1つのゾーンと、他の2つのゾーンとに属するブロックが存在する」とは、第1のゾーン、第2のゾーン及び第3のゾーンにおいて、第1のゾーンと第2のゾーンで共用するブロックと、第1のゾーンと第3のゾーンで共用するブロックが存在することを意味する。つまり、第1のゾーンが、第2のゾーンと共用するブロックと、第3のゾーンと共用するブロックを含んでいることを意味する。   Here, “a block belonging to any one of the zones and the other two zones exists” means that the first zone, the second zone, and the third zone This means that there is a block shared by the second zone and the second zone, and a block shared by the first zone and the third zone. That is, it means that the first zone includes a block shared with the second zone and a block shared with the third zone.

又、本発明によれば、前記ゾーン毎のアドレス変換テーブルを作成する変換テーブル作成手段を備えることが好ましい。   In addition, according to the present invention, it is preferable to provide a conversion table creating means for creating an address conversion table for each zone.

又、本発明によれば、前記ゾーン毎の候補テーブルを作成する候補テーブル作成手段を備えることが好ましい。   In addition, according to the present invention, it is preferable that a candidate table creating means for creating a candidate table for each zone is provided.

本発明によれば、フラッシュメモリの複数のブロックで構成されたゾーン内に、共有ブロック(複数のゾーンで共用しているブロック)が存在するので、この共有ブロックを不良ブロックの発生数の多いゾーンが優先的に使用すれば、フラッシメモリの使用効率の低下を抑えつつ、不良ブロックの発生に対する許容量を向上させることができる。   According to the present invention, since a shared block (a block shared by a plurality of zones) exists in a zone configured by a plurality of blocks of the flash memory, this shared block is a zone where a large number of bad blocks are generated. However, if it is used preferentially, it is possible to improve the tolerance for the occurrence of defective blocks while suppressing a decrease in the usage efficiency of the flash memory.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[フラッシュメモリシステム1の説明]
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常ホストシステム4に着脱可能に装着されて使用され、ホストシステム4に対して一種の外部記憶装置として用いられる。
[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 is taken into the controller 3 through the host interface block 7 as an entrance, and the data supplied from the flash memory system 1 to the host system 4 is supplied to the host system 4 through the host interface block 7 as an exit. Is done.

さらに、ホストインターフェースブロック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に書込むデータに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。   The ECC block 11 generates an error correction code added to the data to be written to the flash memory 2 and detects and corrects an error included in the read data based on the error correction code added to the read data. It is a block.

[メモリセルの説明]
次に、図2及び3を参照して図1に示したフラッシュメモリ2を構成するメモリセル16の具体的な構造について説明する。
[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 over 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. 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. Will be connected.

又、上記メモリセル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に蓄積された電子を排出する。   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.

[フラッシュメモリのメモリ構造の説明]
次に、フラッシュメモリのメモリ構造を説明する。図4は、フラッシュメモリのメモリ構造を概略的に示す図である。図4に示したように、フラッシュメモリはデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
[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 for mainly storing data supplied from the host system 4, and the redundant area 26 is an area for storing additional information such as an error collection code, a corresponding logical block address and a block status. is there.

エラーコレクションコードは、ユーザ領域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.

上記のようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリの冗長領域に書込まれている対応論理ブロックアドレスに基づいて作成され、データが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。   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.

[ゾーンの構成の説明]
次に、フラッシュメモリ内の複数のブロックで構成したゾーンを、論理ブロックアドレスの空間に割当てるゾーン管理について図面を参照して説明する。図5は、512のブロックでゾーンを構成した例を示している。図5に示した例では、ゾーンは、512のブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)で構成され、各ブロックは、読出し及び書込み処理の単位である32のページP00〜P31で構成されている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。
[Description of zone configuration]
Next, zone management for assigning a zone composed of a plurality of blocks in the flash memory to a logical block address space will be described with reference to the drawings. FIG. 5 shows an example in which a zone is composed of 512 blocks. In the example shown in FIG. 5, the zone is composed of 512 blocks B0000 to B0511 (physical block addresses 0000 to 0511), and each block is composed of 32 pages P00 to P31 which are units of read and write processing. Has been. Here, the block is a unit of erasing processing, and the page is a unit of reading and writing processing.

又、このゾーンを、論理ブロックアドレスの空間に割当てる場合、不良ブロックの発生を考慮して、ゾーンを構成するブロック数よりも少ないブロック数の論理ブロックアドレスの空間に割当てられる。この割当は、通常、フラッシュメモリの仕様に応じて行なわれるが、例えば、512のブロックで構成されたゾーンを、500ブロック分の論理ブロックアドレスの空間に割当てたり、490ブロック分の論理ブロックアドレスの空間に割当てたりすることができる。この際、論理ブロックアドレスの空間に割当てるブロック数を増やせば、フラッシュメモリの使用効率は良くなるが、不良ブロックの発生に対する許容量(許容できる不良ブロックの発生数)は少なくなる。例えば、512のブロックで構成されたゾーンを、500ブロック分の論理ブロックアドレスの空間に割当てた場合と、490ブロック分の論理ブロックアドレスの空間に割当てた場合を比較すると、フラッシュメモリの使用効率は、500ブロック分の論理ブロックアドレスの空間に割当てた場合の方が良くなるが、不良ブロックの発生に対する許容量は、490ブロック分の論理ブロックアドレスの空間に割当てた場合の方が多くなる。   When this zone is assigned to a logical block address space, it is assigned to a logical block address space having a smaller number of blocks than the number of blocks constituting the zone in consideration of the occurrence of a defective block. This allocation is normally performed according to the specifications of the flash memory. For example, a zone composed of 512 blocks is allocated to a logical block address space of 500 blocks, or a logical block address of 490 blocks is allocated. Can be assigned to space. At this time, if the number of blocks allocated to the space of the logical block address is increased, 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) is reduced. For example, when a zone composed of 512 blocks is allocated to a space of logical block addresses for 500 blocks and a case of allocation to a space of logical block addresses for 490 blocks, the usage efficiency of flash memory is However, the allocation to the space of the logical block address for 500 blocks is better, but the tolerance for the occurrence of the defective block is larger in the case of the allocation to the space of the logical block address for 490 blocks.

本発明に係るフラッシュメモリシステムでは、上記ゾーンを構成するブロックを2つのゾーンで共用している(以下、複数のゾーンで共用しているブロックを、共用ブロックと
いう。)。このゾーン間でのブロックの共用について図面を参照して説明する。図6は、本発明に係るフラッシュメモリシステムにおけるゾーンの構成を示した例である。ここで、各ゾーンは512のブロックで構成されており、それらのゾーンが496ブロック分の論理ブロックアドレスの空間に割当てられている。又、各ゾーンは、16のブロックを他のゾーンと共用している。
In the flash memory system according to the present invention, the blocks constituting the zone are shared by two zones (hereinafter, the blocks shared by a plurality of zones are referred to as shared blocks). The block sharing between the zones will be described with reference to the drawings. FIG. 6 shows an example of a zone configuration in the flash memory system according to the present invention. Here, each zone is composed of 512 blocks, and these zones are assigned to a logical block address space of 496 blocks. Each zone shares 16 blocks with other zones.

例えば、ゾーン0は、ブロックB0000〜B0007(物理ブロックアドレスの0000〜0007)をゾーンNと共用し、ブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)をゾーン1と共用している。ゾーン1は、ブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)をゾーン0と共用し、ブロックB1008〜B1015(物理ブロックアドレスの1008〜1015)をゾーン2と共用している。ゾーン2は、ブロックB1008〜B1015(物理ブロックアドレスの1008〜1015)をゾーン1と共用し、ブロックB1512〜B1519(物理ブロックアドレスの1512〜1519)をゾーン3と共用している。ゾーン3は、ブロックB1512〜B1519(物理ブロックアドレスの1512〜1519)をゾーン2と共用し、ブロックB2016〜B2023(物理ブロックアドレスの2016〜2023)をゾーン4と共用している。これ以降のゾーンについても同様に、各ゾーンが他の2つのゾーンとそれぞれ8のブロックを共用している。   For example, in zone 0, blocks B0000 to B0007 (physical block addresses 0000 to 0007) are shared with zone N, and blocks B0504 to B0511 (physical block addresses 0504 to 0511) are shared with zone 1. In zone 1, blocks B0504 to B0511 (physical block addresses 0504 to 0511) are shared with zone 0, and blocks B1008 to B1015 (physical block addresses 1008 to 1015) are shared with zone 2. In zone 2, blocks B1008 to B1015 (physical block addresses 1008 to 1015) are shared with zone 1, and blocks B1512 to B1519 (physical block addresses 1512 to 1519) are shared with zone 3. In zone 3, blocks B1512 to B1519 (physical block addresses 1512 to 1519) are shared with zone 2, and blocks B2016 to B2023 (physical block addresses 2016 to 2023) are shared with zone 4. Similarly for the subsequent zones, each zone shares eight blocks with the other two zones.

このようにゾーンを構成した場合、共用ブロックを全て占有したゾーンについては、最大16の不良ブロックの発生を許容することができる。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので許容できるブロック数は最大15ブロックになる。又、フラッシュメモリの使用効率については、504のブロックで構成されているゾーンを496ブロック分の論理ブロックアドレスの空間に割当てた場合と同じになる。従って、フラッシメモリの使用効率の低下を抑えつつ、不良ブロックの発生に対する許容量を向上させることができる。   When a zone is configured in this way, the generation of a maximum of 16 defective blocks can be allowed for a zone that occupies all shared blocks. However, if new data is once written in another block at the time of data rewriting and then the block where the old data has been written is erased, a spare block for writing new data is necessary. Up to 15 blocks can be made. Further, the usage efficiency of the flash memory is the same as when a zone composed of 504 blocks is allocated to a logical block address space of 496 blocks. Therefore, it is possible to improve the tolerance for the occurrence of defective blocks while suppressing a decrease in the usage efficiency of the flash memory.

尚、共用ブロックとするブロックの数(又は比率)は、フラッシュメモリの仕様やゾーンを構成するブロックの数に応じて適宜設定することが好ましい。又、各ゾーンのブロック数や各ゾーンに含まれる共有ブロックの数はゾーン毎に異なってもよい。又、不良ブロックの発生数に応じて共用ブロックの数を増減させてもよい。   Note that the number (or ratio) of blocks to be used as shared blocks is preferably set as appropriate according to the specifications of the flash memory and the number of blocks constituting the zone. Further, the number of blocks in each zone and the number of shared blocks included in each zone may be different for each zone. Further, the number of shared blocks may be increased or decreased according to the number of defective blocks generated.

[アドレス変換テーブルの説明]
次に、アドレス変換テーブルについて、図面を参照して説明する。図7は、図6に示したゾーン0に対するアドレス変換テーブルの一例を示したものであり、各論理ブロックアドレスに対応するデータが格納されているフラッシュメモリ内での物理ブロックアドレスが、論理ブロックアドレス順に記述されている。つまり、各サブゾーンに割当てられている論理ブロックアドレスと物理ブロックアドレスの対応関係が、論理ブロックアドレス順に記述されている。又、フラッシュメモリにデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、データが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う。)を設定する。
[Description of address translation table]
Next, the address conversion table will be described with reference to the drawings. FIG. 7 shows an example of the address conversion table for zone 0 shown in FIG. 6, and the physical block address in the flash memory in which data corresponding to each logical block address is stored is the logical block address. It is described in order. That is, the correspondence between the logical block address and physical block address assigned to each subzone is described in the order of logical block addresses. For a logical block address in which no data is stored in the flash memory, a flag indicating that no data is stored in the portion corresponding to the logical block address of the address conversion table (not a physical block address) A flag indicating that the corresponding data is not stored is referred to as an unstored flag).

例えば、図6に示したゾーン0のアドレス変換テーブルを作成する場合、496ブロック分の物理ブロックアドレスを記述できる領域をSRAM上に確保し、その物理ブロックアドレスを記述する領域に初期設定として未格納フラグを設定する。その後、ゾーン0を構成するブロックの冗長領域を順次読出していき、冗長領域に論理ブロックアドレス(対応論理ブロックアドレスとして記述されている論理ブロックアドレス)が記述されている場合には、アドレス変換テーブルのその論理ブロックアドレスに対応する部分に、その論
理ブロックアドレスが記述されているブロックの物理ブロックアドレスを記述する。
For example, when the address conversion table for zone 0 shown in FIG. 6 is created, an area in which physical block addresses for 496 blocks can be described is secured on the SRAM, and the initial setting is not stored in the area for describing the physical block addresses. Set the flag. Thereafter, the redundant areas of the blocks constituting the zone 0 are sequentially read out, and when the logical block address (the logical block address described as the corresponding logical block address) is described in the redundant area, the address conversion table In the portion corresponding to the logical block address, the physical block address of the block in which the logical block address is described is described.

ここで、ゾーン0は、ブロックB0000〜B0007(物理ブロックアドレスの0000〜0007)をゾーンNと共用し、ブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)をゾーン1と共用しているので、ゾーンNと共用しているブロックには、ゾーンNに割当てられている論理ブロックアドレスのデータが格納されている場合があり、ゾーン1と共用しているブロックには、ゾーン1に割当てられている論理ブロックアドレスのデータが格納されている場合がある。従って、冗長領域に記述されている論理ブロックアドレスが、ゾーンNやゾーン1に割当てられている論理ブロックアドレスの場合、ゾーン0のアドレス変換テーブルへの物理ブロックアドレスの記述は行なわれない。つまり、冗長領域に記述されている論理ブロックアドレスが、ゾーン0に割当てられている論理ブロックアドレスのときに、ゾーン0のアドレス変換テーブルの、その論理ブロックアドレスに対応する部分に、その論理ブロックアドレスが記述されているブロックの物理ブロックアドレスを記述する。   Here, since zone 0 shares blocks B0000 to B0007 (physical block addresses 0000 to 0007) with zone N and blocks B0504 to B0511 (physical block addresses 0504 to 0511) with zone 1, A block shared with zone N may store data of a logical block address assigned to zone N, and a block shared with zone 1 is assigned to zone 1 In some cases, data of a logical block address is stored. Accordingly, when the logical block address described in the redundant area is a logical block address assigned to zone N or zone 1, the physical block address is not described in the zone 0 address conversion table. In other words, when the logical block address described in the redundant area is the logical block address assigned to zone 0, the logical block address in the portion corresponding to the logical block address in the zone 0 address conversion table Describes the physical block address of the block in which is described.

尚、このアドレス変換テーブルの作成処理で物理ブロックアドレスが記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。   Note that the unstored flag described in the initial setting remains as it is in the portion where the physical block address is not described in the address conversion table creation processing.

[消去済ブロック検索用テーブルと候補テーブルの説明]
次に、消去済ブロック検索用テーブルと候補テーブルについて、図面を参照して説明する。候補テーブルは、データの書込み先として準備しておく消去済ブロック(以下、データの書込み先として準備しておく消去済ブロックを書込み候補ブロックと言う。)を設定しておくテーブルであり、各ゾーン毎に作成される。又、消去済ブロック検索用テーブルは、候補テーブルに書込み候補ブロックとして設定される消去済ブロックを検索するためのテーブルである。
[Description of erased block search table and candidate table]
Next, the erased block search table and candidate table will be described with reference to the drawings. The 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 in each zone. Created every time. The erased block search table is a table for searching for erased blocks set as candidate write blocks in the candidate table.

まず、消去済ブロック検索用テーブルを用いて、消去済ブロックを検索する方法について説明する。例えば、図6に示したゾーンの消去済ブロックを検索する場合、512ビットの領域をSRAM上に確保し、その領域の各ビットにゾーンを構成する各ブロックを割当てた消去済ブロック検索用テーブルを作成する。但し、図6に示したゾーンのように各ゾーン間でブロックを共用している場合、消去済ブロック検索用テーブル上の共用ブロックに対応したビットも共用させることが好ましい。   First, a method for searching for an erased block using the erased block search table will be described. For example, when searching the erased block in the zone shown in FIG. 6, a 512-bit area is secured on the SRAM, and an erased block search table in which each block constituting the zone is assigned to each bit of the area is stored. create. However, when the blocks are shared among the zones as in the zone shown in FIG. 6, it is preferable to share the bits corresponding to the shared blocks on the erased block search table.

図8は、図6に示したゾーン0〜2の消去済ブロック検索用テーブルを概念的に示した概念図である。ここで、ゾーン0の消去済ブロック検索用テーブル上のビットは、ブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)に対応し、ゾーン1の消去済ブロック検索用テーブル上のビットは、ブロックB0504〜B1015(物理ブロックアドレスの0504〜1015)に対応し、ゾーン2の消去済ブロック検索用テーブル上のビットは、ブロックB1008〜B1519(物理ブロックアドレスの1008〜1519)に対応する。従って、消去済ブロック検索用テーブル上のブロックB0000〜B0007(物理ブロックアドレスの0000〜0007)に対応するビットは、ゾーン0とゾーンNの消去済ブロック検索用テーブルが共用し、ブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)に対応するビットは、ゾーン0とゾーン1の消去済ブロック検索用テーブルが共用し、ブロックB1008〜B1015(物理ブロックアドレスの1008〜1015)に対応するビットは、ゾーン1とゾーン2の消去済ブロック検索用テーブルが共用し、ブロックB1512〜B1519(物理ブロックアドレスの1512〜1519)に対応するビットは、ゾーン2とゾーン3の消去済ブロック検索用テーブルが共用する。   FIG. 8 is a conceptual diagram conceptually showing the erased block search table for zones 0 to 2 shown in FIG. Here, the bits on the erased block search table for zone 0 correspond to blocks B0000 to B0511 (physical block addresses 0000 to 0511), and the bits on the erased block search table for zone 1 correspond to block B0504. Correspond to .about.B1015 (physical block addresses 0504 to 1015), and the bits on the erased block search table for zone 2 correspond to blocks B1008 to B1519 (physical block addresses 1008 to 1519). Therefore, the bits corresponding to the blocks B0000 to B0007 (physical block addresses 0000 to 0007) on the erased block search table are shared by the zone 0 and the zone N erased block search tables, and the blocks B0504 to B0511 ( Bits corresponding to physical block addresses 0504 to 0511) are shared by the zone 0 and zone 1 erased block search tables, and bits corresponding to blocks B1008 to B1015 (physical block addresses 1008 to 1015) are 1 and zone 2 erased block search tables are shared, and bits corresponding to blocks B1512 to B1519 (physical block addresses 1512 to 1519) are shared by zone 2 and zone 3 erased block search tables.

又、消去済ブロック検索用テーブル上のビットと、ゾーンを構成するブロックとの対応関係については、図8に示した消去済ブロック検索用テーブル上のビットを、上の行から
下の行へ、各行を左から右へ物理ブロックアドレス順に対応させている。従って、ゾーン0の消去済ブロック検索用テーブルでは、左上のビットが、B0000(物理ブロックアドレスの0000)のブロックに対応し、右下のビットが、B0511(物理ブロックアドレスの0511)のブロックに対応する。
For the correspondence between the bits on the erased block search table and the blocks constituting the zone, the bits on the erased block search table shown in FIG. 8 are changed from the upper row to the lower row. Each row is associated from left to right in the order of physical block addresses. Therefore, in the erased block search table for zone 0, the upper left bit corresponds to the block B0000 (physical block address 0000) and the lower right bit corresponds to the block B0511 (physical block address 0511). To do.

又、消去済ブロック検索用テーブル上のビットは、「0」と「1」で消去済ブロックであるか否かを示しており、例えば、データが書込まれている場合(又は不良ブロックであることを示すブロックステータスが記述されている場合)は、そのビットに「0」を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに「1」を設定する。尚、この消去済ブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することができる。例えば、消去済ブロック検索用テーブルを作成するSRAM上の領域に「0」を設定しておき、各ブロックの冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに「1」を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、ゾーンを構成するブロックの冗長領域に記述されているデータを読出したときにこの処理を行なえば、消去済ブロックに対応するビットだけに「1」が設定され、消去済ブロックでないブロックに対応するビットは予め設定した「0」のままになる。   The bits on the erased block search table indicate whether the block is an erased block by “0” and “1”. For example, when data is written (or a defective block) Is set to “0” in the bit, and “1” is set in the bit when data is not written (in the case of an erased block). 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.

又、この消去済ブロック検索用テーブルの更新については、消去済ブロックにデータを書込んだときに、そのブロックに対応するビットを「1」から「0」に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを「0」から「1」に変更する。   For updating the erased block search table, when data is written to the erased block, the bit corresponding to the block is changed from “1” to “0” and the data is written. When a block is erased, the bit corresponding to that block is changed from “0” to “1”.

次に、この消去済ブロック検索用テーブルを用いて消去済ブロックを検索する場合について図9を参照して説明する。図9は、ゾーン0の消去済ブロック検索用テーブルを示しており、一番上の行の各ビットは、ゾーンNと共用しているブロックB0000〜B0007(物理ブロックアドレスの0000〜0007)に対応し、一番下の行はゾーン1と共用しているブロックB0504〜B0511(物理ブロックアドレスの0504〜0511)に対応する。又、一番上の行と一番下の行を除いた部分の各ビットは、ゾーン0だけが使用するブロックB0008〜B0503(物理ブロックアドレスの0008〜0503)に対応する。   Next, a case where an erased block is searched using this erased block search table will be described with reference to FIG. FIG. 9 shows the erased block search table for zone 0, with each bit in the top row corresponding to blocks B0000 to B0007 (physical block addresses 0000 to 0007) shared with zone N. The bottom row corresponds to blocks B 0504 to B 0511 (physical block addresses 0504 to 0511) shared with zone 1. Each bit in the portion excluding the top row and the bottom row corresponds to blocks B0008 to B0503 (physical block addresses 0008 to 0503) used only by zone 0.

例えば、ゾーン0だけが使用するブロックB0008〜B0503(物理ブロックアドレスの0008〜0503)を優先的に使用したい場合は、一番上の行と一番下の行を除いた部分を用いて消去済ブロックの検索を行なう。つまり、ブロックB0008(物理ブロックアドレスの0008)に対応するビット(上から2番目の行の、一番左のビット)から、ブロックB0503(物理ブロックアドレスの0503)に対応するビット(下から2番目の行の、一番右のビット)までを走査していき、消去済ブロックに対応する「1」のビットを検索する。尚、前記走査は、上の行から下の行へ、各行を左から右へ向かって行なわれる。   For example, if you want to preferentially use blocks B0008 to B0503 (physical block addresses 0008 to 0503) used only by zone 0, erased data using the portion excluding the top row and the bottom row. Search for a block. That is, from the bit corresponding to the block B0008 (physical block address 0008) (the leftmost bit in the second row from the top) to the bit corresponding to the block B0503 (physical block address 0503) (the second from the bottom) To the rightmost bit in the row) and search for a bit of “1” corresponding to the erased block. The scanning is performed from the upper row to the lower row and from the left to the right in each row.

図9に示した消去済ブロック検索用テーブルで、上から2番目の行の、一番左のビットから走査を開始した場合、上から2番目の行の、左から3番目のビットが「1」なので、ここで検索を終了し、このビットに対応するブロックB0010(物理ブロックアドレスの0010)を、書込み候補ブロックとして候補テーブルに設定する。又、次回の検索は、上から2番目の行の、左から4番目のビットから走査を開始し、上から4番目の行の、左から5番目のビットが「1」なので、ここで検索を終了し、このビットに対応するブロックB0028(物理ブロックアドレスの0028)を、書込み候補ブロックとして候補テーブルに設定する。その後も、このような検索を続けていき、下から2番目の行の、一
番右のビットまで走査が進んだときは、上から2番目の行の、一番左のビットに戻る。又、一番上の行と一番下の行を除いた部分のビットが全て「0」になった場合、つまりゾーン0だけが使用するブロックB0008〜B0503(物理ブロックアドレスの0008〜0503)に消去済ブロックがない場合、ゾーンN又はゾーン1と共用しているブロックに対応したビットである一番上の行又は一番下の行を走査する。
In the erased block search table shown in FIG. 9, when scanning is started from the leftmost bit in the second row from the top, the third bit from the left in the second row from the top is “1”. Therefore, the search ends here, and the block B0010 (physical block address 0010) corresponding to this bit is set in the candidate table as a write candidate block. In the next search, scanning starts from the fourth bit from the left in the second row from the top, and the fifth bit from the left in the fourth row from the top is “1”. And block B0028 (physical block address 0028) corresponding to this bit is set in the candidate table as a write candidate block. Thereafter, such a search is continued, and when the scanning proceeds to the rightmost bit in the second row from the bottom, the processing returns to the leftmost bit in the second row from the top. When all the bits except for the top row and the bottom row are all “0”, that is, in blocks B0008 to B0503 (physical block addresses 0008 to 0503) used only by zone 0. If there is no erased block, the top or bottom row, which is a bit corresponding to a block shared with zone N or zone 1, is scanned.

尚、上記の説明では、他のゾーンと共用していないブロックを優先的に使用するようにしたが、共用ブロックであるか否かに関係なく、全てのゾーンを同じように使用するようにしても良い。又、不良ブロックの発生数の多いゾーンについては、共用ブロックを優先的に使用するようにすることが好ましい。   In the above description, blocks that are not shared with other zones are used preferentially, but all zones are used in the same way regardless of whether they are shared blocks or not. Also good. In addition, it is preferable to use the shared block preferentially in a zone where a large number of bad blocks are generated.

次に、上記検索で検出した消去済ブロックを、書込み候補ブロックとして設定する候補テーブルについて説明する。図10は候補テーブルのデータ項目を示す図である。この候補テーブルには、データ項目としてブロック番号、チェック要求フラグ、エラー検出フラグ及びチェックスタートページが設定されている。   Next, a candidate table for setting erased blocks detected by the above search as write candidate blocks will be described. FIG. 10 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, the physical block address of the erased block detected by the search is set in the block number setting unit. 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 “absence 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フラグ」がセットされる。   In the write candidate block set in this candidate table, the erase state is checked 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

例えば、初期設定時に図10(a)に示したように、ブロック番号、チェック要求フラグ及びエラー検出フラグの設定部に「未設定フラグ」を、チェックスタートページの設定部に「0」を設定する。次に、消去済ブロックを検索し、そのブロックアドレスがB0010であれば、ブロック番号の設定部にB0010を設定し、チェック要求フラグの設定部に「有りフラグ」を設定する(図10(b))。   For example, as shown in FIG. 10A during initialization, “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 section, and “present flag” is set in the check request flag setting section (FIG. 10B). ).

その後、消去状態のチェックを実行し、14ページまでチェックを終了した時点で処理を中断したときは、チェックスタートページに「15」を設定する(図10(c))。その後、消去状態のチェックを再開し、その処理が完了したときに、32ページ全てが正常に消去されていた場合は、図10(d)に示したように、チェック要求フラグの設定部に「無しフラグ」を、エラー検出フラグの設定部に「OKフラグ」を設定する。一方、正常に消去されていないページが検出された場合には、図10(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. 10C). 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 normally erased is detected, as shown in FIG. 10E, 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.

[読出し処理及び書込み処理の説明]
ホストシステム側からの要求により、フラッシュメモリに格納されているデータを読出す場合は、ホストシステム側から与えられる論理ブロックアドレスが、図7に示したアドレス変換テーブルに基づき物理ブロックアドレス(論理ブロックアドレスに対応するデータが格納されているブロックの物理ブロックアドレス)に変換される。続いて、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような読出し処理の設定がなされる。
1)内部コマンドとして内部読出しコマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
2)ホストシステム側から与えられる論理ブロックアドレスに対応するデータが格納されているブロック内のページのアドレスが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。ここで、上記ページのアドレスは、物理ブロックアドレスにページ番号に相当する5ビット(32のページを識別するためのビット)を付加することによって与えられる。
[Description of read processing and write processing]
When reading data stored in the flash memory in response to a request from the host system side, the logical block address given from the host system side is based on the physical block address (logical block address) based on the address conversion table shown in FIG. To the physical block address of the block in which the data corresponding to is stored. Subsequently, the following read processing is set in the register of the flash memory sequencer block.
1) An internal read command is set in a predetermined register in the flash memory sequencer block as an internal command.
2) The address of the page in the block in which the data corresponding to the logical block address given from the host system side is stored is set in a predetermined register in the flash memory sequencer block. Here, the address of the page is given by adding 5 bits (bits for identifying 32 pages) corresponding to the page number to the physical block address.

その後、上記読出し処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに内部読出しコマンドを実行するためのコマンド情報やアドレス情報等が供給される。そして、これらの情報に基づいてホストシステム側から与えられる論理ブロックアドレスに対応するデータが格納されているブロック内のページに格納されているデータが、内部バスを介してバッファに読出される。   Thereafter, the flash memory sequencer block executes the process based on the setting of the read process. When this process is executed, command information, address information, and the like for executing an internal read command are supplied from the flash memory interface block to the flash memory via the internal bus. Based on these pieces of information, data stored in a page in a block in which data corresponding to a logical block address given from the host system side is stored is read out to a buffer via the internal bus.

又、ホストシステム側からの要求により、フラッシュメモリにデータを書込む場合は、図10に示した候補テーブルに設定されている書込み候補ブロックに対してデータの書込み処理が行なわれる。この書込み処理では、フラッシュメモリシーケンサブロックが有するレジスタに、以下のような書込み処理の設定がなされる。
1)内部コマンドとして内部書込みコマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
2)候補テーブルに設定されている書込み候補ブロック内のページのアドレスが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
Further, when data is written to the flash memory in response to a request from the host system side, data writing processing is performed on the write candidate block set in the candidate table shown in FIG. In this write process, the following write process is set in the register of the flash memory sequencer block.
1) An internal write command is set in a predetermined register in the flash memory sequencer block as an internal command.
2) The address of the page in the write candidate block set in the candidate table is set in a predetermined register in the flash memory sequencer block.

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

又、上記書込み処理で、ホストシステム側から供給された論理ブロックアドレスに対応する旧データが存在する場合は、上記新データの書込み処理の後に旧データの消去処理が行なわれる。尚、消去する旧データが格納されているブロックの物理ブロックアドレスは、図7に示したアドレス変換テーブルに基づいて得ることができる。この消去処理では、フラッシュメモリシーケンサブロックが有するレジスタに以下のような消去処理の設定がなされる。
1)内部コマンドとして内部消去コマンドが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
2)旧データが格納されているブロックの物理ブロックアドレスが、フラッシュメモリシーケンサブロック内の所定のレジスタに設定される。
If there is old data corresponding to the logical block address supplied from the host system side in the write process, the old data is erased after the new data write process. The physical block address of the block storing the old data to be erased can be obtained based on the address conversion table shown in FIG. In this erasing process, the following erasing 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 physical block address of the block in which the old data is stored is set in a predetermined register in the flash memory sequencer block.

その後、上記消去処理の設定に基づいて、フラッシュメモリシーケンサブロックが処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロックから、内部バスを介してフラッシュメモリに内部消去コマンドを実行するためのコマンド情報やアドレス情報等が供給され、旧データが格納されていたブロックのデータが消去される。   Thereafter, the flash memory sequencer block executes the process based on the setting of the erase process. When this processing is executed, command information and address information for executing an internal erase command are supplied from the flash memory interface block to the flash memory via the internal bus, and the data of the block in which the old data is stored Is erased.

図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は、512のブロックでゾーンを構成した例を示す図である。FIG. 5 is a diagram illustrating an example in which a zone is configured by 512 blocks. 図6は、共有ブロックを含むゾーンの構成例を示す図である。FIG. 6 is a diagram illustrating a configuration example of a zone including a shared block. 図7は、アドレス変換テーブルの例を示した図である。FIG. 7 is a diagram illustrating an example of an address conversion table. 図8は、消去済ブロック検索用テーブルの例を示す概念図である。FIG. 8 is a conceptual diagram illustrating an example of an erased block search table. 図9は、消去済ブロック検索用テーブルを用いた消去済ブロックの検索方法を説明するための図である。FIG. 9 is a diagram for explaining an erased block search method using an erased block search table. 図10は、候補テーブルを説明するための図である。FIG. 10 is a diagram for explaining the candidate table.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
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 冗長領域
DESCRIPTION OF SYMBOLS 1 Flash memory system 2 Flash memory 3 Controller 4 Host system 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 (6)

フラッシュメモリ内の複数ブロックで構成されたゾーンと、該ゾーンに割当てられるホストシステム側の論理ブロックアドレス空間との対応関係を管理する割当管理機能と、
前記ゾーンに対するアクセスを制御するアクセス制御機能と、
複数の前記ゾーンに属するブロックが存在するように前記ゾーンを構成するゾーン構成機能とを備えたことを特徴とするメモリコントローラ。
An allocation management function for managing a correspondence relationship 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 memory controller comprising: a zone configuration function for configuring the zone such that a plurality of blocks belonging to the zone exist.
前記ゾーン構成機能が、2つの前記ゾーンに属するブロックが存在するように前記ゾーンを構成することを特徴とする請求項1に記載のメモリコントローラ。 The memory controller according to claim 1, wherein the zone configuration function configures the zone such that there are blocks belonging to two of the zones. 前記ゾーン構成機能が、前記ゾーンのうちのいずれか1つのゾーンと、他の2つのゾーンとに属するブロックが存在するように前記ゾーンを構成することを特徴とする請求項1又は2に記載のメモリコントローラ。 3. The zone according to claim 1, wherein the zone configuration function configures the zone such that a block belonging to any one of the zones and the other two zones exists. Memory controller. 前記ゾーン毎のアドレス変換テーブルを作成する変換テーブル作成手段を備えることを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 4. The memory controller according to claim 1, further comprising a conversion table creating unit that creates an address conversion table for each zone. 前記ゾーン毎の候補テーブルを作成する候補テーブル作成手段を備えることを特徴とする請求項1乃至4のいずれか1項に記載のメモリコントローラ。 The memory controller according to claim 1, further comprising candidate table creation means for creating a candidate table for each zone. 請求項1乃至5のいずれか1項に記載のメモリコントローラと、フラッシュメモリとを備えることを特徴とするフラッシュメモリシステム。 A flash memory system comprising: the memory controller according to claim 1; and a flash memory.
JP2003376132A 2003-11-05 2003-11-05 Memory controller and flash memory system including the memory controller Expired - Lifetime JP4194473B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003376132A JP4194473B2 (en) 2003-11-05 2003-11-05 Memory controller and flash memory system including the memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003376132A JP4194473B2 (en) 2003-11-05 2003-11-05 Memory controller and flash memory system including the memory controller

Publications (2)

Publication Number Publication Date
JP2005141419A JP2005141419A (en) 2005-06-02
JP4194473B2 true JP4194473B2 (en) 2008-12-10

Family

ID=34687299

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003376132A Expired - Lifetime JP4194473B2 (en) 2003-11-05 2003-11-05 Memory controller and flash memory system including the memory controller

Country Status (1)

Country Link
JP (1) JP4194473B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4661809B2 (en) * 2007-03-15 2011-03-30 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Also Published As

Publication number Publication date
JP2005141419A (en) 2005-06-02

Similar Documents

Publication Publication Date Title
TWI393140B (en) Method of storing data in a non-volatile memory
US7453712B2 (en) Hybrid flash memory device and method for assigning reserved blocks thereof
US20140289588A1 (en) Memory system
US7315870B2 (en) Memory controller, flash memory system, and method for recording data on flash memory
JP4661191B2 (en) Memory controller, flash memory system, 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
JP4461754B2 (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
JP4419525B2 (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
JP4203994B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4177292B2 (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
JP2005316793A (en) Flash memory system and flash memory control method
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4068594B2 (en) Flash memory controller, flash memory system, and flash memory control method
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4222879B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4282410B2 (en) Flash memory control circuit, and memory controller and flash memory system provided with the control circuit
JP4561110B2 (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
JP2005293177A (en) Memory controller and flash memory system

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

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4194473

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

EXPY Cancellation because of completion of term