JP4489116B2 - リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置 - Google Patents

リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置 Download PDF

Info

Publication number
JP4489116B2
JP4489116B2 JP2007515121A JP2007515121A JP4489116B2 JP 4489116 B2 JP4489116 B2 JP 4489116B2 JP 2007515121 A JP2007515121 A JP 2007515121A JP 2007515121 A JP2007515121 A JP 2007515121A JP 4489116 B2 JP4489116 B2 JP 4489116B2
Authority
JP
Japan
Prior art keywords
packet
rejected
node
available
destination node
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
Application number
JP2007515121A
Other languages
English (en)
Other versions
JP2008500773A (ja
Inventor
マッティーナ,マシュー
クリソス,ジョージ
フェリックス,スティーヴン
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2008500773A publication Critical patent/JP2008500773A/ja
Application granted granted Critical
Publication of JP4489116B2 publication Critical patent/JP4489116B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/43Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

発明の詳細な説明
[発明の技術分野]
本発明の実施例は、一般にネットワークにおけるデータフロー制御に関し、より詳細には、リングネットワークにおける同期的パケットフロー制御に関する。
[背景]
コンピュータネットワークにおけるフロー制御機能は、ソースノードからデスティネーションノードへのパケットの転送を規定する。典型的なフロー制御機構は、ネガティブ−アクノリッジメント(NACK)/リトライ、ドロップ/ソース−タイムアウト/リトライ、クレジット/デビット及びネットワークバッファリングを含む。一般に、ソースノードは、パケットをデスティネーションノードに送信し、デスティネーションノードは、処理前にソースノードから受信したパケットを保持するため、有限量の「イングレスバッファリング(ingress buffering)」を有する。
NACK/リトライフロー制御機構は、パケットがデスティネーションノードに到着し、デスティネーションノードが入力パケットのため利用可能なバッファリングがない場合、当該パケットをドロップし、NACKメッセージがデスティネーションノードからソースノードに送り返される。その後、ソースノードは、以降にパケットの送信をリトライするであろう。
しかしながら、NACK/リトライの問題点は、ソースノードがACK(アクノリッジメント)又はNACKメッセージを受信するまで、デスティネーションノードがパケットを保持するのに利用可能なバッファを有しているか否かわからないという理由のため、送信されたパケットに対するバッファリングを提供しなければならないということである。そうでない場合には、デスティネーションノードがパケットをドロップし、ソースノードがパケットを自らのバッファに保持しない場合、パケットは消失する。
より大きな問題点は、NACKされたパケットを再送するためソースノードにおいて「リトライ」フローによりもたらされる複雑さである。
さらなる他の問題点は、NACK/リトライを利用した任意の構成は、NACKメッセージが送信されたパケットによりネットワークが混雑しているときでも、ネットワークを介しソースノードに送信可能であることを保証しなければならないということである。さらに、NACKメッセージ自体は、そうでない場合にパケットに対して利用可能な貴重な帯域幅を使用してしまう。
ドロップ/ソース−タイムアウト/リトライフロー機構は、NACK/リトライと同様である。送信されたパケットは、ドロップされる可能性があり、デスティネーションノードがバッファリングを有していないとき、レスポンスがソースノードに送り返される。さらに、ドロップ/ソース−タイムアウト/リトライでは、送信されるパケットは、ネットワーク混雑が大きくなりすぎるときは常に、送信されたパケットはドロップされる可能性がある。ソースノードは、ある一定の期間又はタイムアウト後、デスティネーションノードからレスポンスを受信しない場合には、パケットの送信を自動的にリトライするであろう。
NACK/リトライの問題点に加えて、ドロップ/ソース−タイムアウト/リトライは、それのタイムアウトに関する問題点を有する。タイムアウトは、長すぎるか、あるいは短すぎるかもしれない。タイムアウトが長すぎる場合、デスティネーションノードがパケットをドロップすると、デスティネーションノードは、再送されたパケットを受信するため長く待機しすぎるに違いなく、これにより、システム遅延が増大する。他方、タイムアウトが短すぎる場合、ソースノードが不必要にパケットを2回送信する可能性が増大する。また、システムは、同一のパケットの2つ(又はそれ以上)のインスタンスを処理することが可能でなければならず、混雑の増大と共に複雑さ及びハードウェアコストの増大を招く。
クレジット/デビットフロー制御機構では、ソースノードは、「クレジット(credit)」及び「デビット(debit)」を利用することによって、デスティネーションノードにおいて利用可能なバッファ数を記録する。ソースノードは、パケットを受け付けるためデスティネーションノードにおいて利用可能なフリーなバッファが存在することを知っている場合に限って、パケットをデスティネーションノードに送信するであろう。ソースノードがパケットをデスティネーションノードに送信するとき、ソースノードは、デスティネーションノードが有する利用可能なフリーなバッファ数のローカルカウントを「デビット(デクリメント)」する。デスティネーションノードがそれの入力バッファからパケットを削除すると、デスティネーションノードは、ソースノードに「クレジット」メッセージを送信し、ソースノードは、デスティネーションノードが有する利用可能なフリーなバッファ数のローカルカウントを「クレジット(インクリメント)」する。
クレジット/デビット機構は、n個のソースノードへのデスティネーションノードの入力バッファの固定された分割を要求する。デスティネーションノードがトータルでB個の入力バッファを有する場合、それは、各ソースノードにB/n個のバッファエントリを割り当てるかもしれない。これは、すべてのソースノードからデスティネーションノードへのトラフィックが正確に一様である場合には、良好に機能する。しかしながら、一様なトラフィックからの乖離は、B個のバッファの利用性を非効率にするであろう。この構成の退化した形態は、すべての可能なパケットに対してすべてのデスティネーションノードにおける十分なバッファリングを提供することである。言い換えると、n個のソースノードのそれぞれが転送中のP個のパケットを有することが可能である場合、各デスティネーションノードは、P*n個のバッファエントリを有する必要がある。この機構の問題点は、バッファ利用性が通常は大変低いものであるため、非効率なエリアハングリー(area−hungry)な構成を招くということである。
ネットワークバッファリングフロー機構では、ネットワーク自体は、デスティネーションノードにおいて受け付けることができないパケットに対するバッファリングを提供する。ネットワークは、パケットがネットワークに「ストール(stall)」することを可能にし、ストールされたパケットの後方のネットワーク上で転送されるパケットがこのストールされたパケットをブロックしてしまう。あるいは、特別なルートアラウンド(route−around)ロジック及びバッファリングが、ストールされたパケットの後方のパケットが当該ストールされたパケットを追い越すことを可能にするのに利用可能である。
このタイプの構成は特定のトポロジーについては有効であるかもしれないが、それは、リングトポロジーなどの他のトポロジーにおけるパケット配信を妨げる。リングトポロジーでは、パケットは循環的なルートを転送されるため、複雑であってハードウェア集中的なルートアラウンドスキームが使用されていない場合には、ストールされたパケットの後方のパケットの配信を完全にブロックすることができる。
従って、特にリングトポロジーでは、パケット転送のための典型的なフロー制御機構の問題点を解決する必要がある。
[詳細な説明]
本発明の実施例は、バッファ処理されない同期的リングインターコネクトにおけるパケットフローの制御方法を提供する。一実施例では、本方法は、デスティネーションノードのバッファが利用可能でない場合、半導体チップのリングインターコネクト上のデスティネーションノードに到着するパケットを拒絶し、リングインターコネクト上の拒絶されたパケットにリングインターコネクトを探索し続けさせ、デスティネーションノードのバッファの1つが利用可能になる場合、デスティネーションノードへの到着に応答して拒絶されたパケットを受け付けることを含むかもしれない。他の実施例では、本方法はまた、拒絶されたパケットがリングインターコネクトを探索しているとき、当該拒絶されたパケットを追跡し、この追跡されているパケットが想定時間内にデスティネーションノードに到着し、デスティネーションノードバッファが追跡されているパケットを受け付けるのに利用可能である場合、追跡されているパケットを受け付けることを含むかもしれない。
本発明の実施例はまた、リングインターコネクトと当該リングインターコネクトに接続されるノードを含む半導体チップを提供するようにしてもよい。ここで、各ノードは、バッファが利用可能な場合には、到着するパケットを格納し、利用可能でない場合には、到着するパケットを拒絶するためのバッファを有するようにしてもよい。
本発明の実施例は、効果的には、リングインターコネクトにおけるパケットの効率的なフロー制御を提供するかもしれない。特に、これらの実施例は、NACK/リトライ及びドロップ/ソース−タイムアウト/リトライフロー制御の複雑さを回避するかもしれない。例えば、ソースノードの送信されたパケットのリトライフロー又はバッファリングは必要でない。これらの実施例はまた、ネットワークバッファリングフロー機構におけるルートアラウンドのハードウェアコンプレクシティ及びクレジット/デビットフロー機構によって求められるさらなるバッファの必要性を回避するかもしれない。これらの実施例は、チップマルチ処理に対するオンチップリングインターコネクトにおいて特に有用であるかもしれない。
図1は、本発明の実施例による双方向なリングインターコネクトに接続される複数のノードを有する半導体チップである。ノード110(1)〜110(n)は、様々なアクセスポイント又はストップにおける双方向リングインターコネクト120に接続されてもよい。パケットは、時計回り又は反時計回りによりインターコネクト120上でノード110(1)〜110(n)の間を転送されるかもしれない。
ノード110(1)〜110(n)は、プロセッサ、キャッシュバンク、メモリインタフェース、グローバルコヒーレンスエンジンインタフェース、入出力インタフェース及び半導体チップ上にある他の任意のこのようなパケット処理コンポーネントを含むかもしれない。
図1において、本発明の実施例では、ノード110(1)〜110(n)は、単一の大規模共有化キャッシュをサブセットに論理的に分割することによって、キャッシュバンクノードとして実現されてもよい。各キャッシュバンクノードは、単一のキャッシュにアドレススペースの一部を含めるようにしてもよく、当該単一のキャッシュのアドレススペースの一部に対して独立にブロックリクエスト(リード、ライト、無効化など)を提供するようにしてもよい。インターコネクト120上では、各キャッシュバンクノードは、それ自体のアクセスポイント又はストップを有するようにしてもよい。
図1において、インターコネクト120は、複数の一方向配線(図示せず)を有してもよく、ここで、一方向配線の第1セットが時計回りによりパケットを転送し、第2セットが反時計回りによりパケットを転送するようにしてもよい。一方向配線の各セットは、特定用途向け(アドレスコマンドの送信など)又は汎用向け(複数のパケットタイプ(アドレスリクエスト、データ、キャッシュコヒーレンスプロトコルメッセージなど)のサポートなど)であってもよい。あるいは、各一方向配線セットは、単一のパケットタイプを転送するよう指定されていてもよい。
あるいは、図1において、インターコネクト120は、双方向にパケットを転送可能な複数の双方向配線を有するようにしてもよい。本実施例では、半導体チップは、特定のトランザクション中にパケットを転送するため、所望の方向に各配線を切り替えるロジックをスイッチすることを含むかもしれない。
インターコネクト120は、各種レートにおいてパケットを転送するようにしてもよい。例えば、インターコネクト120は、クロックサイクル毎に1以上のノードのレートにより、又は2以上のクロックサイクル毎に1つのノードのレートによりパケットを転送するようにしてもよい。トラフィック量、クロックレート、ノード間の距離など、多くの要因が転送レートを決定するかもしれない。一般に、ノードは、インターコネクト120上及びノードにおける何れかの既存のパケットがノードを通過するまで、パケットをインターコネクト210に投入するのを待機する。
図2は、本発明の実施例による複数のリングインターコネクトに接続される複数のノードを有する半導体チップである。ノード210(1)〜210(n)は、各アクセスポイント又はストップにおいてリングインターコネクト220(1)〜220(m)に接続されてもよい。各ノードは、パケットを他のノードに転送するリングインターコネクト220(1)〜220(m)の何れかを選択するようにしてもよい。
一実施例では、図2のすべてのインターコネクトは一方向であってもよく、一部のインターコネクトは時計回りにのみパケットを転送し、他のインターコネクトは反時計回りにのみパケットを転送する。
他の実施例では、図2のいくつかのインターコネクトは一方向であり、他方は双方向であってもよい。本実施例では、一方向インターコネクトの一部は時計回りにのみパケットを転送し、他のものは反時計回りにのみパケットを転送するかもしれない。双方向インターコネクトは、図1の双方向インターコネクトの動作と整合して、双方向にパケットを転送するかもしれない。
図3は、本発明の実施例によるフロー制御方法のフローチャートである。図3において、非バッファ同期リングインターコネクトなどのリングインターコネクト上のパケットは、パケットがリングインターコネクト上にあると、バッファリング又はストーリングが存在しないように、リングインターコネクトを上をすべてのサイクルで進捗する。リングインターコネクトは、リングインターコネクトをパケットが進捗するリングスロット系列としてみなされるかもしれない。
一実施例によると、パケットがリングインターコネクト上のリングスロットのデスティネーションノードに到着すると、デスティネーションノードは、パケットを受信するのに利用可能なバッファがデスティネーションノードに存在するか判断するようにしてもよい(310)。利用可能なバッファが存在する場合、デスティネーションノードは、利用可能なバッファに当該パケットを受け付け(320)、当該パケットをリングスロットから削除する。利用可能なバッファが存在しない場合、デスティネーションノードは、当該パケットを拒絶し(330)、拒絶されたパケットがデスティネーションノードに戻るまでリングインターコネクトを探索し続けるため、拒絶されたパケットをリングインターコネクト上のリングスロットに放置し、これにより、デスティネーションノードは、当該ノードに利用可能なバッファが存在するか再び判断し、本方法が上述のように継続されるようにしてもよい。
拒絶されたパケットがリングインターコネクトを探索している間、デスティネーションノードのバッファが利用可能になるかもしれない。この場合、拒絶されたパケットが再びデスティネーションノードに到着すると、デスティネーションノードは、当該パケットを受け付けるようにしてもよい(320)。他方、拒絶されたパケットがデスティネーションノードに到着し、バッファが依然として利用可能でない場合、デスティネーションノードは、当該パケットを再び拒絶し(330)、バッファがデスティネーションノードにおいて利用可能になるまで、リングインターコネクトを探索するように、リングインターコネクト上に2回拒絶されたパケットを放置する。
図4〜7は、本発明の実施例によるリングインターコネクトにおける図3のフロー制御方法の処理を示す。本例では、リングインターコネクト430は、リングインターコネクト430上でパケットを転送するため、リングスロット420(1)〜420(8)を有するようにしてもよい。各リングスロットは、クロックサイクル中にリングスロットの転送を同期させるため、システムクロック信号ライン440に接続されるようにしてもよい。リングインターコネクト430は、ノード410(1)〜410(8)に接続されてもよい。各ノードは、当該ノードがリングスロット420(1)〜420(8)に対してパケットを投入又は受け付けることを可能にするリングインターコネクト430上にアクセスポイント又はストップを有するかもしれない。各ノードは、隣接するリングスロットにおいてパケットを投入又は受け付けるようにしてもよい。この例では、リングインターコネクト430は、時計回りにパケットを転送するため、1つの一方向のリングインターコネクトであってもよい。しかしながら、本発明の実施例は、特定のタイプのリングインターコネクト又はパケット転送方向に限定されるものではない。
図4において、3つのパケットが、クロックサイクルCにおいてリングインターコネクト430上にあるかもしれない。左から始めて、パケット1は、ノード410(3)と指定されたデスティネーションを有するリングスロット420(1)にあるかもしれない。パケット2は、ノード410(8)に指定されたデスティネーションを有するリングスロット420(2)にあるかもしれない。パケット3は、ノード410(5)に指定されたデスティネーションを有するリングスロット420(4)にあるかもしれない。リングインターコネクトの残りのリングスロットは、占有されてもよいし、占有されていなくてもよい。しかしながら、説明の簡単化のため、上述したリングスロットのみが占有されている。
図5は、次のクロックサイクルC+1におけるリングインターコネクト430の状態を示す。各パケットは、クロックサイクルCの間にそれのリングスロットにおいて時計回りに進捗した。パケット3は、それのデスティネーションノードであるノード410(5)に到達した。従って、本発明の実施例によると、ノード410(5)が、それが利用可能なバッファを有すると判断すると(310)、ノード410(5)は、次のクロックサイクルにおいてパケット3をそれのバッファに受け付けるようにしてもよい(320)。そうでない場合、ノード410(5)は、それが利用可能なバッファを有していないと判断すると(310)、パケット3は、リングインターコネクト430上を進捗するため拒絶されたパケット3であるかもしれない。
図6は、第3クロックサイクルC+2におけるリングインターコネクト430の状態を示す。ノード410(5)が利用可能なバッファを有するため、パケット3はノード410(5)に受け付けられている。残りのパケットは、それらのリングスロットにおいて時計回りに進捗している。パケット1は、それのデスティネーションノードであるノード410(3)に到着している。従って、ノード410(3)は、当該ノードが利用可能なバッファを有していると判断する場合(310)、ノード410(3)は、このクロックサイクルC+2の間にパケット1をそれのバッファに受け付けるようにしてもよい(320)。そうでない場合、ノード410(3)は、それが利用可能なバッファを有していないと判断する場合(310)、パケット1は、リングインターコネクト430を進捗するよう拒絶されてもよい(330)。
図7は、第4クロックサイクルC+3におけるリングインターコネクト430の状態を示す。この場合、ノード410(3)は、それが利用可能なバッファを有していないと判断した(310)。この結果、パケット1は拒絶され(330)、リングインターコネクト430上に残された。パケット1は、ノード410(3)を通過してそれのリングスロットにおいて進捗し、パケット1がノード410(3)に戻るとき、パケット1を受け付けるため(320)、バッファがノード410(3)において利用可能になるまで、リングインターコネクト430を探索し続けるようにしてもよい。
本例は説明のためのものであって、当該構成を図示されたものに限定するものではないということは理解されるであろう。リングインターコネクトは、一方向又は双方向にパケットを転送可能な1以上のリング構造を有するかもしれない。さらに、リングスロットの個数は、ノードの個数に等しくなる必要はない。複数のリングスロットが、任意の時点において2つのノード間に存在するようにしてもよい。その逆に、複数のノードが、任意の時点において2つのリングスロット間に存在するようにしてもよい。パケット転送レートは、クロックサイクル毎に1つのノードに限定されるものではなく、その用途に応じて、複数のクロックサイクル毎に1つのノード又はクロックサイクル毎に複数のノードを有するようにしてもよい。
さらに、パケットの受付又は拒絶の条件はバッファの利用性に限定されるものではなく、パケットを拒絶する任意の条件を有するようにしてもよいということは理解されるであろう。他の実施例では、例えば、デスティネーションノードは、nがランダムに生成された数である場合、到着するn番目のパケット毎を拒絶するようにしてもよい。
図3において、バッファが利用可能になると(すなわち、スタベーション(starvation))、デスティネーションノードにより近接した他のパケットを受け付けしながら、拒絶されたパケットがリングインターコネクトを無限に探索することを回避するため、さらなる制御が提供されるようにしてもよい。例えば、拒絶されたパケットを追跡する方法は、デスティネーションノードにおいて利用可能なバッファが拒絶されたパケットに対してセーブされることを保証するかもしれない。
図8は、本発明の他の実施例のフロー制御方法のフローチャートである。図8において、本方法は、すべての拒絶されたパケットがタイムリーに受付されることを保証するため、非バッファ同期的リングインターコネクトなどのリングインターコネクト上で拒絶されたパケットを追跡することを有するようにしてもよい。パケットがリングインターコネクトのデスティネーションノードに到着すると、デスティネーションノードは、それがパケットを受信するのに利用可能なバッファを有しているか判断するようにしてもよい(810)。
図8において、デスティネーションノードが、それが到着したパケットのための利用可能なバッファを有していないと判断すると(810)、デスティネーションノードは、当該パケットを拒絶し(830)、インターコネクトを探索するため、拒絶されたパケットをリングインターコネクトに残す。デスティネーションノードは、パケットが現在追跡されているか判断するようにしてもよい(845)。デスティネーションノードが、パケットを現在追跡していないと判断すると(845)、デスティネーションノードは、ちょうど拒絶されたパケットを追跡するようにしてもよい(850)。そうでない場合、デスティネーションノードが、現在パケットを追跡していると判断すると(845)、デスティネーションノードは、追跡されていないリングインターコネクト上に拒絶されたパケットを残すようにしてもよい。デスティネーションノードによって利用可能な追跡機構が、以下に説明される。
デスティネーションノードは、他のパケットの到着を待機するかもしれない(855)。デスティネーションノードが、他のパケットがデスティネーションノードに到着したと判断すると、デスティネーションノードは、それが到着したパケットのために利用可能なバッファを有しているか判断するようにしてもよい(810)。
図8において、デスティネーションノードは、それが利用可能なバッファを有していると判断すると(810)、到着したパケットが現在追跡中のものであるか判断するようにしてもよい(815)。デスティネーションノードが、到着したパケットが追跡中のものであると判断すると(815)、デスティネーションノードは、追跡されているパケットを利用可能なバッファに受け付け、デスティネーションノードの次の拒絶されたパケットを、後述される追跡機構の何れかを利用して追跡するようにしてもよい(825)。デスティネーションノードは、新たに追跡されたパケット又は他のパケットの到着を待機するようにしてもよい(855)。
図8において、到着したパケットが追跡中のパケットでないと判断されると(815)、デスティネーションノードは、複数のデスティネーションノードバッファが利用可能であるか判断するようにしてもよい(835)。複数のバッファが利用可能であると判断されると(835)、追跡されていないパケットは、利用可能なバッファの1つに受け付けされ、他の利用可能なバッファが追跡されているパケットをセーブするようにしてもよい。デスティネーションノードは、追跡されているパケット又は他のパケットの到着を待機するようにしてもよい。そうでない場合、1つのみのバッファしか利用可能でないと判断されると、追跡されていないパケットは拒絶され(830)、リングインターコネクトに残され、利用可能な1つのバッファが、追跡されているパケットをセーブするようにしてもよい。
この方法は、追跡されたパケットに対して、少なくとも1つの利用可能なバッファが確保されることを保証するが、追加的なバッファが利用可能な場合には、追跡されていないパケットが受け付けられることを可能にする。また、拒絶されたパケットは、バッファスペースが限られているとき、デスティネーションノードにおける受け付けが保証されるようにしてもよい。さらに、バッファスペースが、以降に投入されるパケットについてリングインターコネクトをフリーに維持することに限定されないときには、他のパケットが受け付けられてもよい。
追跡は、リングインターコネクトを探索した後、拒絶されたパケットがデスティネーションノードに戻ることが予想されるサイクルカウントを計算することを有するかもしれない。このサイクルカウントは、パケットがリングインターコネクトを探索するためのクロックサイクル数に、デスティネーションノードがパケットを拒絶するときの実際のクロックサイクルを加えたものに等しいものであってもよい。例えば、デスティネーションノードがクロックサイクルCにおいてパケットを拒絶し、パケットがリングインターコネクトを探索するのにDクロックサイクルかかる場合、サイクルカウントはC+Dに等しくなるかもしれない。従って、バッファが利用可能である場合、デスティネーションノードは追跡されている拒絶されたパケットとして、クロックサイクルC+Dにおいて到着したパケットを受け付けるようにしてもよい。複数のバッファが利用可能である場合、デスティネーションノードは、他のクロックサイクルで到着するパケットを受け付けるようにしてもよいが、利用可能なバッファの1つがクロックサイクルC+Dにおいて到着したパケットに対して確保されることを保証するようにしてもよい。
あるいは、追跡は、デスティネーションノードの識別番号を表すため、パケットにおいてデータバイトを設定することを有するようにしてもよい。例えば、識別番号Nを有するデスティネーションノードがパケットを拒絶すると、拒絶されたパケットのデータバイトは、Nに設定されてもよい。当該ノードを宛先とする他のすべてのデータパケットは、0に設定されたデータバイトを有するようにしてもよい。複数のバッファが利用可能な場合、デスティネーションノードは、設定されていないデータバイトにより到着したパケットを受け付けるが、利用可能なバッファの1つが、Nに設定されたデータバイトによるパケットに対して確保されていることを保証するかもしれない。
あるいは、デスティネーションノードは、それの拒絶されたパケットのすべてを追跡し、それらが拒絶された順序により拒絶されたパケットを受け付けるようにしてもよい。例えば、識別番号Nを有するデスティネーションノードがパケットを拒絶する場合、拒絶されたパケットのデータバイトは、それがデスティネーションノードによって拒絶された最初のパケットであることを示すため、N1に設定されるようにしてもよい。デスティネーションノードは、第2の拒絶されたパケットのデータバイトをN2に設定し、以下同様に設定するようにしてもよい。デスティネーションノードは、変数を現在拒絶された最も小さな識別番号、この場合にはN1に設定するようにしてもよい。バッファが利用可能であるとき、デスティネーションノードは、それが到着するとN1のパケットを受け付け、変数を次に小さな識別番号N2に設定する。複数のバッファが利用可能である場合、デスティネーションノードは、それらがより大きな識別番号を有しているとしても、到着するパケットを受け付けるようにしてもよいが、利用可能なバッファの1つが最も小さな識別番号を有するパケットに対して確保されることを保証してもよい。
追跡はここで説明された機構に限定されるものではなく、ネットワークにおいてパケットを追跡する任意の適切な機構を含むようにしてもよい。例えば、追跡タグ又は追跡フラグが、拒絶されたパケットを識別及び追跡するのに利用可能である。
図9〜16は、本発明の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。この構成は、図4〜7に関して説明されたものと同一である。
図9において、3つのパケットが、クロックサイクルCにおいてリングインターコネクト430上に存在するかもしれない。左から始めて、パケット1はリングスロット420(8)に、パケット2はリングスロット420(2)に、パケット3はリングスロット420(4)にあってもよい。すべてのパケットが、ノード410(4)と指定されたデスティネーションを有するようにしてもよい。残りのリングスロットは、占有されていなくてもよく、あるいは占有されていてもよい。しかしながら、説明の簡単化のため、上述したリングスロットのみが占有される。図9において、パケット3は、それのデスティネーションノードであるノード410(4)に到着している。従って、本発明の実施例によると、ノード410(4)は、それが利用可能なバッファを有していると判断すると、ノード410(4)は、このクロックサイクルCの期間中にパケット3を受け付けるようにしてもよい。そうでない場合、ノード410(4)は、それが利用可能なバッファを有していないと判断すると、パケット3は拒絶され(830)、リングインターコネクト430上で進捗するようにしてもよい。ノード410(4)が、それが現在パケットを追跡していないと判断すると、ノード410(4)は、パケット3を追跡するようにしてもよい(850)。ノード410(4)が、それがパケットを現在追跡中であると判断すると、パケット3は、リングインターコネクト430上で追跡されないままにされなくてもよい。
図10は、次のクロックサイクルC+1におけるリングインターコネクト430の状態を示す。この場合、ノード410(4)は、それが利用可能なバッファを有しないと判断し(845)、パケット3を拒絶した(830)。ノード410(4)は、パケット3がノード410(4)によって拒絶された最初のパケットであると判断したため(845)、本発明の追跡機構によると、パケット3がリングインターコネクト430の探索を継続するとき、ノード410(4)はパケット3を追跡するようにしてもよい(850)。パケット1及び2は、それらのリングスロットを時計回りに進捗した。
図11は、次のクロックサイクルC+2におけるリングインターコネクト430の状態を示す。パケット2は、それのデスティネーションノードであるノード410(4)に到着した。前のクロックサイクルC+1の期間中、ノード410(4)は、それが1つの利用可能なバッファを有すると判断したと仮定する。しかしながら、本発明の実施例によると、ノード410(4)は、パケット2が追跡されているパケットであるか判断するようにしてもよい(815)。この場合、ノード410(4)は、パケット2が追跡されているパケットでないと判断するかもしれず(815)、さらに、1つののみのバッファしか利用可能でないと判断するかもしれない。ノード410(4)は、パケット2を拒絶し(830)、リングインターコネクト430にパケット2を放置するようにしてもよい。ノード410(4)は、それが現在パケット3を追跡していると判断してもよい(845)。この結果、ノード410(4)は、リングインターコネクト430上に拒絶されたパケット2を追跡しないままにしてもよい。
図12は、次のクロックサイクルC+3におけるリングインターコネクト430の状態を示す。上述のように、パケット2は拒絶されているが(830)、パケット3はすでに追跡されているため、追跡されない(845)。ノード410(4)は、パケット1、2又は3の到着を待機するようにしてもよい。ノード410(4)は、それがパケット2を拒絶したため、依然として1つの利用可能なバッファを有する。
図13は、次のクロックサイクルC+4におけるリングインターコネクト430の状態を示す。パケット1は、それのデスティネーションノードであるノード410(4)に到着している。前のクロックサイクルC+3の期間中に、ノード410(4)は、それが第2の利用可能なバッファを有していると判断した(810)。ノード410(4)は現在、2つの利用可能なバッファを有しているかもしれない。従って、本発明の実施例によると、ノード410(4)は、到着したパケット1が追跡されているか判断するようにしてもよい。パケット1が追跡されていないため(パケット3が追跡されている)、ノード410(4)は、それが複数の利用可能なバッファを有しているか判断するようにしてもよい(835)。ノード410(4)が利用可能な2つのバッファを有していると判断したため(835)、ノード410(4)はパケット1を受け付け(840)、それが到着するとき、追跡されたパケット3に対して利用可能なバッファをセーブするようにしてもよい。
図14は、次のクロックサイクルC+5におけるリングインターコネクト430の状態を示す。パケット1はノード410(4)において受け付けされ(840)、現在、ノード410(4)は、1つの利用可能なバッファを有している。追跡されているパケット3と追跡されていないパケット2は、リングインターコネクト430を時計回りに探索を継続するようにしてもよい。
パケット2及び3は、図15に示されるように、クロックサイクルC+8において、パケット3がそれのデスティネーションノードであるノード410(4)に再び到着するまで、リングインターコネクト430の探索を継続するようにしてもよい。この場合、ノード410(4)は、1つの利用可能なバッファを有する。従って、本発明の実施例によると、ノード410(4)は、それが利用可能な1つのバッファを有すると判断し(810)、到着したパケット3が追跡されていると判断するかもしれない(815)。ノード410(4)は、追跡されているパケット3を利用可能なバッファに受け付けるようにしてもよい(820)。
図16は、次のクロックサイクルC+9におけるリングインターコネクト430の状態を示す。パケット3は、ノード410(4)の利用可能な最後のバッファに受け付けられた(820)。パケット2は、ノード410(4)により受け付けられるまで追跡されるようにしてもよい(825)。ノード410(4)は、それがパケット2の到着の際に利用可能なバッファを有していないと判断すると、ノード410(4)は、再びパケット2を拒絶し(830)、パケット2の追跡を継続するようにしてもよい。
図1と同様の半導体チップの実施例が、本発明の実施例による方法を実現することが可能である。一実施例では、半導体チップ110は、リングインターコネクト120と当該リングインターコネクト120に接続されたノード110(1)〜110(n)とを有するようにしてもよい。各ノードは、リングインターコネクト120へのパケット到着時にバッファが利用可能である場合にはパケットを格納し、バッファが利用可能でない場合にはパケットを拒絶する少なくとも1つのバッファを有するかもしれない。各ノードはまた、拒絶されたパケットを追跡するため、サイクルカウントを計算する加算器(図示せず)を有するようにしてもよい。
あるいは、各ノードは、拒絶されたパケットを追跡するため、サイクルカウントを計算するようプログラムされるプログラマブル有限状態マシーン(図示せず)を有するようにしてもよい。あるいは、各ノードは、サイクルカウントを計算するため、プロセッサ(図示せず)を有するようにしてもよい。
同様に、図2と同様の半導体チップの実施例は、本発明の実施例による方法を実現するものであるかもしれない。
本発明の実施例は、通信バスを介し他の半導体チップを有するシステムに接続されるようにしてもよい。バスは、パケットが到着する際、又はチップを離れる際に、本発明の実施例によりパケットを転送するようにしてもよい。一実施例では、バスは、例えば、チップのリングインターコネクト上でノードを複数回探索した後、又はいくつかのクロックサイクルが経過した後など、拒絶されたパケットがある特定期間後には受け付けされない場合には、チップから拒絶されたパケットを転送するようにしてもよい。
図17は、本発明の実施例により使用される1以上のマルチプロセッサ及びメモリを含む構成状態を含むコンピュータシステムのブロック図である。図17において、コンピュータシステム1700は、システムロジック1730に接続可能なプロセッサバス1720に接続される1以上のマルチプロセッサ1710(1)〜1710(n)を有するようにしてもよい。1以上のマルチプロセッサ1710(1)〜1710(n)のそれぞれは、Nビットプロセッサであってもよく、デコーダ(図示せず)及び1以上のNビットレジスタ(図示せず)を有するようにしてもよい。本発明の実施例によると、1以上のマルチプロセッサ1710(1)〜1710(n)のそれぞれは、Nビットプロセッサ、デコーダ及び1以上のNビットレジスタに接続するため、双方向及び/又は一方向のリングインターコネクト(図示せず)を有するようにしてもよい。
システムロジック1730は、バス1750を介しシステムメモリ1740に接続されてもよく、周辺バス1760を介し不揮発性メモリ1770及び1以上の周辺装置1780(1)〜1780(m)に接続されてもよい。周辺バス1760は、例えば、1以上のPCI(Peripheral Component Interconnect)バス(1998年12月18日に公開された“PCI Special Group(SIG) PCI Local Bus Specification,Revision 2.2”)、EISA(Extended ISA)バス(1992年に公開された“BCPR Service Inc.EISA Specification,Version 3.12,1992”)、USB(Universal Serial Bus)(1998年9月23日に公開された“USB Specification,Version 1.1”)及び同様の周辺バスを表すかもしれない。不揮発性メモリ1770は、ROM(Read Only Memory)やフラッシュメモリなどの静的な記憶装置であってもよい。周辺装置1780(1)〜1780(m)は、例えば、キーボード、マウス、ポインティング装置、ハードディスクドライブなどの大容量記憶装置、CD(Compact Disc)ドライブ、光ディスク、DVD(Digital Video Disc)ドライブ、ディスプレイなどを含むかもしれない。
本発明の実施例は、実施例の教示に従ってプログラムされた汎用マイクロプロセッサなどの任意のタイプのコンピュータを使用して実現可能である。従って、本発明の実施例はまた、本発明の実施例による方法を実行するためプロセッサをプログラムするのに使用される命令を含むマシーン可読媒体を含む。この媒体は、以下に限定されるものではないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROMを含む任意のタイプのディスクを含むかもしれない。
本発明の実施例を実現するのに使用されるソフトウェアの構成は、単一又は複数のプログラムなどの任意の所望の形式をとるものであってもよいということは理解されるかもしれない。さらに、本発明の実施例の方法は、ソフトウェア、ハードウェア又はそれらの組み合わせにより実現可能であるということが理解されるかもしれない。
上記において、本発明の好適な実施例が詳細に説明された。出願人が権利を与えられる本発明の完全な範囲は、以降の請求項によって規定される。請求項の範囲は、上述したもの以外の他の実施例とそれらに均等なものをカバーするかもしれない。
図1は、本発明の実施例による単一のリングインターコネクトに接続される複数のノードを有する半導体チップである。 図2は、本発明の実施例による複数の一方向及び/又は双方向リングインターコネクトに接続される複数のノードを有する半導体チップである。 図3は、本発明の実施例によるフロー制御方法のフローチャートである。 図4は、本発明の実施例によるリングインターコネクトにおける図3のフロー制御方法の処理を示す。 図5は、本発明の実施例によるリングインターコネクトにおける図3のフロー制御方法の処理を示す。 図6は、本発明の実施例によるリングインターコネクトにおける図3のフロー制御方法の処理を示す。 図7は、本発明の実施例によるリングインターコネクトにおける図3のフロー制御方法の処理を示す。 図8は、本発明の他の実施例によるフロー制御方法のフローチャートである。 図9は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図10は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図11は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図12は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図13は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図14は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図15は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図16は、本発明の他の実施例によるリングインターコネクトにおける図8のフロー制御方法の処理を示す。 図17は、本発明の実施例を実現するコンピュータシステムのブロック図である。

Claims (36)

  1. 半導体チップのリング構造上のデスティネーションノードへの到着に応答して、前記デスティネーションノードの複数のバッファのすべてが利用可能でない場合、パケットを拒絶するステップと、
    1以上のバッファが利用可能になった場合に前記デスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡するステップと、
    前記リング構造での探索を継続させるため、前記リング構造に前記拒絶されたパケットを放出するステップと、
    前記デスティネーションノードへの前記拒絶されたパケットの到着に応答して、前記確保された利用可能なバッファに前記拒絶されたパケットを受け付けるステップと、
    を有することを特徴とする方法。
  2. 請求項記載の方法であって、
    前記追跡するステップは、前記拒絶されたパケットが前記デスティネーションノードに戻るサイクルカウントを計算することから構成され、
    前記サイクルカウントは、前記拒絶されたパケットが前記リング構造を探索し、前記デスティネーションノードに戻るクロックサイクル数を現在のクロックサイクルに加えたものに等しい、
    ことを特徴とする方法。
  3. 請求項記載の方法であって、
    前記受け付けるステップは、前記拒絶されたパケットの前記デスティネーションノードへの到着に応答して、前記サイクルカウントが実際のクロックサイクルに等しい場合、前記拒絶されたパケットを受け付けることから構成されることを特徴とする方法。
  4. 請求項記載の方法であって、
    前記追跡するステップは、前記デスティネーションノードの拒絶されなかった各パケットのデータバイトをゼロに設定し、前記拒絶されたパケットのデータバイトを前記デスティネーションノードの識別番号を表す数字に設定することから構成されることを特徴とする方法。
  5. 請求項記載の方法であって、
    前記受け付けるステップは、前記データバイトが前記識別番号に等しい場合、前記拒絶されたパケットを受け付けることから構成されることを特徴とする方法。
  6. 請求項記載の方法であって、さらに、
    前記拒絶されたパケットが前記複数のバッファの利用可能な1つに受け付けられた後、次に拒絶されたパケットを追跡するステップを有することを特徴とする方法。
  7. 請求項1記載の方法であって、さらに、前記複数のバッファの少なくとも2つが利用可能である場合、
    前記拒絶されたパケットを受け付ける前に、拒絶されていないパケット又は以降に拒絶されるパケットを受け付けるステップと、
    前記拒絶されたパケットを受け付けるため、前記少なくとも2つのバッファの1つを確保するステップと、
    を有することを特徴とする方法。
  8. 請求項1記載の方法であって、さらに、
    前記複数のバッファの1つしか利用可能でない場合、前記拒絶されたパケットを受け付ける前に、以前に拒絶されていないパケットを拒絶して追跡しないか、又は他の以前に拒絶されたパケットを拒絶するステップを有することを特徴とする方法。
  9. 請求項1記載の方法であって、
    前記放出するステップは、前記拒絶されたパケットの受付前に少なくとも一度、前記リング構造を探索させるため、前記リング構造に前記拒絶されたパケットを放出することから構成されることを特徴とする方法。
  10. 請求項1記載の方法であって、
    前記放出するステップは、クロックサイクル毎に前記リング構造の少なくとも1つのノードを探索させるため、前記リング構造に前記拒絶されたパケットを放出することから構成されることを特徴とする方法。
  11. 請求項1記載の方法であって、
    前記放出するステップは、複数のクロックサイクル期間中に前記リング構造の1つのノードを探索させるため、前記リング構造に前記拒絶されたパケットを放出することから構成されることを特徴とする方法。
  12. 第1状態が存在する場合、半導体チップのリング構造上のデスティネーションノードに到着するパケットを拒絶するステップと、
    1以上のバッファが利用可能になった場合に前記デスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡するステップと、
    前記リング構造を探索させるため、前記リング構造に前記拒絶されたパケットを放出するステップと、
    第2状態が存在する場合、前記拒絶されたパケットが前記デスティネーションノードに戻ることに応答して、前記拒絶されたパケットを前記デスティネーションノードにおいて受け付けるステップと、
    を有することを特徴とする方法。
  13. 請求項12記載の方法であって、
    前記第1状態は、利用可能でないバッファであり、
    前記第2状態は、利用可能なバッファである、
    ことを特徴とする方法。
  14. 請求項12記載の方法であって、
    前記第1状態は、前記到着したパケットがn番目(nはランダムに生成される数である)に受信されたパケットであることであり、
    前記第2状態は、前記拒絶されたパケットが前記n番目に受信されたパケットでないことである、
    ことを特徴とする方法。
  15. 請求項12記載の方法であって、
    前記追跡するステップは、
    前記拒絶されたパケットに識別番号を関連付けるステップと、
    前記識別番号をインクリメントするステップと、
    前記インクリメントされた識別番号を次に拒絶されるパケットに関連付けるステップと、
    から構成されることを特徴とする方法。
  16. 請求項15記載の方法であって、
    前記受け付けるステップは、
    前記デスティネーションノードにより現在拒絶されたすべてのパケットについて最小の識別番号の変数を設定するステップと、
    すべての現在拒絶されたパケットのうち、前記最小の識別番号を有する拒絶されたパケットを受け付けるステップと、
    前記拒絶されたパケットの受け付けに応答して、前記変数を次に最小の識別番号にリセットするステップと、
    から構成されることを特徴とする方法。
  17. 双方向リング構造と、
    前記双方向リング構造に接続される複数のノードと、
    から構成される半導体チップであって、
    各ノードは、バッファを有し、該バッファが利用可能である場合には前記双方向リング構造上の該ノードに到着するパケットを格納し、前記バッファが利用可能でない場合には前記パケットを拒絶し、
    各ノードはさらに、前記拒絶されたパケットを前記双方向リング構造に放出し、1以上のバッファが利用可能になった場合にデスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡することを特徴とする半導体チップ。
  18. 請求項17記載の半導体チップであって、
    各ノードは、前記拒絶されたパケットが該ノードに戻るサイクルカウントを計算する加算器を有し、前記サイクルカウントに従って前記拒絶されたパケットを追跡することを特徴とする半導体チップ。
  19. 請求項17記載の半導体チップであって、
    各ノードは、前記拒絶されたパケットが該ノードに戻るサイクルカウントを計算するプログラム可能な有限状態マシーンを有し、前記サイクルカウントに従って前記拒絶されたパケットを追跡することを特徴とする半導体チップ。
  20. 請求項17記載の半導体チップであって、
    各ノードは、前記拒絶されたパケットが該ノードに戻るサイクルカウントを計算するプロセッサを有し、前記サイクルカウントに従って前記拒絶されたパケットを追跡することを特徴とする半導体チップ。
  21. 各ノードがプロセッサとパケットを格納するバッファとを有する複数のノードと、該複数のノードに接続される少なくとも1つの双方向リング構造とを有するマルチプロセッサチップと、
    該マルチプロセッサチップに接続されるバスと、
    から構成されるシステムであって、
    前記プロセッサは、
    前記ノードのバッファが、前記少なくとも1つの双方向リング構造からパケットを受信するのに利用可能であるか判断し、
    前記バッファが利用可能でない場合、前記パケットを拒絶し、前記少なくとも1つの双方向リング構造を探索させるため前記拒絶されたパケットを放出し、
    1以上のバッファが利用可能になった場合にデスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡することを特徴とするシステム。
  22. 請求項21記載のシステムであって、
    前記プロセッサはさらに、前記拒絶されたパケットに対する追跡タグを計算し、前記拒絶されたパケットが前記ノードに戻ることに応答して、前記確保された利用可能なバッファに前記追跡タグを有する拒絶されたパケットを受け付けることを特徴とするシステム。
  23. 請求項22記載のシステムであって、
    前記追跡タグは、前記拒絶されたパケットが前記少なくとも1つの双方向リング構造を探索し、前記ノードに戻るクロックサイクル数に現在のクロックサイクルを加えたものに等しいサイクルカウントを有することを特徴とするシステム。
  24. 請求項22記載のシステムであって、
    前記追跡タグは、前記ノードに対応する識別番号を有することを特徴とするシステム。
  25. 請求項21記載のシステムであって、
    各ノードは、プロセッサ、キャッシュバンク、メモリインタフェース、加算器、プログラム可能な有限状態マシーン、及び入出力ポートの1つから構成されることを特徴とするシステム。
  26. 請求項21記載のシステムであって、
    バッファがフルである場合、該バッファは利用可能でないことを特徴とするシステム。
  27. 請求項21記載のシステムであって、
    バッファが利用可能でない期間後、前記バスは、前記マルチプロセッサチップから前記バッファ宛てのパケットを転送することを特徴とするシステム。
  28. 請求項21記載のシステムであって、
    前記期間は、2nクロックサイクルであって、nはノード数であることを特徴とするシステム。
  29. 半導体チップのリング構造上のデスティネーションノードへの到着に応答して、前記デスティネーションノードの複数のバッファのすべてが利用可能でない場合、パケットを拒絶するステップと、
    1以上のバッファが利用可能になった場合に前記デスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡するステップと、
    前記追跡するステップに基づき前記拒絶されたパケットの以降の送信のために、前記リング構造での探索を継続させるため、前記リング構造に前記拒絶されたパケットを放出するステップと、
    前記デスティネーションノードへの前記拒絶されたパケットの到着に応答して、前記確保された利用可能なバッファに前記拒絶されたパケットを受け付けるステップと、
    を有する方法を実行するためのマシーンにより実行可能なコンピュータプログラムを有することを特徴とするコンピュータ読み取り可能な記録媒体。
  30. 請求項29記載のコンピュータ読み取り可能な記録媒体であって、
    前記方法はさらに、
    前記拒絶されたパケットが前記追跡に基づき前記デスティネーションノードに到着した場合、前記拒絶されたパケットを受け付けるステップと、
    を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  31. 請求項30記載のコンピュータ読み取り可能な記録媒体であって、
    前記方法はさらに、前記拒絶されたパケットが前記複数のバッファの利用可能な1つに受け付けられた後、次の拒絶されたパケットを追跡するステップを有することを特徴とするコンピュータ読み取り可能な記録媒体。
  32. 請求項30記載のコンピュータ読み取り可能な記録媒体であって、
    前記方法はさらに、前記複数のバッファの少なくとも2つが利用可能である場合、
    前記拒絶されたパケットを受け付ける前に、拒絶されていないパケット又は以降に拒絶されるパケットを受け付けるステップと、
    前記拒絶されたパケットを受け付けるため、前記少なくとも2つのバッファの1つを確保するステップと、
    を有することを特徴とするコンピュータ読み取り可能な記録媒体。
  33. 請求項30記載のコンピュータ読み取り可能な記録媒体であって、
    前記方法はさらに、
    前記複数のバッファの1つしか利用可能でない場合、前記拒絶されたパケットを受け付ける前に、以前に拒絶されていないパケット又は他の以前に拒絶されたパケットを拒絶し、追跡しないステップを有することを特徴とするコンピュータ読み取り可能な記録媒体。
  34. 第1状態が存在する場合、半導体チップのリング構造上のデスティネーションノードに到着するパケットを拒絶するステップと、
    1以上のバッファが利用可能になった場合にデスティネーションノードが前記拒絶されたパケットのための利用可能なバッファを確保したか確認するため、前記拒絶されたパケットを追跡するステップと、
    前記リング構造を探索させるため、前記リング構造に前記拒絶されたパケットを放出するステップと、
    第2状態が存在する場合、前記拒絶されたパケットが前記デスティネーションノードに戻ることに応答して、前記拒絶されたパケットを前記デスティネーションノードにおいて受け付けるステップと、
    を有する方法を実行するためのマシーンにより実行可能なコンピュータプログラムを有することを特徴とするコンピュータ読み取り可能な記録媒体。
  35. 請求項34記載のコンピュータ読み取り可能な記録媒体であって、
    前記第1状態は、利用可能でないバッファであり、
    前記第2状態は、利用可能なバッファである、
    ことを特徴とするコンピュータ読み取り可能な記録媒体。
  36. 請求項34記載のコンピュータ読み取り可能な記録媒体であって、
    前記第1状態は、前記到着したパケットがn番目(nはランダムに生成される数である)に受信されたパケットであることであり、
    前記第2状態は、前記拒絶されたパケットが前記n番目に受信されたパケットでないことである、
    ことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2007515121A 2004-05-28 2005-05-06 リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置 Expired - Fee Related JP4489116B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/855,483 US7539141B2 (en) 2004-05-28 2004-05-28 Method and apparatus for synchronous unbuffered flow control of packets on a ring interconnect
PCT/US2005/015887 WO2006007053A1 (en) 2004-05-28 2005-05-06 Method and apparatus for synchronous unbuffered flow control of packets on a ring interconnect

Publications (2)

Publication Number Publication Date
JP2008500773A JP2008500773A (ja) 2008-01-10
JP4489116B2 true JP4489116B2 (ja) 2010-06-23

Family

ID=34969804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007515121A Expired - Fee Related JP4489116B2 (ja) 2004-05-28 2005-05-06 リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置

Country Status (5)

Country Link
US (1) US7539141B2 (ja)
JP (1) JP4489116B2 (ja)
CN (1) CN1957564B (ja)
DE (1) DE112005001221T5 (ja)
WO (1) WO2006007053A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5922898B2 (ja) * 2011-09-15 2016-05-24 キヤノン株式会社 情報処理装置、通信方法およびプログラム
US8706936B2 (en) * 2011-11-14 2014-04-22 Arm Limited Integrated circuit having a bus network, and method for the integrated circuit
US20140082215A1 (en) * 2012-09-19 2014-03-20 Arm Limited Arbitrating between data paths in a bufferless free flowing interconnect
WO2014173438A1 (de) * 2013-04-24 2014-10-30 Siemens Aktiengesellschaft Verfahren und vorrichtung zum übertragen eines datenpakets in einem kommunikationsnetz bei pufferüberlauf
US9571402B2 (en) * 2013-05-03 2017-02-14 Netspeed Systems Congestion control and QoS in NoC by regulating the injection traffic
US10855609B2 (en) * 2019-02-07 2020-12-01 Arm Limited Interconnect and method of operation of such an interconnect

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ZA883232B (en) * 1987-05-06 1989-07-26 Dowd Research Pty Ltd O Packet switches,switching methods,protocols and networks
US5191652A (en) * 1989-11-10 1993-03-02 International Business Machines Corporation Method and apparatus for exploiting communications bandwidth as for providing shared memory
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US6314110B1 (en) * 1998-03-06 2001-11-06 Cisco Technology, Inc. Method and apparatus for distributed bandwidth allocation for a bi-directional ring media with spatial and local reuse
JP3709322B2 (ja) * 2000-03-10 2005-10-26 株式会社日立製作所 多次元クロスバーネットワークおよび並列計算機システム
US6738379B1 (en) * 2000-03-30 2004-05-18 Telefonaktiebolaget Lm Ericsson (Publ) Method of preserving data packet sequencing
US7239607B1 (en) * 2000-06-30 2007-07-03 Broadband Royalty Corp. Guaranteed quality of service in an asynchronous metro packet transport ring
GB2377138A (en) * 2001-06-28 2002-12-31 Ericsson Telefon Ab L M Ring Bus Structure For System On Chip Integrated Circuits
US20030167348A1 (en) * 2001-07-02 2003-09-04 Globespanvirata, Inc. Communications system using rings architecture
US20030200342A1 (en) * 2001-07-02 2003-10-23 Globespan Virata Incorporated Communications system using rings architecture
NL1018463C2 (nl) * 2001-07-04 2003-01-08 Marc Van Oldenborgh Werkwijze, inrichting en programmatuur voor digitaal inverse multiplexen.
US7068603B2 (en) * 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
KR100501717B1 (ko) * 2003-05-09 2005-07-18 삼성전자주식회사 Udp/tcp/ip 네트워크에서 버퍼관리를 기반으로 한음성 및 데이터 통합 전송방법

Also Published As

Publication number Publication date
DE112005001221T5 (de) 2007-05-24
US20050276274A1 (en) 2005-12-15
US7539141B2 (en) 2009-05-26
CN1957564A (zh) 2007-05-02
JP2008500773A (ja) 2008-01-10
WO2006007053A1 (en) 2006-01-19
CN1957564B (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
US7551564B2 (en) Flow control method and apparatus for single packet arrival on a bidirectional ring interconnect
US7676603B2 (en) Write combining protocol between processors and chipsets
US8099521B2 (en) Network interface card for use in parallel computing systems
WO2020236278A1 (en) System and method for facilitating data request management in a network interface controller (nic)
US7921316B2 (en) Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7793158B2 (en) Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
KR100715741B1 (ko) 트랜잭션들을 상이한 가상 채널들로 분리하는 방법 및이를 이용한 장치 및 시스템
US8140731B2 (en) System for data processing using a multi-tiered full-graph interconnect architecture
US7061929B1 (en) Data network with independent transmission channels
EP1615138A2 (en) Multiprocessor chip having bidirectional ring interconnect
US5577211A (en) System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
JP4489116B2 (ja) リングインターコネクト上のパケットの同期的非バッファフロー制御のための方法及び装置
US20210344616A1 (en) Use of stashing buffers to improve the efficiency of crossbar switches
WO2010105013A1 (en) Scalable interface for connecting multiple computer systems which performs parallel mpi header matching
US9882771B2 (en) Completion tracking for groups of transfer requests
US6975626B1 (en) Switched network for low latency communication
US7733898B2 (en) Method and apparatus for preventing starvation in a slotted-ring network
US7065580B1 (en) Method and apparatus for a pipelined network
Abousamra et al. Proactive circuit allocation in multiplane NoCs
US6912608B2 (en) Methods and apparatus for pipelined bus
US20140036929A1 (en) Phase-Based Packet Prioritization
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
JP3767508B2 (ja) データ転送方式およびノード装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100108

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100330

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees