(57)【特許請求の範囲】
【請求項１】
ＡＴＡ規格に準拠した複数のストレージデバイスを搭載した情報処理装置であって、
前記複数のストレージデバイスを制御する制御手段と、
ＡＴＡ規格に準じて定義した独自の拡張コマンドに対して、少なくとも、前記複数のストレージデバイスの中から一つを指定する選択番号と、一つ以上の通常コマンドの種類とを設定する設定手段と、
前記拡張コマンドに対して、前記選択番号で指定されたストレージデバイスにアクセスする場合の条件を設定する条件設定手段とを有し、
前記制御手段は、
前記拡張コマンドを受信して、当該拡張コマンドの設定内容を保持する保持手段と、
通常コマンドを受信すると、前記保持手段に保持した条件を満足しているかどうかを判定し、前記条件を満たしている場合は、前記選択番号で指定されたストレージデバイスに対して当該通常コマンドを送信し、前記条件を満たしていない場合は、マスタであるストレージデバイスに対して前記通常コマンドを送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記条件は、前記通常コマンドを前記選択番号で指定されたストレージデバイスに対して送信する回数であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記保持手段は更に、前記条件設定手段により設定された特定のフラグを保持し、
前記送信手段は、前記通常コマンドを受信した場合に、前記保持手段に保持した前記特定のフラグが有効であるか否かに基づき、当該通常コマンドを、前記選択番号で指定されたストレージデバイスに対して送信するか否かを制御することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
ＡＴＡ規格に準拠した複数のストレージデバイスを搭載した情報処理装置を制御する制御方法であって、
設定手段が、ＡＴＡ規格に準じて定義した独自の拡張コマンドに対して、少なくとも、前記複数のストレージデバイスの中から一つを指定する選択番号と、一つ以上の通常コマンドの種類とを設定する設定工程と、
条件設定手段が、前記拡張コマンドに対して、前記選択番号で指定されたストレージデバイスにアクセスする場合の条件を設定する条件設定工程と、
保持手段が、前記拡張コマンドを受信して、当該拡張コマンドの設定内容を保持する保持工程と、
送信手段が、通常コマンドを受信すると、前記保持工程で保持した条件を満足しているかどうかを判定し、前記条件を満たしている場合は、前記選択番号で指定されたストレージデバイスに対して当該通常コマンドを送信し、前記条件を満たしていない場合は、マスタであるストレージデバイスに対して前記通常コマンドを送信する送信工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項５】
規格に準拠した複数のストレージデバイスを接続可能な情報処理装置であって、
データを処理する処理手段と、
前記複数のストレージデバイスを制御する制御手段と、を有し、
前記処理手段は、前記制御手段によりアクセスされるストレージデバイスを指示する第１の指示情報と、前記規格に準拠した通常コマンドの種類を指示する第２の指示情報とを、前記規格に準拠した拡張コマンドに設定して、当該拡張コマンドを前記制御手段に送信し、
前記制御手段は、前記拡張コマンドを受信して前記第１の指示情報と前記第２の指示情報を保持し、
前記制御手段は、前記拡張コマンドの送信後に前記処理手段から送信された、前記規格に準拠した通常コマンドを受信した場合に、当該通常コマンドが前記第２の指示情報で指示される種類のコマンドであるかどうかを判定し、前記第２の指示情報で指示される種類のコマンドであると判定すると、前記通常コマンドに基づいて前記第１の指示情報で指示されているストレージデバイスへのアクセスを実行し、前記第２の指示情報で指示される種類のコマンドでないと判定されると、前記通常コマンドに基づいて、マスタであるストレージデバイスへのアクセスを実行することを特徴とする情報処理装置。
【請求項６】
前記拡張コマンドの送信後に前記処理手段から送信される通常コマンドであって、前記第２の指示情報で指示される種類の通常コマンド及び前記第２の指示情報で指示される種類のコマンドでない通常コマンドは、ストレージデバイスの情報を取得するためのコマンドであることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記拡張コマンドの送信後に前記処理手段から送信される通常コマンドであって、前記第２の指示情報で指示される種類の通常コマンド及び前記第２の指示情報で指示される種類のコマンドでない通常コマンドは、ストレージデバイスの設定に関わるコマンドであることを特徴とする請求項５又は６に記載の情報処理装置。
【請求項８】
前記制御手段は、前記通常コマンドに基づく前記第１の指示情報に対応するストレージデバイスへのアクセスの回数が所定値になると、前記通常コマンドに基づく前記第１の指示情報に対応するストレージデバイスへのアクセスを行わないことを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記制御手段はさらに、前記拡張コマンドに含まれる特定のフラグを保持し、
前記通常コマンドを受信した場合に、保持した前記特定のフラグが有効であるか否かに基づき、当該通常コマンドを、前記第１の指示情報で指示されたストレージデバイスに対して送信するか否かを制御することを特徴とする請求項５に記載の情報処理装置。
【請求項１０】
前記規格は、ＡＴＡ規格であることを特徴とする請求項５乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
規格に準拠した複数のストレージデバイスを接続可能なミラーリングシステムであって、
データを処理する第１のコントローラと、
前記第１のコントローラと前記複数のストレージデバイスとの間のデータ転送制御を実行する第２のコントローラと、を有し、
前記第１のコントローラは、前記第２のコントローラに対して、ストレージデバイスを指示する第１の指示情報と、コマンドの種類を指示する第２の指示情報とを含む、前記規格に準拠した拡張コマンドを送信し、
前記第２のコントローラは、前記第１のコントローラから送信された前記拡張コマンドに含まれる前記第１の指示情報と前記第２の指示情報を保持する保持手段と、
前記第１のコントローラから送信されたコマンドが、ストレージデバイスの情報を取得するコマンドまたはストレージデバイスの設定に関わるコマンドである場合において、当該コマンドが、前記保持手段に保持されている前記第２の指示情報で指示されている種類のコマンドである場合は、当該コマンドを、前記第１の指示情報で指示されているストレージデバイスに送信し、当該コマンドが、前記保持手段に保持されている前記第２の指示情報で指示されている種類のコマンドでない場合は、当該コマンドを、前記複数のストレージデバイスのうち、マスタであるストレージデバイスに転送する転送手段と、
を有することを特徴とするミラーリングシステム。
【請求項１２】
前記規格はＳＡＴＡ規格であることを特徴とする請求項１１に記載のミラーリングシステム。
【請求項１３】
規格に準拠した複数のストレージデバイスを接続可能なＲＡＩＤ制御装置であって、
ホストコントローラから送信されたコマンドが、前記規格に準じて独自に定義した拡張コマンドである場合、当該拡張コマンドに含まれる、コマンドの種類を指示する第１の指示情報と、ストレージを指示する第２の指示情報とを保持する保持手段と、
前記ホストコントローラから送信されたコマンドが、ストレージデバイスの情報を取得するコマンドまたはストレージデバイスの設定に関わるコマンドである場合において、当該コマンドが、前記保持手段に保持されている前記第１の指示情報で指示されている種類のコマンドである場合は、当該コマンドを、前記第２の指示情報で指示されているストレージデバイスに転送し、当該コマンドが、前記保持手段に保持されている前記第１の指示情報で指示されている種類のコマンドでない場合は、当該コマンドを、前記複数のストレージデバイスのうち、マスタであるストレージデバイスに転送する転送手段と、
を有することを特徴とするＲＡＩＤ制御装置。
【請求項１４】
前記規格はＳＡＴＡ規格であることを特徴とする請求項１３に記載のＲＡＩＤ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージデバイスを搭載する情報処理装置及びその制御方法と、ミラーリングシステム及びＲＡＩＤ制御装置に関する。
【背景技術】
【０００２】
ハードディスク装置（以下、ＨＤＤ）やＳＳＤ（Solid State Drive）に代表されるＳＡＴＡ（Serial Advanced Technology Attachment）規格に準拠したストレージデバイスがある。これらストレージデバイスでは、情報取得系コマンド群（IdentifyDvice／Smartコマンドなど）やセキュリティ系コマンド群（Security Set Password／Security Unlockコマンドなど）を用いて、デバイスの故障予測やパスワードによるセキュリティを図ることができる。
【０００３】
また、高速化や信頼性の向上を目的として、ＨＤＤやＳＤＤを複数個使用することでストライピングやミラーリングなどのＲＡＩＤ（Redundant Arrays of Independent Disks）処理が実施されている。
【０００４】
前述のような複数個のストレージデバイスを持つシステムにおいて、故障予測やパスワードによるセキュリティを実現するためには、各ストレージデバイスに対して個別にアクセスできる必要性がある。ここで、装置Ａに対してＲＡＩＤオプション装置Ｂとして接続されるストレージデバイスの製品形態では、装置Ａと装置ＢはＳＡＴＡ規格で定義された１口（本）のＳＡＴＡ‐ＩＦ（ケーブル）で接続される。そして装置Ｂと複数個のストレージデバイス（例えば、ＨＤＤ）が複数口（本）のＳＡＴＡ‐ＩＦ（ケーブル）で接続されることになる。この場合、このストレージデバイスは、装置Ａからは通常アクセスとして一つのマスタストレージデバイスとして認識され、その先のＲＡＩＤオプション装置Ｂによって複数個のストレージデバイスが制御されている。
【０００５】
従って、ＳＡＴＡ規格のホスト側である装置Ａからは、通常、マスタストレージデバイスのみにアクセス可能であって、他のストレージデバイスにはアクセスすることができない。ゆえに故障予想やパスワードによるセキュリティ強化も中途半端にしか対応することができないことになる。
【０００６】
例えば、特許文献１では、装置Ａと装置Ｂの接続形態と同じ状況下で、ＳＡＴＡ‐ＩＦ（ケーブル）とは別に専用の通信ラインを持つ提案がされている。確かに特許文献１で説明されている手法は、ＨＤＤの落下時におけるヘッドの退避処理のようなリアルタイム性が要求される場合においては有効な方法である。また、特許文献１の方法を用いれば、装置Ａと装置Ｂとが専用通信ラインを介して対話し、個別のＨＤＤに対しての情報取得や設定を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２５１１２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１で説明されるようなリアルタイム性を必要としない場合には、専用通信ライン分のコストＵＰ、制御の煩雑性及び取り付け時の手間などの問題点が発生する。
【０００９】
本発明の目的は、上記従来技術の問題点を解決することにある。
【００１０】
本願発明は、ＡＴＡ規格に準拠した通常のインターフェースを用いて個別のストレージデバイスに対する情報取得又は設定を行うことができる技術を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＡＴＡ規格に準拠した複数のストレージデバイスを搭載した情報処理装置であって、
前記複数のストレージデバイスを制御する制御手段と、
ＡＴＡ規格に準じて定義した独自の拡張コマンドに対して、少なくとも、前記複数のストレージデバイスの中から一つを指定する選択番号と、一つ以上の通常コマンドの種類とを設定する設定手段と、
前記拡張コマンドに対して、前記選択番号で指定されたストレージデバイスにアクセスする場合の条件を設定する条件設定手段とを有し、
前記制御手段は、
前記拡張コマンドを受信して、当該拡張コマンドの設定内容を保持する保持手段と、
通常コマンドを受信すると、前記保持手段に保持した条件を満足しているかどうかを判定し、前記条件を満たしている場合は、前記選択番号で指定されたストレージデバイスに対して当該通常コマンドを送信し、前記条件を満たしていない場合は、マスタであるストレージデバイスに対して前記通常コマンドを送信する送信手段と、
を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数のストレージデバイスを搭載する情報処理装置において、専用通信ラインを用いることなしに、ＡＴＡ規格に準拠した通常のインターフェースを用いて個別のストレージデバイスに対する情報取得又は設定を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態に係る複合機の構成を主制御部の構成を中心に示すブロック図。
【図２】本実施形態に係るＲＡＩＤ制御装置の内部構成例を説明するブロック図。
【図３】２個のＨＤＤを用いてミラーリングシステムを構築した構成例を示す図。
【図４】本実施形態に係るミラーリングシステムを説明する図。
【図５Ａ】本実施形態に係るＭＦＰのメインコントローラによる処理を説明するフローチャート。
【図５Ｂ】本実施形態に係るＲＡＩＤ制御装置のＣＰＵによる制御処理を説明するフローチャート。
【図６】拡張コマンドが定義するレジスタ値の一例を示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、本発明の情報処理装置の実施形態を複合機を用いて説明する。
【００１５】
図１は、本実施形態に係る複合機（ＭＦＰ）の構成を主制御部（メインコントローラ）の構成を中心に示すブロック図である。
【００１６】
ＣＰＵ（中央処理演算器）１０１は、システム制御や演算処理を行う。メモリ制御部１０２は、各種メモリデバイスへの入出力制御やＤＭＡ（ダイレクト・メモリ・アクセス）制御を行う。ＲＯＭ１０３は、フラッシュメモリに代表されるリード専用メモリで、起動プログラム、各種処理及び制御プログラムや制御パラメータを格納している。ＲＡＭ１０４は、ＤＤＲ（Double-Data-Rate）メモリに代表される書き換え専用メモリで、プログラムの作業領域や印刷データの格納領域等の用途に用いられる。
【００１７】
ＬＡＮ−ＩＦ部１０５は、このＭＦＰに接続されるローカル・エリア・ネットワーク１０６とのインターフェイスを行う。一般的にはＴＣＰ／ＩＰプロトコルを用い、ネットワークケーブルを介して外部ホストコンピュータ１０７などのネットワーク対応機器と接続され、ネットワーク経由で印刷データを受信して印刷を行う。リーダ・インタフェース部１０８は、スキャナ部１０９との通信制御を行い、スキャナ部１０９によってスキャンして得られた画像データを入力することでコピー機能を実現する。ＦＡＸ−ＩＦ部１１０は、ＦＡＸ装置１１１との通信制御を行い、電話回線に接続されたＦＡＸ装置との間でデータの送受信を行う。画像処理部１１２は、ＬＡＮ−ＩＦ部１０５、リーダインタフェース部１０８、ＦＡＸ−ＩＦ部１１０を介して取り込んだ画像データに対して、各種画像処理を行う。
【００１８】
パネルＩＦ部１１３は、操作パネル１１４との通信制御を行う。ＵＩ（ユーザ・インターフェイス）として、操作パネル上の液晶表示やボタン等を操作することにより、このＭＦＰの各種設定及び状態の確認ができる。
【００１９】
ＨＤＤ−ＩＦ部１１５は、ＡＴＡ規格に準拠したハードディスク装置（ＨＤＤ）（ストレージデバイス）１１７との通信制御を行う。ＨＤＤ１１７は不揮発性の大容量記憶装置であり、ファイルの保存や印刷データの一時格納場所として使用する。尚、本実施形態では、ＨＤＤ１１７を用いて説明するが、ＡＴＡ規格に準拠したデバイス、例えばＳＳＤ等であっても構わない。
【００２０】
ここで、このシステム構成例では、ＨＤＤ−ＩＦ部１１５とＨＤＤ１１７の間にＲＡＩＤ制御装置１１６を装着した例を示す。このＲＡＩＤ制御装置１１６は、複数のＨＤＤ１１７を用いてストライピングやミラーリング制御を行う。尚、本実施形態では、ミラーリング処理を前提として説明する。
【００２１】
ビデオＩＦ部１１８は、印刷部１１９とのコマンド／ステータスの通信制御や印刷データの転送を行う。印刷部１１９は、ここでは図示しないが印刷装置本体と給紙系及び排紙系から構成され、主にビデオＩＦ部１１８からのコマンド情報に従い、印刷データを基に紙（シート）上に画像を印刷する。システムバス１２０は、制御バス、データバス及び任意ブロック間のローカルバスを便宜的にまとめて表現したものである。
【００２２】
図２は、本実施形態に係るＲＡＩＤ制御装置（ＲＡＩＤコントローラ）１１６の内部構成例を説明するブロック図である。
【００２３】
ＣＰＵ（中央処理演算器）２０１は、システム制御、ＲＡＩＤ処理、演算処理及びＡＴＡ規格のコマンド処理などを行う。メモリ制御部２０２は、各種メモリデバイスへの入出力制御やＤＭＡ（ダイレクト・メモリ・アクセス）制御を行う。ＲＯＭ２０３は、起動プログラム、各種処理及び制御プログラムや制御パラメータを格納している。ＲＡＭ２０４は、プログラムの作業領域や一時的なデータの格納領域、レジスタ等の用途に用いられる。デバイスインタフェース部２０５は、デバイス側、図１の主制御部のＨＤＤ−ＩＦ１１５をホスト側としてＡＴＡ規格に準拠したコマンドプロトコル処理を行う。ホストＩＦ部２０６は、ホスト側、ＨＤＤ１１７をデバイス側としてＡＴＡ規格に準拠したコマンドプロトコル処理を行う。ＲＡＩＤ処理部２０７は、主制御部からＨＤＤ１１７への書き込み及び読み出しデータに対してミラーリング処理を行う。
【００２４】
ここで、ミラーリング処理とは、一般的に同容量のＨＤＤを２個（マスタ、バックアップ）接続して、書き込み時には、これら２個のＨＤＤの同じ領域に対して同じデータの書き込み処理を行う。そして読み出し時には、これら２個のＨＤＤのうち、マスタ側のＨＤＤからデータの読み出しを実行する。これによって、常に２個のＨＤＤに等しいデータが保持されるため、例えマスタ側のＨＤＤが故障して読み出し不能状態に陥っても、バックアップ側のＨＤＤにデータが保護されていることになる。また、異常が発生した時には、バックアップ側のＨＤＤに切り替えることでシステムダウンも回避できる。システムバス２０８は、制御バス、データバス及び任意ブロック間のローカルバスを便宜的にまとめて表現したものである。
【００２５】
以上図１及び図２で説明したシステムの構成例に基づいて、本実施形態の詳細について説明する。
【００２６】
図３は、２個のＨＤＤを用いてミラーリングシステムを構築した一般的な構成例を示す図である。
【００２７】
メインコントローラ３０１は、オプション機能としてミラーリングコントローラボード３０２と、ＳＡＴＡケーブル３０３とシリアルケーブル３０４を介して接続されている。ミラーリングコントローラボード３０２には、マスタＨＤＤ３０５とバックアップＨＤＤ３０６が、それぞれＳＡＴＡケーブル３０７，３０８を介して接続されている。
【００２８】
前述したように、メインコントローラ３０１からのデータアクセスでは、データの書き込み時はマスタＨＤＤ３０５とバックアップＨＤＤ３０６の双方に対して書き込みが行われる。またデータの読み出し時は、マスタＨＤＤ３０５からのみデータが読み出される。また、データ領域以外のアクセス、即ち、個別のＨＤＤに対する情報取得や設定に関わる情報取得系コマンド群やセキュリティ系コマンド群については、マスタＨＤＤ３０５にしか処理が行われない（図３の実線矢印３０９）。その理由は、ＳＡＴＡ規格で定義されたコマンド群は、複数のＨＤＤを選択的にアクセスする手段をもたないからである。従って、バックアップＨＤＤ３０６に対して個別に情報取得や設定を実施したい場合には、シリアルＩＦなどの別のアクセス手段３０４を介して実施しなければならなかった（図３の破線矢印３１０）。
【００２９】
図４は、本実施形態に係るミラーリングシステムを説明する図である。
【００３０】
メインコントローラ４０１は、ミラーリングコントローラボード４０２と、ＳＡＴＡケーブル４０３を介して接続されている。ミラーリングコントローラボード４０２には、マスタＨＤＤ４０４とバックアップＨＤＤ４０５が、それぞれＳＡＴＡケーブル４０６，４０７を介して接続されている。図３との違いは、メインコントローラ４０１とミラーリングコントローラ４０２との接続に専用通信ラインとしてシリアルＩＦ３０４を用いないことにある。
【００３１】
ところで、ＳＡＴＡ規格の各コマンドは、PIO-in、PIO-out、Non-data、DMA-in、DMA-out等に代表される幾つかの転送プロトコルと、そのコマンド特有に定義されたレジスタ値とから構成される。そして、各コマンドに対してコマンド・コードが割りつけられている。このコマンド・コードの中に、一般的にベンダーユニークと呼ばれる、コードのみが割り付けられていて、転送プロトコルとレジスタ値が未定義のコマンドが存在する。本実施形態では、未定義のコマンドに対して、ＳＡＴＡ規格で定義された転送プロトコルと独自のレジスタの定義を設定することで独自に作成した拡張コマンドを利用する。
【００３２】
図６は、拡張コマンドが定義するレジスタ値の一例を示す図である。
【００３３】
拡張コマンドには、複数のＨＤＤから１つを選択するための選択番号レジスタ６０１と選択されたＨＤＤに送信するＳＡＴＡ規格に定義された通常コマンドレジスタ１〜Ｎと、それに付随する情報、例えばサブコマンドレジスタ１〜Ｎが指定される。これらは図６の６０２〜６０７で示されている。
【００３４】
ここでサブコマンドとは、通常コマンドで定義された特定の項目を選択する場合などに用いる付属情報である。通常コマンドとサブコマンド（６０２〜６０７）の個数は任意であり、最低一つ以上を指定できればよい。また、通常コマンドに伴うサブコマンドは制御の必要性に応じて指定すればよく、不要ならばなくてもよい。
【００３５】
更に、有効回数レジスタ６０８と有効フラグレジスタ６０９とが設定される。有効回数とは、選択されたＨＤＤに対して、指定された通常コマンド（６０２，６０４，６０６）を用いてアクセスする回数の上限値を設定する。この回数Ｍとして、１回から無限回までの値を任意に設定できる。ここでは、無限回を設定したい場合、有効回数レジスタ６０８に「０」を設定する。例えば、選択したＨＤＤに対して、有効回数ではなく、ある期間について任意回数のアクセスを指定したい場合には、有効回数レジスタ６０８に「０」を設定し、有効フラグ６０９を「１」に設定することで可能となる。
【００３６】
但し、この場合は、アクセス期間を終了するためには拡張コマンドを再発行し、有効フラグ６０９に「０」を設定して無効にしなければならない。ここで、回数の指定をやめてアクセス期間のみで制御する場合には、有効回数レジスタ６０８を設ける必要はなく、有効フラグレジスタ６０９のみで制御すればよいことは言うまでもない。更に、選択したＨＤＤに対するアクセス回数を１回のみとし、複数回のアクセスを許可しない場合は、有効回数レジスタ６０８及び有効フラグレジスタ６０９を設ける必要はない。これ以後、内容で定義した拡張コマンドをSelectChannelコマンドと呼ぶことにする。
【００３７】
本実施形態では、図４の４０９で示すように、メインコントローラ４０１のドライバソフトが、SelectChannelコマンドをミラーリングコントローラ４０２に発行する。これにより、選択されたバックアップＨＤＤ４０５に対して、指定された回数（又は一定期間）、指定された通常コマンドによってアクセス可能とするパス４１０を形成する。また、それ以外の通常コマンドは、マスタＨＤＤ４０４へのアクセスパス４０８として処理される。
【００３８】
図５Ａは、本実施形態に係るＭＦＰのメインコントローラによる処理を説明するフローチャートである。尚、この処理を実行するプログラムはＲＯＭ１０３に記憶されており、実行時、ＲＡＭ１０４に展開されＣＰＵ１０１の制御の下に実行される。ここでは、図４の構成で、選択したＨＤＤ（本例ではバックアップＨＤＤ４０５）に対して、ＳＡＴＡ規格で定義された情報取得系及びセキュリティ系などの通常コマンドを発行する場合の処理で説明する。
【００３９】
まずＳ５０１の条件設定処理で、メインコントローラ４０１に搭載されるドライバソフトは、SelectChannelコマンドのレジスタに、選択番号６０１、通常コマンドと付属情報６０２〜６０７、有効回数６０８及び有効フラグ６０９を設定する。次にＳ５０２に進み、ドライバソフトは、ミラーリングコントローラ４０２に対して、SelectChannelコマンドを送信する。
【００４０】
図５Ｂは、本実施形態に係るＲＡＩＤ制御装置１１６のＣＰＵ２０１による制御処理を説明するフローチャートである。尚、この処理を実行するプログラムはＲＯＭ２０３に記憶されており、ＣＰＵ２０１の制御の下に実行される。
【００４１】
まずＳ５１０で、図５ＡのＳ５０２で送信されたSelectChannelコマンドの受信を待ち、受信するとＳ５１１に進み、そのコマンドのレジスタの内容をＲＡＭ２０４に記憶する。そしてＳ５１２に進み、そのコマンドで指定された通常コマンド６０２〜６０７の受信を待つ。ここで、通常コマンドとは、選択したＨＤＤに対する情報取得や設定のためのコマンドに限定している。図４で説明したように、データ領域への書き込み及び読み出しに対する通常コマンド群は、全てマスタＨＤＤ４０４へ送信されることを前提としている。
【００４２】
こうしてＳ５１２で、指定された通常コマンド（６０２など）を受信した場合はＳ５１３に進み、拡張コマンドで設定された設定内容を満足しているかどうかを判定する。具体的には、指定された有効期限又は回数（６０８，６０９）の上限値を超えていないかを判定する。ここでは図示しないが、先に説明したように回数で指定した場合には、指定回数を超えていないかを判定し、超えていなければ内部カウンタをカウントＵＰ（Ｍ→Ｍ＋１）を実行している。また有効期限で指定した場合には、有効フラグが有効か無効かを判定している。この有効期限での判定では、有効から無効にするためにSelectChannelコマンドを受信したことを前提としている。
【００４３】
Ｓ５１３での判定の結果、有効期限が切れていない場合はＳ５１４に進み、更に、指定された付属情報であるサブコマンドの内容を比較して、条件が一致しているかどうかを判定する。Ｓ５１４の比較処理の結果、条件が一致していると判定するとＳ５１５に進み、受信した通常コマンドをバックアップＨＤＤ４０５に対して送信する。
【００４４】
一方、Ｓ５１３での有効期限切れの判定の結果、有効期限が切れていると判定した場合、又はＳ５１４でのサブコマンドの比較処理の結果、条件が不一致である場合はＳ５１６に進み、受信した通常コマンドをマスタＨＤＤ４０４へ送信する。
【００４５】
本実施形態で説明したように、SelectChannelコマンドを用いることにより、選択したＨＤＤに対して所望の期間、指定した通常コマンドを通すパスを形成することができ、各ＨＤＤ個別に情報取得や設定が可能となる。また、選択したＨＤＤに対して処理をしている間、即ち、有効期限内であっても、メインコントローラからＨＤＤの切り替え処理を実施する必要がなく、それ以外の通常コマンドは全てマスタＨＤＤ４０４へ送信される。よって、ＨＤＤへのアクセスが全体として効率的に処理されるという効果がある。
【００４６】
本実施形態によれば、複数のストレージデバイスを搭載するＭＦＰにおいて、専用通信ラインを用いることなしに、ＳＡＴＡ規格に準拠した通常のインターフェースを用いて個別のストレージデバイスに対する情報取得又は設定を行うことができる。また、インターフェースに接続されるオプション装置の取り付け作業も簡素化できる。
【００４７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005775367.tif 000002
【図２】
0005775367.tif 000003
【図３】
0005775367.tif 000004
【図４】
0005775367.tif 000005
【図５Ａ】
0005775367.tif 000006
【図５Ｂ】
0005775367.tif 000007
【図６】
0005775367.tif 000008