(57)【要約】【課題】ネットワークプロセッサが電力を消費する量を低減することが可能なネットワークプロセッサ制御装置を提供すること。【解決手段】制御装置１００は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサ（ＮＰ）を制御する。ＮＰは、プロセッサエレメント（ＰＥ）とバッファとを含む処理ユニットを複数備える。複数の処理ユニットは、直列に接続される。制御装置１００は、複数のバッファのそれぞれに対して、未処理データ数を取得する未処理データ数取得部１０１と、複数のＰＥのそれぞれに対して、未処理データ数に基づいて、当該ＰＥの動作周波数を決定する動作周波数決定部１０２と、複数のＰＥのそれぞれに対して、上記決定された動作周波数にて当該ＰＥが動作するように当該ＰＥを制御する動作周波数制御部１０３と、を備える。【選択図】図５
2013003931.tif 000002
【特許請求の範囲】
【請求項１】
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ制御装置。
【請求項２】
請求項１に記載のネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御装置は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ制御装置。
【請求項３】
請求項１又は請求項２に記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、最も前段側の処理ユニットを構成するプロセッサエレメントに対する前記動作周波数として、当該プロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記未処理データ数が多くなるほど高くなる値を前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記バッファが記憶可能なデータの最大数である最大データ数に対する、前記未処理データ数の割合を、当該バッファとともに処理ユニットを構成するプロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数に乗じた値を、前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
【請求項７】
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサであって、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ。
【請求項８】
請求項７に記載のネットワークプロセッサであって、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ。
【請求項９】
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記ネットワークプロセッサ制御方法は、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、ネットワークプロセッサ制御方法。
【請求項１０】
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムであって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成されたプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットに対する処理を実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置に関する。
【背景技術】
【０００２】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）網におけるパケットの通信は、ルータ等の通信中継装置に搭載されたネットワークプロセッサが、随時受信するパケットを待機させることなく、連続して処理することを要求する。
【０００３】
そのため、ネットワークプロセッサは、複数のプロセッサエレメントを備える。各プロセッサエレメントは、パケットに対する処理（全体処理）の一部を構成する部分処理を実行する。これにより、ネットワークプロセッサは、パケットに対する全体処理（例えば、パケットを転送する処理等）をパイプライン方式に従って実行する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】河合栄治、門林雄基、山口英、「ネットワークプロセッサ技術に関するサーベイ」、電子情報通信学会技術研究報告  インターネットアーキテクチャ、電子情報通信学会、２００３年５月、第１０３巻、第６２号、ｐ．５５−６０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、部分処理を実行するための処理負荷は、プロセッサエレメント毎に異なる。従って、処理負荷が相対的に小さいプロセッサエレメントにおいて、いずれの処理も実行していない待機時間が生じる。ところで、プロセッサエレメントは、いずれの処理も実行していない状態においても、電力を消費する。従って、上記ネットワークプロセッサにおいては、電力が無駄に消費されてしまうという問題があった。
【０００６】
このため、本発明の目的は、上述した課題である「電力が無駄に消費されてしまう場合が生じること」を解決することが可能なネットワークプロセッサ制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
かかる目的を達成するため本発明の一形態であるネットワークプロセッサ制御装置は、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
【０００８】
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
【０００９】
加えて、上記ネットワークプロセッサ制御装置は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
【００１０】
また、本発明の他の形態であるネットワークプロセッサは、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサである。
【００１１】
更に、このネットワークプロセッサは、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
【００１２】
更に、上記ネットワークプロセッサは、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
【００１３】
また、本発明の他の形態であるネットワークプロセッサ制御方法は、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する方法である。
【００１４】
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
【００１５】
加えて、上記ネットワークプロセッサ制御方法は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する方法である。
【００１６】
また、本発明の他の形態であるプログラムは、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムである。
【００１７】
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
【００１８】
加えて、上記プログラムは、上記ネットワークプロセッサ制御装置に、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成される。
【発明の効果】
【００１９】
本発明は、以上のように構成されることにより、ネットワークプロセッサが電力を消費する量を低減することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１実施形態に係るネットワークプロセッサの構成を表す図である。
【図２】本発明の第１実施形態に係る動作周波数制御回路の構成を表す図である。
【図３】本発明の第１実施形態に係るネットワークプロセッサが各プロセッサエレメントの動作周波数を制御するために実行する処理を示したフローチャートである。
【図４】本発明の第１実施形態に係るネットワークプロセッサがプロセッサエレメントにバス使用権を付与するために実行する処理を示したフローチャートである。
【図５】本発明の第１実施形態に係るネットワークプロセッサ制御装置の構成を表す図である。
【発明を実施するための形態】
【００２１】
以下、本発明に係る、ネットワークプロセッサ制御装置、ネットワークプロセッサ、ネットワークプロセッサ制御方法、及び、プログラム、の各実施形態について図１〜図５を参照しながら説明する。
【００２２】
＜第１実施形態＞
（構成）
図１に示したように、第１実施形態に係るネットワークプロセッサ１は、複数（本例では、Ｎ個、ここで、Ｎは、２以上の整数）の処理ユニット１０，…（処理ユニット＃１〜処理ユニット＃Ｎ）と、動作周波数制御回路２０と、メモリコントローラ（バス調停手段）３０と、を備える。本例では、ネットワークプロセッサ１は、ルータ、又は、スイッチ等の通信を中継する通信中継装置に搭載される。
【００２３】
ネットワークプロセッサ１は、パケットに対する全体処理をパイプライン方式に従って実行する。本例では、ネットワークプロセッサ１は、ネットワークプロセッサ１が搭載された通信中継装置が受信したパケットを転送する処理を全体処理として実行する。
【００２４】
また、動作周波数制御回路２０、及び、メモリコントローラ３０は、ネットワークプロセッサ１を制御するネットワークプロセッサ制御装置を構成している。即ち、本例では、ネットワークプロセッサ制御装置は、ネットワークプロセッサ１に搭載されている。なお、ネットワークプロセッサ制御装置は、ネットワークプロセッサ１に搭載されていなくてもよい。
【００２５】
複数の処理ユニット１０，…は、直列に接続されている。複数の処理ユニット１０，…のそれぞれは、バッファ１１と、プロセッサエレメント１２と、を備える。
【００２６】
各バッファ１１は、前段側に接続された処理ユニット１０を構成するプロセッサエレメント１２により出力されたデータを記憶する。本例では、各バッファ１１は、リングバッファである。
【００２７】
複数のプロセッサエレメント１２，…には、全体処理を分割した複数の部分処理（部分処理＃１〜部分処理＃Ｎ）が１つずつ割り当てられている。
【００２８】
各プロセッサエレメント１２は、当該プロセッサエレメント１２とともに処理ユニット１０を構成するバッファ１１に記憶されているデータに対して、当該プロセッサエレメント１２に対して割り当てられた部分処理を実行する。各プロセッサエレメント１２は、後段側に接続された処理ユニット１０を構成するバッファ１１へ部分処理の実行結果を表すデータを出力する。
【００２９】
また、各プロセッサエレメント１２は、動作周波数制御回路２０により出力された動作周波数（クロック周波数）を受け付ける。プロセッサエレメント１２は、動作周波数を受け付けた場合、実際の動作周波数を、当該受け付けた動作周波数に変更する。
【００３０】
より具体的に述べると、処理ユニット＃１（最も前段側の処理ユニット１０）のバッファ１１は、ネットワークプロセッサ１に入力されたデータとしてのパケットを記憶する。処理ユニット＃１のプロセッサエレメント１２は、処理ユニット＃１のバッファ１１に記憶されているデータに対して部分処理＃１を実行する。
【００３１】
処理ユニット＃１のプロセッサエレメント１２は、処理ユニット＃２のバッファ１１へ部分処理＃１の実行結果を表すデータを出力する。処理ユニット＃２のバッファ１１は、処理ユニット＃１により出力されたデータを記憶する。処理ユニット＃２のプロセッサエレメント１２は、処理ユニット＃２のバッファ１１に記憶されているデータに対して部分処理＃２を実行する。処理ユニット＃２のプロセッサエレメント１２は、後段側の処理ユニット１０のバッファ１１へ部分処理＃２の実行結果を表すデータを出力する。
【００３２】
処理ユニット＃Ｎのバッファ１１は、前段側の処理ユニット１０により出力されたデータを記憶する。処理ユニット＃Ｎのプロセッサエレメント１２は、処理ユニット＃Ｎのバッファ１１に記憶されているデータに対して部分処理＃Ｎを実行する。処理ユニット＃Ｎのプロセッサエレメント１２は、ネットワークプロセッサ１の外部へ部分処理＃Ｎの実行結果を表すデータを出力する。
【００３３】
動作周波数制御回路２０は、図２に示したように、未処理データ数取得部（未処理データ数取得手段）２１と、動作周波数決定部（動作周波数決定手段）２２と、動作周波数制御部（動作周波数制御手段）２３と、を備える。
【００３４】
未処理データ数取得部２１は、複数のバッファ１１，…のそれぞれに対して、未処理データ数を取得する。あるバッファ１１に対する未処理データ数は、当該バッファ１１に記憶され、且つ、当該バッファ１１とともに処理ユニット１０を構成するプロセッサエレメント１２による部分処理が未実行であるデータの数である。
【００３５】
動作周波数決定部２２は、複数のプロセッサエレメント１２，…のそれぞれに対して、当該プロセッサエレメント１２とともに処理ユニット１０を構成するバッファ１１に対して取得された未処理データ数に基づいて、当該プロセッサエレメント１２の動作周波数を決定する。
【００３６】
本例では、動作周波数決定部２２は、複数のプロセッサエレメント１２，…のそれぞれに対して、当該プロセッサエレメント１２とともに処理ユニット１０を構成するバッファ１１に対して取得された未処理データ数が多くなるほど高くなる値を動作周波数として決定する。
【００３７】
より具体的に述べると、動作周波数決定部２２は、複数のプロセッサエレメント１２，…のそれぞれに対して、最大データ数に対する未処理データ数の割合（充填率）を、最高動作周波数に乗じた値を、動作周波数として決定する。
【００３８】
ここで、最大データ数は、動作周波数を決定する対象となるプロセッサエレメント１２とともに処理ユニット１０を構成するバッファ１１が記憶可能なデータの最大数である。また、最高動作周波数は、動作周波数を決定する対象となるプロセッサエレメント１２が動作可能な最高の動作周波数である。
【００３９】
なお、動作周波数決定部２２は、未処理データ数と、未処理データ数が大きくなるほど大きくなる係数と、の関係を表す情報を予め記憶し、当該関係と、取得された未処理データ数と、に基づいて係数を取得し、取得された係数を最高動作周波数に乗じた値を、動作周波数として決定するように構成されていてもよい。
【００４０】
動作周波数制御部２３は、複数のプロセッサエレメント１２，…のそれぞれに対して、動作周波数決定部２２により決定された動作周波数にて当該プロセッサエレメント１２が動作するように当該プロセッサエレメント１２を制御する。本例では、動作周波数制御部２３は、複数のプロセッサエレメント１２，…のそれぞれに対して、動作周波数決定部２２により決定された動作周波数を当該プロセッサエレメント１２へ出力する。
【００４１】
メモリコントローラ３０は、複数のプロセッサエレメント１２，…のそれぞれとバスを介して接続されている。更に、メモリコントローラ３０は、バス３を介してメモリ２と接続されている。
【００４２】
メモリコントローラ３０は、複数のプロセッサエレメント１２，…のそれぞれにより出力されたアクセス要求を受け付ける。アクセス要求は、メモリ２へのアクセス（メモリ２からのデータの読み出し、又は、メモリ２へのデータの書き込み）を要求する旨を表す情報である。
【００４３】
メモリコントローラ３０は、受け付けたアクセス要求を出力したプロセッサエレメント１２，…の中から、バス使用権を付与するプロセッサエレメント１２を決定する。バス使用権は、バス３を使用する権利である。
【００４４】
本例では、メモリコントローラ３０は、複数のバッファ１１，…のそれぞれに対して、未処理データ数を取得する。更に、メモリコントローラ３０は、取得された未処理データ数に基づいて、バス使用権を付与するプロセッサエレメント１２，…を決定する。
【００４５】
メモリコントローラ３０は、決定したプロセッサエレメント１２にバス使用権を付与する。
メモリコントローラ３０によってバス使用権が付与されたプロセッサエレメント１２は、バス３を介してメモリ２へアクセスする（メモリ２からデータを読み出す、又は、メモリ２にデータを書き込む）ことにより、部分処理を実行する。
【００４６】
（作動）
次に、上述したネットワークプロセッサ１の作動について説明する。
ネットワークプロセッサ１は、図３にフローチャートにより示した処理を、ネットワークプロセッサ１が搭載された通信中継装置の起動時に実行するようになっている。
【００４７】
具体的に述べると、ネットワークプロセッサ１は、この処理を開始すると、予め設定された待機時間が経過するまで待機する（ステップＳ１０１）。
【００４８】
待機時間が経過する毎に、ネットワークプロセッサ１は、ステップＳ１０１にて「Ｙｅｓ」と判定してステップＳ１０２へ進み、複数の処理ユニット１０，…のそれぞれに対する未処理データ数を取得する。
【００４９】
そして、ネットワークプロセッサ１は、複数の処理ユニット１０，…のそれぞれに対して、充填率（最大データ数に対する未処理データ数の割合）を算出する（ステップＳ１０３）。
【００５０】
次いで、ネットワークプロセッサ１は、複数の処理ユニット１０，…のそれぞれに対して、算出された充電率を最高動作周波数に乗じた値を、動作周波数として決定する（ステップＳ１０４）。
【００５１】
その後、ネットワークプロセッサ１は、複数のプロセッサエレメント１２，…のそれぞれに対して、決定された動作周波数にて当該プロセッサエレメント１２が動作するように当該プロセッサエレメント１２を制御する（ステップＳ１０５）。
【００５２】
次いで、ネットワークプロセッサ１は、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０５の処理を繰り返し実行する。
【００５３】
また、ネットワークプロセッサ１は、図４に示したフローチャートにより示した処理を、ネットワークプロセッサ１が搭載された通信中継装置の起動時に実行するようになっている。
【００５４】
具体的に述べると、ネットワークプロセッサ１は、この処理を開始すると、複数の処理ユニット１０，…のいずれかから、アクセス要求を受け付けるまで待機する（ステップＳ２０１）。
【００５５】
そして、ネットワークプロセッサ１は、アクセス要求を受け付けると、ステップＳ２０１にて「Ｙｅｓ」と判定してステップＳ２０２へ進み、複数の処理ユニット１０，…のそれぞれに対する未処理データ数を取得する。
【００５６】
次いで、ネットワークプロセッサ１は、複数の処理ユニット１０，…のそれぞれに対して、充填率（最大データ数に対する未処理データ数の割合）を算出する（ステップＳ２０３）。そして、ネットワークプロセッサ１は、算出された充填率に基づいて、バス使用権を付与するプロセッサエレメント１２を決定する（ステップＳ２０４）。
【００５７】
本例では、ネットワークプロセッサ１は、バス使用権を付与するプロセッサエレメント１２として、算出された充填率が最大であるプロセッサエレメント１２を決定する。なお、ネットワークプロセッサ１は、バス使用権を付与するプロセッサエレメント１２として、取得された未処理データ数が最大であるプロセッサエレメント１２を決定するように構成されていてもよい。
【００５８】
その後、ネットワークプロセッサ１は、上記ステップＳ２０４にて決定されたプロセッサエレメント１２に、バス使用権を付与する（ステップＳ２０５）。
これにより、バス使用権が付与されたプロセッサエレメント１２は、バス３を介してメモリ２へアクセスすることにより、部分処理を実行する。
【００５９】
次いで、ネットワークプロセッサ１は、ステップＳ２０１へ戻り、ステップＳ２０１〜ステップＳ２０５の処理を繰り返し実行する。
【００６０】
以上、説明したように、本発明の第１実施形態に係るネットワークプロセッサ制御装置によれば、未処理データ数が相対的に少ない処理ユニット１０を構成するプロセッサエレメント１２の動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニット１０を構成するプロセッサエレメント１２の動作周波数を高くすることができる。
【００６１】
この結果、各プロセッサエレメント１２において、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサ１が電力を消費する量を低減することができる。
【００６２】
更に、本発明の第１実施形態に係るネットワークプロセッサ制御装置は、未処理データ数に基づいて、バス使用権を付与するプロセッサエレメント１２を決定する。
【００６３】
これによれば、各処理ユニット１０における未処理データ数が、比較的短い時間内に比較的大きく変動することを抑制することができる。この結果、ネットワークプロセッサ１が電力を消費する量をより一層確実に低減することができる。
【００６４】
なお、第１実施形態の第１変形例に係る動作周波数決定部２２は、最も前段側の処理ユニット１０（処理ユニット＃１）を構成するプロセッサエレメント１２に対する動作周波数として、当該プロセッサエレメント１２が動作可能な最高の動作周波数である最高動作周波数を決定するように構成されていてもよい。
【００６５】
ところで、ネットワークプロセッサ１が処理すべきパケットが、急激に増加する場合がある。この場合において、最も前段側のプロセッサエレメント１２の動作周波数が比較的低い値に設定されていると、最も前段側の処理ユニット１０における未処理データ数が過大となる。その結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となる。
【００６６】
従って、第１実施形態の第１変形例に係るネットワークプロセッサ制御装置によれば、最も前段側の処理ユニット１０において未処理データ数が過大となることを防止することができる。この結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となることを防止することができる。
【００６７】
また、第１実施形態の第２変形例に係る動作周波数決定部２２は、複数のプロセッサエレメント１２，…のそれぞれに対して、当該プロセッサエレメント１２が構成する処理ユニット１０、及び、当該処理ユニット１０よりも前段側のすべての処理ユニット１０，…、のそれぞれを構成するバッファ１１，…に対して取得された未処理データ数に基づいて、当該プロセッサエレメント１２の動作周波数を決定するように構成されていてもよい。
【００６８】
例えば、動作周波数決定部２２は、処理ユニット＃２を構成するプロセッサエレメント１２の動作周波数を、処理ユニット＃１のバッファ１１に対して取得された未処理データ数、及び、処理ユニット＃２のバッファ１１に対して取得された未処理データ数のすべてに基づいて決定する。
【００６９】
同様に、動作周波数決定部２２は、処理ユニット＃Ｎを構成するプロセッサエレメント１２の動作周波数を、処理ユニット＃１〜処理ユニット＃Ｎ−１のそれぞれのバッファ１１に対して取得された未処理データ数のすべてに基づいて決定する。
【００７０】
本例では、動作周波数決定部２２は、動作周波数を決定する対象となるプロセッサエレメント１２が構成する処理ユニット１０、及び、当該処理ユニット１０よりも前段側のすべての処理ユニット１０，…、のそれぞれを構成するバッファ１１，…に対して、充填率を算出する。更に、動作周波数決定部２２は、算出された充填率の平均値を、上記プロセッサエレメント１２の最高動作周波数に乗じた値を、当該プロセッサエレメント１２の動作周波数として決定する。
【００７１】
ところで、各プロセッサエレメント１２は、当該プロセッサエレメント１２が構成する処理ユニット１０、及び、当該処理ユニット１０よりも前段側のすべての処理ユニット１０、のそれぞれを構成するバッファ１１に記憶されているデータに対して部分処理を実行する。
【００７２】
従って、第１実施形態の第２変形例に係るネットワークプロセッサ制御装置によれば、将来の処理負荷を反映した適切な動作周波数を決定することができる。この結果、ネットワークプロセッサ１が電力を消費する量をより一層確実に低減することができる。
【００７３】
＜第２実施形態＞
次に、本発明の第２実施形態に係るネットワークプロセッサ制御装置について図５を参照しながら説明する。
第２実施形態に係るネットワークプロセッサ制御装置１００は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
【００７４】
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備える。
上記複数の処理ユニットは、直列に接続される。
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成される。
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
【００７５】
更に、ネットワークプロセッサ制御装置１００は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得部（未処理データ数取得手段）１０１と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定部（動作周波数決定手段）１０２と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御部（動作周波数制御手段）１０３と、
を備える。
【００７６】
ところで、プロセッサエレメントの動作周波数（クロック周波数）が高くなるほど、当該プロセッサエレメントが消費する電力の量（消費電力量）は多くなる。例えば、消費電力量は、動作周波数の３乗に比例して増加する場合がある。
【００７７】
従って、上記のように構成されたネットワークプロセッサ制御装置１００によれば、未処理データ数が相対的に少ない処理ユニットを構成するプロセッサエレメントの動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニットを構成するプロセッサエレメントの動作周波数を高くすることができる。
【００７８】
この結果、各プロセッサエレメントにおいて、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサが電力を消費する量を低減することができる。
【００７９】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【００８０】
なお、上記各実施形態においてネットワークプロセッサ制御装置の各機能は、回路等のハードウェアにより実現されていた。ところで、ネットワークプロセッサ制御装置は、処理装置と、プログラム（ソフトウェア）を記憶する記憶装置と、を備えるとともに、処理装置がそのプログラムを実行することにより、各機能を実現するように構成されていてもよい。この場合、プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８１】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【００８２】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【００８３】
（付記１）
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ制御装置。
【００８４】
ところで、プロセッサエレメントの動作周波数（クロック周波数）が高くなるほど、当該プロセッサエレメントが消費する電力の量（消費電力量）は多くなる。例えば、消費電力量は、動作周波数の３乗に比例して増加する場合がある。
【００８５】
従って、上記のように構成されたネットワークプロセッサ制御装置によれば、未処理データ数が相対的に少ない処理ユニットを構成するプロセッサエレメントの動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニットを構成するプロセッサエレメントの動作周波数を高くすることができる。
【００８６】
この結果、各プロセッサエレメントにおいて、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサが電力を消費する量を低減することができる。
【００８７】
（付記２）
付記１に記載のネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御装置は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ制御装置。
【００８８】
ところで、プロセッサエレメントの動作周波数を変更するためには、所定の遅延時間を要する。従って、比較的短い時間内に、未処理データ数が比較的大きく変化する場合、プロセッサエレメントの実際の動作周波数を変更することができない虞があった。
【００８９】
そこで、上記のように、未処理データ数に基づいてバス使用権を付与するプロセッサエレメントを決定することにより、各処理ユニットにおける未処理データ数が、比較的短い時間内に比較的大きく変動することを抑制することができる。この結果、ネットワークプロセッサが電力を消費する量をより一層確実に低減することができる。
【００９０】
（付記３）
付記１又は付記２に記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、最も前段側の処理ユニットを構成するプロセッサエレメントに対する前記動作周波数として、当該プロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
【００９１】
ところで、ネットワークプロセッサが処理すべきパケットが、急激に増加する場合がある。この場合において、最も前段側のプロセッサエレメントの動作周波数が比較的低い値に設定されていると、最も前段側の処理ユニットにおける未処理データ数が過大となる。その結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となる。
【００９２】
そこで、上記のように、最も前段側のプロセッサエレメントの動作周波数として、最高動作周波数を決定することにより、最も前段側の処理ユニットにおいて未処理データ数が過大となることを防止することができる。この結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となることを防止することができる。
【００９３】
（付記４）
付記１乃至付記３のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
【００９４】
各プロセッサエレメントは、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに記憶されているデータに対して部分処理を実行する。
【００９５】
従って、上記のように、各プロセッサエレメントの動作周波数を、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された未処理データ数に基づいて決定することにより、将来の処理負荷を反映した適切な動作周波数を決定することができる。この結果、ネットワークプロセッサが電力を消費する量をより一層確実に低減することができる。
【００９６】
（付記５）
付記１乃至付記４のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記未処理データ数が多くなるほど高くなる値を前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
【００９７】
（付記６）
付記１乃至付記５のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記バッファが記憶可能なデータの最大数である最大データ数に対する、前記未処理データ数の割合を、当該バッファとともに処理ユニットを構成するプロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数に乗じた値を、前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
【００９８】
（付記７）
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサであって、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ。
【００９９】
（付記８）
付記７に記載のネットワークプロセッサであって、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ。
【０１００】
（付記９）
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記ネットワークプロセッサ制御方法は、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、ネットワークプロセッサ制御方法。
【０１０１】
（付記１０）
付記９に記載のネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御方法は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、ネットワークプロセッサ制御方法。
【０１０２】
（付記１１）
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムであって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成されたプログラム。
【０１０３】
（付記１２）
付記１１に記載のプログラムであって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の１つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、処理を実行させるように構成されたプログラム。
【産業上の利用可能性】
【０１０４】
本発明は、パケットに対する処理を実行するネットワークプロセッサ、ネットワークプロセッサを制御するネットワークプロセッサ制御装置、スイッチ、及び、ルータ等に適用可能である。
【符号の説明】
【０１０５】
１      ネットワークプロセッサ
２      メモリ
３      バス
１０，…  処理ユニット
１１，…  バッファ
１２，…  プロセッサエレメント
２０    動作周波数制御回路
２１    未処理データ数取得部
２２    動作周波数決定部
２３    動作周波数制御部
３０    メモリコントローラ
１００  ネットワークプロセッサ制御装置
１０１  未処理データ数取得部
１０２  動作周波数決定部
１０３  動作周波数制御部
【図１】
2013003931.tif 000003
【図２】
2013003931.tif 000004
【図３】
2013003931.tif 000005
【図４】
2013003931.tif 000006
【図５】
2013003931.tif 000007