JP2013003931A - ネットワークプロセッサ制御装置 - Google Patents
ネットワークプロセッサ制御装置 Download PDFInfo
- Publication number
- JP2013003931A JP2013003931A JP2011135870A JP2011135870A JP2013003931A JP 2013003931 A JP2013003931 A JP 2013003931A JP 2011135870 A JP2011135870 A JP 2011135870A JP 2011135870 A JP2011135870 A JP 2011135870A JP 2013003931 A JP2013003931 A JP 2013003931A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- processor element
- buffer
- operating frequency
- 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.)
- Withdrawn
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
【課題】ネットワークプロセッサが電力を消費する量を低減することが可能なネットワークプロセッサ制御装置を提供すること。
【解決手段】制御装置100は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサ(NP)を制御する。NPは、プロセッサエレメント(PE)とバッファとを含む処理ユニットを複数備える。複数の処理ユニットは、直列に接続される。制御装置100は、複数のバッファのそれぞれに対して、未処理データ数を取得する未処理データ数取得部101と、複数のPEのそれぞれに対して、未処理データ数に基づいて、当該PEの動作周波数を決定する動作周波数決定部102と、複数のPEのそれぞれに対して、上記決定された動作周波数にて当該PEが動作するように当該PEを制御する動作周波数制御部103と、を備える。
【選択図】図5
【解決手段】制御装置100は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサ(NP)を制御する。NPは、プロセッサエレメント(PE)とバッファとを含む処理ユニットを複数備える。複数の処理ユニットは、直列に接続される。制御装置100は、複数のバッファのそれぞれに対して、未処理データ数を取得する未処理データ数取得部101と、複数のPEのそれぞれに対して、未処理データ数に基づいて、当該PEの動作周波数を決定する動作周波数決定部102と、複数のPEのそれぞれに対して、上記決定された動作周波数にて当該PEが動作するように当該PEを制御する動作周波数制御部103と、を備える。
【選択図】図5
Description
本発明は、パケットに対する処理を実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置に関する。
IP(Internet Protocol)網におけるパケットの通信は、ルータ等の通信中継装置に搭載されたネットワークプロセッサが、随時受信するパケットを待機させることなく、連続して処理することを要求する。
そのため、ネットワークプロセッサは、複数のプロセッサエレメントを備える。各プロセッサエレメントは、パケットに対する処理(全体処理)の一部を構成する部分処理を実行する。これにより、ネットワークプロセッサは、パケットに対する全体処理(例えば、パケットを転送する処理等)をパイプライン方式に従って実行する。
河合栄治、門林雄基、山口英、「ネットワークプロセッサ技術に関するサーベイ」、電子情報通信学会技術研究報告 インターネットアーキテクチャ、電子情報通信学会、2003年5月、第103巻、第62号、p.55−60
ところで、部分処理を実行するための処理負荷は、プロセッサエレメント毎に異なる。従って、処理負荷が相対的に小さいプロセッサエレメントにおいて、いずれの処理も実行していない待機時間が生じる。ところで、プロセッサエレメントは、いずれの処理も実行していない状態においても、電力を消費する。従って、上記ネットワークプロセッサにおいては、電力が無駄に消費されてしまうという問題があった。
このため、本発明の目的は、上述した課題である「電力が無駄に消費されてしまう場合が生じること」を解決することが可能なネットワークプロセッサ制御装置を提供することにある。
かかる目的を達成するため本発明の一形態であるネットワークプロセッサ制御装置は、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
加えて、上記ネットワークプロセッサ制御装置は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
また、本発明の他の形態であるネットワークプロセッサは、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサである。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサである。
更に、このネットワークプロセッサは、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
更に、上記ネットワークプロセッサは、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備える。
また、本発明の他の形態であるネットワークプロセッサ制御方法は、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する方法である。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する方法である。
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
加えて、上記ネットワークプロセッサ制御方法は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する方法である。
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する方法である。
また、本発明の他の形態であるプログラムは、
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムである。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムである。
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
上記複数の処理ユニットは、直列に接続され、
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
加えて、上記プログラムは、上記ネットワークプロセッサ制御装置に、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成される。
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得し、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成される。
本発明は、以上のように構成されることにより、ネットワークプロセッサが電力を消費する量を低減することができる。
以下、本発明に係る、ネットワークプロセッサ制御装置、ネットワークプロセッサ、ネットワークプロセッサ制御方法、及び、プログラム、の各実施形態について図1〜図5を参照しながら説明する。
<第1実施形態>
(構成)
図1に示したように、第1実施形態に係るネットワークプロセッサ1は、複数(本例では、N個、ここで、Nは、2以上の整数)の処理ユニット10,…(処理ユニット#1〜処理ユニット#N)と、動作周波数制御回路20と、メモリコントローラ(バス調停手段)30と、を備える。本例では、ネットワークプロセッサ1は、ルータ、又は、スイッチ等の通信を中継する通信中継装置に搭載される。
(構成)
図1に示したように、第1実施形態に係るネットワークプロセッサ1は、複数(本例では、N個、ここで、Nは、2以上の整数)の処理ユニット10,…(処理ユニット#1〜処理ユニット#N)と、動作周波数制御回路20と、メモリコントローラ(バス調停手段)30と、を備える。本例では、ネットワークプロセッサ1は、ルータ、又は、スイッチ等の通信を中継する通信中継装置に搭載される。
ネットワークプロセッサ1は、パケットに対する全体処理をパイプライン方式に従って実行する。本例では、ネットワークプロセッサ1は、ネットワークプロセッサ1が搭載された通信中継装置が受信したパケットを転送する処理を全体処理として実行する。
また、動作周波数制御回路20、及び、メモリコントローラ30は、ネットワークプロセッサ1を制御するネットワークプロセッサ制御装置を構成している。即ち、本例では、ネットワークプロセッサ制御装置は、ネットワークプロセッサ1に搭載されている。なお、ネットワークプロセッサ制御装置は、ネットワークプロセッサ1に搭載されていなくてもよい。
複数の処理ユニット10,…は、直列に接続されている。複数の処理ユニット10,…のそれぞれは、バッファ11と、プロセッサエレメント12と、を備える。
各バッファ11は、前段側に接続された処理ユニット10を構成するプロセッサエレメント12により出力されたデータを記憶する。本例では、各バッファ11は、リングバッファである。
複数のプロセッサエレメント12,…には、全体処理を分割した複数の部分処理(部分処理#1〜部分処理#N)が1つずつ割り当てられている。
各プロセッサエレメント12は、当該プロセッサエレメント12とともに処理ユニット10を構成するバッファ11に記憶されているデータに対して、当該プロセッサエレメント12に対して割り当てられた部分処理を実行する。各プロセッサエレメント12は、後段側に接続された処理ユニット10を構成するバッファ11へ部分処理の実行結果を表すデータを出力する。
また、各プロセッサエレメント12は、動作周波数制御回路20により出力された動作周波数(クロック周波数)を受け付ける。プロセッサエレメント12は、動作周波数を受け付けた場合、実際の動作周波数を、当該受け付けた動作周波数に変更する。
より具体的に述べると、処理ユニット#1(最も前段側の処理ユニット10)のバッファ11は、ネットワークプロセッサ1に入力されたデータとしてのパケットを記憶する。処理ユニット#1のプロセッサエレメント12は、処理ユニット#1のバッファ11に記憶されているデータに対して部分処理#1を実行する。
処理ユニット#1のプロセッサエレメント12は、処理ユニット#2のバッファ11へ部分処理#1の実行結果を表すデータを出力する。処理ユニット#2のバッファ11は、処理ユニット#1により出力されたデータを記憶する。処理ユニット#2のプロセッサエレメント12は、処理ユニット#2のバッファ11に記憶されているデータに対して部分処理#2を実行する。処理ユニット#2のプロセッサエレメント12は、後段側の処理ユニット10のバッファ11へ部分処理#2の実行結果を表すデータを出力する。
処理ユニット#Nのバッファ11は、前段側の処理ユニット10により出力されたデータを記憶する。処理ユニット#Nのプロセッサエレメント12は、処理ユニット#Nのバッファ11に記憶されているデータに対して部分処理#Nを実行する。処理ユニット#Nのプロセッサエレメント12は、ネットワークプロセッサ1の外部へ部分処理#Nの実行結果を表すデータを出力する。
動作周波数制御回路20は、図2に示したように、未処理データ数取得部(未処理データ数取得手段)21と、動作周波数決定部(動作周波数決定手段)22と、動作周波数制御部(動作周波数制御手段)23と、を備える。
未処理データ数取得部21は、複数のバッファ11,…のそれぞれに対して、未処理データ数を取得する。あるバッファ11に対する未処理データ数は、当該バッファ11に記憶され、且つ、当該バッファ11とともに処理ユニット10を構成するプロセッサエレメント12による部分処理が未実行であるデータの数である。
動作周波数決定部22は、複数のプロセッサエレメント12,…のそれぞれに対して、当該プロセッサエレメント12とともに処理ユニット10を構成するバッファ11に対して取得された未処理データ数に基づいて、当該プロセッサエレメント12の動作周波数を決定する。
本例では、動作周波数決定部22は、複数のプロセッサエレメント12,…のそれぞれに対して、当該プロセッサエレメント12とともに処理ユニット10を構成するバッファ11に対して取得された未処理データ数が多くなるほど高くなる値を動作周波数として決定する。
より具体的に述べると、動作周波数決定部22は、複数のプロセッサエレメント12,…のそれぞれに対して、最大データ数に対する未処理データ数の割合(充填率)を、最高動作周波数に乗じた値を、動作周波数として決定する。
ここで、最大データ数は、動作周波数を決定する対象となるプロセッサエレメント12とともに処理ユニット10を構成するバッファ11が記憶可能なデータの最大数である。また、最高動作周波数は、動作周波数を決定する対象となるプロセッサエレメント12が動作可能な最高の動作周波数である。
なお、動作周波数決定部22は、未処理データ数と、未処理データ数が大きくなるほど大きくなる係数と、の関係を表す情報を予め記憶し、当該関係と、取得された未処理データ数と、に基づいて係数を取得し、取得された係数を最高動作周波数に乗じた値を、動作周波数として決定するように構成されていてもよい。
動作周波数制御部23は、複数のプロセッサエレメント12,…のそれぞれに対して、動作周波数決定部22により決定された動作周波数にて当該プロセッサエレメント12が動作するように当該プロセッサエレメント12を制御する。本例では、動作周波数制御部23は、複数のプロセッサエレメント12,…のそれぞれに対して、動作周波数決定部22により決定された動作周波数を当該プロセッサエレメント12へ出力する。
メモリコントローラ30は、複数のプロセッサエレメント12,…のそれぞれとバスを介して接続されている。更に、メモリコントローラ30は、バス3を介してメモリ2と接続されている。
メモリコントローラ30は、複数のプロセッサエレメント12,…のそれぞれにより出力されたアクセス要求を受け付ける。アクセス要求は、メモリ2へのアクセス(メモリ2からのデータの読み出し、又は、メモリ2へのデータの書き込み)を要求する旨を表す情報である。
メモリコントローラ30は、受け付けたアクセス要求を出力したプロセッサエレメント12,…の中から、バス使用権を付与するプロセッサエレメント12を決定する。バス使用権は、バス3を使用する権利である。
本例では、メモリコントローラ30は、複数のバッファ11,…のそれぞれに対して、未処理データ数を取得する。更に、メモリコントローラ30は、取得された未処理データ数に基づいて、バス使用権を付与するプロセッサエレメント12,…を決定する。
メモリコントローラ30は、決定したプロセッサエレメント12にバス使用権を付与する。
メモリコントローラ30によってバス使用権が付与されたプロセッサエレメント12は、バス3を介してメモリ2へアクセスする(メモリ2からデータを読み出す、又は、メモリ2にデータを書き込む)ことにより、部分処理を実行する。
メモリコントローラ30によってバス使用権が付与されたプロセッサエレメント12は、バス3を介してメモリ2へアクセスする(メモリ2からデータを読み出す、又は、メモリ2にデータを書き込む)ことにより、部分処理を実行する。
(作動)
次に、上述したネットワークプロセッサ1の作動について説明する。
ネットワークプロセッサ1は、図3にフローチャートにより示した処理を、ネットワークプロセッサ1が搭載された通信中継装置の起動時に実行するようになっている。
次に、上述したネットワークプロセッサ1の作動について説明する。
ネットワークプロセッサ1は、図3にフローチャートにより示した処理を、ネットワークプロセッサ1が搭載された通信中継装置の起動時に実行するようになっている。
具体的に述べると、ネットワークプロセッサ1は、この処理を開始すると、予め設定された待機時間が経過するまで待機する(ステップS101)。
待機時間が経過する毎に、ネットワークプロセッサ1は、ステップS101にて「Yes」と判定してステップS102へ進み、複数の処理ユニット10,…のそれぞれに対する未処理データ数を取得する。
そして、ネットワークプロセッサ1は、複数の処理ユニット10,…のそれぞれに対して、充填率(最大データ数に対する未処理データ数の割合)を算出する(ステップS103)。
次いで、ネットワークプロセッサ1は、複数の処理ユニット10,…のそれぞれに対して、算出された充電率を最高動作周波数に乗じた値を、動作周波数として決定する(ステップS104)。
その後、ネットワークプロセッサ1は、複数のプロセッサエレメント12,…のそれぞれに対して、決定された動作周波数にて当該プロセッサエレメント12が動作するように当該プロセッサエレメント12を制御する(ステップS105)。
次いで、ネットワークプロセッサ1は、ステップS101へ戻り、ステップS101〜ステップS105の処理を繰り返し実行する。
また、ネットワークプロセッサ1は、図4に示したフローチャートにより示した処理を、ネットワークプロセッサ1が搭載された通信中継装置の起動時に実行するようになっている。
具体的に述べると、ネットワークプロセッサ1は、この処理を開始すると、複数の処理ユニット10,…のいずれかから、アクセス要求を受け付けるまで待機する(ステップS201)。
そして、ネットワークプロセッサ1は、アクセス要求を受け付けると、ステップS201にて「Yes」と判定してステップS202へ進み、複数の処理ユニット10,…のそれぞれに対する未処理データ数を取得する。
次いで、ネットワークプロセッサ1は、複数の処理ユニット10,…のそれぞれに対して、充填率(最大データ数に対する未処理データ数の割合)を算出する(ステップS203)。そして、ネットワークプロセッサ1は、算出された充填率に基づいて、バス使用権を付与するプロセッサエレメント12を決定する(ステップS204)。
本例では、ネットワークプロセッサ1は、バス使用権を付与するプロセッサエレメント12として、算出された充填率が最大であるプロセッサエレメント12を決定する。なお、ネットワークプロセッサ1は、バス使用権を付与するプロセッサエレメント12として、取得された未処理データ数が最大であるプロセッサエレメント12を決定するように構成されていてもよい。
その後、ネットワークプロセッサ1は、上記ステップS204にて決定されたプロセッサエレメント12に、バス使用権を付与する(ステップS205)。
これにより、バス使用権が付与されたプロセッサエレメント12は、バス3を介してメモリ2へアクセスすることにより、部分処理を実行する。
これにより、バス使用権が付与されたプロセッサエレメント12は、バス3を介してメモリ2へアクセスすることにより、部分処理を実行する。
次いで、ネットワークプロセッサ1は、ステップS201へ戻り、ステップS201〜ステップS205の処理を繰り返し実行する。
以上、説明したように、本発明の第1実施形態に係るネットワークプロセッサ制御装置によれば、未処理データ数が相対的に少ない処理ユニット10を構成するプロセッサエレメント12の動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニット10を構成するプロセッサエレメント12の動作周波数を高くすることができる。
この結果、各プロセッサエレメント12において、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサ1が電力を消費する量を低減することができる。
更に、本発明の第1実施形態に係るネットワークプロセッサ制御装置は、未処理データ数に基づいて、バス使用権を付与するプロセッサエレメント12を決定する。
これによれば、各処理ユニット10における未処理データ数が、比較的短い時間内に比較的大きく変動することを抑制することができる。この結果、ネットワークプロセッサ1が電力を消費する量をより一層確実に低減することができる。
なお、第1実施形態の第1変形例に係る動作周波数決定部22は、最も前段側の処理ユニット10(処理ユニット#1)を構成するプロセッサエレメント12に対する動作周波数として、当該プロセッサエレメント12が動作可能な最高の動作周波数である最高動作周波数を決定するように構成されていてもよい。
ところで、ネットワークプロセッサ1が処理すべきパケットが、急激に増加する場合がある。この場合において、最も前段側のプロセッサエレメント12の動作周波数が比較的低い値に設定されていると、最も前段側の処理ユニット10における未処理データ数が過大となる。その結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となる。
従って、第1実施形態の第1変形例に係るネットワークプロセッサ制御装置によれば、最も前段側の処理ユニット10において未処理データ数が過大となることを防止することができる。この結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となることを防止することができる。
また、第1実施形態の第2変形例に係る動作周波数決定部22は、複数のプロセッサエレメント12,…のそれぞれに対して、当該プロセッサエレメント12が構成する処理ユニット10、及び、当該処理ユニット10よりも前段側のすべての処理ユニット10,…、のそれぞれを構成するバッファ11,…に対して取得された未処理データ数に基づいて、当該プロセッサエレメント12の動作周波数を決定するように構成されていてもよい。
例えば、動作周波数決定部22は、処理ユニット#2を構成するプロセッサエレメント12の動作周波数を、処理ユニット#1のバッファ11に対して取得された未処理データ数、及び、処理ユニット#2のバッファ11に対して取得された未処理データ数のすべてに基づいて決定する。
同様に、動作周波数決定部22は、処理ユニット#Nを構成するプロセッサエレメント12の動作周波数を、処理ユニット#1〜処理ユニット#N−1のそれぞれのバッファ11に対して取得された未処理データ数のすべてに基づいて決定する。
本例では、動作周波数決定部22は、動作周波数を決定する対象となるプロセッサエレメント12が構成する処理ユニット10、及び、当該処理ユニット10よりも前段側のすべての処理ユニット10,…、のそれぞれを構成するバッファ11,…に対して、充填率を算出する。更に、動作周波数決定部22は、算出された充填率の平均値を、上記プロセッサエレメント12の最高動作周波数に乗じた値を、当該プロセッサエレメント12の動作周波数として決定する。
ところで、各プロセッサエレメント12は、当該プロセッサエレメント12が構成する処理ユニット10、及び、当該処理ユニット10よりも前段側のすべての処理ユニット10、のそれぞれを構成するバッファ11に記憶されているデータに対して部分処理を実行する。
従って、第1実施形態の第2変形例に係るネットワークプロセッサ制御装置によれば、将来の処理負荷を反映した適切な動作周波数を決定することができる。この結果、ネットワークプロセッサ1が電力を消費する量をより一層確実に低減することができる。
<第2実施形態>
次に、本発明の第2実施形態に係るネットワークプロセッサ制御装置について図5を参照しながら説明する。
第2実施形態に係るネットワークプロセッサ制御装置100は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
次に、本発明の第2実施形態に係るネットワークプロセッサ制御装置について図5を参照しながら説明する。
第2実施形態に係るネットワークプロセッサ制御装置100は、パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御する装置である。
更に、上記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備える。
上記複数の処理ユニットは、直列に接続される。
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成される。
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
上記複数の処理ユニットは、直列に接続される。
上記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成される。
上記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、上記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成される。
更に、ネットワークプロセッサ制御装置100は、
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得部(未処理データ数取得手段)101と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定部(動作周波数決定手段)102と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御部(動作周波数制御手段)103と、
を備える。
上記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる上記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得部(未処理データ数取得手段)101と、
上記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された上記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定部(動作周波数決定手段)102と、
上記複数のプロセッサエレメントのそれぞれに対して、上記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御部(動作周波数制御手段)103と、
を備える。
ところで、プロセッサエレメントの動作周波数(クロック周波数)が高くなるほど、当該プロセッサエレメントが消費する電力の量(消費電力量)は多くなる。例えば、消費電力量は、動作周波数の3乗に比例して増加する場合がある。
従って、上記のように構成されたネットワークプロセッサ制御装置100によれば、未処理データ数が相対的に少ない処理ユニットを構成するプロセッサエレメントの動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニットを構成するプロセッサエレメントの動作周波数を高くすることができる。
この結果、各プロセッサエレメントにおいて、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサが電力を消費する量を低減することができる。
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
なお、上記各実施形態においてネットワークプロセッサ制御装置の各機能は、回路等のハードウェアにより実現されていた。ところで、ネットワークプロセッサ制御装置は、処理装置と、プログラム(ソフトウェア)を記憶する記憶装置と、を備えるとともに、処理装置がそのプログラムを実行することにより、各機能を実現するように構成されていてもよい。この場合、プログラムは、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
<付記>
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
(付記1)
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ制御装置。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ制御装置。
ところで、プロセッサエレメントの動作周波数(クロック周波数)が高くなるほど、当該プロセッサエレメントが消費する電力の量(消費電力量)は多くなる。例えば、消費電力量は、動作周波数の3乗に比例して増加する場合がある。
従って、上記のように構成されたネットワークプロセッサ制御装置によれば、未処理データ数が相対的に少ない処理ユニットを構成するプロセッサエレメントの動作周波数を低くし、一方、未処理データ数が相対的に多い処理ユニットを構成するプロセッサエレメントの動作周波数を高くすることができる。
この結果、各プロセッサエレメントにおいて、いずれの処理も実行していない待機時間を短くすることができる。従って、ネットワークプロセッサが電力を消費する量を低減することができる。
(付記2)
付記1に記載のネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御装置は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ制御装置。
付記1に記載のネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御装置は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ制御装置。
ところで、プロセッサエレメントの動作周波数を変更するためには、所定の遅延時間を要する。従って、比較的短い時間内に、未処理データ数が比較的大きく変化する場合、プロセッサエレメントの実際の動作周波数を変更することができない虞があった。
そこで、上記のように、未処理データ数に基づいてバス使用権を付与するプロセッサエレメントを決定することにより、各処理ユニットにおける未処理データ数が、比較的短い時間内に比較的大きく変動することを抑制することができる。この結果、ネットワークプロセッサが電力を消費する量をより一層確実に低減することができる。
(付記3)
付記1又は付記2に記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、最も前段側の処理ユニットを構成するプロセッサエレメントに対する前記動作周波数として、当該プロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
付記1又は付記2に記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、最も前段側の処理ユニットを構成するプロセッサエレメントに対する前記動作周波数として、当該プロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
ところで、ネットワークプロセッサが処理すべきパケットが、急激に増加する場合がある。この場合において、最も前段側のプロセッサエレメントの動作周波数が比較的低い値に設定されていると、最も前段側の処理ユニットにおける未処理データ数が過大となる。その結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となる。
そこで、上記のように、最も前段側のプロセッサエレメントの動作周波数として、最高動作周波数を決定することにより、最も前段側の処理ユニットにおいて未処理データ数が過大となることを防止することができる。この結果、パケットに対する全体処理の実行を完了するまでに要する時間が過大となることを防止することができる。
(付記4)
付記1乃至付記3のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
付記1乃至付記3のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定するように構成されたネットワークプロセッサ制御装置。
各プロセッサエレメントは、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに記憶されているデータに対して部分処理を実行する。
従って、上記のように、各プロセッサエレメントの動作周波数を、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された未処理データ数に基づいて決定することにより、将来の処理負荷を反映した適切な動作周波数を決定することができる。この結果、ネットワークプロセッサが電力を消費する量をより一層確実に低減することができる。
(付記5)
付記1乃至付記4のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記未処理データ数が多くなるほど高くなる値を前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
付記1乃至付記4のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記未処理データ数が多くなるほど高くなる値を前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
(付記6)
付記1乃至付記5のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記バッファが記憶可能なデータの最大数である最大データ数に対する、前記未処理データ数の割合を、当該バッファとともに処理ユニットを構成するプロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数に乗じた値を、前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
付記1乃至付記5のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記バッファが記憶可能なデータの最大数である最大データ数に対する、前記未処理データ数の割合を、当該バッファとともに処理ユニットを構成するプロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数に乗じた値を、前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。
(付記7)
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサであって、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサであって、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ。
(付記8)
付記7に記載のネットワークプロセッサであって、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ。
付記7に記載のネットワークプロセッサであって、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ。
(付記9)
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記ネットワークプロセッサ制御方法は、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、ネットワークプロセッサ制御方法。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記ネットワークプロセッサ制御方法は、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、ネットワークプロセッサ制御方法。
(付記10)
付記9に記載のネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御方法は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、ネットワークプロセッサ制御方法。
付記9に記載のネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御方法は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、ネットワークプロセッサ制御方法。
(付記11)
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムであって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成されたプログラム。
パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムであって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成されたプログラム。
(付記12)
付記11に記載のプログラムであって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、処理を実行させるように構成されたプログラム。
付記11に記載のプログラムであって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定する、処理を実行させるように構成されたプログラム。
本発明は、パケットに対する処理を実行するネットワークプロセッサ、ネットワークプロセッサを制御するネットワークプロセッサ制御装置、スイッチ、及び、ルータ等に適用可能である。
1 ネットワークプロセッサ
2 メモリ
3 バス
10,… 処理ユニット
11,… バッファ
12,… プロセッサエレメント
20 動作周波数制御回路
21 未処理データ数取得部
22 動作周波数決定部
23 動作周波数制御部
30 メモリコントローラ
100 ネットワークプロセッサ制御装置
101 未処理データ数取得部
102 動作周波数決定部
103 動作周波数制御部
2 メモリ
3 バス
10,… 処理ユニット
11,… バッファ
12,… プロセッサエレメント
20 動作周波数制御回路
21 未処理データ数取得部
22 動作周波数決定部
23 動作周波数制御部
30 メモリコントローラ
100 ネットワークプロセッサ制御装置
101 未処理データ数取得部
102 動作周波数決定部
103 動作周波数制御部
Claims (10)
- パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ制御装置。 - 請求項1に記載のネットワークプロセッサ制御装置であって、
前記ネットワークプロセッサは、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記ネットワークプロセッサ制御装置は、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ制御装置。 - 請求項1又は請求項2に記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、最も前段側の処理ユニットを構成するプロセッサエレメントに対する前記動作周波数として、当該プロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数を決定するように構成されたネットワークプロセッサ制御装置。 - 請求項1乃至請求項3のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントが構成する処理ユニット、及び、当該処理ユニットよりも前段側のすべての処理ユニット、のそれぞれを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定するように構成されたネットワークプロセッサ制御装置。 - 請求項1乃至請求項4のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記未処理データ数が多くなるほど高くなる値を前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。 - 請求項1乃至請求項5のいずれかに記載のネットワークプロセッサ制御装置であって、
前記動作周波数決定手段は、前記バッファが記憶可能なデータの最大数である最大データ数に対する、前記未処理データ数の割合を、当該バッファとともに処理ユニットを構成するプロセッサエレメントが動作可能な最高の動作周波数である最高動作周波数に乗じた値を、前記動作周波数として決定するように構成されたネットワークプロセッサ制御装置。 - パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサであって、
プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得する未処理データ数取得手段と、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定する動作周波数決定手段と、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する動作周波数制御手段と、
を備えるネットワークプロセッサ。 - 請求項7に記載のネットワークプロセッサであって、
前記複数のプロセッサエレメントの任意の1つに、当該プロセッサエレメントとメモリとを接続するバスを使用する権利であるバス使用権を付与し、当該バス使用権が付与されたプロセッサエレメントが、当該バスを介して前記メモリへアクセスすることにより、前記部分処理を実行するように構成され、
前記取得された未処理データ数に基づいて、前記バス使用権を付与するプロセッサエレメントを決定するバス調停手段を備えるネットワークプロセッサ。 - パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するネットワークプロセッサ制御方法であって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記ネットワークプロセッサ制御方法は、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、ネットワークプロセッサ制御方法。 - パケットに対する全体処理をパイプライン方式に従って実行するネットワークプロセッサを制御するための処理を、ネットワークプロセッサ制御装置に実行させるためのプログラムであって、
前記ネットワークプロセッサは、プロセッサエレメントと、バッファと、を含む処理ユニットを複数備え、
前記複数の処理ユニットは、直列に接続され、
前記バッファは、前段側に接続された処理ユニットを構成するプロセッサエレメントにより出力されたデータを記憶するように構成され、
前記プロセッサエレメントは、当該プロセッサエレメントとともに処理ユニットを構成するバッファに記憶されているデータに対して、前記全体処理の一部を構成する部分処理を実行し、後段側に接続された処理ユニットを構成するバッファへ当該部分処理の実行結果を表すデータを出力するように構成され、
前記プログラムは、前記ネットワークプロセッサ制御装置に、
前記複数のバッファのそれぞれに対して、当該バッファに記憶され、且つ、当該バッファとともに処理ユニットを構成するプロセッサエレメントによる前記部分処理が未実行であるデータの数である未処理データ数を取得し、
前記複数のプロセッサエレメントのそれぞれに対して、当該プロセッサエレメントとともに処理ユニットを構成するバッファに対して取得された前記未処理データ数に基づいて、当該プロセッサエレメントの動作周波数を決定し、
前記複数のプロセッサエレメントのそれぞれに対して、前記決定された動作周波数にて当該プロセッサエレメントが動作するように当該プロセッサエレメントを制御する、処理を実行させるように構成されたプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135870A JP2013003931A (ja) | 2011-06-20 | 2011-06-20 | ネットワークプロセッサ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011135870A JP2013003931A (ja) | 2011-06-20 | 2011-06-20 | ネットワークプロセッサ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013003931A true JP2013003931A (ja) | 2013-01-07 |
Family
ID=47672422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011135870A Withdrawn JP2013003931A (ja) | 2011-06-20 | 2011-06-20 | ネットワークプロセッサ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013003931A (ja) |
-
2011
- 2011-06-20 JP JP2011135870A patent/JP2013003931A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140237476A1 (en) | Centralized task scheduling | |
US9298251B2 (en) | Methods of spreading plurality of interrupts, interrupt request signal spreader circuits, and systems-on-chips having the same | |
US9081576B2 (en) | Task scheduling method of a semiconductor device based on power levels of in-queue tasks | |
US9323306B2 (en) | Energy based time scheduler for parallel computing system | |
JP6580307B2 (ja) | マルチコア装置及びマルチコア装置のジョブスケジューリング方法 | |
KR20130036011A (ko) | 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들 | |
US20110016247A1 (en) | Multiprocessor system and multiprocessor system interrupt control method | |
US20100332861A1 (en) | Managing power comsumption in a data storage system | |
WO2018024071A1 (en) | Application-specific, performance-aware energy optimization | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
US20200409878A1 (en) | Method, apparatus and computer program product for processing i/o request | |
JP2015529373A (ja) | 堅くサンドボックス(Sandboxed)された環境中でリソース使用法を調整させるためのシステム及び方法 | |
US7917793B2 (en) | Apparatus providing locally adaptive retiming pipeline with swing structure | |
JP2011187045A (ja) | データ処理装置及びその制御方法、プログラム | |
US20140211662A1 (en) | Network Topologies for Energy Efficient Networks | |
CN110688160A (zh) | 一种指令流水线处理方法、***、设备及计算机存储介质 | |
JP6189545B2 (ja) | 電力消費の低減のためのネットワークアプリケーション並行スケジューリング | |
JP2013003931A (ja) | ネットワークプロセッサ制御装置 | |
JP2006065471A (ja) | 半導体集積回路およびその節電制御方法および節電制御プログラム | |
US9195490B2 (en) | Differential voltage and frequency scaling (DVFS) switch reduction | |
JP5983623B2 (ja) | タスク配置装置及びタスク配置方法 | |
US8806078B2 (en) | Information processing device and program product | |
US20150220371A1 (en) | Energy aware information processing framework for computation and communication devices coupled to a cloud | |
US9465614B2 (en) | Parallel execution of instructions in processing units and adjusting power mode based on monitored data dependency over a period of time | |
US20100161943A1 (en) | Processor capable of power consumption scaling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140902 |