JP4177292B2 - MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD - Google Patents

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

Info

Publication number
JP4177292B2
JP4177292B2 JP2004160761A JP2004160761A JP4177292B2 JP 4177292 B2 JP4177292 B2 JP 4177292B2 JP 2004160761 A JP2004160761 A JP 2004160761A JP 2004160761 A JP2004160761 A JP 2004160761A JP 4177292 B2 JP4177292 B2 JP 4177292B2
Authority
JP
Japan
Prior art keywords
data
flash memory
block
write
host system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004160761A
Other languages
Japanese (ja)
Other versions
JP2005339438A (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 JP2004160761A priority Critical patent/JP4177292B2/en
Publication of JP2005339438A publication Critical patent/JP2005339438A/en
Application granted granted Critical
Publication of JP4177292B2 publication Critical patent/JP4177292B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

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

近年、メモリーカードやシリコンディスク等の形態でメモリシステムに使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。   In recent years, flash memories have been widely adopted as semiconductor memories used in memory systems in the form of memory cards, silicon disks, and the like. Data stored in the flash memory is required to be retained even when power is not supplied.

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリである。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
The NAND flash memory is a flash memory that is particularly frequently used in the above memory system.
Each of the plurality of memory cells included in the NAND flash memory indicates a logical value “1” when in an erased state and indicates “0” when in a written state. The plurality of memory cells can change from the erased state to the written state independently of other memory cells.

これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた所定数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、「ブロック消去」と称されている。NAND型フラッシュメモリに対する書込み処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位に処理が行われる。消去処理の単位であるブロックは複数のページで構成されている。   In contrast, when changing from the written state to the erased state, each memory cell cannot change independently of the other memory cells. At this time, all of a predetermined number of memory cells called blocks are simultaneously erased. This collective erasure operation is generally called “block erase”. Write processing or read processing for the NAND flash memory is performed in units of a predetermined number of memory cells called pages. A block which is a unit of erasure processing is composed of a plurality of pages.

NAND型フラッシュメモリでは、上記のようにブロック単位で消去処理が行われるため、通常、ホストシステム側から与えられるアドレスとフラッシュメモリ内でのアドレスとの対応関係を、ブロック単位で管理している。例えば、下記特許文献1では、ブロック単位で、ホストシステム側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの変換を行っている。
特開2003−76605号公報
In the NAND flash memory, the erase process is performed in units of blocks as described above. Therefore, the correspondence between the addresses given from the host system side and the addresses in the flash memory is usually managed in units of blocks. For example, in Patent Document 1 below, a logical block address based on an address given from the host system side and a physical block address that is a block address in the flash memory are converted in units of blocks.
JP 2003-76605 A

このフラッシュメモリに対する書込み処理では、通常、フラッシュメモリ内のブロック(物理ブロック)を構成する各ページに、ホストシステム側から与えられるアドレス順にデータが書込まれる。つまり、ホストシステム側から与えられるアドレス順のデータが、物理ブロックの先頭ページから順次書込まれていく。従って、ホストシステムから与えられる書込み命令に基づく書込み処理で書込まれる1群のデータが、1つの物理ブロック内に全て書込まれる場合、論理ブロックアドレスから物理ブロックアドレスへのアドレス変換を、書込み処理を開始するときに行えば、書込み処理の途中で、アドレス変換を行う必要がない。   In the writing process to the flash memory, data is normally written in each page constituting a block (physical block) in the flash memory in the order of addresses given from the host system side. That is, data in the order of addresses given from the host system side is sequentially written from the first page of the physical block. Accordingly, when a group of data written by a write process based on a write command given from the host system is all written in one physical block, the address conversion from the logical block address to the physical block address is performed. If this is done at the start of addressing, there is no need to perform address translation during the writing process.

フラッシュメモリに対する書込み処理を、高速、且つ効率的に行う場合には、1ブロック分のデータを、物理ブロックの先頭ページから書込むようにすればよい。   When writing to the flash memory is performed efficiently at high speed, data for one block may be written from the first page of the physical block.

しかしながら、ホストシステム側からフラッシュメモリシステムに対して、1ブロック分のデータを書込む書込み命令が与えられた場合、書込み開始ページが、物理ブロックの先頭ページであれば、高速書込みを行うことができるが、書込み開始ページが、物理ブロックの先頭ページでなかった場合は、書込み処理の途中でアドレス変換を行わなければならず、高速書込みに対応することができない。ところが、ホストシステム側からフラッシュメモリシステムが高速書込みに対応可能か否かを判断することは困難である。   However, when a write command for writing data for one block is given from the host system side to the flash memory system, high-speed writing can be performed if the write start page is the first page of the physical block. However, if the write start page is not the first page of the physical block, address conversion must be performed in the middle of the write process, and high speed writing cannot be supported. However, it is difficult for the host system side to determine whether or not the flash memory system can handle high-speed writing.

本発明は、このような従来の問題点に鑑みてなされたもので、フラッシュメモリシステム側が、高速書込みに対応可能か否かを判断し、その情報をホストシステム側からアクセスできるようにしたメモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法を提供することを目的とする。   The present invention has been made in view of such a conventional problem, and a memory controller which determines whether or not the flash memory system side can cope with high-speed writing and can access the information from the host system side. An object of the present invention is to provide a flash memory system and a flash memory control method.

上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、記憶領域を有し、該記憶領域のデータの消去が、複数のページからなる物理ブロック単位で行われると共に、データの消去済みの部分にページ単位のデータの書込みが可能なフラッシュメモリとホストシステムとに接続され、該フラッシュメモリへの該ホストシステムのアクセスを制御するメモリコントローラであって、前記ホストシステムから、データの属する論理ブロックを示す論理ブロックアドレスと共に与えられた書込み用データに対し、該書込み用データを書込む物理ブロックを示す物理ブロックアドレスを設定し、該書込み用データを該物理ブロックアドレスに対応する位置に書込む書込手段と、前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが適切であるか否かを判断し、その結果を判断情報として示す情報表示手段と、
を備えることを特徴とする。
To achieve the above object, a memory controller according to a first aspect of the present invention has a storage area, and data in the storage area is erased in units of physical blocks including a plurality of pages. A memory controller that is connected to a flash memory capable of writing data in units of pages in the erased portion of the memory and a host system, and that controls access of the host system to the flash memory, from the host system, For a write data given together with a logical block address indicating a logical block to which the data belongs, a physical block address indicating a physical block to which the write data is written is set, and the write data is a position corresponding to the physical block address. Write means for writing to the host system, and a write command given from the host system. Ku write start page of the user data set is determined whether the appropriate information display means for indicating the result as determination information,
It is characterized by providing.

、前記情報表示手段は、前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが、前記物理ブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断してもよい。 The information display means may be configured such that when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the physical block, the write start page of the user data group is appropriate. You may judge that there is.

又、前記物理ブロックが複数のサブブロックで構成され、前記情報表示手段は、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記サブブロックの先頭ページに対応するときに、ユーザデータ群の書込み開始ページが適切であると判断してもよい。   Further, the physical block is composed of a plurality of sub-blocks, and the information display means is configured such that a write start page of the user data group based on a write command given from the host system corresponds to the first page of the sub-block. In addition, it may be determined that the write start page of the user data group is appropriate.

上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、データを記憶するフラッシュメモリと、本願発明の第1の観点に係るモリコントローラと、を備えたことを特徴とする。   In order to achieve the above object, a flash memory system according to a second aspect of the present invention comprises a flash memory for storing data, and a memory controller according to the first aspect of the present invention. To do.

上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、記憶領域を有し、該記憶領域のデータの消去が、複数のページからなる物理ブロック単位で行われると共に、データの消去済みの部分にページ単位のデータの書込が可能なフラッシュメモリに対し、該フラッシュメモリへのホストシステムのアクセスを制御する制御方法であって、前記ホストシステムから、データの属する論理ブロックを示す論理ブロックアドレスと共に与えられた書込み用データに対し、該書込み用データを書込む物理ブロックを示す物理ブロックアドレスを設定し、該書込み用データを該物理ブロックアドレスに対応する位置に書込む処理と、前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが適切であるか否かを判断し、その結果を判断情報として示す情報表示処理と、を行うことを特徴とする。 To achieve the above object, a flash memory control method according to a third aspect of the present invention has a storage area, and data in the storage area is erased in units of physical blocks composed of a plurality of pages. with respect to the flash memory writing that can data for each page in the erased part of the data, a control method for controlling access of host systems to said flash memory, from the host system, the data For the write data given together with the logical block address indicating the logical block to which it belongs, a physical block address indicating the physical block to which the write data is written is set, and the write data is set at a position corresponding to the physical block address. A user data group write start page based on a write process and a write command given from the host system. Di is determined whether it is appropriate, and performs the information display process shown the result as determination information.

、前記情報表示処理では、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記物理ブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断してもよい。 In the information display process, when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the physical block, the write start page of the user data group is appropriate. You may judge that.

又、前記物理ブロックが複数のサブブロックで構成され、前記情報表示処理では、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記サブブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断してもよい。   Also, the physical block is composed of a plurality of sub-blocks, and in the information display processing, the write start page of the user data group based on the write command given from the host system corresponds to the first page of the sub-block. In addition, it may be determined that the write start page of the user data group is appropriate.

本発明によれば、フラッシュメモリシステム側が、高速書込みに対応可能か否かを判断し、その情報をホストシステム側からアクセスできるようになる。   According to the present invention, it becomes possible for the flash memory system side to determine whether or not high-speed writing is possible, and to access the information from the host system side.

以下、図面に基づき、本発明の実施形態について説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram schematically showing a flash memory system 1 according to an embodiment of the present invention.

図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、フラッシュメモリ2を制御するメモリコントローラ3とで構成されている。又、フラッシュメモリシステム1は、ホストシステム20に着脱可能に装着されて使用され、ホストシステム20の一種の外部記憶装置として用いられる。   As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a memory controller 3 that controls the flash memory 2. The flash memory system 1 is used by being detachably attached to the host system 20 and used as a kind of external storage device of the host system 20.

尚、ホストシステム20としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。   Examples of the host system 20 include various information processing apparatuses such as a personal computer and a digital still camera that process various information such as characters, sounds, and image information.

フラッシュメモリ2は、ページ単位で読出し又は書込を、ブロック単位で消去を実行するデバイスであり、例えば、1ブロックは32ページで構成され、1ページは512バイトのユーザ領域と16バイトの冗長領域とで構成されている。   The flash memory 2 is a device that executes reading or writing in units of pages and erasing in units of blocks. For example, one block includes 32 pages, and one page includes a 512-byte user area and a 16-byte redundant area. It consists of and.

メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、内部インターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。   The memory controller 3 includes a host interface control block 5, a microprocessor 6, a host interface block 7, a work area 8, a buffer 9, an internal interface block 10, an ECC (error collection code) block 11, And a flash memory sequencer block 12.

これら機能ブロックによって構成されるメモリコントローラ3は、1つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
The memory controller 3 constituted by these functional blocks is integrated on one semiconductor chip. The function of each block will be described below.
The microprocessor 6 is a functional block that controls the operation of the entire functional blocks constituting the memory controller 3.

ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づきホストインターフェースブロック7は動作する。   The host interface control block 5 is a functional block that controls the operation of the host interface block 7. Here, the host interface control block 5 includes an operation setting register (not shown) for setting the operation of the host interface block 7, and the host interface block 7 operates based on the operation setting register.

ホストインターフェースブロック7は、ホストシステム20とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行う機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム20に装着されると、フラッシュメモリシステム1とホストシステム20は、外部バスを介して相互に接続され、かかる状態において、ホストシステム20よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてメモリコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム20に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム20に供給される。   The host interface block 7 is a functional block that exchanges data, address information, status information, and external command information with the host system 20. That is, when the flash memory system 1 is attached to the host system 20, the flash memory system 1 and the host system 20 are connected to each other via an external bus, and in this state, the host system 20 supplies the flash memory system 1 to the flash memory system 1. The data to be supplied is taken into the memory controller 3 using the host interface block 7 as an entrance, and the data supplied from the flash memory system 1 to the host system 20 is supplied to the host system 20 using the host interface block 7 as an exit. Is done.

さらに、ホストインターフェースブロック7は、ホストシステム20より供給されるホストアドレス及び外部コマンドを一時的に保持するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。   The host interface block 7 further includes a task file register (not shown) that temporarily holds a host address and an external command supplied from the host system 20 and an error register (not shown) that is set when an error occurs. ) Etc.

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される機能ブロックである。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム20の受取準備ができるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込み準備ができるまでバッファ9に保持される。
The work area 8 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and is a functional block configured by a plurality of SRAM (Static Random Access Memory) cells.
The buffer 9 is a functional block that temporarily holds 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 20 is ready to receive data, and data to be written to the flash memory 2 is held in the buffer 9 until the flash memory 2 is ready to write. .

フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム20からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。   The flash memory sequencer block 12 is a functional block that controls the operation of the flash memory 2 based on internal commands. The flash memory sequencer block 12 includes a plurality of registers (not shown), and information necessary for executing an internal command is set in the plurality of registers. When information necessary for executing an internal command is set in the plurality of registers, the flash memory sequencer block 12 executes processing based on the information. Here, the “internal command” is a command given from the memory controller 3 to the flash memory 2 and is distinguished from an “external command” which is a command given from the host system 20 to the flash memory system 1.

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

ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。   The ECC block 11 generates an error correction code to be added to data to be written to the flash memory 2, and detects and corrects errors included in the read data based on the error correction code added to the read data. Function block.

[フラッシュメモリの説明]
フラッシュメモリシステム1で、データが記憶されるNAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行うことができず、書込みと読出しはページ単位で、消去はブロック単位で行われる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行われる。
[Description of flash memory]
The NAND flash memory in which data is stored in the flash memory system 1 is a non-volatile memory developed for use as a storage device (as an alternative to a hard disk). This NAND flash memory cannot perform random access, and writing and reading are performed in units of pages and erasing is performed in units of blocks. Since data cannot be overwritten, when data is written, data is written into the erased area.

NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行っている。このようなデータの書替を行った場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理される。   Since the NAND flash memory has such characteristics, normally, when data is rewritten, new data (data after rewriting) is written to the erased block that has been erased, and old data is written. A process of erasing a block in which (data before rewriting) has been written is performed. When rewriting such data, the data after rewriting is written in a different block from before rewriting, so the logical block address based on the address given from the host system side and the block in the flash memory The correspondence with the physical block address, which is an address, dynamically changes every time data is rewritten. The correspondence between the logical block address and the physical block address is normally managed by an address conversion table indicating the correspondence.

