(57)【要約】【課題】ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えること。【解決手段】ＲＡＩＤコントローラ１１１は、特定データを受信した場合に、該特定データをＨＤＤ１に設けられた第１記憶領域及びＨＤＤ２に設けられた第２記憶領域の双方に書き込み、前記第１記憶領域及び前記第２記憶領域のアクセススピードを取得し、該取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す構成を特徴とする。【選択図】図１
2010026961.tif 000002
【特許請求の範囲】
【請求項１】
ミラーリングシステムを構成する第１の記憶装置及び第２の記憶装置を制御する制御装置であって、
前記第１の記憶装置及び前記第２の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、
前記受信手段が特定データを受信した場合に、該特定データを前記第１の記憶装置に設けられた第１記憶領域及び前記第２の記憶装置に設けられた第２記憶領域の双方に書き込む書き込み手段と、
前記第１記憶領域及び前記第２記憶領域のアクセススピードを取得する取得手段と、
前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段と、
を備えたことを特徴とする制御装置。
【請求項２】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第１の記憶装置及び前記第２の記憶装置のいずれかが交換された場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記第１の記憶装置及び前記第２の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項１又は２に記載の制御装置。
【請求項５】
前記第１の記憶装置及び前記第２の記憶装置のいずれかに不良セクタが発生した場合、前記取得手段は前記アクセススピードの取得をすることを特徴とする請求項１又は２に記載の制御装置。
【請求項６】
前記第１の記憶装置及び前記第２の記憶装置は、磁気ディスク装置であることを特徴とする請求項１乃至５のいずれか１項に記載の制御装置。
【請求項７】
ミラーリングシステムを構成する第１の記憶装置及び第２の記憶装置を制御する制御装置における制御方法であって、
受信手段が、前記第１の記憶装置及び前記第２の記憶装置に書き込まれるべきデータを受信する受信ステップと、
書き込み手段が、前記受信ステップにて特定データを受信した場合に、該特定データを前記第１の記憶装置に設けられた第１記憶領域及び前記第２の記憶装置に設けられた第２記憶領域の双方に書き込む書き込みステップと、
取得手段が、前記第１記憶領域及び前記第２記憶領域のアクセススピードを取得する取得ステップと、
読み出し手段が、前記取得ステップにて取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出しステップと、
を備えたことを特徴とする制御方法。
【請求項８】
前記アクセススピードは、データの書き込み及び読み出しに係わるパフォーマンスであることを特徴とする請求項７に記載の制御方法。
【請求項９】
前記第１の記憶装置及び前記第２の記憶装置のいずれかが交換された場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項７又は８に記載の制御方法。
【請求項１０】
前記第１の記憶装置及び前記第２の記憶装置のいずれかへの通電時間が所定時間を経過した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項７又は８に記載の制御方法。
【請求項１１】
前記第１の記憶装置及び前記第２の記憶装置のいずれかに不良セクタが発生した場合、前記取得ステップは前記アクセススピードの取得をすることを特徴とする請求項７又は８に記載の制御方法。
【請求項１２】
請求項７乃至１１のいずれか１項に記載の制御方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年では、コピー、ＦＡＸ、プリンタなどの機能を備えたＭＦＰ(Multi Function Printer:複合機)においては、扱うデータの大容量化とグラフィックデータの複雑化、高精細化、さらには印字の高速化の要求がある。この要求に伴い、ＭＦＰでは、データの処理のパスとして大容量のデータを一次的に格納できるストレージとして磁気ディスク装置が一般的に採用されている。なお、磁気ディスクに格納するデータの信頼性、耐故障性を高めるため、ＲＡＩＤ１のミラーリングと呼ばれている技術がある。
【０００３】
ミラーリングとは、２台の磁気ディスクに対して全く同じデータを同時に書き込み、データを読み出すときには片方の磁気ディスクから読み出す方式である。ミラーリング技術を用いることで、一方の磁気ディスクに障害が発生しても、もう一方の磁気ディスクに記憶されたデータを利用することで、データが消失してしまう不具合を防ぐことができる。
【０００４】
なお、ミラーリング方式では、信頼性や耐障害性は高いものの、２倍のディスク容量を使うため、その分、ハードウェアコストが高くなるというデメリットもある。
【０００５】
また、ミラーリングシステムでは、２つのハードディスクの容量が同等、またアクセススピードも同等のものを使用することが前提となっている。これは、データを書き込むときに処理時間に著しい差が有ると、片方の処理が終了するまで待たされてしまい、ボトルネックが発生してしまうため、これを防止するためである。
【０００６】
また、データの読み出しには、ディスクドライブを限定して特定のドライブからのみ読み出しを行うので、選択したドライブに支障が発生した場合には、パフォーマンスに直接影響を与えることになっていた。
【０００７】
ミラーリングシステムを採用した例として、次のような技術がある。
【０００８】
特許文献１に開示された「複数の記憶ディスク部を有した高可用性の外部記憶装置」では、ディスクのヘッドの移動時間を最小になるようにキューに入ったコマンドを並べ替える手段を備えている。さらに、複数の読み出しコマンドがあればミラーリングを構成する２つのディスク装置に振り分けてコマンドを発行し、これらの両ディスク装置において異なる読み出しコマンドを並列に処理させる手段も備えている。
【特許文献１】特開平９−２５８９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来のシステムにおいては以下のような問題があった。
【００１０】
ミラーリング構成では、ｗｒｉｔｅのときは２台の磁気ディスクに同時に同じデータを書き込み、ｒｅａｄのときは片方の磁気ディスクからのみデータを読み出している。
【００１１】
このため、磁気ディスクの片方が故障して動作しなくなった場合には、機器の操作部などにエラー表示が行われ、サービスマンによる修理が行われる。修理のときには、機能的に互換性があるものを前提に故障した磁気ディスクの交換が行われるが、以前に装着されていた磁気ディスクのとは型式の異なるタイプが装着されるケースも想定される。
【００１２】
このため、場合によっては、ミラーリング構成の複数の磁気ディスクの間でパフォーマンスに差が出てしまい、交換前と比較してデータの読み書きに関わるパフォーマンスが低下してしまうという場合があった。
【００１３】
また、上述のように完全に動作しなくなるまでの故障は無くても、磁気ディスクの一部のセクタが壊れたときには、ユーザは感知せずともディスク制御部の補償機能が自動的に働き、代替の安全なセクタ領域にデータの一部が格納される。
【００１４】
このような代替セクタが複数あると、連続したアドレス領域をアクセスするようなＤＭＡのバースト転送時に、ディスクヘッドのシークタームが余分にかかり、待ち時間（ウエイト）が発生してしまうという問題があった。
【００１５】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる仕組を提供することである。
【課題を解決するための手段】
【００１６】
本発明は、ミラーリングシステムを構成する第１の記憶装置及び第２の記憶装置を制御する制御装置であって、前記第１の記憶装置及び前記第２の記憶装置の双方に書き込まれるべきデータを受信する受信手段と、前記受信手段が特定データを受信した場合に、該特定データを前記第１の記憶装置に設けられた第１記憶領域及び前記第２の記憶装置に設けられた第２記憶領域の双方に書き込む書き込み手段と、前記第１記憶領域及び前記第２記憶領域のアクセススピードを取得する取得手段と、前記取得手段により取得されたアクセススピードに基づいて、前記アクセススピードが高い記憶装置を選択して前記特定データを読み出す読み出し手段とを備えたことを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ミラーリングシステムを構成する記憶装置として、データアクセス性能が異なるものが装着された場合でも、ミラーリングシステムとしてのデータアクセススピードの低下を抑えることができる等の効果を奏する。
【発明を実施するための最良の形態】
【００１８】
〔第１実施形態〕
図１は、本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたＭＦＰコントローラの構成を示すブロック図である。以下に各構成要素について説明を行う。
【００１９】
図１において、１０１は図示していないホストコンピュータからの印字データを受信するためのネットワークＩ／Ｆ(Network I/F)回路である。１０２はＤＲＡＭであり、画像の展開や後述のＣＰＵのワーク領域として使用される。１０３はＣＰＵである。
【００２０】
１０４はＲＯＭである。このＲＯＭ１０４のＲＯＭ１には、電源投入直後にＣＰＵ１０３が起動してコントローラ内の後述する各種ハードウェアの初期化制御を行うためのブートアップ(Boot Up)プログラムが格納される。また、ＲＯＭ１０４のＲＯＭ２には、本発明で適用されるハードディスク（ＨＤＤ）のパフォーマンス計測の制御を行うためのプログラムが格納される。また、ＲＯＭ１０４のＲＯＭ３には、ページ記述言語(Page Description Language、略してPDL)を解析して後述のＲＩＰ制御部１０５が読み取れるような中間言語に変換するプログラム等が格納されている。
【００２１】
１０５はＲＩＰ制御部であり、プリント時に画像展開を行うハードウェアである。１０６は圧縮・伸張モジュールであり、省メモリのために画像データの圧縮伸張を行う制御部である。
【００２２】
１０８は操作部Ｉ／Ｆ回路、１０９はユーザＩ／Ｆとなる操作部である。
【００２３】
１１０はＡＴＡ Ｉ／Ｆコントローラであり、ハードディスクへの読み書き制御を行う。１１１はミラーリング制御を行うＲＡＩＤコントローラである。１１２は前記のＡＴＡ Ｉ／Ｆコントローラ１１０から送られてきたコマンドを解析するためのコマンド解析部（ＣＭＤ解析部）である。１０７はＳＲＡＭであり、各種設定データを保持しておくためのものである。
【００２４】
１１３は２台のハードディスクに対してデータの読み出し、書き込み制御を選択して独立に行うためのＩ／Ｏコントローラである。Ｉ／Ｏコントローラ１１３は、ＡＴＡ  Ｉ／Ｆコントローラ１１０から送信されるデータを受信する受信手段として機能する。１１４はＤＭＡコントローラ(ｃｈ１)，１１５はＤＭＡコントローラ(ｃｈ２)で、ＤＭＡ転送を行うための制御部である。１１６は第１の記憶装置としてのＨＤＤ１、１１７は第２の記憶装置としてのＨＤＤ２で、磁気ディスク装置である。
【００２５】
１１８はプリンタ(Printer)画像処理部で、プリンタエンジンへ画像を転送するときにスムージングやディザ処理などを行って画質の向上を図るための画像処理部である。１１９はプリンタエンジンとのデータのやり取りを行うためのプリンタエンジンＩ／Ｆ回路(Printer Engine I/F)である。１２０はプリンタエンジン(Printer Engine)である。
【００２６】
１２３は紙ベースの原稿画像を読み取るためのスキャナ(Scanner)である。１２２はスキャナ(Scanner)１２３のデータ入出力を制御するためのスキャナＩ／Ｆ回路(Scanner I/F)である。１２１は読み取った画像データを補正して２値データとして変換するスキャナ(Scanner)画像処理部である。
【００２７】
次に、ミラーリング構成におけるプリント時のデータ処理について述べる。
【００２８】
ネットワークＩ／Ｆ１０１よりページ記述言語とよばれる印字データが送られてくると、該印刷データは、一旦、ＡＴＡ Ｉ／Ｆコントローラ１１０を経由してＨＤＤ１(１１６)，ＨＤＤ２(１１７)の２台のハードディスクの双方に同時に同じデータが書き込まれる。
【００２９】
ホストコンピュータからの全ての転送データが格納されると、ＲＡＩＤ１のミラーリング方式に従って、Ｉ／Ｏコントローラ１１３は、選択されるいずれかのハードディスクからのみデータを読み出す。なお、ＨＤＤ１(１１６)が選択される場合、Ｉ／Ｏコントローラ１１３は、チップセレクト信号のｎＣＳ１を「ａｂｌｅ(＝Ｌｏｗ)」，ｎＣＳ２を「ｄｉｓａｂｌｅ(＝Ｈｉｇｈ)」として、ＨＤＤ１(１１６)からのみデータを読み出す。なお、データを読み出すハードディスクの選択方法については後述する。
【００３０】
ＣＰＵ１０３は、読み出されたページ記述言語のデータをＲＯＭ１０４のＲＯＭ３に格納されたプログラムに従って中間言語へ変換し、ＡＴＡ Ｉ／Ｆコントローラ１１０を経由してＨＤＤ１(１１６)，ＨＤＤ２(１１７)の２台のハードディスクの双方へデータの書き込みを行う。
【００３１】
全ページのデータ変換が終了すると、ＣＰＵ１０３は、前述の変換された中間言語のデータを、選択されるハードディスク(例えばＨＤＤ１(１１６))から読み出して、ＲＩＰ制御部１０５により、中間言語から描画データへ展開を行う。そして、ＣＰＵ１０３は、圧縮・伸張モジュール１０６によって、前述の展開された描画データの圧縮を行った後に、ＨＤＤ１(１１６)，ＨＤＤ２(１１７)の２台のハードディスクへ書き込みを行う。
【００３２】
全部の印字画像データの描画展開が終了すると、ＣＰＵ１０３は、前述の圧縮されたビットマップデータを選択されるハードディスク(例えばＨＤＤ１(１１６))から読み出す。そして、ＣＰＵ１０３は、前述の読み出した圧縮されたビットマップデータを圧縮・伸張モジュール１０６によりデータ伸張を行ってから、プリンタ画像処理部１１８へ転送する。
【００３３】
プリンタ画像処理部１１８は、文字輪郭のスムージング処理や画像データの階調補正などをして画質の向上を行った後に、１１９のプリンタエンジンＩ／Ｆ回路１１９を経由してプリンタエンジン１２０へ出力される。
【００３４】
次に、ミラーリング構成における、コピー処理時のデータ処理について述べる。
【００３５】
スキャナ１２３から読み取った画像は、スキャナＩ／Ｆ回路１２２を中継して、スキャナ画像処理部１２１へ入力され、変倍、回転、階調補正などの処理を行い、圧縮・伸張モジュール１０６によってデータ圧縮を行う。そして、圧縮されたデータは、一旦、ＡＴＡ Ｉ／Ｆコントローラ１１０を経由してＨＤＤ１(１１６)，ＨＤＤ２(１１７)の２台のハードディスクに同時に同じデータが書き込まれる。全ての原稿の読み取りが終了すると、ＣＰＵ１０３は、選択されるハードディスク(例えばＨＤＤ１(１１６))から圧縮されたデータを読み出して、圧縮・伸張モジュール１０６によってデータ伸張を行い、プリンタ画像処理部１１８のへ転送する。
【００３６】
転送されたデータは、プリンタ画像処理部１１８によって画像処理が施された後に、プリンタエンジンＩ／Ｆ１１９を経由してプリンタエンジン１２０へ出力される。
【００３７】
以上説明したように、ミラーリングシステムにおいては、ＣＰＵ１０３は、ＡＴＡ Ｉ／Ｆコントローラ１１０へデータ書き込みコマンドを出すと、ＲＡＩＤコントローラ１１１内のＣＭＤ制御部１１２は、次のように動作する。ＣＭＤ制御部１１２は、ＣＰＵ１０３からのデータ書き込みコマンドを解析して後段のＩ／Ｏコントローラ１１３にデータ書き込みを指示する。これに応じて、Ｉ／Ｏコントローラ１１３は、２つあるＤＭＡコントローラ１１４，１１５に対して同時に起動をかけ、２つのハードディスク１１６，１１７へ同時にデータ書き込み処理を行う。
【００３８】
また、データ読み出し時には、ＣＰＵ１０３が、ＡＴＡ Ｉ／Ｆコントローラ１１０に対してデータ読み出しコマンドを発行すると、それに従ってＲＡＩＤコントローラ１１１内の１１２ＣＭＤ制御部は、次のように動作する。ＣＭＤ制御部１１２は、ＣＰＵ１０３からのデータ読み出しコマンドを解析して後段のＩ／Ｏコントローラ１１３にデータ読み出しを指示する。これに応じて、Ｉ／Ｏコントローラ１１３は、２つあるＤＭＡコントローラのどちらを起動させるか選択する信号ｎＣＳ１，ｎＣＳ２のうち、一方のみを「ａｃｔｉｖｅ(＝Ｌｏｗレベル)」にすることにより選択を行う。例えば、ＨＤＤ１(１１６)からデータを読み出す場合には、ＣＭＤ制御部１１２は、ｎＣＳ１＝「Ｌｏｗ」，ｎＣＳ２＝「Ｈｉｇｈ」にドライブを行う。反対に、ＨＤＤ２(１１７)からデータを読み出す場合には、ＣＭＤ制御部１１２は、ｎＣＳ１＝「Ｈｉｇｈ」，ｎＣＳ２＝「Ｌｏｗ」にドライブを行う。
【００３９】
図２は、本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。なお、このフローチャートの処理は、ＣＰＵ１０３がＲＯＭ１０４等に格納されたプログラムを読み出して実行することにより実現される。
【００４０】
まずＳ２０１において、ＣＰＵ１０３は、ＲＯＭ１０４のＲＯＭ２から計測プログラムをロードし、Ｓ２０２において、ＡＴＡ Ｉ／Ｆコントローラ１１０へコマンドとして送出する。そして、このコマンドはＡＴＡ Ｉ／Ｆコントローラ１１０からＲＡＩＤコントローラ１１１に送信される。このコマンドに基づいて、ＲＡＩＤコントローラ１１１は、以下の処理を実行する。
【００４１】
Ｓ２０３において、ＲＡＩＤコントローラ１１１は、ハードディスク１１６，１１７へテスト（計測）を行うセクタの先頭アドレス（ＬＢＡ）とバースト長を指定する。さらに、ＲＡＩＤコントローラ１１１は、テストデータのｗｒｉｔｅコマンド、同アドレスのｒｅａｄコマンドをハードディスク１１６，１１７へ送出し、前記ｗｒｉｔｅしたデータと前記ｒｅａｄしたデータとのｖｅｒｉｆｙを実施する。
【００４２】
なお、各指定セクタのバースト転送の際に、ＲＡＩＤコントローラ１１１とハードディスク１１６，１１７の間で送受信される信号とそのタイミングを後述する図３〜図５に示す。また、このバースト転送で、ｗｒｉｔｅ，ｒｅａｄされるデータを後述する図６に示す。
【００４３】
Ｓ２０４では、ＲＡＩＤコントローラ１１１は、指定したセクタ分のｂｕｒｓｔ転送が終了するまで前記のＳ２０３の処理を繰り返すように制御する。そして、指定したセクタ分のテストが終了したと判断した場合には、ＲＡＩＤコントローラ１１１は、Ｓ２０５に処理を進める。なお、上記データ転送の間、ＲＡＩＤコントローラ１１１内のＩ／Ｏコントローラ１１３が、指定したセクタ分のデータ転送に要した時間（データの書き込み，読み出しに係わるパフォーマンス）を計測しておく。即ち、ハードディスクの連続したアドレス領域ごとに、前記各ハードディスクに対してアクセススピードの計測（取得）を行う。
【００４４】
Ｓ２０５では、Ｉ／Ｏコントローラ１１３は、データ転送に要した時間をログとしてＳＲＡＭ１０７へ格納するように制御する。このログを後述する図７に示す。
【００４５】
次に、Ｓ２０６において、ＣＰＵ１０３は、Ｓ２０５までに終了したテスト領域がハードディスクのデータ領域の最後になっているかを判定する。そして、Ｓ２０６において、Ｓ２０５までに終了したテスト領域がハードディスクのデータ領域の最後になっていない（即ち、未だ未テストの領域が残っている）と判断した場合には、ＣＰＵ１０３は、Ｓ２０２に処理を戻す。
【００４６】
一方、Ｓ２０６において、Ｓ２０５までに終了したテスト領域がハードディスクのデータ領域の最後になっている（全ての領域に対しての処理が終了した）と判定した場合には、本フローチャートの処理を終了する。
【００４７】
以下、図３〜図６を参照して、図２に示したパフォーマンス計測テストを行う際のテストデータのwrite/readについて説明する。
【００４８】
図３は、図２に示したパフォーマンス計測を行う際のＲＡＩＤコントローラ１１１とハードディスク１１６，１１７間の制御信号を示す図である。
【００４９】
図３において、ホストとは、ＲＡＩＤコントローラ１１１を示す。また、デバイスとは、ハードディスク(ＨＤＤ１(１１６)，ＨＤＤ２(１１７))を示す。
【００５０】
なお、図３中の矢印は、その信号をドライブする側が、ホスト、デバイスのどちらかを示したものである。
【００５１】
図４は、図３に示した制御信号のタイミングチャートであり、ホストからデバイスに対してデータを書き込むとき（ｗｒｉｔｅ）のものである。
【００５２】
本発明においては、計測テストの際にはＤＭＡ転送によるｗｒｉｔｅ，ｒｅａｄテストを行うものとする。
【００５３】
以下、各信号について説明を行う。
【００５４】
ＤＭＡＲＱは、ＤＭＡ転送リクエスト信号であり、デバイスからホストに送信される。／ＤＭＡＣＫは、前記リクエスト（ＤＭＡＲＱ）のアクノリッジ信号であり、ホストからデバイスに送信される。
【００５５】
／ＤＩＯＷは、通常のレジスタアクセスにおいてはＩ／Ｏ ｗｉｒｔｅ信号として使用されるが、ＤＭＡ転送中にはバースト転送中においてホストからデバイス（ここではハードディスク）に対してＤＭＡ転送のストップをかける信号として使用される。
【００５６】
ＩＯＲＤＹは、通常のレジスタアクセスにおいてはＩ／Ｏ ｒｅａｄｙとして使用されるが、バースト転送中のＤＭＡレディを示す／ＤＤＭＡＲＤＹ信号として使用され、デバイスからホストに送信される。
【００５７】
／ＤＩＯＲは、通常のレジスタアクセスにおいてはＩ／Ｏ ｒｅａｄ信号として使用されるが、ＤＭＡ ｗｒｉｔｅデータの転送中には、ｗｒｉｔｅデータのストローブ信号（／ＨＳＴＲＯＢＥ）として使用され、ホストからデバイスに送信される。
【００５８】
ＤＤ［１５：０］はｗｒｉｔｅデータであり、デバイス側は、前記のストローブ信号（／ＨＳＴＲＯＢＥ）の立ち上がり、立下りの両方のエッジで、このデータをラッチする。
【００５９】
このＤＭＡ転送では、データ転送の信頼性向上のために、バースト転送の最後にホストがＣＲＣデータを付加し、デバイス側が受信したデータからＣＲＣを計算して正しくデータ転送ができたかどうかをチェックする。ホスト側のＣＲＣとデバイス側のＣＲＣとが異なりエラーを検出した場合には、コマンド終了時にデバイスからエラーが発生したことをステータスとして返信する。
【００６０】
図５は、図３に示した制御信号のタイミングチャートであり、デバイスからデータを読み出すとき（ｒｅａｄ）のものである。
【００６１】
なお、図５と図４との違いは、／ＤＩＯＲが、ホスト側がデータを受け取れる準備ができていることを示す／ＨＤＭＡＲＤＹ信号として使用され、また、／ＩＯＲＤＹ信号がデバイスから読み出したデータのストローブ信号として使用されることである。
【００６２】
図６は、図２に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【００６３】
ハードディスク((ＨＤＤ１)１１６,(ＨＤＤ１)１１７)は、５１２ｂｙｔｅのセクタ単位でデータのwrite/readを行う。ここでは、隣合うデータのｂｉｔが、"１"，"０"反転するような組み合わせのデータとして、５５５５（ｈ），ａａａａ（ｈ）の２ワードのデータをペアとして交互にセクタに埋めるようにしている。なお、１６進数標記された５５５５（ｈ），ａａａａ（ｈ）は、２進数表記すると"0101010101010101"，"1010101010101010"となる。
【００６４】
以下、図７を参照して、図２に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ（パフォーマンス計測結果）をＳＲＡＭ１０７に格納するときの形式について説明する。
【００６５】
図７は、図２に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ（パフォーマンス計測結果）をＳＲＡＭ１０７に格納するときの形式を示す図である。
【００６６】
図１に示したＭＦＰコントローラでは、ハードディスクをＪｏｂの処理状況に応じて各領域に分割して使用している。このため、ＭＦＰコントローラでは、ログについてもその領域の先頭アドレスを示すＬＢＡ７０１と、パフォーマンステストに要した時間７０２，７０３、及び、その判定結果７０４についても格納する。なお、７０２はＨＤＤ１(１１６)を読み出し対象とした場合にパフォーマンステストに要した時間、７０３はＨＤＤ２(１１７)を読み出し対象とした場合にパフォーマンステストに要した時間に対応する。
【００６７】
以下、図８を参照して、図７に示したパフォーマンス計測結果に基づいて、実際にＲＡＩＤコントローラ１１１が選択するハードディスクをＬＢＡ毎に示した図である。
【００６８】
図８は、ＳＲＡＭ１０７内のログデータに基づいてＲＡＩＤコントローラ１１１がＬＢＡ毎にミラーリング構成のハードディスクＨＤＤ１（１１６），ＨＤＤ２（１１７）のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【００６９】
本発明では、ＲＡＩＤコントローラ１１１のＩ／Ｏコントローラ１１３が、ＳＲＡＭ１０７に格納される計測結果（図７）に基づいてアドレス領域（ＬＢＡ）ごとにＨＤＤ１，ＨＤＤ２からアクセススピードが短いほうを選択してデータを読み出す構成である。
【００７０】
図８において、８０１は領域を示す。８０２は、領域８０１のデータを読み出す際に選択するハードディスク、８０３は、領域８０１の用途を示す。
【００７１】
以下に各領域８０１、及び、その用途８０３について説明を行う。
【００７２】
図８において、ＬＢＡ（０）の画像展開領域とは、コピーやプリントなどの画像処理を行うための展開されたデータを一時的に格納するため領域である。この領域は、データ処理のパフォーマンスに一番影響があるのでディスクヘッドのシークタイム、読み出し、書き込みのアクセスの早い最外周のセクタが優先的に割り当てられている。本領域は、図１のプリント処理の説明で述べたように、ＲＩＰ制御部１０５が展開した画像を圧縮・伸張モジュール１０６によって圧縮したデータとして格納する用途に用いられている。
【００７３】
ＬＢＡ（１），ＬＢＡ（２）のＢｏｏｔｕｐ領域とは、ＭＦＰに電源を投入された直後にＣＰＵ１０３が各種ハードウェアの初期化制御を行ったり、図１で説明したようなプリント処理、コピー処理などのＭＦＰの動作を制御するためのプログラムが格納されている領域である。本領域のプログラムは、通常では電源投入後には直接ハードディスクから読み出されるが、その後は、ディスクアクセスの時間を短縮してＭＦＰの処理パフォーマンスを向上させるため、ＤＲＡＭ１０２上に格納されてここから読み出される。
【００７４】
ＬＢＡ（３），ＬＢＡ（４）の画像ｓｐｏｏｌ領域とは、図１で説明したように、プリント時にホストコンピュータより受信した印字データを一時的に格納するための領域である。また、この領域は、コピー時においては、スキャナから読み取った画像データを一時的に格納するための領域として用いられる。
【００７５】
ＬＢＡ（５）のユーザデータ領域とは、セキュリティ対策のためにＭＦＰの使用制限をユーザ毎に設けてログインＩＤ、パスワードなどを管理するデータと、ＦＡＸの送信宛先名簿などの番号情報を格納するための領域として使用される。
【００７６】
ＬＢＡ（６）の地紋データ領域とは、情報漏洩対策のためのデータを格納する領域である。なお、偽造防止、原本保証のためにコピー禁止となっている紙文書には隠し文字を埋め込んだプリントパターンを予め印字するのが公知の技術として知られている。このような紙文書を複製しようとしたときに、スキャナ画像処理部１２１がパターン認識を行って、コピー出力時に文書の背景に複製であることを明確に示すパターン、一般に地紋と呼ばれるものを一面に印字する防止策がとられている。この背景に埋め込むパターン（地紋）には、色、階調、文様、文字などの複数のデータが用意されており、ユーザが選択可能となっている。ＬＢＡ（６）には、このような各種地紋データを格納している。
【００７７】
ＬＢＡ（７）〜ＬＢＡ（ｎ）には、ＭＦＰのハードディスクへユーザが文書データを格納するＢＯＸと呼ばれる領域である。ユーザは各クライアントＰＣより文書データをＭＦＰのＢＯＸ領域に格納しておけば、いつでも必要に応じてプリントし再利用することができる。
【００７８】
図７の判定結果７０４を参照すると、例えば、ＬＢＡ（０）のアクセスタイムについては、ＨＤＤ１(１１６)の時間（ｔ１−ａ）の方がＨＤＤ２(１１７)の時間（ｔ２−ａ）よりも小さく（短く）なっている。ここで、ＬＢＡ（０）に記憶させるべきデータは、コピーやプリントなどの画像処理を行うための展開されたデータ（特定データ）である。そして、ＬＢＡ（０）に対応するＨＤＤ１の記憶領域（第１記憶領域）のアクセスタイムが（ｔ１−ａ）であり、ＬＢＡ（０）に対応するＨＤＤ２の記憶領域（第２記憶領域）のアクセスタイムが（ｔ１−ｂ）である。そして、アクセスタイムが短いＨＤＤ１の記憶領域の方が、アクセスタイムが長いＨＤＤ２の記憶領域よりもアクセススピードが高い。このため、ＲＡＩＤコントローラ１１１のＩ／Ｏコントローラ１１３（以下、単にＲＡＩＤコントローラ１１１）は、ＬＢＡ（０）の画像展開領域をアクセスして、画像展開領域に記憶されたデータを読み出すときには、ＨＤＤ１(１１６)を選択することになる。
【００７９】
また、ＬＢＡ（１），ＬＢＡ（２）のアクセスタイムについては、ＨＤＤ１(１１６)の時間（ｔ１−ａ）よりＨＤＤ２(１１７)の時間（ｔ２−ａ）の方が小さく（短く）なっている。このため、ＲＡＩＤコントローラ１１１は、ＬＢＡ（１），ＬＢＡ（２）のＢｏｏｔｕｐ領域をアクセスするときには、ＨＤＤ２(１１７)を選択することになる。
【００８０】
このように、ＲＡＩＤコントローラ１１１は、ＳＲＡＭ１０７に格納された図７の結果を元にして、ＭＦＰの各処理において２つあるハードディスク（ＨＤＤ１(１１６)，ＨＤＤ２(１１７)）のどちらか早い方を選択してデータの読み出しを行う。以下、図９を用いて具体的に説明する。
【００８１】
図９は、プリント処理中のハードディスクへのアクセス時において２台あるディスクのどちらの１台を選択して読み出しを行う処理の実例を示すフローチャートである。以下、順を追って説明を行う。
【００８２】
Ｓ９０１において、ＣＰＵ１０３は、不図示のホストコンピュータよりページ記述言語から成る印字データを受信すると、Ｓ９０２に処理を進める。
【００８３】
Ｓ９０２では、ＣＰＵ１０３は、前記受信した印字データを、ハードディスクのＬＢＡ（３）の画像ｓｐｏｏｌ領域へ格納するコマンドをＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＡＩＤコントローラ１１１に送出する。このコマンドに基づいて、ＲＡＩＤコントローラ１１１のＩ／Ｏコントローラ１１３は、前記印字データをＨＤＤ１(１１６)，ＨＤＤ２(１１７)のＬＢＡ（３）の画像ｓｐｏｏｌ領域へ格納する。
【００８４】
ＣＰＵ１０３は、全てのページのデータを受信し終えるまで（Ｓ９０３）、Ｓ９０１〜Ｓ９０２の処理を繰り返し、全てのページのデータを受信し終えると（Ｓ９０３でＹ）、Ｓ９０４に処理を進める。
【００８５】
Ｓ９０４では、ＣＰＵ１０３は、ハードディスクのＬＢＡ（３）の画像ｓｐｏｏｌ領域に格納されるデータを読み出すコマンドをＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＡＩＤコントローラ１１１に送出する。このコマンドに基づいて、ＲＡＩＤコントローラ１１１は、ＨＤＤ１(１１６)のＬＢＡ（３）よりページ記述言語データを読み出す。詳細には、Ｉ／Ｏコントローラ１１３が、ＳＲＡＭ１０７に格納されたパフォーマンス計測結果（図７に示した比較結果７０４）に基づいて、ＬＢＡ（３）に格納されるデータを読み出す際のハードディスクを選択する。ここでは、ＨＤＤ１(１１６)を選択する。そして、Ｉ／Ｏコントローラ１１３は、選択したＨＤＤ１(１１６)のＬＢＡ（３）よりページ記述言語データを読み出して、ＡＴＡ Ｉ／Ｆコントローラ１１０を介してＣＰＵ１０３に渡す。
【００８６】
Ｓ９０５において、ＣＰＵ１０３は、図１の１０４に格納されているＰＤＬ解析プログラムに従って、Ｓ９０４で読み出したページ記述言語データを中間データ(Display List)へ変換を行う。
【００８７】
そして、Ｓ９０６において、ＣＰＵ１０３は、Ｓ９０５で変換した中間データを、ハードディスクのＬＢＡ（０）画像展開領域へ格納するコマンドをＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＡＩＤコントローラ１１１に送出する。このコマンドに基づいて、ＲＡＩＤコントローラ１１１のＩ／Ｏコントローラ１１３は、前記中間データをＨＤＤ１(１１６)，ＨＤＤ２(１１７)のＬＢＡ（０）画像展開領域へ格納する。
【００８８】
そして、ＣＰＵ１０３は、全てのページのデータ変換を終えるまで（Ｓ９０７）、Ｓ９０４〜Ｓ９０６の処理を繰り返し、全てのページのデータ変換を終えると（Ｓ９０７でＹ）、Ｓ９０８に処理を進める。
【００８９】
Ｓ９０８では、ＲＩＰ制御部１０５は、ハードディスクのＬＢＡ（０）から前記中間データを読み出すコマンドをＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＡＩＤコントローラ１１１に送出する。このコマンドに基づいて、ＲＡＩＤコントローラ１１１は、ＨＤＤ１(１１６)のＬＢＡ（０）より中間データを読み出す。詳細には、Ｉ／Ｏコントローラ１１３が、ＳＲＡＭ１０７に格納されたパフォーマンス計測結果（図７に示した比較結果７０４）に基づいて、ＬＢＡ（０）に格納されるデータを読み出す際のハードディスクを選択する。ここでは、ＨＤＤ１(１１６)を選択する。そして、Ｉ／Ｏコントローラ１１３は、選択したＨＤＤ１(１１６)のＬＢＡ（３）より前記中間データを読み出して、ＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＩＰ制御部１０５に渡す。
【００９０】
そして、Ｓ９において、ＲＩＰ制御部１０５は、前記読み出した中間データに対してハードウェアによる描画データへの展開処理を実施し、該展開処理結果をＤＲＡＭ１０２へページ単位で格納する。
【００９１】
１ページ分のデータが用意できると、Ｓ９１０において、ＣＰＵ１０３は、ＤＭＡ転送により、ＤＲＡＭ１０２へ格納される描画データをプリンタ画像処理部１１８へ転送する。
【００９２】
ＣＰＵ１０３は、このＳ９０８〜Ｓ９１０までの処理を全てのページのデータを転送し終わるまで繰り返すように制御し（Ｓ９１１）、全てのページのデータを転送し終わると、本フローチャートの処理を終了させる。
【００９３】
以下、図１０を参照して、２台有るミラーリングハードディスクのうち、片方に故障が発生し、サービスマンによる交換作業が行われたときの処理について説明する。
【００９４】
図１０は、２台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【００９５】
サービスマンが、２台有るミラーリングハードディスクＨＤＤ１（１１６），ＨＤＤ２（１１７）のうち、少なくとも片方を交換する（Ｓ１００１）。ここでは、ＨＤＤ２（１１７）がＨＤＤ３（不図示）に交換されたものとする。
【００９６】
そして、最初の電源投入がなされた（Ｓ１００２）後に、Ｓ１００３の処理が実行される。
【００９７】
このＳ１００３の処理は、サービスマンから入力される指示により、ＣＰＵ１０３がＲＡＩＤコントローラ１１１に実行させるように構成であってもよいし、電源投入後に常にＣＰＵ１０３がＲＡＩＤコントローラ１１１に実行させる構成であってもよい。なお、上記サービスマンから入力される指示は、操作部１０９から入力される指示であっても、ネットワークＩ／Ｆ１０１を介しての不図示のコンピュータ（リモートＵＩ）から入力される指示等であってもよい。以下、Ｓ１００３以降の処理について説明する。
【００９８】
Ｓ１００３では、ＣＰＵ１０３からの指示により、ＲＡＩＤコントローラ１１１がハードディスクの型名、ディスク容量などの情報を取得し、ＣＰＵ１０３に通知する。この通知を受けて、ＣＰＵ１０３は、２台有るミラーリングハードディスクのうち、少なくとも片方を交換されたか否かを判断する。
【００９９】
そして、少なくとも片方が交換されたと判断した場合には、ＣＰＵ１０３は、図２のＳ２０１〜Ｓ２０６で説明したようなパフォーマンス計測テストを実施するように制御する（Ｓ１００４）。このパフォーマンス計測テストにより、ＳＲＡＭ１０７へ格納されるＬＢＡ領域ごとに計測されたログデータが更新される。
【０１００】
図１１は、ＳＲＡＭ１０７内のログデータを更新した後にＲＡＩＤコントローラ１１１がＬＢＡ毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【０１０１】
なお、図１１中、交換された新規のハードディスクをＨＤＤ３として記載している。
【０１０２】
ハードディスク交換前の状態（図８）と比較して、灰色の部分の領域がログデータの更新によって変更となった部分に対応する。このように、部品交換が行われる度にパフォーマンス計測を行うことにより、各データ領域でアクセスタイムが早い方のディスクを選択することが可能となる。以下、図１２を用いて具体的に説明する。
【０１０３】
図１２は、ＳＲＡＭ１０７内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において２台あるハードディスクＨＤＤ１（１１６），ＨＤＤ３（不図示）のどちらの１台を選択して読み出しを行う処理の実例を示すフローチャートである。なお、図中、Ｓ１２０１〜Ｓ１２０７，Ｓ１２０９〜Ｓ１２１１は、図９に示したＳ９０１〜Ｓ９０７，Ｓ９０９〜Ｓ９１１と同一である。以下、図９との差分について説明する。
【０１０４】
前述の図９に示したフローチャートとの差分は、Ｓ１２０８においてＨＤＤ１から読み出していた中間データをＨＤＤ３（交換された不図示のハードディスク）から読み出すようになった点である。ディスク交換後に、ＬＢＡ（０）の領域の読み出し時間が元から装着されていたＨＤＤ１（１１６）よりも交換したＨＤＤ３（不図示）の方が短くなったことに起因する。以下、Ｓ１２０８について説明する。
【０１０５】
Ｓ１２０８では、ＲＩＰ制御部１０５は、ハードディスクのＬＢＡ（０）から中間データを読み出すコマンドをＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＡＩＤコントローラ１１１に送出する。このコマンドに基づいて、ＲＡＩＤコントローラ１１１は、ＨＤＤ３(不図示)のＬＢＡ（０）より中間データを読み出す。詳細には、Ｉ／Ｏコントローラ１１３が、ＳＲＡＭ１０７内の更新されたパフォーマンス計測結果に基づいて、ＬＢＡ（０）に格納されるデータを読み出す際のハードディスクを選択する。ここでは、ディスク交換によりＬＢＡ（０）の領域の読み出し時間が元から装着されていたＨＤＤ１（１１６）よりも交換したＨＤＤ３（不図示）の方が短くなったため、ＨＤＤ３(不図示)を選択する。そして、Ｉ／Ｏコントローラ１１３は、選択したＨＤＤ３のＬＢＡ（３）より前記中間データを読み出して、ＡＴＡ Ｉ／Ｆコントローラ１１０を介してＲＩＰ制御部１０５に渡す。
【０１０６】
以上示したように、本実施形態では、ミラーリング構成となっている磁気ディスク装置を備えたＭＦＰ（複合機）において、新規の磁気ディスク装置が設置されたとき、画像スプール領域、プログラム領域、ユーザデータ領域ごとのＬＢＡごとに、各磁気ディスク装置に対してデータのwrite/readテストを実施してパフォーマンス（即ち、アクセススピード）を計測する。この計測結果をＭＦＰ制御部内のコントローラに内蔵されているメモリ（ＳＲＡＭ１０７）に格納し、このデータに基づいてＭＦＰの処理の流れに応じて、ミラーリング動作時にデータを読み出すハードディスクを切り替える構成を特徴とする。
【０１０７】
従来では、ミラーリングシステムとして同じ回転数、同じ記憶容量のプラッター（ディスクの円盤状の磁性体）を使用しているディスク装置であってもデータアクセスの性能が異なるディスク装置が装着される場合があった。このような場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス（アクセススピード）の低下を抑えることができる。
【０１０８】
〔第２実施形態〕
ミラーリング構成のハードディスクにおいて、上述した第１実施形態においては、ハードディスクの交換が行われたときにパフォーマンスの計測を行う例を示したが、本実施形態では定期的にパフォーマンスの計測を行う場合について述べる。
【０１０９】
ハードディスクは外部のインターフェースからは故障が無いように見えても内部的にメディアの欠損、一般にはセクタ故障と呼ばれる不具合が発生する場合もある。
【０１１０】
一般にハードディスクはメーカーが提示する仕様書に記載されている容量（例：１６０ＧＢ）よりも若干多い容量を予備として備えている。ハードディスクに対して特定のアドレス領域へ書き込み／読み出しを頻繁に行うと、プラッターと呼ばれるディスク円盤の磁性体の劣化が起こる可能性が高まる。また、動作時における振動などによりディスクのヘッドとプラッターの間で接触が起こり磁性体に傷などの物理的な損傷が発生する場合もある。このような現象が発生すると、所謂、ｗｒｉｔｅアボートと呼ばれるような、データが正常に書き込めない領域が次第に増えてしまい、ユーザに開放している容量が確保できなくなってしまう。
【０１１１】
このような事態を防ぐために、ハードディスクには、代替のセクタ領域が予め用意されている。
【０１１２】
図１３は、故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【０１１３】
図１３に示すように、代替セクタは、プラッターの内周に設けられていることが多く、ＬＢＡのアドアレスに飛び番地が含まれることになる。
【０１１４】
つまり、外周のセクタに故障が発生した場合には、ディスクヘッドが連続するＬＢＡのアクセス途中で、内周の代替セクタにアクセスする必要がある。このため、ヘッドの外周から内周への移動と、また元の外周に戻る往復の動作が必要となり、パフォーマンスに影響を与えることになる。
【０１１５】
また、ミラーリング構成のハードディスクを使用する場合には、図１３に示したように、ＨＤＤ１とＨＤＤ２とで、それぞれの故障セクタの位置が異なることが予想され、領域ごとにパフォーマンスの差がでてしまう。
【０１１６】
図１４は、このような不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、ＣＰＵ１０３がＲＯＭ１０４等に格納されたプログラムを読み出して実行することにより実現される。
【０１１７】
まずＳ１４０１において、ＣＰＵ１０３は、予めパフォーマンスの計測を行う間隔を設定する。このＳ１４０１の処理は、管理者等から入力されるパフォーマンスの計測を行う間隔の設定指示により、ＣＰＵ１０３が、ハードディスクに指示された間隔を設定する。
【０１１８】
なお、上記管理者等から入力される指示は、操作部１０９から入力される指示であっても、ネットワークＩ／Ｆ１０１を介しての不図示のコンピュータ（リモートＵＩ）から入力される指示等であってもよい。以下、Ｓ１４０２以降の処理について説明する。
【０１１９】
次に、Ｓ１４０２において、ＣＰＵ１０３は、ハードディスクの通電時間に基づいて、Ｓ１４０１で設定されたパフォーマンスの計測を行う間隔のカウントダウンを開始する。
【０１２０】
次に、Ｓ１４０３において、ＣＰＵ１０３は、所定時間（Ｓ１４０１で設定されたパフォーマンスの計測を行う間隔）の経過するまで待機する。
【０１２１】
そして、Ｓ１４０３において、所定時間（Ｓ１４０１で設定されたパフォーマンスの計測を行う間隔）の経過したと判断した場合には、ＣＰＵ１０３は、Ｓ１４０４に処理を進める。
【０１２２】
Ｓ１４０４では、ＣＰＵ１０３は、図２のＳ２０１〜Ｓ２０６で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、ＳＲＡＭ１０７へ格納されるＬＢＡ領域ごとに計測されたログデータ（計測結果）が更新される。これ以後、ＲＡＩＤコントローラ１１１は、この更新されたＳＲＡＭ１０７内の計測結果（例えば、図７に示したような判定結果７０４）に基づいて、ＭＦＰのプリント、コピーの各処理において２つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【０１２３】
本実施形態では、磁気ディスク装置の交換が無い場合でも、前記磁気ディスク装置への通電時間が所定時間を経過したときを契機として（トリガとして）、前述のパフォーマンスの計測を行うように構成する。この構成により、特定のアドレス領域への書き込み／読み出しを頻繁に行ったり動作時の振動等により磁気ディスク装置が劣化している可能性が高い場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス（アクセススピード）の低下を抑えることができる。
【０１２４】
〔第３実施形態〕
上記第２実施形態においては、定期的にパフォーマンスの計測を行っていたが、Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報から代替セクタに関する情報（ステータス）が得られるので、このステータスに著しい変化が発生した場合をトリガとして計測を行うように構成してもよい。以下、その実施形態について説明する。
【０１２５】
なお、Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報とは、Self-Monitoring, Analysis and Reporting Technologyの略称である。このＳ.Ｍ.Ａ.Ｒ.Ｔ.情報は、ハードディスクドライブの障害の早期発見と故障の予測を目的として搭載されている機能であって、各種の検査項目をリアルタイムに自己診断し、その状態を数値化している。以下、図１５を用いて詳細に説明する。
【０１２６】
図１５は、本実施形態で使用される不良セクタに関するＳ.Ｍ.Ａ.Ｒ.Ｔ.情報のＩＤとその項目を示す図である。
【０１２７】
図１５において、ＩＤ＝０５のReallocated Sectors Countは、不良セクタが発生したために代替処理を施されたその数を示す。ＩＤ＝Ｃ４のReallocation Event Countは、セクタの代替処理が発生した回数を示し、ＩＤ＝Ｃ５のCurrent Pending Sector Countは、現在異常があり、代替処理を待っているセクタの総数を示す。また、ＩＤ＝Ｃ６のOff-Line Scan Uncorrectable Sector Countは、オフライン時に発見された回復不可能なセクタの総数を示している。
【０１２８】
以下、図１６を参照して、Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報を用いてパフォーマンス計測を行う処理について説明する。
【０１２９】
図１６は、Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。なお、このフローチャートの処理は、ＣＰＵ１０３がＲＯＭ１０４等に格納されたプログラムを読み出して実行することにより実現される。
【０１３０】
まず、Ｓ１６０１において、ＣＰＵ１０３は、図１５で示したＳ.Ｍ.Ａ.Ｒ.Ｔ.情報の項目についてそのステータスの差分（主に代替セクタの発生数）をモニタリングする。
【０１３１】
次に、Ｓ１６０２において、ＣＰＵ１０３は、Ｓ１６０１のモニタリングの結果、代替セクタの発生数に増分があるか否かを判定し、代替セクタの発生数に増分があると判断するまで、Ｓ１６０１のモニタリングを実行するように制御する。
【０１３２】
そして、Ｓ１６０２において、ＣＰＵ１０３は、代替セクタの発生数に増分があると判断した場合には、Ｓ１６０３に処理を進める。
【０１３３】
Ｓ１６０４では、ＣＰＵ１０３は、図２のＳ２０１〜Ｓ２０６で説明したようなパフォーマンス計測テストを実施するように制御する。このパフォーマンス計測テストにより、ＳＲＡＭ１０７へ格納されるＬＢＡ領域ごとに計測されたログデータ（計測結果）が更新される。これ以後、ＲＡＩＤコントローラ１１１は、この更新されたＳＲＡＭ１０７内の計測結果（例えば、図７に示したような判定結果７０４）に基づいて、２つあるハードディスクからパフォーマンスが最適なものを選択してデータの読み出しを行う。
【０１３４】
本実施形態では、磁気ディスク装置の交換が無い場合でも、Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報の代替処置を施された不良セクタの数をモニタリングしておき、増分が検出された時点で（トリガとして）、前述のパフォーマンスの計測を行うように構成する。即ち、いずれかの磁気ディスク装置に不良セクタが発生して代替処理が発生したことを検知したことを契機として、前述のパフォーマンスの計測を行うように構成する。このような構成により、ミラーリングシステムを構成する磁気ディスクにおいて不良セクタが増加した場合でも、ミラーリングシステムとしてデータのwrite/readパフォーマンス（アクセススピード）の低下を抑えることができる。
【０１３５】
〔第４実施形態〕
上記第３実施形態においては、不良セクタが発生（代替セクタが発生）したことに応じて、パフォーマンス計測を行うものであった。第４実施形態は、パフォーマンス計測を行うことなく、ＬＢＡ毎にアクセススピードを取得するものである。
【０１３６】
一般的に、不良セクタの数が大きくなればなるほど、連続したアドレスにデータを書き込めない可能性が高まるので、アクセススピードが低くなる傾向がある。それは、不良セクタが発生した場合、連続したアドレスの一部に抜け（不良セクタ）が生じ、アドレスの切り替えが必要になるからである。そこで、第４実施形態は不良セクタの数とアクセススピードの相関関係を予め関数としてＲＡＩＤコントローラ１１１に保持させておき、実際に発生した不良セクタの数を関数の代入することで、ＬＢＡ毎のアクセススピードを取得する。したがって、第４実施形態によれば、ＨＤＤ１及びＨＤＤ２にデータをwrite/readすることによりパフォーマンス計測をすることなく、不良セクタ数からアクセススピードを取得することができる。よって、第４実施形態によれば、パフォーマンス計測を実行するのに要する時間を省略することができる。
【０１３７】
なお、上記実施形態では、本発明の制御装置を、ＭＦＰに適用する場合について説明したが、ミラーリング構成の複数の記憶装置を有する装置であればどのような装置に適用してもよい。例えば、パーソナルコンピュータやワークステーション等の一般的なコンピュータに適用してもよいし、ハードディスクレコーダ等に適用してもよい。
【０１３８】
さらに、記憶装置は、磁気ディスクに限定されるものではなく、磁気ディスク以外の記憶装置であっても本発明は適用可能である。また、ミラーリングを構成する記憶装置は、３つ以上であってもよい。
【０１３９】
また、図２に示したパフォーマンス計測テストでは、記憶装置に対してデータの書き込み及び読み出しに係わるパフォーマンスを計測する構成であったが、読み出しに係わるパフォーマンスのみを計測する構成であってもよい。
【０１４０】
さらに、上記各実施形態の組み合わせも全て本発明に含まれるものである。
【０１４１】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４２】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４３】
以上説明したように、本実施形態によれば、ミラーリングシステムを構成する磁気ディスク装置として、同じ回転数、同じ記憶容量のプラッター（ディスクの円盤状の磁性体）を使用している磁気ディスク装置であっても、データアクセスの性能が異なるものが装着された場合においても、ミラーリングシステムとしてデータのwrite/readパフォーマンスの低下を抑えることができる。
【０１４４】
以下、図１７に示すメモリマップを参照して、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体のメモリマップの構成について説明する。
【０１４５】
図１７は、本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１４６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１４７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１４８】
本実施形態における図２，図９，図１０，図１２，図１４，図１６に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１４９】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１５０】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５１】
しがたって、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１５２】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１５３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１５４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやＦＴＰサーバ等も本発明の請求項に含まれるものである。
【０１５５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１５６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５７】
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５８】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５９】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１６０】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【０１６１】
なお、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１６２】
【図１】本発明の一実施形態を示す磁気ディスク制御装置を適用可能なミラーリング構成の複数の磁気ディスクを備えたＭＦＰコントローラの構成を示すブロック図である。
【図２】本実施形態の磁気ディスク制御装置におけるパフォーマンス計測テストの一例を示すフローチャートである。
【図３】図２に示したパフォーマンス計測を行う際のＲＡＩＤコントローラ１１１とハードディスク１１６，１１７間の制御信号を示す図である。
【図４】図３に示した制御信号のタイミングチャートである。
【図５】図３に示した制御信号のタイミングチャートである。
【図６】図２に示したパフォーマンス計測を行う際にwrite/readする具体的なテストデータを示した図である。
【図７】図２に示したパフォーマンス計測テストを実施した際にデータ転送に要した時間のログ（パフォーマンス計測結果）をＳＲＡＭ１０７に格納するときの形式を示す図である。
【図８】ＳＲＡＭ１０７内のログデータに基づいてＲＡＩＤコントローラ１１１がＬＢＡ毎にミラーリング構成のハードディスクＨＤＤ１（１１６），ＨＤＤ２（１１７）のうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図９】プリント処理中のハードディスクへのアクセス時において２台あるディスクのどちらの１台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図１０】２台有るミラーリングハードディスクのうち、片方に故障が発生しサービスマンによる交換作業が行われたときの処理を示したフローチャートである。
【図１１】ＳＲＡＭ１０７内のログデータを更新した後にＲＡＩＤコントローラ１１１がＬＢＡ毎にミラーリング構成のハードディスクのうちのどちらのハードディスクを選択してアクセスするかを示す図である。
【図１２】ＳＲＡＭ１０７内のログデータを更新した後のプリント処理中のハードディスクへのアクセス時において２台あるハードディスクＨＤＤ１（１１６），ＨＤＤ３（不図示）のどちらの１台を選択して読み出しを行う処理の実例を示すフローチャートである。
【図１３】故障が発生したセクタと代替のセクタのとの位置関係を示す図である。
【図１４】不具合を防ぐために、ディスクの通電時間が所定の長さを超えて使用を続けようとしたときに定期的なパフォーマンス計測を行う処理を示すフローチャートである。
【図１５】本実施形態で使用される不良セクタに関するＳ.Ｍ.Ａ.Ｒ.Ｔ.情報のＩＤとその項目を示す図である。
【図１６】Ｓ.Ｍ.Ａ.Ｒ.Ｔ.情報を用いてパフォーマンス計測を行う処理を示すフローチャートである。
【図１７】本発明に係る制御装置で実行するプログラムを記録したコンピュータ読み取り可能な記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１６３】
１０１    ネットワークインタフェース(Network I/F)
１０２    ＤＲＡＭ
１０３    ＣＰＵ
１０４    ＲＯＭ
１０５    ＲＩＰ制御部
１０６    圧縮・伸張ｍｏｄｕｌｅ
１０７    ＳＲＡＭ
１０８    操作部Ｉ／Ｆ
１０９    操作部
１１０    ＡＴＡ Ｉ／Ｆコントローラ
１１１    ＲＡＩＤコントローラ
１１２    ＣＭＤ解析部
１１３    Ｉ／Ｏコントローラ
１１４    ＤＭＡ ｃｈ１
１１５    ＤＭＡ ｃｈ２
１１６    ＨＤＤ１
１１７    ＨＤＤ２
１１８    プリンタ(Printer)画像処理部
１１９    プリンタエンジン(Printer Engine)Ｉ／Ｆ
１２０    プリンタエンジン(Printer Engine)
１２１    スキャナ(Scanner)画像処理部
１２２    スキャナ(Scanner)Ｉ／Ｆ
１２３    スキャナ(Scanner)
【図１】
2010026961.tif 000003
【図２】
2010026961.tif 000004
【図３】
2010026961.tif 000005
【図４】
2010026961.tif 000006
【図５】
2010026961.tif 000007
【図６】
2010026961.tif 000008
【図７】
2010026961.tif 000009
【図８】
2010026961.tif 000010
【図９】
2010026961.tif 000011
【図１０】
2010026961.tif 000012
【図１１】
2010026961.tif 000013
【図１２】
2010026961.tif 000014
【図１３】
2010026961.tif 000015
【図１４】
2010026961.tif 000016
【図１５】
2010026961.tif 000017
【図１６】
2010026961.tif 000018
【図１７】
2010026961.tif 000019