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