[go: up one dir, main page]

JP2008112335A - MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD - Google Patents

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

Info

Publication number
JP2008112335A
JP2008112335A JP2006295343A JP2006295343A JP2008112335A JP 2008112335 A JP2008112335 A JP 2008112335A JP 2006295343 A JP2006295343 A JP 2006295343A JP 2006295343 A JP2006295343 A JP 2006295343A JP 2008112335 A JP2008112335 A JP 2008112335A
Authority
JP
Japan
Prior art keywords
data
physical
flash memory
block
chip
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006295343A
Other languages
Japanese (ja)
Other versions
JP4569554B2 (en
Inventor
Naoki Mukoda
直樹 向田
Akio Azuma
明生 東
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 JP2006295343A priority Critical patent/JP4569554B2/en
Publication of JP2008112335A publication Critical patent/JP2008112335A/en
Application granted granted Critical
Publication of JP4569554B2 publication Critical patent/JP4569554B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】フラッシュメモリの1ページの容量が増加しても、処理時間とバッファの容量を増加させることなく、バッファを介した記憶データの移動処理を行うこと。
【解決手段】同じ物理ゾーンに属する物理ブロック間で記憶データを移動させるときに
、物理ゾーンに構成する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出し、読み出されたデータをデータ蓄積手段に蓄積し、蓄積したデータを、第1の物理ブロックと同一の物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する。この処理で、第1のフラッシュメモリ内のデータレジスタからのデータの読み出しと、第2のフラッシュメモリ内のデータレジスタへのデータの転送を、交互に又は並行して行うことにより、データ蓄積手段に1ページ分のデータを蓄積せずに、第1の物理ブロックから第1の物理ブロックと異なるフラッシュメモリ内の物理ブロックである第2の物理ブロックにデータを移動させる。
【選択図】図8
Even if the capacity of one page of a flash memory is increased, storage data is moved through the buffer without increasing the processing time and the capacity of the buffer.
When storage data is moved between physical blocks belonging to the same physical zone, the data is read and read from the data register in the first flash memory including the first physical block constituting the physical zone. The stored data is stored in the data storage means, and the stored data is transferred to the data register in the second flash memory including the second physical block belonging to the same physical zone as the first physical block. In this process, data reading from the data register in the first flash memory and data transfer to the data register in the second flash memory are performed alternately or in parallel. Data is moved from the first physical block to a second physical block that is a physical block in the flash memory different from the first physical block without accumulating data for one page.
[Selection] Figure 8

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, flash memories have been widely adopted as semiconductor memories used in memory systems such as memory cards and silicon disks. A flash memory is a kind of nonvolatile memory. Data stored in the flash memory is required to be retained even when power is not supplied.

NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。NAND型フラッシュメモリは、データレジスタとメモリセルアレイとで構成され、データレジスタとメモリセルアレイとの間では、ページ単位でデータの書き込み又は読み出しが行われる。メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成され、一方のゲートはコントロールゲート、他方のゲートはフローティングゲートとそれぞれ呼ばれている。このフローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。また、メモリセルを消去状態に対応する論理値「1」から書込状態に対応する論理値「0」に変更させる場合は、メモリセル単位で変更させることができるが、書き込み状態から消去状態に変更させる場合は、ブロック(例えば、64ページのデータ領域)単位でしか変更させることができない。以下、NAND型フラッシュメモリにおける消去処理の単位であるブロックを物理ブロックと言う。   A NAND flash memory is a type of flash memory that is particularly frequently used in the above memory system. A NAND flash memory is composed of a data register and a memory cell array, and data is written or read in units of pages between the data register and the memory cell array. A memory cell constituting the memory cell array is composed of a MOS transistor having two gates. One gate is called a control gate and the other gate is called a floating gate. Data is written or erased by injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate. Further, when the memory cell is changed from the logical value “1” corresponding to the erased state to the logical value “0” corresponding to the written state, the memory cell can be changed in units of memory cells. When changing, it can be changed only in units of blocks (for example, a data area of 64 pages). Hereinafter, a block which is a unit of erasure processing in the NAND flash memory is referred to as a physical block.

したがって、物理ブロック内の複数のページに記憶されているデータの一部を書き換える場合には、データが書き込まれていない空きブロック(総てのメモリセルが消去状態にある消去済ブロック)を1つ選択し、この空きブロックに書き換え後のデータを書き込むと共に、書き換え前のデータと同一ブロックに記憶されている書き換え対象でないデータをこの空きブロックにコピーしなければならない。このデータ移動処理は、フラッシュメモリからデータを読み出してメモリコントローラ内のバッファに蓄積し、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込む処理(以下、データ転送処理という)または、フラッシュメモリ内でのデータのコピーであるコピーバック処理(メモリセルアレイからデータレジスタに読み出したデータを別のメモリセルアレイに書き込む処理)によって行われる。   Therefore, when a part of data stored in a plurality of pages in a physical block is rewritten, one empty block in which no data is written (one erased block in which all memory cells are in an erased state) is stored. It is necessary to select and write the rewritten data in this empty block, and copy the data not to be rewritten stored in the same block as the data before rewriting to this empty block. In this data movement process, data is read from the flash memory and accumulated in a buffer in the memory controller, and the data accumulated in the buffer in the controller is written to the flash memory (hereinafter referred to as data transfer process) or in the flash memory. Is performed by a copy back process (a process of writing data read from the memory cell array to the data register to another memory cell array).

また、NAND型フラッシュメモリは、オーバプログラム又はディスターブ現象により、記憶されているデータに誤りが生じる場合がある。このため、特許文献1では、ユーザ領域に記憶されているデータに対応する誤り訂正符号を同一ページの冗長領域に記憶させておき、データの読み出しの際に、該データに対応する誤り訂正符号に基づき、読み出したデータに含まれる誤りを検出、訂正すると共に、誤りが訂正されたデータを空きブロックに書き込んでいる。つまり、この訂正処理では、読み出したデータをメモリコントローラ内のバッファに蓄積し、誤りを訂正した後、空きブロックに転送している。   In NAND flash memory, errors may occur in stored data due to overprogramming or disturb phenomenon. For this reason, in Patent Document 1, an error correction code corresponding to data stored in the user area is stored in a redundant area of the same page, and the error correction code corresponding to the data is read when data is read. Based on this, an error included in the read data is detected and corrected, and the data in which the error is corrected is written in an empty block. That is, in this correction process, the read data is stored in a buffer in the memory controller, corrected for errors, and then transferred to an empty block.

[データ転送処理の説明]
図9は、データ転送処理の概要を示す図である。データ転送処理は、メモリコントローラ内のバッファを介したデータ移動処理であり、以下のステップを繰り返すことで行われる。
(S91)メモリコントローラから与えられた情報に基づいて、転送元のページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S92)データレジスタから1ページ分のデータが順次読み出され、コントローラ内のバッファに蓄積される。
(S93)コントローラ内のバッファに蓄積された1ページ分のデータが、データレジスタに転送される。
(S94)S93の転送の際にメモリコントローラから与えられた情報に基づいて、転送先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。このようにして、1ページ単位でデータ転送を行っている。
[Description of data transfer process]
FIG. 9 is a diagram showing an outline of the data transfer process. The data transfer process is a data movement process via a buffer in the memory controller, and is performed by repeating the following steps.
(S91) Based on the information given from the memory controller, the memory cell of the transfer source page is selected, and data is copied from the selected memory cell to the data register.
(S92) One page of data is sequentially read from the data register and stored in a buffer in the controller.
(S93) One page of data stored in the buffer in the controller is transferred to the data register.
(S94) Based on the information given from the memory controller during the transfer in S93, the memory cell of the transfer destination page is selected, and the data in the data register is copied to the selected memory cell. In this way, data transfer is performed in units of one page.

