JP4636005B2 - MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD - Google Patents

MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Download PDF

Info

Publication number
JP4636005B2
JP4636005B2 JP2006306153A JP2006306153A JP4636005B2 JP 4636005 B2 JP4636005 B2 JP 4636005B2 JP 2006306153 A JP2006306153 A JP 2006306153A JP 2006306153 A JP2006306153 A JP 2006306153A JP 4636005 B2 JP4636005 B2 JP 4636005B2
Authority
JP
Japan
Prior art keywords
logical
zone
physical
flash memory
block
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
JP2006306153A
Other languages
Japanese (ja)
Other versions
JP2008123241A (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 JP2006306153A priority Critical patent/JP4636005B2/en
Publication of JP2008123241A publication Critical patent/JP2008123241A/en
Application granted granted Critical
Publication of JP4636005B2 publication Critical patent/JP4636005B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

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

近年、不揮発性の記憶媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器(ホストシステム)の記憶媒体として普及している。   In recent years, 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).

従来の複数のゾーンを有するフラッシュメモリの記憶領域を、より具体的に示せば、例えば図3に示す形に区画され、管理されていた。   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. 3, for example.

すなわち、データの物理的な読み書きの単位であるページを所定数含んだ、データ消去の単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれに固有の物理ゾーン番号(PZN)が割り当てられる。図3の例では、計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の物理ゾーンに属する。   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. 3, a total of 2048 physical blocks are assigned consecutive PBAs # 0 to # 2047, and a total of 512 physical blocks PBA # 0 to # 511 are assigned to the physical zone of PZN # 0. A total of 512 physical blocks of PBA # 512 to # 1023 belong to the physical zone of PZN # 1, a total of 512 physical blocks of PBA # 1024 to # 1535 belong to the physical zone of PZN # 2, and PBA # A total of 512 physical blocks 1536 to # 2047 belong to the physical zone of PZN # 3.

