(57)【要約】【課題】サスペンドモードに移行している途中において発生した外部からの問い合わせやジョブ等の送信があった場合に、送信側がタイムアウトして接続を切断してしまう場合がある。【解決手段】情報処理装置は、少なくとも第１の電力状態と前記第１の電力状態よりも消費電力の少ない第２の電力状態とを切り替えて動作可能である。前記第１の電力状態から前記第２の電力状態に移行する処理の開始から終了までの間において検知したイベントが通信の確立のイベントである場合、通信手段に、第２の電力状態において通信の接続を維持させる通知を通信の相手に送信させる。【選択図】図１０
2017149119.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の電力状態と前記第１の電力状態よりも消費電力の少ない第２の電力状態とを切り替えて動作可能な情報処理装置であって、
前記第２の電力状態においても外部と通信可能な通信手段と、
前記第１の電力状態から前記第２の電力状態に移行する処理の開始から終了までの間における第１のイベントの発生を検知する検知手段と、
前記検知手段で検知した前記第１のイベントが通信の確立のイベントである場合、前記通信手段に、前記第２の電力状態において前記通信の接続を維持させる通知を前記通信の相手に送信させる制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記検知手段で前記第１のイベントの発生を検知した場合、前記第１の電力状態への復帰を予約する予約手段と、
前記予約手段で予約がされていた場合、前記２の電力状態に移行が完了した後に、前記第２の電力状態から前記第１の電力状態に復帰させる復帰手段と
をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記検知手段で検知した前記第１のイベントが通信の確立のイベントである場合、前記復帰手段によって前記第１の電力状態に復帰が行なわれた後に、前記通信手段に、前記通信の再開を依頼する通知を前記通信の相手に送信させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検知手段は、前記第２の電力状態における第２のイベントの発生をさらに検知可能であり、
前記復帰手段は、前記予約手段で予約がされていない場合において、前記第２の電力状態において前記第２のイベントの発生を検知した場合、前記第２の電力状態から前記第１の電力状態に復帰させることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記復帰手段は、前記予約手段で予約がされていた場合、前記検知手段が前記第２の電力状態において前記第２のイベントの発生を検知しなくても前記第２の電力状態から前記第１の電力状態に復帰させることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御手段は、前記通信手段が第２の電力状態に移行した後に前記検知手段で検知した前記第２のイベントが通信の確立のイベントである場合、前記通信手段に、前記通知を前記通信の相手に送信させる制御をしないことを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記第１のイベントはＴＣＰのコネクションの確立のイベントであり、
前記通信手段は、所定のＴＣＰパケットを前記通信の接続を維持させる通知として送信することを特徴とする請求項１から６のいずれか一項に記載の情報処理装置。
【請求項８】
前記制御手段は、前記第１の電力状態において最後に行なわれたＴＣＰのコネクションを示すコネクション情報を用いた前記所定のＴＣＰパケットの代理送信を前記通信手段に行なわせることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記ＴＣＰパケットは、ＴＣＰ  ＺｅｒｏＷｉｎｄｏｗパケットであることを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記ＴＣＰパケットは、ＴＣＰ  ＫｅｅｐＡｌｉｖｅパケットであることを特徴とする請求項７または８に記載の情報処理装置。
【請求項１１】
前記第１の電力状態から前記第２の電力状態に移行する処理の開始から終了までの間とは、前記第１の電力状態から前記第２の電力状態に移行する処理をキャンセルできない期間であることを特徴とする請求項１から１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記キャンセルできない期間は、ハードウエアが前記第２の電力状態においても独立して動作するモードに移行する処理が開始された後の期間であることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記通信手段は、前記第１の電力状態と前記第２の電力状態とを切り替える際に通信速度の変更を行なうことを特徴とする請求項１から１２のいずれか一項に記載の情報処理装置。
【請求項１４】
少なくとも第１の電力状態と前記第１の電力状態よりも消費電力の少ない第２の電力状態とを切り替えて動作可能な情報処理装置であって、前記第２の電力状態においても外部と通信可能な通信手段を有する情報処理装置の制御方法であって、
前記第１の電力状態から前記第２の電力状態に移行する処理の開始から終了までの間における第１のイベントの発生を検知する検知ステップと、
前記検知ステップで検知した前記第１のイベントが通信の確立のイベントである場合、前記通信手段に、前記第２の電力状態において前記通信の接続を維持させる通知を前記通信の相手に送信させる制御ステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
コンピュータに請求項１４に記載の制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１の電力状態と第１の電力状態より消費電力の少ない第２の電力状態とを切り替えて動作可能な情報処理装置およびその制御方法に関する。
【背景技術】
【０００２】
近年の画像形成装置等の情報処理装置は、使用していない時の消費電力を下げ、かつ、現在の動作状態と同様な動作状態で復帰可能なように、実行中のプログラムなどの動作を休止した状態とする機能がある。このように動作を休止した状態のことをサスペンドモードと呼ぶ。
【０００３】
サスペンドモードへの移行処理では、動作を休止する直前の状態で、カーネルのデバイスドライバがデバイスの状態をメモリに保存し、各々のサービスを中断する。また、休止する直前の状態に復帰するレジュームと呼ばれる機能を有するものもある。サスペンドモードにおいてレジューム処理が行なわれる契機としては、起床要因が検知された場合がある。起床要因としては、操作パネル上のキー操作、タイマ割り込み、ネットワークパケット受信などがある。また、サスペンドモードから元の動作状態に復帰する処理であるレジューム処理では、デバイスの状態を、先にメモリに保存したデバイスの状態に戻すことにより、ほぼ全てのデバイスの状態をサスペンドモードへ移行する直前の状態に戻す。これらの処理にかかる時間は数秒〜数十秒である。
【０００４】
ここで、サスペンドモードへ移行する処理の途中で起床要因が発生する場合がある。特に、システムがサスペンドモードへの移行処理をキャンセルできないタイミングで起床要因が発生する場合、システムはそのままサスペンドモードへ移行してしまい、その結果、レジューム処理が行われない事態が生じる場合がある。特許文献１は、このような状況に対応する技術が記載されている。特許文献１では、システムがサスペンドモードへの移行処理をキャンセルできないタイミングで起床要因が発生した場合、起床予約フラグを設定する。起床予約フラグが設定されている場合は、システムはサスペンド完了後、即座にレジューム処理を実施する。起床予約フラグはサスペンド処理中にネットワーク接続のコネクション確立を検知した場合などを契機として有効化される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−５２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ネットワークに接続された端末同士の通信方式には、送信側端末と受信側端末との間でコネクションを確立し、受信側端末が通信データを正しく受信できたか、継続してデータ受信可能かどうかといった応答を送信側端末に対して行う方式がある。このような方式として、例えばＴＣＰ（Transmission Control Packet）のプロトコルを用いる方式がある。このような方式を用いたネットワーク通信において、送信側端末は一定時間受信側端末から応答がない場合、受信側端末が通信可能な状態でないと判定してデータ送信を取りやめる（タイムアウトと呼ぶ）。送信側端末がタイムアウトする具体的な時間は送信側の仕様であり、一意には決められていない。
【０００７】
特許文献１の技術を用いると、サスペンドモードに移行する途中におけるネットワーク接続のコネクション確立に起因して起床予約フラグの設定が行なわれることになる。よって、受信側端末はサスペンドモードに移行後、速やかにレジューム処理を行うことはできる。しかしながら、受信側端末はサスペンドモード移行中、サスペンド中、レジューム処理中の間、つまり、サスペンドモード移行からレジューム処理完了までの間、受信側端末は通信相手に対して応答しない。サスペンドモード移行からレジューム処理完了までには数秒から数十秒かかるため、レジューム処理が完了して受信側端末が通信を再開しても通信相手がタイムアウトしてしまっている可能性がある。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、少なくとも第１の電力状態と前記第１の電力状態よりも消費電力の少ない第２の電力状態とを切り替えて動作可能な情報処理装置であって、前記第２の電力状態においても外部と通信可能な通信手段と、前記第１の電力状態から前記第２の電力状態に移行する処理の開始から終了までの間における第１のイベントの発生を検知する検知手段と、前記検知手段で検知した前記第１のイベントが通信の確立のイベントである場合、前記通信手段に、前記第２の電力状態において前記通信の接続を維持させる通知を前記通信の相手に送信させる制御手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、サスペンドモードに移行している途中において発生した外部からの問い合わせやジョブ等の通信に対して応答をすることができる。このため、送信側がタイムアウトして接続を切断してしまうことを防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る画像形成装置の概略構成を示す図である。
【図２】図１におけるＭＦＰコントローラ部の概略構成を示す図である。
【図３】サスペンドの手順を示すフローチャートである。
【図４】各デバイスの状態を示す図である。
【図５】電源制御部への起床予約とネットワーク部２４へのコネクション情報引継の構成を示す図である。
【図６】サスペンド中の電源制御部のフローチャートである。
【図７】本実施例の通信で利用するネットワークパケットの例である。
【図８】本実施例の通信で利用するネットワークパケットのＴＣＰヘッダの例である。
【図９】ネットワーク部のサスペンド手順を示すフローチャートである。
【図１０】ＭＦＰ１００がサスペンド中のネットワーク部の処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。本実施形態においては、情報処理装置の一例として画像形成装置を例に挙げて説明する。本実施形態における画像形成装置は、少なくとも第１の電力状態と第１の電力状態より消費電力の少ない第２の電力状態とを切り替えて動作可能な装置である。図１は、本実施形態に係る画像形成装置１００（以下、「ＭＦＰ」という）の概略構成を示す図である。実線が制御ライン、点線が電源ラインである。
【００１２】
このＭＦＰ１００は、コピー機能、プリンタ機能、スキャナ機能等の複合機能を備えている。図１において、ＭＦＰコントローラ部１２は、ＭＦＰ全体の制御を行なう。プリンタ部１３は例えば電子写真方式に従った画像形成処理を行う。スキャナ部１１は原稿から光学的に画像を読み取りデジタル画像に変換する。また、電源部１０は各部に対して電源を供給する。操作部１５は本装置の操作を行なう。電源スイッチ部１４は、ユーザにより電源のオンオフ操作が可能であり、ＭＦＰ１００の電源状態を制御する。なお、プリンタ部１３はシート状の記録媒体（例えば、記録紙）に画像処理を可能なものであればその記録方式は電子写真方式に限定されるものではなく、他の記録方式、例えば、インクジェット方式や熱転写方式などを用いても良い。
【００１３】
図２は、図１におけるＭＦＰコントローラ部１２の内部の概略構成とＭＦＰコントローラ部１２の周辺の各部との関係とを示す図である。各部を結ぶ実線が制御ライン、点線が電源ラインである。なお、図１と同様の構成については同じ符号を付し説明を省略する。
【００１４】
図２において、電源制御部２３は、電源スイッチ部１４が操作されたこと、および、操作部１５上に配置された節電ボタン２９が操作されたことをＣＰＵ２７に割り込みとして通知する機能を備える。また、電源制御部２３は、サスペンドモード移行時に各部への電源を遮断し、サスペンドモードからの復帰時に各部への電源を供給するといった制御を行う。ＦＥＴ２０は、電源系Ｂ２１への電力供給をオンオフするためのスイッチである。電源系統については後述する。
【００１５】
ＣＰＵ２７はＭＦＰ１００全体の制御を行う制御部である。メモリ部２５は、ＤＤＲーＳＤＲＡＭ等の揮発性メモリである。操作部１５は、内部にＬＣＤパネル・テンキーなどの入力装置３０を有し、ユーザによる入力操作を検知可能である。画像処理部２８は、スキャナ部１１からのデータを圧縮したり、ＣＰＵ２７で処理された画像データをプリンタ部１３に出力するなどの処理を行う制御部である。ＨＤＤ部２６は外部記憶装置であり、例えばハードディスク（ＨＤＤ）である。
【００１６】
ネットワーク部２４はＭＦＰの外部Ｉ／Ｆの一つであり、不図示の外部ＰＣ等からネットワーク経由でプリント要求を受け付けることが可能である。ＵＳＢ部３１もＭＦＰの外部Ｉ／Ｆの一つであり、不図示の外部ＰＣ等からネットワーク経由でプリント要求を受け付けることが可能である。
【００１７】
次に、ＭＦＰコントローラ部１２の電源系統について説明する。なお、本実施形態では、消費電力が通常状態よりも低く、起動時間が高速な状態として、メモリにデータを保持するサスペンド方式を適用した場合を示すが、他の方式、例えば、ハイバネーション方式等を用いてもよい。ＭＦＰ１００は、電源スイッチ部１４のオフ操作が検知されると、オフ操作が検知されたときの状態（第１状態）を保存する。そして、ＭＦＰ１００は、次に電源スイッチのオン操作が検知されたときに第１状態に復帰可能な第２状態にＭＦＰ１００の状態を移行する。従って、本実施形態において、第１状態は通常状態、第２状態はサスペンド状態となっている。また、サスペンド状態におけるＭＦＰ１００の消費電力量は、通常状態におけるＭＦＰ１００の消費電力量より小さい。
【００１８】
電源系Ｂ２１はＣＰＵ２７、画像処理部２８、ＨＤＤ部２６などに電源を供給する系である。また、電源系Ｂ２１は、ＭＦＰコントローラ部１２の外部のデバイスであるスキャナ部１１、プリンタ部１３、入力装置３０などにも電源を供給する。なお電源系Ｂ２１の電源遮断／供給の制御は、電源制御部２３から出力される制御信号を介してＦＥＴ２０を制御することで実現される。
【００１９】
図３は、サスペンドの手順を示すチャートである。また、図４は本方式の各デバイスの状態を時間経過毎に記載したものである。この図４と、図３のフローチャートとを用いてサスペンドのシーケンスを説明する。図３に示すフローチャートの各ステップはＣＰＵ２７によって処理される。入力装置３０から一定時間入力が無かった場合、または、節電ボタン２９が押下されたことを検出すると、ＣＰＵ２７が図３のサスペンドのフローを実行する。
【００２０】
ステップＳ３０１でＣＰＵ２７は、プリンタ部１３、スキャナ部１１等のＭＦＰコントローラ部１２の外部のデバイスの終了処理を行う。終了処理に時間が掛る部位もあるため、ステップＳ３０２において、ＣＰＵ２７はサスペンドキャンセル要因が発生するか確認しつつ、ステップＳ３０３において全外部デバイスが終了したと判定されるまで待つ。この状態は、図４の状態６８の全外部デバイス終了処理に対応する。この外部デバイスの終了が完了するまでの間にサスペンドキャンセル要因（例えばジョブ受信）が生じた場合には、サスペンド移行処理をキャンセルすることができる。一方、後述するように、ＭＦＰコントローラ部１２の内部のデバイスの終了処理が完了するまでの間にキャンセル要因（例えばジョブ受信）が生じた場合には、サスペンド移行処理を中断せずに一旦サスペンド移行処理を完了させる。そして、その後にサスペンド状態から通常状態に復帰させる処理が行なわれることになる。これらの処理の詳細については後述する。
【００２１】
外部デバイスの終了処理中に例えばネットワーク部２４からジョブ等のキャンセル要因が発生した場合は、ステップＳ３０２においてＣＰＵ２７は、サスペンド移行キャンセルを決定し、ステップＳ３０４に進む。ステップＳ３０２でＹＥＳと判定するまでの間に、すでにいくつかのデバイスは終了処理を行っている場合がある。そこで、ステップＳ３０４においてＣＰＵ２７は全外部デバイスの復帰処理を行ない、ステップＳ３０５において復帰完了を確認後、ステップＳ３０６に進む。ステップＳ３０６においてＣＰＵ２７は、キャンセル要因となった例えばジョブの実行を行い、サスペンド動作をキャンセルする。なお、外部デバイスの終了処理中にサスペンド動作がキャンセルされた場合は、キャンセル要因となる例えばジョブの実行完了後に図３に示すサスペンド処理を再度実行する。
【００２２】
ステップＳ３０２においてキャンセル要因が発生せず、ステップＳ３０３において全ての外部デバイスの終了処理が完了した場合、ＣＰＵ２７は前述のようにサスペンドキャンセルを行わないように制御する。つまり、一旦サスペンド移行処理を完了させる処理を行なうことになる。以下、詳細に説明する。
【００２３】
ステップＳ３０７にてＣＰＵ２７は、起床予約フラグ５１をクリア（イベント７４）して起床予約フラグ５１をオフの状態にする。起床予約フラグ５１はサスペンドキャンセルを行なわないタイミングにおいて起床要因が発生したことを示すフラグである。例えば、ステップＳ３０７以降においてジョブを受信した場合などに、起床予約フラグ５１がオンに設定されることになる。起床予約フラグがオンに設定されている場合、サスペンド移行後に速やかに通常状態に復帰させることになる。起床予約フラグ５１は、ステップＳ３０７からサスペンドに完全に移行するまでの間に起床要因が発生したことを示すフラグであり、ステップＳ３０７からサスペンドに完全に移行するまでの間、保持される。
【００２４】
次に、ステップＳ３０８においてＣＰＵ２７は、ＭＦＰコントローラ部１２の全ての内部デバイスの終了処理を行う。ＭＦＰコントローラ部１２の内部デバイスとしては、ネットワーク部２４、ＵＳＢ部３１、ＨＤＤ部２６、及び、画像処理部２８等が該当する。各々の部は現在の状態を保持した後、ＣＰＵ２７の制御管理下から、サスペンド中でもこれらのハードウエアが独立して動作するようにモード変更が行われる。ネットワーク部２４の終了処理においては、ＣＰＵ２７はネットワーク部２４を終了させる間際に通信速度変更処理（イベント７８）を実施する。この通信速度変更処理に伴いネットワーク部２４のリンクダウンが発生し、処理が完了しリンクアップするまでの期間は通信不能な状態となる。このネットワーク部２４の終了処理に関連する処理については、後述の図７で詳細に説明する。これらの内部デバイスの終了処理も時間がかかる場合があるため、続くステップＳ３０９において起床要因が発生したかを判定（検出）しつつ、ステップＳ３１３において全内部デバイスが終了するまで待つ（状態６９、全内部デバイス終了処理）。
【００２５】
内部デバイスは終了時にアクセスできなくなるため、外部デバイスと異なり終了順番を厳密に決定する必要があり、安定動作のためにも外部デバイスのように途中中断を行わない方が良い。そこで、本実施形態では、ステップＳ３０９に示すように、内部デバイスの終了処理の途中で起床要因が発生（イベント７５）するかを判定する。そして、起床要因が発生したとことを検出した場合、ステップＳ３１０においてＣＰＵ２７は、電源制御部２３へ起床要因を予約する（状態６６、起床予約状態）。その後、ステップＳ３１１に進む。ステップＳ３１１において、ステップＳ３０９で検出した起床要因がネットワーク部２４のＴＣＰコネクション確立イベントであった場合、ステップＳ３１２に進む。そうでない場合は、ステップＳ３１３に進む。
【００２６】
ステップ３１２においてＣＰＵ２７は、ネットワーク部２４へ当該ＴＣＰコネクションの情報（以下、コネクション情報と呼ぶ）を通知する（イベント７６）。そして、ＣＰＵ２７はステップＳ３１３に進み、サスペンド処理を継続させる。なお、ステップＳ３１２でネットワーク部２４へ通知されたコネクション情報はメモリ部２５内のコネクション情報保持部５２（図５参照）に保持される。図５のコネクション情報保持部５２については後述する。内部デバイス終了処理の途中で起床予約された場合、前述のようにそのフラグ状態は電源制御部２３内に保持される（状態６６、起床予約状態）。
【００２７】
ステップＳ３１３で全ての内部デバイスの終了処理が完了したら、ステップＳ３１４においてＣＰＵ２７は電源制御部２３にサスペンド移行指示を送る（イベント７９）。そしてＣＰＵ２７がＦＥＴ２０をＯＦＦにすることで電源系Ｂ２１の電源がオフになりサスペンド状態が開始される。具体的には、電源制御部２３がメモリ部２５を、状態６５で示すセルフリフレッシュの待機状態にする。また、電源系Ｂ２１をオフすることによりＣＰＵ２７を状態７０のオフ状態にする。その後、電源制御部２３は状態６７で示すサスペンド状態に移行する。この状態６７のサスペンド状態がＭＦＰコントローラ部１２全体のサスペンド状態と等価な状態である。つまり、ＭＦＰコントローラ部１２が第２の電力状態に移行した状態となる。なお、本実施形態ではメモリ部２５自身に値を保持するサスペンド方式で説明したが、ＨＤＤ部２６を利用するハイバネーション方式や、メモリ部２５をＭＲＡＭにする方式でも、同様の効果を得る事が可能である。
【００２８】
サスペンド状態においては電源系Ａに含まれる各部だけが動作する。サスペンド状態においては、ネットワーク部２４は受信するパケットがサスペンド状態から通常状態に復帰しなければならないパケットか否かを監視する。併せて、ネットワーク部２４はステップＳ３１２で通知されて引き継いだコネクション情報を用いた処理を行なう。つまり、ネットワーク部２４は、サスペンド状態においても通信可能な状態となっている。具体的には、ネットワーク部２４は、引き継いだコネクション情報を使用して、当該コネクション情報が示す接続相手に対して受信不可通知を行う。受信不可通知を行なうことで接続相手が通信を切断することを防止することができる。受信不可通知のパケットとしては、例えばＴＣＰ ＺｅｒｏＷｉｎｄｏｗパケットを送信する。詳細は後述する。また、ネットワーク部２４による、このサスペンド状態における受信不可通知パケットの送信処理のことを代理送信処理と呼ぶ。状態７３は、ネットワーク部２４の起床条件監視・代理送信中を表している。この状態７３におけるネットワーク部２４の起床条件監視・代理送信中の処理については後述の図１０で説明する。
【００２９】
サスペンド状態においては電源制御部２３は、レジューム開始を監視しながらサスペンド状態を継続する。なお、電源制御部はＣＰＵを内蔵したものでも、専用のＨ／Ｗロジックでも構わない。
【００３０】
電源制御部２３のサスペンド状態中（状態６７、サスペンド中）の動作フローを図６に記載する。図６は電源制御部２３が電源系Ｂへの電源の供給を停止しているサスペンド状態における、電源制御部２３の処理フローである。電源制御部２３は、ステップＳ６０１〜ステップＳ６０６に示すような所定のイベントを検知した場合に、サスペンド状態から通常状態に復帰するレジューム処理を行なうことになる。
【００３１】
ステップＳ６０１で電源制御部２３は、起床予約フラグ５１を参照し、起床予約の有無を確認する。前述のように、起床予約フラグ５１がオンに設定されている場合、つまり、サスペンド状態に移行途中において起床要因が生じた場合には、このステップＳ６０１でＹＥＳとなる。ステップＳ６０２〜ステップＳ６０６は、サスペンド状態に移行途中において起床要因が生じた場合ではなく、サスペンド状態に移行した後に検知した起床要因に起因する処理である。ステップＳ６０２で電源制御部２３は、ネットワーク部２４からのジョブや問合わせ等の有効なレジューム開始指示が来たか否かを確認する。ステップＳ６０３で電源制御部２３は、不図示のＦＡＸ装置から着信の有無を確認している。ステップＳ６０４で電源制御部２３は、不図示のＲＴＣから指定時刻アラームの有無を確認している。ステップＳ６０５で電源制御部２３は、ＵＳＢ部３１からジョブ受信の有無を確認している。ステップＳ６０６で電源制御部２３は、節電ボタン２９の押下の有無を確認している。電源制御部２３は、これらいずれかのイベントが発生するまで待ち、いずれかのイベントが発生すると、ステップＳ６０７に進み、最小サスペンド時間の保証を行う。これは、リセット不具合を回避するためにサスペンド中の最小時間を保証するための処理である。その後、ステップＳ６０８で電源制御部２３は、レジューム処理を開始する。すなわち、電源制御部２３はＦＥＴ２０をオンにし、電源系Ｂ２１に通電を開始させ、ＣＰＵ２７に対してリセットを解除する。その後ＣＰＵ２７が先に説明したサスペンド時にメモリ部２５に保持した各デバイスの中断状態を各デバイスに設定することで、サスペンドを行う前の状態に移行する（状態７１、レジューム処理）。またこのレジューム処理においては、ネットワーク部２４とＵＳＢ部３１とに委譲していた制御権をＣＰＵ２７が取り戻すことで、ＣＰＵ２７がＭＦＰコントローラ部１２の全ての制御権を取り戻す。なお、ＣＰＵ２７はネットワーク部２４の制御権を取り戻す処理（イベント８０）の中でネットワーク部２４の通信速度変更処理を実施する。この通信速度変更処理に伴いネットワーク部２４のリンクダウンが発生し、処理が完了しリンクアップするまでの期間は通信不能な状態となる。ネットワーク部２４は速度変更処理完了をもって通常状態（状態８１、スタンバイ中）に戻る。
【００３２】
ここで、図７、図８を用いて本実施形態で扱うＴＣＰパケットについて説明する。図７は、本実施形態で通信に利用されるパケットのフォーマット例を示す図である。通信パケットは、Ｅｔｈｅｒヘッダ７０１に続いて、ＩＰヘッダ７０２が存在する。コネクションを必要とするパケットとして、例えばＴＣＰ（Transmission Control Packet）パケットがある。ＴＣＰパケットは、Ｅｔｈｅｒヘッダ７０１、ＩＰヘッダ７０２に続いてＴＣＰヘッダを備えた構造となっている。なお、ＴＣＰパケットは図８を用いて後述するが、ＴＣＰ仕様は、ＲＦＣ７９３において定義されている。
【００３３】
図８は、コネクションを必要とする通信において利用されるＴＣＰパケットのフォーマットを説明する図である。一般にコネクションを必要とする通信では、ＴＣＰヘッダ８０１が存在する。コネクションの管理は、ＴＣＰヘッダ８０１に含まれる情報を利用して行われる。このコネクションの管理とは、そのコネクションで送受信される通信パケットの順序制御やパケットロス時に行われる再送制御、パケットの流量制御、輻輳回避制御など、通信の信頼性を確保する制御を指す。送信元ポート番号８０２は２バイトで、通信パケットを送信する側のポート番号を示す。宛先ポート番号８０３は２バイトで、通信パケットを受信する側のポート番号を示す。コネクションを必要とする通信の場合、そのコネクションを閉じるか変更しない限り、送信元ポート番号８０２と宛先ポート番号８０３とは固定の値となる。シーケンス番号８０４は４バイトで、送信したパケットのデータの位置を示し、データを送信するたびに送信データのサイズ分だけ値が加算される。確認応答番号（ＡＣＫ  Ｎｏ）８０５は４バイトで、次に受信すべきデータのシーケンス番号を示す。従って、送信側が次に送るパケットのシーケンス番号８０４と受信パケットの確認応答番号８０５とが同じ場合は、そこまでの通信は正常に行われたことを示す。データオフセット８０６は４ビットで、ＴＣＰパケットにおけるデータ部フィールドが始まる位置を示す。
【００３４】
コントロールフラグ８０７は６ビットで、ＴＣＰパケットの制御情報を示す。コントロールフラグ８０７は、１ビットずつ個々でフラグ種別が設定されており、それぞれＵＲＧ、ＡＣＫ、ＰＳＨ、ＲＳＴ、ＳＹＮ、ＦＩＮを示す。ＵＲＧは緊急データが含まれることを示す。ＡＣＫは、確認応答番号８０５の値が有効であることを示す。ＰＳＨは、受信データを上位のアプリケーションプロトコルに渡さなければならないことを示す。ＲＳＴは、何らかの理由によりコネクションが強制的に切断されたことを示す。ＳＹＮはコネクションの確立要求を示す。ＦＩＮは、今後送信するデータがない、コネクションの切断要求を示す。コネクションを必要とする通信の場合、通信シーケンス毎にコントロールフラグ８０７を制御することによって、コネクションの管理を行う。
【００３５】
ウインドウサイズ８０８は２バイトで、確認応答番号８０５の値で示したデータの位置から、次に受信することができるデータサイズを示す。送信側はウインドウサイズ８０８の値を超えて送信することはできない。このウインドウサイズ８０８の値は、通信シーケンス毎で受信側において処理されるパケットの状態や、受信側で用意している受信バッファサイズ、受信側のプロトコルスタックの設定等で動的に変化する。受信不可を送信側に知らせるために、ウインドウサイズ８０８の値を０に設定したパケットを送信することもできる。
【００３６】
チェックサム８０９は２バイトで、ＴＣＰパケットのヘッダ部とデータ部の信頼性を提供する。送信側が個々のパケット毎にチェックサム８０９を計算してパケットに付加する。受信側は、受け取ったパケットからチェックサムをチェックすることによって、通信路上でパケットの破壊がないかチェックする事ができる。緊急ポインタ８１０は２バイトで、緊急を要するデータの格納位置ポインタを示す。緊急データを受け取った場合の動作は、受信側における個々のアプリケーションが決定する。
【００３７】
次に、図５を用いて、起床要因予約とコネクション情報のネットワーク部２４への引き継ぎについて説明する。起床要因予約とコネクション情報引継ぎ操作は、サスペンド移行処理の途中において、サスペンドをキャンセルできないタイミングから有効となる。すなわち、図３のフローチャートのステップＳ３０８〜ネットワーク部２４の終了処理完了までの間（状態６９の最初〜イベント７５までの区間）で有効となる。
【００３８】
図５は電源制御部２３とＣＰＵ２７の周辺をさらに詳細に記載したものである。不図示の外部ホストＰＣから送られた例えばジョブは、ネットワーク部２４のＰＨＹ５３でアナログーデジタル変換を行い、ＬＡＮコントローラ５４がデータパケットとして取得する。このデータパケットは内部バッファ５５を介して、メモリ部２５上に作られた例えばデスクリプタテーブルから成るバッファ５６上に保存される。受信データ（データパケット）はネットワークドライバ５０によってバッファ５６から読み出され、プロトコルスタック５７が解析し、ＩＰ、ＴＣＰ等、ネットワークの各プロトコルレベルの通信制御を行う。プロトコルスタック５７とアプリケーション５９はソケットＩ／Ｆ５８を介してデータのやり取りを行う。アプリケーション５９はデータの中身を解析して、そのパケットが例えばジョブ等の処理すべきパケットであるか否かを判定する。このように複数のＨ／Ｗ上のバッファと、ソフトウエアで作られたバッファ（実体はメモリ部２５上）を介して受信データはアプリケーションに通知される。
【００３９】
図３のフローチャートにおけるステップＳ３０８以降のタイミング、すなわち、サスペンド移行途中のサスペンドをキャンセルできないタイミングにおいて、ＭＦＰ１００がＴＣＰ／ＩＰのプロトコルによる印刷ジョブを受信したケースを例に説明する。ネットワーク部２４経由でＴＣＰ接続要求を受信したプロトコルスタック５７はＴＣＰコネクションの確立処理を行う。なお、印刷に使用するＲＡＷポートは９１００、ＬＰＤポートは５１５等の規定がある。プロトコルスタック５７は、内部でＴＣＰヘッダに含まれるポートナンバーを判定して任意のポートに割り振る処理があり、この時点でそのデータがおおよそ印刷ジョブであろう、という予想がつく事になる。プロトコルスタック５７が、ＴＣＰヘッダに含まれるポートナンバーに応じて起床予約フラグ５１をセットするＣＰＵ２７の命令（イベント７５）を発行する。これにより、サスペンドから復帰した後に必要なデータを受信する起床予約状態とすることが可能となる。この状態で、サスペンドに入ると、図６のフローのステップＳ６０１における条件が達成されることになり、レジューム動作し、ネットワーク通信を再開することになる。しかし、ネットワーク部２４の終了処理で実施する通信速度変更処理開始からネットワーク部２４のレジューム処理で実施する通信速度変更処理完了までの区間で、ネットワーク部２４は印刷ジョブを送信するホストＰＣに対して無応答となる。この無応答区間で送信側がタイムアウトせずにＴＣＰコネクションを維持するかは送信側の仕様によるため保障されていないことになる。
【００４０】
そこで、本実施形態においてプロトコルスタック５７は起床予約フラグ５１をセットした後に、メモリ上のコネクション情報保持部５２に当該ＴＣＰコネクションの情報を保存することでネットワーク部２４に当該コネクション情報を引き継ぐ（イベント７６）。
【００４１】
起床条件監視・代理送信中（状態７３）のネットワーク部２４は、引き継いだコネクション情報を使用して当該コネクションに対して受信不可通知（ＴＣＰ ＺｅｒｏＷｉｎｄｏｗ）パケットの代理送信処理を行うことで当該コネクションを維持する。これによって送信側がタイムアウトしてしまう可能性を低減することができる。つまり、図４に示すように、ネットワーク部２４の終了処理で実施する通信速度変更処理による不通区間の終了後に、ネットワーク部は、起床条件監視・代理送信中（状態７３）に遷移する。この状態７３において、ネットワーク部は、引き継いだコネクション情報を使用して当該コネクションに対して受信不可通知（ＴＣＰ ＺｅｒｏＷｉｎｄｏｗ）パケットの代理送信処理を行うことで当該コネクションを維持する。その後、ＣＰＵ２７が起床予約フラグ５１を参照してレジューム処理を開始する際に、再度通信速度変更処理による不通区間が生じ、その後に、ネットワーク部２４はスタンバイ状態に復帰することになる。その後、プロトコルスタック５７は、引き継ぎをしたコネクション情報を使用して、通信再開を依頼する通知（ＴＣＰ ＷｉｎｄｏｗＵｐｄａｔｅ）パケットの送信を行なう。これを受けて、印刷ジョブを送信するホストＰＣは印刷ジョブの印刷データの送信を再開することになる。
【００４２】
以上、説明したように、サスペンドに入る間際に発生した外部からの問い合わせやジョブ等を処理途中のままサスペンドに入り、復帰して応答するまでの間に送信側がタイムアウトして接続を切断してしまうという状況を回避する方法を説明した。
【００４３】
図９は、ＣＰＵ２７が実行する、図３のステップＳ３０８の処理のうち、特にネットワーク部２４の終了処理について記載したフローチャートである。
【００４４】
ステップＳ９０１でＣＰＵ２７は、起床要因が発生したことを検知したかを判定する。起床要因が発生した場合（Ｓ９０１のＹｅｓ）、ステップＳ９０２に進み、ＣＰＵ２７は起床予約処理を実施する。起床要因が発生しない場合はステップＳ９０５に進む。ステップＳ９０２においてＣＰＵ２７は、電源制御部２３の起床予約フラグ５１を有効化する処理を行なう。そして、ステップＳ９０３においてＣＰＵ２７は、ステップＳ９０１で検知した起床要因がプロトコルスタック５７によるＴＣＰコネクション確立であるか否かを判定する。起床要因がプロトコルスタック５７によるＴＣＰコネクション確立であった場合、ステップＳ９０４に進み、そうでない場合はステップＳ９０５に進む。ステップＳ９０４においてＣＰＵ２７は、ネットワーク部２４へ当該ＴＣＰコネクションの情報を引き継ぐ。具体的には、ＣＰＵ２７のプロトコルスタック５７は、その時点まで受信したＴＣＰパケットから下記の情報をネットワーク部に引き継ぐ。  
・送信元ＭＡＣアドレス
・宛先ＭＡＣアドレス
・送信元ＩＰアドレス
・宛先ＩＰアドレス
・送信元ポート番号
・宛先ポート番号
・受信済データサイズ
・シーケンス番号
・確認応答番号（Ａｃｋ  Ｎｏ）
そして、ステップＳ９０５に進む。
【００４５】
ステップＳ９０５においてＣＰＵ２７は、ネットワーク部２４に対し、通信速度変更処理を実施する。一般的に通信速度が遅い設定ほどネットワーク部２４の消費電力が低くなる傾向がある為、通信速度変更処理を実施することでサスペンド時の消費電力を抑える狙いがある。しかし、通信速度変更処理に伴いネットワーク部２４のリンクダウンが発生する為、設定が完了しリンクアップするまでの期間は通信不能な状態となる。
【００４６】
通信速度変更処理が完了すると、ステップＳ９０６においてＣＰＵ２７は、ネットワーク部２４をサスペンドモードへ移行させる処理を実施する。このとき、ＣＰＵ２７は、ステップＳ９０４においてコネクション情報の引き継ぎが行なわれている場合には、そのコネクション情報を用いた代理送信をネットワーク部２４に実施させる。すなわち、ＣＰＵ２７は、ネットワーク部２４がコネクション情報保持部に保存されているコネクション情報を使用してＴＣＰ  ＺｅｒｏＷｉｎｄｏｗパケットを代理送信することを実施するように動作モードを切り替える。コネクション情報の引き継ぎが行なわれていない場合は、サスペンド中にステップ６０２のネットワーク受信の検知を実行可能な起床条件監視状態にネットワーク部２４を移行させる。これにより、ネットワーク部２４はステップＳ３１３において、デバイス終了状態であると判定されるようになる。このように、本実施形態においては、ＣＰＵ２７は、ネットワーク部２４の終了処理を行なう際に、起床要因がＴＣＰコネクション確立である場合には、ネットワーク部２４にコネクション情報を引き継いだ後に通信速度変更処理を行なう。
【００４７】
なお、ステップＳ９０６が完了後、すなわち、ネットワーク部２４がサスペンド状態に移行した後に、起床要因が発生する場合がある。ステップＳ９０７においてＣＰＵ２７は、ネットワーク部２４がサスペンド状態に移行した後に、起床要因が発生した場合、ステップＳ９０８に進み、起床予約フラグを有効化する。なお、このステップＳ９０８の段階では、ネットワーク部２４はデバイス終了状態である為に、ＣＰＵ２７はコネクション情報の引き継ぎ処理を実施しない。これにより、例えばステップＳ９０３以降に初めて起床要因が発生した場合は、サスペンドモードにおいて、ネットワーク部２４はＴＣＰ ＺｅｒｏＷｉｎｄｏｗを代理送信しないことになる。
【００４８】
次に、図１０は本実施形態における、起床条件監視・代理送信中状態（状態７３）におけるネットワーク部２４の処理フローである。図１０に示すフローチャートの各ステップはネットワーク部２４によって処理される。ステップＳ１００１においてネットワーク部２４はＣＰＵ２７からのレジューム処理を待ち合わせる。ＣＰＵ２７からのレジューム処理は図４のイベント８０に対応する。ＣＰＵ２７からのレジューム処理の発生要因は、図６のフローチャートで示した各要因がある。一例としては、ＴＣＰコネクションの確立による起床要因が予約されていた場合などが挙げられる。ステップＳ１００１においてＣＰＵ２７からレジューム処理の開始を通知された場合は、ネットワーク部２４は起床条件監視・代理送信中状態（状態７３）の処理を終了し、ＣＰＵ２７はネットワーク部２４の制御権を取り戻す。レジューム処理の開始が通知されない場合、すなわちレジューム復帰指示がない場合は、ステップＳ１００２に進む。
【００４９】
ステップＳ１００２においてネットワーク部２４は、ＣＰＵ２７からコネクション情報を引き継いでいると判定した場合、ステップＳ１００３に進み、引き継いだコネクション情報を用いてＴＣＰ  ＺｅｒｏＷｉｎｄｏｗパケットを代理送信する。具体的には、ネットワーク部２４は、通常動作中状態（状態７２）において、最後に受信した当該ＴＣＰコネクションのパケットに対するＡＣＫ応答パケットとして、以下のＴＣＰパケットをＴＣＰ  ＺｅｒｏＷｉｎｄｏｗパケットとして送信する。そして、ステップＳ１００４に進む。ステップＳ１００２で引き継いだコネクション情報がない場合、ステップＳ１００４に進む。  
・引き継いだ送信元ＭＡＣアドレスを宛先ＭＡＣアドレス、引き継いだ宛先ＭＡＣアドレスを送信元ＭＡＣアドレスとしたＥｔｈｅｒヘッダ
・引き継いだ送信元ＩＰアドレスを宛先ＩＰアドレス、引き継いだ宛先ＩＰアドレスを送信元ＩＰアドレスとしたＩＰヘッダ
・引き継いだ送信元ポート番号を宛先ポート番号、引き継いだ宛先ポート番号を送信元ポート番号とし、引き継いだシーケンス番号を確認応答番号に指定し、ウインドウサイズにゼロを指定したＴＣＰヘッダ
【００５０】
その後、ステップＳ１００４においてネットワーク部２４は、起床ネットワークパケットの受信有無を確認する。起床ネットワークパケットを受信していた場合、ステップＳ１００５に進み、ネットワーク部２４は電源制御部２３にレジューム開始通知を行い、ステップＳ１００１へ戻る。なお、Ｓ１００５は図６のＳ６０２に対応する処理である。
【００５１】
＜その他の実施形態＞
なお、本実施形態は、ネットワーク部２４が引き継いだＴＣＰコネクションの接続相手に対してＴＣＰ  ＺｅｒｏＷｉｎｄｏｗを代理送信して接続維持する例を説明したが、接続維持方法はこれに限らない。例えば、引き継いだコネクション情報を使用してＴＣＰ  ＫｅｅｐＡｌｉｖｅパケットを代理送信することで、当該コネクションを維持してもよい。また、プロトコルとしてＴＣＰを用いる場合を例に挙げて説明したが、コネクションを維持した接続が行なわれる形態であればいずれのプロトコルを用いる場合でもよい。すなわち、通信相手からの応答がない場合にコネクションを切断する仕様のいずれのプロトコルにも適用可能である。
【００５２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2017149119.tif 000003
【図２】
2017149119.tif 000004
【図３】
2017149119.tif 000005
【図４】
2017149119.tif 000006
【図５】
2017149119.tif 000007
【図６】
2017149119.tif 000008
【図７】
2017149119.tif 000009
【図８】
2017149119.tif 000010
【図９】
2017149119.tif 000011
【図１０】
2017149119.tif 000012