JP4501881B2 - Memory controller and flash memory system - Google Patents

Memory controller and flash memory system Download PDF

Info

Publication number
JP4501881B2
JP4501881B2 JP2006080694A JP2006080694A JP4501881B2 JP 4501881 B2 JP4501881 B2 JP 4501881B2 JP 2006080694 A JP2006080694 A JP 2006080694A JP 2006080694 A JP2006080694 A JP 2006080694A JP 4501881 B2 JP4501881 B2 JP 4501881B2
Authority
JP
Japan
Prior art keywords
written
data
area
mark
write
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.)
Active
Application number
JP2006080694A
Other languages
Japanese (ja)
Other versions
JP2007257283A (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 JP2006080694A priority Critical patent/JP4501881B2/en
Publication of JP2007257283A publication Critical patent/JP2007257283A/en
Application granted granted Critical
Publication of JP4501881B2 publication Critical patent/JP4501881B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステムに関する。   The present invention relates to a memory controller 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.

このような機器が扱うデータが大容量化したことに伴い、フラッシュメモリの記憶容量も大容量化が進んでいる。   As the data handled by such devices has increased in capacity, the storage capacity of flash memory has also increased.

また、フラッシュメモリの用途は、パーソナルコンピュータやデジタルカメラ等のホストシステムの外部記憶装置(フラッシュメモリシステム)として使用されることが多く、任意に着脱等される場合がある。このため、例えば、フラッシュメモリへのデータの書き込み(保存)動作中に外部記憶装置(フラッシュメモリシステム)がホストシステムから引き抜かれたような場合、正常に書き込まれていないデータ(異常データ)が残ってしまうことがある。   Further, the flash memory is often used as an external storage device (flash memory system) of a host system such as a personal computer or a digital camera, and may be arbitrarily attached or detached. For this reason, for example, when the external storage device (flash memory system) is pulled out from the host system during the data write (save) operation to the flash memory, data that has not been written normally (abnormal data) remains. May end up.

このような観点から、特許文献1等には、フラッシュメモリの記憶データを更新する際に所定のフラグを設定し、更新が完了すると、他のフラグを設定して更新が正常に完了したことを示す技術が開示されている。この技術を用いれば、電源遮断等で書き込み処理が途中で終了(以下、異常終了と言う。)したときに、異常終了したことを検出することはできる。   From this point of view, in Patent Document 1 and the like, a predetermined flag is set when updating the data stored in the flash memory, and when the update is completed, another flag is set and the update is normally completed. The technique shown is disclosed. If this technique is used, it is possible to detect the abnormal end when the writing process is ended halfway due to power interruption or the like (hereinafter referred to as abnormal end).

しかし、電源遮断等で書き込み処理が異常終了したときに、フラッシュメモリに記憶されているデータを正常データと異常データとに分離することができない。
特開2005−174232号公報
However, when the writing process ends abnormally due to power interruption or the like, the data stored in the flash memory cannot be separated into normal data and abnormal data.
JP 2005-174232 A

書き込み処理が異常終了して、データの書き込み先になっていたフラッシュメモリ内の物理ブロックに正常データと異常データが並存する場合、それらを分離して正常データだけを残す必要がある。   When the writing process ends abnormally and normal data and abnormal data coexist in the physical block in the flash memory that was the data write destination, it is necessary to separate them and leave only normal data.

又、データの書き込み先であるフラッシュメモリは大容量化が進んでおり、1個のページのユーザ領域が1セクタ(512バイト)、1ブロックが32ページの構成(以下、スモールブロックタイプと言う。)から、1個のページのユーザ領域が4セクタ(2048バイト)、1ブロックが64ページの構成(以下、ラージブロックタイプと言う。)に移行しつつある。つまり、1個のブロックに含まれるユーザ領域が32個のセクタ領域(512バイトの領域)で構成されるスモールブロックタイプから、1個のブロックに含まれるユーザ領域が256個のセクタ領域(512バイトの領域)で構成されるラージブロックタイプに移行しつつある。   In addition, the flash memory, which is a data write destination, has been increased in capacity, and a user area of one page has one sector (512 bytes), and one block has 32 pages (hereinafter referred to as a small block type). ), The user area of one page is shifting to a configuration of 4 sectors (2048 bytes) and 1 block of 64 pages (hereinafter referred to as a large block type). That is, from a small block type in which a user area included in one block is composed of 32 sector areas (512-byte areas), a user area included in one block is 256 sector areas (512 bytes). Are moving to the large block type.

このように1個の物理ブロックの容量(セクタ数)が大きくなると、ホストシステムから同一の物理ブロックが書き込み先となる書き込み要求が与えられる回数が多くなり、書き込み処理が異常終了したときに書き込み先の物理ブロックに書き込まれているデータ量も多くなるので、正常データと異常データを判別する処理がより煩雑になる。   When the capacity (number of sectors) of one physical block is increased in this way, the number of times that the host system gives a write request for the same physical block as the write destination increases, and the write destination when the write processing ends abnormally. Since the amount of data written to the physical block increases, the process of discriminating between normal data and abnormal data becomes more complicated.

本発明は上記の実情に鑑みてなされたもので、書き込み処理が異常終了したときに、データの書き込み先になっていたフラッシュメモリ内の物理ブロックに並存する正常データと異常データを容易に判別することができるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステムを提供することを目的とする。   The present invention has been made in view of the above circumstances, and when write processing ends abnormally, normal data and abnormal data coexisting in the physical block in the flash memory that was the data write destination are easily discriminated. An object of the present invention is to provide a memory controller that can be used, and a flash memory system including the memory controller.

上記目的を達成するため、本発明のメモリコントローラは、ホストシステムからの命令に応答して、物理ブロックに含まれる各ページのユーザ領域が1又は複数のセクタ領域で構成されているフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
ホストシステムからのデータ書き込みの命令に応答して、i)前記セクタ領域に一連のデータを順次書き込み、ii) 前記一連のデータが書き込まれたセクタ領域に対応する冗長領域にデータが書き込まれたことを示す書込マークを順次書き込み、iii)前記一連のデータの末尾データを書き込んだ前記セクタ領域に対応する冗長領域に一連のデータの末尾データを書き込んだことを示す終了マークを書き込む書込手段と
前記書込マーク及び前記終了マークに基づいて、前記一連のデータの書き込みが正常に終了しなかったことを検知する異常終了検知手段と、
前記書込マーク及び前記終了マークに基づいて、前記一連のデータが正常に書き込まれているセクタ領域の末尾を検出する正常データ検出手段と、
を備え
前記書込マークは、前記物理ブロックに書き込まれた何番目の一連のデータであるかを示す順番情報を含み、
前記異常終了検知手段が前記一連のデータの書き込みが正常に終了しなかったことを検知したときに、書き込みが正常に終了しなかった前記一連のデータに対応する前記順番情報が1番目を示す情報である場合、前記正常データ検出手段は、前記一連のデータが正常に書き込まれているセクタ領域の末尾を検出する処理を行わず、正常に書き込まれている前記一連のデータが無いと判断する、
ことを特徴とする。
In order to achieve the above object, the memory controller of the present invention accesses a flash memory in which the user area of each page included in a physical block is composed of one or a plurality of sector areas in response to an instruction from the host system. A memory controller for controlling
In response to a data write command from the host system, i) a series of data is sequentially written in the sector area, and ii) data is written in a redundant area corresponding to the sector area in which the series of data is written. Iii) writing means for writing an end mark indicating that end data of a series of data is written in a redundant area corresponding to the sector area in which end data of the series of data is written; ,
Abnormal end detection means for detecting that the writing of the series of data did not end normally based on the writing mark and the end mark;
Normal data detection means for detecting the end of a sector area in which the series of data is normally written based on the write mark and the end mark;
Equipped with a,
The write mark includes order information indicating what number of series of data written in the physical block,
Information indicating that the order information corresponding to the series of data that has not been normally written indicates the first when the abnormal end detection means detects that the series of data has not been written normally. The normal data detection means does not perform the process of detecting the end of the sector area in which the series of data is normally written, and determines that there is no series of data that is normally written.
It is characterized by that.

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

本発明によれば、フラッシュメモリへの一連のデータの書き込み処理が異常終了した場合、つまり、一連のデータの書き込み処理で、一連のデータの末尾データが書き込まれずに異常終了した場合、最後にデータが書き込まれたセクタ領域に対応する冗長領域には書込マークが書き込まれるが、終了マークは書き込まれない。従って、最後にデータが書き込まれたセクタ領域に対応する冗長領域に書込マークと終了マークの双方が書き込まれていない場合には、一連のデータの書き込み処理が異常終了したと判断することができる。   According to the present invention, if a series of data write processing to the flash memory is abnormally terminated, that is, if a series of data write processing ends abnormally without writing the end data of the series of data, the last data The write mark is written in the redundant area corresponding to the sector area in which is written, but the end mark is not written. Therefore, when both the write mark and the end mark are not written in the redundant area corresponding to the sector area in which the data is written last, it can be determined that the series of data writing processes has ended abnormally. .

更に、一連のデータの書き込み処理が異常終了したと判断した場合には、終了マークに基づいて一連のデータが正常に書き込まれているセクタ領域の末尾を検出することができる。   Further, when it is determined that the series of data write processing has ended abnormally, the end of the sector area in which the series of data is normally written can be detected based on the end mark.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。   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つのページは、4セクタ(2048バイト)のユーザ領域25と、64バイトの冗長領域26で構成され、1つの物理ブロックは64個のページで構成されている。   In the flash memory 2 shown in FIG. 2, one page is composed of a user area 25 of 4 sectors (2048 bytes) and a redundant area 26 of 64 bytes, and one physical block is composed of 64 pages. Yes.

又、物理ブロックには、それぞれに固有の物理ブロックアドレス(PBA)が割り当てられている。更に、記憶領域を複数のゾーンに分割して管理する場合には、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに固有の物理ゾーン番号(PZN)を割り当てている。各物理ゾーンに含まれる物理ブロックの、各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。   Each physical block is assigned a unique physical block address (PBA). Further, when the storage area is divided into a plurality of zones for management, a physical zone is constituted by a plurality of physical blocks, and a unique physical zone number (PZN) is assigned to each physical zone. A serial number in each physical zone of a physical block included in each physical zone is referred to as a physical zone block number (PZIBN).

一方、ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。更に、複数個のセクタをまとめたものを論理ブロックと呼び、複数個の論理ブロックをまとめたものを論理ゾーンと呼んでいる。尚、論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、各論理ブロックに含まれるセクタの、各論理ブロック内での通番をセクタ番号(SN)と呼んでいる。又、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼び、各論理ゾーンに含まれる論理ブロックの、各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。   On the other hand, the address space on the host system 4 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. A serial number assigned to a logical block is called a logical block number (LBN), and a serial number in each logical block of sectors included in each logical block is called a sector number (SN). Further, the serial number assigned to the logical zone is called a logical zone number (LZN), and 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個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。更に、データが書き込まれた物理ブロックの冗長領域26には、そのデータに対応する論理ブロックを特定できる情報(以下、論理アドレス情報という。)が書き込まれる。この論理アドレス情報として、一般的にはデータ量の少ないLZIBNが書き込まれるが、LBNを書き込んでも構わない。   In addition, one physical zone is allocated to each logical zone, and data corresponding to each logical block included in the logical zone is written to a physical block included in the physical zone allocated to the logical zone. Further, information (hereinafter referred to as logical address information) that can identify a logical block corresponding to the data is written in the redundant area 26 of the physical block in which the data is written. As this logical address information, LZIBN with a small amount of data is generally written, but LBN may be written.

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