一方、ホストシステム側のアドレス空間は、セクタ(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, information (hereinafter referred to as logical address information) for identifying a logical block corresponding to the data, for example, LZIBN or LBN is written in the redundant area of the physical block in which the data is written.

なお、物理ブロックと論理ブロックとの対応関係は、データの書き込みや消去が行われる毎に変化する。このため、個々の時点における両者の対応関係を管理するためアドレス変換テーブルが作成され、対応関係が変化する毎にアドレス変換テーブルが更新される。このアドレス変換テーブルを作成するときは、論理ゾーンと物理ゾーンとの対応関係に基づいて特定される物理ゾーン内の物理ブロックの冗長領域を順次参照され、冗長領域に書き込まれている論理アドレス情報に基づいてアドレス変換テーブルが作成される。   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. When creating this address conversion table, the redundant areas of the physical blocks in the physical zone specified based on the correspondence relationship between the logical zones and the physical zones are sequentially referenced, and the logical address information written in the redundant areas is used. Based on this, an address conversion table is created.

ここで、冗長領域に書き込まれる論理アドレス情報は、LZIBNとLBNのいずれの情報であってもアドレス変換テーブルを作成することができるが、一般的にはデータ量の少ないLZIBNが論理アドレス情報として冗長領域に書き込まれる。   Here, the logical address information written in the redundant area can be an LZIBN or LBN information, and an address conversion table can be created. Generally, LZIBN with a small amount of data is redundant as logical address information. Written to the area.

従来、各論理ゾーンには、LBAが連続する論理アドレスの範囲が割り当てられていた。図3の例では、LZN#0の論理ゾーンにLBA#0〜#15999のセクタが、LZN#1の論理ゾーンにLBA#16000〜#31999のセクタが、LZN#2の論理ゾーンにLBA#32000〜#47999のセクタが、LZN#3の論理ゾーンにLBA#48000〜#63999のセクタが、それぞれ割り当てられている。なお、この例では、フラッシュメモリの1個のページが1個のセクタに対応し、各物理ブロックは、32個のページで構成されている。   Conventionally, each logical zone has been assigned a range of logical addresses with consecutive LBAs. In the example of FIG. 3, 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)ずつ割り当てている。例えば、LBA#0〜31の32セクタの領域はLBN#0の論理ブロックとして、LBA#32〜63の32セクタの領域はLBN#1の論理ブロックとして、LBA#15968〜15999の32セクタの領域はLBN#499の論理ブロックとして管理されている。ここで、論理ブロックに含まれるセクタ数については、論理ブロックと物理ブロックの容量が一致するよう適宜設定される。尚、複数の物理ブロックを仮想的に結合した仮想ブロックを構成する場合は、論理ブロックと仮想ブロックの容量が一致するよう設定される。又、物理ブロックの各ページにはLBAの順番でデータが格納されるので、各論理ゾーンに含まれる論理ブロックと、その論理ゾーンに対応する物理ゾーンに含まれる物理ブロックとの対応関係に基づいて、フラッシュメモリ内のアクセス先を特定することができる。   An area of 16000 sectors assigned to each logical zone is managed as a logical block in units of 32 sectors in which LBAs are continuous in the logical zone. Accordingly, in other words, an area of 32 sectors with continuous LBA is used as a logical block, and 500 logical blocks with continuous LBN (LZIBN # 0 to # 499) are allocated to each logical zone. For example, the 32-sector area of LBA # 0-31 is the logical block of LBN # 0, the 32-sector area of LBA # 32-63 is the logical block of LBN # 1, and the 32-sector area of LBA # 15968-15999 Are managed as logical blocks of LBN # 499. Here, the number of sectors included in the logical block is appropriately set so that the capacities of the logical block and the physical block match. When configuring a virtual block in which a plurality of physical blocks are virtually combined, the logical block and the virtual block have the same capacity. 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.

特開2005−18490号公報JP 2005-18490 A

しかしながら、各論理ゾーンにLBAが連続するセクタを割り当てた場合、LBAが特定の範囲にあるセクタ(例えば、ファイルアロケーションテーブルが格納されるセクタ等)にデータの書き込みや書き換えが集中すると、そのLBAが割り当てられた論理ゾーンに対応する物理ゾーンに含まれる物理ブロックに書き込みが集中して、その物理ゾーンに含まれる物理ブロックの劣化(不良ブロック化)だけが極端に早まる、という問題が生じる。又、フラッシュメモリ内の物理ブロックには、出荷時から不良である先天性の不良ブロックが含まれている。更に、出荷時に良品の物理ブロックであっても、使用開始後に劣化して不良ブロックになる物理ブロック(後天性の不良ブロック)もある。従って、各論理ゾーンに割り当てる記憶容量は、物理ゾーンに含まれる良品の物理ブロックの個数及び後天性の不良ブロックの発生個数等を考慮して適宜設定する必要がある。   However, when a sector having consecutive LBAs is assigned to each logical zone, if data writing or rewriting concentrates on a sector in which the LBA is in a specific range (for example, a sector in which a file allocation table is stored), the LBA becomes There is a problem that writing concentrates on physical blocks included in the physical zone corresponding to the assigned logical zone, and only the deterioration (bad block formation) of the physical block included in the physical zone is extremely accelerated. In addition, the physical block in the flash memory includes a congenital defective block that is defective from the time of shipment. Furthermore, even if a physical block is a non-defective product at the time of shipment, there is a physical block (acquired defective block) that deteriorates after use and becomes a defective block. Therefore, the storage capacity allocated to each logical zone needs to be set appropriately in consideration of the number of good physical blocks included in the physical zone, the number of acquired defective blocks, and the like.

本発明は上記の実情に鑑みてなされたもので、データの書き込みがフラッシュメモリ内の特定の領域に集中することを回避すると共に、各論理ゾーンに割り当てる記憶容量を適宜調整することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。   The present invention has been made in view of the above circumstances, and it is possible to avoid the concentration of data writing in a specific area in the flash memory and to appropriately adjust the storage capacity allocated to each logical zone. And a flash memory system including the memory controller, and a flash memory control method.

上記目的を達成するため、本発明のメモリコントローラは、ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、前記ホストシステムに対してアクセスを許容する論理アドレスの範囲を設定する記憶領域設定手段と、複数個の前記論理ゾーンに対して、前記記憶領域設定手段により設定された論理アドレスの範囲を、論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配手段と、対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段とを備えることを特徴とする。   In order to achieve the above object, a memory controller of the present invention is a memory controller that controls access to a flash memory in response to an instruction from a host system, and includes a plurality of physical blocks that are erase units in the flash memory. Zone management means for managing a correspondence relationship between the collected physical zones and a logical zone in which a plurality of sectors, which are access units in the host system, are collected, and a memory for setting a range of logical addresses that allow access to the host system Corresponding to area setting means, logical address distribution means for sequentially allocating a range of logical addresses set by the storage area setting means to a plurality of logical zones in units of a predetermined number of sectors in which logical addresses are continuous. The logical zone between the logical zone and the physical zone in relation Characterized in that it comprises an address management means for managing a correspondence relationship between the logical address and the physical address in the physical zones in over emissions.

前記記憶領域設定手段は、不良ブロックを最も多く含んでいる前記物理ゾーンの不良ブロック数に基づいて前記論理アドレスの範囲を設定することが好ましい。   Preferably, the storage area setting means sets the logical address range based on the number of defective blocks in the physical zone that contains the most defective blocks.

前記複数個の論理ゾーンの数と前記所定のセクタ数単位がいずれも2のべき乗で与えられる値であることが好ましい。   It is preferable that the number of the plurality of logical zones and the predetermined sector number unit are both values given as powers of 2.

上記目的を達成するため、本発明のフラッシュメモリシステムは、前記メモリコントローラとフラッシュメモリを備えることを特徴とする。   In order to achieve the above object, a flash memory system of the present invention includes the memory controller and a flash memory.

上記目的を達成するため、本発明のフラッシュメモリの制御方法は、ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンに対してフラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンを割り当て、該割り当てに従ってフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、前記ホストシステムに対してアクセスを許容する論理アドレスの範囲を設定する記憶領域設定ステップと、前記記憶領域設定ステップで設定された論理アドレスの範囲を、複数個の前記論理ゾーンに対して論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配ステップと、前記論理ゾーンに割り振られた論理アドレスを、該論理ゾーンに割り当てられている物理ゾーン内の物理アドレスに変換するアドレス変換ステップとを含むことを特徴とする。   In order to achieve the above object, a flash memory control method according to the present invention includes a physical zone in which a plurality of physical blocks, which are erase units in a flash memory, are collected in a logical zone in which a plurality of sectors, which are access units in a host system, are collected. And a storage area setting step for setting a range of logical addresses that allow access to the host system, and the storage area setting. A logical address distribution step of sequentially allocating a range of logical addresses set in the step in units of a predetermined number of sectors in which logical addresses are continuous with respect to a plurality of the logical zones; and logical addresses allocated to the logical zones, Physical zone assigned to the logical zone Characterized in that it comprises an address conversion step of converting the physical address of the inner.

前記記憶領域設定ステップにおいて、不良ブロックを最も多く含んでいる前記物理ゾーンの不良ブロック数に基づいて前記論理アドレスの範囲を設定することが好ましい。   In the storage area setting step, it is preferable that the range of the logical address is set based on the number of defective blocks in the physical zone that contains the most defective blocks.

本発明によれば、複数セクタの領域で構成された論理ゾーンに対して複数の物理ブロックで構成された物理ゾーンを割り当て、この割り当てに従ってフラッシュメモリにアクセスするフラッシュメモリシステムにおいて、ホストシステムに対してアクセスを許容する論理アドレスの範囲を設定すると共に、設定した論理アドレスの範囲(領域)を、複数個の論理ゾーンに対して論理アドレスが連続する所定のセクタ数単位で順次割り振るようにしたので、各論理ゾーンに割り当てる記憶容量を適宜調整することができる。又、このように論理アドレスの範囲(領域)を各論理ゾーンに割り振ることにより、論理アドレスの特定の範囲に対するアクセスを、複数の物理ゾーン内の物理ブロックに対するアクセスに分散させることができる。   According to the present invention, in a flash memory system in which a physical zone configured by a plurality of physical blocks is allocated to a logical zone configured by a region of a plurality of sectors, and the flash memory is accessed according to the allocation, the host system The logical address range that allows access is set, and the set logical address range (area) is sequentially allocated to a plurality of logical zones in units of a predetermined number of sectors in which logical addresses are continuous. The storage capacity allocated to each logical zone can be adjusted as appropriate. In addition, by assigning logical address ranges (areas) to each logical zone in this way, access to a specific range of logical addresses can be distributed to accesses to physical blocks in a plurality of physical zones.

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

図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。   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, one gate is called a control gate, and the other gate is called a floating gate. Data is written or erased by injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate.

このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。   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(a)に示したような小ブロックのフラッシュメモリと、図2(b)に示したような大ブロックのフラッシュメモリが一般的に使用されている。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域25と16バイトの冗長領域26で構成されている。また、大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域25と64バイトの冗長領域26で構成されている。   Although the configuration of the block and page differs depending on the specifications of the flash memory, a small block flash memory as shown in FIG. 2A and a large block flash memory as shown in FIG. Has been used. In the small block configuration, as shown in FIG. 2A, one block is composed of 32 pages (P0 to P31), and each page is composed of a 512-byte user area 25 and a 16-byte redundant area 26. Yes. In the large block configuration, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area 25 and a 64-byte redundant area 26. Has been.

ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納するための領域である。   The user area 25 is an area for storing 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 pages in the physical block including the page is changed to the physical block in which the stored data is erased ( Hereinafter referred to as an erased block.) Must be written again.

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

上記のようなデータの書き換えでは、書き換えの前後で論理ブロックアドレスと物理ブロックアドレスの対応関係が変化する。つまり、論理ブロックアドレスと物理ブロックアドレスの対応関係は、フラッシュメモリ2に記憶されているデータが書き換えられる毎に変化する。   In the data rewriting as described above, the correspondence relationship between the logical block address and the physical block address changes before and after the rewriting. That is, the correspondence relationship between the logical block address and the physical block address changes every time data stored in the flash memory 2 is rewritten.

従って、論理ブロックと物理ブロックの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各物理ブロックの先頭ページの冗長領域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 the first page of each physical block.

ブロックステータス(フラグ)は、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域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は、図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 (sequence command) 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は、外部バス13を介して、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   The host interface block 7 exchanges data, address information, status information, external commands and the like with the host system 4 via the external bus 13. 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. The work area 8 stores, for example, an address conversion table for converting a logical address and a physical address, an empty block search table for searching for an empty block, and the like.

バッファ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との間で、データ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。   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.

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.

次に、本発明に係るフラッシュメモリシステムにおける論理ゾーンの構成について説明する。本発明に係るフラッシュメモリシステム1では、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)を設定し、設定された論理アドレスの範囲(領域)を各論理ゾーンに振り分けている。まず、この論理アドレスの範囲(領域)の振り分けについて説明する。   Next, the configuration of the logical zone in the flash memory system according to the present invention will be described. In the flash memory system 1 according to the present invention, a range (area) of logical addresses that allows access from the host system side is set, and the set range (area) of logical addresses is assigned to each logical zone. First, the allocation of the range (area) of logical addresses will be described.

本実施の形態においては、図4(b)に示したように、LBAによる論理アドレスの範囲(領域)を、論理アドレスが連続する(LBAが連続する)4セクタ単位でLZN#0〜#3の4個の論理ゾーンに順次割り振っている。このように論理アドレスの範囲(領域)を各論理ゾーンに割り振ることにより、LBAの特定の範囲に対するアクセスが、複数の物理ゾーン内の物理ブロックに対するアクセスに分散される。例えば、LBAが連続する16セクタの範囲にアクセスが集中した場合、そのアクセスはLZN#0〜#3の各論理ゾーンに割り当てられている4個の物理ゾーン内の物理ブロックに対するアクセスに分散される。   In the present embodiment, as shown in FIG. 4B, the logical address range (area) by LBA is divided into LZN # 0 to # 3 in units of 4 sectors where logical addresses are continuous (LBA is continuous). The four logical zones are allocated sequentially. By assigning logical address ranges (areas) to each logical zone in this way, access to a specific range of LBAs is distributed to access to physical blocks in a plurality of physical zones. For example, when access is concentrated in a range of 16 sectors in which LBAs are continuous, the access is distributed to access to physical blocks in four physical zones allocated to each logical zone of LZN # 0 to # 3. .

尚、振り分け先の論理ゾーンの個数及び振り分け単位のセクタ数が2のべき乗の値であれば、LBAの特定のビットから振り分け先の論理ゾーンを判別することができる。つまり、振り分け先の論理ゾーンの個数が2個、振り分け単位のセクタ数が2セクタの場合、LBAの下位側から数えてq+1ビット目からp+qビット目までのビットから振り分け先の論理ゾーンを判別することができる。 If the number of logical zones to be distributed and the number of sectors in the distribution unit are powers of 2, the logical zone to be distributed can be determined from specific bits of the LBA. That is, the number is 2 p number of logical zones assignment destination, if the number of sectors sorting unit is 2 q sectors, a logical zone assignment destination from bits counted from the lower side of the LBA from q + 1 bit to p + q-th bit Can be determined.

図4(b)に示したように、振り分け先の論理ゾーンの個数が4(2)個、振り分け単位のセクタ数が4(2)セクタの場合、図4(a)に示したように、LBAの下位側から数えて3ビット目と4ビット目までの2ビットの値(0〜3)に基づいて振り分け先の論理ゾーンのLZNを判別することができる。以下、LZNを判別するためのビットを、LZN判別ビットという。又、図4(a)では、LBA#0〜#63999の範囲の振り分け説明するため、LBAを16ビットで示している。 As shown in FIG. 4B, when the number of logical zones to be distributed is 4 (2 2 ) and the number of sectors in the distribution unit is 4 (2 2 ), as shown in FIG. In addition, it is possible to determine the LZN of the logical zone as the distribution destination based on the 2-bit values (0 to 3) up to the third and fourth bits counted from the lower side of the LBA. Hereinafter, a bit for determining LZN is referred to as an LZN determination bit. In FIG. 4A, the LBA is represented by 16 bits in order to explain the distribution of the range of LBA # 0 to # 63999.