一方、1ページが複数セクタ(1セクタは512バイト)の領域で構成されている場合、1ページ単位ではないデータ転送の方法も知られている。この方法では、例えば1ページ分のデータをメモリセルからデータレジスタに複写し、このデータレジスタに保持されているデータを1セクタ単位で読み出しメモリコントローラ内のバッファに蓄積する。バッファに蓄積された1セクタのデータをデータレジスタに転送し、データレジスタからメモリセルに複写する。この処理を、1ページに含まれるセクタ数分繰り返すことにより、1ページ分のデータ転送処理が終了する。この場合、バッファに蓄積されるデータは1セクタ単位であるため、バッファの容量が少なく済むという利点を有している。しかしながら、このデータ転送の方法では、読み出しと書き込みのときに同一のデータレジスタがアクセスされ、データレジスタにデータを転送するときには、データレジスタに保持されていたデータはクリアされるため、読み出しのときに毎回メモリセルからデータレジスタへの複写を行わなければならない。従って、このデータ転送の方法では、フラッシュメモリ内のメモリセルとデータレジスタとの複写処理の回数が増加し、データ転送処理の処理時間が長くなってしまう。   On the other hand, when one page is composed of an area of a plurality of sectors (one sector is 512 bytes), a data transfer method that is not in units of one page is also known. In this method, for example, data for one page is copied from a memory cell to a data register, and data held in the data register is read out in units of one sector and stored in a buffer in the memory controller. The data of one sector stored in the buffer is transferred to the data register and copied from the data register to the memory cell. By repeating this process for the number of sectors included in one page, the data transfer process for one page is completed. In this case, since the data stored in the buffer is in units of one sector, the buffer capacity can be reduced. However, in this data transfer method, the same data register is accessed during reading and writing, and when data is transferred to the data register, the data held in the data register is cleared. Each time a copy from the memory cell to the data register must be made. Therefore, in this data transfer method, the number of copying processes between the memory cell and the data register in the flash memory increases, and the processing time of the data transfer process becomes longer.

特開2004−272476号公報JP 2004-272476 A

フラッシュメモリに記憶されているデータの移動は、データ転送処理とコピーバック処理のいずれの処理方法でも行うことができるが、コピーバック処理では、移動の際にデータに含まれる誤りを訂正することができない。従って、移動の際にデータに含まれる誤りを訂正するときには、コピーバック処理より処理時間の長いデータ転送処理を行わなければならない。   The data stored in the flash memory can be moved by either the data transfer process or the copy back process. In the copy back process, errors contained in the data can be corrected during the move. Can not. Therefore, when correcting an error included in data at the time of movement, data transfer processing having a longer processing time than copy back processing must be performed.

又、フラッシュメモリの容量が増加するに従い、1ページの容量が増加している。例えば小ブロック構成では、1ページが512(ユーザ領域)+16(冗長領域)バイトであったのが、大ブロック構成では、1ページが2048(ユーザ領域)+64(冗長領域)バイトと4倍に増加した。さらに、1ページが4096(ユーザ領域)+128バイト(冗長領域)であるフラッシュメモリの出荷が予告されている。従って、1ページ分のデータをメモリコントローラ内のバッファに蓄積するデータ転送処理を行うためには、バッファの容量を増加させなければならない。一方、1セクタ単位の転送を繰返すデータ転送処理では処理時間が長くなってしまう。   Further, as the capacity of the flash memory increases, the capacity of one page increases. For example, in the small block configuration, one page was 512 (user area) + 16 (redundant area) bytes, but in the large block structure, one page increased to 2048 (user area) + 64 (redundant area) bytes. did. Furthermore, the shipment of flash memory in which one page is 4096 (user area) +128 bytes (redundant area) has been announced. Therefore, in order to perform data transfer processing for storing data for one page in a buffer in the memory controller, the capacity of the buffer must be increased. On the other hand, the processing time becomes long in the data transfer processing in which the transfer in units of one sector is repeated.

したがって、本発明は、データ転送処理の処理時間とバッファの容量を増加させることなく、データ転送処理を行うことが可能なメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。   Therefore, the present invention provides a memory controller capable of performing data transfer processing without increasing the processing time and buffer capacity of the data transfer processing, a flash memory system including the memory controller, and a flash memory control method. The purpose is to do.

上記目的を達成するために、本発明によるメモリコントローラは、複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するメモリコントローラであって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出し手段と、前記読出し手段によって読み出されたデータを蓄積する蓄積手段と、前記蓄積手段に蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送手段と、前記第1の物理ブロックと前記第2の物理ブロックが異なるフラッシュメモリに含まれるように前記第2の物理ブロックを選択する選択手段とを備え、前記読出し手段による読み出しと前記転送手段による転送を、交互に又は並行して行うことにより、前記蓄積手段に1ページ分のデータを蓄積せずに前記第1の物理ブロックから前記第2の物理ブロックにデータを移動させることを特徴とする。   To achieve the above object, a memory controller according to the present invention is a memory controller that controls access to a physical zone composed of physical blocks in a plurality of flash memories, and is a first physical controller belonging to the physical zone. Read means for reading data from a data register in a first flash memory including a block, storage means for storing data read by the read means, and data stored in the storage means Transfer means for transferring to a data register in a second flash memory including a second physical block belonging to the same physical zone as the physical block, and a flash memory in which the first physical block and the second physical block are different Selecting means for selecting the second physical block to be included, By performing the reading by the reading unit and the transfer by the transfer unit alternately or in parallel, the storage unit does not store one page of data from the first physical block to the second physical block. It is characterized by moving data.

又、前記選択手段は、前記物理ゾーンに属する空きブロックをフラッシュメモリ毎に検索することのできる空きブロック検索手段を備えていることが好ましい。   Further, it is preferable that the selection unit includes a free block search unit capable of searching for a free block belonging to the physical zone for each flash memory.

上記目的を達成するために、本発明によるフラッシュメモリシステムは、前記メモリコントローラのいずれか1つと複数チップのフラッシュメモリを備えている。   To achieve the above object, a flash memory system according to the present invention includes any one of the memory controllers and a multi-chip flash memory.

上記目的を達成するために、本発明によるフラッシュメモリの制御方法は、複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するフラッシュメモリの制御方法であって、前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出しステップと、前記読出しステップで読み出されたデータを蓄積する蓄積ステップと、前記蓄積ステップで蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送ステップとを有し、前記読出しステップによる読み出しと前記転送ステップによる転送を、交互に又は並行して行うことにより、前記蓄積ステップで1ページ分のデータを蓄積せずに前記第1の物理ブロックから該第1の物理ブロックと異なるフラッシュメモリ内の前記第2の物理ブロックにデータを移動させることを特徴とする。   To achieve the above object, a flash memory control method according to the present invention is a flash memory control method for controlling access to a physical zone composed of physical blocks in a plurality of flash memories, wherein the physical zone A read step for reading data from a data register in the first flash memory including the first physical block belonging to the storage step, an accumulation step for accumulating data read in the read step, and data accumulated in the accumulation step Transferring to a data register in a second flash memory including a second physical block belonging to the same physical zone as the first physical block, and reading by the reading step and the transferring step By performing the transfer according to the above alternately or in parallel, Characterized in that for moving data from the first physical block without storing the data of one page in the second physical block in different flash memory with the first physical block by the product step.

本発明によれば、複数個(複数チップ)のフラッシュメモリ内の物理ブロックでゾーンを構成し、このゾーンに含まれる物理ブロック間で記憶データを移動させるときに、移動元の物理ブロックと移動先の物理ブロックが異なるフラッシュメモリ(異なるチップのフラッシュメモリ)になるようにしたので、メモリコントローラ内に1ページ分の記憶データを蓄積できるようなバッファを設けずに、かつデータレジスタとメモリセルとの間での複写の回数を増加させずに、メモリコントローラ内のバッファを介した記憶データの移動を行うことができる。   According to the present invention, when a zone is constituted by a plurality of (multiple chips) physical blocks in a flash memory and storage data is moved between physical blocks included in the zone, the movement source physical block and the movement destination are moved. Since the physical blocks are different flash memories (flash memories of different chips), a buffer that can store storage data for one page is not provided in the memory controller, and the data register and the memory cell The stored data can be moved through the buffer in the memory controller without increasing the number of times of copying.

以下、図面に基づき、本発明の実施形態について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

[フラッシュメモリシステム1の説明]
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
[Description of flash memory system 1]
FIG. 1 is a block diagram schematically showing the flash memory system 1. As shown in FIG. 1, the flash memory system 1 includes a flash memory 2 and a memory controller 3 that controls the flash memory 2.

なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。   The flash memory system 1 is connected to the host system 4 via the external bus 13. The host system 4 includes a CPU (Central Processing Unit) for controlling the entire operation of the host system 4, a companion chip for transferring information to and from the flash memory system 1, and the like. The host system 4 may be various information processing apparatuses such as a personal computer and a digital still camera that process various types of information such as characters, sounds, and image information.

