JPH0685842A - 通信装置 - Google Patents
通信装置Info
- Publication number
- JPH0685842A JPH0685842A JP33953792A JP33953792A JPH0685842A JP H0685842 A JPH0685842 A JP H0685842A JP 33953792 A JP33953792 A JP 33953792A JP 33953792 A JP33953792 A JP 33953792A JP H0685842 A JPH0685842 A JP H0685842A
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer
- data buffer
- buffers
- register
- 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
Links
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/064—Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/066—User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【目的】 複数のポート回路を有するパケット交換機の
動作を向上する。 【構成】 ポート回路が取扱うデータ・パケットの各ソ
ースに対しバーチャルFIFOをポート回路に含有させ
ることにより、複数のポート回路を有するパケット交換
機の動作を向上するが、ここでFIFOの格納容量は関
係付けられたソースの必要に応じて増減するものであ
る。
動作を向上する。 【構成】 ポート回路が取扱うデータ・パケットの各ソ
ースに対しバーチャルFIFOをポート回路に含有させ
ることにより、複数のポート回路を有するパケット交換
機の動作を向上するが、ここでFIFOの格納容量は関
係付けられたソースの必要に応じて増減するものであ
る。
Description
【0001】
【産業上の利用分野】本発明はパケット交換機で受信さ
れたデータ・パケットをバッファリングすることに係わ
り、特にパケット交換機でデータ・パケットの各ソース
に対し仮想FIFOメモリ・バッファを提供することに
関する。
れたデータ・パケットをバッファリングすることに係わ
り、特にパケット交換機でデータ・パケットの各ソース
に対し仮想FIFOメモリ・バッファを提供することに
関する。
【0002】
【従来の技術】データ・バッファ、例えばFIFOメモ
リ・バッファは、パケット交換機のポート回路とデータ
・ソースをインタフェースするのに通常用いられる。ポ
ート回路が、例えばレイテンシー(無意識性)、信頼
性、バンド幅などを含めいろ々なグレードのサービスと
関係付けられる複数のデータ・ソースを取扱う場合があ
る。このような場合には、データ・バッファは各データ
・ソースに対し設けられるが、関連するパケット交換機
のスループットを考慮して、そのデータ・バッファは大
きいファイルの転送を取扱うことのできる大きさにされ
る。
リ・バッファは、パケット交換機のポート回路とデータ
・ソースをインタフェースするのに通常用いられる。ポ
ート回路が、例えばレイテンシー(無意識性)、信頼
性、バンド幅などを含めいろ々なグレードのサービスと
関係付けられる複数のデータ・ソースを取扱う場合があ
る。このような場合には、データ・バッファは各データ
・ソースに対し設けられるが、関連するパケット交換機
のスループットを考慮して、そのデータ・バッファは大
きいファイルの転送を取扱うことのできる大きさにされ
る。
【0003】
【発明が解決しようとする課題】そこで、ポート回路が
非常に多数の、例えば512のデータ・ソースを取扱っ
ている場合、そのポートには同数のデータ・バッファが
備えられなければならない。また非常に多数のデータ・
バッファの管理は実に複雑なタスクであって、関係付け
られるポート回路を複雑なものにする。さらに、各バッ
ファが非常に多数のメモリ場所から形成される場合に
は、非常に多数のバッファのポート回路を備えるコスト
は実に高いものとなる。
非常に多数の、例えば512のデータ・ソースを取扱っ
ている場合、そのポートには同数のデータ・バッファが
備えられなければならない。また非常に多数のデータ・
バッファの管理は実に複雑なタスクであって、関係付け
られるポート回路を複雑なものにする。さらに、各バッ
ファが非常に多数のメモリ場所から形成される場合に
は、非常に多数のバッファのポート回路を備えるコスト
は実に高いものとなる。
【0004】
【課題を解決するための手段】パケット交換の技術的進
歩は次のように達成される。ポート回路により取扱われ
る複数のデータ・ソースの各々に対し、その関連するソ
ースの必要に応じ動的に増減する格納容量を有する仮想
FIFOを備えることにより実現される。実施例で説明
すると、複数の仮想FIFOは、次のようにポート回路
の内部のメモリを複数のデータ・バッファに分割するこ
とにより行われる。そこでは、いくつかのデータ・バッ
ファは、夫々のデータ・ソースと関係付けられる。
歩は次のように達成される。ポート回路により取扱われ
る複数のデータ・ソースの各々に対し、その関連するソ
ースの必要に応じ動的に増減する格納容量を有する仮想
FIFOを備えることにより実現される。実施例で説明
すると、複数の仮想FIFOは、次のようにポート回路
の内部のメモリを複数のデータ・バッファに分割するこ
とにより行われる。そこでは、いくつかのデータ・バッ
ファは、夫々のデータ・ソースと関係付けられる。
【0005】残りのデータ・バッファを用いて次のよう
にデータ・バッファのプールを形成する。それは、ソー
スと関連するデータ・バッファの容量が空にされた場合
には、そのデータ・バッファを、関連するデータ・バッ
ファの容量を増加するために、プールから入手したデー
タ・バッファにリンクする。リンクされたデータ・バッ
ファが空になると、それをプールに戻して関連するデー
タ・バッファの容量を減ずる。
にデータ・バッファのプールを形成する。それは、ソー
スと関連するデータ・バッファの容量が空にされた場合
には、そのデータ・バッファを、関連するデータ・バッ
ファの容量を増加するために、プールから入手したデー
タ・バッファにリンクする。リンクされたデータ・バッ
ファが空になると、それをプールに戻して関連するデー
タ・バッファの容量を減ずる。
【0006】
【実施例】図1は交換システムの略ブロック図で、これ
は複数の通信交換装置(例えば、パケット交換機)を有
し、ここではそのうちの2つのパケット交換機100、
200が図示される。周知のように、このようなパケッ
ト交換機は、夫々のデータ・ソース、例えばコンピュー
タ60−1ないし60−Nにより発信されたデータ・パ
ケットを相互に交換するのに設けられている。1つ以上
のパケット交換機が発信パケット交換機と行先パケット
交換機の間の中間交換機として働く例がある。
は複数の通信交換装置(例えば、パケット交換機)を有
し、ここではそのうちの2つのパケット交換機100、
200が図示される。周知のように、このようなパケッ
ト交換機は、夫々のデータ・ソース、例えばコンピュー
タ60−1ないし60−Nにより発信されたデータ・パ
ケットを相互に交換するのに設けられている。1つ以上
のパケット交換機が発信パケット交換機と行先パケット
交換機の間の中間交換機として働く例がある。
【0007】一般的に、パケット交換機は、特にコント
ローラ、メモリおよびクロック回路(図示せず)を有す
るが、これらは関連するパケット交換機の全動作を制御
するものである。またパケット交換機は複数のポート回
路を有し、これらは関連する交換機を夫々(a)データ
・パケット・ソースおよび/または(b)他のパケット
交換機に行く通信パスとインタフェースするためのもの
である。
ローラ、メモリおよびクロック回路(図示せず)を有す
るが、これらは関連するパケット交換機の全動作を制御
するものである。またパケット交換機は複数のポート回
路を有し、これらは関連する交換機を夫々(a)データ
・パケット・ソースおよび/または(b)他のパケット
交換機に行く通信パスとインタフェースするためのもの
である。
【0008】例えば、ポート回路101−1ないし10
1−Pは、交換機100をコンピュータ60−1ないし
60−Nおよび端末50−Mとそれぞれインタフェース
するが、一方トランク・ポート回路102は交換機10
0を交換機200に行く通信パス210とインタフェー
スする。このような各ポート回路は、通常各ポート・ア
ドレスで識別され、1つ以上のチャネル・アドレス(ナ
ンバ)と関係付けられる。ポート回路はこのようなチャ
ネル・アドレスを用いてそのポート回路が取扱うデータ
回路を夫々識別する。
1−Pは、交換機100をコンピュータ60−1ないし
60−Nおよび端末50−Mとそれぞれインタフェース
するが、一方トランク・ポート回路102は交換機10
0を交換機200に行く通信パス210とインタフェー
スする。このような各ポート回路は、通常各ポート・ア
ドレスで識別され、1つ以上のチャネル・アドレス(ナ
ンバ)と関係付けられる。ポート回路はこのようなチャ
ネル・アドレスを用いてそのポート回路が取扱うデータ
回路を夫々識別する。
【0009】交換機200もポート回路201−1ない
し201−Jおよびトランク・ポート202を有し同様
に構成されている。すなわち、ポート回路201−1な
いし201−Jはソース70−1ないし70−Kに対す
るインタフェースを与え、トランク・ポート202は通
信パス210に対するインタフェースを与える。ソース
・コンピュータは多数のいろ々な種類のコンピュータの
いずれでもよい。それらは、例えばパーソナル・コンピ
ュータ、いわゆるワーク・ステーションまたは画像ソー
ス(ビデオ端末)である。
し201−Jおよびトランク・ポート202を有し同様
に構成されている。すなわち、ポート回路201−1な
いし201−Jはソース70−1ないし70−Kに対す
るインタフェースを与え、トランク・ポート202は通
信パス210に対するインタフェースを与える。ソース
・コンピュータは多数のいろ々な種類のコンピュータの
いずれでもよい。それらは、例えばパーソナル・コンピ
ュータ、いわゆるワーク・ステーションまたは画像ソー
ス(ビデオ端末)である。
【0010】さらに、複数のコンピュータはパケット交
換機ポート回路に共通のインタフェース、例えばホスト
・コンピュータ50−1を介して接続することができ
る。そこで、本実施例では、コンピュータ60−1ない
し60−Nは生成したデータ・パケットをホスト・コン
ピュータ50−1に送る。次にホスト・コンピュータ5
0−1は、受取ったパケットをその関連するポート回路
101−1に送り、ポート回路101−1メモリ・バッ
ファの夫々の順番場所に格納される。
換機ポート回路に共通のインタフェース、例えばホスト
・コンピュータ50−1を介して接続することができ
る。そこで、本実施例では、コンピュータ60−1ない
し60−Nは生成したデータ・パケットをホスト・コン
ピュータ50−1に送る。次にホスト・コンピュータ5
0−1は、受取ったパケットをその関連するポート回路
101−1に送り、ポート回路101−1メモリ・バッ
ファの夫々の順番場所に格納される。
【0011】通常、ポート回路メモリ・バッファはコン
ピュータ(または通信パス)にインタフェースを与え、
それは例えば、いわゆる先入れ先出し(FIFO)メモ
リとすることができる。ここでは、1つまたは多数のコ
ンピュータにより生成されたデータ・パケットは、関連
するポート回路FIFOの夫々の順番場所に格納され
る。次に、関連するポート回路は、データ・パケットを
その関連するFIFOに格納された順にアンロードし、
データ・パケットをそれらの目的とする行先に送る。
ピュータ(または通信パス)にインタフェースを与え、
それは例えば、いわゆる先入れ先出し(FIFO)メモ
リとすることができる。ここでは、1つまたは多数のコ
ンピュータにより生成されたデータ・パケットは、関連
するポート回路FIFOの夫々の順番場所に格納され
る。次に、関連するポート回路は、データ・パケットを
その関連するFIFOに格納された順にアンロードし、
データ・パケットをそれらの目的とする行先に送る。
【0012】例えば、コンピュータ60−1ないし60
−Nの大部分のコンピュータがアクティブである場合の
ようなある状態下では、ポート回路101−1はホスト
50−1を介してデータ・パケットの定常的な流れを受
信することがある。さらに、コンピュータ60−1ない
し60−Nの1つ以上のコンピュータが、交換機100
または別の交換機、例えば交換機200のいずれかと関
連する、他のコンピュータに非常に大きいファイルを転
送するのに従事している場合もある。このような場合に
は、ホスト50−1とポート回路101−1の間のバッ
ファ・インタフェースはオーバロードされ、そのため1
つ以上のデータ・パケットが失われてしまうことが起る
場合もある。
−Nの大部分のコンピュータがアクティブである場合の
ようなある状態下では、ポート回路101−1はホスト
50−1を介してデータ・パケットの定常的な流れを受
信することがある。さらに、コンピュータ60−1ない
し60−Nの1つ以上のコンピュータが、交換機100
または別の交換機、例えば交換機200のいずれかと関
連する、他のコンピュータに非常に大きいファイルを転
送するのに従事している場合もある。このような場合に
は、ホスト50−1とポート回路101−1の間のバッ
ファ・インタフェースはオーバロードされ、そのため1
つ以上のデータ・パケットが失われてしまうことが起る
場合もある。
【0013】前述のように、この問題の取扱いについ
て、1つの従来技術の方式では、各コンピュータ60−
1ないし60−Nに対して、ポート回路入力バッファ、
例えばFIFOを備えて対処される。さらに、このよう
な各入力バッファは、通常関連するパケット交換機の容
量を考慮して非常に大きいファイルの転送を取扱うこと
のできる大きさにされる。Nが大きい数、例えば512
である場合には、その数に対応する数のポート回路入力
バッファが備えられなければならない。さらに、このよ
うな各バッファが、非常に多数のメモリ場所から形成さ
れる場合には、これらのバッファを備えるコストは実に
高いものとなる。
て、1つの従来技術の方式では、各コンピュータ60−
1ないし60−Nに対して、ポート回路入力バッファ、
例えばFIFOを備えて対処される。さらに、このよう
な各入力バッファは、通常関連するパケット交換機の容
量を考慮して非常に大きいファイルの転送を取扱うこと
のできる大きさにされる。Nが大きい数、例えば512
である場合には、その数に対応する数のポート回路入力
バッファが備えられなければならない。さらに、このよ
うな各バッファが、非常に多数のメモリ場所から形成さ
れる場合には、これらのバッファを備えるコストは実に
高いものとなる。
【0014】この問題を本発明者らは次のように対処す
る。それは、データ・パケットの平均的な流れを収容で
きる大きさを有する小さいバッファを各コンピュータ6
0−1ないし60−Nに初め割当てる。そして本発明で
は、このようなバッファの容量を関連するソース・コン
ピュータにより生成されるデータ・パケットの流れの増
加を収容できるように動的に拡張させる。ここで本発明
の説明を続ける前に、次のデータ・パケットのフォーマ
ット例を説明する。
る。それは、データ・パケットの平均的な流れを収容で
きる大きさを有する小さいバッファを各コンピュータ6
0−1ないし60−Nに初め割当てる。そして本発明で
は、このようなバッファの容量を関連するソース・コン
ピュータにより生成されるデータ・パケットの流れの増
加を収容できるように動的に拡張させる。ここで本発明
の説明を続ける前に、次のデータ・パケットのフォーマ
ット例を説明する。
【0015】それはポート回路、例えば回路101−1
がその入力で受信し、関連するデータ・バッファに格納
するものである。図2にデータ・パケットのフォーマッ
ト例を示すが、これはデータ情報フィールド20とヘッ
ダ21を有する。周知のように、コンピュータ、または
端末、例えばコンピュータ60−1が他のコンピュータ
に送るデータは、情報フィールド20に挿入される。ま
た一般的に、パケット・ヘッダは、なかでも通常のエラ
ー・チェック・フィールド21−1、パケットの発信者
のアドレスを識別するOAフィールド21−2およびパ
ケットの目的とする受信者(行先)を識別するDAフィ
ールド21−3を有することは周知である。
がその入力で受信し、関連するデータ・バッファに格納
するものである。図2にデータ・パケットのフォーマッ
ト例を示すが、これはデータ情報フィールド20とヘッ
ダ21を有する。周知のように、コンピュータ、または
端末、例えばコンピュータ60−1が他のコンピュータ
に送るデータは、情報フィールド20に挿入される。ま
た一般的に、パケット・ヘッダは、なかでも通常のエラ
ー・チェック・フィールド21−1、パケットの発信者
のアドレスを識別するOAフィールド21−2およびパ
ケットの目的とする受信者(行先)を識別するDAフィ
ールド21−3を有することは周知である。
【0016】本発明の実施例では、OAフィールド21
−2に挿入される発信者のアドレスに次のものを含むこ
とができる。それらは、(a)データの送信者と関連す
るチャネル・ナンバ、(b)関連するパケット交換機ポ
ート回路のアドレスおよび(c)関連するパケット交換
機のアドレスである。DAフィールド21−3の内容も
同様の構成とすることができる。図3はポート回路、例
えばポート回路101−1またはトランク・ポート10
2の内部にあるメモリ300のブロックを示す。
−2に挿入される発信者のアドレスに次のものを含むこ
とができる。それらは、(a)データの送信者と関連す
るチャネル・ナンバ、(b)関連するパケット交換機ポ
ート回路のアドレスおよび(c)関連するパケット交換
機のアドレスである。DAフィールド21−3の内容も
同様の構成とすることができる。図3はポート回路、例
えばポート回路101−1またはトランク・ポート10
2の内部にあるメモリ300のブロックを示す。
【0017】図3において、メモリ300はいくつかの
セクション、ここではセクション301ないし304に
分割される。セクション301は、多数のデータ・バッ
ファ、例えば1792のバッファで、ここではバッファ
301−1ないし301−Pで示される、を有する。こ
のような各データ・バッファは、メモリ300の所定数
のバイト、例えば128バイト、ただし各バイトは8ビ
ットを有する、から形成される。まずパワーがポート回
路に加えられ、ポート回路が“ブートアップ”される
と、ポート・コントローラ(図示せず)がデータ・バッ
ファを初期化する。
セクション、ここではセクション301ないし304に
分割される。セクション301は、多数のデータ・バッ
ファ、例えば1792のバッファで、ここではバッファ
301−1ないし301−Pで示される、を有する。こ
のような各データ・バッファは、メモリ300の所定数
のバイト、例えば128バイト、ただし各バイトは8ビ
ットを有する、から形成される。まずパワーがポート回
路に加えられ、ポート回路が“ブートアップ”される
と、ポート・コントローラ(図示せず)がデータ・バッ
ファを初期化する。
【0018】その際に、ポート・コントローラは各その
関連するチャネル・アドレスに各データ・バッファを割
当て、残りのデータ・バッファを“フリー”(割当てら
れていない)であるとマークする。例えば、ポート回路
が512のチャネルと関係付けられるとすると、512
のチャネルは夫々のデータ・バッファ(例えば、バッフ
ァ1ないしM)に初めに割当てられる。残りの1280
のデータ・バッファ(例えば、バッファM+1ないし
P)はフリーとマークされる。本発明においては、この
フリーのデータ・バッファを用いて必要に応じ割当てら
れたデータ・バッファの容量を動的に増加する。
関連するチャネル・アドレスに各データ・バッファを割
当て、残りのデータ・バッファを“フリー”(割当てら
れていない)であるとマークする。例えば、ポート回路
が512のチャネルと関係付けられるとすると、512
のチャネルは夫々のデータ・バッファ(例えば、バッフ
ァ1ないしM)に初めに割当てられる。残りの1280
のデータ・バッファ(例えば、バッファM+1ないし
P)はフリーとマークされる。本発明においては、この
フリーのデータ・バッファを用いて必要に応じ割当てら
れたデータ・バッファの容量を動的に増加する。
【0019】例えば、コンピュータ、例えばコンピュー
タ60−1は、コンピュータ60−1と関連するチャネ
ル・ナンバに割当てられたデータ・バッファからデータ
・パケットをポート回路101−1がアンロードできる
速度より速い速度で、データ・パケットを送っていると
仮定する。また、図6に示すように、割当てられたデー
タ・バッファはデータ・バッファ601であると仮定す
る。そして結果として、データ・バッファ601は時間
toでいっぱいになる。そしてコンピュータ60−1に
より現在要求されるデータ・バッファ容量を増加するた
めに、次のことが本発明では行われる。
タ60−1は、コンピュータ60−1と関連するチャネ
ル・ナンバに割当てられたデータ・バッファからデータ
・パケットをポート回路101−1がアンロードできる
速度より速い速度で、データ・パケットを送っていると
仮定する。また、図6に示すように、割当てられたデー
タ・バッファはデータ・バッファ601であると仮定す
る。そして結果として、データ・バッファ601は時間
toでいっぱいになる。そしてコンピュータ60−1に
より現在要求されるデータ・バッファ容量を増加するた
めに、次のことが本発明では行われる。
【0020】それは、ポート回路101−1は、時間t
aにおいて先のデータ・バッファにフリー・データ・バ
ッファ602をリンクさせて、割当てられたデータ・バ
ッファの容量を増加する。そしてポート回路101−1
は、コンピュータ60−1から新しく受信したデータ・
パケットをリンクされたデータ・バッファ602に格納
する。バッファ602がいっぱいになると、ポート回路
101−1は、時間tbにおいて先にリンクされたデー
タ・バッファ602に別のフリー・データ・バッファ6
03をリンクする。一般的な場合として、コンピュータ
60−1がさらなるデータ・バッファ容量を必要とする
限りポート回路101−1はフリー・データ・バッファ
を互いにリンクし続ける。
aにおいて先のデータ・バッファにフリー・データ・バ
ッファ602をリンクさせて、割当てられたデータ・バ
ッファの容量を増加する。そしてポート回路101−1
は、コンピュータ60−1から新しく受信したデータ・
パケットをリンクされたデータ・バッファ602に格納
する。バッファ602がいっぱいになると、ポート回路
101−1は、時間tbにおいて先にリンクされたデー
タ・バッファ602に別のフリー・データ・バッファ6
03をリンクする。一般的な場合として、コンピュータ
60−1がさらなるデータ・バッファ容量を必要とする
限りポート回路101−1はフリー・データ・バッファ
を互いにリンクし続ける。
【0021】本実施例では、3つのバッファが適当であ
ると仮定する。ポート回路101−1が初めに割当てた
データ・バッファ601からそこに格納されたデータの
最後をアンロードすると、ポート回路101−1はバッ
ファ601をフリーであるとマークする。そして、ポー
ト回路101−1は、時間tcにおいてバッファ602
を関連するチャネル・ナンバに割当てる。同様にして、
ポート回路がバッファ602からそこに格納されデータ
の最後をアンロードすると、ポート回路101−1は、
時間tcで示されたように、バッファ602をフリーで
あるとマークする。
ると仮定する。ポート回路101−1が初めに割当てた
データ・バッファ601からそこに格納されたデータの
最後をアンロードすると、ポート回路101−1はバッ
ファ601をフリーであるとマークする。そして、ポー
ト回路101−1は、時間tcにおいてバッファ602
を関連するチャネル・ナンバに割当てる。同様にして、
ポート回路がバッファ602からそこに格納されデータ
の最後をアンロードすると、ポート回路101−1は、
時間tcで示されたように、バッファ602をフリーで
あるとマークする。
【0022】そして、ポート回路101−1はバッファ
603を関連するチャネル・ナンバに割当てる。しか
し、本発明では、このようなリンクされたデータ・バッ
ファの最後のもの、すなわちバッファ603は、フリー
とマークされないで、時間tdにおいて示すように、バ
ッファ603が空の場合でも関連するチャネルに割当て
られたままであり、これについては後述する。このよう
に、本発明では、ポート回路101−1により取扱われ
るコンピュータと関連する各ポート回路チャネル・ナン
バは、いわゆる仮想FIFOが割当てられるが、その容
量は必要に応じ増減することができるものである。
603を関連するチャネル・ナンバに割当てる。しか
し、本発明では、このようなリンクされたデータ・バッ
ファの最後のもの、すなわちバッファ603は、フリー
とマークされないで、時間tdにおいて示すように、バ
ッファ603が空の場合でも関連するチャネルに割当て
られたままであり、これについては後述する。このよう
に、本発明では、ポート回路101−1により取扱われ
るコンピュータと関連する各ポート回路チャネル・ナン
バは、いわゆる仮想FIFOが割当てられるが、その容
量は必要に応じ増減することができるものである。
【0023】ポート回路101−1は、図3に示すよう
に、関連するチャネル・ナンバに割当てられたチャネル
・レコードを保持して仮想FIFOを形成するデータ・
バッファのこのようにリンクしたりまたアンリンクした
りするのを追跡する。具体的に説明すると、チャネル・
レコードはメモリ300のセクション302に格納さ
れ、各チャネル・ナンバを用いてインデックス付けする
ことができる。例えば、チャネル・レコード1はチャネ
ル1と関係付けられ、チャネル・レコード2はチャネル
2と関係付けられるなど以下同様である。このように、
ポート回路は、関連するチャネル・レコードをアクセス
するのにメモリ・セクション302インデックスとして
チャネル・ナンバを用いる。
に、関連するチャネル・ナンバに割当てられたチャネル
・レコードを保持して仮想FIFOを形成するデータ・
バッファのこのようにリンクしたりまたアンリンクした
りするのを追跡する。具体的に説明すると、チャネル・
レコードはメモリ300のセクション302に格納さ
れ、各チャネル・ナンバを用いてインデックス付けする
ことができる。例えば、チャネル・レコード1はチャネ
ル1と関係付けられ、チャネル・レコード2はチャネル
2と関係付けられるなど以下同様である。このように、
ポート回路は、関連するチャネル・レコードをアクセス
するのにメモリ・セクション302インデックスとして
チャネル・ナンバを用いる。
【0024】図4で略述すると、チャネル・レコードは
複数のフィールドを有し、各ポインタと他の情報を格納
する。それらポインタには次のものがある。ヘッド・ポ
インタ(HP)302−11で、これは各チャネル・ナ
ンバに現在割当てられている最後のデータ・バッファの
最後のデータ・エントリを指し、およびテイル・ポイン
タ(TP)302−21で、これはデータ・バッファの
連鎖のある場合の最初のデータ・バッファの最初のデー
タ・エントリを指すものである。他の情報はフィールド
302−22に挿入される。
複数のフィールドを有し、各ポインタと他の情報を格納
する。それらポインタには次のものがある。ヘッド・ポ
インタ(HP)302−11で、これは各チャネル・ナ
ンバに現在割当てられている最後のデータ・バッファの
最後のデータ・エントリを指し、およびテイル・ポイン
タ(TP)302−21で、これはデータ・バッファの
連鎖のある場合の最初のデータ・バッファの最初のデー
タ・エントリを指すものである。他の情報はフィールド
302−22に挿入される。
【0025】図3において、データ・バッファの連鎖の
ある場合にそれを形成するデータ・バッファ間のリンク
しているのをメモリ300のセクション303を形成す
るバッファ・リンク・レコードにより追跡される。すな
わち、データ・バッファの連鎖でデータ・バッファと関
連するセクション303リンク・レコードは、その連鎖
で次に続くデータ・バッファのアドレスを識別する。本
発明の実施例では、メモリ・セクション303リンク・
レコードは、いわゆるロジカル・インデックスを用いて
アクセスされる。本発明の実施の際には、特定のスクラ
ッチ・レジスタの内容を右に5ビット場所だけシフトし
て、次に各2つの低位ビット場所にゼロを挿入して、ロ
ジカル・インデックスを生成する。
ある場合にそれを形成するデータ・バッファ間のリンク
しているのをメモリ300のセクション303を形成す
るバッファ・リンク・レコードにより追跡される。すな
わち、データ・バッファの連鎖でデータ・バッファと関
連するセクション303リンク・レコードは、その連鎖
で次に続くデータ・バッファのアドレスを識別する。本
発明の実施例では、メモリ・セクション303リンク・
レコードは、いわゆるロジカル・インデックスを用いて
アクセスされる。本発明の実施の際には、特定のスクラ
ッチ・レジスタの内容を右に5ビット場所だけシフトし
て、次に各2つの低位ビット場所にゼロを挿入して、ロ
ジカル・インデックスを生成する。
【0026】そして、特定のセクション303リンク・
レコードは、ロジカル・インデックスでインデックス付
けされたメモリ・セクション303の開始アドレスを用
いてアクセスされる。メモリ300のセクション304
は、利用できるデータ・バッファ、すなわち“フリー”
・データ・バッファを識別するアドレスを格納するため
に通常の循環レジスタとして役立つ。前記初期化中で
は、関連するポート回路、例えばポート101−1はメ
モリ・セクション304の順番場所に夫々の“フリー”
データ・バッファのアドレスを格納する。
レコードは、ロジカル・インデックスでインデックス付
けされたメモリ・セクション303の開始アドレスを用
いてアクセスされる。メモリ300のセクション304
は、利用できるデータ・バッファ、すなわち“フリー”
・データ・バッファを識別するアドレスを格納するため
に通常の循環レジスタとして役立つ。前記初期化中で
は、関連するポート回路、例えばポート101−1はメ
モリ・セクション304の順番場所に夫々の“フリー”
データ・バッファのアドレスを格納する。
【0027】本発明の実施例では、後述するように、ポ
インタ(読取りフリー・ポインタ)を用いて次のフリー
・データ・バッファのアドレスを含むセクション304
場所を識別する。また後述するように、もはやデータを
含まない、すなわち利用可能とされる(フリーの)リン
クされたデータ・バッファのアドレスは、別のポインタ
(書込みフリー・ポインタ)により識別されるセクショ
ン304場所に格納される。次に図5について説明する
と、インタフェース回路705は、ソース600、例え
ばホスト・コンピュータ50−1からデータ・パケット
の流れを受信するように設けられる。
インタ(読取りフリー・ポインタ)を用いて次のフリー
・データ・バッファのアドレスを含むセクション304
場所を識別する。また後述するように、もはやデータを
含まない、すなわち利用可能とされる(フリーの)リン
クされたデータ・バッファのアドレスは、別のポインタ
(書込みフリー・ポインタ)により識別されるセクショ
ン304場所に格納される。次に図5について説明する
と、インタフェース回路705は、ソース600、例え
ばホスト・コンピュータ50−1からデータ・パケット
の流れを受信するように設けられる。
【0028】このようなデータ・パケットの発信者は、
ソース600が取扱う装置、例えばコンピュータ60−
1ないし60−Nであってもよい。入力インタフェース
回路705は、なかでもデータ・ワード(バイト)をバ
ス706経由で通常のメモリFIFO710の順番メモ
リ場所に受信されるように格納するが、そこで複数のこ
のようなデータ・バイトが各データ・パケットを形成す
る。データ・コントローラ720は、FIFO710に
格納されたデータ・バイトを各データ・バッファに転送
する手段の1つとして役立つ。特に、コントローラ72
0は、データ・パケット4バイト(ワード)を一度にそ
のバイトがFIFO710に格納された順にアンロード
する。
ソース600が取扱う装置、例えばコンピュータ60−
1ないし60−Nであってもよい。入力インタフェース
回路705は、なかでもデータ・ワード(バイト)をバ
ス706経由で通常のメモリFIFO710の順番メモ
リ場所に受信されるように格納するが、そこで複数のこ
のようなデータ・バイトが各データ・パケットを形成す
る。データ・コントローラ720は、FIFO710に
格納されたデータ・バイトを各データ・バッファに転送
する手段の1つとして役立つ。特に、コントローラ72
0は、データ・パケット4バイト(ワード)を一度にそ
のバイトがFIFO710に格納された順にアンロード
する。
【0029】コントローラ720は、次にバス711経
由でレジスタ725にアンロードされたデータ・バイト
を格納する。そして、コントローラ720は、バス71
1経由でレジスタ725の内容をチェックし、このよう
な内容がチャネル・ナンバを表わすかどうかを決め、そ
れによりパケットの開始を表示する。そうでない場合に
は、コントローラ720は、入力データ・パケットのデ
ータ・バイトの新しいセットがレジスタ25に格納され
たことをシーケンサ715に通知する。新しく到着した
チャネル・ナンバはレジスタ725に格納されたと仮定
する。
由でレジスタ725にアンロードされたデータ・バイト
を格納する。そして、コントローラ720は、バス71
1経由でレジスタ725の内容をチェックし、このよう
な内容がチャネル・ナンバを表わすかどうかを決め、そ
れによりパケットの開始を表示する。そうでない場合に
は、コントローラ720は、入力データ・パケットのデ
ータ・バイトの新しいセットがレジスタ25に格納され
たことをシーケンサ715に通知する。新しく到着した
チャネル・ナンバはレジスタ725に格納されたと仮定
する。
【0030】そしてその場合には後述するように、シー
ケンサ715により、レジスタ732に含まれそしてシ
ーケンサ715により処理された前のデータ・パケット
と関連する特定の情報が各チャネル・レコードに格納さ
れる。次にシーケンサ715は、新しいチャネル・ナン
バをデータ・バス315に出力するようレジスタ725
に指図し、そのためそのナンバはチャネル・レジスタ7
33にラッチされることになる。そして、シーケンサ7
15は、チャネル・レジスタ733に含まれた新しいチ
ャネル・アドレスと関連するチャネル・レコードをメモ
リ・セクション302からアンロードする。
ケンサ715により、レジスタ732に含まれそしてシ
ーケンサ715により処理された前のデータ・パケット
と関連する特定の情報が各チャネル・レコードに格納さ
れる。次にシーケンサ715は、新しいチャネル・ナン
バをデータ・バス315に出力するようレジスタ725
に指図し、そのためそのナンバはチャネル・レジスタ7
33にラッチされることになる。そして、シーケンサ7
15は、チャネル・レジスタ733に含まれた新しいチ
ャネル・アドレスと関連するチャネル・レコードをメモ
リ・セクション302からアンロードする。
【0031】その際に、シーケンサ715は、レジスタ
733の内容によりインデックス付けられたメモリ・セ
クション302の開始アドレスをアドレス・バス320
上に送出する。そして、シーケンサ715は、リード線
310上に読取り信号を示すようにR/W(読取り/書
込み)コントロール回路735をプロンプトする。メモ
リ300は、それに応答しかつ通常の方法で、アドレス
されたセクション302場所の内容を読取りそしてデー
タ・バス315に出力する。次にシーケンサ715によ
り、データ・バス315上に現れる情報と特に前記デー
タ・バッファ・ヘッド・ポインタ(HP)に関する値が
レジスタ732に格納される。
733の内容によりインデックス付けられたメモリ・セ
クション302の開始アドレスをアドレス・バス320
上に送出する。そして、シーケンサ715は、リード線
310上に読取り信号を示すようにR/W(読取り/書
込み)コントロール回路735をプロンプトする。メモ
リ300は、それに応答しかつ通常の方法で、アドレス
されたセクション302場所の内容を読取りそしてデー
タ・バス315に出力する。次にシーケンサ715によ
り、データ・バス315上に現れる情報と特に前記デー
タ・バッファ・ヘッド・ポインタ(HP)に関する値が
レジスタ732に格納される。
【0032】そして、シーケンサ715は、データ・バ
イトの次のセットがレジスタ725に格納されたことを
示すコントローラ720通知のパス721経由の受信を
待つ。そのような通知に応答して、シーケンサ715に
より、レジスタ725の内容がデータ・バス315上に
レジスタ732の内容がアドレス・バス320上にそれ
ぞれ送出される。次に、シーケンサ715は、リード線
310上に書込み信号を示すようR/Wコントロール7
35をプロンプトし、それによりメモリ300にバス3
15上に現れる情報をアドレスされたデータ・バッファ
に格納させる。
イトの次のセットがレジスタ725に格納されたことを
示すコントローラ720通知のパス721経由の受信を
待つ。そのような通知に応答して、シーケンサ715に
より、レジスタ725の内容がデータ・バス315上に
レジスタ732の内容がアドレス・バス320上にそれ
ぞれ送出される。次に、シーケンサ715は、リード線
310上に書込み信号を示すようR/Wコントロール7
35をプロンプトし、それによりメモリ300にバス3
15上に現れる情報をアドレスされたデータ・バッファ
に格納させる。
【0033】次に、シーケンサ715は、所定値、例え
ば4の値だけHPレジスタ732の内容を増分し、その
ためその内容はレジスタ733に含まれるチャネル・ナ
ンバと現在関連するデータ・バッファの次の場所を指
す。そして、シーケンサ715は次のそのような通知の
受信を待つ。同様に、コントローラ720はFIFO7
10から次の4データ・バイトをアンロードし、それら
をレジスタ725に格納する。レジスタ725に現在格
納されているデータ・バイトはレジスタ733に格納さ
れたチャネル・ナンバと関連するデータ・パケットの一
部であると仮定する。
ば4の値だけHPレジスタ732の内容を増分し、その
ためその内容はレジスタ733に含まれるチャネル・ナ
ンバと現在関連するデータ・バッファの次の場所を指
す。そして、シーケンサ715は次のそのような通知の
受信を待つ。同様に、コントローラ720はFIFO7
10から次の4データ・バイトをアンロードし、それら
をレジスタ725に格納する。レジスタ725に現在格
納されているデータ・バイトはレジスタ733に格納さ
れたチャネル・ナンバと関連するデータ・パケットの一
部であると仮定する。
【0034】その場合には、コントローラ720は、前
述のようにその事実をシーケンサ715に通知する。シ
ーケンサ715は、前述の方法でHPレジスタ732の
現在の内容により識別されるデータ・バッファ場所にデ
ータ・バイトを格納する。シーケンサ715は、前述の
ように次に、レジスタ732を増分する。関連するポー
ト回路は、次のようにレジスタ725に逐次格納された
データ・バイトを処理し続ける。そのレジスタがレジス
タ733に現在含むチャネル・ナンバと異なるチャネル
・ナンバを含むまでそれを続け、それによりおそらく別
のチャネル・ナンバと関連するデータ・パケットの開始
を示すものである。
述のようにその事実をシーケンサ715に通知する。シ
ーケンサ715は、前述の方法でHPレジスタ732の
現在の内容により識別されるデータ・バッファ場所にデ
ータ・バイトを格納する。シーケンサ715は、前述の
ように次に、レジスタ732を増分する。関連するポー
ト回路は、次のようにレジスタ725に逐次格納された
データ・バイトを処理し続ける。そのレジスタがレジス
タ733に現在含むチャネル・ナンバと異なるチャネル
・ナンバを含むまでそれを続け、それによりおそらく別
のチャネル・ナンバと関連するデータ・パケットの開始
を示すものである。
【0035】その場合には、シーケンサ715によりレ
ジスタ732に含まれるヘッド・ポインタがレジスタ7
33に現在含まれるチャネル・ナンバに関連するチャネ
ル・レコードに格納される。シーケンサ715は次のよ
うにしてそのタスクを行う。それはレジスタ733の内
容およびメモリ・セクション302開始アドレスをアド
レス・バス320上に送出させることによる。さらに、
シーケンサ715によりレジスタ732の内容がデータ
・バス315上に送出される。次にシーケンサ715
は、リード線310上に書込み信号を示すようにR/W
回路735をプロンプトする。メモリ300は、それに
応答して、アドレスされたチャネル・レコードにバス3
15上のデータを格納する。
ジスタ732に含まれるヘッド・ポインタがレジスタ7
33に現在含まれるチャネル・ナンバに関連するチャネ
ル・レコードに格納される。シーケンサ715は次のよ
うにしてそのタスクを行う。それはレジスタ733の内
容およびメモリ・セクション302開始アドレスをアド
レス・バス320上に送出させることによる。さらに、
シーケンサ715によりレジスタ732の内容がデータ
・バス315上に送出される。次にシーケンサ715
は、リード線310上に書込み信号を示すようにR/W
回路735をプロンプトする。メモリ300は、それに
応答して、アドレスされたチャネル・レコードにバス3
15上のデータを格納する。
【0036】前述のように、データ・バッファは、次の
ように例えば、128データ・バイトを有する。それ
は、このような各データ・バッファはセクション301
メモリの128バイト境界で開始する。127の最大カ
ウントを追跡するのに7バイナリ・ビットを用いること
ができるので、HPレジスタ732の内容の最低位の7
ビットを用いてデータ・バッファがいっぱいになる時を
示すことができる。従って、レジスタ732が124の
カウントを含み、4の値だけ増分される場合には、レジ
スタ732の内容の低位の7ビットはゼロの値を有する
ことになり、それにより関連するデータ・バッファはい
っぱいであることを示す。
ように例えば、128データ・バイトを有する。それ
は、このような各データ・バッファはセクション301
メモリの128バイト境界で開始する。127の最大カ
ウントを追跡するのに7バイナリ・ビットを用いること
ができるので、HPレジスタ732の内容の最低位の7
ビットを用いてデータ・バッファがいっぱいになる時を
示すことができる。従って、レジスタ732が124の
カウントを含み、4の値だけ増分される場合には、レジ
スタ732の内容の低位の7ビットはゼロの値を有する
ことになり、それにより関連するデータ・バッファはい
っぱいであることを示す。
【0037】データ・バッファが満杯になる時を決める
ために、そのレジスタを増分する度ごとにシーケンサ7
15はレジスタ732の内容を“テスト”する。シーケ
ンサ715が、レジスタ732の低位の7ビットがゼロ
に等しいことを見出すと、シーケンサ715は、レジス
タ733に含まれるチャネル・ナンバと関係付けられる
現在“いっぱい”であるデータ・バッファにフリー・バ
ッファをリンクする。次の“フリー”・データ・バッフ
ァの場所を追跡するために、初期化中、ポート回路はR
FP(読取りフリー・ポインタ)レジスタ731の最初
のセクション304メモリ場所のアドレスを格納し、お
よびWFP(書込みフリー・ポインタ)レジスタ741
の最後のセクション304メモリ場所のアドレスを格納
する。
ために、そのレジスタを増分する度ごとにシーケンサ7
15はレジスタ732の内容を“テスト”する。シーケ
ンサ715が、レジスタ732の低位の7ビットがゼロ
に等しいことを見出すと、シーケンサ715は、レジス
タ733に含まれるチャネル・ナンバと関係付けられる
現在“いっぱい”であるデータ・バッファにフリー・バ
ッファをリンクする。次の“フリー”・データ・バッフ
ァの場所を追跡するために、初期化中、ポート回路はR
FP(読取りフリー・ポインタ)レジスタ731の最初
のセクション304メモリ場所のアドレスを格納し、お
よびWFP(書込みフリー・ポインタ)レジスタ741
の最後のセクション304メモリ場所のアドレスを格納
する。
【0038】さらに、関連するポート回路は、最初のフ
リー・データ・バッファのアドレスをメモリ・セクショ
ン304の最初の場所に格納する。またこのポート回路
は、各続きのセクション304場所に残りのフリー・デ
ータ・バッファのアドレスを格納する。従って、シーケ
ンサ715は、フリー・データ・バッファをレジスタ7
33に含まれるチャネル・ナンバに割当てられたいっぱ
いになったデータ・バッファにリンクして、データ・バ
ッファの連鎖、すなわち仮想FIFOを生成することが
できる。そのためには、シーケンサ715はフリー・バ
ッファを入手して、そのバッファをいっぱいになったデ
ータ・バッファにリンクする。
リー・データ・バッファのアドレスをメモリ・セクショ
ン304の最初の場所に格納する。またこのポート回路
は、各続きのセクション304場所に残りのフリー・デ
ータ・バッファのアドレスを格納する。従って、シーケ
ンサ715は、フリー・データ・バッファをレジスタ7
33に含まれるチャネル・ナンバに割当てられたいっぱ
いになったデータ・バッファにリンクして、データ・バ
ッファの連鎖、すなわち仮想FIFOを生成することが
できる。そのためには、シーケンサ715はフリー・バ
ッファを入手して、そのバッファをいっぱいになったデ
ータ・バッファにリンクする。
【0039】特に、シーケンサ715により、RFPレ
ジスタ731の内容によりインデックス付けされたメモ
リ・セクション304のメモリ場所のアドレスがアドレ
ス・バス320上に送出される。そしてシーケンサ71
5は、リード線310上に読取り信号を示すようにR/
Wコントロール735をプロンプトする。メモリ300
は、それに応答して、アドレスされたメモリ304場所
の内容を読取りそしてデータ・バス315上に送出す
る。次に、シーケンサ715により、データ・バス31
5上に現れる情報がスクラッチ・レジスタ736に格納
される。
ジスタ731の内容によりインデックス付けされたメモ
リ・セクション304のメモリ場所のアドレスがアドレ
ス・バス320上に送出される。そしてシーケンサ71
5は、リード線310上に読取り信号を示すようにR/
Wコントロール735をプロンプトする。メモリ300
は、それに応答して、アドレスされたメモリ304場所
の内容を読取りそしてデータ・バス315上に送出す
る。次に、シーケンサ715により、データ・バス31
5上に現れる情報がスクラッチ・レジスタ736に格納
される。
【0040】そして、シーケンサ715は次のようにし
て、新しく得られたデータ・バッファをいっぱいになっ
たバッファにリンクする。それらは、(a)スクラッチ
・レジスタ736の内容がデータ・バス315上に送出
されるようにすること、および(b)HPレジスタ73
2の内容から導かれたロジカル・インデックスにより修
正されたメモリ・セクション304のアドレスがアドレ
ス・バス320上に送出されるようにすることである。
そしてシーケンサ715は、書込み信号をリード線30
1上に示すようにR/Wコントロール回路をプロンプト
する。メモリ300は、それに応答して、いっぱいにな
ったデータ・バッファと関連するセクション303リン
クに新しく得られたバッファのアドレスを格納する。
て、新しく得られたデータ・バッファをいっぱいになっ
たバッファにリンクする。それらは、(a)スクラッチ
・レジスタ736の内容がデータ・バス315上に送出
されるようにすること、および(b)HPレジスタ73
2の内容から導かれたロジカル・インデックスにより修
正されたメモリ・セクション304のアドレスがアドレ
ス・バス320上に送出されるようにすることである。
そしてシーケンサ715は、書込み信号をリード線30
1上に示すようにR/Wコントロール回路をプロンプト
する。メモリ300は、それに応答して、いっぱいにな
ったデータ・バッファと関連するセクション303リン
クに新しく得られたバッファのアドレスを格納する。
【0041】そして、シーケンサ715により、データ
・バス315上に送出されたデータ・バッファ・アドレ
スがHPレジスタ732に格納される。さらに、シーケ
ンサ715はRFPレジスタ731の内容を1の値だけ
増分し、そのためそのような内容は次のフリー・データ
・バッファのアドレスを含むメモリ・セクション304
場所を指す。(ここで留意事項として、レジスタ731
は次のようなモジュロkカウンタとして設けられる。そ
れはレジスタ731の内容がkの値に達し、そしてその
レジスタが増分される場合には、そのような内容は自動
的にサイクルしてメモリ・セクション304の最初の場
所を指すものである。)
・バス315上に送出されたデータ・バッファ・アドレ
スがHPレジスタ732に格納される。さらに、シーケ
ンサ715はRFPレジスタ731の内容を1の値だけ
増分し、そのためそのような内容は次のフリー・データ
・バッファのアドレスを含むメモリ・セクション304
場所を指す。(ここで留意事項として、レジスタ731
は次のようなモジュロkカウンタとして設けられる。そ
れはレジスタ731の内容がkの値に達し、そしてその
レジスタが増分される場合には、そのような内容は自動
的にサイクルしてメモリ・セクション304の最初の場
所を指すものである。)
【0042】目的とする行先に引渡すためにメモリ30
0データ・バッファからデータ・ワードをアンロードす
るのは、出力インタフェース750から各リクエスト・
メッセージの受信に応答して読取りシーケンサ745に
より取扱われる。このようなリクエスト・メッセージの
発信者は別の回路であってもよく、それが関連するパケ
ット交換機に含まれることもでき、またパス752経由
でインタフェース750と通信する。または、このよう
なリクエストの発信者(“リクエスト発信者”)は、関
連するパケット交換機の外部にあってもよい。
0データ・バッファからデータ・ワードをアンロードす
るのは、出力インタフェース750から各リクエスト・
メッセージの受信に応答して読取りシーケンサ745に
より取扱われる。このようなリクエスト・メッセージの
発信者は別の回路であってもよく、それが関連するパケ
ット交換機に含まれることもでき、またパス752経由
でインタフェース750と通信する。または、このよう
なリクエストの発信者(“リクエスト発信者”)は、関
連するパケット交換機の外部にあってもよい。
【0043】行先800は、メモリ300に格納された
データ・パケットの目的とするいろ々な受信者を示す。
パス752の点線部は、次のようなパスを表す。それ
は、関連するパケット交換機、例えば交換機100を通
るパスであり、またそのような受信者に達するのに通る
ことのできる通信パスで、そのような通信パスは1つ以
上の別のパケット交換機を通るルートとされていてもよ
い。とりわけ、特定のチャネル・ナンバと関連するデー
タ・パケットは、その特定のチャネル・ナンバを識別す
るリクエスト・メッセージをバス752経由で出力イン
タフェース750にまず送ることによりメモリ300か
らアンロードされることができる。
データ・パケットの目的とするいろ々な受信者を示す。
パス752の点線部は、次のようなパスを表す。それ
は、関連するパケット交換機、例えば交換機100を通
るパスであり、またそのような受信者に達するのに通る
ことのできる通信パスで、そのような通信パスは1つ以
上の別のパケット交換機を通るルートとされていてもよ
い。とりわけ、特定のチャネル・ナンバと関連するデー
タ・パケットは、その特定のチャネル・ナンバを識別す
るリクエスト・メッセージをバス752経由で出力イン
タフェース750にまず送ることによりメモリ300か
らアンロードされることができる。
【0044】出力インタフェース750は、このメッセ
ージの受信に応答して、リクエスト・メッセージ中に含
まれたチャネル・ナンバをバス751経由で読取りシー
ケンサ745に通知しかつデータ・バス315に出力す
る。読取りシーケンサ745は、そのような通知に応答
して次のことを行う。(a)バス315上に現れるチャ
ネル・ナンバがチャネル・レジスタ742に格納され、
および(b)メモリ300からそのチャネル・ナンバと
関連するレコードを得る。すなわち、読取りシーケンサ
745は、(a)レジスタ742に格納されたチャネル
・ナンバでインデックス付けされたメモリ・セクション
302の開始アドレスをアドレス・バス320上に送出
し、(b)R/W回路にリード線301上に読取り信号
を示させる。
ージの受信に応答して、リクエスト・メッセージ中に含
まれたチャネル・ナンバをバス751経由で読取りシー
ケンサ745に通知しかつデータ・バス315に出力す
る。読取りシーケンサ745は、そのような通知に応答
して次のことを行う。(a)バス315上に現れるチャ
ネル・ナンバがチャネル・レジスタ742に格納され、
および(b)メモリ300からそのチャネル・ナンバと
関連するレコードを得る。すなわち、読取りシーケンサ
745は、(a)レジスタ742に格納されたチャネル
・ナンバでインデックス付けされたメモリ・セクション
302の開始アドレスをアドレス・バス320上に送出
し、(b)R/W回路にリード線301上に読取り信号
を示させる。
【0045】同様に、メモリ300は、それに応答し
て、アドレスされたチャネル・レコード場所に格納され
た情報のコピーをデータ・バス315に出力する。次に
シーケンサ745により、データ・バス315に現れる
チャネル・レコードのテイル・ポインタ(TP)フィー
ルドに含まれる情報がTPレジスタ743に格納され
る。そして、シーケンサ745は、レジスタ743の内
容により識別されたデータ・バッファ場所に格納された
データを読取るようにリクエストを待つ。
て、アドレスされたチャネル・レコード場所に格納され
た情報のコピーをデータ・バス315に出力する。次に
シーケンサ745により、データ・バス315に現れる
チャネル・レコードのテイル・ポインタ(TP)フィー
ルドに含まれる情報がTPレジスタ743に格納され
る。そして、シーケンサ745は、レジスタ743の内
容により識別されたデータ・バッファ場所に格納された
データを読取るようにリクエストを待つ。
【0046】本発明の実施例では、読取りシーケンサ7
45は、出力インタフェース750経由で受信するデー
タに対する各リクエストに1つのデータ・バッファ場所
をメモリ300からアンロードする。従って、レジスタ
742に格納されたチャネル・ナンバと関係付けられ格
納されたデータ・パケットを得るためには、前記発信者
は出力インタフェース750に一連のデータ・リクエス
トを送る。次に、出力インタフェース750は、受信さ
れた通りの各リクエストをバス751経由でシーケンサ
745に送る。
45は、出力インタフェース750経由で受信するデー
タに対する各リクエストに1つのデータ・バッファ場所
をメモリ300からアンロードする。従って、レジスタ
742に格納されたチャネル・ナンバと関係付けられ格
納されたデータ・パケットを得るためには、前記発信者
は出力インタフェース750に一連のデータ・リクエス
トを送る。次に、出力インタフェース750は、受信さ
れた通りの各リクエストをバス751経由でシーケンサ
745に送る。
【0047】または、リクエスト発信者は、インタフェ
ース750経由でチャネル・レコードのコピーを得るこ
とができる。これで、リクエスト発信者は、そのような
データの全部もしくは一部を得るためにシーケンサ74
5に送られる必要があるリクエストのナンバを決めるこ
とができる。具体的には、レジスタ742に格納された
チャネル・ナンバと関連するデータに対するリクエスト
の受信に応答して、読取りシーケンサ745により、T
Pレジスタ743の内容がアドレス・バス320上に送
出される。さらに、読取りシーケンサ745は、リード
線301上に読取り信号を示すようR/Wコントロール
回路735をプロンプトする。
ース750経由でチャネル・レコードのコピーを得るこ
とができる。これで、リクエスト発信者は、そのような
データの全部もしくは一部を得るためにシーケンサ74
5に送られる必要があるリクエストのナンバを決めるこ
とができる。具体的には、レジスタ742に格納された
チャネル・ナンバと関連するデータに対するリクエスト
の受信に応答して、読取りシーケンサ745により、T
Pレジスタ743の内容がアドレス・バス320上に送
出される。さらに、読取りシーケンサ745は、リード
線301上に読取り信号を示すようR/Wコントロール
回路735をプロンプトする。
【0048】同様に、メモリ300は、それに応答し
て、アドレスされたデータ・バッファ場所の内容を、読
取りかつデータ・バス315上にインタフェース750
に引渡すように送出する。次に出力インタフェース75
0は、バス315上に現れるデータをバス752に出力
する。上記に続き、読取りシーケンサ745は、所定
値、例えば4だけTPレジスタ743の内容を増分し、
そのためそのような内容は読取られうるデータ・バッフ
ァの次の場所を指す。従って、シーケンサ745は、次
に続くデータ・リクエストまたはチャネル変更リクエス
トの受信に応答して前述のように動作する。
て、アドレスされたデータ・バッファ場所の内容を、読
取りかつデータ・バス315上にインタフェース750
に引渡すように送出する。次に出力インタフェース75
0は、バス315上に現れるデータをバス752に出力
する。上記に続き、読取りシーケンサ745は、所定
値、例えば4だけTPレジスタ743の内容を増分し、
そのためそのような内容は読取られうるデータ・バッフ
ァの次の場所を指す。従って、シーケンサ745は、次
に続くデータ・リクエストまたはチャネル変更リクエス
トの受信に応答して前述のように動作する。
【0049】チャネル変更リクエストに応答して、シー
ケンサ745は次のことを行う。 (a)レジスタ742に含まれるチャネル・ナンバと関
係付けられるセクション302レコードのTPフィール
ドにレジスタ743の内容を格納する。(b)新しいチ
ャネル・ナンバをデータ・バス315に出力するように
出力インタフェース750に指図する。それから(c)
データ・バス315の内容がレジスタ742にラッチさ
れるようにする。そして、読取りシーケンサ745は、
説明した方法で新しく受信したチャネル・ナンバに関連
するセクション302レコードを得て、それからデータ
・リクエストの受信を待つ。
ケンサ745は次のことを行う。 (a)レジスタ742に含まれるチャネル・ナンバと関
係付けられるセクション302レコードのTPフィール
ドにレジスタ743の内容を格納する。(b)新しいチ
ャネル・ナンバをデータ・バス315に出力するように
出力インタフェース750に指図する。それから(c)
データ・バス315の内容がレジスタ742にラッチさ
れるようにする。そして、読取りシーケンサ745は、
説明した方法で新しく受信したチャネル・ナンバに関連
するセクション302レコードを得て、それからデータ
・リクエストの受信を待つ。
【0050】格納シーケンサ715と同様に、読取りシ
ーケンサ745もそのような内容が増分される度ごとに
レジスタ743の内容の値をチェックする。シーケンサ
745がそのような内容の低位のビット、例えばビット
0ないし6、がゼロに等しいことを見出した場合には、
シーケンサ745は、アドレス指定したデータ・バッフ
ァは空であると結論する。その例においては、読取りシ
ーケンサ745は、レジスタ742に格納されたチャネ
ル・ナンバに関連する連鎖の1つである場合には、デー
タ・バッファをアンリンクし、そしてアンリンクされた
バッファをフリー・データ・バッファのセクション30
4リストに加える。
ーケンサ745もそのような内容が増分される度ごとに
レジスタ743の内容の値をチェックする。シーケンサ
745がそのような内容の低位のビット、例えばビット
0ないし6、がゼロに等しいことを見出した場合には、
シーケンサ745は、アドレス指定したデータ・バッフ
ァは空であると結論する。その例においては、読取りシ
ーケンサ745は、レジスタ742に格納されたチャネ
ル・ナンバに関連する連鎖の1つである場合には、デー
タ・バッファをアンリンクし、そしてアンリンクされた
バッファをフリー・データ・バッファのセクション30
4リストに加える。
【0051】特に初期化中では、関連するポート回路
は、シーケンサ745により完全にアンロードされた次
のデータ・バッファのアドレスを入力するのに使用され
うる次のセクション304場所のアドレスをWFPレジ
スタ741に格納する。その後、空のデータ・バッファ
のアドレスをフリー・リスト、またはプールに加えるた
めには、シーケンサ745により、レジスタ743の内
容がデータ・バス315上にレジスタ741の内容がア
ドレス・バス320上にそれぞれ送出される。
は、シーケンサ745により完全にアンロードされた次
のデータ・バッファのアドレスを入力するのに使用され
うる次のセクション304場所のアドレスをWFPレジ
スタ741に格納する。その後、空のデータ・バッファ
のアドレスをフリー・リスト、またはプールに加えるた
めには、シーケンサ745により、レジスタ743の内
容がデータ・バス315上にレジスタ741の内容がア
ドレス・バス320上にそれぞれ送出される。
【0052】そして、シーケンサ745は、リード線3
01上に書込み信号を示すようにR/Wコントロール回
路をプロンプトする。メモリ300は、それに応答し
て、アドレスされた場所にデータ・バス315上に含ま
れた情報を格納する。さらに、シーケンサ745によ
り、データ・バス315上に含まれた情報がスクラッチ
・レジスタ744に格納される。上記に続き、シーケン
サ740はレジスタ741の内容を増分し、そのためそ
れはフリー・データ・バッファのアドレスを入力するの
に使用されうるメモリ・セクション304の次の場所を
指す。
01上に書込み信号を示すようにR/Wコントロール回
路をプロンプトする。メモリ300は、それに応答し
て、アドレスされた場所にデータ・バス315上に含ま
れた情報を格納する。さらに、シーケンサ745によ
り、データ・バス315上に含まれた情報がスクラッチ
・レジスタ744に格納される。上記に続き、シーケン
サ740はレジスタ741の内容を増分し、そのためそ
れはフリー・データ・バッファのアドレスを入力するの
に使用されうるメモリ・セクション304の次の場所を
指す。
【0053】連鎖からフリー・データ・バッファをアン
リンクするためには、前に説明したように、シーケンサ
745はスクラッチ・レジスタ744の内容の役割とし
て(アンリンクされたバッファのアドレス)ロジカル・
インデックスを生成する。そしてシーケンサ745によ
り、そのロジカル・インデックスによりインデックス付
けられたメモリ・セクション303のアドレスがアドレ
ス・バス320上に送出される。そして、シーケンサ7
45は、リード線310上に読取り信号を示すようにR
/Wコントロール回路735をプロンプトする。
リンクするためには、前に説明したように、シーケンサ
745はスクラッチ・レジスタ744の内容の役割とし
て(アンリンクされたバッファのアドレス)ロジカル・
インデックスを生成する。そしてシーケンサ745によ
り、そのロジカル・インデックスによりインデックス付
けられたメモリ・セクション303のアドレスがアドレ
ス・バス320上に送出される。そして、シーケンサ7
45は、リード線310上に読取り信号を示すようにR
/Wコントロール回路735をプロンプトする。
【0054】メモリ300は、それに応答して、アンリ
ンクされたバッファと関連するバッファ・リンクの内容
をデータ・バス315に出力するが、ここではこのよう
な内容は連鎖の次のリンクされたバッファのアドレスで
ある。次にシーケンサ745により、データ・バス31
5上に現れる情報はTPレジスタ743に格納される。
空のデータ・バッファがデータ・バッファの連鎖の1つ
でない場合には、空のデータ・バッファはレジスタ74
2に含まれたチャネル・ナンバに関連するままである。
ンクされたバッファと関連するバッファ・リンクの内容
をデータ・バス315に出力するが、ここではこのよう
な内容は連鎖の次のリンクされたバッファのアドレスで
ある。次にシーケンサ745により、データ・バス31
5上に現れる情報はTPレジスタ743に格納される。
空のデータ・バッファがデータ・バッファの連鎖の1つ
でない場合には、空のデータ・バッファはレジスタ74
2に含まれたチャネル・ナンバに関連するままである。
【0055】本発明の実施例において、回路10はまた
フリー・バッファ・ステータス(FBS)回路755を
有することができ、これはレジスタ731とレジスタ7
41の内容を追跡するように動作する。すなわち、FB
S回路755は、フリー・データ・バッファが利用可能
でない時は必ずシーケンサ715に通知するために設け
られる。特に、FBS回路755は、すべてのデータ・
バッファが使用されているような事例を追跡するために
レジスタ731の内容をレジスタ741の内容と比較す
る。
フリー・バッファ・ステータス(FBS)回路755を
有することができ、これはレジスタ731とレジスタ7
41の内容を追跡するように動作する。すなわち、FB
S回路755は、フリー・データ・バッファが利用可能
でない時は必ずシーケンサ715に通知するために設け
られる。特に、FBS回路755は、すべてのデータ・
バッファが使用されているような事例を追跡するために
レジスタ731の内容をレジスタ741の内容と比較す
る。
【0056】すなわち、レジスタ731とレジスタ74
1が同じ値を有する場合には、両レジスタは同じメモリ
・セクション304場所を指しており、それによりフリ
ー・バッファが利用可能でないことを表わしている。そ
のような状態が起きている場合には、FBS回路755
はシーケンサ715にリード線756を介してその事実
を通知する。シーケンサ715は、それに応答して、メ
モリ300にデータ・バイトを格納するのを停止する。
以上の説明は、本発明の一実施例に関するもので、この
技術分野の当業者であれば、本発明の種々の変形例が考
え得るが、それらはいずれも本発明の技術的範囲に包含
される。
1が同じ値を有する場合には、両レジスタは同じメモリ
・セクション304場所を指しており、それによりフリ
ー・バッファが利用可能でないことを表わしている。そ
のような状態が起きている場合には、FBS回路755
はシーケンサ715にリード線756を介してその事実
を通知する。シーケンサ715は、それに応答して、メ
モリ300にデータ・バイトを格納するのを停止する。
以上の説明は、本発明の一実施例に関するもので、この
技術分野の当業者であれば、本発明の種々の変形例が考
え得るが、それらはいずれも本発明の技術的範囲に包含
される。
【0057】
【発明の効果】以上述べた如く、本発明の装置により従
来に比べパケット交換機の動作は向上する。すなわち、
複雑で管理もむつかしくかつコスト的にも不利な従来の
装置に比べ、これらの問題点を解消する動作の向上した
パケット交換機を本発明により提供することができる。
来に比べパケット交換機の動作は向上する。すなわち、
複雑で管理もむつかしくかつコスト的にも不利な従来の
装置に比べ、これらの問題点を解消する動作の向上した
パケット交換機を本発明により提供することができる。
【図1】本発明が実現できる通信交換システムを示す略
ブロック図である。
ブロック図である。
【図2】データ・パケットのフォーマット例を示す図で
ある。
ある。
【図3】図1に示すポート回路の特定回路の内部のメモ
リが本発明により分割される方法例を示す図である。
リが本発明により分割される方法例を示す図である。
【図4】図3に示すチャネル・レコードのレイアウト例
を示す図である。
を示す図である。
【図5】図1に示すポート回路の略ブロック例を示す図
である。
である。
【図6】本発明の仮想FIFOが伸縮する方法例を示す
図である。
図である。
10 回路 20 データ情報フィールド 21 ヘッダ 21−1 エラー・チェック・フィールド 21−2 OAフィールド 21−3 DAフィールド 50−1 ホスト・コンピュータ 50−M 端末 60−1 コンピュータ 60−N コンピュータ 70−1 ソース(コンピュータ) 70−K ソース(ビデオ) 100 パケット交換機 101−1 ポート回路 101−P ポート回路 102 トランク・ポート回路 200 パケット交換機 201−1 ポート回路 201−J ポート回路 202 トランク・ポート回路 210 通信パス 300 メモリ 301 セクション 301−1 データ・バッファ1 301−2 データ・バッファ2 301−M データ・バッファM 301−M+1 データ・バッファM+1 301−P データ・バッファP 302 セクション(チャネル・レコード) 302−11 ヘッド・ポインタ 302−21 テイル・ポインタ 302−22 他の情報 303 セクション(リンク・レコード) 304 セクション 310 リード線 315 データ・バス 320 アドレス・バス 600 ソース 601 データ・バッファ 602 フリー・データ・バッファ 603 フリー・データ・バッファ 705 入力インタフェース回路 706 バス 710 メモリFIFO 711 バス 715 格納シーケンサ 720 データ・コントローラ 721 パス 725 レジスタ 731 RFP(読取りフリー・ポインタ)レジスタ 732 HP(ヘッド・ポインタ)レジスタ 733 チャネル・レジスタ 735 R/W(読取り/書込み)コントロール回路 736 スクラッチ・レジスタ 741 WFP(書込みフリー・ポインタ)レジスタ 742 チャネル・レジスタ 743 TP(テイル・ポインタ)レジスタ 744 スクラッチ・レジスタ 745 読取りシーケンサ 750 出力インタフェース 751 バス 752 パス 755 フリー・バッファ・ステータス(FBS)回路 756 リード線 800 行先
フロントページの続き (72)発明者 デヴィド アール.フォレ アメリカ合衆国 07876 ニュージャージ ー サッカサンナ、コーンホロー ロード 43 (72)発明者 キャロル エー.ツアジー アメリカ合衆国 07961 ニュージャージ ー モーリスタウン、ブラッドレー ロー ド 2
Claims (6)
- 【請求項1】 複数のデータ・ソースからデータ・パケ
ットを受信する手段と、 複数のデータ・バッファと、 これらの個々のいくつかのデータ・バッファは、夫々の
前記データ・ソースと関係付けられ、別のいくつかの前
記データ・バッファは、データ・バッファのプールを形
成するために用いられ、 前記ソースから受信されたデータ・パケットをそれらの
関連するデータ・バッファに格納する手段と前記関連す
るデータ・バッファの1つが満杯になると動作し、前記
1つのデータ・バッファの容量を増加する為に、前記プ
ールからデータ・バッファを入手し、この入手したバッ
ファを前記1つのバッファにリンクする手段とを有する
ことを特徴とする通信装置。 - 【請求項2】 メモリを更に有し、 前記メモリは、分割されて複数のデータ・バッファを形
成し、各前記データ・バッファの第1のメモリ場所が、
その低位のビットが所定値に等しいメモリ場所アドレス
により識別されることを特徴とする請求項1に記載の通
信装置。 - 【請求項3】 データパケットが関連するデータ・バッ
ファに格納された順に、各前記関連するデータ・バッフ
ァからデータ・パケットをアンロードし、前記アンロー
ドされたデータ・パケットを出力に供給する手段と、 前記データ・バッファの関連する1つが空になると動作
し、そのデータ・バッファが別の1つの前記データ・バ
ッファにリンクされる場合、前記空のデータ・バッファ
を前記データ・バッフアのプールに割当てる手段とを更
に有することを特徴とする請求項1に記載の通信装置。 - 【請求項4】 データ・パケットの格納に使用でき、ア
ンロードされる関連するデータ・バッファ内の次のメモ
リ場所を夫々識別する各テイルとヘッドのポインタと各
前記データ・ソースが関係付けられ、 前記1つのデータ・バッファにデータ・パケットの格納
に続いて動作し、前記1つのデータ・バッファで次に使
用できるメモリ場所を識別するように、関連するヘッド
・ポインタを増分する手段と、 前記1つのデータ・バッファからデータ・パケットのア
ンロードするのに続いて動作し、アンロードされうる前
記1つのデータ・バッファで次に使用できるメモリ場所
を識別するように、関連するテイル・ポインタを増分す
る手段とを更に有することを特徴とする請求項1に記載
の通信装置。 - 【請求項5】 前記1つのデータ・バッファで次に利用
可能なメモリ場所を識別するヘッド・ポインタを形成す
る所定数の低位のビットの値が、前記増分した結果所定
値に等しい場合に動作し、前記1つのデータ・バッファ
の容量を増加するために、前記プールから得られたデー
タ・バッファを前記1つのデータ・バッファにリンク
し、そして前記リンクされたデータ・バッファのアドレ
スを関連するヘッド・ポインタに格納する手段を更に有
することを特徴とする請求項4に記載の通信装置。 - 【請求項6】 前記1つのバッファで次に利用可能なメ
モリ場所を識別するテイル・ポインタを形成する所定数
の低位のビットの値が、前記増分した結果所定値に等し
い場合に動作し、前記1つのデータ・バッファが前記拡
張の結果前記データ・バッファの別の1つにリンクされ
る場合に前記1つのデータ・バッファを前記プールに割
当てる手段を更に有することを特徴とする請求項4に記
載の通信装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/799,812 US5426639A (en) | 1991-11-29 | 1991-11-29 | Multiple virtual FIFO arrangement |
US799812 | 1991-11-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0685842A true JPH0685842A (ja) | 1994-03-25 |
Family
ID=25176820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33953792A Pending JPH0685842A (ja) | 1991-11-29 | 1992-11-27 | 通信装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5426639A (ja) |
EP (1) | EP0545575A1 (ja) |
JP (1) | JPH0685842A (ja) |
AU (1) | AU642830B2 (ja) |
CA (1) | CA2079503A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7050451B2 (en) | 1998-05-19 | 2006-05-23 | Nec Corporation | Multi-service-class definition type ATM switch |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5444853A (en) * | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
GB2267588B (en) * | 1992-06-06 | 1996-03-20 | Motorola Inc | FIFO memory system |
SE503316C2 (sv) * | 1994-04-19 | 1996-05-13 | Ericsson Telefon Ab L M | Förfarande för övervakning av ett minne samt kretsanordning härför |
US5602537A (en) * | 1994-05-13 | 1997-02-11 | Zilog, Inc. | Technique for eliminating data transmit memory underruns |
JP3810449B2 (ja) * | 1994-07-20 | 2006-08-16 | 富士通株式会社 | キュー装置 |
US5682553A (en) * | 1995-04-14 | 1997-10-28 | Mitsubishi Electric Information Technology Center America, Inc. | Host computer and network interface using a two-dimensional per-application list of application level free buffers |
US5760792A (en) * | 1995-05-01 | 1998-06-02 | Intergraph Corporation | Fifo logical addresses for control and error recovery |
US5696990A (en) * | 1995-05-15 | 1997-12-09 | Nvidia Corporation | Method and apparatus for providing improved flow control for input/output operations in a computer system having a FIFO circuit and an overflow storage area |
US5872822A (en) * | 1995-10-26 | 1999-02-16 | Mcdata Corporation | Method and apparatus for memory sequencing |
US5777987A (en) * | 1995-12-29 | 1998-07-07 | Symbios, Inc. | Method and apparatus for using multiple FIFOs to improve flow control and routing in a communications receiver |
US5864713A (en) * | 1996-02-12 | 1999-01-26 | Hewlett-Packard Company | Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer |
US5907717A (en) * | 1996-02-23 | 1999-05-25 | Lsi Logic Corporation | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof |
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US5797043A (en) * | 1996-03-13 | 1998-08-18 | Diamond Multimedia Systems, Inc. | System for managing the transfer of data between FIFOs within pool memory and peripherals being programmable with identifications of the FIFOs |
US6094712A (en) * | 1996-12-04 | 2000-07-25 | Giganet, Inc. | Computer network interface for direct mapping of data transferred between applications on different host computers from virtual addresses to physical memory addresses application data |
US6061358A (en) * | 1997-02-13 | 2000-05-09 | Mcdata Corporation | Data communication system utilizing a scalable, non-blocking, high bandwidth central memory controller and method |
US6016315A (en) * | 1997-04-30 | 2000-01-18 | Vlsi Technology, Inc. | Virtual contiguous FIFO for combining multiple data packets into a single contiguous stream |
EP1021046A4 (en) * | 1997-09-05 | 2000-12-20 | Matsushita Electric Ind Co Ltd | DECODING METHOD AND RECORDING MEDIUM WHERE A DECODING PROGRAM IS RECORDED |
US6005849A (en) * | 1997-09-24 | 1999-12-21 | Emulex Corporation | Full-duplex communication processor which can be used for fibre channel frames |
US6304910B1 (en) | 1997-09-24 | 2001-10-16 | Emulex Corporation | Communication processor having buffer list modifier control bits |
US6047339A (en) * | 1997-10-27 | 2000-04-04 | Emulex Corporation | Buffering data that flows between buses operating at different frequencies |
US6092127A (en) * | 1998-05-15 | 2000-07-18 | Hewlett-Packard Company | Dynamic allocation and reallocation of buffers in links of chained DMA operations by receiving notification of buffer full and maintaining a queue of buffers available |
US6516361B2 (en) | 1998-09-17 | 2003-02-04 | Sony Corporation | Method of and apparatus for capturing and processing continuous media-based data streams transmitted over an IEEE 1394 serial bus |
US6269413B1 (en) * | 1998-10-30 | 2001-07-31 | Hewlett Packard Company | System with multiple dynamically-sized logical FIFOs sharing single memory and with read/write pointers independently selectable and simultaneously responsive to respective read/write FIFO selections |
US6304936B1 (en) * | 1998-10-30 | 2001-10-16 | Hewlett-Packard Company | One-to-many bus bridge using independently and simultaneously selectable logical FIFOS |
US6877036B1 (en) | 1999-09-24 | 2005-04-05 | Akamba Corporation | System and method for managing connections between a client and a server |
US6732223B1 (en) * | 2000-04-03 | 2004-05-04 | Micron Technology, Inc. | Method and apparatus for address FIFO for high-bandwidth command/address busses in digital storage system |
JP2006510083A (ja) * | 2002-12-12 | 2006-03-23 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ハードウエアにおける構成可能なメモリ分割 |
US6907508B2 (en) * | 2003-02-26 | 2005-06-14 | Emulex Design & Manufacturing Corporation | Structure and method for managing available memory resources |
US7461131B2 (en) * | 2003-03-07 | 2008-12-02 | International Business Machines Corporation | Use of virtual targets for preparing and servicing requests for server-free data transfer operations |
DE10356127A1 (de) * | 2003-12-02 | 2005-07-07 | Robert Bosch Gmbh | Einrichtung zur Steuerung eines Speichers |
US20080270676A1 (en) * | 2005-01-31 | 2008-10-30 | Nxp B.V. | Data Processing System and Method for Memory Defragmentation |
JP4893071B2 (ja) * | 2006-03-31 | 2012-03-07 | 日本電気株式会社 | バッファ回路、および、バッファ制御方法 |
US20070286221A1 (en) * | 2006-06-13 | 2007-12-13 | Mau-Lin Wu | Memory management method and memory architecture for transmitting UWB PCA frames |
WO2009033966A1 (en) * | 2007-09-13 | 2009-03-19 | Thomson Licensing | Dynamic buffer allocation system and method |
US10212076B1 (en) | 2012-12-27 | 2019-02-19 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping a node-scope specific identifier |
US10397101B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping identifiers |
US10904144B2 (en) | 2012-12-27 | 2021-01-26 | Sitting Man, Llc | Methods, systems, and computer program products for associating a name with a network path |
US10411998B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products |
US10419335B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products |
US10404582B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using an outside-scope indentifier |
US10447575B1 (en) | 2012-12-27 | 2019-10-15 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10374938B1 (en) | 2012-12-27 | 2019-08-06 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10587505B1 (en) | 2012-12-27 | 2020-03-10 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10419334B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Internet protocol routing methods, systems, and computer program products |
US10397100B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products using a region scoped outside-scope identifier |
US10404583B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using multiple outside-scope identifiers |
US10476787B1 (en) | 2012-12-27 | 2019-11-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10411997B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Routing methods, systems, and computer program products for using a region scoped node identifier |
US9462043B2 (en) * | 2013-03-13 | 2016-10-04 | Cisco Technology, Inc. | Framework for dynamically programmed network packet processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5585158A (en) * | 1978-12-21 | 1980-06-26 | Nec Corp | Constitution for buffer memory of data exchanger |
JPS5729732A (en) * | 1980-07-29 | 1982-02-17 | Yoshihisa Horikoshi | Constructing method for simple sheathing |
JPS5768949A (en) * | 1980-10-17 | 1982-04-27 | Fujitsu Ltd | Buffer memory control system in packet transmission |
JPS5897944A (ja) * | 1981-12-07 | 1983-06-10 | Nec Corp | 複数マイクロプロセツサ間デ−タ転送方式 |
JPS62177647A (ja) * | 1986-01-31 | 1987-08-04 | Toshiba Corp | 通信制御装置におけるバツフア管理方式 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3917933A (en) * | 1974-12-17 | 1975-11-04 | Sperry Rand Corp | Error logging in LSI memory storage units using FIFO memory of LSI shift registers |
US5046023A (en) * | 1987-10-06 | 1991-09-03 | Hitachi, Ltd. | Graphic processing system having bus connection control capable of high-speed parallel drawing processing in a frame buffer and a system memory |
JP2736092B2 (ja) * | 1989-01-10 | 1998-04-02 | 株式会社東芝 | バッファ装置 |
US5016009A (en) * | 1989-01-13 | 1991-05-14 | Stac, Inc. | Data compression apparatus and method |
US5124987A (en) * | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
US5157654A (en) * | 1990-12-18 | 1992-10-20 | Bell Communications Research, Inc. | Technique for resolving output port contention in a high speed packet switch |
US5222062A (en) * | 1991-10-03 | 1993-06-22 | Compaq Computer Corporation | Expandable communication system with automatic data concentrator detection |
-
1991
- 1991-11-29 US US07/799,812 patent/US5426639A/en not_active Expired - Lifetime
-
1992
- 1992-09-30 CA CA002079503A patent/CA2079503A1/en not_active Abandoned
- 1992-11-18 EP EP92310484A patent/EP0545575A1/en not_active Withdrawn
- 1992-11-23 AU AU28562/92A patent/AU642830B2/en not_active Ceased
- 1992-11-27 JP JP33953792A patent/JPH0685842A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5585158A (en) * | 1978-12-21 | 1980-06-26 | Nec Corp | Constitution for buffer memory of data exchanger |
JPS5729732A (en) * | 1980-07-29 | 1982-02-17 | Yoshihisa Horikoshi | Constructing method for simple sheathing |
JPS5768949A (en) * | 1980-10-17 | 1982-04-27 | Fujitsu Ltd | Buffer memory control system in packet transmission |
JPS5897944A (ja) * | 1981-12-07 | 1983-06-10 | Nec Corp | 複数マイクロプロセツサ間デ−タ転送方式 |
JPS62177647A (ja) * | 1986-01-31 | 1987-08-04 | Toshiba Corp | 通信制御装置におけるバツフア管理方式 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7050451B2 (en) | 1998-05-19 | 2006-05-23 | Nec Corporation | Multi-service-class definition type ATM switch |
US7212539B2 (en) | 1998-05-19 | 2007-05-01 | Nec Corporation | Multi-service-class definition type ATM switch |
Also Published As
Publication number | Publication date |
---|---|
AU642830B2 (en) | 1993-10-28 |
EP0545575A1 (en) | 1993-06-09 |
US5426639A (en) | 1995-06-20 |
CA2079503A1 (en) | 1993-05-30 |
AU2856292A (en) | 1993-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0685842A (ja) | 通信装置 | |
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US6700894B1 (en) | Method and apparatus for shared buffer packet switching | |
US4991172A (en) | Design of a high speed packet switching node | |
US7110400B2 (en) | Random access memory architecture and serial interface with continuous packet handling capability | |
US7782849B2 (en) | Data switch and switch fabric | |
JP3734704B2 (ja) | パケット分類エンジン | |
JP2990345B2 (ja) | ネットワークインターフェース | |
US5682553A (en) | Host computer and network interface using a two-dimensional per-application list of application level free buffers | |
US5400326A (en) | Network bridge | |
US6438613B1 (en) | Method and apparatus for allowing packet data to be separated over multiple bus targets | |
US20020176430A1 (en) | Buffer management for communication systems | |
EP0357618B1 (en) | Switching system | |
US6636524B1 (en) | Method and system for handling the output queuing of received packets in a switching hub in a packet-switching network | |
US5051985A (en) | Contention resolution in a communications ring | |
US6850999B1 (en) | Coherency coverage of data across multiple packets varying in sizes | |
US7756131B2 (en) | Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof | |
US20050081003A1 (en) | Apparatus and method for efficient data storage in a digital logic device | |
EP0446335B1 (en) | Packet/fast packet switch for voice and data | |
US7143185B1 (en) | Method and apparatus for accessing external memories | |
JP2739949B2 (ja) | 通信バッファ装置 | |
JP2953362B2 (ja) | Lanのスイッチング装置 | |
JP2006135379A (ja) | パケット処理装置及びパケット処理方法 | |
JP2002152225A (ja) | 同報セルコピー方式 |