図4(a)に示した例では、LBA#0〜#3のときLZN判別ビット(LBAの下位側から数えて4ビット目と3ビット目)は2進数表示で"00"となり、LBA#4〜#7のときLZN判別ビットは2進数表示で"01"となり、LBA#8〜#11のときLZN判別ビットは2進数表示で"10"となり、LBA#12〜#15のときLZN判別ビットは2進数表示で"11"となる。つまり、LZN判別ビット(LBAの下位側から数えて4ビット目と3ビット目)の値が、振り分け先のLZNに対応している。又、各論理ゾーンに振り分けられた論理アドレスの領域は所定のセクタ数毎にまとめられ、まとめられた所定のセクタ数の領域は論理ブロックとして取り扱われる。ここで、LBAからLZN判別ビットを除いたものをLBA'とし、各論理ブロックに含まれる領域のセクタ数を2セクタとした場合、各論理ゾーンに含まれる論理ブロックのLZIBNはLBA'の下位rビットを除いた上位ビットに対応する。つまり、各論理ブロックが32(2)セクタの領域で構成されている場合、LBA'の下位5ビットを除いた上位9ビットが各論理ゾーンに含まれる論理ブロックのLZIBNに対応する。 In the example shown in FIG. 4A, when LBA # 0 to # 3, the LZN discrimination bit (the fourth and third bits counted from the lower side of the LBA) is “00” in binary notation, and LBA # The LZN discrimination bit is “01” in binary notation when 4 to # 7, the LZN discrimination bit is “10” in binary notation when LBA # 8 to # 11, and the LZN discrimination when LBA # 12 to # 15. The bit is “11” in binary notation. That is, the value of the LZN discrimination bit (the fourth and third bits counted from the lower side of the LBA) corresponds to the distribution destination LZN. In addition, the areas of the logical addresses distributed to each logical zone are collected for each predetermined number of sectors, and the combined areas of the predetermined number of sectors are handled as logical blocks. Here, the minus the LZN discriminating bit from LBA LBA lower 'and the number of sectors areas included in each logical block when a 2 r sectors, LZIBN of logic blocks included in each logical zone LBA' Corresponds to upper bits excluding r bits. That is, when each logical block is composed of 32 (2 5 ) sector areas, the upper 9 bits excluding the lower 5 bits of LBA ′ correspond to the LZIBN of the logical block included in each logical zone.

一方、従来のようにLBAが連続する16000セクタの領域を、LZN#0〜#3の論理ゾーンにそれぞれ割り当てた場合は、LBAの下位5ビットを除いた上位11ビットが各論理ブロックのLBNに対応する。このLBNを論理ゾーンに含まれる論理ブロックの個数で割ったときの商がLZNに対応し、余りがLZIBNに対応する。   On the other hand, when an area of 16000 sectors with continuous LBA is allocated to logical zones of LZN # 0 to # 3 as in the prior art, the upper 11 bits excluding the lower 5 bits of LBA are assigned to the LBN of each logical block. Correspond. The quotient obtained by dividing this LBN by the number of logical blocks included in the logical zone corresponds to LZN, and the remainder corresponds to LZIBN.

又、図4(b)に示したように、LBAによる論理アドレスの範囲(領域)を、論理アドレスが連続する(LBAが連続する)4セクタ単位でLZN#0〜#3の4個の論理ゾーンに順次割り振った場合、各論理ブロックは、4つずつ連続する32セクタの領域で構成される。例えば、LZN#0の論理ゾーンのLZIBN#0の論理ブロックは、図5に示すように、LBA=#0〜#3,#16〜#19,#32〜#35,#48〜#51,#64〜#67,#80〜#83,#96〜#99、#112〜#115の32セクタの領域で構成される。この論理ブロックは、フラッシュメモリ2のPZN#0の物理ゾーンに含まれるいずれかの物理ブロックに対応付けられる。   Also, as shown in FIG. 4B, the logical address range (area) by LBA is divided into four logical units LZN # 0 to # 3 in units of four sectors where logical addresses are continuous (LBA is continuous). When sequentially assigned to zones, each logical block is composed of four consecutive 32-sector areas. For example, as shown in FIG. 5, the logical blocks of LZIBN # 0 in the logical zone of LZN # 0 are LBA = # 0 to # 3, # 16 to # 19, # 32 to # 35, # 48 to # 51, It consists of 32 sector areas # 64 to # 67, # 80 to # 83, # 96 to # 99, and # 112 to # 115. This logical block is associated with one of the physical blocks included in the physical zone of PZN # 0 of the flash memory 2.

同様に、LZN#1の論理ゾーンのLZIBN#0の論理ブロックは、LBA=#4〜#7,#20〜#23,#36〜#39,#52〜#55,#68〜#71,#84〜#87,#100〜#103、#116〜#119の32セクタの領域で構成される。この論理ブロックは、フラッシュメモリ2のPZN#1の物理ゾーンに含まれるいずれかの物理ブロックに対応付けられる。   Similarly, the logical blocks of LZIBN # 0 in the logical zone of LZN # 1 are LBA = # 4 to # 7, # 20 to # 23, # 36 to # 39, # 52 to # 55, # 68 to # 71, It is composed of 32 sector areas # 84 to # 87, # 100 to # 103, and # 116 to # 119. This logical block is associated with one of the physical blocks included in the physical zone of PZN # 1 of the flash memory 2.

上述の実施の形態では、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)を、LBAが連続する4セクタ単位で振り分けたが、この振り分けの単位を適宜設定すれば、LBAの特定の領域(例えば、FAT(ファイルアロケーションテーブル)が書き込まれる領域)にアクセスが集中した場合であっても、その特定の領域へのアクセスを、複数の論理ゾーンに振り分けることができる。このような振り分けを行うことにより、LBAの特定の領域へのアクセスが、複数の物理ゾーン内の物理ブロックに対するアクセスに分散される。尚、振り分けの単位のセクタ数は、論理ゾーンに含まれる全セクタ数より少ないセクタ数であれば任意で設定することができる。   In the above-described embodiment, the range (area) of logical addresses that allow access from the host system side is allocated in units of 4 sectors in which LBAs are continuous. If this allocation unit is set appropriately, the LBA can be specified. Even when access is concentrated on a certain area (for example, an area in which FAT (file allocation table) is written), access to the specific area can be distributed to a plurality of logical zones. By performing such distribution, access to a specific area of the LBA is distributed to access to physical blocks in a plurality of physical zones. Note that the number of sectors in the allocation unit can be arbitrarily set as long as the number of sectors is less than the total number of sectors included in the logical zone.

