[go: up one dir, main page]

JP4254933B2 - Memory controller and flash memory system - Google Patents

Memory controller and flash memory system Download PDF

Info

Publication number
JP4254933B2
JP4254933B2 JP2005347359A JP2005347359A JP4254933B2 JP 4254933 B2 JP4254933 B2 JP 4254933B2 JP 2005347359 A JP2005347359 A JP 2005347359A JP 2005347359 A JP2005347359 A JP 2005347359A JP 4254933 B2 JP4254933 B2 JP 4254933B2
Authority
JP
Japan
Prior art keywords
logical
zone
block
physical
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
JP2005347359A
Other languages
Japanese (ja)
Other versions
JP2007156583A (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 JP2005347359A priority Critical patent/JP4254933B2/en
Publication of JP2007156583A publication Critical patent/JP2007156583A/en
Application granted granted Critical
Publication of JP4254933B2 publication Critical patent/JP4254933B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

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).

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

すなわち、データの物理的な読み書きの単位であるページを所定数含んだ、データ消去の単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれに固有の物理ゾーン番号(PZN)が割り当てられる。図11の例では、計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. 11, 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.

また、各ページには物理ページアドレス(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. In other words, since the correspondence relationship between the logical zone and the physical zone is set in advance, the redundant area of the physical block in the physical zone in which the address translation table is created is referred to and the redundant area of the physical block in which the data is written is referred to. An address conversion table can be created based on the written LZIBN.

ここで、冗長領域に書き込まれる論理ブロックを特定する情報(以下、論理アドレス情報という。)は、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が連続する複数のセクタが割り当てられていた。図11の例では、LZN#0の論理ゾーンにLBA#0〜#15999のセクタが、LZN#1の論理ゾーンにLBA#16000〜#31999のセクタが、LZN#2の論理ゾーンにLBA#32000〜#47999のセクタが、LZN#3の論理ゾーンにLBA#48000〜#63999のセクタが、それぞれ割り当てられている。なお、この例では、フラッシュメモリの1個のページが1個のセクタに対応し、各物理ブロックは、32個のページで構成されている。   Conventionally, a plurality of sectors with consecutive LBAs are assigned to each logical zone. In the example of FIG. 11, 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の順番でデータが格納されるので、各論理ゾーンに含まれる論理ブロックと、その論理ゾーンに対応する物理ゾーンに含まれる物理ブロックとの対応関係に基づいて、フラッシュメモリ内のアクセス先を特定することができる。
特開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 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.
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.

本発明は上記の実情に鑑みてなされたもので、データの書き込みがフラッシュメモリの特定の領域に集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object thereof is to provide a memory controller capable of avoiding that data writing is concentrated on a specific area of the flash memory, and a flash memory system including the memory controller. To do.

上記目的を達成するため、本発明のメモリコントローラは、
ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、
対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段と、
複数個の前記論理ゾーンに対して前記セクタを論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配手段と、
を備え
前記所定のセクタ数は1つの前記論理ゾーンに含まれるセクタ数より少ないものである、
ことを特徴とする。
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 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;
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;
Logical address distribution means for sequentially allocating the sectors to a plurality of logical zones in units of a predetermined number of sectors in which logical addresses are continuous;
Equipped with a,
The predetermined number of sectors is less than the number of sectors included in one logical zone.
It is characterized by that.

前記所定のセクタ数と、該所定のセクタ数単位で割り振られるセクタの割り振り先となる前記論理ゾーンのゾーン数とがいずれも2のべき乗で与えられる数値であることが望ましい。   It is desirable that both the predetermined number of sectors and the number of zones of the logical zone to which the sectors allocated in units of the predetermined number of sectors are assigned to be a power of two.

例えば、整数mは整数nより大きく、整数nは0以上であり、前記所定のセクタ数が2のn乗で、前記ゾーン数が2の(m−n)乗のとき、
前記ホストシステムから与えられるアドレスの下位側から数えてn+1ビット目からmビット目までの値に基づいて割り振り先の前記論理ゾーンを判別する。
For example, when the integer m is larger than the integer n, the integer n is 0 or more, the predetermined number of sectors is 2 to the nth power, and the number of zones is 2 to the (m−n) th power,
It determines the logical zone allocation destination based counted from the lower side of the given address value from n + 1 th bit to the m-bit counted from the host system.

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

本発明によれば、LBAが特定の範囲にあるセクタに書き込みや書き換えが集中した場合であってもデータの書き込みがフラッシュメモリの特定の領域に集中することを回避できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムが実現される。つまり、フラッシュメモリ内の物理ブロックを複数個まとめた物理ゾーンを構成して、各物理ゾーン単位でアクセスを管理する場合に、特定の物理ゾーンに含まれる物理ブロックに書き込みが集中することを回避することができる。   According to the present invention, a memory controller capable of avoiding that data writing is concentrated in a specific area of a flash memory even when writing or rewriting is concentrated in a sector whose LBA is in a specific range, and the memory controller A flash memory system is provided. In other words, when a physical zone in which a plurality of physical blocks in the flash memory are grouped and access is managed in units of each physical zone, writing is not concentrated on the physical blocks included in a specific physical zone. be able to.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。   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, 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 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 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 the first page 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 (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は、図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. 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とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、フラッシュメモリインターフェースブロック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 in accordance with a sequence command stored in the command register R21.

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

次に、上記構成のフラッシュメモリシステム1により実現される論理アドレスと物理アドレスとの変換処理について説明する。   Next, a logical address / physical address conversion process realized by the flash memory system 1 having the above configuration will be described.

本実施の形態においては、コントローラ3は、LBAが指定する連続する4セクタを単位として、第0〜第3論理ゾーンに順次割り振ることにより、LBAの特定の範囲に集中した場合に生ずる特定の論理ゾーンへのアクセスの集中を防止する。   In the present embodiment, the controller 3 assigns a specific logic that occurs when the controller 3 concentrates in a specific range of the LBA by sequentially allocating four consecutive sectors designated by the LBA to the 0th to third logical zones. Prevent concentration of access to the zone.

具体的に説明すると、まず、図4(a)に示すように、コンピュータシステムが提供するLBAを16ビットとし、全体で、64000セクタ(本実施の形態では1ページ=1セクタであるので、64000ページ)の論理空間を指定可能であるとする。   More specifically, first, as shown in FIG. 4A, the LBA provided by the computer system is 16 bits, and the total is 64000 sectors (in this embodiment, 1 page = 1 sector, so 64000). Page) logical space can be specified.

従来であれば、上位11ビットが、論理ブロックに付けられた通番である論理ブロック番号LBNを示し、下位5ビットが、論理ブロック内のセクタに付けられた通番であるセクタ番号SNを示している。さらに、論理ブロック番号LBNを、論理ゾーンに含まれる論理ブロックの数で割った商が論理ゾーン番号(LZN:0〜3)を示し、余りが論理ゾーン内の論理ブロックに付けられた通番である論理ゾーン内ブロック番号LZIBN(0〜499)であると判別して、フラッシュメモリ2へのアクセス処理を行う。尚、物理ブロックの各ページには、セクタ番号の順番でデータが格納されるので、1ページが1セクタのフラッシュメモリの場合、セクタ番号SNとページ番号PNとは一致する。   Conventionally, the upper 11 bits indicate a logical block number LBN which is a serial number assigned to a logical block, and the lower 5 bits indicate a sector number SN which is a serial number assigned to a sector in the logical block. . Further, the quotient obtained by dividing the logical block number LBN by the number of logical blocks included in the logical zone indicates the logical zone number (LZN: 0 to 3), and the remainder is the serial number assigned to the logical block in the logical zone. The logical zone block number LZIBN (0 to 499) is determined, and access processing to the flash memory 2 is performed. Since data is stored in the order of sector numbers in each page of the physical block, the sector number SN and the page number PN coincide with each other in the case of one-page flash memory.

これに対して、本実施の形態では、図4(a)に示すように、16ビットのLBAの下位から4ビット目と3ビット目の2ビットが論理ゾーン番号(LZN:0〜3を示し)を示し、この2ビットを除いた14ビットのLBA’の上位9ビットが論理ゾーン内ブロック番号LZIBN(0〜499)を示し、下位5ビットがセクタ番号SN(0〜31)を示すと判別してフラッシュメモリ2へのアクセス処理を行う。   On the other hand, in the present embodiment, as shown in FIG. 4A, the 2nd bit of the 4th and 3rd bits from the lower order of the 16-bit LBA indicates the logical zone number (LZN: 0 to 3). It is determined that the upper 9 bits of the 14-bit LBA 'excluding these 2 bits indicate the logical zone block number LZIBN (0-499) and the lower 5 bits indicate the sector number SN (0-31). Then, an access process to the flash memory 2 is performed.

このような判別を行った場合、図4(b)に示すように、各LBAが連続する4セクタを1単位として、順次、第0〜第3の論理ゾーンに割り当てられる。
例えば、LBAが、1110001100110011 であれば、従来は、「11100011001」;「10011」と区切って、LBN#1817の論理ブロックの、SNが#19のセクタを示していると判別する。更に、LBN#1817を500(論理ゾーンに含まれる論理ブロックの数)で割ったときの商である3がLZNであると判別し、余りである317がLZIBNであると判別してフラッシュメモリ2にアクセスする。
When such a determination is made, as shown in FIG. 4B, the four sectors in which each LBA is continuous are set as one unit and are sequentially assigned to the 0th to third logical zones.
For example, if the LBA is 1110001100110011, it is conventionally determined that the sector of the logical block of LBN # 1817 indicates the sector of SN # 19 by dividing it as “11100011001”; “10011”. Further, the quotient 3 obtained by dividing LBN # 1817 by 500 (the number of logical blocks included in the logical zone) is determined to be LZN, and the remainder 317 is determined to be LZIBN. To access.

これに対し、本実施形態では、LBAの下位から4ビット目と3ビット目の「00」がLZN#0の論理ゾーンを示し、この2ビットを除いたLBA’=「11100011001111」の、上位9ビット「111000110」がLZIBN#454を示し、下位5ビット「01111」がSN#15を示していると判別してフラッシュメモリ2にアクセスする   On the other hand, in the present embodiment, “00” of the fourth and third bits from the lower LBA indicates the logical zone of LZN # 0, and the upper 9 of LBA ′ = “111000011001111” excluding these 2 bits. It is determined that the bit “111000110” indicates LZIBN # 454 and the lower 5 bits “01111” indicates SN # 15, and the flash memory 2 is accessed.

この場合、各論理ブロックは、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の物理ゾーンのいずれかの物理ブロックに対応付けられる。   In this case, each logical block is composed of 32 consecutive sectors. 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 sectors, # 64 to # 67, # 80 to # 83, # 96 to # 99, and # 112 to # 115. This logical block is associated with any physical block in the physical zone of PZN # 0 of the flash memory 2.

同様に、LZN#1の論理ゾーンのLZIBN0の論理ブロックは、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 LZIBN0 in the logical zone of LZN # 1 are LBA = # 4 to # 7, # 20 to # 23, # 36 to # 39, # 52 to # 55, # 68 to # 71, # 84. -# 87, # 100- # 103, and # 116- # 119 are comprised of 32 sectors. This logical block is associated with any physical block in the physical zone of PZN # 1 of the flash memory 2.

このような構成とすることにより、各セクタをLBAが連続する4セクタ単位で、LZN#0〜3の4つの論理ゾーンに順次振り分けている。このように振り分けることにより、LBAの特定の領域(例えば、FAT(ファイルアロケーションテーブル)が書き込まれる領域)にアクセスが集中した場合であっても、特定の論理ゾーン、つまり物理ゾーンにアクセスが集中することがない。つまり、アクセスの集中するLBAの範囲が、各論理ゾーンに分割されるような単位で、各セクタを各理論ゾーンに振り分けるようにすれば、各物理ゾーンにアクセスが分散される。   By adopting such a configuration, each sector is sequentially allocated to four logical zones LZN # 0 to 3 in units of four sectors in which LBAs are continuous. By allocating in this way, even when access is concentrated in a specific area of the LBA (for example, an area in which FAT (file allocation table) is written), the access is concentrated in a specific logical zone, that is, a physical zone. There is nothing. That is, if each sector is distributed to each theoretical zone in such a unit that the LBA range where access is concentrated is divided into logical zones, access is distributed to each physical zone.

次に、フラッシュメモリシステム1の動作を説明する。まず、読み出し処理について図6〜図8を参照して説明する。   Next, the operation of the flash memory system 1 will be described. First, the reading process will be described with reference to FIGS.

この読み出し処理では、ホストインターフェースブロック7のセクタ数レジスタR2に設定されたセクタ数、LBAレジスタR3に設定されたLBAの先頭値、コマンドレジスタR1に設定された外部コマンドに基づいて処理が実行される。   In this read process, the 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. .

尚、この読み出し処理は、読み出し処理を指示する外部コマンドが、コマンドレジスタ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(図4(a)に示すように、LBAの下位側から3ビット目と4ビット目の2ビットから求められる)と論理ゾーン内ブロック番号LZIBN(図4(a)に示すように、LBA’の上位9ビットから求められる)を、論理ブロック単位で求める(ステップS1)。つまり、アクセス対象領域が複数の論理ブロックにまたがっている場合は、複数組のLZNとLZIBNを求める。   First, the microprocessor 6 determines the logical zone number LZN of the access target area (shown in FIG. 4A) 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. And the logical zone block number LZIBN (obtained from the upper 9 bits of LBA 'as shown in FIG. 4A). Is obtained in units of logical blocks (step S1). 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を求める(ステップS2)。   Next, based on the logical zone number LZN and the logical zone block number LZIBN obtained in this way, the physical block address PBA of the physical block for the logical block is obtained (step S2).

ステップS2の処理を具体的に説明すると、図7のフローチャートに示すように、まず、アクセス対象の各論理ブロックについて、その論理ブロックに対応する物理ブロックの物理ゾーン内ブロック番号PZIBNを、その論理ブロックが属す論理ゾーン用のアドレス変換テーブルを参照して求める(ステップS21)。   The processing in step S2 will be described in detail. As shown in the flowchart of FIG. 7, first, for each logical block to be accessed, the physical zone block number PZIBN of the physical block corresponding to the logical block is assigned to the logical block. It is obtained by referring to the address conversion table for the logical zone to which (1) belongs.

続いて、求めた物理ゾーン内ブロック番号PZIBNに、その物理ゾーンPZNの前に存在する物理ゾーン分のブロック数(以下、このブロック数をオフセットと言う)を加算して、物理ブロックアドレスPBAを求める(ステップS22)。例えば、アクセス対象の物理ブロックの物理ゾーン内ブロック番号PZIBNを#p、アクセス対象の物理ブロックが属する物理ゾーンの前に存在する物理ゾーンの数をm、物理ゾーンに含まれる物理ブロック数をbとした場合、物理ブロックアドレスPBAは、PZIBN#pにオフセット(m×b)を加算することによって求められる。   Subsequently, the physical block address PBA is obtained by adding the number of blocks corresponding to the physical zone existing before the physical zone PZN (hereinafter referred to as an offset) to the obtained physical zone block number PZIBN. (Step S22). For example, the physical zone block number PZIBN of the physical block to be accessed is #p, the number of physical zones existing before the physical zone to which the physical block to be accessed belongs is m, and the number of physical blocks included in the physical zone is b In this case, the physical block address PBA is obtained by adding an offset (m × b) to PZIBN # p.

次に、マイクロプロセッサ6は、フラッシュメモリインタフェースブロック10の物理ブロックアドレスレジスタR11に読み出し対象の物理ブロックの物理ブロックアドレスPBAを設定し、ページ番号レジスタR12にその物理ブロック内の読み出しを開始するページのページ番号を設定し、さらに、カウンタR13に読み出し対象のページ数を設定し、さらに、コマンドレジスタR21に、データの読み出し処理を指示するシーケンスコマンドを設定する。この際、アクセス対象領域が複数の論理ブロックにまたがっている場合は、LBAの若い方から順番に上記の設定を行う。   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 a data reading process is set in the command register R21. At this time, if the access target area extends over a plurality of logical blocks, the above settings are made in order from the younger LBA.

続いて、フラッシュメモリインタフェースブロック10の命令処理ブロックが、コマンドレジスタR21に格納されているシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力し、フラッシュメモリ2からデータを読み出し、読み出したデータをバッファ9に格納する(図6;ステップS3)。マイクロプロセッサ6は、バッファ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 (FIG. 6; step S3). The microprocessor 6 provides the data stored in the buffer 9 to the host system 4 via the host interface block 7 and the external bus 13.

ステップS3の処理を具体的に説明すると、図8に示すように、マイクロプロセッサ6は、物理ブロックアドレスレジスタR11に、ステップS2で求めた物理ブロックアドレスPBAをセットする(ステップS31)。
続いて、マイクロプロセッサ6は、LBA’(LBAから論理ゾーン番号LZNを示す2ビットを除いた14ビット)の下位5ビットに対応するセクタ番号SNをページ番号PNとしてページ番号レジスタR12に設定する(ステップS32)。
次に、カウンタR13に読み出すページ数(セクタ数)を設定する(ステップS33)。
続いて、読み出しを指示するシーケンスコマンドをコマンドレジスタR14にセットする(ステップS34)。
The processing in step S3 will be specifically described. As shown in FIG. 8, the microprocessor 6 sets the physical block address PBA obtained in step S2 in the physical block address register R11 (step S31).
Subsequently, the microprocessor 6 sets the sector number SN corresponding to the lower 5 bits of LBA ′ (14 bits excluding 2 bits indicating the logical zone number LZN from LBA) as the page number PN in the page number register R12 ( Step S32).
Next, the page number (sector number) to be read is set in the counter R13 (step S33).
Subsequently, a sequence command for instructing reading is set in the command register R14 (step S34).

このシーケンスコマンドに応答して、フラッシュメモリインタフェースブロック10は、物理ブロックアドレスレジスタR11に設定されているPBAにページ番号レジスタR12に設定されているページ番号PNを付加(連結)した物理ページアドレスを生成し(ステップS35)、このページからデータを読み出し、バッファ9に格納する(ステップS36)。   In response to this sequence command, the flash memory interface block 10 generates a physical page address by adding (concatenating) the page number PN set in the page number register R12 to the PBA set in the physical block address register R11. The data is read from this page and stored in the buffer 9 (step S36).

続いて、カウンタR13をデクリメントし(ステップS37)、カウンタR13のカウント値が0になったか否かを判別する(ステップS38)。
ステップS38で、カウント値が0ではない、即ち、データの読み出しが完了していないと判別されたときには、ページ番号レジスタR12に格納されているページ番号PNを+1して(ステップS39)、ステップS36に戻る。カウント値が0のときは、ステップS3の処理を終了する。
Subsequently, the counter R13 is decremented (step S37), and it is determined whether or not the count value of the counter R13 has become 0 (step S38).
If it is determined in step S38 that the count value is not 0, that is, data reading has not been completed, the page number PN stored in the page number register R12 is incremented by 1 (step S39), and step S36. Return to. When the count value is 0, the process of step S3 is terminated.

以上の読み出し処理を具体例に基づいて説明する。例えば、LBA#iからkセクタのデータを読み出す読み出し処理が指示されたとする。   The above read processing will be described based on a specific example. For example, it is assumed that a read process for reading k sector data is instructed from LBA # i.

まず、LBAに基づいて、論理ゾーン番号LZN、論理ゾーン内ブロック番号LZIBNを求める(ステップS1)。アクセス対象領域LBA#i〜#(i+k−1)が、LBA#i〜#j−1が属する論理ブロックとLBA#j〜#(i+k−1)が属する論理ブロックの2個の論理ブロックにまたがっている場合、LBA#i〜#j−1のj−iセクタの領域について、これらのセクタが属す論理ブロックのLZNとLZIBNを求める。次に、LBA#j〜#(i+k−1)の(i−j+k)セクタ分の領域について、これらのセクタが属す論理ブロックの論理ゾーン番号LZNと論理ゾーン内論理ブロック番号LZIBNを求める。   First, based on the LBA, the logical zone number LZN and the logical zone block number LZIBN are obtained (step S1). The access target areas LBA # i to # (i + k-1) span two logical blocks, the logical block to which LBA # i to # j-1 belong and the logical block to which LBA # j to # (i + k-1) belong. If it is, the LZN and LZIBN of the logical block to which these sectors belong are obtained for the areas of the j-i sectors of LBA #i to # j-1. Next, for the area corresponding to (i−j + k) sectors of LBA # j to # (i + k−1), the logical zone number LZN of the logical block to which these sectors belong and the logical block number LZIBN in the logical zone are obtained.

次に、このようにして求めた論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNに基づいて、その論理ブロックに対応する物理ブロックの物理ブロックアドレスPBAを求める(ステップS2)。   Next, the physical block address PBA of the physical block corresponding to the logical block is obtained based on the logical zone number LZN thus obtained and the intra-logical zone block number LZIBN (step S2).

例えば、LBA#i〜#j−1がLZN#mのLZIBN#nの論理ブロックに含まれ、LZN#mの論理ゾーンにPZN#mの物理ゾーンが対応している場合、LZN#mのLZIBN#nの論理ブロックに対応する物理ブロックのPZIBNを、LZN#mの論理ゾーンに属す論理ブロックとPZN#mの物理ゾーンに属す物理ブロックの対応関係を示したアドレス変換テーブルを参照して求める(ステップS21)。   For example, when LBA # i to # j-1 are included in the LZIBN # n logical block of LZN # m and the physical zone of PZN # m corresponds to the logical zone of LZN # m, the LZIBN of LZN # m The PZIBN of the physical block corresponding to the #n logical block is obtained by referring to the address conversion table indicating the correspondence between the logical block belonging to the logical zone of LZN # m and the physical block belonging to the physical zone of PZN # m ( Step S21).

求めた物理ブロックのPZIBN#pにPZN#mに対応するオフセット(m・b)を付加して、物理ブロックアドレスPBA(=m・b+p)を求める(ステップS22)。なお、bは、物理ゾーンに含まれる物理ブロック数である。   An offset (m · b) corresponding to PZN # m is added to PZIBN # p of the obtained physical block to obtain a physical block address PBA (= m · b + p) (step S22). Note that b is the number of physical blocks included in the physical zone.

又、LBA#j〜#(i+k−1)のi−j+kセクタ分の領域についても、上述と同様の手順でLBA#j〜#(i+k−1)が属する論理ブロックに対応する物理ブロックの物理ブロックアドレスPBAを求める。なお、LBA#j〜#(i+k−1)の領域については、LBA#j〜#(i+k−j)が含まれる論理ブロックが属す論理ゾーンのアドレス変換テーブルを参照してPZIBNが求められる。   Also, with respect to the area corresponding to i−j + k sectors of LBA # j to # (i + k−1), the physical block physical corresponding to the logical block to which LBA # j to # (i + k−1) belongs is obtained in the same procedure as described above. The block address PBA is obtained. For the areas of LBA #j to # (i + k−1), PZIBN is obtained by referring to the address conversion table of the logical zone to which the logical block including LBA #j to # (i + k−j) belongs.

次に、マイクロプロセッサ6は、フラッシュメモリインタフェースブロック10の物理ブロックアドレスレジスタR11に上記手順で求めた物理ブロックアドレスPBA(=m・b+p)を設定し、ページ番号レジスタR12にアクセス対象領域の先頭LBA’(LBA#i〜#(j−1)の場合は、LBA#iのLBA’)の下位5ビットに相当するセクタ番号SN#qを設定し、カウンタR13にj−iを設定する。さらに、データ読み出しを指示するシーケンスコマンドをコマンドレジスタR21にセットする。これに応答して、フラッシュメモリインタフェースブロック10は、m・b+p物理ブロックの#qページからデータを読み出し、以後、#qを更新(インクリメント)してデータを読み出す。そして、j−iページのデータの読み出しが終了すると、m・b+pブロックからの読み出しを終了し、マイクロプロセッサ6に処理が終了したことを通知する。又、LBA#j〜#(i+k−1)の(i−j+k)セクタ分の領域についても上記と同様の手順で読み出しを実行する。   Next, the microprocessor 6 sets the physical block address PBA (= m · b + p) obtained by the above procedure in the physical block address register R11 of the flash memory interface block 10, and the start LBA of the access target area in the page number register R12. Sector number SN # q corresponding to the lower 5 bits of '(LBA # i to LBA # i in the case of LBA # i to # (j-1)') is set, and j-i is set to the counter R13. Further, a sequence command for instructing data reading is set in the command register R21. In response to this, the flash memory interface block 10 reads data from the #q page of the m · b + p physical block, and then updates (increments) #q and reads the data. When the reading of the j-i page data is finished, the reading from the m · b + p block is finished, and the microprocessor 6 is notified that the processing is finished. Further, the reading is executed for the area corresponding to (i−j + k) sectors of LBA # j to # (i + k−1) in the same procedure as described above.

尚、LBA#j〜#(i+k−1)の領域については、LBA#j〜#(i+k−1)が含まれる論理ブロックと対応する物理ブロックの物理ブロックアドレスPBAが物理ブロックアドレスレジスタに設定され、LBA#jのLBA’の下位5ビットの値がページ番号レジスタR12に設定され、(i−j+k)がカウンタR13に設定される。   For the areas of LBA #j to # (i + k−1), the physical block address PBA of the physical block corresponding to the logical block including LBA #j to # (i + k−1) is set in the physical block address register. , The value of the lower 5 bits of LBA ′ of LBA # j is set in the page number register R12, and (i−j + k) is set in the counter R13.

次に、フラッシュメモリ2への書き込み処理について説明する。書き込み処理の場合も、書き込み処理を指示する外部コマンドが、コマンドレジスタR1に設定されると、書き込み処理が開始され、ホストインターフェースブロック7のセクタ数レジスタR2に設定されたセクタ数、LBAレジスタR3に設定されたLBAの先頭値に基づいて処理が実行される。   Next, the writing process to the flash memory 2 will be described. Also in the case of the writing process, when an external command instructing the writing process is set in the command register R1, the writing 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についても上述の読み出し処理の場合と同様な手順で求められ、論理アドレスから物理アドレスへのアドレス変換も、上述の読み出し動作と基本的に同一である。ただし、フラッシュメモリの特性上、データの重ね書きができないため、書き込み時に、空きブロックを検出し(又は、物理ブロックを適宜消去して空きブロックを生成し)、その空きブロックのユーザ領域25に、ホストシステム4から順次供給されるデータを書き込み、冗長領域26にそのデータに対応する論理ブロックのLZIBNを書き込む。又、LZIBNとPZIBNとの対応関係を示すアドレス変換テーブルで、対応関係が変化した部分を更新する。   Also, 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-described reading process, and the address conversion from the logical address to the physical address is basically the same as the above-described reading operation. Are identical. However, since the data cannot be overwritten due to the characteristics of the flash memory, an empty block is detected at the time of writing (or an empty block is generated by appropriately erasing the physical block), and the user area 25 of the empty block is Data sequentially supplied from the host system 4 is written, and the logical block LZIBN corresponding to the data is written in the redundant area 26. In addition, the address conversion table showing the correspondence between LZIBN and PZIBN is updated with the portion where the correspondence has changed.

以上で説明したように、本実施の形態のフラッシュメモリシステム1では、LBAを2進数表現したときの一部の桁がLZNを示し、この桁を取り除いた上位の所定桁がLZIBNを示し、残る下位の所定桁がSNを示す、という構造を有している。このため、LBAのLZNを示す桁の値が変化すると、そのLBAが属する論理ゾーンが変わり、この結果、データの書き込みが特定の論理ゾーンに集中することが避けられ、フラッシュメモリ2の寿命が長くなる。   As described above, in the flash memory system 1 of the present embodiment, a part of digits when the LBA is expressed in binary number indicates LZN, and a predetermined upper digit excluding this digit indicates LZIBN and remains. It has a structure in which a lower predetermined digit indicates SN. For this reason, when the digit value indicating the LBA LZN changes, the logical zone to which the LBA belongs is changed. As a result, it is avoided that data writing is concentrated in a specific logical zone, and the life of the flash memory 2 is prolonged. Become.

なお、図4の例では、各セクタを、4セクタを1単位として複数の論理ゾーンに振り分けたが、論理ゾーンに振り分ける1単位は論理ゾーンに含まれる全セクタ数より少ないセクタ数であれば任意で設定できる。なお、論理ゾーンに振り分ける1単位はLBAのLZNを示すビットよりも下位のビットのビット数によって決まる。   In the example of FIG. 4, each sector is allocated to a plurality of logical zones with 4 sectors as one unit. However, one unit allocated to a logical zone is arbitrary as long as the number of sectors is less than the total number of sectors included in the logical zone. It can be set with. Note that one unit assigned to the logical zone is determined by the number of bits of bits lower than the bit indicating the LBA LZN.

例えば図9(a)に示すように、LBAの下位から5ビット目と4ビット目の2ビットをLZNを示すビットとした場合、LZNを示すビットより下位のビット数が3ビット(下位から第1ビット〜第3ビット)なので、8セクタを1単位として、各セクタが4個の論理ゾーンに振り分けられる。従って、図9(b)に示すように振り分け先の論理ゾーンが8セクタ毎に変わり、LBA#0〜#7の連続する8セクタがLZN#0の論理ゾーンへ、LBA#8〜#15の連続する8セクタがLZN#1の論理ゾーンへ、という順に、8セクタずつ同一の論理ゾーンへと振り分けられる。   For example, as shown in FIG. 9 (a), when the lower 5 bits and the 4th bit of the LBA are 2 bits indicating LZN, the number of bits lower than the LZN bit is 3 bits (from the lower Therefore, each sector is assigned to four logical zones with 8 sectors as one unit. Therefore, as shown in FIG. 9B, the logical zone of the allocation destination changes every 8 sectors, and the 8 consecutive sectors of LBA # 0 to # 7 are transferred to the logical zone of LZN # 0. Eight consecutive sectors are allocated to the same logical zone in order of eight consecutive sectors to the logical zone of LZN # 1.

また、図10(a)に示すように、LBAの下位から9〜13ビット目の5ビットをLZNを示すビットとした場合、振り分け先の論理ゾーンは32(2)個となる。LZNを示すビットより下位のビット数は8ビットなので、図10(b)に示すように、256セクタ(8個の論理ブロック)を1単位として、各セクタが、32個の論理ゾーンへと振り分けられる。 Further, as shown in FIG. 10A, when the 9th to 13th bits from the lower LBA are used as bits indicating LZN, the number of logical zones to be distributed is 32 (2 5 ). Since the number of bits lower than the bit indicating LZN is 8, as shown in FIG. 10B, each sector is divided into 32 logical zones with 256 sectors (8 logical blocks) as one unit. It is done.

このように、論理ゾーンに振り分ける1単位を示すビット数が論理ブロック内のセクタ数に対応するビット数(32セクタの場合は5ビット)より多い場合には、複数個の論理ブロックを1単位として各論理ブロックが複数個の論理ゾーンに振り分けられる。   As described above, when the number of bits indicating one unit allocated to the logical zone is larger than the number of bits corresponding to the number of sectors in the logical block (5 bits in the case of 32 sectors), a plurality of logical blocks are regarded as one unit. Each logical block is distributed to a plurality of logical zones.

なお、連続して同一の論理ゾーンに振り分けられるセクタの数が論理ブロック1個当たりのセクタの数より小さい場合は、1個の論理ブロック内のセクタのLBAが不連続な値をとることになる。例えば図9の場合でいえば、LZN#0,LBN#0の論理ブロック内の32個のセクタのLBAは、#0〜#7,#32〜#39,#64〜#71,#96〜#103、という一部不連続な値をとることになる。   When the number of sectors that are continuously allocated to the same logical zone is smaller than the number of sectors per logical block, the LBA of the sectors in one logical block takes a discontinuous value. . For example, in the case of FIG. 9, the LBAs of 32 sectors in the logical blocks of LZN # 0 and LBN # 0 are # 0 to # 7, # 32 to # 39, # 64 to # 71, # 96 to It takes a partially discontinuous value of # 103.

以上の説明では、論理ゾーンの数と論理ゾーンに振り分ける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 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)は、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. 読み出し処理を説明するためのフローチャートである。It is a flowchart for demonstrating a read-out process. 図6に示すステップS2の物理ブロックアドレス生成処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the physical block address generation process of step S2 shown in FIG. 図6に示すステップS3の読み出し処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the read-out process of step S3 shown in 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. (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. 従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。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 (4)

ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンとの対応関係を管理するゾーン管理手段と、
対応関係にある前記論理ゾーンと前記物理ゾーンとの間で、該論理ゾーン内の論理アドレスと該物理ゾーン内の物理アドレスとの対応関係を管理するアドレス管理手段と、
複数個の前記論理ゾーンに対して前記セクタを論理アドレスが連続する所定のセクタ数単位で順次割り振る論理アドレス分配手段と、
を備え
前記所定のセクタ数は1つの前記論理ゾーンに含まれるセクタ数より少ないものである、
ことを特徴とするメモリコントローラ。
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;
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;
Logical address distribution means for sequentially allocating the sectors to a plurality of logical zones in units of a predetermined number of sectors in which logical addresses are continuous;
Equipped with a,
The predetermined number of sectors is less than the number of sectors included in one logical zone.
A memory controller characterized by that.
前記所定のセクタ数と、該所定のセクタ数単位で割り振られるセクタの割り振り先となる前記論理ゾーンのゾーン数とがいずれも2のべき乗で与えられる数値であることを特徴とする請求項1に記載のメモリコントローラ。   The number of the predetermined sectors and the number of zones of the logical zone to which the sectors to be allocated in units of the predetermined sectors are both numerical values given as powers of 2. The memory controller described. 整数mは整数nより大きく、整数nは0以上であり、前記所定のセクタ数が2のn乗で、前記ゾーン数が2の(m−n)乗のとき、
前記ホストシステムから与えられるアドレスの下位側から数えてn+1ビット目からmビット目までの値に基づいて割り振り先の前記論理ゾーンを判別する、ことを特徴とする請求項2に記載のメモリコントローラ。
When the integer m is larger than the integer n, the integer n is 0 or more, the predetermined number of sectors is 2 to the nth power, and the number of zones is 2 to the (m−n) th power,
You determine the logical zone allocation destination based counted from the lower side of the given address value from n + 1 th bit to the m-bit counted from the host system, according to claim 2, characterized in that Memory controller.
請求項1乃至3の何れか1項に記載のメモリコントローラと、フラッシュメモリと、から構成される、
ことを特徴とするフラッシュメモリシステム。
The memory controller according to any one of claims 1 to 3, and a flash memory.
A flash memory system characterized by that.
JP2005347359A 2005-11-30 2005-11-30 Memory controller and flash memory system Expired - Fee Related JP4254933B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005347359A JP4254933B2 (en) 2005-11-30 2005-11-30 Memory controller and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005347359A JP4254933B2 (en) 2005-11-30 2005-11-30 Memory controller and flash memory system

Publications (2)

Publication Number Publication Date
JP2007156583A JP2007156583A (en) 2007-06-21
JP4254933B2 true JP4254933B2 (en) 2009-04-15

Family

ID=38240902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005347359A Expired - Fee Related JP4254933B2 (en) 2005-11-30 2005-11-30 Memory controller and flash memory system

Country Status (1)

Country Link
JP (1) JP4254933B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (en) * 2006-11-13 2008-05-29 Tdk Corp Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6005533B2 (en) * 2013-01-17 2016-10-12 株式会社東芝 Storage device and storage method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123241A (en) * 2006-11-13 2008-05-29 Tdk Corp Memory controller, flash memory system equipped with memory controller, and method for controlling flash memory

Also Published As

Publication number Publication date
JP2007156583A (en) 2007-06-21

Similar Documents

Publication Publication Date Title
JP4171749B2 (en) Memory controller and flash memory system
US8200891B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
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
JP2021068129A (en) Memory controller and flash memory system
JP2012058770A (en) Memory controller, flash memory system equipped with memory controller and control method of flash memory
JP4241741B2 (en) Memory controller and flash memory system
JP4434171B2 (en) Memory controller and flash memory system
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4710753B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM USING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4254933B2 (en) Memory controller and flash memory system
JP4235646B2 (en) Memory controller and flash memory system
JP4655034B2 (en) Memory controller, flash memory system, and flash memory control method
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4661566B2 (en) Access controller, flash memory system, and access control method
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
JP3934659B1 (en) Memory controller and flash memory system
JP4213166B2 (en) Memory controller and flash memory system
JP4227989B2 (en) Memory controller and flash memory system
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4273109B2 (en) Memory controller and flash memory system
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081208

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

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

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

Free format text: PAYMENT UNTIL: 20120206

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees