[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2006309539A - Memory controller, flash memory system and control method of flash memory - Google Patents

Memory controller, flash memory system and control method of flash memory Download PDF

Info

Publication number
JP2006309539A
JP2006309539A JP2005131920A JP2005131920A JP2006309539A JP 2006309539 A JP2006309539 A JP 2006309539A JP 2005131920 A JP2005131920 A JP 2005131920A JP 2005131920 A JP2005131920 A JP 2005131920A JP 2006309539 A JP2006309539 A JP 2006309539A
Authority
JP
Japan
Prior art keywords
address
register
address register
flash memory
address 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.)
Granted
Application number
JP2005131920A
Other languages
Japanese (ja)
Other versions
JP4304167B2 (en
Inventor
Takuma Mitsunaga
琢真 光永
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 JP2005131920A priority Critical patent/JP4304167B2/en
Publication of JP2006309539A publication Critical patent/JP2006309539A/en
Application granted granted Critical
Publication of JP4304167B2 publication Critical patent/JP4304167B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a flash memory system with high access efficiency to flash memory. <P>SOLUTION: The memory controller for controlling access to a flash memory 11 comprises address registers 23a and 23b for retaining physical addresses on the flash memory 11. In accessing to the flash memory 11, address data based on a physical address retained in the address register 23a is given to the flash memory 11, and a physical address for next access to the flash memory 1 is set in the address register 23b. After the physical address retained in the address register 23a is given to the flash memory 11, the physical address retained in the address register 23b is transferred to the address register 23a and retained therein. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

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

近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。   In recent years, flash memories have been widely adopted as semiconductor memories used in memory systems such as memory cards and silicon disks. A flash memory is a kind of nonvolatile memory. Data stored in the flash memory is required to be retained even when power is not supplied.

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”を示すデータが格納されている消去状態から、論理値“0”を示すデータが格納されている書込状態へと変化することができる。   A NAND flash memory is a type of flash memory that is particularly frequently used in the above memory system. Each of the plurality of memory cells included in the NAND flash memory receives a logical value “0” from an erased state in which data indicating a logical value “1” is stored, independently of the other memory cells. It is possible to change to a writing state in which the indicated data is stored.

これとは対照的に、複数のメモリセルのうちの少なくとも1つが書込状態から消去状態へと変化しなければならないときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルにおいて、全てのメモリセルが同時に消去状態とならなければならない。この一括消去動作は、一般的に、"ブロック消去"と称されている。ブロック消去が行われたブロックは、消去済ブロックと称される。   In contrast, when at least one of the plurality of memory cells must change from a written state to an erased state, each memory cell cannot change independently of the other memory cells. At this time, in a predetermined number of memory cells called blocks, all the memory cells must be simultaneously erased. This batch erase operation is generally called “block erase”. A block that has been subjected to block erase is referred to as an erased block.

上記のような特徴により、NAND型フラッシュメモリでは、データを上書することが不可能である。メモリセルにおける格納データを書換えるためには、新しいデータを含んだブロックデータが消去済ブロックに書込まれた後に、古いデータを格納しているブロックのためのブロック消去が行われなければならない。   Due to the above features, data cannot be overwritten in the NAND flash memory. In order to rewrite the stored data in the memory cell, after block data including new data is written to the erased block, block erasure for the block storing the old data must be performed.

書換えられたデータは、以前に格納されていたブロックとは異なるブロックに書込まれる。そのため、ホストシステムから供給されるアドレス信号によって指定される論理ブロックアドレスと、フラッシュメモリ内での実際のブロックアドレスを示す物理ブロックアドレスとの間の対応関係は、フラッシュメモリにてデータが書換えられる毎に、コントローラによって動的に調整される。例えば、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、コントローラに設けられたアドレス変換テーブルに記載される。   The rewritten data is written in a block different from the previously stored block. Therefore, the correspondence between the logical block address specified by the address signal supplied from the host system and the physical block address indicating the actual block address in the flash memory is the same every time data is rewritten in the flash memory. Dynamically adjusted by the controller. For example, the correspondence between logical block addresses and physical block addresses is described in an address conversion table provided in the controller.

例えば、特許文献1では、アドレス変換テーブルで、論理ブロックアドレスが物理ブロックアドレスに変換される。この物理ブロックアドレスは物理アドレスレジスタの物理ブロックアドレス部に設定される。物理アドレスレジスタのワードアドレス部には、初期値が適宜設定される。物理アドレスレジスタは、物理ブロックアドレス部及びワードアドレス部に、保持しているアドレスデータを、フラッシュメモリに供給し、アドレスデータを供給する毎に、ワードアドレス部に保持されている値をインクリメントしている。
特開平9−161491号公報
For example, in Patent Document 1, a logical block address is converted into a physical block address using an address conversion table. This physical block address is set in the physical block address portion of the physical address register. An initial value is appropriately set in the word address portion of the physical address register. The physical address register supplies the address data held in the physical block address part and the word address part to the flash memory, and increments the value held in the word address part every time the address data is supplied. Yes.
JP-A-9-161491

しかしながら、特許文献1では、アクセス先の物理ブロックが変わる毎に、物理アドレスレジスタの物理ブロックアドレス部に新たな物理ブロックアドレスが設定され、ワードアドレス部に新たな初期値が設定される。従って、複数ブロックに連続的にアクセスするときに、物理アドレスレジスタの再設定処理が、その都度行われることになり、処理効率が低下するという問題があった。   However, in Patent Document 1, every time the physical block to be accessed changes, a new physical block address is set in the physical block address portion of the physical address register, and a new initial value is set in the word address portion. Therefore, when a plurality of blocks are continuously accessed, the physical address register resetting process is performed each time, resulting in a problem that the processing efficiency is lowered.

そこで、本発明は、複数ブロックに連続的にアクセスするときの処理効率を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。   Therefore, an object of the present invention is to provide a memory controller, a flash memory system including the memory controller, and a flash memory control method capable of improving processing efficiency when continuously accessing a plurality of blocks.

上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するメモリコントローラであって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出手段と、
前記メモリコントローラに与えるアドレスデータを保持するための第1のアドレスレジスタと、
前記メモリコントローラに与えるアドレスデータを保持するための第2のアドレスレジスタと、
前記物理ブロック検出手段で検出した物理ブロックに対応するアドレスデータを前記第1のアドレスレジスタに設定して保持させる第1のアドレス設定手段と、
前記第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを前記第2のアドレスレジスタに設定して保持させる第2のアドレス設定手段と、
前記第1のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給手段と、
前記第1のアドレスレジスタに保持されいるアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第2のアドレスレジスタに保持されているアドレスデータを該第1のアドレスレジスタに設定して保持させるアドレスデータ変更手段と、
前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに保持されたことに応答し、その時点で該第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第2のアドレスレジスタに設定して保持させる第3のアドレス設定手段と、
を備えることを特徴とする。
In order to achieve the above object, a memory controller according to the first aspect of the present invention provides:
A memory controller that controls access from a host system to a flash memory having a plurality of physical blocks of multiple pages in a storage area,
Physical block detection means for sequentially detecting the physical blocks to be accessed from logical addresses sequentially given from the host system;
A first address register for holding address data to be given to the memory controller;
A second address register for holding address data to be given to the memory controller;
First address setting means for setting and holding address data corresponding to the physical block detected by the physical block detection means in the first address register;
The physical block to be accessed next to the physical block indicated by the address data held in the first address register is obtained from the detection result of the physical block detecting means, and the address data corresponding to the obtained physical block Second address setting means for setting and holding in the second address register;
Address data supply means for supplying the address data held in the first address register to the flash memory to execute the access;
In response to the address data held in the first address register being supplied to the flash memory, the address data held in the second address register at that time is set in the first address register. Address data changing means to be held,
In response to the address data held in the second address register being held in the first address register, the physical block of the physical block indicated by the address data held in the first address register at that time Next, third address setting means for obtaining a physical block to be accessed from the detection result of the physical block detecting means, and setting and holding address data corresponding to the obtained physical block in the second address register When,
It is characterized by providing.

尚、前記第1のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第2のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第1のアドレス設定手段は、前記第1のアドレスレジスタのサブレジスタの初期値を設定する第1の初期値設定手段を備え、
前記第2のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第2の初期値設定手段を備え、
前記第3のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第3の初期値設定手段を備え、
前記第1のアドレスレジスタのサブレジスタに保持された値を更新する更新手段が設けられてもよい。
The first address register includes a main register that holds a part that specifies the physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The second address register includes a main register that holds a part that specifies a physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The first address setting means includes first initial value setting means for setting an initial value of a sub-register of the first address register,
The second address setting means includes second initial value setting means for setting an initial value of a sub-register of the second address register,
The third address setting means comprises third initial value setting means for setting an initial value of a sub-register of the second address register;
Update means for updating a value held in a sub-register of the first address register may be provided.

この場合、前記更新手段が、前記第1のアドレスレジスタのサブレジスタに保持されている値に対して1ずつ減算又は加算を施してもよい。   In this case, the updating means may subtract or add one by one to the value held in the subregister of the first address register.

また、前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに設定されたことに応答して、該第2のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第2のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第2のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定手段を備えてもよい。   In addition, in response to the address data held in the second address register being set in the first address register, new address data can be set in the second address register. As a result, in response to the setting of new address data in the second address register, there is provided flag setting means for indicating that new address data cannot be set in the second address register. May be.

上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステム、上記本発明の第1の観点に係るメモリコントローラと、フラッシュメモリを備えることを特徴とする。   In order to achieve the above object, a flash memory system according to the second aspect of the present invention, a memory controller according to the first aspect of the present invention, and a flash memory are provided.

上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出処理と、
前記メモリコントローラに与えるアドレスデータを保持するための第1のアドレスレジスタに、前記物理ブロック検出処理で検出した物理ブロックに対応するアドレスデータを設定して保持させる第1のアドレス設定処理と、
前記第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、前記メモリコントローラに与えるアドレスデータを保持するための第2のアドレスレジスタに該求めた物理ブロックに対応するアドレスデータを設定して保持させる第2のアドレス設定処理と、
前記第1のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給処理と、
前記第1のアドレスレジスタに保持されているアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第2のアドレスレジスタに保持されているアドレスデータを該第1のアドレスレジスタに設定して保持させるアドレスデータ変更処理と、
前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに保持されたことに応答し、その時点で該第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第2のアドレスレジスタに設定して保持させる第3のアドレス設定処理と、
を行うことを特徴とする。
In order to achieve the above object, a flash memory control method according to a third aspect of the present invention includes:
A flash memory control method for controlling access from a host system to a flash memory having a plurality of physical blocks of multiple pages in a storage area,
Physical block detection processing for sequentially detecting the physical blocks to be accessed from logical addresses sequentially given from the host system;
A first address setting process for setting and holding address data corresponding to a physical block detected by the physical block detection process in a first address register for holding address data to be given to the memory controller;
The physical block to be accessed is obtained from the detection result of the physical block detection process next to the physical block indicated by the address data held in the first address register, and the address data to be given to the memory controller is held. A second address setting process for setting and holding address data corresponding to the obtained physical block in the second address register for;
Address data supply processing for supplying the address data held in the first address register to the flash memory and executing the access;
Responding to the address data held in the first address register being supplied to the flash memory, the address data held in the second address register at that time is stored in the first address register. Address data change processing to be set and retained,
In response to the address data held in the second address register being held in the first address register, the physical block of the physical block indicated by the address data held in the first address register at that time Next, a third address setting process for obtaining a physical block to be accessed from the detection result of the physical block detection process, and setting and holding address data corresponding to the obtained physical block in the second address register When,
It is characterized by performing.

尚、前記第1のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第2のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第1のアドレス設定処理は、前記第1のアドレスレジスタのサブレジスタの初期値を設定する第1の初期値設定処理を含み、
前記第2のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第2の初期値設定処理を含み、
前記第3のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第3の初期値設定処理を含み、
前記第1のアドレスレジスタのサブレジスタに保持された値を更新する更新処理を行ってもよい。
The first address register includes a main register that holds a part that specifies the physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The second address register includes a main register that holds a part that specifies a physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The first address setting process includes a first initial value setting process for setting an initial value of a sub-register of the first address register,
The second address setting means includes a second initial value setting process for setting an initial value of a sub-register of the second address register;
The third address setting means includes a third initial value setting process for setting an initial value of a sub-register of the second address register;
Update processing for updating the value held in the sub-register of the first address register may be performed.

この場合、前記更新処理が、前記第1のアドレスレジスタのサブレジスタに保持されている値に対して1ずつ減算又は加算を施してもよい。   In this case, in the update process, the value held in the sub-register of the first address register may be subtracted or added one by one.

また、前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに設定されたことに応答して、該第2のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第2のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第2のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定処理を行ってもよい。   In addition, in response to the address data held in the second address register being set in the first address register, new address data can be set in the second address register. As a result, in response to the setting of new address data in the second address register, a flag setting process is performed to indicate that new address data cannot be set in the second address register. May be.

本発明によれば、第1のアドレスレジスタには、アクセス中のブロックに対応するアドレスデータが保持され、次にアクセスするブロックのアドレスデータが第2のアドレスレジスタに保持される。そして、アクセス先のブロックが切替わるときに第2のアドレスレジスタに保持されているアドレスデータが第1のアドレスレジスタに転送される。これにより、アクセス先のブロックが切替わるときの処理効率の低下を抑制することができる。   According to the present invention, the address data corresponding to the block being accessed is held in the first address register, and the address data of the next block to be accessed is held in the second address register. When the access destination block is switched, the address data held in the second address register is transferred to the first address register. Thereby, it is possible to suppress a decrease in processing efficiency when the access destination block is switched.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム10を示す構成図である。
図1に示したように、フラッシュメモリシステム10は、フラッシュメモリ11と、それを制御するメモリコントローラ20とで構成されている。このフラッシュメモリシステム10は、通常、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとするホストシステム30である各種情報処理装置に内蔵される。
以下に、フラッシュメモリ11及びメモリコントローラ20の詳細と、フラッシュメモリシステム10の動作とを説明する。
[フラッシュメモリ11の説明]
このフラッシュメモリシステム10において、データが記憶されるフラッシュメモリ11は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書ができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a configuration diagram showing a flash memory system 10 according to an embodiment of the present invention.
As shown in FIG. 1, the flash memory system 10 includes a flash memory 11 and a memory controller 20 that controls the flash memory 11. The flash memory system 10 is usually built in various information processing apparatuses that are host systems 30 such as personal computers and digital still cameras that process various information such as characters, sounds, and image information.
The details of the flash memory 11 and the memory controller 20 and the operation of the flash memory system 10 will be described below.
[Description of flash memory 11]
In the flash memory system 10, a flash memory 11 in which data is stored is composed of a NAND flash memory. The NAND flash memory is a non-volatile memory developed for use as a storage device (as an alternative to a hard disk). This NAND flash memory cannot perform random access, and writing and reading are performed in units of pages and erasing is performed in units of blocks. Since data cannot be overwritten, data is written into the erased area when data is written.

NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替え後のデータ)を書込み、古いデータ(書替え前のデータ)が書込まれていたブロックを消去するという処理を行なっている。   Since NAND flash memory has such characteristics, normally, when data is rewritten, new data (data after rewriting) is written to the erased block that has been erased, and old data (rewriting is performed). A process of erasing the block in which the previous data) has been written is performed.

