(57)【要約】【課題】スリープモードへ適切に移行し、スリープモードから適切に復帰する。【解決手段】メインコントローラーは、スリープモードに移行すべきトリガを検出すると、全ての使用中のＴＣＰポートをそれぞれ指定するパケットパターンであるポート別ＴＣＰパケットパターンと、全ての使用中のＵＤＰポートをそれぞれ指定するパケットパターンであるポート別ＵＤＰパケットパターンとを生成し、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると、全てのポート別ＴＣＰパケットパターンを削除し、異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成し、ポート別ＵＤＰパケットパターン及びポート不指定ＴＣＰパケットパターンを、サブコントローラーに供給し、スリープモードに移行する。【選択図】図３
2020174288.tif 000002
【特許請求の範囲】
【請求項１】
サブコントローラーと、
スリープモードに移行及び前記スリープモードから復帰するときに前記サブコントローラーに通知するメインコントローラーと、
ネットワークに接続された外部機器と通信可能な通信インターフェースと
を具備し、
前記メインコントローラーは、
前記スリープモードに移行すべきトリガを検出すると、
全ての使用中のＴＣＰポートをそれぞれ指定するパケットパターンであるポート別ＴＣＰパケットパターンと、全ての使用中のＵＤＰポートをそれぞれ指定するパケットパターンであるポート別ＵＤＰパケットパターンとを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると、
全ての前記ポート別ＴＣＰパケットパターンを削除し、
異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行し、
前記サブコントローラーは、前記スリープモード中に、
前記通信インターフェースを介して前記外部機器から受信したパケットのパケットパターンが、前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンの何れかにマッチするか否かを判断し、
前記パケットパターンがマッチしないと判断すると、受信した前記パケットを破棄し、
前記パケットパターンがマッチすると判断すると、前記メインコントローラーに前記スリープモードからの復帰を要求し、前記メインコントローラーに前記パケットを転送する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記メインコントローラーは、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの前記合計数が、前記上限値を超過しないと判断すると、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行し、
前記サブコントローラーは、前記スリープモード中に、
受信した前記パケットのパケットパターンが、前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの何れかにマッチするか否かを判断する
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンの合計数が、前記上限値を超過すると判断すると、
全ての前記ポート不指定ＴＣＰパケットパターンとの合計数が前記上限値である、一部の前記ポート別ＵＤＰパケットパターンと、全ての前記ポート不指定ＴＣＰパケットパターンとを、前記サブコントローラーに供給し、前記スリープモードに移行する
情報処理装置。
【請求項４】
請求項１乃至３の何れか一項に記載の情報処理装置であって、
前記メインコントローラーは、
前記異なるＴＣＰプロトコル毎の前記ポート不指定ＴＣＰパケットパターンとして、
ＴＣＰ／ＩＰｖ４プロトコルの１個のポート不指定ＴＣＰパケットパターンと、
ＴＣＰ／ＩＰｖ６プロトコルの１個のポート不指定ＴＣＰパケットパターンとを作成する
情報処理装置。
【請求項５】
サブコントローラーと、
スリープモードに移行及び前記スリープモードから復帰するときに前記サブコントローラーに通知するメインコントローラーと、
ネットワークに接続された外部機器と通信可能な通信インターフェースと
を具備する情報処理装置の前記メインコントローラーを、
前記スリープモードに移行すべきトリガを検出すると、
全ての使用中のＴＣＰポートをそれぞれ指定するパケットパターンであるポート別ＴＣＰパケットパターンと、全ての使用中のＵＤＰポートをそれぞれ指定するパケットパターンであるポート別ＵＤＰパケットパターンとを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると、
全ての前記ポート別ＴＣＰパケットパターンを削除し、
異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行する
よう動作させる
パケットパターン生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通常モードとスリープモードとを選択的に実行可能な情報処理装置及びパケットパターン生成プログラムに関する。
【背景技術】
【０００２】
通常モードとスリープモードとを選択的に実行可能な情報処理装置が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２７９８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理装置は、省エネルギーの観点から、スリープモードへ適切に移行し、スリープモードから適切に復帰することが望ましい。
【課題を解決するための手段】
【０００５】
本発明の一形態に係る情報処理装置は、
サブコントローラーと、
スリープモードに移行及び前記スリープモードから復帰するときに前記サブコントローラーに通知するメインコントローラーと、
ネットワークに接続された外部機器と通信可能な通信インターフェースと
を具備し、
前記メインコントローラーは、
前記スリープモードに移行すべきトリガを検出すると、
全ての使用中のＴＣＰポートをそれぞれ指定するパケットパターンであるポート別ＴＣＰパケットパターンと、全ての使用中のＵＤＰポートをそれぞれ指定するパケットパターンであるポート別ＵＤＰパケットパターンとを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると、
全ての前記ポート別ＴＣＰパケットパターンを削除し、
異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行し、
前記サブコントローラーは、前記スリープモード中に、
前記通信インターフェースを介して前記外部機器から受信したパケットのパケットパターンが、前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンの何れかにマッチするか否かを判断し、
前記パケットパターンがマッチしないと判断すると、受信した前記パケットを破棄し、
前記パケットパターンがマッチすると判断すると、前記メインコントローラーに前記スリープモードからの復帰を要求し、前記メインコントローラーに前記パケットを転送する。
【０００６】
（１）本実施形態によれば、情報処理装置は、スリープモード中にＴＣＰパケットを受信した場合には、必ずスリープモードから復帰する。ＴＣＰ／ＩＰはユニキャスト通信であるため、情報処理装置が受信するＴＣＰパケットは、基本的には、情報処理装置宛である。従って、情報処理装置は、殆どのＴＣＰパケットを処理する必要がある。このため、情報処理装置が、ＴＣＰパケットを受信した場合に必ずスリープモードから復帰するとしても、不要な復帰（例えば、未使用のＴＣＰポート宛のＴＣＰパケットを受信した場合）の機会は少なくて済む。一方、ＵＤＰ／ＩＰはブロードキャスト及びマルチキャスト通信が可能であるため、情報処理装置は、情報処理装置宛でないＵＤＰパケット（例えば、名前解決クエリ等）を受信することも多い。このため、情報処理装置がスリープモード中にＵＤＰパケットを受信した場合に必ずスリープモードから復帰すると仮定すると、実際には不要にも拘らず高頻度で復帰したり、あるいは、スリープモードに移行自体できなくなるおそれがある。これに対して、本実施形態によれば、ポート不指定ＴＣＰパケットパターンを作成することによりパケットパターンの合計数を減らすことでサブＲＡＭの使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【０００７】
前記メインコントローラーは、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの前記合計数が、前記上限値を超過しないと判断すると、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行し、
前記サブコントローラーは、前記スリープモード中に、
受信した前記パケットのパケットパターンが、前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの何れかにマッチするか否かを判断する。
【０００８】
（２）本実施形態によれば、ポート別ＴＣＰパケットパターンをサブコントローラーに供給することで、情報処理装置が、ＴＣＰパケットを受信した場合に、不要な復帰（例えば、未使用のＴＣＰポート宛のＴＣＰパケットを受信した場合）の機会が無くなる。これにより、本実施形態によれば、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンの合計数が、上限値を超過しないことを保証して、サブＲＡＭの使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【０００９】
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンの合計数が、前記上限値を超過すると判断すると、
全ての前記ポート不指定ＴＣＰパケットパターンとの合計数が前記上限値である、一部の前記ポート別ＵＤＰパケットパターンと、全ての前記ポート不指定ＴＣＰパケットパターンとを、前記サブコントローラーに供給し、前記スリープモードに移行する。
【００１０】
（３）本実施形態によれば、情報処理装置は、スリープモード中にＴＣＰパケットを受信した場合と、一部のＵＤＰパケットを受信した場合には、スリープモードから復帰する。これにより、情報処理装置がスリープモード中にＵＤＰパケットを受信した場合の不要な復帰の機会を、出来るだけ少なくすることができる。
【００１１】
前記メインコントローラーは、
前記異なるＴＣＰプロトコル毎の前記ポート不指定ＴＣＰパケットパターンとして、
ＴＣＰ／ＩＰｖ４プロトコルの１個のポート不指定ＴＣＰパケットパターンと、
ＴＣＰ／ＩＰｖ６プロトコルの１個のポート不指定ＴＣＰパケットパターンとを作成する。
【００１２】
（４）本実施形態によれば、ポート不指定ＴＣＰパケットパターンを作成することによりパケットパターンの合計数を減らすことでサブＲＡＭの使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【００１３】
本発明の一形態に係るパケットパターン生成プログラムは、
サブコントローラーと、
スリープモードに移行及び前記スリープモードから復帰するときに前記サブコントローラーに通知するメインコントローラーと、
ネットワークに接続された外部機器と通信可能な通信インターフェースと
を具備する情報処理装置の前記メインコントローラーを、
前記スリープモードに移行すべきトリガを検出すると、
全ての使用中のＴＣＰポートをそれぞれ指定するパケットパターンであるポート別ＴＣＰパケットパターンと、全ての使用中のＵＤＰポートをそれぞれ指定するパケットパターンであるポート別ＵＤＰパケットパターンとを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると、
全ての前記ポート別ＴＣＰパケットパターンを削除し、
異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成し、
前記ポート別ＵＤＰパケットパターン及び前記ポート不指定ＴＣＰパケットパターンを、前記サブコントローラーに供給し、前記スリープモードに移行する
よう動作させる。
【発明の効果】
【００１４】
本発明によれば、情報処理装置は、省エネルギーの観点から、スリープモードへ適切に移行し、スリープモードから適切に復帰することを図れる。
【００１５】
なお、ここに記載された効果は必ずしも限定されるものではなく、本発明中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る情報処理装置の構成を示す。
【図２】メインコントローラーの第１の動作フローを示す。
【図３】メインコントローラーの第２の動作フローを示す。
【図４】ＴＣＰ／ＩＰｖ４ポートのポート別ＴＣＰパケットパターンを模式的に示す。
【図５】ＴＣＰ／ＩＰｖ６ポートのポート別ＴＣＰパケットパターンを模式的に示す。
【図６】ＴＣＰ／ＩＰｖ４ポートのポート不指定ＴＣＰパケットパターンを模式的に示す。
【図７】ＴＣＰ／ＩＰｖ６ポートのポート不指定ＴＣＰパケットパターンを模式的に示す。
【図８】ＵＤＰ／ＩＰｖ４ポートのポート別ＵＤＰパケットパターンを模式的に示す。
【図９】ＵＤＰ／ＩＰｖ６ポートのポート別ＵＤＰパケットパターンを模式的に示す。
【図１０】サブコントローラーの動作フローを示す。
【発明を実施するための形態】
【００１７】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１８】
１．情報処理装置の構成
【００１９】
図１は、本発明の一実施形態に係る情報処理装置の構成を示す。
【００２０】
情報処理装置１０は、画像形成装置（ＭＦＰ等）又はパーソナルコンピューター（デスクトップ、ラップトップ、タブレット、スマートフォン、ウェアラブル等の各タイプを含む）等である。情報処理装置１０は、ネットワークＮを介して外部機器（図示せず）とパケットを送受信する。本実施形態で、情報処理装置１０がネットワーク通信に使用するプロトコルは、ＴＣＰ／ＩＰｖ４、ＴＣＰ／ＩＰｖ６、ＵＤＰ／ＩＰｖ６、ＵＤＰ／ＩＰｖ６である。
【００２１】
情報処理装置１０は、互いにバスで接続された、メインコントローラー１００、サブコントローラー２００、通信インターフェース３００及びスイッチャー４００を有する。
【００２２】
メインコントローラー１００は、通常モード時に各種処理を実行する。メインコントローラー１００は、メインプロセッサー（ＣＰＵ、Central Processing Unit）１０１、メインＲＯＭ（Read Only Memory）１０２、メインＲＡＭ（Random Access Memory）１０３（メインメモリー）及び専用のハードウェア回路等を有する。情報処理装置１０が画像形成装置である場合、メインコントローラー１００には、イメージスキャナー、プリンター、画像メモリー、表示装置、操作装置、不揮発性の記憶装置（ＨＤＤ（Hard Disk Drive）等）が接続される（図示及び説明を省略）。メインコントローラー１００は、これらのハードウェア（図示せず）、通信インターフェース３００及びスイッチャー４００を制御する。
【００２３】
メインプロセッサー１０１は、メインＲＯＭ１０２が記憶する各種プログラム（パケットパターン生成プログラム１２０を含む）をメインＲＡＭ１０３にロードして実行する。メインプロセッサー１０１は、特定のトリガ（ユーザーの操作やネットワークを介した情報の受信が一定時間無いなど）を検出すると、通常モードからスリープモードに移行する。通常モードはメインコントローラー１００の電源（図示せず）がオンの状態であり、スリープモードはメインコントローラー１００の電源がオフの状態である。メインプロセッサー１０１は、通常モードからスリープモードに移行するときと、スリープモードから通常モードに復帰するときとに、サブコントローラー２００のサブプロセッサー２０１と、スイッチャー４００とに通知する。
【００２４】
メインＲＯＭ１０２は、パケットパターン生成プログラム１２０を記憶する。
【００２５】
サブコントローラー２００は、スリープモード時に、外部機器からネットワークＮを介してパケットを受信すると、スリープモードから復帰するか否かを判断する。サブコントローラー２００は、サブプロセッサー（ＣＰＵ）２０１、サブＲＯＭ２０２、サブＲＡＭ２０３（サブメモリー）及び専用のハードウェア回路等を有する。サブコントローラー２００の各デバイスは、メインコントローラー１００の各デバイスに比べてプアなスペックであり、低消費電力で動作する。
【００２６】
サブＲＡＭ２０３（サブメモリー）は、パケットパターンリスト１３０を記憶する。例えば、メインプロセッサー１０１は、通常モードからスリープモードに移行するタイミングで、使用中のポートのパケットパターンリスト１３０を生成してサブＲＡＭ２０３に書き込む。
【００２７】
サブプロセッサー２０１は、メインプロセッサー１０１から、通常モードからスリープモードに移行した通知を受ける。スリープモード時に、サブプロセッサー２０１は、サブＲＯＭ２０２が記憶するモード復帰判断プログラム２２０をサブＲＡＭ２０３にロードして実行する。サブプロセッサー２０１は、受信したパケットのパケットパターンが、パケットパターンリスト１３０とマッチする場合、メインプロセッサー１０１に、スリープモードから通常モードへの復帰を要求し、パケットを転送する。一方、サブプロセッサー２０１は、受信したパケットのパケットパターンが、パケットパターンリスト１３０とマッチしない場合、受信したパケットを破棄する。
【００２８】
サブＲＯＭ２０２は、モード復帰判断プログラム２２０を記憶する。
【００２９】
２．メインコントローラーの動作フロー
【００３０】
図２は、メインコントローラーの第１の動作フローを示す。
【００３１】
メインコントローラー１００のメインプロセッサー１０１は、スリープモードに移行すべきトリガ（ユーザーの操作やネットワークを介した情報の受信が一定時間無いなど）を検出する（ステップＳ１０１、ＹＥＳ）。
【００３２】
すると、メインプロセッサー１０１は、メインＲＯＭ１０２が記憶するパケットパターン生成プログラム１２０をメインＲＡＭ１０３にロードして実行することにより、パケットパターンリスト１３０を生成する（詳細は後述）。メインプロセッサー１０１は、生成したパケットパターンリスト１３０を、サブコントローラー２００に供給する。具体的には、メインプロセッサー１０１は、パケットパターンリスト１３０を、サブＲＡＭ２０３に書き込む（ステップＳ１０２）。
【００３３】
メインプロセッサー１０１は、通常モードからスリープモードに移行することをサブコントローラー２００のサブプロセッサー２０１に通知し、スリープモードに移行（メインコントローラー１００の電源をオフ）する（ステップＳ１０３）。
３．パケットパターンの生成方法
【００３４】
図３は、メインコントローラーの第２の動作フローを示す。
【００３５】
メインコントローラー１００のメインプロセッサー１０１がパケットパターンリスト１３０を生成する方法（ステップＳ１０２）を説明する。
【００３６】
まず、メインプロセッサー１０１は、「all_tcp_pattern_is_created = FALSE」のフラグを立てる（ステップＳ１１１）。このフラグは、メインプロセッサー１０１は、使用中のＴＣＰポートをそれぞれ指定するパケットパターン（ポート別ＴＣＰパケットパターン）を一切生成していないことを意味する。
【００３７】
メインプロセッサー１０１は、全ての使用中のポート（ＴＣＰ／ＩＰｖ４ポート、ＴＣＰ／ＩＰｖ６ポート、ＵＤＰ／ＩＰｖ４ポート、ＵＤＰ／ＩＰｖ６ポートを含む）のリスト（使用中ポートリスト１１０）を生成する。メインプロセッサー１０１は、生成した使用中ポートリスト１１０を、メインＲＡＭ１０３に書き込む（ステップＳ１１２）。
【００３８】
メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる全ての使用中のポートをそれぞれ指定するパケットパターンの生成を開始する（ステップＳ１１３）。
【００３９】
メインプロセッサー１０１は、使用中ポートリスト１１０が、ＴＣＰポート（ＴＣＰ／ＩＰｖ４ポート、ＴＣＰ／ＩＰｖ６ポート）を含むか否かを判断する（ステップＳ１１５）。
【００４０】
メインプロセッサー１０１は、使用中ポートリスト１１０が、ＴＣＰポート（ＴＣＰ／ＩＰｖ４ポート、ＴＣＰ／ＩＰｖ６ポート）を含むと判断する（ステップＳ１１５、ＹＥＳ）。
【００４１】
メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、使用中のＴＣＰポートを指定するパケットパターン（ポート別ＴＣＰパケットパターン）を、１個ずつ（ステップＳ１１６、ＮＯ）生成する。メインプロセッサー１０１は、生成したパケットパターンをリスト化することにより、パケットパターンリスト１３０を生成する。メインプロセッサー１０１は、生成したパケットパターンリスト１３０を、メインＲＡＭ１０３に書き込む（ステップＳ１１７）。ポート別ＴＣＰパケットパターンの具体例を説明する。
【００４２】
図４は、ＴＣＰ／ＩＰｖ４ポートのポート別ＴＣＰパケットパターンを模式的に示す。
【００４３】
ＴＣＰ／ＩＰｖ４ポートのポート別ＴＣＰパケットパターンにおいて、図示のパケット構造に含まれる「タイプ」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「０ｘ０８００」が設定される。「プロトコル」フィールドのマスク（マッチングする位置）「０ｘＦＦ」に対してバリュー（マッチングする値）として「０ｘ０６」が設定される。「デスティネーションポート」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「使用中ポート番号」（ポート別ＴＣＰパケットパターン毎に異なる値）が設定される。
【００４４】
図５は、ＴＣＰ／ＩＰｖ６ポートのポート別ＴＣＰパケットパターンを模式的に示す。
【００４５】
ＴＣＰ／ＩＰｖ６ポートのポート別ＴＣＰパケットパターンにおいて、図示のパケット構造に含まれる「タイプ」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「０ｘ８６ＤＤ」が設定される。「プロトコル」フィールドのマスク（マッチングする位置）「０ｘＦＦ」に対してバリュー（マッチングする値）として「０ｘ０６」が設定される。「デスティネーションポート」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「使用中ポート番号」（ポート別ＴＣＰパケットパターン毎に異なる値）が設定される。
【００４６】
メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるポート別ＴＣＰパケットパターンの数が、上限値を超過したか否かを判断する（ステップＳ１１８）。「上限値」は、例えば、サブＲＡＭ２０３の性能等に依存して設定される（パケットパターンリスト１３０は、後にサブＲＡＭ２０３に書き込まれる）。例えば、上限値＝６４である。
【００４７】
メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０に含まれるポート別ＴＣＰパケットパターンの数が、上限値を超過していないと判断すると（ステップＳ１１８、ＮＯ）、使用中ポートリスト１１０に含まれる、使用中のＴＣＰポートを指定するポート別ＴＣＰパケットパターンを生成し、パケットパターンリスト１３０に追加し続ける（ステップＳ１１６、ＮＯ）。
【００４８】
メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、全ての使用中のＴＣＰポートを指定するポート別ＴＣＰパケットパターンを生成すると、「all_tcp_pattern_is_created = True」のフラグを立てる（ステップＳ１１６、ＹＥＳ）。
【００４９】
一方、メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０に含まれるポート別ＴＣＰパケットパターンの数が、上限値を超過したことを判断する（ステップＳ１１８、ＹＥＳ）。これは、使用中ポートリスト１１０に含まれる、全ての使用中のポートを指定するポート別ＵＤＰパケットパターン（後述）及びポート別ＴＣＰパケットパターンを生成すると仮定すると、その合計数が上限値を超過することを意味する。
【００５０】
この場合、メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０から、生成した全てのポート別ＴＣＰパケットパターン（ＴＣＰ／ＩＰｖ４、ＴＣＰ／ＩＰｖ６）を削除する（ステップＳ１１９）。その結果、パケットパターンリスト１３０に含まれるポート別ＴＣＰパケットパターンの数はゼロとなる。
【００５１】
メインプロセッサー１０１は、異なるＴＣＰプロトコル（ＴＣＰ／ＩＰｖ４、ＴＣＰ／ＩＰｖ６）毎に、ＴＣＰポートを指定しない１個のパケットパターン（ポート不指定ＴＣＰパケットパターン）を生成する。具体的には、メインプロセッサー１０１は、ＴＣＰ／ＩＰｖ４プロトコルの１個のポート不指定ＴＣＰパケットパターンと、ＴＣＰ／ＩＰｖ６プロトコルの１個のポート不指定ＴＣＰパケットパターンとの、合計２個のポート不指定ＴＣＰパケットパターンを生成する。メインプロセッサー１０１は、生成した２個のポート不指定ＴＣＰパケットパターンを、パケットパターンリスト１３０に書き込む（ステップＳ１２０）。これにより、メインプロセッサー１０１は、ＴＣＰパケットパターンの生成を完了し、「all_tcp_pattern_is_created = True」のフラグを立てる（ステップＳ１２１）。ポート不指定ＴＣＰパケットパターンの具体例を説明する。
【００５２】
図６は、ＴＣＰ／ＩＰｖ４ポートのポート不指定ＴＣＰパケットパターンを模式的に示す。
【００５３】
ＴＣＰ／ＩＰｖ４ポートのポート別ＴＣＰパケットパターン（図４）と異なる点は、ポート不指定ＴＣＰパケットパターン（図６）が、「デスティネーションポート」フィールドの設定値を持たない（マッチングを行う対象でない）点である。
【００５４】
図７は、ＴＣＰ／ＩＰｖ６ポートのポート不指定ＴＣＰパケットパターンを模式的に示す。
【００５５】
ＴＣＰ／ＩＰｖ６ポートのポート別ＴＣＰパケットパターン（図５）と異なる点は、ポート不指定ＴＣＰパケットパターン（図７）が、「デスティネーションポート」フィールドの設定値を持たない（マッチングを行う対象でない）点である。
【００５６】
以上のように、原則的に、メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、全ての使用中のＴＣＰポートを指定するポート別ＴＣＰパケットパターンを生成し、パケットパターンリスト１３０に書き込む（ステップＳ１１６、ＹＥＳ）。例外的に、メインプロセッサー１０１は、ポート別ＴＣＰパケットパターンの数が上限値を超過した場合は（ステップＳ１１８、ＹＥＳ）、２個のポート不指定ＴＣＰパケットパターンを生成し、パケットパターンリスト１３０に書き込む（ステップＳ１２１）。
【００５７】
続いて、メインプロセッサー１０１は、ＵＤＰパケットパターンの生成を開始する（ステップＳ１１５、ＮＯ）。
【００５８】
メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、使用中のＵＤＰポート（ＵＤＰ／ＩＰｖ４ポート、ＵＤＰ／ＩＰｖ６ポート）を指定するパケットパターン（ポート別ＵＤＰパケットパターン）を、１個ずつ生成し、パケットパターンリスト１３０に追加する（ステップＳ１２２）。ポート別ＵＤＰパケットパターンの具体例を説明する。
【００５９】
図８は、ＵＤＰ／ＩＰｖ４ポートのポート別ＵＤＰパケットパターンを模式的に示す。
【００６０】
ＵＤＰ／ＩＰｖ４ポートのポート別ＵＤＰパケットパターンにおいて、図示のパケット構造に含まれる「タイプ」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「０ｘ０８００」が設定される。「プロトコル」フィールドのマスク（マッチングする位置）「０ｘＦＦ」に対してバリュー（マッチングする値）として「０ｘ１１」が設定される。「デスティネーションポート」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「使用中ポート番号」（ポート別ＵＤＰパケットパターン毎に異なる値）が設定される。
【００６１】
図９は、ＵＤＰ／ＩＰｖ６ポートのポート別ＵＤＰパケットパターンを模式的に示す。
【００６２】
ＵＤＰ／ＩＰｖ６ポートのポート別ＵＤＰパケットパターンにおいて、図示のパケット構造に含まれる「タイプ」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「０ｘ８６ＤＤ」が設定される。「プロトコル」フィールドのマスク（マッチングする位置）「０ｘＦＦ」に対してバリュー（マッチングする値）として「０ｘ１１」が設定される。「デスティネーションポート」フィールドのマスク（マッチングする位置）「０ｘＦＦＦＦ」に対してバリュー（マッチングする値）として「使用中ポート番号」（ポート別ＵＤＰパケットパターン毎に異なる値）が設定される。
【００６３】
メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるＴＣＰパケットパターン及びポート別ＵＤＰパケットパターンの合計数が、上限値（例えば、上限値＝６４）を超過したか否かを判断する（ステップＳ１２３）。具体的には、メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるポート別ＴＣＰパケットパターン（ステップＳ１１６、ＹＥＳ）及びポート別ＵＤＰパケットパターンの合計数が、上限値を超過したか否かを判断する。あるいは、メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるポート不指定ＴＣＰパケットパターン（ステップＳ１２１）及びポート別ＵＤＰパケットパターンの合計数が、上限値を超過したか否かを判断する。
【００６４】
メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるＴＣＰパケットパターン（ポート別ＴＣＰパケットパターン、又は、ポート不指定ＴＣＰパケットパターン）及びポート別ＵＤＰパケットパターンの合計数が、上限値を超過していないと判断すると（ステップＳ１２３、ＮＯ）、使用中ポートリスト１１０に含まれる、使用中のＵＤＰポートを指定するパケットパターン（ポート別ＵＤＰパケットパターン）を生成し、パケットパターンリスト１３０に追加し続ける（ステップＳ１１５、ＮＯ）。
【００６５】
最終的に、メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、全ての使用中のＵＤＰポートを指定するポート別ＵＤＰパケットパターンを生成する（ステップＳ１１４、ＹＥＳ）。
【００６６】
すると、メインプロセッサー１０１は、メインＲＡＭ１０３から、使用中ポートリスト１１０を削除する（ステップＳ１２５）。メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０を、システムに適用すべきパケットパターンリスト１３０として決定する（ステップＳ１２６）。
【００６７】
一方、メインプロセッサー１０１は、パケットパターンリスト１３０に含まれるＴＣＰパケットパターン（ポート別ＴＣＰパケットパターン、又は、ポート不指定ＴＣＰパケットパターン）及びポート別ＵＤＰパケットパターンの合計数が、上限値を超過したと判断する（ステップＳ１２３、ＹＥＳ）。
【００６８】
すると、メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０に含まれるＴＣＰパケットパターンが、複数のポート別ＴＣＰパケットパターン、又は、２個のポート不指定ＴＣＰパケットパターンの何れであるかを判断する（ステップＳ１２４）。
【００６９】
メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０に含まれるＴＣＰパケットパターンが、複数のポート別ＴＣＰパケットパターン（ステップＳ１１６、ＹＥＳ）であると判断する（ステップＳ１２４、ＹＥＳ）。
【００７０】
すると、メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０から、生成した全てのポート別ＴＣＰパケットパターンを削除する（ステップＳ１１９）。メインプロセッサー１０１は、２個のポート不指定ＴＣＰパケットパターンを生成し、パケットパターンリスト１３０に書き込み（ステップＳ１２０）、「all_tcp_pattern_is_created = True」のフラグを立てる（ステップＳ１２１）。
【００７１】
この場合、パケットパターンリスト１３０に含まれるパケットパターンの数が減ったため、メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、使用中のＵＤＰポートを指定するポート別ＵＤＰパケットパターンを生成し、パケットパターンリスト１３０に追加し続けることができる（ステップＳ１２３、ＮＯ）。
【００７２】
その結果、メインプロセッサー１０１は、使用中ポートリスト１１０に含まれる、全ての使用中のＵＤＰポートを指定するポート別ＵＤＰパケットパターンを生成する（ステップＳ１１４、ＹＥＳ）。この場合、パケットパターンリスト１３０に含まれるポート不指定ＴＣＰパケットパターン及びポート別ＵＤＰパケットパターンの合計数は、上限値を超過しない（ステップＳ１２３、ＮＯ）。
【００７３】
メインプロセッサー１０１は、メインＲＡＭ１０３から、使用中ポートリスト１１０を削除する（ステップＳ１２５）。メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０を、システムに適用すべきパケットパターンリスト１３０として決定する（ステップＳ１２６）。
【００７４】
一方、メインプロセッサー１０１は、パケットパターンリスト１３０（合計数が上限値を超過）に含まれるＴＣＰパケットパターンが、２個のポート不指定ＴＣＰパケットパターン（ステップＳ１２１）であると判断する（ステップＳ１２４、ＮＯ）。
【００７５】
この場合、メインプロセッサー１０１は、一部のポート別ＵＤＰパケットパターンと、全て（２個）のポート不指定ＴＣＰパケットパターンとを含むパケットパターンリスト１３０を、最終的に生成する（ステップＳ１２７）。このとき、パケットパターンリスト１３０に含まれる、一部のポート別ＵＤＰパケットパターンと、全て（２個）のポート不指定ＴＣＰパケットパターンとの合計数は、上限値である。
【００７６】
メインプロセッサー１０１は、メインＲＡＭ１０３から、使用中ポートリスト１１０を削除する（ステップＳ１２５）。メインプロセッサー１０１は、メインＲＡＭ１０３に書き込まれたパケットパターンリスト１３０を、システムに適用すべきパケットパターンリスト１３０として決定する（ステップＳ１２６）。
【００７７】
４．サブコントローラーの動作フロー
【００７８】
図１０は、サブコントローラーの動作フローを示す。
【００７９】
スリープモード時に、サブコントローラー２００のサブプロセッサー２０１は、パケットを通信インターフェース３００を介して外部機器（図示せず）から受信する（ステップＳ２０１、ＹＥＳ）。
【００８０】
サブプロセッサー２０１は、受信したパケットのパケットパターンと、サブＲＡＭ２０３に書き込まれたパケットパターンリスト１３０に含まれるＴＣＰパケットパターン（ポート別ＴＣＰパケットパターン、又は、ポート不指定ＴＣＰパケットパターン）及びポート別ＵＤＰパケットパターンとを、マッチングする（ステップＳ２０２）。
【００８１】
サブプロセッサー２０１は、受信したパケットのパケットパターンと、サブＲＡＭ２０３に書き込まれたパケットパターンリスト１３０に含まれるＴＣＰパケットパターン（ポート別ＴＣＰパケットパターン、又は、ポート不指定ＴＣＰパケットパターン）及びポート別ＵＤＰパケットパターンとの何れかが、マッチすると判断する（ステップＳ２０３、ＹＥＳ）。
【００８２】
すると、サブプロセッサー２０１は、メインプロセッサー１０１に、スリープモードから通常モードへの復帰（ウェイクアップ）を要求する（ステップＳ２０４）。サブプロセッサー２０１は、メインプロセッサー１０１から、スリープモードから通常モードへの復帰の通知を受けると、メインプロセッサー１０１に、パケットを転送する（ステップＳ２０５）。
【００８３】
一方、サブプロセッサー２０１は、受信したパケットのパケットパターンと、サブＲＡＭ２０３に書き込まれたパケットパターンリスト１３０に含まれるパケットパターンとの何れも、マッチしないと判断する（ステップＳ２０３、ＮＯ）。すると、サブプロセッサー２０１は、受信したパケットを破棄する（ステップＳ２０６）。
【００８４】
５．結語
【００８５】
（１）本実施形態によれば、メインコントローラー１００のメインプロセッサー１０１は、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンの合計数が、上限値を超過すると判断すると（ステップＳ１１８、Ｓ１２３、ＹＥＳ）、異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成する（ステップＳ１２０−Ｓ１２１）。メインコントローラー１００のメインプロセッサー１０１は、ポート別ＵＤＰパケットパターン及びポート不指定ＴＣＰパケットパターンを、サブコントローラー２００のサブプロセッサー２０１に供給し（ステップＳ１０２）、スリープモードに移行する（ステップＳ１０３）。サブコントローラー２００のサブプロセッサー２０１は、スリープモード中に受信したパケットが、ポート別ＵＤＰパケットパターンにマッチするか、ポート不指定ＴＣＰパケットパターンにマッチする（即ち、全てのＴＣＰパケット）場合（ステップＳ２０３、ＹＥＳ）、メインプロセッサー１０１に、スリープモードからの復帰を要求する（ステップＳ２０４）。
【００８６】
これにより、情報処理装置１０は、スリープモード中にＴＣＰパケットを受信した場合には、必ずスリープモードから復帰する。ＴＣＰ／ＩＰはユニキャスト通信であるため、情報処理装置１０が受信するＴＣＰパケットは、基本的には、情報処理装置１０宛である。従って、情報処理装置１０は、殆どのＴＣＰパケットを処理する必要がある。このため、情報処理装置１０が、ＴＣＰパケットを受信した場合に必ずスリープモードから復帰するとしても、不要な復帰（例えば、未使用のＴＣＰポート宛のＴＣＰパケットを受信した場合）の機会は少なくて済む。一方、ＵＤＰ／ＩＰはブロードキャスト及びマルチキャスト通信が可能であるため、情報処理装置１０は、情報処理装置１０宛でないＵＤＰパケット（例えば、名前解決クエリ等）を受信することも多い。このため、情報処理装置１０がスリープモード中にＵＤＰパケットを受信した場合に必ずスリープモードから復帰すると仮定すると、実際には不要にも拘らず高頻度で復帰したり、あるいは、スリープモードに移行自体できなくなるおそれがある。これに対して、本実施形態によれば、ポート不指定ＴＣＰパケットパターンを作成することによりパケットパターンの合計数を減らすことでサブＲＡＭ２０３の使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【００８７】
パケットパターンの合計数を減らすための手段として、例えば、パケットパターンのデータ構造にリスト構造を用いて、多数のパケットパターンを設定することが考えられる。しかしながら、この方法では、プアなスペックのサブコントローラー２００がリスト構造のパケットパターンをマッチングするのに処理時間がかかるおそれがある。逆に、高速にリスト構造のパケットパターンをマッチングするためにサブコントローラー２００のスペックを上げると、費用が高額になったり、省エネルギー効果が劣るおそれがある。これに対して、本実施形態によれば、異なるＴＣＰプロトコル毎に、ＴＣＰポートを指定しない１個のパケットパターンであるポート不指定ＴＣＰパケットパターンを生成する（ステップＳ１２０−Ｓ１２１）ことで、パケットパターンの合計数を減らすことができる。
【００８８】
（２）本実施形態によれば、メインコントローラー１００のメインプロセッサー１０１は、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンの合計数が、上限値を超過しないと判断すると（ステップＳ１１８、Ｓ１２３、ＮＯ）、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンを、サブコントローラー２００のサブプロセッサー２０１に供給し（ステップＳ１０２）、スリープモードに移行する（ステップＳ１０３）。これにより、ポート別ＴＣＰパケットパターンをサブコントローラー２００のサブプロセッサー２０１に供給することで、情報処理装置１０が、ＴＣＰパケットを受信した場合に、不要な復帰（例えば、未使用のＴＣＰポート宛のＴＣＰパケットを受信した場合）の機会が無くなる。これにより、本実施形態によれば、ポート別ＵＤＰパケットパターン及びポート別ＴＣＰパケットパターンの合計数が、上限値を超過しないことを保証して、サブＲＡＭ２０３の使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【００８９】
（３）本実施形態によれば、メインコントローラー１００のメインプロセッサー１０１は、ポート別ＵＤＰパケットパターン及びポート不指定ＴＣＰパケットパターン（ステップＳ１２４、ＮＯ）の合計数が、上限値を超過すると判断すると（ステップＳ１２３、ＮＯ）、全てのポート不指定ＴＣＰパケットパターンとの合計数が上限値である、一部のポート別ＵＤＰパケットパターンと、全てのポート不指定ＴＣＰパケットパターンとを（ステップＳ１２７）、サブコントローラー２００のサブプロセッサー２０１に供給し（ステップＳ１０２）、スリープモードに移行する（ステップＳ１０３）。これにより、情報処理装置１０は、スリープモード中にＴＣＰパケットを受信した場合と、一部のＵＤＰパケットを受信した場合には、スリープモードから復帰する。これにより、情報処理装置１０がスリープモード中にＵＤＰパケットを受信した場合の不要な復帰の機会を、出来るだけ少なくすることができる。
【００９０】
（４）本実施形態によれば、メインコントローラー１００のメインプロセッサー１０１は、ＴＣＰ／ＩＰｖ４プロトコルの１個のポート不指定ＴＣＰパケットパターンと、ＴＣＰ／ＩＰｖ６プロトコルの１個のポート不指定ＴＣＰパケットパターンとを作成する（ステップＳ１２０）。これにより、ポート不指定ＴＣＰパケットパターンを作成することによりパケットパターンの合計数を減らすことでサブＲＡＭ２０３の使用容量を抑えながらも、不要な復帰の機会を減らすことができる。
【００９１】
本技術の各実施形態及び各変形例について上に説明したが、本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００９２】
情報処理装置１０
メインコントローラー１００
メインプロセッサー１０１
メインＲＯＭ１０２
メインＲＡＭ１０３
サブコントローラー２００
サブプロセッサー２０１
サブＲＯＭ２０２
サブＲＡＭ２０３
通信インターフェース３００
スイッチャー４００
【図１】
2020174288.tif 000003
【図２】
2020174288.tif 000004
【図３】
2020174288.tif 000005
【図４】
2020174288.tif 000006
【図５】
2020174288.tif 000007
【図６】
2020174288.tif 000008
【図７】
2020174288.tif 000009
【図８】
2020174288.tif 000010
【図９】
2020174288.tif 000011
【図１０】
2020174288.tif 000012