(57)【特許請求の範囲】
【請求項１】
通信ネットワークと接続され、第１の動作モードと第２の動作モードとを切り替えることができるネットワーク装置であって、
前記通信ネットワークを介したデータの入出力処理を実行するデータ入出力手段と、
前記データ入出力手段を介して入出力されるデータの処理を実行するデータ処理手段と、
前記通信ネットワークから入力されたデータを格納するための第１の記憶手段と、
前記第１の動作モードでは前記データ入出力手段、前記データ処理手段及び前記第１の記憶手段に電力を供給し、前記第２の動作モードでは前記データ入出力手段に電力を供給する一方で前記データ処理手段及び前記第１の記憶手段への電力供給を止めるよう制御する電力制御手段と、
前記ネットワーク装置が前記第２の動作モードでは処理できない特定データが前記第１の記憶手段に格納されている場合には、前記第１の動作モードから前記第２の動作モードへの切り替えを不可とし、前記特定データが前記第１の記憶手段に格納されていない場合には、前記ネットワーク装置が前記第２の動作モードで処理できる他のデータが前記第１の記憶手段に格納されている場合であっても、前記第１の動作モードから前記第２の動作モードへの切り替えを可能とするよう制御する動作モード制御手段とを有することを特徴とするネットワーク装置。
【請求項２】
前記第２の動作モードにて前記データ入出力手段が前記通信ネットワークから受信したデータを記憶する第２の記憶手段を有し、
前記電力制御手段は、前記第１の動作モード及び前記第２の動作モードで前記第２の記憶手段に電力を供給するよう制御し、
前記動作モード制御手段は、前記特定データが前記第１の記憶手段又は前記第２の記憶手段に格納されている場合には、前記第１の動作モードから前記第２の動作モードへの切り替えを不可とし、前記特定データが前記第１の記憶手段及び前記第２の記憶手段のいずれにも格納されていない場合には、前記第１の動作モードから前記第２の動作モードへの切り替えを可能とするよう制御することを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
前記データ入出力手段は、前記通信ネットワークから入力されたデータを、前記第１の動作モードにおいては前記第１の記憶手段に格納し、前記第２の動作モードにおいては前記第２の記憶手段に格納する通信部を有することを特徴とする請求項２に記載のネットワーク装置。
【請求項４】
前記動作モード制御手段は、前記データ処理手段を制御するための第１の制御部と、前記データ入出力手段を制御するための第２の制御部とを含み、
前記第１の制御部は、前記第１の動作モードから前記第２の動作モードへ移行すべき旨の指示を検知した場合に、前記第１の動作モードから前記第２の動作モードへの切り替えが可能か否かを前記第２の制御部へ問い合わせ、
前記第２の制御部は、前記第１の制御部から前記問い合わせを受信した場合に、前記特定データが前記第１の記憶手段に格納されているか否かを判定し、
前記電力制御手段は、前記特定データが前記第１の記憶手段に格納されていないと前記第２の制御部が判定した場合は前記データ処理手段及び前記第１の記憶手段への電力供給を止め、前記特定データが前記第１の記憶手段に格納されていると前記第２の制御部が判定した場合は前記データ処理手段及び前記第１の記憶手段への電力供給を止めないよう制御することを特徴とする請求項１乃至３のいずれか１項に記載のネットワーク装置。
【請求項５】
通信ネットワークと接続され、第１の動作モードと第２の動作モードとを切り替えることができるネットワーク装置の制御方法であって、
前記ネットワーク装置は、前記通信ネットワークを介したデータの入出力処理を実行するデータ入出力手段と、前記データ入出力手段を介して入出力されるデータの処理を実行するデータ処理手段と、前記通信ネットワークから入力されたデータを格納するための記憶手段と、前記第１の動作モードでは前記データ入出力手段、前記データ処理手段及び前記記憶手段に電力を供給し、前記第２の動作モードでは前記データ入出力手段に電力を供給する一方で前記データ処理手段及び前記記憶手段への電力供給を止めるよう制御する電力制御手段とを有し、
前記制御方法は、
前記ネットワーク装置が、前記第２の動作モードにおいて前記ネットワーク装置にて処理できない特定データが前記記憶手段に格納されているか否かを判定する判定ステップと、
前記ネットワーク装置が、前記特定データが前記記憶手段に格納されていると前記判定ステップにて判定された場合に、前記第１の動作モードから前記第２の動作モードへの切り替えを不可とするよう制御する第１の制御ステップと、
前記ネットワーク装置が、前記特定データが前記記憶手段に格納されていないと前記判定ステップにて判定された場合に、前記ネットワーク装置が前記第２の動作モードで処理できる他のデータが前記記憶手段に格納されている場合であっても、前記第１の動作モードから前記第２の動作モードへの切り替えを可能とするよう制御する第２の制御ステップとを備えることを特徴とするネットワーク装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機能をもつ装置においてそのネットワーク機能を実現するに際し、スリープ動作と通常動作の２つのバッファを切り替えることができるネットワーク装置、ネットワーク装置の制御方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年、機器が動作していない時（所謂、スリープ中）に消費する待機電力を削減したいという要求が強まってきている。それに伴い、スリープ中に必要な処理をするためのＣＰＵ（central processing unit）やコントローラと、通常動作に必要な処理をするメインＣＰＵとを別にして、スリープ中には後者のメインＣＰＵに電源を供給しないようにすることで、待機電力の削減を行う機器が出てきている（特許文献１）。
【０００３】
このような機器においてＣＰＵを分離する際に、外部からの入力のある処理(いわゆるＩ／Ｏ（input/output）処理)を一つのＣＰＵ（またはコントローラ）に集めるという方法がある。これによりスリープ中はＩ／Ｏ処理用のＣＰＵ(Ｉ／Ｏ ＣＰＵ) （またはコントローラ）のみが動作し、そこに何かしらの入力があった場合に、機器は通常動作に必要なメインＣＰＵを駆動させて通常状態に戻れるようになる（特許文献２）。
【０００４】
このような分離方法をとった場合、機器のメインＣＰＵには高速なものが使用され、それに付随して高速なメモリが機器に採用される場合が多い。当然のことながら消費電力が多くなるので、スリープ時には機器はメインＣＰＵとその付随したメモリごと電源供給を止めることで待機電力を落とすことができる。
【０００５】
一方で、Ｉ／Ｏ ＣＰＵにはスリープ中に必要な処理が行なえる程度のＣＰＵが使用され、それに付随して容量が少なく低速で消費電力の少ないメモリが採用される場合が多い。
【０００６】
上述のようなＣＰＵの構成を採用した機器のネットワーク処理について述べる。このような機器のネットワーク処理は比較的ＣＰＵパワーを消費し、かつ高速処理を求められる。一方で機器は、スリープ中でもネットワークからアクセスできるようにしなくてはならないため、常に動作している必要がある。
【０００７】
機器がこの条件を満たすためには、機器は、動作中はメインＣＰＵとメインＣＰＵ側のメモリとを使用してパケットの処理を行ない、スリープ中にはＩ／Ｏ ＣＰＵ側に動作を切り替えてスリープ状態に入り、特定の動作や特定の受信パケットによりＩ／Ｏ ＣＰＵ側の動作からメインＣＰＵ側の元の動作に戻れるようにする必要がある（特許文献３）。
【０００８】
この構成を実現するためには、機器は、通常、ネットワークアダプタ（ネットワークコントローラ、ＬＡＮ（local area network）コントローラ等とも呼ばれる）が受信したパケットを保持するバッファ領域を切り替え可能であることが必要である。より詳細には、機器は、通常動作時にはメインＣＰＵのメモリにパケットを格納するようにし、スリープ時にはＩ／Ｏ ＣＰＵのメモリにパケットを格納することができる必要がある。
【特許文献１】特開２０００−２６１５１５号公報
【特許文献２】特開平１１−１１００８９号公報
【特許文献３】特開２００４−３４４８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のようなスリープ動作と通常動作の２つのバッファを切り替えることができるネットワークコントローラを使用する機器が、ネットワーク処理を高速に行う一方でスリープ中でもネットワークからアクセスできなくてはならないという要件を満たしながら、スリープ動作と通常動作との切り替えをパケットを取りこぼすことなく行うことは非常に難しいという点において、上記従来技術には未だ改善の余地があった。
【００１０】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、スリープ動作と通常動作の２つのバッファを切り替える機能を有すると共に、パケットの取りこぼしをおこさないネットワーク装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
このような目的を達成するために、本発明のネットワーク装置は、通信ネットワークと接続され、第１の動作モードと第２の動作モードとを切り替えることができるネットワーク装置であって、前記通信ネットワークを介したデータの入出力処理を実行するデータ入出力手段と、前記データ入出力手段を介して入出力されるデータの処理を実行するデータ処理手段と、前記通信ネットワークから入力されたデータを格納するための第１の記憶手段と、前記第１の動作モードでは前記データ入出力手段、前記データ処理手段及び前記第１の記憶手段に電力を供給し、前記第２の動作モードでは前記データ入出力手段に電力を供給する一方で前記データ処理手段及び前記第１の記憶手段への電力供給を止めるよう制御する電力制御手段と、前記ネットワーク装置が前記第２の動作モードでは処理できない特定データが前記第１の記憶手段に格納されている場合には、前記第１の動作モードから前記第２の動作モードへの切り替えを不可とし、前記特定データが前記第１の記憶手段に格納されていない場合には、前記ネットワーク装置が前記第２の動作モードで処理できる他のデータが前記第１の記憶手段に格納されている場合であっても、前記第１の動作モードから前記第２の動作モードへの切り替えを可能とするよう制御する動作モード制御手段とを有することを特徴とする。
【００１２】
また上記目的を達成するために、本発明のネットワーク装置の制御方法は、通信ネットワークと接続され、第１の動作モードと第２の動作モードとを切り替えることができるネットワーク装置の制御方法であって、前記ネットワーク装置は、前記通信ネットワークを介したデータの入出力処理を実行するデータ入出力手段と、前記データ入出力手段を介して入出力されるデータの処理を実行するデータ処理手段と、前記通信ネットワークから入力されたデータを格納するための記憶手段と、前記第１の動作モードでは前記データ入出力手段、前記データ処理手段及び前記記憶手段に電力を供給し、前記第２の動作モードでは前記データ入出力手段に電力を供給する一方で前記データ処理手段及び前記記憶手段への電力供給を止めるよう制御する電力制御手段とを有し、前記制御方法は、前記ネットワーク装置が、前記第２の動作モードにおいて前記ネットワーク装置にて処理できない特定データが前記記憶手段に格納されているか否かを判定する判定ステップと、前記ネットワーク装置が、前記特定データが前記記憶手段に格納されていると前記判定ステップにて判定された場合に、前記第１の動作モードから前記第２の動作モードへの切り替えを不可とするよう制御する第１の制御ステップと、前記ネットワーク装置が、前記特定データが前記記憶手段に格納されていないと前記判定ステップにて判定された場合に、前記ネットワーク装置が前記第２の動作モードで処理できる他のデータが前記記憶手段に格納されている場合であっても、前記第１の動作モードから前記第２の動作モードへの切り替えを可能とするよう制御する第２の制御ステップとを備えることを特徴とする。
【００１３】
また、上記目的を達成するために、本発明のプログラムは、前記ネットワーク装置の制御方法の各ステップをコンピュータに実行させることを特徴とする。
【００１４】
また、上記目的を達成するために、本発明の記録媒体は、前記ネットワーク装置の制御方法の各ステップをコンピュータに実行させるプログラムを記録したことを特徴とする。
【００１５】
なお、特許請求の範囲の構成要素と対応する実施形態中の図中符号を（）で示した。ただし、特許請求の範囲に記載した構成要素は上記（）部の実施形態の構成要素に限定されるものではない。
【００１６】
以上の構成により、スリープ動作と通常動作の２つのバッファを切り替えられるネットワークコントローラを使用したネットワーク装置で、スリープ動作に入る際にパケットの取りこぼしをおこさない処理手順を使用して、通常動作中では高速なパケット処理が行なえ、スリープ動作中でもデータ受信に備えられ、かつ両動作を切り替え中でもパケットの取りこぼしをおこさないシステムを提供する。
【発明の効果】
【００１７】
以上説明したように本発明によれば、第２の動作モードでは電力供給が遮断される記憶手段に、ネットワーク装置が第２の動作モードでは処理できない特定データが格納されている場合には、第１の動作モードから第２の動作モードへの切り替えを不可とし、特定データが格納されていない場合には、第１の動作モードから第２の動作モードへの移行を可能とすることで、適切な場合に第１の動作モードから第２の動作モードに切り替えることができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
【００１９】
図１は、本実施形態のネットワークシステムの構成図である。本実施形態のネットワークシステムは、ネットワーク装置１０００と、ネットワーク装置１０００に接続されたネットワーク６００とを含む。ネットワーク６００は、ＬＡＮ等の周知の通信ネットワークである。ネットワーク装置１０００は、データ処理装置１００、入出力処理装置２００、及びバス５００を有し、スリープ動作と通常動作を切り替えられる。
【００２０】
バス５００は、例えばＰＣＩ（Peripheral Component Interconnect）バス等であり、データ処理装置１００、入出力処理装置２００、及びネットワーク装置１０００内の他の装置のデータ通信路である。
【００２１】
データ処理装置１００は、ＣＰＵ１０５、ＲＯＭ（read only memory）１０３ａ、ＲＡＭ（random access memory）１０３ｂ、バスコントローラ１０４等を有する。ＣＰＵ１０５は、データ処理装置１００の動作を制御する。ＲＯＭ１０３ａは、ＣＰＵ１０５で実行される各種制御プログラムや演算データが格納されており、本実施形態では、送受信されるネットワークデータのプロトコルを解析するプロトコル処理プログラム１０１と、パケットの送受信を制御するネットワークドライバ１０２等を含む。ＲＡＭ１０３ｂは、ＣＰＵ１０５等が動作するためのバッファ等の作業領域やデータを蓄積するための領域として使用される。
【００２２】
プロトコル処理プログラム１０１は、ＴＣＰ（Transmission Control Protocol）、ＵＤＰ（user datagram protocol）、ＩＰ（Internet Protocol）といったネットワークのプロトコルに合わせて送受信するデータを変換し、送受信されるデータの分割／結合を行うためのプログラムで、ＣＰＵ１０５はこれを実行することによって、ネットワーク装置１０００のアプリケーションと、ネットワークドライバ１０２との間でデータをやりとりする。
【００２３】
ネットワークドライバ１０２は、ＣＰＵ１０５によって実行され、プロトコル処理プログラム１０１により処理されたデータを後述のＬＡＮコントローラ２０３を制御して送信し、ＬＡＮコントローラ２０３から受信したデータをプロトコル処理プログラム１０１に渡すためのプログラムである。
【００２４】
バスコントローラ１０４は、データ処理装置１００と入出力処理装置２００とが接続されているバス５００を制御し、データ処理装置１００と入出力処理装置２００との間やバス５００につながるネットワーク装置１０００内の他の装置との通信が行えるようにする。
【００２５】
入出力処理装置２００は、ＣＰＵ２０６、ＲＯＭ２０２ａ、ＲＡＭ２０２ｂ、バスコントローラ２０４、電源コントローラ２０５、ＬＡＮコントローラ２０３等を有する。ＣＰＵ２０６は、入出力処理装置２００の動作を制御する。ＲＯＭ２０２ａは、ＣＰＵ２０６で実行される各種制御プログラムや演算データが格納されており、本実施形態では、パケットの送受信を制御するネットワークドライバ２０１等を含む。ＲＡＭ２０２ｂは、ＣＰＵ２０６等が動作するためのバッファ等の作業領域やデータを蓄積するための領域として使用される。
【００２６】
ネットワークドライバ２０１は、ＣＰＵ２０６によって実行され、ＬＡＮコントローラ２０３からの受信データのみを扱い、ＬＡＮコントローラ２０３から受信したデータをプロトコル処理プログラム１０１に渡すためのプログラムである。
【００２７】
バスコントローラ２０４は、データ処理装置１００と入出力処理装置２００とが接続されているバス５００を制御し、データ処理装置１００と入出力処理装置２００との間やバス５００につながるネットワーク装置１０００内の他の装置との通信が行えるようにする。
【００２８】
電源コントローラ２０５は、ネットワーク装置１０００全体の電源を制御するコントローラで、入出力処理装置２００、データ処理装置１００、バス５００に供給する電力を制御する。電源コントローラ２０５は、スリープ動作ではデータ処理装置１００、バス５００への電力供給を止める。
【００２９】
ＬＡＮコントローラ２０３は、ネットワーク６００上の信号をコントロールし、ＲＡＭ上に保持されたデータをネットワーク６００上に信号として送信し、ネットワーク６００上を流れている信号から自分自身宛のパケットを取り出す処理を行なう。ＬＡＮコントローラ２０３は、入出力処理装置２００内にあるスリープ動作用のバッファとデータ処理装置１００内にある通常動作用のバッファの、２つのバッファを切り替えられるネットワークアダプタ（ネットワークコントローラ）である。データ処理装置１００内にある通常動作用のバッファにデータを格納する場合は、ＬＡＮコントローラ２０３はＤＭＡ転送を行う。このため、ＣＰＵ１０５に負荷をかけることなく、ＬＡＮコントローラ２０３からデータ処理装置１００内にあるバッファへの転送が実現できる。
【００３０】
次に図２、３を参照し、ネットワークドライバ１０２、２０１およびＬＡＮコントローラ２０３の動作について説明する。図２は送信バッファの説明図で、図３は受信バッファの説明図である。
【００３１】
図２を参照し、まずネットワーク装置１０００の送信処理について説明する。ＣＰＵ１０５はプロトコル処理プログラム１０１を実行することにより、ネットワーク装置１０００のアプリケーションから渡された送信データをデータ変換し分割して、パケットを生成する。ＣＰＵ１０５はネットワークドライバ１０２の処理に従い、生成されたパケットをＲＡＭ１０３ｂ内の送信用のバッファ９０３−０〜９０３−ｎ（ｎ；自然数）のいずれかに格納する。
【００３２】
ここで、生成されたパケットをＲＡＭ１０３ｂ内のバッファに格納する際には、まずＣＰＵ１０５はＣＰＵ２０６にＲＡＭ２０２ｂ内の送信バッファ用のディスクリプタブロック９０１−０〜９０１−ｎの参照を依頼する。依頼を受けたＣＰＵ２０６はネットワークドライバ２０１の処理に従い、ディスクリプタブロック９０１−０〜９０１−ｎの各内部データ９０２のFlag（Flag＝ＯＦＦ（空き）／ＯＮ（データ有り））を参照して、空きを示すディスクリプタブロック９０１−ｉ（０≦ｉ≦ｎ）を検索する。
【００３３】
次いでＣＰＵ２０６はディスクリプタブロック９０１−ｉの内部データ９０２のAddress（空きのバッファ９０３−ｉのアドレス）をＣＰＵ１０５に通知する。ＣＰＵ１０５は、受信したAddressに基づいてバッファ９０３−ｉのＲＡＭ１０３ｂ内における位置を特定し、上述の生成されたパケットをバッファ９０３−ｉにコピーする。コピー完了後、ＣＰＵ１０５はコピーしたパケットのLength（データ長）とFlag（＝ＯＮ（データ有り））をＣＰＵ２０６に通知する。
【００３４】
ＣＰＵ２０６は受信したLengthとFlagとをディスクリプタブロック９０１−ｉの内部データ９０２にセットし、ＬＡＮコントローラ２０３に対して送信を指示する。
【００３５】
ＬＡＮコントローラ２０３は、送信指示を受けるとディスクリプタブロック９０１−０〜９０１−ｎの各内部データ９０２のFlagを参照して、送信パケットがある（Flag＝ＯＮ（データ有り））ことを示すディスクリプタブロック９０１−ｉ（０≦ｉ≦ｎ）を検索する。次いでＬＡＮコントローラ２０３はディスクリプタブロック９０１−ｉの内部データ９０２のAddress、Lengthに基づいて、バッファ９０３−ｉのＲＡＭ１０３ｂ内における位置を特定し、バッファ９０３−ｉにコピーされているデータ長Lengthのパケットを読み出し、そのパケットを電気信号に変換してネットワーク６００上に送信する。送信完了後、ＬＡＮコントローラ２０３はディスクリプタブロック９０１−ｉの内部データ９０２のFlagをクリアして処理を終了する。
【００３６】
ＬＡＮコントローラ２０３は、ネットワーク６００上の信号をコントロールし、ＲＡＭ上に保持されたデータをネットワーク６００上に信号として送信し、ネットワーク６００上を流れている信号から自分自身宛のパケットを取り出す処理を行なう。ＬＡＮコントローラ２０３は、入出力処理装置２００内にあるスリープ動作用のバッファとデータ処理装置１００内にある通常動作用のバッファの、２つのバッファを切り替えられるネットワークアダプタ（ネットワークコントローラ）である。データ処理装置１００内にある通常動作用のバッファにデータを格納する場合は、ＬＡＮコントローラ２０３はＤＭＡ転送を行う。このため、ＣＰＵ１０５に負荷をかけることなく、ＬＡＮコントローラ２０３からデータ処理装置１００内にあるバッファへの転送が実現できる。
【００３７】
ここで、生成されたパケットをバッファに格納する際には、まずＬＡＮコントローラ２０３は受信バッファ用のディスクリプタブロック１００１−０〜１００１−ｎの各内部データ１００２のFlag（Flag＝ＯＦＦ（空き）／ＯＮ（データ有り））を参照して、空きを示すディスクリプタブロック１００１−ｉ（０≦ｉ≦ｎ）を検索する。
【００３８】
次にＬＡＮコントローラ２０３は、ネットワーク装置１０００の現在の動作モードが通常動作かスリープ動作なのかを示すＬＡＮコントローラ２０３内の動作モードフラグ（不図示）を参照し、使用中のバッファを判定する。
【００３９】
通常動作であればノーマルバッファを使用中なので、ＬＡＮコントローラ２０３は、ディスクリプタブロック１００１−ｉの内部データ１００２のAddress1（空きのノーマルバッファ１００３−ｉのアドレス）に基づいてノーマルバッファ１００３−ｉのＲＡＭ１０３ｂ内における位置を特定し、上述の生成されたパケットをノーマルバッファ１００３−ｉにコピーする。ここで、受信したパケットをデータ処理装置１００内にあるノーマルバッファ１００３−ｉに格納する場合は、ＬＡＮコントローラ２０３が該ノーマルバッファにＤＭＡ転送を行う。このため、ＣＰＵ１０５に負荷をかけることなく、ＬＡＮコントローラ２０３からデータ処理装置１００内にあるバッファへの転送が実現できる。
【００４０】
スリープ動作であればスリープバッファを使用中なので、ＬＡＮコントローラ２０３は、ディスクリプタブロック１００１−ｉの内部データ１００２のAddress2（空きのスリープバッファ１００４−ｉのアドレス）に基づいてスリープバッファ１００４−ｉのＲＡＭ２０２ｂ内における位置を特定し、上述の生成されたパケットをスリープバッファ１００４−ｉにコピーする。また、受信したパケットを入出力処理装置２００内にあるスリープバッファ１００４−０〜１００４−ｎに格納する場合は、ＣＰＵ２０６がＬＡＮコントローラによって受信されたデータを当該スリープバッファに格納する。
【００４１】
コピー完了後、ＬＡＮコントローラ２０３はコピーしたパケットのLength（データ長）とFlag（＝ＯＮ（データ有り））とをディスクリプタブロック１００１−ｉの内部データ１００２にセットし、ネットワークドライバ２０１の処理を行うＣＰＵ２０６に受信完了を通知する。
【００４２】
次いで、ネットワークドライバ２０１の処理を行うＣＰＵ２０６は、ＬＡＮコントローラ２０３に依頼して上述のＬＡＮコントローラ２０３内の動作モードフラグを参照し、ネットワーク装置１０００の現在の動作モードが通常動作かスリープ動作なのかを判別する。
【００４３】
通常動作の場合ネットワークドライバ２０１の処理を行うＣＰＵ２０６は、ネットワークドライバ１０２の処理を行うＣＰＵ１０５に受信完了を通知する。次いでＣＰＵ１０５は、ノーマルバッファ１００３−０〜１００３−ｎ内にパケットがあるか判断し、パケットがあるノーマルバッファの情報を取得してそれらを処理する。
【００４４】
スリープ動作の場合ネットワークドライバ２０１の処理を行うＣＰＵ２０６は、受信しスリープバッファ１００４−ｉに格納したパケットが動作モードを通常動作に戻す特定のパケットであるかを判別し、特定のパケットだった場合には電源コントローラ２０５に動作モードを通常動作に戻すよう通知する。通常動作に戻す通知を受けた電源コントローラ２０５は、スリープ動作で止めていたデータ処理装置１００、バス５００への電力供給を再開する。次いでＣＰＵ１０５は、ＣＰＵ２０６にスリープバッファ１００４−０〜１００４−ｎ内にパケットがあるか判断を依頼し、パケットがあるスリープバッファの情報をＣＰＵ２０６から取得してそれらを処理する。
【００４５】
一方、受信しスリープバッファ１００４−ｉに格納したパケットが動作モードを通常動作に戻す特定のパケットでないと判断した場合、例えば、ネットワーク装置１０００がスリープ動作中かどうかを確認する内容のパケットの場合、ＣＰＵ２０６は、ネットワーク装置１０００がスリープ状態かどうかを示すパケットをＬＡＮコントローラ２０３より送出する。
【００４６】
以下では、ネットワーク装置１０００がスリープ動作に移行して、受信バッファをノーマルバッファ１００３−０〜１００３−ｎとスリープバッファ１００４−０〜１００４−ｎとの間で切り替える処理について、説明する。
【００４７】
図４、６を参照し、まず、データ処理装置１００の処理の流れについて説明する。図４はデータ処理装置１００の状態遷移図であり、図６はデータ処理装置１００の動作モード移行の処理を説明するフローチャートである。
【００４８】
初めにデータ処理装置１００のＣＰＵ１０５は、通常の動作をしている状態では，ネットワークドライバ１０２の処理に従い、通常動作モード１１０３で動作している（この場合、ＣＰＵ１０５は、ノーマルバッファ１００３−０〜１００３−ｎ内にパケットがあるか判断し、パケットがあるノーマルバッファの情報を取得してそれらを処理する）。ここでＣＰＵ１０５は、ネットワーク装置１０００のアプリケーション等によってスリープモードへの移行が指示されたことを検知すると、図６に示すネットワークドライバ１０２の処理フローを開始する。ＣＰＵ１０５は、ネットワークドライバ２０１の処理を行うＣＰＵ２０６に対し、ノーマルバッファからスリープバッファへのバッファ切替依頼を送信し（ステップ１４０１）、残処理モード１１０１に移行する（ステップ１４０２）。
【００４９】
ＣＰＵ１０５は、ネットワークドライバ２０１の処理を行うＣＰＵ２０６からバッファ切替結果を受信し（ステップ１４０３）、その結果を判断する（ステップ１４０４）。具体的には、ＬＡＮコントローラ２０３にＬＡＮ６００に送信するパケットがあるか、またはＬＡＮ６００から受信したパケットがあるかどうか等をＣＰＵ２０６が判断している。ＬＡＮコントローラ２０３に送受信するパケットがある場合は、当該パケットが、スリープ状態では当該パケットに関連した処理をすることが不可能かどうかを判断する（例えば印刷データのパケット、後述のスリープ中止を示すパケット等を判断する）。スリープ状態で処理することが不可能なパケットである場合（例えば印刷データのパケット、後述のスリープ中止を示すパケット等の場合）は、切替不可と判断し、ＣＰＵ１０５に切替不可を通知する。切替不可であれば（ステップ１４０４→１４１７）ＣＰＵ１０５はスリープ中止処理を行ない（ステップ１４１７）、通常動作モード１１０３に移行して元の動作に戻る（ステップ１４１８）。一方、ＬＡＮコントローラ２０３に送受信するパケットがない場合や、スリープ状態で当該パケットに関連した処理をすることが可能であれば、（例えば、ネットワーク装置１０００がスリープ状態かどうかを問合せるパケット、そのパケットに応答して当該装置がスリープ状態であることを通知するパケット）ＣＰＵ２０６は切替可能と判断し、ＣＰＵ１０５に切替可能を通知する。切替可能であれば（ステップ１４０４→１４０５）ＣＰＵ１０５はスリープ準備中モード１１０２に移行し（ステップ１４０５）、データ処理装置１００内の他のモジュールのスリープ処理が完了するのを待つ（ステップ１４０６）。ＣＰＵ１０５が、このように制御することで、通常動作からスリープ動作に移行する際に、パケットの取りこぼしを確実に防止できる。
【００５０】
データ処理装置１００内の他のモジュールすべてのスリープ処理が完了すると、ＣＰＵ１０５はスリープ準備完了モード１１０５に移行し（ステップ１４０７）、スリープ準備完了通知をネットワークドライバ２０１の処理を行うＣＰＵ２０６に送信する（ステップ１４０８）。ＣＰＵ１０５は、そのまま電源ＯＦＦかスリープ中止の通知が来るのを待つ（ステップ１４０９のループ処理）。
【００５１】
通常はここでＣＰＵ２０６から指示を受けた電源コントローラ２０５は、データ処理装置１００に電源を供給しなくなるので、ＣＰＵ１０５はステップ１４０９→エンドと処理を進め、データ処理装置１００の処理を終了する（不図示）。即ち、データ処理装置１００が電源ＯＦＦされネットワーク装置１０００はスリープ動作に入る。
【００５２】
一方、後述のステップ１６０７によりネットワークドライバ２０１の処理を行うＣＰＵ２０６からスリープ中止通知が来た場合（例えば、ＬＡＮコントローラ２０３が、スリープ状態では受信したパケットに関連した処理をすることが不可能である場合）（ステップ１４０９→１４１０)、ＣＰＵ１０５は復帰待ちモード１１０７に移行し、ＣＰＵ２０６からの切替完了通知を待つ（ステップ１４１１)。ＣＰＵ１０５は切替完了通知を受信すると復帰中モード１１０６に移行する（ステップ１４１２）。
【００５３】
次いでＣＰＵ１０５は、ＣＰＵ２０６にスリープバッファ１００４−０〜１００４−ｎ内にパケットがあるか判断を依頼し、パケットがあるスリープバッファの情報をＣＰＵ２０６から取得してそれらを処理する（ステップ１４１３、１４１４）。ＣＰＵ１０５はスリープバッファの残パケットの処理が完了すると、復帰完了通知をネットワークドライバ２０１の処理を行うＣＰＵ２０６に送信し（ステップ１４１５）、通常動作モード１１０３に移行して元の動作に戻る（ステップ１４１６）。ＣＰＵ１０５が、このように制御することで、スリープ動作から通常動作に移行する際に、パケットの取りこぼしを確実に防止できる。
【００５４】
一方、図４を参照すると、ネットワーク装置１０００がスリープ動作にある場合に、電源コントローラ２０５によりデータ処理装置１００に電源が供給されると、ＣＰＵ１０５は電源ＯＮを検知して起動モード１１０４に移行し、データ処理装置１００内の初期化処理を行う。次いでＣＰＵ１０５は、ＣＰＵ２０６にスリープバッファ１００４−０〜１００４−ｎ内にパケットがあるか判断を依頼し、パケットがある場合、ＣＰＵ１０５は復帰中モード１１０６に移行する。ＣＰＵ１０５が、このように制御することで、スリープ動作から通常動作に移行する際に、パケットの取りこぼしを確実に防止できる。スリープバッファ１００４−０〜１００４−ｎ内にパケットが無い場合、ＣＰＵ１０５は通常動作モード１１０３に移行して元の動作に戻る。
【００５５】
図５、７及び８を参照し、次に入出力処理装置２００の処理の流れについて説明する。図５は入出力処理装置２００の状態遷移図であり、図７、８は入出力処理装置２００の動作モード移行の処理を説明するフローチャートである。
【００５６】
入出力処理装置２００のネットワークドライバ２０１の処理を行うＣＰＵ２０６の処理は、図７に示すＬＡＮコントローラ２０３からの割り込みをきっかけに動く処理と、図８に示すデータ処理装置１００のネットワークドライバ１０２の処理を行うＣＰＵ１０５からの通知の受信をきっかけに動く処理とに、大きく分かれている。
【００５７】
ＣＰＵ２０６の動作のきっかけは、前述したデータ処理装置１００の処理のステップ１４０１において送信されるバッファ切替依頼の受信である。この時点でＣＰＵ２０６の動作モードはデータ処理装置１００と同じく通常動作モード１２０３である。
【００５８】
ＣＰＵ２０６はまずステップ１６０１においてメッセージを受信し、メッセージがバッファ切替依頼であると判断する（ステップ１６０２）。この場合ＣＰＵ２０６は、ステップ１６０３において、ＬＡＮコントローラ２０３に受信バッファとしてスリープバッファを使用中とする設定変更を指示し、指示を受けたＬＡＮコントローラ２０３は上述のＬＡＮコントローラ２０３内の動作モードフラグをスリープ動作に設定し、スリープバッファを受信バッファとする設定に切り替える。
【００５９】
ＬＡＮコントローラ２０３内の使用中受信バッファの設定切替が完了すると、ＬＡＮコントローラ２０３からネットワークドライバ２０１の処理を行うＣＰＵ２０６に対してバッファ切替割り込みが送信され、ＣＰＵ２０６はステップ１５０１の割り込み処理に移る。ＣＰＵ２０６は最初は通常動作モードで動作しているので（ステップ１５０２→１５０３）、残処理モード１２０１に移行する（ステップ１５０３）。ＣＰＵ２０６が、このように制御することで、通常動作からスリープ動作に移行する際に、パケットの取りこぼしを確実に防止できる。
【００６０】
次いでＣＰＵ２０６は、ＣＰＵ１０５にノーマルバッファ１００３−０〜１００３−ｎ内に自機（ネットワーク装置１０００）宛の受信パケットがあるか等の判断を依頼し、自機宛の受信パケットの有無情報をＣＰＵ１０５から取得して判定する（ステップ１５０４→１５０５）。もし自機宛パケットがノーマルバッファ内に存在した場合には、ＣＰＵ２０６はスリープ処理を中止するために切替不可通知をＣＰＵ１０５へ送信し（ステップ１５０９）、通常動作モード１２０３に移行して割り込み処理を終了する（ステップ１５１０）。一方自機宛パケットがノーマルバッファ内に存在しなかった場合（ステップ１５０５→１５０６→１５０７）には、ＣＰＵ２０６はスリープ準備中モード１２０２に移行し（ステップ１５０７）、切替完了通知をＣＰＵ１０５へ送信する（ステップ１５０８）。ＣＰＵ２０６が、このように制御することで、通常動作からスリープ動作に移行する際に、パケットの取りこぼしを確実に防止できる。
【００６１】
ステップ１５０５において、特定のパケットは、スリープ状態では当該特定パケットに関連した処理することが不可能なパケット（例えば印刷データのパケット、後述のスリープ中止を示すパケット等の場合）を意味する。スリープ状態で処理することが不可能なパケットである場合は、切替不可と判断し、ステップ１５０９に移行する。一方、スリープ状態で当該特定パケットに関連した処理をすることが可能なパケット（例えば、ネットワーク装置１０００がスリープ状態かどうかを問合せる受信パケット、そのパケットに応答して当該装置がスリープ状態であることを通知する送信パケット）である場合は、ステップ１６０１に移行する。これによって、スリープ状態で当該特定パケットに関連した処理をすることが不可能なパケットを受信した時のみ、スリープ状態から通常動作に移行するのでネットワーク装置１０００の消費電力は最小限に抑制される。
【００６２】
続いてＣＰＵ２０６は、ネットワークドライバ１０２の処理を行うＣＰＵ１０５から送信されるスリープ準備完了通知を受信し（ステップ１６０１→１６０２→１６０４）、スリープ準備完了モード１２０５に移行する（ステップ１６０５）。そしてＣＰＵ２０６は、ディスクリプタブロック１００１−０〜１００１−ｎの各内部データ１００２のFlag（Flag＝ＯＦＦ（空き）／ＯＮ（データ有り））を参照して、スリープバッファに切り替わってから自機（入出力処理装置２００）宛パケットを受信したかを判別する（ステップ１６０６）。
【００６３】
スリープバッファに自機宛の特定のパケット（例えば、スリープ状態では当該パケットに関連した処理をすることが不可能かどうかを判断するパケット）がなかった場合には（１６０６→１６１０）、ＣＰＵ２０６は電源コントローラ２０５に対して電源制御を依頼してデータ処理装置１００、バス５００への電力供給を止める（ステップ１６１０）。そしてＣＰＵ２０６は、スリープモード１２０４に移行して、通知受信処理を終了する（ステップ１６１１）。
【００６４】
一方、スリープバッファに自機宛の特定のパケット（例えば、スリープ状態では当該パケットに関連した処理をすることが不可能かどうかを判断するパケット）があった場合には（１６０６→１６０７）、ＣＰＵ２０６はスリープ中止通知をネットワークドライバ１０２の処理を行うＣＰＵ１０５に送信する（ステップ１６０７）。そしてＣＰＵ２０６は、復帰待ちモード１２０７に移行した後（ステップ１６０８）、ＬＡＮコントローラ２０３に受信バッファとしてノーマルバッファを使用中とする設定変更を指示し、指示を受けたＬＡＮコントローラ２０３は上述のＬＡＮコントローラ２０３内の動作モードフラグを通常動作に設定し、ノーマルバッファを受信バッファとする元の設定に切り替えて、通知受信処理を終了する（ステップ１６０９）。バッファの切り替えにおいて、ＣＰＵ１０５は、ステップ１４１３に示すスリープバッファパケット処理を実行する。ＣＰＵ１０５が、このように制御することで、スリープ動作から通常動作に移行する際に、パケットの取りこぼしを確実に防止できる。
【００６５】
また、ここでは、自機宛の特定のパケットかどうかを判断する例について述べたが、これに限らない。即ち、単に自機宛のパケットがあるかどうかを判断、自記宛のパケットがある場合にはステップ１６０７に移行し、ない場合にはステップ１６１０に移行するようにしてもよい。これによって、入出力装置２００の構成が簡単化できる。
【００６６】
バッファを元に戻すＬＡＮコントローラ２０３内の使用中受信バッファの設定切替が完了すると、ＬＡＮコントローラ２０３からネットワークドライバ２０１の処理を行うＣＰＵ２０６に対してバッファ切替割り込みが送信される。ＣＰＵ２０６はそのバッファ切替割り込みを受信すると（ステップ１５０１）、復帰待ちモード１２０７から復帰中モード１２０６に移行した上で（ステップ１５１１）、切替完了通知をＣＰＵ１０５へ送信する（ステップ１５１２）。
【００６７】
その後復帰完了通知がネットワークドライバ１０２の処理を行うＣＰＵ１０５から送信されるので、ＣＰＵ２０６はその復帰完了通知を受信し（ステップ１６０１→１６０２→１６０４→１６１２）、通常動作モード１２０３に移行して通常の動作に戻る（ステップ１６１３）。
【００６８】
一方、図５を参照すると、ネットワーク装置１０００がスリープ動作にある場合に、即ちＣＰＵ２０６がスリープモード１２０４にある場合に、「内部のタイマーの起動イベント、ユーザによる特定のスイッチの押下によるイベント、特定のパケットの着信、ＦＡＸの着呼等スリープ状態では当該特定パケットに関連した処理することが不可能なパケット」（以下、特定のパケット等、と呼ぶ）を、ＬＡＮコントローラ２０３が検知すると、ＬＡＮコントローラ２０３は特定のパケット等を検知した旨をＣＰＵ２０６に通知する。ＣＰＵ２０６は、特定のパケット等を検知した通知を受けると、電源コントローラ２０５に動作モードを通常動作に戻すよう通知する。通常動作に戻す通知を受けた電源コントローラ２０５は、スリープ動作で止めていたデータ処理装置１００、バス５００への電力供給を再開する。
【００６９】
ここで特定のパケット等が自機宛パケットであった場合には、ＣＰＵ２０６は、ＬＡＮコントローラ２０３に受信バッファとしてノーマルバッファを使用中とする設定変更を指示し、指示を受けたＬＡＮコントローラ２０３は、上述のＬＡＮコントローラ２０３内の動作モードフラグを通常動作に設定し、ノーマルバッファを受信バッファとする元の設定に切り替える。そしてＣＰＵ２０６は、復帰中モード１２０６に移行する。特定のパケット等が自機宛パケット以外のイベントであった場合には、ＣＰＵ２０６は、通常動作モード１２０３に移行して通常の動作に戻る。
【００７０】
他の実施形態 
以上述べた実施形態の他に次の形態を実施できる。  
１）前述した実施形態の機能を実現するように各種のデバイスを動作させるように、それら各種デバイスと接続された装置あるいはシステム内のコンピュータに、上記記実施形態機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って、上記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。  
【００７１】
２）またこの場合、上記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えば係るプログラムコードを格納した記録媒体は本発明を構成する。  
【００７２】
３）係るプログラムコードを格納する記録媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ（compact disc [disk]）−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。  
【００７３】
４）またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にも、係るプログラムコードは本発明の実施形態に含まれることは言うまでもない。  
【００７４】
５）さらに供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。  
【００７５】
６）上述の実施形態は本発明の例示のために説明したが、上述の実施形態の他にも変形が可能である。その変形が特許請求の範囲で述べられている本発明の技術思想に基づく限り、その変形は本発明の技術的範囲内となる。
【００７６】
実施形態の効果 
以上説明したように本発明を適用できる実施形態によれば、ネットワーク装置は、通信ネットワークと接続され、その通信ネットワークからの受信データの入力を受け付ける第１の動作（通常動作）と第２の動作（スリープ動作）とを切り替えることができるネットワーク装置であって、上記第１の動作において動作するデータ処理部（１００）であって、入力された上記受信データを格納するための第１の記憶手段（１００３−０〜１００３−ｎ）と、上記データ処理部を制御し、上記受信データを変換処理するための第１の制御手段（１０５、１０１、１０２）とを有するデータ処理部と、上記第１の動作及び上記第２の動作の両方において動作するデータ入力処理部（２００）であって、入力された上記受信データを格納するための第２の記憶手段（１００４−０〜１００４−ｎ）と、上記データ入力処理手段を制御するための第２の制御手段（２０６、２０１）と、上記通信ネットワークから上記受信データを受信し、その受信した受信データを、上記第１の動作においては上記第１の記憶手段に格納し、上記第１の動作における上記第２の動作への移行の際又は上記第２の動作においては上記第２の記憶手段に格納する通信手段（２０３）とを有するデータ入力処理部とを備え、上記第２の動作への移行の際に、上記第１の記憶手段又は上記第２の記憶手段に上記受信データが格納されている場合には、上記第１の制御手段及び上記第２の制御手段共に上記第２の動作への移行を中止し（残処理モード１１０１→通常動作モード１１０３、残処理モード１２０１→通常動作モード１２０３、スリープ準備完了モード１１０５→復帰待ちモード１１０７、スリープ準備完了モード１２０５→復帰待ちモード１２０７）、上記第１の制御手段は上記第１の記憶手段又は上記第２の記憶手段に格納されている上記受信データの変換処理を行う（ステップ１４１８、ステップ１４１３と１４１４のループ処理）ことを特徴とする。
【００７７】
また、ネットワーク装置の制御方法は、通信ネットワークと接続され、その通信ネットワークからの受信データの入力を受け付ける第１の動作と第２の動作とを切り替えることができるネットワーク装置の制御方法であって、上記ネットワーク装置は、上記第１の動作において動作するデータ処理部であって、入力された上記受信データを格納するための第１の記憶手段と、上記データ処理手段を制御し、上記受信データを変換処理するための第１の制御手段とを有するデータ処理部と、上記第１の動作及び上記第２の動作の両方において動作するデータ入力処理部であって、入力された上記受信データを格納するための第２の記憶手段と、上記データ入力処理部を制御するための第２の制御手段と、上記通信ネットワークから上記受信データを受信し、その受信した受信データを、上記第１の動作においては上記第１の記憶手段に格納し、上記第１の動作における上記第２の動作への移行の際又は上記第２の動作においては上記第２の記憶手段に格納する通信手段とを有するデータ入力処理部とを含み、上記制御方法は、上記第１の制御手段が、上記第１の動作における上記第２の動作への移行の指示を検知し、上記第２の動作への移行を開始し、上記第２の制御手段に上記第２の動作への移行の指示を送信する第１の移行開始ステップと（ステップ１４０１、１４０２）、上記第２の制御手段が、上記指示ステップにおける上記指示を受信し、上記第２の動作への移行を開始する第２の移行開始ステップと（ステップ１６０１→１６０３）、上記第２の制御手段が、上記第２の動作への移行の際に、上記第１の記憶手段又は上記第２の記憶手段に上記受信データが格納されているか否かを判定する判定ステップと（ステップ１５０４→１５０６、ステップ１６０６）、上記第２の制御手段が、上記判定ステップにおいて、上記第１の記憶手段又は上記第２の記憶手段に上記受信データが格納されていると判定した場合に、上記第１の制御手段に上記第２の動作への移行中止を通知する通知ステップと（ステップ１５０９、１６０７→１６０８）、上記第２の制御手段が、上記判定ステップにおいて、上記第１の記憶手段又は上記第２の記憶手段に上記受信データが格納されていると判定した場合に、上記第２の動作への移行を中止する第１の中止ステップと（ステップ１５１０、１５１１）、上記第１の制御手段が、上記通知ステップにおいて通知された上記第２の動作への移行中止を受信する受信ステップと（ステップ１４０４→１４１７、ステップ１４０９→１４１０）、上記第１の制御手段が、上記受信ステップにおいて上記通知を受信した場合に、上記第２の動作への移行を中止する第２の中止ステップと（ステップ１４１７、１４１２）、上記第１の制御手段が、上記第２の中止ステップにおける上記第２の動作への移行中止に応じて、上記第１の記憶手段に格納されている上記受信データの変換処理を行い、又は上記第２の記憶手段に格納されている上記受信データの変換処理を行う格納データ処理ステップ（ステップ１４１８、ステップ１４１３→１４１４）とを備えることを特徴とする。
【００７８】
また、プログラムは、上記ネットワーク装置の制御方法の各ステップをコンピュータに実行させることを特徴とする。
【００７９】
また、記録媒体は、上記ネットワーク装置の制御方法の各ステップをコンピュータに実行させるプログラムを記録したことを特徴とする。
【００８０】
以上の構成により、スリープ動作と通常動作の２つのバッファを切り替えられるネットワークコントローラを使用したネットワーク装置で、スリープ動作に入る際にパケットの取りこぼしをおこさない処理手順を使用して、通常動作中では高速なパケット処理が行なえ、スリープ動作中でもデータ受信に備えられ、かつ両動作を切り替え中でもパケットの取りこぼしをおこさないシステムを提供する。
【図面の簡単な説明】
【００８１】
【図１】本発明を適用できる実施形態のネットワークシステムの構成図である。
【図２】本発明を適用できる実施形態の送信バッファの説明図である。
【図３】本発明を適用できる実施形態の受信バッファの説明図である。
【図４】本発明を適用できる実施形態のデータ処理装置の状態遷移図である。
【図５】本発明を適用できる実施形態の入出力処理装置の状態遷移図である。
【図６】本発明を適用できる実施形態の、データ処理装置の動作モード移行の処理を説明するフローチャートである。
【図７】本発明を適用できる実施形態の、入出力処理装置の動作モード移行の処理を説明するフローチャートである。
【図８】本発明を適用できる実施形態の、入出力処理装置の動作モード移行の処理を説明するフローチャートである。
【符号の説明】
【００８２】
１０００  ネットワーク装置
１００  データ処理装置
１０１  プロトコル処理プログラム
１０２  ネットワークドライバ
１０３ａ、２０２ａ  ＲＯＭ
１０３ｂ、２０２ｂ  ＲＡＭ
１０４  バスコントローラ
１０５、２０６  ＣＰＵ
２００  入出力処理装置
２０１  ネットワークドライバ
２０３  ＬＡＮコントローラ
２０４  バスコントローラ
２０５  電源コントローラ
５００  バス
６００  ネットワーク
１００１−０〜１００１−ｎ  受信バッファ用のディスクリプタブロック
１００２内部データ  
１００３−０〜１００３−ｎ  受信用のノーマルバッファ
１００４−０〜１００４−ｎ  受信用のスリープバッファ
【図１】
0004708818.tif 000002
【図２】
0004708818.tif 000003
【図３】
0004708818.tif 000004
【図４】
0004708818.tif 000005
【図５】
0004708818.tif 000006
【図６】
0004708818.tif 000007
【図７】
0004708818.tif 000008
【図８】
0004708818.tif 000009