(57)【要約】【課題】汎用ＯＳをそのまま使用して、複数のストレージデバイスへのアクセスを可能とすることを目的とする。【解決手段】コントローラは、複数のストレージデバイスのそれぞれからマスターブートレコードの情報を取得し、複数のストレージデバイスを１つのストレージデバイスと見せかけるための仮想のストレージデバイスのマスターブートレコードの情報を生成する。ブリッジは、仮想のストレージデバイスのマスターブートレコードの情報を、複数のストレージデバイスのうち、第１のストレージデバイスのマスターブートレコードの領域に上書きする。【選択図】図１２
2019128891.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージデバイスを制御し、前記複数のストレージデバイスとの間でデータの送受信を行うコントローラと、
１系統の所定のインターフェイスで前記コントローラと通信を行い、複数の所定のインターフェイスそれぞれで前記複数のストレージデバイスそれぞれと通信を行い、前記コントローラと前記複数のストレージデバイスとの通信の橋渡しを行うブリッジと、
を有し、
前記コントローラは、前記複数のストレージデバイスのそれぞれからマスターブートレコードの情報を取得し、前記複数のストレージデバイスを１つのストレージデバイスと見せかけるための仮想のストレージデバイスのマスターブートレコードの情報を生成し、
前記ブリッジは、前記仮想のストレージデバイスのマスターブートレコードの情報を、前記複数のストレージデバイスのうち、第１のストレージデバイスのマスターブートレコードの領域に上書きする情報処理装置。
【請求項２】
前記情報処理装置の全体を制御するメインＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を更に有し、
前記メインＣＰＵは、前記コントローラを介して前記第１のストレージデバイスのマスターブートレコードの領域に記憶されている前記仮想のストレージデバイスのマスターブートレコードの情報を取得し、前記仮想のストレージデバイスのマスターブートレコードの情報に基づき前記仮想のストレージデバイスのアクセス情報を作成する請求項１記載の情報処理装置。
【請求項３】
前記コントローラは、前記メインＣＰＵより仮想ドライブモード移行コマンドを受信すると、前記複数のストレージデバイスのそれぞれからマスターブートレコードの情報を取得し、前記仮想のストレージデバイスのマスターブートレコードの情報を生成する請求項２記載の情報処理装置。
【請求項４】
前記ブリッジは、前記メインＣＰＵより前記仮想のストレージデバイスに対するアクセスコマンドを受信すると、前記アクセスコマンドに基づき前記複数のストレージデバイスのうちどのストレージデバイスに対するアクセスかを判定し、アクセス先のストレージデバイスが前記第１のストレージデバイス以外のストレージデバイスであった場合、前記アクセスコマンドに関するパーティション情報とアドレス情報とを前記アクセス先のストレージデバイスのパーティション情報とアドレス情報とに変換する請求項２又は３記載の情報処理装置。
【請求項５】
前記１系統の所定のインターフェイスは、１系統のＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）  インターフェイスである請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
前記複数の所定のインターフェイスは、複数のＳＡＴＡ  インターフェイスである請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記情報処理装置は、画像形成装置である請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
複数のストレージデバイスを制御し、前記複数のストレージデバイスとの間でデータの送受信を行うコントローラと、
１系統の所定のインターフェイスで前記コントローラと通信を行い、複数の所定のインターフェイスそれぞれで前記複数のストレージデバイスそれぞれと通信を行い、前記コントローラと前記複数のストレージデバイスとの通信の橋渡しを行うブリッジと、
を有する情報処理装置の制御方法であって、
前記コントローラが、前記複数のストレージデバイスのそれぞれからマスターブートレコードの情報を取得し、前記複数のストレージデバイスを１つのストレージデバイスと見せかけるための仮想のストレージデバイスのマスターブートレコードの情報を生成し、
前記ブリッジが、前記仮想のストレージデバイスのマスターブートレコードの情報を、前記複数のストレージデバイスのうち、第１のストレージデバイスのマスターブートレコードの領域に上書きする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
近年、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）は、コンピュータの記憶装置としてだけでなく、ＨＤＤレコーダやＭＦＰ（ＭｕｌｔＩ／Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）等の電子機器のデータ記憶装置としても多く利用されてきている。また、記憶装置は、大量の画像データや動画データを格納するために、記憶容量の大容量化が進んできている。
そのため、デフォルト状態で接続されているＨＤＤに対して、容量が不足してきた場合には、複数のＨＤＤを増設する等の対応がとられている。
また、高速アクセスを実現するために大容量のＨＤＤとは別にＳＳＤを増設し、アクセス時間の短縮の必要のあるデータに関してはＳＳＤに、データクセスに時間がかかっても問題ないデータの受け渡しにはＨＤＤを使用する等の使い分けも可能となってきている。
これらＨＤＤやＳＳＤの接続は、一般的にはＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）といわれる規格が使用されており、規格で決められたプロトコルに従って、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）からの制御が行われる。
コンピュータや各種電子機器のＨＤＤのアクセスは、ＣＰＵからの制御により、コントローラを介して行うこととなる。それらＣＰＵを動作させるソフトウェアであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、そのＯＳの下で、コントローラやＨＤＤの制御を行うドライバ等のソフトウェアの開発には、非常に時間とコストとが掛かる。また、バグによる動作不良等のリスクも高いものとなっている。
そこで近年では、コンピュータだけでなく、各種電気機器に関しても、Ｗｉｎｄｏｗｓ等の汎用ＯＳを使用し、ＣＰＵの制御を行う。また、コントローラやＨＤＤの制御を行うＳＡＴＡのドライバに関しても、基本的な動作に関しては汎用のドライバを使用することが多くなってきている。
しかし、コントローラからのＳＡＴＡ  Ｉ／Ｆは１系統のみなのに対して、ＳＡＴＡ−ＳＡＴＡブリッジを介して、複数のＨＤＤを接続して使用する等といった特別な構成をもったシステムに対しては、汎用ＯＳ、汎用ドライバでは対応できない問題がある。
そこで従来技術として、特許文献１のような技術が提案されている。
特許文献１では、複数のドライブの論理ドライブ名を同一名称とすること、同一名としたドライブ容量の総和をその論理ドライブの容量としてそれらの情報を電源立ち上げ時に読み込む設定ファイルに記載することで、複数のドライブを１つのドライブとして扱っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２９８０３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の技術では、コントローラと各ドライブとの接続は個別に接続されている状態であるため、コントローラ側に１系統しかＳＡＴＡ  Ｉ／Ｆがない場合の複数のドライブの接続には対応できない。
また、特許文献１の技術では、ＭＳ−ＤＯＳのシステムを前提に論理ドライブ名の統一や、設定ファイルの書き換え等の方法を記載しているため、ＳＡＴＡのプロトコルにおいては、同様の方法では対応できない。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、複数のストレージデバイスを制御し、前記複数のストレージデバイスとの間でデータの送受信を行うコントローラと、１系統の所定のインターフェイスで前記コントローラと通信を行い、複数の所定のインターフェイスそれぞれで前記複数のストレージデバイスそれぞれと通信を行い、前記コントローラと前記複数のストレージデバイスとの通信の橋渡しを行うブリッジと、を有し、前記コントローラは、前記複数のストレージデバイスのそれぞれからマスターブートレコードの情報を取得し、前記複数のストレージデバイスを１つのストレージデバイスと見せかけるための仮想のストレージデバイスのマスターブートレコードの情報を生成し、前記ブリッジは、前記仮想のストレージデバイスのマスターブートレコードの情報を、前記複数のストレージデバイスのうち、第１のストレージデバイスのマスターブートレコードの領域に上書きする。
【発明の効果】
【０００６】
本発明によれば、汎用ＯＳをそのまま使用して、複数のストレージデバイスへのアクセスを可能とすることができる。
【図面の簡単な説明】
【０００７】
【図１】画像形成装置のハードウェア構成の一例を示す図である。
【図２】ＳＡＴＡ−ＳＡＴＡブリッジ及びＳＡＴＡコントローラ等の詳細を示す図である。
【図３】スキャンされた画像データをＨＤＤ−Ａに格納する動作を示す図である。
【図４】ＨＤＤ−Ａの内部の構成の一例を示す図である。
【図５】ＨＤＤ−Ｂの内部の構成の一例を示す図である。
【図６】ＳＡＴＡシステムの一例を表した図である。
【図７】Ｓ１におけるデータの受け渡しの説明をするための図である。
【図８】Ｓ２におけるデータの受け渡しの説明をするための図である。
【図９】仮想ドライブＡの構成を示した図（その１）である。
【図１０】仮想ドライブＡの構成を示した図（その２）である。
【図１１】Ｓ３におけるデータの受け渡しの説明を行うための図である。
【図１２】情報処理の一例を示すフローチャートである。
【図１３】Ｓ１の処理の一例を示すフローチャートである。
【図１４】Ｓ２の処理の一例を示すフローチャートである。
【図１５】Ｓ３の処理の一例を示すフローチャートである。
【図１６】データライトアクセスを行う際の処理の一例を示すフローチャートである。
【図１７】データリードアクセスを行う際の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
複数のＨＤＤを１つの仮想ドライブとして、汎用ＯＳに認識させたままアクセス制御を行う処理等の説明を行う。
図１は、画像形成装置１０１のハードウェア構成の一例を示す図である。画像形成装置１０１は、スキャナ部１０２又はネットワ−クＩ／Ｆ１０９から入力された画像データに画像処理を施した後にプリンタ部１０８から紙面に印字して出力する。また、画像形成装置１０１は、スキャナ部１０２から入力された画像データに画像処理を施した後にネットワ−クＩ／Ｆ１０９から情報機器１１８に送信する機能も持つ。画像形成装置１０１は、情報処理装置の一例である。
スキャナ部１０２は、紙面上の画像情報を光学的に読み取り、電気信号の画像データに変換した後、スキャン画像処理部１０３に送信する。スキャン画像処理部１０３は、スキャナ部１０２から受信した画像データに画像処理を施してＳＡＴＡコントローラ１１１に送信する。メインＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０４は、画像形成装置１０１全体の制御を司る。ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０５は、メインＣＰＵ１０４で実行されるプログラムを格納すると共に一時的なデータのワークエリアとして利用される。
操作部１０６は、ユーザーに対して画像形成装置１０１の情報を通知すると共にユーザーからの操作を受け付ける。
プリント画像処理部１０７は、受信した画像データに画像処理を施した後にプリンタ部１０８に送信する。プリンタ部１０８は、プリント画像処理部１０７から受信した画像データを紙面上に印字して出力する。
【００１０】
ネットワ−クＩ／Ｆ１０９は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１１０を介して情報機器１１８と通信を行うインタフェ−スである。ＬＡＮ１１０は、画像形成装置１０１と情報機器１１８との間で通信を行うための通信網である。ここでのＬＡＮ１１０は有線、無線等物理的な接続形態は問わない。
ＳＡＴＡコントローラ１１１は、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）規格に準拠した周辺機器を制御すると共に周辺機器との間でデータの送受信を行う。ＳＡＴＡ−ＳＡＴＡブリッジ１１２は、ＳＡＴＡコントローラ１１１とＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４との通信の受け渡しを行う。ＳＡＴＡコントローラ１１１は、１系統のＳＡＴＡ  Ｉ／ＦでＳＡＴＡコントローラ１１１と通信を行い、複数のＳＡＴＡ  Ｉ／Ｆそれぞれで複数のストレージデバイス（ＨＤＤ−Ａ、ＨＤＤ−Ｂ）それぞれと通信を行い、ＳＡＴＡコントローラ１１１と複数のストレージデバイスとの通信の橋渡しを行うコントローラの一例である。
ＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４は、ＳＡＴＡコントローラ１１１からのＳＡＴＡコマンドを受けたＳＡＴＡ−ＳＡＴＡブリッジ１１２の指示に従い内部の記録媒体にデータの記録及び、削除を行うと共に内部の記録媒体からデータを読み出す。
ＦＬＡＳＨ  ＲＯＭ１１６は、メインＣＰＵ１０４で実行されるプログラム及び設定情報を記憶する。各部は図１に示すようにメインバス１１７に接続されており、メインバス１１７を介して各部のデータの受け渡しが行われる。情報機器１１８は、ＬＡＮ１１０を介して画像形成装置１０１と通信を行い、印刷ジョブの送信を行うと共に画像形成装置１０１からスキャン画像を受信する。
メインＣＰＵ１０４がＤＲＡＭ１０５又はＦＬＡＳＨ  ＲＯＭ１１６に記憶されているプログラムに基づき処理を実行することによって、画像形成装置１０１の機能が実現される。また、メインＣＰＵ１０４がＤＲＡＭ１０５又はＦＬＡＳＨ  ＲＯＭ１１６に記憶されているプログラムに基づき処理を実行することによって、後述する図１２〜図１７のフローチャートに係る処理の内、メインＣＰＵ１０４が実行する処理が実現される。
【００１１】
次にＳＡＴＡ−ＳＡＴＡブリッジ１１２及びＳＡＴＡコントローラ１１１の内部の詳細な説明を、図２を用いて行う。
ＣＰＵ−Ｂ２０４は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２全体の制御を司る。
ＳＡＴＡデバイスＩ／Ｆ部２０１は、ＳＡＴＡ規格準拠の周辺機器として振る舞い、ＳＡＴＡコントローラ１１１内にある、ＳＡＴＡ規格準拠のホストであるＳＡＴＡホストＩ／Ｆ部−Ｃ２０９と通信を行う。ＳＡＴＡホストＩ／Ｆ部−Ａ２０２は、ＣＰＵ−Ｂ２０４からのコマンド制御に従い、ＡホストＩ／Ｆ２１４を介してＳＡＴＡ規格準拠のＨＤＤ−Ａ１１３に対するデータの保存、削除、読み出し等の制御を行う。
ＳＡＴＡホストＩ／Ｆ部−Ｂ２０３は、ＣＰＵ−Ｂ２０４からのコマンド制御に従い、ＢホストＩ／Ｆ２１５を介してＳＡＴＡ規格準拠のＨＤＤ−Ｂ１１４に対するデータの保存、削除、読み出し等の制御を行う。
ＤＲＡＭ２０６は、ＣＰＵ−Ｂ２０４で実行されるプログラムを格納すると共に一時的なデータのワークエリアとして利用される。
ＦＬＡＳＨメモリ−Ｂ２０７は、ＣＰＵ−Ｂ２０４で実行されるプログラム及び設定情報を記憶する。また、本実施形態においては、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内の各種ＳＡＴＡのＩ／Ｆのドライバソフト及び、電源オンやリブート時にどのような動作モードで起動して動作を行うかという動作モード設定及び、パーティション変換情報、アドレス変換情報が格納される。
動作モード設定に関しては、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に、１つしかＨＤＤドライブが接続されていない場合にはシングモード、複数のＨＤＤが接続されている場合には仮想ドライブモードというモード設定となり、初期状態はシングルモードとなる。
本実施形態におけるＳＡＴＡシステムは仮想ドライブモードにいては、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に接続されている複数のドライブすべてをまとめて、１つの仮想ドライブとしてＯＳに認識させて、データリード及びデータライト等のＨＤＤアクセスを行う。
ＣＰＵ−Ｂ２０４がＤＲＡＭ２０６又はＦＬＡＳＨメモリ−Ｂ２０７に記憶されているプログラムに基づき処理を実行することによって、ＳＡＴＡ−ＳＡＴＡブリッジ１１２の機能が実現される。また、ＣＰＵ−Ｂ２０４がＤＲＡＭ２０６又はＦＬＡＳＨメモリ−Ｂ２０７に記憶されているプログラムに基づき処理を実行することによって、後述する図１２〜図１７のフローチャートに係る処理の内、ＣＰＵ−Ｂ２０４が実行する処理が実現される。
【００１２】
次に、ＳＡＴＡコントローラ１１１の内部の基本的な構成の説明を行う。ＳＡＴＡホストＩ／Ｆ部−Ｃ２０９は、ＳＡＴＡ規格準拠のホストとして振る舞い、ＣホストＩ／Ｆ２１３を介してＳＡＴＡ−ＳＡＴＡブリッジ１１２内にある、ＳＡＴＡ規格準拠のＳＡＴＡデバイスＩ／Ｆ部２０１と通信を行う。
ＣＰＵ−Ｃ２１０は、ＳＡＴＡコントローラ１１１全体の制御を司る。ＦＬＡＳＨ  ＲＯＭ−Ｃ２１１は、ＣＰＵ−Ｃ２１０で実行されるプログラム及び設定情報を記憶する。２１２はバスブリッジ回路であり、ＳＡＴＡコントローラ１１１と、メインバス１１７を介してメインＣＰＵ１０４との通信を司る。
図２において、ＳＡＴＡホストＩ／Ｆ部−Ｃ２０９とＳＡＴＡデバイスＩ／Ｆ部２０１との間のＩ／ＦをＣホストＩ／Ｆ２１３とする。また、ＳＡＴＡホストＩ／Ｆ部−Ａ２０２とＨＤＤ−Ａ１１３との間のＩ／ＦをＡホストＩ／Ｆ２１４、ＳＡＴＡホストＩ／Ｆ部−Ｂ２０３とＨＤＤ−Ｂ１１４との間のＩ／ＦをＢホストＩ／Ｆ２１５とする。
ＣＰＵ−Ｃ２１０がＦＬＡＳＨ  ＲＯＭ−Ｃ２１１に記憶されているプログラムに基づき処理を実行することによって、ＳＡＴＡコントローラ１１１の機能が実現される。また、ＣＰＵ−Ｃ２１０がＦＬＡＳＨ  ＲＯＭ−Ｃ２１１に記憶されているプログラムに基づき処理を実行することによって、後述する図１２〜図１７のフローチャートに係る処理の内、ＣＰＵ−Ｃ２１０が実行する処理が実現される。
【００１３】
次にスキャナ部１０２によってスキャンした画像データをＨＤＤ−Ａ１１３に格納する場合の動作に関して、図３を用いて説明する。
図３は図１より、スキャナ部１０２によってスキャンされた画像データをＨＤＤ−Ａ１１３に格納する場合の動作に関連する部分を選択した図となる。
操作部１０６において、ユーザーは画像形成装置１０１の動作設定を行う。
この場合の設定は、スキャナ部１０２によって原稿の画像データをスキャンし、所定の画像処理を実施したのち、ＨＤＤに画像データを格納するといった設定である。
操作部１０６を介した設定が完了し、実行が指示されると、メインＣＰＵ１０４は、設定に従って各部分の制御を行う。
まず、スキャナ部１０２で画像データを読み取る。読み取られた画像データはスキャン画像処理部１０３に出力される。
スキャン画像処理部１０３では、操作部１０６からのユーザーの設定を受けたメインＣＰＵ１０４からの設定値に従い、入力された画像データに対して画素処理を行う。
スキャン画像処理部１０３での処理が完了した画像データは、メインバス１１７を介してＤＲＡＭ１０５に格納される。
本実施形態では画像データをＨＤＤに格納する例となるので、格納されたデータは、メインバス１１７を介してＳＡＴＡコントローラ１１１に出力される。しかし、プリンタ部１０８によって複数枚プリントが行われる場合には、メモリ内の画像データがプリントの枚数分だけ繰り返し出力される。
【００１４】
ＳＡＴＡコントローラ１１１に入力された画像データは、ＳＡＴＡのプロトコルに従って、ＣホストＩ／Ｆ２１３を介してＳＡＴＡ−ＳＡＴＡブリッジ１１２に送られる。
ＳＡＴＡ−ＳＡＴＡブリッジ１１２では、入力された画像データをＳＡＴＡインターフェイスのプロトコルに従ってＨＤＤ−Ａ１１３又はＨＤＤ−Ｂ１１４の何れかに格納する。
本実施形態では、ＨＤＤ−Ａに格納されることとする。
これらの動作は、メインＣＰＵ１０４を動作させるために、ＦＬＡＳＨ  ＲＯＭ１１６内には電源オンの後の本実施形態におけるＳＡＴＡシステムの立ち上げ時に使用されるＯＳのデータ及び、メインＣＰＵ１０４からＳＡＴＡコントローラ１１１の制御を行うためのＳＡＴＡドライバが格納されている。
本実施形態においては、メインＣＰＵ１０４の制御を行うためのＯＳに関しては汎用ＯＳを、また、メインＣＰＵ１０４からＳＡＴＡコントローラ以下の各ＳＡＴＡのＩ／Ｆの制御を行うためのＳＡＴＡドライバに関しても、汎用ＯＳの下で制御を行うことのできる、汎用のＳＡＴＡドライバが使用されることとする。
汎用のＳＡＴＡドライバでは実現できないような、本実施形態のＳＡＴＡシステムの独自な動作を実行させるために、汎用ドライバ以外に別途、独自のＳＡＴＡドライバを用意することとする。
独自のＳＡＴＡの標準コマンドに加えて、本実施形態におけるＳＡＴＡシステムの独自の動作を実行させるための拡張コマンドも使用することとする。
拡張コマンドは独自のＳＡＴＡドライバによって動作を行うこととし、汎用ドライバと共に、ＦＬＡＳＨ  ＲＯＭ１１６内に格納されていることとする。
【００１５】
次に図４を用いて、ＨＤＤ−Ａ１１３の内部の構成に関して説明を行う。
ＨＤＤ−Ａ１１３の内部の構成は、一般的なＨＤＤ内の構成と同様に、図４のような構成となっている。
ＨＤＤ内の先頭番地にはＭＢＲ領域４０１という領域が確保されている。ＭＢＲ領域４０１にはハードディスクのパーティションの情報、システムファイルを読み込むブートコード（ＩＰＬ：ＩｎｉｔｉａｌＰｒｏｇｒａｍ  Ｌｏｒｄｅｒ）、本ＨＤＤで使用しているファイルシステム情報等が格納されている。
ＭＢＲ領域４０１に格納されているＭＢＲ情報には、ＨＤＤがいくつの領域に区切られているか、また各領域がどこからどこまでのアドレスとなっているかの情報が格納されている。ＭＢＲ情報は、マスターブートレコードの情報の一例である。
図４の例においては、ＨＤＤ−Ａ１１３内のパーティションは、第１のパーティションとして０ｘ０２００ｈ番地から０ｘ０３ＦＦｈ番地までが、第２のパーティションとして０ｘ０４００ｈ番地から０ｘ０５ＦＦｈ番地までが設定されている。
また、ＨＤＤ−Ｂ１１４の内部の構成に関しても、ＨＤＤ−Ａ１１３と同様に、図５のような内部構造となっていることとして、ここでの詳細な説明は省くこととする。
【００１６】
以降、本実施形態の特徴となる電源立ち上げ時にＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４の２つのドライブを、１つの仮想ドライブとして汎用ＯＳに取り扱わせるための動作に関して、図６から図１７までを用いて、説明を行う。
図６は、図１、図２及び図４、図５より、本実施形態の特徴となる２つのドライブを、１つの仮想ドライブとして汎用ＯＳに取り扱わせるための動作に関連する部分を選択した本実施形態におけるＳＡＴＡシステムの一例を表した図となる。
図６における各構成部分に関しては、既に図１及び図２における説明にて詳細な説明を行っているので、ここでの説明は省くこととする。
図６の構成にて、２つのドライブを、１つの仮想ドライブとして汎用ＯＳに取り扱わせるためには、以下の３つのステップにて各構成部分の制御を行う。
Ｓ１は、図６の構成に接続を行った後に最初に電源を立ち上げるときの制御となる。
メインＣＰＵ１０４は、電源がオンとなった後、汎用ＯＳ及び、汎用ＳＡＴＡドライバによる制御により、ＨＤＤ−Ａ１１３とのデータの受け渡しが可能となった状態で本実施形態におけるＳＡＴＡシステムが立ち上がる。
Ｓ２は、Ｓ１が完了した時点から、本ＳＡＴＡシステムにおける独自ＳＡＴＡドライバによる制御に基づきメインＣＰＵ１０４が、ＳＡＴＡコントローラ１１１及び、ＳＡＴＡ−ＳＡＴＡブリッジ１１２の制御を行うことにより、次回以降に立ち上がるときに使用する仮想ドライブの情報を生成し格納する。
Ｓ２が完了した後、メインＣＰＵ１０４は、メインＣＰＵ１０４及び本実施形態におけるＳＡＴＡシステムをリブートする。
リブート後のＳ３では、Ｓ２によって生成された仮想ドライブの情報を基に、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき、ＨＤＤへのアクセス情報を生成する。そのため、汎用ＯＳ自体のソフトウェアの変更等を行わずにＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４へのデータの受け渡しが可能となる。
【００１７】
図７を用いてＳ１におけるデータの受け渡しの説明を行う。
Ｓ１は、図６の構成に接続を行った後に最初に電源を立ち上げるときの制御となり、メインＣＰＵ１０４は電源がオンとなった後、ＨＤＤ−Ａ１１３とのデータの受け渡しが可能となった状態で立ち上がる。
以下にＳ１における詳細な説明を行う。
本実施形態におけるＳＡＴＡシステムの電源をオンとすると、メインＣＰＵ１０４の制御を行う汎用ＯＳはＦＬＡＳＨ  ＲＯＭ１１６からリードされ、メインＣＰＵ１０４のブートアップを実行する。
このとき、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＦＬＡＳＨメモリ−Ｂ２０７のモード情報を確認して、初期状態として設定されているシングルドライブモードにて動作することを認識する。
その後、ＳＡＴＡのＩ／Ｆを使用するということを認識すると、最初にメインＣＰＵ１０４は、汎用ＯＳの制御に基づきアイデンティファイコマンドというＳＡＴＡの標準コマンドを出力する。
アイデンティファイコマンドとは、ＳＡＴＡ  Ｉ／Ｆに接続されているドライブの情報を汎用ＯＳが入手するためのコマンドである。アイデンティファイコマンドは、ＳＡＴＡコントローラを介してＳＡＴＡ−ＳＡＴＡブリッジ１１２に入力される。
Ｓ１−１において、アイデンティファイコマンドを受け取ったＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報のリードを行う。
Ｓ１−２において、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報は、ＨＤＤ−Ａ１１３から出力され、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に読み込まれる。そして、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報は、ＳＡＴＡコントローラ１１１を介してメインＣＰＵ１０４へと入力される。
Ｓ１−３において、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報を受け取ると、その情報を基に使用するファイルシステムの選択や、ＨＤＤ−Ａ１１３の各パーティションヘのデータ送受信を行うためのアクセス情報を作成する。アクセス情報の作成が完了した時点で、メインＣＰＵ１０４とＨＤＤ−Ａ１１３とのデータの送受信が可能な状態となる。
このとき、本実施形態におけるＳＡＴＡシステムでは、メインＣＰＵ１０４を動作させる汎用ＯＳは１系統のＳＡＴＡホストコントローラのみで構成されている想定で動作するため、ＨＤＤ−Ｂ１１４の接続は無視した状態で動作するため、ＨＤＤ−Ｂ１１４のＭＢＲ領域５０１の情報の入手を行うための動作は行わない。
よってこの時点で、メインＣＰＵ１０４とＨＤＤ−Ａ１１３とのデータの送受信はできる状態となっているが、メインＣＰＵ１０４とＨＤＤ−Ｂ１１４とのデータの送受信はできない状態となっている。
【００１８】
次に図８を用いてＳ２におけるデータの受け渡しの説明を行う。
Ｓ２は、Ｓ１が完了した時点から、ＳＡＴＡコントローラ１１１及び、ＳＡＴＡ−ＳＡＴＡブリッジ１１２の制御を行うことにより、次回以降に立ち上がるときに使用する仮想ドライブの情報を生成し、格納する。
以下にＳ２における詳細な説明を行う。
Ｓ１により、メインＣＰＵ１０４とＨＤＤ−Ｂ１１４とのデータの送受信はできない状態となっているが、メインＣＰＵ１０４とＳＡＴＡコントローラ１１１とＳＡＴＡ−ＳＡＴＡブリッジ１１２とのコマンドの受け渡しはできる状態となっている。
この状態にて、メインＣＰＵ１０４が独自のＳＡＴＡドライバを動かすために、メインＣＰＵ１０４から、仮想ドライブモード移行コマンドという本実施形態におけるＳＡＴＡシステム独自の拡張コマンドの出力を行う。
ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、仮想ドライブモード移行コマンドに基づき、ＳＡＴＡ−ＳＡＴＡブリッジ１１２を介してＨＤＤ−Ａ１１３及びＨＤＤ−Ｂｌ１４の両方のドライブのＭＢＲ領域の情報を入手し、次回以降に立ち上がるときに使用する仮想ドライブの情報を生成し、格納する。
Ｓ２−１において、メインＣＰＵ１０４から仮想ドライブモード移行コマンドの入力を受けたＳＡＴＡコントローラ１１１では、ＣＰＵ−Ｂ２０４が、まず通常の立ち上げ時と同様に、ＳＡＴＡ−ＳＡＴＡブリッジ１１２を介して、ＨＤＤ−Ａ１１３のＭＢＲ領域の情報（ＭＢＲ情報）の入手を行う。
Ｓ２−２において、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報（ＭＢＲ情報）は、ＨＤＤ−Ａ１１３から出力され、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に読み込まれる。そして、ＳＡＴＡ−ＳＡＴＡブリッジ１１２から出力され、ＳＡＴＡコントローラ１１１へと入力される。
Ｓ２−３において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｂ２０４は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２を介して、ＨＤＤ−Ｂ１１４のＭＢＲ領域の情報のリードの要求を出力する。
Ｓ２−４において、ＨＤＤ−Ｂｌ１４のＭＢＲ領域５０１の情報（ＭＢＲ情報）は、ＨＤＤ−Ｂ１１４から出力され、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に読み込まれる。そして、ＳＡＴＡ−ＳＡＴＡブリッジ１１２から出力され、ＳＡＴＡコントローラ１１１へと入力される。Ｓ２−４の処理は、ＳＡＴＡコントローラ１１１が、複数のストレージデバイスのそれぞれからＭＢＲ情報を取得する処理の一例である。
Ｓ２−５において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ情報及び、ＨＤＤ−Ｂ１１４のＭＢＲ情報を基に２つのドライブを１つの仮想ドライブとして汎用ＯＳに認識させるためのＭＢＲ情報の生成を行う。その後、ＳＡＴＡコントローラ１１１で生成された仮想ドライブＡのＭＢＲ情報は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２を介して、ＨＤＤ−Ａ１１３のＭＢＲ領域に格納される。
【００１９】
図９は、図４にて示したＨＤＤ−Ａ１１３の構成及び図５にて示したＨＤＤ−Ｂ１１４の構成から、ＳＡＴＡコントローラ１１１にて生成する仮想ドライブＡの構成を示した図である。
仮想ドライブＡのディスク容量に関しては、ＨＤＤ−Ａ１１３とＨＤＤ−Ｂ１１４との容量を合わせた容量となり、アドレスに関しては、０ｘ００００ｈから０ｘ０ＢＦＦｈまでを有する。
仮想ドライブＡのパーティションに関しては、ＨＤＤ−Ａ１１３側のパーティションの区切りは、図４と同じ状態で第１のパーティション９０２と、第２のパーティション９０３とが設定される。一方、ＨＤＤ−Ｂ１１４側のパーティションに関しては、容量としては同じとしても、仮想ドライブＡのパーティションとして扱うので、第１のパーティションは、第３のパーティション９０５となり、アドレスは０ｘ０８００ｈから０ｘ０９ＦＦｈまでとなる。また、第２のパーティションは第４のパーティション９０６となり、アドレスは０ｘ０Ａ００ｈから０ｘ０ＢＦＦｈまでに置き換えられる。
ＳＡＴＡコントローラ１１１で生成された仮想ドライブＡのＭＢＲ情報は、仮想ドライブＡの先頭アドレスとなる０ｘ００００ｈから０ｘ０２００ｈまでは、ＭＢＲ領域９０１に格納される。
つまり、仮想ドライブＡのＭＢＲ情報は、元々格納されていたＨＤＤ−Ａ１１３のＭＢＲ情報に上書きされる形で格納される。
汎用ＯＳでは仮想ドライブＡを１つのドライブとして扱うため、ＭＢＲ情報は、ＭＢＲ領域９０１に格納してあるだけでよい。
そのため、元々ＨＤＤ−Ｂ１１４のＭＢＲ領域となっていた部分に関しては、仮想ドライブＡの０ｘ０６００ｈから０ｘ０７ＦＦｈまでの領域となり、そこにディスクの情報を格納しておく必要はなくなる。
よって、本実施形態においては、仮想ドライブＡの０ｘ０６００ｈから０ｘ０７ＦＦｈまでの領域は未使用領域と設定している。
【００２０】
以上、仮想ドライブＡのＭＢＲ情報を、仮想ドライブＡの先頭アドレスとなる０ｘ００００ｈから０ｘ０２００ｈのＭＢＲ領域９０１に格納した後、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＦＬＡＳＨメモリ−Ｂ２０７には、次に電源がオンとなった場合や、本実施形態におけるＳＡＴＡシステムがリブートされた場合には仮想デバイスモードで動作を行うとの情報が格納される。
またこのとき、Ｓ３にてメインＣＰＵ１０４がＨＤＤ−Ｂ１１４側のパーティションにアクセスするためのアクセス情報の変換を行うために、パーティション変換情報及び、アドレス変換情報を、ＦＬＡＳＨメモリ−Ｂ２０７に格納する。
例えば、ＳＡＴＡコントローラ１１１から、ＨＤＤ−Ｂ１１４側となる第３のパーティション９０５のアドレス０ｘ０８００ｈにデータライトのコマンドが来た場合、ＳＡＴＡ−ＳＡＴＡブリッジ１１２は、ＨＤＤ−Ｂ１１４の第１のパーティションの０ｘ０２００ｈとの変換を行い、ＨＤＤ−Ｂ１１４にデータの格納を行う。
以上でＳ２の動作は完了となる。
【００２１】
本実施形態においては、仮想ドライブＡの０ｘ０６００ｈから０ｘ０７ＦＦｈまでの領域は未使用領域と設定しているが、他のパーティションの区切り方として、第３のパーティションに含めることとしてデータの格納領域として使用することもできる。
また、本実施形態では、ＨＤＤ−Ａ１１３とＨＤＤ−Ｂ１１４とを合わせた論理アドレスとして、仮想ドライブＡの論理アドレスを０ｘ０ＢＦＦｈまでとしている例をあげているが、図１０のように、ＨＤＤ−Ａ１１３とＨＤＤ−Ｂ１１４との論理アドレスの間に、未使用領域１７０１を設定しておき、ＨＤＤ−Ｂ１１４の論理アドレスをそれ以降に設定することで、２つのＨＤＤの領域以上の論理アドレスを設定することもできる。
【００２２】
図１１を用いてＳ３におけるデータの受け渡しの説明を行う。
Ｓ３は、Ｓ２の動作が完了した後に、メインＣＰＵ１０４及び本実施形態におけるＳＡＴＡシステムをリブート又は、電源を一度オフした後の電源オン時の制御となる。
このとき、Ｓ２によって生成した仮想ドライブの情報を基に、メインＣＰＵ１０４は、汎用ＯＳに基づき、ＨＤＤへのアクセス情報を生成する。そのため、汎用ＯＳ自体のソフトの変更等を行わずにＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４へのデータの受け渡しが可能となる。
以下にＳ３における詳細な説明を行う。
本実施形態におけるＳＡＴＡシステムの電源をオンとすると、メインＣＰＵ１０４の制御を行う汎用ＯＳはＦＬＡＳＨ  ＲＯＭ１１６からリードされ、メインＣＰＵ１０４のブートアップを実行する。
このとき、ＳＡＴＡ−ＳＡＴＡブリッジ１１２では、ＦＬＡＳＨメモリ−Ｂ２０７のモード情報を確認して、Ｓ２によって設定されている仮想ドライブモードにて動作することを認識する。
その後、ＳＡＴＡのＩ／Ｆを使用するということを認識すると、Ｓ３−１において、最初にメインＣＰＵ１０４は、アイデンティファイコマンドというＳＡＴＡの標準コマンドを出力する。アイデンティファイコマンドとは、ＳＡＴＡ  Ｉ／Ｆに接続されているドライブの情報を汎用ＯＳが入手するためのコマンドである。アイデンティファイコマンドは、ＳＡＴＡコントローラを介してＳＡＴＡ−ＳＡＴＡブリッジ１１２に入力される。アイデンティファイコマンドを受け取ったＳＡＴＡ−ＳＡＴＡブリッジ１１２は、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報のリードを行う。
【００２３】
Ｓ３−２において、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報は、ＨＤＤ−Ａ１１３から出力され、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に読み込まれる。そして、ＳＡＴＡコントローラ１１１を介してメインＣＰＵ１０４へと入力される。
このとき、既にＳ２によってＨＤＤ−Ａ１１３のＭＢＲ領域４０１には、先にＳ２にて説明を行ったように仮想ドライブＡのＭＢＲ情報として、図９で示したようなＨＤＤ−Ａ１１３とＨＤＤ−Ｂ１１４とを１つのドライブとして認識させるための情報が格納されている。よって、メインＣＰＵ１０４へは、仮想ドライブＡのＭＢＲ情報が入力される。
Ｓ３−３において、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報として仮想ドライブＡのＭＢＲ情報を受け取ると、その情報を基に使用するファイルシステムの選択や、仮想ドライブＡの各パーティションヘのデータ送受信を行うためのアクセス情報を作成する。アクセス情報の作成が完了した時点で、メインＣＰＵ１０４と仮想ドライブＡとのデータの送受信が可能な状態となる。
次に、仮想ドライブＡのアクセス情報を使用した各ＨＤＤへのアクセスに関する詳細な説明を行う。
Ｓ３−４において、メインＣＰＵ１０４が仮想ドライブＡに対して、アクセスする場合、データリードコマンド、又はデータライトコマンドを出力する。そのとき、ＳＡＴＡ−ＳＡＴＡブリッジ１１２では、必要に応じてＦＬＡＳＨメモリ−Ｂ２０７に格納されているパーティション変換情報及び、アドレス変換情報を使用して、ＨＤＤ−Ａ１１３、又はＨＤＤ−Ｂ１１４へのアクセスを行う。データリードコマンド、データライトコマンドは、アクセスコマンドの一例である。
【００２４】
仮想ドライブＡのアクセス情報では、仮想ドライブＡのパーティションのアドレスは、ＨＤＤ−Ａ１１３側の第１のパーティション９０２のアドレスは０ｘ０２００ｈから０ｘ０３ＦＦｈまでとなる。また第２のパーティション９０３のアドレスは０ｘ０４００ｈから０ｘ０５ＦＦｈまでとなる。
また、ＨＤＤ−Ｂ１１４側となる第３のパーティション９０５のアドレスは０ｘ０８００ｈから０ｘ０９ＦＦｈまで、第２のパーティション９０３のアドレスは０ｘ０Ａ００ｈから０ｘ０ＢＦＦｈまでとなる。
よって、メインＣＰＵ１０４が仮想ドライブＡの第３及び第４のパーティションとのデータの送受信を行う際には、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき第３及び第４のパーティションのアドレスの指定を行い、データリードコマンド及びデータライトコマンドを出力する。
そのコマンドをＳＡＴＡコントローラ１１１から受けたＳＡＴＡ−ＳＡＴＡブリッジ１１２は、既に仮想ドライブモードで動作することを認識している。そのため、ＳＡＴＡ−ＳＡＴＡブリッジ１１２は、ＳＡＴＡコントローラ１１１から、ＨＤＤ−Ｂ１１４側となる第３及び第４のパーティションのアクセス時には、受け取ったパーティションのアドレスを、ＨＤＤ−Ｂ１１４のパーティション及び、アドレスに変換してＨＤＤ−Ｂ１１４に対するアクセスを行う。
このとき、ＳＡＴＡ−ＳＡＴＡブリッジ１１２におけるアクセス情報の変換には、Ｓ２にてＦＬＡＳＨメモリ−Ｂ２０７に格納されたパーティション変換情報及び、アドレス変換情報が使用される。
例えば、ＳＡＴＡコントローラ１１１から、ＨＤＤ−Ｂ１１４側となる第３のパーティション９０５のアドレス０ｘ０８００ｈにデータライトのコマンドが来た場合、ＳＡＴＡ−ＳＡＴＡブリッジ１１２は、ＨＤＤ−Ｂ１１４の第１のパーティションの０ｘ０２００ｈとの変換を行い、ＨＤＤ−Ｂ１１４にデータの格納を行う。
以上により、汎用ＯＳ自体のソフトの変更等を行わずに、仮想ドライブＡという１つのドライブを扱うという認識のもと、汎用ＯＳを使用して、メインＣＰＵ１０４とＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４とのデータの受け渡しが可能となる。
【００２５】
次に、電源立ち上げ時にＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４の２つのドライブを、１つの仮想ドライブとして汎用ＯＳに取り扱わせるための動作に関して、図１２から図１７までのフローチャートを用いて、説明を行う。
図１２のフローチャートは、本実施形態におけるＳＡＴＡシステムが最初に電源がオンとされるときから、メインＣＰＵ１０４が本ＳＡＴＡシステムに接続されているＨＤＤに対してアクセスが可能となるまでの大まかなフローを表した図である。
Ｓ１１０１において、最初に電源がオンとなったことを、メインＣＰＵ１０４が検知する。
Ｓ１１０２において、メインＣＰＵ１０４は、実装されている基板からの情報等により、本ＳＡＴＡシステムに接続されているＨＤＤが１つなのか複数なのかを判定する。メインＣＰＵ１０４は、ＨＤＤが複数接続されている場合（Ｓ１１０２においてＹｅｓ）、Ｓ１１０３に進み、ＨＤＤが複数接続されていない場合（Ｓ１１０２においてＮｏ）、Ｓ１１０８に進む。
Ｓ１１０３において、メインＣＰＵ１０４等は、Ｓ１の動作を行う。その結果、ＨＤＤ−Ａ１１３のみの接続にてシステムが立ち上がる。Ｓ１の処理の詳細を後述する図１３に示す。
引き続き、Ｓ１１０４において、メインＣＰＵ１０４等は、Ｓ２として、仮想ドライブＡのＭＢＲ情報の作成とＨＤＤ−Ａ１１３への格納を実施する。
Ｓ１１０５において、メインＣＰＵ１０４は、リブートを実行する。
リブート及び電源オフ後の再度の電源オンによる立ち上げとして、Ｓ１１０６において、メインＣＰＵ１０４等は、Ｓ３の動作を行う。
Ｓ３が完了した時点で、Ｓ１１０７において、メインＣＰＵ１０４から複数のドライブをまとめて扱えるようにした仮想ドライブＡへのデータリード、データライト等のアクセスが可能となる。そして、メインＣＰＵ１０４は、図１２のフローチャートの処理を終了する。
一方、Ｓ１１０８において、メインＣＰＵ１０４等は、Ｓ１の動作を行う。Ｓ１の処理の詳細を後述する図１３に示す。
Ｓ１１０８からＳ１１０７に進むことによって、接続されている１つのＨＤＤへのアクセス準備が完了することでシステムが立ち上がる。
【００２６】
図１３を用いて図１２におけるＳ１の実行（Ｓ１１０３）における詳細なフローの説明を行う。
Ｓ１の制御が開始されると、Ｓ１２０２において、メインＣＰＵ１０４は、アイデンティファイコマンドというＳＡＴＡの標準コマンドを出力する。
このとき、最初の電源オン時なので、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＦＬＡＳＨメモリ−Ｂ２０７内の動作モード設定はシングルドライブモードとなっている。
Ｓ１２０３において、ＳＡＴＡコントローラ１１１を介してアイデンティファイコマンドを受け取ったＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報のリードを行う。
Ｓ１２０４において、ＣＰＵ−Ｂ２０４は、ＳＡＴＡデバイスＩ／Ｆ部２０１を介してＨＤＤ−Ａ１１３のＭＢＲ情報を出力する。
Ｓ１２０５において、ＨＤＤ−Ａ１１３のＭＢＲ情報を受けたＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、バスブリッジ回路２１２からＨＤＤ−Ａ１１３のＭＢＲ情報の出力を行う。
Ｓ１２０６において、ＨＤＤ−Ａ１１３のＭＢＲ情報を受けたメインＣＰＵ１０４は、汎用ＯＳの制御に基づき、ＨＤＤ−Ａ１１３のＭＢＲ情報を基に、使用するファイルシステムの選択や、ＨＤＤ−Ａ１１３の各パーティションヘのデータ送受信を行うためのアクセス情報を作成する。
アクセス情報の作成が完了した時点で、メインＣＰＵ１０４とＨＤＤ−Ａ１１３とのデータの送受信が可能な状態となり、Ｓ１の制御が終了する。
【００２７】
図１４を用いて図１２におけるＳ２の実行（Ｓ１１０４）における詳細なフローの説明を行う。
Ｓ２は、Ｓ１が完了した時点から、ＳＡＴＡコントローラ１１１及び、ＳＡＴＡ−ＳＡＴＡブリッジ１１２の制御を行うことにより、次回以降に立ち上がるときに使用する仮想ドライブの情報を生成し、格納する。
Ｓ２の制御がスタートすると、Ｓ１３０２において、メインＣＰＵ１０４は、ＳＡＴＡシステム独自の拡張コマンドである仮想ドライブモード移行コマンドを出力する。
仮想ドライブモード移行コマンドを受けた場合、Ｓ１３０３において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に対して接続されているＨＤＤドライブの最上位ドライブのＭＢＲ情報を読み取る命令を送る。
Ｓ１３０４において、ＭＢＲ情報を読み取る命令が入力されたＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、最上位ドライブであるＨＤＤ−Ａ１１３のＭＢＲ情報のリードを行う。
Ｓ１３０５において、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ情報をＳＡＴＡコントローラ１１１へ出力する。
【００２８】
Ｓ１３０６において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に対して接続されている次のＨＤＤドライブのＭＢＲ情報を読み取る命令を送る。
Ｓ１３０７において、ＭＢＲ情報を読み取る命令が入力されたＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ｂ１１４のＭＢＲ情報のリードを行う。
Ｓ１３０８において、ＣＰＵ−Ｂ２０４は、ＨＤＤ−Ｂ１１４のＭＢＲ情報をＳＡＴＡコントローラ１１１へ出力する。
Ｓ１３０９において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、ＳＡＴＡシステムに接続されている全てのＨＤＤのＭＢＲ情報が読み取られたか否かを判定する。ＣＰＵ−Ｃ２１０は、ＳＡＴＡシステムに接続されている全てのＨＤＤのＭＢＲ情報が読み取られた場合、Ｓ１３１０に進む。また、ＳＡＴＡシステムに接続されている全てのＨＤＤのＭＢＲ情報が読み取られていない場合、ＣＰＵ−Ｃ２１０は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に対して接続されている次のＨＤＤドライブのＭＢＲ情報を読み取る命令を送り、Ｓ１３０６に進む。
【００２９】
Ｓ１３１０において、ＣＰＵ−Ｃ２１０は、図９に示したような仮想ドライブＡのＭＢＲ情報の作成を行う。
仮想ドライブＡのＭＢＲ情報の作成が完了した後、Ｓ１３１１において、ＣＰＵ−Ｃ２１０は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に対して、仮想ドライブＡのＭＢＲ情報のＨＤＤ−Ａ１１３への格納の命令と共に仮想ドライブＡのＭＢＲ情報を出力する。
Ｓ１３１２において、仮想ドライブＡのＭＢＲ情報のＨＤＤ−Ａ１１３への格納の命令と仮想ドライブＡのＭＢＲ情報とを受け取ったＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ領域に、仮想ドライブＡのＭＢＲ情報のライト動作を行う。
Ｓ１３１３において、仮想ドライブＡのＭＢＲ情報の格納が完了した後、ＣＰＵ−Ｂ２０４は、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＦＬＡＳＨメモリ−Ｂ２０７に、仮想デバイスモードで動作を行うときの情報を格納する。仮想デバイスモードで動作を行うときとは、次に電源がオンとなったときや、本実施形態におけるＳＡＴＡシステムがリブートされたときである。
Ｓ１３１４において、ＣＰＵ−Ｂ２０４は、パーティション変換情報及び、アドレス変換情報を、ＦＬＡＳＨメモリ−Ｂ２０７に格納する。
パーティション変換情報及び、アドレス変換情報の格納が完了した時点で、Ｓ２の処理が終了する。
【００３０】
次に、図１５を用いて図１２におけるＳ３の実行（Ｓ１１０６）における詳細なフローの説明を行う。
Ｓ３は、Ｓ２の動作が完了した後に、メインＣＰＵ１０４及び本実施形態におけるＳＡＴＡシステムをリブート又は、電源を一度オフした後の電源オン時の制御となる。
このとき、Ｓ２によって生成された仮想ドライブの情報を基に、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき、ＨＤＤへのアクセス情報を生成する。そのため、汎用ＯＳ自体のソフトウェアの変更等を行わずにＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４へのデータの受け渡しが可能となる。
Ｓ３の制御がスタートすると、Ｓ１４０２において、メインＣＰＵ１０４は、アイデンティファイコマンドというＳＡＴＡの標準コマンドを出力する。
このとき、Ｓ２が実行された後なので、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＦＬＡＳＨメモリ−Ｂ２０７内の動作モード設定は仮想デバイスモードとなっている。Ｓ１４０３において、ＳＡＴＡコントローラ１１１を介してアイデンティファイコマンドを受け取ったＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１の情報のリードを行う。
このとき、ＨＤＤ−Ａ１１３のＭＢＲ領域４０１には、先にＳ２にて説明を行ったように仮想ドライブＡのＭＢＲ情報として、図９で示したようなＨＤＤ−Ａ１１３とＨＤＤ−Ｂ１１４とを１つのドライブとして認識させるための情報が格納されている。
したがって、メインＣＰＵ１０４へは、仮想ドライブＡのＭＢＲ情報が入力される。
【００３１】
Ｓ１４０４において、ＣＰＵ−Ｂ２０４は、仮想ドライブＡのＭＢＲ情報をＳＡＴＡデバイスＩ／Ｆ部２０１から出力する。
仮想ドライブＡのＭＢＲ情報を受けた後、Ｓ１４０５において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、バスブリッジ回路２１２から仮想ドライブＡのＭＢＲ情報の出力を行う。
仮想ドライブＡのＭＢＲ情報を受けた後、Ｓ１４０６において、メインＣＰＵ１０４は、汎用ＯＳの制御に基づき、仮想ドライブＡのＭＢＲ情報を基に、使用するファイルシステムの選択や、仮想ドライブＡのＭＢＲ情報の各パーティションヘのデータ送受信を行うためのアクセス情報を作成する。
アクセス情報の作成が完了した時点で、メインＣＰＵ１０４と仮想ドライブＡとのデータの送受信が可能な状態となり、Ｓ３の処理が終了する。
【００３２】
図１６は、仮想デバイスモードにおけるＨＤＤへのデータライトアクセスを行う際の動作を表したフローチャートである。
Ｓ１５０１において、メインＣＰＵ１０４は、仮想ドライブＡに対してデータライトコマンドの出力を行う。
データライトコマンドを受け取った後、Ｓ１５０２において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、メインＣＰＵ１０４からの仮想ドライブＡに対するデータライトコマンドをＳＡＴＡ−ＳＡＴＡブリッジ１１２へ出力する。
データライトコマンドが入力された後、Ｓ１５０３において、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、データライトコマンドの内容の解析を行う。
Ｓ１５０４において、ＣＰＵ−Ｂ２０４は、解析の結果、ライトするパーティションが第１又は第２のパーティションか、それ以外なのかを判定する。ＣＰＵ−Ｂ２０４は、ライトするパーティションが第１又は第２のパーティションの場合、Ｓ１５０６に進み、それ以外の場合、Ｓ１５０５に進む。
Ｓ１５０４からＳ１５０５に進み、Ｓ１５０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報はそのままでＨＤＤ−Ａ１１３に対するＨＤＤのデータライトアクセスを行う。
Ｓ１５０６において、ＣＰＵ−Ｂ２０４は、ライトするパーティションが第３のパーティションか否かを判定する。ＣＰＵ−Ｂ２０４は、ライトするパーティションが第３のパーティションの場合、Ｓ１５０７に進み、ライトするパーティションが第４のパーティションの場合、Ｓ１５０８に進む。
Ｓ１５０７において、ＣＰＵ−Ｂ２０４は、ＭＢＲ情報をＨＤＤ−Ｂ１１４の第１のパーティション情報に変換し、アドレス情報も変換する。
Ｓ１５０７からＳ１５０５に進み、Ｓ１５０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報に基づきＨＤＤ−Ｂ１１４に対するＨＤＤのデータライトアクセスを行う。
Ｓ１５０８において、ＣＰＵ−Ｂ２０４は、ＭＢＲ情報をＨＤＤ−Ｂ１１４の第２のパーティション情報に変換し、アドレス情報も変換する。
Ｓ１５０８からＳ１５０５に進み、Ｓ１５０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報に基づきＨＤＤ−Ｂ１１４に対するＨＤＤのデータライトアクセスを行う。
Ｓ１５０７、又はＳ１５０８の処理は、アクセス先のストレージデバイスが第１のストレージデバイス以外のストレージデバイスであった場合、アクセスコマンドに関するパーティション情報とアドレス情報とをアクセス先のストレージデバイスのパーティション情報とアドレス情報とに変換する処理の一例である。ＨＤＤ−Ａ１１３は、第１のストレージデバイスの一例である。ＨＤＤ−Ｂ１１４は、第１のストレージデバイス以外のストレージデバイスの一例である。
【００３３】
図１７は、仮想デバイスモードにおけるＨＤＤへのデータリードアクセスを行う際の動作を表したフローチャートである。
Ｓ１６０１において、メインＣＰＵ１０４は、仮想ドライブＡに対してデータリードコマンドの出力を行う。
データリードコマンドを受け取った後、Ｓ１６０２において、ＳＡＴＡコントローラ１１１内のＣＰＵ−Ｃ２１０は、メインＣＰＵ１０４からの仮想ドライブＡに対するデータリードコマンドをＳＡＴＡ−ＳＡＴＡブリッジ１１２へ出力する。
データリードコマンドが入力された後、Ｓ１６０３において、ＳＡＴＡ−ＳＡＴＡブリッジ１１２内のＣＰＵ−Ｂ２０４は、データリードコマンドの内容の解析を行う。
Ｓ１６０４において、ＣＰＵ−Ｂ２０４は、解析の結果、リードするパーティションが第１又は第２のパーティションか、それ以外なのかを判定する。ＣＰＵ−Ｂ２０４は、リードするパーティションが第１又は第２のパーティションの場合、Ｓ１６０５に進み、それ以外の場合、Ｓ１６０６に進む。
Ｓ１６０４からＳ１６０５に進み、Ｓ１６０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報はそのままでＨＤＤ−Ａ１１３に対するＨＤＤのデータリードアクセスを行う。
Ｓ１６０６において、ＣＰＵ−Ｂ２０４は、リードするパーティションが第３のパーティションか否かを判定する。ＣＰＵ−Ｂ２０４は、リードするパーティションが第３のパーティションの場合、Ｓ１６０７に進み、リードするパーティションが第４のパーティションの場合、Ｓ１６０８に進む。
Ｓ１６０７において、ＣＰＵ−Ｂ２０４は、ＭＢＲ情報をＨＤＤ−Ｂ１１４の第１のパーティション情報に変換し、アドレス情報も変換する。
Ｓ１６０７からＳ１６０５に進み、Ｓ１５０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報に基づきＨＤＤ−Ｂ１１４に対するＨＤＤのデータリードアクセスを行う。
Ｓ１６０８において、ＣＰＵ−Ｂ２０４は、ＭＢＲ情報をＨＤＤ−Ｂ１１４の第２のパーティション情報に変換し、アドレス情報も変換する。
Ｓ１６０８からＳ１６０５に進み、Ｓ１６０５において、ＣＰＵ−Ｂ２０４は、パーティション情報及びアドレス情報に基づきＨＤＤ−Ｂ１１４に対するＨＤＤのデータリードアクセスを行う。
ＳＡＴＡ−ＳＡＴＡブリッジ１１２が、ＨＤＤのリードアクセスで読み取ったデータは、ＨＤＤが１つしか接続されていないときとのデータリードと同様に、そのままＳＡＴＡコントローラ１１１を介してメインＣＰＵ１０４へと伝えられることとなる。メインＣＰＵ１０４は、仮想ドライブＡからのリードデータとしてデータを受け取る。
【００３４】
以上により、汎用ＯＳ自体のソフトウェアの変更等を行わずに仮想ドライブＡという１つのドライブを扱うという認識のもと、汎用ＯＳの制御に基づき、メインＣＰＵ１０４とＨＤＤ−Ａ１１３及び、ＨＤＤ−Ｂ１１４へのデータの受け渡しが可能となる。
本実施形態では、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に接続するドライブはＨＤＤのみでの説明となっているが、ＨＤＤに限らずＳＡＴＡのプロトコルに従って動作する記録デバイスであれば、ＳＳＤのような記録デバイスでも同様な処理が可能となる。
また、本実施形態では、ＳＡＴＡ−ＳＡＴＡブリッジ１１２に接続するドライブ数は２系統となっている。しかし、それ以上の本数があったとしても、それら複数のドライブを１つの仮想ドライブとして、それに対応したＭＢＲ情報を最上位ドライブのＭＢＲ領域に格納しておくことで、本実施形態と同様に、１つの仮想ドライブとしてのＨＤＤのアクセスが可能となる。
【００３５】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３６】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、画像形成装置１０１のハードウェア構成として、メインＣＰＵは複数存在してもよく、複数のメインＣＰＵがＤＲＡＭ１０５又はＦＬＡＳＨ  ＲＯＭ１１６等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、画像形成装置１０１のハードウェア構成として、ＣＰＵの替わりに、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いてもよい。
【００３７】
以上、上述した各実施形態によれば、汎用ＯＳをそのまま使用して、複数のストレージデバイスへのアクセスを可能とすることができる。
【符号の説明】
【００３８】
１０４  メインＣＰＵ
１１１  ＳＡＴＡコントローラ
１１２  ＳＡＴＡ−ＳＡＴＡブリッジ
【図１】
2019128891.tif 000003
【図２】
2019128891.tif 000004
【図３】
2019128891.tif 000005
【図４】
2019128891.tif 000006
【図５】
2019128891.tif 000007
【図６】
2019128891.tif 000008
【図７】
2019128891.tif 000009
【図８】
2019128891.tif 000010
【図９】
2019128891.tif 000011
【図１０】
2019128891.tif 000012
【図１１】
2019128891.tif 000013
【図１２】
2019128891.tif 000014
【図１３】
2019128891.tif 000015
【図１４】
2019128891.tif 000016
【図１５】
2019128891.tif 000017
【図１６】
2019128891.tif 000018
【図１７】
2019128891.tif 000019