JPH0734183B2 - 先入れ先出し式メモリ・バッファ - Google Patents

先入れ先出し式メモリ・バッファ

Info

Publication number
JPH0734183B2
JPH0734183B2 JP33790391A JP33790391A JPH0734183B2 JP H0734183 B2 JPH0734183 B2 JP H0734183B2 JP 33790391 A JP33790391 A JP 33790391A JP 33790391 A JP33790391 A JP 33790391A JP H0734183 B2 JPH0734183 B2 JP H0734183B2
Authority
JP
Japan
Prior art keywords
memory
data
buffer
output
address
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 - Lifetime
Application number
JP33790391A
Other languages
English (en)
Other versions
JPH0581121A (ja
Inventor
デンゼル・ウルフアン・エミール
エンベルセン・アントニウス・ジヨハンヌ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0581121A publication Critical patent/JPH0581121A/ja
Publication of JPH0734183B2 publication Critical patent/JPH0734183B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • H04L49/503Policing

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ・バッファに関
し、特に、通信ネットワークのノードにおいて多数の入
力および出力伝送リンクを相互接続するためにスイッチ
ング装置の出力待ち行列において使用するためのメモリ
・バッファに関するものである。
【0002】
【従来の技術】情報の高速スイッチングは、すべての通
信ネットワークにおいて重要なタスクである。ラインま
たは伝送リンクを相互接続して、その間で情報を交換で
きるようにしたネットワーク・ノードは、しばしばネッ
トワークにおける遅延の原因である。多くの通信量をあ
るノードに集中させたり、特に、大部分の通信量が少数
のリンクだけを通過する場合には、遅延が増大したりま
たは情報が失われることさえある。したがって、高速か
つ実際に無閉塞であるスイッチング・ノードまたは交換
局を有することが望ましい。
【0003】IBM (Technical Disclosure Bulleti
n)、Vol.32、No. 10B、1990年3月、176及び177頁にあ
る"Packet Switching Module"の論文に、スイッチング
速度を増大させる方法が記述されている。このスイッチ
では、宛先ヘッダが、データ・パケットからスイッチに
到達したときに分離される。上記パケットは、パケット
・バッファ・メモリ内の指定アドレスに記憶され、この
バッファ・アドレスは上記スイッチの制御セクションを
通して送られる。スイッチの出力では、パケット・バッ
ファ・メモリからデータ・パケットを検索するために、
バッファ・アドレスが用いられる。このスイッチは、パ
ケットの全内容をスイッチを通して送る従来のスイッチ
よりも多くの利点を有するものの、スイッチ出力に向け
られたデータ・パケットのバッファ・アドレスを一時的
に記憶するための出力待ち行列を形成するために用いら
れる多重ポート先入れ先出し(FIFO)バッファの動作速度
により制限されるという欠点を有する。
【0004】先行技術では、出力待ち行列バッファの動
作速度を増大させるための幾つかの方法がよく知られて
いる。例えば、FIFOバッファを構成するメモリはインタ
リーブすることができるし、1つのメモリに内部スピー
ドアップ・プロセスを含めることができる。しかし、こ
れらの解決法では、特別のハードウェアが要求され、特
別なカストマイズされた論理設計を必要とすることがあ
る。1つのスイッチにおいて入力および出力点数が増加
するにつれて、該システムを再設計しなければならなく
なり、ポートの数がますます多くなると、同じ基本的な
スイッチ構成におけるバッファの動作速度が遅くなる。
【0005】著しい性能低下をもたらすことなくスイッ
チの拡大を可能にするパケット・ネットワーク・スイッ
チの一例が、Yeh他の、IEEE Journal on Selected Area
s inCommunications, Vol. SAC-5、No. 8、1987年10
月、1274-1283頁にある"The Knockout Switch: A Simpl
e, Modular Architecture for High-Performance Packe
t Switching"に記述されている。これは、N入力ライン
に到達するパケットをより少ない数のLラインに集中さ
せるために'集信装置'を使用するシステムについて述べ
てある。上記パケットをL出力ラインから取り出して、
上記パケットが送られる出力に接続された第一に利用可
能なFIFOバッファに上記パケットを記憶させるため
に、'ラウンド・ロビン・サーバ'が使用される。あるタ
イムスロットにおいてL個のパケットが集信装置から現
れるという可能な最悪の事態に対応させるために、設計
上、独立したL個のFIFOバッファが使用される。このス
イッチには、L個を越えるパケットが上記スイッチに達
した場合に、L個のライン出力だけしか存在しないの
で、パケットの一部が集信装置で消失するという重大な
短所がある。さらに、別個の集信装置、ラウンド・ロビ
ン・サーバ、およびL個のFIFOバッファ備えなければな
らないので、ハードウェア・オーバヘッドが大きくなる
ことを避けられない。
【0006】
【発明が解決しようとする課題】本発明の目的は、ハー
ドウェア増加を最小限にとどめ、且つ、上記スイッチ内
でパケットが消失する危険を減少させるような、データ
・パケット・スイッチの出力待ち行列において使用する
ためのFIFOバッファを提供することにある。
【0007】
【課題を解決するための手段】本発明では、各々にすべ
ての入力ポートが接続されるような複数のメモリ・アク
セス制御装置を使用してこの課題を解決している。上記
メモリ・アクセス制御装置は、特定出力向けのすべての
データ・パケットを、入力ポートから受信し、次に、こ
れらのデータ・パケットをFIFOバッファ待ち行列を形成
する隣接メモリ・ロケーションに記憶する。
【0008】本発明のある特定実施例では、各FIFO待ち
行列は、データ・パケットの全内容を記憶せず、むしろ
上記パケットが保持されるような別のパケット・バッフ
ァ・メモリのアドレスだけを記憶する。
【0009】
【実施例】図1に、データ・パケット・スイッチを示す
が、これは、各々が別々のルータ10a-nに接続されるn個
の入力ライン5a-nから構成される。すべてのルータ10a-
nは、1つのパケット・バッファ・メモリ30に接続さ
れ、ルータ10a-nの各々はライン7a-nを介して一連のデ
マルチプレクサ50a-nの1つに接続される。メモリ40
は、パケット・バッファ・メモリ30内の占有されていな
いスペースのアドレスを記憶するために用いられる。上
記メモリ40は、ライン42a-nおよび46a-nを介してルータ
10a-nに接続され、ライン42a-nおよび44a-nを介してデ
マルチプレクサ50a-nに接続される。デマルチプレクサ5
0a-nの各々は、ライン60を介して一連の出力待ち行列70
a-nの各々に個々に接続される。該出力待ち行列70a-n
は、ライン72a-nおよび76a-nを介してマルチプレクサ20
a-nに接続され、ライン72a-nおよび74a-nを介してメモ
リ40に接続される。すべてのマルチプレクサ20a-nは、
データ・パケット・バッファ・メモリ30および出力ライ
ン25a-nに接続される。
【0010】動作時に、様々なパケットは、n個の入力5
a-nの一部またはすべてに達し、次にルータ10a-nに送ら
れる。各パケットはデータおよびヘッダから成り、特に
後者は、上記パケットが出力されるべき出力ライン25a-
nの要求される1つの出力アドレスである。ルータ10a-n
は、入力パケットの内容を、上記パケット・バッファ・
メモリ30の使用可能なバッファ・アドレスに入れる。原
則的に、上記データ・パケットの送られる先の出力ライ
ン25a-nのアドレスはこの時点では冗長的であり、従っ
てかかる情報を上記パケット・バッファ・メモリ30に記
憶しないことにより、上記パケット・バッファ・メモリ
30のスペースを節約することが可能である。しかし、簡
単にするために、この情報は望ましい実施例において除
去されていないし、該データだけでなくヘッダのすべて
が、上記パケット・バッファ・メモリ30に記憶される。
メモリ40は、すべての自由な(すなわち未使用)バッファ
・アドレスの値を記憶し、要求のあり次第、ライン42a-
nおよび46a-nに沿ってそれらをルータ10a-nに供給す
る。上記メモリ40は、いずれかの標準FIFOメモリまたは
出力待ち行列70a-nを形成するのに用いられるものと類
似したメモリにより形成される。実際には、スイッチの
動作速度を上げるために、通常は上記ルータ10a-nの各
々に対し、入力パケットを記憶するためにすぐに用いる
ことのできる1つの使用可能なバッファ・アドレスが割
り当てられている。上記ルータ10a-nの各々は、その1
つの使用可能なバッファ・アドレスをパケットに割り当
てたときに、上記メモリ40から別の使用可能なバッファ
・アドレスを要求するだけである。上記パケットの出力
アドレスを含むかまたは出力アドレスそのものだけを含
む上記パケット・ヘッダは、ルータ10a-nの各々1つか
らデマルチプレクサ50a-nの各々1つにライン7a-n沿い
に送られる。上記パケットが上記パケット・バッファ30
に記憶されているところの上記パケット・バッファ・ア
ドレスは、ライン46a-nおよび44a-nの各々1つに沿って
ルータ10a-nの各々1つから転送されるか、ルータ10a-n
の各々1つに利用可能なパケット・バッファ・アドレス
がない場合には、ライン42a-nおよび44a-nの各々1つに
沿ってメモリ40からデマルチプレクサ50a-nの各々1つ
に転送される。
【0011】各パケットの制御情報を用いて、上記デマ
ルチプレクサ50a-nは、上記パケットの内容を伝送しな
ければならない各出力25a-nに対応する各出力待ち行列7
0a-nに上記パケット・バッファ・アドレスを転送する。
上記ヘッダが上記パケット・バッファ・メモリ30に記憶
されていない場合には、上記ヘッダも、上記デマルチプ
レクサ50a-nから、上記パケット・バッファ・アドレス
とともに記憶される各出力待ち行列70a-nに送られる。
上記パケット・バッファ・メモリ30から上記スイッチ出
力25a-nに上記パケットの内容を伝送するプロセスは、
必要であれば、ライン72a-nおよび76a-nに沿う各出力待
ち行列70a-nからの上記ヘッダを伴う第一パケット・バ
ッファ・アドレスを取り込み、指定アドレスにおける上
記パケット・バッファ30の内容を読み出し、適切な1つ
の出力ライン25a-nにおいてデータおよびヘッダを含む
上記パケットを伝送するところの上記マルチプレクサ20
a-nにより行われる。上記パケット・バッファ・アドレ
スは、上記データ・パケット・バッファ・メモリ30内で
あることを示す上記メモリ・ロケーションが、そのとき
に別のデータ・パケットを自由に記憶できるときには、
上記出力待ち行列70a-nからメモリ40に戻る。
【0012】図2aないし図2cは、図1に示す上記出力待
ち行列70a-nのうちの一部分の構造を示す。説明のため
に、図1に示す上記データ・パケット・スイッチでは、
4つの入力ライン5a-nだけがあるものと仮定されてい
る。したがって、各出力待ち行列70a-nにも、各々が4
つの各デマルチプレクサ50a-nからの4つの入力しかな
い。これらの入力は図2a-図2cにおいて130a-dで示して
ある。
【0013】上記入力130a-dはメモリ・アクセス制御装
置120に送られる。上記メモリ・アクセス制御装置120に
は8点の出力があり、第一組の出力140a-dは第一メモリ
160に接続され、第二組の出力150a-dは第二メモリ170に
接続されている。上記メモリ・アクセス制御装置120に
は、オフセット イン・レジスタ100からの別の入力、お
よびオフセット アウト・レジスタ110への別の出力も含
む。
【0014】メモリ160および170は、ビット書込み可能
メモリから構成される。しかし、該メモリは、データが
重ね書きされないことを保証するために対応するハード
ウェアを追加するのであれば、他のアドレス指定可能な
メモリから構成することもできる。図2a-2cに、この2
つのメモリを2つの別々のメモリ160、170として示す。
しかし、両方のポートを別々にアドレス指定可能な1つ
のデユアル・ポート・メモリを用いることもできる。
【0015】出力待ち行列の動作については、まず図2a
を参照しながら説明する。動作のはじめには、上記第一
メモリ160や第二メモリ170にはデータが保持されないこ
とが仮定されている。次に、3つのパケットが上記スイ
ッチの異なる入力ライン5a-nに同時に達することを仮定
する。前の文の"同時に"とは、上記データ・パケットが
まったく同じ時間にすべて到達するのではなく、むしろ
上記メモリ・バッファ動作の1サイクル以内に到達する
ことを意味している。上記パケットの内容は上記パケッ
ト・バッファ30に転送され、該内容が記憶される上記バ
ッファ・アドレスは、上記出力アドレスとともに上記デ
マルチプレクサ50a-nに送られる。上記デマルチプレク
サ50a-nは、上記出力アドレスをデコードして、すべて
の上記パケットを上記出力ライン25a-nの同じラインに
向けなければならないということを上記出力アドレスが
示しているものとすると、上記バッファ・アドレスを同
じ出力待ち行列に送る。したがって、上記バッファ・ア
ドレスは、上記メモリ・アクセス制御装置120の上記入
力130a-dのうちの3点に到達する。単に説明のために、
上記バッファ・アドレスは、図2aのライン130a、130bお
よび130dに到達するものとして示してある。上記メモリ
・アクセス制御装置120では、該バッファ・アドレスは
隣接の出力ラインに置かれる。したがって、該バッファ
・アドレスはライン140a、140bおよび140cに同時に現
れ、そこから上記第一メモリ160の最初の3つの使用可
能なロケーションに同時に読み込むことができる(この
例では、列1の行1、2および3)。オフセット アウト
・ポインタ110の値は、第一列の行がいずれもセットさ
れていないことを示している0から、第一列の最初の3
つの行が使用されていることを示す3に変わる。この値
は次にオフセット イン・ポインタ100に送られる。
【0016】今度は図2bを参照するが、上記メモリ・バ
ッファの次の動作サイクルでは、別の2つのパケット
が、前の3つのパケットと同じ出力ライン25a-nの1つ
に向けられた上記パケット・スイッチに達する。説明の
ために、該パケットは、上記デマルチプレクサ50a-nか
らライン130bおよび130dに達することが仮定されてい
る。また、その間に、上記メモリ160または170のいずれ
かからバッファ・アドレスが読み出されないことも仮定
されている。上記メモリ・アクセス制御装置120は、オ
フセット イン・ポインタ(すなわち3)の値から、上記メ
モリ160の最初の3つの行が使用されていること、およ
びメモリ160および170の同じ列に未使用行があることが
分かる。したがって、入力130bおよび130dの上記バッフ
ァ・アドレスの値は、上記メモリ・アクセス制御装置12
0により隣接出力ライン、この場合にはライン140dおよ
び150aで同時に出力され、該ラインから、上記メモリ16
0および170の次の使用可能な行に同時に読み込まれる
(すなわち、メモリ160の列1の行4およびメモリ170の
列1の行1)。オフセット アウト・ポインタ110の値
は、5にセットされて、上記メモリ160および170の第一
列の5つの行が使用されており、この値が次にオフセッ
イン・ポインタ100に送られることを示す。
【0017】図2cは、4つのパケットが次に異なる入力
ライン5a-nの上記スイッチにおいて同時に受信され、そ
のすべてを上記出力ライン25a-nの同じラインに送らな
ければならないときに、さらにどのような動作が行われ
るのかを示す。図2bに例証される状況のために、メモリ
160または170のいずれからもバッファ・アドレスが読み
出されないことが再び仮定されている。図2cでは、上記
メモリ・アクセス制御装置120の4つの入力130a-dすべ
てにバッファ・アドレスが示されている。上記メモリ・
アクセス制御装置120ではオフセット イン・ポインタ10
0の値(すなわち5)を用いて、上記メモリ160および170の
第一列に使用可能な行が3つだけ残っていることを確認
する。したがって、該制御装置は、ライン150b、150cお
よび150dにおいて3つの上記バッファ・アドレスを同時
に出力する。4番目のバッファ・アドレスは、ライン14
0aで出力され、メモリ170の最後の3つの行に記憶され
たライン150b、150cおよび150dの出力と同時に、メモリ
160の第二列の第一行に記憶される。同じ動作サイクル
中に同じメモリでのビット位置の2つ以上の列をアドレ
ス指定することはできないので、この動作を行うために
は2つのメモリを用いる必要がある。したがって、同じ
動作サイクル中に、3つのパケットをメモリの第一列に
書き込み、1つのパケットを第二列に書き込む必要があ
るので、2つのメモリが要求される。オフセット アウ
ト・ポインタ110の値は1にセットされて、メモリ160の
第二列の最初の行だけが使用されていることを示す。
【0018】さらに多くのバッファ・アドレスがメモリ
・アクセス制御装置120に達すると、このプロセスが継
続され、メモリ160および170の連続する列の連続する行
は、両メモリが完全に一杯になるまで、上記バッファ・
アドレスにより用いられる。完全に一杯になったなら
ば、情報が消失しないように、あるエラー・メッセージ
を送って、それ以後の入力130a-dに達するバッファ・ア
ドレスを停止させなければならない。バッファ・アドレ
スは、上記メモリ160および170に書き込まれているとき
には、上記メモリ160および170からも読み出されるの
で、上記状況になることは実際にはありそうもない。
【0019】図3にこの動作を示す。2つのレジスタが
図3に示してある。書込みポインタ・レジスタ190は、
バッファ・アドレスを書き込むことのできる次のロケー
ションを示し、読出しポインタ・レジスタ180は、バッ
ファ・アドレスを読み出す次のロケーションを示す。陰
影をつけた部分は、読み出されてないバッファ・アドレ
スが記憶されるロケーションを示し、線のつながりは該
バッファ・アドレスを読み出さなければならない順序を
示す。すべてのメモリ・ロケーションが使用されている
ことを、上記書込みポインタ・レジスタ190の値が示す
ときには、この値は第一メモリ160の最初のロケーショ
ンのそれにリセットされ、このロケーションがバッファ
・アドレスをもはや記憶しないならば、上記出力待ち行
列70a-nの要求される1つに記憶すべき次のバッファ・
アドレスが、メモリ160の列1の行1に書き込まれる。
【0020】データが従来の方法、すなわち同じ列の各
行の1ビットから成るデータ・ワードで、メモリ内に配
列されないことを書き加えておかなければならない。そ
れどころか、図3の各データ・ワードは、同じ行に多数
のビットを含む。言い換えると、従来のように、データ
・ワードはメモリ幅の"方向"に書き込まれないのであ
る。逆に、メモリ奥行き(depth)の"方向"に書き込まれ
る。
【0021】図4に、図2および図3で言及した素子を
組み込んだ図1の上記出力待ち行列70a-nの1つの完全
な構造を示す。図4では、同じ素子を示すために、前の
図2および図3で用いたものと同じ照合番号に100を加
えた番号を用いている。図示の実施例では、メモリ・ア
クセス制御装置220に、8つの入力ライン230および16の
出力ライン240および250がある。8つの出力ライン240
はメモリ260の入力に接続され、8つの出力ライン250は
メモリ270の入力に接続されている。
【0022】レジスタ290は、前述の書込みポインタ・
レジスタ190の機能を行う。このレジスタ290のビットは
3つの群に分けられる。ビットの第一群200は、上記メ
モリ260および270の中の行をアドレス指定するために用
いられる前述のオフセット イン・ポインタ100として用
いられ、上記ビットの値が転送されるライン360により
オフセット アウト・ポインタ210に接続される。ビット
の第一群200の値は、ライン362a-dに沿って上記のメモ
リ・アクセス制御装置220の入力に送られる。上記レジ
スタ290のビットの第二および第三群202は、バス350に
直接接続される。ビットの上記第二群は上記メモリ26
0、270の列をアドレス指定するために用いられ、第三群
は、上記メモリ260、270の列の中の特定メモリ・ロケー
ションをアドレス指定するために用いられる。インクレ
メンタ300は、ライン370により上記レジスタ290のビッ
トの第一群200の最上位ビットの値に接続され、上記バ
ス350の一部と上記メモリ260の書込みアドレス・ポート
との間に並列に置かれている。上記インクレメンタは、
上記メモリの上記列をアドレス指定する上記バス350の
該ビット、すなわち上記レジスタ290のビットの第二群
を増分するために用いられ、ライン370の値が1である
ときにはいつでもトリガされる。これは、上記メモリ27
0の列のうちの1つにおけるすべての行がいっぱいで、
次のバッファ・アドレスをメモリ260に書き込まなけれ
ばならないときにはいつでも、上記バッファ・アドレス
が上記メモリ260の次の列に書き込まれることを保証す
る。
【0023】読出しポインタ・レジスタ280には、同様
に3群に分けられたビットがある。ビットの第一群282
はマルチプレクサ310に接続され、ビットの第二および
第三群284はバス340に接続されている。上記バス340に
接続された書込みポインタ・レジスタ280のビットの第
二よび第三群284は、上記メモリ260、270の列内の1つ
の列およびメモリ・ロケーションをアドレス指定するた
めに用いられ、ビットの第一群282は、上記メモリ260、
270の1つの特定行をアドレス指定するために用いられ
る。上記の読出しポインタ・レジスタ280は、ビットの
第二群284を用いて、バス340に沿ってバッファ・アドレ
スを読み出す上記列番号を、メモリ260および270の読出
しアドレス入力に送る。この列の行に含まれるすべての
バッファ・アドレスは、上記ライン320で上記メモリ260
から出力され、ライン330でメモリ270から出力される。
ライン320および330が接続されている上記マルチプレク
サ310は、読出しポインタ・レジスタ280のビットの第一
群282の値を用い、上記出力380に沿って一度に1つのバ
ッファ・アドレスを、図1に示す上記マルチプレクサ20
a-nの1つに入力する。第一バッファ・アドレス出力
は、メモリ260から読み出される上記の列の行1に含ま
れる出力であり、最後の出力は、メモリ270から読み出
される上記列の行8に含まれる出力である。1つの列に
おけるすべてのバッファ・アドレスを上記マルチプレク
サ310から読み出してしまうと、バス340に沿って上記読
出しポインタ・レジスタ280から信号が送られて、ライ
ン320および330に沿って上記メモリ260および270の次の
列に含まれる上記バッファ・アドレスを出力する。
【0024】本実施例は、上記メモリ・アクセス制御装
置220への8つの入力ライン230および上記メモリ・アク
セス制御装置220からの対応する16の出力ライン240およ
び250を用いて記述してきた。入力ライン数を増加させ
ることは可能であり、回路に作る必要のある適切な改変
は当業者に明らかである。
【0025】前述の実施例では、上記バッファ・アドレ
スだけを上記メモリ260および270に記憶させることを仮
定してきたが、上記パケットの全内容を該メモリに記憶
させることは可能である。
【0026】
【発明の効果】すべての入力データ・パケットの記憶は
1サイクルで完了することができるので、上記データ・
パケットを入力ポートで保持する必要はなく、上記スイ
ッチ内でデータ・パケットが消失することもない。ま
た、本明細書に記述する多重入力FIFOバッファは、内部
スピードアップまたはメモリ・インタリービング手法を
必要としない。その動作速度は、入力および出力ポート
の数とは無関係であるから、必要に応じて拡張すること
ができる。当該バッファは、すべての入力データ・パケ
ットが同じ出力ポートに向けられる場合に、いかなるパ
ケットも上記スイッチ内で消失しないことを保証する
が、各サイクルにおいてすべての入力にデータ要素を送
るように要求することはないし、また各サイクルですべ
ての出力にデータ要素を受け取るように要求することも
ない。上記バッファは、標準のデザイン・ツールを使用
してVLSIにおいて経済的に組み付けることができるし、
通常の部品を用いて構成することができる。
【図面の簡単な説明】
【図1】FIFOバッファを組み込んだ基本的なパケット・
スイッチング・ネットワークを示す図である。
【図2a】出力待ち行列におけるパケット・バッファ・ア
ドレスの記憶状況を示す図である。
【図2b】出力待ち行列におけるパケット・バッファ・ア
ドレスの記憶状況を示す図である。
【図2c】出力待ち行列におけるパケット・バッファ・ア
ドレスの記憶状況を示す図である。
【図3】上記FIFOバッファで使用されるデュアル・メモ
リの配列を示す図である。
【図4】上記パケット・スイッチング・ネットワークで
使用される上記出力待ち行列の全構造を示す図である。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】出力ライン(たとえば240、250)を介してメ
    モリ・アクセス制御手段(たとえば220)に接続されるメ
    モリ(たとえば260、270)を備え、上記メモリ・アクセス
    制御手段(たとえば120、220)が、メモリ入力ライン(た
    とえば230)を通して上記メモリ(たとえば260、270)に記
    憶されるべきデータを受信するようにした、データ・パ
    ケット・スイッチにおいて使用するための並列入力可能
    先入れ先出し式メモリ・バッファにおいて、上記メモ
    リ・アクセス制御手段(たとえば220)が、上記メモリ入
    力ライン(たとえば230)に同時に到達したデータを隣接
    出力ライン(たとえば240、250)に同時に出力し、該隣接
    出力ラインから、該データを上記メモリ(たとえば260、
    270)の連続したロケーションに同時に書き込むようにし
    たことを特徴とする先入れ先出し式メモリ・バッファ。
  2. 【請求項2】上記メモリ(たとえば260、270)がビット・
    アドレス指定可能であり、且つ、上記データを上記メモ
    リ(たとえば260、270)内の指定ロケーションに直接に書
    き込むことができるようにしたことを特徴とする請求項
    1記載のメモリ・バッファ。
  3. 【請求項3】上記メモリ(たとえば260、270)が、独立に
    アドレス指定することのできる2つの別々のメモリ・ユ
    ニットから構成されることを特徴とする請求項1または
    2記載のメモリ・バッファ。
  4. 【請求項4】上記メモリ(たとえば260、270)が、それぞ
    れ独立にアドレス指定することのできる2つの書込みポ
    ートを有する1つのメモリから構成されることを特徴と
    する請求項1または2記載のメモリ・バッファ。
  5. 【請求項5】上記データが出力される第一の隣接出力ラ
    イン(たとえば240、250)を表示するためにオフセット
    イン・ポインタ(たとえば200)を生成するレジスタ(たと
    えば290)と、上記データが出力される最後の次にあたる
    隣接出力ライン(たとえば240、250)を表示するためのオ
    フセット アウト・ポインタ(たとえば210)と、すべて
    のデータが上記メモリ(たとえば260、270)に転送された
    後で、上記オフセット アウト・ポインタ(たとえば210)
    の値が上記レジスタ(たとえば290)に転送されるよう
    に、上記オフセット アウト・ポインタ(たとえば210)
    を上記レジスタ(たとえば290)に接続するための手段(た
    とえば360)を備えたことを特徴とする請求項1ないし4
    のいずれか1項に記載のメモリ・バッファ。
  6. 【請求項6】上記レジスタ(たとえば290)が、上記メモ
    リ(たとえば260、270)の入力アドレス・ポートにも接続
    され、上記データ・パケットが記憶されるべきアドレス
    を示すことを特徴とする請求項5記載のメモリ・バッフ
    ァ。
  7. 【請求項7】上記メモリ(たとえば260、270)が行および
    列に編成され、上記出力ライン(たとえば240、250)の各
    々が上記行の1つに接続され、上記列の各々は上記デー
    タを記憶するための充分なビットを含み、上記レジスタ
    (たとえば290)が、上記隣接出力ライン(たとえば240、2
    50)上の上記データが記憶されるべき列のアドレスを示
    すこととを特徴とする請求項6記載のメモリ・バッフ
    ァ。
  8. 【請求項8】上記メモリ(たとえば260、270)に接続され
    たマルチプレクサ(たとえば310)と、上記マルチプレク
    サ(たとえば310)及び上記メモリ(たとえば260、270)の
    読出しアドレス・ポートへ接続された読出しポインタ
    (たとえば280)とを備え、上記マルチプレクサ(たとえば
    310)は上記データが出力ライン(たとえば380)に沿って
    当該マルチプレクサ(たとえば310)から転送される順番
    を選択し、上記読出しポインタ(たとえば280)は上記メ
    モリ(たとえば260、270)から上記マルチプレクサ(たと
    えば310)にデータのどの列が転送されるべきかを示すよ
    うに構成されていることを特徴とする請求項1ないし7
    のいずれか1項記載のメモリ・バッファ。
  9. 【請求項9】上記メモリ(たとえば260、270)が、完全な
    データ・パケットを記憶しないで、完全なデータ・パケ
    ットが記憶されているパケット・バッファ・メモリ(た
    とえば30)内のロケーションのアドレスだけを記憶する
    ことを特徴とする請求項1ないし8のいずれか1項記載
    のメモリ・バッファ。
JP33790391A 1990-12-20 1991-11-28 先入れ先出し式メモリ・バッファ Expired - Lifetime JPH0734183B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP90811013A EP0492025B1 (en) 1990-12-20 1990-12-20 High-speed multi-port FIFO buffer circuit
CH90811013.3 1990-12-20

Publications (2)

Publication Number Publication Date
JPH0581121A JPH0581121A (ja) 1993-04-02
JPH0734183B2 true JPH0734183B2 (ja) 1995-04-12

Family

ID=8205975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33790391A Expired - Lifetime JPH0734183B2 (ja) 1990-12-20 1991-11-28 先入れ先出し式メモリ・バッファ

Country Status (4)

Country Link
US (1) US5224093A (ja)
EP (1) EP0492025B1 (ja)
JP (1) JPH0734183B2 (ja)
DE (1) DE69031220T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527079A (ja) * 2003-07-02 2007-09-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のシフト・レジスタ機能を有するシングル・メモリ

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504913A (en) * 1992-05-14 1996-04-02 Apple Computer, Inc. Queue memory with self-handling addressing and underflow
US5388238A (en) * 1992-07-24 1995-02-07 At&T Corp. System and method for monitoring the validity of circulating pointers in a FIFO memory
GB2276739A (en) * 1993-03-30 1994-10-05 Ibm System for storing persistent and non-persistent queued data.
JPH07225727A (ja) * 1994-02-14 1995-08-22 Fujitsu Ltd 計算機システム
US5592472A (en) * 1994-10-27 1997-01-07 Hewlett-Packard Company High performance path allocation system and method for a fiber optic switch for a fiber optic network
US5740406A (en) * 1995-05-15 1998-04-14 Nvidia Corporation Method and apparatus for providing fifo buffer input to an input/output device used in a computer system
EP0748087A1 (en) 1995-06-09 1996-12-11 International Business Machines Corporation Access control system for a shared buffer
US5894481A (en) * 1996-09-11 1999-04-13 Mcdata Corporation Fiber channel switch employing distributed queuing
US6031842A (en) 1996-09-11 2000-02-29 Mcdata Corporation Low latency shared memory switch architecture
US6055616A (en) * 1997-06-25 2000-04-25 Sun Microsystems, Inc. System for efficient implementation of multi-ported logic FIFO structures in a processor
US6304910B1 (en) 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6005849A (en) * 1997-09-24 1999-12-21 Emulex Corporation Full-duplex communication processor which can be used for fibre channel frames
US6047339A (en) * 1997-10-27 2000-04-04 Emulex Corporation Buffering data that flows between buses operating at different frequencies
US6438102B1 (en) 1998-06-03 2002-08-20 Cisco Technology, Inc. Method and apparatus for providing asynchronous memory functions for bi-directional traffic in a switch platform
US6967961B1 (en) * 1998-06-03 2005-11-22 Cisco Technology, Inc. Method and apparatus for providing programmable memory functions for bi-directional traffic in a switch platform
US6483850B1 (en) 1998-06-03 2002-11-19 Cisco Technology, Inc. Method and apparatus for routing cells having different formats among service modules of a switch platform
US6463485B1 (en) 1998-06-03 2002-10-08 Cisco Technology, Inc. System for providing cell bus management in a switch platform including a write port cell count in each of a plurality of unidirectional FIFO for indicating which FIFO be able to accept more cell
DE60119866T2 (de) 2000-09-27 2007-05-10 International Business Machines Corp. Vermittlungseinrichtung und verfahren mit getrennten Ausgangspuffern
EP1198098B1 (en) * 2000-09-27 2006-05-24 International Business Machines Corporation Switching arrangement and method with separated output buffers
EP1364552B1 (en) * 2001-02-28 2006-08-30 International Business Machines Corporation Switching arrangement and method with separated output buffers
US6802036B2 (en) * 2001-11-19 2004-10-05 Sun Microsystems, Inc. High-speed first-in-first-out buffer
US9436432B2 (en) * 2005-12-30 2016-09-06 Stmicroelectronics International N.V. First-in first-out (FIFO) memory with multi-port functionality
US8243069B1 (en) * 2006-11-03 2012-08-14 Nvidia Corporation Late Z testing for multiple render targets
US9824058B2 (en) * 2014-11-14 2017-11-21 Cavium, Inc. Bypass FIFO for multiple virtual channels

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4623990A (en) * 1984-10-31 1986-11-18 Advanced Micro Devices, Inc. Dual-port read/write RAM with single array
EP0299264A3 (en) * 1987-07-15 1991-03-20 Advanced Micro Devices, Inc. A byte queing/dequeuing apparatus for handling variable-length data words/instructions in a single clock cycle
NL8702672A (nl) * 1987-11-09 1989-06-01 Philips Nv Serieel geheugen, alsmede beeldgeheugeninrichting en weergeeftoestel voorzien van een of meer seriele geheugens.
US4916658A (en) * 1987-12-18 1990-04-10 International Business Machines Corporation Dynamic buffer control
JPH02117243A (ja) * 1988-10-27 1990-05-01 Toshiba Corp パケット通信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007527079A (ja) * 2003-07-02 2007-09-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 複数のシフト・レジスタ機能を有するシングル・メモリ

Also Published As

Publication number Publication date
EP0492025A1 (en) 1992-07-01
DE69031220D1 (de) 1997-09-11
EP0492025B1 (en) 1997-08-06
US5224093A (en) 1993-06-29
JPH0581121A (ja) 1993-04-02
DE69031220T2 (de) 1998-02-12

Similar Documents

Publication Publication Date Title
EP0492025B1 (en) High-speed multi-port FIFO buffer circuit
EP1616415B1 (en) Method and apparatus for shared multi-bank memory
US4630258A (en) Packet switched multiport memory NXM switch node and processing method
US5008878A (en) High-speed modular switching apparatus for circuit and packet switched traffic
Tamir et al. Dynamically-allocated multi-queue buffers for VLSI communication switches
EP0714534B1 (en) Multiple-port shared memory interface and associated method
EP0581486B1 (en) High bandwidth packet switch
EP0702500B1 (en) Method of multicasting and multicast system
EP0195589B1 (en) Switching system for transmission of data
US4752777A (en) Delta network of a cross-point switch
EP1045558B1 (en) Very wide memory TDM switching system
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
US8243737B2 (en) High speed packet FIFO input buffers for switch fabric with speedup and retransmit
JPH04230144A (ja) 非同期式転送モードスイッチ
EP1398922B1 (en) Balanced linked lists for high performance data buffers in a network device
US7769003B2 (en) Data packet switch and method of operating same
US7991926B1 (en) Scalable memory architecture for high speed crossbars using variable cell or packet length
Iyer et al. Techniques for fast shared memory switches
CN111611180A (zh) 一种支持多协议的动态共享缓冲区
JPH10285173A (ja) Atmセル処理装置
US6891843B1 (en) Apparatus and method for sharing memory using extra data path having multiple rings
JPH04291548A (ja) 高速大容量マトリクス型時間分割ラベル交換方式
BOLT BERANEK AND NEWMAN INC CAMBRIDGE MA Development of a Butterfly (Trademark) Multiprocessor Test Bed: The Butterfly Switch.
JPH1155267A (ja) Atmスイッチ
JPH05175987A (ja) 先入先出メモリ及びセル交換装置