(57)【要約】【課題】不揮発性の記憶装置において、データを記憶するフラッシュメモリの変換テーブルを第２の不揮発性メモリに保持し、その際の電源遮断時の誤動作を防止すること。【解決手段】第２の不揮発性メモリ５には、フラッシュメモリ４へのデータの書込みの際に補助領域１０にその経過を記録して、エントリテーブル６、アドレス変換テーブル７を更新する。電源投入時には、そのテーブルと補助領域の状態に基づいてデータの書込み前、又はデータの書込み後のいずれかとして電源遮断時の異常状態を解消する。【選択図】図１
2005222202.tif 000002
【特許請求の範囲】
【請求項１】
物理アドレスに応じてデータを記憶する第１の不揮発性メモリと、
外部から与えられる論理アドレスを前記第１の不揮発性メモリの物理アドレスに変換するアドレス変換テーブル、物理アドレスの書込みの状態を示すエントリテーブルを保持すると共に、及びデータ更新に従って更新される補助領域を有する第２の不揮発性メモリと、
外部から与えられる論理アドレスを前記アドレス変換テーブルに基づいて物理アドレスに変換して前記第１の不揮発性メモリにデータを書き込み、及び読み出すコントローラと、を有する不揮発性記憶装置におけるデータ保護方法であって、
前記コントローラは、前記第１の不揮発性メモリへのデータの書込みの前後に前記補助領域及び前記アドレス変換テーブルの一部を更新し、
電源の投入後に前記アドレス変換テーブル及び前記補助領域の状態に基づいて電源遮断時の異常状態を解消することを特徴とする不揮発性記憶装置のデータ保護方法。
【請求項２】
前記第２の不揮発性メモリの補助領域は、
前記第１の不揮発性メモリのデータを書き換える論理アドレス、データ書き換えの対象となる新旧の物理アドレスを記憶する領域、及び前記第１の不揮発性メモリへの書込みを示す書込フラグ、その消去を示す消去フラグを有するものであり、
データの更新の際に、前記書込フラグを立てた後に新物理アドレス領域で示される新物理アドレスにデータを書込み、
前記消去フラグを立てた後に旧物理アドレス領域で示される旧物理アドレスのデータを消去し、
前記書込フラグ及び前記消去フラグをリセットすることを特徴とする請求項１記載の不揮発性記憶装置のデータ保護方法。
【請求項３】
電源投入時に、
前記書込フラグが書込み中、前記消去フラグが未消去のときに、旧物理アドレスに元のデータが保持された状態となるように新物理アドレスのデータを消去して前記書込フラグをリセットし、
前記書込フラグが書込み中で且つ消去フラグが消去中のときに、前記新物理アドレスにデータが書き換えられた状態となるように旧物理アドレスのデータを消去し、前記アドレス変換テーブル、エントリテーブルを更新し、前記書込フラグ及び消去フラグをリセットすることを特徴とする請求項２記載の不揮発性記憶装置のデータ保護方法。
【請求項４】
前記第２の不揮発性メモリは、
前記第１の不揮発性メモリの各物理ブロックの書込みの状態を示すエントリテーブル及びアドレス変換テーブルを含む第１のテーブルと、
前記第１の不揮発性メモリの各物理ブロックの書込みの状態を示すエントリテーブル及びアドレス変換テーブルを含む第２のテーブルと、
前記第１のテーブルの有効／無効を示す第１のテーブル有効フラグと、
前記第２のテーブルの有効／無効を示す第２のテーブル有効フラグとを有するものであり、
データの更新の際に、前記第１，第２のテーブル有効フラグで示される無効なテーブルの書き換える論理アドレスに新たな物理アドレスを設定し、その物理アドレスで示される前記第１の不揮発性メモリに新たなデータを書込み、
前記第１，第２のテーブル有効フラグのうち無効となっていたフラグを有効とし、有効となっていたフラグを無効とし、
前記第１，第２のテーブル有効フラグの無効となったフラグで示されるテーブルの書き換え対象となった論理アドレスに対応する物理アドレスのデータを消去し、
前記第１，第２のテーブル有効フラグで示される有効テーブルの内容を無効テーブルに一致させることを特徴とする請求項１記載の不揮発性記憶装置のデータ保護方法。
【請求項５】
電源投入の際に、
前記第１，第２のテーブルの不一致を比較し、
不一致があれば前記第１，第２のテーブル有効フラグで示される無効テーブルに物理アドレスの重複があるか否かをチェックし、
重複があれば無効テーブルを有効テーブルに一致させ、
重複がなければ前記第１，第２のテーブルのうち無効なテーブルの不一致となっている物理アドレスのデータを消去すると共に、有効なテーブルを他方のテーブルに一致させることを特徴とする請求項４記載の不揮発性記憶装置のデータ保護方法。
【請求項６】
前記第２の不揮発性メモリの補助領域は、
次にデータを書き換える際に用いられる次候補の物理アドレスを記憶する領域と、
前記アドレス変換テーブルの各物理アドレス及び前記次候補アドレスの書込／消去状態を示す書込／消去フラグとを有するものであり、
データの更新時に、次候補の書込／消去フラグを立てて次候補領域で示される物理アドレスに新しいデータを書込み、
前記アドレス変換テーブルのうち更新する物理アドレスの書込／消去フラグを立て、その物理アドレスのデータを消去し、
次候補の書込／消去フラグをリセットし、
次候補の物理アドレスを前記アドレス変換テーブルに更新された物理アドレスとして記録し、
消去済みの物理アドレスを新たな次候補アドレスとして更新し、
前記アドレス変換テーブルの書込／消去フラグをリセットすることを特徴とする請求項１記載の不揮発性記憶装置のデータ保護方法。
【請求項７】
電源投入時には、
次候補の書込／消去フラグが立っており、前記アドレス変換テーブルの書込／消去フラグがリセットされているときに、元の物理アドレスに元のデータが保持された状態となるように次候補領域で示される物理ブロックを消去すると共に、次候補のフラグをリセットし、
次候補領域の書込／消去フラグ及び前記アドレス変換テーブルの書込／消去フラグが立っているときに、次候補領域で示される物理アドレスにデータが書き換えられた状態となるように、アドレス変換テーブルの書込／消去フラグが立てられている物理アドレスのデータを消去し、次候補の書込／消去フラグをリセットし、前記アドレス変換テーブルを更新すると共に、アドレス変換テーブルの書込／消去フラグをリセットし、
次候補の書込／消去フラグがリセットされており、前記アドレス変換テーブルの書込／消去フラグが立っているときに、前記アドレス変換テーブルを更新すると共に、アドレス変換テーブルの書込／消去フラグをリセットすることを特徴とする請求項６記載の不揮発性記憶装置のデータ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置のデータ保護方法に関するものである。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを有する半導体メモリは、メモリカードとして需要が広まっている。そのメモリカードはカセットテープやミニディスクとは異なり、機械的に駆動することなくデータを読み書きできるので携帯機器用途として主に使用されている。携帯機器は電池で駆動され、又据え置き型の機器に比べて機器そのものを落下させる危険性が非常に高く、メモリカードは常にデータの読み書き途中における電源遮断にさらされることになる。
【０００３】
次に従来の半導体メモリカードについてより具体的に説明する。図１８は従来の半導体メモリカード１００を示す図である。メモリカードにはホスト機器１０１が接続されている。半導体メモリカード１００は外部のホスト機器１０１からの読出命令を受け、データを読出して送信するコントローラ１０２と、不揮発性メモリであるフラッシュメモリＦＭ０〜ＦＭ７が設けられている。各フラッシュメモリは例えば１Ｇビット、即ち１２８Ｍバイト（Ｂ）の容量を有しており、有効な記録領域として１ＧＢのメモリカードを構成している。又コントローラ１０２には揮発性メモリ１０３が接続される。揮発性メモリ１０３は、後述するエントリテーブル１０４とアドレス変換テーブル１０５を保持するものである。
【０００４】
さてフラッシュメモリＦＭ０〜ＦＭ７は図１９（ａ）に示すように、夫々が１２８ｋＢの容量を持つ１０２４の物理ブロック（ＰＢ０〜ＰＢ１０２３）によって構成される。これによってメモリカード１００の不揮発性メモリの全容量は１ＧＢとなる。
【０００５】
図１９（ｂ）はフラッシュメモリ内の１つの物理ブロックＰＢｉ（ｉ＝０〜１０２３）の構成を示している。物理ブロックは物理ページＰＰ０〜ＰＰ６３までの６４の物理ページから成り立っている。各物理ページは図２０に示すように、２ｋＢの容量を持つデータ領域と、６４Ｂの容量を持つ管理領域から成り立っている。
【０００６】
さてこのメモリカード１００は外部のホスト機器１０１から見て１ＧＢのメモリ容量があり、図２１に示すような論理マップによって論理アドレス（ＬＢＡ）が割り付けられる。即ち１ＧＢのデータ領域は論理ブロック０から論理ブロック７９９９まで８０００の論理ブロック（ＬＢ）に分割され、各論理ブロックが１２８ｋＢの容量を持つ。この論理ブロックアドレスはホスト機器１０１が指定するアドレスと対応している。
【０００７】
さて揮発性メモリ１０３に書込まれるエントリテーブル１０４は、図２２に示すように各フラッシュメモリのどの物理ブロックが消去済みかどうかを示す１ビットのフラグから成るテーブルである。このフラグは消去済みであれば１、書込み済みの場合は０とする。又アドレス変換テーブル１０５は、論理アドレスＬＢＡ０〜ＬＢＡ７９９９に対応するフラッシュメモリと、その中の物理ブロックを指定するものである。そのうち３ビットはフラッシュメモリＦＭ０〜ＦＭ７のどれかを示すビットＦＭｉ（ｉ＝１〜７）、続く１０ビットはそのフラッシュメモリ内のどの物理ブロックかを示すビットＰＢｊ（ｊ＝０〜１０２３）である。アドレス変換テーブル１０５は１３ビットで８Ｋワード構成、即ち１２．７ｋＢの容量を有している。
【０００８】
次にテーブルの初期化処理について図２３を用いて説明する。揮発性メモリ１０３は電源をオフとする毎にその内容が失われるため、電源投入毎にフラッシュメモリの状態に基づいてエントリテーブル１０４、アドレス変換テーブル１０５を生成する必要がある。この処理をテーブル初期化処理という。テーブル初期化処理を開始すると、まずステップＳ２０１において、エントリテーブル１０４のテーブルのデータを０、即ち書込済みとする。次いでステップＳ２０２に進んで、アドレス変換テーブル１０５のデータを全て無効アドレスとする。有効アドレスはそのときの状態を示す１〜８１９１までの値、無効アドレスは０で表す。次いでステップＳ２０３に進んでフラッシュメモリの番号を０とし、物理ブロックの番号を０とする。次いでステップＳ２０５に進んで、ここで指定されたフラッシュメモリの物理ブロックの管理領域の論理アドレスを読出す。そしてその論理アドレスのデータ領域が消去済みかどうかをチェックし、消去済みであればステップＳ２０７に進んでエントリテーブル１０４に消去済みと登録する。又消去済みでなければステップＳ２０８に進んでそのデータが有効データかどうかをチェックし、有効データであればアドレス変換テーブル１０５の論理アドレスに現在の物理ブロックを登録する。有効データでなければ登録処理を行うことなくステップＳ２１０に進んで最終の物理ブロックかどうかをチェックする。最終物理ブロックでなければ、ステップＳ２１１に進んで物理ブロック番号をインクリメントしてステップＳ２０５に戻る。最終物理ブロックであればステップＳ２１０からステップＳ２１２に進んで最終フラッシュメモリかどうかをチェックし、最終フラッシュメモリでなければフラッシュメモリ番号をインクリメントし（ステップＳ２１３）、ステップＳ２０４に戻る。こうして全ての物理ブロック、フラッシュメモリのチェックを行い処理を終える。
【０００９】
このようにフラッシュメモリを記憶媒体として使用して論理物理アドレスの変換を行うメモリカードにおいては、各テーブルは揮発性メモリに書込まれているため、電源投入毎に初期化処理が必要となる。このテーブル初期化処理は、記憶容量が増えればそれに伴って長時間化するという欠点があった。
【００１０】
そこでこのテーブルを記憶するメモリを不揮発性メモリとするようにした半導体メモリカードも考えられる（特許文献１）。特許文献１ではメインメモリであるフラッシュメモリと、それを制御するバスの情報を保持する補助メモリとを、共に独立した不揮発性のメモリとしたものである。しかしテーブルを不揮発性メモリに保持するようにしたとしても、データの書き換え時に電源が遮断された場合には、テーブルの内容が正しくなくなる場合があり、誤動作が生じるという欠点がある。
【００１１】
又このテーブル自体をフラッシュメモリ内に書込むようにした半導体メモリカードも知られている。しかしフラッシュメモリには書込回数に制限があるため、書込頻度の高いテーブルをフラッシュメモリに設ける場合には、テーブル自体をフラッシュメモリの一定位置に記憶させることなく、これらを書き換え毎に場所を移動させて用いる必要があり、メモリ管理の処理が複雑になるという欠点があった。
【特許文献１】特開２０００−９９４０５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このように従来の不揮発性記憶装置のデータ管理方法によれば、テーブルを不揮発性メモリに記録しておくと、電源投入時の初期化処理は容易となるが、データ書き換え時の電源遮断によってテーブルの内容が損なわれる可能性があった。
【００１３】
本発明はこのような従来の問題点に鑑みてなされたものであって、データ書き換え時に電源が遮断した場合にもフラッシュメモリやテーブルのデータを確保できるようにすることを目的とする。
【課題を解決するための手段】
【００１４】
この課題を解決するために、本発明の不揮発性記憶装置のデータ保護方法は、物理アドレスに応じてデータを記憶する第１の不揮発性メモリと、外部から与えられる論理アドレスを前記第１の不揮発性メモリの物理アドレスに変換するアドレス変換テーブル、物理アドレスの書込みの状態を示すエントリテーブルを保持すると共に、及びデータ更新に従って更新される補助領域を有する第２の不揮発性メモリと、外部から与えられる論理アドレスを前記アドレス変換テーブルに基づいて物理アドレスに変換して前記第１の不揮発性メモリにデータを書き込み、及び読み出すコントローラと、を有する不揮発性記憶装置におけるデータ保護方法であって、前記コントローラは、前記第１の不揮発性メモリへのデータの書込みの前後に前記補助領域及び前記アドレス変換テーブルの一部を更新し、電源の投入後に前記アドレス変換テーブル及び前記補助領域の状態に基づいて電源遮断時の異常状態を解消することを特徴とするものである。
【００１５】
ここで前記第２の不揮発性メモリの補助領域は、前記第１の不揮発性メモリのデータを書き換える論理アドレス、データ書き換えの対象となる新旧の物理アドレスを記憶する領域、及び前記第１の不揮発性メモリへの書込みを示す書込フラグ、その消去を示す消去フラグを有するものであり、データの更新の際に、前記書込フラグを立てた後に新物理アドレス領域で示される新物理アドレスにデータを書込み、前記消去フラグを立てた後に旧物理アドレス領域で示される旧物理アドレスのデータを消去し、前記書込フラグ及び前記消去フラグをリセットするようにしてもよい。
【００１６】
ここで電源投入時に、前記書込フラグが書込み中、前記消去フラグが未消去のときに、旧物理アドレスに元のデータが保持された状態となるように新物理アドレスのデータを消去して前記書込フラグをリセットし、前記書込フラグが書込み中で且つ消去フラグが消去中のときに、前記新物理アドレスにデータが書き換えられた状態となるように旧物理アドレスのデータを消去し、前記アドレス変換テーブル、エントリテーブルを更新し、前記書込フラグ及び消去フラグをリセットするようにしてもよい。
【００１７】
ここで前記第２の不揮発性メモリは、前記第１の不揮発性メモリの各物理ブロックの書込みの状態を示すエントリテーブル及びアドレス変換テーブルを含む第１のテーブルと、
前記第１の不揮発性メモリの各物理ブロックの書込みの状態を示すエントリテーブル及びアドレス変換テーブルを含む第２のテーブルと、前記第１のテーブルの有効／無効を示す第１のテーブル有効フラグと、前記第２のテーブルの有効／無効を示す第２のテーブル有効フラグとを有するものであり、データの更新の際に、前記第１，第２のテーブル有効フラグで示される無効なテーブルの書き換える論理アドレスに新たな物理アドレスを設定し、その物理アドレスで示される前記第１の不揮発性メモリに新たなデータを書込み、前記第１，第２のテーブル有効フラグのうち無効となっていたフラグを有効とし、有効となっていたフラグを無効とし、前記第１，第２のテーブル有効フラグの無効となったフラグで示されるテーブルの書き換え対象となった論理アドレスに対応する物理アドレスのデータを消去し、前記第１，第２のテーブル有効フラグで示される有効テーブルの内容を無効テーブルに一致させるようにしてもよい。
【００１８】
ここで電源投入の際に、前記第１，第２のテーブルの不一致を比較し、不一致があれば前記第１，第２のテーブル有効フラグで示される無効テーブルに物理アドレスの重複があるか否かをチェックし、重複があれば無効テーブルを有効テーブルに一致させ、重複がなければ前記第１，第２のテーブルのうち無効なテーブルの不一致となっている物理アドレスのデータを消去すると共に、有効なテーブルを他方のテーブルに一致させるようにしてもよい。
【００１９】
ここで前記第２の不揮発性メモリの補助領域は、次にデータを書き換える際に用いられる次候補の物理アドレスを記憶する領域と、前記アドレス変換テーブルの各物理アドレス及び前記次候補アドレスの書込／消去状態を示す書込／消去フラグとを有するものであり、データの更新時に、次候補の書込／消去フラグを立てて次候補領域で示される物理アドレスに新しいデータを書込み、前記アドレス変換テーブルのうち更新する物理アドレスの書込／消去フラグを立て、その物理アドレスのデータを消去し、次候補の書込／消去フラグをリセットし、次候補の物理アドレスを前記アドレス変換テーブルに更新された物理アドレスとして記録し、消去済みの物理アドレスを新たな次候補アドレスとして更新し、前記アドレス変換テーブルの書込／消去フラグをリセットするようにしてもよい。
【００２０】
ここで電源投入時には、次候補の書込／消去フラグが立っており、前記アドレス変換テーブルの書込／消去フラグがリセットされているときに、元の物理アドレスに元のデータが保持された状態となるように次候補領域で示される物理ブロックを消去すると共に、次候補のフラグをリセットし、次候補領域の書込／消去フラグ及び前記アドレス変換テーブルの書込／消去フラグが立っているときに、次候補領域で示される物理アドレスにデータが書き換えられた状態となるように、アドレス変換テーブルの書込／消去フラグが立てられている物理アドレスのデータを消去し、次候補の書込／消去フラグをリセットし、前記アドレス変換テーブルを更新すると共に、アドレス変換テーブルの書込／消去フラグをリセットし、次候補の書込／消去フラグがリセットされており、前記アドレス変換テーブルの書込／消去フラグが立っているときに、前記アドレス変換テーブルを更新すると共に、アドレス変換テーブルの書込／消去フラグをリセットするようにしてもよい。
【発明の効果】
【００２１】
このような特徴を有する本発明によれば、エントリテーブル、アドレス変換テーブルを第２の不揮発性メモリに保持しているため、電源遮断時にもその内容が保持され、初期化処理が容易となる。そしてデータの更新中に電源が遮断された場合であっても、補助領域で記憶されているアドレスやフラグに基づいてデータを更新する前の状態又はデータを更新した後の状態となるようにテーブル及び第１の不揮発性メモリのデータを変更することができる。これにより誤動作を生じることがなくなるという効果が得られる。
【発明を実施するための最良の形態】
【００２２】
（実施の形態１）
図１は本発明の不揮発性記憶装置の実施の形態１による半導体メモリカードの構成を示すブロック図である。本図に示すように、メモリカード１はホスト機器２と接続される。メモリカード１はコントローラ３と、主メモリとなる第１の不揮発性メモリとしてフラッシュメモリ４、例えば従来例と同様に１２８ＭＢの容量を持つフラッシュメモリＦＭ０〜ＦＭ７と、補助メモリとなる第２の不揮発性メモリ５とから構成されている。不揮発性メモリ５は好ましくはバイト単位での書き換えが可能で、書き換え許容回数が多い不揮発性のメモリ、例えば強誘電体メモリ（Ｆｅ  ＲＡＭ）によって構成される。この不揮発性メモリ５には、前述した従来例と同様のエントリテーブル６及び論理−物理アドレス変換テーブル（以下、単にアドレス変換テーブルという）７が記憶される。そしてこれに加えて、この不揮発性メモリ５内には又データ修復のための補助領域１０として、書込フラグ１１、消去フラグ１２、論理アドレス領域１３、旧物理アドレス領域１４、新物理アドレス領域１５が設けられている。コントローラ３はこれらの２つのテーブルに加えて補助領域１０の各フラグ、アドレスに基づいて、書き換え途中で電源遮断が生じた場合に、少なくとも書き換え前の情報か、書き換え後の情報のいずれか一方のデータを保持すると共に、それに応じたエントリテーブル６、アドレス変換テーブル７となるように変更する処理を行うものである。
【００２３】
次にこのデータの変更処理について説明する。まず書き換え時の処理について説明する。図２（ａ）から図３（ｈ）までは補助領域１０の状態とフラッシュメモリ４の状態を示す図であって、時系列に沿ってその変化を示している。ここでハッチングは変更された部分を示す。最初の状態では図２（ａ）に示すように、フラッシュメモリ４の物理ブロック１に論理アドレス０のデータが書込まれた状態を示している。この状態で不揮発性メモリ５の書込フラグ１１は「書込無し」の状態、消去フラグ１２は「消去無し」の状態となっている。さて論理アドレス０のデータを新たなデータに書き換える場合には、まず図２（ｂ）に示すように、論理アドレス領域１３に書き換える論理アドレス、この場合は０を書込む。又旧物理アドレス領域１４を書き換える物理アドレス、この場合は１とし、新物理アドレス領域１５を書き換えたデータを保持する物理アドレス、例えば２とする。次いで図２（ｃ）に示すように、書込フラグ１１を「書込中」とする。次いで図２（ｄ）に進んで、物理アドレス２に論理アドレス０の新しいデータを書込む。次いで図３（ｅ）に進んで消去フラグ１２を「消去中」にセットする。次いで図３（ｆ）に進んで、物理アドレス１に記録されていた論理アドレス０のデータを消去する。更に図３（ｇ）に進んで、書込フラグ１１を「書込無し」とする。その後エントリテーブル６とアドレス変換テーブル７を更新する。次に図３（ｈ）に進んで、消去フラグ１２を「消去無し」とする。こうしてフラッシュメモリ４内の物理アドレス１にあった論理アドレス０のデータを更新して物理アドレス２に新データとして書込むことができる。
【００２４】
図４は以上の動作中に書込フラグ１１、消去フラグ１２、論理アドレス領域１３、旧物理アドレス領域１４、新物理アドレス領域１５等の各種アドレス及びエントリテーブル６とアドレス変換テーブル７の更新を示すタイムチャートであって、縦軸が時間経過を示している。従ってこの書き換え途中で電源が遮断されたものとすると、途中で不揮発性メモリ５にその状態が残ることとなる。
【００２５】
さて電源投入時には、書き換えの途中で電源が遮断されたかどうかを検出する初期検出処理を行う。これは書込フラグ１１と消去フラグ１２とを確認し、これらのいずれかのフラグが立っていれば書き換えの途中で電源が遮断されたものとして必要な処理を行う。この処理の動作について図５のフローチャートを用いて説明する。
【００２６】
まず電源投入時に初期検証処理を開始すると、ステップＳ２１において、書込フラグが書込中かどうかをチェックする。書込中でなければステップＳ２２において消去フラグ１２が消去中かどうかをチェックし、消去中でなければ処理を終える。この場合には書込中に電源遮断が生じなかったので、異常がなく、検証処理を行う必要がない。書込フラグが書込中であれば、ステップＳ２３に進んで、消去フラグ１２が消去中かどうかをチェックする。消去中でなければ図４Ａに示すようにアドレスの書き換え後にフラッシュの書込時点で中断が発生したものと考えられる。このためステップＳ２４に進んで新物理アドレス領域１５の物理ブロックを消去する。そしてステップＳ２５に進んで書込フラグ１１を「書込無し」として処理を終える。この処理は図２（ｃ），（ｄ）までの処理となっており、この場合には書き換え前の元の論理アドレスのデータを正しいデータとして保存することができる。尚図４における矢印は、その論理アドレスの新旧いずれを残すかの分岐点を示すものである。
【００２７】
さてステップＳ２３において、消去フラグ１２が立っている場合には、図４Ｂに示すように消去中に電源が遮断されたものと考えられる。従ってステップＳ２６において旧物理アドレス領域１４の旧物理ブロック、この場合は物理アドレス１にある論理アドレス０のデータを消去し、書込フラグ１１をリセットする。更にステップＳ２８，２９においてテーブル６，７を新物理ブロックに合わせて変更するように更新し、消去フラグ１２を「消去無し」として処理を終える。この処理は図３（ｅ），（ｆ）の処理となっており、この場合には新しい物理アドレスのデータを正しいデータとして保存することができる。
【００２８】
次にステップＳ２２において消去フラグが消去中であれば、図３（ｇ）又は（ｈ）、図４のＣに示す状態であり、旧物理ブロックの論理アドレス０のデータは既に消去され、且つ書込フラグ１１は「書込み無し」の状態となっている。従ってステップＳ２６，２７の処理を行うことなくステップＳ２８に進んで同様の処理を行う。この場合には新しい物理アドレスのデータを正しいデータとして保存することができる。
【００２９】
（実施の形態２）
次に本発明の実施の形態２について図６を用いて説明する。本図に示すように、メモリカード３１はホスト機器２と接続される。メモリカード３１はコントローラ３２、及び主メモリとなる第１の不揮発性メモリとしてフラッシュメモリ３３、例えば実施の形態１と同様に１２８ＭＢの容量を持つフラッシュメモリＦＭ０〜ＦＭ７と、補助メモリとなる第２の不揮発性メモリ３４から構成されている。不揮発性メモリ３４は好ましくはバイト単位での書き換えが可能で書き換え許容回数が多い不揮発性のメモリ、例えば強誘電体メモリによって構成される。不揮発性メモリ３４には、エントリテーブルと論理−物理アドレスを変換するアドレス変換テーブルから成るテーブルＴ１、エントリテーブルと論理物理アドレスを変換するアドレス変換テーブルから成るテーブルＴ２が設けられる。これに加えて、これらのテーブルＴ１，Ｔ２が有効かどうかを示すＴ１有効フラグ３５、Ｔ２有効フラグ３６の領域が設けられる。Ｔ１有効フラグ３５、Ｔ２有効フラグ３６は、データ更新時に更新される補助領域３７を構成している。テーブルＴ１，Ｔ２は通常は同一のデータを保持しており、且ついずれか一方の有効フラグが立っている状態となる。
【００３０】
次にこのメモリカードのデータを書き換える際の処理について、不揮発性メモリ３４の内容及びフラッシュメモリ３３の内容とその時間経緯に沿って説明する。図７（ａ）は不揮発性メモリ３４の内容をテーブルＴ１側とＴ２側とに分離して処理したものである。テーブルＴ１側ではテーブルＴ１のＴ１有効フラグ３５が有効となっている。又テーブルＴ１のアドレス変換テーブルの一部が示されており、論理アドレス０のデータがフラッシュメモリ３３の物理アドレス１に書込まれていることが示されている。テーブルＴ２側ではテーブルＴ２のＴ２有効フラグ３６が無効となっている。このときフラッシュメモリ３３にはこのテーブルに示すように物理アドレス１に論理アドレス０のデータが書込まれている状態が示されている。この論理アドレス０のデータを更新して新たなデータを記録する際の書き換えについて説明する。
【００３１】
動作を開始すると、まずこのとき図７（ｂ）に示すように有効でないテーブル、この場合はテーブルＴ２側の論理アドレス０に新たな論理アドレス０のデータを書込むための物理ブロックのアドレスを設定する。このアドレスは消去済みのアドレスを選択するものとし、この場合は物理アドレスを２とする。次いで図７（ｃ）に進み、決められた物理アドレス２に論理アドレス０の新たなデータを書込む。次に図７（ｄ）に進み、テーブルＴ２のＴ２有効フラグ３６を有効とする。更に図８（ｅ）においてＴ１有効フラグ３５を無効とし、図８（ｆ）において、フラッシュメモリ３３の物理アドレス１のデータを消去する。次いで図８（ｇ）に進んでテーブルＴ１の論理アドレス０の物理アドレスを２とする。こうすればテーブルＴ１とテーブルＴ２とが一致することとなって、処理を終える。
【００３２】
図９はテーブルＴ１，Ｔ２の内容及び有効フラグ３５の変化を前述した書き換え処理の手順に従って時系列に示したものであって横軸が時間経緯を示している。図９において、テーブルＴ２に新たなデータが書かれてからテーブルＴ１のデータが消去されるまでが不一致の区間となっている。書き換え中に電源が遮断されると、途中で不揮発性メモリ３３，３４にその状態が残ることとなる。
【００３３】
次に電源投入時の初期検証フローについて説明する。前述したデータの書き換え時に電源が遮断し処理が途中で停止した場合には、テーブルとフラグの状態に基づいて正しい状態に復帰させる必要がある。動作を開始するとまずステップＳ４１において、テーブルＴ１とＴ２との内容を比較し、不一致の状態があるかどうかをチェックする。不一致がなければ異常なしと判断されるので処理を終える。不一致があればステップＳ４２よりステップＳ４３に進んで、無効テーブル中の物理ブロックの重複をチェックする。物理ブロックの重複チェックとは、不一致が発生した物理アドレスと同一の物理アドレスがそのテーブル中に存在しているかどうかをチェックするものである。例えば図７（ｂ）において、無効テーブルであるＴ２の不一致が発生している物理アドレス２と同一の物理アドレスが、このテーブルＴ２中の他の論理アドレスの中の有効な物理アドレスとして記載されているかどうかを確認する。物理アドレスの重複があれば、ステップＳ４４からステップＳ４５に進んで、無効テーブルの不一致部分を有効なテーブルに一致させる。これはＴ１有効フラグ３５又はＴ２有効フラグ３６のいずれか一方の無効とされているフラグで示されるテーブルの不一致部分を、有効とされるテーブルに一致させるように修正する処理である。この処置は図９のＡ、図７（ｂ），（ｇ）において、テーブルの物理アドレスの書き換え中で電断が生じてそのテーブル内の他のデータと一致した場合の処理を示しており、テーブルを一致させることによって正しいデータとすることができる。
【００３４】
又ステップＳ４４において物理アドレスの重複がなければ、ステップＳ４４からＳ４６に進んで、Ｔ１有効フラグ３５からテーブルＴ１が有効かどうかを判断する。テーブルＴ１が有効であれば、ステップＳ４７においてテーブルＴ２の不一致となった物理ブロックのアドレスを消去する。次いでステップＳ４８においてテーブルＴ２の有効フラグ３６によりテーブルＴ２が有効かどうかを判断する。テーブルＴ２が有効であれば、ステップＳ４９に進んで、テーブルＴ２のＴ２有効フラグ３６を無効化処理する。そしてテーブルＴ２をテーブルＴ１に一致させて（ステップＳ５０）処理を終える。この場合には図７（ｃ），（ｄ）、図９Ｂでの処理となっており、元の論理アドレスのデータを正しいデータとして保存することができる。尚図９における矢印は、その論理アドレスの新旧いずれを残すかの分岐点を示すものである。
【００３５】
又ステップＳ４６において、テーブルＴ１が有効でなければステップＳ５１に進んで、テーブルＴ１の不一致物理アドレスを消去する。そしてテーブルＴ１をテーブルＴ２に一致させて（ステップＳ５２）、処理を終える。この処理は図８（ｅ），（ｆ）、図９Ｃでの処理となっており、この場合には新しい論理アドレスのデータを正しいデータとして保存することができる。こうすれば電源投入時に比較的簡単な処理で電源遮断時の不一致状態を解消することができる。
【００３６】
（実施の形態３）
図１１は本発明の実施の形態３による半導体メモリカード６１の構成を示す図である。本図に示すように、メモリカード６１はホスト機器２と接続される。メモリカード６１はコントローラ６２及び主メモリとなる第１の不揮発性メモリとしてフラッシュメモリ６３、例えば実施の形態１と同様に１２８ＭＢの容量を持つフラッシュメモリＦＭ０〜ＦＭ７と、補助メモリとなる第２の不揮発性メモリ６４から構成されている。不揮発性メモリ６４は好ましくはバイト単位での書き換えが可能で書き換え許容回数が多い不揮発性のメモリ、例えば強誘電体メモリによって構成される。不揮発性メモリ６４はエントリテーブル６５に加えて論理アドレスを物理アドレスに変換するアドレス変換テーブル６６を有している。又不揮発性メモリ６４には次の候補の物理アドレスを示す次候補領域６７、及びアドレス変換テーブル６６と次候補のアドレスに応じて、夫々各論理アドレス毎に書込み／消去の状態を示す書込／消去フラグ６８，６９の領域が設けられる。次候補領域６７、書込／消去フラグ６８，６９は、不揮発性メモリ６４の補助領域７０である。この実施の形態では、この変換テーブルと次候補アドレスとフラグに基づいて電源遮断時の異常を認識し、メモリの異常を解消するものである。
【００３７】
次にこの実施の形態の書込処理について説明する。図１２（ａ）は不揮発性メモリ６４のアドレス変換テーブル６６と次候補領域６７、書込／消去フラグ６８，６９及びフラッシュメモリ６３の書込前の状態を示す。さて書込処理を開始すると、まず図１２（ｂ）に示すように次候補領域６７の書込／消去フラグ６９を１とする。次いで図１２（ｃ）に示すように、次候補領域６７に示される物理アドレス、この場合は物理アドレス２に論理アドレス０の新しいデータを書込む。次いで図１２（ｄ）に進み、元の論理アドレス０の位置の書込／消去フラグを１にセットする。次に図１３（ｅ）に進み、アドレス変換テーブル６６のフラグを立てた物理アドレスのデータを消去する。次いで図１３（ｆ）において、次候補アドレスの書込／消去フラグ６９を０にリセットする。更に図１３（ｇ）に進んで、論理アドレス０の物理アドレスの位置に次候補のアドレス、この場合は２を書込む。更に図１３（ｈ）に進み、次候補のアドレスを重複しない適当なアドレスに設定する。更に図１４（ｉ）に進み、論理アドレス０の対応する書込／消去フラグをリセットして処理を終える。
【００３８】
図１５はアドレス変換テーブル、次候補アドレス、アドレス変換テーブル中の書込／消去フラグと次候補アドレス中の書込／消去フラグの変化を示すタイムチャートであって、縦軸が時間経緯を示す。従ってこの書き換え途中で電源が遮断されたものとすると、途中の状態で不揮発性メモリ６４の状態が残ることとなる。書込処理中に電源が遮断した場合には、これらのフラグと次候補アドレスに基づいて元の状態に復帰する処理を行う。
【００３９】
このような処理を行ってデータを書き換える場合の電源投入時の処理について、図１６、図１７のフローチャートを用いて説明する。電源投入後に初期検証フローチャートを開始すると、まずステップＳ７１において、次候補領域の書込／消去フラグ６９に１が立っているかどうかをチェックする。このフラグが立っていなければアドレス変換テーブル６６の書込／消去フラグ６８に１が立っているかどうかをチェックする（ステップＳ７２）。このフラグも同時に立っていなければ正常な状態であるため、処理を終える。又ステップＳ７１において、次候補のフラグ６９が立っている場合にはステップＳ７３に進み、アドレス変換理テーブルのフラグ６８に１が立っているかどうかをチェックする。１が立っていなければ書込中に電源が遮断されたものであり、図１２（ｂ），（ｃ）、図１５Ａに示す状態で電源が遮断されたものと判断できる。従ってステップＳ７４に進んで、次候補領域６７で示される物理ブロックのデータを消去する。次いでステップＳ７５において次候補アドレスの書込／消去フラグ６９を０にリセットして処理を終える。この場合には書込み前の状態を正しいデータとして保存することができる。尚図１５における矢印は、その論理アドレスの新旧いずれを残すかの分岐点を示すものである。
【００４０】
ステップＳ７３において書込／消去フラグ６８が立っている場合には、消去中に電源が遮断されたものと判断する。従ってステップＳ７６において変換テーブルのフラグ６８が立っている物理ブロックを消去する。そして次候補の書込／消去フラグ６９を０にリセットする（ステップＳ７７）。次いでルーチンＳ７８に進んでアドレス変換テーブルを更新する。この更新は後述するように、次候補領域の物理アドレスを書込中の論理アドレスに記録するものである。次いでステップＳ７９に進んでアドレス変換テーブルのフラグを０として処理を終える。この場合には図１２（ｄ）又は図１３（ｅ），（ｆ）、図１５のＢの状態で電源が遮断されたものと考えられる。従って古い論理アドレスのデータを消去し、新しい論理アドレスのデータのみを保持する。こうすれば新たな書込まれた状態を正しいデータとすることができる。
【００４１】
又ステップＳ７２において、このフラグに１が立っている場合には、ルーチンＳ７８に進んで同様の処理を行う。この場合には図１３（ｇ），（ｈ）又は図１４、図１５のＣの状態において、電源が遮断されたものと判断できる。この場合には論理アドレスの旧データを削除し、その他の修正を行うことによって正しい状態に復帰させることができる。このようにすれば電源が遮断している間のデータ書込中の電源遮断状態があっても、正常な状態に復帰させることができる。
【００４２】
次にルーチン７８のテーブルの更新処理について、図１７のフローチャートを用いて説明する。アドレス変換テーブルの更新処理を開始すると、まずステップＳ８１においてアドレス変換テーブル中でフラグが立っている物理ブロックを読出す。そしてステップＳ８２において正しい論理ブロックが読出されるかどうかをチェックする。正しい論理ブロックが読出されなければ、ステップＳ８３に進んで次候補の物理ブロックをアドレス変換テーブルのフラグの立っている位置に書込む。ステップＳ８２において正しい論理ブロックが読出された場合には、ステップＳ８４に進んで次候補の物理ブロックを読出す。そしてその物理ブロックが消去済みのブロックかどうかをチェックし、消去済みのブロックでなければステップＳ８６において新たな消去済みブロックを検索して次候補として次候補領域６７に書込む。消去済みブロックであれば、その変換テーブルのフラグ６８を０にリセットして処理を終える（ステップＳ８７）。
【産業上の利用可能性】
【００４３】
本発明は書き換え可能な不揮発性メモリを有する不揮発性記憶装置において、アドレス変換テーブル等の他の不揮発性メモリに保持した場合に生じる問題点を解決することができるので、不揮発性メモリを用いる携帯機器その他の電子機器等の種々の用途に使用することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施の形態１による不揮発性記憶装置の全体構成を示すブロック図である。
【図２】実施の形態１による不揮発性記憶装置のデータ変更処理の補助領域とフラッシュメモリ４の変化を示す図（その１）である。
【図３】実施の形態１による不揮発性記憶装置のデータ変更処理の補助領域とフラッシュメモリ４の変化を示す図（その２）である。
【図４】データ書き換え時の補助領域の状態と各種アドレステーブルの変化を示すタイムチャートである。
【図５】実施の形態１による初期検証フローを示すフローチャートである。
【図６】本発明の実施の形態２による不揮発性記憶装置の全体構成を示すブロック図である。
【図７】実施の形態２による不揮発性メモリ３４の補助領域及びフラッシュメモリ３３の変化を示す図（その１）である。
【図８】実施の形態２による不揮発性メモリ３４の補助領域及びフラッシュメモリ３３の変化を示す図（その２）である。
【図９】実施の形態２によるデータ書き換え時のテーブルとフラグの変化を示すタイムチャートである。
【図１０】実施の形態２による初期検証フローを示すフローチャートである。
【図１１】本発明の実施の形態３による不揮発性記憶装置の全体構成を示すブロック図である。
【図１２】実施の形態３による不揮発性メモリ６４、フラッシュメモリ６３の変化を示す図（その１）である。
【図１３】実施の形態３による不揮発性メモリ６４、フラッシュメモリ６３の変化を示す図（その２）である。
【図１４】実施の形態３による不揮発性メモリ６４、フラッシュメモリ６３の変化を示す図（その３）である。
【図１５】実施の形態３によるデータ書き換え時のテーブルとフラグ及び次候補アドレスの変化を示すタイムチャートである。
【図１６】実施の形態３による初期検証フローを示すフローチャートである。
【図１７】アドレス変換テーブルの更新処理を示すフローチャートである。
【図１８】従来の不揮発性メモリの構成を示す図である。
【図１９】従来のフラッシュメモリ、及びその物理ブロックの構成を示す図である。
【図２０】従来の物理ブロックに書き込まれる論理ページの構成を示す図である。
【図２１】従来の論理ブロックの構成を示す図である。
【図２２】エントリテーブル１０４及びアドレス変換テーブル１０５を示す図である。
【図２３】従来の不揮発性メモリのテーブル初期化処理を示すフローチャートである。
【符号の説明】
【００４５】
１，３１，６１  メモリカード
２  ホスト機器
３，３２，６２  コントローラ
４，３３，６３  フラッシュメモリ
５，３４，６４  第２の不揮発性メモリ
１０，３７，７０  補助領域
１１  書込フラグ
１２  消去フラグ
１３  論理アドレス
１４  旧物理アドレス
１５  新物理アドレス
３５  Ｔ１有効フラグ
３６  Ｔ２有効フラグ
６５  エントリテーブル
６６  アドレス変換テーブル
６７  次候補領域
６８，６９  書込／消去フラグ
【図１】
2005222202.tif 000003
【図２】
2005222202.tif 000004
【図３】
2005222202.tif 000005
【図４】
2005222202.tif 000006
【図５】
2005222202.tif 000007
【図６】
2005222202.tif 000008
【図７】
2005222202.tif 000009
【図８】
2005222202.tif 000010
【図９】
2005222202.tif 000011
【図１０】
2005222202.tif 000012
【図１１】
2005222202.tif 000013
【図１２】
2005222202.tif 000014
【図１３】
2005222202.tif 000015
【図１４】
2005222202.tif 000016
【図１５】
2005222202.tif 000017
【図１６】
2005222202.tif 000018
【図１７】
2005222202.tif 000019
【図１８】
2005222202.tif 000020
【図１９】
2005222202.tif 000021
【図２０】
2005222202.tif 000022
【図２１】
2005222202.tif 000023
【図２２】
2005222202.tif 000024
【図２３】
2005222202.tif 000025