説明

メモリー制御装置およびプログラム並びにメモリー制御方法

【課題】論理物理変換テーブルに何らかの異常が生じてもデータアクセスを可能とする。
【解決手段】フラッシュメモリーの各物理ブロックの先頭に設けられた管理データ領域にインデックス情報(論理アドレス)を記録しておき、ホスト側から論理アドレスの指定を伴ってコマンドを受信した場合に論理アドレスを論理物理変換テーブルを参照して物理アドレスに変換し(S120)、物理アドレスが示す物理ブロックの管理データ領域からインデックス情報を読み出して論理物理変換テーブルが正常か否かを判定し(S130,S140)、正常でない場合には各物理ブロックの管理データ領域からインデックス情報を読み出して論理物理変換テーブルを修復すると共に(S150)、論理アドレスを修復した論理物理変換テーブルを参照して物理アドレスに変換し物理アドレスが示す物理ブロックにアクセスしてコマンドに応じた処理を実行する(S120〜S160)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置およびコンピューターをメモリー制御装置として機能させるためのプログラム並びにメモリー制御方法に関する。
【背景技術】
【0002】
従来、この種のメモリー制御装置としては、複数の物理ブロックからなる不揮発性メモリーの各物理ブロックに対する外部機器からのデータの書き込み頻度が均一となるよう、外部機器からのデータを複数のブロックのうち消去回数の少ないブロックに書き込むと共に各ブロックに割り当てられた物理アドレスと外部機器側から見た論理空間の論理アドレスとを対応付ける論理物理変換テーブルを管理するものが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−191855号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述の装置では、論理物理変換テーブルを管理することにより、特定の物理ブロックに書き込みが集中するのを抑制しつつ論理アドレスから目的とするデータにアクセスすることができるものの、外的或いは内的な要因により論理物理変換テーブルに異常が生じると、復帰する手段がなく、データアクセスができなくなってしまう。
【0005】
本発明のメモリー制御装置は、論理物理変換テーブルに異常が生じても目的とするデータにアクセスできるようにすることを主目的とする。
【0006】
本発明のメモリー制御装置およびプログラム並びにメモリー制御方法は、上述の主目的を達成するために以下の手段を採った。
【課題を解決するための手段】
【0007】
本発明のメモリー制御装置は、
コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置であって、
論理アドレスと、前記複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶するテーブル記憶手段と、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する処理手段と、
を備えることを要旨とする。
【0008】
この本発明のメモリー制御装置では、複数のブロック毎に対応する論理アドレスに相当するインデックス情報を付加して記録し、コマンドが受け付けられた場合に、受け付けられたコマンドから論理アドレスを抽出し、論理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、抽出した論理アドレスと読み出したインデックス情報とを照合し、照合結果が正常な場合には変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に読み出したインデックス情報に基づいて論理物理変換テーブルを修正し修正した論理物理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行する。これにより、論理物理変換テーブルに異常が生じてもテーブルを正常な状態に復帰させることができるから、コマンドに応じた処理を適切に実行することができる。
【0009】
こうした本発明のメモリー制御装置において、前記処理手段は、インデックス情報を各ブロックの先頭に記録する手段であるものとすることもできる。
【0010】
本発明のプログラムは、コンピューターを上述したいずれかの本発明のメモリー制御装置として機能させるためのものである。このプログラムは、コンピュータが読み取り可能な記録媒体(例えばハードディスク、ROM、FD、CD、DVDなど)に記録されていてもよいし、伝送媒体(インターネットやLANなどの通信網)を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムをコンピュータに実行させれば、上述したメモリー制御装置と同様の効果を得ることができる。
【0011】
本発明のメモリー制御方法は、
論理アドレスと複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶し、コマンドを受け付けて前記論理物理変換テーブルを用いて複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御方法であって、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する
ことを要旨とする。
【0012】
この本発明のメモリー制御方法によれば、複数のブロック毎に対応する論理アドレスに相当するインデックス情報を付加して記録し、コマンドが受け付けられた場合に、受け付けられたコマンドから論理アドレスを抽出し、論理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、抽出した論理アドレスと読み出したインデック
ス情報とを照合し、照合結果が正常な場合には変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に読み出したインデックス情報に基づいて論理物理変換テーブルを修正し修正した論理物理変換テーブルを用いて抽出した論理アドレスを物理アドレスに変換すると共に変換した物理アドレスを用いて不揮発性メモリーの対応するブロックに対して処理を実行する。これにより、論理物理変換テーブルに異常が生じてもテーブルを正常な状態に復帰させることができるから、コマンドに応じた処理を適切に実行することができる。
【図面の簡単な説明】
【0013】
【図1】メモリーカード20の概略構成図。
【図2】フラッシュメモリー22のアドレス空間の構成。
【図3】論理物理変換テーブル35の一例を示す説明図。
【図4】物理ブロック1〜物理ブロック4に格納されるデータの一例を示す説明図。
【図5】メモリーアクセス処理の一例を示すフローチャート。
【発明を実施するための形態】
【0014】
次に、本発明の実施の形態を図面を用いて説明する。図1は、本発明の一実施形態であるメモリーコントローラー30を含むメモリーカード20の構成の概略を示す構成図であり、図2は、フラッシュメモリー22のアドレス空間の構成を示す説明図である。本実施形態のメモリーカード20は、図1に示すように、不揮発性メモリーとしてのフラッシュメモリー22と、フラッシュメモリー30の読み書きを制御する本実施形態のメモリー制御装置としてのメモリーコントローラー30とを備える半導体記憶装置であり、ホスト10からコマンドを受け付けてデータの書き込みや読み出しを行なう。ここで、ホスト10としては、パーソナルコンピューターやプリンター,デジタルカメラなどの種々の情報機器を挙げることができる。
【0015】
フラッシュメモリー22は、図2に示すように、複数の物理ブロック24により構成されている。この物理ブロック24は、データの記録や消去を行なうアクセス単位である。また、物理ブロック24は、先頭に設けられて各種管理データを格納する管理データ領域24aと、管理データ領域24aの後段に設けられ実データを格納するブロックデータ領域24bと、により構成されている。管理データ領域24aには、ブロックデータ領域24bがデータ更新中か記録済みか空き状態かなどのステータスを示すステータス情報や、物理ブロック24に関連付けされている論理アドレス(インデックス情報)、物理ブロック24のデータの消去回数などが記録される。
【0016】
メモリーコントローラー30は、ホスト10側とのデータのやり取りを司るホストインターフェース(I/F)31と、中央演算処理装置としてのCPU32と、処理プログラムを記憶するROM36と、データを一時的に記憶するRAM34と、フラッシュメモリー22に対して読み書きするデータを一時的に蓄積するデータバッファー38と、フラッシュメモリー22とのデータのやり取りを司るフラッシュメモリーインターフェース(I/F)39と、を備える。
【0017】
RAM34には、論理物理変換テーブル35と、空き物理ブロックテーブルとが記憶されている。論理物理変換テーブル35は、図3に示すように、フラッシュメモリー22の各物理ブロック24に割り当てられた物理アドレスと、ホスト10側から見た仮想的なアドレス空間(論理空間)の論理アドレスとが関連付けられて登録されているテーブルである。また、空き物理ブロックテーブルは、図示しないが、空きブロックの物理アドレスと、消去回数とが関連付けられて登録されているテーブルである。
【0018】
こうして構成されたメモリーカード20では、ホスト10側から論理アドレスの指定を伴ってデータの更新を指示する書き込みコマンドを受信すると、メモリーコントローラー30は、まず、論理物理変換テーブル35を参照して指定された論理アドレスを物理アドレスに変換し、変換した物理アドレスが示す物理ブロック24(更新前のデータが格納されている物理ブロック24)の管理データ領域24aに更新中のステータス情報を記録する。続いて、空き物理ブロックテーブルを参照して空き物理ブロック24の中で消去回数が最も少ない物理ブロック24を選定し、選定した物理ブロック24にホスト10から受け付けた更新データを書き込む。このとき、更新データを書き込んだ物理ブロック24の管理データ領域24aにホスト10から指定された論理アドレスをインデックス情報として書き込むと共に記録済みのステータス情報を書き込む。そして、更新前のデータが書き込まれている物理ブロック24のデータを消去すると共にその物理ブロック24の管理データ領域24aに空き状態のステータス情報を記録し、論理物理変換テーブル35の登録を、ホスト10側で指定された論理アドレスと更新前のデータが格納されていた物理ブロック24の物理アドレスとの関連付けから、ホスト10側で指定された論理アドレスと更新データが格納されている物理ブロック24の物理アドレスとの関連付けに置き換える。図4に、図3の論理物理変換テーブル35に対応して物理ブロック1〜物理ブロック4に格納されるデータの一例を示す。
【0019】
また、ホスト10側から論理アドレスの指定を伴ってデータの読み出しを指示する読み出しコマンドを受信すると、メモリーコントローラー30は、論理物理変換テーブル35を参照して指定された論理アドレスを物理アドレスに変換し、変換した物理アドレスが示す物理ブロック24にアクセスしてその物理ブロック24内のブロックデータ領域24bに格納されているデータを読み出す。
【0020】
次に、こうして構成された本実施形態のメモリーコントローラー30の動作、特に、論理物理変換テーブル35に異常が生じたときの処理について説明する。図5は、メモリーコントローラー30のCPU32により実行されるメモリーアクセス処理の一例を示すフローチャートである。このルーチンは、所定時間毎に繰り返し実行される。
【0021】
メモリーアクセス処理が実行されると、メモリーコントローラー30のCPU32は、まず、ホスト10側からコマンドが受信されるのを待ち(ステップS100)、コマンドが受信されると、コマンドから論理アドレスを抽出し(ステップS110)、抽出した論理アドレスを論理物理変換テーブル35を参照して物理アドレスに変換し(ステップS120)、変換した物理アドレスが示す物理ブロック24の管理データ領域24aにアクセスしてインデックス情報(論理アドレス)を読み出し(ステップS130)、読み出したインデックス情報に基づいて論理物理変換テーブル35が正常であるか否かを判定する(ステップS140)。この判定は、物理ブロック24の管理データ領域24aに格納しているインデックス情報としての論理アドレスとホスト10側からコマンドを受け付ける際に指定された論理アドレスとが一致しているか否かを判定することにより、何らかの異常により論理物理変換テーブル35に登録されているデータが壊れていないかを判定するものとなる。論理物理変換テーブル35が正常な場合には、この論理物理変換テーブル35の参照により得られた物理アドレスが示す物理ブロック24にアクセスしてコマンドに応じた処理(前述した書き込み処理や読み出し処理など)を実行して(ステップS160)、本処理を終了する。一方、論理物理変換テーブル35が正常でない場合には、フラッシュメモリー22の各物理ブロック24の管理データ領域24aを検索して各インデックス情報(論理アドレス)を読み出し、読み出した論理アドレスとこの論理アドレスを読み出した物理ブロック24に割り当てられている物理アドレスとを用いて論理物理変換テーブル35を修正してステップS120に戻る。これにより、修正した論理物理変換テーブル35を用いてホスト10から指定された論理アドレスを物理アドレスに変換して対応する物理ブロック24にアクセスすることができる。
【0022】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態のRAM34が本発明の「テーブル記憶手段」に相当し、物理ブロック24の管理データ領域24aにインデックス情報を記録したり図5のメモリーアクセス処理を実行したりするCPU32やROM36,RAM34などが「処理手段」に相当する。なお、本実施形態では、メモリー制御装置の動作を説明することにより本発明のメモリー制御方法の一例も明らかにしている。
【0023】
以上説明した本実施形態のメモリーコントローラー30によれば、フラッシュメモリー22の各物理ブロック24の管理データ領域24aに論理アドレスに相当するインデックス情報を記録しておき、ホスト10側から論理アドレスの指定を伴ってコマンドを受信した場合に指定された論理アドレスを論理物理変換テーブル35を参照して物理アドレスに変換し、変換した物理アドレスが示す物理ブロック24の管理データ領域24aからインデックス情報を読み出して論理物理変換テーブル35が正常か否かを判定し、正常な場合にはその物理ブロック24にアクセスしてコマンドに応じた処理を実行し、正常でない場合には各物理ブロック24の管理データ領域24aからインデックス情報を読み出して論理物理変換テーブル35を修復すると共に指定された論理アドレスを修復した論理物理変換テーブル35を参照して物理アドレスに変換し変換した物理アドレスが示す物理ブロック24にアクセスしてコマンドに応じた処理を実行するから、論理物理変換テーブル35に何らかの異常が生じても目的とするブロックにアクセスすることができる。
【0024】
本実施形態では、インデックス情報を物理ブロック24の先頭に設けられた管理データ領域24aに格納するものとしたが、読み出すことができる位置であれば、物理ブロック24の如何なる位置に格納するものとしてもよい。
【0025】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【符号の説明】
【0026】
10 ホスト、20 メモリーカード、22 フラッシュメモリー、24 物理ブロック、24a 管理データ領域、24b ブロックデータ領域、30 メモリーコントローラー、31 ホストインターフェース(I/F)、32 CPU、34 RAM、35 論理物理変換テーブル、36 ROM、38 データバッファー、39 フラッシュメモリーインターフェース(I/F)。

【特許請求の範囲】
【請求項1】
コマンドを受け付けて、複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御装置であって、
論理アドレスと、前記複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶するテーブル記憶手段と、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する処理手段と、
を備えるメモリー制御装置。
【請求項2】
前記処理手段は、前記インデックス情報を各ブロックの先頭に記録する手段である請求項1記載のメモリー制御装置。
【請求項3】
コンピューターを、請求項1または2記載のメモリー制御装置として機能させるためのプログラム。
【請求項4】
論理アドレスと複数のブロック毎に割り当てられた物理アドレスとを変換する論理物理変換テーブルを記憶し、コマンドを受け付けて前記論理物理変換テーブルを用いて複数のブロックに分割されてなる不揮発性メモリーに対して処理を実行するメモリー制御方法であって、
前記複数のブロック毎に対応する論理アドレスに相当するインデックス情報を記録し、前記コマンドが受け付けられた場合に、該受け付けられたコマンドから論理アドレスを抽出し、前記論理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスから対応するブロックにアクセスしてインデックス情報を読み出し、前記抽出した論理アドレスと前記読み出したインデックス情報とを照合し、照合結果が正常な場合には前記変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行し、照合結果が正常でない場合には各ブロックからインデックス情報を読み出すと共に該読み出したインデックス情報に基づいて前記論理物理変換テーブルを修正し該修正した論理物理変換テーブルを用いて前記抽出した論理アドレスを物理アドレスに変換すると共に該変換した物理アドレスを用いて前記不揮発性メモリーの対応するブロックに対して処理を実行する
メモリー制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate