[go: up one dir, main page]

JP2005190288A - Memory controller, flash memory system therewith, and method for controlling flash memory - Google Patents

Memory controller, flash memory system therewith, and method for controlling flash memory Download PDF

Info

Publication number
JP2005190288A
JP2005190288A JP2003432516A JP2003432516A JP2005190288A JP 2005190288 A JP2005190288 A JP 2005190288A JP 2003432516 A JP2003432516 A JP 2003432516A JP 2003432516 A JP2003432516 A JP 2003432516A JP 2005190288 A JP2005190288 A JP 2005190288A
Authority
JP
Japan
Prior art keywords
block
data
new
old
written
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.)
Pending
Application number
JP2003432516A
Other languages
Japanese (ja)
Inventor
Naoki Mukoda
直樹 向田
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 JP2003432516A priority Critical patent/JP2005190288A/en
Priority to US11/023,746 priority patent/US7315870B2/en
Publication of JP2005190288A publication Critical patent/JP2005190288A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a memory controller, a flash memory system therewith, and a method for controlling the flash memory whereby when a block with new data (rewritten data) written therein and another block with old data (data yet to be rewritten) written therein coexist, a determination can be made as to which of the blocks has the newest data (valid data) written therein. <P>SOLUTION: The memory controller includes an access control function for controlling access to the flash memory; logic block addresses provided by a host system; an address management function for managing the correspondence between physical block addresses within the flash memory; a new/old identification information setting function for describing new/old identification information in the redundant area of the flash memory; and a new/old identification function for identifying on the basis of the new/old identification information the block in which the latest data matching the same logic block address is written. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

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

近年、メモリカードやシリコンディスクなどのメモリシステムに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されていることが要求される。   In recent years, a flash memory is often used as a semiconductor memory used in a memory system such as a memory card or a silicon disk. This flash memory is a kind of non-volatile memory, and is required to retain data regardless of whether power is turned on.

ところで、上記のような装置に特に用いられることが多いNAND型フラッシュメモリは、メモリセルを消去状態(論理値の「1」)から書込状態(論理値の「0」)に変化させる場合には、メモリセル単位で行うことができるが、メモリセルを書込状態(論理値の「0」)から消去状態(論理値の「1」)に変化させる場合には、メモリセル単位で行うことができず、複数のメモリセルからなる所定の消去単位(ブロック)でしかこれを行うことができない。かかる一括消去動作は、一般的にブロック消去と呼ばれている。   By the way, the NAND flash memory that is often used in the above-described devices is used when a memory cell is changed from an erased state (logical value “1”) to a written state (logical value “0”). Can be performed in units of memory cells. However, when a memory cell is changed from a written state (logical value “0”) to an erased state (logical value “1”), it must be performed in memory cells. This can only be done with a predetermined erase unit (block) consisting of a plurality of memory cells. Such a batch erase operation is generally called block erase.

従って、NAND型フラッシュメモリで、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理が一般的に行なわれている。このようにしてデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内での物理ブロックアドレスの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリシステム(フラッシュメモリを用いたメモリシステム)では、この対応関係に関する情報を保持しておかなければならない。   Therefore, when data is rewritten in the NAND flash memory, new data (data after rewriting) is written to the erased block which has been erased, and old data (data before rewriting) is written. A process of erasing the written block is generally performed. When data is rewritten in this way, the data after rewriting is written in a different block from before rewriting, so the correspondence between the logical block address given by the host system and the physical block address in the flash memory Changes dynamically every time data is rewritten. Therefore, in a flash memory system (a memory system using a flash memory), information regarding this correspondence must be held.

上述のような理由により、一般的なフラッシュメモリシステムでは、データを書込んだブロックの冗長領域に、書込んだデータに対応する論理ブロックアドレスを書込み、この情報に基づいて論理ブロックアドレスと物理ブロックアドレスの対応関係を管理している。このような管理は、例えば、特許文献1(特開平10−124384)に示されている。又、フラッシュメモリにアクセスする際に使用されているアドレス変換テーブル(論理ブロックアドレスと物理ブロックアドレスの対応関係を示すテーブル)は、冗長領域に書込まれている論理ブロックアドレスを参照して作成される。
特開平10−124384号公報
For the reasons described above, in a general flash memory system, the logical block address corresponding to the written data is written in the redundant area of the block in which the data is written, and the logical block address and the physical block are based on this information. It manages address correspondence. Such management is disclosed in, for example, Japanese Patent Application Laid-Open No. 10-124384. The address conversion table (table showing the correspondence between logical block addresses and physical block addresses) used when accessing the flash memory is created with reference to the logical block addresses written in the redundant area. The
Japanese Patent Laid-Open No. 10-124384

上述のようにデータの書替処理では、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、その後、古いデータ(書替前のデータ)が書込まれていたブロックを消去している。従って、古いデータ(書替前のデータ)が書込まれていたブロックの消去が正常に行なわれていれば、異なるブロックの冗長領域に同一の論理ブロックアドレスが書込まれた状態が放置されることはない。しかしながら、古いデータ(書替前のデータ)が書込まれていたブロックのブロック消去が実行される前に電源が切断されたりした場合は、異なるブロックの冗長領域に同一の論理ブロックアドレスが書込まれた状態が放置されてしまう。このような状態が放置された場合、その後の処理で、いずれのブロックに書込まれているデータが、新たなデータ(書替後のデータ)であるかを判
断することは困難であるため、誤って新たなデータ(書替後のデータ)が消去されてしまうことがある。
As described above, in the data rewriting process, new data (data after rewriting) is written to the erased block that has been erased, and then old data (data before rewriting) is written. The block is being erased. Therefore, if erasure of a block in which old data (data before rewriting) has been normally performed, a state in which the same logical block address is written in a redundant area of a different block is left unattended. There is nothing. However, if the power is turned off before block erasure of a block in which old data (data before rewriting) has been written, the same logical block address is written to the redundant area of a different block. The rare state is left unattended. If such a state is left unattended, it is difficult to determine in which processing the data written in which block is new data (data after rewriting). New data (data after rewriting) may be erased by mistake.

そこで、本発明は、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックが並存した場合に、いずれのブロックに書込まれているデータが最新のデータ(有効なデータ)であるかを判断できるようにしたメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。   In view of this, the present invention provides a block in which a block in which new data (data after rewriting) is written and a block in which old data (data before rewriting) is written coexist. To provide a memory controller, a flash memory system including the memory controller, and a flash memory control method that can determine whether the data written in the memory is the latest data (valid data) To do.

本発明に係る目的は、フラッシュメモリに対するアクセスを制御するアクセス制御機能と、
ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスの対応関係を管理するアドレス管理機能と、
フラッシュメモリの冗長領域に新旧識別情報を記述する新旧識別情報設定機能と、
同一の論理ブロックアドレスに対応する最新のデータが書込まれているブロックを、前記新旧識別情報に基づいて識別する新旧識別機能を備えたことを特徴とするメモリコントローラによって達成される。又、本発明に係る目的は、前記メモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステムによっても達成される。
An object of the present invention is to provide an access control function for controlling access to a flash memory,
An address management function for managing the correspondence between the logical block address given from the host system side and the physical block address in the flash memory;
New and old identification information setting function for writing old and new identification information in the redundant area of flash memory,
This is achieved by a memory controller having a new / old identification function for identifying a block in which the latest data corresponding to the same logical block address is written based on the new / old identification information. The object of the present invention is also achieved by a flash memory system comprising the memory controller and a flash memory.

又、本発明に係る目的は、フラッシュメモリのユーザー領域にデータを書込む書込み処理と、
フラッシュメモリの冗長領域に新旧識別情報を設定する設定処理と
前記新旧識別情報に基づいて同一の論理ブロックアドレスに対応する最新のデータが書込まれているブロックを識別する識別処理を含むフラッシュメモリの制御方法によっても達成される。
Further, the object according to the present invention is a write process for writing data to a user area of a flash memory,
A flash memory including a setting process for setting new and old identification information in a redundant area of the flash memory and an identification process for identifying a block in which the latest data corresponding to the same logical block address is written based on the new and old identification information. This is also achieved by the control method.

ここで、上記新旧識別情報は、冗長領域の複数ビットに記述される情報であり、書替処理の際に、書替後のブロックに記述される新旧識別情報は、設定された規則に従って変更される。   Here, the new / old identification information is information described in a plurality of bits of the redundant area, and the new / old identification information described in the block after rewriting is changed according to the set rule during the rewriting process. The

又、本発明によれば、前記新旧識別情報が、同一の論理ブロックアドレスに対応するデータを書替える毎に増加又は減少する数値情報であることが好ましい。   According to the present invention, it is preferable that the new and old identification information is numerical information that increases or decreases each time data corresponding to the same logical block address is rewritten.

つまり、前記新旧識別情報は、同一の論理ブロックアドレスに対応するデータを書替える毎に、設定されている規則に従って加算又は減算が行なわれる数値情報である。   That is, the new and old identification information is numerical information that is added or subtracted according to a set rule every time data corresponding to the same logical block address is rewritten.

又、本発明によれば、前記新旧識別情報が、同一の論理ブロックアドレスに対応する前データが格納されていたブロックの物理ブロックアドレスに基づく情報であることが好ましい。   According to the present invention, it is preferable that the new and old identification information is information based on a physical block address of a block in which previous data corresponding to the same logical block address is stored.

ここで、物理ブロックアドレスに基づく情報とは、物理ブロックアドレスを直接的又は間接的に示した情報であり、設定されている規則に従って物理ブロックアドレスに変換できる情報であればよい。   Here, the information based on the physical block address is information that directly or indirectly indicates the physical block address, and may be information that can be converted into a physical block address according to a set rule.

本発明によれば、処理中の電源切断や不正操作等により、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックが並存した場合であっても、それらのブロックの冗長領域に書込まれている情報に基づいて、いずれのブロックに書込まれているデータが最新のデータ(有効なデータ)であ
るかを判断できるため、誤って最新のデータ(有効なデータ)が消去されてしまうというようなことを回避することができる。
According to the present invention, a block in which new data (data after rewriting) is written and old data (data before rewriting) are written due to power-off or unauthorized operation during processing. Even if there are coexisting blocks, the data written in which block is the latest data (valid data) based on the information written in the redundant area of those blocks. Therefore, it can be avoided that the latest data (valid data) is deleted by mistake.

以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム1の説明]
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常ホストシステム4に着脱可能に装着されて使用され、ホストシステム4に対して一種の外部記憶装置として用いられる。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[Description of flash memory system 1]
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. The flash memory system 1 is normally used by being detachably attached to the host system 4, and is used as a kind of external storage device for the host system 4.

尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。   Examples of the host system 4 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 is composed of 32 pages, and one page is a 512-byte user area and a 16-byte redundant area. It is configured.

コントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。   The controller 3 includes a host interface control block 5, 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, And a flash memory sequencer block 12. The controller 3 constituted by these functional blocks is integrated on one semiconductor chip. The function of each block will be described below.

マイクロプロセッサ6は、コントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。   The microprocessor 6 is a functional block that controls the operation of the entire functional blocks constituting the 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は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続され、かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインタ―フェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   The host interface block 7 is a functional block that exchanges data, address information, status information, and external command information with the host system 4. That is, when the flash memory system 1 is attached to the host system 4, the flash memory system 1 and the host system 4 are connected to each other via the external bus 13, and in this state, the host system 4 connects to the flash memory system 1. The supplied data or the like is taken into the controller 3 using the host interface block 7 as an entrance, and the data or the like supplied from the flash memory system 1 to the host system 4 is sent to the host system 4 using the host interface block 7 as an exit. To be supplied.

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

ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memo
ry)セルによって構成される機能ブロックである。
The work area 8 is a work area in which data necessary for controlling the flash memory 2 is temporarily stored, and a plurality of SRAMs (Static Random Access Memory).
ry) is a functional block composed of cells.

バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4が受け取り可能な状態になるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2が書込み可能な状態となるまでバッファ9に保持される。   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 4 can receive data, and data to be written to the flash memory 2 is stored in the buffer 9 until the flash memory 2 becomes writable. Retained.

フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム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 controller 3 to the flash memory 2 and is distinguished from an “external command” which is a command given from the host system 4 to the flash memory system 1.

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

ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
[メモリセルの説明]
次に、図2及び3参照して図1に示したフラッシュメモリ2を構成するメモリセル16の具体的な構造について説明する。
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.
[Description of memory cell]
Next, a specific structure of the memory cell 16 constituting the flash memory 2 shown in FIG. 1 will be described with reference to FIGS.

図2は、フラッシュメモリを構成するメモリセル16の構造を概略的に示す断面図である。同図に示したように、メモリセル16は、P型半導体基板17に形成されたN型のソース拡散領域18及びドレイン拡散領域19と、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17を覆って形成されたトンネル酸化膜20と、トンネル酸化膜20上に形成されたフローティングゲ―ト電極21と、フローティングゲート電極21上に形成された絶縁膜22と、絶縁膜22上に形成されたコントロールゲ―ト電極23とから構成される。このような構成を有するメモリセル16が、フラッシュメモリ内で複数個直列に接続されている。   FIG. 2 is a cross-sectional view schematically showing the structure of the memory cell 16 constituting the flash memory. As shown in the figure, the memory cell 16 includes an N-type source diffusion region 18 and a drain diffusion region 19 formed in the P-type semiconductor substrate 17, and a P between the source diffusion region 18 and the drain diffusion region 19. Tunnel oxide film 20 formed to cover type semiconductor substrate 17, floating gate electrode 21 formed on tunnel oxide film 20, insulating film 22 formed on floating gate electrode 21, and insulating film 22 The control gate electrode 23 is formed on the top. A plurality of memory cells 16 having such a configuration are connected in series in the flash memory.

メモリセル16は、フローティングゲート電極21に電子が注入されているか否かによって、「消去状態(電子が蓄積されていない状態)」と「書込状態(電子が蓄積されている状態)」のいずれかの状態が示される。ここで、1つのメモリセル16は1ビットのデータに対応し、メモリセル16の「消去状態」が論理値の「1」のデータに対応し、メモリセル16の「書込状態」が論理値の「0」のデータに対応する。   The memory cell 16 has either an “erased state (a state where no electrons are accumulated)” or a “written state (a state where electrons are accumulated)” depending on whether electrons are injected into the floating gate electrode 21 or not. Is shown. Here, one memory cell 16 corresponds to 1-bit data, the “erased state” of the memory cell 16 corresponds to data of “1” of the logical value, and the “written state” of the memory cell 16 corresponds to the logical value. Corresponds to “0” data.

「消去状態」においては、フローティングゲート電極21に電子が蓄積されていないため、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されていないときには、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にチャネルが形成されず、ソース拡散領域18とドレイン拡散領域19は電気的に絶縁される。一方、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されると、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にチャネル(図示せず)が形成され、ソース拡散領域18とドレイン拡散領域19は、このチ
ャネルによって電気的に接続される。
In the “erased state”, since electrons are not accumulated in the floating gate electrode 21, when the read voltage (high level voltage) is not applied to the control gate electrode 23, the source diffusion region 18 and the drain diffusion region 19 In the meantime, no channel is formed on the surface of the P-type semiconductor substrate 17, and the source diffusion region 18 and the drain diffusion region 19 are electrically insulated. On the other hand, when a read voltage (high level voltage) is applied to the control gate electrode 23, a channel (not shown) is formed on the surface of the P-type semiconductor substrate 17 between the source diffusion region 18 and the drain diffusion region 19. The source diffusion region 18 and the drain diffusion region 19 are electrically connected by this channel.

すなわち、「消去状態」においてはコントロールゲート電極23に読出し電圧(高レベル電圧)が印加されていない状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に絶縁され、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加された状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に接続される。   That is, in the “erased state”, when the read voltage (high level voltage) is not applied to the control gate electrode 23, the source diffusion region 18 and the drain diffusion region 19 are electrically insulated, and the control gate electrode 23 In the state where the read voltage (high level voltage) is applied, the source diffusion region 18 and the drain diffusion region 19 are electrically connected.

図3は、「書込状態」であるメモリセル16を概略的に示す断面図である。同図に示したように、「書込状態」とは、フローティングゲート電極21に電子が蓄積されている状態を指す。フローティングゲート電極21はトンネル酸化膜20及び絶縁膜22に挟まれているため、一旦、フローティングゲート電極21に注入された電子は、きわめて長時間フローティングゲート電極21内にとどまる。この「書込状態」においては、フローティングゲート電極21に電子が蓄積されているので、コントロールゲート電極23に読出し電圧(高レベル電圧)が印加されているか否かに関わらず、ソース拡散領域18とドレイン拡散領域19との間の、P型半導体基板17の表面にはチャネル24が形成される。したがって、「書込状態」においてはソース拡散領域18とドレイン拡散領域19とは、コントロ―ルゲート電極23に読出し電圧(高レベル電圧)が印加されているか否かに関わらず、チャネル24によって常に電気的に接続状態となる。   FIG. 3 is a cross-sectional view schematically showing the memory cell 16 in the “written state”. As shown in the figure, the “written state” refers to a state in which electrons are accumulated in the floating gate electrode 21. Since the floating gate electrode 21 is sandwiched between the tunnel oxide film 20 and the insulating film 22, the electrons once injected into the floating gate electrode 21 stay in the floating gate electrode 21 for a very long time. In this “write state”, since electrons are accumulated in the floating gate electrode 21, regardless of whether or not a read voltage (high level voltage) is applied to the control gate electrode 23, A channel 24 is formed on the surface of the P-type semiconductor substrate 17 between the drain diffusion region 19. Therefore, in the “written state”, the source diffusion region 18 and the drain diffusion region 19 are always electrically connected by the channel 24 regardless of whether or not a read voltage (high level voltage) is applied to the control gate electrode 23. Connection state.

又、上記メモリセル16が消去状態であるか書込状態であるかは、次のようにして読み出すことができる。メモリセル16はフラッシュメモリ内で複数個直列に接続されている。この直列体の中で選択するメモリセル16に低レベル電圧を印加し、それ以外のメモリセル16のコントロールゲート電極23に高レベル電圧を印加する。この状態でメモリセル16の直列体が導通状態であるか否かの検出が行われる。その結果、この直列体が導通状態であれば、選択されたメモリセル16は書込状態であると判断され、絶縁状態であれば、選択されたフラッシュメモリセル16は消去状態であると判断される。このようにして、直列体に含まれる任意のメモリセル16に保持されたデータが「0」であるのか「1」であるのかを読み出すことができる。   Whether the memory cell 16 is in an erased state or a written state can be read as follows. A plurality of memory cells 16 are connected in series in the flash memory. A low level voltage is applied to the memory cell 16 selected in the series body, and a high level voltage is applied to the control gate electrode 23 of the other memory cells 16. In this state, it is detected whether or not the serial body of the memory cells 16 is in a conductive state. As a result, if the serial body is in a conductive state, it is determined that the selected memory cell 16 is in a written state, and if it is in an isolated state, it is determined that the selected flash memory cell 16 is in an erased state. The In this way, it is possible to read out whether the data held in any memory cell 16 included in the serial body is “0” or “1”.

又、消去状態であるメモリセル16を書込状態に変化させる場合は、コントロールゲート電極23が高電位側となる高電圧を印加し、トンネル酸化膜20を介してフローティングゲート電極21へ電子を注入する。この際、FN(ファウラ―ノルトハイム)トンネル電流が流れフロ―ティングゲート電極21に電子が注入される。一方、書込状態であるフラッシュメモリセル16を消去状態に変化させる場合は、コントロールゲート電極23が低電位側となる高電圧を印加し、トンネル酸化膜20を介してフローティングゲート電極21に蓄積された電子を排出する。
[フラッシュメモリのメモリ構造の説明]
次に、フラッシュメモリのメモリ構造を説明する。図4は、フラッシュメモリのメモリ構造を概略的に示す図である。図4に示したように、フラッシュメモリはデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
When the memory cell 16 in the erased state is changed to the written state, a high voltage is applied so that the control gate electrode 23 is on the high potential side, and electrons are injected into the floating gate electrode 21 through the tunnel oxide film 20. To do. At this time, an FN (Fowler-Nordheim) tunnel current flows and electrons are injected into the floating gate electrode 21. On the other hand, when changing the flash memory cell 16 in the written state to the erased state, a high voltage is applied to the control gate electrode 23 on the low potential side, and the voltage is stored in the floating gate electrode 21 via the tunnel oxide film 20. Discharge electrons.
[Description of flash memory structure]
Next, the memory structure of the flash memory will be described. FIG. 4 schematically shows a memory structure of the flash memory. As shown in FIG. 4, the flash memory is composed of pages, which are processing units for reading and writing data, and blocks, which are data erasing units.

上記ページは、例えば512バイトのユーザ領域25と、16バイトの冗長領域26によって構成される。ユーザ領域25は、主に、ホストシステム4から供給されるデ―タが格納される領域であり、冗長領域26は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加情報が格納される領域である。   The page is composed of, for example, a user area 25 of 512 bytes and a redundant area 26 of 16 bytes. The user area 25 is an area mainly storing data supplied from the host system 4, and the redundant area 26 stores additional information such as an error collection code, a corresponding logical block address and a block status. It is an area.

エラ―コレクションコードは、ユーザ領域25に格納されたデータに含まれる誤りを訂正するための付加情報であり、ECCブロックによって生成される。このエラ―コレクションコードに基づき、ユーザ領域25に格納されたデータに含まれる誤りが所定数以下で
あれば、その誤りが訂正される。
The error collection code is additional information for correcting an error included in the data stored in the user area 25, and is generated by an ECC block. Based on the error collection code, if the number of errors included in the data stored in the user area 25 is equal to or less than a predetermined number, the error is corrected.

対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが格納されていない場合は消去済ブロックであると判断する。   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. Judgment can be made. 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. [Description of logical block address and physical block address]
Since data cannot be overwritten in the flash memory, when rewriting data, new data (data after rewriting) is written to the erased block that has been erased, and old data (data before rewriting). The process of erasing the block in which "." Has been written must be performed. At this time, since erasure is processed in units of blocks, data of all pages of a block including a page in which old data (data before rewriting) is written is erased. Therefore, when data is rewritten, it is necessary to perform processing for moving the data of other pages of the block including the page to be rewritten to the erased block.

上記のようにデータを書替える場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリの冗長領域に書込まれている対応論理ブロックアドレスに基づいて作成され、データが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。
[ゾーンの構成の説明]
本発明に係るフラッシュメモリシステムでは、フラッシュメモリ内の領域を複数のゾーンに分割して使用する方法を採用しており、各ゾーンは、フラッシュメモリ内の複数のブロックで構成されている。図5は、1024のブロックでゾーンを構成した例を示している。この例では、ゾーンは、1024のブロックB0000〜B1023で構成され、各ブロックは、32のページP00〜P31で構成されている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込み処理の単位である。尚、各ブロックの記憶容量や、各ブロックのページ数はフラッシュメモリの仕様によって異なる。
When rewriting data as described above, since the data after rewriting is written in a different block from before rewriting, the logical block address given from the host system side and the physical block which is the block address in the flash memory The correspondence with the address changes dynamically every time data is rewritten. For this reason, an address conversion table showing the correspondence between logical block addresses and physical block addresses is required. This address conversion table is created based on the corresponding logical block address written in the redundant area of the flash memory, and each time the data is rewritten, the correspondence relationship of the part involved in the rewriting is updated.
[Description of zone configuration]
The flash memory system according to the present invention employs a method of dividing an area in the flash memory into a plurality of zones, and each zone is composed of a plurality of blocks in the flash memory. FIG. 5 shows an example in which a zone is composed of 1024 blocks. In this example, the zone is composed of 1024 blocks B0000 to B1023, and each block is composed of 32 pages P00 to P31. Here, the block is a unit of erasing processing, and the page is a unit of reading and writing processing. Note that the storage capacity of each block and the number of pages of each block differ depending on the specifications of the flash memory.

又、このゾーンは、一定範囲の論理ブロックアドレス空間に割当てられている。例えば、図6に示した例では、1024のブロックで構成されたゾーンを1000ブロック分の論理ブロックアドレスの空間に割当てている。ここで、ゾーンを構成するブロックが、24ブロック分余計に割当てられているのは、不良ブロックの発生を考慮したためである。但し、データ書替の際に一旦別のブロックに新データを書込み、その後、旧データが書込まれていたブロックをブロック消去する場合には、新データを書込むための予備ブロックが必要なので、実質的には23ブロック分が余計に割当てられていることになる。尚、ゾーンを構成するブロックの数は、フラッシュメモリシステムの用途やフラッシュメモリの仕様に応じて適宜設定される。   This zone is assigned to a certain range of logical block address space. For example, in the example shown in FIG. 6, a zone composed of 1024 blocks is allocated to a space of 1000 blocks of logical block addresses. Here, the reason why the blocks constituting the zone are allocated to the extra 24 blocks is because of the occurrence of defective blocks. However, when data is rewritten and new data is once written to another block, and then the block where the old data has been written is erased, a spare block for writing the new data is necessary. In effect, an extra 23 blocks are allocated. The number of blocks constituting the zone is appropriately set according to the use of the flash memory system and the specification of the flash memory.

又、各ブロックの冗長領域に対応論理ブロックアドレスを書込むときに、ホストシステム側から与えられる論理ブロックアドレスをそのまま書込んでも、又は各ゾーンに割当てられた論理ブロックアドレス空間内での通番(各ゾーンを1000ブロック分の論理ブロ
ックアドレスの空間に割当てた場合は0〜999までの通番)を書込んでも良い(以下、各ゾーンに割当てられた論理ブロックアドレス空間内での通番を論理通番と言う。)。ここで、論理通番は、各ゾーンに応じたオフセットを加えれば、実際の論理ブロックアドレスに変換することができる。例えば、図6でゾーン0に割当てられた論理ブロックアドレス空間の先頭アドレスがADD0の場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン0:ADD0
ゾーン1:ADD0+1000×1
ゾーン2:ADD0+1000×2



ゾーンN:ADD0+1000×N
[データ書替処理の説明]
本発明に係るフラッシュメモリシステムにおけるデータの書替処理では、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、その後、古いデータ(書替前のデータ)が書込まれていたブロックを消去している。このような書替処理では、古いデータ(書替前のデータ)が書込まれていたブロックのブロック消去が実行される前に電源が切断されたりした場合等に、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックが並存することになる。このような場合、新たなデータ(書替後のデータ)が有効なデータなので、新たなデータ(書替後のデータ)が書込まれているブロックを残して、古いデータ(書替前のデータ)が書込まれているブロックをブロック消去する必要がある。
Also, when writing the corresponding logical block address to the redundant area of each block, the logical block address given from the host system side is written as it is, or the serial number in each logical block address space assigned to each zone (each If a zone is assigned to a logical block address space for 1000 blocks, a serial number from 0 to 999 may be written (hereinafter, a serial number in the logical block address space assigned to each zone is called a logical serial number. .) Here, the logical sequence number can be converted into an actual logical block address by adding an offset corresponding to each zone. For example, when the top address of the logical block address space assigned to zone 0 in FIG. 6 is ADD0, the following offset is assigned to each zone.
Zone 0: ADD0
Zone 1: ADD0 + 1000x1
Zone 2: ADD0 + 1000x2



Zone N: ADD0 + 1000 × N
[Description of data rewrite processing]
In the data rewriting process in the flash memory system according to the present invention, new data (data after rewriting) is written to the erased block that has been erased, and then old data (data before rewriting) is written. The block that was included is erased. In such a rewriting process, new data (after rewriting) is generated when the power is turned off before executing block erasure of the block in which old data (data before rewriting) has been written. Data) and a block in which old data (data before rewriting) is written coexist. In such a case, the new data (data after rewriting) is valid data, so the old data (data before rewriting) remains with the block where the new data (data after rewriting) is written. ) Needs to be erased.

本発明に係るフラッシュメモリシステムでは、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックを識別するための新旧識別情報を、各ブロックの冗長領域に書込み、この新旧識別情報に基づいて古いデータ(書替前のデータ)が書込まれているブロックを識別している。以下、この新旧識別情報と、この新旧識別情報に基づく識別処理について図面を参照して説明する。   In the flash memory system according to the present invention, a new and old block for identifying a block in which new data (data after rewriting) is written and a block in which old data (data before rewriting) is written Identification information is written in the redundant area of each block, and a block in which old data (data before rewriting) is written is identified based on the new and old identification information. Hereinafter, the new and old identification information and the identification process based on the new and old identification information will be described with reference to the drawings.

図7は、1ゾ−ン(1023のブロックで構成されたゾーン)の各ブロックの冗長領域に書込まれている新旧識別情報と対応論理ブロックアドレス(論理通番で記述した対応論理ブロックアドレス)の例を示す図である。この例では、4ビットが新旧識別情報に割当てられ、11ビットが対応論理ブロックアドレスに割当てられている。ここで、対応論理ブロックアドレスを11ビットとしたのは、1ゾ−ンに割当てられている1000ブロック分の論理通番(0〜999)を示すための10ビットに、データが書込まれていないことを示す1ビット(先頭ビット)を付加したためである。従って、先頭ビットを除いた10ビットに、このゾーンに割当てられているオフセットを加えれば、実際の論理ブロックアドレスを得ることができる。尚、データが書込まれていないことを示す1ビットを設けずに、論理通番1023(11 1111 1111b(2進数))をデータが書込まれていないことを示す情報に割当ててもよい。   FIG. 7 shows new and old identification information and corresponding logical block address (corresponding logical block address described by logical serial number) written in the redundant area of each block of one zone (zone composed of 1023 blocks). It is a figure which shows an example. In this example, 4 bits are assigned to the old and new identification information, and 11 bits are assigned to the corresponding logical block address. Here, the corresponding logical block address is set to 11 bits because no data is written in 10 bits for indicating the logical sequence numbers (0 to 999) for 1000 blocks allocated to one zone. This is because 1 bit (first bit) indicating this is added. Therefore, an actual logical block address can be obtained by adding an offset assigned to this zone to 10 bits excluding the first bit. Note that the logical sequence number 1023 (11 1111 1111b (binary number)) may be assigned to information indicating that data is not written without providing one bit indicating that data is not written.

又、図7に示した例では、データが書込まれていないブロックの新旧識別情報は15(1111b(2進数))に設定し、データが書込まれていないブロックの対応論理ブロックアドレスは111 1111 1111b(2進数)に設定している。尚、通常のフラッシュメモリでは、「消去状態」が論理値の「1」に対応するので、消去処理を行なえば新旧識別情報は15(1111b(2進数))に設定され、対応論理ブロックアドレスは111 1111 1111b(2進数)に設定される。   In the example shown in FIG. 7, the new / old identification information of a block in which no data is written is set to 15 (1111b (binary number)), and the corresponding logical block address of the block in which no data is written is 111. 1111 1111b (binary number) is set. In an ordinary flash memory, the “erased state” corresponds to the logical value “1”. Therefore, if the erasing process is performed, the old and new identification information is set to 15 (1111b (binary number)), and the corresponding logical block address is 111 1111 1111b (binary number) is set.

又、図7の新旧識別情報の左側に付されている0〜1023の番号は、各ゾーン内で物
理ブロックアドレスの順番で付けた通番である。以下、各ゾーン内で物理ブロックアドレスの順番で付けた通番を物理通番と言う。この物理通番(0〜1023)は、各ゾーンに応じたオフセットを加えることにより、フラッシュメモリ内での実際のアドレスに変換することができる。例えば、フラッシュメモリ内のブロックをアドレス順でゾーン0からゾーンNに割付けた場合、各ゾーンには下記のようなオフセットが割当てられる。
ゾーン0:0
ゾーン1:1024×1
ゾーン2:1024×2



ゾーンN:1024×N
次に、図7に示した新旧識別情報の更新処理について図8を参照して説明する。図8は、論理通番0(00 0000 0000b(2進数))に対応するデータの書替処理を行なった場合の新旧識別情報の変化を示す図である。まず、ステップ0(#0)では、物理通番0に論理通番0に対応するデータが書込まれている。この後、論理通番0に対応するデータの書替が行なわれる毎に、新旧識別情報も以下のように更新されていく。尚、この例では、データの書替が行なわれる毎に、新旧識別情報が1ずつ加算され、新旧識別情報が15(1111b(2進数))になった場合は、0(0000b(2進数))に戻している。
ステップ1(#1):
物理通番6に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として1(0001b(2進数))を記述する。
ステップ2(#2):
物理通番17に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として2(0010b(2進数))を記述する。
ステップ3(#3):
物理通番175に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として3(0011b(2進数))を記述する。
ステップ4(#4):
物理通番503に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として4(0100b(2進数))を記述する。
ステップ5(#5):
物理通番875に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として5(0101b(2進数))を記述する。
以下、同様にして新旧識別情報の更新が行なわれ、ステップ15(#15)で、新旧識別情報が15(1111b(2進数))となり、ステップ16(#16)で、新旧識別情報が0(0000b(2進数))に戻される。
ステップ15(#15):
物理通番1017に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として15(1111b(2進数))を記述する。
ステップ16(#16):
物理通番26に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に新旧識別情報として0(0000b(2進数))を記述する。
The numbers 0 to 1023 given to the left side of the new and old identification information in FIG. 7 are serial numbers assigned in the order of physical block addresses in each zone. Hereinafter, a serial number assigned in the order of physical block addresses in each zone is referred to as a physical serial number. This physical serial number (0 to 1023) can be converted into an actual address in the flash memory by adding an offset corresponding to each zone. For example, when blocks in the flash memory are assigned to zones 0 to N in the order of addresses, the following offsets are assigned to each zone.
Zone 0: 0
Zone 1: 1024x1
Zone 2: 1024x2



Zone N: 1024 x N
Next, the update processing of the new and old identification information shown in FIG. 7 will be described with reference to FIG. FIG. 8 is a diagram showing changes in the old and new identification information when data rewrite processing corresponding to the logical sequence number 0 (00 0000 0000b (binary number)) is performed. First, in step 0 (# 0), data corresponding to the logical sequence number 0 is written in the physical sequence number 0. Thereafter, each time data corresponding to the logical sequence number 0 is rewritten, the old and new identification information is also updated as follows. In this example, each time data is rewritten, the new / old identification information is incremented by 1 and when the old / new identification information becomes 15 (1111b (binary number)), 0 (0000b (binary number)). ).
Step 1 (# 1):
New data (data after rewriting) is written in the block corresponding to the physical serial number 6, and 1 (0001b (binary number)) is described as the old and new identification information in the redundant area of the block.
Step 2 (# 2):
New data (data after rewriting) is written in the block corresponding to the physical serial number 17, and 2 (0010b (binary number)) is described as the old and new identification information in the redundant area of the block.
Step 3 (# 3):
New data (data after rewriting) is written in the block corresponding to the physical serial number 175, and 3 (0011b (binary number)) is described as the old and new identification information in the redundant area of the block.
Step 4 (# 4):
New data (data after rewriting) is written in the block corresponding to the physical serial number 503, and 4 (0100b (binary number)) is described as new / old identification information in the redundant area of the block.
Step 5 (# 5):
New data (data after rewriting) is written in the block corresponding to the physical serial number 875, and 5 (0101b (binary number)) is described as new / old identification information in the redundant area of the block.
Thereafter, the new and old identification information is updated in the same manner. In step 15 (# 15), the new and old identification information becomes 15 (1111b (binary number)), and in step 16 (# 16), the old and new identification information becomes 0 ( 0000b (binary number)).
Step 15 (# 15):
New data (data after rewriting) is written in the block corresponding to the physical serial number 1017, and 15 (1111b (binary number)) is described as new / old identification information in the redundant area of the block.
Step 16 (# 16):
New data (data after rewriting) is written in the block corresponding to the physical serial number 26, and 0 (0000b (binary number)) is described as new / old identification information in the redundant area of the block.

次に、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックが並存したときに、新旧識別情報に基づいて、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックを識別する方法について説明する。例えば、同一の論理通番に対応するデータが書込まれている一方のブロックの新旧識別情報がNaで、他方の
ブロックの新旧識別情報がNb(Nb>Na)の場合に、
Nb−Na=1
であれば、新旧識別情報がNbのブロックに新たなデータ(書替後のデータ)が書込まれている。Nb−Na>1
であれば、新旧識別情報がNaのブロックに新たなデータ(書替後のデータ)が書込まれている。
Next, when a block in which new data (data after rewriting) is written and a block in which old data (data before rewriting) are written side by side, based on the old and new identification information A method for identifying a block in which new data (data after rewriting) is written and a block in which old data (data before rewriting) is written will be described. For example, when the old and new identification information of one block in which data corresponding to the same logical serial number is written is Na and the old and new identification information of the other block is Nb (Nb> Na),
Nb-Na = 1
If so, new data (data after rewriting) is written in the block whose identification information is Nb. Nb-Na> 1
If so, new data (data after rewriting) is written in a block whose old and new identification information is Na.

図9に示した例(新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックが並存した場合の例)では、物理通番0に対応するブロックと、物理通番6に対応するブロックに、いずれも論理通番0(00 0000 0000b(2進数))に対応するデータが書込まれている。ここで、物理通番0に対応するブロックの新旧識別情報には0(0000b(2進数))が記述されており、物理通番6に対応するブロックの新旧識別情報には1(0001b(2進数))が記述されている。これを、上記Na、Nbに当てはめた場合、
Na=0
Nb=1
Nb−Na=1
となるので、物理通番6に対応するブロックに新たなデータ(書替後のデータ)が書込まれている。又、物理通番6に対応するブロックの新旧識別情報に15(1111b(2進数))が記述されていたとすれば、
Na=0
Nb=15
Nb−Na=15
となるので、物理通番0に対応するブロックに新たなデータ(書替後のデータ)が書込まれていることになる。
In the example shown in FIG. 9 (an example in which a block in which new data (data after rewriting) is written and a block in which old data (data before rewriting) are written coexist). In both the block corresponding to the physical sequence number 0 and the block corresponding to the physical sequence number 6, data corresponding to the logical sequence number 0 (00 0000 0000b (binary number)) is written. Here, 0 (0000b (binary number)) is described in the old and new identification information of the block corresponding to the physical serial number 0, and 1 (0001b (binary number)) is included in the old and new identification information of the block corresponding to the physical serial number 6. ) Is described. When this is applied to the above Na and Nb,
Na = 0
Nb = 1
Nb-Na = 1
Therefore, new data (data after rewriting) is written in the block corresponding to the physical serial number 6. If 15 (1111b (binary number)) is described in the old and new identification information of the block corresponding to the physical serial number 6,
Na = 0
Nb = 15
Nb-Na = 15
Therefore, new data (data after rewriting) is written in the block corresponding to the physical sequence number 0.

次に、同一の論理通番に対応するデータが書込まれているブロックが3つ並存した場合に、新旧識別情報に基づいて、最新のデータが書込まれているブロックを識別する方法について説明する。例えば、同一の論理通番に対応するデータが書込まれている3つのブロックの新旧識別情報をNa、Nb、Nc(Na<Nb<Nc)とした場合、新旧識別情報がNaのブロックとNbのブロックの関係については、
Nb−Na=1
であれば、新旧識別情報がNaのブロックよりNbのブロックの方が、新しいデータが書込まれている。
Nb−Na>1
であれば、新旧識別情報がNbのブロックよりNaのブロックの方が、新しいデータが書込まれている。
又、新旧識別情報がNbのブロックとNcのブロックの関係については、
Nc−Nb=1
であれば、新旧識別情報がNbのブロックよりNcのブロックの方が、新しいデータが書込まれている。
Nc−Nb>1
であれば、新旧識別情報がNcのブロックよりNbのブロックの方が、新しいデータが書込まれている。
又、新旧識別情報がNaのブロックとNcのブロックの関係については、
Nc−Na=2
であれば、新旧識別情報がNaのブロックよりNcのブロックの方が、新しいデータが書込まれている。
Nc−Na>2
であれば、新旧識別情報がNcのブロックよりNaのブロックの方が、新しいデータが書
込まれている。
Next, a method for identifying a block in which the latest data is written based on the new and old identification information when three blocks in which data corresponding to the same logical serial number are written side by side will be described. . For example, when the old and new identification information of three blocks in which data corresponding to the same logical serial number is written is Na, Nb, and Nc (Na <Nb <Nc), the old and new identification information is Na blocks and Nb. For block relationships,
Nb-Na = 1
If so, new data is written in the Nb block with the new and old identification information in the Na block.
Nb-Na> 1
If so, new data is written in the Na block with the new and old identification information in the Nb block.
In addition, regarding the relationship between the Nb block and the Nc block, the old and new identification information:
Nc-Nb = 1
If so, new data is written in the block of Nc than the block of Nb in the old and new identification information.
Nc-Nb> 1
If so, new data is written in the Nb block than in the Nc block.
In addition, regarding the relationship between the old and new identification information blocks of Na and Nc,
Nc-Na = 2
Then, new data is written in the block of Nc than the block of Na in the old and new identification information.
Nc-Na> 2
If so, the new data is written in the Na block with the new and old identification information in the block with Nc.

例えば、同一の論理通番に対応するデータが書込まれている3つブロックの新旧識別情報が、
Na=0
Nb=1
Nc=2
であれば、
Nb−Na=1
Nc−Nb=1
となるので、新旧識別情報がNaのブロックよりNbのブロックに書込まれてデータの方が新しく、新旧識別情報がNbのブロックよりNcのブロックに書込まれてデータの方が新しので、新旧識別情報がNcのブロックに最新のデータが書込まれている。
For example, the old and new identification information of three blocks in which data corresponding to the same logical serial number is written
Na = 0
Nb = 1
Nc = 2
If,
Nb-Na = 1
Nc-Nb = 1
Therefore, the new and old identification information is written in the Nb block rather than the Na block and the data is newer, and the new and old identification information is written in the Nc block than the Nb block and the data is newer. The latest data is written in the block whose old and new identification information is Nc.

又、同一の論理通番に対応するデータが書込まれている3つブロックの新旧識別情報が、
Na=0
Nb=1
Nc=15
であれば、
Nb−Na=1
Nc−Nb=14
となるので、新旧識別情報がNaのブロックよりNbのブロックに書込まれてデータの方が新しく、新旧識別情報がNcのブロックよりNbのブロックに書込まれてデータの方が新しので、新旧識別情報がNbのブロックに最新のデータが書込まれている。
Also, the old and new identification information of the three blocks in which data corresponding to the same logical serial number is written
Na = 0
Nb = 1
Nc = 15
If,
Nb-Na = 1
Nc−Nb = 14
Therefore, the new and old identification information is written in the Nb block from the Na block and the data is newer, and the new and old identification information is written in the Nb block than the Nc block and the data is newer. The latest data is written in the block whose old and new identification information is Nb.

又、同一の論理通番に対応するデータが書込まれている3つブロックの新旧識別情報が、
Na=0
Nb=14
Nc=15
であれば、
Nb−Na=14
Nc−Na=15
となるので、新旧識別情報がNbのブロックよりNaのブロックに書込まれてデータの方が新しく、新旧識別情報がNcのブロックよりNaのブロックに書込まれてデータの方が新しので、新旧識別情報がNaのブロックに最新のデータが書込まれている。
Also, the old and new identification information of the three blocks in which data corresponding to the same logical serial number is written
Na = 0
Nb = 14
Nc = 15
If,
Nb-Na = 14
Nc-Na = 15
Therefore, since the new and old identification information is written in the Na block rather than the Nb block, the data is newer, and the old and new identification information is written in the Na block than the Nc block and the data is newer. The latest data is written in the block whose old and new identification information is Na.

尚、通常の書替処理では、同一の論理通番に対応するデータが書込まれているブロックが3つ以上並存することはないが、同一の論理通番に対応するデータが書込まれているブロックが3つ以上並存した場合であっても、上記のようにして最新のデータが書込まれているブロックを識別することができる。   In normal rewrite processing, three or more blocks in which data corresponding to the same logical serial number is written do not coexist, but a block in which data corresponding to the same logical serial number is written. Even when there are three or more coexisting, the block in which the latest data is written can be identified as described above.

又、上述の例では、ユーザー領域に新旧識別情報を1ずつ加算したが、15(1111b(2進数))から1ずつ減算し、0(0000b(2進数))になった場合は、15(1111b(2進数))に戻すという新旧識別情報の更新を行なっても、新旧識別情報に基づいて最新のデータが書込まれているブロックを識別することができる。尚、新旧識別情報を1ずつ減算した場合は、下記のようにして最新のデータが書込まれているブロックを識別する。例えば、同一の論理通番に対応するデータが書込まれている一方のブロックの新旧識別情報がNaで、他方のブロックの新旧識別情報がNb(Nb>Na)の場合に

Nb−Na=1
であれば、新旧識別情報がNbのブロックよりNaのブロックの方が、新しいデータが書込まれている。
Nb−Na>1
であれば、新旧識別情報がNaのブロックよりNbのブロックの方が、新しいデータが書込まれている。
In the above example, the old and new identification information is added to the user area one by one, but when one is subtracted from 15 (1111b (binary number)) and becomes 0 (0000b (binary number)), 15 ( Even if the old and new identification information is updated back to 1111b (binary number), the block in which the latest data is written can be identified based on the new and old identification information. When the new and old identification information is subtracted by one, the block in which the latest data is written is identified as follows. For example, when the old and new identification information of one block in which data corresponding to the same logical serial number is written is Na and the old and new identification information of the other block is Nb (Nb> Na),
Nb-Na = 1
If so, new data is written in the Na block with the new and old identification information in the Nb block.
Nb-Na> 1
If so, new data is written in the Nb block with the new and old identification information in the Na block.

又、本発明に係るフラッシュメモリシステムでは、上述のようにユーザー領域に書込まれているデータを書替える毎に、新旧識別情報を更新しているので、各ブロックの最新の新旧識別情報を、テーブルで管理しておくことが好ましい。例えば、図10に示したテーブルでは、論理ブロックアドレスと物理ブロックアドレスの対応関係と、論理ブロックアドレスと新旧識別情報の対応関係を一括して管理している。このテーブルは、1つのゾーン(1023のブロックで構成されているゾーン)に割当てられている1000ブロック分の論理ブロックアドレス空間を対象としたテーブルであり、論理通番の順(論理ブロックアドレスの順)で、新旧識別情報と物理ブロックアドレス(物理通番で記述されている。)が併記されている。つまり、論理通番(0〜999)毎に、その論理通番に対応するデータが書込まれているブロックの物理通番と、そのブロックの冗長領域に書込まれている新旧識別情報が記述されている。尚、図10では、論理通番の順(論理ブロックアドレスの順)に並べられていることを図示するため、新旧識別情報の左側に論理通番(0〜999)を付してある。又、論理通番に対応するデータが書込まれていない場合には、新旧識別情報に1111b(2進数)を、物理ブロックアドレス(物理通番で記述されている。)に111 1111 1111b(2進数)を記述している。ここで、物理ブロックアドレス(物理通番で記述されている。)の先頭ビットは、論理通番に対応するデータが書込まれていないことを示す情報に割当てられている。   Further, in the flash memory system according to the present invention, the new and old identification information is updated every time the data written in the user area is rewritten as described above. It is preferable to manage with a table. For example, in the table shown in FIG. 10, the correspondence relationship between the logical block address and the physical block address and the correspondence relationship between the logical block address and the old and new identification information are collectively managed. This table is for a logical block address space for 1000 blocks allocated to one zone (zone composed of 1023 blocks), and is in the order of logical serial numbers (in the order of logical block addresses). The old and new identification information and the physical block address (described by physical serial number) are written together. That is, for each logical serial number (0 to 999), the physical serial number of the block in which data corresponding to the logical serial number is written and the old and new identification information written in the redundant area of the block are described. . In FIG. 10, a logical serial number (0 to 999) is attached to the left side of the old and new identification information in order to illustrate that the logical serial numbers are arranged in the order (logical block address order). When data corresponding to the logical serial number is not written, 1111b (binary number) is stored in the old and new identification information, and 111 1111 1111b (binary number) is stored in the physical block address (described in physical serial number). Is described. Here, the first bit of the physical block address (described by the physical serial number) is assigned to information indicating that data corresponding to the logical serial number has not been written.

又、図10に示したテーブルは、データの書替処理を行なう毎に更新しなければならない。例えば、論理通番0に対応する最新のデータを、古いデータが書込まれているブロックと異なる消去済ブロックに書込んだ場合は、そのブロックの冗長領域に新旧識別情報として0100b(2進数)を書込み、テーブルの新旧識別情報も0011b(2進数)から0100b(2進数)に更新する。尚、テーブルの物理ブロックアドレス(物理通番で記述されている。)についても、論理通番0に対応する最新のデータを書込んだブロックの物理通番に書替える。   Further, the table shown in FIG. 10 must be updated every time data rewrite processing is performed. For example, when the latest data corresponding to the logical sequence number 0 is written in an erased block different from the block in which the old data is written, 0100b (binary number) is used as new / old identification information in the redundant area of the block. The new and old identification information of the writing and table is also updated from 0011b (binary number) to 0100b (binary number). Note that the physical block address of the table (described by the physical serial number) is also rewritten to the physical serial number of the block in which the latest data corresponding to the logical serial number 0 is written.

又、図10に示したテーブルを作成する場合は、例えば、1000ブロック分の新旧識別情報と物理通番(物理ブロックアドレス)を記述できる領域をSRAM上に確保し、初期設定として新旧識別情報を記述する部分に1111b(2進数)を設定し、物理通番(物理ブロックアドレス)を記述する部分に「111 1111 1111b(2進数)」(データが格納されていないことを示すデータ)を設定する。その後、テーブルを作成するゾーンに割当てられているブロックの冗長領域を順次読出していき、冗長領域の対応論理ブロックアドレスを記述する部分に論理ブロックアドレスを示す論理通番が記述されていた場合には、テーブルのその論理通番に対応した部分(その論理ブロックアドレスに対応した部分)に、その論理通番が記述されていたブロックの物理通番を記述し、更に、論理通番と共に記述されている新旧識別情報も、その論理通番に対応した部分(その論理ブロックアドレスに対応した部分)に記述する。この処理を、ゾーンを構成する1024ブロックについて順次行なうことにより、図10に示したテーブルが作成される。   When the table shown in FIG. 10 is created, for example, an area where 1000 blocks of new and old identification information and a physical serial number (physical block address) can be described is secured on the SRAM, and the old and new identification information is described as an initial setting. 1111b (binary number) is set in the portion to be processed, and "111 1111 1111b (binary number)" (data indicating that no data is stored) is set in the portion describing the physical serial number (physical block address). After that, the redundant areas of the blocks assigned to the zone for creating the table are sequentially read out, and when the logical serial number indicating the logical block address is described in the part describing the corresponding logical block address of the redundant area, In the part corresponding to the logical serial number of the table (the part corresponding to the logical block address), the physical serial number of the block in which the logical serial number is described is described, and the old and new identification information described together with the logical serial number is also included. And described in the part corresponding to the logical serial number (the part corresponding to the logical block address). By sequentially performing this process for 1024 blocks constituting the zone, the table shown in FIG. 10 is created.

次に、新旧識別情報として、古いデータ(書替前のデータ)が書込まれていたブロックの物理ブロックアドレス(物理通番)を記述する場合について説明する。図11に示した例では、各ブロックの冗長領域に、古いデータ(書替前のデータ)が書込まれていたブロ
ックの物理ブロックアドレス(物理通番)が、対応論理ブロックアドレス(物理通番で記述されている。)と共に記述されている。ここで、新旧識別情報を記述する部分には、古いデータ(書替前のデータ)が書込まれていたブロックの物理通番(0〜1023)が10ビットで記述されている。又、対応論理ブロックアドレスを記述する部分には、上述の場合と同様に11ビット(1ゾ−ンに割当てられている1000ブロック分の論理通番(0〜999)を示すための10ビットと、データが書込まれていないことを示す1ビット)が割当てられている。尚、データが書込まれていないブロックの新旧識別情報を記述する部分には、11 1111 1111b(2進数)が設定され、データが書込まれていないブロックの対応論理ブロックアドレスを記述する部分には、データが書込まれていないことを示す111 1111 1111b(2進数)が設定されている。
Next, a description will be given of a case where a physical block address (physical serial number) of a block in which old data (data before rewriting) is written is described as new and old identification information. In the example shown in FIG. 11, the physical block address (physical serial number) of the block in which old data (data before rewriting) has been written in the redundant area of each block is described by the corresponding logical block address (physical serial number). It is described with. Here, in the part describing the old and new identification information, the physical serial number (0 to 1023) of the block in which the old data (data before rewriting) is written is described in 10 bits. Further, in the portion describing the corresponding logical block address, 11 bits (10 bits for indicating the logical serial number (0 to 999) for 1000 blocks allocated to one zone) as described above, 1 bit indicating that no data is written) is allocated. Note that 11 1111 1111b (binary number) is set in the part describing the old and new identification information of the block in which no data is written, and the corresponding logical block address of the block in which no data is written is described in the part. Is set to 111 1111 1111b (binary number) indicating that data is not written.

次に、古いデータ(書替前のデータ)が書込まれていたブロックの物理ブロックアドレス(物理通番)を新旧識別情報とした場合の更新処理(新旧識別情報の更新処理)について図12を参照して説明する。図12は、論理通番0(00 0000 0000b(2進数))に対応するデータの書替処理を行なった場合の新旧識別情報の変化を示す図である。まず、ステップ0(#1)では、物理通番0(00 0000 0000b(2進数))に論理通番0に対応するデータが書込まれている。この後、論理通番0に対応するデータの書替が行なわれる毎に、新旧識別情報も以下のように更新されていく。
ステップ1(#1):
物理通番4(00 0000 0100b(2進数))に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に、新旧識別情報として、古いデータ(書替前のデータ)が書込まれていたブロックの物理通番0(00 0000 0000b(2進数))を記述する。
ステップ2(#2):
物理通番17(00 0001 0001b(2進数))に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に、新旧識別情報として、古いデータ(書替前のデータ)が書込まれていたブロックの物理通番4(00 0000 0100b(2進数))を記述する。
ステップ3(#3):
物理通番175(00 1010 1111b(2進数))に対応するブロックに新たなデータ(書替後のデータ)を書込み、そのブロックの冗長領域に、新旧識別情報として、古いデータ(書替前のデータ)が書込まれていたブロックの物理通番17(00 0001 0001b(2進数))を記述する。
Next, refer to FIG. 12 for the update processing (new / old identification information update processing) when the physical block address (physical serial number) of the block in which old data (data before rewriting) has been written is used as the old / new identification information. To explain. FIG. 12 is a diagram showing changes in the old and new identification information when data rewrite processing corresponding to the logical sequence number 0 (00 0000 0000b (binary number)) is performed. First, in step 0 (# 1), data corresponding to the logical sequence number 0 is written in the physical sequence number 0 (00 0000 0000b (binary number)). Thereafter, each time data corresponding to the logical sequence number 0 is rewritten, the old and new identification information is also updated as follows.
Step 1 (# 1):
New data (data after rewriting) is written in the block corresponding to physical serial number 4 (00 0000 0100b (binary number)), and old data (data before rewriting) is used as new / old identification information in the redundant area of the block. ) Is written in the physical serial number 0 (00 0000 0000b (binary number)) of the block in which it was written.
Step 2 (# 2):
New data (data after rewriting) is written in the block corresponding to the physical serial number 17 (00 0001 0001b (binary number)), and old data (data before rewriting) is used as new / old identification information in the redundant area of the block. ) Is written in the physical serial number 4 (00 0000 0100b (binary number)) of the block in which it was written.
Step 3 (# 3):
New data (data after rewriting) is written in the block corresponding to the physical serial number 175 (00 1010 1111b (binary number)), and old data (data before rewriting) is used as new / old identification information in the redundant area of the block. ) Is written in the physical serial number 17 (00 0001 0001b (binary number)) of the block in which it was written.

次に、古いデータ(書替前のデータ)が書込まれていたブロックの物理ブロックアドレス(物理通番)を、新旧識別情報として記述した場合に、新たなデータ(書替後のデータ)が書込まれているブロックと、古いデータ(書替前のデータ)が書込まれているブロックを、新旧識別情報に基づいて識別する方法について説明する。   Next, when the physical block address (physical serial number) of the block in which the old data (data before rewriting) has been written is described as new and old identification information, new data (data after rewriting) is written. A description will be given of a method for discriminating the block in which the old block (data before rewriting) is written based on the new and old identification information.

図12に示した新旧識別情報の更新処理では、新たなデータ(書替後のデータ)を書込んだブロックの冗長領域に、古いデータ(書替前のデータ)が書込まれているブロックの物理通番(物理ブロックアドレス)を記述している。このように新旧識別情報の更新処理が行なわれれば、同一の論理通番に対応するデータが書込まれているブロックに、新旧識別情報として最新のデータが書込まれているブロックの物理通番(物理ブロックアドレス)が記述されることはない。従って、同一の論理通番に対応するデータが書込まれているブロックが複数存在した場合には、それらのブロックの物理通番(物理ブロックアドレス)と、それらのブロックに記述されている新旧識別情報とを比較すれば、最新のデータが書込まれているブロックを識別することができる。   In the update processing of the old and new identification information shown in FIG. 12, the old data (data before rewriting) is written in the redundant area of the block where new data (data after rewriting) is written. A physical serial number (physical block address) is described. If the new and old identification information is updated in this way, the physical serial number (physical number) of the block in which the latest data is written as the old and new identification information in the block in which the data corresponding to the same logical serial number is written. Block address) is not described. Therefore, when there are a plurality of blocks in which data corresponding to the same logical serial number is written, the physical serial number (physical block address) of those blocks and the old and new identification information described in those blocks Can be used to identify the block in which the latest data is written.

例えば、図13に示した例では、物理通番0のブロックと物理通番4のブロックに、論
理通番0に対応するデータが書込まれている。又、物理通番0のブロックには、新旧識別情報として物理通番1023(11 1111 1111b(2進数))が記述され、物理通番4のブロックには、新旧識別情報として物理通番0(00 0000 0000b(2進数))が記述されている。つまり、論理通番0に対応するデータが書込まれているブロックの物理通番は、
0(00 0000 0000b(2進数))
4(00 0000 0100b(2進数))
であり、論理通番0に対応するデータが書込まれているブロックの冗長領域に新旧識別情報として記述されている物理通番は、
1023(11 1111 1111b(2進数))
0(00 0000 0000b(2進数))
である。ここで、論理通番0に対応するデータが書込まれているブロックの物理通番で、これらのブロックの冗長領域に新旧識別情報として記述されていないのは物理通番4なので、物理通番4のブロックに最新のデータが書込まれている。
For example, in the example shown in FIG. 13, data corresponding to the logical sequence number 0 is written in the physical sequence number 0 block and the physical sequence number 4 block. In addition, the physical sequence number 102 is described as the old and new identification information in the physical sequence number 0 block, and the physical sequence number 0 (00 0000 0000b (as the old and new identification information) is written in the block of the physical sequence number 4. Binary))) is described. That is, the physical serial number of the block in which the data corresponding to the logical serial number 0 is written is
0 (00 0000 0000b (binary number))
4 (00 0000 0100b (binary number))
The physical sequence number described as the old and new identification information in the redundant area of the block in which the data corresponding to the logical sequence number 0 is written is
1023 (11 1111 1111b (binary number))
0 (00 0000 0000b (binary number))
It is. Here, the physical serial number of the block in which the data corresponding to the logical serial number 0 is written, and the physical serial number 4 is not described as the old and new identification information in the redundant area of these blocks. The latest data has been written.

又、物理通番17のブロックにも論理通番0に対応するデータが書込まれていて、そのブロックの冗長領域に新旧識別情報として物理通番4(00 0000 0100b(2進数))が記述されていた場合、論理通番0に対応するデータが書込まれているブロックの物理通番は、
0(00 0000 0000b(2進数))
4(00 0000 0100b(2進数))
17(00 0001 0001b(2進数))
であり、論理通番0に対応するデータが書込まれているブロックの冗長領域に新旧識別情報として記述されている物理通番は、
1023(11 1111 1111b(2進数))
0(00 0000 0000b(2進数))
4(00 0000 0100b(2進数))
である。ここで、論理通番0に対応するデータが書込まれているブロックの物理通番で、これらのブロックの冗長領域に新旧識別情報として記述されていないのは物理通番17なので、物理通番17のブロックに最新のデータが書込まれている。
In addition, data corresponding to the logical sequence number 0 is also written in the block of the physical sequence number 17, and the physical sequence number 4 (00 0000 0100b (binary number)) is described as the old and new identification information in the redundant area of the block. The physical sequence number of the block in which the data corresponding to the logical sequence number 0 is written is
0 (00 0000 0000b (binary number))
4 (00 0000 0100b (binary number))
17 (00 0001 0001b (binary number))
The physical sequence number described as the old and new identification information in the redundant area of the block in which the data corresponding to the logical sequence number 0 is written is
1023 (11 1111 1111b (binary number))
0 (00 0000 0000b (binary number))
4 (00 0000 0100b (binary number))
It is. Here, the physical sequence number of the block in which data corresponding to the logical sequence number 0 is written, and the physical sequence number 17 is not described as the old and new identification information in the redundant area of these blocks. The latest data has been written.

次に、上記の書替処理で、新たなデータ(書替後のデータ)の書込先となる消去済ブロックの検索について図面を参照して説明する。この検索は、例えば、図14(a)に示したような消去済ブロック検索用テーブルを用いて行なわれる。この消去済ブロック検索用テーブルは、ゾーンを構成する各ブロックを、SRAM上の各ビットに対応させ、各ビットの論理値(「0」又は「1」)により、データが書込まれている状態、又はデータが書込まれていない状態を示したものである。ここで、消去済ブロック検索用テーブル上のビットは、ゾーンを構成する1024のブロック(物理通番0〜1023)に対応している。この対応関係については、消去済ブロック検索用テーブル上のビットを、上の行から下の行へ、各行を左から右へ物理通番順(物理ブロックアドレス順)に対応させている。従って、消去済ブロック検索用テーブルの左上のビットが、物理通番0のブロックに対応し、右下のビットが、物理通番1023のブロックに対応する。   Next, with reference to the drawings, a description will be given of searching for an erased block as a writing destination of new data (data after rewriting) in the above rewriting process. This search is performed using, for example, an erased block search table as shown in FIG. In this erased block search table, each block constituting the zone is associated with each bit on the SRAM, and data is written according to the logical value (“0” or “1”) of each bit. Or a state in which no data is written. Here, the bits on the erased block search table correspond to 1024 blocks (physical serial numbers 0 to 1023) constituting the zone. With respect to this correspondence, the bits on the erased block search table are associated with each other in the physical sequence number order (physical block address order) from the upper row to the lower row and from the left to the right. Therefore, the upper left bit of the erased block search table corresponds to the block having the physical sequence number 0, and the lower right bit corresponds to the block having the physical sequence number 1023.

又、図14(a)に示した消去済ブロック検索用テーブルでは、消去済ブロック検索用テーブル上の各ビットに対応したブロックに、データが書込まれている場合又は不良ブロックであることを示すブロックステータスが記述されている場合は、そのビットに「0」を、データが書込まれていない場合(消去済ブロックの場合)は、そのビットに「1」を設定している。尚、この消去済ブロック検索用テーブルは、アドレス変換テーブル(図10に示したテーブル)を作成する際に一緒に作成することができる。例えば、消去済ブロック検索用テーブルを作成するSRAM上の領域に「0」を設定しておき、各ブロックの
冗長領域に対応論理ブロックアドレスも不良ブロックであることを示すブロックステータスも記述されていないときに、そのブロックに対応するビットに「1」を設定するようにすれば、アドレス変換テーブルを作成する際に一緒に作成することができる。つまり、ゾーンを構成するブロックの冗長領域に記述されているデータを読出したときにこの処理を行なえば、消去済ブロックに対応するビットだけに「1」が設定され、消去済ブロックでないブロックに対応するビットは予め設定した「0」のままになる。又、作成後は、消去済ブロックにデータを書込んだときに、そのブロックに対応するビットを「1」から「0」に変更し、データが書込まれているブロックをブロック消去したときに、そのブロックに対応するビットを「0」から「1」に変更する更新処理を逐次行なう必要がある。
The erased block search table shown in FIG. 14A indicates that data is written in a block corresponding to each bit on the erased block search table or that it is a defective block. When the block status is described, “0” is set to the bit, and when the data is not written (in the case of the erased block), “1” is set to the bit. The erased block search table can be created together with the address conversion table (table shown in FIG. 10). For example, “0” is set in the SRAM area for creating the erased block search table, and the corresponding logical block address is not described in the redundant area of each block and the block status indicating that it is a bad block is not described. Sometimes, if the bit corresponding to the block is set to “1”, the address conversion table can be created together. In other words, if this process is performed when the data described in the redundant area of the blocks constituting the zone is read out, only “1” is set to the bit corresponding to the erased block, and this corresponds to the block that is not the erased block. The bit to be maintained remains “0” set in advance. After creation, when data is written to an erased block, the bit corresponding to that block is changed from “1” to “0”, and the block in which data is written is erased. Therefore, it is necessary to sequentially perform update processing for changing the bit corresponding to the block from “0” to “1”.

次に、この消去済ブロック検索用テーブルを用いた消去済ブロックの検索を、図14(b)を参照して説明する。この消去済ブロックの検索では、物理通番0のブロックに対応するビット(一番上の行の、一番左のビット)から、物理通番1023のブロックに対応するビット(一番下の行の、一番右のビット)までを走査していき、消去済ブロックに対応する「1」のビットを検索する。ここで、前記走査は、上の行から下の行へ、各行を左から右へ向かって行なわれる。   Next, retrieval of erased blocks using the erased block search table will be described with reference to FIG. In this erased block search, the bit corresponding to the block with the physical sequence number 1023 (from the leftmost bit in the top row) to the bit corresponding to the block with the physical sequence number 1023 (in the bottom row, (The rightmost bit) is scanned, and a bit of “1” corresponding to the erased block is searched. Here, the scanning is performed from the upper row to the lower row and from the left to the right in each row.

図14(b)に示した消去済ブロック検索用テーブルで、一番上の行の、一番左のビットから走査を開始した場合、上から4番目の行の、左から5番目のビットが「1」なので、ここで検索を終了し、このビットに対応する物理通番28のブロックに、新たなデータ(書替後のデータ)が書込まれる。又、次回の検索は、上から4番目の行の、左から6番目のビットから走査が開始される。更に、このような検索を続けていき、一番下の行の、一番右のビットまで走査が進んだときは、一番上の行の、一番左のビットに戻り走査が続けられる。   In the erased block search table shown in FIG. 14B, when scanning is started from the leftmost bit in the top row, the fifth bit from the left in the fourth row from the top is Since it is “1”, the search is terminated here, and new data (data after rewriting) is written in the block of the physical serial number 28 corresponding to this bit. In the next search, scanning starts from the sixth bit from the left in the fourth row from the top. Further, such a search is continued, and when scanning proceeds to the rightmost bit in the bottom row, scanning returns to the leftmost bit in the top row and scanning is continued.

次に、上記消去済ブロック検索用テーブルを用いて検索した消去済ブロックに、新たなデータ(書替後のデータ)を書込む処理について説明する。この書込み処理では、図1に示したバッファ9に書込みデータを取込んだ後、フラッシュメモリシーケンサブロック12が有するレジスタに、以下のような書込み処理の設定がなされる。
1)内部コマンドとして内部書込みコマンドが、フラッシュメモリシーケンサブロック12内の所定のレジスタに設定される。
2)上記消去済ブロック検索用テーブルを用いて検索された消去済ブロックの物理通番に、ゾーン毎に割当てられているオフセットが加えられ、このオフセットの加算によって生成された物理ブロックアドレスにページ番号に相当する5ビット(32のページを識別するためのビット)が付加されたページのアドレスが、フラッシュメモリシ―ケンサブロック12内の所定のレジスタに設定される。
Next, a process of writing new data (data after rewriting) to the erased block searched using the erased block search table will be described. In this write process, after the write data is taken into the buffer 9 shown in FIG. 1, the following write process is set in the register of the flash memory sequencer block 12.
1) An internal write command is set in a predetermined register in the flash memory sequencer block 12 as an internal command.
2) The offset assigned to each zone is added to the physical sequence number of the erased block retrieved using the erased block search table, and the page number is added to the physical block address generated by the addition of this offset. The page address to which the corresponding 5 bits (bits for identifying 32 pages) are added is set in a predetermined register in the flash memory sequencer block 12.

その後、上記書込み処理の設定に基づいて、フラッシュメモリシーケンサブロック12が処理を実行する。この処理が実行されると、フラッシュメモリインターフェースブロック10から、内部バス14を介してフラッシュメモリ2に内部書込みコマンドを実行するためのコマンド情報やアドレス情報等が供給される。又、バッファ9に保持されている書込みデータも、内部バス14を介してフラッシュメモリ2に供給され、上記フラッシュメモリシ―ケンサブロック12内の所定のレジスタに設定したページにデータが書込まれる。   Thereafter, the flash memory sequencer block 12 executes processing based on the setting of the write processing. When this processing is executed, command information and address information for executing an internal write command are supplied from the flash memory interface block 10 to the flash memory 2 via the internal bus 14. The write data held in the buffer 9 is also supplied to the flash memory 2 via the internal bus 14, and the data is written to a page set in a predetermined register in the flash memory sequencer block 12.

又、上記書込み処理の終了後に、データを書込んだブロックの冗長領域に、新旧識別情報を設定すると共に、対応論理ブロックアドレスを記述する部分にそのブロックに書込んだデータの論理通番を記述する。この冗長領域への書込み処理は、冗長領域に書込むデータを設定するバッファに上記新旧識別情報や論理通番等のデータを設定した後に、フラッシュメモリシ―ケンサブロック12内の所定のレジスタにコマンドやアドレスを設定する
ことにより上述の書込み処理と同様に実行できる。
After the write process is completed, new / old identification information is set in the redundant area of the block in which the data has been written, and the logical sequence number of the data written in the block is described in the portion describing the corresponding logical block address. . This write processing to the redundant area is performed by setting data such as the above-mentioned old / new identification information and logical serial number in a buffer for setting data to be written in the redundant area, and then executing a command or a command in a predetermined register in the flash memory sequencer block 12. By setting the address, it can be executed in the same manner as the above-described writing process.

図1は、本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。FIG. 1 is a block diagram schematically showing a flash memory system according to the present invention. 図2は、フラッシュメモリを構成するメモリセルの構造を概略的に示す断面図である。FIG. 2 is a cross-sectional view schematically showing the structure of the memory cell constituting the flash memory. 図3は、書込状態であるメモリセルを概略的に示す断面図である。FIG. 3 is a cross-sectional view schematically showing a memory cell in a written state. 図4は、フラッシュメモリのアドレス空間の構造を概略的に示す図である。FIG. 4 is a diagram schematically showing the structure of the address space of the flash memory. 図5は、1024のブロックでゾーンを構成した例を示す図である。FIG. 5 is a diagram showing an example in which a zone is composed of 1024 blocks. 図6は、各ゾーンと論理ブロックアドレス空間との対応関係を示す図である。FIG. 6 is a diagram showing the correspondence between each zone and the logical block address space. 図7は、冗長領域に書込まれている新旧識別情報と対応論理ブロックアドレスを示す図である。FIG. 7 is a diagram showing old and new identification information and corresponding logical block addresses written in the redundant area. 図8は、新旧識別情報の更新処理を説明するための図である。FIG. 8 is a diagram for explaining the update processing of the new and old identification information. 図9は、冗長領域に書込まれている新旧識別情報と対応論理ブロックアドレスを示す図である。FIG. 9 is a diagram showing old and new identification information and corresponding logical block addresses written in the redundant area. 図10は、論理ブロックアドレスと物理ブロックアドレスの対応関係と、論理ブロックアドレスと新旧識別情報の対応関係を記述したテーブルを示す図である。FIG. 10 is a diagram showing a table describing the correspondence between logical block addresses and physical block addresses and the correspondence between logical block addresses and old and new identification information. 図11は、冗長領域に書込まれている新旧識別情報と対応論理ブロックアドレスを示す図である。FIG. 11 is a diagram showing old and new identification information and corresponding logical block addresses written in the redundant area. 図12は、新旧識別情報の更新処理を説明するための図である。FIG. 12 is a diagram for explaining the update processing of the new and old identification information. 図13は、冗長領域に書込まれている新旧識別情報と対応論理ブロックアドレスを示す図である。FIG. 13 is a diagram showing old and new identification information and corresponding logical block addresses written in the redundant area. 図14は、消去済ブロック検索用テーブルの例を示す概念図である。FIG. 14 is a conceptual diagram showing an example of an erased block search table.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2、35、36 フラッシュメモリ
3 コントローラ
4 ホストコンピュータ
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
16 メモリセル
17 P型半導体基板
18 ソース拡散領域
19 ドレイン拡散領域
20 トンネル酸化膜
21 フローティングゲート電極
22 絶縁膜
23 コントロールゲート電極
24 チャネル
25 ユーザ領域
26 冗長領域
1 Flash memory system 2, 35, 36 Flash memory 3 Controller 4 Host computer 5 Host interface control block 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 Flash memory sequencer block 13 External bus 14 Internal bus 16 Memory cell 17 P-type semiconductor substrate 18 Source diffusion region 19 Drain diffusion region 20 Tunnel oxide film 21 Floating gate electrode 22 Insulating film 23 Control gate electrode 24 Channel 25 User region 26 Redundant region

Claims (7)

フラッシュメモリに対するアクセスを制御するアクセス制御機能と、
ホストシステム側から与えられる論理ブロックアドレスと、フラッシュメモリ内の物理ブロックアドレスの対応関係を管理するアドレス管理機能と、
フラッシュメモリの冗長領域に新旧識別情報を記述する新旧識別情報設定機能と、
同一の論理ブロックアドレスに対応する最新のデータが書込まれているブロックを、前記新旧識別情報に基づいて識別する新旧識別機能を備えたことを特徴とするメモリコントローラ。
An access control function for controlling access to the flash memory;
An address management function for managing the correspondence between the logical block address given from the host system side and the physical block address in the flash memory;
New and old identification information setting function for writing old and new identification information in the redundant area of flash memory,
A memory controller comprising a new / old identification function for identifying a block in which the latest data corresponding to the same logical block address is written based on the new / old identification information.
前記新旧識別情報が、同一の論理ブロックアドレスに対応するデータを書替える毎に増加又は減少する数値情報であることを特徴とする請求項1記載のメモリコントローラ。 2. The memory controller according to claim 1, wherein the old and new identification information is numerical information that increases or decreases every time data corresponding to the same logical block address is rewritten. 前記新旧識別情報が、同一の論理ブロックアドレスに対応する前データが格納されていたブロックの物理ブロックアドレスに基づく情報であることを特徴とする請求項1記載のメモリコントローラ。 2. The memory controller according to claim 1, wherein the old and new identification information is information based on a physical block address of a block in which previous data corresponding to the same logical block address is stored. 請求項1乃至3記載のいずれか1項記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。 A flash memory system comprising the memory controller according to any one of claims 1 to 3 and a flash memory. フラッシュメモリのユーザー領域にデータを書込む書込み処理と、
フラッシュメモリの冗長領域に新旧識別情報を設定する設定処理と
前記新旧識別情報に基づいて同一の論理ブロックアドレスに対応する最新のデータが書込まれているブロックを識別する識別処理を含むフラッシュメモリの制御方法。
Write processing to write data to the user area of flash memory,
A flash memory including a setting process for setting new and old identification information in a redundant area of the flash memory and an identification process for identifying a block in which the latest data corresponding to the same logical block address is written based on the new and old identification information. Control method.
前記新旧識別情報が、同一の論理ブロックアドレスに対応するデータを書替える毎に増加又は減少する数値情報であることを特徴とする請求項5記載のフラッシュメモリの制御方法。 6. The flash memory control method according to claim 5, wherein the old and new identification information is numerical information that increases or decreases each time data corresponding to the same logical block address is rewritten. 前記新旧識別情報が、同一の論理ブロックアドレスに対応する前データが格納されていたブロックの物理ブロックアドレスに基づく情報であることを特徴とする請求項5記載のフラッシュメモリの制御方法。 6. The flash memory control method according to claim 5, wherein the new and old identification information is information based on a physical block address of a block in which previous data corresponding to the same logical block address is stored.
JP2003432516A 2003-12-26 2003-12-26 Memory controller, flash memory system therewith, and method for controlling flash memory Pending JP2005190288A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003432516A JP2005190288A (en) 2003-12-26 2003-12-26 Memory controller, flash memory system therewith, and method for controlling flash memory
US11/023,746 US7315870B2 (en) 2003-12-26 2004-12-27 Memory controller, flash memory system, and method for recording data on flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003432516A JP2005190288A (en) 2003-12-26 2003-12-26 Memory controller, flash memory system therewith, and method for controlling flash memory

Publications (1)

Publication Number Publication Date
JP2005190288A true JP2005190288A (en) 2005-07-14

Family

ID=34790196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003432516A Pending JP2005190288A (en) 2003-12-26 2003-12-26 Memory controller, flash memory system therewith, and method for controlling flash memory

Country Status (2)

Country Link
US (1) US7315870B2 (en)
JP (1) JP2005190288A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008084438A (en) * 2006-09-27 2008-04-10 Nec Electronics Corp Semiconductor memory device, nonvolatile semiconductor memory device, and operation method otherefor
US7685356B2 (en) 2006-05-30 2010-03-23 Tdk Corporation Chronological identification in flash memory using cyclic numbers
JP2011123560A (en) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd Flash disk device
US8176236B2 (en) 2009-02-19 2012-05-08 Tdk Corporation Memory controller, memory system with memory controller, and method of controlling flash memory
US8200892B2 (en) 2009-02-09 2012-06-12 Tdk Corporation Memory controller, memory system with memory controller, and method of controlling flash memory
JP2014139737A (en) * 2013-01-21 2014-07-31 Dainippon Printing Co Ltd Information recording medium, data reading/wiring method and data reading/writing program
CN116149549A (en) * 2022-12-29 2023-05-23 深圳大普微电子科技有限公司 Cold data identification method and flash memory device

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186975A1 (en) * 2003-03-20 2004-09-23 Texas Instruments Incorporated Flash memory data structure and methods of accessing thereof
US20080005449A1 (en) * 2006-07-03 2008-01-03 Phison Electronics Corp. Generalized flash memory and method thereof
JP2008084184A (en) * 2006-09-28 2008-04-10 Toshiba Corp Memory controller
US7694105B2 (en) * 2007-08-22 2010-04-06 Hitachi Global Storage Technologies Netherlands, B.V. Data storage systems that implement sector sets
US8239612B2 (en) * 2007-09-27 2012-08-07 Tdk Corporation Memory controller, flash memory system with memory controller, and control method of flash memory
US9053005B2 (en) * 2008-01-02 2015-06-09 Micron Technology, Inc. Recycled version number values in flash memory
JP2010020586A (en) * 2008-07-11 2010-01-28 Nec Electronics Corp Data processing device
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
JP4874368B2 (en) 2009-06-22 2012-02-15 株式会社日立製作所 Storage system management method and computer using flash memory
US8176234B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Multi-write coding of non-volatile memories
US8176235B2 (en) * 2009-12-04 2012-05-08 International Business Machines Corporation Non-volatile memories with enhanced write performance and endurance
US8769374B2 (en) 2010-10-13 2014-07-01 International Business Machines Corporation Multi-write endurance and error control coding of non-volatile memories
US9141309B1 (en) * 2012-03-29 2015-09-22 Amazon Technologies, Inc. Versioning-capable data storage devices
US9519592B2 (en) * 2012-11-30 2016-12-13 Oracle International Corporation Stale pointer detection with overlapping versioned memory
US9069660B2 (en) * 2013-03-15 2015-06-30 Apple Inc. Systems and methods for writing to high-capacity memory
US11550727B2 (en) * 2020-06-18 2023-01-10 Micron Technology, Inc. Zone-aware memory management in memory subsystems

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110300A (en) * 1997-09-30 1999-04-23 Sony Corp External storage device and device and method for data processing
JPH11110306A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device, system and method for processing data
JPH11110142A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device and data processing method
JPH11110305A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device, data processing system and method for writing and reading data
JPH11110141A (en) * 1997-09-30 1999-04-23 Sony Corp External storage device and data processing method
JP2001043143A (en) * 1997-09-30 2001-02-16 Sony Corp Storage device, data processing system, and writing and reading method for data
JP2002108722A (en) * 2001-07-30 2002-04-12 Sony Corp Storage device
WO2002058074A2 (en) * 2001-01-19 2002-07-25 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2003015929A (en) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd Non-volatile memory control method
JP2003036209A (en) * 2001-07-25 2003-02-07 Sony Corp Nonvolatile memory and data rewriting method thereof
JP2003167795A (en) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd Flash memory management method
JP2003208352A (en) * 2002-01-17 2003-07-25 Fujitsu Ltd Flash memory with limited number of writes and wear leveling
WO2003067437A1 (en) * 2002-02-06 2003-08-14 Sandisk Corporation Memory mapping device utilizing sector pointers
JP2003331586A (en) * 2002-05-13 2003-11-21 Nec Corp Data storing method
JP2004070799A (en) * 2002-08-08 2004-03-04 Sony Corp Recording device, recording method and program
JP2004152331A (en) * 2002-10-28 2004-05-27 Sharp Corp Storage device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535369A (en) * 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
JP4772214B2 (en) * 2001-06-08 2011-09-14 ルネサスエレクトロニクス株式会社 Nonvolatile memory device and rewrite control method thereof

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110306A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device, system and method for processing data
JPH11110142A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device and data processing method
JPH11110305A (en) * 1997-09-30 1999-04-23 Sony Corp Storage device, data processing system and method for writing and reading data
JPH11110141A (en) * 1997-09-30 1999-04-23 Sony Corp External storage device and data processing method
JP2001043143A (en) * 1997-09-30 2001-02-16 Sony Corp Storage device, data processing system, and writing and reading method for data
JPH11110300A (en) * 1997-09-30 1999-04-23 Sony Corp External storage device and device and method for data processing
WO2002058074A2 (en) * 2001-01-19 2002-07-25 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP2003015929A (en) * 2001-06-28 2003-01-17 Matsushita Electric Ind Co Ltd Non-volatile memory control method
JP2003036209A (en) * 2001-07-25 2003-02-07 Sony Corp Nonvolatile memory and data rewriting method thereof
JP2002108722A (en) * 2001-07-30 2002-04-12 Sony Corp Storage device
JP2003167795A (en) * 2001-11-16 2003-06-13 Samsung Electronics Co Ltd Flash memory management method
JP2003208352A (en) * 2002-01-17 2003-07-25 Fujitsu Ltd Flash memory with limited number of writes and wear leveling
WO2003067437A1 (en) * 2002-02-06 2003-08-14 Sandisk Corporation Memory mapping device utilizing sector pointers
JP2003331586A (en) * 2002-05-13 2003-11-21 Nec Corp Data storing method
JP2004070799A (en) * 2002-08-08 2004-03-04 Sony Corp Recording device, recording method and program
JP2004152331A (en) * 2002-10-28 2004-05-27 Sharp Corp Storage device

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685356B2 (en) 2006-05-30 2010-03-23 Tdk Corporation Chronological identification in flash memory using cyclic numbers
JP2008084438A (en) * 2006-09-27 2008-04-10 Nec Electronics Corp Semiconductor memory device, nonvolatile semiconductor memory device, and operation method otherefor
US8200892B2 (en) 2009-02-09 2012-06-12 Tdk Corporation Memory controller, memory system with memory controller, and method of controlling flash memory
US8176236B2 (en) 2009-02-19 2012-05-08 Tdk Corporation Memory controller, memory system with memory controller, and method of controlling flash memory
JP2011123560A (en) * 2009-12-08 2011-06-23 Oki Electric Industry Co Ltd Flash disk device
JP2014139737A (en) * 2013-01-21 2014-07-31 Dainippon Printing Co Ltd Information recording medium, data reading/wiring method and data reading/writing program
CN116149549A (en) * 2022-12-29 2023-05-23 深圳大普微电子科技有限公司 Cold data identification method and flash memory device

Also Published As

Publication number Publication date
US20050162930A1 (en) 2005-07-28
US7315870B2 (en) 2008-01-01

Similar Documents

Publication Publication Date Title
JP2005190288A (en) Memory controller, flash memory system therewith, and method for controlling flash memory
US7330995B2 (en) Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process
JP5035636B2 (en) Moving sectors in blocks in flash memory
JP4058322B2 (en) Memory card
US9075740B2 (en) Memory system
US6865658B2 (en) Nonvolatile data management system using data segments and link information
JP2006018373A (en) Memory controller, flash memory system and control method for flash memory
JP4433792B2 (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
JP4173410B2 (en) Memory controller and flash memory system including the memory controller
JP2005316793A (en) Flash memory system and control method of flash memory
JP2008112455A (en) Memory card
JP4461754B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4419525B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4213053B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4203994B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4194473B2 (en) Memory controller and flash memory system including the memory controller
JP4068594B2 (en) Flash memory controller, flash memory system, and flash memory control method
JP4251950B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4222879B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2003337757A (en) Memory controller, flash memory system, and controlling method for the same
JP2006048746A (en) Memory card
JP2005293177A (en) Memory controller and flash memory system

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080826

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090113