JP5467558B2 - ネットワーク中継装置及びメモリ制御方法 - Google Patents
ネットワーク中継装置及びメモリ制御方法 Download PDFInfo
- Publication number
- JP5467558B2 JP5467558B2 JP2009208291A JP2009208291A JP5467558B2 JP 5467558 B2 JP5467558 B2 JP 5467558B2 JP 2009208291 A JP2009208291 A JP 2009208291A JP 2009208291 A JP2009208291 A JP 2009208291A JP 5467558 B2 JP5467558 B2 JP 5467558B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- buffer
- entry
- table memory
- control 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 271
- 238000000034 method Methods 0.000 title description 86
- 239000000872 buffer Substances 0.000 claims description 310
- 238000012544 monitoring process Methods 0.000 claims description 98
- 238000012545 processing Methods 0.000 claims description 57
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 24
- 238000012217 deletion Methods 0.000 claims description 19
- 230000037430 deletion Effects 0.000 claims description 19
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 61
- 238000007726 management method Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 33
- 230000007423 decrease Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 9
- 210000004027 cell Anatomy 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000011946 reduction process Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 108090000248 Deleted entry Proteins 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Memory System (AREA)
Description
ここで、ATM(Asynchronous Transfer Mode)交換機において、効率の良いセル転送を行うバッファ管理方式についての技術が開示されている(例えば、特許文献1参照)。この特許文献1は共通バッファを用いてセル転送を行う際、そのセルについて1あるいはそれ以上のサービス・クラスごとに設けられたキューの蓄積セル数を判定する。そして、蓄積セル数とキューに対してあらかじめ設定した閾値とを比較し、その結果に応じて閾値を動的に変更し、変更後の閾値に基づいて、共通バッファへのセルの蓄積を行い、効率の良いセル転送を行うバッファ管理方法である。
また、特許文献1では、スイッチやルータがパケットの宛先等を決定するために所持するテーブルを記憶させるテーブルメモリの消費電力を抑えることに関しては記載がない。本発明は、スイッチやルータなどのネットワーク中継装置の消費電力を抑えるためにあり、テーブルに登録すべきエントリ数に応じて、テーブルメモリを動的に活性化/非活性化状態にきりかえ、消費電力を制御する技術を提供することを第二の目的とする。より具体的には、本発明は、必要なテーブルのエントリ数に応じて、装置内のテーブルメモリの一部の電源、あるいはクロックの供給を停止することにより、最低限必要なテーブルメモリのみを活性化し、消費電力を削減することを目的のひとつとする。
本発明の別の実施例では、電源あるいは動作クロックの供給の有無を個別に制御可能な複数のテーブルメモリ610−1〜610−Kから構成される検索テーブル610と、必要なテーブルのエントリ数に応じて、有効テーブルメモリ数を変更するテーブルメモリ制御部640とをネットワーク中継装置10が備える。テーブルのエントリ数が少ないときは、前記テーブルメモリ制御部640が、一部のテーブルメモリの電源あるいはクロックの供給を停止することで、消費電力を削減する。
なお本発明は、様々な形態で実現することが可能である。
パケットを中継するネットワーク中継装置であって、
パケット受信部と、
該パケット受信部で受信したパケットが格納される、一つ一つが独立で動作する複数のパケットバッファと、
該パケットバッファからパケットを読み出して送信するパケット送信部と、
一定時間でのパケットの転送量を計測するパケット監視部と、
該パケットの転送量に応じて前記パケットバッファを制御するパケットバッファ制御部と
を備え、
前記パケットバッファ制御部は、前記パケット監視部で計測されたパケットの転送量と予め定められた閾値により、装置に必要な有効バッファ数を判定し、判定された有効バッファ数に従い前記パケットバッファの電源又はクロック供給のON及びOFFを制御する前記ネットワーク中継装置が提供される。
パケットを中継するネットワーク中継装置であって、
宛先テーブル、フィルタテーブル及び優先制御テーブルの少なくともいずれかのテーブルが記憶され、一つ一つが独立で動作する複数のテーブルメモリと、
テーブルに格納すべきエントリ数に応じて前記テーブルメモリを制御するテーブルメモリ制御部と、
前記テーブルへのエントリの登録又は削除を指示する制御部と、
を備え、
前記テーブルメモリ制御部は、現在のテーブルの使用エントリ数を記憶しており、前記制御部から登録エントリ数を含むエントリ登録の指示又は削除エントリ数を含むエントリ削除の指示が通知されると、前記現在のテーブルの使用エントリ数と登録エントリ数又は削除エントリ数と予め定められた閾値とから、必要な有効テーブルメモリ数を判定し、判定された有効テーブルメモリ数に従い前記テーブルメモリの一部の電源又はクロック供給のON及びOFFを制御する前記ネットワーク中継装置が提供される。
受信したパケットが格納される、一つ一つが独立で動作する複数のパケットバッファを備えパケットを中継するネットワーク中継装置におけるメモリ制御方法であって、
一定時間でのパケットの転送量を計測し、
計測されたパケットの転送量と予め定められた閾値により、装置に必要な有効バッファ数を判定し、
判定された有効バッファ数に従いパケットバッファの電源又はクロック供給のON及びOFFを制御する前記メモリ制御方法が提供される。
宛先テーブル、フィルタテーブル及び優先制御テーブルの少なくともいずれかのテーブルが記憶され、一つ一つが独立で動作する複数のテーブルメモリを備え、パケットを中継するネットワーク中継装置におけるメモリ制御方法であって、
現在のテーブルの使用エントリ数を予め記憶し、
登録エントリ数を含むエントリ登録の指示又は削除エントリ数を含むエントリ削除の指示が通知されると、前記現在のテーブルの使用エントリ数と登録エントリ数又は削除エントリ数と予め定められた閾値とから、必要な有効テーブルメモリ数を判定し、
判定された有効テーブルメモリ数に従いテーブルメモリの一部の電源又はクロック供給のON及びOFFを制御する前記メモリ制御方法が提供される。
また、本発明によると、必要なテーブルのエントリ数に応じて、装置内のテーブルメモリの一部の電源、あるいはクロックの供給を停止することにより、最低限必要なテーブルメモリのみを活性化し、消費電力を削減することができる。
図1は、本実施の形態のスイッチの構成実施の形態を示す説明図である。
このスイッチ1は、パケット処理部10と、検索テーブル610と、スイッチ1の各種動作を制御する制御部800とを備える。パケット処理部10は、パケット受信部100と、パケット監視部200と、パケットバッファ制御部300と、有効バッファ数管理テーブル310と、書き込み処理部400と、それぞれ独立して動作している複数のパケットバッファ500と、検索処理部600と、パケット送信部700とを有する。制御部800は、図示しないパスによってパケット監視部200と、パケットバッファ制御部300と、検索テーブル610と、パケット受信部100等に接続されている。
パケット受信部100は、入力されたパケットを受信して、パケットの受信通知をパケット監視部200に送信し、パケットデータを書き込み処理部300に送信し、ヘッダデータを検索処理部600に送信する。この例では、1つのパケットデータとバッファの書き込み領域は1:1の関係だが、1つのパケットデータが大きい場合、パケットデータを複数の書き込み領域に書き込む1:n(nは2以上の自然数)の関係であっても良い。
パケット監視部200は、入力されたパケットの数をカウントする機能を有しており、決められた時間内に装置に転送された監視パケット数(パケットの転送量)Pを測定して、前記監視パケット数Pをパケットバッファ制御部300に伝達する。
書き込み処理部400は、例えばライトポインタに従い、パケットデータをパケットバッファ500に書き込む処理を行う。
パケットバッファ500は、検索処理部600が検索処理を終えるまで、パケットデータを一時的に格納する。また前記パケットバッファ500は一つ一つが独立に動作するバッファで構成されており、それぞれ独立に電源やクロックを活性化/非活性化することが可能である。
検索処理部600は、前記パケット受信部100からパケットのヘッダ情報を受け取り、前記ヘッダ情報を検索キーに検索テーブル610を検索し、宛先などの検索情報をパケット送信部700へ転送する。
検索テーブル610は、ヘッダ情報と宛先情報等の対応データ等が格納されている。
パケット送信部700は、前記検索処理部600からの検索情報を受け取り、前記検索処理部600から受け取ったパケットに該当するパケット情報を、例えばリードポインタに従いパケットバッファ500から読み出し、対応した回線にパケットを送信する。
制御部800は、図2で示すパケット数計測部230の監視時間間隔Tを設定する機能と、有効バッファ数管理テーブル310の値を設定する機能と、検索テーブル610の値を設定する機能と、を有している。
パケット監視部200は、パケットカウンタ210と、フリーランタイマ220と、パケット数計測部230とを有する。パケットカウンタ210は、パケット受信部100からパケットの受信通知を受け取り、一つ受信する度に、一つカウンタを上昇させる。フリーランタイマ220はパケットの受信とは無関係に独立して動作しており、一定の時間ごとに、フリーランタイマ220が一つ上昇する。パケット数計測部230は、パケットカウンタ210と、フリーランタイマ220と、のカウント値を常に受け取っている。設定されたフリーランタイマ220のカウンタ間隔Tで、現在のパケットカウンタ値(A1とする)から、前回計測時のパケットカウンタ値(A0とする)を減算し、監視時間Tで除算した監視パケット数P=[(A1−A0)/T]を判定する。前記パケット監視部200は、前記監視パケット数Pを、パケットバッファ制御部300に転送する。
パケットバッファ制御部300は、有効バッファ数制御部320と、パケットバッファ電源管理部330とを有する。有効バッファ数制御部320は、パケット監視部200と、有効バッファ数管理テーブル310と、書き込み処理部400と、パケット送信部700と、制御部800とに接続されている。ライトポインタは、どこまでパケットのデータをバッファに書き込んだかを示すポインタで、リードポインタは、書き込まれたデータをどこまで読み出したかを示すポインタである。パケットバッファ電源管理部330は、パケットバッファ500と接続されており、パケットバッファ500−1〜500−N(Nは2以上の整数)の、電源やクロックをそれぞれ活性化/非活性化する機能を有する。
有効バッファ数制御部320は、パケット監視部200から、監視パケット数Pを受け取り、有効バッファ数管理テーブル310から、その時点での有効バッファ数に対応する監視パケット数の上限と下限を受け取る。有効バッファ数制御部320は、前記監視パケット数Pが前記有効バッファ数に対応する監視パケット数の下限と上限の間にあるとき(監視パケット数下限<P<監視パケット数上限)、有効バッファ数を変更しない。前記監視パケット数Pが、前記監視パケット数上限(第1監視パケット数)を超える場合、有効バッファ数制御部320は、有効バッファ数管理テーブル310の値に対応するように有効バッファ数を増加させる。前記監視パケット数Pが、前記監視パケット数下限(第2監視パケット数)を下回る場合、有効バッファ数制御部320は、有効バッファ数管理テーブル310に対応するように有効バッファ数を減少させる。動作の詳細は図9の説明の際に説明する。
監視パケット数下限は、有効バッファ数を減らす基準になる前記監視パケット数Pの値で、監視パケット数上限は、有効バッファ数を増やす基準になる前記監視パケット数Pの値である。有効バッファ数制御部320は、現在の有効バッファ数を記憶していて、有効バッファ数に対応する前記監視パケット数下限と、前記監視パケット数上限と、を比較する。
図5は、有効バッファ数が増加する場合と減少する場合の、有効バッファ数と監視パケット数の関係を示した図である。
監視パケット数の基準A〜Fと、有効バッファ数は、図4の監視パケット数下限と、監視パケット数上限と、有効バッファ数、と、にそれぞれ対応している。実線が、有効バッファ数が増加するときの監視パケット数と有効バッファ数の関係を示したもので、点線が、有効バッファ数が減少するときの監視パケット数と有効バッファ数の関係を示したものである。有効バッファ数が増加する場合と、減少する場合と、で異なる基準を設けないと、頻繁に有効バッファ数切り替え基準の近辺に、前記監視パケット数Pが、装置1に到着すると、前記有効バッファ数制御部320が、有効バッファ数の増減を繰り返し、逆に消費電力が増加してしまう場合がある。そのため、有効バッファを変動させる閾値を、それぞれ有効バッファ数が増加する場合と減少する場合で、余裕を持たせることで前記消費電力が増加しないようにすることができる。
図7は、パケットを受信した際の、装置の動作を示すフローチャートである。
最初のステップS700では、パケット受信部100が、パケットデータを、検索処理部600と、パケット監視部200と、書き込み処理部400と、送信する。なお、パケットデータ全体を送らずに、パケットヘッダ、パケット受信通知などを適宜送信してもよい。これ以降は、検索処理ステップ(S710)と、パケット計測ステップ(S720)と、書き込み処理ステップ(S730)との3つのフローが、例えば並行で動作する。
検索処理ステップ(S710)では、検索処理部600がパケットヘッダを検索するキーワードにして、検索テーブル610を検索し、宛先等を決定する。
パケット計測ステップ(S720)では、パケット監視部200が、パケットカウンタ210を1つ増加させ、処理を終える。
書き込み制御ステップ(S730)では、パケット受信部100からパケットデータを受け取った書き込み処理部400は、パケットバッファ500にデータを書き込む。パケット送信部700が、ライトポインタとリードポインタに差を検出し、また検索処理部600が、処理を終了したことをパケット送信部700に通知し、パケット送信部700はパケットバッファのパケットデータを読み出し、該当する回線にパケットを送信する処理を行う(S740)。
パケット監視フローは、図7のパケット受信フローとは別に、独立して動作する。パケット数計測部230は、前回パケットカウンタ210を計測したときよりもフリーランタイマ220がT増加しているかを判定し(ステップS800)、フリーランタイマ220が、T増加していない場合(S800のNO)、パケット数計測部230は、再びフリーランタイマ220がT増加しているかの判定を繰り返す(S800)。フリーランタイマ220が、T増加した場合(ステップS800のYES)、パケット数計測部230が、現在のパケットカウンタ値(A1)から、前回計測時のパケットカウンタ値(A0)を減算し、監視時間Tで除算した監視パケット数P=[(A1−A0)/T]を求め(ステップS810)、パケット数計測部230が、求められた監視パケット数Pをパケットバッファ制御部300へ通知する(ステップS820)。また、現在のパケットカウンタの値(A1)を、前回計測時のパケットカウンタ値(A0)として記憶する。パケット監視フロー(ステップS820)を終えると、次は図9のパケットバッファ制御フロー(ステップS900)を実行する。
パケット監視部200からの監視パケット数Pの通知を受けて、パケットバッファ制御部300は、現在の有効バッファ数をキーにして、有効バッファ数管理テーブル310を検索する(ステップS900)。なお、現在の有効バッファ数は予め記憶されている。パケットバッファ制御部300が、有効バッファ数管理テーブル310から、その時の有効バッファ数に対応する監視パケット数の上限(1)と、下限(1)を取得する(ステップS910)。有効バッファ数制御部320が、パケット監視部200から通知された監視パケット数Pの値と、有効バッファ数管理310テーブルの監視パケット数の上限(1)及び下限(1)とから有効バッファ数を判定する(ステップS920)。例えば、監視パケット数上限(1)<監視パケット数Pのとき、有効バッファ数制御部320が、変更後の有効バッファ数を有効バッファ数管理テーブル310から判定し、活性化予定のバッファを特定する(S930)。一方、監視パケット数下限(1)≦監視パケット数P≦監視パケット数上限(1)のとき、パケットバッファ制御フローの処理を終える。また、監視パケット数P<監視パケット数下限(1)のとき、有効バッファ数制御部320が、変更後の有効バッファ数を有効バッファ数管理テーブル310から判定し、非活性化予定のバッファを特定する(S940)。
休止予定のバッファは、例えば休止する順位を予め定めておき、例えば、図11の下側のバッファから休止するようにしてもよい。また、ライトポインタとリードポインタの位置に応じて、図11の上側のバッファを休止するようにしてもよいし、両側を休止するようにしてもよい。ライトポインタとリードポインタの有効範囲が連続する値になるようにすれば、管理しやすい。休止予定のバッファは、これに限らず適宜の手法で選択することができる。活性化予定のバッファは、休止するバッファを特定する手法の逆の順位で特定すればよく、休止するバッファを特定する手法に応じて適宜選択することができる。
ステップS931では、前記有効バッファ数制御部320が、現在の有効バッファ数の情報を保持していて、有効バッファ数管理テーブル310から、現在の有効バッファ数よりも一段階多い有効バッファ数に対応する監視パケット数上限(2)を確認する(S931)。「監視パケット数P>一段階多い有効バッファ数の監視パケット数上限(2)」の場合(S931のP>上限(2))、有効バッファ数制御部320が、有効バッファ数を、有効バッファ数管理テーブル310を参照して、さらに一段階多い有効バッファ数に変更し、活性化予定のバッファを特定する(S930)。
S931において、「前記監視パケット数P<一段階多い有効バッファ数の監視パケット数上限(2)」か、「一段階多い有効バッファ数が、有効バッファ数管理テーブル310の最大」であった場合(S931のP<上限(2)又は有効バッファ数最大)、前記パケットバッファ電源管理部330が、前記有効バッファ数管理テーブル310の有効バッファ数と同一になるように、特定されたバッファの電源やクロックを制御(例えば、電源をON、クロックを供給するなど)して、バッファを活性化させる(S932)。そしてライトポインタとリードポインタの有効範囲を適切なものに変更し(S933)、パケットバッファ制御フローを終える。
S941において、「前記監視パケット数P<一段階少ない有効バッファ数の監視パケット数下限(2)」か、「一段階少ない有効バッファ数が、有効バッファ数管理テーブル310の最小」であった場合(S941のP>下限(2)又は有効バッファ数最小)、前記有効バッファ数制御部320が、休止予定のバッファにデータが書き込まれているかを判定する(S942)。書き込まれている場合、休止予定のバッファを再び監視し(S942のYES)、休止予定のバッファにデータが書き込まれていない場合(S942のNO)、有効バッファ数制御部320が、ライトポインタとリードポインタの有効範囲を、休止予定のバッファに対応する値に変更する(S943)。また、前記パケットバッファ電源管理部330が、前記有効バッファ数管理テーブル310の有効バッファ数と同一になるように、特定されたバッファの電源やクロックを制御(例えば、電源をOFF、クロック供給を停止)して、バッファを休止させ(S944)、パケットバッファ制御フローを終える。
有効バッファ数制御部320が、休止予定のバッファにデータが書き込まれているかを判定する方法は、図10、11、12、13で後述する。
この例では、パケットバッファ500は、それぞれ独立で動作する4つのメモリ等から構成されている。一つのパケットバッファには、32個分のパケット情報を書き込みすることができるので、この場合、合計128個のパケット情報を格納することができる。ライトポインタは、装置が起動したときは”0”の値をとり、書き込み処理部400が、パケットを書き込みするたびに“1、2、3、・・・・”とインクリメントされていく。リードポインタも同様に、装置起動時は“0”の値となっている。パケット送信部700は、ライトポインタと、リードポインタの値の差分が1以上の場合、パケットバッファ500にパケットデータが書き込まれていると判断し、検索処理部600の検索結果がパケット送信部700に通知されたら、パケット送信部700はパケットバッファ500からデータを読み出し、パケットを回線へ送信し、リードポインタを“1”インクリメントする。有効範囲が0〜127に設定されている場合、パケットが装置に128個届くと、ライトポインタ及びリードポインタは“0”に戻り、再び“1、2、3、・・・・”とインクリメントされていく。
図11は、ライトポインタとリードポインタの組み合わせの例を説明した図である。パケットバッファ3、4が休止予定のパケットバッファである。ライトポインタ“80”で、休止予定のパケットバッファ3にあり、リードポインタは“61”となっている。このように、ライトポインタが休止予定のバッファにあり、リードポインタがライトポインタ以下の場合、有効バッファ数制御部320はライトポインタとリードポインタを変更せずに現状のまま、バッファのデータを監視する(ステップS951のYES)。
ライトポインタと、リードポインタが同じになり、またライトポインタと、リードポインタがこの休止予定のパケットバッファ上にある場合、有効バッファ数制御部320がパケットバッファの一部を休止させようとするが、パケットが装置に到着しないと、ライトポインタとリードポインタが動かずに、いつまでもパケットバッファを休止できなくなる可能性がある。
そこで、パケット送信部700が、複数のダミーのパケットを流し、ライトポインタとリードポインタを休止予定のバッファから移動させ、ライトポイントが休止予定バッファからそうでないバッファへ移動させることで、パケットバッファ電源管理部330がバッファをOFFに制御することできる。
図12は、ライトポインタとリードポインタの組み合わせの例を説明した図である。ライトポインタは“2”で、リードポインタは“103”である。ライトポインタは有効バッファ数を変更した後も使用するバッファ上にあるので、パケットバッファ制御部320がライトポインタの範囲を“0〜63”に変更する。リードポインタは、休止予定のパケットバッファ4上にあるので、パケットバッファ電源管理部330は、パケットバッファ3、4を休止状態にしない。また、有効バッファ数制御部320も、リードポインタの範囲を変更しない。リードポインタに従いパケットが順次読みだされ、リードポインタが有効バッファ上に移動したとき、リードポインタの有効範囲を0〜63に変更する。
図33は、パケットバッファ500の別の制御方法を説明した図である。
パケットバッファ500は、書き込み処理部400が、書き込まれているパケットバッファ500の情報を保持していて、前記書き込み処理部400にパケットデータが転送されると、空いている領域を選択し書き込み、書き込んだ領域を、前記書き込み処理部400が、パケットバッファ制御部300を介して、パケット送信部700に通知し、前記パケット送信部700は、パケットバッファ500から該当する情報を読み出し、出力回線へ転送する。
この制御方式の場合、パケットバッファ制御部300が、休止するバッファを、書き込みが少ないバッファ(パケットバッファ500−3)、もしくは書き込まれていないバッファ(パケットバッファ500−2)、から選択することできる。休止予定のパケットバッファにデータが書き込まれていない場合は、パケットバッファ制御部300がすぐにパケットバッファ500を休止状態にすることができる。休止予定のパケットバッファにデータが書き込まれている場合でも、図10−13の制御方式よりも、短時間でパケットバッファ500を休止状態にすることができ、また、図11で説明したダミーのパケットを流す必要が無い。
本実施の形態によると、受信パケット量に応じて、パケットバッファを構成する複数のパケットバッファの電源、あるいはクロックの供給を制御することで消費電力を削減できる実施の形態。
次に、検索テーブルを構成する複数のテーブルメモリの電源あるいはクロックの供給を、使用するエントリ数に応じて制御することで消費電力を削減する別の実施の形態について説明する。
図14は、本実施の形態のスイッチの構成を示す説明図である。図1で説明した構成に対して、検索処理部600、検索テーブル610の内部の構成を詳細に示している。また、パケット送信部700と制御部800の接続関係と、制御部800と検索処理部600との接続関係を明示的に示している。それ以外は、図1と同一の構成である。
検索処理部600は、検索キー生成部620と、テーブルアクセス部630と、テーブルメモリ制御部640と、検索結果生成部650と、エントリ数管理テーブル660と、有効テーブルメモリ数判定テーブル670と、を有している。各部の動作は、後に、図15から図24を用いて説明する。
パケット送信部700は、出力回線1〜出力回線Nと、制御部800とに接続されている。パケット送信部700は、検索処理部600内の検索結果生成部650が生成する宛先に従い、前記出力回線1〜出力回線Nあるいは制御部800に対してパケットデータを送信する。
制御部800は、検索処理部600内のテーブルメモリ制御部640に接続されている。制御部800は、ネットワーク階層のうちのレイヤ3で動作するルーティングプロトコル用パケットをパケット送信部700から受信し、前記パケット内のネットワーク経路情報を基にしてネットワーク構成を再計算し、検索テーブル610内に格納されているInternet Protocol Version4(IPv4)や、IP Version6(IPv6)などの宛先テーブルの宛先エントリの追加・削除の有無を判定する。追加・削除が必要と判断した場合、制御部800は、検索処理部600内のテーブルメモリ制御部640に対して、宛先エントリ追加・削除要求と、追加あるいは削除するエントリの内容を送信する。また、フィルタテーブルや優先制御テーブルの場合は、装置の制御端末経由で、装置管理者からの入力に従いフィルタテーブルや優先制御テーブルの構成を変更する。制御部800は、前記テーブル構成の変更をエントリ追加・削除要求に変換し、検索処理部600内のテーブルメモリ制御部640に対して、フィルタテーブルあるいは優先制御テーブルのエントリ追加・削除要求と、追加あるいは削除するエントリの内容を送信する。
検索テーブル610は、複数のテーブルメモリ610−1〜610−Kを有する。各テーブルメモリ610−j(jは1からKまでの自然数)は、テーブルメモリ制御部640により、個別に電源あるいはクロックの供給の有無を制御する。また、検索テーブル610の一部がCAMで構成されている場合は、前記の電源、クロックの供給の有無の制御以外の制御方法として、検索時の対象に含めるか含めないかを制御してもよい。一つのテーブルメモリ610−jには、複数のテーブルエントリを格納することができる。
パケット受信部100からパケットのヘッダ情報及び装置内情報を受信した検索処理部600内の検索キー生成部620は、受信した情報から予め定められた検索に必要な検索キーを生成し、テーブルアクセス部630に送信する(ステップS1500)。
次に、検索キーを受信したテーブルアクセス部630は、検索テーブル610を構成するK個のテーブルメモリ(610−j)のうち、テーブルメモリ制御部640の制御により有効化されているテーブルメモリを検索範囲として、検索キーを用いて検索する(ステップS1510)。ここで、テーブルメモリが有効化されている状態とは、例えば、テーブルメモリ610−jに電源が供給されている、あるいは、テーブルメモリ610−jにクロックが供給されている、あるいは、検索テーブルの一部がCAMで構成されている場合は、テーブルメモリ610−jが検索対象に指定されている、という状態を指す。
テーブルアクセス部630は、検索範囲である複数のテーブルメモリ610から、検索キーに対応するパケットの宛先情報、フィルタ判定、優先度情報などの検索結果を受信し、予め決められた判定基準を基にして最終的な検索結果を決定し、検索結果生成部650へ送信する(ステップS1520)。ここで、予め決められた判定基準とは、テーブルアクセス部630が複数のテーブルメモリに検索要求を個別に送信し、それぞれのテーブルメモリからの検索結果を受信するという構成をとる場合、前記複数の検索結果のうち、どれを最終的な検索結果と判定するかの基準である。前記判定基準の例としては、テーブルメモリに番号をつけ、若い番号の検索結果を最終的な検索結果とする、という基準が挙げられる。
検索結果生成部650は、受信した検索結果を、必要があれば検索処理部600が受信した装置内情報とともに、パケット送信部700に送信する(ステップS1530)。
パケット送信部700は、受信した検索結果を判定する(ステップS1540)。まず、検索結果が廃棄指示か否かを判定する(ステップS1550)。検索結果が廃棄指示の場合(ステップS1550のYES)、パケット送信部700は、検索結果に対応するパケットデータをパケットバッファ500から読み出し、パケットデータをどこへも送信せず廃棄する(ステップS1560)。検索結果が廃棄指示でない場合(ステップS1550のNO)、検索結果が制御部800宛か否かを判定する(ステップS1570)。検索結果が制御部800宛でない場合(ステップS1570のNO)、パケット送信部700は、検索結果に対応するパケットデータをパケットバッファ500から読み出し、検索結果で指示される出力回線から出力する(ステップS1580)。一方、検索結果が制御部800宛の場合(ステップS1570のYES)、パケット送信部700は、検索結果に対応するパケットデータをパケットバッファ500から読み出し、制御部800へ送信する(ステップS1590)。
エントリ数管理テーブル660は、装置内に格納するテーブル種別毎のエントリを有する。図17では、一例として、IPv4ユニキャストテーブル用エントリと、IPv4マルチキャストテーブル用エントリと、IPv6ユニキャストテーブル用エントリと、IPv6マルチキャストテーブル用エントリと、ネットワーク階層のレイヤ2でパケット転送に用いられるMedia Access Control(MAC)アドレステーブル用エントリと、フィルタテーブル用エントリと、が設定されている状態を示している。
エントリ数管理テーブル660の1エントリは、装置が所持する複数の異なるテーブルの種別を示すテーブル種別を設定するテーブル種別フィールドと、あるテーブル種別に割り当てられているテーブルメモリ番号を設定する割当テーブルメモリフィールドと、テーブル種別毎の現在使用しているエントリ数を設定する使用エントリ数フィールドと、テーブル種別毎の有効なテーブルメモリ数を設定する有効テーブルメモリ数フィールドと、を含む。
図17では、一例として、IPv4ユニキャストテーブルに、テーブルメモリ610−1から610−Kまでの全テーブルメモリが割り当てられ、現在の使用エントリ数がe_cであり、有効テーブルメモリ数がm_acである場合の設定例を示している。この場合、エントリ数管理テーブル660のIPv4ユニキャストテーブル用エントリの割当テーブルメモリには“610−1〜610−K”と設定され、使用エントリ数フィールドには“e_c”が設定され、有効テーブルメモリ数フィールドには“m_ac”が設定される。それ以外のテーブル用エントリに関しては、割当テーブルメモリフィールドは全て”未割当”が設定され、使用エントリ数フィールドには“0”が設定され、有効テーブルメモリ数には“0”が設定される。
エントリ数管理テーブル660の設定処理に関しては、図20、図21、図22、図23を用いて後述する。
有効テーブルメモリ数判定テーブル670は、複数のエントリを有する。前記エントリは、エントリを識別するエントリ番号を設定するエントリ番号フィールドと、使用エントリ数の下限を設定する使用エントリ数下限フィールドと、使用エントリ数の上限を設定する使用エントリ数上限フィールドと、有効テーブルメモリ数を設定する有効テーブルメモリ数フィールドとを含む。使用エントリ数下限は、有効テーブルメモリ数を減らす基準になる値であり、使用エントリ数上限は、有効テーブルメモリ数を増やす基準になる値である。有効テーブルメモリ数は、現在の使用エントリ数が、前記使用エントリ数下限と前記使用エントリ数上限の間にある場合の有効にすべきテーブルメモリ数である。
特に図示していないが、有効テーブルメモリ数判定テーブルは、装置が所持する複数の異なるテーブル毎に所持する。
図19は、図18で示した有効テーブルメモリ数判定テーブル670の一設定例に従い、有効テーブルメモリ数が増加する場合と減少する場合の、有効テーブルメモリ数と使用エントリ数の関係を示した図である。実線が、有効テーブルメモリ数が増加するときの使用エントリ数と有効テーブルメモリ数の関係を示している。また、点線が、有効テーブルメモリ数が減少するときの使用エントリ数と有効テーブルメモリ数の関係を示している。有効テーブルメモリ数が増加する場合と、減少する場合と、で異なる使用エントリ数上限及び使用エントリ数下限を設定している理由は、以下に述べるとおりである。使用エントリ数上限と使用エントリ数下限を同一の値に設定する場合、前記設定値近辺で使用エントリ数が頻繁に増減すると、前記テーブルメモリ制御部640が、有効テーブルメモリ数を増減させるため、消費電力が増加してしまう可能性がある。有効テーブルメモリを変更する条件である使用エントリ数上限と使用エントリ数下限を、有効テーブルメモリ数が増加する場合と減少する場合で異なる値を設定することで、前記の有効テーブルメモリ数の頻繁な増減を避けることができる。
制御部800は、テーブルメモリ制御部640へ、エントリ追加・削除要求、及び、対象テーブル識別子(テーブル種別)、追加・削除エントリ数e_mを送信する(ステップS2001)。なお、e_mの値は、追加ならプラス、削除ならマイナスとすることができる。テーブルメモリ制御部640は、受信した対象テーブル識別子をキーにしてエントリ数管理テーブル660を検索し、登録・削除対象テーブルの現在の使用エントリ数e_c、現在の有効テーブルメモリ数m_acを取得する(ステップS2002)。次に、テーブルメモリ制御部640は、現在の有効テーブルメモリ数m_acを検索キーにして有効テーブルメモリ数判定テーブル670を検索し、該当するエントリの有効テーブルメモリ数判定テーブル670のエントリ番号tn及び使用エントリ数下限と上限を取得する(ステップS2003)。後述する図21及び図22の上限及び下限と区別するため、図20では、前記下限と上限を、それぞれ下限(1)、上限(1)と表記する(図中は丸数字で記載)。
次に、エントリ数管理テーブル670は、現在の使用エントリ数e_cと、追加・削除エントリ数e_mとの和(e_c+e_m)と、使用エントリ数下限(1)及び上限(1)とを比較する(ステップS2004)。(e_c+e_m)が使用エントリ数上限(1)より大きい場合(ステップS2004の”上限(1)<(e_c+e_m)”)、テーブルメモリ増加制御フローを開始する。テーブルメモリ増加制御フローの説明は、図21で後述する。
テーブルメモリ増加制御フローが終了した後、テーブルメモリ制御部640は、エントリ追加・削除指示をテーブルアクセス部630へ通知する(ステップS2005)。テーブルアクセス部630は、エントリ追加・削除指示に従い、検索テーブル610に対してエントリ追加・削除を実施する(ステップS2006)。次に、テーブルメモリ制御部640は、エントリ数管理テーブル660の当該テーブル種別の使用エントリ数を、(e_c+e_m)に更新して(ステップS2007)、テーブルメモリ制御フローを終了する。
ステップS2004で、(e_c+e_m)が使用エントリ数下限(1)以上、かつ、使用エントリ数上限(1)以下の場合(ステップS2004の”下限(1)≦(e_c+e_m)≦上限(1)”)、前記ステップS2005、S2006、S2007の処理を実施して、テーブルメモリ制御フローを終了する。
ステップS2004で、(e_c+e_m)が使用エントリ数下限(1)より小さい場合(ステップS2004の”(e_c+e_m)<下限(1)”)、テーブルメモリ減少制御フローを実行する。テーブルメモリ減少制御フローの説明は、図22で後述する。
テーブルメモリ制御部640は、有効テーブルメモリ数判定テーブル670のエントリ番号tnに1加算する(ステップS2100)。次に、テーブルメモリ制御部640は、tnを検索キーにして有効テーブルメモリ数判定テーブル670のエントリ番号を検索し、有効テーブルメモリ数判定テーブル670の、対応する使用エントリ数下限と上限を取得する(ステップS2101)。前記図20の上限及び下限と区別するため、図21では、前記下限と上限を、それぞれ下限(2)、上限(2)と表記する。
次に、テーブルメモリ制御部640は(e_c+e_m)と使用エントリ数下限(2)及び上限(2)と比較する(ステップS2102)。(e_c+e_m)が使用エントリ数上限(2)より大きい場合(ステップS2102の“上限(2)<(e_c+e_m)”)、ステップS2100に戻る。(e_c+e_m)が使用エントリ数下限(2)以上、かつ、使用エントリ数上限(2)以下の場合(ステップS2102の“下限(2)≦(e_c+e_m)≦上限(2)”)、テーブルメモリ制御部640は、tnを検索キーにして有効テーブルメモリ数判定テーブル670を検索し、有効テーブルメモリ数m_anを取得する(ステップS2103)。
次に、テーブルメモリ制御部640は、現在の有効テーブルメモリ数m_acとm_anの差分(m_an−m_ac)だけ、無効になっているテーブルメモリ600−j_iaの電源あるいはクロックを供給する(ステップS2104)。次に、テーブルメモリ制御部640は、エントリ数管理テーブル660の当該テーブル種別の有効テーブルメモリ数を、m_anに更新する(ステップS2105)。次に、テーブルメモリ制御部640は、有効化した当該テーブル種別のテーブルメモリ番号をテーブルアクセス部630に送信する(ステップS2106)。テーブルアクセス部630は、受信した有効化されたテーブルメモリ番号を、当該テーブル種別の検索範囲に追加し(ステップS2107)、テーブルメモリ増加制御フローを終了し、図20のステップS2005へ戻る。
テーブルメモリ制御部640は、エントリ削除指示をテーブルアクセス部630へ通知する(ステップS2201)。テーブルアクセス部630は、エントリ削除指示に従い、検索テーブル610に対してエントリ削除を実施する(ステップS2202)。テーブルメモリ制御部640は、エントリ数管理テーブル660の当該テーブル種別の使用エントリ数を、(e_c+e_m)に更新する(ステップS2203)。次に、テーブルメモリ制御部640は、有効テーブルメモリ数判定テーブル670のエントリ番号tnから1減算する(ステップS2204)。次に、テーブルメモリ制御部640は、tnを検索キーにして有効テーブルメモリ数判定テーブル670のエントリ番号を検索し、有効テーブルメモリ数判定テーブル670の、対応する使用エントリ数下限と上限を取得する(ステップS2205)。前記図20の上限及び下限と区別するため、図22では、前記下限と上限を、それぞれ下限(2)、上限(2)と表記する。
次に、テーブルメモリ制御部640は(e_c+e_m)と使用エントリ数下限(2)及び上限(2)と比較する(ステップS2206)。(e_c+e_m)が使用エントリ数下限(2)より小さい場合(ステップS2206の“下限(2)>(e_c+e_m)”)、ステップS2204に戻る。(e_c+e_m)が使用エントリ数下限(2)以上、かつ、使用エントリ数上限(2)以下の場合(ステップS2206の“下限(2)≦(e_c+e_m)≦上限(2)”)、テーブルメモリ制御部640は、tnを検索キーにして有効テーブルメモリ数判定テーブル670を検索し、対応する有効テーブルメモリ数m_anを取得する(ステップS2207)。次に、エントリ移動処理フローを開始する。エントリ移動処理フローの説明は、図24で後述する。エントリ移動処理フロー終了後、テーブルメモリ減少制御フロー2を開始する。
テーブルメモリ制御部640は、エントリ数管理テーブル660の当該テーブル種別の有効テーブルメモリ数を、m_anに更新する(ステップS2208)。次に、テーブルメモリ制御部640は、エントリ移動処理により無効化した当該テーブル種別のテーブルメモリ番号をテーブルアクセス部630に送信する(ステップS2209)。テーブルアクセス部630は、受信した無効化されたテーブルメモリ番号を、当該テーブル種別の検索範囲から削除する(ステップS2210)。テーブルメモリ制御部640は、現在の有効テーブルメモリ数m_acとm_anの差分(m_ac−m_an)だけ、有効になっているテーブルメモリ600−j_aの電源あるいはクロックの供給を停止し(ステップS2211)、テーブルメモリ制御フロー及びテーブルメモリ減少制御フローを終了する。
図24は、エントリ移動処理フローのフローチャートの説明図である。
テーブルメモリ制御部640は、無効化する予定の当該テーブル種別のテーブルメモリ番号をテーブルアクセス部630に送信する(ステップS2401)。なお、無効化するテーブルをどう選ぶかは、予め定められたルールに従うことができる。テーブルアクセス部630は、無効化する予定の当該テーブル種別のテーブルメモリに格納されているエントリの内容を読み出し、無効化する予定でないテーブルメモリに書き込む。検索方式上必要があれば、無効化する予定のテーブルメモリ内のエントリの内容は削除する(ステップS2402)。次に、テーブルアクセス部630は、テーブルメモリ制御部640に、エントリ移動処理が終了したことを通知し(ステップS2403)、エントリ移動処理フローを終了する。
以上、使用するエントリ数に応じて、検索テーブルを構成する複数のテーブルメモリの電源、あるいはクロックの供給を制御することで消費電力を削減する実施の形態について示した。
図25は、検索テーブル610がCAMとRAMの組み合わせで構成される場合のエントリ移動処理前の状態の一例を示す説明図である。CAMには検索キー情報が設定され、RAMには、検索キーに対応する宛先情報などが設定される。また、検索キーが複数のエントリにヒットする場合は、エントリ位置の若い方の結果が有効になる。
図25の例では、CAMは2つのテーブルメモリ610−1−1と610−2−1から構成される。各テーブルメモリ内には、例えばエントリが4個登録される。テーブルメモリ610−1−1内の4個のエントリ位置は、それぞれadr11〜adr14で表される。同様に、テーブルメモリ610−2−1内の4個のエントリ位置は、それぞれadr21〜adr24で表される。テーブルメモリ610−1−1内に3個のエントリ(エントリc1、エントリc2、エントリc3)が登録されている。また、テーブルメモリ610−2−1内に1個のエントリ(エントリc4)が登録されている。
また、図25の例では、RAMは2つのテーブルメモリエントリ610−1−2と610−2−2から構成されている。各テーブルメモリ内には、例えばエントリが4個登録される。RAMのエントリは、CAMのエントリと一対一に対応している。テーブルメモリ610−1−2内には、エントリc1、エントリc2、エントリc3に対応して、それぞれ、エントリr1、エントリr2、エントリr3が登録されている。また、テーブルメモリ610−2−2内には、エントリc4に対応して、エントリr4が登録されている。
さらに、テーブルメモリ610−1−1内のエントリ位置adr14と、対応するテーブルメモリ610−1−2内のエントリ位置は、エントリが未登録の状態である。また、テーブルメモリ610−2−1内のエントリ位置adr22、adr23、adr24と、対応するテーブルメモリ610−2−2内のエントリ位置は、エントリが未登録の状態である。
図26は、エントリ移動処理で、RAM内のエントリがコピーされた状態の一例を示す説明図である。装置がパケットを受信する際に実行する検索テーブルの検索処理の停止時間を最小限にするために、エントリ移動処理の第一の処理では、まず、RAM内のエントリであるエントリr4の内容を、テーブルメモリ610−2−2から、テーブルメモリ610−1−2の未登録エントリ位置にコピーする。この時点では、パケット受信時の検索処理でエントリc4に一致するパケットヘッダ情報が検索キーとして投入された場合、テーブルメモリ610−2−1内のエントリ位置adr21のエントリにヒットする。
図27は、エントリ移動処理で、CAM内のエントリがコピーされた状態の一例を示す説明図である。エントリ移動処理の第二の処理では、CAM内のエントリであるエントリc4の内容を、テーブルメモリ610−2−1から、テーブルメモリ610−1−1の未登録エントリ位置(adr14)にコピーする。本処理を行うことで、パケット受信時の検索処理でエントリc4に一致するパケットヘッダ情報が検索キーとして投入された場合、テーブルメモリ610−1−1内のエントリ位置adr14のエントリにヒットする。
図28は、エントリ移動処理で、CAM内のコピー元のエントリが削除された状態の一例を示す説明図である。図27の処理後、テーブルメモリ610−2−1のadr21に登録されたコピー元のエントリc4及び対応するエントリr4は不要になるため、エントリを削除して未登録状態に変更してもよい。また、テーブルメモリ610−2−1及びテーブルメモリ610−2−2に対しては、この後電源あるいはクロック供給を停止される、などの処理により無効化されるため、前記のエントリ削除未登録は行わなくてもよい。
次に、テーブルメモリの構成方法の図25から図28で説明したものとは別の一実施例と、その場合のエントリ移動処理の一実施例について説明する。
また、図34の例では、RAMは2つのテーブルメモリエントリ610−1−2と610−2−2から構成されている。各テーブルメモリ内には、例えばエントリが12個登録される。RAMのエントリは、CAMのエントリと一対一に対応している。テーブルメモリ610−1−2内には、エントリg1_c1、エントリg1_c2、エントリg1_c3、エントリg2_c1、エントリg2_c2、エントリg2_c3に対応して、それぞれ、エントリg1_r1、エントリg1_r2、エントリg1_r3、エントリg2_r1、エントリg2_r2、エントリg2_r3が登録されている。また、テーブルメモリ610−2−2内には、エントリg3_c1、エントリg3_c2、エントリg3_c3に対応して、エントリg3_r1、エントリg3_r2、エントリg3_r3、が登録されている。
図35は、エントリ移動処理で、グループ1、グループ2の新規登録用領域を確保しながら、グループ3の3つのエントリを移動する領域を確保するためにグループ2の3つのエントリを移動した後の状態を示す説明図である。グループ2の各エントリを、adr107〜adr109から、adr105〜adr107に移動する。
図36は、エントリ移動処理で、グループ3の3つのエントリをテーブルメモリ610−1−1及びテーブルメモリ610−2−1へ移動した後の状態を示す説明図である。グループ3の各エントリを、adr201〜adr203から、adr109〜adr111に移動する。この例では、グループg1〜g3の順序を変えずに、かつ、新規登録用領域を確保しながら、非活性化するテーブルメモリの各エントリを移動できる。
次に、テーブルメモリの構成方法の別の一実施の形態と、その場合のエントリ移動処理の一実施の形態について説明する。
図29の例では、RAMは2つのテーブルメモリ610−t1、及び、テーブルメモリ610−t2から構成される。各テーブルメモリ内には、例えばエントリが4個登録される。テーブルメモリ610−t1内の4個のエントリ位置は、それぞれadr11〜adr14で表される。同様に、テーブルメモリ610−t2内の4個のエントリ位置は、それぞれadr21〜adr24で表される。
検索テーブルRAM内に設定されるエントリは、宛先情報を格納する宛先情報フィールド、及び、左右二つの子ノードの格納位置を示す二つのポインタを設定するポインタフィールド(PLフィールド及びPRフィールド)を含む。
図29では、二分木の親ノードであるエントリr1と、エントリr1の二つの子ノードであるエントリr11、エントリr12と、が設定されている。エントリr1はテーブルメモリ610−t1内のadr11に設定され、PLフィールドには、左の子ノードであるエントリr11の格納情報であるadr21が設定され、PRフィールドには、右の子ノードであるエントリr12の格納情報であるadr22が設定されている。エントリr11及びエントリr12は、それぞれテーブルメモリ610−t2内のadr21、adr22に設定されている。図29では、エントリr11及びエントリr12は二分木の最終ノードとなっているため、それぞれのPLフィールド及びPRフィールドは“NULL”が設定されている。
以下では、エントリ移動処理の一例として、テーブルメモリ610−t2を非活性化させるため、テーブルメモリ610−t2内に登録されているエントリr11及びエントリr12を、ともにテーブルメモリ610−t1の未登録状態のエントリ位置に移動する場合の処理を説明する。本例では、移動処理は、図30、図31、図32の順で実行される。
図30は、二分木の子ノードのエントリがコピーされた状態の一例を示す説明図である。装置がパケットを受信する際に実行する検索テーブルの検索処理の停止時間を最小限にするために、本例でのエントリ移動処理の第一の処理では、まず、エントリr11及びエントリr12を、テーブルメモリ610−t2から、テーブルメモリ610−t1の未登録エントリ位置へコピーする。この時点では、パケット受信時の検索処理で、エントリr1からエントリr11、あるいは、エントリr12へ到達するパケットヘッダ情報が検索キーとして投入された場合、二分木構造のテーブルは、テーブルメモリ610−t1内のエントリr1からテーブルメモリ610−t2内のエントリr11、あるいは、エントリr12の順に検索され、最終的に到達したエントリr11、あるいは、エントリr12の宛先情報が検索結果として得られる。
図32は、コピー元の二分木の子ノードが削除された状態の一例を示す説明図である。図31の処理後、テーブルメモリ610−t2のadr21、あるいは、adr22に登録されたコピー元のエントリr11、あるいは、エントリr12は不要になるため、エントリを削除して未登録状態に変更してもよい。また、テーブルメモリ610−t2に対しては、この後電源あるいはクロック供給を停止される、などの処理により無効化されるため、前記のエントリ削除未登録は行わなくてもよい。
10:パケット処理部
100:パケット受信部
200:パケット監視部
210:パケットカウンタ
220:フリーランタイマ
230:パケット数計測部
300:パケットバッファ制御部
310:有効バッファ数管理テーブル
320:有効バッファ数制御部
330:バッファメモリ電源管理部
400:書き込み処理部
500:パケットバッファ
600:検索処理部
610:検索テーブル
610−1〜610−K:テーブルメモリ
620:検索キー生成部
630:テーブルアクセス部
640:テーブルメモリ制御部
650:検索結果生成部
660:エントリ数管理テーブル
670:有効テーブルメモリ数判定テーブル
700:パケット送信部
800:制御部
Claims (8)
- パケットを中継するネットワーク中継装置であって、
パケット受信部と、
該パケット受信部で受信したパケットが格納される、一つ一つが独立で動作する複数のパケットバッファと、
該パケットバッファからパケットを読み出して送信するパケット送信部と、
一定時間でのパケットの転送量を計測するパケット監視部と、
該パケットの転送量に応じて前記パケットバッファを制御するパケットバッファ制御部と
を備え、
前記パケットバッファ制御部は、前記パケット監視部で計測されたパケットの転送量と予め定められた複数の閾値により、装置に必要な有効バッファ数を判定し、判定された有効バッファ数に従い前記パケットバッファの電源又はクロック供給のON及びOFFを制御し、
前記パケットバッファ制御部は、有効バッファ数に対応して、該有効バッファ数を増加させる前記閾値のひとつである第1監視パケット数と、該有効バッファ数を減少させる前記閾値の他のひとつである第2監視パケット数とをそれぞれ保持しており、前記パケットの転送量が、現在の有効バッファ数に対応する第1監視パケット数を超えたとき、現在の有効バッファ数を増加させ、前記パケットの転送量が、現在の有効バッファ数対応する第2監視パケット数を下回ったとき、該有効バッファ数を減少させて前記有効バッファ数を判定し、
前記パケットバッファへの書き込み制御は、書き込み位置情報を示すライトポインタを前記パケットバッファ制御部で管理し、パケットが一つ届くたびに該ライトポインタの値を増加させ、該ライトポインタに従い前記パケットバッファにパケットを書き込み、
前記パケッバッファからの読み込み制御は、読み込み位置情報を示すリードポインタを前記パケットバッファ制御部で管理し、前記ライトポインタと前記リードポインタの値に1以上の差があるとき、前記パケットバッファのパケットを読み出し、パケットを読み出すごとに該リードポインタの値を増加させ
前記パケットバッファ制御部が、有効バッファ数を減らすと判定し、かつ、所定時間内に前記パケット受信部にパケットが届かなった場合、自ネットワーク中継装置内で廃棄される設定をされたダミーのパケットを前記パケット受信部に入力して装置に流させることで、休止予定のバッファ上のライトポインタとリードポインタを有効バッファ上に移動させる制御部
をさらに備える前記ネットワーク中継装置。 - 前記パケット監視部は、
前記パケット受信部からパケットを受信した通知を受け、パケット数を計測するパケットカウンタと、
予め定められた時間をカウントするためのタイマと、
前記パケットカウンタのカウンタ値と、前記タイマのタイマ値とを用いて、前記パケットの転送量を計測するパケット数計測部と
を有する請求項1のネットワーク中継装置。 - 前記ライトポインタ及び前記リードポインタは、設定される有効範囲内で循環して値が増加し、
前記パケットバッファ制御部は、該有効範囲の値が連続するように、電源をOFF又はクロック供給を停止する前記パケットバッファを特定する請求項1又は2に記載のネットワーク中継装置。 - 前記パケットバッファの空いている領域を管理し、前記パケットバッファの空いている領域を選択してパケットを書き込み、書き込んだ領域の識別情報を前記パケット送信部に通知する書き込み処理部
をさらに備え、
前記パケット送信部は、該識別情報に従い前記パケットバッファから該当する情報を読み出して、出力回線へ転送し、
前記パケットバッファ制御部は、パケットの書き込みが少ない前記パケットバッファ又はパケットが書き込まれていない前記パケットバッファから、電源をOFF又はクロック供給を停止する前記パケットバッファを選択する請求項1又は2に記載のネットワーク中継装置。 - パケットを中継するネットワーク中継装置であって、
宛先テーブル、フィルタテーブル及び優先制御テーブルの少なくともいずれかのテーブルが記憶され、一つ一つが独立で動作する複数のテーブルメモリと、
テーブルに格納すべきエントリ数に応じて前記テーブルメモリを制御するテーブルメモリ制御部と、
前記テーブルへのエントリの登録又は削除を指示する制御部と、
パケット受信部と、
該パケット受信部で受信したパケットが格納される、一つ一つが独立で動作する複数のパケットバッファと、
該パケットバッファからパケットを読み出して送信するパケット送信部と、
一定時間でのパケットの転送量を計測するパケット監視部と、
該パケットの転送量に応じて前記パケットバッファを制御するパケットバッファ制御部と
を備え、
前記テーブルメモリ制御部は、現在のテーブルの使用エントリ数を記憶しており、前記制御部から登録エントリ数を含むエントリ登録の指示又は削除エントリ数を含むエントリ削除の指示が通知されると、前記現在のテーブルの使用エントリ数と登録エントリ数又は削除エントリ数と予め定められた複数の閾値とから、必要な有効テーブルメモリ数を判定し、判定された有効テーブルメモリ数に従い前記テーブルメモリの一部の電源又はクロック供給のON及びOFFを制御し、
前記テーブルメモリ制御部は、有効テーブルメモリ数に対応して、該有効テーブルメモリ数を増加させる前記閾値のひとつである使用エントリ数上限値と、該有効テーブルメモリ数を減少させる前記閾値の他のひとつである使用エントリ数下限値とをそれぞれ保持しており、前記現在の使用エントリ数と前記登録エントリ数又は削除エントリ数との合計が、前記使用エントリ数上限値を超えたとき、現在の有効テーブルメモリ数を増加させ、前記現在の使用エントリ数と前記登録エントリ数又は削除エントリ数との合計が、前記使用エントリ数下限値を下回ったとき、現在の有効バッファ数を減少させて前記有効テーブルメモリ数を判定し、
前記パケットバッファ制御部は、前記パケット監視部で計測されたパケットの転送量と予め定められた複数の閾値により、装置に必要な有効バッファ数を判定し、判定された有効バッファ数に従い前記パケットバッファの電源又はクロック供給のON及びOFFを制御し、
前記パケットバッファ制御部は、有効バッファ数に対応して、該有効バッファ数を増加させる前記閾値のひとつである第1監視パケット数と、該有効バッファ数を減少させる前記閾値の他のひとつである第2監視パケット数とをそれぞれ保持しており、前記パケットの転送量が、現在の有効バッファ数に対応する第1監視パケット数を超えたとき、現在の有効バッファ数を増加させ、前記パケットの転送量が、現在の有効バッファ数対応する第2監視パケット数を下回ったとき、該有効バッファ数を減少させて前記有効バッファ数を判定する前記ネットワーク中継装置。 - 前記テーブルメモリ制御部が、有効テーブルメモリ数を減らすと判定し、かつ、無効にする予定の前記テーブルメモリに既にテーブルエントリが格納されている場合、前記テーブルメモリ制御部は該テーブルエントリを、有効な前記テーブルメモリにコピーし、コピーした後に、前記無効にする予定のテーブルメモリの電源をOFF又はクロック供給を停止する請求項5に記載のネットワーク中継装置。
- 前記テーブルメモリは、
複数のグループに分類された検索キー情報が、グループ順に記憶されるCAMと、
複数のグループに分類された、検索キーに対応する宛先情報、フィルタ情報及び優先制御情報の少なくともいずれかがグループ順に記憶されるRAMと
を有し、
第一に、無効にする予定の前記テーブルメモリのRAMに記憶された情報を、グループ順を変えずに、有効な前記テーブルメモリのRAMに移動し、
第二に、無効にする予定の前記テーブルメモリのCAMに記憶された情報を、グループ順を変えずに、有効な前記テーブルメモリのCAMに移動し、
有効な前記テーブルメモリのCAM及びRAM記憶された情報をグループ順を変えずに移動する請求項6に記載のネットワーク中継装置。 - 前記テーブルメモリは、二分木で構成され、
該テーブルメモリは、宛先情報を格納する宛先情報フィールドと、左右2つの子ノードの格納位置を示すポインタを設定する2つのポインタフィールドとを有し、
第一に、無効にする予定の前記テーブルメモリのポインタフィールドに記憶された情報を、有効な前記テーブルメモリのポインタフィールドに移動し、
第二に、無効にする予定の前記テーブルメモリの宛先情報フィールドに記憶された情報を、有効な前記テーブルメモリの宛先情報フィールドに移動する請求項6に記載のネットワーク中継装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009208291A JP5467558B2 (ja) | 2009-09-09 | 2009-09-09 | ネットワーク中継装置及びメモリ制御方法 |
US12/813,891 US8812754B2 (en) | 2009-09-09 | 2010-06-11 | Network relay device and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009208291A JP5467558B2 (ja) | 2009-09-09 | 2009-09-09 | ネットワーク中継装置及びメモリ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011061443A JP2011061443A (ja) | 2011-03-24 |
JP5467558B2 true JP5467558B2 (ja) | 2014-04-09 |
Family
ID=43647738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009208291A Active JP5467558B2 (ja) | 2009-09-09 | 2009-09-09 | ネットワーク中継装置及びメモリ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8812754B2 (ja) |
JP (1) | JP5467558B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5706297B2 (ja) * | 2011-02-18 | 2015-04-22 | アラクサラネットワークス株式会社 | パケット転送装置及びQoS制御回路の電力供給制御方法 |
JP5832155B2 (ja) * | 2011-06-20 | 2015-12-16 | 三菱電機株式会社 | 空気調和機のネットワークシステム |
EP2748710A4 (en) * | 2011-08-25 | 2015-02-11 | Intel Corp | DETERMINING AT LEAST ONE PART OF ONE OR MORE QUANTITIES OF BUFFER MEMORY FIELDS |
JP5797084B2 (ja) * | 2011-10-26 | 2015-10-21 | 日立アロカメディカル株式会社 | 超音波診断装置 |
JP5828746B2 (ja) * | 2011-11-24 | 2015-12-09 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP5748286B2 (ja) * | 2011-12-16 | 2015-07-15 | 日本電信電話株式会社 | フレーム転送装置およびフレーム判定方法 |
US9119129B2 (en) * | 2012-05-05 | 2015-08-25 | Broadcom Corporation | MAC header based traffic classification and methods for use therewith |
US8924640B2 (en) * | 2012-05-14 | 2014-12-30 | Alcatel Lucent | Dynamic allocation of records to clusters in a ternary content addressable memory |
JP5978792B2 (ja) | 2012-06-12 | 2016-08-24 | 富士通株式会社 | 伝送装置及び伝送方法 |
US20140086258A1 (en) * | 2012-09-27 | 2014-03-27 | Broadcom Corporation | Buffer Statistics Tracking |
WO2015065003A1 (ko) * | 2013-10-28 | 2015-05-07 | 주식회사 케이티 | 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법 |
KR101877595B1 (ko) * | 2013-10-28 | 2018-07-12 | 주식회사 케이티 | 서비스에 따른 트래픽 처리를 이용한 QoS 제어 방법 |
US11455275B2 (en) * | 2018-07-18 | 2022-09-27 | Weka.IO Ltd. | Storing a point in time coherently for a distributed storage system |
KR20210012439A (ko) * | 2019-07-25 | 2021-02-03 | 삼성전자주식회사 | 마스터 지능 소자 및 이의 제어 방법 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001144753A (ja) * | 1999-11-16 | 2001-05-25 | Nec Corp | パケット交換装置及びパケット交換装置のクロック信号制御装置並びにクロック信号制御方法 |
JP2002247081A (ja) | 2001-02-16 | 2002-08-30 | Nec Corp | バッファ管理方法およびatm交換機 |
JP2004240711A (ja) * | 2003-02-06 | 2004-08-26 | Fujitsu Ltd | バッファメモリ装置及びバッファメモリ制御方法 |
JP2005196545A (ja) * | 2004-01-08 | 2005-07-21 | Matsushita Electric Ind Co Ltd | 省電力制御装置 |
JP2005303458A (ja) * | 2004-04-07 | 2005-10-27 | Sharp Corp | 通信装置、バッファメモリ管理方法、電子機器、通信端末、バッファメモリ管理プログラム、および記録媒体 |
JP4622490B2 (ja) * | 2004-12-02 | 2011-02-02 | 株式会社日立製作所 | データ転送装置 |
US20060209684A1 (en) * | 2005-03-18 | 2006-09-21 | Via Technologies, Inc. | Data rate controller, and method of control thereof |
US8665892B2 (en) * | 2006-05-30 | 2014-03-04 | Broadcom Corporation | Method and system for adaptive queue and buffer control based on monitoring in a packet network switch |
JP4209906B2 (ja) * | 2006-08-02 | 2009-01-14 | 株式会社日立製作所 | 低消費電力メモリ管理方法及びその方法を用いた計算機 |
JP4823209B2 (ja) * | 2007-12-13 | 2011-11-24 | アラクサラネットワークス株式会社 | パケット転送装置 |
-
2009
- 2009-09-09 JP JP2009208291A patent/JP5467558B2/ja active Active
-
2010
- 2010-06-11 US US12/813,891 patent/US8812754B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011061443A (ja) | 2011-03-24 |
US20110058564A1 (en) | 2011-03-10 |
US8812754B2 (en) | 2014-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5467558B2 (ja) | ネットワーク中継装置及びメモリ制御方法 | |
US6757283B1 (en) | Push network | |
US20090190587A1 (en) | Method for deploying multicast network, multicast network and control server | |
JP5515649B2 (ja) | 通信システム、経路制御装置、経路制御方法および経路制御用プログラム | |
US20120207024A1 (en) | Network traffic analysis using a flow table | |
JP2010178343A (ja) | コンピュータ実施方法 | |
US20150304118A1 (en) | Method for preselecting a router in an rpl network | |
KR102430395B1 (ko) | 멀티캐스트 패킷을 전송하기 위한 방법, 장치, 및 시스템 | |
JP2008177968A (ja) | パケット中継装置 | |
Singh et al. | RPL enhancement for a parent selection mechanism and an efficient objective function | |
EP2652919B1 (en) | Method for group-based multicast with non-uniform receivers | |
JP5967222B2 (ja) | パケット処理装置、フローエントリの配置方法及びプログラム | |
US7792129B2 (en) | Multi-queue packet processing using Patricia tree | |
JP2006086718A (ja) | アクセスルータ及び端末装置 | |
He et al. | LFOD: a lightweight flow table optimization scheme in SDN based on flow length distribution in the Internet | |
JP2009177282A (ja) | ネットワークシステム | |
JP2005159670A (ja) | 経路制御システムおよび方法 | |
Lo et al. | Quota-control routing in delay-tolerant networks | |
Huang et al. | Online unicasting and multicasting in software-defined networks | |
JP2000354067A (ja) | プッシュ型ネットワーク | |
CN102394813A (zh) | 一种组播路由表项管理方法和路由器 | |
JP5191059B2 (ja) | バッファ回路及びバッファ回路制御方法 | |
CN115514693B (zh) | 芯片组播表的维护、组播转发方法、装置、路由器及介质 | |
Bachran et al. | A framework for multicast and quality based forwarding in manets. | |
CN102223284B (zh) | 组播选路的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121025 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131202 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20131210 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140121 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5467558 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |