(57)【要約】【課題】現在のＬＳＩでは信号線の増加がボトルネックであり、クレジット通知に使用する信号線数を増やすとＬＳＩのコストが高価になるという問題がある。【解決手段】受信側は受信データを一旦受信データバッファに格納し、その後受信データバッファの先頭データが受信側で取り出され内部処理されると、送信側に、処理されたデータのクレジット数ではなく１信号線のみを使用した１回のクレジット通知を行う。送信側ではクレジット通知を受信すると、送信時に記憶した送信データの持つクレジット数をバッファの先頭から取り出し、そのクレジット数を元にクレジット通知のあったデータが処理された後の受信側の受信データバッファの空きクレジット数を求める。次回の送信処理ではその最新クレジット数を元にしてフロー制御を行う。【選択図】      図１
2004235728.tif 000002
【特許請求の範囲】
【請求項１】
データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側は、送信したデータで前記受信側の受信データバッファに格納されているデータの持つクレジット数を送信したデータの時系列順に一時記憶する記憶手段を有することを特徴とするクレジットによるフロー制御システム。
【請求項２】
請求項１において、前記記憶手段はＦＩＦＯ（先入れ先出し）形式であることを特徴とするクレジットによるフロー制御システム。
【請求項３】
データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記受信側は、前記送信側から受信したデータを格納する受信データバッファのデータが前記受信データバッファから取り出され処理される都度、前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知する送信手段を有することを特徴とするクレジットによるフロー制御システム。
【請求項４】
請求項３において、前記受信データバッファはＦＩＦＯ形式であることを特徴とするクレジットによるフロー制御システム。
【請求項５】
データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側は、送信したデータで前記受信側の受信データバッファに格納されたデータの持つクレジット数を送信したデータの時系列順に記憶するＦＩＦＯ形式の送信クレジット数バッファと、前記受信データバッファの持つクレジット数を格納するクレジットレジスタと、  を有し、
前記受信側は、前記ＦＩＦＯ形式の受信データバッファのデータが前記受信データバッファから取り出され処理される都度、前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知する送信手段を、有し、
前記送信側は、前記クレジット通知を受信すると、前記送信クレジット数バッファに記憶するうちの最古のデータのクレジット数を取り出し、取り出した値を前記クレジットレジスタの値と合計して前記クレジットレジスタの更新を行うことを特徴とするクレジットによるフロー制御システム。
【請求項６】
データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側において、
送信データが一時格納される送信データレジスタと、
前記送信データレジスタに格納されたデータの持つクレジット数を計算する送信クレジット数計算回路と、
前記受信側からクレジット通知が通知されるまで送信済みデータの持つクレジット数を記憶するＦＩＦＯ形式の送信クレジット数バッファと、
前記受信側の受信データバッファの空きクレジット数を記憶するクレジットレジスタと、
データ送信時にクレジットレジスタの値から送信データの持つクレジット数を引き、前記受信側からのクレジット通知を受信するとクレジットレジスタの値に送信クレジット数バッファの先頭から取り出したクレジット数を加えることで前記受信データバッファの空きクレジット数を計算してクレジットレジスタに格納する最新クレジット数計算回路と、
クレジットレジスタの値と送信しようとする送信データのクレジット数を比べクレジットレジスタの値が大きいか等しければそのデータを送信し、小さければ前記受信側からのクレジット通知を待ちクレジットレジスタの数が送信データのクレジット数に等しいかより大きくなるまで送信を一時中断するフロー制御回路と、
を備え、
前記受信側においては、
受信したデータを一時記憶するＦＩＦＯ形式の前記受信データバッファと、
前記受信データバッファの先頭データが受信側での処理を行うため受信データバッファから内部へ送出された時、前記送信側へクレジット通知を通知するクレジット通知制御回路と、を備え、
受信側から前記受信データバッファのデータが処理された時、該データのクレジット数ではなく前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知することを特徴とするクレジットによるフロー制御システム。
【請求項７】
データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、を備えたフロー制御システムの実行するクレジットによるフロー制御方法であって、
前記送信側において、前記受信側のクレジット数を記憶するクレジットレジスタを初期化する第１のステップと、
前記送信側において、送信データを送信データレジスタに一時格納する第２のステップと、
前記送信側において、送信データレジスタに格納されたデータの持つクレジット数を計算する第３のステップと、
前記送信側において、クレジットレジスタの値と、送信データのクレジット数を比較する第４のステップと、
前記送信側において、前記第４のステップにおける比較の結果、前者の値が後者の値に等しいか大きい場合は送信データを前記受信側に送信する第５のステップと、
前記送信側において、前記第５のステップで送信したデータの持つクレジット数をＦＩＦＯ形式の送信クレジット数バッファに記憶する第６のステップと、
前記送信側において、前記第５のステップで送信したデータのクレジット数をクレジットレジスタから減算してクレジットレジスタを更新する第７のステップと、
前記送信側において、前記第４のステップでの比較の結果、前者の値より後者の値が大きい場合、送信を中断する第８のステップと、
前記受信側では、前記第５のステップで前記送信側から受信したデータを受信データバッファに格納する第９のステップと、
前記受信側では、前記第９のステップで受信した受信データバッファのデータの取り出しが行われると、前記送信側へクレジット通知を行う第１０のステップと、
前記送信側では、前記第１０のステップで送信されたクレジット通知を受信すると、
送信クレジット数バッファの先頭からクレジット数を取り出す第１１のステップと、
前記送信側では、クレジットレジスタの値に前記第１１のステップで取り出したクレジット数を加算する第１２のステップと、
前記送信側では、送信待ちのデータの有無を確認する第１３のステップと、
前記送信側では、前記第１３のステップでの確認の結果、送信待ちデータのある場合は、前記ステップ４に戻る第１４のステップと、
前記送信側では、前記第１３のステップでの確認の結果、送信待ちデータが無い場合は、中断状態にはいる第１５のステップと、
を備えることを特徴とするクレジットによるフロー制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データの送受信におけるフロー制御に関し、特に送信したデータのクレジット数を送信側で管理することで、受信側では受信データバッファのクレジット数に代わりクレジットを送信側に通知するクレジットによるフロー制御システム及びその方法に関する。
【０００２】
【従来の技術】
データ転送のフロー制御として、受信側がクレジットを送信側に伝え、送信側では受け取ったクレジット分だけデータを送信するクレジット方式が知られている。クレジット方式では、受信データバッファにおけるデータ量を監視して、フロー制御用情報として受信データバッファで処理したデータ量又は受信データバッファの空き量を送信側に通知するクレジットを発生し、送信側では、このクレジットに応じてデータを送信する。（例えば、特許文献１を参照）
【特許文献１】
特許第２９６４９３７号（特開平０９−１９１３２１号）
（第３−４ページ、図１）
【０００３】
【発明が解決しようとする課題】
通常クレジット方式では、送信データ転送能力以上のクレジットを受信側から送信側に通知しなければ、受信データバッファが空いているにも関わらずデータが送信されなくなり、データ転送性能の低下につながる。
データ転送性能を低下させないひとつの方法として、データの受信側から送信側へのクレジット数の通知において、複数の信号線を使い一度に多くのクレジット数を通知することが考えられる。例えば信号線が１本であれば１度に１クレジット数しか通知できないが、２本にすれば一度の３クレジット数まで通知することが可能になる。しかしこの方法ではデータ転送性能は低下しないがデータ転送能力が増加するとクレジット数通知に使用する信号線数が多くなる。だが現在のＬＳＩでは信号線の増加がボトルネックとなっており、クレジット通知に使用する信号線数を増やすとＬＳＩのコストが高価になってしまうという新たな問題が起こる。
【０００４】
本発明は、送信側で送信したデータの持つクレジット数を管理することで、受信側からはクレジット数を送信側に通知することなく、それに代替する情報として、受信側の受信データバッファに新たな空きの発生したことをクレジットとして送信側に通知するクレジットによるフロー制御システム及びその方法を提供するものである。
【０００５】
【課題を解決するための手段】
本発明の第１のクレジットによるフロー制御システムは、データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側は、送信したデータで前記受信側の受信データバッファに格納されているデータの持つクレジット数を送信したデータの時系列順に一時記憶する記憶手段を有する。
【０００６】
本発明の第２のクレジットによるフロー制御システムは、第１の発明において、前記記憶手段はＦＩＦＯ（先入れ先出し）形式であることを備える。
【０００７】
本発明の第３のクレジットによるフロー制御システムは、データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記受信側は、前記送信側から受信したデータを格納する受信データバッファのデータが前記受信データバッファから取り出され処理される都度、前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知する送信手段を有する。
【０００８】
本発明の第４のクレジットによるフロー制御システムは、第３の発明において、前記受信データバッファはＦＩＦＯ形式であることを備える。
【０００９】
本発明の第５のクレジットによるフロー制御システムは、データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側は、送信したデータで前記受信側の受信データバッファに格納されたデータの持つクレジット数を送信したデータの時系列順に記憶するＦＩＦＯ形式の送信クレジット数バッファと、前記受信データバッファの持つクレジット数を格納するクレジットレジスタと、  を有し、
前記受信側は、前記ＦＩＦＯ形式の受信データバッファのデータが前記受信データバッファから取り出され処理される都度、前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知する送信手段を、有し、
前記送信側は、前記クレジット通知を受信すると、前記送信クレジット数バッファに記憶するうちの最古のデータのクレジット数を取り出し、取り出した値を前記クレジットレジスタの値と合計して前記クレジットレジスタの更新を行うことを備える。
【００１０】
本発明の第６のクレジットによるフロー制御システムは、データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、があって、
前記送信側において、
送信データが一時格納される送信データレジスタと、
前記送信データレジスタに格納されたデータの持つクレジット数を計算する送信クレジット数計算回路と、
前記受信側からクレジット通知が通知されるまで送信済みデータの持つクレジット数を記憶するＦＩＦＯ形式の送信クレジット数バッファと、
前記受信側の受信データバッファの空きクレジット数を記憶するクレジットレジスタと、
データ送信時にクレジットレジスタの値から送信データの持つクレジット数を引き、前記受信側からのクレジット通知を受信するとクレジットレジスタの値に送信クレジット数バッファの先頭から取り出したクレジット数を加えることで前記受信データバッファの空きクレジット数を計算してクレジットレジスタに格納する最新クレジット数計算回路と、
クレジットレジスタの値と送信しようとする送信データのクレジット数を比べクレジットレジスタの値が大きいか等しければそのデータを送信し、小さければ前記受信側からのクレジット通知を待ちクレジットレジスタの数が送信データのクレジット数に等しいかより大きくなるまで送信を一時中断するフロー制御回路と、
を備え、
前記受信側においては、
受信したデータを一時記憶するＦＩＦＯ形式の前記受信データバッファと、
前記受信データバッファの先頭データが受信側での処理を行うため受信データバッファから内部へ送出された時、前記送信側へクレジット通知を通知するクレジット通知制御回路と、を備え、
受信側から前記受信データバッファのデータが処理された時、該データのクレジット数ではなく前記受信データバッファに空きが発生したことをクレジット通知として前記送信側に通知することを備える。
【００１１】
本発明の第１のクレジットによるフロー制御方法は、データを送信する送信側と、前記送信側から送信されたデータを受信する受信側と、を備えたフロー制御システムの実行するクレジットによるフロー制御方法であって、
前記送信側において、前記受信側のクレジット数を記憶するクレジットレジスタを初期化する第１のステップと、
前記送信側において、送信データを送信データレジスタに一時格納する第２のステップと、
前記送信側において、送信データレジスタに格納されたデータの持つクレジット数を計算する第３のステップと、
前記送信側において、クレジットレジスタの値と、送信データのクレジット数を比較する第４のステップと、
前記送信側において、前記第４のステップにおける比較の結果、前者の値が後者の値に等しいか大きい場合は送信データを前記受信側に送信する第５のステップと、
前記送信側において、前記第５のステップで送信したデータの持つクレジット数をＦＩＦＯ形式の送信クレジット数バッファに記憶する第６のステップと、
前記送信側において、前記第５のステップで送信したデータのクレジット数をクレジットレジスタから減算してクレジットレジスタを更新する第７のステップと、
前記送信側において、前記第４のステップでの比較の結果、前者の値より後者の値が大きい場合、送信を中断する第８のステップと、
前記受信側では、前記第５のステップで前記送信側から受信したデータを受信データバッファに格納する第９のステップと、
前記受信側では、前記第９のステップで受信した受信データバッファのデータの取り出しが行われると、前記送信側へクレジット通知を行う第１０のステップと、
送信側では、前記第１０のステップで送信されたクレジット通知を受信すると、
送信クレジット数バッファの先頭からクレジット数を取り出す第１１のステップと、
クレジットレジスタの値に前記第１１のステップで取り出したクレジット数を加算する第１２のステップと、
送信待ちのデータの有無を確認する第１３のステップと、
前記第１３のステップでの確認の結果、送信待ちデータのある場合は、前記ステップ４に戻る第１４のステップと、
前記第１３のステップでの確認の結果、送信待ちデータが無い場合は、中断状態にはいる第１５のステップと、
を備える。
【００１２】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
最初に、図１を元に、本発明の実施の形態の構成について説明する。
【００１４】
例えば、コンピュータや通信機器等で使用されるパッケージ回路中のＬＳＩ間またはコンピュータの複数のプロセッサ間でデータの送受信を行うとする。
【００１５】
図１において、データを送信する送信側１と、送信側１から送信されたデータを受信する受信側２と、から構成される。
【００１６】
さらに、送信側１は、送信されるデータが一時格納される送信データレジスタ１１と、
送信データレジスタ１１に格納されたデータの持つクレジット数を計算する送信クレジット数計算回路１２と、
受信側２からクレジット通知が返却されるまで送信済みデータのクレジット数を時系列順で保持するＦＩＦＯ（先入れ先出し）形式の送信クレジット数バッファ１３と、
受信側２の受信データバッファの空き状況をクレジット数で示すクレジットレジスタ１４と、
データ送信時にクレジットレジスタ１４の値から送信データの持つクレジット数を引き、受信側２からのクレジット通知を受信するとクレジットレジスタ１４の値と送信クレジット数バッファ１３の先頭から取り出したクレジット数とを加えることで最新の受信側２の受信データバッファの空きクレジット数を計算しクレジットレジスタ１４に格納する最新クレジット数計算回路１５と、
クレジットレジスタ１４の値と送信データのクレジット数を比べクレジットレジスタ１４の値が大きいか等しければそのデータを送信し、小さければクレジット通知が受信側２から返却されクレジットレジスタ１４の値が送信データのクレジット数より大きくなるまで送信を一時中断するフロー制御回路１６と、
から構成される。
【００１７】
一方、受信側２は、受信したデータを一旦保持するＦＩＦＯ形式の受信データバッファ２１と、
受信データバッファ２１の先頭データが受信側２での処理を行うため受信データバッファ２１から内部へ送出された時、送信側１へクレジット通知を返却するクレジット通知制御回路２２と、
から構成される。
【００１８】
送信側１と受信側２のインターフェースとしてデータ本体が送受信される複数のデータ用信号線３１と、受信側１から送信側２へのクレジット通知が行われる１本のクレジット通知用信号線３２と、がある。
【００１９】
次に、本発明の実施の形態の動作について図２と図３のフローチャートを参照して説明する。
【００２０】
まず、インターフェースの初期化作業として受信側２が受信データバッファ２１の容量に応じてデータの書きつぶしが起こらないクレジット数を送信側１へあらかじめ通知する。
【００２１】
送信側１は受信側２から受け取ったクレジット数をクレジットレジスタ１４へ格納する。ただし受信データバッファ２１の容量があらかじめ決まっている場合、送信側１の初期化作業は、受信側２からの通知は行わず、クレジットレジスタ１４に決まった初期値を格納するだけとなる（ステップＳ１）。
【００２２】
送信側１は、送信データの発生または受信側２からのクレジットの受信を待つ状態に入る（ステップＳ２）。
【００２３】
ここで、送信側１で送信データが発生したとする。
【００２４】
送信側１では、送信データが送信データレジスタ１１に格納される（ステップＳ３）。送信データが格納されると、送信クレジット数計算回路１２は、送信データレジスタ１１に格納されたデータのクレジット数を計算する（ステップＳ４）。クレジット数計算回路１２は、計算したクレジット数を、フロー制御回路１６に通知する。
【００２５】
フロー制御回路１６は、送信データレジスタ１１にあるデータが受信側２で受信可能かを判断するために、受信側２の現時点における受信データバッファ２１の空き状況を示すクレジットレジスタ１４の値と、先に送信クレジット数計算回路１２で計算された送信データのクレジット数を比較する（ステップＳ５）。
【００２６】
送信データのクレジット数がクレジットレジスタ１４の示す値より大きければ、クレジットが受信側２から通知され、クレジットレジスタ１４の値が送信データのクレジット数に等しいかより大きくなるまで送信を一時中断するため（ステップＳ２）に飛ぶ。
【００２７】
一方、送信データのクレジット数がクレジットレジスタ１４の値と同じまたはより小さければ受信側２の受信データバッファ２１に空きがあると判断し、データをデータ用信号線３１を経由して送信する（ステップＳ６）。
【００２８】
送信側１による送信データレジスタ１１のデータ送信が完了すると、送信データの持つクレジット数は、送信クレジット数バッファ１３に登録される（ステップＳ７）。
【００２９】
その登録と同時に最新クレジット数計算回路１５で現在のクレジットレジスタ１４の値から送信データのクレジット数が引かれる。これによって、送信されたデータが受信側２で受信され受信データバッファ２１に保持された時の受信データバッファ２１の空き状況である最新クレジット数が算出されることになる。算出された最新クレジット数は次回の送信データのフロー制御に使用するためクレジットレジスタ１４に格納される（ステップＳ８）。そして（ステップＳ２）に戻る。
【００３０】
一方、図３のフローチャートを参照すると、受信側２は、データ受信、または内部からのデータの引き取りの発生を待っている状態で（ステップＳ２０）、送信側１からデータを受信すると、送信側１から受信した受信データを一旦受信データバッファ２１に保持して（ステップＳ２２）、（ステップＳ２０）に戻り内部処理が行われる状態を待つ。受信データバッファ２１の先頭にあるデータが処理できるようになると、受信データバッファ２１からそのデータを取り出し内部へ送出する。
【００３１】
内部への送出が完了すると、受信データバッファ２１に新たな空きができたことを送信側１に知らせるため、クレジット通知制御回路２２が送信側１へクレジット通知をクレジット通知用信号線３２によって通知する（ステップＳ２１）。そして（ステップＳ２０）に戻る。
【００３２】
送信側１では（ステップＳ２）において、クレジット通知を受け取ると最新クレジット数計算回路１５は、そのクレジットが何クレジット分かを判断するために送信クレジット数バッファ１３の先頭データを取り出し（ステップＳ９）、受信側２から受けとったクレジット通知に対応するデータのクレジット数が何クレジット分であったか確認する。
【００３３】
最新クレジット数計算回路１５は、送信クレジット数バッファ１３から取り出したクレジット数とクレジットレジスタ１４の値とを足したクレジット数を現在の受信データバッファ２１の空き状況としてクレジットレジスタ１４に格納する（ステップＳ１０）。
【００３４】
フロー制御回路１６は、クレジットレジスタ１４が新たな値に更新されたことを知ると、送信データレジスタに送信が一時中断されたデータがあるかをチェックし（ステップＳ１１）、それがある場合、（ステップＳ５）に行く。
【００３５】
（ステップＳ５）では、クレジットレジスタ１４のクレジット数と送信データレジスタ１１のクレジット数とを比較し、クレジットレジスタ１４の値が大きいか等しい場合は、送信データレジスタ１１の送信データを受信側２に送信する。（ステップＳ１１）のチェックで送信データが無い場合は、（ステップＳ２）に戻る。
【００３６】
以上説明した内容を元にした第１の例として、受信データバッファ２１容量が３２クレジットで、送信側１から受信側２へ３つのデータが送信されたとする。１つ目のデータのクレジット数が１６クレジットで、２つ目が２クレジット、３つ目が８クレジットであったとすると、送信クレジット数バッファ１３にはクレジット数として１６、２、８クレジットの順に登録される。
【００３７】
この時、送信側１の受信データバッファ２１の空き状況を示すクレジットレジスタ１４は、まず初期値として３２クレジットに初期化され、１つ目のデータ送信が完了すると初期値の３２から１６クレジットが引かれ１６クレジットとなる。その後受信側２からクレジット通知がない状況で、２つ目のデータの送信完了後では、１４クレジット（１６−２＝１４）となり、引き続き受信側２からのクレジット通知がない状況で３つ目のデータ送信が完了すると６クレジット（１４−８＝６）と遷移する。
【００３８】
一方受信側２では、送信データが順に受信データバッファ２１に保持される。１つ目のデータを受信データバッファ２１から内部処理へ移動させたとき１回目のクレジット通知が送信側１に行われる。同様に２つ目、３つ目のデータが処理されると２回目、３回目のクレジット通知が実施される。
【００３９】
送信側１は１回目のクレジット通知を受信するとそのクレジット通知が１６クレジットであることを送信クレジット数バッファから取り出したクレジット数によって知る。この１６クレジットとクレジットレジスタ１４の現在値を最新クレジット数計算回路１５を使い加えると、その時の受信データバッファ２１の空き状況がわかる。同様に２回目、３回目のクレジット通知を受信するとそれぞれのクレジット通知が２クレジット、８クレジットであることを送信側１は送信クレジット数バッファ１３に保持されたクレジット数を順に取り出すことにより知る。最新クレジット数計算回路１５は、送信クレジット数バッファ１３から取り出したクレジット数と、クレジットレジスタ１４に格納されたクレジット数とを合計し、受信側１の最新の受信データバッファ２１の空き状況を示す新しいクレジット数が算出さし、クレジットレジスタ１４に格納する。
【００４０】
クレジットレジスタ１４は、３つ目のデータ送信直後においては、６クレジットを示すが、受信側２から３回目のクレジット通知を受信すると３２クレジット（６＋１６＋２＋８＝３２）に戻る。
【００４１】
第２の例として、受信データバッファ２１容量を２０クレジットとした時、例１と同様にクレジット数として１６、２、８を持つ３つのデータが順に送信されたとする。
【００４２】
受信データバッファ２１は容量として２０クレジットしかないため、１つ目と２つ目のデータは受信側２に送信可能であるが、２つ目のデータが送信完了した時点でのクレジットレジスタ１４の値は２（２０−１６−２＝２）となり、３つ目のデータは８クレジットのため送信が出来ず、３つ目のデータ送信は受信側２からクレジットが通知されるまで一時中断される。
【００４３】
その後受信側２から１回目のクレジット通知が返却されるとクレジットレジスタ１４の値の２と、送信クレジット数バッファ１３から取り出された１回目の送信データの持つクレジット数の１６が最新クレジット数計算回路１５で合計されて１８クレジットとなり、１８がクレジットレジスタ１４に格納される。クレジットレジスタ１４値が１８になると３つ目のデータの８クレジットより大きくなるのでフロー制御回路１６は、送信データレジスタ１１に保持された３つ目のデータの送信を指示する。
【００４４】
本発明の他の実施例として、基本的構成は上記の通りであるが、送信クレジット数バッファに保持するデータをさらに工夫してハードウェアを削減することができる。通常送信データのクレジット数は例えば最大が１６クレジットだとしても１クレジットから１６クレジットまで１６種類あるとは限らず、２、４、８、１６クレジットの４種類とあらかじめ決まっている場合がある。そういった場合１６クレジットを４ビットの２進数で表すのではなく、００は２クレジット、０１は４クレジット、１０は８クレジット、１１は１６クレジットと２ビットにエンコードすることができる。このようにエンコードしクレジット幅を４ビットから２ビットにすることによって、送信クレジット数バッファのハードウェア削減効果も同時に実現することができる。
【００４５】
【発明の効果】
第１の効果は、受信側から送信側１へのクレジット通知として、クレジット数を通知するのではなく、送信側でクレジット数を保持しておくことによって、クレジット通知に使用する信号線本数が信号線１本のみで可能となるため、ＬＳＩ全体の信号線数が削減され、ＬＳＩコストが削減される。
【００４６】
第２の効果は、データ転送能力が向上しても、送信側でクレジット数を保持しておくことによって、クレジット通知で返却可能なクレジット数の上限がなくなるため、クレジット返却性能不足のため受信データバッファが空いているにも関わらずデータが送信できないというデータ転送性能低下を防ぐことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態の構成を説明するブロック図である。
【図２】本発明の実施の形態の動作を説明するフローチャートである。
【図３】本発明の実施の形態の動作を説明するフローチャートである。
【符号の説明】
１    送信側
１１    送信データレジスタ
１２    送信クレジット数計算回路
１３    送信クレジット数バッファ
１４    クレジットレジスタ
１５    最新クレジット数計算回路
１６    フロー制御回路
２    受信側
２１    受信データバッファ
２２    クレジット通知制御回路
３１    データ用信号線
３２    クレジット通知用信号線
【図１】
2004235728.tif 000003
【図２】
2004235728.tif 000004
【図３】
2004235728.tif 000005