次に、4セクタ(2048バイト)のユーザ領域25と、64バイトの冗長領域26で構成されたページの記憶領域について、図3を参照して説明する。各ページのユーザ領域25は、4つの領域(以下、セクタ領域25’と言う。)に区分されている。このセクタ領域25’には、それぞれ、ホストシステム4から供給される1セクタ(512バイト)のユーザデータが格納される。   Next, a page storage area composed of a user area 25 of 4 sectors (2048 bytes) and a redundant area 26 of 64 bytes will be described with reference to FIG. The user area 25 of each page is divided into four areas (hereinafter referred to as sector areas 25 '). Each sector area 25 ′ stores one sector (512 bytes) of user data supplied from the host system 4.

一方、冗長領域26も、4つの領域(以下、部分冗長領域26’と言う。)に区分され、この部分冗長領域26’には、それぞれ、16バイトの領域が割り当てられる。各ページの部分冗長領域26’には、それぞれ、対応するセクタ領域25’に書き込まれたユーザデータのエラーコレクション(ECC)コードと、対応するセクタ領域25’の書き込み状態を示す書き込みマーク及び終了マークが書き込まれる。更に、各物理ブロックの先頭ページの部分冗長領域26’には、論理アドレス情報及びブロックステータス(フラグ)が書き込まれる。   On the other hand, the redundant area 26 is also divided into four areas (hereinafter referred to as a partial redundant area 26 '), and a 16-byte area is allocated to each of the partial redundant areas 26'. In the partial redundancy area 26 ′ of each page, an error correction (ECC) code of user data written in the corresponding sector area 25 ′, a write mark and an end mark indicating the write state of the corresponding sector area 25 ′, respectively. Is written. Further, logical address information and block status (flag) are written in the partial redundancy area 26 'of the first page of each physical block.

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

書き込みマークは、対応するセクタ領域25’にユーザデータが書き込まれているか否かを示す情報である。終了マークは、一連のユーザデータを書き込む書き込み処理(以下、一連のユーザデータを書き込む書き込み処理をシーケンス書き込み処理という)で、末尾のユーザデータが書き込まれたセクタ領域25’を示す情報である。つまり、シーケンス書き込み処理で複数セクタのユーザデータを書き込んだ場合、そのシーケンス書き込み処理でユーザデータを書き込んだセクタ領域25’に対応する部分冗長領域26’に書き込みマークを書き込み、更に、末尾のユーザデータを書き込んだセクタ領域25’に対応する部分冗長領域26’に終了マークを書き込む。ここで、シーケンス書き込み処理とは、フラッシュメモリインターフェースブロック10に設定された情報に基づいて実行される一連のユーザデータの書き込み処理をいう。ホストシステム4から与えられた書き込みコマンドに基づくアクセス対象領域が複数の物理ブロックに跨っていない場合は、ホストシステム4から与えられた1回の書き込みコマンドに基づいて、1回のシーケンス書き込み処理が実行される。   The write mark is information indicating whether user data is written in the corresponding sector area 25 '. The end mark is information indicating the sector area 25 ′ in which the last user data is written in a writing process for writing a series of user data (hereinafter, a writing process for writing a series of user data is referred to as a sequence writing process). That is, when user data of a plurality of sectors is written by the sequence writing process, a write mark is written in the partial redundancy area 26 ′ corresponding to the sector area 25 ′ in which the user data is written by the sequence writing process, and the user data at the end is written. Is written in the partial redundancy area 26 'corresponding to the sector area 25'. Here, the sequence writing process refers to a series of user data writing processes executed based on information set in the flash memory interface block 10. When the access target area based on the write command given from the host system 4 does not extend over a plurality of physical blocks, one sequential write process is executed based on one write command given from the host system 4 Is done.

又、各セクタ領域25’と各部分冗長領域26’の対応関係は、適宜設定することができる。例えば、図3に示したように、ユーザ領域25内の先頭のセクタ領域25’を冗長領域26の先頭の部分冗長領域26’に、ユーザ領域25内の2番目のセクタ領域25’を冗長領域26の2番目の部分冗長領域26’に、ユーザ領域25内の3番目のセクタ領域25’を冗長領域26の3番目の部分冗長領域26’にそれぞれ対応させる。   The correspondence between each sector area 25 'and each partial redundancy area 26' can be set as appropriate. For example, as shown in FIG. 3, the first sector area 25 ′ in the user area 25 is used as the first partial redundant area 26 ′ in the redundant area 26, and the second sector area 25 ′ in the user area 25 is used as the redundant area. 26, the third sector area 25 ′ in the user area 25 corresponds to the third partial redundancy area 26 ′ of the redundancy area 26.

次に、フラッシュメモリ2に対するアクセスを制御するコントローラ3について説明する。コントローラ3は、フラッシュメモリ2にデータ、アドレス情報、内部コマンド等を供給することにより読み出し処理、書き込み処理、ブロック消去処理等の各処理を行う。   Next, the controller 3 that controls access to the flash memory 2 will be described. The controller 3 performs various processes such as a read process, a write process, and a block erase process by supplying data, address information, internal commands, and the like to the flash memory 2.

ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3から与えられる内部コマンドに従って動作する。一方、ホストシステム4からコントローラ3に与えられるコマンドを外部コマンドと言う。   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. On the other hand, a command given from the host system 4 to the controller 3 is called an external command.

コントローラ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に処理を実行させる。   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 out a command set (hereinafter referred to as a sequence command) defining various processes from the ROM 12, and causes the flash memory interface block 10 to execute processes according to the sequence command.


ROM12は、不揮発性の記憶素子であり、上記のシーケンスコマンド等が記憶されている。

The ROM 12 is a non-volatile storage element and stores the above sequence commands and the like.

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。上述のアドレス変換テーブルは、このワークエリア8上に作成される。   The work area 8 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and is composed of a plurality of SRAM (Static Random Access Memory) cells. The above address conversion table is created on this work area 8.

バッファ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.

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.

ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、外部コマンド等の授受を行う。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   The host interface block 7 exchanges data, address information, external commands and the like with the host system 4. 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.

フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。   The flash memory interface block 10 exchanges data, address information, status information, internal commands, and the like with the flash memory 2 via the internal bus 14.

ホストインターフェースブロック7及びフラッシュメモリインターフェースブロック10は、図4に示すような各種のレジスタを備える。ホストインターフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3等を備えており、フラッシュメモリインターフェースブロック10は、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13、書込マークレジスタR14、終了マークレジスタR15等を備える。   The host interface block 7 and the flash memory interface block 10 include various registers as shown in FIG. The host interface block 7 includes a command register R1, a sector number register R2, an LBA register R3, and the like. The flash memory interface block 10 includes a physical block address register R11, a sector number register R12, a counter R13, and a write mark register R14. And an end mark register R15.

コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。LBAレジスタR3には、アクセス対象領域の先頭のLBAが書き込まれる。セクタ数レジスタR2にはアクセス対象領域のセクタ数が書き込まれる。   Information given from the host system 4 is written in the command register R1, the sector number register R2, and the LBA register R3. External commands such as a write command and a read command are written in the command register R1. In the LBA register R3, the head LBA of the access target area is written. The number of sectors in the access target area is written in the sector number register R2.

物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13には、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、フラッシュメモリ2内のアクセス対象領域を指示する情報が書き込まれる。   Information indicating the access target area in the flash memory 2 is written in the physical block address register R11, the sector number register R12, and the counter R13 based on the information written in the sector number register R2 and the LBA register R3.

フラッシュメモリ2内のアクセス対象領域を特定するときには、LBAレジスタR3に設定されたLBAに基づいてアクセス対象のLBNとSNが特定される。   When the access target area in the flash memory 2 is specified, the access target LBN and SN are specified based on the LBA set in the LBA register R3.

例えば、LBAが連続する256セクタの領域を、フラッシュメモリ(1ブロックが64ページで、1ページが4セクタのフラッシュメモリ)の1個の物理ブロックに割り当てた場合、図5に示したようにLBAの下位8ビットがSNに対応し、この下位8ビットを除いた上位側のビットがLBNに対応する。つまり、LBAが連続する256セクタの領域を論理ブロックとした場合、LBAの下位8ビットが論理ブロック内の各セクタに付けた通番であるセクタ番号SN(0〜255)を示し、このLBAの下位8ビットを除いた上位側のビットがLBNを示している。尚、LBA、LBN及びSNのビット数については、フラッシュメモリの容量や仕様等に応じて決定される。   For example, if an area of 256 sectors with consecutive LBAs is allocated to one physical block in flash memory (one block has 64 pages and one page has 4 sectors), as shown in FIG. The lower 8 bits correspond to SN, and the upper bits excluding the lower 8 bits correspond to LBN. That is, when an area of 256 sectors with continuous LBA is a logical block, the lower 8 bits of the LBA indicate the sector number SN (0 to 255) which is a serial number assigned to each sector in the logical block. The upper bits excluding 8 bits indicate LBN. Note that the number of bits of LBA, LBN, and SN is determined according to the capacity and specifications of the flash memory.

続いて、アクセス対象のLBNとSNに基づいて、物理ブロックアドレスレジスタR11及びセクタ番号レジスタR12へアクセス対象領域を指示する情報の設定が行われる。   Subsequently, based on the access-target LBN and SN, information indicating the access target area is set in the physical block address register R11 and the sector number register R12.

物理ブロックアドレスレジスタR11には、LBAレジスタR3に書き込まれたLBAのLBNを示す部分に基づいて特定された論理ブロックと対応する物理ブロックのPBA又は空きブロックのPBAが書き込まれる。つまり、特定された論理ブロックに対応する物理ブロックからユーザデータを読み出す場合、又は、そのブロックに追加書き込みをする場合には、特定された論理ブロックと対応する物理ブロックのPBAが物理ブロックアドレスレジスタR11に書き込まれ、特定された論理ブロックに対応するユーザデータを空きブロックに書き込む場合には、その空きブロックのPBAが物理ブロックアドレスレジスタR11に書き込まれる。   In the physical block address register R11, the PBA of the physical block corresponding to the logical block specified based on the portion indicating the LBN of the LBA written in the LBA register R3 or the PBA of the empty block is written. That is, when reading user data from the physical block corresponding to the specified logical block, or when additional writing is performed on the block, the PBA of the physical block corresponding to the specified logical block is the physical block address register R11. When the user data corresponding to the specified logical block is written into the empty block, the PBA of the empty block is written into the physical block address register R11.

セクタ番号レジスタR12には、LBAレジスタR3に書き込まれたLBAのSNに対応する部分が書き込まれる。ここで、各物理ブロックにはLBAの順番でユーザデータを書き込まれるので、上記SNは、各物理ブロックに含まれるセクタ領域25’に付けられた通番に対応する。尚、各ページのユーザ領域25は4個のセクタ領域25’で構成されているので、SNの上位6ビットが物理ブロック内のページ番号PN(0〜63)に対応し、SNの下位2ビットがユーザ領域25に含まれるセクタ領域25’の順番を示すページ内セクタ番号PISN(0〜3)に対応する。   In the sector number register R12, a portion corresponding to the SN of the LBA written in the LBA register R3 is written. Here, since user data is written in each physical block in the order of LBA, the SN corresponds to a serial number assigned to the sector area 25 ′ included in each physical block. Since the user area 25 of each page is composed of four sector areas 25 ′, the upper 6 bits of SN correspond to the page number PN (0 to 63) in the physical block, and the lower 2 bits of SN. Corresponds to the in-page sector number PISN (0 to 3) indicating the order of the sector area 25 ′ included in the user area 25.

カウンタR13には、物理ブロックアドレスレジスタR11に設定されたPBAで特定される物理ブロックに書き込まれる一連のユーザデータのセクタ数が書き込まれる。従って、セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて特定されるアクセス対象領域が複数の物理ブロックに跨っていない場合は、セクタ数レジスタR2に設定されたセクタ数がカウンタR13に書き込まれる。   In the counter R13, the number of sectors of a series of user data written in the physical block specified by the PBA set in the physical block address register R11 is written. Therefore, when the access target area specified based on the information written in the sector number register R2 and the LBA register R3 does not extend over a plurality of physical blocks, the sector number set in the sector number register R2 is stored in the counter R13. Written.

尚、LBAレジスタR3及びセクタ数レジスタR2に基づいて特定されるアクセス対象領域が複数の論理ブロックに跨っている場合、アクセス対象領域の物理ブロックも複数の物理ブロックに跨っているので、物理ブロックアドレスレジスタR11、セクタ番号レジスタR12、カウンタR13に対する情報の設定は論理ブロック毎に行われる。従って、LBAレジスタR3及びセクタ数レジスタR2に基づいて特定されるアクセス対象領域が複数の論理ブロックに跨っている場合、ホストシステム4から与えられる1回の書き込みコマンドに基づいて複数回(例えば、2個の論理ブロックに跨っている場合は2回)のシーケンス書き込み処理が実行される。   When the access target area specified based on the LBA register R3 and the sector count register R2 extends over a plurality of logical blocks, the physical block of the access target area also extends over a plurality of physical blocks. Information setting for the register R11, the sector number register R12, and the counter R13 is performed for each logical block. Therefore, when the access target area specified based on the LBA register R3 and the sector number register R2 extends over a plurality of logical blocks, it is set a plurality of times (for example, 2 based on one write command given from the host system 4). The sequence write process is executed twice if the logical block is straddled.

書き込み処理の場合には、書込マークレジスタR14と終了マークレジスタR15に、部分冗長領域26’に書き込まれる書込マークと終了マークがそれぞれ設定される。   In the case of the writing process, a write mark and an end mark written to the partial redundancy area 26 'are set in the write mark register R14 and the end mark register R15, respectively.

本実施の形態では、書込マークを8ビットとし、終了マークを4ビットとしている。書込マークは、その物理ブロックに対する何回目のシーケンス書き込み処理であるかによって下記のように書込マークの設定を変えている。
1回目のシーケンス書き込み処理時の書込マーク:00h(16進数表記)
2回目のシーケンス書き込み処理時の書込マーク:05h(16進数表記)
3回目のシーケンス書き込み処理時の書込マーク:0Ah(16進数表記)
4回目のシーケンス書き込み処理時の書込マーク:0Fh(16進数表記)
5回目のシーケンス書き込み処理時の書込マーク:50h(16進数表記)
6回目のシーケンス書き込み処理時の書込マーク:55h(16進数表記)
7回目のシーケンス書き込み処理時の書込マーク:5Ah(16進数表記)
8回目のシーケンス書き込み処理時の書込マーク:5Fh(16進数表記)
9回目のシーケンス書き込み処理時の書込マーク:A0h(16進数表記)
10回目のシーケンス書き込み処理時の書込マーク:A5h(16進数表記)
11回目のシーケンス書き込み処理時の書込マーク:AAh(16進数表記)
12回目のシーケンス書き込み処理時の書込マーク:AFh(16進数表記)
13回目のシーケンス書き込み処理時の書込マーク:F0h(16進数表記)
14回目のシーケンス書き込み処理時の書込マーク:F5h(16進数表記)
15回目以降のシーケンス書き込み処理時の書込マーク:FAh(16進数表記)
In the present embodiment, the write mark is 8 bits and the end mark is 4 bits. The setting of the writing mark is changed as follows depending on the number of sequential writing processes for the physical block.
Write mark at the time of the first sequence writing process: 00h (hexadecimal notation)
Write mark at the time of the second sequence write process: 05h (hexadecimal notation)
Write mark at the time of the third sequence writing process: 0 Ah (hexadecimal notation)
Write mark at the time of the fourth sequence write process: 0Fh (hexadecimal notation)
Write mark at the time of the fifth sequence writing process: 50h (hexadecimal notation)
Write mark at the time of 6th sequence write processing: 55h (hexadecimal notation)
Write mark at the time of the seventh sequence writing process: 5 Ah (hexadecimal notation)
Write mark for the 8th sequence write process: 5Fh (hexadecimal notation)
Write mark at the time of the 9th sequence writing process: A0h (hexadecimal notation)
Write mark for the 10th sequence write process: A5h (hexadecimal notation)
Write mark for the 11th sequence write process: AAh (hexadecimal notation)
Write mark for the 12th sequence writing process: AFh (hexadecimal notation)
Write mark for the 13th sequence writing process: F0h (hexadecimal notation)
Write mark for the 14th sequence writing process: F5h (hexadecimal notation)
Write mark for the 15th and subsequent sequence write processes: FAh (hexadecimal notation)

例えば、既に8回のシーケンス書き込み処理が行われている物理ブロックに、9回目のシーケンス書き込み処理を行う場合には、書込マークレジスタR14にA0h(16進数表記)を、終了マークレジスタR15にFh(16進数表記)を設定した後にシーケンス書き込み処理が実行する。シーケンス書き込み処理が実行されると物理ブロックアドレスレジスタR11及びセクタ番号レジスタR12に設定されている情報に基づいて、ユーザデータの書き込み先のページを特定する物理アドレス情報と、書き込み先のページ内のセクタ領域25’を特定する情報がフラッシュメモリ2に供給される。更に、セクタ領域25’に書き込まれるユーザデータが、バッファ9から供給され、部分冗長領域26’に書き込まれる書込マークと終了マークが、書込マークレジスタR14と終了マークレジスタR15からそれぞれ供給される。ここで、書き込み先のページを特定する物理アドレス情報は、物理ブロックアドレスレジスタR11に設定されているPBAとセクタ番号レジスタR12に設定されているSNの上位6ビットに基づいて生成され、ページ内のセクタ領域25’を特定する情報は、SNの下位2ビットに基づいて生成される。   For example, when the ninth sequence write process is performed on a physical block that has already been subjected to the sequence write process eight times, A0h (hexadecimal notation) is written in the write mark register R14, and Fh is written in the end mark register R15. After setting (hexadecimal notation), the sequence writing process is executed. When the sequence writing process is executed, based on information set in the physical block address register R11 and the sector number register R12, physical address information for specifying a user data write destination page, and sectors in the write destination page Information specifying the area 25 ′ is supplied to the flash memory 2. Further, user data to be written to the sector area 25 ′ is supplied from the buffer 9, and a write mark and an end mark to be written to the partial redundancy area 26 ′ are respectively supplied from the write mark register R14 and the end mark register R15. . Here, the physical address information for specifying the page to be written is generated based on the PBA set in the physical block address register R11 and the upper 6 bits of SN set in the sector number register R12. The information specifying the sector area 25 ′ is generated based on the lower 2 bits of SN.

1セクタのユーザデータがバッファ9からフラッシュメモリ2に供給される毎にセクタ番号レジスタR12に設定されている値がインクリメント(1ずつ増加)され、カウンタR13に設定されている値がデクリメント(1ずつ減少)される。カウンタR13に設定されている値が1になったときに、終了マークレジスタR15に0h(16進数表記)が設定され、カウンタR13に設定されている値が0になったときにシーケンス書き込み処理が終了する。例えば、カウンタR13に「8」を設定してシーケンス書き込み処理を開始した場合、8セクタのユーザデータの書き込みが行われ、8セクタ目のユーザデータが書き込まれたセクタ領域25’に対応する部分冗長領域26’には、終了マークとして0h(16進数表記)が書き込まれる。   Each time user data of one sector is supplied from the buffer 9 to the flash memory 2, the value set in the sector number register R12 is incremented (incremented by 1), and the value set in the counter R13 is decremented (by 1). Reduced). When the value set in the counter R13 becomes 1, 0h (hexadecimal notation) is set in the end mark register R15, and when the value set in the counter R13 becomes 0, the sequence writing process is performed. finish. For example, when “8” is set in the counter R13 and the sequence writing process is started, user data of 8 sectors is written, and partial redundancy corresponding to the sector area 25 ′ in which user data of the 8th sector is written. In the area 26 ', 0h (hexadecimal notation) is written as the end mark.

つまり、シーケンス書き込み処理は、物理ブロックアドレスレジスタR11に書き込み先の物理ブロックのPBAを書き込み、セクタ番号レジスタR12に書き込みを開始するセクタ領域25’に対応するSNを書き込み、カウンタR13に書き込むユーザデータのセクタ数を書き込み、書込マークレジスタR14に書込マークを書き込み、終了マークレジスタR15にFh(16進数表記)を書き込んだ後に開始され、カウンタR13に書き込まれたセクタ数分のユーザデータが書き込まれると終了する。   That is, in the sequence write process, the PBA of the write destination physical block is written to the physical block address register R11, the SN corresponding to the sector area 25 ′ to start writing is written to the sector number register R12, and the user data to be written to the counter R13 is written. Write the number of sectors, write a write mark to the write mark register R14, write Fh (hexadecimal notation) to the end mark register R15, and write user data for the number of sectors written to the counter R13. And finish.

尚、書込マークは、ビット誤りの発生を考慮して0h、5h、Ah及びFh(16進数表記)の組み合わせ(但し、FFhを除く)で構成している。又、部分冗長領域26’の書込マークが書き込まれる部分がFFh(消去状態)の場合は、書込マークが書き込まれていないと判断する。   The write mark is composed of a combination (excluding FFh) of 0h, 5h, Ah and Fh (hexadecimal notation) in consideration of the occurrence of a bit error. If the portion of the partial redundancy area 26 'where the write mark is written is FFh (erased), it is determined that the write mark is not written.

本実施の形態では、各物理ブロックに含まれる256個のセクタ領域25’のユーザデータが記憶されているか否かを書込マークに基づいて判断し、ユーザデータが記憶されている末尾のセクタ領域25’に対応する部分冗長領域26’に終了マークが書き込まれているか否かで、シーケンス書き込み処理が正常に終了したかどうかを判断している。   In the present embodiment, it is determined based on the write mark whether or not user data of 256 sector areas 25 ′ included in each physical block is stored, and the last sector area in which user data is stored It is determined whether or not the sequence writing process has been completed normally based on whether or not an end mark has been written in the partial redundancy area 26 ′ corresponding to 25 ′.

更に、ユーザデータが記憶されている末尾のセクタ領域25’に対応する部分冗長領域26’に終了マークが書き込まれていなかった場合、正常データと異常データの判別が行われる。この判別では、ユーザデータが記憶されている末尾のセクタ領域25’に対応する部分冗長領域26’に書き込まれている書込マークの1つ前の書込マークが書き込まれている末尾の部分冗長領域26’を検出し、この部分冗長領域26’と対応するセクタ領域25’までに記憶されているユーザデータを正常データと判断する。但し、15回目以降のシーケンス書き込み処理では同じ書込マークFAh(16進数表記)が書き込まれるので、ユーザデータが記憶されている末尾のセクタ領域25’と対応する部分冗長領域26’に書込マークFAh(16進数表記)が書き込まれていた場合は、終了マークが書き込まれている末尾の部分冗長領域26’と対応するセクタ領域25’までに書き込まれているユーザデータを正常データと判断する。尚、正常データと判断されたユーザデータは他の消去済みの物理ブロックに転送(複写)され、転送後に正常データと異常データ並存する物理ブロックの記憶データは消去される。   Further, when no end mark is written in the partial redundancy area 26 'corresponding to the last sector area 25' in which user data is stored, normal data and abnormal data are discriminated. In this determination, the last partial redundancy in which the write mark immediately before the write mark written in the partial redundancy area 26 ′ corresponding to the last sector area 25 ′ in which user data is stored is written. The area 26 'is detected, and the user data stored up to the sector area 25' corresponding to the partial redundancy area 26 'is determined as normal data. However, since the same write mark FAh (hexadecimal notation) is written in the 15th and subsequent sequential write processes, the write mark is written in the partial redundant area 26 ′ corresponding to the last sector area 25 ′ in which user data is stored. When FAh (hexadecimal notation) is written, the user data written up to the sector area 25 ′ corresponding to the tail partial redundant area 26 ′ where the end mark is written is determined as normal data. The user data determined to be normal data is transferred (copied) to another erased physical block, and the stored data of the physical block in which normal data and abnormal data coexist after the transfer are deleted.

又、ユーザデータが書き込まれている末尾のセクタ領域25’に対応する部分冗長領域26’に終了マークが書き込まれていなかったときに、その部分冗長領域26’に書き込まれている書込マークが1回目のシーケンス書き込み処理を示す書込マーク00h(16進数表記)であった場合はその物理ブロックに正常データが無いと判断する。尚、正常データが無いと判断した物理ブロックの記憶データは消去される。   Further, when the end mark is not written in the partial redundant area 26 ′ corresponding to the last sector area 25 ′ in which the user data is written, the write mark written in the partial redundant area 26 ′ is If it is the write mark 00h (hexadecimal notation) indicating the first sequence write process, it is determined that there is no normal data in the physical block. Note that the storage data of the physical block determined to have no normal data is erased.

次に、部分冗長領域26’に書き込まれている書込マークを参照してユーザデータが書き込まれている末尾のセクタ領域25’を検出する処理を、図6を参照して説明する。尚、以下の説明で部分冗長領域26’には、対応するセクタ領域25’と同じSNが付けられているものとする。つまり、SNが「0」のセクタ領域25’と対応する部分冗長領域26’のSNは「0」とし、SNが「1」のセクタ領域25’と対応する部分冗長領域26’のSNは「1」とし、以下同様にSNが「255」のセクタ領域25’と対応する部分冗長領域26’のSNは「255」とする。   Next, processing for detecting the last sector area 25 ′ in which user data is written with reference to the write mark written in the partial redundancy area 26 ′ will be described with reference to FIG. 6. In the following description, the partial redundancy area 26 'is assumed to have the same SN as the corresponding sector area 25'. That is, the SN of the partial redundancy area 26 ′ corresponding to the sector area 25 ′ with SN “0” is “0”, and the SN of the partial redundancy area 26 ′ corresponding to the sector area 25 ′ with SN “1” is “ In the same manner, the SN of the partial redundancy area 26 ′ corresponding to the sector area 25 ′ of SN “255” is set to “255”.

まず、検索範囲の先頭セクタ番号SSとして先頭部分冗長領域26’のSNである0(二進数表記:0000 0000)を設定する(ステップS51)。   First, 0 (binary notation: 0000 0000), which is the SN of the first partial redundancy area 26 ', is set as the first sector number SS of the search range (step S51).

続いて、検索範囲の最終セクタ番号ESとして最終部分冗長領域26’のSNに1を加算した256(二進数表記:1 0000 0000)を設定する(ステップS52)。   Subsequently, 256 (binary notation: 1 0000 0000) obtained by adding 1 to the SN of the final partial redundant area 26 'is set as the final sector number ES of the search range (step S52).

次に、参照する部分冗長領域26’のSNの値nを算出する(ステップS53)。この値nは、下記の式によって求める。
n=(SS+ES)/2
つまり、この値nはSSとESを加算した後に、下位方向に1ビットシフトさせる(最下位ビットを削除する)ことにより求められる。
Next, the SN value n of the partial redundant area 26 ′ to be referred to is calculated (step S53). This value n is obtained by the following equation.
n = (SS + ES) / 2
In other words, this value n is obtained by adding SS and ES and then shifting by 1 bit in the lower direction (deleting the least significant bit).

次に、SNがステップS53で求めたnと一致する部分冗長領域26’を参照し、参照した部分冗長領域26’に書込マークが書き込まれているか否かを判別する(ステップS54)。つまり、書込マークが00h(16進数表記)〜FAh(16進数表記)のいずれかであれば、書込マークが書き込まれていると判断し、書込マークがFFh(16進数表記)であれば、書込マークが書き込まれていないと判断する。   Next, with reference to the partial redundancy area 26 'whose SN matches n obtained in step S53, it is determined whether or not a write mark is written in the referenced partial redundancy area 26' (step S54). That is, if the write mark is any one of 00h (hexadecimal notation) to FAh (hexadecimal notation), it is determined that the write mark is written, and the write mark is FFh (hexadecimal notation). In this case, it is determined that the write mark is not written.

参照した部分冗長領域26’に書込マークが書き込まれていた場合(ステップS54:Yes)、書込マークが書き込まれている末尾の部分冗長領域26’は参照した部分冗長領域26’より前にはないので、先頭セクタ番号SSをステップS53で求めたnの値に変更する(ステップS55)。   When a write mark is written in the referenced partial redundant area 26 ′ (step S54: Yes), the last partial redundant area 26 ′ in which the write mark is written is before the referenced partial redundant area 26 ′. Therefore, the head sector number SS is changed to the value of n obtained in step S53 (step S55).

参照した部分冗長領域26’に書込マークが書き込まれていない場合(ステップS54:No)、書込マークが書き込まれている末尾の部分冗長領域26’は参照した部分冗長領域26’より後にはないので、最終セクタ番号ESをステップS53で求めたnの値に変更する(ステップS56)。次に、先頭セクタ番号SSと最終セクタ番号ESを比較し、先頭セクタ番号SSと最終セクタ番号ESの差が「1」より大きいか否かを判断する(ステップS57)。先頭セクタ番号SSと最終セクタ番号ESの差が「1」より大きい場合(ステップS57:Yes)、ステップS53に戻り、次に参照する部分冗長領域26’のSNの値nを算出する。一方、先頭セクタ番号SSと最終セクタ番号ESの差が「1」の場合(ステップS57:No)は、先頭セクタ番号SSに設定されている値が、書込マークが書き込まれている末尾の部分冗長領域26’のSNと判断して検出処理を終了する。   When the write mark is not written in the referenced partial redundant area 26 '(step S54: No), the last partial redundant area 26' in which the write mark is written is after the referenced partial redundant area 26 '. Therefore, the final sector number ES is changed to the value of n obtained in step S53 (step S56). Next, the head sector number SS and the last sector number ES are compared to determine whether or not the difference between the head sector number SS and the last sector number ES is greater than “1” (step S57). When the difference between the first sector number SS and the last sector number ES is larger than “1” (step S57: Yes), the process returns to step S53, and the SN value n of the partial redundant area 26 ′ to be referred to next is calculated. On the other hand, when the difference between the first sector number SS and the last sector number ES is “1” (step S57: No), the value set in the first sector number SS is the last part where the write mark is written. The detection process is terminated by determining the SN of the redundant area 26 '.

このようにして検出された書込マークが書き込まれている末尾の部分冗長領域26’に終了マーク0h(16進数表記)が書き込まれていた場合、前回のシーケンス書き込み処理は正常に終了したと判断する。一方、書込マークが書き込まれている末尾の部分冗長領域26’に終了マーク0h(16進数表記)が書き込まれていなかった場合、前回のシーケンス書き込み処理は正常に終了しなかったと判断する。   If the end mark 0h (hexadecimal notation) is written in the tail partial redundant area 26 ′ where the write mark detected in this way is written, it is determined that the previous sequence writing process has ended normally. To do. On the other hand, when the end mark 0h (hexadecimal notation) has not been written in the tail partial redundant area 26 'where the write mark is written, it is determined that the previous sequence writing process has not ended normally.

次に、前回のシーケンス書き込み処理が正常に終了しなかったと判断した場合、前回のシーケンス書き込み処理より前のシーケンス書き込み処理で書き込まれた正常データを判別する処理を行う。但し、正常に終了しなかったと判断した前回のシーケンス書き込み処理で書き込まれた書込マークが、1回目のシーケンス書き込み処理を示す書込マーク00h(16進数表記)であった場合は、その物理ブロックに正常データが無いと判断し、正常データを判別する処理を行わない。   Next, when it is determined that the previous sequence writing process has not ended normally, a process for determining normal data written in the sequence writing process prior to the previous sequence writing process is performed. However, if the write mark written in the previous sequence write process that was determined not to have ended normally is the write mark 00h (hexadecimal notation) indicating the first sequence write process, the physical block Therefore, it is determined that there is no normal data, and processing for determining normal data is not performed.

正常に終了しなかったと判断した前回のシーケンス書き込み処理で書き込まれた書込マークがFAh(16進数表記)の場合は、書込マークが書き込まれている末尾の部分冗長領域26’より前の部分冗長領域26’を順次参照していき、終了マークが書き込まれている末尾の部分冗長領域26’を検出する。このようにして検出された部分冗長領域26’と対応するセクタ領域25’までに書き込まれているユーザデータを正常データと判断する。例えば、SNが243の部分冗長領域26’、SNが242の部分冗長領域26’、SNが241の部分冗長領域26’という順番で参照していき、SNが243〜238の部分冗長領域26’に終了マークが無く、SNが237の部分冗長領域26’に終了マークが有った場合には、SNが0〜237のセクタ領域25’に記憶されているユーザデータを正常データと判断する。   If the write mark written in the previous sequence write process that was determined not to have ended normally is FAh (hexadecimal notation), the part before the last partial redundant area 26 'where the write mark is written The redundant area 26 ′ is sequentially referred to, and the last partial redundant area 26 ′ in which the end mark is written is detected. The user data written up to the sector area 25 ′ corresponding to the partial redundancy area 26 ′ thus detected is determined as normal data. For example, reference is made in the order of a partial redundancy area 26 ′ with SN 243, a partial redundancy area 26 ′ with SN 242, a partial redundancy area 26 ′ with SN 241, and a partial redundancy area 26 ′ with SN 243 to 238. If there is no end mark and there is an end mark in the partial redundancy area 26 'with SN 237, the user data stored in the sector area 25' with SN 0 to 237 is determined as normal data.

正常に終了しなかったと判断した前回のシーケンス書き込み処理で書き込まれた書込マークが、2〜14回目のシーケンス書き込み処理を示す書込マークであった場合、前回のシーケンス書き込み処理で書き込まれた書込マークより1つ前の書込マークと終了マークの双方が書き込まれている部分冗長領域26’ と対応するセクタ領域25’までに書き込まれているユーザデータを正常データと判断する。この前回のシーケンス書き込み処理で書き込まれた書込マークより1つ前の書込マークと終了マークの双方が書き込まれている部分冗長領域26’を検出する処理、つまり、正常データが記憶されている末尾のセクタ領域25’を検出する処理を図7を参照して説明する。   If the writing mark written in the previous sequence writing process that was determined not to have ended normally is a writing mark indicating the 2nd to 14th sequence writing processes, the writing mark written in the previous sequence writing process The user data written up to the sector area 25 ′ corresponding to the partial redundant area 26 ′ in which both the write mark and the end mark immediately before the embedded mark are written is determined as normal data. A process for detecting the partial redundancy area 26 ′ in which both the write mark one before the write mark written in the previous sequential write process and the end mark are written, that is, normal data is stored. Processing for detecting the last sector area 25 ′ will be described with reference to FIG.

まず、検索範囲の先頭セクタ番号SSとして先頭部分冗長領域26’のSNである0を設定する(ステップS61)。   First, 0 is set as the SN of the first partial redundancy area 26 'as the first sector number SS of the search range (step S61).

続いて、検索範囲の最終セクタ番号ESとして書込マークが書き込まれている末尾の部分冗長領域26’のSNの値を設定する。更に、最終書込マークEMとして書込マークが書き込まれている末尾の部分冗長領域26’に書き込まれている書込マークを設定する。(ステップS62)。つまり、最終書込マークEMには、正常に終了しなかったと判断した前回のシーケンス書き込み処理で書き込まれた書込マークを設定する。   Subsequently, the SN value of the last partial redundant area 26 'where the write mark is written is set as the final sector number ES of the search range. Further, a write mark written in the last partial redundant area 26 'where the write mark is written is set as the final write mark EM. (Step S62). In other words, the last write mark EM is set with the write mark written in the previous sequence writing process that is determined not to have ended normally.

次に、参照する部分冗長領域26’のSNの値nを算出する(ステップS63)。この値nは、下記の式によって求める。
n=(SS+ES)/2
つまり、この値nはSSとESを加算した後に、下位方向に1ビットシフトさせる(最下位ビットを削除する)ことにより求められる。
Next, the SN value n of the partial redundant area 26 ′ to be referred to is calculated (step S63). This value n is obtained by the following equation.
n = (SS + ES) / 2
In other words, this value n is obtained by adding SS and ES and then shifting by 1 bit in the lower direction (deleting the least significant bit).

次に、SNがステップS63で求めたnと一致する部分冗長領域26’を参照し、参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークを比較する(ステップS64)。   Next, the SN refers to the partial redundancy area 26 ′ that matches n obtained in step S63, and is set as the write mark written in the referenced partial redundancy area 26 ′ and the final write mark EM. Write marks are compared (step S64).

参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークが同じ場合(ステップS64:Yes)、最終書込マークEMとして設定されている書込マークより1つ前の書込マークが書き込まれている部分冗長領域26’は参照した部分冗長領域26’より後にはないので、最終セクタ番号ESをステップS63で求めたnの値に変更する(ステップS65)。最終セクタ番号ESの変更後、ステップS63に戻り参照する部分冗長領域26’のSNの値nを再度算出する。   If the write mark written in the referenced partial redundancy area 26 'is the same as the write mark set as the final write mark EM (step S64: Yes), it is set as the final write mark EM. Since the partial redundant area 26 ′ in which the write mark immediately before the write mark is written is not after the referenced partial redundant area 26 ′, the final sector number ES is changed to the value of n obtained in step S63. (Step S65). After changing the last sector number ES, the process returns to step S63 and the SN value n of the partial redundant area 26 'to be referred to is calculated again.

参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークが異なる場合(ステップS64:No)、つまり、参照した部分冗長領域26’に書き込まれている書込マークが、最終書込マークEMとして設定されている書込マークより1つ以上前の書込マークである場合、最終書込マークEMとして設定されている書込マークより1つ前の書込マークと終了マークが書き込まれている部分冗長領域26’は参照した部分冗長領域26’より前にはないので、先頭セクタ番号SSをステップS63で求めたnの値に変更する(ステップS66)。   When the write mark written in the referenced partial redundant area 26 ′ is different from the write mark set as the final write mark EM (step S64: No), that is, in the referenced partial redundant area 26 ′. When the written mark being written is one or more write marks before the write mark set as the final write mark EM, the write mark set as the final write mark EM is 1 Since the partial redundant area 26 ′ in which the previous write mark and end mark are written does not precede the referenced partial redundant area 26 ′, the head sector number SS is changed to the value of n obtained in step S 63. (Step S66).

続いて、参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークの1つ前の書込マークを比較する(ステップS67)。   Subsequently, the write mark written in the referenced partial redundancy area 26 'is compared with the write mark immediately before the write mark set as the final write mark EM (step S67).

参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークの1つ前の書込マークが異なる場合(ステップS67:No)、つまり、参照した部分冗長領域26’に書き込まれている書込マークが、最終書込マークEMとして設定されている書込マークより2つ以上前の書込マークである場合、ステップS63に戻り参照する部分冗長領域26’のSNの値nを再度算出する。   When the write mark written in the referenced partial redundancy area 26 ′ is different from the write mark immediately before the write mark set as the final write mark EM (step S67: No), that is, If the write mark written in the referenced partial redundancy area 26 'is a write mark two or more prior to the write mark set as the final write mark EM, the process returns to step S63 for reference The SN value n of the redundant area 26 ′ is calculated again.

参照した部分冗長領域26’に書き込まれている書込マークと、最終書込マークEMとして設定されている書込マークの1つ前の書込マークが同じ場合(ステップS67:Yes)、参照した部分冗長領域26’に終了マークが書き込まれているか否かを判断する(ステップS68)。   When the write mark written in the referenced partial redundancy area 26 ′ is the same as the write mark immediately before the write mark set as the final write mark EM (step S67: Yes), the reference is made It is determined whether or not an end mark is written in the partial redundancy area 26 '(step S68).

参照した部分冗長領域26’に終了マークが書き込まれていない場合(ステップS68:No)、ステップS63に戻り参照する部分冗長領域26’のSNの値nを再度算出する。   When the end mark is not written in the referenced partial redundant area 26 '(step S68: No), the process returns to step S63 to recalculate the SN value n of the referenced partial redundant area 26'.

参照した部分冗長領域26’に終了マークが書き込まれている場合(ステップS68:Yes)、先頭セクタ番号SSに設定されている値が、正常データが記憶されている末尾のセクタ領域25’のSNと判断して検出処理を終了する。   When the end mark is written in the referred partial redundant area 26 ′ (step S68: Yes), the value set in the head sector number SS is the SN of the last sector area 25 ′ in which normal data is stored. And the detection process is terminated.

次に、正常データと異常データを判別する処理を具体例に基づいて説明する。例えば、図8に示すように、書込マークと終了マークが書き込まれている場合について説明する。   Next, processing for discriminating between normal data and abnormal data will be described based on a specific example. For example, as shown in FIG. 8, a case where a writing mark and an end mark are written will be described.

この例では、書込マークが書き込まれている末尾の部分冗長領域26’のSNは25であり、SNが25の部分冗長領域26’にはシーケンス書き込み処理が正常に終了したことを示す終了マーク0h(16進数表記)が書き込まれていない。従って、前回のシーケンス書き込み処理が正常に終了しなかったと判断する。   In this example, the SN of the last partial redundant area 26 ′ where the write mark is written is 25, and the end mark indicating that the sequence writing process has been normally completed in the partial redundant area 26 ′ with SN 25 0h (hexadecimal notation) is not written. Therefore, it is determined that the previous sequence writing process did not end normally.

ここで、SNが25の部分冗長領域26’に書き込まれている書込マークは0Ah(16進数表記)なので、0Ah(16進数表記)より1つ前の書込マーク05h(16進数表記)と終了マーク0h(16進数表記)が書き込まれている部分冗長領域26’のSNが、正常データが記憶されている末尾のセクタ領域25’のSNであると判断する。つまり、SNが0〜17のセクタ領域25’に記憶されているユーザデータが正常データであると判断する。   Here, since the write mark written in the partial redundancy area 26 'with SN of 25 is 0Ah (hexadecimal notation), the write mark 05h (hexadecimal notation) immediately before 0Ah (hexadecimal notation) It is determined that the SN of the partial redundancy area 26 ′ in which the end mark 0h (hexadecimal notation) is written is the SN of the last sector area 25 ′ in which normal data is stored. That is, it is determined that the user data stored in the sector area 25 ′ whose SN is 0 to 17 is normal data.

次に、図9に示すように、書込マークと終了マークが書き込まれている場合について説明する。
この例では、書込マークが書き込まれている末尾の部分冗長領域26’のSNは7であり、SNが7の部分冗長領域26’にはシーケンス書き込み処理が正常に終了したことを示す終了マーク0h(16進数表記)が書き込まれていない。従って、前回のシーケンス書き込み処理が正常に終了しなかったと判断する。
Next, a case where a write mark and an end mark are written as shown in FIG. 9 will be described.
In this example, the SN of the last partial redundant area 26 ′ in which the write mark is written is 7, and the end mark indicating that the sequence write process has been normally completed in the partial redundant area 26 ′ with SN 7 0h (hexadecimal notation) is not written. Therefore, it is determined that the previous sequence writing process did not end normally.

ここで、SNが7の部分冗長領域26’に書き込まれている書込マークは、この物理ブロックに対する1回目のシーケンス書き込み処理を示す00h(16進数表記)なので、この物理ブロックには正常データが記憶されていないと判断する。   Here, since the write mark written in the partial redundancy area 26 'with SN 7 is 00h (hexadecimal notation) indicating the first sequence write processing for this physical block, normal data is stored in this physical block. Judge that it is not memorized.

以上説明したように、各シーケンス書き込み処理で一連のデータが書き込まれるセクタ領域25’に対応する部分冗長領域26’に同じ書込マークを書き込み、一連のデータの末尾のユーザデータが書き込まれたセクタ領域25’に対応する部分冗長領域26’に終了マークを書き込むことにより、異常終了が発生したか否の判断と、正常データと異常データの判別を容易に行うことができる。   As described above, the same write mark is written in the partial redundancy area 26 ′ corresponding to the sector area 25 ′ in which a series of data is written in each sequence writing process, and the user data at the end of the series of data is written. By writing an end mark in the partial redundancy area 26 ′ corresponding to the area 25 ′, it is possible to easily determine whether or not an abnormal end has occurred and to distinguish between normal data and abnormal data.

尚、書込マークのビット数、ビットパターン及びビットパターンの種類については適宜設定することができる。書込マークのビットパターンの種類については、シーケンス書き込み処理毎に全て異ならせることが好ましいが、同一の物理ブロックに対する平均的なシーケンス書き込み処理の回数等を考慮して適宜決定すればよい。又。終了マークのビット数及びビットパターンについても適宜設定することができる。   Note that the number of bits of the write mark, the bit pattern, and the type of the bit pattern can be set as appropriate. The type of bit pattern of the write mark is preferably made different for each sequence writing process, but may be determined as appropriate in consideration of the average number of times of sequential writing process for the same physical block. or. The number of bits and the bit pattern of the end mark can also be set as appropriate.

又、フラッシュメモリの構成、例えば、各物理ブロックに含まれるセクタ領域25’の数等については特に限定することなく実施することができる。フラッシュメモリに対するアクセス方法やアドレス管理方法についても特に限定することなく実施することができる。   Further, the configuration of the flash memory, for example, the number of sector areas 25 ′ included in each physical block can be implemented without any particular limitation. The access method and address management method for the flash memory can also be implemented without particular limitation.

本発明の実施の形態に係るフラッシュメモリシステムを概略的に示すブロック図である。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 figure which shows the structural example of a user area | region and a redundant area. ホストインターフェースブロック及びフラッシュメモリインタフェースブロックの構成を示すブロック図である。It is a block diagram which shows the structure of a host interface block and a flash memory interface block. 論理アドレス情報LBAの構成を説明するための図である。It is a figure for demonstrating the structure of the logical address information LBA. ユーザデータが書き込まれている末尾のセクタ領域を検出する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process which detects the sector area of the end in which user data is written. 正常データが記憶されている末尾のセクタ領域を検出する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process which detects the sector area of the end where normal data is memorize | stored. 物理ブロックに書き込まれた書込マークと終了マークの例を示す図である。It is a figure which shows the example of the write mark and end mark which were written in the physical block. 物理ブロックに書き込まれた書込マークと終了マークの例を示す図である。It is a figure which shows the example of the write mark and end mark which were written in the physical block.

符号の説明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 (2)

ホストシステムからの命令に応答して、物理ブロックに含まれる各ページのユーザ領域が1又は複数のセクタ領域で構成されているフラッシュメモリに対するアクセスを制御するメモリコントローラであって、
ホストシステムからのデータ書き込みの命令に応答して、i)前記セクタ領域に一連のデータを順次書き込み、ii) 前記一連のデータが書き込まれたセクタ領域に対応する冗長領域にデータが書き込まれたことを示す書込マークを順次書き込み、iii)前記一連のデータの末尾データを書き込んだ前記セクタ領域に対応する冗長領域に一連のデータの末尾データを書き込んだことを示す終了マークを書き込む書込手段と、
前記書込マーク及び前記終了マークに基づいて、前記一連のデータの書き込みが正常に終了しなかったことを検知する異常終了検知手段と、
前記書込マーク及び前記終了マークに基づいて、前記一連のデータが正常に書き込まれているセクタ領域の末尾を検出する正常データ検出手段と、
を備え
前記書込マークは、前記物理ブロックに書き込まれた何番目の一連のデータであるかを示す順番情報を含み、
前記異常終了検知手段が前記一連のデータの書き込みが正常に終了しなかったことを検知したときに、書き込みが正常に終了しなかった前記一連のデータに対応する前記順番情報が1番目を示す情報である場合、前記正常データ検出手段は、前記一連のデータが正常に書き込まれているセクタ領域の末尾を検出する処理を行わず、正常に書き込まれている前記一連のデータが無いと判断する、
ことを特徴とするメモリコントローラ。
In response to a command from a host system, a memory controller that controls access to a flash memory in which a user area of each page included in a physical block includes one or more sector areas,
In response to a data write command from the host system, i) a series of data is sequentially written in the sector area, and ii) data is written in a redundant area corresponding to the sector area in which the series of data is written. Iii) writing means for writing an end mark indicating that end data of a series of data is written in a redundant area corresponding to the sector area in which end data of the series of data is written; ,
Abnormal end detection means for detecting that the writing of the series of data did not end normally based on the writing mark and the end mark;
Normal data detection means for detecting the end of a sector area in which the series of data is normally written based on the write mark and the end mark;
Equipped with a,
The write mark includes order information indicating what number of series of data written in the physical block,
Information indicating that the order information corresponding to the series of data that has not been normally written indicates the first when the abnormal end detection means detects that the series of data has not been written normally. The normal data detection means does not perform the process of detecting the end of the sector area in which the series of data is normally written, and determines that there is no series of data that is normally written.
A memory controller characterized by that.
請求項1記載のメモリコントローラと、フラッシュメモリとから構成されることを特徴とするフラッシュメモリシステム。 A flash memory system comprising the memory controller according to claim 1 and a flash memory.
JP2006080694A 2006-03-23 2006-03-23 Memory controller and flash memory system Active JP4501881B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006080694A JP4501881B2 (en) 2006-03-23 2006-03-23 Memory controller and flash memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006080694A JP4501881B2 (en) 2006-03-23 2006-03-23 Memory controller and flash memory system

Publications (2)

Publication Number Publication Date
JP2007257283A JP2007257283A (en) 2007-10-04
JP4501881B2 true JP4501881B2 (en) 2010-07-14

Family

ID=38631469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006080694A Active JP4501881B2 (en) 2006-03-23 2006-03-23 Memory controller and flash memory system

Country Status (1)

Country Link
JP (1) JP4501881B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269499A (en) * 2007-04-24 2008-11-06 Kyoto Software Research Inc Method for storing bad block mark
JP4535117B2 (en) * 2007-11-06 2010-09-01 ソニー株式会社 MEMORY DEVICE, MEMORY MANAGEMENT METHOD, AND PROGRAM
KR101369408B1 (en) 2013-03-15 2014-03-04 주식회사 디에이아이오 Storage system and method of transmitting data between a host device and a storage device
CN104216985B (en) * 2014-09-04 2017-09-01 深圳供电局有限公司 Method and system for discriminating abnormal data
CN110413223A (en) * 2019-06-25 2019-11-05 汉纳森(厦门)数据股份有限公司 Data read-write method, medium, equipment and the device of flash storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132464A (en) * 1998-10-27 2000-05-12 Canon Inc Data writing method and device and image forming device
JP2002169729A (en) * 2000-12-04 2002-06-14 Toshiba Corp Controller of nonvolatile memory unit, memory system having the same controller, and control method for nonvolatile memory unit
JP2003015929A (en) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd Control method for nonvolatile memory
JP2005292926A (en) * 2004-03-31 2005-10-20 Tdk Corp Memory controller, flash memory system, and control method for flash memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07147097A (en) * 1993-11-24 1995-06-06 Mitsubishi Electric Corp Method of writing eeprom data
JPH07182246A (en) * 1993-11-25 1995-07-21 Sanyo Electric Co Ltd Device and method for controlling non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132464A (en) * 1998-10-27 2000-05-12 Canon Inc Data writing method and device and image forming device
JP2002169729A (en) * 2000-12-04 2002-06-14 Toshiba Corp Controller of nonvolatile memory unit, memory system having the same controller, and control method for nonvolatile memory unit
JP2003015929A (en) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd Control method for nonvolatile memory
JP2005292926A (en) * 2004-03-31 2005-10-20 Tdk Corp Memory controller, flash memory system, and control method for flash memory

Also Published As

Publication number Publication date
JP2007257283A (en) 2007-10-04

Similar Documents

Publication Publication Date Title
US7870328B2 (en) Memory controller and flash memory system
JP4501881B2 (en) Memory controller and flash memory system
JP4235646B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4655034B2 (en) Memory controller, flash memory system, and flash memory control method
JP4241741B2 (en) Memory controller and flash memory system
JP2008009614A (en) Memory controller, memory system, and memory control method
JP4513782B2 (en) Memory controller, flash memory system, and flash memory control method
JP4497124B2 (en) Memory controller, flash memory system, and flash memory control method
JP3934659B1 (en) Memory controller and flash memory system
JP4661748B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2005292925A (en) Memory controller, flash memory system, and control method for flash memory
JP4539621B2 (en) Memory controller, flash memory system, and flash memory control method
JP4194518B2 (en) Memory controller, flash memory system, and flash memory control method
JP4213166B2 (en) Memory controller and flash memory system
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4366283B2 (en) Memory controller and flash memory system including the memory controller
JP4227989B2 (en) Memory controller and flash memory system
JP4332108B2 (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: 20100212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100305

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4501881

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140430

Year of fee payment: 4