[フラッシュメモリ2の説明]
図2は、NAND型フラッシュメモリのブロック(以下、フラッシュメモリ内のブロックを物理ブロックと言う。)とページの関係を示す説明図である。物理ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリとしては、小ブロック構成のフラッシュメモリと、大ブロック構成のフラッシュメモリとがある。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。また、大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されている。尚、本実施形態のでは、フラッシュメモリ2が大ブロック構成であるものとして説明する。
[Description of flash memory 2]
FIG. 2 is an explanatory diagram showing the relationship between a NAND flash memory block (hereinafter, a block in the flash memory is referred to as a physical block) and a page. The physical block and page configurations differ depending on the specifications of the flash memory, but general flash memories include a flash memory having a small block configuration and a flash memory having a large block configuration. In the small block configuration, as shown in FIG. 2A, one block includes 32 pages (P0 to P31), and each page includes a 512-byte user area and a 16-byte redundant area. In the large block configuration, as shown in FIG. 2B, one block is composed of 64 pages (P0 to P63), and each page is composed of a 2048-byte user area and a 64-byte redundant area. Yes. In the present embodiment, the flash memory 2 is described as having a large block configuration.

大ブロック構成の場合、各ページのユーザ領域には4セクタ(1セクタは、512バイト)分のデータが記憶されるため、1セクタ分の領域をサブページとすれば、各ページは4個のサブページで構成され、各物理ブロックは256個のサブページで構成されている。一方、小ブロック構成の場合、各ページのユーザ領域には1セクタ分のデータが記憶されるため、サブページはページと同じになり、各物理ブロックは32個のサブページで構成されている。   In the case of a large block configuration, data for 4 sectors (512 bytes for one sector) is stored in the user area of each page. Therefore, if the area for 1 sector is a subpage, each page has 4 Each physical block is composed of 256 subpages. On the other hand, in the case of the small block configuration, since data for one sector is stored in the user area of each page, the subpage is the same as the page, and each physical block is configured by 32 subpages.

ここで、ユーザ領域は、主に、ホストシステム4から供給されるデータが記憶される領域であり、冗長領域は、誤り訂正符号、論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロック11によって生成される。   Here, the user area is mainly an area in which data supplied from the host system 4 is stored, and the redundant area is an area in which additional data such as error correction code, logical address information and block status is stored. is there. The error correction code is additional data for detecting and correcting an error included in the data stored in the user area, and is generated by an ECC block 11 described later.

論理アドレス情報は、物理ブロックにデータが記憶されている場合に書き込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。なお、物理ブロックにデータが記憶されていない場合は、論理アドレス情報が書き込まれないので、論理アドレス情報が書き込まれているか否かで、そのブロックが空きブロック(消去済ブロック)であるか否かを判断することができる。つまり、論理アドレス情報が書き込まれていない場合は、空きブロック(消去済ブロック)であると判断される。   The logical address information is written when data is stored in the physical block, and indicates information related to the logical address of the data stored in the physical block. If no data is stored in the physical block, the logical address information is not written. Therefore, whether the block is an empty block (erased block) depending on whether the logical address information is written. Can be judged. That is, if logical address information is not written, it is determined that the block is an empty block (erased block).

ブロックステータスは、その物理ブロックが不良ブロック(正常にデータの書き込み等を行うことができない物理ブロック)であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。   The block status is a flag indicating whether or not the physical block is a bad block (a physical block in which data cannot be normally written), and when the physical block is determined to be a bad block. Is set with a flag indicating that it is a bad block.

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

マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。   The microprocessor 6 controls the overall operation of the controller 3 in accordance with a program stored in the ROM 12.

ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド(ホストシステム4からフラッシュメモリシステム3に与えられるコマンド)等の授受を行う。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。   The host interface block 7 exchanges data, address information, status information, external commands (commands given from the host system 4 to the flash memory system 3) and the like with the host system 4. Data or the like supplied from the host system 4 to the flash memory system 1 is taken into the flash memory system 1 (for example, the buffer 9) using the host interface block 7 as an entrance. Data supplied from the flash memory system 1 to the host system 4 is supplied to the host system 4 through the host interface block 7 as an exit.

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

バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。   The buffer 9 temporarily stores data read from the flash memory 2 and data to be written to the flash memory 2. That is, data read from the flash memory 2 is held in the buffer 9 until the host system 4 can receive the data, and data to be written to the flash memory 2 is stored until the flash memory 2 becomes writable. It is held in the buffer 9.

フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理を制御するブロックである。書き込み処理や読み出し処理を実行するときの一連の制御動作は、ROM12に記憶されている一連の制御動作を指示する情報に基づいて実行される。   The flash memory interface block 10 is a block that controls writing processing from the buffer 9 to the flash memory 2 and reading processing from the flash memory 2 to the buffer 9. A series of control operations when executing the writing process and the reading process are executed based on information instructing a series of control operations stored in the ROM 12.

ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、フラッシュメモリ2から読み出したデータに付加された誤り訂正符号(ECC)に基づいて、読み出したデータに含まれる誤りを検出・訂正する。   The ECC block 11 generates an error correcting code (ECC) to be added to data to be written to the flash memory 2, and based on the error correcting code (ECC) added to the data read from the flash memory 2. Then, an error included in the read data is detected and corrected.

ROM12は、マイクロプロセッサ6によって実行される処理の手順を定義するプログラム等を格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、以下で説明するアドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。   The ROM 12 is a non-volatile storage element that stores a program or the like that defines the procedure of processing executed by the microprocessor 6. Specifically, the ROM 12 stores, for example, a program that defines a processing procedure such as creation of an address conversion table described below.

[ゾーンの構成の説明]
フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。
[Description of zone configuration]
As the storage capacity of flash memory has been increasing, in order to smoothly manage the storage area of the flash memory whose capacity has been increased, a method of managing this storage area by dividing it into a plurality of zones has been used. Yes.

図3は、ホストシステム側のアドレス空間とフラッシュメモリのアドレス空間を概略的に示す図である。本図を用いて、まず、従来のゾーンの構成について具体的に説明する。ホストシステム側のアドレス空間は、図3(a)に示したようにセクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。このセクタを複数個まとめたものを論理ブロックと呼び、論理ブロックを複数個まとめたものを論理ゾーンと呼んでいる。また、図3(b)に示したように論理ブロックに付けられた通番を論理ブロック番号(LBN)と呼び、論理ゾーンに付けられた通番を論理ゾーン番号(LZN)と呼んでいる。また、各論理ゾーンに含まれた論理ブロックの各論理ゾーン内での通番を論理ゾーン内ブロック番号(LZIBN)と呼んでいる。一方、図3(c)に示したように、物理ブロックには、それぞれ固有の物理ブロックアドレス(PBA)が割り当てられている。さらに、複数個の物理ブロックで物理ゾーンを構成し、各物理ゾーンに物理ゾーン番号(PZN)を割り当てている。各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番を物理ゾーン内ブロック番号(PZIBN)と呼んでいる。   FIG. 3 is a diagram schematically showing the address space on the host system side and the address space of the flash memory. First, the configuration of the conventional zone will be specifically described with reference to FIG. The address space on the host system side is managed by an LBA (Logical Block Address) which is a serial number assigned to an area divided in units of sectors (512 bytes) as shown in FIG. A group of a plurality of sectors is called a logical block, and a group of a plurality of logical blocks is called a logical zone. Further, as shown in FIG. 3B, the serial numbers assigned to the logical blocks are called logical block numbers (LBN), and the serial numbers assigned to the logical zones are called logical zone numbers (LZN). In addition, a serial number in each logical zone of a logical block included in each logical zone is called a logical zone block number (LZIBN). On the other hand, as shown in FIG. 3C, each physical block is assigned a unique physical block address (PBA). Further, a physical zone is constituted by a plurality of physical blocks, and a physical zone number (PZN) is assigned to each physical zone. A serial number in each physical zone of a physical block included in each physical zone is called an intra-physical zone block number (PZIBN).

また、各論理ゾーンにはそれぞれ1個の物理ゾーンが割り当てられ、論理ゾーンに含まれる各論理ブロックに対応するデータは、その論理ゾーンに割り当てられた物理ゾーンに含まれる物理ブロックに書き込まれる。したがって、1個の論理ブロックに含まれるセクタ数は、1個の物理ブロックに含まれるセクタ領域の個数に応じて設定される。   In addition, one physical zone is allocated to each logical zone, and data corresponding to each logical block included in the logical zone is written to a physical block included in the physical zone allocated to the logical zone. Therefore, the number of sectors included in one logical block is set according to the number of sector areas included in one physical block.

図3に示した例では、1個の物理ブロックが256個のサブページで構成されたフラッシュメモリを想定しているため、256セクタが1個の論理ブロックに対応している。したがって、LBN#0〜#999の1000個の論理ブロックで構成されたLZN#0の論理ゾーンは、LBA#0〜#255999の256000セクタの領域に対応している。以下同様に、LZN#1の論理ゾーンは、LBA#256000〜#511999の256000セクタの領域に対応し、LZN#2の論理ゾーンは、LBA#512000〜#767999の256000セクタの領域に対応し、LZN#3の論理ゾーンは、LBA#768000〜#1023999の256000セクタの領域に対応している。   In the example shown in FIG. 3, a flash memory in which one physical block is composed of 256 subpages is assumed, so 256 sectors correspond to one logical block. Therefore, the logical zone of LZN # 0 configured by 1000 logical blocks of LBN # 0 to # 999 corresponds to the area of 256000 sectors of LBA # 0 to # 255999. Similarly, the logical zone of LZN # 1 corresponds to the area of 256000 sectors of LBA # 256000 to # 511999, the logical zone of LZN # 2 corresponds to the area of 256000 sectors of LBA # 512000 to # 767999, The logical zone of LZN # 3 corresponds to an area of 256000 sectors of LBA # 768000 to # 1023999.

また、LBN#0〜#999の1000個の論理ブロックで構成されたLZN#0の論理ゾーンは、PBA#0〜#1023の1024個の物理ブロックで構成されたPZN#0の物理ゾーンに割り当てられている。以下同様に、LZN#1の論理ゾーンは、PZN#1の物理ゾーンに割り当てられ、LZN#2の論理ゾーンは、PZN#2の物理ゾーンに割り当てられ、LZN#3の論理ゾーンは、PZN#3の物理ゾーンに割り当てられている。ここで、物理ゾーンに含まれる物理ブロックの個数を、論理ゾーンに含まれる論理ブロックの個数より多くしているのは、同一の論理ブロックに対応する新データと旧データが別々の物理ブロックに並存する場合や、データを正常に書き込むことができない不良ブロックが発生した場合等を考慮したものである。   In addition, the logical zone of LZN # 0 configured with 1000 logical blocks of LBN # 0 to # 999 is allocated to the physical zone of PZN # 0 configured with 1024 physical blocks of PBA # 0 to # 1023. It has been. Similarly, the logical zone of LZN # 1 is assigned to the physical zone of PZN # 1, the logical zone of LZN # 2 is assigned to the physical zone of PZN # 2, and the logical zone of LZN # 3 is assigned to PZN #. Assigned to three physical zones. Here, the reason why the number of physical blocks included in the physical zone is larger than the number of logical blocks included in the logical zone is that new data and old data corresponding to the same logical block coexist in different physical blocks. This is a case in which a case where a defective block in which data cannot be normally written is generated.

従来は、上述のように同一のフラッシュメモリ(同一のチップ)内の物理ブロックで上記物理ゾーンを構成していたが、本発明に係るフラッシュメモリシステム1では、複数個のフラッシュメモリ2(複数チップ)内の物理ブロックで上記物理ゾーンを構成している。この物理ゾーンの構成を、図4に示した例を参照して説明する。図4は、2チップのフラッシュメモリ2内の物理ブロックで物理ゾーンを構成した例である。図4では、チップ0内の512個の物理ブロックとチップ1内の512個の物理ブロックで各物理ゾーンを構成している。ここで、チップ0内の物理ブロックアドレス(PBA)の先頭から512個の物理ブロックと、チップ1の内の物理ブロックアドレス(PBA)の先頭から512個の物理ブロックを、LZN#0の物理ゾーンに割り当てている。それ以降の物理ゾーン(LZN#1〜#Nの物理ゾーン)についても、各チップ内の物理ブロックアドレスの順番で、各チップ内の物理ブロックを512個ずつ各物理ゾーンに順次割り当てている。   Conventionally, as described above, the physical zone is composed of physical blocks in the same flash memory (the same chip). However, in the flash memory system 1 according to the present invention, a plurality of flash memories 2 (a plurality of chips) are used. The physical zone is composed of physical blocks in (). The configuration of this physical zone will be described with reference to the example shown in FIG. FIG. 4 shows an example in which a physical zone is configured with physical blocks in the two-chip flash memory 2. In FIG. 4, each physical zone is composed of 512 physical blocks in chip 0 and 512 physical blocks in chip 1. Here, the 512 physical blocks from the head of the physical block address (PBA) in the chip 0 and the 512 physical blocks from the head of the physical block address (PBA) in the chip 1 are assigned to the physical zone of the LZN # 0. Assigned to. For subsequent physical zones (physical zones of LZN # 1 to #N), 512 physical blocks in each chip are sequentially assigned to each physical zone in the order of physical block addresses in each chip.

本発明に係るフラッシュメモリシステム1では、上述のような物理ゾーンに対して後述するアドレス変換テーブルと空きブロック検索用テーブルを作成している。図5は、物理ゾーン毎に作成されるアドレス変換テーブル21と空きブロック検索用テーブル22、23の関係を示している。図5に示したようにアドレス変換テーブル21は、各物理ゾーンに対して1テーブル作成され、空きブロック検索用テーブル22、23は、物理ゾーンを構成する物理ブロックが属するチップ毎に作成される。つまり、各物理ゾーンがチップ0内の物理ブロックとチップ1内の物理ブロックで構成されている場合、各物理ゾーンに対してチップ0用の空きブロック検索用テーブル22と、チップ1用の空きブロック検索用テーブル23が作成される。   In the flash memory system 1 according to the present invention, an address conversion table and a free block search table, which will be described later, are created for the physical zone as described above. FIG. 5 shows the relationship between the address conversion table 21 created for each physical zone and the free block search tables 22 and 23. As shown in FIG. 5, one address conversion table 21 is created for each physical zone, and the free block search tables 22 and 23 are created for each chip to which the physical blocks constituting the physical zone belong. That is, when each physical zone is composed of a physical block in chip 0 and a physical block in chip 1, a free block search table 22 for chip 0 and a free block for chip 1 are assigned to each physical zone. A search table 23 is created.

[論理アドレスと物理アドレスの説明]
データの書き換えを行うときは、書き換え後のデータは書き換え前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。また、誤り訂正したデータの再書き込みを行うときは、誤りを訂正した後のデータは誤りを訂正する前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。このような処理が行われる毎に、ホストシステム4側から供給される論理アドレスとフラッシュメモリ2内の物理アドレスとの対応関係は動的に変化する。このため、論理アドレスと物理アドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリ2の冗長領域に書き込まれている論理アドレス情報に基づいて作成され、作成後は、論理アドレスと物理アドレスとの対応関係が変化する毎に、その変化した部分について対応関係が更新される。
[Description of logical address and physical address]
When data is rewritten, the rewritten data is written in a physical block different from the physical block in which the data before rewriting is stored. Further, when rewriting the error-corrected data, the data after the error correction is written into a physical block different from the physical block in which the data before the error correction is stored. Each time such processing is performed, the correspondence between the logical address supplied from the host system 4 side and the physical address in the flash memory 2 dynamically changes. For this reason, an address conversion table showing the correspondence between logical addresses and physical addresses is required. This address conversion table is created based on the logical address information written in the redundant area of the flash memory 2. After the creation, the address translation table changes each time the correspondence between the logical address and the physical address changes. The correspondence is updated for the part.

[アドレス変換テーブルの説明]
次に、上記アドレス変換テーブルについて、図面を参照して説明する。尚、本実施形態では、LZN#0の論理ゾーンとPZN#0の物理ゾーン、LZN#1の論理ゾーンとPZN#1の物理ゾーン、以下同様にLZN#Nの論理ゾーンとPZN#Nの物理ゾーンがそれぞれ対応するように論理ゾーンと物理ゾーンとの対応関係が予め設定されている。
図6は、対応関係にある1組の論理ゾーンと物理ゾーンのアドレス変換テーブルの一例を示したものであり、論理ゾーンに含まれるLZIBN#0〜#999の各論理ブロックに対応するデータが格納されている物理ブロックを、チップ番号とチップ別のPZIBN(#0〜#511)で示している。尚、PZIBNは各物理ゾーンに含まれる物理ブロックの各物理ゾーン内での通番であるが、チップ別のPZIBNは、各物理ゾーン内でのチップ別の通番を意味している。従って、図4に示した物理ゾーンの構成では、各物理ゾーンに含まれるチップ0内の512個の物理ブロックにチップ別のPZIBNとして#0〜#511が割り当てられ、各物理ゾーンに含まれるチップ1内の512個の物理ブロックにチップ別のPZIBNとして#0〜#511が割り当てられる。
[Description of address translation table]
Next, the address conversion table will be described with reference to the drawings. In this embodiment, the logical zone of LZN # 0 and the physical zone of PZN # 0, the logical zone of LZN # 1 and the physical zone of PZN # 1, and so on are the physical zone of LZN # N and the physical zone of PZN # N. The correspondence relationship between the logical zone and the physical zone is set in advance so that the zones correspond to each other.
FIG. 6 shows an example of an address conversion table for a set of logical zones and physical zones in correspondence with each other, and data corresponding to each logical block of LZIBN # 0 to # 999 included in the logical zone is stored. The physical block is indicated by a chip number and PZIBN (# 0 to # 511) for each chip. PZIBN is a serial number in each physical zone of a physical block included in each physical zone. PZIBN for each chip means a serial number for each chip in each physical zone. Therefore, in the configuration of the physical zone shown in FIG. 4, # 0 to # 511 are assigned as PZIBN for each chip to 512 physical blocks in the chip 0 included in each physical zone, and the chip included in each physical zone. # 0 to # 511 are assigned to 512 physical blocks in 1 as PZIBN for each chip.

