(57)【要約】【課題】アクセス管理装置のような専用の装置を設けることなく、容易にリモートウェイクアップを実現することが可能なネットワークコントローラを実現する。【解決手段】ＰＣ１００に設けられたネットワークコントローラ１１８は、ＰＣ１００がスリープ状態の期間中、各パケットを第１データおよび第２データと比較する。第１データは、ネットワークコントローラ１１８宛のＡＲＰ要求パケットのデータパターンを示す。第２データは、ネットワークコントローラ１１８宛のウェイクアップパケットのデータパターンを示す。到来したパケットが第１データと一致した時、ネットワークコントローラ１１８は、送信データレジスタに格納されている送信データをＡＲＰ応答パケットとしてＬＡＮ上に送出する。また、到来したパケットが第２データと一致した時、ネットワークコントローラ１１８はウェイクアップ信号を出力する。【選択図】      図３
2008301077.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置内に設けられ、ネットワークとの通信を実行するネットワークコントローラであって、
前記情報処理装置のネットワークアドレスを含むアドレスリゾルーションプロトコル要求パケットのデータパターンを示す第１データと、前記情報処理装置をウェイクアップさせるためのウェイクアップパケットのデータパターンを示す第２データとを格納するデータレジスタと、
前記情報処理装置の物理アドレスを含むアドレスリゾルーションプロトコル応答パケットのデータパターンを示す送信データを格納する送信データレジスタと、
前記情報処理装置がスリープ状態の期間中、前記ネットワークを介して到来したパケットのデータパターンを前記第１データおよび第２データと比較する比較部と、
前記到来したパケットのデータパターンが前記第１データに一致する場合、前記送信データレジスタに格納された送信データに従って、前記アドレスリゾルーションプロトコル応答パケットを前記ネットワーク上に送出する送信部と、
前記到来したパケットのデータパターンが前記第２データに一致する場合、前記情報処理装置にウェイクアップを指示するためのウェイクアップ信号を出力するウェイクアップ信号出力部とを具備することを特徴とするネットワークコントローラ。
【請求項２】
前記第１データは、前記ネットワークに接続されたルータから前記情報処理装置に対して送出されるアドレスリゾルーションプロトコル要求パケットのデータパターンを示し、
前記送信データは、前記ルータからの前記アドレスリゾルーションプロトコル要求パケットに応答して前記ルータに送出すべきアドレスリゾルーションプロトコル応答パケットのデータパターンを示すことを特徴とする請求項１記載のネットワークコントローラ。
【請求項３】
前記第１データの中で前記到来したパケットとのマッチング対象から除外すべきデータ部を指定するマスクデータを格納するマスクレジスタをさらに具備し、
前記比較部は、前記第１データの中で、前記マスクデータによって指定されたデータ部以外の他のデータ部が、前記到来したパケットのデータパターンに一致するか否かを判定することを特徴とする請求項１または請求項２のいずれか１項に記載のネットワークコントローラ。
【請求項４】
ネットワークコントローラによってネットワークとの通信を実行する情報処理装置であって、
前記情報処理装置がスリープ状態に移行する前に、前記情報処理装置のネットワークアドレスを含むアドレスリゾルーションプロトコル要求パケットのデータパターンを示す第１データ、および前記情報処理装置をウェイクアップさせるためのウェイクアップパケットのデータパターンを示す第２データを、前記ネットワークコントローラ内に設けられたデータレジスタにセットする処理と、前記ネットワークコントローラの物理アドレスを含むアドレスリゾルーションプロトコル応答パケットのデータパターンを示す送信データを前記ネットワークコントローラ内に設けられた送信データレジスタにセットする処理と、前記ネットワークコントローラを前記ウェイクアップパケットの到来を監視するスリープモードに設定する処理とを実行するプロセッサと、
前記ネットワークコントローラ内に設けられ、前記情報処理装置がスリープ状態の期間中、前記ネットワークを介して到来したパケットのデータパターンを前記第１データおよび第２データと比較する比較部と、
前記ネットワークコントローラ内に設けられ、前記到来したパケットのデータパターンが前記第１データに一致する場合、前記送信データレジスタに格納された送信データに従って、前記アドレスリゾルーションプロトコル応答パケットを前記ネットワーク上に送出する送信部と、
前記ネットワークコントローラ内に設けられ、前記到来したパケットのデータパターンが前記第２データに一致する場合、前記情報処理装置にウェイクアップを指示するためのウェイクアップ信号を出力するウェイクアップ信号出力部とを具備することを特徴とする情報処理装置。
【請求項５】
前記第１データは、前記ネットワークに接続されたルータから前記情報処理装置に対して送出されるアドレスリゾルーションプロトコル要求パケットのデータパターンを示し、
前記送信データは、前記ルータからの前記アドレスリゾルーションプロトコル要求パケットに応答して前記ルータに送出すべきアドレスリゾルーションプロトコル応答パケットのデータパターンを示すことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記プロセッサは、前記情報処理装置がスリープ状態に移行する前に、前記第１データの中で前記到来したパケットとのマッチング対象から除外すべきデータ部を指定するマスクデータを前記ネットワークコントローラ内のマスクレジスタにセットする処理をさらに実行し、
前記比較部は、前記第１データの中で、前記マスクデータによって指定されたデータ部以外の他のデータ部が、前記到来したパケットのデータパターンに一致するか否かを判定することを特徴とする請求項４または請求項５のいずれか１項に記載の情報処理装置。
【請求項７】
情報処理装置をウェイクアップするためのリモートウェイクアップ制御方法であって、
前記情報処理装置がスリープ状態に移行する前に、前記情報処理装置のネットワークアドレスを含むアドレスリゾルーションプロトコル要求パケットのデータパターンを示す第１データ、および前記情報処理装置をウェイクアップさせるためのウェイクアップパケットのデータパターンを示す第２データを、前記情報処理装置内に設けられたネットワークコントローラ内のデータレジスタにセットする処理と、前記情報処理装置の物理アドレスを含むアドレスリゾルーションプロトコル応答パケットのデータパターンを示す送信データを前記ネットワークコントローラ内の送信データレジスタにセットする処理と、前記ネットワークコントローラを、前記ウェイクアップパケットの到来を監視するスリープモードに設定する処理とを実行するステップと、
前記情報処理装置がスリープ状態の期間中、ネットワークを介して到来したパケットのデータパターンを前記第１データおよび第２データと比較する比較処理を、前記ネットワークコントローラによって実行するステップと、
前記到来したパケットのデータパターンが前記第１データに一致する場合、前記送信データレジスタに格納された送信データに従って、前記アドレスリゾルーションプロトコル応答パケットを前記ネットワーク上に送出する処理を、前記ネットワークコントローラによって実行するステップと、
前記到来したパケットのデータパターンが前記第２データに一致する場合、前記情報処理装置にウェイクアップを指示するためのウェイクアップ信号を出力するウェイクアップ信号出力処理を、前記ネットワークコントローラによって実行するステップとを具備することを特徴とするリモートウェイクアップ制御方法。
【請求項８】
前記第１データは、前記ネットワークに接続されたルータから前記情報処理装置に対して送出されるアドレスリゾルーションプロトコル要求パケットのデータパターンを示し、
前記送信データは、前記ルータからの前記アドレスリゾルーションプロトコル要求パケットに応答して前記ルータに送出すべきアドレスリゾルーションプロトコル応答パケットのデータパターンを示すことを特徴とする請求項７記載のリモートウェイクアップ制御方法。
【請求項９】
前記情報処理装置がスリープ状態に移行する前に、前記第１データの中で前記到来したパケットとのマッチング対象から除外すべきデータ部を指定するマスクデータを前記ネットワークコントローラ内のマスクレジスタにセットする処理を実行するステップをさらに具備し、
前記比較処理は、前記第１データの中で、前記マスクデータによって指定されたデータ部以外の他のデータ部が、前記到来したパケットのデータパターンに一致するか否かを判定する処理を含むことを特徴とする請求項７または請求項８のいずれか１項に記載のリモートウェイクアップ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパーソナルコンピュータのような情報処理装置をウェイクアップするための機能を有するネットワークコントローラ、およびこのネットワークコントローラを備えた情報処理装置に関する。
【背景技術】
【０００２】
一般に、パーソナルコンピュータのような情報処理装置を外部から遠隔的にウェイクアップするための技術として、Ｗａｋｅ  ｏｎ  Ｌａｎ（ＷＯＬ）が知られている。
【０００３】
Ｗａｋｅ  ｏｎ  Ｌａｎ（ＷＯＬ）は、特定のデータパターンを含むウェイクアップパケットを、ＬＡＮを介して情報処理装置に送出することによって、当該情報処理装置をウェイクアップする技術である。
【０００４】
情報処理装置がスリープ状態の期間中、情報処理装置内のネットワークコントローラは、ＬＡＮを介して到来するパケットを監視して当該パケットが特定のデータパターンを含むウェイクアップパケットであるか否かを判定する。当該パケットがウェイクアップパケットである時、ネットワークコントローラは、情報処理装置をウェイクアップさせる。
【０００５】
通常、TCP/IPネットワークのようなネットワークにおいては、ネットワークはルータによって複数のサブネットに分割されている。このため、あるサブネット（Ａ）に接続されているノード（Ａ）を、別のサブネット（Ｂ）に接続されているノード（Ｂ）からウェイクアップさせるためには、サブネット（Ａ）とサブネット（Ｂ）との間を接続するルータを介して、ノード（Ｂ）からのウェイクアップパケットをノード（Ａ）に転送することが必要となる。
【０００６】
この場合、ウェイクアップパケットをノード（Ａ）に正常に転送することができない場合がある。
【０００７】
すなわち、ルータは、受信したパケット内のネットワークアドレス（ＩＰアドレス）に対応する物理アドレス（ＭＡＣアドレス）が自身のデータベースに存在しない場合、受信したパケットによって指定されるノードの物理アドレス（ＭＡＣアドレス）を調査するために、アドレスリゾルーションプロトコル要求パケット（ＡＲＰ要求パケット）をネットワーク上にブロードキャストする。
【０００８】
しかし、ノード（Ａ）はスリープ状態であるため、このＡＲＰ要求パケットに応答することが出来ない。このため、ルータは、ノード（Ａ）の物理アドレス（ＭＡＣアドレス）を知ることができず、ノード（Ｂ）から受信したウェイクアップパケットをノード（Ａ）に送出することができない。よって、ノード（Ａ）のウェイクアップは失敗することとなる。
【０００９】
この解決策として、特許文献１には、外部ネットワークから受信した所定のパケットに応答して、端末を起動するための起動要求パケットを端末に送出するという機能を有するアクセス管理装置が開示されている。このアクセス管理装置は、ＴＣＰまたはＵＤＰのポート番号とＭＡＣアドレスとを対応付けたデータベースを有している。ＬＡＮを介して端末に接続されている。外部ネットワークからパケットを受信すると、アクセス管理装置は、その受信パケットの宛先ポート番号に対応するＭＡＣアドレスをデータベースから検出する。そして、アクセス管理装置は、検出されたＭＡＣアドレスを有する端末を起動するための起動要求パケットを生成し、その起動要求パケットをＬＡＮ上に出力する。
【特許文献１】特開２００６−８６７０３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、特許文献１の技術では、専用のアクセス管理装置を起動対象の端末と同一のＬＡＮ上に設置することが必要となり、これによりコストアップを招くことになる。
【００１１】
したがって、アクセス管理装置のような専用の装置を設けることなく、容易にリモートウェイクアップを実現することが可能な新たな機能を実現することが必要である。
【００１２】
本発明は上述の事情を考慮してなされたもので、アクセス管理装置のような専用の装置を設けることなく、容易にリモートウェイクアップを実現することが可能なネットワークコントローラ、情報処理装置およびリモートウェイクアップ制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、情報処理装置内に設けられ、ネットワークとの通信を実行するネットワークコントローラであって、前記情報処理装置のネットワークアドレスを含むアドレスリゾルーションプロトコル要求パケットのデータパターンを示す第１データと、前記情報処理装置をウェイクアップさせるためのウェイクアップパケットのデータパターンを示す第２データとを格納するデータレジスタと、前記情報処理装置の物理アドレスを含むアドレスリゾルーションプロトコル応答パケットのデータパターンを示す送信データを格納する送信データレジスタと、前記情報処理装置がスリープ状態の期間中、前記ネットワークを介して到来したパケットのデータパターンを前記第１データおよび第２データと比較する比較部と、前記到来したパケットのデータパターンが前記第１データに一致する場合、前記送信データレジスタに格納された送信データに従って、前記アドレスリゾルーションプロトコル応答パケットを前記ネットワーク上に送出する送信部と、前記到来したパケットのデータパターンが前記第２データに一致する場合、前記情報処理装置にウェイクアップを指示するためのウェイクアップ信号を出力するウェイクアップ信号出力部とを具備することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、アクセス管理装置のような専用の装置を設けることなく、容易にリモートウェイクアップを実現することが可能となる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施形態を説明する。
【００１６】
まず、図１を参照して、本実施形態のネットワークコントローラを備えた情報処理装置が接続されるネットワーク構成の例を説明する。
【００１７】
図１のネットワークは、ＴＣＰ／ＩＰネットワークのようなネットワークである。このネットワークは例えば２つのサブネットＡ，Ｂ（セグメントとも云う）に分割されている。ルータ１０１は２つのサブネットＡ，Ｂ間に接続されている。図１のネットワーク内に存在するノード間の通信は、ディスティネーションアドレス（転送先ＭＡＣアドレス）とソースアドレス（転送元ＭＡＣアドレス）とを含むパケットを用いて実行される。このようなパケットは、例えば、イーサネット（登録商標）フレーム、またはIEEE 802.3フレームとして知られている。
【００１８】
サブネットＡにおいては、本実施形態のネットワークコントローラを備えた情報処理装置がノードとして接続される。この情報処理装置は、例えば、パーソナルコンピュータ（ＰＣ）１００として実現されている。また、サブネットＢにおいては、ＰＣ１０２がノードとして接続されている。
【００１９】
本実施形態では、ＰＣ１００に割り当てられたＩＰアドレス（ネットワークアドレス）は0.0.0.2、ＰＣ１００に割り当てられたＭＡＣアドレス（物理アドレス）は00-00-00-00-00-02とする。なお、実際には、ＭＡＣアドレス00-00-00-00-00-02は、ＰＣ１００に設けられたネットワークコントローラのＭＡＣアドレスである。
【００２０】
またルータ１０１のサブネットＡ側のＩＰアドレスは0.0.0.1、ルータ１０１のサブネットＡ側のＭＡＣアドレスは00-00-00-00-00-01とする。またルータ１０１のサブネットＢ側のＩＰアドレスは0.0.1.1、ルータ１０１のサブネットＢ側のＭＡＣアドレスは00-00-00-00-01-01とする。
【００２１】
ＰＣ１０２のＩＰアドレスは0.0.1.2、ＰＣ１０２のＭＡＣアドレスは00-00-00-00-01-02とする。
【００２２】
ＰＣ１００内に設けられたネットワークコントローラは、Ｗａｋｅ  ｏｎ  Ｌａｎ（ＷＯＬ）機能をサポートしている。すなわち、ネットワークコントローラは、ＰＣ１００がスリープ状態の期間中に、サブネットＡ内のＬＡＮを介して、ＰＣ１００をウェイクアップするための特定のデータパターンを有するウェイクアップパケットを受信した時に、ＰＣ１００をウェイクアップさせる機能を有している。
【００２３】
さらに、このネットワークコントローラは、特別な装置を用いずに、サブネットＢ内のＰＣ１０２からサブネットＡ内のＰＣ１００を容易にリモートウェイクアップできるようにするために、ＰＣ１００のスリープ中に、ＰＣ１００のＩＰアドレスを含むアドレスリゾルーションプロトコル要求パケット（ＡＲＰ要求パケット）に応答できるように構成されている。
【００２４】
すなわち、ネットワークコントローラは、ＰＣ１００がスリープ状態の期間中に、サブネットＡ内のＬＡＮを介して、ＰＣ１００のＩＰアドレスを含むＡＲＰ要求パケットを受信した時に、ＰＣ１００のＭＡＣアドレス（00-00-00-00-00-02）を含むアドレスリゾルーションプロトコル応答パケット（ＡＲＰ応答パケット）を、サブネットＡ内のＬＡＮ上に自動的に送出する機能を有している。
【００２５】
これら機能を実現するために、ＰＣ１００内のネットワークコントローラは、データテーブルレジスタ（単にデータレジスタと称することもある）と、送信データレジスタとを備えている。データテーブルレジスタには、ＰＣ１００のＩＰアドレスを調査対象アドレスとして含むＡＲＰ要求パケットのデータパターンを示す第１データと、ＰＣ１００をウェイクアップするためのウェイクアップパケットのデータパターンを示す第２データとが格納されている。また、送信データレジスタには、ＰＣ１００のＭＡＣアドレスを含むアドレスリゾルーションプロトコル応答パケット（ＡＲＰ応答パケット）のデータパターンを示す送信データが格納されている。ＡＲＰ応答パケットはＡＲＰ要求パケットの受信に応答して返送すべきパケットであり、ＡＲＰ要求パケットに含まれるＩＰアドレスで指定されるノードのＭＡＣアドレスを問い合わせ元に通知するために使用される。
【００２６】
ネットワークコントローラは、ＰＣ１００がスリープ状態の期間中、サブネットＡ内のＬＡＮを介して到来する各パケットを、第１データおよび第２データと比較する。
【００２７】
到来したパケットが第１データと一致した時、ネットワークコントローラは、送信データレジスタに格納されている送信データをＡＲＰ応答パケットとしてサブネットＡ内のＬＡＮ上に送出する。また、到来したパケットが第２データと一致した時、ネットワークコントローラは、ＰＣ１００にウェイクアップを指示するためのウェイクアップ信号を出力する。
【００２８】
以上の構成により、ネットワークコントローラは、ＰＣ１００がスリープ中であってもルータ１０１からのＡＲＰ要求パケットに応答することができる。したがって、ルータ１０１は、ＰＣ１００のＭＡＣアドレスを知ることができるので、ＰＣ１０２から受信したＰＣ１００宛のウェイクアップパケットを、ＰＣ１００のＭＡＣアドレス宛に正しく送出することができる。よって、アクセス管理装置のような専用の装置をＰＣ１００と同一のサブネットＡ内に設けることなく、サブネットＢ内のＰＣ１０２からのウェイクアップパケットを、ルータ１０１を介してサブネットＡ内のＰＣ１００に送出することが可能となり、サブネットＡ内のＰＣ１００をルータ１０１を介してウェイクアップすることができる。
【００２９】
図２には、ＰＣ１００のシステム構成の例が示されている。
【００３０】
ＰＣ１００は、ＣＰＵ１１１、主メモリ１１２、ノースブリッジ１１３、表示コントローラ１１４、液晶ディスプレイ（ＬＣＤ）１１５、サウスブリッジ１１６、ＢＩＯＳ−ＲＯＭ１１７、ネットワークコントローラ１１８、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１１９、キーボード（ＫＢ）１２０、および電源回路１２１等を備えている。
【００３１】
ＣＰＵ１１１は、ＰＣ１００の各コンポーネントの動作を制御するプロセッサである。このＣＰＵ１１１は、オペレーティングシステムおよび各種アプリケーションプログラムを実行する。また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１１７に格納されたＢＩＯＳも実行する。ＢＩＯＳはハードウェア制御のためのプログラムである。
【００３２】
ノースブリッジ１１３は、ＣＰＵ１１１のローカルバスとサウスブリッジ１１６との間を接続するブリッジデバイスである。また、ノースブリッジ１１３は、表示コントローラ１１４との通信を実行する機能も有している。さらに、ノースブリッジ１１３には、主メモリ１１２を制御するメモリコントローラも内蔵されている。
【００３３】
表示コントローラ１１４は、ＰＣ１００のディスプレイモニタとして使用されるＬＣＤ１１５を制御する。サウスブリッジ１１６は、ＰＣＩ（Peripheral Component Interconnect）バス上の各デバイスを制御する。ＰＣＩバスには、ネットワークコントローラ１１８が接続されている。ネットワークコントローラ１１８は、ＬＡＮコネクタ１４０に接続されるＬＡＮとの通信を実行するＬＡＮコントローラ（ネットワークインタフェースカードＮＩＣと称されることもある）である。ネットワークコントローラ１１８は、上述のＷＯＬ機能をサポートしており、ＰＣ１００のスリープ中に、特定のデータパターンを有するウェイクアップパケットを受信すると、ＰＣ１００にウェイクアップを指示するためのウェイクアップ信号Ｗａｋｅ−ｕｐを出力する。ウェイクアップ信号Ｗａｋｅ−ｕｐは、ＰＣ１００内のパワーマネージメントデバイス（例えば、ＥＣ／ＫＢＣ１１９）に出力される。
【００３４】
ＥＣ／ＫＢＣ１１９は、電源管理のためのエンベデッドコントローラと、キーボード（ＫＢ）１２０を制御するキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１１９は、電源回路１２１と共同して、ユーザによるパワーボタンスイッチ（ＳＷ）１３０の操作に応じてＰＣ１００を電源オン／電源オフする。また、ＥＣ／ＫＢＣ１１９は、ウェイクアップ信号Ｗａｋｅ−ｕｐを受信したときに、ＢＩＯＳと共同して、ＰＣ１００のステートをスリープ状態から通常動作状態に復帰させる処理を実行する。ＰＣ１００のスリープ状態としては、例えば、ＡＣＰＩ仕様で規定された、Ｓ３（メモリサスペンドステート）またはＳ４（ハイバネーションステート）を使用することができる。もちろん、ＷＯＬ機能の実行に必要なデバイス（ネットワークコントローラ１１８、ＥＣ／ＫＢＣ１１９）を除く他のほとんど全てのデバイスをオフした状態を、ＰＣ１００のスリープ状態として使用してもよい。
【００３５】
次に、図３を参照して、ネットワークコントローラ１１８の構成を説明する。図３には、ＷＯＬ機能に関連する機能部のみが示されている。
【００３６】
ネットワークコントローラ１１８は、受信部２０１、比較部２０２、ウェイクアップ信号出力部２０３、データテーブルレジスタ２０４、マスクレジスタ２０５、送信データレジスタ２０６、および送信部２０７を備えている。ネットワークコントローラ１１８がスリープモード（ＷＯＬモードとも云う）の期間中であっても、これら受信部２０１、比較部２０２、ウェイクアップ信号出力部２０３、データテーブルレジスタ２０４、マスクレジスタ２０５、送信データレジスタ２０６、および送信部２０７はそれぞれアクティブ状態である。
【００３７】
受信部２０１は、ＬＡＮを介して到来するパケット（例えば、ＰＣ１００のＭＡＣアドレスを宛先ＭＡＣアドレスとして含むパケット、ブロードキャストパケット、等）を受信する。受信されたパケットは、比較部２０２に送られる。比較部２０２は、ＰＣ１００のスリープ状態の期間中、つまりネットワークコントローラ１１８がスリープモード（ＷＯＬモード）の期間中、受信されたパケットとデータテーブルレジスタ２０４に格納されたデータとを比較する。
【００３８】
データテーブルレジスタ２０４は、ネットワークコントローラ１１８で受信したパケットと比較されるデータを格納するための記憶エリアである。このデータテーブルレジスタ２０４には、比較用データとしてＷＯＬ用データとＡＲＰ用データとが格納されている。
【００３９】
ＡＲＰ用データは、ＰＣ１００のＩＰアドレスに対応するＭＡＣアドレスを問い合わせるためのＡＲＰ要求パケットのデータパターンを示す上述の第１データである。具体的には、ＡＲＰ用データは、ルータ１０１からネットワークコントローラ１１８宛に送出されるＡＲＰ要求パケットのデータパターンを示す。このＡＲＰ要求パケットには、ＰＣ１００のＩＰアドレス等が含まれている。
【００４０】
ＷＯＬ用データは、ＰＣ１００をウェイクアップさせるためのウェイクアップパケットのデータパターンを示す上述の第２データである。ＰＣ１００をウェイクアップさせるためのウェイクアップパケットには、特定のデータパターン（例えば、６バイトのFFh、およびＰＣ１００のＭＡＣアドレスの１６個の繰り返しパターン）が含まれている。
【００４１】
マスクデータレジスタ２０５は、データテーブルレジスタ２０４に格納されたＡＲＰ用データの中で、マッチング対象から除外すべきデータ部を指定するマスクデータを格納する記憶エリアである。ＡＲＰ用データと受信バケットとを比較する処理においては、比較部２０２は、ＡＲＰ用データの中で、マスクデータによって指定されたデータ部以外の他のデータ部が、受信パケットのデータパターンに一致するか否かを判定する。ＡＲＰ用データの中で、マスクデータによって指定されたデータ部以外の他のデータ部が、受信パケットのデータパターンに一致した場合、比較部２０２は、受信パケットがＡＲＰ要求パケットであることを決定する。なお、ＡＲＰ用データの中でマッチング対象から除外すべきデータ部を指定するマスクデータのみならず、ＷＯＬ用データの中でマッチング対象から除外すべきデータ部を指定するマスクデータをも、マスクデータレジスタ２０５にセットしてもよい。
【００４２】
比較部２０２によって受信パケットがデータテーブルレジスタ２０４のＷＯＬ用データに一致することが検出された時、ウェイクアップ信号出力部２０３は、ウェイクアップ信号をＥＣ／ＫＢＣ１１９に出力する。
【００４３】
送信データレジスタ２０６は、ＡＲＰ要求パケットの受信に応答して返送すべきＡＲＰ応答パケットのデータパターンを示す送信データを格納する。具体的には、この送信データは、ルータ１０１からのＡＲＰ要求パケットに応答してルータ１０１に送出すべきＡＲＰ応答パケットのデータパターンを示す。このデータパターンには、ＰＣ１００のＭＡＣアドレス等が含まれている。
【００４４】
比較部２０２によって受信パケットがデータテーブルレジスタ２０４のＡＲＰ用データに一致することが検出された時、送信部２０７は、送信データレジスタ２０６に格納されている送信データに従って、ＡＲＰ応答パケットをＬＡＮ上に送出する。すなわち、送信データレジスタ２０６に格納されている送信データは送信すべきＡＲＰ応答パケットのデータ構造と同じであるので、送信部２０７は、送信データをＬＡＮ上に送出するだけで、ＰＣ１００のＭＡＣアドレスを含むＡＲＰ応答パケットをルータ１０１に正しく返送することができる。
【００４５】
図４には、データテーブルレジスタ２０４の構成例が示されている。
【００４６】
データテーブルレジスタ２０４は、例えば、オフセットアドレスが互いに異なる複数個の８ビットレジスタから構成されている。各８ビットレジスタには、バイトデータが格納される。ＣＰＵ１１１は、ＰＣ１００がスリープ状態に入る前に、つまりネットワークコントローラ１１８をスリープモード（ＷＯＬモード）に入れる前に、データテーブルレジスタ２０４にＷＯＬ用データおよびＡＲＰ用データをセットする。
【００４７】
図５には、マスクレジスタ２０５の構成例が示されている。
【００４８】
マスクレジスタ２０５も、例えば、オフセットアドレスが互いに異なる複数個の８ビットレジスタから構成することができる。マスクレジスタ２０５には、図４のデータテーブルレジスタ２０４内の複数個のバイトデータそれぞれをマスクするかしないかを指定するための複数のマスクビットを含むマスクデータが格納される。マスクビット“１”はデータテーブルレジスタ２０４内の対応するバイトデータをマスクすることを示し、マスクビット“０”はデータテーブルレジスタ２０４内の対応するバイトデータをマスクしないことを示す。例えば、offset=B+00hのbit0のマスクビットが“１”である場合、図４のデータテーブルレジスタ２０４内のＢｙｔｅ１データはマスクされる。また、例えば、offset=B+00hのbit1のマスクビットが“１”である場合、図４のデータテーブルレジスタ２０４内のＢｙｔｅ２データはマスクされる。マスクされたバイトデータは、受信したパケットとの比較処理において無視される。ＣＰＵ１１１は、ＰＣ１００がスリープ状態に入る前に、つまりネットワークコントローラ１１８をスリープモード（ＷＯＬモード）に入れる前に、マスクレジスタ２０５にマスクデータをセットする。
【００４９】
図６には、送信データレジスタ２０６の構成例が示されている。
【００５０】
送信データレジスタ２０６も、オフセットアドレスが互いに異なる複数個の８ビットレジスタから構成することができる。送信データレジスタ２０６は、ネットワークコントローラ１１８が受信したパケットデータが、データテーブルレジスタ２０４のＡＲＰ用データとマスクレジスタ２０５のマスクデータとによって指定される比較対象のＡＲＰ用データにマッチした時に送信すべき送信データ（ＡＲＰ応答パケットのデータシーケンス）を格納するエリアである。ＣＰＵ１１１は、ＰＣ１００がスリープ状態に入る前に、つまりネットワークコントローラ１１８をスリープモード（ＷＯＬモード）に入れる前に、送信データレジスタ２０６に送信データをセットする。
【００５１】
図７は、ＡＲＰ要求パケット（ＡＲＰリクエスト）のデータ構成の例を示している。
【００５２】
図７のＡＲＰ要求パケットの構成は、サブネットＡ内のＬＡＮを介して、ルータ１０１からＰＣ１００に送信されるＡＲＰ要求パケットに対応している。
【００５３】
ＡＲＰ要求パケットは、Destination addressフィールド、Source addressフィールド、Typeフィールド、Hardware typeフィールド、Protocol typeフィールド、Hardware address lengthフィールド、Protocol address lengthフィールド、Opcodeフィールド、Sender hardware addressフィールド、Sender protocol addressフィールド、Target hardware addressフィールド、Target protocol addressフィールド、等から構成されている。
【００５４】
Destination addressフィールドは、当該パケットの転送先ＭＡＣアドレスを指定するフィールドである。ＡＲＰ要求パケットにおいては、Destination addressフィールドには、ブロードキャストＭＡＣアドレス(＝FF-FF-FF-FF-FF-FF)がセットされる。Source addressフィールドは、当該パケットの転送元ＭＡＣアドレスを指定するフィールドである。ＡＲＰ要求パケットにおいては、Source addressフィールドには、ルータ１０１のＭＡＣアドレス(=00-00-00-00-00-01)がセットされる。
【００５５】
Typeフィールドは当該パケットの種類を指定するフィールドであり、タイプ＝0806hは、当該パケットの種類がＡＲＰパケットであることを示す。Opcodeフィールドの値（=0001h）とTypeフィールドの値（＝0806h）との組み合わせは、当該パケットがＡＲＰ要求パケットであることを示している。
【００５６】
Hardware typeフィールドの値（＝0806h）は、イーサネットを示す。Protocol typeフィールドは、当該パケットによって運ぶべき上位層プロトコルを指定するフィールドであり、Protocol type＝0800hはIPを示している。
【００５７】
Sender hardware addressフィールドおよびSender protocol addressフィールドは、それぞれ当該パケットの転送元ＭＡＣアドレスおよび転送元ＩＰアドレスを示すフィールドである。ＡＲＰ要求パケットにおいては、Sender hardware addressフィールドには、ルータ１０１のＭＡＣアドレス(=00-00-00-00-00-01)がセットされ、Sender protocol addressフィールドには、ルータ１０１のＩＰアドレス(=00-00-00-01)がセットされる。
【００５８】
Target hardware addressフィールドおよびTarget protocol addressフィールドは、それぞれ当該パケットの転送先ＭＡＣアドレスおよび転送先ＩＰアドレスを示すフィールドである。ＡＲＰ要求パケットにおいては、Target hardware addressフィールドには、ヌル値（=00-00-00-00-00-00）がセットされ、Target protocol addressフィールドには、ＰＣ１００のＩＰアドレス(=00-00-00-02)がセットされる。
【００５９】
ＣＰＵ１１１は、図７のフィールド群それぞれに対応する値をＡＲＰ用データとしてデータテーブルレジスタ２０４にセットする。例えば、Source addressフィールド、Sender hardware addressフィールド、Sender protocol addressフィールド、Target hardware addressフィールドそれぞれに対応するデータは、マスクすることができる。図７において、Mask=NOはマスクしないことを示し、Mask=Yesはマスクすることを示している。Source addressフィールド、Sender hardware addressフィールド、Sender protocol addressフィールド、Target hardware addressフィールドそれぞれに対応するデータをマスクした場合には、ネットワークコントローラ１１８は、ルータ１０１からのＡＲＰ要求パケットのみならず、サブネットＡ内の他の各ノードからのＡＲＰ要求パケットに対しても応答することができる。
【００６０】
また、ブロードキャストＭＡＣアドレスを示すDestination addressがＡＲＰ用データとしてセットされている場合には、Destination addressを用いたフィルタリングが比較部２０２によって実行されるので、図３の受信部２０１は、サブネットＡ内のＬＡＮを介して到来する全てのパケットを受信すればよい。
【００６１】
図８は、ＡＲＰ応答パケット（ＡＲＰリプライ）のデータ構成の例を示している。
【００６２】
図８のＡＲＰ要求パケットは、サブネットＡ内のＬＡＮを介して、ＰＣ１００からルータ１０１に送信されるＡＲＰ応答パケットに対応するものである。
【００６３】
ＡＲＰ応答パケットも、Destination addressフィールド、Source addressフィールド、Typeフィールド、Hardware typeフィールド、Protocol typeフィールド、Hardware address lengthフィールド、Protocol address lengthフィールド、Opcodeフィールド、Sender hardware addressフィールド、Sender protocol addressフィールド、Target hardware addressフィールド、Target protocol addressフィールド、等から構成されている。
【００６４】
Destination addressフィールドは、当該パケットの転送先ＭＡＣアドレスを指定するフィールドである。ＡＲＰ応答パケットにおいては、Destination addressフィールドには、例えば、ブロードキャストＭＡＣアドレス(=FF-FF-FF-FF-FF-FF)がセットされる。Source addressフィールドは、当該パケットの転送元ＭＡＣアドレスを指定するフィールドである。ＡＲＰ応答パケットにおいては、Source addressフィールドには、ＰＣ１００のＭＡＣアドレス(=00-00-00-00-00-02)がセットされる。
【００６５】
Typeフィールドの値（＝0806h）とOpcodeフィールドの値（=0002h）との組み合わせは、当該パケットがＡＲＰ応答パケットであることを示している。Sender hardware addressフィールドには、ＰＣ１００のＭＡＣアドレス(=00-00-00-00-00-02)がセットされ、Sender protocol addressフィールドには、ＰＣ１００のＩＰアドレス(=00-00-00-02)がセットされる。Target hardware addressフィールドには、ルータ１０１のＭＡＣアドレス(=00-00-00-00-00-01)がセットされ、Target protocol addressフィールドには、ルータ１０１のＩＰアドレス(=00-00-00-01)がセットされる。
【００６６】
ＣＰＵ１１１は、図８のフィールド群それぞれに対応する値を送信データとして送信データレジスタ２０６にセットする。
【００６７】
ＷＯＬ用データは、ウェイクアップパケットのデータパターンと比較されるデータシーケンスとして、例えば、ブロードキャストＭＡＣアドレスまたはＰＣ１００のＭＡＣアドレスを示すDestination addressと、６バイトのFFと、ＰＣ１００のＭＡＣアドレスの１６個の繰り返し、等を含む。
【００６８】
次に、図９のフローチャートを参照して、ＰＣ１００のスリープ状態への移行時にＣＰＵ１１１によって実行される処理の手順を説明する。
【００６９】
ＣＰＵ１１１は、例えば、ネットワークコントローラ１１８を制御するソフトウェアであるＬＡＮドライバの制御の下に、以下の処理を実行する。
【００７０】
すなわち、ユーザによる電源ボタンスイッチの操作のようなスリープイベント（スリープ要求）が発生した時、ＣＰＵ１１１は、まず、ＰＣ１００のセットアップ情報を参照して、ＷＯＬ機能が有効(ENABLE)であるか否かを判別する（ステップＳ１１）。セットアップ情報はユーザによって指定されたＰＣ１００の動作環境を示す情報である。ユーザは、ＢＩＯＳセットアップ画面等を介して、ＷＯＬ機能の有効／無効を予め指定することができる。
【００７１】
ＷＯＬ機能が有効であるならば（ステップＳ１１のＹＥＳ）、ＣＰＵ１１１は、ＷＯＬ用データおよびＡＰＲ用データをデータテーブルレジスタ２０４にセットすると共に、マスクデータをマスクレジスタ２０５にセットする（ステップＳ１２）。次いで、ＣＰＵ１１１は、送信データを送信データレジスタ２０６にセットする（ステップＳ１３）。そして、ＣＰＵ１１１は、ネットワークコントローラ１１８を、ウェイクアップパケットの到来を監視するスリープモード（ＷＯＬモード）に設定する処理を実行する（ステップＳ１４）。ステップＳ１４では、ＣＰＵ１１１は、ネットワークコントローラ１１８内の所定のレジスタにスリープモード（ＷＯＬモード）を指定するフラグをセットする処理、またはネットワークコントローラ１１８に設けられた所定のピン（SLEEPピン）をアクティブ状態に駆動する処理、等を実行する。ステップＳ１４の処理により、ネットワークコントローラ１１８は、ソフトウェアの制御の下に各種パケットの送信および受信を実行する通常動作モードから、スリープモード（ＷＯＬモード）に切り替えられる。ネットワークコントローラ１１８への電力の供給は維持され続ける。
【００７２】
この後、ＣＰＵ１１１は、ＢＩＯＳの制御の下、例えば、ネットワークコントローラ１１８以外の他の各デバイスをスリープ状態に設定し、これによってＰＣ１００をスリープ状態に設定する。
【００７３】
次に、図１０のフローチャートを参照して、ＰＣ１００のスリープ状態の期間中に実行されるネットワークコントローラ１１８の動作について説明する。
【００７４】
スリープモード（ＷＯＬモード）においては、ネットワークコントローラ１１８は、ＬＡＮを介して到来するパケット（例えば、ネットワークコントローラ１１８のＭＡＣアドレスを宛先アドレスとして含むパケット、ブロードキャストパケット、等）を受信する（ステップＳ２１）。もちろん、ＷＯＬ用データおよびＡＲＰ用データの各々が、到来するパケット内のディスティネーションアドレスと比較するデータ部として、ネットワークコントローラ１１８のＭＡＣアドレスまたはブロードキャストＭＡＣアドレス等が含む場合には、ネットワークコントローラ１１８は、ＬＡＮを介して到来する全てのパケットを受信するようにしてもよい。
【００７５】
そして、ネットワークコントローラ１１８は、受信したパケットをＷＯＬ用データおよびＡＲＰ用データの各々と比較して、受信したパケットが、ＷＯＬ用データまたはＡＲＰ用データにマッチするか否かを判定する（ステップＳ２３）。
【００７６】
受信したパケットがＷＯＬ用データおよびＡＲＰ用データのどちらにもマッチしなかったならば（ステップＳ２３のＹＥＳ）、ネットワークコントローラ１１８は、受信したパケットを廃棄し、次のパケットの受信を待つ。
【００７７】
受信したパケットがＷＯＬ用データまたはＡＲＰ用データにマッチしたならば（ステップＳ２３のＮＯ）、ネットワークコントローラ１１８は、受信したパケットがマッチしたデータが、ＷＯＬ用データまたはＡＲＰ用データのいずれであるかを判定する（ステップＳ２４）。
【００７８】
受信したパケットがＡＲＰ用データにマッチしたならば、ネットワークコントローラ１１８は、送信データレジスタ２０６に格納されている送信データに従って、ＡＲＰ応答パケットをＬＡＮ上に出力する（ステップＳ２５）。この後、ネットワークコントローラ１１８は、次のパケットの受信を待つ。
【００７９】
受信したパケットがＷＯＬ用データにマッチしたならば、ネットワークコントローラ１１８は、ＰＣ１００を通常動作モードに戻すために、ウェイクアップ信号をＥＣ／ＫＢＣ１１９に出力する（ステップＳ２６）。このウェイクアップ信号に応答して、ＰＣ１００はウェイクアップされる。そして、ＢＩＯＳの制御の下、ＣＰＵ１１１は、ネットワークコントローラ１１８を通常動作モードに戻す。
【００８０】
次に、図１１を参照して、ＰＣ１０２がＰＣ１０１をリモートウェイクアップする場合に実行される一連の処理の手順を説明する。
【００８１】
（１）ＰＣ１００とＰＣ１０２は互いに異なるサブネットに接続されているため、ＰＣ１０２は、ＰＣ１００をウェイクアップするためのウェイクアップパケットを、ルータ１０１に送る必要がある。しかし、ＰＣ１０２はルータ１０１のＭＡＣアドレスが分からない。
【００８２】
（２）このため、ＰＣ１０２は、ルータ１０１のＭＡＣアドレスを問い合わせるためのＡＲＰ要求パケットをサブネットＢ内のＬＡＮ上に送出する。このＡＲＰ要求パケットには、ルータ１０１のＩＰアドレスが含まれている。
【００８３】
（３）ルータ１０１は自身のＩＰアドレスを含むＡＲＰ要求パケットを受信すると、自身のＭＡＣアドレスを含むＡＲＰ応答パケットをサブネットＢ内のＬＡＮ上に送出する。このＡＲＰ応答パケットを受信することにより、ＰＣ１０２は、ルータ１０１のＭＡＣアドレスを知ることが出来る。
【００８４】
（４）ＰＣ１０２は、ＰＣ１００をウェイクアップするためのウェイクアップパケットをルータ１０１に送信する。このウェイクアップパケットのデータ構成の例を図１２に示す。このウェイクアップパケットにおいては、Destination address（Ｄ）の値はルータ１０１のサブネットＢ側のＭＡＣアドレス（00-00-00-00-01-01）を示し、Source address（Ｓ）の値はＰＣ１０２のＭＡＣアドレス（00-00-00-00-01-02）を示す。また、Target protocol addressフィールドにセットされる転送先ＩＰアドレス（ＩＰ−Ｄ）の値は、ＰＣ１００のＩＰアドレス（0.0.0.2）を示し、Sender protocol addressフィールドにセットされる転送元ＩＰアドレス（ＩＰ−Ｓ）の値は、ＰＣ１０２のＩＰアドレス（0.0.1.2）を示す。また、ウェイクアップパケットのデータフィールド内には、６バイトのFFと、ＰＣ１００のＭＡＣアドレスの１６個の繰り返しとが含まれている。
【００８５】
（５）ルータ１０１は、ＰＣ１０２から受信したウェイクアップパケットをサブネットＡ内に存在する、ＩＰアドレスが0.0.0.2のＰＣ１００に送りたい。しかし、ルータ１０１は、ＰＣ１００のＭＡＣアドレスが分からない。
【００８６】
（６）この場合、ルータ１０１は、ＰＣ１００のＭＡＣアドレスを問い合わせるためのＡＲＰ要求パケットをサブネットＡ内のＬＡＮ上に送出する。このＡＲＰ要求パケットには、ＰＣ１００のＩＰアドレスが含まれている。
【００８７】
（７）ＰＣ１００はスリープ中であるが、ＰＣ１００のＩＰアドレスを含むＡＲＰ要求パケットは、データテーブルレジスタ２０４に格納されているＡＲＰ用データに一致するので、ＰＣ１００のネットワークコントローラ１１８は、ＡＲＰ要求パケットに応答することができる。ネットワークコントローラ１１８は、送信データレジスタ２０６に格納されている送信データをＡＲＰ応答パケットとしてＬＡＮ上に送出する。このＡＲＰ応答パケットには、ＰＣ１００のＭＡＣアドレスが含まれている。このＡＲＰ応答パケットを受信することにより、ルータ１０１は、ＰＣ１００がスリープ中であっても、ＰＣ１００のＭＡＣアドレスを知ることが出来る。
【００８８】
（８）ルータ１０１は、ＰＣ１０２から受信したウェイクアップパケットをＰＣ１００に送信する。このウェイクアップパケットのデータ構成の例を図１３に示す。このウェイクアップパケットにおいては、Destination address（Ｄ）の値はＰＣ１００のＭＡＣアドレス（00-00-00-00-00-02）であり、またSource address（Ｓ）の値はルータのＭＡＣアドレス（00-00-00-00-00-01）である。また、転送元ＩＰアドレス（ＩＰ−Ｓ）の値は、例えば、ルータのＩＰアドレス（0.0.0.1）である。
【００８９】
（９）ＰＣ１００をウェイクアップさせるためのウェイクアップパケットはデータテーブルレジスタ２０４に格納されているＷＯＬ用データに一致する。このため、このウェイクアップパケットの受信に応答して、ネットワークコントローラ１１８は、ウェイクアップ信号を出力する。これにより、ＰＣ１００はウェイクアップする。
【００９０】
以上のように、本実施形態においては、ネットワークコントローラ１１８は、ＰＣ１００がスリープ中であっても、ルータ１０１からのＡＲＰ要求パケットに応答することができる。したがって、サブネットＢ内のＰＣ１０２から送出されるＰＣ１００宛のウェイクアップパケットを、ルータ１０１を介してサブネットＡ内のＰＣ１００に正しく転送することで可能となり、サブネットＡ内のＰＣ１００をサブネットＢ内のＰＣ１０２からウェイクアップすることができる。
【００９１】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態に係るネットワークコントローラを備えた情報処理装置が接続されるネットワーク構成の例を示すブロック図。
【図２】同実施形態に係るネットワークコントローラを備えた情報処理装置のシステム構成を示すブロック図。
【図３】同実施形態に係るネットワークコントローラの構成を示すブロック図。
【図４】同実施形態に係るネットワークコントローラに設けられたデータテーブルレジスタの構成例を示す図。
【図５】同実施形態に係るネットワークコントローラに設けられたマスクレジスタの構成例を示す図。
【図６】同実施形態に係るネットワークコントローラに設けられた送信データレジスタの構成例を示す図。
【図７】同実施形態に係るネットワークコントローラに送られるＡＲＰ要求パケットのデータ構成の例を示す図。
【図８】同実施形態に係るネットワークコントローラが送出するＡＲＰ応答パケットのデータ構成の例を示す図。
【図９】同実施形態に係るネットワークコントローラをスリープモード（ＷＯＬモード）に設定する前にＣＰＵによって実行される処理の手順を示すフローチャート。
【図１０】同実施形態に係るネットワークコントローラがスリープモード（ＷＯＬモード）中に実行する処理の手順を示すフローチャート。
【図１１】同実施形態に係るネットワークコントローラを備えた情報処理装置をリモートウェイクアップするために実行される一連の処理の手順を示す図。
【図１２】図１のネットワークシステムにおいて端末からルータに送信されるウェイクアップパケットの例を示す図。
【図１３】図１のネットワークシステムにおいてルータから同実施形態に係るネットワークコントローラに送信されるウェイクアップパケットの例を示す図。
【符号の説明】
【００９３】
１００，１０２…ＰＣ、１０１…ルータ、１１１…ＣＰＵ、１１８…ネットワークコントローラ、２０１…受信部、２０２…比較部、２０３…ウェイクアップ信号出力部、２０４…データテーブルレジスタ、２０５…マスクレジスタ、２０６…送信データレジスタ、２０７…送信部。
【図１】
2008301077.tif 000003
【図２】
2008301077.tif 000004
【図３】
2008301077.tif 000005
【図４】
2008301077.tif 000006
【図５】
2008301077.tif 000007
【図６】
2008301077.tif 000008
【図７】
2008301077.tif 000009
【図８】
2008301077.tif 000010
【図９】
2008301077.tif 000011
【図１０】
2008301077.tif 000012
【図１１】
2008301077.tif 000013
【図１２】
2008301077.tif 000014
【図１３】
2008301077.tif 000015