(57)【要約】【課題】クレジット方式のフロー制御を行うこと。【解決手段】パケットを送信する送信装置１０１と、送信装置１０１から送信されたパケットを受信する受信装置１０２とを備え、送信装置１０１は、当該送信装置１０１から受信装置１０２へのパケットの送信をフロー制御するフロー制御部１０９を有し、受信装置１０２は、当該受信装置１０２の状態の変化を予測するクレジット通知可能予測部１０６を有し、フロー制御部１０９は、受信装置１０２の現在の状態と、クレジット通知可能予測部１０６が予測した状態の変化とに基づいて、送信装置１０１をフロー制御する。【選択図】図１
2011217329.tif 000002
【特許請求の範囲】
【請求項１】
クレジット方式のフロー制御を行うフロー制御システムであって、
パケットを送信する送信装置と、
前記送信装置から送信されたパケットを受信する受信装置と
を備え、
前記送信装置は、
当該送信装置から前記受信装置へのパケットの送信をフロー制御するフロー制御部
を有し、
前記受信装置は、
当該受信装置の状態の変化を予測するクレジット通知可能予測部
を有し、
前記フロー制御部は、前記受信装置の現在の状態と、前記クレジット通知可能予測部が予測した状態の変化とに基づいて、前記送信装置をフロー制御するフロー制御システム。
【請求項２】
前記受信装置から送信されたパケットを受信して処理を行う処理装置
を更に備え、
前記送信装置は、
当該送信装置が前記受信装置へパケットを送信する場合に、カウンタ減算信号を受け取り、前記受信装置が前記処理装置へパケットを送信する場合に、カウンタ加算信号を受け取って、現在のクレジットと、前記カウンタ減算信号又は前記カウンタ加算信号とに基づいて、クレジットを計算するクレジット計算部
を更に有する
請求項１に記載のフロー制御システム。
【請求項３】
前記受信装置は、
前記送信装置へ前記クレジット加算信号を送信するクレジット通知部
を更に有し、
前記クレジット通知可能予測部は、前記受信装置が前記処理装置へ、一定サイクル内にパケットを送信することを予測し、
前記クレジット通知部は、前記クレジット通知可能予測部が予測を行った時に、前記送信装置へカウンタ加算信号を送信する
請求項２に記載のフロー制御システム。
【請求項４】
前記処理装置は、
ラウンドロビン方式で動作するクロスバ
を有し、
前記クレジット通知可能予測部は、前記クロスバにおける出力順情報、及び前記クロスバの出力先の受信可能不可能情報に基づいて予測処理を行う
請求項３に記載のフロー制御システム。
【請求項５】
前記クレジット通知可能予測部は、前記送信装置と前記受信装置との間の信号の送受信に必要なサイクル数に更に基づいて予測処理を行う
請求項３又は４に記載のフロー制御システム。
【請求項６】
クレジット方式のフロー制御を行うフロー制御方法であって、
送信装置から受信装置へのパケットの送信をフロー制御するフロー制御段階と、
前記受信装置の状態の変化を予測するクレジット通知可能予測段階と
を備え、
前記フロー制御段階においては、前記受信装置の現在の状態と、前記クレジット通知可能予測段階において予測された状態の変化とに基づいて、前記送信装置をフロー制御するフロー制御方法。
【請求項７】
前記送信装置が前記受信装置へパケットを送信する場合に、カウンタ減算信号を受け取り、前記受信装置が処理装置へパケットを送信する場合に、カウンタ加算信号を受け取って、現在のクレジットと、前記カウンタ減算信号又は前記カウンタ加算信号とに基づいて、クレジットを計算するクレジット計算段階
を更に備える請求項６に記載のフロー制御方法。
【請求項８】
前記送信装置へ前記クレジット加算信号を送信するクレジット通知段階
を更に備え、
前記クレジット通知可能予測段階においては、前記受信装置が前記処理装置へ、一定サイクル内にパケットを送信することを予測し、
前記クレジット通知段階においては、前記クレジット通知可能予測段階において予測が行われた時に、前記送信装置へカウンタ加算信号を送信する
請求項７に記載のフロー制御方法。
【請求項９】
前記クレジット通知可能予測段階においては、クロスバにおける出力順情報、及び前記クロスバの出力先の受信可能不可能情報に基づいて予測処理を行う
請求項８に記載のフロー制御方法。
【請求項１０】
前記クレジット通知可能予測段階においては、前記送信装置と前記受信装置との間の信号の送受信に必要なサイクル数に更に基づいて予測処理を行う
請求項８又は９に記載のフロー制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フロー制御システム、及びフロー制御方法に関する。特に本発明は、クレジット方式のフロー制御を行うフロー制御システム、及びフロー制御方法に関する。
【背景技術】
【０００２】
一の装置が別の装置にデータを送る場合、受信側の装置の受信バッファがバッファオーバーフローを引き起こさないように、送信側の装置と受信側の装置との間でフロー制御を行い、送信側の装置がデータを送ることを制限している。
【０００３】
例えば、クレジット方式のフロー制御では、送信装置は送信可能な分だけクレジットを持っている。クレジット方式における１クレジットは送信装置から受信装置へ１回に送るデータ量と対応している。本方法では送信装置が受信装置へデータを送ると、送信装置は送ったデータ分のクレジットを減算する信号を、クレジットを計算する処理部へ送る。また、受信装置が後続処理部へデータを送り受信バッファに空きができると、受信装置は送った分のクレジットを加算する信号を、クレジットを計算する処理部へ送る。そして、クレジットを計算する処理部は、現在のクレジット数、クレジットを加算する信号、クレジットを減算する信号を元に更新クレジットを計算する。このとき、更新クレジットは受信バッファが送信装置から受け取り可能なデータ量に相当するクレジットを超えない。そのため、更新クレジットが０より大きいことを確認しながら送信装置から受信装置へデータを送ることにより、バッファオーバーフローを起こすことなくデータを送ることが可能になる。クレジットに基づくフロー制御の例として、特許文献１、及び特許文献２に開示されたものがある。
【０００４】
図６は、既知のフロー制御システム９００の一例を示す。フロー制御システム９００は送信装置から受信装置へデータを送る際のフロー制御をクレジット方式で行うものであり、大別すると、データを送信する送信装置９０１と、送信装置９０１が送ったデータを受信する受信装置９０２と、受信装置９０２から処理装置パケット９１２を受け取る処理装置９１３とから構成される。ここで言う送信装置９０１はデータ送信装置側の処理部において受信装置側に対するインターフェイスになる部分であり、受信装置９０２はデータ受信装置側の処理部において送信装置側に対するインターフェイスになる部分である。送信装置９０１と受信装置９０２の間では、送信装置９０１から受信装置９０２へ転送パケット９０９を送り、受信装置９０２から送信装置９０１へクレジット加算信号９１０を送る、信号のやりとりが行われる。
【０００５】
送信装置９０１は、送信データを一時格納するＦＩＦＯ（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ；先入れ先出し）方法の送信バッファ９０３と、現在のクレジットを保持するクレジット保持部９０５と、現在のクレジットとクレジット加算信号９１０とクレジット減算信号９１４からクレジットを計算するクレジット計算部９０４と、クレジット計算部９０４からの信号に基づきフロー制御を行うフロー制御部９０６と、を備える。
【０００６】
送信バッファ９０３は、送信装置側の内部に設けられたデータ送信元（不図示）からデータを受け取り、受け取ったデータを一時的に格納し、フロー制御部９０６のフロー制御に従い、後述する受信バッファ９０７へ送る。
【０００７】
受信装置９０２は、送信装置９０１から受けとったデータを一時格納するＦＩＦＯ方法の受信バッファ９０７と、送信装置９０１へクレジット加算信号９１０を送るクレジット通知部９０８とを備える。
【０００８】
図７に示すフローチャートを利用して、フロー制御システム９００の送信装置９０１の動作について説明する。まず、初期値として保持するクレジットの初期値をクレジット保持部９０５が設定する（Ｓ９０１）。このとき、初期値は受信バッファ９０７が一時格納可能な転送パケット９０９の数に相当するクレジット数とする。
【０００９】
次に、クレジット計算部９０４は、クレジット加算信号９１０、クレジット減算信号９１４、およびクレジット保持部９０５から現在のクレジット、を受け取る（Ｓ９０２）。クレジット加算信号９１０は受信バッファ９０７が処理装置９１３へ処理装置パケット９１２を送った場合にクレジット通知部９０８から受け取る。また、クレジット減算信号９１４は送信バッファ９０３が受信バッファ９０７へ転送パケット９０９を送った場合に送信バッファ９０３から受け取る。
【００１０】
その後、クレジット計算部９０４はクレジットの計算を行う（Ｓ９０３）。クレジット計算部９０４は現在のクレジットに対して、クレジット加算信号９１０を受け取った場合は１を加算し、クレジット減算信号９１４を受け取った場合は１を減算する。クレジット加算信号９１０とクレジット減算信号９１４両方を受け取った場合は加減算を行わない。この計算結果をクレジット計算結果９１６とする。その後、クレジット計算部９０４はクレジット計算結果９１６をクレジット保持部９０５とフロー制御部９０６へ送り、クレジット保持部９０５はクレジット計算結果９１６を新しい現在のクレジットとして保持する。
【００１１】
そして、フロー制御部９０６はクレジット計算結果９１６が０より大きいか判定を行う（Ｓ９０４）。判定の結果、クレジット計算結果９１６が０より大きいことは、フロー制御の結果、データを送ることが可能であることを意味する。
【００１２】
判定の結果、データを送ることが可能で、送信バッファ９０３が送るデータを一時格納しているとき、送信バッファ９０３は受信バッファ９０７へ転送パケット９０９を送る（Ｓ９０５）。同時に、送信バッファ９０３からクレジット計算部９０４へクレジット減算信号９１４を送る。
【００１３】
ステップＳ９０２からステップＳ９０４までが１サイクルで行われ、次のサイクル以降はステップＳ９０２（もしくはステップＳ９０５）から始まりステップＳ９０４まで１サイクルで行われる。
【００１４】
データを送ると、次のサイクルでクレジット減算信号９１４によりクレジットが１減算され、送信装置９０１は受信装置９０２へデータを送る権利を１クレジット分失う。
【００１５】
このように送信装置９０１が受信装置９０２へ転送パケット９０９を送ると、受信装置９０２は図８で示すフローチャートに従って動作する。受信バッファ９０７は転送パケット９０９を受け取る（Ｓ９１１）。受信バッファ９０７は受け取ったデータを処理装置９１３へ送る（Ｓ９１２）。このとき、受信バッファ９０７はクレジット通知部９０８へ受信バッファクレジット信号９１１を送る（Ｓ９１３）。その後、受信バッファクレジット信号９１１を受け取ると、クレジット通知部９０８はクレジット計算部９０４へクレジット加算信号９１０を送る（Ｓ９１４）。
【００１６】
ステップＳ９１４でクレジット通知部９０８がクレジット計算部９０４へ送ったクレジット加算信号９１０により、図７のフローチャートのステップＳ９０３において送信装置９０１のクレジットが回復し、送信装置９０１は受信装置９０２へデータを送る権利を１クレジット分得る。
【００１７】
以上説明したフロー制御では、その時点で受信バッファ９０７が受信可能な転送パケット９０９の数は、クレジットの計算結果９１６に相当する転送パケット９０９の数より大きい。クレジットの計算結果９１６が０より大きいことを確認しながら送信装置９０１は受信バッファ９０７へ転送パケット９０９を送るので、受信バッファ９０７は必ず転送パケットを一時格納できる空きバッファを持っており、バッファオーバーフローを起こすことはない。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００４−２３５７２８号公報
【特許文献２】特開２００７−２２１２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ところで、１サイクルあたりの実行時間は、プロセス技術の微細化に伴ってクロック周波数が向上し、短くなってきている。一方、例えばＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の場合、単位時間あたりの信号の伝達距離は、プロセス技術の微細化に伴ってＲＣ遅延が増大し、短くなってきている。即ち、１サイクルで信号が伝達する距離は、プロセス技術の微細化に伴って、短くなってきている。そのため、信号の伝達には、複数のサイクルが必要になるケースが増えている。
【００２０】
このことは、送信装置と受信装置との間でクレジット方式のフロー制御を行う場合でも、同じことが言える。そのため、上記のような既知のフロー制御システムでは、受信装置からのクレジット増加信号の伝達に時間がかかり、受信装置の受信バッファに空きがあるのにも関わらずクレジットの回復に遅れが出るケースが生じている。
【課題を解決するための手段】
【００２１】
上記課題を解決するために、本発明の第１の形態によると、クレジット方式のフロー制御を行うフロー制御システムであって、パケットを送信する送信装置と、送信装置から送信されたパケットを受信する受信装置とを備え、送信装置は、当該送信装置から受信装置へのパケットの送信をフロー制御するフロー制御部を有し、受信装置は、当該受信装置の状態の変化を予測するクレジット通知可能予測部を有し、フロー制御部は、受信装置の現在の状態と、クレジット通知可能予測部が予測した状態の変化とに基づいて、送信装置をフロー制御する。
【００２２】
本発明の第２の形態によると、クレジット方式のフロー制御を行うフロー制御方法であって、送信装置から受信装置へのパケットの送信をフロー制御するフロー制御段階と、受信装置の状態の変化を予測するクレジット通知可能予測段階とを備え、フロー制御段階においては、受信装置の現在の状態と、クレジット通知可能予測段階において予測された状態の変化とに基づいて、送信装置をフロー制御する。
【００２３】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
【発明の効果】
【００２４】
以上の説明から明らかなように、この発明によれば、受信装置から送信装置へ、クレジット加算信号が早期に送られる。そのため、既知の手法と比較して、クレジットを早く回復することができる。その結果、既知の手法と比較して、送信装置から受信装置へ、データを早く送ることができる。
【００２５】
このように、この発明によれば、送信装置から受信装置へ、早くデータが送られるので、送信装置の送信バッファに空きができる。その結果、送信装置では、空いた送信バッファへデータが早く送られることになる。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係るフロー制御システム１００のブロック構成の一例を示す図である。
【図２】本発明の受信バッファと処理装置を示すブロック図である。
【図３】本発明のラウンドロビンクロスバとバッファ群と後続処理部を示すブロック図である。
【図４】本発明の制御を示すフローチャートである。
【図５】本発明の受信側の制御を示すフローチャートである。
【図６】既知のフロー制御システム９００の一例を示す図である。
【図７】既知のフロー制御システム９００の送信側の制御を示すフローチャートである。
【図８】既知のフロー制御システム９００の受信側の制御を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２８】
図１は、一実施形態に係るフロー制御システム１００のブロック構成の一例を示す。フロー制御システム１００は、上記のフロー制御システム９００と同様に、現在のクレジット、クレジット加算信号、及びクレジット減算信号に基づいてクレジットを計算し、計算したクレジットに基づいてフロー制御を行う。ただし、フロー制御システム１００は、上記のフロー制御システム９００と異なり、処理装置の状態から一定サイクル内に受信バッファが処理装置へデータを送ることを予測し、予測に基づいてクレジット加算信号を受信装置から送信装置へ送る。このように、フロー制御システム１００では、早いタイミングで送信装置がクレジット加算信号を受け取るため、送信バッファが受信バッファへデータを送るタイミングを早めることができる。以下、フロー制御システム１００の詳細を説明する。
【００２９】
フロー制御システム１００は、上記のフロー制御システム９００と同様に、送信回路側に設けられてデータを送信する送信装置１０１と、受信回路側に設けられてデータを受信する受信装置１０２と、受信バッファ１０４からデータを受け取り、処理を行う処理装置１０５とからなる。送信装置１０１と受信装置１０２の間のやりとりとして、送信装置１０１は受信装置１０２へ転送パケット１１１を送り、受信装置１０２は送信装置１０１へクレジット加算信号１１３を送る。
【００３０】
送信装置１０１は送信データを一時格納するＦＩＦＯ方法の送信バッファ１０３と、現在のクレジットを保持するクレジット保持部１０７と、クレジットを計算するクレジット計算部１０８と、フロー制御を行うフロー制御部１０９と、を備える。
【００３１】
送信バッファ１０３は、送信装置１０１の内部に設けられたデータ送信元（不図示）から送信データを受け取り、一時格納し、後述する受信装置１０２に送る。
【００３２】
受信装置１０２は、送信装置１０１から受けとったデータを一時格納するＦＩＦＯ方法の受信バッファ１０４と、一定サイクル内に受信バッファ１０４が処理装置１０５へデータを送ることを予測するクレジット通知可能予測部１０６と、送信装置１０１へクレジット加算信号１１３を送るクレジット通知部１１０と、対応するクレジット加算信号１１３がすでにクレジット計算部１０８へ送られた受信バッファ１０４内の処理装置パケット１１２の数をカウントする予測クレジットカウント部１３６と、を備える。
【００３３】
図２に示した処理装置１０５は、受信バッファ１０４と受信バッファ群１２１が入力として接続されているラウンドロビンクロスバ１２２と、受信バッファ１０４に一時格納されているデータがラウンドロビンクロスバ１２２により出力されるまでに必要なサイクル数を予測する出力サイクル予測部１２６と、ラウンドロビンクロスバ１２２の出力に接続されているバッファ群１２５と、処理バッファ群１２５の空きバッファ数を数える空きバッファ数カウント部１２７と、バッファ群１２５からデータを受け取る後続処理部１２４と、を備える。
【００３４】
図３に示したバッファ群１２５はラウンドロビンクロスバ１２２の各出力ポートに接続している複数のバッファ１２３を備える。バッファ１２３はラウンドロビンクロスバ１２２からデータを受け取り、後続処理部１２４へデータを送る。
【００３５】
本実施例では送信バッファ１０３から受信バッファ１０４へ一度に送るデータ量と受信バッファ１０４から処理装置１０５へ一度に送るデータ量は同じであるとする。１クレジットはこの送信バッファ１０３から受信バッファ１０４へ一度に送るデータ量に相当する。
【００３６】
次に図４に示すフローチャートを利用して、フロー制御システム１００の送信装置１０１の動作について説明する。まず、クレジット保持部１０７が現在のクレジットの初期値を設定する（Ｓ１０１）。初期値は受信バッファ１０４が一時格納可能な転送パケット１１１の数に相当するクレジットとする。
【００３７】
次に、クレジット計算部１０８は、クレジット保持部１０７から現在のクレジットを、クレジット通知部１１０からクレジット加算信号１１３を、送信バッファ１０３からクレジット減算信号１１７を受け取る（Ｓ１０２）。ここでクレジット加算信号１１３とクレジット減算信号１１７は常に送られてくるとは限らない。送られてくる条件は後述する。
【００３８】
その後、クレジット計算部１０８はクレジットの計算を行う（Ｓ１０３）。クレジット計算部１０８は現在のクレジットに対して、クレジット加算信号１１３を受け取った場合は１を加算し、クレジット減算信号１１７を受け取った場合は１を減算する。クレジット加算信号１１３とクレジット減算信号１１７両方を受け取った場合はクレジットに対して加減算を行わない。この計算結果をクレジット計算結果とする。計算後、クレジット計算部１０８はクレジット計算結果をクレジット保持部１０７へ送り、クレジット保持部１０７はクレジット計算結果を新しい現在のクレジットとして保持する。同時に、クレジット計算部１０８はクレジット計算結果をフロー制御部１０９へ送る。
【００３９】
そして、フロー制御部１０９はクレジット計算結果が０より大きいか判定を行う（Ｓ１０４）。判定の結果、クレジット計算結果が０よりも大きい場合、フロー制御部１０９は送信バッファ１０３へフロー制御信号１１６を送る。
【００４０】
さらに、フロー制御信号１１６を受け取り、かつ、データを一時格納している場合、送信バッファ１０３は転送パケット１１１を受信バッファ１０４へ送る（Ｓ１０５）。このとき送信バッファ１０３はクレジット減算信号１１７をクレジット計算部１０８へ送る。
【００４１】
ステップＳ１０２からステップＳ１０４は１サイクルで行われ、次のサイクル以降はステップＳ１０２（もしくはステップＳ１０５）から始まりステップＳ１０４まで１サイクルで行われる。
【００４２】
このように送信装置１０１はクレジットによるフロー制御を行い、送信装置から受信装置へデータを送る。
【００４３】
フロー制御システム１００の受信装置１０２の処理について図５（ａ）（ｂ）のフローチャートを元に説明する。本実施例では送信バッファ１０３と受信バッファ１０４のフロー制御の説明のみを行い、受信バッファ群１２１のフロー制御に関しては説明を行わない。
【００４４】
まず、クレジット通知可能予測部１０６は、クレジット通知部１１０から送られたクレジット加算信号１１３がクレジット計算部１０８に到達するために必要なサイクル数と、送信バッファ１０３から送られた転送パケット１１１が受信バッファ１０４に到達するために必要なサイクル数を足したものを往復サイクル数３３３として持つ（Ｓ１１１）。往復サイクル数３３３は、クレジット通知部１１０がクレジット加算信号１１３を送り、そのクレジット加算信号１１３による受信装置１０１のフロー制御によって送信バッファ１０３が転送パケット１１１を送り、その転送パケット１１１が受信バッファ１０４へ到達するまでのサイクル数を表す。
【００４５】
出力サイクル予測部１２６は受信バッファ１０４及び受信バッファ群１２１の、ラウンドロビンクロスバ１２２における出線競合調停の現在の状態から、受信バッファ１０４が一時格納している先頭データが最もサイクル数が必要な場合で何サイクル後にラウンドロビンクロスバ１２２から出力されるのか予測を行う（Ｓ１１２）。本予測では出力ポートに接続されているバッファは十分な空きを持っていると仮定する。
【００４６】
ラウンドロビンクロスバ１２２で採用している調停方法であるラウンドロビン方式では、１からｎ番までの入力ポートがあり、昇順に出線競合調停の勝者としていく場合、前のサイクルでａ番入力ポートがｂ番出力ポートの出線競合調停の勝者であれば、その次のサイクルでは（ａ＋１）  ｍｏｄ  ｎ番入力ポートから昇順に先頭データの出力先がｂ番出力ポートである入力ポートを探し（ｎ番ポートまで探した場合は１番ポートに戻る）、一番始めに見つかった入力ポートがｂ番出力ポートの出線競合調停の勝者となる。ラウンドロビン方式では、入力ポートがｎ個有り、現在ｍ番入力ポートがｋ番出力ポートの出線競合調停の勝者であれば、ｊ番入力ポートは最もサイクル数が必要な場合でも（ｊ−ｍ）  ｍｏｄ  ｎサイクル後に出線競合調停の勝者となる。ラウンドロビンクロスバ１２２は昇順で出線競合調停の勝者を決めるので、出力サイクル予測部１２６は（（（受信バッファ１０４の入力ポート番号）−（受信バッファ１０４の先頭データの出力先ポートの現在の出線競合調停の勝者の入力ポート番号））  ｍｏｄ  （入力ポート数））の計算式により、受信バッファ１０４が格納している先頭データが最もサイクル数が必要な場合で何サイクル後に出力されるのか計算を行う。この計算結果を出力サイクル数３２８として、受信バッファ１０４の先頭データの出力先ポート番号を表す出力先ポート番号３２９と合わせて出線競合調停信号１１９によりクレジット通知可能予測部１０６へ送る。
【００４７】
同時に、空きバッファ数カウント部１２７は各バッファ１２３の空きバッファ数を持った空きバッファ数信号１２０をクレジット通知可能予測部１０６へ送る（Ｓ１１３）。
【００４８】
その後、クレジット通知可能予測部１０６は、出力先ポート番号３２９に対応するバッファ１２３の空きバッファ数（Ｃ）を空きバッファ数信号１２０から得る。そして、往復サイクル数３３３（Ａ）と出力サイクル数３２８（Ｂ）と空きバッファ数（Ｃ）の関係がＡ，Ｃ≧Ｂ＞０であるか比較を行う（Ｓ１１４）。本比較でＡ，Ｃ≧Ｂであるということは、比較が行われた時点でクレジット通知部１１０がクレジット加算信号１１３を送り、そのクレジット加算信号１１３による受信装置１０１のフロー制御によって送信バッファ１０３が転送パケット１１１を送り、その転送パケット１１１が受信バッファ１０４へ到達するまでに、受信バッファ１０４は一時格納データを処理装置１０５へ少なくとも１個送り、受信バッファ１０４に少なくても１個転送パケット１１１を格納できる空きができることを意味する。つまり、Ａ，Ｃ≧Ｂであれば、その時点でクレジット加算信号を送った場合でも、受信バッファ１０４はバッファオーバーフローしない。Ｂ＞０であるということは直ちに受信バッファ１０４は一時格納データをバッファ群１２５へ送らないことを意味する。
【００４９】
ステップＳ１１４の比較の結果Ａ，Ｃ≧Ｂ＞０であれば、クレジット通知可能予測部１０６はクレジット通知部１１０へ予測クレジット信号１１８を送る（Ｓ１１５）。
【００５０】
予測クレジット信号１１８を受け取った場合、クレジット通知部１１０はクレジット計算部１０８へクレジット加算信号１１３を送る（Ｓ１１６）。
【００５１】
同時に、予測クレジットカウント部１３６は送信済みクレジット加算信号数３３２（対応するクレジット加算信号１１３がクレジット計算部１０８へ送られた受信バッファ１０４内の処理装置パケット１１２の数に１を加算する（Ｓ１１７）。
【００５２】
受信バッファ１０４が処理装置１０５へ処理装置パケット１１２を送った場合（Ｓ１１８）、受信バッファ１０４はクレジット通知部１１０へ受信バッファクレジット信号１１４を送る（Ｓ１１９）。
【００５３】
受信バッファクレジット信号１１４を受け取った予測クレジットカウント部１３６は、送信済みクレジット加算信号数３３２が０であるか判定を行い（Ｓ１２０）、０であれば、クレジット通知部１１０はクレジット計算部１０８へクレジット加算信号１１３を送る（Ｓ１２１）。０でない場合は、予測クレジットカウント部１３６は送信済みクレジット加算信号数３３２から１減算する（Ｓ１２２）。
【００５４】
ステップＳ１０５で送信バッファ１０３が受信バッファ１０４へ転送パケット１１１を送ると、送信バッファ１０３がクレジット計算部１０８へクレジット減算信号１１７を送り、クレジットが減少し、送信装置１０１はデータを送る権利を１パケット分失う。そして、対応するクレジット加算信号１１３を送っていない処理装置パケット１１２を受信バッファ１０４が処理装置１０５へ送る場合はステップＳ１２１で、または一定サイクル内に受信バッファ１０４が処理装置１０５へ処理装置パケット１１２を出力することをクレジット通知可能予測部１０６が予測した場合はステップＳ１１６で、クレジット通知部１１０はクレジット計算部１０８へクレジット加算信号１１３を送り、クレジットが回復し、送信側装置１０１はデータを送る権利を１パケット分得る。このようにして、送信装置から受信装置へクレジット方式のフロー制御でデータの送信が行われていく。
【００５５】
以上の説明では処理装置１０５はラウンドロビンクロスバ１２２と、バッファ群１２５と、後続処理部１２４からなるが、受信バッファ１０４から処理装置１０５へデータが出力されるまでのサイクル数が判定可能であればどのような構成でも良い。
【００５６】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【符号の説明】
【００５７】
１００  フロー制御システム
１０１  送信装置
１０２  受信装置
１０３  送信バッファ
１０４  受信バッファ
１０５  処理装置
１０６  クレジット通知可能予測部
１０７  クレジット保持部
１０８  クレジット計算部
１０９  フロー制御部
１１０  クレジット通知部
１１１  転送パケット
１１２  処理装置パケット
１１３  クレジット加算信号
１１４  受信バッファクレジット信号
１１６  フロー制御信号
１１７  クレジット減算信号
１１８  予測クレジット信号
１１９  出線競合情報信号
１２０  空きバッファ数信号
１２１  受信バッファ群
１２２  ラウンドロビンクロスバ
１２３  バッファ
１２４  後続処理部
１２５  バッファ群
１２６  出力サイクル予測部
１２７  空きバッファ数カウント部
１３６  予測クレジットカウント部
【図１】
2011217329.tif 000003
【図２】
2011217329.tif 000004
【図３】
2011217329.tif 000005
【図４】
2011217329.tif 000006
【図５】
2011217329.tif 000007
【図６】
2011217329.tif 000008
【図７】
2011217329.tif 000009
【図８】
2011217329.tif 000010