(57)【要約】【課題】メインＣＰＵとサブＣＰＵとを備える画像形成装置において、メインＣＰＵが休止状態に移行した後においても、複数の通信パケットに対する応答を要する特定の種類のアクセスを適切に受け付けることが可能な技術を提供する。【解決手段】ＭＦＰのサブＣＰＵは、代行期間Ｔ１（メインＣＰＵの休止期間（給電停止期間等）および復帰期間（再起動期間等）とを含む）において、外部装置からのネットワークを介した特定の種類のアクセス（ＴＣＰ／ＩＰ通信等）に関する複数の受信パケットに対して代理応答する。また、サブＣＰＵは、当該特定の種類のアクセスに関する複数の受信パケットのそれぞれにシーケンス番号を付与する。さらに、サブＣＰＵ４１は、当該複数の受信パケットに対して代行期間Ｔ１内に付与した複数のシーケンス番号に関する最新番号を、メインＣＰＵの起動状態への復帰完了後において、メインＣＰＵに引き継ぐ。【選択図】図５
2018089895.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
メインＣＰＵと、
前記メインＣＰＵが休止状態を有する期間と前記メインＣＰＵが前記休止状態から起動状態へと復帰している途中の復帰期間とを含む第１の期間において、外部装置からの通信ネットワークを介した特定の種類のアクセスであって複数の受信パケットに対する応答を要する特定の種類のアクセスに対して前記メインＣＰＵに代わって代理応答することが可能なサブＣＰＵと、
を備え、
前記サブＣＰＵは、
前記第１の期間において、前記特定の種類のアクセスに関する前記複数の受信パケットに対して代理応答するとともに、前記複数の受信パケットのそれぞれにシーケンス番号を付与し、
前記メインＣＰＵの起動状態への復帰完了後において、前記特定の種類のアクセスに関して前記第１の期間内に前記複数の受信パケットに付与した複数のシーケンス番号に関する最新番号を、前記メインＣＰＵに引き継ぐことを特徴とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置において、
前記メインＣＰＵは、前記起動状態へ復帰した後、前記サブＣＰＵから引き継いだ前記シーケンス番号の最新の値に対して１つインクリメントした値を前記特定の種類のアクセスにおける次の受信パケットに対して付与し、前記特定の種類のアクセスにおける残余の受信パケットの受信動作を引き継いで実行することを特徴とする画像形成装置。
【請求項３】
請求項１または請求項２に記載の画像形成装置において、
前記サブＣＰＵは、前記第１の期間において前記特定の種類のアクセスに関する前記複数の受信パケットを受信する場合、前記複数の受信パケットの送信元装置に対して確認応答を返信することによって、前記複数の受信パケットに関して代理応答することを特徴とする画像形成装置。
【請求項４】
請求項３に記載の画像形成装置において、
前記サブＣＰＵは、前記第１の期間において前記特定の種類のアクセスに関する前記複数の受信パケットを受信する場合、前記複数の受信パケットによって受信したデータを受信バッファに格納し、
前記メインＣＰＵは、前記起動状態へ復帰すると、前記サブＣＰＵによって前記受信バッファに格納されていたデータを取得することを特徴とする画像形成装置。
【請求項５】
請求項１から請求項４のいずれかに記載の画像形成装置において、
前記サブＣＰＵは、異なる複数の装置からの前記特定の種類のアクセスにおける受信パケットのシーケンス番号を前記複数の装置のそれぞれに関して個別に管理することを特徴とする画像形成装置。
【請求項６】
画像形成装置に内蔵されたサブＣＰＵに、
ａ）前記画像形成装置のメインＣＰＵが休止状態を有する期間と前記メインＣＰＵが前記休止状態から起動状態へと復帰している途中の復帰期間とを含む第１の期間において、外部装置からのネットワークを介した特定の種類のアクセスであって複数の受信パケットに対する応答を要する特定の種類のアクセスに関する前記複数の受信パケットに対して代理応答するとともに、前記複数の受信パケットのそれぞれにシーケンス番号を付与するステップと、
ｂ）前記特定の種類のアクセスに関して前記第１の期間内に前記複数の受信パケットに付与した複数のシーケンス番号に関する最新番号を、前記メインＣＰＵの起動状態への復帰完了後において、前記メインＣＰＵに引き継ぐステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＦＰ（マルチ・ファンクション・ペリフェラル（Multi-Functional Peripheral））などの画像形成装置およびそれに関連する技術に関する。
【背景技術】
【０００２】
近年、ＭＦＰなどの画像形成装置においては、省電力状態での消費電力を更に低減することが要請されている。
【０００３】
このような要請等に応じて、省電力状態においてはメインＣＰＵへの電力供給を遮断するとともに、メインＣＰＵよりも低消費電力を有するサブＣＰＵを当該省電力状態において動作させる技術が存在する（特許文献１等参照）。たとえば、サブＣＰＵは、省電力状態において、通信ネットワークを介した外部装置からの通信アクセスに対する通信処理（詳細にはその一部）を代行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２２６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、このようなネットワーク通信においては、外部装置からのアクセスとして次のような２種類のアクセスが存在する。
【０００６】
第１の種類のアクセス（第１の種類のプロトコルによるアクセス）は、単一のパケットに対する１回の応答で完結する種類の通信アクセスである。第１の種類のアクセスとしては、名前解決に関する問合せ等が例示される。第２の種類のアクセス（第２の種類のプロトコルによるアクセス）は、複数のパケットに対する応答を要する種類の通信アクセスである。第２の種類のアクセスとしては、ＴＣＰ／ＩＰによる通信アクセス等が例示される。
【０００７】
たとえば、ＭＦＰが名前解決に関連する問合せを他の送信元装置（通信相手）から受信すると、ＭＦＰは、自装置のＭＡＣアドレス等を当該送信元装置に返信することによって当該問合せに応答する。ＭＦＰの省電力状態においては、このような第１の種類のアクセスに対する応答は、メインＣＰＵに代わってサブＣＰＵによって実行される。図６（最上段参照）においては、或る送信元装置８０Ａからの名前解決プロトコルによる通信パケット７０１（問合せＡ（名前解決））に対して、ＭＦＰのサブＣＰＵは、メインＣＰＵに代わって問合せ結果（ＭＡＣアドレス等）を送信元装置８０Ａに返信している。すなわち、サブＣＰＵは、代理応答を行っている。なお、図６は、比較例に係る動作を示す図である。また、同様に、送信元装置８０Ｂからの名前解決プロトコルによる通信パケット８０１（問合せＢ（名前解決））に対して、ＭＦＰのサブＣＰＵは、メインＣＰＵに代わって問合せ結果（ＭＡＣアドレス等）を送信元装置８０Ｂに返信している。
【０００８】
一方、ＴＣＰ／ＩＰによる通信データ（印刷データ等）等が他の送信元装置から送信されてくる場合には、当該通信データが複数のパケットに分割されて送信されるとともに、本来はＭＦＰが当該複数のパケットのそれぞれに対して確認応答（「ＡＣＫ」信号）を送信するなどの応答処理を実行することが求められる。
【０００９】
しかしながら、従来のＭＦＰにおいては、複数のパケットに対する応答を要するデータ通信において、サブＣＰＵが代理応答した一部のパケットについてサブＣＰＵからメインＣＰＵへの引き継ぎを行う仕組みが存在しない。特に、第２の種類の通信アクセス（ＴＣＰ／ＩＰ通信等）においては、複数のパケットにおけるシーケンス番号の連続性を担保することが重要であるものの、受信側装置内でのシーケンス番号の連続性を担保する仕組みが存在しなかった。そのため、仮にサブＣＰＵが代理応答してしまうと、再起動後のメインＣＰＵは、当該メインＣＰＵの再起動前にサブＣＰＵによる代理応答にて受信されたパケットのシーケンス番号を知得できず、サブＣＰＵで受信したパケットとメインＣＰＵで受信したパケットとを適切に統合することができない。
【００１０】
これに対して、サブＣＰＵは第２の種類の通信アクセスに対しては応答せず、メインＣＰＵを再起動させるとともに、再起動状態に復帰したメインＣＰＵが第２の種類の通信アクセス等に対して応答処理を行う技術（比較例とも称する）が考えられる。
【００１１】
しかしながら、サブＣＰＵが応答せず再起動後のメインＣＰＵが応答する場合には、通信における所定回数のリトライ処理に要する時間（たとえば２秒）がメインＣＰＵの再起動時間（たとえば３秒）よりも短いとき等に、送信元装置側でタイムアウトが生じてしまうことがある。
【００１２】
図６においては、上述の比較例に係る技術における当該状況が例示されている。具体的には、装置８０Ｂ（送信元装置）は、３回の接続確立要求（TCP/IP[SYN]）（より詳細には、「TCP/IP[SYN]B1」，「TCP/IP[SYN]B2」，「TCP/IP[SYN]B3」）を送信しても、送信先装置（ＭＦＰ）からの返信（確認要求（ＡＣＫ）等）を全く受信できない場合に、「タイムアウト」の判定が行われている。なお、図６では、装置８０から送信先装置（ＭＦＰ等）に対して所定回数（ここでは３回）の接続確立要求を送信しても送信先装置（ＭＦＰ等）から何れの返信（応答）も戻って来ない場合に「タイムアウト」の判定が行われること、を前提としている。
【００１３】
図６の中段付近に示されるように、ＭＦＰのメインＣＰＵに対する給電停止状態において、ＭＦＰのサブＣＰＵが、ＴＣＰ／ＩＰによる通信パケット（TCP/IP[SYN] A1）５０１を別装置（送信元装置）８０Ａから受信する場合、サブＣＰＵは、メインＣＰＵに対して起動要求を送出する一方で、当該通信パケット５０１に対しては応答しない。そのため、所定時間（比較的長い時間（たとえば、１．８秒））経過した後、２回目の接続確立要求の通信パケット（TCP/IP[SYN] A2）５０２が送信元装置８０ＡからＭＦＰ１０Ｚに送信される。サブＣＰＵは、当該通信パケット（TCP/IP[SYN] A2）５０２にも応答しない。そのため、所定時間（たとえば、１．８秒）経過した後、３回目の接続確立要求の通信パケット（TCP/IP[SYN] A3）５０３が更に送信されてくる。
【００１４】
また、ＭＦＰのメインＣＰＵが給電停止状態から通常状態へ復帰している途中の期間（再起動期間中）において、ＭＦＰのサブＣＰＵが、ＴＣＰ／ＩＰによる通信パケット（TCP/IP[SYN] B1）６０１を別装置（送信元装置）８０Ｂから受信する場合、サブＣＰＵは当該通信パケット６０１に対しては応答しない。そのため、所定時間（ここでは比較的短い時間（たとえば、０．８秒））経過した後、２回目の接続確立要求の通信パケット（TCP/IP[SYN] B2）６０２が送信元装置８０ＢからＭＦＰ１０Ｚに送信される。サブＣＰＵは、当該通信パケット（TCP/IP[SYN] B2）６０２にも応答しない。そのため、所定時間（たとえば０．８秒）経過した後、３回目の接続確立要求の通信パケット（TCP/IP[SYN] B3）６０３が更に送信されてくる。
【００１５】
ここにおいて、図６に示すように、装置８０Ａからの通信アクセスに関しては、３回目の接続確立要求の通信パケット５０３の受信時点で、メインＣＰＵの再起動が既に完了しており、メインＣＰＵが、当該通信パケット５０３に対する応答処理（具体的には、確認応答（「ＡＣＫ」信号）の送信処理等）を実行する。この場合、装置８０Ａは確認応答を受信することができるので、適切な処理が行われ得る。
【００１６】
しかしながら、装置８０Ｂからの通信アクセスに関しては、３回目の接続確立要求の通信パケット６０３の受信時点では、メインＣＰＵの再起動が未だ完了しておらず、サブＣＰＵもメインＣＰＵも当該通信パケット６０３に応答しない。その結果、装置８０Ｂは、所定期間内に３回の接続確立要求の何れに対する返信（応答）をも受け取ることができず、装置８０Ｂは、「タイムアウト」を判定する。
【００１７】
このように、メインＣＰＵの再起動時間（たとえば３秒）よりも、通信における所定回数のリトライ処理に要する時間（たとえば２秒）が短い場合等において、タイムアウトが生じてしまう、との問題が発生し得る。
【００１８】
このような事情を考慮すると、省電力状態では第２の種類のプロトコルを使用しないようにアプリケーションを構築するなどの対応策を講じることが考えられる。しかしながら、このような対応策は望ましくない。
【００１９】
そこで、この発明は、メインＣＰＵとサブＣＰＵとを備える画像形成装置において、メインＣＰＵが休止状態に移行した後においても、他の装置からの通信アクセスであって複数の通信パケットに対する応答を要する通信アクセスを適切に受け付けることが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【００２０】
上記課題を解決すべく、請求項１の発明は、画像形成装置であって、メインＣＰＵと、前記メインＣＰＵが休止状態を有する期間と前記メインＣＰＵが前記休止状態から起動状態へと復帰している途中の復帰期間とを含む第１の期間において、外部装置からの通信ネットワークを介した特定の種類のアクセスであって複数の受信パケットに対する応答を要する特定の種類のアクセスに対して前記メインＣＰＵに代わって代理応答することが可能なサブＣＰＵと、を備え、前記サブＣＰＵは、前記第１の期間において、前記特定の種類のアクセスに関する前記複数の受信パケットに対して代理応答するとともに、前記複数の受信パケットのそれぞれにシーケンス番号を付与し、前記メインＣＰＵの起動状態への復帰完了後において、前記特定の種類のアクセスに関して前記第１の期間内に前記複数の受信パケットに付与した複数のシーケンス番号に関する最新番号を、前記メインＣＰＵに引き継ぐことを特徴とする。
【００２１】
請求項２の発明は、請求項１の発明に係る画像形成装置において、前記メインＣＰＵは、前記起動状態へ復帰した後、前記サブＣＰＵから引き継いだ前記シーケンス番号の最新の値に対して１つインクリメントした値を前記特定の種類のアクセスにおける次の受信パケットに対して付与し、前記特定の種類のアクセスにおける残余の受信パケットの受信動作を引き継いで実行することを特徴とする。
【００２２】
請求項３の発明は、請求項１または請求項２の発明に係る画像形成装置において、前記サブＣＰＵは、前記第１の期間において前記特定の種類のアクセスに関する前記複数の受信パケットを受信する場合、前記複数の受信パケットの送信元装置に対して確認応答を返信することによって、前記複数の受信パケットに関して代理応答することを特徴とする。
【００２３】
請求項４の発明は、請求項３の発明に係る画像形成装置において、前記サブＣＰＵは、前記第１の期間において前記特定の種類のアクセスに関する前記複数の受信パケットを受信する場合、前記複数の受信パケットによって受信したデータを受信バッファに格納し、前記メインＣＰＵは、前記起動状態へ復帰すると、前記サブＣＰＵによって前記受信バッファに格納されていたデータを取得することを特徴とする。
【００２４】
請求項５の発明は、請求項１から請求項４のいずれかの発明に係る画像形成装置において、前記サブＣＰＵは、異なる複数の装置からの前記特定の種類のアクセスにおける受信パケットのシーケンス番号を前記複数の装置のそれぞれに関して個別に管理することを特徴とする。
【００２５】
請求項６の発明は、画像形成装置に内蔵されたサブＣＰＵに、ａ）前記画像形成装置のメインＣＰＵが休止状態を有する期間と前記メインＣＰＵが前記休止状態から起動状態へと復帰している途中の復帰期間とを含む第１の期間において、外部装置からのネットワークを介した特定の種類のアクセスであって複数の受信パケットに対する応答を要する特定の種類のアクセスに関する前記複数の受信パケットに対して代理応答するとともに、前記複数の受信パケットのそれぞれにシーケンス番号を付与するステップと、ｂ）前記特定の種類のアクセスに関して前記第１の期間内に前記複数の受信パケットに付与した複数のシーケンス番号に関する最新番号を、前記メインＣＰＵの起動状態への復帰完了後において、前記メインＣＰＵに引き継ぐステップと、を実行させるためのプログラムであることを特徴とする。
【発明の効果】
【００２６】
請求項１から請求項６に記載の発明によれば、サブＣＰＵは、メインＣＰＵの休止期間と復帰期間とを含む第１の期間において、複数の受信パケットに対する応答を要する特定の種類のアクセスに代理応答し、当該特定の種類のアクセスにおける複数の受信パケットに付与された複数のシーケンス番号に関する最新情報が復帰後のメインＣＰＵに引き継がれる。したがって、メインＣＰＵが休止状態に移行した後においても、他の装置からの通信アクセスであって複数の通信パケットに対する応答を要する通信アクセスを適切に受け付けることが可能である。
【図面の簡単な説明】
【００２７】
【図１】ＭＦＰ（画像形成装置）の機能ブロックを示す図である。
【図２】ＭＦＰの外観図である。
【図３】メインＣＰＵの給電停止期間における様子を示す図である。
【図４】メインＣＰＵの復帰期間の動作を示す図である。
【図５】実施形態に係る動作を示すタイミングチャートである。
【図６】比較例に係る動作を示すタイミングチャートである。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態を図面に基づいて説明する。
【００２９】
＜１．装置構成＞
図１は、画像形成装置１０の機能ブロックを示す図である。ここでは、画像形成装置１０として、ＭＦＰ（マルチ・ファンクション・ペリフェラル（Multi-Functional Peripheral））を例示する。また、図２は、ＭＦＰ１０の外観図である。
【００３０】
ＭＦＰ１０は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置（複合機とも称する）である。具体的には、ＭＦＰ１０は、図１の機能ブロック図に示すように、画像読取部２、印刷出力部３、通信部４、操作パネル部２２、メインシステムコントローラ２０、サブシステムコントローラ４０、および電源部３６等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。なお、ＭＦＰ１０は、情報処理装置とも称される。
【００３１】
画像読取部２は、ＭＦＰ１０の所定の位置に載置された原稿を光学的に読み取って（すなわちスキャンして）、当該原稿の画像データ（原稿画像あるいはスキャン画像とも称する）を生成する処理部である。この画像読取部２は、スキャン部であるとも称される。
【００３２】
印刷出力部３は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【００３３】
通信部４は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部４は、通信ネットワークを介した通信（ネットワーク通信）を行うことも可能である。通信部４は、他の装置（８０Ａ，８０Ｂ（図２参照）等）とネットワーク通信を行うことが可能である。なお、他の装置としては、パーソナルコンピュータおよび／またはＭＦＰ等が例示される。
【００３４】
操作パネル部２２は、図２にも示すように、その正面側にタッチパネル２２ｂを有する操作部である。タッチパネル２２ｂは、液晶表示パネルに各種センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの各種の操作入力を受け付けることが可能である。換言すれば、タッチパネル２２ｂは、各種の情報を表示する表示部であるとともにユーザからの操作入力を受け付ける操作入力部でもある。
【００３５】
メインシステムコントローラ２０は、ＭＦＰ１０に内蔵され、ＭＦＰ１０を統括的に制御する制御装置である。メインシステムコントローラ２０は、メインＣＰＵ３１等を備えている。メインＣＰＵ３１および各種の半導体メモリ（ＲＡＭなどの揮発性メモリ（メインメモリ）３２、およびｅＭＭＣ（embedded Multi Media Card ）などの不揮発性メモリ３３）等は、コンピュータシステムを構成する。メインシステムコントローラ２０は、メインＣＰＵ３１において、不揮発性メモリ３３内に格納されている所定のソフトウエアプログラム（以下、単にプログラムとも称する）を実行することによって、各種の処理部を実現する。また、当該プログラム（詳細にはプログラムモジュール群）は、通信ネットワークを経由してＭＦＰ１０にインストールされるようにしてもよい。あるいは、当該プログラムは、ＵＳＢメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてＭＦＰ１０にインストールされるようにしてもよい。
【００３６】
電源部３６は、ＡＣ−ＤＣ変換部（不図示）を有しており、ＡＣ−ＤＣ変換部を用いて、ＡＣ電源からの電力（直流変換された後の電力）をＭＦＰ１０の各部（メインＣＰＵ３１、揮発性メモリ３２，４３、不揮発性メモリ３３，４５、サブＣＰＵ４１、およびその他の処理部等）に供給することが可能である。また、当該電源部３６は、電力制御ＩＣ３８を有している。電力制御ＩＣ３８は、ＭＦＰ１０の各部への電力供給を制御するＩＣである。電力制御ＩＣ３８は、メインＣＰＵ３１およびサブＣＰＵ４１（次述）等と協働して、ＭＦＰ１０の各部への電力供給を制御する。
【００３７】
また、ＭＦＰ１０には、サブＣＰＵ４１も設けられている。ＭＦＰ１０のスリープ状態（省電力状態）等においては、メインＣＰＵ３１等に対する電力供給が停止される一方で、サブＣＰＵ４１に対しては電力が供給され、サブＣＰＵ４１は各種の動作（監視処理および判断処理等）を実行することが可能である。たとえば、サブＣＰＵ４１は、外部装置との通信動作を制御することが可能である。より具体的には、サブＣＰＵ４１は、メインＣＰＵ３１に対する給電停止期間および復帰期間（後述）において、他の装置（外部装置）からの通信ネットワークを介したアクセス（ネットワークアクセス）に対して、メインＣＰＵ３１の代理で応答（代理応答）することが可能である。
【００３８】
サブＣＰＵ４１は、および各種の半導体メモリ（ＳＲＡＭおよびフラッシュＲＯＭ等）は、コンピュータシステムを構成する。サブＣＰＵ４１は、その管理下の不揮発性メモリ４５（フラッシュＲＯＭ等）に格納されている所定のプログラムを実行することによって、各種の処理部（通信制御部等）を実現する。当該通信制御部は、外部装置との通信動作を制御する。また、当該プログラム（詳細にはプログラムモジュール群）は、通信ネットワークを経由してＭＦＰ１０にインストールされるようにしてもよい。あるいは、当該プログラムは、ＵＳＢメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてＭＦＰ１０にインストールされるようにしてもよい。
【００３９】
また、ＭＦＰ１０には、ＳＲＡＭ（スタティックＲＡＭ）４３も設けられている。後述するように、メインＣＰＵ３１の休止期間および復帰期間等においては、シーケンス番号および代理受信データ等がサブＣＰＵ４１によってＳＲＡＭ４３に記憶される。ＳＲＡＭ４３は受信バッファとして機能する。さらに、メインＣＰＵ３１に対する給電が再開されメインＣＰＵ３１が起動状態に復帰した後においては、ＳＲＡＭ４３に格納されていた情報が（拡張バスＰＣＩｅ（図４参照）等を介して）メインメモリ３２に転写され、メインＣＰＵ３１によって利用される。
【００４０】
＜２．動作＞
＜２−１．代行期間Ｔ１（メインＣＰＵ３１の給電停止期間および復帰期間）＞
ＭＦＰ１０が通常動作状態Ｑ１から省電力状態（スリープ状態等）Ｑ２に遷移する際において、メインＣＰＵ３１は、スナップショットデータ取得処理を開始する。そして、当該スナップショットデータ取得処理が完了すると、メインＣＰＵ３１は、以後の処理権限をサブＣＰＵ４１に移譲する。そして、メインＣＰＵ３１は、自身に対する給電停止指令を電源部３６に送出する。これに応答して、電源部３６は、メインＣＰＵ３１等を含むほぼ全ての処理部に対する給電を停止して、ＭＦＰ１０を省電力状態Ｑ２へと遷移させる（図３参照）。
【００４１】
図３に示すように、省電力状態Ｑ２においては、メインＣＰＵ３１およびメインメモリ３２に対する給電は停止されている。
【００４２】
ただし、省電力状態Ｑ２では、サブＣＰＵ４１およびＳＲＡＭ４３に対しては給電が行われる。サブＣＰＵ４１は、メインＣＰＵ３１に対する給電停止期間（メインＣＰＵ３１の休止期間とも称される）およびそれに引き続く復帰期間（後述）において、他の装置からのネットワークアクセスに対してメインＣＰＵ３１の代理応答を行うことが可能である。換言すれば、サブＣＰＵ４１は、代行期間（メインＣＰＵ３１からサブＣＰＵ４１へと処理権限が移譲されて代理で処理を実行する期間）において、各外部装置（送信元装置）からの通信を受信し、当該通信に関する代理応答を行うことが可能である。このサブＣＰＵ４１等の消費電力は、メインＣＰＵ３１等の消費電力よりも少ない。したがって、省電力状態Ｑ２にてサブＣＰＵ４１を（メインＣＰＵ３１に代えて）動作させることによれば、省電力状態Ｑ２にてメインＣＰＵ３１を動作させる場合よりも消費電力を低減することが可能である。
【００４３】
代行期間Ｔ１（メインＣＰＵ３１に対する給電停止期間Ｔ１１とそれに引き続く復帰期間Ｔ１２（図３および図５等参照）とを含む期間）においては、サブＣＰＵ４１は、本装置（ＭＦＰ）１０（１０Ｚ）宛の通信アクセスに対して、メインＣＰＵ３１の代理で応答する応答処理（代理応答処理）を実行する。後述するように、外部装置（８０Ａ，８０Ｂ等）からＭＦＰ１０への通信アクセスが行われる場合、サブＣＰＵ４１は、第１の種類のアクセスと第２の種類のアクセスとの双方に関して、メインＣＰＵ３１の代理で応答する応答処理（代理応答処理）を実行する。この点（第１の種類のアクセスのみならず第２の種類のアクセスに対してもサブＣＰＵ４１が代理応答する点）等において、本実施形態は上述の比較例と相違する。
【００４４】
なお、上述のように、第１の種類のアクセス（名前解決プロトコル等によるアクセス）は、単一の通信パケットに対する１回の応答で完結する種類の通信アクセスである。第１の種類のアクセスとしては、名前解決に関する問合せ等が例示される。また、第２の種類のアクセスは、複数のパケットに対する応答を要する種類の通信アクセスである。第２の種類のアクセスとしては、ＴＣＰ／ＩＰによる通信アクセス等が例示される。第２の種類のアクセスは、複数の受信パケットに分割してデータを送信する種類のアクセスである、とも表現される。
【００４５】
より具体的には、図５に示されるように、代行期間Ｔ１（メインＣＰＵ３１に対する給電停止期間Ｔ１１とそれに引き続く復帰期間Ｔ１２とを含む期間）において、サブＣＰＵ４１は、第１の種類のアクセスに対して代理応答するとともに、第２の種類のアクセス（複数の通信パケット（受信パケット）に対する応答を要するアクセス）に対しても代理応答する。
【００４６】
まず、第１の種類のアクセス（第１の種類のプロトコルによるアクセス）に対しては、上述の比較例等と同様の動作（ＭＡＣアドレス等の返信処理）が実行される。端的に言えば、サブＣＰＵ４１による代理応答動作が実行される。たとえば、第１の種類のアクセスとして、名前解決プロトコルの問合せ（パケット７０１，８０１等）が他の装置（８０Ａあるいは８０Ｂ等）から受信されると、ＭＦＰ１０（１０Ｚ）は、自装置１０ＺのＭＡＣアドレス等を送信元装置（８０Ａあるいは８０Ｂ等）に返信することによって、当該問合せに応答（代理応答）する。
【００４７】
一方、第２の種類のアクセス（第２の種類のプロトコルによるアクセス）に対しては、上述の比較例とは異なる動作が実行される。たとえば、ＭＦＰ１０（サブＣＰＵ４１）は、ＴＣＰ／ＩＰによる通信アクセスを他の装置（８０Ａあるいは８０Ｂ等）から受信すると、当該通信アクセスに対する代理応答処理（具体的には、確認応答（ＡＣＫ信号）の返信処理等）が行われる。
【００４８】
ＭＦＰ１０のサブＣＰＵ４１は、当該ＭＦＰ１０のメインＣＰＵ３１の代行期間Ｔ１においてＴＣＰ／ＩＰによる通信アクセスに関する各通信パケットを受信する場合、当該各通信パケットに関する送信元装置（８０Ａあるいは８０Ｂ等）に対して確認応答（「ＡＣＫ」信号）を返信すること等によって、ＴＣＰ／ＩＰによる各通信パケットに対して応答（代理応答）する。
【００４９】
より詳細には、まず通信確立のための通信パケット（「ＳＹＮ」信号）（１０１，２０１等）が送信元装置から送信されてくると、ＭＦＰ１０Ｚ（サブＣＰＵ４１）は、受信した当該「ＳＹＮ」信号に対して確認応答（「ＡＣＫ」信号）を返信する。続いて、複数のデータパケット（データ内容を示す通信パケット）が送信元装置から順次に送信されてくると、ＭＦＰ１０Ｚ（サブＣＰＵ４１）は、受信した当該複数のデータパケットに対して確認応答（「ＡＣＫ」信号）を返信する。このように、ＴＣＰ／ＩＰによる通信アクセス（詳細にはその複数のパケット）に対して、サブＣＰＵ４１は、確認応答を返信する。
【００５０】
また、この実施形態においては、サブＣＰＵ４１は、各送信元装置からの第２の種類のアクセスに関する複数の受信パケットのそれぞれに対してシーケンス番号（連続番号）を順次に付与する。当該シーケンス番号は、１番（あるいは０番）から開始される必要はなく、適宜の番号から開始されればよい。また、当該シーケンス番号は、メインＣＰＵの省電力状態移行前までにメインＣＰＵにて利用されていたシーケンス番号とは無関係の番号（サブＣＰＵ４１が独自に付与した番号）であってよい。当該シーケンス番号は、受信パケットの管理用シーケンス番号であり、サブＣＰＵ４１によって付与され管理される。また、当該シーケンス番号は、送信元装置ごと且つアクセスごとに付与され管理される。
【００５１】
たとえば、装置８０Ａから送信されてきたＴＣＰ／ＩＰ通信に関する受信パケットに対しては、「１０１」から始まる連続番号が順次に付与され、装置８０Ｂから送信されてきたＴＣＰ／ＩＰ通信に関する受信パケットに対しては、別の番号「２０１」から始まる連続番号が順次に付与される。なお、装置８０Ａから送信されてきた名前解決プロトコルに関する受信パケットに対しては、別の番号「７０１」等が付与され、装置８０Ｂから送信されてきた名前解決プロトコルに関する受信パケットに対しては、更に別の番号「８０１」等が付与される。このように、送信元装置ごと且つアクセス（種類）ごとに互いに異なるシーケンス番号が付与される。
【００５２】
また、代行期間Ｔ１においては、各送信元装置からの第２の種類のアクセスに関する最新のシーケンス番号（送信元装置ごとの最新シーケンス番号）がサブＣＰＵ４１によってＳＲＡＭ４３に記憶される。
【００５３】
たとえば、或る送信元装置８０Ａからの通信パケット１０１（「TCP/IP[SYN]A1」）に対してはシーケンス番号「１０１」が付与されると、これに応じて、通信パケット１０１の受信時点における最新のシーケンス番号（送信元装置８０Ａからのアクセスに関する複数のシーケンス番号のうちの最新情報「最新シーケンス番号」）として「１０１」がＳＲＡＭ４３に記憶される。
【００５４】
その後、同じ送信元装置８０Ａからの次の通信パケット１０２（「TCP/IP[data]A2」）に対して、シーケンス番号「１０２」（直前の「１０１」を１つインクリメントした値）が付与される。これに応じて、通信パケット１０２の受信時点における最新シーケンス番号（送信元装置８０Ａからのアクセスに関する最新シーケンス番号）として「１０２」がＳＲＡＭ４３に記憶される。
【００５５】
一方、別の送信元装置８０Ｂからの通信パケット２０１（「TCP/IP[SYN]B1」）に対しては別系統のシーケンス番号「２０１」が付与される。これに応じて、通信パケット２０１の受信時点における最新のシーケンス番号（送信元装置８０Ｂからのアクセスに関する複数のシーケンス番号のうちの最新情報「最新シーケンス番号」）として「２０１」がＳＲＡＭ４３に記憶される。
【００５６】
同様に、その後、当該別の送信元装置８０Ｂからの次の通信パケット２０２（「TCP/IP[data]B2」）に対してはシーケンス番号「２０２」（直前の「２０１」を１つインクリメントした値）が付与される。これに応じて、通信パケット２０２の受信時点における最新シーケンス番号（送信元装置８０Ｂからのアクセスに関する最新シーケンス番号）として「２０２」がＳＲＡＭ４３に記憶される。
【００５７】
また、サブＣＰＵ４１による代理応答においてデータが受信される場合には、受信されたデータ（代理受信データ）はＳＲＡＭ４３に記憶される。たとえば、通信パケット１０２で受信されたデータ、および通信パケット２０２で受信されたデータ等が、ＳＲＡＭ４３に格納される。また、各パケットに関する代理受信データは、サブＣＰＵ４１によって当該各パケットに対して付与されたシーケンス番号に関連付けられてＳＲＡＭ４３に記憶される。
【００５８】
なお、後述するように、ＳＲＡＭ４３に格納されていた情報（最新シーケンス番号および代理受信データ）は、メインＣＰＵ３１が起動状態に復帰した後において、ＳＲＡＭ４３を介してサブＣＰＵ４１からメインＣＰＵ３１へと引き渡され、メインＣＰＵ３１によって利用される。
【００５９】
また、この実施形態においては、サブＣＰＵ４１は、代行期間Ｔ１において最初に第２の種類のアクセスを受信すると、メインＣＰＵ３１を再起動すべき旨を判定する。図５では、或る送信元装置８０Ａからの通信パケット１０１（「TCP/IP[SYN]A1」）が受信されると、メインＣＰＵ３１を再起動すべき旨が判定される。そして、サブＣＰＵ４１は、メインＣＰＵ３１および電源部３６に対して、メインＣＰＵ３１の再起動指令（メインＣＰＵ３１を起動状態へと復帰させる復帰指令）（メインＣＰＵ３１に対する起動要求とも称される）を送出する。電源部３６は、メインＣＰＵ３１およびメインメモリ３２等への給電を再開し、メインＣＰＵ３１は再起動動作を開始する（図４参照）。
【００６０】
なお、メインＣＰＵ３１は、たとえば、不揮発性メモリ３３に記憶されていたスナップショットデータ等を用いることによって高速に起動（再起動）することが可能である。スナップショットデータを用いた高速起動による再起動動作の所要時間は、スナップショットデータを用いない通常の再起動動作の所要時間（たとえば数十秒程度）よりも短い時間（たとえば数秒程度）で済む。
【００６１】
メインＣＰＵ３１が再起動処理によって給電停止状態から起動状態に復帰するまで（再起動が完了するまで）の復帰期間（たとえば、数秒〜数十秒（ここでは３秒程度））において、サブＣＰＵ４１は、メインＣＰＵ３１の代理で各種の通信アクセスに対する応答処理（代理応答処理）を実行する。
【００６２】
＜２−２．メインＣＰＵ３１の再起動完了後（代行期間Ｔ１終了後）＞
その後、メインＣＰＵ３１は、起動状態に復帰すると復帰完了通知をサブＣＰＵ４１に対して送出し、サブＣＰＵ４１は、当該復帰完了通知を受け付けると、代理権限をメインＣＰＵ３１に返上する（メインＣＰＵ３１に権限を移譲する）。メインＣＰＵ３１は、再び通常動作（ネットワーク通信動作を含む）を実行する。
【００６３】
権限移譲の完了に伴って、サブＣＰＵ４１は、他装置との通信動作を停止する。一方、メインＣＰＵ３１は、サブＣＰＵ４１から受け取った情報（サブＣＰＵ４１からＳＲＡＭ４３を介して引き継いだ「最新シーケンス番号」）に基づいて、第２の種類のアクセスに関する残余の受信パケットの受信動作を継続する。換言すれば、メインＣＰＵ３１は、当該残余の受信パケットの受信動作をサブＣＰＵ４１から引き継いで実行する。具体的には、メインＣＰＵ３１は、サブＣＰＵ４１から受け取った各最新シーケンス番号に対して１つインクリメントした番号を次の各受信パケットに対して付与し、受信動作を継続する。
【００６４】
また、メインＣＰＵ３１が再起動状態に復帰すると、ＳＲＡＭ４３に格納されていた情報（各最新シーケンス番号および各受信データ）がメインメモリ３２に転写され、メインＣＰＵ３１によって利用される。換言すれば、メインＣＰＵ３１は、ＳＲＡＭ４３を介して、第２の種類のアクセスにおける受信パケットに付与された複数のシーケンス番号に関する最新情報（最新シーケンス番号）を復帰後のメインＣＰＵに引き継ぐ。
【００６５】
たとえば、メインＣＰＵ３１は、送信元装置８０ＡからのＴＣＰ／ＩＰ通信（「TCP/IP[data]Ai」）に関して最新シーケンス番号「１０２」を、ＳＲＡＭ４３を介してサブＣＰＵ４１から受け取る。そして、メインＣＰＵ３１は、送信元装置８０Ａからの次の通信パケット１０３（「TCP/IP[data]A3」）に対してシーケンス番号「１０３」（直前の「１０２」を１つインクリメントした値）を付与する。また、通信パケット１０３の受信時点における最新シーケンス番号（送信元装置８０Ａからのアクセスに関する最新シーケンス番号）として「１０３」をメインメモリ３２に記憶する。その後の新たな通信パケット１０４，１０５，...についても同様の受信処理が行われればよい。
【００６６】
同様に、メインＣＰＵ３１は、送信元装置８０ＢからのＴＣＰ／ＩＰ通信（「TCP/IP[data]Bi」）に関して最新シーケンス番号「２０２」を、ＳＲＡＭ４３を介してサブＣＰＵ４１から受け取る。そして、メインＣＰＵ３１は、送信元装置８０Ｂからの次の通信パケット２０３（「TCP/IP[data]B3」）に対してシーケンス番号「２０３」（直前の「２０２」を１つインクリメントした値）を付与する。また、通信パケット２０３の受信時点における最新シーケンス番号（送信元装置８０Ｂからのアクセスに関する最新シーケンス番号）として「２０３」をメインメモリ３２に記憶する。その後の新たな受信パケット２０４，２０５，...についても同様の受信処理が行われればよい。
【００６７】
また、メインＣＰＵ３１は、当該ＴＣＰ／ＩＰによる通信において、複数の通信パケットに基づくデータを、通信パケットごとの各受信データに関連付けて記憶されたシーケンス番号に基づいて復元する。換言すれば、各パケットに関する受信データと当該各パケットに対してサブＣＰＵ４１およびメインＣＰＵ３１によって付与されたシーケンス番号との対応関係もが利用される。これにより、たとえば、シーケンス番号「１０２」，「１０３」，..が付与された各パケットのデータに基づいて正しい全体データ（印刷データ等）が復元される。この際、ＳＲＡＭ４３に格納されていた情報（各最新シーケンス番号および受信データ）がメインメモリ３２に転写され、メインＣＰＵ３１によって利用される。これによって、メインＣＰＵ３１は、復帰前にてサブＣＰＵ４１によって代理受信されたデータをも正確に反映した正しいデータ（装置８０Ａからの送信データ（たとえば印刷データ））を取得することが可能である。
【００６８】
同様に、メインＣＰＵ３１は、シーケンス番号「２０２」，「２０３」，...の各通信パケットでの受信データを元の送信順序に並べ替えて正しいデータを復元する。この際、ＳＲＡＭ４３に格納されていた情報（各最新シーケンス番号および受信データ）がメインメモリ３２に転写され、メインＣＰＵ３１によって利用される。これによれば、メインＣＰＵ３１は、復帰前にてサブＣＰＵ４１によって代理受信されたデータをも正確に反映した正しいデータ（装置８０Ｂからの送信データ）を取得することが可能である。
【００６９】
＜２−３．実施形態における効果等＞
以上のような動作によれば、サブＣＰＵ４１は、代行期間Ｔ１において、複数の受信パケットに対する応答を要する第２の種類のアクセスにも代理応答する。そして、第２の種類のアクセスにおける受信パケットに付与された複数のシーケンス番号のうちの最新情報（最新番号）が、復帰完了後のメインＣＰＵ３１に引き継がれる。そのため、或る装置（たとえば８０Ｂ）からの第２の種類のアクセスに関して、メインＣＰＵ３１の給電停止状態への移行後から再起動完了前（復帰完了前）までに受信されたパケット（代行期間Ｔ１で受信されたパケット）のシーケンス番号と、再起動完了後（復帰完了後）のメインＣＰＵ３１にて引き続いて受信されたパケットのシーケンス番号との連続性を担保することが可能である。したがって、メインＣＰＵ３１が休止状態に移行した後においても、外部装置（８０Ａ，８０Ｂ等）からの通信アクセスであって複数の通信パケットに対する応答を要する通信アクセスを適切に受け付けることが可能である。
【００７０】
特に、メインＣＰＵ３１に対する給電停止期間中および復帰期間中において、サブＣＰＵ４１が第２の種類のアクセスに対して確認応答（ＡＣＫ）を代理で返信するので、当該確認応答を受信した送信元装置８０Ｂ等は、リトライを行わずに直ちに次のパケット送信を行うことができる。したがって、タイムアウト判定が行われることを回避し、且つ、複数のパケットによるデータ送信を停滞させずに適切に進行させることが可能である。
【００７１】
なお、ここでは、第２の種類のアクセスとしてＴＣＰ／ＩＰによる通信を例示しているが、これに限定されず、その他の各種の通信（その他のデータ転送用プロトコルを用いた通信等）であってもよい。また、第２の種類のアクセスとして複数の異なるプロトコルの通信が行われる場合には、各プロトコルごとにシーケンス番号が管理されればよい。
【００７２】
＜３．変形例等＞
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【００７３】
たとえば、上記実施形態等においては、サブＣＰＵ４１は、複数の受信パケットのそれぞれに個別に応答しているが、これに限定されず、サブＣＰＵ４１は、いくつかの受信パケット（たとえば２個の受信パケット）に対して纏めて応答（確認応答等）するようにしてもよい。
【００７４】
また、上記実施形態等においては、サブＣＰＵ４１は、代行期間Ｔ１において第２の種類のアクセスを受信する場合、当該第２の種類のアクセスに関する送信元装置に対して確認応答（データを正常受信した旨のＡＣＫ信号）を返信することによって、当該第２の種類のアクセスに対して応答（代理応答）しているが、これに限定されない。
【００７５】
たとえば、サブＣＰＵ４１は、メインＣＰＵ３１に対する給電停止期間中に第２の種類のアクセスを受信する場合、当該第２の種類のアクセスに関する送信元装置に対して実質的な待機要求（ウエイト指令等）を返信することによって、当該第２の種類のアクセスに対して応答（代理応答）するようにしてもよい。換言すれば、サブＣＰＵ４１は、送信元装置からのデータ送信を抑止しつつ当該送信元装置への返信（応答）を行うようにしてもよい。
【００７６】
詳細には、サブＣＰＵ４１は、たとえばＴＣＰ／ＩＰ通信におけるウインドウサイズ（Window Size）をゼロに設定変更した旨をも有する返信を、「ウエイト指令」として送信すればよい。より詳細には、パケット１０１（，２０１等）（図５参照）に対する応答として、「ウインドウサイズ（Window Size）をゼロに設定変更した旨をも有するＡＣＫ」がＭＦＰ１０から装置８０Ａ（，８０Ｂ等）へと送信されればよい。
【００７７】
ウインドウサイズをゼロに設定変更した返信が送信元装置（８０）に送信されることによれば、送信先装置（ＭＦＰ）は、当該送信先装置の受信バッファメモリの空き容量不足に起因してデータ受信できないことを送信元装置（８０）に伝達することができる。これによって、送信元装置（８０）からのデータ送信を抑止することが可能である。
【００７８】
ウインドウサイズがゼロに設定された旨の返信を受信した送信元装置（８０）は、一定期間の待機の後に、新たなウインドウサイズの送信依頼をＭＦＰ（送信先装置）に送信する。
【００７９】
このときＭＦＰのメインＣＰＵ３１の起動状態への復帰が未だ完了していない場合には、サブＣＰＵ４１が、当該送信依頼を受信するとともに、新たなウインドウサイズとして依然として「ゼロ」を返信する。これにより、送信元装置からのデータ送信抑止が継続される。
【００８０】
一方、このときＭＦＰのメインＣＰＵ３１の起動状態への復帰が既に完了していれば、メインＣＰＵ３１が、当該送信依頼を受信するとともに、新たなウインドウサイズとして、「ゼロよりも大きな値」（たとえば、数キロバイト）を送信する。これによれば、送信元装置からのデータ送信を再開することができる。
【００８１】
このようにして、サブＣＰＵ４１は、送信元装置からのデータ送信を抑止しつつ当該送信元装置への返信（応答）を行うようにしてもよい。
【００８２】
また、このような場合には、代行期間Ｔ１において、送信元装置（８０Ｂ等）は、「ウエイト指令」をパケット送信に対する応答として受信しており、送信先装置（ＭＦＰ）からの何らかの返信（応答）を受信している。したがって、送信元装置（８０Ｂ等）は、タイムアウト判定を行わない。その後、ウエイト指令に関連する送受信（新たなウインドウサイズの送信依頼等）が何回か繰り返された時点では既にメインＣＰＵ３１の再起動が完了している。したがって、正常な通信を継続することが可能である。なお、この場合、外部装置からのデータを受信する処理は、たとえば、メインＣＰＵ３１の復帰後に、メインＣＰＵ３１によって行われればよい。
【符号の説明】
【００８３】
１０  ＭＦＰ（画像形成装置）
３１  メインＣＰＵ
３２  メインメモリ
４１  サブＣＰＵ
４３  ＳＲＡＭ（スタティックＲＡＭ）
８０Ａ，８０Ｂ  送信元装置（外部装置）
Ｔ１  代行期間
Ｔ１１  給電停止期間
Ｔ１２  復帰期間
【図１】
2018089895.tif 000003
【図２】
2018089895.tif 000004
【図３】
2018089895.tif 000005
【図４】
2018089895.tif 000006
【図５】
2018089895.tif 000007
【図６】
2018089895.tif 000008