上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されているものも提供されている。   The configuration of the block and page differs depending on the specification of the flash memory. However, in a general flash memory, as shown in FIG. 2A, one block is composed of 32 pages (P0 to P31). Is composed of a user area of 512 bytes and a redundant area of 16 bytes. As the storage capacity increases, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area and a 64-byte redundant area. What is being provided is also provided.

ここで、ユーザ領域は、主に、ホストシステムから供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。エラ―コレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のECCブロックによって生成される。   Here, the user area is mainly an area for storing data supplied from the host system, and the redundant area is for storing additional data such as an error correction code, a corresponding logical block address and a block status. It is an area. The error correction code is additional data for detecting and correcting an error included in data stored in the user area, and is generated by an external ECC block.

対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済ブロックであると判断される。ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行うことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。   The corresponding logical block address indicates to which logical block address the block corresponds when data is stored in the block. If no data is stored in the block, the corresponding logical block address is not stored. Therefore, whether or not the block is an erased block depends on whether or not the corresponding logical block address is stored. It can also be judged. That is, if the corresponding logical block address is not stored, it is determined that the block is an erased block. The block status is a flag indicating whether or not the block is a bad block (a block in which data cannot be normally written). If it is determined that the block is a bad block, the block status is bad. A flag indicating a block is set.

次に、NAND型フラッシュメモリの回路構成について説明する。一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出し用データを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行われる。   Next, a circuit configuration of the NAND flash memory will be described. A general NAND flash memory includes a register for holding write data or read data and a memory cell array for storing data. The memory cell array includes a plurality of memory cell groups in which a plurality of memory cells are connected in series, and a specific memory cell in the memory cell group is selected by a word line. Data copying (copying from the register to the memory cell or copying from the memory cell to the register) is performed between the memory cell selected by the word line and the register.

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

このフローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。ここで、フローティングゲートに電子が注入されている状態(書込状態)が、論理値の「0」のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値の「1」のデータに対応する。   Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When electrons are injected into the floating gate, a high voltage is applied so that the control gate is on the high potential side. When electrons are injected from the floating gate, electrons are injected on the floating gate. A voltage is applied to discharge electrons. Here, the state in which electrons are injected into the floating gate (write state) corresponds to the data of the logical value “0”, and the state in which electrons are discharged from the floating gate (erased state) is the logical value. Corresponds to the data of “1”.

[フラッシュメモリに対するアクセスの説明]
フラッシュメモリ2に対するアクセスを制御する場合について説明する。
ホストシステム20側から与えられるアドレス情報に基づく論理ブロックアドレスを、フラッシュメモリ2内のブロックアドレスである物理ブロックアドレスに変換し、得られた物理ブロックアドレスに基づいてフラッシュメモリ2にアクセスする。この際、論理ブロックアドレスから物理ブロックアドレスへの変換は、アドレス変換テーブルを用いる。
[Description of access to flash memory]
A case where access to the flash memory 2 is controlled will be described.
A logical block address based on address information given from the host system 20 side is converted into a physical block address which is a block address in the flash memory 2, and the flash memory 2 is accessed based on the obtained physical block address. At this time, the conversion from the logical block address to the physical block address uses an address conversion table.

アドレス変換テーブルは、論理ブロックアドレスと物理ブロックアドレスの対応関係を示すテーブルであり、図1に示したワークエリア8上に作成され、保存される。   The address conversion table is a table showing the correspondence between logical block addresses and physical block addresses, and is created and saved on the work area 8 shown in FIG.

書込み処理では、ホストシステム20から、書込先の先頭アドレスと書込むデータのページ数(セクタ数)を含む書込み命令がフラッシュメモリシステム1に与えられる。ホストシステム20からは、この書込み命令と共に、フラッシュメモリ2に書込むデータ(ユーザデータ)群が与えられる。例えば、書込み命令で書込むデータのページ数を32ページと指示した場合には、ホストシステム20から32ページ分のユーザデータ群が与えられる。この際、32ページ分のユーザデータ群は、ホストシステム20側のアドレス空間におけるアドレスの順番(以下、ホストシステム20側のアドレス空間におけるアドレスの順番を論理アドレス順と言う。)で順次供給される。   In the write process, the host system 20 gives a write command including a write destination head address and the number of pages (number of sectors) of data to be written to the flash memory system 1. From the host system 20, a group of data (user data) to be written to the flash memory 2 is given together with this write command. For example, when the number of pages of data to be written by a write command is designated as 32 pages, a user data group for 32 pages is given from the host system 20. At this time, the user data group for 32 pages is sequentially supplied in the order of addresses in the address space on the host system 20 side (hereinafter, the order of addresses in the address space on the host system 20 side is referred to as logical address order). .

ホストシステム20から与えられるアドレスは、論理ブロックアドレス部分とその論理ブロック内のページを示すページ部分とを含んでいる。例えば、1ブロックが32ページで構成されているフラッシュメモリ2に対する書込み処理では、2進数で示したアドレスの下位5ビットがページ部分に対応し、このページ部分を除いた上位ビットが論理ブロックアドレス部分に対応する。マイクロプロセッサ6は、ホストシステム20からホストインターフェースブロック7を介して与えられたアドレスから、論理ブロックアドレス部分を抽出する。書込み処理の場合、この論理ブロックアドレスに対して消去済の物理ブロックアドレスが適宜割当てられ、この物理ブロックアドレスに基づいて指示された物理ブロック内のページに、論理アドレス順でデータが書込まれる。又、読出し処理では、アドレス変換テーブルを参照して論理ブロックアドレスが物理ブロックアドレスに変換され、この物理ブロックアドレスに基づいて指示された物理ブロック内の各ページのデータが読み出される。   The address given from the host system 20 includes a logical block address portion and a page portion indicating a page in the logical block. For example, in the writing process to the flash memory 2 in which one block is composed of 32 pages, the lower 5 bits of the binary address correspond to the page portion, and the upper bits excluding this page portion are the logical block address portion. Corresponding to The microprocessor 6 extracts a logical block address portion from the address given from the host system 20 via the host interface block 7. In the case of write processing, a physical block address that has been erased is appropriately assigned to this logical block address, and data is written in the order of logical addresses on pages in the physical block designated based on this physical block address. In the read process, the logical block address is converted into a physical block address with reference to the address conversion table, and data of each page in the physical block designated based on the physical block address is read out.

