JP3456398B2 - プロセッサ間ネットワークのフロー制御方法および装置 - Google Patents
プロセッサ間ネットワークのフロー制御方法および装置Info
- Publication number
- JP3456398B2 JP3456398B2 JP02055898A JP2055898A JP3456398B2 JP 3456398 B2 JP3456398 B2 JP 3456398B2 JP 02055898 A JP02055898 A JP 02055898A JP 2055898 A JP2055898 A JP 2055898A JP 3456398 B2 JP3456398 B2 JP 3456398B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- switch
- flow control
- fifo
- fifo 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17393—Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
より構成されたプロセッサ間ネットワークの、スイッチ
間と、そのネットワークに接続されたプロセッサとスイ
ッチ間でのパケット転送時のフロー制御の方法と装置に
関する。
のFIFOメモリを備えるクロスポイントバッファ方式
のスイッチでは、FIFOへの書き込み時に他のポート
からの書き込み手との競合が起こらないため、FIFO
さえ空いていればいつでも書き込むことが可能で あ
る。しかしながら、FIFOメモリを[ポート数]の2
乗個必要とするため、チップ のゲート数の制限からス
イッチ内に実装できる1つのFIFOメモリの容量は小
さく ならざるを得ない。
パケット全体を受けとれるだけの容量の受信側FIFO
が空かなければ送り始めないため、スイッチ間のリンク
をパケットが占有するのは、パケットを転送するのに必
要な時間だけである。そのため、ネッ トワーク全体と
してのスループットが上がるという利点がある。
作る場合には、やはり、FIFOの容量が 問題とな
る。必要となるFIFOの個数が[ポート数]の2乗個
と多いため、一つのFIFOの容量は小さくならざるを
得ない。しかし、バーチャルカットスルーを実現するた
めには、1つのFIFOの容量としては、少なくともパ
ケット1個が格納できる 容量が必要である。
御情報が入ったヘッダの部分と実際に送られるデータの
部分から構成されているので、1個のパケットの長さを
大きくするほど、パケットヘッダの割合は小さくなるの
で、効率良くデータを送れることになる。
バッファ方式を用いるため、FIFOの大きさが小さく
なるが、バーチャルカットスルー方式を採用するので、
FIFOには少なくとも1個のパケットが格納できなけ
ればならず、また、1個のパケットでのデータの転送の
効率を考えると、パケット長はできるだけ大きくしなけ
ればならない。これらの条件を考え合わせると、1個の
パケットの最大長は、1個のFIFOメモリの容量よ
り、少し小さい大きさとするしかない。
のスイッチに対してFIFOが書き込み可能であること
を知らせる書き込み可能信号を出力できるのは、パケッ
ト1個が受け取れるようになった時点である。
メモリ内にデータが全くなく読み出せない場合を示すe
mpty信号と、FIFOメモリ内にデータが一杯で書
き込めないことを示すfull信号を使ってフロー制御
を行なっている。また、フロー制御にかかる時間を考慮
し、あと数ワード読み出すとemptyになる状態を示
すalmost empty信号や、あと数ワード書き
込むとfullになる状態を示すalmost ful
l信号を備えているものもある。いずれの信号もレベル
でそれぞれの状態を表している。
ントバッファ方式で、かつ、バーチャルカットスルー方
式のスイッチに使用しようとすると、パケットの最大長
がFIFOメモリの容量よりも少し小さいため、次段の
FIFOに書き込めるかどうかを判断するのは、FIF
Oメモリからのemptyまたは、almost em
ptyフラグを使わざるを得ない。なぜなら、バーチャ
ルカットスルー方式では、一度パケットを書き始めると
最後までFIFOに書き込むため、書き込みの途中でO
Nになるfullフラグ、almost fullフラ
グでフロー制御を行なうことはできない。
は、1.emptyフラグがONの場合には、FIFO
は空の状態なので、FIFOメモリの容量よりも小さい
パケットは必ず最後まで書き込めるので、書き込み可能
と判断し、パケットを書き込み始める。2.empty
フラグがOFFの場合には、パケットの長さによっては
パケットの最後まで書き込めるかもしれないが、書き込
めないかもしれないので、書き込み始めない。となる。
Oに書き込むと、次のパケットを書き込めるようになる
には、前のパケットがすべてFIFOから読み出され、
emptyフラグがONになる時点である。つまり、次
段のFIFOがすべて読み出されないと、次のパ ケッ
トが書き込み可能にならない。
で、バーチャルカットスルー方式のスイッチでは、FI
FOメモリの大きさがパケット1個の大きさに近いこと
により、従来方式のFIFOメモリのフロー制御では、
emptyフラグを用いたフロー制御となり、 大きな
オーバヘッドが生じてしまう。
のスイッチのFIFOメモリ内のパケットが転送され
て、次段のスイッチのFIFOメモリが空になるまで、
次のパケットの書き込みを許可できないので、前段のス
イッチの次のパケットの書き込みが待たされる点であ
る。
めるかどうかはFIFOメモリのemptyフラグ、a
lmost emptyフラグでしか伝える手段がない
ためである。また、バーチャルカットスルー方式なの
で、FIFOが溢れてもパケットの転送を止めることが
できないので、FIFOメモリのfullフラグ、al
most fullフラグが使え ないことも理由であ
る。
tyフラグ、fullフラグが、1パケット分の容量し
かないFIFOメモリを使った、バーチャルカットスル
ー方式のパケット転送に向かない点である。
ullフラグはFIFOメモリ内のワード数だけを見て
フロー制御するためのもので、パケットという単位での
フロー制御はできない。
分しかないバーチャルカットスルーでは、FIFOメモ
リ内のパケットが処理され始めれば、近い未来にはその
パケットはすべて読み出されてFIFOメモリが空にな
る。しかしながら、emptyフラグ、fullフラグ
は現在の状態を表す信号であり、それらによってパケッ
トが処理されようとしているかどうかということが伝え
られないのも理由である。
という情報が伝わるのに時間がかかる点である。
き込まれるFIFO側で作っているため、クリティカル
な情報が遅れて前段のスイッチに伝わる。
方式のスイッチで、バーチャルカットスルー方式の転送
を行なう場合に、FIFOメモリの容量が小さくても、
効率の良い転送が行なえるフロー制御方式を提供するこ
とである。
IFOメモリを使ったバーチャルカットスルー方式のパ
ケット転送に向いたフロー制御方式を提供し、FIFO
に書き込めないという情報が伝わる時の遅延をなくす必
要がある。
および装置は、スイッチ内のFIFOメモリ内のパケッ
トが、次段のスイッチまたは、プロセッサに送り始めら
れた時点で、そのFIFOメモリが書き込み可能になっ
たことを、前段のスイッチに対して書き込み可能信号パ
ルスで伝える手段(図2 128,137、図3 20
4)を有する。これにより、FIFOが空になる前に前
段のスイッチに書き込み可能が伝わる。
うかは、書き込む側にその状態を記憶する手段(図3
211,212)をもち、次段のFIFOメモリにパケ
ットを書き込み始めた時点で書き込み不可状態にし、次
段のスイッチからそのFIFOメモリの書き込み可能信
号パルスが届いたときに、書き込み可能状態にする手段
(図3 202,203)を有する。
FIFOメモリの空きワード数を数える手段 (図4 3
04)と、書き込まれるパケットのまだ書き込まれてい
ないワード数を数える手段(図4 309)と、それら
の差を計算し、最大パケット長と比較する手段(図4
310,311)を有し、比較結果が≧の場合に前段の
スイッチに対し書き込み可能信号パルスを出力する手段
(図4 312)を有する。
て図面を参照して詳細に説明する。
トワークを用いた並列マシン001の構成を示す。並列
マシンは、演算を行なう複数のプロセッサ002がネッ
トワーク003で接続されている。ネットワーク003
は複数のスイッチ004によって構成され、それぞれの
スイッチ004は2入力2出力の構成で、クロスポイン
トバッファ方式で、 バーチャルカットスルー方式を採
用したスイッチである。
ッチ101の構成を示すブロック図である。
2 103、2つの出力ポート104 105を備えて
いる。入力ポート0 102には、FIFOA0 10
6とFIFOB0 107の2つのFIFOメモリが接
続されている。入力ポート1103には、FIFOA1
108とFIFOB1 109の2つのFIFOメモリ
が接続されている。スイッチはクロスポイントバッファ
方式なので、FIFOメモリは全部で、ポート数の2乗
個、すなわち、4個実装されている。
が、実際はスイッチ内のFIFOの数が多くなると、F
IFO1個当たりの容量は小さいものに限られてしま
う。従って、本発明のFIFOも、パケットの最大長よ
りも少し大きいくらいの容量とする。本発明では、バー
チャルカットスルー方式の制御を行なうため、パケット
1個分を必ず格納する必要があり、実際は、FIFOの
容量からパケットの最大長が決定される。
チまたは、プロセッサから、書き込みデータ0 110
と、書き込み信号A0 111と書き込み信号B0 1
12が2つのFIFOメモリ、FIFOA0 107と
FIFOB0 108に入力されており、前段のスイッ
チまたは、プロセッサへは、FIFOA0 107が書
き込み可能かどうかを知らせるための書き込み可能信号
A0 113と、FIFOB0 108が書き込み可能
かどうかを知らせるための書き込み可能信号B0 11
4が出力される。
チまたは、プロセッサから、書き込みデータ1 115
と、書き込み信号A1 116と書き込み信号B1 1
17が2つのFIFOメモリ、FIFOA1 108と
FIFOB1 109に入力されており、前段のスイッ
チまたは、プロセッサへは、FIFOA1 108が書
き込み可能かどうかを知らせるための書き込み可能信号
A1 118と、FIFOB1 109が書き込み可能
かどうかを知らせるための書き込み可能信号B1 11
9が出力される。
ッチ120へ、FIFOC 121とFIFOD 12
2への書き込みデータCD 123と、FIFOC 1
21への書き込み信号C 124、FIFOD 122
への書き込み信号D 125が出力されている。また、
次段のスイッチ120からは、FIFOC 121が書
き込み可能かどうかを示す書き込み可能信号C 126
と、FIFOD 122が書き込み可能かどうかを示す
書き込み可能信号D 127が出力されており、スイッ
チ101内のシーケンサA 128に入力されている。
ッチ129へ、FIFOE 130とFIFOF 13
1への書き込みデータEF 132と、FIFOE 1
30への書き込み信号E 133、FIFOF 131
への書き込み信号F 134が出力されている。また、
次段のスイッチ129からは、FIFOE 130が書
き込み可能かどうかを示す書き込み可能信号E 135
と、FIFOF 131が書き込み可能かどうかを示す
書き込み可能信号F 136が出力されており、スイッ
チ101内のシーケンサB 137に入力されている。
106に読み出すデータがあるかどうかを示す読み出
し可能信号A0 138と、FIFOA1 108に読
み出すデータがあるかどうかを示す読み出し可能信号A
1 139と、2つのFIFOメモリ、FIFOA0
106とFIFOA1 108の読み出しデータである
読み出しデータA0 140と読み出しデータA1 1
41の一部である経路指定情報A0 142と経路指定
情報A1 143が入力されている。さらに、シーケン
サA 128には次段のFIFO121,122からの
書き込み可能信号C 126と、書き込み可能信号D
127が入力されており、シーケンサA128は、それ
らの情報などから、FIFOA0 106、FIFOA
1 108のどちらのFIFOメモリ内のパケットを次
に処理するかを決定し、パケット選択信号A 144に
よって、読み出しデータA0 140か読み出しデータ
A1 141をMUX 145で選択し、次段のスイッ
チ120への書き込みデータCD 123とし、FIF
OA0 106、FIFOA1 108、それぞれへの
読み出し信号である、読み出し信号A0 146と、読
み出し信号A1147と、次段のFIFO121,12
2の書き込み信号である書き込み信号C124と書き込
み信号D 125を制御して、次段のスイッチ120の
FIFOメモリ121,122にパケットを書き込む。
107に読み出すデータがあるかどうかを示す読み出
し可能信号B0 148と、FIFOB1 109に読
み出すデータがあるかどうかを示す読み出し可能信号B
1 149と、2つのFIFOメモリFIFOB0 1
07とFIFOB1 109の読み出しデータである読
み出しデータB0 150と読み出しデータB1 15
1の一部である経路指定情報B0 152と経路指定情
報B1 153が入力されている。さらに、シーケンサ
B 137には次段のFIFO130,131からの書
き込み可能信号E 135と、書き込み可能信号F 1
36が入力されており、シーケンサB137は、それら
の情報などから、FIFOB0 107、FIFOB1
109のどちらのFIFOメモリ内のパケットを次に
処理するかを決定し、パケット選択信号B 154によ
って、読み出しデータB0 150か読み出しデータB
1 151をMUX155で選択し、次段のスイッチ1
29への書き込みデータEF 132とし、FIFOB
0 107、FIFOB1 109、それぞれへの読み
出し信号である読み出し信号B0 156と、読み出し
信号B1 157と、次段のFIFO 130,131
の書き込み信号である書き込み信号C 133と書き込
み信号D 134を制御して、次段のスイッチ129の
FIFOメモリ 130,131にパ ケットを書き込
む。
チが何段目に位置しているかという段数情報158が入
力される。シーケンサ128,137はこの段数情報1
58によって、経路指定情報142,143,152,
153でそのスイッチが注目しないといけない1ビット
を選択する。また、段数情報158によって最終段に位
置することが示されたスイッチは、次段はプロセッサが
接続され、次段がプロセッサの場合には、プロセッサの
受信FIFO内にFIFOメモリは1つしかないので、
書き込み信号、書き込み可能信号は決められた片方だけ
を使用する。
図を示す。シーケンサB 137も同じ構成をとる。
状態制御回路202、FIFOD状態制御回路203、
制御回路204がある。制御回路204内には、パケッ
トの長さ227を格納し、何ワード送ったかを数えるた
めのパケット長カウンタA205がある。また、FIF
OA0、FIFOA1どちらのFIFOメモリのパケッ
トを処理するかを決定するために、最後にどちらのFI
FOメモリ内のパケットを処理したかを覚えておくラス
トレジスタA 206がある。
8は、同期化回路209,210により同期化されFI
FO状態制御回路202,203に入力される。FIF
O状態制御回路202,203内には、次段のFIFO
が書き込み可能かどうかを表すFIFO状態レジスタ2
11,212がある。
は、伝搬時間がクロック周波数に比べ十分に速い2つの
FFが直列に接続されたもので、FFのクロックに同期
していない信号を1段目のフリップフロップが受けてメ
タステーブル状態に陥っても、次のクロックまでに安定
状態になり、2段目のクロックは必ず1か0を入力され
ることを保証するものである。一般に2クロック以上同
じ値になる1ビットのデータは、この同期化回路を通し
ても、その変化時刻がずれることはあっても値の変化を
伝えることが可能である。
23により、このスイッチに関係のある1ビットがMU
X215,216によって選ばれる。この1ビット21
7,218を使って、MUX219,220で2つのF
IFO状態制御回路202,203からの2つのFIF
Oの状態信号221,222のうち1つが選ばれ、制御
回路204に入力される。
プロセッサ301内の受信FIFO302の構成を示す
ブロック図である。
分受けとれる容量のFIFOメモリ303を持ってい
る。FIFOメモリ303の容量が大きくなったとして
も、バーチャルカットスルー方式なので、一度パケット
を受信し始めると、パケットの最後まで受信しなければ
ならないという制限は存在する。そのため、プロセッサ
301の受信FIFO 302でのフロー制御は、FI
FOメモリ303に次のパケットが書き込めるかどうか
を、FIFOメモリ303の空き領域とパケットの最大
長を比較して決定し、書き込み可能信号313を生成し
て行なっている。
には、FIFOメモリ303内の空きワード数をカウン
トするカウンタ304があり、FIFOメモリ303へ
の書き込み信号305と、FIFOメモリ303からの
読み出し信号306によって、1ずつ減算、2ずつ加算
される。FIFOメモリ303への書き込み信号305
は、前段のスイッチ314のクロックによって同期して
おり、FIFOメモリ303からの読み出し信号306
は、プロセッサ301のクロックに同期している。した
がって、FIFOメモリ303からの読み出し信号30
6を同期化回路307によって、前段のスイッチ314
のクロックに同期化して、このカウンタ304の加算信
号に使っている。また、パケットヘッダに書かれたパケ
ット長308を格納し、FIFOメモリ303への書き
込み信号305により減算していき、パケットの終りを
検出するパケット長カウンタ309を備えている。
値からパケット長カウンタ309の値を引き算するため
の引き算器310があり、この引き算結果と最大パケッ
ト長を格納している最大パケット長レジスタ319を比
較器311で比較し、その結果から、書き込み可能信号
生成回路312により、書き込み可能信号313を前段
のスイッチ314に出力する。
ット長カウンタ309の値、書き込み信号305を使っ
て、パケット長カウンタ309へのパケット長のロード
315等の制御信号を作成する。
明する図である。FIFOメモリ601は、2つのFI
FOメモリG 602とFIFOメモリH 603で構
成されており、書き込み先選択回路610によって書き
込むFIFOメモリを選択し、書き込み信号604をF
IFOメモリG 602とFIFOメモリH 603の
それぞれの書き込み信号608,609に交互に分割
し、書き込みデータ605を1ワード毎にFIFOメモ
リG 602とFIFOメモリH 603に交互に書き
込む。読み出しデータ607は書き込みデータ605の
2倍のデータ幅があり、読み出し信号によって、FIF
OメモリG 602とFIFOメモリH603から同時
に読み出され、結合されたものである。
について説明する。
るので、すべてのFIFOの読み出し可能信号は0にな
っている。また、すべてのFIFOは書き込み可能の状
態なので、シーケンサ内のFIFO状態制御回路20
2,203内のFIFOの状態レジスタ211,212
は1となり、書き込み可能を示す。ラストレジスタ20
6は決められた初期値になる。
06に書き込まれ始めたとする。FIFOA0 106
の読み出し可能信号138,228が1になり、FIF
OA0 106の読み出しデータA0 140にはパケ
ットヘッダが出力され、経路指定情報A0 142,2
13がシーケンサA 128,201に入力される。
定情報のうち、段数情報158,223によってこの段
のスイッチが注目しなければならない1ビット217を
選択し、その経路選択ビット217により、次の段で書
き込まれるFIFOの状態信号221,222が選択さ
れる。ここで、経路選択ビット217が0なら、FIF
OC状態信号221が、1ならFIFOD状態信号22
2が選択され、制御回路204に入力される。今、経路
選択ビット217は0とする。
可能信号A0 228が1になっていて、かつ、MUX
219で選択されたFIFO状態信号221が書き込み
可能を示す1であることにより、FIFOA0 106
内のパケットを次段のFIFOC 224に書き込む処
理が始められる。それは以下のように行なわれる。
6を0にして、MUX145で読み出しデータA0 1
40を選択し、書き込みデータCD 123にする。そ
れとともにパケット長A159,227をパケット長カ
ウンタA 206にロードし、ラストレジスタ205を
FIFOA0 106を処理したことを示す0にする。
書き込み信号C124,224を1にして、FIFOA
0 106内のパケットを次段のFIFOC 121に
転送する。このとき、1ワード転送するごとにパケット
長カウンタA 206を1ずつ減算していき、ゼロにな
るまで転送を続ける。
これと並行して、データ転送の開始時に次の処理を行な
う。
は、書き込み信号C124,224が1になったことを
うけて、FIFOC状態レジスタ211を0にし、FI
FOC121の状態を書き込み不可にする。
回路204は、前段のスイッチまたはプロセッサに対し
て、書き込み可能信号A0 113,232を出力す
る。
イッチとスイッチ間、スイッチとプロセッサ間のすべて
の書き込み可能信号はレベルではなく、パルスを用い
る。プロセッサと各スイッチは異なるクロックで動いて
いるため、パルスの幅を2クロック分にして、同期化回
路を通しても必ず1クロック分のパルスが残るようにし
て書き込み可能を伝える。
時に出すのは、すべてのプロセッサ、スイッチの動作周
波数が同じで、転送速度が同じことに起因する。転送速
度が同じなので、FIFO内にあるパケットが次段のF
IFOに転送され始めれば、前段のFIFOから次のパ
ケットがFIFOに書き込まれ始めても、バーチャルカ
ットスルーなので、FIFOからはパケットは一定の速
度で読み続けられ、また、同じ速度で次のパケットが書
き続けられるので、FIFO内の残りワード数を気にし
なくてもFIFOが溢れることはない。
FIFOメモリの容量と最大パケット長の差が、動作周
波数の差に見合う分あれば、同じようにパケットの処理
が開始された時点で、書き込み可能信号を出力しても、
FIFOは溢れることはない。
可能信号C126,207が来た時のFIFOC状態制
御回路202の処理を説明する。
号C126,207の2クロック分のパルスが来る。そ
れが同期化回路209を通って、1クロック分のパルス
または、2クロック分のパルスとなり、FIFO状態制
御回路202に入力される。パルスが入力されると、F
IFOC状態レジスタ211は0から1になり、FIF
OC 121が書き込み可能状態であることを示す。
03の状態遷移図である。初期値は書き込み可能状態4
01であり、書き込み信号により、書き込み不可状態4
02になる。書き込み不可状態402で、書き込み可能
信号のパルスが来ると、書き込み可能状態401にもど
る。
態を書き込み側と書き込まれ側によって変化させてい
る。これにより、書き込み不可なのに、それが伝わるの
に時間がかかり、間違って書き込まれてしまうことを防
いでいる。また、書き込み可能信号は同期化回路を通る
ため遅延するが、上のように、パケットを処理し始めた
時点で書き込み可能信号を出力するため、少しくらいの
遅延は無視できる。
Oのパケットを最後に処理したかを覚えるためのもので
ある。ラストレジスタ206が指す方のFIFOは、他
に比べて優先順位が低くなる。制御回路は、2つのFI
FOが同時に読み出し可能で、宛先のFIFOも書き込
み可能で、パケットの転送が可能である場合に、ラスト
レジスタ206による優先順位に従って、どちらのFI
FOのパケットを処理するかを決定する。
1の受信FIFO 302での処理について説明する。
データからの経路指定情報213,214とは関係な
く、段数情報222,317によりMUX215,21
6で選ばれる経路指定ビット217,218が必ず0に
なる。従って、次のMUX219,220ではFIFO
C状態信号221が必ず選ばれる。従って、それによる
書き込み信号も書き込み信号C224,305だけが使
われる。
ると、パケットの最後まで同じ速度で転送することがで
きるが、プロセッサ301の受信FIFO 302では
読み出し速度が一定とは限らない。なぜなら、受信FI
FO 302から読み出したデータ318はメモリに書
かれることになり、メモリはCPU等の他のユニットか
らもアクセスされるため、受信FIFO 302からの
パケットの読み出し時間を予測することはできない。従
って、プロセッサ301の受信FIFO 302では、
スイッチ内のFIFOとは異なったフロー制御が必要と
なる。
FIFO 302のFIFOメモリ303はパケットを
数個格納できるだけの容量を持つ。リセット時、FIF
Oメモリ303内は空であり、前段のスイッチ314の
FIFO状態レジスタ211は1となり、書き込み可能
を示す。
トが書き込まれると、プロセッサ301の受信FIFO
302のFIFOメモリ303の状態は受信可能である
ため、最終段のスイッチ314からプロセッサ301の
受信FIFO 302にパケットの書き込みが始まる。
あるパケット長308が、受信FIFO 302内のパ
ケット長カウンタ309にロードされる。そして、FI
FO内空きワード数カウンタ304の値からパケット長
カウンタ309の値が減算器310で減算され、その値
と最大パケット長レジスタ319に設定された最大パケ
ット長とが比較器311で比較され、その結果が書き込
み可能信号生成回路312に入力される。もし、比較結
果が、(空きワード数−パケット長)≧最大パケット長
の場合には、書き込み可能を示す2クロック幅のパルス
の書き込み可能信号313を前段のスイッチ314に出
力する。
遷移図を示す。初期状態501で受信FIFOへの書き
込みが発生すると、書き込み不可状態502に遷移し、
空きワード数カウンタ304からパケット長カウンタ3
09の値を引いた値と、最大パケット長との比較結果を
監視する。比較結果が≧のときは、書き込み許可状態5
03に遷移し、書き込み可能信号313を出力する。書
き込み許可状態503では、パケットの転送が終了し、
パケット長カウンタが0になっていれば初期状態501
に、パケットの転送が終了していない場合(パケット長
カウンタ309が0でない)は、パケット転送中の状態
504に遷移する。パケット転送中の状態504では、
パケットの転送が終了してパケット長カウンタ309が
0になると、初期状態501に遷移する。
7は書き込みデータ605の2倍の幅があるため、FI
FO内空きワード数カウンタ304は1回読み出しが起
こると2ずつ加算される。FIFOメモリ303から読
み出したデータ318はメモリに書き込まれるため、読
み出しがいつ開始されるかは、プロセッサ301内のC
PUなどの他のモジュールからメモリへのアクセスが起
こっているかどうかで左右され、場合によって異なる。
しかし、読み出しが開始されると、書き込みの速度の2
倍でFIFOメモリ303から読み出されるため、パケ
ットの書き込みが開始された時には、<であったが、書
き込みの途中で読み出しが開始され、≧になる場合が発
生する。
モリ303の容量は、パケット数個を受信できる容量に
なっているため、FIFOメモリ303からの読み出し
が不定期に行なわれても、1回の読み出しで複数ワード
が連続して読み出され、また、その速度が2倍ならば、
定常的なFIFOメモリ 303への書き込み速度と不
定期な読み出し速度が同程度となり、パケットの書き込
み開始時に、比較結果が≧となり、前段のスイッチに書
き込み可能信号313を送れることが頻繁に発生すると
考えられる。
受信FIFO 302では、スイッチ201の場合とは
異なったフロー制御を行なっているが、スイッチ201
の場合と同じように、パケットを書き込み始めた時に前
段に対して書き込み可能信号313を送ることが期待で
きる。
果は、クロスポイントバッファ方式でバーチャルカット
スルー方式のスイッチでありながら、FIFOメモリが
空になる前に次のパケットの書き込み可能信号を出力す
ることが可能となり、次段のFIFOメモリが書き込み
可能になるまで待つ状態を少なくし、効率良いパケット
の転送が行なえる。
ケットが存在するという、あたかも、ワームホールのよ
うな状態になり、FIFOメモリの使用効率が高くな
る。このことは、バーチャルカットスルー方式のネット
ワーク全体のスループットだけでなく、個々のパケット
転送時間が短くなるという効果をもたらしている。
するための図。
の構成と動作を説明するための図。
の構成と動作を説明するための図。
FOの構成と動作を説明するための図。
内のFIFO状態制御回路の状態遷移を説明するための
図。
み可能信号生成回路の状態遷移を説明するための図。
Oメモリの構成を説明するための図。
Claims (10)
- 【請求項1】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチ間で一度転送
し始めるとそのパケットの最後まで止まることなく連続
して転送を行うバーチャルカットスルーパケット転送方
式のフロー制御方法であって、前段のスイッチからFI
FOメモリに書かれたパケットがあり、そのパケットの
先頭が、次段のスイッチのFIFOメモリに書き込むた
めに読み出された時点で、前段のスイッチに対しFIF
Oメモリの書き込み可能を伝えることを特徴とするフロ
ー制御方法。 - 【請求項2】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチ間で一度転送
し始めるとそのパケットの最後まで止まることなく連続
して転送を行うバーチャルカットスルーパケット転送方
式のフロー制御方法であって、前記スイッチは、次段の
スイッチのFIFOメモリの状態が書き込み可能状態の
場合にだけパケットの書き込みを行ない、次段のスイッ
チのFIFOメモリにパケットを書き込み始めた時点
で、前記FIFOメモリを書き込み不可状態と認識し、
次段のスイッチから前記FIFOメモリへの書き込み可
能信号が到着した時点で、前記FIFOメモリを書き込
み可能状態と認識することを特徴とするフロー制御方
法。 - 【請求項3】ネットワークに接続されたプロセッサ内の
受信FIFOのフロー制御であり、一度転送し始めると
パケットの最後まで止まることなく連続して転送を行う
バーチャルカットスルーパケット転送方式のフロー制御
方法であって、FIFOメモリ内の空きワード数と受信
しているパケットのまだFIFOに書き込んでいないワ
ード数の差が最大パケット長以上ある場合にネットワー
クに対して書き込み可能信号を出力することを特徴とす
るフロー制御方法。 - 【請求項4】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチ間とそのネッ
トワークに接続されたプロセッサ間のフロー制御方法で
あって、プロセッサの送信部とスイッチの送信部では、
請求項2のフロー制御方法を使って次段のスイッチまた
はプロセッサへの書き込み制御を行ない、スイッチの受
信部では請求項1のフロー制御方法を用い、プロセッサ
の受信部では請求項3のフロー制御方法を用いることを
特徴とするフロー制御方法。 - 【請求項5】複数のプロセッサを複数のスイッチを用い
て結合したプロセッサ間ネットワークにおいて、前記ス
イッチは、N入力N出力の構成で、N個の入力ポートそ
れぞれにN個のFIFOメモリ(Nの2乗個)と、N個の
出力ポートそれぞれに独立したシーケンサ (N個)で構
成されたクロスポイントバッファ方式のスイッチであ
り、前記プロセッサと前記スイッチで、請求項4のフロ
ー制御方法を特徴とするプロセッサ間ネットワークのフ
ロー制御方法。 - 【請求項6】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチの受信部のフ
ロー制御を行い、パケットを1度転送し始めるとそのパ
ケットの最後まで止まることなく連続して転送を行なう
バーチャルカットスルーパケット転送方式のフロー制御
装置であって、前段のスイッチからFIFOメモリに書
かれたパケットがあり、そのパケットの先頭が、次段の
スイッチのFIFOメモリに書き込むために読み出され
た時点で、前段のスイッチに対しFIFOメモリの書き
込み可能を伝えることを特徴とするフロー制御装置。 - 【請求項7】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチの送信部のフ
ロー制御を行い、パケットを1度転送し始めるとそのパ
ケットの最後まで止まることなく連続して転送を行なう
バーチャルカットスルーパケット転送方式のフロー制御
装置であって、次段のスイッチのFIFOメモリが書き
込めるかどうかの状態を示すレジスタを持ち、状態が書
き込み可能状態の場合にだけパケットの書き込みを行な
い、次段のスイッチのFIFOメモリにパケットを書き
込み始めた時点で、前記FIFOメモリを書き込み不可
状態とし、次段のスイッチから前記FIFOメモリへの
書き込み可能信号が到着した時点で、前記FIFOメモ
リを書き込み可能状態とすることを特徴とするフロー制
御装置。 - 【請求項8】ネットワークに接続されたプロセッサ内の
受信FIFO装置であって、FIFOメモリ内の空きワ
ード数をFIFOメモリへの書き込み信号と読み出し信
号によって数えるカウンタと、受信しているパケットの
まだFIFOに書き込んでいないワード数を数えるカウ
ンタと、最大パケット長を保持するレジスタをもち、2
つのカウンタの値の差を計算する引算器と、その結果と
前記レジスタの値を比較する比較器をもち、比較結果が
2つのカウンタの差が最大パケット長以上ある場合にネ
ットワークに対して書き込み可能信号を出力することを
特徴とするフロー制御装置。 - 【請求項9】内部にパケットを一時的に記憶することが
できるFIFOメモリをもつスイッチが複数接続されて
構成されたネットワークにおけるスイッチとそのネット
ワークに接続されたプロセッサの送信部、受信部のフロ
ー制御装置であって、プロセッサの送信部とスイッチの
送信部では、請求項7に示すフロー制御装置を用い、ス
イッチの受信部には請求項6に示すフロー制御装置を用
い、プロセッサの受信部では 請求項8に示すフロー制
御装置を用いることを特徴とするフロー制御装置。 - 【請求項10】複数のプロセッサを複数のスイッチを用
いて結合したプロセッサ間ネットワークにおいて、前記
スイッチは、N入力N出力の構成で、N個の入力ポート
それぞれにN 個のFIFOメモリ(Nの2乗個)と、N
個の出力ポートそれぞれに独立したシーケンサ (N個)
で構成されたクロスポイントバッファ方式のスイッチで
あり、前記プロセッサと前記スイッチで、請求項9に示
すフロー制御装置を用いたことを特徴とするプロセッサ
間ネットワーク。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02055898A JP3456398B2 (ja) | 1998-02-02 | 1998-02-02 | プロセッサ間ネットワークのフロー制御方法および装置 |
DE19903841A DE19903841A1 (de) | 1998-02-02 | 1999-02-01 | Flußsteuerungsverfahren und -vorrichtung für Netzwerk zwischen Prozessoren |
US09/241,075 US6341313B1 (en) | 1998-02-02 | 1999-02-01 | Flow controlling method and apparatus for network between processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP02055898A JP3456398B2 (ja) | 1998-02-02 | 1998-02-02 | プロセッサ間ネットワークのフロー制御方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11219344A JPH11219344A (ja) | 1999-08-10 |
JP3456398B2 true JP3456398B2 (ja) | 2003-10-14 |
Family
ID=12030499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP02055898A Expired - Fee Related JP3456398B2 (ja) | 1998-02-02 | 1998-02-02 | プロセッサ間ネットワークのフロー制御方法および装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6341313B1 (ja) |
JP (1) | JP3456398B2 (ja) |
DE (1) | DE19903841A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1305691A4 (en) * | 2000-06-02 | 2003-07-23 | Radisys Corp | VOICE-OVER-IP COMMUNICATION WITHOUT ECHO CANCELLATION |
WO2002001816A1 (en) * | 2000-06-26 | 2002-01-03 | Koninklijke Philips Electronics N.V. | Low delay and low loss packet switch |
JP3908483B2 (ja) * | 2001-06-28 | 2007-04-25 | 富士通株式会社 | 通信装置 |
US7397796B1 (en) * | 2003-08-21 | 2008-07-08 | Smiljanic Aleksandra | Load balancing algorithms in non-blocking multistage packet switches |
US8094562B1 (en) * | 2004-06-24 | 2012-01-10 | Cypress Semiconductor Corporation | Transmission of a continuous datastream through a re-clocked frame-based transport network |
JP2006039677A (ja) * | 2004-07-22 | 2006-02-09 | Fujitsu Ltd | クロスバ |
KR100823130B1 (ko) * | 2006-02-02 | 2008-04-21 | 삼성전자주식회사 | 네트워크 프로세서 제어 장치 및 방법 |
US7924053B1 (en) | 2008-01-30 | 2011-04-12 | Actel Corporation | Clustered field programmable gate array architecture |
US7924052B1 (en) * | 2008-01-30 | 2011-04-12 | Actel Corporation | Field programmable gate array architecture having Clos network-based input interconnect |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60160461A (ja) | 1984-02-01 | 1985-08-22 | Nec Corp | デ−タ転送制御回路 |
JPS60238963A (ja) | 1984-05-11 | 1985-11-27 | Fujitsu Ltd | バツフア状態監視制御方式 |
US4862461A (en) | 1987-01-12 | 1989-08-29 | International Business Machines Corp. | Packet switch network protocol |
US5233603A (en) * | 1988-04-21 | 1993-08-03 | Nec Corporation | Packet switch suitable for integrated circuit implementation |
US5313649A (en) | 1991-05-28 | 1994-05-17 | International Business Machines Corporation | Switch queue structure for one-network parallel processor systems |
MX9306994A (es) * | 1992-12-15 | 1994-06-30 | Ericsson Telefon Ab L M | Sistema de control de flujo para interruptores de paquete. |
JPH0887479A (ja) | 1994-09-20 | 1996-04-02 | Hitachi Ltd | 計算機システム |
JPH07264242A (ja) | 1994-03-22 | 1995-10-13 | Hitachi Ltd | パケットスイッチ及びそのパケットスイッチを用いた並列計算機システム |
EP0685949A3 (de) * | 1994-06-03 | 2002-07-10 | Philips Patentverwaltung GmbH | Paketübermittlungssystem |
US5615126A (en) * | 1994-08-24 | 1997-03-25 | Lsi Logic Corporation | High-speed internal interconnection technique for integrated circuits that reduces the number of signal lines through multiplexing |
JPH08147250A (ja) | 1994-09-20 | 1996-06-07 | Hitachi Ltd | 相互結合網及びその通信方法 |
JP2830833B2 (ja) * | 1996-04-30 | 1998-12-02 | 日本電気株式会社 | プロセッサ間通信方法及びそれに用いるプロセッサ |
GB9618132D0 (en) * | 1996-08-30 | 1996-10-09 | Sgs Thomson Microelectronics | Improvements in or relating to an ATM switch |
GB9618128D0 (en) * | 1996-08-30 | 1996-10-09 | Sgs Thomson Microelectronics | Improvements in or relating to an ATM switch |
US6067300A (en) * | 1998-06-11 | 2000-05-23 | Cabletron Systems, Inc. | Method and apparatus for optimizing the transfer of data packets between local area networks |
-
1998
- 1998-02-02 JP JP02055898A patent/JP3456398B2/ja not_active Expired - Fee Related
-
1999
- 1999-02-01 US US09/241,075 patent/US6341313B1/en not_active Expired - Lifetime
- 1999-02-01 DE DE19903841A patent/DE19903841A1/de not_active Withdrawn
Non-Patent Citations (2)
Title |
---|
曽根猛 他,ハイパクロスバ・ネットワークにおけるバッファ利用法と転送性能について,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,1994年 7月23日,Vol.94,No.164,p.97−104 |
横田隆史 他,RWC−1相互結合網用プロトタイプ・ルータの設計,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,1995年 6月23日,Vol.95,No.125,p.49−54 |
Also Published As
Publication number | Publication date |
---|---|
DE19903841A1 (de) | 1999-10-14 |
JPH11219344A (ja) | 1999-08-10 |
US6341313B1 (en) | 2002-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5083269A (en) | Buffer device suitable for asynchronous transfer mode communication | |
US6314487B1 (en) | Adaptive routing controller of a crossbar core module used in a crossbar routing switch | |
US6081844A (en) | Point-to-point interconnect communications utility | |
US6115760A (en) | Intelligent scaleable FIFO buffer circuit for interfacing between digital domains | |
US5602850A (en) | High-speed packet bus | |
JPH0777382B2 (ja) | データ転送方法およびデータ通信ネットワーク装置 | |
EP0104802A2 (en) | Five port module as a node in an asynchronous speed independent network of concurrent processors | |
US20100238937A1 (en) | High speed packet fifo input buffers for switch fabric with speedup and retransmit | |
EP0436104B1 (en) | FIFO with variable commit pointer | |
US5539739A (en) | Asynchronous interface between parallel processor nodes | |
JP5230887B2 (ja) | クロックフォワードシステムi/oのための効率的なクロック開始および停止装置 | |
JP3456398B2 (ja) | プロセッサ間ネットワークのフロー制御方法および装置 | |
EP1728359A1 (en) | Integrated circuit and method for packet switching control | |
US6112268A (en) | System for indicating status of a buffer based on a write address of the buffer and generating an abort signal before buffer overflows | |
US7016349B1 (en) | Logic for generating multicast/unicast address (es) | |
EP0104801A2 (en) | Four way arbiter switch for a five port module as a node in an asynchronous speed independent network of concurrent processors | |
EP0104796B1 (en) | Four way selector switch for a five port module as a node in an asynchronous speed independent network of concurrent processors | |
US5473755A (en) | System for controlling data stream by changing fall through FIFO last cell state of first component whenever data read out of second component last latch | |
US6848042B1 (en) | Integrated circuit and method of outputting data from a FIFO | |
US6578118B1 (en) | Method and logic for storing and extracting in-band multicast port information stored along with the data in a single memory without memory read cycle overhead | |
US6831920B1 (en) | Memory vacancy management apparatus and line interface unit | |
JP2000022724A (ja) | パケットスイッチシステム、これを含む集積回路、パケットスイッチ制御方法、パケットスイッチ制御プログラム記録媒体 | |
KR0170506B1 (ko) | 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법 | |
JP4253264B2 (ja) | クロスバスイッチ及びネットワーク転送装置 | |
JPH1131066A (ja) | バッファ制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070801 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080801 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090801 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090801 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100801 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110801 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120801 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130801 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |