(57)【要約】【課題】フラッシュメモリのメモリ容量を大きく減少させることなく、フラッシュメモリの消去回数を減らし、フラッシュメモリのデータの更新を効率的に行い、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なうことができるメモリ装置、メモリ装置の制御方法およびデータ処理システムを提供する。【解決手段】論理ブロックのアドレス、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号を対応付けた論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号ＳＣが、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。【選択図】        図５
2006048227.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、
前記不揮発性メモリは、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、
前記制御回路は、
論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、
前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、
前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、
前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、
前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、
ことを特徴とするメモリ装置。
【請求項２】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置の制御方法であって、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを前記不揮発性メモリに記憶する論理／物理テーブル記憶ステップと、
論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出ステップと、
前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込みステップと、
前記第１の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新ステップと、
前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較ステップと、
前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込みステップと、
前記第２の物理ブロック書き込みステップでデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新ステップと、
前記第２の論理／物理テーブル更新ステップで書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去ステップと、
前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出ステップで検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込みステップと、
前記第３の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新ステップとを含む、
ことを特徴とするメモリ装置の制御方法。
【請求項３】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリと、前記不揮発性メモリの動作を制御する制御回路と有するメモリ装置と、
前記メモリ装置が着脱自在に装着され、前記メモリ装置を介して前記不揮発性メモリにクラスタ単位でデータをアクセスするホスト装置とを備えたデータ処理システムであって、
前記不揮発性メモリは、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、
前記制御回路は、
ホスト装置から論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、
前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、
前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、
前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、
前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、
ことを特徴とするデータ処理システム。
【請求項４】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置と、
前記メモリ装置が着脱自在に装着されるホスト装置とを備え、
前記ホスト装置は、前記メモリ装置を介して前記不揮発性メモリにクラスタ単位でデータをアクセスする制御回路を有するデータ処理システムであって、
前記不揮発性メモリは、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、
前記制御回路は、
論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、
前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、
前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、
前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、
前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、
前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、
前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、
ことを特徴とするデータ記録システム。
【請求項５】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、
前記不揮発性メモリは、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルと、
前記論理／物理テーブルの更新により前記論理／物理テーブルに登録された物理ブロックに対応して前記論理／物理テーブルから削除された元の物理ブロックのうち、退避ブロックに設定された元の物理ブロックに対応する前記論理／物理テーブルに登録された物理ブロックのアドレスと、前記退避ブロックに設定された元の物理ブロックのアドレスと、前記元の物理ブロックの終了クラスタ番号とを対応付けて記憶する物理／退避テーブルとを有し、
前記制御回路は、
論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する第１の物理ブロック検出手段と、
前記第１の物理ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、
前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、
前記第１の物理ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する書き込みクラスタ番号比較手段と、
前記第１の物理ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記物理／退避テーブルに基づいて前記第１の物理ブロック検出手段により検出された物理ブロックのアドレスと同じ前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を検出する第１の退避ブロック検出手段と、
前記書き込みクラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記第１の物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第２の物理ブロック書き込み手段と、
前記第２の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、
前記書き込みクラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記第１の物理ブロック検出手段により検出された物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込む第３の物理ブロック書き込み手段と、
前記第３の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段と、
前記第１の退避ブロック検出手段により前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号が検出されない場合、前記第３の論理／物理テーブル更新手段により前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号と、第３の論理／物理テーブル更新手段により前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号とを比較する登録／削除終了クラスタ番号比較手段と、
前記登録／削除終了クラスタ番号比較手段の比較情報が、前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号が前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号より小さい場合、前記論理／物理テーブルから削除された元の物理ブロックを退避ブロックに設定し、前記論理／物理テーブルに登録された物理ブロックのアドレス、前記論理／物理テーブルから削除された元の物理ブロックのアドレスおよび前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号を前記物理／退避テーブルに書き込み、前記物理／退避テーブルを更新する第１の物理／退避テーブル更新手段と、
前記登録／削除終了クラスタ番号比較手段の比較情報が、前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号が前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号より小さい場合、前記論理／物理テーブルから削除された元の物理ブロックのデータを消去する第１の物理ブロック消去手段と、
前記第１の退避ブロック検出手段により前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号が検出された場合、前記第３の論理／物理テーブル更新手段により登録された前記論理／物理テーブルの物理ブロックの終了クラスタ番号と、前記第１の退避ブロック検出手段により検出された前記元の物理ブロックの終了クラスタ番号とを比較する第１の物理／退避クラスタ番号比較手段と、
前記第１の物理／退避クラスタ番号比較手段の比較情報が、前記論理／物理テーブルの物理ブロックの終了クラスタ番号が前記物理／退避テーブルの前記元の物理ブロックの終了クラスタ番号より小さい場合、前記第３の論理／物理テーブル更新手段により前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号よりクラスタ番号が大きいクラスタのデータを前記物理／退避テーブルの対応する元の物理ブロックから読み出し、前記第３の論理／物理テーブル更新手段により前記論理／物理テーブルから削除された元の物理ブロックに書き込む第１の退避ブロック書き込み手段と、
前記第１の退避ブロック書き込み手段によりデータが書き込まれた元の物理ブロックを前記第３の論理／物理テーブル更新手段により前記論理／物理テーブルに登録された物理ブロックの退避ブロックに設定し、前記物理／退避テーブルの元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を書き換え、前記物理／退避テーブルを更新する第２の物理／退避テーブル更新手段と、
前記第２の物理／退避テーブル更新手段により退避ブロックの設定が解除され、前記物理／退避テーブルから削除された元の物理ブロックのデータを消去する第２の物理ブロック消去手段とを有する、
ことを特徴とするメモリ装置。
【請求項６】
前記第１の物理／退避クラスタ番号比較手段の比較情報が、前記論理／物理テーブルの物理ブロックの終了クラスタ番号が前記物理／退避テーブルの前記元の物理ブロックの終了クラスタ番号以上の場合、前記第１の退避ブロック検出手段により検出された前記物理／退避テーブルの前記元の物理ブロックのデータを消去する第３の物理ブロック消去手段と、
前記第３の物理ブロック消去手段によりデータが消去された元の物理ブロックに対応する前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を前記物理／退避テーブルから削除し、前記物理／退避テーブルを更新する第３の物理／退避テーブル更新手段とを有することを特徴とする請求項５記載のメモリ装置。
【請求項７】
前記第１の退避ブロック検出手段により前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号が検出された場合、前記第２の論理／物理テーブル更新手段により書き換えられた前記論理／物理テーブルの物理ブロックの終了クラスタ番号と、前記第１の退避ブロック検出手段により検出された前記物理／退避テーブルの元の物理ブロックの終了クラスタ番号とを比較する第２の物理／退避クラスタ番号比較手段と、
前記第２の物理／退避クラスタ番号比較手段の比較情報が、前記論理／物理テーブルの物理ブロックの終了クラスタ番号が前記物理／退避テーブルの元の物理ブロックの終了クラスタ番号以上の場合、前記第１の退避ブロック検出手段により検出された前記物理／退避テーブルの元の物理ブロックのデータを消去する第４の物理ブロック消去手段と、
前記第４の物理ブロック消去手段によりデータが消去された元の物理ブロックに対応する前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を削除し、前記物理／退避テーブルを更新する第４の物理／退避テーブル更新手段とを有することを特徴とする請求項５記載のメモリ装置。
【請求項８】
前記物理／退避テーブルに設定可能な退避ブロック数は、１つであり、
前記制御回路は、
前記第１の物理／退避テーブル更新手段により前記物理／退避テーブルを更新するとき、前記物理／退避テーブルに基づいて前記論理／物理テーブルに登録された物理ブロックのアドレスを検出し、検出された物理ブロックのアドレスに対応する前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに基づいて検出する終了クラスタ番号検出手段と、
前記終了クラスタ番号検出手段により検出された前記物理ブロックの終了クラスタ番号よりクラスタ番号が大きいクラスタのデータを前記物理／退避テーブルの対応する元の物理ブロックから読み出し、対応する前記論理／物理テーブルに登録された物理ブロックに書き込む第２の退避ブロック書き込み手段と、
前記第２の退避ブロック書き込み手段によりデータが読み出された前記物理／退避テーブルの前記元の物理ブロックのデータを消去する第４の物理ブロック消去手段と、
前記第４の物理ブロック消去手段によりデータが消去された前記元の物理ブロックに対応する前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を前記物理／退避テーブルから削除し、前記物理／退避テーブルに空き領域を設け更新する第５の物理／退避テーブル更新手段とを有し、
前記第１の物理／退避テーブル更新手段は、前記第５の物理／退避テーブル更新手段により設けられた前記物理／退避テーブルの前記空き領域に前記論理／物理テーブルに登録された物理ブロックのアドレス、前記論理／物理テーブルから削除された元の物理ブロックのアドレスおよび前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号を書き込み、前記物理／退避テーブルを更新することを特徴とする請求項５記載のメモリ装置。
【請求項９】
前記物理／退避テーブルに設定可能な退避ブロック数は、複数であり、
前記物理／退避テーブルは、前記論理／物理テーブルに登録された物理ブロックのアドレス、前記退避ブロックに設定された元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号とともに、これらのアクセス回数を対応付けて記憶し、
前記制御回路は、
前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記退避ブロックに設定された元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号がアクセスされたとき、前記アクセス回数を更新するアクセス回数更新手段と、
前記第１の物理／退避テーブル更新手段により前記物理／退避テーブルを更新するとき、前記物理／退避テーブルに設定された退避ブロック数を検出する退避ブロック数検出手段と、
前記退避ブロック数検出手段により検出された前記物理／退避テーブルに設定された退避ブロック数と前記物理／退避テーブルに設定可能な退避ブロック数とを比較する退避ブロック数比較手段と、
前記退避ブロック数比較手段の比較情報が、前記物理／退避テーブルに設定された退避ブロック数と前記物理／退避テーブルに設定可能な退避ブロック数とが一致した場合、前記物理／退避テーブルに基づいて最小のアクセス回数を検出する最小アクセス回数検出手段と、
前記最小アクセス回数検出手段により検出された最小のアクセス回数に対応する前記論理／物理テーブルに登録された物理ブロックのアドレスを前記物理／退避テーブルに基づいて検出し、検出された物理ブロックのアドレスに対応する前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに基づいて検出する終了クラスタ番号検出手段と、
前記終了クラスタ番号検出手段により検出された前記物理ブロックの終了クラスタ番号よりクラスタ番号が大きいクラスタのデータを前記物理／退避テーブルの対応する元の物理ブロックから読み出し、対応する前記論理／物理テーブルに登録された物理ブロックに書き込む第２の退避ブロック書き込み手段と、
前記第２の退避ブロック書き込み手段によりデータが読み出された前記物理／退避テーブルの元の物理ブロックのデータを消去する第４の物理ブロック消去手段と、
前記第４の物理ブロック消去手段によりデータが消去された前記元の物理ブロックに対応する前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を前記物理／退避テーブルから削除し、前記物理／退避テーブルに空き領域を設け更新する第５の物理／退避テーブル更新手段とを有し、
前記第１の物理／退避テーブル更新手段は、前記第５の物理／退避テーブル更新手段により設けられた前記物理／退避テーブルの前記空き領域に前記論理／物理テーブルに登録された物理ブロックのアドレス、前記論理／物理テーブルから削除された元の物理ブロックのアドレスおよび前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号を書き込み、前記物理／退避テーブルを更新することを特徴とする請求項５記載のメモリ装置。
【請求項１０】
前記制御回路は、
論理ブロックのデータの読み出し命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する第２の物理ブロック検出手段と、
前記第２の物理ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記読み出し命令に基づくデータの開始クラスタ番号と、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する読み出し開始クラスタ番号比較手段と、
前記読み出し開始クラスタ番号比較手段の比較情報が、前記読み出し命令に基づくデータの開始クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理／退避テーブルに基づいて前記第２の物理ブロック検出手段により検出された前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスを検出する第２の退避ブロック検出手段と、
前記第２の退避ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスが検出された場合、検出された前記元の物理ブロックから前記読み出し命令に基づくデータを読み出す第１のデータ読み出し手段と、
前記読み出し開始クラスタ番号比較手段の比較情報が、前記読み出し命令に基づくデータの開始クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下場合、前記読み出し命令に基づくデータの終了クラスタ番号と、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する読み出し終了クラスタ番号比較手段と、
前記読み出し終了クラスタ番号比較手段の比較情報が、前記読み出し命令に基づくデータの終了クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記第２の物理ブロック検出手段により検出された物理ブロックから前記読み出し命令に基づくデータを読み出す第２のデータ読み出し手段と、
前記読み出し終了クラスタ番号比較手段の比較情報が、前記読み出し命令に基づくデータの終了クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理／退避テーブルに基づいて前記第２の物理ブロック検出手段により検出された前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスを検出する第３の退避ブロック検出手段と、
前記第３の退避ブロック検出手段により前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスが検出された場合、前記読み出し命令に基づくデータのうち、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下のクラスタ番号のクラスタのデータを前記第２の物理ブロック検出手段により検出された物理ブロックから読み出し、前記読み出し命令に基づくデータのうち、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記第３の退避ブロック検出手段により検出された前記元の物理ブロックから読み出す第３のデータ読み出し手段とを有することを特徴とする請求項５記載のメモリ装置。
【請求項１１】
クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置の制御方法であって、
論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを前記不揮発性メモリに記憶する論理／物理テーブル記憶ステップと、
前記論理／物理テーブルに新たに割り当てられた物理ブロックに対応して前記論理／物理テーブルから削除された元の物理ブロックのうち、退避ブロックに設定された元の物理ブロックのアドレスと、前記退避ブロックに設定された元の物理ブロックに対応する前記新たに割り当てられた物理ブロックのアドレスと、前記退避ブロックに設定された元の物理ブロックの終了クラスタ番号とを対応付けた物理／退避テーブルを前記不揮発性メモリに記憶する物理／退避テーブル記憶ステップと、
論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する第１の物理ブロック検出ステップと、
前記第１の物理ブロック検出ステップで前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込みステップと、
前記第１の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新ステップと、
前記第１の物理ブロック検出ステップで前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する書き込みクラスタ番号比較ステップと、
前記第１の物理ブロック検出ステップで前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記物理／退避テーブルに基づいて前記第１の物理ブロック検出手段により検出された物理ブロックのアドレスと同じ前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を検出する第１の退避ブロック検出ステップと、
前記書き込みクラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記第１の物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第２の物理ブロック書き込みステップと、
前記第２の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新ステップと、
前記書き込みクラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が前記第１の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記第１の物理ブロック検出手段により検出された物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込む第３の物理ブロック書き込みステップと、
前記第３の物理ブロック書き込みステップでデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新ステップと、
前記第１の退避ブロック検出ステップで前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号が検出されない場合、前記第３の論理／物理テーブル更新ステップで前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号と、第３の論理／物理テーブル更新ステップで前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号とを比較する登録／削除終了クラスタ番号比較ステップと、
前記登録／削除終了クラスタ番号比較ステップで、前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号が前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号より小さい場合、前記論理／物理テーブルから削除された元の物理ブロックを退避ブロックに設定し、前記論理／物理テーブルに登録された物理ブロックのアドレス、前記論理／物理テーブルから削除された元の物理ブロックのアドレスおよび前記論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号を前記物理／退避テーブルに書き込み、前記物理／退避テーブルを更新する第１の物理／退避テーブル更新ステップと、
前記第１の退避ブロック検出ステップで前記物理／退避テーブルの前記論理／物理テーブルに登録された物理ブロックのアドレス、前記物理ブロックに対応する元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号が検出された場合、前記第３の論理／物理テーブル更新ステップで登録された前記論理／物理テーブルの物理ブロックの終了クラスタ番号と、前記第１の退避ブロック検出手段により検出された前記元の物理ブロックの終了クラスタ番号とを比較する第１の物理／退避クラスタ番号比較ステップと、
前記第１の物理／退避クラスタ番号比較ステップで、前記論理／物理テーブルの物理ブロックの終了クラスタ番号が前記物理／退避テーブルの前記元の物理ブロックの終了クラスタ番号より小さい場合、前記第３の論理／物理テーブル更新ステップで前記論理／物理テーブルに登録された物理ブロックの終了クラスタ番号よりクラスタ番号が大きいクラスタのデータを前記物理／退避テーブルの対応する元の物理ブロックから読み出し、前記第３の論理／物理テーブル更新ステップで前記論理／物理テーブルから削除された元の物理ブロックに書き込む第１の退避ブロック書き込み手段と、
前記第１の退避ブロック書き込みステップでデータが書き込まれた元の物理ブロックを前記第３の論理／物理テーブル更新ステップで前記論理／物理テーブルに登録された物理ブロックの退避ブロックに設定し、前記物理／退避テーブルの元の物理ブロックのアドレスおよび前記元の物理ブロックの終了クラスタ番号を書き換え、前記物理／退避テーブルを更新する第２の物理／退避テーブル更新ステップと、
前記第２の物理／退避テーブル更新ステップで退避ブロックの設定が解除され、前記物理／退避テーブルから削除された元の物理ブロックのデータを消去する第１の物理ブロック消去ステップとを含むことを特徴とするメモリ装置の制御方法。
【請求項１２】
論理ブロックのデータの読み出し命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する第２の物理ブロック検出ステップと、
前記第２の物理ブロック検出ステップで前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記読み出し命令に基づくデータの開始クラスタ番号と、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する読み出し開始クラスタ番号比較ステップと、
前記読み出し開始クラスタ番号比較ステップで、前記読み出し命令に基づくデータの開始クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理／退避テーブルに基づいて前記第２の物理ブロック検出手段により検出された前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスを検出する第２の退避ブロック検出ステップと、
前記第２の退避ブロック検出ステップで検出された前記元の物理ブロックから前記読み出し命令に基づくデータを読み出す第１のデータ読み出しステップと、
前記読み出し開始クラスタ番号比較ステップで、前記読み出し命令に基づくデータの開始クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記読み出し命令に基づくデータの終了クラスタ番号と、前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する読み出し終了クラスタ番号比較ステップと、
前記読み出し終了クラスタ番号比較ステップで、前記読み出し命令に基づくデータの終了クラスタ番号が前記第２の物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記第２の物理ブロック検出手段により検出された物理ブロックから前記読み出し命令に基づくデータを読み出す第２のデータ読み出しステップと、
前記読み出し終了クラスタ番号比較ステップで、前記読み出し命令に基づくデータの終了クラスタ番号が前記第２の物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理／退避テーブルに基づいて前記第２の物理ブロック検出ステップで検出された前記論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロックのアドレスを検出する第３の退避ブロック検出ステップと、
前記読み出し命令に基づくデータのうち、前記第２の物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号以下のクラスタ番号のクラスタのデータを前記第２の物理ブロック検出ステップで検出された物理ブロックから読み出し、前記読み出し命令に基づくデータのうち、前記第２の物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記第３の退避ブロック検出ステップで検出された前記元の物理ブロックから読み出す第３のデータ読み出しステップとを含むことを特徴とする請求項１１記載のメモリ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリのように、クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置、メモリ装置の制御方法、並びに、メモリ装置およびこのメモリ装置が着脱自在に装着されるデータ処理理システムに関する。
【背景技術】
【０００２】
従来、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、オーディオレコーダ等の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。フラッシュメモリは、データの書き込みおよび読み出しをクラスタ単位でランダムに行なうことができるが、データの消去はブロック単位で行なう。図１５に示すように、１つのブロックは、複数のセクタからなるクラスタを複数並べ構成されている。セクタは、データの最小単位である。フラッシュメモリには、ブロック単位およびクラスタ単位に物理アドレスが割り当てられる。一方、メモリ装置を着脱自在に装着するホスト装置には、ブロック単位およびクラスタ単位の論理アドレスが割り当てられる。フラッシュメモリへのデータの書き込みおよび読み出し動作のときには、ホスト装置の論理ブロックにフラッシュメモリの物理ブロックが割り当てられる。
【０００３】
フラッシュメモリの記憶素子は、データの書換えを行うことにより劣化するため、その書き換え回数が制限される。このため、同じクラスタに繰り返しアクセスが集中するのを防止してフラッシュメモリの寿命を延ばすようにしている。ある物理アドレスに記憶されたある論理アドレスのデータを書き換える場合には、更新されたデータは、同じ物理ブロックには書き込まれず、消去状態の新しい物理ブロック（フリーブロック）に書き込まれる。
【０００４】
図１６に示すように、論理ブロック１が物理ブロック２に、論理ブロック２が物理ブロック４に、論理ブロック３が物理ブロック１に、論理ブロック４が物理ブロック３に割り当てられたものとする。物理ブロック５は、フリーブロックである。図１６において、論理ブロック１内のあるクラスタの書換えが命令されると、新しい物理ブロック５の同位置のクラスタにデータが書き込まれ、物理ブロック２内の残りのクラスタのデータが新しい物理ブロック５にコピーされる。そして、物理ブロック２は、消去されフリーブロックとなる（図１７）。次に、図１７において、論理ブロック１内のあるクラスタの書換えが命令されると、新しい物理ブロック２の同位置のクラスタにデータが書き込まれ、物理ブロック５内の残りのクラスタのデータが新しい物理ブロック２にコピーされる。そして、物理ブロック５は、消去されフリーブロックとなる（図１６の状態に戻る）。
【０００５】
このように、データ更新の前後で論理アドレスが割り当てられる物理アドレスが変化するため、論理アドレスおよび物理アドレスの対応関係を表わすアドレス変換テーブルがフラッシュメモリに記憶される。アドレス変換テーブルは、メモリ装置がホスト装置に装着されると、フラッシュメモリから読み出され、ホスト装置またはメモリ装置の作業メモリに格納され更新される。
【０００６】
従来のメモリ装置では、わずか数セクタのデータを書き換える場合にも、物理ブロックの更新が行われるため、そのアクセス時間がかかるとともに、記憶素子の劣化が早まるといった問題があった。この問題を解決するため、例えば、フラッシュメモリのブロックをヘッダ領域とデータ領域に分け、ヘッダ領域にデータ領域に書き込まれたデータレコードの先頭アドレスおよびレコード長を書き込むとともに、データ領域に書き込まれるデータレコードにリンク情報領域（レコード間のデータ連結状態情報）およびフラグ領域（データレコードの有効／無効情報）を付加することにより、データレコード単位の書き込み／更新を行い、ブロックの空き領域がなくなったときには、有効なデータレコードを抽出してフリーブロックに転送し、転送元のブロックを消去するものが提案されている。（例えば特許文献１参照）。
【特許文献１】特開平１１−７３３６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のように、ヘッダ領域およびデータ領域からなるブロックを設定した従来のフラッシュメモリでは、ブロック毎にヘッダ領域、リンク情報領域およびフラグ領域が設定するため、データを記憶するメモリ容量が減少し、メモリを有効に利用することができないといった問題があった。
本発明は、このような事情に鑑みなされたものであり、その目的は、フラッシュメモリのメモリ容量を大きく減少させることなく、フラッシュメモリの消去回数を減らし、フラッシュメモリのデータの更新を効率的に行い、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なうことができるメモリ装置、メモリ装置の制御方法およびデータ処理システムを提供するにある。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明のメモリ装置は、クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリと、前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、前記不揮発性メモリは、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、前記制御回路は、論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、ことを特徴とする。
【０００９】
また、本発明のメモリ装置の制御方法は、クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置の制御方法であって、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを前記不揮発性メモリに記憶する論理／物理テーブル記憶ステップと、論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出ステップと、前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込みステップと、前記第１の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新ステップと、前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較ステップと、前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込みステップと、前記第２の物理ブロック書き込みステップでデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新ステップと、前記第２の論理／物理テーブル更新ステップで書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去ステップと、前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出ステップで検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込みステップと、
前記第３の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新ステップとを含む、ことを特徴とする。
【００１０】
また、本発明のデータ処理システムは、クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリと、前記不揮発性メモリの動作を制御する制御回路と有するメモリ装置と、前記メモリ装置が着脱自在に装着され、前記メモリ装置を介して前記不揮発性メモリにクラスタ単位でデータをアクセスするホスト装置とを備えたデータ処理システムであって、前記不揮発性メモリは、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、前記制御回路は、ホスト装置から論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、
前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、ことを特徴とする。
【００１１】
また、本発明のデータ処理システムは、クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のクラスタからなるブロック単位にデータの消去が行われる不揮発性メモリを有するメモリ装置と、前記メモリ装置が着脱自在に装着されるホスト装置とを備え、前記ホスト装置は、前記メモリ装置を介して前記不揮発性メモリにクラスタ単位でデータをアクセスする制御回路を有するデータ処理システムであって、前記不揮発性メモリは、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けて記憶する論理／物理テーブルを有し、前記制御回路は、論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する物理ブロック検出手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む第１の物理ブロック書き込み手段と、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する第１の論理／物理テーブル更新手段と、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較するクラスタ番号比較手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む第２の物理ブロック書き込み手段と、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第２の論理／物理テーブル更新手段と、前記第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する物理ブロック消去手段と、前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む第３の物理ブロック書き込み手段と、前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する第３の論理／物理テーブル更新手段とを有する、ことを特徴とする。
【発明の効果】
【００１２】
本発明のメモリ装置によれば、前記不揮発性メモリに、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを記憶し、前記制御回路により論理／物理テーブルを書き換えて、物理ブロックのデータを書き換える。論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を物理ブロック検出手段により検出する。前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、第１の物理ブロック書き込み手段により、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む。第１の論理／物理テーブル更新手段により、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する。クラスタ番号比較手段により、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、第２の物理ブロック書き込み手段により、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む。第２の論理／物理テーブル更新手段により、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。物理ブロック消去手段により、第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、第３の物理ブロック書き込み手段により、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む。第３の論理／物理テーブル更新手段により、前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。
【００１３】
このため、論理ブロックおよび物理ブロックを対応つけた従来のアドレス変換テーブルに物理ブロックの終了クラスタ番号を付加した論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号が、論理／物理テーブルの物理ブロックの終了クラスタ番号より大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。したがって、物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリの管理領域に論理／物理テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。
【００１４】
本発明のメモリ装置の制御方法によれば、論理／物理テーブル記憶ステップで、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを前記不揮発性メモリに記憶する。論理ブロックのデータの書き込み命令が要求されたとき、物理ブロック検出ステップで、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を検出する。前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、第１の物理ブロック書き込みステップで、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む。第１の論理／物理テーブル更新ステップで、前記第１の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する。前記物理ブロック検出ステップで、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する。前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号以下の場合、第２の物理ブロック書き込みステップで、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む。第２の論理／物理テーブル更新ステップで、前記第２の物理ブロック書き込みステップでデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。物理ブロック消去ステップで、第２の論理／物理テーブル更新ステップで書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する。前記クラスタ番号比較ステップで、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出ステップで検出された物理ブロックの終了クラスタ番号より大きい場合、第３の物理ブロック書き込みステップで、前記物理ブロック検出ステップで検出された物理ブロックに前記書き込み命令に基づくデータを書き込む。第３の論理／物理テーブル更新ステップで、前記第３の物理ブロック書き込みステップで前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。
【００１５】
このため、論理ブロックおよび物理ブロックを対応つけた従来のアドレス変換テーブルに物理ブロックの終了クラスタ番号を付加した論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号が、論理／物理テーブルの物理ブロックの終了クラスタ番号より大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。したがって、物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリの管理領域に論理／物理テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。
【００１６】
本発明のデータ処理システムによれば、前記不揮発性メモリに、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを記憶し、前記メモリ装置の前記制御回路により論理／物理テーブルを書き換えて、物理ブロックのデータを書き換える。論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を物理ブロック検出手段により検出する。前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、第１の物理ブロック書き込み手段により、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む。第１の論理／物理テーブル更新手段により、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する。クラスタ番号比較手段により、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、第２の物理ブロック書き込み手段により、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む。第２の論理／物理テーブル更新手段により、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。物理ブロック消去手段により、第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、第３の物理ブロック書き込み手段により、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む。第３の論理／物理テーブル更新手段により、前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。
【００１７】
このため、論理ブロックおよび物理ブロックを対応つけた従来のアドレス変換テーブルに物理ブロックの終了クラスタ番号を付加した論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号が、論理／物理テーブルの物理ブロックの終了クラスタ番号より大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。したがって、物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリの管理領域に論理／物理テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。さらに、従来のホスト装置にメモリ装置を装着した場合、メモリ装置単独で前記論理／物理テーブルに基づくフラッシュメモリの制御を実現することができる。
【００１８】
本発明のデータ処理システムによれば、前記不揮発性メモリに、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを記憶し、前記ホスト装置の前記制御回路により論理／物理テーブルを書き換えて、物理ブロックのデータを書き換える。論理ブロックのデータの書き込み命令が要求されたとき、前記論理／物理テーブルに基づいて前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を物理ブロック検出手段により検出する。前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出されない場合、第１の物理ブロック書き込み手段により、前記フラッシュメモリの何れかのフリーブロックに前記書き込み命令に基づくデータを書き込む。第１の論理／物理テーブル更新手段により、前記第１の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を前記論理／物理テーブルに書き込み、前記論理／物理テーブルを更新する。クラスタ番号比較手段により、前記物理ブロック検出手段により前記論理ブロックのアドレス、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号が検出された場合、前記書き込み命令に基づくデータの開始クラスタ番号と、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号とを比較する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号以下の場合、第２の物理ブロック書き込み手段により、前記書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フラッシュメモリの何れかのフリーブロックに書き込み、前記書き込み命令に基づくデータを前記フリーブロックに書き込み、前記書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータを前記論理／物理テーブルの前記論理ブロックに割り当てられた物理ブロックから読み出し、前記フリーブロックに書き込む。第２の論理／物理テーブル更新手段により、前記第２の物理ブロック書き込み手段によりデータが書き込まれたフリーブロックを前記論理ブロックの物理ブロックに割り当て、前記論理ブロックに割り当てられた物理ブロックのアドレスおよび前記物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。物理ブロック消去手段により、第２の論理／物理テーブル更新手段により書き換えられ、前記論理／物理テーブルから削除された物理ブロックのデータを消去する。前記クラスタ番号比較手段の比較情報が、前記書き込み命令に基づくデータの開始クラスタ番号が、前記物理ブロック検出手段により検出された物理ブロックの終了クラスタ番号より大きい場合、第３の物理ブロック書き込み手段により、前記物理ブロック検出手段により検出された物理ブロックに前記書き込み命令に基づくデータを書き込む。第３の論理／物理テーブル更新手段により、前記第３の物理ブロック書き込み手段により前記書き込み命令に基づくデータが書き込まれた物理ブロックの終了クラスタ番号を書き換え、前記論理／物理テーブルを更新する。
【００１９】
このため、論理ブロックおよび物理ブロックを対応つけた従来のアドレス変換テーブルに物理ブロックの終了クラスタ番号を付加した論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号が、論理／物理テーブルの物理ブロックの終了クラスタ番号より大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。したがって、物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリの管理領域に論理／物理テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。さらに、ホスト装置に従来のメモリ装置を装着した場合、ホスト装置により前記論理／物理テーブルに基づくフラッシュメモリの制御を実現することができる。
【発明を実施するための最良の形態】
【００２０】
上記目的を達成するため、論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスと、前記物理ブロックの終了クラスタ番号とを対応付けた論理／物理テーブルを記憶し、書き込み命令に基づくデータの開始クラスタ番号が、論理／物理テーブルの物理ブロックの終了クラスタ番号より大きい場合、物理ブロックにデータを追記する。
【実施例１】
【００２１】
以下、本発明の実施例１のデータ処理システムについて図面を参照して説明する。
図１は、実施例１のデータ処理システムの概略構成を示す図である。
図１に示すように、実施例１のデータ処理システムは、フラッシュメモリ２３を有するメモリカード２０と、メモリカード２０が着脱自在に装着されるホスト装置１０とを備える。
【００２２】
ホスト装置１０は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、オーディオレコーダ等の機器からなり、ＣＰＵ１１、メモリ１２、ディスプレイ１３、Ｉ／Ｏ部１４および外部メモリＩ／Ｆ（インタフェース）１５を備える。ＣＰＵ１１は、メモリ１２、ディスプレイ１３、Ｉ／Ｏ部１４および外部メモリＩ／Ｆ１５とバス１６を介し相互に接続されている。メモリ１２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。外部メモリＩ／Ｆ１５は、ＣＰＵ１１の制御命令に従ってメモリカード２０との間でデータを送受する。
【００２３】
メモリカード２０は、ＣＰＵ２１、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４を備える。ＣＰＵ２１は、メモリ２２、フラッシュメモリ２３およびホストＩ／Ｆ２４とバス２５を介し相互に接続されている。メモリ２２は、プログラム格納用のＲＯＭ、作業用メモリであるＲＡＭ等を有する。フラッシュメモリ２３は、例えば、ＮＯＲ型またはＮＡＮＤ型のフラッシュメモリ（不揮発性メモリ）からなる。ホストＩ／Ｆ２４は、ＣＰＵ２１の制御命令に従ってホスト装置１０との間でデータを送受する。
【００２４】
図２は、図１に示されるメモリカード２０の一例を示す図である。
図２に示すように、メモリカード２０は、例えばメモリスティック（登録商標）に相当し、ホスト装置１０に装着され、ホンス装置１０から供給されるデータが書き込まれる。メモリカード２０は、複数のフラッシュメモリ２３を有するメモリ部４０と、メモリ部４０を制御するコントローラ部３０とを備える。
【００２５】
コントローラ部３０は、シリアルＩ／Ｆ（インタフェース）３１、パラレルＩ／Ｆ３２、レジスタ３３、データバッファ３４、ＥＣＣ（Error Correcting Circuit）３５およびＭＰＵ（Micro Processing Unit）３６およびクロック信号発生部３７を備える。
シリアルＩ／Ｆ３１、パラレルＩ／Ｆ３２、レジスタ３３、データバッファ３４およびＥＣＣ３５は、バス３８により相互に接続されている。レジスタ３３、データバッファ３４およびＥＣＣ３５は、ＭＰＵ３６に接続されている。
【００２６】
レジスタ３３は、命令レジスタ等を有する。データバッファ３４は、フラッシュメモリ２３にアクセスされるデータを一時的に記憶する。ＥＣＣ３５は、データバッファ３４に記憶されたデータの誤り訂正処理を実行する。クロック信号発生部３７は、メモリスティック内部のクロック信号を発生する。
【００２７】
ホスト装置１０により出力されたデータは、信号線ＤＡＴＡ０〜３を通してシリアルＩ／Ｆ３１およびパラレルＩ／Ｆ３２の一方または双方に入力され、データバッファ３４に転送される。データバッファ３４に転送されたデータは、ＭＰＵ３６によりフラッシュメモリ２３に書き込まれる。
【００２８】
メモリカード２０には、信号線ＶＳＳおよびＶＣＣを通して電源が供給される。また、メモリカード２０には、ホスト装置１０からのデータを取り込むために必要となるクロック信号が入力される信号線ＳＣＬＫや、ホスト装置１０に対しメモリカード２０が正常に装着されているか否かを判断するための信号線ＩＮＳや、ホスト装置１０から供給されるデータの向きを判断するための信号線ＢＳ等も設けられている。
【００２９】
次に、データ処理システムの書き込み動作の概略を説明する。
まず、書き込みコマンドおよび書き込みデータのアドレスが、次に、書き込みデータがホスト装置１０から送信され、メモリカード２０に受信される。フラッシュメモリ２３は、セクタ単位にデータの書き込みおよび読み出しを行なうが、ホスト装置１０は、クラスタ単位でデータの書き込みおよび読み出しを行なう。書き込みデータがメモリカード２０に受信されると、受信された書き込みデータがデータバッファ３４に記憶される。書き込みデータの受信が終了すると、データバッファ３４に記憶された書き込みデータがフラッシュメモリ２３に書き込まれる。
【００３０】
次に、データ処理システムの読み出し動作の概略を説明する。
読み出しコマンドおよび読み出しデータのアドレスがホスト装置１０から送信され、メモリカード２０に受信されると、当該アドレスの読み出しデータがフラッシュメモリ２３から読み出され、データバッファ３４に記憶される。フラッシュメモリ２３の読み出しデータの読み出しが終了すると、データバッファ３４に記憶された読み出しデータが読み出されホスト装置１０に送信される。
【００３１】
図３は、論理／物理テーブルの一例を示す図である。
図１および図２に示されるフラッシュメモリ２３には、図３に示される論理／物理テーブルが記憶されている。論理／物理テーブルは、論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスと、物理ブロックの終了クラスタ番号とを対応付けたものである。論理／物理テーブルは、メモリカード２０がホスト装置１０に装着されると、コントロール部３０によりフラッシュメモリ２３から読み出され、データの書き込み動作に従って書き換えられる。
【００３２】
図４は、書き込みデータの一例を示す図である。
図４（ａ）に示すように、まず、ある論理ブロックのクラスタ番号１のクラスタのデータの書き込み命令が要求されると、論理／物理テーブルが参照される。この場合、書き込みデータの開始クラスタ番号が１であるので、フラッシュメモリ２３の何れかのフリーブロックにクラスタ番号１のデータが書き込まれる。
【００３３】
次に、図４（ｂ）に示すように、同じ論理ブロックのクラスタ番号２のクラスタのデータの書き込み命令が要求されると、論理／物理テーブルが参照される。この場合、書き込みデータの開始クラスタ番号が２であり、対応する物理ブロックの終了クラスタ番号は１であるので、この物理ブロックにクラスタ番号２のクラスタのデータが追記される。そして、論理／物理テーブルの物理ブロックの終了クラスタ番号が２に書き換えられる。
【００３４】
次に、同じ論理ブロックのクラスタ番号１のクラスタのデータの書き込み命令が要求されると、論理／物理テーブルが参照される。この場合、書き込みデータの開始クラスタ番号が１であり、対応する物理ブロックの終了クラスタ番号は２であるので、対応する物理ブロックに新たなクラスタ番号１を書き込むことはできない。このため、従来のように、新たなフリーブロックに物理ブロックのクラスタ番号１のクラスタのデータを書き込んだ後、前記対応する物理ブロックのクラスタ番号２のクラスタのデータをコピーし、新たなフリーブロックを論理ブロックの物理ブロックに設定して、そのアドレスおよび終了クラスタ番号を書き換える。そして、論理／物理テーブルから削除された元の物理ブロックのデータが消去され、フリーブロックになる。
【００３５】
。
図５は、実施例１のデータ処理システムの書き込み動作を示すフローチャートである。
この書き込み動作は、特許請求の範囲の請求項１〜４に相当する。
まず、論理ブロックのデータの書き込み命令が要求されると、論理／物理テーブルが参照され、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出される（ステップＳ１、物理ブロック検出ステップ）。
【００３６】
次に、ステップＳ１で、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出されない場合、フラッシュメモリ２３の何れかのフリーブロックに書き込み命令に基づくデータが書き込まれ（ステップＳ２、第１の物理ブロック書き込みステップ）、書き込み命令に基づくデータが書き込まれたフリーブロックが論理ブロックの物理ブロックに割り当てられ、論理ブロックのアドレス、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号が前記論理／物理テーブルに書き込まれ、論理／物理テーブルが更新される（ステップＳ３、第１の論理／物理テーブル更新ステップ）。
【００３７】
次に、ステップＳ１で、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出された場合、書き込み命令に基づくデータの開始クラスタ番号ＳＣと物理ブロックの終了クラスタ番号ＥＣとが比較される（ステップＳ４、クラスタ番号比較ステップ）。
【００３８】
ステップＳ４で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが物理ブロックの終了クラスタ番号ＥＣ以下の場合、書き込み命令に基づくデータの開始クラスタ番号ＳＣより小さいクラスタ番号のクラスタのデータが論理／物理テーブルの対応する物理ブロックから読み出され、フラッシュメモリ２３の何れかのフリーブロックに書き込まれ、次いで、前記書き込み命令に基づくデータがフリーブロックに書き込まれ、次いで、書き込み命令に基づくデータの終了クラスタ番号より大きいクラスタ番号のクラスタのデータが論理／物理テーブルの対応する物理ブロックから読み出され、フリーブロックに書き込まれる（ステップＳ５、第２の物理ブロック書き込みステップ）。
【００３９】
次に、このフリーブロックが論理ブロックの物理ブロックに割り当てられ、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号が書き換えられ、論理／物理テーブルが更新される（ステップＳ６、第２の論理／物理テーブル更新ステップ）。次に、論理／物理テーブルから削除された元の物理ブロックのデータが消去される（ステップＳ７、物理ブロック消去ステップ）。
【００４０】
次に、ステップＳ４で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが物理ブロックの終了クラスタ番号ＥＣより大きい場合、論理／物理テーブルの対応する物理ブロックに前記書き込み命令に基づくデータが追記される（ステップＳ８、第３の物理ブロック書き込みステップ）。次に、論理／物理テーブルの対応する物理ブロックの終了クラスタ番号が書き換えられ、論理／物理テーブルが更新される（ステップＳ９、第３の論理／物理テーブル更新ステップ）。
【００４１】
このように実施例１によれば、論理ブロックのアドレス、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号を対応付けた論理／物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号ＳＣが、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、従来のような物理ブロックの更新（新たなデータの書き込みおよび元の物理ブロックのコピー）を行なわずに、物理ブロックにデータを追記する。したがって、物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリの管理領域に論理／物理テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。
【実施例２】
【００４２】
実施例１では、論理／物理テーブルをフラッシュメモリ２３に設け、書き込み命令に基づくデータの開始クラスタ番号ＳＣが、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、対応する物理ブロックにデータを追記した。これに対し、実施例２のデータ処理システムは、さらにフラッシュメモリ２３に物理／退避テーブルを設ける。
【００４３】
実施例２のデータ処理システムは、書き込み命令に基づくデータの開始クラスタ番号ＳＣが、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより小さい場合、書き込み命令に基づくデータの開始クラスタ番号ＳＣより小さいクラスタ番号のクラスタのデータを論理／物理テーブルの対応する物理ブロックから読み出し、フリーブロックにコピーした後、このフリーブロックに書き込み命令に基づくデータを書き込む。そして、このフリーブロックを物理／論理テーブルの論理ブロックの対応する物理ブロックに登録し、物理／論理テーブルから削除された元の物理ブロックの一部を退避ブロックに設定し、これにより、物理／論理テーブルに登録された物理ブロックのデータの追記を可能にした。
【００４４】
図６は、実施例２の物理／退避ブロックの一例を示す図である。
図６に示すように、物理／退避テーブルは、論理／物理テーブルから削除された元の物理ブロックのうち、退避ブロックに設定された元の物理ブロックに対応する論理／物理テーブルに登録された物理ブロックのアドレスと、前記退避ブロックに設定された元の物理ブロックのアドレスと、前記元の物理ブロックの終了クラスタ番号とを対応付けたものである。物理／退避テーブルは、メモリカード２０がホスト装置１０に装着されると、コントロール部３０によりフラッシュメモリ２３から論理／物理テーブルとともに読み出され、データの書き込み動作に従って書き換えられる。なお、実施例２のデータ処理システムの構成は、図１および図２に示される実施例１のデータ処理システムの構成と同様であり、その説明を省略する。
【００４５】
図７〜図１１は、実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
この書き込み動作は、特許請求の範囲の請求項５〜７に相当する。
まず、論理ブロックのデータの書き込み命令が要求されると、論理／物理テーブルが参照され、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出される（ステップｓ１１、第１の物理ブロック検出手段）。
【００４６】
次に、ステップＳ１１で、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出されない場合、フラッシュメモリ２３の何れかのフリーブロックに書き込み命令に基づくデータが書き込まれる（ステップＳ１２、第１の物理ブロック書き込み手段）。次に、書き込み命令に基づくデータが書き込まれたフリーブロックが論理ブロックの物理ブロックに割り当てられ、論理ブロックのアドレス、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号が論理／物理テーブルに書き込まれ、論理／物理テーブルが更新され（ステップＳ１３、第１の論理／物理テーブル更新手段）、データ書き込み動作が終了する。
【００４７】
一方、ステップＳ１１で、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出された場合、物理／退避テーブルが参照され、論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロック（退避ブロック）のアドレスおよび元の物理ブロック（退避ブロック）の終了クラスタ番号が検出される（ステップＳ１４、第１の退避ブロック検出手段）。
また、ステップＳ１１で、論理ブロックに対応する物理ブロックのアドレスおよび終了クラスタ番号が検出された場合、書き込み命令に基づくデータの開始クラスタ番号ＳＣと、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣとが比較される（ステップＳ１５、書き込みクラスタ番号比較手段）。
【００４８】
次に、ステップＳ１４で、物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が検出されず、ステップＳ１５で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、論理／物理テーブルの対応する物理ブロックに書き込み命令に基づくデータが追記される（ステップＳ１６、第２の物理ブロック書き込み手段）。次に、前記書き込み命令に基づくデータが追記された物理ブロックの終了クラスタ番号が論理／物理テーブルに書き込まれ、論理／物理テーブルが更新され（ステップＳ１７、第２の論理／物理テーブル更新手段）、データ書き込み動作が終了する。
【００４９】
次に、ステップＳ１４で、物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が検出され、ステップＳ１５で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、論理／物理テーブルの物理ブロックの物理ブロックに書き込み命令に基づくデータが追記される（ステップＳ１８、第２の物理ブロック書き込み手段）。次に、前記書き込み命令に基づくデータが追記された物理ブロックの終了クラスタ番号が論理／物理テーブルに書き込まれ、論理／物理テーブルが更新される（ステップＳ１９、第２の論理／物理テーブル更新手段）。
【００５０】
次に、ステップＳ１９で書き換えられた論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣと、ステップＳ１４で検出された物理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣとが比較される（ステップＳ２０、第２の物理／退避クラスタ番号比較手段）。
【００５１】
次に、ステップＳ２０で、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣが物理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣ以上の場合、退避ブロックである元の物理ブロックは不要となり、そのデータが消去される（ステップＳ２１、第４の物理ブロック消去手段）。次に、データが消去された元の物理ブロックに対応する物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が削除され、物理／退避テーブルが更新され（ステップＳ２２、第４の物理／退避テーブル更新手段）、データ書き込み動作が終了する。
【００５２】
一方、ステップＳ２０で、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣが物理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣより小さい場合、退避ブロックである元の物理ブロックの終了クラスタ番号ＥＣより大きいクラスタ番号のクラスタのデータが必要になるので、物理／退避テーブルはそのまま保持され、データ書き込み動作が終了する。
【００５３】
次に、ステップＳ１４で、物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が検出されず、ステップＳ１５で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣ以下の場合、書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータが論理／物理テーブルの対応する物理ブロックから読み出され、フラッシュメモリ２３の何れかのフリーブロックに書き込まれ、次いで、書き込み命令に基づくデータがフリーブロックに書き込まれる（ステップＳ２３、第３の物理ブロック書き込み手段）。
【００５４】
次に、データが書き込まれたフリーブロックが論理ブロックの物理ブロックに割り当てられ、割り当てられた物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号が書き換えられ、論理／物理テーブルが更新される（ステップＳ２４、第３の論理／物理テーブル更新手段）。
【００５５】
次に、ステップＳ２４で論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣと、ステップＳ２４で論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号ＥＣとが比較される（ステップＳ２５、登録／削除終了クラスタ番号比較手段）。
【００５６】
次に、ステップＳ２５で、論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣが論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号ＥＣより小さい場合、論理／物理テーブルから削除された元の物理ブロックが退避ブロックに設定され、論理／物理テーブルに登録された物理ブロックのアドレス、論理／物理テーブルから削除された元の物理ブロックのアドレスおよび論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号が物理／退避テーブルに書き込まれ、物理／退避テーブルが更新され（ステップＳ２６、第１の物理／退避テーブル更新手段）、データ書き込み動作が終了する。
【００５７】
一方、ステップＳ２５で、論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣが論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号ＥＣ以上場合、論理／物理テーブルから削除された元の物理ブロックは不要となり、退避ブロックには設定されずに、そのデータが消去され（ステップＳ２７、第１の物理ブロック消去手段）、データ書き込み動作が終了する。
【００５８】
次に、ステップＳ１４で、物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が検出され、ステップＳ１５で、書き込み命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣ以下の場合、書き込み命令に基づくデータの開始クラスタ番号より小さいクラスタ番号のクラスタのデータが論理／物理テーブルの対応する物理ブロックから読み出され、フラッシュメモリ２３の何れかのフリーブロックに書き込まれ、次いで、書き込み命令に基づくデータがフリーブロックに書き込まれる（ステップＳ２８、第３の物理ブロック書き込み手段）。
【００５９】
次に、データが書き込まれたフリーブロックが論理ブロックの物理ブロックに割り当てられ、割り当てられた物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号が書き換えられ、論理／物理テーブルが更新される（ステップＳ２９、第３の論理／物理テーブル更新手段）。
【００６０】
次に、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣと、論理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣとが比較される（ステップＳ３０、第１の物理／退避クラスタ番号比較手段）
【００６１】
ステップＳ３０で、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣが物理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣより小さい場合、論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣよりクラスタ番号が大きいクラスタのデータが物理／退避テーブルの対応する元の物理ブロックから読み出され、論理／物理テーブルから削除された元の物理ブロックに書き込まれる（ステップＳ３１、第１の退避ブロック書き込み手段）。
【００６２】
次に、データが書き込まれた元の物理ブロックが論理／物理テーブルに登録された物理ブロックの退避ブロックに設定され、物理／退避テーブルの元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が書き換えられ、物理／退避テーブルが更新される（ステップＳ３２、第２の物理／退避テーブル更新手段）。次に、退避ブロックの設定が解除され、物理／退避テーブルから削除された元の物理ブロックのデータが消去され（ステップＳ３３、第２の物理ブロック消去手段）、データ書き込み動作が終了する。
【００６３】
一方、ステップＳ３０で、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣが物理／退避テーブルの元の物理ブロックの終了クラスタ番号ＴＣ以上の場合、退避ブロックである元の物理ブロックは不要となり、そのデータが消去される（ステップＳ３４、第２の物理ブロック消去手段）。次に、データが消去された元の物理ブロックに対応する論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が物理／退避テーブルから削除され、物理／退避テーブルが更新され（ステップＳ３５、第３の物理／退避テーブル更新手段）、データ書き込み動作が終了する。
【００６４】
図１２は、実施例２のデータ処理システムの読み出し動作を示すフローチャートである。
この読み出し動作は、特許請求の範囲の請求項１０に相当する。
まず、論理ブロックのデータの読み出し命令が要求されると、論理／物理テーブルが参照され、論理ブロックに割り当てられた物理ブロックのアドレスおよび終了クラスタ番号が検出される（ステップＳ４１、第２の物理ブロック検出手段）。
【００６５】
次に、ステップＳ４１で、論理ブロックに割り当てられた物理ブロックのアドレスおよび終了クラスタ番号が検出されない場合、データ読み出し動作が終了する。
【００６６】
一方、ステップＳ４１で、論理ブロックに割り当てられた物理ブロックのアドレスおよび終了クラスタ番号が検出された場合、読み出し命令に基づくデータの開始クラスタ番号ＳＣと、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣとが比較される（ステップＳ４２、読み出し開始クラスタ番号比較手段）。
【００６７】
次に、ステップＳ４２で、読み出し命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、物理／退避テーブルが参照され、論理／物理テーブルの論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロック（退避ブロック）のアドレスが検出される（ステップＳ４３、第２の退避ブロック検出手段）。
【００６８】
次に、ステップＳ４３で、元の物理ブロック（退避ブロック）のアドレスが検出されない場合、データ読み出し動作が終了する。一方、ステップＳ４３で、元の物理ブロック（退避ブロック）のアドレスが検出された場合、検出された元の物理ブロックから読み出し命令に基づくデータが読み出され（ステップＳ４４、第１のデータ読み出し手段）、データ読み出し動作が終了する。
【００６９】
一方、ステップＳ４２で、読み出し命令に基づくデータの開始クラスタ番号ＳＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣ以下の場合、読み出し命令に基づくデータの終了クラスタ番号ＥＣと、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣとが比較される（ステップＳ４５、読み出し終了クラスタ番号比較手段）。
【００７０】
次に、ステップＳ４５で、読み出し命令に基づくデータの終了クラスタ番号ＥＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣ以下の場合、論理／物理テーブルの物理ブロックから読み出し命令に基づくデータが読み出される（ステップＳ４６、第２のデータ読み出し手段）。
【００７１】
一方、ステップＳ４５で、読み出し命令に基づくデータの終了クラスタ番号ＥＣが論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きい場合、物理／退避テーブルが参照され、論理／物理テーブルの論理ブロックに割り当てられた物理ブロックに対応する元の物理ブロック（退避ブロック）のアドレスが検出される（ステップＳ４７、第３の退避ブロック検出手段）。
【００７２】
ステップＳ４７で、元の物理ブロック（退避ブロック）のアドレスが検出されない場合、論理／物理テーブルの物理ブロックから読み出し命令に基づくデータが読み出され（ステップＳ４８）、データ読み出し動作が終了する。なお、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きいクラスタ番号のクラスタのデータは存在せず、データの読み出しができない。
【００７３】
一方、ステップＳ４７で、元の物理ブロック（退避ブロック）のアドレスが検出された場合、読み出し命令に基づくデータのうち、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣ以下のクラスタ番号のクラスタのデータが論理／物理テーブルの物理ブロックから読み出され、読み出し命令に基づくデータのうち、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより大きいクラスタ番号のクラスタのデータが物理／退避テーブルの元の物理ブロックから読み出され（ステップＳ４９、第３のデータ読み出し手段）、データ読み出し動作が終了する。
【００７４】
このように実施例２によれば、論理／物理テーブルから削除された元の物理ブロックの一部に退避ブロックを設定し、論理／物理テーブルに登録された物理ブロックのアドレスと、元の物理ブロック（退避ブロック）のアドレスと、元の物理ブロック（退避ブロック）の終了クラスタ番号とを対応付けた物理／退避テーブルを設ける。書き込み命令に基づくデータの開始クラスタ番号ＳＣが、論理／物理テーブルの物理ブロックの終了クラスタ番号ＥＣより小さい場合、フリーブロックに書き込み命令に基づくデータを書き込み、論理／物理テーブルにデータの追記が可能な新たな物理ブロックとして登録し、元の物理ブロックおよび物理／退避テーブルを必要に応じて更新する。
【００７５】
したがって、データの追記が可能な物理ブロックを増やすことができるので、いっそう物理ブロックの消去回数を低減し、フラッシュメモリのデータの更新を効率的に行ない、記憶素子の劣化を低減するとともに、データのアクセスを高速に行なう上で有利となる。また、フラッシュメモリ２３の管理領域に／退避テーブルを設けるので、従来のようにフラッシュメモリのメモリ容量を大きく減少させることもない。
【実施例３】
【００７６】
実施例２では、図１０に示すように、ステップＳ２５で、論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣが論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号ＥＣより小さい場合、ステップＳ２６で、論理／物理テーブルから削除された元の物理ブロックを新たな退避ブロックに設定している。このため、物理／退避テーブルに登録される退避ブロック数が変動する。これに対し、実施例３のデータ処理システムは、物理／退避テーブルに登録される退避ブロック数を１または複数に制限する。
【００７７】
退避ブロック数を複数に制限する場合には、図１３に示される実施例３の物理／退避テーブルが使用される。
図１３に示すように、論理／物理テーブルに登録された物理ブロックのアドレスと、元の物理ブロック（退避ブロック）のアドレスと、元の物理ブロック（退避ブロック）の終了クラスタ番号と、これらの登録データのアクセス回数とを対応付けたものである。アクセス回数は、実施例２の書き込み動作時の第１の退避ブロック検出手段、並びに、読み出し動作時の第２および第３の退避ブロック検出手段の検出回数に相当する。
【００７８】
実施例３の物理／退避テーブルは、メモリカード２０がホスト装置１０に装着されると、コントロール部３０によりフラッシュメモリ２３から論理／物理テーブルとともに読み出され、データの書き込み動作に従って書き換えられる（アクセス回数更新手段）。なお、実施例３のデータ処理システムの構成は、図１および図２に示される実施例１のデータ処理システムの構成と同様であり、その説明を省略する。
【００７９】
図１４は、実施例３のデータ処理システムの書き込み動作を示すフローチャートである。
この書き込み動作は、特許請求の範囲の請求項８および９に相当する。
図１０のステップＳ２５で、論理／物理テーブルに登録された物理ブロックの終了クラスタ番号ＥＣが論理／物理テーブルから削除された元の物理ブロックの終了クラスタ番号ＥＣより小さい場合、物理／退避テーブルに設定された退避ブロック数が検出され（ステップＳ５１、退避ブロック数検出手段）、物理／退避テーブルに設定された退避ブロック数と物理／退避テーブルに設定可能な退避ブロック数Ｍとが比較される（ステップＳ５２）。
【００８０】
次に、ステップＳ５２で、物理／退避テーブルに設定された退避ブロック数が物理／退避テーブルに設定可能な退避ブロック数Ｍより小さい場合、物理／退避テーブルに空き領域があるので、ステップＳ２６に戻る。
【００８１】
一方、ステップＳ５２で、物理／退避テーブルに設定された退避ブロック数と物理／退避テーブルに設定可能な退避ブロック数Ｍとが一致した場合、物理／退避テーブルの最小のアクセス回数が検出される（ステップＳ５３、最小アクセス回数検出手段）。次に、最小のアクセス回数に対応する、物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレスが検出され、さらに論理／物理テーブルが参照され、検出された物理ブロックのアドレスに対応する物理ブロックの終了クラスタ番号が検出される（ステップＳ５４、終了クラスタ番号検出手段）。
【００８２】
次に、検出された物理ブロックの終了クラスタ番号よりクラスタ番号が大きいクラスタのデータが物理／退避テーブルの対応する元の物理ブロックから読み出され、対応する論理／物理テーブルに登録された物理ブロックに追記される（ステップＳ５５、第２の退避ブロック書き込み手段）。次に、データが読み出された物理／退避テーブルの元の物理ブロックのデータが消去される（ステップＳ５６、第４の物理ブロック消去手段）。次に、データが消去された元の物理ブロックに対応する物理／退避テーブルの論理／物理テーブルに登録された物理ブロックのアドレス、元の物理ブロックのアドレスおよび元の物理ブロックの終了クラスタ番号が物理／退避テーブルから削除され、物理／退避テーブルに空き領域が設けられ（ステップＳ５７、第５の物理／退避テーブル更新手段）、ステップＳ２６に戻る。
【００８３】
このように実施例３によれば、物理／退避テーブルに登録される退避ブロック数を１または複数に制限する。物理／退避テーブルに登録される退避ブロック数を複数に制限する場合、物理／退避テーブルに空き領域がないときには、アクセス回数が最小の退避ブロックを強制的に消去し、新たな退避ブロックを設定する。したがって、フラッシュメモリの管理領域に物理／退避テーブルを記憶する領域を設ける場合、最適化された固定の領域を設ければよいので、フラッシュメモリの管理領域を有効に利用することができる。退避ブロック数を１に制限すれば、最も小さな固定領域となる。
【００８４】
なお、実施例１〜３では、メモリ装置２０のコントロール部３０によりフラッシュメモリ２３の論理／物理テーブルおよび物理／退避テーブル（実施例１は論理テーブルのみ）を書き換え、フラッシュメモリ２３のデータをアクセスするようにデータ処理システムを構成している。このため、従来のホスト装置に本発明のメモリ装置２０を装着した場合、メモリ装置２０単独で本発明の制御方法を実現することができる。
【００８５】
これに対し、ホスト装置１０によりフラッシュメモリ２３の論理／物理テーブルおよび物理／退避テーブル（実施例１は論理テーブルのみ）を書き換え、フラッシュメモリ２３のデータをアクセスするようにデータ処理システムを構成することもできる。この場合、本発明のホスト装置１０に従来のメモリ装置を装着した場合にも、本発明の制御方法を実現することができる。
【図面の簡単な説明】
【００８６】
【図１】実施例１のデータ処理システムの概略構成を示す図である。
【図２】図１に示されるメモリカード２０の一例を示す図である。
【図３】論理／物理テーブルの一例を示す図である。
【図４】書き込みデータの一例を示す図である。
【図５】実施例１のデータ処理システムの書き込み動作を示すフローチャートである。
【図６】実施例２の物理／退避ブロックの一例を示す図である。
【図７】実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
【図８】実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
【図９】実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
【図１０】実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
【図１１】実施例２のデータ処理システムの書き込み動作を示すフローチャートである。
【図１２】実施例２のデータ処理システムの読み出し動作を示すフローチャートである。
【図１３】実施例３の物理／退避ブロックの一例を示す図である。
【図１４】実施例３のデータ処理システムの書き込み動作を示すフローチャートである。
【図１５】フラッシュメモリの物理ブロックの構成を示す図である。
【図１６】論理ブロックおよび物理ブロックの対応関係を示す図である。
【図１７】論理ブロックおよび物理ブロックの対応関係を示す図である。
【符号の説明】
【００８７】
１０……ホスト装置、１１……ＣＰＵ、１２……メモリ、１３……ディスプレイ、１４……Ｉ／Ｏ部、１５……外部メモリＩ／Ｆ、１６……バス、２０……メモリ装置、２１……ＣＰＵ、２２……メモリ、２３……フラッシュメモリ、２４……ホストＩ／Ｆ、２５……バス、３０……コントロール部。
【図１】
2006048227.tif 000003
【図２】
2006048227.tif 000004
【図３】
2006048227.tif 000005
【図４】
2006048227.tif 000006
【図５】
2006048227.tif 000007
【図６】
2006048227.tif 000008
【図７】
2006048227.tif 000009
【図８】
2006048227.tif 000010
【図９】
2006048227.tif 000011
【図１０】
2006048227.tif 000012
【図１１】
2006048227.tif 000013
【図１２】
2006048227.tif 000014
【図１３】
2006048227.tif 000015
【図１４】
2006048227.tif 000016
【図１５】
2006048227.tif 000017
【図１６】
2006048227.tif 000018
【図１７】
2006048227.tif 000019