JP4569554B2 - メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents
メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP4569554B2 JP4569554B2 JP2006295343A JP2006295343A JP4569554B2 JP 4569554 B2 JP4569554 B2 JP 4569554B2 JP 2006295343 A JP2006295343 A JP 2006295343A JP 2006295343 A JP2006295343 A JP 2006295343A JP 4569554 B2 JP4569554 B2 JP 4569554B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- physical
- block
- flash memory
- 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.)
- Active
Links
Images
Landscapes
- Memory System (AREA)
Description
図9は、データ転送処理の概要を示す図である。データ転送処理は、メモリコントローラ内のバッファを介したデータ移動処理であり、以下のステップを繰り返すことで行われる。
(S91)メモリコントローラから与えられた情報に基づいて、転送元のページのメモリセルが選択され、選択されたメモリセルからデータレジスタにデータが複写される。
(S92)データレジスタから1ページ分のデータが順次読み出され、コントローラ内のバッファに蓄積される。
(S93)コントローラ内のバッファに蓄積された1ページ分のデータが、データレジスタに転送される。
(S94)S93の転送の際にメモリコントローラから与えられた情報に基づいて、転送先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。このようにして、1ページ単位でデータ転送を行っている。
図1は、フラッシュメモリシステム1を概略的に示すブロック図である。図1に示したようにフラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
図2は、NAND型フラッシュメモリのブロック(以下、フラッシュメモリ内のブロックを物理ブロックと言う。)とページの関係を示す説明図である。物理ブロックとページの構成は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリとしては、小ブロック構成のフラッシュメモリと、大ブロック構成のフラッシュメモリとがある。小ブロック構成では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。また、大ブロック構成では、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザ領域と64バイトの冗長領域で構成されている。尚、本実施形態のでは、フラッシュメモリ2が大ブロック構成であるものとして説明する。
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
フラッシュメモリの記憶容量の大容量化が進んでいることにより、大容量化したフラッシュメモリの記憶領域を円滑に管理するため、この記憶領域を複数のゾーンに分割して管理する手法が用いられている。
データの書き換えを行うときは、書き換え後のデータは書き換え前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。また、誤り訂正したデータの再書き込みを行うときは、誤りを訂正した後のデータは誤りを訂正する前のデータが記憶されている物理ブロックと異なる物理ブロックに書き込まれる。このような処理が行われる毎に、ホストシステム4側から供給される論理アドレスとフラッシュメモリ2内の物理アドレスとの対応関係は動的に変化する。このため、論理アドレスと物理アドレスの対応関係を示したアドレス変換テーブルが必要となる。尚、このアドレス変換テーブルは、フラッシュメモリ2の冗長領域に書き込まれている論理アドレス情報に基づいて作成され、作成後は、論理アドレスと物理アドレスとの対応関係が変化する毎に、その変化した部分について対応関係が更新される。
次に、上記アドレス変換テーブルについて、図面を参照して説明する。尚、本実施形態では、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が割り当てられる。
次に、空きブロック検索用テーブルについて、図面を参照して説明する。図7は、この空きブロック検索用テーブルの例を示した図である。空きブロック検索用テーブルは、チップ0用のテーブルとチップ1用のテーブルがある。なお、物理ゾーンを構成するチップ0内の512ブロックに対する空きブロック検索用テーブルと、チップ1内の512ブロックにする空きブロック検索用テーブルの構成は同じなので、チップ0内の512ブロックに対する空きブロック検索用テーブルについて説明する。
尚、空きブロック数を記述する領域には、空きブロック検索用テーブルの作成を開始するときに「0」を設定しておき、物理ブロックに対応するビットに「1」設定したときは、その値をインクリメントする。又、検索終了位置を記述する領域には、予め設定されている値、又は、乱数発生器等で取得した値を設定する。
次に空きブロック検索用テーブルを用いた空きブロック検索処理を説明する。チップ0用のテーブルとチップ1用のテーブルがあるため、まず、どちらのテーブルから検索するかを決定する必要がある。空きブロックを検索する必要があるときは、アドレス変換テーブルを検索して、LZIBNに対応するチップ別のPZIBNがない場合と、LZIBNに対応するチップ別のPZIBNがある場合(データを書き換える場合、または訂正処理を行う場合)とがある。前者の場合は、チップ0とチップ1との間で空きブロック数が偏らないようにするため、空きブロック数の多いチップ側の空きブロック検索用テーブルを使用する。後者の場合、理由は後述の[データ転送処理とコピーバックの選択]で説明するが、データ転送処理を行う時とコピーバック処理を行う時とでは、使用する空きブロック検索用テーブルの選択方法が異なる。まず、データ転送処理を行う時は、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックが含まれるチップと異なるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、書き換え対象データ又は訂正処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合は、チップ1用のテーブルを使用し、そのチップ番号が1であった場合は、チップ0用のテーブルを使用する。次に、コピーバック処理を行う時は、コピーバック処理の対象データが書き込まれている物理ブロックが含まれるチップ側の空きブロック検索用テーブルを使用する。つまり、アドレス変換テーブルより、コピーバック処理の対象データが書き込まれている物理ブロックのチップ番号を求め、そのチップ番号が0であった場合、チップ0用のテーブルを使用し、そのチップ番号が1であった場合は、チップ1用のテーブルを使用する。
図8を参照して、本発明によるデータ転送処理の概要を説明する。尚、データ転送処理は、フラッシュメモリからデータを読み出しコントローラ内のバッファに蓄積した後、コントローラ内のバッファに蓄積したデータをフラッシュメモリに書き込むデータ移動処理を意味する。一方、フラッシュメモリ内でのデータのデータ移動処理(フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、データレジスタに読み出したデータをメモリセルアレイに書き込む処理)をコピーバック処理と言う。
(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から与えられた情報に基づいて、書き込み先のページのメモリセルが選択され、選択されたメモリセルにデータレジスタのデータが複写される。
データ転送処理では、フラッシュメモリから読み出したデータをコントローラ内のバッファに蓄積した後に、そのデータをフラッシュメモリに書き込むため、読み出したデータに誤りが含まれていた場合、その誤りを訂正することができる。一方、コピーバック処理では、フラッシュメモリ内でメモリセルアレイからデータレジスタにデータを読み出した後、そのデータをメモリセルアレイに書き込むため、短時間でデータを移動させることができるが、フラッシュメモリ内で処理が実行されるため、移動前と移動後のページは同一のチップに属していなければならない。
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
21 アドレス変換テーブル
22、23 空きブロック検索用テーブル
Claims (4)
- 複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するメモリコントローラであって、
前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出し手段と、
前記読出し手段によって読み出されたデータを蓄積する蓄積手段と、
前記蓄積手段に蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送手段と、
前記第1の物理ブロックと前記第2の物理ブロックが異なるフラッシュメモリに含まれるように前記第2の物理ブロックを選択する選択手段とを備え
前記読出し手段による読み出しと前記転送手段による転送を、交互に又は並行して行うことにより、前記蓄積手段に1ページ分のデータを蓄積せずに前記第1の物理ブロックから前記第2の物理ブロックにデータを移動させることを特徴とするメモリコントローラ。 - 前記選択手段が、前記物理ゾーンに属する空きブロックをフラッシュメモリ毎に検索することのできる空きブロック検索手段を備えることを特徴とする請求項1に記載のメモリコントローラ。
- 請求項1から2のいずれか1項に記載のメモリコントローラと複数個のフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
- 複数個のフラッシュメモリ内の物理ブロックで構成された物理ゾーンに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記物理ゾーンに属する第1の物理ブロックを含む第1のフラッシュメモリ内のデータレジスタからデータを読み出す読出しステップと、
前記読出しステップで読み出されたデータを蓄積する蓄積ステップと、
前記蓄積ステップで蓄積されたデータを、前記第1の物理ブロックと同一の前記物理ゾーンに属する第2物理ブロックを含む第2のフラッシュメモリ内のデータレジスタに転送する転送ステップとを有し、
前記読出しステップによる読み出しと前記転送ステップによる転送を、交互に又は並行して行うことにより、前記蓄積ステップで1ページ分のデータを蓄積せずに前記第1の物理ブロックから該第1の物理ブロックと異なるフラッシュメモリ内の前記第2の物理ブロックにデータを移動させることを特徴とするフラッシュメモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006295343A JP4569554B2 (ja) | 2006-10-31 | 2006-10-31 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006295343A JP4569554B2 (ja) | 2006-10-31 | 2006-10-31 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008112335A JP2008112335A (ja) | 2008-05-15 |
JP4569554B2 true JP4569554B2 (ja) | 2010-10-27 |
Family
ID=39444808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006295343A Active JP4569554B2 (ja) | 2006-10-31 | 2006-10-31 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4569554B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10636459B2 (en) * | 2018-05-30 | 2020-04-28 | Micron Technology, Inc. | Wear leveling |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005107599A (ja) * | 2003-09-26 | 2005-04-21 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP2005292925A (ja) * | 2004-03-31 | 2005-10-20 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP2006215595A (ja) * | 2005-02-01 | 2006-08-17 | Hitachi Ulsi Systems Co Ltd | 記憶装置 |
JP2006277736A (ja) * | 2005-03-03 | 2006-10-12 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書込み方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008021335A (ja) * | 2004-10-18 | 2008-01-31 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、不揮発性記憶装置の書込み方法およびコントローラ |
US7409473B2 (en) * | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
-
2006
- 2006-10-31 JP JP2006295343A patent/JP4569554B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005107599A (ja) * | 2003-09-26 | 2005-04-21 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP2005292925A (ja) * | 2004-03-31 | 2005-10-20 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
JP2006215595A (ja) * | 2005-02-01 | 2006-08-17 | Hitachi Ulsi Systems Co Ltd | 記憶装置 |
JP2006277736A (ja) * | 2005-03-03 | 2006-10-12 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の書込み方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2008112335A (ja) | 2008-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4666080B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4171749B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
US8200892B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP5093294B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4661497B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4366420B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4661191B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4609406B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4569554B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4241741B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP4177292B2 (ja) | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4697146B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4000124B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2005316793A (ja) | フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006318132A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4235595B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4254930B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4332108B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4497124B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4539621B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4213166B2 (ja) | メモリコントローラおよびフラッシュメモリシステム |
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 |