説明

情報処理装置、アクセス処理方法、及びアクセス処理プログラム

【課題】情報記憶装置に対する書込み時間を短縮できるようにする。
【解決手段】情報記録装置21は、各ブロックが含むセクタ数を記憶しており、複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイルシステム処理部13bと、情報記録装置21から各ブロックが含むセクタ数を取得し、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの情報記憶装置21への書込みを同一の書き込みタイミングで行うドライバー処理部13cとを有するように構成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置等に関する。
【背景技術】
【0002】
例えば、PC(Personal Computer)等の情報処理装置は、ハードディスク、フラッシュメモリ等の情報記憶装置から所望のデータを読出したり、或いは、情報記憶装置に所望のデータを書込んだりしている。このような情報処理装置においては、例えば、情報記憶装置に格納されているデータをユーザーがファイルとして取扱えるようにするためにファイルシステムが構築されているものがある。このファイルシステムにおいては、データを所定の単位(アロケーションユニット)により管理しており、例えば、FAT(File Allocation Table)ファイルシステムにおいては、アロケーションユニットの一例としてのクラスタを単位として情報処理装置と情報記憶装置との間のデータアクセスが行なわれる。クラスタには、情報記憶装置の最小アクセス単位であるセクタが複数対応付けられている。
【0003】
情報記憶装置と、情報処理装置との間のデータアクセスの速度は、情報処理装置における処理時間に影響を与えるので、できるだけ速いことが要求されている。例えば、特許文献1には、ハードディスクの同一パーティションに、複数のクラスタサイズをもたせ、格納するデータの大きさに応じて、その大きさに見合ったクラスタへデータを格納させることにより、ディスク使用状況の無駄をなくし、アクセススピードを最適に保つことのできる技術が開示されている。また、特許文献2には、記録メディアの連続する空きクラスタ群を検索し、その空きクラスタ群のデータ記憶領域に所望のデータを連続して書込ませる技術が開示されている。また、特許文献3には、記録媒体の最小記録単位が連続して複数個からなるブロック単位の空き領域を検出し、ブロック単位の空き領域に情報信号を記録する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−357112号公報
【特許文献2】特開2002−91806号公報
【特許文献3】特開2004−86823号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記した特許文献1乃至特許文献3の技術によると、データのアクセス時間を短縮することができる。しかしながら、ファイルシステムにおけるクラスタを基準として、情報記憶装置への書込みをしているので、情報記憶装置の構成等により必ずしも効果的なものであるとはいえない場合がある。
例えば、情報記憶装置がSDカードのようなフラッシュメモリである場合には、ファイルシステムにおけるクラスタに対応する複数のセクタと、フラッシュメモリにおける最小消去単位であるブロックとの関係によって、以下のように適切な書込みが行なえない場合が生じるおそれがある。
図1(a)に示すように、ファイルシステムの各クラスタ(クラスタA、クラスタA+1、クラスタA+2)に対応付けられている複数のセクタが、フラッシュメモリにおける各ブロック(ブロックB、ブロックB+1、ブロックB+2)に含まれる複数のセクタに対応している場合には、各クラスタで管理するセクタのデータをブロックに書込む際には、各ブロックに対してデータを書込めばよいので、当該各ブロックに対するデータ消去を行い、当該ブロックに対象のデータを順次書込めばよい。
しかしながら、図1(b)に示すようにファイルシステムにおける各クラスタに対応する複数のセクタが、複数のブロックにまたがっている場合には、各クラスタ(例えば、クラスタC)で管理するデータをブロックに書込む際には、2つのブロック(ブロックD、ブロックD+1)に対して書込みを行なわなければならず、2つのブロックに対してデータ消去を行い、これらブロックにデータを書込まなければならず、引き続き、次のクラスタ(クラスタC+1)で管理するデータをブロックに書込む際には、2つのブロック(ブロックD+1、D+2)に対して書込みを行なわなければならず、2つのブロックに対してデータ消去を行い、これらブロックにデータを書込まなければならない。このように、複数のブロックの消去を行なわなければならず、更に、連続したクラスタを書込む際には、同一のブロックに対して複数回の重複したデータ消去を行なわなければならず、データの書込みが遅くなってしまう。
【0006】
本発明は、上記課題に鑑みなされたものであり、その目的は、情報記憶装置に対する書込み時間を短縮することのできる技術を提供することにある。
【課題を解決するための手段】
【0007】
上記目的達成のため、本発明の第1の観点に係る情報処理装置は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置において、情報記録装置は、各ブロックが含むセクタ数を記憶しており、情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む1以上のブロックに対してデータを書込む書込制御手段とを有する。
【0008】
係る情報処理装置によると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、同一のタイミングとなる(異なる書込みタイミングとならない)ので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【0009】
また、上記情報処理装置において、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃わなかった場合には、記憶手段にキャッシュさせているデータを用いて、ブロックを含む1以上のブロックに対してデータを書込むようにしてもよい。係る情報処理装置によると、同一のブロックに対する書込みが行われない場合に、キャッシュしていたデータを適切に情報処理装置にデータを書込むことができる。
【0010】
また、上記情報処理装置において、書込制御手段は、複数のブロックを単位として、情報記憶装置に対してデータを書込むようにしてもよい。係る情報処理装置によると、複数のブロックをまとめて情報記憶装置に書込むので、書込みの回数を減らすことができ、情報記憶装置へのデータの書込みが速くなる。
【0011】
また、上記情報処理装置において、情報記憶装置に対して、異なるブロック数を単位として実際にデータの書込みを行い、書込んだ際に最速となるブロック数を判定する実測判定手段を更に有し、書込制御手段は、判定したブロック数を単位として、情報記憶装置に対してデータを書込むようにしてもよい。係る情報処理装置によると、情報記憶装置に対しての書込みにおいて、最速となる書込み単位を実際に測定して判定することができるので、適切なブロック数によるデータの書込みを行うことができ、情報記憶装置へのデータの書込みを速くすることができる。
【0012】
また、上記目的達成のため、本発明の第2の観点に係るアクセス処理方法は、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置によるアクセス処理方法において、情報記録装置は、各ブロックが含むセクタ数を記憶しており、情報処理装置の取得手段が、情報記録装置から各ブロックが含むセクタ数を取得する取得ステップと、情報処理装置のファイル管理手段が、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理ステップと、情報処理装置の書込制御手段が、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む1以上のブロックに対してデータを書込む書込み制御ステップとを有する。係るアクセス処理方法によると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、異なる書込みタイミングとならないので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短縮する。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【0013】
また、上記目的達成のため、本発明の第3の観点に係るアクセス処理プログラムは、最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行うコンピューターに実行させるアクセス処理プログラムであって、情報記録装置は、各ブロックが含むセクタ数を記憶しており、コンピューターを、情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、取得した各ブロックが含むセクタ数に基づいて、書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、ファイル管理手段により次に書込指定されたセクタにより、ブロックの全てのセクタが揃った場合に、記憶手段にキャッシュさせているデータと、次に書込指定されたセクタのデータとを用いて、ブロックを含む1以上のブロックに対してデータを書込む書込制御手段として機能させる。係るアクセス処理プログラムを実行するコンピューターによると、情報記憶装置の同一のブロックに属する複数のセクタに対するデータ書込みが、異なる書込みタイミングとならないので、ブロックへの書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短縮する。また、最初の書込指定されたセクタと、次に書込指定されたセクタが同一のブロックに属する場合に、それらをまとめて同一のブロックに書込むので、ブロックに対する書込み回数を低減することができ、書込み時に発生するブロックのデータ消去の回数を低減することができる。このため、情報処理装置へのデータの書込みが速くなり、書込み時間が短くなる。
【図面の簡単な説明】
【0014】
【図1】従来例に係る情報記憶装置に対するファイルの書込みを説明する図である。
【図2】本発明の一実施形態に係る情報処理装置及び情報記憶装置の一例を示す図である。
【図3】本発明の一実施形態に係る情報記憶装置に対するファイルの書込みの一例を説明する図である。
【図4】本発明の一実施形態に係る最適書込単位決定処理のフローチャートである。
【図5】本発明の一実施形態に係る情報処理装置によるアクセス処理のフローチャートである。
【発明を実施するための形態】
【0015】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0016】
まず、本発明の一実施形態に係る情報処理装置について説明する。
【0017】
図2は、本発明の一実施形態に係る情報処理装置及び情報記憶装置の一例を示す図である。
【0018】
情報処理装置2は、例えば、PC(Personal Computer)であり、装置本体10と、表示装置11と、入力装置12とを有する。表示装置11は、例えば、液晶ディスプレイや、CRTディスプレイ等の画像を表示する装置である。入力装置12は、例えば、マウス、キーボード等の情報処理装置2のユーザーからの入力を受け付けるための装置である。
【0019】
装置本体10において、CPU(Central Processing Unit)13と、ROM(Read Only Memory)14と、記憶手段の一例としてのRAM(Random Access Memory)15と、ハードディスクドライブ(HDD)16と、表示処理部17と、入力インターフェース部18と、インターフェース部19とがバス20を介して接続されている。
【0020】
ROM14は、ブートプログラム等の基本プログラムを記憶する。RAM15は、プログラムやデータを記憶する領域として、或いは、CPU13による処理に使用されるデータを格納する作業領域として利用される。本実施形態では、RAM15は、ファイルのデータの少なくとも一部をキャッシュするためにも用いられる。また、RAM15は、情報記憶装置21に格納している後述するファイル管理用情報が読み出される領域としても用いられる。HDD16は、OS(Operating System)プログラム、アプリケーションプログラム、ドライバープログラム等の各種プログラムを読み出し可能に記憶する。また、HDD16は、情報処理装置2に接続される情報記憶装置21の識別情報(ID)と、当該情報記憶装置21に対する最適な書込単位(最適書込単位)とを対応付けて記憶する。
【0021】
表示処理部17は、CPU13の制御により、表示装置11に画像を表示させるための表示用のデータ又は信号を生成し、表示装置11に出力する。入力インターフェース部18は、入力装置12と接続されており、入力装置12からの信号をデータとして、CPU13に渡す。インターフェース部19は、複数種類の情報記憶装置21と接続可能であり、複数種類の情報記憶装置21からのデータやプログラムの読み込み、情報記憶装置21へのデータの書込みを行う。情報記録装置21としては、例えば、フラッシュメモリ(例えば、SDカード、USBメモリ等)がある。
【0022】
情報記録装置21は、データの最小アクセス単位としてのセクタを複数有している。また、情報記録装置21は、データの消去を行う最小単位としてのブロックを複数有している。ブロックには、所定数のセクタが含まれている。情報記録装置21は、ブロックに含まれるセクタの数等の情報記録装置21に関する情報を記憶する。また、情報記録装置21は、情報記録装置21に格納されているファイルのデータを管理するために必要なファイル管理情報(例えば、FAT(File Allocation Table))を記憶する。ファイル管理情報には、ファイルと、当該ファイルを管理するクラスタとの対応関係や、当該クラスタと、当該クラスタのデータを格納する情報記憶装置21の複数のセクタとの対応関係を示す情報が含まれており、情報処理装置2の後述するファイルシステム処理部13bに利用される。
【0023】
CPU13は、各部14〜19の動作を制御する。また、CPU13は、ROM14の基本プログラムやHDD16に格納されているOSプログラム、アプリケーションプログラム、ドライバープログラム等をRAM15に読み出して実行することにより各種処理を実行する。
【0024】
CPU13には、アプリケーション処理部13aと、ファイル管理手段の一例としてのファイルシステム処理部13bと、取得手段、実測判定手段、及び書込制御手段の一例としてのドライバー処理部13cとが構築される。アプリケーション処理部13aは、CPU13がアプリケーションプログラムを実行することにより構築され、ファイルシステム処理部13bは、CPU13がOSプログラムを実行することにより構築され、ドライバー処理部13cは、CPU13がドライバープログラムを実行することにより構築される。
【0025】
アプリケーション処理部13aは、図示しないアプリケーション画面を表示処理部17により表示装置11に表示させて、例えば、ドキュメントの作成、編集機能や、画像の作成編集機能を提供する。また、アプリケーション処理部13aは、処理に関わる各種ファイルについてのアクセス要求(読出し要求、書込み要求)や、対応するファイルのデータ等をファイルシステム処理部13bとやり取りする。アプリケーション処理部13aは、入力装置12を介してユーザーからファイルの書込み要求を受け付けた場合には、そのファイルに対する書込要求をファイルシステム処理部13bに通知する。
【0026】
ファイルシステム処理部13bは、RAM15に読み出されたファイル管理情報を用いて、ファイルの管理を行う。例えば、ファイルシステム処理部13は、アプリケーション処理部13aからのファイルのアクセス要求(読出要求や書込要求)を受け取ると、RAM15に格納されているファイル管理情報に基づいて、ファイルの情報記憶装置21における格納位置(複数のセクタ)を特定し(割当て又は検出し)、当該格納位置(複数のセクタ)に対するアクセスを指定するアクセス要求(書込指定又は読込指定)をドライバー処理部13cに渡すとともに、ドライバー処理部13cとの間でアクセス要求に関わるデータの受け渡しを行う。
【0027】
ドライバー処理部13cは、ファイルシステム処理部13bから受け取ったアクセス要求で指定された情報記憶装置21の複数のセクタに対するアクセスを、後述するように決定される最適書込単位に従ってインターフェース部19を介して実行する。例えば、データを書込む際には、ドライバー処理部13cは、書込対象の1以上のセクタが属する1以上のブロックのデータをRAM15に退避し、当該ブロックのデータを消去し、退避したデータと書込対象の1以上のセクタに書込むデータとにより更新後のデータを生成し、このデータを対応するブロックに対して書込むという一連の書込動作を実行する。
【0028】
また、ドライバー処理部13cは、インターフェース部19に新たに情報記憶装置21が接続されたか否かを検出し、新たに接続されたことを検出した場合には、この情報記憶装置21に対する最適書込単位がHDD16に格納されているか否かを判定する。例えば、情報記憶装置21から当該情報記憶装置21のIDを受け取り、当該IDに対応する最適書込単位がHDD16に格納されているか否かを判定する。ドライバー処理部13cは、IDに対応する最適書込単位がHDD16に格納されている場合には、当該最適書込単位を、情報記憶装置21へアクセスをする際の書込単位に決定(設定)する。
【0029】
また、ドライバー処理部13cは、IDに対応する最適書込単位がHDD16に格納されていない場合には、複数の書込単位により実際に情報記憶装置21にアクセスし、そのアクセス時におけるデータ転送に関する値(データ転送値)を測定する。ここで、データ転送値とは、時間に対するデータ転送量を示すデータ転送速度であってもよいし、所定のデータ量を転送する際に要する時間であってもよく、転送の速さを比較するための値であればよい。複数の書込単位としては、情報記憶装置21がフラッシュメモリであれば、例えば、フラッシュメモリのブロックのn倍(nは、1以上の整数)の書込単位を複数用意すればよい。
【0030】
また、ドライバー処理部13cは、実際に測定したデータ転送値に基づいて、最適書込単位を検出し、当該最適書込単位を、情報記憶装置21に対するアクセスに用いると決定するとともに、当該最適書込単位と、情報記憶装置21のIDとを対応付けてHDD16に記憶する。これにより、同一の情報記憶装置21が接続された場合には、実測を行うことなく、最適書込単位を迅速に把握して用いることができる。
【0031】
また、ドライバー処理部13cは、情報記憶装置21からブロックが含むセクタ数を取得する。情報記憶装置21では、通常は、先頭のセクタから順番に当該セクタ数ずつのブロックとなっているので、ブロックが含むセクタ数により、各ブロックに含まれるセクタを把握することができる。
【0032】
また、ドライバー処理部13cは、取得したブロックが含むセクタ数に基づいて、ファイルシステム処理部13bから書込指定された連続する複数のセクタ中の同一のブロックに属する複数のセクタに対するデータの書込みが、同一のタイミングとなるように(異なる書込みタイミングとならないように)して、情報記憶装置21に対してデータを書込む。具体的には、ドライバー処理部13cは、連続する複数のセクタ中の同一のブロックに属する複数のセクタを1度の書込みで連続して情報記憶装置21に書込ませる。この際に、1度の書込みで連続して送るデータの書込単位は、既に決定している最適書込単位(nブロック分)とする。
【0033】
また、ドライバー処理部13cは、書込指定の最終セクタが、書込指定のセクタを最適書込単位毎に分けた場合の最終の最適書込単位の最終セクタでない場合、すなわち、最後部のセクタを書込む最適書込単位について、書込指定のセクタで満たすことができない場合には、当該最適書込単位に書込むべきセクタのデータをRAM15にキャッシュする。
【0034】
ドライバー処理部13cは、直前に書込指定があった最後部の1以上のセクタを含むセクタのデータがRAM15にキャッシュされているか否かを判定し、キャッシュされている場合には、キャッシュされている最後部のセクタと、今回の書込指定のデータの先頭のセクタとが連続するセクタであるかを判定する。この結果、今回の書込指定のセクタが連続するセクタである場合には、ドライバー処理部13cは、そのセクタと、キャッシュされている最後部のセクタとが同一のブロックに属するので、キャッシュしている1以上のセクタのデータと、書込指定の先頭の同一のブロックに属する1以上のセクタのデータとを1度の書込で連続して情報記憶装置21に書込む一方、連続するセクタでない場合には、キャッシュしているデータを1度の書込みで情報記憶装置21に書込む。
【0035】
ここで、図面を参照して、情報記憶装置21へのデータ書込みを説明する。
【0036】
図3は、本発明の一実施形態に係る情報記憶装置に対するファイルの書込みを説明する図である。図3(a)は、連続するセクタへの書込指定が連続して発生しなかった場合の一例を示し、図3(b)は、連続するセクタへの書込指定が連続して発生した場合の一例を示している。ここで、図3は、ファイルシステム処理部13bにより管理するファイルシステムのクラスタは、それぞれ4つのセクタを含み、情報記憶装置21のブロックは、それぞれ4つのセクタを含み、1つのクラスタに対応する4つのセクタが、2つのブロックに跨って対応するようになっている場合において、連続する3つのクラスタの連続する12のセクタが書込指定された際のデータ書込の例を示している。図3においては、最適書込単位が1ブロックであるとして説明する。なお、クラスタに含まれるセクタの数と、ブロックに含まれる数とは、単なる例示であり、これらに限られず、また、クラスタに含まれるセクタの数と、ブロックに含まれるセクタの数とが異なっていてもよい。
【0037】
一つめの最初の書込指定(第1書込指定)を受け付けると、まず、図3(a)に示すように、ドライバー処理部13cは、書込指定された12のセクタ中のブロックDに格納されるセクタ1と、セクタ2とのデータを1回の書込み動作でブロックDに書込む。ここでは、ブロックDに対する消去が一回発生する。次いで、ドライバー処理部13cは、ブロックD+1に格納されるセクタ3〜6のデータを1回の書込み動作でブロックD+1に書込む。ここでは、ブロックD+1に対する消去が一回発生する。次いで、ドライバー処理部13cは、ブロックD+2に格納されるセクタ7〜9のデータを1回の書込み動作でブロックD+2に書込む。ここでは、ブロックD+2に対する消去が一回発生する。次いで、ドライバー処理部13cは、ブロックD+3に格納されるセクタ11及び12のデータをRAM15にキャッシュする。
【0038】
そして、次の書込指定(第2書込指定)を受け付けたが、次の書込指定が連続するセクタへの書込みではない場合や、書込みが終了した旨の通知を受けた場合には、ドライバー処理部13cは、図3(a)に示すように、RAM15にキャッシュされているセクタ11及び12のデータを1回の書込み動作でブロックD+3に書込む。ここでは、ブロックD+3に対する消去が一回発生する。上記したようにデータが書込まれることとなるので、各ブロックにおける消去回数を1回に抑えることができるので、書込み時間を短縮することができる。また、ブロックへの書込み回数を低減することができるので、情報記憶装置21がブロックへの書込み回数に限度があるフラッシュメモリであれば、情報記憶装置21の寿命を延ばすことができる。
【0039】
一方、次の書込指定(第2書込指定)を受け付け、次の書込指定が連続するセクタへの書込みである場合には、ドライバー処理部13cは、図3(b)に示すように、RAM15にキャッシュされているセクタ11及び12のデータと、第2書込指定に含まれるセクタ13及び14のデータとを1回の書込み動作でブロックD+3に書込む。ここでは、ブロックD+3に対する消去が一回発生する。このように、連続する書込指定のセクタについても同一のブロックに書込むデータについて、一回の書込みにより実行するようにしたので、異なる書込指定で書込むこととなる同一のブロックにおける消去回数を1回に抑えることができるので、書込み時間を短縮することができる。また、ブロックへの書込み回数を低減することができるので、情報記憶装置21がブロックへの書込み回数に限度があるフラッシュメモリであれば、情報記憶装置21の寿命を延ばすことができる。
【0040】
次に、本発明の一実施形態に係る情報処理装置における最適書込単位決定処理の動作について説明する。
【0041】
図4は、本発明の一実施形態に係る最適書込単位決定処理のフローチャートである。
【0042】
まず、ドライバー処理部13cは、インターフェース部19に情報記憶装置21が接続されたことを認識したか否かを判定し(ステップS1)、認識していない場合には、認識するまで待つ一方、認識した場合(ステップS1:YES)には、当該情報記憶装置21に対する最適書込単位がHDD16に格納されているか否かを判定する(ステップS2)。
【0043】
当該情報記憶装置21に対する最適書込単位がHDD16に格納されていない場合(ステップS2:NO)には、ドライバー処理部13cが、規定の複数書込単位の内のひとつの書込単位を選択し(ステップS3)、この書込単位により実際に情報記憶装置21に書込みを行い(ステップS4)、当該書込み時のデータ転送速度を測定する(ステップS5)。
【0044】
そして、ドライバー処理部13cは、複数の書込単位の全てについて書込みを実施したか否かを判定し(ステップS6)、全ての書込単位による書込みを実施していない場合(ステップS6:NO)には、ステップS3に戻る一方、全ての書込単位による書込みを実施している場合(ステップS6:YES)には、ステップS7に進む。
【0045】
ステップS7においては、ドライバー処理部13cは、測定したデータ転送速度のうちで最速となる書込単位(最適書込単位)を検出し、この最適書込単位を、現在接続されている情報記憶装置21に対する書込み時の書込単位として決定し、情報記憶装置21のIDと対応付けて最適書込単位をHDD16に登録する(ステップS8)。
【0046】
一方、最適書込単位がHDD16に格納されている場合には、HDD16に格納されている最適書込単位を、当該情報記憶装置21に対する書込み時における書込単位として決定する(ステップS9)。
【0047】
次に、本発明の一実施形態に係る情報処理装置におけるアクセス処理の動作について説明する。
【0048】
図5は、本発明の一実施形態に係るアクセス処理のフローチャートである。
ドライバー処理部13cは、ファイルシステム処理部13bから書込指定を受け付けたか否かを判定し(ステップS10)、書込指定を受け付けていない場合(ステップS10:NO)には、書込指定を待つ一方、書込指定を受け付けた場合(ステップS10:YES)には、RAM15に直前の書込指定における最後部のセクタに対応するブロック(書込単位分のブロック)のデータがキャッシュされているか否かを判断する(ステップS11)。
【0049】
この結果、キャッシュされている場合(ステップS11:YES)には、ドライバー処理部13cは、今回の書込指定が、直前の書込指定と連続した領域(セクタ)への書込みであるか否かを判定し(ステップS12)、連続した領域への書込みであると判定した場合には、ステップS14に進み、連続した領域への書込みではない場合には、RAM15にキャッシュしてあるデータ(キャッシュデータ)を対応するブロックに対して書込み(ステップS13)、RAM15からキャッシュデータを削除して、ステップS14に進む。なお、キャッシュがされていない場合(ステップS11:NO)には、ステップS14に進む。
【0050】
ステップS14において、ドライバー処理部13cは、書込対象のデータ(書込データ)の終わりが最適書込単位の区切りに一致するか否か、すなわち、書込指定されている複数のセクタの最後のセクタが、最適書込単位毎にセクタを分けた際に、最後の最適書込単位の最終ブロックの最終セクタであるか否かを判定する。
【0051】
この結果、書込データが最適書込単位の区切りに一致する場合(ステップS14:YES)には、書込データのすべてを最適書込単位(nブロック毎)で書込むことができることを意味するので、ドライバー処理部13cは、書込データを最適書込単位毎に情報記憶装置21に書込み(ステップS15)、ステップS10に戻る。なお、RAM15にキャッシュがある場合には、キャッシュされているデータを先頭の最適書込単位に含めて、情報記憶装置21に書込む。
【0052】
一方、書込データが最適書込単位の区切りに一致しない場合(ステップS14:NO)には、最後の最適書込単位については、書込データが最適書込単位を満たさないことを意味するので、ドライバー処理部13cは、書込データを最適書込単位毎に情報記憶装置21に書込み(ステップS16)、最後の最適書込単位のデータについては、情報記憶装置21に書込まずに、RAM15にキャッシュし(ステップS17)、ステップS10に戻る。なお、RAM15にキャッシュがある場合には、キャッシュされているデータを先頭の最適書込単位に含めて、情報記憶装置21に書込む。
【0053】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【0054】
例えば、上記実施形態では、情報記憶装置21に対して実際にデータを書込んだ際におけるデータ転送速度を測定し、そのデータ転送速度を比較することにより、最適な書込単位を決定するようにしていたが、本発明はこれに限られず、実際に測定することなく、予め設定された1以上のブロック数を書込単位としてもよい。
【0055】
また、上記実施形態では、書込指定された最後部のセクタに対応する最後の最適書込単位のブロックが、書込指定のセクタで満たされていない場合に、RAM15にキャッシュするようにしていたが、キャッシュせずに、情報記憶装置21に書込むようにしてもよい。
【0056】
また、上記実施形態では、書込指定された複数のセクタについて、最適書込単位毎に情報記憶装置21に書込むようにしていたが、本発明はこれに限られず、書込指定された複数のセクタの先頭部又は書込指定された複数のセクタの最後部の少なくともいずれか一方については、1ブロックに対応するセクタのみで情報記憶装置21に書込むようにしてもよい。
【0057】
また、上記実施形態では、情報記憶装置21についての最適書込単位を情報処理装置2のHDD16に記憶させるようにし、そこから最適書込単位を取得するようにしていたが、本発明はこれに限られず、情報記憶装置21についての最適書込単位を当該情報記憶装置21に記憶させるようにし、情報処理装置2は、情報記憶装置21から最適書込単位を取得するようにしてもよい。
【0058】
また、上記実施形態においては、情報処理装置として、PCを例に説明したが、情報処理装置はこれに限られず、例えば、プリンター、デジタルカメラ、携帯電話等であってもよく、要は、情報記憶装置との間でのデータのアクセスを行う情報処理装置であればよい。
【符号の説明】
【0059】
2 情報処理装置、10 装置本体、11 表示装置、12 入力装置、13 CPU、13a アプリケーション処理部、13b ファイルシステム処理部、13c ドライバー処理部、14 ROM、15 RAM、16 HDD、17 表示処理部、18 入力インターフェース部、19 インターフェース部、20 バス、21 情報記憶装置。

【特許請求の範囲】
【請求項1】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置において、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、
複数のセクタが対応付けられたクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、
前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む1以上のブロックに対してデータを書込む書込制御手段と
を有する情報処理装置。
【請求項2】
前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃わなかった場合には、前記記憶手段にキャッシュさせている前記データを用いて、前記ブロックを含む1以上のブロックに対してデータを書込む
請求項1に記載の情報処理装置。
【請求項3】
前記書込制御手段は、複数のブロックを単位として、前記情報記憶装置に対してデータを書込む
請求項1又は請求項2に記載の情報処理装置。
【請求項4】
前記情報記憶装置に対して、異なるブロック数を単位として実際にデータの書込みを行い、書込んだ際に最速となるブロック数を判定する実測判定手段を更に有し、
前記書込制御手段は、前記判定したブロック数を単位として、前記情報記憶装置に対してデータを書込む
請求項1乃至請求項3のいずれか一項に記載の情報処理装置。
【請求項5】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行う情報処理装置によるアクセス処理方法において、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記情報処理装置の取得手段が、前記情報記録装置から各ブロックが含むセクタ数を取得する取得ステップと、
前記情報処理装置のファイル管理手段が、複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として指定するファイル管理ステップと、
前記情報処理装置の書込制御手段が、前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む1以上のブロックに対してデータを書込む書込制御ステップと
を有するアクセス処理方法。
【請求項6】
最小アクセス単位としてのセクタを複数含むブロックを単位としてデータの消去が可能な情報記憶装置に対してアクセスを行うコンピューターに実行させるアクセス処理プログラムであって、
前記情報記録装置は、前記各ブロックが含むセクタ数を記憶しており、
前記コンピューターを、
前記情報記録装置から各ブロックが含むセクタ数を取得する取得手段と、
複数のセクタを含むクラスタを単位としてファイルを管理し、書込対象となるファイルを管理する1以上のクラスタに対応する連続する複数のセクタを、書込対象として書込指定するファイル管理手段と、
前記取得した各ブロックが含むセクタ数に基づいて、前記書込指定された複数の連続するセクタ中の同一のブロックに属する複数のセクタに対するデータの前記情報記憶装置への書込みを同一の書き込みタイミングで行い、前記書込指定された連続するセクタの最後部における1以上のセクタに対応するブロックについて、全てのセクタが書込み指定されていない場合に、書込み指定されているセクタのデータを所定の記憶手段にキャッシュさせ、前記ファイル管理手段により次に書込指定されたセクタにより、前記ブロックの全てのセクタが揃った場合に、前記記憶手段にキャッシュさせている前記データと、次に書込指定されたセクタのデータとを用いて、前記ブロックを含む1以上のブロックに対してデータを書込む書込制御手段と
して機能させるアクセス処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−141645(P2011−141645A)
【公開日】平成23年7月21日(2011.7.21)
【国際特許分類】
【出願番号】特願2010−1022(P2010−1022)
【出願日】平成22年1月6日(2010.1.6)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】