JP3561870B2 - パケットバッファ装置 - Google Patents
パケットバッファ装置 Download PDFInfo
- Publication number
- JP3561870B2 JP3561870B2 JP04178599A JP4178599A JP3561870B2 JP 3561870 B2 JP3561870 B2 JP 3561870B2 JP 04178599 A JP04178599 A JP 04178599A JP 4178599 A JP4178599 A JP 4178599A JP 3561870 B2 JP3561870 B2 JP 3561870B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- individual
- packet
- buffers
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5652—Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5672—Multiplexing, e.g. coding, scrambling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、論理チャネル多重されたATMセルを、パケットに組立て、パケット単位に蓄積して出力するパケット転送モジュールにおけるパケットバッファ装置に関し、特に、共通バッファを使用するべストエフォート(最善努力)型パケット転送サービス等と、個別バッファを使用するギャランティー(帯域保証)型パケット転送サービス等とが混在するネットワークのパケット転送モジュールにおけるパケットバッファ装置に関する。
【0002】
図24は、本発明のパケットバッファ装置が適用されるパケット転送モジュールのネットワーク上の配置位置を示す。パケット転送モジュール24−1は、ATMネットワーク内に配置され、相互に接続されるとともに、多重装置24−2を介してユーザネットワークのルータ24−3と接続される。
【0003】
各パケット転送モジュール24−1と多重装置24−2とルータ24−3とは、非同期転送モード(ATM:Asynchronous Transfer Mode)のインタフェースにより接続され、各ユーザネットワークから送信されたパケットは、ルータ24−3においてATMアダプテーションレイヤタイプ5(以下、AALタイプ5と記す。)等のプロトコルによりATMセル化され、更に、多重装置24−2において複数ユーザのATMセルの多重化が行われ、パケット転送モジュール24−1へ入力される。
【0004】
パケット転送モジュール24−1は、入力されたATMセルからパケットを組み立て、パケットヘッダ内の相手先アドレス情報に従い、該相手先ユーザネットワークを収容する他のパケット転送モジュール、又は自パケット転送モジュールに収容されている相手先ユーザネットワークへ向けて、パケットを転送する。
【0005】
図25は、本発明のパケットバッファ装置が適用されるパケット転送モジュールの構成図である。パケット転送モジュール25−10には、他のパケット転送モジュール又は多重装置から、論理チャネル単位に多重化されたATMセルが、回線を介して入力される。ここで、論理チャネルは、仮想チャネル識別子(VPI/VCI)等により識別されるチャネルである。
【0006】
物理終端装置25−11は、入出力するATMセルの物理レイヤの終端を行い、ATM終端装置25−12は、入出力するATMセルのATMレイヤの終端を行い、AALタイプ5終端装置25−13は、入出力するATMセルのAALタイプ5の終端を行う。なお、AALタイプ5終端装置25−13は、他のATMアダプテーションレイヤタイプ、例えばタイプ3又はタイプ4の終端装置であってもよい。
【0007】
パケットバッファ装置25−14は、例えばAALタイプ5のプロトコルに従い、ATMセルヘッダのペイロードタイプ表示情報を基に、論理チャネル毎にパケット最終データのATMセルを識別し、これまで受信したATMセルからパケットを組み立てる。そして、相手先情報等を含むパケットヘッダ情報を上位レイヤ装置25−15へ出力する。
【0008】
上位レイヤ装置25−15は、入力したパケットから転送先を検索し、その処理結果をパケットバッファ装置25−14へ返送する。パケットバッファ装置25−14は、上位レイヤ装置24−15から指示された転送先への論理チャネルに変換し、組み立てたパケットのATMセルをパケット単位に出力する。
【0009】
パケット転送モジュールの制御部25−16は、前述のパケット転送モジュール内の各装置の初期設定や状態管理等を行なう。パケット転送モジュール25−10から出力されるATMセルは、パケット単位に多重されて出力される。
【0010】
【従来の技術】
従来のパケットバッファ装置は、論理チャネルが割り当てられた全ての加入者からのATMセルを、一つの共通バッファリソースに格納する共通バッファを用いるものか、又は各加入者からのATMセルを、各論理チャネル毎に予め割り当てた一定容量の個別バッファリソースに固定的に格納する個別バッファを用いるものであった。
【0011】
図26は共通バッファを用いたパケットバッファ装置の動作説明図である。図に示すように、チャネルA,B,C,Dの複数の論理チャネルの多重化されたATMセルが入力されると、パケットバッファ装置は、各論理チャネルに共通のバッファメモリ26−1にそれらのATMセルをパケット単位に格納する。
【0012】
今、共通バッファのバッファメモリ26−1に、チャネルAのATMセルが多数入力され、チャネルAのバッファメモリ使用数が増大し、バッファメモリ26−1の空容量が不足すると、他のチャネル、例えば、チャネルDのパケットが廃棄される。
【0013】
図27は個別バッファを用いたパケットバッファ装置の動作説明図である。図に示すように、チャネルA,B,Cの複数の論理チャネルの多重化されたATMセルが入力されると、パケットバッファ装置は、バッファメモリ27−1内の各チャネルA,B,C,D,E専用の個別バッファにそれらのATMセルを格納する。
【0014】
個別バッファを用いたものは、チャネル間の輻輳の影響を及ぼし合うことはないが、例えば、図に示すように、チャネルD及びチャネルEの個別バッファが空いているにもかかわらず、チャネルA又はチャネルBの個別バッファが輻輳した場合、それらのチャネルのパケットは廃棄されることとなる。
【0015】
【発明が解決しようとする課題】
共通バッファを用いたパケットバッファ装置は、バッファ輻輳時のパケット廃棄処理において、優先度の高いギャランティー型パケット転送サービスのパケットと、優先度の低いべストエフォート型パケット転送サービスのパケットとを区別していないため、転送サービスのサービスグレードに応じた廃棄処理の差別化をすることができない。
【0016】
一方、個別バッファを用いたパケットバッファ装置は、或る個別バッファリソースに容量不足した場合、他の個別バッファリソースに空が有るにもかかわらず、容量不足となった個別バッファのパケットは廃棄されてしまい、バッファリソースが有効に利用されず、べストエフォート型パケット転送サービスを効率良く提供することができないといった問題点があった。
【0017】
近年、IP(Internet Protocol )パケット等を転送するATMネットワークにおいて、パケット転送の高速化・高多重化とともに、転送サービスグレードの多品種化が進み、そのようなパケット転送サービスに対応するには、バッファリソースを最適に利用し、かつ、バッファリソースを転送サービスグレードに応じて選り分けて使用するパケットバッファ装置が必要となる。
【0018】
本発明は、共通バッファと個別バッファとを動的に構築し、それぞれのバッファ量を最適に配分し、収容加入者にサービス形態の異なる加入者が混在する場合でも、サービス形態の異なる加入者のパケットを、それぞれ種別の異なるバッファへ選別して振り分け、サービス形態に対応したパケット転送サービスを可能にするとともに、バッファリソースの最適利用を図ることを目的とする。
【0019】
【課題を解決するための手段】
本発明のパケットバッファ装置は、(1)複数の論理チャネルにより多重されて入力されるATMセルを格納し、論理チャネル毎のATMセルをパケットに組み立て、該パケットを出力するパケットバッファ装置において、共通バッファから個別バッファを分離して生成させ、又は個別バッファを共通バッファに開放して共通バッファに結合させる個別バッファ生成制御部と、入力されたATMセル毎に、該ATMセルを格納するバッファ種別を判定する個別バッファ判定部と、前記個別バッファ判定部により判定されたバッファ種別に応じて、入力されたATMセルを、共通バッファ又は個別バッファへ振り分けて格納させるパケットバッファ制御部とを備え、個別バッファの使用数に応じて、個別バッファを動的に構築し、パケットの種別に応じて、異なる種別のバッファリソースを使用させる構成を有するものである。
【0020】
また、(2)前記個別バッファ判定部は、個別バッファの種別と該個別バッファを使用するATMセルの論理チャネルとの対応を設定する対象論理チャネル設定部と、入力されたATMセルの論理チャネルと、前記対象論理チャネル設定部に設定された論理チャネルとを比較し、合致した場合に、対応する種別の個別バッファを指定するバッファ種別情報を出力し、合致しなかった場合に、共通バッファを指定するバッファ種別情報を出力する比較部とを備え、前記対象論理チャネル設定部に設定された論理チャネルのATMセルを、種別の異なる個別バッファへ振り分ける構成を有するものである。
【0021】
また、(3)前記対象論理チャネル設定部に、各個別バッファの種別毎に設定された論理チャネルの判定対象ビットを指定するビット指定部を備え、前記比較部は、入力されたATMセルの論理チャネルの判定対象ビットのみを比較し、合致した場合に、対応する種別の個別バッファを指定するバッファ種別情報を出力し、合致しなかった場合に、共通バッファを指定するバッファ種別情報を出力する構成を有するものである。
【0022】
また、(4)前記対象論理チャネル設定部に、各個別バッファの種別毎にATMセル又はパケットの優先度を示す情報を設定する優先度情報設定部を備え、前記比較部は、入力されたATMセル又はパケットの優先度を示す情報と、前記優先度情報設定部に設定された優先度情とを比較し、比較結果に応じて異なるバッファ種別情報を出力する構成を有するものである。
なお、上記優先度を示す情報として、ATMセルのセル損失優先表示(CLP:Ce11 Loss Priority )又はIPv6パケットのPriority情報を用いることができる。
【0023】
また、(5)前記パケットバッファ装置は、バッファ種別毎に、チェーンにより連結する空きバッファの先頭ポインタ、最終ポインタ及び空きバッファ数を保持する空きバッファポインタと、バッファ毎に、チェーンにより連結する空きバッファの次バッファアドレス及びバッファ種別を保持するバッファ管理部とを備え、前記パケットバッファ制御部は、前記個別バッファ判定部からのバッファ種別情報に従い、そのバッファ種別の空きバッファからバッファを順次獲得し、パケット組み立ての制御を行う構成を有するものである。
【0024】
また、(6)前記パケットバッファ制御部は、個別バッファを獲得する際に、該個別バッファの空きバッファポインタに保持された空きバッファ数を読み出し、獲得する空きバッファが無いと判定した場合、共通バッファの空きバッファからバッファを獲得し、パケット組み立ての制御を行う構成を有するものである。
【0025】
また、(7)前記パケットバッファ制御部は、前記個別バッファ生成制御部からの個別バッファの増加指示を判定する手段を備え、増加指示が有る場合、共通バッファの空きバッファから獲得したバッファに対応するバッファ管理部内に保持されるバッファ種別を、当該個別バッファを指定するバッファ種別に書き換え、共通バッファから獲得したバッファ数分を、個別バッファに変更させる制御を行う構成を有するものである。
【0026】
また、(8)前記個別バッファ生成制御部は、個別バッファのバッファ数を指定する個別バッファ総数指定部と、個別バッファのバッファ数をカウントするバッファ数カウンタと、バッファの構築を指示するバッファ構築指示部と、個別バッファの生成、開放、増加又は減少を管理する管理部とを備え、ATMセル出力後のバッファ開放処理時に、該バッファが共通バッファでかつバッファ構築指示があった場合、該バッファのバッファ管理部内のバッファ種別をバッファ構築指示があったバッファ種別に書き換え、該バッファ種別のバッファ数カウンタに1を加算し、該バッファ数カウンタがその個別バッファ総数指定値まで達した場合に、バッファ構築指示をオフにし、バッファ開放時に、指定されたバッファ総数の個別バッファの生成又は指定されたバッファ数までの個別バッファの増加を行う構成を有するものである。
【0027】
また、(9)前記個別バッファ生成制御部は、バッファ開放を指示するバッファ開放指示部を備え、ATMセル出力後のバッファ開放処理時に、該バッファが個別バッファでかつバッファ開放指示があった場合、該バッファのバッファ管理部内のバッファ種別を、共通バッファのバッファ種別に書き換え、該バッファ種別のバッファ数カウンタから1を減算し、該バッファ数カウンタがその個別バッファ総数指定値まで達した場合に、バッファ開放指示をオフにし、バッファ開放時に、個別バッファの開放又は指定されたバッファ総数までの減少を行う構成を更に有するものである。
【0028】
また、(10)前記個別バッファ生成制御部は、個別バッファ数の最適化処理の周期を設定する調整間隔タイマを備え、更に、各個別空きバッファポインタは、空きバッファ数の最低値を保持する空きバッファ数最低値保持部を備え、前記個別バッファ生成制御部の管理部は、調整間隔タイマに設定した周期で、空バッファ数最低値を読み出し、個別バッファ総数指定部から読み出した値から前記空バッファ数最低値を減算し、その値を個別バッファ総数指定部に設定し、バッファ開放指示をオンにする構成を有し、前記最適化処理の周期の期間に使用されなかった数の個別バッファを共通バッファへ開放する構成を有するものである。
【0029】
また、(11)前記個別バッファ生成制御部は、個別バッファ数の最適化処理の周期を設定する調整間隔タイマと、個別バッファ数の最適化処理を行うか否かを決定するための空きバッファ数最低値のしきい値を設定するしきい値指定部と、開放するバッファ数を設定する開放数指定部とを備え、更に、各個別空きバッファポインタは、空きバッファ数の最低値を保持する空きバッファ数最低値保持部を備え、前記個別バッファ生成制御部の管理部は、読み出した空きバッファ数最低値が、前記しきい値より大きい場合に、個別バッファ総数指定部から読み出した値から前記開放数指定部の設定値を減算し、その値を個別バッファ総数指定部に設定し、バッファ開放指示をオンにする構成を有し、前記最適化処理の周期の期間に使用されなかった数がしきい値より大きい場合に、前記開放数指定部に設定した指定数のバッファを共通バッファへ開放する構成を有するものである。
【0030】
【発明の実施の形態】
図1は、本発明のパケットバッファ装置の構成図である。同図において、1−10はパケットバッファ装置、1−11は個別バッファ判定部、1−12はパケットバッファ制御部、1−13はバッファ管理部、1−14はバッファメモリ、1−15は共通空きバッファポインタ、1−16は個別バッファ生成制御部、1−17は個別空きバッファポインタ、1−18はパケット組み立てポインタ、1−19はパケット出力待ちポインタ、1−20は出力制御部、1−21はチャネル変換部、1−30はAALタイプ5終端装置である。
【0031】
AALタイプ5終端装置1−30から複数の論理チャネル多重のATMセルがパケットバッファ装置1−10に入力されると、個別バッファ判定部1−11は、ATMセルヘッダ等の情報を基に、該ATMセルが使用するバッファ種別(共通バッファか又はどの個別バッファか)を判定し、該バッファ種別情報をATMセルに付加して、パケットバッファ制御部1−12へ出力する。
【0032】
パケットバッファ制御部1−12は、バッファ種別情報に従い、バッファ種別情報が共通バッファであれば、共通空きバッファポインタ1−15示すバッファメモリ1−14内の空きバッファの領域を獲得し、またバッファ種別情報が個別バッファであれば、個別空きバッファポインタ1−17が示すバッファメモリ1−14内の空きバッファの領域を獲得し、セルデータを該空きバッファに書き込む。
【0033】
そして、書き込んだバッファ領域のアドレスを、パケット組み立てポインタ1−18が示すパケット組み立て中のバッファアドレスにリンクさせ、バッファメモリ1−14内に論理チャネル単位にバッファアドレスのリンクを編成してパケットを組み立てながらセルデータを格納する。
【0034】
パケットバッファ制御部1−12は、パケット組み立てが完了し、かつ上位レイヤへ該パケットのヘッダ情報を渡して上位レイヤからの処理完了通知を受けたことを契機に、該パケットをパケット出力待ちポインタ1−19へリンクさせる。
【0035】
出力制御部1−20は、パケット出力待ちポインタ1−19の出力待ち状態を監視し、出力待ち状態のパケットが有れば、パケット出力待ちポインタ1−19が示すバッファメモリ1−14のアドレスからセルデータを読み出し、パケット単位にセルを出力する。
【0036】
個別バッファ生成制御部1−16は、出力完了のセルを格納していたバッファを元の種別の空きバッファへ開放するか、又は、設定情報に従い、個別バッファを生成し、増加し若しくは減少させる制御を行なう。
【0037】
チャネル変換部1−21は、バッファメモリ1−4から読み出して出力するセルの論理チャネルを、上位レイヤから指示された論理チャネルへ変換し、該セルデータをAALタイプ5終端装置1−30へ出力する。
【0038】
バッファ管理部1−13は、1セルデータ分のバッファのセグメント毎に管理部を備え、各管理部はそれぞれ、バッファのリンク情報部、バッファ種別情報部及び転送制御情報部の記憶部を有し、バッファのリンク情報部には次バッファアドレスが書き込まれ、バッファ種別情報部には該バッファが共通バッファに属するかどの個別バッファに属するかが書き込まれ、転送制御情報部にはパケット長(バッファ数)、上位レイヤ処理完了フラグ、出力チャネル番号、ヘッダ付加・削除情報が書き込まれる。
【0039】
バッファ管理部1−13は、メモリ素子により構成され、図1に示すように、バッファメモリ1−14とは別の独立したメモリ素子として構成してもよいし、また、バッファメモリ1−14と同一のメモリ素子内に設けてもよい。
【0040】
このように、本発明のパケットバッファ装置1−10は、個別バッファ判定部1−11が、入力セルの使用するバッファ種別を判定し、パケットバッファ制御部1−12は、その判定されたバッファ種別の空きバッファポインタの情報により、そのバッファ種別の空バッファを獲得する。
【0041】
そのため、入力セルデータをそれぞれ、論理チャネル等のサービスグレードに応じて、種別の異なるバッファに振り分けてバッファメモリ1−14に格納することができし、そして、パケット組立ポインタ1−18とバッファ管理部1−13とにより、1セル分のデータを格納するバッファを順次チェーンで連結し、パケット単位に組み立てる。
【0042】
パケットバッファ制御部1−12は、パケット組み立てが完了し、出力可能な状態になったパケットを、パケット出力待ちポインタ1−19へリンクし、出力制御部1−20は、パケット出力待ちポインタ1−19の情報に基づいてパケット単位に1セルずつバッファメモリ1−14から読み出して出力する。
【0043】
更に、個別バッファ生成制御部1−16は、パケット(セル)出力後のバッファ開放時に、設定情報に従い、共通バッファへの返却、個別バッファの生成、増加又は減少の制御を行い、また設定周期によりバッファ配分量の最適化処理を行う。
【0044】
本発明のパケットバッファ装置によれば、共通バッファと個別バッファとを動的に構築し、サービス形態の異なるパケットに、それぞれ種別の異なるバッファを使用し、サービスグレードに応じて廃棄処理等を差別化することができる。また、個別バッファの配分量をバッファ使用状況に応じて最適化し、バッファリソースを効率良く使用することができる。
【0045】
図2及び図3は、本発明のパケットバッファ装置の動作説明図である。図2及び図3において、チャネルA,B,C,Dの多重された複数の論理チャネルのATMセルが入力されるものとする。
【0046】
図2はバッファメモリを共通バッファとして使用する場合のセルデータの格納状況を示し、図3はバッファメモリを共通バッファと個別バッファとに分割して使用する場合のセルデータの格納状況を示している。
【0047】
図2に示すように、バッファメモリ1−14を共通バッファのみとして使用する場合、各チャネルA,B,C,Dのセルデータは、同一のメモリリソースに格納される。この動作は前述した図26の動作と同様である。
【0048】
図3に示すように、バッファメモリ1−14を共通バッファと個別バッファとに分割して使用する場合、例えばチャネルAのパケット等のように特定のパケットのみが個別バッファを使用し、その他のチャネルのパケットは共通バッファを使用するようにすることができる。
【0049】
なお、共通バッファと個別バッファとを併用する場合、先ず、個別バッファの生成を行う。個別バッファの生成は、マイクロプログラム等により設定される所定数のバッファセグメントを、共通バッファより切り離し、該所定数のバッファセグメントを、或る特定の論理チャネル等の特定のパケットのセルのみが格納される個別バッファとして構成する。個別バッファは、種別の異なるパケット対応に、同時に複数生成することができる。
【0050】
図4は、本発明のパケットバッファ装置における入力データ及び出力データの説明図である。同図は、論理チャネルA,B,Cのパケット4−1, 4−2, 4−3が、ATMセルとして論理チャネルにより多重されて、パケットバッファ装置1−10に入力され、パケットバッファ装置1−10は、入力されたATMセルをパケットに組み立て、上位レイヤの指示により、論理チャネルX,Y,Zのセル4−5, 4−6, 4−7として、パケット単位に多重して出力する例を示している。
【0051】
図の(a)は各送信元のパケットを示し、各送信元から論理チャネルA,B,Cにより、それぞれのパケットが転送されて来る。図の(b)は、各パケットがATMセル化される様子を示し、論理チャネルAのパケットは、先頭セルA1から最終セルAEのセルにセル化され、論理チャネルBのパケットは、先頭セルB1から最終セルBEのセルにセル化され、論理チャネルCのパケットは、先頭セルC1から最終セルCEのセルにセル化される。
【0052】
各セルA1〜AE,B1〜BE,C1〜CEは、図の(c)に示すように、論理チャネルにより多重されて転送され、パケットバッファ装置1−10には到着順にそれらのセルが入力される。
【0053】
パケットバッファ装置1−10は、各論理チャネル毎に、入力されたセルのうち、パケットの最終データを含む最終セルを、AALタイプ5のプロトコルのペイロードタイプ表示情報により認識し、パケット最終表示信号EOMを抽出する。
【0054】
また、パケットバッファ装置1−10は、各論理チャネルについて、最終セルの認識を行うとともに、最終セルの次に入力されたセルをパケットの先頭データを含む先頭セルとして認識し、パケット先頭表示信号BOMを抽出する。
【0055】
パケットバッファ装置は、パケット先頭表示信号BOMとパケット最終表示信号EOMとを基にパケットを組み立て、各パケット単位にセルをまとめて多重(パケット多重)し、上位レイヤからの指示によりそれぞれ論理チャネルX,Y,Zとしてセルを出力する。
【0056】
図の(d)はパケット多重により出力されるセルの様子を示している。セルX0,X1,X2・・・XEは、論理チャネルAのパケットを論理チャネルXに変換して出力する例を示し、その際、ユーザから送信されたパケットを網内に転送する場合等のように、網内転送用のヘッダセルX0を付加して出力する例を示している。
【0057】
セルY1,Y2・・・YEは、論理チャネルBのパケットを論理チャネルYに変換して出力する例を示し、その際、ユーザから送信されたパケットをユーザに転送する場合等のように、ヘッダセルを保存したまま出力する例を示している。
【0058】
セルZ1・・・ZEは、論理チャネルCのパケットを論理チャネルZに変換して出力する例を示し、その際、網からユーザにパケットを転送する場合等のように、網内で付加されたヘッダセルZ0(図示省略)を削除して出力する例を示している。
【0059】
図5、図6及び図7は、本発明の個別バッファ判定部によるバッファ種別の判定の説明図である。図5は、ATMセルの論理チャネルに従ってバッファ種別を判定する構成を示している。
【0060】
図5に示す個別バッファ判定部1−11は、対象論理チャネル設定部5−11と比較部5−12とにより構成される。対象論理チャネル設定部5−11は、判定対象となる論理チャネルを設定し、各個別バッファのバッファ種別(#0,#1,#2・・・)毎に、そのバッファ種別を使用する論理チャネルの番号を設定する。
【0061】
比較部5−12は、入力されたATMセルの論理チャネルの番号と対象論理チャネル設定部5−11に設定された論理チャネルの番号とを比較し、合致した場合にそのバッファ種別情報をATMセルとともに出力する。
【0062】
図5に示す動作例では、対象論理チャネル設定部5−11のバッファ種別#0に論理チャネルAの番号、バッファ種別#1に論理チャネルBの番号を設定している。この場合、入力されたセルの論理チャネルAとBのセルについては、比較部5−12において合致が検出され、論理チャネルAのセルにはバッファ種別情報#0が、論理チャネルBのセルにはバッファ種別情報#1が付加されて出力される。
【0063】
論理チャネルC,Dの入力セルは、その論理チャネルの番号が対象論理チャネル設定部5−11に設定されたものと合致しないため、比較部5−12はバッファ種別情報として共通バッファの種別情報を付加して出力する。
【0064】
図6は、論理チャネル群に応じてバッファ種別を判定する個別バッファ判定部の構成例を示している。対象論理チャネル設定部6−11は、論理チャネルの番号のビット指定機能と、各個別バッファのバッファ種別(#0,#1,#2・・・)毎にそのバッファ種別を使用する論理チャネルの番号を設定機能とを備える。
【0065】
そして、比較部6−12は、入力されたATMセルの論理チャネルの番号と対象論理チャネル設定部6−11に設定された論理チャネルの番号とを、指定されたビット(例えば上位4ビット)について比較し、合致した場合にそのバッファ種別情報をATMセルとともに出力する。
【0066】
このようなビット指定機能により、一つのバッファ種別の個別バッファを、複数の論理チャネルの群で共有して使用することができる。図6に示す動作例では、ビット指定部に‘11110000’(b:バイナリ表示)を設定し、対象論理チャネル番号の上位4ビットについて判定するように指定する。
【0067】
この場合、論理チャネル番号の上位4ビットが‘0001’である論理チャネルAと論理チャネルBとがバッファ種別#0を使用し、上位4ビットが‘1000’である論理チャネルCがバッファ種別#1を使用し、論理チャネルDは、その上位4ビットが対象論理チャネル設定部6−11に設定されたいずれの番号とも合致せず、共通バッファを使用することとなる。
【0068】
図7は、論理チャネル群とセル損失優先表示情報に応じてバッファ種別を判定する個別バッファ判定部の構成例を示している。図7に示す個別バッファ判定部1−11の対象論理チャネル設定部7−11は、前述したビット指定による論理チャネル群の指定とともに、セル損失優先表示(CLP)ビットによるバッファ種別の指定を行う。セル損失優先表示(CLP)ビットは、ATMセルへッダに設定され、輻輳時に優先的に廃棄するセルには1が表示される。
【0069】
比較部7−12では、論理チャネル番号の指定ビットと併せてセル損失優先表示(CLP)ビットも比較する。この構成により、同一の論理チャネル群内でも、優先セル(パケット)と非優先セル(パケット)とを選別し、それぞれに異なるバッファ種別を割り当てることができる。
【0070】
なお、セル損失優先表示(CLP)ビットの比較によるバッファ種別の選り分けは、図4に示した論理チャネル番号の全ビットの比較に応じてバッファ種別を判定する個別バッファ判定部に適用することもできる。
【0071】
図7に示す動作例において、論理チャネルAと論理チャネルBとでは、指定ビット(上位4ビット)がバッファ種別#0の設定値と同一で、同一の論理チャネル群となるが、論理チャネルBはセル損失優先表示(CLP)ビットが‘1’であるため、バッファ種別#0に設定された値と合致せず、論理チャネルBは共通バッファを使用し、論理チャネルAは、バッファ種別#0に設定されたセル損失優先表示(CLP)ビットと合致し、バッファ種別#0を使用することとなる。
【0072】
また、論理チャネルCは、バッファ種別#1に設定された論理チャネル番号の指定ビットと合致するが、セル損失優先表示(CLP)ビットが合致せず、共通バッファを使用することとなる。論理チャネルDは、バッファ種別#0,#1に設定された論理チャネル番号のいずれにも合致せず、共通バッファを使用することとなる。
【0073】
又、セルの優先度を示すセル損失優先表示(CLP)に代えて、セルのペイロード内のIPv6(Internet Protocol version6)のプロトコルによるパケットへッダ内のPriorityビットを用いてもよい。更に、その他の情報要素、例えばIPパケットのIPアドレス等と組み合わせてバッファ種別の判定を行うようにすることもできる。
【0074】
図8及び図9は本発明のパケットバッファ装置の初期状態の説明図である。図8はバッファメモリを共通バッファとしてのみ使用する場合の初期状態を示し、図9はバッファメモリを共通バッファと個別バッファとに分割して使用する場合の初期状態を示している。
【0075】
いずれの場合でも、バッファメモリ1−14は、n個のバッファセグメント#1〜#nを備え、各バッファセグメント#1〜#nは、1セル分のデータの格納が可能な容量を有する。以下、バッファセグメントを単にバッファと称す。
【0076】
図8に示すようにバッファメモリ1−14を共通バッファとして使用する場合、共通空きバッファポインタ1−15内の先頭ポインタは、先頭の空バッファ#1を示し、最終ポインタは最後尾の空バッファ#nを示す。空きバッファ数はnである。
【0077】
バッファ種別(#0,#1・・・)毎の各個別空バッファポインタ1−17は、それぞれの個別バッファの先頭ポインタ、最終ポインタ、空きバッファ数を格納する領域を有するが、図8の構成例は個別バッファを使用しない例であるため、それらの領域には未使用情報が格納される。
【0078】
バッファメモリ1−14内の各バッファ#1〜#nは、各バッファ対応のバッファ管理部1−13により管理され、バッファ管理部1−13は各バッファ対応に、次バッファアドレス、バッファ種別、転送制御情報を保持する記憶部を備える。
【0079】
次バッファアドレスは、それぞれ、複数のバッファを連結するための連結先のバッファアドレスを示し、これにより、複数のバッファが順次リンクされ、相互に連結される。
【0080】
バッファ種別は、該バッファが共通バッファに属するか、どの個別バッファ(#1,#2・・・#3)に属するかを示す情報である。転送制御情報は、パケット長(バッファ数)、上位レイヤ処理完了フラグ、出力チャネル番号、ヘッダセル付加・削除の情報である。
【0081】
次、バッファメモリ1−14を共通バッファ及び個別バッファとして使用する場合について、図9を参照して説明する。図9はバッファ種別#0の個別バッファを用いた構成例を示し、n個のバッファの内、m個が個別バッファで、残りの(n−m)個が共通バッファであるとする。
【0082】
共通空きバッファポインタ1−15内の先頭ポインタは、バッファ#1を示し、最終ポインタはバッファ#(n−m)を示し、空バッファ数は(n−m)となる。バッファ種別#0の個別空きバッファポインタ1−17内の先頭ポインタはバッファ#(n−m+1)を示し、最終ポインタはバッファ#nを示し、空バッファ数はmとなる。
【0083】
バッファ管理部1−13の次バッファアドレスには、バッファ#1からバッファ#(n−m)までが、共通空バッファとして連結されるようにバッファアドレスが格納され、また、バッファ#(n−m+1)からバッファ#nまでが個別空きバッファとして連結されるようにバッファアドレスが格納される。
【0084】
このような設定により、バッファ#1からバッファ#(n−m)までが共通空バッファとして使用され、バッファ#(n−m+1)からバッファ#nまでが個別バッファとして使用される。図9に示した構成例は個別バッファの種別が一つであったが、同様な手法により個別バッファの種別を任意に複数設定することができる。
【0085】
図10、図11及び図12は本発明のパケット組み立て時のバッファ構成の説明図である。図10は、論理チャネルAと論理チャネルBとが共通バッファを使用してパケットを組み立てる例を示している。
【0086】
図10において、パケットバッファ装置に、論理チャネルAのセルA1,A2,A3,AEと論理チャネルBのセルB1,B2,BEとが、A1,B1,A2,A3,B2,BE,AEの順序で到着するものとする。
【0087】
上記の到来セルは、個別バッファ判定部1−11により、共通バッファを使用するものと判定され、それぞれの論理チャネルに対して共通バッファを割り当てる。また、論理チャネルA及び論理チャネルBのそれぞれに対応しパケット組み立てポインタ1−18A及び1−18Bを用いて、論理チャネル単位にパケットを組み立てる。
【0088】
チャネルAのパケット組み立てポインタ1−18Aは、先頭セルA1の格納のために、当初空バッファであったバッファ#1を割り当て、そのアドレスを先頭ポインタに格納する。
【0089】
また、チャネルBのパケット組み立てポインタ1−18Bは、先頭セルB1の格納のために、当初空バッファであったバッファ#2を割り当て、そのアドレスを先頭ポインタに格納する。
【0090】
論理チャネルAの引続き到着するセルA2,A3,AEに対して、到着順に格納されるバッファ#1,#3,#4,#7が論理チャネルAに関して連結されるように、各バッファ対応部のバッファ管理部1−13の次バッファアドレスにそれぞれのバッファアドレスを格納する。そして、最終セルが到着したとき、チャネルAのパケット組み立てポインタ1−18Aの最終ポインタにバッファ#7のアドレスが、バッファ数に4が格納される。
【0091】
論理チャネルBの引続き到着するセルB2,BEに対して、到着順に格納されるバッファ#2,#5,#6が論理チャネルBに関して連結されるように、各バッファ対応部のバッファ管理部1−13の次バッファアドレスにそれぞれのバッファアドレスを格納する。そして、最終セルが到着したとき、チャネルBのパケット組み立てポインタ1−17Bの最終ポインタにバッファ#6のアドレスが、バッファ数に3が格納される。
【0092】
このようにして、論理チャネルAのパケットは、バッファ#1、#3、#4、#7を使用し、論理チャネルBのパケットは、バッファ#2、#5、#6を使用する。共通空きバッファポインタ1−14内の先頭ポインタは、空バッファの先頭バッファ#8を示し、最終ポインタはバッファ#nを示し、空きバッファ数は(n−7)となる。
【0093】
図11は、論理チャネルAが共通バッファを使用し、論理チャネルBがバッファ種別#0の個別バッファを使用する例を示している。ここで、共通バッファはバッファ#1から#(n−m)まで、バッファ種別#0の個別バッファはバッファ#(n−m+1)から#nまでとする。
【0094】
論理チャネルAのパケットは、バッファ#1、#2、#3、#4に格納され、論理チャネルBのパケットは、バッファ#(n−m+1)、#(n−m+2)、#(n−m+3)に格納される。
【0095】
共通空きバッファポインタ1−15内の先頭ポインタは、バッファ#5を示し、最終ポインタは、バッファ#(n−m)を示し、バッファ数は(n−m−4)となる。バッファ#5〜#(n−m)は、バッファ管理部1−12内次バッファアドレスによりリンクされる。
【0096】
論理チャネルAのパケット組立ポインタ1−18A内の先頭ポインタは、バッファ#1を示し、最終ポインタは、バッファ#4を示し、バッファ数は4となり、バッファ#1〜#4は、バッファ管理部1−13内の次バッファアドレスによりリンクされる。
【0097】
論理チャネルBのパケット組立ポインタ1−18B内の先頭ポインタは、バッファ#(n−m+1)を示し、最終ポインタは、バッファ#(n−m+3)を示し、バッファ数は3となり、バッファ#(n−m+1)〜#(n−m+3)は、バッファ管理部1−13内次バッファアドレスによりリンクされる。
【0098】
バッファ種別#0の個別空きバッファポインタ1−17内の先頭ポインタは、バッファ#(n−m+4)を示し、最終ポインタは、バッファ#nを示し、バッファ数は(m−3)となる。バッファ#(n−m+4)〜#nは、バッファ管理部1−13内次バッファアドレスによりリンクされる。
【0099】
図12は、論理チャネルAが共通バッファを使用し、論理チャネルBがバッファ種別#0の個別バッファを使用し、個別バッファの容量が不足した場合に、共通バッファの空きバッファを使用する構成例を示している。
【0100】
図12に示すように、m個のバッファを有するバッファ種別#0の個別バッファののうち、バッファ#(n−m−1)からバッファ#(n−1)までの(m−1)個のバッファが使用中であるとする。
【0101】
論理チャネルBのパケットの第一セルB1は、バッファ種別#0の個別バッファのバッファ#nに格納されるが、ここで個別バッファが無くなり、第二セルB2、第三セルBE(最終セル)は、個別バッファに格納することができないので、共通バッファを借用して格納する。
【0102】
個別バッファのバッファ#nの次に共通バッファのバッファ#4がリンクされ、第二セルB2を該バッファ#4に格納し、その次に共通バッファのバッファ#5がリンクされ、バッファ#5に第三セルBE(最終セル)を格納する。
【0103】
論理チャネルBのパケット組立ポインタ1−18B内の先頭ポインタは、バッファ#nを示し、最終ポインタは、バッファ#5を示し、バッファ数は3となる。バッファ#n,#4,#5はバッファ管理部1−13内の次バッファアドレスによりリンクされる。
【0104】
論理チャネルAのセルは、共通バッファのバッファ#1,#2,#3,#6に格納され、それらのバッファは、バッファ管理部1−12内の次バッファアドレスによりリンクされる。
【0105】
共通空きバッファポインタ1−15内の先頭ポインタは、バッファ#7を示し、最終ポインタは#(n−m)を示し、空きバッファ数は、(n−m−6)となる。個別空きバッファポインタ1−17内の先頭ポインタ及び最終ポインタは、無効表示となり、空きバッファ数は0となる。
【0106】
図13は本発明のパケット出力時のバッファ構成の説明図である。同図は、最初に論理チャネルBのパケットを出力し、次に、論理チャネルAのパケットを出力する場合を示している。
【0107】
パケット出力待ちポインタ1−19内の先頭ポインタは、論理チャネルBのパケットの先頭セルデータB−1を格納するバッファ#(n−m+1)を示す。バッファ#(n−m+1)の次に、順に、バッファ#(n−m+1),#(n−m+2),#(n−m+3)がリンクされ、その次に論理チャネルAのバッファ#1,#2,#3,#4がリンクされる。
【0108】
パケット出力待ちポインタ1−19内の最終ポインタは、論理チャネルAのパケットの最後尾セルデータA−Eを格納するバッファ#4を示し、バッファ数は7となる。各バッファは、バッファ管理部1−13内の次バッファアドレスにてリンクされる。
【0109】
そして、上位レイヤからの指示をバッファ管理部1−13内の転送制御情報部に保持し、その情報に従い、チャネル変換部1−21において、論理チャネルAを論理チャネルXへ変換し、論理チャネルBを論理チャネルYへ変換して、セルY1,Y2,YE,X1,X2,X3,XEの順でパケット単位にセルを出力する。
【0110】
図14及び図15は本発明のパケット組み立て時のバッファ制御のフローチャートである。以下、このフローチャートに従って、パケット組み立てにおけるバッファ制御動作を説明する。
【0111】
まず、個別バッファ判定部からの情報によりバッファ種別を判定し(14−1)、そのバッファ種別に対応した空きバッファポインタ内の空きバッファ数を読み出し(14−2)、空きバッファ数が0でなければ、バッファの獲得処理として、空きバッファポインタ内の先頭ポインタを読み出し、該先頭ポインタが示すバッファへセルデータを書き込み(14−3)、先頭ポインタが示すバッファ管理部内の次バッファアドレスを空きバッファポインタ内の先頭ポインタへ書き込み(14−4)、空きバッファ数を一つ減少(−1)させる(14−5)。
【0112】
空きバッファ数が0であった場合、そのバッファ種別が共通バッファであったときは、バッファオーバフロー通知処理を行い(14−6)、バッファ種別が個別バッファであったときは、共通空きバッファポインタの空きバッファ数を読み出し(14−7)、共通バッファの空きバッファ数が0の場合は、バッファオーバフロー通知処理を行う(14−6)。
【0113】
共通バッファの空きバッファ数が0でない場合は、共通バッファを借用することとし、借用する場合のバッファ獲得処理として、共通空バッファポインタの先頭ポインタが示すバッファへセルデータを書き込み(14−8)、先頭ポインタが示すバッファ管理部内の次バッファアドレスを、共通空バッファポインタの先頭ポインタへ書き込み(14−9)、空きバッファ数を一つ減少(−1)させる(14−10)。
【0114】
そして、この借用した共通バッファを、個別バッファとして個別バッファのバッファ数を増加させるか、又は共通バッファのままとしておくかを、後に説明する個別バッファ生成制御部内の自動増加指示によって判定し(15−1)、増加指示有りの場合は、個別バッファ自動増加処理として、獲得した該バッファのバッファ管理部内バッファ種別を、個別バッファ判定部から指定された個別バッファ種別に書換え(15−2)、後に説明する個別バッファ生成制御部内の個別バッファ総数とバッファ数カウンタとを一つ増加(+1)させる(15−3)。
【0115】
以上のバッファ獲得処理、更には個別バッファ自動増加処理の終了後、パケット組み立て処理として、獲得したバッファのアドレスを、該当論理チャネルのパケット組立ポインタ内の最終ポインタが示すバッファのバッファ管理部の次バッファアドレスへ書き込み、更に該獲得したバッファのアドレスを、パケット組立ポインタ内の最終ポインタにも書き込み(15−4)、該当論理チャネルのパケット組み立てポイント内のバッファ数を一つ増加(+1)させ(15−5)、パケット組み立て処理を終了する。
【0116】
図16及び図17は本発明のパケット出力時のバッファ制御のフローチャートである。以下、このフローチャートに従って、パケット出力におけるバッファ制御動作を説明する。
【0117】
まず、パケット出力待ちポインタ内のバッファ数を読み出し、出力待ちのパケットがあるかどうかを判定し(16−1)、有り(出力待ちのバッファ数≠0)の場合、パケット出力待ちポインタ内の先頭ポインタが示すバッファ管理部内の転送制御情報部のパケット長を読み出し、その数値を一つ減算(−1)する(16−2)。
【0118】
減算(−1)した結果によりパケット長を判定し(16−3)、その結果が0の場合、該パケットは1セルにて構成されるパケットであるので該セルを出力するとパケット出力完了であり、単体セル出力処理として、パケット出力待ちポインタ内の先頭ポインタを読み出し、該先頭ポインタが示すバッファから該セルを読み出し、出力するとともにパケット先頭表示(BOM)信号及びパケット最終表示(EOM)信号を出力する(16−4)。
【0119】
そして、パケット出力待ちポインタのポインタ更新処理として、パケット出力待ちポインタ内のバッファ数を一つ減算(−1)し(16−5)、該パケットの最終バッファ(即ち該セルのバッファ)のバッファ管理部内の次バッファアドレスを、パケット出力待ちポインタ内の先頭ポインタへ書き込み(17−7)、出力処理を終了する。
【0120】
前述のフロー(16−3)の判定において、減算の結果が0でなかった場合、即ちパケットが複数セルにより構成されている場合、先頭セル出力処理として、パケット出力待ちポインタ内の先頭ポインタが示すバッファよりセルを読み出し、出力するとともにパケット先頭表示(BOM)信号を出力し(16−6)、ポインタ更新処理として、パケット出力待ちポインタ内のバッファ数を一つ減算(−1)する(16−7)。
【0121】
第二セル目以降の出力は、パケット出力待ちポインタ内の先頭ポインタが示すバッファ管理部内の制御部のパケット長を更に一つ減算(−1)し(17−1)、パケット長情報を判定し(17−2)、パケット送出未完了の場合は、前回出力したバッファ管理部内の次バッファアドレスが示すバッファよりセルを読み出して出力し(17−3)、パケット出力待ちポインタ内のバッファ数を一つ減算(−1)する(17−4)。この場合は中間セルであるのでパケット先頭表示(BOM)又はパケット最終表示(EOM)信号は出力しない。
【0122】
パケット出力待ちポインタ内の先頭ポインタが示すバッファ管理部内の制御部のパケット長が0となった場合、即ちパケット出力完了の場合は、前回出力したバッファ管理部内の次バッファアドレスが示すバッファよりセルを読み出して出力するとともにパケット最終表示(EOM)信号を出力し(17−5)、パケット出力待ちポインタ内のバッファ数を一つ減算(−1)し(17−6)、該パケットの最終バッファのバッファ管理部内の次バッファアドレスを、パケット出力待ちポインタ内の先頭ポインタへ書き込み(17−7)、出力処理を終了する。
【0123】
図18は本発明の個別バッファ生成制御部の構成の説明図である。個別バッファ生成制御部1−15は、全体を管理する管理部18−1と、各バッファ種別毎の個別バッファの総数を指定する個別バッファ総数指定部18−2と、バッファ構築時に管理部18−1が使用するバッファ数カウンタ18−3と、バッファ構築を指示するバッファ構築指示部18−4と、バッファ開放を指示するバッファ開放指示部18−5と、図14で説明した共通バッファからバッファを借用して獲得した場合に獲得したバッファを、共通バッファへ戻さずに個別バッファとして増加させるかを指示する自動増加指示部18−6とにより構成される。
【0124】
図19は本発明の個別バッファ生成制御部の設定手順の説明図である。個別バッファの初期生成時は、マイクロプログラム等から、個別バッファ総数を設定し、バッファ構築指示をオンにし、自動増加指示をオン又はオフとする。
【0125】
個別バッファを全て開放し、共通バッファとするときは、個別バッファ総数に0を設定し、バッファ開放指示をオンとする。
既に存在する個別バッファのバッファ量を増加させるときは、個別バッファ総数に、増加させた後の総数を設定し、バッファ構築指示をオンにし、自動増加指示をオン又はオフとする。
【0126】
既に存在する個別バッファのバッファ量を減少させるときは、個別バッファ総数に、減少させた後の総数を設定し、バッファ開放指示をオンにし、自動増加指示をオン又はオフとする。
【0127】
図20及び図21は本発明の個別バッファ生成制御部内の管理部における動作のフローチャートである。図20はセル出力後のバッファ開放処理のフローを示す。図21は空きバッファへのリンク処理のフローを示す。
【0128】
図20のフローにおいて、パケット出力処理により出力したバッファに対応したバッファ管理部内のバッファ種別を判定する(20−1)。バッファ種別が共通バッファであった場合、現在、個別バッファ構築指示が有る(オン)かを判定し(20−2)、無し(オフ)の場合はそのまま共通空きバッファへリンクし(20−3)、個別バッファの生成、開放、増減の処理を行うことなく、バッファ開放処理を終了する。
【0129】
有りの場合は、個別バッファの生成又は増加であるので、構築指示がされている個別空きバッファへリンクし(20−4)、リンクしたバッファのバッファ管理部内のバッファ種別を個別バッファへ書換え(20−5)、バッファ数カウンタを一つ加算し(+1)し(20−6)、個別バッファ総数に設定された数になったかを判定し(20−7)、総数と同数となった場合はバッファ構築指示をオフとし(20−8)、個別バッファ生成又は増加を完了し、バッファ開放処理を終了する。総数と同数でない場合は、個別バッファの生成又は増加を継続する。
【0130】
出力されたバッファ種別が個別バッファであった場合、現在、個別バッファ開放指示が有るかを判定し(20−9)、無しの場合は、そのまま該個別空きバッファへリンクし(20−10)、個別バッファの生成、開放、増減の処理を行うことなく、バッファ開放処理を終了する。
【0131】
有りの場合は、個別バッファの開放又は減少であるので、共通バッファの空バッファへリンクし(20−11)、リンクしたバッファのバッファ管理部内バッファ種別を共通バッファへ書き換え(20−12)、バッファ数カウンタを一つ減算(−1)し(20−13)、個別バッファ総数に設定された数になったかを判定し(20−14)、総数と同数となつた場合はバッファ開放指示をオフにし(20−15)、個別バッファの開放又は減少処理をを完了し、バッファ開放処理を終了する。総数と同数でない場合は、個別バッファの開放又は減少処理を継続する。
【0132】
ここで、図21を参照して空きバッファへのリンク処理を説明する。リンクさせる空きバッファの空きバッファポインタに保持されている空きバッファ数を判定し(21−1)、0の場合はリンクするバッファのアドレスを先頭ポインタ及び最終ポインタへ書き込み(21−2)、空きバッファ数を一つ加算(+1)し(21−3)、終了する。
【0133】
0でない場合は、空きバッファポインタの最終ポインタを読み出し(21−4)、リンクするバッファのアドレスを最終ポインタが示すバッファのバッファ管理部内の次バッファアドレス及び最終ポインタへ書き込み(21−5)、空きバッファ数を一つ加算(+1)し(21−6)、終了する。
【0134】
図22及び図23は本発明の個別バッファ数を最適にするための個別空きバッファポインタ及び個別バッファ生成制御部の説明図である。図22は個別空きバッファポインタ及び個別バッファ生成制御部の構成を示し、図23はその管理部の動作フローを示す。
【0135】
図22に示すように、個別空きバッファポインタ1−17内に空きバッファ最低値保持部22−1を設け、空きバッファ数が最低値を示す度にその最低値を保持する。
【0136】
更に個別バッファ生成制御部1−15内に、バッファ種別毎の個別バッファ対応に、バッファ数の最適化を図る周期を設定する調整間隔タイマと、空きバッファ数の最低値を判定し、最適化を図るか否かを決定するために使用するしきい値指定部22−3と、最適化を図る際に開放するバッファ数を指定する開放数指定部22−4を有するバッファ調整調整部22−10を備える。
【0137】
図23のフローチャートに従って、個別バッファ数を最適にするための個別バッファ生成制御部内管理部の動作を説明する。調整間隔タイマ22−2に設定した周期で、個別空きバッファポインタ1−16内の空きバッファ数最低値保持部22−1に保持された最低値を読み出し、周期毎に判定するため、空きバッファ数最低部22−1の保持値はクリアする(23−1)。
【0138】
個別バッファ数を最適にする第1の方法として、読み出した空きバッファ数最低値を、使用されなかった余分なバッファ数と見做し、この値を個別バッファ総数指定値から減算し(23−2)、バッファ開放指示をオンにして(23−3)終了する。
【0139】
その第2の方法として、読み出した空きバッファ数最低値を、そのまま余分な数とは見做さず、しきい値指定部22−3に設定された値と比較し(23−4)、しきい値より小さい場合はそのまま終了し、しきい値より大きい場合は、開放数指定部22−4に設定された値を、個別バッファ総数指定値から減算し(23−5)、バッファ開放指示をオンにし(23−6)終了する。
【0140】
【発明の効果】
以上説明したように、本発明によれば、共通バッファと個別バッファとを動的に構築し、サービス形態の異なるパケットに、それぞれ種別の異なるバッファを使用することにより、複数加入者でバッファを共有するサービスと特定加入者のみがバッファを専有するサービスのように、サービス形態の異なる加入者を混在させて収容した場合でも、他の加入者のパケットによるバッファ使用状況に影響されずに、各サービス形態に即応した転送サービスを提供することができる。
【0141】
また、或る個別バッファが輻輳し、空容量が不足した場合、共通バッファの一部のバッファを個別バッファに組み込み、更にそのままその個別バッファとして使用するか又は共通バッファに戻すかを、設定により変更可能とし、個別バッファと共通バッファとによるバッファリソースの使用効率を向上させることができる。
【0142】
また、所定の周期毎に各個別バッファの使用数を監視し、その使用実績に応じて各個別バッファの配分数を変更し、各個別バッファのバッファ数を最適化することにより、バッファリソースの最適利用を図ることができる。
【図面の簡単な説明】
【図1】本発明のパケットバッファ装置の構成図である。
【図2】本発明のパケットバッファ装置の動作説明図である。
【図3】本発明のパケットバッファ装置の動作説明図である。
【図4】本発明のパケットバッファ装置における入力データ及び出力データの説明図である。
【図5】本発明の個別バッファ判定部によるバッファ種別の判定の説明図である。
【図6】本発明の個別バッファ判定部によるバッファ種別の判定の説明図である。
【図7】本発明の個別バッファ判定部によるバッファ種別の判定の説明図である。
【図8】本発明のパケットバッファ装置の初期状態の説明図である。
【図9】本発明のパケットバッファ装置の初期状態の説明図である。
【図10】本発明のパケット組み立て時のバッファ構成の説明図である。
【図11】本発明のパケット組み立て時のバッファ構成の説明図である。
【図12】本発明のパケット組み立て時のバッファ構成の説明図である。
【図13】本発明のパケット出力時のバッファ構成の説明図である。
【図14】本発明のパケット組み立て時のバッファ制御のフローチャートである。
【図15】本発明のパケット組み立て時のバッファ制御のフローチャートである。
【図16】本発明のパケット出力時のバッファ制御のフローチャートである。
【図17】本発明のパケット出力時のバッファ制御のフローチャートである。
【図18】本発明の個別バッファ生成制御部の構成の説明図である。
【図19】本発明の個別バッファ生成制御部の設定手順の説明図である。
【図20】本発明の個別バッファ生成制御部内の管理部における動作のフローチャートである。
【図21】本発明の個別バッファ生成制御部内の管理部における動作のフローチャートである。
【図22】本発明の個別バッファ数を最適にするための個別空きバッファポインタ及び個別バッファ生成制御部の説明図である。
【図23】本発明の個別バッファ数を最適にするための個別空きバッファポインタ及び個別バッファ生成制御部の説明図である。
【図24】本発明のパケットバッファ装置が適用されるパケット転送モジュールのネットワーク上の配置位置を示す図である。
【図25】本発明のパケットバッファ装置が適用されるパケット転送モジュールの構成図である。
【図26】共通バッファを用いたパケットバッファ装置の動作説明図である。
【図27】個別バッファを用いたパケットバッファ装置の動作説明図である。
【符号の説明】
1−10 パケットバッファ装置
1−11 個別バッファ判定部
1−12 パケットバッファ制御部
1−13 バッファ管理部
1−14 バッファメモリ
1−15 共通空きバッファポインタ
1−16 個別バッファ生成制御部
1−17 個別空きバッファポインタ
1−18 パケット組み立てポインタ
1−19 パケット出力待ちポインタ
1−20 出力制御部
1−21 チャネル変換部
1−30 AALタイプ5終端装置
Claims (11)
- 複数の論理チャネルにより多重されて入力されるATMセルを格納し、論理チャネル毎のATMセルをパケットに組み立て、該パケットを出力するパケットバッファ装置において、
共通バッファから個別バッファを分離して生成させ、又は個別バッファを共通バッファに開放して共通バッファに結合させる個別バッファ生成制御部と、
入力されたATMセル毎に、該ATMセルを格納するバッファ種別を判定する個別バッファ判定部と、
前記個別バッファ判定部により判定されたバッファ種別に応じて、入力されたATMセルを、共通バッファ又は個別バッファへ振り分けて格納させるパケットバッファ制御部とを備え、
個別バッファの使用数に応じて、個別バッファを動的に構築し、パケットの種別に応じて、異なる種別のバッファリソースを使用させる構成を有することを特徴とするパケットバッファ装置。 - 前記個別バッファ判定部は、個別バッファの種別と該個別バッファを使用するATMセルの論理チャネルとの対応を設定する対象論理チャネル設定部と、
入力されたATMセルの論理チャネルと、前記対象論理チャネル設定部に設定された論理チャネルとを比較し、合致した場合に、対応する種別の個別バッファを指定するバッファ種別情報を出力し、合致しなかった場合に、共通バッファを指定するバッファ種別情報を出力する比較部とを備え、
前記対象論理チャネル設定部に設定された論理チャネルのATMセルを、種別の異なる個別バッファへ振り分ける構成を有することを特徴とするた請求項1記載のパケットバッファ装置。 - 前記対象論理チャネル設定部に、各個別バッファの種別毎に設定された論理チャネルの判定対象ビットを指定するビット指定部を備え、
前記比較部は、入力されたATMセルの論理チャネルの判定対象ビットのみを比較し、合致した場合に、対応する種別の個別バッファを指定するバッファ種別情報を出力し、合致しなかった場合に、共通バッファを指定するバッファ種別情報を出力する構成を有することを特徴とする請求項2記載のパケットバッファ装置。 - 前記対象論理チャネル設定部に、各個別バッファの種別毎にATMセル又はパケットの優先度を示す情報を設定する優先度情報設定部を備え、前記比較部は、入力されたATMセル又はパケットの優先度を示す情報と、前記優先度情報設定部に設定された優先度情報とを比較し、比較結果に応じて異なるバッファ種別情報を出力する構成を有することを特徴とする請求項2または3のパケットバッファ装置。
- 前記パケットバッファ装置は、バッファ種別毎に、チェーンにより連結する空きバッファの先頭ポインタ、最終ポインタ及び空きバッファ数を保持する空きバッファポインタと、
バッファ毎に、チェーンにより連結する空きバッファの次バッファアドレス及びバッファ種別を保持するバッファ管理部とを備え、
前記パケットバッファ制御部は、前記個別バッファ判定部からのバッファ種別情報に従い、そのバッファ種別の空きバッファからバッファを順次獲得し、パケット組み立ての制御を行う構成を有することを特徴とする請求項1のパケットバッファ装置。 - 前記パケットバッファ制御部は、個別バッファを獲得する際に、該個別バッファの空きバッファポインタに保持された空きバッファ数を読み出し、獲得する空きバッファが無いと判定した場合、共通バッファの空きバッファからバッファを獲得し、パケット組み立ての制御を行う構成を有することを特徴とする請求項5記載のパケットバッファ装置。
- 前記パケットバッファ制御部は、前記個別バッファ生成制御部からの個別バッファの増加指示を判定する手段を備え、増加指示が有る場合、共通バッファの空きバッファから獲得したバッファに対応するバッファ管理部内に保持されるバッファ種別を、当該個別バッファを指定するバッファ種別に書き換え、共通バッファから獲得したバッファ数分を、個別バッファに変更させる制御を行う構成を有することを特徴とする請求項6記載のパケットバッファ装置。
- 前記個別バッファ生成制御部は、個別バッファのバッファ数を指定する個別バッファ総数指定部と、個別バッファのバッファ数をカウントするバッファ数カウンタと、バッファの構築を指示するバッファ構築指示部と、個別バッファの生成、開放、増加又は減少を管理する管理部とを備え、
ATMセル出力後のバッファ開放処理時に、該バッファが共通バッファでかつバッファ構築指示があった場合、該バッファのバッファ管理部内のバッファ種別をバッファ構築指示があったバッファ種別に書き換え、該バッファ種別のバッファ数カウンタに1を加算し、該バッファ数カウンタがその個別バッファ総数指定値まで達した場合に、バッファ構築指示をオフにし、バッファ開放時に、指定されたバッファ総数の個別バッファの生成又は指定されたバッファ数までの個別バッファの増加を行う構成を有することを特徴とする請求項1記載のパケットバッファ装置。 - 前記個別バッファ生成制御部は、バッファ開放を指示するバッファ開放指示部を備え、ATMセル出力後のバッファ開放処理時に、該バッファが個別バッファでかつバッファ開放指示があった場合、該バッファのバッファ管理部内のバッファ種別を、共通バッファのバッファ種別に書き換え、該バッファ種別のバッファ数カウンタから1を減算し、該バッファ数カウンタがその個別バッファ総数指定値まで達した場合に、バッファ開放指示をオフにし、バッファ開放時に、個別バッファの開放又は指定されたバッファ総数までの減少を行う構成を更に有することを特徴とする請求項8記載のパケットバッファ装置。
- 前記個別バッファ生成制御部は、個別バッファ数の最適化処理の周期を設定する調整間隔タイマを備え、更に、各個別空きバッファポインタは、空きバッファ数の最低値を保持する空きバッファ数最低値保持部を備え、前記個別バッファ生成制御部の管理部は、調整間隔タイマに設定した周期で、空バッファ数最低値を読み出し、個別バッファ総数指定部から読み出した値から前記空バッファ数最低値を減算し、その値を個別バッファ総数指定部に設定し、バッファ開放指示をオンにする構成を有し、
前記最適化処理の周期の期間に使用されなかった数の個別バッファを共通バッファへ開放する構成を有することを特徴とする請求項9記載のパケットバッファ装置。 - 前記個別バッファ生成制御部は、個別バッファ数の最適化処理の周期を設定する調整間隔タイマと、個別バッファ数の最適化処理を行うか否かを決定するための空きバッファ数最低値のしきい値を設定するしきい値指定部と、開放するバッファ数を設定する開放数指定部とを備え、更に、各個別空きバッファポインタは、空きバッファ数の最低値を保持する空きバッファ数最低値保持部を備え、
前記個別バッファ生成制御部の管理部は、読み出した空きバッファ数最低値が、前記しきい値より大きい場合に、個別バッファ総数指定部から読み出した値から前記開放数指定部の設定値を減算し、その値を個別バッファ総数指定部に設定し、バッファ開放指示をオンにする構成を有し、
前記最適化処理の周期の期間に使用されなかった数がしきい値より大きい場合に、前記開放数指定部に設定した指定数のバッファを共通バッファへ開放する構成を有することを特徴とする請求項9のパケットバッファ装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04178599A JP3561870B2 (ja) | 1999-02-19 | 1999-02-19 | パケットバッファ装置 |
| US09/389,221 US6658014B1 (en) | 1999-02-19 | 1999-09-03 | Packet buffer device and packet assembling method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP04178599A JP3561870B2 (ja) | 1999-02-19 | 1999-02-19 | パケットバッファ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000244517A JP2000244517A (ja) | 2000-09-08 |
| JP3561870B2 true JP3561870B2 (ja) | 2004-09-02 |
Family
ID=12618018
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP04178599A Expired - Fee Related JP3561870B2 (ja) | 1999-02-19 | 1999-02-19 | パケットバッファ装置 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6658014B1 (ja) |
| JP (1) | JP3561870B2 (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6885672B1 (en) * | 2000-12-20 | 2005-04-26 | Bellsouth Intellectual Property Corporation | System and method for provisioning virtual circuit orders on an asynchronous transfer mode subnetwork |
| US7130916B2 (en) * | 2001-02-23 | 2006-10-31 | International Business Machines Corporation | Linking frame data by inserting qualifiers in control blocks |
| US7860120B1 (en) * | 2001-07-27 | 2010-12-28 | Hewlett-Packard Company | Network interface supporting of virtual paths for quality of service with dynamic buffer allocation |
| US8271672B1 (en) | 2001-08-31 | 2012-09-18 | Juniper Networks, Inc. | Guaranteed bandwidth memory apparatus and method |
| US7698454B1 (en) | 2001-11-26 | 2010-04-13 | Juniper Networks, Inc. | Interfacing with streams of differing speeds |
| US7480239B1 (en) | 2001-11-27 | 2009-01-20 | Cisco Technology, Inc. | Method and apparatus for true priority based connection establishment within a PNNI ATM network |
| US20030107990A1 (en) * | 2001-12-12 | 2003-06-12 | Garrette Herschleb | System and method for determining a quality of service |
| KR100439184B1 (ko) * | 2001-12-24 | 2004-07-05 | 한국전자통신연구원 | 다른 크기의 2개 입력 포트를 갖는 더블워드 정렬 쓰기패킷 버퍼장치 |
| US7206310B1 (en) * | 2001-12-28 | 2007-04-17 | Redback Networks Inc. | Method and apparatus for replicating packet data with a network element |
| US6801965B2 (en) * | 2002-04-11 | 2004-10-05 | International Business Machines Corporation | Audio buffer station allocation |
| US7245586B2 (en) * | 2002-08-30 | 2007-07-17 | Lucent Technologies Inc. | Buffer management based on buffer sharing across ports and per-port minimum buffer guarantee |
| US7532574B1 (en) | 2003-10-02 | 2009-05-12 | Cisco Technology, Inc. | Method and apparatus for improved priority based connection establishment within a PNNI ATM network |
| US7980582B2 (en) * | 2006-08-09 | 2011-07-19 | Atc Leasing Company Llc | Front tow extended saddle |
| DE102008000649B4 (de) * | 2007-03-27 | 2016-08-11 | Denso Corporation | Speicher-Verwaltungsvorrichtung und Verfahren für diese |
| JP4513826B2 (ja) * | 2007-05-24 | 2010-07-28 | 株式会社デンソー | 経路表示装置、経路表示システム |
| JP5088145B2 (ja) | 2008-01-10 | 2012-12-05 | 富士通株式会社 | パケット中継装置、制御方法およびパケット中継プログラム |
| CN102137008B (zh) * | 2011-01-24 | 2013-08-07 | 华为技术有限公司 | 一种服务质量QoS保持方法、装置及系统 |
| US10057194B1 (en) | 2014-01-07 | 2018-08-21 | Marvell Israel (M.I.S.L) Ltd. | Methods and apparatus for memory resource management in a network device |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4953157A (en) | 1989-04-19 | 1990-08-28 | American Telephone And Telegraph Company | Programmable data packet buffer prioritization arrangement |
| US5233606A (en) | 1991-08-02 | 1993-08-03 | At&T Bell Laboratories | Arrangement for controlling shared-buffer-memory overflow in a multi-priority environment |
| DE4323405A1 (de) | 1993-07-13 | 1995-01-19 | Sel Alcatel Ag | Zugangskontrollverfahren für einen Pufferspeicher sowie Vorrichtung zum Zwischenspeichern von Datenpaketen und Vermittlungsstelle mit einer solchen Vorrichtung |
| JP3178949B2 (ja) * | 1993-09-30 | 2001-06-25 | 富士通株式会社 | Atmスイッチ方式 |
| US5787086A (en) * | 1995-07-19 | 1998-07-28 | Fujitsu Network Communications, Inc. | Method and apparatus for emulating a circuit connection in a cell based communications network |
| JP3607017B2 (ja) * | 1996-10-31 | 2005-01-05 | 富士通株式会社 | セル交換機におけるフィードバック制御装置及びセルスケジューリング装置 |
| US6430191B1 (en) * | 1997-06-30 | 2002-08-06 | Cisco Technology, Inc. | Multi-stage queuing discipline |
-
1999
- 1999-02-19 JP JP04178599A patent/JP3561870B2/ja not_active Expired - Fee Related
- 1999-09-03 US US09/389,221 patent/US6658014B1/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000244517A (ja) | 2000-09-08 |
| US6658014B1 (en) | 2003-12-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3561870B2 (ja) | パケットバッファ装置 | |
| US6469983B2 (en) | Data packet transmission scheduling using a partitioned heap | |
| JP4024904B2 (ja) | データパケットを受け取りパケット交換回路に配信するデータユニット及びそのデータユニットを含む交換機 | |
| US6772219B1 (en) | Message relaying scheme based on switching in units of flows | |
| JP2006262517A (ja) | ネットワークキングシステム | |
| CN1373980A (zh) | 利用常规网络节点交换机管理与各种业务质量原则相关联的数据业务的系统和方法 | |
| WO2000076153A1 (en) | Method and system for allocating bandwidth and buffer resources to constant bit rate (cbr) traffic | |
| US6754216B1 (en) | Method and apparatus for detecting congestion and controlling the transmission of cells across a data packet switch | |
| JP2003124953A (ja) | リング型ネットワークシステム | |
| US7450594B2 (en) | Message writing apparatus, message writing method, message readout apparatus, message readout method, memory address control circuit for writing of variable-length message and memory address control circuit for readout of variable-length message | |
| JPH11122257A (ja) | 共通バッファ型スイッチ | |
| JP3416156B2 (ja) | 種々の優先度のバーチャルコネクションを介して情報セルを伝送する方法および回路装置 | |
| JPH11127173A (ja) | 接続群を有するatmセル切換装置およびatmセル切換方法と、対応する入出力端末手段 | |
| KR100384996B1 (ko) | 비동기 전송모드 셀 스위칭 기능을 이용한 패킷 교환기 구조 및 그 처리방법 | |
| JP2007535192A (ja) | サービス品質及びサービスタイプに基づいて電気通信システムにおけるリソースを動的に管理するための方法 | |
| JP4504606B2 (ja) | ネットワークスイッチにおいてトラフィックを成形する装置及び方法 | |
| JP3791529B2 (ja) | フレームバッファ管理回路および方法 | |
| JP3573095B2 (ja) | パケットスイッチ回路 | |
| JP2002531034A (ja) | Atmフローのwfq統計的マルチプレクシング方法及び装置 | |
| JPH11191778A (ja) | 中継装置 | |
| JPH1141243A (ja) | Atmスイッチ及びその制御方法 | |
| JP2002300203A (ja) | パケットバッファ装置 | |
| KR20000032845A (ko) | 에이티엠 교환기에서 셀 큐잉 장치 및 방법 | |
| JPH11510324A (ja) | ペースカウンタを用いた帯域幅割付けの制御 | |
| JP2001251306A (ja) | Atm通信システムおよびatmセル転送制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040507 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040518 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040520 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090611 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100611 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110611 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120611 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120611 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130611 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140611 Year of fee payment: 10 |
|
| LAPS | Cancellation because of no payment of annual fees |