JP4241741B2 - Memory controller and flash memory system - Google Patents

Memory controller and flash memory system Download PDF

Info

Publication number
JP4241741B2
JP4241741B2 JP2006021958A JP2006021958A JP4241741B2 JP 4241741 B2 JP4241741 B2 JP 4241741B2 JP 2006021958 A JP2006021958 A JP 2006021958A JP 2006021958 A JP2006021958 A JP 2006021958A JP 4241741 B2 JP4241741 B2 JP 4241741B2
Authority
JP
Japan
Prior art keywords
physical
zone
block
logical
flash memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006021958A
Other languages
Japanese (ja)
Other versions
JP2007206774A (en
Inventor
健三 木田
武志 鴨野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Corp
Original Assignee
TDK Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TDK Corp filed Critical TDK Corp
Priority to JP2006021958A priority Critical patent/JP4241741B2/en
Publication of JP2007206774A publication Critical patent/JP2007206774A/en
Application granted granted Critical
Publication of JP4241741B2 publication Critical patent/JP4241741B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

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

近年、不揮発性の記憶媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。   In recent years, flash memory, which is a non-volatile storage medium, has been actively developed and is widely used as a storage medium for information devices (host systems) such as digital cameras.

このような機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。このように大容量化したフラッシュメモリの記憶領域を円滑に管理するため、近年は、この記憶領域を複数のゾーンに分割して管理する手法が用いられている(例えば特許文献1を参照)。   As the data handled by such devices has increased in capacity, the storage capacity of flash memory has also increased. In order to smoothly manage the storage area of the flash memory having such a large capacity, a method of managing the storage area by dividing it into a plurality of zones has been used in recent years (see, for example, Patent Document 1).

従来の複数のゾーンを有するフラッシュメモリの記憶領域を、より具体的に示せば、例えば図8に示す形に区画され、管理されていた。   More specifically, the storage area of the conventional flash memory having a plurality of zones is partitioned and managed in the form shown in FIG. 8, for example.

すなわち、データの物理的な読み書きの単位であるページを所定数含んだ、データ消去の単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれに固有の物理ゾーン番号(PZN)が割り当てられる。図8の例では、計2048個の物理ブロックに#0〜#2047の連続するPBAが割り当てられており、PBA#0〜#511の計512個の物理ブロックがPZN#0の物理ゾーンに属し、PBA#512〜#1023の計512個の物理ブロックがPZN#1の物理ゾーンに属し、PBA#1024〜#1535の計512個の物理ブロックがPZN#2の物理ゾーンに属し、PBA#1536〜#2047の計512個の物理ブロックがPZN#3の物理ゾーンに属する。つまり、従来はPBAが連続する物理ブロックを、ゾーンに含まれる物理ブロックの全個数単位で各物理ゾーンに振り分けていた。   That is, a specific physical block address (PBA) is assigned to each physical block that is a unit of data erasing and includes a predetermined number of pages that are units of physical data reading and writing. Each physical block is classified into one of a plurality of physical zones, and a unique physical zone number (PZN) is assigned to each physical zone. In the example of FIG. 8, a total of 2048 physical blocks are assigned consecutive PBAs # 0 to # 2047, and a total of 512 physical blocks PBA # 0 to # 511 belong to the physical zone of PZN # 0. , PBA # 512 to # 1023 total 512 physical blocks belong to PZN # 1 physical zone, and PBA # 1024 to # 1535 total 512 physical blocks belong to PZN # 2 physical zone, PBA # 1536 A total of 512 physical blocks of ˜ # 2047 belong to the physical zone of PZN # 3. In other words, conventionally, physical blocks having continuous PBAs are allocated to each physical zone in units of the total number of physical blocks included in the zone.

また、各ページには物理ページアドレス(PPA)が割り当てられている。PPAは、ページが属する物理ブロックのPBAの下位に、当該物理ブロック内での当該ページの通番であるページ番号(PN)を付加した形をとっている。   Each page is assigned a physical page address (PPA). The PPA has a form in which a page number (PN), which is a serial number of the page in the physical block, is added to the lower level of the PBA of the physical block to which the page belongs.

一方、ホストシステム側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に、複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。又、論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。又、各論理ゾーンに含まれる論理ブロックの、各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。   On the other hand, the address space on the host system side is managed by an LBA (Logical Block Address) which is a serial number assigned to an area divided in units of sectors (512 bytes). Further, a group of a plurality of sectors is called a logical block, and a group of a plurality of logical blocks is called a logical zone. The serial number assigned to the logical block is called a logical block number (LBN), and the serial number assigned to the logical zone is called a logical zone number (LZN). Further, the serial number in each logical zone of the logical block included in each logical zone is called a logical zone block number (LZIBN).

従って、各論理ゾーンに含まれる論理ブロック数をnとした場合、LBNをnで割ったときの商がLZNに対応し、余りがLZIBNに対応する。   Therefore, when the number of logical blocks included in each logical zone is n, the quotient when LBN is divided by n corresponds to LZN, and the remainder corresponds to LZIBN.

又、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。更に、データが書き込まれた物理ブロックの冗長領域には、そのデータに対応する論理ブロックのLZIBN(又は、LBN)が書き込まれる。   In addition, one physical zone is allocated to each logical zone, and data corresponding to each logical block included in the logical zone is written to a physical block included in the physical zone allocated to the logical zone. Further, LZIBN (or LBN) of the logical block corresponding to the data is written in the redundant area of the physical block in which the data is written.

なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。このアドレス変換テーブルは論理ゾーン毎に作成することができる。つまり、論理ゾーンと物理ゾーンとの対応関係は予め設定されているので、データが書き込まれている物理ブロックの冗長領域に書き込まれているLZIBNを参照することによりアドレス変換テーブルを作成することができる。   Note that the correspondence between the physical block and the logical block changes every time data is written or erased. Therefore, an address conversion table is created in order to manage the correspondence between the two at each time point, and the address conversion table is updated each time the correspondence changes. This address conversion table can be created for each logical zone. That is, since the correspondence between the logical zone and the physical zone is set in advance, the address conversion table can be created by referring to the LZIBN written in the redundant area of the physical block in which the data is written. .

ここで、冗長領域に書き込まれる論理ブロックを特定する情報(以下、論理アドレス情報という。)は、LBNであってもアドレス変換テーブルを作成することができるが、一般的にはデータ量の少ないLZIBNが論理アドレス情報として冗長領域に書き込まれる。   Here, even if the information (hereinafter referred to as logical address information) specifying the logical block to be written in the redundant area is LBN, an address conversion table can be created, but generally LZIBN with a small amount of data is used. Is written in the redundant area as logical address information.

通常、各論理ゾーンには、LBAが連続する複数のセクタが割り当てられる。図8の例では、LZN#0の論理ゾーンにLBA#0〜#15999のセクタが、LZN#1の論理ゾーンにLBA#16000〜#31999のセクタが、LZN#2の論理ゾーンにLBA#32000〜#47999のセクタが、LZN#3の論理ゾーンにLBA#48000〜#63999のセクタが、それぞれ割り当てられている。なお、この例では、フラッシュメモリの1個のページが1個のセクタに対応し、各物理ブロックは、32個のページで構成されている。   Normally, a plurality of sectors with consecutive LBAs are assigned to each logical zone. In the example of FIG. 8, LBA # 0 to # 15999 sectors are in the LZN # 0 logical zone, LBA # 16000 to # 31999 sectors are in the LZN # 1 logical zone, and LBA # 32000 is in the LZN # 2 logical zone. ... To # 47999, and LBA # 48000 to # 63999 are assigned to the logical zone of LZN # 3, respectively. In this example, one page of the flash memory corresponds to one sector, and each physical block is composed of 32 pages.

各論理ゾーンに割り当てられた16000個のセクタは、論理ゾーン内でLBAが連続する32個のセクタ単位で論理ブロックとして管理されている。従って、言い換えれば、LBAが連続する32個のセクタを論理ブロックとして、LBNが連続する論理ブロックを各論理ゾーンに500個(LZIBN#0〜#499)ずつ割り当てている。ここで、論理ブロックに含まれるセクタ数については、1個の論理ブロックと1個又は複数個の物理ブロックの容量が一致するよう適宜設定される。又、物理ブロックの各ページにはLBAの順番でデータが格納されるので、各論理ゾーンに含まれる論理ブロックと、その論理ゾーンに対応する物理ゾーンに含まれる物理ブロックとの対応関係に基づいて、フラッシュメモリ内のアクセス先を特定することができる。
特開2005−18490号公報
The 16000 sectors assigned to each logical zone are managed as logical blocks in units of 32 sectors in which LBAs are continuous in the logical zone. Therefore, in other words, 32 sectors with consecutive LBAs are assigned as logical blocks, and 500 logical blocks with consecutive LBNs (LZIBN # 0 to # 499) are assigned to each logical zone. Here, the number of sectors included in the logical block is set as appropriate so that the capacities of one logical block and one or a plurality of physical blocks coincide. Since each page of physical blocks stores data in LBA order, it is based on the correspondence between the logical blocks included in each logical zone and the physical blocks included in the physical zone corresponding to the logical zone. The access destination in the flash memory can be specified.
JP 2005-18490 A

しかしながら、フラッシュメモリ内のPBAが連続する物理ブロックを、全個数単位で各物理ゾーンに振り分けた場合、特定の領域に不良ブロックが集中したときに、その領域の振り分け先の物理ゾーンで必要とされる良品ブロックの必要数を確保できなくなることがあった。   However, if physical blocks with continuous PBA in the flash memory are allocated to each physical zone in units of all, when bad blocks are concentrated in a specific area, it is required in the physical zone to which the area is allocated. The required number of good blocks could not be secured.

本発明は上記の実情に鑑みてなされたもので、特定の領域に不良ブロックが集中したときでも特定の物理ゾーンに不良ブロックが集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and a memory controller capable of avoiding the concentration of defective blocks in a specific physical zone even when the defective blocks are concentrated in a specific area, and a flash memory including the memory controller The purpose is to provide a system.

上記目的を達成するため、本発明のメモリコントローラは、
ホストシステムからの命令に応答して、物理ブロック単位で記憶データの消去が行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリ内の物理ブロックを、物理ブロックの物理ブロックアドレスの順番で1個ずつ、2のべき乗個の物理ゾーンに振り分けることにより、複数個の物理ブロックが含まれる前記物理ゾーンを2のべき乗個形成する物理ゾーン形成手段と、
前記ホストシステム側のアドレス空間における論理アドレスが連続する複数セクタの領域が含まれる論理ブロックを複数集めた論理ゾーンを前記物理ゾーンの個数と同数形成する論理ゾーン形成手段と、
前記物理ゾーンと前記論理ゾーンとの対応関係を、前記物理ゾーンに付けられた0から始まる通し番号である物理ゾーン番号と前記論理ゾーンに付けられた0から始まる通し番号である論理ゾーン番号との対応関係により管理するゾーン管理手段と、
相互に対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を、前記物理ゾーン内の物理ブロックに付けられた0から始まる通し番号である物理ゾーン内ブロック番号と前記論理ゾーン内の論理ブロックに付けられた0から始まる通し番号である論理ゾーン内ブロック番号との対応関係により管理するアドレス管理手段と、
前記ホストシステムから与えられる命令に応答して、フラッシュメモリにアクセスするアクセス手段とを備え
前記アクセス手段は、前記物理ゾーン番号と前記論理ゾーン番号との対応関係に基づいてアクセス対象の物理ブロックが属する前記物理ゾーンの前記物理ゾーン番号を特定し、前記物理ゾーン内ブロック番号と前記論理ゾーン内ブロック番号との対応関係に基づいてアクセス対象の物理ブロックの前記物理ゾーン内ブロック番号を特定し、特定された前記物理ゾーン番号と前記物理ゾーン内ブロック番号とを前記物理ゾーン番号を下位側にして2進数表記で連結することによりアクセス対象の物理ブロックの物理ブロックアドレスを求める、
ことを特徴とする。
In order to achieve the above object, the memory controller of the present invention provides:
A memory controller that controls access to a flash memory in which stored data is erased in units of physical blocks in response to a command from a host system,
By distributing the physical blocks in the flash memory one by one in the order of the physical block addresses of the physical blocks to the power zone of 2 physical zones , the physical zone including a plurality of physical blocks is raised to a power of 2 A physical zone forming means to form;
Logical zone forming means for forming a logical zone in which a plurality of logical blocks including a plurality of sector areas having continuous logical addresses in the address space on the host system side is formed, the same number as the number of the physical zones;
The correspondence between the physical zone and the logical zone is the correspondence between the physical zone number that is a serial number starting from 0 assigned to the physical zone and the logical zone number that is a serial number starting from 0 attached to the logical zone. and zone management means to manage by,
Between the logical zone and the physical zone that correspond to each other, the correspondence between the logical address in the logical zone and the physical address in the physical zone is attached to the physical block in the physical zone. An address management means for managing by a correspondence relationship between a physical zone block number starting from 0 and a logical zone block number starting from 0 assigned to a logical block in the logical zone ;
Access means for accessing the flash memory in response to an instruction given from the host system ,
The access means specifies the physical zone number of the physical zone to which the physical block to be accessed belongs based on the correspondence between the physical zone number and the logical zone number, and the physical zone block number and the logical zone The physical zone block number of the physical block to be accessed is identified based on the correspondence relationship with the internal block number, and the identified physical zone number and the intra-physical zone block number are set to the lower side. To obtain the physical block address of the physical block to be accessed by concatenating in binary notation,
It is characterized by that.

また、本発明のフラッシュメモリシステムは、上述のメモリコントローラと、フラッシュメモリと、から構成される。   A flash memory system according to the present invention includes the memory controller described above and a flash memory.

本発明によれば、フラッシュメモリ内の特定の領域に不良ブロックが集中したときに、それらの不良ブロックが特定の物理ゾーンに集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを実現することができる。つまり、初期不良等で特定の領域に不良ブロックが集中したときに、それらの不良ブロックを複数の物理ゾーンに振り分けることができる。   According to the present invention, when defective blocks are concentrated in a specific area in the flash memory, a memory controller capable of avoiding the concentration of these defective blocks in a specific physical zone, and a flash memory system including the memory controller Can be realized. That is, when defective blocks are concentrated in a specific area due to an initial defect or the like, these defective blocks can be distributed to a plurality of physical zones.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present invention. As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a controller 3 that controls the flash memory 2.

なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。   The flash memory system 1 is connected to the host system 4 via the external bus 13. The host system 4 includes a CPU (Central Processing Unit) for controlling the entire operation of the host system 4, a companion chip for transferring information to and from the flash memory system 1, and the like. The host system 4 may be various information processing apparatuses such as a personal computer and a digital still camera that process various types of information such as characters, sounds, and image information.

フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。   The flash memory 2 is a non-volatile memory and includes a register and a memory cell array. The flash memory 2 writes or reads data by copying data between a register and a memory cell.

メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。   The memory cell array includes a plurality of memory cell groups and word lines. Each memory cell group includes a plurality of memory cells connected in series. The word line is for selecting a specific memory cell in the memory cell group. Data is copied between the selected memory cell and the register via the word line, that is, data is copied from the register to the selected memory cell, or data is copied from the selected memory cell to the register. .

メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。   A memory cell constituting the memory cell array is constituted by a MOS transistor having two gates. Here, the upper gate and the lower gate are referred to as a control gate and a floating gate, respectively. By injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate, data can be obtained. Is written or data is erased.

このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. Note that, when electrons are injected into the floating gate, a high voltage at which the control gate is on the high potential side is applied between the control gate and the floating gate. Further, when electrons are discharged from the floating gate, a high voltage at which the control gate becomes a low potential side is applied between the control gate and the floating gate.

ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。   Here, a state where electrons are injected into the floating gate is a write state, which corresponds to a logical value “0”. The state in which electrons are discharged from the floating gate is an erased state, which corresponds to a logical value “1”.

このようなフラッシュメモリ2のアドレス空間を図2に示す。フラッシュメモリ2のアドレス空間は、“ページ”及び“ブロック(物理ブロック)”で構成されている。   Such an address space of the flash memory 2 is shown in FIG. The address space of the flash memory 2 is composed of “pages” and “blocks (physical blocks)”.

ページは、フラッシュメモリ2にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。物理ブロックは、フラッシュメモリ2にて行われるデータ消去動作における処理単位であり、複数個のページで構成されている。   A page is a processing unit in a data read operation and a data write operation performed in the flash memory 2. The physical block is a processing unit in the data erasing operation performed in the flash memory 2, and is composed of a plurality of pages.

図2に示したフラッシュメモリでは、1つのページは、1セクタ(512バイト)のユーザ領域25と、16バイトの冗長領域26で構成され、1つの物理ブロックは32個のページで構成されている。なお、1つのページが4セクタのユーザ領域と64バイトの冗長領域で構成され、1つの物理ブロックが64個のページで構成されているフラッシュメモリもある。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。   In the flash memory shown in FIG. 2, one page is composed of a user area 25 of 1 sector (512 bytes) and a redundant area 26 of 16 bytes, and one physical block is composed of 32 pages. . There is a flash memory in which one page is composed of a 4-sector user area and a 64-byte redundant area, and one physical block is composed of 64 pages. The user area 25 stores user data supplied from the host system 4.

冗長領域26は、エラーコレクションコード、論理アドレス情報、ブロックステータス(フラグ)等の付加データを記録するための領域である。   The redundant area 26 is an area for recording additional data such as an error collection code, logical address information, and a block status (flag).

エラーコレクションコードは、ユーザ領域25に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。   The error collection code is data for detecting and correcting an error included in the data stored in the user area 25.

論理アドレス情報は、フラッシュメモリ2の各物理ブロックに含まれている少なくとも1個のページのユーザ領域25に有効なデータが格納されているとき、そのデータに対応する論理ブロックを特定するための情報である。   The logical address information is information for specifying a logical block corresponding to the data when valid data is stored in the user area 25 of at least one page included in each physical block of the flash memory 2. It is.

なお、ユーザ領域25に有効なデータが格納されていない物理ブロックについては、そのブロックの冗長領域26に、論理アドレス情報は格納されていない。   For a physical block in which valid data is not stored in the user area 25, logical address information is not stored in the redundant area 26 of the block.

従って、冗長領域26に論理アドレス情報が格納されているか否かを判定することにより、その冗長領域26が含まれている物理ブロックに有効なデータが格納されているか否かを判定することができる。つまり、冗長領域26に論理アドレス情報が格納されていないとき、その物理ブロックには、有効なデータが格納されていない。   Therefore, by determining whether or not logical address information is stored in the redundant area 26, it is possible to determine whether or not valid data is stored in the physical block including the redundant area 26. . That is, when no logical address information is stored in the redundant area 26, no valid data is stored in the physical block.

上述のように、1つの物理ブロックは、複数のページを含んでいる。これらのページには、データの上書きができない。このため、1つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれた物理ブロック内の全ページに格納されたデータを、再度書き込まなければならない。   As described above, one physical block includes a plurality of pages. Data cannot be overwritten on these pages. For this reason, even when only the data stored in one page is rewritten, the data stored in all the pages in the physical block including the page must be rewritten.

つまり、通常のデータ書き換えでは、書き換えるページが含まれる物理ブロックの全ページに格納されたデータが、別の消去されている物理ブロックに書き込まれる。この際、データが変更されないページに格納されているデータは、以前に格納されていたデータがそのまま再度書き込まれる。   That is, in normal data rewriting, data stored in all pages of a physical block including a page to be rewritten is written to another erased physical block. At this time, as for the data stored in the page where the data is not changed, the previously stored data is rewritten as it is.

上記のようにデータを書き換えるにあたっては、書き換えられたデータは、通常、以前に格納されていた物理ブロックとは異なる物理ブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。   In rewriting data as described above, the rewritten data is usually written in a physical block different from the physical block stored previously. For this reason, the correspondence relationship between the logical block address and the physical block address dynamically changes every time data is rewritten in the flash memory 2.

従って、論理ブロックと物理ブロックとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各物理ブロックの冗長領域26に記憶されている論理アドレス情報(LZIBN又はLBN)に基づいて作成される。なお、このような動的なアドレス管理手法は、上述の通り、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。   Therefore, it is necessary to manage the correspondence between the logical block and the physical block, and this correspondence is usually managed by the address conversion table. This address conversion table is created based on logical address information (LZIBN or LBN) stored in the redundant area 26 of each physical block. Note that such a dynamic address management method is a method generally used in a memory system using a flash memory as described above.

ブロックステータス(フラグ)は、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域26には、不良ブロックであることを示すブロックステータス(フラグ)が書き込まれる。   The block status (flag) is a flag indicating whether the block is good or bad. A block in which data cannot be normally written is determined as a defective block, and a block status (flag) indicating a defective block is written in the redundant area 26.

このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。   Such a flash memory 2 receives data, address information, internal commands, and the like from the controller 3 and performs various processes such as a data read process, a write process, a block erase process, and a transfer process.

ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。   Here, the internal command is a command for the controller 3 to instruct the flash memory 2 to execute processing, and the flash memory 2 operates in accordance with the internal command given from the controller 3. In contrast, the external command is a command for the host system 4 to instruct the flash memory system 1 to execute processing.

コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。   As shown in FIG. 1, the 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 collection code) block 11, ROM (Read Only Memory) 12. The controller 3 constituted by these functional blocks is integrated on one semiconductor chip. Each functional block will be described below.

マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリインターフェースブロック10に供給し、フラッシュメモリインターフェースブロック10に処理を実行させる。   The microprocessor 6 controls the overall operation of the controller 3 in accordance with a program stored in the ROM 12. For example, the microprocessor 6 reads a command set defining various processes from the ROM 12, supplies the command set to the flash memory interface block 10, and causes the flash memory interface block 10 to execute processes.

ホストインターフェースブロック7は、図3に示すようにコマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えており、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   As shown in FIG. 3, the host interface block 7 includes a command register R1, a sector number register R2, and an LBA register R3, and exchanges data, address information, status information, external commands, etc. with the host system 4. To do. Data or the like supplied from the host system 4 to the flash memory system 1 is taken into the flash memory system 1 (for example, the buffer 9) using the host interface block 7 as an entrance. Data supplied from the flash memory system 1 to the host system 4 is supplied to the host system 4 through the host interface block 7 as an exit.

図1に示すワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。ワークエリア8には、例えば、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル、空きブロックを登録する空きブロックテーブルなどが記憶される。   A work area 8 shown in FIG. 1 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and includes a plurality of SRAM (Static Random Access Memory) cells. In the work area 8, for example, an address conversion table for converting a logical address and a physical address, an empty block table for registering an empty block, and the like are stored.

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

フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、フラッシュメモリインターフェースブロック10は、アドレス処理部、コマンドレジスタ、命令処理ブロック等から構成される。図3に示すように、アドレス処理部は、物理ブロックアドレスレジスタR11、ページ番号レジスタR12、カウンタR13,コマンドレジスタR21を備える。   The flash memory interface block 10 exchanges data, address information, status information, internal commands, and the like with the flash memory 2 via the internal bus 14. More specifically, the flash memory interface block 10 includes an address processing unit, a command register, an instruction processing block, and the like. As shown in FIG. 3, the address processing unit includes a physical block address register R11, a page number register R12, a counter R13, and a command register R21.

物理ブロックアドレスレジスタR11は、フラッシュメモリ2のアクセス対象の物理ブロックの物理ブロックアドレスPBAを格納する。物理ブロックアドレスレジスタR11に設定される物理ブロックアドレスPBAは、ワークエリア8に作成されるアドレス変換テーブルに基づいて決定される。このアドレス変換テーブルは、対応する論理ゾーンと物理ゾーンの組毎に形成され、該論理ゾーン内論理ブロック番号LZIBNと物理ゾーン内物理ブロック番号PZIBNとの対応関係を記憶する。   The physical block address register R11 stores the physical block address PBA of the physical block to be accessed in the flash memory 2. The physical block address PBA set in the physical block address register R11 is determined based on an address conversion table created in the work area 8. This address conversion table is formed for each pair of corresponding logical zone and physical zone, and stores the correspondence between the logical block number LZIBN in the logical zone and the physical block number PZIBN in the physical zone.

ページ番号レジスタR12は、アクセス対象のページのページ番号PNを格納する。カウンタR13は、各物理ブロック内のアクセス対象ページの残り量をカウントする。
コマンドレジスタR21は、フラッシュメモリインタフェースブロック10が実行すべき処理を指示するシーケンスコマンドがセットされる。
The page number register R12 stores the page number PN of the page to be accessed. The counter R13 counts the remaining amount of pages to be accessed in each physical block.
The command register R21 is set with a sequence command for instructing processing to be executed by the flash memory interface block 10.

命令処理ブロックは、コマンドレジスタR21に格納されたシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、物理アドレス等を出力する。   The instruction processing block outputs an internal command, a physical address, and the like for controlling the flash memory 2 according to the sequence command stored in the command register R21.

フラッシュメモリインターフェースブロック10は、命令処理ブロックによって出力される内部コマンド、アドレス情報等をフラッシュメモリ2に供給することにより、フラッシュメモリ2に読み出し、書き込み等を実行させる。   The flash memory interface block 10 supplies the flash memory 2 with internal commands, address information, and the like output from the instruction processing block, thereby causing the flash memory 2 to execute reading and writing.

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.

ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。   The ROM 12 is a non-volatile storage element that stores a program that defines a processing procedure performed by the microprocessor 6. Specifically, the ROM 12 stores a program that defines a processing procedure such as creation of an address conversion table, for example.

次に、複数の物理ゾーンに対する物理ブロックの振り分けについて説明する。
理解を容易にするため、次の説明では、フラッシュメモリ2内の物理ブロックの個数を2048個とし、これらの物理ブロックが振り分けられる物理ゾーンの個数を4個とする。
Next, allocation of physical blocks to a plurality of physical zones will be described.
In order to facilitate understanding, in the following description, the number of physical blocks in the flash memory 2 is assumed to be 2048, and the number of physical zones to which these physical blocks are allocated is assumed to be four.

ここで、2048個の物理ブロックの物理ブロックアドレスPBAは、図4(a)に示すように、11ビットで二進数表記することができる。   Here, the physical block addresses PBA of 2048 physical blocks can be expressed in binary with 11 bits, as shown in FIG.

従来であれば、フラッシュメモリ内のPBAが連続する物理ブロックが512個ずつ4個の物理ゾーンに振り分けられる。従って、PBAのうち最上位2ビットが、物理ゾーンを示し、下位9ビットが、いずれかの物理ゾーン内の物理ブロックの通番である物理ゾーン内ブロック番号PZIBNを示す。   Conventionally, 512 physical blocks each having a continuous PBA in the flash memory are allocated to 4 physical zones. Therefore, the most significant 2 bits of the PBA indicate the physical zone, and the lower 9 bits indicate the block number PZIBN in the physical zone that is the serial number of the physical block in any of the physical zones.

これに対して、本実施の形態では、フラッシュメモリ2内の物理ブロックがPBAの順番で所定個数ずつ4個の物理ゾーンに順次振り分けられる。例えば、図5に示したように、フラッシュメモリ2内の物理ブロックを4個ずつPZN#0〜#3の物理ゾーンに振り分ける。ここで、物理ブロックの振り分け単位の所定個数と振り分け先の物理ゾーンの個数が2のべき乗個の場合には、PBAの特定範囲のビットに基づいて、振り分け先の物理ゾーンの物理ゾーン番号PZNを判別することができる。   On the other hand, in the present embodiment, the physical blocks in the flash memory 2 are sequentially allocated to four physical zones by a predetermined number in the PBA order. For example, as shown in FIG. 5, four physical blocks in the flash memory 2 are allocated to the physical zones of PZN # 0 to # 3. Here, when the predetermined number of physical block allocation units and the number of physical zones of the allocation destination are powers of 2, the physical zone number PZN of the allocation destination physical zone is set based on the bits in the specific range of the PBA. Can be determined.

つまり、図5に示したように、4個の物理ゾーンに物理ブロックを4個ずつ振り分ける場合には、図4(a)に示すように、11ビットのPBAの下位から4ビット目と3ビット目の2ビットが物理ゾーン番号(PZN:#0〜3)を示し、この2ビットを除いた9ビットが、物理ゾーン内ブロック番号(PZIBN:#0〜511)を示す。   That is, as shown in FIG. 5, when four physical blocks are allocated to four physical zones, as shown in FIG. 4A, the lower 4th bit and 3 bits of the 11-bit PBA are used. The second 2 bits indicate the physical zone number (PZN: # 0 to 3), and 9 bits excluding these 2 bits indicate the physical zone block number (PZIBN: # 0 to 511).

このときの各物理ゾーン番号PZN#0〜3と、各物理ゾーン内に配置される物理ブロックの物理ブロックアドレスPBAとその二進数表記を図4(b)に示す。ここに示されているように、PZN#0の物理ゾーンに振り分けられた物理ブロックのPBAの下位から4ビット目と3ビット目の2ビットは“00”であり、PZN#1の物理ゾーンに振り分けられた物理ブロックのPBAの下位から4ビット目と3ビット目の2ビットは“01”であり、PZN#2の物理ゾーンに振り分けられた物理ブロックのPBAの下位から4ビット目と3ビット目の2ビットは“10”であり、PZN#3の物理ゾーンに振り分けられた物理ブロックのPBAの下位から4ビット目と3ビット目の2ビットは“11”である。又、11ビットのPBAの下位から4ビット目と3ビット目の2ビットを除いて残った9ビットがPZIBN#0〜511に対応する。例えば、PZN#0の物理ゾーンに振り分けられた物理ブロックであるPBA#33(二進数表記:000 0010 0001)はPZIBN#9(二進数表記:0 0000 1001)に対応する。   FIG. 4B shows the physical zone numbers PZN # 0-3 at this time, the physical block address PBA of the physical block arranged in each physical zone, and the binary notation thereof. As shown here, the 2nd bit of the 4th and 3rd bits from the PBA of the physical block allocated to the physical zone of PZN # 0 is “00”, and the physical zone of PZN # 1 The 2nd bit of the 4th and 3rd bits from the lower PBA of the allocated physical block is “01”, and the 4th and 3rd bits of the lower PBA of the physical block allocated to the physical zone of PZN # 2 The second two bits are “10”, and the second and third bits from the lower PBA of the physical block allocated to the physical zone of PZN # 3 are “11”. Also, the remaining 9 bits except the 2nd bit of the 4th bit and the 3rd bit from the lower order of the 11-bit PBA correspond to PZIBN # 0-511. For example, PBA # 33 (binary notation: 000 0010 0001), which is a physical block allocated to the physical zone of PZN # 0, corresponds to PZIBN # 9 (binary notation: 0 0000 1001).

次に、フラッシュメモリ2からの読み出し処理について説明する。   Next, reading processing from the flash memory 2 will be described.

読み出し処理は、ホストインターフェースブロック7のセクタ数レジスタR2に設定されたセクタ数、LBAレジスタR3に設定されたLBAの先頭値、コマンドレジスタR1に設定された外部コマンドに基づいて処理が実行される。尚、この読み出し処理は、読み出し処理を指示する外部コマンドが、コマンドレジスタR1に設定されると開始される。   The read process is executed based on the number of sectors set in the sector number register R2 of the host interface block 7, the leading value of the LBA set in the LBA register R3, and the external command set in the command register R1. This read process is started when an external command that instructs the read process is set in the command register R1.

まず、マイクロプロセッサ6は、LBAレジスタR3に格納された先頭LBAとセクタ数レジスタR2にセットされたアクセス対象のセクタ数に基づいて、アクセス対象領域の論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNを、論理ブロック単位で求める。つまり、アクセス対象領域が複数の論理ブロックにまたがっている場合は、複数組のLZNとLZIBNを求める。   First, the microprocessor 6 sets the logical zone number LZN and the logical zone block number LZIBN of the access target area based on the head LBA stored in the LBA register R3 and the number of sectors to be accessed set in the sector number register R2. Obtained in units of logical blocks. That is, when the access target area extends over a plurality of logical blocks, a plurality of sets of LZN and LZIBN are obtained.

次に、このようにして求めた論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNとに基づいて、その論理ブロックに対する物理ブロックの物理ブロックアドレスPBAを求める。このPBAを求めるときには、アクセス対象の論理ゾーンに含まれる論理ブロックとこの論理ゾーンに対応する物理ゾーンに含まれる物理ブロックの対応関係を示したアドレス変換テーブルが参照される。例えば、LZN#0の論理ゾーンとPZN#0の物理ゾーンが対応する場合、LZN#0の論理ゾーンに含まれる論理ブロックのLZIBNとPZN#0の物理ゾーンに含まれる物理ブロックのPZIBNの対応関係を示すアドレス変換テーブルが作成され、このアドレス変換テーブルを参照してアクセス対象の物理ブロックのPZIBNが求められる。   Next, the physical block address PBA of the physical block for the logical block is obtained based on the logical zone number LZN and the intra-logical zone block number LZIBN thus obtained. When obtaining this PBA, an address conversion table showing the correspondence between the logical block included in the logical zone to be accessed and the physical block included in the physical zone corresponding to this logical zone is referred to. For example, when the logical zone of LZN # 0 corresponds to the physical zone of PZN # 0, the correspondence relationship between LZIBN of the logical block included in the logical zone of LZN # 0 and PZIBN of the physical block included in the physical zone of PZN # 0 Is created, and PZIBN of the physical block to be accessed is obtained by referring to this address translation table.

更に、求めたPZIBNにPZNを示すビットを加えることにより、PBAを求めることができる。例えば、アクセス対象の物理ブロックが、PZN#0(二進数表記:00)のPZIBN#6(二進数表記:0 0000 0110)の物理ブロックの場合、この物理ブロックのPBAはPZIBN#6(二進数表記:0 0000 0110)の下位から2ビット目と3ビット目の間にPZN#0(二進数表記:00)を示す2ビットを追加することのよって求められる。つまり、PZN#0(二進数表記:00)のPZIBN#6(二進数表記:0 0000 0110)の物理ブロックのPBAは、#18(二進数表記:000 0001 0010)になる。   Furthermore, PBA can be obtained by adding a bit indicating PZN to the obtained PZIBN. For example, if the physical block to be accessed is a PZIBN # 6 (binary notation: 0 0000 0110) physical block of PZN # 0 (binary notation: 00), the PBA of this physical block is PZIBN # 6 (binary notation). It is obtained by adding 2 bits indicating PZN # 0 (binary notation: 00) between the second and third bits from the lower order of the notation: 0 0000 0110). That is, the PBA of the physical block of PZIBN # 6 (binary notation: 0 0000 0110) of PZN # 0 (binary notation: 00) is # 18 (binary notation: 000 0001 0010).

尚、PZNを示すビットのビット数は振り分け先の物理ゾーンの個数によって決まり、
PBAにおけるPZNを示すビットの位置は、物理ブロックの振り分け単位の所定個数によって決まる。つまり、振り分け先の物理ゾーンの個数が2個の場合、PZNを示すビットのビット数はjビットとなる。更に、振り分け先の物理ゾーンの個数が2個で、物理ブロックの振り分け単位の所定個数が2個の場合、PBAの下位から数えてk+jビット目からk+1ビット目がPZNを示すビットになる。
Note that the number of bits indicating PZN is determined by the number of physical zones to which distribution is performed,
The position of the bit indicating PZN in the PBA is determined by a predetermined number of physical block allocation units. That is, if the number of physical zone assignment destination is 2 j-number, the number of bits bits indicating PZN becomes j bits. Furthermore, the number is 2 j-number of physical zone assignment destination, if a predetermined number of distribution units of the physical blocks of 2 k pieces, k + 1 bit from the k + j th bit counted from the lower PBA becomes bit indicating PZN .

例えば、振り分け先の物理ゾーンの個数が4個(2個)の場合と8個(2個)の場合、PBAにおけるPZNを示すビットの位置は下記のように物理ブロックの振り分け単位の所定個数によって変化する。 For example, if in a case where the number of physical zone assignment destination is four (2 2) and 8 (2 3), the position of the bits indicating the PZN in the PBA sorting units of physical blocks as follows predetermined It depends on the number.

<振り分け先の物理ゾーンの個数が4個の場合>
振り分け単位の所定個数が1個:PBAの下位から数えて2ビット目から1ビット目
振り分け単位の所定個数が2個:PBAの下位から数えて3ビット目から2ビット目
振り分け単位の所定個数が4個:PBAの下位から数えて4ビット目から3ビット目
振り分け単位の所定個数が8個:PBAの下位から数えて5ビット目から4ビット目
<When the number of distribution-destination physical zones is four>
Predetermined number of distribution units is one: 2nd to 1st bit distribution units counted from the lower order of the PBA: 2nd predetermined number of distribution units counted from the lower order of the PBA is the predetermined number of 3rd to 2nd distribution units 4 pieces: The predetermined number of 4th to 3rd bit allocation units counted from the lower order of PBA is 8: 5th to 4th bits counted from the lower order of PBA

<振り分け先の物理ゾーンの個数が8個の場合>
振り分け単位の所定個数が1個:PBAの下位から数えて3ビット目から1ビット目
振り分け単位の所定個数が2個:PBAの下位から数えて4ビット目から2ビット目
振り分け単位の所定個数が4個:PBAの下位から数えて5ビット目から3ビット目
振り分け単位の所定個数が8個:PBAの下位から数えて6ビット目から4ビット目
<When the number of distribution-destination physical zones is 8>
Predetermined number of distribution units is one: the number of 3rd to 1st bit distribution units counted from the lower part of the PBA is two: the predetermined number of fourth to second bit distribution units is counted from the lower part of the PBA 4 units: The predetermined number of 5th to 3rd bit allocation units counted from the lower order of PBA is 8: 6th to 4th bits counted from the lower order of PBA

又、PZIBNからPBAを求めるときに、PZIBNにPZNを示すビットを加える位置も物理ブロックの振り分け単位の所定個数によって変化する。
振り分け単位の所定個数が1個:PZIBNの最下位側に追加
振り分け単位の所定個数が2個:PZIBNの下位から2ビット目と1ビット目の間に追加
振り分け単位の所定個数が4個:PZIBNの下位から3ビット目と2ビット目の間に追加
振り分け単位の所定個数が8個:PZIBNの下位から4ビット目と3ビット目の間に追加
In addition, when obtaining PBA from PZIBN, the position at which a bit indicating PZN is added to PZIBN also varies depending on the predetermined number of physical block allocation units.
Predetermined number of distribution units is one: the lowest number of additional distribution units on the lowest side of PZIBN: four predetermined numbers of additional distribution units between the second and first bits from the lower order of PZIBN: PZIBN The number of additional allocation units is 8 between the 3rd and 2nd bits from the lower order: Add between the 4th and 3rd bits from the lower order of PZIBN

又、アドレス変換テーブルは、物理ブロックの冗長領域26に書き込まれている論理アドレス情報(例えば、LZIBN)を参照することにより作成することができる。このアドレス変換テーブルの作成処理では、ワークエリア8に作成対象の論理ゾーンに含まれる論理ブロックの各LZIBNに対応する物理ブロックのPZIBNを書き込むテーブル領域を確保する。続いて、作成対象の論理ゾーンに対応する物理ゾーンに含まれる物理ブロックの冗長領域26を参照して、テーブル領域にPZIBNを書き込んでいく。例えば、PZN#0のPZIBN#10の物理ブロックの冗長領域26にLZIBN#8が書き込まれていたときには、テーブル領域のLZIBN#8に対応する箇所にPZIBN#10を書き込む。 The address conversion table can be created by referring to logical address information (for example, LZIBN) written in the redundant area 26 of the physical block. In this address conversion table creation process, a table area for writing the PZIBN of the physical block corresponding to each LZIBN of the logical block included in the logical zone to be created is secured in the work area 8. Subsequently, PZIBN is written in the table area with reference to the redundant area 26 of the physical block included in the physical zone corresponding to the logical zone to be created. For example, when LZIBN # 8 is written in the redundant area 26 of the physical block of PZIBN # 10 in PZN # 0, PZIBN # 10 is written in a location corresponding to LZIBN # 8 in the table area.

次に、マイクロプロセッサ6は、フラッシュメモリインタフェースブロック10の物理ブロックアドレスレジスタR11に読み出し対象の物理ブロックの物理ブロックアドレスPBAを設定し、ページ番号レジスタR12にその物理ブロック内の読み出しを開始するページのページ番号を設定し、さらに、カウンタR13に読み出し対象のページ数を設定し、さらに、コマンドレジスタR21に、データの読み出しを指示するシーケンスコマンドを設定する。ここで、読み出しを開始するページのページ番号は、読み出しを開始するLBAから論理ブロック番号LBNを示すビットを除いて残った下位ビットが対応する。尚、アクセス対象領域が複数の論理ブロックにまたがっている場合は、LBNの若い方から順番に上記の設定を行う。   Next, the microprocessor 6 sets the physical block address PBA of the physical block to be read in the physical block address register R11 of the flash memory interface block 10, and the page number register R12 of the page to start reading in the physical block. A page number is set, the number of pages to be read is set in the counter R13, and a sequence command for instructing data reading is set in the command register R21. Here, the page number of the page from which reading is started corresponds to the lower bits remaining after the bit indicating the logical block number LBN is excluded from the LBA from which reading starts. When the access target area extends over a plurality of logical blocks, the above settings are performed in order from the younger LBN.

続いて、フラッシュメモリインタフェースブロック10の命令処理ブロックが、コマンドレジスタR21に格納されているシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力し、フラッシュメモリ2からデータを読み出し、読み出したデータをバッファ9に格納する。ここで、フラッシュメモリ2に与えられる内部コマンドは、読み出しを指示する内部コマンドである。又、フラッシュメモリ2に与えられるアドレス情報は、物理ブロックアドレスレジスタR11に設定されているPBAにページ番号レジスタR12に設定されているページ番号PNを付加することによって生成される。更に、フラッシュメモリ2から1ページ(1セクタ)分のデータが読み出される毎に、ページ番号レジスタR12に設定されている設定値はインクリメント(1ずつ加算)され、カウンタR13に設定されている設定値はデクリメント(1ずつ減算)され、インクリメントされたページ番号レジスタR12の設定値に基づいて、次のアドレス情報が生成される。尚、バッファ9に格納されたデータは、ホストインターフェースブロック7と外部バス13を介してホストシステム4に提供される。   Subsequently, the instruction processing block of the flash memory interface block 10 outputs an internal command for controlling the flash memory 2, address information, and the like according to the sequence command stored in the command register R 21, and stores data from the flash memory 2. The read data is stored in the buffer 9. Here, the internal command given to the flash memory 2 is an internal command for instructing reading. The address information given to the flash memory 2 is generated by adding the page number PN set in the page number register R12 to the PBA set in the physical block address register R11. Further, every time data for one page (one sector) is read from the flash memory 2, the set value set in the page number register R12 is incremented (added by 1), and the set value set in the counter R13 is set. Is decremented (subtracted by 1), and the next address information is generated based on the incremented setting value of the page number register R12. The data stored in the buffer 9 is provided to the host system 4 via the host interface block 7 and the external bus 13.

この物理ブロックアドレスレジスタR11、ページ番号レジスタR12、カウンタR13及びコマンドレジスタR21に設定された情報に基づく読み出し処理は、カウンタR13に設定されている設定値が“0”になると終了する。つまり、この読み出し処理では、ページ番号レジスタR12に最初に設定された設定値に対応するページ(セクタ)から順番に、カウンタR13に最初に設定されたページ数(セクタ数)分のデータが読み出される。   The reading process based on the information set in the physical block address register R11, page number register R12, counter R13, and command register R21 ends when the set value set in the counter R13 becomes “0”. That is, in this reading process, data corresponding to the number of pages (sector number) initially set in the counter R13 is read in order from the page (sector) corresponding to the setting value initially set in the page number register R12. .

次に、フラッシュメモリ2への書き込み処理について説明する。書き込み処理の場合は、書き込み処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、書き込み処理が開始され、ホストインターフェースブロック7のセクタ数レジスタR2に設定されたセクタ数、LBAレジスタR3に設定されたLBAの先頭値に基づいて処理が実行される。   Next, the writing process to the flash memory 2 will be described. In the case of the write process, when an external command instructing the write process is set in the command register R1, the write process is started and the number of sectors set in the sector number register R2 of the host interface block 7 is set in the LBA register R3. The process is executed based on the set leading value of the LBA.

書き込み処理が実行されると、アクセス対象の論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNが、上述の読み出し処理の場合と同様な手順で求められ、更にアクセス対象の物理ブロックのPBAも、上述の読み出し処理の場合と同様な手順で求められる。尚、古いデータの書き換えの場合には、空きブロックを検出し、空きブロックのPZIBNにその空きブロックが属する物理ゾーンのPZNを示すビットを加えることにより、その空きブロックのPBAが求められる。   When the write process is executed, the logical zone number LZN to be accessed and the block number LZIBN in the logical zone are obtained in the same procedure as in the above read process, and the PBA of the physical block to be accessed is also It is obtained in the same procedure as in the reading process. In the case of rewriting old data, an empty block is detected, and a bit indicating the PZN of the physical zone to which the empty block belongs is added to the PZIBN of the empty block, thereby obtaining the PBA of the empty block.

続いて、フラッシュメモリインタフェースブロック10の物理ブロックアドレスレジスタR11には書き込み先の物理ブロックのPBAが設定され、ページ番号レジスタR12には書き込みを開始するページのページ番号を設定され、さらに、カウンタR13にはデータが書き込まれるページのページ数が設定され、コマンドレジスタR21にはデータの書き込みを指示するシーケンスコマンドが設定される。   Subsequently, the PBA of the write-destination physical block is set in the physical block address register R11 of the flash memory interface block 10, the page number of the page to start writing is set in the page number register R12, and the counter R13 is set in the counter R13. The number of pages to which data is written is set, and a sequence command for instructing data writing is set in the command register R21.

フラッシュメモリインタフェースブロック10の命令処理ブロックは、コマンドレジスタR21に格納されているシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力する。更に、ホストシステム4から順次供給されバッファ9に保持されたデータがフラッシュメモリ2に供給される。供給されたデータはフラッシュメモリ2のユーザ領域25に書き込まれ、冗長領域26にはユーザ領域25に書き込まれたデータに対応する論理ブロックのLZIBNが書き込まれる。更に、LZIBNとPZIBNとの対応関係を示すアドレス変換テーブルで、対応関係が変化した部分が更新される。   The instruction processing block of the flash memory interface block 10 outputs an internal command for controlling the flash memory 2, address information, and the like according to a sequence command stored in the command register R21. Further, data sequentially supplied from the host system 4 and held in the buffer 9 is supplied to the flash memory 2. The supplied data is written in the user area 25 of the flash memory 2, and the logical block LZIBN corresponding to the data written in the user area 25 is written in the redundant area 26. Further, in the address conversion table indicating the correspondence between LZIBN and PZIBN, the portion where the correspondence has changed is updated.

尚、図4及び図5に示した例では、振り分け先の物理ゾーンの個数を4個とし、物理ブロックの振り分け単位の所定個数を4個としたが、振り分け先の物理ゾーンの個数と物理ブロックの振り分け単位の所定個数は適宜設定することができる。   In the example shown in FIGS. 4 and 5, the number of physical zones as the allocation destination is four and the predetermined number of physical block allocation units is four. The predetermined number of distribution units can be set as appropriate.

例えば、振り分け先の物理ゾーンの個数を16個とし、物理ブロックの振り分け単位の所定個数を1個とした場合、図7に示したように物理ブロックが1個ずつPZN#0〜#15の物理ゾーンに順次振り分けられる。又、各物理ゾーンに含まれる物理ブロックの個数を1024個とした場合、16個の物理ゾーンに振り分けられる16384個の物理ブロックのPBAは、図6(a)に示したように14ビットで二進数表記することができる。この14ビットのPBAのうち下位4ビットは振り分け先の物理ゾーンのPZNを示し、上位10ビットは各物理ゾーンに含まれる物理ブロックのPZIBNを示す。   For example, when the number of distribution-destination physical zones is 16 and the predetermined number of physical block distribution units is 1, the physical blocks of PZN # 0 to # 15 are one by one as shown in FIG. Sorted sequentially into zones. Further, when the number of physical blocks included in each physical zone is 1024, the P384 of 16384 physical blocks allocated to the 16 physical zones is 2 in 14 bits as shown in FIG. Can be expressed in decimal. Of the 14-bit PBA, the lower 4 bits indicate the PZN of the physical zone that is the distribution destination, and the upper 10 bits indicate the PZIBN of the physical block included in each physical zone.

つまり、PBAの下位4ビットが“0000”の物理ブロックはPZN#0の物理ゾーンに振り分けられ、PBAの下位4ビットが“0001”の物理ブロックはPZN#1の物理ゾーンに振り分けられ、PBAの下位4ビットが“0010”の物理ブロックはPZN#2の物理ゾーンに振り分けられ、PBAの下位4ビットが“0011”の物理ブロックはPZN#3の物理ゾーンに振り分けられ、PBAの下位4ビットが“0100”の物理ブロックはPZN#4の物理ゾーンに振り分けられ、以下同様にPBAの下位4ビットの値に基づいて振り分けられていき、PBAの下位4ビットが“1111”の物理ブロックはPZN#15の物理ゾーンに振り分けられる。   In other words, the physical block whose lower 4 bits of PBA are “0000” is allocated to the physical zone of PZN # 0, and the physical block whose lower 4 bits of PBA is “0001” is allocated to the physical zone of PZN # 1, The physical block whose lower 4 bits are “0010” is allocated to the physical zone of PZN # 2, the physical block whose lower 4 bits of PBA is “0011” is allocated to the physical zone of PZN # 3, and the lower 4 bits of PBA are The physical block of “0100” is allocated to the physical zone of PZN # 4, and is similarly allocated based on the value of the lower 4 bits of PBA. The physical block whose lower 4 bits of PBA is “1111” is allocated to PZN # 4. Sorted into 15 physical zones.

又、各物理ゾーンに含まれる物理ブロックのPBAは、その物理ブロックのPZIBNの下位にその物理ブロックが属する物理ゾーンのPZNを付加することによって求めることができる。図6(b)は、PZN#0の物理ゾーンに振り分けられた物理ブロックのPZIBNとPBAの対応関係を示している。二進数表記したPBAからも分かるように、PZIBNの下位にPZN#0を示す4ビット“0000”を付加することにより各PZIBNに対応するPBAを求めることができる。例えば、PZN#0のPZIBN#11に対応するPBA#176(二進数表記:00 0000 1011 0000)は、PZIBN#11(二進数表記:00 0000 1011)の下位にPZN#0を示す4ビット“0000”を付加することにより求めることができる。   Further, the PBA of the physical block included in each physical zone can be obtained by adding the PZN of the physical zone to which the physical block belongs to the lower level of the PZIBN of the physical block. FIG. 6B shows the correspondence between PZIBN and PBA of the physical block allocated to the physical zone of PZN # 0. As can be seen from the PBA in binary notation, the PBA corresponding to each PZIBN can be obtained by adding 4 bits “0000” indicating PZN # 0 to the lower order of PZIBN. For example, PBA # 176 (binary notation: 00 0000 1011 0000) corresponding to PZIBN # 11 of PZN # 0 is 4 bits indicating PZN # 0 below PZIBN # 11 (binary notation: 00 0000 1011). It can be obtained by adding 0000 ″.

以上で説明したように、本実施の形態のフラッシュメモリシステム1では、各物理ゾーンに物理ブロックを所定個数ずつ順次振り分けるようにしたので、PBAが連続する複数個の不良ブロック(例えば、初期不良の物理ブロック)があるときに、それらの不良ブロックが特定の物理ゾーンに含まれてしまうことが少なくなる。例えば、フラッシュメモリ2内の物理ブロックを8個の物理ゾーンに振り分けるときにPBAが連続する8個の不良ブロックがあった場合、物理ブロックの振り分け単位の所定個数が4個であればこれらの不良ブロックは少なくとも2個の物理ゾーンに振り分けられ、物理ブロックの振り分け単位の所定個数が2個であればこれらの不良ブロックは少なくとも4個の物理ゾーンに振り分けられ、物理ブロックの振り分け単位の所定個数が1個であればこれらの不良ブロックは8個の物理ゾーンに振り分けられる。つまり、物理ブロックの振り分け単位の所定個数を小さくした方が、PBAが連続する複数個の不良ブロックを、より多くの物理ゾーンに振り分けることができる。   As described above, in the flash memory system 1 according to the present embodiment, since a predetermined number of physical blocks are sequentially allocated to each physical zone, a plurality of defective blocks (for example, initial defective ones) with consecutive PBAs are allocated. When there are physical blocks), it is less likely that these bad blocks are included in a specific physical zone. For example, if there are 8 defective blocks with consecutive PBAs when allocating physical blocks in the flash memory 2 to 8 physical zones, if the predetermined number of physical block allocation units is 4, these defects will occur. Blocks are allocated to at least two physical zones, and if the predetermined number of physical block allocation units is two, these bad blocks are allocated to at least four physical zones, and the predetermined number of physical block allocation units is If there is one, these bad blocks are distributed to eight physical zones. That is, if the predetermined number of physical block allocation units is reduced, a plurality of defective blocks having consecutive PBAs can be allocated to more physical zones.

本発明の実施の形態に係るフラッシュメモリシステムを概略的に示すブロック図である。1 is a block diagram schematically showing a flash memory system according to an embodiment of the present invention. この発明の実施の形態のフラッシュメモリのアドレス空間の構造を概略的に示す図である。It is a figure which shows roughly the structure of the address space of the flash memory of embodiment of this invention. ホストインターフェースブロック及びフラッシュメモリインタフェースブロックの構成を示すブロック図である。It is a block diagram which shows the structure of a host interface block and a flash memory interface block. (a)は、PBAのデータ構造の一例を示す図であり、(b)は、各物理ゾーンへの物理ブロックの割り当ての例を示す図である。(A) is a figure which shows an example of the data structure of PBA, (b) is a figure which shows the example of allocation of the physical block to each physical zone. 図4(a)のPBAのデータ構造の場合の、各物理ゾーンへの物理ブロックの割り当ての例を示す図である。FIG. 5 is a diagram showing an example of physical block allocation to each physical zone in the case of the PBA data structure of FIG. (a)は、PBAのデータ構造の他の一例を示す図であり、(b)は、各物理ゾーンへの物理ブロックの割り当ての例を示す図である。(A) is a figure which shows another example of the data structure of PBA, (b) is a figure which shows the example of allocation of the physical block to each physical zone. 図6(a)のPBAのデータ構造の場合の、各物理ゾーンへの物理ブロックの割り当ての例を示す図である。FIG. 7 is a diagram illustrating an example of physical block allocation to each physical zone in the case of the PBA data structure of FIG. 従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。It is a figure which shows roughly the structure of the address space of the conventional flash memory.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 内部クロック源
25 ユーザ領域
26 冗長領域
1 Flash memory system 2 Flash memory 3 Controller 4 Host system 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 ROM
13 External bus 14 Internal bus 15 Internal clock source 25 User area 26 Redundant area

Claims (2)

ホストシステムからの命令に応答して、物理ブロック単位で記憶データの消去が行われるフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリ内の物理ブロックを、物理ブロックの物理ブロックアドレスの順番で1個ずつ、2のべき乗個の物理ゾーンに振り分けることにより、複数個の物理ブロックが含まれる前記物理ゾーンを2のべき乗個形成する物理ゾーン形成手段と、
前記ホストシステム側のアドレス空間における論理アドレスが連続する複数セクタの領域が含まれる論理ブロックを複数集めた論理ゾーンを前記物理ゾーンの個数と同数形成する論理ゾーン形成手段と、
前記物理ゾーンと前記論理ゾーンとの対応関係を、前記物理ゾーンに付けられた0から始まる通し番号である物理ゾーン番号と前記論理ゾーンに付けられた0から始まる通し番号である論理ゾーン番号との対応関係により管理するゾーン管理手段と、
相互に対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を、前記物理ゾーン内の物理ブロックに付けられた0から始まる通し番号である物理ゾーン内ブロック番号と前記論理ゾーン内の論理ブロックに付けられた0から始まる通し番号である論理ゾーン内ブロック番号との対応関係により管理するアドレス管理手段と、
前記ホストシステムから与えられる命令に応答して、フラッシュメモリにアクセスするアクセス手段とを備え
前記アクセス手段は、前記物理ゾーン番号と前記論理ゾーン番号との対応関係に基づいてアクセス対象の物理ブロックが属する前記物理ゾーンの前記物理ゾーン番号を特定し、前記物理ゾーン内ブロック番号と前記論理ゾーン内ブロック番号との対応関係に基づいてアクセス対象の物理ブロックの前記物理ゾーン内ブロック番号を特定し、特定された前記物理ゾーン番号と前記物理ゾーン内ブロック番号とを前記物理ゾーン番号を下位側にして2進数表記で連結することによりアクセス対象の物理ブロックの物理ブロックアドレスを求める、
ことを特徴とするメモリコントローラ。
A memory controller that controls access to a flash memory in which stored data is erased in units of physical blocks in response to a command from a host system,
By distributing the physical blocks in the flash memory one by one in the order of the physical block addresses of the physical blocks to the power zone of 2 physical zones , the physical zone including a plurality of physical blocks is raised to a power of 2 A physical zone forming means to form;
Logical zone forming means for forming a logical zone in which a plurality of logical blocks including a plurality of sector areas having continuous logical addresses in the address space on the host system side is formed, the same number as the number of the physical zones;
The correspondence between the physical zone and the logical zone is the correspondence between the physical zone number that is a serial number starting from 0 assigned to the physical zone and the logical zone number that is a serial number starting from 0 attached to the logical zone. and zone management means to manage by,
Between the logical zone and the physical zone that correspond to each other, the correspondence between the logical address in the logical zone and the physical address in the physical zone is attached to the physical block in the physical zone. An address management means for managing by a correspondence relationship between a physical zone block number starting from 0 and a logical zone block number starting from 0 assigned to a logical block in the logical zone ;
Access means for accessing the flash memory in response to an instruction given from the host system ,
The access means specifies the physical zone number of the physical zone to which the physical block to be accessed belongs based on the correspondence between the physical zone number and the logical zone number, and the physical zone block number and the logical zone The physical zone block number of the physical block to be accessed is identified based on the correspondence relationship with the internal block number, and the identified physical zone number and the intra-physical zone block number are set to the lower side. To obtain the physical block address of the physical block to be accessed by concatenating in binary notation,
A memory controller characterized by that.
請求項1に記載のメモリコントローラと、フラッシュメモリと、から構成される、
ことを特徴とするフラッシュメモリシステム。
The memory controller according to claim 1 and a flash memory.
A flash memory system characterized by that.
JP2006021958A 2006-01-31 2006-01-31 Memory controller and flash memory system Expired - Fee Related JP4241741B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006021958A JP4241741B2 (en) 2006-01-31 2006-01-31 Memory controller and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006021958A JP4241741B2 (en) 2006-01-31 2006-01-31 Memory controller and flash memory system

Publications (2)

Publication Number Publication Date
JP2007206774A JP2007206774A (en) 2007-08-16
JP4241741B2 true JP4241741B2 (en) 2009-03-18

Family

ID=38486232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006021958A Expired - Fee Related JP4241741B2 (en) 2006-01-31 2006-01-31 Memory controller and flash memory system

Country Status (1)

Country Link
JP (1) JP4241741B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4636005B2 (en) * 2006-11-13 2011-02-23 Tdk株式会社 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP5952036B2 (en) * 2012-03-13 2016-07-13 株式会社メガチップス Semiconductor memory reuse processing apparatus and semiconductor memory
JP5956791B2 (en) * 2012-03-13 2016-07-27 株式会社メガチップス Semiconductor memory reuse processing apparatus and semiconductor memory

Also Published As

Publication number Publication date
JP2007206774A (en) 2007-08-16

Similar Documents

Publication Publication Date Title
JP4171749B2 (en) Memory controller and flash memory system
JP4666081B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2006018373A (en) Memory controller, flash memory system and control method for flash memory
JP4235646B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4636005B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4241741B2 (en) Memory controller and flash memory system
JP4710753B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM USING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4434171B2 (en) Memory controller and flash memory system
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4661566B2 (en) Access controller, flash memory system, and access control method
JP4254933B2 (en) Memory controller and flash memory system
JP3934659B1 (en) Memory controller and flash memory system
JP4177292B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD
JP4636046B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4213166B2 (en) Memory controller and flash memory system
JP4273109B2 (en) Memory controller and flash memory system
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP4227989B2 (en) Memory controller and flash memory system
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081205

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

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

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130109

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees