説明

ATMインタフェースおよびシェーピング方法

【目的】VPI対応にセル送出間隔を制御すると共に、VCI毎のセル送出間隔を制御可能なシェーピング方法とATMインタフェースを提供する。
【構成】VPI毎に出力インタフェース速度を基準としたピークセル間隔を求め、VCI毎にVPIのピークセル間隔を基準とした時刻に従って相対的な送出時刻を計算した後、出力インタフェース速度を基準としたセル送出時刻を決定し、セルバッファよりセルを送出する。
【効果】複数のVPやVCが多重化された伝送路上で、VPI毎、VCI毎の申告トラヒックに従ったセル送出制御を行なうことができる。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、非同期転送モード(ATM:Asynchronous Transfer Mode)網のためのインタフェース装置およびトラヒック制御方法に関し、特に、申告トラヒックに従ってセルを送出制御するためのシェーピング技術に関するものである。
【0002】
【従来の技術】ATM交換方式のネットワークでは、セルと呼ばれる固定長パケットを用いることによって、複数のコネクションでネットワークリソースを共有し、高速かつ効率的な伝送を可能としている。セルは、例えば、5バイトのヘッダ部と48バイトの情報部とからなる53バイト長で構成され、上記ヘッダ部には、仮想パス(以下、VPという)の識別子VPIと、上記VPに多重化される仮想チャネル(以下、VCという)の識別子VCIとを含む。
【0003】ATM網のトラヒック制御に関しては、例えばITU-T、Draft RecommendationI.373において、発呼時に、呼設定すべきトラヒックについて、ユーザ(発信元装置)から通信速度や通信品質などのトラヒックパラメータを申告させ、この申告パラメータに基づいて各コネクション毎にリソースを割り付ける「コネクション受付制御」と、通信品質を保証するために入力セルの状態を監視しておき、申告トラヒックに違反して送出されたセルについては、マーキングやセル廃棄等の対策をとる「使用量パラメータ制御(以下、UPCという)」について記載されている。
【0004】ユーザ端末やユーザ網インタフェース装置(以下、UNIという)が備えるATMインタフェースでは、上述したUPCによるセル廃棄を避けるために、トラヒック制御機能として、申告トラヒックに違反しないようにセルをATM網に出力するための「シェーピング機能」が必要となる。上記文献には、UPCに適用可能なシェーピング制御アルゴリズムとして、リーキーバケットアルゴリズムと、バーチャルスケジューリングアルゴリズムが挙げられている。トラヒック制御に関する他の従来技術として、例えば、特開平5−130136号公報には、図12に示す装置構成によってUPCとシェーピングを行なうようにした「伝送ビットレートの監視方法」が提案されている。
【0005】ここで、シェーピング機能にのみに着目して説明すると、図12の構成では、ユーザ装置から送出され、例えばATM多重化装置を経由したセルが装置500に到来すると、ヘッダ識別部501が、入力セルのVCIを識別してこれを時刻計算部502に通知すると共に、上記入力セルをメモリ装置503に渡す。時刻計算部502は、VCI毎に予め申告されたトラヒックを守るように、リーキーバケットアルゴリズムを用いて、上記メモリ装置内におけるセルの待ち時間Dを計算する。メモリ装置503に蓄積された入力セルは、それぞれの待ち時間Dが経過した時点、上記時刻計算部502からの指示に応答してメモリ装置から読み出され、出力線rに送出される。
【0006】
【発明が解決しようとする課題】然るに、ATM網を構成している各交換機は、VP単位で帯域管理を行なっているため、各ユーザが公衆ATM網を利用する場合には、VCI対応のトラヒックのみならず、VPI対応のトラヒックも申告しておく必要がある。しかしながら、従来のシェーピング制御では、VCI毎に申告トラヒックに従ったセル出力制御を行っているため、例えば、出力インタフェース速度に比べてVPI対応の申告ピークレートが遅い場合、VCIに関して申告トラヒックが守られていても、VPI毎に観測するとセル送出間隔が申告ピークレートより速くなり、結果的に申告トラヒックに違反する場合がある。
【0007】図13は、従来のシェーピング制御によるセルの送出間隔の1例を示す。図において、「TA」はVPI=「A」をもつ仮想パスにおける申告ピーク間隔、T(a)とT(b)は、それぞれ上記仮想パス上に形成されたVCI=「a」およびVCI=「b」をもつ仮想チャネルの申告ピーク間隔を示す。また、601と602は、VCI=「a」の仮想チャネルに属したセル、611と612はVCI=「b」の仮想チャネルに属したセルを示す。図示した例では、セル601と602と間の送出間隔、およびセル611と612の送出間隔は、それぞれの申告値T(a)、T(b)を満たしている。しかしながら、仮想パスを単位として、VPI=「A」をもつセルの間隔を観測すると、セル602と612の送出間隔は、申告ピーク間隔TAに違反している。
【0008】本発明の目的は、一つの仮想パス上に複数の仮想チャネルが形成されるATMネットワークにおける改良されたシェーピング方法およびATMインターフェイスを提供することにある。本発明の他の目的は、VPIとVCIの両方で申告トラヒックを満足できるシェーピング方法およびATMインターフェイスを提供することにある。本発明の更に他の目的は、1つの物理的な回線上に複数のVPが多重化されるネットワークに適用されるATMインターフェイス装置、あるいはVPI対応の申告ピークレートが出力回線速度に比べて遅いような入力セルを扱うATMインターフェイス装置において、VPI/VCI毎の申告トラヒックとVPIの申告ピークレートとに応じてセル送出間隔を制御できるシェーピング方法および制御装置を提供することにある。
【0009】
【課題を解決するための手段】上記目的を達成するために、本発明による伝送路へのセルの送出間隔を制御するためのシェーピング方法は、入力セルをバッファメモリに一時的に蓄積しておき、上記入力セルが属するグループの識別子と対応して予め申告されているトラヒック条件と、上記入力セルが属するサブグループの識別子と対応して予め申告されているトラヒック条件との両方の条件に応じて、該入力セルの送出時刻を決定する第1ステップと、上記セルの送出時刻を先着セルに割り当て済の送出時刻と比較し、もし、送出時刻が重なった場合は上記第1ステップで決定した送出時刻を修正した後、上記送出時刻と上記入力セルの識別情報との対応関係を記憶しておく第2ステップと、上記第2ステップで記憶されたセル識別子と送出時刻の対応関係に基づいて、上記バッファメモリに蓄積されたセルを送出時刻順に読み出し、出力回線に送出する第3ステップとからなることを特徴とする。
【0010】また、本発明によるATMインターフェイスは、入力線から入力された複数のATMセルを一時的に蓄積するためのバッファメモリと、上記バッファメモリへのセルの書き込みと、該バッファメモリから上記出力線へのセルの読み出しを行うための制御手段とを備え、上記制御手段が、入力セルの属するグループ別およびサブグループ別に予め申告されたトラヒック条件に対応して求められた制御パラメータを記憶するための第1のテーブル手段と、上記出力線上でのタイムスロット対応に空き状態を記憶するための第2のテーブル手段と、上記入力線からセルが到着した時、上記第1のテーブル手段に記憶された当該セルの属するグループおよびサブグループ対応の制御パラメータに基づいて、当該セルの送出タイミングを求め、上記第2のテーブル手段を参照して、上記送出タイミングと対応させるべき空き状態の送出タイムスロットを決定し、上記バッファメモリに蓄積された該当セルを上記送出タイムスロットのタイミングで上記出力線に読み出すためのアクセス手段とを有することを特徴とする。更に具体的に言うと、上記グループには、例えば、伝送路上に多重化して形成される仮想パス(VP)が該当し、上記サブグループには、各仮想パス上に多重化して形成される仮想チャネル(VC)が該当する。また、上記第1のテーブル手段に記憶する制御パラメータは、例えば、各グループ(仮想パス識別子:VPI)毎に申告ピークレートと対応したピークセル間隔、および、各サブグループ(仮想チャネル識別子:VCI)毎に申告トラヒックに対応したピークセル間隔である。
【0011】本発明の好ましい実施例では、出力インタフェース速度で1セル転送するのにかかる時間を1単位としてセル到着時刻およびセル送出タイムスロットを管理する。この場合、上記第1のテーブル手段には、上記各グループ(仮想パス識別子:VPI)毎のピークセル間隔が、上記出力インタフェース速度での1セル転送時間を1単位とする値で記憶され、各サブグループ(仮想チャネル識別子:VCI)毎のピークセル間隔が、該当グループ(VPI)のピークセル間隔を1単位とする値で記憶される。また、セル到着時には、サブグループ(VCI)毎の制御パラメータに従って、上記VPIのピークセル間隔を1単位として相対的なセル送出時刻が算出され、第2のテーブル手段を参照して、空き状態のタイムスロットの中から、上記相対セル送出時刻と対応させるべきセル送出タイムスロットが選択される。
【0012】上記構成によれば、第2のテーブル手段に他のセルによるタイムスロットの使用状態(空き状態)が記憶してあるため、相対セル送出時刻が、仮に同一グループ内の他のサブグループに属するセルあるいは他のグループに属したセルの相対セル送出時刻(タイムスロット)と競合していた場合、時刻を後にずらして他のセルと競合しない新たな相対セル送出時刻に変更することができる。上記第2のテーブルは、例えば、グループ毎に相対セル送出時刻の空き状態を記憶するために利用する時刻(タイムスロット)対応の複数のビット位置からなる第1ビットマップと、全グループに共通してタイムスロット空き状態を記憶するために利用する複数のビット位置からなる第2ビットマップとに分けて構成してもよい。
【0013】
【作用】本発明によれば、VPI毎のピークセル間隔を守った形で各VCI毎の申告パラメータに従ったセル送出時刻(タイムスロット)を決定でき、制御パラメータから求めた送出時刻が他のセルの送出時刻と競合時した場合でも、空き状態の時刻(タイムスロット)の中からVPI毎の申告されたピークセル間隔に違反しない範囲で送出タイミングを決定できるため、この送出タイミングでバッファメモリからのセルの読み出しを行うことによって、VPI毎、VCI毎のシェーピングを実現できる。
【0014】
【実施例】図2の(a)、(b)は、本発明によるATMインタフェース1a〜1cを適用した通信システムの構成の1例を示す。図2において、(a)は、ATMインタフェース1a〜1bが、構内ATM交換機2と広域ATM網との間に適用された例である。ATMインターフェイス1aは、ATM交換機2の1つの出力回線4aと広域ATM網の1つの入力線(加入者線)5aとの間に接続され、出力回線4aが広域ATM網入力線5aのインタフェース速度r’と同等、もしくはそれ以上のインタフェース速度rを有し、ATMインタフェース1aは、ATM交換機2から出力回線4aに出力された同一VPに属したセルを入力線5aに中継する。
【0015】ATMインタフェース1bは、ATM交換機2の1つの出力回線4bと広域ATM網の複数の入力線5b−1〜5b−Nとの間に接続され、ATM交換機2から出力回線4bに多重化して出力されたVPの異なる複数セルを受取り、これらをVP対応の入力線5b−1〜5b−Nに分配動作する。図2の(b)は、ATMインタフェース1cが、ユーザ構内のATM多重化装置3と広域ATM網との間に接続された例を示す。ATMインタフェース1cは、多重化装置3から出力回線4cに多重化して出力されたVPの異なる複数のセルを受信し、広域ATM網への入力線5cに中継する。この場合、出力回線4cと広域ATM網の入力線5cは同一のインタフェース速度をもつ。
【0016】図3は、同一VPのセルをシェーピングするATMインタフェース1aの機能ブロックを示す。図3R>3の(a)は、回線4aからインタフェース速度rで受信された入力セルを、FIFO等のバッファメモリを用いた速度変換手段11aによって出力側インターフェイス速度r’に変換した後、VPI毎の申告トラヒックに従うVPシェーピング機能とVCI毎の申告トラヒックに従うVCシェーピング機能とを備えたシェーピング手段10aによってシェーピングし、回線5aに出力するようにした構成を示す。図3の(b)は、速度変換用のバッファと、VPシェーピングおよびVCシェーピングに用いるバッファとを共用し、速度変換機能を備えたシェーピング回路10bによって回線4aからの受信セルを処理するようにした構成を示す。
【0017】図4は、入力セルをVP対応の複数の回線に分離するATMインタフェース1bの機能ブロックを示す。図4の(a)は、回線4bから受信したインタフェース速度rの入力セルを分離回路(セレクタ)12aでVPI別に振り分け、VPI対応に設けた速度変換手段11b−1〜11b−Nによって速度r'1〜r'Nのセル流に変換した後、シェーピング回路10c−1〜10c−Nによって、VCシェーピングとVPシェーピングとを同時に行ない、シェーピングされたセルを回線5b−1〜5b−Nに出力するようにした構成を示す。図4R>4の(b)は、分離回路12bでVPI別に振り分けられたセルを、VPI対応に設けられた速度変換機能を備えるシェーピング回路10d−1〜10d−Nに入力し、速度変換と同時に、VPシェーピングとVCシェーピングを行った後、VPI対応の回線5b−1〜5b−Nに出力するようにした構成を示す。図4の(c)は、回線4bからの入力セルをシェーピング回路10eによって、VPシェーピングとVCシェーピングした後に、分離回路12cでVPI対応の回線5b−1〜5b−Nに振り分けるようにした構成を示す。
【0018】図5は、回線4cから多重化して入力された複数VPの入力セルを回線5cに多重化して出力するATMインタフェース1cの機能ブロックを示す。この場合、回線4cから受信したセルは、シェーピング回路10fによって、VPシェーピングとVCシェーピングを施された後、入力回線4cと同一のインターフェイス速度rで回線5cに出力される。
【0019】次に、シェーピング回路10の構成について説明する。ここでは、異なる複数VPの入力セルを扱うシェーピング回路10e、10fの構成について説明するが、同一VPの入力セルを扱うシェーピング回路10b、10d、および速度変換用のバッファを別に備えるシェーピング回路10a、10cの構成は、以下に説明する回路構成から容易に得られるため、説明を省略する。
【0020】図1は、シェーピング手段10の構成の1例を示すブロック図である。シェーピング回路10は、入力セルを一時的に蓄積するためのセルバッファ20と、入力セルのヘッダに含まれるVPI/VCIを識別するためのヘッダ識別部30と、入力セルの送出時刻(送出タイムスロット)を算出するための送出時刻計算部40と、上記送出時刻計算部40で算出された送出時刻に対応する空き時刻(空きタイムスロット)を検索するための空き時刻検索部50と、セルバッファ20へのセルの書き込み、および読み出しを制御するためのバッファ制御部60と、コネクション別の申告トラヒックやセル送出時刻等の各種パラメータを記憶するためのパラメータテーブル70と、送出時刻の状態(空き/塞がり状態)を示す状態情報を記憶するための検索テーブル80と、セルバッファ60から読み出すべきセルのバッファの番号(バッファアドレス)を記憶するためのセル出力リスト90とから構成される。
【0021】回線4からインタフェース速度rで入力されたセルは、セルバッファ20に順次に書き込まれ、送出時刻が来る迄、一時的に蓄積される。この時、ヘッダ識別部30によって、受信セルのヘッダに含まれるVPI/VCIが識別され、識別されたVPI/VCIがバス5を介して送出時刻計算部40に通知される。送出時刻計算部40は、予めパラメータテーブル70に記憶してあるパラメータを使って、VPI別、VCI別の申告トラヒックにセル流となるように、上記入力の送出時刻を計算し、計算結果(送出時刻)をバス6を介して空き時刻検索部50に通知する。空き時刻検索部50は、検索テーブル70を参照して、上記送出時刻計算部40から通知された送出時刻またはそれ以降の時間帯でのセル送出が可能な空き時刻(タイムスロット)を検索し、検出された空き時刻をバス7を介してバッファ制御部60に通知する。
【0022】バッファ制御部60は、セル出力リスト90中の上記空き時刻(タイムスロット)に対応したエントリに、上記空き時刻で送出すべきセルの識別情報(例えば、上記セルの蓄積一を示すバッファアドレスまたはセルバッファ番号)を登録する。上記バッファ制御部60は、インタフェース速度r’をもつ出力回線5上の各タイムスロットで、セル出力リスト90からそのタイムスロットと対応するセル識別情報を読み出し、該セル識別情報に基づいて、セルバッファ20からセルを読み出し、回線5に出力する。
【0023】図6は、送出時刻計算部40が参照するパラメータテーブル70の内容の1例を示す。パラメータテーブル70は、VPI対応に、インタフェース速度r’を基準にして表されたピークセル間隔Tを記憶するための第1のパラメータテーブル71と、VPI/VCI対応に、各VPIのピークレートを基準にして表されたピークセル間隔T’と、理想的な送出時刻tn’を記憶するための第2のパラメータテーブル72とからなる。ここでは、セルの到着時刻をインタフェース速度r’における1セルの転送時間を1単位として表し、1例として、VPI=「1」、「A」、「N」の申告トラヒック(ピークレート)がそれぞれ「r’1」、「r’A」、「r’N」であり、VPI/VCI=(1)、(a)、(N)の申告トラヒック(ピークレート)がそれぞれ「P(1)」、「P(a)」、「P(m)」の場合のピークセル間隔を示している。なお、シェーピング回路10に供給される入力セルが全て同一のVPIをもつ場合は、上記第1パラメータテーブル71に代えて、1つのピークセル間隔を記憶するレジスタを適用できる。
【0024】図7は、上記パラメータテーブル70を参照して行なわれる送出時刻の計算手順を示すフローチャートである。ここで、セルの到着時刻をタイマが示す現在時刻taとし、ヘッダ識別部30から通知されるVPIの値を「A」、VPI/VCIの値を「(a)」とすると、送出時刻計算部40は、バス5を介してヘッダ識別部30からVPI、VCIを受け取ると(ステップ101)、上記VPIの値「A」をアドレスとして第1パラメータテーブル71をアクセスし、VPIに対応するピークセル間隔「TA」を読み取り、到着時刻taをピークレートにおけるセル送出タイミングを単位とした値に変換するために、上記到着時刻taをTAで割り、これを制御用の到着時刻「ta'A」とする(ステップ102)。
【0025】次に、VPI/VCI(=(a))をアドレスとして第2パラメータテーブル72をアクセスし、上記VPI/VCIと対応する理想送出時刻「tn'(a)」を読み取って、上記「ta'A」と比較する(ステップ103)。理想送出時刻「tn'(a)」が到着時刻「ta'A」より早い場合(tn'(a)<ta'A)は、理想送出時刻tn'(a)=ta'Aとし、ta'Aの小数部を切り上げた値を送出時刻to'Aに設定する(ステップ104)。もし、tn'(a)≧ta'Aの場合は、理想送出時刻tn'(a)の小数部を切り上げた値を送出時刻to'Aに設定する(ステップ105)。送出時刻to’Aの値が決まると、送出時刻to'Aをバス6を介して空き時刻検索部50に通知し(ステップ106)、第2パラメータテーブル72に記憶してある理想送出時刻の値をtn'(a)=tn'(a)+T'(a)に更新する(107)。
【0026】図8は、上述した送出時刻計算に基づく本発明によるシェーピング動作の1例を示す。ここで、VPI(=A)のピークセル間隔TAを「3」、このVPIに属するVPI/VCI=(a)とVPI/VCI=(b)のピークセル間隔の値をそれぞれT'(a)=4、T'(b)=3、理想送出時刻tn(a)の初期値131を「0」、tn(b)の初期値231を「0」と仮定する。
【0027】VPI/VCI=(a)のセル111、112および113の到着時刻taを、それぞれ「0」、「17」、「24」とすると、最初の入力セル111の制御用の到着時刻ta'Aの値は、121に示すように「0」であるから、送出時刻to’Aの値は、301に示すように「0」となり、次セルの理想送出時刻tn'(a)の値は、132に示すように、更新されて「4」になる。次の入力セル112は、制御用の到着時刻ta'Aの値が、122に示すように「17/3」となる。これは理想送出時刻tn'(a)=「4」より大きいため、送出時刻to'Aの値は、302に示すように「6」となり、次セルの理想送出時刻tn'(a)の値は、133に示すように「29/3」に更新される。また、セル113は、制御用の到着時刻ta'Aの値が、123に示すように「8」となり、133で示した理想送出時刻より早くセルが到着したことになる。このため、送出時刻to'Aの値は、303に示すように「10」となり、次セルの理想送出時刻tn'(a)の値は、134に示すように「41/3」となる。
【0028】一方、VPI/VCI=(b)のセル211、212の到着時刻taをそれぞれ「1」、「9」とすると、セル211は、制御用の到着時刻ta’Aの値が、221に示すように「1/3」であるから、送出時刻to'Aの値は、311に示すように「1」となり、次セルの理想送出時刻tn'(b)の値は、232に示すように「10/3」に更新される。また、次のセル212は、制御用の到着時刻ta'Aの値が、222に示すように「3」であり、232に示した理想送出時刻の値「10/3」より早いため、送出時刻to'Aの値は、312に示すように「4」となる。上述した送出時刻の値to'Aから、本実施例によれば、コネクション毎のピークセル間隔のみならず、VPI対応のピークセル間隔も申告されたコネクションの条件を満足することがわかる。
【0029】図9は、空き時刻検索部50と検索テーブル80の構成の1例を示す。81は、VPI対応の複数のテーブル領域81−1〜81−Nから構成されるVPI別検索テーブルであり、各テーブル領域は、セル送出時刻(送信タイムスロット)と対応した複数のビット領域からなり、そのVPIにとって各送出時刻が空き状態か塞がり状態かを示すフラグビットを記憶するようになっている。
【0030】82は、セル送出時刻と対応する複数のビット領域からなる全コネクション検索テーブルであり、コネクション全体で見た場合の各送出時刻の空き/塞がり状況をフラグビットで記憶するようになっている。これらの検索テーブルでは、例えば、送出時刻=iのタイムスロットで送出すべきセルがあれば、テーブルのiビット目に「1」がセットされる。
【0031】空き時刻検索部50では、送出時刻計算部40からバス6a、6bを介して送出時刻の値to'Aとピークセル間隔の値TAを受け取ると、第1検索部51によってVPI別検索テーブル81内のテーブル領域81−Aをアクセスし、送信時刻to'A以降に位置するタイムスロットの中から、フラグビットが「0」状態にある空き時刻tgo'Aを検索して、これを計算部52に渡す。計算部52は、上記時刻tgo'Aから送出タイムスロットを基準にした送出時刻to(=tgo'A×TA)を計算し、これを第2の検索部53に渡す。第2の検索部53は、上記送出時刻toに基づいて全コネクション検索テーブル82にアクセスし、時刻to以降のタイムスロットの中で空き状態にある送信時刻tgoを検索し、これをバス7を介してバッファ制御部60に通知する。
【0032】尚、上記テーブル領域81、82における空き状態を示すフラグビットの検索において、テーブルの先頭から順番に1ビットずつチェックする方式にすると、塞がりビットが多い場合に検索に時間がかかるため、数ビット分をまとめてフラグ情報を読み出し、プライオリティエンコーダ等を用いて一括検索すると良い。メモリアクセス回数を更に削減するためには、例えば、数ビット分のテーブル領域の空き塞がり状態を1ビットで表すブロック別状態表示レジスタを設ければ良い。例えば、メモリ82のjビット分を1ブロックにし、送出時刻iからi+jまでの全てのタイムスロットが塞がっている場合、レジスタ54のi/j番目に「1」をセットしておく。
【0033】図10は、ブロック別状態表示レジスタ54を適用した空き時刻検索動作の1例を示す。送出時刻の値がto'A=「6」、VPI対応のピークセル間隔の値がTA=「4」の場合、メモリ81−Aの6ビット目以降を検索し、「0」がセットされている最初のビット位置iを実送出時刻tgo'Aとする(矢印401)。この時、メモリ81−Aのiビット目を「1」に変更する。このようにして見つけたtgo'Aの値が、例えばi=「7」であったと仮定すると、計算部52では、上記値「7」にTA=「4」を掛け、to=「28」を算出する。次に、メモリ82の28ビット目以降を検索する(矢印402)。レジスタ54が、メモリ82の10ビット分を1ブロックとして、各ブロック毎の状態を記憶している場合、もし、メモリ82の29ビットまでの間に「0」状態のビットが見つからなければ、レジスタ54の30/10=3番目以降を検索する(矢印403)。図示した例では、レジスタ54の5番目のビットが「0」状態となているため、メモリ82の(5−1)×10=40ビット番目以降を検索し(矢印404)、最初の空きビット位置i(この例では「41」)をtgoの値とし、メモリ82のiビット目に塞がり状態を示すフラグ「1」を設定する。
【0034】なお、空き時刻検索によって生じるCDV(Cell Delay Variation)に対しても厳密にシェーピングを行ないたい場合には、実送出時刻tgoをVPIのピークセル間隔TAで割った値を第2パラメータテーブルの理想送出時刻tn1'(a)に設定し、第1検索テーブル81内にあるテーブル領域81−Aにおいて、上記値の小数部を切り上げた値と対応したビット位置でフラグを「1」に更新すればよい。
【0035】図11は、セルバッファ20とバッファ制御部60とセル出力リスト90の構成の1例を示す。セルバッファ20は、セル単位の複数のバッファ領域から構成され、書き込み動作はシーケンシャルに行われ、読み出し動作はランダムに行われる。バッファ制御部60は、上記セルバッファ20の書き込みアドレスを生成する書き込み制御部61と、セル出力リスト90にセルバッファ番号を登録する送出時刻登録部62と、セルバッファ20の読み出しアドレスを生成する読み出し制御部63とから構成される。セル出力リスト用メモリ90は、送出タイムスロット対応にバッファ番号を蓄積する。
【0036】回線4から入力セルを受信すると、書き込み制御部61が、図示しないカウンタから出力されるバッファ番号に従って、シーケンシャルな書き込みアドレスを生成し、入力セルをセルバッファ20に書き込む。送出時刻登録部62は、セル出力リスト90のうち、空きセル検索50からバス7を介して通知された時刻tgoと対応したにエントリ領域に、上記書き込みバッファ番号を登録する。例えば、tgo=「41」、書き込みバッファ番号=「17」の場合、セル出力リスト90の41番目のエントリにバッファ番号「17」が書き込まれる。読み出し制御部63は、送出タイムスロットに従って、セル出力リスト90からバッファ番号を読み取り(例えば、送出タイムスロット=「24」の場合、バッファ番号「4」が読み出される)、そのバッファ番号に応じて読み出しアドレスを生成し、セルバッファ20から1個のセルを読み出して回線5に送出する。
【0037】上記実施例では、VPI毎にピークセル送出間隔単位での各時刻の空き塞がり状況を1ビットで示す検索テーブルを用意し、送出時刻が競合した場合に空き時刻を検索するようにしているため、時刻競合時におけるCDV発生において厳密なシェーピングを行なうことができる。
【0038】図14は、図1に示したシェーピング回路の具体的な構成を示す。タイマ41は、入力回線4のインタフェース速度rでの1セル転送時間を単位として現在時刻taを示す。送出タイムスロット生成63aは、出力回線5のインタフェース速度r'での1セル転送時間を単位として、送出タイムスロット番号を生成する。セレクタ62は、R/W信号に応じて、書き込みアドレスと読み出しアドレスの切替を行なう。
【0039】まず、セル受信時の動作について説明する。回線4から入力セルを受信すると、カウンタ61aがカウントアップされ、WA生成回路61bが、上記カウンタ61aの値をバッファ20の書き込みバッファ番号として書き込みアドレスを生成し、受信セルをバッファ20に書き込む。この時、VPI識別回路31とVPI/VCI識別回路32が、上記入力セルのヘッダ部からVPIの値とVPI/VCIの値をそれぞれ識別する。上記VPI識別31から出力されたVPI値に基づいて、第1パラメータテーブル71からピークセル間隔Tが読み出され、割算回路42において、タイマ41aが示すセル到着時刻taをピークセル間隔Tで割って制御用の到着時刻ta’が算出される。また、上記VPI/VCI識別32から出力されたVPI/VCIの値に基づいて、第2パラメータテーブル72から理想送出時刻tn’が読み出され、比較器43が上記理想送出時刻tn’と到着時刻ta’を比較する。セレクタ44は、上記比較器の出力に応じて、もし、tn’<ta’であればta’を選択し、tn’≧ta’であればtn’を選択して、セル送出時刻to’とする。
【0040】上記VPI識別回路31から出力されたVPIに基づいて、セレクタ51aが、VPI別検索テーブル81−1〜81−Nの中から、VPI値に対応したテーブルをで選択する。上記テーブルの内容は、プライオイリティエンコーダ51bに入力され、セル送出時刻to’以降に位置したタイムスロットの中から、フラグビットが「0」状態となっている空き時刻tgo’が一括検索され、乗算回路52で識別VPI値に対応したピークセル間隔Tと掛け合わせることにより、送出タイムスロットを基準にした送出時刻toが算出される。
【0041】上記送出時刻toは、割算回路53aで全コネクション検索テーブルメモリ82の1ブロック分のビット数(スロット数)jで割り算される。割算回路53aから出力されるto/jの整数部の値を読み出しアドレスとして、全VPI/VCIメモリ82から1ブロックのデータが読み出され、プライオリティエンコーダ53dに入力される。また、割算回路53aの剰余分を示す値がプライオリティエンコーダ53dに入力され、プライオリティエンコーダ53dは、メモリ82から読み出された1ブロックのデータの中から、上記剰余値が示すビット以降でフラグビットが「0」となっている空きビット位置を一括検索する。1ブロックのデータ内に空きビットが存在しない場合は、ラッチ53eにイネーブル信号が保持され、セレクタ53bとセレクタ53cがそれぞれの選択入力を切替る。この結果、ブロック状態レジスタ54の中から、to/jの整数部が示すビット位置以降でフラグビットが「0」状態にあるビット位置がプライオリティエンコーダ53fで一括検索され、見つかった空きビット位置を読み出しアドレスとして、テーブルメモリ82から次の1ブロック分のデータが読み出され、プライオリティエンコーダ53dによって、再び空きビット位置が検索される。
【0042】このようにして、プライオリティエンコーダ53dによって空きビット位置が見つかると、空きビット位置を示す値は加算器53hに入力され、乗算器53gによって計算されたメモリ82の読み出しアドレスにjを掛けた値と加算され、実送出時刻tgoを示す値として出力される。上記実送出時刻tgoの値を書き込みアドレスとして、セル出力リスト90にカウンタ61aが示す書き込みバッファ番号が登録される。
【0043】また、プライオリティエンコーダ53dによって見つけられた空きビット位置は、デコーダ55aによってデコードされ、フラグ更新回路55bによって、全コネクション検索テーブル82の上記ビット位置にフラグビット「1」がセットされる。また、比較器55cで、上記ビット位置を含む1つのブロックのフラグビットが全て「1」となったか否かをチェックし、全て「1」の場合は、デコーダ55dによってテーブル82の読み出しアドレスをデコードし、フラグ更新回路55eによって、レジスタ54内の上記ブロックの属するビット位置のフラグを「1」に変更する。
【0044】加算器53hから出力された実送出時刻tgoは、割算器56aにも入力され、をtgoをVPIのピークセル間隔Tで割ることによって、理想送出時刻tn’が算出される。算出された理想送出時刻tn’はデコーダ56bに入力され、上記理想送出時刻tn’の値から小数部を切り上げた値と対応したビット位置がフラグ更新回路56cに入力され、VPI別検索テーブル81のうち入力セルのVPI値に対応したテーブルのフラグが更新される。また、割算器56aから出力されたtn’の値は、加算回路45にも供給され、上記tn’の値にVPI/VCIのピークセル間隔T’が加算されて、第2パラメータテーブル72の理想送出時刻の値が更新される。
【0045】セルの送出動作は次のようにして行われる。各送出タイムスロットにおいて、送出タイムスロット生成回路63aから送出タイムスロット番号が出力される。上記送出タイムスロット番号は、セレクタ62を介して、セル出力リスト90に読み出しアドレスとして与えられる。これによって、そのタイムスロットに登録されているバッファ番号がセル出力リスト90から読み出され、読み出しアドレス(RA)生成回路63bに供給される。RA生成回路63bは、上記バッファ番号に基づいて読み出しアドレスを生成して、バッファ20からりセルを読み出し、回線5に送出する。
【0046】
【発明の効果】以上の説明から明らかなように、本発明によれば、VPIとVCIの両方の申告パラメータを考慮し、例えば、VPIのピークセル送出間隔単位でVCI対応の申告パラメータを満たすように送出時刻を計算し、VPIの申告ピークレートを満たす送出時刻を算出することによって、VCI毎の申告トラヒックとVPI毎の申告トラヒックの両方を満足するシェーピング制御を実現することができる。
【図面の簡単な説明】
【図1】本発明によるATMインターフェイスの1実施例を示すブロック図。
【図2】本発明によるATMインタフェースの適用例を示すシステム構成図。
【図3】同一VPに属するセルを処理するためのATMインタフェースの機能構成を示すブロック図。
【図4】複数VPのセルを処理し、複数の出力回線に中継するためのATMインタフェースの機能構成を示すブロック図。
【図5】複数VPに属するセル処理し、1つの回線へ中継するATMインタフェースの機能構成を示すブロック図。
【図6】図1におけるパラメータテーブルの構成を示す図。
【図7】図1における送出時刻計算の1例を示すフローチャート。
【図8】シェーピング動作の1例を示す図。
【図9】図1における空き時刻検索部と検索テーブルの構成の1例を示す図。
【図10】図9における空き時刻検索の動作例を示す図。
【図11】図1におけるセルバッファと、バッファ制御部と、セル出力リストの構成の1例を示す図。
【図12】シェーピング機能の従来例を示す図。
【図13】従来のシェーピングにおける問題点を説明するための図。
【図14】図1のシェーピング回路の詳細構成の1例を示す図。
【符号の説明】
1…ATMインタフェース、10…シェーピング回路、20…セルバッファ、40…送出時刻計算部、50…空き時刻検索部、60…バッファ制御部、70…パラメータテーブル、80…検索テーブル、90…セル出力リスト。

【特許請求の範囲】
【請求項1】伝送路へのセルの送出間隔を制御するためのシェーピング方法であって、入力セルをバッファメモリに一時的に蓄積しておき、上記入力セルが属するグループの識別子と対応して予め申告されているトラヒック条件と、上記入力セルが属するサブグループの識別子と対応して予め申告されているトラヒック条件との両方の条件に応じて、該入力セルの送出時刻を決定する第1ステップと、上記セルの送出時刻を先着セルに割り当て済の送出時刻と比較し、もし、送出時刻が重なった場合は上記第1ステップで決定した送出時刻を修正した後、上記送出時刻と上記入力セルの識別情報との対応関係を記憶しておく第2ステップと、 上記第2ステップで記憶されたセル識別子と送出時刻の対応関係に基づいて、上記バッファメモリに蓄積されたセルを送出時刻順に読み出し、出力回線に送出する第3ステップとからなることを特徴とするシェーピング方法。
【請求項2】前記グループ識別子およびサブグループ識別子と対応するトラヒック条件が、それぞれ出力回線におけるピークセル間隔として記憶されていることを特徴とする請求項1に記載のシェーピング方法。
【請求項3】前記送出時刻が、出力回線における1セル転送時間を単位として時系列的に定義されたタイムスロットを示すことを特徴とする請求項1または請求項2に記載のシェーピング方法。
【請求項4】前記グループの識別子が仮想パスの識別子であり、前記サブグループの識別子が上記仮想パス上に多重化された仮想チャネルの識別子であることを特徴とする請求項1記載〜請求項3の何れかに記載のシェーピング方法。
【請求項5】伝送路へのセルの送出間隔を各セルが属するグループおよびサブグループ対応に制御するためのシェーピング方法であって、出力インタフェース速度で決まる1セル転送時間を1単位として、各グループ毎に申告ピーク速度に対応した第1のピークセル間隔を設定し、上記第1のピークセル間隔を1単位として、サブグループ毎の申告トラヒック速度に対応したパラメータを記憶しておき、セル到着時に、各セルの属するサブグループ対応のパラメータに基づいて、当該セルと対応する上記第1ピークセル間隔を1単位として相対セル送出時刻を求め、上記相対セル送出時刻から上記出力インタフェース速度で決まる1セル転送時間を1単位としたセル送出時刻を決定し、各セルを上記セル送出時刻に従って送出するようにしたことを特徴とするシェーピング方法。
【請求項6】前記パラメータが、前記サブグループ対応の申告ピーク速度に対応した第2のピークセル間隔を含み、セル到着時に、各セルの属するグループの前記第1のピークセル間隔を1単位としてセル到着時刻を求め、上記セル到着時刻と、該セルの属するサブグループにおける直前のセルの送出時刻と前記第2のピークセル間隔とに基づいて、前記相対セル送出時刻を決定することを特徴とする請求項5に記載のシェーピング方法。
【請求項7】前記相対セル送出時刻が、同一グループ内の他のサブグループに属するセルの相対セル送出時刻と競合した場合、当該セルの上記相対セル送出時刻以降に存在する空き状態の相対セル送出時刻を求めることを特徴とする請求項5または請求項6に記載のシェーピング方法。
【請求項8】前記相対セル送出時刻が、同一グループ内の他のサブグループに属するセルの相対セル送出時刻と競合した場合、当該セルの上記相対セル送出時刻以降に存在する当該グループ内で他セルと競合しない新たな相対セル送出時刻を求め、上記新たな相対セル送出時刻に対して求めたセル送出時刻が他のグループに属するセルの送出時刻と競合した場合、上記セル送出時刻以降に存在する他の空きセル送出時刻を求めることを特徴とする請求項5または請求項6に記載のシェーピング方法。
【請求項9】時刻と対応した複数のビット位置からなる第1ビットマップによって前記グループ毎に相対セル送出時刻の空き状態を記憶しておき、時刻と対応した複数のビット位置からなる第2ビットマップでセル送出時刻の空き状態を記憶しておき、相対セル送出時刻が競合した場合、そのセルが属したグループ対応の第1ビットマップを参照して、上記相対セル送出時刻に対応するビット位置以降に存在する空き状態のビットを検索し、該ビットに対応する時刻を相対セル送出時刻として求め、セル送出時刻が競合した場合、上記第2ビットマップを参照して上記セル送出時刻に対応するビット位置以降に存在する空き状態のビットを検索し、該ビットに対応する時刻をセル送出時刻として求めることを特徴とする請求項5〜請求項8の何れかに記載のシェーピング方法。
【請求項10】前記第1ビットマップまたは第2ビットマップに対応したレジスタを備え、各ビットマップ内の複数ビットを1ブロックとして、各ブロックの状態を上記レジスタで記憶しておき、上記レジスタを参照して、第1ビットマップまたは第2ビットマップにおける参照範囲を特定するようにしたことを特徴とする請求項9に記載のシェーピング方法。
【請求項11】前記第1ビットマップまたは第2ビットマップの所定のブロック内で空き時刻を検索し、該ブロック内に空き時刻が存在しなかった場合に前記レジスタを参照して、第1ビットマップまたは第2ビットマップにおける次の参照範囲を特定するようにしたことを特徴とする請求項10に記載のシェーピング方法。
【請求項12】前記グループが仮想パス、前記サブグループが仮想パス上に多重化された仮想チャネルであることを特徴とする請求項5〜請求項11の何れかに記載のシェーピング方法。
【請求項13】出力線へのATMセルの送出を各セルが属するグループおよびサブグループ対応に制御するためのシェーピング機能を備えたATMインターフェイスであって、 入力線から入力された複数のATMセルを一時的に蓄積するためのバッファメモリと、上記バッファメモリへのセルの書き込みと、該バッファメモリから上記出力線へのセルの読み出しを行うための制御手段とを備え、上記制御手段が、上記出力線におけるセル速度で決まる1セル転送時間を1単位として、各グループ毎に申告ピーク速度に対応して求められた第1のピークセル間隔と、上記第1のピークセル間隔を1単位として、サブグループ毎の申告トラヒック速度に対応して求められた制御パラメータとを記憶するためのテーブル手段と、上記入力線からセルが到着した時、上記テーブル手段に記憶された当該セルの属するサブグループ対応の制御パラメータに基づいて、当該セルと対応する上記第1ピークセル間隔を1単位として相対セル送出時刻を求め、上記相対セル送出時刻から上記出力線のインタフェース速度で決まる1セル転送時間を1単位としたセル送出時刻を決定し、上記バッファメモリに蓄積された各セルを上記セル送出時刻に従って上記出力線に読み出すためのアクセス手段とを有することを特徴とするATMインターフェイス。
【請求項14】前記相対セル送出時刻とセル送出時刻が、前記出力線の帯域によって決まるタイムスロットの1つを指定することを特徴とする請求項13に記載のATMインターフェイス。
【請求項15】前記制御手段が、前記出力線上のタイムスロットと対応させて、前記バッファメモリから読み出すべきセルを指定する情報を記憶するためのメモリ手段を有し、 前記アクセス手段が、上記メモリ手段を参照して、前記バッファメモリから各タイムスロットに対応したセルを読み出すことを特徴とする請求項14に記載のATMインターフェイス。
【請求項16】前記制御手段が、前記グループ毎に相対セル送出時刻の空き状態を記憶するための前記タイムスロットと対応した複数のビット位置からなる第1ビットマップと、前記セル送出時刻の空き状態を記憶するための前記タイムスロットと対応した複数のビット位置からなる第2ビットマップとを有し、相対セル送出時刻が競合した場合、そのセルが属したグループ対応の第1ビットマップを参照して、上記相対セル送出時刻に対応するビット位置以降に存在する空き状態のビットを検索し、該ビットに対応する時刻を相対セル送出時刻として求め、セル送出時刻が競合した場合、上記第2ビットマップを参照して上記セル送出時刻に対応するビット位置以降に存在する空き状態のビットを検索し、該ビットに対応する時刻をセル送出時刻として求めることを特徴とする請求項13〜請求項15の何れかに記載のATMインターフェイス。
【請求項17】前記制御手段が、前記第1ビットマップまたは第2ビットマップ内の複数ビットを1ブロックとして、各ブロックの状態を記憶するためのレジスタ手段を備え、 上記レジスタ手段を参照して、前記第1ビットマップまたは第2ビットマップにおける参照範囲を特定するようにしたことを特徴とする請求項16に記載のATMインターフェイス。
【請求項18】出力線へのATMセルの送出間隔を制御するためのシェーピング機能を備えたATMインターフェイスであって、入力線から入力された複数のATMセルを一時的に蓄積するためのバッファメモリと、上記バッファメモリへのセルの書き込みと、該バッファメモリから上記出力線へのセルの読み出しを行うための制御手段とを備え、上記制御手段が、入力セルの属するグループ別およびサブグループ別に予め申告されたトラヒック条件に対応して求められた制御パラメータを記憶するための第1のテーブル手段と、上記出力線上でのタイムスロット対応に空き状態を記憶するための第2のテーブル手段と、上記入力線からセルが到着した時、上記第1のテーブル手段に記憶された当該セルの属するグループおよびサブグループ対応の制御パラメータに基づいて、当該セルの送出タイミングを求め、上記第2のテーブル手段を参照して、上記送出タイミングと対応させるべき空き状態の送出タイムスロットを決定し、上記バッファメモリに蓄積された該当セルを上記送出タイムスロットのタイミングで上記出力線に読み出すためのアクセス手段とを有することを特徴とするATMインターフェイス。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図5】
image rotate


【図12】
image rotate


【図4】
image rotate


【図6】
image rotate


【図7】
image rotate


【図8】
image rotate


【図13】
image rotate


【図9】
image rotate


【図10】
image rotate


【図11】
image rotate


【図14】
image rotate