(57)【要約】【課題】  ホットプラグ機構を使用せずに、バスを介して接続されたデバイスを所望のタイミングで認識可能とすること。【解決手段】  プリンタコントローラ４０１からの指示でプリンタエンジン４０２の電源供給を行った後に、プリンタエンジン４０２の認識を行い、プリンタコントローラ４０１が供給するデータをプリンタエンジン４０２で処理可能な状態とする。【選択図】  図５
2012168712.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して複数のデバイスを接続可能な情報処理装置であって、
第１のデバイスに接続されているバスを介して接続される第２のデバイスに供給する電源の制御を行う電源制御手段と、
前記電源制御手段により前記第２のデバイスに電源供給がなされた場合に、前記第２のデバイスを認識する認識手段と、
前記認識手段により前記第２のデバイスが認識された場合、前記第１のデバイスからのデータを前記第２のデバイスに供給し、前記第２のデバイスに処理を実行させる処理手段とを有することを特徴とする情報処理装置。
【請求項２】
バスを介して接続されているデバイスを検出する検出手段と、前記検出手段で検出されたデバイスが前記第２のデバイスであるかを識別する識別手段とを有し、前記認識手段は前記識別手段による識別結果に従って前記第２のデバイスを認識することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記認識手段により認識された前記第２のデバイスを使用するためのリソースを獲得する獲得手段を有し、前記処理手段は前記獲得手段により獲得されたリソースを用いて処理を実行させることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記第２のデバイスが前記第１のデバイスとバスブリッジを介して接続されたバスに接続されているか判定する判定手段を有し、前記獲得手段は前記判定手段により前記第２のデバイスがバスブリッジを介して接続されたバスに接続されていると判定された場合、当該バスブリッジの下位側のリソースを獲得することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
バスを介して複数のデバイスを接続可能な情報処理装置の制御方法であって、
第１のデバイスに接続されているバスを介して接続される第２のデバイスに供給する電源の制御を行い、
前記電源の制御により前記第２のデバイスに電源供給がなされた場合に、前記第２のデバイスを認識し、
前記第２のデバイスが認識された場合、前記第１のデバイスからのデータを前記第２のデバイスに供給し、前記第２のデバイスに処理を実行させることを特徴とする情報処理装置の制御方法。
【請求項６】
請求項１〜４のいずれか１項に記載の情報処理装置の各手段または請求項５に記載の印刷制御方法をコンピュータにより実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスを介して複数のデバイスを接続可能な情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
従来、複数のデバイスを接続するためのバスとして、ＰＣＩ、ＰＣＩを高速化したＰＣＩ−Ｘ、ＰＣＩをシリアル化してさらに高速化したＰＣＩ  Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅ）などが知られている。これらのバスの規格は、ＰＣＩ−ＳＩＧにより標準化されている。また、これらのバスではホットプラグ仕様が定義されているものもある（特許文献１参照）。このホットプラグ仕様によるＰＣＩデバイスの認識は、ＰＣＩデバイスがスロットに挿入されたことを所定のハードウェアで検出し、ホットプラグ信号を上位装置のＣＰＵに通知することで実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−４６７２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、バスを介して接続されたデバイスを認識する際、当該デバイスがホットプラグに対応していなかった場合、上位装置を起動する前に予め認識させるデバイスをスロットに挿入する必要がある。そして、当該デバイスがセルフパワーで動作するデバイスである場合、当該デバイスの電源も上位装置を起動する前に入れておく必要がある。
【０００５】
本発明は、上述の問題点に鑑みなされたもので、ホットプラグ機構を使用せずに、バスを介して接続されたデバイスを所望のタイミングで認識可能な情報処理装置、その制御方法及びプログラムを提供するものである。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の情報処理装置は、バスを介して複数のデバイスを接続可能な情報処理装置であって、第１のデバイスに接続されているバスを介して接続される第２のデバイスに供給する電源の制御を行う電源制御手段と、前記電源制御手段により前記第２のデバイスに電源供給がなされた場合に、前記第２のデバイスを認識する認識手段と、前記認識手段により前記第２のデバイスが認識された場合、前記第１のデバイスからのデータを前記第２のデバイスに供給し、前記第２のデバイスに処理を実行させる処理手段とを有する。
【発明の効果】
【０００７】
本発明によれば、第１のデバイスとバスを介して接続された第２のデバイスへ供給する電源の制御を行い、所望のタイミングで第２のデバイスを認識し、第２のデバイスに処理を実行させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態の一例である情報処理装置の構成を示す図である。
【図２】図１の情報処理装置のバス構成を示すブロック図である。
【図３】実施形態の処理の流れを示すフローチャートである。
【図４】実施形態の画像形成装置の構成を示すブロック図である。
【図５】実施形態の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。図１は、本発明の実施形態である情報処理装置の構成を示すブロック図である。情報処理装置１００は、汎用的なパーソナルコンピュータや、プリンタや複写機のような画像形成装置、その他、バスを介して複数のデバイスを接続して動作可能な種々の情報処理装置とすることができる。
【００１０】
図１において、コントローラボード１０１は、情報処理装置１００全体の動作を統括的に制御する。また、コントローラボード１０１は拡張デバイスに対する上位装置として動作する。
【００１１】
ＣＰＵ１０２は、情報処理装置１００全体の制御を司るプロセッサである。ＣＰＵ１０２は、ストレージ１０６に格納されているファームウェア１１０を含む各種プログラムをＲＡＭ１０３にロードし、それを実行することにより情報処理装置１００の動作を制御する。ＲＡＭ１０３は、ファームウェア１１０を実行時にロードしたり、処理対象のデータを一時的に保持したりする。
【００１２】
ＭＣＨ１０４は、ＣＰＵ１０２や各種Ｉ／ＯデバイスからのＲＡＭ１０３へのメモリアクセスを制御するメモリ・コントロール・ハブである。ＩＣＨ１０５は、各種Ｉ／Ｏデバイスを接続するためのコントローラを内蔵したＩ／Ｏコントロール・ハブであり、ＰＣＩデバイス、ストレージデバイス、ＵＳＢデバイス、ネットワークデバイス、オーディオデバイス等を接続可能である。
【００１３】
ストレージ１０６は、ハードディスクやフラッシュメモリ等の記憶装置であり、ファームウェア１１０のイメージを格納している。また、処理対象のファイルを記憶するためにも使用可能である。
【００１４】
ＰＣＩｅスロット１０７は、ＰＣＩｅデバイスを接続するためのスロットである。拡張デバイス１０８は、ＰＣＩｅスロット１０７に挿入して動作するセルフパワーデバイス（個別の電源で動作するデバイス）であり、情報処理装置１００の機能を拡張するものである。拡張デバイス１０８は種々の機能を有したデバイスを採用可能である。電源装置１０９は、拡張デバイス１０８に対して電力を供給するものである。なお、ここでは示していないが、コントローラボード１０１には電源装置１０９以外の電源装置から電力が供給され、コントローラボード１０１と拡張デバイスとは個別に、かつ選択的に電源のオン／オフが可能である。
【００１５】
ファームウェア１１０は、情報処理装置１００を制御するプログラムであり、オペレーティングシステム（以下、ＯＳ）、デバイスドライバ、アプリケーションなどを含む。ファームウェア１１０には、１１１〜１１４に示すような処理を行うプログラムが含まれる。デバイス検出部１１１は、ＰＣＩバス上に存在するすべてのデバイスを探し出すモジュールである。具体的には、指定されたＰＣＩバス番号とデバイス番号から順次スキャンしていき、接続されているデバイスを抽出する。デバイス判定部１１２は、デバイス検出部１１１により検出されたデバイスのコンフィグレーション空間にアクセスしてベンダＩＤ（以下、ＶＩＤ）とデバイスＩＤ（以下、ＤＩＤ）を取得し、指定されたＶＩＤ／ＤＩＤと一致するか否かを判定するモジュールである。上位ブリッジ検出部１１３は、指定されたバス番号を下位に持つブリッジを検出するモジュールである。ここで、上位とはＰＣＩバスツリーのルート（根）側であり、下位とはＰＣＩバスツリーの末端側を指す。リソース獲得部１１４は、デバイスが要求するリソースをハードウェアから獲得するモジュールである。
【００１６】
次に、図１に示した情報処理装置１００において、拡張デバイスを認識する際の処理について説明する。
【００１７】
図２は、情報処理装置１００のＰＣＩバス構成を論理的に表したブロック図である。
図２において、ホスト−ＰＣＩブリッジ２０１は、ＣＰＵ１０２と接続するホストバスと、ＰＣＩバスとのバスブリッジであり、ＰＣＩバスツリーのルート（根）となるものである。
【００１８】
ＰＣＩ−ＰＣＩブリッジ２０２ａ、２０２ｂ、２０２ｃは、上位のＰＣＩバスと、下位のＰＣＩバスとを接続するバスブリッジである。
【００１９】
ＰＣＩデバイス２０３ａ、２０３ｂは、ＰＣＩバスに接続されるデバイスであり、例えば、ストレージを接続するためのＳＡＴＡコントローラ、ネットワーク接続するためのＮＩＣ、ＵＳＢ機器を接続するためのＵＳＢコントローラ等である。
【００２０】
図２の例では、ＰＣＩバス番号０上にはＰＣＩ−ＰＣＩブリッジ２０２ａ、ＰＣＩ−ＰＣＩブリッジ２０２ｃおよびＰＣＩデバイス２０３ａが接続されている。ＰＣＩバス番号１はＰＣＩ−ＰＣＩブリッジ２０２ａの下位に接続され、ＰＣＩバス番号１上にはＰＣＩ−ＰＣＩブリッジ２０２ｂおよびＰＣＩデバイス２０３ｂが接続されている。ＰＣＩバス番号２はＰＣＩ−ＰＣＩブリッジ２０２ｃの下位に接続され、ＰＣＩバス番号２上には拡張デバイス１０８が接続されている。
【００２１】
次に、拡張デバイス１０８に電源を投入したときにコントローラボード１０１においてＰＣＩデバイスとして認識させる際の処理について説明する。図３はこの場合の処理の流れを示すフローチャートであり、ストレージ１０６に記憶されているファームウェア１１０をＲＡＭ１０３にロードし、ＣＰＵ１０２がそれを実行することによりなされる処理の流れを示す。
【００２２】
まず、デバイス検出部１１１により、ＰＣＩバスツリーをスキャンして現在接続されているデバイスを検出する（Ｓ３０１）。
【００２３】
デバイスが検出されたら、デバイス判定部１１２によりコンフィグレーション空間をＲｅａｄし、検出されたデバイスのＶＩＤ／ＤＩＤを取得する（Ｓ３０２）。
【００２４】
そしてＳ３０２で取得したＶＩＤ／ＤＩＤと、予めストレージ１０６に記憶されている拡張デバイスのＶＩＤ／ＤＩＤとを比較する。これらのＶＩＤ／ＤＩＤが一致しなかった場合、Ｓ３０１に戻って次のデバイスを検出する（Ｓ３０３）。
【００２５】
以上Ｓ３０１〜Ｓ３０３の処理を、拡張デバイスが検出できるまで繰り返す。具体的には、まず、ＰＣＩバス番号０からスキャンし、ＰＣＩデバイス２０３ａを検出したとする。ＰＣＩデバイス２０３ａのコンフィグレーション空間をＲｅａｄして取得したＶＩＤ／ＤＩＤは、拡張デバイスのＶＩＤ／ＤＩＤとは一致しないので、再度ＰＣＩバス番号０をスキャンする。次にＰＣＩ−ＰＣＩブリッジ２０２ａを検出したとして、この場合も拡張デバイスのＶＩＤ／ＤＩＤとは一致しないので、再度ＰＣＩバス番号０をスキャンする。同様の処理を繰り返し、ＰＣＩバス番号０に接続しているデバイスをスキャンしていずれも一致しなければ、次はＰＣＩバス番号１をスキャンする。ＰＣＩバス番号２以降についても同様の処理を繰り返す。結果として、ＰＣＩバス番号２に拡張デバイス１０８が接続されていることが検出できる。
【００２６】
Ｓ３０３でＶＩＤ／ＤＩＤが一致した場合、当該デバイスが拡張デバイスであることが識別され、引き続き上位ブリッジ検出部１１３により拡張デバイスの上位のＰＣＩ−ＰＣＩブリッジを検出する（Ｓ３０４）。具体的には、Ｓ３０３で拡張デバイス１０８を検出したときに、拡張デバイス１０８が接続されているＰＣＩバス番号が確定したので（ＰＣＩバス番号２）、ＰＣＩバス番号２を下位に持つブリッジを検索する。その結果、ＰＣＩ−ＰＣＩブリッジ２０２ｃであることがわかる。
【００２７】
上位ブリッジ検出部１１３により拡張デバイス１０８の上位ブリッジを検出すると、リソース獲得部１１４において上位ブリッジの下位側のバスに必要なリソースを獲得する（Ｓ３０５）。具体的には、拡張デバイス１０８に電源を入れる前は、ＰＣＩバス番号２にはデバイスが接続していなかったので、ＰＣＩ−ＰＣＩブリッジ２０２ｃはＰＣＩバス番号２のためのリソースを確保していなかった。ところが、拡張デバイス１０８に電源を入れた後は、拡張デバイス１０８がＰＣＩバス番号２に接続するため、リソースを獲得しなければならない。必要なリソースは拡張デバイス１０８が要求するサイズであり、コンフィグレーション空間をＲｅａｄすることによって得られる。
【００２８】
以上の処理により、コントローラボード１０１に電源が供給された後に拡張デバイス１０８に電源を供給したとしても、これをＰＣＩデバイスとして認識し、使用可能な状態となる。そしてコントローラボード１０１からの処理対象のデータを拡張デバイス１０８に供給し、獲得したリソースを利用して処理を実行可能となる。
【００２９】
次に、情報処理装置１００をプリンタ等の画像形成装置とした場合の処理について説明する。図４に示す画像形成装置４００はホスト装置等の外部装置から受信した印刷データや、不図示のスキャナ等によって入力された画像データの印刷を行うものである。
【００３０】
プリンタコントローラ４０１は、図１に示したコントローラボード１０１に相当するものであり、画像形成装置４００を制御する上位デバイスである。より具体的には、印刷ジョブの受付、印刷ジョブ管理、画像処理、ユーザインターフェース等の処理を行い、ＲＩＰ処理により生成したラスターイメージをプリンタエンジン４０２に出力する。また、プリンタコントローラ４０１には図１、２で示した拡張デバイス１０８、電源装置１０９以外の構成が含まれる。プリンタコントローラ４０１のファームウェア１１０にはＯＳや１１１〜１１４のプログラムの他、プリント処理のためのプリンタコントローラ特有のアプリケーションが含まれる。
【００３１】
プリンタエンジン４０２は、図１に示した拡張デバイス１０８に相当するものであり、画像が印刷される記録シートの搬送、シートへの画像の印刷制御等、画像形成装置の印刷動作を制御する。プリンタエンジン４０２はプリンタコントローラ４０１から見た下位のデバイスに相当する。また、プリンタコントローラ４０１とプリンタエンジン４０２はＰＣＩｅバスで接続されている。
【００３２】
電源装置１０９は、プリンタエンジン４０２に対して電力を供給するものである。スイッチ４０３は、電源装置１０９とプリンタエンジン４０２との間に位置し、プリンタエンジン４０２に対する電力供給をＯＮ／ＯＦＦするもので、プリンタコントローラ４０１により制御される。その他、図示はしないが、画像形成装置４００は、ユーザが操作を行うための操作部や各種情報の表示を行う表示部等を有する。操作部では、プリンタコントローラ４０１への電源供給のＯＮ／ＯＦＦ、プリンタエンジン４０２への電源供給のＯＮ／ＯＦＦをそれぞれ区別して指示することができるものとする。
【００３３】
画像形成装置４００はこのような構成により、プリンタコントローラ４０１を起動した状態でプリンタエンジン４０２の電力供給をＯＦＦ状態とし、プリンタコントローラ４０１側の処理を先行して進めておくことができる。例えば、夜間はプリンタエンジン４０２への電力供給を停止させ、プリンタコントローラ４０１による印刷データのＲＩＰ処理を進めておき、翌朝にプリンタエンジン４０２を起動（電力供給）し、まとめて印刷を実行させることなどが可能である。これにより夜間等の電力消費を抑え、また夜間に印刷トラブルでプリンタエンジン４０２に電力供給がなされた状態で停止し続けるのを防ぐことができる。その他にも、メンテナンス等で一時的にプリンタエンジン４０２の電源を落としたい場合にも同様の手順を実施することで、装置をより柔軟に運用することができる。また、プリンタエンジン４０２を使用しないときは電源をＯＦＦにしておくことができるので、装置の消費電力を抑えることができるという効果もある。このように、プリンタエンジン４０２を停止させた状態でＲＩＰ処理（印刷データのラスターイメージ生成）までを行うモードをＲＩＰモードと称す。また、プリンタエンジン４０２を起動し、印刷を実行させるモードを印刷モードと称す。
【００３４】
次に画像形成装置４００が起動されるときのシーケンス及びプリンタエンジン４０２の起動／停止の制御の流れについて説明する。図５はこの場合の処理の流れを示すフローチャートであり、プリンタコントローラ４０１のストレージ１０６に記憶されているファームウェア１１０をＲＡＭ１０３にロードし、ＣＰＵ１０２がそれを実行することによりなされる処理の流れを示す。
【００３５】
図５（ａ）は画像形成装置４００が起動するときのシーケンスである。
ユーザにより操作部を介してプリンタコントローラ４０１の電源がＯＮにされると、プリンタコントローラ４０１においてＯＳが起動される（Ｓ５０１）。プリンタコントローラ４０１には不図示のＲＯＭが含まれ、プリンタコントローラ４０１への電力供給に応じてＲＯＭ内のブートプログラムがＲＡＭ１０３にロードされ、ＯＳの起動が開始される。プリンタコントローラ４０１はＯＳが起動する過程で、ＰＣＩバスに接続されているデバイスのコンフィグレーションを行う。この時点で接続が確認されたＰＣＩデバイスには、メモリ空間や割り込み等のリソースが割り当てられる。このとき、プリンタコントローラ４０１ではスイッチ４０３をＯＦＦにしている状態であるため、プリンタエンジン４０２はＰＣＩデバイスとして認識されない。
【００３６】
Ｓ５０１におけるＯＳの起動が完了すると、プリンタコントローラとして動作するためのアプリケーションを起動し（Ｓ５０２）、プリンタエンジン４０２に電力を供給するためのＰｏｗｅｒボタンの押下を待つ状態となる（Ｓ５０３）。このＰｏｗｅｒボタンは画像形成装置４００の操作部に含まれる。
【００３７】
Ｓ５０３でＰｏｗｅｒボタンが押下されたと判断すると、プリンタコントローラ４０１はスイッチ４０３をＯＮにし、プリンタエンジン４０２への電力供給を開始させる（Ｓ５０４）。
【００３８】
そして、プリンタエンジン４０２が起動されると、図３で示した手順により、順次バス上のデバイスの検索及びリソースの獲得を行い、プリンタエンジン４０２をＰＣＩデバイスとして認識する（Ｓ５０５）。以上の処理によりプリンタエンジン４０２の認識が完了し、プリンタコントローラ４０１で生成した印刷データをプリンタエンジン４０２で印刷させることが可能な状態（印刷モード）となる。
【００３９】
図５（ｂ）は印刷モードからＲＩＰモードへ移行させる際のシーケンスである。
画像形成装置４００の操作部を介してユーザによりＲＩＰモードへの移行が指示されると、プリンタコントローラ４０１はプリンタエンジン４０２に対し、動作を終了するよう指示する情報を通知する（Ｓ５１１）。この情報を受け取ったプリンタエンジン４０２は印刷中であれば、印刷を完了させ、全ての動作が終了すると、動作が終了した旨をプリンタコントローラ４０１に通知する。
【００４０】
そして、プリンタエンジン４０２において動作が終了したことをプリンタコントローラ４０１が確認すると、プリンタコントローラ４０１はスイッチ４０３をＯＦＦにし、プリンタエンジン４０２への電力供給を停止させる（Ｓ５１２）。これによってＲＩＰモードへの移行が完了する。そしてプリンタコントローラ４０１は印刷ジョブを受け付けると、ＲＩＰ処理までを行い、ストレージ１０６でＲＩＰ済みの印刷データを待機させることができる。
【００４１】
図５（ｃ）はＲＩＰモードから印刷モードへ移行させる際のシーケンスである。
画像形成装置４００の操作部を介してユーザにより印刷モードへの移行が指示されると、プリンタコントローラ４０１はスイッチ４０３をＯＮにし、プリンタエンジン４０２への電力供給を開始させる（Ｓ５２１）。
【００４２】
プリンタエンジン４０２が起動されると、図３で示した手順により、順次バス上のデバイスの検索及びリソースの獲得を行い、プリンタエンジン４０２をＰＣＩデバイスとして認識する。これにより、プリンタエンジン４０２に認識が完了すると、印刷モードへの移行が完了し、ストレージ１０６にＲＩＰ済みの印刷データが記憶されていた場合、順次プリンタエンジン４０２に転送され、シート上への画像の印刷が実行される。
【００４３】
以上のように、本実施形態によればプリンタエンジン等のデバイスを使用しない期間は当該デバイスへの電力供給を停止させ消費電力を抑えることができるとともに、所望のタイミングで停止していたデバイスを起動させ、処理を実行させることができる。このとき、使用しないデバイスをスロットから一旦外し、その後再接続させることもでき、再接続させる際、上位デバイスの再起動をする必要もなくなる。そして、上位デバイス側で下位デバイスの電源制御を行うので、所望のタイミングでの下位デバイスの認識が可能である。そして、下位デバイスがバスブリッジを介して接続されたバス上に接続されていても適切にリソースを獲得して、このリソースを用いて下位デバイスに処理を実行させることができる。
【００４４】
また、ホットプラグに対応していないデバイスであっても、新たなデバイスが接続されていることを認識させることができる。また、ＰＣＩｅケーブルを介してデバイスを接続し、スロットにケーブル接続用のカードが常に挿入されている状態であることにより、その先に接続したデバイスのホットプラグが利用できない場合であっても当該デバイスの認識が可能である。そして、以上のように認識したデバイス用のリソースを獲得し、当該デバイスを利用可能となる。
【００４５】
なお、以上のような情報処理装置は２つ以上のデバイスがバスを介して接続され、それぞれのデバイスの電力供給を個々に行うことができるものに広く適用可能である。このとき、各デバイスが一筺体内で内部接続されるもの、異なる筺体の複数の装置によって外部接続されるもののいずれとしてもよい。この場合も、上述したような手順と同様の手順で上位デバイスが下位デバイスを認識するようにすればよい。
【００４６】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータが連動して実行するようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【００４７】
また、本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（他の実施形態への応用、他の実施形態との組合せ等を含む）も可能である。
【図１】
2012168712.tif 000003
【図２】
2012168712.tif 000004
【図３】
2012168712.tif 000005
【図４】
2012168712.tif 000006
【図５】
2012168712.tif 000007