JPH1127291A - オンチップfifoのローカルメモリへの拡張のための方法及び装置 - Google Patents
オンチップfifoのローカルメモリへの拡張のための方法及び装置Info
- Publication number
- JPH1127291A JPH1127291A JP10173068A JP17306898A JPH1127291A JP H1127291 A JPH1127291 A JP H1127291A JP 10173068 A JP10173068 A JP 10173068A JP 17306898 A JP17306898 A JP 17306898A JP H1127291 A JPH1127291 A JP H1127291A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- fifo
- queue
- data
- local memory
- 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
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5681—Buffer or queue management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
(57)【要約】
【課題】多数の仮想回路に対するクレジットのリスト保
持、及びリストへの迅速なアクセスの実現。 【解決手段】比較的小型のFIFOキューが、コンピュ
ーターシステム内、代表的にはコンピューターネットワ
ーク内の、データを受信したり伝送したりする半導体チ
ップ上に位置する。FIFOキューは、コンピューター
システムのローカルメモリ内への拡張という形で、付加
的な記憶性能を有する。データの受け取り伝送を扱うF
IFOの前後端部はチップ上で実現される。FIFOの
オンチップ部分が容量満杯のときにのみ、FIFOはロ
ーカルメモリ内に提供されるスペース内へと拡張する。
FIFOの中間部分はローカルメモリの拡張に存する。
読み出し処理、書き込み処理の両方に関して、ローカル
メモリは、多数のクレジットのバーストにおいてのみア
クセスされる。
持、及びリストへの迅速なアクセスの実現。 【解決手段】比較的小型のFIFOキューが、コンピュ
ーターシステム内、代表的にはコンピューターネットワ
ーク内の、データを受信したり伝送したりする半導体チ
ップ上に位置する。FIFOキューは、コンピューター
システムのローカルメモリ内への拡張という形で、付加
的な記憶性能を有する。データの受け取り伝送を扱うF
IFOの前後端部はチップ上で実現される。FIFOの
オンチップ部分が容量満杯のときにのみ、FIFOはロ
ーカルメモリ内に提供されるスペース内へと拡張する。
FIFOの中間部分はローカルメモリの拡張に存する。
読み出し処理、書き込み処理の両方に関して、ローカル
メモリは、多数のクレジットのバーストにおいてのみア
クセスされる。
Description
【0001】
【産業上の利用分野】本発明は、広義にはコンピュータ
に、より限定すればオンチップFIFO(先入れ先出し
方式)をローカルメモリ内に拡張することに関する。
に、より限定すればオンチップFIFO(先入れ先出し
方式)をローカルメモリ内に拡張することに関する。
【0002】
【発明の背景】コンピューターネットワーク内で、また
スイッチングネットワーク内では、ソースノードにより
伝送されるデータ量を制御するためにクレジットベース
のフロー制御が使用されており、デスティネーションノ
ードではデータを溜めるために常時バッファーが利用で
きるようになっている。頻繁に、データは個別のパケッ
トに分割される。コンピューターネットワーク内でデー
タ伝送を行うための非同期転送モード(ATM)プロト
コルのようないくつかのシステムでは、データはセル内
に置かれる。ATMセルは53バイト長で、48バイト
がデータを運び、5バイトがヘッダーを構成している。
48バイトを越えるメッセージがソースノードからデス
ティネーションノードに伝送される場合、ソースノード
はまず超過メッセージを48バイトデータセルに分解
し、後でデスティネーションノードがその48バイトデ
ータセルを、伝送されたメッセージに一致する受信メッ
セージに再度組み立てる。
スイッチングネットワーク内では、ソースノードにより
伝送されるデータ量を制御するためにクレジットベース
のフロー制御が使用されており、デスティネーションノ
ードではデータを溜めるために常時バッファーが利用で
きるようになっている。頻繁に、データは個別のパケッ
トに分割される。コンピューターネットワーク内でデー
タ伝送を行うための非同期転送モード(ATM)プロト
コルのようないくつかのシステムでは、データはセル内
に置かれる。ATMセルは53バイト長で、48バイト
がデータを運び、5バイトがヘッダーを構成している。
48バイトを越えるメッセージがソースノードからデス
ティネーションノードに伝送される場合、ソースノード
はまず超過メッセージを48バイトデータセルに分解
し、後でデスティネーションノードがその48バイトデ
ータセルを、伝送されたメッセージに一致する受信メッ
セージに再度組み立てる。
【0003】ATMプロトコルのようないくつかのメッ
セージ転送プロトコルにおいては、中間ノードはスイッ
チ類である。スイッチ類は、仮想回路(VCs)に沿っ
てセルの経路を決める。ソースノードである各エンドス
テーションは、デスティネーションエンドステーション
まで確立された仮想回路を有している。中間ノード、す
なわちスイッチ類は、それらを通過して経路を構成して
いる仮想回路の全てを扱う。ATMプロトコルに従って
確立された典型的なネットワークでは、中間ノードは、
そこを通過するよう経路決定された数千の仮想回路を有
している。さらに、ATMプロトコルのようないくつか
のネットワークでは、個々のセルを追跡するための機構
を採用していないので、中間ノードで失われたセルを、
ソースエンドステーションによって再伝送することはで
きない。ATMプロトコルのセルは、単純に連番順に伝
送される。セルが失われると、ATMプロトコルに則っ
て、メッセージ全体が再びセルに分解され一連のセルが
次々と伝送される。従って、ATMプロトコルのような
プロトコルにそって確立されたネットワークにおいて
は、中間ノードがセルを失わないようにすることが肝要
である。
セージ転送プロトコルにおいては、中間ノードはスイッ
チ類である。スイッチ類は、仮想回路(VCs)に沿っ
てセルの経路を決める。ソースノードである各エンドス
テーションは、デスティネーションエンドステーション
まで確立された仮想回路を有している。中間ノード、す
なわちスイッチ類は、それらを通過して経路を構成して
いる仮想回路の全てを扱う。ATMプロトコルに従って
確立された典型的なネットワークでは、中間ノードは、
そこを通過するよう経路決定された数千の仮想回路を有
している。さらに、ATMプロトコルのようないくつか
のネットワークでは、個々のセルを追跡するための機構
を採用していないので、中間ノードで失われたセルを、
ソースエンドステーションによって再伝送することはで
きない。ATMプロトコルのセルは、単純に連番順に伝
送される。セルが失われると、ATMプロトコルに則っ
て、メッセージ全体が再びセルに分解され一連のセルが
次々と伝送される。従って、ATMプロトコルのような
プロトコルにそって確立されたネットワークにおいて
は、中間ノードがセルを失わないようにすることが肝要
である。
【0004】セル喪失を防ぐために、各ソースステーシ
ョンの伝送律を制御するため、ホップ・バイ・ホップ型
クレジットベースのフロー制御が取り入れられる。フロ
ー制御の目的のために、ソースステーションはエンドス
テーションにもなることができ、代替的には、ソースス
テーションは、下流の中間ノードへセルを伝送する中間
ノードにもなりうる。クレジットベースのフロー制御に
おいて、仮想回路はまず、どんなときにも目立つクレジ
ットをいくらか指定する。クレジットは、ソースノード
に捉えられると、該ソースノードに1つのセルを伝送す
る許可を与える。セルがデスティネーションノードに受
信されると、セルを受け取ったデスティネーションノー
ドのバッファーが受信セルを処理し終えるまで、デステ
ィネーションノードはクレジットを保持する。バッファ
ーが処理を終えた後、デスティネーションノードは、ク
レジットをソースノードに戻し、これにより、別のセル
を仮想回路に送る許可がソースノードに与えられる。
ョンの伝送律を制御するため、ホップ・バイ・ホップ型
クレジットベースのフロー制御が取り入れられる。フロ
ー制御の目的のために、ソースステーションはエンドス
テーションにもなることができ、代替的には、ソースス
テーションは、下流の中間ノードへセルを伝送する中間
ノードにもなりうる。クレジットベースのフロー制御に
おいて、仮想回路はまず、どんなときにも目立つクレジ
ットをいくらか指定する。クレジットは、ソースノード
に捉えられると、該ソースノードに1つのセルを伝送す
る許可を与える。セルがデスティネーションノードに受
信されると、セルを受け取ったデスティネーションノー
ドのバッファーが受信セルを処理し終えるまで、デステ
ィネーションノードはクレジットを保持する。バッファ
ーが処理を終えた後、デスティネーションノードは、ク
レジットをソースノードに戻し、これにより、別のセル
を仮想回路に送る許可がソースノードに与えられる。
【0005】仮想回路に指名されたいくらかの目立つク
レジットは、最大利用可能帯幅で仮想回路を作動させる
ように選ばれる。このように、仮想回路に指名されたい
くつかの顕著なクレジットは、ラウンドトリップ時間
中、仮想回路管を満たすに十分な数でなくてはならず、
且つデスティネーションノードの処理の遅れを勘案する
と予備数が必要である。例えば、仮想回路に指名された
顕著なクレジットの数は仮想回路1につきクレジット1
0ぐらいであろう。ホップ・バイ・ホップ型クレジット
ベースのフロー制御においては、各中間ノード及び一つ
下流のデスティネーションノードは、一つ下流のデステ
ィネーションノードが次のセルを受け取れるようなバッ
ファーを確保できるように、クレジットベースのフロー
制御を維持する。
レジットは、最大利用可能帯幅で仮想回路を作動させる
ように選ばれる。このように、仮想回路に指名されたい
くつかの顕著なクレジットは、ラウンドトリップ時間
中、仮想回路管を満たすに十分な数でなくてはならず、
且つデスティネーションノードの処理の遅れを勘案する
と予備数が必要である。例えば、仮想回路に指名された
顕著なクレジットの数は仮想回路1につきクレジット1
0ぐらいであろう。ホップ・バイ・ホップ型クレジット
ベースのフロー制御においては、各中間ノード及び一つ
下流のデスティネーションノードは、一つ下流のデステ
ィネーションノードが次のセルを受け取れるようなバッ
ファーを確保できるように、クレジットベースのフロー
制御を維持する。
【0006】中間ノードが数千の仮想回路を有すると
き、例えば、各仮想回路に数十のクレジットが指名され
るとき等には問題が発生する。デスティネーションノー
ドは、各仮想回路に、戻されるべき数のクレジットを格
納している。各仮想回路において、戻されるべき数のク
レジットを格納するためのデータ構造は、12ビットか
ら24ビットの仮想回路の数を含んでいる。当該サイズ
のデータ構造を保持するためのメモリ必要条件は、5千
万から1億バイト若しくはそれ以上に及ぶ。さらなる問
題は、仮想回路のリストが、1セル時間でアクセスでき
なければならないということである。すなわち、セルが
受信されるとクレジットのリストはアップデートされね
ばならない。迅速なアクセスには、クレジットのリスト
が、クレジットベースのフロー制御を行うために使用さ
れる論理を実行するVLSIチップで実行されることが
必要となる。
き、例えば、各仮想回路に数十のクレジットが指名され
るとき等には問題が発生する。デスティネーションノー
ドは、各仮想回路に、戻されるべき数のクレジットを格
納している。各仮想回路において、戻されるべき数のク
レジットを格納するためのデータ構造は、12ビットか
ら24ビットの仮想回路の数を含んでいる。当該サイズ
のデータ構造を保持するためのメモリ必要条件は、5千
万から1億バイト若しくはそれ以上に及ぶ。さらなる問
題は、仮想回路のリストが、1セル時間でアクセスでき
なければならないということである。すなわち、セルが
受信されるとクレジットのリストはアップデートされね
ばならない。迅速なアクセスには、クレジットのリスト
が、クレジットベースのフロー制御を行うために使用さ
れる論理を実行するVLSIチップで実行されることが
必要となる。
【0007】しかしながら、クレジットベースのフロー
制御の論理を実行するチップに何千キロバイトもの記憶
を維持させることは、非常に費用がかさむ。何千もの仮
想回路に、戻されるべきクレジットのリストを維持する
ための便利で経済的な方法の実現、そしてリストへの迅
速なアクセスの実現が待望されている。
制御の論理を実行するチップに何千キロバイトもの記憶
を維持させることは、非常に費用がかさむ。何千もの仮
想回路に、戻されるべきクレジットのリストを維持する
ための便利で経済的な方法の実現、そしてリストへの迅
速なアクセスの実現が待望されている。
【0008】
【発明の概要】数多くの仮想回路のためにクレジットの
リストを保持するという問題は、先入れ先出し方式(F
IFO)キュー及びFIFOキュー拡張という本発明に
よって解決される。その幅広い形態において、本発明
は、請求項1に記載の如く、データを自動的に受信伝送
するための装置に、そして個別的にはそのようなノード
に存る。本発明は、また、データを受信伝送するための
方法にも存る。以下、好適実施例を参照しながら説明す
るように、FIFOキューはデータを受信し、データを
仮想回路に伝送する。データが書き込まれるFIFOキ
ューの前端、及び、データが読み出されるFIFOの後
端は、半導体チップに存することが望ましい。FIFO
は、付加的記憶性能を、FIFOの中間部に属する、ロ
ーカルメモリにおける拡張という形態で持つ。ローカル
メモリとは、チップを離れて位置するメモリのことであ
る。ローカルメモリにおける拡張は、FIFOのオンチ
ップメモリがいっぱいのときにのみアクセスされる。ロ
ーカルメモリは、読み出し処理と書き込み処理の両方の
ため、多数のバイトのデータバーストでアクセスされ
る。
リストを保持するという問題は、先入れ先出し方式(F
IFO)キュー及びFIFOキュー拡張という本発明に
よって解決される。その幅広い形態において、本発明
は、請求項1に記載の如く、データを自動的に受信伝送
するための装置に、そして個別的にはそのようなノード
に存る。本発明は、また、データを受信伝送するための
方法にも存る。以下、好適実施例を参照しながら説明す
るように、FIFOキューはデータを受信し、データを
仮想回路に伝送する。データが書き込まれるFIFOキ
ューの前端、及び、データが読み出されるFIFOの後
端は、半導体チップに存することが望ましい。FIFO
は、付加的記憶性能を、FIFOの中間部に属する、ロ
ーカルメモリにおける拡張という形態で持つ。ローカル
メモリとは、チップを離れて位置するメモリのことであ
る。ローカルメモリにおける拡張は、FIFOのオンチ
ップメモリがいっぱいのときにのみアクセスされる。ロ
ーカルメモリは、読み出し処理と書き込み処理の両方の
ため、多数のバイトのデータバーストでアクセスされ
る。
【0009】VLSIにて実行される、例えばチップ上
で実行される、キュー部分は、読み出し、書き込みに関
するメモリに素早くアクセスできる。ローカルメモリへ
のデータアクセス、一例としてダイナミックランダムア
クセスメモリ(DRAM)は、ローカルメモリに固有の
遅れ、すなわち待ち時間を包含している。一般的に、ロ
ーカルメモリはその他のタスクも担っているせいで、ロ
ーカルメモリへのアクセスに別の遅れが加わる。メモリ
アービターは、その他のタスクが、キューに対する読み
出し、書き込みよりも優先権を持ち、遅れを引き起こす
タスクの中にあって調停役を果たす。FIFOキューの
前後端をチップ上に置くことで、キューへの迅速なアク
セスが可能となる。ローカルメモリにおいて拡張を行う
ことで、キューに対する記憶容量が大になる。キューの
中間部は素早いアクセスを必要としないので、拡張にキ
ューの中間部を記憶させることで、ローカルメモリへの
アクセスの遅れが許容される。ローカルメモリ拡張へ
の、書き込み、読み出しのマルチバイトのデータは、キ
ュー操作におけるローカルメモリの待ち時間の影響をさ
らに軽減させる。
で実行される、キュー部分は、読み出し、書き込みに関
するメモリに素早くアクセスできる。ローカルメモリへ
のデータアクセス、一例としてダイナミックランダムア
クセスメモリ(DRAM)は、ローカルメモリに固有の
遅れ、すなわち待ち時間を包含している。一般的に、ロ
ーカルメモリはその他のタスクも担っているせいで、ロ
ーカルメモリへのアクセスに別の遅れが加わる。メモリ
アービターは、その他のタスクが、キューに対する読み
出し、書き込みよりも優先権を持ち、遅れを引き起こす
タスクの中にあって調停役を果たす。FIFOキューの
前後端をチップ上に置くことで、キューへの迅速なアク
セスが可能となる。ローカルメモリにおいて拡張を行う
ことで、キューに対する記憶容量が大になる。キューの
中間部は素早いアクセスを必要としないので、拡張にキ
ューの中間部を記憶させることで、ローカルメモリへの
アクセスの遅れが許容される。ローカルメモリ拡張へ
の、書き込み、読み出しのマルチバイトのデータは、キ
ュー操作におけるローカルメモリの待ち時間の影響をさ
らに軽減させる。
【0010】
【実施例】本発明は、図面に描かれた本発明の代表的実
施例についての以下の詳細な説明によって、前述の利点
も含めて一層理解が深まるであろう。図1は、一例とし
て、A12、B14、C16、そしてD18の4つのス
テーションを含んだ非同期転送モード(ATM)ローカ
ルエリアネットワーク(LAN)を示している。ATM
LAN10は、またATMスイッチE20とATMス
イッチF22も含んでいる。ATNアダプターは各ステ
ーション12、14、16、18に存する。ATMスイ
ッチは、またポート32、34も有しており、各ポート
はもう一方のポートのスイッチのために設けられてい
る。ATMアダプターは、ステーション12、14、1
6、18と、スイッチ20、22の間にインターフェー
スを提供する。ATMスイッチは、ポート26、27、
28、29を有し、各々はステーション12、14、1
6、18のうちの一つを担当している。一例として、ス
テーションA12がステーションC16にパケットを伝
送する場合、ステーションA12のATMアダプター
は、データをセルに分轄し、セルヘッダー(図2、図3
に表示)に適当なフィールドを付けるのに従事する。ス
テーションCのATMアダプターは、完全なパケットと
なって受け取られたセルを再度組み立て、そのパケット
をステーションC16に届けるのに従事する。ATM
LAN10の制御は、ATMスイッチE20とF22に
依り、メッセージ過剰の場合、ステーション12、1
4、16、18の間でメッセージの経路が決定され、ア
クセスが制御される。例えば、ステーションA12は、
ライン30上にATMスイッチE20まで、ポート26
を通過してセルを送る。ATMスイッチE20は、AT
MセルヘッダーのVCI/VPI(図2、図3を参照し
ながら詳しく説明)により、デスティネーション、例え
ば、ステーションCまでのセルの経路を決定する。
施例についての以下の詳細な説明によって、前述の利点
も含めて一層理解が深まるであろう。図1は、一例とし
て、A12、B14、C16、そしてD18の4つのス
テーションを含んだ非同期転送モード(ATM)ローカ
ルエリアネットワーク(LAN)を示している。ATM
LAN10は、またATMスイッチE20とATMス
イッチF22も含んでいる。ATNアダプターは各ステ
ーション12、14、16、18に存する。ATMスイ
ッチは、またポート32、34も有しており、各ポート
はもう一方のポートのスイッチのために設けられてい
る。ATMアダプターは、ステーション12、14、1
6、18と、スイッチ20、22の間にインターフェー
スを提供する。ATMスイッチは、ポート26、27、
28、29を有し、各々はステーション12、14、1
6、18のうちの一つを担当している。一例として、ス
テーションA12がステーションC16にパケットを伝
送する場合、ステーションA12のATMアダプター
は、データをセルに分轄し、セルヘッダー(図2、図3
に表示)に適当なフィールドを付けるのに従事する。ス
テーションCのATMアダプターは、完全なパケットと
なって受け取られたセルを再度組み立て、そのパケット
をステーションC16に届けるのに従事する。ATM
LAN10の制御は、ATMスイッチE20とF22に
依り、メッセージ過剰の場合、ステーション12、1
4、16、18の間でメッセージの経路が決定され、ア
クセスが制御される。例えば、ステーションA12は、
ライン30上にATMスイッチE20まで、ポート26
を通過してセルを送る。ATMスイッチE20は、AT
MセルヘッダーのVCI/VPI(図2、図3を参照し
ながら詳しく説明)により、デスティネーション、例え
ば、ステーションCまでのセルの経路を決定する。
【0011】各ポート26、27、28、29は、各ス
テーション12、14、16、18の内のひとつに対応
して設計されているので、それ以外のステーションは、
ATMスイッチ20、22へのアクセスを争うことはな
い。このようにして、ステーションA12は、他のステ
ーションが他のこのような接続活動をしていることには
かかわらず、ライン30への最大アクセスを得る。例と
して、5Mbのファイルが、ステーションA12からス
テーションC16へ伝送される場合、イーサネットLA
N、トークンリングLANやファイバーディストリビュ
ーティッドデータインターフェース(FDDI)LAN
のような他のLANと係わっている他のステーション
と、コミュニケーションリンクを共有したり、これら他
のステーションからフレーム干渉を受けるのではなく、
ファイルは連続的なバーストにおいては指令された速
度、おそらくフルチャンネル速度でATMスイッチE2
0に移動できる。
テーション12、14、16、18の内のひとつに対応
して設計されているので、それ以外のステーションは、
ATMスイッチ20、22へのアクセスを争うことはな
い。このようにして、ステーションA12は、他のステ
ーションが他のこのような接続活動をしていることには
かかわらず、ライン30への最大アクセスを得る。例と
して、5Mbのファイルが、ステーションA12からス
テーションC16へ伝送される場合、イーサネットLA
N、トークンリングLANやファイバーディストリビュ
ーティッドデータインターフェース(FDDI)LAN
のような他のLANと係わっている他のステーション
と、コミュニケーションリンクを共有したり、これら他
のステーションからフレーム干渉を受けるのではなく、
ファイルは連続的なバーストにおいては指令された速
度、おそらくフルチャンネル速度でATMスイッチE2
0に移動できる。
【0012】ATM LAN10の各メッセージは、一
つ以上の固定長のATMセルと呼ばれるデータから構成
される。図2を参照すると、ATMセル50は、53バ
イト長で示されている。ATMセル50は、代表的に
は、5バイトのヘッダー52と48バイトの情報フィー
ルド54に分けられる。5バイトのヘッダー52は、い
くつかのフィールド56を含んでいる。厳密には、1番
目のバイトは、総フロー制御(GFC)フィールド58
及び、仮想路識別子(VPI)フィールドの一部60を
含む。2番目のバイトは、VPIフィールドの別の部分
62と仮想チャンネル識別子(VCI)フィールドの一
部64を包含している。3番目のバイトは、VCIフィ
ールドの別の部分66を有する。4番目のバイトは、V
CIフィールドの残り部分68、ペイロード型識別子
(PT)フィールド70、及びセルロスプライオリティ
ーフィールド(CLP)72を包含する。5番目のバイ
トは、ヘッダーエラーチェック74を含んでいる。
つ以上の固定長のATMセルと呼ばれるデータから構成
される。図2を参照すると、ATMセル50は、53バ
イト長で示されている。ATMセル50は、代表的に
は、5バイトのヘッダー52と48バイトの情報フィー
ルド54に分けられる。5バイトのヘッダー52は、い
くつかのフィールド56を含んでいる。厳密には、1番
目のバイトは、総フロー制御(GFC)フィールド58
及び、仮想路識別子(VPI)フィールドの一部60を
含む。2番目のバイトは、VPIフィールドの別の部分
62と仮想チャンネル識別子(VCI)フィールドの一
部64を包含している。3番目のバイトは、VCIフィ
ールドの別の部分66を有する。4番目のバイトは、V
CIフィールドの残り部分68、ペイロード型識別子
(PT)フィールド70、及びセルロスプライオリティ
ーフィールド(CLP)72を包含する。5番目のバイ
トは、ヘッダーエラーチェック74を含んでいる。
【0013】ATMセル50のアドレスは、VPI6
0、62及びVCI64、66、68と分類されたフィ
ールドに含まれている。この2部式識別によってATM
LAN10は、ロケーション間の情報フィールド54
に含まれるデータに経路を決定する一方、トランク内で
個々の回路の独自性を維持できる。図3は、クレジット
ベースのフロー制御システムで使用されるATMセル8
0を示している。ヘッダー82は5バイト長で、いくつ
かのフィールド84から成る。厳密には、1番目のバイ
トはGFCフィールド86及びクレジット仮想回路識別
子(クレジットVCI)の一部88を含む。2番目のバ
イトはクレジットVCIの別の部分90を含んでいる。
3番目のバイトはデスティネーションVCIの一部92
を包含している。4番目のバイトは、デスティネーショ
ンVCIの残り部分94、PTフィールド96、及びC
LPフィールド98を有する。5番目のバイトはヘッダ
ーエラーチェックフィールド100を有している。
0、62及びVCI64、66、68と分類されたフィ
ールドに含まれている。この2部式識別によってATM
LAN10は、ロケーション間の情報フィールド54
に含まれるデータに経路を決定する一方、トランク内で
個々の回路の独自性を維持できる。図3は、クレジット
ベースのフロー制御システムで使用されるATMセル8
0を示している。ヘッダー82は5バイト長で、いくつ
かのフィールド84から成る。厳密には、1番目のバイ
トはGFCフィールド86及びクレジット仮想回路識別
子(クレジットVCI)の一部88を含む。2番目のバ
イトはクレジットVCIの別の部分90を含んでいる。
3番目のバイトはデスティネーションVCIの一部92
を包含している。4番目のバイトは、デスティネーショ
ンVCIの残り部分94、PTフィールド96、及びC
LPフィールド98を有する。5番目のバイトはヘッダ
ーエラーチェックフィールド100を有している。
【0014】各到着セルのクレジットフィールドは伝送
仮想回路(VC)を識別し、それには伝送用に新しいク
レジットが与えられる。レシーバーは、到着セルをその
バッファーから移動させた後、センダーにクレジットを
返さねばならない。返されるクレジットは、レシーバー
から転送されるセルに付けられる。クレジットが戻され
たVCは、到着セルの一つが回送されたもの、すなわち
VCIフィールドのバリューである。伝送クレジットや
受信クレジットは、セル1につき一つ行われる。可能性
としては、到着セルは、VCI=0とデスティネーショ
ンに表される空のセルである。この場合、セルは無視さ
れ、クレジットは返されない。伝送されるセルは、クレ
ジット値が0であるなら、クレジットを全く運んでいな
い。到着セルが伝送VCの一つのためにクレジットを含
んでいるなら(クレジット<>0)、伝送VCのクレジ
ットバランスは1増加し、クレジットが足らないために
VCが停止させられた場合は、そのVCは再起動され
る。
仮想回路(VC)を識別し、それには伝送用に新しいク
レジットが与えられる。レシーバーは、到着セルをその
バッファーから移動させた後、センダーにクレジットを
返さねばならない。返されるクレジットは、レシーバー
から転送されるセルに付けられる。クレジットが戻され
たVCは、到着セルの一つが回送されたもの、すなわち
VCIフィールドのバリューである。伝送クレジットや
受信クレジットは、セル1につき一つ行われる。可能性
としては、到着セルは、VCI=0とデスティネーショ
ンに表される空のセルである。この場合、セルは無視さ
れ、クレジットは返されない。伝送されるセルは、クレ
ジット値が0であるなら、クレジットを全く運んでいな
い。到着セルが伝送VCの一つのためにクレジットを含
んでいるなら(クレジット<>0)、伝送VCのクレジ
ットバランスは1増加し、クレジットが足らないために
VCが停止させられた場合は、そのVCは再起動され
る。
【0015】図4は、代表的クレジットベースのATM
フロー制御システムを表している。この代表的クレジッ
トベースのATMフロー制御システムにおいては、AT
Mスイッチ400の上流に位置するトランスミッター部
分402は、仮想回路識別子(VCI)406上にAT
Mセル404を発送している。ATMセル404内のク
レジットフィールド408は、下流のVCI414用A
TMアダプター412のトランスミッター部410のた
めにクレジットを運んでいる。セルが、その遠端にバッ
ファーを有し、従って損失を被らないであろうというこ
とが確実なら、クレジットは、単純にVCI上の一つの
ATMセルに送られればよい。図4の、代表的クレジッ
トベースのATMフロー制御システムにおいては、下流
のATMアダプター412が、VCI406のATMセ
ル404を、そのローカルメモリ416から、レシーバ
ー部418から、ホストメモリ420へと移動させると
き、下流のATMアダプター412は、VCI406上
の新しいATMセル(図示されない)の伝送を許容する
ため、上流のATMスイッチ400のトランスミッショ
ン部402のためのクレジットを発生させる。他のアダ
プター設計では、ATMセル404を受け取り、それを
ローカルメモリ416に格納するにあたり、クレジット
426を返すこともできる。トランスミッター部分40
2のためのクレジットは、下流のATMアダプター41
2のトランスミッター部分410により伝送される任意
のATMセルにより、上流のATMスイッチ400のレ
シーバー部分424まで運ぶことができる。例えば、図
4では、VCI406のクレジット426は、VCI4
14上のATMセル428に載せて運ばれる。
フロー制御システムを表している。この代表的クレジッ
トベースのATMフロー制御システムにおいては、AT
Mスイッチ400の上流に位置するトランスミッター部
分402は、仮想回路識別子(VCI)406上にAT
Mセル404を発送している。ATMセル404内のク
レジットフィールド408は、下流のVCI414用A
TMアダプター412のトランスミッター部410のた
めにクレジットを運んでいる。セルが、その遠端にバッ
ファーを有し、従って損失を被らないであろうというこ
とが確実なら、クレジットは、単純にVCI上の一つの
ATMセルに送られればよい。図4の、代表的クレジッ
トベースのATMフロー制御システムにおいては、下流
のATMアダプター412が、VCI406のATMセ
ル404を、そのローカルメモリ416から、レシーバ
ー部418から、ホストメモリ420へと移動させると
き、下流のATMアダプター412は、VCI406上
の新しいATMセル(図示されない)の伝送を許容する
ため、上流のATMスイッチ400のトランスミッショ
ン部402のためのクレジットを発生させる。他のアダ
プター設計では、ATMセル404を受け取り、それを
ローカルメモリ416に格納するにあたり、クレジット
426を返すこともできる。トランスミッター部分40
2のためのクレジットは、下流のATMアダプター41
2のトランスミッター部分410により伝送される任意
のATMセルにより、上流のATMスイッチ400のレ
シーバー部分424まで運ぶことができる。例えば、図
4では、VCI406のクレジット426は、VCI4
14上のATMセル428に載せて運ばれる。
【0016】上流のATMスイッチ400のレシーバー
部分424は下流のATMアダプター412のトランス
ミッター部分410からATMセル428を受け取り、
自分のローカルメモリ430に格納する。上流のATM
スイッチ400は、VCI406上に別のセルを伝送す
るためにクレジット426を利用する。上流のATMス
イッチ400が、そのローカルメモリからその出力ポー
ト432の一つへとATMセル428を移動させると
き、上流のATMスイッチ400はVCI414用のク
レジット434を発生させるが、このクレジットは下流
のATMアダプター412に向けて任意のATMセルに
よって運ばれる。各仮想回路に対して最大リンクスピー
ドを維持できるようにするためには、各伝送VCに適切
な初期の固定数のクレジットを提供することが必要とさ
れる。各VCに対する初期クレジット数は、典型的に
は、最大リンクレートでVCがフローできるのに十分な
数に設定される。VC用の初期クレジットの数は、リン
ク上の他のVCに異存がない場合は、センダーが初期ク
レジットを使い果たす前にセンダーにクレジットを返せ
るように、与えられたセルのバーストにおいて送られる
第一セルに足りる数でなくてはならない。すなわち、初
期クレジットの数は、上流ATMスイッチ400が下流
のATMアダプター412のトランスミッション部分4
10から第一クレジットを受け取る前に、上流のATM
スイッチ400のトランスミッター部分402が、確実
に伝送を停止させないようにするために十分多くなくて
はならない。このように、下流のATMアダプター41
2のレシーバー部分418は、上流のATMスイッチ4
00に与えられる初期クレジットの伝送に対応する数の
セルを収容するために、十分なローカルメモリ416を
持たなければならない。すなわち、クレジットのラウン
ドトリップの遅れのせいで、レシーバーは、与えられる
初期クレジットを、トランスミッターのために収容する
ために、十分なバファリングを有することが必要であ
る。
部分424は下流のATMアダプター412のトランス
ミッター部分410からATMセル428を受け取り、
自分のローカルメモリ430に格納する。上流のATM
スイッチ400は、VCI406上に別のセルを伝送す
るためにクレジット426を利用する。上流のATMス
イッチ400が、そのローカルメモリからその出力ポー
ト432の一つへとATMセル428を移動させると
き、上流のATMスイッチ400はVCI414用のク
レジット434を発生させるが、このクレジットは下流
のATMアダプター412に向けて任意のATMセルに
よって運ばれる。各仮想回路に対して最大リンクスピー
ドを維持できるようにするためには、各伝送VCに適切
な初期の固定数のクレジットを提供することが必要とさ
れる。各VCに対する初期クレジット数は、典型的に
は、最大リンクレートでVCがフローできるのに十分な
数に設定される。VC用の初期クレジットの数は、リン
ク上の他のVCに異存がない場合は、センダーが初期ク
レジットを使い果たす前にセンダーにクレジットを返せ
るように、与えられたセルのバーストにおいて送られる
第一セルに足りる数でなくてはならない。すなわち、初
期クレジットの数は、上流ATMスイッチ400が下流
のATMアダプター412のトランスミッション部分4
10から第一クレジットを受け取る前に、上流のATM
スイッチ400のトランスミッター部分402が、確実
に伝送を停止させないようにするために十分多くなくて
はならない。このように、下流のATMアダプター41
2のレシーバー部分418は、上流のATMスイッチ4
00に与えられる初期クレジットの伝送に対応する数の
セルを収容するために、十分なローカルメモリ416を
持たなければならない。すなわち、クレジットのラウン
ドトリップの遅れのせいで、レシーバーは、与えられる
初期クレジットを、トランスミッターのために収容する
ために、十分なバファリングを有することが必要であ
る。
【0017】図5は、図4の下流アダプター412のレ
シーバー部分を示す。下流アダプター412のレシーバ
ー部分418は、ローカルメモリ416で実行されるパ
ケットの再組み立てのため、9個のキュー500を有す
る。9個のキュー500は、1個のアクティブキュー5
10と8個のストールトキュー520−527から成
る。アダプターのホストは、アダプターから組み立てら
れたパケットを受け取るためのレシーブホストキューを
備えている。パケットが再度組み立てられると、レシー
ブホストキューのひとつの上に置かれるだけである。下
流のATMアダプター412がそのレシーバー部分に、
限定されたVC(例えば、VC106)のための第1A
TMセルを受け取るとき、下流のATMアダプター41
2には、二つの選択肢がある。下流のATMアダプター
412はVC106をアクティブキュー510に変えて
もよく、或いは、下流のATMアダプター412は、V
C106を8個のストールトキュー520−527の一
つに変えることもできる。
シーバー部分を示す。下流アダプター412のレシーバ
ー部分418は、ローカルメモリ416で実行されるパ
ケットの再組み立てのため、9個のキュー500を有す
る。9個のキュー500は、1個のアクティブキュー5
10と8個のストールトキュー520−527から成
る。アダプターのホストは、アダプターから組み立てら
れたパケットを受け取るためのレシーブホストキューを
備えている。パケットが再度組み立てられると、レシー
ブホストキューのひとつの上に置かれるだけである。下
流のATMアダプター412がそのレシーバー部分に、
限定されたVC(例えば、VC106)のための第1A
TMセルを受け取るとき、下流のATMアダプター41
2には、二つの選択肢がある。下流のATMアダプター
412はVC106をアクティブキュー510に変えて
もよく、或いは、下流のATMアダプター412は、V
C106を8個のストールトキュー520−527の一
つに変えることもできる。
【0018】下流のATMアダプター412のトランス
ミッター部分410は、アクティブキュー510に置か
れたVCに対して、常時クレジットを返す。VCが、ス
トールしたキューにおいてキューに登録されている限
り、クレジットは下流のATMアダプター412に留ま
り、VCがストールしたキュー登録から外されて、アク
ティブキュー510にキュー登録されるときのみ、クレ
ジットは上流のスイッチに戻される。図6は、下流アダ
プター412のトランスミッター部分410を示してい
る。多数のクレジットを扱うために、下流アダプターの
トランスミッター410は、2つの先入れ先出しキュー
(FIFO)600、610とアービター620を有す
る。2つのFIFOとは、クレジットがディレイするF
IFO600と、アクティベートFIFO610であ
る。アービター620は、FIFOにおけるクレジット
の動きを制御するコマンド・アンド・ステータスレジス
ター(CSR)630を備えている。CSR630は、
プログラム可能なコントロールビット635を有する。
下流アダプター412は、クレジットを返すに当たり、
どちらのFIFOを使うべきか決定するためにアービタ
ー620を用いる。クレジットがディレイしたFIFO
600はディレイしたクレジットを格納するために使用
される大型FIFOである。伝送されるセル1につき、
たった1つのクレジットが返される。アダプター412
が、アクティベートFIFO610から、クレジットを
返そうと決めるときはいつでも、クレジット・リターン
の通常の流れは、クレジットディレイしたFIFO60
0に一時的に置かれる。クレジットディレイしたFIF
O600は、VC番号をクレジットとして(エントリー
毎にクレジット1)保持する。アクティベートFIFO
610は、VCが、ストールしたキュー520−527
からアクティブキュー510へと移動するとき、返還を
予定されているクレジットを格納するために用いられ
る。VCがストールトキュー520−527にいた時間
中にストールされた全てのクレジットは、アクティベー
トFIFO610の一つのエントリーに置かれる。アク
ティベートFIFO610上のエントリーは、VC番号
及びVCクレジットカウント値を保持する。
ミッター部分410は、アクティブキュー510に置か
れたVCに対して、常時クレジットを返す。VCが、ス
トールしたキューにおいてキューに登録されている限
り、クレジットは下流のATMアダプター412に留ま
り、VCがストールしたキュー登録から外されて、アク
ティブキュー510にキュー登録されるときのみ、クレ
ジットは上流のスイッチに戻される。図6は、下流アダ
プター412のトランスミッター部分410を示してい
る。多数のクレジットを扱うために、下流アダプターの
トランスミッター410は、2つの先入れ先出しキュー
(FIFO)600、610とアービター620を有す
る。2つのFIFOとは、クレジットがディレイするF
IFO600と、アクティベートFIFO610であ
る。アービター620は、FIFOにおけるクレジット
の動きを制御するコマンド・アンド・ステータスレジス
ター(CSR)630を備えている。CSR630は、
プログラム可能なコントロールビット635を有する。
下流アダプター412は、クレジットを返すに当たり、
どちらのFIFOを使うべきか決定するためにアービタ
ー620を用いる。クレジットがディレイしたFIFO
600はディレイしたクレジットを格納するために使用
される大型FIFOである。伝送されるセル1につき、
たった1つのクレジットが返される。アダプター412
が、アクティベートFIFO610から、クレジットを
返そうと決めるときはいつでも、クレジット・リターン
の通常の流れは、クレジットディレイしたFIFO60
0に一時的に置かれる。クレジットディレイしたFIF
O600は、VC番号をクレジットとして(エントリー
毎にクレジット1)保持する。アクティベートFIFO
610は、VCが、ストールしたキュー520−527
からアクティブキュー510へと移動するとき、返還を
予定されているクレジットを格納するために用いられ
る。VCがストールトキュー520−527にいた時間
中にストールされた全てのクレジットは、アクティベー
トFIFO610の一つのエントリーに置かれる。アク
ティベートFIFO610上のエントリーは、VC番号
及びVCクレジットカウント値を保持する。
【0019】図7は、ディレイドFIFO600を示し
ている。ディレイドFIFO600は、2つの主要部
分、すなわち、チップ710上に搭載されたコンポーネ
ントと、ローカルメモリ723に属するローカルメモリ
拡張720に分けられる。チップ710上のコンポーネ
ントは、メモリとコントローラー723である。本発明
の当実施例では、メモリはそれぞれが16クレジットま
でを含んだ4つの論理型バンク725、730、73
5、740に分けられている1つの連続したメモリであ
る。本発明の別の実施例においては、チップ710上の
メモリは、4つの論理的バンクより多く、若しくは少な
く分割される。データが書き込まれるディレイドFIF
O600の前端と、データが読み出されるディレイドF
IFO600の後端とは、チップ710上にある。ディ
レイドFIFO600は、ディレイドFIFO600の
中間部分が属するローカルメモリ723の拡張720に
付加的な記憶装置を有する。ローカルメモリ拡張720
は、ディレイドFIFO600のオンチップ部分が一杯
のときにのみアクセスされる。ローカルメモリ拡張72
0は、読みだし処理と書き込み処理の両方のための多数
バイトのデータのバースト、すなわち、データのバンク
が移動する際にアクセスされる。
ている。ディレイドFIFO600は、2つの主要部
分、すなわち、チップ710上に搭載されたコンポーネ
ントと、ローカルメモリ723に属するローカルメモリ
拡張720に分けられる。チップ710上のコンポーネ
ントは、メモリとコントローラー723である。本発明
の当実施例では、メモリはそれぞれが16クレジットま
でを含んだ4つの論理型バンク725、730、73
5、740に分けられている1つの連続したメモリであ
る。本発明の別の実施例においては、チップ710上の
メモリは、4つの論理的バンクより多く、若しくは少な
く分割される。データが書き込まれるディレイドFIF
O600の前端と、データが読み出されるディレイドF
IFO600の後端とは、チップ710上にある。ディ
レイドFIFO600は、ディレイドFIFO600の
中間部分が属するローカルメモリ723の拡張720に
付加的な記憶装置を有する。ローカルメモリ拡張720
は、ディレイドFIFO600のオンチップ部分が一杯
のときにのみアクセスされる。ローカルメモリ拡張72
0は、読みだし処理と書き込み処理の両方のための多数
バイトのデータのバースト、すなわち、データのバンク
が移動する際にアクセスされる。
【0020】チップ710上で実行されるディレイドF
IFO600の部分は、読み出し、書き込み用のメモリ
へのアクセスを素早く行うことができる。ローカルメモ
リ723へのデータアクセスは、ローカルメモリ723
に特有の遅れ或いは待ち時間を包含している。一般的
に、ローカルメモリ723が、他のタスクと共用されて
いるせいで、ローカルメモリ723へのアクセスには、
新たな遅れが加わるといえる。アービター620は、デ
ィレイドFIFO600に対する読み出し、書き込みに
ついて、他のタスクが優先権を持ち遅れを引き起こす、
そのようなタスクの間で仲裁をする。ディレイドFIF
Oキュー600の前後両端をチップ710上に載せるこ
とにより、ディレイドFIFO600への迅速なアクセ
スが可能となる。ローカルメモリ拡張720は、ディレ
イドFIFO600に対する容量の大きい記憶域を提供
する。ディレイドFIFO600の中間部分は、迅速な
アクセスを要求しないので、ディレイドFIFO600
の中間部分を、ローカルメモリ拡張720に格納するこ
とで、ローカルメモリ723へのアクセスの遅れは容認
される。ローカルメモリ拡張720への、データの読み
出し及び書き込みバンクは、ディレイドFIFO600
の操作における、ローカルメモリの待ち時間の影響を、
さらに軽減する。
IFO600の部分は、読み出し、書き込み用のメモリ
へのアクセスを素早く行うことができる。ローカルメモ
リ723へのデータアクセスは、ローカルメモリ723
に特有の遅れ或いは待ち時間を包含している。一般的
に、ローカルメモリ723が、他のタスクと共用されて
いるせいで、ローカルメモリ723へのアクセスには、
新たな遅れが加わるといえる。アービター620は、デ
ィレイドFIFO600に対する読み出し、書き込みに
ついて、他のタスクが優先権を持ち遅れを引き起こす、
そのようなタスクの間で仲裁をする。ディレイドFIF
Oキュー600の前後両端をチップ710上に載せるこ
とにより、ディレイドFIFO600への迅速なアクセ
スが可能となる。ローカルメモリ拡張720は、ディレ
イドFIFO600に対する容量の大きい記憶域を提供
する。ディレイドFIFO600の中間部分は、迅速な
アクセスを要求しないので、ディレイドFIFO600
の中間部分を、ローカルメモリ拡張720に格納するこ
とで、ローカルメモリ723へのアクセスの遅れは容認
される。ローカルメモリ拡張720への、データの読み
出し及び書き込みバンクは、ディレイドFIFO600
の操作における、ローカルメモリの待ち時間の影響を、
さらに軽減する。
【0021】本発明の実行において、チップメモリはス
タティック・ランダムアクセスメモリ(SRAM)であ
る。SRAMは、物理的には、論理型バンクを形成する
4つの連続部分に分かれる。4つの物理的部分のそれぞ
れは、実際には、読み出し書き込みポインターを備えた
小型FIFOである。ディレイドFIFO600は、ア
クティブキュー500にあって、瞬時に戻されるべきV
C用のクレジットを受け取る。本発明の実行において、
クレジットはそれら各々のセルが到着したのと同じ順に
戻されることになる。ディレイドクレジットFIFO6
00は、FIFO600のステートを制御するコントロ
ーラー745を有する。コントローラー745は、右バ
ンク725、730(0と1)を制御する第1ステート
マシン755、及び、左バンク735、740(2と
3)を制御する第2ステートマシン750という、2つ
のステートマシン750、755から成る。
タティック・ランダムアクセスメモリ(SRAM)であ
る。SRAMは、物理的には、論理型バンクを形成する
4つの連続部分に分かれる。4つの物理的部分のそれぞ
れは、実際には、読み出し書き込みポインターを備えた
小型FIFOである。ディレイドFIFO600は、ア
クティブキュー500にあって、瞬時に戻されるべきV
C用のクレジットを受け取る。本発明の実行において、
クレジットはそれら各々のセルが到着したのと同じ順に
戻されることになる。ディレイドクレジットFIFO6
00は、FIFO600のステートを制御するコントロ
ーラー745を有する。コントローラー745は、右バ
ンク725、730(0と1)を制御する第1ステート
マシン755、及び、左バンク735、740(2と
3)を制御する第2ステートマシン750という、2つ
のステートマシン750、755から成る。
【0022】クレジットは、連続的に右バンク725、
730に書き込まれる。右バンク725、730を制御
するステートマシン755は、右バンクに書き込まれる
さらに多くのクレジットに対してスペースを調整する責
任を持つ。ステートマシン755は、右バンクの1つが
満杯でもう1つの右バンクがしきい値に達するとき、満
杯のバンクを移動させることで、これを達成する。ステ
ートマシン755は、左バンクが空いていれば左バンク
に、左バンクに空きがなければローカルメモリ拡張72
0に、満杯のバンクを移す。いったん、ローカルメモリ
拡張720がデータを蓄えると、クレジットは左バンク
735、740からのみ読み出される。左バンク73
5、740を制御するステートマシン750は、読み出
されるクレジットで、これらのバンクを満たしておく責
任を持つ。ステートマシン750は左バンクの1つが空
いているとき、空きがある左バンク735、740へ、
ローカルメモリ拡張720から、スロットをコピーする
ことで、これを達成する。
730に書き込まれる。右バンク725、730を制御
するステートマシン755は、右バンクに書き込まれる
さらに多くのクレジットに対してスペースを調整する責
任を持つ。ステートマシン755は、右バンクの1つが
満杯でもう1つの右バンクがしきい値に達するとき、満
杯のバンクを移動させることで、これを達成する。ステ
ートマシン755は、左バンクが空いていれば左バンク
に、左バンクに空きがなければローカルメモリ拡張72
0に、満杯のバンクを移す。いったん、ローカルメモリ
拡張720がデータを蓄えると、クレジットは左バンク
735、740からのみ読み出される。左バンク73
5、740を制御するステートマシン750は、読み出
されるクレジットで、これらのバンクを満たしておく責
任を持つ。ステートマシン750は左バンクの1つが空
いているとき、空きがある左バンク735、740へ、
ローカルメモリ拡張720から、スロットをコピーする
ことで、これを達成する。
【0023】2つのステートマシン750、755に加
え、クレジットがそこより読み出される、ディレイドF
IFO600の部分725、730、735、740
(右若しくは左バンク)を指し示すポインターがある。
このポインターは、左バンクのどちらか1つが空いてい
ないとき、または、ローカルメモリ拡張720に空きが
ないとき、左バンクを示す。ローカルメモリ723のロ
ーカルメモリ拡張720は、m個のスロットに分けられ
る。実行例においては、各スロットは、16のクレジッ
ト(ちょうどバンクを満たす8ロングワード)を包含す
る。上下カウンターは使用中のローカルメモリ723に
おけるスロット数を数える。アービター620は、表1
に示されるように、ディレイドFIFO600に占める
エントリーの数が大きくなればNも大きくなるという、
ダイナミックNの1調停(アクティベートFIFO61
0からの1、ディレイドFIFO600からのN)を用
いる。これは、ディレイドFIFO600に優先権を与
えるが、アクティベートFIFO610の起こる可能性
のあるサービスの欠乏を防止する。
え、クレジットがそこより読み出される、ディレイドF
IFO600の部分725、730、735、740
(右若しくは左バンク)を指し示すポインターがある。
このポインターは、左バンクのどちらか1つが空いてい
ないとき、または、ローカルメモリ拡張720に空きが
ないとき、左バンクを示す。ローカルメモリ723のロ
ーカルメモリ拡張720は、m個のスロットに分けられ
る。実行例においては、各スロットは、16のクレジッ
ト(ちょうどバンクを満たす8ロングワード)を包含す
る。上下カウンターは使用中のローカルメモリ723に
おけるスロット数を数える。アービター620は、表1
に示されるように、ディレイドFIFO600に占める
エントリーの数が大きくなればNも大きくなるという、
ダイナミックNの1調停(アクティベートFIFO61
0からの1、ディレイドFIFO600からのN)を用
いる。これは、ディレイドFIFO600に優先権を与
えるが、アクティベートFIFO610の起こる可能性
のあるサービスの欠乏を防止する。
【0024】
【表1】 表1 ─────────────────────────────────── アクティベートFIFO ディレイドFIFO 条 件 ─────────────────────────────────── 1 クレジット 32 クレジット FIFO拡張 空き ─────────────────────────────────── 1 クレジット 64 クレジット 0<FIFO拡張<4K ─────────────────────────────────── 1 クレジット 128 クレジット 4K<FIFO拡張<8K ─────────────────────────────────── 1 クレジット 256 クレジット 8K<FIFO拡張<16K ─────────────────────────────────── 0 クレジット 完全優先権 16K<FIFO拡張 ─────────────────────────────────── ダイナミックNの1調停は以下のように作動する。ロー
カルメモリ723のローカルメモリ拡張720が空の場
合、ディレイドFIFO600から戻される32クレジ
ット毎に、アクティベートFIFO610から1クレジ
ット戻される。ローカルメモリ拡張720が空ではない
が4Kより少ない場合、ディレイドFIFO600から
戻される64クレジット毎に、アクティベートFIFO
610から1クレジット戻される。ローカルメモリ拡張
720のクレジット数が4Kから8Kの間である場合、
ディレイドFIFO600から戻される128クレジッ
ト毎に、アクティベートFIFO610から1クレジッ
ト戻される。ローカルメモリ拡張720のクレジット数
が8Kから16Kの間である場合、ディレイドFIFO
600から戻される256クレジット毎に、アクティベ
ートFIFO610から1クレジット戻される。ローカ
ルメモリ拡張720が16Kより多い場合、ディレイド
FIFO600は、アクティベートFIFO610に対
して完全な優先権を有する。
カルメモリ723のローカルメモリ拡張720が空の場
合、ディレイドFIFO600から戻される32クレジ
ット毎に、アクティベートFIFO610から1クレジ
ット戻される。ローカルメモリ拡張720が空ではない
が4Kより少ない場合、ディレイドFIFO600から
戻される64クレジット毎に、アクティベートFIFO
610から1クレジット戻される。ローカルメモリ拡張
720のクレジット数が4Kから8Kの間である場合、
ディレイドFIFO600から戻される128クレジッ
ト毎に、アクティベートFIFO610から1クレジッ
ト戻される。ローカルメモリ拡張720のクレジット数
が8Kから16Kの間である場合、ディレイドFIFO
600から戻される256クレジット毎に、アクティベ
ートFIFO610から1クレジット戻される。ローカ
ルメモリ拡張720が16Kより多い場合、ディレイド
FIFO600は、アクティベートFIFO610に対
して完全な優先権を有する。
【0025】さらに、コマンド・アンド・ステータスレ
ジスター(CSR)のプログラミング可能なビット63
5は、セットされたとき、ディレイドFIFO600が
空である限り、ディレイドFIFO600からクレジッ
トを戻すよう、アービター620を仕向ける。このモー
ドにより、ディレイドFIFO600は、アクティベー
トFIFO610に対して、固定された高い優先権を与
えられることになる。図8は、アービター620により
制御される、ディレイドFIFO600の書き込み操作
に関するフローチャートである。クレジットは、「右バ
ンクス」とも呼ばれる(ブロック800)、チップ71
0上のバンク「0」725、及びバンク「1」730に
書き込まれる。右バンクの1つが容量を満たしており、
もう片方が所定のしきい値に達すると(ブロック81
0)、下流のアダプターは、どこにデータを移すべきか
決定を下す(ブロック820)。もし、バンク「2」7
35、及びバンク「3」740(左バンクス)に空きが
なければ、右バンクは、まるごとローカルメモリ拡張に
コピーされる(ブロック830)。少なくとも左バンク
の1つが空きであれば、ローカルメモリ拡張720のス
テートが、考察される(ブロック840)。もし、ロー
カルメモリ拡張720が空いていれば、バンク間のポイ
ンターを交換することによって、右バンクはまるごと空
の左バンクに移される(ブロック850)。実際には、
ポインターが動くだけで、チップ上でデータの位置が移
動することはない。もし、ローカルメモリ拡張が空いて
いなければ、右バンクはそっくりローカルメモリ拡張に
コピーされる(ブロック830)。
ジスター(CSR)のプログラミング可能なビット63
5は、セットされたとき、ディレイドFIFO600が
空である限り、ディレイドFIFO600からクレジッ
トを戻すよう、アービター620を仕向ける。このモー
ドにより、ディレイドFIFO600は、アクティベー
トFIFO610に対して、固定された高い優先権を与
えられることになる。図8は、アービター620により
制御される、ディレイドFIFO600の書き込み操作
に関するフローチャートである。クレジットは、「右バ
ンクス」とも呼ばれる(ブロック800)、チップ71
0上のバンク「0」725、及びバンク「1」730に
書き込まれる。右バンクの1つが容量を満たしており、
もう片方が所定のしきい値に達すると(ブロック81
0)、下流のアダプターは、どこにデータを移すべきか
決定を下す(ブロック820)。もし、バンク「2」7
35、及びバンク「3」740(左バンクス)に空きが
なければ、右バンクは、まるごとローカルメモリ拡張に
コピーされる(ブロック830)。少なくとも左バンク
の1つが空きであれば、ローカルメモリ拡張720のス
テートが、考察される(ブロック840)。もし、ロー
カルメモリ拡張720が空いていれば、バンク間のポイ
ンターを交換することによって、右バンクはまるごと空
の左バンクに移される(ブロック850)。実際には、
ポインターが動くだけで、チップ上でデータの位置が移
動することはない。もし、ローカルメモリ拡張が空いて
いなければ、右バンクはそっくりローカルメモリ拡張に
コピーされる(ブロック830)。
【0026】この点で、ディレイドFIFO600は、
その中間部分がローカルメモリ拡張720にある、大型
のFIFOであるといえる。FIFOのヘッドとテイル
は常時チップ710上にある。ローカルメモリ拡張72
0が使用されるとき、クレジットは、なお右バンク72
5、730(0または1)に書き込まれる。右バンクの
1つが容量を満たし、もう一方がしきい値に達すると
き、バンクはそっくり、ローカルメモリ拡張720に書
き込まれ、上下カウンターが1増える。ローカルメモリ
723のFIFO拡張の書き込みポインターは、8増え
る(8エントリーには16クレジットの保持が必要)。
その中間部分がローカルメモリ拡張720にある、大型
のFIFOであるといえる。FIFOのヘッドとテイル
は常時チップ710上にある。ローカルメモリ拡張72
0が使用されるとき、クレジットは、なお右バンク72
5、730(0または1)に書き込まれる。右バンクの
1つが容量を満たし、もう一方がしきい値に達すると
き、バンクはそっくり、ローカルメモリ拡張720に書
き込まれ、上下カウンターが1増える。ローカルメモリ
723のFIFO拡張の書き込みポインターは、8増え
る(8エントリーには16クレジットの保持が必要)。
【0027】図9は、左ステートマシン750により制
御されているディレイドFIFO600の読み出し操作
に関するフローチャートである。起動時、左バンク73
5、740(バンク2および3)は空で、クレジット
は、右バンク725、730(バンク0及び1)から読
み出される(ブロック900)。もし、容量が満杯若し
くはしきい値に達した右バンクがない場合には(判断ブ
ロック910)、クレジットは引き続き右バンクから読
み出される(ブロック900)。もし、容量が満杯若し
くはしきい値に達した右バンクがある場合には(判断ブ
ロック910)、満杯(若しくはしきい値レべル)の右
バンクは、例えば、ポインターが移動し、右バンクが左
バンクとなるような形で、左バンクの1つにコピーされ
る。クレジットは、その時左バンクから読み出されるこ
とになる(ブロック920)。もし、左バンクが空であ
れば(判断ブロック930)、左ステートマシン750
が、起動ステートに戻り、右バンクよりクレジットの読
み出しを行う。もし、左バンクが空でないなら(判断ブ
ロック930)、ローカルメモリ拡張720が考察され
る。もし、ローカルメモリ拡張720が空いていなけれ
ば(判断ブロク940)、ローカルメモリ拡張720よ
りスロットが読み出される。スロットは空の左バンクに
読み込まれる(ブロック950)。この点で、少なくと
も2つの左バンクは使用中で、クレジットは左バンクか
ら読み出される(ブロック960)。左バンクからのク
レジットは、左バンクの一方が空になるまで、継続して
読み出される(判断ブロック970)。左バンクの1つ
が空になると(判断ブロック970)、左ステートマシ
ン750は、左バンクの1つが空いているというブロッ
ク920のステートに戻り、左バンクからの読み出しを
継続する(ブロック920)。もし、ローカルメモリ拡
張720が空であれば(判断ブロック940)、左ステ
ートマシン750は、満杯若しくはしきい値レベルの右
バンクを探す(判断ブロック980)。もし、右バンク
からコピーされたバンクがあれば、左ステートマシン7
50は、左バンクより読み出しを行う(ブロック96
0)。右バンクからの新たなバンクがない場合は、左ス
テートマシン750は、読み出されるクレジトをまだ持
っている状態の左バンクからクレジットの読み出しを行
う(ブロック920)。
御されているディレイドFIFO600の読み出し操作
に関するフローチャートである。起動時、左バンク73
5、740(バンク2および3)は空で、クレジット
は、右バンク725、730(バンク0及び1)から読
み出される(ブロック900)。もし、容量が満杯若し
くはしきい値に達した右バンクがない場合には(判断ブ
ロック910)、クレジットは引き続き右バンクから読
み出される(ブロック900)。もし、容量が満杯若し
くはしきい値に達した右バンクがある場合には(判断ブ
ロック910)、満杯(若しくはしきい値レべル)の右
バンクは、例えば、ポインターが移動し、右バンクが左
バンクとなるような形で、左バンクの1つにコピーされ
る。クレジットは、その時左バンクから読み出されるこ
とになる(ブロック920)。もし、左バンクが空であ
れば(判断ブロック930)、左ステートマシン750
が、起動ステートに戻り、右バンクよりクレジットの読
み出しを行う。もし、左バンクが空でないなら(判断ブ
ロック930)、ローカルメモリ拡張720が考察され
る。もし、ローカルメモリ拡張720が空いていなけれ
ば(判断ブロク940)、ローカルメモリ拡張720よ
りスロットが読み出される。スロットは空の左バンクに
読み込まれる(ブロック950)。この点で、少なくと
も2つの左バンクは使用中で、クレジットは左バンクか
ら読み出される(ブロック960)。左バンクからのク
レジットは、左バンクの一方が空になるまで、継続して
読み出される(判断ブロック970)。左バンクの1つ
が空になると(判断ブロック970)、左ステートマシ
ン750は、左バンクの1つが空いているというブロッ
ク920のステートに戻り、左バンクからの読み出しを
継続する(ブロック920)。もし、ローカルメモリ拡
張720が空であれば(判断ブロック940)、左ステ
ートマシン750は、満杯若しくはしきい値レベルの右
バンクを探す(判断ブロック980)。もし、右バンク
からコピーされたバンクがあれば、左ステートマシン7
50は、左バンクより読み出しを行う(ブロック96
0)。右バンクからの新たなバンクがない場合は、左ス
テートマシン750は、読み出されるクレジトをまだ持
っている状態の左バンクからクレジットの読み出しを行
う(ブロック920)。
【0028】ローカルメモリ723の拡張720のスペ
ースはプログラム可能である。第1アドレスは固定され
ている(本実行例ではC200Hex)が、長さは、要
求値をコントロール・コマンド・アンド・ステータスレ
ジスターに書き込むことでプログラムできる。チップ制
御論理745は、論理型読み書きポインターを正確な物
理型読み書きポインターに翻訳する。さらに、他の制御
変数は、実行中の書き込みが論理型バンク「0」に向け
てなのか論理型バンク「1」に向けて行われているのか
を、そして実行中の読み出しが、論理型「右」バンクか
ら行われているか或いは論理型「左」バンクから行われ
ているかを識別する。第3の制御変数は、グループ内の
どのバンクを読み出されるバンクにするか決定する。
ースはプログラム可能である。第1アドレスは固定され
ている(本実行例ではC200Hex)が、長さは、要
求値をコントロール・コマンド・アンド・ステータスレ
ジスターに書き込むことでプログラムできる。チップ制
御論理745は、論理型読み書きポインターを正確な物
理型読み書きポインターに翻訳する。さらに、他の制御
変数は、実行中の書き込みが論理型バンク「0」に向け
てなのか論理型バンク「1」に向けて行われているのか
を、そして実行中の読み出しが、論理型「右」バンクか
ら行われているか或いは論理型「左」バンクから行われ
ているかを識別する。第3の制御変数は、グループ内の
どのバンクを読み出されるバンクにするか決定する。
【0029】SRAMには、物理的な4つのスペースが
ある。各物理的スペースは、先述の物理型部分の1つで
ある。各論理型バンクは、それが属する物理型部分の1
つに対してのポインターを有する。 論理型ポインター0<1:0>:論理型バンク0番が属
するポインター 論理型ポインター1<1:0>:論理型バンク1番が属
するポインター 論理型ポインター2<1:0>:論理型バンク2番が属
するポインター 論理型ポインター3<1:0>:論理型バンク3番が属
するポインター 論理型ポインターX<1:0>は、論理型バンクX(X
=0、1、2、3)に属する物理型SRAM部のアドレ
スである。この部内(部のオフセット)のアドレスは、
物理型部読み書きポインターから入手できる。例えば、
論理型バンクXのクレジットに関わる物理型読みだしア
ドレスの入手の仕方は、 物理型読み出しアドレス<5:4>=論理型ポインター
X<1:0> 物理型読み出しアドレス<3:0>=ポインターXによ
り指し示される物理型部読み出しアドレス<3:0> であり、また、論理型バンクXのクレジットに関わる物
理型書き込みアドレスの入手方法は、 物理型書き込みアドレス<5:4>=論理型ポインター
X<1:0> 物理型書き込みアドレス<3:0>=ポインターXによ
り指し示される物理型部書き込みアドレス<3:0> である。
ある。各物理的スペースは、先述の物理型部分の1つで
ある。各論理型バンクは、それが属する物理型部分の1
つに対してのポインターを有する。 論理型ポインター0<1:0>:論理型バンク0番が属
するポインター 論理型ポインター1<1:0>:論理型バンク1番が属
するポインター 論理型ポインター2<1:0>:論理型バンク2番が属
するポインター 論理型ポインター3<1:0>:論理型バンク3番が属
するポインター 論理型ポインターX<1:0>は、論理型バンクX(X
=0、1、2、3)に属する物理型SRAM部のアドレ
スである。この部内(部のオフセット)のアドレスは、
物理型部読み書きポインターから入手できる。例えば、
論理型バンクXのクレジットに関わる物理型読みだしア
ドレスの入手の仕方は、 物理型読み出しアドレス<5:4>=論理型ポインター
X<1:0> 物理型読み出しアドレス<3:0>=ポインターXによ
り指し示される物理型部読み出しアドレス<3:0> であり、また、論理型バンクXのクレジットに関わる物
理型書き込みアドレスの入手方法は、 物理型書き込みアドレス<5:4>=論理型ポインター
X<1:0> 物理型書き込みアドレス<3:0>=ポインターXによ
り指し示される物理型部書き込みアドレス<3:0> である。
【0030】アクティベートFIFOは、パケット組み
立てマシン(PAM)によって、それがVCをストール
したキューからアクティブキューに移動させる時、書き
込まれる。VCがストールしたキューにあるとき、その
クレジットは返されず、カウントされる。パケット組み
立てマシンが、VCをアクティブキューへ移動させると
き、該FIFOにクレジットIDと返すべきクレジット
の数を書き込む。FIFOは2つのエントリーを有す
る。拡張されたFIFOに関しては、ATMネットワー
クでのクレジットベースのフロー制御についての文中で
述べられているが、本発明は、大型のFIFOを必要と
するいかなる場合にも適用できる。本発明は、イーサネ
ット、FDDI、トークンリングのような他のタイプの
ネットワークプトロコルにも適用できる。FIFOは、
クレジット以外にもデータパケットを格納するために使
用することもできる。
立てマシン(PAM)によって、それがVCをストール
したキューからアクティブキューに移動させる時、書き
込まれる。VCがストールしたキューにあるとき、その
クレジットは返されず、カウントされる。パケット組み
立てマシンが、VCをアクティブキューへ移動させると
き、該FIFOにクレジットIDと返すべきクレジット
の数を書き込む。FIFOは2つのエントリーを有す
る。拡張されたFIFOに関しては、ATMネットワー
クでのクレジットベースのフロー制御についての文中で
述べられているが、本発明は、大型のFIFOを必要と
するいかなる場合にも適用できる。本発明は、イーサネ
ット、FDDI、トークンリングのような他のタイプの
ネットワークプトロコルにも適用できる。FIFOは、
クレジット以外にもデータパケットを格納するために使
用することもできる。
【0031】前述の実施例は本発明の原理を簡単に表し
ていると理解されるべきである。当業者であれば、本発
明の原理を具現化し、本発明の範囲内にある多様な別の
修正や変更を行い得るであろう。
ていると理解されるべきである。当業者であれば、本発
明の原理を具現化し、本発明の範囲内にある多様な別の
修正や変更を行い得るであろう。
【図1】コンピューターネットワークのブロック線図で
ある。
ある。
【図2】ATMセルの線図である。
【図3】クレジットベースのATMフロー制御で使用さ
れるATMセルの線図である。
れるATMセルの線図である。
【図4】クレジットベースのATMフロー制御の線図で
ある。
ある。
【図5】図4の下流アダプターのレシーバー部分の線図
である。
である。
【図6】図4の下流アダプターにより使用されるクレジ
ット・リターン機構のブロック線図である。
ット・リターン機構のブロック線図である。
【図7】ディレイドFIFOのブロック線図である。
【図8】ディレイドFIFOの書き込み操作のフローチ
ャートである。
ャートである。
【図9】ディレイドFIFOの読み出し操作のフローチ
ャートである。
ャートである。
10 ATM LAN(非同期転送モードローカルエリ
アネットワーク) 12、14、16、18 ステーション 20、22 スイッチ 26、27、28、29、32、34 ポート 30 ライン 50、80 ATMセル 52、82 ヘッダー 54 情報フィールド 56、84 ヘッダーに含まれるフィールド 58、86 DFC(総フロー制御)フィールド 60、62 VPI(仮想路識別子)フィールド 64、66、68 VCI(仮想チャンエル識別子)フ
ィールド 70、96 PT(ペイロード型識別子)フィールド 72 CLP(セルロスプライオリティー)フィールド 74、100 ヘッダーエラーチェック 88、90 クレジットVCIフィールド 92、94 デスティネーションVCIフィールド 98 クレジットCLPフィールド 400 ATMスイッチ 402、410 トランスミッター部分 404、428 ATMセル 408、426 クレジット 412 ATMアダプター 416、430 ローカルメモリ 418、424 レシーバー部 420 ホストメモリ 432 ポート 500 キュー全体 510 アクティブキュー 520−527 ストールトキュー 600 ディレイドFIFO(先入れ先出し) 610 アクティベートFIFO 620 アービター 630 CSR(コマンドアンドステータスレジスタ
ー) 635 コントロールビット 710 半導体チップ 720 ローカルメモリ拡張 723 ローカルメモリ 725、730、735、740 論理型バンク 750、755 ステートマシン
アネットワーク) 12、14、16、18 ステーション 20、22 スイッチ 26、27、28、29、32、34 ポート 30 ライン 50、80 ATMセル 52、82 ヘッダー 54 情報フィールド 56、84 ヘッダーに含まれるフィールド 58、86 DFC(総フロー制御)フィールド 60、62 VPI(仮想路識別子)フィールド 64、66、68 VCI(仮想チャンエル識別子)フ
ィールド 70、96 PT(ペイロード型識別子)フィールド 72 CLP(セルロスプライオリティー)フィールド 74、100 ヘッダーエラーチェック 88、90 クレジットVCIフィールド 92、94 デスティネーションVCIフィールド 98 クレジットCLPフィールド 400 ATMスイッチ 402、410 トランスミッター部分 404、428 ATMセル 408、426 クレジット 412 ATMアダプター 416、430 ローカルメモリ 418、424 レシーバー部 420 ホストメモリ 432 ポート 500 キュー全体 510 アクティブキュー 520−527 ストールトキュー 600 ディレイドFIFO(先入れ先出し) 610 アクティベートFIFO 620 アービター 630 CSR(コマンドアンドステータスレジスタ
ー) 635 コントロールビット 710 半導体チップ 720 ローカルメモリ拡張 723 ローカルメモリ 725、730、735、740 論理型バンク 750、755 ステートマシン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イーファット ベン シャハル イスラエル メヴァセレット ジオン 90805 メロン ストリート 24−18
Claims (4)
- 【請求項1】 第一メモリと、第二メモリと、データ受
信に対応して、キューとして維持されているリストにエ
ントリーを書き込むための手段と、前記第一メモリに前
記キューの第1端と第2端を維持するための手段であっ
て、前記第1端はそこに書き込まれるべき次のエントリ
ーを有し、前記第2端はそこより読み出されるべき次の
エントリーを有している、そのような手段と、エントリ
ーが前記キューに沿って伝えられる際は、前記キューへ
の前記エントリーは、前記第1メモリから前記第2メモ
リへと伝えられ、前記第1メモリへと戻されるような、
前記第2メモリにおける前記キューの中間部を維持する
ための手段とから成ることを特徴とする、データの受け
取り及び伝送のための装置。 - 【請求項2】 データ格納手段に関する論理を実行する
ための半導体チップと、データ受信に対応して、キュー
として維持されているリストにエントリーを書きたすた
めの手段と、前記半導体チップにおける前記キューの第
1端を維持するための手段であって、前記第1端はそこ
に書き込まれるべき次のエントリーを有している、その
ような手段と、前記半導体チップにおける前記キューの
第2端を維持するための手段であって、データを伝送す
るために、前記第2端は読み出されるべき次のエントリ
ーを有している、そのような手段と、ローカルメモリに
おける前記キューの一部分を維持するための手段であっ
て、前記ローカルメモリは半導体チップ内で実行されな
い、そのような手段とから成ることを特徴とするデータ
の受け取り及び伝送のための装置。 - 【請求項3】 ノードを経て複数の仮想回路を確立する
ための手段と、前記複数の仮想回路の操作及びデータ保
存に関わる論理を実行するための半導体チップと、前記
複数の仮想回路の第1仮想回路におけるパケット受信に
際して、前記パケットをバッファーに受け取るための手
段と、前記パケット受信に対応して仮想回路のリストに
エントリーを書き足すための手段であって、該リストは
前記パケットのソースノードにクレジットを戻すために
維持され、該クレジットは前記第1仮想回路において別
のパケットを伝送するための許可を前記ソースノードに
与える、そのような手段と、前記半導体チップにおける
クレジットの前記リストの第1端を維持するための手段
であって、該第1端はそこに書き込まれるべき次のエン
トリーを有している、そのような手段と、前記半導体チ
ップにおけるクレジットの前記リストの第2端を維持す
るための手段であって、任意の仮想回路の次のセルにお
ける次のクレジットメッセージを送るために、該第2端
は読み出されるべき次のエントリーを有している、その
ような手段と、ローカルメモリにおけるクレジットの前
記リストの一部分を維持するための手段であって、該ロ
ーカルメモリは前記半導体チップ内で実行されない、そ
のような手段とから成ることを特徴とするノード。 - 【請求項4】FIFOキューの前端にデータを受け入れ
るための第1論理的データバンクを半導体チップ上に1
つ以上設ける段階と、前記FIFOキューの後端からデ
ータを伝送するための第2論理型データバンクを半導体
チップ上に1つ以上設ける段階と、前記半導体チップに
接続されたローカルメモリにおいて、前記FIFOキュ
ーの中間部を形成するためのメモリ拡張を設ける段階
と、前記第1バンクにデータを書き込む段階と、前記第
1バンクが予め定められたしきい値に達するまで書き込
みが行われたとき、少なくとも前記第2バンクの1つが
空で、前記メモリ拡張も空の場合には、前記第1バンク
の1つを前記第2バンクへ移動させることを、また、少
なくとも前記第2バンクの1つが空で、前記メモリ拡張
は空ではない場合には、前記第1バンクの一つを前記メ
モリ拡張に移動させることを、或いは、前記第2バンク
が空でない場合には、前記第1バンクの1つを前記メモ
リ拡張に移動させることを決定する段階とから成ること
を特徴とする電算処理されたデータ保存において、デー
タを受信し伝送するための方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/879,359 US6078565A (en) | 1997-06-20 | 1997-06-20 | Method and apparatus to expand an on chip FIFO into local memory |
US08/879359 | 1997-06-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1127291A true JPH1127291A (ja) | 1999-01-29 |
Family
ID=25374002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10173068A Pending JPH1127291A (ja) | 1997-06-20 | 1998-06-19 | オンチップfifoのローカルメモリへの拡張のための方法及び装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6078565A (ja) |
EP (1) | EP0886454B1 (ja) |
JP (1) | JPH1127291A (ja) |
DE (1) | DE69838601T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005008978A1 (ja) * | 2003-07-18 | 2005-01-27 | Fujitsu Limited | 送信主導型フロー制御装置 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI970784A (fi) * | 1997-02-25 | 1998-08-26 | Nokia Telecommunications Oy | Prosessien välinen vuonvalvonta hajautetussa moniprosessoriympäristössä |
US6285679B1 (en) | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
DE19904084B4 (de) * | 1999-02-02 | 2008-12-11 | Force Computers Gmbh | Computer |
SE515897C2 (sv) | 1999-04-12 | 2001-10-22 | Ericsson Telefon Ab L M | Anordning och förfarande för en avdelad buffert |
CA2372644A1 (en) * | 1999-05-21 | 2000-11-30 | Avici Systems | Fabric router with flit caching |
US6763447B2 (en) * | 1999-12-02 | 2004-07-13 | Ants Software, Inc. | Lock-free list for use with computer system utilizing FIFO queue for tracking order of various sublists |
US6944173B1 (en) * | 2000-03-27 | 2005-09-13 | Hewlett-Packard Development Company, L.P. | Method and system for transmitting data between a receiver and a transmitter |
US6735174B1 (en) * | 2000-03-29 | 2004-05-11 | Intel Corporation | Method and systems for flow control of transmissions over channel-based switched fabric connections |
US7213087B1 (en) * | 2000-08-31 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Mechanism to control the allocation of an N-source shared buffer |
US20020085493A1 (en) * | 2000-12-19 | 2002-07-04 | Rick Pekkala | Method and apparatus for over-advertising infiniband buffering resources |
US7120248B2 (en) * | 2001-03-26 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | Multiple prime number generation using a parallel prime number search algorithm |
NL1017870C2 (nl) * | 2001-04-18 | 2002-10-25 | Marc Van Oldenborgh | Werkwijze voor invers multiplexen. |
NL1018463C2 (nl) * | 2001-07-04 | 2003-01-08 | Marc Van Oldenborgh | Werkwijze, inrichting en programmatuur voor digitaal inverse multiplexen. |
US7072299B2 (en) * | 2001-08-20 | 2006-07-04 | International Business Machines Corporation | Credit-based receiver using selected transmit rates and storage thresholds for preventing under flow and over flow-methods, apparatus and program products |
DE60222782D1 (de) | 2001-08-24 | 2007-11-15 | Intel Corp | Eine allgemeine eingabe-/ausgabearchitektur und entsprechende verfahren zur unterstützung von bestehenden unterbrechungen |
US9836424B2 (en) | 2001-08-24 | 2017-12-05 | Intel Corporation | General input/output architecture, protocol and related methods to implement flow control |
US7174429B2 (en) * | 2001-12-28 | 2007-02-06 | Intel Corporation | Method for extending the local memory address space of a processor |
US7330477B2 (en) * | 2002-12-24 | 2008-02-12 | Sun Microsystems, Inc. | Method and apparatus for starvation-free scheduling of communications |
US7522520B2 (en) * | 2004-09-03 | 2009-04-21 | Intel Corporation | Flow control credit updates for virtual channels in the Advanced Switching (AS) architecture |
US7724733B2 (en) * | 2005-03-31 | 2010-05-25 | International Business Machines Corporation | Interconnecting network for switching data packets and method for switching data packets |
US7756134B2 (en) | 2006-05-02 | 2010-07-13 | Harris Corporation | Systems and methods for close queuing to support quality of service |
US7894509B2 (en) | 2006-05-18 | 2011-02-22 | Harris Corporation | Method and system for functional redundancy based quality of service |
US7856012B2 (en) | 2006-06-16 | 2010-12-21 | Harris Corporation | System and methods for generic data transparent rules to support quality of service |
US8064464B2 (en) | 2006-06-16 | 2011-11-22 | Harris Corporation | Method and system for inbound content-based QoS |
US8516153B2 (en) | 2006-06-16 | 2013-08-20 | Harris Corporation | Method and system for network-independent QoS |
US7990860B2 (en) | 2006-06-16 | 2011-08-02 | Harris Corporation | Method and system for rule-based sequencing for QoS |
US7916626B2 (en) | 2006-06-19 | 2011-03-29 | Harris Corporation | Method and system for fault-tolerant quality of service |
US8730981B2 (en) | 2006-06-20 | 2014-05-20 | Harris Corporation | Method and system for compression based quality of service |
US7769028B2 (en) | 2006-06-21 | 2010-08-03 | Harris Corporation | Systems and methods for adaptive throughput management for event-driven message-based data |
US8300653B2 (en) | 2006-07-31 | 2012-10-30 | Harris Corporation | Systems and methods for assured communications with quality of service |
US8194547B1 (en) * | 2006-08-07 | 2012-06-05 | Emc Corporation | Configuring flow control settings |
US8174977B2 (en) * | 2007-07-06 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | End-to-end flow control in a network |
US20150103668A1 (en) * | 2012-06-27 | 2015-04-16 | Qualcomm Incorporated | Low overhead and highly robust flow control apparatus and method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4809232A (en) * | 1986-12-16 | 1989-02-28 | The United States Of America As Represented By The United States Department Of Energy | High speed, very large (8 megabyte) first in/first out buffer memory (FIFO) |
US5640399A (en) * | 1993-10-20 | 1997-06-17 | Lsi Logic Corporation | Single chip network router |
DE69428186T2 (de) * | 1994-04-28 | 2002-03-28 | Hewlett-Packard Co.(A Delaware Corporation), Palo Alto | Mehrfachsendeeinrichtung |
US5633867A (en) * | 1994-07-01 | 1997-05-27 | Digital Equipment Corporation | Local memory buffers management for an ATM adapter implementing credit based flow control |
US5483526A (en) * | 1994-07-20 | 1996-01-09 | Digital Equipment Corporation | Resynchronization method and apparatus for local memory buffers management for an ATM adapter implementing credit based flow control |
US5511076A (en) * | 1994-11-07 | 1996-04-23 | Digital Equipment Corporation | Method and apparatus to efficiently reuse virtual connections by means of chaser packets |
US5649110A (en) * | 1994-11-07 | 1997-07-15 | Ben-Nun; Michael | Traffic shaping system with virtual circuit table time stamps for asynchronous transfer mode networks |
-
1997
- 1997-06-20 US US08/879,359 patent/US6078565A/en not_active Expired - Lifetime
-
1998
- 1998-06-10 EP EP98304594A patent/EP0886454B1/en not_active Expired - Lifetime
- 1998-06-10 DE DE69838601T patent/DE69838601T2/de not_active Expired - Fee Related
- 1998-06-19 JP JP10173068A patent/JPH1127291A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005008978A1 (ja) * | 2003-07-18 | 2005-01-27 | Fujitsu Limited | 送信主導型フロー制御装置 |
US7222784B2 (en) | 2003-07-18 | 2007-05-29 | Fujitsu Limited | Transmission base flow control device |
Also Published As
Publication number | Publication date |
---|---|
EP0886454A3 (en) | 2000-09-20 |
EP0886454A2 (en) | 1998-12-23 |
US6078565A (en) | 2000-06-20 |
DE69838601D1 (de) | 2007-12-06 |
DE69838601T2 (de) | 2008-08-28 |
EP0886454B1 (en) | 2007-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1127291A (ja) | オンチップfifoのローカルメモリへの拡張のための方法及び装置 | |
US5633867A (en) | Local memory buffers management for an ATM adapter implementing credit based flow control | |
US7342942B1 (en) | Multi-service segmentation and reassembly device that maintains only one reassembly context per active output port | |
US5412648A (en) | Packet switching system for forwarding packets from input buffers using idle/busy status of output buffers | |
US7457297B2 (en) | Methods and apparatus for differentiated services over a packet-based network | |
US5898687A (en) | Arbitration mechanism for a multicast logic engine of a switching fabric circuit | |
US7286566B1 (en) | Multi-service segmentation and reassembly device that maintains reduced number of segmentation contexts | |
US7843816B1 (en) | Systems and methods for limiting low priority traffic from blocking high priority traffic | |
US7100020B1 (en) | Digital communications processor | |
US9361225B2 (en) | Centralized memory allocation with write pointer drift correction | |
JPH07321822A (ja) | マルチキャスティング機能を備えた装置 | |
US8706896B2 (en) | Guaranteed bandwidth memory apparatus and method | |
US7110405B2 (en) | Multicast cell buffer for network switch | |
US5768273A (en) | Method and apparatus for priority level queueing in processing ATM cell header and payload | |
US6850999B1 (en) | Coherency coverage of data across multiple packets varying in sizes | |
US8107372B1 (en) | Collision compensation in a scheduling system | |
US6185206B1 (en) | ATM switch which counts multicast cell copies and uses a second memory for a decremented cell count value | |
WO2001067672A2 (en) | Virtual channel flow control | |
JP3157113B2 (ja) | トラヒックシェイパー装置 | |
US9363186B2 (en) | Hierarchical shaping of network traffic | |
Kumar et al. | On Design of a Shared-Buffer based ATM Switch for Broadband ISDN | |
JP4504606B2 (ja) | ネットワークスイッチにおいてトラフィックを成形する装置及び方法 | |
CA2315052A1 (en) | An atm cell processor |