JP2006127234A - Memory controller, flash memory system, and flash memory control method - Google Patents
Memory controller, flash memory system, and flash memory control method Download PDFInfo
- Publication number
- JP2006127234A JP2006127234A JP2004316099A JP2004316099A JP2006127234A JP 2006127234 A JP2006127234 A JP 2006127234A JP 2004316099 A JP2004316099 A JP 2004316099A JP 2004316099 A JP2004316099 A JP 2004316099A JP 2006127234 A JP2006127234 A JP 2006127234A
- Authority
- JP
- Japan
- Prior art keywords
- zone
- block
- physical
- subzone
- flash memory
- 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 149
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 claims abstract description 66
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000004904 shortening Methods 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
Abstract
【課題】 複数チップのフラッシュメモリを用いて仮想ブロックを形成して、並列処理を実行する場合に、アドレス変換テーブルの作成処理に掛かる処理時間を短縮する。
【解決手段】 ゾーン群を複数のサブゾーン群に分割し、サブゾーン群毎に独立して仮想ブロックを形成している。仮想ブロックと論理アドレスとの対応関係を示す変換テーブルは、サブゾーン群毎に独立して作成する。更に、サブゾーン群毎に作成した変換テーブルを連結することにより、ゾーン群に対する変換テーブルを作成する。又、仮想的に結合される物理ブロックには、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示すアドレス情報が書込まれており、このアドレス情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得することができる。
【選択図】図3PROBLEM TO BE SOLVED: To shorten a processing time required for an address conversion table creation process when a virtual block is formed using a flash memory of a plurality of chips and parallel processing is executed.
A zone group is divided into a plurality of subzone groups, and a virtual block is formed independently for each subzone group. A conversion table indicating the correspondence between virtual blocks and logical addresses is created independently for each subzone group. Furthermore, a conversion table for the zone group is created by connecting the conversion tables created for each sub-zone group. In addition, address information indicating the physical address of the physical block virtually combined with the physical block is written in the physical block virtually combined, and based on this address information, virtually combined. The physical address of the physical block to be processed can be obtained.
[Selection] Figure 3
Description
本発明は、メモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法に関する。 The present invention relates to a memory controller, a flash memory system, and a flash memory control method.
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。 In recent years, flash memories have been widely adopted as semiconductor memories used in memory systems 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型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“1”を示すデータが格納されている消去状態から、論理値“0”を示すデータが格納されている書込状態へと変化することができる。 A NAND flash memory is a type of flash memory that is particularly frequently used in the above memory system. Each of the plurality of memory cells included in the NAND flash memory receives a logical value “0” from an erased state in which data indicating a logical value “1” is stored, independently of the other memory cells. It is possible to change to a writing state in which the indicated data is stored.
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。 In contrast, when changing from the written state to the erased state, each memory cell cannot change independently of the other memory cells. At this time, all of a predetermined number of memory cells called blocks are simultaneously erased. This batch erase operation is generally called “block erase”. The writing process or the reading process for the NAND flash memory is performed in units of a predetermined number of memory cells called pages. A block which is a unit of erasure processing is composed of a plurality of pages.
NAND型フラッシュメモリに対する書込み処理では、まず、書込みデータがNAND型フラッシュメモリ内のレジスタに転送され、レジスタに保持された書込みデータがメモリセルアレイに複写される。この複写(書込み)処理で、メモリセルを消去状態から書込状態に変化させる場合、コントロールゲートに高電圧が印加され、フローティングゲートに電子が注入される。 In the writing process to the NAND flash memory, first, write data is transferred to a register in the NAND flash memory, and the write data held in the register is copied to the memory cell array. When the memory cell is changed from the erased state to the written state by this copying (writing) process, a high voltage is applied to the control gate and electrons are injected to the floating gate.
ここで、レジスタからメモリセルアレイへの複写(書込み)処理は、NAND型フラッシュメモリに与えられる書込みコマンドに基づいて開始される。この処理が開始されると、NAND型フラッシュメモリは処理中であることを示すビジー信号を出力する。ビジー信号が出力されている間、NAND型フラッシュメモリに対するアクセスは拒否され、このビジー信号が出力されている期間が書込み処理の高速化を図る上での妨げになっている。 Here, the copy (write) processing from the register to the memory cell array is started based on a write command given to the NAND flash memory. When this process is started, the NAND flash memory outputs a busy signal indicating that the process is in progress. While the busy signal is output, access to the NAND flash memory is denied, and the period during which the busy signal is output hinders speeding up of the writing process.
この問題を解決するために、下記特許文献1では、異なるチップに属する複数の物理ブロックを仮想的に結合することにより、仮想ブロックを形成し、論理アドレスが連続するデータにアクセスするときに、仮想ブロックに含まれる各物理ブロックに対して、並列に処理を実行できるようにしている。
上述のように複数のチップに属する物理ブロックで、仮想ブロックを形成して、並列処理を実行する場合、論理アドレスから物理アドレスを得るためのアドレス変換テーブルを、チップ毎に作成しなければならない。従って、仮想ブロックを形成して並列処理を実行すれば、書込み処理や読出し処理の高速化を図ることができるが、アドレス変換テーブルの作成処理に掛かる処理時間が増加する。 As described above, when a virtual block is formed by physical blocks belonging to a plurality of chips and parallel processing is executed, an address conversion table for obtaining a physical address from a logical address must be created for each chip. Therefore, if a virtual block is formed and parallel processing is executed, the speed of the writing process and the reading process can be increased, but the processing time required for the address conversion table creation process increases.
そこで、本発明は、仮想ブロックを形成して書込み処理の高速化を図る場合に、アドレス変換テーブルの作成処理に掛かる負担を軽減することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。 Therefore, the present invention provides a memory controller and a flash memory system including the memory controller that can reduce the load on the address conversion table creation process when a virtual block is formed to increase the speed of the writing process, and An object of the present invention is to provide a flash memory control method.
上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する手段と、
同一の前記サブゾーン群に属する前記各サブゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックに対して、論理アドレスが連続するデータを割当てる手段と、
前記サブゾーン群を複数集めて、ゾーン群を形成する手段と
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
を備えることを特徴とする。
To achieve the above object, a memory controller according to a first aspect of the present invention is a memory controller that accesses a flash memory whose storage area is composed of a plurality of chips based on a logical address supplied from a host computer. There,
Means for collecting a plurality of physical blocks in each chip to form a subzone;
Means for collecting a plurality of subzones in different chips to form a subzone group;
Means for forming a virtual block by virtually combining physical blocks selected from each subzone belonging to the same subzone group;
Means for allocating data having consecutive logical addresses to the virtual block;
Means for collecting a plurality of the sub-zone groups to form a zone group; and means for assigning a logical address area in which logical addresses are continuous to the zone group;
Means for writing address information indicating physical addresses of other physical blocks virtually combined in the physical blocks constituting the virtual block;
Access means for accessing each physical block belonging to the virtual block based on the address information;
It is characterized by providing.
尚、前記アドレス情報は、各物理ブロックの冗長領域に記憶されてもよい。 The address information may be stored in a redundant area of each physical block.
また、前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されてもよい。 Further, the subzone may be composed of a plurality of physical blocks having consecutive physical addresses.
また、前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であってもよい。 The address information may be a serial number assigned in the order of logical addresses to a plurality of physical blocks assigned to the same logical address area.
また、前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成してもよい。 Further, when creating a conversion table indicating the correspondence between the virtual block and the logical address, an arbitrary subzone is selected for each subzone group, and the logical address written in the redundant area of the selected subzone The conversion table may be created on the basis of the information regarding.
また、ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするメモリコントローラであって、
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
同じチップ内の前記サブゾーンを複数集めて、ゾーンを形成する手段と、
異なるチップ内の前記ゾーンを複数集めてゾーン群を形成する手段と、
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割り当てる手段と、
前記各ゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
任意の前記サブゾーンを選択し、選択した該サブゾーンの冗長領域に書き込まれている論理アドレスに関する情報に基づいて、変換テーブルを作成する手段とを備え、
前記変換テーブルを作成するときに選択された複数のサブゾーンにおいて、1のサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されないように構成してもよい。
A memory controller for accessing a flash memory having a plurality of chips based on a logical address supplied from a host computer;
Means for collecting a plurality of physical blocks in each chip to form a subzone;
Means for collecting a plurality of said sub-zones in the same chip to form a zone;
Means for collecting a plurality of the zones in different chips to form a zone group;
Means for allocating a region of logical addresses having consecutive logical addresses to the zone group;
Means for forming a virtual block by virtually combining physical blocks selected from each zone;
Means for writing address information indicating physical addresses of other physical blocks virtually combined in the physical blocks constituting the virtual block;
Access means for accessing each physical block belonging to the virtual block based on the address information;
Means for selecting any of the subzones, and creating a conversion table based on the information about the logical address written in the redundant area of the selected subzone;
In a plurality of subzones selected when creating the conversion table, a physical block in one subzone and a physical block in another subzone may not be virtually combined.
上記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、前述のいずれかのメモリコントローラと複数チップのフラッシュメモリを備えることを特徴とする。 In order to achieve the above object, a flash memory system according to a second aspect of the present invention includes any one of the above-described memory controllers and a plurality of chips of flash memory.
上記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、
ホストコンピュータから供給される論理アドレスに基づいて、記憶領域が複数チップで構成されたフラッシュメモリにアクセスするフラッシュメモリの制御方法であって、
同一チップ内の物理ブロックを複数集めてゾーンを形成し、異なるチップ内の前記ゾーンを複数集めてゾーン群を形成し、該ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる処理と、
前記各ゾーンに複数のグループのサブゾーンを形成し、対応関係が設定されている各チップ内の該サブゾーンから選択された物理ブロックを、仮想的に結合することにより仮想ブロックを形成する処理と、
前記仮想ブロックに対して、論理アドレスが連続するデータを書込む処理と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む処理と、
を含むことを特徴とする。
In order to achieve the above object, a flash memory control method according to a third aspect of the present invention includes:
A flash memory control method for accessing a flash memory whose storage area is composed of a plurality of chips based on a logical address supplied from a host computer,
A process in which a plurality of physical blocks in the same chip are collected to form a zone, a plurality of the zones in different chips are collected to form a zone group, and a logical address area having consecutive logical addresses is assigned to the zone group. When,
Forming a plurality of groups of sub-zones in each zone, and forming a virtual block by virtually combining physical blocks selected from the sub-zones in each chip for which a correspondence relationship is set; and
A process of writing data having consecutive logical addresses to the virtual block;
A process of writing address information indicating a physical address of another physical block virtually combined in a physical block constituting the virtual block;
It is characterized by including.
尚、前記アドレス情報が、各物理ブロックの冗長領域に記憶されてもよい。 The address information may be stored in a redundant area of each physical block.
また、前記サブゾーンが、物理アドレスが連続する複数の物理ブロックで構成されていてもよい。 Further, the sub-zone may be composed of a plurality of physical blocks having consecutive physical addresses.
また、前記アドレス情報が、同一の論理アドレス領域に割当てられている複数の物理ブロックに対して、論理アドレスの順番で付けられた連番であってもよい。 The address information may be a serial number assigned in the order of logical addresses to a plurality of physical blocks assigned to the same logical address area.
また、前記仮想ブロックと前記論理アドレスとの対応関係を示す変換テーブルを作成するときに、前記サブゾーン群毎に任意のサブゾーンを選択し、選択した該サブゾーンの冗長領域に書込まれている論理アドレスに関する情報に基づいて、前記変換テーブルを作成してもよい。
この場合、異なるゾーンで前記サブゾーン群に対する前記変換テーブルの作成処理が平行して実効されてもよい。
Further, when creating a conversion table indicating the correspondence between the virtual block and the logical address, an arbitrary subzone is selected for each subzone group, and the logical address written in the redundant area of the selected subzone The conversion table may be created on the basis of the information regarding.
In this case, the conversion table creation process for the sub-zone group may be executed in parallel in different zones.
本発明によれば、サブゾーン群毎に、独立して仮想ブロックが形成されるので、仮想ブロックと論理アドレスの対応関係を示す変換テーブルを、サブゾーン群毎に独立して作成することができる。更に、サブゾーン群毎に作成した変換テーブルを連結することにより、ゾーン群に対する変換テーブルを、より効率的に作成することができる。又、仮想的に結合される物理ブロックには、その物理ブロックと仮想的に結合される物理ブロックの物理アドレスを示すアドレス情報が書込まれているので、このアドレス情報に基づいて、仮想的に結合される物理ブロックの物理アドレスを知得することができる。従って、仮想的に複数の物理ブロックが結合された仮想ブロックにアクセスするときに、同一の仮想ブロックに属する1個の物理ブロックに対するアドレス変換テーブルを作成するだけで、同一の仮想ブロックに属する全ての物理ブロックに対してアクセスすることができる。 According to the present invention, since a virtual block is formed independently for each subzone group, a conversion table indicating the correspondence between the virtual block and the logical address can be created independently for each subzone group. Further, by concatenating the conversion tables created for each subzone group, the conversion table for the zone group can be created more efficiently. In addition, since the address information indicating the physical address of the physical block virtually combined with the physical block is written in the physically connected physical block, based on the address information, virtually The physical address of the physical block to be combined can be obtained. Therefore, when accessing a virtual block in which a plurality of physical blocks are virtually combined, it is only necessary to create an address conversion table for one physical block belonging to the same virtual block. Can access a physical block.
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を、概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a block diagram schematically showing a
As shown in FIG. 1, the
Examples of the
Details of the
[フラッシュメモリ2の説明]
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
[Description of flash memory 2]
In this
NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行なっている。 Since the NAND flash memory has such characteristics, normally, when data is rewritten, new data (data after rewriting) is written to the erased block that has been erased, and old data is written. A process of erasing a block in which (data before rewriting) has been written is performed.
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられる論理アドレスと、フラッシュメモリ2内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ2にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ2に対するアクセスが行なわれる。
When rewriting such data, since the data after rewriting is written in a different block from before rewriting, the logical address given from the
図2は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、本実施形態のフラッシュメモリ2では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
FIG. 2 is an explanatory diagram showing the relationship between blocks and pages.
The configuration of the block and page differs depending on the specification of the flash memory. However, in the
ここで、ユーザー領域は、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するECCブロックによって生成される。
Here, the user area is mainly an area where data supplied from the
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。 The corresponding logical address information is written when data is stored in a 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 corresponding logical address information is not written, so whether the corresponding logical address information is written or not is the erased block. Can be judged. That is, if the corresponding logical block address is not written, it is determined that the block is an 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). When the physical block is determined to be a bad block, Is set with a flag indicating that it is a bad block.
次に、フラッシュメモリ2の回路構成について説明する。一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
Next, the circuit configuration of the
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入したり、フローティングゲートから電荷(電子)を排出したりすることによって、データの書込みや消去を行っている。 A memory cell constituting the memory cell array is composed of a MOS transistor having two gates. Here, the upper gate is called a control gate, and the lower gate is called a floating gate. By injecting charges (electrons) into the floating gate and discharging charges (electrons) from the floating gate, Data is written or erased.
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態(書込状態)が、論理値"0"のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値"1"のデータに対応する。 Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When injecting electrons into the floating gate, a high voltage is applied so that the control gate is at the high potential side. When electrons are injected from the floating gate, a high voltage at which the control gate is at the low potential side is applied. Applied to discharge electrons. The state in which electrons are injected into the floating gate (write state) corresponds to data having a logical value “0”, and the state in which electrons are discharged from the floating gate (erased state) has a logical value “1”. Corresponds to data.
[メモリコントローラ3の説明]
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
[Description of Memory Controller 3]
The
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づいて、ホストインターフェースブロック7は動作する。
The
The host
ホストインターフェースブロック7は、ホストシステム4とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口として、メモリコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口として、ホストシステム4に供給される。
The
さらに、ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
Further, the
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成されている。
The
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを、一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまで、バッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまで、バッファ9に保持される。
The
フラッシュメモリシーケンサブロック12は、内部コマンドに基づいて、フラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。複数のレジスタに、内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。
The flash
ここで、「内部コマンド」とは、メモリコントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
Here, the “internal command” is a command given from the
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行なう機能ブロックである。
The flash
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されているエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
The
[フラッシュメモリシステムの動作の説明]
本発明に係るフラッシュメモリシステムでは、複数チップでフラッシュメモリ2の記憶領域を構成し、互いに異なるチップに属する物理ブロックを仮想的に結合して、仮想ブロックを形成している。この仮想ブロックについて、図3及び図4を参照して説明する。
[Description of Flash memory system operation]
In the flash memory system according to the present invention, a storage area of the
図3は、仮想的に結合された物理ブロックを示す図である。
図3では、フラッシュメモリ2の記憶領域をチップ0、チップ1、チップ2及びチップ3の4個のチップにより構成した例を示している。ここで、チップ0〜3の各チップ内には、1024個の物理ブロックでゾーンが形成されている。各ゾーンを構成する物理ブロックには、0〜1023の連番(#0〜#1023)が付けられている。更に、各ゾーンは、物理ブロック#0〜#511で構成されたサブゾーン0と、物理ブロック#512〜#1023で構成されたサブゾーン1とに分割されている。言い換えれば、物理ブロック#0〜#511で構成されたサブゾーン0と物理ブロック#512〜#1023で構成されたサブゾーン1を連結してゾーンを形成している。
FIG. 3 is a diagram illustrating physical blocks virtually combined.
FIG. 3 shows an example in which the storage area of the
各チップのゾーンには、それぞれ異なるチップ内のゾーンとの対応関係が設定されている。図3には、対応関係が設定されている各チップ内のゾーンが1つずつ示されている。ここで、チップ0内のゾーンA、チップ1内のゾーンB、チップ2内のゾーンC及びチップ3内のゾーンDは対応関係が設定されており、ゾーンA〜Dがゾーン群を形成している。このゾーン群に対しては、論理アドレスが連続する記憶領域が割当てられる。例えば、図3に示したような4096個の物理ブロックで構成されたゾーン群に対して、物理ブロック4000個分の記憶領域が割当てられる。
Correspondences with zones in different chips are set in the zones of each chip. FIG. 3 shows one zone in each chip for which a correspondence relationship is set. Here, the zone A in the
ゾーンA、ゾーンB、ゾーンC及びゾーンDは、それぞれサブゾーン0とサブゾーン1に分割されており、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0(物理ブロック#0〜#511で構成されるサブゾーン)がサブゾーン群を形成している。一方、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1(物理ブロック#512〜#1023で構成されるサブゾーン)もサブゾーン群を形成している。以下、ゾーンAのサブゾーン0、ゾーンBのサブゾーン0、ゾーンCのサブゾーン0及びゾーンDのサブゾーン0で形成される記憶領域をサブゾーン群0と言い、ゾーンAのサブゾーン1、ゾーンBのサブゾーン1、ゾーンCのサブゾーン1及びゾーンDのサブゾーン1で形成される記憶領域をサブゾーン群1と言う。
Zone A, zone B, zone C, and zone D are divided into
サブゾーン群0とサブゾーン群1では、互いに独立して仮想ブロックが形成される。つまり、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0に属する物理ブロック同士、又は、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1に属する物理ブロック同士は仮想的に結合されて仮想ブロックを形成するが、各ゾーンのサブゾーン0に属する物理ブロックと、それと異なるゾーンのサブゾーン1に属する物理ブロックは仮想的に結合されないように設定されている。
In
例えば、ゾーンAのサブゾーン0に属する物理ブロック#1、ゾーンBのサブゾーン0に属する物理ブロック#2、ゾーンCのサブゾーン0に属する物理ブロック#0及びゾーンDのサブゾーン0に属する物理ブロック#4が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン0に属する物理ブロック同士が仮想的に結合されている。又、ゾーンAのサブゾーン1に属する物理ブロック#513、ゾーンBのサブゾーン1に属する物理ブロック#512、ゾーンCのサブゾーン1に属する物理ブロック#513及びゾーンDのサブゾーン1に属する物理ブロック#514が仮想的に結合され、仮想ブロックを形成している。この仮想ブロックは、サブゾーン1に属する物理ブロック同士が仮想的に結合されている。
For example,
つまり、この例では、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン0(物理ブロック#0〜#511)から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合と、ゾーンA、ゾーンB、ゾーンC及びゾーンDのサブゾーン1(物理ブロック#512〜#1023)から1個ずつ選択された物理ブロックで仮想ブロックが形成される場合とがある。
That is, in this example, a virtual block is formed with physical blocks selected one by one from the sub-zone 0 (
図4は、仮想ブロックに記憶されるユーザーデータの配列を説明するための説明図である。
ここで、仮想ブロックに記憶されるユーザーデータの配列について説明する。図4は、仮想ブロックを形成する各物理ブロックが、32個のページで構成されている場合を示している。この仮想ブロックは、4個の物理ブロックが結合されているので、1つの仮想ブロックには128ページ分のユーザーデータが記憶される。論理アドレスが連続する128ページ分のユーザーデータを、ページ単位で区切り、論理アドレスが若い方から順番にYD0〜YD127とすれば、論理アドレスが最も若いユーザーデータYD0が、ゾーンAの物理ブロック#1のページ0(P0)に割当てられ、論理アドレスが次に若いユーザーデータYD1が、ゾーンBの物理ブロック#2のページ0(P0)に割当てられる。
FIG. 4 is an explanatory diagram for explaining an arrangement of user data stored in the virtual block.
Here, an array of user data stored in the virtual block will be described. FIG. 4 shows a case where each physical block forming the virtual block is composed of 32 pages. Since this virtual block is composed of four physical blocks, 128 pages of user data are stored in one virtual block. If user data for 128 pages having consecutive logical addresses is divided into pages and YD0 to YD127 are assigned in order from the lowest logical address, the user data YD0 having the lowest logical address is the
以下、論理アドレスが若い方から順番に、ユーザーデータYD2が、ゾーンCの物理ブロック#0のページ0(P0)に割当てられ、ユーザーデータYD3が、ゾーンDの物理ブロック#4のページ0(P0)に割当てられる。
Hereinafter, in order from the lowest logical address, user data YD2 is allocated to page 0 (P0) of
この後も同様に、ゾーンAの物理ブロック#1、ゾーンBの物理ブロック#2、ゾーンCの物理ブロック#0及びゾーンDの物理ブロック#4に対して、ユーザーデータYD4〜127が、論理アドレスが若い方から順番に割当てられる。
Similarly, the user data YD4 to 127 are logical addresses for the
上記のように、論理アドレスが連続するユーザーデータを、ページ単位で、ゾーンA〜Dの物理ブロックに順次割当てた場合、論理アドレスが連続する複数ページ分のユーザーデータを、書込んだり、又は読み出したりするときに、フラッシュメモリ2のチップ0〜3に対して、並列に処理を実行することができる。又、チップ0〜3に接続するバスがチップ毎に独立していない場合であっても、チップ0〜3に対するユーザーデータの送受信やコマンドの送信を、各チップ0〜3内の処理が終了するのを待つことなく順次実行していくことができる。このような並列処理の実行や待機時間の短縮により、書込み処理や読出し処理に掛かる処理時間を短縮することができる。
As described above, when user data having continuous logical addresses are sequentially assigned to physical blocks in zones A to D in units of pages, user data for a plurality of pages having continuous logical addresses is written or read. When processing, it is possible to execute processing on the
次に、サブゾーン群毎に独立して形成される仮想ブロックと、論理アドレスの対応関係について説明する。仮想ブロックと論理アドレスの対応関係は、仮想ブロックを1個の物理ブロックと見做して、ブロック単位で管理されている。図3に示したように、4個の物理ブロックを仮想的に結合して、仮想ブロックを形成した場合、物理ブロック4個分の記憶領域に対して、連続する論理アドレスが割当てられる。 Next, a correspondence relationship between virtual blocks formed independently for each subzone group and logical addresses will be described. The correspondence relationship between the virtual block and the logical address is managed in units of blocks by regarding the virtual block as one physical block. As shown in FIG. 3, when four physical blocks are virtually combined to form a virtual block, consecutive logical addresses are assigned to storage areas for four physical blocks.
図5は、論理アドレス空間を示す図であり、論理アドレス空間をLBA(Logical Block Address)で示している。
図5中のLBA0〜LBA511はセクタ単位で付けた連番であり、1セクタの容量がフラッシュメモリ2の1ページの容量と等しく、各物理ブロックが32個のページで構成されている場合、4個の物理ブロックを結合した仮想ブロックは、論理アドレス空間の128セクタに割当てられる。従って、論理アドレス空間の128セクタ分の領域を1つの論理ブロック群とすれば、1つの仮想ブロックに1つの論理ブロック群が割当てられる。
FIG. 5 is a diagram showing a logical address space, and the logical address space is indicated by LBA (Logical Block Address).
LBA0 to LBA511 in FIG. 5 are serial numbers assigned in units of sectors. When the capacity of one sector is equal to the capacity of one page of the
図5に示した例では、論理アドレス空間を、128セクタ毎に区切った論理ブロック群に連番LBN0〜LBN3を付けている(以下、論理ブロック群に付けた連番を論理ブロック連番という)。
論理ブロック連番LBN0がLBA0〜LBA127に対応し、論理ブロック連番LBN1がLBA128〜LBA255に対応し、以下同様に、128セクタ毎に論理ブロック連番が割当てられている。
In the example shown in FIG. 5, serial numbers LBN0 to LBN3 are assigned to logical block groups obtained by dividing the logical address space into 128 sectors (hereinafter, the serial numbers assigned to the logical block groups are referred to as logical block serial numbers). .
The logical block serial number LBN0 corresponds to LBA0 to LBA127, the logical block serial number LBN1 corresponds to LBA128 to LBA255, and similarly, a logical block serial number is assigned to each 128 sectors.
この論理ブロック連番LBN0〜LBN3は、その論理ブロック連番に対応するユーザーデータが書込まれた物理ブロックの冗長領域に書込まれ、書込まれた論理ブロック連番に基づいて仮想ブロックと論理ブロック群の対応関係が管理される。 The logical block serial numbers LBN0 to LBN3 are written in the redundant area of the physical block in which the user data corresponding to the logical block serial number is written, and based on the written logical block serial number, Correspondence between block groups is managed.
例えば、図3で、LBA0〜LBA127に対応するユーザーデータが書込まれた仮想ブロックに属する4個の物理ブロックの冗長領域にはLBN0が書込まれ、LBA128〜LBA255に対応するユーザーデータが書込まれた仮想ブロックに属する4個の物理ブロックの冗長領域には、LBN1が書込まれる。 For example, in FIG. 3, LBN0 is written in the redundant areas of four physical blocks belonging to the virtual block in which user data corresponding to LBA0 to LBA127 is written, and user data corresponding to LBA128 to LBA255 is written. LBN1 is written in the redundant areas of the four physical blocks belonging to the virtual block.
図3に示した4096個の物理ブロックで構成されたゾーン群には、例えば、4000個の物理ブロックに相当する論理アドレスの領域が割当てられる。この4000個の物理ブロックに相当する論理アドレスの領域は、論理アドレスが連続した領域であり、128セクタ毎に論理ブロック連番LBN0〜LBN999に対応する論理ブロック群に分割される。論理ブロック連番LBN0〜LBN999の各論理ブロック群に対応するユーザーデータは、サブゾーン群0に書込まれても、サブゾーン群1に書込まれてもよい。
For example, a zone of logical addresses corresponding to 4000 physical blocks is allocated to the zone group composed of 4096 physical blocks shown in FIG. The logical address area corresponding to 4000 physical blocks is an area where logical addresses are continuous, and is divided into logical block groups corresponding to logical block serial numbers LBN0 to LBN999 every 128 sectors. User data corresponding to each logical block group of logical block serial numbers LBN0 to LBN999 may be written into
例えば、論理ブロック連番LBN0に対応するユーザーデータが、サブゾーン群0に書込まれている場合に、このデータに置き換えられる新たなユーザーデータ(論理ブロック連番LBN0に対応するユーザーデータ)を、サブゾーン群1に書込んでもよい。
For example, when user data corresponding to the logical block serial number LBN0 is written in the
フラッシュメモリ2にアクセスするときには、論理ブロック群と仮想ブロックとの対応関係を示した変換テーブルが用いられる。
図6(a),(b)は、変換テーブルの説明図である。
図3で示したように、異なるゾーンに属する4個の物理ブロックを仮想的に結合して物理ブロックを形成した場合、各論理ブロック連番に対して、異なるゾーンに属する4個の物理ブロックが対応する。従って、各論理ブロック連番に対応する物理ブロックを、ゾーン毎に示した変換テーブル(図6(a))が必要になる。
しかし、図6(a)に示したような変換テーブルを作成する場合には、冗長領域に書込まれている論理ブロック連番を読み出す処理を、4つのゾーンに対して実行しなければならない。つまり、1つのゾーンが1024個の物理ブロックで構成されている場合には、4096個の物理ブロックに対して読出し処理を実行しなければならない。
When accessing the
6A and 6B are explanatory diagrams of the conversion table.
As shown in FIG. 3, when a physical block is formed by virtually combining four physical blocks belonging to different zones, four physical blocks belonging to different zones are associated with each logical block serial number. Correspond. Therefore, a conversion table (FIG. 6A) showing the physical blocks corresponding to each logical block serial number for each zone is required.
However, when creating the conversion table as shown in FIG. 6A, the process of reading the logical block serial number written in the redundant area must be executed for the four zones. That is, when one zone is composed of 1024 physical blocks, a read process must be executed for 4096 physical blocks.
上記のような変換テーブルの作成にかかる負担を軽減するため、本発明に係るフラッシュメモリシステム1では、各仮想ブロックに属する1個の物理ブロックと論理ブロック連番との対応関係を示した変換テーブルだけを作成し、変換テーブルに論理ブロック連番との対応関係が示されていない物理ブロックについては、後述するリンク番号に基づいて、対応する論理ブロック連番やLBAを知得している。
In order to reduce the burden on the creation of the conversion table as described above, in the
図6(b)は、ゾーンAのサブゾーン0(物理ブロック#0〜#511)及びゾーンBのサブゾーン1(物理ブロック#512〜#1023)と論理ブロック連番との対応関係を示した変換テーブルである。この変換テーブルは、各論理ブロック連番LBN0〜LBN999が、ゾーンAのサブゾーン0(物理ブロック#0〜#511)若しくはゾーンBのサブゾーン1(物理ブロック#512〜#1023)のいずれの物理ブロックに対応するかを示している。ここで、サブゾーン群0とサブゾーン群1では、独立して仮想ブロックが形成されるので、同じ論理ブロック連番に対応する物理ブロックが、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)とゾーンB内のサブゾーン1(物理ブロック#512〜#1023)の双方に存在することはない。
FIG. 6B shows a conversion table showing the correspondence between the sub-zone 0 (
仮に、サブゾーン群0とサブゾーン群1で、独立して仮想ブロックが形成されなかった場合、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとゾーンB内のサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックを含んだ仮想ブロックが形成されることがある。このような場合、同じ論理ブロック連番に対応する物理ブロックが、ゾーンA内のサブゾーン0(物理ブロック#0〜#511)とゾーンB内のサブゾーン1(物理ブロック#512〜#1023)の双方に存在することになる。
If a virtual block is not formed independently in
上述のように、サブゾーン群0とサブゾーン群1で、独立して仮想ブロックが形成されるようにしたことにより、論理ブロック連番とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとの対応関係、若しくは論理ブロック連番とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係に基づいて、ゾーンA、ゾーンB、ゾーンC及びゾーンDで構成されるゾーン群にアクセスすることができる。
As described above, since the virtual blocks are independently formed in the
例えば、図6(b)の変換テーブルに基づいて、論理ブロック連番LBN0に対応する仮想ブロックにゾーン0の物理ブロック#1が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の3個の物理ブロックを知得し、論理ブロック連番LBN0に対応する仮想ブロックにアクセスすることができる。又、論理ブロック連番LBN550に対応する仮想ブロックにゾーン1の物理ブロック#512が属することが分かれば、後述するリンク番号に基づいて、この仮想ブロックに属する他の3個の物理ブロックを知得し、論理ブロック連番LBN550に対応する仮想ブロックにアクセスすることができる。
For example, if the
ここで、図6(b)の変換テーブルは、論理ブロック連番LBN0〜LBN999とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロック、若しくはゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示しているので、変換テーブルに示された物理ブロックの連番が#0〜#511の場合は、ゾーンAに属する物理ブロックが対応し、変換テーブルに示された物理ブロックの連番が#512〜#1023の場合は、ゾーンBに属する物理ブロックが対応する。
Here, the conversion table shown in FIG. 6B includes logical block serial numbers LBN0 to LBN999 and a physical block belonging to subzone 0 (
図7は、変換テーブルの作成方法を示す説明図である。
図6(b)の変換テーブルを作成する場合、図7に示したようにゾーンAのサブゾーン0に属する物理ブロック、つまり、ゾーンAの物理ブロック#0〜#511の冗長領域に対する読出し処理と、ゾーンBのサブゾーンに属する物理ブロック、つまり、ゾーンBの物理物理ブロック#512〜#1023の冗長領域に対する読出し処理を、並行して進行させることができる。従って、1つのゾーンのサブゾーン0及びサブゾーン1の冗長領域に対する読出し処理を実行して、論理ブロック連番LBN0〜LBN999と1つのゾーンに属する物理ブロック#0〜#1023との対応関係を示した変換テーブルを作成する場合よりも、短時間で変換テーブルを作成することができる。
FIG. 7 is an explanatory diagram showing a conversion table creation method.
When creating the conversion table of FIG. 6B, as shown in FIG. 7, the read processing for the physical blocks belonging to the
図8(a),(b)は、仮想的に結合された各物理ブロックの冗長領域に書込まれている論理ブロック連番とリンク番号を示す図である。
図8(a)では、ゾーンAの物理ブロック#1、ゾーンBの物理ブロック#2、ゾーンCの物理ブロック#0及びゾーンDの物理ブロック#4は仮想的に結合されて1つの仮想ブロックとなり、この仮想ブロックには、論理アドレス空間のLBA0〜127が割当てられている。従って、これらの物理ブロックの冗長領域には、セクタ単位の連番LBA0〜127に対応する論理ブロック連番LBN0が書込まれている。
FIGS. 8A and 8B are diagrams showing logical block serial numbers and link numbers written in the redundant areas of virtually connected physical blocks.
In FIG. 8A, the
同様に、仮想ブロックを形成しているゾーンAの物理ブロック#3、ゾーンBの物理ブロック#4、ゾーンCの物理ブロック#5及びゾーンDの物理ブロック#6の冗長領域には、セクタ単位の連番LBA128〜LBA255に対応する論理ブロック連番LBN1が書込まれている。又、仮想ブロックを形成しているゾーンAの物理ブロック#7、ゾーンBの物理ブロック#6、ゾーンCの物理ブロック#8及びゾーンDの物理ブロック#9の冗長領域には、セクタ単位の連番LBA256〜LBA383に対応する論理ブロック連番LBN2が書込まれている。
Similarly, in the redundant areas of the
論理ブロック連番LBN0〜LBN2に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域には、更にリンク番号が書込まれている。このリンク番号は、仮想的に結合されている物理ブロックの結合関係を知得するために使用される。例えば、ゾーンAの物理ブロック#1の冗長領域には、この物理ブロック#1と仮想的に結合するゾーンBの物理ブロック#2の番号#2がリンク番号として書込まれ、ゾーンBの物理ブロック#2の冗長領域には、この物理ブロック#2と仮想的に結合するゾーンCの物理ブロック#0の番号#0がリンク番号として書込まれる。ゾーンCの物理ブロック#0の冗長領域には、この物理ブロック#0と仮想的に結合するゾーンDの物理ブロック#4の番号#4がリンク番号として書込まれている。
A link number is further written in the redundant area of each physical block belonging to these virtual blocks corresponding to the logical block serial numbers LBN0 to LBN2. This link number is used to know the connection relationship of the physically connected physical blocks. For example, in the redundant area of the
従って、ゾーンAの物理ブロック#1の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロックと仮想的に結合するゾーンBの物理ブロック#2の番号が#2であることが分かり、ゾーンBの物理ブロック#2の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック#2と仮想的に結合するゾーンCの物理ブロック#0の番号が#0であることが分かる。同様に、ゾーンCの物理ブロック#0の冗長領域に書込まれているリンク番号を読み出すことにより、この物理ブロック#0と仮想的に結合するゾーンDの物理ブロック#4の番号が#4であることが分かる。
Therefore, by reading the link number written in the redundant area of the
論理ブロック連番LBN1、LBN2に対応する仮想ブロックについても同様に、ゾーンAの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンBの物理ブロックの連番がリンク番号として書込まれ、ゾーンBの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンCの物理ブロックの連番がリンク番号として書込まれ、ゾーンCの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンDの物理ブロックの連番がリンク番号として書込まれる。
これらのリンク番号によって、ゾーンAの物理ブロック#3と仮想的に結合する物理ブロックがゾーンBの物理ブロック#4であり、ゾーンBの物理ブロック#4と仮想的に結合する物理ブロックがゾーンCの物理ブロック#5であり、ゾーンCの物理ブロック#5と仮想的に結合する物理ブロックがゾーンDの物理ブロック#6であることが分かる。
また、ゾーンAの物理ブロック#7と仮想的に結合する物理ブロックがゾーンBの物理ブロック#6であり、ゾーンBの物理ブロック#6と仮想的に結合する物理ブロックがゾーンCの物理ブロック#8であり、ゾーンCの物理ブロック#8と仮想的に結合する物理ブロックがゾーンDの物理ブロック#9であることが分かる。
Similarly, for the virtual blocks corresponding to the logical block serial numbers LBN1 and LBN2, the serial number of the physical block of zone B that is virtually coupled to this physical block is written as the link number in the redundant area of the physical block of zone A. In the redundant area of the physical block of zone B, the serial number of the physical block of zone C virtually linked to this physical block is written as the link number, and in the redundant area of the physical block of zone C, The serial number of the physical block in zone D virtually linked to this physical block is written as the link number.
With these link numbers, the physical block virtually combined with the
The physical block virtually combined with the
尚、変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックとの対応関係を示している場合、サブゾーン群0に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンAのサブゾーン0(物理ブロック#0〜#511)に属する物理ブロックから順番にリンク番号を辿ることになる。
When the conversion table indicates the correspondence between the logical block serial numbers LBN0 to LBN999 and the physical blocks belonging to the subzone 0 (
従って、ゾーンDの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンDの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンAの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンA〜Dのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンA〜Dのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリ2にアクセスすることができる。
Therefore, the link number is not written in the redundant area of the physical block of zone D, but the serial number of the physical block of zone A virtually linked to this physical block is linked to the redundant area of the physical block of zone D. If it is written as a number, it is possible to know the physical blocks of other zones virtually combined from any of the physical blocks of zones A to D. In this case, the
図8(b)では、ゾーンAの物理ブロック#513、ゾーンBの物理ブロック#512、ゾーンCの物理ブロック#513及びゾーンDの物理ブロック#514が仮想的に結合されていることを示している。これらの物理ブロックの冗長領域には、この仮想ブロックに対応する論理ブロック連番LBN550が書込まれている。同様に、仮想ブロックを形成しているゾーンAの物理ブロック#515、ゾーンBの物理ブロック#514、ゾーンCの物理ブロック#517及びゾーンDの物理ブロック#516の冗長領域には、論理ブロック連番LBN551が書込まれている。又、仮想ブロックを形成しているゾーンAの物理ブロック#518、ゾーンBの物理ブロック#520、ゾーンCの物理ブロック#519及びゾーンDの物理ブロック#521の冗長領域には、論理ブロック連番LBN552が書込まれている。
FIG. 8B shows that the
論理ブロック連番LBN550〜552に対応するこれらの仮想ブロックに属する各物理ブロックの冗長領域にも、仮想的に結合されている物理ブロックの結合関係を知得するために使用されるリンク番号が書込まれている。論理ブロック連番LBN550〜LBN552に対応するこれらの仮想ブロックは、サブゾーン群1に属する物理ブロックで構成されている仮想ブロックに対応している。サブゾーン群1に対する変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示している場合、ゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックから順番にリンク番号を辿ることになる。
The link number used to know the connection relationship of the virtually connected physical blocks is also written in the redundant area of each physical block belonging to these virtual blocks corresponding to the logical block serial numbers LBN550 to 552. It is rare. These virtual blocks corresponding to the logical block serial numbers LBN 550 to LBN 552 correspond to virtual blocks configured by physical blocks belonging to the
従って、論理ブロック連番LBN550〜LBA999に対応する仮想ブロックについては、ゾーンBの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンCの物理ブロックの連番がリンク番号として書込まれ、ゾーンCの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンDの物理ブロックの連番がリンク番号として書込まれ、ゾーンDの物理ブロックの冗長領域には、この物理ブロックと仮想的に結合するゾーンAの物理ブロックの連番がリンク番号として書込まれる。 Therefore, for the virtual blocks corresponding to the logical block serial numbers LBN550 to LBA999, the serial number of the physical block of zone C virtually linked to this physical block is written as the link number in the redundant area of the physical block of zone B. In the redundant area of the physical block of zone C, the serial number of the physical block of zone D virtually linked to this physical block is written as the link number, and in the redundant area of the physical block of zone D, A serial number of a physical block in zone A virtually linked to this physical block is written as a link number.
このリンク番号によって、ゾーンBの物理ブロック#512と仮想的に結合する物理ブロックがゾーンCの物理ブロック#513であり、ゾーンCの物理ブロック#513と仮想的に結合する物理ブロックがゾーンDの物理ブロック#514であり、ゾーンDの物理ブロック#514と仮想的に結合する物理ブロックがゾーンAの物理ブロック#513であることが分かる。
又、ゾーンBの物理ブロック#514と仮想的に結合する物理ブロックがゾーンCの物理ブロック#517であり、ゾーンCの物理ブロック#517と仮想的に結合する物理ブロックがゾーンDの物理ブロック#516であり、ゾーンDの物理ブロック#516と仮想的に結合する物理ブロックがゾーンAの物理ブロック#515であることが分かる。
また、ゾーンBの物理ブロック#520と仮想的に結合する物理ブロックがゾーンCの物理ブロック#519であり、ゾーンCの物理ブロック#519と仮想的に結合する物理ブロックがゾーンDの物理ブロック#521であり、ゾーンDの物理ブロック#521と仮想的に結合する物理ブロックがゾーンAの物理ブロック#518であることが分かる。
Based on this link number, the physical block virtually combined with the
The physical block virtually combined with the
The physical block virtually combined with the
尚、変換テーブルが論理ブロック連番LBN0〜LBN999とゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックとの対応関係を示している場合、サブゾーン群1に属する物理ブロックで構成されている仮想ブロックにアクセスするときは、ゾーンBのサブゾーン1(物理ブロック#512〜#1023)に属する物理ブロックから順番にリンク番号を辿ることになる。従って、ゾーンAの物理ブロックの冗長領域にリンク番号が書込まれていないが、ゾーンAの物理ブロックの冗長領域に、この物理ブロックと仮想的に結合するゾーンBの物理ブロックの連番をリンク番号として書込むようにすれば、ゾーンA〜Dのいずれの物理ブロックからも仮想的に結合する他のゾーンの物理ブロックを知ることができる。この場合、変換テーブルが、ゾーンA〜Dのいずれのゾーンに対する変換テーブルであっても、フラッシュメモリにアクセスすることができる。
When the conversion table indicates the correspondence between the logical block serial numbers LBN0 to LBN999 and the physical blocks belonging to the subzone 1 (physical blocks # 512 to # 1023) of the zone B, the conversion table is composed of physical blocks belonging to the
このように冗長領域にリンク番号が書込まれていれば、仮想ブロックに属する1個の物理ブロックから、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報(例えば、物理アドレスや物理ブロックの連番等)を取得することができる。従って、ホストシステムから供給されたLBAに対応する仮想ブロックに属する1個の物理ブロックのアドレス情報を、変換テーブルによって求めることができれば、変換テーブルによって求めた1個の物理ブロックと仮想的に結合する物理ブロックのアドレス情報を取得することができる。又、変換テーブルによって求められる1個の物理ブロックのアドレス情報は、仮想ブロックに属するいずれの物理ブロックのアドレス情報であってもよい。 If the link number is written in the redundant area in this way, the address information (for example, the physical address and physical block of the physical block) virtually linked to this physical block from one physical block belonging to the virtual block. Serial number, etc.). Therefore, if the address information of one physical block belonging to the virtual block corresponding to the LBA supplied from the host system can be obtained from the conversion table, it is virtually combined with one physical block obtained from the conversion table. It is possible to acquire physical block address information. Further, the address information of one physical block obtained from the conversion table may be address information of any physical block belonging to the virtual block.
又、ホストシステム4から供給された論理ブロックに基づいてフラッシュメモリ2にアクセスする場合は、まず、ホストシステム4から供給された論理ブロックアドレスに対応する仮想ブロックに属する1個の物理ブロックのアドレス情報を、変換テーブルを用いて取得する。続いて、この物理ブロックと仮想的に結合する物理ブロックのアドレス情報を、リンク番号に基づいて取得する。その後、取得したアドレス情報に基づいてフラッシュメモリ2にアクセスすればよい。
When accessing the
以上の説明では、各ゾーンを2つのサブゾーンに分割したが、サブゾーンの数は特に限定されることはない。
図9は、サブゾーンの他の構成例を示す図である。
例えば、図9に示したようにサブゾーン0〜3の4つのサブゾーンに分割してもよい。この場合、ゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンBのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンCのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックと、ゾーンDのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックとが仮想的に結合される。
In the above description, each zone is divided into two subzones, but the number of subzones is not particularly limited.
FIG. 9 is a diagram illustrating another configuration example of the subzone.
For example, as shown in FIG. 9, it may be divided into four subzones of subzones 0-3. In this case, a physical block belonging to subzone 0 (
又、ゾーンAのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンCのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックと、ゾーンDのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックとが仮想的に結合される。 In addition, a physical block belonging to subzone 1 (physical blocks # 256 to # 511) of zone A, a physical block belonging to subzone 1 (physical blocks # 256 to # 511) of zone B, and a subzone 1 (physical block of zone C) The physical blocks belonging to # 256 to # 511) and the physical blocks belonging to subzone 1 (physical blocks # 256 to # 511) of zone D are virtually combined.
又、ゾーンAのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンBのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックと、ゾーンDのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックとが仮想的に結合される。
In addition, a physical block belonging to subzone 2 (physical blocks # 512 to # 767) of zone A, a physical block belonging to subzone 2 (physical blocks # 512 to # 767) of zone B, and a subzone 2 (physical block) of zone C The physical blocks belonging to # 512 to # 767) and the physical blocks belonging to
又、ゾーンAのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンBのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンCのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと、ゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックとが仮想的に結合される。
In addition, a physical block belonging to subzone 3 (physical blocks # 768 to # 1023) of zone A, a physical block belonging to subzone 3 (physical blocks # 768 to # 1023) of zone B, and a subzone 3 (physical block) of zone C The physical blocks belonging to # 768 to # 1023) and the physical blocks belonging to the
変換テーブルに示される論理ブロック連番LBN0〜LBN999と仮想ブロックに属する物理ブロックとの対応関係は、サブゾーン毎にゾーンA〜Dを選択することができる。例えば、ゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロック、ゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロック、ゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロック又はゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと論理ブロック連番LBN0〜LBN999との対応関係を示した変換テーブルであってもよい。
As the correspondence relationship between the logical block serial numbers LBN0 to LBN999 shown in the conversion table and the physical blocks belonging to the virtual block, zones A to D can be selected for each subzone. For example, a physical block belonging to subzone 0 (
変換テーブルが、ゾーンAのサブゾーン0(物理ブロック#0〜#255)、ゾーンBのサブゾーン1(物理ブロック#256〜#511)、ゾーンCのサブゾーン2(物理ブロック#512〜#767)又はゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックと論理ブロック連番LBN0〜LBN999との対応関係を示している場合には、次のようにしてリンク番号を辿ることになる。
The conversion table is subzone 0 (
図10(a)〜(d)は、リンク番号の辿り方の説明図である。
ゾーンA〜Dのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(a)に示したようにゾーンAのサブゾーン0(物理ブロック#0〜#255)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンA、ゾーンB、ゾーンC、ゾーンDの順番でリンク番号を辿る。
FIGS. 10A to 10D are explanatory diagrams of how to follow link numbers.
When tracing the link number of a virtual block composed of physical blocks belonging to subzone 0 (
ゾーンA〜Dのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(b)に示したようにゾーンBのサブゾーン1(物理ブロック#256〜#511)に属する物理ブロックから順番にリンク番号を辿る。
つまり、ゾーンB、ゾーンC、ゾーンD、ゾーンAの順番でリンク番号を辿る。
When tracing the link number of a virtual block composed of physical blocks belonging to subzone 1 (physical blocks # 256 to # 511) of zones A to D,
That is, the link numbers are traced in the order of zone B, zone C, zone D, and zone A.
ゾーンA〜Dのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(c)に示したようにゾーンCのサブゾーン2(物理ブロック#512〜#767)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンC、ゾーンD、ゾーンA、ゾーンBの順番でリンク番号を辿る。
When tracing the link number of a virtual block composed of physical blocks belonging to the subzone 2 (physical blocks # 512 to # 767) of the zones A to D, the
ゾーンA〜Dのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックで構成された仮想ブロックのリンク番号を辿る場合には、図10(d)に示したようにゾーンDのサブゾーン3(物理ブロック#768〜#1023)に属する物理ブロックから順番にリンク番号を辿る。つまり、ゾーンD、ゾーンA、ゾーンB、ゾーンCの順番でリンク番号を辿る。
When the link number of a virtual block composed of physical blocks belonging to subzone 3 (physical blocks # 768 to # 1023) of zones A to D is traced,
尚、リンク番号は、物理ブロックの物理アドレスを知得できるアドレス情報であれば、特に限定されることはない。又、仮想的に結合される物理ブロックの数や、ゾーンを構成する物理ブロックの数、ゾーン群を構成するゾーンの数、ゾーン群に含まれるサブゾーン群の数についても、特に限定されることはなない。 Note that the link number is not particularly limited as long as it is address information that allows the physical address of the physical block to be known. In addition, the number of physical blocks virtually combined, the number of physical blocks constituting the zone, the number of zones constituting the zone group, and the number of sub-zone groups included in the zone group are not particularly limited. No.
又、上記の説明では、各物理ブロックに仮想的に結合される1個の物理ブロックのアドレス情報を、リンク番号として書込んだが、仮想的に結合される複数の物理ブロックのアドレス情報又は仮想的に結合される全ての物理ブロックのアドレス情報を書込んでもよい。仮想的に結合される全ての物理ブロックのアドレス情報、リンク番号として書込んだ場合には、その物理ブロックに書込まれているリンク番号を全て読み出すだけで、その物理ブロックと仮想的に結合される全ての物理ブロックのアドレス情報を取得することができる。
又、図7に示した図6(b)の変換テーブルの作成方法では、ゾーンA之サブゾーン0とゾーンBのサブゾーン1を対象に変換テーブルの作成を行っている。従って、ゾーンAのサブゾーン0に属する物理ブロックとゾーンBのサブゾーン1に属する物理ブロックが仮想的に結合されて(仮想ブロックを形成し)、ゾーンAのサブゾーン0とゾーンBのサブゾーン1の双方に同じ論理ブロック連番に対応する物理ブロックがなければ、ゾーンAとゾーンBに属する物理ブロックと仮想的に結合されるゾーンCとゾーンDに属する物理フロックは、サブゾーン0とサブゾーン1のいずれに属していても支障がない。つまり、ゾーンAのサブゾーン0に属する物理ブロックとゾーンBのサブゾーン1に属する物理ブロック同士、もしくはゾーンAのサブゾーン1に属する物理ブロックとゾーンBのサブゾーン0に属する物理ブロック同士が仮想的に結合されれば、こちらの物理ブロックと仮想的に結合されるゾーンCとゾーンDに属する物理ブロックは、サブゾーン0とサブゾーン1のいずれに属していても、ゾーンAのサブゾーン0とゾーンBのサブゾーン1を対象として、変換テーブルを作成することができる。従って、少なくとも変換テーブルの作成対象になっている複数のサブゾーンにおいて、
1つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されなければ、つまり、1つのサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックに、同じ論理ブロック連番に対応する物理ブロックがなければ、本発明の効果を得ることができる。
In the above description, the address information of one physical block virtually linked to each physical block is written as a link number. However, the address information or virtual addresses of a plurality of physical blocks virtually linked to each physical block are written. The address information of all the physical blocks coupled to may be written. When writing as address information and link numbers of all physical blocks that are virtually combined, it is virtually combined with that physical block simply by reading all the link numbers written in that physical block. Address information of all physical blocks that can be acquired.
Further, in the conversion table creation method of FIG. 6B shown in FIG. 7, the conversion table is created for the
If a physical block in one subzone and a physical block in another subzone are not virtually combined, that is, a physical block in one subzone and a physical block in another subzone have the same logical block serial number If there is no corresponding physical block, the effect of the present invention can be obtained.
1 フラッシュメモリシステム
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
DESCRIPTION OF
Claims (13)
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
異なるチップ内の前記サブゾーンを複数集めて、サブゾーン群を形成する手段と、
同一の前記サブゾーン群に属する前記各サブゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックに対して、論理アドレスが連続するデータを割当てる手段と、
前記サブゾーン群を複数集めて、ゾーン群を形成する手段と
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
を備えることを特徴とするメモリコントローラ。 A memory controller that accesses a flash memory having a plurality of chips based on a logical address supplied from a host computer,
Means for collecting a plurality of physical blocks in each chip to form a subzone;
Means for collecting a plurality of subzones in different chips to form a subzone group;
Means for forming a virtual block by virtually combining physical blocks selected from each subzone belonging to the same subzone group;
Means for allocating data having consecutive logical addresses to the virtual block;
Means for collecting a plurality of the sub-zone groups to form a zone group; and means for assigning a logical address area in which logical addresses are continuous to the zone group;
Means for writing address information indicating physical addresses of other physical blocks virtually combined in the physical blocks constituting the virtual block;
Access means for accessing each physical block belonging to the virtual block based on the address information;
A memory controller comprising:
各チップ内の物理ブロックを複数集めて、サブゾーンを形成する手段と、
同じチップ内の前記サブゾーンを複数集めて、ゾーンを形成する手段と、
異なるチップ内の前記ゾーンを複数集めてゾーン群を形成する手段と、
前記ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割り当てる手段と、
前記各ゾーンから選択された物理ブロックを仮想的に結合することにより仮想ブロックを形成する手段と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む手段と、
前記アドレス情報に基づいて、前記仮想ブロックに属する各物理ブロックにアクセスするアクセス手段と、
任意の前記サブゾーンを選択し、選択した該サブゾーンの冗長領域に書き込まれている論理アドレスに関する情報に基づいて、変換テーブルを作成する手段とを備え、
前記変換テーブルを作成するときに選択された複数のサブゾーンにおいて、1のサブゾーン内の物理ブロックと他のサブゾーン内の物理ブロックが、仮想的に結合されないように構成されていることを特徴とするメモリコントローラ。 A memory controller that accesses a flash memory having a plurality of chips based on a logical address supplied from a host computer,
Means for collecting a plurality of physical blocks in each chip to form a subzone;
Means for collecting a plurality of said sub-zones in the same chip to form a zone;
Means for collecting a plurality of the zones in different chips to form a zone group;
Means for allocating a region of logical addresses having consecutive logical addresses to the zone group;
Means for forming a virtual block by virtually combining physical blocks selected from each zone;
Means for writing address information indicating physical addresses of other physical blocks virtually combined in the physical blocks constituting the virtual block;
Access means for accessing each physical block belonging to the virtual block based on the address information;
Means for selecting any of the subzones, and creating a conversion table based on the information about the logical address written in the redundant area of the selected subzone;
Memory configured so that physical blocks in one subzone and physical blocks in another subzone are not virtually combined in a plurality of subzones selected when creating the conversion table controller.
同一チップ内の物理ブロックを複数集めてゾーンを形成し、異なるチップ内の前記ゾーンを複数集めてゾーン群を形成し、該ゾーン群に対して、論理アドレスが連続する論理アドレスの領域を割当てる処理と、
前記各ゾーンに複数のグループのサブゾーンを形成し、対応関係が設定されている各チップ内の該サブゾーンから選択された物理ブロックを、仮想的に結合することにより仮想ブロックを形成する処理と、
前記仮想ブロックに対して、論理アドレスが連続するデータを書込む処理と、
前記仮想ブロックを構成する物理ブロックに、仮想的に結合される他の物理ブロックの物理アドレスを示すアドレス情報を書込む処理と、
を含むことを特徴とするフラッシュメモリの制御方法。 A flash memory control method for accessing a flash memory whose storage area is composed of a plurality of chips based on a logical address supplied from a host computer,
A process in which a plurality of physical blocks in the same chip are collected to form a zone, a plurality of the zones in different chips are collected to form a zone group, and a logical address area having consecutive logical addresses is assigned to the zone group. When,
Forming a plurality of groups of sub-zones in each zone, and forming a virtual block by virtually combining physical blocks selected from the sub-zones in each chip for which a correspondence relationship is set; and
A process of writing data having consecutive logical addresses to the virtual block;
A process of writing address information indicating a physical address of another physical block virtually combined in a physical block constituting the virtual block;
A method for controlling a flash memory, comprising:
13. The flash memory control method according to claim 12, wherein the conversion table creation processing for the sub-zone groups is executed in parallel in different zones.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004316099A JP4254930B2 (en) | 2004-10-29 | 2004-10-29 | Memory controller, flash memory system, and flash memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004316099A JP4254930B2 (en) | 2004-10-29 | 2004-10-29 | Memory controller, flash memory system, and flash memory control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006127234A true JP2006127234A (en) | 2006-05-18 |
JP4254930B2 JP4254930B2 (en) | 2009-04-15 |
Family
ID=36721922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004316099A Expired - Lifetime JP4254930B2 (en) | 2004-10-29 | 2004-10-29 | Memory controller, flash memory system, and flash memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4254930B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009013877A1 (en) * | 2007-07-20 | 2009-01-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
EP2034414A1 (en) | 2007-09-06 | 2009-03-11 | Hitachi, Ltd. | Semiconductor storage device and method of controlling semiconductor storage device |
-
2004
- 2004-10-29 JP JP2004316099A patent/JP4254930B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009013877A1 (en) * | 2007-07-20 | 2009-01-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
US8572307B2 (en) | 2007-07-20 | 2013-10-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
EP2034414A1 (en) | 2007-09-06 | 2009-03-11 | Hitachi, Ltd. | Semiconductor storage device and method of controlling semiconductor storage device |
US8312203B2 (en) | 2007-09-06 | 2012-11-13 | Hitachi, Ltd. | Semiconductor storage device and method of controlling a semiconductor storage device by allocating a physical block composed of plural pages to a group of logical addresses |
Also Published As
Publication number | Publication date |
---|---|
JP4254930B2 (en) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006018373A (en) | Memory controller, flash memory system and control method for flash memory | |
JP4373943B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4636005B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4153535B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4661191B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4241741B2 (en) | Memory controller and flash memory system | |
JP4254930B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4235595B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4661497B2 (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 | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
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 | |
JP2005292925A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP4661748B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4636046B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2006099594A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP4194518B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4332108B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4569554B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2006178909A (en) | Memory controller, flash memory system and method for controlling flash memory | |
JP4366283B2 (en) | Memory controller and flash memory system including the memory controller | |
JP4539621B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP3934659B1 (en) | Memory controller and flash memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081225 |
|
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: 20090113 |
|
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: 20090120 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4254930 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130206 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140206 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |