(57)【要約】【課題】  他の特性を損なわずにバッファ制御の低消費電力化を実現できるバッファ制御装置を提供する。【解決手段】  内部バッファと省電力モードを有する外部バッファとで入力パケットをバッファリングするバッファ制御装置に関する。バッファリング態様は２態様である。内部バッファだけを用いる態様では、入力段のＦＩＦＯメモリからのパケットを内部バッファに直接入力させ、この際、外部バッファを省電力モードにする。内部バッファ及び外部バッファを同時に用いる態様では、ＦＩＦＯメモリからのパケットを省電力モードが解除されている外部バッファに入力させ、外部バッファから読み出されたパケットを内部バッファに入力させる。内部バッファ、外部バッファ及びＦＩＦＯメモリの蓄積量を監視して、２つの態様間で適宜遷移させる。【選択図】      図１
2015095823.tif 000002
【特許請求の範囲】
【請求項１】
第２のバッファと、上記第２のバッファより蓄積容量が大きいと共に省電力モードを有する第１のバッファとを備え、入力パケットをバッファリングするバッファ制御装置において、
上記第１又は上記第２のバッファへ転送する前の入力パケットを一時的に蓄積する一時蓄積部と、
第１の転送先バッファ制御信号に基づき、上記一時蓄積部に蓄積された入力パケットを上記第１のバッファに与えるか、若しくは、上記第１のバッファにパケットを入力させない第１のバッファ入力選択部と、
第２の転送先バッファ制御信号に基づき、上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに与えるか、若しくは、上記第１のバッファから読み出されたパケットを上記第２のバッファに与える第２のバッファ入力選択部と、
上記第１及び第２のバッファを共に用いたバッファリングが適切な第１の状態と、上記第２のバッファのみのバッファリングが適切な第２の状態との一方をとる現状状態を管理し、上記一時蓄積部、上記第１のバッファ及び又は上記第２のバッファの蓄積量に基づき、現状状態から他方の状態への遷移が必要かを判別し、上記第１の状態である現状状態から上記第２の状態への遷移が必要となったときに、このとき用の上記第１及び第２の転送先バッファ制御信号を形成すると共に、上記第１のバッファにおける省電力モードをオンに制御し、上記第１の状態への遷移が必要となったときに、このとき用の上記第１及び第２の転送先バッファ制御信号を形成すると共に、上記第１のバッファにおける省電力モードをオフに制御する省電力・バッファ選択制御部と
を有することを特徴とするバッファ制御装置。
【請求項２】
上記省電力・バッファ選択制御部は、上記第１の状態である現状状態から上記第２の状態への遷移が必要となったときに、上記第１及び第２の転送先バッファ制御信号を操作して、まず、上記一時蓄積部のパケットを上記第１及び第２のバッファに入力させず、上記第１のバッファから読み出したパケットを上記第２のバッファに入力させ、その後、上記第１のバッファの蓄積量が０となったときに、上記第１及び第２の転送先バッファ制御信号を再び操作して、上記一時蓄積部のパケットを上記第２のバッファに入力させると共に、上記第１のバッファの省電力モードをオンに制御することを特徴とする請求項１に記載のバッファ制御装置。
【請求項３】
上記省電力・バッファ選択制御部は、上記第１及び第２のバッファの蓄積量の合計蓄積量が、上記一時蓄積部の空き容量より少なくなったときに、上記第１の状態である現状状態から上記第２の状態への遷移が必要と判断することを特徴とする請求項１又は２に記載のバッファ制御装置。
【請求項４】
上記第２のバッファに、外部からの送信停止要求が入力され、送信停止要求な有効なときに、上記第２のバッファが蓄積パケットの読み出しを停止することを特徴とする請求項１〜３のいずれかに記載のバッファ制御装置。
【請求項５】
バッファを備えてパケットのバッファリングを制御するバッファ制御装置を有するネットワーク装置において、
上記バッファ制御装置として、請求項１〜３のいずれかに記載のバッファ制御装置を適用したことを特徴とするネットワーク装置。
【請求項６】
第２のバッファと、上記第２のバッファより蓄積容量が大きいと共に省電力モードを有する第１のバッファと、上記第１又は上記第２のバッファへ転送する前の入力パケットを一時的に蓄積する一時蓄積部とを利用して入力パケットのバッファリングするバッファ制御方法において、
上記第２のバッファのみを用いたバッファリングを行っている第２の状態時に、
上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに与えると共に、上記第１のバッファにおける省電力モードをオンに制御し、
上記第２のバッファの蓄積量に基づき、現状の第２の状態から、上記第１及び第２のバッファを共に用いたバッファリングが適切な第１の状態への遷移が必要となったか確認し、
上記第１の状態への遷移が必要となったときに、上記第１のバッファにおける省電力モードをオフに制御し、上記一時蓄積部に蓄積された入力パケットを上記第１のバッファに入力させ、上記第１のバッファから読み出されたパケットを上記第２のバッファに入力させるように切り替え、
上記第１の状態時に、
上記第１のバッファ、上記第２のバッファ及び上記一時蓄積部の蓄積量に基づき、現状の第１の状態から、上記第２の状態への遷移が必要となったか確認し、
上記第２の状態への遷移が必要となったときに、上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに入力させるように切り替えると共に、上記第１のバッファにおける省電力モードをオンに制御する
ことを特徴とするバッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク装置、バッファ制御装置及びバッファ制御方法に関し、例えば、ＰＯＮ（Ｐａｓｓｉｖｅ  Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ：受動光ネットワーク）システムにおけるＯＮＵ（Ｏｐｔｉｃａｌ  Ｎｅｔｗｏｒｋ  Ｕｎｉｔ：加入者側光回線終端装置）の下りバッファに対するバッファ制御に適用し得るものである。
【背景技術】
【０００２】
ネットワーク装置は、入力側に対して出力側のインタフェースが低速な場合には、大容量のフレームバッファが必要になる。一般に、フレームバッファの実装方法としては、外付けメモリを用いる方法がある（非特許文献１）。外付けメモリを実装する場合（以後、外部バッファと呼称する）、特定用途向けＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）内に専用の制御回路と入出力ピンが必要になるため、特定用途向けＬＳＩにメモリを内蔵する場合（以降、内部バッファと呼ぶ）に比較して、消費電力が大きい。このため、ネットワーク装置の消費電力を低く抑えるため、外部バッファを消費電力の小さい内部バッファに置き換えることが有効である。しかし、大容量のバッファを特定用途向けＬＳＩ内部の内蔵メモリとして実装すると、特定用途向けＬＳＩのチップ面積が増大し、特定用途向けＬＳＩの製造コストが上昇する。
【０００３】
大容量のバッファが必要なネットワーク装置では、特定用途向けＬＳＩのチップ面積の増大を抑えながら、バッファの消費電力を削減するために、小容量の内部バッファと、大容量の外部バッファの両方を備え、低消費電力を実現する方法が、特許文献１により提案されている。
【０００４】
また、多重データに対して小容量バッファ制御を行うバッファ制御部と、多重データに対して大容量バッファ制御を行うＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）バッファ制御部の２つのバッファ制御部を備え、トラヒック状態をそれぞれモニタして、いずれかのバッファ制御部を選択し、小容量のバッファ制御中は、ＱｏＳバッファ制御部をパワーダウンさせ、低消費電力を実現する方法が、特許文献２により提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−４４５１１号公報
【特許文献２】特開２０１１−２５９０７８号公報
【非特許文献】
【０００６】
【非特許文献１】“ＰＡＳ６２０１  Ｐｒｏｄｕｃｔ  Ｂｒｉｅｆ”、ＰＭＣ−Ｓｉｅｒｒａ発行；「ＰＡＳ６２０１」はＰＭＣ−Ｓｉｅｒｒａ社製のＦＴＴＨ向けシステム・オン・チップ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術には、以下のような課題がある。
【０００８】
特許文献１及び特許文献２の記載技術では、内部バッファ又は小容量のバッファ制御部と、外部バッファ又は大容量のＱｏＳバッファ制御部では、特定用途向けＬＳＩ内部の内蔵メモリと、外付けメモリのアクセスレイテンシの違いから、各バッファからのパケットの読み出しと書き込みのレイテンシが異なり、バッファ切替処理中の読み出し制御が複雑になると考えられる。
【０００９】
例えば、特許文献１の記載技術では、バッファ蓄積量が第２の閾値を下回り、入力パケットの蓄積先が内部バッファに切り替わった後、出力ポートが、例えば、ＰＡＵＳＥフレームを受け取るなどして送信一時停止状態となり、かつ、バッファ蓄積量が第１の閾値を上回り、外部バッファに未出力の古いパケットと新しく入力されたパケットが混在した場合に、パケットの出力順序が保たれなくなったり、パケットの廃棄が発生したりする可能性がある。
【００１０】
本発明は、以上のような課題に鑑みてなされたもので、その目的は、他の特性を損なうことなく、バッファ制御の低消費電力化を実現できるネットワーク装置、バッファ制御装置及びバッファ制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
第１の本発明は、第２のバッファと、上記第２のバッファより蓄積容量が大きいと共に省電力モードを有する第１のバッファとを備え、入力パケットをバッファリングするバッファ制御装置において、（１）上記第１又は上記第２のバッファへ転送する前の入力パケットを一時的に蓄積する一時蓄積部と、（２）第１の転送先バッファ制御信号に基づき、上記一時蓄積部に蓄積された入力パケットを上記第１のバッファに与えるか、若しくは、上記第１のバッファにパケットを入力させない第１のバッファ入力選択部と、（３）第２の転送先バッファ制御信号に基づき、上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに与えるか、若しくは、上記第１のバッファから読み出されたパケットを上記第２のバッファに与える第２のバッファ入力選択部と、（４）上記第１及び第２のバッファを共に用いたバッファリングが適切な第１の状態と、上記第２のバッファのみのバッファリングが適切な第２の状態との一方をとる現状状態を管理し、上記一時蓄積部、上記第１のバッファ及び又は上記第２のバッファの蓄積量に基づき、現状状態から他方の状態への遷移が必要かを判別し、上記第１の状態である現状状態から上記第２の状態への遷移が必要となったときに、このとき用の上記第１及び第２の転送先バッファ制御信号を形成すると共に、上記第１のバッファにおける省電力モードをオンに制御し、上記第１の状態への遷移が必要となったときに、このとき用の上記第１及び第２の転送先バッファ制御信号を形成すると共に、上記第１のバッファにおける省電力モードをオフに制御する省電力・バッファ選択制御部とを有することを特徴とする。
【００１２】
第２の本発明は、バッファを備えてパケットのバッファリングを制御するバッファ制御装置を有するネットワーク装置において、上記バッファ制御装置として、第１の本発明のバッファ制御装置を適用したことを特徴とする。
【００１３】
第３の本発明は、第２のバッファと、上記第２のバッファより蓄積容量が大きいと共に省電力モードを有する第１のバッファと、上記第１又は上記第２のバッファへ転送する前の入力パケットを一時的に蓄積する一時蓄積部とを利用して入力パケットのバッファリングするバッファ制御方法において、（１）上記第２のバッファのみを用いたバッファリングを行っている第２の状態時に、（１−１）上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに与えると共に、上記第１のバッファにおける省電力モードをオンに制御し、（１−２）上記第２のバッファの蓄積量に基づき、現状の第２の状態から、上記第１及び第２のバッファを共に用いたバッファリングが適切な第１の状態への遷移が必要となったか確認し、（１−３）上記第１の状態への遷移が必要となったときに、上記第１のバッファにおける省電力モードをオフに制御し、上記一時蓄積部に蓄積された入力パケットを上記第１のバッファに入力させ、上記第１のバッファから読み出されたパケットを上記第２のバッファに入力させるように切り替え、（２）上記第１の状態時に、（２−１）上記第１のバッファ、上記第２のバッファ及び上記一時蓄積部の蓄積量に基づき、現状の第１の状態から、上記第２の状態への遷移が必要となったか確認し、（２−２）上記第２の状態への遷移が必要となったときに、上記一時蓄積部に蓄積された入力パケットを上記第２のバッファに入力させるように切り替えると共に、上記第１のバッファにおける省電力モードをオンに制御することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、他の特性を損なうことなく、バッファ制御の低消費電力化を実現できるネットワーク装置、バッファ制御装置及びバッファ制御方法を提供できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態のバッファ制御装置の構成を示すブロック図である。
【図２】実施形態のバッファ制御装置における省電力モード有効時の入力パケットの流れを示す説明図である。
【図３】実施形態のバッファ制御装置における外部バッファに係る各種状態間の遷移を示す状態遷移図である。
【図４】実施形態のバッファ制御装置における外部バッファの管理状態がインユース状態の場合における入力パケットの流れを示す説明図である。
【図５】実施形態のバッファ制御装置における外部バッファの省電力モード無効から有効への遷移中のパケット転送の流れ（ケース１）を示す説明図である。
【図６】実施形態のバッファ制御装置における外部バッファの省電力モード無効から有効への遷移中のパケット転送の流れ（ケース２）を示す説明図である。
【発明を実施するための形態】
【００１６】
（Ａ）主たる実施形態
以下、本発明によるネットワーク装置、バッファ制御装置及びバッファ制御方法の一実施形態を、図面を参照しながら説明する。
【００１７】
実施形態のネットワーク装置は、実施形態のバッファ制御装置を有するものである。ネットワーク装置の種類は限定されるものではないが、ネットワーク装置は、例えば、ＰＯＮシステムにおけるＯＮＵである。この例の場合であれば、実施形態のバッファ制御装置を、ＯＮＵの下り方向のバッファ制御に適用し得る。
【００１８】
（Ａ−１）実施形態の構成
図１は、実施形態のバッファ制御装置の構成を示すブロック図である。
【００１９】
図１において、実施形態のバッファ制御装置１は、入力ポートＰＩＮを介して入力された、当該ネットワーク装置内の前段回路からの可変長パケットを適宜バッファリングして出力ポートＰＯＵＴから当該ネットワーク装置内の後段回路へ出力するものである。
【００２０】
バッファ制御装置１は、優先度識別部２、ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）メモリ３、外部用入力選択部４−１、内部用入力選択部４−２、外部用書き込み制御処理部５−１、内部用書き込み制御処理部５−２、外部バッファ６−１、内部バッファ６−２、外部用読み出し制御処理部７−１、内部用読み出し制御処理部７−２、第１判定部８−１、第２判定部８−２及び省電力・バッファ選択制御部９を有する。
【００２１】
優先度識別部２は、入力ポートＰＩＮを介して入力された入力パケットの優先度クラスを、そのヘッダから抽出し、後段の外部バッファ６−１若しくは内部バッファ６−２内の優先度毎のバッファまで入力パケットと共に伝播させるものである。
【００２２】
ＦＩＦＯメモリ３は、外部バッファ６−１の使用中から未使用（省電力モード）への切り戻し切り替え時に、一時的に入力パケットを蓄積するための先入れ先出しの極小容量のメモリである。また、ＦＩＦＯメモリ３は、外部バッファ６−１の省電力モードへの遷移条件を検出するための情報として当該ＦＩＦＯメモリ３の空き容量情報Ｓ３を出力する。ＦＩＦＯメモリ３の出力端は、外部用入力選択部４−１及び内部用入力選択部４−２の両方に接続されている。
【００２３】
内部用入力選択部４−２は、外部バッファ６−１が省電力モード中のときには、ＦＩＦＯメモリ３からの入力パケットを選択し、外部バッファ６−２が省電力モード解除状態のときには、外部バッファ６−１から外部用読み出し制御処理部７−１が読み出したパケット入力を選択する。
【００２４】
外部用入力選択部４−１は、外部バッファ６−１が省電力モード中のときに、入力パケット無しとし（図中の「０」固定を選択し）、外部バッファ６−１が省電力モード解除状態のときには、ＦＩＦＯメモリ３からの入力パケットを選択する。
【００２５】
なお、外部用入力選択部４−１への入力選択信号Ｓ９−１と、内部用入力選択部４−２の入力選択信号Ｓ９−２は、いずれも省電力・バッファ選択制御部９から出力される。
【００２６】
外部バッファ６−１は、外付けの大容量メモリなどを具備したバッファメモリである。外部用書き込み制御処理部５−１は、外部用入力選択部４−１からの入力パケットを外部バッファ６−１へ書き込むための制御部である。また、外部用読み出し制御処理部７−１は、外部バッファ６−１から、蓄積パケットを読み出すための制御部である。
【００２７】
内部バッファ６−２は、小容量のメモリを具備したバッファメモリである。内部用書き込み制御処理部５−２は、内部用入力選択部４−２からの入力パケットを内部バッファ６−２へ書き込むための制御部である。また、内部用読み出し制御処理部７−２は、内部バッファ６−２から、蓄積パケットを読み出すための制御部であり、読み出されたパケットは、出力ポートＰＯＵＴを介して、当該ネットワーク装置内の後段回路へ与えられる。
【００２８】
内部用書き込み制御処理部５−２は、優先度毎に内部バッファの空きがない状態を示すバッファフル情報Ｓ５−２を外部用読み出し制御処理部７−１へ出力するものである。このバッファフル情報Ｓ５−２は、内部バッファの状態がフルの時に、外部バッファ６−１から内部バッファ６−２へのパケット転送を一時的に停止する目的で使用する。また、内部用読み出し制御処理部７−２には、当該ネットワーク装置内の後段回路から送信停止要求Ｓ１０が与えられることもあり、このとき、内部用読み出し制御処理部７−２は、内部バッファ６−２からの蓄積パケットの読出しを停止する。送信停止要求Ｓ１０は、後段回路内のＦＩＦＯメモリがフル状態になったり、他のネットワーク装置からＰＡＵＳＥフレームを受信したりしたときなどに与えられる。
【００２９】
外部バッファ６−１は、優先度別に蓄積量の情報（優先度別蓄積情報Ｓ６−１１）を第１判定部８−１に出力するものである。同様に、内部バッファ６−２は、優先度別に蓄積量の情報（優先度別蓄積情報Ｓ６−２）を第２判定部８−２に出力するものである。ここで、蓄積量は、蓄積バイト数、又は、バッファの蓄積管理単位をブロックとした場合の蓄積ブロック数のいずれかである。
【００３０】
外部バッファ６−１は、省電力・バッファ選択制御部９からのスリープ開始指示Ｓ９−３に従ってスリープ（ＳＬＥＥＰ）状態に移行し、省電力・バッファ選択制御部９からのスリープ解除指示Ｓ９−４に従ってスリープ状態を解除するものであり、解除したときには、スリープ解除応答Ｓ６−１２を省電力・バッファ選択制御部９に与えるものである。
【００３１】
第１判定部８−１は、ＦＩＦＯメモリ３からの空き容量情報Ｓ３、外部バッファ６−１からの優先度別蓄積情報Ｓ６−１１、及び、内部バッファ６−２からの優先度別蓄積情報Ｓ６−２を元に、優先度別に閾値判定を行い、その比較結果Ｓ８−２１〜Ｓ８−２３を省電力・バッファ選択制御部９に与えるものである。
【００３２】
第２判定部８−２は、内部バッファ６−２からの優先度別蓄積情報Ｓ６−２を元に、優先度別に閾値判定を行い、その比較結果Ｓ８−２１〜Ｓ８−２３を省電力・バッファ選択制御部９に与えるものである。
【００３３】
第１判定部８−１は、エンプティ判定、切り戻し判定、閾値ＴＨＸ超過判定の３種類の判定を行う。
【００３４】
エンプティ判定では、外部バッファ６−１の優先度別蓄積情報Ｓ６−１１の全ての蓄積量が０となった場合に、判定結果Ｓ８−１１を有効にする。この判定結果情報Ｓ８−１１は、外部バッファ６−１を、チェンジ（ＣＨＡＮＧＥ）状態からアウェイク（ＡＷＡＫＥ）状態へ遷移させる処理の過程で使用される。
【００３５】
切り戻し判定では、外部バッファ６−１からの優先度別蓄積情報Ｓ６−１１と内部バッファ６−２からの優先度別蓄積情報Ｓ６−２から計算された、外部バッファ６−１と内部バッファ６−２の全優先度の合計の蓄積量が、ＦＩＦＯメモリ３の空き容量情報Ｓ３を下回った場合に、判定結果Ｓ８−１２を有効にする。この判定結果情報Ｓ８−１２は、外部バッファ６−１を、アウェイク状態からスリープ状態へ遷移させるトリガとして使用される。
【００３６】
閾値ＴＨＸ超過判定では、優先度毎の許容する最大蓄積量を設定する廃棄閾値である閾値ＴＨＸを超過した場合に、閾値ＴＨＸを超過した優先度の判定結果情報Ｓ８−１３を有効にする。すなわち、閾値ＴＨＸ超過判定では、優先度毎に、判定結果情報Ｓ８−１３があり、そのうち、閾値ＴＨＸを超過した優先度の判定結果情報Ｓ８−１３を有効にする。この判定結果情報Ｓ８−１３は、バッファフル要因で入力パケットを廃棄させるために、外部用書き込み制御処理部５−１において使用される。
【００３７】
第２判定部８−２は、閾値ＴＨ１未満判定、閾値ＴＨ２超過判定、閾値ＴＨ３超過判定の３種類の判定を行う。閾値間には、閾値ＴＨ１＜閾値ＴＨ２＜閾値ＴＨ３の関係がある。
【００３８】
閾値ＴＨ１未満判定では、外部バッファ６−１がアウェイク状態（すなわち、スリープ解除状態）にあるとき、外部バッファ６−１をスリープ状態へ遷移させるか否かを決定するための閾値ＴＨ１と、内部バッファ６−２における各優先度毎の蓄積量とを比較し、全ての優先度の蓄積量が閾値ＴＨ１未満になった場合に、判定結果情報Ｓ８−２１を有効にする。
【００３９】
閾値ＴＨ２超過判定では、外部バッファ６−１がスリープ状態のときに、外部バッファ６−１のスリープ状態を解除するか否かを決定するための閾値ＴＨ２と、内部バッファ６−２における各優先度毎の蓄積量とを比較し、全優先度の内、１つの優先度の蓄積量でも閾値ＴＨ２超過になった場合に、判定結果情報Ｓ８−２２を有効にする。
【００４０】
閾値ＴＨ３超過判定では、外部バッファ６−１のスリープ解除（ウェイクアップ（ＷＡＫＥＵＰ））の完了後、入力パケットの一次蓄積先を外部バッファ６−１へ切り替えるか否かを決定するための閾値ＴＨ３と、内部バッファ６−２における各優先度毎の蓄積量とを比較し、全優先度の内、１つの優先度の蓄積量でも閾値ＴＨ３超過になった場合に、判定結果情報Ｓ８−２３を有効にする。ここで、内部バッファ６−２から外部バッファ６−１の入力切り替えは一括で行われるが、１つの優先度の蓄積量でも閾値ＴＨ３超過になった場合に、判定結果情報Ｓ８−２３が有効とする。
【００４１】
（Ａ−２）実施形態の動作
次に、以上の構成を有する実施形態のバッファ制御装置１の動作を、図面を参照しながら説明する。
【００４２】
図２は、実施形態のバッファ制御装置１における省電力モード有効時の入力パケットの流れを示す説明図である。ネットワーク装置の立上げ後、通常は、この省電力モード有効の状態に遷移することになる（デフォルト状態が省電力モード有効の状態Ｉ。以下、省電力モード有効、すなわち、外部バッファ６−１内の外付けメモリ及びそのメモリコントローラがパワーセーブ状態となっている状態から、動作を説明する。
【００４３】
図２の状態では、内部用入力選択部４−２は、ＦＩＦＯメモリ３の出力を選択しており、入力パケットは、内部バッファ６−２のみを通過する。このとき、省電力・バッファ選択制御部９の管理状態はスリープ状態となっている。
【００４４】
図３は、実施形態のバッファ制御装置１における外部バッファ６−１に係る管理状態間の遷移を示す状態遷移図である。省電力・バッファ選択制御部９は、外部バッファ６−１の状態を図３に示すように管理する。省電力・バッファ選択制御部９は、状態遷移を引き起こす条件の成立に応じて、ＦＩＦＯメモリ３、外部用入力選択部４−１、内部用入力選択部４−２、外部バッファ６−１、内部バッファ６−２等を適宜制御すると共に、外部バッファ６−１についての管理状態も遷移させる。
【００４５】
閾値ＴＨ２は、外部バッファ６−１がスリープ状態（図３のＳＴ１参照）にあるときに、外部バッファ６−１のスリープを解除することを決定するために、内部バッファ６−２の蓄積量と比較される閾値である。内部バッファ６−２における全優先度の蓄積量の内、ある１つの優先度の蓄積量でも閾値ＴＨ２を超過すると、判定結果情報Ｓ８−２２が有効となる。今、内部バッファ６−２におけるパケットの蓄積が進み、判定結果情報Ｓ８−２２が有効になったとする。
【００４６】
このとき、省電力・バッファ選択制御部９は、省電力モードが有効となっている外部バッファ６−１を、スリープ状態からアウェイク状態（図３のＳＴ３参照）にするために、スリープ解除指示Ｓ９−４を有効にして、外部バッファ６−１に出力すると同時に、外部バッファ６−１の管理状態をウェイクアップ（ＷＡＫＥＵＰ）状態（図３のＳＴ２参照）に変更する。スリープ解除指示Ｓ９−４を受け取った外部バッファ６−１は、内部のメモリコントローラを省電力モードから復帰させた後、内部の外付けメモリも省電力モードから通常モードに復帰させる処理を行う。通常モードに復帰後、外部バッファ６−１は、スリープ解除指示応答Ｓ６−１２を有効にする。省電力・バッファ選択制御部９は、スリープ解除指示応答Ｓ６−１２の有効を確認した後、スリープ解除指示Ｓ９−４を無効に変更し、外部バッファ６−１の管理状態をアウェイク状態に変更する。
【００４７】
閾値ＴＨ３は、外部バッファ６−１のスリープ解除、すなわち、ウェイクアップが完了した後、入力パケットの一次蓄積先を外部バッファ６−１へ切り替えるか否かを決定するために、内部バッファ６−２の蓄積量と比較される閾値である。管理状態がアウェイク状態になった後、内部バッファ６−２におけるある優先度の蓄積量が閾値ＴＨ３を超過すると、省電力・バッファ選択制御部９は、その後の入力パケットは優先度によらず、外部バッファ６−１に転送させるために、外部用入力選択部４−１への入力選択信号Ｓ９−１を、ＦＩＦＯメモリ３の出力を選択するように変更すると共に、内部用入力選択部４−２への入力選択信号Ｓ９−２を、外部用読み出し制御処理部７−１の出力を選択するように変更する。
【００４８】
また、省電力・バッファ選択制御部９は、外部バッファ６−１の管理状態をインユース（ＩＮ−ＵＳＥ）状態（図３のＳＴ４参照）に変更する。図４は、外部バッファ６−１の管理状態がインユース状態の場合における入力パケットの流れを示す説明図である。インユース状態においては、入力パケットは、図４に示すように、外部バッファ６−１に一時蓄積され、外部バッファ６−１から読み出された後、直ちに内部バッファ６−２に蓄積され、内部バッファ６−２から読み出された後に、後段回路へ出力される。但し、後段回路からの送信停止要求Ｓ１０が有効な場合には、図４とは異なり、内部バッファ６−２からの読出しが一時的に停止される。
【００４９】
第１判定部８−１が行う切り戻し判定は、外部バッファ６−１からの優先度別蓄積情報Ｓ６−１１と、内部バッファ６−２からの優先度別蓄積情報Ｓ６−２から計算された、外部バッファ６−１と内部バッファ６−２の全優先度の合計の蓄積量が、ＦＩＦＯメモリ３の空き容量情報Ｓ３を下回るか否かの判定であり、合計蓄積量が空き容量情報Ｓ３を下回った場合には、判定結果情報Ｓ８−２２が有効とされる。この判定結果情報Ｓ８−２２は、外部バッファ６−１をアウェイク状態からスリープ状態へ遷移させるトリガとして使用される（なお、「切り戻し」とはスリープ状態に復帰させることを表現している）。正確には、管理状態としては、インユース状態からの遷移となるが、最終的にスリープ状態に遷移させるためには、手順が必要になる。
【００５０】
図５及び図６はそれぞれ、この手順による、外部バッファ６−１における省電力モード無効から有効への遷移中のパケットの流れを示す説明図である。図５は、送信停止要求Ｓ１０が無効で内部バッファ６−２からの読み出しが可能な状態の流れを示し、図６は、送信停止要求Ｓ１０が有効で、内部バッファ６−２の読み出しを一時停止している状態を示している。
【００５１】
切り戻し判定の判定結果情報Ｓ８−２２が有効となった場合、省電力・バッファ選択制御部９は、管理状態をチェンジ（ＣＨＡＮＧＥ）状態（図３のＳＴ５参照）とし、ＦＩＦＯメモリ３の読み出しを一時停止する（図５又は図６の状態）。省電力・バッファ選択制御部９は、外部バッファ６−１に蓄積されたパケットが全て内部バッファ６−２に転送され、外部バッファ６−１に蓄積されているパケットがない状態（エンプティ状態）か否かを表す、第１判定部８−１からのエンプティ判定結果Ｓ８−２１が有効となるまで待ち、エンプティ判定結果Ｓ８−２１が有効となると、管理状態をアウェイク状態とする。このようなアウェイク状態になった直後を、上述した図５及び図６が示しているが、後段回路からの送信停止要求Ｓ１０が有効な場合には、図６に示すように、内部バッファ６−２の読み出しも一時的に停止される。
【００５２】
アウェイク状態になると、その後の入力パケットは優先度によらず、内部バッファ６−２に転送させるために、省電力・バッファ選択制御部９は、外部用入力選択部４−１への入力選択信号Ｓ９−１を、「０」固定（入力パケットなし）を選択するように変更すると共に、内部用入力選択部４−２への入力選択信号Ｓ９−２を、ＦＩＦＯメモリ３からの出力を選択するように変更し、かつ、一時停止したＦＩＦＯメモリ３の読み出しを再開する。
【００５３】
このような状態になったときの入力パケットの流れは、上述した図２に示す通りである。但し、後段回路からの送信停止要求Ｓ１０が有効な場合には、図２とは異なり、内部バッファ６−２からの読出しの一時停止は継続される。
【００５４】
閾値ＴＨ１は、外部バッファ６−１がスリープ解除の状態（すなわち、アウェイク状態）にあるときに、外部バッファ６−１をスリープ状態に遷移させるか否かを決定するために、内部バッファ６−２の蓄積量と比較される閾値である。
【００５５】
第２判定部８−２は、内部バッファ６−２における各優先度の蓄積量が全て閾値ＴＨ１未満になった場合には、その判定結果情報Ｓ８−２１が有効となる。、判定結果情報Ｓ８−２１が有効になると、省電力・バッファ選択制御部９は、管理状態をアウェイク状態からゴースリープ（ＧＯ−ＳＬＥＥＰ）状態（図３のＳＴ６参照）に変更し、外部バッファ６−１に対するスリープ開始指示Ｓ９−３を有効にする。有効になったスリープ開始指示Ｓ９−３を受け取った外部バッファ６−１は、内部の外付けメモリを消費電力の小さいスリープモード（省電力モード）にする。例えば、外部バッファ６−１内のメモリコントローラは、セルフリフレッシュモードのコマンドを外付けメモリに発行し、自身も、動作クロックを停止するなどして、省電力モードに遷移してスリープする。スリープへの遷移処理は一定時間内に完了するため、外部バッファ６−１は、スリープ開始指示Ｓ９−３を受信してから一定時間だけ経過したら、スリープ解除応答Ｓ６−１２を返信し、省電力・バッファ選択制御部９は、管理状態をゴースリープ状態からスリープ状態に変更する。
【００５６】
以上から明らかなように、内部バッファ６−２だけを用いたバッファリングだけでは、ＦＩＦＯメモリ３又は内部バッファ６−２においてパケット廃棄がまもなく生じるようになるため、外部バッファ６−１を入力パケットのバッファリングに利用するように変化する際には、省電力・バッファ選択制御部９における外部バッファ６−１について管理状態は、スリープ状態ＳＴ１から、ウェイクアップ状態ＳＴ２及びアウェイク状態ＳＴ３を経て、インユース状態ＳＴ４に変更される（図３参照）。
【００５７】
また、ＦＩＦＯメモリ３の空き容量などを考慮すると外部メモリ６−１を用いなくても問題が生じないような状況になったため、外部バッファ６−１を入力パケットのバッファリングに利用せず、外部バッファ６−１を省電力モードにするように変化する際には、省電力・バッファ選択制御部９における外部バッファ６−１について管理状態は、インユース状態ＳＴ４から、チェンジ状態ＳＴ５、アウェイク状態ＳＴ３及びゴースリープ状態ＳＴ６を順次経て、スリープ状態ＳＴ１に変更される（図３参照）。
【００５８】
以上で説明した、外部バッファ６−１の省電力モード有効（すなわち、内部バッファ６−２のみ使用のモード）と、外部バッファ６−１の省電力モード無効（すなわち、外部バッファ６−１及び内部バッファ６−２の両方を使用するモード）の２種類のモード間の切り替えは、ＦＩＦＯメモリ３の容量と、閾値とを適切に設定することにより、パケットロスすることなく実現可能である。例えば、ＦＩＦＯメモリ３の容量は、外付けメモリ６−１のスリープ解除に必要な時間以上の時間の間でパケットを蓄積可能な容量を持っていれば良い。
【００５９】
（Ａ−３）実施形態の効果
以上のように、上記実施形態によれば、外部バッファ６−１と内部バッファ６−２の読み出し制御処理部７−１、７−２が独立に存在し、かつ、入力段にＦＩＦＯメモリ３を備えているため、外部バッファ６−１の省電力モード有効と無効の切り替え処理を、適切な閾値設定によりパケットロスすることなく、同じ優先度のパケットの出力順序性を保ちながら、実施することができる。
【００６０】
また、上記実施形態によれば、外部バッファ６−１が省電力モードを備えながら、バッファの総容量を、外部バッファ６−１と内部バッファ６−２の合計容量とすることができる。
【００６１】
さらに、上記実施形態によれば、外部バッファ６−１から出力されたパケットは必ず内部バッファ６−２を経由するようにし、後段回路からの送信停止要求を内部バッファ６−２の読み出し制御処理部７−２に与えるようにしたので、外部バッファ６−１及び内部バッファ６−２間が切り替えられても、同じ読み出し制御処理部７−２が送信停止に応じれば良く、送信停止要求に応じる制御が簡単なものとすることができる。
【００６２】
（Ｂ）他の実施形態
上記実施形態では、入力ポートが１つ、出力ポートが１つネットワーク装置１に適用した例を説明したが、論理的に複数の入力ポートを持つネットワーク装置や物理的に複数の出力ポートを持つネットワーク装置にも、本発明のバッファ制御装置の技術思想を適用することができる。例えば、前者であれば、入力段に、入力パケットの多重化部を設ければ良く、また、後者であれば、出力段に、パケットの多重分離部を設ければ良い。
【００６３】
上記実施形態では、外部バッファ６−１の使用状態から未使用状態への切り戻しを、外部バッファ６−１と内部バッファ６−２の全優先度の蓄積量合計値がＦＩＦＯメモリ３の空き容量を下回った場合に行うと説明したが、他の切り戻し条件を適用するようにしても良い。例えば、外部バッファ６−１の全優先度の蓄積量合計値がＦＩＦＯメモリ３の空き容量を下回り、かつ、外部バッファ６−１の各優先度の蓄積パケットを全て内部バッファ６−２の各優先度の空きへ書き込めることを、切り戻し条件とするようにしても良い。
【００６４】
上記実施形態では、入力パケットに優先度が付与されているものを示したが、優先度という概念がないパケットを取り扱うバッファ制御装置に対しても、本発明の技術思想を適用することができる。
【００６５】
上記実施形態では、２つのバッファが外部バッファと内部バッファとであるものを示したが、２つ共に同種の容量は違うバッファであっても良い。
【符号の説明】
【００６６】
１…バッファ制御装置、２…優先度識別部、３…ＦＩＦＯメモリ、４−１…外部用入力選択部、４−２…内部用入力選択部、５−１…外部用書き込み制御処理部、５−２…内部用書き込み制御処理部、６−１…外部バッファ、６−２…内部バッファ、７−１…外部用読み出し制御処理部、７−２…内部用読み出し制御処理部、８−１…第１判定部、８−２…第２判定部、９…省電力・バッファ選択制御部。
【図１】
2015095823.tif 000003
【図２】
2015095823.tif 000004
【図３】
2015095823.tif 000005
【図４】
2015095823.tif 000006
【図５】
2015095823.tif 000007
【図６】
2015095823.tif 000008