(57)【要約】  電子回路において、データはネットワーク（１２）を越えてデータプロセッシング回路の間で伝送される。双方向ネットワークインターフェイスは、ネットワークを介するプロセッサのペアの間の送信メッセージの送信と受信メッセージの受信の両方のため設けられる。ネットワークインターフェイスは、データと、プロセッシング回路（１０）に対するバッファ記憶回路（１０）内に受信メッセージからのデータ項目を受信するための未報告のバッファ空間のそれぞれの量Ｒを表す情報の両方を送信するために送信メッセージを使用する。ネットワークインターフェイスは、特定の１台のデータプロセッシング回路（１０）がメッセージ内での送信のため利用可能にさせたデータ項目であって、そのデータ項目のためにバッファ空間がネットワーク（１２）を越えて利用できるようになるデータ項目の個数Ａが閾値を超えるまで、特定の１台のデータプロセッシング回路（１０）からの送信メッセージの送信を延期する。しかし、特定の１台のプロセッシング回路（１０）に対するバッファ記憶回路（２７）内の未報告のバッファ空間の量Ｒの増加に応答して、この閾値が下げられるか、または、送信メッセージが閾値を超える前に送信される。
2007504698.tif 000002
【特許請求の範囲】
【請求項１】
複数台のデータプロセッシングユニットと、
前記データプロセッシングユニットの間でメッセージを受け渡す通信ネットワークと、
１台ずつの前記データプロセッシング回路によって使用される前記ネットワークから受信されたデータ項目を記憶するバッファ記憶回路と、
それぞれが関連した１台の前記プロセッシング回路からのデータ項目を送信メッセージにパックし、前記ネットワークを介して前記送信メッセージを送信し、前記ネットワークから受信メッセージを受信し、前記関連した１台の前記プロセッシング回路によって使用される各受信メッセージからのデータ項目をアンパックする複数台の双方向ネットワークインターフェイスであって、前記受信メッセージからのデータ項目を、前記関連した１台の前記プロセッシング回路に対する前記バッファ記憶回路内に受信するための未報告のバッファ空間のそれぞれの量Ｒを表す情報を、前記送信メッセージの少なくとも一部に収容する複数台の双方向ネットワークインターフェイスと、
特定の１台の前記プロセッシング回路からのデータ項目を伴う前記送信メッセージの送信をトリガーするようにアレンジされ、前記特定の１台の前記プロセッシング回路によって利用できるようにされたデータ項目であって、そのデータ項目のためにバッファ空間が前記ネットワークを越えて利用可能であるデータ項目の個数Ａが閾値を超えるまで、送信を延期するようにアレンジされ、前記特定の１台の前記プロセッシング回路に対する前記バッファ記憶回路内の未報告の利用可能なバッファ空間の前記量Ｒの増加に応じて、前記閾値を低下させるか、または、前記閾値を完全に抑える送信制御回路と、
を含む、電子回路。
【請求項２】
前記送信制御回路が、前記特定の１台の前記プロセッシング回路からのフラッシュコマンドを受信し、前記フラッシュコマンドに応答して、前記特定の１台の前記プロセッシング回路によって送信のため予め利用できるようにされた送信されていないデータ項目の個数Ｂを決定し、前記個数Ａが前記閾値を超えるか、および／または、未報告の利用可能なバッファ空間の前記量Ｒが前記閾値を下げるか、若しくは、前記閾値を抑えるまで待機することなく、少なくともＢ個のデータ項目が送信されるまで、１個以上の送信メッセージの送信をトリガーするようにアレンジされる、請求項１に記載の電子回路。
【請求項３】
前記送信制御回路が、データ項目の前記個数Ａに基づいて前記閾値を下げ、および／または、前記量Ｒの関数として前記閾値の減少を増加させ、および／または、これらのデータ項目および／または未報告のバッファ空間が利用可能になったとき、または、直前の送信メッセージが送信されたときから経過した時間間隔の長さの関数として、前記閾値をもっと少ない量Ｒで抑えるようにアレンジされる、請求項１に記載の電子回路。
【請求項４】
前記送信制御回路は、前記個数Ａが前記閾値を超えるか、および／または、前記量Ｒがさらなる閾値を超えるならば、送信をトリガーするようにアレンジされる、請求項１に記載の電子回路。
【請求項５】
前記送信制御回路は、前記個数Ａと前記量Ｒの加重和がさらなる閾値を超えるならば、送信をトリガーするようにアレンジされる、請求項１に記載の電子回路。
【請求項６】
電子回路内でネットワークを越えてデータプロセッシング回路の間でデータを送信する方法であって、
プロセッシング回路からのデータ項目を送信メッセージにパックし、前記ネットワークを介して前記送信メッセージを送信するステップと、
前記ネットワークから受信メッセージを受信し、前記プロセッシング回路によって使用される各受信メッセージからデータ項目をアンパックするステップと、
前記送信メッセージの少なくとも一部に、前記受信メッセージからのデータ項目を、前記プロセッシング回路に対するバッファ記憶回路に受信するための未報告のバッファ空間Ｒのそれぞれの量を表す情報を収容するステップと、
特定の１台の前記データプロセッシング回路によって前記メッセージでの送信のため利用可能にされたデータ項目であって、そのデータ項目のためにバッファ空間が前記ネットワークを越えて利用可能であるデータ項目の個数Ａが閾値を超えるまで、前記特定の１台の前記データプロセッシング回路からの送信メッセージの送信を延期するステップと、
前記特定の１台の前記プロセッシング回路に対する前記バッファ記憶回路内の未報告の利用可能なバッファ空間の前記量Ｒの増加に応じて、前記閾値を下げるか、または、前記閾値を超える前に前記送信メッセージを送信するステップと、
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路に係わり、特に、通信ネットワークを介して処理データを互いに通信する複数台のデータプロセッシングユニットを備えた集積回路に関する。
【背景技術】
【０００２】
多数のデータプロセッシングユニットを備えたシステムにおいて、異なるデータプロセッシング回路の間のデータの通信は、システムの有効性を判断するため重要な要因である。簡単なシステムでは、プロセッシング回路間の直接的な接続が使用され、通常、すべてのプロセッシングユニットが接続されたいくらかの本数のデータバスラインを含むので、送信回路および受信回路は状態情報を瞬時に共有する。
【０００３】
より複雑なシステムでは、通信ネットワークがデータを通信するため使用される。このようなネットワークは、一般に、データの送信の時点と受信の時点との間に遅延を生じさせる。プロセッシングユニットはメッセージの受信の時点を直接的に制御できない。これは、プロセッシングユニットが新しいデータを送信することにより先へ進むことができるかどうかを知ることを困難にさせるか、または、プロセッシングユニットは受信側の準備が完了するまで待たなければならないので、問題を生じさせる。この問題を解決するためには、受信回路と送信回路を強調させるために特殊なメカニズムが必要となる。
【０００４】
米国特許第６，５９４，７０１号は、ネットワークを介する通信がクレジットレポートを用いて制御される電子回路を開示する。受信回路は、送信回路からデータを受信するためにその受信回路が利用できる空きバッファ空間の量を動的に判定し、ネットワークを介して送信回路へ利用可能な空きバッファ空間に関するクレジットレポートを送信する。送信回路は報告されたクレジットを記録し、データが送信されたときにその記録されたクレジットを削減し、自由に利用可能であることが記録されたバッファ空間に記憶できるデータを上回るデータが送信されないことを保証する。クレジットベースの通信は、送信回路が、メッセージを送信した後、次のメッセージのための空き空間が利用できるようになった受信回路からのリターン信号を待機するハンドシェークプロトコルの拡張であるとみなされる。このようなハンドシェークプロトコルと比較すると、クレジットベースの通信は、送信回路はローカル情報に基づいて、一般的に、バッファ空間の解放に関する次のメッセージを待つことなく、次のメッセージを送信することを（メッセージのサイズと共に）決定できるので、より高いデータレートをサポートする。
【０００５】
米国特許第６，５９４，７０１号は、受信回路がクレジットレポートを送信回路へ送信すべきときを決定することを可能にする種々のアルゴリズムについて記載する。一つの提案された解決策は時間周期的なレポートを使用することである。別の解決策は、送信回路で利用できるクレジットの推定量を使用し、クレジットレポートは、送信回路からのメッセージの受信に応じて、先に報告したクレジットが、それ以降に受信されたデータの量によって減少し、閾値を下回るならば、送信される。この特許は、送信回路の観察されたデータレートに依存する種々の閾値の使用について記載する。
【０００６】
米国特許第６，４６０，０８０号は、送信回路がクレジットレポートの送信をトリガーするためにクレジット要求を送信するクレジットベースの通信について記載する。送信回路がメッセージを送信したいとき、十分なクレジットが利用できないならば、送信回路はその代わりにクレジット要求を送信する。受信回路はクレジット要求を受信し、必要に応じて、十分な空きバッファ空間が利用可能になるまで待機した後に、クレジットレポートを返信する。
【０００７】
クレジットレポートと、該当する場合にはクレジット要求を交換するためにネットワークを使用することは、ネットワーク帯域幅を使用する。使用される帯域幅の量を最小限に抑えることが望ましい。米国特許第６，５９４，７０１号は、ネットワークの外でクレジットを報告することにより、使用される帯域幅の量を最小限に抑えるが、これは通信回路を複雑にする。
【０００８】
クレジットレポートのため使用されるネットワーク帯域幅を削減するため魅力的な可能性は、プロセッシング回路がネットワークを通して双方向データ通信を行う場合に現れる。この場合、一方の方向における送信のためのクレジットレポートは、もう一方の方向で送信されるデータメッセージ内のデータに付加され、逆もまた同様である。よって、メッセージオーバーヘッドはデータとクレジットレポートによって分担される。しかし、クレジットレポートのための帯域幅使用の削減は、たとえば、送信回路にクレジットレポートを待つために送信を一時停止させることによって、データの伝送レートを低下させること、または、著しく低下させることのない方法で実現しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特に、本発明の目的は、報告されたクレジットを使用してデータを送信することができるレートに望ましくない影響を与えることなく、クレジットレポートのため使用されるネットワーク帯域幅を削減することである。
【００１０】
特に、本発明の目的は、クレジットレポートのため使用されるネットワーク帯域幅を削減するためにプロセッシング回路のペアの間で双方向データ通信を効率的に使用することである。
【課題を解決するための手段】
【００１１】
本発明による回路は請求項１に記載されている。この回路は双方向ネットワークインターフェイスを使用する。ネットワークインターフェイスは、データ項目を備えた発信メッセージの少なくとも一部に、着信メッセージからのデータ項目を受信する未報告のバッファ空間のそれぞれの量Ｒを表す情報を含む。ネットワークインターフェイスのための送信制御回路は発信メッセージの送信をトリガーする。送信制御は、送信のため利用可能なデータ項目であって、そのデータ項目のためのバッファ空間がネットワークを越えて利用可能であるデータ項目の個数Ａが、典型的に複数個（＞１）のデータ項目に設定される閾値を超えるまで、送信を延期する。しかし、送信制御回路は、特定の１台のプロセッシング回路に対するバッファ記憶回路内の未報告の利用可能なバッファ空間の量Ｒの増加に応じて、閾値を低下させるか、または、閾値を完全に抑える。よって、一方で、帯域幅使用は、データおよびリターンデータのためのクレジットの送信の組み合わせと、閾値の使用とによって削減される。他方で、未報告のクレジットまたはデータによる遅延は、未報告のクレジットの量が増加するときに、閾値を低下させることにより削減され、および／または、未報告のクレジットの量が閾値を超えるときに閾値を抑えることにより（すなわち、もはや送信を延期しないことにより）削減される。好ましくは、閾値と、この閾値が下げられる条件はプログラマブルである。
【００１２】
さらなる一実施形態では、送信制御回路はフラッシュコマンドをサポートする。フラッシュコマンドに応答して、プロセッシング回路が既に利用できるようにした送信されていないデータ項目のカウントＢがサンプリングされる。１個以上の送信メッセージの送信は、個数Ａが閾値を超えるまで待機することなく、および／または、未報告の利用可能なバッファ空間の量Ｒが閾値を低下若しくは抑えるまで待機することなく、少なくともＢ個のデータ項目が送信されるまでトリガーされる。
【００１３】
閾値は、メッセージの送信後に時間が経過すると共に、効率的に低下させられる。送信制御回路は、たとえば、個数Ａが閾値を超えるならば、および／または、量Ｒがさらなる閾値を超えるならば、送信をトリガーする。これは簡単な方法で検出される。別の実施形態では、送信は、個数Ａと量Ｒの重み付き和がさらなる閾値を超えるならば、トリガーされる。
【００１４】
本発明のこれらの目的および有利な態様とその他の目的および有利な態様は添付図面を使用して詳細に記載される。
【発明を実施するための最良の形態】
【００１５】
図１は、幾台かのプロセッシング回路１０と、通信ネットワーク１２と、ネットワークインターフェイス回路１４とを含む電子回路を表す。プロセッシング回路１０はネットワークインターフェイス回路１４を介してネットワーク１２に接続される。通信ネットワーク１２は、（一例として８台が表されている）種々のプロセッシング回路１０のための複数個の端子を有するが、簡略化のために２台の接続されたプロセッシング回路１０だけが表されている。通信ネットワーク１２はどのようなタイプでも構わない。たとえば、通信ネットワークは、クロスバースイッチ、リピータなどを含む。特に、種々のメッセージがネットワーク１２を介して同時に伝達され得るので、メッセージはネットワーク１２内で互いに交差する。これは高い処理速度を可能にさせる。
【００１６】
図２は、双方向ネットワークインターフェイス回路１４の一実施例を表す。この実施例では、双方向ネットワークインターフェイス回路１４は、ＦＩＦＯ（先入れ先出し）出力バッファ２０と、送信制御回路２２と、送信マルチプレクサ２４と、送信クレジットレジスタユニット２５と、受信デマルチプレクサ２６と、ＦＩＦＯ入力バッファ２７と、受信制御回路２８と、受信クレジットレジスタユニット２９とを含む。プロセッシング回路１０の出力はＦＩＦＯ出力バッファ２０の入力に接続される。送信制御回路２２は、ＦＩＦＯ出力バッファ２０の制御入力および出力と、送信マルチプレクサ２４の制御入力と、送信クレジットレジスタユニット２５と、受信クレジットユニット２９とに接続される。送信マルチプレクサ２４の入力は、送信制御回路２２およびＦＩＦＯ出力バッファ２０に接続される。
【００１７】
受信デマルチプレクサ２６は、受信制御回路２８に接続された出力およびＦＩＦＯ入力バッファ２７に接続された出力を有する。ＦＩＦＯ入力バッファ２７はプロセッシング回路１０の入力に接続された出力を有する。受信制御回路２８は、ＦＩＦＯ入力バッファ２７、受信クレジットレジスタユニット２９、および、受信デマルチプレクサ２６の制御入力に接続される。動作中に、データプロセッシング回路１０は、たとえば、１６、３２または６４ビットのワードのような連続したデータ項目を生成する。ネットワークインターフェイス回路１４は、通信ネットワーク１２を介して、メッセージ内のデータ項目を他のデータプロセッシング回路へ送信する。他のデータプロセッシングユニットはメッセージを受信し、さらなる処理のためそのデータ項目を使用する。データプロセッシング回路１０はデータ項目をＦＩＦＯ出力バッファ２０に書き込む。（ＦＩＦＯ出力バッファ２０が一杯であるかどうかをプロセッシング回路１０へ知らせる）従来型のＦＩＦＯバッファインターフェイスは、ＦＩＦＯ出力バッファ２０が一杯であるときにプロセッシング回路１０が書き込むことを防止するため使用される。
【００１８】
ある時間の経過後、送信制御回路２２はネットワーク１２を介していくつかのデータ項目を含むメッセージの送信を開始する。この場合、送信制御回路２２はヘッダを生成し、送信マルチプレクサ２４にそのヘッダをネットワーク１２へ出力させる。ヘッダは、同期シンボル、宛先アドレス、メッセージ長符号、および、クレジット情報のフィールドを収容する。次に、送信制御回路２２は、データ項目を送信マルチプレクサ２４へ出力するためＦＩＦＯ出力バッファ２０を制御し、そのデータをネットワーク１２へ出力するため送信マルチプレクサ２４を制御する。メッセージの最後に、送信制御回路は、ストップシンボル、および、オプション的な誤り訂正データを送信する（データ項目の個数はヘッダ内に指定された長さに対応するが、この長さはストップシンボルが使用されるときに省略され、逆もまた同様であり、ストップシンボルの利点は、メッセージが送信されるときに出力バッファ２０に到着するデータがメッセージに付加され得ることである。）。結果として得られるメッセージは、たとえば、以下の内容を有する。
【００１９】
メッセージ＝ヘッダ、データ項目、データ項目、データ項目
（データ項目全体の生成、伝送および消費を使用する本発明の一実施形態が記載されているが、本発明から逸脱することなく、たとえば、最後のデータ項目の部分が連続するメッセージに広がって伝送され、または、種々のプロセッシングユニットのデータ項目粒度が異なることがあり、その結果、１台のプロセッシング回路に対するデータ項目（たとえば、６４ビットワード）は、別のプロセッシング回路に対する２個以上のデータ項目（たとえば、４個の１６ビットワード）であることに注意すべきである。
【００２０】
メッセージが受信され次第、受信デマルチプレクサ２６は、最初に、ヘッダを受信制御回路２８へ送り出し、受信制御回路は、次に、受信デマルチプレクサ２６にそのメッセージからのデータ項目をＦＩＦＯ入力バッファ２７へ送り出させ、ＦＩＦＯ入力バッファ２７にそのデータ項目を受信させる。プロセッシング回路１０は、ＦＩＦＯ入力バッファ２７からデータ項目を連続して読み出す。（ＦＩＦＯバッファが空であるかどうかをプロセッシング回路１０に知らせる）従来型のＦＩＦＯバッファインターフェイスは、ＦＩＦＯ入力バッファ２７が空であるときに読み出しを防止するため、ＦＩＦＯ入力バッファ２７とプロセッシング回路１０との間で使用される。
【００２１】
特定の送信ネットワークインターフェイス回路１４の送信クレジットレジスタユニット２５は、どの程度の空きバッファ空間がメッセージの送信先である別の受信ネットワークインターフェイス回路１４のＦＩＦＯ入力バッファ２７内で少なくとも利用可能であるかを表す数Ｔ（クレジットの量とも称される）を記憶する。特定の送信ネットワークインターフェイス回路１４の受信クレジットレジスタユニット２９は、どの程度の未報告の空きバッファ空間が特定の送信ネットワークインターフェイス回路１４のＦＩＦＯ入力バッファ２７内で利用可能であるかを表す数Ｒを記憶する。
【００２２】
送信制御回路２２は、送信されたメッセージ内のデータの量Ｌを制限するので、送信クレジットレジスタユニット２５によって示された利用可能な空きバッファ空間Ｔより多くのデータがＦＩＦＯ出力バッファ２０からメッセージに出力されることがない。メッセージが送信されるとき、送信制御回路２２は、送信クレジットレジスタユニット２５内のクレジットの量Ｔを送信されたデータの量Ｌに応じて低下させる。
【００２３】
送信制御回路２２は、ＦＩＦＯ入力バッファ２７内の未報告の空き空間の利用可能性を報告するためにクレジット情報Ｒをヘッダに収容する。特定の送信ネットワークインターフェイス回路１４の受信クレジットレジスタユニット２９は、どの程度の未報告の空きバッファ空間がネットワークインターフェイス回路１４のＦＩＦＯ出力バッファ２７内で利用可能であるかを表す数Ｒを記憶する。プロセッシング回路１０がＦＩＦＯ入力バッファ２７からデータ項目を読み出す毎に、受信クレジットレジスタユニット２９は未報告の空きバッファ空間の数Ｒを増加させる。送信制御回路２２はメッセージを送信するとき、受信クレジットレジスタユニット２９から未報告の空きバッファ空間の量Ｒを読み出し、この量Ｒを表す数をメッセージのヘッダに挿入し、受信クレジットレジスタユニット２９を受信クレジットレジスタユニット２９内でゼロ量Ｒ＝０にリセットする。本発明から逸脱することなく、より少ない量Ｐ＜Ｒが報告され、その場合に、受信クレジットレジスタユニット２９内で表される量はＰによって低下される。
【００２４】
メッセージを受信し次第、受信制御回路２８はヘッダから未報告の空き空間の量Ｒ’を読み出し、送信クレジットレジスタユニット２５にヘッダからの未報告の空き空間の量Ｒ’によって利用可能な空きバッファ空間の量Ｔを増加させる。
【００２５】
メッセージは選択された時点で送信される。送信制御回路２２は、メッセージがＦＩＦＯ出力バッファ２０から送信されるデータの量Ａと、受信クレジットレジスタユニット２９によって示された未報告の利用可能な空き空間の量Ｒとに基づいて送信されるときを決定する。送信制御回路２２は、データの量Ａおよび／または未報告の利用可能な空き空間の量Ｒの一方または両方が十分に上昇したとき、メッセージを送信する。一実施形態では、メッセージを送信する規準は、
Ａ＞Ｍ１  または  Ｒ＞Ｍ２
である。
【００２６】
ここで、Ｍ１およびＭ２は、好ましくは、プログラマブルな閾値であり、その結果として、インターフェイスの動作は動作コンテキストに適合される。ＦＩＦＯ出力バッファ２０から送信されるデータの量Ａは、たとえば、ＦＩＦＯ出力バッファ２０内のデータの量Ｂと、送信クレジットレジスタユニット２５からのクレジットの量Ｔのうちの最も小さいものとして決定される。しかし、メッセージを送信するため、たとえば、
αＡ＋Ｂ＞Ｍ  式中、αはある正の重み係数
または
（Ｂ＞Ｍ３かつＴ＞Ｍ４）、または、Ｒ＞Ｍ５
のようなその他の規準が可能であることが認められる。
【００２７】
閾値Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５は、好ましくは、プログラマブルであるので、インターフェイスの動作は動作コンテキストに適合させられ得る。
【００２８】
送信されたメッセージ内で、このようなデータは、（ａ）利用可能なものとして送信され、および、（ｂ）クレジットＴの量に応じて受信される。メッセージを送信するための決定は、少なくとも所定の量のデータが利用可能であること、すなわち、少なくとも所定の量のクレジットの利用可能性を必ずしも必要としないことに注意すべきである。未報告の利用可能な空き空間の量Ｒが十分に増大するとき、メッセージは、たとえば、メッセージ内のデータの量がゼロであるか、または、非常に少ない場合であっても送信される。
【００２９】
このタイプの規準において、一方で、１個以上の閾値がネットワーク帯域幅の最小限度の使用を保証するために使用され、他方で、データとクレジットのいずれか一つに対する閾値が棄却されるので、その結果として、少なくとも未報告の空き空間の過剰な量Ｒは累積しないことが認められる。ネットワーク帯域幅使用は、正常なデータが送信されるときにクレジット情報Ｒができる限り報告されるので削減される。ネットワーク帯域幅使用は、データが累積され、その結果として、ＦＩＦＯ出力バッファ２０からの多数のデータ項目が好ましくは１個のメッセージに結合され、よって、ヘッダのオーバーヘッドが分担されるので、さらに削減される。帯域幅使用を削減するため、閾値Ｍ１（または、閾値Ｍ３およびＭ４）は、好ましくは、受信データプロセッシング回路１０にデータを待機させることなく、できるだけ高い値に設定される。利用可能なデータが不足しても、十分な未報告の空きバッファ空間Ｒが利用可能であるならば、メッセージはそれにもかかわらず送信される。帯域幅使用を削減するため、閾値Ｍ２（または、Ｍ５）は、好ましくは、受信データプロセッシング回路１０にバッファ空間を待たせることなく、できる限り高い値に設定される。
【００３０】
ネットワークは、メッセージに固定長、または、最大長を要求することがある。この場合、その長さは閾値Ｍ１（または、閾値Ｍ３およびＭ４）として使用される。固定長メッセージの場合、未報告の空きバッファ空間Ｒが閾値を超えたためにメッセージが送信されるとき、利用できる送信可能なデータＡが不足するならば、メッセージ内に使用されないデータのための空間を残すことが必要である。
【００３１】
さらなる一実施形態では、時間がメッセージを送信するために付加的なトリガーとして使用される。たとえば、送信制御回路２２はタイマーを含み、データが存在するか（Ａ＞０）、または、未報告の空きバッファ空間が存在し（Ｒ＞０）、所定の時間に亘ってメッセージが送信されていないならば、メッセージを送信するようにアレンジされる。別の実施形態の送信制御回路２２では、閾値（Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５および／またはＭ）は、直前のメッセージが送信された後、時間の経過と共に下げられる。別の実施形態では、未報告の空き空間および／または送信されていないデータは、その未報告の空き空間および／または送信されていないデータが利用可能になり始めてから経過した時間間隔に応じて、メッセージを送信する規準においてより重い加重がかけられる。たとえば、この規準は、
ｍｉｎ（Ｔ，Σｉｗ（ｔ−ｔｉ））＞Ｍ１  または  ΣｊＲｊｗ’（ｔ−ｔｊ）＞Ｍ２
である。
【００３２】
式中、ｉは異なるデータ項目を指定し、ｊはバッファ空間の異なる領域を指定し、ｔ−ｔｉはデータ項目ｉが書き込まれてからの経過時間を指定し、ｔ−ｔｊはサイズＲｊの領域ｊが利用可能になり始めてからの経過時間を指定し、ｗ（）およびｗ’（）は経過時間の増加と共に増加する重み関数である。同様に、新しいデータ項目が到着するたびに、β（ｔｉ−ｔｉ−１）＞１が時間と共に増大する場合に、新しい累積加重Ｗｎ＝ｗ＋β（ｔｉ−ｔｉ−１）Ｗｎ−１を計算し、バッファ空間に対して同様の重みＷ’ｎ＝Ｒｊ＋β（ｔｊ−ｔｊ−１）Ｗｎ−１を計算することにより、累積加重が定義される。この場合、規準は、ｍｉｎ（Ｔ，Ｗ）＞Ｍ１でもＷ’＞Ｍ２でもよい。代案として、クレジット量は時間の関数として増加的に加重される。別の代案として、重みは増加する（または、対応して、閾値は最後に送信されたメッセージからの時間の関数として減少する）。
【００３３】
別の実施形態では、送信制御回路２２は、プロセッシング回路１０からの「フレッシュ」コマンドに応答するようにアレンジされる。送信制御回路２２がフラッシュコマンドを検出するとき、送信制御回路は、ＦＩＦＯ出力バッファ２０にあるデータの量に関する情報をサンプリングする。次に、送信制御回路２２は、メッセージを送信する規準を棄却し、クレジットＴ＞０が利用可能であるとき、少なくともサンプリングされた量のデータがメッセージで送信されるまで、その都度メッセージ（または、複数のメッセージ）を送信する。続いて、送信制御回路２２はメッセージを送信する元の規準に戻る。
【００３４】
本発明は、プロセッシング回路１０のペアの間の通信について例示されているが、プロセッシング回路１０はどれでもネットワーク１２を介して２台以上の他のプロセッシング回路１０と通信することが認められる。この場合、プロセッシング回路１０は複数のネットワークインターフェイスを介してネットワーク１２に接続される。種々のネットワークインターフェイスが、たとえば、多重形式で、ネットワーク１２への同じコネクションを共有する。当然ながら、種々のネットワークインターフェイスは、マルチプレクサ２４、送信制御回路２２などのハードウェアを共有してもよいが、別個のクレジット数Ｔが異なるネットワークインターフェイスに対して維持されるべきである。
【００３５】
一実施形態では、複数のＦＩＦＯ出力バッファおよび／またはＦＩＦＯ入力バッファが、異なるデータストリームに対し、並列に使用される。この場合、ＦＩＦＯ出力バッファがデータを供給するためどのような順番で使用されるかを選択するために調停スキームが使用される。ラウンドロビンスキーム、または、優先順位ベースのスキームのような適当なスキームが使用される。
【００３６】
好ましくは、未報告の空き空間を表す別個の数がさらに維持されるべきであるが、オプション的に種々のネットワークインターフェイス１４が同じプールから未報告の空き空間を取り出し、その結果、単一の数Ｒが使用される。この場合、各ネットワークインターフェイス１４は、たとえば、数Ｒの所定の割合を報告し、たとえば、一方のインターフェイスが４０％を報告し、もう一方が６０％を報告する。当然ながら、プロセッシング回路１０の多数のペアはネットワーク１２を介して並列に通信する。ネットワークインターフェイスは、あるプロセッシング回路のネットワークインターフェイスとの通信から、別のプロセッシング回路のネットワークインターフェイスとの通信に切り替わる。この場合、量ＲおよびＴは、当然ながら、好ましくは、最初にリセットされる。
【００３７】
本発明は具体的な実施形態を使用して説明されているが、多数の代替的な実施形態が可能であることが認められるべきである。たとえば、送信制御回路２２および受信制御回路２８は一つの回路として実施され、レジスタユニット２５、２９は、送信制御回路２２および受信制御回路２８からアクセスすることができるメモリロケーションとして実施される。代案として、レジスタユニット２５、２９は、レジスタと、加算器のようなレジスタの内容を自律的に更新する回路とを含む。
【００３８】
別の実施形態では、ネットワーク１２は最大長をメッセージに要求し、この場合、メッセージは、クレジットがＴであるＦＩＦＯ出力バッファ２０からのあらゆる利用可能なデータ項目を収容しない。この場合、好ましくは、最大許容個数のデータ項目がメッセージに収容される。これは送信可能なデータ項目の個数Ａを削減し、その後、次のメッセージが送信されるべきであるかどうかを決定するために規準が再び適用される。代案として、第１のメッセージを送信することが一旦決定されると、規準をテストすることなく、一連のメッセージが全部でＡ個のデータ項目を送信するために送信される。しかし、これは帯域幅使用を増加させる。
【００３９】
同様に、利用可能な空きバッファ空間Ｒを報告するメッセージ内のフィールドの長さは、すべての利用可能な空きバッファ空間を報告することを不可能にさせる。この場合、好ましくは、最大許容量の空きバッファ空間がメッセージ内で報告され、Ｒは受信クレジットレジスタユニット２９内でそれに応じて減少される。これは未報告のクレジットの量Ｒを削減し、その後、次のメッセージが送信されるべきであるかどうかを決定するために規準が再び適用される。代案として、第１のメッセージを送信することが一旦決定されると、規準をテストすることなく、一連のメッセージがすべてのクレジットを報告するために送信される。しかし、これは帯域幅使用を増加させる。
【００４０】
別の実施例として、ＦＩＦＯ入力バッファ２０およびＦＩＦＯ出力バッファ２７の代わりに、その他のタイプのメモリがデータを記憶するために使用される。たとえば、バッファ２０、２７のいずれか一方、または、両方は、データプロセッシング回路によってアドレス指定されるメモリ、または、たとえば、送信されるべきデータと、受信データ並びにその他のデータの両方のためのロケーションを含む大規模メモリの一部分であるメモリによって置き換えられる。
【００４１】
この場合、送信要求のキューが維持され、そのキューには、データプロセッシング回路１０が送信用の完全なデータ項目のためのデータは既に書き込まれていることを知らせるときに要求が付加され、要求は送信制御回路２２がデータ項目からのデータをメッセージで送信させたときに取り除かれる。同様に、受信レポートのキューが維持され、そのキューには、メッセージからのデータ項目がメモリに書き込まれたときにレポートが付加され、データプロセッシング回路１０がデータ項目はもうそれ以上必要ではないことを知らせるときに、そのキューからレポートが削除される。もしそうであるならば、報告されない空きバッファ空間Ｒは増大される。
【００４２】
しかし、ＦＩＦＯ出力バッファ２０および／または入力バッファ２７の使用は、設計をかなり簡素化し、ネットワークインターフェイスのため必要とされる回路面積は小さくなることが認められる。
【００４３】
さらに、本発明は、固定サイズのバッファに限定されないし、メモリ内の固定ロケーションにあるバッファにさえ限定されない。プロセッシング回路１０は、受信若しくは送信のいずれかのため、または、両方のためバッファ空間を増大または減少させることを決定する。当然ながら、未報告の空き空間の量Ｒはそれに応じて変更されるので、負になることさえある（実際の空間の減少は、データプロセッシング回路１０による引き続く空間の解放によってＲが非負の値に戻るまで、量Ｒの更新に関して延期される。）。
【００４４】
同様に、プロセッシング回路１０は、新たに利用できるようになるバッファ空間のアドレス（および、オプション的に長さ）を供給することにより、その都度、バッファ空間の利用可能性をネットワークインターフェイス１４に知らせる。供給されたアドレスは、もはや必要とされない前のメッセージからのデータのため使用されるアドレスであるかもしれないが、同様に他のアドレスかもしれない。よって、バッファは特定のメモリ領域に拘束される必要がない。ネットワークインターフェイス１４は、着信メッセージからのデータをメモリに書き込むため、供給されたアドレスを使用する。この場合、未報告の空き空間の量Ｒは示唆されたバッファ空間に応じてその都度増加される。
【００４５】
実際には、送信前にデータ項目を記憶するために、ＦＩＦＯ出力バッファ２０または等価的な記憶空間を準備することさえ必要ではない。別の実施形態では、データプロセッシング回路１０は、メッセージが組み立てられるとき、送信制御回路２２からのコマンドによってデータ項目を生成するためにアレンジされる。この場合、データプロセッシング回路１０は、このようなコマンドに応答して、ある特定の個数のデータ項目を生成するために準備完了だけを報告する。
【００４６】
これらの実施形態のそれぞれにおいて、送信制御回路は、もしあれば、データを含むメッセージと、もしあれば、未報告の空きバッファ空間が送信されるべきかどうかを決定するために、送信可能なデータの量と未報告の空き空間の量Ｒの両方に関する情報を使用して、メッセージの送信をトリガーする。
【図面の簡単な説明】
【００４７】
【図１】電子回路を表す図である。
【図２】ネットワークインターフェイスを表す図である。
【符号の説明】
【００４８】
１０  プロセッシング回路
１２  通信ネットワーク
１４  ネットワークインターフェイス回路
２０  ＦＩＦＯ出力バッファ
２２  送信制御回路
２４  送信マルチプレクサ
２５  送信クレジットレジスタユニット
２６  受信デマルチプレクサ
２７  ＦＩＦＯ入力バッファ
２８  受信制御回路
２９  受信デマルチプレクサ
【図１】
2007504698.tif 000003
【図２】
2007504698.tif 000004
【国際調査報告】
2007504698.tif 000005
2007504698.tif 000006