このようなデータの書替えを行なった場合、書替え後のデータは、書替え前と異なるブロックに書込まれるため、ホストシステム30側から与えられる論理アドレスと、フラッシュメモリ11内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ11にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ11に対するアクセスが行なわれる。   When such data rewriting is performed, the data after rewriting is written in a block different from that before rewriting, so the correspondence between the logical address given from the host system 30 side and the physical address in the flash memory 11 The relationship changes dynamically every time data is rewritten. Accordingly, when accessing the flash memory 11, an address conversion table showing the correspondence between logical addresses and physical addresses is usually created, and the flash memory 11 is accessed using this address conversion table.

図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ11の仕様によって異なるが、一般的なフラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
FIG. 2 is an explanatory diagram showing the relationship between blocks and pages.
The configuration of the block and page differs depending on the specifications of the flash memory 11, but in a general flash memory, as shown in FIG. 2A, one block is configured with 32 pages (P0 to P31), A page is composed of a user area of 512 bytes and a redundant area of 16 bytes. As the storage capacity increases, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area and a 64-byte redundant area. What is being provided is also provided.

ここで、ユーザー領域は、主に、ホストシステム30から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。   Here, the user area is mainly an area where data supplied from the host system 30 is stored, and the redundant area is stored with additional data such as error correction code, corresponding logical address information and block status. Area. The error correction code is additional data for detecting and correcting an error included in the data stored in the user area, and is generated by an ECC block described later.

