(57)【要約】【課題】  プロセッサに電力が供給されるスタンバイ状態において、情報処理装置の電力モードに基づいてＰＣＩデバイスの電力制御を行う。【解決手段】  プロセッサと、ＰＣＩデバイスと、を備える情報処理装置は、スタンバイ状態において、ＰＣＩデバイスを第１電力状態と第１電力状態より省電力の第２電力状態との間で遷移させるデバイス制御手段と、スタンバイ状態において、情報処理装置の電力モードを制御する電力モード制御手段と、を備える。デバイス制御手段は、電力モード制御手段によって制御されるスタンバイ状態における情報処理装置の電力モードが第１電力モードの場合に、ＰＣＩデバイスの電力状態を第1電力状態に維持し、第１電力モードより省電力の第２電力モードの場合に、ＰＣＩデバイスの電力状態を第1電力状態と第２電力状態との間で遷移させる。【選択図】  図２
2017177573.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、前記プロセッサにＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して接続されるＰＣＩデバイスと、を備える情報処理装置であって、
前記プロセッサに電力が供給されるスタンバイ状態において、前記ＰＣＩデバイスを第１電力状態と前記第１電力状態より省電力の第２電力状態との間で遷移させるデバイス制御手段と、
前記プロセッサに電力が供給されるスタンバイ状態において、前記情報処理装置の電力モードを制御する電力モード制御手段と、を備え、
前記デバイス制御手段は、前記電力モード制御手段によって制御される前記スタンバイ状態における前記情報処理装置の電力モードが第１電力モードの場合に、前記ＰＣＩデバイスの電力状態を前記第1電力状態に維持し、前記電力モード制御手段によって制御される前記スタンバイ状態における前記情報処理装置の電力モードが前記第１電力モードより省電力の第２電力モードの場合に、前記ＰＣＩデバイスの電力状態を前記第1電力状態と前記第２電力状態との間で遷移させる、ことを特徴とする情報処理装置。
【請求項２】
前記電力モード制御手段は、前記情報処理装置の電力モードを示す情報を前記デバイス制御手段に通知し、
前記デバイス制御手段は、通知された前記情報処理装置の電力モードに基づいて、前記ＰＣＩデバイスの電力状態を制御する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記デバイス制御手段は、前記ＰＣＩデバイス内のレジスタに、前記第１電力状態を示す値又は前記第２電力状態を示す値を書き込み、
前記ＰＣＩデバイスは、前記レジスタの値に基づいて、前記ＰＣＩデバイスの電力状態を制御する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ＰＣＩバスはＰＣＩ  Ｅｘｐｒｅｓｓ規格に従うバスであって、前記ＰＣＩデバイスはＰＣＩ  Ｅｘｐｒｅｓｓ規格に対応したデバイスである、ことを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記デバイス制御手段は、前記ＰＣＩデバイスの動作を制御するデバイスドライバを含み、前記デバイスドライバは、前記プロセッサに電力が供給されるスタンバイ状態において、前記ＰＣＩデバイスを前記第１電力状態と前記第２電力状態との間で遷移させる、ことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記デバイスドライバは、ＯＳ層で動作する、ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記電力モード制御手段は、アプリ層で動作する電源制御アプリケーションを含み、前記情報処理装置を前記第１電力モード又は前記第２電力モードにする、ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記デバイス制御手段は、前記ＰＣＩデバイスの状態に基づいて、前記ＰＣＩデバイスを前記第１電力状態と前記第２電力状態との間で遷移させる、ことを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
用紙に画像を形成するプリンタ部をさらに備える、ことを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
プロセッサと前記プロセッサにＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して接続されるＰＣＩデバイスとを備える情報処理装置の制御方法であって、
前記プロセッサに電力が供給されるスタンバイ状態において前記情報処理装置の電力モードを制御するステップと、
前記スタンバイ状態における前記情報処理装置の電力モードが第１電力モードの場合に、前記ＰＣＩデバイスの電力状態を第１電力状態に維持し、前記スタンバイ状態における前記情報処理装置の電力モードが前記第１電力モードより省電力の第２電力モードの場合に、前記ＰＣＩデバイスの電力状態を前記第１電力状態と前記第１電力状態より省電力の第２電力状態との間で遷移させるステップと、を有することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩデバイスを備える情報処理装置及び情報処理装置の制御方法に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータやＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）等の情報処理装置は、ＡＣＰＩと呼ばれる電力制御に関する規格で定められたＳ０ステート、Ｓ３ステート及びＳ５ステート等を有する。ＡＣＰＩとは、Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅの略称である。接頭辞として「Ｓ」がつくステートは、情報処理装置のシステム（コントローラ部）の電力状態を示している。Ｓ０ステートは稼動状態であり、Ｓ３ステートは稼動状態より省電力のスリープ状態であり、Ｓ５ステートは電源オフ状態である。Ｓ０ステートでは、情報処理装置の各部に電力が供給されている状態である。Ｓ３ステートは、サスペンド状態とも呼ばれており、コントローラ部のＣＰＵの状態などがメモリに退避され、そして、ＣＰＵへの電力供給は停止される。Ｓ５ステートは、情報処理装置の各部への電力供給が停止される状態である。
【０００３】
ＣＰＵは、システムの電力状態がＳ０ステートの場合、ＣＰＵにＰＣＩ  Ｅｘｐｒｅｓｓ（以下、ＰＣＩｅとする）バスで接続されるデバイス（以下、ＰＣＩデバイスとする）を、Ｄ０ステートに制御する。また、ＣＰＵは、Ｓ３ステートの場合、ＰＣＩデバイスをＤ３ステートに制御するのが一般的である。Ｄ０ステートやＤ３ステートは、ＰＣＩデバイスの状態を示し、Ｄ０ステートはＰＣＩデバイスが稼動状態であり、Ｄ３ステートはＰＣＩデバイスが稼動状態より省電力のスリープ状態である。Ｄ３ステートでは、ＰＣＩデバイスの内部のユニットに供給される電力をオフにしたりクロック信号を停止したりすることによって、ＰＣＩデバイスの省電力を図っている。
【０００４】
近年の情報処理装置では、システムの電力状態がＳ０ステートでありながら、ＰＣＩデバイスをＤ３ステートにすることが可能となっている（特許文献１）。システムの状態がＳ０ステートでありながら、ＰＣＩデバイスをＤ３ステートにする技術は、Ｒｕｎｔｉｍｅ  Ｄ３と呼ばれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１３−５３８３８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
コピー、プリント、スキャン及びＦＡＸなどの多数の機能を備えるＭＦＰでは、システム（制御ユニット）の電力状態がＳ０ステートにおいて、複数の電力モードが定義されている。印刷を実行するプリントモードでは、プリンタ部やプリンタ部を制御するＣＰＵには電力を供給する必要があるが、スキャナ部には電力を供給する必要がない。また、原稿の読取を実行するスキャンモードでは、スキャナ部やスキャナ部を制御するＣＰＵには電力を供給する必要があるが、プリンタ部には電力を供給する必要がない。外部装置から送信されるパケットに対してパケット処理を実行する待機応答モードでは、パケット処理を実行するＣＰＵやパケットの送受信を行うネットワークインターフェースには電力を供給する必要がある。しかし、プリンタ部やスキャナ部には電力を供給する必要がない。このように、ＭＦＰに代表される多機能デバイスは、ＣＰＵに電力が供給されるＳ０ステートでありながら、プリントモード、スキャンモード、待機応答モードなどの複数の電力モードを持つ。
【０００７】
システムの電力状態がＳ０ステートのときに、上記した複数の電力モードに関わらず、一律に、Ｒｕｎｔｉｍｅ  Ｄ３の技術を適用すると問題がある。なぜなら、ＭＦＰがユーザから指示を受けたときにプリント処理やスキャン処理の応答性が求められるモードの場合、ＰＣＩデバイスをＤ３ステートにすると、ＰＣＩデバイスをＤ０ステートに復帰させるために要する時間の分、応答性が低下してしまう。一方、応答性より省電力優先でプリンタ部やスキャナ部などへの電力供給を停止する待機応答モードである場合には、ＰＣＩデバイスがＤ０ステートのままだと、ＰＣＩデバイスの省電力を図ることができない。
【０００８】
そこで、本発明では、制御ユニットに電力が供給される稼動状態において、情報処理装置の電力モードに基づいてＰＣＩデバイスの電力制御を行うことを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、プロセッサと、プロセッサにＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを介して接続されるＰＣＩデバイスと、を備える情報処理装置であって、プロセッサに電力が供給されるスタンバイ状態において、ＰＣＩデバイスを第１電力状態と第１電力状態より省電力の第２電力状態との間で遷移させるデバイス制御手段と、プロセッサに電力が供給されるスタンバイ状態において、情報処理装置の電力モードを制御する電力モード制御手段と、を備え、デバイス制御手段は、電力モード制御手段によって制御されるスタンバイ状態における情報処理装置の電力モードが第１電力モードの場合に、ＰＣＩデバイスの電力状態を第1電力状態に維持し、電力モード制御手段によって制御されるスタンバイ状態における情報処理装置の電力モードが第１電力モードより省電力の第２電力モードの場合に、ＰＣＩデバイスの電力状態を第1電力状態と第２電力状態との間で遷移させる。
【発明の効果】
【００１０】
本発明によれば、プロセッサに電力が供給されるスタンバイ状態において、情報処理装置の電力モードに基づいてＰＣＩデバイスの電力制御を行う。例えば、ユーザから指示を受けたときにプリント処理やスキャン処理の応答性が求められるスタンバイモードである場合に、ＰＣＩデバイスをＤ３ステートすることを禁止することによって、応答性が低下してしまうのを防止することができる。一方で、応答性より省電力優先の待機応答モードである場合には、ＰＣＩデバイスのＤ３ステートへの移行を許可することによって、ＰＣＩデバイスの省電力を図ることができる。
【図面の簡単な説明】
【００１１】
【図１】ＭＦＰの全体構成を示すブロック図
【図２】電源部の詳細を示すブロック図
【図３】コントローラ部の詳細を示すブロック図
【図４】ＣＰＵとＣＰＵに接続されるＰＣＩデバイスとの詳細を示すブロック図
【図５】ソフトウェアブロック図
【図６】ＭＦＰの電力状態を示す図
【図７Ａ】待機応答モードのアクティブ状態を示す図
【図７Ｂ】待機応答モードのローパワー状態を示す図
【図８】電源制御アプリケーションの処理を示すフローチャート
【図９】ＰＣＩデバイスのデバイスドライバの処理を示すフローチャート
【発明を実施するための形態】
【００１２】
＜第１実施形態＞
図１は、ＭＦＰ１０１の概略構成を示すブロック図である。
【００１３】
ＭＦＰ１０１は、ネットワーク１０３を介して外部装置１０２に接続されている。ネットワーク１０３は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）である。外部装置１０２は、パーソナルコンピュータであって、ＭＦＰ１０１と通信可能に接続されている。ＭＦＰ１０１は、コピー機能、プリント機能、スキャン機能、ＦＡＸ機能などの複数の機能を実行することができる。
【００１４】
ＭＦＰ１０１は、コントローラ部１０４、操作部１０５、スキャナ部１０６、プリンタ部１０７及び電源部１０８を備える。操作部１０５、スキャナ部１０６、プリンタ部１０７は、ＭＦＰ１０１の各機能を実行する機能ユニットであり、コントローラ部１０４は、機能ユニットを制御する制御ユニットである。
【００１５】
操作部１０５は、ユーザが印刷部数などを入力するためのテンキー、印刷開始の実行指示を行うためのスタートキー、ＭＦＰ１０１をスリープモードにするための節電キーなどのハードキーを有する。また、操作部１０５は、各種情報を表示する表示部を有する。この表示部は、タッチパネルタイプの表示部である。
【００１６】
スキャナ部１０６は、原稿の画像をスキャンして、スキャナした画像をデジタルデータに変換し、コントローラ部１０４に出力する。
【００１７】
プリンタ部１０７は、コントローラ部１０４で処理された画像データに基づいて用紙に画像を形成する。
【００１８】
電源部１０８は、電源プラグ２０８を介して入力された交流電圧を直流電圧に変換する。電源部１０８は、変換した直流電圧を、ＭＦＰ１０１の各ユニットに供給する。
【００１９】
図２は、電源部１０８の詳細を示すブロック図である。
【００２０】
電源部１０８には、電源プラグ２０８を介して交流電圧が入力される。電源プラグ２０８を介して入力された交流電圧は、第１電源部２０５及び第２電源部２０６のそれぞれに供給される。第１電源部２０５は、例えば、交流電圧から約５．０Ｖの直流電圧を生成する。また、第２電源部２０６は、例えば、交流電圧から約２４．０Ｖの直流電圧を生成する。
【００２１】
第１電源部２０５によって生成された直流電圧は、コントローラ部１０４に供給される。また、第２電源部２０６によって生成された直流電圧は、操作部１０５、スキャナ部１０６、プリンタ部１０７に供給される。
【００２２】
電源プラグ２０８と第１電源部２０５や第２電源部２０６との間には、メインスイッチ２０７が配置されている。メインスイッチ２０７は、ロッカースイッチであって、ユーザ操作に従ってオフ状態又はオン状態になる。
【００２３】
また、第２電源部２０６と操作部１０５との間には、リレースイッチ２０２が設けられる。また、第２電源部２０６とスキャナ部１０６との間には、リレースイッチ２０３が設けられる。また、第２電源部２０６とプリンタ部１０７との間には、リレースイッチ２０４が設けられる。
【００２４】
コントローラ部１０４の電源制御部２０１は、図示しないソレノイドを駆動することによって、メインスイッチ２０７をオン状態からオフ状態に動かすことができる。また、電源制御部２０１は、リレースイッチ２０２〜２０４を個別にオン又はオフにすることができる。
【００２５】
図３は、コントローラ部１０４の詳細を示すブロック図である。
【００２６】
コントローラ部１０４は、ＣＰＵ（プロセッサ）３０１、プログラムメモリ３０２、汎用メモリ３０３、ＩＯコントローラ３０４、操作部インターフェース３０５、ＬＡＮコントローラ３０７、及び、電源制御部２０１を含む。
【００２７】
ＣＰＵ３０１は、ＰＣＩバス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）３１０を介してＩＯコントローラ３０４と通信可能に接続される。また、ＣＰＵ３０１は、ＰＣＩｅバス３２０を介してＬＡＮコントローラ３０７と通信可能に接続される。ＰＣＩｅバス３１０及び３２０は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に従うバスであって、ＩＯコントローラ３０４及びＬＡＮコントローラ３０７は、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に対応したＰＣＩデバイスである。
【００２８】
ＣＰＵ３０１は、周辺デバイスと通信するためのインターフェース回路を備えており、フラッシュメモリなどのプログラムメモリ３０２に格納されたプログラムを実行する。プログラムメモリ３０２は、ＭＦＰ１０１を制御するプログラムや制御データを格納する。ＣＰＵ３０１は、プログラムメモリ３０２からロードしたプログラムを、汎用メモリ３０３に展開する。汎用メモリ３０３は、ＣＰＵ３０１のワークメモリとして使用され、コピー、スキャン、プリントを実行するときに使用される画像データ等を格納する。
【００２９】
ＩＯコントローラ３０４は、画像処理を行うプロセッサであって、スキャナ部１０６やプリンタ部１０７と通信可能に接続されている。ＩＯコントローラ３０４は、スキャナ部１０６によって読み取られた原稿の画像に対応する画像データに対して画像処理を行ったり、プリンタ部１０７によって印刷される画像に対応する画像データの画像処理を行う。
【００３０】
操作部インターフェース３０５は、操作部１０５とＣＰＵ３０１とを接続するためのインターフェースである。操作部１０５のキーの操作やタッチパネルの操作に関わる情報をＣＰＵ３０１に送信する。また、操作部インターフェース３０５は、操作部１０５の表示部に表示するための画面データを操作部１０５に送信する。
【００３１】
ＬＡＮコントローラ３０７は、ネットワーク１０３に接続される外部装置１０２と通信するためのネットワーク制御部である。
【００３２】
電源制御部２０１は、ＭＦＰ１０１の各部への電力供給を制御するロジック回路である。電源制御部２０１は、操作部インターフェース３０５を介して操作部１０５から入力される信号や、ＬＡＮコントローラ３０７を介してネットワーク１０３から入力される信号などを検知して、ＭＦＰ１０１をスリープモードから復帰させる。なお、電源制御部２０１に入力される割り込み信号は、プリンタ部１０７によって印刷されるべき記録紙を検知するセンサからの信号、スキャナ部１０６によって読み取られるべき原稿を検知するセンサからの信号、人体検知センサからの信号などを含む。
【００３３】
図４は、ＣＰＵ、ＩＯコントローラ及びＬＡＮコントローラの詳細を示すブロック図である。
【００３４】
ＣＰＵ３０１は、第１のＰＣＩｅ  Ｉ／Ｆ４１１、ＣＰＵコア４１２、メモリコントローラ４１３、時計部４１４、第２のＰＣＩｅ  Ｉ／Ｆ４１５、電源制御Ｉ／Ｆ４１７、及び、操作部Ｉ／Ｆ４１８を有する。第１のＰＣＩｅ  Ｉ／Ｆ４１１は、ＰＣＩｅバス３１０を介してＩＯコントローラ３０４と通信するためのインターフェースである。ＣＰＵコア４１２は、各種の処理を実行する。ＣＰＵコアはシングルであってもマルチであっても良い。メモリコントローラ４１３は、汎用メモリ３０３へのデータの書き込み、及び、汎用メモリ３０３からデータの読み出しを制御する。時計部４１４は、現在時刻を計時するＩＣである。第２のＰＣＩｅ  Ｉ／Ｆ４１５は、ＰＣＩｅバス３２０を介してＬＡＮコントローラ３０７と通信するためのインターフェースである。電源制御Ｉ／Ｆ４１７は、電源制御部２０１と通信するためのインターフェースである。操作部Ｉ／Ｆ４１８は、操作部１０５と通信するためのインターフェースである。ＰＣＩｅ  Ｉ／Ｆのそれぞれは、ＰＣＩ  Ｅｘｐｒｅｓｓ規格に従って、データの送受信を行う。
【００３５】
ＩＯコントローラ３０４は、エンジンＰＣＩｅ  Ｉ／Ｆ４２１、エンジンＣＰＵ４２２、エンジンＲＯＭ４２３、エンジンＲＡＭ４２４、スキャナＩ／Ｆ４２５、プリンタＩ／Ｆ４２６、エンジン電源制御部４２７、及び、ＵＳＢＩ／Ｆ４２８を有する。
【００３６】
ＰＣＩｅバスを介してメインＣＰＵに接続されるＰＣＩデバイスであるＩＯコントローラ３０４は、Ｄ０ステート及びＤ０ステートより省電力のＤ３ステートに移行可能に構成されている。ＩＯコントローラ３０４は、Ｒｕｎｔｉｍｅ  Ｄ３に対応しており、コントローラ部１０４がＳ０ステートでありながら、Ｄ３ステートに移行することが可能である。Ｄ０ステートは、ＩＯコントローラ３０４内の全てのブロックに電力が供給されているアクティブ状態である。また、Ｄ３ステートは、ＬＡＮコントローラ３０７内の一部のブロックへの電力供給を停止又はクロック供給を停止している状態である。なお、Ｄ３ステートにおいて、ＩＯコントローラ３０４内の一部のブロックへ供給されるクロック周波数を低くしても良い。エンジン電源制御部４２７は、図示しないＩＯコントローラ３０４の内部に設けられるレジスタの値を参照して、ＩＯコントローラ３０４内の電力制御を行う。レジスタは、エンジンＰＣＩｅ  Ｉ／Ｆ４２１に設けられており、ＣＰＵ３０１の第２のＰＣＩｅ  Ｉ／Ｆ４１５が、レジスタの値を書き込む。
【００３７】
ＬＡＮコントローラ３０７は、ＬＡＮＩ／Ｆ４３１、ＬＡＮＣＰＵ４３２、ＬＡＮＲＯＭ４３３、ＬＡＮＰＣＩｅ  Ｉ／Ｆ４３４、ＬＡＮＲＡＭ４３５、及び、ＬＡＮ電源制御部４３６を有する。ＰＣＩデバイスであるＬＡＮコントローラ３０７も、Ｄ０ステート及びＤ３ステートに移行可能に構成されている。Ｄ０ステートは、ＬＡＮコントローラ３０７内の全てのブロックに電力が供給されているアクティブ状態である。また、Ｄ３ステートは、ＬＡＮコントローラ３０７内の一部のブロックへの電力供給を停止又はクロック供給を停止している状態である。なお、Ｄ３ステートにおいて、ＬＡＮコントローラ３０７内の一部のブロックへ供給されるクロック周波数を低くしても良い。
【００３８】
ＬＡＮ電源制御部４３６は、図示しないＬＡＮコントローラ３０７の内部に設けられるレジスタの値を参照して、ＬＡＮコントローラ３０７内の電力制御を行う。レジスタは、ＬＡＮＰＣＩｅ  Ｉ／Ｆ４３４に設けられており、ＣＰＵ３０１の第１のＰＣＩｅ  Ｉ／Ｆ４１１が、レジスタの値を書き込む。
【００３９】
図５は、ＭＦＰ１０１のソフトウェアの構成を説明するソフトブロック図である。
【００４０】
ＭＦＰ１０１の電力制御を行うソフトウェアである電源制御アプリケーションＡ１は、アプリ層で動作している。電源制御アプリケーションＡ１は、アプリ層で動作するプリント制御アプリケーションＡ２やスキャン制御アプリケーションＡ３などに対して、定期的にジョブの実行状況などを問い合わせる。そして、電源制御アプリケーションＡ１は、ジョブの実行状況などに基づいて、ＭＦＰ１０１の電力モードを制御する。電源制御アプリケーションＡ１を実行するＣＰＵ３０１は、電源制御部２０１にアクセスして、ＭＦＰ１０１の電力モードを変更する。そして、本実施形態では、電源制御アプリケーション（電力モード制御手段）Ａ１は、デバイスドライバＤ１及びＤ２（デバイス制御手段）に対して、ＭＦＰ１０１の電力モードを通知する。
【００４１】
ＩＯコントローラ３０４の動作を制御するＩＯドライバＤ１は、デバイスドライバであって、ＯＳ層で動作している。また、ＬＡＮコントローラ３０７の動作を制御するＮＩＣドライバＤ２も、デバイスドライバであって、ＯＳ層で動作している。また、プリンタ部１０７の動作を制御するプリンタドライバＤ３、及び、スキャナ部１０６の動作を制御するスキャナドライバＤ４も、ＯＳ層で動作している。
【００４２】
なお、ここでは、説明を省略するが、アプリ層やＯＳ層で実行されるソフトウェアは、上記したソフトウェアだけでは無い。汎用メモリ３０３を制御するメモリコントローラ、操作部１０５の表示部の表示を制御するグラフィックドライバなど、様々なソフトが動作する。
【００４３】
ここで、デバイスドライバがＰＣＩデバイスをＤ０ステート及びＤ３ステートにする手法について説明する。本実施形態では、ＩＯドライバＤ１及びＮＩＣドライバＤ２が、それぞれ、ＩＯコントローラ３０４及びＬＡＮコントローラ３０７をＤ０ステート及びＤ３ステートにする。
【００４４】
まず、デバイスドライバが、ＰＣＩデバイスをＤ０ステートからＤ３ステートに移行させる手法について説明する。
【００４５】
１．デバイスドライバは、ＰＣＩデバイスがアイドル状態であることを検知する。
２．デバイスドライバは、アイドルタイマを起動する。
３．デバイスドライバは、ＰＣＩデバイスがアクティブ状態になると、アイドルタイマを停止する。
４．アイドルタイマは、所定時間を計時すると、デバイスドライバに通知する。
５．デバイスドライバは、ＰＣＩデバイス内のＰＭＣＳＲ（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌ／Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ）にＤ３ステートであることを書き込む。
６．ＰＣＩデバイス内の電力制御部が、ＰＭＣＳＲを参照して、ＰＣＩデバイス内のユニットへの電力供給を停止する、クロック供給を停止する、又は、クロック周波数を低くする。
【００４６】
次に、デバイスドライバが、ＰＣＩデバイスをＤ３ステートからＤ０ステートに移行させる手法について説明する。
【００４７】
１．デバイスドライバは、ＰＣＩデバイスがアクティブ状態であることを検知する。
２．デバイスドライバは、ＰＣＩデバイス内のＰＭＣＳＲにＤ０ステートであることを書き込む。
３．ＰＣＩデバイス内の電力制御部が、ＰＭＣＳＲを参照して、ＰＣＩデバイス内のユニットへの電力供給を再開する、クロック供給を再開する、又は、クロック周波数を元に戻す。
【００４８】
ＰＭＣＳＲは、ＰＣＩデバイス内のＰＣＩｅ  Ｉ／Ｆにあり、ＣＰＵ３０１のＰＣＩｅ  Ｉ／Ｆが、ＰＭＣＳＲの値を書き換える。ＣＰＵ３０１は、ＰＣＩデバイスのステートを変更するためには、ＰＣＩデバイスのレジスタ（ＰＭＣＳＲ）の値を書き換えるだけで良い。レジスタの値が書き替わると、ＰＣＩデバイス自身が、ＰＣＩデバイス内の電力供給やクロック制御を行うからである。
【００４９】
本実施形態のデバイスドライバは、電源制御アプリケーションＡ１から通知された電力モードに基づいて、ＰＣＩデバイスの電力状態を制御する。具体的には、ＩＯドライバＤ１は、電源制御アプリケーションＡ１から通知されるＭＦＰ１０１の電力モードがスタンバイモードであるならば、ＩＯコントローラ３０４をＤ０ステートに維持する。また、ＩＯドライバＤ１は、電源制御アプリケーションＡ１から通知されるＭＦＰ１０１の電力モードが待機応答モードであるならば、ＩＯコントローラ３０４をＤ０ステートとＤ３ステートの間で遷移させる。また、ＮＩＣドライバＤ２もＩＯドライバＤ１と同様で、電源制御アプリケーションＡ１から通知されるＭＦＰ１０１の電力モードがスタンバイモードであるならば、ＬＡＮコントローラ３０７をＤ０ステートに維持する。また、ＮＩＣドライバＤ２は、電源制御アプリケーションＡ１から通知されるＭＦＰ１０１の電力モードが待機応答モードであるならば、ＬＡＮコントローラ３０７をＤ０ステートとＤ３ステートの間で遷移させる。
【００５０】
図６は、ＭＦＰ１０１の電力状態を示す図である。
【００５１】
本実施形態のＭＦＰ１０１は、ＡＣＰＩで定義されるＳ０ステート（スタンバイ状態）、Ｓ３ステート（スリープ状態）、及び、Ｓ５ステート（電源オフ状態）に移行可能である。本実施形態では、ＭＦＰ１０１のメインＣＰＵであるＣＰＵ３０１に電力が供給されている状態をＳ０ステートとする。また、ＣＰＵ３０１への電力供給を停止するがメインメモリである汎用メモリ３０３に電力を供給する状態をＳ３ステートとする。また、ＣＰＵ３０１及び汎用メモリ３０３などのＭＦＰ１０１の各部への電力供給を停止する状態をＳ５ステートとする。
【００５２】
さらに、本実施形態のＭＦＰ１０１のＰＣＩデバイスは、コントローラ部１０４がＳ０ステートでありながら、Ｄ３ステートに移行することが可能である。
【００５３】
＜Ｓ０ステート＞
ＭＦＰ１０１は、コントローラ部１０４がスタンバイ状態となるＳ０ステートを持つ。プリンタ部１０７やスキャナ部１０６などの機能ユニットを備えるＭＦＰ１０１は、ＣＰＵ３０１に電力が供給される状態（Ｓ０ステート）で、周辺デバイス（プリンタ部１０７やスキャナ部１０６）などへの電力供給を停止するモードを持つ。例えば、プリント処理を実行する場合には、ＣＰＵ３０１及びプリンタ部１０７へ電力供給を行う必要があるが、スキャナ部１０６への電力供給を行う必要がない。一方で、スキャン処理を実行する場合には、ＣＰＵ３０１及びスキャナ部１０６へ電力供給を行う必要があるが、プリンタ部１０７への電力供給を行う必要がない。さらに、外部装置１０２からの問い合わせに対して応答する場合には、ＣＰＵ３０１へ電力供給を行う必要があるが、プリンタ部１０７及びスキャナ部１０６へ電力供給を行う必要がない。
【００５４】
本実施形態では、コントローラ部１０４がＳ０ステートで、プリンタ部１０７及びスキャナ部１０６へ電力が供給されるスタンバイモード（Ｓ０）と、プリンタ部１０７及びスキャナ部１０６への電力供給が停止される待機応答モード（Ｓ０）と、を有する。ＭＦＰ１０１がスタンバイモードの場合、ＭＦＰ１０１の各部（コントローラ部１０４、操作部１０５、スキャナ部１０６、プリンタ部１０７）に電力が供給されている。また、ＭＦＰが待機応答モードの場合、ＭＦＰ１０１のコントローラ部１０４には電力が供給されるが、スキャナ部１０６やプリンタ部１０７には電力が供給されない。待機応答モードのときに、ＰＣＩデバイスは、Ｄ０ステート又はＤ３ステートに移行する。
【００５５】
待機応答モード（Ｓ０）において、ＣＰＵ３０１への電力供給を停止しない理由は、ネットワークを介した外部装置１０２との通信の応答性を良くするためである。近年、ＰＣ、サーバ、携帯端末などネットワークに接続される外部装置１０２が増加しており、それらの外部装置１０２との通信処理を早く行うことがＭＦＰ１０１でも必要になっている。トナー残量、用紙残量、用紙ジャム、エラーの発生情報、ソフトウェアプログラムのバージョン確認、バージョンアップ、新規プログラムのダウンロードなど様々な通信を行う必要があるためである。
【００５６】
Ｓ０ステートにおいて、ＰＣＩデバイスは、Ｄ０ステートになり、Ｓ３ステートにおいて、ＰＣＩデバイスは、Ｄ３ステートになるのが一般的である。近年、Ｓ０ステートでありながら、ＰＣＩデバイスをＤ３ステートに移行させるＲｕｎｔｉｍｅ  Ｄ３という技術が実現されている。そこで、本実施形態のＭＦＰ１０１においても、Ｒｕｎｔｉｍｅ  Ｄ３を実現している。ただし、本実施形態のＭＦＰ１０１は、Ｓ０ステートの待機応答モードでは、Ｒｕｎｔｉｍｅ  Ｄ３を実行するが、スタンバイモードでは、Ｒｕｎｔｉｍｅ  Ｄ３を実行しない。つまり、スタンバイモードでは、ＰＣＩデバイスをＤ３ステートに移行させずにＤ０ステートに維持する。
【００５７】
Ｓ３ステートにおいて、ＰＣＩデバイスは、Ｄ３ステートとなる。ＩＯコントローラ３０４がＤ３ステートになると、エンジンＰＣＩｅ  Ｉ／Ｆ、エンジンＣＰＵ、エンジンＲＯＭ、エンジンＲＡＭ、スキャナＩ／Ｆ、プリンタＩ／Ｆ、ＵＳＢＩ／Ｆが省電力状態になる。また、ＬＡＮコントローラ３０７がＤ３ステートになると、ＬＡＮＰＣＩｅ  Ｉ／Ｆ、ＬＡＮＣＰＵ、ＬＡＮＲＯＭ、ＬＡＮＲＡＭが省電力状態になる。
【００５８】
＜Ｓ３ステート＞
Ｓ０ステートではコントローラ部１０４のＣＰＵ３０１に電力が供給されている。省電力を図るため、ＭＦＰ１０１は、Ｓ３ステートに移行する。Ｓ３ステートは、サスペンド状態とも呼ばれる。Ｓ３ステートでは、ＣＰＵ３０１への電力供給を停止して、ＭＦＰ１０１の省電力を図っている。Ｓ３ステートでは、ＣＰＵ３０１の状態などが汎用メモリ３０３に退避され、この汎用メモリ３０３はセルフリフレッシュモードになる。Ｓ３ステートから復帰する場合には、汎用メモリ３０３に退避された情報を使ってレジュームすることによって、ブートロムから起動を行う場合に比べて高速復帰することができる。
【００５９】
Ｓ３ステートにおいて、ＰＣＩデバイスは、Ｄ３ステートとなる。ＩＯコントローラ３０４がＤ３ステートになると、エンジンＰＣＩｅ  Ｉ／Ｆ、エンジンＣＰＵ、エンジンＲＯＭ、エンジンＲＡＭ、スキャナＩ／Ｆ、プリンタＩ／Ｆ、ＵＳＢＩ／Ｆが省電力状態になる。また、ＬＡＮコントローラ３０７がＤ３ステートになると、ＬＡＮＰＣＩｅ  Ｉ／Ｆ、ＬＡＮＣＰＵ、ＬＡＮＲＯＭ、ＬＡＮＲＡＭが省電力状態になる。
【００６０】
＜Ｓ５ステート＞
メインスイッチ２０７がオフ状態になると、ＭＦＰ１０１への電力供給が停止されるＳ５ステートに移行する。Ｓ５ステートでは、ＣＰＵ３０１に加えて、汎用メモリ３０３への電力供給も停止される。
【００６１】
次に、電力状態の遷移について詳細に説明する。
【００６２】
＜Ｓ６０１：Ｓ５ステート⇒Ｓ０ステート＞
電源オフモード（Ｓ５）は、ＭＦＰ１０１の電源スイッチであるメインスイッチ２０７がオフされ、各ユニットへの電源供給が遮断されている状態である。メインスイッチ２０７がオン状態になると、スタンバイモード（Ｓ０）に移行する。スタンバイモード（Ｓ５）は、ＭＦＰ１０１の全ユニットに電源供給される状態であって、コピー、プリントなど各種のジョブを実行している状態、あるいは、すぐにジョブを実行できる状態である。
【００６３】
＜Ｓ６０２：Ｓ０ステート（スタンバイモード）⇒Ｓ０ステート（待機応答モード）＞
待機応答モード（Ｓ０）は、電源部１０８のリレースイッチ２０２〜２０４がオフされ、スキャナ部１０６、プリンタ部１０７及び操作部１０５への電力供給が停止される状態である。一方で、第１電源部２０５は、コントローラ部１０４及び操作部１０５の一部に電力を供給する。スタンバイモード及び待機応答モードは、共にＳ０ステートである。
【００６４】
表１にスタンバイモード（Ｓ０）から待機応答モード（Ｓ０）への移行条件を示す。
【００６５】
【表１】
2017177573.tif 000003
ＭＦＰ１０１は、時間経過、操作部スイッチ押下及び時計設定の何れかの条件を満たすと、スタンバイモード（Ｓ０）から待機応答モード（Ｓ０）へ移行する。
【００６６】
表１の移行条件の時間経過とは、操作部１０５の操作が終了してからの経過時間、あるいはジョブが終了してからの経過時間が、所定時間を超えた場合である。この所定時間は、数分から数時間の間の時間をユーザが設定することができる。操作部スイッチ押下は、操作部１０５の節電キー（図示せず）をユーザが押下した場合である。時計設定は、予めユーザが設定した時刻になった場合である。
【００６７】
＜Ｓ６０３：Ｓ０ステート⇒Ｓ３ステート＞
スリープモード（Ｓ３）は、待機応答モード（Ｓ０）の電力状態から、さらに、ＣＰＵ３０１及びＩＯコントローラ３０４への電力供給を停止した状態である。スリープモード（Ｓ３）は、ＭＦＰ１０１をスリープモード（Ｓ３）からスタンバイモード（Ｓ０）や待機応答モード（Ｓ０）に復帰させるために必要な箇所にだけ電力を供給した低電力状態である。Ｓ３ステートでは、Ｓ０ステートと異なりＣＰＵ３０１への電力供給が停止される。具体的には、スリープモード（Ｓ３）では、図３の汎用メモリ３０３、操作部インターフェース３０５、電源制御部２０１、ＬＡＮコントローラ３０７にのみ電力が供給されている。さらに、汎用メモリ３０３は、リフレッシュモードに移行する。ＬＡＮコントローラ３０７は、外部装置１０２からの問い合わせに対して、ＬＡＮコントローラ３０７で対応できる内容については、ＣＰＵ３０１への電力供給を停止したまま応答する。これを代理応答と呼ぶ。なお、スリープモード（Ｓ３）において、ＰＣＩデバイスであるＬＡＮコントローラ３０７及びＩＯコントローラ３０４は、Ｄ３ステートとなっている。
【００６８】
表２に待機応答モード（Ｓ０）からスリープモード（Ｓ３）への移行条件を示す。
【００６９】
【表２】
2017177573.tif 000004
ＭＦＰ１０１は、時間経過、及び、プリント以外のジョブ処理の終了の何れかの条件を満たすと、待機応答モード（Ｓ０）からスリープモード（Ｓ３）へ移行する。
【００７０】
表１の移行条件の時間経過とは、ジョブの実行が完了してからの経過時間が、所定時間を超えた場合である。この所定時間は、数分から数時間の間の時間をユーザが設定することができる。プリント以外のジョブ処理の終了は、外部装置１０２からネットワーク経由の問い合わせに対する応答が終了した場合である。
【００７１】
＜Ｓ６０４：Ｓ０ステート（待機応答モード）⇒Ｓ０ステート（スタンバイモード）＞
表３に待機応答モード（Ｓ０）からスタンバイモード（Ｓ０）への復帰条件を示す。
【００７２】
【表３】
2017177573.tif 000005
ＭＦＰ１０１は、操作部スイッチ押下、ジョブ受信、時計設定、及びＵＳＢデバイス検知の何れかの条件を満たすと、待機応答モード（Ｓ０）からスタンバイモード（Ｓ０）へ移行する。
【００７３】
表３の復帰条件の操作部スイッチ押下とは、操作部１０５の不図示の節電キーをユーザが押下した場合である。節電キーがユーザによって押下されると、操作部１０５の節電キーからの信号が操作部インターフェース３０５を介してＣＰＵ３０１に検知される。また、ジョブ受信は、外部装置１０２からネットワーク１０３を介してプリントジョブを受信した場合である。時計設定は、時計部によって計時される現在時刻が予め設定された時刻に一致した場合である。ＵＳＢデバイス検知は、ＵＳＢＩ／Ｆ４２８にＵＳＢデバイスが接続されたことを検知した場合、若しくは、すでに接続されたＵＳＢデバイスが復帰要因を検知した場合である。ＵＳＢデバイスが検知する復帰要因は、ＵＳＢデバイスである認証用カードリーダーがカードを検知したこと、ＵＳＢデバイスであるカメラデバイスや人検知センサによって人が検知されたこと、などがある。復帰条件は、上記した条件に限らず、スキャナ部１０６の原稿検知センサが原稿台に置かれた原稿を検知した場合、プリンタ部１０７の手差し用紙トレイに置かれた用紙を検知した場合であっても良い。
【００７４】
＜Ｓ６０５：Ｓ３ステート⇒Ｓ０ステート＞
表４にスリープモード（Ｓ３）から待機応答モード（Ｓ０）又はスタンバイモード（Ｓ０）への復帰条件を示す。
【００７５】
【表４】
2017177573.tif 000006
ＭＦＰ１０１は、操作部スイッチ押下、プリントジョブ受信、プリント以外のジョブ受信、及び、時計設定の何れかの条件を満たすと、スリープモード（Ｓ３）から待機応答モード（Ｓ０）に復帰する。
【００７６】
表４の復帰条件の操作部スイッチ押下とは、操作部１０５の不図示の節電キーをユーザが押下した場合である。節電キーがユーザによって押下されると、操作部１０５の節電キーからの信号が操作部インターフェース３０５を介してＣＰＵ３０１に検知される。プリントジョブ受信は、外部装置１０２からネットワーク１０３を介してプリントジョブを受信した場合である。時計設定は、時計部によって計時される現在時刻が予め設定した時刻に一致した場合である。プリント以外のジョブ受信は、外部装置１０２からネットワークを介してＭＦＰ１０１の情報（以下、デバイス情報）を問い合わせるジョブ（問い合わせジョブ）であって、ＬＡＮコントローラ３０７が代理応答できない問い合わせジョブを受信した場合である。
【００７７】
スリープモード（Ｓ３）で上記した復帰条件が検知されると、電源制御部２０１に割込信号が入力される。電源制御部２０１は、割込信号が入力されると、ＣＰＵ３０１やプログラムメモリ３０２に電力が供給されるよう制御する。電力が供給されたＣＰＵ３０１は、汎用メモリ３０３に退避された情報を用いて、レジューム処理を行う。また、電源制御部２０１は、割込信号の種類に基づいて、機能ユニットへの電力供給を行う。具体的には、電源制御部２０１は、プリントジョブに関する割込信号が入力されると、ＣＰＵ３０１や汎用メモリ３０３に加えて、プリンタ部１０７に電力を供給する。一方、電源制御部２０１は、問い合わせを受信した場合、節電キーが押下された場合、及び、設定した時間になった場合、ＣＰＵ３０１や汎用メモリ３０３に電力を供給するが、プリンタ部１０７には電力を供給しない。
【００７８】
＜Ｓ６０６：Ｓ３ステート⇒Ｓ５ステート＞
表５にスリープモード（Ｓ３）から電源オフモード（Ｓ５）への移行条件を示す。
【００７９】
【表５】
2017177573.tif 000007
ＭＦＰ１０１は、メインスイッチ押下、及び、時間経過の何れかの条件を満たすと、スリープモード（Ｓ３）から電源オフモード（Ｓ５）に復帰する。
【００８０】
表５の復帰条件のメインスイッチ押下とは、ユーザがメインスイッチ２０７をオフ状態に動かした場合である。また、時間経過とは、スリープモード（Ｓ３）で所定時間が経過した場合である。この所定時間は、数分から数時間の間の時間をユーザが設定することができる。
【００８１】
＜Ｓ６０７，Ｓ６０８：Ｓ０ステート⇒Ｓ５ステート＞
ＭＦＰ１０１がＳ０ステートのときに、ユーザがメインスイッチ２０７をオフ状態に動かした場合には、ＭＦＰ１０１は、電源オフモード（Ｓ５）に移行する。なお、この電源オフモード（Ｓ５）は、サスペンド状態（ＡＣＰＩ規格のＳ３）であっても良いし、ハイバネーション状態（ＡＣＰＩ規格のＳ４）であっても良い。
【００８２】
次に、ＰＣＩデバイスの電力制御について説明する。
【００８３】
本実施形態において、ＰＣＩデバイスは、ＣＰＵ３０１とＰＣＩｅバスで接続されるＩＯコントローラ３０４及びＬＡＮコントローラ３０７である。本実施形態では、ＰＣＩデバイスがＲｕｎｔｉｍｅ  Ｄ３に対応しており、コントローラ部１０４がＳ０ステートでありながら、ＰＣＩデバイスをＤ０ステートとＤ３ステートの間で遷移させることができる。そして、本実施形態では、ＭＦＰ１０１がスタンバイモード（Ｓ０）の場合には、ＰＣＩデバイスをＤ０ステートのままにし、Ｄ３ステートに移行するのを禁止している。また、ＭＦＰ１０１が待機応答モード（Ｓ０）の場合には、ＰＣＩデバイスがＤ０ステートとＤ３ステートとの間で遷移するように制御する。
【００８４】
表６は、ＭＦＰ１０１の電力モードとＰＣＩデバイスの電力状態との対応を示す表である。ＭＦＰ１０１は、表６に示すように、ＭＦＰ１０１の電力モードに基づいて、ＰＣＩデバイスの電力状態を制御している。
【００８５】
【表６】
2017177573.tif 000008
表６に示すように、ＭＦＰ１０１の電力モードがスタンバイモード（Ｓ０）のとき、ＰＣＩデバイスはＤ０ステートとなり、スリープモード（Ｓ３）のとき、ＰＣＩデバイスはＤ３ステートとなる。また、ＭＦＰ１０１の電力モードが電源オフモード（Ｓ５）のとき、ＰＣＩデバイスへの電力供給は停止される。
【００８６】
上記したように、本実施形態では、ＭＦＰ１０１の電力モードがスタンバイモード（Ｓ０）である場合には、ＰＣＩｅバスで接続されるＰＣＩデバイスをＤ３ステートに移行するのを禁止する。本実施形態のＰＣＩデバイスは、Ｓ０ステートにおいてＤ３ステートに移行するＲｕｎｔｉｍｅ  Ｄ３をサポートしている。ただし、本実施形態では、スタンバイモード（Ｓ０）において、ＰＣＩデバイスをＤ０ステートに留めることによって、ジョブ実行時の応答性を高くしている。
【００８７】
そして、本実施形態では、ＭＦＰ１０１が待機応答モード（Ｓ０）であるときには、ＰＣＩデバイスは、Ｄ０ステートとＤ３ステートとの間を遷移する。待機応答モード（Ｓ０）におけるＰＣＩデバイスのＤ０ステートと、スタンバイモード（Ｓ０）におけるＰＣＩデバイスのＤ０ステートとは、同じ状態である。ただし、待機応答モード（Ｓ０）では、スタンバイモード（Ｓ０）と異なり、スキャナ部１０６及びプリンタ部１０７への電力供給は停止されている。
【００８８】
表７に、待機応答モード（Ｓ０）においてＰＣＩデバイスがＤ０ステートからＤ３ステートに移行する移行条件を示す。
【００８９】
【表７】
2017177573.tif 000009
ＰＣＩデバイスがＤ０ステートからＤ３ステートに移行する移行条件は、時間経過である。ＰＣＩデバイスは、ＭＦＰ１０１の電力モードが待機応答モード（Ｓ０）であり、且つ、ＰＣＩデバイスがアイドル状態で所定時間経過した場合である。ＰＣＩデバイスは、ＭＦＰ１０１の電力モードが変更されるのに比べて、頻繁にＤ０ステートとＤ３ステートとの間を遷移する。この所定時間は、数秒からミリ秒の時間に設定することができる。
【００９０】
次に、表８に、待機応答モード（Ｓ０）においてＰＣＩデバイスがＤ３ステートからＤ０ステートに復帰する復帰条件を示す。
【００９１】
【表８】
2017177573.tif 000010
ＰＣＩデバイスをＤ３ステートからＤ０ステートに復帰させる条件は、ＣＰＵ３０１が復帰要因を検知した場合と、ＰＣＩデバイスが復帰要因を検知した場合である。すなわち、ＰＣＩデバイスは、Ｄ３ステートのときに、ＣＰＵ３０１とＰＣＩデバイスの両方からＤ０ステートへ復帰することができる。
【００９２】
表７に示したＣＰＵ復帰要因検知時は、ＣＰＵ３０１が復帰要因を検知した時である。例えば、ＭＦＰ１０１の電力状態が待機応答モードからスタンバイモードに変わるときである。具体的には、電源制御アプリケーションＡ１がＭＦＰ１０１の電力状態を待機応答モードからスタンバイモードに変えるときに、ＣＰＵ３０１によって実行されるデバイスドライバがＰＣＩデバイスをＤ３ステートからＤ０ステートに移行する。また、ＰＣＩデバイスの設定を変更する場合やＰＣＩデバイスのデバイス情報を取得するときには、デバイスドライバからＰＣＩデバイスにアクセスが発生する。このとき、デバイスドライバは、ＰＣＩデバイスをＤ３ステートからＤ０ステートに移行する。例えば、例えば、所定時刻にＬＡＮコントローラ３０７からネットワーク１０３を介して外部装置１０２に情報を送信するような場合がある。時計部４１４によって計時される現在時刻が所定時刻になると、ＣＰＵ３０１に割り込み信号が入力される。ＣＰＵ３０１は、割り込み信号が入力されると、ＰＣＩデバイスのレジスタの値を書き換える。これにより、ＰＣＩデバイスがＤ３ステートからＤ０ステートに復帰する。その結果、ＬＡＮコントローラ３０７が、外部装置１０２に情報を送信することが可能となる。
【００９３】
また、表７に示したデバイス復帰要因検知時は、ＰＣＩデバイスが復帰要因を検知した場合である。例えば、ＬＡＮコントローラ３０７が外部装置１０２からネットワーク１０３を介してデータを受信した場合、ＵＳＢＩ／Ｆ４２８がＵＳＢデバイスを検出した場合などがある。ＰＣＩデバイスが復帰要因を検知した場合、ＰＣＩデバイスは、アウトバンド（ＰＣＩｅバスの外側）でＣＰＵ３０１に割り込み信号を出力する。ＣＰＵ３０１は、割り込み信号が入力されると、ＰＣＩデバイスのレジスタの値を書き換える。これにより、ＰＣＩデバイスがＤ３ステートからＤ０ステートに復帰する。
【００９４】
図７Ａは、待機応答モード（Ｓ０）でアクティブ状態のＰＣＩデバイスを示した図であり、図７Ｂは、待機応答モード（Ｓ０）でローパワー状態のＰＣＩデバイスを示した図である。
【００９５】
アクティブ状態では、図７Ａに示すように、ＣＰＵ３０１は、Ｃ０ステートとなっており、ＰＣＩデバイスは、Ｄ０ステートとなっている。具体的には、アクティブ状態では、ＣＰＵ３０１内の各部、ＩＯコントローラ３０４内の各部、及び、ＬＡＮコントローラ３０７の各部に電力が供給されている。
【００９６】
また、ローパワー状態では、図７Ｂに示すように、ＣＰＵ３０１は、Ｃ１０ステートとなっており、ＰＣＩデバイスは、Ｄ３ステートとなっている。なお、ＣＰＵ３０１に接続される汎用メモリ３０３は、セルフリフレッシュ状態となっている。ローパワー状態において、ＣＰＵ３０１の内部の第１ＰＣＩｅ  Ｉ／Ｆ４１１、ＣＰＵコア４１２、メモリコントローラ４１３及び第２ＰＣＩｅ  Ｉ／Ｆ４１５が省電力状態になっている。省電力状態とは、電力供給の停止、供給クロックの停止、供給クロックの周波数低減の何れかである。ローパワー状態において、ＩＯコントローラ３０４のエンジンＰＣＩｅ  Ｉ／Ｆ４２１、エンジンＣＰＵ４２２、エンジンＲＯＭ４２３、エンジンＲＡＭ４２４、スキャナＩ／Ｆ４２５、プリンタＩ／Ｆ４２６及びＵＳＢＩ／Ｆ４２８が省電力状態になっている。また、ローパワー状態において、ＬＡＮコントローラ３０７のＬＡＮＩ／Ｆ４３１、ＬＡＮＣＰＵ４３２、ＬＡＮＲＯＭ４３３、ＬＡＮＰＣＩｅ  Ｉ／Ｆ４３４、及び、ＬＡＮＲＡＭ４３５が省電力状態になっている。
【００９７】
図８は、電源制御アプリの処理を示したフローチャートである。電源制御アプリを実行するＣＰＵ３０１が図８のフローチャートの各処理を実行する。
【００９８】
図８の（Ａ）に示すように、ＭＦＰ１０１がスタンバイモード（Ｓ０）の場合、ＣＰＵ３０１は、待機応答モードへの移行条件を満たすかどうかを判断する（Ｓ８０１）。待機応答モードへの移行条件は、上記した表１の条件である。待機応答モードへの移行条件の何れかを満たすと判断した場合（Ｓ８０１：Ｙｅｓ）、ＣＰＵ３０１は、デバイスドライバに待機応答モードを示す情報を通知する（Ｓ８０２）。そして、ＣＰＵ３０１は、プリンタ部１０７やスキャナ部１０６への電力供給を停止することによって、ＭＦＰ１０１を待機応答モード（Ｓ０）に移行する（Ｓ８０３）。
【００９９】
図８の（Ｂ）に示すように、ＭＦＰ１０１が待機応答モード（Ｓ０）の場合、ＣＰＵ３０１は、スタンバイモードへの移行条件を満たすかどうかを判断する（Ｓ８１１）。スタンバイモードへの移行条件は、上記した表３の条件である。スタンバイモードへの移行条件の何れかを満たすと判断した場合（Ｓ８１１：Ｙｅｓ）、ＣＰＵ３０１は、デバイスドライバにスタンバイモードを示す情報を通知する（Ｓ８１２）。そして、ＣＰＵ３０１は、プリンタ部１０７やスキャナ部１０６に電力が供給されるよう制御することによって、ＭＦＰ１０１をスタンバイモード（Ｓ０）に移行する（Ｓ８１３）。
【０１００】
スタンバイモードへの移行条件の何れも満たさないと判断した場合（Ｓ８１１：Ｎｏ）、ＣＰＵ３０１は、スリープモード（Ｓ３）への移行条件を満たすかどうかを判断する（Ｓ８１４）。スリープモードへの移行条件は、上記した表２の条件である。スリープモードへの移行条件の何れかを満たすと判断した場合（Ｓ８１４：Ｙｅｓ）、ＣＰＵ３０１は、デバイスドライバにスリープモードを示す情報を通知する（Ｓ８１５）。そして、ＣＰＵ３０１は、ＣＰＵ３０１自身への電力供給が停止されるよう制御することによって、ＭＦＰ１０１をスリープモード（Ｓ０）に移行する（Ｓ８１６）。
【０１０１】
図８の（Ｃ）に示すように、ＭＦＰ１０１がスリープモード（Ｓ３）の場合、表４の何れかの復帰条件が検知されると、電源制御部２０１が、ＣＰＵ３０１に電力を供給する。電力が供給されたＣＰＵ３０１は、電源制御部２０１にラッチされた復帰条件を確認する。ＣＰＵ３０１は、確認した復帰条件が待機応答モードへの復帰条件であるか否か判断する（Ｓ８２１）。待機応答モードへの復帰条件は、上記した表４の「プリントジョブ受信」以外の条件である。待機応答モードへの復帰条件の何れかを満たすと判断した場合（Ｓ８２１：Ｙｅｓ）、ＣＰＵ３０１は、デバイスドライバに待機応答モードを示す情報を通知する（Ｓ８２２）。そして、ＣＰＵ３０１は、ＭＦＰ１０１を待機応答モード（Ｓ０）に移行する（Ｓ８２３）。
【０１０２】
確認した復帰条件が待機応答モードへの復帰条件では無く且つスタンバイモードへの復帰条件であると判断した場合（Ｓ８２１：Ｎｏ、Ｓ８２４：Ｙｅｓ）、ＣＰＵ３０１は、デバイスドライバにスタンバイモードを示す情報を通知する（Ｓ８２５）。そして、ＣＰＵ３０１は、プリンタ部１０７やスキャナ部１０６へ電力が供給されるよう制御することによって、ＭＦＰ１０１をスタンバイモード（Ｓ０）に移行する（Ｓ８２６）。なお、スタンバイモードへの復帰条件は、上記した表４の「プリントジョブ受信」であるので、スキャナ部１０６への電力供給は行わなくても良い。
【０１０３】
図９は、デバイスドライバの処理を示したフローチャートである。
【０１０４】
ＣＰＵ３０１は、ＰＣＩデバイスのデバイスドライバを実行することによって、図９のフローチャートの各処理を実行する。
【０１０５】
まず、ＣＰＵ３０１は、ＭＦＰ１０１の電力モードが待機応答モードかどうかを判断する（Ｓ９０１）。Ｓ９０１において、ＣＰＵ３０１がスタンバイモードであると判断した場合、ＣＰＵ３０１は、後述するＰＣＩデバイスをＤ３ステートに移行する処理を実行せずに、このフローチャートの処理を終了する（Ｓ９０１：Ｎｏ）。
【０１０６】
Ｓ９０１において、ＣＰＵ３０１が待機応答モードであると判断した場合、ＣＰＵ３０１は、ＰＣＩデバイスがアイドル状態かどうかを判断する（Ｓ９０２）。ＰＣＩデバイスが所定時間継続してアイドル状態であると判断すると（Ｓ９０３：Ｙｅｓ）、ＣＰＵ３０１は、ＰＣＩデバイスの内部のレジスタの値を、Ｄ３ステートを示す値に書き換える。これにより、ＰＣＩデバイスの内部のプロセッサが、ＰＣＩデバイスをＤ３ステートに移行する。
【０１０７】
以上説明したように、本実施形態では、コントローラ部１０４のステートがＳ０ステートであっても、ＭＦＰ１０１の電力モードに基づいて、Ｒｕｎｔｉｍｅ  Ｄ３を実行するかどうか切り替えるようにする。具体的には、応答性を要求するモードであるスタンバイモードでは、ＰＣＩデバイスをＤ０に維持し、省電力を優先する待機応答モードでは、ＰＣＩデバイスをＤ０ステートからＤ３ステートに移行可能とする。
【０１０８】
これにより、スタンバイモードでは、ジョブ実行時の応答性を高めることが可能となると共に、待機応答モードでは、省電力を図ることができる。
【０１０９】
＜第２実施形態＞
第１実施形態では、ＭＦＰ１０１の電力モードがスタンバイモードの場合、全てのＰＣＩデバイスの電力状態をＤ０ステートに維持し、待機応答モードの場合に全てのＰＣＩデバイスの電力状態をＤ０ステートからＤ３ステートに移行可能にした。
【０１１０】
第２実施形態では、ＭＦＰ１０１がスタンバイモードの場合、少なくとも１つのＰＣＩデバイスの電力状態をＤ０ステートに維持し、待機応答モードの場合に少なくとも１つのＰＣＩデバイスの電力状態をＤ０ステートからＤ３ステートに移行可能にする。具体的には、ＭＦＰ１０１の電力モードがスタンバイモードの場合、ＩＯコントローラ３０４の電力状態をＤ０ステートに維持し、待機応答モードの場合にＩＯコントローラ３０４の電力状態をＤ０ステートからＤ３ステートに移行可能にする。これに対して、ＭＦＰ１０１の電力モードがスタンバイモードであっても、ＬＡＮコントローラ３０７の電力状態をＤ０ステートからＤ３ステートに移行可能にする。
【０１１１】
表９にＩＯコントローラ３０４の電力状態を示し、表１０にＬＡＮコントローラ３０７の電力状態を示す。
【０１１２】
【表９】
2017177573.tif 000011
表９に示すように、ＩＯコントローラ３０４は、スタンバイモードにおいてＤ０ステートとなり、待機応答モードにおいてＤ０ステート又はＤ３ステートとなる。
【０１１３】
【表１０】
2017177573.tif 000012
ＩＯコントローラ３０４とは異なり、ＬＡＮコントローラ３０７は、表１０に示すように、スタンバイモードにおいてＤ０ステート又はＤ３ステートとなる。具体的には、ＬＡＮコントローラ３０７は、ＬＡＮケーブルが物理的に接続されていない場合、又は、リンクパルス信号を受信しない場合に、Ｄ３ステートに移行する。また、待機応答モードにおいて、ＬＡＮコントローラ３０７は、受信したパケットへの応答時にはＤ０ステートになり、待機時にはＤ３ステートになる。つまり、ＬＡＮケーブルが物理的に接続されていない場合、又は、リンクパルス信号を受信しない場合に、Ｄ３ステートのままになる。
【０１１４】
以上説明したように、第２実施形態では、ＭＦＰ１０１がスタンバイモードのときに、ＰＣＩデバイスの何れか１つをＤ０ステートとＤ３ステートとの間を移行可能とし、他のＰＣＩデバイスをＤ３ステートに移行するのを禁止した。つまり、第２実施形態では、ＩＯコントローラ３０４のデバイスドライバは、ＭＦＰ１０１の電力モードに基づいて、Ｒｕｎｔｉｍｅ  Ｄ３を実行するかどうかを決定している。一方で、ＬＡＮコントローラ３０７のデバイスドライバは、ＭＦＰ１０１の電力モードに関わらず、Ｒｕｎｔｉｍｅ  Ｄ３を実行する。
【０１１５】
また、第２実施形形態では、デバイスの使用状況に基づいて、Ｒｕｎｔｉｍｅ  Ｄ３を実行するかどうかを切り替えるようにした。これにより、明らかにＰＣＩデバイスを使用しない状況で、ＰＣＩデバイスがＤ０ステートに維持されるのを防止して、Ｄ３ステートに移行することが可能となる。
【０１１６】
（他の実施形態）
上記した実施形態では、本発明の情報処理装置としてＭＦＰについて説明したが、パーソナルコンピュータやサーバなどの情報処理装置であっても良い。
【０１１７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給するよう構成することによっても達成される。この場合、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することにより、上記機能が実現されることとなる。なお、この場合、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１１８】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１１９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現される場合に限られない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１２０】
さらに、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、前述した実施形態の機能が実現される場合も含まれる。つまり、プログラムコードがメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって実現される場合も含まれる。
【符号の説明】
【０１２１】
１０１  ＭＦＰ
１０４  コントローラ部
１０６  スキャナ部
１０７  プリンタ部
３０１  ＣＰＵ
３０４  ＩＯコントローラ
３０７  ＬＡＮコントローラ
３１０  ＰＣＩｅバス
３２０  ＰＣＩｅバス
Ａ１  電源制御アプリケーション
Ｄ１  ＩＯドライバ（デバイスドライバ）
Ｄ２  ＮＩＣドライバ（デバイスドライバ）
【図１】
2017177573.tif 000013
【図２】
2017177573.tif 000014
【図３】
2017177573.tif 000015
【図４】
2017177573.tif 000016
【図５】
2017177573.tif 000017
【図６】
2017177573.tif 000018
【図７Ａ】
2017177573.tif 000019
【図７Ｂ】
2017177573.tif 000020
【図８】
2017177573.tif 000021
【図９】
2017177573.tif 000022