(57)【要約】【課題】論理物理変換テーブルに何らかの異常が生じてもデータアクセスを可能とする。【解決手段】フラッシュメモリーの各物理ブロックの先頭に設けられた管理データ領域にインデックス情報（論理アドレス）を記録しておき、ホスト側から論理アドレスの指定を伴ってコマンドを受信した場合に論理アドレスを論理物理変換テーブルを参照して物理アドレスに変換し（Ｓ１２０）、物理アドレスが示す物理ブロックの管理データ領域からインデックス情報を読み出して論理物理変換テーブルが正常か否かを判定し（Ｓ１３０，Ｓ１４０）、正常でない場合には各物理ブロックの管理データ領域からインデックス情報を読み出して論理物理変換テーブルを修復すると共に（Ｓ１５０）、論理アドレスを修復した論理物理変換テーブルを参照して物理アドレスに変換し物理アドレスが示す物理ブロックにアクセスしてコマンドに応じた処理を実行する（Ｓ１２０〜Ｓ１６０）。【選択図】図５
2011170580.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置であって、
論理アドレスと、前記複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶するテーブル記憶手段と、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する処理手段と、
を備えるメモリー制御装置。
【請求項２】
前記処理手段は、前記インデックス情報を各ブロックの先頭に記録する手段である請求項１記載のメモリー制御装置。
【請求項３】
コンピューターを、請求項１または２記載のメモリー制御装置として機能させるためのプログラム。
【請求項４】
論理アドレスと複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶し、コマンドを受け付けて前記論理物理変換テーブルを用いて複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御方法であって、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する
メモリー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置およびコンピューターをメモリー制御装置として機能させるためのプログラム並びにメモリー制御方法に関する。
【背景技術】
【０００２】
従来、この種のメモリー制御装置としては、複数の物理ブロックからなる不揮発性メモリーの各物理ブロックに対する外部機器からのデータの書き込み頻度が均一となるよう、外部機器からのデータを複数のブロックのうち消去回数の少ないブロックに書き込むと共に各ブロックに割り当てられた物理アドレスと外部機器側から見た論理空間の論理アドレスとを対応付ける論理物理変換テーブルを管理するものが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１９１８５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述の装置では、論理物理変換テーブルを管理することにより、特定の物理ブロックに書き込みが集中するのを抑制しつつ論理アドレスから目的とするデータにアクセスすることができるものの、外的或いは内的な要因により論理物理変換テーブルに異常が生じると、復帰する手段がなく、データアクセスができなくなってしまう。
【０００５】
本発明のメモリー制御装置は、論理物理変換テーブルに異常が生じても目的とするデータにアクセスできるようにすることを主目的とする。
【０００６】
本発明のメモリー制御装置およびプログラム並びにメモリー制御方法は、上述の主目的を達成するために以下の手段を採った。
【課題を解決するための手段】
【０００７】
本発明のメモリー制御装置は、
コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置であって、
論理アドレスと、前記複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶するテーブル記憶手段と、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する処理手段と、
を備えることを要旨とする。
【０００８】
この本発明のメモリー制御装置では、複数のブロック毎に対応する論理アドレスに相当するインデックス情報を付加して記録し、コマンドが受け付けられた場合に、受け付けられたコマンドから論理アドレスを抽出し、論理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、抽出した論理アドレスと読み出したインデックス情報とを照合し、照合結果が正常な場合には変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に読み出したインデックス情報に基づいて論理物理変換テーブルを修正し修正した論理物理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行する。これにより、論理物理変換テーブルに異常が生じてもテーブルを正常な状態に復帰させることができるから、コマンドに応じた処理を適切に実行することができる。
【０００９】
こうした本発明のメモリー制御装置において、前記処理手段は、インデックス情報を各ブロックの先頭に記録する手段であるものとすることもできる。
【００１０】
本発明のプログラムは、コンピューターを上述したいずれかの本発明のメモリー制御装置として機能させるためのものである。このプログラムは、コンピュータが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムをコンピュータに実行させれば、上述したメモリー制御装置と同様の効果を得ることができる。
【００１１】
本発明のメモリー制御方法は、
論理アドレスと複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶し、コマンドを受け付けて前記論理物理変換テーブルを用いて複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御方法であって、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する
ことを要旨とする。
【００１２】
この本発明のメモリー制御方法によれば、複数のブロック毎に対応する論理アドレスに相当するインデックス情報を付加して記録し、コマンドが受け付けられた場合に、受け付けられたコマンドから論理アドレスを抽出し、論理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、抽出した論理アドレスと読み出したインデック
ス情報とを照合し、照合結果が正常な場合には変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に読み出したインデックス情報に基づいて論理物理変換テーブルを修正し修正した論理物理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行する。これにより、論理物理変換テーブルに異常が生じてもテーブルを正常な状態に復帰させることができるから、コマンドに応じた処理を適切に実行することができる。
【図面の簡単な説明】
【００１３】
【図１】メモリーカード２０の概略構成図。
【図２】フラッシュメモリー２２のアドレス空間の構成。
【図３】論理物理変換テーブル３５の一例を示す説明図。
【図４】物理ブロック１〜物理ブロック４に格納されるデータの一例を示す説明図。
【図５】メモリーアクセス処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態であるメモリーコントローラー３０を含むメモリーカード２０の構成の概略を示す構成図であり、図２は、フラッシュメモリー２２のアドレス空間の構成を示す説明図である。本実施形態のメモリーカード２０は、図１に示すように、不揮発性メモリーとしてのフラッシュメモリー２２と、フラッシュメモリー３０の読み書きを制御する本実施形態のメモリー制御装置としてのメモリーコントローラー３０とを備える半導体記憶装置であり、ホスト１０からコマンドを受け付けてデータの書き込みや読み出しを行なう。ここで、ホスト１０としては、パーソナルコンピューターやプリンター，デジタルカメラなどの種々の情報機器を挙げることができる。
【００１５】
フラッシュメモリー２２は、図２に示すように、複数の物理ブロック２４により構成されている。この物理ブロック２４は、データの記録や消去を行なうアクセス単位である。また、物理ブロック２４は、先頭に設けられて各種管理データを格納する管理データ領域２４ａと、管理データ領域２４ａの後段に設けられ実データを格納するブロックデータ領域２４ｂと、により構成されている。管理データ領域２４ａには、ブロックデータ領域２４ｂがデータ更新中か記録済みか空き状態かなどのステータスを示すステータス情報や、物理ブロック２４に関連付けされている論理アドレス（インデックス情報）、物理ブロック２４のデータの消去回数などが記録される。
【００１６】
メモリーコントローラー３０は、ホスト１０側とのデータのやり取りを司るホストインターフェース（Ｉ／Ｆ）３１と、中央演算処理装置としてのＣＰＵ３２と、処理プログラムを記憶するＲＯＭ３６と、データを一時的に記憶するＲＡＭ３４と、フラッシュメモリー２２に対して読み書きするデータを一時的に蓄積するデータバッファー３８と、フラッシュメモリー２２とのデータのやり取りを司るフラッシュメモリーインターフェース（Ｉ／Ｆ）３９と、を備える。
【００１７】
ＲＡＭ３４には、論理物理変換テーブル３５と、空き物理ブロックテーブルとが記憶されている。論理物理変換テーブル３５は、図３に示すように、フラッシュメモリー２２の各物理ブロック２４に割り当てられた物理アドレスと、ホスト１０側から見た仮想的なアドレス空間（論理空間）の論理アドレスとが関連付けられて登録されているテーブルである。また、空き物理ブロックテーブルは、図示しないが、空きブロックの物理アドレスと、消去回数とが関連付けられて登録されているテーブルである。
【００１８】
こうして構成されたメモリーカード２０では、ホスト１０側から論理アドレスの指定を伴ってデータの更新を指示する書き込みコマンドを受信すると、メモリーコントローラー３０は、まず、論理物理変換テーブル３５を参照して指定された論理アドレスを物理アドレスに変換し、変換した物理アドレスが示す物理ブロック２４（更新前のデータが格納されている物理ブロック２４）の管理データ領域２４ａに更新中のステータス情報を記録する。続いて、空き物理ブロックテーブルを参照して空き物理ブロック２４の中で消去回数が最も少ない物理ブロック２４を選定し、選定した物理ブロック２４にホスト１０から受け付けた更新データを書き込む。このとき、更新データを書き込んだ物理ブロック２４の管理データ領域２４ａにホスト１０から指定された論理アドレスをインデックス情報として書き込むと共に記録済みのステータス情報を書き込む。そして、更新前のデータが書き込まれている物理ブロック２４のデータを消去すると共にその物理ブロック２４の管理データ領域２４ａに空き状態のステータス情報を記録し、論理物理変換テーブル３５の登録を、ホスト１０側で指定された論理アドレスと更新前のデータが格納されていた物理ブロック２４の物理アドレスとの関連付けから、ホスト１０側で指定された論理アドレスと更新データが格納されている物理ブロック２４の物理アドレスとの関連付けに置き換える。図４に、図３の論理物理変換テーブル３５に対応して物理ブロック１〜物理ブロック４に格納されるデータの一例を示す。
【００１９】
また、ホスト１０側から論理アドレスの指定を伴ってデータの読み出しを指示する読み出しコマンドを受信すると、メモリーコントローラー３０は、論理物理変換テーブル３５を参照して指定された論理アドレスを物理アドレスに変換し、変換した物理アドレスが示す物理ブロック２４にアクセスしてその物理ブロック２４内のブロックデータ領域２４ｂに格納されているデータを読み出す。
【００２０】
次に、こうして構成された本実施形態のメモリーコントローラー３０の動作、特に、論理物理変換テーブル３５に異常が生じたときの処理について説明する。図５は、メモリーコントローラー３０のＣＰＵ３２により実行されるメモリーアクセス処理の一例を示すフローチャートである。このルーチンは、所定時間毎に繰り返し実行される。
【００２１】
メモリーアクセス処理が実行されると、メモリーコントローラー３０のＣＰＵ３２は、まず、ホスト１０側からコマンドが受信されるのを待ち（ステップＳ１００）、コマンドが受信されると、コマンドから論理アドレスを抽出し（ステップＳ１１０）、抽出した論理アドレスを論理物理変換テーブル３５を参照して物理アドレスに変換し（ステップＳ１２０）、変換した物理アドレスが示す物理ブロック２４の管理データ領域２４ａにアクセスしてインデックス情報（論理アドレス）を読み出し（ステップＳ１３０）、読み出したインデックス情報に基づいて論理物理変換テーブル３５が正常であるか否かを判定する（ステップＳ１４０）。この判定は、物理ブロック２４の管理データ領域２４ａに格納しているインデックス情報としての論理アドレスとホスト１０側からコマンドを受け付ける際に指定された論理アドレスとが一致しているか否かを判定することにより、何らかの異常により論理物理変換テーブル３５に登録されているデータが壊れていないかを判定するものとなる。論理物理変換テーブル３５が正常な場合には、この論理物理変換テーブル３５の参照により得られた物理アドレスが示す物理ブロック２４にアクセスしてコマンドに応じた処理（前述した書き込み処理や読み出し処理など）を実行して（ステップＳ１６０）、本処理を終了する。一方、論理物理変換テーブル３５が正常でない場合には、フラッシュメモリー２２の各物理ブロック２４の管理データ領域２４ａを検索して各インデックス情報（論理アドレス）を読み出し、読み出した論理アドレスとこの論理アドレスを読み出した物理ブロック２４に割り当てられている物理アドレスとを用いて論理物理変換テーブル３５を修正してステップＳ１２０に戻る。これにより、修正した論理物理変換テーブル３５を用いてホスト１０から指定された論理アドレスを物理アドレスに変換して対応する物理ブロック２４にアクセスすることができる。
【００２２】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のＲＡＭ３４が本発明の「テーブル記憶手段」に相当し、物理ブロック２４の管理データ領域２４ａにインデックス情報を記録したり図５のメモリーアクセス処理を実行したりするＣＰＵ３２やＲＯＭ３６，ＲＡＭ３４などが「処理手段」に相当する。なお、本実施形態では、メモリー制御装置の動作を説明することにより本発明のメモリー制御方法の一例も明らかにしている。
【００２３】
以上説明した本実施形態のメモリーコントローラー３０によれば、フラッシュメモリー２２の各物理ブロック２４の管理データ領域２４ａに論理アドレスに相当するインデックス情報を記録しておき、ホスト１０側から論理アドレスの指定を伴ってコマンドを受信した場合に指定された論理アドレスを論理物理変換テーブル３５を参照して物理アドレスに変換し、変換した物理アドレスが示す物理ブロック２４の管理データ領域２４ａからインデックス情報を読み出して論理物理変換テーブル３５が正常か否かを判定し、正常な場合にはその物理ブロック２４にアクセスしてコマンドに応じた処理を実行し、正常でない場合には各物理ブロック２４の管理データ領域２４ａからインデックス情報を読み出して論理物理変換テーブル３５を修復すると共に指定された論理アドレスを修復した論理物理変換テーブル３５を参照して物理アドレスに変換し変換した物理アドレスが示す物理ブロック２４にアクセスしてコマンドに応じた処理を実行するから、論理物理変換テーブル３５に何らかの異常が生じても目的とするブロックにアクセスすることができる。
【００２４】
本実施形態では、インデックス情報を物理ブロック２４の先頭に設けられた管理データ領域２４ａに格納するものとしたが、読み出すことができる位置であれば、物理ブロック２４の如何なる位置に格納するものとしてもよい。
【００２５】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【符号の説明】
【００２６】
１０  ホスト、２０  メモリーカード、２２  フラッシュメモリー、２４  物理ブロック、２４ａ  管理データ領域、２４ｂ  ブロックデータ領域、３０  メモリーコントローラー、３１  ホストインターフェース（Ｉ／Ｆ）、３２  ＣＰＵ、３４  ＲＡＭ、３５  論理物理変換テーブル、３６  ＲＯＭ、３８  データバッファー、３９  フラッシュメモリーインターフェース（Ｉ／Ｆ）。
【図１】
2011170580.tif 000003
【図２】
2011170580.tif 000004
【図３】
2011170580.tif 000005
【図４】
2011170580.tif 000006
【図５】
2011170580.tif 000007