本実施形態では、論理ゾーンと物理ゾーンとの対応関係が予め設定されているので、論理ゾーンのLZNが分かれば対応関係にある物理ゾーンのPZNを求めることができる。又、このPZNの値に基づいて、PZIBNをPBAに変換することができる。PZIBNをPBAに変換するときには、PZIBNにPZNに応じたオフセットが加算される。例えば、図4に示した物理ゾーンの構成でPZIBNをPBAに変換する場合、物理ゾーンのPZNが#1であれば512が、物理ゾーンのPZNが#2であれば1024が、オフセットとして加算される。   In this embodiment, since the correspondence relationship between the logical zone and the physical zone is set in advance, if the LZN of the logical zone is known, the PZN of the physical zone in the correspondence relationship can be obtained. Also, PZIBN can be converted to PBA based on the value of PZN. When converting PZIBN to PBA, an offset corresponding to PZN is added to PZIBN. For example, when PZIBN is converted to PBA in the configuration of the physical zone shown in FIG. 4, if the physical zone PZN is # 1, 512 is added as an offset, and if the physical zone PZN is # 2, 1024 is added as an offset. The

図4に示した物理ゾーンの構成では、各物理ゾーンを構成するチップ0内の物理ブロックのチップ別のPZIBNの範囲と、チップ1内の物理ブロックのチップ別のPZIBNの範囲が同一になるが、アドレス変換テーブルにチップの番号が記述されているため、各論理ブロックに対応するデータの格納先は一意的に特定される。また、対応するデータが格納されていない論理ブロックについては、アドレス変換テーブルのその論理ブロックに対応した部分に、チップの番号やPZIBNではなく、対応するデータが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う)が設定される。   In the configuration of the physical zone shown in FIG. 4, the PZIBN range for each physical block in the chip 0 constituting each physical zone is the same as the PZIBN range for each physical block in the chip 1. Since the chip number is described in the address conversion table, the data storage destination corresponding to each logical block is uniquely identified. For a logical block in which the corresponding data is not stored, a flag (hereinafter referred to as “no corresponding chip number” or “PZIBN”) is stored in the portion corresponding to the logical block in the address conversion table. , A flag indicating that the corresponding data is not stored is referred to as an unstored flag).

尚、チップ0のフラッシュメモリ内の物理ブロックにPZIBN#0〜#511を割り当て、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てるようにすれば、アドレス変換テーブルにチップ番号を記述する必要がなくなる。又、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てた場合に、このPZIBN#512〜#1023をチップ1内のPBAに変換するときは、PZIBNから512を減算した後にオフセットを加算すればよい。   If PZIBN # 0 to # 511 are allocated to the physical block in the flash memory of chip 0 and PZIBN # 512 to # 1023 are allocated to the physical block in the flash memory of chip 1, the chip number is added to the address conversion table. Need not be described. In addition, when PZIBN # 5122 to # 1023 are allocated to physical blocks in the flash memory of chip 1, when this PZIBN # 512 to # 1023 is converted to PBA in chip 1, 512 is subtracted from PZIBN. What is necessary is just to add an offset.

このアドレス変換テーブルを作成する場合、例えば、1000ブロック分のチップ番号とチップ別のPZIBNを記述できる領域をワークエリア8上に確保し、そのチップ番号とチップ別のPZIBNを記述する領域のいずれか、または双方に初期設定として未格納フラグを設定する。その後、アドレス変換テーブルを作成する物理ゾーンに割り当てられているチップ0内の物理ブロック(冗長領域)を順次読出していき、冗長領域に論理アドレス情報としてLZIBNが記述されていた場合には、アドレス変換テーブルのそのLZIBNに対応した部分に、そのLZIBNが記述されていた物理ブロックのチップ別のPZIBNを記述する。この際、チップ別のPZIBNと共にチップの番号も記述する。また、チップ1についても同様の処理を行い、アドレス変換テーブルを作成する物理ゾーンに割り当てられているチップ0内の512ブロックとチップ1内の512ブロックについて、この処理が完了するとアドレス変換テーブルが完成する。なお、このアドレス変換テーブルの作成処理でチップ別のPZIBNとチップの番号が記述されなかった部分については、初期設定で記述された未格納フラグがそのまま残る。尚、アドレス変換テーブルにチップ番号を記述しない場合、例えば、チップ0のフラッシュメモリ内の物理ブロックにPZIBN#0〜#511を割り当て、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てる場合は、チップ1内の物理ブロックのPZIBNをアドレス変換テーブルに記述する際に、各物理ゾーンに含まれる物理ブロックのチップ別の通番(#0〜#511)に512を加算すればよい。   When creating this address conversion table, for example, an area where a chip number for 1000 blocks and a PZIBN for each chip can be described is secured on the work area 8, and one of the areas describing the chip number and the PZIBN for each chip is allocated. , Or both, an unstored flag is set as an initial setting. After that, the physical block (redundant area) in the chip 0 assigned to the physical zone for creating the address conversion table is sequentially read. If LZIBN is described as the logical address information in the redundant area, the address conversion is performed. The PZIBN for each chip of the physical block in which the LZIBN is described is described in the portion corresponding to the LZIBN in the table. At this time, the chip number is also described together with the PZIBN for each chip. The same processing is also performed for chip 1, and when this processing is completed for 512 blocks in chip 0 and 512 blocks in chip 1 assigned to the physical zone for creating the address conversion table, the address conversion table is completed. To do. It should be noted that the unstored flag described in the initial setting remains as it is for the part where the chip-specific PZIBN and the chip number are not described in the address conversion table creation process. When the chip number is not described in the address conversion table, for example, PZIBN # 0 to # 511 are assigned to the physical block in the flash memory of chip 0, and PZIBN # 512 to # 1023 are assigned to the physical block in the flash memory of chip 1. When the PZIBN of the physical block in the chip 1 is described in the address conversion table, 512 may be added to the serial number (# 0 to # 511) of each physical block included in each physical zone. .

[空きブロック検索用テーブルの説明]
次に、空きブロック検索用テーブルについて、図面を参照して説明する。図7は、この空きブロック検索用テーブルの例を示した図である。空きブロック検索用テーブルは、チップ0用のテーブルとチップ1用のテーブルがある。なお、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロック検索用テーブルと、チップ1内の512ブロックにする空きブロック検索用テーブルの構成は同じなので、チップ0内の512ブロックに対する空きブロック検索用テーブルについて説明する。
[Description of free block search table]
Next, the empty block search table will be described with reference to the drawings. FIG. 7 shows an example of this empty block search table. The empty block search table includes a table for chip 0 and a table for chip 1. Since the configuration of the empty block search table for 512 blocks in chip 0 and the empty block search table for 512 blocks in chip 1 is the same, the empty block search for 512 blocks in chip 0 is configured. The table for use will be described.

この空きブロック検索用テーブルを作成するときは、物理ゾーンを構成するチップ0内の512ブロックに対応する512ビットの領域、空きブロック数を記述する領域および検索終了位置を記述する領域をワークエリア8に確保する。512ブロックに対応する512ビットの領域については、上の行から順番にPZIBN#0〜#7、PZIBN#8〜#15という順番で物理ブロックが割り当てられている。又、各行に含まれるビットついては下位側(右側)から上位側(左側)にPZIBNの順番(PZIBNが若い方が下位側になる順番)で物理ブロックが割り当てられている。従って、一番上の行の最下位ビットがPZIBN#0に対応し、一番下の行の最上位ビットがPZIBN#511に対応している。   When creating this empty block search table, work area 8 includes a 512-bit area corresponding to 512 blocks in chip 0 constituting the physical zone, an area describing the number of empty blocks, and an area describing the search end position. To ensure. In the 512-bit area corresponding to 512 blocks, physical blocks are allocated in the order of PZIBN # 0 to # 7 and PZIBN # 8 to # 15 from the top row. For the bits included in each row, physical blocks are assigned in the order of PZIBN (the order in which the lower PZIBN is lower) from the lower side (right side) to the upper side (left side). Therefore, the least significant bit of the top row corresponds to PZIBN # 0, and the most significant bit of the bottom row corresponds to PZIBN # 511.

