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