(57)【特許請求の範囲】
【請求項１】
入力パケットをトークンバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとアドトークンとマックストークンを格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を減算して前記パラメータ格納部に格納するデキュー減算部と、
一定のトークン追加周期毎に、前記パラメータ格納部から読み出したカレントトークンに前記パラメータ格納部から読み出したアドトークンを加算して前記パラメータ格納部に格納するアドトークン加算部と、
前記アドトークン加算部の加算結果が前記パラメータ格納部から読み出したマックストークンを超えないようにするマックストークン比較部と、
前記デキュー減算部の減算結果が０以上のときデキュー許可要求を出力し、前記アドトークン加算部の加算結果が０以上のときデキュー許可要求を出力するデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとアドトークンとマックストークンそれぞれのビット数を可変設定することを特徴とするシェーパ回路。
【請求項２】
第１及び第２の請求項１記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとアドトークンとマックストークンのビット数を拡張する結合処理回路を
有することを特徴とするシェーパ回路。
【請求項３】
請求項２記載のシェーパ回路において、
前記結合処理回路は、前記第１のシェーパ回路のアドトークン加算部とデキュー減算部で発生した桁上がり信号と桁下がり信号を供給され、かつ、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果を供給され、
前記桁下がり信号とデキューするパケット長を加算して前記第２のシェーパ回路のデキュー減算部に供給するネクストレングス算出部と、
前記桁上がり信号と前記第２のシェーパ回路のパラメータ格納部から読み出したアドトークンを加算して前記第２のシェーパ回路のアドトークン加算部に供給すると共に、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果からカレントトークンの値をマックストークンの値とする旨の信号を生成して前記第１及び第２のシェーパ回路に供給するネクストアドトークン算出部を
有することを特徴とするシェーパ回路。
【請求項４】
入力パケットをリーキーバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとサブトークンと閾値を格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を加算して前記パラメータ格納部に格納するデキューレングス加算部と、
一定のトークン減算周期毎に、前記パラメータ格納部から読み出したカレントトークンより前記パラメータ格納部から読み出したサブトークンを減算して前記パラメータ格納部に格納するサブトークン減算部と、
前記デキューレングス加算部の加算結果が前記パラメータ格納部から読み出した閾値以下のときデキュー許可要求を行う閾値比較部と、
前記サブトークン減算部の減算結果が０より大の場合にデキュー許可要求を行うデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとサブトークンと閾値それぞれのビット数を可変設定することを特徴とするシェーパ回路。
【請求項５】
第１及び第２の請求項４記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとサブトークンと閾値のビット数を拡張する結合処理回路を
有することを特徴とするシェーパ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シェーパ回路に関し、可変長パケットを伝送する装置のシェーパ回路に関する。
【背景技術】
【０００２】
近年、イントラネットやインターネットの普及により、ネットワークのトラフィックは著しく増加している。ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）トラフィックの増加に対し、インフラの技術向上は重要で、特にパケット転送を行う際の品質確保が最重要課題となっている。
【０００３】
現在、パケットの伝送帯域制御を行うシェーパ回路は、伝送装置のユーザが要求するパケット送信帯域及び精度に応じて異なっている。そのため、新たな伝送装置開発の度に設計及び検証の作業が発生し、開発期間及び品質確保に多くの工数を必要としている。開発期間の短縮及び安定した品質を求められるなか、新たな伝送装置にも対応可能なシェーパ回路の実現が求められている。
【０００４】
図１は、伝送装置の一例のブロック図を示す。同図中、受信したパケットは、共有メモリ１１に格納される。パケット識別部１２は、パケットに含まれる情報より優先クラスや長さ等のエンキュー情報を識別する。
【０００５】
エンキュー情報は、スケジューラ部１３に渡され、優先クラス毎に分けられたキュー１３ａ〜１３ｃで保持される。キュー１３ａ〜１３ｃに情報が保持されるとシェーパ回路１３ｄに対してデキュー要求を出す。
【０００６】
シェーパ回路１３ｄは、帯域制御を行い、キュー１３ａ〜１３ｃに対してデキュー許可要求を行う。デキュー許可要求を受信したキュー１３ａ〜１３ｃは、デキューを行い、共有メモリ１１に当該パケット情報を送る。
【０００７】
共有メモリ１１はデキューされたパケット情報を基に、パケットを読み出し、後段に送出する。
【０００８】
図２は、従来のシェーパ回路の一例のブロック図を示す。ここでは、トークンバケットアルゴリズムを用いている。同図中、シェーパ回路２０はパラメータ格納部２１と、回路の中心となるトークン加算減算部２２からなる。パラメータ格納部２１には、固定のパラメータとしてカレントトークン２１ａ、アドトークン２１ｂ、マックストークン２１ｃが格納される。
【０００９】
シェーパ回路２０は外部のキュー１３ａ〜１３ｃに対して、デキュー許可要求を行い、キュー１３ａ〜１３ｃからはデキュー指示とパケットのレングスが入力される。
【００１０】
デキュー指示とパケットのレングスが入力されると、トークン加算減算部内２２のデキュー減算部２２ａにおいて、パラメータであるカレントトークン２１ａからレングスの減算を行う。減算後、カレントトークン２１ａをパラメータ格納部２１に戻す。デキュー許可判定部２１ｄでは、その減算結果をもって、次のデキュー判定をし、デキュー許可要求信号を出力する。
【００１１】
一方で、一定周期毎にトークンの追加が行われる。アドトークン加算部２１ｂにおいて、カレントトークン２１ａにアドトークン２１ｂを加算する。マックストークン比較部２１ｃでは加算後のカレントトークンとマックストークン２１ｃを比較し、カレントトークンが最大マックストークン値になるようにし、パラメータ格納部２１に戻す。また、デキュー許可判定部２１ｄでは加算後のカレントトークン値をもって、次のデキュー判定をし、デキュー許可要求信号を出力する。
【００１２】
ここで、カレントトークン、アドトークン、マックストークンからなるパラメータについて、図３を用いて説明する。ビット数は装置の求める帯域、精度等によって異なり、下記の通り求める。なお、帯域［ｂｐｓ：ｂｉｔｓ  ｐｅｒ  ｓｅｃｏｎｄ］とは通信回線などのデータ転送速度の単位であり、ビット毎秒である。１［ｂｐｓ］は１秒間に１ビットのデータを転送できることを表す。
【００１３】
カレントトークン２１ａは、符号部１ビットと整数部Ａビットと小数部Ｂビットからなる（Ｘ＝Ａ＋Ｂ）。整数部Ａビットは、マックストークンの整数部と同一ビット数、小数部Ｂビットはアドトークンの小数部と同一ビット数とする。
【００１４】
アドトークン２１ｂは、整数部ａビットと小数部Ｂビットからなる。ここで、シェーピングレートＲは、［Ｒ＝アドトークン×８／トークン追加周期］であるため、［アドトークン＝Ｒ×トークン追加周期／８］の関係があり、アドトークンの整数部ａビットの値はシェーピングレートＲの上限値から決定する。アドトークンの小数部Ｂビットの値はシェーピングレートＲの下限値から決定する。
【００１５】
例えば、シェーピングレートＲが１Ｍ［ｂｐｓ］≦Ｒ≦１０Ｇ［ｂｐｓ］、トークン追加周期が２００ｎ［ｓｅｃ］であるとき、帯域１０Ｇ［ｂｐｓ］では、アドトークン<２６  ［ｂｙｔｅ］で整数部ａビットは７ビットとなり、帯域１Ｍ［ｂｐｓ］では、アドトークン  >２−８［ｂｙｔｅ］で小数部Ｂビットは８ビットとなる。
【００１６】
また、小数部Ｂビットの値は精度（粒度）確保によってはビット数が増加する。例えば、精度３％（３／１００）>２６では６ビット追加する。よって、この場合、アドトークン  は整数部７ビットと小数部１４（＝８＋６）ビットとなる。
【００１７】
マックストークン２１ｃは、整数部Ａビットからなる。整数部Ａビットは最大バーストサイズで決定される。
【００１８】
トークン追加周期は、誤差によるバースト送出が許されないとき、最小パケット転送時間間隔以下となる。
【００１９】
図４を用いて、シェーパの基本的アルゴリズムであるトークンバケットアルゴリズムについて説明する。これは一定周期毎にトークンを追加し、デキュー時にはトークンをパケット長分減算する方法である。シェーピングレートＲは、Ｒ＝アドトークン値／トークン追加周期の関係がある。また、バーストを制限するため、溜められるトークンにマックストークン値という上限値を持つ。
【００２０】
シェーパ回路はエンキュー時にキューにパケット情報を格納し、該当キューにパケット情報が溜まるとデキュー対象とするもので、デキュー時にパケット長分をトークン分減算する。トークン追加周期時に、追加トークン値を加算していくものである。
【００２１】
エンキューパケットのデキュー判断は、１つ前のデキューパケットによるトークン減算、あるいは周期的トークン追加の結果で予め決めておく。デキューパケットによるトークン減算後、もしくは周期的トークン追加後の結果が０以上の場合、デキュー可能であるとする。
【００２２】
デキュー可能判定を行い、デキュー可能であればデキュー許可要求を出す。その応答としてデキュー指示があった場合、トークンをパケット長分だけ減算し、再び減算結果の０未満か否かの判定を行う。
【００２３】
なお、特許文献１には、リーキーバケット部がレベルカウント値に応じて段階的にインクリメント値を変化させることが記載されている。
【００２４】
特許文献２には、入力回線に対応した監視モードを持ち、リーキーバケットアルゴリズムを入力パケットのフロー識別情報により切り替えて、帯域監視することが記載されている。
【特許文献１】特開２００３−１９８６１１号公報
【特許文献２】特開２００２−３６８７９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
従来は、パラメータのビット数が固定であるため、伝送装置毎に固有のシェーパを使用している。実際に、伝送装置１と伝送装置２でシェーパ回路を共通化することについて考える。伝送装置１では要求する帯域及び精度より、パラメータのビット数が３２ビット必要であり、伝送装置２ではパラメータのビット数がユーザ要求により６４ビット必要であるとする。
【００２６】
この時、伝送装置１、２のシェーパを共通回路として使用することを考えると、両方のうち機能（性能）の高い６４ビットのものを使用する必要がある。これにより回路を共通化することはできるが、伝送装置１に適用するとハード規模が２倍に増大することになるという問題があった。
【００２７】
また、パラメータのビット数（整数ビット数、小数ビット数）は固定であり、帯域や精度、及びキュー数の異なる新たな伝送装置を開発する場合、同じシェーバ部を用いることができないため、新たに設計する必要がある。これは新たな伝送装置を開発する度に設計、検証の作業が発生することを意味し、開発期間及び品質確保に多くの工数を必要とすることになるという問題があった。
【００２８】
本発明は、上記の点に鑑みなされたものであり、帯域や精度の異なる伝送装置に適用することができるシェーパ回路を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明のシェーパ回路は、入力パケットをトークンバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとアドトークンとマックストークンを格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を減算して前記パラメータ格納部に格納するデキュー減算部と、
一定のトークン追加周期毎に、前記パラメータ格納部から読み出したカレントトークンに前記パラメータ格納部から読み出したアドトークンを加算して前記パラメータ格納部に格納するアドトークン加算部と、
前記アドトークン加算部の加算結果が前記パラメータ格納部から読み出したマックストークンを超えないようにするマックストークン比較部と、
前記デキュー減算部の減算結果が０以上のときデキュー許可要求を出力し、前記アドトークン加算部の加算結果が０以上のときデキュー許可要求を出力するデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとアドトークンとマックストークンそれぞれのビット数を可変設定することにより、帯域や精度の異なる伝送装置に適用することができる。
【００３０】
また、本発明のシェーパ回路は、第１及び第２の請求項１記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとアドトークンとマックストークンのビット数を拡張する結合処理回路を有することにより、帯域や精度の異なる伝送装置に適用することができる。
【００３１】
前記シェーパ回路において、
前記結合処理回路は、前記第１のシェーパ回路のアドトークン加算部とデキュー減算部で発生した桁上がり信号と桁下がり信号を供給され、かつ、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果を供給され、
前記桁下がり信号とデキューするパケット長を加算して前記第２のシェーパ回路のデキュー減算部に供給するネクストレングス算出部と、
前記桁上がり信号と前記第２のシェーパ回路のパラメータ格納部から読み出したアドトークンを加算して前記第２のシェーパ回路のアドトークン加算部に供給すると共に、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果からカレントトークンの値をマックストークンの値とする旨の信号を生成して前記第１及び第２のシェーパ回路に供給するネクストアドトークン算出部を有することができる。
【００３２】
本発明のシェーパ回路は、入力パケットをリーキーバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとサブトークンと閾値を格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を加算して前記パラメータ格納部に格納するデキューレングス加算部と、
一定のトークン減算周期毎に、前記パラメータ格納部から読み出したカレントトークンより前記パラメータ格納部から読み出したサブトークンを減算して前記パラメータ格納部に格納するサブトークン減算部と、
前記デキューレングス加算部の加算結果が前記パラメータ格納部から読み出した閾値以下のときデキュー許可要求を行う閾値比較部と、
前記サブトークン減算部の減算結果が０より大の場合にデキュー許可要求を行うデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとサブトークンと閾値それぞれのビット数を可変設定することにより、帯域や精度の異なる伝送装置に適用することができる。
【００３３】
また、本発明のシェーパ回路は、第１及び第２の請求項４記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとサブトークンと閾値のビット数を拡張する結合処理回路を有することすることにより、帯域や精度の異なる伝送装置に適用することができる。
【発明の効果】
【００３４】
本発明によれば、帯域や精度の異なる伝送装置に適用することができる。
【発明を実施するための最良の形態】
【００３５】
以下、図面に基づいて本発明の実施形態について説明する。
【００３６】
本発明のシェーパ回路は図１に示す伝送装置において帯域制御を行う機能として用いられる。
【００３７】
<第１実施形態>
図５は、本発明のシェーパ回路の第１実施形態の構成図を示す。同図中、シェーパ回路３０はパラメータ格納部３１と、回路の中心となるトークン加算減算部３２からなる。パラメータ格納部３１には、可変のパラメータとしてカレントトークン３１ａ、アドトークン３１ｂ、マックストークン３１ｃが格納される。トークン加算減算部３２は、デキュー減算部３２ａとアドトークン加算部３２ｂとマックストークン比較部３２ｃとデキュー許可判定部３２ｄからなる。
【００３８】
図６に示すように、カレントトークン３１ａは、符号１ビット、整数部Ａビット、小数部Ｂビットから構成される。カレントトークン３１ａの総ビット数は（Ｘ＋１）ビットで固定であり、Ｂを設定可能とし、ＸとＢによりＡが確定される（Ａ＋Ｂ＝Ｘ）。
【００３９】
アドトークン３１ｂは、シェーピングレートＲの上限値から計算される整数部ａビット（Ａ≧ａ）と、カレントトークン３１ａの小数部と同一ビット数の小数部Ｂビットで構成される。ａの値は設定可能とされている。
【００４０】
マックストークン３１ｃは、カレントトークン３１ａの整数部と同一ビット数の整数部Ａビットで構成される。
【００４１】
<設定及び動作>
図７はデキュー動作のフローチャートを示し、図８はトークン追加動作のフローチャートを示す。ここで、シェーパ回路３０が持つカレントトークン３１ａにおけるビット数Ｘを１６ビットとし、デキューを行うパケットが１４ビットのレングスを持つとする。
【００４２】
カレントトークン３１ａにおけるＸ＝１６のうち整数部Ａを１４ビット、小数部Ｂを２ビットとするとき、カレントトークン３１ａに対する設定値はＢ＝２とする。また、アドトークン３１ｂの整数部Ｂを１０ビットとするとき、アドトークン３１ｂに対する設定値はａ＝１０とする。以上の２つの設定値を与えることにより、カレントトークン３１ａ、アドトークン３１ｂ、マックストークン３１ｃの各ビット数が決定する。なお、Ｂ，ａの設定と共に、アドトークン３１ｂ，マックストークン３１ｃに実際の値が設定される。
【００４３】
図７において、ステップＳ１：デキュー指示により、必要なパラメータ（Ｂ＝２，ａ＝１０）をリードしてくる。
【００４４】
ステップＳ２：ビット数Ｘ＝１６、小数部Ｂ＝２より整数部Ａ＝１４となる。
【００４５】
ステップＳ３：デキュー減算部３２ａにて、カレントトークン３１ａの整数部の値より、デキューパケットのレングスを減算する。
【００４６】
ステップＳ４：デキュー許可判定部３２ｄにて、上記のカレントトークンが０以上か否かを判定する。
【００４７】
ステップＳ５：カレントトークンが０以上でデキュー許可判定が出た場合にのみ、デキュー許可要求を出力する。
【００４８】
図８において、ステップＳ６：トークン追加周期にて、必要なパラメータ、即ちカレントトークン３１ａ、アドトークン３１ｂ、マックストークン３１ｃをリードしてくる。
【００４９】
ステップＳ７：カレントトークン３１ａとアドトークン３１ｂそれぞれの整数部と少数部のビット分けを行い、ビット数Ｘ＝１６、小数部Ｂ＝２より整数部Ａ＝１４となる。ａ＝１０よりアドトークンのビット数も認識する。
【００５０】
ステップＳ８：アドトークン加算部２１ｂにて、カレントトークン３１ａにアドトークン３１ｂを加算する。マックストークン比較部３２ｃにて加算後のカレントトークンとマックストークン３１ｃを比較する。
【００５１】
ステップＳ９：ステップＳ８の比較で加算後のカレントトークンがマックストークン３１ｃ以下の場合、次のカレントトークン３１ａはステップＳ８で加算したカレントトークンの値とする。
【００５２】
ステップＳ１０：ステップＳ８の比較で加算後のカレントトークンがマックストークン３１ｃより大きい場合、次のカレントトークン３１ａはマックストークン３１ｃの値とする。ただし、小数部は全ビット０とする。
【００５３】
ステップＳ１１：デキュー許可判定部３２ｄにて、上記のカレントトークン３１ａが０以上か否かを判定する。
【００５４】
ステップＳ１２：ステップＳ１１にてカレントトークン３１ａが０以上でデキュー許可判定が出た場合にのみ、デキュー許可要求を出力する。
【００５５】
これによって、シェーパ回路３０のパラメータであるカレントトークン３１ａとアドトークン３１ｂの整数ビット数及び小数ビット数を変更し、伝送装置の要求にそった帯域、制度に当てはめることができる。
【００５６】
<第２実施形態>
図９は、本発明のシェーパ回路の第２実施形態のブロック図を示す。この第２実施形態では、第１実施形態で示した２つのシェーパ回路３０Ａ，３０Ｂを１つの結合処理回路４０により連結させている。
【００５７】
シェーパ回路３０Ａのトークン加算減算部３２内のアドトークン加算部３２ｂでは、追加トークン周期時にトークン追加が行われたときの桁上がりを表わす１ビットの内部信号をキャリーアップＣＵとして結合処理回路４０に供給する。また、デキュー減算部３２ａでは、デキュー指示によりレングスを減算する際の桁下がりを表わす１ビットの内部信号をキャリーダウンＣＤとして、結合処理回路４０に供給する。
【００５８】
図１０は、結合処理回路４０の構成図を示す。同図中、結合処理回路４０は、ネクストレングス算出部４１とネクストアドトークン算出部４２から構成されている。
【００５９】
ネクストレングス算出部４１は、シェーパ回路３０ＡからのキャリーダウンＣＤと結合処理回路４０に入力されるレングスを加算してシェーパ回路３０Ｂに供給するレングスβを算出する。
【００６０】
ネクストアドトークン算出部４２は、シェーパ回路３０ＡからのキャリーアップＣＵとシェーパ回路３０Ｂからのアドトークン３１ｂを加算して、シェーパ回路３０Ｂで実際に使用するアドトークンαを算出してシェーパ回路３０Ｂに供給する。
【００６１】
また、ネクストアドトークン算出部４２はシェーパ回路３０Ａからの信号Ｅｑｕａｌ＿ａ，Ｏｖｅｒ＿ａと、シェーパ回路３０Ｂからの信号Ｅｑｕａｌ＿ｂ，Ｏｖｅｒ＿ｂを基に判定テーブルを用いてカレントトークンの値をマックストークンの値にすることを指示する信号Ｍａｘを生成してシェーパ回路３０Ａ，３０Ｂに供給する。
【００６２】
結合処理回路４０で連結されたシェーパ回路３０Ｂでは、パラメータ格納部３１からのアドトークン３１ｂの値を直接見るのではなく、結合処理回路４０にて桁上がり分を加算した新たなアドトークンα使用する。シェーパ回路３０Ｂでは、レングスにおいても、桁下がり分を加算したレングスβの値を元々の入力信号のレングスとして減算対象とする。
【００６３】
また、追加トークン周期において、アドトークンを加算したカレントトークンをマックストークンと比較する際には、以下のように行う。シェーパ回路３０Ａでのマックストークン３１ｃとの比較で、カレントトークン＝マックストークンの場合、Ｅｑｕａｌ＿ａ＝１とし、カレントトークン>マックストークンの場合、Ｏｖｅｒ＿ａ＝１として結合処理回路４０に送出する。
【００６４】
シェーパ回路３０Ｂでも同様に、アドトークンを加算したカレントトークンをマックストークン３１ｃと比較して、カレントトークン＝マックストークンの場合、Ｅｑｕａｌ＿ｂ＝１とし、カレントトークン>マックストークンの場合、Ｏｖｅｒ＿ｂとして結合処理回路４０に送出する。
【００６５】
結合処理回路４０では信号Ｅｑｕａｌ＿ａ，Ｅｑｕａｌ＿ｂ，Ｏｖｅｒ＿ａ，Ｏｖｅｒ＿ｂから判断し、カレントトークン値をマックストークン値とする場合にＭａｘ＝１としてシェーパ回路３０Ａ，３０Ｂに送出する。
【００６６】
なお、３つ以上のシェーパ回路を接続する場合には図９におけるシェーパ回路３０Ｂの右側に結合処理回路を追加して３つ目のシェーパ回路を接続する。この際に、結合処理回路４０から信号Ｅｑｕａｌ＿ａ，Ｏｖｅｒ＿ａを信号Ｅｑｕａｌ＿ｃｏｍ，Ｏｖｅｒ＿ｃｏｍとして追加の結合処理回路に送出し、追加の結合処理回路から送出される信号ＭａｘをＭａｘ＿ｃｏｍとして結合処理回路４０に取り込む。
【００６７】
図９において、全体のカレントトークンは、符号１ビット、整数部ＳＡビット、小数部ＳＢビットから構成される。ＳＢを設定可能とし、固定ビット数２Ｘと設定されたＳＢによりＳＡが確定される（ＳＡ＋ＳＢ＝２Ｘ）。シェーパ回路３０Ａ，３０Ｂそれぞれのカレントトークン３１ａの固定ビット数Ｘの和２Ｘが全体のカレントトークンのビット数となる。
【００６８】
全体のマックストークンは、全体のカレントトークンの整数部と同一ビット数の整数部ＳＡビットで構成される。シェーパ回路３０Ａの整数部ＡビットをＡ１、シェーパ回路３０Ｂの整数部ＡビットをＡ２とすると、全体のマックストークンのビット数ＳＡはＳＡ＝Ａ１＋Ａ２の関係となる。
【００６９】
全体のアドトークンは、シェーピングレートの上限値から計算される整数Ｓａビット（ＳＡ≧Ｓａ）と、全体のカレントトークンの小数部と同一ビット数の小数部ＳＢビットで構成される。シェーパ回路３０Ａの小数部ＢビットをＢ１、シェーパ回路３０Ｂの小数部ＢビットをＢ２とすると、ＳＢはＳＢ＝Ｂ１＋Ｂ２の関係となる。Ｓａの値は設定可能とし、シェーパ回路３０Ａ側をａ１、シェーパ回路３０Ｂ側をａ２とすると、Ｓａ＝ａ１＋ａ２の関係となる。
【００７０】
<設定及び動作>
図１２はデキュー動作のフローチャートを示し、図１３はトークン追加動作のフローチャートを示す。ここで、図１１に示すように、全体のカレントトークン３１Ａのビット数を２Ｘ＝１６＋１６＝３２ビットとする。デキューを行うパケットが１４ビットのレングスを持つとする。全体のカレントトークン３２ビットのうち、整数部ＳＡが１８ビット、小数部ＳＢが１４ビットとし、全体のアドトークン３１Ｂの整数部Ｓａを１７ビットとする。全体のマックストークン３１Ｃのビット数は整数部ＳＡ（＝１８）となる。上記のＳＢとＳａが外部から設定される。
【００７１】
これらの設定はシェーパ回路３０Ａ，３０Ｂそれぞれに分けて設定する。各パラメータの下位ビット側が、シェーパ回路３０Ａ側に設定される。よって、シェーパ回路３０Ａ側の設定値Ｂ１＝１４、シェーパ回路３０Ｂ側の設定値Ｂ２＝０とし、シェーパ回路３０Ａ側の設定値ａ１＝２、シェーパ回路３０Ｂ側の設定値ａ２＝１５とする。また、結合処理回路４０には、シェーパ回路３０Ａ，３０Ｂの設定値を加算した値を入力する。よって、ＳＸ＝３２、ＳＢ＝１４、Ｓａ＝１７となる。なお、Ｂ１，Ｂ２，ａ１，ａ２の設定と共に、シェーパ回路３０Ａ，３０Ｂそれぞれのアドトークン３１ｂ，マックストークン３１ｃに実際の値が設定される。
【００７２】
図１２において、ステップＳ２１：デキュー指示により、シェーパ回路３０Ａ，３０Ｂともに必要なパラメータ（カレントトークン）をリードしてくる。
【００７３】
ステップＳ２２：シェーパ回路３０Ａではビット数Ｘ１＝１６、小数部Ｂ１＝１４より整数部Ａ１＝２となる。シェーパ回路３０Ｂではビット数Ｘ２＝１６、小数部Ｂ２＝０より整数部Ａ２＝１６となる。
【００７４】
ステップＳ２３：シェーパ回路３０Ａのデキュー減算部３２ａにて、カレントトークンの整数部Ａ１の値より、デキューパケットのレングスを減算する。
【００７５】
ステップＳ２４：シェーパ回路３０Ａのデキュー減算部３２ａの桁下がりビットを、キャリーダウンＣＤとして結合処理回路４０に送出する。
【００７６】
ステップＳ２５：結合処理回路４０にて、キャリーダウンＣＤを加算したレングスをレングスβとしてシェーパ回路３０Ｂに送出する。
【００７７】
ステップＳ２６：シェーパ回路３０Ｂのデキュー減算部３２ａにて、カレントトークンの整数部Ａ２の値より、デキューパケットのレングスβを減算する。
【００７８】
ステップＳ２７：シェーパ回路３０Ｂのデキュー許可判定部３２ｄにて、上記のカレントトークンが０以上か否かを判定する。
【００７９】
ステップＳ２８：ステップＳ２７にてカレントトークンが０以上でデキュー許可判定が出た場合にのみ、デキュー許可判定部３２ｄからデキュー許可要求を出力する。
【００８０】
図１３において、ステップＳ２９：トークン追加周期にて、シェーパ回路３０Ａ，３０Ｂともに必要なパラメータ（カレントトークン、アドトークン、マックストークン）をリードしてくる。
【００８１】
ステップＳ３０：シェーパ回路３０Ａではビット数Ｘ１＝１６、小数部Ｂ１＝１４ビットより整数部Ａ１＝２ビットとなる。また、ａ１＝２ビットよりアドトークンのビット数も認識する。シェーパ回路３０Ｂではビット数Ｘ２＝１６、小数部Ｂ２＝０ビットより整数部Ａ２＝１６ビットとなる。ａ２＝１５ビットよりアドトークンのビット数も認識する。
【００８２】
ステップＳ３１：シェーパ回路３０Ａのアドトークン加算部３２ｂにて、カレントトークン３１ａにアドトークン３１ｂを加算する。
【００８３】
ステップＳ３２：ステップＳ３１においてアドトークン加算部３２ｂの桁上がりビットをキャリーアップＣＵとして結合処理回路４０に送出する。
【００８４】
ステップＳ３３：結合処理回路４０にて、シェーパ回路３０Ｂのアドトークン３１ｂの値にキャリーアップＣＵを加算しアドトークンαとしてシェーパ回路３０Ｂに送出する。
【００８５】
ステップＳ３４：シェーパ回路３０Ｂのアドトークン加算部３１ａにて、カレントトークン２１ａにアドトークンαを加算し、マックストークン比較部３２ｃにて加算後のカレントトークン３１ａの値とマックストークン３１ｃの値を比較する。
【００８６】
シェーパ回路３０Ａにおいて、カレントトークン３１ａの値＝マックストークン３１ｃの値のときＥｑｕａｌ＿ａ＝１とし、カレントトークン３１ａの値>マックストークン３１ｃの値のときＯｖｅｒ＿ａ＝１とする。また、シェーパ回路３０Ｂにおいてカレントトークン３１ａの値＝マックストークン３１ｃの値のときＥｑｕａｌ＿ｂ＝１とし、カレントトークン３１ａの値>マックストークン３１ｃの値のときＯｖｅｒ＿ｂ＝１とする。
【００８７】
結合処理回路４０は図１４に示す判定テーブルに従って、シェーパ回路３０Ａ，３０Ｂそれぞれのカレントトークン３１Ａの値をマックストークン３１Ｃの値にする際にはＭａｘ＝１とし、シェーパ回路３０Ａ、シェーパ回路３０Ｂそれぞれに通知する。
【００８８】
ステップＳ３５：ステップＳ３４のシェーパ回路３０Ｂで加算後のカレントトークン３１ａの値がマックストークン値以下の場合、次のカレントトークンはステップＳ３４で加算したカレントトークン３１ａの値とする。
【００８９】
ステップＳ３６：ステップＳ３４のシェーパ回路３０Ｂで加算後のカレントトークン３１ａの値がマックストークン３１ｃの値より大きい場合、次のカレントトークンはマックストークン３１ｃの値とする。ただし、小数部は全ビット０とする。
【００９０】
ステップＳ３７：シェーパ回路３０Ｂのデキュー許可判定部３２ｄにて、上記のカレントトークンが０以上か否かを判定する。
【００９１】
ステップＳ３８：ステップＳ３７でデキュー許可判定が出た場合にのみ、シェーパ回路３０Ｂのデキュー許可判定部３２ｄからデキュー許可要求を出力する。
【００９２】
このようにして、シェーパ回路のパラメータを実施形態１から２倍のビット数に拡張することができ、さらなる要求の帯域、精度に適用可能となる。また、ｎ個のシェーパ回路を（ｎ−１）個の結合処理回路４０を用いて接続して使用することで、パラメータビット数を増加させることができ、精度、帯域等さまざまなシェーパ仕様にも柔軟に対応することができる。
【００９３】
これにより、さまざまなユーザ要求の伝送装置仕様に適用可能なシェーパ回路を構成できる。これは、新たな要求仕様の伝送装置開発においても、再度シェーパ回路を設計する必要はなく、開発期間の短縮を図ることができる。
【００９４】
<リーキーバケットアルゴリズム>
図１５を用いて、リーキーバケットアルゴリズムについて説明する。これは、デキュー時にトークンにパケット長分を追加し、一定周期毎に減算トークン値を減算する方法である。シェーピングレートＲは、トークン減算周期と、減算トークン値より算出する。また、バーストを制限するため、溜められるトークンにトークンの閾値をもち、カレントトークン値は最大で閾値＋最大パケット長とし、それ以上は廃棄する。
【００９５】
シェーパ回路はエンキュー時にキューにパケット情報を格納し、該当キューにパケット情報が溜まるとデキュー対象とするもので、デキュー時にパケット長分をトークン加算する。一定のトークン減算周期毎に、減算トークン値を減算していくものである。
【００９６】
エンキューパケットのデキュー判断は、１つ前のデキューパケットによるトークン加算、あるいは周期的トークン減算の結果で予め決めておく。デキューパケットによるトークン加算後、閾値を越えていなければ、次のデキューも可能とする。もしくは周期的トークン減算後の結果が０より大の場合、デキュー可能であるとする。
【００９７】
エンキュー時、デキュー可能判定を行い、デキュー可能であれば、デキュー許可要求を出す。その応答としてデキュー指示があった場合、トークンをパケット長分加算し、再び加算結果の閾値判定を行う。
【００９８】
<第３実施形態>
図１６は、本発明のシェーパ回路の第３実施形態のブロック図を示す。同図中、シェーパ回路５０はパラメータ格納部５１と、回路の中心となるトークン加算減算部５２からなる。パラメータ格納部５１には、可変のパラメータとしてカレントトークン５１ａ、閾値５１ｂ、サブトークン５１ｃが格納される。トークン加算減算部５２は、デキュー加算部５２ａとサブトークン減算部５２ｂと閾値比較部５２ｃとデキュー許可判定部５２ｄからなる。
【００９９】
図１７に示すように、カレントトークン５１ａは、符号１ビット、整数部Ａビット、小数部Ｂビットから構成される。カレントトークン５１ａの総ビット数は（Ｘ＋１）ビットで固定であり、Ｂを設定可能とし、ＸとＢによりＡが確定される（Ａ＋Ｂ＝Ｘ）。
【０１００】
閾値５１ｂは、カレントトークン５１ａの整数部Ａ、小数部Ｂと同じビット数で構成される。サブトークン５１ｃは、要求される最大シェーピングレートより設定される整数ａビット（Ａビット≧ａビット）とカレントトークン５１ａの小数部と同一ビット数の小数部Ｂビットで構成される。ａの値は設定可能とする。
【０１０１】
<設定及び動作>
図１８はデキュー動作のフローチャートを示し、図１９はトークン減算動作のフローチャートを示す。ここで、シェーパ回路５０が持つカレントトークンのビット数Ｘを１６ビットとする。デキューを行うパケットが１４ビットのレングスを持つとする。
【０１０２】
カレントトークン５１ａにおけるＸ＝１６ビットのうち整数部を１４ビット、小数部を２ビットとするとき、設定値はＢ＝２とする。また、サブトークン５１ｃの整数部を１０ビットとするとき、設定値はａ＝１０とする。以上の２つの設定値を与えることにより、カレントトークン５１ａ、閾値５１ｂ、サブトークン５１ｃの各ビット数が決定する。なお、Ｂ，ａの設定と共に、閾値５１ｂ、サブトークン５１ｃに実際の値が設定される。
【０１０３】
図１８において、ステップＳ４１：デキュー指示により、必要なパラメータ（カレントトークン、閾値）をリードしてくる。
【０１０４】
ステップＳ４２：ビット数Ｘ＝１６、小数部Ｂ＝２より整数部Ａ＝１４となる。
【０１０５】
ステップＳ４３：デキューレングス加算部５２ａにて、カレントトークン５１ａにデキューパケットのレングスを加算する。閾値比較部５２ｃにて、加算後のカレントトークンと閾値を比較する。
【０１０６】
ステップＳ４４：ステップＳ４３にて、加算後のカレントトークン値が閾値以下の場合、デキュー許可要求を出力する。
【０１０７】
図１９において、ステップＳ４５：トークン減算周期にて、必要なパラメータ（カレントトークン、サブトークン）をリードしてくる。
【０１０８】
ステップＳ４６：ビット数Ｘ＝１６、小数部Ｂ＝２より整数部Ａ＝１４となる。ａ＝１０よりサブトークンのビット数も認識する。
【０１０９】
ステップＳ４７：サブトークン減算部５２ｂにて、カレントトークン５１ａからサブトークン５１ｃを減算する。
【０１１０】
ステップＳ４８：デキュー許可判定部５２ｄにて、上記のカレントトークン５１ａが０より大か否かを判定する。
【０１１１】
ステップＳ４９：ステップＳ４８にてカレントトークン５１ａが０より大でデキュー許可判定が出た場合にのみ、デキュー許可判定部５２ｄからデキュー許可要求を出力する。
【０１１２】
これによって、シェーパ回路５０のパラメータである整数ビット数、小数ビット数を変更し、要求にそった帯域、制度に当てはめることができる。
【０１１３】
<第４実施形態>
図２０は、本発明のシェーパ回路の第４実施形態のブロック図を示す。この第４実施形態では、第３実施形態で示した２つのシェーパ回路５０Ａ，５０Ｂを１つの結合処理回路４０により連結させている。
【０１１４】
シェーパ回路５０Ａのトークン加算減算部５２内のサブトークン減算部５２ｂではトークン減算周期時にトークン減算が行われたときの桁下がりを表わす１ビットの内部信号をキャリーダウンＣＤとして結合処理回路４０に供給する。また、デキューレングス加算部３２ａでは、デキュー指示によりレングスを加算する際の桁上がりを表わす１ビットの内部信号をキャリーアップＣＵとして結合処理回路４０に供給する。
【０１１５】
全体のカレントトークンは、符号１ビット、整数ＳＡビット、小数ＳＢビットから構成される。ＳＢを設定可能とし、固定ビット数２Ｘと設定されたＳＢによりＳＡが確定される（ＳＡ＋ＳＢ＝２Ｘ）。シェーパ回路５０Ａ，５０Ｂそれぞれのカレントトークン３１ａの固定ビット数Ｘの和２Ｘが全体のカレントトークンビット数となる。
【０１１６】
全体の閾値は、カレントトークンの整数部分と同じビット数の整数部ＳＡビットで小数部ＳＢビットで構成される。
【０１１７】
全体のサブトークンは、要求される最大シェーピングレートより整数Ｓａビット（ＳＡ≧Ｓａ）とカレントトークンの小数部分と同じビット数の小数部Ｂビットで構成される。シェーパ回路５０Ａ側の小数部をＢ１、シェーパ回路５０Ｂ側の小数部をＢ２とすると、ＳＢ＝Ｂ１＋Ｂ２の関係となる。Ｓａの値は設定可能とし、シェーパ回路５０Ａ側をａ１、シェーパ回路５０Ｂ側をａ２とすると、Ｓａ＝ａ１＋ａ２の関係となる。
【０１１８】
<設定及び動作>
図２２はデキュー動作のフローチャートを示し、図２３はトークン減算動作のフローチャートを示す。ここで、図２１に示すように、全体のカレントトークン５１Ａのビット数を２Ｘ＝１６＋１６＝３２ビットとする。デキューを行うパケットが１４ビットのレングスを持つとする。全体のカレントトークン３２ビットのうち、整数部ＳＡが１８ビット、小数部ＳＢが１４ビットとし、全体のサブトークン５１Ｂの整数部Ｓａを１４ビットとする。上記のＳＢとＳａが外部から設定される。
【０１１９】
これらの設定はシェーパ回路５０Ａ，５０Ｂそれぞれに分けて設定する。各パラメータの下位ビット側が、シェーパ回路５０Ａ側に設定される。よって、シェーパ回路５０Ａ側の設定値Ｂ１＝１４、シェーパ回路５０Ｂ側の設定値Ｂ２＝０とし、シェーパ回路５０Ａ側の設定値ａ１＝２、シェーパ回路５０Ｂ側の設定値ａ２＝１２とする。結合処理回路４０への設定値としてはシェーパ回路５０Ａ，５０Ｂの設定値をそれぞれ加算した値を入力する。よって、ＳＸ＝３２、ＳＢ＝１４、Ｓａ＝１４となる。なお、Ｂ１，Ｂ２，ａ１，ａ２の設定と共に、シェーパ回路３０Ａ，３０Ｂそれぞれの閾値５１ｂ、サブトークン５１ｃに実際の値が設定される。
【０１２０】
図２２において、ステップＳ５１：デキュー指示により、シェーパ回路５０Ａ，５０Ｂともに必要なパラメータ（カレントトークン、閾値）をリードしてくる。
【０１２１】
ステップＳ５２：シェーパ回路５０Ａではビット数Ｘ１＝１６、小数部Ｂ１＝１４より整数部Ａ１＝２となる。シェーパ回路５０Ｂではビット数Ｘ２＝１６、小数部Ｂ２＝０より整数部Ａ２＝１６となる。
【０１２２】
ステップＳ５３：シェーパ回路５０Ａのデキューレングス加算部５２ａにて、カレントトークン５１ａにデキューパケットのレングスを加算する。
【０１２３】
ステップＳ５４：シェーパ回路５０Ａの内部信号の桁上がりビットをキャリーアップＣＵとして結合処理回路４０に送出する。
【０１２４】
ステップＳ５５：結合処理回路４０にて、桁上がり分を加算したレングスをレングスβとしてシェーパ回路５０Ｂに送出する。
【０１２５】
ステップＳ５６：シェーパ回路５０Ｂのデキューレングス加算部５２ａにて、カレントトークン５１ａにデキューパケットのレングスを加算する。閾値比較部５２ｃにて加算後のカレントトークンと閾値を比較する。
【０１２６】
シェーパ回路５０Ａにおいてカレントトークン５１ａの値＝閾値のときＥｑｕａｌ＿ａ＝１とし、カレントトークン５１ａの値>閾値のときＯｖｅｒ＿ａ＝１とする。また、シェーパ回路５０Ｂにおいてカレントトークン５１ａの値＝  閾値のときＥｑｕａｌ＿ｂ＝１とし、カレントトークン５１ａの値>閾値のときＯｖｅｒ＿ｂ＝１とする。
【０１２７】
結合処理回路４０は図２４に示す判定テーブルに従って、加算後のカレントトークンが閾値を越えている際にはＭａｘ＝１とし、シェーパ回路５０Ａ，５０Ｂそれぞれに通知する。
【０１２８】
ステップＳ５７：ステップＳ５６のシェーパ回路５０Ｂでカレントトークン値が閾値以下の場合にのみ、デキュー許可要求を出力する。
【０１２９】
図２３において、ステップＳ５８：トークン減算周期にて、シェーパ回路５０Ａ，５０Ｂともに必要なパラメータ（カレントトークン、サブトークン）をリードしてくる。
【０１３０】
ステップＳ５９：シェーパ回路５０Ａではビット数Ｘ１＝１６、小数部Ｂ１＝１４より整数部Ａ１＝２となる。ａ１＝２よりサブトークンのビット数も認識する。シェーパ回路５０Ｂではビット数Ｘ２＝１６、小数部Ｂ２＝０より整数部Ａ２＝１６となる。ａ２＝１２よりサブトークンのビット数も認識する。
【０１３１】
ステップＳ６０：シェーパ回路５０Ａのサブトークン減算部５２ｂにて、カレントトークン５１ａからサブトークン５１ｃを減算する。
【０１３２】
ステップＳ６１：ステップＳ６０のシェーパ回路５０Ａにおいて内部信号の桁下がりビットをキャリーダウンＣＤとして結合処理回路４０に送出する。
【０１３３】
ステップＳ６２：結合処理回路４０にて、シェーパ回路５０Ｂのサブトークン５１ｃに桁下がり分を加算しサブトークンαとしてシェーパ回路５０Ｂに送出する。
【０１３４】
ステップＳ６３：シェーパ回路５０Ｂのサブトークン減算部５２ｂにて、カレントトークン５１ａからサブトークン５１ｃを減算する。
【０１３５】
ステップＳ６４：シェーパ回路５０Ｂのデキュー許可判定部５２ｄにて、上記のカレントトークン５１ａが０より大か否かを判定する。
【０１３６】
ステップＳ６５：ステップＳ６４にてカレントトークン５１ａが０より大でデキュー許可判定が出た場合、デキュー許可要求を出力する。
【０１３７】
このようにして、シェーパ回路のパラメータを実施形態３から２倍のビット数に拡張することができ、さらなる要求の帯域、精度に適用可能となる。
（付記１）
入力パケットをトークンバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとアドトークンとマックストークンを格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を減算して前記パラメータ格納部に格納するデキュー減算部と、
一定のトークン追加周期毎に、前記パラメータ格納部から読み出したカレントトークンに前記パラメータ格納部から読み出したアドトークンを加算して前記パラメータ格納部に格納するアドトークン加算部と、
前記アドトークン加算部の加算結果が前記パラメータ格納部から読み出したマックストークンを超えないようにするマックストークン比較部と、
前記デキュー減算部の減算結果が０以上のときデキュー許可要求を出力し、前記アドトークン加算部の加算結果が０以上のときデキュー許可要求を出力するデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとアドトークンとマックストークンそれぞれのビット数を可変設定することを特徴とするシェーパ回路。
（付記２）
第１及び第２の付記１記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとアドトークンとマックストークンのビット数を拡張する結合処理回路を
有することを特徴とするシェーパ回路。
（付記３）
付記２記載のシェーパ回路において、
前記結合処理回路は、前記第１のシェーパ回路のアドトークン加算部とデキュー減算部で発生した桁上がり信号と桁下がり信号を供給され、かつ、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果を供給され、
前記桁下がり信号とデキューするパケット長を加算して前記第２のシェーパ回路のデキュー減算部に供給するネクストレングス算出部と、
前記桁上がり信号と前記第２のシェーパ回路のパラメータ格納部から読み出したアドトークンを加算して前記第２のシェーパ回路のアドトークン加算部に供給すると共に、前記第１及び第２のシェーパ回路のマックストークン比較部の比較結果からカレントトークンの値をマックストークンの値とする旨の信号を生成して前記第１及び第２のシェーパ回路に供給するネクストアドトークン算出部を
有することを特徴とするシェーパ回路。
（付記４）
入力パケットをリーキーバケットアルゴリズムにより帯域制御するシェーパ回路において、
カレントトークンとサブトークンと閾値を格納するパラメータ格納部と、
前記パラメータ格納部から読み出したカレントトークンからデキューするパケット長を加算して前記パラメータ格納部に格納するデキューレングス加算部と、
一定のトークン減算周期毎に、前記パラメータ格納部から読み出したカレントトークンより前記パラメータ格納部から読み出したサブトークンを減算して前記パラメータ格納部に格納するサブトークン減算部と、
前記デキューレングス加算部の加算結果が前記パラメータ格納部から読み出した閾値以下のときデキュー許可要求を行う閾値比較部と、
前記サブトークン減算部の減算結果が０より大の場合にデキュー許可要求を行うデキュー許可判定部とを有し、
前記パラメータ格納部のカレントトークンとサブトークンと閾値それぞれのビット数を可変設定することを特徴とするシェーパ回路。
（付記５）
第１及び第２の付記４記載のシェーパ回路と、
前記第１及び第２のシェーパ回路の間に接続され、前記第１及び第２のシェーパ回路のパラメータ格納部に格納される前記カレントトークンとサブトークンと閾値のビット数を拡張する結合処理回路を
有することを特徴とするシェーパ回路。
（付記６）
付記５記載のシェーパ回路において、
前記結合処理回路は、前記第１のシェーパ回路のデキューレングス加算部とサブトークン減算部で発生した桁上がり信号と桁下がり信号を供給され、かつ、前記第１及び第２のシェーパ回路の閾値比較部の比較結果を供給され、
前記桁下がり信号とデキューするパケット長を加算して前記第２のシェーパ回路のデキューレングス加算部に供給するネクストレングス算出部と、
前記桁上がり信号と前記第２のシェーパ回路のパラメータ格納部から読み出したサブトークンを加算して前記第２のシェーパ回路のサブトークン減算部に供給すると共に、前記第１及び第２のシェーパ回路の閾値比較部の比較結果からデキュー許可要求を行うための信号を生成して前記第１及び第２のシェーパ回路に供給するネクストアドトークン算出部を
有することを特徴とするシェーパ回路。
【図面の簡単な説明】
【０１３８】
【図１】伝送装置の一例のブロック図である。
【図２】従来のシェーパ回路の一例のブロック図である。
【図３】パラメータを説明するための図である。
【図４】トークンバケットアルゴリズムについて説明するための図である。
【図５】本発明のシェーパ回路の第１実施形態の構成図である。
【図６】カレントトークン、アドトークン、マックストークンを説明するための図である。
【図７】デキュー動作のフローチャートである。
【図８】トークン追加動作のフローチャートである。
【図９】本発明のシェーパ回路の第２実施形態のブロック図である。
【図１０】結合処理回路の構成図である。
【図１１】カレントトークン、アドトークン、マックストークンを説明するための図である。
【図１２】デキュー動作のフローチャートである。
【図１３】トークン追加動作のフローチャートである。
【図１４】判定テーブルを示す図である。
【図１５】リーキーバケットアルゴリズムについて説明するための図である。
【図１６】本発明のシェーパ回路の第３実施形態のブロック図である。
【図１７】カレントトークン、サブトークン、閾値を説明するための図である。
【図１８】デキュー動作のフローチャートである。
【図１９】トークン減算動作のフローチャートである。
【図２０】本発明のシェーパ回路の第４実施形態のブロック図である。
【図２１】カレントトークン、サブトークン、閾値を説明するための図である。
【図２２】デキュー動作のフローチャートである。
【図２３】トークン減算動作のフローチャートである。
【図２４】判定テーブルを示す図である。
【符号の説明】
【０１３９】
３０  シェーパ回路
３１  パラメータ格納部
３２  トークン加算減算部
３２ａ  デキュー減算部
３２ｂ  アドトークン加算部
３２ｃ  マックストークン比較部
３２ｄ  デキュー許可判定部
４０  結合処理回路
４１  ネクストレングス算出部
４２  ネクストアドトークン算出部
５０  シェーパ回路
５１  パラメータ格納部
５２  トークン加算減算部
５２ａ  デキュー加算部
５２ｂ  サブトークン減算部
５２ｃ  閾値比較部
５２ｄ  デキュー許可判定部
【図１】
0004659654.tif 000002
【図２】
0004659654.tif 000003
【図３】
0004659654.tif 000004
【図４】
0004659654.tif 000005
【図５】
0004659654.tif 000006
【図６】
0004659654.tif 000007
【図７】
0004659654.tif 000008
【図８】
0004659654.tif 000009
【図９】
0004659654.tif 000010
【図１０】
0004659654.tif 000011
【図１１】
0004659654.tif 000012
【図１２】
0004659654.tif 000013
【図１３】
0004659654.tif 000014
【図１４】
0004659654.tif 000015
【図１５】
0004659654.tif 000016
【図１６】
0004659654.tif 000017
【図１７】
0004659654.tif 000018
【図１８】
0004659654.tif 000019
【図１９】
0004659654.tif 000020
【図２０】
0004659654.tif 000021
【図２１】
0004659654.tif 000022
【図２２】
0004659654.tif 000023
【図２３】
0004659654.tif 000024
【図２４】
0004659654.tif 000025