対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理アドレス情報が書込まれていない場合は、消去済ブロックであると判断される。   The corresponding logical address information is written when data is stored in a physical block, and indicates information related to the logical address of the data stored in the physical block. If no data is stored in the physical block, the corresponding logical address information is not written, so whether the corresponding logical address information is written or not is the erased block. Can be judged. That is, if the corresponding logical address information is not written, it is determined that the block is an erased block.

ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書込み等を行なうことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。   The block status is a flag indicating whether or not the physical block is a bad block (a physical block in which data cannot be normally written). When the physical block is determined to be a bad block, Is set with a flag indicating that it is a bad block.

次に、フラッシュメモリ11の回路構成について説明する。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
Next, the circuit configuration of the flash memory 11 will be described.
A general NAND flash memory includes a register for holding write data or read data and a memory cell array for storing data. The memory cell array includes a plurality of memory cell groups in which a plurality of memory cells are connected in series, and a specific memory cell in the memory cell group is selected by a word line. Data copying (copying from register to memory cell or copying from memory cell to register) is performed between the memory cell selected by the word line and the register.

メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行う。   A memory cell constituting the memory cell array is composed of a MOS transistor having two gates. Here, the upper gate is called a control gate, and the lower gate is called a floating gate. By injecting charges (electrons) into the floating gate and discharging charges (electrons) from the floating gate, Write and erase data.

フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値“0”のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値“1”のデータに対応する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When injecting electrons into the floating gate, a high voltage is applied so that the control gate is at the high potential side. When electrons are injected from the floating gate, a high voltage at which the control gate is at the low potential side is applied. Applied to discharge electrons. The state in which electrons are injected into the floating gate (write state) corresponds to data having a logical value “0”, and the state in which electrons are discharged from the floating gate (erased state) has a logical value “1”. Corresponds to data.

[メモリコントローラ20の説明]
メモリコントローラ20は、ホストインターフェースブロック21と、マイクロプロセッサ22と、フラッシュメモリインターフェースブロック23と、ECC(エラー・コレクション・コード)ブロック24と、バッファ25と、ROM(Read Only Memory)26と、SRAM(Static Randam Access Memory)27とを備え、これらの要素が一つの半導体チップ上に集積されている。以下に、各要素の機能を説明する。
[Description of Memory Controller 20]
The memory controller 20 includes a host interface block 21, a microprocessor 22, a flash memory interface block 23, an ECC (Error Collection Code) block 24, a buffer 25, a ROM (Read Only Memory) 26, and an SRAM (SRAM). Static Randam Access Memory) 27, and these elements are integrated on one semiconductor chip. The function of each element will be described below.

マイクロプロセッサ22は、ROM26に記憶されたプログラムに基づき動作し、メモリコントローラ20全体の動作を制御する手段であり、SRAM27の記憶領域を作業領域として用いる。
論理アドレス(フラッシュメモリシステム10に対して与えられるアドレス)と物理アドレス(フラッシュメモリ11内のアドレス)の対応関係を示す変換テーブルは、マイクロプロセッサ22によって、SRAM27の記憶領域に作成される。
The microprocessor 22 is a unit that operates based on a program stored in the ROM 26 and controls the entire operation of the memory controller 20, and uses the storage area of the SRAM 27 as a work area.
A conversion table indicating the correspondence between the logical address (address given to the flash memory system 10) and the physical address (address in the flash memory 11) is created in the storage area of the SRAM 27 by the microprocessor 22.

ホストインターフェースブロック21は、ホストシステム30から外部バス31を介して得られるコマンド、論理アドレスを中継してマイクロプロセッサ22に与え、ホストシステム30から与えられるデータをバッフア25に与える機能を持つ。また、ホストインタフェースブロック21は、マイクロプロセッサ22から与えられる信号やバッファ25に保持されたデータをホストシステム30に転送する機能を持つ。   The host interface block 21 has a function of relaying commands and logical addresses obtained from the host system 30 via the external bus 31 and giving them to the microprocessor 22 and giving data given from the host system 30 to the buffer 25. The host interface block 21 has a function of transferring a signal supplied from the microprocessor 22 and data held in the buffer 25 to the host system 30.

バッファ25は、フラッシュメモリ11から内部バス12を介して読出されたデータ及びフラッシュメモリ11に書込まれるべきデータを保持するための機能ブロックである。フラッシュメモリ11から読出されたデータは、ホストシステム30に出力されるまで、バッファ25に保持される。フラッシュメモリ11に書込まれるべきデータは、フラッシュメモリ11のデータ書込動作の準備ができるまで、バッファ25に保持される。   The buffer 25 is a functional block for holding data read from the flash memory 11 via the internal bus 12 and data to be written to the flash memory 11. Data read from the flash memory 11 is held in the buffer 25 until it is output to the host system 30. Data to be written to the flash memory 11 is held in the buffer 25 until the data write operation of the flash memory 11 is ready.

ECCブロック24は、フラッシュメモリ11への書込データに付加されるエラーコレクションコードを生成するための機能ブロックである。加えて、ECCブロック24は、フラッシュメモリ11からデータと共に読出されたエラーコレクションコードに基づいて、読出データに含まれる誤りの検出及び訂正を行う。   The ECC block 24 is a functional block for generating an error correction code added to the write data to the flash memory 11. In addition, the ECC block 24 detects and corrects errors included in the read data based on the error correction code read together with the data from the flash memory 11.

図3は、図1中のフラッシュメモリインターフェースブロック23の構成を説明する図である。
フラッシュメモリインターフェースブロック23には、アドレスレジスタ23a、アドレスレジスタ23b、空きフラグレジスタ23c、制御ブロック23d、及びデータ転送部(転送部)23eが設けられている。
FIG. 3 is a diagram for explaining the configuration of the flash memory interface block 23 in FIG.
The flash memory interface block 23 is provided with an address register 23a, an address register 23b, an empty flag register 23c, a control block 23d, and a data transfer unit (transfer unit) 23e.

アドレスレジスタ23a及びアドレスレジスタ23bには、アドレスデータとしてフラッシュメモリ11内の物理アドレスが保持される。アドレスレジスタ23a及びアドレスレジスタ23bに保持されるアドレスデータは、マイクロプロセッサ22によって設定される。   The address register 23a and the address register 23b hold physical addresses in the flash memory 11 as address data. The address data held in the address register 23 a and the address register 23 b is set by the microprocessor 22.

データ転送部23eは、バッファ25に保持された書込みデータをフラッシュメモリ11に転送とすると共に、フラッシュメモリ11から読出されたデータをバッファ25に転送する。   The data transfer unit 23 e transfers write data held in the buffer 25 to the flash memory 11 and transfers data read from the flash memory 11 to the buffer 25.

次に、図1のフラッシュメモリシステム10の動作を説明する。
ホストシステム30は、フラッシュメモリ11にアクセスするためのコマンドや論理アドレスを、フラッシュメモリシステム10に与える。コマンドや論理アドレスは、ホストインターフェースブロック21を介してマイクロプロセッサ22に与えられる。フラッシュメモリ11にデータを書込む場合には、そのデータがホストシステム30から与えられ、ホストインターフェースブロック21を介してバッファ25に与えられる。
Next, the operation of the flash memory system 10 of FIG. 1 will be described.
The host system 30 gives a command or a logical address for accessing the flash memory 11 to the flash memory system 10. Commands and logical addresses are given to the microprocessor 22 via the host interface block 21. When data is written to the flash memory 11, the data is given from the host system 30 and given to the buffer 25 via the host interface block 21.

マイクロプロセッサ22は、コマンドを解読すると共に、論理アドレスをSRAM27のアドレス変換テーブルを利用して物理アドレスに変換する。そして、物理アドレスをフラッシュメモリインターフェースブロック23のアドレスレジスタ23aに設定する。つまり、論理アドレスに示されるブロックに対応する物理ブロックを変換テーブルにより検出し、検出した物理ブロックを示すアドレスデータをアドレスレジスタ23aに設定する。
フラッシュメモリ11の複数ブロックに対して連続的にアクセスするときには、マイクロプロセッサ22は、次にアクセスするブロックに対応する物理アドレスをアドレスレジスタ23bに設定して保持させる。
The microprocessor 22 decodes the command and converts the logical address into a physical address using the address conversion table of the SRAM 27. Then, the physical address is set in the address register 23 a of the flash memory interface block 23. That is, the physical block corresponding to the block indicated by the logical address is detected by the conversion table, and the address data indicating the detected physical block is set in the address register 23a.
When continuously accessing a plurality of blocks of the flash memory 11, the microprocessor 22 sets and holds the physical address corresponding to the next block to be accessed in the address register 23b.

