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 PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000012546 transfer Methods 0.000 claims abstract description 49
- 238000009825 accumulation Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 32
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000006243 chemical reaction Methods 0.000 description 26
- 238000012937 correction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Memory System (AREA)
Abstract
【課題】フラッシュメモリの1ページの容量が増加しても、処理時間とバッファの容量を増加させることなく、バッファを介した記憶データの移動処理を行うこと。
【解決手段】同じ物理ゾーンに属する物理ブロック間で記憶データを移動させるときに
、物理ゾーンに構成する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出し、読み出されたデータをデータ蓄積手段に蓄積し、蓄積したデータを、第1の物理ブロックと同一の物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する。この処理で、第1のフラッシュメモリ内のデータレジスタからのデータの読み出しと、第2のフラッシュメモリ内のデータレジスタへのデータの転送を、交互に又は並行して行うことにより、データ蓄積手段に1ページ分のデータを蓄積せずに、第1の物理ブロックから第1の物理ブロックと異なるフラッシュメモリ内の物理ブロックである第2の物理ブロックにデータを移動させる。
【選択図】図8Even 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
[データ転送処理の説明]
図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.
フラッシュメモリに記憶されているデータの移動は、データ転送処理とコピーバック処理のいずれの処理方法でも行うことができるが、コピーバック処理では、移動の際にデータに含まれる誤りを訂正することができない。従って、移動の際にデータに含まれる誤りを訂正するときには、コピーバック処理より処理時間の長いデータ転送処理を行わなければならない。 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
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
The
[フラッシュメモリ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
大ブロック構成の場合、各ページのユーザ領域には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
論理アドレス情報は、物理ブロックにデータが記憶されている場合に書き込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。なお、物理ブロックにデータが記憶されていない場合は、論理アドレス情報が書き込まれないので、論理アドレス情報が書き込まれているか否かで、そのブロックが空きブロック(消去済ブロック)であるか否かを判断することができる。つまり、論理アドレス情報が書き込まれていない場合は、空きブロック(消去済ブロック)であると判断される。 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
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、コントローラ3の全体の動作を制御する。
The
ホストインターフェースブロック7は、ホストシステム4との間で、データ、アドレス情報、ステータス情報、外部コマンド(ホストシステム4からフラッシュメモリシステム3に与えられるコマンド)等の授受を行う。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
The
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
The
バッファ9は、フラッシュメモリ2から読み出されたデータ及びフラッシュメモリ2に書き込むべきデータを一時的に蓄積する。すなわち、フラッシュメモリ2から読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリ2に書き込むべきデータは、フラッシュメモリ2が書き込み可能な状態となるまでバッファ9に保持される。
The
フラッシュメモリインターフェースブロック10は、バッファ9からフラッシュメモリ2への書き込み処理やフラッシュメモリ2からバッファ9への読み出し処理を制御するブロックである。書き込み処理や読み出し処理を実行するときの一連の制御動作は、ROM12に記憶されている一連の制御動作を指示する情報に基づいて実行される。
The flash
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、フラッシュメモリ2から読み出したデータに付加された誤り訂正符号(ECC)に基づいて、読み出したデータに含まれる誤りを検出・訂正する。
The
ROM12は、マイクロプロセッサ6によって実行される処理の手順を定義するプログラム等を格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、以下で説明するアドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
The
[ゾーンの構成の説明]
フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。
[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
また、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
従来は、上述のように同一のフラッシュメモリ(同一のチップ)内の物理ブロックで上記物理ゾーンを構成していたが、本発明に係るフラッシュメモリシステム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
本発明に係るフラッシュメモリシステム1では、上述のような物理ゾーンに対して後述するアドレス変換テーブルと空きブロック検索用テーブルを作成している。図5は、物理ゾーン毎に作成されるアドレス変換テーブル21と空きブロック検索用テーブル22、23の関係を示している。図5に示したようにアドレス変換テーブル21は、各物理ゾーンに対して1テーブル作成され、空きブロック検索用テーブル22、23は、物理ゾーンを構成する物理ブロックが属するチップ毎に作成される。つまり、各物理ゾーンがチップ0内の物理ブロックとチップ1内の物理ブロックで構成されている場合、各物理ゾーンに対してチップ0用の空きブロック検索用テーブル22と、チップ1用の空きブロック検索用テーブル23が作成される。
In the
[論理アドレスと物理アドレスの説明]
データの書き換えを行うときは、書き換え後のデータは書き換え前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。また、誤り訂正したデータの再書き込みを行うときは、誤りを訂正した後のデータは誤りを訂正する前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。このような処理が行われる毎に、ホストシステム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
[アドレス変換テーブルの説明]
次に、上記アドレス変換テーブルについて、図面を参照して説明する。尚、本実施形態では、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
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
本実施形態では、論理ゾーンと物理ゾーンとの対応関係が予め設定されているので、論理ゾーンの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
尚、チップ0のフラッシュメモリ内の物理ブロックにPZIBN#0〜#511を割り当て、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てるようにすれば、アドレス変換テーブルにチップ番号を記述する必要がなくなる。又、チップ1のフラッシュメモリ内の物理ブロックにPZIBN#512〜#1023を割り当てた場合に、このPZIBN#512〜#1023をチップ1内のPBAに変換するときは、PZIBNから512を減算した後にオフセットを加算すればよい。
If
このアドレス変換テーブルを作成する場合、例えば、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
[空きブロック検索用テーブルの説明]
次に、空きブロック検索用テーブルについて、図面を参照して説明する。図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
この空きブロック検索用テーブルを作成するときは、物理ゾーンを構成するチップ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,
次に、チップ0内の物理ブロック(冗長領域)を順次読出していき、冗長領域に論理アドレス情報としてLZIBNが記述されていた場合、又はブロックステータスとして不良ブロックを示すフラグが設定されていた場合は、その物理ブロックに対応するビットに「0」を設定する。一方、ブロックステータスとして不良ブロックを示すフラグが設定されておらず、かつ冗長領域に論理アドレス情報が記述されていない場合は、その物理ブロックに対応するビットに「1」を設定する。
尚、空きブロック数を記述する領域には、空きブロック検索用テーブルの作成を開始するときに「0」を設定しておき、物理ブロックに対応するビットに「1」設定したときは、その値をインクリメントする。又、検索終了位置を記述する領域には、予め設定されている値、又は、乱数発生器等で取得した値を設定する。
Next, when physical blocks (redundant areas) in the
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
空きブロックの検索方法は、物理ゾーンを構成するチップ0内の512ブロックに対する場合と、チップ1内の512ブロックにする場合とで同様なので、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロックの検索方法について説明する。
The empty block search method is the same for the 512 blocks in the
この空きブロック検索用テーブルを用いた空きブロックの検索では、上の行から下の行に、各行に含まれるビットを下位側から上位側に、論理値が「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
この検索は、論理値が「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
[データ転送処理の説明]
図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
(S 82) Data for one subpage (one sector) is read from the data register in the
(S83) Data for one subpage (one sector) stored in the
Here, when data for one page is transferred, the data for one page is transferred from the data register in the
(S84) When data corresponding to the first subpage (sector) is transferred to the data register in the
このように、本発明によるデータ転送処理は、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
なお、本説明では、チップ0のフラッシュメモリからチップ1のフラッシュメモリへのデータ転送処理について説明したが、チップ1のフラッシュメモリからチップ0のフラッシュメモリへのデータ転送処理についても同様に行うことができる。
In this description, the data transfer process from the flash memory of the
[データ転送処理とコピーバックの選択]
データ転送処理では、フラッシュメモリから読み出したデータをコントローラ内のバッファに蓄積した後に、そのデータをフラッシュメモリに書き込むため、読み出したデータに誤りが含まれていた場合、その誤りを訂正することができる。一方、コピーバック処理では、フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、そのデータをメモリセルアレイに書き込むため、短時間でデータを移動させることができるが、フラッシュメモリ内で処理が実行されるため、移動前と移動後のページは同一のチップに属していなければならない。
[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 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
21 アドレス変換テーブル
22、23 空きブロック検索用テーブル
DESCRIPTION OF
13
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の物理ブロックを含む第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.
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20210003305A (en) * | 2018-05-30 | 2021-01-11 | 마이크론 테크놀로지, 인크 | Memory management |
Citations (6)
| 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 |
-
2006
- 2006-10-31 JP JP2006295343A patent/JP4569554B2/en not_active Expired - Fee Related
Patent Citations (6)
| 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)
| 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 |