(57)【特許請求の範囲】
【請求項１】
入力セルを順次書き込むセルメモリ（１１）と、前記入力セルを該セルメモリ（１１）から読み出すための出力時刻を、割り当てられたチャネル毎に固有の転送条件に基づき、各該チャネル毎の各該入力セルについて算出する演算部（１２）と、前記入力セルの前記セルメモリ（１１）に対する書込みおよび前記出力時刻での読出しを制御するメモリ制御部（１２）と、を備えるトラヒックシェーパにおいて、
前記セルメモリ（１１）から読み出される出力セルの流れと前記入力セルの流れとの間の整合がとれているか否かを検出するセル流状態監視手段（１４）と、前記セル流状態監視手段（１４）が前記の整合がとれていないことを検出したとき復旧のための動作を起動するアラーム手段（１５）とを設けることを特徴とするトラヒックシェーパ。
【請求項２】
前記セル流状態監視手段（１４）は、各前記入力セルについて入力順に歩進するシリアル番号を付与し、各前記チャネル毎の各前記出力セルについて該シリアル番号に沿ったセル順序が保存されていないと判定されたときに、前記の整合がとれていないことを検出する請求項１に記載のトラヒックシェーパ。
【請求項３】
前記セル流状態監視手段（１４）は、前記セルメモリ（１１）の各アドレス対応に、前記セルの書込みがある毎に第１論理とされ当該セルの読出しがある毎に第２論理とされるイネーブルビットの表示領域（４１）を有すると共に、
（ｉ）前記セルの前記セルメモリ（１１）への書込みを行うときに前記イネーブルビットが前記第１論理であるか、
（ｉｉ）前記セルの前記セルメモリ（１１）からの読出しを行うときに前記イネーブルビットが前記第２論理である
と判定されたときに、前記の整合がとれていないことを検出する請求項１に記載のトラヒックシェーパ。
【請求項４】
前記セル流状態監視手段（１４）は、前記セルメモリ（１１）内において前記出力時刻が到来するまで待機しているセルの数を計数する第１カウンタ（５１）と、前記セルメモリ（１１）内において前記出力時刻が到来していて出力待ちとなるセルが発生したときに第１論理とされ該出力待ちのセルが読み出されたときに第２論理とされるアウトプットフラグの表示領域（５３）と、前記第１カウンタ（５１）の出力を逐次取り込んでカウントアップし、また、前記出力待ちのセルが読み出される毎にカウントダウンする第２カウンタ（５２）とを有し、
（ｉ）前記アウトプットフラグが第１論理でかつ前記第２カウンタ（５２）が０か、
（ｉｉ）前記アウトプットフラグが第２論理でかつ前記第２カウンタ（５２）が１以上
と判定されたときに、前記の整合がとれていないことを検出する請求項１に記載のトラヒックシェーパ。
【請求項５】
入力セルを順次書き込むセルメモリ（１１）と、前記入力セルを該セルメモリ（１１）から読み出すための出力時刻を、割り当てられたチャネル毎に固有の転送条件に基づき、各該チャネル毎の各該入力セルについて算出する演算部（１２）と、前記入力セルの前記セルメモリ（１１）に対する書込みおよび前記出力時刻での読出しを制御するメモリ制御部（１３）と、を備えるトラヒックシェーパにおいて、
前記演算部（１２）により算出された前記出力時刻が、予め定めた最大遅延量を超えて設定されているか否かを検出するセル流状態監視手段（１４）と、
前記セル流状態監視手段（１４）が、前記最大遅延量を超えた設定がされたことを検出したとき復旧のための動作を起動するアラーム手段（１５）とを設けることを特徴とするトラヒックシェーパ。
【請求項６】
前記アラーム手段（１５）は、前記トラヒックシェーパ全体にリセットをかける請求項１または５に記載のトラヒックシェーパ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はトラヒックシェーパ（Ｔｒａｆｆｉｃ  Ｓｈａｐｅｒ）に関する。
近年、マルチメディア等の進展に伴ってＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）ネットワークの一層の拡充が図られている。その１つにトラヒックシェーパがあり、ＩＴＵ−Ｔで勧告化されている。
【０００２】
本発明はこのトラヒックシェーパ、特にその改良について述べるものである。
【０００３】
【従来の技術】
図１４はトラヒックシェーパの網内における位置付けを示す図である。本図において、参考番号５が本発明に特に関係するトラヒックシェーパ（以下、単にシェーパとも称す）である。多数のユーザ端末１から転送されるＡＴＭセル等の情報セル（以下、単にセルとも称す）は、多重化装置２においてセル多重されてネットワーク３に入力される。
【０００４】
ネットワーク３内ではＵＰＣ（Ｕｓａｇｅ  Ｐａｒａｍｅｔｅｒ  Ｃｏｎｔｒｏｌ）部４にてこれを受け、さらに上記トラヒックシェーパ５を通して、交換機６等に転出する。
ネットワーク３、例ばＡＴＭネットワークにおいて、ユーザ（ユーザ端末１）はネットワーク３に接続する際に、自己が使用するデータ伝送の帯域をネットワークに対して申告する。
【０００５】
一方、ネットワーク３側ではユーザが申告した帯域の値通りにセルを流しているかどうかを監視している。この監視機能を果すのがＵＰＣ部４である。このＵＰＣ部４は、ユーザから出力したＡＴＭセル等のセルのネットワーク３への到着間隔を見て監視を行うのであるが、一般に、ユーザが出力した段階における一連のセルの送出間隔（セル間隔）とこれらのセルがＵＰＣ部４に到着した時点でのセルの到着間隔（セル間隔）とは、完全には一致しない。これは、途中の多重化やオーバヘッドの挿入等により、セル間隔に揺らぎが生ずるからである。このことにより、ユーザが、申告した帯域値どおりにセルを出力しているにもかかわらず、ＵＰＣ部４では誤って申告違反と判断してしまうことがある。
【０００６】
このようなセルの揺らぎに対応すべくＵＰＣ部４が設けられる。そしてそのＵＰＣ方式として、リーキーバケット方式やバーチャルスケジューリングアルゴリズムがＩＴＵ−Ｔにおいて勧告されている。ところがリーキーバケット方式やバーチャルスケジューリング方式によるＵＰＣを行った場合、その出力セル流には、ある一定量以下ではあるが、セル遅延ゆらぎ（ＣＤＶ：Ｃｅｌｌ  Ｄｅｌａｙ
Ｖａｒｉａｔｉｏｎ）が含まれてしまう。
【０００７】
図１５はトラヒックシェーパの機能を図解的に表す図であり、上記のセル遅延ゆらぎ（ＣＤＶ）を減少させる働きを図解したものである。本図において、トラヒックシェーパ５については前記のとおりであり、さらに多重化部７とセル分離部８が示されている。
セル分離部８は、入力された各セルを、各ＶＰ（Ｖｉｒｔｕａｌ  Ｐａｔｈ）毎にＶＰ１，ＶＰ２，ＶＰ３…ＶＰｎのごとく分配するが、そのセル間隔には前述のＣＤＶが含まれる。
【０００８】
このようなＣＤＶを一層抑圧し、上記の申告した帯域値（申告パラメータ）どおりにセルの流れを整えるのがトラヒックシェーパ５である。図１５に表すごとく、申告パラメータすなわち最小セル間隔になるようにセル列を整え直す。この申告パラメータは各ＶＰについて一定であるが、ＶＰ相互では同じになるとは限らない。図では、ＶＰ１，ＶＰ２，ＶＰ３がそれぞれＴ０，Ｔ１，Ｔ２という申告パラメータを有している例を示す。
【０００９】
かくの如く、シェーパ５は、各ＶＰ毎のセル流に含まれるＣＤＶを抑圧し、ネットワーク３内への膨大な流入セルを受け入れ容れ易くするためのシェーピング機能を担っている。
【００１０】
【発明が解決しようとする課題】
トラヒックシェーパ５は図１５において説明したようなシェーピング機能を果すものであるが、多数のユーザからの膨大なセルを転送する上記のＶＰは、ＶＰ１，ＶＰ２…の如く複数存在しており、セルの出力に際し、異なるＶＰ間で競合が生じる場合がある。すなわちシェーパ５を構成するセルメモリ（後述）からのセルの出力時刻について競合制御を行うことが不可欠である。一例を示すと、図１５におけるセルＣＬ１とＣＬｎは、同一時刻に出力されており、ネットワークの運用上、障害がある。
【００１１】
そこで、シェーパ５が有するシェーピング機能にはセルの出力競合制御手段が含まれなければならない。
この出力競合制御手段の詳細については後の実施例において説明するが、その制御内容はかなり複雑である。このため、僅かなノイズ等によってもエラーを起こし易く、かつまた、一旦エラーが生じたときに外部から発見し難いことが判明し、実用化が困難である、という問題がある。
【００１２】
したがって本発明は上記問題点に鑑み、内部エラーに対して耐抗力のあるトラヒックシェーパを提供することを目的とするものである。
【００１３】
【課題を解決するための手段】
図１は本発明に係るトラヒックシェーパの基本構成を示す図である。
（１）本図に示すとおり、第１の態様においては、トラヒックシェーパ５は、セルメモリ１１と、演算部１２と、メモリ制御部１３とによって構成されると共に、本発明の特徴をなすセル流状態監視手段１４、そしてアラーム手段１５が付加される。
【００１４】
すなわち、トラヒックシェーパ５の本来の機能を果す部分として、入力セルを順次書き込むセルメモリ１１と、入力セルをセルメモリ１１から読み出すための出力時刻を、割り当てられたチャネル毎に固有の転送条件に基づき、各チャネル毎の各入力セルについて算出する演算部１２と、入力セルのセルメモリ１１に対する書込みおよび上記の出力時刻での読出しを制御するメモリ制御部１３と、を備える。
【００１５】
そしてさらに、セルメモリ１１から読み出される出力セルの流れと入力セルの流れとの間の整合がとれているか否かを検出するセル流状態監視手段１４と、セル流状態監視手段１４が上記の整合がとれていないことを検出したとき復旧のための動作を起動するアラーム手段１５とが設けられる。
後述の実施例において詳細な構成をもって説明するとおり、本発明では以下の態様（２）〜（６）を提供する。
【００１６】
（２）セル流状態監視手段１４は、各入力セルについて入力順に歩進するシリアル番号を付与し、各チャネル毎の各出力セルについてそのシリアル番号に沿ったセル順序が保存されていないと判定されたときに、上記の整合がとれていないことを検出するように構成する。
（３）セル流状態監視手段１４は、セルメモリ１１の各アドレス対応に、セルの書込みがある毎に第１論理（例えば“１”）とされ当該セルの読出しがある毎に第２論理（例えば“０”）とされるイネーブルビットの表示領域を有すると共に、セルのセルメモリ１１への書込みを行うときにそのイネーブルビットが論理“１”であるか、セルのセルメモリ１１からの読出しを行うときにそのイネーブルビットが論理“０”であると判定されたときに、前記の整合がとれていないことを検出するように構成する。
【００１７】
（４）セル流状態監視手段１４は、セルメモリ１１内において上記の出力時刻が到来するまで待機しているセルの数を計数する第１カウンタと、セルメモリ１１内においてその出力時刻が到来していて出力待ちとなるセルが発生したときに第１論理（例えば“１”）とされその出力待ちのセルが読み出されたときに第２論理（例えば“０”）とされるアウトプットフラグの表示領域と、その第１カウンタの出力を逐次取り込んでカウントアップし、また、上記の出力待ちのセルが読み出される毎にカウントダウンする第２カウンタとを有し、上記のアウトプットフラグが論理“１”でかつその第２カウンタが０か、上記のアウトプットフラグが論理“０”でかつその第２カウンタが１以上と判定されたときに、前記の整合がとれていないことを検出するように構成する。
【００１８】
（５）セル流状態監視手段１４は、演算部１２により算出された上記の出力時刻が、予め定めた最大遅延量を超えて設定されているか否かを検出し、アラーム手段１５は、セル流状態監視手段１４が、その最大遅延量を超えた設定がされたことを検出したとき復旧のための動作を起動する。
（６）上記のアラーム手段１５は、トラヒックシェーパ全体にリセットをかけるように動作する。
【００１９】
上記第１〜第６の態様の各作用は、それぞれ（１）〜（６）に示すとおりである。
（１）トラヒックシェーパ５がエラーなく正常に動作しているか否かを判定するために、シェーパ５を通過する入力セルの流れと出力セルの流れに着目する。シェーパ５が正常であれば、入力セルの流れと出力セルの流れには一貫性があり、両者間の整合がとれている筈である。このためにセル流状態監視手段１４をシェーパ５内に導入する。該手段１４が「セル流の異常あり」と判定すれば、アラーム手段１５が起動される。
【００２０】
なお、上記のチャネルとは、一例としてＡＴＭセルを転送するネットワークにおけるＶＰ（Ｖｉｒｔｕａｌ  Ｐａｔｈ）が挙げられる。
（２）同一ＶＰ内の入力セルに順次シリアル番号（１，２，３…）を割り付ける。一方、そのＶＰ内の各出力セルが順次読み出されるときにそのシリアル番号を検査する。そしてそのセル順序（１，２，３…）に一貫性がないことを発見したときに、異常ありと判定する。
【００２１】
（３）セルメモリ１１にセルを書き込む際にその書込みアドレスのイネーブルビットは“０”（そのアドレスにはセルなし）でなければならない。もしこれが“１”（そのアドレスにセルが書き込まれている）であれば、異常ありと判定する。
逆に、セルメモリ１１からセルを読み出す際にその読出しアドレスのイネーブルビットは“１”（そのアドレスにセルが書き込まれている）でなければならない。もしこれが“０”（そのアドレスにセルなし）であれば、異常ありと判定する。
【００２２】
（４）上記のアウトプットフラグが“１”（出力待ちのセルがあることを示す）であるときは、上記の第２カウンタは１以上を出力していなければならない。もしこれが０（出力待ちのセルはなし）ならば、異常ありと判定する。
逆に、上記のアウトプットフラグが“０”（出力待ちのセルはなし）であるときは、上記の第２カウンタは０を出力していなければならない。もしこれが１以上（出力待ちのセルがあることを示す）ならば、異常ありと判定する。
【００２３】
（５）例えば既述のセル遅延ゆらぎ（ＣＤＶ）は、申告パラメータ（最小セル間隔Ｔ０，Ｔ１…）との関係で、Ｔ０，（Ｔ１，…）より大きくしてはならない。もし、出力時刻がＣＤＶを超えるような大きさで設定されたときは、異常ありと判定する。
（６）アラーム手段１５は、上記の異常が発生したときのシェーパ５の復旧動作を起動する。アラーム手段１５としては、アラーム信号を発出し、オペレータに警告を与えるという一般的なものでもよいが、通常、シェーパ５がワンチップのＬＳＩで実用化されることを考慮すると、このアラーム手段１５としては、当該ＬＳＩ（シェーパ全体）にリセットをかけるものであることが望ましい。
【００２４】
【発明の実施の形態】
前述のとおりトラヒックシェーパ５が有するシェービング機能にはセルの出力競合制御手段が含まれるが、その制御内容はかなり複雑である。以下述べる各種実施例では、このような複雑な制御内容を含むシェーパの一例として、公知のメモリチェーン方式によるシェーパを用いるので、このメモリチェーン方式によるシェーパについて先ず説明する。
【００２５】
図２はトラヒックシェーパにおけるセル出力時刻決定アルゴリズムの公知例を表すフローチャート、図３はリーキーバケットカウンタとシェーピング動作を説明するための図、図４は公知のメモリチェーン方式によるシェーパの構成例を示す図である。以下、図２〜図４を参照しながら説明する。
一般にシェーピング機能は、入力セルの出力予定時刻（申告されたトラヒックパラメータ（Ｔ０）で決定される時刻）を演算で求め、出力時刻になるまでセルメモリ１１で待たせておいて出力時刻になったら読み出す機能である。このシェーピング制御は、２つの機能ブロックにより行われる。すなわち（１）演算部１２および（２）メモリ制御部１３である。なお、図４においては、演算部１２は直接表されていない。
【００２６】
演算部１２は、入力セルのチャネル（例えばＶＰ）の識別番号（Ｉｄｅｎｔｉｆｉｅｒ）を示すＶＰＩを検出して、演算例えばリーキーバケット（ＬｅａｋｙＢａｃｋｅｔ）演算を行い、入力セルの出力時刻をメモリ制御部１３に出力する。
メモリ制御部１３は、演算部１２により指定される入力セルの出力時刻を受けて、当該入力セルのセルメモリ１１内におけるバッファ管理を行う。
【００２７】
演算部１２は、セルが到着すると（図２のステップＳ１）、同一ＶＰ内において直前に到着しているセルの到着時刻ＬＴと現在時刻Ｔａとの差を計算して、この値をＬ．Ｂ．カウンタ（図３のグラフの縦軸参照）から減算し、各チャネル（ＶＰ）毎の固有の転送条件をなす申告パラメータＴ０（最小セル間隔）だけカウントアップする（図２のステップＳ２）。なお、図２においてそれぞれの記号は、
Ｔａ：セル到着時刻
Ｃｐ：リーキーバケットカウンタの値
Ｃｐ′：Ｃｐより、時間経過と共に減算（リーキー）された値
ＬＴ：前セル到着時刻
であり、いずれも図３に示されている。このとき、上記演算の結果がそのセルに与える遅延量となり、現在時刻Ｔａと加算（Ｔａ＋Ｃｐ′）することにより、そのセルに対して決められた出力時刻となる（ステップＳ５）。ステップＳ３にてＣｐ′＜０であると判定されると（Ｔ０間隔よりも長い間隔で入力セルが発生）、一律Ｃｐ′＝０に固定される（ステップＳ４）。Ｃｐ′＞０のときは、Ｃｐ＝Ｃｐ′＋Ｔ０として加算される（図３のＣｐ′＋Ｔ０）。なお、図３に、相互に重なりながら山脈のように連なって表される１つ１つの三角形は、直角二等辺三角形である。
【００２８】
メモリ制御部１３は、セルメモリ１１へのセルの書き込み制御および読み出し制御を行う。シェーパ５に入力されるセルが１チャネル（１ＶＰ）のみならば、入力セルの出力時刻をアドレスに単純に対応させてデータの読み書きを行えばいいのであるが、図１５に示したように入力されるセルのＶＰは複数存在するため、複数のセルの出力時刻が同一になる可能性が出てくる。そのために、既述した出力時刻の競合制御を行う必要がでてくる。
【００２９】
この出力競合制御として、本発明の各種実施例では図４に示すような公知のメモリチェーン方式によるシェーパを用いる。
セルメモリ１１の内部は、ＦＬ（Ｆｒｅｅ  Ｌｉｓｔ），ＴＳＱ（Ｔｉｍｅ  Ｓｌｏｔ  Ｑｕｅｕｅ）およびＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）の３つの領域に分割されている。ＦＬ（Ｆｒｅｅ  Ｌｉｓｔ）は、セルデータが入っていない空の領域である。この領域は一つのチェーンを形成しており、その先頭アドレスをＦＬＨ（ＦＬのＨｅａｄ）レジスタ２１が指しており、またその後尾アドレスをＦＬＴ（ＦＬのＴａｉｌ）レジスタ２２が指している。セルが入力されると、このセルはＦＬＨレジスタ２１が指しているセルメモリのアドレスに書き込まれることになる。
【００３０】
ＴＳＱ（Ｔｉｍｅ  Ｓｌｏｔ  Ｑｕｅｕｅ）は、出力時刻が演算部１３によって決められたセルが書き込まれているセルメモリの領域である。この場合出力時刻が同一になってしまった複数のセルは、チェーンを形成しており（図中、上向き矢印で表す）、その先頭アドレスをＣＥＨメモリ２３が指定し、その後尾アドレスをＣＥＴメモリ２４が指定する。この場合ある出力時刻に１つだけセルデータが書き込まれているときは、ＣＥＨメモリ２３とＣＥＴメモリ２４は同一のアドレスを示すことになる。
【００３１】
ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）は、出力時刻を迎えたセルが書き込まれる領域である。出力時刻（Ｍａｒｋメモリ２５の論理“１”は各チェーンの出力時刻に対応）になったら、ＴＳＱ（Ｔｉｍｅ  Ｓｌｏｔ  Ｑｕｅｕｅ）のチェーンは、ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）のチェーンの後ろにつながって行くことになる。
【００３２】
セルをセルメモリ１１から読み出す条件は、１セル時間に１回、ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）にセルが存在していることである。このときの読み出し先頭アドレスはＯＬＨ（ＯＬのＨｅａｄ）レジスタ２６が指定し、その後尾アドレスはＯＬＴ（ＯＬのＴａｉｌ）レジスタ２７が指定する。
このような複雑な制御を行っているために、本発明による自己監視機能（セル流状態監視手段１４）を備えておく必要がある。
【００３３】
図５は本発明に基づく第１実施例を示す図である。この第１実施例によるセル流状態監視手段１４は、図５において、１４で示す部分において構成され、既述したように、各入力セルについて入力順に歩進するシリアル番号（ＳＮ：Ｓｅｒｉａｌ  Ｎｕｍｂｅｒ）を付与し、各チャネル（ＶＰ）毎の各出力セルについてそのシリアル番号（ＳＮ）に沿ったセル順序が保存されていないと判定されたときに、入力セルの流れと出力セルの流れの間に整合がとれていないことを検出するように動作する。
【００３４】
このセル流状態監視手段１４は、第１ＳＮメモリ（ＳＮ１）３１と、第２ＳＮメモリ（ＳＮ２）３２と、第３ＳＮメモリ（ＳＮ３）３３と、＋１加算器３５および３６と、比較器３７と、ＶＰＩ抽出器３８とからなる。
この第１実施例では、入力セルに対してＶＰ毎にシリアル番号（ＳＮ）をつけて監視を行うものであり、同一ＶＰのセルに注目すると、入力セル流と出力セル流との間において、セルとセルの間隔は変化するものの、その順序は保存されていることになる。
【００３５】
シェーパ５では、演算部１２におけるＬ．Ｂ．（Ｌｅａｋｙ  Ｂａｃｋｅｔ）演算による、各セルの出力時刻の決定、およびメモリ制御部１３によるメモリ（１１）管理を行っており、これらに故障が発生すると、セル順序に逆転が発生することが考えられる。
そこで、同一ＶＰ内のセル群に対して、シェーパ５内部において、シリアル番号ＳＮを用いてセル順序の管理を行い、シェーピング機能の動作監視を行うこととし、セル順序に逆転が生じたとすると、最終的に、比較器３７よりＳＮエラー（図の右下）が出力される。動作は次のとおりである。
【００３６】
セルが入力されるとヘッダラッチ３４により該セルのＶＰＩがラッチされる。この入力セルのＶＰＩを、アドレス（ｖｐ１）としてＳＮ１メモリ３１のアドレスＡをアクセスし、そのデータをポートＤより読み出す（以下、この値をｓｎ１とする）。
ヘッダラッチ３４でラッチされたＶＰＩを用いて、演算部１２において当該入力セルの出力予定時刻が決定される。そしてメモリ制御部１３よりこの入力セルに対する、セルメモリ１１への書込みアドレスが決定したら、このアドレスと同一のアドレスＡにてＳＮ２メモリ３２に上記ｓｎ１を書き込む。また、ＳＮ１メモリ３１の上記アドレス（ｖｐ１）に、＋１加算器３５を経た（ｓｎ１＋１）の値を書き込む。
【００３７】
セルメモリ１１よりセルデータを読み出すと同時に、この読出しアドレスと同一アドレスにてＳＮ２メモリ３２に対しアクセスし、そのポートＤよりデータ（ｓｎ２）を読み出す。
セルメモリ１１から読み出したデータから、ＶＰＩ抽出器３８によりそのＶＰＩ値を抽出し、これをアドレス（ｖｐ３）として、ＳＮ３メモリ３３をアクセスし、データ（ｓｎ３）を読み出す。
【００３８】
上記ｓｎ２とｓｎ３の各値を比較器３７にて比較し、両値が一致していれば、正常と判断とする。もしこれらが異なる値であったならば、ＳＮ異常アラームを表すＳＮエラーを発生する。
なお、＋１加算器３６により加算した（ｓｎ２＋１）の値を、ＳＮ３メモリ３３のアドレス（ｖｐ３）に書き込むようにする。もし（ｓｎ３＋１）の値をメモリ３３に書き込むとすると、一度セルの損失等によりＳＮエラーが発生したら、ずっとエラーが発生し続けることになってしまうのでｓｎ２＋１の値を書き込むようにする。
【００３９】
図６は本発明に基づく第２実施例を示す図である。この第２実施例によるセル流状態監視手段１４は、図６に１４として示され、既述したように、セルメモリ１１の各アドレス対応に、セルの書込みがある毎に第１論理（“１”とする）とされ当該セルの読出しがある毎に第２論理（“０”とする）とされるイネーブルビットの表示領域４１を有する。そして、セルのメモリセル１１への書込みを行うときにイネーブルビットが論理“１”であるか、セルのメモリセル１１からの読出しを行うときにそのイネーブルビットが論理“０”であると判定されたときに、入力セルの流れと出力セルの流れとの間に整合がとれていないことを検出するように動作する。
【００４０】
すなわち第２実施例は、イネーブルビットによる監視を行うものであり、セルメモリ１１の各アドレスに対応したイネーブルビットを設け、セルが入っている領域には“１”を立て、セルの入っていない領域には“０”を書いておく。セルデータを書き込むときに、そのアドレスのイネーブルビットを見て“１”が立っていたらアラームを発出する。逆に、セルメモリ１１からデータを読みだすときに、イネーブルビットに“１”が立っていなかったら、アラームを発出する。
【００４１】
図７は図６の構成を、セル入力時に関し、一層具体的に示す図であり、図８は図６の構成を、セル出力時に関し、一層具体的に示す図である。
シェーパ５は１つのＬＳＩにてワンチップ化されているが、このＬＳＩのリセット時は、全てのアドレスのイネーブルビット（４１）を“０”にリセットする。セル入力時には（図７）、その入力セルは、セルメモリ１１のＦＬＨレジスタ２２（図４）が示すアドレスに書き込まれる。このとき、その書込みアドレスと同一アドレスのイネーブルビット（４１）を読み出す。これが“０”になっていることを、メモリ制御部１３内の“１／０”判定部４２にてチェックする。“１”になっていたらエラーであり、アラームを発出する。また、そのイネーブルビットを“１”に書き替える。
【００４２】
セル出力（読出し）時には（図８）、セルメモリ１１のＯＬＨレジスタ２７（図４）が示すアドレスからセルデータを読み出して出力する。このとき、その読出しアドレスと同一アドレスのイネーブルビット（４１）を読み出す。これが“１”になっていることを、上記の“１／０”判定部４２にてチェックする。“０”になっていたら、エラーであり、アラームを発出する。またそのイネーブルビットを“０”に書き替える。
【００４３】
図９は本発明に基づく第３実施例を示す図である。この第３実施例によるセル流状態監視手段１４は、図９に１４として示され、既述したように、セルメモリ１１内において出力時刻が到来するまで待機しているセルの数を計数する第１カウンタ５１と、セルメモリ１１内において出力時刻が到来していて出力待ちとなるセルが発生したときに第１論理（“１”とする）とされ該出力待ちのセルが読み出されたときに第２論理（“０”とする）とされるアウトプットフラグの表示領域５３と、第１カウンタ５１の出力を逐次取り込んでカウントアップし、また、上記の出力待ちのセルが読み出される毎にカウントダウンする第２カウンタ５２とを有し、上記アウトプットフラグが第１論理（“１”）でかつ第２カウンタ５２が０か、上記アウトプットフラグが第２論理（“０”）でかつ第２カウンタ５２が１以上と判定されたときに、入力セルの流れと出力セルの流れとの間に整合がとれていないことを検出するように動作する。
【００４４】
すなわち第３実施例は、カウンタ方式による監視であり、演算部１２でのＬ．Ｂ．演算により、出力時刻が決定され、上記メモリチェーン方式のもとで各時刻ごとにチェーンが張られる。
各時刻に対応して、第１カウンタ５１が形成される。このカウンタ５は、セルが入力されて、各時刻のチェーンにセルが新たに加わるごとにカウントアップする（図中、３や２や１等で表示）。出力時刻になると、カウンタ値（計数されたセルの数）は、ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）のチェーンの第２カウンタ５２すなわちセル数カウンタに加算器５４を介し加算される。
【００４５】
ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）の第２カウンタ５２（セル数カウンタ）は、セルが出力される毎に減算入力５５より１減算される。したがって、ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）のチェーンにある有効セル（データを含むセル）数を、第２カウンタ５２すなわちセル数カウンタが示していることになる。
セル流が正常な状態ならば、ＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）のセル数カウンタ（５２）の計数値が０の場合には、セルの出力はなく、１以上の場合に、セル出力があることになる。
【００４６】
メモリ制御部１３において、チェーンの異常が生じたとすると、このＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）にあるセル数と、第２カウンタ５２の計数値が合致しなくなる。つまり、カウンタの計数値が０なのにセルを出力しようとしたり、その係数値が１以上なのにセルを出力しないという事態が生じた場合、内部エラーと判断でき、アラームを発出する。
【００４７】
図９においてＯＲゲート５６はカウンタ５２の計数値が１以上のときに出力“１”となり、それ以外のときは出力“０”となる。このＯＲゲート５６の出力は、アウトプットフラグレジスタ５３の出力と、ＥＯＲゲート５７にて排他的論理和がとられる。表示領域（レジスタ）５３内のアウトプットフラグは、出力すべきセルがあるときに“１”、出力すべきセルがないときに“０”となる。カウンタ５２の出力が１以上でかつ、レジスタ５３の出力が“１”ならば正常であり、ＥＯＲゲート５７の出力は“０”になる。同じく、カウンタ５２の出力が“０”で、かつ、レジスタ５３の出力が０ならばこのときも正常であり、ＥＯＲゲート５７の出力は“０”になる。
【００４８】
上記以外のとき（異常時）、ＥＯＲゲート５７の出力は“１”となり、アラームを発出する。
第３実施例の動作は以上のとおりであるが、さらに詳しくフローチャートにまとめると次のようになる。
図１０は第３実施例の詳細な動作を表すフローチャート（その１）、図１１は同フローチャート（その２）、図１２は同フローチャート（その３）である。
【００４９】
シェーパ５は上既述のようにＬＳＩで形成されており、このＬＳＩのリセット時は、アウトプットフラグは“０”にリセットされる。セルが入力されると、演算部１２により、そのセルの出力予定時刻が決定される。その出力予定時刻データがメモリ制御部１３に入力され、その時刻に対応したチェーンの中にセルデータがリンクされる。このチェーンは、図４で説明したように、その先頭が既述のＣＥＨ（Ｃａｌｅｎｄａｒ  Ｅｎｔｒｙ  Ｈｅａｄ）メモリ２３でポインタされ、またその後尾（Ｔａｉｌ）が、ＣＥＴ（Ｃａｌｅｎｄａｒ  Ｅｎｔｒｙ  Ｔａｌ）メモリ２４でポインタされる。また、データを有するセルすなわち有効セルが、ある出力時刻に対応したＣＥＨおよびＣＥＴであることを示すフラグ（Ｍａｒｋメモリ２５）に１が書かれる。
【００５０】
このＭａｒｋメモリ２５が“１”である時刻になったら、その時刻に対応するチェーンをＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）に移動させる。これと同時にレジスタ５３のアウトプットフラグ表示（Ｏｕｔｐｕｔ  Ｆｌａｇ）を“１”にする。Ｏｕｔｐｕｔ  Ｆｌａｇが“１”であったならば、出力するべきセルが存在することになるから、セルを出力する。このときＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）のチェーンの先頭を示すＯＬＨ（Ｏｕｔｐｕｔ  Ｌｉｓｔ  Ｈｅａｄ）レジスタ２７と、後尾（Ｔａｉｌ）を示すＯＬＴ（Ｏｕｔｐｕｔ  Ｌｉｓｔ  Ｔａｉｌ）レジスタ２６の値を見て、等しかったらＯＬ（Ｏｕｔｐｕｔ  Ｌｉｓｔ）に存在するセルが１つということになるから、そのセルを読み出して、アウトプットフラグ（Ｏｕｔｐｕｔ  Ｆｌａｇ）を“０”にする。
【００５１】
上述した動作を含めたチェーン制御をフローチャートで示したのが上記の図１０、図１１および図１２である。なお、これらの図中に示す、ＦＬＨ，ＣＥＴ，ＣＥＨ，Ｍａｒｋ，ＯＬＴ，ＯＬＨ等については図９（図４も）に示されている。この場合、ＴｏｕｔはＭａｒｋメモリ２５により規定される出力予定時刻である。またＦＬＨＯは入力セルがセルメモリに書き込まれたアドレスを示すポインタである。
図１３は本発明に基づく第４実施例を示す図である。この第４実施例によるセル流状態監視手段１４は、図１３に１４として示され、既述のように、演算部１２により算出された出力時刻が、予め定めた最大遅延量を超えて設定されているか否かを検出するように動作する。そしてセル流状態監視手段１４が、その最大遅延量を超えた設定がされたことを検出したとき、アラーム手段１５により復旧のための動作を起動する。
【００５２】
図１３において、６１はセル到着時刻（現在時刻）Ｔａを保持するレジスタ、６３は各入力セルに与えるべき遅延値（時間）τ（演算部１２が各ＶＰ毎の申告パラメータＴ０に基づいて算出）を保持するレジスタである。これらレジスタ６１とレジスタ６３の各値は加算器６２にて加算される。この加算値が既述の出力時刻Ｔｏｕｔとなる。
【００５３】
このように演算部１２では、セルの出力予定時刻を決定するものである。この演算結果に誤りが生じていたら、トラヒックシェーパ５として動作しないことになる。このため第４実施例では、図１３に示すセル流状態監視手段１４を導入する。その原理は次のとおりである。
出力時刻として得られる計算結果（Ｔｏｕｔ）と、セル到着時刻（Ｔａ）との関係は、必ず
Ｔａ≦Ｔｏｕｔ≦Ｔａ＋５１１
という関係になる。シェーパ５によるシェーピングを行うとき、セルに与える遅延量（τ）はセルメモリ１１のバッファ量に関係し、このτの最大値には制限がある。
【００５４】
ところでシェーパ５の前段にＵＰＣ機能（図１４のＵＰＣ部４）があるが、ここで、既述のセル遅延ゆらぎＣＤＶが５１１を超えるセルは廃棄されるために、シェーパ５にはＣＤＶが５１１を超えるセルは入力されない筈である。
この事実に着目し、与える遅延量τとして算出された値が５１１を超えているかどうかを監視して、遅延値として５１２以上の値を検出した場合、ハード故障としてアラームを発出する。
【００５５】
具体的には、９ビットａｌｌ“１”で５１１になるから演算結果の１０ビット目（ＭＳＢ）以上のビットに“１”が立った場合にこれをＯＲゲート６４で検出し、アラームを手段１５へ通知する。
最後にアラーム手段１５について述べる。このアラーム手段１５は、警告ランプあるいは警告ブザーによってオペレータに警告を発するものでよい。
【００５６】
しかし当該異常（内部エラー）の復旧は迅速になされるべきであり、一般にＬＳＩとして形成されるトラヒックシェーパ５に対し、ＬＳＩリセットをかけるようにするのが望ましい。
【００５７】
【発明の効果】
以上説明したように本発明によれば、複雑な出力競合制御を行うが故に内部エラーが生じ易いトラヒックシェーパの信頼性を一層向上させることができる。
第１実施例の場合（図５）、入力セルのセル順序と出力セルのセル順序とを監視するので、きわめて高精度な、シェーパの自己監視が実現される。
【００５８】
第２実施例の場合（図６）、セル順序が保存されているか否かを間接的に監視でき、簡単なハードウェアでありながら精度の高い自己監視ができる。
第３実施例の場合（図９）、出力の最終段でカウンタ５２とアウトプットフラグの表示領域（レジスタ）５３との比較を行うので、実施例３よりも精度の高い監視が期待される。
【００５９】
第４実施例の場合（図１３）、演算結果である遅延値（レジスタ６３）のＭＳＢのみを監視するというきわめて単純な構成で目的を達成できる。
【図面の簡単な説明】
【図１】本発明に係るトラヒックシェーパの基本構成を示す図である。
【図２】トラヒックシェーパにおけるセル出力時刻決定アルゴリズムの公知例を表すフローチャートである。
【図３】リーキーバケットカウンタとシェーピング動作を説明するための図である。
【図４】公知のメモリチェーン方式によるシェーパの構成例を示す図である。
【図５】本発明に基づく第１実施例を示す図である。
【図６】本発明に基づく第２実施例を示す図である。
【図７】図６の構成をセル入力時に関し、一層具体的に示す図である。
【図８】図６の構成を、セル出力時に関し、一層具体的に示す図である。
【図９】本発明に基づく第３実施例を示す図である。
【図１０】第３実施例の詳細な動作を表すフローチャート（その１）である。
【図１１】第３実施例の詳細な動作を表すフローチャート（その２）である。
【図１２】第３実施例の詳細な動作を表すフローチャート（その３）である。
【図１３】本発明に基づく第４実施例を示す図である。
【図１４】トラヒックシェーパの網内における位置付けを示す図である。
【図１５】トラヒックシェーパの機能を図解的に表す図である。
【符号の説明】
１…ユーザ端末
３…ネットワーク
４…ＵＰＣ部
５…トラヒックシェーパ
１１…セルメモリ
１２…演算部
１３…メモリ制御部
１４…セル流状態監視手段
１５…アラーム手段
２１，２２，２６，２７…レジスタ
２３，２４，２５…メモリ
３１，３２，３３…ＳＮメモリ
４１…イネーブルビットの表示領域
５１，５２…カウンタ
５３…アウトプットフラグの表示領域（レジスタ）
６１，６３…レジスタ
【図１】
0003615844.tif 000002
【図２】
0003615844.tif 000003
【図３】
0003615844.tif 000004
【図４】
0003615844.tif 000005
【図５】
0003615844.tif 000006
【図６】
0003615844.tif 000007
【図７】
0003615844.tif 000008
【図８】
0003615844.tif 000009
【図９】
0003615844.tif 000010
【図１０】
0003615844.tif 000011
【図１１】
0003615844.tif 000012
【図１２】
0003615844.tif 000013
【図１３】
0003615844.tif 000014
【図１４】
0003615844.tif 000015
【図１５】
0003615844.tif 000016