JP2004240660A - 不揮発性メモリ装置の制御方法 - Google Patents
不揮発性メモリ装置の制御方法 Download PDFInfo
- Publication number
- JP2004240660A JP2004240660A JP2003028536A JP2003028536A JP2004240660A JP 2004240660 A JP2004240660 A JP 2004240660A JP 2003028536 A JP2003028536 A JP 2003028536A JP 2003028536 A JP2003028536 A JP 2003028536A JP 2004240660 A JP2004240660 A JP 2004240660A
- Authority
- JP
- Japan
- Prior art keywords
- address
- block
- physical
- nonvolatile memory
- physical block
- 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.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
【解決手段】本発明の間接アドレッシング型の不揮発性メモリ装置の制御方法は、初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を消去管理テーブルに消去済みブロックとして登録し、且つ1物理アドレスに複数の論理アドレスを割り当てた第1のアドレス変換テーブルを生成する登録ステップと、データ書き込み時に、消去管理テーブルから消去済みブロックを抽出し、消去済みブロックが本当に消去されているかを判定する判定ステップと、判定ステップで未消去であればブロックを消去する消去ステップと、消去ステップ後に、データを書き込む書き込みステップと、を有する。
【選択図】 図5
Description
【発明の属する技術分野】
本発明は、不揮発性半導体メモリシステムの制御方法に関し、特に不揮発性半導体メモリカードの制御方法に関する。
【0002】
【従来の技術】
近年、音楽や映像データを扱う携帯情報機器(例えば、携帯型パーソナルコンピュータ、デジタルスチールカメラ、PDA)の記憶装置として、フラッシュメモリ等の不揮発性メモリ装置が注目されている。
はじめに、不揮発性メモリ装置の構成について説明する。
図1は、不揮発性メモリ装置の構成を示すブロック図例である。図1において、101はホスト、102は不揮発性メモリ装置である。不揮発性メモリ装置102は、コントローラ111、アドレス変換テーブル112、消去管理テーブル113、ホストI/F部114、データバッファ115、メモリ制御部116、不揮発性メモリ117を有する。
【0003】
不揮発性メモリ117の構成について、512MビットNAND型フラッシュメモリを例にとり説明する。
図2は、不揮発性メモリ装置102の不揮発性メモリ117(512MビットNAND型フラッシュメモリ)の構成図例である。1個のフラッシュメモリは、4096個のブロックにより構成されている。1ブロックは消去の基本単位である。1ブロックはさらに32ページに分割される。1ページは読み出し及び書き込みの基本単位である。1ページの容量は528バイトである。528バイトのうち、512バイトはデータ領域、残り16バイトは冗長領域である。データ領域はユーザが使用する領域であり、冗長領域は不揮発性メモリ装置102のメモリ制御部116が使用する領域である。
【0004】
図18は、不揮発性メモリ装置102の不揮発性メモリ117(直接型のアドレッシングシステム)の1物理ブロックの構成図例である。書き込み開始フラグ301、論理アドレス302及びアドレステーブル無効化フラグ303は最初のページの冗長領域に配置されている。書き込み終了フラグ305は最終ページの冗長領域に配置されている。論理アドレス302及びアドレステーブル無効化フラグ303は、図18に示すページと異なるページに配置しても良い。これらのフラグ及びデータについては以下で説明する。
【0005】
一般的にフラッシュメモリを用いた不揮発性メモリ記憶装置においては、ホスト101などの外部から指定される論理アドレスと、フラッシュメモリ内に配置される物理アドレスとは一致しない。一致させるとフラッシュメモリ内で不良が発生したブロックのアドレスが使用できず、アプリケーションに負担をかけたり、あるいは特定アドレスに書き込みが頻発するシステムでは、そのアドレスに該当するブロックが短期間で書き替え保証回数を上回り、短寿命になってしまうという不都合があるからである。
【0006】
物理ブロックはそれ自身が割り当てられている(関連付けられている)論理アドレスを冗長領域の中(図18の論理アドレス302)に記憶している。メモリ制御部116は、不揮発性メモリ装置102を装着したホスト101の電源が投入された時または不揮発性メモリ装置102がホストに挿入された時に、不揮発性メモリ102の冗長領域に書かれているすべての論理アドレス302を読み出す。なお、これらの初期テーブル作成及びホストからのコマンド解析等は、コントローラ111が行うケースがあるが、以降メモリ制御部116が処理を行うものとして説明する。メモリ制御部116は、論理アドレスと物理アドレスを変換するためのアドレス変換テーブル112を作成する。また同時にメモリ制御部116は、各ブロックが消去されているか否かを調べ、消去管理テーブル113を作成する。アドレス変換テーブル112及び消去管理テーブル113は、RAM上に作成される。
【0007】
メモリ制御部116は、データ読み出しコマンドがホスト101から不揮発性メモリ装置102に入力された時に、ホスト101から指定された論理アドレスに基づきアドレス変換テーブル112で物理アドレスを特定する。メモリ制御部116は、特定した物理ブロックにアクセスし、データを読み出す。
メモリ制御部116は、データ書き込みコマンドがホスト101から不揮発性メモリ装置102に入力された時に、消去管理テーブル113から消去済みブロックを抽出する。メモリ制御部116は、抽出されたブロックにデータを書き込み、データを書き込んだ物理ブロックをアドレス変換テーブル112に登録する。ホスト101から指定された論理アドレスがすでに登録されている場合は、データ書き込み処理は上書きになる。上書きの場合、メモリ制御部116は、アドレス変換テーブル112の旧物理ブロックを消去し、アドレス変換テーブル112にデータを書き込んだ新物理ブロックを登録する。書き込みでは物理ブロックの消去状態が変化するため、メモリ制御部116は、消去管理テーブル113の該当ブロックの情報を更新する。
【0008】
上述のアドレス変換テーブル112においては、1論理ブロック(1論理アドレス)に対し1物理ブロック(1物理アドレス)を直接割り当てていた。この場合、不揮発性メモリ117の容量が大きくなることに比例してアドレス変換テーブル112のRAMサイズも大きくなり、不揮発性メモリ装置102が高価になるという問題があった。
このためアドレス変換テーブルの1物理アドレス(「1次物理アドレス」と呼ぶ。)に複数(k個)の論理ブロック(論理アドレス)を割り当て、その物理アドレスで指定される物理ブロックの冗長領域にそれらの複数の論理アドレスにそれぞれ関連付けられた複数の物理アドレス(「2次物理アドレス」と呼ぶ。)を格納したアドレステーブルを持たせる間接型のアドレッシングシステムが考えられている。
【0009】
図3は、不揮発性メモリ装置102の不揮発性メモリ(間接型のアドレッシングシステム)の1物理ブロックの構成図例である。図3において、図18と同一のブロックには同一の符号を付している。図3が図18と異なる点は、2ページ目の冗長領域にアドレステーブル304を追加したことである。アドレステーブル304には、k個(kは2以上の正整数)の論理ブロックにそれぞれ関連付けられたk個の物理ブロックのアドレス(2次物理アドレス)が書き込まれている。図3においては、1次物理アドレス(アドレステーブル304が書き込まれた物理ブロックのアドレス)は、アドレステーブル304にも、2次物理アドレスの1アドレスとして記載されている。アドレステーブル304に記載されたk個の物理アドレスは、k個の連続する論理アドレスに、先頭から順番にそれぞれ関連付けられている。アドレステーブル304は、図3に示すページと異なるページに配置しても良い。それ以外の点で、図3は図18と同様であるため説明を省略する。
図4は、不揮発性メモリ装置102におけるアドレス変換テーブル112、消去管理テーブル113及び不揮発性メモリ117の関係を示す図である。この例では、k=2、つまりアドレス変換テーブル112の1物理アドレスに2つの論理アドレスが割り当てられている。
【0010】
メモリ制御部116は、データ読み出しコマンドがホスト101から不揮発性メモリ装置102に入力された時に、ホスト101から指定された論理アドレスに基づきアドレス変換テーブル112で1次物理アドレスを特定する。さらに、メモリ制御部116は、特定した1次物理ブロックの冗長領域のアドレステーブル304から本来の物理アドレス(ホスト101から指定された論理アドレスに関連付けられた物理アドレス)を特定する。メモリ制御部116は、特定した本来の物理ブロックにアクセスし、データを読み出す。またこの例では、目的のデータを得るために2回テーブルを参照しているが、2回以上テーブルを参照するシステムも可能である。段数が増えれば、アドレス変換テーブルのサイズを小さくすることができるが、テーブル異常で失うブロック数が多くなる欠点がある。
【0011】
メモリ制御部116は、データ書き込みコマンドがホスト101から不揮発性メモリ装置102に入力された時に、始めに消去管理テーブル113から未記録の物理ブロックを検索する。メモリ制御部116は、アドレス変換テーブル112に登録されている物理ブロックのアドレステーブル304を読み出す。メモリ制御部116は、アドレステーブル304の2次物理アドレスの1アドレスをこれから書き込みを行う物理ブロックのアドレス(検索した未記録の物理ブロック)に置き換えて、更新されたアドレステーブル情報とし、データと合せて未記録の物理ブロックに書き込む。書き込みが終了したら、メモリ制御部116は新物理ブロックアドレスをアドレス変換テーブル112に登録する。メモリ制御部116は、旧テーブルを持つブロックのアドレステーブル無効化フラグを上書きにより無効マークする。なお無効化するのは冗長領域にあるアドレステーブルのみで、データが無効になるとは限らない。例えば旧アドレステーブル304を格納していた物理ブロックが関連付けられた論理アドレス以外の論理アドレス(アドレステーブル304に含まれる。)のデータが書き換えられる場合である。この場合、旧アドレステーブル304を格納していた物理ブロックは、新アドレステーブルからリンクされる。なおこの間接アドレッシングシステムにおいても書き込みあるいは消去が行われた場合、消去管理テーブル113の情報を更新するのは同様である。
【0012】
また書き込みは常に正常に行われるとは限らない。書き込み、消去途中で電源オフ(カード抜き取り)等による中断が発生することについても考慮する必要がある。書き込み開始フラグ301は、書き込みを行う場合に先立ちマークされるものである。このため、書き込み開始フラグ301を検査することにより、そのブロックが消去済みか否かを判断できる。書き込み終了フラグ305は、そのブロックへの書き込みが完了した時に上書きによりマークされるものである。このため、書き込み終了フラグ305を検査することにより、そのブロックへの書き込みが中断したか否かを判断できる。
つまり消去済みブロックは、書き込み開始フラグ301及び書き込み終了フラグ305が共にマーク無である。書き込み完了したブロックは、書き込み開始フラグ301及び書き込み終了フラグ305が共にマーク有である。書き込みが中断した未完成のブロックは、書き込み開始フラグ301がマーク有、書き込み終了フラグ305がマーク無である。書き込みが中断した未完成のブロックのデータは使用しない。再利用するため消去を行い消去管理テーブルへ消去済みとして登録する。
【0013】
次に、間接型のアドレッシングを有する不揮発性メモリを有する不揮発性メモリ装置において、従来の初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の概要について説明する。
なお以下は、不揮発性メモリ消去時のレベルを1、マーク有の各フラグのレベルを0、また消去管理テーブル113のフラグは、消去済みを1、使用中を0として説明する。
最初にアドレス変換テーブル112及び消去管理テーブル113を初期化(詳細は後述)する。次に物理ブロックを順に全て検査を行い、テーブルを作成していく。アドレス変換テーブル112へは、書き込み終了フラグ305がマーク有で、アドレステーブル無効化フラグ303にマーク無のブロックを発見した場合、その冗長領域に書かれているアドレステーブル304の論理アドレスと同一の論理アドレス(アドレス変換テーブル112)の位置にその物理ブロックアドレスを登録する。消去管理テーブル113へは、書き込み開始フラグ301にマーク無のブロックを登録する(フラグを0とする。)。
【0014】
なお不良ブロックは、アドレス変換テーブル112へ登録せず、消去管理テーブル113へは書き込み対象にならないよう未消去として登録する。書き込みが中断された未完成のブロックは、消去を行い消去済みブロックとして消去管理ブロックへ登録する。さらに書き込み中断のタイミングによっては、アドレス変換テーブル112の同一の論理アドレスに2つの物理ブロックが重複して関連付けられる(それぞれの冗長領域に格納されたアドレステーブル304が同一の論理アドレスに関連付けられる)可能性がある。この場合、どちらのアドレステーブルが正しいか判断を行い、選択した物理ブロックのアドレスをアドレス変換テーブルへ登録し、非選択のブロックはアドレステーブル無効化フラグにマークを行い(アドレステーブル304を無効化し)、有効データならそのままにし、無効データなら消去を行う。
【0015】
この間接型アドレッシングのアドレス変換テーブル112を持つシステムでは、書き込みが完了しているが無効なブロックというものが存在する可能性がある。例えばアドレステーブルを持つブロックのアドレステーブルデータが異常になりリンクが失われた場合である。これは異常時の現象で、本来保持すべきデータが失われた不具合である。リンクが切れたブロックを放置しておくと、本来メモリ装置が持っている書き込み可能メモリ容量が永久に減少する不具合が発生する。しかし書き込み済みのブロックが有効か否かを判断するのは容易ではない。どのブロックのアドレステーブルからリンクされているかは全ブロックのアドレステーブルからリンクを検査しないと判明しないからである。
従って全物理ブロックを検査後、アドレス変換テーブルを使いリンク検査を行う。ここでリンクされていないブロックを抽出し、そのブロックの消去を行い、再利用可能にする必要がある。
【0016】
次に、間接型アドレッシングの不揮発性メモリを有する不揮発性メモリ装置において、従来の初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法について2つの例を挙げて説明する。
図19、図20を用いて、従来例1の初期化時のテーブル作成方法について説明する。図19は、従来例1の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図20は、従来例1の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。図20の下線のある部分が、各工程における操作を表している。
【0017】
物理ブロックの状態を、消去済み、有効データ、無効データ、不良ブロックの4つに分類して説明する。
有効データには2種類ある。1つは、アドレステーブル無効化フラグ303が有効でアドレステーブル304を持つブロックである。もう1つは、アドレステーブル無効化フラグ303は無効であるが別ブロックのアドレステーブル無効化フラグ303が有効でその別ブロックのアドレステーブルからリンクされているブロック(データは有効)である。
無効データにも2種類ある。1つは、書き込み開始フラグはマーク有であるが書き込み終了フラグはマーク無のブロック(データ書き込み未完成のブロック)である。もう1つは、書き込み開始フラグ、書き込み終了フラグがともにマーク有のブロック(データ書き込み完成のブロック)だがリンクされず結果として使用されないブロックである。
【0018】
図19及び図20において、不揮発性メモリ装置102を装着したホスト101の電源が投入された時または不揮発性メモリ装置102がホストに挿入された時に、ステップ1901でアドレス変換テーブル及び消去管理テーブルは初期化される。全メモリを大きくブロック分けし、その切り替え時にテーブル初期化を行うシステムもあるが、電源投入時の初期化と同じである。具体的には、不揮発性メモリ装置102はアドレス変換テーブル112の全てを未割り付けにし、消去管理テーブル113の全てに1(消去済)を設定する。
ステップ1902及び1903の工程では、リンクが切れた無効データブロックを抽出することが目的となる。
ステップ1902で不揮発性メモリ装置102は全物理ブロックサーチする。
具体的には、不揮発性メモリ装置102は、全物理ブロックの冗長領域にある論理アドレス302を読み出すことにより、アドレス変換テーブル112を作成し、消去管理テーブル113の消去済みでない全てのブロックに0(使用中)を設定する。アドレス変換テーブル112作成において、未完成ブロックやアドレス重複時には、選択判定及び無効化処理を行う。
ステップ1903で不揮発性メモリ装置102は全論理リンクサーチする。具体的には、不揮発性メモリ装置102は、全論理アドレスのリンクをたどり、有効データに対応する消去管理テーブル113のブロックに1(消去済)を設定する。これにより、消去管理テーブルで0(使用中)になっているブロックは、不良ブロック及び無効データブロックである。
【0019】
ステップ1904で不揮発性メモリ装置102は消去管理テーブルを順にサーチし、消去管理テーブルが0(使用中)でかつ不良でないブロック(無効データブロック)を消去し、消去管理テーブル113のそのブロックに1(消去済)を設定する。
ステップ1905で不揮発性メモリ装置102は再度全論理リンクサーチする。具体的には、不揮発性メモリ装置102は、全論理アドレスのリンクをたどり、消去管理テーブル113の有効データに0(使用中)を設定する。これにより、アドレス変換テーブル112及び消去管理テーブル113は完成する。
【0020】
図21、図22を用いて、従来例2の初期化時のテーブル作成方法について説明する。従来例2の作成方法は、全論理リンクサーチは1度ですむが、消去管理テーブルと同サイズのバッファテーブルをRAM上に必要とする。図21は、従来例2の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図22は、従来例2の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。図22の下線のある部分が、各工程における操作を表している。
【0021】
図21及び図22において、不揮発性メモリ装置102を装着したホスト101の電源が投入された時または不揮発性メモリ装置102がホストに挿入された時に、ステップ2101でアドレス変換テーブル及び消去管理テーブルは初期化される。具体的には、不揮発性メモリ装置102はアドレス変換テーブル112の全てを未割り付けにし、消去管理テーブル113及びバッファテーブルの全てのブロックに1(消去済)を設定する。
ステップ2102及び2103の工程では、消去管理テーブル113を作成することと、リンクが切れた無効データブロックを抽出するために消去済みブロックのテーブルをバッファテーブルに作成することとを同時に行う。
ステップ2102で不揮発性メモリ装置102は全物理ブロックサーチする。
具体的には、不揮発性メモリ装置102は、全物理ブロックの冗長領域にある論理アドレス302を読み出すことにより、アドレス変換テーブル112を作成し、消去管理テーブル113の不良のブロックに0(使用中)を設定し、バッファテーブルの消去済みでない全てのブロックに0(使用中)を設定する。アドレス変換テーブル112作成において、未完成ブロックやアドレス重複ブロックを発見した時には、選択判定及び無効化処理を行う。
【0022】
ステップ2103で不揮発性メモリ装置102は全論理リンクサーチする。具体的には、不揮発性メモリ装置102は、全論理アドレスのリンクをたどり、有効データに対応する消去管理テーブル113のブロックに0(使用中)を設定する。これにより、消去管理テーブルで1(消去済)であり、バッファテーブルで0(使用中)になっているブロックは、無効データブロックであると判別できる。
ステップ2104で不揮発性メモリ装置102は消去管理テーブル、バッファテーブルを比較し、消去管理テーブルが1(消去済)でかつバッファテーブルが0(使用中)のブロック(無効データブロック)を消去し、消去管理テーブル113のそのブロックに1(消去済)を設定する。これにより、アドレス変換テーブル112及び消去管理テーブル113は完成する。
【0023】
【特許文献1】
特開平11−110283号公報
【0024】
【発明が解決しようとする課題】
しかしながら、近年のフラッシュメモリ及び不揮発性メモリ記憶装置の大容量化に伴い、初期化時のアドレス変換テーブル、消去管理テーブル作成処理時間が増大している。テーブル作成処理の高速化を行うためには、不要ブロックの検索、消去処理が大きな障害となっている。
全物理ブロック検査を行い、その後全論理ブロックのリンクを検査するのは必要だが、不要ブロックを抽出するために2度の論理ブロック検査が必要となり初期化時間が増大する。もしくは消去管理テーブルと同サイズのバッファテーブルを使用できれば1度の検査で可能だが、そのRAM容量分の増加がコストアップの要因となる。
また不要ブロックの消去についても、消去時間は読出しやフラグのマーク(上書き)に比べて多くの時間が必要であり、初期化時間短縮の障害となっている。
本発明は、このような問題点に鑑みてなされたものであり、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成可能な間接アドレッシング型の不揮発性メモリ装置の制御方法を提供することを目的とする。
本発明は、小さなRAM容量で論理アドレス/物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を提供することを目的とする。
【0025】
【課題を解決するための手段】
上記課題を解決するため、本発明は下記の構成を有する。
請求項1に記載の発明は、複数の物理ブロックから成る不揮発性メモリと、1物理アドレスに複数の論理アドレスを割り当てた第1のアドレス変換テーブルと、消去済みのブロックを登録した消去管理テーブルと、を有し、前記物理ブロックはデータを格納するデータ領域と、前記物理ブロックに書き込まれたデータが有効か否かを判別する情報を格納した冗長領域と、を有し、前記第1のアドレス変換テーブルで指定された物理ブロックは、複数の論理アドレスに複数の物理アドレスを関連付けた第2のアドレス変換テーブルを有する、物理アドレスと論理アドレスとが間接的に関連付けられた不揮発性メモリ装置の制御方法であって、初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を前記消去管理テーブルに消去済みブロックとして登録し、且つ前記第1のアドレス変換テーブルを生成する登録ステップと、データ書き込み時に、前記消去管理テーブルから消去済みブロックを抽出し、前記消去済みブロックが本当に消去されているかを判定する判定ステップと、前記判定ステップで未消去であれば前記ブロックを消去する消去ステップと、前記消去ステップ後に、データを書き込む書き込みステップと、を有することを特徴とする不揮発性メモリ装置の制御方法である。
【0026】
請求項2に記載の発明は、前記登録ステップは、全物理ブロックの前記第2のアドレス変換テーブルが有効に存在することを判別可能な1つの固定ページを連続して読み出し、次の物理ブロックの固定ページを読み出している間に前回固定ページを読み出した前の物理ブロックの仮判別を行い、前の物理ブロックが前記第2のアドレス変換テーブルを有する有効な物理ブロックであると仮判別したならば、前記第1のアドレス変換テーブルに前の物理ブロックを仮登録する仮登録ステップと、全物理ブロック検査後に、仮登録した物理ブロックについてのみ他の固定ページを読み出し、その物理ブロックを前記第1のアドレス変換テーブルに登録することが適切か否かを再判別し、その物理ブロックを登録することが適切でなければ仮登録を削除する仮登録削除ステップと、を更に有することを特徴とする請求項1に記載の不揮発性メモリ装置の制御方法である。
【0027】
請求項3に記載の発明は、前記登録ステップは、1つの論理アドレスに複数の物理ブロックが重複して関連付けられていた場合、重複した物理ブロックを予備テーブルに登録する予備テーブル登録ステップと、前記仮登録ステップ後又は前記仮登録削除ステップ後に、前記予備テーブルに登録した物理ブロックを読み出し、重複した物理ブロックの中から適切な物理ブロックを選択し、前記第1のアドレス変換テーブルに登録する第2の登録ステップと、を更に有することを特徴とする請求項2に記載の不揮発性メモリ装置の制御方法である。
【0028】
請求項4に記載の発明は、前記第2の登録ステップにおいて、重複した物理ブロックの中で、適切な物理ブロックとして選択されなかった物理ブロックの前記第2のアドレス変換テーブルに関連付けられたアドレステーブル無効化フラグを無効にし、初期化時にその物理ブロックを消去しないことを特徴とする請求項3に記載の不揮発性メモリ装置の制御方法である。
【0029】
本発明は、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成する間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという作用を有する。
本発明は、小さなRAM容量で論理アドレス/物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという作用を有する。
【0030】
【発明の実施の形態】
以下、本発明の実施をするための最良の形態を具体的に示した実施例について、図面とともに記載する。
【0031】
《実施例1》
図1〜図11を用いて、本発明の実施例1の不揮発性メモリ装置における初期化方法について説明する。
はじめに、実施例1の不揮発性メモリ装置の構成について説明する。
図1は、不揮発性メモリ装置の構成を示すブロック図である。図2は、不揮発性メモリ装置102の不揮発性メモリ117(512MビットNAND型フラッシュメモリ)の構成図である。図3は、不揮発性メモリ装置102の不揮発性メモリ(間接型アドレッシングシステム)の1物理ブロックの構成図である。図4は、不揮発性メモリ装置102におけるアドレス変換テーブル112、消去管理テーブル113及び不揮発性メモリ117の関係を示す図である。本発明の実施例1の不揮発性メモリ装置の構成(図1〜図4)については、従来例と同様であるため説明を省略する。
【0032】
次に、実施例1の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の概要について説明する。
図5は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図6は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。
【0033】
図5及び図6において、不揮発性メモリ装置102を装着したホスト101の電源が投入された時または不揮発性メモリ装置102がホストに挿入された時に、ステップ501でアドレス変換テーブル及び消去管理テーブルは初期化される(詳細は図7)。具体的には、不揮発性メモリ装置102はアドレス変換テーブル112の全てを未割り付けにし、消去管理テーブル113の全てに1(消去済)を設定する。
ステップ502で不揮発性メモリ装置102は全物理ブロックサーチする(詳細は図8、図9)。具体的には、不揮発性メモリ装置102は、全物理ブロックの冗長領域にある論理アドレス302を読み出すことにより、アドレス変換テーブル112を作成し、消去管理テーブル113の不良ブロックに0(使用中)を設定する。
ステップ503で不揮発性メモリ装置102は全論理リンクサーチする(詳細は図10)。具体的には、不揮発性メモリ装置102は消去管理テーブル113の有効データに0(使用中)を設定する。消去済み、有効データ、無効データ、不良ブロックの定義は、従来例で説明した。
無効データは、消去管理テーブル113で1(消去済)として登録されている。無効データは、データ書き込み時には消去済みブロックとして扱われ、書き込みに使用される。
【0034】
次に、実施例1の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の詳細について説明する。
図7〜図10は、図5の詳細フローチャートである。
図7は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法のテーブル初期化処理(ステップ501)の詳細フローチャートである。図7において、ステップ701でメモリ制御部116はアドレス変換テーブル112を全て未割り付けにする。例えば、図11のa1〜a7・・・に1(未登録)を設定する。ステップ702でメモリ制御部116は消去管理テーブル113のフラグを全て消去済みにする。例えば、図11のb1〜b7・・・に未割り付けを表す数値(例えば全ビット”1”)を設定する。
【0035】
図8は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャートである。全物理ブロックサーチ処理(ステップ502)では、物理ブロックを順に全て検査することにより、アドレス変換テーブルを作成し、不良ブロックの消去管理テーブルに0(使用中)を設定する。
【0036】
図8において、ステップ801で、メモリ制御部116は検査アドレスに先頭の物理アドレスを設定する。ステップ802で、メモリ制御部116は検査アドレスの物理ブロックの情報を読み出し、検査アドレスの物理ブロックが不良ブロックか否かを判断する。不良ブロックでない場合は、ステップ803に進み、メモリ制御部116は検査アドレスの物理ブロックの書き込み開始フラグ301がマーク有か否かを判断する。ステップ803で書き込み開始フラグ301がマーク有の場合は、ステップ804に進み、メモリ制御部116は検査アドレスの物理ブロックの書き込み終了フラグ305がマーク有か否かを判断する。ステップ804で書き込み終了フラグ305がマーク有の場合は、ステップ805に進み、メモリ制御部116は検査アドレスの物理ブロックのアドレステーブル無効化フラグ303が有効か否かを判断する。
【0037】
ステップ805でアドレステーブル無効化フラグ303が有効の場合(書き込み開始フラグがマーク有かつ書き込み終了フラグがマーク有かつアドレステーブル無効化フラグが有効の場合)は、ステップ806に進み、メモリ制御部116は検査アドレスをアドレス変換テーブルに登録する(詳細は図9)。
ステップ802で不良ブロックの場合は、ステップ807に進み、メモリ制御部116は消去管理テーブルに0(使用中)を設定する。例えば、図11の不揮発性メモリ117の不良ブロック(物理アドレス0004)に対応する消去管理テーブルb5に0(使用中)を設定する。
なお、不良ブロックの具体的な判別方法は、本説明では特に行っていないが、不良ブロックアドレスを記録する方法や、不良ブロックの冗長領域に不良ブロックを意味するフラグを設けマークする方法がある。本フローチャートでは、各冗長領域の不良ブロックマークを調査するイメージで説明を行っている。
【0038】
ステップ803で書き込み開始フラグがマーク無の場合、ステップ804で書き込み終了フラグがマーク無の場合、ステップ805でアドレステーブル無効化フラグが無効の場合、及びステップ806で検査アドレスを登録後及びステップ807で消去管理テーブルに設定後、それぞれステップ808に進み、メモリ制御部116は検査アドレスを更新する(検査アドレスに次の物理アドレスを設定する。)。ステップ809で、メモリ制御部116は全ての物理ブロックの検査が終了したか否かを判断する。全ての物理ブロックの検査が終了していない場合は、ステップ802に戻り、次の物理ブロックの処理へ進む。全ての物理ブロックの検査が終了した場合は、このフローチャートを終了する。
【0039】
なお、本実施例の全物理ブロックサーチ処理(ステップ502)においては、アドレス変換テーブルに登録したブロック(有効データ)に対する消去管理テーブルの該当フラグは1(消去済)のままで、次の工程(全論理リンクサーチ処理(ステップ503))においてまとめて消去管理テーブルの該当フラグに0(使用中)を設定している。しかし、全物理ブロックサーチ処理(ステップ502)において消去管理テーブル113の該当フラグに0(使用中)を設定してもよい。
なお、不良ブロックを一括してアドレス管理しているシステムの場合においては、あらかじめ管理されている不良ブロックのアドレスの消去管理テーブルのフラグを0(使用中)にしておき、全物理ブロックサーチ処理(ステップ502)では消去管理テーブル113のフラグが0(使用中)であれば不良ブロックとしてその物理ブロックの検査をパスさせてもよい。
【0040】
データの上書き中に電源が切れた等の理由により、1つの論理アドレスに関連付けられた2つ以上の物理アドレスが重複して存在している場合がある。重複している物理アドレスをアドレス変換テーブルに登録する際、両方の物理ブロックを比較する必要がある。また、重複状態を放置しておくと、データを消去してももう一方のデータが存在するため、ホストからみれば消去したはずの論理アドレスにデータが入っているという不具合が発生する。本実施例の検査アドレス登録処理(ステップ806)は上記の不具合を解決するものである。
【0041】
図9は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス登録処理(ステップ806)の詳細フローチャートである。ステップ901で、メモリ制御部116は検査アドレスがアドレス変換テーブル112にすでに登録済みの論理アドレスか否かを判断する。登録済みの論理アドレスの場合は、ステップ902に進み、メモリ制御部116は重複している両方の物理ブロックを比較し、いずれか1個の物理ブロックを選択する。選択手順や判断基準は本発明と関係ないため省略する。ステップ903で、メモリ制御部116は選択した物理ブロックアドレスをアドレス変換テーブルへ登録する。
ステップ904で、メモリ制御部116は非選択の物理ブロックのアドレステーブル無効化フラグ303を無効に設定し、このフローチャートを終了する。
【0042】
例えば、図11の不揮発性メモリ117の物理アドレス0003、0005のブロックの論理アドレスが重複しているとする。物理アドレス0005のブロックが正しいデータであると判断した場合、アドレス変換テーブル112のデータa2に0005(選択ブロックの物理アドレス)を設定する。さらに、物理アドレス0003(非選択ブロックの物理アドレス)のブロックのアドレステーブル無効化フラグ303を無効に設定する。
ステップ901で検査アドレスが未登録の論理アドレスの場合は、ステップ905に進み、メモリ制御部116は物理ブロックアドレスをアドレス変換テーブルへ登録し、このフローチャートを終了する。例えば、図11のアドレス変換テーブル112のデータa1に0001を設定する。
【0043】
図10は、本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の全論理リンクサーチ処理(ステップ503)の詳細フローチャートである。全論理リンクサーチ処理(ステップ503)では、論理リンクをすべて検査することにより、有効データの消去管理テーブルに0(使用中)を設定し、消去管理テーブルを完成する。
図10において、ステップ1001で、メモリ制御部116は検査アドレスにアドレス変換テーブル112の先頭の論理アドレスのデータを設定する。ステップ1002で、メモリ制御部116はリンクアドレスに検査アドレスを設定する。ステップ1003で、メモリ制御部116はリンクアドレスの消去管理テーブル113に0(使用中)を設定する。ステップ1004で、メモリ制御部116は検査アドレスの物理ブロックの冗長領域のアドレステーブル304に他のリンクアドレスが登録されているか否かを判断する。
【0044】
ステップ1004で他のリンクアドレスが登録されている場合は、ステップ1005に進む。ステップ1005で、メモリ制御部116はリンクアドレスにアドレステーブル304に登録されている他のリンクアドレスを設定し、ステップ1003に戻る。間接型アドレッシングテーブルは、1段だけでなく複数段にすることも考えられるが、いずれにせよ読出し可能な、リンクされているブロックは使用中として消去管理テーブルに0(使用中)を設定する。
例えば、図11に示すように物理アドレス0002のブロックは物理アドレス0001のブロックにリンクしているとする。この場合、物理アドレス0001のブロックに対応する消去管理テーブルb2だけでなく、物理アドレス0002のブロックに対応する消去管理テーブルb3にも0(使用中)を設定する。
【0045】
ステップ1004で他のリンクアドレスが登録されていない場合(検査アドレスに対するリンクが全て検査終了した場合)は、ステップ1006に進み、メモリ制御部116は検査アドレスを更新する(検査アドレスにアドレス変換テーブルの次の論理アドレスのデータを設定する。)。ステップ1007で、メモリ制御部116は全ての論理ブロックの検査が終了したか否かを判断する。全ての論理ブロックの検査が終了していない場合は、ステップ1002に戻り、次の論理ブロックの処理へ進む。全ての論理ブロックの検査が終了した場合は、このフローチャートを終了する。
【0046】
図6に示すように、無効データブロックに対応する消去管理テーブルは1(消去済み)であり、無効データブロックは消去済みブロックと同じ扱いである。つまり書き込みがなされているにもかかわらず、書き込み可能として登録している。このまま書き込みを行えば上書きとなり、書き込みデータの不一致が発生、不良ブロックとして使用不可能領域となる。従って書き込み前にはそのブロックの書き込み開始フラグを一度読み出し、書き込みがされていない場合はそのまま書き込みを行い、書き込み済みであればそのブロックを消去してから書き込みを行う。
このように、書き込み前に必ず読み出し、場合によって消去処理が入ることになり書き込み速度の低下が懸念される。しかし、消去は電源瞬断や保持アドレスデータの異常といった異常状態時しか発生せず、定常的にはフラグ読み出し時間のみ増加する。読み出し時間は消去や書き込み時間に比較し格段に短いため、書き込み速度の低下は、初期化時の時間増大に比較し、システムとして小さな影響しかない。
【0047】
実施例1によれば、初期化時に無効データブロックを消去せず消去済み扱いにし、書き込み前に判別して消去することにより、RAM容量を増加することもなく初期化時間を短縮することが可能となる。
【0048】
《実施例2》
実施例1の全物理ブロックサーチ処理(ステップ502)において、不揮発性メモリ装置はアドレス変換テーブル112に登録するブロックか否かを検査する。登録するための有効条件は、最初のページにある書き込み開始フラグ301がマーク有であること、同じくアドレステーブル無効化フラグ303が有効であること、更に最終ページにある書き込み終了フラグ305がマーク有であることである。厳密に言えば他にも、論理アドレス302が取り得るアドレス範囲に入っていること、アドレスのエラー訂正コードに対しエラーが出ていないこと等の条件が挙げられる。いずれにせよ、最初のページのフラグ301、303でアドレス変換テーブル112に登録しないことは判別できるケースがあるが、一般的には登録するためには最終ページの書き込み終了フラグ305のように複数ページを検査する必要がある。
【0049】
冗長領域のデータを読み出す間に、並行して読み出したデータを判別し、処理を行うことは可能である。例えば、メモリ制御部116が冗長領域のデータを読み出した後、次のデータ読み出しをすぐに起動しておく。その間にコントローラ111が前回読み出したデータを判別し、アドレス変換テーブル112及び消去管理テーブル113への登録を行う。コントローラ111のソフトウェア処理が、冗長領域の読み出し時間内に終了することができれば、メモリ制御部116のメモリデータ読出し時間が全体の処理時間を決定することになる。
【0050】
この方法での問題は、次に読み出すべきブロック、ページが、最初のページの内容を判別しないとわからないことである。つまり最初のページを読出した時、書き込み開始フラグ301がマークされていない時、あるいはアドレステーブル無効化フラグ303にマークされている時、アドレス変換テーブルに登録される可能性は無いので、次は次ブロックの最初のページを読み出すことになる。上記条件以外の時は検査アドレスはアドレス変換テーブル112に登録される可能性があるため、最終ページの書き込み終了フラグ305を検査する必要がある。
必ず最初のページと最終ページを交互に読むことにすれば、読み出し起動ページは決まる。しかし、間接型アドレッシングでアドレス変換テーブル112に登録されるブロックが全体の数分の1にしかならないシステムにおいては、このような方法によれば1ブロックに対し必ず2ページを読み出さなければならず、不要なページの読み出しが初期化時間を増大させる。本実施例の全物理ブロックサーチ処理は上記の不具合を解決するものである。
【0051】
図1〜図7、図10〜図17を用いて、本発明の実施例2の不揮発性メモリ装置における初期化方法について説明する。
はじめに、実施例2の不揮発性メモリ装置の構成について説明する。
図1は、不揮発性メモリ装置の構成を示すブロック図である。図2は、不揮発性メモリ装置102の不揮発性メモリ117(512MビットNAND型フラッシュメモリ)の構成図である。図3は、不揮発性メモリ装置102の不揮発性メモリ(間接型アドレッシング)の1物理ブロックの構成図である。図4は、不揮発性メモリ装置102におけるアドレス変換テーブル112、消去管理テーブル113及び不揮発性メモリ117の関係を示す図である。本発明の実施例2の不揮発性メモリ装置の構成(図1〜図4)については、従来例と同様であるため説明を省略する。
【0052】
次に、実施例2の不揮発性メモリ装置における初期化時のアドレス変換テーブル112及び消去管理テーブル113の作成方法の概要について説明する。
図5は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャートである。図6は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図である。本発明の実施例2の不揮発性メモリ装置の初期化方法の概要(図5、図6)については、実施例1と同様であるため説明を省略する。
【0053】
次に、実施例2の不揮発性メモリ装置における初期化時のアドレス変換テーブル及び消去管理テーブルの作成方法の詳細について説明する。
図7、図10、図12〜図14、図16、図17は、図5の詳細フローチャートである。本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成処理のテーブル初期化処理(図7)については、実施例1と同様であるため説明を省略する。
図12は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャート1である。図13は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャート2である。全物理ブロックサーチ処理(ステップ502)では、物理ブロックを順に全て検査することにより、アドレス変換テーブル112を作成し、不良ブロックの消去管理テーブル113に0(使用中)を設定する。
【0054】
図12において、ステップ1201で、メモリ制御部116は検査アドレスに先頭の物理アドレスを設定する(初期値i=0)。ステップ1202で、メモリ制御部116は検査アドレス(i=0)の物理ブロックの最初のページを読み出す。ステップ1203で、メモリ制御部116は検査アドレスを更新する(検査アドレスに次の物理アドレスを設定する。)(i=i+1)。ステップ1204で、メモリ制御部116は検査アドレス(i)の物理ブロックの最初のページを読み出す。ステップ1205でメモリ制御部116は最初のページの情報のみで判断し、書き込み開始フラグ301がマーク有であり且つアドレステーブル無効化フラグ303が有効であれば、前回の検査アドレス(i−1)をアドレス変換テーブルに仮登録する(詳細は図14)。ステップ1204とステップ1205の処理を並行して行う。ステップ1206で、メモリ制御部116は全ての物理ブロックの検査が終了したか否かを判断する。全ての物理ブロックの検査が終了していない場合は、ステップ1203に戻り、次の物理ブロックの処理へ進む(メモリ制御部116は連続して最初のページを読み出す。)。全ての物理ブロックの検査が終了した場合は、このフローチャートを終了する。
【0055】
図13において、ステップ1301で、メモリ制御部116は検査アドレスにアドレス変換テーブルの仮登録された先頭(j=0)のデータを設定する。ステップ1302で、メモリ制御部116は検査アドレス(アドレス変換テーブルの仮登録された先頭(j=0)のデータ)の物理ブロックの最終ページを読み出す。ステップ1303で、メモリ制御部116は検査アドレスを更新する(検査アドレスにアドレス変換テーブルの仮登録された次(j(=j+1)番目)のデータを設定する。)。
【0056】
ステップ1304で、メモリ制御部116は検査アドレス(アドレス変換テーブルのj番目のデータ)の物理ブロックの最終ページを読み出す。ステップ1305でメモリ制御部116は最終ページの情報(書き込み終了フラグ305)で判断し、もし書き込み終了フラグ305がマークされていなければ、前回の検査アドレス(アドレス変換テーブルの仮登録された(j−1)番目のデータ)のアドレス変換テーブルへの仮登録を取り消し、未登録に戻す(詳細は図16)。ステップ1304とステップ1305の処理を並行して行う。
ステップ1306で、メモリ制御部116は全ての仮登録ブロックの検査が終了したか否かを判断する。全ての仮登録ブロックの検査が終了していない場合は、ステップ1303に戻り、次の仮登録ブロックの処理へ進む。全ての仮登録ブロックの検査が終了した場合は、ステップ1307に進み、予備テーブルの判定を行い(詳細は図17)、このフローチャートを終了する。
【0057】
データの上書き中に電源が切れた等の理由により、1つの論理アドレスに関連付けられた2つ以上の物理アドレスが重複して存在している場合がある。最初のページの情報のみで判断しアドレス変換テーブルに仮登録しているが、重複している物理アドレスをアドレス変換テーブルに登録する際、いずれの物理ブロックを選択するかについて、両方の物理ブロックを比較する必要がある。まず最終ページを読み出し、書き込み完了したブロックか否か判定が必要である。両ブロックとも完成されていれば(書き込み終了フラグ305がマークされていれば)、さらに別ページ、別データ等を判別に用い、最終的にどちらかを選択する。この選択方法については本説明では省略する。
しかし、重複に気がついた時には、ハードウェアは次ブロックの最初のページの読出しを行っており、これを中断し、最終ページ他を読出しすれば、その時間だけロスが発生する。本実施例の仮登録処理及び予備テーブル判定処理は上記の不具合を解決するものである。
【0058】
図14は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス仮登録処理(ステップ1205)の詳細フローチャートである。ステップ1401で、メモリ制御部116は前回の検査アドレス(i−1)の物理ブロックの書き込み開始フラグ301がマーク有か否かを判断する。ステップ1401で書き込み開始フラグ301がマーク有の場合は、ステップ1402に進み、メモリ制御部116は前回の検査アドレス(i−1)の物理ブロックのアドレステーブル無効化フラグ303が有効か否かを判断する。ステップ1402でアドレステーブル無効化フラグ303が有効の場合(書き込み開始フラグ301がマーク有かつアドレステーブル無効化フラグ303が有効の場合)は、ステップ1403に進み、メモリ制御部116はアドレス変換テーブル112にすでに登録済みの論理アドレスか否かを判断する。未登録の論理アドレスの場合は、ステップ1404に進み、メモリ制御部116は物理ブロックアドレスをアドレス変換テーブル112に登録し、このフローチャートを終了する。
【0059】
ステップ1403で登録済みの論理アドレスの場合は、ステップ1405に進み、メモリ制御部116は重複したアドレス変換テーブルのアドレス及び登録する物理ブロックアドレスをRAM上の予備テーブル(図15)へ登録し、このフローチャートを終了する。例えば、図11の不揮発性メモリ117の物理アドレス0003、0005のブロックの論理アドレスが重複しているとする。図15に示すように先に処理された物理アドレス0003がアドレス変換テーブルに設定され、後に処理された物理アドレス0005が予備テーブルに設定される。
【0060】
図16は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の仮登録削除処理(ステップ1305)の詳細フローチャートである。ステップ1601で、メモリ制御部116は前回の検査アドレス(i−1)の物理ブロックの書き込み終了フラグ305がマーク有か否かを判断する。ステップ1601で書き込み終了フラグ305がマーク無の場合は、ステップ1602に進み、メモリ制御部116は物理ブロックアドレスのアドレス変換テーブル112への仮登録を取り消し、未登録に戻す。ステップ1603で、メモリ制御部116は前回の検査アドレス(i−1)の物理ブロックのアドレステーブル無効化フラグ303を無効に設定し、このフローチャートを終了する。このブロックは書き込み終了フラグ305がマーク無のため、有効になることはありえない。
しかし、初期化の度に仮登録と仮登録削除を行ってしまうため、アドレステーブル無効化フラグ303を無効にする。ステップ1601で書き込み終了フラグ305がマーク有の場合は、このフローチャートを終了する。
【0061】
図17は、本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の予備テーブル判定処理(ステップ1307)の詳細フローチャートである。ステップ1701で、メモリ制御部116は予備テーブルを読み出す。
ステップ1702で、重複している両方の物理ブロックを比較し、いずれか1個の物理ブロックを選択する。選択手順や判断基準は本発明と関係ないため省略する。ステップ1703で、メモリ制御部116は選択した物理ブロックアドレスをアドレス変換テーブル112へ登録する。ステップ1704で、メモリ制御部116は非選択の物理ブロックのアドレステーブル無効化フラグ303を無効に設定し、このフローチャートを終了する。
【0062】
例えば、図15に示すように予備テーブルに論理アドレス2、データ0005が登録されているとする。この場合、アドレス変換テーブルから同一の論理アドレス(2)に関連付けられているデータ(0003)を抽出する。物理アドレス0003、0005のブロックを比較し、物理アドレス0005のブロックが正しいデータであると判断した場合、アドレス変換テーブル112のデータa2に0005(選択ブロックの物理アドレス)を設定する。さらに、物理アドレス0003(非選択ブロックの物理アドレス)のブロックのアドレステーブル無効化フラグ303を無効に設定する。
【0063】
本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成処理の全論理リンクサーチ処理(ステップ503。図10)については、実施例1と同様であるため説明を省略する。
本発明の実施例2の不揮発性メモリ装置における書き込み前の処理についても、実施例1と同様であるため説明を省略する。
【0064】
予備テーブル作成のために必要なRAM容量が増加する。しかし、通常状態では書き込みが中断した場合、1組のテーブルしか重複しない。さらに、1度初期化するとアドレステーブル無効化フラグ303がマークされ次回からは解消されるため、重複アドレスは蓄積しない。よって、必要なRAM容量の増加は問題になる範囲ではない。
上記実施例では、フラグを1ビットで1もしくは0で表わしたが、極性はフラッシュの消去レベル(実施例では1)や割付け方法により変更可能である。複数ビットを使用し、多数決処理を行って判定するといった手段も可能である。また冗長領域におけるフラグやアドレスの配置を最初のページと最終ページとしたが、他のページに置換えても同様の効果を上げることができる。また2ページだけでなく3ページ以上の場合も応用可能である。
【0065】
実施例2によれば、必要最小限のページのみ読み出し、さらに読み出しの間に判定処理を並行して行うことにより、初期化における全物理ブロックサーチ時間を短縮することが可能となる。
実施例2によれば、予備テーブルを設けることにより、初期化における全物理ブロックサーチ中に処理を中断することがなくなり、全物理ブロックサーチ時間を短縮することが可能となる。
実施例2によれば、未完成ブロックのアドレステーブル無効化フラグにマークを行うことにより、次回から最初のページの検査時に仮登録されなくなり、全物理ブロックサーチ後の判定も不要となり、予備テーブルのRAM容量増加、及び初期化時間の増加を防ぐことができる。
実施例2によれば、実施例1と同様に初期化時に無効データブロックを消去せず、書き込み前に判別して消去することにより、初期化時間を短縮することが可能となる。
【0066】
【発明の効果】
本発明によれば、初期化時にアドレス変換テーブル、消去管理テーブルを高速に作成する間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという有利な効果が得られる。
本発明によれば、小さなRAM容量で論理アドレス/物理アドレス変換を行う間接アドレッシング型の不揮発性メモリ装置の制御方法を実現できるという有利な効果が得られる。
【図面の簡単な説明】
【図1】従来例及び本発明の実施例の不揮発性メモリ装置の構成を示すブロック図
【図2】従来例及び本発明の実施例の不揮発性メモリ装置の不揮発性メモリ(512MビットNAND型フラッシュメモリ)の構成図
【図3】従来例及び本発明の実施例の不揮発性メモリ装置の不揮発性メモリ(間接型アドレッシング)の1物理ブロックの構成図
【図4】従来例及び本発明の実施例の不揮発性メモリ装置におけるアドレス変換テーブル、消去管理テーブル及び不揮発性メモリの関係を示す図(初期化後)
【図5】本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図6】本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【図7】本発明の実施例1、2の不揮発性メモリ装置における初期化時のテーブル作成方法のテーブル初期化処理(ステップ501)の詳細フローチャート
【図8】本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャート
【図9】本発明の実施例1の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス登録処理(ステップ806)の詳細フローチャート
【図10】本発明の実施例1、2の不揮発性メモリ装置における初期化時のテーブル作成方法の全論理リンクサーチ処理(ステップ503)の詳細フローチャート
【図11】不揮発性メモリ装置におけるアドレス変換テーブル、消去管理テーブル及び不揮発性メモリの関係を示す図(初期化中)
【図12】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャート1
【図13】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の全物理ブロックサーチ処理(ステップ502)の詳細フローチャート2
【図14】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の検査アドレス仮登録処理(ステップ1205)の詳細フローチャート
【図15】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法のアドレス変換テーブル、予備テーブルを示す図
【図16】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の仮登録削除処理(ステップ1305)の詳細フローチャート
【図17】本発明の実施例2の不揮発性メモリ装置における初期化時のテーブル作成方法の予備テーブル判定処理(ステップ1307)の詳細フローチャート
【図18】従来例の不揮発性メモリ装置の不揮発性メモリ(直接型アドレッシング)の1物理ブロックの構成図
【図19】従来例1の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図20】従来例1の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【図21】従来例2の不揮発性メモリ装置における初期化時のテーブル作成方法の概要フローチャート
【図22】従来例2の不揮発性メモリ装置における初期化時のテーブル作成方法の過程を示す図
【符号の説明】
101 ホスト
102 不揮発性メモリ装置
111 コントローラ
112 アドレス変換テーブル
113 消去管理テーブル
114 ホストI/F部
115 データバッファ
116 メモリ制御部
117 不揮発性メモリ
301 書き込み開始フラグ
302 論理アドレス
303 アドレステーブル無効化フラグ
304 アドレステーブル
305 書き込み終了フラグ
Claims (4)
- 複数の物理ブロックから成る不揮発性メモリと、1物理アドレスに複数の論理アドレスを割り当てた第1のアドレス変換テーブルと、消去済みのブロックを登録した消去管理テーブルと、を有し、
前記物理ブロックはデータを格納するデータ領域と、前記物理ブロックに書き込まれたデータが有効か否かを判別する情報を格納した冗長領域と、を有し、
前記第1のアドレス変換テーブルで指定された物理ブロックは、複数の論理アドレスに複数の物理アドレスを関連付けた第2のアドレス変換テーブルを有する、
物理アドレスと論理アドレスとが間接的に関連付けられた不揮発性メモリ装置の制御方法であって、
初期化時に、無効なデータが書き込まれており又は有効なデータが書き込まれているがどの論理アドレスにも関連付けられていない無効な物理ブロックと、消去済みのブロックと、を前記消去管理テーブルに消去済みブロックとして登録し、且つ前記第1のアドレス変換テーブルを生成する登録ステップと、
データ書き込み時に、前記消去管理テーブルから消去済みブロックを抽出し、前記消去済みブロックが本当に消去されているかを判定する判定ステップと、
前記判定ステップで未消去であれば前記ブロックを消去する消去ステップと、
前記消去ステップ後に、データを書き込む書き込みステップと、を有することを特徴とする不揮発性メモリ装置の制御方法。 - 前記登録ステップは、
全物理ブロックの前記第2のアドレス変換テーブルが有効に存在することを判別可能な1つの固定ページを連続して読み出し、次の物理ブロックの固定ページを読み出している間に前回固定ページを読み出した前の物理ブロックの仮判別を行い、前の物理ブロックが前記第2のアドレス変換テーブルを有する有効な物理ブロックであると仮判別したならば、前記第1のアドレス変換テーブルに前の物理ブロックを仮登録する仮登録ステップと、
全物理ブロック検査後に、仮登録した物理ブロックについてのみ他の固定ページを読み出し、その物理ブロックを前記第1のアドレス変換テーブルに登録することが適切か否かを再判別し、その物理ブロックを登録することが適切でなければ仮登録を削除する仮登録削除ステップと、を更に有することを特徴とする請求項1に記載の不揮発性メモリ装置の制御方法。 - 前記登録ステップは、
1つの論理アドレスに複数の物理ブロックが重複して関連付けられていた場合、重複した物理ブロックを予備テーブルに登録する予備テーブル登録ステップと、
前記仮登録ステップ後又は前記仮登録削除ステップ後に、前記予備テーブルに登録した物理ブロックを読み出し、重複した物理ブロックの中から適切な物理ブロックを選択し、前記第1のアドレス変換テーブルに登録する第2の登録ステップと、を更に有することを特徴とする請求項2に記載の不揮発性メモリ装置の制御方法。 - 前記第2の登録ステップにおいて、重複した物理ブロックの中で、適切な物理ブロックとして選択されなかった物理ブロックの前記第2のアドレス変換テーブルに関連付けられたアドレステーブル無効化フラグを無効にし、初期化時にその物理ブロックを消去しないことを特徴とする請求項3に記載の不揮発性メモリ装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003028536A JP2004240660A (ja) | 2003-02-05 | 2003-02-05 | 不揮発性メモリ装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003028536A JP2004240660A (ja) | 2003-02-05 | 2003-02-05 | 不揮発性メモリ装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004240660A true JP2004240660A (ja) | 2004-08-26 |
JP2004240660A5 JP2004240660A5 (ja) | 2006-03-23 |
Family
ID=32955984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003028536A Pending JP2004240660A (ja) | 2003-02-05 | 2003-02-05 | 不揮発性メモリ装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004240660A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209608A (ja) * | 2005-01-31 | 2006-08-10 | Sony Corp | メモリ制御装置、メモリ制御方法、プログラム |
JP2007334935A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 不揮発性メモリ |
WO2009107283A1 (en) * | 2008-02-29 | 2009-09-03 | Kabushiki Kaisha Toshiba | Information processing apparatus and nonvolatile semiconductor memory drive |
JP2010091458A (ja) * | 2008-10-09 | 2010-04-22 | Yokogawa Electric Corp | 測定装置 |
JP4832521B2 (ja) * | 2005-09-25 | 2011-12-07 | 深▲ちぇん▼市朗科科技股▲ふん▼有限公司 | フラッシュメモリメディアにおけるデータ管理方法 |
US8099544B2 (en) | 2008-02-29 | 2012-01-17 | Kabushiki Kaisha Toshiba | Information processing apparatus and nonvolatile semiconductor memory drive |
US9367444B2 (en) | 2012-03-16 | 2016-06-14 | Kabushiki Kaisha Toshiba | Non-volatile memory device, control method for information processing device, and information processing device |
JP2016525240A (ja) * | 2013-07-16 | 2016-08-22 | インテル・コーポレーション | メモリシステムにおける消去管理 |
CN111208950A (zh) * | 2020-01-15 | 2020-05-29 | 山西银河电子设备厂 | 一种基于单片机的提升norflash使用周期的方法 |
-
2003
- 2003-02-05 JP JP2003028536A patent/JP2004240660A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006209608A (ja) * | 2005-01-31 | 2006-08-10 | Sony Corp | メモリ制御装置、メモリ制御方法、プログラム |
JP4665539B2 (ja) * | 2005-01-31 | 2011-04-06 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
JP4832521B2 (ja) * | 2005-09-25 | 2011-12-07 | 深▲ちぇん▼市朗科科技股▲ふん▼有限公司 | フラッシュメモリメディアにおけるデータ管理方法 |
JP2007334935A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 不揮発性メモリ |
US8732385B2 (en) | 2006-06-12 | 2014-05-20 | Sony Corporation | Non-volatile memory, controller controlling next access |
JP2012053879A (ja) * | 2008-02-29 | 2012-03-15 | Toshiba Corp | 情報処理装置 |
JP4829342B2 (ja) * | 2008-02-29 | 2011-12-07 | 株式会社東芝 | 情報処理装置及び不揮発性半導体メモリドライブ |
US8099544B2 (en) | 2008-02-29 | 2012-01-17 | Kabushiki Kaisha Toshiba | Information processing apparatus and nonvolatile semiconductor memory drive |
JP2012038327A (ja) * | 2008-02-29 | 2012-02-23 | Toshiba Corp | 不揮発性半導体メモリドライブ |
WO2009107283A1 (en) * | 2008-02-29 | 2009-09-03 | Kabushiki Kaisha Toshiba | Information processing apparatus and nonvolatile semiconductor memory drive |
JP2010091458A (ja) * | 2008-10-09 | 2010-04-22 | Yokogawa Electric Corp | 測定装置 |
US9367444B2 (en) | 2012-03-16 | 2016-06-14 | Kabushiki Kaisha Toshiba | Non-volatile memory device, control method for information processing device, and information processing device |
JP2016525240A (ja) * | 2013-07-16 | 2016-08-22 | インテル・コーポレーション | メモリシステムにおける消去管理 |
CN111208950A (zh) * | 2020-01-15 | 2020-05-29 | 山西银河电子设备厂 | 一种基于单片机的提升norflash使用周期的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4967680B2 (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法 | |
JP3692313B2 (ja) | 不揮発性メモリの制御方法 | |
KR100843543B1 (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
US10255192B2 (en) | Data storage device and data maintenance method thereof | |
JP5035636B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
JP5336060B2 (ja) | 不揮発性メモリ装置およびそれを動作させる方法 | |
JP5130646B2 (ja) | 記憶装置 | |
JP4058322B2 (ja) | メモリカード | |
US7870328B2 (en) | Memory controller and flash memory system | |
US20090070520A1 (en) | Semiconductor storage device and method of controlling semiconductor storage device | |
KR20040038713A (ko) | 비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치 | |
US7558904B2 (en) | Controller, data memory system, data rewriting method, and computer program product | |
JP2004240660A (ja) | 不揮発性メモリ装置の制御方法 | |
JP2003058417A (ja) | 記憶装置 | |
JP3808842B2 (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
JP4513786B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
US20070005929A1 (en) | Method, system, and article of manufacture for sector mapping in a flash device | |
JP2007323159A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP2014194817A (ja) | 記憶装置 | |
KR100654343B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
US20210117315A1 (en) | Memory controller and flash memory system | |
JP2008112455A (ja) | メモリカード | |
US7996598B2 (en) | Memory management module | |
JP2009211152A (ja) | 情報処理装置、メモリシステムおよびその制御方法 | |
JP5264459B2 (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050524 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060206 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060206 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090428 |