JP2010033396A - 情報処理装置、および情報処理方法、並びにプログラム - Google Patents
情報処理装置、および情報処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP2010033396A JP2010033396A JP2008195703A JP2008195703A JP2010033396A JP 2010033396 A JP2010033396 A JP 2010033396A JP 2008195703 A JP2008195703 A JP 2008195703A JP 2008195703 A JP2008195703 A JP 2008195703A JP 2010033396 A JP2010033396 A JP 2010033396A
- Authority
- JP
- Japan
- Prior art keywords
- read
- write
- control unit
- modify
- media
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】リードモディファイライト処理の改善された処理構成を実現する。
【解決手段】メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
【選択図】図4
【解決手段】メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
【選択図】図4
Description
本発明は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、メディア(情報記録媒体)に対するデータ記録を行う情報処理装置、および情報処理方法、並びにプログラムに関する。
デジタルビデオカメラやPC、その他の情報処理機器においては、例えば、ハードディスクやフラッシュメモリ、あるいはDVDなど、様々なメディア(情報記録媒体)を利用して情報記録や情報再生処理が行なわれる。
データ記録を行う場合、大きく分けて、以下の上位層から下位層に至る3つの構成要素(a)〜(c)間で記録データが転送されて記録処理が実行される。
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
上記の(a)→(b)→(c)の順にデータが渡されて記録処理が行われる。
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
上記の(a)→(b)→(c)の順にデータが渡されて記録処理が行われる。
記録データを生成するアプリケーションやデバイスドライバは、一定のデータサイズ(例えば512B(バイト)単位)の論理セクタ単位でデータ管理を行う。この論理セクタが記録媒体、例えばハードディスクやフラッシュメモリ等の各デバイス内部の管理データ単位と一致している場合には問題がないが一致しないシステムにおいて問題が発生することがある。例えばフラッシュメモリには、データ記録処理は消去ブロック単位で実行され、消去ブロック単位の処理が必要となる。なお、フラッシュメモリに対するデータ記録処理については例えば特許文献1(特開2003−296177号公報)に記載されている。
また、例えばハードディスク(HDD)では、アクセス単位として、N個の論理セクタをひとまとめにした物理セクタが利用される。HDD内部の管理単位を大きくすることで、例えばECC(Error Correction Code)の設定単位を大きくして処理効率を高め、ECCデータの削減により記憶領域の効率的利用が図られるといった効果がある。
このように、上位層(アプリケーションやデバイスドライバ)のデータアクセス単位と、メディア(情報記録媒体)内の制御部のデータアクセス単位が異なり、メディア内のアクセス単位が、上位層のアクセス単位より大きな設定である場合、例えば、上位層からメディアに対してあるデータ記録または再生領域の指定がなされた場合、メディア内部では、指定領域と一括管理されているデータ領域についても、まとめて読み出しや記録処理が実行されることになる。
例えば、アプリケーションが、メディアに記録されたデータを読み出して更新する場合、アプリケーション側の更新処理は論理セクタ単位で実行するが、メディア内部(例えばHDD内部)では一旦、更新予定のセクタデータを含むメディアのアクセス単位、すなわち物理セクタ単位でデータが読み取られてメディア内部のメモリに一時的に保持され、アプリケーションからデバイスドライバ経由で入力した更新データ部分のみが更新されて再記録されることになる。
このような処理、すなわち、
データ読み出し、
データ更新、
更新データの記録
これらの3種類の処理を一連の処理として行うことが必要である。この処理は一般的にリードモディファイライト(RMW:Read Modify Write)と呼ばれる。
データ読み出し、
データ更新、
更新データの記録
これらの3種類の処理を一連の処理として行うことが必要である。この処理は一般的にリードモディファイライト(RMW:Read Modify Write)と呼ばれる。
なお、物理セクタのサイズは、例えばハードディスク(HDD)においては、HDDの容量増大に伴い増加する傾向にある。従来は論理セクタサイズ=物理セクタサイズ=512Byteであり、一致しているものが多かった。しかし、昨今のハードディスク(HDD)は、物理セクタサイズが1024Byte、2048Byteなど、増加しており、物理セクタサイズが512Byteの論理セクタサイズより大きいものが多くなっている。
このようなシステムでは、データ記録を行う場合、上述のリードモディファイライト(RMW)処理を行うことが必要となる。このリードモディファイライト(RMW)処理を行うのは、上記の3種類の構成要素、すなわち、
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト側)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
これらのいずれかの要素となるが、現実的な処理としては、上記の(b),(c)のいずれかにおいて実行することが可能である。
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト側)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
これらのいずれかの要素となるが、現実的な処理としては、上記の(b),(c)のいずれかにおいて実行することが可能である。
すなわち、リードモディファイライト(RMW)処理は、
(1)デバイスドライバ(ホスト側)
(2)HDDやフラッシュメモリ等の各デバイス(メディア側)、
上記のようにホスト側か、あるいはメディア側のいずれかにおいて実行する設定が可能である。
(1)デバイスドライバ(ホスト側)
(2)HDDやフラッシュメモリ等の各デバイス(メディア側)、
上記のようにホスト側か、あるいはメディア側のいずれかにおいて実行する設定が可能である。
しかし、リードモディファイライト(RMW)処理の実行主体をホスト側にするか、メディア側にするかについては、これまで十分な検討がなされていないのが現状である。
特開2003−296177号公報
本発明は、上述した状況に鑑みてなされたものであり、記録先となるメディアの種類や性能、あるいはデータ記録を行った場合の所要時間等の推定情報などに従って、リードモディファイライト(RMW)処理の実行主体をホスト側にするか、メディア側にするかを決定して、効率的なデータ記録処理を行う情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
本発明の第1の側面は、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である情報処理装置にある。
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である情報処理装置にある。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、データの記録メディアの種類を判別し、記録メディアがフラッシュメモリである場合に、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスから受領するメディア確認情報をホスト側メモリに記録し、該メディア確認情報に基づいてリードモディファイライト処理の実行主体と、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスから受領するメディア確認情報から、メディアの物理セクタに対応する論理セクタ数を記述したデータを抽出し、抽出データによりリードモディファイライト処理の実行パラメータを決定する構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスに対するデータ読み出しコマンドを出力し、前記メディアデバイスからのコマンドに対する完了応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスに対するデータ書き込みコマンドを出力し、前記メディアデバイスからのコマンドに対する応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアがハードディスクである場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である。
さらに、本発明の情報処理装置の一実施態様において、前記ホスト制御部は、前記メディアがハードディスクである場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である。
さらに、本発明の第2の側面は、
情報処理装置において実行する情報処理方法であり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行する情報処理方法にある。
情報処理装置において実行する情報処理方法であり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行する情報処理方法にある。
さらに、本発明の第3の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部に、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行させるステップを有するプログラムにある。
情報処理装置において情報処理を実行させるプログラムであり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部に、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行させるステップを有するプログラムにある。
なお、本発明のプログラムは、例えば、様々なプログラムコードを実行可能な情報処理装置等のシステムにおいてコンピュータ可読な形式で提供する記憶媒体などによって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置等のシステム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の一実施例構成によれば、記録メディア(情報記録媒体)に対するデータ記録処理を行なう情報処理装置において、メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、本発明の一実施例構成によれば、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
以下、図面を参照しながら、本発明の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。説明は、以下の各項目に従って行なう。
1.リードモディファイライト(RMW:Read Modify Write)処理の概要
2.記録先メディアがフラッシュメモリである場合の処理例
3.記録先メディアが、ハードディスク(HDD)である場合の処理例
4.情報処理装置の構成例
1.リードモディファイライト(RMW:Read Modify Write)処理の概要
2.記録先メディアがフラッシュメモリである場合の処理例
3.記録先メディアが、ハードディスク(HDD)である場合の処理例
4.情報処理装置の構成例
[1.リードモディファイライト(RMW:Read Modify Write)処理の概要]
前述したように、例えばデジタルビデオカメラやPC、その他の情報処理機器においては、ハードディスクやフラッシュメモリなどのメディア(情報記録媒体)に対してデータ記録を行なう。
前述したように、例えばデジタルビデオカメラやPC、その他の情報処理機器においては、ハードディスクやフラッシュメモリなどのメディア(情報記録媒体)に対してデータ記録を行なう。
このデータ記録処理に際して、上位層から下位層に至る3つの構成要素(a)〜(c)間で記録データが転送される。
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
上記の(a)→(b)→(c)の順にデータが渡されて記録処理が行われる。
(a)記録データを生成するアプリケーション、
(b)ハードディスク(HDD)やフラッシュメモリ等の各メディアに対応して設定されるデバイスドライバ(ホスト)、
(c)ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側)、
上記の(a)→(b)→(c)の順にデータが渡されて記録処理が行われる。
ホスト側であるデハイスドライバは、例えば512バイトの論理セクタでデータ管理を行うが、ハードディスク(HDD)やフラッシュメモリ等の各デバイス(メディア側は物理セクタや消去ブロック単位でデータ記録などのデータ管理を行う。
まず、図1を参照して、ハードディスク(HDD)におけるリードモディファイライト(RMW)処理について説明する。HDDメディア側の記録処理等の管理単位である物理セクタと、デバイスドライバ等のホスト側の管理単位である論理セクタのデータサイズの差異に応じてリードモディファイライト(RMW)の要否が決定される。
図1(A)は、物理セクタと論理セクタのデータサイズが一致している場合の例である。
この場合は、ホストからメディア側に渡されるデータが論理セクタサイズであるが、この論理セクタサイズは、メディア側におけるデータ記録単位である物理セクタサイズと一致しておりリードモディファイライト(RMW)は不要となる。単に1つの物理セクタに対してデータの書き込みを実行すればよい。
図1(A)は、物理セクタと論理セクタのデータサイズが一致している場合の例である。
この場合は、ホストからメディア側に渡されるデータが論理セクタサイズであるが、この論理セクタサイズは、メディア側におけるデータ記録単位である物理セクタサイズと一致しておりリードモディファイライト(RMW)は不要となる。単に1つの物理セクタに対してデータの書き込みを実行すればよい。
図1(B)は、物理セクタと論理セクタのデータサイズが一致していない場合の例である。
1物理セクタ=4論理セクタ
の例を示している。
1物理セクタ=4論理セクタ
の例を示している。
この場合、ホストからメディア側に渡されるデータが1つの論理セクタサイズのデータであっても、メディア側では、メディア側におけるデータ記録単位である物理セクタサイズでデータ記録を行うことになる。
この場合、まず、図1(B)に示すように、
1)リード処理:記録データを書き込む領域の物理セクタ11のデータを読み出す。
2)モディファイ処理:メモリ上で、ホストから受領した1つの論理セクタデータを物理セクタデータに書き込み更新する。
3)ライト処理:更新された物理セクタデータをメディアに書き込む。
このような一連のリードモディファイライト(RMW)処理を行う。
1)リード処理:記録データを書き込む領域の物理セクタ11のデータを読み出す。
2)モディファイ処理:メモリ上で、ホストから受領した1つの論理セクタデータを物理セクタデータに書き込み更新する。
3)ライト処理:更新された物理セクタデータをメディアに書き込む。
このような一連のリードモディファイライト(RMW)処理を行う。
なお、上記説明では、メディア側においてリードモディファイライト(RMW)処理を行う例を説明したが、ホスト側で実行することも可能である。
次に、図2を参照してフラッシュメモリにおけるリードモディファイライト(RMW)処理例について説明する。フラッシュメモリにおいても、ホスト(デバイスドライバ)における管理単位(例えばクラスタ)と、フラッシュメモリ側のメディア側のデータ記録単位(消去ブロック)とは異なるのが一般的であり、リードモディファイライト(RMW)処理が必要となる。
ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス))、書き込み終了位置、書き込みデータサイズ等によって、RMWの要否、およびパターンがことなることになる。図2には、(1)〜(5)の例を示している。
図2(1)は、ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス)が消去ブロックの先頭に一致し、かつ、書き込みデータサイズが消去ブロックの整数倍である場合である。
この場合は、リードモディファイライト(RMW)処理が不要となる。
この場合は、リードモディファイライト(RMW)処理が不要となる。
図2(2)は、ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス)が消去ブロックの先頭に一致せず、かつ、書き込データが1つの消去ブロック内に収まる場合である。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンAとする。
RMWパターンAは、
1回のRMW処理、すなわち、
ブロック単位のデータ読み取り、
ブロック単位のデータ更新、
ブロメック単位のデータ書き込み、
この一連のRMW処理を1回のみを行うパターンである。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンAとする。
RMWパターンAは、
1回のRMW処理、すなわち、
ブロック単位のデータ読み取り、
ブロック単位のデータ更新、
ブロメック単位のデータ書き込み、
この一連のRMW処理を1回のみを行うパターンである。
図2(3)は、ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス)が消去ブロックの先頭に一致し、かつ、書き込みデータサイズが消去ブロックの整数倍でなく、書き込データが1つの消去ブロック内に収まらない場合である。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンBとする。
RMWパターンBは、
消去ブロック単位の書き込み処理と、1回のRMW処理によって構成される。すなわち、
1.ブロック単位のデータ書き込み処理と、
2.1つのブロックに対するRMW処理、
(2−1)ブロック単位のデータ読み取り、
(2−2)ブロック単位のデータ更新、
(2−3)ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンBとする。
RMWパターンBは、
消去ブロック単位の書き込み処理と、1回のRMW処理によって構成される。すなわち、
1.ブロック単位のデータ書き込み処理と、
2.1つのブロックに対するRMW処理、
(2−1)ブロック単位のデータ読み取り、
(2−2)ブロック単位のデータ更新、
(2−3)ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
図2(4)は、ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス)が消去ブロックの先頭に一致せず、かつ、書き込み終了位置(書き込み終了LBA(論理アドレス)が消去ブロックの末尾に一致する場合である。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンCとする。
RMWパターンCは、
1回のRMW処理と、消去ブロック単位の書き込み処理によって構成される。すなわち、
1.1つのブロックに対するRMW処理、
(1−1)ブロック単位のデータ読み取り、
(1−2)ブロック単位のデータ更新、
(1−3)ブロック単位のデータ書き込み、
2.ブロック単位のデータ書き込み処理と、
この一連の処理を行うパターンである。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンCとする。
RMWパターンCは、
1回のRMW処理と、消去ブロック単位の書き込み処理によって構成される。すなわち、
1.1つのブロックに対するRMW処理、
(1−1)ブロック単位のデータ読み取り、
(1−2)ブロック単位のデータ更新、
(1−3)ブロック単位のデータ書き込み、
2.ブロック単位のデータ書き込み処理と、
この一連の処理を行うパターンである。
図2(5)は、ホストからのメディア側に渡されるデータの書き込み開始位置(書き込み開始LBA(論理アドレス)が消去ブロックの先頭に一致せず、かつ、書き込み終了位置(書き込み終了LBA(論理アドレス)も消去ブロックの末尾に一致しない場合である。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンDとする。
RMWパターンDは、
1回のRMW処理と、消去ブロック単位の書き込み処理と、さらに2回目のRMW処理によって構成される。すなわち、
1.1つのブロックに対するRMW処理、
(1−1)ブロック単位のデータ読み取り、
(1−2)ブロック単位のデータ更新、
(1−3)ブロック単位のデータ書き込み、
2.ブロック単位のデータ書き込み処理と、
3.1つのブロックに対するRMW処理、
(3−1)ブロック単位のデータ読み取り、
(3−2)ブロック単位のデータ更新、
(3−3)ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
この場合は、リードモディファイライト(RMW)処理が必要となる。
この場合のRMW処理をRMWパターンDとする。
RMWパターンDは、
1回のRMW処理と、消去ブロック単位の書き込み処理と、さらに2回目のRMW処理によって構成される。すなわち、
1.1つのブロックに対するRMW処理、
(1−1)ブロック単位のデータ読み取り、
(1−2)ブロック単位のデータ更新、
(1−3)ブロック単位のデータ書き込み、
2.ブロック単位のデータ書き込み処理と、
3.1つのブロックに対するRMW処理、
(3−1)ブロック単位のデータ読み取り、
(3−2)ブロック単位のデータ更新、
(3−3)ブロック単位のデータ書き込み、
この一連の処理を行うパターンである。
フラッシュメモリに対するデータ書き込み処理では、このようにパターンに応じて異なる処理が行われる。図3は、この処理パターンを判別する処理である。この判別処理は、RMW処理を実行するホストまたはメディア側の制御部において実行される。
まずステップS101で、書き込み終了LBAを以下の式に従って算出する。
書き込み終了LBA=書き込み開始LBA書き込みサイズ−1
書き込み終了LBA=書き込み開始LBA書き込みサイズ−1
ステップS102において、書き込み開始LBAが、ブロック(消去ブロック)の先頭に一致するか否かを判定する。すなわち、
書き込み開始LBA%N=0
上記式が成立するか否かを判定する。
書き込み開始LBA%N=0
上記式が成立するか否かを判定する。
書き込み開始LBAが、ブロック(消去ブロック)の先頭に一致すると判定された場合(ステップS102でYes)は、ステップS103に進み、書き込み終了LBAが、ブロック(消去ブロック)の末尾に一致するか否かを判定する。すなわち、
書き込み終了LBA%N=0
上記式が成立するか否かを判定する。
書き込み終了LBA%N=0
上記式が成立するか否かを判定する。
書き込み終了LBAが、ブロック(消去ブロック)の末尾に一致すると判定された場合(ステップS103でYes)は処理を終了する。この場合はリードモディファイライト(RMW)処理が不要な場合であり、図2(1)に対応する。
書き込み終了LBAがブロック(消去ブロック)の末尾に一致しないと判定された場合(ステップS103でNo)は、ステップS104に進む。ステップS104では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合(ステップS104でYes)は、ステップS111に進み、パターンBのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(3)の処理例に対応する。
また、ステップS104において、書き込みデータが複数ブロックにまたがらないと判定した場合(ステップS104でNo)は、ステップS112に進み、パターンAのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(2)の処理例に対応する。
一方、ステップS102において、書き込み開始LBAが、ブロック(消去ブロック)の先頭に一致しないと判定された場合(ステップS102でNo)は、ステップS105に進み、書き込み終了LBAが、ブロック(消去ブロック)の末尾に一致するか否かを判定する。すなわち、
書き込み終了LBA%N=0
上記式が成立するか否かを判定する。
書き込み終了LBA%N=0
上記式が成立するか否かを判定する。
書き込み終了LBAが、ブロック(消去ブロック)の末尾に一致すると判定された場合(ステップS105でYes)は、ステップS106に進む。ステップS106では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合(ステップS106でYes)は、ステップS113に進み、パターンCのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(4)の処理例に対応する。
また、ステップS106において、書き込みデータが複数ブロックにまたがらないと判定した場合(ステップS106でNo)は、ステップS115に進み、パターンAのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(2)の処理例に対応する。
ステップS105において、書き込み終了LBAがブロック(消去ブロック)の末尾に一致しないと判定された場合(ステップS105でNo)は、ステップS107に進む。ステップS107では、書き込みデータが複数ブロックにまたがるか否かを判定する。書き込みデータが複数ブロックにまたがる場合(ステップS107でYes)は、ステップS114に進み、パターンDのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(5)の処理例に対応する。
また、ステップS107において、書き込みデータが複数ブロックにまたがらないと判定した場合(ステップS107でNo)は、ステップS115に進み、パターンAのリードモディファイライト(RMW)処理を行なう設定とする。この場合は、図2(2)の処理例に対応する。
このように、RMWの実行の有無およびパターンを決定した上でデータ書き込み処理が行われる。
[2.記録先メディアがフラッシュメモリである場合の処理例]
次に、記録先メディアがフラッシュメモリである場合、リードモディファイライト(RMW)処理をデバイスドライバ等のホスト側で実行するか、フラッシュメモリ側の制御部、すなわち、メディア側制御部において実行するかを決定して、データ書き込み処理を行う処理例について説明する。
次に、記録先メディアがフラッシュメモリである場合、リードモディファイライト(RMW)処理をデバイスドライバ等のホスト側で実行するか、フラッシュメモリ側の制御部、すなわち、メディア側制御部において実行するかを決定して、データ書き込み処理を行う処理例について説明する。
なお、本処理例を実行する情報処理装置は、
(a)データ記録を行うメディアとしてフラッシュメモリ、
(b)メディア(フラッシュメモリ)に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス、
(c)メディア(フラッシュメモリ)に記録するデータをメディアデバイスに出力するホスト制御部を有するホスト、
少なくともこれらの構成要素を持つ情報処理装置である。
(a)データ記録を行うメディアとしてフラッシュメモリ、
(b)メディア(フラッシュメモリ)に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス、
(c)メディア(フラッシュメモリ)に記録するデータをメディアデバイスに出力するホスト制御部を有するホスト、
少なくともこれらの構成要素を持つ情報処理装置である。
ホスト制御部は、メディア(フラッシュメモリ)に対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う。具体的には、ホスト制御部は、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う。
図4、図5のフローチャートを参照してリードモディファイライト(RMW)処理の実行主体の決定シーケンスについて説明する。この処理は、フラッシュメモリを記録メディアとして有する情報処理装置のホスト制御部において実行される。
まず、ステップS201において、記録先として選択されたメディアの種別を判定する。例えばハードディスクとフラッシュメモリの双方を記録メディアとして選択利用することが可能なビデオカメラ等の装置であれば、ユーザのメディア選択情報に基づいて判定する。
ステップS202においてメディア種別がフラッシュメモリでないと判定した場合は処理は終了する。本処理例は、フラッシュメモリが記録メディアとてして選択された場合の処理について説明するフローである。なお、後段で、記録メディアがハードディスクの場合におけるRMW実行主体の決定シーケンスについて説明する。
ステップS202においてメディア種別がフラッシュメモリであると判定した場合は、ステップS203に進む。ステップS203ではフラッシュメモリに設定されている消去ブロックのサイズNを取得する。
次に、ステップS204において、2種類のメディア転送レート、すなわち、
(a)メディア側においてRMW処理を実行した場合、
(b)ホスト(デバイスドライバ)側においてRMW処理を実行した場合、
これらの2種類のデータ書き込み処理速度としてのメディア転送レートを算出する。この算出処理について、図5のフローを参照して説明する。
(a)メディア側においてRMW処理を実行した場合、
(b)ホスト(デバイスドライバ)側においてRMW処理を実行した場合、
これらの2種類のデータ書き込み処理速度としてのメディア転送レートを算出する。この算出処理について、図5のフローを参照して説明する。
図5に示すフローは、上記(a),(b)のRMWのいずれが高速に実行できるかを確認する処理である。この処理は、仮のデータの試験的な書き込み処理によって行われることになる。
まず、ステップS251において、
書き込み開始LBA=N/2、
書き込みサイズ=N/4
とした書き込み試験データを設定する。このデータはリードモディファイライト(RMW)処理が必ず実行されるデータとして設定されるものである。
書き込み開始LBA=N/2、
書き込みサイズ=N/4
とした書き込み試験データを設定する。このデータはリードモディファイライト(RMW)処理が必ず実行されるデータとして設定されるものである。
次に、ステップS252において、書き込み(Write)コマンドを、メディアへ発行して、処理時間、すなわちRMW処理を伴うデータ書き込み終了までの処理時間から処理速度(転送レート)を計測する。
この計測時間は、メディア側でのRMW処理を伴うデータ書き込み終了までの処理時間であり、処理時間から処理速度(転送レート)が算出される。
この計測時間は、メディア側でのRMW処理を伴うデータ書き込み終了までの処理時間であり、処理時間から処理速度(転送レート)が算出される。
次に、ステップS253において書き込み開始LBAを1つのブロックサイズ分ずらして更新し、ステップ254において、書き込み開始LBAが終了LBA以上になったか否かを判定し、なっていない場合は更新された書き込み開始位置からデータ書き込みを繰り返し実行する。すなわち、複数回の書き込み処理を実行して、その平均の処理時間を最終的なメディア側の書き込み処理における処理速度(転送レート)とする。
ステップ254において、書き込み開始LBAが終了LBA以上になったと判定した場合は、ステップS255以下の処理を実行する。ステップS255以下の処理は、ホスト(デバイスドライバ)側のRMW処理を伴うデータ書き込み処理の処理速度(転送レート)の計測処理である。
ステップS255において、
書き込み開始LBA=N/2、
書き込みサイズ=N/4
とした書き込み試験データを設定する。このデータはリードモディファイライト(RMW)処理が必ず実行されるデータとして設定されるものである。
書き込み開始LBA=N/2、
書き込みサイズ=N/4
とした書き込み試験データを設定する。このデータはリードモディファイライト(RMW)処理が必ず実行されるデータとして設定されるものである。
次に、ステップS256において、ホスト側でのリードモディファイライト(RMW)処理を行い、処理時間(転送レート)を計測する。すなわち、
1.開始LBA=N/2、読み出しサイズ=NでReadコマンド発行
2.メモリ上でデータ更新
3.開始LBA=開始LBA/N、書き込みサイズ=NでWriteコマンド発行
これらの処理の処理時間から処理速度(転送レート)を計測する。
この計測時間は、ホスト側でのRMW処理を伴うデータ書き込み終了までの処理時間である。
1.開始LBA=N/2、読み出しサイズ=NでReadコマンド発行
2.メモリ上でデータ更新
3.開始LBA=開始LBA/N、書き込みサイズ=NでWriteコマンド発行
これらの処理の処理時間から処理速度(転送レート)を計測する。
この計測時間は、ホスト側でのRMW処理を伴うデータ書き込み終了までの処理時間である。
次に、ステップS257において書き込み開始LBAを1つのブロックサイズ分ずらして更新し、ステップ258において、書き込み開始LBAが終了LBA以上になったか否かを判定し、なっていない場合は更新された書き込み開始位置からデータ書き込みを繰り返し実行する。すなわち、複数回の書き込み処理を実行して、その平均の処理時間を最終的なホスト側の書き込み処理における処理速度(転送レート)とする。
ステップ258において、書き込み開始LBAが終了LBA以上になったと判定した場合は処理を終了する。
これらの処理によって、
メディア転送レートA:メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度
メディア転送レートB:ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度
これらの2つの転送レートが算出されることになる。
これらの処理によって、
メディア転送レートA:メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度
メディア転送レートB:ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度
これらの2つの転送レートが算出されることになる。
図4の処理フローに戻り、説明を続ける。ステップs204において、図5を参照して説明した処理によって、上記の2つの転送レートA,Bが算出される。次に、ステップS205において、算出した2つのメディア転送レートA,Bを比較する。
メディア転送レートA<メディア転送レートB
上記式が成立しない場合、すなわち、
メディア転送レートA(メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)が、メディア転送レートB(ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)より小さくない場合は、ステップS206に進む。
上記式が成立しない場合、すなわち、
メディア転送レートA(メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)が、メディア転送レートB(ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)より小さくない場合は、ステップS206に進む。
すなわち、メディア側制御部における処理速度のほうが速い場合は、ステップS206に進み、メディア側においてリードモディファイライト(RMW)を実行する。
一方、
メディア転送レートA<メディア転送レートB
上記式が成立する場合、すなわち、
メディア転送レートA(メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)が、メディア転送レートB(ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)より小さい場合は、ステップS207に進む。
メディア転送レートA<メディア転送レートB
上記式が成立する場合、すなわち、
メディア転送レートA(メディア側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)が、メディア転送レートB(ホスト側制御部においてRMW処理、データ書き込み処理を実行した場合の処理速度)より小さい場合は、ステップS207に進む。
すなわち、ホスト側制御部における処理速度のほうが速い場合は、ステップS207に進み、ホスト側においてリードモディファイライト(RMW)を実行する。
このように、試験的なデータを適用したリードモディファイライト(RMW)処理の実行速度(転送レート)を計測し、この計測情報に基づいて、リードモディファイライト(RMW)処理をホスト側で実行するか、メディア側で実行するかを決定して、処理を行う。
なお、図5に示すフローに従って計測した転送レート情報は、不揮発性メモリ等に格納し、必要に応じて読み出す構成としてもよい。
[3.記録先メディアが、ハードディスク(HDD)である場合の処理例]
次に、図6以下を参照して記録先メディアが、ハードディスク(HDD)である場合、リードモディファイライト(RMW)処理をホスト側で実行するか、メディア側で実行するかを決定して処理を行う例について説明する。
次に、図6以下を参照して記録先メディアが、ハードディスク(HDD)である場合、リードモディファイライト(RMW)処理をホスト側で実行するか、メディア側で実行するかを決定して処理を行う例について説明する。
なお、本処理例を実行する情報処理装置は、
(a)データ記録を行うメディアとしてハードディスク、
(b)メディア(ハードディスク)に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス(HDD)、
(c)メディア(ハードディスク)に記録するデータをメディアデバイス(HDD)に出力するホスト制御部を有するホスト、
これらの構成要素を持つ情報処理装置である。
(a)データ記録を行うメディアとしてハードディスク、
(b)メディア(ハードディスク)に対するデータ記録制御を実行するメディア制御部を持つメディアデバイス(HDD)、
(c)メディア(ハードディスク)に記録するデータをメディアデバイス(HDD)に出力するホスト制御部を有するホスト、
これらの構成要素を持つ情報処理装置である。
図6に、リードモディファイライト(RMW)処理をホスト側のホスト制御部で実行する場合と、メディア側のメディア制御部で実行する場合の処理例を示す。図6には、
(A)ホスト側でリードモディファイライト(RMW)処理を実行、
(B)メディア側でリードモディファイライト(RMW)処理を実行、
これらの処理構成を示している。
(A)ホスト側でリードモディファイライト(RMW)処理を実行、
(B)メディア側でリードモディファイライト(RMW)処理を実行、
これらの処理構成を示している。
図6に示すように、ホスト210には、記録データの生成処理などを行うアプリケーション211、例えばFATなどの特定のデータ記録再生ルールによってデータ記録再生制御を行うファイルシステム212、メディアに対応して設定されたデバイスドライバ213が含まれる。これらの構成要素はホスト制御部の一部を構成している構成要素である。ホストとメディア(HDD)220は、ATAインタフェースを介してデータ転送を行う。
図6(A)に示すように、ホスト210側でリードモディファイライト(RMW)処理を行なう場合、デバイスドライバ213においてRMW処理を行う。RMW処理はファイルシステム212から渡された書き込み(Wirte)データにRMWが必要か否かをデバイスドライバ213内のRMW処理判定ブロック214で判定し、必要に応じてRMW処理を行う。
一方、図6(B)に示すように、メディア側でリードモディファイライト(RMW)処理を行なう場合は、メディア(HDD)220内のメディア制御部221の制御の下でリードモディファイライト(RMW)処理を行うことになる。デバイスドライバ213内ではファイルシステム212から渡された書き込み(Wirte)データをそのままメディア(HDD)220に発行することになる。
データ書き込みに際して、リードモディファイライト(RMW)処理が必要であるか否かを判定する処理について、図7のフローチャートを参照して説明する。このフローに従った判定処理はホスト制御部において実行される。具体的には、図6に示すファイルシステム212から書き込み(Wirte)データを渡されたデバイスドライバ213内のRMW処理判定ブロック214において行われる。
まず、ステップS301において、書き込み開始LBAが、メディア側の書き込みデータ単位の物理セクタの開始セクタに一致するか否かを判定する。一致する場合は、ステップS302に進み、さらに、書き込み終了LBAが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致するか否かを判定する。一致する場合はリードモディファイライト(RMW)処理は不要であると判断して判定処理を終了する。
この場合の処理例が、図8の(1)リードモディファイライト(RMW)処理が不要な場合の処理例に対応する。
また、ステップS301において、書き込み開始LBAが、メディア側の書き込みデータ単位の物理セクタの開始セクタに一致しないと判定した場合は、ステップS303に進む。ステップS303では、書き込み開始LBAを含む物理セクタにおいてリードモディファイライト(RMW)処理が必要であると判断する。
さらに、ステップS302に進み、さらに、書き込み終了LBAが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致するか否かを判定する。一致する場合は判定処理を終了する。この場合は、書き込み開始LBAを含む物理セクタにおいてのみリードモディファイライト(RMW)処理が必要である。この場合の処理例が、図8の(2)書き込み開始LBAにのみリードモディファイライト(RMW)処理が必要な場合の処理例に対応する。
一方、ステップS302において、書き込み終了LBAが、メディア側の書き込みデータ単位の物理セクタの終了セクタに一致しない場合は、ステップS304に進む。ステップS304では、書き込み終了LBAを含む物理セクタにおいてリードモディファイライト(RMW)処理が必要であると判断する。
この場合は、書き込み開始LBAを含む物理セクタと、書き込み終了LBAを含む物理セクタにおいてリードモディファイライト(RMW)処理が必要である。この場合の処理例が、図8の(3)に示す処理例に対応する。
このように、ファイルシステム212から書き込み(Wirte)データを渡されたデバイスドライバ213内のRMW処理判定ブロック214は、データ書き込み処理に際してリードモディファイライト(RMW)処理が必要であるか否か、およびその態様を判定する。
なお、ホスト側でリードモディファイライト(RMW)処理を行う場合には、メディア側からリードモディファイライト(RMW)処理に必要とする物理セクタの読み出しを行うことが必要であり、物理セクタにいくつの論理セクタが含まれるかといった情報をパラメータとして持つ必要がある。
また、メディア(HDD)のタイプも様々であり、ホスト側でのリードモディファイライト(RMW)処理を許容するモデルもあるが、メディア(HDD)側でのみリードモディファイライト(RMW)処理を行う設定としたメディア(HDD)もある。
まず、ホストは、ホスト側でリードモディファイライト(RMW)処理を実行するか否かを決定する処理を行ない、さらに、ホスト側でリードモディファイライト(RMW)処理を実行する場合には、そのリードモディファイライト(RMW)処理を行うためのパラメータを決定することが必要となる。例えば、物理セクタ中の論理セクタ数を示すパラメータを決定することが必要となる。リードモディファイライト(RMW)処理を行うためのパラメータを決定することが可能な情報が、メディア側から得られれば、ホスト側でのリードモディファイライト(RMW)処理は実行できることになる。
このようなパラメータ決定処理を行うための手法として、以下に示す4つの処理例について説明する。
(処理例1)HDDのモデルナンバーから決定する
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定
(処理例3)読み出し(Read)コマンドを適用して決定
(処理例4)書き込み(Write)処理における応答時間を測定して決定
以下、これらの4つの処理例について説明する。
(処理例1)HDDのモデルナンバーから決定する
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定
(処理例3)読み出し(Read)コマンドを適用して決定
(処理例4)書き込み(Write)処理における応答時間を測定して決定
以下、これらの4つの処理例について説明する。
(処理例1)HDDのモデルナンバーから決定する
処理例1は、HDDのモデルナンバーに基づいて、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
処理例1は、HDDのモデルナンバーに基づいて、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
情報処理装置のホスト側の制御部は、情報処理装置に装着されたメディア(HDD)のモデルナンバーを取得して、ホスト側でのリードモディファイライト(RMW)処理の実行可否と、実行する場合のパラメータを決定することができる。
HDDのモデルナンバーに対応して、物理セクタサイズは固定されており、ホスト側の制御部は、例えば図9に示すようなHDDモデルとRMWの実行主体情報とパラメータの対応テーブル(RMWテーブル)をメモリに保持しておく。HDDへのアクセス時に、ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理を行うことで、HDDのモデルナンバーを取得すれば、メモリに記憶した図9に示すテーブルに基づいて、リードモディファイライト(RMW)処理に必要なパラメータを決定することができる。
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定
処理例2は、ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
処理例2は、ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
ホスト側の制御部は、メディア(HDD)に対して、デバイス確認(IDENTIFY DEVICE)処理を実行し、デバイス情報を取得することができる。IDENTIFY DEVICEによって取得できる512Byteデータに含まれる[WORD106]から、1つの物理セクタに対応する論理セクタサイズを得ることができる。
IDENTIFY DEVICEによって取得できる512Byteデータに含まれる[WORD106]は図10に示すデータ構成を有し、登録データ251が、1つの物理セクタに対応する論理セクタサイズに関する情報である。ホスト側の制御部は、この情報によってリードモディファイライト(RMW)処理に必要なパラメータを決定することができる。
(処理例3)読み出し(Read)コマンドを適用して決定
処理例3は、読み出し(Read)コマンドを適用して、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
処理例3は、読み出し(Read)コマンドを適用して、リードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
メディア(HDD)内にリードモディファイライト(RMW)処理を行う機能が実装されていないものは、物理セクタ単位でしかデータ読み出し(READ)処理が実行出来ない。この場合、ホスト側の制御部は、LBA0から1つのセクタ単位のデータ読み出し(Read)コマンドをメディア側に発行し、セクタ数をインクリメントして必要なデータの読み出しを行う。
1つの物理セクタに含まれる論理セクタ数が[N]の場合、セクタ数[N]の読み出し(Read)コマンドを発行したときに、メディア側から読み出し完了(Read OK)の応答が得られる。従って、読み出し完了(Read OK)の応答が得られるタイミングを計測することで、1つの物理セクタに含まれる論理セクタ数[N]を取得することができる。
図11に示すフローに従って、読み出し(Read)コマンドを適用して、リードモディファイライト(RMW)処理に必要なパラメータを取得するシーケンスについて説明する。すなわち、1つの物理セクタに含まれる論理セクタ数[N]を取得する処理シーケンスである。この処理は、ホスト側の制御部において読み出し(Read)コマンドをメディア(HDD)側に発行することで実行される。
まず、ステップS351において、1つの物理セクタに含まれる論理セクタ数[N]に対応する初期値としてN=1の初期値設定を行う。ステップS352において、LBA0から1つのセクタ単位のデータ読み出し(Read)コマンドをメディア側に発行する。ステップS353において、メディア側から読み出し完了(Read OK)の応答が得られたか否かを判定する。読み出し完了(Read OK)の応答が得られた場合、ステップS354に進み、設定した[N]が、1つの物理セクタに含まれる論理セクタ数[N]であると判定する。
ステップS353において、メディア側から読み出し完了(Read OK)の応答が得られない場合は、ステップS355に進み、N=N+1とする更新を実行する。次に、ステップS356において、Nが、予め決定されるNの許容最大値2Xを超えていないかを判定する。超えていた場合には、Nの決定は不可能と判定して処理は終了する。超えていない場合は、更新された[N]を利用して再度、ステップS352以下の処理を実行する。この処理によって、1つの物理セクタに含まれる論理セクタ数[N]を算出する。
(処理例4)書き込み(Write)処理における応答時間を測定して決定
処理例4は、書き込み(Write)処理における応答時間を測定してリードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
処理例4は、書き込み(Write)処理における応答時間を測定してリードモディファイライト(RMW)処理に必要なパラメータを決定する処理例である。
先に、図1(B)を参照して説明したように、リードモディファイライト(RMW)処理が発生しないデータ書き込みの場合は書き込み(Write)処理のみによって処理が行われるが、リードモディファイライト(RMW)処理が発生する場合、書き込み処理の他、読み出し(Read)処理、モディファイ(Modify)処理が発生する。このため、ホストからの要求が書き込み(Write)コマンド一回の場合でも、リードモディファイライト(RMW)処理が発生した場合は応答時間が増大する。この時間を測定することにより、物理セクタに対応する論理セクタ数を判定する。
書き込み(Write)処理における応答時間を測定してリードモディファイライト(RMW)処理に必要なパラメータを決定する処理シーケンスについて、図12に示すフローチャートを参照して説明する。このフローに従った処理はホスト側の制御部において実行される。
まずステップS401において、ホストは、ファイルシステム(FiileSystem)経由で、メディア(HDD)の未使用領域を検索する。メディアの未使用領域から、開始LBAが2xの整数倍、かつ2x論理セクタ数分の未使用領域を検索する。
見つかった場合(ステップS401でYes)は、ステップS402に進み、1つの物理セクタに含まれる論理セクタ数[M]に対応する初期値としてM=1の初期値設定を行う。ステップS403において、その領域に対し、書き込み(Weite)処理を行う。なお、xが取り得る最大値は15となる。これは、ATAにて規定されているIDENTIFY DEVICEのWORD106のフィールドにて表現可能な最大数とした。この場合、物理セクタに含まれる論理セクタ数の最大値は32768となる。論理セクタサイズが512Byteの場合はRMWするサイズは16MByteと大きな値となるので、ホスト機器のシステム構成によってはRMWが出来ない可能性もある。システムよってはx=2などの値で十分である。
メディアに未使用領域が見つかった場合、ステップS403において、実際に書き込み(Write)処理を行う。見つかったLBA=Aとすると、LBA=AからMセクタの書き込み(Write)を行う。ステップS404において、書き込み完了を示すメディアからの応答時間RMを受領してメモリに保持する。Mは1〜2Xまでインクリメント(ステップS407〜S408)する。
応答時間をRMとすると、Mが、物理セクタに含まれる論理セクタ数となったときはリードモディファイライト(RMW)処理を行うことなくデータ書き込みが可能となるので、RMはRM−1に対して十分に小さい応答時間となる。すなわち、ステップS405での判定処理で[Yes]となる。この結果として、ステップS406において、[M]を1つの物理セクタに含まれる論理セクタとして決定することができる。
このように、ホスト側の制御部は、ホスト側でリードモディファイライト(RMW)処理を実行するためのパラメータを上記の(処理例1)〜(処理例4)のいずれかの手法を適用して決定することができる。すなわち、
(処理例1)HDDのモデルナンバーから決定する
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定
(処理例3)読み出し(Read)コマンドを適用して決定
(処理例4)書き込み(Write)処理における応答時間を測定して決定
以下、これらの4つの処理例のいずれかを適用してパラメータを決定することができる。
(処理例1)HDDのモデルナンバーから決定する
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定
(処理例3)読み出し(Read)コマンドを適用して決定
(処理例4)書き込み(Write)処理における応答時間を測定して決定
以下、これらの4つの処理例のいずれかを適用してパラメータを決定することができる。
ホスト側の制御部では、上記の処理例1〜4のいずれかのみを適用してパラメータの決定を行う構成としてもよいが、予め定めたシーケンスに従って、処理例1〜4を順次適用して、パラメータを決定する構成としてもよい。このシーケンス設定例について、図13のフローチャートを参照して説明する。
図13のフローチャートは、上述の処理例1〜4を順次適用して、パラメータを決定するシーケンスである。ホスト側の制御部において実行されるシーケンスである。
まず、ステップS501において、ホスト側制御部は、メディア(HDD)に対してメディア確認処理(IDENTIFY DEVICE)を実行し、モデルナンバーを取得する。
ステップS502において、取得したモデルナンバーがメモリに記憶したRMWテーブル(図9参照)に登録済みであるか否かを調べる。モデルナンバーがテーブルに登録されている場合は、ステップS503に進み、テーブルに登録されたパラメータ(物理セクタに対応する論理セクタ数)を適用してホスト側でのリードモディファイライト(RMW)処理を実行する。この処理は(処理例1)の適用処理となる。
ステップS502において、取得したモデルナンバーがメモリに記憶したRMWテーブル(図9参照)に登録済みでないと判定された場合は、ステップS504に進み、メディア確認処理(IDENTIFY DEVICE)によって得られた[WORD106]の登録データを調べる(図10参照)。ここのフィールドに、パラメータ(物理セクタに対応する論理セクタ数)が記録されていれば、ステップS505に進む。ステップS505においては、[WORD106]に記録されたパラメータ(物理セクタに対応する論理セクタ数)を適用してホスト側でのリードモディファイライト(RMW)処理を実行する。この処理は(処理例2)の適用処理となる。
ステップS504で、メディア確認処理(IDENTIFY DEVICE)によって得られた[WORD106]に、パラメータ(物理セクタに対応する論理セクタ数)が記録されていない場合は、ステップS507に進む。
ステップS507では、メディアに対するデータ読み出し(Read)コマンドを発行して、データ読み出し(Read)によるパラメータ算出処理を行う。この処理は、図11に示すフローチャートに従った処理(処理例3)に対応する処理である。ステップS508において、データ読み出し(Read)コマンドの適用処理によって、物理セクタに2つ以上の論理セクタが含まれると判定可能である場合は、データ読み出し(Read)コマンドの適用処理によって判定した[N]をパラメータ(物理セクタに対応する論理セクタ数)として決定して処理を行う。
また、データ読み出し(Read)コマンドの適用処理によって、物理セクタに2つ以上の論理セクタが含まれると判定可能でない場合は、さらに、ステップS509において、書き込み(Write)コマンド発行処理を行い、データ書き込み(Writye)コマンド発行による応答時間に基づくパラメータ算出処理を行う。この処理は、図12に示すフローチャートに従った処理(処理例4)に対応する処理である。
このようにして、ホストは、処理例1〜4を順次適用してリードモディファイライト(RMW)処理に適用するパラメータ(物理セクタに対応する論理セクタ数)を決定することができる。
なお、ステップS503の処理例1では、リードモディファイライト(RMW)処理をホストとメディア側のどちらで行うかをテーブル(図9)の情報によって決定することができる。
また、ステップS507のデータ読み出し(Read)コマンドの適用処理によって、パラメータを決定した場合は、メディア側でのリードモディファイライト(RMW)処理ができないことが前提であり、すべてホスト側でリードモディファイライト(RMW)処理を行うと決定する。
ステップS505の処理例2によるメディア確認処理(IDENTIFY DEVICE)によって得られた[WORD106]の登録データに従ったパラメータ決定の場合と、ステップS509の処理例4のデータ書き込み(Write)コマンドの適用によるパラメータ決定処理の場合は、リードモディファイライト(RMW)処理をホスト側で行うべきか、デバイス側で行うべきかの判断はできない。
そこで、事前にホスト側またはメディア側のどちらでリードモディファイライト(RMW)処理を行うかの優先順位を決めておく。たとえば、ホスト側にリードモディファイライト(RMW)処理を実行する十分なリソースが無い場合は、メディア側でリードモディファイライト(RMW)処理を優先的に実行させる設定とするなどである。また、高速データ転送が要求される場合は、ホスト側でもデバイス側でもリードモディファイライト(RMW)処理を行わないという選択肢もあり得る。
ホスト側またはメディア側のどちらでリードモディファイライト(RMW)処理を行うかの優先順位の設定例としては、例えば以下の例がある。
(A)ホスト側が、リードモディファイライト(RMW)処理を優先的に実行する。
(A1)ホスト側にリードモディファイライト(RMW)処理機能がある
(A2)接続されたメディアデバイスが未知のデバイスである
(A)ホスト側が、リードモディファイライト(RMW)処理を優先的に実行する。
(A1)ホスト側にリードモディファイライト(RMW)処理機能がある
(A2)接続されたメディアデバイスが未知のデバイスである
(B)メディア側が、リードモディファイライト(RMW)処理を優先的に実行する。
(B1)ホスト側に十分なリソースが無い
(B1)ホスト側に十分なリソースが無い
もし、HDDが情報処理装置に内蔵されたメディアであり、交換する可能性が低いものである場合は、上記のようなパラメータの決定およびリードモディファイライト(RMW)処理の実行主体の決定処理は一回実行すればよい。例えば、装置の製造時に一回判定を行い、その結果をフラッシュメモリなとり不揮発性メモリに保持しておくことができる。装置の起動時に、このデータを読み出して処理を行うことができる。
また、メディアがリムーバブルメディアの様なユーザによって容易に交換可能なHDDの場合は、メディアの交換後に新たな判定処理を実行して判定結果をフラッシュメモリなとり不揮発性メモリに保持しておけばよい。なお、情報処理装置には、メディアの交換発生を検出するスイッチなどを設置し、交換処理が発生しなければ装置内のメモリの記憶データを使用し、メディア交換が検出された場合は再度判定処理を実行してメモリの格納データを更新する処理を行う。このようにすれば、メディア交換することが前提の装置でも、判定処理回数を最低限に抑えることが可能となる。
図14に示すフローチャートを参照して、メディアがリムーバルメディアであり、メディアの着脱検出を実行して、リードモディファイライト(RMW)処理におけるパラメータの決定などの判定処理を行うシーケンスについて説明する。この処理は、情報処理装置内のホスト側の制御部において実行される。実行タイミングは、例えば装置の起動時、あるいはデータの記録開始時などである。
なお、このフローは、装置に装着済みのメディアについては、すでに、例えば先に図13を参照して説明したフローに従った処理が実行され、リードモディファイライト(RMW)処理をホスト側で実行するか、あるいはメディア側で実行するかの判定結果と、リードモディファイライト(RMW)処理を実行する際のパラメータについて決定済みであり、これらの情報がメモリに記憶されているものとする。
まず、ステップS601において、情報処理装置からメディアが取り外されたか否かを判定する。取り外されていない場合は、ステップS602に進み、不揮発性メモリにリードモディファイライト(RMW)処理の実行主体情報とパラメータ情報が記録されているか否かを判定する。保持されている場合は、ステップS603に進み、メモリに保持されているデータに従ってリードモディファイライト(RMW)処理を実行する設定とする。
ステップS601において、情報処理装置からメディアが取り外されたと判定したばあい、およびステップS602において装置内のメモリにリードモディファイライト(RMW)処理に適用するためのデータが格納されていないと判定した場合は、ステップS604に進み、例えば先に図13を参照して説明したフローに従った処理を実行する。すなわち、リードモディファイライト(RMW)処理をホスト側で実行するか、あるいはメディア側で実行するかと、リードモディファイライト(RMW)処理を実行する際のパラメータを決定し、ステップS605において、これらの判定結果データをメモリに格納する。
上述した実施例では、リードモディファイライト(RMW)処理をホスト側で実行するか、あるいはメディア側で実行するかについての判定処理を、各処理例において以下のように設定していた。
(処理例1)HDDのモデルナンバーから決定する場合、
この場合は、装置のメモリに格納した図9に示すテーブルの設定に従って決定する。
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定、
この場合は、予めRMW実行主体を決定しておき、その決定情報に従う(図13のフローのステップS506)
(処理例3)読み出し(Read)コマンドを適用して決定
この場合は、メディア側にRMW実行機能がないので、ホスト側で実行する。
(処理例4)書き込み(Write)処理における応答時間を測定して決定
この場合は、予めRMW実行主体を決定しておき、その決定情報に従う(図13のフローのステップS506)
このような設定とした例を説明した。
(処理例1)HDDのモデルナンバーから決定する場合、
この場合は、装置のメモリに格納した図9に示すテーブルの設定に従って決定する。
(処理例2)ATAインタフェースを介したデバイス確認(IDENTIFY DEVICE)処理に基づいて決定、
この場合は、予めRMW実行主体を決定しておき、その決定情報に従う(図13のフローのステップS506)
(処理例3)読み出し(Read)コマンドを適用して決定
この場合は、メディア側にRMW実行機能がないので、ホスト側で実行する。
(処理例4)書き込み(Write)処理における応答時間を測定して決定
この場合は、予めRMW実行主体を決定しておき、その決定情報に従う(図13のフローのステップS506)
このような設定とした例を説明した。
しかし、リードモディファイライト(RMW)処理は、多くの場合、ホスト側で実行するより、メディア側で行う方が高速に実行可能となる場合が多い。しかし、ホスト側の機能が高い場合は、ホスト側で実行した方が高速に処理可能な場合もある。
ホストとメディアの双方にリードモディファイライト(RMW)処理機能を有している場合、高速にリードモディファイライト(RMW)処理を実行できる方を実行主体として選択する構成としてもよい。
このような実行主体の選択構成を行うための条件としては、以下の条件を満足することが必要である。
*ホスト、メディア両方にリードモディファイライト(RMW)処理機能がある。
*物理セクタサイズが既知である
*リードモディファイライト(RMW)処理速度を測定するためのメディア空き領域がある
これらの条件をすべて満足する場合には、ホストとメディア双方に、試験的なリードモディファイライト(RMW)処理を実行させて、処理時間を測定し、短い方をリードモディファイライト(RMW)処理の実行主体として選択するといった設定が可能である。
*ホスト、メディア両方にリードモディファイライト(RMW)処理機能がある。
*物理セクタサイズが既知である
*リードモディファイライト(RMW)処理速度を測定するためのメディア空き領域がある
これらの条件をすべて満足する場合には、ホストとメディア双方に、試験的なリードモディファイライト(RMW)処理を実行させて、処理時間を測定し、短い方をリードモディファイライト(RMW)処理の実行主体として選択するといった設定が可能である。
このような試験的なリードモディファイライト(RMW)処理を実行させてリードモディファイライト(RMW)処理の実行主体を決定する処理シーケンスについて、図15に示すフローチャートを参照して説明する。図15に示すフローは情報処理装置のホスト側の制御部の制御下で実行される。
ステップS701において、メディアにリードモディファイライト(RMW)処理速度を測定するための空き領域があるか否かを確認する。具体的には、論理アドレス(LBA)=Aからn論理セクタサイズ分の連続した空き領域があり、かつ、リードモディファイライト(RMW)処理が発生するAとnの組み合わせが存在するか否かを判定する。存在しない場合には、速度測定処理のためのリードモディファイライト(RMW)処理は実行できないので、処理を終了する。なお、Aとnの組み合わせはAが物理セクタ境界、かつnが物理セクタ数の整数倍という場合(つまり、RMWが発生しない)以外なら何でもよい。
ステップS701において、メディアにリードモディファイライト(RMW)処理速度を測定するための空き領域があると判定した場合は、ステップS702に進む。
ステップS702では、ホスト側において、リードモディファイライト(RMW)処理を行い、論理アドレス(LBA)=Aからn論理セクタサイズ分の書き込み(Write)処理を行い、その処理の開始から完了までの処理時間に相当する応答時間RHostを測定する。
次に、ステップS703において、メディア側において、リードモディファイライト(RMW)処理を行わせて、論理アドレス(LBA)=Aからn論理セクタサイズ分の書き込み(Write)処理を行い、その処理の開始から完了までの処理時間に相当する応答時間RMediaを測定する。
ステップS704において、
ホスト側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RHost]と、メディア側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RMedia]とを比較する。
ホスト側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RHost]と、メディア側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RMedia]とを比較する。
ホスト側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RHost]が、メディア側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RMedia]より短い場合は、ステップS705に進み、リードモディファイライト(RMW)処理の実行主体をホスト側として設定する。
一方、メディア側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RMedia]が、ホスト側でリードモディファイライト(RMW)処理を実行した場合の処理時間[RHost]より短い場合は、ステップS706に進み、リードモディファイライト(RMW)処理の実行主体をメディア側として設定する。
このように、試験的なリードモディファイライト(RMW)処理を実行した場合の処理時間を測定してリードモディファイライト(RMW)処理の実行主体を決定すれば、より高速で処理を行なうことが可能となる。
[4.情報処理装置の構成例]
次に、上述した処理を実行する情報処理装置の構成例として、デジタルビデオカメラと、PCの装置構成例について、図16、図17を参照して説明する。
次に、上述した処理を実行する情報処理装置の構成例として、デジタルビデオカメラと、PCの装置構成例について、図16、図17を参照して説明する。
まず、図16を参照してデジタルビデオカメラの構成例について説明する。デジタルビデオカメラは、画像を撮像して、撮像することにより得た画像データをドライブ432を介してハードディスクなどの磁気ディスク、DVDなどの光ディスク、光磁気ディスク、フラッシュルモリなどの半導体メモリ等の各種情報記録媒体に記録する撮像モードと、画像入出力部414や音声入出力部416あるいは通信部431を通じて供給を受けたデータを記録媒体に記録したり、記録媒体に記録されているデータを再生したりするVTRモードとを備えたものである。
撮像モードは、動画を撮像すると共に、これと同時に収音するようにした音声とを記録媒体に記録する動画撮像モードと、静止画を撮像する静止画撮像モードとを備えている。また、VTRモード時においては、記録ボタンスイッチなどによって構成される操作入力部420を操作することにより供給されるデータの記録が行われるようにされ、再生ボタンスイッチを操作することにより記録媒体に記録されている目的とするデータを再生することができる。
図16に示すように、デジタルビデオカメラは、光学レンズ部411、光電変換部412、カメラ機能制御部402、画像信号処理部413、画像入出力部414、液晶ディスプレイ415、音声入出力部416、音声信号処理部417、通信部431、制御部(CPU)401、内蔵メモリ(RAM)418、内蔵メモリ(ROM)419、操作入力部420、情報記録媒体に対するドライブ432、さらに、各構成部に対する電力供給を行なう電源441を備えたものである。
制御部(CPU)401は、ROM419に格納された各種の処理プログラムに従って処理を実行する。RAM418は、各処理において途中結果を一時記憶するなど、主に作業領域として用いられる。前述した各処理フローを実行する場合にも、RAM418を作業領域としてプログラムの実行やデータ更新などが実行される。また、RAM418の一部は不揮発性メモリとして設定され、先に図9や図10を参照して説明した各種のテーブルを記録する。なお、ドライブ432を介して接続されるフラッシュメモリなどにこれらのデータを記録する設定としてもよい。
操作入力部420は、動画撮影モード、静止画撮影モード、VTRモードなどの動作モードを切り換えるモード切り換えキー、静止画の撮影のためのシャッターキー、動画を撮影するための撮影開始キー、録画キー、再生キー、停止キー、早送りキー、早戻しキーなどの種々の操作キーや機能キーなどを備え、ユーザからの操作入力を受け付けて、受け付けた操作入力に応じた電気信号を制御部(CPU)401に供給する。
制御部(CPU)401は、ユーザからの操作入力に応じて、目的とする処理を行うためのプログラムをROM419から読み出して実行し、各部を制御することによって、ユーザからの指示に応じた処理の制御を行う。制御部(CPU)401は必要に応じてリードモディファイライト処理の制御を実行する。さらに、上述した実施例で説明した各処理フローに従った処理を実行する。
デジタルビデオカメラは、メディアデバイス、すなわち情報記録媒体として、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等の各種メディア(情報記録媒体)を装着可能である。これらのメディアデバイスの一部にはメディア制御部が構成される。これらのメディアにドライブ432を介して各種の情報を記録し、また、これらのメディアに記録された情報を再生する。メディア制御部は必要に応じてリードモディファイライト処理を実行する。
次に、図17を参照して、上述した処理を実行する情報処理装置の一例としてのPCのハードウェア構成例について説明する。CPU(Central Processing Unit)501は、OS(Operating System)に対応する処理や、上述の実施例において説明した異なるファイルを利用したデータ記録、あるいはデータ再生処理などを実行するデータ処理部として機能する。制御部(CPU)501は必要に応じてリードモディファイライト処理の制御を実行する。さらに、上述した実施例で説明した各処理フローに従った処理を実行する。これらの処理は、情報処理装置のROM、ハードディスクなどのデータ記憶部に格納されたコンピュータ・プログラムに従って実行される。
ROM(Read Only Memory)502は、CPU501が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)503は、CPU501の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス504により相互に接続されている。前述した各処理フローを実行する場合にも、RAM503を作業領域としてプログラムの実行やデータ更新などが実行される。また、RAM503の一部は不揮発性メモリとして設定され、先に図9や図10を参照して説明した各種のテーブルを記録する。なお、ドライブ512を介して接続されるフラッシュメモリなどにこれらのデータを記録する設定としてもよい。
ホストバス504は、ブリッジ505を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス506に接続されている。
キーボード508、ポインティングデバイス509は、ユーザにより操作される入力デバイスである。ディスプレイ510は、液晶表示装置またはCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージで表示する。
HDD(Hard Disk Drive)511は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU501によって実行するプログラムや情報を記録または再生させる。ハードディスクは、例えば、画像データファイルの格納領域として利用されるとともに、データ処理プログラム等、各種コンピュータ・プログラムが格納される。
ドライブ512は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体521に記録されているデータまたはプログラムを読み出して、そのデータまたはプログラムを、インタフェース507、外部バス506、ブリッジ505、およびホストバス504を介して接続されているRAM503に供給する。
接続ポート514は、外部接続機器522を接続するポートであり、USB,IEEE1394等の接続部を持つ。接続ポート514は、インタフェース507、および外部バス506、ブリッジ505、ホストバス504等を介してCPU501等に接続されている。通信部515は、ネットワークに接続され、その他の情報処理装置との通信を実行する。
なお、HDD511や、リムーバブル記録媒体521の一部にはメディア制御部が構成される。これらのメディアに各種の情報を記録し、また、これらのメディアに記録された情報を再生する。メディア制御部は必要に応じてリードモディファイライト処理を実行する。
なお、図16、図17に示す情報処理装置の構成例は、装置の一例であり、情報処理装置は、図16、図17に示す構成に限らず、上述した実施例において説明した処理を実行可能な構成であればよい。
なお、上述した実施例では、非フラッシュメモリ系のメディアとしてハードディスクを例として説明したが、本発明は、ランダムアクセス可能なメディア全般に適用可能であり、ハードディスク以外のメディアに対しての処理として適用することも可能である。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の一実施例構成によれば、記録メディア(情報記録媒体)に対するデータ記録処理を行なう情報処理装置において、メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する。例えば、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度と、メディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体とする。また、本発明の一実施例構成によれば、リードモディファイライト処理の実行に必要となるパラメータを取得してメモリに記録する。これらの構成により、効率的なリードモディファイライト処理が可能となる。
11 物理セクタ
210 ホスト
211 アプリケーション
212 ファイルシステム
213 デバイスドライバ
214 RMW処理判定ブロック
220 メディア(HDD)
221 メディア制御部
251 登録データ
401 制御部(CPU)
402 カメラ機能制御部
411 光学レンズ部
412 光電変換部
413 画像信号処理部
414 画像入出力部
415 液晶ディスプレイ
416 音声入出力部
417 音声処理部
418 内蔵メモリ(RAM)
419 内蔵メモリ(ROM)
420 操作入力部
431 通信部
432 ドライブ
441 電源
501 CPU(Central Processing Unit)
502 ROM(Read-Only-Memory)
503 RAM(Random Access Memory)
504 ホストバス
505 ブリッジ
506 外部バス
507 インタフェース
508 キーボード
509 ポインティングデバイス
510 ディスプレイ
511 HDD(Hard Disk Drive)
512 ドライブ
514 接続ポート
515 通信部
521 リムーバブル記録媒体
522 外部接続機器
210 ホスト
211 アプリケーション
212 ファイルシステム
213 デバイスドライバ
214 RMW処理判定ブロック
220 メディア(HDD)
221 メディア制御部
251 登録データ
401 制御部(CPU)
402 カメラ機能制御部
411 光学レンズ部
412 光電変換部
413 画像信号処理部
414 画像入出力部
415 液晶ディスプレイ
416 音声入出力部
417 音声処理部
418 内蔵メモリ(RAM)
419 内蔵メモリ(ROM)
420 操作入力部
431 通信部
432 ドライブ
441 電源
501 CPU(Central Processing Unit)
502 ROM(Read-Only-Memory)
503 RAM(Random Access Memory)
504 ホストバス
505 ブリッジ
506 外部バス
507 インタフェース
508 キーボード
509 ポインティングデバイス
510 ディスプレイ
511 HDD(Hard Disk Drive)
512 ドライブ
514 接続ポート
515 通信部
521 リムーバブル記録媒体
522 外部接続機器
Claims (13)
- データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である情報処理装置。 - 前記ホスト制御部は、
リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
データの記録メディアの種類を判別し、記録メディアがフラッシュメモリである場合に、リードモディファイライト処理の実行主体をホスト制御部とした場合の処理速度とリードモディファイライト処理の実行主体をメディア制御部とした場合の処理速度を計測し、処理速度の速い方をリードモディファイライト処理の実行主体として決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスから受領するメディア確認情報をホスト側メモリに記録し、該メディア確認情報に基づいてリードモディファイライト処理の実行主体と、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスから受領するメディア確認情報から、メディアの物理セクタに対応する論理セクタ数を記述したデータを抽出し、抽出データによりリードモディファイライト処理の実行パラメータを決定する構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスに対するデータ読み出しコマンドを出力し、前記メディアデバイスからのコマンドに対する完了応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスに対するデータ書き込みコマンドを出力し、前記メディアデバイスからのコマンドに対する応答の受信状況を解析し、リードモディファイライト処理の実行パラメータであるメディアの物理セクタに対応する論理セクタ数を算出する請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアデバイスの着脱状況を検出し、メディアデバイスが情報処理装置から取り外され、新たなメディアデバイスが装着された場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアがハードディスクである場合に、リードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を行う構成である請求項1に記載の情報処理装置。 - 前記ホスト制御部は、
前記メディアがハードディスクである場合に、リードモディファイライト処理の実行パラメータを決定する処理を行う構成である請求項1に記載の情報処理装置。 - 情報処理装置において実行する情報処理方法であり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部は、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行する情報処理方法。 - 情報処理装置において情報処理を実行させるプログラムであり、
データ記録を行うメディアと、該メディアに対するデータ記録制御を実行するメディア制御部を有するメディアデバイスと、
前記メディアに記録するデータを前記メディアデバイスに出力するホスト制御部を有するホストを有し、
前記ホスト制御部に、
前記メディアに対するデータ記録に際して発生するリードモディファイライト処理の実行主体をホスト制御部とするかメディア制御部とするかを決定する処理を実行させるステップを有するプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008195703A JP2010033396A (ja) | 2008-07-30 | 2008-07-30 | 情報処理装置、および情報処理方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008195703A JP2010033396A (ja) | 2008-07-30 | 2008-07-30 | 情報処理装置、および情報処理方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010033396A true JP2010033396A (ja) | 2010-02-12 |
Family
ID=41737771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008195703A Pending JP2010033396A (ja) | 2008-07-30 | 2008-07-30 | 情報処理装置、および情報処理方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010033396A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016151850A (ja) * | 2015-02-17 | 2016-08-22 | 富士通株式会社 | ストレージ制御装置、制御プログラムおよび制御方法 |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
JP2017041076A (ja) * | 2015-08-19 | 2017-02-23 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
-
2008
- 2008-07-30 JP JP2008195703A patent/JP2010033396A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016151850A (ja) * | 2015-02-17 | 2016-08-22 | 富士通株式会社 | ストレージ制御装置、制御プログラムおよび制御方法 |
US9910599B2 (en) | 2015-02-17 | 2018-03-06 | Fujitsu Limited | Cache read-modify-write process control based on monitored criteria |
JP2017010396A (ja) * | 2015-06-24 | 2017-01-12 | 富士通株式会社 | ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム |
JP2017041076A (ja) * | 2015-08-19 | 2017-02-23 | 富士通株式会社 | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム |
US10191660B2 (en) | 2015-08-19 | 2019-01-29 | Fujitsu Limited | Storage control method, storage control device, and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070094442A1 (en) | Information processing apparatus, information processing method, and computer program | |
JP5263561B2 (ja) | ソリッドステート大容量記憶装置のためのデータストリーミング | |
JP5785484B2 (ja) | テープ媒体に格納されたデータのアクセス・シーケンスを決定するための方法、システム、およびコンピュータ・プログラム | |
JP2011039841A (ja) | データ移行方法、及びプログラム | |
US10956326B2 (en) | Storage system with data management and protection mechanism and method of operation thereof | |
WO2004003723A1 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP2013041547A5 (ja) | ||
JP5037734B2 (ja) | データの保護方法とシステム、記憶デバイス及び記憶デバイスコントローラ | |
JP2010033396A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
JP5729479B2 (ja) | 仮想テープ装置及び仮想テープ装置の制御方法 | |
JP4992515B2 (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2007193886A (ja) | ディスク装置、データ書込み制御方法およびコマンド制御方法 | |
US7904669B2 (en) | Information processing device, image pickup device, information processing method and computer program | |
JPWO2005041050A1 (ja) | 記録媒体、データ処理装置及びデータ処理方法 | |
JP2006293785A (ja) | 記録装置 | |
JP2008250918A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP5661313B2 (ja) | 記憶装置 | |
JP2010015385A (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
JP2010027140A (ja) | ハードディスクドライブ装置の読取装置及びハードディスクドライブ装置の読取装置を備えたコピー装置。 | |
JP2008217634A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP4391329B2 (ja) | 記録制御装置、記録制御方法、記録再生装置、記録制御プログラムおよび記録制御プログラムを記録した記録媒体 | |
JP2008262381A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP5489818B2 (ja) | 記録再生装置及びその制御方法 | |
JP2006260158A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2010135034A (ja) | 情報記録再生装置 |