ここで、振り分け先の論理ゾーンの個数が4(2)個、振り分け単位のセクタ数が8(2)セクタの場合と、振り分け先の論理ゾーンの個数が32(2)個、振り分け単位のセクタ数が256(2)セクタの場合について説明する。 Here, when the number of logical zones to be distributed is 4 (2 2 ) and the number of sectors in the distribution unit is 8 (2 3 ), the number of logical zones to be distributed is 32 (2 5 ). A case where the number of sector units is 256 (2 8 ) sectors will be described.

図6(b)は4(2)個の論理ゾーンに8(2)セクタ単位で振り分けた場合を示している。この場合、図6(a)に示したように、LBAの下位側から数えて4ビット目から5ビット目までのビットがLZN判別ビットになる。つまり、p=2、q=3とした場合の2個の論理ゾーンに対する2セクタ単位の振り分けなので、LBAの下位側から数えて4(q+1)ビット目から5(p+q)ビット目までのビットから振り分け先の論理ゾーンを判別することができる。 FIG. 6B shows a case where 4 (2 2 ) logical zones are allocated in units of 8 (2 3 ) sectors. In this case, as shown in FIG. 6A, the 4th to 5th bits counted from the lower side of the LBA are LZN determination bits. That, p = 2, since q = 3 and the a distribution of 2 q sectors for 2 p number of logical zones case, counted from the lower side of the LBA 4 (q + 1) from the bit 5 (p + q) to bit The logical zone of the distribution destination can be determined from the bit.

図7(b)は32(2)個の論理ゾーンに256(2)セクタ単位で振り分けた場合を示している。この場合、図7(a)に示したように、LBAの下位側から数えて9ビット目から13ビット目までのビットがLZN判別ビットになる。つまり、p=5、q=8とした場合の2個の論理ゾーンに対する2セクタ単位の振り分けなので、LBAの下位側から数えて9(q+1)ビット目から13(p+q)ビット目までのビットから振り分け先の論理ゾーンを判別することができる。尚、各論理ブロックは32セクタの領域で構成されているので、256(2)セクタ単位の振り分けは、論理ブロックを8ブロック単位で各論理ゾーンに振り分けた場合に相当する。 FIG. 7 (b) shows a case where 256 (2 8 ) sectors are allocated to 32 (2 5 ) logical zones. In this case, as shown in FIG. 7A, the 9th to 13th bits counted from the lower side of the LBA are LZN determination bits. In other words, since the distribution is made in units of 2 q sectors for 2 p logical zones when p = 5 and q = 8, from the 9 (q + 1) th bit to the 13 (p + q) th bit counted from the lower side of the LBA The logical zone of the distribution destination can be determined from the bits. Since each logical block is composed of an area of 32 sectors, the distribution in units of 256 (2 8 ) sectors corresponds to the case where the logical blocks are allocated to each logical zone in units of 8 blocks.

尚、各論理ゾーンに含まれる論理ブロックのLZIBNについては、図4(a)の場合と同様な方法で求めることができる。つまり、LBAからLZN判別ビットを除いたLBA'を求め、このLBA'下位5ビットを除いた上位ビットが各論理ゾーンに含まれる論理ブロックのLZIBNに対応する。   The LZIBN of the logical block included in each logical zone can be obtained by the same method as in FIG. 4A. That is, LBA ′ obtained by removing the LZN discrimination bit from LBA is obtained, and the upper bits excluding the lower 5 bits of LBA ′ correspond to the LZIBN of the logical block included in each logical zone.

以上の説明では、論理ゾーンの数と論理ゾーンに振り分ける1単位のセクタ数をいずれも2のべき乗個としたが、2のべき乗個でなくても、フラッシュメモリの特定の領域に書き込みが集中することを回避できる。ただし、論理ゾーンの数と論理ゾーンに振り分ける単位が2のべき乗個でない場合には、LBAの特定のビットでLZN、LZIBNを判別することができなくなる。   In the above description, the number of logical zones and the number of one-unit sectors allocated to the logical zones are both powers of 2. However, even if they are not powers of 2, writing concentrates in a specific area of the flash memory. You can avoid that. However, when the number of logical zones and the unit to be distributed to the logical zones are not a power of 2, LZN and LZIBN cannot be determined by specific bits of LBA.

次に、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)の設定について説明する。本実施の形態では、各論理ゾーンに物理ゾーンを割り当て、各論理ゾーンに含まれる論理ブロックに対応するデータを、その論理ブロックが含まれる論理ゾーンに割り当てられた物理ゾーン内の物理ブロックに書き込んでいる。このような物理ゾーン内の物理ブロックに記憶されているデータの書き換え処理では、通常、書き換え処理用の物理ブロックが1個以上必要になる。従って、各論理ゾーンに含まれる論理ブロックの個数は、その論理ゾーンに割り当てられた物理ゾーンに含まれる良品の物理ブロックの個数より1個以上少なくする必要がある。   Next, setting of a logical address range (area) that allows access from the host system side will be described. In this embodiment, a physical zone is allocated to each logical zone, and data corresponding to the logical block included in each logical zone is written to the physical block in the physical zone allocated to the logical zone including the logical block. Yes. In rewriting processing of data stored in a physical block in such a physical zone, one or more physical blocks for rewriting processing are usually required. Therefore, the number of logical blocks included in each logical zone needs to be one or more less than the number of non-defective physical blocks included in the physical zone assigned to the logical zone.

又、フラッシュメモリ内の物理ブロックには、出荷時から不良である先天性の不良ブロックが含まれている。更に、出荷時に良品の物理ブロックであっても、使用開始後に劣化して不良ブロックになる物理ブロック(後天性の不良ブロック)もある。従って、各論理ゾーンに含まれる論理ブロックの個数は、物理ゾーンに含まれる良品の物理ブロックの個数及び後天性の不良ブロックの発生個数等を考慮して決めなければならない。   In addition, the physical block in the flash memory includes a congenital defective block that is defective from the time of shipment. Furthermore, even if a physical block is a non-defective product at the time of shipment, there is a physical block (acquired defective block) that deteriorates after use and becomes a defective block. Therefore, the number of logical blocks included in each logical zone must be determined in consideration of the number of good physical blocks included in the physical zone, the number of acquired defective blocks, and the like.