次に、チップ0内の物理ブロック(冗長領域)を順次読出していき、冗長領域に論理アドレス情報としてLZIBNが記述されていた場合、又はブロックステータスとして不良ブロックを示すフラグが設定されていた場合は、その物理ブロックに対応するビットに「0」を設定する。一方、ブロックステータスとして不良ブロックを示すフラグが設定されておらず、かつ冗長領域に論理アドレス情報が記述されていない場合は、その物理ブロックに対応するビットに「1」を設定する。
尚、空きブロック数を記述する領域には、空きブロック検索用テーブルの作成を開始するときに「0」を設定しておき、物理ブロックに対応するビットに「1」設定したときは、その値をインクリメントする。又、検索終了位置を記述する領域には、予め設定されている値、又は、乱数発生器等で取得した値を設定する。
Next, when physical blocks (redundant areas) in the chip 0 are sequentially read and LZIBN is described as logical address information in the redundant areas, or a flag indicating a bad block is set as the block status , “0” is set to the bit corresponding to the physical block. On the other hand, if the flag indicating the bad block is not set as the block status and the logical address information is not described in the redundant area, “1” is set to the bit corresponding to the physical block.
In the area describing the number of empty blocks, “0” is set when the creation of the empty block search table is started, and when the bit corresponding to the physical block is set to “1”, the value is set. Is incremented. In addition, a value set in advance or a value acquired by a random number generator or the like is set in the area describing the search end position.

この空きブロック検索用テーブルは、アドレス変換テーブルを作成する際に一緒に作成することが好ましい。また、作成後に、空きブロックにデータを書き込んだ場合は、その物理ブロックに対応するビットを「1」から「0」に書き換え、空きブロック数をデクリメントし、データが書き込まれている物理ブロックに対して消去処理を行った場合は、その物理ブロックに対応するビットを「0」から「1」に書き換え、空きブロック数をインクリメントする。   This empty block search table is preferably created together with the address conversion table. If data is written to an empty block after creation, the bit corresponding to the physical block is rewritten from “1” to “0”, the number of empty blocks is decremented, and the physical block to which data is written When the erase process is performed, the bit corresponding to the physical block is rewritten from “0” to “1”, and the number of empty blocks is incremented.

[空きブロック検索処理の説明]
次に空きブロック検索用テーブルを用いた空きブロック検索処理を説明する。チップ0用のテーブルとチップ1用のテーブルがあるため、まず、どちらのテーブルから検索するかを決定する必要がある。空きブロックを検索する必要があるときは、アドレス変換テーブルを検索して、LZIBNに対応するチップ別のPZIBNがない場合と、LZIBNに対応するチップ別のPZIBNがある場合(データを書き換える場合、または訂正処理を行う場合)とがある。前者の場合は、チップ0とチップ1との間で空きブロック数が偏らないようにするため、空きブロック数の多いチップ側の空きブロック検索用テーブルを使用する。後者の場合、理由は後述の[データ転送処理とコピーバックの選択]で説明するが、データ転送処理を行う時とコピーバック処理を行う時とでは、使用する空きブロック検索用テーブルの選択方法が異なる。まず、データ転送処理を行う時は、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックが含まれるチップと異なるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合は、チップ1用のテーブルを使用し、そのチップ番号が1であった場合は、チップ0用のテーブルを使用する。次に、コピーバック処理を行う時は、コピーバック処理の対象データが書き込まれている物理ブロックが含まれるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、コピーバック処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合、チップ0用のテーブルを使用し、そのチップ番号が1であった場合は、チップ1用のテーブルを使用する。
[Explanation of free block search processing]
Next, the empty block search process using the empty block search table will be described. Since there are a table for chip 0 and a table for chip 1, it is necessary to first determine which table to search. When it is necessary to search for an empty block, the address conversion table is searched and there is no PZIBN for each chip corresponding to LZIBN, and there is a PZIBN for each chip corresponding to LZIBN (when data is rewritten, or Correction process). In the former case, a free block search table on the chip side having a large number of free blocks is used so that the number of free blocks is not biased between chip 0 and chip 1. In the latter case, the reason will be described in [Data Transfer Processing and Copyback Selection], which will be described later. However, there is a method for selecting the free block search table to be used when performing the data transfer processing and when performing the copyback processing. Different. First, when data transfer processing is performed, a free block search table on a chip side different from a chip including a physical block in which data to be rewritten or data to be corrected is written is used. That is, the chip number of the physical block in which the data to be rewritten or the data to be corrected is written is obtained from the address conversion table, and when the chip number is 0, the table for chip 1 is used, If the chip number is 1, the table for chip 0 is used. Next, when the copy back process is performed, the empty block search table on the chip side including the physical block in which the target data of the copy back process is written is used. In other words, the chip number of the physical block in which the data to be copied back is written is obtained from the address conversion table. If the chip number is 0, the chip 0 table is used and the chip number is 1 If so, a table for chip 1 is used.

空きブロックの検索方法は、物理ゾーンを構成するチップ0内の512ブロックに対する場合と、チップ1内の512ブロックにする場合とで同様なので、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロックの検索方法について説明する。   The empty block search method is the same for the 512 blocks in the chip 0 constituting the physical zone and for the 512 blocks in the chip 1, so the empty blocks for the 512 blocks in the chip 0 constituting the physical zone are used. A search method will be described.

この空きブロック検索用テーブルを用いた空きブロックの検索では、上の行から下の行に、各行に含まれるビットを下位側から上位側に、論理値が「1」のビットを検索していく。尚、一番下の行の最上位ビットまで検索が進んだときは、一番上の行の最下位ビットに戻る。又、検索を開始するビットは、検索終了位置を記述する領域に設定されている値に基づいて決定される。検索終了位置を記述する領域に設定されている値がnの場合、チップ別のPZIBN#nに対応するビットの次のビットから検索が開始される。例えば、検索終了位置を記述する領域に設定されている値が128の場合は、チップ別のPZIBN#129に対応するビットから検索が開始され、検索終了位置を記述する領域に設定されている値が511の場合は、チップ別のPZIBN#0に対応するビットから検索が開始される。   In this search for an empty block using the empty block search table, the bits included in each row are searched from the lower row to the upper row, and the bit having the logical value “1” is searched from the upper row to the lower row. . When the search proceeds to the most significant bit of the bottom row, the search returns to the least significant bit of the top row. The bit for starting the search is determined based on the value set in the area describing the search end position. When the value set in the area describing the search end position is n, the search is started from the bit next to the bit corresponding to PZIBN # n for each chip. For example, if the value set in the area describing the search end position is 128, the search is started from the bit corresponding to PZIBN # 129 for each chip, and the value set in the area describing the search end position Is 511, the search is started from the bit corresponding to PZIBN # 0 for each chip.

この検索は、論理値が「1」のビットを検出したときに終了し、検出したビットに対応するチップ別のPZIBNの値が、検索終了位置を記述する領域に設定される。従って、次回の検索では、今回の検索で検出された論理値が「1」のビットの次のビットから検索が開始される。   This search ends when a bit having a logical value of “1” is detected, and the value of PZIBN for each chip corresponding to the detected bit is set in an area describing the search end position. Accordingly, in the next search, the search is started from the bit next to the logical value “1” detected in the current search.

例えば、図7に示した空きブロック検索用テーブルのチップ別のPZIBN#0に対応するビットから検索を開始したときは、チップ別のPZIBN#27に対応するビット(上から4番目の行の下位側から4ビット目のビット)が「1」なので、ここで検索が終了し、検索終了位置を記述する領域に「27」を設定する。次回の検索は、チップ別のPZIBN#28に対応するビット(上から4番目の行の下位側から5ビット目のビット)から開始される。   For example, when the search is started from the bit corresponding to PZIBN # 0 for each chip in the empty block search table shown in FIG. 7, the bit corresponding to PZIBN # 27 for each chip (the lower order of the fourth row from the top) Since the fourth bit from the side) is “1”, the search ends here, and “27” is set in the area describing the search end position. The next search starts from the bit corresponding to PZIBN # 28 for each chip (the fifth bit from the lower side of the fourth row from the top).

[データ転送処理の説明]
図8を参照して、本発明によるデータ転送処理の概要を説明する。尚、データ転送処理は、フラッシュメモリからデータを読み出しコントローラ内のバッファに蓄積した後、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込むデータ移動処理を意味する。一方、フラッシュメモリ内でのデータのデータ移動処理(フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、データレジスタに読み出したデータをメモリセルアレイに書き込む処理)をコピーバック処理と言う。
[Description of data transfer process]
The outline of the data transfer process according to the present invention will be described with reference to FIG. The data transfer process means a data movement process in which data is read from the flash memory and accumulated in a buffer in the controller, and then the data accumulated in the buffer in the controller is written to the flash memory. On the other hand, data movement processing of data in the flash memory (processing for reading data from the memory cell array to the data register and then writing the data read to the data register in the flash memory in the flash memory) is called copy back processing.

