JP2010280093A - 通信装置 - Google Patents
通信装置 Download PDFInfo
- Publication number
- JP2010280093A JP2010280093A JP2009133831A JP2009133831A JP2010280093A JP 2010280093 A JP2010280093 A JP 2010280093A JP 2009133831 A JP2009133831 A JP 2009133831A JP 2009133831 A JP2009133831 A JP 2009133831A JP 2010280093 A JP2010280093 A JP 2010280093A
- Authority
- JP
- Japan
- Prior art keywords
- data
- type
- packet
- sleep state
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
【課題】 第1処理部の移行期間中において、データをメモリに格納しきれなくなる事態が起こる場合に、最適な対処を行なうことができる技術を提供すること。
【解決手段】 プリンタは、メインCPUとサブCPUとRAMを備える。サブCPUは、メインCPUの非スリープ状態からスリープ状態への移行期間中に、受信するパケットを格納する。サブCPUは、RAMの空き容量が、移行期間中に新たに受信するパケットを格納するのに充分でない場合(S84でYES)において、RAMに第1種のパケットと第2種のパケットとが既に格納されている場合に、RAMから第2種のパケットを削除して(S92)、受信したパケットをRAMに格納する(S94)。
【選択図】 図11
【解決手段】 プリンタは、メインCPUとサブCPUとRAMを備える。サブCPUは、メインCPUの非スリープ状態からスリープ状態への移行期間中に、受信するパケットを格納する。サブCPUは、RAMの空き容量が、移行期間中に新たに受信するパケットを格納するのに充分でない場合(S84でYES)において、RAMに第1種のパケットと第2種のパケットとが既に格納されている場合に、RAMから第2種のパケットを削除して(S92)、受信したパケットをRAMに格納する(S94)。
【選択図】 図11
Description
本発明は、ネットワークに接続される通信装置に関する。
特許文献1には、消費電力が比較的に小さいスリープ状態と、消費電力が比較的に大きい非スリープ状態と、の間で状態が移行する第1処理部を備える通信装置が開示されている。非スリープ状態において、第1処理部が所定時間継続して処理を実行しない場合に、第2処理部は、第1処理部をスリープ状態に移行させる。この通信装置では、第1処理部がスリープ状態である場合に、ネットワークを介してデータが受信されると、第2処理部は、データをメモリに格納するとともに、第1処理部をスリープ状態から非スリープ状態に移行させる。なお、第2処理部は、第1処理部のスリープ状態から非スリープ状態への移行期間中に受信されるデータもメモリに格納する(特許文献1の図4のS405参照)。第1処理部は、非スリープ状態に移行した後に、メモリに格納されているデータを処理する。
通信装置の消費電力を低減させるためには、第1処理部のスリープ状態中又は移行期間中に受信されるデータを格納するためのメモリの総容量をできるだけ抑制することが好ましい。しかしながら、メモリの総容量が小さいと、第1処理部の移行期間中に複数のデータを受信した場合に、データをメモリに格納しきれなくなる事態が起こり得る。本明細書では、第1処理部の移行期間中にデータをメモリに格納しきれなくなる事態が起こる場合に、最適な対処を行なうことができる技術を提供する。
本明細書によって開示される技術は、ネットワークに接続される通信装置に関する。この通信装置は、第1処理部と第2処理部とメモリとを備える。第1処理部は、スリープ状態と非スリープ状態との間で状態が移行する。第1処理部は、非スリープ状態である場合に、ネットワークを介して受信するデータを処理する。なお、上記した非スリープ状態は、例えば、スリープ状態と比べて消費電力が大きい状態と言い換えてもよい。第2処理部は、第1処理部がスリープ状態である場合に、ネットワークを介して受信するデータに対して、第1処理部に代理して代理応答処理を実行する。
第2処理部は、状態移行部と記憶制御部を備える。状態移行部は、第1処理部がスリープ状態である場合において、第1処理部によって処理されるべき特定のデータを受信する場合に、第1処理部をスリープ状態から非スリープ状態に移行させる。記憶制御部は、特定のデータをメモリに格納するとともに、第1処理部がスリープ状態から非スリープ状態に移行する移行期間中に受信するデータをメモリに格納する。移行期間中に受信するデータは、第1処理部によって処理されるべき第1種のデータと、第2処理部が代理応答処理を実行可能な第2種のデータと、を含み得る。記憶制御部は、メモリの空き容量が移行期間中に新たに受信する対象データを格納するのに充分でない特定の場合において、メモリに第1種のデータと第2種のデータとが既に格納されている場合に、メモリから第2種のデータを削除して、対象データをメモリに格納する。
この通信装置では、第1処理部の移行期間中に受信する対象データをメモリに格納しきれなくなる事態が起こる場合(即ち上記した特定の場合)に、メモリに格納されている第1種のデータと第2種のデータとのうちの第2種のデータを削除する。これにより、メモリに格納されている第1種のデータを削除することなく、対象データを格納することができる。この技術を利用すると、例えば、通信装置の製造者やユーザが、削除されずに処理されるべき重要度の高い種類のデータを第1種のデータとして設定し、第1種のデータより重要度の低い種類のデータを第2種のデータとして設定すれば、上記した特定の場合に、重要度の高い第1種のデータが削除されることを抑制することができる。
記憶制御部は、上記した特定の場合において、メモリに第1種のデータと複数の第2種のデータとが既に格納されている場合に、複数の第2種のデータのうち、最も過去に受信されたデータを削除して、対象データをメモリに格納してもよい。
なお、上記した「最も過去に受信されたデータ」は、例えば、「受信時刻が最も古いデータ」、「最先に受信されたデータ」、あるいは、「メモリに格納されている期間が最も長いデータ」と言い換えてもよい。また、記憶制御部は、上記の複数の第2種のデータのうち、最新に受信されたデータを削除してもよいし、サイズの最も大きなデータを削除してもよいし、ランダムに選択されたデータを削除してもよい。あるいは、記憶制御部は、複数の第2種のデータのそれぞれを通信するためのプロトコルに基づいて、削除すべき第2種のデータを決定してもよい。例えば、複数の第2種のデータが、第1プロトコルに従って通信される第1データと、第2プロトコルに従って通信される第2データと、を含んでいる場合、記憶制御部は、第1データを削除せずに、第2データを削除してもよい。
記憶制御部は、移行期間中に、第2処理部が代理応答処理を実行する必要のない第3種のデータを受信する場合に、第3種のデータをメモリに格納してもよい。記憶制御部は、上記した特定の場合において、メモリに第1種のデータと第2種のデータとのうちの少なくとも一方と、第3種のデータと、が既に格納されている場合に、メモリから第3種のデータを削除して、対象データをメモリに格納してもよい。
この構成によれば、例えば、通信装置の製造者やユーザが、第1種及び第2種のデータより重要度の低い種類のデータを第3種のデータとして設定すれば、上記した特定の場合に、重要度の高い第1種及び第2種のデータが削除されることを抑制することができる。
この構成によれば、例えば、通信装置の製造者やユーザが、第1種及び第2種のデータより重要度の低い種類のデータを第3種のデータとして設定すれば、上記した特定の場合に、重要度の高い第1種及び第2種のデータが削除されることを抑制することができる。
記憶制御部は、特定の場合において、メモリに第1種のデータと第2種のデータとのうちの少なくとも一方と、複数の第3種のデータと、が既に格納されている場合に、複数の第3種のデータのうち、最も過去に受信されたデータを削除して、対象データをメモリに格納してもよい。また、記憶制御部は、上記の複数の第3種のデータのうち、最新に受信されたデータを削除してもよいし、サイズの最も大きなデータを削除してもよいし、ランダムに選択されたデータを削除してもよい。あるいは、記憶制御部は、複数の第3種のデータのそれぞれを通信するためのプロトコルに基づいて、削除すべき第3種のデータを決定してもよい。
第2処理部は、対象データが代理応答処理を実行する必要のない第3種のデータであるか否かを判断する第1判断部をさらに備えていてもよい。記憶制御部は、対象データが第3種のデータであると判断される場合に、対象データをメモリに格納することなく破棄してもよい。即ち、記憶制御部は、対象データが第3種のデータでないと判断される場合に、対象データをメモリに格納してもよい。
この構成によると、第1種及び第2種のデータより重要度の低い第3種のデータが移行期間中にメモリに格納されないために、重要度の低い第3種のデータによってメモリの記憶容量が圧迫されることを防止することができる。
この構成によると、第1種及び第2種のデータより重要度の低い第3種のデータが移行期間中にメモリに格納されないために、重要度の低い第3種のデータによってメモリの記憶容量が圧迫されることを防止することができる。
第2処理部は、対象データが第2種のデータである場合に、対象データに対して代理応答処理を実行しなくてもよい。第1処理部は、非スリープ状態に移行した後に、メモリに格納されている対象データを処理してもよい。
この構成では、第2処理部は、第1処理部の移行期間中に、代理応答処理を実行せずに、第1処理部を非スリープ状態に移行させるための移行処理を実行することができる。第2処理部が代理応答処理と移行処理とを並列的に実行する構成と比べると、第2処理部は、移行処理を高速で行なうことができる。これにより、移行期間を短縮することができ、第1処理部を非スリープ状態に迅速に移行させることができる。
この構成では、第2処理部は、第1処理部の移行期間中に、代理応答処理を実行せずに、第1処理部を非スリープ状態に移行させるための移行処理を実行することができる。第2処理部が代理応答処理と移行処理とを並列的に実行する構成と比べると、第2処理部は、移行処理を高速で行なうことができる。これにより、移行期間を短縮することができ、第1処理部を非スリープ状態に迅速に移行させることができる。
第2処理部は、第1処理部がスリープ状態で維持されるスリープ期間であって、移行期間と異なるスリープ期間中に受信するデータの種別を判断し、移行期間中に受信するデータの種別を判断しない第2判断部をさらに備えていてもよい。状態移行部は、スリープ期間中に受信するデータが第1種のデータであると判断される場合に、第1処理部をスリープ状態から非スリープ状態に移行させてもよい。第2処理部は、スリープ期間中に受信するデータが第2種のデータであると判断される場合に、スリープ期間中に受信するデータに対して代理応答処理を実行してもよい。
さらに、第2処理部は、スリープ期間中に受信するデータが代理応答処理を実行する必要のない第3種のデータであると判断される場合に、スリープ期間中に受信するデータをメモリに格納することなく破棄してもよい。
さらに、第2処理部は、スリープ期間中に受信するデータが代理応答処理を実行する必要のない第3種のデータであると判断される場合に、スリープ期間中に受信するデータをメモリに格納することなく破棄してもよい。
ここでは、本明細書に記載の技術の特徴の一部を列挙する。
(特徴1) 通信装置は、第2メモリを備えていてもよい。第2メモリは、第1処理部が非スリープ状態である場合に通常動作モードに設定され、第1処理部がスリープ状態である場合に低消費電力モードに設定されてもよい。
(特徴2) 通信装置は、受信するデータを一時的に記憶する一時記憶部を備えていてもよい。
(特徴3) 上記の場合、第1判断部は、一時記憶部に記憶されるデータが第3種のデータであるか否かを判断してもよい。記憶制御部は、一時記憶部に記憶されるデータが第3種のデータであると第1判断部によって判断される場合に、当該データをメモリに格納することなく、一時記憶部から削除することによって、当該データを破棄してもよい。
(特徴4) 上記の場合、第2判断部は、一時記憶部に記憶されるデータの種別を判断してもよい。一時記憶部に記憶されるデータが第1種又は第2種のデータであると第2判断部によって判断される場合に、第2処理部は、当該データをメモリに格納してもよい。さらに、一時記憶部に記憶されるデータが第3種のデータであると第2判断部によって判断される場合に、当該データをメモリに格納することなく、一時記憶部から削除することによって、当該データを破棄してもよい。
(特徴1) 通信装置は、第2メモリを備えていてもよい。第2メモリは、第1処理部が非スリープ状態である場合に通常動作モードに設定され、第1処理部がスリープ状態である場合に低消費電力モードに設定されてもよい。
(特徴2) 通信装置は、受信するデータを一時的に記憶する一時記憶部を備えていてもよい。
(特徴3) 上記の場合、第1判断部は、一時記憶部に記憶されるデータが第3種のデータであるか否かを判断してもよい。記憶制御部は、一時記憶部に記憶されるデータが第3種のデータであると第1判断部によって判断される場合に、当該データをメモリに格納することなく、一時記憶部から削除することによって、当該データを破棄してもよい。
(特徴4) 上記の場合、第2判断部は、一時記憶部に記憶されるデータの種別を判断してもよい。一時記憶部に記憶されるデータが第1種又は第2種のデータであると第2判断部によって判断される場合に、第2処理部は、当該データをメモリに格納してもよい。さらに、一時記憶部に記憶されるデータが第3種のデータであると第2判断部によって判断される場合に、当該データをメモリに格納することなく、一時記憶部から削除することによって、当該データを破棄してもよい。
図面を参照して実施例を説明する。図1は、本実施例の通信システム2の概略図を示す。通信システム2は、LAN4と外部装置6とプリンタ10とを備える。外部装置6とプリンタ10は、LAN4に接続されている。外部装置6とプリンタ10は、LAN4を介して、相互に通信可能である。
(プリンタの構成)
図1に示すように、プリンタ10は、制御部12と、ネットワークインターフェイス30(以下では、「ネットワークI/F30」という)と、プリントエンジン34と、表示パネル38等を備える。制御部12は、メインCPU14と、メイン用クロック回路16と、ROM18と、2つのRAM20,21と、バッファ22と、サブCPU24と、サブ用クロック回路26と、MACコントローラ28と、エンジン制御回路32と、パネル制御回路36等を備える。
図1に示すように、プリンタ10は、制御部12と、ネットワークインターフェイス30(以下では、「ネットワークI/F30」という)と、プリントエンジン34と、表示パネル38等を備える。制御部12は、メインCPU14と、メイン用クロック回路16と、ROM18と、2つのRAM20,21と、バッファ22と、サブCPU24と、サブ用クロック回路26と、MACコントローラ28と、エンジン制御回路32と、パネル制御回路36等を備える。
メインCPU14は、第2RAM21に格納されているプログラムに従って様々な処理を実行する。メインCPU14は、タイマ機構を内蔵している。以下では、このタイマのことを待機状態タイマと呼ぶ。メイン用クロック回路16は、メインCPU14にクロック信号を供給する。メインCPU14にクロック信号が供給されている間は、メインCPU14は非スリープ状態である。メインCPU14にクロック信号が供給されていない間は、メインCPU14はスリープ状態である。なお、後述するように、メイン用クロック回路16は、サブCPU24によって制御される。
サブCPU24は、第1RAM20に格納されているプログラムに従って様々な処理を実行する。サブ用クロック回路26は、サブCPU24にクロック信号を供給する。サブ用クロック回路26のクロック信号の周波数は、メイン用クロック回路16のクロック信号の周波数よりも低い。従って、メインCPU14を駆動するための消費電力と比べて、サブCPU24を駆動するための消費電力は小さい。サブ用クロック回路26は、プリンタ10の電源がONにされると、サブCPU24にクロック信号を供給する。また、プリンタ10の電源がOFFにされると、サブCPU24へのクロック信号を停止する。即ち、サブCPU24は、プリンタ10の電源がONされている間、スリープ状態には設定されず、非スリープ状態で維持される。
ROM18には、メインCPU14及びサブCPU24によって実行される複数のプログラムがそれぞれ圧縮された状態で格納されている。各プログラムは、プリンタ10の電源がONされたときに、第1RAM20又は第2RAM21に展開される。メインCPU14又はサブCPU24は、第1RAM20又は第2RAM21に展開されたプログラムを使用して処理を実行する。ROM18に格納されている全てのプログラムは、プリンタ10の電源がONにされると、一旦、第2RAM21に展開される。次いで、第2RAM21に展開された複数のプログラムのうち、予め決められているプログラムが、第1RAM20にロードされる。なお、図示省略されているが、制御部12は、第1RAM20と第2RAM21のそれぞれに対してクロック信号を供給するための回路も有する。
第1RAM20は、SRAMである。図2は、第1RAM20の格納領域の構成の一例を示す。第1RAM20は、メインCPU14とサブCPU24からアクセス可能である。RAM20は、第1省電力処理プログラム格納領域41と、代理応答プログラム格納領域42と、第1代理応答用情報格納領域43と、状態変数格納領域44と、パケット格納領域45と、パケット判別テーブル46を備える。
第1省電力処理プログラム格納領域41には、後述するように、サブCPU24が実行する省電力処理(図10参照)を実行するためのプログラムが格納される。メインCPU14は、プリンタ10の電源がONされると、第1RAM20に展開された複数のプログラムのうち、予め設計者等によって決められているサブCPU24用の省電力処理プログラムを第1省電力処理プログラム格納領域41にロードして格納する。
代理応答処理プログラム格納領域42は、後述するように、サブCPU24がメインCPU14に代理して処理を実行する(図10のS66)際に使用するプログラムを格納するための領域である。メインCPU14は、プリンタ10の電源がONされると、第1RAM20に展開された複数のプログラムのうち、予め設計者等によって決められている代理応答プログラムを代理応答プログラム格納領域42にロードして格納する。
代理応答用情報格納領域43には、サブCPU24がメインCPU14に代理して処理を実行するために必要な情報が格納される。代理応答用情報格納領域43に格納される情報の一例として、プリンタ10のIPアドレス、MACアドレス、ノード名等が挙げられる。メインCPU14は、非スリープ状態に移行可能となると(図7のS24)、サブCPU24がメインCPU14に代理して処理を実行するために必要な情報を、代理応答用情報格納領域43に格納する(図8のS28)。
状態変数格納領域44には、プリンタ10の状態を示す状態変数が格納される。プリンタ10は、「処理状態」、「待機状態」、「ライトスリープ状態(Lスリープ状態)」、「ディープスリープ状態(Dスリープ状態)」のいずれかの状態で動作する。従って、状態変数格納領域44には、4つの状態に対応する4つの値のうちの1つの値が格納される。
第1パケット格納領域45には、メインCPU14のスリープ状態中、又は、スリープ状態から非スリープ状態への移行期間中に、ネットワークI/F30を介して受信されたパケットが格納される。
図4は、図2のパケット判別テーブル46の内容の一例を示す。パケット判別テーブル46は、プロトコル54とパケットの種類56とが対応付けられた情報である。パケット判別テーブル46は、後述するように、受信したパケットの種別をサブCPU24が判断するために用いられる。種類56は、「第1種」と「第2種」とを含む。「第1種」に対応するプロトコル54として、複数のプロトコルが存在する。「第1種」に対応するプロトコル54は、TCP(Transmission Control Protocol)を含む。「第2種」に対応するプロトコル54として、複数のプロトコルが存在する。「第2種」に対応するプロトコル54は、ARP(Address Resolution Protocol)、NetBIOS−NS(Network Basic Input Output System -Name Service)、ICMP(Internet Control Message Protocol)を含む。以下では、「第1種」に対応するプロトコル54を用いて通信されるパケットのことを「第1種のパケット」と呼び、「第2種」に対応するプロトコル54を用いて通信されるパケットのことを「第2種のパケット」と呼び、それ以外のプロトコルを用いて通信されるパケットのことを「第3種のパケット」と呼ぶ。
第1種のパケットは、メインCPU14によって処理されるべき種類のパケットである。例えば、第1種のパケットは、外部装置6からの印刷のための接続要求である。第2種のパケットは、メインCPU14が非スリープ状態の場合には、メインCPU14によって応答処理が実行される一方、メインCPU14がスリープ状態の場合には、サブCPU24によって代理応答処理が実行される種類のパケットである。例えば、第2種のパケットは、NetBIOSネームサービスのパケットである。第3種のパケットは、上記した第1種、第2種のパケットのいずれにも属しない種類のパケットである。即ち、第3種のパケットは、メインCPU14が非スリープ状態の場合には、必要に応じて、メインCPU14によって応答処理が実行される一方、メインCPU14がスリープ状態の場合には、サブCPU24によって代理応答処理が実行されない種類のパケットである。どのプロトコルをどの種類に対応させるかは、プリンタ10の製造者やユーザ等が、どのプロトコルを利用して通信されるパケットがより重要であるかによって、適宜設定することができる。
図1に示す第2RAM21は、SDRAMである。第2RAM21は、メインCPU14からアクセス可能である。第2RAM21は、第1RAM20よりもメモリの総容量が大きい。このため、第2RAM21は、第1RAM20と比べて、その消費電力が高い。図3は、第2RAM21の格納領域の構成の一例を示す。第2RAM21は、ネットワーク処理プログラム格納領域47と、第2省電力処理プログラム格納領域48と、応答用情報格納領域49と、第2パケット格納領域50を備える。
ネットワーク処理プログラム格納領域47には、メインCPU14がネットワークを介して通信する処理を実行するためのネットワーク処理プログラムが格納される。このネットワーク処理プログラムは、ARP、NetBIOS−NS、ICMP等に関する応答処理(即ちメインCPU14が非スリープ状態の間に実行すべき応答処理)を実行するためのプログラム、印刷指示に応じて印刷処理を実行するためのプログラム等を含む。ネットワーク処理プログラムは、さらに、MACコントローラ28を制御するためのプログラム、TCP/IPを利用して処理を実行するためのTCP/IPプロトコルスタック、各種のアプリケーションプロトコルを利用して処理を実行するためのプログラム等を含む。メインCPU14は、プリンタ10の電源がONされると、ROM18に格納されているネットワーク処理プログラムをネットワーク処理プログラム格納領域47に展開して格納する。
第2省電力処理プログラム格納領域48には、後述するメインCPU14が実行する省電力処理(図7,8参照)を実行するためのプログラムが格納される。メインCPU14は、プリンタ10の電源がONされると、ROM18に格納されているメインCPU14用の省電力処理プログラムを第2省電力処理プログラム格納領域48に格納する。
応答用情報格納領域49には、メインCPU14が処理を実行する際に必要な情報が格納される。例えば、プリンタ10のIPアドレス、MACアドレス、ノード名、ステータス情報等が格納される。メインCPU14は、応答用情報格納領域49に格納されるべき情報に変更があった場合、応答用情報格納領域49に格納されている情報を修正する。
第2パケット格納領域50には、メインCPU14の非スリープ状態中に、ネットワークI/F30を介して受信されたパケットが格納される。
図1に示すネットワークI/F30は、LAN4に接続されている。MACコントローラ28は、ネットワークI/F30によって受信されたパケットをプリンタ10が処理可能な形式に変換する。MACコントローラ28によって変換されたパケットは、バッファ22に一時的に格納される。エンジン制御回路32は、メインCPU14からの指示に従って、プリントエンジン34を制御する。パネル制御回路36は、メインCPU14からの指示に従って、表示パネル38を制御する。表示パネル38は、LCDである。パネル制御回路36は、表示パネル38をON状態とOFF状態との間で移行させる。即ち、パネル制御回路36は、表示パネル38に電圧を印加することによって表示パネル38をON状態とし、電圧の印加を停止することによって表示パネル38をOFF状態とする。
(プリンタの状態移行)
図5は、プリンタ10の状態が移行する様子を示す。プリンタ10は、処理状態72と待機状態74とLスリープ状態76とDスリープ状態78との間で状態が移行する。図6は、プリンタ10が各状態72,74,76,78の場合に、メインCPU14、サブCPU24、2つのRAM20,21、及び、表示パネル38の状態を表わす表90を示す。プリンタ10の電源がONされると、プリンタ10は、待機状態74となる。図6に示すように、待機状態74では、2つのCPU14,24にクロックが供給されている(即ち、2つのCPU14,24は非スリープ状態である)。2つのRAM20,21は通常動作モードであり、表示パネル38はON状態である。
図5は、プリンタ10の状態が移行する様子を示す。プリンタ10は、処理状態72と待機状態74とLスリープ状態76とDスリープ状態78との間で状態が移行する。図6は、プリンタ10が各状態72,74,76,78の場合に、メインCPU14、サブCPU24、2つのRAM20,21、及び、表示パネル38の状態を表わす表90を示す。プリンタ10の電源がONされると、プリンタ10は、待機状態74となる。図6に示すように、待機状態74では、2つのCPU14,24にクロックが供給されている(即ち、2つのCPU14,24は非スリープ状態である)。2つのRAM20,21は通常動作モードであり、表示パネル38はON状態である。
プリンタ10が待機状態74である場合に、外部装置6からの要求(パケット)に応答する処理以外の通常の処理を実行する場合、プリンタ10は、処理状態72に移行する。なお、上記の通常の処理は、印刷指示に応じて実行される印刷処理、ユーザによって表示パネル38の操作が為された場合に実行される表示処理等を含む。処理状態72は、待機状態74と同様、2つのCPU14,24は非スリープ状態であり、2つのRAM20,21は通常動作モードであり、表示パネル38はON状態である。処理状態72と待機状態74との相違点は、メインCPU14が上記の通常の処理を実行しているか否かである。メインCPU14が上記の通常の処理を終了すると、プリンタ10は、待機状態74に移行する。
メインCPU14は、待機状態74に移行すると、上記した待機状態タイマをスタートする。待機状態74が所定時間継続すると、メインCPU14は、パネル制御回路36(図1参照)に、表示パネル38をOFF状態にするように指示する。この結果、プリンタ10は、Lスリープ状態76に移行する。Lスリープ状態76では、2つのCPU14,24は非スリープ状態であり、2つのRAM20,21は通常動作モードであり、表示パネル38はOFF状態である。これにより、表示パネル38で消費される電力を低減させることができる。Lスリープ状態76において、メインCPU14が上記の通常の処理(印刷処理、表示処理等)を実行すべき場合には、プリンタ10は、処理状態72に移行する。
プリンタ10は、後述する省電力処理(図7から図10参照)を実行することによって、Lスリープ状態76からDスリープ状態78に移行する。Dスリープ状態78では、メインCPU14はスリープ状態(クロック信号が供給されない状態)であり、サブCPU24は非スリープ状態であり、第1RAM20は通常動作モードであり、第2RAM21はセルフリフレッシュモード(即ち、通常動作モードよりも消費電力が低いモード)であり、表示パネル38はOFF状態である。Dスリープ状態78において、メインCPU14が上記の通常の処理(印刷処理、表示処理等)を実行すべき場合には、プリンタ10は、Lスリープ状態76を経て処理状態72に移行する。以下では、プリンタ10がDスリープ状態78からLスリープ状態76に移行する期間、即ち、メインCPU14がスリープ状態から非スリープ状態に移行する期間を移行期間80と呼ぶ。
(メインCPUの省電力処理)
次いで、メインCPU14が実行する処理の内容について説明する。図7,8は、メインCPU14によって実行される省電力処理のフローチャートを示す。図7,8の処理は、プリンタ10の電源がONされ、メインCPU14が待機状態タイマをリセットすると開始される。プリンタ10の電源がONされた時点では、プリンタ10は待機状態74である。メインCPU14は、第1RAM20の状態変数格納領域44(図2参照)に待機状態74を示す状態変数を格納する。メインCPU14は、第2RAM21の第2省電力処理プログラム格納領域48(図3参照)に格納されているプログラムを使用して以下の処理を実行する。
次いで、メインCPU14が実行する処理の内容について説明する。図7,8は、メインCPU14によって実行される省電力処理のフローチャートを示す。図7,8の処理は、プリンタ10の電源がONされ、メインCPU14が待機状態タイマをリセットすると開始される。プリンタ10の電源がONされた時点では、プリンタ10は待機状態74である。メインCPU14は、第1RAM20の状態変数格納領域44(図2参照)に待機状態74を示す状態変数を格納する。メインCPU14は、第2RAM21の第2省電力処理プログラム格納領域48(図3参照)に格納されているプログラムを使用して以下の処理を実行する。
メインCPU14は、状態変数格納領域44に格納されている状態変数が待機状態74を示すのか否かを判断する(S10)。ここでYESの場合、S12に進み、NOの場合、メインCPU14は、S10の判断を繰り返す。S12では、メインCPU14は、待機状態タイマの計測時間が所定時間を経過したのか否かを判断する。なお、待機状態タイマは、プリンタ10が待機状態74に移行する毎にリセットされる。S12でNOの場合、S10に戻り、S12でYESの場合、S14に進む。S14では、メインCPU14は、状態変数格納領域44に格納されている状態変数を、Lスリープ状態76を示す状態変数に変更する。続いて、メインCPU14は、パネル制御回路36に表示パネル38への電圧の印加を停止するように指示する(S16)。これにより、電圧の印加が停止されると、表示パネル38はOFF状態になる。
次いで、メインCPU14は、状態変数格納領域44に格納されている状態変数がLスリープ状態76を示すのか否かを判断する(S18)。状態変数格納領域44に格納されている状態変数は、メインCPU14又はサブCPU24が図7,8以外の処理を実行することによって変更される可能性がある。例えば、メインCPU14は、後述の図10のS74においてクロック供給が再開されると、上記の通常の処理(印刷処理、表示処理等)を実行する。この際に、メインCPU14は、状態変数格納領域44に格納されている状態変数を処理状態72に変更する。この場合、S18でYESと判断され、メインCPU14は、パネル制御回路36に表示パネル38に電圧を印加するように指示する(S20)。これにより、表示パネル38は、ON状態になる。後で詳しく説明するが、メインCPU14がスリープ状態である間、又は、メインCPU14がスリープ状態から非スリープ状態に移行する間(即ち移行期間80)に、第1RAM20の第1パケット格納領域45(図2参照)にパケットが格納されることがある。第1パケット格納領域45にパケットが格納されている場合には、メインCPU14は、第2RAM21のネットワーク処理プログラム格納領域47(図3参照)に格納されているプログラムに従って、パケットを処理する(S21)。メインCPU14は、S21を終えると、第1パケット格納領域45に格納されているパケットを削除して、S10に戻る。
一方において、S18でYESの場合、メインCPU14は、後述する状態移行判断処理を実行することによって、Dスリープ状態78に移行可能であるか否かを判断する(S22)。S22の処理が終了すると、メインCPU14は、S22の処理でDスリープ状態78に移行可能と判断されたか否かを判断する(S24)。ここでYESの場合、図8のS28に進み、NOの場合、S26に進む。S26では、メインCPU14は、WAIT命令を実行する。WAIT命令が実行されると、メインCPU14は、割り込み要求を受けるまで待機する実行停止状態となる。これにより、メインCPU14の消費電力を低減させることができる。メインCPU14は、S26において割り込み要求を受けると、S18に戻る。
S28では、メインCPU14は、サブCPU24がメインCPU14に代理して処理を実行するために必要な情報を、第1RAM20の代理応答用情報格納領域43(図2参照)に格納する。即ち、メインCPU14は、第2RAM21の応答用情報格納領域49(図3参照)に格納されている情報を、代理応答用情報格納領域43に格納する。次いで、メインCPU14は、サブCPU24以外からの割り込み要求をマスク(禁止)する(S30)。メインCPU14は、状態変数格納領域44に格納されているLスリープ状態76を示す状態変数を、Dスリープ状態78を示す状態変数に変更する(S32)。続いて、メインCPU14は、サブCPU24に、今後の処理を実行するように、割り込み要求を発行する(S34)。メインCPU14は、WAIT命令を実行する(S36)。WAIT命令が実行されると、メインCPU14は、割り込み要求を受けるまで待機する実行停止状態となる。メインCPU14は、S36において割り込み要求を受ける(後述の図10のS70参照)と、S38に進む。S38では、メインCPU14は、S30で実行したサブCPU24に対する割り込み要求のマスクを解除して、図7のS18に戻る。即ち、メインCPU14は、割り込み要求を受けると、図7のS18の処理を実行する。
(メインCPUの状態移行判断処理)
続いて、メインCPU14が図7のS22で実行する状態移行判断処理の内容を説明する。図9は、メインCPU14によって実行される状態移行判断処理のフローチャートを示す。メインCPU14は、外部装置6等にパケットを送信しているか否かを判断する(S40)。例えば、メインCPU14が外部装置6等からのプリンタ10のステータスの要求に対するレスポンスを返信している途中の場合、S40でYESと判断される。S40でYESの場合、S48に進む。一方において、S40でNOの場合、メインCPU14は、メインCPU14が処理すべきパケットが第2RAM21(図3参照)の第2パケット格納領域50に格納されているか否かを判断する(S42)。例えば、メインCPU14が外部装置6等からプリンタ10のステータスの要求を受信しており、未だ処理していない場合、S42でYESと判断される。S42でYESの場合にS48に進み、S42でNOの場合にS44に進む。S44では、メインCPU14は、プリンタ10に接続中の外部装置6等があるか否かを判断する。例えば、プリンタ10がWebサーバ機能を有しており、外部装置6がプリンタ10のWebサーバにTCP接続中である場合、S44でYESと判断される。S44でYESの場合にS48に進み、NOの場合にS46に進む。
続いて、メインCPU14が図7のS22で実行する状態移行判断処理の内容を説明する。図9は、メインCPU14によって実行される状態移行判断処理のフローチャートを示す。メインCPU14は、外部装置6等にパケットを送信しているか否かを判断する(S40)。例えば、メインCPU14が外部装置6等からのプリンタ10のステータスの要求に対するレスポンスを返信している途中の場合、S40でYESと判断される。S40でYESの場合、S48に進む。一方において、S40でNOの場合、メインCPU14は、メインCPU14が処理すべきパケットが第2RAM21(図3参照)の第2パケット格納領域50に格納されているか否かを判断する(S42)。例えば、メインCPU14が外部装置6等からプリンタ10のステータスの要求を受信しており、未だ処理していない場合、S42でYESと判断される。S42でYESの場合にS48に進み、S42でNOの場合にS44に進む。S44では、メインCPU14は、プリンタ10に接続中の外部装置6等があるか否かを判断する。例えば、プリンタ10がWebサーバ機能を有しており、外部装置6がプリンタ10のWebサーバにTCP接続中である場合、S44でYESと判断される。S44でYESの場合にS48に進み、NOの場合にS46に進む。
S48では、メインCPU14は、Dスリープ状態78に移行不可であると判断する。この場合には、メインCPU14は、上記した図7のS24でNOと判断する。一方、S46では、メインCPU14は、Dスリープ状態78に移行可能であると判断する。この場合には、メインCPU14は、上記した図7のS24でYESと判断する。
(サブCPUの省電力処理)
続いて、サブCPU24が実行する省電力処理の内容を説明する。図10は、サブCPU24によって実行される省電力処理のフローチャートを示す。図10の処理は、プリンタ10の電源がONされたことをトリガとして開始される。サブCPU24は、第1RAM20の第1省電力処理プログラム格納領域41(図2参照)に格納されているプログラムを使用して、以下の処理を実行する。最初に、サブCPU24は、WAIT命令を実行する(S50)。サブCPU24は、割り込み要求を受けるまで待機する(即ち実行停止状態に移行する)。上述したように、メインCPU14は、図8のS34において、サブCPU24に割り込み要求を発行する。これにより、サブCPU24の実行停止状態が解除され、S52に進む。
続いて、サブCPU24が実行する省電力処理の内容を説明する。図10は、サブCPU24によって実行される省電力処理のフローチャートを示す。図10の処理は、プリンタ10の電源がONされたことをトリガとして開始される。サブCPU24は、第1RAM20の第1省電力処理プログラム格納領域41(図2参照)に格納されているプログラムを使用して、以下の処理を実行する。最初に、サブCPU24は、WAIT命令を実行する(S50)。サブCPU24は、割り込み要求を受けるまで待機する(即ち実行停止状態に移行する)。上述したように、メインCPU14は、図8のS34において、サブCPU24に割り込み要求を発行する。これにより、サブCPU24の実行停止状態が解除され、S52に進む。
S52では、サブCPU24は、第1RAM20の状態変数格納領域44(図2参照)に格納されている状態変数がDスリープ状態78を示すか否かを判断する。S52でNOの場合、S50に進む。即ち、サブCPU24は、状態変数がDスリープ状態78以外を示す場合、実行停止状態で待機する。
S52でYESの場合、サブCPU24は、メイン用クロック回路16(図1参照)にクロック供給の停止を指示する(S54)。この結果、メインCPU14は、非スリープ状態からスリープ状態に移行する。続いて、サブCPU24は、第2RAM21を通常動作モードからセルフリフレッシュモードに移行させる(S56)。第2RAM21がセルフリフレッシュモードである間は、第2RAM21の第2パケット格納領域50にパケットを格納することができない。第2RAM21がセルフリフレッシュモードである場合、通常動作モードと比べて、第2RAM21の消費電力は低い。次いで、サブCPU24は、ネットワークI/F30を介してパケットを受信することを監視する(S58)。より詳細には、サブCPU24は、バッファ22にパケットが格納されることを監視する。S58でYESの場合、サブCPU24は、受信したパケットが第1種及び第2種のパケットのいずれにも該当しない種類のパケット、即ち、第3種のパケットであるか否かを判断する(S60)。具体的には、サブCPU24は、受信したパケットに対応するプロトコル(プリンタ10に当該パケットを送信するためのプロトコル)が、パケット判別テーブル52(図4参照)のプロトコル54に記録されているか否かを確認する。受信したパケットに対応するプロトコルが、プロトコル54に記録されている場合に、S60においてNOと判断される。一方、受信したパケットに対応するプロトコルが、プロトコル54に記録されていない場合に、S60においてYESと判断される。
S60でYESの場合、即ち、受信したパケットが第3種のパケットである場合、受信したパケットを第1RAM20の第1パケット格納領域45(図2参照)に格納することなく、バッファ22から削除して(S62)、S58に戻る。一方において、S60でNOの場合、サブCPU24は、受信したパケットが第1種のパケットであるか否かを判断する(S64)。具体的には、サブCPU24は、受信したパケットに対応するプロトコルが、パケット判別テーブル52(図4参照)のプロトコル54の「第1種」に対応付けて記録されているか否かを確認する。受信したパケットに対応するプロトコルが、「第1種」に対応付けて記録されている場合に、S64においてYESと判断される。一方、受信したパケットに対応するプロトコルが、「第2種」に対応付けて記録されている場合に、S64においてNOと判断される。
S64でNOの場合、第2種のパケットが受信されたことになる。この場合、サブCPU24は、代理応答処理プログラム格納領域44に格納されているプログラムを使用して、メインCPU14に代理してパケットに対する応答処理を実行する(S66)。S66の代理応答処理では、サブCPU24は、S58で受信された第2種のパケットを、第1RAM20の第1パケット格納領域45(図2参照)に格納する。次いで、サブCPU24は、第1パケット格納領域45に格納された第2種のパケットに対する応答処理を実行する。サブCPU24は、応答処理を実行し終えると、第2種のパケットを第1パケット格納領域45から削除する。これにより、代理応答処理が終了し、S58に戻る。
一方において、S64でYESの場合、第1種のパケットが受信されたこととなる。第1種のパケットは、メインCPU14によって処理されるべきパケットである。この場合、サブCPU24は、受信した第1種のパケットを第1RAM20の第1パケット格納領域45(図2参照)に格納する(S68)。次いで、サブCPU24は、移行期間中処理を開始する(S69)。サブCPU24は、移行期間中処理(図11参照)と並行して、S70以降の処理を実行する。即ち、サブCPU24は、第2RAM21をセルフリフレッシュモードから通常動作モードに移行させる(S70)。次いで、サブCPU24は、第1RAM20の状態変数格納領域44(図2参照)のDスリープ状態78を示す状態変数を、Lスリープ状態76を示す状態変数に変更する(S72)。続いて、サブCPU24は、メイン用クロック回路16(図1参照)に、メインCPU14にクロック供給を開始するよう指示する(S74)。この結果、メインCPU14にクロックが供給され、スリープ状態から非スリープ状態に移行する。メインCPU14をスリープ状態から非スリープ状態に移行させるためには、ある程度の時間がかかる(即ち図5の移行期間80で示される状態となる)。なお、上記の第2RAM21をセルフリフレッシュモードから通常動作モードに移行させるためにも時間がかかる。本実施例では、メインCPU14をスリープ状態から非スリープ状態に移行させるための時間(移行期間80の長さ)と、上記の第2RAM21をセルフリフレッシュモードから通常動作モードに移行させるための時間と、がほぼ同じである。従って、メインCPU14の移行期間80中は、第2RAM21に情報(例えば後述の図11のS82で受信されるパケット)を格納することができない。サブCPU24は、メインCPU14に割り込み要求を発行する(S76)。
(サブCPUの移行期間中処理)
図11は、図10のS69で開始される移行期間中処理のフローチャートを示す。なお、移行期間80中では、第1RAM20の第1パケット格納領域45に既に第1種のパケット、すなわち、S69の移行期間処理の開始のトリガとなったパケットが格納されている(図10のS68参照)。サブCPU24は、メインCPU14がスリープ状態から非スリープ状態への移行を完了し、かつ、第2RAM21がセルフリフレッシュモードから通常動作モードへの移行を完了することを監視する(S80)。サブCPU24は、メインCPU14において処理が開始されたことを確認することによって、メインCPU14の非スリープ状態への移行が完了したと判断する。本実施例では、メインCPU14がスリープ状態から非スリープ状態に移行するための時間と、第2RAM21がセルフリフレッシュモードから通常動作モードに移行するための時間と、がほぼ同じである。このため、サブCPU24は、メインCPU14の非スリープ状態への移行が完了したことを確認することによって、第2RAM21の通常動作モードへの移行も完了したと判断する。例えば、メインCPU14は、自身にクロックが供給されて処理を実行可能な状態になると、サブCPU24に特定の指示を送信する。サブCPU24は、上記の特定の指示を受信すると、S80でYESと判断する。S80でYESの場合、サブCPU24は、図10のS76に戻る。一方において、S80でNOの場合、S82に進む。S82では、サブCPU24は、移行期間中80に新たにパケットを受信することを監視する。即ち、サブCPU24は、バッファ22にパケットが格納されることを監視する。S82でYESの場合、S84に進む。
図11は、図10のS69で開始される移行期間中処理のフローチャートを示す。なお、移行期間80中では、第1RAM20の第1パケット格納領域45に既に第1種のパケット、すなわち、S69の移行期間処理の開始のトリガとなったパケットが格納されている(図10のS68参照)。サブCPU24は、メインCPU14がスリープ状態から非スリープ状態への移行を完了し、かつ、第2RAM21がセルフリフレッシュモードから通常動作モードへの移行を完了することを監視する(S80)。サブCPU24は、メインCPU14において処理が開始されたことを確認することによって、メインCPU14の非スリープ状態への移行が完了したと判断する。本実施例では、メインCPU14がスリープ状態から非スリープ状態に移行するための時間と、第2RAM21がセルフリフレッシュモードから通常動作モードに移行するための時間と、がほぼ同じである。このため、サブCPU24は、メインCPU14の非スリープ状態への移行が完了したことを確認することによって、第2RAM21の通常動作モードへの移行も完了したと判断する。例えば、メインCPU14は、自身にクロックが供給されて処理を実行可能な状態になると、サブCPU24に特定の指示を送信する。サブCPU24は、上記の特定の指示を受信すると、S80でYESと判断する。S80でYESの場合、サブCPU24は、図10のS76に戻る。一方において、S80でNOの場合、S82に進む。S82では、サブCPU24は、移行期間中80に新たにパケットを受信することを監視する。即ち、サブCPU24は、バッファ22にパケットが格納されることを監視する。S82でYESの場合、S84に進む。
S84では、サブCPU24は、バッファ22に格納されている新たな受信パケットのサイズと、第1RAM20の第1パケット格納領域45(図2参照)の空き容量と、を比較する。第1パケット格納領域45の空き容量が、受信パケットのサイズより大きい場合(S84でNO)、サブCPU24は、受信パケットを第1パケット格納領域45に格納して(S94)、S50に戻る。このとき、サブCPU24は、受信パケットを第1パケット格納領域45に格納した時刻を、「受信時刻」として、受信パケットに対応付けて格納する。
一方において、第1パケット格納領域45の空き容量が受信パケットのサイズより小さい場合(S84でYES)、サブCPU24は、第1パケット格納領域45に、第3種のデータが格納されているか否かを判断する(S86)。具体的には、サブCPU24は、パケット判別テーブル46(図4参照)のプロトコル54に記録されていないパケットを、第1パケット格納領域45から検索する。検索でヒットしたパケットが存在する場合、サブCPU24は、S86でYESと判断し、S88に進む。1つの第3種のパケットのみが検索でヒットした場合、S88では、サブCPU24は、そのパケットを第1パケット格納領域45から削除する。一方、複数の第3種のパケットが検索でヒットした場合、S88では、サブCPU24は、複数の第3種のパケットのうち、受信時刻が最も古い第3種のパケットを第1パケット格納領域45から削除する。S88を終えると、S84に戻る。これにより、サブCPU24は、第3種のパケットが削除されたことによって増えた空き容量と、受信パケットのサイズと、を比較する処理を再び実行する。ここでNOと判断されると受信パケットが第1パケット格納領域45に格納され(S94)、ここでYESと判断されるとS86の処理が再び実行される。
S86でNOの場合、サブCPU24は、第1パケット格納領域45に第2種のデータが格納されているか否かを判断する(S90)。具体的には、サブCPU24は、パケット判別テーブル52の「第2種」に対応するプロトコル54に記録されているパケットを、第1パケット格納領域45から検索する。検索でヒットしたパケットが存在する場合、サブCPU24は、S90でYESと判断し、S92に進む。1つの第2種のパケットのみが検索でヒットした場合、S92では、サブCPU24は、そのパケットを第1パケット格納領域45から削除する。一方、複数の第2種のパケットが検索でヒットした場合、S92では、サブCPU24は、複数の第2種のパケットのうち、受信時刻が最も古い第2種のパケットを第1パケット格納領域45から削除する。S92を終えると、S84に戻る。これにより、サブCPU24は、第2種のパケットが削除されたことによって増えた空き容量と、受信パケットのサイズと、を比較する処理を再び実行する。ここでNOと判断されると受信パケットが第1パケット格納領域45に格納され(S94)、ここでYESと判断されるとS86の処理が再び実行される。
S90でNOの場合、第1パケット格納領域45には、第1種のデータのみが格納されていることとなる。この場合、サブCPU24は、受信パケットを第1パケット格納領域45に格納することなく、バッファ22から削除して(S96)、S82に戻る。
上述したように、メインCPU14は、非スリープ状態への移行が完了すると、図7のS21の処理を実行する。図7のS21では、メインCPU14は、第1RAM20の第1パケット格納領域45に格納されている各パケットの処理を実行する。即ち、メインCPU14は、図10のS68で格納されたパケットと、図11のS94で格納されたパケットと、を処理する。移行期間80が終了し、メインCPU14の非スリープ状態への移行が完了すると、メインCPU14は、第2RAM21のネットワーク処理プログラム格納領域47に格納されているプログラムに従って、第1パケット格納領域45に格納されているパケットを処理する。
本実施例のプリンタ10について詳しく説明した。プリンタ10のメインCPU14は、プリンタ10をDスリープ状態78に移行可能であると判断すると(図7のS24でYES)、第1RAM20に格納されている状態変数を「Dスリープ状態」に変更する(図8のS32)。サブCPU24は、状態変数が「Dスリープ状態」を示す場合(図10のS52でYES)、メインCPU14をスリープ状態に移行させるとともに、第2RAM21をセルフリフレッシュモードに移行させる。第1RAM20より大容量である第2RAM21をセルフリフレッシュモードに移行させることにより、プリンタ10の消費電力を低減させることができる。
メインCPU14のスリープ状態中及び移行期間80中は、容量の小さい第1RAM20しか利用することができないが、本実施例では、上記の図10及び図11の処理を実行することによって、メインCPU14のスリープ状態中及び移行期間80中に受信する受信パケットに対する最適な対処を行なうことができる。
メインCPU14のスリープ状態中及び移行期間80中は、容量の小さい第1RAM20しか利用することができないが、本実施例では、上記の図10及び図11の処理を実行することによって、メインCPU14のスリープ状態中及び移行期間80中に受信する受信パケットに対する最適な対処を行なうことができる。
即ち、プリンタ10のDスリープ状態78中であって、メインCPU14のスリープ状態中の場合、サブCPU24は、第2種のパケットを受信すると、メインCPU14に代理して代理応答処理を実行して第1パケット格納領域45から削除するとともに、第3種のパケットを受信すると直ちに破棄する。これにより、第1RAM20の記憶容量が圧迫されることを防止することができる。
一方、サブCPU24は、メインCPU14が処理すべき第1種のパケットを受信すると、メインCPU14をスリープ状態から非スリープ状態に移行させる。サブCPU24は、メインCPU14の移行期間80中では、新たに受信したパケットを、パケットの種類に関わらず、第1RAM20の第1パケット格納領域45に格納する。第1パケット格納領域45の空き容量が不足していると、サブCPU24は、まず、第1パケット格納領域45に第3種のパケットが格納されているか否かを判断し、格納されている第3種のパケットを削除する。第1パケット格納領域45の空き容量が新たに受信したパケットのサイズよりも大きくなると、サブCPU24は、新たに受信したパケットを第1パケット格納領域45に格納する。この構成では、重要度が最も低い第3種のパケットが第1パケット格納領域45に格納されているにも関わらず、第3種のパケットよりも重要度が高い第1種、第2種のパケットが削除されることを防止することができる。
一方、サブCPU24は、メインCPU14が処理すべき第1種のパケットを受信すると、メインCPU14をスリープ状態から非スリープ状態に移行させる。サブCPU24は、メインCPU14の移行期間80中では、新たに受信したパケットを、パケットの種類に関わらず、第1RAM20の第1パケット格納領域45に格納する。第1パケット格納領域45の空き容量が不足していると、サブCPU24は、まず、第1パケット格納領域45に第3種のパケットが格納されているか否かを判断し、格納されている第3種のパケットを削除する。第1パケット格納領域45の空き容量が新たに受信したパケットのサイズよりも大きくなると、サブCPU24は、新たに受信したパケットを第1パケット格納領域45に格納する。この構成では、重要度が最も低い第3種のパケットが第1パケット格納領域45に格納されているにも関わらず、第3種のパケットよりも重要度が高い第1種、第2種のパケットが削除されることを防止することができる。
また、第3種のパケットが格納されていない場合、又は、第3種のパケットを削除しても第1パケット格納領域45の空き容量が充分でない場合に、サブCPU24は、第2種のパケットが格納されているか否かを判断し、格納されている第2種のパケットを削除する。これにより、第1種のパケットよりも重要度が低い第2種のパケットが第1パケット格納領域45に格納されているにも関わらず、第2種のパケットよりも重要度が高い第1種のパケットが削除されることを防止することができる。さらに、第2種、第3種のパケットが格納されていない場合、又は、第2種、第3種のパケットを削除しても第1パケット格納領域45の空き容量が充分でない場合に、サブCPU24は、新たに受信したパケットを第1パケット格納領域45に格納することなく破棄する。これにより、既に第1パケット格納領域45に格納されている重要度の高い第1種のパケットが削除されることを防止することができる。
また、サブCPU24は、複数の第2種のパケット(あるいは複数の第3種のパケット)が第1RAM20に格納されている場合に、受信時刻が最も古いパケットから削除する。例えば、外部装置6のユーザが誤った操作を行って第2種のパケットがプリンタ10に送信され、その後にユーザが正しい操作を行って、新たな第2種のパケットがプリンタ10に送信される可能性がある。このような事態が発生した場合に、正しい操作に応じて送信される第2種のパケットが削除されない。
サブCPU24は、メインCPU14の移行期間80中に、サブCPU24が代理応答処理を実行する必要のある第2種のパケットを受信した場合でも、代理応答処理を実行することなく、第1RAM20に格納する。即ち、サブCPU24は、代理応答処理を実行せずに、メインCPU14を非スリープ状態に移行させるための移行処理を実行することができる。この結果、サブCPU24が代理応答処理と移行処理とを並行して実行する構成と比べると、サブCPU24は、移行処理を高速で実行することができる。これにより、移行期間80を短縮することができ、メインCPU14を非スリープ状態に迅速に移行させることができる。
また、サブCPU24は、移行期間80中に受信するパケットの種別を判断する判断処理を実行することなく、第1パケット格納領域45に格納する。即ち、サブCPU24は、判断処理を実行せずに、移行処理を実行することができる。この結果、サブCPU24が判断処理と移行処理とを並行して実行する構成と比べると、サブCPU24は、移行処理を高速で実行することができる。
また、サブCPU24は、移行期間80中に受信するパケットの種別を判断する判断処理を実行することなく、第1パケット格納領域45に格納する。即ち、サブCPU24は、判断処理を実行せずに、移行処理を実行することができる。この結果、サブCPU24が判断処理と移行処理とを並行して実行する構成と比べると、サブCPU24は、移行処理を高速で実行することができる。
なお、以上の説明から明らかなように、本実施例のプリンタ10が、本発明における通信装置に対応する。メインCPU14,サブCPU24が、それぞれ、第1処理部,第2処理部に対応し、第1RAM20が、メモリに対応する。
また、本実施例における第1種、第2種、第3種のパケット(図4参照)が、それぞれ本発明における第1種、第2種、第3種のデータに対応している。本実施例では、第1種のパケットは「TCP」に対応するパケットであり、第2種のパケットは「ARP」、「Net BIOS」、「ICMP」に対応するパケットであり、第3種のパケットは上記したプロトコルのいずれにも対応しないプロトコルに対応するパケットと説明されている。しかしながら、第1種のパケットは、「TCP」以外のプロトコルに対応するパケットであってもよく、第2種、第3種のパケットは、本実施例以外のプロトコルに対応するパケットであってもよい。本実施例における図10のS69においてサブCPU24が移行期間中処理を開始するトリガとなった第1種のパケット、即ち、S58でプリンタ10に受信され、S64で第1種のパケットと判断された第1種のパケットが、本発明の特定のデータに対応する。
(第2実施例)
上記したプリンタ10では、サブCPU24は、移行期間中処理(図11参照)において、パケットを受信した段階では、パケットの種類を判断していない。しかしながら、サブCPU24は、移行期間中処理において、受信したパケットが第3種のパケットであるか否かを判断するようにしてもよい。図12は、第2実施例のサブCPU24が実行する移行期間中処理のフローチャートを示す。図12では、図11と同様の処理には、図11と同一の符号を付している。以下では、上記した実施例と重複する説明は省略する。
上記したプリンタ10では、サブCPU24は、移行期間中処理(図11参照)において、パケットを受信した段階では、パケットの種類を判断していない。しかしながら、サブCPU24は、移行期間中処理において、受信したパケットが第3種のパケットであるか否かを判断するようにしてもよい。図12は、第2実施例のサブCPU24が実行する移行期間中処理のフローチャートを示す。図12では、図11と同様の処理には、図11と同一の符号を付している。以下では、上記した実施例と重複する説明は省略する。
サブCPU24は、S82でYESの場合、受信したパケットが第3種のパケットであるか否かを判断する(S102)。サブCPU24は、受信したパケットのプロトコルが、パケット判別テーブル52のプロトコル54に存在するか否かを判断する。S102でNOの場合、S84以下の処理を実行する。一方において、S102でYESの場合、サブCPU24は、受信した第3種のパケットを、第1RAM20の第1パケット格納領域45に格納することなく、バッファ22から削除する(S104)。
この構成によっても、上記した実施例と同様の効果を奏することができる。
また、第2実施例では、第1種及び第2種のパケットより重要度の低い第3種のパケットが移行期間80中に第1RAM20に格納されないために、重要度の低い第3種のパケットによって、第1RAM20の記憶容量が圧迫されることを防止することができる。
この構成によっても、上記した実施例と同様の効果を奏することができる。
また、第2実施例では、第1種及び第2種のパケットより重要度の低い第3種のパケットが移行期間80中に第1RAM20に格納されないために、重要度の低い第3種のパケットによって、第1RAM20の記憶容量が圧迫されることを防止することができる。
(変形例)
(1)本実施例では、サブCPU24は、移行期間中処理(図11参照)において、RAM20の第1パケット格納領域45の空き容量が不足している場合に、第1パケット格納領域45に格納されているパケットの種別を判断している(図11のS86、S90)。しかしながら、サブCPU24は、パケットを第1パケット格納領域45に格納する際にパケットの種別を判断してもよい。このとき、サブCPU24は、パケットとそのパケットの種類とを対応付けて第1パケット格納領域45に格納してもよい。あるいは、RAM20に、パケットの種類ごとに格納する領域を設けていてもよい。この場合、サブCPU24は、パケットの種類に対応する格納領域にパケットを格納してもよい。
(1)本実施例では、サブCPU24は、移行期間中処理(図11参照)において、RAM20の第1パケット格納領域45の空き容量が不足している場合に、第1パケット格納領域45に格納されているパケットの種別を判断している(図11のS86、S90)。しかしながら、サブCPU24は、パケットを第1パケット格納領域45に格納する際にパケットの種別を判断してもよい。このとき、サブCPU24は、パケットとそのパケットの種類とを対応付けて第1パケット格納領域45に格納してもよい。あるいは、RAM20に、パケットの種類ごとに格納する領域を設けていてもよい。この場合、サブCPU24は、パケットの種類に対応する格納領域にパケットを格納してもよい。
(2)本実施例では、サブCPU24は、第1パケット格納領域45にパケットを格納する際、「受信時刻」を対応付けて格納する。しかしながら、サブCPU24は、パケットと「受信時刻」とを対応付けて第1パケット格納領域45に格納しなくてもよい。例えば、第1パケット格納領域45に格納するパケットごとに、順に、「1」、「2」・・・等の受信した順序が分かる情報をパケットに対応付けて第1パケット格納領域45に格納してもよい。
(3)本実施例では、サブCPU24が第1パケット格納領域45に格納されているパケットを削除する場合(図11のS88、S90)、最も受信時刻の古いパケットを削除する。しかしながら、例えば、第2種のパケットのうち、最も重要度の低いパケットを削除してもよい。この場合、予め、第1RAM20にプロトコル毎に重要度が定義されたテーブルを格納しておいてもよい。サブCPU24は、テーブルに従って、重要度の低いパケットから削除してもよい。あるいは、サブCPU24は、格納されている全ての第3種のパケットを削除するようにしてもよい。あるいは、サブCPU24は、複数の第2種のパケットのうち、受信時刻の最も新しいパケットを削除してもよいし、ランダムに選択し、選択したパケットを削除してもよいし、サイズの最も大きなパケットを削除してもよい。
(4)本実施例では、プリンタ10は、第1RAM20と第2RAM21の2つのRAMを備えている。しかしながら、RAMは1つであってもよい。この場合、RAMは、本実施例の第1RAM20と第2RAM21の両者の機能を備えており、セルフリフレッシュモードに移行しないものであってもよい。
(5)本実施例では、サブCPU24は、メインCPU14からの特定の指示を受信すると、メインCPU14がスリープ状態から非スリープ状態への移行を完了し、かつ、第2RAM21がセルフリフレッシュモードから通常動作モードへの移行を完了したと判断する(図11,12のS80でYES)。しかしながら、サブCPU24は、メインCPU14から送信される特定の指示と、第2RAM21から送信される特定の指示と、の両方を受信すると、S80でYESと判断してもよい。あるいは、サブCPU24は、第2RAM21を通常動作モードに移行させ(図10のS70)、メインCPU14のクロック供給を開始して(図10のS74)からの時間を計測し、計測時間が所定の時間を経過した場合に、S80でYESと判断してもよい。
(6)本実施例では、プリンタ10について説明したが、本明細書に開示された技術は、プリンタ10以外の通信装置、例えば、サーバ、スキャナ、多機能機等に利用することができる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
10:プリンタ、14:メインCPU、20:RAM、24:サブCPU、28:MACコントローラ、32:エンジン制御回路、34:プリントエンジン、36:パネル制御回路、38:表示パネル、46:パケット判別テーブル
Claims (8)
- ネットワークに接続される通信装置であって、
スリープ状態と非スリープ状態との間で状態が移行し、前記非スリープ状態である場合に、前記ネットワークを介して受信するデータを処理する第1処理部と、
前記第1処理部が前記スリープ状態である場合に、前記ネットワークを介して受信するデータに対して、前記第1処理部に代理して代理応答処理を実行する第2処理部と、
メモリと、
を備え、
前記第2処理部は、
前記第1処理部が前記スリープ状態である場合において、前記第1処理部によって処理されるべき特定のデータを受信する場合に、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させる状態移行部と、
前記特定のデータを前記メモリに格納するとともに、前記第1処理部が前記スリープ状態から前記非スリープ状態に移行する移行期間中に受信するデータを前記メモリに格納する記憶制御部であって、前記移行期間中に受信する前記データは、前記第1処理部によって処理されるべき第1種のデータと、前記第2処理部が前記代理応答処理を実行可能な第2種のデータと、を含み得る、前記記憶制御部と、
を備え、
前記記憶制御部は、前記メモリの空き容量が前記移行期間中に新たに受信する対象データを格納するのに充分でない特定の場合において、前記メモリに前記第1種のデータと前記第2種のデータとが既に格納されている場合に、前記メモリから前記第2種のデータを削除して、前記対象データを前記メモリに格納する、通信装置。 - 前記記憶制御部は、前記特定の場合において、前記メモリに前記第1種のデータと複数の前記第2種のデータとが既に格納されている場合に、前記複数の前記第2種のデータのうち、最も過去に受信されたデータを削除して、前記対象データを前記メモリに格納する、請求項1に記載の通信装置。
- 前記記憶制御部は、前記移行期間中に、前記第2処理部が前記代理応答処理を実行する必要のない第3種のデータを受信する場合に、前記第3種のデータを前記メモリに格納し、
前記記憶制御部は、前記特定の場合において、前記メモリに前記第1種のデータと前記第2種のデータとのうちの少なくとも一方と、前記第3種のデータと、が既に格納されている場合に、前記メモリから前記第3種のデータを削除して、前記対象データを前記メモリに格納する、請求項1又は2に記載の通信装置。 - 前記記憶制御部は、前記特定の場合において、前記メモリに前記第1種のデータと前記第2種のデータとのうちの少なくとも一方と、複数の前記第3種のデータと、が既に格納されている場合に、前記複数の第3種のデータのうち、最も過去に受信されたデータを削除して、前記対象データを前記メモリに格納する、請求項3に記載の通信装置。
- 前記第2処理部は、
前記対象データが前記代理応答処理を実行する必要のない第3種のデータであるか否かを判断する第1判断部をさらに備え、
前記記憶制御部は、前記対象データが前記第3種のデータであると判断される場合に、前記対象データを前記メモリに格納することなく破棄する、請求項1又は2に記載の通信装置。 - 前記第2処理部は、前記対象データが前記第2種のデータである場合に、前記対象データに対して前記代理応答処理を実行せず、
前記第1処理部は、前記非スリープ状態に移行した後に、前記メモリに格納されている前記対象データを処理する、請求項1から5のいずれか一項に記載の通信装置。 - 前記第2処理部は、前記第1処理部が前記スリープ状態で維持されるスリープ期間であって、前記移行期間と異なる前記スリープ期間中に受信するデータの種別を判断し、前記移行期間中に受信するデータの種別を判断しない第2判断部をさらに備え、
前記状態移行部は、前記スリープ期間中に受信する前記データが前記第1種のデータであると判断される場合に、前記第1処理部を前記スリープ状態から前記非スリープ状態に移行させ、
前記第2処理部は、前記スリープ期間中に受信する前記データが前記第2種のデータであると判断される場合に、前記スリープ期間中に受信する前記データに対して前記代理応答処理を実行する、請求項1から6のいずれか一項に記載の通信装置。 - 前記記憶制御部は、前記スリープ期間中に受信する前記データが前記代理応答処理を実行する必要のない第3種のデータであると判断される場合に、前記スリープ期間中に受信する前記データを前記メモリに格納することなく破棄する、請求項7に記載の通信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009133831A JP2010280093A (ja) | 2009-06-03 | 2009-06-03 | 通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009133831A JP2010280093A (ja) | 2009-06-03 | 2009-06-03 | 通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010280093A true JP2010280093A (ja) | 2010-12-16 |
Family
ID=43537298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009133831A Pending JP2010280093A (ja) | 2009-06-03 | 2009-06-03 | 通信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010280093A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011160366A (ja) * | 2010-02-04 | 2011-08-18 | Brother Industries Ltd | 通信装置 |
JP2012160974A (ja) * | 2011-02-01 | 2012-08-23 | Murata Mach Ltd | 通信装置及び画像処理装置 |
WO2013073522A1 (ja) * | 2011-11-15 | 2013-05-23 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びプログラム |
JP2017156911A (ja) * | 2016-03-01 | 2017-09-07 | 京セラドキュメントソリューションズ株式会社 | 電子機器および電力制御プログラム |
JP2018089895A (ja) * | 2016-12-06 | 2018-06-14 | コニカミノルタ株式会社 | 画像形成装置およびプログラム |
JP2019123167A (ja) * | 2018-01-17 | 2019-07-25 | コニカミノルタ株式会社 | 画像形成装置 |
-
2009
- 2009-06-03 JP JP2009133831A patent/JP2010280093A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011160366A (ja) * | 2010-02-04 | 2011-08-18 | Brother Industries Ltd | 通信装置 |
JP2012160974A (ja) * | 2011-02-01 | 2012-08-23 | Murata Mach Ltd | 通信装置及び画像処理装置 |
WO2013073522A1 (ja) * | 2011-11-15 | 2013-05-23 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びプログラム |
JP2013103447A (ja) * | 2011-11-15 | 2013-05-30 | Canon Inc | 画像形成装置、画像形成装置の制御方法、及びプログラム |
US8913265B2 (en) | 2011-11-15 | 2014-12-16 | Canon Kabushiki Kaisha | Image forming apparatus, method for controlling the image forming apparatus, and program |
JP2017156911A (ja) * | 2016-03-01 | 2017-09-07 | 京セラドキュメントソリューションズ株式会社 | 電子機器および電力制御プログラム |
JP2018089895A (ja) * | 2016-12-06 | 2018-06-14 | コニカミノルタ株式会社 | 画像形成装置およびプログラム |
JP2019123167A (ja) * | 2018-01-17 | 2019-07-25 | コニカミノルタ株式会社 | 画像形成装置 |
JP7003679B2 (ja) | 2018-01-17 | 2022-01-20 | コニカミノルタ株式会社 | 画像形成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5310588B2 (ja) | 通信装置 | |
JP4720926B2 (ja) | 処理装置 | |
JP5218462B2 (ja) | 通信装置 | |
JP5008138B2 (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 | |
JP2006221381A (ja) | プロセッサシステム、該プロセッサシステムを備えた画像形成装置 | |
JP5741022B2 (ja) | 通信装置 | |
US20090282278A1 (en) | Information processing apparatus, method for controlling information processing apparatus, and computer readable medium storing instructions for performing the method | |
JP2010280093A (ja) | 通信装置 | |
US8732497B2 (en) | Data processing apparatus, method for controlling data processing apparatus, and storage medium storing program | |
JP4775448B2 (ja) | 通信装置 | |
US11209885B2 (en) | Information processing apparatus, method for controlling the same, and non-transitory computer-readable storage medium | |
JP5636677B2 (ja) | 電子機器、その省電力制御方法、およびプログラム | |
US8941853B2 (en) | Image forming apparatus, method for controlling the same, and storage medium | |
US20100128305A1 (en) | Receiver, image forming device, data reception method and program storage medium | |
JP5381392B2 (ja) | 通信装置 | |
JP2008305209A (ja) | 情報処理装置と情報処理方法とプログラムとコンピュータ読み取り可能な記録媒体 | |
JP6435868B2 (ja) | 画像形成装置、省電力時通信制御方法および省電力時通信制御プログラム | |
JP2011173378A (ja) | 印刷装置 | |
US9639138B2 (en) | Electronic device that ensures reduced unnecessary recovery | |
JP2017163194A (ja) | 画像処理装置、その制御方法、および、プログラム | |
JP2012162022A (ja) | 情報処理装置、その制御方法、および制御プログラム | |
JP4483650B2 (ja) | ネットワーク処理装置 | |
JP5493768B2 (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 | |
JP5699683B2 (ja) | 印刷データ受信装置および印刷データ受信装置制御方法 | |
JP5533735B2 (ja) | 通信装置 |