例えば、後天性の不良ブロックの発生個数等を考慮した予備ブロックの個数を用途に応じて決めておけば、その予備ブロックの個数に応じて各論理ゾーンに割り当てる論理ブロックの個数を決定することができる。つまり、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)の設定の際に、物理ゾーンに含まれる良品の物理ブロックの個数から予備ブロックの個数を引いた個数を論理ゾーンに割り当てる論理ブロックの個数とすればよい。   For example, if the number of spare blocks in consideration of the number of acquired defective blocks is determined according to the application, the number of logical blocks to be assigned to each logical zone can be determined according to the number of spare blocks. it can. In other words, when setting the range (area) of logical addresses that are allowed to be accessed from the host system, the logical zone is assigned a number obtained by subtracting the number of spare blocks from the number of good physical blocks contained in the physical zone. The number of blocks may be used.

又、上述の論理アドレスの範囲(領域)は、各論理ゾーンに対して均等に振り分けられる。つまり、各論理ゾーンに割り当てられる論理アドレスの領域(各論理ゾーンに割り当てられる論理ブロックの個数)は等しくなる。従って、各論理ゾーンに割り当てる論理アドレスの領域(各論理ゾーンに割り当てる論理ブロックの個数)は、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)の設定の際に、物理ゾーンに含まれる良品の物理ブロックの個数が一番少ない物理ゾーンを基準に決定しなければならない。   The above-described logical address range (area) is equally distributed to each logical zone. That is, the areas of logical addresses assigned to each logical zone (the number of logical blocks assigned to each logical zone) are equal. Therefore, the logical address area (number of logical blocks assigned to each logical zone) assigned to each logical zone is included in the physical zone when setting the range (area) of logical addresses that are allowed to be accessed from the host system. It must be determined based on the physical zone with the least number of good physical blocks.

例えば、予備ブロックの個数を8個として各論理ゾーンに割り当てられる論理ブロックの個数を決定する場合に、PZN#0の物理ゾーンに含まれる良品の物理ブロックの個数が510個、PZN#1の物理ゾーンに含まれる良品の物理ブロックの個数が508個、PZN#2の物理ゾーンに含まれる良品の物理ブロックの個数が511個、PZN#3の物理ゾーンに含まれる良品の物理ブロックの個数が509個であれば、PZN#1の物理ゾーンに含まれる良品の物理ブロックの個数に基づいて、各論理ゾーンに割り当てる論理ブロックの個数を500(=508−8)個にする。又、各論理ゾーンに割り当てる論理アドレスの領域は、16000(=500×32)セクタの領域になる。   For example, when the number of spare blocks is set to 8 and the number of logical blocks allocated to each logical zone is determined, the number of non-defective physical blocks included in the physical zone of PZN # 0 is 510, and the physical block of PZN # 1 The number of non-defective physical blocks included in the zone is 508, the number of non-defective physical blocks included in the physical zone of PZN # 2 is 511, and the number of non-defective physical blocks included in the physical zone of PZN # 3 is 509. If it is, the number of logical blocks allocated to each logical zone is set to 500 (= 508-8) based on the number of non-defective physical blocks included in the physical zone of PZN # 1. The area of the logical address assigned to each logical zone is an area of 16000 (= 500 × 32) sectors.

ここで、各物理ゾーンに含まれる良品の物理ブロックの個数は、各物理ゾーンに含まれる不良ブロック数をカウントし、物理ゾーン内の物理ブロックの総数から不良ブロック数を減算することにより求めることができる。この不良ブロック数をカウントするときは、フラッシュメモリ2の冗長領域26に書き込まれブロックステータス(フラグ)を順次参照していき、不良ブロックであることを示すブロックステータス(フラグ)が書き込まれている物理ブロックの数をカウントする。   Here, the number of non-defective physical blocks included in each physical zone is obtained by counting the number of defective blocks included in each physical zone and subtracting the number of defective blocks from the total number of physical blocks in the physical zone. it can. When counting the number of defective blocks, the physical data in which the block status (flag) indicating the defective block is written is sequentially written with reference to the block status (flag) written in the redundant area 26 of the flash memory 2. Count the number of blocks.

尚、予備ブロックの個数については、物理ゾーンに含まれる良品の物理ブロックの個数と予備ブロックの個数の関係を定めた予備ブロック数テーブルを予め設定しておき、この予備ブロック数テーブルに基づいて予備ブロックの個数を決めるようにしてもよい。又、物理ゾーンに含まれる良品の物理ブロックの個数に対する比率で予備ブロックの個数を決めるようにしてもよい。例えば、予備ブロックの比率を2%とした場合は、良品の物理ブロックの個数が一番少ない物理ゾーンに含まれる良品の物理ブロックの個数に0.98を乗算し、小数点以下を切り捨てることにより、各論理ゾーンに割り当てる論理ブロックの個数を求めることができる。予備ブロックの比率を3%とした場合は、良品の物理ブロックの個数が一番少ない物理ゾーンに含まれる良品の物理ブロックの個数に0.97を乗算し、小数点以下を切り捨てることにより、各論理ゾーンに割り当てる論理ブロックの個数を求めることができる。   Regarding the number of spare blocks, a spare block number table that defines the relationship between the number of non-defective physical blocks included in the physical zone and the number of spare blocks is set in advance. The number of blocks may be determined. Alternatively, the number of spare blocks may be determined by the ratio to the number of non-defective physical blocks included in the physical zone. For example, when the spare block ratio is 2%, the number of non-defective physical blocks included in the physical zone having the smallest number of non-defective physical blocks is multiplied by 0.98, and the decimal part is rounded down. The number of logical blocks allocated to each logical zone can be obtained. When the spare block ratio is 3%, each logical unit is calculated by multiplying the number of non-defective physical blocks in the physical zone with the smallest number of non-defective physical blocks by 0.97 and rounding down the numbers after the decimal point. The number of logical blocks allocated to the zone can be obtained.