アドレスレジスタ23aに保持されている物理アドレスに対応するブロックへのアクセスが終了すると、アドレスレジスタ23bに保持される物理アドレスがアドレスレジスタ23aに転送される。その後、新たにアドレスレジスタ23aに保持された物理アドレスに基づいて生成されたアドレスデータがフラッシュメモリ11に供給される。   When the access to the block corresponding to the physical address held in the address register 23a is completed, the physical address held in the address register 23b is transferred to the address register 23a. Thereafter, address data newly generated based on the physical address held in the address register 23 a is supplied to the flash memory 11.

アドレスレジスタ23bからアドレスレジスタ23aへの物理アドレスの転送は、制御ブロック23dによって制御される。又、制御ブロック23dは、アドレスレジスタ23bに保持される物理アドレスをアドレスレジスタ23aに転送したときに、空きフラグレジスタ23cに空き情報を設定する。この空き情報は、アドレスレジスタ23bに新たな物理アドレスを設定することができることを示す情報である。   The transfer of the physical address from the address register 23b to the address register 23a is controlled by the control block 23d. The control block 23d sets empty information in the empty flag register 23c when the physical address held in the address register 23b is transferred to the address register 23a. This empty information is information indicating that a new physical address can be set in the address register 23b.

マイクロプロセッサ22は、空きフラグレジスタ23cに空き情報が設定されたのを検知すると、新たな物理アドレスをアドレスレジスタ23bに設定する。その後、マイクロプロセッサ22は、空きフラグレジスタ23cに設定されている空き情報を解除する。   When the microprocessor 22 detects that empty information is set in the empty flag register 23c, the microprocessor 22 sets a new physical address in the address register 23b. Thereafter, the microprocessor 22 releases the vacancy information set in the vacancy flag register 23c.

尚、制御ブロック23dは、アドレスレジスタ23bに保持される物理アドレスがアドレスレジスタ23aに転送される前に、空きフラグレジスタ23cに空き情報が設定されていないことを確認することが好ましい。空きフラグレジスタ23cに空き情報が設定されている場合には、アドレスレジスタ23bに、次のアクセス先のブロックに対応する物理アドレスが設定されていないことを示すからである。   Note that the control block 23d preferably confirms that empty information is not set in the empty flag register 23c before the physical address held in the address register 23b is transferred to the address register 23a. This is because when empty information is set in the empty flag register 23c, it indicates that the physical address corresponding to the next access destination block is not set in the address register 23b.

図4は、アクセス処理の効率の説明図であり、アドレスレジスタが1つだけの場合(図4(a))と、本発明に係る2つのアドレスレジスタ(アドレスレジスタ23a及びアドレスレジスタ23b)を備えている場合(図4(b))とを示している。   FIG. 4 is an explanatory diagram of the efficiency of the access processing, and includes the case where there is only one address register (FIG. 4A) and two address registers (address register 23a and address register 23b) according to the present invention. (FIG. 4B).

アドレスレジスタが1つだけの場合(図4(a))、最初にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換a)。得られた物理アドレスは、アドレスレジスタに設定される(レジスタ設定a)。アドレスレジスタに物理アドレスが設定されると、設定された物理アドレスに基づいてフラッシュメモリ11に対するアクセスが開始される(アドレス出力a)。このアクセスが、nページ分の読出し処理であれば、読出すページを指示するアドレスデータがnページ分順次出力される。   When there is only one address register (FIG. 4A), an address conversion process for obtaining a physical address corresponding to the first accessed block is executed (address conversion a). The obtained physical address is set in the address register (register setting a). When a physical address is set in the address register, access to the flash memory 11 is started based on the set physical address (address output a). If this access is a read process for n pages, address data indicating the page to be read is sequentially output for n pages.

最初のブロックに対するアクセスが終了すると、2番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換b)。得られた物理アドレスは、アドレスレジスタに設定される(レジスタ設定b)。アドレスレジスタに物理アドレスが設定されると、設定された物理アドレスに基づいてフラッシュメモリ11に対するアクセスが開始される(アドレス出力b)。このアクセスが、mページ分の読出し処理であれば、読出すページを指示するアドレスデータがmページ分順次出力される。   When the access to the first block is completed, an address conversion process for obtaining a physical address corresponding to the block to be accessed second is executed (address conversion b). The obtained physical address is set in the address register (register setting b). When a physical address is set in the address register, access to the flash memory 11 is started based on the set physical address (address output b). If this access is a read process for m pages, address data indicating the page to be read is sequentially output for m pages.

2番目のブロックに対するアクセスが終了すると、3番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換c)。得られた物理アドレスは、アドレスレジスタに設定される(レジスタ設定c)。アドレスレジスタに物理アドレスが設定されると、上記と同様にフラッシュメモリ11に対するアクセスが開始される。   When the access to the second block is completed, an address conversion process for obtaining a physical address corresponding to the third accessed block is executed (address conversion c). The obtained physical address is set in the address register (register setting c). When a physical address is set in the address register, access to the flash memory 11 is started as described above.

図3のように、2つのアドレスレジスタ23a及びアドレスレジスタ23bを備えている場合(図4(b))、最初にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換a)。得られた物理アドレスは、アドレスレジスタ23aに設定される(レジスタ設定a)。引続き2番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換b)。得られた物理アドレスは、アドレスレジスタ23bに設定される(レジスタ設定b)。   When two address registers 23a and 23b are provided as shown in FIG. 3 (FIG. 4B), an address conversion process for obtaining a physical address corresponding to the block to be accessed first is executed (address conversion). a). The obtained physical address is set in the address register 23a (register setting a). Subsequently, an address conversion process for obtaining a physical address corresponding to the second accessed block is executed (address conversion b). The obtained physical address is set in the address register 23b (register setting b).

アドレスレジスタ23aに最初にアクセスするブロックに対応する物理アドレスが設定され、アドレスレジスタ23bに2番目にアクセスするブロックに対応する物理アドレスが設定されると、アドレスレジスタ23aに設定された物理アドレスに基づいてフラッシュメモリ11に対するアクセスが開始される(アドレス出力a)。このアクセスが、nページ分の読出し処理であれば、読出すページを指示するアドレスデータがnページ分順次出力される。   When the physical address corresponding to the block to be accessed first is set in the address register 23a and the physical address corresponding to the block to be accessed second is set in the address register 23b, the physical address based on the physical address set in the address register 23a is set. Thus, access to the flash memory 11 is started (address output a). If this access is a read process for n pages, address data indicating the page to be read is sequentially output for n pages.

