(57)【要約】【課題】リードモディファイライト処理の改善された処理構成を実現する。【解決手段】メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。【選択図】図４
2010033396.tif 000002
【特許請求の範囲】
【請求項１】
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である情報処理装置。
【請求項２】
前記ホスト制御部は、
リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項３】
前記ホスト制御部は、
データの記録メディアの種類を判別し、記録メディアがフラッシュメモリである場合に、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項４】
前記ホスト制御部は、
前記メディアデバイスから受領するメディア確認情報をホスト側メモリに記録し、該メディア確認情報に基づいてリードモディファイライト処理の実行主体と、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項５】
前記ホスト制御部は、
前記メディアデバイスから受領するメディア確認情報から、メディアの物理セクタに対応する論理セクタ数を記述したデータを抽出し、抽出データによりリードモディファイライト処理の実行パラメータを決定する構成である請求項１に記載の情報処理装置。
【請求項６】
前記ホスト制御部は、
前記メディアデバイスに対するデータ読み出しコマンドを出力し、前記メディアデバイスからのコマンドに対する完了応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する請求項１に記載の情報処理装置。
【請求項７】
前記ホスト制御部は、
前記メディアデバイスに対するデータ書き込みコマンドを出力し、前記メディアデバイスからのコマンドに対する応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する請求項１に記載の情報処理装置。
【請求項８】
前記ホスト制御部は、
前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項９】
前記ホスト制御部は、
前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項１０】
前記ホスト制御部は、
前記メディアがハードディスクである場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項１１】
前記ホスト制御部は、
前記メディアがハードディスクである場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項１に記載の情報処理装置。
【請求項１２】
情報処理装置において実行する情報処理方法であり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行する情報処理方法。
【請求項１３】
情報処理装置において情報処理を実行させるプログラムであり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部に、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行させるステップを有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、メディア（情報記録媒体）に対するデータ記録を行う情報処理装置、および情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
デジタルビデオカメラやＰＣ、その他の情報処理機器においては、例えば、ハードディスクやフラッシュメモリ、あるいはＤＶＤなど、様々なメディア（情報記録媒体）を利用して情報記録や情報再生処理が行なわれる。
【０００３】
データ記録を行う場合、大きく分けて、以下の上位層から下位層に至る３つの構成要素（ａ）〜（ｃ）間で記録データが転送されて記録処理が実行される。
（ａ）記録データを生成するアプリケーション、
（ｂ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ（ホスト）、
（ｃ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各デバイス（メディア側）、
上記の（ａ）→（ｂ）→（ｃ）の順にデータが渡されて記録処理が行われる。
【０００４】
記録データを生成するアプリケーションやデバイスドライバは、一定のデータサイズ（例えば５１２Ｂ（バイト）単位）の論理セクタ単位でデータ管理を行う。この論理セクタが記録媒体、例えばハードディスクやフラッシュメモリ等の各デバイス内部の管理データ単位と一致している場合には問題がないが一致しないシステムにおいて問題が発生することがある。例えばフラッシュメモリには、データ記録処理は消去ブロック単位で実行され、消去ブロック単位の処理が必要となる。なお、フラッシュメモリに対するデータ記録処理については例えば特許文献１（特開２００３−２９６１７７号公報）に記載されている。
【０００５】
また、例えばハードディスク（ＨＤＤ）では、アクセス単位として、Ｎ個の論理セクタをひとまとめにした物理セクタが利用される。ＨＤＤ内部の管理単位を大きくすることで、例えばＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）の設定単位を大きくして処理効率を高め、ＥＣＣデータの削減により記憶領域の効率的利用が図られるといった効果がある。
【０００６】
このように、上位層（アプリケーションやデバイスドライバ）のデータアクセス単位と、メディア（情報記録媒体）内の制御部のデータアクセス単位が異なり、メディア内のアクセス単位が、上位層のアクセス単位より大きな設定である場合、例えば、上位層からメディアに対してあるデータ記録または再生領域の指定がなされた場合、メディア内部では、指定領域と一括管理されているデータ領域についても、まとめて読み出しや記録処理が実行されることになる。
【０００７】
例えば、アプリケーションが、メディアに記録されたデータを読み出して更新する場合、アプリケーション側の更新処理は論理セクタ単位で実行するが、メディア内部（例えばＨＤＤ内部）では一旦、更新予定のセクタデータを含むメディアのアクセス単位、すなわち物理セクタ単位でデータが読み取られてメディア内部のメモリに一時的に保持され、アプリケーションからデバイスドライバ経由で入力した更新データ部分のみが更新されて再記録されることになる。
【０００８】
このような処理、すなわち、
データ読み出し、
データ更新、
更新データの記録
これらの３種類の処理を一連の処理として行うことが必要である。この処理は一般的にリードモディファイライト（ＲＭＷ：Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）と呼ばれる。
【０００９】
なお、物理セクタのサイズは、例えばハードディスク（ＨＤＤ）においては、ＨＤＤの容量増大に伴い増加する傾向にある。従来は論理セクタサイズ＝物理セクタサイズ＝５１２Ｂｙｔｅであり、一致しているものが多かった。しかし、昨今のハードディスク（ＨＤＤ）は、物理セクタサイズが１０２４Ｂｙｔｅ、２０４８Ｂｙｔｅなど、増加しており、物理セクタサイズが５１２Ｂｙｔｅの論理セクタサイズより大きいものが多くなっている。
【００１０】
このようなシステムでは、データ記録を行う場合、上述のリードモディファイライト（ＲＭＷ）処理を行うことが必要となる。このリードモディファイライト（ＲＭＷ）処理を行うのは、上記の３種類の構成要素、すなわち、
（ａ）記録データを生成するアプリケーション、
（ｂ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ（ホスト側）、
（ｃ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各デバイス（メディア側）、
これらのいずれかの要素となるが、現実的な処理としては、上記の（ｂ），（ｃ）のいずれかにおいて実行することが可能である。
【００１１】
すなわち、リードモディファイライト（ＲＭＷ）処理は、
（１）デバイスドライバ（ホスト側）
（２）ＨＤＤやフラッシュメモリ等の各デバイス（メディア側）、
上記のようにホスト側か、あるいはメディア側のいずれかにおいて実行する設定が可能である。
【００１２】
しかし、リードモディファイライト（ＲＭＷ）処理の実行主体をホスト側にするか、メディア側にするかについては、これまで十分な検討がなされていないのが現状である。
【特許文献１】特開２００３−２９６１７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、上述した状況に鑑みてなされたものであり、記録先となるメディアの種類や性能、あるいはデータ記録を行った場合の所要時間等の推定情報などに従って、リードモディファイライト（ＲＭＷ）処理の実行主体をホスト側にするか、メディア側にするかを決定して、効率的なデータ記録処理を行う情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１の側面は、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である情報処理装置にある。
【００１５】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である。
【００１６】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、データの記録メディアの種類を判別し、記録メディアがフラッシュメモリである場合に、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である。
【００１７】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスから受領するメディア確認情報をホスト側メモリに記録し、該メディア確認情報に基づいてリードモディファイライト処理の実行主体と、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
【００１８】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスから受領するメディア確認情報から、メディアの物理セクタに対応する論理セクタ数を記述したデータを抽出し、抽出データによりリードモディファイライト処理の実行パラメータを決定する構成である。
【００１９】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスに対するデータ読み出しコマンドを出力し、前記メディアデバイスからのコマンドに対する完了応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスに対するデータ書き込みコマンドを出力し、前記メディアデバイスからのコマンドに対する応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
【００２３】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアがハードディスクである場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である。
【００２４】
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアがハードディスクである場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
【００２５】
さらに、本発明の第２の側面は、
情報処理装置において実行する情報処理方法であり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行する情報処理方法にある。
【００２６】
さらに、本発明の第３の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部に、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行させるステップを有するプログラムにある。
【００２７】
なお、本発明のプログラムは、例えば、様々なプログラムコードを実行可能な情報処理装置等のシステムにおいてコンピュータ可読な形式で提供する記憶媒体などによって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置等のシステム上でプログラムに応じた処理が実現される。
【００２８】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２９】
本発明の一実施例構成によれば、記録メディア（情報記録媒体）に対するデータ記録処理を行なう情報処理装置において、メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、本発明の一実施例構成によれば、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照しながら、本発明の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。説明は、以下の各項目に従って行なう。
１．リードモディファイライト（ＲＭＷ：Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）処理の概要
２．記録先メディアがフラッシュメモリである場合の処理例
３．記録先メディアが、ハードディスク（ＨＤＤ）である場合の処理例
４．情報処理装置の構成例
【００３１】
［１．リードモディファイライト（ＲＭＷ：Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）処理の概要］
前述したように、例えばデジタルビデオカメラやＰＣ、その他の情報処理機器においては、ハードディスクやフラッシュメモリなどのメディア（情報記録媒体）に対してデータ記録を行なう。
【００３２】
このデータ記録処理に際して、上位層から下位層に至る３つの構成要素（ａ）〜（ｃ）間で記録データが転送される。
（ａ）記録データを生成するアプリケーション、
（ｂ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ（ホスト）、
（ｃ）ハードディスク（ＨＤＤ）やフラッシュメモリ等の各デバイス（メディア側）、
上記の（ａ）→（ｂ）→（ｃ）の順にデータが渡されて記録処理が行われる。
【００３３】
ホスト側であるデハイスドライバは、例えば５１２バイトの論理セクタでデータ管理を行うが、ハードディスク（ＨＤＤ）やフラッシュメモリ等の各デバイス（メディア側は物理セクタや消去ブロック単位でデータ記録などのデータ管理を行う。
【００３４】
まず、図１を参照して、ハードディスク（ＨＤＤ）におけるリードモディファイライト（ＲＭＷ）処理について説明する。ＨＤＤメディア側の記録処理等の管理単位である物理セクタと、デバイスドライバ等のホスト側の管理単位である論理セクタのデータサイズの差異に応じてリードモディファイライト（ＲＭＷ）の要否が決定される。
図１（Ａ）は、物理セクタと論理セクタのデータサイズが一致している場合の例である。
この場合は、ホストからメディア側に渡されるデータが論理セクタサイズであるが、この論理セクタサイズは、メディア側におけるデータ記録単位である物理セクタサイズと一致しておりリードモディファイライト（ＲＭＷ）は不要となる。単に１つの物理セクタに対してデータの書き込みを実行すればよい。
【００３５】
図１（Ｂ）は、物理セクタと論理セクタのデータサイズが一致していない場合の例である。
１物理セクタ＝４論理セクタ
の例を示している。
【００３６】
この場合、ホストからメディア側に渡されるデータが１つの論理セクタサイズのデータであっても、メディア側では、メディア側におけるデータ記録単位である物理セクタサイズでデータ記録を行うことになる。
【００３７】
この場合、まず、図１（Ｂ）に示すように、
１）リード処理：記録データを書き込む領域の物理セクタ１１のデータを読み出す。
２）モディファイ処理：メモリ上で、ホストから受領した１つの論理セクタデータを物理セクタデータに書き込み更新する。
３）ライト処理：更新された物理セクタデータをメディアに書き込む。
このような一連のリードモディファイライト（ＲＭＷ）処理を行う。
【００３８】
なお、上記説明では、メディア側においてリードモディファイライト（ＲＭＷ）処理を行う例を説明したが、ホスト側で実行することも可能である。
【００３９】
次に、図２を参照してフラッシュメモリにおけるリードモディファイライト（ＲＭＷ）処理例について説明する。フラッシュメモリにおいても、ホスト（デバイスドライバ）における管理単位（例えばクラスタ）と、フラッシュメモリ側のメディア側のデータ記録単位（消去ブロック）とは異なるのが一般的であり、リードモディファイライト（ＲＭＷ）処理が必要となる。
【００４０】
ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス））、書き込み終了位置、書き込みデータサイズ等によって、ＲＭＷの要否、およびパターンがことなることになる。図２には、（１）〜（５）の例を示している。
【００４１】
図２（１）は、ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス）が消去ブロックの先頭に一致し、かつ、書き込みデータサイズが消去ブロックの整数倍である場合である。
この場合は、リードモディファイライト（ＲＭＷ）処理が不要となる。
【００４２】
図２（２）は、ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス）が消去ブロックの先頭に一致せず、かつ、書き込データが１つの消去ブロック内に収まる場合である。
この場合は、リードモディファイライト（ＲＭＷ）処理が必要となる。
この場合のＲＭＷ処理をＲＭＷパターンＡとする。
ＲＭＷパターンＡは、
１回のＲＭＷ処理、すなわち、
ブロック単位のデータ読み取り、
ブロック単位のデータ更新、
ブロメック単位のデータ書き込み、
この一連のＲＭＷ処理を１回のみを行うパターンである。
【００４３】
図２（３）は、ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス）が消去ブロックの先頭に一致し、かつ、書き込みデータサイズが消去ブロックの整数倍でなく、書き込データが１つの消去ブロック内に収まらない場合である。
この場合は、リードモディファイライト（ＲＭＷ）処理が必要となる。
この場合のＲＭＷ処理をＲＭＷパターンＢとする。
ＲＭＷパターンＢは、
消去ブロック単位の書き込み処理と、１回のＲＭＷ処理によって構成される。すなわち、
１．ブロック単位のデータ書き込み処理と、
２．１つのブロックに対するＲＭＷ処理、
（２−１）ブロック単位のデータ読み取り、
（２−２）ブロック単位のデータ更新、
（２−３）ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
【００４４】
図２（４）は、ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス）が消去ブロックの先頭に一致せず、かつ、書き込み終了位置（書き込み終了ＬＢＡ（論理アドレス）が消去ブロックの末尾に一致する場合である。
この場合は、リードモディファイライト（ＲＭＷ）処理が必要となる。
この場合のＲＭＷ処理をＲＭＷパターンＣとする。
ＲＭＷパターンＣは、
１回のＲＭＷ処理と、消去ブロック単位の書き込み処理によって構成される。すなわち、
１．１つのブロックに対するＲＭＷ処理、
（１−１）ブロック単位のデータ読み取り、
（１−２）ブロック単位のデータ更新、
（１−３）ブロック単位のデータ書き込み、
２．ブロック単位のデータ書き込み処理と、
この一連の処理を行うパターンである。
【００４５】
図２（５）は、ホストからのメディア側に渡されるデータの書き込み開始位置（書き込み開始ＬＢＡ（論理アドレス）が消去ブロックの先頭に一致せず、かつ、書き込み終了位置（書き込み終了ＬＢＡ（論理アドレス）も消去ブロックの末尾に一致しない場合である。
この場合は、リードモディファイライト（ＲＭＷ）処理が必要となる。
この場合のＲＭＷ処理をＲＭＷパターンＤとする。
ＲＭＷパターンＤは、
１回のＲＭＷ処理と、消去ブロック単位の書き込み処理と、さらに２回目のＲＭＷ処理によって構成される。すなわち、
１．１つのブロックに対するＲＭＷ処理、
（１−１）ブロック単位のデータ読み取り、
（１−２）ブロック単位のデータ更新、
（１−３）ブロック単位のデータ書き込み、
２．ブロック単位のデータ書き込み処理と、
３．１つのブロックに対するＲＭＷ処理、
（３−１）ブロック単位のデータ読み取り、
（３−２）ブロック単位のデータ更新、
（３−３）ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
【００４６】
フラッシュメモリに対するデータ書き込み処理では、このようにパターンに応じて異なる処理が行われる。図３は、この処理パターンを判別する処理である。この判別処理は、ＲＭＷ処理を実行するホストまたはメディア側の制御部において実行される。
【００４７】
まずステップＳ１０１で、書き込み終了ＬＢＡを以下の式に従って算出する。
書き込み終了ＬＢＡ＝書き込み開始ＬＢＡ書き込みサイズ−１
【００４８】
ステップＳ１０２において、書き込み開始ＬＢＡが、ブロック（消去ブロック）の先頭に一致するか否かを判定する。すなわち、
書き込み開始ＬＢＡ％Ｎ＝０
上記式が成立するか否かを判定する。
【００４９】
書き込み開始ＬＢＡが、ブロック（消去ブロック）の先頭に一致すると判定された場合（ステップＳ１０２でＹｅｓ）は、ステップＳ１０３に進み、書き込み終了ＬＢＡが、ブロック（消去ブロック）の末尾に一致するか否かを判定する。すなわち、
書き込み終了ＬＢＡ％Ｎ＝０
上記式が成立するか否かを判定する。
【００５０】
書き込み終了ＬＢＡが、ブロック（消去ブロック）の末尾に一致すると判定された場合（ステップＳ１０３でＹｅｓ）は処理を終了する。この場合はリードモディファイライト（ＲＭＷ）処理が不要な場合であり、図２（１）に対応する。
【００５１】
書き込み終了ＬＢＡがブロック（消去ブロック）の末尾に一致しないと判定された場合（ステップＳ１０３でＮｏ）は、ステップＳ１０４に進む。ステップＳ１０４では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合（ステップＳ１０４でＹｅｓ）は、ステップＳ１１１に進み、パターンＢのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（３）の処理例に対応する。
【００５２】
また、ステップＳ１０４において、書き込みデータが複数ブロックにまたがらないと判定した場合（ステップＳ１０４でＮｏ）は、ステップＳ１１２に進み、パターンＡのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（２）の処理例に対応する。
【００５３】
一方、ステップＳ１０２において、書き込み開始ＬＢＡが、ブロック（消去ブロック）の先頭に一致しないと判定された場合（ステップＳ１０２でＮｏ）は、ステップＳ１０５に進み、書き込み終了ＬＢＡが、ブロック（消去ブロック）の末尾に一致するか否かを判定する。すなわち、
書き込み終了ＬＢＡ％Ｎ＝０
上記式が成立するか否かを判定する。
【００５４】
書き込み終了ＬＢＡが、ブロック（消去ブロック）の末尾に一致すると判定された場合（ステップＳ１０５でＹｅｓ）は、ステップＳ１０６に進む。ステップＳ１０６では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合（ステップＳ１０６でＹｅｓ）は、ステップＳ１１３に進み、パターンＣのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（４）の処理例に対応する。
【００５５】
また、ステップＳ１０６において、書き込みデータが複数ブロックにまたがらないと判定した場合（ステップＳ１０６でＮｏ）は、ステップＳ１１５に進み、パターンＡのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（２）の処理例に対応する。
【００５６】
ステップＳ１０５において、書き込み終了ＬＢＡがブロック（消去ブロック）の末尾に一致しないと判定された場合（ステップＳ１０５でＮｏ）は、ステップＳ１０７に進む。ステップＳ１０７では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合（ステップＳ１０７でＹｅｓ）は、ステップＳ１１４に進み、パターンＤのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（５）の処理例に対応する。
【００５７】
また、ステップＳ１０７において、書き込みデータが複数ブロックにまたがらないと判定した場合（ステップＳ１０７でＮｏ）は、ステップＳ１１５に進み、パターンＡのリードモディファイライト（ＲＭＷ）処理を行なう設定とする。この場合は、図２（２）の処理例に対応する。
【００５８】
このように、ＲＭＷの実行の有無およびパターンを決定した上でデータ書き込み処理が行われる。
【００５９】
［２．記録先メディアがフラッシュメモリである場合の処理例］
次に、記録先メディアがフラッシュメモリである場合、リードモディファイライト（ＲＭＷ）処理をデバイスドライバ等のホスト側で実行するか、フラッシュメモリ側の制御部、すなわち、メディア側制御部において実行するかを決定して、データ書き込み処理を行う処理例について説明する。
【００６０】
なお、本処理例を実行する情報処理装置は、
（ａ）データ記録を行うメディアとしてフラッシュメモリ、
（ｂ）メディア（フラッシュメモリ）に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス、
（ｃ）メディア（フラッシュメモリ）に記録するデータをメディアデバイスに出力するホスト制御部を有するホスト、
少なくともこれらの構成要素を持つ情報処理装置である。
【００６１】
ホスト制御部は、メディア（フラッシュメモリ）に対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う。具体的には、ホスト制御部は、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う。
【００６２】
図４、図５のフローチャートを参照してリードモディファイライト（ＲＭＷ）処理の実行主体の決定シーケンスについて説明する。この処理は、フラッシュメモリを記録メディアとして有する情報処理装置のホスト制御部において実行される。
【００６３】
まず、ステップＳ２０１において、記録先として選択されたメディアの種別を判定する。例えばハードディスクとフラッシュメモリの双方を記録メディアとして選択利用することが可能なビデオカメラ等の装置であれば、ユーザのメディア選択情報に基づいて判定する。
【００６４】
ステップＳ２０２においてメディア種別がフラッシュメモリでないと判定した場合は処理は終了する。本処理例は、フラッシュメモリが記録メディアとてして選択された場合の処理について説明するフローである。なお、後段で、記録メディアがハードディスクの場合におけるＲＭＷ実行主体の決定シーケンスについて説明する。
【００６５】
ステップＳ２０２においてメディア種別がフラッシュメモリであると判定した場合は、ステップＳ２０３に進む。ステップＳ２０３ではフラッシュメモリに設定されている消去ブロックのサイズＮを取得する。
【００６６】
次に、ステップＳ２０４において、２種類のメディア転送レート、すなわち、
（ａ）メディア側においてＲＭＷ処理を実行した場合、
（ｂ）ホスト（デバイスドライバ）側においてＲＭＷ処理を実行した場合、
これらの２種類のデータ書き込み処理速度としてのメディア転送レートを算出する。この算出処理について、図５のフローを参照して説明する。
【００６７】
図５に示すフローは、上記（ａ），（ｂ）のＲＭＷのいずれが高速に実行できるかを確認する処理である。この処理は、仮のデータの試験的な書き込み処理によって行われることになる。
【００６８】
まず、ステップＳ２５１において、
書き込み開始ＬＢＡ＝Ｎ／２、
書き込みサイズ＝Ｎ／４
とした書き込み試験データを設定する。このデータはリードモディファイライト（ＲＭＷ）処理が必ず実行されるデータとして設定されるものである。
【００６９】
次に、ステップＳ２５２において、書き込み（Ｗｒｉｔｅ）コマンドを、メディアへ発行して、処理時間、すなわちＲＭＷ処理を伴うデータ書き込み終了までの処理時間から処理速度（転送レート）を計測する。
この計測時間は、メディア側でのＲＭＷ処理を伴うデータ書き込み終了までの処理時間であり、処理時間から処理速度（転送レート）が算出される。
【００７０】
次に、ステップＳ２５３において書き込み開始ＬＢＡを１つのブロックサイズ分ずらして更新し、ステップ２５４において、書き込み開始ＬＢＡが終了ＬＢＡ以上になったか否かを判定し、なっていない場合は更新された書き込み開始位置からデータ書き込みを繰り返し実行する。すなわち、複数回の書き込み処理を実行して、その平均の処理時間を最終的なメディア側の書き込み処理における処理速度（転送レート）とする。
【００７１】
ステップ２５４において、書き込み開始ＬＢＡが終了ＬＢＡ以上になったと判定した場合は、ステップＳ２５５以下の処理を実行する。ステップＳ２５５以下の処理は、ホスト（デバイスドライバ）側のＲＭＷ処理を伴うデータ書き込み処理の処理速度（転送レート）の計測処理である。
【００７２】
ステップＳ２５５において、
書き込み開始ＬＢＡ＝Ｎ／２、
書き込みサイズ＝Ｎ／４
とした書き込み試験データを設定する。このデータはリードモディファイライト（ＲＭＷ）処理が必ず実行されるデータとして設定されるものである。
【００７３】
次に、ステップＳ２５６において、ホスト側でのリードモディファイライト（ＲＭＷ）処理を行い、処理時間（転送レート）を計測する。すなわち、
１．開始ＬＢＡ＝Ｎ／２、読み出しサイズ＝ＮでＲｅａｄコマンド発行
２．メモリ上でデータ更新
３．開始ＬＢＡ＝開始ＬＢＡ／Ｎ、書き込みサイズ＝ＮでＷｒｉｔｅコマンド発行
これらの処理の処理時間から処理速度（転送レート）を計測する。
この計測時間は、ホスト側でのＲＭＷ処理を伴うデータ書き込み終了までの処理時間である。
【００７４】
次に、ステップＳ２５７において書き込み開始ＬＢＡを１つのブロックサイズ分ずらして更新し、ステップ２５８において、書き込み開始ＬＢＡが終了ＬＢＡ以上になったか否かを判定し、なっていない場合は更新された書き込み開始位置からデータ書き込みを繰り返し実行する。すなわち、複数回の書き込み処理を実行して、その平均の処理時間を最終的なホスト側の書き込み処理における処理速度（転送レート）とする。
【００７５】
ステップ２５８において、書き込み開始ＬＢＡが終了ＬＢＡ以上になったと判定した場合は処理を終了する。
これらの処理によって、
メディア転送レートＡ：メディア側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度
メディア転送レートＢ：ホスト側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度
これらの２つの転送レートが算出されることになる。
【００７６】
図４の処理フローに戻り、説明を続ける。ステップｓ２０４において、図５を参照して説明した処理によって、上記の２つの転送レートＡ，Ｂが算出される。次に、ステップＳ２０５において、算出した２つのメディア転送レートＡ，Ｂを比較する。
【００７７】
メディア転送レートＡ＜メディア転送レートＢ
上記式が成立しない場合、すなわち、
メディア転送レートＡ（メディア側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度）が、メディア転送レートＢ（ホスト側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度）より小さくない場合は、ステップＳ２０６に進む。
【００７８】
すなわち、メディア側制御部における処理速度のほうが速い場合は、ステップＳ２０６に進み、メディア側においてリードモディファイライト（ＲＭＷ）を実行する。
【００７９】
一方、
メディア転送レートＡ＜メディア転送レートＢ
上記式が成立する場合、すなわち、
メディア転送レートＡ（メディア側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度）が、メディア転送レートＢ（ホスト側制御部においてＲＭＷ処理、データ書き込み処理を実行した場合の処理速度）より小さい場合は、ステップＳ２０７に進む。
【００８０】
すなわち、ホスト側制御部における処理速度のほうが速い場合は、ステップＳ２０７に進み、ホスト側においてリードモディファイライト（ＲＭＷ）を実行する。
【００８１】
このように、試験的なデータを適用したリードモディファイライト（ＲＭＷ）処理の実行速度（転送レート）を計測し、この計測情報に基づいて、リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、メディア側で実行するかを決定して、処理を行う。
【００８２】
なお、図５に示すフローに従って計測した転送レート情報は、不揮発性メモリ等に格納し、必要に応じて読み出す構成としてもよい。
【００８３】
［３．記録先メディアが、ハードディスク（ＨＤＤ）である場合の処理例］
次に、図６以下を参照して記録先メディアが、ハードディスク（ＨＤＤ）である場合、リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、メディア側で実行するかを決定して処理を行う例について説明する。
【００８４】
なお、本処理例を実行する情報処理装置は、
（ａ）データ記録を行うメディアとしてハードディスク、
（ｂ）メディア（ハードディスク）に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス（ＨＤＤ）、
（ｃ）メディア（ハードディスク）に記録するデータをメディアデバイス（ＨＤＤ）に出力するホスト制御部を有するホスト、
これらの構成要素を持つ情報処理装置である。
【００８５】
図６に、リードモディファイライト（ＲＭＷ）処理をホスト側のホスト制御部で実行する場合と、メディア側のメディア制御部で実行する場合の処理例を示す。図６には、
（Ａ）ホスト側でリードモディファイライト（ＲＭＷ）処理を実行、
（Ｂ）メディア側でリードモディファイライト（ＲＭＷ）処理を実行、
これらの処理構成を示している。
【００８６】
図６に示すように、ホスト２１０には、記録データの生成処理などを行うアプリケーション２１１、例えばＦＡＴなどの特定のデータ記録再生ルールによってデータ記録再生制御を行うファイルシステム２１２、メディアに対応して設定されたデバイスドライバ２１３が含まれる。これらの構成要素はホスト制御部の一部を構成している構成要素である。ホストとメディア（ＨＤＤ）２２０は、ＡＴＡインタフェースを介してデータ転送を行う。
【００８７】
図６（Ａ）に示すように、ホスト２１０側でリードモディファイライト（ＲＭＷ）処理を行なう場合、デバイスドライバ２１３においてＲＭＷ処理を行う。ＲＭＷ処理はファイルシステム２１２から渡された書き込み（Ｗｉｒｔｅ）データにＲＭＷが必要か否かをデバイスドライバ２１３内のＲＭＷ処理判定ブロック２１４で判定し、必要に応じてＲＭＷ処理を行う。
【００８８】
一方、図６（Ｂ）に示すように、メディア側でリードモディファイライト（ＲＭＷ）処理を行なう場合は、メディア（ＨＤＤ）２２０内のメディア制御部２２１の制御の下でリードモディファイライト（ＲＭＷ）処理を行うことになる。デバイスドライバ２１３内ではファイルシステム２１２から渡された書き込み（Ｗｉｒｔｅ）データをそのままメディア（ＨＤＤ）２２０に発行することになる。
【００８９】
データ書き込みに際して、リードモディファイライト（ＲＭＷ）処理が必要であるか否かを判定する処理について、図７のフローチャートを参照して説明する。このフローに従った判定処理はホスト制御部において実行される。具体的には、図６に示すファイルシステム２１２から書き込み（Ｗｉｒｔｅ）データを渡されたデバイスドライバ２１３内のＲＭＷ処理判定ブロック２１４において行われる。
【００９０】
まず、ステップＳ３０１において、書き込み開始ＬＢＡが、メディア側の書き込みデータ単位の物理セクタの開始セクタに一致するか否かを判定する。一致する場合は、ステップＳ３０２に進み、さらに、書き込み終了ＬＢＡが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致するか否かを判定する。一致する場合はリードモディファイライト（ＲＭＷ）処理は不要であると判断して判定処理を終了する。
【００９１】
この場合の処理例が、図８の（１）リードモディファイライト（ＲＭＷ）処理が不要な場合の処理例に対応する。
【００９２】
また、ステップＳ３０１において、書き込み開始ＬＢＡが、メディア側の書き込みデータ単位の物理セクタの開始セクタに一致しないと判定した場合は、ステップＳ３０３に進む。ステップＳ３０３では、書き込み開始ＬＢＡを含む物理セクタにおいてリードモディファイライト（ＲＭＷ）処理が必要であると判断する。
【００９３】
さらに、ステップＳ３０２に進み、さらに、書き込み終了ＬＢＡが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致するか否かを判定する。一致する場合は判定処理を終了する。この場合は、書き込み開始ＬＢＡを含む物理セクタにおいてのみリードモディファイライト（ＲＭＷ）処理が必要である。この場合の処理例が、図８の（２）書き込み開始ＬＢＡにのみリードモディファイライト（ＲＭＷ）処理が必要な場合の処理例に対応する。
【００９４】
一方、ステップＳ３０２において、書き込み終了ＬＢＡが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致しない場合は、ステップＳ３０４に進む。ステップＳ３０４では、書き込み終了ＬＢＡを含む物理セクタにおいてリードモディファイライト（ＲＭＷ）処理が必要であると判断する。
【００９５】
この場合は、書き込み開始ＬＢＡを含む物理セクタと、書き込み終了ＬＢＡを含む物理セクタにおいてリードモディファイライト（ＲＭＷ）処理が必要である。この場合の処理例が、図８の（３）に示す処理例に対応する。
【００９６】
このように、ファイルシステム２１２から書き込み（Ｗｉｒｔｅ）データを渡されたデバイスドライバ２１３内のＲＭＷ処理判定ブロック２１４は、データ書き込み処理に際してリードモディファイライト（ＲＭＷ）処理が必要であるか否か、およびその態様を判定する。
【００９７】
なお、ホスト側でリードモディファイライト（ＲＭＷ）処理を行う場合には、メディア側からリードモディファイライト（ＲＭＷ）処理に必要とする物理セクタの読み出しを行うことが必要であり、物理セクタにいくつの論理セクタが含まれるかといった情報をパラメータとして持つ必要がある。
【００９８】
また、メディア（ＨＤＤ）のタイプも様々であり、ホスト側でのリードモディファイライト（ＲＭＷ）処理を許容するモデルもあるが、メディア（ＨＤＤ）側でのみリードモディファイライト（ＲＭＷ）処理を行う設定としたメディア（ＨＤＤ）もある。
【００９９】
まず、ホストは、ホスト側でリードモディファイライト（ＲＭＷ）処理を実行するか否かを決定する処理を行ない、さらに、ホスト側でリードモディファイライト（ＲＭＷ）処理を実行する場合には、そのリードモディファイライト（ＲＭＷ）処理を行うためのパラメータを決定することが必要となる。例えば、物理セクタ中の論理セクタ数を示すパラメータを決定することが必要となる。リードモディファイライト（ＲＭＷ）処理を行うためのパラメータを決定することが可能な情報が、メディア側から得られれば、ホスト側でのリードモディファイライト（ＲＭＷ）処理は実行できることになる。
【０１００】
このようなパラメータ決定処理を行うための手法として、以下に示す４つの処理例について説明する。
（処理例１）ＨＤＤのモデルナンバーから決定する
（処理例２）ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理に基づいて決定
（処理例３）読み出し（Ｒｅａｄ）コマンドを適用して決定
（処理例４）書き込み（Ｗｒｉｔｅ）処理における応答時間を測定して決定
以下、これらの４つの処理例について説明する。
【０１０１】
（処理例１）ＨＤＤのモデルナンバーから決定する
処理例１は、ＨＤＤのモデルナンバーに基づいて、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理例である。
【０１０２】
情報処理装置のホスト側の制御部は、情報処理装置に装着されたメディア（ＨＤＤ）のモデルナンバーを取得して、ホスト側でのリードモディファイライト（ＲＭＷ）処理の実行可否と、実行する場合のパラメータを決定することができる。
【０１０３】
ＨＤＤのモデルナンバーに対応して、物理セクタサイズは固定されており、ホスト側の制御部は、例えば図９に示すようなＨＤＤモデルとＲＭＷの実行主体情報とパラメータの対応テーブル（ＲＭＷテーブル）をメモリに保持しておく。ＨＤＤへのアクセス時に、ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理を行うことで、ＨＤＤのモデルナンバーを取得すれば、メモリに記憶した図９に示すテーブルに基づいて、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定することができる。
【０１０４】
（処理例２）ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理に基づいて決定
処理例２は、ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理に基づいて、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理例である。
【０１０５】
ホスト側の制御部は、メディア（ＨＤＤ）に対して、デバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理を実行し、デバイス情報を取得することができる。ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥによって取得できる５１２Ｂｙｔｅデータに含まれる［ＷＯＲＤ１０６］から、１つの物理セクタに対応する論理セクタサイズを得ることができる。
【０１０６】
ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥによって取得できる５１２Ｂｙｔｅデータに含まれる［ＷＯＲＤ１０６］は図１０に示すデータ構成を有し、登録データ２５１が、１つの物理セクタに対応する論理セクタサイズに関する情報である。ホスト側の制御部は、この情報によってリードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定することができる。
【０１０７】
（処理例３）読み出し（Ｒｅａｄ）コマンドを適用して決定
処理例３は、読み出し（Ｒｅａｄ）コマンドを適用して、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理例である。
【０１０８】
メディア（ＨＤＤ）内にリードモディファイライト（ＲＭＷ）処理を行う機能が実装されていないものは、物理セクタ単位でしかデータ読み出し（ＲＥＡＤ）処理が実行出来ない。この場合、ホスト側の制御部は、ＬＢＡ０から１つのセクタ単位のデータ読み出し（Ｒｅａｄ）コマンドをメディア側に発行し、セクタ数をインクリメントして必要なデータの読み出しを行う。
【０１０９】
１つの物理セクタに含まれる論理セクタ数が［Ｎ］の場合、セクタ数［Ｎ］の読み出し（Ｒｅａｄ）コマンドを発行したときに、メディア側から読み出し完了（Ｒｅａｄ  ＯＫ）の応答が得られる。従って、読み出し完了（Ｒｅａｄ  ＯＫ）の応答が得られるタイミングを計測することで、１つの物理セクタに含まれる論理セクタ数［Ｎ］を取得することができる。
【０１１０】
図１１に示すフローに従って、読み出し（Ｒｅａｄ）コマンドを適用して、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを取得するシーケンスについて説明する。すなわち、１つの物理セクタに含まれる論理セクタ数［Ｎ］を取得する処理シーケンスである。この処理は、ホスト側の制御部において読み出し（Ｒｅａｄ）コマンドをメディア(ＨＤＤ)側に発行することで実行される。
【０１１１】
まず、ステップＳ３５１において、１つの物理セクタに含まれる論理セクタ数［Ｎ］に対応する初期値としてＮ＝１の初期値設定を行う。ステップＳ３５２において、ＬＢＡ０から１つのセクタ単位のデータ読み出し（Ｒｅａｄ）コマンドをメディア側に発行する。ステップＳ３５３において、メディア側から読み出し完了（Ｒｅａｄ  ＯＫ）の応答が得られたか否かを判定する。読み出し完了（Ｒｅａｄ  ＯＫ）の応答が得られた場合、ステップＳ３５４に進み、設定した［Ｎ］が、１つの物理セクタに含まれる論理セクタ数［Ｎ］であると判定する。
【０１１２】
ステップＳ３５３において、メディア側から読み出し完了（Ｒｅａｄ  ＯＫ）の応答が得られない場合は、ステップＳ３５５に進み、Ｎ＝Ｎ＋１とする更新を実行する。次に、ステップＳ３５６において、Ｎが、予め決定されるＮの許容最大値２Ｘを超えていないかを判定する。超えていた場合には、Ｎの決定は不可能と判定して処理は終了する。超えていない場合は、更新された［Ｎ］を利用して再度、ステップＳ３５２以下の処理を実行する。この処理によって、１つの物理セクタに含まれる論理セクタ数［Ｎ］を算出する。
【０１１３】
（処理例４）書き込み（Ｗｒｉｔｅ）処理における応答時間を測定して決定
処理例４は、書き込み（Ｗｒｉｔｅ）処理における応答時間を測定してリードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理例である。
【０１１４】
先に、図１（Ｂ）を参照して説明したように、リードモディファイライト（ＲＭＷ）処理が発生しないデータ書き込みの場合は書き込み（Ｗｒｉｔｅ）処理のみによって処理が行われるが、リードモディファイライト（ＲＭＷ）処理が発生する場合、書き込み処理の他、読み出し（Ｒｅａｄ）処理、モディファイ（Ｍｏｄｉｆｙ）処理が発生する。このため、ホストからの要求が書き込み（Ｗｒｉｔｅ）コマンド一回の場合でも、リードモディファイライト（ＲＭＷ）処理が発生した場合は応答時間が増大する。この時間を測定することにより、物理セクタに対応する論理セクタ数を判定する。
【０１１５】
書き込み（Ｗｒｉｔｅ）処理における応答時間を測定してリードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理シーケンスについて、図１２に示すフローチャートを参照して説明する。このフローに従った処理はホスト側の制御部において実行される。
【０１１６】
まずステップＳ４０１において、ホストは、ファイルシステム（ＦｉｉｌｅＳｙｓｔｅｍ）経由で、メディア（ＨＤＤ）の未使用領域を検索する。メディアの未使用領域から、開始ＬＢＡが２ｘの整数倍、かつ２ｘ論理セクタ数分の未使用領域を検索する。
【０１１７】
見つかった場合（ステップＳ４０１でＹｅｓ）は、ステップＳ４０２に進み、１つの物理セクタに含まれる論理セクタ数［Ｍ］に対応する初期値としてＭ＝１の初期値設定を行う。ステップＳ４０３において、その領域に対し、書き込み（Ｗｅｉｔｅ）処理を行う。なお、ｘが取り得る最大値は１５となる。これは、ＡＴＡにて規定されているＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥのＷＯＲＤ１０６のフィールドにて表現可能な最大数とした。この場合、物理セクタに含まれる論理セクタ数の最大値は３２７６８となる。論理セクタサイズが５１２Ｂｙｔｅの場合はＲＭＷするサイズは１６ＭＢｙｔｅと大きな値となるので、ホスト機器のシステム構成によってはＲＭＷが出来ない可能性もある。システムよってはｘ＝２などの値で十分である。
【０１１８】
メディアに未使用領域が見つかった場合、ステップＳ４０３において、実際に書き込み（Ｗｒｉｔｅ）処理を行う。見つかったＬＢＡ＝Ａとすると、ＬＢＡ＝ＡからＭセクタの書き込み（Ｗｒｉｔｅ）を行う。ステップＳ４０４において、書き込み完了を示すメディアからの応答時間ＲＭを受領してメモリに保持する。Ｍは１〜２Ｘまでインクリメント（ステップＳ４０７〜Ｓ４０８)する。
【０１１９】
応答時間をＲＭとすると、Ｍが、物理セクタに含まれる論理セクタ数となったときはリードモディファイライト（ＲＭＷ）処理を行うことなくデータ書き込みが可能となるので、ＲＭはＲＭ−１に対して十分に小さい応答時間となる。すなわち、ステップＳ４０５での判定処理で［Ｙｅｓ］となる。この結果として、ステップＳ４０６において、［Ｍ］を１つの物理セクタに含まれる論理セクタとして決定することができる。
【０１２０】
このように、ホスト側の制御部は、ホスト側でリードモディファイライト（ＲＭＷ）処理を実行するためのパラメータを上記の（処理例１）〜（処理例４）のいずれかの手法を適用して決定することができる。すなわち、
（処理例１）ＨＤＤのモデルナンバーから決定する
（処理例２）ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理に基づいて決定
（処理例３）読み出し（Ｒｅａｄ）コマンドを適用して決定
（処理例４）書き込み（Ｗｒｉｔｅ）処理における応答時間を測定して決定
以下、これらの４つの処理例のいずれかを適用してパラメータを決定することができる。
【０１２１】
ホスト側の制御部では、上記の処理例１〜４のいずれかのみを適用してパラメータの決定を行う構成としてもよいが、予め定めたシーケンスに従って、処理例１〜４を順次適用して、パラメータを決定する構成としてもよい。このシーケンス設定例について、図１３のフローチャートを参照して説明する。
【０１２２】
図１３のフローチャートは、上述の処理例１〜４を順次適用して、パラメータを決定するシーケンスである。ホスト側の制御部において実行されるシーケンスである。
【０１２３】
まず、ステップＳ５０１において、ホスト側制御部は、メディア（ＨＤＤ）に対してメディア確認処理（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）を実行し、モデルナンバーを取得する。
【０１２４】
ステップＳ５０２において、取得したモデルナンバーがメモリに記憶したＲＭＷテーブル（図９参照）に登録済みであるか否かを調べる。モデルナンバーがテーブルに登録されている場合は、ステップＳ５０３に進み、テーブルに登録されたパラメータ（物理セクタに対応する論理セクタ数）を適用してホスト側でのリードモディファイライト（ＲＭＷ）処理を実行する。この処理は（処理例１）の適用処理となる。
【０１２５】
ステップＳ５０２において、取得したモデルナンバーがメモリに記憶したＲＭＷテーブル（図９参照）に登録済みでないと判定された場合は、ステップＳ５０４に進み、メディア確認処理（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）によって得られた［ＷＯＲＤ１０６］の登録データを調べる（図１０参照）。ここのフィールドに、パラメータ（物理セクタに対応する論理セクタ数）が記録されていれば、ステップＳ５０５に進む。ステップＳ５０５においては、［ＷＯＲＤ１０６］に記録されたパラメータ（物理セクタに対応する論理セクタ数）を適用してホスト側でのリードモディファイライト（ＲＭＷ）処理を実行する。この処理は（処理例２）の適用処理となる。
【０１２６】
ステップＳ５０４で、メディア確認処理（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）によって得られた［ＷＯＲＤ１０６］に、パラメータ（物理セクタに対応する論理セクタ数）が記録されていない場合は、ステップＳ５０７に進む。
【０１２７】
ステップＳ５０７では、メディアに対するデータ読み出し（Ｒｅａｄ）コマンドを発行して、データ読み出し（Ｒｅａｄ）によるパラメータ算出処理を行う。この処理は、図１１に示すフローチャートに従った処理（処理例３）に対応する処理である。ステップＳ５０８において、データ読み出し（Ｒｅａｄ）コマンドの適用処理によって、物理セクタに２つ以上の論理セクタが含まれると判定可能である場合は、データ読み出し（Ｒｅａｄ）コマンドの適用処理によって判定した［Ｎ］をパラメータ（物理セクタに対応する論理セクタ数）として決定して処理を行う。
【０１２８】
また、データ読み出し（Ｒｅａｄ）コマンドの適用処理によって、物理セクタに２つ以上の論理セクタが含まれると判定可能でない場合は、さらに、ステップＳ５０９において、書き込み（Ｗｒｉｔｅ）コマンド発行処理を行い、データ書き込み（Ｗｒｉｔｙｅ）コマンド発行による応答時間に基づくパラメータ算出処理を行う。この処理は、図１２に示すフローチャートに従った処理（処理例４）に対応する処理である。
【０１２９】
このようにして、ホストは、処理例１〜４を順次適用してリードモディファイライト（ＲＭＷ）処理に適用するパラメータ（物理セクタに対応する論理セクタ数）を決定することができる。
【０１３０】
なお、ステップＳ５０３の処理例１では、リードモディファイライト（ＲＭＷ）処理をホストとメディア側のどちらで行うかをテーブル(図９)の情報によって決定することができる。
【０１３１】
また、ステップＳ５０７のデータ読み出し（Ｒｅａｄ）コマンドの適用処理によって、パラメータを決定した場合は、メディア側でのリードモディファイライト（ＲＭＷ）処理ができないことが前提であり、すべてホスト側でリードモディファイライト（ＲＭＷ）処理を行うと決定する。
【０１３２】
ステップＳ５０５の処理例２によるメディア確認処理（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）によって得られた［ＷＯＲＤ１０６］の登録データに従ったパラメータ決定の場合と、ステップＳ５０９の処理例４のデータ書き込み（Ｗｒｉｔｅ）コマンドの適用によるパラメータ決定処理の場合は、リードモディファイライト（ＲＭＷ）処理をホスト側で行うべきか、デバイス側で行うべきかの判断はできない。
【０１３３】
そこで、事前にホスト側またはメディア側のどちらでリードモディファイライト（ＲＭＷ）処理を行うかの優先順位を決めておく。たとえば、ホスト側にリードモディファイライト（ＲＭＷ）処理を実行する十分なリソースが無い場合は、メディア側でリードモディファイライト（ＲＭＷ）処理を優先的に実行させる設定とするなどである。また、高速データ転送が要求される場合は、ホスト側でもデバイス側でもリードモディファイライト（ＲＭＷ）処理を行わないという選択肢もあり得る。
【０１３４】
ホスト側またはメディア側のどちらでリードモディファイライト（ＲＭＷ）処理を行うかの優先順位の設定例としては、例えば以下の例がある。
（Ａ）ホスト側が、リードモディファイライト（ＲＭＷ）処理を優先的に実行する。
（Ａ１）ホスト側にリードモディファイライト（ＲＭＷ）処理機能がある
（Ａ２）接続されたメディアデバイスが未知のデバイスである
【０１３５】
（Ｂ）メディア側が、リードモディファイライト（ＲＭＷ）処理を優先的に実行する。
（Ｂ１）ホスト側に十分なリソースが無い
【０１３６】
もし、ＨＤＤが情報処理装置に内蔵されたメディアであり、交換する可能性が低いものである場合は、上記のようなパラメータの決定およびリードモディファイライト（ＲＭＷ）処理の実行主体の決定処理は一回実行すればよい。例えば、装置の製造時に一回判定を行い、その結果をフラッシュメモリなとり不揮発性メモリに保持しておくことができる。装置の起動時に、このデータを読み出して処理を行うことができる。
【０１３７】
また、メディアがリムーバブルメディアの様なユーザによって容易に交換可能なＨＤＤの場合は、メディアの交換後に新たな判定処理を実行して判定結果をフラッシュメモリなとり不揮発性メモリに保持しておけばよい。なお、情報処理装置には、メディアの交換発生を検出するスイッチなどを設置し、交換処理が発生しなければ装置内のメモリの記憶データを使用し、メディア交換が検出された場合は再度判定処理を実行してメモリの格納データを更新する処理を行う。このようにすれば、メディア交換することが前提の装置でも、判定処理回数を最低限に抑えることが可能となる。
【０１３８】
図１４に示すフローチャートを参照して、メディアがリムーバルメディアであり、メディアの着脱検出を実行して、リードモディファイライト（ＲＭＷ）処理におけるパラメータの決定などの判定処理を行うシーケンスについて説明する。この処理は、情報処理装置内のホスト側の制御部において実行される。実行タイミングは、例えば装置の起動時、あるいはデータの記録開始時などである。
【０１３９】
なお、このフローは、装置に装着済みのメディアについては、すでに、例えば先に図１３を参照して説明したフローに従った処理が実行され、リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、あるいはメディア側で実行するかの判定結果と、リードモディファイライト（ＲＭＷ）処理を実行する際のパラメータについて決定済みであり、これらの情報がメモリに記憶されているものとする。
【０１４０】
まず、ステップＳ６０１において、情報処理装置からメディアが取り外されたか否かを判定する。取り外されていない場合は、ステップＳ６０２に進み、不揮発性メモリにリードモディファイライト（ＲＭＷ）処理の実行主体情報とパラメータ情報が記録されているか否かを判定する。保持されている場合は、ステップＳ６０３に進み、メモリに保持されているデータに従ってリードモディファイライト（ＲＭＷ）処理を実行する設定とする。
【０１４１】
ステップＳ６０１において、情報処理装置からメディアが取り外されたと判定したばあい、およびステップＳ６０２において装置内のメモリにリードモディファイライト（ＲＭＷ）処理に適用するためのデータが格納されていないと判定した場合は、ステップＳ６０４に進み、例えば先に図１３を参照して説明したフローに従った処理を実行する。すなわち、リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、あるいはメディア側で実行するかと、リードモディファイライト（ＲＭＷ）処理を実行する際のパラメータを決定し、ステップＳ６０５において、これらの判定結果データをメモリに格納する。
【０１４２】
上述した実施例では、リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、あるいはメディア側で実行するかについての判定処理を、各処理例において以下のように設定していた。
（処理例１）ＨＤＤのモデルナンバーから決定する場合、
この場合は、装置のメモリに格納した図９に示すテーブルの設定に従って決定する。
（処理例２）ＡＴＡインタフェースを介したデバイス確認（ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥ）処理に基づいて決定、
この場合は、予めＲＭＷ実行主体を決定しておき、その決定情報に従う（図１３のフローのステップＳ５０６）
（処理例３）読み出し（Ｒｅａｄ）コマンドを適用して決定
この場合は、メディア側にＲＭＷ実行機能がないので、ホスト側で実行する。
（処理例４）書き込み（Ｗｒｉｔｅ）処理における応答時間を測定して決定
この場合は、予めＲＭＷ実行主体を決定しておき、その決定情報に従う（図１３のフローのステップＳ５０６）
このような設定とした例を説明した。
【０１４３】
しかし、リードモディファイライト（ＲＭＷ）処理は、多くの場合、ホスト側で実行するより、メディア側で行う方が高速に実行可能となる場合が多い。しかし、ホスト側の機能が高い場合は、ホスト側で実行した方が高速に処理可能な場合もある。
【０１４４】
ホストとメディアの双方にリードモディファイライト（ＲＭＷ）処理機能を有している場合、高速にリードモディファイライト（ＲＭＷ）処理を実行できる方を実行主体として選択する構成としてもよい。
【０１４５】
このような実行主体の選択構成を行うための条件としては、以下の条件を満足することが必要である。
＊ホスト、メディア両方にリードモディファイライト（ＲＭＷ）処理機能がある。
＊物理セクタサイズが既知である
＊リードモディファイライト（ＲＭＷ）処理速度を測定するためのメディア空き領域がある
これらの条件をすべて満足する場合には、ホストとメディア双方に、試験的なリードモディファイライト（ＲＭＷ）処理を実行させて、処理時間を測定し、短い方をリードモディファイライト（ＲＭＷ）処理の実行主体として選択するといった設定が可能である。
【０１４６】
このような試験的なリードモディファイライト(ＲＭＷ)処理を実行させてリードモディファイライト（ＲＭＷ）処理の実行主体を決定する処理シーケンスについて、図１５に示すフローチャートを参照して説明する。図１５に示すフローは情報処理装置のホスト側の制御部の制御下で実行される。
【０１４７】
ステップＳ７０１において、メディアにリードモディファイライト（ＲＭＷ）処理速度を測定するための空き領域があるか否かを確認する。具体的には、論理アドレス（ＬＢＡ）＝Ａからｎ論理セクタサイズ分の連続した空き領域があり、かつ、リードモディファイライト（ＲＭＷ）処理が発生するＡとｎの組み合わせが存在するか否かを判定する。存在しない場合には、速度測定処理のためのリードモディファイライト（ＲＭＷ）処理は実行できないので、処理を終了する。なお、Ａとｎの組み合わせはＡが物理セクタ境界、かつｎが物理セクタ数の整数倍という場合（つまり、ＲＭＷが発生しない）以外なら何でもよい。
【０１４８】
ステップＳ７０１において、メディアにリードモディファイライト（ＲＭＷ）処理速度を測定するための空き領域があると判定した場合は、ステップＳ７０２に進む。
【０１４９】
ステップＳ７０２では、ホスト側において、リードモディファイライト（ＲＭＷ）処理を行い、論理アドレス（ＬＢＡ）＝Ａからｎ論理セクタサイズ分の書き込み（Ｗｒｉｔｅ）処理を行い、その処理の開始から完了までの処理時間に相当する応答時間ＲＨｏｓｔを測定する。
【０１５０】
次に、ステップＳ７０３において、メディア側において、リードモディファイライト（ＲＭＷ）処理を行わせて、論理アドレス（ＬＢＡ）＝Ａからｎ論理セクタサイズ分の書き込み（Ｗｒｉｔｅ）処理を行い、その処理の開始から完了までの処理時間に相当する応答時間ＲＭｅｄｉａを測定する。
【０１５１】
ステップＳ７０４において、
ホスト側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＨｏｓｔ］と、メディア側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＭｅｄｉａ］とを比較する。
【０１５２】
ホスト側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＨｏｓｔ］が、メディア側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＭｅｄｉａ］より短い場合は、ステップＳ７０５に進み、リードモディファイライト（ＲＭＷ）処理の実行主体をホスト側として設定する。
【０１５３】
一方、メディア側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＭｅｄｉａ］が、ホスト側でリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間［ＲＨｏｓｔ］より短い場合は、ステップＳ７０６に進み、リードモディファイライト（ＲＭＷ）処理の実行主体をメディア側として設定する。
【０１５４】
このように、試験的なリードモディファイライト（ＲＭＷ）処理を実行した場合の処理時間を測定してリードモディファイライト（ＲＭＷ）処理の実行主体を決定すれば、より高速で処理を行なうことが可能となる。
【０１５５】
［４．情報処理装置の構成例］
次に、上述した処理を実行する情報処理装置の構成例として、デジタルビデオカメラと、ＰＣの装置構成例について、図１６、図１７を参照して説明する。
【０１５６】
まず、図１６を参照してデジタルビデオカメラの構成例について説明する。デジタルビデオカメラは、画像を撮像して、撮像することにより得た画像データをドライブ４３２を介してハードディスクなどの磁気ディスク、ＤＶＤなどの光ディスク、光磁気ディスク、フラッシュルモリなどの半導体メモリ等の各種情報記録媒体に記録する撮像モードと、画像入出力部４１４や音声入出力部４１６あるいは通信部４３１を通じて供給を受けたデータを記録媒体に記録したり、記録媒体に記録されているデータを再生したりするＶＴＲモードとを備えたものである。
【０１５７】
撮像モードは、動画を撮像すると共に、これと同時に収音するようにした音声とを記録媒体に記録する動画撮像モードと、静止画を撮像する静止画撮像モードとを備えている。また、ＶＴＲモード時においては、記録ボタンスイッチなどによって構成される操作入力部４２０を操作することにより供給されるデータの記録が行われるようにされ、再生ボタンスイッチを操作することにより記録媒体に記録されている目的とするデータを再生することができる。
【０１５８】
図１６に示すように、デジタルビデオカメラは、光学レンズ部４１１、光電変換部４１２、カメラ機能制御部４０２、画像信号処理部４１３、画像入出力部４１４、液晶ディスプレイ４１５、音声入出力部４１６、音声信号処理部４１７、通信部４３１、制御部（ＣＰＵ）４０１、内蔵メモリ（ＲＡＭ）４１８、内蔵メモリ（ＲＯＭ）４１９、操作入力部４２０、情報記録媒体に対するドライブ４３２、さらに、各構成部に対する電力供給を行なう電源４４１を備えたものである。
【０１５９】
制御部（ＣＰＵ）４０１は、ＲＯＭ４１９に格納された各種の処理プログラムに従って処理を実行する。ＲＡＭ４１８は、各処理において途中結果を一時記憶するなど、主に作業領域として用いられる。前述した各処理フローを実行する場合にも、ＲＡＭ４１８を作業領域としてプログラムの実行やデータ更新などが実行される。また、ＲＡＭ４１８の一部は不揮発性メモリとして設定され、先に図９や図１０を参照して説明した各種のテーブルを記録する。なお、ドライブ４３２を介して接続されるフラッシュメモリなどにこれらのデータを記録する設定としてもよい。
【０１６０】
操作入力部４２０は、動画撮影モード、静止画撮影モード、ＶＴＲモードなどの動作モードを切り換えるモード切り換えキー、静止画の撮影のためのシャッターキー、動画を撮影するための撮影開始キー、録画キー、再生キー、停止キー、早送りキー、早戻しキーなどの種々の操作キーや機能キーなどを備え、ユーザからの操作入力を受け付けて、受け付けた操作入力に応じた電気信号を制御部（ＣＰＵ）４０１に供給する。
【０１６１】
制御部（ＣＰＵ）４０１は、ユーザからの操作入力に応じて、目的とする処理を行うためのプログラムをＲＯＭ４１９から読み出して実行し、各部を制御することによって、ユーザからの指示に応じた処理の制御を行う。制御部（ＣＰＵ）４０１は必要に応じてリードモディファイライト処理の制御を実行する。さらに、上述した実施例で説明した各処理フローに従った処理を実行する。
【０１６２】
デジタルビデオカメラは、メディアデバイス、すなわち情報記録媒体として、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の各種メディア（情報記録媒体）を装着可能である。これらのメディアデバイスの一部にはメディア制御部が構成される。これらのメディアにドライブ４３２を介して各種の情報を記録し、また、これらのメディアに記録された情報を再生する。メディア制御部は必要に応じてリードモディファイライト処理を実行する。
【０１６３】
次に、図１７を参照して、上述した処理を実行する情報処理装置の一例としてのＰＣのハードウェア構成例について説明する。ＣＰＵ（Central Processing Unit）５０１は、ＯＳ（Operating System)に対応する処理や、上述の実施例において説明した異なるファイルを利用したデータ記録、あるいはデータ再生処理などを実行するデータ処理部として機能する。制御部（ＣＰＵ）５０１は必要に応じてリードモディファイライト処理の制御を実行する。さらに、上述した実施例で説明した各処理フローに従った処理を実行する。これらの処理は、情報処理装置のＲＯＭ、ハードディスクなどのデータ記憶部に格納されたコンピュータ・プログラムに従って実行される。
【０１６４】
ＲＯＭ（Read Only Memory）５０２は、ＣＰＵ５０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Random Access Memory）５０３は、ＣＰＵ５０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス５０４により相互に接続されている。前述した各処理フローを実行する場合にも、ＲＡＭ５０３を作業領域としてプログラムの実行やデータ更新などが実行される。また、ＲＡＭ５０３の一部は不揮発性メモリとして設定され、先に図９や図１０を参照して説明した各種のテーブルを記録する。なお、ドライブ５１２を介して接続されるフラッシュメモリなどにこれらのデータを記録する設定としてもよい。
【０１６５】
ホストバス５０４は、ブリッジ５０５を介して、ＰＣＩ(Peripheral Component Interconnect/Interface)バスなどの外部バス５０６に接続されている。
【０１６６】
キーボード５０８、ポインティングデバイス５０９は、ユーザにより操作される入力デバイスである。ディスプレイ５１０は、液晶表示装置またはＣＲＴ（Cathode Ray Tube）などから成り、各種情報をテキストやイメージで表示する。
【０１６７】
ＨＤＤ（Hard Disk Drive）５１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ５０１によって実行するプログラムや情報を記録または再生させる。ハードディスクは、例えば、画像データファイルの格納領域として利用されるとともに、データ処理プログラム等、各種コンピュータ・プログラムが格納される。
【０１６８】
ドライブ５１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体５２１に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース５０７、外部バス５０６、ブリッジ５０５、およびホストバス５０４を介して接続されているＲＡＭ５０３に供給する。
【０１６９】
接続ポート５１４は、外部接続機器５２２を接続するポートであり、ＵＳＢ，ＩＥＥＥ１３９４等の接続部を持つ。接続ポート５１４は、インタフェース５０７、および外部バス５０６、ブリッジ５０５、ホストバス５０４等を介してＣＰＵ５０１等に接続されている。通信部５１５は、ネットワークに接続され、その他の情報処理装置との通信を実行する。
【０１７０】
なお、ＨＤＤ５１１や、リムーバブル記録媒体５２１の一部にはメディア制御部が構成される。これらのメディアに各種の情報を記録し、また、これらのメディアに記録された情報を再生する。メディア制御部は必要に応じてリードモディファイライト処理を実行する。
【０１７１】
なお、図１６、図１７に示す情報処理装置の構成例は、装置の一例であり、情報処理装置は、図１６、図１７に示す構成に限らず、上述した実施例において説明した処理を実行可能な構成であればよい。
【０１７２】
なお、上述した実施例では、非フラッシュメモリ系のメディアとしてハードディスクを例として説明したが、本発明は、ランダムアクセス可能なメディア全般に適用可能であり、ハードディスク以外のメディアに対しての処理として適用することも可能である。
【０１７３】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【０１７４】
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１７５】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１７６】
以上、説明したように、本発明の一実施例構成によれば、記録メディア（情報記録媒体）に対するデータ記録処理を行なう情報処理装置において、メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、本発明の一実施例構成によれば、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
【図面の簡単な説明】
【０１７７】
【図１】ハードディスク（ＨＤＤ）におけるリードモディファイライト（ＲＭＷ）処理について説明する図である。
【図２】フラッシュメモリにおけるリードモディファイライト（ＲＭＷ）処理例について説明する図である。
【図３】フラッシュメモリにおけるリードモディファイライト（ＲＭＷ）処理の処理パターン判別シーケンスについて説明するフローチャートを示す図である。
【図４】リードモディファイライト（ＲＭＷ）処理の実行主体の決定シーケンスについて説明するフローチャートを示す図である。
【図５】リードモディファイライト（ＲＭＷ）処理の実行主体の決定シーケンスについて説明するフローチャートを示す図である。
【図６】リードモディファイライト（ＲＭＷ）処理をホスト側で実行するか、メディア側で実行するかを決定して処理を行う例について説明する図である。
【図７】リードモディファイライト（ＲＭＷ）処理が必要であるか否かを判定する処理について説明するフローチャートを示す図である。
【図８】リードモディファイライト（ＲＭＷ）処理が不要な場合および必要な場合の処理例について説明する図である。
【図９】ＨＤＤモデルとＲＭＷの実行主体情報とパラメータの対応テーブル（ＲＭＷテーブル）の構成例について説明する図である。
【図１０】ＩＤＥＮＴＩＦＹ  ＤＥＶＩＣＥによって取得できる５１２Ｂｙｔｅデータに含まれる［ＷＯＲＤ１０６］の例について説明する図である。
【図１１】読み出し（Ｒｅａｄ）コマンドを適用して、リードモディファイライト（ＲＭＷ）処理に必要なパラメータを取得するシーケンスについて説明するフローチャートを示す図である。
【図１２】書き込み（Ｗｒｉｔｅ）処理における応答時間を測定してリードモディファイライト（ＲＭＷ）処理に必要なパラメータを決定する処理シーケンスについて説明するフローチャートを示す図である。
【図１３】予め定めたシーケンスに従って、処理例１〜４を順次適用して、パラメータを決定するシーケンスについて説明するフローチャートを示す図である。
【図１４】メディアがリムーバルメディアであり、メディアの着脱検出を実行して、リードモディファイライト（ＲＭＷ）処理におけるパラメータの決定などの判定処理を行うシーケンスについて説明するフローチャートを示す図である。
【図１５】試験的なリードモディファイライト(ＲＭＷ)処理を実行させてリードモディファイライト（ＲＭＷ）処理の実行主体を決定する処理シーケンスについて説明するフローチャートを示す図である。
【図１６】本発明の情報処理装置の一実施例としてのデジタルビデオカメラの構成例について説明する図である。
【図１７】本発明の情報処理装置の一実施例としてのＰＣの構成例について説明する図である。
【符号の説明】
【０１７８】
１１  物理セクタ
２１０  ホスト
２１１  アプリケーション
２１２  ファイルシステム
２１３  デバイスドライバ
２１４  ＲＭＷ処理判定ブロック
２２０  メディア（ＨＤＤ）
２２１  メディア制御部
２５１  登録データ
４０１  制御部（ＣＰＵ）
４０２  カメラ機能制御部
４１１  光学レンズ部
４１２  光電変換部
４１３  画像信号処理部
４１４  画像入出力部
４１５  液晶ディスプレイ
４１６  音声入出力部
４１７  音声処理部
４１８  内蔵メモリ（ＲＡＭ）
４１９  内蔵メモリ（ＲＯＭ）
４２０  操作入力部
４３１  通信部
４３２  ドライブ
４４１  電源
５０１  ＣＰＵ(Central Processing Unit)
５０２  ＲＯＭ（Read-Only-Memory）
５０３  ＲＡＭ（Random Access Memory）
５０４  ホストバス
５０５  ブリッジ
５０６  外部バス
５０７  インタフェース
５０８  キーボード
５０９  ポインティングデバイス
５１０  ディスプレイ
５１１  ＨＤＤ（Hard Disk Drive）
５１２  ドライブ
５１４  接続ポート
５１５  通信部
５２１  リムーバブル記録媒体
５２２  外部接続機器
【図３】
2010033396.tif 000003
【図４】
2010033396.tif 000004
【図５】
2010033396.tif 000005
【図６】
2010033396.tif 000006
【図７】
2010033396.tif 000007
【図９】
2010033396.tif 000008
【図１０】
2010033396.tif 000009
【図１１】
2010033396.tif 000010
【図１２】
2010033396.tif 000011
【図１３】
2010033396.tif 000012
【図１４】
2010033396.tif 000013
【図１５】
2010033396.tif 000014
【図１６】
2010033396.tif 000015
【図１７】
2010033396.tif 000016
【図１】
2010033396.tif 000017
【図２】
2010033396.tif 000018
【図８】
2010033396.tif 000019