(57)【特許請求の範囲】
【請求項１】
ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置において、
ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、
上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、
上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、
上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う制御手段を備えた情報処理装置。
【請求項２】
ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置の情報処理方法として、
上記情報処理装置の制御手段が、
ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、
上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、
上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、
上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理方法に係り、特にファイルアクセス時の処理に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータやＰＤＡ（Personal Digital Assistants：携帯情報機器）などの情報処理装置においては、装置内部に設けられる内部記憶部としてはＲＡＭ、フラッシュメモリ等の固体メモリやＨＤＤ（Hard Disc Drive）などがあり、また装置外部の記憶部として、光ディスク、光磁気ディスク、磁気ディスク、メモリカードなどの各種の可搬性の記録媒体を利用できるようにされている。
【０００３】
【発明が解決しようとする課題】
ところでこれらの情報処理装置からアクセスを行う記録媒体においては、その記録媒体へのアクセス処理を行うファイルシステムにおいて、ディレクトリ構造やファイル名設定方法が規定されているものがある。
例えばディレクトリ名が規定され、データファイルは、その種別に応じて対応するディレクトリ下に置かれるべく規定されていたり、ファイル名称としての基本構造が規定されて、例えばユーザーが任意のファイル名を付けることはできないようなものである。
【０００４】
この場合、例えばファイル記録時にユーザーがディレクトリ名やファイル名を誤って指定したため、処理がエラーとなってしまい記録が行えないなどの不都合が生じることがあり、ユーザーにとって使用性のよいものとはいえない。
また、ユーザーやアプリケーションソフトウェアにより、任意に設定した規定外のディレクトリ名やファイル名を有効としてしまうとファイルシステムにとっては不都合となる。
【０００５】
【課題を解決するための手段】
本発明はこのような問題に鑑みて、記録媒体へのアクセス処理を行うファイルシステムにおいて、ディレクトリ構造やファイル名設定方法が規定されているものについて好適な処理方式を実現することを目的とする。
【０００６】
このため本発明の情報処理装置は、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置において、ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行う制御手段を備える。
【０００７】
本発明の情報処理方法は、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う情報処理装置の情報処理方法として、上記情報処理装置の制御手段が、ファイルアクセス要求のあった際に、当該ファイルアクセス要求のディレクトリ名又はファイル名として、上記規定に合致したディレクトリ名又はファイル名が指定されているか否かを判別し、上記規定に合致したディレクトリ名又はファイル名が指定されていなければ、上記ファイルアクセス要求に係るディレクトリ名又はファイル名の拡張子による、上記ファイルアクセス要求に係るファイルタイプの指定を確認し、上記拡張子でファイルタイプが指定されていれば、指定されているファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行い、上記拡張子でファイルタイプが指定していなければ、ファイル内容自体からファイルタイプを判別し、判別したファイルタイプに応じて上記規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行うようにする。
【０００８】
即ち本発明は、記録媒体に対するファイルアクセスの際に、そのファイルシステムの規定によるディレクトリ名やファイル名が設定されるようにすることで、ユーザーが上記規定を意識しなくてもよいものとする。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態を次の順序で説明する。なお、実施の形態の情報処理装置が記録再生を行う記録媒体はメモリカードとされた例を挙げる。
１．情報処理装置の外観例
２．情報処理装置の構成
３．ＯＳ構造及びデータベース構造
４．メモリカード
４−１  外観
４−２  メモリカードの端子及び内部構造
４−３  ファイルシステム処理階層
４−４  物理的データ構造
４−５  物理アドレス及び論理アドレスの概念
４−６  論理−物理アドレス変換テーブル
４−７  ディレクトリ構造
５．ＦＡＴ構造
６．メモリカードと情報処理装置のインターフェース
７．メモリカードへのファイルアクセス処理
【００１０】
１．情報処理装置の外観例
本例の情報処理装置の外観例を図１に示す。
この情報処理装置１は、いわゆるＰＤＡ機器として携帯に適した小型軽量の装置とされる。また記録媒体として、後述するメモリカード７０を装着し、記録再生を行うことができるものとする。
なお本発明としては、携帯型の情報処理装置に限られず、パーソナルコンピュータをはじめとするあらゆるタイプの情報処理装置に適用できるものであり、また装置が記録を行う記録媒体はメモリカードに限られず、ＨＤＤ、光ディスク、光磁気ディスク、或いは装置内に固定的に配置されるＲＡＭ、フラッシュメモリなど、他の種の記録媒体であってもよいものである。
【００１１】
図１（ａ）（ｂ）（ｃ）（ｄ）は情報処理装置１の外観例としての平面図、右側面図、左側面図、上面図を示している。
図１（ｄ）に示すように装置上面側には後述するメモリカード７０を装着可能なメモリスロット７が形成されており、この情報処理装置１は、メモリスロット７に装着されたメモリカード７０に対する各種データ（コンピュータ用データ、音楽データ、音声データ、動画像データ、静止画像データ、制御データなど）の記録再生が可能とされる。
なお、この図１の例ではメモリスロット７が２つ形成されていることから、２つのメモリカード７０を同時に装着できるようになされている。もちろん、形成するメモリスロット７の数は１つでもよいし、３つ以上でもよい。
【００１２】
この情報処理装置１には、平面上に例えば液晶パネルによる表示部２が形成され、アプリケーションソフトウエアの起動及び各種処理に伴う画像、データとしての画像や文字、再生される音声、音楽に付随する情報、さらには操作のガイドメッセージ、再生や編集操作等のためのメニュー画面などが表示される。
【００１３】
情報処理装置１上には、ユーザーの操作のための各種の操作子が設けられる。例えば操作キー３ａ、ジョグダイヤル３ｂ、プッシュダイヤル３ｃなどがそれぞれ所要部位に形成される。
これらの操作子によりユーザーは、例えば電源操作、メニュー操作、選択操作、文字等の入力操作、その他必要とされる各種の操作を行うことができる。
これらの操作子はもちろん一例にすぎない。即ち配備する操作子の数、種類、位置は多様に考えられる。
【００１４】
また、情報処理装置１上には、スピーカ４，マイクロホン５，撮像部６も形成され、音声の出力、入力、撮像による画像の取込なども実行できるようにされている。
【００１５】
また各種機器との接続のために、各種端子が形成される。例えば図１（ｂ）のように、ヘッドホン端子１０、ライン出力端子１２、ライン入力端子１１などが形成され、また図１（ｃ）のようにＩＥＥＥ１３９４端子８、ＵＳＢ(universal
serial bus)端子９などが形成される。
なお、これらの端子の種類、数、配置位置も、他の例が多様に考えられる。
例えば光ケーブル対応のデジタル入出力端子を備えるようにしたり、或いはＳＣＳＩコネクタ、シリアルポート、ＲＳ２３２Ｃコネクタなどが形成されるようにしても良い。
【００１６】
２．情報処理装置の構成
図２に情報処理装置１の内部構成を示す。
図示するように情報処理装置１内には、まず中核となる部位として、システムコントローラ２１、ＣＰＵ２２、フラッシュＲＯＭ２３、Ｄ−ＲＡＭ２４が設けられる。また基本的なユーザーインターフェースのための部位として操作部３５，表示制御部２７，表示部２が形成される。
【００１７】
システムコントローラ２１は操作部３５からの操作情報を入力し、それに応じてＣＰＵ２２に割り込みをかける。
操作部３５とは、図１に示した各種操作子３ａ、３ｂ、３ｃに相当する。また図１では説明しなかったが、表示部２に操作キーやアイコンの表示を行うとともに表示部２上でのタッチ検出機構を設けることで、タッチパネル操作子を形成してもよく、その場合のタッチパネル操作子も図２でいう操作部３５に含まれるものとなる。
【００１８】
ＣＰＵ２２は基本ソフト（ＯＳ：Operating System）やアプリケーションプログラムが動作される部位となる。
ＣＰＵ２２はシステムコントローラ２１を介して供給される操作情報に応じて所要の処理を実行する。
フラッシュＲＯＭ２３は、基本動作プログラム、各種処理定数、設定情報などを記憶する領域とされる。
Ｄ−ＲＡＭ２４は、各種処理に必要な情報の記憶、データのバッファリング、ＣＰＵ２２のワークエリアの拡張、その他、ＣＰＵ２２の処理に応じて多様に使用される。またＤ−ＲＡＭ２４にはストレージエリア（不揮発性領域）が設けられており、そのストレージエリアにはＯＳやアプリケーションソフトウエアがインストールされる。
そしてＤ−ＲＡＭ２４にインストールされたアプリケーションソフトウエアは、ユーザからの操作に応じて起動され、ＣＰＵ２２により実行される。
またアプリケーションソフトウエアはユーザーインターフェース画面を持ち、ユーザーの指示による状態遷移に基づいて、Ｄ−ＲＡＭ２４に確保されたフレームバッファに描画を行う。
描画された画像データは、表示制御部２７に送られ、表示部２に表示される。
【００１９】
また上述したようにメモリカード７０に対するメモリスロット７が形成され、メモリカード７０を装着できるが、ＣＰＵ２２は、メモリカードインターフェース２８を介して装着されたメモリカード７０に対して書込又は読み出しアクセスすることができる。メモリカードインターフェース２８とメモリカード７０との間のインターフェース動作については後述する。
ＣＰＵ２２は、装着されたメモリカード７０を、拡張的なメモリ領域として利用することができる。
また、もちろんメモリカード７０にアプリケーションプログラムが記録されていれば、それをＤ−ＲＡＭ２４にインストールしたり、或いはアプリケーションやデータを直接Ｄ−ＲＡＭ２４に展開して所要処理を実行させることができる。
また、或るアプリケーションに基づいてＣＰＵ２２が、作成した文書データ、画像データ、オーディオデータ、表計算データなどを、メモリカード７０に記録することもできる。
なお、メモリスロット７にメモリカード７０が装着されたことを検出することで、メモリカード７０に対する動作が記録再生動作可能になったり、或いはメモリカード７０に記録されているアプリケーションやデータが自動的にＤ−ＲＡＭ２４に展開されるなどの、いわゆるホットプラグイン動作も可能である。
またメモリカードインターフェース２８は、メモリカード７０に記録するデータについての暗号化処理や、読み出したデータの暗号解読処理なども可能とされる。
【００２０】
撮像部６は例えばＣＣＤ撮像素子及び撮像回路系によりに形成される。撮像部６により取り込まれた撮像画像データは、撮像データインターフェース３４を介してＤ−ＲＡＭ２４に取り込むことができ、またＣＰＵ２２は所定のアプリケーションプログラムに基づく動作により、撮像画像データの編集やメモリカード７０への記録等を実行できる。
【００２１】
オーディオインターフェース２９は、上述したスピーカ４、マイクロホン５、ヘッドホン端子１０、ライン出力端子１２，ライン入力端子１１から入出力されるオーディオデータのインターフェース部位となる。
例えばマイクロホン５或いはライン入力端子１１から入力されたアナログオーディオ信号は、入力オーディオ処理部３２でそれぞれ所定の増幅処理やフィルタリングが行われ、Ａ／Ｄ変換器３３でデジタルオーディオデータとされてオーディオインターフェース２９に供給される。オーディオインターフェース２９は、入力されたデジタルオーディオデータについて、ＣＰＵ２２の制御に基づいて処理や出力を実行する。例えば所要の圧縮エンコード処理を行った後、メモリカードインターフェース２８に供給し、メモリカード７０に記録させることができる。またオーディオインターフェース２９は、例えばメモリカード７０から読み出されるなどして供給されたデジタルオーディオデータについて所定のデコード処理を行い、Ｄ／Ａ変換器３０に供給する。Ｄ／Ａ変換器３０はデジタルオーディオデータをアナログオーディオ信号に変換する。出力オーディオ処理部３１は供給されたアナログオーディオ信号について、出力先に応じた所定の増幅処理、インピーダンス調整などを行い、スピーカ４，ヘッドホン端子１０、ライン出力端子１２に出力する。
【００２２】
ＵＳＢインターフェース２５は、ＵＳＢコネクタ９に接続された外部機器との間の通信インターフェースである。ＣＰＵ２２はＵＳＢインターフェース２５を介して外部のパーソナルコンピュータ或いは周辺機器などとの間でデータ通信を行うことができる。例えばこの情報処理装置１で扱われる制御データ、コンピュータデータ、画像データ、オーディオデータなどの送受信が実行される。
同様にＩＥＥＥ１３９４インターフェース２６は、ＩＥＥＥ１３９４端子８に接続された外部機器との間の通信インターフェースである。ＣＰＵ２２はＩＥＥＥ１３９４インターフェース２６を介して外部の情報機器との間で各種データ通信を行うことができる。
【００２３】
なお、この図２に示す情報処理装置１の構成はあくまでも一例であり、これに限定されるものではない。即ち、一般にパーソナルコンピュータやＰＤＡ機器で採用されている各種構成部位を追加したり、或いは実際の製品として不要の部位を削除することは、設計上の都合により決められるものである。
【００２４】
３．ＯＳ構造及びデータベース構造
続いて図３で、本例の情報処理装置１に搭載されるＯＳ構造について説明する。図３に示すように、ＯＳは、基本ソフトの中心部分としてのカーネルを含むマネージャ層と、標準ライブラリ、及び制御ＩＣなどのハードウエアのレイヤとなるＨＡＬ（Hardware Abstraction Layer）から構成される。
アプリケーションソフトウエアは、このようなＯＳ構造による基本動作上で動作される。
またＨＡＬに対しては、１又は複数のデバイスドライバとして階層が付加され実際のハードウエア（ＨＷ）が駆動される。
【００２５】
ここで、特に本例の情報処理装置１の場合は、メモリカード７０をドライブ可能とし、かつ後述するがメモリカード７０のデータはＦＡＴにより管理されることから、ＯＳにＦＡＴライブラリが付加され、さらに、メモリカードをハンドリングするためのライブラリ（ＭＳライブラリ）が付加される。
そしてこのＦＡＴライブラリ及びＭＳライブラリに基づいて、メモリドライブがメモリカード７０がドライブされる構造とされている。
【００２６】
このようなＯＳ構造を持つ本例の情報処理装置１では、さらに通常でいうところの「ファイル」に相当する概念として、「データベース」という概念が導入されている。
ここでいう「データベース」とは、通常いうところのデータベースのように単にデータを蓄積していったものではなく、データベース自体がデータを管理できる構造としてフォーマット化されている。この意味で、「データベース」は「ファイル」に相当する。
【００２７】
図４にデータベース構造を示す。即ちデータベースには、ヘッダ（ＤＴＢヘッダ）としてデータベースネーム（ＤＴＢ  Ｎａｍｅ）及びその他情報を含む領域が形成され、さらにポインタテーブルが配される。そしてデータ領域に記録される実際のデータは、ポインタテーブルに記録されたポイント情報により、位置的な管理が行われる状態となっている。
【００２８】
このような構造のデータベースとしては、２種類のものが存在する。例えば一般に１つのアプリケーションソフトウエアは複数のファイルで構成され、その中には実行ファイル（＊＊＊．ｅｘｅ）と、データファイル（＊＊＊．ｄａｔａ）があるが、その実行ファイル（＊＊＊．ｅｘｅ）に相当するものとして「リソースデータベース（＊＊＊．ｐｒｃ）」があり、またデータファイル（＊＊＊．ｄａｔａ）に相当するものとして「データベースデータベース（＊＊＊．ｄｔｂ）」がある。
【００２９】
本例の情報処理装置１では、このような「データベース」という概念によりデータを扱う。従って、メモリカード７０において記録再生されるファイル（ＦＡＴで扱われるファイル）も、上記データベースの形態となる。
なお本明細書では、「ファイル」という言葉を用いるが、これは一般的な概念にあわせて用いているものであり、本実施の形態に関していえば、「ファイル」とは上記構造のデータベースの意味となる。
【００３０】
４．メモリカード
４−１  外観
次にメモリカード７０について説明していく。
まず図５にメモリカード７０の外形形状を示す。
メモリカード７０は、例えば図５に示すような板状の筐体内部に例えば所定容量ののメモリ素子を備える。本例としては、このメモリ素子としてフラッシュメモリ（Flash Memory）が用いられるものである。
図５に平面図、正面図、側面図、底面図として示す筐体は例えばプラスチックモールドにより形成され、サイズの具体例としては、図に示す幅Ｗ１１、Ｗ１２、Ｗ１３のそれぞれが、Ｗ１１＝６０ｍｍ、Ｗ１２＝２０ｍｍ、Ｗ１３＝２．８ｍｍとなる。
【００３１】
筐体の正面下部から底面側にかけて例えば１０個の電極を持つ端子部７２が形成されており、この端子部７２から、内部のメモリ素子に対する読出又は書込動作が行われる。
筐体の平面方向の左上部は切欠部７３とされる。この切欠部７３は、このメモリカード７０を、例えばドライブ装置本体側の着脱機構へ装填する際などに挿入方向を誤ることを防止するためのものとなる。
また筐体上面から底面側にかけて、ラベル貼付面７４が形成され、ユーザーが記憶内容を書いたラベルを貼付できるようにされている。
さらに底面側には、記録内容の誤消去を防止する目的のスライドスイッチ７５が形成されている。
【００３２】
このようなメモリカード７０においては、フラッシュメモリ容量としては、４ＭＢ（メガバイト），８ＭＢ，１６ＭＢ，３２ＭＢ，６４ＭＢ，１２８ＭＢの何れかであるものとして規定されている。
またデータ記録／再生のためのファイルシステムとして、いわゆるＦＡＴ（File Allocation Table）システムが用いられている。
【００３３】
書込速度は１５００ＫＢｙｔｅ／ｓｅｃ〜３３０ＫＢｙｔｅ／ｓｅｃ、読出速度は２．４５ＭＢｙｔｅ／ｓｅｃとされ、書込単位は５１２バイト、消去ブロックサイズは８ＫＢ又は１６ＫＢとされる。
また電源電圧Ｖｃｃは２．７〜３．６Ｖ、シリアルクロックＳＣＬＫは最高２０ＭＨｚとされる。
【００３４】
４−２  メモリカードの端子及び内部構造
図６に端子部７２の電極構造を示す。図５に示したように端子部７２は１０個の平面電極が１列に並んだ構造とされるが、図６に示すように各電極（端子Ｔ１〜Ｔ１０）は次の通りとなる。
【００３５】
端子Ｔ１及びＴ１０は検出電圧Ｖｓｓ端子とされる。
端子Ｔ２は、シリアルプロトコルバスステート信号ＢＳの入力端子とされる。
端子Ｔ３及びＴ９は電源電圧Ｖｃｃ端子とされる。
端子Ｔ４はデータ端子、つまりシリアルプロトコルデータ信号の入出力端子とされる。
端子Ｔ５及びＴ７はリザーブ（予備）とされる。
端子Ｔ６は検出端子とされ、ドライブ装置側（情報処理装置１のメモリカードインターフェース）がメモリカードの装着検出に用いる。
端子Ｔ８は、シリアルクロックＳＣＬＫの入力端子とされる。
【００３６】
また図６にはメモリカード７０の内部構成も示している。
メモリカード７０の内部は、コントロールＩＣ８０とフラッシュメモリ８１が設けられている。コントロールＩＣ８０はフラッシュメモリ８１に対する書込／読出動作を実行する部位となる。
図からわかるように、コントロールＩＣ８０に対しては、端子Ｔ２からのシリアルプロトコルバスステート信号ＢＳ、端子Ｔ８からのシリアルクロックＳＣＬＫが供給される。書込動作時には、コントロールＩＣ８０は、これらのシリアルプロトコルバスステート信号ＢＳ、シリアルクロックＳＣＬＫに従って、端子Ｔ４から供給されるデータのフラッシュメモリ８１への書込を行う。また読出時には、シリアルプロトコルバスステート信号ＢＳ、シリアルクロックＳＣＬＫに従って、フラッシュメモリ８１からデータを読み出し、端子Ｔ４からドライブ装置側に出力する。
【００３７】
また検出電圧Ｖｓｓは、検出端子Ｔ６に供給されており、ドライブ装置側では、図示するように抵抗Ｒによって検出端子Ｔ６の端子電圧を検出することで、このメモリカード７０が装着部（メモリスロット７）に接続されているか否かを検出できるようにされる。
【００３８】
４−３  ファイルシステム処理階層
続いて、メモリカード７０を記録媒体とするシステムにおけるフォーマットについて説明していく。
図７は、メモリカード７０を記録媒体とするシステムのファイルシステム処理階層を示すものである。
この図に示すように、ファイルシステム処理階層としては、アプリケーション処理層の下に、順次、ファイル管理処理層、論理アドレス層、物理アドレス層、フラッシュメモリアクセスがおかれる。
この階層では、ファイル管理処理層がいわゆるＦＡＴ（File Allocation Table）となる。
また、この図から分かるように、本例のファイルシステムでは論理アドレス及び物理アドレスという概念が導入されているが、これについては後述する。
【００３９】
４−４  物理的データ構造
図８には、メモリカード７０内の記憶素子である、フラッシュメモリ８１の物理的データ構造が示されている。
フラッシュメモリ８１としての記憶領域は、セグメントという固定長のデータ単位が大元となる。このセグメントは、１セグメントあたり４ＭＢ（メガバイト）或いは８ＭＢとして規定されるサイズであり、１つのフラッシュメモリ８１内におけるセグメント数は、そのフラッシュメモリ８１の容量に依存して異なってくる。
【００４０】
そして、この１セグメントを図８（ａ）に示すように、ブロックという固定長のデータ単位として８ＫＢ（キロバイト）又は１６ＫＢにより区切るようにされる。原則として、１セグメントは５１２ブロックに区切られることから、図８（ａ）に示すブロックｎについては、ｎ＝５１１とされることになる。但し、フラッシュメモリ８１では、書き込み不可な損傷エリアであるディフェクトエリアとしてのブロック数が所定数の範囲で許可されているため、データ書き込みが有効とされる実質的なブロック数を対象とすれば、上記ｎは５１１よりも少なくなる。
【００４１】
図８（ａ）に示すようにして形成されるブロック０〜ｎのうち、先頭の２つのブロック０，１はブートブロックといわれる。但し、実際には有効なブロックの先頭から２つのブロックがブートブロックとして規定されることになっており、必ずしもブートブロックがブロック０，１である保証はない。
そして、残りのブロックが、ユーザデータが格納されるユーザブロックとなる。
【００４２】
１ブロックは、図８（ｄ）に示すようにして、ページ０〜ｍにより分割される。１ページの容量は、図８（ｅ）に示すように、５１２バイトのデータエリアと１６バイトの冗長部よりなる、５２８（＝５１２＋１６）バイトの固定長とされる。なお、冗長部の構造については図８（ｆ）により後述する。
また、１ブロック内のページ数としては、１ブロックの容量が８ＫＢの場合には１６ページ、１６ＫＢの場合には３２ページとなる。
【００４３】
このような、図８（ｄ）（ｅ）に示されるブロック内のページ構造は、上記ブートブロックとユーザブロックとで共通である。
また、フラッシュメモリ８１では、データの読み出し、及び書き込みはページ単位で行われ、データの消去はブロック単位で行われるものとされる。そして、データの書き込みは、消去済みのページに対してしか行われないものとされている。従って、実際のデータの書き換えや書き込みは、ブロック単位を対象として行われることになる。
【００４４】
先頭のブートブロックは、図８（ｂ）に示すように、ページ０に対してヘッダーが格納され、ページ１には初期不良データの位置（アドレス）を示す情報が格納される。また、ページ２にはＣＩＳ／ＩＤＳといわれる情報が格納される。
２つめのブートブロックは図８（ｃ）に示すように、ブートブロックとしてのバックアップのための領域とされている。
【００４５】
図８（ｅ）に示された冗長部（１６バイト）は、図８（ｆ）に示す構造を有する。
この冗長部は、図のように先頭の第０バイト〜第２バイトの３バイトが、データエリアのデータ内容の更新に応じて書き換えが可能なオーバーライトエリアとされる。このオーバーライトエリアのうち、第０バイトにはブロックステータスが格納され、第１バイトにはデータステータスが格納される(Block Flag Data)。また、第２バイトの上位の所定ビットを利用して変換テーブルフラグ(Page Data Status1)が格納される。
【００４６】
原則として第３バイト〜第１５バイトは、その内容が現ページのデータ内容に応じて固定とされ、書き換えが不可とされる情報が格納される領域となる。
第３バイトにはアクセス許可やコピー禁止指定等を示す管理フラグ(Block Info)が格納される。
第４，第５バイトから成る２バイトの領域には、後述する論理アドレス(Logic Address)が格納される。
第６〜第１０バイトの５バイトの領域は、フォーマットリザーブの領域とされ、続く第１１，第１２バイトの２バイトが、上記フォーマットリザーブに対して誤り訂正を施すための分散情報ＥＣＣを格納する領域とされる。
残る第１３〜第１５バイトには、図８（ｅ）に示すデータエリアのデータに対して誤り訂正を行うためのデータＥＣＣが格納される。
【００４７】
上記図８（ｆ）に示した冗長部の第３バイトに格納される管理フラグは、図９に示すようにして、ビット７〜ビット０の各ビットに、その内容が定義されている。
ビット７，６、及びビット１，０はリザーブ（未定義）領域とされている。
ビット５は現ブロックに対してのアクセス許可の「有効」（‘１’；Free）／「無効」(‘０’；Read Protected）を示すフラグが格納される。ビット４には現ブロックについてのコピー禁止指定（‘１’；ＯＫ ／‘０’；ＮＧ）についてのフラグが格納される。
【００４８】
ビット３は変換テーブルフラグとされる。この変換テーブルフラグは、現ブロックが後述する論理−物理アドレス変換テーブルであるのか否かを示す識別子であり、このビット３の値が‘０’とされていれば、現ブロックは論理−物理アドレス変換テーブルであることが識別され、‘１’であれば無効となる。つまり、現ブロックは論理−物理アドレス変換テーブルではないことが識別される。
【００４９】
ビット２はシステムフラグが格納され、‘１’であれば現ブロックがユーザブロックであることが示され、‘０’であればブートブロックであることが示される。
【００５０】
ここで、セグメント及びブロックと、フラッシュメモリ容量との関係を図１３（左３列を参照）により説明しておく。
メモリカード７０のフラッシュメモリ容量としては、４ＭＢ，８ＭＢ，１６ＭＢ，３２ＭＢ，６４ＭＢ，１２８ＭＢの何れかであるものとして規定されている。
そして、最も容量の小さい４ＭＢの場合であると、１ブロックは８ＫＢと規定された上で、そのブロック数としては５１２個とされる。つまり、４ＭＢはちょうど１セグメントの容量を有するものとされる。そして、８ＭＢの容量であれば、同様に１ブロック＝８ＫＢの容量が規定された上で、２セグメント＝１０２４ブロックとなる。なお、前述したように、１ブロック＝８ＫＢであれば、１ブロック内のページ数は１６ページとなる。
但し１６ＭＢの容量では、１ブロックあたりの容量として８ＫＢと１６ＫＢの両者が存在することが許可されている。このため、２０４８ブロック＝４セグメント（１ブロック＝８ＫＢ）のものと、１０２４ブロック＝２セグメント（１ブロック＝１６ＫＢ）のものとの２種類が在ることになる。１ブロック＝１６ＫＢの場合には、１ブロック内のページ数は３２ページとなる。
【００５１】
また、３２ＭＢ，６４ＭＢ，１２８ＭＢの容量では、１ブロックあたりの容量は１６ＫＢのみであるとして規定される。従って、３２ＭＢでは２０４８ブロック＝４セグメントとなり、６４ＭＢでは４０９６ブロック＝８セグメントとなり、１２８ＭＢでは８１９２ブロック＝１６セグメントとなる。
【００５２】
４−５  物理アドレス及び論理アドレスの概念
次に、上述したようなフラッシュメモリの物理的データ構造を踏まえたうえで、図１０に示すデータ書き換え動作に従って、本例のファイルシステムにおける物理アドレスと論理アドレスの概念について説明する。
【００５３】
図１０（ａ）には、或るセグメント内から４つのブロックを抜き出して、これを模式的に示している。
各ブロックに対しては物理アドレスが付される。この物理アドレスはメモリにおけるブロックの物理的な配列順に従って決まるもので、或るブロックとこれに対応付けされた物理アドレスとの関係は不変となる。ここでは、図１０（ａ）に示す４ブロックに対して、上から順に物理アドレスの値として、１０５，１０６，１０７，１０８が付されている。なお、実際の物理アドレスは２バイトにより表現される。
【００５４】
ここで、図１０（ａ）に示すように、物理アドレス１０５，１０６で示されるブロックがデータの記憶されている使用ブロックで、物理アドレス１０７，１０８で示されるブロックがデータが消去（即ち、未記録領域）された未使用ブロックとなっている状態であるとする。
【００５５】
そして、論理アドレスであるが、この論理アドレスは、ブロックに対して書き込まれたデータに付随するようにして割り振られるアドレスとされる。そして、この論理アドレスが、後述するＦＡＴファイルシステムが利用するアドレスとされている。
図１０（ａ）では、４つの各ブロックに対して、上から順に論理アドレスの値として、１０２，１０３，１０４，１０５が付されている状態が示されている。なお、論理アドレスも実際には２バイトにより表現されるものである。
【００５６】
ここで、上記図１０（ａ）に示す状態から、例えば物理アドレス１０５に格納されているデータの更新として、内容の書き換え又は一部消去を行うとする。
このような場合、フラッシュメモリのファイルシステムでは、同じブロックに対して更新したデータを再度書き込むことはせずに、未使用のブロックに対してその更新したデータを書き込むようにされる。
つまり、例えば図１０（ｂ）に示すようにして、物理アドレス１０５のデータは消去したうえで、更新されたデータはこれまで未使用ブロックであった物理アドレス１０７で示されるブロックに書き込むようにされる（処理▲１▼）。
【００５７】
そして、処理▲２▼として示すように、データ更新前（図１０（ａ））の状態では物理アドレス１０５に対応していた論理アドレス１０２が、更新されたデータが書き込まれたブロックの物理アドレス１０７に対応するように、論理アドレスについての変更を行うものである。これに伴って、データ更新前は物理アドレス１０７に対応していた論理アドレス１０４については、物理アドレス１０５に対応するように変更されている。
【００５８】
つまり、物理アドレスはブロックに対して固有に付されるアドレスであり、論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するようにしてついて回る、ブロック単位の書き込みデータに固有となるアドレスであるとみることができる。
【００５９】
このようなブロックのスワップ処理が行われることで、或る同一の記憶領域（ブロック）に対して繰り返し集中的にアクセスされることが無くなり、書き換え回数の上限があるフラッシュメモリの寿命を延ばすことが可能となる。
そして、この際に論理アドレスを上記処理▲２▼のようにして扱うことで、ブロックのスワップ処理によって更新前と更新後のデータとで書き込まれるブロックの移動があるようにされても、ＦＡＴからは同一のアドレスが見えることになり、以降のアクセスを適正に実行することができるものである。
なお、後述する論理−物理アドレス変換テーブル上での更新のための管理を簡略にすることなどを目的として、ブロックのスワップ処理は、１セグメント内で完結するものとして規定されている。逆に言えば、ブロックのスワップ処理はセグメント間で跨るようにしては行われない。
【００６０】
４−６  論理−物理アドレス変換テーブル
上記図１０による説明から分かるように、ブロックのスワップ処理が行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理−物理アドレス変換テーブルが必要となる。つまり、論理−物理アドレス変換テーブルをＦＡＴが参照することで、ＦＡＴが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になるものである。逆に言えば、論理−物理アドレス変換テーブルが無ければ、ＦＡＴによるフラッシュメモリへのアクセスが不可能となる。
【００６１】
従来では、例えばセット本体に対してメモリカード７０が装着されたときに、セット本体側のマイクロプロセッサがメモリカード７０の記憶内容をチェックすることで、セット本体側で論理−物理アドレス変換テーブルの構築を行い、更にこの構築された論理−物理アドレス変換テーブルをセット本体側のＲＡＭに格納するようにしていた。つまり、メモリカード７０内には、論理−物理アドレス変換テーブルの情報は格納されてはいなかった。
これに対して本例では、以降説明するようにメモリカード７０に対して、論理−物理アドレス変換テーブルを格納するように構成している。
【００６２】
図１１は、本例のメモリカード７０に対して格納される論理−物理アドレス変換テーブルの構築形態を概念的に示すものである。
つまり、本例では、例えば論理アドレスの昇順に従って、これに対応する２バイトの物理アドレスを格納するようにしたテーブル情報を論理−物理アドレス変換テーブルとして構築するようにされる。
なお、前述したように、物理アドレス、及び論理アドレスは共に２バイトで表現される。これは、１２８ＭＢの最大容量のフラッシュメモリの場合には８１９２個のブロックが存在するため、最大で、この８１９２個のブロック数をカバーできるだけのビット数が必要とされることに基づく。
このため、図１１において例示している物理アドレスと論理アドレスとについても、実際に即して２バイトで表現している。
但し、ここでは、この２バイトを１６進数により表記している。つまり、「０ｘ」によりその後続く値が１６進法表記であることが示される。なお、この「０ｘ」により１６進数であることを表す表記は、以降の説明において１６進数を表記する場合にも同様に用いることとする。（但し、表記の煩雑化を防ぐため「０ｘ」を省略している図面もある。）
【００６３】
図１２に、上記図１１に示した概念に基づく論理−物理アドレス変換テーブルの構造例を示す。
論理−物理アドレス変換テーブルは、フラッシュメモリの最後のセグメント内の或るブロックに対して、図１２に示すようにして格納される。
先ず図１２（ａ）に示すように、ブロックを分割するページのうち、ページ０，１からなる２ページの領域がセグメント０用の論理−物理アドレス変換テーブルとして割り当てられる。例えば、図１３にて説明したように、フラッシュメモリが４ＭＢの容量であれば１セグメントしか有さないために、このページ０，１のみの領域が論理−物理アドレス変換テーブルの領域となる。
また、例えばフラッシュメモリが８ＭＢの容量であれば２セグメントを有するため、セグメント０用の論理−物理アドレス変換テーブルとして割り当てられるページ０，１に加え、これに続くページ２，３の２ページがセグメント１用の論理−物理アドレス変換テーブルとして割り当てられることになる。
【００６４】
以降、フラッシュメモリの容量の増加に応じて、続く２ページごとにセグメントごとの論理−物理アドレス変換テーブルの割り当て領域が設定されていくことになる。そして、最大の１２８ＭＢの容量を有する場合であれば１６セグメントが存在するため、最大では、セグメント１５用までのページが論理−物理アドレス変換テーブルの領域として割り当てられることになる。従って、最大の１２８ＭＢの容量のフラッシュメモリでは、３２ページが使用されることになり、図１２（ａ）に示すページＮとしては、最大でＮ＝３１となる。
これまでの説明から分かるように、論理−物理アドレス変換テーブルは、セグメントごとに管理されるものである。
【００６５】
図１２（ｂ）は、１セグメントあたりの論理−物理アドレス変換テーブルの構造を示すものとして、２ページ分のデータエリアを抜き出して示している。つまり、１ページのデータエリアは５１２バイト（図８（ｅ）参照）であることから、図１２（ｂ）には、１０２４（＝５１２×２）バイトが展開されている状態が示されている。
【００６６】
図１２（ｂ）に示すように、この２ページ分のデータエリアである１０２４バイトについて２バイトごとに区切り、この２バイトごとの領域を、先頭から順次、論理アドレス０用、論理アドレス１用・・・・、のようにして割付を行い、最後は先頭から９９１バイト目と９９２バイト目の２バイトの領域を論理アドレス４９５用の領域として割り付けるように規定を行う。これら２バイトごとの領域に対して、各論理アドレスが対応する物理アドレスを書き込むようにする。従って、本例の論理−物理アドレス変換テーブルでは、実際のデータ更新によるブロックのスワップ処理などにより物理アドレスと論理アドレスの対応が変更された場合には、論理アドレスを基準として、物理アドレスの格納状態が更新されるようにしてテーブル情報の書き換えが行われることになる。
【００６７】
また、残る９９３バイト目から最後の１０２４バイト目までの計３２バイトの領域は、余剰ブロックの物理アドレスが格納される領域として割り当てられる。つまり、１６個の余剰ブロックの物理アドレスを管理することができる。ここでいう余剰ブロックとは、例えばブロック単位でデータの更新を行う際に書き換え対象となるデータを一時待避させる領域として設定されたいわゆるワークブロックなどを言うものである。
【００６８】
ところで、１セグメントは５１２ブロックに分割されているものであると先に説明したのにも関わらず、図１２に示したテーブル構造では、管理可能なブロック数が論理アドレス０用〜論理アドレス４９５用の４９６ブロックとしている。これは、実際上、上記した余剰アドレスが設定されることと、前述したように、フラッシュメモリでは、或ブロック数のディフェクト（使用不可領域）が許可されている。そのため現実には、相当数のディフェクトブロックが存在することに依る。
従って、実際には、書き込み／消去が有効なブロックを管理するのに、４９６ブロックを管理できるように構成しておけば充分とされるものである。
【００６９】
そして、このようにして論理−物理アドレス変換テーブルが格納されるブロックについては、これを形成する各ページの冗長部における管理フラグ（図９参照）のデータ内容として、この管理フラグのビット３に対して‘０’がセットされることになる。これにより、当該ブロックが論理−物理アドレス変換テーブルが格納されているブロックであることが示されることになる。
【００７０】
論理−物理アドレス変換テーブルが格納されるブロックも、論理−物理アドレス変換テーブルの内容の書き換えがあった場合には、例外なく、先に図１０にて説明したスワップ処理が行われる。従って、論理−物理アドレス変換テーブルが記録されているブロックは不定であり、或る特定のブロックに論理−物理アドレス変換テーブルを格納するように規定することは出来ない。
そこで、ＦＡＴは、フラッシュメモリにアクセスして上記した管理フラグのビット３が‘０’とされているブロックを検索することで、論理−物理アドレス変換テーブルが格納されているブロックを識別するようにされる。但し、論理−物理アドレス変換テーブルが格納されているブロックの検索がＦＡＴによって容易に行われるようにすることを考慮して、論理−物理アドレス変換テーブルが格納されているブロックは、そのフラッシュメモリ内における最後のナンバが付されたセグメントに在るように、本例では規定するものとされる。これにより、ＦＡＴは最後のナンバが付されたセグメントのブロックのサーチだけで、論理−物理アドレス変換テーブルを検索することができる。つまり、論理−物理アドレス変換テーブルを検索するのに、フラッシュメモリの全てのセグメントを検索する必要は無いようにされる。
上記図１２に示した論理−物理アドレス変換テーブルは、例えばメモリカード７０の製造時において格納するようにされる。
【００７１】
ここで、再度図１３を参照して、フラッシュメモリ容量と論理−物理アドレス変換テーブルのサイズとの関係を説明しておく。
上記図１１にて説明したように、１セグメントを管理するための論理−物理アドレス変換テーブルのサイズは２ページ分の１０２４バイト、つまり１ＫＢとなる。従って、図１３の最右列に記されているように、フラッシュメモリが４ＭＢ（１セグメント）の容量では論理−物理アドレス変換テーブルは１ＫＢのサイズとなる。また、フラッシュメモリの容量が８ＭＢ（２セグメント）では論理−物理アドレス変換テーブルは２ＫＢ（４ページ）となる。
また、フラッシュメモリの容量が１６ＭＢの場合、２０４８ブロック＝４セグメントのものでは論理−物理アドレス変換テーブルは４ＫＢ（８ページ）、１０２４ブロック＝２セグメントのものでは論理−物理アドレス変換テーブルは２ＫＢ（４ページ）となる。
そして、フラッシュメモリの容量が３２ＭＢ（４セグメント）では論理−物理アドレス変換テーブルは４ＫＢ（８ページ）、フラッシュメモリの容量が６４ＭＢ（８セグメント）では論理−物理アドレス変換テーブルは８ＫＢ（１６ページ）となり、フラッシュメモリの容量が最大の１２８ＭＢ（１６セグメント）では論理−物理アドレス変換テーブルは１６ＫＢ（３２ページ）となる。
【００７２】
４−７  ディレクトリ構造
メモリカード７０に記録されるディレクトリ構成例を図１４に示す。
メモリカード７０で扱うことのできる主データとしては、コンピュータ用データ、動画データ、静止画データ、メッセージデータ、オーディオデータ、制御用データなどがあるが、このためディレクトリ構造としては、ルートディレクトリから、「ＶＯＩＣＥ」（メッセージ用ディレクトリ）、「ＤＣＩＭ」（静止画用ディレクトリ）、「ＭＯｘｘｘｘｎｎ」（動画用ディレクトリ）、「ＣＯＮＴＲＯＬ」（制御用ディレクトリ）、「ＨＩＦＩ」（オーディオ用ディレクトリ）、「ＰＭ」（情報処理装置用ディレクトリ）が配される。
【００７３】
そして図示していないが、各ディレクトリの下には、サブディレクトリやファイル（上述したデータベース）、フォルダ等が配され、いわゆるツリー構造の形態をとることになる。
なお、もちろんこのようなディレクトリ構成は一例にすぎず、実際には情報処理装置１等による記録状況や記録されるファイル種別などに応じてディレクトリ構造が形成される。
【００７４】
５．ＦＡＴ構造
図７のファイルシステム階層で説明したように、ファイル管理処理はＦＡＴにより行われることになる。
即ち図２に示した構成の情報処理装置１により、メモリカード７０に対する記録再生（データ書込／読出）を実現するには、アプリケーション処理での要求に伴ってＦＡＴによるファイル記憶位置管理が参照され、さらに上述した論理−物理アドレス変換が行われて実際のアクセスが行われることになる。
ここで、ＦＡＴの構造について説明しておく。
【００７５】
図１５はＦＡＴによる管理構造の概要を示している。
なお、本例ではＦＡＴ及び論理−物理アドレス変換テーブルはメモリカード７０内に格納されることになるが、図１５に示すＦＡＴ構造が、メモリカード７０内での管理構造となるものである。
【００７６】
図示するようにＦＡＴ管理構造は、パーティションテーブル、空き領域、ブートセクタ、ＦＡＴ、ＦＡＴのコピー、ルートディレクトリ、データ領域から成る。
データ領域には、クラスタ２、クラスタ３・・・として単位データを示しているが、このクラスタとは、管理単位となるＦＡＴで扱う１データ単位である。
一般にＦＡＴでは、クラスタサイズは標準で４Ｋバイトとされるが、このクラスタサイズは５１２バイト〜３２Ｋバイトの間で２のべき乗の大きさをとることができる。
本例のメモリカード７０では、上述したように１つのブロックが８Ｋバイト又は１６Ｋバイトとされるが、１ブロック＝８Ｋバイトとされるメモリカード７０の場合は、ＦＡＴで扱うクラスタは８Ｋバイトとされる。また１ブロック＝１６Ｋバイトとされるメモリカード７０の場合は、ＦＡＴで扱うクラスタは１６Ｋバイトとされる。即ち、８Ｋバイト又は１６ＫバイトがＦＡＴ管理上でのデータ単位であり、かつメモリカード７０でのブロックとしての１つのデータ単位とされる。なお、従ってメモリカードからみれば、ＦＡＴで扱われるクラスタサイズ＝そのメモリカードのブロックサイズとなる。このため、本例の以降の説明については、簡略化のためにブロック＝クラスタとして考えることとする。
【００７７】
そして図１５左側にブロックナンバとしてｘ・・・（ｘ＋ｍ−１）、（ｘ＋ｍ）（ｘ＋ｍ＋１）（ｘ＋ｍ＋２）・・・と示したが、例えばこのように各ブロックにおいてＦＡＴ構造を構築する各種データは記憶されることになる。
なお、実際には必ずしもこのように物理的に連続する各ブロックに各情報が記憶されるものではない。
【００７８】
ＦＡＴ構造において、まずパーティションテーブルには、ＦＡＴパーティション（最大２Ｇバイト）の先頭と終端のアドレスが記述されている。
ブート領域には、いわゆる１２ｂｉｔＦＡＴ、１６ｂｉｔＦＡＴの別や、ＦＡＴ構造（大きさ、クラスタサイズ、各領域のサイズなど）が記述される。
【００７９】
ＦＡＴは、後述するように各ファイルを構成するクラスタのリンク構造を示すテーブルとなり、またＦＡＴについては続く領域にコピーが記述される。
ルートディレクトリには、ファイル名、先頭クラスタ番号、各種属性が記述される。これらの記述は１つのファイルにつき３２バイト使用される。
【００８０】
ＦＡＴにおいては、ＦＡＴのエントリとクラスタは１対１で対応しており、各クラスタのエントリにはリンク先、つまり後に続くクラスタの番号が記述される。つまり、複数のクラスタ（＝ブロック）で形成されている或るファイルについてみると、まずディレクトリによって先頭のクラスタ番号が示され、ＦＡＴにおけるその先頭クラスタのエントリには、次のクラスタ番号が示される。さらに次のクラスタ番号のエントリには、さらに次のクラスタ番号が示される。このようにクラスタのリンクがＦＡＴに記述される。
【００８１】
図１６はこのようなリンクの概念を模式的に示している（数値は１６進値）。
例えば２つのファイル「ＭＡＩＮ．Ｃ」「ＦＵＮＣ．Ｃ」が存在するとすると、ディレクトリにはこの２つのファイルの先頭クラスタ番号が例えば「００２」「００４」と記述される。
そしてファイル「ＭＡＩＮ．Ｃ」については、クラスタ番号「００２」のエントリに次のクラスタ番号「００３」が記述され、またクラスタ番号「００３」のエントリに次のクラスタ番号「００６」が記述される。さらに、クラスタ番号００６がこのファイル「ＭＡＩＮ．Ｃ」の最後のクラスタであるとすると、クラスタ番号「００６」のエントリには、最後のクラスタであることを示す「ＦＦＦ」が記述される。
これによりファイル「ＭＡＩＮ．Ｃ」がクラスタ「００２」→「００３」→「００６」という順番で記憶されている。即ち、仮にクラスタ番号とメモリカード７０でのブロック番号が一致していると仮定すると、ファイル「ＭＡＩＮ．Ｃ」は、メモリカード７０内でブロック「００２」「００３」「００６」に記憶されていることが表現されている。（但し、ＦＡＴで扱うクラスタは、上述のように論理アドレスで扱うものとなるため、ブロックの物理アドレスとそのまま一致するものではない）
【００８２】
また同様にファイル「ＦＵＮＣ．Ｃ」については、ＦＡＴにより、クラスタ「００４」→「００５」に記憶されていることが表現される。
【００８３】
なお、未使用のブロックに対応するクラスタについては、そのエントリは「０００」とされる。
【００８４】
ところでルートディレクトリの領域に記憶される各ファイルのディレクトリにおいては、図１６に示した先頭クラスタ番号だけでなく、例えば図１７のように各種データが記述される。
即ちファイル名、拡張子、属性、変更時刻情報、変更日付情報、先頭クラスタ番号、ファイルサイズが、それぞれ図示するバイト数で記述される。
【００８５】
また或るディレクトリの下層となるサブディレクトリについては、図１５のルートディレクトリの領域ではなく、データ領域に記憶される。つまりサブディレクトリは、ディレクトリ構造を持つファイルとして扱われる。そしてサブディレクトリの場合はサイズは無制限とされ、また自分自身へのエントリと親ディレクトリへのエントリが必要になる。
【００８６】
図１８に、或るルートディレクトリ内にファイル「ＤＩＲ１」（属性＝ディレクトリ：つまりサブディレクトリ）があり、さらにその中にファイル「ＤＩＲ２」（属性＝ディレクトリ：つまりサブディレクトリ）があり、さらにその中にファイル「ＦＩＬＥ」が存在する場合の構造例を示している。
つまりルートディレクトリの領域には、サブディレクトリであるファイル「ＤＩＲ１」としての先頭クラスタ番号が示され、上述したＦＡＴにより、クラスタＸ、Ｙ、Ｚがリンクされている状態となる。
この図からわかるように、サブディレクトリ「ＤＩＲ１」「ＤＩＲ２」についてはファイルとして扱われてＦＡＴのリンクに組み込まれる。
【００８７】
６．メモリカードと情報処理装置のインターフェース
図１９により、メモリカード７０と情報処理装置１のメモリカードインターフェース２８の間のシリアルインターフェースシステム構成を説明する。
メモリカード７０内のコントロールＩＣ８０は、図１９に示すようにフラッシュメモリコントローラ８０ａ、レジスタ８０ｂ、ページバッファ８０ｃ、シリアルインターフェース８０ｄとしての各ブロックを有するものとなっている。
【００８８】
フラッシュメモリコントローラ８０ａは、レジスタ８０ｂに設定されたパラメータに基づいて、フラッシュメモリ８１とページバッファ８０ｃの間でのデータ転送を行う。
そしてページバッファ８０ｃにバファリングされたデータはシリアルインターフェース８０ｄを介して情報処理装置１のメモリカードインターフェース２８側に転送され、また情報処理装置１のメモリカードインターフェース２８から転送されてきたデータはシリアルインターフェース８０ｄを介してページバッファ１０ｃにバファリングされる。
【００８９】
メモリカードインターフェース２８側では、メモリカード７０に対するインターフェース構造として、ファイルマネージャ６０、転送プロトコルインターフェース６１、シリアルインターフェース６２を有する。
ファイルマネージャ６０はメモリカード７０のファイル管理を行う。例えば本例のシステムではメモリカード７０内にはメインデータファイルの管理のための管理ファイルが記憶されているが、情報処理装置１は装填されたメモリカード７０から管理ファイルをよみこんでＣＰＵ２２がファイルマネージャ６０を形成することになる。メモリカード７０へのアクセスはファイルマネージャ６０に従って実行される。
転送プロトコルインターフェース６１は、レジスタ８０ｂ、ページバッファ８０ｃへのアクセスを実行する。
シリアルインターフェース６２は、メモリカード７０との間の３つの信号線、即ちＳＣＬＫ（シリアルクロック）、ＢＳ（バスステイト）、ＳＤＩＯ（シリアルデータ入出力）において、任意のデータ転送を行うためのプロトコルを規定する。
【００９０】
以上の構成における各部の動作により、情報処理装置１によるメモリカード７０（フラッシュメモリ８１）に対する読出アクセス／書込アクセスが実行される。
【００９１】
７．メモリカードへのファイルアクセス処理
続いて本例の情報処理装置１による特徴的な動作となる、メモリカード７０へのデータファイル（データベースデータベース）や実行ファイル（リソースデータベース）の書込／読出のためのファイルアクセス処理について説明していく。
【００９２】
ユーザーは情報処理装置１において任意のアプリケーションソフトウエアを起動させることで、そのアプリケーションソフトウエアに基づく処理を実行させることができる。もちろんアプリケーションソフトウエアの動作上において各種のデータファイルを参照し、内容を確認したり編集することなども可能である。
ここで、アプリケーションソフトウエアでの処理過程やユーザー操作に基づいて、メモリカード７０にファイルアクセスを行う場合においては、図１４等で説明したディレクトリ構成に規定された状態でアクセスが行われなければならない。このために本例では、ファイルアクセス要求が発生した際にＣＰＵ２２は図２０の処理を行うことになる。
【００９３】
なお図２０の処理はＣＰＵ２２によって行われる処理であるが、これは起動されているアプリケーションソフトウエアに実装したプログラムに基づいて実行されるファイルアクセス処理としてもよい。もしくは、ＯＳのＡＰＩ（Application Programming Interface）として定義され、ＯＳのファイルシステム用ライブラリとしてこのファイルアクセス処理がサポートされるものとしてもよい。
また、このようなファイルアクセス処理を実行するアクセス用のアプリケーションソフトウエアが形成され、ＣＰＵ２２において常時起動されているようにしてもよく、つまりファイルアクセス要求の発生に応じて、そのアクセス用のアプリケーションソフトウエアが動作して図２０の処理をＣＰＵ２２に実行させるものであってもよい。
【００９４】
アプリケーションソフトウエアのプログラムに基づく処理又はユーザーの指示に基づく処理において、メモリカード７０に対するファイルアクセス要求が発生発生すると、図２０のファイルアクセス処理はステップＦ１０１からＦ１０２に進み、まずそのアクセス要求についてディレクトリが指定されているか否かを判別する。
ディレクトリが指定されていれば、ステップＦ１０３でそのディレクトリ名が、メモリカード７０のファイルシステム上で適正とされるディレクトリ名であるか否かを判断する。
ここでディレクトリ名が適正であったとしてら、ステップＦ１０９に進んで、指定されたディレクトリ名及びファイル名でメモリカード７０に対するアクセス処理（書込又は読出処理）を行えばよい。
【００９５】
ところが、ファイルアクセス要求の際にディレクトリ名が指定されていなかったり、或いは指定されていたがファイルシステムの規定上、適切でないディレクトリ名であったとしてら、処理をステップＦ１０５に進める。
そして当該アクセス要求のあるファイルについてファイルタイプが指定されているか否かを確認する。例えばファイル名に付加された拡張子などによるファイルタイプの指定の情報の有無を判別する。
【００９６】
ファイルタイプが指定されていた場合は、ステップＦ１０６でその指定されたファイルタイプに応じてディレクトリを設定する。
例えば図１４のディレクトリ構造に従って、ファイルタイプが音声データファイルであるとされた場合は、ディレクトリ「ＶＯＩＣＥ」とし、またファイルタイプが静止画データファイルであるとされた場合は、ディレクトリ「ＤＣＩＭ」とする。
そしてステップＦ１０９に進んで、設定されたディレクトリ名を用いて、そのディレクトリ名及びファイル名でメモリカード７０に対するアクセス処理を行なう。
【００９７】
ステップＦ１０５でファイルタイプが指定されていないと判断された場合は、ステップＦ１０７でファイルタイプを判別する。例えば書込の際には、例えばアプリケーションソフトウエアに基づく処理上で作成／編集したファイル内容自体からファイルタイプを判別する。
そしてステップＦ１０８で、判別したファイルタイプに応じてディレクトリを設定する。上記同様に、例えば、ファイルタイプが音声データファイルであるとされた場合は、ディレクトリ「ＶＯＩＣＥ」とし、またファイルタイプが静止画データファイルであるとされた場合は、ディレクトリ「ＤＣＩＭ」とする。
そしてステップＦ１０９に進んで、設定されたディレクトリ名を用いて、そのディレクトリ名及びファイル名でメモリカード７０に対するアクセス処理を行なう。
【００９８】
以上のような処理が行われることで、ファイルアクセス要求の際にディレクトリ名が指定されていなかったり、或いはディレクトリ名がメモリカード７０のファイルシステムにとって不適切であったとしても、適切なディレクトリ名が設定されてファイルアクセスが実行される。
従って、アプリケーションソフトウエアのプログラム上でメモリカード７０のファイルシステムの規定が反映されていない場合や、或いはユーザーが勝手にディレクトリ名を指定したような場合であっても、ファイルシステムの規定は保たれ、メモリカード７０に記録されるファイル構造は適切なものとなる。また言い換えれば、ユーザーやアプリケーションソフトウエアがファイルシステム規定を認識しなくとも、適切にファイルアクセスを実行できるものとなる。
【００９９】
なお図２０の処理は、ディレクトリ名が規定されているという前提で述べたが、ファイル名について、所定の規則で生成するように規定されるファイルシステムを存在する。その場合は、図２０の処理をファイル名に対しても行うようにすればよい。
【０１００】
以上、実施の形態としての情報処理装置の構成やファイルアクセス処理例を説明してきたが、本発明はこれらの例に限定されることなく、各種の変形例が考えられる。
また本発明を適用できる装置は、携帯型の情報処理装置のみでなく、多岐にわたるものである。
【０１０１】
【発明の効果】
以上の説明から理解されるように本発明によれば、ディレクトリ構造又はファイル名設定方法が規定されているファイルシステムに基づいて記録媒体にファイルアクセスを行う際に、ディレクトリ名又はファイル名として規定に合致したものが指定されているか否かを判別し、規定に合致したディレクトリ名又はファイル名が指定されていなければ、規定に基づいたディレクトリ名又はファイル名を設定してファイルアクセスを行うようにしているため、ユーザーがファイルシステム規定を認識して操作を行う必要はなく、使用性が向上される。
またユーザーが規定を無視して任意にディレクトリ名、ファイル名を設定してしまうことも避けられるため、ファイルシステムとして適切な状態を保つことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態の情報処理装置の平面図、右側面図、左側面図、上面図である。
【図２】実施の形態の情報処理装置のブロック図である。
【図３】実施の形態の情報処理装置のＯＳ構造の説明図である。
【図４】実施の形態の情報処理装置で扱うデータベース構造の説明図である。
【図５】実施の形態のメモリカードの外形形状を示す平面図、正面図、側面図、底面図である。
【図６】実施の形態のメモリカードの内部構造の説明図である。
【図７】実施の形態のファイルシステム処理階層の説明図である。
【図８】実施の形態のメモリカードの物理的データ構造の説明図である。
【図９】実施の形態のメモリカードの管理フラグの説明図である。
【図１０】実施の形態のメモリカードにおけるデータ更新処理と物理アドレス及び論理アドレスの概念の説明図である。
【図１１】実施の形態の論理−物理アドレス変換テーブルの管理形態の説明図である。
【図１２】実施の形態の論理−物理アドレス変換テーブルの構造の説明図である。
【図１３】実施の形態のメモリカードのフラッシュメモリ容量／ブロック数／１ブロックの容量／１ページの容量／論理−物理アドレス変換テーブルのサイズの関係の説明図である。
【図１４】実施の形態のメモリカードのディレクトリ構造の説明図である。
【図１５】ＦＡＴ構造の説明図である。
【図１６】ＦＡＴによるクラスタ管理形態の説明図である。
【図１７】ディレクトリの内容の説明図である。
【図１８】サブディレクトリ及びファイルの格納形態の説明図である。
【図１９】実施の形態の情報処理装置とメモリカードのインターフェース構成の説明図である。
【図２０】実施の形態のメモリカードへのファイルアクセス処理のフローチャートである。
【符号の説明】
１  情報処理装置、２  表示部、３ａ，３ｂ，３ｃ  操作子、４  スピーカ、５  マイクロホン、６  撮像部、７  メモリスロット、８  ＩＥＥＥ１３９４端子、９  ＵＳＢ端子、１０  ヘッドホン端子、１１  ライン入力端子、１２  ライン出力端子、２１ システムコントローラ、２２  ＣＰＵ、２３  フラッシュＲＯＭ、２４  Ｄ−ＲＡＭ、２５  ＵＳＢインターフェース、２６  ＩＥＥＥ１３９４インターフェース、２７  表示制御部、２８  メモリカードインターフェース、２９  オーディオインターフェース、７０  メモリカード
【図１】
0004403338.tif 000002
【図２】
0004403338.tif 000003
【図３】
0004403338.tif 000004
【図４】
0004403338.tif 000005
【図５】
0004403338.tif 000006
【図６】
0004403338.tif 000007
【図７】
0004403338.tif 000008
【図８】
0004403338.tif 000009
【図９】
0004403338.tif 000010
【図１０】
0004403338.tif 000011
【図１１】
0004403338.tif 000012
【図１２】
0004403338.tif 000013
【図１３】
0004403338.tif 000014
【図１４】
0004403338.tif 000015
【図１５】
0004403338.tif 000016
【図１６】
0004403338.tif 000017
【図１７】
0004403338.tif 000018
【図１８】
0004403338.tif 000019
【図１９】
0004403338.tif 000020
【図２０】
0004403338.tif 000021