尚、2番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理(アドレス変換b)とその物理アドレスのアドレスレジスタ23bへの設定(レジスタ設定b)は、アドレスレジスタ23aに設定された物理アドレスに基づいたフラッシュメモリ11へのアクセス(アドレス出力a)を開始した後に実行してもよい。   Note that the address conversion processing (address conversion b) for obtaining the physical address corresponding to the second accessed block and the setting of the physical address in the address register 23b (register setting b) are the physical address set in the address register 23a. It may be executed after starting the access to the flash memory 11 based on the above (address output a).

最初のブロックに対するアクセスが終了すると、アドレスレジスタ23bに設定されている物理アドレスがアドレスレジスタ23aに転送され、引続き新たにアドレスレジスタ23aに保持された物理アドレス(2番目にアクセスするブロックに対応する物理アドレス)に基づいてフラッシュメモリ11に対するアクセスが開始される(アドレス出力b)。このアクセスが、mページ分の読出し処理であれば、読出すページを指示するアドレスデータがmページ分順次出力される。   When the access to the first block is completed, the physical address set in the address register 23b is transferred to the address register 23a, and the physical address newly stored in the address register 23a (the physical address corresponding to the second block to be accessed) is subsequently transferred. Access to the flash memory 11 is started based on (address) (address output b). If this access is a read process for m pages, address data indicating the page to be read is sequentially output for m pages.

アドレスレジスタ23bに設定されていた物理アドレスがアドレスレジスタ23aに転送された後、フラッシュメモリ11に対するアクセスと並行して3番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される(アドレス変換c)。得られた物理アドレスは、アドレスレジスタ23bに設定される(レジスタ設定c)。   After the physical address set in the address register 23b is transferred to the address register 23a, an address conversion process for obtaining a physical address corresponding to the block to be accessed third is executed in parallel with the access to the flash memory 11 ( Address translation c). The obtained physical address is set in the address register 23b (register setting c).

2番目のブロックに対するアクセスが終了すると、アドレスレジスタ23bに設定されている物理アドレスがアドレスレジスタ23aに転送され、引続き新たにアドレスレジスタ23aに保持された物理アドレス(3番目にアクセスするブロックに対応する物理アドレス)に基づいてフラッシュメモリ11に対するアクセスが開始される。   When the access to the second block is completed, the physical address set in the address register 23b is transferred to the address register 23a, and the physical address newly held in the address register 23a (corresponding to the third block to be accessed). Access to the flash memory 11 is started based on the physical address.

上述のように2つのアドレスレジスタ23a及びアドレスレジスタ23bを備えている場合は、一方のアドレスレジスタ23bに、次にアクセスするブロックに対応する物理アドレスを予め保持させておくことができるので、アクセス先のブロックが切替わるときに、アドレスレジスタ間の転送処理を行うだけで引続きアクセスを続行することができる。   When the two address registers 23a and 23b are provided as described above, the physical address corresponding to the next block to be accessed can be held in advance in one of the address registers 23b. When these blocks are switched, it is possible to continue the access by simply performing the transfer process between the address registers.

上記各アドレスレジスタ23a,23bをメインレジスタとサブレジスタとでそれぞれ構成してもよい。例えば、メインレジスタにアクセス先のブロックを指示する物理ブロックアドレスを設定し、サブレジスタにアクセスする先頭のページのページ番号とアクセスするページ数を設定する。   Each of the address registers 23a and 23b may be composed of a main register and a sub register. For example, a physical block address indicating an access destination block is set in the main register, and the page number of the first page accessing the sub register and the number of pages accessed are set.

図5は、アドレスレジスタ23a,23bをメインレジスタとサブレジスタとで構成した場合の読出し処理の説明図である。
読出し処理では、フラッシュメモリ11に対して、読出しコマンドが供給され、続いてアドレスレジスタ23aのメインレジスタに保持されている物理アドレスとサブレジスタに保持されているページ番号に基づいて生成されたアドレスデータ(アドレスa)を供給する。フラッシュメモリ11は、供給された読出しコマンド及びアドレスデータに応答してデータaを出力する。尚、サブレジスタに保持されているページ番号とページ数は、アドレスデータをフラッシュメモリ11に供給する毎に更新する。この更新では、ページ番号が+1され、ページ数が−1される。
FIG. 5 is an explanatory diagram of read processing when the address registers 23a and 23b are composed of a main register and a sub register.
In the read process, a read command is supplied to the flash memory 11, and then the address data generated based on the physical address held in the main register of the address register 23a and the page number held in the sub register. (Address a) is supplied. The flash memory 11 outputs data a in response to the supplied read command and address data. The page number and the number of pages held in the subregister are updated every time address data is supplied to the flash memory 11. In this update, the page number is incremented by 1 and the number of pages is decremented by 1.

nページ分のデータを読出す場合は、サブレジスタにアクセスするページ数としてnを設定し、サブレジスタに保持されているページ数が0になるまで読出しコマンド及びアドレスデータが順次供給され、これに応答してフラッシュメモリ11からデータが出力される。先頭のページからnページ目のデータを読出すための読出しコマンド及びアドレスデータを供給した後、アドレスレジスタ23bに保持されている物理アドレス、ページ番号及びページ数がアドレスレジスタ23aに転送される。   When reading data for n pages, n is set as the number of pages to access the sub-register, and the read command and address data are sequentially supplied until the number of pages held in the sub-register becomes zero. In response, data is output from the flash memory 11. After supplying a read command and address data for reading nth page data from the first page, the physical address, page number, and number of pages held in the address register 23b are transferred to the address register 23a.

アドレスレジスタ23bに保持されていた物理アドレス、ページ番号及びページ数がアドレスレジスタ23aに転送された後、上記と同様に読出しコマンド及びアドレスデータが順次供給され、これに応答してフラッシュメモリ11からデータが出力される。   After the physical address, page number, and number of pages held in the address register 23b are transferred to the address register 23a, a read command and address data are sequentially supplied in the same manner as described above. Is output.

一方、アドレスレジスタ23bに保持されていた物理アドレス、ページ番号及びページ数がアドレスレジスタ23aに転送されると、制御ブロック23dは、空きフラグレジスタ23cに空き情報を設定する。マイクロプロセッサ22は、空きフラグレジスタ23cに空き情報が設定されたのを検知すると、アドレスレジスタ23bに新たな物理アドレス、ページ番号及びページ数を設定する。マイクロプロセッサ22は、アドレスレジスタ23bに新たな物理アドレス、ページ番号及びページ数を設定した後、空きフラグレジスタ23cに設定された空き情報を解除する。このようにして、フラッシュメモリ11に対するアクセスと並行して、アドレスレジスタ23bに新たな物理アドレス、ページ番号及びページ数が設定される。   On the other hand, when the physical address, page number, and number of pages held in the address register 23b are transferred to the address register 23a, the control block 23d sets empty information in the empty flag register 23c. When the microprocessor 22 detects that empty information is set in the empty flag register 23c, the microprocessor 22 sets a new physical address, page number, and number of pages in the address register 23b. After setting a new physical address, page number, and number of pages in the address register 23b, the microprocessor 22 cancels the empty information set in the empty flag register 23c. In this manner, a new physical address, page number, and number of pages are set in the address register 23b in parallel with the access to the flash memory 11.

以上のように、本実施形態のフラッシュメモリシステム10では、2つのアドレスレジスタ23a及びアドレスレジスタ23bを備えているので、一方のアドレスレジスタ23bに、次にアクセスするブロックに対応する物理アドレスを予め保持させておくことができるので、アクセス先のブロックが切替わるときに、アドレスレジスタ間の転送処理を行うだけで引続きアクセスを続行することができ、アクセスの効率を向上できる。   As described above, since the flash memory system 10 of the present embodiment includes the two address registers 23a and 23b, the physical address corresponding to the block to be accessed next is held in advance in one address register 23b. Therefore, when the access destination block is switched, the access can be continued only by performing the transfer process between the address registers, and the access efficiency can be improved.

本発明の実施形態に係るフラッシュメモリシステムの構成図である。1 is a configuration diagram of a flash memory system according to an embodiment of the present invention. ブロックとページの関係を示す説明図である。It is explanatory drawing which shows the relationship between a block and a page. 図1中のフラッシュメモリインターフェースブロックの構成を説明する図である。It is a figure explaining the structure of the flash memory interface block in FIG. アクセス処理の効率の説明図である。It is explanatory drawing of the efficiency of an access process. アドレスレジスタをメインレジスタとサブレジスタとで構成した場合の読出し処理の説明図である。It is explanatory drawing of the reading process at the time of comprising an address register with a main register and a sub register.

符号の説明Explanation of symbols

10 フラッシュメモリシステム
11 フラッシュメモリ
20 メモリコントローラ
21 ホストインターフェースブロック
22 マイクロプロセッサ
23 フラッシュメモリインターフェースブロック
23a アドレスレジスタ
23b アドレスレジスタ
23c 空きフラグレジスタ
23d 制御ブロック
23e 転送部
24 ECCブロック
25 バッファ
26 ROM
63 SRAM
DESCRIPTION OF SYMBOLS 10 Flash memory system 11 Flash memory 20 Memory controller 21 Host interface block 22 Microprocessor 23 Flash memory interface block 23a Address register 23b Address register 23c Empty flag register 23d Control block 23e Transfer part 24 ECC block 25 Buffer 26 ROM
63 SRAM

Claims (9)

複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するメモリコントローラであって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出手段と、
前記メモリコントローラに与えるアドレスデータを保持するための第1のアドレスレジスタと、
前記メモリコントローラに与えるアドレスデータを保持するための第2のアドレスレジスタと、
前記物理ブロック検出手段で検出した物理ブロックに対応するアドレスデータを前記第1のアドレスレジスタに設定して保持させる第1のアドレス設定手段と、
前記第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを前記第2のアドレスレジスタに設定して保持させる第2のアドレス設定手段と、
前記第1のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給手段と、
前記第1のアドレスレジスタに保持されいるアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第2のアドレスレジスタに保持されているアドレスデータを該第1のアドレスレジスタに設定して保持させるアドレスデータ変更手段と、
前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに保持されたことに応答し、その時点で該第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第2のアドレスレジスタに設定して保持させる第3のアドレス設定手段と、
を備えることを特徴とするメモリコントローラ。
A memory controller that controls access from a host system to a flash memory having a plurality of physical blocks of multiple pages in a storage area,
Physical block detection means for sequentially detecting the physical blocks to be accessed from logical addresses sequentially given from the host system;
A first address register for holding address data to be given to the memory controller;
A second address register for holding address data to be given to the memory controller;
First address setting means for setting and holding address data corresponding to the physical block detected by the physical block detection means in the first address register;
The physical block to be accessed next to the physical block indicated by the address data held in the first address register is obtained from the detection result of the physical block detecting means, and the address data corresponding to the obtained physical block Second address setting means for setting and holding in the second address register;
Address data supply means for supplying the address data held in the first address register to the flash memory to execute the access;
In response to the address data held in the first address register being supplied to the flash memory, the address data held in the second address register at that time is set in the first address register. Address data changing means to be held,
In response to the address data held in the second address register being held in the first address register, the physical block indicated by the address data held in the first address register at that time Next, third address setting means for obtaining a physical block to be accessed from the detection result of the physical block detecting means, and setting and holding address data corresponding to the obtained physical block in the second address register When,
A memory controller comprising:
前記第1のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第2のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第1のアドレス設定手段は、前記第1のアドレスレジスタのサブレジスタの初期値を設定する第1の初期値設定手段を備え、
前記第2のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第2の初期値設定手段を備え、
前記第3のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第3の初期値設定手段を備え、
前記第1のアドレスレジスタのサブレジスタに保持された値を更新する更新手段が設けられていることを特徴する請求項1に記載のメモリコントローラ。
The first address register includes a main register that holds a part that specifies the physical block of the address data, and a sub-register that holds a part that specifies the page of the address data,
The second address register includes a main register that holds a part that specifies a physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The first address setting means includes first initial value setting means for setting an initial value of a sub-register of the first address register,
The second address setting means includes second initial value setting means for setting an initial value of a sub-register of the second address register,
The third address setting means comprises third initial value setting means for setting an initial value of a sub-register of the second address register;
2. The memory controller according to claim 1, further comprising updating means for updating a value held in a sub-register of the first address register.
前記更新手段が、前記第1のアドレスレジスタのサブレジスタに保持されている値に対して1ずつ減算又は加算を施すことを特徴とする請求項2に記載のメモリコントローラ。   3. The memory controller according to claim 2, wherein the updating unit performs subtraction or addition by one on a value held in a sub-register of the first address register. 前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに設定されたことに応答して、該第2のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第2のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第2のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定手段を備えることを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。   In response to the address data held in the second address register being set in the first address register, it indicates that new address data can be set in the second address register; As a result, in response to the setting of new address data in the second address register, there is provided flag setting means for indicating that new address data cannot be set in the second address register. The memory controller according to claim 1, wherein the memory controller is a memory controller. 請求項1乃至4のいずれか1項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。   A flash memory system comprising the memory controller according to any one of claims 1 to 4 and a flash memory. 複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出処理と、
前記メモリコントローラに与えるアドレスデータを保持するための第1のアドレスレジスタに、前記物理ブロック検出処理で検出した物理ブロックに対応するアドレスデータを設定して保持させる第1のアドレス設定処理と、
前記第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、前記メモリコントローラに与えるアドレスデータを保持するための第2のアドレスレジスタに該求めた物理ブロックに対応するアドレスデータを設定して保持させる第2のアドレス設定処理と、
前記第1のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給処理と、
前記第1のアドレスレジスタに保持されているアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第2のアドレスレジスタに保持されているアドレスデータを該第1のアドレスレジスタに設定して保持させるアドレスデータ変更処理と、
前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに保持されたことに応答し、その時点で該第1のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第2のアドレスレジスタに設定して保持させる第3のアドレス設定処理と、
を行うことを特徴とするフラッシュメモリの制御方法。
A flash memory control method for controlling access from a host system to a flash memory having a plurality of physical blocks of multiple pages in a storage area,
Physical block detection processing for sequentially detecting the physical blocks to be accessed from logical addresses sequentially given from the host system;
A first address setting process for setting and holding address data corresponding to a physical block detected by the physical block detection process in a first address register for holding address data to be given to the memory controller;
The physical block to be accessed is obtained from the detection result of the physical block detection process next to the physical block indicated by the address data held in the first address register, and holds the address data to be given to the memory controller. A second address setting process for setting and holding address data corresponding to the obtained physical block in a second address register for;
Address data supply processing for supplying the address data held in the first address register to the flash memory and executing the access;
Responding to the address data held in the first address register being supplied to the flash memory, the address data held in the second address register at that time is stored in the first address register. Address data change processing to be set and retained,
In response to the address data held in the second address register being held in the first address register, the physical block indicated by the address data held in the first address register at that time Next, a third address setting process for obtaining a physical block to be accessed from the detection result of the physical block detection process, and setting and holding address data corresponding to the obtained physical block in the second address register When,
And a flash memory control method.
前記第1のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第2のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第1のアドレス設定処理は、前記第1のアドレスレジスタのサブレジスタの初期値を設定する第1の初期値設定処理を含み、
前記第2のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第2の初期値設定処理を含み、
前記第3のアドレス設定手段は、前記第2のアドレスレジスタのサブレジスタの初期値を設定する第3の初期値設定処理を含み、
前記第1のアドレスレジスタのサブレジスタに保持された値を更新する更新処理を行うことを特徴する請求項6に記載のフラッシュメモリの制御方法。
The first address register includes a main register that holds a part that specifies the physical block of the address data, and a sub-register that holds a part that specifies the page of the address data,
The second address register includes a main register that holds a part that specifies a physical block of the address data, and a sub-register that holds a part that specifies the page of the address data.
The first address setting process includes a first initial value setting process for setting an initial value of a sub-register of the first address register,
The second address setting means includes a second initial value setting process for setting an initial value of a sub-register of the second address register;
The third address setting means includes a third initial value setting process for setting an initial value of a sub-register of the second address register;
The flash memory control method according to claim 6, wherein an update process for updating a value held in a sub-register of the first address register is performed.
前記更新処理が、前記第1のアドレスレジスタのサブレジスタに保持されている値に対して1ずつ減算又は加算を施すことを特徴とする請求項7に記載のフラッシュメモリの制御方法。   8. The flash memory control method according to claim 7, wherein the update processing subtracts or adds one by one to a value held in a sub-register of the first address register. 前記第2のアドレスレジスタに保持されているアドレスデータが前記第1のアドレスレジスタに設定されたことに応答して、該第2のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第2のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第2のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定処理を行うことを特徴とする請求項6乃至8のいずれか1項に記載のフラッシュメモリの制御方法。   In response to the address data held in the second address register being set in the first address register, it indicates that new address data can be set in the second address register; As a result, in response to the setting of new address data in the second address register, flag setting processing indicating that new address data cannot be set in the second address register is performed. 9. The flash memory control method according to claim 6, wherein
JP2005131920A 2005-04-28 2005-04-28 Memory controller, flash memory system, and flash memory control method Active JP4304167B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005131920A JP4304167B2 (en) 2005-04-28 2005-04-28 Memory controller, flash memory system, and flash memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005131920A JP4304167B2 (en) 2005-04-28 2005-04-28 Memory controller, flash memory system, and flash memory control method

Publications (2)

Publication Number Publication Date
JP2006309539A true JP2006309539A (en) 2006-11-09
JP4304167B2 JP4304167B2 (en) 2009-07-29

Family

ID=37476345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005131920A Active JP4304167B2 (en) 2005-04-28 2005-04-28 Memory controller, flash memory system, and flash memory control method

Country Status (1)

Country Link
JP (1) JP4304167B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449673B2 (en) 2013-01-03 2016-09-20 Samsung Electronics Co., Ltd. Memory device and memory system having the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449673B2 (en) 2013-01-03 2016-09-20 Samsung Electronics Co., Ltd. Memory device and memory system having the same

Also Published As

Publication number Publication date
JP4304167B2 (en) 2009-07-29

Similar Documents

Publication Publication Date Title
KR100626393B1 (en) Nonvolatile Memory Device and Its Multi-Page Copyback Method
JP4373943B2 (en) Memory controller, flash memory system, and flash memory control method
JP4544167B2 (en) Memory controller and flash memory system
JP4177360B2 (en) Memory controller, flash memory system, and flash memory control method
JP4254932B2 (en) Memory controller and flash memory system
JP2006155335A (en) Memory controller, flash memory system, and control method thereof
JP4609406B2 (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
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
JP2005292925A (en) Memory controller, flash memory system, and control method for flash memory
JP2007094639A (en) Memory controller and flash memory system
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP4000124B2 (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
JP2006221334A (en) Memory controller, flash memory system, and control method for flash memory
JP4194518B2 (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
JP2006178909A (en) Memory controller, flash memory system and method for controlling flash memory
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP2007094571A (en) Memory controller, flash memory system, and control method of flash memory
JP4561110B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2005293177A (en) Memory controller and flash memory system
JP2008077468A (en) Memory controller, flash memory system with memory controller, and control method of flash memory
JP4366283B2 (en) Memory controller and flash memory system including the memory controller
JP3934659B1 (en) Memory controller and flash memory system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090327

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

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

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

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4304167

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140501

Year of fee payment: 5