JP2000307609A - 循環配分方式バッファリフレッシュ - Google Patents

循環配分方式バッファリフレッシュ

Info

Publication number
JP2000307609A
JP2000307609A JP2000074802A JP2000074802A JP2000307609A JP 2000307609 A JP2000307609 A JP 2000307609A JP 2000074802 A JP2000074802 A JP 2000074802A JP 2000074802 A JP2000074802 A JP 2000074802A JP 2000307609 A JP2000307609 A JP 2000307609A
Authority
JP
Japan
Prior art keywords
queue
buffers
data streams
buffer
data
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.)
Pending
Application number
JP2000074802A
Other languages
English (en)
Inventor
Neil Singer
シンガー ニール
Kang-Sen Lu
ル カン−セン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Network Communications Inc
Original Assignee
Fujitsu Network Communications Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Network Communications Inc filed Critical Fujitsu Network Communications Inc
Publication of JP2000307609A publication Critical patent/JP2000307609A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/106ATM switching elements using space switching, e.g. crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols
    • H04L2012/567Frame Relay over ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 本発明は空きバッファを効率的かつ公正にデ
ータストリームに割り付ける方法の提供を目的とする。 【解決手段】 本発明によれば、複数のデータストリー
ムの中の各データストリームがキューに割り当てられ、
各キューには所定の最大数のバッファが割り付けられ
る。キューがバッファの貯えを使用し尽くしたとき、対
応したデータストリームからのデータは、バッファがリ
フレッシュされ、残りのデータストリームを正常な形で
操作できるようになるまで廃棄される。リフレッシュ操
作は、キューの優先順位付けと、各優先度レベル内での
高いフェアネスの程度が得られるような形で行われる。
リフレッシュ操作は、システム内の実時間クロックに同
期するような同期式に行われるように計画してもよく、
或いは、非同期式に行われるように構成してもよい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データストリーム
にバッファを割り付ける方法に関する。
【0002】
【従来の技術】共用T1ラインの異なるチャネルに到着
するフレーム・リレー・トラフィック・ストリーム、又
は、共用ATM交換機ファブリックから到着する非同期
転送モード(ATM)トラヒックストリームのようなデー
タのストリームが到着媒体を共用する殆どのシステムで
は、トラヒックストリームは共通バッファプールを共用
する。このようなシステムにおいて、一つのトラヒック
ストリームが利用可能なすべての空きバッファを要求、
使用し、同時に、残りのトラヒックストリームからバッ
ファを奪い、一部のデータストリームがバッファを獲得
することを阻止する可能性がある。かくして、1本のチ
ャネルが利用可能なすべての空きバッファを消費し、残
りのチャネルが必要とする空きバッファを獲得すること
を阻止する可能性がある。
【0003】
【発明が解決しようとする課題】したがって、残りのチ
ャネルの性能、並びに、システム全体の性能が損なわれ
る。単一のデータストリームがその割当分を超えた空き
バッファを割り付けることが許されず、残りのチャネル
がそれぞれのデータストリームに対し定められた限界に
従ってアプリケーション用の空きバッファを邪魔されず
に獲得することができるシステムを提供することが望ま
しい。また、空きバッファを効率的かつ公正な形でデー
タストリームに割り付けるシステムを提供することが望
ましい。
【0004】
【課題を解決するための手段】本発明による方法及び装
置によれば、複数のデータストリームの中の各データス
トリームがキューに割り当てられ、各キューには所定の
最大数のバッファが割り付けられる。キューがバッファ
の貯えを使用し尽くしたとき、対応したデータストリー
ムからのデータは、バッファがリフレッシュされ、残り
のデータストリームを正常な形で操作できるようになる
まで廃棄される。そのため、個々のデータストリームに
よる過剰なバッファ使用、並びに、CPU時間のような
その他の関連したシステムリソースの過剰な要求は阻止
される。データが廃棄されたデータストリームは、その
データストリームに関連したキューに付加的なバッファ
が割り付けられているならば、次のリフレッシュ操作の
ときに着信データが処理され始める。廃棄されたデータ
は失われ、復元されない。リフレッシュ操作は、キュー
の優先順位付けと、各優先度レベル内での高いフェアネ
スの程度が得られるような形で行われる。リフレッシュ
操作は、システム内の実時間クロックに同期するような
同期式に行われるように計画してもよく、或いは、非同
期式に行われるように構成してもよい。リフレッシュ操
作が非同期式に行われるとき、リフレッシュ操作は、負
荷の軽いシステムではより頻繁に行われ、負荷の重いシ
ステムではあまり頻繁には行われないので、データスト
リームは、利用可能なバッファへのアクセスに高いバッ
ファ要求量を示し、一方、理想的なデータストリームは
空きバッファを要求しない。
【発明の実施の形態】本発明は、添付図面と併せて以下
の詳細な説明を参照することにより十分に理解されるで
あろう。
【0005】図1を参照するに、網交換機の一部分のブ
ロック図が示されている。図1では、フレーム・リレー
・データストリーム(T1データストリーム又はE1デ
ータストリーム)を受信するよう適合し、このようなデ
ータストリームを、たとえば、非同期転送モード(AT
M)プロトコルで利用されるようなセルフォーマットに
変換するよう動作的である交換機の入力側にトラヒック
フローが示されている。
【0006】T1ライン5上のフレーム・リレー装置か
らの着信データストリームは、T1インタフェース10
に供給される。T1ラインから受信されたデータは、ペ
イロードデータと、フレーム・リレー(FR)情報と、ハ
イレベルデータリンク制御(HDLC)情報と、データチャ
ネルと、関連したT1フレーミングビットとを含む。T
1インタフェース10は、上記のフォーマットでデータ
を受信し、T1フレーミングデータを除去する。T1イ
ンタフェース10は、物理レイヤのアラームを通知す
る。この時点で、ペイロードと、FR情報と、HDLC情報
と、データチャネルとを含むデータは、時間領域マルチ
プレクサ(TDM)コントローラ20に転送される。
【0007】TDMコントローラ20は、T1インタフェ
ース10からデータを受信し、選択されたチャネルを着
信HDLCビットストリームに分解する。これにより得られ
るデータは、ペイロードと、FR情報と、HDLC情報とを含
み、このデータはHDLCコントローラ30に転送される。
【0008】HDLCコントローラ30は、ビットスタッフ
ィングと、フラグと、CRC-16検査ビットとを含むHDLC情
報を確認する。このHDLC情報は照合され、除去され、デ
ータに関連したすべてのエラー条件が通知される。HDLC
コントローラ30から出るデータは、ペイロードとFR情
報とを含む。
【0009】HDLCデータはDMA(ダイレクト・メモリ・
アクセス)コントローラ40に転送される。この際に、
着信データストリームを取り扱うためのバッファの供給
は、バッファ配分技術によって制御される。
【0010】図1及び図2を参照するに、データを受信
した後、HDLC コントローラ30は、DMAコントローラ4
0を介してデータを伝達し、フレームメモリ50に記憶
する。より詳細には、HDLCコントローラ30は、フレー
ムの終わりがHDLCフラグの受信によって示されるまでフ
レームデータを受信する。データが受信されると共に、
データは、4バイトずつ同時に転送され、DMAコントロ
ーラ40を介してフレームメモリ50に供給される。デ
ータは、多数のHDLCコントローラ30によって多数のTD
Mチャネル上で同時に受信され、対応したDMAコントロー
ラ40によってフレームメモリ50内に記憶される。単
一の物理的ラインT1又はE1に関連したすべてのDMA
コントローラは、ラインT1又はラインE1に専用の共
通空きバッファプールからバッファを引き出す。各DMA
コントローラ40には、それぞれのDMAコントローラ4
0による使用に利用可能なバッファを識別する単一のキ
ューが関連付けられる。
【0011】完全なフレームが記憶され、HDLCコントロ
ーラ30が有効なCRCの受信を照合したとき、フレーム
はCPU55によって処理される。プロセッサコアは、複
数の68360プロセッサの動作及び相互作用を統括
し、その中の1台のプロセッサはCPU55を含み、別の
プロセッサは図2のCPU155を含む。無効なCRCを含む
フレームは廃棄される。有効なCRCを備えたフレーム
は、CPU55によってDLCI(フレーム・リレー・アドレ
ス)が照合される。DLCIが認識されない場合、フレーム
は廃棄される。フレームのDLCIが認識されたとき、CPU
55はフレーム・リレー処理を実行し、SAR60はフレ
ームをATMセルに変換するためフレームセグメンテーシ
ョンを実行する。
【0012】複数のデータチャネルの中の一つのデータ
チャネルに関連したデータストリームが残りのデータチ
ャネルを顧慮せずに空きバッファを利用しないように、
単一のDMAコントローラ40は、複数のデータチャネル
のそれぞれに関連付けられ、このコントローラには、そ
れぞれのデータチャネル毎にデータ記憶のため利用可能
なバッファを識別するため役立つ単一のキューが関連付
けられる。
【0013】各DMAコントローラ40はそれぞれのDMAコ
ントローラを動作させるため必要な動作的パラメータを
含む制御ブロックを有する。フレームデータの受信時
に、DMAコントローラ40は制御ブロックによって識別
されたバッファにデータを格納する。バイトが連続的に
受信されると共に、データは、フレームの終わり(HDLC
フラグ)が検出されるか、或いは、バッファが一杯にな
るまで、識別されたバッファに格納され続ける。フレー
ムの終わりが検出された場合、フレームは更なる処理の
ためソフトウェアに渡される。バッファが一杯になった
場合、DMAコントローラ40は、受信データを格納する
ためキュー内の次のバッファを利用する。それぞれのキ
ュー内で利用可能なバッファがなくなったとき、DMA コ
ントローラはそれぞれのチャネルに対する着信データの
受信を中断する。
【0014】新しいフレームの始まりが検出されたと
き、DMAコントローラ40は、新しいバッファを要求し、
新しいバッファが利用可能であるならば、そのフレーム
に対する受信データを新しいバッファに格納する。新し
いフレームの始まりが検出され、受信データを格納する
ため利用可能なバッファが存在しない場合、データは廃
棄され、フレームは失われる。
【0015】空きバッファは、リフレッシュイベントに
応じて、DMAコントローラ40に関連したキューに割り
付けられる。リフレッシュイベントの際に、空きバッフ
ァプールからのバッファは、そのバッファが空きバッフ
ァプール内で利用可能であるならば、それぞれのキュー
内のバッファの量が予め指定された最大数に達するまで
各キューに割り当てられる。かくして、それぞれのDMA
コントローラ40によってキューから取り出されたバッ
ファは、空きバッファプールからのバッファと置き換え
られる。DMAコントローラ40がそのキューに割り当て
られたバッファの貯えを使い果たしたとき、対応したデ
ータストリームからの更なるデータは廃棄される。従っ
て、特定のキュー上のバッファの枯渇は、他のキューに
関連したバッファの利用可能性に影響を与えない。かく
して、他のキューを利用するデータストリームの性能は
影響されない。キューが空になったデータストリーム
は、少なくとも1個のバッファがそれぞれのキューに割
り当てられる次のリフレッシュイベントの後に、データ
の記憶を再開する。
【0016】一実施例において、リフレッシュイベント
は定期的に発生し、リアルタイムクロック間隔に同期す
る。本実施例の場合、CPU55の負荷が軽く、バッファ
が利用可能であるとしても、あるデータチャネルに対す
るサービスは、リフレッシュ期間の長さによって次に同
期的に発生するリフレッシュイベントまで拒否される。
【0017】他の実施例において、リフレッシュイベン
トは非同期的に発生し、リフレッシュイベントの頻度は
CPU55の負荷に逆比例する。CPU55は、フレーム・リ
レー・プロトコルを含む一連のタスクを実行する。CPU
55によって実行されるタスクの一つは、以下に説明す
るリフレッシュイベントの性能に関係する。システムの
負荷が軽いとき、他のタスクが非常にすばやく完了する
のでリフレッシュイベントはより頻繁に発生する。した
がって、空きバッファの割付は、特定チャネル上のトラ
ヒックストリームの要求に対する応答が良くなるので、
割り付けられたバッファが空になり、サービスを受けら
れなくなることが避けられる。
【0018】キューは、環状リスト内で識別され、その
リスト上で指定された順序の範囲内で使用される。リフ
レッシュイベント毎に、空きバッファプール内で十分な
バッファが利用可能である場合、各キューは、関連した
チャネルのグループの帯域幅に依存してキュー毎に変化
する予め指定された数の空きバッファで満たされる。空
きバッファプール内のバッファが環状リスト内の全ての
キューを充填するために十分ではない場合、利用可能な
空きバッファが使い尽くされるまで多数のキューが補給
される。補給が終わる環状リスト内の位置は記憶される
ので、次のリフレッシュイベントの際に、補給は、一般
的に、先に終了したポイントから再開される。リフレッ
シュイベント中に空きバッファプールの補給が行なわれ
た後、別の方法を使用してもよい。一実施例において、
部分的な補給が阻止され、補給は、補給を完了するため
に十分な数の空きバッファを利用することができる最後
のキューで終了する。この場合、十分な空きバッファが
利用できるようになる次のリフレッシュイベントの際
に、補給は環状リストの次のキューから再開される。
【0019】或いは、キューの補給を行なうために十分
な数の空きバッファを利用できない場合、そのキュー
は、利用可能なすべての空きバッファを用いて部分的に
補給される。部分的に補給されたキューは以下の方法に
従って補給される。第1の方法の場合、部分的に補給さ
れたキューは補給され続けが、この補給は、キューが現
在の環状リストサイクル内のリフレッシュイベント中に
不十分な数のバッファしか与えられなかった時点でキュ
ーを補給するため最初に要求された数のバッファを累積
的に受信するまで続けられる。第2の方法では、補給は
部分的に補給されたキューを用いて続けられ、キューを
所定の空きバッファの最大数まで完全に補給することが
試みられる。この方法の場合に、補給は、現在キューが
所定の空きバッファの最大数まで補給されたときに限り
環状リスト上の次のキューまで進む。さらに別の第3の
方法の場合、次のリフレッシュイベントの際に、補給
は、前のリフレッシュイベント中に部分的に補給された
キューの後のキューで続けられる。
【0020】DMAコントローラ40によってフレームメ
モリ50に記憶されたデータは、SARコントローラ60
によりアクセスされ、ATMセルに変換され、入力ポート
プロセッサ70を介してATM交換機に送信される。SARコ
ントローラ60は、商業的に入手可能なSARにより構成
される。このようなSARの一例は、名称が品番TNETA1570
であり、Texas Instruments, Inc.から市販されてい
る。かくして、データは、T1ライン5で受信されたフレ
ームフォーマットから入力ポートプロセッサ70の出力
側でのATMセルフォーマットに変換される。
【0021】図3及び図4では、ATMクロスバ交換機か
ら受信されたデータに関してラインを介して伝送する前
に行なわれるATMセルフォーマットからフレームフォー
マットへの変換と、種々のATMトラヒックストリームを
使えるようにするため利用されるキューとが説明され
る。データは、ライン91を介してATM網クロスバ交換
機から受信される。出力ポートプロセッサ(OPP)180
は、ATMクロスバ交換機から着信セルストリームを受信
する。OPP180はATMセルのデータを再組立のためSAR
160に転送する。
【0022】SAR160は出力ポートプロセッサ(OPP)
180からのデータを受信し、AAL5毎にフレームを再組
立し、AAL5トレーラを照合し、ペイロード及びFR情報を
含むデータをフレームメモリ150に送る。より詳細に
は、SARは着信ATMセルを受信し、ATMアドレス(VPI/VC
I)を確認する。認識されないアドレスを有するセルは
廃棄される。認識されたVPI./VCIアドレスを有するセル
に対し、SARは、後述するように多数のキューを使用
し、データストリーム毎に着信トラヒックを格納するた
めそれらのキューからのバッファを割り当てる。空きバ
ッファプールからのバッファは、以下に説明するように
周期的又は非周期的ベースの循環配分方式リフレッシュ
技術による本発明にしたがってキューに動的に割り付け
られる。
【0023】単一データストリームが残りのデータスト
リームを犠牲にして空きバッファを利用することを防止
するため、SAR160は、データ記憶のため利用可能な
バッファを識別する複数のキューを利用する。SAR16
0は各ATMセルを受信する。SARは、セルが確立されたコ
ネクションと関連するかどうかを判定するため、セルの
VPI/VCIアドレスに基づいて参照動作を行なう。より詳
細には、SARは、DMAエンジンがそのVPI/VCIアドレスを
有するセルに割り当てられたかどうかを判定する。その
VPI/VCIアドレスを有するセルに割り当てられたDMAエン
ジンが存在しない場合、セルは廃棄される。DMAエンジ
ンがVPI/VCIアドレスに割り当てられたとき、セルは以
下の通り処理される。
【0024】各DMAエンジンは、それぞれのDMAエンジン
を動作させるため必要な動作的パラメータを収容する制
御ブロックを有する。1個のキューが各DMAエンジンと
関連付けられる。キューはDMAエンジンが使用するため
利用できる空きバッファの識別情報を含む。各DMAエン
ジンには1個のキューが関連付けられているが、多数の
DMAエンジンが1個のキューを共用してもよい。
【0025】DMAエンジンが割り当てられたSAR160で
セルを受信したとき、DMAエンジンは、DMAエンジンがセ
ルを記憶するため識別されたバッファを既に有するか、
或いは、DMAエンジンがセルを記憶するため新しいバッ
ファを獲得する必要があるかを判定する必要がある。新
しいバッファが必要なとき、DMAエンジンは、次の利用
可能なバッファの識別情報を獲得するためDMAエンジン
と関連したキューにアクセスする。キュー内に利用可能
なバッファが無い場合、セルデータは廃棄される。バッ
ファを利用できるとき、バッファの識別情報がキューか
ら削除され、セルのVPI/VCIアドレスと一致したDMAエン
ジンに割り当てられる。DMAエンジンはせるデータをバ
ッファにコピーする。
【0026】新しいフレームに関連したセルが到着する
とき、DMAエンジンは新しいバッファを要求し、新しい
バッファが利用できるとき、そのセルを新しいバッファ
に格納する。部分的に受信されたフレームに関連したセ
ルは、十分な空間が残っている場合、既にDMAエンジン
によって使用中のバッファに記憶される。DMAエンジン
により使用中のバッファ内に十分な空間が残っていない
場合、新しいバッファが再度キュー入れされ、新しいバ
ッファが利用できるならばデータは新しいバッファに記
憶される。セルが到着し、セルを記憶するため利用可能
なバッファが存在しない場合、セルは廃棄され、フレー
ムは失われる。
【0027】上記のバッファは、リフレッシュイベント
に応じてDMAエンジンに関連したキューに割り付けられ
る。これらのリフレッシュイベントの際に、空きバッフ
ァプールからのバッファは、空きバッファプール内で利
用可能なバッファが存在する場合、それぞれのキュー内
のバッファの量がそのキューに対し予め指定された最大
数に達するように各キューに割り当てられる。かくし
て、それぞれのDMAエンジンによりキューから取り出さ
れたバッファは、空きバッファプールからのバッファと
置き換えられる。DMAエンジンがそのキューに割り当て
られたバッファの貯えを使い果たしたとき、対応したデ
ータストリームからの更なるデータは廃棄される。した
がって、特定のキューに関するバッファの枯渇は他のキ
ューに関連したバッファの利用可能性に影響を与えな
い。そのため、このような他のバッファを利用するデー
タストリームの性能は影響されない。キューの中が空に
なったデータストリームは、少なくとも1個のバッファ
がそれぞれのキューに割り付けられる次のリフレッシュ
イベントの際に、データの記憶を再開する。
【0028】一実施例において、リフレッシュイベント
は周期的に発生し、リアルタイムクロック間隔と同期す
る。本実施例の場合、CPUの負荷が軽く、バッファが利
用可能であっても、ある種のデータストリームに対する
サービスは、リフレッシュ期間の長さに起因して、次の
同期的に発生するリフレッシュイベントまで拒否され
る。
【0029】他の実施例において、リフレッシュイベン
トは非同期的に発生し、リフレッシュイベントの頻度は
CPU負荷に反比例する。CPU155はフレーム・リレー・
プロトコルを含む一連のタスクを実行する。CPU155
によって実行されるタスクの一つは、以下に説明するよ
うにリフレッシュイベントの性能と関係する。システム
の負荷が軽いとき、他のタスクは非常にすばやく終了す
るので、リフレッシュイベントはより頻発する。したが
って、空きバッファの割付は、特定チャネル上のトラヒ
ックストリームの要求に対する応答が良くなるので、割
り付けられたバッファが空になり、サービスを受けられ
なくなることが避けられる。
【0030】リフレッシュ操作は、キューを複数の優先
度レベルに分離し、優先度の順番にキューレベルをサー
ビスすることにより改良される。各キューには、データ
ストリームに適用されることが予想されるトラヒックの
タイプに依存して優先度レベルが割り当てられる。たと
えば、優先度レベル1は、完全に保証されたデータスト
リームを取り扱うデータチャネルに割り当てられ、優先
度レベル2は低損失であることを特徴とするデータスト
リームを取り扱うデータチャネルに割り当てられ、上位
優先度の優先度レベル3は低遅延であることを特徴とす
るデータストリームを取り扱うデータチャネルに割り当
てられ、上位優先度の優先度レベル4は低損失であるこ
とを特徴とするデータストリームを取り扱うデータチャ
ネルに割り当てられ、中位優先度の優先度レベル5は低
遅延であることを特徴とするデータストリームを取り扱
うデータチャネルに割り当てられ、中位優先度の優先度
レベル6は低損失であることを特徴とするデータストリ
ームを取り扱うデータチャネルに割り当てられ、下位優
先度の優先度レベル8は最善の作用であることを特徴と
するデータストリームを取り扱うデータチャネルに割り
当てられる。多数のキューが同じ優先度レベルに割り当
てられる。
【0031】リフレッシュイベントが発生したとき、最
高優先度レベルが割り当たられたキューは、空きバッフ
ァプールから最初にバッファが割り付けられる。キュー
に割り当てられる予め指定された最大数のバッファが優
先度レベル内の各キューに割り付けられたとき(最大数
のバッファでキューを満たすことをトップオフと称す
る)、次の優先度レベルは、十分な空きバッファが利用
できる場合に、トップオフされる。このプロセスは、空
きバッファプールに空きバッファが存在する限り、或い
は、各優先度レベルにおけるすべてのキューがトップオ
フされるまで繰り返される。
【0032】各優先度レベルの範囲内で、キューは環状
リストとして並べられる。キューの間でフェアネスを実
現するため、図1及び図2と共に説明した方法は、各優
先度レベルで採用され、それぞれのレベルでのキューの
補給が前のリフレッシュイベントの際に補給が中止され
た点から継続される。
【0033】それぞれの優先度レベル内でフェアネスを
実現する上記の方法において、優先度レベル内の各キュ
ーは同一優先度レベル内では他のキューと同様に取り扱
われ、環状リスト内の位置に起因して空になることは防
止される。
【0034】図5を参照するに、循環配分方式リフレッ
シュ操作の説明図が示されている。図3に示されたDMA
コントローラがデータを変更する時点で、適当なキュー
に対する空きバッファのリフレッシュは、フェアネスを
改良し、システムの性能を向上させるように変更され得
る。
【0035】図示された実施例の場合、8段階の優先度
レベルが設けられる。レベル1は最高優先度レベルであ
り、レベル8は最低優先度レベルである。バッファキュ
ーはある優先度レベルに割り当てられる。本実施例にお
いて、各優先度レベルは、Q1からQ8までの番号が付け
られた8個のキューを含む。最初に、各キューには、そ
のキューに関連した着信データストリームを処理するた
め、所定の最大数のバッファが割り当てられる。各キュ
ーは、そのキューに割り付けられたバッファを利用し、
割り付けられたバッファが着信データストリームに利用
されるときに利用可能なバッファの数をデクリメントす
る。選択された時点で、キューのバッファの数はリフレ
ッシュ(トップオフ)される。たとえば、あるキューに
対するバッファの最大数が4に設定されている場合、リ
フレッシュイベント後に、そのキューは、再び4個のバ
ッファを利用することができるようになる。特定のキュ
ーがリフレッシュイベントの発生前に割り付けられた全
てのバッファを使用したとき、データストリームからの
データは、リフレッシュイベントが発生し、バッファが
そのデータストリームのためのキューに回復されるまで
廃棄される。キューは優先度レベルの順番にリフレッシ
ュされる。リフレッシュ操作中に、レベル1のキュー2
20が最初に最大数にトップオフされる。レベル2のキ
ュー230は、次に、トップオフされ、その後に、レベ
ル3のキュー240がトップオフされる。このプロセス
は、レベル8のキュー250がトップオフされるか、或
いは、割付のため利用可能なバッファが無くなるまで続
けられる。
【0036】
【実施例】例示の目的のため、レベル1の各キューは、
最大数の10個のバッファがそれぞれに割り付けられる
場合を考える(勿論、異なる数のバッファが各キューに
割り当てられても構わない)。また、リフレッシュイベ
ントの前に、キュー1が4個のバッファを利用し、キュ
ー2が3個のバッファを利用し、残りのキューはそれぞ
れのバッファを一つも使用していない場合を考える。優
先度レベル2では、キュー4及びキュー6が3個のバッ
ファを使用し、優先度レベル3では、キュー6が1個の
バッファを使用し、キュー7が6個のバッファを使用し
ている。最後に、空きバッファプール内では16個のバ
ッファが利用可能である場合を考える。
【0037】リフレッシュ操作は、優先度レベル1の最
初のキューで始まり、キュー1を最大数の10個の空き
バッファで満たすため、空きバッファプールから4個の
バッファを割り付ける。このとき、空きバッファプール
は12個のバッファを有する。リフレッシュ操作はレベ
ル1のキュー2に関して続けられ、3個のバッファがキ
ュー2に割り付けられ、これにより、9個のバッファが
空きバッファプールに残る。優先度レベル1のキュー2
乃至キュー8は、リフレッシュイベントの間の期間中に
バッファを使用しなかったので、各キューには依然とし
て最大数の10個の空きバッファが割り付けられてい
る。したがって、リフレッシュ操作は次に高い優先度レ
ベルであるレベル2で続けられる。レベル2のキュー4
は、3個のバッファを割り付けることによりトップオフ
され、空きバッファプールには6個のバッファが残る。
レベル2のキュー6には3個のバッファが割り付けら
れ、空きバッファプールには3個のバッファが残る。優
先度レベル2のその他のキューは最大バッファ数を保っ
ているので、空きバッファプールからそれらのキューへ
のバッファの割付は行なわれない。したがって、リフレ
ッシュ操作は優先度レベル3に続く。
【0038】優先度レベル3では、キュー6に1個のバ
ッファが割り付けられ、空きバッファプールには2個の
バッファが残る。残りの2個のバッファはキュー7に割
り付けられる。キュー7は、リフレッシュ間隔中に6個
のバッファを使用しているので、完全にトップオフさせ
るため6個のバッファを要求するが、2個のバッファし
か利用できない。これ以上の空きバッファは利用できな
いので、リフレッシュ操作は終了される。
【0039】次のリフレッシュ操作では、優先度レベル
1及び2を通過して優先度レベル3まで進み、最初に優
先度レベル3のキュー7がトップオフされる。その理由
は、前回のリフレッシュ操作でキュー6は完全にトップ
オフされ、キュー7は完全異はトップオフされていない
からである。このようにして、優先度レベル内の全ての
キューが平等に取り扱われ、リフレッシュリング内の位
置によって同じ優先度レベル内で他のキューよりも優先
されるキューは存在しない。
【0040】上記の方法では、所定の優先度レベルの単
一データストリームは、その優先度レベルの残りのデー
タストリームがバッファプールへのアクセス権を獲得す
ることを阻止し得ない。各データストリームにそれぞれ
のキューと最大数のバッファとを割り当て、キューに優
先度を付けることによって、優先度の高いデータストリ
ームが先に空きバッファを割り付けられることを保証す
ると共に、空きバッファは公正な形で割り付けられる。
【0041】上記の方法及び装置は、T1データストリ
ームを使用する状況で説明されているが、同じ技術は、
たとえば、例示的に、フレーム・リレー・データ輸送に
利用されるE1、T3及びE3を含む他の広域ネットワ
ークプロトコルにも利用される。同様に、上記のバッフ
ァ割付方法及び装置は、共通バッファプールがこのバッ
ファの使用を要求するコンピュータプロセスの間で共用
される必要があるシステムで利用され、各プロセスに利
用可能なバッファの貯えを他のプロセスによって作成さ
れた要求から保護する点が望ましい。
【0042】本発明の好ましい実施例の説明を行なった
が、当業者に明白なように、上記の方法及び装置に対し
上記以外の実施例並びに変形例を用いることができる。
したがって、本発明は、上記の実施例に制限されるべき
ではなく、特許請求の範囲に記載された事項の範囲並び
に精神だけによって制限されるべきである。
【図面の簡単な説明】
【図1】フレーム・リレー・データストリームを受信
し、ATMデータストリームを送信するシステムのブロッ
ク図である。
【図2】着信側フレーム・リレー・トラヒックに応じた
バッファ記憶の説明図である。
【図3】ATMデータストリームを受信し、フレーム・リ
レー・データストリームを送信するシステムのブロック
図である。
【図4】着信側ATMセルトラヒックに応じたバッファ記
憶の説明図である。
【図5】本発明の循環配分方式リフレッシュの説明図で
ある。
【符号の説明】
220 優先度レベル1のキュー 230 優先度レベル2のキュー 240 優先度レベル3のキュー 250 優先度レベル8のキュー Q1,Q2,...,Q8 キュー
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) H04L 11/20 102B (72)発明者 ニール シンガー アメリカ合衆国,マサチューセッツ州 02420,レキシントン,ノース・ストリー ト 50番 (72)発明者 カン−セン ル アメリカ合衆国,マサチューセッツ州 01720,アクトン,ローズ・コート 5番

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 少なくともある時点で複数の空きバッフ
    ァを有するバッファプールを共用する複数のデータスト
    リームを受信する手順と、 上記空きバッファの中から選択された空きバッファを識
    別するキューを上記複数のデータストリームの各データ
    ストリームに関連付ける手順と、 各キュー毎に、上記バッファプール内で上記複数の空き
    バッファから上記それぞれのキューに割り当てられるべ
    き所定の最大数のバッファを識別する手順と、 指定されたリフレッシュイベントの際に、少なくとも1
    個のキューにそれぞれの所定の最大数のバッファが割り
    付けられていない場合に、上記バッファプールからの少
    なくとも1個の付加的な空きバッファを上記少なくとも
    1個のキューに追加する手順と、 データが到着したとき、それぞれのデータストリーム毎
    に最大数まで上記複数の空きバッファからのバッファを
    利用する手順と、 上記複数のデータストリームの中で、上記所定の最大数
    のバッファが連続した上記リフレッシュイベントの間に
    利用される各データストリーム毎にデータ記憶を一時的
    に中止する手順と、 上記複数のデータストリームの中で少なくとも1個のデ
    ータストリームに対し、上記少なくとも1個の付加的な
    空きバッファがデータ記憶が一時的に中止された上記少
    なくとも1個のデータストリームに関連した上記キュー
    に追加されるのに応じて、データ記憶を再開する手順と
    を含むバッファを割り付ける方法。
  2. 【請求項2】 上記指定されたリフレッシュイベントは
    周期的に発生する請求項1記載の方法。
  3. 【請求項3】 上記指定されたリフレッシュイベントは
    リアルタイムクロックに同期している請求項2記載の方
    法。
  4. 【請求項4】 上記指定されたリフレッシュイベントは
    非周期的に発生する請求項1記載の方法。
  5. 【請求項5】 上記指定されたリフレッシュイベントは
    CPU負荷に反比例したレートで発生する請求項4記載の
    方法。
  6. 【請求項6】 上記複数のデータストリームを受信する
    手順は複数のフレーム・リレー・データストリームを受
    信する手順を含む請求項1記載の方法。
  7. 【請求項7】 上記複数のデータストリームを受信する
    手順は、T1、E1、T3及びE3のデータストリームよりなる
    群から選択された複数のフレーム・リレー・データスト
    リームを受信する手順を含む請求項6記載の方法。
  8. 【請求項8】 上記複数のデータストリームを受信する
    手順は複数のATMデータストリームを受信する手順を含
    む請求項1記載の方法。
  9. 【請求項9】 上記空きバッファの中から選択された空
    きバッファを識別するキューを関連付ける手順は、各キ
    ューに優先度レベルを割り当てる手順を有し、 上記少なくとも1個の付加的な空きバッファを追加する
    手順は、各キューに割り当てられた上記優先度レベルの
    順番で、上記優先度レベル内の最初のキューから行なわ
    れる請求項1記載の方法。
  10. 【請求項10】 少なくともある時点で複数の空きバッ
    ファを有するバッファプールを共用する複数のデータス
    トリームを入力ポートに受信する手順と、 上記空きバッファの中から選択された空きバッファを識
    別し、キュー識別子の環状リスト内で個々に識別される
    キューを上記複数のデータストリームの各データストリ
    ームに関連付ける手順と、 各キュー毎に、上記バッファプール内で上記複数の空き
    バッファから上記それぞれのキューに割り当てられるべ
    き所定の最大数のバッファを識別する手順と、 指定された非周期的なリフレッシュイベントの際に、少
    なくとも1個のキューにそれぞれの所定の最大数のバッ
    ファが割り付けられていない場合に、上記バッファプー
    ルからの少なくとも1個の付加的な空きバッファを上記
    少なくとも1個のキューに追加する手順と、 データが到着したとき、それぞれのデータストリーム毎
    に最大数まで上記複数の空きバッファからのバッファを
    利用する手順と、 上記複数のデータストリームの中で、上記所定の最大数
    のバッファが連続した上記リフレッシュイベントの間に
    利用される各データストリーム毎にデータ記憶を一時的
    に中止する手順と、 上記複数のデータストリームの中で少なくとも1個のデ
    ータストリームに対し、上記少なくとも1個の付加的な
    空きバッファがデータ記憶が一時的に中止された上記少
    なくとも1個のデータストリームに関連した上記キュー
    に追加されるのに応じて、データ記憶を再開する手順と
    を含むバッファを割り付ける方法。
  11. 【請求項11】 上記複数のデータストリームを受信す
    る手順は複数のフレーム・リレー・データストリームを
    受信する手順を含む請求項10記載の方法。
  12. 【請求項12】 上記複数のデータストリームを受信す
    る手順は、T1、E1、T3及びE3のデータストリームよりな
    る群から選択された複数のフレーム・リレー・データス
    トリームを受信する手順を含む請求項10記載の方法。
  13. 【請求項13】 上記複数のデータストリームを受信す
    る手順は複数のATMデータストリームを受信する手順を
    含む請求項10記載の方法。
  14. 【請求項14】 上記指定されたリフレッシュイベント
    はCPU負荷に反比例したレートで発生する請求項10記
    載の方法。
  15. 【請求項15】 少なくともある時点で複数の空きバッ
    ファを有するバッファプールを共用する複数のデータス
    トリームを受信する手順と、 上記空きバッファの中から選択された空きバッファを識
    別し、キュー識別子の環状リスト内で個々に識別される
    キューを上記複数のデータストリームの各データストリ
    ームに関連付ける手順と、 各キュー毎に、上記バッファプール内で上記複数の空き
    バッファから上記それぞれのキューに割り当てられるべ
    き所定の最大数のバッファを識別する手順と、 指定されたリフレッシュイベントの際に、少なくとも1
    個のキューにそれぞれの所定の最大数のバッファが割り
    付けられていない場合に、上記バッファプールからの少
    なくとも1個の付加的な空きバッファを上記少なくとも
    1個のキューに追加する手順と、 データストリームのそれぞれのデータが到着したとき、
    対応したデータストリーム毎に最大数まで上記キュー内
    で識別されたバッファを利用する手順と、 上記リフレッシュイベントの中の最初のリフレッシュイ
    ベントに応じて、上記追加する手順で追加される上記少
    なくとも1個の付加的なバッファを受信するため上記キ
    ューの中から少なくとも1個のキューを決定する手順
    と、 上記少なくとも1個のキューを決定する手順に基づい
    て、上記最初のリフレッシュイベントの後に続く次のリ
    フレッシュイベントに応じて、上記複数のキューの中か
    ら選択された1個のキューに対し上記追加する手順を実
    行する手順と、 上記複数のデータストリームの中で、上記所定の最大数
    のバッファが連続した上記リフレッシュイベントの間に
    利用される各データストリーム毎にデータ記憶を一時的
    に中止する手順と、 上記複数のデータストリームの中で少なくとも1個のデ
    ータストリームに対し、上記少なくとも1個の付加的な
    空きバッファがデータ記憶が一時的に中止された上記少
    なくとも1個のデータストリームに関連した上記キュー
    に追加されるのに応じて、データ記憶を再開する手順と
    を含むバッファを割り付ける方法。
  16. 【請求項16】 上記複数のデータストリームを受信す
    る手順は複数のフレーム・リレー・データストリームを
    受信する手順を含む請求項15記載の方法。
  17. 【請求項17】 上記複数のデータストリームを受信す
    る手順は、T1、E1、T3及びE3のデータストリームよりな
    る群から選択された複数のフレーム・リレー・データス
    トリームを受信する手順を含む請求項15記載の方法。
  18. 【請求項18】 上記複数のデータストリームを受信す
    る手順は複数のATMデータストリームを受信する手順を
    含む請求項15記載の方法。
  19. 【請求項19】 上記追加する手順の後に、上記追加す
    る手順の最初のリフレッシュイベントに応じて上記すく
    なくとも1個の付加的なバッファを受信するため上記キ
    ューの中の最後のキューを決定する手順と、 上記決定する手順に基づいて、上記最初のリフレッシュ
    イベントの後に続く次のリフレッシュイベントに応じ
    て、上記複数のキューの中から選択された1個のキュー
    に対し上記加算する手順を実行する手順とを更に有する
    請求項15記載の方法。
  20. 【請求項20】 上記実行する手順は、少なくとも1個
    の付加的なバッファを受信するため上記キューの中の最
    後のキューであると判定されたキューから上記追加する
    手順を開始する手順を有する請求項15記載の方法。
  21. 【請求項21】 上記実行する手順は、少なくとも1個
    の付加的なバッファを受信するため上記キューの中の最
    後のキューであると判定されたキューの後に続くキュー
    として上記キュー識別子の環状リスト内で識別されたキ
    ューから上記追加する手順を開始する手順を有する請求
    項15記載の方法。
  22. 【請求項22】 上記決定する手順は、上記所定の最大
    数までそれぞれのキューを補給するため十分な数のバッ
    ファが割り付けられるべき上記キューの中の最後のキュ
    ーを決定する手順を有し、 上記実行する手順は、それぞれのキューをそれぞれのキ
    ューに割り付けられた上記所定の最大数のバッファまで
    補給するため十分な数のバッファが割り付けられるべき
    上記キューの中の最後のキューであると判定されたキュ
    ーの後に続くキューとして上記キュー識別子の環状リス
    ト内で識別されたキューから上記追加する手順を開始す
    る手順を有する請求項15記載の方法。
  23. 【請求項23】 上記関連付ける手順は、 リスト毎に所定の優先度レベルが関連付けられたキュー
    識別子の複数の環状リストを与える手順と、 上記複数の環状リストの中の一つの環状リストを用いて
    各キューを識別する手順とを有する請求項15記載の方
    法。
  24. 【請求項24】 上記追加する手順は、下位の優先度レ
    ベルの環状リストよりも先に上位の優先度レベルの環状
    リスト内で識別されたキューに対し実行される請求項2
    3記載の方法。
