(57)【要約】【課題】それぞれが複数のデータで構成される複数のファイルを情報記録媒体に書き込む際、ファイル毎にデータの連続性を損なうことなく書き込むことができる可能性をより一層向上させることができるようにした情報記録装置、情報記録方法及び情報記録用プログラムを提供すること。【解決手段】実施の形態によれば、情報記録装置は、記録媒体と受信手段と書き込み手段とを備える。記録媒体は、複数の管理領域に分割される。受信手段は、第１データの書き込み要求を受ける。書き込み手段は、記録媒体の複数の管理領域のうちの第１管理領域に書き込まれているデータのうち、最後の位置に書き込まれている第２データが、ファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報との少なくとも一方を含む場合、第１管理領域内の第２データが書き込まれている領域の後の位置にある領域に第１データを書き込む。【選択図】    図９
2011118953.tif 000002
【特許請求の範囲】
【請求項１】
複数の管理領域に分割された記録媒体と、
第１データの書き込み要求を受ける受信手段と、
前記受信手段で受けた書き込み要求に応じて前記記録媒体の複数の管理領域のうちの何れかに第１データを書き込む書き込み手段とを具備し、
前記書き込み手段は、前記記録媒体の複数の管理領域のうちの第１管理領域に書き込まれているデータのうち、最後の位置に書き込まれている第２データが、ファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報との少なくとも一方を含む場合、前記第１管理領域内の前記第２データが書き込まれている領域の後の位置にある領域に前記第１データを書き込む情報記録装置。
【請求項２】
前記書き込み手段は、前記記録媒体の複数の管理領域のうちの第２管理領域に、前記第１データと同一のファイルについての第３データが書き込まれている場合、前記第２管理領域内の前記第３データが書き込まれている領域の後の位置にある領域に前記第１データを書き込む請求項１記載の情報記録装置。
【請求項３】
前記書き込み手段は、前記第２データがファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報とをいずれも含まない場合、前記第１管理領域とは異なる第３管理領域に前記第１データを書き込む請求項１記載の情報記録装置。
【請求項４】
複数の管理領域に分割された記録媒体に対する情報記録方法であって、
第１データの書き込み要求を受ける工程と、
前記記録媒体の複数の管理領域のうちの第１管理領域に書き込まれているデータのうち、最後の位置に書き込まれている第２データが、ファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報との少なくとも一方を含む場合、前記第１管理領域内の前記第２データが書き込まれている領域の後の位置にある領域に前記第１データを書き込む工程とを有する情報記録方法。
【請求項５】
第１データの書き込み要求を受ける処理と、
複数の管理領域に分割された記録媒体の前記複数の管理領域のうちの第１管理領域に書き込まれているデータのうち、最後の位置に書き込まれている第２データが、ファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報との少なくとも一方を含む場合、前記第１管理領域内の前記第２データが書き込まれている領域の後の位置にある領域に前記第１データを書き込む処理とを、コンピュータに実行させる情報記録用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明の実施の形態は、例えばＳＤ（secure digital）カードのようなメモリカード等に情報を記録するのに好適する情報記録装置、情報記録方法及び情報記録用プログラムに関する。
【背景技術】
【０００２】
周知のように、首記の如きメモリカードやＨＤＤ（hard disk drive）等の情報記録機器に対するデータの書き込みを制御するファイルシステムでは、アプリケーション等からのデータ書き込み要求に応じてファイルデータを情報記録媒体に書き込む場合、その先頭の記録領域から順にファイルデータを書き込むようにしている。
【０００３】
すなわち、一般的に、１つのファイルが複数のファイルデータで構成されている場合、それらのファイルデータを情報記録媒体に書き込む際には、ファイルを構成する全てのファイルデータが情報記録媒体の記録領域上に連続するように書き込まれることが望ましいとされている。
【０００４】
このことは、特に、メモリカードに情報記録媒体として使用されている半導体メモリ等について言えば、例えば１２８ｋバイト等のような、ある程度の大きい連続するデータ単位で書き込みや読み出し処理を行なった方が、その処理速度を速くすることができるという特徴があるからである。
【０００５】
ところで、それぞれが複数のファイルデータで構成される複数のファイルを、アプリケーション等からのデータ書き込み要求に応じて情報記録媒体に同時に記録する場合には、各ファイルを構成するそれぞれのファイルデータがランダムに書き込まれてしまい、同じファイルを構成するファイルデータの連続性が損なわれることがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２２５４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
それぞれが複数のデータで構成される複数のファイルを情報記録媒体に書き込む際、ファイル毎にデータの連続性を損なうことなく書き込むことができる可能性をより一層向上させることができるようにした情報記録装置、情報記録方法及び情報記録用プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態によれば、情報記録装置は、記録媒体と受信手段と書き込み手段とを備えている。記録媒体は、複数の管理領域に分割される。受信手段は、第１データの書き込み要求を受ける。書き込み手段は、記録媒体の複数の管理領域のうちの第１管理領域に書き込まれているデータのうち、最後の位置に書き込まれている第２データが、ファイルデータの最後の部分であることを示す情報とＦＡＴファイルシステムにおけるディレクトリ情報との少なくとも一方を含む場合、第１管理領域内の第２データが書き込まれている領域の後の位置にある領域に第１データを書き込む。
【図面の簡単な説明】
【０００９】
【図１】実施の形態におけるＰＣとその管理対象となるメモリカードとの主要部を概略的に説明するために示すブロック構成図。
【図２】ＦＡＴファイルシステムにより論理フォーマット化されたメモリ空間の一例を説明するために示す図。
【図３】ＦＡＴ及びファイルエントリの一例を説明するために示す図。
【図４】同実施の形態におけるファイルシステムにより論理フォーマット化されたメモリ空間の一例を説明するために示す図。
【図５】同実施の形態におけるファイルシステムで実行される記録領域割り当て処理動作の一例を説明するために示すフローチャート。
【図６】同実施の形態におけるファイルデータブロックを複数の管理領域に分割した一例を説明するために示す図。
【図７】同実施の形態における分割された複数の管理領域に対して行なわれる書き込み領域の割り当て処理の一例を説明するために示す図。
【図８】同実施の形態における分割された複数の管理領域に対して行なわれる書き込み領域の割り当て処理の他の例を説明するために示す図。
【図９】同実施の形態における分割された複数の管理領域に対して行なわれる書き込み領域の割り当て処理のさらに他の例を説明するために示す図。
【図１０】同実施の形態におけるファイルシステムで実行される記録領域割り当て処理動作の他の例を説明するために示すフローチャート。
【図１１】同実施の形態におけるＰＣの基本構成を説明するために示すブロック構成図。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して詳細に説明する。この実施の形態では、ＰＣ（personal computer）を例にした場合について説明するが、例えばデジタルテレビジョン放送受信装置や光ディスクレコーダ等、管理対象となる情報記録媒体に記録されるデータを管理するためのファイルシステムを備えるファイルシステム搭載機器であれば、同様に適用することができる。
【００１１】
図１は、この実施の形態で説明するＰＣ１００の主要部と、このＰＣ１００の管理対象となるメモリカード２００の主要部とを、それぞれ機能ブロックとして概略的に示している。各機能ブロックは、ハードウエアやコンピュータソフトウエアのいずれかまたは両者の組み合わせとして実現することができる。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から説明される。
【００１２】
このような機能が、ハードウエアとして実行されるか、または、ソフトウエアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様毎に、種々の方法でこれらの機能を実現し得るが、そのような実現を決定することは、この実施の形態の範疇に含まれるものである。
【００１３】
図１に示すように、ＰＣ１００は、自己に挿入され接続されたメモリカード２００に対してアクセスを行なうためのハードウエア及びソフトウエア（システム）を備えている。まず、ＰＣ１００は、アプリケーション、オペレーティングシステム等のソフトウエア１０１を備えている。
【００１４】
このソフトウエア１０１は、メモリカード２００へのデータの書き込みや、メモリカード２００からのデータの読み出し等の処理が、ユーザの操作によって指示されると、ＣＰＵ（central processing unit）（図１０参照）にその処理を実行させるものである。ソフトウエア１０１を実行したＣＰＵは、ファイルシステム１０２を介して、メモリカード２００に対してデータの書き込みまたは読み出しを指示する。
【００１５】
このファイルシステム１０２は、管理対象となる情報記録媒体（メモリカード２００）に記録されているファイルを管理するための仕組みである。このファイルシステム１０２は、情報記録媒体の記録領域内に管理情報を記録し、この管理情報を用いてファイルを管理している。
【００１６】
すなわち、このファイルシステム１０２では、情報記録媒体におけるファイルやフォルダ等のディレクトリ情報の作成方法、ファイルやフォルダ等の移動方法や削除方法、データの記録方式、管理情報が記録されている場所やその利用方法等が定められている。このファイルシステム１０２は、ＦＡＴ（file allocation table）ファイルシステムを基礎としており、この実施の形態で以下に説明する動作を実行可能に構成されている。具体的な動作に関しては、適宜順を追って説明する。
【００１７】
また、上記ＰＣ１００は、メモリカードインターフェース１０３を備えている。このメモリカードインターフェース１０３は、ＰＣ１００とメモリカード２００のコントローラ２０１との間のインターフェース処理を行なうのに必要なハードウエアやソフトウエア等から構成されている。そして、ＰＣ１００は、メモリカードインターフェース１０３を介してメモリカード２００との通信を実行する。
【００１８】
この場合、メモリカードインターフェース１０３は、ＰＣ１００とメモリカード２００とが通信を行なうのに必要な各種の取り決めを規定している。すなわち、メモリカードインターフェース１０３は、メモリカード２００のコントローラ２０１を構成している後述するメモリカードインターフェース２０１ａと相互に認識可能な各種のコマンドの組を備えている。また、このメモリカードインターフェース１０３は、メモリカード２００のメモリカードインターフェース２０１ａと接続可能なハードウエア上の構成（ピンの配置、数等）も含んでいる。
【００１９】
上記メモリカード２００は、電源がオン状態のＰＣ１００に接続されたとき、または、電源がオフ状態のＰＣ１００に接続された状態でＰＣ１００の電源がオンされたときに、ＰＣ１００からの電力供給を受けて初期化動作を行なった後、ＰＣ１００からのアクセスに対応した処理を実行する。
【００２０】
このメモリカード２００は、ＮＡＮＤ型フラッシュメモリ等のメモリ２０２や、そのメモリ２０２を制御するための上記コントローラ２０１を備えている。このうち、メモリ２０２は、データを不揮発に記録するもので、複数のメモリセルからなるページと称される単位でデータの書き込みや読み出しを実行する。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ２０２は、複数のページからなる物理ブロックと称される単位でデータの消去を実行する。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【００２１】
また、上記コントローラ２０１は、メモリ２０２におけるデータの記録状態を管理している。この記録状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、ＰＣ１００により割り当てられたどの論理アドレスのデータを保持しているかを示す対応関係や、どの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない状態、または、無効なデータを保持している状態）であるか等を管理することである。
【００２２】
この場合、上記コントローラ２０１は、上記メモリカードインターフェース２０１ａ、ＭＰＵ（micro processing unit）２０１ｂ、ＲＯＭ（read only memory）２０１ｃ、ＲＡＭ（random access memory）２０１ｄ、ＮＡＮＤインターフェース２０１ｅ等を備えている。
【００２３】
このうち、メモリカードインターフェース２０１ａは、ＰＣ１００とコントローラ２０１との間のインターフェース処理を行なうのに必要なハードウエアやソフトウエア等から構成されている。そして、メモリカード２００は、メモリカードインターフェース２０１ａを介してＰＣ１００との通信を実行する。
【００２４】
このメモリカードインターフェース２０１ａは、ＰＣ１００のメモリカードインターフェース１０３と同様に、メモリカード２００とＰＣ１００との通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウエア上の構成（ピンの配置、数等）も含んでいる。また、メモリカードインターフェース２０１ａは、レジスタ２０１ｆを備えている。
【００２５】
上記ＭＰＵ２０１ｂは、メモリカード２００全体の動作を総括的に制御している。すなわち、ＭＰＵ２０１ｂは、例えば、メモリカード２００が電力供給を受けた際に、ＲＯＭ２０１ｃ内に格納されているファームウエア（制御プログラム）をＲＡＭ２０１ｄ上に読み出して処理を実行する。
【００２６】
また、上記ＭＰＵ２０１ｂは、制御プログラムに基づいて、後述する各種のテーブルをＲＡＭ２０１ｄ上で作成したり、ＰＣ１００から書き込みコマンド、読み出しコマンド、消去コマンド等を受けて、メモリ２０２に対する所定の処理を実行したりしている。
【００２７】
さらに、上記ＲＯＭ２０１ｃは、前述したように、ＭＰＵ２０１ｂが実行する制御プログラム等を格納している。
【００２８】
また、上記ＲＡＭ２０１ｄは、ＭＰＵ２０１ｂに作業エリアを提供しており、制御プログラムや各種のテーブルを記録している。このようなテーブルとしては、ＰＣ１００のファイルシステム１０２によってデータに割り当てられた論理アドレスと、その論理アドレスを有するデータを実際に記録しているページの物理アドレスとを対応させた変換テーブル（論物テーブル）が含まれる。
【００２９】
さらに、上記ＮＡＮＤインターフェース２０１ｅは、コントローラ２０１とメモリ２０２との間のインターフェース処理を行なっている。
【００３０】
ここで、上記メモリ２０２内の記録領域は、保存されるデータの種類に対応して複数の領域に区分けされている。この複数の領域としては、システムデータ領域２０２ａ、機密データ領域２０２ｂ、ユーザデータ領域２０２ｃが含まれる。
【００３１】
このうち、システムデータ領域２０２ａは、コントローラ２０１が、その動作に必要なデータを保存するためにメモリ２０２内に確保しておく領域である。すなわち、このシステムデータ領域２０２ａは、主にメモリカード２００に関する管理情報を格納しており、メモリカード２００のセキュリティ情報やメディアＩＤ（identification）等のカード情報を格納している。
【００３２】
また、機密データ領域２０２ｂは、暗号化に用いる鍵情報や認証時に使用する機密データ等を保存しておく領域である。この機密データ領域２０２ｂについては、ＰＣ１００はアクセスできないようになされている。
【００３３】
さらに、ユーザデータ領域２０２ｃは、ＰＣ１００が自由にアクセスして使用することが可能な領域である。このユーザデータ領域２０２ｃには、例えばＡＶ（audio visual）コンテンツファイルや映像データ等のユーザデータが格納される。以下の説明では、メモリ２０２の記録領域と言えば、このユーザデータ領域２０２ｃを指すものとする。
【００３４】
なお、上記したコントローラ２０１は、ユーザデータ領域２０２ｃの一部を確保しており、自己の動作に必要な制御データ（論物テーブル）を保存させている。このユーザデータ領域２０２ｃは、ＰＣ１００から別のボリュームとして論理フォーマットされ、ファイル管理されている。
【００３５】
次に、上記メモリ２０２の論理フォーマットについて説明する。メモリ２０２は、以下の形式で論理フォーマット化される。このメモリ２０２の論理フォーマット化は、上記ＰＣ１００内のファイルシステム１０２によって行なわれる。
【００３６】
ここで、上記ファイルシステム１０２によるメモリ２０１の論理フォーマット化の説明に先立ち、このファイルシステム１０２が基礎としているＦＡＴファイルシステムの概要について、図２及び図３を用いて説明しておくことにする。
【００３７】
図２は、ＦＡＴファイルシステムにより論理フォーマット化された、メモリ２０２のメモリ空間３０を示している。このメモリ空間３０には、以下に示す管理データが書き込まれている。なお、ここでいうメモリ空間３０は、ＦＡＴファイルシステムが自由にアクセスできるメモリ領域であり、図１のメモリ２０２においては、ユーザデータ領域２０２ｃに対応するものである。
【００３８】
図２に示すように、ＦＡＴファイルシステムは、管理対象となるメモリ空間３０を所定の大きさ（例えば１６ｋバイト）のクラスタに分割して管理している。このメモリ空間３０には、その最下位から所定のクラスタ番号で示される範囲までの領域に、管理データが割り当てられている。以下、管理データを記録する領域を、管理データブロック３１と称する。
【００３９】
なお、管理データブロック３１より高位のクラスタ番号で示される領域は、ファイルを構成する複数のファイルデータを書き込むためのデータ記録領域となっている。以下、このデータ記録領域をファイルデータブロック３２と称する。
【００４０】
そして、上記管理データブロック３１は、パーティションテーブルに割り当てられるパーティションテーブル領域３３、ブートセクタに割り当てられるブートセクタ領域３４、ＦＡＴ１に割り当てられるＦＡＴ１領域３５、ＦＡＴ２に割り当てられるＦＡＴ２領域３６、ルートディレクトリエントリに割り当てられるルートディレクトリエントリ領域３７に分けられている。
【００４１】
このうち、パーティションテーブル領域３３は、各パーティションのファイルシステムタイプやその先頭セクタ等の情報を格納している。また、ブートセクタ領域３４は、パーティションテーブルが示す先頭セクタに位置し、ＢＰＢ［ＢＩＯＳ（basic input／output system）parameter block］を格納している。
【００４２】
このＢＰＢは、ファイルシステムが使用する、メモリ２０２の様々なパラメータを示している。ＦＡＴファイルシステムでは、メモリ２０２を論理フォーマット化するとき、このパラメータを書き込んでいる。また、ＦＡＴファイルシステムは、起動時にＢＰＢを読み込むことにより、ファイルフォーマットのパラメータを認識する。
【００４３】
さらに、ＦＡＴ１領域３５は、メモリに書き込まれ、クラスタの大きさに分割されたファイルデータの一部（以下、単にファイルデータと称する）がどのクラスタに記録されているかを示す情報や、ファイルデータを復元するためのクラスタのつながりを示す情報を格納している。また、ＦＡＴ２領域３６は、ＦＡＴ１のバックアップ領域であり、ＦＡＴ１領域３５と同じ内容を格納している。
【００４４】
１つのファイルを構成する各ファイルデータは、連続するクラスタに割り当てられることが好ましいので、ＦＡＴファイルシステムでは、空いているクラスタを、クラスタ番号の順にしたがってファイルデータに割り当てている。そして、ＦＡＴ１及びＦＡＴ２は、ファイルデータを格納しているクラスタの接続関係を示す情報を格納している。これにより、ＦＡＴ１及びＦＡＴ２（以下、単にＦＡＴと記載する）に格納されている情報に基づいてクラスタからデータを読み出すことによって、元のファイルが復元される。
【００４５】
また、ルートディレクトリエントリ領域３７は、ルートディレクトリに属する各ファイルのファイルエントリを記録している。このファイルエントリには、ファイル名またはフォルダ名、ファイルサイズ、属性及びファイルの更新日時情報、どのクラスタがファイルの先頭クラスタであるかを示すフラグ等が含まれる。なお、ＦＡＴフォーマット形式のバージョン［例えば、ＦＡＴ１６、ＦＡＴ３２、ｅｘ（extended）ＦＡＴ等］によっては、ルートディレクトリエントリをＦＡＴの後の任意のアドレスに置くことができる。
【００４６】
あるファイルが、ルートディレクトリに属するサブディレクトリに属する場合、ルートディレクトリエントリ領域３７には、ルートディレクトリに属するサブディレクトリのエントリ（サブディレクトリエントリ）に割り当てられているクラスタの番号が記載されている。
【００４７】
そして、サブディレクトリエントリは、自己に属する各ファイルのファイルエントリを保持している。このサブディレクトリエントリは、図２に示すように、ＦＡＴファイルシステムによって、ファイルデータブロック３２内の任意のクラスタ３８に書き込まれる。このサブディレクトリエントリも管理データに属しており、頻繁に書き換えられることが多いものである。
【００４８】
図３は、ＦＡＴ及びファイルエントリの一例を示している。図３に示すように、ルートディレクトリエントリは、ファイルエントリとして各ファイル「ＦＩＬＥ１．ＴＸＴ」、「ＦＩＬＥ２．ＴＸＴ」、「ＦＡＩＬＥ３．ＴＸＴ」の先頭のクラスタの位置情報を格納している。「ＦＩＬＥ１．ＴＸＴ」、「ＦＩＬＥ２．ＴＸＴ」、「ＦＩＬＥ３．ＴＸＴ」の先頭クラスタは、それぞれクラスタ番号が０００２、０００５、０００７である。
【００４９】
ＦＡＴには、各クラスタの次に接続されるべきクラスタの番号が記載されている。例えば、「ＦＩＬＥ１．ＴＸＴ」の場合、先頭のクラスタ（クラスタ番号０００２）のデータに続くデータを格納するクラスタはクラスタ番号が０００３で、そのクラスタ（クラスタ番号０００３）のデータに続くデータを格納するクラスタはクラスタ番号が０００４であることが分かる。
【００５０】
そして、各クラスタ（クラスタ番号０００２、０００３、０００４）のデータを接続することにより、「ＦＩＬＥ１．ＴＸＴ」のファイルが復元される。なお、ファイルデータの最後の部分を格納するクラスタには、「ＦＦＦＦ」が書き込まれている。
【００５１】
次に、図４を用いて、ＦＡＴファイルシステムを基礎とする上記ファイルシステム１０２について説明する。このファイルシステム１０２は、以下に示すようにメモリ２０２を論理フォーマット化している。つまり、ファイルシステム１０２によって、メモリ２０２は論理フォーマット化されている。
【００５２】
図４は、このファイルシステム１０２によって論理フォーマット化された、メモリ２０２のメモリ空間５０を示している。図４に示すメモリ空間５０は、フォーマット対象であるメモリ２０２の記録領域のうち、ファイルシステム１０２が使用可能なユーザデータ領域２０２ｃに対応している。
【００５３】
図４に示すように、ファイルシステム１０２は、それがファイルデータを管理するために用いる管理データを割り当てる記録領域を、ユーザデータ領域２０２ｃの最下位から所定のクラスタ番号（または論理アドレス）で示される範囲までの領域に限定している。すなわち、管理データは、この所定の範囲内のクラスタ番号（または論理アドレス）の記録領域に割り当てられ記録される。
【００５４】
ここで、管理データとしては、ＦＡＴファイルシステムで用いられるものと同じ、パーティションテーブル、ブートセクタ、ＦＡＴ１、ＦＡＴ２、ルートディレクトリエントリ、サブディレクトリエントリが含まれている。
【００５５】
そして、管理データを格納するブロック（管理データブロック５１）には、パーティションテーブルに割り当てられるパーティションテーブル領域５３、ブートセクタに割り当てられるブートセクタ領域５４、ＦＡＴ１に割り当てられるＦＡＴ１領域５５、ＦＡＴ２に割り当てられるＦＡＴ２領域５６、ルートディレクトリエントリに割り当てられるルートディレクトリエントリ領域５７、サブディレクトリエントリに割り当てられるサブディレクトリエントリ領域５８が含まれる。これらのパーティションテーブル領域５３乃至サブディレクトリエントリ領域５８が格納するデータは、前述したＦＡＴファイルシステムにおいて定義されているものと同じである。
【００５６】
メモリ空間５０の、管理データブロック５１を除く部分は、ファイルデータの書き込み専用のファイルデータブロック５２である。管理データブロック５１の容量は、メモリ空間５０の大きさと、確保されることが求められるファイルデータブロック５２の大きさとを考慮して決定される。
【００５７】
例えば、パーティションテーブル領域５３の容量は１２１．５ｋバイト、ブートセクタ領域５４の容量は０．５ｋバイト、ＦＡＴ１領域５５の容量は１２３ｋバイト、ＦＡＴ２領域５６の容量は１２３ｋバイト、ルートディレクトリエントリ領域５７の容量は１６ｋバイト、サブディレクトリエントリ領域５８の容量は６４ｋバイトである。
【００５８】
なお、ファイルシステム１０２は、ＦＡＴファイルシステム（ＦＡＴ１６，３２、ｅｘＦＡＴ等の違いを問わない）を基礎としている。さらに、ＦＡＴファイルシステムに限らず、ＦＡＴの拡張を含む類似のファイルシステムを利用することもできる。例えば、管理データを用いてファイルデータを管理し、管理データが頻繁に書き換えられるようなファイルシステムが該当する。
【００５９】
上記メモリカード２００は、ファイルシステム１０２によって論理フォーマット化されている。したがって、メモリ２０２は、図４に示したように論理フォーマット化されていることになる。
【００６０】
次に、図５を用いて、図４のように論理フォーマット化されているメモリ２０２に書き込むファイルデータヘの記録領域割り当て処理について説明する。まず、ＰＣ１００が起動されると（ステップＳ６０１）、ファイルシステム１０２は、メモリカードインターフェース１０３にメモリカード２００が接続されるのを待つ待機状態（ステップＳ６０２：ＮＯ）となる。
【００６１】
そして、メモリカードインターフェース１０３にメモリカード２００が接続されると（ステップＳ６０２：ＹＥＳ）、ファイルシステム１０２は、メモリ２０２のユーザデータ領域２０２ｃにアクセスし、ユーザデータ領域２０２ｃ内のパーティションテーブル領域５３からパーティションテーブルの読み込みを実行する（ステップＳ６０３）。
【００６２】
次に、ファイルシステム１０２は、読み込んだパーティションテーブルから、ユーザデータ領域２０２ｃ内の領域のうちＦＡＴ１及びＦＡＴ２が書き込まれたＦＡＴ１領域５５及びＦＡＴ２領域５６のクラスタ番号（または論理アドレス）を特定するとともに（ステップＳ６０４）、当該読み込んだパーティションテーブルが示す先頭セクタに位置するブートセクタ領域５４の解析処理を実行する（ステップＳ６０５）。
【００６３】
具体的には、ファイルシステム１０２は、ブートセクタ領域５４の解析処理を実行することにより、ユーザデータ領域２０２ｃ内の領域のうち、ファイルデータブロック５２のクラスタ番号やサイズ、ルートディレクトリやサブディレクトリが書き込まれたルートディレクトリエントリ領域５７及びサブディレクトリエントリ領域５８のクラスタ番号やサイズ等、メモリ２０２の様々なパラメータを示すＢＰＢの読み込みを実行する。
【００６４】
さらに、ファイルシステム１０２は、ブートセクタ領域５４の解析処理により読み込んだクラスタ番号やサイズが示すように、ファイルデータブロック５２を複数の管理領域に分割するとともに、各管理領域の最下位（または最上位）のクラスタのクラスタ番号を分割情報として記録する（ステップＳ６０６）。
【００６５】
図６は、ファイルデータブロック５２を複数の管理領域に分割した一例を示している。この場合、ファイルシステム１０２は、ＰＣ１００で実行するソフトウエア（アプリケーション）１０１の数（例えば４個）の管理領域に、ファイルデータブロック５２を分割するものとする。
【００６６】
また、ファイルシステム１０２は、ファイルデータブロック５２を、ファイルデータの書き込みを高速化することができるサイズ（例えば５１２ｋバイト）で割り切れるサイズの管理領域１〜４に分割し、残りの領域は雑多な領域として確保するものとする。
【００６７】
その後、ファイルシステム１０２は、メモリカードインターフェース１０３からメモリカード２００が取り外されたか否かを監視するとともに（ステップＳ６０７）、ソフトウエア（アプリケーション）１０１からのファイルデータの書き込み要求を待つ待機状態（ステップＳ６０８）となる。なお、メモリカードインターフェース１０３からメモリカード２００が取り外された場合（ステップＳ６０７：ＹＥＳ）、ファイルシステム１０２は、記録している分割情報をクリア（ステップＳ６１１）し、ステップＳ６０２の処理に戻る。
【００６８】
一方、メモリカードインターフェース１０３からメモリカード２００が取り外されず（ステップＳ６０７：ＮＯ）、ソフトウエア１０１からのファイルデータの書き込み要求が有った場合（ステップＳ６０８：ＹＥＳ）、ファイルシステム１０２は、書き込み要求が有ったファイルデータを書き込むクラスタの割り当てを行ない、割り当てたクラスタにまとめられた論理ブロックの論理アドレス及び書き込み要求が有ったファイルデータを、コントローラ２０１に出力する（ステップＳ６０９）。
【００６９】
具体的に言えば、ファイルシステム１０２は、書き込み要求が有ったファイルデータをファイルデータブロック５２に書き込む場合、ステップＳ６０５で読み込んだＢＰＢが示すルートディレクトリエントリのクラスタ番号にしたがって、管理データブロック５１内のルートディレクトリエントリ領域５７にアクセスしてルートディレクトリエントリの読み込みを実行する。
【００７０】
次に、ファイルシステム１０２は、読み込んだルートディレクトリエントリが含むファイル名を参照して、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれているか否かを判断する。そして、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていると判断した場合、ファイルシステム１０２は、読み込んだルートディレクトリエントリが含むどのクラスタがファイルの先頭クラスタであるかを示すフラグ及び分割情報が示す各管理領域の最下位（または最上位）のクラスタのクラスタ番号を参照して、当該書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれた管理領域を特定する。
【００７１】
その後、ファイルシステム１０２は、ステップＳ６０４で特定したクラスタ番号にしたがってＦＡＴ１領域５５及びＦＡＴ２領域５６にアクセスし、ＦＡＴ１及びＦＡＴ２の読み込みを実行する。そして、ファイルシステム１０２は、読み込んだＦＡＴ１及びＦＡＴ２を参照して、特定した管理領域においてファイルデータが既に書き込まれた領域に続く領域、つまり、ＦＡＴ１またはＦＡＴ２に「ＦＦＦＦ」が記載されたファイルデータが書き込まれたクラスタに続くクラスタを、書き込み要求が有ったファイルデータの書き込み領域に割り当てる。
【００７２】
一方、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれていなかった場合、ファイルシステム１０２は、ステップＳ６０４で特定したクラスタ番号にしたがってＦＡＴ１領域５５及びＦＡＴ２領域５６にアクセスして、ＦＡＴ１及びＦＡＴ２の読み込みを実行する。
【００７３】
そして、ファイルシステム１０２は、読み込んだＦＡＴ１及びＦＡＴ２と分割情報とが示す各管理領域の最下位（または最上位）のクラスタ番号を参照して、ファイルデータが未だ書き込まれていない管理領域を特定する。その後、ファイルシステム１０２は、特定した管理領域内の領域（最下位のクラスタに続くクラスタ）を、書き込み要求が有ったファイルデータの書き込み領域に割り当てる。
【００７４】
なお、ファイルデータが未だ書き込まれていない管理領域が複数存在する場合、ファイルシステム１０２は、分割情報が示すクラスタ番号が高い管理領域内の領域から順次、書き込み領域に割り当てるものとする。
【００７５】
さらに、書き込み要求が有ったファイルデータと同一のファイルを構成するファイルデータが書き込まれておらず、かつ、ファイルデータが未だ書き込まれていない管理領域が存在しない場合、ファイルシステム１０２は、複数の管理領域のうちのいずれか１つの管理領域（例えば、分割情報が示すクラスタ番号が高い管理領域）において、既にファイルデータが書き込まれた領域に続く領域（ＦＡＴ１またはＦＡＴ２に「ＦＦＦＦ」が記載されたファイルデータが書き込まれたクラスタに続くクラスタ）を、書き込み領域に割り当てるものとする。
【００７６】
図7は、上記した書み込み領域の割り当て処理を具体的に説明している。例えば、４つの管理領域１〜４に未だファイルデータが書き込まれていない状態において、ファイルＡを構成するファイルデータの書き込み要求が有った場合、ファイルシステム１０２は、分割情報が示すクラスタ番号が最下位の管理領域１内の先頭のクラスタに続くクラスタからなる領域Ａ１を、当該書き込み要求が有ったファイルデータを書き込む領域に割り当てる［図７の（１）］。
【００７７】
また、管理領域１にのみファイルデータが書き込まれた状態において、ファイルＢを構成するファイルデータの書き込み要求が有った場合、ファイルシステム１０２は、分割情報が示すクラスタ番号が管理領域１のクラスタ番号の次に低い管理領域２内の先頭のクラスタに続くクラスタからなる領域Ｂ１を、当該書き込み要求が有ったファイルデータを書き込む領域に割り当てる［図７の（２）］。
【００７８】
さらに、管理領域１及び管理領域２にファイルデータが書き込まれた状態において、ファイルＣを構成するファイルデータの書き込み要求が有った場合、ファイルシステム１０２は、分割情報が示すクラスタ番号が管理領域２の次に低い管理領域３内の先頭のクラスタに続くクラスタからなる領域Ｃ１を、当該書き込み要求が有ったファイルデータを書き込む領域に割り当てる［図７の（３）］。
【００７９】
また、管理領域１〜３にファイルデータが書き込まれた状態において、再びファイルＡを構成するファイルデータであって、領域Ａ１に書き込まれたファイルデータの続きとなるファイルデータの書き込み要求が有った場合、ファイルシステム１０２は、管理領域１内の領域Ａ１に続く領域Ａ２を、当該書き込み要求が有ったファイルデータを書き込む傾城に割り当てる［図７の（４）］。
【００８０】
上記したファイルシステム１０２によれば、異なるファイルＡ〜Ｃを構成するファイルデータ同士がなるべく同じ管理領域１〜４に書き込まれないようにすることができ、個々のファイルＡ，Ｂ，Ｃを構成する複数のファイルデータが、それぞれ別々の管理領域１，２，３に連続的に書き込まれる可能性を向上させることができる。
【００８１】
なお、上記コントローラ２０１のＭＰＵ２０１Ｂは、ファイルシステム１０２から出力された論理アドレス及びファイルデータを受信すると、ＲＡＭ２０１ｄに記録された論物テーブルを用いて受信した論理アドレスを物理アドレスに変換するとともに、変換した物理アドレスが示すページに、受信したファイルデータを書き込むものとする。
【００８２】
ここで、この実施の形態における主要な処理動作について、図９及び図１０を参照して説明するに先立ち、その主要な処理動作を行なわない場合のファイルシステム１０２による処理動作について簡単に説明しておくことにする。
【００８３】
すなわち、上記したファイルシステム１０２による処理動作では、図８に示すように、メモリ２０２のファイルデータブロック５２を４つの管理領域１〜４に分割し、まず、ファイルＡを構成するファイルデータａ１の書き込み要求が有った場合、自動的に管理領域１内の先頭のクラスタに続くクラスタからなる領域Ａ１が、当該書き込み要求が有ったファイルデータａ１を書き込む領域として確保される［図８の（１）］。
【００８４】
また、ファイルＡとは異なる他のファイルＢを構成するファイルデータｂの書き込み要求が有った場合には、自動的に次の管理領域２内の先頭のクラスタに続くクラスタからなる領域Ｂ１が、当該書き込み要求が有ったファイルデータｂを書き込む領域として確保される［図８の（２）］。
【００８５】
さらに、上記ファイルＡ，Ｂとは異なる他のファイルＣを構成するファイルデータｃ１の書き込み要求が有った場合には、自動的に次の管理領域３内の先頭のクラスタに続くクラスタからなる領域Ｃ１が、当該書き込み要求が有ったファイルデータｃ１を書き込む領域として確保される［図８の（３）］。
【００８６】
同様に、上記ファイルＡ〜Ｃとは異なる他のファイルＤを構成するファイルデータｄ１の書き込み要求が有った場合には、自動的に次の管理領域４内の先頭のクラスタに続くクラスタからなる領域Ｄ１が、当該書き込み要求が有ったファイルデータｄ１を書き込む領域として確保される［図８の（４）］。
【００８７】
すなわち、上記したファイルシステム１０２による処理動作では、新たなファイルを構成するファイルデータの書き込み要求が有る毎に、自動的に次の管理領域にそのファイルデータを書き込む領域が確保されていくことになる。
【００８８】
そして、上記ファイルＡ〜Ｄとは異なる他のファイルＥ、つまり、管理領域１〜４の数を超える５番目のファイルＥを構成するファイルデータｅ１の書き込み要求が生じた場合には、自動的に最初の管理領域１に戻り、その管理領域１内の領域Ａ１に続けて、当該書き込み要求の有ったファイルデータｅ１を書き込む領域Ｅ１が確保されることになる［図８の（５）］。
【００８９】
このため、管理領域１内に領域Ｅ１が確保された後に、上記ファイルＡを構成するファイルデータａ１に続くファイルデータａ２の書き込み要求が発生した場合には、管理領域１内の領域Ａ１に続けてファイルデータａ２を書き込む領域Ａ２を確保することができないことになる［図８の（６）］。
【００９０】
そこで、この実施の形態では、上記したファイルシステム１０２により、図９に示すように、メモリ２０２のファイルデータブロック５２を４つの管理領域１〜４に分割する。そして、まず、ファイルＡを構成するファイルデータａ１の書き込み要求が有った場合には、自動的に管理領域１内の先頭のクラスタに続くクラスタからなる領域Ａ１を、当該書き込み要求が有ったファイルデータａ１を書き込む領域として確保する［図９の（１）］。
【００９１】
また、ファイルＡとは異なる他のファイルＢを構成するファイルデータｂの書き込み要求が有った場合には、管理領域１内の領域Ａ１に書き込まれたファイルデータａ１の拡張性の有無、つまり、ファイルデータａ１に続くファイルデータが存在する可能性が高いか否かを判別する。そして、ファイルデータａ１の拡張性が高いと判断されたときには、次の管理領域２内の先頭のクラスタに続くクラスタからなる領域Ｂ１を、当該書き込み要求が有ったファイルデータｂを書き込む領域として確保する［図９の（２）］。
【００９２】
さらに、上記ファイルＡ，Ｂとは異なる他のファイルＣを構成するファイルデータｃ１の書き込み要求が有った場合には、管理領域２内の領域Ｂ１に書き込まれているファイルデータｂの拡張性が高いか否かを判別する。そして、ファイルデータｂが例えばディレクトリ情報等のような拡張性の低いデータであると判断されたときには、同じ管理領域２内の領域Ｂ１に続く領域Ｃ１を、当該書き込み要求が有ったファイルデータｃ１を書き込む領域として確保する［図９の（３）］。
【００９３】
また、上記ファイルＡ〜Ｃとは異なる他のファイルＤを構成するファイルデータｄ１の書き込み要求が有った場合には、管理領域２内の領域Ｃ１に書き込まれているファイルデータｃ１の拡張性が高いか否かを判別し、拡張性の高いデータであると判断されたときには、次の管理領域３内の先頭のクラスタに続くクラスタからなる領域Ｄ１を、当該書き込み要求が有ったファイルデータｄ１を書き込む領域として確保する［図９の（４）］。
【００９４】
さらに、上記ファイルＡ〜Ｄとは異なる他のファイルＥを構成するファイルデータｅ１の書き込み要求が有った場合には、管理領域３内の領域Ｄ１に書き込まれているファイルデータｄ１の拡張性が高いか否かを判別し、拡張性の高いデータであると判断されたときには、次の管理領域４内の先頭のクラスタに続くクラスタからなる領域Ｅ１を、当該書き込み要求が有ったファイルデータｅ１を書き込む領域として確保する［図９の（５）］。
【００９５】
このため、上記ファイルＡを構成するファイルデータａ１に続くファイルデータａ２の書き込み要求が発生した場合には、管理領域１内の領域Ａ１に続けてファイルデータａ２を書き込む領域Ａ２を確保することができるようになる［図９の（６）］。
【００９６】
図１０は、図９を用いて説明した、書き込まれたファイルデータの拡張性に応じて書き込む領域を割り当る処理動作をまとめたフローチャートを示している。この割り当て処理は、上記ファイルシステム１０２によって実行されるもので、図５に示したフローチャートでは、ステップＳ６０９の処理で行なわれるものである。
【００９７】
この処理動作は、上記ソフトウエア（アプリケーション）１０１からファイルデータの書き込み要求が発生されたことで開始される。例えばファイルＡを構成するファイルデータの書き込み要求が有った場合、ファイルシステム１０２は、ステップＳ１０１で、ファイルＡを構成するファイルデータを書き込む管理領域１の、最後にファイルデータが書き込まれたクラスタの次のクラスタに空きがあるか否かを判別する。
【００９８】
そして、クラスタに空きがないと判断された場合（ＮＯ）、ファイルシステム１０２は、ステップＳ１０２で、次の書き込み先となる管理領域（この場合、管理領域２）を選択し、その管理領域に最後に書き込まれたファイルデータが、ディレクトリ情報のような拡張性の低いデータであるか否かを判別する。
【００９９】
ここで、拡張性の低いデータでないと判断された場合（ＮＯ）、ファイルシステム１０２は、ステップＳ１０３で、次の書き込み先となる管理領域（この場合、管理領域３）を選択し、ステップＳ１０４で、その管理領域に、書き込み要求されたファイルデータを書き込む領域を確保して書き込みを実行する。
【０１００】
また、上記ステップＳ１０１でクラスタに空きがあると判断された場合（ＹＥＳ）、または、上記ステップＳ１０２で拡張性の低いデータであると判断された場合（ＹＥＳ）、ファイルシステム１０２は、ステップＳ１０４で、管理領域１に、書き込み要求されたファイルデータを書き込む領域を確保して書き込みを実行する。
【０１０１】
その後、ファイルシステム１０２は、ステップＳ１０５で、書き込み要求されたファイルデータを書き込むクラスタが不足したか否かを判別し、不足していると判断された場合（ＹＥＳ）、上記ステップＳ１０１の処理に戻される。また、上記ステップＳ１０５でクラスタが不足していないと判断された場合（ＮＯ）、本フローチャートにおける処理は終了し、ファイルシステム１０２は、図５に示したステップＳ６０７の処理に戻される。
【０１０２】
図９及び図１０を用いて説明した実施の形態によれば、いずれかの管理領域を選択してファイルデータを書き込む際、その選択された管理領域に最後に書き込まれたファイルデータの拡張性を判別する。そして、拡張性が高い場合には、次の管理領域にファイルデータを書き込み、拡張性が低い場合には、そのファイルデータに続けて、書き込み要求されたファイルデータを書き込むようにしている。これにより、それぞれが複数のファイルデータで構成される複数のファイルを情報記録媒体（この場合、メモリ２０２）に書き込む際、ファイル毎にファイルデータの連続性を損なうことなく書き込むことができる可能性をより一層向上させるようにすることが可能となる。
【０１０３】
なお、上記した実施の形態では、拡張性の低いデータとして、ＦＡＴファイルシステムにおけるディレクトリ情報を例にしたが、これに限らず、例えば、分散して記録されることが実質的に支障の生じない性質を有するデータ等も、拡張性の低いデータの範疇に入ることになる。
【０１０４】
また、上記した実施の形態では、書き込まれたデータが拡張性の高いデータか否かの判別を行なうタイミングとして、次のデータの書き込みが要求された場合を例示したが、これに限定されず、例えばデータの書き込み時にそのデータの拡張性の高低を判別して保持しておき、次のデータを書き込む際に保持しておいた判別結果を参照する等のように、他のタイミングであっても良いものである。
【０１０５】
図１１は、上記したＰＣ１００の基本構成を示している。このＰＣ１００は、その主要部であって各部を集中的に制御するＣＰＵ１００１を備えている。このＣＰＵ１００１には、ＢＩＯＳ等を記録した読み出し専用メモリであるＲＯＭ等の不揮発性メモリ１００５と、各種データを書き替え可能に記録するＲＡＭ等のメモリ１００２とが、バス１００６で接続されている。
【０１０６】
また、バス１００６には、記録領域割り当てプログラム等の各種のプログラムを格納するハードディスク１００４と、外付けのハードディスク１００７をＰＣ１００に接続するためのＵＳＢ（universal serial bus）コネクタや、ＳＤカード等のメモリカード２００が挿入されるメモリカードインターフェース１０３等を備えたＩ／Ｆ１００３とが、図示しないＩ／Ｏを介して接続されている。
【０１０７】
上記メモリ１００２は、各種データを書き替え可能に記録する性質を有していることから、ＣＰＵ１００１の作業エリアとして機能してバッファ等の役割を果たしている。
【０１０８】
上記不揮発性メモリ１００５には、ＯＳ（operating system）や各種のプログラムが記録されている。ＣＰＵ１００１は、不揮発性メモリ１００５に記録されているプログラムを読み出し、ハードディスク１００４にインストールする。
【０１０９】
なお、ファイルを記録する情報記録媒体としては、メモリカード２００のみに限らず、例えば、ＤＶＤ（digital versatile disk）等の各種の光ディスク、各種光磁気ディスク、フレキシブルディスク等の各種磁気ディスク、半導体メモリ等の各種方式のメディアを用いることができる。
【０１１０】
また、図示しない通信制御装置を介してインターネット等のネットワークからプログラムをダウンロードし、ハードディスク１００４にインストールするようにしても良いものである。この場合に、送信側のサーバでプログラムを記録している記録装置に対しても、この実施の形態を適用することが可能となる。
【０１１１】
なお、プログラムは、所定のＯＳ上で動作するものであっても良いし、その場合に各種処理の一部をOSに肩代わりさせるものであっても良いし、所定のアプリケーションソフトやＯＳ等を構成する群のプログラムファイルの部として含まれているものであっても良いものである。
【０１１２】
このシステム全体の動作を制御するＣＰＵ１００１は、このシステムの主記録装置として使用されるハードディスク１００４上にロードされたプログラムに基づいて各種処理を実行する。
【０１１３】
ＰＣ１００で実行されるプログラムは、上述した各部（ソフトウエア１０１、ファイルシステム１０２、メモリカードインターフェース１０３）を含むモジュール構成となっている。実際のハードウエアとしては、ＣＰＵ１００１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより、上記各部が主記録装置上にロードされ、ソフトウエア１０１、ファイルシステム１０２、メモリカードインターフェース１０３が主記録装置上に生成されるようになっている。
【０１１４】
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
【符号の説明】
【０１１５】
１００…ＰＣ、１０１…ソフトウエア、１０２…ファイルシステム、１０３…メモリカードインターフェース、２００…メモリカード、２０１…コントローラ、２０１ａ…メモリカードインターフェース、２０１ｂ…ＭＰＵ、２０１ｃ…ＲＯＭ、２０１ｄ…ＲＡＭ、２０１ｅ…ＮＡＮＤインターフェース、２０１ｆ…レジスタ、２０２…メモリ、２０２ａ…システムデータ領域、２０２ｂ…機密データ領域、２０２ｃ…ユーザデータ領域、１００１…ＣＰＵ、１００２…メモリ、１００３…Ｉ／Ｆ、１００４…ハードディスク、１００５…不揮発性メモリ、１００６…バス、１００７…ハードディスク。
【図１】
2011118953.tif 000003
【図２】
2011118953.tif 000004
【図３】
2011118953.tif 000005
【図４】
2011118953.tif 000006
【図５】
2011118953.tif 000007
【図６】
2011118953.tif 000008
【図７】
2011118953.tif 000009
【図８】
2011118953.tif 000010
【図９】
2011118953.tif 000011
【図１０】
2011118953.tif 000012
【図１１】
2011118953.tif 000013