(57)【要約】  ファイルシステム１０５と不揮発性記憶装置１０１は、あらかじめお互いのクラスタサイズと論理ブロックサイズを通知し合う。書き込みの際、不揮発性記憶装置の論理ブロックの中で、どのファイルシステムのクラスタが破棄してよいデータかをファイルシステムが不揮発性記憶装置に対し通知する。これにより不揮発性記憶装置が書き込みの際、データのコピーを避けることができ、不要なファイルのデータを保持し続けることがなくなる。
2009001514.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセス装置からのコマンドに基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラであって、
前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、
前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、
有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みコマンドと共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有するメモリコントローラ。
【請求項２】
前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有する請求項１記載のメモリコントローラ。
【請求項３】
前記制御部は、外部のメモリアクセス装置に対して前記論理ブロックの単位を通知し、前記メモリアクセス装置からのデータ管理の単位を受信する請求項１記載のメモリコントローラ。
【請求項４】
前記メモリアクセス装置から受信するデータ管理の単位はクラスタの容量である請求項３記載のメモリコントローラ。
【請求項５】
複数の物理ブロックから成る不揮発性メモリと、
メモリアクセス装置からのコマンドに基づいて、前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、を具備する不揮発性記憶装置であって、
前記メモリコントローラは、
前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、
前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、
有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みコマンドと共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有する不揮発性記憶装置。
【請求項６】
前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有する請求項５記載の不揮発性記憶装置。
【請求項７】
前記制御部は、外部のメモリアクセス装置に対して前記論理ブロックの単位を通知し、前記メモリアクセス装置からのデータ管理の単位を受信する請求項５記載の不揮発性記憶装置。
【請求項８】
前記メモリアクセス装置から受信するデータ管理の単位はクラスタの容量である請求項７記載の不揮発性記憶装置。
【請求項９】
前記不揮発性メモリは、フラッシュメモリである請求項５記載の不揮発性記憶装置。
【請求項１０】
不揮発性記憶装置に対しデータの書き込み及び読み出しを行うファイルシステムであって、
前記不揮発性記憶装置へのデータの書き込みの際、前記不揮発性記憶装置の論理ブロックの中で、有効なファイルデータが入っていない管理単位の領域情報を前記不揮発性記憶装置に通知するファイルシステム。
【請求項１１】
複数の物理ブロックから成る不揮発性メモリと、
前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、
前記メモリコントローラに対しデータの書き込み及び読み出しの指示を行うファイルシステムと、を具備する不揮発性記憶装置であって、
前記メモリコントローラは、
前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、
前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、
有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有し、
前記ファイルシステムは、
前記メモリコントローラへのデータの書き込みの指示の際、前記メモリコントローラの論理ブロックの中で、有効なファイルデータが入っていない前記管理単位の領域情報を前記メモリコントローラに通知する不揮発性記憶装置。
【請求項１２】
前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有する請求項１１記載の不揮発性記憶装置。
【請求項１３】
前記制御部は、前記ファイルシステムに対して前記論理ブロックの単位を通知し、前記ファイルシステムからのデータ管理の単位を受信する請求項１１記載の不揮発性記憶装置。
【請求項１４】
前記ファイルシステムから受信するデータ管理の単位はクラスタの容量である請求項１３記載の不揮発性記憶装置。
【請求項１５】
前記不揮発性メモリは、フラッシュメモリである請求項１１記載の不揮発性記憶装置。
【請求項１６】
複数の物理ブロックから成る不揮発性メモリと、
前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、
前記メモリコントローラに対しデータの書き込み及び読み出しの指示を行うファイルシステムと、
ファイルの書き込み、読み出し及び削除を行うファイルアクセス装置と、を具備する不揮発性記憶システムであって、
前記メモリコントローラは、
前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、
前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、
有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有し、
前記ファイルシステムは、
前記メモリコントローラへのデータの書き込みの指示の際、前記メモリコントローラの論理ブロックの中で、有効なファイルデータが入っていない前記管理単位の領域情報を前記メモリコントローラに通知する不揮発性記憶システム。
【請求項１７】
前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有する請求項１６記載の不揮発性記憶システム。
【請求項１８】
前記制御部は、前記ファイルシステムに対して前記論理ブロックの単位を通知し、前記ファイルシステムからのデータ管理の単位を受信する請求項１６記載の不揮発性記憶システム。
【請求項１９】
前記ファイルシステムから受信するデータ管理の単位はクラスタの容量である請求項１８記載の不揮発性記憶システム。
【請求項２０】
前記不揮発性メモリは、フラッシュメモリである請求項１６記載の不揮発性記憶システム。
【請求項２１】
ファイルシステムからの指示に基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込む前記不揮発性メモリのデータ書き込み方法であって、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持し、
有効データを含む論理ブロックへのデータの書き込みの際に、空き物理ブロックを選択し、
選択された空き物理ブロックに新規データを書き込み、
書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理するデータ書き込み方法。
【請求項２２】
ファイルシステムからの指示に基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込むためのコンピュータに読取可能なデータ書き込みプログラムであって、
データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持し、
有効データを含む論理ブロックへのデータの書き込みの際に、空き物理ブロックを選択し、
選択された空き物理ブロックに新規データを書き込み、
書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理するデータ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の書き換え可能な不揮発性メモリをデータ記憶媒体として有する半導体メモリカード等の不揮発性記憶装置と、これに内蔵されるメモリコントローラと、不揮発性記憶装置に対し書き込み及び読み出しを行うファイルシステムに関するものであり、更に、ファイルシステムに不揮発性記憶装置を構成要素に加えた不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラムに関するものである。
【背景技術】
【０００２】
フラッシュメモリ等の書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心に広く用いられており、デジタルスチルカメラやパーソナルコンピュータ等と組み合わせた不揮発性記憶システムとして、その需要が広まっている。現在様々な種類の半導体メモリカードが存在している。【０００３】
メモリカードは、データを記憶するフラッシュメモリと、それを制御するメモリコントローラＬＳＩとから構成されている。メモリコントローラＬＳＩは、デジタルスチルカメラ等のアクセス装置からの読み書き指示に従って、フラッシュメモリへのデータの読み書きを制御するデバイスである。フラッシュメモリは、代表的なものにＮＡＮＤ型がある。【０００４】
これらのフラッシュメモリの中には、データの消去単位となる物理ブロックが複数存在しており、更に１つの物理ブロック内には、データの書き込み、読み出し単位となるページが複数存在している。書き込み、読み出し単位であるページのサイズは、消去単位である物理ブロックのサイズよりも小さい。メモリコントローラＬＳＩは、１つもしくは複数の物理ブロックを１つの論理ブロックとして管理している。複数の物理ブロックを１つの論理ブロックとする場合には、並列書き込みや、並列消去を行うことで高速化を行っている。【０００５】
一方、不揮発性記憶装置に対しデータの書き込み及び読み出しを行うファイルシステムは、クラスタ単位で記憶領域を管理している。１クラスタは例えば１６ｋバイトであり、１つ又は複数のクラスタをまとめて１つのファイルとして管理する。【０００６】
近年、フラッシュメモリの消去ブロックサイズの大規模化や不揮発性記憶装置の高速化のため、論理ブロックサイズは比較的大きくなる傾向があり、一般にクラスタサイズは論理ブロックサイズより小さい。【０００７】
ファイルシステムは、ファイルを削除する際、ファイル管理情報の上で当該ファイルを削除済みとするだけで、通常は不揮発性記憶装置に書き込んである実際のデータそのものを消去しない。そのため、不揮発性記憶装置は不要なデータであっても不要であることを認識しないまま処理を行うため、不要なデータを保持しておくために、書き込み速度が低下したり、書き換え回数が増加するという欠点があった。【０００８】
この課題に対し、例えば特許文献１に開示された方法がある。特許文献１では、ファイルシステムが不揮発性記憶装置に書き込みを行う前に、ファイル管理情報を元に空き領域を探索し、不要データをあらかじめ消去しておくことで、書き込み速度を向上させている。
【特許文献１】特開２００５−８５０８１号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上記従来の方法では、ファイルシステムが不揮発性記憶装置に対し明示的に消去を行う必要がある。又、ファイルシステムが消去を指定する範囲や不揮発性記憶装置の消去における制御方法等が異なり、常に書き込み速度が向上できるとは限らないという問題点があった。【００１０】
本発明は、ファイルシステムと不揮発性記憶装置がお互いの管理単位を認識し、書き込みの際、不揮発性記憶装置の管理単位の中で、どのファイルシステムの管理単位が破棄してよいデータかをファイルシステムが不揮発性記憶装置に対し通知する。これによって本発明は、不揮発性記憶装置の書き込み速度を向上させ、更に、不揮発性メモリの書き換え回数を抑制することで不揮発性記憶装置の信頼性を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
この課題を解決するために、本発明のメモリコントローラは、メモリアクセス装置からのコマンドに基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラであって、前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みコマンドと共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有するものである。【００１２】
ここで前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有するようにしてもよい。【００１３】
ここで前記制御部は、外部のメモリアクセス装置に対して前記論理ブロックの単位を通知し、前記メモリアクセス装置からのデータ管理の単位を受信するようにしてもよい。【００１４】
ここで前記メモリアクセス装置から受信するデータ管理の単位はクラスタの容量としてもよい。【００１５】
この課題を解決するために、本発明の不揮発性記憶装置は、複数の物理ブロックから成る不揮発性メモリと、メモリアクセス装置からのコマンドに基づいて、前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、を具備する不揮発性記憶装置であって、前記メモリコントローラは、前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みコマンドと共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有するものである。【００１６】
ここでアドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有するようにしてもよい。【００１７】
ここで前記制御部は、外部のメモリアクセス装置に対して前記論理ブロックの単位を通知し、前記メモリアクセス装置からのデータ管理の単位を受信するようにしてもよい。【００１８】
ここで前記メモリアクセス装置から受信するデータ管理の単位はクラスタの容量としてもよい。【００１９】
ここで前記不揮発性メモリは、フラッシュメモリとしてもよい。【００２０】
この課題を解決するために、本発明のファイルシステムは、不揮発性記憶装置に対しデータの書き込み及び読み出しを行うファイルシステムであって、前記不揮発性記憶装置へのデータの書き込みの際、前記不揮発性記憶装置の論理ブロックの中で、有効なファイルデータが入っていない管理単位の領域情報を前記不揮発性記憶装置に通知するものである。【００２１】
この課題を解決するために、本発明の不揮発性記憶装置は、複数の物理ブロックから成る不揮発性メモリと、前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、前記メモリコントローラに対しデータの書き込み及び読み出しの指示を行うファイルシステムと、を具備する不揮発性記憶装置であって、前記メモリコントローラは、前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有し、前記ファイルシステムは、前記メモリコントローラへのデータの書き込みの指示の際、前記メモリコントローラの論理ブロックの中で、有効なファイルデータが入っていない前記管理単位の領域情報を前記メモリコントローラに通知するものである。【００２２】
ここで前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有するようにしてもよい。【００２３】
ここで前記制御部は、前記ファイルシステムに対して前記論理ブロックの単位を通知し、前記ファイルシステムからのデータ管理の単位を受信するようにしてもよい。【００２４】
ここで前記ファイルシステムから受信するデータ管理の単位はクラスタの容量としてもよい。【００２５】
ここで前記不揮発性メモリは、フラッシュメモリとしてもよい。【００２６】
この課題を解決するために、本発明の不揮発性記憶システムは、複数の物理ブロックから成る不揮発性メモリと、前記不揮発性メモリに対してデータを書き込み、前記不揮発性メモリよりデータを読み出すメモリコントローラと、前記メモリコントローラに対しデータの書き込み及び読み出しの指示を行うファイルシステムと、ファイルの書き込み、読み出し及び削除を行うファイルアクセス装置と、を具備する不揮発性記憶システムであって、前記メモリコントローラは、前記不揮発性メモリを管理する論理ブロックとその論理ブロックのデータを保持する物理ブロックとのアドレスを対応づけるアドレス変換管理部と、前記物理ブロックの使用状態を示す空きブロック管理テーブルを含む空きブロック管理部と、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持する空き単位情報管理部と、有効データを含む論理ブロックへのデータの書き込みの際に、前記空きブロック管理テーブルに基づいて空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込むと共に、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理する制御部と、を有し、前記ファイルシステムは、前記メモリコントローラへのデータの書き込みの指示の際、前記メモリコントローラの論理ブロックの中で、有効なファイルデータが入っていない前記管理単位の領域情報を前記メモリコントローラに通知するものである。【００２７】
ここで前記アドレス変換管理部は、前記論理ブロック内の次の書き込むべき位置を示す次書き込みポインタを有するようにしてもよい。【００２８】
ここで前記制御部は、前記ファイルシステムに対して前記論理ブロックの単位を通知し、前記ファイルシステムからのデータ管理の単位を受信するようにしてもよい。【００２９】
ここで前記ファイルシステムから受信するデータ管理の単位はクラスタの容量としてもよい。【００３０】
ここで前記不揮発性メモリは、フラッシュメモリとしてもよい。【００３１】
この課題を解決するために、本発明のデータ書き込み方法は、ファイルシステムからの指示に基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込む前記不揮発性メモリのデータ書き込み方法であって、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持し、有効データを含む論理ブロックへのデータの書き込みの際に、空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込み、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理するものである。【００３２】
この課題を解決するために、本発明のデータ書き込みプログラムは、ファイルシステムからの指示に基づいて、複数の物理ブロックから成る不揮発性メモリに対してデータを書き込むためのコンピュータに読取可能なデータ書き込みプログラムであって、データの書き込みの際に書き込むべきデータ及び論理アドレスに加えて与えられる有効データの管理単位内の配置を示すビットマップテーブルを保持し、有効データを含む論理ブロックへのデータの書き込みの際に、空き物理ブロックを選択し、選択された空き物理ブロックに新規データを書き込み、書き込みの指示と共に与えられた当該管理単位の有効データを示す前記ビットマップテーブルに基づいて当該論理ブロック内の有効データのみをコピー処理するものである。
【発明の効果】
【００３３】
以上のような本発明によれば、書き込みの際、ファイルシステムは書き込むデータが属する論理ブロックの中で、有効なファイルデータが入っていないクラスタをメモリコントローラに対し通知する。メモリコントローラは、この情報を元に不要なデータを認識し、それを破棄してよいと判断する。結果として、不要なデータを保持し続けてしまうことを回避できる。これにより不揮発性記憶装置の書き込み速度を向上させ、更に、不揮発性メモリの書き換え回数を抑制することで不揮発性記憶装置の信頼性を向上させることができる。
【図面の簡単な説明】
【００３４】
【図１】図１は本発明の第１の実施の形態における不揮発性記憶システムを示した構成図である。
【図２】図２は本発明の第１の実施の形態における不揮発性記憶装置の構成を示すブロック図である。
【図３】図３は本発明の第１の実施の形態における不揮発性メモリを示した構成図である。
【図４】図４は本発明の第１の実施の形態における論理ブロックを示した構成図である。
【図５】図５はアドレス変換テーブルの一例を示す図である。
【図６】図６は本発明の第１の実施の形態におけるファイル管理テーブルを示した構成図である。
【図７】図７は本発明の第１の実施の形態におけるメモリアクセス装置と不揮発性記憶装置のデータのやりとりを示すシーケンス図である。
【図８】図８は本発明の第１の実施の形態におけるファイル削除を行ったときの前後の状態を示した図である。
【図９】図９はファイル削除を行った後に、従来の方法で新たにファイルを書き込んだときの前後の状態を示した図である。
【図１０】図１０はファイル削除を行った後に、本発明の第１の実施の形態における方法で新たにファイルを書き込んだときの前後の状態を示した図である。
【図１１】図１１はアクセス装置から伝えられるビットマップデータの一例を示す図である。
【図１２】図１２は本発明の第２の実施の形態における不揮発性記憶システムを示した構成図である。
【符号の説明】
【００３５】
１００，１３０  不揮発性記憶システム
１０１，１３１  不揮発性記憶装置
１０２  メモリアクセス装置
１０３，１３３  不揮発性メモリ（フラッシュメモリ）
１０４，１３４  メモリコントローラ
１０５，１３５  ファイルシステム
１０６  アプリケーション
１１１  ホストインターフェース部
１１２  ＣＰＵ
１１３  ＲＡＭ
１１４  ＲＯＭ
１１７  メモリインターフェース部
１１８  アドレス変換管理部
１１９  空きブロック管理部
１２０  空きクラスタ情報管理部
１３２  ファイルアクセス装置
【発明を実施するための最良の形態】
【００３６】
（第１の実施の形態）
図１は、本発明の第１の実施の形態における不揮発性記憶システムを示した構成図である。不揮発性記憶システム１００は、データを記憶する不揮発性記憶装置１０１と、不揮発性記憶装置１０１に対しデータの書き込み及び読み出しを指示するメモリアクセス装置１０２とを含んでいる。不揮発性記憶装置１０１はフラッシュメモリで構成された不揮発性メモリ１０３と、不揮発性メモリ１０３に対しユーザデータ及びメモリ管理情報の書き込み及び読み出しを制御するメモリコントローラ１０４とを含んでいる。メモリアクセス装置１０２はファイルを管理するファイルシステム１０５と、ファイルシステム１０５に対しファイルデータの書き込み及び読み出し及びファイル削除を指示するアプリケーション１０６とを含んでいる。メモリアクセス装置１０２はファイルシステム１０５を通じて、不揮発性記憶装置１０１のメモリコントローラ１０４に対し、ファイルデータ、ファイル管理情報を含むユーザデータの書き込み及び読み出しを指示する。【００３７】
次に不揮発性記憶装置１０１及びそのメモリコントローラ１０４の詳細について図２を用いて説明する。不揮発性記憶装置１０１に備えられたメモリコントローラ１０４は、ホストインターフェース１１１とメモリコントローラ全体の制御を行うＣＰＵ１１２とを備えている。又メモリコントローラ１０４は、ＣＰＵ１１２の作業領域であるＲＡＭ１１３とＣＰＵ１１２が実行するプログラムを格納したＲＯＭ１１４及びデータのエラー検出訂正を行うＥＣＣ回路１１５、バッファ１１６を有している。又バッファ１１６は１ページ分の容量を有する揮発性メモリで構成される。これに加えて不揮発性メモリ１０３とのインターフェースとなるメモリインターフェース１１７、アドレス変換管理部１１８、空きブロック管理部１１９、及び空きクラスタ情報管理部１２０が設けられる。【００３８】
空きブロック管理部１１９は、各物理ブロックが空き物理ブロックか又は使用中の物理ブロックかどうかを示す空きブロック管理テーブルを含んでおり、このテーブルによってアクティブ物理ブロックを管理するものである。【００３９】
空きクラスタ情報管理部１２０は、クラスタのサイズと論理ブロックのサイズから、１つの論理ブロックに含まれるクラスタ数に応じたビットマップデータを保持できる領域を確保すると共に、このビットマップデータを管理する空き単位情報管理部である。なおクラスタのサイズは、メモリアクセス装置１０２で得られるものであり、論理ブロックは、このメモリコントローラで管理するデータの単位である。【００４０】
ここでＣＰＵ１１２はメモリアクセス装置１０２に対して論理ブロックのサイズを通知し、メモリアクセス装置からのデータ管理のクラスタ単位を受信すると共に、データの書き込み時には空きクラスタ情報管理部１２０に保持されるビットマップテーブルに基づいて有効なデータのみをコピー処理する制御部の機能を有している。【００４１】
図３は、本発明の第１の実施の形態における不揮発性メモリ１０３を示した構成図である。不揮発性メモリ１０３は例えばフラッシュメモリで構成される。不揮発性メモリ１０３は例えば２０４８の物理ブロック２０１で構成される。各物理ブロックはデータの消去単位であり、例えば５１２ｋバイトとする。各物理ブロックは複数、例えば１２８のページ２０２で構成されている。各ページはデータの書き込み、読み出し単位であり、例えばユーザデータ領域を４ｋバイトとする。不揮発性メモリ１０３はここでは全体で１Ｇバイトの容量とする。【００４２】
各ページは、ファイルシステム１０５から送られたユーザデータを格納するデータ部２０３と、メモリ管理情報やＥＣＣコードを格納する冗長部２０４とで構成される。メモリコントローラ１０４は１つのページをデータ部２０３と冗長部２０４に区別して各ページを使用する。【００４３】
各ページには１回又は複数回のデータの書き込みが可能であるが、１つのページのデータだけを消去することはできない。つまり、データの消去を行うには、消去単位である物理ブロック内のデータを一度に消去しなければならない。しかし、一旦消去した後は再びページ単位で１回又は複数回の書き込みが可能となる。【００４４】
図４は、本発明の第１の実施の形態における論理ブロックを示した構成図である。メモリコントローラ１０４は論理ブロック３０１をメモリの管理単位として制御を行う。論理ブロック３０１は、１つ又は複数の物理ブロック２０１、この例では２つの物理ブロックから構成された物理ブロック群に対応付けられる仮想的なメモリ空間である。ここでは１論理ブロックを１Ｍバイトとする。論理ブロックと物理ブロック群とは固定的に対応付けられているわけではなく、データを書き換える際には、論理ブロックのデータは別の物理ブロック群に移動することもある。【００４５】
図４に示す例では１つの論理ブロックに２つの物理ブロックが割り当てられている。複数の物理ブロックから論理ブロックを構成した場合、並列書き込みが可能となり、書き込みを高速化できる利点がある。この場合は２ページを同時に並列に書き込めるため、１つの物理ブロックで１つの論理ブロックを構成する場合に比べてデータの書き込み速度は２倍となる。【００４６】
一方、ファイルシステム１０５がファイルを管理する単位はクラスタ３０２であり、一般にクラスタサイズは論理ブロックサイズより小さい。ここでは１クラスタを１６ｋバイトとすると、１論理ブロックは６４クラスタに相当する。【００４７】
図５は本発明の第１の実施の形態におけるアドレス変換管理部１１８の構成を示す図である。アドレス変換管理部１１８は、各論理ブロックＬＢとその論理ブロックのデータを記録している物理ブロックＰＢのアドレスの対応を示すテーブルを管理しており、データを記録するときに論理ブロックに対して物理ブロックを割り当てる。ここでは１つの論理ブロックに対し２つの物理ブロックを割り当てているため、２つの物理ブロックのアドレスが記録される。更に本実施の形態では、物理ブロック内で次に書かれるページを示す次書き込みポインタが同時に記録される。【００４８】
図６は、本発明の第１の実施の形態におけるファイル管理テーブルを示した構成図である。ファイルシステム１０５は１つ又は複数のクラスタから成るファイルを管理する。ファイル管理テーブルの例としては、一般にＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）が広く用いられている。図６では、ファイル管理テーブルの各要素の順番はクラスタ番号に対応しており、各要素は次に続くクラスタ番号を示している。ただし、空きクラスタを表す値（０ｘ００００）や、ファイル終端を表す値（０ｘＦＦＦＦ）が定義されており、それらの値の場合には次に続くクラスタ番号としては扱わない。図６は、クラスタ番号０ｘ００４０、０ｘ００４１、０ｘ００４２の３つのクラスタが１つのファイルＸを構成している例を示している。このＦＡＴはファイル管理情報としてフラッシュメモリの先頭付近の論理アドレスを持つ領域に記憶される。【００４９】
なお、ファイルの管理方式は様々であり、必ずしもここで示したファイル管理テーブルの方式である必要はなく、ファイルとしてクラスタのつながりを管理できるものであればよい。又クラスタ以外の他の管理単位を用いるようにしてもよい。【００５０】
次に本実施の形態の動作について説明する。図７は本実施の形態のメモリアクセス装置と不揮発性記憶装置とのデータのやりとりを示すシーケンス図である。不揮発性記憶装置１０１内のＣＰＵ１１２は、初期化時にファイルシステム１０５に対し、メモリコントローラ１０４が不揮発性メモリ１０３を管理している単位である論理ブロックサイズを通知する（Ｓ１）。次に、ファイルシステム１０５はメモリコントローラ１０４に対し、ファイルシステム１０５がファイルを管理している単位であるクラスタサイズを通知する（Ｓ２）。このステップは初期化時に一度行えばよい。又不揮発性記憶装置１０１とメモリアクセス装置１０２とが常にセットで用いられる場合には、あらかじめ不揮発性記憶装置１０１内のＲＯＭ内にクラスタサイズを記憶しておき、メモリアクセス装置１０２の不揮発性の記憶領域内にメモリコントローラ側の論理ブロックサイズを記録しておくようにしてもよい。【００５１】
なお、メモリコントローラ１０４とファイルシステム１０５で互いに通知しあう情報は必ずしも論理ブロックサイズとクラスタサイズである必要はなく、それらと等価な情報であればよい。例えば、ファイルシステム１０５はメモリコントローラ１０４にクラスタサイズを通知する代わりに、論理ブロックあたりのクラスタ数を通知してもよい。【００５２】
尚この通知の順序は逆としてもよい。例えばメモリコントローラ１０４はファイルシステム１０５のクラスタサイズに応じて論理ブロックのサイズを変化させる場合には、ファイルシステムからクラスタサイズを先に通知するようにしてもよい。【００５３】
空きクラスタ情報管理部１２０は、ここで通知されたクラスタのサイズと論理ブロックのサイズとに基づいてビットマップデータのバッファを準備する。例えばここでは、論理ブロックが１ＭＢでクラスタサイズが１６ｋバイトであるため、１論理ブロックは６４クラスタに相当する。従って、各クラスタ毎に有効又は空きクラスタであることを示す６４ビットのビットマップデータを保持できるバッファを準備しておく。【００５４】
図８は、第１の実施の形態におけるファイル削除を行う前後のファイルシステムのファイル管理テーブル（ＦＡＴ）と、不揮発性記憶装置の論理ブロックの状態を示した図である。図８では６４クラスタで１論理ブロックのサイズに相当しており、クラスタ０ｘ００４０〜０ｘ００７Ｆが１つの論理ブロックＬＢに対応している。又図８（ａ）ではファイルシステムのファイル管理テーブルにおいてクラスタ番号０ｘ００４０〜０ｘ００４２で構成されたファイルＸが存在している場合を示しており、０ｘ００４３から始まる他のファイルＹが存在している。この状態からファイルＸを削除すると、図８（ｂ）に示すようにファイルシステムのファイル管理テーブルでは、ファイルＸが存在していた領域が全て空き状態となる。つまりクラスタ０ｘ００４０〜０ｘ００４２はいずれも０ｘ００００となって空き状態となる。一方、不揮発性記憶装置のこれらのクラスタに対応する論理ブロックの状態はファイルＸを削除する前後で何も変わらない。【００５５】
図８においてファイルＸの削除を行った後に、従来の方法で新たにファイルＺを書き込む前後の状態を図９に示す。始めは図９（ａ）に示すように、不揮発性記憶装置では、論理ブロックＬＢに対し、物理ブロック群ＰＢｓ（Ｏ）が割り当てられていて、データＡ〜Ｄが格納されている。この状態で新たなファイルを書き込むときには、図９（ｂ）に示すようにファイルシステムは、ファイル管理テーブルの空きに新たなファイルのクラスタを割り当てる。この例では、１クラスタのサイズの新たなファイルＺをクラスタ番号０ｘ００４０に割り当てた場合を示している。このとき、０ｘ００４０〜０ｘ００７Ｆに対応する不揮発性記憶装置１０１の論理ブロックＬＢは、書き込みがあった領域は新しいデータＥに置き換わり、それ以外の領域は書き込み前のデータ（この例ではデータＢ，Ｃ，Ｄ）がそのまま保持される。【００５６】
この書き込みに際して、図９（ｂ）に示すように空きブロック管理部１１９の空きブロック管理テーブルをサーチして消去済みの新たな物理ブロック群ＰＢｓ（Ｎ）が確保され、そこに新データＥが書き込まれる。そして元のデータＢ，Ｃ，Ｄは旧物理ブロック群ＰＢｓ（０）から新物理ブロック群ＰＢｓ（Ｎ）にコピーされる。【００５７】
このように別の物理ブロック群に移動する理由は、フラッシュメモリのディフェクトマネージメント（欠陥制御）、ウェアレベリング（書き換え回数平準化）を行うためと、バッファサイズを小さくするためである。フラッシュメモリは消去してからしか書き込めないため、同じ物理ブロック群で小さなデータを書き換えようとすると、コピー処理のために書き換えない大部分のデータを退避するためのブロックサイズ相当の大きなバッファが必要になる。しかし別の物理ブロック群に移動すると、ページサイズ相当の小さなバッファで繰り返しコピー処理を行うことで書き換えられるため、バッファサイズが小さくできる。【００５８】
旧物理ブロック群から必要なデータが全てコピーされて旧物理ブロック群のデータが必要なくなると、旧物理ブロック群は解放され、消去され、再利用される。【００５９】
データＢ〜Ｄのコピー処理は、新データが書き込まれた直後に行う必要はなく、保留しておくことも可能である。保留した場合、１つの論理ブロックのデータが２つの物理ブロック群に分割されて記憶されていることになるが、このような状態の論理ブロックを限りなく作ってしまうと容量が半分になってしまう。そのため、保留状態はあるタイミングで解消する必要がある。【００６０】
ここでコピーするデータＤは使用中クラスタのデータであり有効なファイルデータであるが、データＢ，Ｃはファイル管理テーブル上では空き状態の不要なデータである。そのため、データＢ，Ｃのコピーは不要であるが、コピー処理を行うと時間がかかるだけでなく、フラッシュメモリが劣化してしまう。【００６１】
次にこの欠点を解消した本実施の形態の動作について説明する。図１０は、図８においてファイルＸを削除した後に、本発明の第１の実施の形態における方法で新たにファイルＺを書き込んだときの前後の状態を示した図である。ファイルシステム１０５は、メモリコントローラ１０４に対し書き込みの指示を行う際に、書き込む領域を含む論理ブロック内で、有効なファイルデータが入っていない空きクラスタの情報を不揮発性記憶装置のメモリコントローラ１０４に通知する（Ｓ３）。例えば、０を空きクラスタ、１を使用中クラスタとして、ビットマップで通知するとすれば、クラスタ０ｘ００４０，０ｘ００４１，０ｘ００４２，０ｘ００４３・・・に対し、図１１に示すように０，０，０，１・・・という６４ビットのビットマップデータを通知すればよい。【００６２】
不揮発性記憶装置は、このデータを図２に示す空きクラスタ情報管理部１２０に保持する。これによって不揮発性記憶装置は、空きクラスタに相当する論理ブロック内のデータが不要なデータであり、破棄してよいことを認識する。例えば、この場合は、Ａ〜Ｃが不要なデータであり、破棄してよいことになる。【００６３】
ファイルシステムはその後書き込みコマンドを発行して新データＥの書き込みを指示する（Ｓ４）。書き込み後の不揮発性記憶装置の論理ブロックには、新データＥが書き込まれ、空きクラスタだった領域（Ｂ〜Ｃ）はデータを破棄することにより消去済みデータとなり、使用中クラスタだった領域（Ｄ）は元のデータのままとなる。【００６４】
物理ブロック群でのデータの動きは、消去済みの新物理ブロック群ＰＢｓ（Ｎ）が確保され、そこに新データＥが書き込まれる。そしてデータＢ〜Ｃはコピーされず、データＤのみが旧物理ブロック群から新物理ブロック群にコピーされる。書き込みの後、データＢ〜Ｃがコピーされないので、新たな物理ブロック群には必要なデータのみコピーされ、消去済みの領域が増加し、この領域を今後の書き込みに使用することができる。【００６５】
物理ブロック群のどこからが消去済みかについては、図５に示したアドレス変換管理部１１８の変換テーブルのポインタ領域に次書き込みポインタとして記憶しておき、次に同一論理ブロックに書き込みがあったときに、そこから書き始めるようにする。次書き込みポインタはアドレス変換管理部１１８に保持してもよいが、ＲＡＭに記憶しておくか、フラッシュメモリに書き込んでおくか、消去済みの領域との境界を探索するかにより後で取得するようにしてもよい。【００６６】
なお、書き込み後を示す図１０（ｂ）では、論理ブロック内のデータの順番と、物理ブロック群内のデータの順番が異なるが、これについては冗長部２０４に対応関係を書き込んでおき、それを参照することで対応をとることが可能である。【００６７】
以上のように、本実施の形態によれば、あらかじめメモリコントローラ１０４がファイルシステム１０５に対し論理ブロックサイズを通知し、逆にファイルシステム１０５がメモリコントローラ１０４に対しクラスタサイズを通知する。書き込みの際ファイルシステム１０５が、メモリコントローラ１０４に対し書き込む領域を含む論理ブロック内のクラスタ単位で空きクラスタ情報を通知する。そしてメモリコントローラ１０４が空きクラスタ情報を元に不要なデータを無駄にコピーしないため、書き込み速度を向上させ、不揮発性メモリの書き換え回数を抑制することで信頼性を向上させることができるメモリコントローラ、不揮発性記憶装置、ファイルシステム、及び不揮発性記憶システムを構成することができる。【００６８】
（第２の実施の形態）
図１２は、本発明の第２の実施の形態における不揮発性記憶システムを示した構成図である。不揮発性記憶システム１３０は、ファイルを記憶する不揮発性記憶装置１３１と、不揮発性記憶装置１３１に対しファイルデータの書き込み、読み出し、及びファイル削除を指示するファイルアクセス装置１３２とを含んでいる。不揮発性記憶装置１３１は、フラッシュメモリで構成された不揮発性メモリ１３３、及び不揮発性メモリ１３３に対しユーザデータ及びメモリ管理情報の書き込み及び読み出しを制御するメモリコントローラ１３４を含んでおり、更にファイルデータ及びファイル管理情報を含むユーザデータの書き込み及び読み出しをメモリコントローラ１３４に対して指示するファイルシステム１３５を含んでいる。【００６９】
本発明の第２の実施の形態におけるメモリコントローラ１３４とファイルシステム１３５はそれぞれ、本発明の第１の実施の形態におけるメモリコントローラ１０４とファイルシステム１０５と同様の制御を行う。即ち、ファイルシステム１３５がメモリコントローラ１３４に対し書き込みの指示を行う前に、メモリコントローラ１３４はファイルシステム１３５に対し、メモリコントローラ１３４が不揮発性メモリ１３３を管理している単位である論理ブロックサイズを通知する。逆に、ファイルシステム１３５はメモリコントローラ１３４に対し、ファイルシステム１３５がファイルを管理している単位であるクラスタサイズを通知する。更に、ファイルシステム１３５は、メモリコントローラ１３４に対し書き込みの指示を行う際に、書き込む領域を含む論理ブロック内で、有効なファイルデータが入っていない空きクラスタの情報をメモリコントローラ１３４に通知する。メモリコントローラ１３４は受け取った空きクラスタ情報から、その領域に存在するデータは破棄してよいと判断する。【００７０】
なお、メモリコントローラ１３４とファイルシステム１３５で互いに通知しあう情報は必ずしも論理ブロックサイズとクラスタサイズである必要はなく、それらと等価な情報であればよい。例えば、ファイルシステム１３５はメモリコントローラ１３４にクラスタサイズを通知する代わりに、論理ブロックあたりのクラスタ数を通知してもよい。【００７１】
第１の実施の形態の場合、例えば、不揮発性記憶装置１０１がメモリカードで、メモリアクセス装置１０２とは別の筐体に収められている場合、その間のインターフェースを容易に変更できなかったり、情報の通知にオーバーヘッドが加わったりする。しかしながら、第２の実施の形態の場合、不揮発性メモリ１３３、メモリコントローラ１３４、及びファイルシステム１３５が１つの筐体に収められ、ファイルシステム１３５とメモリコントローラ１３４の一部がソフトウェアで構成されている場合は、情報の通知の容易さから、本発明を適用するのに好都合である。【００７２】
以上のように、本実施の形態によれば、メモリコントローラ１３４がファイルシステム１３５に対し論理ブロックサイズを通知し、逆にファイルシステム１３５がメモリコントローラ１３４に対しクラスタサイズを通知する。また書き込みの際、ファイルシステム１３５がメモリコントローラ１３４に対し書き込む領域を含む論理ブロック内の空きクラスタ情報を通知し、メモリコントローラ１３４が空きクラスタ情報を元に不要なデータを破棄してよいと判断する。これにより、不要なコピー処理をすることがないので書き込み速度を向上させ、不揮発性メモリの書き換え回数を抑制することで信頼性を向上させることができるメモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システムを構成することができる。
【産業上の利用可能性】
【００７３】
本発明のメモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システムは、ファイル書き込みとファイル削除を繰り返した後も書き込み速度の低下が少なく、不揮発性メモリの書き換え回数が少なくてすむため信頼性が高い。本発明は静止画記録再生装置や動画記録再生装置等のポータブルＡＶ機器、あるいは携帯電話等のポータブル通信機器の記録再生用途として有益である。
【図１】
2009001514.tif 000003
【図２】
2009001514.tif 000004
【図３】
2009001514.tif 000005
【図４】
2009001514.tif 000006
【図５】
2009001514.tif 000007
【図６】
2009001514.tif 000008
【図７】
2009001514.tif 000009
【図８】
2009001514.tif 000010
【図９】
2009001514.tif 000011
【図１０】
2009001514.tif 000012
【図１１】
2009001514.tif 000013
【図１２】
2009001514.tif 000014
【国際調査報告】
2009001514.tif 000015
2009001514.tif 000016
2009001514.tif 000017
2009001514.tif 000018