(57)【要約】【課題】記録時のレスポンスの優れたメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムを提供すること。【解決手段】アクセス装置１５０はファイルデータの書き込み時に、不揮発性記憶装置１２０Ａに対して直接ファイルデータを特定するためのファイルＩＤを指定する。不揮発性記憶装置１２０Ａ内のファイル物理管理部１０５は、不揮発性メモリ１１０の物理ブロック番号と該ファイルＩＤとの対応関係や、物理ブロックの使用／未使用などを識別するブロックステータス等を管理するファイル物理管理テーブル１０６を備える。アクセス装置１５０側が未使用クラスタを検出する処理が不要となるので、記録時のレスポンスを向上させることができる。【選択図】図１
2008070929.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに接続され、外部から指定されたファイルＩＤに従いファイルデータを前記不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出すメモリコントローラであって、
前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備えたメモリコントローラ。
【請求項２】
前記メモリコントローラは、
前記不揮発性メモリに記録可能な容量を検出すると共に、外部に該記録可能容量を通知する記録可能容量検出部を更に備えることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記メモリコントローラは、
記録可能容量を検出する記録可能容量検出部と、
ファイルデータの書き込み時に外部から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、外部に記録可否を通知する記録可否判定部とを更に備えることを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記ファイル物理管理部は、
前記不揮発性メモリの各単位領域毎に、記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むことを特徴とする請求項１〜３のいずれか１項記載のメモリコントローラ。
【請求項５】
不揮発性メモリと、不揮発性メモリに接続され、外部から指定されたファイルＩＤに従いファイルデータを前記不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出すメモリコントローラと、を有する不揮発性記憶装置であって、
前記メモリコントローラは、
少なくとも前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備えた不揮発性記憶装置。
【請求項６】
前記メモリコントローラは、
前記不揮発性メモリに記録可能な容量を検出すると共に、外部に該記録可能容量を通知する記録可能容量検出部を更に備えることを特徴とする請求項５に記載の不揮発性記憶装置。
【請求項７】
前記メモリコントローラは、
記録可能容量を検出する記録可能容量検出部と、
ファイルデータの書き込み時に外部から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、外部に記録可否を通知する記録可否判定部とを更に備えることを特徴とする請求項５に記載の不揮発性記憶装置。
【請求項８】
前記ファイル物理管理部は、
前記不揮発性メモリの各単位領域毎に、記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むことを特徴とする請求項５〜７のいずれか１項記載の不揮発性記憶装置。
【請求項９】
アクセス装置と、不揮発性メモリ及びメモリコントローラを有する不揮発性記憶装置と、を具備する不揮発性記憶システムであって、
前記アクセス装置は、
前記不揮発性記憶装置にファイルＩＤを指定してファイルデータの書き込み、読み出しを行うものであり、
前記メモリコントローラは、
少なくとも前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備え、
前記アクセス装置から指定されたファイルＩＤに従いファイルデータを不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出す不揮発性記憶システム。
【請求項１０】
前記メモリコントローラは、
前記不揮発性メモリに記録可能な容量を検出すると共に、前記アクセス装置に該記録可能容量を通知する記録可能容量検出部を更に備えることを特徴とする請求項９に記載の不揮発性記憶システム。
【請求項１１】
前記メモリコントローラは、
記録可能容量を検出する記録可能容量検出部と、
ファイルデータの書き込み時に前記アクセス装置から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された該記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、前記アクセス装置に記録可否を通知する記録可否判定部とを更に備えることを特徴とする請求項９に記載の不揮発性記憶システム。
【請求項１２】
前記メモリコントローラは、
前記ファイル物理管理部は前記不揮発性メモリの各単位領域毎に記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むことを特徴とする請求項９〜１１のいずれか１項記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを備えた半導体メモリカード等の不揮発性記憶装置、不揮発性メモリを制御するメモリコントローラ、及び不揮発性記憶装置にアクセス装置を構成要件として加えた不揮発性記憶システムに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備える不揮発性記憶装置は、半導体メモリカードを中心にその需要が広まっている。半導体メモリカードは、光ディスクやテープメディアなどと比較して高価格なものではあるが、小型・軽量・耐震性・取り扱いの簡便さ等のメリットにより、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体としてその需要が広まっている。この半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリを備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラやパソコン（パーソナルコンピュータ）本体等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対する読み書き制御を行うものとなっている。
【０００３】
このような半導体メモリカードはデジタルスチルカメラ等のアクセス装置に取り付けて用いられる。ファイルデータの管理には、アクセス装置側からメモリカードをリムーバブルディスクと見なして例えばＦＡＴファイルシステム等のファイルシステムを用いている。ＦＡＴファイルシステムは、ファイル・アローケション・テーブル（以下、ＦＡＴという）を用いて「クラスタ」ごとに画像等のコンテンツをファイルデータとして管理している。半導体メモリカードなどの不揮発性記憶装置へファイルデータを書き込む際には、ＦＡＴファイルシステムは、論理アドレス空間上の未使用クラスタにファイルデータをアロケートし、さらにアクセス装置が該ファイルデータと該ファイルデータがアロケートされたクラスタ番号（論理アドレス）とを不揮発性記憶装置に転送する。このようなＦＡＴファイルシステムを用いた不揮発性記憶システムは、例えば特許文献１に詳述されている。このようなＦＡＴによるアロケート管理を、「論理アドレス空間上のファイルアロケート管理」という。
【０００４】
アクセス装置が転送したファイルデータは、不揮発性記憶装置内のメモリコントローラによりフラッシュメモリに書き込まれる。メモリコントローラは、論理アドレスと物理アドレスの対応関係や物理ブロックの状態を保持したテーブル（以下、論理物理管理テーブルという）に基づき前記ファイルデータを記憶するための未使用ブロックを取得して該ファイルデータを書き込み、更にアクセス装置が転送した論理アドレスと書き込んだブロックとの対応関係を該論理物理管理テーブル上で管理するようにする。このような不揮発性記憶装置は、例えば特許文献２に詳述されており、このような論理物理管理テーブルを用いたファイルデータの書き込み管理を、「物理アドレス空間上の論理マッピング管理」という。
【特許文献１】特開２００１―１８８７０１号公報
【特許文献２】特開２００４―１５２３３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、近年、高画質化のニーズに伴い半導体メモリカードの大容量化が加速化してきており、前述したようにＦＡＴ上で管理されたファイルデータを構成するクラスタを特定する処理、あるいは新しくファイルデータをアロケートするための未使用クラスタを検索する処理時間が長くなっており、これを短縮することが大きな課題となってきている。
【０００６】
例えばＦＡＴは１６ビット単位あるいは３２ビット単位毎に、ファイルデータを構成するクラスタの繋がりを表す情報、あるいは使用状態を識別できる情報を保有する。未使用クラスタを特定するためには、未使用クラスタを特定する情報（例えば１６進数で０ｘ００００あるいは０ｘ００００００００の数値）を保有するクラスタをＦＡＴ全体に亘って抽出する処理が必要となる。この未使用クラスタの抽出等のＦＡＴ管理は、通常、アクセス装置が備えているＣＰＵによって行われる。
【０００７】
そのため、例えばデジタルスチルカメラなどにおいて静止画を撮影しようとした場合、半導体メモリカードに該静止画を記録しうる未使用クラスタがあるかどうか、また静止画に対応するファイルデータをどのクラスタにアロケートするかをＦＡＴ上で判断するのに時間を要してしまい、結果としてシャッターチャンスを逃すことがあるという課題を有していた。この課題は、半導体メモリカードの大容量化が進めば進むほど深刻な課題となる。なおこのようなユーザの書き込み操作に対して不揮発性記憶システム側がすばやく書き込みを開始できる応答性のことを、以降「記録時のレスポンス」という。
【０００８】
そこで本発明は、上記問題点に鑑み、「論理アドレス空間上のファイルアロケート管理」を廃止し、アクセス装置側での未使用クラスタの特定等に要していた時間を削減して「記録時のレスポンス」の優れたメモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
この課題を解決するために、本発明のメモリコントローラは、不揮発性メモリに接続され、外部から指定されたファイルＩＤに従いファイルデータを前記不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出すメモリコントローラであって、前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備えたものである。
【００１０】
ここで前記メモリコントローラは、前記不揮発性メモリに記録可能な容量を検出すると共に、外部に該記録可能容量を通知する記録可能容量検出部を更に備えるようにしてもよい。
【００１１】
ここで前記メモリコントローラは、記録可能容量を検出する記録可能容量検出部と、ファイルデータの書き込み時に外部から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、外部に記録可否を通知する記録可否判定部とを更に備えるようにしてもよい。
【００１２】
ここで前記ファイル物理管理部は、前記不揮発性メモリの各単位領域毎に、記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むようにしてもよい。
【００１３】
この課題を解決するために、本発明の不揮発性記憶装置は、不揮発性メモリと、不揮発性メモリに接続され、外部から指定されたファイルＩＤに従いファイルデータを前記不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出すメモリコントローラと、を有する不揮発性記憶装置であって、前記メモリコントローラは、少なくとも前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備えたものである。
【００１４】
ここで前記メモリコントローラは、前記不揮発性メモリに記録可能な容量を検出すると共に、外部に該記録可能容量を通知する記録可能容量検出部を更に備えるようにしてもよい。
【００１５】
ここで前記メモリコントローラは、記録可能容量を検出する記録可能容量検出部と、ファイルデータの書き込み時に外部から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、外部に記録可否を通知する記録可否判定部とを更に備えるようにしてもよい。
【００１６】
ここで前記ファイル物理管理部は、前記不揮発性メモリの各単位領域毎に、記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むようにしてもよい。
【００１７】
この課題を解決するために、本発明の不揮発性記憶システムは、アクセス装置と、不揮発性メモリ及びメモリコントローラを有する不揮発性記憶装置と、を具備する不揮発性記憶システムであって、前記アクセス装置は、前記不揮発性記憶装置にファイルＩＤを指定してファイルデータの書き込み、読み出しを行うものであり、前記メモリコントローラは、少なくとも前記ファイルＩＤと前記不揮発性メモリ内を区分した単位領域との対応づけを行うファイル物理管理部を備え、前記アクセス装置から指定されたファイルＩＤに従いファイルデータを不揮発性メモリに書き込み、前記不揮発性メモリからファイルデータを読み出すものである。
【００１８】
ここで前記メモリコントローラは、前記不揮発性メモリに記録可能な容量を検出すると共に、前記アクセス装置に該記録可能容量を通知する記録可能容量検出部を更に備えるようにしてもよい。
【００１９】
ここで前記メモリコントローラは、記録可能容量を検出する記録可能容量検出部と、ファイルデータの書き込み時に前記アクセス装置から指定された前記ファイルデータのファイルサイズと前記記録可能容量検出部によって保持された該記録可能容量に基づき、前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定すると共に、前記アクセス装置に記録可否を通知する記録可否判定部とを更に備えるようにしてもよい。
【００２０】
ここで前記メモリコントローラは、前記ファイル物理管理部は前記不揮発性メモリの各単位領域毎に記録しているファイルＩＤとその領域のステータスを少なくとも記憶するファイル物理管理テーブルを含むようにしてもよい。
【発明の効果】
【００２１】
本発明によれば、アクセス装置側から不揮発性記憶装置に対して読み書きしたいファイルの指定を行うアクセス方法（以降ファイルレベルアクセス方法とする）に基づいたものであり、ファイル物理管理部が、アクセス装置の指定したファイルＩＤに対してデータ記録単位との対応づけを特定するようにした。このため、従来のようにアクセス装置側でＦＡＴによる論理アドレス空間上における未使用クラスタの管理を検索してマッピングすることが不要となり、「記録時のレスポンス」を向上させることができる。
【００２２】
さらに、記録可能容量を検出するとともにアクセス装置に該記録可能容量を通知する記録可能容量検出部を更に備えることにより、あるいは、記録可能容量を検出する記録可能容量検出部と、ファイルデータの書き込み時にアクセス装置から指定された前記ファイルデータのファイルサイズと該記録可能容量に基づき前記不揮発性メモリに該ファイルデータを書き込める領域があるか否かを判定してアクセス装置に記録可否を通知する記録可否判定部とをさらに備えることにより、アクセス装置のファイルデータ書き込み処理に対して不揮発性メモリ側の容量不足で書き込めなかったといった不具合、即ち無意味にユーザを待たせるといった状況を未然に回避することができる。
【発明を実施するための最良の形態】
【００２３】
（実施の形態１）
図１は、本発明の実施の形態１における不揮発性記憶システムを示したブロック図である。なお、本発明の特徴的なブロックにはハッチングを施す。図１において、不揮発性記憶システムは、アクセス装置１５０と不揮発性記憶装置１２０Ａとから構成され、不揮発性記憶装置１２０Ａは、メモリコントローラ１００Ａと不揮発性メモリ１１０Ａを含む。メモリコントローラ１００Ａはホストインターフェース１０１、バッファ１０２、読み書き制御部１０３、ＣＰＵ部１０４、ファイル物理管理部１０５、記録可能容量検出部１０７Ａを含む。
【００２４】
ホストインターフェース（ホストＩＦ）１０１は、アクセス装置１５０からファイルデータの書き込みや読み出しに係るコマンドあるいはファイルＩＤ等を受信するとともに、ファイルデータをアクセス装置１５０との間で送受信するブロックである。
【００２５】
読み書き制御部１０３は、ファイル物理管理部１０５の指示により、バッファ１０２に一時記憶されたデータを不揮発性メモリ１１０に書き込んだり、不揮発性メモリ１１０に記憶されたデータをバッファ１０２に読み出すものである。
【００２６】
ＣＰＵ部１０４は、メモリコントローラ１００Ａの全体を制御するものである。
【００２７】
ファイル物理管理部１０５は、アクセス装置１５０から受信したコマンドファイルＩＤ等に基づいて不揮発性メモリ１１０の書き込み先あるいは読み出し元となる物理ブロック番号を決定し管理するものであり、後述するファイル物理管理テーブル１０６を含む。
【００２８】
記録可能容量検出部１０７Ａは、ファイル物理管理テーブル１０６に基づき未使用ブロック数をカウントすることによって記録可能容量、即ち不揮発性メモリ１１０に新規にファイルデータを書き込むことのできる領域の容量を検出し、さらにアクセス装置１５０に記録可能容量を通知するものである。
【００２９】
不揮発性メモリ１１０はフラッシュメモリであり、ユーザ領域として例えば１Ｇバイトの容量を有する。不揮発性メモリ１１０は消去単位を物理ブロックとすると、複数の物理ブロックから成り立っている。図２は、物理ブロックの構成を示す説明図である。1つの物理ブロックは、そのデータの記録のサイズを２５６ｋバイトとし、ページ番号ＰＮ０〜ＰＮ１２７までの１２８ページから成る。また各ページは書き込み単位であって、２ｋバイトのデータ領域と、６４バイトの管理領域とからなる。ここでページ番号ＰＮ０の管理領域には、ファイルの管理情報、即ち後述するファイル名やファイルサイズパラメータ、ファイル構成番号、ブロックステータス等が保持されている。
【００３０】
アクセス装置１５０は、不揮発性記憶装置１２０Ａへのファイルデータの書き込み及び読み出しを行う装置であり、少なくとも記録可能容量を表示する表示部１５１を含む。なお、簡単のためファイルデータの最小単位を物理ブロックサイズと同じ２５６ｋバイトとする。したがって、例えば１Mバイトの静止画を記録する場合は、４つの物理ブロックを使用することとなる。
【００３１】
以上のように構成された本発明の不揮発性記憶システムについて、電源立ち上げ時の初期化処理と、通常動作時のファイルデータ読み書き処理にわけて説明する。
【００３２】
［電源立ち上げ時の初期化処理］
アクセス装置１５０の電源の立ち上げにより、外部バスを通じて不揮発性記憶装置１２０Ａの電源が立ち上がり、不揮発性記憶装置１２０Ａは初期化処理に移行する。
【００３３】
図３は、メモリコントローラ１００Ａの処理を示すフローチャートである。図３において、ＣＰＵ部１０４はバッファ１０２のクリア処理等の基本初期化処理を実行する（Ｓ１００）。その後、各物理ブロックの先頭ページの管理領域を検索することにより、ファイル物理管理テーブル１０６を作成する（Ｓ１０１）。具体的には、ＣＰＵ部１０４は読み書き制御部１０２を介して不揮発性メモリ１１０内の全物理ブロックのページＰＮ０の管理領域を読み出す。そして管理領域に記憶された管理情報から、ファイル物理管理部１０５内のＲＡＭ上にファイル物理管理テーブル１０６を作成する。以降、ファイルデータの読み書き処理においては、ファイル物理管理テーブル１０６を用いて物理ブロック番号の決定を行う。
【００３４】
次に、ＣＰＵ部１０４は記録可能容量検出部１０７Ａに制御を渡す。記録可能容量検出部１０７Ａは、ファイル物理管理テーブル１０６中の後述するブロックステータスの値に基づいて未使用ブロックの総数を検出し、２５６ｋＢを乗じて記録可能容量を算出する。そしてその値を一時保持し、アクセス装置１５０に該記録可能容量を通知する（Ｓ１０２）。こうして電源立ち上げ時の初期化処理を終える。
【００３５】
アクセス装置１５０側は、通知された記録可能容量に基づき、不揮発性記憶装置１２０に記録できるファイルサイズを認識すると共に、アクセス装置１５０内の表示部１５１に記録可能容量を表示することにより、ユーザに記録可能容量を通知する。
【００３６】
その後、制御をＣＰＵ１０４に戻し、アクセス装置１５０からホストインターフェース１０１を介した読み書き指示の転送がなされるまでウェイト状態となる（Ｓ１０３，Ｓ１０４）。読み書き指示があった場合は、ファイルデータの書き込み処理（Ｓ１０５）やファイルデータの読み出し処理を実行する（Ｓ１０６）。データの書き込み時には更に記録可能容量検出部１０７Ａがファイル物理管理テーブル１０６に基づき記録可能容量を検出し、記録可能容量を記録可能容量検出部１０７の内部に一時保持し、アクセス装置１５０に記録可能容量を通知した後（Ｓ１０７）、再びＳ１０３に戻る。
【００３７】
ここで、Ｓ１０１において作成されるファイル物理管理テーブル１０６の内容について、図４Ａ〜図４Ｃを用いて説明する。ファイル物理管理テーブル１０６は不揮発性メモリの物理ブロック番号ＰＢＮ０〜ＰＢＮ４０９５までの全ての物理ブロックについて、領域１０６ａにファイルＩＤ、領域１０６ｂにファイルサイズパラメータ、領域１０６ｃにファイル構成順番号、領域１０６ｄにブロックステータスを記憶している。ここではファイルを特定するためのファイルＩＤとして、標準テキストフォーマットで表現されるファイル名とする。なお、ファイル番号としても構わない。
【００３８】
図４Ａは初期化処理直後のファイル物理管理テーブル１０６を示す。不揮発性メモリ１１０には、図４Ａに示すようにファイル名がファイルＡ〜ファイルＷ（アルファベット順に２３個）のファイルデータが記録されている。この中で、例えばファイルＡは、ファイルサイズが２５６ｋバイトのファイルデータであり、物理ブロックＰＢ１に記録されている。ファイルＢは、ファイルサイズが１Ｍバイトのファイルであり、物理ブロックＰＢ２、ＰＢ１０、ＰＢ１２、ＰＢ４０９５に記録されている。ファイルサイズパラメータとは、例えばファイルサイズが２５６ｋバイトの場合は値１、ファイルサイズが２５６ｋバイトより大きく５１２ｋバイトの場合は値２といったように、ファイルサイズを２５６ｋバイトで割り算した商となる。ファイル構成順番号とは、アクセス装置１５０から転送されるファイルデータの先頭の２５６ｋバイトが値０、その次の２５６ｋバイトが値１といったように、ファイルデータが書き込まれる時間的順序によって決まるものである。従って、ファイルＢのように複数の物理ブロックに跨って記録されているファイルは、ファイル名の横の括弧内にファイル構成順番号０，１，２，３を付けている。ファイルＡのように１つの物理ブロックに記録されているファイルは、ファイル構成順番号は０となる。
【００３９】
更にファイル物理管理テーブル１０６はブロックステータスを保持する領域１０６ｄを有している。このブロックステータスは０を使用ブロックとし、１を未使用ブロック（未消去）、２を不良ブロック、３を未使用ブロック（消去済み）とし、２ビットで各物理ブロックの状態を表示するものである。なお、Ｓ１０２の未使用ブロックの抽出においては、ブロックステータスを２ビットの２進数で表現した場合、値１及び値３ともに上位ビット側が値１となるので、上位ビットを検索するだけで未使用ブロックの総数を検出することができる。なお＊は、いかなる値でも構わないことを表す記号であり、実際には過去の不揮発性記憶装置１２０の使用状態によって何らかの値に決まるものである。
【００４０】
ファイル物理管理部１０５は、物理ブロックの先頭ページの管理領域に記録されたファイル名等の情報を検索することにより、図４Ａに示すようなファイル物理管理テーブル１０６を作成する。各物理ブロックの先頭ページ、即ちページＰＮ０の管理領域（図２）の管理情報は、読み書き制御部１０３を介して不揮発性メモリ１１０内の物理ブロックのデータ領域にファイルデータを書き込む時に更新されて書き込まれる。図４ＢはファイルＸを新規に書き込んだ直後、図４ＣはファイルＡを書き換えた直後のファイル物理管理テーブル１０６を示す。
【００４１】
図５Ａ〜図５Ｃは、不揮発性メモリ１１０内の物理ブロックの使用状態を示す説明図である。図５Ａは、ファイル物理管理テーブル１０６を作成する直前の不揮発性メモリ１１０の物理ブロック内の使用状態であり、図４Ａに対応している。図５ＢはファイルＸを新規に書き込んだ直後、図５ＣはファイルＡを書き換えた直後の物理ブロックの使用状態であり、夫々図４Ｂ，図４Ｃに対応している。ハッチングを施した物理ブロックは使用ブロックであり、またハッチングを施していない物理ブロックは未使用ブロックである。なお簡単のため、本実施の形態においては不良ブロック即ちブロックステータスが値２となる物理ブロックは無いものとして説明する。工場出荷直後は全ての物理ブロックは消去済みであり、不揮発性記憶装置１２０へのファイルデータの書き込みやファイルデータの消去を繰り返していくうちに、未使用ブロックのうち、消去済みの物理ブロックの割合は減っていく。なお、ファイルデータの消去とは、アクセス装置１５０が、既存のファイルデータの消去指示を行い、これに対応して、ファイル物理管理部１０５がファイル物理管理テーブル１０６中のブロックステータスを値０から値１に変更する処理である。即ち物理ブロックのデータを物理的に消去するものではない。
【００４２】
［通常動作時のファイルデータの書き込み処理］
次に、通常動作時のファイルデータの書き込み処理について説明する。図６Ａは、ファイルデータの書き込みにおけるアクセス装置１５０と不揮発性記憶装置１００間での各種情報の送受信を示すタイムチャートである。
【００４３】
ファイルデータの書き込みにおいては、図６Ａに示すように、アクセス装置１５０から書き込みコマンド、ファイル名、ファイルサイズ、ファイルデータが不揮発性記憶装置１２０に送信される。これらの情報はホストインターフェース１０１を介してＣＰＵ部１０４、ファイル物理管理部１０５に通知される。ファイルデータはバッファ１０２に一時保持される。図３のＳ１０３において、ＣＰＵ部１０４は、アクセス装置１５０から書き込みコマンドが送信されたことを認識すると、Ｓ１０５の処理において図７に示す書き込み処理を選択し、制御をファイル物理管理部１０５に渡す。
【００４４】
図７は、通常動作時のファイルデータの書き込み処理を示すフローチャートである。書き込み処理を開始すると、ファイル物理管理部１０５は、ファイルサイズに基づきファイルデータの書き込み先の物理ブロック数Ｎを決定する（Ｓ２０１）。次いでファイル物理管理テーブル１０６を参照し、書き込み先ブロックとして未使用ブロックをＮ個取得する（Ｓ２０２）。例えば図４Ｂ及び図５Ｂに示すように、ファイルサイズが５１２ｋバイトのファイルＸを新規に書き込む場合においては、Ｎは値２となる。ファイル物理管理部１０５はファイル物理管理テーブル１０６のＰＢ０の位置から昇順に未使用ブロックを検索する。ここではファイルＸの書き込み先としてＰＢ０とＰＢ３を取得し、書き込みをＰＢ０，ＰＢ３の順とすることを決定する。更にファイル物理管理テーブル１０６を更新する（Ｓ２０３）。このファイル物理管理テーブルの更新ではファイルＩＤ、ファイルサイズパラメータ、ファイル構成順番号のみを更新し、ブロックステータスは更新しないものとする。なお未使用ブロックの検索位置は、初期化処理直後はＰＢ０の位置であり、その後は前回の検索の最後に取得した未使用ブロックの物理ブロック番号の次の物理ブロック番号から開始する。こうすればＰＢ０〜ＰＢ４０９５を巡回的に検索することができ、特定物理ブロックへの書き換え集中の回避、即ちウェアレベリングを実現することができる。
【００４５】
次に、ファイル物理管理部１０５が、読み書き制御部１０３に書き込み先ブロックの物理ブロック番号管理情報、即ちファイル名、ファイルサイズパラメータ、ファイル構成順番号、及びブロックステータスを転送する（Ｓ２０４）。次いで読み書き制御部１０３が、該書き込み先の物理ブロックを消去した後、バッファ１０２に保持されているファイルデータを書き込み先ブロックのデータ領域へ書き込む。同時に書き込み先ブロックの管理領域に、ファイル名とファイルサイズパラメータとファイル構成順番号とブロックステータスを書き込む（Ｓ２０５）。
【００４６】
次に、ファイル物理管理部１０５が、アクセス装置１５０の指定したファイル名が既にファイル物理管理テーブル１０６に保持されているものかどうかを検索し、該ファイル名とファイル物理管理テーブル１０６に保持されているファイル名を逐次比較する（Ｓ２０６，Ｓ２０７）。これは新規書き込みであるか書き換えであるかを判別するためであり、書き換え処理でなければ単にステップＳ２０９において、ファイル物理管理部１０５はファイル物理管理テーブル１０６のデータを書き込んだ新物理ブロックのブロックステータスを更新する。前述した場合にはファイル物理管理テーブル１０６は図４Ａから図４Ｂの状態に更新されることとなる。
【００４７】
次にファイルＸの新規書き込みの後にファイルＡの書き換えを行うものとする。ファイルＡはファイルサイズが２５６ｋバイトであるので、未使用ブロック数Ｎは値１となる（Ｓ２０１）。ファイル物理管理部１０５は図４Ｂに示すファイル物理管理テーブル１０６のＰＢ４の位置から昇順に未使用ブロックを検索することにより、ファイルＡの書き換え先としてＰＢ６を取得し、ファイル物理管理テーブル１０６を更新する（Ｓ２０２，Ｓ２０３）。
【００４８】
ファイルＡの書き換えの場合は、図４Ｂに示すファイル物理管理テーブル１０６のＰＢ１にファイルＡが存在しているので、アクセス装置１５０からのファイルＡの書き込みコマンドは、ファイルＡの書き換え処理であると判定する（Ｓ２０７）。
【００４９】
書き換え処理と判定した場合は、ファイル物理管理部１０５が、アクセス装置１５０の指定したファイル名が保持されている位置のテーブル１０６のブロックステータスのうち値０の物理ブロック（旧物理ブロック）を値１に変更し（Ｓ２０８）、次いで値１又は３の物理ブロック（新物理ブロック）を０となるようファイル物理管理テーブル１０６を更新し（Ｓ２０９）、処理を終わる。例えばファイルＡの書き換えの場合は、図４Ｃに示すように旧物理ブロックＰＢ１のブロックステータスを値１に変更し、新物理ブロックＰＢ６のブロックステータスを値０に変更することとなる。なお、ファイル名の逐次比較は、比較的時間を要してしまう場合があるが、Ｓ２０４の不揮発性メモリ１１０の書き込み（フラッシュメモリのプログラムビジー期間）中に実行できるので、不揮発性記憶装置１２０Ａ全体の処理速度に悪影響を及ぼすものではない。
【００５０】
［通常動作時のファイルデータの読み出し処理］
図６Ｂはファイルデータの読み出しにおけるタイムチャートである。ファイルデータの読み出しにおいては、図６Ｂに示すように、アクセス装置１５０は読み出しコマンド、ファイル名、オフセット、読み出しサイズを不揮発性記憶装置１２０Ａに送信し、不揮発性記憶装置１２０Ａから読み出されたファイルデータを受信する。ここでオフセットとは、ファイルを部分的に読み出すため、読み出し開始位置を示すパラメータである。本実施の形態においては、オフセットや読み出しサイズの単位は、物理ブロックサイズ単位とし、夫々ファイル構成順番号とファイルサイズパラメータに対応する。前述した書き込み処理と同様、アクセス装置１５０から送信されたファイル名等の情報はホストインターフェース１０１を介してＣＰＵ部１０４及びファイル物理管理部１０５に通知される。図３のＳ１０４において、ＣＰＵ部１０４は、アクセス装置１５０から読み出しコマンドが送信されたことを認識すると、読み出し処理（Ｓ１０６）を選択し、制御をファイル物理管理部１０５に渡す。
【００５１】
図８は、通常動作時のファイルデータの読み出し処理を示すフローチャートである。図８において、ファイル物理管理部１０５が、アクセス装置１５０の指定したファイル名とファイル物理管理テーブル１０６に保持されたファイル名を比較検索することにより、該ファイル名に対応するファイルデータが記録されている物理ブロック番号を特定する（Ｓ３０１）。例えばファイルＢの場合は、物理ブロックＰＢ２、ＰＢ１０、ＰＢ１２、ＰＢ４０９５を特定する。
【００５２】
次に、ファイル物理管理部は、アクセス装置１５０の指定したオフセットと読み出しサイズに基づき、読み出し元の物理ブロック番号を特定し（Ｓ３０２）、読み書き制御部１０３に該物理ブロック番号を転送する（Ｓ３０３）。例えばファイルＢの読み出しにおいて、オフセットの値が値１、読み出しサイズの値が値１の場合、読み出し元の物理ブロックはＰＢ１０となる。なお、オフセットや読み出しサイズの単位は物理ブロックに限定されるものではなく、例えばページサイズ等の細かい単位で指定することも可能である。
【００５３】
次にファイル物理管理部１０５は読み書き制御ブロック１０３に読み出し元の物理ブロック番号を転送する（Ｓ３０３）。そうすれば読み書き制御部１０３は、ファイル物理管理部１０５が指定した物理ブロックからバッファ１０２にファイルデータを読み出す（Ｓ３０４）。次にＣＰＵ部１０４がバッファ１０２からアクセス装置１５０にデータを転送する（Ｓ３０５）。
【００５４】
以上のように、実施の形態１の不揮発性記憶システムにおいては、従来のようなＦＡＴ等による「論理アドレス空間上のファイルアロケート管理」を廃止し、アクセス装置１５０がファイルデータの読み書きに処理において、不揮発性記憶装置１２０Ａに対して直接ファイルデータを特定するためのファイル名等のファイルＩＤを指定し、不揮発性記憶装置１２０Ａ内のファイル物理管理部１０５が、不揮発性メモリ１１０の物理アドレス（物理ブロック番号）と該ファイル名との対応関係や、物理ブロックの使用／未使用などを識別するブロックステータス等を管理するファイル物理管理テーブル１０６を備えた。そのため、アクセス装置１５０側が従来のようなＦＡＴ上で未使用クラスタを検出する処理が不要となり、結果的に「記録時のレスポンス」を向上させることが可能となる。
【００５５】
更に記録可能容量検出部１０７Ａがブロックステータスに基づいて検出した未使用ブロックの数に２５６ｋＢを乗じて記録可能容量としてアクセス装置１５０に通知するようにしたので、アクセス装置のファイルデータ書き込み処理に対して不揮発性メモリ側の容量不足で書き込めなかったといった不具合、即ち無意味にユーザを待たせるといった状況を未然に回避することができる。
【００５６】
なお、図３では初期化処理とファイルの書き込み毎に、記録可能容量検出部１０７Ａが記録可能容量をアクセス装置１５０に通知するようにしたが（Ｓ１０２，Ｓ１０７）、初期化処理でのみ記録可能容量をアクセス装置に通知するようにしても構わない。この場合にはアクセス装置は初期化時に得られた記録可能容量を保持しておき、ファイルの記録毎に記録可能容量から記録分のデータサイズを減少させて、その時点での記録可能容量を保持しておく必要がある。
【００５７】
（実施の形態２）
次に本発明の実施の形態２について図９を用いて説明する。実施の形態２では不揮発性記憶装置のメモリコントローラが前述した実施の形態１とは異なっている。前述した実施の形態１と同一部分は同一符号を付して詳細な説明を省略する。この実施の形態では不揮発性記憶装置１２０Ｂ内のメモリコントローラ１０Ｂは、記録可能容量検出部１０７Ａに代えて記録可能容量検出部１０７Ｂと記録可否判定部１０８を有している。
【００５８】
記録可能容量検出部１０７Ｂは、ファイル物理管理テーブル１０６に基づき未使用ブロック数をカウントすることによって記録可能容量即ち不揮発性メモリ１１０に新規にファイルデータを書き込むことのできる領域の容量を検出して保持するものである。
【００５９】
記録可否判定部１０８は、記録可能容量検出部１０７Ｂが検出した記録可能容量と、アクセス装置１５０の書き込みコマンドに伴って指定されたファイルサイズとを比較することによって、該ファイルサイズ分のファイルデータの書き込みができるか否かを判定し、さらにアクセス装置１５０に可否判定結果である記録可否フラグを通知するものである。
【００６０】
次に本発明の実施の形態２の動作について図１０のフローチャートを用いて説明する。この実施の形態では図１０のフローチャートにおいて基本初期化処理Ｓ１００，Ｓ１０１は図３での処理と同様であり、Ｓ１１２において記録可能容量検出部１０７はファイル物理管理テーブル１０６に基づき記録可能容量を検出してそれを一時保持する。又この初期化処理の終了後に通常動作時に移り、読み書きの指示があれば（Ｓ１０３，Ｓ１０４）、ファイルのデータ読み書き処理を実行する（Ｓ１０５，Ｓ１０６）。又データの書き込みの実行後にＳ１１７において記録可能容量検出部１０７Ｂがファイル物理管理テーブル１０６に基づき記録可能容量を検出して記録可能容量を更新し、その容量を一時保持する。
【００６１】
次に記録時に処理について図１１のフローチャートを用いて説明する。図１１において、記録可否判定部１０８が、アクセス装置１５０の指定したファイルサイズと、記録可能容量検出部１０７Ｂが検出し一時保持した記録可能容量とを比較することにより、記録可否を判定し、記録可否フラグをアクセス装置１５０に通知する（Ｓ４０１）。次に、不揮発性記憶装置１２０Ｂは記録可否の判定結果が記録不可の場合は書き込みを行わずに処理を終了する（Ｓ４０２）。アクセス装置１５０はこれから送信しようとするファイルデータが記録できるか否かを事前に知ることができる。もし記録可否フラグが記録否を示す値であれば、アクセス装置１５０はファイルデータの送信を中止し、即座に表示部１５１を介してユーザに記録できない旨を通知することが可能となる。
【００６２】
記録可能の場合の処理については、前述した図７のフローチャートのステップＳ２０１以下と同様となる。
【００６３】
実施の形態２では、記録可否判定部１０８が記録可能容量とアクセス装置１５０が指定ファイルサイズを比較することにより記録可否を判定し、それをアクセス装置１５０に通知するようにしたので、アクセス装置のファイルデータ書き込み処理に対して不揮発性メモリ側の容量不足で書き込めなかったといった不具合、即ち無意味にユーザを待たせるといった状況を未然に回避することができる。
【００６４】
また、ファイル物理管理テーブル１０６は、ファイル名と物理ブロック番号とを対応づける機能を有するテーブルであるが、物理ブロック番号に限定されるものではない。ページ番号などメモリ空間を任意のサイズに区分した単位領域とファイル名とを対応づけるようにしてもよい。この場合にはファイル物理管理部は区分した単位領域に基づいてファイルデータを管理することとなる。例えば不揮発性メモリ１１０としてフラッシュメモリと異なり物理ブロックの概念を有さないメモリ、例えば強誘電体メモリ等の不揮発性ＲＡＭにおいては、メモリ空間を所定サイズに区分した単位領域を定義し、ファイルＩＤと該単位領域とを対応づけることができる。
【産業上の利用可能性】
【００６５】
本発明は、不揮発性記憶システムの「記録時のレスポンス」を向上させる方法を提案したものであり、半導体メモリカード等の不揮発性記憶装置を使用した静止画記録再生装置あるいは携帯電話において有益である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態１における不揮発性記憶システムを示すブロック図
【図２】物理ブロックの構成を示す説明図
【図３】メモリコントローラ１００の処理を示すフローチャート
【図４Ａ】ファイル物理管理テーブル１０６を示すメモリマップ（その１）
【図４Ｂ】ファイル物理管理テーブル１０６を示すメモリマップ（その２）
【図４Ｃ】ファイル物理管理テーブル１０６を示すメモリマップ（その３）
【図５Ａ】不揮発性メモリ１１０内の物理ブロックの使用状態を示す説明図（その１）
【図５Ｂ】不揮発性メモリ１１０内の物理ブロックの使用状態を示す説明図（その２）
【図５Ｃ】不揮発性メモリ１１０内の物理ブロックの使用状態を示す説明図（その３）
【図６Ａ】ファイルデータの書き込みにおけるアクセス装置１５０から不揮発性記憶装置１２０Ａへの各種情報の送信を示すタイムチャート
【図６Ｂ】ファイルデータの読み出しにおけるアクセス装置１５０と不揮発性記憶装置１２０Ａ間での各種情報の送受信を示すタイムチャート
【図７】通常動作時のファイルデータの書き込み処理を示すフローチャート
【図８】通常動作時のファイルデータの読み出し処理を示すフローチャート
【図９】本発明の実施の形態２における不揮発性記憶システムを示すブロック図
【図１０】本実施の形態のメモリコントローラの処理を示すフローチャート
【図１１】本実施の形態の通常動作時のファイルデータの書き込み処理を示すフローチャート
【符号の説明】
【００６７】
１００Ａ，１００Ｂ  メモリコントローラ
１０１  ホストインターフェース
１０２  バッファ
１０３  読み書き制御部
１０４  ＣＰＵ部
１０５  ファイル物理管理部
１０６  ファイル物理管理テーブル
１０７Ａ，１０７Ｂ  記録可能容量検出部
１０８  記録可否判定部
１１０  不揮発性メモリ
１２０Ａ，１２０Ｂ  不揮発性記憶装置
１５０  アクセス装置
１５１  表示部
【図１】
2008070929.tif 000003
【図２】
2008070929.tif 000004
【図３】
2008070929.tif 000005
【図４Ａ】
2008070929.tif 000006
【図４Ｂ】
2008070929.tif 000007
【図４Ｃ】
2008070929.tif 000008
【図５Ａ】
2008070929.tif 000009
【図５Ｂ】
2008070929.tif 000010
【図５Ｃ】
2008070929.tif 000011
【図６Ａ】
2008070929.tif 000012
【図６Ｂ】
2008070929.tif 000013
【図７】
2008070929.tif 000014
【図８】
2008070929.tif 000015
【図９】
2008070929.tif 000016
【図１０】
2008070929.tif 000017
【図１１】
2008070929.tif 000018