(57)【要約】　　　（修正有）【課題】集積回路の方法および構造を開示すること。【解決手段】複数の論理コア１２２、前記論理コアに接続された複数のローカル・ハブ１２４、および前記ローカル・ハブに接続された複数のグローバル・ハブ１２０が含まれる。ローカル・ハブおよびグローバル・ハブは、論理コアの間でデータを転送する。本発明の目的は、ローカル・ルータ１２４およびグローバル・ルータ１２０を使用して、集積回路チップ内の論理モジュールの間で効率的なデータ転送を提供することである。【選択図】　図１
2004031898.tif 000002
【特許請求の範囲】
【請求項１】
集積回路であって、
複数の論理コアと、
前記論理コアに接続された複数のローカル・ハブと、
前記ローカル・バスに接続された複数のグローバル・ハブと
を含み、前記ローカル・ハブおよび前記グローバル・ハブが、前記論理コアの間でデータを転送する
集積回路。
【請求項２】
前記ローカル・ハブを前記論理コアに接続する第１データ・パスと、
前記ローカル・ハブを前記グローバル・ハブに接続し、前記グローバル・ハブを互いに接続する第２データ・パスと
をさらに含む、請求項１に記載の集積回路。
【請求項３】
前記ローカル・ハブおよび前記グローバル・ハブが、データ伝送を所与のクロック・サイクル内に完了できない時に前記データを保管するバッファを含む、請求項１に記載の集積回路。
【請求項４】
前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、宛先ハブへの最短パスを選択するプロセッサを含む、請求項１に記載の集積回路。
【請求項５】
前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、前記最短パスがブロックされる場合に代替パスを選択するプロセッサを含む、請求項４に記載の集積回路。
【請求項６】
前記ローカル・ハブのそれぞれが、前記複数の論理コアに接続され、前記グローバル・ハブのそれぞれが、複数の前記ローカル・ハブに接続される、請求項１に記載の集積回路。
【請求項７】
前記回路内の前記ハブの濃度が、非対称である、請求項１に記載の集積回路。
【請求項８】
高データ・トラフィック量の区域に、低データ・トラフィック量の区域より多くのハブが配置される、請求項１に記載の集積回路。
【請求項９】
集積回路であって、
複数の論理コアと、
前記論理コアに接続された複数のローカル・ハブと、
前記ローカル・ハブに接続された複数のグローバル・ハブと、
前記ローカル・ハブを前記論理コアに接続する第１データ・パスと、
前記ローカル・ハブを前記グローバル・ハブに接続し、前記グローバル・ハブを互いに接続する第２データ・パスと
を含み、
前記ローカル・ハブおよび前記グローバル・ハブが、前記論理コアの間でデータを転送し、
前記ローカル・データ・パスおよび前記グローバル・データ・パスが、互いに独立である
集積回路。
【請求項１０】
前記ローカル・ハブおよび前記グローバル・ハブが、データ伝送を所与のクロック・サイクル内に完了できない時に前記データを保管するバッファを含む、請求項９に記載の集積回路。
【請求項１１】
前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、宛先ハブへの最短パスを選択するプロセッサを含む、請求項９に記載の集積回路。
【請求項１２】
前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、前記最短パスがブロックされる場合に代替パスを選択するプロセッサを含む、請求項１１に記載の集積回路。
【請求項１３】
前記ローカル・ハブのそれぞれが、複数の前記論理コアに接続され、前記グローバル・ハブのそれぞれが、複数の前記ローカル・ハブに接続される、請求項９に記載の集積回路。
【請求項１４】
前記回路内の前記ハブの濃度が、非対称である、請求項９に記載の集積回路。
【請求項１５】
高データ・トラフィック量の区域に、低データ・トラフィック量の区域より多くのハブが配置される、請求項９に記載の集積回路。
【請求項１６】
集積回路内の論理コアの間でデータを転送する方法であって、
送出論理コアから第１ローカル・ハブへデータを転送するステップと、
前記第１ローカル・ハブから第１グローバル・ハブへ前記データを転送するステップと、
前記第１グローバル・ハブから第２グローバル・ハブへ前記データを転送するステップと、
前記第２グローバル・ハブから第２ローカル・ハブへ前記データを転送するステップと、
前記第２ローカル・ハブから宛先論理コアへ前記データを転送するステップと
を含む方法。
【請求項１７】
前記データが、宛先アドレスを使用して前記宛先論理コアを識別し、前記第１ローカル・ハブ、前記第１グローバル・ハブ、前記第２グローバル・ハブ、および前記第２ローカル・ハブのそれぞれが、前記宛先アドレスに基づいて前記データを転送する、請求項１６に記載の方法。
【請求項１８】
前記データが、ローカル・データ・パスを介して、前記第１ローカル・ハブおよび前記第２ローカル・ハブとの間で転送され、
前記データが、グローバル・データ・パスを介して、前記第１グローバル・ハブと前記第２グローバル・ハブとの間で転送される
請求項１６に記載の方法。
【請求項１９】
前記転送する処理のそれぞれが、前記宛先論理コアへの最短距離を含む主データ・パスを選択する処理を含む、請求項１６に記載の方法。
【請求項２０】
前記最短距離が、デカルト座標系に従って計算される、請求項１９に記載の方法。
【請求項２１】
前記主データ・パスが使用中の時に最短代替データ・パスを選択するステップをさらに含み、前記最短代替データ・パスが、前記宛先論理コアへの次に短い距離を含む、請求項１９に記載の方法。
【請求項２２】
集積回路内の論理コアの間の通信パススウェイを設計する方法であって、
複数のローカル・ハブを前記論理コアに接続するステップと、
複数のグローバル・ハブを前記ローカル・ハブに接続するステップと
を含む方法。
【請求項２３】
前記ローカル・ハブおよび前記グローバル・ハブのパターンが前記集積回路にわたって非対称になるように、前記集積回路のトラフィック要件に従って前記ローカル・ハブおよび前記グローバル・ハブを位置決めするステップをさらに含む、請求項２２に記載の方法。
【請求項２４】
前記位置決めするステップが、
前記集積回路上の前記ローカル・ハブおよび前記グローバル・ハブの初期配置を実行するステップと、
前記トラフィック要件に従って前記ローカル・ハブおよび前記グローバル・ハブを追加し、除去するステップと
を含む、請求項２３に記載の方法。
【請求項２５】
前記ローカル・ハブを互いに接続し、前記ローカル・ハブを前記論理コアに接続し、前記ローカル・ハブを前記グローバル・ハブに接続するために、ローカル・データ・パスを形成するステップと、
前記グローバル・ハブを互いに接続し、前記グローバル・ハブを前記ローカル・ハブに接続するために、グローバル・データ・パスを形成するステップと
をさらに含む、請求項２２に記載の方法。
【請求項２６】
前記ローカル・データ・パスの前記形成が、前記ローカル・パスのそれぞれをすべての他のローカル・ハブに接続し、
前記グローバル・データ・パスの前記形成が、前記グローバル・ハブのそれぞれをすべての他のグローバル・ハブに接続する
請求項２５に記載の方法。
【請求項２７】
前記ローカル・データ・パスの前記形成が、前記ローカル・ハブのそれぞれを他のすべてより少ないローカル・ハブに接続し、
前記グローバル・データ・パスの前記形成が、前記グローバル・ハブのそれぞれを他のすべてより少ないグローバル・ハブに接続する
請求項２５に記載の方法。
【請求項２８】
複数の前記論理コアが、前記ローカル・ハブのそれぞれに接続され、複数の前記ローカル・ハブが、前記グローバル・ハブのそれぞれに接続される、請求項２２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全般的には、集積回路内の論理コアの間の通信に関し、具体的には、ローカル・ルータおよびグローバル・ルータを使用して集積回路内のワイヤの数をかなり減らす改良されたシステムおよび方法に関する。
【０００２】
【従来の技術】
コンピュータ・システムには、伝統的に、コンピュータ・システムを構成する電気構成要素を含むシステム・ユニットまたはハウジングが含まれる。コンピュータ・システムには、通常は、マイクロプロセッサおよびメモリを保持するように構成されたマザーボードと、構成要素が通信できるようにする１つまたは複数のバスが含まれる。マザーボードには、通常は、知的周辺装置、バス・コントローラ、プロセッサ、バス・ブリッジなどを含む複数のコンピュータ・チップまたは電気構成要素が含まれる。
【０００３】
最近、コンピュータ・システムは、少数のコンピュータ・チップへの機能の集積と、１チップ上にシステム全体（論理、ストレージなど）を有するデバイス（ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ（ＳＯＣ））に向かって進歩しつつある。これは、ますます多数になる論理ブロックを単一のチップに配置する、チップ・メーカーの能力と一致する。したがって、コンピュータ・システムは、各コンピュータ・チップが多数の機能を実行する、少数のコンピュータ・チップだけを有するデバイスに向かって進歩しつつある。単一のコンピュータ・チップへの複数のモジュールまたは機能の集積は、チップ・アーキテクチャ内に改良されたデータ転送を有するシステムを必要とする。チップ上の構成要素のより短い距離およびより緊密な集積に起因して、新しいデータ転送アーキテクチャが、この環境を利用するために必要である。
【０００４】
さらに、数百個のコアを有する大規模特定用途向け集積回路（ＡＳＩＣ）では、相対的なコア位置の距離ならびに配線輻輳（ｗｉｒｉｎｇ　ｃｏｎｇｅｓｔｉｏｎ）に起因して、コア間で効率的に通信することが困難である。単一のＡＳＣＩ内に配置されるコアが増えるほど、配線の問題が大きくなり、したがって、通信の問題が大きくなる。したがって、集積回路チップ内の論理モジュールの間での効率的なデータ転送を提供する改良されたシステムおよび方法が必要である。
【０００５】
【発明が解決しようとする課題】
従来の配線方式の前述および他の問題、不利益、および短所に鑑みて、本発明が考案され、本発明の目的は、ローカル・ルータおよびグローバル・ルータを使用する改良されたシステムおよび方法の構造および方法を提供することである。
【０００６】
【課題を解決するための手段】
上で提案された目的を達成するために、本発明の１態様によれば、複数の論理コア、論理コアに接続された複数のローカル・ハブ、およびローカル・バスに接続された複数のグローバル・ハブを含む集積回路が提供される。ローカル・ハブおよびグローバル・ハブは、論理コアの間でデータを転送する。
【０００７】
本発明は、ローカル・ハブを論理コアに接続する第１データ・パスと、ローカル・ハブをグローバル・ハブに接続し、グローバル・ハブを互いに接続する第２データ・パスを含む。ローカル・ハブおよびグローバル・ハブは、データ伝送を所与のクロック・サイクル内に完了できない時にデータを保管するバッファを含む。ローカル・ハブおよびグローバル・ハブの少なくとも１つが、宛先ハブへの最短パスを選択する制御ユニットを含む。また、ローカル・ハブおよびグローバル・ハブの少なくとも１つが、最短パスがブロックされる場合に代替パスを選択する論理を含む。ローカル・ハブのそれぞれが、複数の論理コアに接続され、グローバル・ハブのそれぞれが、複数のローカル・ハブに接続される。回路内のハブの濃度は、非対称である。高データ・トラフィック量の区域に、低データ・トラフィック量の区域より多くのハブが配置される。
【０００８】
本発明は、複数の論理コアを有する集積回路も含む。本発明は、論理コアに接続された複数のローカル・ハブと、ローカル・ハブに接続された複数のグローバル・ハブを含む。第１データ・パスが、ローカル・ハブを論理コアに接続し、第２データ・パスが、ローカル・ハブをグローバル・ハブに接続し、グローバル・ハブを互いに接続する。ローカル・ハブおよびグローバル・ハブは、論理コアの間でデータを転送する。ローカル・データ・パスおよびグローバル・データ・パスは、互いに独立である。
【０００９】
また、本発明は、集積回路内の論理コアの間でデータを転送する。本発明は、送出論理コアから第１ローカル・ハブへデータを転送する。次に、本発明は、第１ローカル・ハブから第１グローバル・ハブへデータを転送する。本発明は、第１グローバル・ハブから第２グローバル・ハブへデータを転送する。本発明は、その後、第２グローバル・ハブから第２ローカル・ハブへデータを転送し、第２ローカル・ハブから宛先論理コアへデータを転送する。データは、宛先アドレスを使用して宛先論理コアを識別する。第１ローカル・ハブ、第１グローバル・ハブ、第２グローバル・ハブ、および第２ローカル・ハブのそれぞれが、宛先アドレスに基づいてデータを転送する。データは、ローカル・データ・パスを介して、第１ローカル・ハブおよび第２ローカル・ハブとの間で転送される。データは、グローバル・データ・パスを介して、第１グローバル・ハブと第２グローバル・ハブとの間で転送される。転送する処理のそれぞれが、宛先論理コアへの最短距離を有する主データ・パスを選択する。最短距離は、デカルト座標系に従って計算される。本発明は、主データ・パスが使用中の時に最短代替データ・パスを選択する。最短代替データ・パスは、宛先論理コアへの次に短い距離である。
【００１０】
また、本発明は、集積回路内の論理コアの間の通信パススウェイを設計する。本発明は、まず、複数のローカル・ハブを論理コアに接続する。本発明は、その後、複数のグローバル・ハブをローカル・ハブに接続する。また、本発明は、ローカル・ハブおよびグローバル・ハブのパターンが集積回路にわたって非対称になるように、集積回路のトラフィック要件に従ってローカル・ハブおよびグローバル・ハブを位置決めする。
【００１１】
本発明は、集積回路上のローカル・ハブおよびグローバル・ハブの初期配置を実行する。その後、本発明は、トラフィック要件に従ってローカル・ハブおよびグローバル・ハブを追加し、除去する。本発明は、ローカル・ハブを互いに接続し、ローカル・ハブを論理コアに接続し、ローカル・ハブをグローバル・ハブに接続するために、ローカル・データ・パスを形成する。本発明は、グローバル・ハブを互いに接続し、グローバル・ハブをローカル・ハブに接続するために、グローバル・データ・パスを形成する。
【００１２】
ローカル・データ・パスの形成が、ローカル・ハブのそれぞれをすべての他のローカル・ハブに接続する。グローバル・データ・パスの形成が、グローバル・ハブのそれぞれをすべての他のグローバル・ハブに接続する。代替案では、ローカル・データ・パスの形成が、ローカル・ハブのそれぞれを他のすべてより少ないローカル・ハブに接続する。同様に、グローバル・データ・パスの形成が、グローバル・ハブのそれぞれを他のすべてより少ないグローバル・ハブに接続する。複数の論理コアが、ローカル・ハブのそれぞれに接続され、複数のローカル・ハブが、グローバル・ハブのそれぞれに接続される。
【００１３】
本発明は、信号が通信パスに沿ったすべての点の宛先に到達するのに要する時間の量を計算する能力を有し、受取り側データ・コアが、現在のクロック・サイクルにデータを受け取るか否かを受取り側データ・コアに知らせる能力も有する。本発明は、ＳｏＣ内の効率的な通信に必要なワイヤの数を大幅に減らし、これによって、ワイヤの配置およびルーティングを助け、製造コストを節約する。本発明は、通信の効率も高め、これによって、待ち時間およびバス・アービトレーション・サイクルを減らす。
【００１４】
前述および他の目的、態様、および長所は、図面に関する本発明の好ましい実施形態の以下の詳細な説明からよりよく理解される。
【００１５】
【発明の実施の形態】
上で述べたように、大規模ＡＳＩＣでは、コア位置の間の距離および配線輻輳に起因して、コアの間で効率的に通信することが困難である。単一のＡＳＩＣ内に配置されるコアの数が増えるほど、配線の問題および通信の問題が大きくなる。ローカル・ハブ／ルータおよびグローバル・ハブ／ルータによって制御されるスーパー・ハイウェイ（グローバル・データ・パス）およびローカル・ハイウェイ（ローカル・データ・パス）を使用して配線輻輳を除去することによって、本発明は、通信の問題および配線輻輳を効果的に軽減する。さらに、最大の輻輳の区域および必要な通信需要の区域により多くのローカル・ハブおよびグローバル・ハブを（かつ、低い需要の区域により少ないハブを）配置することによって、本発明は、チップ・レベルでの非常に効率的な通信環境をもたらす。
【００１６】
具体的に言うと、図１からわかるように、本発明は、論理コア１２２を接続するグローバル・ハブ１２０およびローカル・ハブ１２４を提供する。本発明を用いると、各論理コア１２２が、ローカル・ハブ１２４に直接に接続される。ローカル・ハブ１２４は、格子様パターンで互いにならびにグローバル・ハブ１２０に接続される。グローバル・ハブ１２０に直接に接続されるローカル・ハブ１２４があり、各グローバル・ハブ１２０は、他のすべてのグローバル・ハブに接続される。この構造によって、多数の論理コア１２２が、ローカル・ハブ１２４に効率的に接続され、多数のローカル・ハブ１２４が、グローバル・ハブ１２０に効率的に接続され、このグローバル・ハブ１２０が、多数の他のグローバル・ハブ１２０に接続される。
【００１７】
図１に、最も密に設けられた可能なコア、ローカル・ハブ、およびグローバル・ハブのレイアウトを示す。たとえば、図１は、非常に拡大されたＡＳＩＣの左上角を表すことができる。ハブ・ポイントは、実際の回路設計の数万倍である。本発明と共に使用することができるチップのサイズに対する実際の制限はなく、ＸＹ座標を、所望のサイズまで単純に拡大することができる。すべての単一のサイクルについて、従来の構造では、現在の設計のワイヤの大多数が、インアクティブであり、低い有効利用率（ＵＦ）を生じる。従来の配線相互接続方法を用いると、多数のグローバル・ワイヤが存在するのと同時に、ＵＦが低い。低いＵＦは、ルーティング処理中に課せられるワイヤ制約に基づく劣悪な設計の特性である。対照的に、本発明は、最高の通信密度要件に従ってハブを対称に位置決めすることによって、ＵＦを高める。したがって、より多くのハブが、高ファンアウト区域に配置され、より少ないハブが、低使用区域に配置される。たとえば、図２に、図１に示されたものより疎に設けられた回路設計を示すが、図２では、グローバル・ハブ１２０およびローカル・ハブ１２４が、通信密度要件に応じて、一緒にクラスタ化される。言い換えると、図２に示された概略図の左上角と左下角が、回路の他の区域と比較した時に通信システムにより多くを要求すると予測される論理回路を有する。
【００１８】
増加した通信需要がどれほどかを判定する方法に関して、設計者は、システム・アーキテクチャを作成する時に、システム設計に基づいて、高トラフィック区域と低トラフィック区域がシステムのどこにあるかを既に知っており、したがって、最も効率的な位置にハブ／ルータを配置することができる。
【００１９】
本発明を用いると、ＵＦ率を分析するために、配線ツールが、シミュレーション環境とリンクされる。単純なノード・トグル計算機をシミュレーション中に使用して、マクロ対マクロ通信の量および密度を判定することができる。
【００２０】
可能な時には、本発明は、既存のバスを使用する。しかし、いくつかの場合（主アーキテクチャ・バスなど）に、ＵＦ率が高すぎ、ハブ配線が、既存のバスをバイパスする。このような状況では、ハブ・ワイヤが、専用の配線チャネルになる。しかし、本発明を用いて（ハブを使用して）達成されるグローバル配線の減少に起因して、高いＵＦワイヤへの能力がより簡単になる。
【００２１】
したがって、本発明は、最終化された設計での他の要素の最終配置を考慮してハブを配置する。したがって、ハブをどこに配置するかに関する初期計画がある場合があるが、実際の配置は、領域内の実際の回路に基づく。たとえば、非常に大きいＲＡＭアレイが最終設計のダイの角に配置される場合に、ハブ・ジェネレータは、この区域のグローバル・ハブを削除する。というのは、これらのグローバル・ハブが、ほとんどまたは全く目的にかなわないからである。言い換えると、本発明は、予備的に、ローカル・ハブおよびグローバル・ハブの間にチップにまたがって均一に間隔をおくことができる。この初期パターンは、回路設計が最終化される時に追加される構成要素に対処するためにハブを追加または削除することによって、非対称パターンに修正することができる。したがって、大部分の場合に、実際のハブ配置が、最大の許容可能なハブのサブセットになる。これによって、フロア・プラニングおよびチップ構築処理での柔軟性が可能になる。
【００２２】
したがって、本発明を用いると、多数のローカル・ハブおよびグローバル・ハブが、通信需要の高い領域に配置される。さらに、図２に、ローカル・ハブ１２４をグローバル・ハブ１２０に接続するのに使用されるローカル・データ・パス２００が示されている。図２では、ローカル・データ・パス２００が、格子パターンで示されている。しかし、本発明は、そのような格子パターンに制限されず、ローカル・データ・パスは、設計者の配線制限に応じて、任意の構成とすることができる。
【００２３】
図３に、ローカル・ハブ１２４またはローカル・データ・パス２００を示さずに、同一の回路を示す。その代わりに、図３は、グローバル・ハブ１２０およびグローバル・データ・パス３００の位置だけを示す概略図である。各グローバル・ハブ１２０を、他のすべてのグローバル・ハブ１２０に接続することができる。しかし、図３に示された実施形態で、さまざまなグローバル・ハブ１２０の間の接続は、データが、おそらくは宛先ローカル・ハブに達する前に複数のグローバル・ハブを介して流れることができるように制限される。さまざまなグローバル・ハブ１２０の間のグローバル・データ・パスのパターン、長さ、および量は、回路サイズおよび配線に使用可能なスペースに応じて変化する。グローバル・パスは、ローカル・ルータ・システムに接続され、したがって、ローカル・パスに結合される。しかし、コアが、その宛先アドレスおよびデータのパケットをグローバル・ルータに直接に送る（その宛先コアも同様に別のグローバル・ルータに直接に結合される）場合に、グローバル・パスが、ローカル・パスから独立になる。同様に、コアが、その宛先アドレスおよびデータをローカル・ハブ／ルータに送り、その宛先コアが、ローカル・パスだけがデータ転送に使用されるように近接している場合に、ローカル・パスは、グローバル・パスから独立である。
【００２４】
本発明の重要な特徴は、グローバル・データ・パス３００によって作成されるデータ「スーパー・ハイウェイ」である。具体的に言うと、従来のシステムでは、データが、宛先コアに到達するために、論理コアから論理コアへ直接に移動しなければならない。その代わりに、データを、集積回路にまたがって移動するためにローカル・ハブからローカル・ハブへ渡すことができる。しかし、そのようなシステムは、そのようなデータの転送にかなりの時間を要する。対照的に、本発明では、データをグローバル・ハブから別のグローバル・ハブに単純に渡す（設計によってそのようなグローバル・データ・パスが可能であると仮定する）ことによって、回路全体にまたがって直接にデータを移動することができる。代替案では、すべてのハブがすべての他のハブに接続されているのではない図３に示された構造を用いると、限られた数のグローバル・ハブだけが、データ転送にかかわる必要がある。
【００２５】
したがって、本発明は、実質的により少ない間に入るデータ転送を使用してデータを渡すことができるので、論理コアから論理コアへ（またはローカル・ハブからローカル・ハブへ）データを渡す従来の構造より優れている。たとえば、論理コアから論理コアへデータを渡すことに、チップにまたがってデータを移動するために、数千回または数万回の個々のデータ転送が用いられる場合がある。対照的に、本発明を用いると、起点論理コアが、起点ローカル・ハブにデータを渡し、起点ローカル・ハブが、起点グローバル・ハブにデータを渡し、起点グローバル・ハブが、チップにまたがって宛先グローバル・ハブにデータを渡し（直接にまたは非常に少数（たとえば１００個未満）の他のグローバル・ハブを介してのいずれかで）、宛先グローバル・ハブが、宛先ローカル・ハブにデータを渡し、宛先ローカル・ハブが、宛先論理コアにデータを渡す。したがって、従来のシステムは、数千回の個々のデータ転送を用いる場合があるが、本発明は、たとえば１０回未満のデータ単転送（たとえば９０から９９％）の削減を使用して、同一の距離にまたがって同一の情報を渡すことができる。したがって、本発明は、従来のシステムよりはるかに高速に、はるかに信頼性のある形でデータを渡す。
【００２６】
本発明は、集積回路ダイ上のワイヤ輻輳も減らす。具体的に言うと、ある論理コアから別の論理コアにデータを渡すことに関連する遅延を避けるために、チップにまたがってデータを移動する時に、各論理コアを、チップ上の他のすべての論理コアに接続することができる。しかし、そのような解決策では、本発明と比較した時に、チップ上の配線の量がかなり増加する。たとえば、６４個のコアを互いに接続する場合に、第１コアから他のすべてのコアへの６３本の両方向ワイヤが、必要になる。これは、次のコアから他のコアのすべてへの６２本のワイヤを必要とし（第１コアからのワイヤは２回カウントしない）、以下同様である。式の形では、これが、（ｎ−１）＋（ｎ−２）＋…＋（ｎ−（ｎ−２））＋（ｎ−（ｎ−１））＋（ｎ−ｎ）と表される。この式は、（ｎ−１）（ｎ／２）に簡約化される。したがって、６４個のコアの場合に、各コアを他のすべてのコアに接続するために、１９８４本のワイヤが必要である。しかし、本発明の構造では、ローカル・ハブを使用して、各コアが、コアからローカル・ハブに必要な６４本のワイヤ（ハブごとに８つのコアがある８つのローカル・ハブ＝６４）と、各ローカル・ハブを他のすべてのローカル・ハブに接続する２８本のワイヤ（（８−１））×（８／２））だけを使用して他のすべてのコアに接続され、従来のシステムの１９８４本のワイヤではなく、合計９２本のワイヤが必要である。各ローカル・ハブをグローバル・ハブに接続するのに追加の８本のワイヤが必要であり、総計１００本のワイヤになる。従来は、２５６個のコアが、３２７６８本のワイヤを必要とする。本発明を用いると、２５６個のコアを、１００本のワイヤの４つのグループ（４００本のワイヤ）にセット・アップすることができる。４つのグローバル・ハブを接続するのに必要な追加の６本のワイヤによって、合計わずかに４０６本のワイヤがもたらされる。これは、本発明を従来の構造と比較した時に、９８．７７％の配線削減をもたらす。
【００２７】
図４からわかるように、グローバル・ハブ１２０およびローカル・ハブ１２４のそれぞれに、ローカル・データ・パス２００およびグローバル・データ・パス３００を接続する１つまたは複数の入出力コネクタ４００が含まれる。さらに、中央処理装置などの論理デバイス４０２およびバッファ４０４が、１つまたは複数のグローバル・ハブ１２０およびローカル・ハブ１２４内に設けられる。動作中は、グローバル・ハブ１２０およびローカル・ハブ１２４のそれぞれが、入出力コネクタ４００を介して転送されるデータを受け取る。データには、たとえばヘッダ情報内など、宛先論理コアに関する情報が含まれる。論理デバイス４０２は、最短データ・パスを突き止め、そのパスに沿ってデータを転送する。
【００２８】
最短（かつ最速）のデータ・パスを判定するために、本発明は、物理チップ上でデカルト座標系（たとえば、図１に示されたＸＹ数字付き座標系）を使用して、各コアの物理的位置を判定する。論理デバイス４０２は、コア（１１、６）からコア（１、１５）など、相対的に離れたコアからの最適パスを、近い間隔のコア（１３、８）から（１２、９）などと同様に簡単に計算する。Ｘ方向とその後にＹ方向で２つのコアの間の距離を計算する単純なアルゴリズムを使用することによって、論理デバイス４０２は、最高速のパスを識別する。さらに、１つのパスが使用中の場合に、論理デバイス４０２は、代替パスを動的に識別する。
【００２９】
各コアが、ローカル・ハブに接続されるので、各コアは、データのパケットと共に宛先アドレスをローカル・ハブに送る。ローカル・ハブは、デカルト格子上のそれ自体のアドレスならびに宛先アドレスを使用する計算を実行して、最適ルーティング方法を判定する。論理コアの間の距離が、行および列の所定の数（たとえば２）以下の場合に、ローカル・ハブ・ハイウェイを使用する。この例のように、距離が２行または２列を超える場合に、グローバル・ハイウェイをルーティングに使用する。適度な時間の間に使用可能なパスが見つからない（すなわち、パスのすべてが使用中）場合には、タイムアウト・エラーが発生し、起点コアに、パケットを送信できなかったことが通知される。送出コアは、エラーを受け取らない場合に、転送が成功であったと仮定することができる。
【００３０】
判断処理の流れ図を、図５に示す。具体的に言うと、項目５００で、宛先アドレスを含むデータのパケットを、ローカル・ハブ１２４で受け取る。その後、項目５０２で、座標系の１つの方向（Ｎ）でローカル・ハブのデカルト座標位置を宛先位置と比較して、２つの位置の間の差の絶対値が所定の限度を超える（｜Ｎ１−Ｎ２｜＞ｍ２）かどうかを判定する。この例では、所定の限度が２であるが、当業者に既知であるように、任意の限度を使用することができる。類似する形で、項目５０４で、垂直の座標（Ｍ）の絶対値を検査して、それが所定の限度を超える（｜Ｍ１−Ｍ２｜＞ｍ２）かどうかを調べる。
【００３１】
どちらの座標値の差も所定の限度を越えない場合に、処理は、項目５０６に進み、データを、ローカル・ハブを介してルーティングする。どちらかの座標系が所定の限度を超える場合（項目５０２および５０４で判定される）には、項目５０８に示されているように、グローバル・ハブを使用する。本発明は、項目５１０および５１４で、ローカル・パスおよびグローバル・パスが使用中であるかどうかを検査し、パスが使用中でない限り、グローバル・データ・パスまたはローカル・データ・パスを介する要求の処理を継続する。
【００３２】
項目５１２で、第１グローバル・データ・パスが使用中であり、パスが使用可能になるのを待つのに十分な時間（すなわち、クロック・サイクルの終りの前の十分な時間）がある場合には、処理は項目５０８に戻って、使用中のパスが使用可能になるのを待つ。待つことができない場合（項目５１２）には、処理は項目５２０に進んで、代替グローバル・ハブ／データ・パスを使用する。十分な時間は、宛先に移動するために残されている距離を計算し、それを残りのクロック・サイクル数と比較する、ハブ／ルータ内の制御論理によって判定される。データが宛先コアに到達するのに十分な時間がある場合には、ハブ／ルータは、トランザクションを進める。十分な時間がない（すなわち、宛先コアが遠すぎる）場合には、ハブ／ルータは、データをバッファリングし、次のクロック・サイクルの開始時にそのデータをもう一度起動する。そのような遅延されたデータ・パケットは、後続のクロック・サイクル中に他のデータ・パケットより高い優先順位を有する。
【００３３】
類似する形で、項目５１４の判定で、ローカル・パスが使用中である場合に、本発明は、項目５１８で代替ローカル・パスを使用する。項目５１６で、代替グローバル・パスも使用中である場合には、処理は、項目５１８に進み、ここで、代替ローカル・パスを、グローバル・パスの代わりに使用する。項目５２２では、代替ローカル・パスも使用中である場合に、項目５２４でタイムアウト・エラーを生じ、そうでない場合には、処理は項目５１８にループ・バックして、代替ローカル・パスの使用を継続する。したがって、本発明は、使用中のパスの回りで転送されるデータをリダイレクトするために、異なるローカル・データ・パスおよびグローバル・データ・パスの間で動的に選択する。
【００３４】
これらの物理的位置から、本発明は、現在位置と他のコアの間の正確な距離も計算し、データがソース・コアから宛先コアに移動するのに要する信号遅延時間を判定する。この時間推定値が、現在のクロック・サイクル内の残りの時間を超える場合には、次のクロック・サイクルまで、データをバッファ４０４に保管する。ディジタル論理の性質に起因して、データは、ロジックのコアを介して、あるラッチから別のラッチへと渡される。ラッチは、通常は、システム・クロックによって駆動されるクロック・パルスのエッジによってトリガされる。したがって、ラッチは、クロック・エッジ・パルス（通常は立ち上がり）を得る時に、保管したデータを出力する。受取り側のラッチは、同一クロック・サイクルの立ち下がりエッジになってからデータを取り込む。システムの安定を保つために、すべての転送を、同一のクロック・サイクル内で行わなければならない。
【００３５】
同様に、ハブが、使用中のパスが使用可能になる（または、使用中のハブが使用可能になる）のを待つ必要があり、そのハブまたはパスが使用可能になるのに必要な時間が、現在のクロック・サイクルを超えて延びる場合には、データが失われないようにするために、待っているハブ内のバッファ４０４にデータが保管される。ハブが、使用中のパスに沿ってまたは使用中のハブへのデータの転送を待っている時間の間に、バッファ４０４内に情報を保持して待っているハブは、追加のデータの受け入れを拒否する。これによって、データの消失または混合が防がれる。バッファ４０４は、次のハブ／ルータまたは最終的なコア宛先を待っているハブ／ルータにあるデータの現在のパケットを保管するのに使用される。制御論理が、クロック・サイクル内の残りの時間およびコアへの距離のうちにデータが最終宛先に到達するのに十分な時間があるかどうかを判定する。十分な時間がない場合には、バッファにデータが保管され、制御論理が、コアに、コアがこのサイクルに期待しているデータが、少なくとも次のクロック・サイクルまで到着しないことを知らせる信号をアサートする。
【００３６】
転送処理のブロック図を、図６に示す。項目６０で、本発明は、送出側論理コアからローカル・ハブにデータを転送する。次に、項目６２で、本発明は、ローカル・ハブからグローバル・ハブにデータを転送する。その後、項目６４で、本発明は、グローバル・ハブから別のグローバル・ハブにデータを転送する。項目６６で、本発明は、グローバル・ハブから別のローカル・ハブにデータを転送する。最後に、項目６８で、本発明は、ローカル・ハブから宛先論理コアにデータを転送する。通信パスウェイの形成処理の流れ図を、図７に示す。まず、項目７０で、本発明は、ローカル・ハブおよびグローバル・ハブの初期配置を実行する。次に、項目７１で、本発明は、トラフィック要件に従ってローカル・ハブおよびグローバル・ハブを除去する。その後、項目７２で、本発明は、ローカル・データ・パスを形成する。項目７３で、本発明は、グローバル・データ・パスを形成する。次に、本発明は、項目７４でローカル・ハブを論理コアに接続する。最後に、項目７５で、本発明は、グローバル・ハブをローカル・ハブに接続する。
【００３７】
本発明を用いると、グローバル・ハブにデータを転送しようとするローカル・ハブ、または別のグローバル・ハブにデータを転送しようとするグローバル・ハブは、最終的な宛先論理コアへの最短距離（したがって、最短の遅延時間）を必要とするハブとして、次の宛先ハブを選択することが好ましい。したがって、各ハブは、最小の数の中間ハブを含み、直線（たとえば主データ・パス）でデータを転送するパス（ローカルおよびグローバル）にデータを向けようとする。しかし、上で述べたように、主データ・パスが使用中の時には、グローバル・ハブおよびローカル・ハブを含む代替パスを使用することができる。さらに、各ハブは、パス使用可能性およびクロック・サイクル内の残りの時間を与えられて、次の宛先ハブ（ローカルまたはグローバル）に関する個別の決定を行う。したがって、一連のハブを介して転送されるデータは、クロック・サイクルが終わる時に、中間のハブ（一連のハブの）内にある場合がある。そのような状況では、中間のハブが、次のクロック・サイクルまでバッファ４０４にデータを保管する。これによって、次のクロック・サイクルまで、データが転送中に失われない（すなわち、システム内で準安定性が発生しない）ことが保証される。バッファ４０４内にデータを保管したハブ／ルータは、その後、新しいクロック・サイクルの開始時に、チェーン内の次のハブ／ルータまたは宛先コア自体にデータを送る。これを最初に行うのは、新しいデータを受け入れられるようになる前に、空のバッファ４０４を有しなければならないからである。そうでなければ、パスに沿ってくる新しいデータによって、既存のデータが上書きされる。
【００３８】
さらに、本発明は、遅延伝搬をブロードキャストする（知る）能力を提供する。デカルト座標系では、固定された配線プラン／イメージが可能なので、配線が確立されると、ネットワークの伝搬遅延は決定的になる。ハブ／ルータのそれぞれが、コアのそれぞれへの直接の信号線を有する。これは、単に、データが現在のクロック・サイクルに入手可能にならない時にアサートされる、小さい１ビット・ワイヤである。本発明では、この信号を、ＮＴＣ（Ｎｏｔ　Ｔｈｉｓ　Ｃｙｃｌｅ）信号と呼ぶ。したがって、データを要求するコアは、それが要求したデータが、このクロック・サイクルに入手可能でないことを知り、したがって、データをラッチしてはならないことを知る。宛先コアは、ＮＴＣ信号がデアサートされる時に限ってデータをラッチする。これによって、正しいデータが、正しいクロック・サイクルに宛先コアで取り込まれることが保証される。他のハブ／ルータは、別のハブ／ルータからのＮＴＣ信号を読み取らない。他のハブ／ルータは、宛先コアへの信号をアサートまたはデアサートする能力だけを有する。他のハブ／ルータは、ＮＴＣ信号のアサートまたはデアサートの、他のハブ／ルータのヒストリの記録を有しないので、他のハブ／ルータに、他のパスに関するＮＴＣ信号の統計を分析する論理を含める必要はない。ＮＴＣ信号の唯一の機能は、データがこのサイクル中に使用可能にならないが、次のサイクルにデータを受け取る可能性が高いことを宛先コアに知らせることである。
【００３９】
タイミング・クリティカルなネットでは、優先順位方式をハブ・ルータに追加して、主ハブ・パス・ルーティングを第１に、クリティカル・ネットに重みを付けることができる。ハブ／ルータが、２つの異なる位置から同時に２つの情報のパケットを受け取る場合に、そのハブ／ルータは、単純な優先順位方式に基づいて、どちらのパケットを最初に送るか分析する。各パケットに、そのソースおよび宛先に関する他のヘッダ情報と共に、優先順位コードが含まれる。高い優先順位を有するパケットが、最初に最も直接な経路にルーティングされ、第２のパケットは、バッファ４０４に保管される。最高優先順位のパケットがその経路に送られた時に、第２のパケットが、その最も直接なパスに送られる。ハブ／ルータが第１パケットを分析しており、第２パケットがバッファに保管されている間に、第３パケットが転送される場合には、第３パケットは、拒否され、ビジー信号が、起点のコアまたはハブ／ルータに送られる。しかし、第２パケットが送られ、バッファがクリアされた後に、起点リクエスタがもう一度試みる場合に、その第３パケットを受け入れ、ルーティングすることができる。しかし、リクエスタが、この時までに代替パスを見つけている可能性が高い。
【００４０】
本発明は、信号が通信パスに沿ったすべての点の宛先に到達するのに要する時間の量を計算する能力を有し、受取り側データ・コアが、現在のクロック・サイクルにデータを受け取るか否かを受取り側データ・コアに知らせる能力も有する。本発明は、ＳｏＣ内の効率的な通信に必要なワイヤの数を大幅に減らし、これによって、配置およびルーティングを助け、製造コストを節約する。本発明は、現在のほとんどのシステムに見られる待ち時間およびバス・アービトレーション・サイクルを減らすことによって、通信の効率も高める。
【００４１】
好ましい実施形態に関して本発明を説明してきたが、本発明を、請求項の趣旨および範囲内で修正を加えて実践できることを、当業者は諒解するであろう。
【００４２】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４３】
（１）集積回路であって、
複数の論理コアと、
前記論理コアに接続された複数のローカル・ハブと、
前記ローカル・バスに接続された複数のグローバル・ハブと
を含み、前記ローカル・ハブおよび前記グローバル・ハブが、前記論理コアの間でデータを転送する
集積回路。
（２）前記ローカル・ハブを前記論理コアに接続する第１データ・パスと、
前記ローカル・ハブを前記グローバル・ハブに接続し、前記グローバル・ハブを互いに接続する第２データ・パスと
をさらに含む、上記（１）に記載の集積回路。
（３）前記ローカル・ハブおよび前記グローバル・ハブが、データ伝送を所与のクロック・サイクル内に完了できない時に前記データを保管するバッファを含む、上記（１）に記載の集積回路。
（４）前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、宛先ハブへの最短パスを選択するプロセッサを含む、上記（１）に記載の集積回路。
（５）前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、前記最短パスがブロックされる場合に代替パスを選択するプロセッサを含む、上記（４）に記載の集積回路。
（６）前記ローカル・ハブのそれぞれが、前記複数の論理コアに接続され、前記グローバル・ハブのそれぞれが、複数の前記ローカル・ハブに接続される、上記（１）に記載の集積回路。
（７）前記回路内の前記ハブの濃度が、非対称である、上記（１）に記載の集積回路。
（８）高データ・トラフィック量の区域に、低データ・トラフィック量の区域より多くのハブが配置される、上記（１）に記載の集積回路。
（９）集積回路であって、
複数の論理コアと、
前記論理コアに接続された複数のローカル・ハブと、
前記ローカル・ハブに接続された複数のグローバル・ハブと、
前記ローカル・ハブを前記論理コアに接続する第１データ・パスと、
前記ローカル・ハブを前記グローバル・ハブに接続し、前記グローバル・ハブを互いに接続する第２データ・パスと
を含み、
前記ローカル・ハブおよび前記グローバル・ハブが、前記論理コアの間でデータを転送し、
前記ローカル・データ・パスおよび前記グローバル・データ・パスが、互いに独立である
集積回路。
（１０）前記ローカル・ハブおよび前記グローバル・ハブが、データ伝送を所与のクロック・サイクル内に完了できない時に前記データを保管するバッファを含む、上記（９）に記載の集積回路。
（１１）前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、宛先ハブへの最短パスを選択するプロセッサを含む、上記（９）に記載の集積回路。
（１２）前記ローカル・ハブおよび前記グローバル・ハブの少なくとも１つが、前記最短パスがブロックされる場合に代替パスを選択するプロセッサを含む、上記（１１）に記載の集積回路。
（１３）前記ローカル・ハブのそれぞれが、複数の前記論理コアに接続され、前記グローバル・ハブのそれぞれが、複数の前記ローカル・ハブに接続される、上記（９）に記載の集積回路。
（１４）前記回路内の前記ハブの濃度が、非対称である、上記（９）に記載の集積回路。
（１５）高データ・トラフィック量の区域に、低データ・トラフィック量の区域より多くのハブが配置される、上記（９）に記載の集積回路。
（１６）集積回路内の論理コアの間でデータを転送する方法であって、
送出論理コアから第１ローカル・ハブへデータを転送するステップと、
前記第１ローカル・ハブから第１グローバル・ハブへ前記データを転送するステップと、
前記第１グローバル・ハブから第２グローバル・ハブへ前記データを転送するステップと、
前記第２グローバル・ハブから第２ローカル・ハブへ前記データを転送するステップと、
前記第２ローカル・ハブから宛先論理コアへ前記データを転送するステップと
を含む方法。
（１７）前記データが、宛先アドレスを使用して前記宛先論理コアを識別し、前記第１ローカル・ハブ、前記第１グローバル・ハブ、前記第２グローバル・ハブ、および前記第２ローカル・ハブのそれぞれが、前記宛先アドレスに基づいて前記データを転送する、上記（１６）に記載の方法。
（１８）前記データが、ローカル・データ・パスを介して、前記第１ローカル・ハブおよび前記第２ローカル・ハブとの間で転送され、
前記データが、グローバル・データ・パスを介して、前記第１グローバル・ハブと前記第２グローバル・ハブとの間で転送される
上記（１６）に記載の方法。
（１９）前記転送する処理のそれぞれが、前記宛先論理コアへの最短距離を含む主データ・パスを選択する処理を含む、上記（１６）に記載の方法。
（２０）前記最短距離が、デカルト座標系に従って計算される、上記（１９）に記載の方法。
（２１）前記主データ・パスが使用中の時に最短代替データ・パスを選択するステップをさらに含み、前記最短代替データ・パスが、前記宛先論理コアへの次に短い距離を含む、上記（１９）に記載の方法。
（２２）集積回路内の論理コアの間の通信パススウェイを設計する方法であって、
複数のローカル・ハブを前記論理コアに接続するステップと、
複数のグローバル・ハブを前記ローカル・ハブに接続するステップと
を含む方法。
（２３）前記ローカル・ハブおよび前記グローバル・ハブのパターンが前記集積回路にわたって非対称になるように、前記集積回路のトラフィック要件に従って前記ローカル・ハブおよび前記グローバル・ハブを位置決めするステップをさらに含む、上記（２２）に記載の方法。
（２４）前記位置決めするステップが、
前記集積回路上の前記ローカル・ハブおよび前記グローバル・ハブの初期配置を実行するステップと、
前記トラフィック要件に従って前記ローカル・ハブおよび前記グローバル・ハブを追加し、除去するステップと
を含む、上記（２３）に記載の方法。
（２５）前記ローカル・ハブを互いに接続し、前記ローカル・ハブを前記論理コアに接続し、前記ローカル・ハブを前記グローバル・ハブに接続するために、ローカル・データ・パスを形成するステップと、
前記グローバル・ハブを互いに接続し、前記グローバル・ハブを前記ローカル・ハブに接続するために、グローバル・データ・パスを形成するステップと
をさらに含む、上記（２２）に記載の方法。
（２６）前記ローカル・データ・パスの前記形成が、前記ローカル・パスのそれぞれをすべての他のローカル・ハブに接続し、
前記グローバル・データ・パスの前記形成が、前記グローバル・ハブのそれぞれをすべての他のグローバル・ハブに接続する
上記（２５）に記載の方法。
（２７）前記ローカル・データ・パスの前記形成が、前記ローカル・ハブのそれぞれを他のすべてより少ないローカル・ハブに接続し、
前記グローバル・データ・パスの前記形成が、前記グローバル・ハブのそれぞれを他のすべてより少ないグローバル・ハブに接続する
上記（２５）に記載の方法。
（２８）複数の前記論理コアが、前記ローカル・ハブのそれぞれに接続され、複数の前記ローカル・ハブが、前記グローバル・ハブのそれぞれに接続される、上記（２２）に記載の方法。
【図面の簡単な説明】
【図１】本発明によるローカル・ルータおよびグローバル・ルータの概略図である。
【図２】論理ブロック、ローカル・ルータ、およびグローバル・ルータの配置を示す概略図である。
【図３】グローバル・ルータの間の接続を示す概略図である。
【図４】論理コアの概略図である。
【図５】ローカル・ルータ、グローバル・ルータ、および論理ブロックの間で信号を向けるのに使用される論理を示す流れ図である。
【図６】集積回路内の論理コアの間のデータの転送を示す流れ図である。
【図７】集積回路内の論理コアの間の通信パスウェイを示す流れ図である。
【符号の説明】
１２０　グローバル・ハブ
１２２　論理コア
１２４　ローカル・ハブ
２００　ローカル・データ・パス
３００　グローバル・データ・パス
４００　入出力コネクタ
４０２　論理デバイス
４０４　バッファ
【図１】
2004031898.tif 000003
【図２】
2004031898.tif 000004
【図３】
2004031898.tif 000005
【図４】
2004031898.tif 000006
【図５】
2004031898.tif 000007
【図６】
2004031898.tif 000008
【図７】
2004031898.tif 000009