ホストシステム20から、与えられる書込み命令若しくは読出し命令では、書込先若しくは読出し先の先頭アドレスと書込むデータ若しくは読み出すデータのページ数(セクタ数)を含む命令がフラッシュメモリシステム1に与えられる。マイクロプロセッサ6は、書込若しくは読出しを行う物理ブロックの物理ブロックアドレスに、物理ブロック内のページを示す通番であるページ部分を付加して、書込み用アドレス若しくは読出し用アドレスを生成している。例えば、物理ブロックの先頭ページから順番に32ページ分のデータを書込む書込み処理では、書込先の物理ブロックアドレスに対して、0〜31のページ部分が順次付加される。   In the given write command or read command from the host system 20, a command including the write destination or the start address of the read destination and the number of pages to be written or the number of pages of data to be read (the number of sectors) is given to the flash memory system 1. The microprocessor 6 generates a write address or a read address by adding a page portion which is a serial number indicating a page in the physical block to the physical block address of the physical block to be written or read. For example, in the writing process in which data for 32 pages is written in order from the first page of the physical block, page portions 0 to 31 are sequentially added to the physical block address of the writing destination.

フラッシュメモリ2に対しては、最初の1ページ分のデータを送信するときに、物理ブロックアドレスに対して0を付加した書込み用アドレスが与えられ、次の1ページ分のデータを送信するときに、物理ブロックアドレスに対して1を付加した書込み用アドレスが与えられる。その後も、順次書込み用アドレスが与えられていき、最後の1ページ分のデータを送信するときに、物理ブロックアドレスに対して31を付加した書込み用アドレスが与えられる。32ページ分の各データは、書込み用アドレスで指示されたページに順次書込まれていく。   When the first page of data is transmitted to the flash memory 2, a write address with 0 added to the physical block address is given, and when the next page of data is transmitted , A write address obtained by adding 1 to the physical block address is given. Thereafter, write addresses are sequentially given, and a write address obtained by adding 31 to the physical block address is given when data for the last page is transmitted. Each of the 32 pages of data is sequentially written to the page designated by the write address.

図3は、フラッシュメモリ2の記憶領域におけるシステムデータ領域とユーザデータ領域の関係を示す説明図である。
ユーザデータ領域は、ホストシステム20から与えられる書込データが記憶される領域であり、システムデータ領域は、ユーザデータ領域に書込まれるユーザデータを管理する情報が記憶される領域である。ユーザデータ領域に記憶されるユーザデータ群(データ0〜3)は、ホストシステムから与えられる書込み命令に基づいて連続して書込まれるデータの単位であり、例えば、書込み命令で書込むデータのページ数を32ページと指定する場合には、各ユーザデータ群(データ0〜3)は32ページ分のデータに対応する。従って、各物理ブロックが32ページで構成されていて、各ユーザデータ群(データ0〜3)のデータが各物理ブロックの先頭ページから書込まれていれば、各ユーザデータ群(データ0〜3)は、それぞれ1つの物理ブロックに書込まれる。従って、フラッシュメモリ2の記憶領域におけるユーザ領域の開始位置は、物理ブロックの先頭ページから始まることが好ましい。
FIG. 3 is an explanatory diagram showing the relationship between the system data area and the user data area in the storage area of the flash memory 2.
The user data area is an area in which write data given from the host system 20 is stored, and the system data area is an area in which information for managing user data written in the user data area is stored. The user data group (data 0 to 3) stored in the user data area is a unit of data continuously written based on a write command given from the host system. For example, a page of data written by the write command When the number is designated as 32 pages, each user data group (data 0 to 3) corresponds to 32 pages of data. Therefore, if each physical block is composed of 32 pages and the data of each user data group (data 0 to 3) is written from the first page of each physical block, each user data group (data 0 to 3) is written. ) Are written in one physical block. Therefore, it is preferable that the start position of the user area in the storage area of the flash memory 2 starts from the first page of the physical block.

図3に示した例では、システムデータは、フラッシュメモリ2の物理ブロック0及び物理ブロック1に書込まれている。データ0〜3で示される各ユーザデータ群は、フラッシュメモリ2のユーザデータ領域の物理ブロック2〜物理ブロック6にそれぞれ書込まれる。つまり、この状態では、フラッシュメモリ2のユーザデータ領域が、物理ブロックの先頭ページから開始され、各ユーザデータ群(データ0〜3)は、物理ブロックの先頭ページから書込まれている。この状態で、32ページ分のデータであるユーザデータ群を、順次書込んでいけば、高速書込みを行うことができる。   In the example shown in FIG. 3, the system data is written in the physical block 0 and the physical block 1 of the flash memory 2. Each user data group indicated by data 0 to 3 is written to physical block 2 to physical block 6 in the user data area of the flash memory 2. That is, in this state, the user data area of the flash memory 2 is started from the first page of the physical block, and each user data group (data 0 to 3) is written from the first page of the physical block. In this state, high-speed writing can be performed by sequentially writing user data groups, which are data for 32 pages.

又、このような高速書込みが可能な最適状態であることを、ホストシステム側から知ることができるようにするために、ホストシステム側からアクセス可能なところ(例えば、フラッシュメモリ2内、又はメモリコントローラ3内)に、最適状態であるか否か、つまり、高速書込みに対応できるか否かの情報を設定している。   Further, in order to be able to know from the host system side that such an optimum state in which high-speed writing is possible is possible (for example, in the flash memory 2 or in the memory controller). 3), information indicating whether or not the state is optimum, that is, whether or not high-speed writing can be supported is set.

例えば、ユーザデータ領域が、物理ブロックの先頭ページから開始されるように初期化したときに、最適状態であることを示す情報を設定し、後述する最適でない状態を検出したときに、設定情報を、最適状態でないことを示す情報に変更するようにすればよい。尚、物理ブロック2〜物理ブロック5の物理ブロックアドレスは、連続した物理ブロックアドレスでなくてもよい。その場合、物理ブロック2〜物理ブロック5はフラッシュメモリ2のユーザデータ領域内に散在する。   For example, when the user data area is initialized to start from the first page of the physical block, information indicating that the user data area is in the optimum state is set, and when the non-optimal state described later is detected, the setting information is set. The information may be changed to indicate that the state is not optimal. Note that the physical block addresses of the physical block 2 to the physical block 5 may not be continuous physical block addresses. In that case, the physical blocks 2 to 5 are scattered in the user data area of the flash memory 2.

次に、高速書込みに対応することができない最適でない状態について説明する。
この最適でない状態として、2つの例を説明する。この2つの例で、最適でない状態に陥った原因は異なるが、何れの場合も、ホストシステム20から与えられる書込み命令に基づくユーザデータ群の書込み開始ページが、物理ブロックの先頭ページに対応しない状態になっている。
Next, a non-optimal state that cannot support high-speed writing will be described.
Two examples of this non-optimal state will be described. In these two examples, the cause of the non-optimal state is different, but in either case, the write start page of the user data group based on the write command given from the host system 20 does not correspond to the first page of the physical block It has become.

図4は、2つの物理ブロックに論理ブロックが跨った場合の説明図である。
図4に示した例では、ユーザデータ領域が物理ブロックの先頭ページから開始されているため、データ0、データ1については、32ページ分のデータであるユーザデータ群を高速書込みすることができる。しかしながら、データ2のデータ容量が32ページ分のデータより少なかったため、データ3が物理ブロック4、5に跨って書込まれる。従って、データ3の書込み処理では、書込先が物理ブロック4から物理ブロック5に切替るときに、アドレス変換や消去済の物理ブロックの割当てが行われる。
FIG. 4 is an explanatory diagram when a logical block straddles two physical blocks.
In the example shown in FIG. 4, since the user data area is started from the first page of the physical block, a user data group that is data of 32 pages can be written at high speed for data 0 and data 1. However, since the data capacity of the data 2 is smaller than the data for 32 pages, the data 3 is written across the physical blocks 4 and 5. Therefore, in the data 3 writing process, when the writing destination is switched from the physical block 4 to the physical block 5, address translation and allocation of the erased physical block are performed.

従って、データ3の書込み処理では、高速書込みに対応することができない。マイクロプロセッサ6が、データ3の書込み命令に基づくユーザデータ群の書込み開始ページが、物理ブロックの先頭ページに対応しないことを検出したときは、上述のように、設定情報を、最適状態でないことを示す情報に変更するようにすればよい。   Therefore, the data 3 writing process cannot cope with high-speed writing. When the microprocessor 6 detects that the write start page of the user data group based on the data 3 write command does not correspond to the first page of the physical block, as described above, the setting information is not in the optimum state. What is necessary is just to change to the information shown.

上記設定情報に基づいて、ホストシステム20が、最適でない状態、つまり、高速書込みに対することができない状態であることを知った場合、ホストシステム20は、最適状態に戻すための初期化やデータ消去等を行うことができる。   If the host system 20 knows that the host system 20 is in a non-optimal state based on the setting information, that is, a state where high-speed writing cannot be performed, the host system 20 performs initialization, data erasure, etc. to return to the optimal state. It can be performed.

図5は、ユーザデータの書込み開始位置の説明図である。
図5に示した例では、ユーザデータ領域が物理ブロックの先頭ページから開始されていないため、データ0〜3の全ての書込み処理が、高速書込みに対応できない。尚、データ0の書込み処理を行うときに最適状態でないことが検出され、設定情報が最適状態でないことを示す情報に変更されるので、ホストシステム20は、データ0〜3の書込み処理を行わずに、最適状態に戻すための初期化等を行うことができる。尚、初期化した場合、ホストシステムは、設定情報により、高速書込みに対応できる状態に戻ったことを知ることができる。
FIG. 5 is an explanatory diagram of the writing start position of user data.
In the example shown in FIG. 5, since the user data area is not started from the first page of the physical block, all the writing processes of data 0 to 3 cannot support high-speed writing. When the data 0 writing process is performed, it is detected that the data is not in the optimum state, and the setting information is changed to information indicating that the data is not in the optimum state. In addition, initialization for returning to the optimum state can be performed. When the initialization is performed, the host system can know from the setting information that the host system has returned to a state capable of supporting high-speed writing.

以上のような本実施形態は、種々の変形が可能である。
図6及び図7は、本実施形態の変形例を示す説明図である。
上記実施形態では、ユーザデータ群が、1ブロック分のデータであったが、物理ブロックのデータ容量が大きい場合は、1つのユーザデータ群を1つの物理ブロックに対応させることができない。従って、複数のユーザデータ群を1つの物理ブロックに対応させなければならない。この場合、ユーザデータ群の書込み開始ページを、全て、物理ブロックの先頭ページに対応させることはできない。このような場合は、各物理ブロックを複数のサブブロックに分割して、各サブブロックをユーザデータ群に対応させるようにすればよい。この際、各物理ブロックは、2のべき乗の数のサブブロックで構成されることが好ましい。
The present embodiment as described above can be variously modified.
6 and 7 are explanatory diagrams showing modifications of the present embodiment.
In the above embodiment, the user data group is data for one block. However, if the data capacity of the physical block is large, one user data group cannot be associated with one physical block. Therefore, a plurality of user data groups must be associated with one physical block. In this case, all the write start pages of the user data group cannot correspond to the first page of the physical block. In such a case, each physical block may be divided into a plurality of sub-blocks so that each sub-block corresponds to a user data group. At this time, each physical block is preferably composed of sub-blocks having a power of 2.

図6に示した例では、各物理ブロックを2つのサブブロックに分割して、各サブブロック(サブブロック2−0、サブブロック2−1、サブブロック3−0、サブブロック3−1等)にユーザデータ群(データ0〜7)を対応させている。従って、物理ブロックが32ページで構成されている場合、ユーザデータ群の書込み開始ページが、ページ0若しくはページ16に対応するとき、つまり、サブブロックの先頭ページに対応するときは、最適状態が維持されていると判断される。   In the example shown in FIG. 6, each physical block is divided into two sub-blocks, and each sub-block (sub-block 2-0, sub-block 2-1, sub-block 3-0, sub-block 3-1, etc.) Are associated with user data groups (data 0 to 7). Therefore, when the physical block is composed of 32 pages, the optimum state is maintained when the write start page of the user data group corresponds to page 0 or page 16, that is, corresponds to the first page of the sub-block. It is determined that

図7に示した例では、各物理ブロックを4つのサブブロックに分割して、各サブブロック(サブブロック2−0、サブブロック2−1、サブブロック2−2、サブブロック2−3、サブブロック3−0、サブブロック3−1、サブブロック3−2、サブブロック3−3等)にユーザデータ群(データ0〜15)を対応させている。従って、物理ブロックが32ページで構成されている場合、ユーザデータ群の書込み開始ページが、ページ0、ページ8、ページ16、若しくはページ24に対応するとき、つまり、サブブロックの先頭ページに対応するときは、最適状態が維持されていると判断される。   In the example shown in FIG. 7, each physical block is divided into four sub-blocks, and each sub-block (sub-block 2-0, sub-block 2-1, sub-block 2-2, sub-block 2-3, User data groups (data 0 to 15) are associated with blocks 3-0, sub-block 3-1, sub-block 3-2, sub-block 3-3, and the like. Therefore, when the physical block is composed of 32 pages, when the write start page of the user data group corresponds to page 0, page 8, page 16, or page 24, that is, corresponds to the first page of the sub-block. When it is determined that the optimum state is maintained.

本発明の実施形態に係るフラッシュメモリシステムのブロック図である。1 is a block diagram of a flash memory system according to an embodiment of the present invention. ブロックとページの構成を示す図である。It is a figure which shows the structure of a block and a page. フラッシュメモリの記憶領域におけるシステムデータ領域とユーザデータ領域の関係を示す説明図である。It is explanatory drawing which shows the relationship between the system data area | region and user data area | region in the storage area of flash memory. 2つの物理ブロックに論理ブロックが跨った場合の説明図である。It is explanatory drawing when a logical block straddles two physical blocks. ユーザデータの書込み開始位置の説明図である。It is explanatory drawing of the writing start position of user data. 本実施形態の変形例を示す説明図である。It is explanatory drawing which shows the modification of this embodiment. 本実施形態の変形例を示す説明図である。It is explanatory drawing which shows the modification of this embodiment.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 内部インターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
20 ホストシステム
DESCRIPTION OF SYMBOLS 1 Flash memory system 2 Flash memory 3 Memory controller 5 Host interface control block 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Internal interface block 11 ECC block 12 Flash memory sequencer block 20 Host system

Claims (7)

記憶領域を有し、該記憶領域のデータの消去が、複数のページからなる物理ブロック単位で行われると共に、データの消去済みの部分にページ単位のデータの書込みが可能なフラッシュメモリとホストシステムとに接続され、該フラッシュメモリへの該ホストシステムのアクセスを制御するメモリコントローラであって、
前記ホストシステムから、データの属する論理ブロックを示す論理ブロックアドレスと共に与えられた書込み用データに対し、該書込み用データを書込む物理ブロックを示す物理ブロックアドレスを設定し、該書込み用データを該物理ブロックアドレスに対応する位置に書込む書込手段と、
前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが適切であるか否かを判断し、その結果を判断情報として示す情報表示手段と、
を備えることを特徴とするメモリコントローラ。
A flash memory and a host system having a storage area, wherein erasure of data in the storage area is performed in units of physical blocks composed of a plurality of pages, and in which data in units of pages can be written in the erased portion of the data; A memory controller for controlling access of the host system to the flash memory,
For the write data given from the host system together with the logical block address indicating the logical block to which the data belongs, a physical block address indicating the physical block to which the write data is written is set, and the write data is Writing means for writing in a position corresponding to the block address;
Information display means for determining whether or not a write start page of a user data group based on a write command given from the host system is appropriate, and indicating the result as determination information;
A memory controller comprising:
前記情報表示手段は、前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが、前記物理ブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断することを特徴とする請求項に記載のメモリコントローラ。 The information display means that the write start page of the user data group is appropriate when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the physical block. The memory controller according to claim 1 , wherein the determination is made. 前記物理ブロックが複数のサブブロックで構成され、
前記情報表示手段は、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記サブブロックの先頭ページに対応するときに、ユーザデータ群の書込み開始ページが適切であると判断することを特徴とする請求項に記載のメモリコントローラ。
The physical block is composed of a plurality of sub-blocks;
The information display means that the write start page of the user data group is appropriate when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the sub-block. The memory controller according to claim 1 , wherein the determination is made.
データを記憶するフラッシュメモリと、
請求項1乃至のいずれか1項に記載のメモリコントローラと、
を備えたことを特徴とするフラッシュメモリシステム。
Flash memory for storing data;
A memory controller according to any one of claims 1 to 3 ,
A flash memory system comprising:
記憶領域を有し、該記憶領域のデータの消去が、複数のページからなる物理ブロック単位で行われると共に、データの消去済みの部分にページ単位のデータの書込が可能なフラッシュメモリに対し、該フラッシュメモリへのホストシステムのアクセスを制御する制御方法であって、
前記ホストシステムから、データの属する論理ブロックを示す論理ブロックアドレスと共に与えられた書込み用データに対し、該書込み用データを書込む物理ブロックを示す物理ブロックアドレスを設定し、該書込み用データを該物理ブロックアドレスに対応する位置に書込む処理と、
前記ホストシステムから与えられる書込み命令に基づくユーザデータ群の書込み開始ページが適切であるか否かを判断し、その結果を判断情報として示す情報表示処理と、
を行うことを特徴とするフラッシュメモリの制御方法。
A flash memory having a storage area, and erasing data in the storage area is performed in units of physical blocks consisting of a plurality of pages, and in which data can be written in units of pages in an erased portion of the data, a control method for controlling access host system to the flash memory,
For the write data given from the host system together with the logical block address indicating the logical block to which the data belongs, a physical block address indicating the physical block to which the write data is written is set, and the write data is Write to the location corresponding to the block address;
Determining whether or not the write start page of the user data group based on the write command given from the host system is appropriate, and displaying the result as determination information;
And a flash memory control method.
前記情報表示処理では、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記物理ブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断することを特徴とする請求項に記載のフラッシュメモリの制御方法。 In the information display process, when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the physical block, the write start page of the user data group is appropriate. 6. The method of controlling a flash memory according to claim 5 , wherein: 前記物理ブロックが複数のサブブロックで構成され、
前記情報表示処理では、前記ホストシステムから与えられる書込み命令に基づく前記ユーザデータ群の書込み開始ページが、前記サブブロックの先頭ページに対応するときに、該ユーザデータ群の書込み開始ページが適切であると判断することを特徴とする請求項に記載のフラッシュメモリの制御方法。
The physical block is composed of a plurality of sub-blocks;
In the information display process, when the write start page of the user data group based on the write command given from the host system corresponds to the first page of the sub-block, the write start page of the user data group is appropriate. 6. The method of controlling a flash memory according to claim 5 , wherein:
JP2004160761A 2004-05-31 2004-05-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD Expired - Fee Related JP4177292B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004160761A JP4177292B2 (en) 2004-05-31 2004-05-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004160761A JP4177292B2 (en) 2004-05-31 2004-05-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2005339438A JP2005339438A (en) 2005-12-08
JP4177292B2 true JP4177292B2 (en) 2008-11-05

Family

ID=35492907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004160761A Expired - Fee Related JP4177292B2 (en) 2004-05-31 2004-05-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP4177292B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
US8180995B2 (en) 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US9442840B2 (en) * 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device
JP6943030B2 (en) 2017-06-16 2021-09-29 富士通株式会社 Information processing equipment, information processing methods and programs
JP7178916B2 (en) * 2019-01-29 2022-11-28 キオクシア株式会社 Memory system and control method

Also Published As

Publication number Publication date
JP2005339438A (en) 2005-12-08

Similar Documents

Publication Publication Date Title
US8037232B2 (en) Data protection method for power failure and controller using the same
JP4373943B2 (en) Memory controller, flash memory system, and flash memory control method
JP4171749B2 (en) Memory controller and flash memory system
JP4177360B2 (en) Memory controller, flash memory system, and flash memory control method
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177292B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP4241741B2 (en) Memory controller and flash memory system
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP3934659B1 (en) Memory controller and flash memory system
JP2005292925A (en) Memory controller, flash memory system, and control method for flash memory
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4194518B2 (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
JP4273106B2 (en) Memory controller, flash memory system, and flash memory control method
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4670370B2 (en) Memory controller and flash memory system
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4366283B2 (en) Memory controller and flash memory system including the memory controller
JP4304167B2 (en) Memory controller, flash memory system, and flash memory control method
JP2006178909A (en) Memory controller, flash memory system and method for controlling flash memory
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP2005293177A (en) Memory controller and flash memory system
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080728

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

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

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

Free format text: PAYMENT UNTIL: 20110829

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4177292

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130829

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees