(57)【要約】相互接続システム（１１０）は、複数の再使用可能な機能ユニット（１０５ａ）、（１０５ｂ）、（１０５ｃ）を含む。システム（１１０）は、複数のノード（１３５）、（１４０）、（１４５）、（１５０）、（１５５）、（１６０）を含み、それぞれのノードは機能ユニットと通信する。複数のデータパケットが、機能ユニットの間で移送される。それぞれのデータパケットは、それに関連するルーティング情報を有し、ノードがデータパケットを相互接続システムを経て送ることを可能にする。
2004525449.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ユニットを接続する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、前記相互接続システムは機能ユニットの間で複数のデータパケットを移送し、それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有する、前記相互接続システム。
【請求項２】
複数の機能ユニットを相互接続しかつ複数のデータパケットを移送する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、第１のノードと第２のノードとの間の前記データパケットの移送中に、前記第１のノードと前記第２のノードとの間の前記相互接続システムの部分のみが起動される、前記相互接続システム。
【請求項３】
複数の機能ユニットを相互接続する相互接続システムにおいて、それぞれの機能ユニットはインタフェースユニットを経て前記相互接続システムに接続され、前記相互接続システムは複数のノードを含み、前記相互接続システムは複数のデータパケットを移送し、それぞれのインタフェースユニットは前記データパケットを移送するプロトコルおよび前記機能ユニットのプロトコルを変換する、前記相互接続システム。
【請求項４】
複数の機能ユニットを相互接続しかつ複数のデータパケットを前記機能ユニットの間で移送する相互接続システムにおいて、アービトレーションがそれぞれの機能ユニットへ分散される、前記相互接続システム。
【請求項５】
それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有する、請求項２から請求項４までのいずれかに記載の相互接続システム。
【請求項６】
第１のノードと第２のノードとの間のデータパケットの移送中に、前記第１のノードと前記第２のノードとの間の前記相互接続システムの部分のみが起動される、請求項１、請求項３、または請求項４のいずれかに記載の相互接続システム。
【請求項７】
前記相互接続システムはプロトコルを断定できないものである、請求項１、請求項２、または請求項４に記載の相互接続システム。
【請求項８】
アービトレーションは前記機能ユニット間で分散される、請求項１から請求項３までのいずれかに記載の相互接続システム。
【請求項９】
前記相互接続に沿って所定距離の間隔をおいた複数の中継器ユニットを含み、前記データパケットは単一クロックサイクル中に、連続した中継器ユニットおよび／またはノードの間で移送されるようになっている、請求項１から請求項８までのいずれかに記載の相互接続システム。
【請求項１０】
前記データパケットは、前記ノードおよび／または中継器ユニットの間でパイプライン処理される、請求項９記載の相互接続システム。
【請求項１１】
それぞれの中継器ユニットは、前記相互接続の閉塞時にデータを圧縮する手段を含む、請求項９または請求項１０記載の相互接続システム。
【請求項１２】
前記ルーティング情報は宛先のｘ、ｙ座標を含む、請求項１から請求項１１までのいずれかに記載の相互接続システム。
【請求項１３】
前記相互接続の長さに沿ってのクロッキングは分散される、請求項１から請求項１２までのいずれかに記載の相互接続システム。
【請求項１４】
それぞれのノードは入力バッファ、注入制御および／または消費制御を含む、請求項１から請求項１３までのいずれかに記載の相互接続システム。
【請求項１５】
それぞれのノードは同時にデータを注入および出力できる、請求項１４記載の相互接続システム。
【請求項１６】
前記相互接続システムは複数のバスを含む、請求項１から請求項１５までのいずれかに記載の相互接続システム。
【請求項１７】
それぞれのノードは前記複数のバスの少なくとも１つに接続されている、請求項１６記載の相互接続システム。
【請求項１８】
それぞれのバスの少なくとも部分は１対の単方向バスレーンを含む、請求項１６または請求項１７記載の相互接続システム。
【請求項１９】
データはそれぞれのバスレーン上を反対方向に移送される、請求項１５記載の相互接続システム。
【請求項２０】
少なくとも１つのＴスイッチを含み、該Ｔスイッチはそれぞれのデータパケットに関連する前記ルーティング情報から前記データパケットを移送する方向を決定する、請求項１から請求項１９までのいずれかに記載の相互接続システム。
【請求項２１】
前記データパケットの配信は保証されている、請求項１から請求項２０までのいずれかに記載の相互接続システム。
【請求項２２】
データパケットを機能ユニットの間でルーティングする方法において、それぞれのデータパケットはそれに関連するルーティング情報を有し、前記方法は、
（ａ）前記ルーティング情報を読取るステップと、
（ｂ）前記ルーティング情報から前記データパケットを移送する方向を決定するステップと、
（ｃ）前記データパケットをステップ（ｂ）において決定された方向に移送するステップと、
を含む前記方法。
【請求項２３】
請求項１から請求項２１までのいずれかに記載の前記相互接続システムを組み込んだ処理システム。
【請求項２４】
それぞれの機能ユニットはインタフェースユニットを経てノードに接続されている、請求項２３記載のシステム。
【請求項２５】
それぞれのインタフェースユニットは、前記相互接続システムへ移送されるべき、また前記相互接続システムから受け取られるべきデータのための前記プロトコルをセットする手段を含む、請求項２４記載のシステム。
【請求項２６】
前記機能ユニットは分散アービトレーションを用いて前記相互接続システムにアクセスする、請求項２４または請求項２５記載のシステム。
【請求項２７】
それぞれの機能ユニットは、再使用可能なシステムのオンチップ機能ユニットを含む、請求項２４から請求項２６までのいずれかに記載のシステム。
【請求項２８】
請求項１から請求項２１までのいずれかに記載の前記相互接続システムを組み込んだ集積回路。
【請求項２９】
複数のチップを含む総合システムにおいて、それぞれのチップは請求項１から請求項２１までのいずれかに記載の前記相互接続システムを組み込み、前記相互接続システムは前記複数のチップを相互接続する前記総合システム。
【請求項３０】
複数のデータパケットを相互接続システムを経て移送する方法において、前記相互接続システムは複数のノードを含み、前記方法は、
データパケットを第１のノードと第２のノードとの間で移送するステップと、
移送中に、前記第１のノードと前記第２のノードとの間の前記相互接続システムの部分のみを起動するステップと、
を含む前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、相互接続ネットワークに関する。特に、本発明は、チップ内相互接続ネットワークに関するが、それのみに関するものではない。
【背景技術】
【０００２】
複数の機能ユニット（または処理ユニット）を相互接続する代表的なバスシステムは、トライステートドライバを有するワイヤの組、またはバス上にデータを得るためのマルチプレクサを組み込んだ２つの単方向データ経路から成る。バスに対するアクセスはアービトレーションユニットにより制御され、このアービトレーションユニットは、バスを使用する要求を受け入れて、１つの機能ユニットが任意の一時刻にバスにアクセスすることを許す。アービタはパイプライン処理され、バス自体は、より高いクロック速度を実現するためにパイプライン処理される。データをバスに沿ってルーティングするために、システムは、一般にルックアップテーブルを含む複数のルータを具備する。データは、次に、ルーティングルックアップテーブル内のエントリと比較されて、データの正しい宛先へのバス上へルーティングされる。
【０００３】
しかし、そのようなルーティングスキームを、チップ上において実行することはできない。その理由は、部品の複雑性およびサイズが、それを実行不可能にするからである。これは、現存のオンチップバススキームにおいて、データが一斉送信される、すなわち、データを１つの機能ユニットから複数の他の機能ユニットへ同時に転送する、異なるスキームを用いることにより克服された。これは、ルーティングテーブルを不必要にする。しかし、チップ上の全ての機能ユニットへのデータの一斉送信は、かなりの電力を消費するので、非効率的である。また、１クロックサイクル中に、比較的に長距離を越えてデータを転送することはますます困難となってきている。
【０００４】
さらに、代表的なバスシステムにおいては、バス（トランザクタ）を使用することごとくの要求は、中央アービタに接続されなければならないので、これはシステムのスケーラビリティを制限する。構築されるシステムが大きくなるのに伴い、機能ユニットはアービタから遠くなるので、レーテンシは増大し、単一アービタにより処理される同時要求の数は制限されることになる。従って、そのような中央アービタに基づくバスシステムにおいては、バスの長さおよびトランザクタの数は通常最初に固定される。従って、システムの要求の変化に適合するように、後の段階においてバスを長くすることはできない。
【０００５】
相互接続のもう１つの形式は、直接相互接続ネットワークである。このタイプのネットワークは一般に複数のノードを含み、それぞれのノードは離散したルータチップである。それぞれのノード（ルータ）は、プロセッサおよび複数の他のノードに接続され、ネットワークのトポロジーを形成する。
【０００６】
過去においては、このネットワークに基づくアプローチをオンチップバスの代わりに実行することはできなかった。その理由は、個々のノードが、チップ上における実施のためには大き過ぎるからである。
【０００７】
多くの現存のバスは、特定のプロトコルによって働くように作られる。カストマイズされたワイヤの多くは、そのプロトコルの特定の機能に関連する。逆に、多くのプロトコルは、例えば、何らかの方法でアービタを補助する特定のデータファイルを有する特定のバスの実施の周辺に基礎を置く。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、オンチップバスシステムとしての相互接続ネットワークを提供することである。
【課題を解決するための手段】
【０００９】
これは、データの一斉送信とは対照的に、データをルーティングすることにより達成される。データのルーティングは、簡単なアドレス指定スキームにより行われ、その場合、それぞれのトランザクションは、関連するルーティング情報、例えば、相互接続ネットワーク内のノードが正しい宛先へそのトランザクションをルーティングすることを可能にする地理的アドレス、を有する。
【００１０】
このようにして、ルーティング情報は、データパケットを送るべき方向に関する情報を含む。このルーティング情報は、単に宛先のアドレスではなく、方向情報、例えば、方向を与えるための格子のｘ、ｙ座標、を与える。従って、ノードは、方向を決定するためのルーティングテーブル、または広域信号を必要としない。その理由は、ノードが必要とする全ての情報は、データパケットのルーティング情報内に含まれているからである。これは、ノードおよび相互接続システムの回路の簡単化を可能にし、それによりこのシステムのチップ上への集積を可能にする。
【００１１】
もしそれぞれの機能ユニットがノードに接続され、全てのノードが互いに接続されていれば、システム内のそれぞれのノードの対の間にはパイプライン接続が存在する。介在するノードの数はパイプラインステージの数を支配する。もし結合したノードの対が存在し、それらの間の距離が大き過ぎて、データを単一クロックサイクル中に伝送できない場合には、中継器ブロックをそれらのノードの間に挿入することができる。このブロックは、他のバスブロックと同じプロトコルを維持しつつデータを登録する。中継器ブロックの包含は、任意の長さの相互接続を作ることができるようにする。
【００１２】
本発明による相互接続システムは、チップ内相互接続ネットワークにおいて用いることができる。データの転送は全てパケット化され、それらのパケットは、データ経路の幅の倍数である任意の長さとすることができる。相互接続ネットワーク（ノードおよびＴスイッチ）を作るために用いられるバスのノードは、全てデータ経路上のレジスタを有する。
【発明の効果】
【００１３】
本発明の主な利点は、本発明が本来再使用可能であることである。実施者は、所望のクロック速度を実現するための、正しい数のインタフェースを有し、また十分な中継器ブロックを有する、正しい長さの相互接続を形成するために十分な、機能ブロックを例示しさえすればよい。
【００１４】
本発明による相互接続システムは、分散アービトレーションを用いる。このアービトレーションの能力は、より多くのブロックが追加されるほど増大する。従って、もしバスを長くする必要があるならば、もっと多くのノードおよびことによると中継器を例示しさえすればよい。それぞれのモジュールは、自身の中での自身のアービトレーションを管理するので、相互接続の全体的アービトレーション能力は増大する。これは、本発明のバスシステムを、他の従来のバスシステムよりも、（長さおよび全体的帯域幅において）よりスケーラブルにする。
【００１５】
本発明のシステムにより採用されたアービトレーションは、真に分散化され局所化される。これは、従来の分散システムにおけるような、下流へのルートが自由であるかどうかを調査するためのポーリングが、行われないよう簡単化され、代わりにこの情報は、「閉塞されたノード」および上流のノードによる相互接続（バス）のパイプライン処理されたバックアップにより起動される。
【００１６】
本発明による相互接続は、電力消費に関しては効率的である。パケットは一斉送信されずにルーティングされるので、発信源ノードと宛先ノードとの間のワイヤのみがトグルされる。残りのバスドライバは、クロックゲートされる。従って、本発明のシステムが消費する電力は少ない。
【００１７】
さらに、バス上のことごとくのノードは、それに関連する独自のアドレス、すなわちインタフェースアドレスを有する。パケット内には、宛先のインタフェースアドレスを保持するフィールドが確保される。バス上のそれぞれのノードは、入来パケットのこのフィールドに問合せを行う。もしそのノードが、そのインタフェースアドレスと一致すれば、そのノードはそのパケットのルートを相互接続（またはバス）から分離し、もしそのノードが、そのインタフェースアドレスと一致しなければ、そのノードはそのパケットをバスの下流へルーティングする。このアドレス指定スキームは、一斉送信メッセージのための「ワイルドカード」をサポートするように拡張することができる。もしアドレスの部分集合がインタフェースアドレスと一致すれば、そのパケットはルートをバスから分離され、かつ続けてバスの下流へ送られ、そうでない場合は、それはバスの下流へそのまま続けて送られる。
【００１８】
バス上に来るパケットに対し、それぞれのインタフェースユニットは、そのパケットの宛先インタフェースアドレスの問合せを行う。これは、取付けられたユニットからバスに到達するパケットがいずれの方向にルーティングされるべきかを決定するために用いられる。線形バスの場合には、これは簡単な比較によることができ、もし宛先アドレスがデータ源のインタフェースアドレスよりも大きければ、パケットはバスの「上流」へルーティングされ、そうでない場合は、パケットはバスの「下流」へルーティングされる。これは、それぞれのノードが、宛先アドレス、またはアドレスの範囲を、バス上における方向にマッピングするように、それぞれのインタフェースユニットに対して拡張できる。
【００１９】
好ましくは、インタフェースユニットは、この比較の結果に基づき、２進レーン信号をセットする。このようにして、機能性は、ノードとインタフェースユニットとの間で分割される。移送されるべきデータの（プロトコル要件を含む）全ての「準備」は、インタフェースユニットにおいて行われる。移送されるべきデータのタイプにかかわらずノードは変化しないので、これは大きい柔軟性を可能にし、ノードが異なる回路において再使用されることを可能にする。さらに好ましくは、ノードは、パケットを相互接続システムから分離し、機能ユニットに向けて送る。
【００２０】
さらに好ましくは、相互接続宛のデータに関し、インタフェースユニットは以下の機能を行うことができる。すなわち、機能ユニットからパケットを取り出し、正しい宛先モジュールＩＤ、ヘッドおよびテールビットを確保する；宛先モジュールＩＤをローカルモジュールＩＤと比較し、この比較の結果に基づき２進レーン信号をセットする；そのモジュールＩＤ、データおよび任意の高レベル（非バス）制御信号をフリット（ｆｌｉｔ）内にパックする；必要な任意のプロトコル変更を実施する；そして、注入プロトコルを用い、前記レーン信号をおよびフリットをノードに送る。
【００２１】
ＴジャンクションまたはＴスイッチは、同様に動作する。ここでの決定は、単にパケットを一方のブランチまたは他方のブランチのいずれへルーティングすべきかについて行われる。これは一般に、アドレスの範囲に関して行われ、もしアドレスがある所定の値よりも大きければ、パケットは左へルーティングされ、そうでない場合は、パケットは右へルーティングされる。しかし、もし必要ならば、もっと複雑なルーティングスキームを実行することもできる。
【００２２】
このアドレス指定スキームは、チップ間通信をサポートするように拡張することができる。この場合は、アドレス内のフィールドが、ターゲットチップのアドレスを定めるために用いられ、例えば、このフィールド内の０は、そのチップローカルアドレスを表す。パケットがそのチップに到達した時は、このフィールドは、そのチップの前もってプログラムされたアドレスと比較される。もしそれらが一致すれば、そのフィールドはゼロにセットされ、ローカルルーティングが上述のように行われる。もしそれらが一致しなければ、パケットは、バスに沿って適切なチップ間インタフェースまでルーティングされた後、その最終的宛先に向けてルーティングされる。このスキームは、チップのシステム、サブシステム、ボード、グループ、および個々のチップにおけるルーティングを管理する階層的アドレス指定スキームを可能にするように、拡張することができる。
【００２３】
本発明によるシステムは、全てのバス型アプリケーションに適しているわけではない。発信源トランザクタと宛先トランザクタとは、中央アービトレーションポイントが存在しないので減結合される。本発明のアプローチの利点は、長いバス（ネットワーク）が、極めて高いアグリゲート帯域幅を有するように構成できることである。
【００２４】
本発明のシステムは、プロトコルを断定できないものである。本発明の相互接続は、単にデータパケットを移送する。本発明によるインタフェースユニットは、全てのプロトコル特有機能を管理する。これは、それが容易に新しいプロトコルに移行できることを意味する。その理由は、インタフェースユニットを再設計しさえすればよいからである。
【００２５】
本発明はまた、融通のきくトポロジーおよび長さを提供する。
本発明の中継器ブロックは、相互接続の全体的モジュラ構造が、長いワイヤによりクロック速度が制限されることを防止するために、極めて高いクロック速度を可能にする。これは、合成およびレイアウトを簡単化する。中継器ブロックは、データが下流へ進む時にデータをパイプライン処理するだけでなく、中継器ブロックは、フロー制御プロトコルをも実行し、（閉塞信号を広域的に分散させるのではなく）相互接続（またはバス）の上流への閉塞情報をパイプライン処理する。閉塞が起こった時は、この機構の機能により、データ圧縮（固有のバッファリング）がバス上において行われ、レーテンシ指数を少なくとも２倍にし、すなわち、もし中継器を経てのレーテンシが１サイクルならば、２つのデータ制御フローディジット（フリット：本発明の相互接続上におけるデータ転送の基本単位。それはｎバイトのデータおよびいくつかの側波帯制御信号を含む。フロー制御ディジットのサイズは、バスデータ経路のサイズに等しい）が、閉塞が起こった時に連結される。これは、いずれの閉塞の範囲も最小化され、従って機能ブロックにおけるキューイング要件が減少することを意味する。
【００２６】
データフロー制御ディジットのフローは、前述のように、記憶ブロック（および中継器ユニット）におけるダブルバッファリングと関連して、フロー制御プロトコルにより管理される。
【００２７】
本発明の相互接続の諸成分は、パケットの移送を管理する。カストマイズされたインタフェースユニットは、プロトコル特有の機能を処理する。これらは一般に、制御情報およびデータのパッキングおよびアンパッキング、およびアドレスの変換を含む。カストマイズされたインタフェースユニットは、任意の特定の同時実行に適合するように作ることができる。
【００２８】
多くのパケットが、本発明の相互接続の別個のセグメントに沿って同時に進むことができる。これは、実現可能な帯域幅を、ワイヤの原帯域幅（バスの幅にクロック速度を乗算したもの）よりも遥かに大きくすることを可能にする。例えば、もし４つの隣接するオンチップブロックＡ、Ｂ、ＣおよびＤが存在すれば、ＡとＢとは、ＣとＤとが通信するのと同時に通信することができる。この場合に実現できる帯域幅は、一斉送信に基づくバスのそれの２倍になる。
【００２９】
パケットは、それぞれのノードにおいて相互接続上へ注入（ゲート）されるので、それぞれのノードは、（例えば、１００サイクル毎の間に１０個のフロー制御ディジットを送ることができることにより）ある量の全体的帯域幅割当てを割当てられ、この分散スキームは全体的帯域幅割当てを制御する。
【００３０】
パケットを本発明の相互接続上へ、それが飽和するまで強制的に送り続けることは可能である。全てのパケットは、結局は配信される。これは、その相互接続を、組み込まれたフロー制御機構を有するバッファとして用いることができることを意味する。
【実施例１】
【００３１】
機能ブロックの間でデータおよび制御情報を通信する基本機構は、それらのブロックが、本発明による相互接続システム１００を用いメッセージを交換するようになっている。バスシステムは、マルチチップシステム内の諸ブロックを接続するために延ばすことができ、同じ機構は、チップ内の諸ブロック、または異なるチップ上の諸ブロックのために働く。
【００３２】
本発明の実施例による相互接続システム１１０を組み込んだシステムの例１００は、図１に示されているように、複数の再使用可能なオンチップ機能ブロックまたは仮想成分ブロック１０５ａ、１０５ｂおよび１０５ｃを含む。これらの機能ユニットは、相互接続に対してインタフェースし、固定することができる。それらは、異なる回路設計における、さまざまな抽象のレベル（例えば、ＲＴＬ、ゲートレベル、ＧＤＳＩＩレイアウトデータ）において再使用することができる。相互接続に対する諸Ｉ／Ｏのサイズ、縦横比および位置が知られた時は、トポロジーを固定することができる。それぞれのオンチップ機能ユニット１０５ａ、１０５ｂ、１０５ｃは、インタフェースユニットを経て相互接続システム１１０に接続される。インタフェースユニットは、アドレスデコーディングおよびプロトコル変換を処理する。例えば、オンチップ機能ユニット１０５ａは、関連する仮想成分インタフェースイニシエータ１１５ａおよび周辺仮想成分インタフェースイニシエータ１２０ａを経て、相互接続システム１１０に接続される。
【００３３】
例えば、オンチップ機能ユニット１０５ｂは、関連する仮想成分インタフェースターゲット１２５ｂおよび周辺仮想成分インタフェースターゲット１３０ｂを経て、相互接続システム１１０に接続される。例えば、オンチップ機能ユニット１０５ｃは、関連する仮想成分インタフェースイニシエータ１１５ｃおよび周辺仮想成分インタフェースターゲット１３０ｃを経て、相互接続システム１１０に接続される。図１に示されている、それぞれのオンチップ機能ブロックのための関連するイニシエータおよびターゲットは、純粋に説明用のものであり、関連するブロックの要求により変更できる。機能ブロックは、相互接続システムに対するいくつかの接続を有する。それぞれの接続は、高度仮想成分インタフェース（拡張は基本仮想成分インタフェースのスーパーセットを形成する。これは、本発明のシステムにおける主データインタフェースのために用いられるプロトコルである）、または周辺仮想成分インタフェースインタフェース（本発明において主としてレジスタアクセスを制御するために用いられる、アトミックオペレーションを可能にする低帯域幅インタフェース）を有する。
【００３４】
図１に示されているようなオンチップ機能ユニットを、本発明の実施例による相互接続システムに接続するための、現在受け入れられている１つのプロトコルは、仮想成分インタフェースである。仮想成分インタフェースは、バスおよび／または仮想成分の間の通信を行うためのＯＣＢ標準インタフェースであり、それは特定のバスまたは仮想成分プロトコルとは無関係である。
【００３５】
３つのタイプの仮想成分インタフェース、すなわち、周辺仮想成分インタフェース１２０ａ、１３０ｂ、１３０ｃ、基本仮想成分インタフェースおよび高度仮想成分インタフェースが存在する。基本仮想成分インタフェースは、周辺仮想成分インタフェースよりも広く、高い帯域幅のインタフェースである。基本仮想成分インタフェースは、分割トランザクションを許容する。分割トランザクションにおいては、データおよび応答を求める要求が減結合されるので、データを求める要求は、応答が戻るのを待たずに、さらなるトランザクションを開始してもよい。高度仮想成分インタフェースは、基本仮想成分インタフェースのスーパーセットである。高度仮想成分インタフェースおよび周辺仮想成分インタフェースは、本発明の実施例によるシステムに採用されている。高度仮想成分インタフェースユニットは、ターゲットおよびイニシエータを含む。ターゲットおよびイニシエータは、要求パケットを送り、応答パケットを受け取る仮想成分である。イニシエータは、トランザクション、例えば、ＤＭＡ（またはＦ１５０上のＥＰＵ）を開始するエージェントである。
【００３６】
図２に示されているように、読取りまたは書込みトランザクションを開始するインタフェースユニットはイニシエータ２１０（要求２２０を発する）と呼ばれ、一方トランザクションを受けるインタフェースはターゲット２３０（要求２４０に応答する）と呼ばれる。これは、標準仮想成分における用語である。
【００３７】
それぞれのオンチップ機能ブロック１０５ａ、１０５ｂおよび１０５ｃ、およびその関連のイニシエータおよびターゲットは、仮想成分インタフェースプロトコルを用いて作られる。それぞれのイニシエータ１１５ａ、１２０ａ、１１５ｃおよびターゲット１２５ｂ、１３０ｂ、１３０ｃは、独自のノード１３５、１４０、１４５、１５０、１５５および１６０に接続される。それぞれのイニシエータ１１５ａ、１２０ａ、１１５ｃおよびターゲット１２５ｂ、１３０ｂ、１３０ｃの間の通信は、以下に詳細に説明するように、本発明の実施例によるプロトコルを用いる。
【００３８】
本発明の実施例による相互接続システム１１０は、３つの別個のバス１６５、１７０および１７５を含む。ＲＴＬ成分はパラメータ化可能な幅を有するので、これらは３つの異なる幅の例となる。１つの例は、６４ビットの広さの周辺仮想成分バス１７０（３２ビットアドレス＋３２データビット）、１２８ビットの高度仮想成分インタフェースバス１６５、および２５６ビットの高度仮想成分インタフェースバス１７５である。ここでは３つの別個のバスが図示されているが、本発明の相互接続システムは、任意の数の別個のバスを組み込むことができることを認識すべきである。
【００３９】
全てのバス１６５、１７０および１７５に対し、バスの長さに沿った一定間隔毎に、中継器ユニット１８０が挿入される。バス１６５、１７０および１７５の長さに関しては制限はない。バス１６５、１７０および１７５の長さの変動は、単に中継器ユニット１８０の数の増加を必要とするのみである。中継器ユニットは、もちろん、相互接続のワイヤの長さのために、２つのノードの間のタイミングの制約を満たすことができない時にのみ必要になる。
【００４０】
複雑なトポロジーの場合には、Ｔスイッチ（３方向コネクタなど）１８５を備えることができる。本発明の相互接続システムは、任意のトポロジーにおいて用いることができるが、トポロジーがループを含む時はデッドロックを生じることがあるので、注意しなければならない。
【００４１】
データはパケットをなして、本発明の相互接続ネットワーク上で転送される。それらのパケットは、データ経路の幅の倍数である任意の長さのものでよい。相互接続ネットワーク（ノードおよびＴスイッチ）を作るために用いられる、本発明によるノード１３５、１４０、１４５、１５０、１５５および１６０は、全てデータ経路上にレジスタを有する。
【００４２】
それぞれのインタフェースユニットは、相互接続システム自身の中のノードに、従って、１つの特定のバスのレーンに接続される。接続は、仮想成分インタフェースの規定に従って、イニシエータタイプまたはターゲットタイプのものであり、双方のものではない。実際には、ことごとくのブロックは、構成および制御のための、周辺仮想成分インタフェースターゲットインタフェースを有する。
【００４３】
本発明の実施例によるバス成分は、分散アービトレーションを用い、その場合、バスシステム内のそれぞれのブロックは、それ自身のリソースに対するアクセスを管理する。
【００４４】
本発明の実施例によるノード１３５は、図３に示されている。それぞれのノード１３５、１４０、１４５、１５０、１５５および１６０は、実質的に同様のものである。ノード１３５は、図１のバス１７５に接続される。それぞれのノードは、第１および第２の入力記憶装置３１５、３２０を含む。第１の入力記憶装置３１５の入力は、第１のバスレーン３０５に接続される。第２の入力記憶装置３２０の入力は、第２のバスレーン３１０に接続される。第１の入力記憶装置３１５の出力は、第３のバスレーン３０６に接続され、第２の入力記憶装置３２０の出力は、第４のバスレーン３１１に接続される。それぞれのノードは、さらに注入制御ユニット３３５および消費制御ユニット３２５を含む。ノードは消費アービトレーションを必要とせず、例えば、ノードはそれぞれの単方向レーンのための出力を有するが、消費ハンドシェイキングは保存される。
【００４５】
注入制御ユニット３３５の入力は、そのノードのためのそれぞれの機能ユニットのインタフェースユニットの出力に接続される。注入制御ユニット３３５の出力は、第５のバスレーン３０７および第６のバスレーン３１２に接続される。消費制御ユニット３２５の入力は、マルチプレクサ３２１の出力に接続される。マルチプレクサ３２１の入力は、第４のバスレーン３１１および第３のバスレーン３０６に接続される。消費制御ユニット３２５の出力はバス３３０に接続され、このバスは、そのノードのためのそれぞれの機能ユニットのインタフェースユニットに接続される。第５のバスレーン３０７および第３のバスレーン３０６は、マルチプレクサ３０８の入力に接続される。マルチプレクサ３０８の出力は、第１のバスレーン３０５に接続される。第４のバスレーン３１１および第６のバスレーン３１２は、マルチプレクサ３１３の入力に接続される。マルチプレクサ３１３の出力は、第２のバスレーン３１０に接続される。
【００４６】
ノードは、データがバスに出入りする接続点である。ノードはまた、移送媒体の部分をなす。ノードは、データ経路の両方向を含むバスレーンに接続する、バスレーンの部分を形成する。ノードは、そのノードが接続するレーン上にデータを、閉塞されない時は１サイクルのレーテンシにより伝える。ノードはまた、接続機能ブロックが、そのインタフェースを経て、いずれの方向にもデータを注入し、また消費することを可能にする。注入データまたは通過データのアービトレーションは、ノード内において完全に行われる。
【００４７】
内部的には、バス１７５は、第１のレーン３０５および第２のレーン３１０から成る。第１および第２のレーン３０５および３１０は、物理的には別個の単方向バスであり、これらは、ノード１３５内の同じインタフェースに対し多重化され、また多重分離される。図３に示されているように、第１のレーン３０５のデータフローの方向は、第２のレーン３１０のそれと逆方向である。それぞれのレーン３０５および３１０は、レーン番号を有する。レーン番号は、それぞれのパケットがいずれのレーン（従って、いずれの方向）に送られるかを決定するために、インタフェースユニットからノードへ送られるパラメータである。もちろん、第１および第２のレーン３０５および３１０のデータフローの方向は、同じ方向であることができる。これは、もしバス上でトランザクションを行うブロックが、１つの方向のみにパケットを送りさえすればよいならば望ましい。
【００４８】
ノード１３５は、同じバスレーン上においてデータを同時に受け取りかつ注入することができる。同時に、データを他のレーン上に通過させることもできる。それぞれの単方向レーン３０５、３１０は、データの別個のストリーム３０６、３０７、３１１、３１２を搬送する。これらのストリーム３０６、３０７、３１１、３１２は、ポイント３２１において共に多重化され、ここでデータはノード１３５から出て、インタフェースユニット１１５ａおよび１２０ａ（ここには図示せず）を経て、オンチップモジュール１０５ａ（ここには図示せず）に入る。データストリーム３０６、３０７、３１１、３１２は、オンチップブロック１０５ａからバスレーン３０５および３１０上に多重分離され、データは相互接続１１０上に置かれる。
【００４９】
これはローカルアービトレーションの例であり、この例においては、リソースのための競合は、それらのリソースが存在するブロック１０５ａにおいて解決される。この場合は、バスレーンに対するアクセスが競合され、またバスから分離する単一レーンにアクセスが競合される。ローカルアービトレーションを用いるこのアプローチは、相互接続システムの至る所で用いられ、そのスケーラビリティのキーとなる。別の場合は、ノードから両出力バスが機能ユニットに来て、その時はアービトレーションマルチプレクサは不必要となる。
【００５０】
それぞれのレーンは、独立して閉塞し、またはデータを通過させる。データは、一時に１つのレーンから消費でき、同時に１つのレーン上に注入できる。同じレーンにおける同時の注入および消費もまた可能である。それぞれのパケットがいずれのレーンに注入されるかは、インタフェースユニットにおいて決定される。
【００５１】
それぞれの入力記憶装置（またはレジスタ）３１５および３２０は、データがノードからノードへと通過する時に、そのデータを記憶する。それぞれの入力記憶装置３１５、３２０は、２フリット幅のレジスタを含む。バスリソースに対する競合がない時は、１つのレジスタのみが用いられる。バスが閉塞した時は、両レジスタが用いられる。それはまた、「ヘッダにおける閉塞（ｂｌｏｃｋ  ｏｎ  ｈｅａｄｅｒ）」機能を実施する。これは、新しいパケットをバス上に注入できるよう、パケットをヘッダフリットにおいて閉塞させうるようにするために必要である。
【００５２】
出力インタフェースユニット３２１、３２５は、両バスレーン３０５、３１０を１つのレーン３３０上に多重化し、レーン３３０は、ノード１３５に接続されている前記インタフェースユニットを経て、オンチップ機能ユニット１０５ａにそれを送る。出力インタフェースユニット３２１、３２５はまた、アービトレーション機能を行い、一つのレーンがオンチップ機能ユニットにアクセスすることを許し、他のレーンを閉塞する。それぞれのノードはまた、入力インタフェースユニット３３５を含む。入力インタフェースユニット３３５は、バスレーン３０５、３１０の１つの上へパケットの多重分離を行う。それはまた、アービトレーション機能を行い、入力されつつあるパケットを、要求されたレーンが使用可能になるまで閉塞する。
【００５３】
複数の中継器ユニット１８０は、相互接続１１０の長さに沿って、ある間隔で配設される。それぞれの中継器ユニット１８０は、データ経路上に特別なレジスタを導入するために用いられる。それはレーテンシの特別なサイクルを追加するが、タイミングの制約を満たすのが困難な場合にのみ用いられる。それぞれの中継器ユニット１８０は、ノードの記憶装置と同様の記憶装置を含む。その記憶装置は、単にデータを前方へ送り、また閉塞行動を実施する。中継器ユニットにおいては、スイッチングは行われない。中継器ブロックは、チップレイアウトを、より自由にする。例えば、それは、ノードの間のワイヤの長い長さを許容し、あるいは、ブロックが単一レーンに接続される単一ノードを有する場合は、中継器は他のレーン内に挿入されて、全てのレーンに対し一様なタイミング特性を与える。２つのノードの間には、１つより多くの中継器を置くことができる。
【００５４】
本発明の実施例によるシステムは、プロトコルを断定できないものであり、すなわち、ノード１３５、１４０、１４５、１５０、１５５、１６０のようなデータ移送ブロック、中継器ユニット１８０およびＴスイッチ１８５は、単にデータパケットを発信源インタフェースから宛先インタフェースへルーティングする。それぞれのパケットは、制御情報およびデータを含む。この情報のパッキングおよびアンパッキングは、インタフェースユニット１１５ａ、１２０ａ、１２５ｂ、１３０ｂ、１１５ｃ、１３０ｃにおいて行われる。実施例に関しては、これらのインタフェースユニットは仮想成分インタフェースであるが、任意の他のプロトコルもカストマイズされたインタフェースユニットを作ることによりサポートすることができる。
大形のオンチップブロックは、同じバスに対しいくつかのインタフェースを有してもよい。
【００５５】
インタフェースユニットのターゲットおよびイニシエータ１１５ａ、１２０ａ、１２５ｂ、１３０ｂ、１１５ｃ、１３０ｃは、イニシエータにおいては高度仮想成分インタフェースとバスプロトコルとの間の、また、ターゲットにおいてはバスから高度仮想成分イニシエータへの変換を行う。このプロトコルは、図１０に示されている高度仮想成分インタフェース側における非同期ハンドシェイクである。インタフェースユニットのイニシエータは、送信経路を含む。この経路は、高度仮想成分インタフェース通信プロトコルとバスプロトコルとの間の変換を行う。それは宛先モジュールＩＤまたはインタフェースＩＤを抽出する。また、ブロックは、それぞれのバスアドレスにおける異なるモジュール（インタフェース）ＩＤにより、いくつかのバスに接続されてもよく、それをパケットの正しい部分内にパックし、そのモジュールＩＤをハードワイヤードルーティングテーブルと共に用いてレーン番号（例えば、右のものには１、左のものには０）を発生する。
【００５６】
イニシエータは、データがバス上へ送られることができない時は、そのデータを高度仮想成分インタフェースにおいて閉塞する。インタフェースユニットのイニシエータはまた、応答経路を含む。この応答経路は、前に要求したデータを受け取り、バス通信プロトコルから仮想成分インタフェースプロトコルに変換する。それは、もしオンチップ仮想成分ブロックがデータを受け取ることができなければ、そのデータを閉塞する。
【００５７】
インタフェースユニットのターゲットは、入来する読取りおよび書込み要求を受け取る送信経路を含む。このターゲットは、バス通信プロトコルから高度仮想成分インタフェースプロトコルへ変換する。それは、もしバス上のデータか、仮想成分インタフェースを経て受け入れ不可能ならば、そのデータを閉塞する。ターゲットはまた、読取り（および検査の目的のための書込み）要求を搬送する応答経路を含む。それは、高度仮想成分インタフェース通信プロトコルを、バスプロトコルに変換し、もしデータがバス上に送られることができなければ、そのデータを高度仮想成分インタフェースにおいて閉塞する。
【００５８】
本発明の実施例において用いられる他のタイプのインタフェースユニットは、周辺仮想成分ユニットである。周辺仮想成分インタフェースと、高度仮想成分インタフェースとの主な相違は、周辺仮想成分インタフェースのデータインタフェースが高度仮想成分インタフェースよりも（４バイトまで）狭い可能性があり、周辺仮想成分インタフェースが分割トランザクションを行わないことである。
【００５９】
周辺仮想成分インタフェースユニットは、イニシエータにおいて周辺仮想成分インタフェースとバスプロトコルとの間の、また、ターゲットにおいてバスプロトコルから周辺仮想成分インタフェースプロトコルへの、変換を行う。このプロトコルは、周辺仮想成分インタフェース側における非同期ハンドシェイクである。
【００６０】
インタフェースユニットのイニシエータは、送信経路を含む。それはメモリアドレスから宛先モジュールＩＤおよび移送レーン番号を発生する。このイニシエータは、データがバス上へ送られることができない時は、周辺仮想成分インタフェースにおいてそのデータを閉塞する。イニシエータはまた、応答経路を含む。この経路は、前に要求したデータを受け取り、バス通信プロトコルから周辺仮想成分インタフェースプロトコルに変換する。それはまた、バス上のデータを、もしオンチップブロック（仮想成分ブロック）がそれを受け取るために使用できなければ、閉塞する。
【００６１】
周辺仮想成分インタフェースユニットのターゲットは、入来する読取りおよび書込み要求を受け取る送信経路を含む。それは、もしバス上のデータが仮想成分インタフェースを経て受け入れ不可能ならば、そのデータを閉塞する。そのターゲットはまた、読取り（および検査の目的のための書込み）要求を搬送する応答経路を含む。それは、周辺仮想成分インタフェース通信プロトコルを、バスプロトコルに変換し、もしデータがバス上に送られることができなければ、そのデータを仮想成分インタフェースにおいて閉塞する。
【００６２】
周辺仮想成分インタフェースのイニシエータは、組み合わされたイニシエータおよびターゲットを含む。これは、イニシエータの（例えば）デバッグレジスタが読取られることができるようにするためである。
【００６３】
図４を参照すると、仮想成分（オンチップ）ブロックは、本発明による相互接続システムを経て互いに接続することができる。第１の仮想成分（オンチップ）ブロック４２５は、インタフェースユニットターゲット４３０に、ポイントツーポイント接続される。インタフェースユニットのターゲット４３０は仮想接続イニシエータインタフェース４４０を、オンチップブロック４２５の仮想成分ターゲット４４５に提示する。インタフェースユニットのターゲット４３０は、バス相互接続４５０に対しインタフェースするために、バスプロトコル変換ユニット４４８を用いる。インタフェースユニットのイニシエータ４６０はターゲットインタフェース４７０を、第２のオンチップブロック４５５のイニシエータ４５７に提示し、やはり他の側にあるプロトコル変換ユニット４６８を用いる。
【００６４】
図１のＴスイッチ１８５は３つのノードを結合し、単純な線形の相互接続よりも複雑な相互接続を可能にする。それぞれの入力ポートにおいて、それぞれのパケットのインタフェースＩＤがデコードされ、２つの可能な出力ポートを表す単一ビットに変換される。Ｔスイッチ内のハードワイヤードテーブルが、このデコーディングを行う。Ｔスイッチ上のそれぞれの入力ポートに対し、１つのそのようなテーブルが存在する。もし競合が存在すれば、出力ポートのためのアービトレーションが行われる。勝者は現在のパケットを送ってよいが、パケットを送り終わった時は負けなければならない。図５ａおよび図５ｂは、Ｔスイッチの構造の例を示す。
【００６５】
Ｔスイッチは、単方向バスレーン５２０、５２５、５３０のそれぞれの対に接続された、３組の入出力ポート５０５、５１０、５１５を含む。Ｔスイッチ内には、バスレーン５２０、５２５、５３０のそれぞれの対のためにＴジャンクション５３５、５４０、５４５が備えられ、例えば、入力ポート５１５内へ来る入来バス５２０は、出力ポート５０５または５１０を経て出力されることができる。
【００６６】
パケットは、バス上のいずれの点においてもレーンを変更しないので、Ｔスイッチはｎ個の３方向スイッチの組と見ることができ、ここでｎは、単方向バスレーンの数である。Ｔスイッチ１８５は、レーン選択ユニットを含む。レーン選択ユニットは、入来パケットのモジュールＩＤを取り込み、Ｔスイッチ上の２つの可能な出力ポートに対応する１ビットの結果を発生する。Ｔスイッチはまた、それぞれの入力レーン上に記憶ブロックを含む。それぞれの記憶ブロックは、データフロー制御ディジットを記憶し、もし出力ポートが一時的に受け取り不可能になれば、それらのディジットを所定の場所に閉塞することを許容する。そはまた、「ヘッダにおける閉塞」機能を行い、これはスイッチングが（フロー制御ディジットレベルではなく）パケットレベルにおいて行われることを可能にする。Ｔスイッチはまた、出力ポートを使用する要求の間のアービトレーションのためのアービタを含む。
【００６７】
初期化中に、本発明の実施例による相互接続システムは、使用可能状態にパワーアップする。ルーティング情報は、バス成分内にハードコード（ｈａｒｄｃｏｄｅ）される。例えば、図６に示されているような、宛先モジュールインタフェースＩＤ（ｍｏｄ  ＩＤ）は、パケットを別のノードにルーティングするのに必要な全てである。ノードが応答パケットを返送するためには、それは、送信側のモジュールインタフェースＩＤを送られていなければならない。
【００６８】
処理システム内には、１つより多くの相互接続が存在する。それぞれのバス上において、ことごとくの（注入および消費ポートを含む）インタフェースは、独自のＩＤを有する。これらのＩＤは、シリコンコンパイル時にハードコードされる。
【００６９】
バス（オンチップブロック）に取付けられたユニットは、リセットの直後に自由に通信を開始できる。インタフェースユニットは、動作開始の準備完了状態になるまで、（受理通知を行わないことにより）通信を延期する。
【００７０】
本発明による相互接続システムは、至る所で用いられる内部プロトコルを有する。オンチップブロックに対するインタフェースにおいては、これは、ある他のプロトコル、例えば、上述の仮想成分インタフェース、に変換される。内部プロトコルは、バスプロトコルと呼ばれる。このバスプロトコルは、リソースに対する競合がない時は、バスに沿ったパケット進行のために単サイクルレーテンシを可能にし、また、競合がある時は、パケットが所定の場所に閉塞されることを可能にする。
【００７１】
バスプロトコルは、全ての内部（非インタフェース／仮想成分インタフェース）データ転送のために用いられる。それは、センダ７３５とレシーバ７３０との間の５つの信号：ｏｃｃｕｐ７０５、ｈｅａｄ７１０、ｔａｉｌ７１５、ｄａｔａ７２０およびｖａｌｉｄ７２５から成る。これらは図７に示されている。
【００７２】
パケットは、１つまたはそれ以上のフロー制御ディジットから成る。センダが有効な信号を表明するそれぞれのサイクルにおいて、レシーバは、次の正のクロックエッジにおいてデータを受け入れなければならない。
レシーバ７３０はセンダ７３５に対し、その現在の状態について、ｏｃｃｕｐ信号７０５を用いて知らせる。これは２ビット幅の信号である。
【００７３】
【表１】
2004525449.tif 000003
【００７４】
ｏｃｃｕｐ信号７０５は、センダ７３５に、データを送信することができるかどうか、またデータを送信できるようになった時、を知らせる。センダ７３５がデータフロー制御ディジットの送信を許された時は、有効信号７２５によりそれが認定される。
【００７５】
それぞれのパケット内の第１のフロー制御ディジットは、ｈｅａｄ＝「１」によりマークされる。最後のフロー制御ディジットは、ｔａｉｌ＝「１」によりマークされる。単一のフロー制御ディジットパケットは、信号ｈｅａｄ＝ｔａｉｌ＝ｖａｌｉｄ＝「１」を有する。それぞれのノードおよびＴスイッチは、これらの信号を用いて、パケットレベルにおけるスイッチングを行う。
【００７６】
図８は、本発明の実施例による相互接続システムにおける閉塞行動の例を示す。ｏｃｃｕｐ信号が「１」にセットされ、「もしこのサイクルにおいてフロー制御ディジットを送るならば、次のサイクルには送ってはならない」を意味する。
【００７７】
図９は、閉塞機構の例をもっと完全に示す。ｏｃｃｕｐ信号は０１（２進数）にセットされ、次に１０（２進数）にセットされる。センダは、ｏｃｃｕｐ信号が０１に戻された時は、フロー制御ディジットの送信を再開することができ、−その点において、センダは現在フロー制御ディジットを送信してはおらず、それゆえセンダは次のサイクルにおいてそれを送信することができる。
【００７８】
ノードとインタフェースユニットとの間の境界におけるプロトコルは、いま説明したプロトコルとは異なっており、仮想成分インタフェースにより用いられるプロトコルと同様のものである。送信インタフェースおよび受信インタフェースには、ｖａｌおよびａｃｋ信号が存在する。ｖａｌ＝ａｃｋ＝１である時は、フロー制御ディジットは注入プロトコルのために交換される。消費（バス出力）プロトコルは、注入プロトコルと異なるが、出力の登録を可能にする（従って、チップ上のシステムへの合成および統合を簡単化する）最小の論理である。消費プロトコルは、以下のように定義される：立上りクロックエッジにおいて、もしＣＯＮ ＢＬＯＣＫ＝１ならば、データは次のクロックエッジにおいて閉塞される；立上りクロックエッジにおいて、もしＣＯＮ ＢＬＯＣＫ＝０ならば、データは次のクロックエッジにおいて閉塞解除される；ＣＯＮ ＢＬＯＣＫは、機能ユニットからのフロー制御（閉塞）信号である。
【００７９】
もちろん、このインタフェースにおけるプロトコルは、変更することができ、バスの全体的動作には影響を与えない。
これと仮想成分インタフェースとの間の相違は、ａｃｋ信号がデフォルトにより高であり、データの受信ができないサイクルにおいてのみ低が表明されることである。この制限がないと、ノードは追加のレジスタのバンクを必要とする。
【００８０】
バスプロトコルは、１つまたはそれ以上のフロー制御ディジットから成る交換パケットを許容する。第１のパケットの上位部分の８ビットは宛先モジュールＩＤを搬送し、パケットを配信するためにバスシステムにより用いられる。トップの２ビットはまた、内部バスの目的のために用いられる。全ての他のビットフィールドにおいては、フロー制御ディジットのバッキングはバスシステムとは無関係である。
【００８１】
それぞれのインタフェースユニットにおいて、仮想成分インタフェースプロトコルが用いられる。インタフェース制御フィールドおよびデータフィールドは、送信インタフェースによりバスフロー制御ディジット内にパックされ、その後受信インタフェースユニットにおいてアンパックされる。バスに対する、主たる高帯域幅インタフェースは、高度仮想成分インタフェースを用いる。高度仮想成分インタフェースの全ての機能は、ＯＣＢの内部動作を最適化するために用いられるものを除き実施される。
【００８２】
仮想成分インタフェースプロトコルは、図８に示されているように、非同期ハンドシェイクを用いる。データは、ＶＡＬ＝ＡＣＫ＝１である時に有効である。バスインタフェースは、データおよび制御情報を、仮想成分インタフェースプロトコルからバス内部通信プロトコルに変換する。
【００８３】
バスシステムは、制御情報とデータとを区別しない。代わりに、制御ビットおよびデータは、パケット内にパックされて宛先インタフェースユニットに送られ、そこでそれらはアンパックされ、データおよび制御に分離し返される。実施例においては、仮想成分インタフェースコンプライアントインタフェースユニットが用いられる。代わりに、異なるインタフェースユニット（例えば、ＡＲＭ  ＡＭＢＡコンプライアントインタフェース）を用いることもできることを認識すべきである。
【００８４】
テーブルIIは、本発明の実施例による相互接続システムにより用いられるデータフロー制御ディジット内のフィールドを示す。フロー制御ディジット内の全ての他の情報は、単にバスにより移送される。エンコーディングおよびデコーディングは、インタフェースユニットにより行われる。インタフェースユニットはまた、ヘッドおよびテールビットをフロー制御ディジット内に挿入し、またＭＯＤ  ＩＤを正しいビットフィールド内に挿入する。
【００８５】
【表２】
2004525449.tif 000004
【００８６】
高度仮想成分インタフェースのパケットタイプは、読取り要求、書込み要求および読取り応答である。読取り要求は、単一フロー制御ディジットパケットであり、全ての関連する仮想成分インタフェースの制御フィールドは、そのフロー制御ディジット内にパックされる。書込み要求は、２つまたはそれ以上のフロー制御ディジットから成る。第１のフロー制御ディジットは、仮想成分インタフェース制御情報（例えば、アドレス）を含む。後続のフロー制御ディジットは、データおよびバイトイネーブルを含む。読取り応答は、１つまたはそれ以上のフロー制御ディジットから成る。第１の、および後続の、フロー制御ディジットは、全てデータ＋仮想成分インタフェースの応答フィールド（例えば、ＲＳＣＲＩＤ、ＲＴＲＤＩＤおよびＲＰＫＴＩＤ）を含む。
【００８７】
高度仮想成分インタフェースの、パケット上へのマッピングの例をここで説明する。この例は、１２８ビット幅のデータ経路を有するバスに対するものである。ノードは、それぞれのパケットの第１のフロー制御ディジット内のビット１５９：１５２から、宛先モジュールＩＤを抽出する。読取り応答パケットの場合には、これは仮想成分インタフェースのＲＳＣＲＩＤフィールドに対応する。
【００８８】
【表３】
2004525449.tif 000005
2004525449.tif 000006
【００８９】
周辺仮想成分インタフェースのバーストモードの読取りおよび書込みトランザクションは、バスを経ては効率的に実施されることができないので、サポートされない。この理由のために、周辺仮想成分インタフェースのＥＯＰ信号は論理「１」に固定されるべきである。どのような追加の処理ユニットまたは外部ユニットもバスに取付けることができるが、ＥＯＰ信号はやはり論理「１」に固定されるべきである。この変更を行えば、ユニットは正常に作動するはずである。
【００９０】
読取り要求タイプは、読取られるべきデータの３２ビットのアドレスを搬送する、単一のフロー制御ディジットパケットである。読取り応答は、要求された３２ビットのデータを含む、単一フロー制御ディジット応答である。書込み要求は、書込まれるべき場所の３２ビットアドレス＋３２ビットのデータ、および４ビットのバイトイネーブルを含む、単一フロー制御ディジットパケットである。書込み応答は、読取り要求に対してと同様に書込み要求に対して応答するターゲットを阻止する。全ての追加の信号と共に、３２ビット（データ）周辺仮想成分インタフェースは、バス上の６９ビットを占有する。
【００９１】
【表４】
2004525449.tif 000007
【００９２】
バスの内部アドレス指定機構は、システム内の全てのオンチップブロックが固定された８ビットモジュールＩＤを有するとの仮定に基づく。仮想成分インタフェースは、単一広域アドレス空間の使用を指定する。内部的には、バスは、システム内のそれぞれのブロックのモジュールＩＤに基づいてパケットを配信する。モジュールＩＤは８ビット幅のものである。全ての広域アドレスは８ビットのモジュールＩＤを含み、インタフェースユニットは、そのアドレスから単に宛先モジュールＩＤを抽出する。そのアドレス内におけるモジュールＩＤビットの場所は、前もって定められている。
【００９３】
それぞれのシステムにおけるモジュールＩＤは、グループに分割される。それぞれのグループは、１６モジュールまで含むことができる。システム内のＴスイッチは、いずれの出力ポートにそれぞれのパケットを送るべきかを決定するために、グループＩＤを用いる。
【００９４】
それぞれのグループ内には、１６個までのオンチップブロックが存在でき、そのそれぞれは独自のサブＩＤを有する。それぞれのグループ内への１６モジュールのみの含有は、バスのトポロジーを制限しない。それぞれの線形バスセクション内には、１つより多くのグループが存在できるが、異なるグループからのモジュールはインタリーブされない。Ｔスイッチの間には、１６より多くのモジュールが存在できる。グループＩＤおよびサブＩＤの使用の唯一の目的は、Ｔスイッチ内のルーティングテーブルを簡単化することである。もしＴスイッチが用いられていなければ、モジュールの番号付与は任意に行える。もし線形バストポロジーが用いられ、インタフェースが順次に番号を付与されていれば、テーブルの代わりに比較器を用いることができるので、これはレーン番号の発生を簡単化する。しかし、テーブルも論理の最小化の後には、もっと小さくすることができる。異なるバス上の２つのインタフェースは、同じｍｏｄ  ＩＤ（＝インタフェースＩＤ）を有することができる。
【００９５】
本発明の実施例による相互接続上の誤りトラヒックを減少させる例を、ここで説明する。正当なｍｏｄ  ＩＤをもたないパケットが、インタフェースユニットに提示された時は、それはパケットの受理通知を行うが、またｒｅｒｒｏｒ仮想成分インタフェースフィールド内にエラーを発生する。そのパケットは、バス上へは送られない。インタフェースユニットが、それを「吸収」し、それを破壊する。
【００９６】
実施例において、バスシステムブロックは与えられたプロセスにおいて、合成可能なＲＴＬブロックと同じクロック速度で動作する。０．１３μｍ４０Ｇプロセッサの場合、ターゲットクロック速度は４００ＭＨｚである。３つの別個のバスが存在する。それぞれのバスは、別個のパラメータ化された成分を含む。チップ上の全ての機能ユニットに接続される、６４ビット幅の周辺仮想成分インタフェースバスが存在する。２つの高度仮想成分インタフェースバスが存在し、その１つは１２８ビットのデータ経路（それぞれの単方向レーン上に生帯域幅５１．２Ｇｂｉｔｓ／ｓｅｃ）を有し、他は２５６ビットデータ経路（それぞれの単方向レーン上に生帯域幅１０２．４Ｇｂｉｔｓ／ｓｅｃ）を有する。この帯域幅の全ては、制御のオーバヘッドおよび要求パケットのために完全には利用できず、フロー制御ディジット内への効率的なデータのパッキングを実現することは必ずしもできない。バス上の同時のデータ転送により、帯域幅のいくらかの増加は見られるが、これはシステムシミュレーションにおいてのみ決定できる。
【００９７】
実施例においては、バス上のパケットのレーテンシは、送信インタフェースユニットにおいて１サイクルであり、データが通過するバスブロック（ノードおよび中継器）毎に１サイクルであり、ノードの消費ユニットにおいては１サイクルまたは２サイクルが追加され、受信インタフェースユニットにおいては１サイクルであり、またｎをフロー制御ディジットにおけるパケット長とすると、ｎ−１サイクルである。この数字は全データ転送のためのレーテンシを与え、レーテンシがパケットサイズと共に増加することを意味する。
【００９８】
ノード内の注入制御装置にプログラム可能性を導入することにより、帯域幅割当てを制御することは可能である。
パケットをバスレーンの間で交換することは不可能である。いったんパケットがバスシステムに入ると、それは宛先インタフェースユニットにおいて取り出されるまで、同じバスレーン上に留まる。バス上のパケットは、インタリーブされることは許されない。クロックサイクル毎に新しいフロー制御ディジットを注入する必要はない。換言すれば、ギャップサイクルを有することができる。これらのギャップは、パケットがバスシステム内にある時は、パケット内に留まり、帯域幅を浪費する。これらのパケットは、パケットがバスシステム内にある時は、パケット内に留まって閉塞されず、従って帯域幅を浪費する。もし閉塞されれば、確認されたデータのみが連結されるので、中間の非有効データは除去される。ギャップパケットの数を最小化するほかに、十分なＦＩＦＯバッファリングを行って、それぞれのパケットが完全に送られてしまうまで、ブロックがフロー制御ディジットの注入を控えられるように保証すること、または、ギャップを発生させないようにブロックを設計すること、が必要である。
【００９９】
本発明によるシステムにおいては、（フロー制御ディジット内の）パケットの長さに制限はない。しかし、過度に大きいパケットについては考慮が必要である。その理由は、それらが大量のバスリソースを使用するからである。長いパケットは、ヘッダフロー制御ディジットのオーバヘッドのために、多数の短いパケットよりも効率的であることができる。
【０１００】
本発明による相互接続システムは、要求されたデータアイテムが、それらの要求された順序でモジュールへ返送されることを保証しない。ブロックは、もし順序が問題となる場合は、パケットの再順序付けの責任を負う。これは、高度仮想成分インタフェースのｐｋｔｉｄフィールドを用いて行われ、このフィールドは、顕著なトランザクションにタグを付け、再順序付けをする。データが、システム内の他のブロックから要求された順序でオンチップブロックに到着するとは仮定できない。順序付けが重要である場合は、受信オンチップブロックは、パケットを再順序付けできなければならない。このルールに付随する障害は、システムのデッドロックとなりやすい。
【０１０１】
本発明による相互接続システムは、相互接続トポロジーの選択に、かなりの柔軟性を提供する。しかし、現在は、そのトポロジー内にループを有することは賢明ではない。その理由は、ループはデッドロックの可能性を導入するからである。
【０１０２】
しかし、もしループが用いられるとしても、デッドロックを生じないようにルーティングテーブルをプログラムすることは可能である。これは、必要なチェックを実施するためのソフトウェアと共に、デッドロックからの自由を与えるある方法を必要とする。
【０１０３】
本発明による相互接続システムのさらなる利点は、パケットによりバスを飽和させても、バスに障害を起こさせないことである。それらのパケットは、最後には配信されるが、平均レーテンシはかなり増大する。もし輻そうが最大スループットよりも低く低減されれば、それは「正常動作」に復帰する。
【０１０４】
この点において、以下のルールを考慮すべきである。すなわち、ループはバストポロジー内にあってはならず、オンチップブロックは、順に返送されてレーテンシが重要なトランザクションに依存してはならなず、また、多重トランザクションは同じバスセグメントを使用する必要があり、最大パケットサイズは存在すべきである。上述のように、もしループが将来必要であれば、あるデッドロック防止戦略が存在しなければならない。理想的には、これは形式的証明を含む。さらに、もし順序付けが重要ならば、ブロックは、トランザクションを再順序付けできなければならない。同じレーン上を進む同じターゲットからの２つのトランザクションは、ターゲットがそれらを送ったのと同じ順序で返送される。もし要求が２つの異なるターゲットに対して行われたものとすれば、その順序付けは非決定性のものとなる。
【０１０５】
本発明の相互接続成分の多くは、場所およびルートが後に続く直接的ＲＴＬ合成を含む。インタフェースユニットは、全体的設計の要求に依存して、オンチップブロック内、またはバスのために確保されているエリア内へ組み込まれ、例えば、バスの下には自由な多くのエリアが存在するので、機能ブロックエリアを追加するよりもこのエリアを使用すれば、全体的チップエリアが減少するので有意義である。
【０１０６】
相互接続システムは、システムオンチップ（ｓｙｓｔｅｍ−ｏｎ−ｃｈｉｐ）プラットホームの基礎を形成する。システムを総合的にチップ上に配置するプロセスを加速するために、ノードが、システムクロックリセット信号の分配を処理するために必要な「フック」を含むことが提案された。まず個々のチップを考察すると、イニシエータとターゲットとの間のトランザクションおよび応答のルーティングは、相互接続システムに接続するインタフェースブロック、およびシステム内に介在するＴスイッチにより行われる。ブロックのアドレス指定は、ハードワイヤードのもので、かつ地理的なものであり、ルーティング情報は、チップの集積時に、インタフェースおよびＴスイッチ内にコンパイルされる。前記プラットホームは、チップレベルおよびチップ上のブロックレベルにおける、あるモジュール性を必要とする。従って、それらが、いずれの他のチップまたはそれらの内部機構に接続されるかは、チップ自身内にハードコードすることはできない。その理由は、これは、異なるラインカード上において変化するからである。
【０１０７】
しかし、本発明によれば、それぞれのチップに、ある簡単なルールを与え、またこれをサポートするチップのトポロジーおよび列挙法を設計することにより、ハードワイヤードルーティング情報を用いてチップ配置の柔軟性を提供することができる。これは、簡単性およびチップ自身内におけるルーティング機構への自然な拡張であることの二重の利益を有する。
【０１０８】
図１１は、線形チップ配置の例を示す。もちろん、本発明により異なるトポロジーを実現できることも認識すべきである。このような線形配置においては、チップ１１００（０）ないし（２）などは、順次に番号付与することが容易であるので、いずれのチップのいずれのブロックも、トランザクションがその宛先に到着するために、物理アドレスのチップＩＤフィールド内に示されているように、相互接続１１１０を「上って」または「下って」ルーティングされなければならないことを知る。これは、ブロックが、同じチップ上の別のブロックまでルーティングするために行うプロセスと正確に同じである。この場合、２レベルの決定が用いられる。もし「現チップ」内であればブロックＩＤに基づいてルーティングし、そうでなければチップＩＤに基づいてルーティングする。
【０１０９】
図１２には、別のトポロジーが示されている。それは、平行に配置された第１のバスレーン１２０１および第２のバスレーン１２０２を含む。第１および第２のバスレーンは、本発明の実施例の相互接続システムに対応する。複数のマルチスレッドアレイプロセッサ（ＭＴＡＰ）１２１０は、２つのバスレーン１２０１、１２０２の間に接続されている。ネットワーク入力装置１２２０、コレクタ装置１２３０、ディストリビュータ装置１２４０、ネットワーク出力装置１２５０は、第２のバスレーン１２０２に接続され、テーブルルックアップエンジン１２６０は第１のバスレーン１２０１に接続されている。これらのバスレーンに接続されている諸装置の動作の詳細は、ここでは説明しない。
【０１１０】
図１２に示されているように、別のトポロジーにおいては、第１のバスレーン１２０１（例えば、２５６ビット幅のもの）は、高速経路のパケットデータのために専用される。第２のバスレーン１２０２（例えば、２５８ビット幅のもの）は、テーブルルックアップ、命令フェッチ、外部メモリアクセス、などのような、一般的非パケットデータのために用いられる。ブロックアクセスバスレーン１２０１、１２０２は、ＡＶＣＩプロトコルを用いる。ブロックの構成および状態レジスタの読書きのための、追加のバスレーン（ここには図示せず）を用いてもよい。このレーンにアクセスするブロックは、ＰＶＣＩプロトコルを用いる。
【０１１１】
さらに一般的には、ブロックが相互接続に接続される場所、およびブロックが用いるレーンは、選択されることができる。フロアプランニングの制約における許容度は、もちろん考慮しなければならない。例えば、ブロックは多重バスインタフェースを有することができる。レーン幅は、システムの帯域幅要求を満たすように構成することができる。
【０１１２】
本発明の相互接続システムは、インタフェース間のポイントツーポイント接続および分散アービトレーションを用いるので、競合または干渉なしに同時に通信するいくつかの機能ブロックの対を有することができる。ブロック間のトラヒックは、そのトラヒックが共用バスセグメントに沿って同じ方向に進む場合に限り干渉できる。この状況は、適切なレイアウトを選択することにより回避できる。すなわち、バス競合は、高速経路のパケットフローにおいて回避できる。これは、予測可能で信頼性のあるパフォーマンスを実現し、かつ相互接続の過提供を回避するために重要である。
【０１１３】
上述の例は、パケットデータがＮＩＰ−ＤＩＳ−ＭＴＡＰ−ＣＯＬ−ＮＯＰを経てバスレーン上を左から右へ流れるので、高速経路における競合を回避する。パケットは、いずれのバスセグメントをも１回よりも多く通過しないので、バス競合は起こらない。ＭＴＡＰプロセッサの間では、１つが一時に送信または受信しつつあるのみなので、干渉は起こらない。バス競合を回避するもう１つの方法は、図１３に示されているように、ＭＴＡＰプロセッサを主データ経路を外れた「支線」上に配置することである。
【０１１４】
このトポロジーは、同じバスセグメント１３００上を反対方向に進むトラヒックが干渉しない事実を利用するために、Ｔジャンクション１３０５を用いている。Ｔジャンクションブロック１３０５の使用は、レイアウトおよびフロアプランニングの制約を考慮するバストポロジーの設計を容易にする。
【０１１５】
最低（ハードウェア）レベルの抽象において、本発明の相互接続システムは、好ましくは、高度仮想成分インタフェースのトランザクションをサポートし、これらのトランザクションは単に、イニシエータインタフェースからターゲットインタフェースへ送られた、仮想成分インタフェース規格に定められている可変サイズメッセージであり、その後には後刻の応答が可能な限り続く。この応答は遅延するので、これは仮想成分インタフェースシステムにおける分割トランザクションと呼ばれる。ネットワーク処理システムアーキテクチャは、ブロック間通信プロトコルにおいて２つの高レベルの抽象、すなわち、チャンクおよび抽象データグラム（しばしば単にデータグラムと呼ばれる）を定義する。チャンクは、１つのブロックからもう１つのブロックへ転送されるべき、かなり小量のデータを表す論理エンティティである。抽象データグラムは、アプリケーションのための自然単位のデータを表す論理エンティティである。
【０１１６】
ネットワーク処理のアプリケーションにおいては、抽象データグラムは、ほとんど常にネットワークのデータグラムまたはパケットに対応する。区別は、ネットワーク化以外の他のアプリケーションにおけるアーキテクチャブロックの使用を考慮するために行われる。チャンクは、ＣＳＩＸ  Ｃフレームにいくらか類似しており、同様の目的のため、すなわち、便利な小単位のデータ転送を行うために用いられる。チャンクは、定められた最大サイズ、一般に約５１２バイト、を有するが、データグラムは、遥かに大きい、一般に９Ｋバイトまでのサイズであることができる。正確なサイズは構成可能である。データグラムが、１つのブロックからもう１つのブロックへ転送される必要がある時は、実際の転送は、チャンクのシーケンスを送ることにより行われる。これらのチャンクは、バスインタフェースにおいて、一連のＡＶＣＩトランザクション内にパッケージ化される。
【０１１７】
本発明の実施例によるシステムアドレス指定スキームを、ここでさらに詳細に説明する。本発明の実施例によるシステムは、１つより多くのチップにおいて実施されるサブシステムを含む。
【０１１８】
まず、個々のチップを考察すると、イニシエータとターゲットとの間の、トランザクションおよび応答のルーティングは、相互接続自身に接続されたインタフェースブロック、および相互接続内に介在するＴスイッチ素子により行われる。ブロックの、本発明の実施例によるアドレス指定は、ハードワイヤードのもので、かつ地理的なものであり、ルーティング情報は、チップの集積時に、インタフェースユニット、Ｔスイッチおよびノード素子ロジック内にコンパイルされる。
【０１１９】
インタフェースＩＤは、６４ビットの物理アドレスの上位部分を占有し、下位ビットはブロック内においてオフセットされる。追加物理ビットは、マルチチップへの拡張をサポートするチップＩＤ用に保存される。
【０１２０】
本発明の実施例によるプラットホームは、チップレベルおよびチップ上のブロックレベルにおける、あるモジュール性を必要とし、それらが、いずれの他のチップまたはそれらのチップの内部機構に接続されるかの知識は、これが異なるラインカード上において変化するために、ハードコードすることはできない。これは、１つのチップ内のトランザクションのためのインタフェースユニット内に存在するものと同じハードワイヤードバスルーティング情報スキームの使用を妨げる。
【０１２１】
しかし、それぞれのチップに、ある簡単なルールを与え、またこれをサポートするチップのトポロジーおよび列挙法を設計することにより、ハードワイヤードルーティング情報を用いてチップ配置の柔軟性を提供することができる。これは、簡単性およびチップ自身内におけるルーティング機構への自然な拡張であることの二重の利益を有する。
【０１２２】
図１４および図１５には、パケットキューメモリが２つのメモリハブチップの周囲に実施された、トラヒックハンドラサブシステムの例が示されている。
この例において、４つのチップは他のチップに対する４つの接続を有する。この結果、１つのチップから次のチップへ、トランザクションがとるルートに関しあいまいさを生じる可能性がある。従って、相互接続内にプログラム可能なルーティング機能を含める必要なしに、ハードウェアおよびソフトウェアを適切に構成することにより、トランザクションのフローを制御する必要がある。
【０１２３】
これは、チップＩＤを、単一の番号ではなくｘ、ｙ座標とすることにより行われる。例えば、チップ１４０１のチップＩＤは４、２であり、チップ１４０３は５、１であり、チップ１４０４は５、３であり、チップ１４０２は６、２である。簡単なハードワイヤードルールが、別のチップを宛先とするトランザクションの次のホップをどのようにルーティングすべきかに関して適用される。このようにして、ローカルルールが所望のトランザクションフローを与えるように、諸チップを仮想「格子」上に配置する。この格子は、所望の効果を得るために、ギャップまたは転位を残すことにより「ひずませる」ことができる。
【０１２４】
それぞれのチップは、それが有する外部ポートの数およびそれらのポートのＮ、Ｓ、Ｅ、Ｗの羅針盤方位への割当てを含む、チップ自身についての完全な知識を有する。この知識は、インタフェースユニットおよびＴスイッチ内へ送られる。チップは、そのチップに対しいずれの他のチップが接続されているか、または他のチップのｘ、ｙ座標、についての知識は全くもたない。
【０１２５】
それぞれのチップにおけるローカルルールは、次の通りである。
１．トランザクションは、その相対格子位置と最小の角をなすように、インタフェース上においてルートを発せられる。
２．結合の場合、Ｎ−ＳインタフェースはＥ−Ｗよりも好ましい。
【０１２６】
これらのルールを上述の４つのチップの例に適用すると、到着チップおよびディスパッチチップ１４０１、１４０２を通る主水平軸に沿ったトランザクションは、ｙ＝２とし、単にｘ座標上における上り／下りを用いてルーティングされる。
【０１２７】
到着またはディスパッチチップ１４０１、１４０２から、メモリハブ１４０３、１４０４の一方へのトランザクションは、４５度の角を有し、第２のルールが適用されて、これらをＥ−ＷではなくＮ−Ｓでルーティングする。
【０１２８】
メモリハブ１４０３、１４０４から任意の他のチップへの応答は、他のチップがｘ＝５でないので、明らかにＥ／Ｗの選択を行う。
適切なチップ座標の選択および上述のルールの適用により表現できないチップトポロジーまたはトランザクションフローは、存在しないと推測される。
【０１２９】
本発明の方法およびシステムの実施例を添付図面に示し、また以上の詳細な説明において説明したが、本発明は、開示した実施例に制限されることはなく、以下の特許請求の範囲に記載されている本発明の範囲から逸脱することなく、さまざまな変形、改変が可能であることを理解すべきである。
【図面の簡単な説明】
【０１３０】
【図１】本発明の実施例による相互接続システムを組み込んだシステムのブロック概略図である。
【図２】図１の仮想成分インタフェースシステムのイニシエータおよびターゲットを示すブロック概略図である。
【図３】図１に示されている相互接続システムのノードのブロック概略図である。
【図４】図１に示されているシステムの仮想成分の間の、本発明による相互接続上における接続のブロック概略図である。
【図５ａ】図１のＴスイッチの代表的構造の図である。
【図５ｂ】図５ａのＴスイッチの内部接続を示す図である。
【図６】図１のシステムのモジュールＩＤ（インタフェースＩＤ）エンコーディングを示す。
【図７】本発明の実施例による相互接続システムにおけるハンドシェイキング信号を示す。
【図８】ｏｃｃｕｐ〔１：０〕＝０１である時の、本発明の実施例である相互接続システムの閉塞行動を示す。
【図９】本発明の実施例による相互接続システムの２サイクルの間の閉塞を示す。
【図１０】本発明の実施例による仮想成分インタフェースハンドシェイクを示す。
【図１１】本発明の実施例によるシステムの線形チップ配置を示す。
【図１２】本発明の相互接続システムの概略ブロック図であり、別のトポロジーを示している。
【図１３】本発明の相互接続システムの概略ブロック図であり、さらなる別のトポロジーを示している。
【図１４】本発明の実施例によるトラヒック処理サブシステムの例を示す。
【図１５】本発明の実施例の方法による仮想格子に基づきチップを位置付けするシステムを示す。
【図１６】本発明の実施例の方法によるトランザクションのルーティングを示す。
【図１】
2004525449.tif 000008
【図２】
2004525449.tif 000009
【図３】
2004525449.tif 000010
【図４】
2004525449.tif 000011
【図５】
2004525449.tif 000012
【図６】
2004525449.tif 000013
【図７】
2004525449.tif 000014
【図８】
2004525449.tif 000015
【図９】
2004525449.tif 000016
【図１０】
2004525449.tif 000017
【図１１】
2004525449.tif 000018
【図１２】
2004525449.tif 000019
【図１３】
2004525449.tif 000020
【図１４】
2004525449.tif 000021
【図１５】
2004525449.tif 000022
【図１６】
2004525449.tif 000023
【国際公開パンフレット】
2004525449.tif 000024
2004525449.tif 000025
2004525449.tif 000026
2004525449.tif 000027
2004525449.tif 000028
2004525449.tif 000029
2004525449.tif 000030
2004525449.tif 000031
2004525449.tif 000032
2004525449.tif 000033
2004525449.tif 000034
2004525449.tif 000035
2004525449.tif 000036
2004525449.tif 000037
2004525449.tif 000038
2004525449.tif 000039
2004525449.tif 000040
2004525449.tif 000041
2004525449.tif 000042
2004525449.tif 000043
2004525449.tif 000044
2004525449.tif 000045
2004525449.tif 000046
2004525449.tif 000047
2004525449.tif 000048
2004525449.tif 000049
2004525449.tif 000050
2004525449.tif 000051
2004525449.tif 000052
2004525449.tif 000053
2004525449.tif 000054
2004525449.tif 000055
2004525449.tif 000056
2004525449.tif 000057
2004525449.tif 000058
2004525449.tif 000059
2004525449.tif 000060
2004525449.tif 000061
2004525449.tif 000062
2004525449.tif 000063
2004525449.tif 000064
2004525449.tif 000065
2004525449.tif 000066
2004525449.tif 000067
2004525449.tif 000068
2004525449.tif 000069
2004525449.tif 000070
2004525449.tif 000071
2004525449.tif 000072
2004525449.tif 000073
2004525449.tif 000074
2004525449.tif 000075
2004525449.tif 000076
2004525449.tif 000077
2004525449.tif 000078
2004525449.tif 000079
2004525449.tif 000080
2004525449.tif 000081
2004525449.tif 000082
2004525449.tif 000083
2004525449.tif 000084
2004525449.tif 000085
2004525449.tif 000086
2004525449.tif 000087
2004525449.tif 000088
2004525449.tif 000089
2004525449.tif 000090
2004525449.tif 000091
2004525449.tif 000092
【国際公開パンフレット（コレクトバージョン）】
2004525449.tif 000093
2004525449.tif 000094
【手続補正書】
【提出日】平成15年4月28日(2003.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の機能ユニットを接続する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、前記相互接続システムは機能ユニットの間で複数のデータパケットを移送し、それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有し、前記相互接続システムはパイプライン処理されたトポロジーを有する、前記相互接続システム。
【請求項２】
複数の機能ユニットを相互接続しかつ複数のデータパケットを移送する相互接続システムにおいて、前記相互接続システムは、複数のノードであってそれぞれのノードが機能ユニットと通信する前記複数のノードを含み、第１のノードと第２のノードとの間でデータパケットが移送されない時は、前記第１のノードと前記第２のノードとの間の前記相互接続システムの部分は動作停止され引き出す電力が最小となる、前記相互接続システム。
【請求項３】
それぞれのデータパケットは、ノードが前記データパケットを前記相互接続システムを経て送ることを可能にする前記データパケットに関連するルーティング情報を有し、前記相互接続システムは所定のトポロジーを有する、請求項２記載の相互接続システム。
【請求項４】
前記データパケットの配信は保証されている、請求項１から請求項３までのいずれかに記載の相互接続システム。
【請求項５】
前記相互接続システムはハードワイヤードルーティング情報をさらに含む、請求項１から請求項４までのいずれかに記載の相互接続システム。
【請求項６】
前記相互接続システムはプロトコルを断定できないものである、請求項１または請求項２記載の相互接続システム。
【請求項７】
アービトレーションは前記機能ユニット間で分散される、請求項１または請求項２のいずれかに記載の前記相互接続システム。
【請求項８】
前記相互接続に沿って所定距離の間隔をおいた複数の中継器ユニットを含み、前記データパケットは単一クロックサイクル中に、連続した中継器ユニットおよび／またはノードの間で移送されるようになっている、請求項１から請求項７までのいずれかに記載の相互接続システム。
【請求項９】
前記データパケットは、前記ノードおよび／または中継器ユニットの間でパイプライン処理される、請求項８記載の相互接続システム。
【請求項１０】
それぞれの中継器ユニットは、前記相互接続の閉塞時にデータを圧縮する手段を含む、請求項８または請求項９記載の相互接続システム。
【請求項１１】
前記ルーティング情報は宛先のｘ、ｙ座標を含む、請求項１から請求項１０までのいずれかに記載の相互接続システム。
【請求項１２】
前記相互接続の長さに沿ってのクロッキングは分散される、請求項１から請求項１１までのいずれかに記載の相互接続システム。
【請求項１３】
それぞれのノードは入力バッファ、注入制御および／または消費制御を含む、請求項１から請求項１２までのいずれかに記載の相互接続システム。
【請求項１４】
それぞれのノードは同時にデータを注入および出力できる、請求項１３記載の相互接続システム。
【請求項１５】
前記相互接続システムは複数のバスを含む、請求項１から請求項１４までのいずれかに記載の相互接続システム。
【請求項１６】
それぞれのノードは前記複数のバスの少なくとも１つに接続されている、請求項１５記載の相互接続システム。
【請求項１７】
それぞれのバスの少なくとも部分は１対の単方向バスレーンを含む、請求項１５または請求項１６記載の相互接続システム。
【請求項１８】
データはそれぞれのバスレーン上を反対方向に移送される、請求項１４記載の相互接続システム。
【請求項１９】
少なくとも１つのＴスイッチを含み、該Ｔスイッチはそれぞれのデータパケットに関連する前記ルーティング情報から前記データパケットを移送する方向を決定する、請求項１から請求項１８までのいずれかに記載の相互接続システム。
【請求項２０】
データパケットを所定のトポロジーの機能ユニットの間でルーティングする方法において、それぞれのデータパケットはそれに関連するルーティング情報を有し、前記方法は、
（ａ）前記ルーティング情報を読取るステップと、
（ｂ）前記ルーティング情報から前記データパケットを移送する方向を決定するステップと、
（ｃ）前記データパケットをステップ（ｂ）において決定された方向に移送するステップと、
を含む前記方法。
【請求項２１】
請求項１から請求項１９までのいずれかに記載の前記相互接続システムを組み込んだ処理システム。
【請求項２２】
それぞれの機能ユニットはインタフェースユニットを経てノードに接続されている、請求項２３記載のシステム。
【請求項２３】
それぞれのインタフェースユニットは、前記相互接続システムへ移送されるべき、また前記相互接続システムから受け取られるべきデータのための前記プロトコルをセットする手段を含む、請求項２２記載のシステム。
【請求項２４】
前記機能ユニットは分散アービトレーションを用いて前記相互接続システムにアクセスする、請求項２２または請求項２３記載のシステム。
【請求項２５】
それぞれの機能ユニットは、再使用可能なシステムのオンチップ機能ユニットを含む、請求項２２から請求項２４までのいずれかに記載のシステム。
【請求項２６】
請求項１から請求項１９までのいずれかに記載の前記相互接続システムを組み込んだ集積回路。
【請求項２７】
複数のチップを含む総合システムにおいて、それぞれのチップは請求項１から請求項１９までのいずれかに記載の前記相互接続システムを組み込み、前記相互接続システムは前記複数のチップを相互接続する前記総合システム。
【請求項２８】
複数のデータパケットを相互接続システムを経て移送する方法において、前記相互接続システムは複数のノードを含み、前記方法は、
データパケットを第１のノードと第２のノードとの間で移送するステップと、
移送が行われない時に、前記第１のノードと前記第２のノードとの間の前記相互接続システムの部分を動作停止させ引き出される電力を最小にするステップと、
を含む前記方法。
【国際調査報告】
2004525449.tif 000095
2004525449.tif 000096