(57)【要約】【課題】情報記憶装置に対する書込み時間を短縮できるようにする。【解決手段】情報記録装置２１は、各ブロックが含むセクタ数を記憶しており、複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイルシステム処理部１３ｂと、情報記録装置２１から各ブロックが含むセクタ数を取得し、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの情報記憶装置２１への書込みを同一の書き込みタイミングで行うドライバー処理部１３ｃとを有するように構成する。【選択図】図２
2011141645.tif 000002
【特許請求の範囲】
【請求項１】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置において、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、
複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、
前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む１以上のブロックに対してデータを書込む書込制御手段と
を有する情報処理装置。
【請求項２】
前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃わなかった場合には、前記記憶手段にキャッシュさせている前記データを用いて、前記ブロックを含む１以上のブロックに対してデータを書込む
請求項１に記載の情報処理装置。
【請求項３】
前記書込制御手段は、複数のブロックを単位として、前記情報記憶装置に対してデータを書込む
請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記情報記憶装置に対して、異なるブロック数を単位として実際にデータの書込みを行い、書込んだ際に最速となるブロック数を判定する実測判定手段を更に有し、
前記書込制御手段は、前記判定したブロック数を単位として、前記情報記憶装置に対してデータを書込む
請求項１乃至請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置によるアクセス処理方法において、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記情報処理装置の取得手段が、前記情報記録装置から各ブロックが含むセクタ数を取得する取得ステップと、
前記情報処理装置のファイル管理手段が、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として指定するファイル管理ステップと、
前記情報処理装置の書込制御手段が、前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む１以上のブロックに対してデータを書込む書込制御ステップと
を有するアクセス処理方法。
【請求項６】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行うコンピューターに実行させるアクセス処理プログラムであって、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記コンピューターを、
前記情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、
複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、
前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む１以上のブロックに対してデータを書込む書込制御手段と
して機能させるアクセス処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置等に関する。
【背景技術】
【０００２】
例えば、ＰＣ（Personal Computer）等の情報処理装置は、ハードディスク、フラッシュメモリ等の情報記憶装置から所望のデータを読出したり、或いは、情報記憶装置に所望のデータを書込んだりしている。このような情報処理装置においては、例えば、情報記憶装置に格納されているデータをユーザーがファイルとして取扱えるようにするためにファイルシステムが構築されているものがある。このファイルシステムにおいては、データを所定の単位（アロケーションユニット）により管理しており、例えば、ＦＡＴ（File Allocation Table）ファイルシステムにおいては、アロケーションユニットの一例としてのクラスタを単位として情報処理装置と情報記憶装置との間のデータアクセスが行なわれる。クラスタには、情報記憶装置の最小アクセス単位であるセクタが複数対応付けられている。
【０００３】
情報記憶装置と、情報処理装置との間のデータアクセスの速度は、情報処理装置における処理時間に影響を与えるので、できるだけ速いことが要求されている。例えば、特許文献１には、ハードディスクの同一パーティションに、複数のクラスタサイズをもたせ、格納するデータの大きさに応じて、その大きさに見合ったクラスタへデータを格納させることにより、ディスク使用状況の無駄をなくし、アクセススピードを最適に保つことのできる技術が開示されている。また、特許文献２には、記録メディアの連続する空きクラスタ群を検索し、その空きクラスタ群のデータ記憶領域に所望のデータを連続して書込ませる技術が開示されている。また、特許文献３には、記録媒体の最小記録単位が連続して複数個からなるブロック単位の空き領域を検出し、ブロック単位の空き領域に情報信号を記録する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３５７１１２号公報
【特許文献２】特開２００２−９１８０６号公報
【特許文献３】特開２００４−８６８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記した特許文献１乃至特許文献３の技術によると、データのアクセス時間を短縮することができる。しかしながら、ファイルシステムにおけるクラスタを基準として、情報記憶装置への書込みをしているので、情報記憶装置の構成等により必ずしも効果的なものであるとはいえない場合がある。
例えば、情報記憶装置がＳＤカードのようなフラッシュメモリである場合には、ファイルシステムにおけるクラスタに対応する複数のセクタと、フラッシュメモリにおける最小消去単位であるブロックとの関係によって、以下のように適切な書込みが行なえない場合が生じるおそれがある。
図１（ａ）に示すように、ファイルシステムの各クラスタ（クラスタＡ、クラスタＡ＋１、クラスタＡ＋２）に対応付けられている複数のセクタが、フラッシュメモリにおける各ブロック（ブロックＢ、ブロックＢ＋１、ブロックＢ＋２）に含まれる複数のセクタに対応している場合には、各クラスタで管理するセクタのデータをブロックに書込む際には、各ブロックに対してデータを書込めばよいので、当該各ブロックに対するデータ消去を行い、当該ブロックに対象のデータを順次書込めばよい。
しかしながら、図１（ｂ）に示すようにファイルシステムにおける各クラスタに対応する複数のセクタが、複数のブロックにまたがっている場合には、各クラスタ（例えば、クラスタＣ）で管理するデータをブロックに書込む際には、２つのブロック（ブロックＤ、ブロックＤ＋１）に対して書込みを行なわなければならず、２つのブロックに対してデータ消去を行い、これらブロックにデータを書込まなければならず、引き続き、次のクラスタ（クラスタＣ＋１）で管理するデータをブロックに書込む際には、２つのブロック（ブロックＤ＋１、Ｄ＋２）に対して書込みを行なわなければならず、２つのブロックに対してデータ消去を行い、これらブロックにデータを書込まなければならない。このように、複数のブロックの消去を行なわなければならず、更に、連続したクラスタを書込む際には、同一のブロックに対して複数回の重複したデータ消去を行なわなければならず、データの書込みが遅くなってしまう。
【０００６】
本発明は、上記課題に鑑みなされたものであり、その目的は、情報記憶装置に対する書込み時間を短縮することのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的達成のため、本発明の第１の観点に係る情報処理装置は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置において、情報記録装置は、各ブロックが含むセクタ数を記憶しており、情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む１以上のブロックに対してデータを書込む書込制御手段とを有する。
【０００８】
係る情報処理装置によると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、同一のタイミングとなる（異なる書込みタイミングとならない）ので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【０００９】
また、上記情報処理装置において、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃わなかった場合には、記憶手段にキャッシュさせているデータを用いて、ブロックを含む１以上のブロックに対してデータを書込むようにしてもよい。係る情報処理装置によると、同一のブロックに対する書込みが行われない場合に、キャッシュしていたデータを適切に情報処理装置にデータを書込むことができる。
【００１０】
また、上記情報処理装置において、書込制御手段は、複数のブロックを単位として、情報記憶装置に対してデータを書込むようにしてもよい。係る情報処理装置によると、複数のブロックをまとめて情報記憶装置に書込むので、書込みの回数を減らすことができ、情報記憶装置へのデータの書込みが速くなる。
【００１１】
また、上記情報処理装置において、情報記憶装置に対して、異なるブロック数を単位として実際にデータの書込みを行い、書込んだ際に最速となるブロック数を判定する実測判定手段を更に有し、書込制御手段は、判定したブロック数を単位として、情報記憶装置に対してデータを書込むようにしてもよい。係る情報処理装置によると、情報記憶装置に対しての書込みにおいて、最速となる書込み単位を実際に測定して判定することができるので、適切なブロック数によるデータの書込みを行うことができ、情報記憶装置へのデータの書込みを速くすることができる。
【００１２】
また、上記目的達成のため、本発明の第２の観点に係るアクセス処理方法は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置によるアクセス処理方法において、情報記録装置は、各ブロックが含むセクタ数を記憶しており、情報処理装置の取得手段が、情報記録装置から各ブロックが含むセクタ数を取得する取得ステップと、情報処理装置のファイル管理手段が、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理ステップと、情報処理装置の書込制御手段が、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む１以上のブロックに対してデータを書込む書込み制御ステップとを有する。係るアクセス処理方法によると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、異なる書込みタイミングとならないので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短縮する。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【００１３】
また、上記目的達成のため、本発明の第３の観点に係るアクセス処理プログラムは、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行うコンピューターに実行させるアクセス処理プログラムであって、情報記録装置は、各ブロックが含むセクタ数を記憶しており、コンピューターを、情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する１以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における１以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む１以上のブロックに対してデータを書込む書込制御手段として機能させる。係るアクセス処理プログラムを実行するコンピューターによると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、異なる書込みタイミングとならないので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短縮する。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【図面の簡単な説明】
【００１４】
【図１】従来例に係る情報記憶装置に対するファイルの書込みを説明する図である。
【図２】本発明の一実施形態に係る情報処理装置及び情報記憶装置の一例を示す図である。
【図３】本発明の一実施形態に係る情報記憶装置に対するファイルの書込みの一例を説明する図である。
【図４】本発明の一実施形態に係る最適書込単位決定処理のフローチャートである。
【図５】本発明の一実施形態に係る情報処理装置によるアクセス処理のフローチャートである。
【発明を実施するための形態】
【００１５】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１６】
まず、本発明の一実施形態に係る情報処理装置について説明する。
【００１７】
図２は、本発明の一実施形態に係る情報処理装置及び情報記憶装置の一例を示す図である。
【００１８】
情報処理装置２は、例えば、ＰＣ（Personal Computer）であり、装置本体１０と、表示装置１１と、入力装置１２とを有する。表示装置１１は、例えば、液晶ディスプレイや、ＣＲＴディスプレイ等の画像を表示する装置である。入力装置１２は、例えば、マウス、キーボード等の情報処理装置２のユーザーからの入力を受け付けるための装置である。
【００１９】
装置本体１０において、ＣＰＵ（Central Processing Unit）１３と、ＲＯＭ（Read Only Memory）１４と、記憶手段の一例としてのＲＡＭ（Random Access Memory）１５と、ハードディスクドライブ（ＨＤＤ）１６と、表示処理部１７と、入力インターフェース部１８と、インターフェース部１９とがバス２０を介して接続されている。
【００２０】
ＲＯＭ１４は、ブートプログラム等の基本プログラムを記憶する。ＲＡＭ１５は、プログラムやデータを記憶する領域として、或いは、ＣＰＵ１３による処理に使用されるデータを格納する作業領域として利用される。本実施形態では、ＲＡＭ１５は、ファイルのデータの少なくとも一部をキャッシュするためにも用いられる。また、ＲＡＭ１５は、情報記憶装置２１に格納している後述するファイル管理用情報が読み出される領域としても用いられる。ＨＤＤ１６は、ＯＳ（Operating System）プログラム、アプリケーションプログラム、ドライバープログラム等の各種プログラムを読み出し可能に記憶する。また、ＨＤＤ１６は、情報処理装置２に接続される情報記憶装置２１の識別情報（ＩＤ）と、当該情報記憶装置２１に対する最適な書込単位（最適書込単位）とを対応付けて記憶する。
【００２１】
表示処理部１７は、ＣＰＵ１３の制御により、表示装置１１に画像を表示させるための表示用のデータ又は信号を生成し、表示装置１１に出力する。入力インターフェース部１８は、入力装置１２と接続されており、入力装置１２からの信号をデータとして、ＣＰＵ１３に渡す。インターフェース部１９は、複数種類の情報記憶装置２１と接続可能であり、複数種類の情報記憶装置２１からのデータやプログラムの読み込み、情報記憶装置２１へのデータの書込みを行う。情報記録装置２１としては、例えば、フラッシュメモリ（例えば、ＳＤカード、ＵＳＢメモリ等）がある。
【００２２】
情報記録装置２１は、データの最小アクセス単位としてのセクタを複数有している。また、情報記録装置２１は、データの消去を行う最小単位としてのブロックを複数有している。ブロックには、所定数のセクタが含まれている。情報記録装置２１は、ブロックに含まれるセクタの数等の情報記録装置２１に関する情報を記憶する。また、情報記録装置２１は、情報記録装置２１に格納されているファイルのデータを管理するために必要なファイル管理情報（例えば、ＦＡＴ（File Allocation Table））を記憶する。ファイル管理情報には、ファイルと、当該ファイルを管理するクラスタとの対応関係や、当該クラスタと、当該クラスタのデータを格納する情報記憶装置２１の複数のセクタとの対応関係を示す情報が含まれており、情報処理装置２の後述するファイルシステム処理部１３ｂに利用される。
【００２３】
ＣＰＵ１３は、各部１４〜１９の動作を制御する。また、ＣＰＵ１３は、ＲＯＭ１４の基本プログラムやＨＤＤ１６に格納されているＯＳプログラム、アプリケーションプログラム、ドライバープログラム等をＲＡＭ１５に読み出して実行することにより各種処理を実行する。
【００２４】
ＣＰＵ１３には、アプリケーション処理部１３ａと、ファイル管理手段の一例としてのファイルシステム処理部１３ｂと、取得手段、実測判定手段、及び書込制御手段の一例としてのドライバー処理部１３ｃとが構築される。アプリケーション処理部１３ａは、ＣＰＵ１３がアプリケーションプログラムを実行することにより構築され、ファイルシステム処理部１３ｂは、ＣＰＵ１３がＯＳプログラムを実行することにより構築され、ドライバー処理部１３ｃは、ＣＰＵ１３がドライバープログラムを実行することにより構築される。
【００２５】
アプリケーション処理部１３ａは、図示しないアプリケーション画面を表示処理部１７により表示装置１１に表示させて、例えば、ドキュメントの作成、編集機能や、画像の作成編集機能を提供する。また、アプリケーション処理部１３ａは、処理に関わる各種ファイルについてのアクセス要求（読出し要求、書込み要求）や、対応するファイルのデータ等をファイルシステム処理部１３ｂとやり取りする。アプリケーション処理部１３ａは、入力装置１２を介してユーザーからファイルの書込み要求を受け付けた場合には、そのファイルに対する書込要求をファイルシステム処理部１３ｂに通知する。
【００２６】
ファイルシステム処理部１３ｂは、ＲＡＭ１５に読み出されたファイル管理情報を用いて、ファイルの管理を行う。例えば、ファイルシステム処理部１３は、アプリケーション処理部１３ａからのファイルのアクセス要求（読出要求や書込要求）を受け取ると、ＲＡＭ１５に格納されているファイル管理情報に基づいて、ファイルの情報記憶装置２１における格納位置（複数のセクタ）を特定し（割当て又は検出し）、当該格納位置（複数のセクタ）に対するアクセスを指定するアクセス要求（書込指定又は読込指定）をドライバー処理部１３ｃに渡すとともに、ドライバー処理部１３ｃとの間でアクセス要求に関わるデータの受け渡しを行う。
【００２７】
ドライバー処理部１３ｃは、ファイルシステム処理部１３ｂから受け取ったアクセス要求で指定された情報記憶装置２１の複数のセクタに対するアクセスを、後述するように決定される最適書込単位に従ってインターフェース部１９を介して実行する。例えば、データを書込む際には、ドライバー処理部１３ｃは、書込対象の１以上のセクタが属する１以上のブロックのデータをＲＡＭ１５に退避し、当該ブロックのデータを消去し、退避したデータと書込対象の１以上のセクタに書込むデータとにより更新後のデータを生成し、このデータを対応するブロックに対して書込むという一連の書込動作を実行する。
【００２８】
また、ドライバー処理部１３ｃは、インターフェース部１９に新たに情報記憶装置２１が接続されたか否かを検出し、新たに接続されたことを検出した場合には、この情報記憶装置２１に対する最適書込単位がＨＤＤ１６に格納されているか否かを判定する。例えば、情報記憶装置２１から当該情報記憶装置２１のＩＤを受け取り、当該ＩＤに対応する最適書込単位がＨＤＤ１６に格納されているか否かを判定する。ドライバー処理部１３ｃは、ＩＤに対応する最適書込単位がＨＤＤ１６に格納されている場合には、当該最適書込単位を、情報記憶装置２１へアクセスをする際の書込単位に決定（設定）する。
【００２９】
また、ドライバー処理部１３ｃは、ＩＤに対応する最適書込単位がＨＤＤ１６に格納されていない場合には、複数の書込単位により実際に情報記憶装置２１にアクセスし、そのアクセス時におけるデータ転送に関する値（データ転送値）を測定する。ここで、データ転送値とは、時間に対するデータ転送量を示すデータ転送速度であってもよいし、所定のデータ量を転送する際に要する時間であってもよく、転送の速さを比較するための値であればよい。複数の書込単位としては、情報記憶装置２１がフラッシュメモリであれば、例えば、フラッシュメモリのブロックのｎ倍（ｎは、１以上の整数）の書込単位を複数用意すればよい。
【００３０】
また、ドライバー処理部１３ｃは、実際に測定したデータ転送値に基づいて、最適書込単位を検出し、当該最適書込単位を、情報記憶装置２１に対するアクセスに用いると決定するとともに、当該最適書込単位と、情報記憶装置２１のＩＤとを対応付けてＨＤＤ１６に記憶する。これにより、同一の情報記憶装置２１が接続された場合には、実測を行うことなく、最適書込単位を迅速に把握して用いることができる。
【００３１】
また、ドライバー処理部１３ｃは、情報記憶装置２１からブロックが含むセクタ数を取得する。情報記憶装置２１では、通常は、先頭のセクタから順番に当該セクタ数ずつのブロックとなっているので、ブロックが含むセクタ数により、各ブロックに含まれるセクタを把握することができる。
【００３２】
また、ドライバー処理部１３ｃは、取得したブロックが含むセクタ数に基づいて、ファイルシステム処理部１３ｂから書込指定された連続する複数のセクタ中の同一のブロックに属する複数のセクタに対するデータの書込みが、同一のタイミングとなるように（異なる書込みタイミングとならないように）して、情報記憶装置２１に対してデータを書込む。具体的には、ドライバー処理部１３ｃは、連続する複数のセクタ中の同一のブロックに属する複数のセクタを１度の書込みで連続して情報記憶装置２１に書込ませる。この際に、１度の書込みで連続して送るデータの書込単位は、既に決定している最適書込単位（ｎブロック分）とする。
【００３３】
また、ドライバー処理部１３ｃは、書込指定の最終セクタが、書込指定のセクタを最適書込単位毎に分けた場合の最終の最適書込単位の最終セクタでない場合、すなわち、最後部のセクタを書込む最適書込単位について、書込指定のセクタで満たすことができない場合には、当該最適書込単位に書込むべきセクタのデータをＲＡＭ１５にキャッシュする。
【００３４】
ドライバー処理部１３ｃは、直前に書込指定があった最後部の１以上のセクタを含むセクタのデータがＲＡＭ１５にキャッシュされているか否かを判定し、キャッシュされている場合には、キャッシュされている最後部のセクタと、今回の書込指定のデータの先頭のセクタとが連続するセクタであるかを判定する。この結果、今回の書込指定のセクタが連続するセクタである場合には、ドライバー処理部１３ｃは、そのセクタと、キャッシュされている最後部のセクタとが同一のブロックに属するので、キャッシュしている１以上のセクタのデータと、書込指定の先頭の同一のブロックに属する１以上のセクタのデータとを１度の書込で連続して情報記憶装置２１に書込む一方、連続するセクタでない場合には、キャッシュしているデータを１度の書込みで情報記憶装置２１に書込む。
【００３５】
ここで、図面を参照して、情報記憶装置２１へのデータ書込みを説明する。
【００３６】
図３は、本発明の一実施形態に係る情報記憶装置に対するファイルの書込みを説明する図である。図３（ａ）は、連続するセクタへの書込指定が連続して発生しなかった場合の一例を示し、図３（ｂ）は、連続するセクタへの書込指定が連続して発生した場合の一例を示している。ここで、図３は、ファイルシステム処理部１３ｂにより管理するファイルシステムのクラスタは、それぞれ４つのセクタを含み、情報記憶装置２１のブロックは、それぞれ４つのセクタを含み、１つのクラスタに対応する４つのセクタが、２つのブロックに跨って対応するようになっている場合において、連続する３つのクラスタの連続する１２のセクタが書込指定された際のデータ書込の例を示している。図３においては、最適書込単位が１ブロックであるとして説明する。なお、クラスタに含まれるセクタの数と、ブロックに含まれる数とは、単なる例示であり、これらに限られず、また、クラスタに含まれるセクタの数と、ブロックに含まれるセクタの数とが異なっていてもよい。
【００３７】
一つめの最初の書込指定（第１書込指定）を受け付けると、まず、図３（ａ）に示すように、ドライバー処理部１３ｃは、書込指定された１２のセクタ中のブロックＤに格納されるセクタ１と、セクタ２とのデータを１回の書込み動作でブロックＤに書込む。ここでは、ブロックＤに対する消去が一回発生する。次いで、ドライバー処理部１３ｃは、ブロックＤ＋１に格納されるセクタ３〜６のデータを１回の書込み動作でブロックＤ＋１に書込む。ここでは、ブロックＤ＋１に対する消去が一回発生する。次いで、ドライバー処理部１３ｃは、ブロックＤ＋２に格納されるセクタ７〜９のデータを１回の書込み動作でブロックＤ＋２に書込む。ここでは、ブロックＤ＋２に対する消去が一回発生する。次いで、ドライバー処理部１３ｃは、ブロックＤ＋３に格納されるセクタ１１及び１２のデータをＲＡＭ１５にキャッシュする。
【００３８】
そして、次の書込指定（第２書込指定）を受け付けたが、次の書込指定が連続するセクタへの書込みではない場合や、書込みが終了した旨の通知を受けた場合には、ドライバー処理部１３ｃは、図３（ａ）に示すように、ＲＡＭ１５にキャッシュされているセクタ１１及び１２のデータを１回の書込み動作でブロックＤ＋３に書込む。ここでは、ブロックＤ＋３に対する消去が一回発生する。上記したようにデータが書込まれることとなるので、各ブロックにおける消去回数を１回に抑えることができるので、書込み時間を短縮することができる。また、ブロックへの書込み回数を低減することができるので、情報記憶装置２１がブロックへの書込み回数に限度があるフラッシュメモリであれば、情報記憶装置２１の寿命を延ばすことができる。
【００３９】
一方、次の書込指定（第２書込指定）を受け付け、次の書込指定が連続するセクタへの書込みである場合には、ドライバー処理部１３ｃは、図３（ｂ）に示すように、ＲＡＭ１５にキャッシュされているセクタ１１及び１２のデータと、第２書込指定に含まれるセクタ１３及び１４のデータとを１回の書込み動作でブロックＤ＋３に書込む。ここでは、ブロックＤ＋３に対する消去が一回発生する。このように、連続する書込指定のセクタについても同一のブロックに書込むデータについて、一回の書込みにより実行するようにしたので、異なる書込指定で書込むこととなる同一のブロックにおける消去回数を１回に抑えることができるので、書込み時間を短縮することができる。また、ブロックへの書込み回数を低減することができるので、情報記憶装置２１がブロックへの書込み回数に限度があるフラッシュメモリであれば、情報記憶装置２１の寿命を延ばすことができる。
【００４０】
次に、本発明の一実施形態に係る情報処理装置における最適書込単位決定処理の動作について説明する。
【００４１】
図４は、本発明の一実施形態に係る最適書込単位決定処理のフローチャートである。
【００４２】
まず、ドライバー処理部１３ｃは、インターフェース部１９に情報記憶装置２１が接続されたことを認識したか否かを判定し（ステップＳ１）、認識していない場合には、認識するまで待つ一方、認識した場合（ステップＳ１：ＹＥＳ）には、当該情報記憶装置２１に対する最適書込単位がＨＤＤ１６に格納されているか否かを判定する（ステップＳ２）。
【００４３】
当該情報記憶装置２１に対する最適書込単位がＨＤＤ１６に格納されていない場合（ステップＳ２：ＮＯ）には、ドライバー処理部１３ｃが、規定の複数書込単位の内のひとつの書込単位を選択し（ステップＳ３）、この書込単位により実際に情報記憶装置２１に書込みを行い（ステップＳ４）、当該書込み時のデータ転送速度を測定する（ステップＳ５）。
【００４４】
そして、ドライバー処理部１３ｃは、複数の書込単位の全てについて書込みを実施したか否かを判定し（ステップＳ６）、全ての書込単位による書込みを実施していない場合（ステップＳ６：ＮＯ）には、ステップＳ３に戻る一方、全ての書込単位による書込みを実施している場合（ステップＳ６：ＹＥＳ）には、ステップＳ７に進む。
【００４５】
ステップＳ７においては、ドライバー処理部１３ｃは、測定したデータ転送速度のうちで最速となる書込単位（最適書込単位）を検出し、この最適書込単位を、現在接続されている情報記憶装置２１に対する書込み時の書込単位として決定し、情報記憶装置２１のＩＤと対応付けて最適書込単位をＨＤＤ１６に登録する（ステップＳ８）。
【００４６】
一方、最適書込単位がＨＤＤ１６に格納されている場合には、ＨＤＤ１６に格納されている最適書込単位を、当該情報記憶装置２１に対する書込み時における書込単位として決定する（ステップＳ９）。
【００４７】
次に、本発明の一実施形態に係る情報処理装置におけるアクセス処理の動作について説明する。
【００４８】
図５は、本発明の一実施形態に係るアクセス処理のフローチャートである。
ドライバー処理部１３ｃは、ファイルシステム処理部１３ｂから書込指定を受け付けたか否かを判定し（ステップＳ１０）、書込指定を受け付けていない場合（ステップＳ１０：ＮＯ）には、書込指定を待つ一方、書込指定を受け付けた場合（ステップＳ１０：ＹＥＳ）には、ＲＡＭ１５に直前の書込指定における最後部のセクタに対応するブロック（書込単位分のブロック）のデータがキャッシュされているか否かを判断する（ステップＳ１１）。
【００４９】
この結果、キャッシュされている場合（ステップＳ１１：ＹＥＳ）には、ドライバー処理部１３ｃは、今回の書込指定が、直前の書込指定と連続した領域（セクタ）への書込みであるか否かを判定し（ステップＳ１２）、連続した領域への書込みであると判定した場合には、ステップＳ１４に進み、連続した領域への書込みではない場合には、ＲＡＭ１５にキャッシュしてあるデータ（キャッシュデータ）を対応するブロックに対して書込み（ステップＳ１３）、ＲＡＭ１５からキャッシュデータを削除して、ステップＳ１４に進む。なお、キャッシュがされていない場合（ステップＳ１１：ＮＯ）には、ステップＳ１４に進む。
【００５０】
ステップＳ１４において、ドライバー処理部１３ｃは、書込対象のデータ（書込データ）の終わりが最適書込単位の区切りに一致するか否か、すなわち、書込指定されている複数のセクタの最後のセクタが、最適書込単位毎にセクタを分けた際に、最後の最適書込単位の最終ブロックの最終セクタであるか否かを判定する。
【００５１】
この結果、書込データが最適書込単位の区切りに一致する場合（ステップＳ１４：ＹＥＳ）には、書込データのすべてを最適書込単位（ｎブロック毎）で書込むことができることを意味するので、ドライバー処理部１３ｃは、書込データを最適書込単位毎に情報記憶装置２１に書込み（ステップＳ１５）、ステップＳ１０に戻る。なお、ＲＡＭ１５にキャッシュがある場合には、キャッシュされているデータを先頭の最適書込単位に含めて、情報記憶装置２１に書込む。
【００５２】
一方、書込データが最適書込単位の区切りに一致しない場合（ステップＳ１４：ＮＯ）には、最後の最適書込単位については、書込データが最適書込単位を満たさないことを意味するので、ドライバー処理部１３ｃは、書込データを最適書込単位毎に情報記憶装置２１に書込み（ステップＳ１６）、最後の最適書込単位のデータについては、情報記憶装置２１に書込まずに、ＲＡＭ１５にキャッシュし（ステップＳ１７）、ステップＳ１０に戻る。なお、ＲＡＭ１５にキャッシュがある場合には、キャッシュされているデータを先頭の最適書込単位に含めて、情報記憶装置２１に書込む。
【００５３】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【００５４】
例えば、上記実施形態では、情報記憶装置２１に対して実際にデータを書込んだ際におけるデータ転送速度を測定し、そのデータ転送速度を比較することにより、最適な書込単位を決定するようにしていたが、本発明はこれに限られず、実際に測定することなく、予め設定された１以上のブロック数を書込単位としてもよい。
【００５５】
また、上記実施形態では、書込指定された最後部のセクタに対応する最後の最適書込単位のブロックが、書込指定のセクタで満たされていない場合に、ＲＡＭ１５にキャッシュするようにしていたが、キャッシュせずに、情報記憶装置２１に書込むようにしてもよい。
【００５６】
また、上記実施形態では、書込指定された複数のセクタについて、最適書込単位毎に情報記憶装置２１に書込むようにしていたが、本発明はこれに限られず、書込指定された複数のセクタの先頭部又は書込指定された複数のセクタの最後部の少なくともいずれか一方については、１ブロックに対応するセクタのみで情報記憶装置２１に書込むようにしてもよい。
【００５７】
また、上記実施形態では、情報記憶装置２１についての最適書込単位を情報処理装置２のＨＤＤ１６に記憶させるようにし、そこから最適書込単位を取得するようにしていたが、本発明はこれに限られず、情報記憶装置２１についての最適書込単位を当該情報記憶装置２１に記憶させるようにし、情報処理装置２は、情報記憶装置２１から最適書込単位を取得するようにしてもよい。
【００５８】
また、上記実施形態においては、情報処理装置として、ＰＣを例に説明したが、情報処理装置はこれに限られず、例えば、プリンター、デジタルカメラ、携帯電話等であってもよく、要は、情報記憶装置との間でのデータのアクセスを行う情報処理装置であればよい。
【符号の説明】
【００５９】
２  情報処理装置、１０  装置本体、１１  表示装置、１２  入力装置、１３  ＣＰＵ、１３ａ  アプリケーション処理部、１３ｂ  ファイルシステム処理部、１３ｃ  ドライバー処理部、１４  ＲＯＭ、１５  ＲＡＭ、１６  ＨＤＤ、１７  表示処理部、１８  入力インターフェース部、１９  インターフェース部、２０  バス、２１  情報記憶装置。
【図１】
2011141645.tif 000003
【図２】
2011141645.tif 000004
【図３】
2011141645.tif 000005
【図４】
2011141645.tif 000006
【図５】
2011141645.tif 000007