JP4898252B2 - 不揮発性記憶装置及びそのデータ管理方法 - Google Patents

不揮発性記憶装置及びそのデータ管理方法 Download PDF

Info

Publication number
JP4898252B2
JP4898252B2 JP2006071020A JP2006071020A JP4898252B2 JP 4898252 B2 JP4898252 B2 JP 4898252B2 JP 2006071020 A JP2006071020 A JP 2006071020A JP 2006071020 A JP2006071020 A JP 2006071020A JP 4898252 B2 JP4898252 B2 JP 4898252B2
Authority
JP
Japan
Prior art keywords
block
data
duplicate
erased
physical
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.)
Expired - Fee Related
Application number
JP2006071020A
Other languages
English (en)
Other versions
JP2007249509A (ja
JP2007249509A5 (ja
Inventor
利行 本多
広和 宗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006071020A priority Critical patent/JP4898252B2/ja
Publication of JP2007249509A publication Critical patent/JP2007249509A/ja
Publication of JP2007249509A5 publication Critical patent/JP2007249509A5/ja
Application granted granted Critical
Publication of JP4898252B2 publication Critical patent/JP4898252B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Description

本発明は、フラッシュメモリ等の不揮発性メモリを用いた不揮発性記憶装置及びそのデータの管理方法に関する。
近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話のメモリカードとして市場を拡大している。メモリカードはデジタルカメラの高画素化や、携帯電話での動画記録等の用途へ向けてとさらなる大容量化、高速化の拡がりを見せている。
メモリカードで使用されている主な不揮発性メモリはフラッシュメモリである。フラッシュメモリは大容量化に伴い消去単位である物理ブロックのサイズが増加する傾向にある。消去単位が大きくなるためデータの管理単位も大きく取らざるを得ないという一面がある。しかしながらホストおよびホストを操作するユーザ側から見た管理単位は増加せず、一定の容量となっている。その結果メモリカードに搭載されているコントローラによりホスト側のデータの管理と、フラッシュメモリ側のデータの管理を調整する必要がある。このようなデータの管理方法は特許文献1,2に示されている。
フラッシュメモリを搭載したメモリカードにおいて、ホストの管理単位よりもフラッシュメモリの消去単位が大きい場合には、フラッシュメモリの消去単位の全ての領域にデータが書き込まれたブロックを通常ブロックとして、通常ブロック単位で論物変換テーブルを用いてデータの管理を行っていた。また通常ブロックのデータを更新する場合には、重複ブロックにホストからのデータを書き込んでいた。そのため、従来の不揮発性記憶装置におけるデータの書き込みは、特許文献1に示されるように、重複テーブルで管理される物理ブロック(重複ブロック)に書き込まれる。そこでホストが書き込みを行うデータの論理ブロックに対応するデータが重複テーブルに登録されているかどうかを判定し、登録がないと判定した場合には、重複テーブルに空きを作る集約処理を行う。従来の集約処理は、全ての領域にユーザが書き込まれている通常ブロックを作って論物変換テーブルに登録するという考え方に基づいて処理が行われていた。
特開2002−366423 特開2001−1541309
しかしながら、以上のようなデータの管理方法では、ホストからの新しいデータを書き込む際に集約処理を行う必要がある場合には必ず物理ブロック単位の書き込みが必要となる。そのための処理時間が長くなりデータの書き込み性能の低下を招くという課題がある。また、集約処理の際にホストからのデータの書き込みではなく、不揮発性記憶装置内部でデータのコピーが行われるために、エンデュランス特性の低下に繋がるという課題があった。
また、書き込みエラー発生したときにも必ず別の物理ブロックに書き込みを行っているため、物理ブロック単位の書き込みが必要となり、そのための処理時間が長く、データの書き込み性能の低下を招くという同様の課題があった。
この課題を解決するため、本発明の不揮発性記憶装置のデータ管理方法は、複数の単位ブロックを有する不揮発性メモリと、前記不揮発性メモリを管理するコントローラとを有する不揮発性記憶装置のデータ管理方法であって、前記不揮発性メモリの単位ブロックは、不揮発性記憶装置外部から指定されるアドレスに対応してデータが書き込まれている通常ブロックと、前記通常ブロックのデータを更新するデータが少なくとも全容量の一部分に書き込まれている重複ブロックと、データが消去された状態の消去済みブロックとを含むものであり、不揮発性記憶装置外部からのデータの書き込み時に前記コントローラは、集約対象の物理ブロックを前記不揮発性メモリの重複ブロックおよび消去済みブロックのなかからそれぞれひとつずつ決定し、前記重複ブロックの有効なデータのみを、前記消去済みブロックに書き込んで重複ブロックとし、元の重複ブロックのデータを消去して消去済みブロックとする第1の集約処理を行うことを特徴とするものである。
ここで前記コントローラは、前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、前記第1の集約処理に伴い、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込むようにしてもよい。
ここで前記単位ブロックが、前記不揮発性メモリの消去単位の整数倍で構成されているようにしてもよい。
ここで前記単位ブロックが、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されているようにしてもよい。
ここで前記重複テーブルに書き込むべき論理アドレスに対応する物理ブロックの登録があり、その物理ブロックに書き込み可能な領域がない場合に、その重複ブロックを前記集約対象ブロックとするようにしてもよい。
ここで前記第1の集約処理と、前記重複ブロックの有効なデータと、前記重複ブロックと同じ論理アドレスの通常ブロックの有効なデータとを、前記いずれかの消去済みブロックに書き込んでそのブロックを通常ブロックとし、元の重複ブロック及びその重複ブロックと同一の論理アドレスを有する通常ブロックのデータを消去して消去済みブロックとする第2の集約処理とを選択的に行うようにしてもよい。
ここで前記コントローラは、前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、前記第1の集約処理と、第2の集約処理とを選択的に行い、前記第1の集約処理を行った場合には、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込み、前記第2の集約処理を行った場合には、前記論物変換テーブルと前記重複テーブルの情報を更新するようにしてもよい。
ここで前記第1の集約処理と前記第2の集約処理の選択は、前記重複ブロックに含まれる有効なデータの割合によって決定されるようにしてもよい。
ここで前記有効なデータの割合の判定基準として、前記有効なデータがその重複ブロックの全容量の半分以上の場合に前記第1の集約処理を行い、前記有効なデータがその重複ブロックの全容量の半分未満の場合に前記第2の集約処理を行うようにしてもよい。
ここで前記不揮発性メモリの書き込みエラーが生じたときに前記第1の集約処理を行うようにしてもよい。
ここで前記コントローラは、前記不揮発性メモリの書き込みエラーが発生した単位ブロックを管理するためのバッドブロックテーブルを備え、前記第1の集約処理に伴い書き込みエラーが発生した単位ブロックをバッドブロックとして登録するようにしてもよい。
本発明によれば、重複物理ブロックに含まれる必要最小限の有効なデータのみをコピーすることによって集約することができるので、エンデュランス特性を向上させ、且つデータの書き込み性能を向上させることができる。又請求項6〜9の発明によれば、上記の効果に加えて、書き込み性能とエンデュランス特性とをバランスよく向上させることができる。更に請求項10,11の発明によれば、上記の効果に加えて、書き込みエラー時の処理性能を向上させることができるという効果が得られる。
(第1の実施の形態)
図1は本発明の第1の実施の形態による不揮発性記憶装置のデータ管理方法を説明するための、不揮発性記憶装置のブロック図と外部ホストとを示すブロック図である。図1においてメモリカード101は不揮発性記憶装置である。ホスト102はメモリカード101に対してデータを書き込み及び読み出しを行う装置であり、メモリカード101に対して16kBを管理単位としてデータを管理している。フラッシュメモリ103はメモリカード101内にあってホスト102からのデータが格納される不揮発性メモリである。
コントローラ104Aはホスト102とのインターフェースを制御するとともに、フラッシュメモリ103の制御を行う。コントローラ104Aは制御のために消去済みテーブル105、論物変換テーブル106、重複テーブル107、バッドブロックテーブル108を使用している。
図2はフラッシュメモリ103の内部の状態を表したブロック図である。フラッシュメモリ103はPB0〜PB1023の1024個の物理ブロック201から構成されている。物理ブロック201はフラッシュメモリ103のデータの消去単位で、容量は128kB(バイト)である。この容量はホスト102のデータの管理単位16kBに比べて大きい。
図3は1つの物理ブロック201の内部を示したブロック図である。物理ブロック201はPP0〜PP63の64の物理ページ301から構成されている。各物理ページは2kBのデータ容量を持つ。物理ページ301はフラッシュメモリ103におけるデータの書き込み単位である。なおここで、ホスト102の管理単位である16kBごとに、即ち8物理ページ毎に部分物理ブロック302を構成する。物理ブロック201は8つの部分物理ブロック302を持つ。
図1に示す消去済みテーブル105はフラッシュメモリ103内部の全ての物理ブロックの状態が消去済みであるのか、それとも書き込み済であるのかを1ビットのビット情報として保持している。論物変換テーブル106はホスト102が指定する論理アドレスに対応するデータがフラッシュメモリ103のどの物理ブロックに格納されているかの情報を保持している。論物変換テーブル106は全ての論理アドレスに対応して、論理アドレスをテーブルのアドレス値、物理アドレスをテーブルのデータとする。論物変換テーブル106に登録されている物理ブロックは、そのブロック内のユーザ領域の全てにデータが書き込まれている物理ブロックであり、このような物理ブロックを通常ブロックという。
重複テーブル107は、書き込み済みの領域が物理ブロックの全ユーザ領域以下の状態である重複物理ブロック(以下、単に重複ブロックという)を管理している。重複テーブル107は書き込みの状態を示す情報や、重複ブロックと対応する論理ブロックアドレスの情報を保持している。重複ブロックは通常ブロックと同一の論理アドレスに対応しており、重複ブロックにデータが書き込まれているページに相当する通常ブロックのページのデータは無効となる。重複ブロックの数は複数管理できるように構成されているが、その最大値は重複テーブル107の容量に応じて限定される。
バッドブロックテーブル108はフラッシュメモリ103の物理ブロックのうち、書き込みエラーまたは消去のエラーが発生したことにより有効なデータを持たない、また今後データの書き込みを行ってはいけない物理ブロック(以下、単にバッドブロックという)の情報を保持している。又これ以外にデータが書き込まれていない状態の物理ブロックを消去済みブロックという。従って物理ブロックは、少なくとも通常ブロック、重複ブロック、消去済みブロックに分けられ、バッドブロックがあれば、これにバッドブロックが加わる。
図4は本実施の形態のデータの書き込み方法を示すフローチャートである。ホスト102からのデータは必ず重複テーブル107で管理される重複ブロックに書き込まれる。まず、ステップ401でホスト102が書き込みを行うデータの論理ブロックが重複テーブル107に登録されているかどうかを判定する。ここで登録があると判定した場合にはステップ402に遷移し、登録がないと判定した場合には、重複テーブル107にホスト102からのデータを書き込むための空きを作るためにステップ405へと遷移する。ステップ402では、重複テーブル107に保持された情報を基にして重複ブロックに書き込むことのできる物理ページが残されているかどうかを判定する。このような物理ページがある場合には、ステップ403へ遷移して重複書き込みを行う。重複書き込みとは、ホスト102から送られてきたデータをフラッシュメモリ103の重複ブロックに書き込む処理のことをいう。データを書き込める物理ページが残されていないときにはステップ404へと遷移し、集約という重複テーブル107に空きを作るための処理を行う。ここで行う集約はステップ401で重複テーブル107に登録がある場合を前提とした集約処理であり、従来は行われていない集約処理である。その詳細は図5にフローチャートで示しており後述する。ステップ404で集約処理を終えたらステップ403へ遷移し、ホスト102からのデータを書き込むと共に、空いた重複テーブル107に書き込んだデータに対する情報の登録を行う。一方ステップ405で行われる集約処理は重複テーブル107に登録がない場合の集約処理であり、後述する図8に示したフローチャートに従って行われる。
次にステップ404で実行される集約処理について、図5のフローチャートを用いて説明する。まずステップ501で重複ブロックがそのまま論物変換テーブル106に登録可能であるかどうかを判定し、登録可能であればステップ502へと遷移する。以降の処理は特許文献1で交換併合と表現されている処理に相当するが、図6を用いて説明する。論物変換テーブル106に登録可能とは、図6に示すように重複ブロック201−Aの全てのページが有効なデータで占められている場合である。この場合、重複ブロック201−Aはそのまま論物変換テーブル106に登録可能な状態であり、重複ブロック201−Aと同じ論理ブロックアドレスを持つ通常ブロック201−Bのデータは全て無効である。この場合はステップ502において重複ブロック201−Aを論物変換テーブル106に登録して通常ブロックとする。更にステップ503において重複テーブル107の当該重複ブロックが登録された部分を空けて、通常ブロック201−Bを物理消去して消去済みブロックとする。更にこの物理ブロック201−Bが消去済みブロックとなるように消去済みテーブル105を更新する(ステップ504)。
ステップ501で論物変換テーブル106に登録が不可能であると判定された場合には、ステップ505へと遷移する。以下の処理を図7を用いて説明する。ここでは重複ブロックを201−A、この重複ブロックと同一論理アドレスを持つ通常ブロックを201−Bとする。ステップ505では消去済みテーブル105を基にして新たに消去済みの物理ブロック、ここでは201−Cを検索する。次いでステップ506では検索した消去済みブロック201−Cに対してこれから書き込みを行うので、このブロックが書き込み済みブロックとなるように消去済みテーブル105を更新する。次に図7に実線矢印で示すように、重複ブロック201−Aの有効データを消去済みブロック201−Cへコピーする(ステップ507)。ここでは重複ブロック201−Aの有効データのみをコピーして、通常ブロック201−Bからのデータのコピーは行わない。次にステップ508では物理ブロック201−Cを重複ブロックとして重複テーブル107を更新する。次にステップ509では元の重複ブロック201−Aのデータを物理消去し、消去済みブロックとする。ステップ510でこのブロック201−Aを消去済みブロックとして消去済みテーブル105を更新する。このステップ401,501,505〜510の処理を第1の処理という。
次にステップ405の集約の処理について図8のフローチャートに基づいて説明する。この集約処理は書き込みの対象となる論理アドレスに対応する重複ブロック以外のブロックについて行われる。まずステップ801で新規に重複テーブルに登録可能かどうか、即ち重複テーブルに空きがあるかどうかを判定する。登録可能であれば新規に重複テーブルを選択して登録するので集約処理を終える。登録不可であれば、複数の重複ブロックからひとつを選択した後、重複ブロックがそのまま論物変換テーブル106に登録可能であるかどうかを判定し(ステップ802)、登録可能であればステップ803へと遷移する。以下の処理は図6で示した処理に相当する。即ちステップ803で論物変換テーブル106に重複ブロックのアドレスを登録し、ステップ804で通常ブロックを物理消去し、ステップ805で消去済みテーブル105に物理消去の情報を反映させる。
ステップ802で論物変換テーブルに登録が不可能であると判定された場合には、ステップ806へと遷移し、重複ブロックに継続してデータをコピーすることで論物変換テーブル106に登録可能な状態であるかどうかを判定する。登録可能な状態であると判定した場合には、ステップ807へと遷移する。ステップ806,807,803〜805の処理は特許文献1でコピー併合と表現されているの処理であって、図9を用いて説明する。
重複ブロックである物理ブロック201−Dの一部のページが消去済みで書き込み可能な状態であり、その消去済みの領域に重複ブロックと同じ論理ブロックアドレスを持つ通常ブロック201−Eからデータをコピーすることで論物変換テーブル106に登録可能な状態にすることができるものとする。そこで通常ブロック201−Eの有効なデータを、実線矢印で示すように重複ブロック201−Dの消去済みの領域にコピーする。その後重複ブロック201−Dを通常ブロックとして論物変換テーブル106に登録すると共に(ステップ803)、重複テーブル107の重複ブロック201−Dが登録されていた部分を空けて、通常ブロック201−Eを物理消去して消去済みテーブル105を更新する(ステップ804,805)。
ステップ806で登録可能な状態ではないと判定された場合には、ステップ808へと遷移する。この集約は重複ブロック201−Dがそのまま論物変換テーブル106に登録できない状態もしくは、重複ブロック201−Dの消去済みの物理ページにデータを書き込んでも論物変換テーブル106に登録できない場合に行われる。この処理は特許文献1で単純併合と表現されている処理に相当するが、図10を用いて説明する。ステップ808でまず消去済みテーブル105を基にして消去済みの物理ブロック、ここでは201−Fを検索する。ステップ809で検索した消去済みの物理ブロック201−Fに対してこれから書き込みを行うので、消去済みテーブル105を更新する。次にステップ810で通常ブロック201−Eと重複ブロック201−Dの有効データを実線矢印で示すように消去済みブロック201−Fにコピーする。次いでステップ811で論物変換テーブル106に物理ブロック201−Fのアドレスを登録し、ステップ812で重複ブロック201−Dを物理消去して消去済みブロックとし、ステップ813で消去済みテーブル105にそのアドレスを登録する。その後ステップ804,805へと遷移し、通常ブロック201−Eの消去と消去済みテーブル105への登録を行う。
さて従来では図5に示すステップ505以下の処理の場合にも、図8に示すステップ808以下の処理と同様に、新たに検索した消去済みブロックに通常ブロックと重複ブロックの全てのデータをコピーして通常ブロックとしていた。即ち図10に示すように、従来の集約処理は通常ブロックを作って論物変換テーブル106に登録するという考え方に基づいて行われるので、集約に要する処理は1物理ブロック分のデータ即ち64ページ分のデータをコピーする時間となる。ここで消去に要する時間はデータのコピーに要する時間に比べれば短いので無視して考える。本実施の形態のステップ505以下の集約処理では、図7に示すように重複ブロック201−Aに存在する有効なデータのみをコピーするので、集約に要する時間は有効なページのみのデータをコピーする時間となる。この集約処理における従来例との性能の比較を行った表を図11に示す。図7の場合、有効ページは1ページであり、集約処理に要する時間は従来に比べて64倍高速に行われることがわかる。
一方集約後に発生する消去済みの領域がどの程度確保できているかを比較する。これは次の集約処理までの書き込みを行えるデータの量と比例する。図10の場合には64ページ分確保できており、図7の場合には63ページ分確保できる。従ってわずかに従来の方が確保できる消去済みの領域が大きいことが分かる。
最後に消去済み領域当たりの処理時間を比較する。この単位としては1ページ集約する処理を行った際に1ページの消去済み領域が確保された場合を1単位として計算する。従来は64ページを集約処理したら64ページの消去済み領域が確保されるので1単位の処理時間である。本実施の形態では1ページを集約処理したら63ページの消去済み領域が確保されるので1/63単位の処理時間で済んでいる。従って総合的に見て本実施の形態の集約処理は従来に比べて63倍高速に行えることがわかる。
また本実施の形態の集約処理は従来の集約処理に比べて必ず集約処理を行うページが少なくて済むので、フラッシュメモリ103への集約処理を含めたデータの書き込み処理容量を抑えることができ、よりエンデュランス特性を向上させることができる。
(第2の実施の形態)
第2の実施の形態について説明する前に、第1の実施の形態において効果の少ないケースを図12に示したので説明する。図7では重複ブロックに存在する有効なデータが1ページしか存在しないケースであったが、図12では重複ブロック201−Aには無効データが1ページしか存在しないケースを示している。第1の実施の形態に従って集約処理を行うと、63ページのデータをコピーして1ページ分の消去済み領域しか確保できない。図11で行った性能比較に当てはめると、63単位の処理時間をかけてしまうことになり、従来に比べて処理時間は低下するケースとなる。
第1の実施の形態はエンデュランス特性の点では必ず従来例に比べて有利となるが、処理時間という観点では従来に比べて劣ってしまうケースも存在することが分かる。
第2の実施の形態ではこのような問題点を解決するものである。この不揮発性記憶装置の全体は図1に示すブロック図と同様であり、第1の実施の形態と同一部分は同一符号を付して詳細な説明を省略する。この実施の形態では、コントローラ104Bの集約処理のみが前述した第1の実施の形態と異なっており、その他のフラッシュメモリ103、消去テーブル105、論物変換テーブル106、重複テーブル107、バッドブロックテーブル108については前述したものと同様である。書き込み処理においても図4のフローチャートと同様の処理が行われる。そして図4に示すステップ404の集約処理が第1の実施の形態と異なっており、以下これについて図13を用いて説明する。
図13は図4のステップ404で行われる集約処理のフローチャートである。まずステップ1301で重複ブロックがそのまま論物変換テーブル106に登録可能であるかどうかを判定し、登録可能であればステップ1302へと遷移し、以降ステップ1303、ステップ1304、ステップ1305と処理する。この処理は第1の実施の形態のステップ502〜504の処理、即ち図6の処理と同様であるので説明を省略する。
ステップ1301で論物変換テーブル106に登録が不可能であると判定された場合には、ステップ1305へと遷移する。ステップ1305は消去済みの物理ブロックを消去済みテーブル105を基にして検索する。次いで、ステップ1306では検索した消去済みの物理ブロックに対してこれから書き込みを行うので、その物理ブロックを書き込み済みのブロックとして消去済みテーブル105の更新を行う。
次にステップ1307で重複状態を維持したほうがよいのか、それとも論物変換テーブル106を更新したほうがいいのかを判定する。重複状態を維持したほうがよいと判定した場合の処理は第1の実施の形態での処理と同じであり、ステップ1308〜ステップ1111までの処理を行う。この処理は図5でのステップ507〜ステップ510までの処理、即ち図7の処理(第1の処理)と同様であるので説明を省略する。
論物変換テーブル106を更新したほうがよいと判定した場合には、前述の図10で示した処理と同じであり、ステップ1312からステップ1315、ステップ1303、ステップ1304の処理を行う。この処理(第2の処理)は図8でのステップ810からステップ813、ステップ804、ステップ805の処理と同様であるので説明を省略する。
図14は本実施の形態のフローチャートである図13に従い処理を行った場合を示す。ステップ1305では新たに消去済みの物理ブロック、ここでは201−Cを検索する。図14に示すように、この場合の重複ブロック201−Aには有効な部分物理ブロックが多く含まれており、重複状態を維持した場合に消去済みの領域を多く確保することができない。従って図13のステップ1307での重複維持効果が少ないと判断した場合、図14に示すように重複ブロック201−Aと通常ブロック201−Bから有効なデータを消去済みブロック201−Cにコピーする。そしてそのブロック201−Cを通常ブロックとして論物変換テーブル106に登録する。又元の重複ブロック201−Aと通常ブロック201−Bを消去して消去済みブロックとする。
図13のステップ1307での重複維持効果があるかどうかの判定は処理性能やエンデュランス性能を鑑みて総合的に判断するのがよい。例えば重複ブロックに存在する有効なデータが半分以下である場合には図7に示す第1の処理を行い、重複ブロック107に存在する有効なデータが半分を超える場合には、図7に示すように第2の処理を行って論物変換テーブル106を更新する。この判断基準は第1に処理性能(消去済み領域当たりの処理時間)重視であり、処理時間が同等の場合にはエンデュランス性能を考慮するという判断基準に基づいている。
重複テーブル107に存在する有効なデータがちょうど半分の場合に重複状態を維持すると、集約処理を行う部分物理ブロックの数と確保できる消去済み領域がちょうど同じになる。即ち論物変換テーブル106を更新する従来の集約処理と同等の処理時間であるといえるので、この場合にはエンデュランスを考慮して第1の処理を行う。以上のようにして従来に比べて書き込み性能とエンデュランス特性をバランスよく向上させることができる。
(第3の実施の形態)
次に本発明の第3の実施の形態について説明する。本実施の形態の全体のブロック図は図1と同様であり、コントローラが104Cとなっている。その他の構成は第1の実施の形態と同様であるので同一部分は同一符号を付して詳細な説明を省略する。この実施の形態では書き込みエラー発生した場合には、有効なデータを退避させた後に書き込みエラーが発生した物理ブロックをバッドブロックテーブル108に登録する。その処理を示したのが図15のフローチャート、図16はそのときの処理を示す図である。これらの図に基づいてエラー処理を説明する。
ホスト102からのデータは必ず重複ブロックへと書き込まれるが、図16に示すように重複ブロック201−Gへの書き込みにおいてエラーが発生したものとする。このとき重複ブロック201−Gと同一の論理アドレスを持つ通常ブロックを201−Hとする。この場合には、エラー処理を開始し、まずステップ1501で消去済みテーブル105を基にして消去済みの物理ブロック、ここでは201−Iを検索する。次いで、ステップ1502で検索した消去済みブロック201−Iに対してこれから書き込みを行うので、このブロックを書き込み済みとして消去済みテーブル105を更新する。次にステップ1503で重複ブロック201−Gの有効データを実線矢印で示すようにコピーする。ここでは通常ブロック201−Hのデータはコピーしない。次にステップ1504で消去済みブロック201−Iの一部にデータが書き込まれたので、このブロックを重複ブロックとして重複テーブル107に登録する。更にステップ1505では書き込みエラーの発生した重複ブロック201−Gをバッドブロックテーブル108に登録し、処理を終了する。
また、以上の説明では、論物変換テーブルに登録される単位が一つのフラッシュメモリの一つの物理ブロックである場合について説明をしたが、一つのフラッシュメモリの複数の物理ブロックにわたって論物変換テーブルで管理している構成や、複数のフラッシュメモリにまたがる複数の物理ブロックにわたって論物変換テーブルで管理している場合には、論物変換テーブルを構成する複数の物理ブロックのうち、書き込みエラーが発生した物理ブロックのみを集約対象とし、書き込みエラーが発生していない物理ブロックはそのままにしておいても構わない。
図17は1つの論理ブロックアドレスに対して2つの物理ブロックを有し、並列にデータを書き込む場合のエラー処理を示している。この図では新たにデータを書き込む重複ブロック201−J,201−Kがペアの物理ブロックとなっており、これに対応する同一の論理アドレスを持つ通常ブロックを201−L,201−Mとする。ここで図示のように重複ブロック201−Jにデータを書き込んでいるときに書き込みエラーが生じたものとする。この場合にも図15のステップ1501と同様に消去済みブロックとして201−Nを取得する。そしてエラーが生じた重複ブロック201−Jの有効データを図示のように消去済みブロック201−Nにコピーする。この場合にも通常ブロック201−L,201−M及び他方の重複ブロック201−Kからはデータをコピーしない。そしてステップ1504において消去済みブロック201−Nと重複ブロック201−Kとを新たにペアの物理ブロックとして重複テーブル107に登録する。この場合にはエラーの生じた物理ブロック201−Jはバッドブロックとしてバッドブロックテーブル108に登録する。
尚従来の不揮発性記憶装置では、書き込みエラーが発生したときに、消去済みテーブル105を基に消去済みの物理ブロックを確保し、重複ブロックと通常ブロックから有効なデータをコピーしてその消去済みブロックを通常ブロックとし、書き込みエラーの発生した重複ブロックをバッドブロックテーブル108に登録していた。このような処理と比較すれば、本実施の形態3では集約処理に要する処理時間を短縮することができる。
なお、第1から第2の実施の形態においても、論物変換テーブルに登録される単位が一つのフラッシュメモリの一つの物理ブロックである場合について説明をしたが、一つのフラッシュメモリの複数の物理ブロックにわたって論物変換テーブルで管理している構成や、複数のフラッシュメモリにまたがる複数の物理ブロックにわたって論物変換テーブルで管理している場合についても、本発明で示した考え方で同様に処理を行える。
なお、複数の物理ブロックにまたがって論物変換テーブルに登録されているときに、部分物理ブロックは複数の物理ブロックにまたがっていても単一の物理ブロック内に構成されていても構わない。
本発明にかかる不揮発性記憶装置のデータ書き込みにおける管理方法は、大容量の不揮発性記憶装置を対象としてデータを格納するホストに対して、より書き込み処理性能を向上させることができる。本発明は、静止画記録再生装置や動画記録再生装置等のポータブルAV機器、あるいは携帯電話等のポータブル通信機器の記録媒体に適用することができる。
不揮発性記憶装置とホスト機器との構成を示すブロック図である。 不揮発性記憶装置に搭載の不揮発性メモリの構成を示した図である。 不揮発性記憶装置に搭載の不揮発性メモリの物理ブロックの構成を示した図である。 本発明の第1の実施の形態による不揮発性記憶装置のデータの書き込みフローチャートである。 本発明の第1の実施の形態による不揮発性記憶装置のデータの集約処理(対象論理)を示すフローチャートである。 本発明の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の第1の実施の形態による不揮発性記憶装置のデータの集約処理(対象論理以外)を示すフローチャートである。 本発明の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の実施の形態による不揮発性記憶装置の集約を示した図である。 集約の相違に基づく性能の比較表を示す図である。 本発明の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の第2の実施の形態による不揮発性記憶装置のデータの集約処理(対象論理)を示すフローチャートである。 本発明の第2の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の第3の実施の形態による不揮発性記憶装置のデータの集約処理を示すフローチャートである。 本発明の第3の実施の形態による不揮発性記憶装置の集約を示した図である。 本発明の第3の実施の形態の変形例による不揮発性記憶装置の集約を示した図である。
符号の説明
101 メモリカード
102 ホスト
103 フラッシュメモリ
104 コントローラ
105 消去済みテーブル
106 論物変換テーブル
107 重複テーブル
108 バッドブロックテーブル

Claims (14)

  1. 複数の単位ブロックを有する不揮発性メモリと、
    前記不揮発性メモリを管理するコントローラとを有する不揮発性記憶装置のデータ管理方法であって、
    前記不揮発性メモリの単位ブロックは、
    不揮発性記憶装置外部から指定されるアドレスに対応してデータが書き込まれている通常ブロックと、
    前記通常ブロックのデータを更新するデータが少なくとも全容量の一部分に書き込まれている重複ブロックと、
    データが消去された状態の消去済みブロックとを含むものであり、
    不揮発性記憶装置外部からのデータの書き込み時に前記コントローラは、
    集約対象の物理ブロックを前記不揮発性メモリの重複ブロックおよび消去済みブロックのなかからそれぞれひとつずつ決定し、
    前記重複ブロックの有効なデータのみを、前記消去済みブロックに書き込んで重複ブロックとし、元の重複ブロックのデータを消去して消去済みブロックとする第1の集約処理を行うことを特徴とする不揮発性記憶装置のデータ管理方法。
  2. 前記コントローラは、
    前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、
    重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、
    前記第1の集約処理に伴い、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込むことを特徴とする請求項1に記載の不揮発性記憶装置のデータ管理方法。
  3. 前記単位ブロックが、前記不揮発性メモリの消去単位の整数倍で構成されていることを特徴とする請求項1に記載の不揮発性記憶装置のデータ管理方法。
  4. 前記単位ブロックが、複数の前記不揮発性メモリにまたがる消去単位をグループとして構成されていることを特徴とする請求項1に記載の不揮発性記憶装置のデータ管理方法。
  5. 前記重複テーブルに書き込むべき論理アドレスに対応する物理ブロックの登録があり、その物理ブロックに書き込み可能な領域がない場合に、その重複ブロックを前記集約対象ブロックとすることを特徴とする請求項2に記載の不揮発性記憶装置のデータ管理方法。
  6. 前記第1の集約処理と、
    前記重複ブロックの有効なデータと、前記重複ブロックと同じ論理アドレスの通常ブロックの有効なデータとを、前記いずれかの消去済みブロックに書き込んでそのブロックを通常ブロックとし、元の重複ブロック及びその重複ブロックと同一の論理アドレスを有する通常ブロックのデータを消去して消去済みブロックとする第2の集約処理とを選択的に行うことを特徴とする請求項1に記載の不揮発性記憶装置のデータ管理方法。
  7. 前記コントローラは、
    前記不揮発性記憶装置の外部から指定される論理アドレスを前記不揮発性メモリの前記単位ブロックである物理アドレスに変換する論物変換テーブルと、
    重複ブロックを管理する情報を格納する重複テーブルと、を有するものであり、
    前記第1の集約処理と、
    第2の集約処理とを選択的に行い、
    前記第1の集約処理を行った場合には、前記重複テーブルの情報を更新し、新たに重複ブロックとなる単位ブロックの情報を書き込み、
    前記第2の集約処理を行った場合には、前記論物変換テーブルと前記重複テーブルの情報を更新することを特徴とする請求項6に記載の不揮発性記憶装置のデータ管理方法。
  8. 前記第1の集約処理と前記第2の集約処理の選択は、
    前記重複ブロックに含まれる有効なデータの割合によって決定されることを特徴とする請求項6に記載の不揮発性記憶装置のデータ管理方法。
  9. 前記有効なデータの割合の判定基準として、
    前記有効なデータがその重複ブロックの全容量の半分以上の場合に前記第1の集約処理を行い、
    前記有効なデータがその重複ブロックの全容量の半分未満の場合に前記第2の集約処理を行うことを特徴とする請求項8に記載の不揮発性記憶装置のデータ管理方法。
  10. 前記不揮発性メモリの書き込みエラーが生じたときに前記第1の集約処理を行うことを特徴とする請求項1に記載の不揮発性記憶装置のデータ管理方法。
  11. 前記コントローラは、
    前記不揮発性メモリの書き込みエラーが発生した単位ブロックを管理するためのバッドブロックテーブルを備え、
    前記第1の集約処理に伴い書き込みエラーが発生した単位ブロックをバッドブロックとして登録することを特徴とする請求項10に記載の不揮発性記憶装置のデータ管理方法。
  12. 不揮発性メモリと、前記不揮発性メモリを管理するコントローラと、を備え、
    前記不揮発性メモリは、
    情報の消去単位である複数の物理ブロックを有し、当該物理ブロックは、情報の書込単位である複数の物理ページを含み、
    前記複数の物理ブロックには、
    前記消去単位に対応して1つのデータを書き込んだ通常ブロックと、
    前記通常ブロックのデータの一部を更新するためのページデータを物理ページに書き込んだ第1重複ブロックと、
    情報が消去されている消去済みブロックと、が存在し、
    前記コントローラは、
    外部からの指示に応じて前記通常ブロックのデータの一部を更新する場合、
    前記第1重複ブロックから前記消去済みブロックに対して、当該第1重複ブロックに書き込まれているページデータを前記消去済みブロックの物理ページに書き込み、当該消去済みブロックを第2重複ブロックとする変換手段と、
    前記変換手段によって消去済みブロックから第2重複ブロックとされた物理ブロックの物理ページに対して、前記外部からの指示に応じた前記データの一部を更新するためのページデータを書き込む追記手段と、を有する不揮発性記憶装置。
  13. 前記コントローラは、
    外部からの指示に応じて前記通常ブロックのデータの一部を更新する場合であって、
    前記第1重複ブロックに書き込み可能な物理ページが存在しない場合、
    前記第1重複ブロックから前記消去済みブロックに対して、当該第1重複ブロックに書き込まれているページデータを前記消去済みブロックの物理ページに書き込み、当該消去済みブロックを第2重複ブロックとする変換手段と、
    前記変換手段によって消去済みブロックから第2重複ブロックとされた物理ブロックの物理ページに対して、前記外部からの指示に応じた前記データの一部を更新するためのページデータを書き込む追記手段と、を有する請求項12に記載の不揮発性記憶装置。
  14. 前記変換手段は、
    前記第1重複ブロックから前記消去済みブロックに対して、当該第1重複ブロックに書き込まれているページデータを前記消去済みブロックの物理ページに書き込み、当該消去済みブロックを第2重複ブロックとした後、
    前記第1重複ブロックのデータを消去して当該第1重複ブロックを消去済みブロックとする請求項12に記載の不揮発性記憶装置。
JP2006071020A 2006-03-15 2006-03-15 不揮発性記憶装置及びそのデータ管理方法 Expired - Fee Related JP4898252B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006071020A JP4898252B2 (ja) 2006-03-15 2006-03-15 不揮発性記憶装置及びそのデータ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006071020A JP4898252B2 (ja) 2006-03-15 2006-03-15 不揮発性記憶装置及びそのデータ管理方法

Publications (3)

Publication Number Publication Date
JP2007249509A JP2007249509A (ja) 2007-09-27
JP2007249509A5 JP2007249509A5 (ja) 2009-04-30
JP4898252B2 true JP4898252B2 (ja) 2012-03-14

Family

ID=38593744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006071020A Expired - Fee Related JP4898252B2 (ja) 2006-03-15 2006-03-15 不揮発性記憶装置及びそのデータ管理方法

Country Status (1)

Country Link
JP (1) JP4898252B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008102610A1 (ja) * 2007-02-23 2010-05-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
KR101826047B1 (ko) 2011-09-28 2018-02-07 삼성전자주식회사 저장 장치 및 그 구동 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3793868B2 (ja) * 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP2003203007A (ja) * 2002-01-07 2003-07-18 Nec Corp 携帯電話機のメモリの不揮発エリア管理方法
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks

Also Published As

Publication number Publication date
JP2007249509A (ja) 2007-09-27

Similar Documents

Publication Publication Date Title
JP4633802B2 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
US8386698B2 (en) Data accessing method for flash memory and storage system and controller using the same
US7631142B2 (en) Method and apparatus for selectively storing data into cache or nonvolatile memory
JP4897524B2 (ja) ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100706242B1 (ko) 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
US20100082878A1 (en) Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP4866117B2 (ja) 不揮発性記憶装置、そのデータ書き込み方法、不揮発性記憶システム及びメモリコントローラ
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
US20110055625A1 (en) Nonvolatile memory device and memory controller
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
US20050278480A1 (en) Method of writing data into flash memory
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
KR101204163B1 (ko) 반도체 기억 장치
US20090259796A1 (en) Data writing method for non-volatile memory and storage system and controller using the same
JP5300496B2 (ja) 半導体記憶装置、ホスト機器及び半導体記憶システム
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4898252B2 (ja) 不揮発性記憶装置及びそのデータ管理方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP2008003684A (ja) 不揮発性記憶装置及び不揮発性記憶システム
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JP2006244017A (ja) データコピー方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007280329A (ja) 不揮発性記憶装置および不揮発性記憶装置の管理方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees