JP2008226188A - Memory controller, flash memory system with memory controller, and method for controlling flash memory - Google Patents

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

Info

Publication number
JP2008226188A
JP2008226188A JP2007067471A JP2007067471A JP2008226188A JP 2008226188 A JP2008226188 A JP 2008226188A JP 2007067471 A JP2007067471 A JP 2007067471A JP 2007067471 A JP2007067471 A JP 2007067471A JP 2008226188 A JP2008226188 A JP 2008226188A
Authority
JP
Japan
Prior art keywords
physical
logical
unit
block
area
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
JP2007067471A
Other languages
Japanese (ja)
Other versions
JP4661809B2 (en
Inventor
Naoki Mukoda
直樹 向田
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 JP2007067471A priority Critical patent/JP4661809B2/en
Publication of JP2008226188A publication Critical patent/JP2008226188A/en
Application granted granted Critical
Publication of JP4661809B2 publication Critical patent/JP4661809B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent the occurrence of a failure when the number of acquired defective blocks increases in a flash memory. <P>SOLUTION: A physical address space of the flash memory is divided into a plurality of unit physical areas (physical zone or a plurality of physical segments). Each unit physical area is an aggregate of a plurality of physical blocks. A correspondence relation between a logical block and a physical block is controlled as in the preparation of an address conversion table in each unit physical area. When the number of defective blocks increases in any unit physical area to make it difficult to secure erased blocks necessary for data rewriting in the unit physical area, the unit physical area is connected to another unit physical area to be expanded to a larger unit physical area so that erased blocks can be secured. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、一般的にはフラッシュメモリのコントロールに関わり、特に、フラッシュメモリ内での後天的な不良ブロックの発生を考慮したメモリコントロールに関する。   The present invention generally relates to flash memory control, and more particularly to memory control that takes into account the occurrence of acquired bad blocks in flash memory.

フラッシュメモリ、とりわけNAND型フラッシュメモリでは、データ消去は、複数の物理ページの集合である物理ブロックを単位として行ない得る。そのため、ホストシステムから或る論理アドレスに新データを書込む(つまり、その論理アドレスの旧データを新データに書換える)よう要求された場合、旧データを格納している物理ブロックに新データを上書きすることができない。この場合、新データを含んだ新ブロックデータを別の消去済みの物理ブロック(つまり、空きブロック)に書き込んだ後、旧データを格納している物理ブロックから旧ブロックデータを消去するというプロセスが行われる。このように、データ書換えが行なわれると、新データは旧データとは異なる物理ブロックに移動される。   In a flash memory, in particular, a NAND flash memory, data erasure can be performed in units of physical blocks that are sets of a plurality of physical pages. Therefore, when the host system requests to write new data to a certain logical address (that is, to rewrite the old data at the logical address to new data), the new data is written to the physical block storing the old data. It cannot be overwritten. In this case, the process of erasing the old block data from the physical block storing the old data after writing the new block data including the new data to another erased physical block (that is, a free block) is performed. Is called. As described above, when data is rewritten, the new data is moved to a physical block different from the old data.

従って、ホストシステムから提供される論理アドレスコードにより指定される論理ブロックと、フラッシュメモリ内の物理ブロックとの対応関係は、データ書換えが行われる都度、変化する。ホストシステムとフラッシュメモリとの間に介在するメモリコントローラが、この対応関係をコントロールし管理する。すなわち、各物理ブロックは、ユーザデータを格納するための領域の他に、主としてコントロールの目的で使用される冗長領域を有する。メモリコントローラは、各物理ブロックの冗長領域に、その物理ブロックに対応する論理ブロックを特定するための情報を記録する。そして、メモリコントローラは、個々の時点で、メモリ内の多数の物理ブロックの冗長領域から上記情報を読み、その情報に基づいて、論理ブロックと物理ブロックとの対応関係を記載したアドレス変換テーブルを作成する。   Therefore, the correspondence between the logical block specified by the logical address code provided from the host system and the physical block in the flash memory changes every time data is rewritten. A memory controller interposed between the host system and the flash memory controls and manages this correspondence. That is, each physical block has a redundant area mainly used for control purposes in addition to an area for storing user data. The memory controller records information for specifying the logical block corresponding to the physical block in the redundant area of each physical block. The memory controller then reads the above information from the redundant areas of a large number of physical blocks in the memory at each point in time, and creates an address conversion table describing the correspondence between the logical blocks and the physical blocks based on the information. To do.

フラッシュメモリ内の物理ブロックの総数は非常に多い。フラッシュメモリの容量の増大に伴い、物理ブロックの数も増大する。もし、メモリコントローラが、フラッシュメモリ内の全ての物理ブロックについて上記対応関係を記載したアドレス変換テーブルを作成しようとするならば、アドレス変換テーブルの作成に時間がかかり、アクセス速度に支障を与えるであろう。この問題を解決するために、フラッシュメモリの物理アドレス空間を、各々が適当数の物理ブロックの集合である複数の物理ゾーンに分け、物理ゾーン毎に、上述したアドレス変換テーブルの作成のような論理ブロックと物理ブロック間の対応関係の制御を行なうことで、その制御の処理負担を軽減するという技術が知られている。   The total number of physical blocks in flash memory is very large. As the capacity of the flash memory increases, the number of physical blocks also increases. If the memory controller tries to create an address translation table that describes the above correspondence relationship for all physical blocks in the flash memory, it takes time to create the address translation table, which impedes access speed. Let's go. In order to solve this problem, the physical address space of the flash memory is divided into a plurality of physical zones, each of which is a set of an appropriate number of physical blocks, and a logic such as the creation of the address conversion table described above is created for each physical zone. A technique is known that reduces the processing load of control by controlling the correspondence between blocks and physical blocks.

このゾーン分けの技術によれば、論理アドレスを定義した論理アドレス空間も、各々が適当数の論理ブロックの集合である複数の論理ゾーンに分割される。そして、複数の論理ゾーンと複数の物理ゾーンとが基本的に1対1の関係で対応付けられる。1つの物理ゾーンに含まれる物理ブロックの数は、それに対応する1つの論理ゾーンに含まれる論理ブロックの数より、若干数だけ多い。その理由の一つは、上述したように、1つの論理ブロックのデータを書換えるために、旧データを格納した物理ブロックの他に、新データを書き込むための空き物理ブロックが使用されるので、論理ブロックの数より多い数の物理ブロックが必要だからである。また、もう一つの理由は、全ての物理ブロック中には不良なブロックも一部含まれているため、ある程度の数までの不良ブロックを許容できるための物理ブロック数の余裕が各物理ゾーンに必要だからである。   According to this zoning technique, a logical address space in which logical addresses are defined is also divided into a plurality of logical zones, each of which is a set of an appropriate number of logical blocks. A plurality of logical zones and a plurality of physical zones are basically associated in a one-to-one relationship. The number of physical blocks included in one physical zone is slightly larger than the number of logical blocks included in one corresponding logical zone. One of the reasons is that, as described above, in order to rewrite data of one logical block, an empty physical block for writing new data is used in addition to a physical block storing old data. This is because a larger number of physical blocks is required than the number of logical blocks. Another reason is that all physical blocks include some bad blocks, so each physical zone must have enough physical blocks to allow a certain number of bad blocks. That's why.

しかし、フラッシュメモリのメモリセルアレイの特定箇所に不良ブロック(書込みや消去が正常にできない物理ブロック)が多く集中する場合、その特定箇所が割り当てられた特定の物理ゾーンに不良ブロックが集中し、その物理ゾーンで不具合(典型的には、空きブロックが確保できないこと)が生じるおそれがある。この問題を解決するため、初期設定の際に、1つの物理ゾーンに含まれる複数の物理ブロックを、フラッシュメモリ内で物理的に分散させ、物理ゾーンに含まれる先天性の不良ブロックの数を均等化する技術が提案されている(例えば特許文献1)。また、不良ブロックの位置を検出し、そして、良好な物理ブロックが複数の物理ゾーンに均等に分布するよう、物理ゾーンの境界を調整する技術も提案されている(例えば特許文献2)。   However, when many defective blocks (physical blocks that cannot be written or erased normally) are concentrated at a specific location in the memory cell array of the flash memory, the defective blocks are concentrated in a specific physical zone to which the specific location is assigned. There is a possibility that a defect (typically, an empty block cannot be secured) may occur in the zone. In order to solve this problem, during the initial setting, a plurality of physical blocks included in one physical zone are physically distributed in the flash memory, and the number of congenital bad blocks included in the physical zone is equalized. A technique for achieving this has been proposed (for example, Patent Document 1). In addition, a technique for detecting the position of a defective block and adjusting the boundary of the physical zone so that good physical blocks are evenly distributed in a plurality of physical zones has been proposed (for example, Patent Document 2).

特開2005-209140号公報JP 2005-209140 A 特開2006-509304号公報JP 2006-509304 A

特許文献1に記載のブロック分散技術や、特許文献2に記載のゾーン境界技術によれば、特定の物理ゾーンへの不良ブロックの集中を軽減することができる。しかし、フラッシュメモリ内では、アクセス回数の増加や経年劣化などにより、後天性の不良ブロックの数が徐々に増えていく。そのため、従って、フラッシュメモリの使用開始後、いずれかの物理ゾーンにおいて、不良ブロックの数が許容限界に達して空きブロックが確保できなくなるという時が、必ず到来する。   According to the block distribution technique described in Patent Document 1 and the zone boundary technique described in Patent Document 2, the concentration of defective blocks in a specific physical zone can be reduced. However, in the flash memory, the number of acquired defective blocks gradually increases due to an increase in the number of accesses and deterioration over time. Therefore, after the start of the use of the flash memory, there is always a time when the number of defective blocks reaches an allowable limit and a free block cannot be secured in any physical zone.

従って、本発明の目的は、フラッシュメモリ内で後天性の不良ブロック数が増加したときの不具合の発生を防止することにある。   Accordingly, an object of the present invention is to prevent the occurrence of problems when the number of acquired defective blocks increases in a flash memory.

本発明の第1の側面に従えば、ホストシステムから与えられる論理セクタ単位の論理アドレスに基づいて、物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
各々が複数個の論理セクタの集合である複数の単位論理領域と、各々が複数個の前記物理ブロックの集合である複数個の単位物理領域との対応関係を管理する単位領域管理手段と、
各単位論理領域に含まれる論理アドレスと、前記各単位論理領域と対応する各単位物理領域に含まれる物理アドレスとの対応管理するアドレス管理手段と、
2個以上の前記単位物理領域を結合させて拡大された単位物理領域にする物理領域結合手段と
を備え、
前記単位領域管理手段は、結合後の前記拡大された単位物理領域の全領域に対して、結合前の前記2個以上の前記単位物理領域と対応していた2個以上の前記単位論理領域を対応させる、
メモリコントローラが提供される。
According to a first aspect of the present invention, there is provided a memory controller that controls access to a flash memory that is erased in physical block units based on logical addresses in logical sector units given from a host system,
Unit area management means for managing the correspondence between a plurality of unit logical areas, each of which is a set of a plurality of logical sectors, and a plurality of unit physical areas, each of which is a set of a plurality of physical blocks;
Address management means for managing the correspondence between the logical address included in each unit logical area and the physical address included in each unit physical area corresponding to each unit logical area;
A physical region combining means that combines two or more unit physical regions into an expanded unit physical region;
The unit area management means includes two or more unit logical areas corresponding to the two or more unit physical areas before combining, with respect to all the expanded unit physical areas after combining. To correspond,
A memory controller is provided.

好適な実施形態では、前記物理領域結合手段によって結合される前記2個以上の前記単位物理領域のうちの少なくとも1個の前記単位物理領域には、予め設定された設定個数以上の不良ブロックが含まれるように、前記メモリコントローラが構成される。   In a preferred embodiment, at least one of the two or more unit physical areas coupled by the physical area coupling unit includes a predetermined number or more of defective blocks. The memory controller is configured as described above.

また、好適な実施形態では、前記複数個の単位物理領域の個数と前記物理領域結合手段によって結合される前記2個以上の前記単位物理領域の個数が、いずれも2のべき乗で与えられるように、前記メモリコントローラが構成される。   In a preferred embodiment, the number of the plurality of unit physical areas and the number of the two or more unit physical areas combined by the physical area combining unit are both given as a power of two. The memory controller is configured.

また、好適な実施形態では、論理アドレス空間において連続する複数個の前記論理ブロック領域を、前記複数個の前記単位論理領域に対して分散的に含ませる論理ブロック領域分散手段がさらに備えられる。各論理ブロック領域には、前記論理アドレスが連続する複数個の前記論理セクタが含まれる。そして、前記論理ブロック領域に属する前記論理セクタの個数及び前記複数個の前記単位論理領域の個数が、いずれも2のべき乗で与えられる。   In a preferred embodiment, a logical block area distribution unit is further provided which includes a plurality of logical block areas continuous in a logical address space in a distributed manner with respect to the plurality of unit logical areas. Each logical block area includes a plurality of the logical sectors in which the logical addresses are continuous. The number of the logical sectors belonging to the logical block area and the number of the plurality of unit logical areas are both given by a power of two.

また、好適な実施形態では、前記論理ブロック領域に属する前記論理セクタの個数を2個とし、前記複数個の前記単位論理領域の個数を2個としたときに、前記論理セクタの前記論理アドレスの下位側から数えてi+1ビット目からi+jビット目までのビットの値に基づいて、該論理セクタが属する前記論理ブロック領域が含まれる前記単位論理領域と、該単位論理領域に対応する前記単位物理領域とを識別するように、前記メモリコントローラが構成される。 In a preferred embodiment, when the number of the logical sectors belonging to the logical block area is 2 i and the number of the plurality of unit logical areas is 2 j , the logical sector of the logical sector is The unit logical area including the logical block area to which the logical sector belongs, and the unit corresponding to the unit logical area, based on the bit values from the (i + 1) th bit to the (i + j) th bit counted from the lower side of the address The memory controller is configured to identify the physical area.

本発明の別の側面に従えば、上記メモリコントローラとフラッシュメモリとを備えたフラッシュメモリシステムが提供される。   According to another aspect of the present invention, a flash memory system including the memory controller and the flash memory is provided.

本発明のまた別の側面に従えば、ホストシステムから与えられる論理セクタ単位の論理アドレスに基づいて、物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御する方法であって、
各々が複数個の前記論理セクタの集合である複数個の単位論理領域と、各々が複数個の前記物理ブロックの集合である複数個の単位物理領域との対応関係を管理するステップと、
各単位論理領域に含まれる論理アドレスと、前記各単位論理領域に対応する各単位物理領域に含まれる物理アドレスとの対応管理するステップと、
2個以上の前記単位物理領域を結合させて拡大された単位物理領域にするステップと、
結合後の前記拡大された単位物理領域に対して、結合前の前記2個以上の前記単位物理領域に対応していた2個以上の前記単位論理領域を対応させるステップと
を有するフラッシュメモリの制御方法が提供される。
According to still another aspect of the present invention, there is provided a method for controlling access to a flash memory that is erased in units of physical blocks, based on logical addresses in units of logical sectors given from a host system.
Managing a correspondence relationship between a plurality of unit logical areas, each of which is a set of a plurality of logical sectors, and a plurality of unit physical areas, each of which is a set of a plurality of physical blocks;
Managing the correspondence between the logical address included in each unit logical area and the physical address included in each unit physical area corresponding to each unit logical area;
Combining two or more unit physical areas into an expanded unit physical area;
A step of associating the expanded unit physical area after the combination with two or more unit logical areas corresponding to the two or more unit physical areas before the combination. A method is provided.

好適な実施形態では、上記制御方法は、前記各単位物理領域内の空きブロックの有無を判断するステップをさらに有し、前記各単位物理領域内に空きブロックが無いと判断されたときに、前記2個以上の前記単位物理領域の結合が行われる。   In a preferred embodiment, the control method further includes a step of determining whether there is a free block in each unit physical area, and when it is determined that there is no free block in each unit physical area, Two or more unit physical areas are combined.

本発明によれば、フラッシュメモリ内で後天性の不良ブロック数が増加したときの不具合の発生を防止することができる。   According to the present invention, it is possible to prevent the occurrence of problems when the number of acquired defective blocks increases in the flash memory.

以下、図面を参照して本発明の幾つかの最良な実施形態を説明する。   Several preferred embodiments of the present invention will be described below with reference to the drawings.

図1は、本発明の実施形態に従うフラッシュメモリシステム1の全体構成を示す。   FIG. 1 shows an overall configuration of a flash memory system 1 according to an embodiment of the present invention.

図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2とメモリコントローラ3を有する。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続され、また、外部バス13を介してホストシステム4と接続される。ホストシステム4は、フラッシュメモリ2へのアクセスを要求する種々の装置、例えばパーソナルコンピュータやデジタルスチルカメラやその他の情報処理装置であり得る。メモリコントローラ3は、ホストシステム4からのアクセス(つまり、書込み及び読み出し)要求に応答して、フラッシュメモリ2に対するアクセスをコントロールする。フラッシュメモリ2は、データを記憶するための大容量の不揮発性のメモリセルアレイと、メモリセルアレイと内部バス14間のデータの受け渡しを仲介するための小容量(例えば、1つの物理ページ相当)のレジスタとを有する。   As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a memory controller 3. The memory controller 3 is connected to the flash memory 2 via the internal bus 14 and is connected to the host system 4 via the external bus 13. The host system 4 can be various devices that request access to the flash memory 2, such as personal computers, digital still cameras, and other information processing devices. The memory controller 3 controls access to the flash memory 2 in response to access (that is, write and read) requests from the host system 4. The flash memory 2 includes a large-capacity nonvolatile memory cell array for storing data, and a small-capacity register (e.g., equivalent to one physical page) for mediating data transfer between the memory cell array and the internal bus 14 And have.

メモリコントローラ3は、ホストシステム4から与えられる外部コマンド及び論理アドレス等に基づいて、内部コマンド、物理アドレス及びデータ等を、フラッシュメモリ2に与える。フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンド及び物理アドレス等に基づいて読み出し処理、書き込み処理、消去処理等の処理を実行する。ここで、ホストシステム4がフラッシュメモリシステム1に与えるコマンドを外部コマンドと呼び、メモリコントローラ3がフラッシュメモリ2に与えるコマンドを内部コマンドと呼ぶ。   The memory controller 3 gives an internal command, a physical address, data, and the like to the flash memory 2 based on an external command, a logical address, and the like given from the host system 4. The flash memory 2 executes processes such as a read process, a write process, and an erase process based on an internal command and a physical address given from the memory controller 3. Here, a command that the host system 4 gives to the flash memory system 1 is called an external command, and a command that the memory controller 3 gives to the flash memory 2 is called an internal command.

図2は、フラッシュメモリ2のメモリセルアレイの物理アドレス空間の構成を示す。   FIG. 2 shows the configuration of the physical address space of the memory cell array of the flash memory 2.

図2に示すように、フラッシュメモリ2の物理アドレス空間は、多数の物理ブロックに区分される。各物理ブロックは、所定複数個の物理ページの集合である。本実施形態では、物理ブロックの総数は例えば8192個であり、1つの物理ブロックは例えば64個の物理ページの集合である。ここで、物理ページは、フラッシュメモリ2にてデータ読出し及び書込みの対象とされるメモリ領域の単位(データ読出し及び書込み時に一度に選択されるメモリ群)である。物理ブロックは、フラッシュメモリ2にてデータ消去の対象とされるメモリ領域の単位(一度にデータが消去されるメモリセル群)である。   As shown in FIG. 2, the physical address space of the flash memory 2 is divided into a large number of physical blocks. Each physical block is a set of a predetermined plurality of physical pages. In the present embodiment, the total number of physical blocks is, for example, 8192, and one physical block is, for example, a set of 64 physical pages. Here, the physical page is a unit of a memory area that is a target of data reading and writing in the flash memory 2 (a memory group selected at one time during data reading and writing). A physical block is a unit of a memory area (a group of memory cells from which data is erased at once) that is a target of data erasure in the flash memory 2.

各物理ページは、ユーザ領域25と冗長領域26を有する。ユーザ領域25は、ホストシステム4から与えられるユーザデータを格納するための記憶領域である。冗長領域26は、主としてメモリコントローラ3により使用される制御目的の付加データを格納するための記憶領域である。本実施形態では、各物理ページのユーザ領域25は、例えば4セクタ相当の容量、つまり2048バイトの容量をもち、冗長領域26は64バイトの容量をもつ。   Each physical page has a user area 25 and a redundant area 26. The user area 25 is a storage area for storing user data given from the host system 4. The redundant area 26 is a storage area for storing additional data for control purposes mainly used by the memory controller 3. In this embodiment, the user area 25 of each physical page has a capacity corresponding to, for example, 4 sectors, that is, a capacity of 2048 bytes, and the redundant area 26 has a capacity of 64 bytes.

さらに、本実施形態では、フラッシュメモリ2の物理アドレス空間は、所定複数個の物理ゾーンに区分され、物理ゾーンは所定複数個の物理ブロックから構成される。本実施形態では、物理ゾーンの総数は例えば8個であり、各物理ゾーンは、例えば1024個の物理ブロックの集合である。   Further, in the present embodiment, the physical address space of the flash memory 2 is divided into a predetermined plurality of physical zones, and the physical zone is composed of a predetermined plurality of physical blocks. In the present embodiment, the total number of physical zones is, for example, 8, and each physical zone is a set of, for example, 1024 physical blocks.

またさらに、各物理ゾーンは、メモリコントローラ3により、所定複数個の物理セグメントに区分され、各物理セグメントは所定複数個の物理ブロックから構成される。尚、物理ゾーン及び物理セグメントの管理並びに論理ブロックと物理ブロックの対応関係の制御処理(アドレス変換テーブルの作成など)は、メモリコントローラ3によって行われる。また、本実施形態において、論理ブロックと物理ブロックの対応関係の制御処理(アドレス変換テーブルの作成など)は、物理セグメント単位で行われる(つまり、物理セグメント毎にアドレス変換テーブルが作成される)。   Furthermore, each physical zone is divided into a predetermined plurality of physical segments by the memory controller 3, and each physical segment is composed of a predetermined plurality of physical blocks. Note that the memory controller 3 performs management processing of physical zones and physical segments and control processing of the correspondence relationship between logical blocks and physical blocks (for example, creation of an address conversion table). In the present embodiment, the control processing of the correspondence relationship between the logical block and the physical block (such as creation of an address translation table) is performed in units of physical segments (that is, an address translation table is created for each physical segment).

メモリコントローラ3は、フラッシュメモリ2の使用開始時(初期段階)には、1つの物理ゾーンを所定最大個数の物理セグメントに区分する(つまり、物理セグメントに含まれる物理ブロックの個数を最小にする)が、その物理ゾーン内での後天性の不良ブロックの数が増加するのに伴い、本発明に原理に従って、その物理ゾーン内の物理セグメントの数を減らし、各物理セグメントのサイズを拡大する(つまり、物理セグメントに含まれる物理ブロックの個数を増加させる)。すなわち、メモリコントローラ3は、初期段階から継続的に各物理セグメントに含まれる不良ブロック(先天性の不良ブロック及び後天性の不良ブロック)の個数を監視し、特定の物理セグメントに含まれる不良ブロックの個数が或るレベルまで増えると、その物理セグメントを他の物理セグメントと結合して、物理セグメントのサイズを拡大する。その後、このサイズが拡大された物理セグメントに含まれる不良ブロックの個数が或るレベルまで増えると、このサイズが拡大された物理セグメントを他の物理セグメントと結合して、物理セグメントのサイズを更に拡大する。ここで、物理セグメントを結合させるときのレベル(不良ブロックの個数)は、物理セグメントに含まれる物理ブロックの個数(総数)に応じて適宜設定することができる。   The memory controller 3 divides one physical zone into a predetermined maximum number of physical segments (that is, minimizes the number of physical blocks included in the physical segment) when the use of the flash memory 2 is started (initial stage). However, as the number of acquired bad blocks in the physical zone increases, in accordance with the principles of the present invention, the number of physical segments in the physical zone is reduced and the size of each physical segment is increased (i.e. , Increase the number of physical blocks in the physical segment). That is, the memory controller 3 continuously monitors the number of defective blocks (congenital defective blocks and acquired defective blocks) included in each physical segment from the initial stage, and determines the number of defective blocks included in a specific physical segment. When the number increases to a certain level, the physical segment is combined with other physical segments to increase the size of the physical segment. After that, when the number of bad blocks included in the physical segment whose size has been increased to a certain level, the physical segment whose size has been increased is combined with other physical segments to further increase the size of the physical segment. To do. Here, the level (number of defective blocks) when the physical segments are combined can be appropriately set according to the number (total number) of physical blocks included in the physical segment.

尚、物理セグメントに含まれる不良ブロックの個数に基づいて複数の物理セグメントを結合するのではなく、特定の物理セグメントで空きブロックを確保することができなくなったときに、その物理セグメントを他の物理セグメントと結合させて、物理セグメントのサイズを拡大するようにしてもよい。この場合も、サイズが拡大された物理セグメントで空きブロックを確保することができなくなったときには、物理セグメントのサイズを更に拡大させる物理セグメントの結合が行われる。   Instead of combining multiple physical segments based on the number of bad blocks included in a physical segment, when it becomes impossible to secure an empty block in a specific physical segment, the physical segment is transferred to another physical segment. The size of the physical segment may be increased by combining with the segment. Also in this case, when it becomes impossible to secure an empty block in the physical segment whose size has been increased, the physical segments are combined to further increase the size of the physical segment.

本実施形態では、初期段階において、1個の物理ゾーン内の物理セグメントの個数は例えば8個であり、1個の物理セグメントは例えば128個の物理ブロックの集合である。不良ブロックの数が増えるのに伴って、1個の物理ゾーン内の物理セグメントの数は段階的に減っていき、同時に、1個の物理セグメント(拡大物理セグメント)のサイズは段階的に拡大していく。   In the present embodiment, in the initial stage, the number of physical segments in one physical zone is, for example, eight, and one physical segment is a set of, for example, 128 physical blocks. As the number of bad blocks increases, the number of physical segments in one physical zone decreases gradually, and at the same time, the size of one physical segment (expanded physical segment) increases gradually. To go.

ここで、物理セグメントのサイズの拡大は、結合レベルに達した物理セグメント(不良ブロックの個数が或るレベルに達した物理セグメント又は空きブロックを確保することができなくなった物理セグメント)についてだけ行ってもよいが、結合レベルに達した物理セグメントが含まれる物理ゾーン全体について行うことが好ましい。つまり、1個の物理ゾーン内に8個の物理セグメントが存在するときに、その中の少なくとも1個の物理セグメントが結合レベルに達したとき(不良ブロックの個数が或るレベルに達したとき又は空きブロックを確保することができなくなったとき)は、結合レベルに達していない物理セグメントについてもサイズの拡大を行い、その物理ゾーンに存在する物理セグメントの個数を8個から例えば4個に減少させる。この後、サイズが拡大された物理セグメント(4個の物理セグメント)の中の少なくとも1個の物理セグメントが結合レベルに達したときは、更に、その物理ゾーンに存在する物理セグメントの個数を4個から例えば2個に減少させる。   Here, the size of the physical segment is increased only for a physical segment that has reached the combined level (a physical segment in which the number of bad blocks has reached a certain level or a physical segment for which a free block cannot be secured). However, it is preferably performed for the entire physical zone including the physical segment that has reached the coupling level. That is, when there are 8 physical segments in one physical zone and at least one of the physical segments has reached the coupling level (when the number of bad blocks reaches a certain level or When it becomes impossible to secure a free block), the physical segment that has not reached the combined level is also increased in size, and the number of physical segments existing in the physical zone is reduced from eight to four, for example. . After this, when at least one physical segment in the physical segment whose size has been expanded (four physical segments) reaches the coupling level, the number of physical segments existing in the physical zone is further increased to four. For example, the number is reduced to two.

尚、上記のように物理ゾーン毎に独立して物理セグメントのサイズの拡大を行った場合、物理ゾーン毎に物理ゾーン内に存在する物理セグメントの個数を管理する必要があるので、その管理を簡素化するために、物理ゾーン内に存在する物理セグメントの個数が最小になる物理ゾーンに合わせて、その他全ての物理ゾーンについても、物理ゾーン内に存在する物理セグメントの個数を減少させていってもよい。例えば、各物理ゾーン内に8個の物理セグメントが存在するときに、その中の1個の物理ゾーンについて、物理セグメントの個数を8個から4個に減少させるサイズの拡大を行う必要が生じたときには、その他全ての物理ゾーンについても、物理セグメントの個数を8個から4個に減少させるサイズの拡大を行うようにしてもよい。   When the physical segment size is expanded independently for each physical zone as described above, the number of physical segments existing in the physical zone must be managed for each physical zone. In order to reduce the number of physical segments existing in the physical zone, the number of physical segments existing in the physical zone may be reduced in accordance with the physical zone in which the number of physical segments existing in the physical zone is minimized. Good. For example, when 8 physical segments exist in each physical zone, it is necessary to increase the size of one physical zone to reduce the number of physical segments from 8 to 4. Sometimes, for all other physical zones, the size may be increased to reduce the number of physical segments from eight to four.

このように、不良ブロックの数の増加に伴って、物理セグメントが拡大される(つまり、その物理セグメントに含まれる物理ブロックの数が増える)ことにより、不良ブロックの数の増加に起因する不具合の発生が防止される。この制御については、後に詳述する。この制御を容易にするために、各物理ゾーン内に存在する物理セグメントの個数は、いずれの段階でも2のべき乗で与えられる数値であることが望ましく、段階移行時に結合されるの物理セグメントの個数も2のべき乗で与えられる数値であることが望ましい。また、各物理セグメント内の物理ブロック数、各物理ブロック内の物理セクタ数、及び、各物理ブロックに対応する各論理ブロック内の論理セクタ数も、それぞれ、2のべき乗で与えられる数値であることが望ましい。   As described above, as the number of defective blocks increases, the physical segment is expanded (that is, the number of physical blocks included in the physical segment increases), thereby causing a problem caused by the increase in the number of defective blocks. Occurrence is prevented. This control will be described in detail later. In order to facilitate this control, the number of physical segments existing in each physical zone is preferably a numerical value given as a power of 2 at any stage, and the number of physical segments combined at the stage transition Is preferably a numerical value given as a power of 2. Also, the number of physical blocks in each physical segment, the number of physical sectors in each physical block, and the number of logical sectors in each logical block corresponding to each physical block are numerical values given by powers of 2, respectively. Is desirable.

さて、各物理ページの冗長領域26には、エラーコレクションコード、論理アドレス情報、ブロックステータス(フラグ)等の付加データが記憶される。エラーコレクションコードは、ユーザ領域25に記憶されているユーザデータに含まれる誤りを検出し、訂正するために使用される。ブロックステータス(フラグ)は、物理ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができない不良な物理ブロックには、不良ブロックであることを示すブロックステータス(フラグ)が書き込まれる。   In the redundant area 26 of each physical page, additional data such as an error correction code, logical address information, and a block status (flag) is stored. The error collection code is used for detecting and correcting an error included in user data stored in the user area 25. The block status (flag) is a flag indicating pass / fail of the physical block. A block status (flag) indicating a defective block is written to a defective physical block to which data cannot be normally written.

論理アドレス情報は、物理ブロックと論理ブロックの対応関係を判断するための情報であり、この論理アドレス情報が冗長領域26に記憶されていない物理ブロックについては、空きブロックであると判断される。   The logical address information is information for determining the correspondence relationship between the physical block and the logical block. A physical block in which this logical address information is not stored in the redundant area 26 is determined to be a free block.

上述のように、1つの物理ブロックは、複数の物理ページを含んでいる。これらの物理ページには、データの上書きができない。このため、1つの物理ページに格納されたデータのみを書き換えるときであっても、その物理ページが含まれた物理ブロック内の全物理ページに格納されたデータを、再度書き込まなければならない。この場合、書き換える物理ページが含まれる物理ブロックの全物理ページに格納されたデータが、別の消去済み物理ブロック(空きブロック)に書き込まれる。従って、論理ブロックと物理ブロック間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。   As described above, one physical block includes a plurality of physical pages. Data cannot be overwritten on these physical pages. For this reason, even when only the data stored in one physical page is rewritten, the data stored in all the physical pages in the physical block including the physical page must be rewritten. In this case, data stored in all physical pages of the physical block including the physical page to be rewritten is written to another erased physical block (empty block). Therefore, the correspondence between the logical block and the physical block dynamically changes every time data is rewritten in the flash memory 2.

メモリコントローラ3が、論理ブロックと物理ブロックとの対応関係を記述したアドレス変換テーブルを作成し、このアドレス変換テーブルを参照して、ホストシステム4から指定される論理アドレスを、フラッシュメモリ2へ指定すべき物理アドレスへと変換する。このアドレス変換テーブルは、物理セグメント毎に作成することができる。尚、アドレス変換テーブルは、物理ブロックの先頭物理ページの冗長領域26に記憶されている論理アドレス情報に基づいて作成されため、或る物理セグメントのためのアドレス変換テーブルを作成するときには、その物理セグメントに含まれる物理ブロックの冗長領域26から論理アドレス情報を順次読み出さなければならない。従って、物理セグメントのサイズ(そこに含まれる物理ブロックの数)が小さいほど、アドレス変換テーブルを作成するための処理時間は減り、より高速なメモリアクセスが可能になる。   The memory controller 3 creates an address conversion table describing the correspondence between logical blocks and physical blocks, and refers to the address conversion table to specify a logical address specified by the host system 4 to the flash memory 2. To physical address. This address conversion table can be created for each physical segment. The address translation table is created based on the logical address information stored in the redundant area 26 of the first physical page of the physical block. Therefore, when creating an address translation table for a certain physical segment, the physical segment The logical address information must be sequentially read from the redundant area 26 of the physical block included in the. Therefore, as the size of the physical segment (the number of physical blocks included therein) is smaller, the processing time for creating the address translation table is reduced and faster memory access is possible.

メモリコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラーコレクションコード)ブロック11と、ROM12とを有する。   As shown in FIG. 1, the memory controller 3 includes a microprocessor 6, a host interface block 7, a work area 8, a buffer 9, a flash memory interface block 10, an ECC (error correction code) block 11, and a ROM 12. And have.

マイクロプロセッサ6は、ROM12に記憶されているファームウェアに基づいて各種の処理を実行する。ROM12内のファームウェアには、ホストインターフェースブロック7及びフラッシュメモリインターフェースブロック10等のメモリコントローラ3の各部を制御するためのプログラムが含まれている。例えば、このプログラムに基づいて、上述した物理セグメントの管理及びアドレス変換テーブルの作成等の処理が実行される。   The microprocessor 6 executes various processes based on the firmware stored in the ROM 12. The firmware in the ROM 12 includes a program for controlling each part of the memory controller 3 such as the host interface block 7 and the flash memory interface block 10. For example, based on this program, the processes such as management of the physical segment and creation of the address conversion table described above are executed.

ホストインターフェースブロック7は、マイクロプロセッサ6による制御の下で、外部バス13を通じて、ホストシステム4とデータ、論理アドレス、ステータス情報及び外部コマンド等の送受信を行う。フラッシュメモリインターフェースブロック10は、マイクロプロセッサ6による制御の下で、内部バス14を介して、フラッシュメモリ2とデータ、物理アドレス、ステータス情報及び内部コマンド等の送受信を行う。   The host interface block 7 transmits / receives data, logical addresses, status information, external commands, and the like to / from the host system 4 through the external bus 13 under the control of the microprocessor 6. The flash memory interface block 10 transmits and receives data, physical addresses, status information, internal commands, and the like to and from the flash memory 2 via the internal bus 14 under the control of the microprocessor 6.

ワークエリア8は、マイクロプロセッサ6により使用される作業領域である。ワークエリア8には、例えば、論理ブロックと物理ブロックとの対応関係を記載した上述のアドレス変換テーブル、及び、空きブロックを検索するための空きブロック検索テーブルなどが作成される。   The work area 8 is a work area used by the microprocessor 6. In the work area 8, for example, the above-described address conversion table describing the correspondence between logical blocks and physical blocks, and a free block search table for searching for free blocks are created.

バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に保持する。すなわち、フラッシュメモリインターフェースブロック10によりフラッシュメモリ2から読み出されたデータは、バッファ9に一時的に保持された後、ホストインターフェースブロック7を通じてホストシステム4に転送される。ホストシステム4からホストインターフェースブロック7に入力されたフラッシュメモリ2に書き込むべきデータは、バッファ9に一時的に保持された後、フラッシュメモリインターフェースブロック10を通じてフラッシュメモリ2に転送される。   The buffer 9 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 by the flash memory interface block 10 is temporarily held in the buffer 9 and then transferred to the host system 4 through the host interface block 7. Data to be written to the flash memory 2 input from the host system 4 to the host interface block 7 is temporarily held in the buffer 9 and then transferred to the flash memory 2 through the flash memory interface block 10.

ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。   The ECC block 11 generates an error correction code added to 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.

以上のような構成を有する本実施形態にかかるフラッシュメモリシステム1において、メモリコントローラ3によって行われる本発明の原理に従った動作について、以下に詳細に説明する。   In the flash memory system 1 according to the present embodiment having the above-described configuration, the operation according to the principle of the present invention performed by the memory controller 3 will be described in detail below.

図3は、メモリコントローラ3とホストシステム4とが共有する論理アドレス空間における、論理ゾーンと論理ブロックの構成を示す。   FIG. 3 shows a configuration of logical zones and logical blocks in a logical address space shared by the memory controller 3 and the host system 4.

論理アドレス空間は、多数の論理セクタ(典型的に512バイト)に分割される。図3の(a)に示されたLBA(Logical Block Address)は、全ての論理セクタに付与された通し番号である。基本的に、この論理セクタ単位のアドレスであるLBAが、ホストシステム4からメモリコントローラ3に提供される論理アドレスとして使用される。   The logical address space is divided into a number of logical sectors (typically 512 bytes). LBA (Logical Block Address) shown in (a) of FIG. 3 is a serial number assigned to all logical sectors. Basically, the LBA, which is an address in units of logical sectors, is used as a logical address provided from the host system 4 to the memory controller 3.

図3の(a)と(b)に示すように、メモリコントローラ3は、連続するLBAをもつ例えば256個の論理セクタの集合を、1個の論理ブロックとして管理する。メモリコントローラ3は、論理アドレス空間を、例えば8000個(フラッシュメモリ2内の物理ブロックの総数8192個より若干少ない)の論理ブロックに分割し、そして、それらの論理ブロックに、LBN(論理ブロック番号)と呼ばれる通し番号を付与する。   As shown in FIGS. 3A and 3B, the memory controller 3 manages a set of, for example, 256 logical sectors having continuous LBAs as one logical block. The memory controller 3 divides the logical address space into, for example, 8000 logical blocks (slightly less than the total of 8192 physical blocks in the flash memory 2), and LBN (logical block number) is assigned to these logical blocks. A serial number called is assigned.

図3の(b)と(c)に示すように、メモリコントローラ3は、例えば1000個(フラッシュメモリ2内の1個の物理ゾーンに含まれる物理ブロックの個数1024個より若干少ない)の論理ブロックの集合を、1個の論理ゾーンとして管理する。換言すれば、8000個の論理ブロックが含まれる論理アドレス空間を、8個(フラッシュメモリ2内の物理ゾーンと同数)の論理ゾーンに分割して管理する。8個の論理ゾーンに対しては、所定の振り分け単位で、論理アドレス空間内の領域が振り分けられる。例えば、1ブロック(1個の論理ブロック)単位で、論理アドレス空間内の領域が各論理ゾーンに振り分けられる(つまり、256セクタ(256個の論理セクタ)単位で、論理アドレス空間内の領域が各論理ゾーンに振り分けられる)。このような振り分けを行うことにより、連続するLBNをもつ論理ブロックが、異なる論理ゾーンに分散して割り当てられる。8個の論理ゾーンには、LZN(論理ゾーン番号)と呼ばれる通し番号が付与される。さらに、論理ゾーン毎に、そこに含まれる1000個の論理ブロックに、LZIBN(論理ゾーン内ブロック番号)と呼ばれる通し番号が付与される。   As shown in FIGS. 3B and 3C, the memory controller 3 has, for example, 1000 logical blocks (slightly less than 1024 physical blocks included in one physical zone in the flash memory 2). Are managed as one logical zone. In other words, a logical address space including 8000 logical blocks is divided into 8 logical zones (the same number as the physical zones in the flash memory 2) and managed. For the eight logical zones, areas in the logical address space are allocated in a predetermined distribution unit. For example, an area in the logical address space is allocated to each logical zone in units of one block (one logical block) (that is, each area in the logical address space is in 256 sectors (256 logical sectors)). To the logical zone). By performing such distribution, logical blocks having consecutive LBNs are distributed and allocated to different logical zones. A serial number called LZN (logical zone number) is assigned to the eight logical zones. Further, for each logical zone, a serial number called LZIBN (block number in logical zone) is assigned to 1000 logical blocks included therein.

尚、上記の振り分け単位は、適宜設定することができるが、2のべき乗で与えられる個数の論理セクタを含む集合であることが好ましい。又、1個の論理ブロックに含まれる論理セクタの個数は、通常、1個の論理ブロックに含まれる領域と1個の物理ブロックに含まれるユーザデータの記憶領域とが等しくなるように設定される。但し、1個の論理ブロックに対して複数個の物理ブロックを割り当てるような場合は、1個の論理ブロックに割り当てる物理ブロックの個数に応じて、1個の論理ブロックに含まれる論理セクタの個数が設定される。例えば、1個の論理ブロックに対して2個の物理ブロックを割り当てるような場合は、1個の論理ブロックに含まれる領域と2個の物理ブロックに含まれるユーザデータの記憶領域とが等しくなるように、1個の論理ブロックに含まれる論理セクタの個数が設定される。   The distribution unit can be appropriately set, but is preferably a set including the number of logical sectors given by a power of 2. In addition, the number of logical sectors included in one logical block is usually set so that the area included in one logical block is equal to the storage area of user data included in one physical block. . However, when a plurality of physical blocks are allocated to one logical block, the number of logical sectors included in one logical block depends on the number of physical blocks allocated to one logical block. Is set. For example, when two physical blocks are allocated to one logical block, the area included in one logical block is equal to the storage area of user data included in two physical blocks. The number of logical sectors included in one logical block is set.

上記のような論理アドレス空間の振り分けを行うことにより、論理アドレス空間内のLBAが連続する特定の領域にアクセスが集中したとしても、その特定の領域が上記の振り分け単位より広い領域であれば、そのアクセスが複数の論理ゾーン(つまり、複数の物理ゾーン)に分散される。図3の(b)と(c)に示したように、256セクタ(256個の論理セクタ)単位で論理アドレス空間内の領域を各論理ゾーンに振り分けた場合、アクセスが集中する領域が257セクタ以上の領域であれば、そのアクセスは少なくとも2個以上の論理ゾーンに分散される。それにより、特定の物理ゾーンにのみアクセスが集中することが抑制され、結果として、特定の物理ゾーンにのみ後天性の不良ブロックが集中することが抑制される。   Even if access concentrates on a specific area where LBAs in the logical address space continue by performing the distribution of the logical address space as described above, if the specific area is wider than the above distribution unit, The access is distributed across multiple logical zones (ie multiple physical zones). As shown in FIGS. 3B and 3C, when the area in the logical address space is allocated to each logical zone in units of 256 sectors (256 logical sectors), the area where access is concentrated is 257 sectors. In the above area, the access is distributed to at least two logical zones. Thereby, it is suppressed that access concentrates only on a specific physical zone, and as a result, it is suppressed that an acquired defective block concentrates only on a specific physical zone.

図4は、LBA(Logical
Block Address)のビット構造を示す。
FIG. 4 shows the LBA (Logical
The bit structure of (Block Address) is shown.

図4において、各「*」マークが各ビットを意味する。LBAは、例えば21ビットの2進数値であり、論理アドレス空間内の全ての論理セクタ(256×8000個の論理セクタ)を識別する。LBAの上位所定数ビット(例えば上位13ビット)がLBNであり、下位の残り数ビット(例えば下位8ビット)がLSN(論理セクタ番号)である。ここで、LSNは、各論理ブロックに含まれる全ての論理セクタに付された通し番号である。各論理ブロックに含まれる論理セクタの個数は2のべき乗で与えられる数値、すなわち、2個(iは整数であり、例えば、i=8で、256個)であることが好ましい。それにより、LBAの下位iビットを抽出すればLSNが得られ、上位の残り数ビットを抽出すればLBNが得られる。 In FIG. 4, each “*” mark represents each bit. The LBA is a binary value of 21 bits, for example, and identifies all the logical sectors (256 × 8000 logical sectors) in the logical address space. The upper predetermined number of bits (for example, upper 13 bits) of the LBA is LBN, and the lower remaining number of bits (for example, lower 8 bits) is LSN (logical sector number). Here, LSN is a serial number assigned to all logical sectors included in each logical block. The number of logical sectors included in each logical block is preferably a numerical value given by a power of 2, that is, 2 i (i is an integer, for example, i = 8 and 256). Accordingly, LSN is obtained by extracting the lower i bits of the LBA, and LBN is obtained by extracting the upper several remaining bits.

また、論理ゾーンの個数も2のべき乗で与えられる数値、すなわち、2個(jは整数であり、例えば、j=3で、8個)であることが好ましい。それにより、図4に示すように、LBNの下位jビット(例えば下位3ビット)がLZNであり、上位の残り数ビット(例えば上位10ビット)がLZIBNである。このようにLBNの下位jビットをLZNとするということは、LBAの下位から数えてi+1ビット目からi+jビット目をLZNとすることに相当する。つまり、上記の振り分け単位が、2のべき乗で与えられる数値の論理セクタを含む集合であり、論理ゾーンの個数が2のべき乗で与えられる数値であれば、LBAの特定のビットに基づいて、その論理セクタ(又はその論理セクタが属する論理ブロック)が振り分けられる論理ゾーンを判別することができる。このようにして振り分けられる論理ゾーンを判別する方法は、図3の(b)と(c)に示したように、論理アドレス空間を複数の論理ゾーンに分散して割り当てるため、本実施形態で採用される一つの手法である。この手法を用いることにより、アクセス対象の論理ゾーンを判別するときに、メモリコントローラ3にてLBNに対する割り算計算を行う必要がなくなる。更に、1個の論理ゾーンに含まれる論理セクタの総数が2のべき乗で与えられる数値に限定されず、且つ、1個の論理ゾーンに含まれる論理セクタの総数を容易に変更することができる、という利点がある。 The number of logical zones is also preferably a numerical value given as a power of 2, that is, 2 j (j is an integer, for example, j = 3 and 8). Thereby, as shown in FIG. 4, the lower j bits (for example, the lower 3 bits) of the LBN are LZN, and the upper several remaining bits (for example, the upper 10 bits) are LZIBN. Thus, setting the lower j bits of the LBN to LZN corresponds to setting the i + 1-th bit to the i + j-th bit as LZN, counting from the lower level of the LBA. In other words, if the distribution unit is a set including a logical sector of a numerical value given by a power of 2, and the number of logical zones is a numerical value given by a power of 2, based on a specific bit of the LBA, It is possible to determine a logical zone to which a logical sector (or a logical block to which the logical sector belongs) is allocated. The method for discriminating the logical zones to be distributed in this way is adopted in this embodiment because the logical address space is distributed and allocated to a plurality of logical zones as shown in FIGS. 3B and 3C. This is one technique. By using this method, it is not necessary to perform division calculation for LBN in the memory controller 3 when determining the logical zone to be accessed. Further, the total number of logical sectors included in one logical zone is not limited to a numerical value given as a power of 2, and the total number of logical sectors included in one logical zone can be easily changed. There is an advantage.

図5は、メモリコントローラ3内で制御される論理ゾーンと物理ゾーン及び物理ブロックの対応関係を示す。図3と図5の双方を眺めることで、論理アドレス空間と物理アドレス空間との関係の全体像が理解できる筈である。   FIG. 5 shows the correspondence between logical zones, physical zones, and physical blocks controlled in the memory controller 3. By looking at both FIG. 3 and FIG. 5, an overall picture of the relationship between the logical address space and the physical address space should be understood.

図5の(a)に示されるような例えば8個の論理ゾーンは、図5の(b)に示されるような同数(つまり8個)の物理ゾーンに、1対1の関係で対応付けられる。図5の(b)に示すように、それらの物理ゾーンには、PZN(物理ゾーン番号)と呼ばれる通し番号が付与される。各物理ゾーン内には例えば1024個(各論理ゾーン内の論理ブロックの数1000個より若干多い)の物理ブロックが含まれる。全ての物理ブロックには、PBA(物理ブロック番号)と呼ばれる通し番号が付けられている。更に、物理ゾーン毎に、そこに含まれる1024個の物理ブロックに、PZIBN(物理ゾーン内ブロック番号)と呼ばれる通し番号が付与される。   For example, eight logical zones as shown in FIG. 5A are associated with the same number (ie, eight) physical zones as shown in FIG. 5B in a one-to-one relationship. . As shown in FIG. 5B, serial numbers called PZN (physical zone numbers) are assigned to these physical zones. Each physical zone includes, for example, 1024 physical blocks (slightly more than the number 1000 of logical blocks in each logical zone). All physical blocks have serial numbers called PBA (physical block numbers). Further, for each physical zone, a serial number called PZIBN (physical zone block number) is assigned to 1024 physical blocks included therein.

図6は、PBN(物理ブロック番号)のビット構造を示す。   FIG. 6 shows the bit structure of PBN (physical block number).

図6に示すように、PBAは例えば13ビットの2進数値であり、全ての物理ブロック(例えば8192個の物理ブロック)を識別する。物理ゾーンの個数が2のべき乗で与えられる数値、すなわち、2個(pは整数であり、例えば、p=3で、8個)であれば、PBAの上位pビット(例えば上位3ビット)がPZNであり、下位の残り数ビット(例えば下位10ビット)がPZIBNである。 As shown in FIG. 6, the PBA is a 13-bit binary value, for example, and identifies all physical blocks (for example, 8192 physical blocks). Numbers number of physical zone is given a power of 2, i.e., 2 p number (p is an integer, for example, in p = 3, 8 pieces) if the upper p bits of the PBA (e.g. upper 3 bits) Is PZN, and the lower few remaining bits (for example, the lower 10 bits) are PZIBN.

ところで、図5の(b)に示した例では、各物理ゾーンは、連続するPBAをもつ物理ブロックの集合により構成される。しかし、図3に示された論理ブロックと論理ゾーンとの関係と同様に、連続しないPBAをもつ物理ブロックの集合により各物理ゾーンを構成する(換言すれば、連続するPBAをもつ物理ブロックを、異なる物理ゾーンに分散する)こともでき、それによる利点の一つは、特定の物理ゾーンに先天性の不良ブロックが集中することを抑制できることである。   By the way, in the example shown in FIG. 5B, each physical zone is configured by a set of physical blocks having continuous PBAs. However, similarly to the relationship between logical blocks and logical zones shown in FIG. 3, each physical zone is constituted by a set of physical blocks having non-contiguous PBAs (in other words, physical blocks having continuous PBAs are represented by One advantage of this is that congenital bad blocks can be prevented from concentrating on a specific physical zone.

図7は、物理ブロックの構成を示す。   FIG. 7 shows the configuration of the physical block.

図7に示すように、1個の物理ブロックは、所定複数個(例えば64個)の物理ページから構成される。各物理ページは、所定複数個(例えば4個)の物理セクタから構成される。物理ブロック毎に、そこに含まれる全て(例えば64個)の物理ページに、PPN(物理ページ番号)と呼ばれる通し番号が付与される。また、物理ブロック毎に、そこに含まれる全て(例えば256個)の物理セクタに、PSN(物理セクタ番号)と呼ばれる通し番号が付与される。   As shown in FIG. 7, one physical block is composed of a predetermined number (for example, 64) physical pages. Each physical page is composed of a plurality of (for example, four) physical sectors. For each physical block, a serial number called PPN (physical page number) is assigned to all (for example, 64) physical pages included therein. Further, for each physical block, a serial number called PSN (physical sector number) is given to all (for example, 256) physical sectors included therein.

図示は省略してあるが、論理ブロックも、上記の物理ブロックと同様の構成をもつ。すなわち、1つの論理ブロックは、所定複数個(例えば64個)の論理ページから構成される。各論理ページは、所定複数個(例えば4個)の論理セクタから構成される。論理ブロック毎に、そこに含まれる全て(例えば64個)の論理ページに、LPN(論理ページ番号)と呼ばれる通し番号が付与される。また、論理ブロック毎に、そこに含まれる全て(例えば256個)の論理セクタに、LSN(論理セクタ番号)と呼ばれる通し番号が付与される。   Although not shown, the logical block has the same configuration as the above physical block. That is, one logical block is composed of a predetermined plurality (for example, 64) logical pages. Each logical page is composed of a predetermined plurality of (for example, four) logical sectors. For each logical block, a serial number called LPN (logical page number) is assigned to all (for example, 64) logical pages included therein. Further, for each logical block, a serial number called LSN (logical sector number) is assigned to all (for example, 256) logical sectors included therein.

図8は、LSNとPSNのビット構造を示す。   FIG. 8 shows the bit structure of LSN and PSN.

図8に示すように、LSNとPSNのいずれも、例えば8ビットの2進数値であり、上述した256個のセクタの全てを識別する。LSNとPSNの上位の所定数ビット(例えば上位6ビット)が、それぞれ、LPNとPPNであり、上述した64個のページの全てを識別する。   As shown in FIG. 8, both LSN and PSN are, for example, 8-bit binary values, and identify all 256 sectors described above. Predetermined bits (for example, upper 6 bits) of LSN and PSN are LPN and PPN, respectively, and identify all of the 64 pages described above.

ところで、対応する論理ブロックと物理ブロックの間では、例えば、LPNとPPNが同じ値をもつ論理ページと物理ページが対応するように管理される。しかし、変形例として、対応する論理ブロックと物理ブロックの間で、対応する論理ページと物理ページのLPNとPPNとが異なる値をもつようにすることもできる。例えば、各物理ページの冗長領域26に、各物理ページに対応する各論理ページのLPNを記録しておく、というような方法を採用することで、論理ページと物理ページとの間の対応関係を管理することができる。   By the way, between the corresponding logical block and physical block, for example, management is performed so that a logical page and a physical page in which LPN and PPN have the same value correspond to each other. However, as a modification, the corresponding logical page and physical page LPN and PPN may have different values between the corresponding logical block and physical block. For example, by adopting a method in which the LPN of each logical page corresponding to each physical page is recorded in the redundant area 26 of each physical page, the correspondence between the logical page and the physical page can be changed. Can be managed.

さて、既に説明したように、メモリコントローラ3は、各物理ゾーンを複数個の物理セグメントに分割する。メモリコントローラは、フラッシュメモリ2へのデータ書込みを行うときに、アクセス対象の物理セグメント(アクセス対象の論理セグメントに対応する物理セグメント)についてアドレス変換テーブルを作成する。メモリコントローラ3は、本発明の原理に従い、或る物理セグメント内で後天性の不良ブロックが増えるのに伴って、その物理セグメントと別の物理セグメントを結合して物理セグメントを拡大する。以下では、図9から図17を参照して、メモリコントローラ3が行う物理セグメントの制御について、アドレス変換テーブルの作成処理と関連付けて、具体的に説明する。   Now, as already described, the memory controller 3 divides each physical zone into a plurality of physical segments. When writing data to the flash memory 2, the memory controller creates an address conversion table for the physical segment to be accessed (physical segment corresponding to the logical segment to be accessed). In accordance with the principle of the present invention, the memory controller 3 expands a physical segment by combining the physical segment with another physical segment as the number of acquired defective blocks increases in a physical segment. The physical segment control performed by the memory controller 3 will be specifically described below with reference to FIGS. 9 to 17 in association with the address conversion table creation process.

図9は、論理アドレス空間上で定義される論理セグメントの構成を示す。   FIG. 9 shows a configuration of a logical segment defined on the logical address space.

図9の(a)には、LZN#0の論理ゾーンが示されている。この論理ゾーンは、図9の(b)に示すように、例えば、8個の論理セグメント(所定の最大数の論理セグメント)に分割されている。論理ゾーン内の論理セグメントの個数は、2のべき乗で与えられる数値であることが好ましい。論理ゾーン内の全ての論理セグメントには、図9の(b)に示されるように、LSGN(論理セグメント番号)と呼ばれる通し番号が付与される。各論理セグメントは、連続しないLZIBNをもつ論理ブロックの集合により構成される。換言すれば、連続するLZIBNをもつ論理ブロックは、異なる論理セグメントに分散される。   FIG. 9A shows a logical zone of LZN # 0. As shown in FIG. 9B, this logical zone is divided into, for example, eight logical segments (a predetermined maximum number of logical segments). The number of logical segments in the logical zone is preferably a numerical value given as a power of two. As shown in FIG. 9B, serial numbers called LSGN (logical segment numbers) are assigned to all logical segments in the logical zone. Each logical segment is composed of a set of logical blocks having non-contiguous LZIBN. In other words, logical blocks with consecutive LZIBNs are distributed in different logical segments.

本実施形態では、論理ゾーン内に8個の論理セグメントが存在する。このとき8個の論理セグメントに付与されている論理セグメント番号が、図9の(b)では「LSGN#0〜#7」で示されている。「LSGN#0〜#7」で示されている各論理セグメントには、125個の論理ブロックが含まれている。初期段階(第1段階)では、8個の論理セグメントは、8個の物理セグメントに1対1の関係で対応付けられる。   In the present embodiment, there are eight logical segments in the logical zone. At this time, the logical segment numbers assigned to the eight logical segments are indicated by “LSGN # 0 to # 7” in FIG. 9B. Each logical segment indicated by “LSGN # 0 to # 7” includes 125 logical blocks. In the initial stage (first stage), the eight logical segments are associated with the eight physical segments in a one-to-one relationship.

第2段階では、8個の論理セグメントは、2個ずつの4個のグループとなり、それら4個のグループが4個の物理セグメントに対して対応付けられる。つまり、LSGN#0とLSGN#1の論理セグメントが第1のグループとなり、LSGN#2とLSGN#3の論理セグメントが第2グループとなり、LSGN#4とLSGN#5の論理セグメントが第3グループとなり、LSGN#6とLSGN#7の論理セグメントが第4グループとなる。そして、同じグループに属する2個の論理セグメントがそれぞれ同じ物理セグメントに対応付けられる。尚、図9の(b)で、LSGN#0とLSGN#1の論理セグメントのグループ番号はGN#0に対応し、LSGN#2とLSGN#3の論理セグメントのグループ番号はGN#1に対応し、LSGN#4とLSGN#5の論理セグメントのグループ番号はGN#2に対応し、LSGN#6とLSGN#7の論理セグメントのグループ番号はGN#3に対応する。   In the second stage, the eight logical segments become four groups of two, and the four groups are associated with the four physical segments. That is, the logical segments of LSGN # 0 and LSGN # 1 are the first group, the logical segments of LSGN # 2 and LSGN # 3 are the second group, and the logical segments of LSGN # 4 and LSGN # 5 are the third group. , LSGN # 6 and LSGN # 7 are logical segments. Two logical segments belonging to the same group are associated with the same physical segment. In FIG. 9B, the logical segment group numbers of LSGN # 0 and LSGN # 1 correspond to GN # 0, and the logical segment group numbers of LSGN # 2 and LSGN # 3 correspond to GN # 1. The group numbers of the logical segments of LSGN # 4 and LSGN # 5 correspond to GN # 2, and the group numbers of the logical segments of LSGN # 6 and LSGN # 7 correspond to GN # 3.

第3段階では、8個の論理セグメントは、4個ずつの2個のグループとなり、それら2個のグループが2個の物理セグメントに対して対応付けられる。つまり、LSGN#0〜#3の論理セグメントが第1グループとなり、LSGN#4〜#7の論理セグメントが第2グループとなる。同じグループに属する4個の論理セグメントがそれぞれ同じ物理セグメントに対応付けられる。尚、図9の(b)で、LSGN#0〜#3の論理セグメントのグループ番号はGN’#0に対応し、LSGN#4〜#7の論理セグメントのグループ番号はGN’#1に対応する。   In the third stage, the eight logical segments become two groups of four, and the two groups are associated with the two physical segments. That is, the logical segments of LSGN # 0 to # 3 are the first group, and the logical segments of LSGN # 4 to # 7 are the second group. Four logical segments belonging to the same group are associated with the same physical segment. In FIG. 9B, the logical segment group numbers of LSGN # 0 to # 3 correspond to GN '# 0, and the logical segment group numbers of LSGN # 4 to # 7 correspond to GN' # 1. To do.

論理ゾーンの個数が2個(jは整数であり、例えば、j=3で、8個)で、論理セグメントの個数が2個(sは整数であり、例えば、s=3で、8個)であるとき、論理セグメント番号(LSGN)は、LBNの下位側から数えてj+1ビット目からj+sビット目までのビットが示す値に対応する。例えば、論理ゾーンの個数が2個(8個)で、論理セグメントの個数が2個(8個)の場合、図10Aに示したように、LBNの下位側から数えて4ビット目から6ビット目までのビットが示す値が論理セグメント番号(LSGN)に対応する。尚、図9の(b)に示したGN(グループ番号)は、LBNの下位側から数えて5ビット目から6ビット目までのビットが示す値に対応し、GN’(グループ番号)は下位側から数えて6ビット目のビットが示す値に対応する。 Number of logical zones 2 j number (j is an integer, for example, in j = 3, 8 pieces), the number of logical segments 2 s number (s is an integer, for example, in s = 3, 8 The logical segment number (LSGN) corresponds to the value indicated by the bits from the (j + 1) th bit to the (j + s) th bit counted from the lower side of the LBN. For example, by the number of logical zones 2 3 (8), when the number of logical segments is 2 3 (8), as shown in FIG. 10A, the fourth bit counted from the lower side of the LBN The value indicated by the bits up to the sixth bit corresponds to the logical segment number (LSGN). Note that GN (group number) shown in FIG. 9B corresponds to the values indicated by the 5th to 6th bits counted from the lower side of the LBN, and GN ′ (group number) is the lower order. This corresponds to the value indicated by the sixth bit counted from the side.

<第1段階の説明>
図11は、第1段階におけるLZN#0の論理ゾーン内の論理セグメントと、PZN#0の物理ゾーン内の物理セグメントとの対応関係を示している。図11の(b)に示したように、PZN#0の物理ゾーン内にも、論理ゾーン側と同様に、8個の物理セグメント(所定の最大数の物理セグメント)が存在する。物理ゾーン内の全ての物理セグメントには、PSGN(物理セグメント番号)と呼ばれる通し番号が付与される。PSGN#0〜#7の各物理セグメントには、128個の物理ブロックが含まれている。論理セグメントと物理セグメントは1対1の関係で対応付けられおり、LSGNとPSGNが同じ値をもつ論理セグメントと物理セグメントが対応するように管理される。ここで、LSGNは、図12Aに示したように、LBNの下位側から数えて4ビット目から6ビット目までのビットが示す値に対応する。PSGNは、図12Bに示したように、PBAの上位側から数えて4ビット目から6ビット目までのビットが示す値に対応する(物理ゾーンの個数が2個(pは整数であり、例えば、p=3で、8個)で、物理セグメントの個数が2個(sは整数であり、例えば、s=3で、8個)であるとき、物理セグメント番号は、PBAの上位側から数えてp+1ビット目からp+sビット目までのビットが示す値に対応する)。
<Description of the first stage>
FIG. 11 shows the correspondence between the logical segments in the logical zone of LZN # 0 and the physical segments in the physical zone of PZN # 0 in the first stage. As shown in FIG. 11B, there are eight physical segments (predetermined maximum number of physical segments) in the physical zone of PZN # 0 as in the logical zone side. A serial number called PSGN (physical segment number) is assigned to all physical segments in the physical zone. Each physical segment of PSGN # 0 to # 7 includes 128 physical blocks. The logical segment and the physical segment are associated with each other in a one-to-one relationship, and are managed so that the logical segment and the physical segment in which LSGN and PSGN have the same value correspond to each other. Here, as shown in FIG. 12A, LSGN corresponds to the value indicated by the fourth to sixth bits counted from the lower side of LBN. As shown in FIG. 12B, PSGN corresponds to the value indicated by the 4th to 6th bits counted from the upper side of PBA (the number of physical zones is 2 p (p is an integer, For example, when p = 3 and 8), and the number of physical segments is 2 s (s is an integer, for example, s = 3 and 8), the physical segment number is the upper side of the PBA. (Corresponding to the values indicated by the bits from the (p + 1) th bit to the (p + s) th bit).

<第2段階の説明>
その後、8個の物理セグメントの中の少なくとも1個の物理セグメントが、所定の結合レベルに達したときに第2段階に移行する。この所定の結合レベルとしては、物理セグメント内の不良ブロックの個数が所定の個数に達したとき又は物理セグメント内で空きブロックを確保することができなくなったとき等が挙げられる。
<Explanation of the second stage>
Thereafter, when at least one physical segment among the eight physical segments reaches a predetermined coupling level, the process proceeds to the second stage. Examples of the predetermined coupling level include when the number of defective blocks in the physical segment reaches a predetermined number, or when it becomes impossible to secure an empty block in the physical segment.

図13は、第2段階におけるLZN#0の論理ゾーン内の論理セグメントと、PZN#0の物理ゾーン内の物理セグメントとの対応関係を示している。図13の(b)に示したように、PZN#0の物理ゾーン内の物理セグメントは8個から4個に減少し、各物理セグメントに含まれている物理ブロックの個数は、128個から256個に増加する。つまり、第1段階から第2段階に移行するときに、PSGN#0とPSGN#1の物理セグメント、PSGN#2とPSGN#3の物理セグメント、PSGN#4とPSGN#5の物理セグメント及びPSGN#6とPSGN#7の物理セグメントがそれぞれ結合する。この際、不良ブロックの個数が所定の個数に達した物理セグメント又は空きブロックを確保することができなくなった物理セグメントだけを結合させてもよいが(例えば、PSGN#3の物理セグメントだけが、物理セグメント内の不良ブロックの個数が所定の個数に達したとき又は物理セグメント内で空きブロックを確保することができなくなったときは、PSGN#2とPSGN#3の物理セグメントの結合だけを行ってもよいが)、管理が煩雑になることを避けるため、結合させる必要のない物理セグメント(PSGN#2及びPSGN#3以外の物理セグメント)についても同様に結合させている。   FIG. 13 shows the correspondence between the logical segments in the logical zone of LZN # 0 and the physical segments in the physical zone of PZN # 0 in the second stage. As shown in FIG. 13B, the number of physical segments in the physical zone of PZN # 0 is reduced from eight to four, and the number of physical blocks included in each physical segment is from 128 to 256. Increase to pieces. That is, when transitioning from the first stage to the second stage, PSGN # 0 and PSGN # 1 physical segments, PSGN # 2 and PSGN # 3 physical segments, PSGN # 4 and PSGN # 5 physical segments, and PSGN # 6 and PSGN # 7 physical segments are combined. At this time, only a physical segment in which the number of defective blocks reaches a predetermined number or a physical segment for which an empty block cannot be secured may be combined (for example, only a physical segment of PSGN # 3 When the number of bad blocks in the segment reaches a predetermined number or when it becomes impossible to secure an empty block in the physical segment, only the physical segments of PSGN # 2 and PSGN # 3 are combined. However, in order to avoid complicated management, physical segments that do not need to be combined (physical segments other than PSGN # 2 and PSGN # 3) are similarly combined.

PSGN#0とPSGN#1の物理セグメントを結合させたPSGN’#0の物理セグメントには、LSGN#0とLSGN#1の論理セグメントが対応付けられる。従って、LSGN#0の論理セグメントに含まれる125個の論理ブロックは、PSGN’#0の物理セグメントに含まれる256個の物理ブロックのいずれかに対応付けることができるようになり、LSGN#1の論理セグメントに含まれる125個の論理ブロックも、PSGN’#0の物理セグメントに含まれる256個の物理ブロックのいずれかに対応付けることができるようになる。同様に、PSGN#2とPSGN#3の物理セグメントを結合させたPSGN’#1の物理セグメントには、LSGN#2とLSGN#3の論理セグメントが対応付けられる。PSGN#4とPSGN#5の物理セグメントを結合させたPSGN’#2の物理セグメントには、LSGN#4とLSGN#5の論理セグメントが対応付けられる。PSGN#6とPSGN#7の物理セグメントを結合させたPSGN’#3の物理セグメントには、LSGN#6とLSGN#7の論理セグメントが対応付けられる。   The physical segment of PSGN '# 0 obtained by combining the physical segments of PSGN # 0 and PSGN # 1 is associated with the logical segments of LSGN # 0 and LSGN # 1. Therefore, the 125 logical blocks included in the logical segment of LSGN # 0 can be associated with any of the 256 physical blocks included in the physical segment of PSGN '# 0. The 125 logical blocks included in the segment can be associated with any of the 256 physical blocks included in the physical segment of PSGN '# 0. Similarly, the physical segments of PSGN '# 1 obtained by combining the physical segments of PSGN # 2 and PSGN # 3 are associated with the logical segments of LSGN # 2 and LSGN # 3. The PSGN '# 2 physical segment obtained by combining the PSGN # 4 and PSGN # 5 physical segments is associated with the logical segments LSGN # 4 and LSGN # 5. The physical segment of PSGN '# 3 obtained by combining the physical segments of PSGN # 6 and PSGN # 7 is associated with the logical segments of LSGN # 6 and LSGN # 7.

つまり、第2段階では、GN(グループ番号)#0に対応する2個の論理セグメント(LSGN#0とLSGN#1の論理セグメント)がPSGN’#0の物理セグメントに対応付けられ、GN(グループ番号)#1に対応する2個の論理セグメント(LSGN#2とLSGN#3の論理セグメント)がPSGN’#1の物理セグメントに対応付けられ、GN(グループ番号)#2に対応する2個の論理セグメント(LSGN#4とLSGN#5の論理セグメント)がPSGN’#2の物理セグメントに対応付けられ、GN(グループ番号)#3に対応する2個の論理セグメント(LSGN#6とLSGN#7の論理セグメント)がPSGN’#3の物理セグメントに対応付けられる。ここで、GN(グループ番号)は、図14Aに示したように、LBNの下位側から数えて5ビット目から6ビット目までのビットが示す値に対応する。PSGN’は、図14Bに示したように、PBAの上位側から数えて4ビット目から5ビット目までのビットが示す値に対応する。   That is, in the second stage, two logical segments corresponding to GN (group number) # 0 (logical segments of LSGN # 0 and LSGN # 1) are associated with the physical segment of PSGN '# 0, and GN (group Number) 2 logical segments corresponding to # 1 (LSGN # 2 and LSGN # 3 logical segments) are associated with PSGN '# 1 physical segment, and 2 logical segments corresponding to GN (group number) # 2 Logical segments (LSGN # 4 and LSGN # 5 logical segments) are associated with PSGN '# 2 physical segments, and two logical segments (LSGN # 6 and LSGN # 7) corresponding to GN (group number) # 3 Are associated with the physical segment of PSGN '# 3. Here, GN (group number) corresponds to the value indicated by the 5th to 6th bits counted from the lower side of the LBN, as shown in FIG. 14A. As shown in FIG. 14B, PSGN 'corresponds to the values indicated by the 4th to 5th bits counted from the upper side of the PBA.

<第3段階の説明>
第2段階に移行した後、4個の物理セグメントの中の少なくとも1個の物理セグメントが、所定の結合レベルに達したときに第3段階に移行する。この所定の結合レベルとしては、物理セグメント内の不良ブロックの個数が所定の個数に達したとき又は物理セグメント内で空きブロックを確保することができなくなったとき等が挙げられる。
<Explanation of the third stage>
After the transition to the second stage, the transition to the third stage is made when at least one physical segment of the four physical segments reaches a predetermined coupling level. Examples of the predetermined coupling level include when the number of defective blocks in the physical segment reaches a predetermined number, or when it becomes impossible to secure an empty block in the physical segment.

図15は、第3段階におけるLZN#0の論理ゾーン内の論理セグメントと、PZN#0の物理ゾーン内の物理セグメントとの対応関係を示している。図15の(b)に示したように、PZN#0の物理ゾーン内の物理セグメントは4個から2個に減少し、各物理セグメントに含まれている物理ブロックの個数は、256個から512個に増加する。つまり、第2段階から第3段階に移行するときに、PSGN’#0とPSGN’#1の物理セグメント、PSGN’#2とPSGN’#3の物理セグメントがそれぞれ結合する。この際、上述のように不良ブロックの個数が所定の個数に達した物理セグメント又は空きブロックを確保することができなくなった物理セグメントだけを結合させてもよいが、管理が煩雑になることを避けるため、結合させる必要のない物理セグメントについても同様に結合させている。   FIG. 15 shows the correspondence between the logical segments in the logical zone of LZN # 0 and the physical segments in the physical zone of PZN # 0 in the third stage. As shown in FIG. 15B, the number of physical segments in the physical zone of PZN # 0 is reduced from four to two, and the number of physical blocks included in each physical segment is from 256 to 512. Increase to pieces. That is, when moving from the second stage to the third stage, the physical segments PSGN '# 0 and PSGN' # 1 and the physical segments PSGN '# 2 and PSGN' # 3 are combined. At this time, as described above, only the physical segment in which the number of defective blocks has reached a predetermined number or the physical segment in which a free block can no longer be secured may be combined, but avoiding complicated management. Therefore, physical segments that do not need to be combined are similarly combined.

PSGN’#0とPSGN’#1の物理セグメントを結合させたPSGN”#0の物理セグメント(PSGN#0〜#3の物理セグメントを結合させた物理セグメント)には、LSGN#0〜#3の論理セグメントが対応付けられる。従って、LSGN#0の論理セグメントに含まれる125個の論理ブロックは、PSGN”#0の物理セグメントに含まれる512個の物理ブロックのいずれかに対応付けることができるようになり、LSGN#1〜#3の各論理セグメントに含まれる125個の論理ブロックについても、PSGN”#0の物理セグメントに含まれる512個の物理ブロックのいずれかに対応付けることができるようになる。同様に、PSGN’#2とPSGN’#3の物理セグメントを結合させたPSGN”#1の物理セグメント(PSGN#4〜#7の物理セグメントを結合させた物理セグメント)には、LSGN#4〜#7の論理セグメントが対応付けられる。   PSGN "# 0 physical segment (PSGN # 0- # 3 physical segment combined), which combines PSGN '# 0 and PSGN' # 1 physical segments, includes LSGN # 0- # 3 Therefore, the 125 logical blocks included in the logical segment of LSGN # 0 can be associated with any of the 512 physical blocks included in the physical segment of PSGN "# 0. Thus, the 125 logical blocks included in the logical segments LSGN # 1 to # 3 can be associated with any of the 512 physical blocks included in the physical segment PSGN "# 0. Similarly, the physical segment of PSGN "# 1 that combines the physical segments of PSGN '# 2 and PSGN' # 3. The instrument (psgn # physical segment bound with physical segment of 4 to # 7), the logical segments of LSGN # 4 to # 7 are associated.

つまり、第3段階では、GN’(グループ番号)#0に対応する4個の論理セグメント(LSGN#0〜#3の論理セグメント)がPSGN”#0の物理セグメントに対応付けられ、GN’(グループ番号)#1に対応する4個の論理セグメント(LSGN#4〜#7の論理セグメント)がPSGN”#1の物理セグメントに対応付けられる。ここで、GN’(グループ番号)は、図16Aに示したように、LBNの下位側から数えて6ビット目のビットが示す値に対応する。PSGN’は、図14Bに示したように、PBAの上位側から数えて4ビット目のビットが示す値に対応する。   That is, in the third stage, four logical segments corresponding to GN ′ (group number) # 0 (LSGN # 0 to # 3 logical segments) are associated with PSGN ″ # 0 physical segments and GN ′ ( Four logical segments (LSGN # 4 to # 7 logical segments) corresponding to (group number) # 1 are associated with PSGN "# 1 physical segments. Here, GN ′ (group number) corresponds to the value indicated by the sixth bit as counted from the lower side of the LBN, as shown in FIG. 16A. As shown in FIG. 14B, PSGN 'corresponds to the value indicated by the fourth bit counted from the upper side of the PBA.

<所定の結合レベルの説明>
各物理セグメントに含まれる物理ブロックの個数は、その物理セグメントに対応付けられている論理セグメントに含まれる論理ブロックの個数よりも多くなるように設定されている。従って、各物理セグメントに含まれる物理ブロックの個数から先天性及び後天性の不良ブロックの個数を差し引いた有効ブロックの個数が、その物理セグメントに対応付けられている論理セグメントに含まれる論理ブロックの個数よりも多ければ、その物理セグメント内で空きブロックを確保することができなくなることはない。
<Description of the predetermined coupling level>
The number of physical blocks included in each physical segment is set to be larger than the number of logical blocks included in the logical segment associated with the physical segment. Therefore, the number of effective blocks obtained by subtracting the number of congenital and acquired bad blocks from the number of physical blocks included in each physical segment is the number of logical blocks included in the logical segment associated with the physical segment. If there is more, the free block cannot be secured in the physical segment.

又、各物理セグメントに含まれる有効ブロックの個数が、その物理セグメントに対応付けられている論理セグメントに含まれる論理ブロックの個数以下になっても、使用されている物理ブロック(データが記憶されている物理ブロック)が少なければ、その物理セグメント内で空きブロックを確保することができなくなることはない。つまり、各物理セグメントに含まれる有効ブロックの個数が、その物理セグメントに対応付けられている論理セグメントに含まれる論理ブロックの個数以下になった場合でも、複数個の物理セグメントを結合させる必要のない場合もある。   In addition, even if the number of valid blocks included in each physical segment is equal to or less than the number of logical blocks included in the logical segment associated with the physical segment, the physical block used (data is stored). If there are few physical blocks), it is not possible to secure an empty block in the physical segment. In other words, even when the number of valid blocks included in each physical segment is equal to or less than the number of logical blocks included in the logical segment associated with the physical segment, it is not necessary to combine a plurality of physical segments. In some cases.

これらのことを考慮すれば、各物理セグメントに含まれる有効ブロックの個数が、その物理セグメントに対応付けられている論理セグメントに含まれる論理ブロックの個数以下になったときに、その物理セグメントを含む複数の物理セグメントを結合させてもよいが、その物理セグメント内で空きブロックを確保することができなくなるのを待って、複数の物理セグメントを結合させるようにしてもよい。   Considering these points, when the number of valid blocks included in each physical segment is equal to or less than the number of logical blocks included in the logical segment associated with the physical segment, the physical segment is included. A plurality of physical segments may be combined, but a plurality of physical segments may be combined after waiting for a free block to be secured in the physical segment.

図17は、メモリコントローラ3が作成するアドレス変換テーブルの構成例を示す。   FIG. 17 shows a configuration example of an address conversion table created by the memory controller 3.

メモリコントローラ3は、上述したどの段階においても、或る論理セグメントに関わる所定のイベントが発生した時(例えば、その論理セグメント内の論理ブロックに対するデータ書込み要求をホストシステム4から受けた時)、その論理セグメントに対応付けられている物理セグメントのアドレス変換テーブルを、次のようにして作成する。すなわち、メモリコントローラ3は、その論理セグメントに対応する物理セグメント内の全ての物理ブロックをスキャンして、それぞれの物理ブロックの冗長領域(例えば、それぞれの物理ブロックの先頭ページの冗長領域)26に記憶された付加データ(論理アドレス情報及びブロックステータスなど)を読む。そして、メモリコントローラ3は、その物理セグメントについての図17に示すようなアドレス変換テーブルを、その物理セグメント内のそれぞれの物理ブロックから読み出した論理アドレス情報に基づいて作成する。   When a predetermined event related to a certain logical segment occurs at any stage described above (for example, when a data write request for a logical block in the logical segment is received from the host system 4), the memory controller 3 The address translation table for the physical segment associated with the logical segment is created as follows. That is, the memory controller 3 scans all the physical blocks in the physical segment corresponding to the logical segment and stores them in the redundant area 26 of each physical block (for example, the redundant area of the first page of each physical block). Read the additional data (logical address information, block status, etc.). Then, the memory controller 3 creates an address conversion table as shown in FIG. 17 for the physical segment based on the logical address information read from each physical block in the physical segment.

ここで、論理アドレス情報としては、論理ブロックを特定することのできる情報、例えば、LBN、LZIBNを用いることができるが、情報量の少ないLZIBNを用いることが好ましい。尚、LZIBNは、論理ゾーンに含まれる論理ブロックに付与された通し番号なので、物理ゾーン内の全ての物理セグメントが結合された場合であっても、各物理ブロックの冗長領域に、論理アドレス情報として書き込まれているLZIBNに基づいて、各物理ブロックに対応する論理ブロックを特定することができる。仮に、論理アドレス情報として、論理セグメントに含まれる論理ブロックに付与した通し番号を用いるようにした場合には、物理セグメントを結合するときに論理アドレス情報を書き換えなければ、番号が重複して各物理ブロックに対応する論理ブロックを特定することができなくなってしまう。   Here, as the logical address information, information that can specify a logical block, for example, LBN and LZIBN can be used, but it is preferable to use LZIBN with a small amount of information. Since LZIBN is a serial number assigned to the logical block included in the logical zone, even if all the physical segments in the physical zone are combined, it is written as logical address information in the redundant area of each physical block. The logical block corresponding to each physical block can be specified based on the LZIBN. Assuming that the serial number assigned to the logical block included in the logical segment is used as the logical address information, if the logical address information is not rewritten when the physical segments are combined, the number is duplicated. It becomes impossible to specify the logical block corresponding to.

このアドレス変換テーブルには、例えば、図17に示すように、論理セグメントに含まれる各論理ブロックのLZIBNと、各論理ブロックに対応する物理ブロックのPZIBNとが、互いに関連付けられた形で記載される。ここで、論理ブロックに対応する物理ブロックが無い場合、つまり、その論理ブロックに対応するデータがいずれの物理ブロックにも書き込まれていない場合には、その旨を示す情報(図17に示した「無」)がその論理ブロックに関連付けられた形で記載される。例えば、LZIBN#24の論理ブロックに対応するデータは、いずれの物理ブロックにも書き込まれていない。   In this address conversion table, for example, as shown in FIG. 17, the LZIBN of each logical block included in the logical segment and the PZIBN of the physical block corresponding to each logical block are described in association with each other. . Here, when there is no physical block corresponding to the logical block, that is, when data corresponding to the logical block is not written in any physical block, information indicating that fact (“ "No") is described in the form associated with the logical block. For example, data corresponding to the logical block of LZIBN # 24 is not written in any physical block.

メモリコントローラ3は、データの書込み又は読み出しを行う時、上記のようなアドレスレス変換テーブルに記述された論理ブロックと物理ブロックの対応関係に基づいて、論理アドレスを物理アドレスに変換する。空きブロックに対するデータの書込みを行った場合には、そのデータに対応する論理ブロックと物理ブロックの対応関係が変わるので、アドレス変換テーブルを更新する。   When writing or reading data, the memory controller 3 converts a logical address into a physical address based on the correspondence between the logical block and the physical block described in the addressless conversion table as described above. When data is written to an empty block, the correspondence between the logical block and physical block corresponding to the data changes, so the address conversion table is updated.

アドレス変換テーブルは物理セグメントを単位として作成されるから、物理セグメントのサイズが小さいほど、アドレス変換テーブルの作成の処理負担は小さく、メモリアクセスは短時間で終わる。このことを考慮して、第1段階では、物理セグメントのサイズが最小になっている。第1段階で動作することができなくなった場合、つまり、空きブロックを確保することができなくった場合は、第2段階に移行し、更に、第2段階で動作することができなくなった場合は、第3段階に移行する。このように次段階に移行していくことにより、物理セグメントのサイズが段階的に大きくなるから、アドレス変換テーブルの作成の処理負担は増大するが、動作不能になることは回避される。このように、アドレス変換テーブルの作成の処理負担を軽くする要求と、動作不能になることを回避する要求とは、トレードオフの関係にある。本実施形態によれば、動作不能になることを回避するという要求を満たせる範囲内で、アドレス変換テーブルの作成の処理負担をできるだけ軽くするように、物理セグメントのサイズが段階的に調整される。   Since the address translation table is created in units of physical segments, the smaller the size of the physical segment, the smaller the processing load for creating the address translation table, and the memory access ends in a shorter time. Considering this, the size of the physical segment is minimized in the first stage. When it becomes impossible to operate in the first stage, that is, when it becomes impossible to secure an empty block, the process moves to the second stage, and further, when it becomes impossible to operate in the second stage. Then, the process proceeds to the third stage. By moving to the next stage in this way, the size of the physical segment is increased stepwise, so the processing load for creating the address translation table increases, but it is avoided that it becomes inoperable. Thus, there is a trade-off relationship between a request for reducing the processing load for creating the address conversion table and a request for avoiding the inoperability. According to the present embodiment, the size of the physical segment is adjusted stepwise so as to reduce the processing load for creating the address translation table as much as possible within a range that can satisfy the requirement to avoid inoperability.

尚、第2段階で動作することができなくなった場合は、物理ゾーン内の物理セグメントは無くなり、物理ゾーン単位でアドレス変換テーブルが作成される。   If the operation cannot be performed in the second stage, there is no physical segment in the physical zone, and an address conversion table is created for each physical zone.

メモリコントローラ3は、上述したように或る物理セグメント内の全ての物理ブロックの付加データ(論理アドレス情報及びブロックステータスなど)を読み出したとき、アドレス変換テーブルを作成するだけでなく、それぞれの物理ブロックのブロックステータスに基づいて、その物理セグメント内の不良ブロックの個数を把握し、そして、その物理セグメントがもつ空きブロック確保能力のレベル(典型的には、確保できる空きブロックの個数)を把握する。そして、メモリコントローラ3は、把握された空きブロック確保能力のレベルに基づいて、その物理セグメントが通常使用可能か否か(又は、通常使用不能になる可能性が高いか否か)を判断する。この判断の具体的な方法として、例えば次の方法が採用できる。   When the memory controller 3 reads the additional data (logical address information, block status, etc.) of all the physical blocks in a certain physical segment as described above, the memory controller 3 not only creates an address conversion table but also each physical block. Based on the block status, the number of defective blocks in the physical segment is grasped, and the level of the free block securing capability of the physical segment (typically, the number of free blocks that can be secured) is grasped. Then, the memory controller 3 determines whether or not the physical segment is normally usable (or is highly likely to be unusable) based on the grasped level of the free block securing capability. As a specific method of this determination, for example, the following method can be adopted.

すなわち、各段階で1個の物理セグメントに割り当てられる論理ブロックの個数をm(例えば、第1段階では125、第2段階では250、第3段階では500)とし、各段階で1個の物理セグメントに含まれる物理ブロックの個数をn(例えば、第1段階では128、第2段階では256、第3段階では512)とし、予め設定された予備の物理ブロックの最低許容個数をk(例えば1)としたとき、その物理ブロック内の不良ブロックの個数が「n−m−k」個(所定閾値)より多くなったとき、その物理セグメントは通常使用不能(又は、通常使用不能になる可能性が高い)との判断が下され、複数セグメントの結合が行われる。   That is, the number of logical blocks allocated to one physical segment in each stage is m (for example, 125 in the first stage, 250 in the second stage, 500 in the third stage), and one physical segment in each stage. The number of physical blocks included in n is n (eg, 128 in the first stage, 256 in the second stage, 512 in the third stage), and the minimum allowable number of spare physical blocks set in advance is k (eg, 1). When the number of bad blocks in the physical block exceeds “nmk” (predetermined threshold value), the physical segment may not be normally usable (or may not be normally usable). Is determined to be high), and multiple segments are combined.

上記の判断方法は、それぞれの物理ブロックが空きか否か(つまり、データが記憶されているか否か、換言すれば、未使用か否か)が考慮されてないが、別法として、それを考慮に入れることもできる。すなわち、その論理セグメント内の空き(未使用の)論理ブロックの個数が0個になったときに、複数セグメントの結合を行うようにしてもよい。   The above determination method does not take into consideration whether each physical block is empty (that is, whether data is stored, in other words, whether it is unused). It can also be taken into account. That is, when the number of empty (unused) logical blocks in the logical segment becomes 0, a plurality of segments may be combined.

さて、上述した第1の実施形態では、個々の物理ゾーンを複数の物理セグメントに分割し、物理セグメント単位でアドレス変換テーブルを作成するとともに、不良ブロック数が増えると、複数の物理セグメントを結合してより大きい物理セグメントにするという制御が行われた。変形例として、このような物理セグメントに関して行われる制御に代えて、物理ゾーンに対しても同様の制御を行なうようにしてもよい。   In the first embodiment described above, each physical zone is divided into a plurality of physical segments, an address conversion table is created in units of physical segments, and when the number of defective blocks increases, a plurality of physical segments are combined. Control to make the physical segment larger. As a modification, the same control may be performed on the physical zone instead of the control performed on the physical segment.

そのような制御を物理ゾーンに対して行なうようにした本発明に従う第2の実施形態について、次に説明する。   Next, a second embodiment according to the present invention in which such control is performed on the physical zone will be described.

この第2の実施形態では、物理ゾーン内を物理セグメントに分割せずに、物理ゾーン単位でアドレス変換テーブルを作成する。また、初期段階では、物理ゾーンのサイズが最小になっており、物理ゾーン内で空きブロックを確保することができなくった場合は、複数個の物理ゾーンを結合させて次段階に移行する。   In the second embodiment, the address conversion table is created for each physical zone without dividing the physical zone into physical segments. Further, in the initial stage, the size of the physical zone is minimized, and when an empty block cannot be secured in the physical zone, a plurality of physical zones are combined to move to the next stage.

以下に説明する第2の実施形態では、第1段階(初期段階)のときに64個の物理ゾーンが有り、各物理ゾーンには128個の物理ブロックが含まれている。第1段階(初期段階)から第2段階に移行するときに、物理ゾーンの個数が64個から32個に減少し、各物理ゾーンに含まれる物理ブロックの個数は128個から256個に増加する。第2段階から第3段階に移行するときに、物理ゾーンの個数が32個から16個に減少し、各物理ゾーンに含まれる物理ブロックの個数は256個から512個に増加する。   In the second embodiment described below, there are 64 physical zones in the first stage (initial stage), and each physical zone includes 128 physical blocks. When shifting from the first stage (initial stage) to the second stage, the number of physical zones decreases from 64 to 32, and the number of physical blocks included in each physical zone increases from 128 to 256. . When shifting from the second stage to the third stage, the number of physical zones decreases from 32 to 16, and the number of physical blocks included in each physical zone increases from 256 to 512.

論理ゾーンの個数は、第1段階(初期段階)のときの物理ゾーンの個数と同じ64個であり、各論理ゾーンには125個の論理ブロックが含まれている。第1段階(初期段階)では、1個の物理ゾーンに対して1個の論理ゾーンが対応付けられ、第2段階では、1個の物理ゾーンに対して2個の論理ゾーンが対応付けられ、第3段階では、1個の物理ゾーンに対して4個の論理ゾーンが対応付けられる。   The number of logical zones is 64, which is the same as the number of physical zones in the first stage (initial stage), and each logical zone includes 125 logical blocks. In the first stage (initial stage), one logical zone is associated with one physical zone, and in the second stage, two logical zones are associated with one physical zone, In the third stage, four logical zones are associated with one physical zone.

<第1段階の説明>
図18は、第1段階における物理ゾーンと論理ゾーンのとの対応関係を示している(図18には、LZN#0〜#7の論理ゾーンと、これらの論理ゾーンに対応付けられる物理ゾーンだけが示されている)。
<Description of the first stage>
FIG. 18 shows the correspondence between the physical zones and logical zones in the first stage (in FIG. 18, only the logical zones LZN # 0 to # 7 and the physical zones associated with these logical zones are shown. It is shown).

図18に示したように、128個の物理ブロックが含まれる1個の物理ゾーンには、125個の論理ブロックが含まれる1個の論理ゾーンが対応付けられている。例えば、PZN#0の物理ゾーンにはLZN#0の論理ゾーンが対応付けられ、PZN#1の物理ゾーンにはLZN#1の論理ゾーンが対応付けられ、PZN#2の物理ゾーンにはLZN#2の論理ゾーンが対応付けられている。   As shown in FIG. 18, one physical zone including 125 physical blocks is associated with one physical zone including 128 physical blocks. For example, the physical zone of PZN # 0 is associated with the logical zone of LZN # 0, the physical zone of PZN # 1 is associated with the logical zone of LZN # 1, and the physical zone of PZN # 2 is associated with LZN #. Two logical zones are associated.

図18の(a)に示したように、論理アドレス空間は、第1の実施形態の場合と同様に、連続するLBNをもつ論理ブロックが、異なる論理ゾーンに分散するように振り分けられている。第2の実施形態では、論理ゾーンの個数が2個(64個)なので、LBNの下位6ビットの値に基づいて論理ブロックの振り分けが行われる。つまり、図19Aに示したように、LBNの下位6ビットが振り分け先の論理ゾーンのLZNに対応する。 As shown in FIG. 18A, the logical address space is distributed so that logical blocks having consecutive LBNs are distributed in different logical zones, as in the case of the first embodiment. In the second embodiment, since the number of logical zones is 26 (64), logical blocks are allocated based on the value of the lower 6 bits of LBN. That is, as shown in FIG. 19A, the lower 6 bits of the LBN correspond to the LZN of the logical zone of the distribution destination.

図18の(b)に示したように、物理アドレス空間は、2個(64個)の物理ゾーンに分割され、各物理ゾーンにはPBAが連続する2個(128個)の物理ブロックが含まれている。つまり、図19Bに示したように、PBAの下位7ビットを除いた上位ビット、つまり、PBAの上位6ビットが、各物理ブロックが含まれる物理ゾーンのPZNに対応している。 As shown in (b) of FIG. 18, the physical address space, 2 6 are divided into physical zones (64), the physical block of 2 seven that PBA is continuous because each zone (128) It is included. That is, as shown in FIG. 19B, the upper bits excluding the lower 7 bits of the PBA, that is, the upper 6 bits of the PBA correspond to the PZN of the physical zone in which each physical block is included.

<第2段階の説明>
その後、少なくとも1個の物理ゾーンが、所定の結合レベルに達したときに第2段階に移行する。この所定の結合レベルとしては、物理ゾーン内の不良ブロックの個数が所定の個数に達したとき又は物理セグメント内で空きブロックを確保することができなくなったとき等が挙げられる。
<Explanation of the second stage>
Thereafter, when at least one physical zone reaches a predetermined coupling level, the second stage is entered. Examples of the predetermined combination level include when the number of defective blocks in the physical zone reaches a predetermined number, or when it becomes impossible to secure an empty block in the physical segment.

図20は、第2段階における物理ゾーンと論理ゾーンのとの対応関係を示している(図20には、LZN#0〜#7の論理ゾーンと、これらの論理ゾーンに対応付けられる物理ゾーンだけが示されている)。   FIG. 20 shows the correspondence between the physical zones and the logical zones in the second stage (in FIG. 20, only the logical zones LZN # 0 to # 7 and the physical zones associated with these logical zones are shown. It is shown).

第1段階から第2段階に移行するときに、物理ゾーンが2個ずつ結合されるため、物理ゾーンの個数は2個(32個)になり、各物理ゾーンに含まれる物理ブロックの個数は2個(256個)個になる。 When the transition from the first stage to the second stage, because the physical zones are coupled two by two, the number of physical zones becomes 2 5 (32), the number of physical blocks included in each physical zone 2 It becomes 8 pieces (256 pieces).

第2段階では、1個の物理ゾーンに対して2個の物理ゾーンが対応付けられる。例えば、PZN#0とPZN#1の物理ゾーンを結合させたPZN’#0の物理ゾーンには、GN(グループ番号)#0に対応するLZN#0とLZN#1の論理ゾーンが対応付けられ、PZN#2とPZN#3の物理ゾーンを結合させたPZN’#1の物理ゾーンには、GN(グループ番号)#1に対応するLZN#2とLZN#3の論理ゾーンが対応付けられる。   In the second stage, two physical zones are associated with one physical zone. For example, the physical zone of PZN '# 0 that combines the physical zones of PZN # 0 and PZN # 1 is associated with the logical zones of LZN # 0 and LZN # 1 corresponding to GN (group number) # 0. The physical zone of PZN ′ # 1 obtained by combining the physical zones of PZN # 2 and PZN # 3 is associated with the logical zones of LZN # 2 and LZN # 3 corresponding to GN (group number) # 1.

ここで、GN(グループ番号)は、図21Aに示したように、LZNの上位5ビット、つまり、LBNの下位側から数えて2ビット目から6ビット目までのビットが示す値に対応する。PZN’は、図21Bに示したように、PBAの下位8ビットを除いた上位ビット、つまり、PBAの上位5ビットが示す値に対応する。   Here, GN (group number) corresponds to the value indicated by the upper 5 bits of LZN, that is, the bits from the 2nd bit to the 6th bit counted from the lower side of LBN, as shown in FIG. 21A. As shown in FIG. 21B, PZN ′ corresponds to the upper bits excluding the lower 8 bits of PBA, that is, the value indicated by the upper 5 bits of PBA.

<第3段階の説明>
第2段階に移行後、少なくとも1個の物理ゾーンが、所定の結合レベルに達したときに第3段階に移行する。この所定の結合レベルとしては、物理ゾーン内の不良ブロックの個数が所定の個数に達したとき又は物理セグメント内で空きブロックを確保することができなくなったとき等が挙げられる。
<Explanation of the third stage>
After the transition to the second stage, the transition to the third stage is made when at least one physical zone reaches a predetermined coupling level. Examples of the predetermined combination level include when the number of defective blocks in the physical zone reaches a predetermined number, or when it becomes impossible to secure an empty block in the physical segment.

図22は、第3段階における物理ゾーンと論理ゾーンのとの対応関係を示している(図22には、LZN#0〜#7の論理ゾーンと、これらの論理ゾーンに対応付けられる物理ゾーンだけが示されている)。   FIG. 22 shows the correspondence between the physical zones and logical zones in the third stage (in FIG. 22, only the logical zones LZN # 0 to # 7 and the physical zones associated with these logical zones are shown. It is shown).

第2段階から第3段階に移行するときに、物理ゾーンが2個ずつ結合されるため、物理ゾーンの個数は2個(16個)になり、各物理ゾーンに含まれる物理ブロックの個数は2個(512個)個になる。 When the transition from the second stage to the third stage, the physical zone is coupled two by two, the number of physical zones becomes 2 4 (16), the number of physical blocks included in each physical zone 2 It will be 9 (512).

第3段階では、1個の物理ゾーンに対して4個の物理ゾーンが対応付けられる。例えば、PZN’#0とPZN’#1の物理ゾーンを結合させたPZN”#0の物理ゾーン(PZN#0〜#3の物理ゾーンを結合させたPZN”#0の物理ゾーン)には、GN’(グループ番号)#0に対応するLZN#0〜#3の論理ゾーンが対応付けられ、PZN’#2とPZN’#3の物理ゾーンを結合させたPZN”#1の物理ゾーン(PZN#4〜#7の物理ゾーンを結合させたPZN”#1の物理ゾーン)には、GN’(グループ番号)#1に対応するLZN#4〜#7の論理ゾーンが対応付けられる。   In the third stage, four physical zones are associated with one physical zone. For example, PZN "# 0 physical zone (PZN" # 0 physical zone combined with PZN # 0 to # 3 physical zones) that combines PZN '# 0 and PZN' # 1 physical zones, A physical zone (PZN) of PZN ″ # 1 in which the physical zones of LZN # 0 to # 3 corresponding to GN ′ (group number) # 0 are associated and the physical zones of PZN ′ # 2 and PZN ′ # 3 are combined. The logical zones of LZN # 4 to # 7 corresponding to GN ′ (group number) # 1 are associated with PZN ″ # 1 physical zone obtained by combining the physical zones of # 4 to # 7.

ここで、GN’(グループ番号)は、図23Aに示したように、LZNの上位4ビット、つまり、LBNの下位側から数えて3ビット目から6ビット目までのビットが示す値に対応する。PZN”は、図23Bに示したように、PBAの下位9ビットを除いた上位ビット、つまり、PBAの上位4ビットが示す値に対応する。   Here, GN ′ (group number) corresponds to the value indicated by the upper 4 bits of LZN, that is, the bits from the 3rd bit to the 6th bit counted from the lower side of LBN, as shown in FIG. 23A. . As shown in FIG. 23B, PZN ″ corresponds to the upper bits excluding the lower 9 bits of PBA, that is, the value indicated by the upper 4 bits of PBA.

尚、LZIBNは各論理ゾーン内での通し番号なので、論理アドレス情報としてLZIBNを用いた場合、同じ物理ゾーンに複数個の論理ゾーンが対応つけられたときに、物理ゾーンに含まれる物理ブロックと対応する論理ブロックが、いずれの論理ゾーンに含まれる論理ブロックであるかを判別するこができなくなってしまう。従って、同じ物理ゾーンに対応つけられ可能性のある複数個の論理ゾーンに含まれる論理ブロックに、重複しない通し番号(以下、LBI(論理ブロックインデックス)と言う)を付与し、付与したLBIを論理アドレス情報として用いることが好ましい。この第2の実施形態の場合には、例えば、LBNの上位7ビットにLBNの下位2ビットを連結したものを、LBIとすればよい。   Since LZIBN is a serial number in each logical zone, when LZIBN is used as logical address information, when a plurality of logical zones are associated with the same physical zone, it corresponds to a physical block included in the physical zone. It becomes impossible to determine which logical zone the logical block is included in. Therefore, a non-overlapping serial number (hereinafter referred to as LBI (logical block index)) is assigned to a logical block included in a plurality of logical zones that may be associated with the same physical zone, and the assigned LBI is assigned a logical address. It is preferably used as information. In the case of the second embodiment, for example, the LBI may be a combination of the upper 7 bits of the LBN and the lower 2 bits of the LBN.

尚、本発明の第1の実施形態及び第2の実施形態で説明したように、各段階で1個のアドレス変換テーブルによってカバーされる領域が異なっている。つまり、第1の実施形態では、各段階で物理セグメントのサイズ(物理セグメントに含まれる物理ブロックの個数)が異なり、第2の実施形態では、各段階で物理ゾーンのサイズ(物理ゾーンに含まれる物理ブロックの個数)が異なる。従って、現在、どの段階で動作しているかを示す情報(以下、物理アドレス空間管理情報という)、をフラッシュメモリ内の特定の物理ブロックに記憶しておくことが好ましい。そして、次段階に移行したときは、この物理アドレス空間管理情報を書き換えるようにすればよい。第1の実施形態の場合は、例えば、物理ゾーン内の物理セグメントの個数を物理アドレス空間管理情報として記憶しておけばよい。第2の実施形態の場合は、例えば、物理ゾーンの個数を物理アドレス空間管理情報として記憶しておけばよい。   As described in the first embodiment and the second embodiment of the present invention, the areas covered by one address conversion table are different at each stage. That is, in the first embodiment, the size of the physical segment (the number of physical blocks included in the physical segment) differs at each stage, and in the second embodiment, the size of the physical zone (included in the physical zone) at each stage. The number of physical blocks is different. Therefore, it is preferable to store information indicating what stage is currently operating (hereinafter referred to as physical address space management information) in a specific physical block in the flash memory. Then, when the next stage is entered, the physical address space management information may be rewritten. In the case of the first embodiment, for example, the number of physical segments in the physical zone may be stored as physical address space management information. In the case of the second embodiment, for example, the number of physical zones may be stored as physical address space management information.

以上、本発明の2つの実施形態について説明したが、これらは本発明の説明のための例示であり、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。従って、本発明は、その要旨を逸脱することなく、上述した実施形態以外の態様でも実施することが可能である。   As mentioned above, although two embodiment of this invention was described, these are the illustrations for description of this invention, and are not the meaning which limits the scope of the present invention only to these embodiment. Therefore, the present invention can be implemented in modes other than the above-described embodiments without departing from the gist thereof.

本発明の第一の実施形態に従うフラッシュメモリシステム1の全体構成を示すブロック図。1 is a block diagram showing an overall configuration of a flash memory system 1 according to a first embodiment of the present invention. フラッシュメモリ2内のメモリセルアレイの物理アドレス空間の構成を示す図。2 is a diagram showing a configuration of a physical address space of a memory cell array in the flash memory 2. FIG. メモリコントローラ3とホストシステム4とが共有する論理アドレス空間における論理ゾーンと論理ブロックの構成を示す図。FIG. 3 is a diagram showing a configuration of logical zones and logical blocks in a logical address space shared by a memory controller 3 and a host system 4. LBA(論理ブロックアドレス)のビット構造を示す図。The figure which shows the bit structure of LBA (logical block address). 論理ゾーンと物理ゾーン及び物理ブロックの対応関係を示す。The correspondence relationship between logical zones, physical zones, and physical blocks is shown. PBN(物理ブロック番号)のビット構造を示す図。The figure which shows the bit structure of PBN (physical block number). 個々の物理ブロックの構成を示す図。The figure which shows the structure of each physical block. LSNとPSNのビット構造を示す図。The figure which shows the bit structure of LSN and PSN. 論理アドレス空間上で定義される論理セグメントの構成を示すブロック図。The block diagram which shows the structure of the logical segment defined on a logical address space. 第1段階から第3段階におけるLBNのビット構造を示す図。The figure which shows the bit structure of LBN in the 1st step to the 3rd step. 第1段階における論理セグメントと物理セグメントとの対応関係を示す図。The figure which shows the correspondence of the logical segment and physical segment in a 1st step. 第1段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 1st step. 第2段階における論理セグメントと物理セグメントとの対応関係を示す図。The figure which shows the correspondence of the logical segment and physical segment in a 2nd step. 第2段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 2nd step. 第3段階における論理セグメントと物理セグメントとの対応関係を示す図。The figure which shows the correspondence of the logical segment and physical segment in a 3rd step. 第3段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 3rd step. メモリコントローラ3が作成するアドレス変換テーブルの構成例を示す図。The figure which shows the structural example of the address conversion table which the memory controller 3 produces. 第1段階における論理ゾーンと物理ゾーンとの対応関係を示す図。The figure which shows the correspondence of the logical zone and physical zone in a 1st step. 第1段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 1st step. 第2段階における論理ゾーンと物理ゾーンとの対応関係を示す図。The figure which shows the correspondence of the logical zone and physical zone in a 2nd step. 第2段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 2nd step. 第3段階における論理ゾーンと物理ゾーンとの対応関係を示す図。The figure which shows the correspondence of the logical zone and physical zone in a 3rd step. 第3段階におけるLBNとPBAのビット構造を示す図。The figure which shows the bit structure of LBN and PBA in a 3rd step.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
13 外部バス
14 内部バス
25 ユーザ領域
26 冗長領域
31 単位領域管理部
32 アドレス管理部
33 物理領域結合部
DESCRIPTION OF SYMBOLS 1 Flash memory system 2 Flash memory 3 Memory controller 4 Host system 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 13 External bus 14 Internal bus 25 User area 26 Redundant area 31 Unit area management part 32 Address management Part 33 Physical area coupling part

Claims (8)

ホストシステムから与えられる論理セクタ単位の論理アドレスに基づいて、物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
各々が複数個の前記論理セクタの集合である複数個の単位論理領域と、各々が複数個の前記物理ブロックの集合である複数個の単位物理領域との対応関係を管理する単位領域管理手段と、
各単位論理領域に含まれる論理アドレスと、前記各単位論理領域と対応する各単位物理領域に含まれる物理アドレスとの対応管理するアドレス管理手段と、
2個以上の前記単位物理領域を結合させて拡大された単位物理領域にする物理領域結合手段と
を備え、
前記単位領域管理手段は、結合後の前記拡大された単位物理領域に対して、結合前の前記2個以上の前記単位物理領域と対応していた2個以上の前記単位論理領域を対応させる、
メモリコントローラ。
A memory controller that controls access to a flash memory that is erased in physical block units based on logical addresses in logical sector units given from a host system,
Unit area management means for managing a correspondence relationship between a plurality of unit logical areas, each of which is a set of a plurality of logical sectors, and a plurality of unit physical areas, each of which is a set of a plurality of physical blocks; ,
Address management means for managing the correspondence between the logical address included in each unit logical area and the physical address included in each unit physical area corresponding to each unit logical area;
A physical region combining means that combines two or more unit physical regions into an expanded unit physical region;
The unit area management means associates two or more unit logical areas corresponding to the two or more unit physical areas before combination with the expanded unit physical area after combination.
Memory controller.
前記物理領域結合手段によって結合される前記2個以上の前記単位物理領域のうちの少なくとも1個の前記単位物理領域には、予め設定された設定個数以上の不良ブロックが含まれる、
請求項1記載のメモリコントローラ。
At least one unit physical area of the two or more unit physical areas combined by the physical area combining means includes a preset number of defective blocks or more.
The memory controller according to claim 1.
前記複数個の単位物理領域の個数と前記物理領域結合手段によって結合される前記2個以上の前記単位物理領域の個数が、いずれも2のべき乗で与えられる数値である、
請求項1又は2に記載のメモリコントローラ。
The number of the plurality of unit physical regions and the number of the two or more unit physical regions combined by the physical region combining means are both numerical values given as powers of 2.
The memory controller according to claim 1 or 2.
論理アドレス空間にて連続する複数個の前記論理ブロック領域を、前記複数個の前記単位論理領域に対して分散的に含ませる論理ブロック領域分散手段を備え、
前記論理ブロック領域の各々には、前記論理アドレスが連続する複数個の前記論理セクタが含まれ、
前記論理ブロック領域に属する前記論理セクタの個数及び前記複数個の前記単位論理領域の個数が、いずれも2のべき乗で与えられる数値である、
請求項1乃至3に記載のメモリコントローラ。
Logical block area distribution means for distributing a plurality of logical block areas continuous in a logical address space to the plurality of unit logical areas;
Each of the logical block areas includes a plurality of the logical sectors in which the logical addresses are continuous,
The number of the logical sectors belonging to the logical block area and the number of the plurality of unit logical areas are both numerical values given as powers of 2.
The memory controller according to claim 1.
前記論理ブロック領域に属する前記論理セクタの個数を2個とし、前記複数個の前記単位論理領域の個数を2個としたときに、前記論理セクタの前記論理アドレスの下位側から数えてi+1ビット目からi+jビット目までのビットの値に基づいて、該論理セクタが属する前記論理ブロック領域が含まれる前記単位論理領域と、該単位論理領域に対応する前記単位物理領域とを識別する、
請求項4記載のメモリコントローラ。
When the number of the logical sectors belonging to the logical block area is 2 i and the number of the plurality of unit logical areas is 2 j , i + 1 counted from the lower side of the logical address of the logical sector Identifying the unit logical area including the logical block area to which the logical sector belongs and the unit physical area corresponding to the unit logical area based on the value of the bit from the bit to the i + jth bit.
The memory controller according to claim 4.
物理ブロック単位で消去が行われるフラッシュメモリと、
請求項1乃至5のいずれか1項に記載のメモリコントローラを備えるフラッシュメモリシステム。
Flash memory that is erased in physical block units,
A flash memory system comprising the memory controller according to claim 1.
ホストシステムから与えられる論理セクタ単位の論理アドレスに基づいて、物理ブロック単位で消去が行われるフラッシュメモリに対するアクセスを制御する方法であって、
各々が複数個の前記論理セクタの集合である複数個の単位論理領域と、各々が複数個の前記物理ブロックの集合である複数個の単位物理領域との対応関係を管理するステップと、
各単位論理領域に含まれる論理アドレスと、前記各単位論理領域に対応する各単位物理領域に含まれる物理アドレスとの対応関係を管理するステップと、
2個以上の前記単位物理領域を結合させて拡大された単位物理領域にするステップと、
結合後の前記拡大された単位物理領域に対して、結合前の前記2個以上の前記単位物理領域に対応していた2個以上の個数の前記単位論理領域を対応させるステップと
を有するフラッシュメモリの制御方法。
A method for controlling access to a flash memory to be erased in physical block units based on logical addresses in logical sector units given from a host system,
Managing a correspondence relationship between a plurality of unit logical areas, each of which is a set of a plurality of logical sectors, and a plurality of unit physical areas, each of which is a set of a plurality of physical blocks;
Managing a correspondence relationship between a logical address included in each unit logical area and a physical address included in each unit physical area corresponding to each unit logical area;
Combining two or more unit physical areas into an expanded unit physical area;
A step of associating two or more unit logical areas corresponding to the two or more unit physical areas before combination with the expanded unit physical area after combination. Control method.
前記各単位物理領域内の空きブロックの有無を判断するステップをさらに有し、
前記各単位物理領域内に空きブロックが無いと判断されたときに、前記2個以上の前記単位物理領域の結合が行われる、
請求項7記載の制御方法。
Determining whether or not there is a free block in each unit physical area;
When it is determined that there is no empty block in each unit physical area, the two or more unit physical areas are combined.
The control method according to claim 7.
JP2007067471A 2007-03-15 2007-03-15 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Active JP4661809B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007067471A JP4661809B2 (en) 2007-03-15 2007-03-15 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007067471A JP4661809B2 (en) 2007-03-15 2007-03-15 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2008226188A true JP2008226188A (en) 2008-09-25
JP4661809B2 JP4661809B2 (en) 2011-03-30

Family

ID=39844664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007067471A Active JP4661809B2 (en) 2007-03-15 2007-03-15 MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP4661809B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360100B2 (en) 2015-09-16 2019-07-23 Kabushiki Kaisha Toshiba Cache memory system and processor system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141419A (en) * 2003-11-05 2005-06-02 Tdk Corp Memory controller and flash memory system therewith
JP2005190289A (en) * 2003-12-26 2005-07-14 Tdk Corp Memory controller, flash memory system therewith, and method for controlling flash memory
WO2007013372A1 (en) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile memory, nonvolatile memory system, and nonvolatile memory address management method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141419A (en) * 2003-11-05 2005-06-02 Tdk Corp Memory controller and flash memory system therewith
JP2005190289A (en) * 2003-12-26 2005-07-14 Tdk Corp Memory controller, flash memory system therewith, and method for controlling flash memory
WO2007013372A1 (en) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile memory, nonvolatile memory system, and nonvolatile memory address management method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360100B2 (en) 2015-09-16 2019-07-23 Kabushiki Kaisha Toshiba Cache memory system and processor system

Also Published As

Publication number Publication date
JP4661809B2 (en) 2011-03-30

Similar Documents

Publication Publication Date Title
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US8312203B2 (en) Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses
US7797481B2 (en) Method and apparatus for flash memory wear-leveling using logical groups
TWI440042B (en) Semiconductor storage device and storage controlling method
US8214579B2 (en) Memory controller, flash memory system with memory controller, and method of controlling flash memory
JP4632180B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2011203916A (en) Memory controller and semiconductor storage device
JP2005301591A (en) Device with nonvolatile memory, and memory controller
WO2007013372A1 (en) Memory controller, nonvolatile memory, nonvolatile memory system, and nonvolatile memory address management method
JP4666081B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US20140075099A1 (en) Control method and memory system of non-volatile semiconductor memory
JP5093294B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4702387B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4743174B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JP4737223B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4661809B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4582232B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4840415B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4687720B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4241741B2 (en) Memory controller and flash memory system
JP2012068764A (en) Memory controller, nonvolatile memory system with memory controller, and control method of nonvolatile memory
JP2010086106A (en) Memory controller, flash memory system with memory controller, and method for controlling flash memory
JP4636046B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
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: 20101025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101029

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4661809

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

Year of fee payment: 3