(57)【特許請求の範囲】
【請求項１】
アクセス装置に接続されて使用される半導体メモリカードであって、
制御信号及びデータをアクセス装置に対して送信し、アクセス装置からの信号を受信するホストインターフェース部と、
複数の連続するセクタがデータ消去の最小単位である消去ブロックとしてグループ化される不揮発性メモリと、
前記不揮発性メモリに対するデータの消去、書き込み、読み出しを制御するメモリコントローラと、
少なくとも前記アクセス装置から前記半導体メモリカードにアクセスする際の条件であるアクセス条件及び前記アクセス条件に従ったアクセスを前記アクセス装置が行った場合に前記半導体メモリカードが発揮するアクセス性能に関する情報を格納するカード情報格納部を含むカード情報格納用のメモリと、
前記インターフェース部を介して得られた制御信号に基づいて各部を制御する制御部と、を具備し、前記アクセス条件は少なくともアクセス時の最低連続領域サイズを含むことを特徴とする半導体メモリカード。
【請求項２】
前記カード情報格納部は、
前記半導体メモリカード内部の物理特性に関する第１の情報と、
前記アクセス条件に関する第２の情報と、
前記アクセス性能に関する情報として、前記半導体メモリカードのアクセス速度に関する第３の情報と、
前記半導体メモリカードの異常処理に関する第４の情報と、のうち、少なくとも前記第２及び第３の情報を格納することを特徴とする請求項１記載の半導体メモリカード。
【請求項３】
前記カード情報格納部の第３の情報は、
前記アクセス速度に関する情報として、前記半導体メモリカードの速度性能を示すフラグを含むことを特徴とする請求項２記載の半導体メモリカード。
【請求項４】
前記カード情報格納部は、少なくとも
前記半導体メモリカード内部の物理特性に関する第１の情報と、
前記アクセス条件に関する第２の情報と、
前記アクセス性能に関する情報として、前記半導体メモリカードのアクセス速度に関する第３の情報と、を格納することを特徴とする請求項１記載の半導体メモリカード。
【請求項５】
前記制御部は、
前記アクセス装置からの要求に応じ、前記半導体メモリカードにアクセスするためのアクセス条件に関する情報、及び前記アクセス条件で半導体メモリカードにアクセスした際におけるアクセス速度に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項６】
前記制御部は、
前記アクセス装置が指定したアクセス条件に関する情報に応じ、前記アクセス条件で前記半導体メモリカードにアクセスした際におけるアクセス速度に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項７】
前記制御部は、
前記アクセス装置が指定したアクセス速度に関する情報に応じ、前記アクセス速度を満たすために必要となる前記半導体メモリカードへのアクセス条件に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項８】
前記制御部は、
前記アクセス装置が指定したアクセス条件に関する情報と、アクセス速度に関する情報を前記カード情報格納部より読み出して前記アクセス条件で前記半導体メモリカードにアクセスした際に、前記アクセス速度が満たされるか否か判定し、判定結果を前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項９】
前記カード情報格納部の第３の情報は、
前記アクセス速度に関する情報として、前記半導体メモリカードの速度性能を示すフラグを含むことを特徴とする請求項４記載の半導体メモリカード。
【請求項１０】
前記カード情報格納部は、
前記第３の情報として、前記半導体メモリカードの消費電力量の複数のレベルについて前記半導体メモリのアクセス速度に関する情報を有するものであり、
前記制御部は、
前記アクセス装置からの要求及び消費電力量レベルの指定に応じ、前記半導体メモリカードにアクセスするためのアクセス条件に関する情報、及び前記アクセス条件で半導体メモリカードにアクセスした際におけるアクセス速度に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項１１】
前記カード情報格納部は、
前記第３の情報として、前記半導体メモリカードの消費電力量の複数のレベルについて前記半導体メモリのアクセス速度に関する情報を有するものであり、
前記制御部は、
前記アクセス装置が指定したアクセス条件に関する情報及び消費電力量レベルの指定に応じ、前記アクセス条件及び指定電力量レベルで前記半導体メモリカードにアクセスした際におけるアクセス速度に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項１２】
前記カード情報格納部は、
前記第３の情報として、前記半導体メモリカードの消費電力量の複数のレベルについて前記半導体メモリのアクセス速度に関する情報を有するものであり、
前記制御部は、
前記アクセス装置が指定したアクセス速度及び消費電力量レベルの指定に関する情報に応じ、前記アクセス速度を満たすために必要となる前記半導体メモリカードへのアクセス条件に関する情報を前記カード情報格納部より読み出して、前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項１３】
前記カード情報格納部は、
前記第３の情報として、前記半導体メモリカードの消費電力量の複数のレベルについて前記半導体メモリのアクセス速度に関する情報を有するものであり、
前記制御部は、
前記アクセス装置が指定したアクセス条件に関する情報及び消費電力量レベルの指定と、アクセス速度に関する情報を前記カード情報格納部より読み出して、前記アクセス条件及び指定した電力量レベルで前記半導体メモリカードにアクセスした際に、前記アクセス速度が満たされるか否か判定し、判定結果を前記アクセス装置に送信することを特徴とする請求項４記載の半導体メモリカード。
【請求項１４】
前記カード情報格納部は、
シーケンシャルアクセス及びランダムアクセスを含む複数のアクセス方法の夫々について、前記半導体メモリカードのカード内部の各種の処理時間と処理単位サイズの関係を保持するアクセス性能基礎情報表を有するものであり、
前記制御部は、前記アクセス装置からの要求に応じて前記アクセス性能基礎情報表を前記アクセス装置に送信することを特徴とする請求項１記載の半導体メモリカード。
【請求項１５】
前記カード情報格納部は、
前記半導体メモリカードの処理単位サイズ、アクセス方法、及び処理内容を含むアクセス条件を変化させた場合におけるアクセス速度を保持するものであり、
前記制御部は、前記アクセス装置からの要求に応じて当該アクセス速度に関する情報を前記アクセス装置に送信することを特徴とする請求項１記載の半導体メモリカード。
【請求項１６】
複数の連続するセクタがデータ消去の最小単位であるブロックとしてグループ化されており、格納されたデータがファイルシステムにより管理されている半導体メモリカードにアクセスするアクセス装置であって、
前記アクセス装置から前記半導体メモリカードにアクセスする際の条件であるアクセス条件及び前記アクセス条件に従ったアクセスを前記アクセス装置が行った場合に前記半導体メモリカードが発揮するアクセス性能に関する情報を前記半導体メモリカードから取得するカード情報取得部と、
前記アクセス装置が前記半導体メモリカードにアクセスする際に使用可能なアクセス条件に関する情報と、半導体メモリカードに求めるアクセス速度に関する情報を格納するカード使用条件格納部と、
前記カード情報取得部が取得した情報と、前記カード使用条件格納部に格納された情報から、アクセス条件を決定するアクセス条件決定部と、
前記アクセス条件決定部が決定したアクセス条件を取得し、前記アクセス条件に適合したファイルアクセスを行うファイルシステム制御部と、
前記ファイルシステム制御部からのアクセス要求に応じて前記半導体メモリカードにアクセスするアクセス制御部と、を具備することを特徴とするアクセス装置。
【請求項１７】
前記アクセス条件決定部は、
前記アクセス条件に応じて、前記半導体メモリカードから取得したアクセス性能に関する情報に基づいて、半導体メモリカードの領域をファイルシステムアクセス単位（以下、ＦＳアクセス単位という）に分割することを特徴とする請求項１６記載のアクセス装置。
【請求項１８】
前記ファイルシステム制御部は、
前記半導体メモリカードに対してファイルデータを記録するとき、前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記ＦＳアクセス単位の倍数長の連続空き領域を決定し、
前記決定した連続空き領域にファイルデータを記録することを特徴とする請求項１７記載のアクセス装置。
【請求項１９】
前記ファイルシステム制御部は、
前記半導体メモリカードに対して新しいファイル管理情報を記録する際に、前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記ＦＳアクセス単位の領域内に既に別のファイル管理情報が記録されており、かつ新しいファイル管理情報を書き込む空き領域が存在するかどうかを判断し、存在する場合に、前記空き領域をファイル管理情報の書き込み位置として決定し、前記決定した空き領域にファイル管理情報を記録することを特徴とする請求項１７記載のアクセス装置。
【請求項２０】
前記ファイルシステム制御部は、
前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記複数のＦＳアクセス単位の領域が部分的に使用されている場合、部分的に使用されているＦＳアクセス単位の使用領域のデータを他のＦＳアクセス単位の未使用領域に移動させることを特徴とする請求項１７記載のアクセス装置。
【請求項２１】
前記ファイルシステム制御部は、
前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記ＦＳアクセス単位の領域が全て空き領域である領域の個数を算出することを特徴とする請求項１７記載のアクセス装置。
【請求項２２】
複数の連続するセクタがデータ消去の最小単位であるブロックとしてグループ化されており、格納されたデータがファイルシステムにより管理されている半導体メモリカードにアクセス装置からアクセスするアクセス方法であって、
前記半導体メモリカードにアクセスする際に使用可能なアクセス条件に関する情報と、半導体メモリカードに求めるアクセス性能に関する情報を格納するカード使用条件格納ステップと、
前記アクセス装置から前記半導体メモリカードにアクセスする際の条件であるアクセス条件及び前記アクセス条件に従ったアクセスを前記アクセス装置が行った場合に前記半導体メモリカードが発揮するアクセス性能に関する情報を前記半導体メモリカードから取得するカード情報取得ステップと、
前記カード情報取得ステップが取得した情報と前記カード使用条件格納ステップで格納した情報から、アクセス条件を決定するアクセス条件決定ステップと、
前記アクセス条件決定ステップで決定したアクセス条件を取得し、前記アクセス条件に適合するように前記半導体メモリカードのファイルにアクセスするファイルシステム制御ステップと、を具備することを特徴とするアクセス方法。
【請求項２３】
前記アクセス条件決定ステップは、
前記アクセス条件に応じて、前記半導体メモリカードにアクセスする際に用いられるサイズであるファイルシステムアクセス単位（以下、ＦＳアクセス単位という）を決定することを特徴とする請求項２２記載のアクセス方法。
【請求項２４】
前記ファイルシステム制御ステップは、
前記半導体メモリカードに対してファイルデータを記録するとき、前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記ＦＳアクセス単位の倍数長の連続空き領域を決定し、
前記決定した連続空き領域にファイルデータを記録することを特徴とする請求項２３記載のアクセス方法。
【請求項２５】
前記ファイルシステム制御ステップは、
前記半導体メモリカードに対して新しいファイル管理情報を記録する際に、前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記ＦＳアクセス単位の領域内に既に別のファイル管理情報が記録されており、かつ新しいファイル管理情報を書き込む空き領域が存在するかどうかを判断し、
存在する場合に、前記空き領域をファイル管理情報の書き込み位置として決定し、
前記決定した空き領域にファイル管理情報を記録することを特徴とする請求項２３記載のアクセス方法。
【請求項２６】
前記ファイルシステム制御ステップは、
前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記複数のＦＳアクセス単位の領域が部分的に使用されている場合、部分的に使用されているＦＳアクセス単位の使用領域のデータを他のＦＳアクセス単位の未使用領域に移動させることを特徴とする請求項２３記載のアクセス方法。
【請求項２７】
前記ファイルシステム制御ステップは、
前記半導体メモリカード上に構築されたファイルシステムの管理情報を基に、前記アクセス単位の領域が全て空き領域である領域の大きさを算出し、
前記半導体メモリカードの空き領域長としてアプリケーションプログラムに算出した値を通知することを特徴とする請求項２３記載のアクセス方法。
【発明の詳細な説明】
【技術分野】  本発明は、半導体メモリカード、及び半導体メモリカードにアクセスするアクセス装置及びアクセス方法に関する。
【背景技術】  音楽コンテンツや、映像データなどのデジタルデータを記録する記録媒体には、磁気ディスク、光ディスク、光磁気ディスクなど、様々な種類が存在する。これら記録媒体の１種類である半導体メモリカードは、記録素子としてフラッシュＲＯＭなどの半導体メモリを使用しており、記録媒体の小型化が図れることから、デジタルスチルカメラや携帯電話端末など、小型の携帯機器を中心に急速に普及しつつある。
半導体メモリカードに格納されたデータはファイルシステムにより管理されており、ユーザは格納されたデータをファイルとして容易に取り扱うことができる。従来使用されているファイルシステムとして、ＩＳＯ／ＩＥＣ９２９３、“Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ−Ｖｏｌｕｍｅ  ａｎｄ  ｆｉｌｅ  ｓｔｒｕｃｔｕｒｅ  ｏｆ  ｄｉｓｋ  ｃａｒｔｒｉｄｇｅｓ  ｆｏｒ  ｉｎｆｏｒｍａｔｉｏｎ”、１９９４年、に示されているＦＡＴファイルシステムがある。又ＯＳＴＡ  Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｒｅｖｉｓｉｏｎ  １．５０、１９９７年、に記載されているＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）や、ＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）などが存在する。これらファイルシステムによりデータが管理された半導体メモリカードは、同一のファイルシステムを解釈する機器間でファイルを共有することができるため、機器間でデータを授受することが可能となる。
ファイルシステムでは、データを記録する情報記録領域を、最小アクセス単位であるセクタ、及びセクタの集合であるクラスタに分割して管理し、１つ以上のクラスタをファイルとして管理する。ファイルに含まれるデータが格納される領域は、空き領域からクラスタ単位で割り当てられ、１つのファイルに含まれるデータが必ずしも連続領域に格納されるとは限らない。連続領域に格納されていないファイルを読み書きする場合、読み書きの間にシーク動作が発生するため、連続領域に格納されたファイルに比べ、読み書き速度が低下するという問題があった。
従来、ホスト機器、例えば、動画記録カメラ等がリアルタイムで半導体記録媒体にデータの書き込み処理を行う場合、半導体記録媒体の使用状態、つまり、内部データ記録領域の状態により、データ書き換え処理がデータ取り込み処理に追従できなくなることがあった。その結果、データの書き換えができなくなり、動画ストリームが途切れるなどの不具合が生じる場合があった。
従来、このような問題を解決する方法として、例えば特開２００２−２９１０１号公報に、画像処理装置において原稿１頁分のデータが連続領域に格納されるようにデータ書き込みを制御する方法が提案されている。この従来の方法では、データ書き込み時に固定長の連続領域に必ずデータを書き込むことで、データ読み込み時に一定の処理時間で処理が完了することを保証できるようにしている。
又特開昭６３−２２８２８１号にはメモリカードにおいてホスト機器がメモリカードからメモリの種別やメモリ容量、メモリ速度を取得できるようにしたメモリカードが示されている。又特開平１−７６３１６号、特開平７−３２００１８号には、メモリカードの内部に複数の転送速度を保持し、ホストからの指示に応じて転送速度を切換えるようにしたメモリカードが示されている。
しかしながら、上記の従来技術には次のような問題点がある。従来の制御方法では、画像処理装置の処理単位である原稿１頁分のデータサイズを連続領域の単位として使用している。すなわち、アプリケーションが取り扱うデータに適したサイズを基に、連続領域の単位を決定している。この方法は、記録媒体への書き込み単位の違いにより書き込み速度に差が生じない記録媒体には有効である。しかしながら、半導体メモリカードでは、書き込み単位が書き込み速度に大きく影響し、かつ書き込み単位と書き込み速度の関係は使用する半導体メモリの特性や管理方法により異なるため、全ての半導体メモリカードにおいて最適なアクセス方法は一意に定まらず、従来例のようにデータサイズを固定しても全ての半導体メモリカードに対し高速にアクセスすることはできない。
【発明の開示】
本発明では上記問題点に鑑み、半導体メモリカード内に半導体メモリカードのアクセス性能に関する情報を保持し、アクセス装置からその情報の少なくとも一部を取得できるようにすることを特徴とする。アクセス装置はその取得した情報を基にファイルシステムの処理内容を変更することにより、半導体メモリカードに対する高速アクセスを実現することを目的とする。
本発明による半導体メモリカードは、アクセス装置に接続されて使用される半導体メモリカードであって、制御信号及びデータをアクセス装置に対して送信し、アクセス装置からの信号を受信するホストインターフェース部と、複数の連続するセクタがデータ消去の最小単位である消去ブロックとしてグループ化され、アドレス管理情報領域とユーザデータ領域とを含む不揮発性メモリと、前記不揮発性メモリに対するデータの消去、書き込み、読み出しを制御するメモリコントローラと、前記不揮発性メモリのアクセス性能に関する情報を格納するカード情報格納部を含むカード情報格納用のメモリと、前記インターフェース部を介して得られた制御信号に基づいて各部を制御すると共に、前記カード情報格納部のデータアクセス性能に関する情報を読み出し、前記アクセス装置に伝送する制御部と、を具備することを特徴とする。
本発明によるアクセス装置は、複数の連続するセクタがデータ消去の最小単位であるブロックとしてグループ化されており、格納されたデータがファイルシステムにより管理されている半導体メモリカードにアクセスするアクセス装置であって、装着された前記半導体メモリカードのアクセス性能に関する情報を前記半導体メモリカードから取得するカード情報取得部と、前記アクセス装置が前記半導体メモリカードにアクセスする際に使用可能なアクセス条件に関する情報と、半導体メモリカードに求めるアクセス速度に関する情報を格納するカード使用条件格納部と、前記カード情報取得部が取得した前記半導体メモリカードのアクセス性能に関する情報と、前記カード使用条件格納部に格納された情報から、アクセス条件を決定するアクセス条件決定部と、前記アクセス条件決定部が決定したアクセス条件を取得し、前記アクセス条件に適合したファイルアクセスを行うファイルシステム制御部と、前記ファイルシステム制御部からのアクセス要求に応じて前記半導体メモリカードにアクセスするアクセス制御部と、を具備することを特徴とする。
更に本発明によるアクセス方法は、複数の連続するセクタがデータ消去の最小単位であるブロックとしてグループ化されており、格納されたデータがファイルシステムにより管理されている半導体メモリカードにアクセスするアクセス方法であって、装着された前記半導体メモリカードのアクセス性能に関する情報を前記半導体メモリカードから取得するカード情報取得ステップと、前記半導体メモリカードにアクセスする際に使用可能なアクセス条件に関する情報と、半導体メモリカードに求めるアクセス性能に関する情報を格納するカード使用条件格納ステップと、前記カード情報取得ステップが取得した前記半導体メモリカードのアクセス性能に関する情報と、前記カード使用条件格納ステップで格納した情報から、アクセス条件を決定するアクセス条件決定ステップと、前記アクセス条件決定ステップで決定したアクセス条件を取得し、前記アクセス条件に適合したファイルアクセスを行うファイルシステム制御ステップと、前記ファイルシステム制御ステップからのアクセス要求に応じて前記半導体メモリカードにアクセスするアクセス制御ステップと、を具備することを特徴とする。
本発明によれば、格納したデータをファイルシステムにより管理している半導体メモリカード、及び半導体メモリカードにアクセスするアクセス装置において、半導体メモリカード内に半導体メモリカードのアクセス性能に関する情報を保持し、その情報を基にアクセス装置側、半導体メモリカード側のいずれか、あるいは両者の処理を最適化することにより、半導体メモリカードに対する高速アクセスを実現することができる。
【図面の簡単な説明】  図１は本発明の実施例１に於ける半導体メモリカード、及びアクセス装置を示した説明図である。
図２は本発明の実施例１に於ける消去ブロックとセクタとの関係例を示した説明図である。
図３は本発明の実施例１に於ける半導体メモリカードへの消去ブロック倍数長のデータ書き込み処理を示したフローチャートである。
図４は本発明の実施例１に於ける半導体メモリカードへの１セクタ分のデータ書き込み処理を示したフローチャートである。
図５は本発明の実施例１に於ける２枚のフラッシュメモリを使用した半導体メモリカードの構成例を示した説明図である。
図６は本発明の実施例１に於ける２枚のフラッシュメモリを使用した半導体メモリカードのアクセスタイミング例を示した説明図である。
図７は本発明の実施例１に於けるカード情報格納部に格納される情報を示した説明図である。
図８は本発明の実施例１に於ける第１の方法に関するアクセス装置内部処理を示したフローチャートである。
図９は本発明の実施例１に於ける第１の方法に関する半導体メモリカード内部処理を示したフローチャートの一部である。
図１０は本発明の実施例１に於ける第１の方法に関する半導体メモリカード内部処理を示したフローチャートの他の一部である。
図１１は本発明の実施例１に於ける第１の方法に関するアクセス条件、アクセス速度値の一例を示した説明図である。
図１２は本発明の実施例１に於ける第２の方法に関するアクセス装置内部処理を示したフローチャートである。
図１３は本発明の実施例１に於ける第２の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図１４は本発明の実施例１に於ける第２の方法に関するアクセス条件、アクセス速度値の一例を示した説明図である。
図１５は本発明の実施例１に於ける第３の方法に関するアクセス装置内部処理を示したフローチャートである。
図１６は本発明の実施例１に於ける第３の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図１７は本発明の実施例１に於ける第４の方法に関するアクセス装置内部処理を示したフローチャートである。
図１８は本発明の実施例１に於ける第４の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図１９は本発明の実施例１に於ける第５の方法に関する速度性能レベル判定基準例を示した説明図である。
図２０は本発明の実施例１に於ける第６の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図２１は本発明の実施例１に於ける第７の方法に関するアクセス装置内部処理を示したフローチャートである。
図２２は本発明の実施例１に於ける第７の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図２３は本発明の実施例１に於ける第７の方法に関するアクセス性能基礎情報表例を示した説明図である。
図２４は本発明の実施例１に於ける第７の方法に関するリード処理、ライト処理におけるアクセス装置と半導体メモリカード間のアクセスタイミング例を示した説明図である。
図２５は本発明の実施例１に於ける第７の方法に関するイレース処理におけるアクセス装置と半導体メモリカード間のアクセスタイミング例を示した説明図である。
図２６は本発明の実施例１に於ける第８の方法に関する単位時間あたりに処理可能なデータサイズを用いたアクセス性能表例を示した説明図である。
図２７は本発明の実施例１に於ける第８の方法に関する単位サイズのデータ処理に必要な時間を用いたアクセス性能表例を示した説明図である。
図２８は本発明の実施例１に於ける第８の方法に関するアクセス性能表例を示した説明図である。
図２９は本発明の実施例１に於ける第８の方法に関するアクセス装置内部処理を示したフローチャートである。
図３０は本発明の実施例１に於ける第８の方法に関する半導体メモリカード内部処理を示したフローチャートである。
図３１は本発明の実施例２に於けるＦＡＴファイルシステムの構成を示した説明図である。
図３２は本発明の実施例２に於けるＦＡＴファイルシステムのデータ格納例を示した説明図である。
図３３は本発明の実施例２に於けるＦＡＴファイルシステムのデータ書き込み処理を示したフローチャートである。
図３４は本発明の実施例２に於けるＦＡＴファイルシステムのデータ書き込み前の状態を示した説明図である。
図３５は本発明の実施例２に於けるＦＡＴファイルシステムのデータ書き込み後の状態を示した説明図である。
図３６は本発明の実施例２に於けるＦＳアクセス単位取得処理を示したフローチャートである。
図３７は本発明の実施例２に於ける第１の方法に関するＦＳアクセス単位を用いたフォーマット後のファイルシステムの構成例を示した説明図である。
図３８は本発明の実施例２に於ける第２の方法に関するＦＳアクセス単位を用いたファイルデータ書き込み処理を示したフローチャートである。
図３９は本発明の実施例２に於ける第２の方法に関するデータ配置例を示した説明図である。
図４０は本発明の実施例２に於ける第３の方法に関するＦＳアクセス単位を用いたディレクトリ領域割り当て処理を示したフローチャートである。
図４１は本発明の実施例２に於ける第３の方法に関するＦＳアクセス単位を用いたディレクトリ領域割り当て処理を示したフローチャートである。
図４２は本発明の実施例２に於ける第３の方法に関するデータ配置例を示した説明図である。
図４３は本発明の実施例２に於ける第４の方法に関するＦＳアクセス単位を用いたデフラグ処理前のデータ配置例を示した説明図である。
図４４は本発明の実施例２に於ける第４の方法に関するＦＳアクセス単位を用いたデフラグ処理後のデータ配置例を示した説明図である。
図４５は本発明の実施例２に於ける第５の方法に関するＦＳアクセス単位を用いた残り空き領域長取得処理を示したフローチャートである。
図４６は本発明の実施例２に於ける第５の方法に関するデータ配置例を示した説明図である。
図４７は本発明の実施例２に於ける半導体メモリカード制御ＬＳＩを用いたアクセス装置の他の例を示した説明図である。
【発明を実施するための最良の形態】  以下、本発明による半導体メモリカード、アクセス装置及びアクセス方法の実施例について、図面を参照しつつ説明する。
【実施例１】  図１は本発明の実施例１による半導体メモリカードとアクセス装置を示すブロック図である。図１においてアクセス装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、スロット１０３、ＲＯＭ１０４を含む。ＲＯＭ１０４にはアクセス装置１００を制御するプログラムが格納されている。ＣＰＵ１０１はこのプログラムに従い、ＲＡＭ１０２を一時記憶領域として使用して動作する制御部である。スロット１０３は、半導体メモリカード１１１とアクセス装置１００との接続部である。制御信号及びデータはスロット１０３を経由してアクセス装置１００と半導体メモリカード１１１間で送受信される。更にＲＯＭ１０４は、アプリケーションプログラム１０５、ファイルシステム制御部１０６、アクセス条件決定部１０７、カード情報取得部１０８、アクセス制御部１０９、カード使用条件を格納する条件格納部１１０を含む。
一方、半導体メモリカード１１１は、ホストインターフェース（Ｉ／Ｆ）部１１２、ＣＰＵ１１３、ＲＡＭ１１４、ＲＯＭ１１５、メモリコントローラ１１６、不揮発性メモリ１１７、第１のメモリ１１８、第２のメモリ１１９を含む。ホストインターフェース部１１２は、アクセス装置１００と制御信号及びデータを送受信するインターフェースである。ＲＯＭ１１５には半導体メモリカード１１１を制御するプログラムが格納されており、ＲＡＭ１１４を一時記憶領域として使用し、ＣＰＵ１１３上で動作する。メモリコントローラ１１６は半導体メモリカード１１１内のデータ記憶領域である不揮発性メモリ１１７を制御する素子である。不揮発性メモリ１１７は、アドレス管理情報１３０とユーザデータ１３１とを含む。アドレス管理情報１３０は不揮発性メモリ１１７内の物理アドレスとアクセス装置１００がアクセスに使用する論理アドレスとの対応を管理した表である。ユーザデータ１３１はユーザが半導体メモリカード１１１に記録したデータである。第１のメモリ１１８は更新可能な不揮発性メモリであり、半導体メモリカード１１１のアクセス性能に関する情報を格納するカード情報格納部１３２を含む。第１のメモリ１１８はカード情報格納メモリとして使用される。第２のメモリ１１９は更新可能な不揮発性メモリであり、半導体メモリカード１１１にアクセスするアクセス装置１００に関する情報を格納するホスト情報格納部１３３を含む。
続いて、半導体メモリカード１１１のデータの記録素子である不揮発性メモリ１１７に使用する半導体メモリの特徴について説明する。不揮発性メモリ１１７に用いられる半導体メモリは、ＥＥＰＲＯＭあるいはフラッシュＲＯＭと呼ばれる不揮発性メモリ（以下、フラッシュメモリという）を情報記録用の素子として使用している。多くの情報記録媒体で使用されるＮＡＮＤ型のメモリには、データを書き込む前に一旦書き込み先に記録されているデータを消去して、未記録の状態に戻してからデータを書き込まなければならないという特徴がある。
ここでデータを消去する単位は消去ブロックと呼ばれ、アクセスの最小単位であるセクタ（例えば５１２バイト）が複数個集まったブロックとして管理されている。各消去ブロックは通常、２ｉ（ｉは０以上の整数）個の複数のセクタが連続する領域がデータ消去の最小単位である消去ブロックとしてグループ化されている。
図２はフラッシュメモリＦＭにおける消去ブロックとセクタとの関係の一例を示した図である。図２の例では、消去ブロックＥＢは０〜（Ｎ−１）までのＮブロックから成り、１消去ブロックは例えば１２８ＫＢとする。１つの消去ブロックは２５６セクタから構成されており、ＰＳＮ＝０〜（Ｎ−１）×２５６＋２５５までの一連の物理セクタ番号ＰＳＮが付されている。アクセスはセクタ単位で行うことが可能であるが、書き込みに先立ち必要となるデータの消去処理は消去ブロック（１２８ＫＢ）単位で行われる。
この半導体メモリカード１１１におけるデータ消去、書き込み処理の例を、図３、図４を用いて説明する。図３では、書き込み処理の一例として、消去ブロック倍数長のデータを書き込む場合における半導体メモリカード１１１内部の処理手順を示す。
図３におけるデータ記録処理では、先ずアクセス装置１００から送信されたコマンドと引数を、ホストインターフェース部１１２を介して受信する（Ｓ３０１）。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する（Ｓ３０２）。不正コマンドの場合、アクセス装置１００にエラーを通知して処理を終了する（Ｓ３０３）。認識可能なコマンドの場合、そのコマンドが書き込みコマンドであるか判定する（Ｓ３０４）。書き込みコマンド以外の場合、各コマンドに対応した他の処理を実施する（Ｓ３０５）。書き込みコマンドの場合、引数に格納された書き込み位置、書き込みサイズの情報から、実際にフラッシュメモリにデータを書き込む消去ブロックの物理アドレスを決定する（Ｓ３０６）。次に、書き込みに先立ち、メモリコントローラ１１６を介して、フラッシュメモリに存在するＳ３０６で決定した消去ブロックに存在するデータを消去する（Ｓ３０７）。次に、アクセス装置１００から１セクタ分のデータを、ホストインターフェース部１１２を介して受信する（Ｓ３０８）。データの受信を完了すると、受信した１セクタ分のデータを、メモリコントローラ１１６を介して、フラッシュメモリへ書き込む（Ｓ３０９）。こうしてＳ３０８、Ｓ３０９のデータ受信、書き込み処理を、１消去ブロック分のデータ書き込みが完了するまで繰り返し実施する（Ｓ３１０）。Ｓ３０６からＳ３１０までの１消去ブロック分のデータ書き込み処理を、アクセス装置１００から指定された書き込みサイズ分のデータ書き込みが完了するまで繰り返し実施する（Ｓ３１１）。アクセス装置１００から指定された書き込みサイズ分のデータ書き込みが完了した場合、処理を終了する。
次に図４は１セクタのデータを書き込む場合における半導体メモリカード１１１内部の処理手順を示す。図４におけるデータ記録処理において、図３の処理と異なる点は、Ｓ４１０において書き込みを行う消去ブロックに含まれるデータのうち、アクセス装置１００からデータを受信する１セクタ以外のデータを、Ｓ４０６で決定した消去ブロックに書き込む点である。ＮＡＮＤ型のメモリでは、データ書き込みに先立ち一旦データを消去する必要があり、この消去処理は消去ブロック単位でしか行えない。そのため１セクタのデータを書き込む場合でも、１消去ブロック分のデータを消去し、更にＳ４１０の処理のように同じ消去ブロックに含まれる既存データを新しい消去ブロックに書き戻す必要がある。
図３、図４で示したようにデータ記録処理では、大きく分けてコマンド解釈処理、データ消去処理、データ書き込み処理の３つの処理が存在する。例えば、コマンド解釈のオーバーヘッドに３ｍ秒、１セクタの書き込み処理に２００μ秒、１消去ブロック（例えば１２８ＫＢ）の消去処理に２ｍ秒かかるフラッシュメモリを想定する。このフラッシュメモリに対して１消去ブロック（１２８ＫＢ）分のデータの書き込みでは図３に示す処理が実行され、コマンド解釈に３ｍ秒、消去処理に２ｍ秒、書き込み処理に２５６×２００μ秒かかり、合計５６．２ｍ秒となる。同様に１セクタ（５１２Ｂ）分のデータの書き込みでは、図４に示す処理が実行され、コマンド解釈に３ｍ秒、消去処理に２ｍ秒、書き込み処理に２００μ秒＋２５５×２００μ秒かかり、合計５６．２ｍ秒となる。すなわち、１２８ＫＢのデータを書き込んだ場合と５１２Ｂのデータを書き込んだ場合で同じ時間がかかることになる。この例ではデータ転送時間などを考慮せず極端に性能差が出る場合について説明したが、実際のフラッシュメモリにおいても消去ブロック単位で書き込みを行った場合に書き込み時間が短くなる。
また、半導体メモリカード１１１では、記録素子として複数枚のフラッシュメモリを使用する場合がある。図５は、不揮発性メモリ１１７に２枚のフラッシュメモリＦＭ０，ＦＭ１を使用した半導体メモリカード１１１の構成例を示した図である。図５に示す２枚のフラッシュメモリは、０＿０〜１＿（Ｎ−１）までの各消去ブロックが２５６セクタで構成されており、２枚のフラッシュメモリに存在する各セクタには、２５６セクタ単位で２枚のフラッシュメモリが交互に入れ替わるように昇順の物理セクタ番号ＰＳＮが付与されている。この複数枚のフラッシュメモリから成る不揮発性メモリ１１７を有する半導体メモリカード１１１の場合、複数枚のフラッシュメモリに対して並列に読み書き処理を行うことで、高速アクセスを実現することができる。例えば図５の例においては、物理セクタ番号ＰＳＮ０からＰＳＮ５１１までの５１２セクタにデータを書き込む際に、消去ブロックＥＢ０＿０、ＥＢ１＿０の２つの消去ブロックに対し並列にデータを書き込むことで、高速にデータを書き込むことができる。
図６は、この半導体メモリカード１１１に対して書き込み時のタイミングを示すものであり、図６（ａ）は１消去ブロックの書き込み時、図６（ｂ）は２消去ブロック並列書き込み時のタイミングの一例を示す。図６においてＴ１は、１消去ブロックの書き込み処理にかかる時間を表す。また、Ｔ１’＋Ｔ２’は２消去ブロックの並列書き込み処理にかかる時間を表す。すなわち、１消去ブロックずつ２回に分けてデータを書き込んだ場合の書き込み処理時間はＴ１×２となり、２消去ブロックの並列書き込みを行った場合の書き込み処理時間はＴ１’＋Ｔ２’となる。Ｔ１’はフラッシュメモリに対する書き込みを伴わない処理にかかる時間であり、ごく僅かな時間となる。また、Ｔ２’は２枚のフラッシュメモリを並列に書き込む処理にかかる時間であり、１枚のフラッシュメモリに書き込むＴ１の処理に比べ多少時間はかかるものの、Ｔ１の２倍の時間まではかからない。そのため、図６の例では半導体メモリカード１１１に対し２消去ブロック単位で書き込んだ場合に書き込み時間が最短となる。
すなわち、半導体メモリカード１１１への書き込み時間は、消去ブロックの大きさだけに依存するのではなく、半導体メモリカード１１１に使用するフラッシュメモリの枚数、フラッシュメモリの管理方法などにも依存する。更には半導体メモリカード１１１の世代や製造者の違いにより、半導体メモリカード１１１のアクセス性能は異なる。
そのため、本実施例では、半導体メモリカード１１１毎に異なるアクセス性能に関する情報を半導体メモリカード１１１内に保持し、アクセス装置１００が取得できるようにする。これにより、アクセス装置１００が各半導体メモリカード１１１に最適なアクセス方法を認識し、半導体メモリカード１１１に高速にアクセスできるようにしている。
続いて、本実施例におけるカード情報格納部１３２について詳細に説明する。カード情報格納部１３２は、半導体メモリカード１１１のアクセス性能に関する情報を格納する記憶部である。図７は、カード情報格納部１３２に格納される情報の一例を示した図であり、第１〜第５の情報の少なくともいずれかが格納される。以下、情報の種別毎に各項目について説明する。
カード情報に含まれる第１の情報は、半導体メモリカード１１１内部の物理特性に関する情報である。この情報には、例えば半導体メモリカード１１１に使用するフラッシュメモリの種別、メモリの使用枚数、メモリへの並列書き込みの有無などの半導体メモリの管理方法、フラッシュメモリの消去ブロックサイズ、半導体メモリカード１１１内の管理ブロックサイズ、温度条件、消費電力量、電流値、電圧値、カード種別情報などが含まれる。カード種別情報は半導体メモリカード１１１が準拠する規格のバージョンやサポートするコマンドセットなどカードの種類を判別するための情報である。これらの情報は、並列書き込みによる処理効率化に影響を及ぼすフラッシュメモリの枚数や、半導体メモリカード１１１に対する最適な処理単位サイズに影響を及ぼす消去ブロックサイズなど、半導体メモリカード１１１のアクセス性能を決定する上で基礎となる情報を含む。管理ブロックサイズは図２に示すように１枚のフラッシュメモリから成る場合は消去ブロックサイズと同一であり、図５に示すように２枚のフラッシュメモリから成る場合には同時に消去によって最も速度が早くなるサイズ、即ち消去ブロックサイズの２倍となる。更に多数のフラッシュメモリを並列で使用する場合には並列数×消去ブロックサイズとなる。尚第１の情報としてはこれらの少なくとも１つの情報を含むものであればよい。
カード情報に含まれる第２の情報は、アクセス装置１００から半導体メモリカード１１１にアクセスする際のアクセス条件に関する情報である。この情報には、処理種別、処理単位サイズ、処理単位境界、処理単位時間、アクセス方法、シーケンシャルアクセス（図では単にＳＡという）時の最低連続領域サイズ、入力クロック周波数、ビット幅などが含まれる。処理種別とは、半導体メモリカード１１１に対する処理の種別を示し、リード処理、ライト処理、イレース処理などが存在する。更にライト処理には既にデータが書き込まれている位置にデータを上書きする場合に必要となるイレース処理を含む書き込み処理と、データが存在しない位置にデータを書き込むだけの処理の２種類が存在する。処理単位サイズは、半導体メモリカード１１１に対する１回の処理のサイズである。処理単位境界は、処理開始位置を示す情報である。処理単位境界は処理単位サイズ内の処理によって最も速度が早くなる境界を示し、処理単位サイズの境界と一致している場合や、その中間地点からの処理も許容する場合等が含まれる。処理単位境界は、例えば処理単位サイズが１２８ＫＢの場合、その処理単位サイズと一致する場合には１２８ＫＢ、その中間からの処理も可能な場合には６４ＫＢのように表現される。先に説明したように、半導体メモリカード１１１に対する最適な処理単位サイズや処理単位境界は、半導体メモリカード１１１内部で並列処理されるフラッシュメモリの枚数や管理方法、消去ブロックサイズなどに依存する。すなわち、半導体メモリカード１１１内部でフラッシュメモリが並列処理されない場合は、フラッシュメモリの消去ブロックサイズと処理単位サイズが同一である。このとき処理単位境界がこれらと同じ場合、効率的に半導体メモリカード１１１にアクセスすることが可能である。一方、複数枚のフラッシュメモリが並列処理されている場合は、並列処理の管理ブロックサイズと処理単位サイズ、処理単位境界が同じ場合に、効率的にアクセスすることが可能となる。また、半導体メモリカード１１１に最適な処理単位境界が処理単位サイズの倍数長となる場合、処理単位境界を省略し、処理単位サイズを用いて境界を決定することも可能である。
処理単位時間は、アクセス性能を表現する際に性能値の測定基準となる単位時間を示す情報である。アクセス方法は、アクセス装置１００が半導体メモリカード１１１にアクセスする際のアドレス指定条件を示し、連続領域にアクセスを行うシーケンシャルアクセス（ＳＡ）、不連続領域にアクセスを行うランダムアクセス（ＲＡ）などが存在する。フラッシュメモリが並列処理されている半導体メモリカード１１１において、並列処理が可能な管理ブロックサイズ単位で処理を行わず、消去ブロック単位などの更に小さな単位に分割して処理を行った場合でも、連続した領域に対してシーケンシャルに処理が行われれば、フラッシュメモリの管理方法によっては、ある程度高速な処理が行える。そのため、シーケンシャルアクセス時の最低連続領域サイズは、シーケンシャルアクセス時に高速アクセスするために必要な最低連続領域の大きさを示す。入力クロック周波数は、アクセス装置１００と半導体メモリカード１１１間のコマンドやデータの送受信における基本クロックの周波数を示す情報である。ビット幅は、アクセス装置１００と半導体メモリカード１１１間のデータ転送に使用する信号線のビット数を示す情報であり、例えば１ビット、４ビットなどである。尚第２の情報としてはこれらの少なくとも１つの情報を含むものであればよい。
カード情報に含まれる第３の情報は、半導体メモリカード１１１のアクセス速度に関する情報である。この情報には、半導体メモリカード１１１の速度性能レベル、単位時間に処理可能なデータサイズ、単位サイズの処理を行う際にかかる時間、転送レート、カード内部の処理時間などが含まれる。速度性能レベルは、例えばフラッシュメモリカードの速度制御を例えば高速、中速、低速などフラグを用いて表現したものである。又単位サイズの処理を行う際にかかる時間は、例えばリード処理、ライト処理、イレース処理などの各処理時間毎に平均値や最悪値を含むことができる。単位時間に処理可能なデータサイズ、単位サイズ当たりの処理時間は、後述するアクセス性能表としてデータを保持するようにしてもよい。更に転送レートについても後述するように、リード処理、ライト処理、イレース処理の夫々の平均値や最悪値を含むことができる。又カード内部処理時間は後述するように、アクセス性能基礎情報表として記憶させておくことができる。これらの情報はいずれも半導体メモリカード１１１のアクセス速度を表現する情報であり、表現方法のみが異なる。更に、これらアクセス速度に関する情報は先に説明した第１の情報、第２の情報と密接に関係している。例えば、入力クロック周波数が低い場合、半導体メモリカードに入出力するデータの転送速度が低くなり、結果として半導体メモリカード１１１のアクセス性能が低くなる。また、半導体メモリカード１１１にアクセスする処理単位サイズが小さければ、消去ブロック単位でのアクセスが行えなかったり、並列処理の効果が得られないなどの理由により、半導体メモリカード１１１のアクセス速度が低くなる。このように第３の情報であるアクセス速度に関する情報は、第１の情報、第２の情報に関連付けられた情報が格納されている。尚第３の情報としてはこれらの少なくとも１つの情報を含むものであればよい。
カード情報に含まれる第４の情報は、半導体メモリカード１１１の異常系処理に関する情報である。この情報には、リード、ライトなどの各処理におけるエラー発生確率、アクセス装置１００がコマンドを半導体メモリカード１１１に発行してからエラー通知を受けるまでの時間の最悪値が含まれる。これらの情報は、アクセス装置１００が異常系処理のために必要とするバッファサイズの見積りなどを行う際に使用される。尚第４の情報としてはこれらの少なくとも１つの情報を含むものであればよい。
カード情報に含まれる第５の情報は、半導体メモリカード１１１のアクセス性能に関するその他の情報である。この情報には、速度性能レベル判定基準、速度性能レベル、消費電力量レベルが含まれる。第５の情報としてはこれらの少なくとも１つの情報を含むものであればよい。これらの情報の詳細は以下で説明する。
図７では、カード情報格納部１３２に含まれる可能性のある情報として、以上５種類の情報を挙げたものである。カード情報格納部１３２はこれらの全ての情報を格納してもよい。あるいはカード情報格納部１３２はアクセス装置１００と半導体メモリカード１１１間で最適なアクセスを行うために必要な情報を選択して格納してもよい。このうち特に本願の特徴的なカード情報は第２のアクセス条件に関連する情報、及び第３のアクセス速度に関連する情報である。
実施例１の主眼とする所は、図７に示すような半導体メモリカード１１１のアクセス性能に関する情報を半導体メモリカード１１１内部に保持し、その情報の一部、あるいは全てをアクセス装置１００が取得できるようにし、アクセス装置１００から半導体メモリカード１１１に対して最適なアクセスを行えるようにする点である。以下では、半導体メモリカード１１１に対して最適なアクセスを行うために、アクセス装置１００が半導体メモリカード１１１のアクセス性能を知る第１〜第８の方法を説明する。
第１の方法は、アクセス装置１００からの要求に応じ、半導体メモリカード１１１に最適にアクセスするためのアクセス条件、アクセス速度の情報を半導体メモリカード１１１が返す方法であるこの方法について図８〜図１１を用いて説明する。図８は本方法におけるアクセス装置１００側の取得手順を示した図、図９，図１０は半導体メモリカード１１１側の処理手順を示した図であり、図１１は結果として半導体メモリカード１１１がアクセス装置１００に返すアクセス条件、アクセス速度情報の一例を示した図である。
まず始めに図８を用いてアクセス装置１００側の処理手順を説明する。図８において、先ずアクセス装置１００は半導体メモリカード１１１に対し、半導体メモリカード１１１のカード種別情報を取得するためにカード種別取得コマンドを発行する（Ｓ８０１）。次に、発行したコマンドにより半導体メモリカード１１１からカード種別情報が取得できたか判定する（Ｓ８０２）。取得に失敗した場合、エラーが発生したと判断し処理を終了する（Ｓ８０３）。取得に成功した場合、取得した情報を基に、半導体メモリカード１１１に最適にアクセスするためのアクセス条件と、その際のアクセス速度値を半導体メモリカード１１１から取得するコマンド（最適アクセス情報取得コマンド）に対応した半導体メモリカード１１１であるか判定する（Ｓ８０４）。対応していない半導体メモリカード１１１であれば、アクセス条件、アクセス速度値の取得を中止して処理を終了する（Ｓ８０５）。対応している半導体メモリカード１１１であれば、最適アクセス情報取得コマンドを半導体メモリカード１１１に発行する（Ｓ８０６）。次に、発行したコマンドにより半導体メモリカード１１１からアクセス条件、アクセス速度値が取得できたか判定する（Ｓ８０７）。取得に失敗した場合、エラーが発生したと判断し処理を終了する（Ｓ８０８）。取得に成功した場合、処理を正常終了する。
次に図９，図１０を用いて半導体メモリカード１１１側の処理手順を説明する。図９は、図８の説明におけるカード種別取得コマンドがアクセス装置１００から発行された場合における半導体メモリカード１１１側の処理を示した図である。図９の半導体メモリカード１１１側の処理において、先ず半導体メモリカード１１１はアクセス装置１００からコマンドを受信する（Ｓ９０１）。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する（Ｓ９０２）。不正コマンドの場合、アクセス装置１００にエラーを通知して処理を終了する（Ｓ９０３）。認識可能なコマンドの場合、そのコマンドがカード種別取得コマンドであるか判定する（Ｓ９０４）。カード種別取得コマンド以外の場合、各コマンドに対応した他の処理を実施する（Ｓ９０５）。カード種別取得コマンドの場合、カード情報格納部１３２からカード種別情報を読み出す（Ｓ９０６）。最後に読み出したカード種別情報をアクセス装置１００に送信し処理を終了する（Ｓ９０７）。
図１０は、図８の説明における最適アクセス情報取得コマンドがアクセス装置１００から発行された場合における半導体メモリカード１１１側の処理を示した図である。図１０の処理において、半導体メモリカード１１１はアクセス装置１００からコマンドを受信する（Ｓ１００１）。次に、受信したコマンドを参照し、自身が認識できない不正コマンドか否かを判定する（Ｓ１００２）。不正コマンドの場合、アクセス装置１００にエラーを通知して処理を終了する（Ｓ１００３）。認識可能なコマンドの場合、そのコマンドが最適アクセス情報取得コマンドであるかを判定する（Ｓ１００４）。最適アクセス取得コマンドでなければ他の処理を実施し（Ｓ１００５）、このコマンドであった場合にＳ１００６において、半導体メモリカード１１１に最適にアクセスするためのアクセス条件と、その際のアクセス速度値をカード情報格納部１３２から読み出す。そしてＳ１００７において、読み出したアクセス条件、アクセス速度値をアクセス装置１００に送信する。
このように図８〜図１０に記載した処理手順により、アクセス装置１００は半導体メモリカード１１１から、半導体メモリカード１１１に最適にアクセスするためのアクセス条件と、その際のアクセス速度値を取得することが可能となる。図１１（ａ）は、このアクセス条件を示した図、図１１（ｂ）はアクセス速度値の一例を示した図である。アクセス条件は図１１（ａ）に示すように、処理単位サイズや処理単位境界、アクセス方法、入力クロック周波数、ビット幅など、半導体メモリカード１１１に最適にアクセスするためにアクセス装置１００が従うべき条件を示した情報である。ここでは例えば処理単位サイズは１２８ＫＢの倍数長、処理単位境界は１２８ＫＢの倍数長、アクセス方法は２５６ＫＢ以上の連続領域にシーケンシャルアクセスするものとし、入力クロック周波数は２５ＭＨｚ以上、ビット幅は４ビットとしている。またアクセス速度値は図１１（ｂ）に示すように、リード、ライト、イレースの各処理における転送レートの平均値、最悪値など、先のアクセス条件に従ったアクセスをアクセス装置１００が行った場合の処理性能を示した情報である。これらの情報を半導体メモリカード１１１から取得することで、アクセス装置１００はその半導体メモリカード１１１に最適にアクセスするにはどのようにアクセスしたら良いか、またその場合にどの程度のアクセス性能が得られるかを認識することができる。これにより半導体メモリカード１１１の特性に応じた最適なアクセスを実現することができる。
続いて第２の方法として、アクセス装置１００がアクセス条件を半導体メモリカード１１１に入力し、アクセス速度値を半導体メモリカード１１１が返す方法について、図１２、図１３、図１４を用いて説明する。図１２は、本方法におけるアクセス装置１００側の処理を示す図である。図１２に示すアクセス装置１００側の処理手順において、図８に示す第１の方法の場合と同様に、カード種別取得コマンドを発行し（Ｓ１２０１）、これが成功しなければエラー終了する（Ｓ１２０２，Ｓ１２０３）。これが成功すれば、Ｓ１２０４においてアクセス速度値取得コマンド対応カードかどうかをを判別する。このコマンドに対応していなければアクセス速度値の取得を中止し（Ｓ１２０５）、このコマンドに対応していれば、ステップＳ１２０６においてアクセス速度値取得コマンドを発行する。アクセス速度値の取得に成功したかどうかを判断し（ステップＳ１２０７）、成功しなければエラー終了し（Ｓ１２０８）、取得すれば正常終了する。本方法ではアクセス装置１００がアクセス条件を半導体メモリカード１１１に入力するため、アクセス速度値取得コマンドはアクセス条件を引数にもつコマンドとなる。
次に、半導体メモリカード１１１側の処理手順について図１３を用いて説明する。図１３は、図１２の説明におけるアクセス速度値取得コマンドがアクセス装置１００から発行された場合における半導体メモリカード１１１側の処理を示した図である。図１３の処理を開始すると、Ｓ１３０１においてコマンドを受信し、不正コマンドかどうかを判別し、不正コマンドであればエラー終了する（Ｓ１３０２，Ｓ１３０３）。不正コマンドでなければアクセス速度値取得コマンドかどうかを判定し（Ｓ１３０４）、このコマンドでなければ他の処理を実施する（Ｓ１３０５）。アクセス速度値取得コマンドであれば半導体メモリカード１１１はアクセス条件、アクセス速度値をカード情報格納部１３２から読み出す（Ｓ１３０６）。次に、読み出したアクセス条件とそれに対応するアクセス速度値を参照し、アクセス装置１００がコマンドの引数で指定したアクセス条件に合致するアクセス速度値が存在するか判定する（Ｓ１３０７）。存在しない場合、アクセス装置１００にエラーを通知して処理を終了する（Ｓ１３０８，Ｓ１３０９）。存在する場合、該当するアクセス速度値をアクセス装置１００に送信し、処理を終了する（Ｓ１３１０）。
このように図１２、図１３に記載した処理手順により、アクセス装置１００は半導体メモリカード１１１にアクセス条件を入力し、その条件に応じたアクセス速度値を取得することが可能となる。
図１４（ａ）はアクセス装置１００が半導体メモリカード１１１に入力するアクセス条件を示す図、図１４（ｂ）は半導体メモリカード１１１がアクセス装置１００に返すアクセス速度値の一例を示した図である。アクセス装置１００が半導体メモリカード１１１に入力するアクセス条件は、例えば図１４（ａ）に示すように、処理単位サイズを１２８ＫＢ、処理単位境界を１２８ＫＢ、アクセス方法を２５６ＫＢ連続領域としてシーケンシャルアクセスするものとし、入力クロック周波数２５ＭＨｚ、ビット幅を４ビットなど、半導体メモリカード１１１にアクセスする際の条件を示した情報である。また図１４（ｂ）に示すアクセス速度値は図１１（ｂ）と同様の情報であり、アクセス装置１００が入力したアクセス条件に応じたアクセス速度値を示す。このように半導体メモリカード１１１にアクセスする際の条件を入力し、その条件に応じたアクセス速度値を半導体メモリカード１１１から取得することで、想定するアクセス方法により、所望のアクセス性能が得られるかをアクセス装置１００が判定することが可能となる。
次に第３の方法は、アクセス装置１００がアクセス速度値を半導体メモリカード１１１に入力し、アクセス条件を半導体メモリカード１１１が返す方法である。この方法について図１５、図１６を用いて説明する。
図１５は本方法におけるアクセス装置１００側の処理手順を示した図である。アクセス装置側の処理は前述した第２の方法のアクセス装置の動作とほぼ同様であり、ステップＳ１２０６のアクセス速度値取得コマンドの発行に代えて、本方法ではステップＳ１５０６においてアクセス条件取得コマンドを発行している。
図１６は本方法における半導体メモリカード１１１側の処理手順を示した図である。図１６の処理手順において、先に説明した第２の方法と異なる点は、ステップＳ１３０４のアクセス速度値取得コマンドに代えて、ステップＳ１６０４のアクセス条件取得コマンドかどうかを確認し、その後このコマンドであればアクセス速度値をカード情報格納部１３２から読み出す（ステップＳ１６０６）。そしてステップＳ１６０７において読み出したアクセス条件からアクセス装置が指定したアクセス速度値に合うアクセス条件が存在するかどうかを判定する。Ｓ１６０８においてこのようなアクセス条件が存在しなければエラー終了し（Ｓ１６０９）、存在すれば、アクセス条件をアクセス装置に送信して（Ｓ１６１０）、処理を終える。
図１５、図１６に記載した処理手順により、アクセス装置１００は半導体メモリカード１１１にアクセス速度値を入力し、その速度値に応じたアクセス条件を取得することが可能となる。本方法における、このアクセス条件、アクセス速度値は、例えば図１１（ｂ）に示される情報である。本方法では、このように半導体メモリカード１１１にアクセスする際に要求する性能値を入力し、その性能値を満たすためにアクセス装置１００が従うべきアクセス条件を半導体メモリカード１１１から取得する。こうすれば、アクセス装置１００は所望のアクセス性能を満たすためにどのように半導体メモリカード１１１にアクセスすれば良いか認識することができ、所望のアクセス性能でのアクセスを実現することが可能となる。
続いて第４の方法は、アクセス装置１００がアクセス条件、アクセス速度値を半導体メモリカード１１１に入力し、入力されたアクセス条件でアクセスした場合に入力されたアクセス速度値を満たすことができるか否かを半導体メモリカード１１１が返す方法である。この方法について図１７、図１８を用いて説明する。
図１７は本方法におけるアクセス装置１００側の処理手順を示した図である。図１７において、先に説明した第１の方法と同様に、カード種別取得コマンドを発行し、この取得に成功すれば最適アクセス可否判定コマンドに対応するカードかどうかを判定する（Ｓ１７０４）。このカードでなければ最適アクセス可否判定を中止し（Ｓ１７０５）、対応カードであればステップＳ１７０６において最適アクセス可否判定コマンドを発行する。本方法ではアクセス装置１００がアクセス条件とアクセス速度値を半導体メモリカード１１１に入力するため、最適アクセス可否判定コマンドはアクセス条件とアクセス速度値を引数にもつコマンドとなる。判定結果の取得が成功したかどうかを判断し（Ｓ１７０７）、失敗すればエラー終了し（Ｓ１７０８）、成功すれば終了する。このコマンドの結果として半導体メモリカード１１１から得られる情報は、指定したアクセス条件でアクセスした場合に、指定したアクセス速度値が満たされるかどうかの判定結果となる。
次に、図１８に示す半導体メモリカード１１１側の処理手順について説明する。第１の方法と同様に、本方法でもアクセス装置１００はカード種別取得コマンドを発行するが、半導体メモリカード１１１側の処理は、図９に示す処理と同じである。図１８は、図１７の説明における最適アクセス可否判定コマンドがアクセス装置１００から発行された場合における半導体メモリカード１１１側の処理を示した図である。図１８の処理を開始すると、Ｓ１８０１においてコマンドを受信し、不正コマンドかどうかを判別し、不正コマンドであればエラー終了する（Ｓ１８０２，Ｓ１８０３）。不正コマンドでなければ最適アクセス可否判定コマンドかどうかを判定し（Ｓ１８０４）、このコマンドでなければ他の処理を実施する（Ｓ１８０５）。最適アクセス可否判定コマンドであれば、半導体メモリカード１１１はアクセス条件、アクセス速度値をカード情報格納部１３２から読み出す（Ｓ１８０６）。次に、読み出したアクセス条件とそれに対応するアクセス速度値を参照し、アクセス装置１００がコマンドの引数で指定したアクセス条件でアクセスした際に、アクセス装置１００が指定したアクセス速度値が満たされるか判定する（Ｓ１８０７，Ｓ１８０８）。アクセス速度値が満たされる場合、アクセス装置１００にアクセス速度値が満たされる旨を通知して処理を終了する（Ｓ１８０９）。アクセス速度値が満たされない場合、アクセス装置１００にアクセス速度値が満たされない旨を通知して処理を終了する（Ｓ１８１０）。
このように図１７、図１８に記載した処理手順によれば、アクセス装置１００は半導体メモリカード１１１にアクセス条件とアクセス速度値を入力し、その条件で半導体メモリカード１１１にアクセスした場合にアクセス速度値が満たされるか確認することができる。本方法におけるアクセス条件、アクセス速度値は、例えば図１４に示される情報と同様である。本方法により、アクセス装置１００は想定するアクセス方法で所望のアクセス性能が満たされるかどうかをアクセスに先立ち認識することができる。
続いて第５の方法として、半導体メモリカード１１１のアクセス速度に関連する情報のうち速度性能のレベルを表現するフラグを用いる場合について説明する。このフラグを第１の方法から第４の方法に記載されているアクセス速度値の代わりにしてもよく、又図７に示すようにアクセス速度値内に含めるようにしてもよい。本方法における、アクセス装置１００、半導体メモリカード１１１間の処理は、第１の方法から第４の方法に記載された処理のいずれかの処理を使用する。
図１９（ａ）は本方法における速度性能レベル判定基準の一例、図１９（ｂ）は判定結果の一例を示した図である。図１９（ａ）で示した速度性能レベル判定基準は、カード情報格納部１３２内の第５の情報として格納されている。図１９（ａ）に示した速度性能レベル判定基準では、判定に用いる値としてリード、ライト、イレースの各処理における転送レートの平均値を使用しており、本判定基準に基づき、アクセス速度値は値に応じて“高速”、“中速”、“低速”のいずれかの速度性能レベルが割り当てられる。同様に転送レートの最悪値に関しても速度性能レベル判定基準が存在する。図１９（ｂ）の例では、各アクセス速度値に“高速”の速度性能レベルが割り当てられている。
本方法では、このように半導体メモリカード１１１のアクセス性能を数値だけではなく、客観的なレベルに分類し、アクセス装置１００が半導体メモリカード１１１からレベルを取得できるようにしている。そのためアクセス装置１００は半導体メモリカード１１１のアクセス性能を容易に認識することが可能となる。
続いて第６の方法として、半導体メモリカード１１１の物理特性に関連する情報のうち、消費電力量のレベルを表現するフラグを用いる場合について説明する。このフラグをアクセス装置１００が半導体メモリカード１１１に入力し、それに対応するアクセス条件及びアクセス速度値を入手する方法について説明する。本方法では、カード情報格納部１３２には消費電力量レベルに対応付けられて複数のアクセス条件やアクセス速度についての情報が存在しているものとする。
本方法における、アクセス装置１００、半導体メモリカード１１１間の処理は、第１の方法から第４の方法に記載された処理のいずれかの処理を使用する。ここでは一例として、第１の方法に適用した場合について説明する。本方法におけるアクセス装置１００側の処理は、図８に示した処理手順と同じである。しかしながらＳ８０６においてアクセス装置１００が半導体メモリカード１１１に対して発行する最適アクセス情報取得コマンドの引数として、消費電力量のレベルを表現する消費電力量レベルを付加する点が異なる。消費電力量レベルは、半導体メモリカード１１１が消費する電力量の大小を複数のレベルに分割し表現したものであり、例えば“消費電力大”、“消費電力中”、“消費電力小”の３段階で表現するなどの方法を取る。
次に、図２０に示す半導体メモリカード１１１側の処理手順について説明する。この方法においてもＳ２００１〜２００５までの処理は図１０に示す半導体メモリカード１１１側のＳ１００１〜Ｓ１００５の処理と同様である。最適アクセス情報取得コマンドであれば、Ｓ２００６において、アクセス装置１００から発行された最適アクセス情報取得コマンドの引数に指定された消費電力量レベルが有効な値であるか判定する。有効でなければエラー処理を行う（Ｓ２００７）。有効であればＳ２００８において、指定された消費電力量レベルにおいて最適にアクセスするためのアクセス条件、アクセス速度値をカード情報格納部１３２から読み出す。そして読み出した情報をアクセス装置１００に送信して処理を終える（Ｓ２００９）。すなわち、本方法では、カード情報格納部１３２に格納された情報が消費電力量レベルに対応付けられて複数存在していることを想定しており、アクセス装置１００から指定された消費電力量レベルに応じた情報を選択してアクセス装置１００に送信する。
本方法では、このように半導体メモリカード１１１からアクセス速度に関する情報を取得する際に、アクセス装置１００が想定する消費電力量のレベルを表現する値を半導体メモリカード１１１に指定し、指定した消費電力量で半導体メモリカード１１１が動作した際のアクセス速度に関する情報をアクセス装置１００が取得する。これにより、例えばアクセス装置１００が半導体メモリカード１１１を低消費電力で駆動させたい場合に、必要となるアクセス条件や、その際のアクセス速度値を認識することが可能となる。
尚、ここでは第１の方法と同様に、電力量のフラグを半導体メモリカード１１１に入力し、これに対応するアクセス条件とアクセス速度を得るようにしているが、第２の方法に示すようにアクセス条件に加えて、消費電力量のレベルをメモリカードに示し、これに応じたアクセス速度を得るようにしてもよい。又第３の方法に示されるように、アクセス速度に加えて電力量レベルを示すフラグを半導体メモリカード１１１に入力し、これに対応するアクセス条件を得るようにしてもよい。更に第４の方法に示されるように、アクセス条件、アクセス速度に加えて消費電力量を示すフラグを入力し、この条件を満たすかどうかの結果を半導体メモリカード１１１より得るようにしてもよい。
続いて第７の方法は、アクセス装置１００の要求に応じて、アクセス速度値をアクセス装置１００が算出するために最低限必要な情報を半導体メモリカード１１１が返す方法である。この方法について、図２１から図２５を用いて説明する。この場合には図７に示したカード情報格納部１３２の図７に示すカード内部処理時間には以下に示すアクセス性能基礎情報表（ＡＰＢＩＬ）の内容を保持するようにしてもよい。
図２１はそれぞれ、本方法におけるアクセス装置１００側の処理手順を示した図、図２２は半導体メモリカード１１１側の処理手順を示した図である。図２１に示すアクセス装置１００側の処理手順において、まずカード種別取得コマンドを発行し（Ｓ２１０１）、取得に成功したかどうかを判断する（Ｓ２１０２）。成功しなければエラー終了を行い（Ｓ２１０３）、成功すればＳ２１０４においてアクセス性能基礎情報表取得コマンドに対応するカードかどうかを判別する。この対応カードでなければＳ２１０５においてアクセス性能基礎情報表の取得を中止する。対応カードであればＳ２１０６においてアクセス性能基礎情報表取得コマンドを発行する。そしてこの情報表の取得が成功したかどうかを判断し（Ｓ２１０７）、取得に失敗すればエラー終了を行う（Ｓ２１０８）。この情報表の取得に成功すればＳ２１０９において、この情報表からアクセス速度値を算出する。Ｓ２０１０のステップにおいて、算出したアクセス速度値を基に自アクセス装置１００が必要とするアクセス速度を満たすために必要なアクセス条件を算出する。これら２つのステップについては、本方法における半導体メモリカード１１１側の処理手順を説明した後に図を用いて説明する。
次に、図２２に示す半導体メモリカード１１１側の処理手順について説明する。第１の方法と同様に、本方法でもアクセス装置１００はカード種別取得コマンドを発行するが、半導体メモリカード１１１側の処理は、図９に示す処理と同じである。図２２は、図２１の説明におけるアクセス性能基礎情報表取得コマンドがアクセス装置１００から発行された場合における半導体メモリカード１１１側の処理を示した図である。図２２の処理において、コマンドを受信し（Ｓ２２０１）、不正コマンドであればエラー終了する（Ｓ２２０２，Ｓ２２０３）。不正コマンドでなければＳ２２０４においてアクセス性能基礎情報表取得コマンドかどうかをチェックする。このコマンドでなければ他の処理を実施し（Ｓ２２０５）、アクセス性能基礎情報表取得コマンドをカード情報格納部１３２から読み出す（Ｓ２２０６，Ｓ２２０７）。
次に、図２３、図２４、図２５を用いてアクセス性能基礎情報表、及び、この表を用いてアクセス速度値を算出する方法について説明する。図２３は、半導体メモリカード１１１がアクセス装置１００に返すアクセス性能基礎情報表（ＡＰＢＩＬ）の一例を示した図である。図２４、図２５は、アクセス装置１００と半導体メモリカード１１１間におけるコマンド・レスポンスのタイミングの一例を示した図である。半導体メモリカード１１１のアクセス性能を表す数値として、転送レートなどが挙げられる。しかしながら、アクセス装置１００、半導体メモリカード１１１間の転送レートを決定する要因は半導体メモリカード１１１だけに存在するのではなく、アクセス装置１００側にも存在するため、実際の転送レートを導出するためにはアクセス装置１００側の条件を加味する必要がある。本方法では、半導体メモリカード１１１側のアクセス性能の決定要因に関する情報をアクセス装置１００が取得できるようにし、アクセス装置１００側の要因を加味してアクセス装置１００がアクセス速度を算出することを可能とする。
図２３は、アクセス性能を決定する半導体メモリカード１１１側の要因に関する情報であるアクセス性能基礎情報表（ＡＰＢＩＬ）の一例を示す図である。本図に示すようにリード、ライト及びイレース処理毎にテーブル１−Ａ，１−Ｂ，１−Ｃを有する。図２３（ｂ）はライト処理における５１２バイトのデータ転送当たりのビジー時間を示している。この情報表では、処理時間が変わる要因として処理単位サイズ、シーケンシャルアクセス（ＳＡ）又はランダムアクセス（ＲＡ）によって変わる表が示されている。
次に、図２３に示したアクセス性能基礎情報表を基にアクセス速度値を算出する方法について説明する。図２４、図２５は、アクセス装置１００と半導体メモリカード１１１間におけるコマンド・レスポンスのタイミングの一例を示した図である。図２４（ａ）はリード処理、図２４（ｂ）はライト処理、図２５はイレース処理に対応している。図２４（ａ）のリード処理におけるアクセス速度値は、コマンド発行処理時間ＲＴ１、カード内部処理時間ＲＴ２、データ転送時間ＲＴ３の合計を基に算出される。ここで、ＲＴ１、ＲＴ３はアクセス装置１００が半導体メモリカード１１１に入力するクロック周波数に依存し決定される時間であり、アクセス装置１００側で時間を算出することができる。一方ＲＴ２はカード内部処理にかかる時間であり、半導体メモリカード１１１に依存して決定される。そのため、半導体メモリカード１１１から取得するアクセス性能基礎情報表には、このＲＴ２を決定するために必要な情報を格納する。
同様に図２４（ｂ）のライト処理におけるアクセス速度値は、コマンド発行処理時間ＷＴ１、カード内部処理時間ＷＴ２、データ転送時間ＷＴ３の合計を基に算出される。従ってリード処理と同様に、アクセス性能基礎情報表にはカード内部処理時間ＷＴ２を決定するために必要な情報を格納する。
同様に図２５のイレース処理におけるアクセス速度値は、コマンド発行処理時間ＥＴ１、カード内部処理時間ＥＴ２の合計を基に算出される。従ってリード処理と同様に、アクセス性能基礎情報表にはカード内部処理時間ＥＴ２を決定するために必要な情報を格納する。
ここでライト処理を一例としてアクセス速度値の算出例を説明する。アクセス速度値として単位サイズのデータ処理にかかる時間（全ライト時間：ＷＴ＿Ａ）を算出する。ＷＴ＿Ａは、次式（１）で求めることができる。
ＷＴ＿Ａ＝ＷＴ１＋ΣＷＴ２＋ΣＷＴ３…（１）
ここでコマンド発行処理時間ＷＴ１は、コマンド入力からレスポンス取得完了までに必要なデータ転送量を１６０ビットとし、入力クロック周波数をｓＭＨｚとした場合、次式（２）で求めることができる。
ＷＴ１＝１６０／（ｓ×ＰＯＷ（１０，６））…（２）
ここでＰＯＷ（Ｘ，Ｙ）は、ＸのＹ乗を意味する。
次に、ΣＷＴ２はカード内部処理にかかる時間の総和であり、図２４（ｂ）に記載されたビジー時間をｔ（秒）、処理単位サイズをｎ（バイト）とした場合、次式（３）で求めることができる。
ΣＷＴ２＝ｔ×ｎ／５１２…（３）
次に、ΣＷＴ３はデータ転送時間の総和であり、ビット幅として４ビットを使用し、転送データの正当性を確認するために付加するＣＲＣを５１２バイトのデータに加算した場合の合計転送クロック数を１０４９クロックとした場合、次式（４）で求めることができる。
ΣＷＴ３＝（１０４９×ｎ／５１２）／（ｓ×ＰＯＷ（１０，６））…（４）
従って、算出の一例として、入力クロック周波数を２５ＭＨｚ、処理単位サイズを１２８ＫＢ、シーケンシャルアクセスを想定した場合、ｔは９．２μｓとなり、ＷＴ＿Ａは１３．１ｍｓと算出される。
本方法では、このようにアクセス速度を決定する半導体メモリカード１１１側の要因に関する情報をアクセス装置１００から取得し、それに対応したアクセス性能を出力する。従ってアクセス装置１００は、アクセス装置１００側の要因を加味してアクセス速度を算出することが可能となる。
次に第８の方法は、様々なアクセス条件におけるアクセス速度値の一覧をカード情報格納部１３２に保持しておき、アクセス装置１００からの要求に応じて半導体メモリカード１１１が返す方法である。この方法について、図２６から図２８を用いて説明する。
図２６、図２７、図２８は、半導体メモリカード１１１に保持しているアクセス性能表の一例を示した図である。図２６（ａ）は単位時間あたりに処理可能なデータサイズを各入力クロック毎に示したものであり、図２６（ｂ）はその一部分についてアクセス単位毎にシーケンシャルアクセスとランダムアクセスについて標準値と最悪値とを詳細に示したものである。又図２７（ａ）は単位サイズのデータ処理に必要な時間をリード処理、ライト処理、イレース処理につき異なった入力クロック毎に示したものである。図２７（ｂ）はその一部分の入力クロックが２５ＭＨｚのライト処理について、更に単位サイズのデータ処理に必要な時間について処理単位サイズ毎に、及びシーケンシャルアクセスとランダムアクセスについて標準値と最悪値とを詳細に示したものである。図２８（ａ）は単位サイズでアクセスした際の処理速度としてアクセス性能を表現したものであり、入力クロックの夫々についてリード処理、ライト処理、イレース処理についてのテーブルを示している。又図２８（ｂ）はその一部分について、入力クロックが２５ＭＨｚ、ライト処理の場合に処理単位サイズ毎にシーケンシャルアクセスとランダムアクセスについて標準値と最悪値とを詳細に示している。これらはアクセス性能の表現方法が異なるだけであり、いずれも半導体メモリカード１１１のアクセス速度を表現した情報である。
図２９はそれぞれ、本方法におけるアクセス装置１００側の処理手順を示した図、図３０は半導体メモリカード１１１側の処理手順を示した図である。アクセス装置１００は図２９に示すように、まずカード種別取得コマンドを発行し（Ｓ２９０１）、このカード種別の取得に成功したかどうかを判別する（Ｓ２９０２）。この取得にエラーがあればエラー終了し（Ｓ２９０３）、取得に成功すればＳ２９０４においてアクセス性能表取得コマンド対応カードかどうかを判別する。この対応カードでなければアクセス性能表の取得を中止し（Ｓ２９０５）、対応カードであればアクセス性能表取得コマンドを発行する（Ｓ２９０６）。そしてＳ２９０７においてアクセス性能表の取得に成功したかどうかを判別し、エラーであればエラー終了する（Ｓ２９０８）。アクセス性能表の取得に成功すれば、Ｓ２９０９においてアクセス性能表を基にしてアクセス条件を決定して処理を終える。
半導体メモリカード１１１は図３０に示すようにコマンドを受信し、不正コマンドであればエラー処理を行い（Ｓ３００１〜３００３）、アクセス性能表取得コマンドであるかどうかを判別する（Ｓ３００４）。このコマンドでなければアクセス性能表の取得を中止し（Ｓ３００５）、このコマンドであればカード情報格納部１３２からアクセス性能表を読み出す（Ｓ３００６）。そしてＳ３００７においてアクセス性能表をアクセス装置に送信して処理を終える。
すなわち、本方法が第７の方法と異なる点は、アクセス装置１００は半導体メモリカード１１１からアクセス速度に関する情報を取得するので、アクセス装置１００側でアクセス速度を算出する必要がない点である。本方法では、このようにアクセス装置１００がこれらのアクセス性能表を取得し、半導体メモリカード１１１に対するアクセス条件の一覧と、各アクセス条件でアクセスした際のアクセス速度値を認識することができる。これにより、アクセス装置１００は自身が想定するアクセス条件でアクセスした場合のアクセス速度値がいくらであるか、あるいは自身が必要とするアクセス速度値を満たすためにどのようなアクセス条件でアクセスすれば良いか認識することが可能となる。
以上、説明したように本実施例における半導体メモリカード１１１は、アクセス装置１００から半導体メモリカード１１１にアクセスする際のアクセス性能を、半導体メモリカード１１１内のカード情報格納部１３２に保持する。半導体メモリカード１１１はこの情報の一部、あるいは全てを、アクセス装置１００からの要求に応じアクセス装置１００に送信する。これにより、アクセス装置１００は半導体メモリカード１１１のアクセス性能を知ることができる。従って、アクセス装置１００が半導体メモリカード１１１に対して最適なアクセス方法でアクセスすることが可能となり、半導体メモリカード１１１の最高性能を引き出すことが可能となる。
尚、カード情報格納部１３２に格納された情報はそれぞれ更新可能としても良い。例えば、図１９（ａ）に示すような速度性能レベル判定基準を、半導体メモリカード１１１の外部から入力し、更新することで、判定基準を後から変更できる構成としても良い。更に別の例として、半導体メモリカード１１１内部の状態が変化することにより、アクセス性能に関する情報が変化する場合は、半導体メモリカード１１１内で内部状態を監視しておき、内部状態の変化に応じてアクセス性能に関する情報を変更する構成としても良い。また、本実施例では、半導体メモリカード１１１の種別判定をアクセス装置１００側における全ての処理の先頭で行う例を記載したが、半導体メモリカード１１１に最初にアクセスした際に１回だけ種別判定を行う構成としても良い。また、図７で示したアクセス性能に関する情報の全てを使用する必要はなく、一部のみを使用しても良いし、図７で示した情報の一部と他の情報とを組み合わせて使用しても良い。また、速度性能レベル、消費電力量レベルとして、それぞれ３種類のレベルに分けられる例について記載したが、３種類以外の複数種類に分割しても良い。また、アクセス性能表として図２６、図２７、図２８の３種類の例を示したが、半導体メモリカード１１１のアクセス性能を示す情報であれば、その他の表現形式を用いても良く、更にこれら複数の表現形式を組み合わせて使用しても良い。また、カード情報が格納される第１のメモリ１１８を更新可能な不揮発性メモリとして説明したが、更新する必要がない場合はＲＯＭなどの更新不可能な不揮発性メモリを使用しても良い。また、第１のメモリ１１８ではなく、不揮発性メモリ１１７内にカード情報を格納する構成としても良い。
【実施例２】  本発明の実施例２では、カード情報格納部を備えた半導体メモリカードから、半導体メモリカードのアクセス性能に関する情報を取得し、アクセス装置におけるファイルシステムの制御に使用するようにしたアクセス装置について説明する。
本実施例における半導体メモリカード、及びアクセス装置の構成は、図１に示す構成と同じである。本実施例では特に、アクセス装置１００内のＲＯＭ１０４におけるファイルシステム制御部１０６、アクセス条件決定部１０７、カード情報取得部１０８、カード使用条件格納部１１０について詳細に説明する。
本実施例における詳細な説明を行う前に、半導体メモリカード１１１に格納されたデータを管理するために使用されるファイルシステムとして、ＦＡＴファイルシステムを一例として説明する。図３１にＦＡＴファイルシステムの構成を示す。図３１のファイルシステム管理領域１１７−Ａは、半導体メモリカード１１１内の不揮発性メモリ１１７におけるファイルシステムで管理する領域を意味し、図１でユーザデータ１３１と記載された領域の全領域、あるいは一部の領域に相当する。尚図３１でＬＡは論理アドレスを示す。ＦＡＴファイルシステムでは、ファイルシステム管理領域１１７−Ａの先頭にファイルシステム管理領域１１７−Ａの全体を管理するための管理情報領域３００１が存在し、引き続いてファイル内のデータなどを格納するデータ領域３００２が存在する。管理情報領域３００１は、マスターブートレコード・パーティションテーブル（以下、ＭＢＲ・ＰＴという）３００３、パーティションブートセクタ（以下、ＰＢＳという）３００４、ファイル・アロケーションテーブル（以下、ＦＡＴという）３００５，３００６、ルートディレクトリエントリ（以下、ＲＤＥという）３００７から構成される。
ＭＢＲ・ＰＴ３００３は、ファイルシステム管理領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。ＰＢＳ３００４は、１つのパーティション内の管理情報を格納する部分である。ＦＡＴ３００５、３００６は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ＲＤＥ３００７は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、ＦＡＴ３００５、３００６は、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常、ファイルシステム管理領域内に２つの同じ情報を持つＦＡＴ３００５、３００６が存在し、二重化されている。
データ領域３００２は複数のクラスタに分割され管理されており、各クラスタにはファイルに含まれるデータが格納されている。多くのデータを格納するファイルなどは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、ＦＡＴ３００５、３００６に格納されたリンク情報により管理されている。
次に図３２を用いてＦＡＴファイルシステムにおけるデータ格納例を説明する。データ領域３００２は、クラスタと呼ばれる固定長ブロック単位で管理されており、各クラスタには２から始まる昇順のクラスタ番号が付与されている。ＦＡＴ３００５、３００６は各クラスタの使用状況と、各クラスタ間の繋がりを示すリンク情報を管理しており、各クラスタ番号に対応したＦＡＴエントリから構成される。ＦＡＴエントリは、ＦＡＴファイルシステムの種別により、１クラスタあたり１２ビット、１６ビット、３２ビットの３種類のうち、いずれかの大きさとなる。図３２の例では１６ビットで１エントリが表現される場合を示している。ＦＡＴエントリには、次に繋がるクラスタのクラスタ番号、当該クラスタが空き領域であることを示す０ｘ００００、当該クラスタがリンク終端であることを示す０ｘＦＦＦＦのいずれかの値が格納される。図３２の拡大した図のポインタ２〜７で示す部分がクラスタ番号２〜７に対するＦＡＴエントリを示している。この例では、クラスタ番号２、５、７に対応するＦＡＴエントリに０ｘ００００が格納されており、これら３つのクラスタが空き領域であることを示している。また、クラスタ番号３に対応するＦＡＴエントリに０ｘ０００４、クラスタ番号４に対応するＦＡＴエントリに０ｘ０００６、クラスタ番号６に対応するＦＡＴエントリに０ｘＦＦＦＦが格納されており、クラスタ番号３、４、６の３つのクラスタにデータが分割して格納されていることを示している。
次に図３３、図３４、図３５を用いてＦＡＴファイルシステムにおけるファイルデータの書き込み例を説明する。図３３は書き込み処理を示すフローチャート、図３４は書き込み処理前のディレクトリエントリ３３０１、ＦＡＴ３００５、３００６、データ領域３００２の一例を示した図である。図３５は書き込み処理後のディレクトリエントリ３３０１、ＦＡＴ３００５、３００６、データ領域３００２の一例を示した図である。ＦＡＴファイルシステムでは、ルートディレクトリエントリ３００７やデータ領域３００２の一部に、ファイル名やファイルサイズ、ファイル属性などの情報を格納したディレクトリエントリ３３０１が格納されている。図３４（ａ）はディレクトリエントリ３３０１の一例を示している。このディレクトリエントリ３３０１で示されるファイルは、ファイル名がＦＩＬＥ１．ＴＸＴであり、クラスタ番号（Ｃｌ．Ｎｏ．）１０からファイルのデータが格納されている。また、ファイルサイズは６００００バイトである。図３４（ｂ）は対応クラスタ番号９〜１４のＦＡＴのデータの例が示されている。又図３４（ｃ）は１クラスタの大きさを１６３８４バイトと仮定しており、クラスタ１０〜１３の４クラスタにまたがってファイルＦＩＬＥ１．ＴＸＴのデータが格納されている。
図３３はＦＡＴファイルシステムにおけるファイルデータ書き込みの処理手順を示した図である。図３３を用いて、ファイルデータ書き込み処理を説明する。ファイルデータ書き込み処理では先ず始めに対象ファイルのディレクトリエントリ３３０１を読み込む（Ｓ３３０１）。次に、読み込んだディレクトリエントリ３３０１に格納されたファイル開始クラスタ番号を取得し、ファイルデータの先頭位置を確認する（Ｓ３３０２）。次に、ＦＡＴ３００５、３００６を読み込み、Ｓ３３０２で取得したファイルデータの先頭位置から順にＦＡＴ３００５、３００６上でリンクを辿り、書き込み位置のクラスタ番号を取得する（Ｓ３３０３）。次に、データ書き込みに際し、ファイルに新たに空き領域を割り当てる必要があるか判定する（Ｓ３３０４）。空き領域の割り当てが不要な場合Ｓ３３０６の処理に進む。空き領域の割り当てが必要な場合、ＦＡＴ３００５、３００６上で空き領域を検索し、１クラスタの空き領域をファイルの終端に割り当てる（Ｓ３３０５）。次に、現在参照しているクラスタ内に書き込めるだけのデータをデータ領域３００２に書き込む（Ｓ３３０６）。次に、全データの書き込みが完了したか判定する（Ｓ３３０７）。まだデータが残っている場合、Ｓ３３０４の処理に戻る。全データの書き込みが完了した場合、ディレクトリエントリ３３０１内に格納されたファイルサイズやタイムスタンプなどを更新し、半導体メモリカード１１１に書き込む（Ｓ３３０８）。最後にＦＡＴ３００５、３００６を半導体メモリカード１１１に書き込み、処理を完了する（Ｓ３３０９）。
このファイルデータ書き込み処理により、図３４に示された６００００バイトのデータを持つファイルＦＩＬＥ１．ＴＸＴに１００００バイトのデータを更に書き込んだ場合、図３５に示されるようにクラスタ番号Ｃｌ．Ｎｏ１４に新たなデータが書き込まれて７００００バイトのデータを持つファイルに変化する。
このようにＦＡＴファイルシステムでは、ファイルデータの格納領域としてクラスタ単位で領域割り当てが行われ、データが格納される。また、１つのファイルに割り当てられる複数のクラスタは必ずしも連続しているとは限らず、不連続な領域が割り当てられる可能性がある。最悪の場合クラスタ単位に分割された不連続領域にファイルデータを書き込むことになる。この場合、半導体メモリカード１１１に対する１回のアクセスサイズは１クラスタ以下の大きさとなり、半導体メモリカード１１１に対して最も高速にアクセスするために必要なアクセス単位がクラスタサイズよりも大きい場合、半導体メモリカード１１１の最高性能でアクセスすることができなくなる。
本実施例では、半導体メモリカード１１１からアクセス性能に関する情報を取得し、ファイルシステムの処理に使用することで、半導体メモリカード１１１に最適なアクセス方法でファイルアクセスする方法を提供する。
続いて本実施例におけるファイルシステムアクセス単位の決定処理について説明する。ファイルシステムアクセス単位（以下、ＦＳアクセス単位という）とは、ファイルシステムが領域管理を行う管理単位として通常使用するクラスタとは別に、本実施例で新たに設けた管理単位である。クラスタの大きさはファイルシステムを使用する機器間の互換性のため、上限値が設けられており、容易に大きさを変更することはできない。しかしながら半導体メモリカード１１１に最適にアクセスするために必要なアクセス単位はクラスタの上限サイズ以内の大きさであるとは限らない。そのため本実施例では、クラスタの他に、半導体メモリカード１１１から取得するアクセス性能に関する情報に基づいて設定されるＦＳアクセス単位という新たな領域管理単位を設け、ファイルシステムの処理に使用する。こうして既存のファイルシステムとの互換性を保ちつつ、半導体メモリカード１１１の特性に応じたアクセスが実現できるようにする。
図３６を用いて、本実施例におけるＦＳアクセス単位の決定処理について説明する。図３６は、ファイルシステム制御部１０６がアクセス条件決定部１０７からＦＳアクセス単位を取得する処理手順の一例を示した図である。図３６において、先ずファイルシステム制御部１０６からアクセス条件決定部１０７へＦＳアクセス単位の取得を要求する（Ｓ３６０１）。次に、アクセス条件決定部１０７からカード情報取得部１０８へカード情報取得を要求する（Ｓ３６０２）。次に、実施例１で説明したいずれかの方法を用いて、カード情報取得部１０８が半導体メモリカード１１１からカード情報を取得する（Ｓ３６０３）。カード情報の取得に失敗した場合、カード情報取得部１０８からアクセス条件決定部１０７を経由してファイルシステム制御部１０６にエラーを通知し、処理を終了する（Ｓ３６０４，Ｓ３６０５）。取得に成功した場合、カード情報取得部１０８からアクセス条件決定部１０７へカード情報を送信する（Ｓ３６０６）。次に、アクセス条件決定部１０７はカード使用条件格納部１１０から、アクセス装置１００が半導体メモリカード１１１にアクセスする際のアクセス条件や、所望するアクセス速度値などの情報であるカード使用条件を取得する（Ｓ３６０７）。次に、カード情報、カード使用条件を比較し、カード使用条件に適した処理単位サイズが存在するか判定する（Ｓ３６０８）。半導体メモリカード１１１がカード使用条件で示されたアクセス速度値を満たすことができない場合など、適切な処理単位サイズが存在しなかった場合、ファイルシステム制御部１０６にエラーを通知して処理を終了する（Ｓ３６０９，Ｓ３６１０）。適切な処理単位サイズが存在した場合、その処理単位サイズをＦＳアクセス単位に決定し、アクセス条件決定部１０７からファイルシステム制御部１０６へ送信し、処理を終了する（Ｓ３６１１）。
このように本実施例では、カード情報と、カード使用条件を比較し、半導体メモリカード１１１にアクセスする最適なアクセス単位としてＦＳアクセス単位を決定する。例えば図２８（ｂ）に示すように、入力クロック２５ＭＨｚ、ライト処理においてシーケンシャルアクセスの際に、１６ＫＢ単位でのアクセスでは６ＭＢ／ｓ、１２８ＫＢ単位でのアクセスでは１０ＭＢ／ｓのアクセス性能が標準値となる半導体メモリカード１１１を想定する。ここでアクセス装置１００が８ＭＢ／ｓのアクセス性能を必要とする場合、ＦＳアクセス単位を１２８ＫＢと決定する。そしてこのＦＳアクセス単位毎に半導体メモリカード１１１にアクセスすることで、所望のアクセス性能を得ることが可能となる。
また、カード使用条件の一例としては、図１４に示すようなアクセス条件と、アクセス速度値が挙げられる。すなわち、図１４（ａ）のアクセス条件は、アクセス装置１００が半導体メモリカード１１１に対して想定しているアクセス方法に関する条件を示した情報であり、図１４（ｂ）に示すアクセス速度値はこの条件で半導体メモリカード１１１にアクセスした際に求めるアクセス性能の値である。これらアクセス性能に関する情報をアクセス装置１００が保持することで、半導体メモリカード１１１が自己の要求するアクセス性能を満たすことが可能か判定することが可能となる。
また、図３６で示した処理手順は、実施例１で示した第１の方法のように、アクセス装置１００がアクセス条件、アクセス速度値に関する情報を入力しない場合における処理手順である。実施例１で示した第２の方法のように、アクセス装置１００がアクセス条件を入力する必要がある場合、図３６の処理においてステップＳ３６０１とＳ３６０２の間に、アクセス条件決定部１０７がカード使用の条件格納部１１０からカード使用条件を取得してカード情報取得部１０８に通知するステップが付加される。
以下では、図３６に示す処理手順により決定したＦＳアクセス単位をファイルシステムの処理に使用するいくつかの方法について説明する。
第１の方法として、ＦＳアクセス単位を意識してファイルシステムをフォーマットする方法について説明する。図３７はＦＳアクセス単位を意識してファイルシステムがフォーマットされた場合の構成例を示す。ＦＳアクセス単位はここでは１２８ＫＢとし、クラスタサイズの倍数長となるよう設定する。ここでは１クラスタを１６ＫＢとする。図３７において管理情報領域３００１はＭＢＲ・ＰＴ３００３、ＰＢＳ３００４、ＦＡＴ３００５，３００６、ＲＤＥ３００７である。本実施例では、管理情報領域３００１の大きさを調整し、ＦＳアクセス単位のＭ倍数長（Ｍは整数）になるように設定する。ここでは管理情報領域３００１は図示のように２つのＦＳアクセス単位ＦＳＡＵ−０、ＦＳＡＵ−１にまたがり、５１２セクタ（Ｓ）を用いている。
これにより、データ領域３００２の先頭がＦＳアクセス単位境界と一致し、以降のデータ領域３００２の領域管理をＦＳアクセス単位で無駄なく実現することが可能となる。更に、ＦＳアクセス単位はクラスタサイズの倍数長となるように設定しているので、データ領域３００２内の領域管理をＦＳアクセス単位倍数長で行いつつ、クラスタ単位の領域管理と整合させることが可能となる。
続いて第２の方法として、ＦＳアクセス単位を意識したファイルデータ書き込み方法について説明する。図３８は、本方法におけるファイルデータ書き込み処理手順を示した図である。ファイルデータ書き込み処理では、先ず残り書き込みデータ長がＦＳアクセス単位長以上存在するか判定する（Ｓ３８０１）。ＦＳアクセス単位長未満の場合、Ｓ３８０８の処理に進む。ＦＳアクセス単位長以上の場合、半導体メモリカード１１１への書き込みに先立ち、ＦＳアクセス単位長のデータを作成する（Ｓ３８０２）。次に、ＦＳアクセス単位長毎にＦＡＴ３００５、３００６上で空き領域を検索し、ＦＳアクセス単位内に含まれる領域が全て空きクラスタである領域を取得する（Ｓ３８０３）。空き領域が存在しなかった場合、エラーを通知し処理を終了する（Ｓ３８０４，Ｓ３８０５）。空き領域が存在した場合、取得した空き領域にＦＳアクセス単位長のデータを一括して書き込む（Ｓ３８０６）。次に、全データの書き込みが完了したかどうかを判定する（Ｓ３８０７）。書き込みが完了していない場合、Ｓ３８０１の処理に戻る。書き込みが完了した場合、処理を終了する。またＳ３８０１で残りデータ長がＦＳアクセス単位未満と判定した場合、ＦＳアクセス単位未満の残りデータを作成する（Ｓ３８０８）。次に、Ｓ３８０３のステップと同様にＦＳアクセス単位内に含まれる領域が全て空きクラスタである領域を取得する（Ｓ３８０９）。空き領域が存在しなかった場合、エラーを通知し処理を終了する（Ｓ３８１０，Ｓ３８１１）。空き領域が存在した場合、取得した空き領域に残りデータを一括して書き込み、処理を終了する（Ｓ３８１２）。
ここでファイルデータ書き込み処理において、ＦＳアクセス単位の空き領域が存在しない場合、書き込み処理をエラーとしたが、ＦＳアクセス単位以下の空き領域を取得しデータを書き込むようにしても良い。
図３９はデータ領域の使用状態の一例を示す図である。この例ではＦＳアクセス単位ＦＳＡＵ−０にファイルＦＩＬＥ１のデータが書き込まれており、ＦＳアクセス単位ＦＳＡＵ−１にディレクトリＤＩＲ１の情報が書き込まれている。このようなデータ配置となっている場合、本方法ではファイルデータ書き込み領域としてＦＳアクセス単位ＦＳＡＵ−２の領域（クラスタ番号Ｃｌ．Ｎｏ．１８から２５までの領域）を選択する。すなわち、ファイルデータや、ディレクトリの情報がＦＳアクセス単位内に１クラスタでも存在するＦＳアクセス単位ＦＳＡＵ−０や、ＦＳアクセス単位ＦＳＡＵ−１の領域はファイルデータ書き込み領域として使用しない。従って、ある程度大きなファイルサイズを有するファイルのデータに対しては、必ずＦＳアクセス単位の連続領域が確保されるため、半導体メモリカード１１１に対して最適なアクセス単位で高速にアクセスすることが可能となる。
続いて第３の方法として、ＦＳアクセス単位を意識したディレクトリ領域の割り当て方法について説明する。図４０，図４１は、本方法におけるディレクトリ領域の割り当て処理の手順を示した図である。ディレクトリ領域割り当て処理では、先ず現在参照位置をデータ領域先頭に設定する（Ｓ４００１）。次に、現在参照しているＦＳアクセス単位内にディレクトリ領域が存在するか判定する（Ｓ４００２）。存在しない場合、Ｓ４００５の処理に進む。存在する場合、現在参照しているＦＳアクセス単位内に空きクラスタが存在するか判定する（Ｓ４００３）。空きクラスタが存在しない場合、Ｓ４００５の処理に進む。空きクラスタが存在する場合、その空きクラスタをディレクトリ領域に割り当て、処理を終了する（Ｓ４００４）。Ｓ４００２、Ｓ４００３の判定で領域が存在しなかった場合、データ領域３００２の全てに対して確認が完了したか判定する（Ｓ４００５）。完了していない場合、現在参照位置を次のＦＳアクセス単位に設定し（Ｓ４００６）、Ｓ４００２の処理に戻る。
そして全領域の確認が完了した場合、図４１において、全データ領域３００２からＦＳアクセス単位内に含まれる領域が全て空きクラスタである領域を取得する（Ｓ４００７）。空き領域が存在する場合、取得した領域に含まれる１つの空きクラスタをディレクトリ領域に割り当て、処理を終了する（Ｓ４００８，Ｓ４００９）。空き領域が存在しない場合、全データ領域から空きクラスタを取得する（Ｓ４０１０）。空きクラスタが存在しない場合、エラーを通知して処理を終了する（Ｓ４０１１，Ｓ４０１２）。空き領域が存在する場合、取得した空きクラスタをディレクトリ領域に割り当て、処理を終了する（Ｓ４０１３）。
図４２はデータ領域の使用状態の一例を示す図である。図４２に示すようにＦＳアクセス単位ＦＳＡＵ−０にデータが含まれ、ＦＳアクセス単位ＦＳＡＵ−１のクラスタ番号１０，１１にディレクトリ領域を含むデータ配置となっているものとする。この場合、本方法ではＦＳアクセス単位ＦＳＡＵ−１に含まれる空きクラスタ、即ちクラスタ番号１２〜１７にディレクトリを割り当てる。このようにディレクトリ領域を割り当てることで、ディレクトリ領域が同一のＦＳアクセス単位内に優先的に格納され、結果的にＦＳアクセス単位長の空き領域を生じ易くなる。これにより、第２の方法によるファイルデータの連続領域確保が効果的に行えるようになる。
続いて第４の方法として、ＦＳアクセス単位を意識したデフラグを行う方法について説明する。デフラグとは、記録媒体内に分散配置されたファイルデータを、連続領域に配置されるように再配置し、ファイルデータへのアクセスを高速に行えるようにする処理である。本方法では、このデフラグ処理において、ＦＳアクセス単位を意識したデフラグを行う。図４３はデフラグ処理前のデータ配置の一例を示した図である。この例では、３つのＦＳアクセス単位ＦＳＡＵ−０，ＦＳＡＵ−１，ＦＳＡＵ−２のいずれにもファイルデータ、あるいはディレクトリが格納されている。そのため第２の方法におけるＦＳアクセス単位の空き領域取得では、空き領域を取得することができない。ここでＦＳアクセス単位を考慮したデフラグ処理により、ＦＳアクセス単位ＦＳＡＵ−２に含まれるディレクトリ領域をＦＳアクセス単位ＦＳＡＵ−１の空きクラスタ領域に移動し、ディレクトリ領域をＦＳアクセス単位ＦＳＡＵ−１に集める。この処理を（１）で示す。更にＦＳアクセス単位ＦＳＡＵ−２のファイル（ＦＩＬＥ２）のデータをＦＳアクセス単位ＦＳＡＵ−０の空きクラスタ領域に移動し、ファイルデータをＦＳアクセス単位ＦＳＡＵ−０に集める。この処理を（２）で示す。その結果、図４４に示すようなデータ配置に変更され、ＦＳアクセス単位ＦＳＡＵ−２が全て空き領域となり、第２の方法におけるＦＳアクセス単位の空き領域取得で、ファイルデータ用の空き領域として割り当てることが可能となる。
すなわち本方法では、デフラグ処理において、ディレクトリ領域を同一のＦＳアクセス単位に集め、更にＦＳアクセス単位サイズ未満のファイルデータを同一のＦＳアクセス単位に集めることで、可能な限りＦＳアクセス単位倍数長の空き領域を生成する。これにより、第２の方法によるファイルデータの連続領域確保が効果的に行えるようになる。また、記録媒体内でファイルデータ格納などに使用されている全領域を１つの連続領域に併合し空き領域全体を１つの連続領域とする必要はなく、あくまでＦＳアクセス単位倍数長の空き領域を生成するようにデフラグ処理を行うことで、デフラグ処理にかかる時間を短縮することができる。
続いて第５の方法として、ＦＳアクセス単位の残り空き領域長を取得する方法について説明する。図４５は、本方法における残り空き領域長取得処理手順を示した図である。残り空き領域長取得処理において、先ず空きＦＳアクセス単位数に０を設定する（Ｓ４５０１）。次に、現在参照位置をデータ領域先頭に設定する（Ｓ４５０２）。次に現在参照しているＦＳアクセス単位内が全て空きクラスタであるか判定する（Ｓ４５０３）。全て空きクラスタであった場合、空きＦＳアクセス単位数に１加算する（Ｓ４５０４）。次に全領域の確認が完了したか判定する（Ｓ４５０５）。完了していない場合、現在参照位置を次のＦＳアクセス単位に設定し、Ｓ４５０３の処理に戻る（Ｓ４５０６）。完了している場合、空きＦＳアクセス単位数に格納されている数値をバイト数に換算し、アプリケーションプログラム１０５に通知して、処理を終了する（Ｓ４５０７）。
ここでは残り空き領域長取得処理において、残り空き領域長をバイト数に換算して通知する例を示したが、残り空き領域長が正しく認識できればセクタ数やクラスタ数に換算して通知しても良い。
図４６はデータ領域３００２のデータの配置状態を示す図であり、使用中のクラスタをハッチングで示している。このようにデータ配置が成されている場合には、本方法の残り空き領域長取得処理では、図示のように３つの空き連続領域（ＳＥＥ）が存在する。このためＦＳアクセス単位内の全ての領域が空きクラスタである３つのＦＳアクセス単位ＦＳＡＵ−１，ＦＳＡＵ−３，ＦＳＡＵ−５を空き領域と判定する。
本方法では、このようにＦＳアクセス単位長の空き領域の個数を算出し、アプリケーションプログラム１０５に通知することで、アプリケーションプログラム１０５がＦＳアクセス単位の残り空き領域長を認識することが可能となる。これにより、アクセス装置１００が必要とするアクセス性能を満たしたアクセスをＦＳアクセス単位毎に行う際に、そのアクセス性能で残りどれだけのデータを書き込めるか認識することが可能となる。
以上、説明したように実施例２におけるアクセス装置１００は、半導体メモリカード１１１からアクセス性能に関する情報を取得し、最適なアクセス単位を決定し、ファイルシステムの処理にそのアクセス単位を使用する。これにより、アクセス装置１００が半導体メモリカード１１１に対して最適なアクセス方法でアクセスすることが可能となり、半導体メモリカード１１１の最高性能を引き出すことが可能となる。
尚、実施例２では、ファイルシステム制御部１０６以下を全てアクセス装置１００のＲＯＭ１０４上のプログラムで実現している例について記載したが、それら機能の全て、あるいは一部をハードウェア化し、アクセス装置１００に付加した構成としても良い。例えば、図４７に示すように、ＲＯＭ１０４内にはアプリケーションプログラム１０５のみを格納し、ファイルシステム制御部１０６、アクセス条件決定部１０７、カード情報取得部１０８、アクセス制御部１０９、条件格納部１１０をハードウェア化し、半導体メモリカード制御ＬＳＩ４７０１としてアクセス装置１００に付加する構成としても良い。図４７で示した構成は一例であり、半導体メモリカード制御ＬＳＩ４７０１にＦＳアクセス単位を設定することで、以降の半導体メモリカード１１１に対するデータ転送を自動的にＦＳアクセス単位にまとめてデータ送信する機能など、本実施例で説明した機能の一部のみをハードウェア化しても良い。また、本実施例ではファイルシステムの一例としてＦＡＴファイルシステムを用いて説明したが、一定の管理単位サイズ毎に領域管理を行うファイルシステムであれば、ＵＤＦなど他のファイルシステムを用いても良い。
産業上の利用の可能性
本発明に関わる半導体メモリカード、アクセス装置及びアクセス方法は、アクセス装置側、半導体メモリカード側のいずれか、あるいは両者の処理を最適化することにより、半導体メモリカードに対する高速アクセスを実現することができる。このような半導体メモリカード、及びアクセス装置または方法は、半導体メモリカードを記録媒体として使用するデジタルＡＶ機器や携帯電話端末、デジタルカメラ、ＰＣ等に利用できる。また、転送レートの高い高品質ＡＶデータを記録する記録媒体、及び機器に使用する場合、特に好適に機能する。
【図１】
0004647492.tif 000002
【図２】
0004647492.tif 000003
【図３】
0004647492.tif 000004
【図４】
0004647492.tif 000005
【図５】
0004647492.tif 000006
【図６】
0004647492.tif 000007
【図７】
0004647492.tif 000008
【図８】
0004647492.tif 000009
【図９】
0004647492.tif 000010
【図１０】
0004647492.tif 000011
【図１１】
0004647492.tif 000012
【図１２】
0004647492.tif 000013
【図１３】
0004647492.tif 000014
【図１４】
0004647492.tif 000015
【図１５】
0004647492.tif 000016
【図１６】
0004647492.tif 000017
【図１７】
0004647492.tif 000018
【図１８】
0004647492.tif 000019
【図１９】
0004647492.tif 000020
【図２０】
0004647492.tif 000021
【図２１】
0004647492.tif 000022
【図２２】
0004647492.tif 000023
【図２３】
0004647492.tif 000024
【図２４】
0004647492.tif 000025
【図２５】
0004647492.tif 000026
【図２６】
0004647492.tif 000027
【図２７】
0004647492.tif 000028
【図２８】
0004647492.tif 000029
【図２９】
0004647492.tif 000030
【図３０】
0004647492.tif 000031
【図３１】
0004647492.tif 000032
【図３２】
0004647492.tif 000033
【図３３】
0004647492.tif 000034
【図３４】
0004647492.tif 000035
【図３５】
0004647492.tif 000036
【図３６】
0004647492.tif 000037
【図３７】
0004647492.tif 000038
【図３８】
0004647492.tif 000039
【図３９】
0004647492.tif 000040
【図４０】
0004647492.tif 000041
【図４１】
0004647492.tif 000042
【図４２】
0004647492.tif 000043
【図４３】
0004647492.tif 000044
【図４４】
0004647492.tif 000045
【図４５】
0004647492.tif 000046
【図４６】
0004647492.tif 000047
【図４７】
0004647492.tif 000048