本発明によるデータ転送処理は、以下のステップを繰り返すことで行われる。
(S81)メモリコントローラ3から与えられた情報に基づいて、チップ0内の物理ブロックの読み出すページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S82)チップ0内のデータレジスタから1サブページ分(1セクタ分)のデータが読み出され、メモリコントローラ3内のバッファ9に蓄積される。尚、読み出したデータに対応する誤り訂正符号も読み出され、ECCブロック11によって読み出したデータに含まれる誤りの検出、訂正が行われる。
(S83)メモリコントローラ内のバッファ9に蓄積された1サブページ分(1セクタ分)のデータが、チップ1内のデータレジスタに転送される。又、転送したデータに対応する誤り訂正符号が、ECCブロック11によって生成され、生成された誤り訂正符号もチップ1内のデータレジスタに転送される。
ここで、1ページ分のデータを転送する場合は、1ページ分のデータがメモリコントローラ内のバッファ9を介して、チップ0内のデータレジスタからチップ1内のデータレジスタに転送されるまで、S82〜S83の処理が繰り返される。本実施形態では、1ページが4サブページ(4セクタ)に対応するので、1ページ分のデータを転送する場合、S82〜S83の処理が4回繰り返される。
(S84)最初のサブページ(セクタ)に対応するデータをチップ1内のデータレジスタに転送するときに、メモリコントローラ3から与えられた情報に基づいて、書き込み先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。
The data transfer process according to the present invention is performed by repeating the following steps.
(S81) Based on the information given from the memory controller 3, the memory cell of the page to be read from the physical block in the chip 0 is selected, and the data is copied from the selected memory cell to the data register.
(S 82) Data for one subpage (one sector) is read from the data register in the chip 0 and stored in the buffer 9 in the memory controller 3. An error correction code corresponding to the read data is also read, and an error contained in the read data is detected and corrected by the ECC block 11.
(S83) Data for one subpage (one sector) stored in the buffer 9 in the memory controller is transferred to the data register in the chip 1. In addition, an error correction code corresponding to the transferred data is generated by the ECC block 11, and the generated error correction code is also transferred to the data register in the chip 1.
Here, when data for one page is transferred, the data for one page is transferred from the data register in the chip 0 to the data register in the chip 1 through the buffer 9 in the memory controller until the data is transferred to S82. The process of S83 is repeated. In this embodiment, since one page corresponds to four subpages (4 sectors), when transferring data for one page, the processes of S82 to S83 are repeated four times.
(S84) When data corresponding to the first subpage (sector) is transferred to the data register in the chip 1, the memory cell of the write destination page is selected based on the information given from the memory controller 3, Data in the data register is copied to the selected memory cell.

このように、本発明によるデータ転送処理は、2つのチップ間でデータの転送を行っているため、メモリコントローラ3内のバッファ9に1ページ分のデータを蓄積させずに、サブページ単位(セクタ単位)でチップ0内のデータレジスタからチップ1内のデータレジスタに、データを転送することができる。つまり、チップ0内のデータレジスタから1サブページ分(1セクタ分)のデータを読み出す処理と、チップ1内のデータレジスタに1サブページ分(1セクタ分)のデータを転送する処理を交互に繰り返すことにより、メモリコントローラ3内のバッファ9に1ページ分のデータを蓄積させず、チップ0内のデータレジスタからチップ1内のデータレジスタに、データを転送することができる。従って、1ページの容量に応じて、メモリコントローラ内のバッファ9の容量を変更する必要がなく、バッファ9の容量が少なくとも1サブページ分(1セクタ分)あれば、データ転送処理を行うことができる。又、バッファ9の容量が2サブページ分(2セクタ分)あれば、一方のチップ内のデータレジスタからデータを読み出し、バッファ9に蓄積する処理と、バッファ9に蓄積されたデータを他方のチップ内のデータレジスタに転送する処理を並行して行うことができる。尚、バッファ9に蓄積する処理とデータレジスタに転送する処理を並行して行うときは、チップ0に接続している内部バス14とチップ1に接続している内部バス14は、独立していることが好ましいが、共用の内部バス14を時分割で使用するようにしてもよい。   As described above, in the data transfer process according to the present invention, data is transferred between two chips, so that one page of data is not accumulated in the buffer 9 in the memory controller 3, but in units of subpages (sectors). Data can be transferred from the data register in the chip 0 to the data register in the chip 1 in units. That is, processing for reading data for one subpage (for one sector) from the data register in chip 0 and processing for transferring data for one subpage (for one sector) to the data register in chip 1 are alternately performed. By repeating, it is possible to transfer data from the data register in the chip 0 to the data register in the chip 1 without accumulating data for one page in the buffer 9 in the memory controller 3. Therefore, it is not necessary to change the capacity of the buffer 9 in the memory controller in accordance with the capacity of one page, and if the capacity of the buffer 9 is at least one subpage (one sector), data transfer processing can be performed. it can. If the capacity of the buffer 9 is 2 subpages (2 sectors), the data is read from the data register in one chip and stored in the buffer 9, and the data stored in the buffer 9 is stored in the other chip. The process of transferring to the internal data register can be performed in parallel. When the process of accumulating in the buffer 9 and the process of transferring to the data register are performed in parallel, the internal bus 14 connected to the chip 0 and the internal bus 14 connected to the chip 1 are independent. Although it is preferable, the shared internal bus 14 may be used in a time division manner.

なお、本説明では、チップ0のフラッシュメモリからチップ1のフラッシュメモリへのデータ転送処理について説明したが、チップ1のフラッシュメモリからチップ0のフラッシュメモリへのデータ転送処理についても同様に行うことができる。   In this description, the data transfer process from the flash memory of the chip 0 to the flash memory of the chip 1 has been described. However, the data transfer process from the flash memory of the chip 1 to the flash memory of the chip 0 can be similarly performed. it can.

[データ転送処理とコピーバックの選択]
データ転送処理では、フラッシュメモリから読み出したデータをコントローラ内のバッファに蓄積した後に、そのデータをフラッシュメモリに書き込むため、読み出したデータに誤りが含まれていた場合、その誤りを訂正することができる。一方、コピーバック処理では、フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、そのデータをメモリセルアレイに書き込むため、短時間でデータを移動させることができるが、フラッシュメモリ内で処理が実行されるため、移動前と移動後のページは同一のチップに属していなければならない。
[Select data transfer and copyback]
In the data transfer process, the data read from the flash memory is stored in the buffer in the controller and then written to the flash memory. If the read data contains an error, the error can be corrected. . On the other hand, in the copyback process, data is read from the memory cell array to the data register in the flash memory and then written to the memory cell array, so that the data can be moved in a short time. In order to be executed, the page before and after movement must belong to the same chip.

フラッシュメモリに対するアクセス処理では、上記のようなデータ転送処理とコピーバック処理の特徴を考慮して、状況に応じてデータ転送処理とコピーバック処理を使い分けることが好ましい。つまり、記憶データを移動させるときに記憶データに含まれる誤りを訂正したいときはデータ転送処理により記憶データの移動を行い、記憶データを移動させるときに記憶データに含まれる誤りを訂正する必要がないときはコピーバック処理により記憶データの移動を行う。   In the access process to the flash memory, it is preferable to use the data transfer process and the copy back process properly depending on the situation in consideration of the characteristics of the data transfer process and the copy back process as described above. That is, when it is desired to correct an error included in the stored data when moving the stored data, the stored data is moved by the data transfer process, and there is no need to correct the error included in the stored data when moving the stored data. In some cases, the stored data is moved by copy back processing.

なお、本発明に係るフラッシュメモリシステムのゾーンの構成は、特に限定されるものではなく、例えば、ゾーンを構成するブロックの数やチップの数は用途に合わせて適宜設定することができる。   The zone configuration of the flash memory system according to the present invention is not particularly limited. For example, the number of blocks and the number of chips constituting the zone can be appropriately set according to the application.

また、以上述べた実施形態は全て本発明を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様及び変更態様で実施することができる。従って本発明の範囲は特許請求の範囲及びその均等範囲によってのみ規定されるものである。   Moreover, all the embodiment described above shows the present invention exemplarily, and does not limit the present invention, and the present invention can be implemented in other various modifications and changes. Therefore, the scope of the present invention is defined only by the claims and their equivalents.

本発明の実施形態におけるフラッシュメモリシステムを概略的に示すブロック図である。1 is a block diagram schematically showing a flash memory system in an embodiment of the present invention. FIG. ブロックとページの関係を示す説明図である。It is explanatory drawing which shows the relationship between a block and a page. フラッシュメモリのアドレス空間の構造を概略的に示す図である。It is a figure which shows roughly the structure of the address space of flash memory. 2チップのフラッシュメモリでゾーンを構成した例を示す図である。It is a figure which shows the example which comprised the zone with the flash memory of 2 chips | tips. ゾーン毎の作成されるアドレス変換テーブルと空きブロック検索用テーブルの関係を示す図である。It is a figure which shows the relationship between the address conversion table produced for every zone, and the empty block search table. アドレス変換テーブルの例を示した図である。It is the figure which showed the example of the address conversion table. 空きブロック検索用テーブルの例を示した図である。It is the figure which showed the example of the table for empty block searches. 本発明によるデータ転送処理の概要を示す図である。It is a figure which shows the outline | summary of the data transfer process by this invention. 従来技術によるデータ転送処理の概要を示す図である。It is a figure which shows the outline | summary of the data transfer process by a prior art.

符号の説明Explanation of symbols

1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
21 アドレス変換テーブル
22、23 空きブロック検索用テーブル
DESCRIPTION OF SYMBOLS 1 Flash memory system 2 Flash memory 3 Controller 4 Host system 6 Microprocessor 7 Host interface block 8 Work area 9 Buffer 10 Flash memory interface block 11 ECC block 12 ROM
13 External bus 14 Internal bus 21 Address conversion table 22, 23 Empty block search table

Claims (4)

複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するメモリコントローラであって、
前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出し手段と、
前記読出し手段によって読み出されたデータを蓄積する蓄積手段と、
前記蓄積手段に蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送手段と、
前記第1の物理ブロックと前記第2の物理ブロックが異なるフラッシュメモリに含まれるように前記第2の物理ブロックを選択する選択手段とを備え
前記読出し手段による読み出しと前記転送手段による転送を、交互に又は並行して行うことにより、前記蓄積手段に1ページ分のデータを蓄積せずに前記第1の物理ブロックから前記第2の物理ブロックにデータを移動させることを特徴とするメモリコントローラ。
A memory controller that controls access to a physical zone composed of physical blocks in a plurality of flash memories,
Reading means for reading data from a data register in a first flash memory including a first physical block belonging to the physical zone;
Accumulating means for accumulating data read by the reading means;
Transfer means for transferring data stored in the storage means to a data register in a second flash memory including a second physical block belonging to the same physical zone as the first physical block;
Selecting means for selecting the second physical block so that the first physical block and the second physical block are included in different flash memories, wherein reading by the reading means and transfer by the transfer means are alternately performed Or a memory controller for transferring data from the first physical block to the second physical block without storing data for one page in the storage means.
前記選択手段が、前記物理ゾーンに属する空きブロックをフラッシュメモリ毎に検索することのできる空きブロック検索手段を備えることを特徴とする請求項1に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the selection unit includes a free block search unit capable of searching for a free block belonging to the physical zone for each flash memory. 請求項1から2のいずれか1項に記載のメモリコントローラと複数個のフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。   A flash memory system comprising the memory controller according to claim 1 and a plurality of flash memories. 複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出しステップと、
前記読出しステップで読み出されたデータを蓄積する蓄積ステップと、
前記蓄積ステップで蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送ステップとを有し、
前記読出しステップによる読み出しと前記転送ステップによる転送を、交互に又は並行して行うことにより、前記蓄積ステップで1ページ分のデータを蓄積せずに前記第1の物理ブロックから該第1の物理ブロックと異なるフラッシュメモリ内の前記第2の物理ブロックにデータを移動させることを特徴とするフラッシュメモリの制御方法。
A flash memory control method for controlling access to a physical zone composed of physical blocks in a plurality of flash memories,
A step of reading data from a data register in a first flash memory including a first physical block belonging to the physical zone;
An accumulation step for accumulating the data read in the reading step;
A transfer step of transferring the data accumulated in the accumulation step to a data register in a second flash memory including a second physical block belonging to the same physical zone as the first physical block;
By performing the reading in the reading step and the transferring in the transfer step alternately or in parallel, the first physical block to the first physical block without accumulating data for one page in the accumulation step. A method for controlling a flash memory, comprising: moving data to the second physical block in a different flash memory.
JP2006295343A 2006-10-31 2006-10-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Expired - Fee Related JP4569554B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006295343A JP4569554B2 (en) 2006-10-31 2006-10-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006295343A JP4569554B2 (en) 2006-10-31 2006-10-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Publications (2)

Publication Number Publication Date
JP2008112335A true JP2008112335A (en) 2008-05-15
JP4569554B2 JP4569554B2 (en) 2010-10-27

Family

ID=39444808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006295343A Expired - Fee Related JP4569554B2 (en) 2006-10-31 2006-10-31 MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Country Status (1)

Country Link
JP (1) JP4569554B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210003305A (en) * 2018-05-30 2021-01-11 마이크론 테크놀로지, 인크 Memory management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107599A (en) * 2003-09-26 2005-04-21 Tdk Corp Memory controller, flash memory system equipped with memory controller, and control method of flash memory
JP2005292925A (en) * 2004-03-31 2005-10-20 Tdk Corp Memory controller, flash memory system, and control method for flash memory
WO2006043492A1 (en) * 2004-10-18 2006-04-27 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device, method for writing in nonvolatile storage device and controller for nonvolatile storage device
WO2006068963A1 (en) * 2004-12-21 2006-06-29 Sandisk Corporation Data relocation in a memory system
JP2006215595A (en) * 2005-02-01 2006-08-17 Hitachi Ulsi Systems Co Ltd Storage
JP2006277736A (en) * 2005-03-03 2006-10-12 Matsushita Electric Ind Co Ltd Non-volatile memory device writing method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107599A (en) * 2003-09-26 2005-04-21 Tdk Corp Memory controller, flash memory system equipped with memory controller, and control method of flash memory
JP2005292925A (en) * 2004-03-31 2005-10-20 Tdk Corp Memory controller, flash memory system, and control method for flash memory
WO2006043492A1 (en) * 2004-10-18 2006-04-27 Matsushita Electric Industrial Co., Ltd. Nonvolatile storage device, method for writing in nonvolatile storage device and controller for nonvolatile storage device
WO2006068963A1 (en) * 2004-12-21 2006-06-29 Sandisk Corporation Data relocation in a memory system
JP2006215595A (en) * 2005-02-01 2006-08-17 Hitachi Ulsi Systems Co Ltd Storage
JP2006277736A (en) * 2005-03-03 2006-10-12 Matsushita Electric Ind Co Ltd Non-volatile memory device writing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210003305A (en) * 2018-05-30 2021-01-11 마이크론 테크놀로지, 인크 Memory management
JP2021526265A (en) * 2018-05-30 2021-09-30 マイクロン テクノロジー,インク. Memory management
KR102447262B1 (en) 2018-05-30 2022-09-26 마이크론 테크놀로지, 인크 memory management
US11646065B2 (en) 2018-05-30 2023-05-09 Micron Technology, Inc. Wear leveling

Also Published As

Publication number Publication date
JP4569554B2 (en) 2010-10-27

Similar Documents

Publication Publication Date Title
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4666080B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4171749B2 (en) Memory controller and flash memory system
US8200892B2 (en) Memory controller, memory system with memory controller, and method of controlling flash memory
JP4153535B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4366420B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4661191B2 (en) Memory controller, flash memory system, and flash memory control method
JP4609406B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4569554B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4241741B2 (en) Memory controller and flash memory system
JP4661497B2 (en) Memory controller, flash memory system, and flash memory control method
JP4177292B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD
JP4235646B2 (en) Memory controller and flash memory system
JP4697146B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP2005316793A (en) Flash memory system and control method of flash memory
JP4235595B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4177301B2 (en) Memory controller, flash memory system, and flash memory control method
JP4000124B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
JP4332132B2 (en) Memory controller, flash memory system, and flash memory control method
JP4254930B2 (en) Memory controller, flash memory system, and flash memory control method
JP4332108B2 (en) Memory controller, flash memory system, and flash memory control method
JP4539621B2 (en) Memory controller, flash memory system, and flash memory control method
JP4497124B2 (en) Memory controller, flash memory system, and flash memory control method
JP4213166B2 (en) Memory controller and flash memory system
JP2010250534A (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100707

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100726

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

Free format text: PAYMENT UNTIL: 20130820

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4569554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees