Nothing Special   »   [go: up one dir, main page]

JP2007172066A - Memory controller and flash memory system - Google Patents

Memory controller and flash memory system Download PDF

Info

Publication number
JP2007172066A
JP2007172066A JP2005365175A JP2005365175A JP2007172066A JP 2007172066 A JP2007172066 A JP 2007172066A JP 2005365175 A JP2005365175 A JP 2005365175A JP 2005365175 A JP2005365175 A JP 2005365175A JP 2007172066 A JP2007172066 A JP 2007172066A
Authority
JP
Japan
Prior art keywords
physical
block
logical
zone
segment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005365175A
Other languages
Japanese (ja)
Other versions
JP4227989B2 (en
Inventor
Kenzo Kida
健三 木田
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 JP2005365175A priority Critical patent/JP4227989B2/en
Publication of JP2007172066A publication Critical patent/JP2007172066A/en
Application granted granted Critical
Publication of JP4227989B2 publication Critical patent/JP4227989B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reduce a creation unit of an address conversion table. <P>SOLUTION: The correspondence between a physical zone comprising a plurality of physical blocks and a logical zone comprising a plurality of sectors, and the correspondence between a physical segment given by dividing the physical zone with a predetermined number of division and a logical segment given by dividing the logical zone with the number of division are managed, and the physical blocks in the physical segment are assigned to an exclusive block or a common block. Data corresponding to the logical segment in correspondence with the physical segment including the exclusive block is written into the exclusive block, and data corresponding to the logical zone in correspondence with the physical zone including the common block is written in the common block. The address conversion table is created for each logical segment. <P>COPYRIGHT: (C)2007,JPO&INPIT

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

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

すなわち、データの物理的な読み書きの単位であるページを所定数含んだ、データ消去の単位である物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。各物理ブロックは、複数の物理ゾーンのいずれかに分類され、各物理ゾーンには、それぞれに固有の物理ゾーン番号(PZN)が割り当てられる。図6の例では、計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. 6, 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. That is, since the correspondence relationship between the logical zone and the physical zone is set in advance, address conversion is performed by referring to the LZIBN written in the redundant area of the physical block included in the physical zone for which the address conversion table is to be created. A table can be created.

ここで、冗長領域に書き込まれる論理ブロックを特定する情報(以下、論理アドレス情報という。)は、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.

又、各論理ゾーンには、物理ゾーンの記憶容量に応じて設定された所定数のセクタが割り当てられる。図6の例では、LZN#0の論理ゾーンにLBA#0〜#15999のセクタが、LZN#1の論理ゾーンにLBA#16000〜#31999のセクタが、LZN#2の論理ゾーンにLBA#32000〜#47999のセクタが、LZN#3の論理ゾーンにLBA#48000〜#63999のセクタが、それぞれ割り当てられている。なお、この例では、フラッシュメモリの1個のページが1個のセクタに対応し、各物理ブロックは、32個のページで構成されている。   Each logical zone is assigned a predetermined number of sectors set according to the storage capacity of the physical zone. In the example of FIG. 6, LBA # 0 to # 15999 sectors are in the LZN # 0 logical zone, LBA # 16000 to # 31999 sectors are in the LZN # 1 logical zone, and LBA # 32000 is in the LZN # 2 logical zone. ... To # 47999, and LBA # 48000 to # 63999 are assigned to the logical zone of LZN # 3, respectively. In this example, one page of the flash memory corresponds to one sector, and each physical block is composed of 32 pages.

各論理ゾーンに割り当てられた16000個のセクタは、論理ゾーン内でLBAが連続する32個のセクタ単位で論理ブロックとして管理されている。従って、言い換えれば、LBAが連続する32個のセクタを論理ブロックとして、LBNが連続する論理ブロックを各論理ゾーンに500個(LZIBN#0〜#499)ずつ割り当てている。ここで、論理ブロックに含まれるセクタ数については、1個の論理ブロックと1個又は複数個の物理ブロックの容量が一致するよう適宜設定される。又、物理ブロックの各ページにはLBAの順番でデータが格納されるので、各論理ゾーンに含まれる論理ブロックと、その論理ゾーンに対応する物理ゾーンに含まれる物理ブロックとの対応関係に基づいて、フラッシュメモリ内のアクセス先を特定することができる。
又、フラッシュメモリの記憶容量が大容量化したため、起動時に全ての論理ゾーンについてアドレス変換テーブルを作成するのではなく、アクセス対象となった論理ゾーンのアドレス変換テーブルをその都度作成することが多くなっている。
特開2005−18490号公報
The 16000 sectors assigned to each logical zone are managed as logical blocks in units of 32 sectors in which LBAs are continuous in the logical zone. Therefore, in other words, 32 sectors with consecutive LBAs are assigned as logical blocks, and 500 logical blocks with consecutive LBNs (LZIBN # 0 to # 499) are allocated to each logical zone. Here, the number of sectors included in the logical block is set as appropriate so that the capacities of one logical block and one or a plurality of physical blocks coincide. In addition, since data is stored in the LBA order in each page of the physical block, based on the correspondence between the logical block included in each logical zone and the physical block included in the physical zone corresponding to the logical zone. The access destination in the flash memory can be specified.
In addition, since the storage capacity of the flash memory has increased, it is not necessary to create an address conversion table for every logical zone at startup, but to create an address conversion table for the logical zone that is the access target each time. ing.
JP 2005-18490 A

しかしながら、上述のように論理ゾーン単位(相互に対応する論理ゾーンと物理ゾーン単位)で論理ブロックと物理ブロックの対応関係を管理している場合には、論理ゾーンに含まれる全ての論理ブロックを対象としたアドレス変換テーブルを作成した後でなければ、その論理ゾーンに対応する物理ゾーン(物理ゾーンに含まれる物理ブロック)にアクセスすることができない。従って、各論理ゾーン及び物理ゾーンのサイズが大きくなると、アドレス変換テーブルの作成にかかる時間が長くなるため、ホストシステムからアクセスの要求を受けてからアクセスを開始するまでの時間が長くなってしまう。
又、論理ゾーン及び物理ゾーンのサイズを小さくすれば、アドレス変換テーブルの作成にかかる時間を短く出来るが、特定の物理ゾーンに不良ブロックが集中した場合にその物理ゾーンで必要な有効ブロック数を確保できなくなってしまう確率が高くなる。つまり、論理ゾーンに含まれる論理ブロック数aに対する物理ゾーンに含まれる物理ブロック数bの比率(a:b)を維持したまま論理ゾーン及び物理ゾーンのサイズを小さくすれば、特定の物理ゾーンに不良ブロックが集中した場合に、その物理ゾーンで必要な有効ブロック数を確保できなくなってしまう確率が高くなる。ここで、比率(a:b)を変化させて論理ブロック数aと物理ブロック数bの差である予備数(b−a)を多くすれば、必要な有効ブロック数を確保できなくなってしまうという確率を低くできるが、フラッシュメモリに記憶できる容量が小さくなってしまう。
However, if the correspondence between logical blocks and physical blocks is managed in logical zone units (logical zone and physical zone units corresponding to each other) as described above, all logical blocks included in the logical zone are targeted. The physical zone (physical block included in the physical zone) corresponding to the logical zone cannot be accessed unless the address conversion table is created. Therefore, as the size of each logical zone and physical zone increases, the time required to create the address translation table increases, and therefore the time from when an access request is received from the host system to when access is started increases.
In addition, if the size of the logical zone and physical zone is reduced, the time required to create the address translation table can be shortened. However, when bad blocks are concentrated in a specific physical zone, the necessary number of effective blocks is secured in that physical zone. Probability of becoming impossible increases. In other words, if the size of the logical zone and the physical zone is reduced while maintaining the ratio (a: b) of the physical block number b included in the physical zone to the logical block number a included in the logical zone, the specific physical zone is defective. When blocks are concentrated, the probability that the number of effective blocks necessary in the physical zone cannot be secured increases. Here, if the ratio (a: b) is changed to increase the reserve number (ba), which is the difference between the logical block number a and the physical block number b, the necessary number of effective blocks cannot be secured. Although the probability can be lowered, the capacity that can be stored in the flash memory is reduced.

本発明は上記の実情に鑑みてなされたもので、論理ゾーン及び物理ゾーンのサイズを小さくすることなく、アドレス変換テーブルのサイズを小さくすることができるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。   The present invention has been made in view of the above circumstances, a memory controller capable of reducing the size of the address conversion table without reducing the size of the logical zone and the physical zone, and a flash memory system including the memory controller. The purpose is to provide.

上記目的を達成するため、本発明のメモリコントローラは、
ホストシステムからの命令に応答してフラッシュメモリへのアクセスを制御するメモリコントローラであって、
前記フラッシュメモリにおける消去単位である物理ブロックを複数個集めた物理ゾーンと前記ホストシステムにおけるアクセス単位であるセクタを複数集めた論理ゾーンの対応関係と、前記物理ゾーンを所定の分割数で分割した物理セグメントと前記論理のゾーンを前記分割数で分割した論理セグメントの対応関係とを管理するアドレス管理手段と、
前記物理セグメント内の物理ブロックを占用ブロック又は共用ブロックに割り当て、前記占用ブロックには、該占用ブロックが含まれる前記物理セグメントと対応関係にある前記論理セグメントに対応するデータを書き込み、前記共用ブロックには、該共用ブロックが含まれる前記物理ゾーンと対応関係にある前記論理ゾーンに対応するデータを書き込む書込手段と、
を備えることを特徴とする。
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,
Correspondence 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, and a physical that divides the physical zone by a predetermined number Address management means for managing a correspondence relationship between a segment and a logical segment obtained by dividing the logical zone by the number of divisions;
A physical block in the physical segment is assigned to an occupied block or a shared block, and data corresponding to the logical segment corresponding to the physical segment including the occupied block is written to the occupied block, and the shared block is written to the shared block. Writing means for writing data corresponding to the logical zone corresponding to the physical zone including the shared block;
It is characterized by providing.

前記物理セグメントに含まれる物理ブロックの個数は、2のべき乗個であることが好ましい。
前記共用ブロックは、前記物理セグメント内の先頭又は最後の物理ブロックであることが好ましい。
The number of physical blocks included in the physical segment is preferably a power of 2.
The shared block is preferably the first or last physical block in the physical segment.

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

本発明によれば、論理ゾーン及び物理ゾーンを所定の分割数で分割した論理セグメント及び物理セグメント単位でアドレス変換テーブルを作成することができる。従って、論理ゾーン及び物理ゾーン単位でアドレス変換テーブルを作成するときよりも短い時間で、アクセス対象になっている領域のアドレス変換テーブルを作成することができる。又、特定の物理セグメントに不良ブロックが集中しても、同一の物理ゾーンに属する他の物理セグメント内の物理ブロック(共用ブロック)を使用することができるため、特定の物理セグメントで必要な有効ブロック数を確保できなくなる確率を低く抑えることができる。   According to the present invention, an address conversion table can be created in units of logical segments and physical segments obtained by dividing a logical zone and a physical zone by a predetermined number of divisions. Therefore, it is possible to create an address translation table for an area to be accessed in a shorter time than when creating an address translation table for each logical zone and physical zone. Even if bad blocks are concentrated on a specific physical segment, physical blocks (shared blocks) in other physical segments belonging to the same physical zone can be used. The probability that the number cannot be secured can be kept low.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。   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に示したフラッシュメモリ2では、1つのページは、1セクタ(512バイト)のユーザ領域25と、16バイトの冗長領域26で構成され、1つの物理ブロックは32個のページで構成されている。なお、1つのページが4セクタのユーザ領域と64バイトの冗長領域で構成され、1つの物理ブロックが64個のページで構成されているフラッシュメモリもある。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納するための領域である。   In the flash memory 2 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. Yes. 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 storing additional data such as an error correction 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に有効なデータが格納されているとき、そのデータに対応する論理ブロックを特定するための情報である。この論理アドレス情報として論理ゾーン内ブロック番号LZIBN又は論理ブロック番号LBNを用いることができるが、ビット数の少ない論理ゾーン内ブロック番号LZIBNが用いられることが多い。   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. As this logical address information, the logical zone block number LZIBN or the logical block number LBN can be used, but the logical zone block number LZIBN having a small number of bits is often used.

なお、ユーザ領域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, normally, the rewritten data is 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 managed by the address conversion table. This address conversion table is created based on logical address information (LZIBN or LBN) stored in the redundant area 26 of each physical block. Note that the address conversion itself between the logical address and the physical address by the address conversion table is well known.

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

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

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

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

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

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

図1に示すワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。   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.

バッファ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, and a counter R13. The instruction processing block executes processing according to the sequence command set in the command register R21.

物理ブロックアドレスレジスタR11は、フラッシュメモリ2のアクセス対象の物理ブロックの物理ブロックアドレスPBAを設定する。物理ブロックアドレスレジスタR11に設定されるPBAは、ワークエリア8に作成されるアドレス変換テーブルに基づいて決定される。このアドレス変換テーブルは、相互に対応する論理セグメントと物理セグメント単位で作成される。尚、論理セグメント及び物理セグメントについては後述する。   The physical block address register R11 sets the physical block address PBA of the physical block to be accessed in the flash memory 2. The PBA set in the physical block address register R11 is determined based on the address conversion table created in the work area 8. This address conversion table is created in units of logical segments and physical segments corresponding to each other. The logical segment and the physical segment will be described later.

ページ番号レジスタR12には、アクセス対象の先頭ページのページ番号PNが初期値として設定される。カウンタR13には、アクセス対象の物理ブロック内のアクセス対象ページのページ数が初期値として設定される。
コマンドレジスタR21は、フラッシュメモリインタフェースブロック10が実行すべき処理を指示するシーケンスコマンドが設定される。
In the page number register R12, the page number PN of the first page to be accessed is set as an initial value. In the counter R13, the number of pages to be accessed in the physical block to be accessed is set as an initial value.
The command register R21 is set with a sequence command that instructs processing to be executed by the flash memory interface block 10.

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

フラッシュメモリインターフェースブロック10は、命令処理ブロックによって出力される内部コマンド、アドレス情報等をフラッシュメモリ2に供給することにより、フラッシュメモリ2に読み出し、書き込み等を実行させる。ここで、アクセス対象のページを特定する物理アドレスは、物理ブロックアドレスレジスタR11に設定されたPBAとページ番号レジスタR12に設定された設定値に基づいて生成される。又、1ページのアクセスが終了する毎に、カウンタR13に設定されている設定値がデクリメント(1ずつ減算)され、ページ番号レジスタR12に設定されている設定値がインクリメント(1ずつ加算)され、カウンタR13に設定されている設定値が0になると一連のアクセス処理を終了する。   The flash memory interface block 10 supplies the flash memory 2 with internal commands, address information, and the like output from the instruction processing block, thereby causing the flash memory 2 to execute reading and writing. Here, the physical address for specifying the page to be accessed is generated based on the PBA set in the physical block address register R11 and the set value set in the page number register R12. Each time one page is accessed, the set value set in the counter R13 is decremented (subtracted by 1), and the set value set in the page number register R12 is incremented (added by 1). When the set value set in the counter R13 becomes 0, a series of access processing ends.

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.

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

本実施の形態においては、図4に示したように、960個の論理ブロックで論理ゾーンが構成され、1024個の物理ブロックで物理ゾーンが構成されている。又、1個の物理ブロックは32個のページで構成され、1ページが1セクタに対応する。
論理ゾーンは32個の論理セグメントに分割され、物理ゾーンも32個の物理セグメントに分割されている。ここで、各論理ゾーン内の論理セグメントに付けた通番を論理セグメント番号LSNと呼び、各物理ゾーン内の物理セグメントに付けた通番を物理セグメント番号PSNと呼ぶ。
In the present embodiment, as shown in FIG. 4, a logical zone is composed of 960 logical blocks, and a physical zone is composed of 1024 physical blocks. One physical block is composed of 32 pages, and one page corresponds to one sector.
The logical zone is divided into 32 logical segments, and the physical zone is also divided into 32 physical segments. Here, a serial number assigned to a logical segment in each logical zone is referred to as a logical segment number LSN, and a serial number assigned to a physical segment in each physical zone is referred to as a physical segment number PSN.

論理ゾーンと物理ゾーンの対応関係は予め設定されている。本実施の形態においては、LZN#0の論理ゾーンにPZN#0の物理ゾーンが割り当てられ、LZN#1の論理ゾーンにPZN#1の物理ゾーンが割り当てられ、LZN#2の論理ゾーンにPZN#2の物理ゾーンが割り当てられ、以下同様に1個の論理ゾーンに1個の物理ゾーンが順次割り当てられている。   The correspondence between the logical zone and the physical zone is set in advance. In this embodiment, the physical zone of PZN # 0 is assigned to the logical zone of LZN # 0, the physical zone of PZN # 1 is assigned to the logical zone of LZN # 1, and PZN # is assigned to the logical zone of LZN # 2. Two physical zones are allocated, and similarly, one physical zone is sequentially allocated to one logical zone.

論理ゾーンに含まれるLSN#0〜#31の論理セグメントと物理ゾーンに含まれるPSN#0〜#31の物理セグメントの対応関係も予め設定されている。図4には、相互に対応関係にあるLZN#0の論理ゾーンとPZN#0の物理ゾーンにおける論理セグメントと物理セグメントの対応関係が示されている。ここでは、LSN#0の論理セグメントにPSN#0の物理セグメントが割り当てられ、LSN#1の論理セグメントにPSN#1の物理セグメントが割り当てられ、LSN#2の論理セグメントにPSN#2の物理セグメントが割り当てられ、以下同様に1個の論理セグメントに1個の物理セグメントが割り当てられている。   The correspondence relationship between the logical segments of LSN # 0 to # 31 included in the logical zone and the physical segments of PSN # 0 to # 31 included in the physical zone is also set in advance. FIG. 4 shows the correspondence between the logical segments and the physical segments in the logical zone of LZN # 0 and the physical zone of PZN # 0 that have a correspondence relationship with each other. Here, the physical segment of PSN # 0 is allocated to the logical segment of LSN # 0, the physical segment of PSN # 1 is allocated to the logical segment of LSN # 1, and the physical segment of PSN # 2 is allocated to the logical segment of LSN # 2 In the same manner, one physical segment is assigned to one logical segment.

PSN#0〜#31の各物理セグメントは32個の物理ブロックで構成されており、その先頭ブロックが共用ブロックに割り当てられ、共用ブロック以外の31個の物理ブロックが占用ブロックに割り当てられている。占用ブロックは、対応関係にある論理セグメントに含まれる論理ブロックだけに割り当てられる物理ブロックであり、共用ブロックは、LSN#0〜#31のいずれの論理セグメントに属する論理ブロックであっても、その論理ブロックに対応するデータの書込み先として使用できる物理ブロックである。   Each physical segment of PSN # 0 to # 31 is made up of 32 physical blocks, the head block of which is assigned to a shared block, and 31 physical blocks other than the shared block are assigned to dedicated blocks. The private block is a physical block that is allocated only to the logical blocks included in the logical segments in the corresponding relationship, and the shared block is the logical block belonging to any logical segment of LSN # 0 to # 31. It is a physical block that can be used as a data write destination corresponding to the block.

ここで、各物理セグメントに含まれる物理ブロックの個数が2のべき乗個の場合、各物理ゾーンに含まれるPZIBN#0〜#1023の各論理ブロックが属する物理セグメントのPSNは、PZIBNを2進数で表したときの特定のビットで判断することができる。本実施の形態においては、各物理ゾーンに1024個の物理ブロックが含まれ、各物理セグメントに32個の物理ブロックが含まれている。   Here, when the number of physical blocks included in each physical segment is a power of 2, the PSN of the physical segment to which each logical block of PZIBN # 0 to # 1023 included in each physical zone belongs is represented by a binary number in PZIBN. It can be determined by a specific bit when expressed. In the present embodiment, each physical zone includes 1024 physical blocks, and each physical segment includes 32 physical blocks.

従って、PZIBNは10ビットで表すことができ、そのPZIBNの上位5ビットがPSNに対応し、下位5ビットが物理セグメント内の物理ブロックに付けた通番を示すセグメント内ブロック番号PSIBNに対応する。又、各物理セグメントのPSIBN#0の物理ブロックを共用ブロックとした場合、共用ブロックのPZIBNの上位5ビットが、物理ゾーン内の共用ブロックに付けた通番を示す共用ブロック番号SBNに対応する。例えば、PZIBNが「11 0000 0011」の物理ブロックは、PSN#24の物理セグメントのPSIBN#3の占用ブロックであり、PZIBNが「11 0000 0000」の物理ブロックは、SBN#24の共用ブロックである。   Therefore, PZIBN can be represented by 10 bits, and the upper 5 bits of the PZIBN correspond to the PSN, and the lower 5 bits correspond to the intra-segment block number PSIBN indicating the serial number assigned to the physical block in the physical segment. When the physical block of PSIBN # 0 of each physical segment is a shared block, the upper 5 bits of PZIBN of the shared block correspond to the shared block number SBN indicating the serial number assigned to the shared block in the physical zone. For example, a physical block whose PZIBN is “11 0000 0011” is a private block of PSIBN # 3 of the physical segment of PSN # 24, and a physical block whose PZIBN is “11 0000 0000” is a shared block of SBN # 24 .

一方、LSN#0〜#31の各論理セグメントは30個の論理ブロックで構成されている。各論理セグメントに含まれる論理ブロックに対応するデータは、相互に対応関係にある物理セグメントの占用ブロック又はPSN#0〜#31の物理セグメントの共用ブロック(SBN#0〜#31の共用ブロック)に書き込まれる。つまり、LSN#0の論理セグメントに含まれる論理ブロックに対応するデータは、PSN#0の物理セグメントの占用ブロック又はSBN#0〜#31の共用ブロックに書き込まれ、LSN#1の論理セグメントに含まれる論理ブロックに対応するデータは、PSN#1の物理セグメントの占用ブロック又はSBN#0〜#31の共用ブロックに書き込まれ、以下同様に、LSN#31の論理セグメントに含まれる論理ブロックに対応するデータは、PSN#31の物理セグメントの占用ブロック又はSBN#0〜#31の共用ブロックに書き込まれる。   On the other hand, each logical segment of LSN # 0 to # 31 is composed of 30 logical blocks. Data corresponding to the logical block included in each logical segment is stored in a physical segment occupying block or a shared block of physical segments PSN # 0 to # 31 (shared block of SBN # 0 to # 31) that have a corresponding relationship with each other. Written. That is, the data corresponding to the logical block included in the logical segment of LSN # 0 is written to the occupied block of the physical segment of PSN # 0 or the shared block of SBN # 0 to # 31 and included in the logical segment of LSN # 1. The data corresponding to the logical block to be written is written to the occupied block of the physical segment of PSN # 1 or the shared block of SBN # 0 to # 31, and similarly corresponds to the logical block included in the logical segment of LSN # 31. Data is written into the occupied block of the physical segment of PSN # 31 or the shared block of SBN # 0 to # 31.

ここで、各論理ゾーンに含まれるLZIBN#0〜#959の各論理ブロックが属する論理セグメントのLSNは、LZIBNを各論理セグメントに含まれる論理ブロックの数で割ることによって求められる。例えば、LZIBN#32の論理ブロックは、32÷30の商が1なのでLSN#1の論理セグメントに属し、LZIBN#76の論理ブロックは、76÷30の商が2なのでLSN#2の論理セグメントに属する。つまり、LSNは、LZIBNを各論理セグメントに含まれる論理ブロックの数で割ったときの商に対応する。又、データが書込まれた物理ブロックの冗長領域26には、書き込んだデータに対応する論理ブロックのLZIBNが書き込まれる。   Here, the LSN of the logical segment to which each logical block of LZIBN # 0 to # 959 included in each logical zone belongs is obtained by dividing LZIBN by the number of logical blocks included in each logical segment. For example, the logical block of LZIBN # 32 belongs to the logical segment of LSN # 1 because the quotient of 32 ÷ 30 is 1, and the logical block of LZIBN # 76 is the logical segment of LSN # 2 because the quotient of 76 ÷ 30 is 2. Belongs. That is, the LSN corresponds to a quotient obtained by dividing LZIBN by the number of logical blocks included in each logical segment. Further, LZIBN of the logical block corresponding to the written data is written in the redundant area 26 of the physical block in which the data is written.

次に、アドレス変換テーブルの作成処理について説明する。コントローラ3は、ホストシステム4からアクセスの要求があると、アクセス対象の物理ゾーンに含まれる物理ブロックの冗長領域に書き込まれているLZIBNを参照してアドレス変換テーブルを作成する。   Next, address conversion table creation processing will be described. When there is an access request from the host system 4, the controller 3 creates an address conversion table with reference to LZIBN written in the redundant area of the physical block included in the physical zone to be accessed.

図5は、アクセス対象がLZN#0のLSN#1に含まれる論理ブロック(LZN#0のLZIBN#30〜#59の範囲に含まれる論理ブロック)に作成されるアドレス変換テーブルの例である。   FIG. 5 is an example of an address conversion table created in a logical block included in LSN # 1 whose access target is LZN # 0 (logical block included in a range of LZIBN # 30 to # 59 of LZN # 0).

このアドレス変換テーブルを作成するときには、PSN#1の物理セグメントに含まれる占用ブロックの冗長領域とSBN#0〜31の共用ブロックの冗長領域26に書き込まれているLZIBNが参照される。尚、SBN#0〜31の共用ブロックについては、SBNとLZIBNの対応関係を示した補助テーブルを作成することが好ましい。この補助テーブルが作成されている場合には、アドレス変換テーブルを作成するときに、アクセス対象の論理セグメントに対応する物理セグメントの占用ブロックの冗長領域26に書き込まれているLZIBNとこの補助テーブルを参照すればよい。   When this address conversion table is created, the LZIBN written in the redundant area of the private block included in the physical segment of PSN # 1 and the redundant area 26 of the shared block of SBN # 0 to 31 is referred to. For the shared blocks of SBN # 0 to S31, it is preferable to create an auxiliary table showing the correspondence between SBN and LZIBN. If this auxiliary table has been created, when creating the address translation table, refer to the LZIBN written in the redundant area 26 of the occupied block of the physical segment corresponding to the logical segment to be accessed and this auxiliary table. do it.

図5に示したアドレス変換テーブルではLZIBN#30〜59の論理ブロックに対応する物理ブロックを、占用ブロックについてはPSIBNで、共用ブロックについてはSBNで示している。ブロック種別は、対応する物理ブロックを、PSIBNとSBNのいずれで示しているかを判別するための情報であり、「0」の場合はPSIBNで、「1」の場合はSBNで示していると判別する。又、LZIBN#35のように対応する物理ブロックが無い場合には、アドレス変換テーブルの対応する箇所に存在しない占用ブロックのPSIBN#0が書き込まれる。   In the address conversion table shown in FIG. 5, physical blocks corresponding to logical blocks of LZIBN # 30 to 59 are indicated by PSIBN for private blocks and SBN for shared blocks. The block type is information for determining whether the corresponding physical block is indicated by PSIBN or SBN. When it is “0”, it is determined as PSIBN, and when it is “1”, it is determined as SBN. To do. If there is no corresponding physical block such as LZIBN # 35, the private block PSIBN # 0 that does not exist in the corresponding location of the address translation table is written.

各物理セグメントに含まれる物理ブロックの数をkとした場合、PSN、PSIBN及びPZIBNは下記の関係式を満たす。
PZIBN=k×PSN+PSIBN
従って、各物理セグメントに含まれる物理ブロックの数が32で、PSNが#1のとき、PSIBN「0 0001」に対応する物理ブロックのPZIBNは#33(32×1+1)であり、PSIBN「0 0111」に対応する物理ブロックのPZIBNは#39(32×1+7)である。
When the number of physical blocks included in each physical segment is k, PSN, PSIBN, and PZIBN satisfy the following relational expression.
PZIBN = k × PSN + PSIBN
Therefore, when the number of physical blocks included in each physical segment is 32 and the PSN is # 1, the PZIBN of the physical block corresponding to PSIBN “0 0001” is # 33 (32 × 1 + 1), and the PSIBN “0 0111”. The PZIBN of the physical block corresponding to “# 39” is # 39 (32 × 1 + 7).

尚、実際の処理では、2進数表示のPSNの下位側に、2進数表示のPSIBNを付加することによってPZIBNを求めることができる。例えば、PSN「0 0001」の下位側にPSIBN「0 0001」を付加することによってPZIBN「00 0010 0001」が求められ、PSN「0 0001」の下位側にPSIBN「0 0111」を付加することによってPZIBN「00 0010 0111」が求められる。   In actual processing, PZIBN can be obtained by adding PSIBN in binary number to the lower side of PSN in binary number. For example, PZIBN “00 0010 0001” is obtained by adding PSIBN “0 0001” to the lower side of PSN “0 0001”, and PSIBN “0 0111” is added to the lower side of PSN “0 0001”. PZIBN “00 0010 0111” is determined.

又、各物理セグメントに含まれる物理ブロックの数をkとした場合、SBN及びPZIBNは下記の関係式を満たす。
PZIBN=k×SBN
従って、各物理セグメントに含まれる物理ブロックの数が32のとき、SBN「0 0000」に対応する物理ブロックのPZIBNは#0(32×0)であり、SBN「0 0011」に対応する物理ブロックのPZIBNは#96(32×3)である。
Further, when the number of physical blocks included in each physical segment is k, SBN and PZIBN satisfy the following relational expression.
PZIBN = k × SBN
Therefore, when the number of physical blocks included in each physical segment is 32, the PZIBN of the physical block corresponding to SBN “0 0000” is # 0 (32 × 0), and the physical block corresponding to SBN “0 0011” The PZIBN is # 96 (32 × 3).

尚、実際の処理では、2進数表示のSBNの下位側に、5ビットの「0」を付加することによってPZIBNを求めることができる。例えば、SBN「0 0000」の下位側に「0 0000」を付加することによってPZIBN「00 0000 0000」が求められ、SBN「0 0011」の下位側に「0 0000」を付加することによってPZIBN「00 0110 0000」が求められる。   In actual processing, PZIBN can be obtained by adding 5-bit “0” to the lower side of the SBN in binary notation. For example, PZIBN “00 0000 0000” is obtained by adding “0 0000” to the lower side of SBN “0 0000”, and PZIBN “00 0000” is added to the lower side of SBN “0 0011”. 00 0110 0000 "is determined.

尚、上記のような論理セグメント単位のアドレス変換テーブルは、論理ゾーン内論理ブロック番号LZIBNと物理ゾーン内物理ブロック番号PZIBNとの対応関係で論理ブロックと物理ブロックの対応関係を示してもよい。この場合、上記のようなブロック種別は不要になる。   The address conversion table for each logical segment as described above may indicate the correspondence between the logical block and the physical block by the correspondence between the logical block number LZIBN in the logical zone and the physical block number PZIBN in the physical zone. In this case, the block type as described above becomes unnecessary.

次に、フラッシュメモリシステム1における読み出し処理について説明する。   Next, read processing in the flash memory system 1 will be described.

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

マイクロプロセッサ6は、LBAレジスタR3に設定された先頭LBAとセクタ数レジスタR2に設定されたアクセス対象のセクタ数に基づいて、アクセス対象の論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNと論理セグメント番号LSNを求める。ここでは、LBAの下位5ビットを削除することによりLBNが求められ、このLBNを論理ゾーンに含まれる論理ブロックの個数(960個)で割ることにより、その商に対応するLZNと余りに対応するLZIBNが求められる。更に、このLZIBNを論理セグメントに含まれる論理ブロックの個数(30個)で割ることにより、その商に対応するLSNが求められる。尚、アクセス対象領域が複数の論理ブロックにまたがっている場合は、論理ブロック毎にLZN、LZIBN及びLSNが求められる。   The microprocessor 6 accesses the logical zone number LZN to be accessed, the block number LZIBN in the logical zone, and the logical segment number based on the head LBA set in the LBA register R3 and the number of sectors to be accessed set in the sector number register R2. Find the LSN. Here, the LBN is obtained by deleting the lower 5 bits of the LBA, and by dividing this LBN by the number of logical blocks included in the logical zone (960), the LZN corresponding to the quotient and the LZIBN corresponding to the remainder are also obtained. Is required. Further, the LSN corresponding to the quotient is obtained by dividing this LZIBN by the number of logical blocks (30) included in the logical segment. If the access target area extends over a plurality of logical blocks, LZN, LZIBN, and LSN are obtained for each logical block.

次に、このようにして求めた論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNと論理セグメント番号LSNに基づいて、その論理ブロックに対応する物理ブロックの物理ブロックアドレスPBAを求める。尚、アクセス対象領域が複数の論理ブロックにまたがっている場合は、論理ブロック毎にPBAが求められる。   Next, based on the logical zone number LZN, the logical zone block number LZIBN, and the logical segment number LSN thus obtained, the physical block address PBA of the physical block corresponding to the logical block is obtained. When the access target area extends over a plurality of logical blocks, the PBA is obtained for each logical block.

PBAを求める処理を具体的に説明する。
まず、アクセス対象のLZNとLSNに対応する論理セグメントのアドレス変換テーブルが作成されているか否かを確認する。アドレス変換テーブルが作成されていない場合は、ワークエリア8にアドレス変換テーブルを作成する領域を確保する。この領域確保では、LZIBNの順番で、ブロック種別とPSIBN又はSBNが書き込まれる書込み箇所を確保し、ブロック種別は「占用ブロック」を示す情報にPSIBNは「データ無し」を示す情報に初期設定する。続いて、アクセス対象のLZNとLSNに対応するPZNとPSNで特定される物理セグメントに含まれる占用ブロックの冗長領域26とアクセス対象のLZNに対応するPZNで特定される物理ゾーンに含まれる共用ブロックの冗長領域26に書き込まれているLZIBN(論理アドレス情報)を読み出す。更に、読み出したLZIBNに対応する書込み箇所にそのLZIBNが書き込まれていた物理ブロックのPSIBN又はSBNを書き込む。又、SBNを書き込んだ場合には、対応するブロック種別を「共用ブロック」を示す情報「1」に変更する。
The process for obtaining the PBA will be specifically described.
First, it is confirmed whether or not the logical segment address conversion table corresponding to the access target LZN and LSN has been created. If the address conversion table has not been created, an area for creating the address conversion table is secured in the work area 8. In this area allocation, the block type and the writing location where PSIBN or SBN is written are secured in the order of LZIBN, and the block type is initially set to information indicating “occupied block” and PSIBN is initially set to information indicating “no data”. Subsequently, the private block redundant area 26 included in the physical segment specified by the PZN and PSN corresponding to the access target LZN and LSN and the shared block included in the physical zone specified by the PZN corresponding to the access target LZN LZIBN (logical address information) written in the redundant area 26 is read out. Furthermore, the PSIBN or SBN of the physical block in which the LZIBN has been written is written in the write location corresponding to the read LZIBN. When SBN is written, the corresponding block type is changed to information “1” indicating “shared block”.

次に、作成されたアドレス変換テーブルに基づいて、アクセス対象のLZIBNに対応するPZIBNを求める。ここで、対応する物理ブロックが占用ブロックの場合には、PSNの下位側にPSIBNを付加することによってPZIBNが求められる。対応する物理ブロックが共用ブロックの場合には、SBNの下位側に「0 0000」を付加することによってPZIBNが求められる。   Next, PZIBN corresponding to the access target LZIBN is obtained based on the created address conversion table. Here, when the corresponding physical block is a private block, PZIBN is obtained by adding PSIBN to the lower side of the PSN. When the corresponding physical block is a shared block, PZIBN is obtained by adding “0 0000” to the lower side of the SBN.

続いて、求めた物理ゾーン内ブロック番号PZIBNに、その物理ゾーンPZNの前に存在する物理ゾーン分の物理ブロック数を加算して、物理ブロックアドレスPBA(=1024×PZN+PZIBN)を求める。なお、1024は物理ゾーンに含まれる物理ブロック数である。   Subsequently, the physical block address PBA (= 1024 × PZN + PZIBN) is obtained by adding the number of physical blocks for the physical zone existing before the physical zone PZN to the obtained intra-physical block number PZIBN. Note that 1024 is the number of physical blocks included in the physical zone.

次に、マイクロプロセッサ6は、フラッシュメモリインタフェースブロック10の物理ブロックアドレスレジスタR11にアクセス対象の物理ブロックの物理ブロックアドレスPBAを設定し、ページ番号レジスタR12にその物理ブロック内の読み出しを開始するページのページ番号を設定し、さらに、カウンタR13に読み出し対象のページ数を設定し、さらに、コマンドレジスタR21に、データの読み出しを指示するシーケンスコマンドを設定する。ここで、セクタ数レジスタR2に設定されたセクタ数及びLBAレジスタR3に設定されたLBAで特定されるアクセス対象が複数の論理ブロックにまたがっていない場合は、セクタ数レジスタR2に設定されたセクタ数がカウンタR13に設定され、LBAレジスタR3に設定されたLBAの下位5ビットがページ番号レジスタR12に設定される。アクセス対象が複数の論理ブロックにまたがっている場合は、アクセス対象のLBAの範囲を論理ブロック毎に分割し、分割した各LBAの範囲に含まれるセクタ数がカウンタR13に設定され、分割した各LBAの範囲の先頭LBAの下位5ビットがページ番号レジスタR12に設定される。   Next, the microprocessor 6 sets the physical block address PBA of the physical block to be accessed in the physical block address register R11 of the flash memory interface block 10, and the page number register R12 of the page to start reading in the physical block. A page number is set, the number of pages to be read is set in the counter R13, and a sequence command for instructing data reading is set in the command register R21. If the access target specified by the number of sectors set in the sector number register R2 and the LBA set in the LBA register R3 does not extend over a plurality of logical blocks, the number of sectors set in the sector number register R2 Is set in the counter R13, and the lower 5 bits of the LBA set in the LBA register R3 are set in the page number register R12. When the access target extends over a plurality of logical blocks, the range of the LBA to be accessed is divided for each logical block, and the number of sectors included in each divided LBA range is set in the counter R13, and each divided LBA The lower 5 bits of the first LBA in the range are set in the page number register R12.

フラッシュメモリインタフェースブロック10の命令処理ブロックは、コマンドレジスタR21に設定されているシーケンスコマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力し、フラッシュメモリ2からデータを読み出し、読み出したデータをバッファ8に格納する。マイクロプロセッサ6は、バッファ9に格納されたデータをホストインタフェースブロック7と外部バス13を介してホストシステム4に提供する。   The instruction processing block of the flash memory interface block 10 outputs internal commands for controlling the flash memory 2, address information, and the like according to the sequence command set in the command register R21, and reads and reads data from the flash memory 2. The stored data is stored in the buffer 8. 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.

ここで、フラッシュメモリインタフェースブロック10の動作について具体的に説明する。フラッシュメモリインタフェースブロック10は、シーケンスコマンドに従って、物理ブロックアドレスレジスタR11に設定されているPBAにページ番号レジスタR12に設定されている設定値を付加(連結)した物理ページアドレスをフラッシュメモリ2に供給し、その物理ページアドレスに対応するページからデータを読み出し、読み出したデータをバッファ9に格納する。   Here, the operation of the flash memory interface block 10 will be specifically described. The flash memory interface block 10 supplies the flash memory 2 with a physical page address obtained by adding (concatenating) the set value set in the page number register R12 to the PBA set in the physical block address register R11 according to the sequence command. The data is read from the page corresponding to the physical page address, and the read data is stored in the buffer 9.

1ページ分のデータが読み出される毎に、カウンタR13に設定されている設定値をデクリメント(1ずつ減算)し、ページ番号レジスタR12に設定されている設定値をインクリメント(1ずつ加算)し、カウンタR13に設定されている設定値が0になるまでデータを順次読み出し、読み出したデータをバッファ9に格納する。   Each time one page of data is read, the set value set in the counter R13 is decremented (subtracted by 1), the set value set in the page number register R12 is incremented (added by 1), and the counter Data is read sequentially until the set value set in R13 becomes 0, and the read data is stored in the buffer 9.

次に、フラッシュメモリシステム1における書き込み処理について説明する。
書き込み処理の場合も、ホストインターフェースブロック7のセクタ数レジスタR2に設定されたセクタ数、LBAレジスタR3に設定されたLBAの先頭値、コマンドレジスタR1に設定された外部コマンドに基づいて処理が実行される。尚、この書き込み処理の場合も、コマンドレジスタR1に外部コマンドが設定されると処理が開始される。
Next, the writing process in the flash memory system 1 will be described.
Also in the case of the write process, processing 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. The Even in the case of this writing process, the process starts when an external command is set in the command register R1.

アクセス対象の論理ゾーン番号LZNと論理ゾーン内ブロック番号LZIBNと論理セグメント番号LSNも、読み出し処理の場合と同様に、LBAレジスタR3に設定された先頭LBAとセクタ数レジスタR2に設定されたアクセス対象のセクタ数に基づいて求められる。   Similarly to the case of the read process, the logical zone number LZN to be accessed, the block number LZIBN in the logical zone, and the logical segment number LSN are also set to the access target set in the head LBA set in the LBA register R3 and the sector number register R2. It is obtained based on the number of sectors.

書き込み処理における、論理アドレスから物理アドレスへの変換も、上述の読み出し処理と基本的に同一である。つまり、書き込み処理の場合も、アドレス変換テーブルに基づいて、アクセス対象の物理ブロックのPBAが求められる。   The conversion from the logical address to the physical address in the writing process is basically the same as the above-described reading process. That is, also in the case of write processing, the PBA of the physical block to be accessed is obtained based on the address conversion table.

続いて、アクセス対象の物理ブロックのデータの書き込み先のページが空きページの場合には、その空きページにデータを書き込み、空きページでない場合には、空きブロックを検索し、検出した空きブロックにデータを書き込む。空きブロックを検索するときは、最初にアクセス対象の論理セグメントに対応する物理セグメントに含まれる占用ブロックの空きブロックが検索され、占用ブロックの空きブロックが無い場合には、アクセス対象の物理ゾーンに含まれる共用ブロックの空きブロックが検索される。   Subsequently, if the page to which data of the physical block to be accessed is written is an empty page, data is written to the empty page. If the page is not an empty page, the empty block is searched, and data is detected in the detected empty block. Write. When searching for a free block, the free block of the private block included in the physical segment corresponding to the logical segment to be accessed is searched first, and if there is no free block of the private block, it is included in the physical zone to be accessed. The free block of the shared block to be searched is searched.

空きブロックにデータを書き込んだ場合は、データを書き込んだ空きブロックの冗長領域26にそのデータに対応するLZIBNを書き込む。更に、アドレス変換テーブルで、論理ブロックと物理ブロックの対応関係が変化した部分を更新する。   When data is written in the empty block, LZIBN corresponding to the data is written in the redundant area 26 of the empty block in which the data is written. Furthermore, the part where the correspondence relationship between the logical block and the physical block is changed is updated in the address conversion table.

上述のように、本実施の形態のフラッシュメモリシステム1においては、LBAに基づいてアクセス対象の論理ブロックが属する論理ゾーンのLZNと論理セグメントのLSNが特定され、特定されたLZNとLSNに対応するPZNとPSNが求められる。データを書き込む場合は、このPZNとPSNで特定される物理セグメントに含まれる占用ブロックにデータが書き込まれるが、この物理セグメントに含まれる占用ブロックが不良ブロック化した等の理由により、この物理セグメント内に空きブロックが無くなってしまった場合には、この物理セグメントが属する物理ゾーンの共用ブロックにデータが書き込まれる。   As described above, in the flash memory system 1 according to the present embodiment, the LZN of the logical zone to which the logical block to be accessed and the LSN of the logical segment belong are specified based on the LBA, and correspond to the specified LZN and LSN. PZN and PSN are required. When writing data, data is written to the private block included in the physical segment specified by PZN and PSN, but the private block included in this physical segment has become a bad block. If there is no more empty block, data is written to the shared block of the physical zone to which this physical segment belongs.

なお、この発明は上記実施の形態に限定されず、種々の変形及び応用が可能である。
例えば、上記実施の形態においては、1つの物理セグメントの先頭に1つの共用ブロックを配置したが、共用ブロックとして使用する物理ブロックは任意である。即ち、各物理セグメントのLSIBN#1〜31のいずれかの物理ブロックを共用ブロックとすることが可能である。さらに、各物理セグメントに1つの共用物理ブロックを配置するだけでなく、複数の共用ブロックを配置することが可能である。例えば、PSIBN#0と#1の物理ブロックを共用ブロックとする等してもよい。
In addition, this invention is not limited to the said embodiment, A various deformation | transformation and application are possible.
For example, in the above embodiment, one shared block is arranged at the head of one physical segment, but a physical block used as a shared block is arbitrary. That is, any physical block of LSIBN # 1 to 31 of each physical segment can be used as a shared block. Furthermore, it is possible to arrange not only one shared physical block in each physical segment but also a plurality of shared blocks. For example, the physical blocks of PSIBN # 0 and # 1 may be shared blocks.

又、論理ゾーンの数、論理ゾーン内の論理ブロックの数、論理ゾーン内の論理セグメントの数、論理セグメント内の論理ブロックの数、物理ゾーンの数、物理ゾーン内の物理ブロックの数、物理ゾーン内の物理セグメントの数及び物理セグメント内の物理ブロックの数は、相互に整合が取れる範囲で適宜設定することができる。   Also, the number of logical zones, the number of logical blocks in the logical zone, the number of logical segments in the logical zone, the number of logical blocks in the logical segment, the number of physical zones, the number of physical blocks in the physical zone, the physical zone The number of physical segments and the number of physical blocks in the physical segment can be set as appropriate as long as they are consistent with each other.

以上の説明では、物理ゾーンの数、物理ゾーン内の物理ブロックの数、物理ゾーン内の物理セグメントの数及び物理セグメント内の物理ブロックの数をいずれも2のべき乗個としたが、必ずしも2のべき乗個でなくてもよい。   In the above description, the number of physical zones, the number of physical blocks in the physical zone, the number of physical segments in the physical zone, and the number of physical blocks in the physical segment are all powers of 2. It does not have to be a power.

本発明の実施の形態に係るフラッシュメモリシステムを概略的に示すブロック図である。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. 論理アドレスと物理アドレスとの対応関係を説明するための図である。It is a figure for demonstrating the correspondence of a logical address and a physical address. アドレス変換テーブルの一例を示す図である。It is a figure which shows an example of an address conversion table. 従来のフラッシュメモリのアドレス空間の構造を概略的に示す図である。It is a figure which shows schematically 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 内部バス
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 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,
Correspondence 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, and a physical that divides the physical zone by a predetermined number Address management means for managing a correspondence relationship between a segment and a logical segment obtained by dividing the logical zone by the number of divisions;
A physical block in the physical segment is assigned to an occupied block or a shared block, and data corresponding to the logical segment corresponding to the physical segment including the occupied block is written to the occupied block, and the shared block is written to the shared block. Writing means for writing data corresponding to the logical zone corresponding to the physical zone including the shared block;
A memory controller comprising:
前記物理セグメントに含まれる物理ブロックの個数が2のべき乗個であることを特徴とする請求項1に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the number of physical blocks included in the physical segment is a power of two. 前記共用ブロックが前記物理セグメント内の先頭又は最後の物理ブロックであることを特徴とする請求項1又は2に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the shared block is a first physical block or a last physical block in the physical segment. 請求項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.
JP2005365175A 2005-12-19 2005-12-19 Memory controller and flash memory system Active JP4227989B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005365175A JP4227989B2 (en) 2005-12-19 2005-12-19 Memory controller and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005365175A JP4227989B2 (en) 2005-12-19 2005-12-19 Memory controller and flash memory system

Publications (2)

Publication Number Publication Date
JP2007172066A true JP2007172066A (en) 2007-07-05
JP4227989B2 JP4227989B2 (en) 2009-02-18

Family

ID=38298590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005365175A Active JP4227989B2 (en) 2005-12-19 2005-12-19 Memory controller and flash memory system

Country Status (1)

Country Link
JP (1) JP4227989B2 (en)

Also Published As

Publication number Publication date
JP4227989B2 (en) 2009-02-18

Similar Documents

Publication Publication Date Title
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4171749B2 (en) Memory controller and flash memory system
JP4666081B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4235646B2 (en) Memory controller and flash memory system
JP4636005B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4501881B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
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
JP4434171B2 (en) Memory controller and flash memory system
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4241741B2 (en) Memory controller and flash memory system
JP4254933B2 (en) Memory controller and flash memory system
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4661566B2 (en) Access controller, flash memory system, and access control method
JP3934659B1 (en) Memory controller and flash memory system
JP4227989B2 (en) Memory controller and flash memory system
JP4213166B2 (en) Memory controller and flash memory system
JP2021068129A (en) Memory controller and flash memory system
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4513782B2 (en) Memory controller, flash memory system, and flash memory control method
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP6260395B2 (en) Memory controller, memory system, and memory control method
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4273109B2 (en) Memory controller and flash memory system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081111

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

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

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4227989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121205

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5