JP2000074802A 1999-03-16 2000-03-16 循環配分方式バッファリフレッシュ Pending JP2000307609A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12457199P 1999-03-16 1999-03-16
US124571 1999-03-16

Publications (1)

Publication Number Publication Date
JP2000307609A true JP2000307609A (ja) 2000-11-02

Family

ID=22415642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000074802A Pending JP2000307609A (ja) 1999-03-16 2000-03-16 循環配分方式バッファリフレッシュ

Country Status (2)

Country Link
EP (1) EP1037499A3 (ja)
JP (1) JP2000307609A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123081A (ja) * 2008-06-19 2016-07-07 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2321820B (en) * 1997-01-17 1999-04-14 Tadhg Creedon Method and apparatus for buffer management in virtual circuit systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016123081A (ja) * 2008-06-19 2016-07-07 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション

Also Published As

Publication number Publication date
EP1037499A3 (en) 2004-04-21
EP1037499A2 (en) 2000-09-20

Similar Documents

Publication Publication Date Title
US5640389A (en) Traffic shaper and packet communication apparatus
US7046686B1 (en) Integrated circuit that processes communication packets with a buffer management engine having a pointer cache
US6097734A (en) Programmable reassembly of data received in an ATM network
US5982771A (en) Controlling bandwidth allocation using a pace counter
US8077618B2 (en) Using burst tolerance values in time-based schedules
JP3618390B2 (ja) Atmスイッチにおける帯域幅要求を処理する装置および方法
US7149227B2 (en) Round-robin arbiter with low jitter
US6519595B1 (en) Admission control, queue management, and shaping/scheduling for flows
JP2981082B2 (ja) パケットセルスケジューリング装置
US7443836B2 (en) Processing a data packet
EP1026856A2 (en) Rate-controlled multi-class high-capacity packet switch
US6813249B1 (en) System and method for prefetching data
JPH07321822A (ja) マルチキャスティング機能を備えた装置
WO1995011554A1 (en) Error detection and correction apparatus for an asynchronous transfer mode (atm) network device
JPH07231327A (ja) 共有資源アクセス割当てを動的に決定する方法及び通信システム
US20060274779A1 (en) Filling token buckets of schedule entries
JPH05304534A (ja) 複数の実体中での資源を時分割多重化する装置及びその方法
US6327271B1 (en) Programmable reassembly of data received in an ATM network
US7565496B2 (en) Sharing memory among multiple information channels
US6324625B1 (en) Rotating rationed buffer refresh
CN111131081B (zh) 一种支持多进程的高性能单向传输的方法和装置
JP2000183886A (ja) 通信装置
JP2000041067A (ja) マルチプレクサ
CN115378885B (zh) 超融合架构下的虚拟机业务网络带宽管理方法及装置
JP2000307609A (ja) 循環配分方式バッファリフレッシュ