次に、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)と、各論理ゾーンに割り当てる論理アドレスの領域の関係について説明する。ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)は、各論理ゾーンに割り当てる論理アドレスの領域に論理ゾーンの個数を乗算することによって求めることができる。つまり、4個の論理ゾーンに、16000(=500×32)セクタの領域をそれぞれ割り当てた場合、64000(=16000×4)セクタの領域がホストシステム側に対してアクセスを許容できる領域になる。この領域の先頭がLBA#0であれば、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)はLBN#0〜#63999の領域になる。従って、ホストシステムから要求されたアクセス対象領域が、LBN#0〜#63999の領域外であった場合、そのアクセス処理は行われず、ホストシステムに対してはエラーメッセージを通知する。   Next, the relationship between the range (area) of the logical address that allows access from the host system side and the area of the logical address assigned to each logical zone will be described. The range (area) of logical addresses that allow access from the host system side can be obtained by multiplying the area of logical addresses assigned to each logical zone by the number of logical zones. That is, when an area of 16000 (= 500 × 32) sectors is assigned to each of four logical zones, an area of 64000 (= 16000 × 4) sectors becomes an area that can be accessed on the host system side. If the head of this area is LBA # 0, the range (area) of logical addresses that allow access from the host system side is the area of LBN # 0 to # 63999. Therefore, when the access target area requested from the host system is outside the area of LBN # 0 to # 63999, the access processing is not performed and an error message is notified to the host system.

上述のようにしてホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)を設定したときは、その設定情報をフラッシュメモリ内のシステム領域に書き込んでおき、ホストシステム側からのアクセス対象領域が許容範囲内であるか否かは、システム領域に書き込まれている設定情報に基づいて判断する。システム領域に書き込まれる設定情報は、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)を特定できれる情報であればよい。例えば、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)の末尾のLBA、又はホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)の容量(例えば、セクタ数)等であってもよい。   When the range (area) of the logical address that allows access from the host system side is set as described above, the setting information is written in the system area in the flash memory, and the access target area from the host system side Is determined to be within the allowable range based on the setting information written in the system area. The setting information written in the system area may be information that can specify the range (area) of the logical address that allows access from the host system side. For example, the LBA at the end of the range (area) of the logical address that allows access from the host system side, or the capacity (for example, the number of sectors) of the range (area) of the logical address that allows access from the host system side There may be.

又、上述の説明では、各物理ゾーンにPBAが連続する物理ブロックを順次割り当てたが、各物理ゾーンに含まれる良品の物理ブロックの個数(各物理ゾーンに含まれる不良ブロックの個数)が均等になるように物理ゾーンを構成してもよい。このようすれば、特定の物理ゾーンに不良ブロックが集中したために、ホストシステム側からのアクセスを許容する論理アドレスの範囲(領域)が狭まってしまうことを回避できる。尚、各物理ゾーンに含まれる良品の物理ブロックの個数(各物理ゾーンに含まれる不良ブロックの個数)を均等にする方法としては、特開2005−209140に開示されているような1対1の対応関係を規定したテーブルに基づいて各物理ゾーンに含まれる物理ブロックのPBAを決定する方法や、1対1の写像を生成する関数に基づいて各物理ゾーンに含まれる物理ブロックのPBAを決定する方法や、テント写像のような写像循環を生成する関数に基づいて各物理ゾーンに含まれる物理ブロックのPBAを決定する方法がある。   In the above description, physical blocks having consecutive PBAs are sequentially assigned to each physical zone. However, the number of non-defective physical blocks included in each physical zone (the number of defective blocks included in each physical zone) is evenly distributed. The physical zone may be configured as follows. In this way, it can be avoided that the range (area) of logical addresses that allow access from the host system side is narrowed due to the concentration of bad blocks in a specific physical zone. As a method for equalizing the number of good physical blocks included in each physical zone (the number of defective blocks included in each physical zone), a one-to-one method as disclosed in JP-A-2005-209140 is used. A method of determining the PBA of a physical block included in each physical zone based on a table that defines the correspondence relationship, or a PBA of a physical block included in each physical zone based on a function that generates a one-to-one mapping And a method of determining the PBA of a physical block included in each physical zone based on a function that generates a map circulation such as a tent map.

なお、本実施形態は小ブロックのフラッシュメモリについて説明してきたが、大ブロックのフラッシュメモリについても同様に適用可能である。   Although the present embodiment has been described with respect to a small block flash memory, the present invention can be similarly applied to a large block flash memory.

また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。   Moreover, all the embodiment described above shows the present invention exemplarily, and does not limit the present invention, and the present invention can be implemented in other various modifications and changes. Therefore, the scope of the present invention is defined only by the claims and their equivalents.

本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。1 is a block diagram schematically showing a flash memory system in an embodiment of the present invention. FIG. 本発明の実施形態におけるフラッシュメモリのブロックとページの関係を示す説明図である。It is explanatory drawing which shows the relationship between the block and page of the flash memory in embodiment of this invention. 従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。It is a figure which shows schematically the structure of the address space of the conventional flash memory. (a)は、LBAのデータ構造の一例を示す図であり、(b)は、(a)に示すLBAの順にデータを書き込んだ場合における、書き込み先のページが属するゾーンの変遷を示す図である。(A) is a figure which shows an example of the data structure of LBA, (b) is a figure which shows the transition of the zone to which the page of a writing destination belongs when data is written in the order of LBA shown to (a). is there. 論理ブロックの構成例及び対応する物理ブロックを示す図である。It is a figure which shows the structural example of a logical block, and a corresponding physical block. (a)は、LBAのデータ構造の他の一例を示す図であり、(b)は、(a)に示すLBAの順にデータを書き込んだ場合における、書き込み先のページが属するゾーンの変遷を示す図である。(A) is a figure which shows another example of the data structure of LBA, (b) shows the transition of the zone to which the page of the writing destination belongs when data is written in the order of LBA shown in (a). FIG. (a)は、LBAのデータ構造の他の一例を示す図であり、(b)は、(a)に示すLBAの順にデータを書き込んだ場合における、書き込み先のページが属するゾーンの変遷を示す図である。(A) is a figure which shows another example of the data structure of LBA, (b) shows the transition of the zone to which the page of the writing destination belongs when data is written in the order of LBA shown in (a). FIG.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
25 ユーザ領域
26 冗長領域
DESCRIPTION OF SYMBOLS 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 25 User area 26 Redundant area

Claims (4)

ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、
前記ホストシステムに対してアクセスを許容する論理アドレスの範囲を設定する記憶領域設定手段と、
複数個の前記論理ゾーンに対して、前記記憶領域設定手段により設定された論理アドレスの範囲を、論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配手段と、
対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段と、
を備え
前記記憶領域設定手段は、不良ブロックを最も多く含んでいる前記物理ゾーンの不良ブロック数に基づいて前記論理アドレスの範囲を設定することを特徴とするメモリコントローラ。
A memory controller that controls access to a flash memory in response to a command from a host system,
Zone management means for managing a correspondence relationship between a physical zone that collects a plurality of physical blocks that are erase units in the flash memory and a logical zone that collects a plurality of sectors that are access units in the host system;
Storage area setting means for setting a range of logical addresses allowing access to the host system;
Logical address distribution means for sequentially allocating a range of logical addresses set by the storage area setting means to a plurality of logical zones in units of a predetermined number of sectors in which logical addresses are continuous;
Address management means for managing the correspondence between the logical address in the logical zone and the physical address in the physical zone between the logical zone and the physical zone in a correspondence relationship;
Equipped with a,
The storage region setting means, a memory controller, characterized in that you set the range of the logical address based on a defective block number of the physical zones that contain the largest number of bad blocks.
前記複数個の論理ゾーンの数と前記所定のセクタ数単位がいずれも2のべき乗で与えられる値であることを特徴とする請求項1に記載のメモリコントローラ。 2. The memory controller according to claim 1, wherein the number of the plurality of logical zones and the unit of the predetermined number of sectors are values given as powers of two. 請求項1又は2に記載のいずれか1項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。 Flash memory system comprising: a memory controller and a flash memory according to any one of claim 1 or 2. ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンに対してフラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンを割り当て、該割り当てに従ってフラッシュメモリへのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムに対してアクセスを許容する論理アドレスの範囲を設定する記憶領域設定ステップと、
前記記憶領域設定ステップで設定された論理アドレスの範囲を、複数個の前記論理ゾーンに対して論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配ステップと、
前記論理ゾーンに割り振られた論理アドレスを、該論理ゾーンに割り当てられている物理ゾーン内の物理アドレスに変換するアドレス変換ステップとみ、
前記記憶領域設定ステップにおいて、不良ブロックを最も多く含んでいる前記物理ゾーンの不良ブロック数に基づいて前記論理アドレスの範囲を設定することを特徴とするフラッシュメモリの制御方法。
A flash memory that allocates a physical zone that collects a plurality of physical blocks that are erase units in a flash memory to a logical zone that collects a plurality of sectors that are access units in the host system, and controls access to the flash memory according to the allocation. A control method,
A storage area setting step for setting a range of logical addresses allowing access to the host system;
A logical address distribution step of sequentially allocating a range of logical addresses set in the storage area setting step in units of a predetermined number of sectors in which logical addresses continue to the plurality of logical zones;
Said logical address assigned to the logical zone, viewed contains an address conversion step of converting into a physical address in the physical zones that are assigned to the logical zone,
The flash memory control method, wherein, in the storage area setting step, the logical address range is set based on the number of defective blocks in the physical zone that contains the most defective blocks .
JP2006306153A 2006-11-13 2006-11-13 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Expired - Fee Related JP4636005B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006306153A JP4636005B2 (en) 2006-11-13 2006-11-13 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006306153A JP4636005B2 (en) 2006-11-13 2006-11-13 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2008123241A JP2008123241A (en) 2008-05-29
JP4636005B2 true JP4636005B2 (en) 2011-02-23

Family

ID=39507931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006306153A Expired - Fee Related JP4636005B2 (en) 2006-11-13 2006-11-13 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP4636005B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5032371B2 (en) 2008-03-01 2012-09-26 株式会社東芝 Memory system
JP5521437B2 (en) * 2009-01-29 2014-06-11 日本電気株式会社 Portable terminal device, software update method and program
US11024352B2 (en) 2012-04-10 2021-06-01 Samsung Electronics Co., Ltd. Memory system for access concentration decrease management and access concentration decrease method
US10990526B1 (en) 2020-04-30 2021-04-27 Micron Technology, Inc. Handling asynchronous power loss in a memory sub-system that programs sequentially

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265162A (en) * 2003-03-03 2004-09-24 Renesas Technology Corp Storage device and address management method
JP2005122529A (en) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd Semiconductor memory device
JP2005190289A (en) * 2003-12-26 2005-07-14 Tdk Corp Memory controller, flash memory system therewith, and method for controlling flash memory
JP2006072441A (en) * 2004-08-31 2006-03-16 Sony Corp Memory device and control method of nonvolatile memory
JP2007156582A (en) * 2005-11-30 2007-06-21 Tdk Corp Memory controller and flash memory system
JP2007206774A (en) * 2006-01-31 2007-08-16 Tdk Corp Memory controller and flash memory system
JP4254933B2 (en) * 2005-11-30 2009-04-15 Tdk株式会社 Memory controller and flash memory system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265162A (en) * 2003-03-03 2004-09-24 Renesas Technology Corp Storage device and address management method
JP2005122529A (en) * 2003-10-17 2005-05-12 Matsushita Electric Ind Co Ltd Semiconductor memory device
JP2005190289A (en) * 2003-12-26 2005-07-14 Tdk Corp Memory controller, flash memory system therewith, and method for controlling flash memory
JP2006072441A (en) * 2004-08-31 2006-03-16 Sony Corp Memory device and control method of nonvolatile memory
JP2007156582A (en) * 2005-11-30 2007-06-21 Tdk Corp Memory controller and flash memory system
JP4254933B2 (en) * 2005-11-30 2009-04-15 Tdk株式会社 Memory controller and flash memory system
JP2007206774A (en) * 2006-01-31 2007-08-16 Tdk Corp Memory controller and flash memory system

Also Published As

Publication number Publication date
JP2008123241A (en) 2008-05-29

Similar Documents

Publication Publication Date Title
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US8200891B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
JP4666081B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2006018373A (en) Memory controller, flash memory system and control method for flash memory
JP4636005B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2012058770A (en) Memory controller, flash memory system equipped with memory controller and control method of flash memory
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP4235646B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4241741B2 (en) Memory controller and flash memory system
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4434171B2 (en) Memory controller and flash memory system
JP4661566B2 (en) Access controller, flash memory system, and access control method
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP4254933B2 (en) Memory controller and flash memory system
JP3934659B1 (en) Memory controller and flash memory system
JP4636046B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4697146B2 (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
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP4273109B2 (en) Memory controller and flash memory system
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

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

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

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

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4636005

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees