(57)【特許請求の範囲】
【請求項１】
パケットを送受信する為の複数の回線を収容し、回線から受信したパケットを１つ以上の回線へ転送するネットワークノードであって、
前記パケットの転送先回線を決定するパケット経路検索部と、
一定時間毎の前記パケットの受信状況に応じて、前記パケット経路検索部のクロック周波数の変更の可否を判定する判定部と、
前記判定部の判定に基づく前記クロック周波数の変更の際、新たに用いるクロックの周波数を前記パケットの受信状況から算出する算出部と、を有し、
前記パケット経路検索部は、前記パケット経路検索部を同期化させるための要素を決定する試験用回路を備え、
前記パケット経路検索部は、前記試験用回路における前記要素の決定後、前記クロック周波数の変更に際し、パケット転送に必要な経路情報に基づき送信先を決定するパイプラインが完全に空き状態となった後、前記要素を適用する、
ことを特徴とするネットワークノード。
【請求項２】
請求項１に記載のネットワークノードであって、
前記パケット経路検索部は、前記パイプラインを完全に空き状態にしてから、前記クロック周波数を直前まで前記試験用回路で用いていた周波数に変更する、
ことを特徴とするネットワークノード。
【請求項３】
請求項２に記載のネットワークノードであって、
前記パケット経路検索部のクロック周波数を前記試験用回路で用いていた周波数に変更後、変更前までに用いていたクロック生成を不活性化する、
ことを特徴とするネットワークノード。
【請求項４】
請求項１に記載のネットワークノードであって、
前記試験用回路を使用しない時において、前記試験用回路を活性化させない、
ことを特徴とするネットワークノード。
【請求項５】
請求項１に記載のネットワークノードであって、
前記判定部における前記クロック周波数の変更の可否の判定に必要な条件を任意に設定可能である、
ことを特徴とするネットワークノード。
【請求項６】
請求項１に記載のネットワークノードであって、
前記パケット経路検索部は、前記パイプライン上にタスクが存在しない状態へ遷移している間に受信したパケットを蓄積するバッファメモリを有する、
ことを特徴とするネットワークノード。
【請求項７】
パケットを送受信する為の複数の回線を収容し、回線から受信したパケットを１つ以上の回線へ転送するネットワークノードであって、
前記複数の回線に接続される複数の回線インタフェースと、
前記複数の回線インタフェースに接続され、前記回線から受信した前記パケットを１つ以上の前記回線へ転送するパケット転送部と経路情報に基づき前記パケットの送信先を決定するパケット経路検索部を有する転送部と、
前記転送部に供給するクロックを生成するクロック制御部と、
前記パケットの受信状況に応じて、前記転送部に供給する前記クロックの周波数の変更の可否を判定する判定部とを備え、
前記パケット経路検索部は、
前記転送部を同期化させるための要素を決定するテスト領域と、前記パケットの送信先を決定する現用系領域を有し、
前記現用系領域は、前記テスト領域による前記要素の決定後、前記クロックの周波数を変更する際に、前記経路情報に基づき送信先を決定するパイプラインが完全に空き状態となった後、前記要素を適用する、
ことを特徴とするネットワークノード。
【請求項８】
請求項７に記載のネットワークノードであって、
前記クロック制御部は、クロック発振器と、前記クロック発振器に接続される複数のクロック逓倍・分週器と、複数の前記クロック逓倍・分週器の出力を選択するクロックセレクタと、複数の前記クロック逓倍・分週器と前記クロックセレクタを制御するクロック管理部を含む、
ことを特徴とするネットワークノード。
【請求項９】
請求項８に記載のネットワークノードであって、
前記クロック管理部は、複数の前記クロック逓倍・分週器の出力の一つを前記テスト領域に用いるクロックとし、前記クロックの周波数を変更する際に、前記テスト領域で用いた前記クロックを前記現用系領域に用いるよう制御する、
ことを特徴とするネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークノードの省電力化に関し、特に、ネットワークノードのクロック周波数の変更による省電力技術に関する。
【背景技術】
【０００２】
ネットワークノードのクロック周波数変更に関する背景技術として、特許文献１がある。この特許文献１では、ネットワーク中継装置の消費電力を、必要な性能を犠牲とすることなく抑制することを目的とし、ネットワークノードで生じる消費電力を抑制する手段として、単位時間当たりのパケット流量が設定した閾値に満たない場合、パケット転送に必要なモジュールへ供給するクロックを高クロックモードから低クロックモードに変更している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２２８４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１では、クロックモード変更の際、ネットワークノードはモジュールの再起動を実施する。しかし、この再起動時にパケット転送で用いる経路表等のデータベースを初期化する為、再起動による初期化から経路表再設定完了までの間に、ネットワークノードで受信したパケットを正しく転送できず、パケットが廃棄される恐れがある。
【０００５】
本発明の目的は、上記の課題を解決し、クロック周波数変更時にパケット転送に用いるデバイスを再起動させること無く、パケット受信状況に応じてクロック周波数の変更が可能なネットワークノードを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明においては、パケットを送受信する為の複数の回線を収容し、回線から受信したパケットを１つ以上の回線へ転送するネットワークノードであって、パケット転送に用いるデバイスと、一定時間毎のパケットの受信状況に応じて、デバイスのクロック周波数の変更の可否を判定する判定部と、判定部の判定結果に基づくクロック周波数の変更の際、新たに用いるクロックの周波数をパケットの受信状況から算出する算出部と、デバイスを同期化させるための要素を決定する試験用回路を備え、試験用回路における要素を決定した後のクロック周波数の変更に際し、デバイスは、パケット転送に必要な経路情報に基づき送信先を決定するパイプライン上にタスクが存在しない状態に遷移した後、上記の要素を適用するネットワークノードを提供する。
【０００７】
また、上記課題を解決するため、パケットを送受信する為の複数の回線を収容し、回線から受信したパケットを１つ以上の回線へ転送するネットワークノードであって、複数の回線に接続される複数の回線インタフェースと、複数の回線インタフェースに接続され、回線から受信したパケットを１つ以上の回線へ転送するパケット転送部と経路情報に基づきパケットの送信先を決定するパケット経路検索部を有する転送部と、転送部に供給するクロックを生成するクロック制御部と、パケットの受信状況に応じて転送部に供給するクロックの周波数の変更の可否を判定する判定部を備え、パケット経路検索部は、転送部を同期化させるための要素を決定するテスト領域と、前記パケットの送信先を決定する現用系領域を有し、現用系領域は、テスト領域による要素の決定後、クロック周波数を変更する際に要素を適用するネットワークノードを提供する。
【発明の効果】
【０００８】
本発明の構成を採ることにより、パケット転送用のデバイスを再起動させること無く、パケット受信状況に応じてクロック周波数を動的に変更可能なネットワークノードを提供可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施例に係わる、ネットワークノードの一構成を示すブロック図である。
【図２】第１の実施例に係わる、ネットワークノードのクロック制御部のブロック図である。
【図３】第１の実施例に係わる、ネットワークノードの判定回路のブロック図である。
【図４】第１の実施例に係わる、ネットワークノードのパケット統計部のブロック図である。
【図５】第１の実施例に係わる、ネットワークノードの経路検索部のブロック図である。
【図６】第１の実施例に係わる、ネットワークノードのパケット転送部のブロック図である。
【図７】第１の実施例に係わる、ネットワークノードへの電源投入直後におけるシーケンスを示すフローチャート図である。
【図８】第１の実施例に係わる、テスト領域における動作シーケンスを示すフローチャート図である。
【図９】第１の実施例に係わる、現用系領域に対し使用可能な最大のクロック周波数（Ｆmax）を供給する動作シーケンスを示すフローチャート図である。
【図１０】第１の実施例に係わる、クロック周波数の変更を決定するシーケンスを示すフローチャート図である。
【図１１】第１の実施例に係わる、クロック周波数の変更に必要な処理シーケンスを示すフローチャート図である。
【図１２】第１の実施例に係わる、クロック周波数変更中におけるクロック管理部の処理シーケンスを示すフローチャート図である。
【図１３】第１の実施例に係わる、クロック周波数変更中における現用系領域内の処理シーケンスを示すフローチャート図である。
【図１４】第１の実施例に係わる、フラグビットの使用例を示す図である。
【図１５Ａ】第１の実施例に係わる、テスト用メモリの入出力クロックの位相差を説明するための回路図である。
【図１５Ｂ】第１の実施例に係わる、テスト用メモリの入出力クロックの位相差を示す波形図である。
【図１６Ａ】第１の実施例に係わる、Ｒｅａｄデータがテスト用回路にて取り込み可能になることを説明するための回路図である。
【図１６Ｂ】第１の実施例に係わる、Ｒｅａｄデータがテスト用回路にて取り込み可能になることを示す波形図である。
【図１７Ａ】第１の実施例に係わる、経路検索に要するパケット宛先情報やパケット出力先情報を格納する記述子の一例を示す図である。
【図１７Ｂ】第１の実施例に係わる、経路検索に要するパケット宛先情報やパケット出力先情報を格納する記述子の一例を示す図である。
【図１８】第１の実施例に係わる、現用系領域における経路検索のパイプライン動作の概念図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例について図面を参照して説明する。なお、本明細書において、パケット転送に用いるデバイスとは、回線から受信したパケットを１つ以上の回線へ転送するための構成要素を意味している。また、パケットの転送に用いるパケット転送部やパケット経路検索部などのデバイスのクロック周波数の変更の可否を判定する機能を、「判定機能」、「判定部」、「判定手段」、あるいは「判定回路」と呼ぶなど、各種の「機能」を、「部」、「手段」、あるいは「回路」と表現する場合がある。
【実施例１】
【００１１】
第１の実施例は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケット中継を担うネットワークノードの構成に関するものである。
【００１２】
図１は、第１の実施例に係わるネットワークノードの一構成例を示すブロック図である。同図において、ネットワークノード１０は、装置内の各コンポーネントにクロックを供給するクロック制御部１１と、収容回線上を伝送するパケットの送受信を担う回線インタフェース（Ｉ／Ｆ）１６−ｉ（ｉ＝１〜Ｎ）と、信号線Ｌ１−ｉ（ｉ＝１〜Ｎ）を介して回線インタフェース１６−ｉ（ｉ＝１〜Ｎ）に接続されるパケット転送部１５と、受信したパケットの送信先を該パケットのヘッダ情報から決定するパケット経路検索部１４と、受信パケット数をカウントするパケット統計部１３と、パケット統計部１３における一定時間毎の受信パケット数に応じてクロック制御部１１が供給するクロック周波数の増加・減少を判定する判定部として機能する判定回路１２と、主にネットワークノード同士で交換する経路情報の管理を担う処理部として機能する中央処理部(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：ＣＰＵ)１７とから構成される。なお、このＣＰＵ１７以外の各機能ブロックは、例えばＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）や、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を用いて構成することができる。そして、本実施例のネットワークノードのパケットの転送に用いるデバイスとは、少なくともパケット転送部とパケット経路検索部１４の現用系領域を含んでいる。
【００１３】
９０は、ネットワークノード１０の外部に位置し、信号線Ｌ０を介してＣＰＵ１７と接続され、ネットワークノード１０の管理者が操作する管理端末を示している。図１における、各ブロック間の結線中、頭文字が“Ｃ”のものはクロックバスを、頭文字“Ｌ”のものは信号線を示している。以下の図面においても同様である。図２に示すように、クロック制御部１１は、その内部にクロック発信器１１１、クロック管理部１１２、クロックセレクタ１１３、及びクロック逓倍・分周器１１０−１〜３を備えている。クロック管理部１１２は、後述するように、新たに用いるクロックの周波数を、パケットの受信状況から算出する算出部として機能する。
【００１４】
ここから、図７に示したシーケンス図に基づき、電源投入後のネットワークノード１０の動作について説明する。ステップＳ２０１で電源が投入されると、図２に示すクロック制御部１１内部のクロック発振器１１１が、予め定められた周波数のクロック（Ｆ０）を、クロックバスＣ１１０１から出力する（ステップＳ２０２）。クロックＦ０が入力されるクロック逓倍・分周器１１０−１では、ネットワークノード１０で使用可能な最大周波数のクロック（Ｆmax）を生成し、クロックバスＣ１〜Ｃ３、Ｃ７及びＣ１１０４へ出力する。また、クロック逓倍・分周器１１０−１は、クロックＦmaxを生成し始めてから一定時間後に、クロック周波数が固定されたことを示す信号（クロック固定信号）を信号線Ｌ１１１０と信号線Ｌ１７とに出力する（ステップＳ２０３）。
【００１５】
因みに、クロック逓倍・分周器１１０−１には、Ｆmaxを生成する為に必要な値を設定する。クロック逓倍・分周器１１０−１では、この値は変更不可能とする。尚、本明細書の図面では、回線インタフェース１６−ｉ（ｉ＝１〜Ｎ）へのクロックバスを割愛することとする。
【００１６】
図２に示すクロックＦ０が入力されるクロック逓倍・分周器１１０−２及びクロック逓倍・分周器１１０−３においても、ネットワークノード１０へ対する電源投入の際、初期設定としてクロックＦmaxを生成し、それぞれクロックバスＣ１１０２とＣ１１０３とに出力する。クロック逓倍・分周器１１０−１と同様に、クロック逓倍・分周器１１０−２はクロック固定信号を信号線Ｌ１１１４から出力し、クロック逓倍・分周器１１０−３はクロック固定信号を信号線Ｌ１１１５から出力する。
【００１７】
信号線Ｌ１１１０と信号線Ｌ１１１４と信号線Ｌ１１１５とからクロック固定信号を入力されたクロック管理部１１２は、クロックセレクタ１１３に対し、クロックバスＣ１１０３から入力されたクロックＦmaxのみをクロックバスＣ５へ出力するよう、信号線Ｌ１１１１を介して指示する（ステップＳ２０４）。このとき、クロックセレクタ１１３では、クロックバスＣ１１０２から入力されるクロックＦmaxを全く意識せず、クロックバスＣ４から何も出力させない。
【００１８】
以下、図５の経路検索部１４内部の詳細構成図と、図８に示した動作シーケンスを用いて、本実施例のネットワークノード１０中の経路検索部１４の具体的構成とその動作を説明する。図５に示すように、経路検索部１４は、現用系領域１４Ａと試験部となるテスト領域１４Ｂで構成される。以下、この試験部を構成するテスト領域１４Ｂについて説明する。テスト領域１４Ｂ内には、テスト用回路１４６、テスト用メモリ１４７、及びＤｅｌａｙｅｒ１４３−２を備えている。テスト領域１４Ｂ内のテスト用回路１４６は、クロックセレクタ１１３に接続されたクロックバスＣ５からクロックＦmaxが入力した際（図８のステップＳ３０１）、テスト用回路１４６が信号線Ｌ１４１２、１４１３経由でＤｅｌａｙｅｒ１４３−２へ対し、“Ｄｅｌａｙ値＝０”と、Ｄｅｌａｙｅｒ設定値更新指示とを出力する。このとき、Ｄｅｌａｙｅｒ１４３−２は、上記指示に従い、Ｄｅｌａｙｅｒ設定値としてゼロを用いる（ステップＳ３０２）。
【００１９】
ここで、試験部であるテスト領域１４Ｂ内のコンポーネントとしてテスト用回路１４６とテスト用メモリ１４７のみ描いた図１５Ａと、その動作信号群を描いた図１５Ｂを参照しつつ、Ｄｅｌａｙｅｒ１４３を用いる理由について述べる。例えば、テスト用メモリ１４７をＲｅａｄする際、ＲｅａｄアドレスとＲｅａｄコマンドを信号線Ｌ１４１０経由でテスト用メモリ１４７に出力する。同時に、テスト用メモリ１４７にて上記ＲｅａｄアドレスとＲｅａｄコマンドとを取り込ませる為のクロックを、クロックバスＣ１４０３経由で、テスト用メモリ１４７に出力する。クロックバスＣ１４０３に出力するクロックは、クロックＦmaxの逆位相で伝播するクロックを用いる。すなわち、テスト用回路１４６にて、クロックＦmaxの逆位相で動作するクロックを生成する。
【００２０】
この結果、テスト用メモリ１４７は、Ｒｅａｄ要求されたアドレスからデータを読み出して信号線Ｌ１４１１から出力すると同時に、該データの出力タイミングに同期するクロック（エコークロック）をクロックバスＣ１４０２から出力する。メモリのＲｅａｄアクセスでは、上述したメモリ内部動作に起因する遅延時間が存在する為、図１５Ｂから明らかなように、クロックバスＣ１４０３からテスト用メモリ１４７に入力されたクロックと、上記エコークロックとの間に位相差が生じる。この位相差により、テスト用回路１４６において、メモリからＲｅａｄしたデータをクロックＦmaxで取り込めない可能性が発生する。
【００２１】
そこで、テスト用回路１４６において、ＲｅａｄデータをクロックＦmaxで取り込む為には、図１６Ａ、図１６Ｂに示すように、クロックＦmaxと上記エコークロックとの位相差を解消、すなわち両者を同期化させるため、Ｄｅｌａｙｅｒ１４３内でＲｅａｄデータを遅延させる必要がある。Ｄｅｌａｙｅｒ１４３では、同期化させるための要素であるＤｅｌａｙｅｒ遅延時間（＝Ｄｅｌａｙｅｒ設定値と予め定められた特定時間との積）を、入力されたＲｅａｄデータに適用（即ち、Ｄｅｌａｙｅｒ１４３内でＤｅｌａｙｅｒ遅延時間の分だけＲｅａｄデータを保持）後に出力する。
【００２２】
以上により、本実施例のネットワークノード１０のパケット検索部１４の試験部を構成するテスト領域１４Ｂでは、Ｄｅｌａｙｅｒ１４３に入力されたメモリＲｅａｄデータを、Ｄｅｌａｙｅｒ１４３内で保持させることにより、クロックＦmaxで取り込み可能となる。
【００２３】
尚、図５の経路検索部１４の現用系領域１４Ａで用いる現用系メモリ１４２には、ネットワークノード１０で転送するパケットの経路情報が格納される。経路情報制御部１４１にて、現用系メモリ１４２のＲｅａｄデータ、即ちパケットの経路情報を、経路情報制御部１４１にて用いる動作クロックで取り込めない場合、受信パケットに正確な経路情報を提供できなくなり、通信の信頼性を低下させる事態に陥る。本実施例における、この事態への対応方法を図２、図５、図８等を参照しながら説明する。
【００２４】
ステップＳ３０２の後、テスト領域１４Ｂのテスト用回路１４６は、テスト用データを信号線Ｌ１４０９に出力すると同時に、ＷｒｉｔｅコマンドとＷｒｉｔｅアドレスとを信号線Ｌ１４１０に出力する。このとき、Ｒｅａｄアクセス時と同様に、クロックＦmaxの逆位相で動作するクロックを、クロックバスＣ１４０３に出力する。
【００２５】
テスト用回路１４６は、テスト用メモリ１４７に対するＷｒｉｔｅ動作の後、ＷｒｉｔｅアクセスしたばかりのアドレスとＲｅａｄコマンドを信号線Ｌ１４１０に出力する（ステップＳ３０３）。
【００２６】
テスト用回路１４６は、このＲｅａｄコマンドによってテスト用メモリ１４７から読み出されるＲｅａｄデータと、Ｗｒｉｔｅしたテスト用データ（Ｗｒｉｔｅデータ）とを比較する（ステップＳ３０４）。
【００２７】
比較の結果、ＷｒｉｔｅデータとＲｅａｄデータが一致する場合、テスト回路１４６が備える当該Ｄｅｌａｙｅｒ設定値に対応するフラグビットに‘１’を設定する（ステップＳ３０５）。一方、一致しない場合、当該Ｄｅｌａｙｅｒ設定値へ対応するフラグビットに‘０’を設定する（ステップＳ３０６）。例えば、図１４に示すように、Ｄｅｌａｙｅｒ設定値１４０１が１から４までの場合のみ一致する場合、フラグビット１４０２に示す結果となる。
【００２８】
次にテスト用回路１４６は、Ｄｅｌａｙｅｒ１４３−２のＤｅｌａｙｅｒ設定値が設定可能な最大値であるか否かを確認する（ステップＳ３０７）。ここで、最大値ではない場合、Ｄｅｌａｙｅｒ設定値を１だけ加算し（ステップＳ３０８）、ステップＳ３０３を実施する。一方、最大値である場合、フラグビットが１となるＤｅｌａｙｅｒ設定値１４０１の中央値を求める。図１４の例における中央値は２となる。その後、該中央値と、テスト完了を示す識別子とを信号線Ｌ１３へ出力する。
【００２９】
図９は、クロック管理部１１２における、現用系領域１４Ａに対し、ネットワークノード１０で使用可能な最大のクロック周波数（Ｆmax）を供給することを目的とした動作シーケンスを示すフローチャートを、図１０は、クロック周波数の変更を決定するシーケンスを示すフローチャートを示している。
【００３０】
図９のステップＳ４０１に示すように、図２のクロック管理部１１２は、Ｄｅｌａｙｅｒ１４３に設定すべき該中央値（＝Ｄｅｌａｙ値）が信号線Ｌ１３から入力されると、信号線Ｌ１１１１を介したクロックセレクタ１１３に対し、クロックバスＣ１１０３から入力されるクロックＦmaxをクロックバスＣ４より出力させる指示を出す（ステップＳ４０２）。同時に、クロックバスＣ５へ対するクロックＦmaxの供給停止指示を出す。
【００３１】
ここまで、クロックバスＣ１１０２からクロックセレクタ１１３に入力されるクロックＦmaxは全く使用されていない。このとき、クロック管理部１１２は、クロック逓倍・分周器１１０−２からのクロック出力を停止させる為、クロック逓倍・分周器１１０−２の逓倍値・分周値を共にゼロとする指示を信号線Ｌ１１１２に出力する（ステップＳ４０３）。このとき、クロック管理部１１２は、クロック逓倍・分周器１１０−２が未使用状態になることを記録する。
【００３２】
この後、クロック管理部１１２は、ステップＳ４０１で得たＤｅｌａｙ値を信号線Ｌ５経由で現用系領域１４Ａに出力する（ステップＳ４０４）と同時に、現用系メモリ１４２に経路情報を設定させる為の指示を信号線Ｌ１０経由でＣＰＵ１７へ出力する（ステップＳ４０５）
図１において、ネットワークノード同士で送受信するネットワーク接続情報に基づいて経路情報を構成するＣＰＵ１７は、ステップＳ４０５の指示を受けた後、Ｗｒｉｔｅデータ（経路情報）を信号線Ｌ１１に出力すると同時に、ＷｒｉｔｅコマンドとＷｒｉｔｅアドレスとを信号線Ｌ１２へ出力する。このときＣＰＵ１７は、現用系メモリ１４２に対し、上記Ｗｒｉｔｅコマンド・アドレス・データを現用系メモリ１４２にて反映させる為に必要なクロックをクロックバスＣ６経由で供給する。このＣＰＵ１７による現用系メモリ１４２へのＷｒｉｔｅ動作により、現用系メモリ１４２に経路表が構築される（図１０のステップＳ５０１）。
【００３３】
なお、説明を簡単化する為、本明細書の現用系メモリ１４２は、全ＩＰアドレスの経路情報を収容可能な容量を備えるものとする。この条件では、受信パケットの宛先ＩＰアドレスを現用系メモリ１４２のＲｅａｄアドレスとして用いることにより、該宛先ＩＰアドレスに対する送出先情報、例えば、送信回線インタフェース番号やＣＰＵが得られる。
【００３４】
続いて図６を用いて、本実施例の構成における、ネットワークノード１０のパケット転送部１５等における一般的なパケット中継動作について説明する。図６に示すように、パケット転送部１５はパケット転送用プロセッサ１５０とパケットバッファメモリ１５１を備えている。このパケットバッファメモリ１５１は、後で説明するパケット経路検索部１４のパイプライン上に、経路検索を行うタスクが存在しない状態へ遷移している間に受信したパケットを、廃棄することなく蓄積可能な容量を有している。尚、説明の簡略化のため、パケット転送用プロセッサ１５０とパケットバッファメモリ１５１との間に配置すべきＤｅｌａｙｅｒは割愛した。
【００３５】
図６に示すように、クロック制御部１１に接続されたクロックバスＣ２から入力されるクロックＦmaxで動作するパケット転送部１５において、パケット転送用プロセッサ１５０は、回線インタフェース１６−ｉ（ｉ＝１〜Ｎ）から、或いは信号線Ｌ１８を介したＣＰＵ１７からパケットが入力される際、該パケットヘッダ記載のパケットサイズとパケットバッファメモリ１５１の空き領域の先頭アドレスとに基づき、該パケットとＷｒｉｔｅコマンドと該先頭アドレスとを信号線Ｌ１５０１へ出力することにより、パケットバッファメモリ１５１に対する書き込み制御を実施する。
【００３６】
すなわち、パケット転送用プロセッサ１５０は、書き込み制御の度にパケットバッファメモリ１５１の空き領域の先頭アドレスを更新する。同時に、該パケットから抽出したパケットヘッダ情報と該先頭アドレスとから成る、図１７Ａに示すような記述子Ａを信号線Ｌ２経由で経路検索部１４へ出力する。このとき、パケット転送用プロセッサ１５０は、パケットを受信したことを示すパルス信号を信号線Ｌ３でパケット統計部１３へ出力する。クロックバスＣ１から入力されるクロックで動作するパケット統計部１３では、上記パルス信号が入力される毎に、図４に示す受信パケットカウンタ１３０を１だけ加算する。
【００３７】
以下、図１５及び図１８を参照しながら、本実施例における現用系領域１４Ａのパイプライン動作について述べる。
【００３８】
＜パイプラインステージ＃１（図１８−（１））＞
図１８は、パケット経路検索部１４中の現用系領域１４Ａにおける経路検索のためのパイプライン動作と経路検索のタスクを説明するための図である。
【００３９】
上述した記述子Ａが、個々のタスクとして信号線Ｌ２から入力される経路検索キー生成部１４０では、入力された記述子Ａから現用系メモリ１４２のＲｅａｄアクセスに必要な宛先アドレスを抽出し、検索キーを生成する。経路検索キー生成部１４０は、検索キーの生成後、該検索キーを信号線Ｌ１４０１に出力すると同時に、Ｒｅａｄコマンドを信号線Ｌ１４０２に出力する。このとき、経路検索キー生成部１４０は、入力された記述子Ａを信号線Ｌ１４０３経由で経路情報制御部１４１に出力する。
【００４０】
＜パイプラインステージ＃２（図１８−（２））＞
経路表を格納する現用系メモリ１４２は、入力された該検索キー、すなわち、現用系メモリ１４２の物理アドレスとＲｅａｄコマンドとに基づき、該検索キーに対応する現用系メモリ１４２内のエントリより経路情報を読み出し、該経路情報を信号線Ｌ１４０４に出力する。
【００４１】
＜パイプラインステージ＃３（図１８−（３））＞
信号線Ｌ１４０４から経路情報を入力されたＤｅｌａｙｅｒ１４３−１は、経路情報をＤｅｌａｙｅｒ遅延時間の分だけ保持した後、信号線Ｌ１４０５経由で経路情報制御部１４１に出力する。尚、上述したステップＳ４０４により、Ｄｅｌａｙｅｒ１４３−１には、信号線Ｌ１４０４から入力される該経路情報を遅延させるのに適当なＤｅｌａｙ値が設定されている為、上述したクロック位相差を意識しなくて良い。
【００４２】
＜パイプラインステージ＃４（図１８−（４））＞
経路情報制御部１４１は、経路検索キー生成部１４０から入力された該記述子Ａに受信した経路情報を付加し、該経路情報が付加された、図１７Ｂに示す記述子Ｂを信号線Ｌ４経由でパケット転送用プロセッサ１５０に出力する。
【００４３】
信号線Ｌ４から経路情報付の記述子Ｂが入力されたパケット転送用プロセッサ１５０は、該記述子Ｂの記載内容、すなわち先頭アドレスおよびパケットサイズ、に従ってパケットバッファメモリ１５１にＲｅａｄアクセスし、信号線Ｌ１５０２から元のパケットを得る。この後、パケット転送用プロセッサ１５０は記述子Ｂに付加された経路情報に記載の送出先へ向けてパケットを出力する。
【００４４】
ここまでが本実施例のネットワークノード１０における一般的なパケット中継動作についての説明である。尚、上述の通り、パケット転送用プロセッサ１５０とパケットバッファメモリ１５１との間に配置すべきＤｅｌａｙｅｒを簡単化の為に割愛した。ここから、本実施例のネットワークノード１０の構成の特徴部分ついて、図２〜図５、図１０等を用いて説明する。
【００４５】
図３の判定回路１２において、信号線Ｌ１７から入力されるクロック固定信号を起動契機とするタイマー１２０は、任意に設定可能な一定時間毎にパルス信号を信号線Ｌ６へ出力する。図４に示すパケット統計部１３の受信パケットカウンタ１３０は、信号線Ｌ６からパルス信号が入力されると、該パルス信号入力時における、パケット受信を示すパルス信号のカウンタ値（ＳＵＭ）を信号線Ｌ７へ出力する。このとき、受信パケットカウンタ１３０は、上記のカウンタ値をリセットする。
【００４６】
図１０のステップＳ５０１において、ＣＰＵ１７による現用系メモリ１４２に対する経路情報設定が完了した状態において、上記ＳＵＭが一定時間毎に入力されるクロック周波数変更可否判定部１２１では、新規のＳＵＭが入力された際、直前のＳＵＭと値を比較する（ステップＳ５０２）。比較した結果、新規のＳＵＭが、直前のＳＵＭと可変係数（ｘ）との積以上である場合、或いは直前のＳＵＭと可変係数（ｙ）との積以下である場合、クロック周波数変更可否判定部１２１は、現用系領域１４Ａのクロック周波数の変更が必要と判断し、信号線Ｌ８に上記ＳＵＭと周波数の変更を促すコードを出力する（ステップＳ５０３）。同時にクロック周波数変更可否判定部１２１は、一定時間毎のＳＵＭとして新規ＳＵＭを格納する（直前のＳＵＭは破棄する）。
【００４７】
図２のクロック管理部１１２は、図１１のクロック周波数の変更に必要な処理シーケンスに示すように、上記ＳＵＭと周波数の変更を促すコードとが信号線Ｌ８から入力されると（ステップＳ６０１）、上記新規ＳＵＭを単位時間における装置の最大パケット転送数で割って得られる値とＦmaxとの乗算を実施し、新クロック周波数を決定する（ステップＳ６０２）。次に、クロック管理部１１２は、新クロック周波数の生成に向け、Ｆ０に対する逓倍値・分周値を計算する（ステップＳ６０３）。更に、クロック管理部１１２は、クロック逓倍・分周器１１０−２及びクロック逓倍・分周器１１０−３の内、未使用のクロック逓倍・分周器（ここではクロック逓倍・分周器１１０−２）に対し、計算した逓倍値・分周値の設定を指示する信号を信号線Ｌ１１１２へ出力（ステップＳ６０４）。
【００４８】
この後、クロック管理部１１２は、クロック逓倍・分周器１１０−２からクロック固定信号が信号線Ｌ１１１４経由で入力されることを確認する（ステップＳ６０５）。次に、クロック管理部１１２は、クロックバスＣ１１０２からクロックセレクタ１１３へ入力されるクロックを、クロックバスＣ５から出力する為の指示を信号線Ｌ１１１１経由でクロックセレクタ１１３に発行する（ステップＳ６０６）。ステップＳ６０６実施後、ステップＳ３００を実施する。なお、ステップＳ３００の詳細は既に述べているので割愛する。
【００４９】
図１２に、クロック周波数変更中におけるクロック管理部１１２の処理シーケンスを示した。ステップＳ３００実施の結果として、信号線Ｌ１３からクロック管理部１１２へＤｅｌａｙ値が入力されると（ステップＳ７０１）、クロック管理部１１２は、経路検索部１４の現用系１４Ａに対し、クロック周波数の変更を実施するモードに遷移中であることを示す信号を信号線Ｌ１５とＬ１６とに出力する（ステップＳ７０２）。
【００５０】
この後、クロック管理部１１２は、経路検索部１４の現用系領域１４Ａ構成要素の内、経路検索キー生成部１４０以降のパイプラインが完全に空き状態となるまでに要する時間（＝理論値から計算可能）が過ぎるまで待機する（ステップＳ７０３）。クロック管理部１１２は、待機した後、ステップＳ６０４で使用を開始したクロックをクロックバスＣ４から出力させる為の指示を信号線Ｌ１１１１経由でクロックセレクタ１１３に発行する（ステップＳ７０４）。このとき、クロックセレクタ１１３は、クロックバスＣ５に対するクロックの出力を停止する。
【００５１】
次にクロック管理部１１２は、ステップＳ７０４より前までにクロックバスＣ４に出力させていたクロック生成元のクロック逓倍・分周器１１０（ここでは、クロック逓倍・分周器１１０−３）をステップＳ４０３と同様に未使用とする（ステップＳ７０５）。この後、クロック管理部１１２は、現用系領域１４Ａ内のＤｅｌａｙｅｒ１４３−１に対し、ステップＳ７０１で得たＤｅｌａｙ値を信号線Ｌ５経由で出力する（ステップＳ７０６）。クロック管理部１１２は、ステップＳ７０２以降で出力していた信号を停止する（ステップＳ７０７）。
【００５２】
図３の判定回路１２内のクロック周波数変更可否判定部１２１は、クロック周波数の変更を実施するモードに遷移中であることを示す信号が信号線Ｌ１５から入力されている間、ステップＳ５０２とステップＳ５０３とを実施しない。
【００５３】
図１２に、クロック周波数変更中におけるクロック管理部１１２の処理シーケンスを示す。  経路検索キー生成部１４０は、ステップＳ７０２でクロック管理部１１２から信号線Ｌ１６経由でクロック周波数変更モードに遷移したことを示す信号が入力されると（ステップＳ８０１）、パケット転送用プロセッサ１５０に対して上述の記述子Ａを出力させない為の信号（＝バックプレッシャー）を発行し始める（ステップＳ８０２）。すると、現用系領域１４Ａでは、上述の記述子Ａがパケット転送用プロセッサ１５０から入力されなくなる。
【００５４】
ステップＳ８０２の開始から上記パイプラインが空になるまでの間、経路検索キー生成部１４０は、Ｄｅｌａｙｅｒ１４３−１に対し、（上記ステップＳ７０６で触れられた）Ｄｅｌａｙ値を反映させない為の抑止信号の発行を開始する（ステップＳ８０３）。上記パイプラインが空となった後、経路検索キー生成部１４０は、上記抑止信号の発行を停止する（ステップＳ８０４）。
【００５５】
Ｄｅｌａｙｅｒ１４３−１は、ステップＳ７０６で説明した信号線Ｌ５から入力されたＤｅｌａｙ値に従い、Ｄｅｌａｙｅｒ設定値を更新する（ステップＳ８０５）。ステップＳ７０７で触れたように、経路検索キー生成部１４０は、クロック周波数変更モード中であることを信号が信号線Ｌ１６から入力されない状態に移行したことを認識すると（ステップＳ８０６）、パケット転送用プロセッサ１５０に対するバックプレッシャー信号の発行を停止する（ステップＳ８０７）。この後、ネットワークノード１０では、通常のパケット転送動作が再開される。
【００５６】
以上の構成を採ることにより、上述した課題を克服し、受信したパケットを廃棄させることの無いネットワークノード１０が提供可能となる。なお、以上の本実施例では、特に触れなかったが、ネットワークノード１０の管理者は、管理端末９０を用い、装置内状態の確認、および装置へ対する各種条件の設定をしても良い。装置内状態を確認する例として、ネットワークノード１０が受信したパケットの総数（パケット総数カウンタ１２２へのアクセス）が挙げられる。また、装置へ対する各種条件の設定として、上記の可変係数（ｘ、ｙ）が挙げられる。尚、管理端末９０から装置内状態の確認、および装置へ対する各種の条件の設定は信号線Ｌ９を介して実行する。
【００５７】
以上詳述した第１の実施例は、ＩＰパケット中継を担うネットワークノードに関するものであるが、上記した実施例は本発明を分かりやすく説明するために詳細に説明したのであり、本発明を適用する装置、パケットの種類等は此れに限られない。また、必ずしも上述した実施例の全ての構成を備えるものに限定されものではない。
【００５８】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部を、例えばＡＳＩＣやＦＰＧＡ等によりハードウェアで実現する例を説明したが、上記の各構成、機能等を、プロセスがそれぞれの構成、機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。その場合、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶部におくことができるし、必要に応じてネットワーク等を介してダウンロード、インストロールすることも可能である。更に、制御線、信号線やクロック線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らないことは先に述べた通りである。
【符号の説明】
【００５９】
１０    ネットワークノード
１１    クロック制御部
１２    判定回路
１３    パケット統計部
１４    パケット経路検索部
１４Ａ  現用系領域
１４Ｂ  テスト領域
１５    パケット転送部
１６    回線インタフェース
１７    ＣＰＵ
９０    管理端末
１１０  クロック逓倍・分周器
１１１  クロック発振器
１１２  クロック管理部
１１３  クロックセレクタ
１２０  タイマー
１２１  クロック周波数変更可否判定部
１３０  受信パケットカウンタ
１４０  経路検索キー生成部
１４１  経路情報制御部
１４２  現用系メモリ（経路表）
１４３  Ｄｅｌａｙｅｒ
１４６  テスト用回路
１４７  テスト用メモリ
１５０  パケット転送用プロセッサ
１５１  パケットバッファメモリ
【図１】
0005319722.tif 000002
【図２】
0005319722.tif 000003
【図３】
0005319722.tif 000004
【図４】
0005319722.tif 000005
【図５】
0005319722.tif 000006
【図６】
0005319722.tif 000007
【図７】
0005319722.tif 000008
【図８】
0005319722.tif 000009
【図９】
0005319722.tif 000010
【図１０】
0005319722.tif 000011
【図１１】
0005319722.tif 000012
【図１２】
0005319722.tif 000013
【図１３】
0005319722.tif 000014
【図１４】
0005319722.tif 000015
【図１５Ａ】
0005319722.tif 000016
【図１５Ｂ】
0005319722.tif 000017
【図１６Ａ】
0005319722.tif 000018
【図１６Ｂ】
0005319722.tif 000019
【図１７Ａ】
0005319722.tif 000020
【図１７Ｂ】
0005319722.tif 000021
【図１８】
0005319722.tif 000022