(57)【要約】電子アセンブリ（１００）は、インターポーザ（１０２）に設けられた水平積層されたダイ（１０４，１０５，１０６，１０７）を含み、垂直積層されたダイ（１０７，１１１，１１２，１１３）も含むことができる。積層されたダイは、リンクパーティションとルータパーティションとに分割されたマルチホップ通信ネットワーク（１０１）を介して相互接続されている。リンクパーティションは、水平積層されたダイ用のインターポーザの金属層内に少なくとも部分的に実装されている。また、リンクパーティションは、単一のダイ内のダイ内相互接続部（３３４，３３５）によって、および、垂直積層されたダイのセットを接続するダイ間相互接続部（２２２）によって部分的に実装されてもよい。ルータパーティションは、インターポーザに設けられたダイのうちいくつかまたは全てに実装されており、リンクパーティションの相互接続部を介して処理システム（１００）の構成要素間でパケットをルーティングする機能をサポートするロジック（４０２，４０４，４０６，４０８）を備える。ルータパーティションは、固定のルーティングを実装してもよいし、プログラム可能なルーティングテーブル（４０６）または構成可能な論理ブロックを用いて構成可能であってもよい。【選択図】図１
2016502287.tif 000002
【特許請求の範囲】
【請求項１】
インターポーザ（１０２）と、
前記インターポーザの表面に設けられ、前記インターポーザの１つ以上の金属層を介して接続される複数のダイ（１０４，１０５，１０６，１０７）と、
前記複数のダイ間でパケットをルーティングするマルチホップネットワーク（１０１）であって、前記マルチホップネットワークは、ルータパーティションとリンクパーティションとを備え、前記ルータパーティションは、前記複数のダイのうち少なくとも１つのダイのサブセットの各ダイに設けられたルーティングロジック（１２４，１２５，１２６、１２７）を備え、前記リンクパーティションは、前記インターポーザの前記１つ以上の金属層を含む、マルチホップネットワーク（１０１）と、を備える、
電子アセンブリ（１００）。
【請求項２】
前記複数のダイは、垂直積層されたダイ（１１１，１１２，１１３）のセットを含む、請求項１に記載の電子アセンブリ。
【請求項３】
前記垂直積層されたダイのセットは、前記サブセットのうち第１のダイ（１１１）を含み、
前記リンクパーティションは、前記垂直積層されたダイのセット用のオンダイの相互接続部（２２２）をさらに含み、
前記第１のダイの前記ルーティングロジックは、前記オンダイの相互接続部を用いて、パケットを、前記垂直積層されたダイのセットのデバイス間でルーティングする、請求項２に記載の電子アセンブリ。
【請求項４】
前記オンダイの相互接続部は、前記垂直積層されたダイのセットのうち複数のダイを相互接続するシリコン貫通ビア（ＴＳＶ）を含む、請求項３に記載の電子アセンブリ。
【請求項５】
前記垂直積層されたダイのセットのうち少なくとも１つのダイ（１０７）は、前記第１のダイと、前記インターポーザの前記表面との間に設けられており、
前記リンクパーティションは、前記第１のダイを前記インターポーザに接続する、前記垂直積層されたセットの１つ以上のシリコン貫通ビア（ＴＳＶ）を備える、請求項３に記載の電子アセンブリ。
【請求項６】
前記垂直積層されたダイのセットは、前記サブセットのうち第１のダイと、前記サブセットのうち第２のダイと、を含み、前記第１のダイは、前記ルーティングロジックの第１の部分を実装しており、前記第２のダイは、前記ルーティングロジックの第２の部分を実装している、請求項２に記載の電子アセンブリ。
【請求項７】
前記複数のダイは、第１のダイ（２０５）と第２のダイ（２０７）とを含み、前記第１のダイは、前記サブセット内に含まれており、前記ルーティングロジック（２１２）を実装しており、前記第２のダイは、前記ルーティングロジックを有しておらず、前記第１のダイおよび第２のダイは、前記インターポーザの１つ以上の金属層の配線を含むポイントツーポイントリンク（２１９）を介して接続されている、請求項１に記載の電子アセンブリ。
【請求項８】
インターポーザ（１０２）と、
前記インターポーザの表面に設けられた第１、第２および第３のダイ（２０４，２０５，２０６）であって、前記第１のダイおよび前記第２のダイは、前記インターポーザの１つ以上の金属層を含む第１のリンクのセット（２１６）を介して接続されており、前記第２のダイおよび前記第３のダイは、前記インターポーザのより多くの金属層を含む第２のリンクのセット（２１７）を介して接続されている、第１、第２および第３のダイ（２０４，２０５，２０６）と、を備え、
前記第２のダイは、前記第１のリンクのセットと、前記第２のリンクのセットとを介して、前記第１のダイと前記第３のダイとの間でパケットをルーティングするルーティングロジック（２１２）を備える、
電子アセンブリ（１００）。
【請求項９】
前記インターポーザの前記表面に設けられた第４のダイ（２０７）であって、前記第３のダイおよび前記第４のダイは、第３のリンクのセット（２１８）を介して接続されている、第４のダイ（２０７）をさらに備え、
前記第３のダイは、前記第２のリンクのセットと前記第３のリンクのセットとを介して、前記第１のダイと前記第２のダイと前記第４のダイとの間でパケットをルーティングするルーティングロジック（２１４）を備える、請求項８に記載の電子アセンブリ。
【請求項１０】
前記インターポーザの前記表面に設けられた第４のダイ（２０７）であって、前記第２のダイおよび前記第４のダイは、第３のリンクのセット（２１９）を介して接続されている、第４のダイ（２０７）をさらに備え、
前記第２のダイの前記ルーティングロジックは、前記第１、第２および第３のリンクのセットを介して、前記第１のダイと前記第３のダイと前記第４のダイとの間でパケットをルーティングする、請求項８に記載の電子アセンブリ。
【請求項１１】
垂直積層されたダイのセット（２０８）をさらに備え、前記垂直積層されたダイのセットは、前記第２のダイを含む、請求項８に記載の電子アセンブリ。
【請求項１２】
前記第２のダイの前記ルーティングロジックは、前記第１のリンクのセットと、前記第２のリンクのセットと、オンダイのリンクと、前記垂直積層されたダイのセットのシリコン貫通ビア（２２２）と、を介して、前記第１のダイと、前記第３のダイと、前記垂直積層されたダイのセットのうち前記ダイとの間でパケットをさらにルーティングするためのものである、請求項１１に記載の電子アセンブリ。
【請求項１３】
前記第２のダイの前記ルーティングロジックは、前記オンダイのリンクと、前記垂直積層されたダイのセットのシリコン貫通ビアと、を介して、前記垂直積層されたダイのセットのうち少なくとも１つのダイの回路部品間でパケットをルーティングする、請求項１２に記載の電子アセンブリ。
【請求項１４】
複数のダイ（２０４，２０５，２０６）のうち第１のダイ（２０４）から前記複数のダイのうち第２のダイ（２０５）へ第１のリンク（２１６）を介して第１のパケットを送信することであって、前記複数のダイは、インターポーザ（２０２）の金属層を介してマルチホップネットワーク（２０１）内で接続されており、前記第１のリンクは前記インターポーザの１つ以上の金属層を実装する、ことと、
前記第２のダイのルーティングロジック（２１２）を用いて、前記第１のパケット用のルーティングパス内の次のホップとして第３のダイ（２０６）を決定することと、
前記第２のダイから前記第３のダイへ第２のリンク（２１７）を介して前記第１のパケットを送信することであって、前記第２のリンクは前記インターポーザの１つ以上の金属層を実装する、ことと、を含む、方法。
【請求項１５】
前記第２のダイは、垂直積層されたダイ（１０７，１１１，１１２，１１３）のセットの複数のダイのうちの１つであり、
前記方法は、
前記第２のダイのルーティングロジックで、前記垂直積層されたダイのセットのシリコン貫通ビア（２２２）を含む第３のリンクを介して、前記垂直積層されたダイのセットの別のダイから第２のパケットを受信することと、
前記第２のダイの前記ルーティングロジックを用いて、前記第２のパケット用のルーティングパス内の次のホップとして第４のダイ（２０７）を決定することと、
前記第２のダイから前記第４のダイへ第４のリンク（２１９）を介して前記第２のパケットを送信することであって、前記第４のリンクは前記インターポーザの１つ以上の金属層を実装する、ことと、をさらに含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、コンピューティングおよびメモリデバイスに関し、より具体的には、インターポーザを介して接続された複数のダイデバイスに関する。
【背景技術】
【０００２】
通信およびメモリの帯域幅ならびに待ち時間は、多くの処理システムにおける重大なボトルネックである。これらの性能要因は、処理システムを実装する複数のダイがインターポーザとして既知のシリコン基板に配設されるようなダイ積層技術を用いて、ある程度まで改善され得る。ダイは、シリコン貫通ビア（ＴＳＶ）を用いて垂直に積層され、または、インターポーザの相互接続部もしくは垂直積層および水平積層の両方の組み合わせを用いて水平に積層され得る。水平積層では、インターポーザ内の金属層は、一般的に、一対のダイの間でポイントツーポイント通信を可能にするようにリンクを実装するために使用される。水平に積層されたダイ間の通信を提供するポイントツーポイントリンクの使用は、ダイの数に対応しない。従来の水平積層されたシステムにおけるダイの数の増加は、コストおよび複雑さを大幅に増加させるインターポーザ内の金属層の数の増加や、電力消費、信号待ち時間およびスキュー不一致を大幅に増加させるインターポーザのある特定のトレース長の増加の何れかを要する。
【０００３】
本開示は、添付の図面を参照することによって、より良く理解され、多数の特徴および利点が当業者に明らかになるであろう。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態による、ルータパーティションおよびリンクパーティションを備える分割されたマルチホップネットワークを利用する、例示的なダイ積層された処理システムの分解斜視図である。
【図２】いくつかの実施形態による、分割されたマルチホップネットワークを利用する別のダイ積層された処理システムの平面図および断面図である。
【図３】いくつかの実施形態による、ハイブリッドな分割されたマルチホップネットワークを利用する別の処理システムを示す図である。
【図４】いくつかの実施形態による、ダイ積層された処理システムの分割されたマルチホップネットワーク内で利用される例示的なルーティングロジックを示すブロック図である。
【図５】いくつかの実施形態による、ダイ積層された処理システム内でルーティングするマルチホップパケットのための例示的な方法を示すフロー図である。
【図６】いくつかの実施形態による、集積回路（ＩＣ）デバイスを設計および製造するための方法を示すフロー図である。
【発明を実施するための形態】
【０００５】
異なる図面における同一の符号は、類似または同一の項目を示している。
【０００６】
図１〜６は、マルチホップ通信ネットワークを利用する処理システム、または、他の電子アセンブリにおける改善された処理効率およびより低いコストのための例示的な技術を示す図である。電子アセンブリは、インターポーザに配設された、水平積層されたダイをさらに含んでもよい。電子アセンブリは、垂直積層されたダイをさらに含んでもよい。積層ダイは、メモリデバイスと、処理デバイスと、処理サポートロジックと、を含んでもよい。いくつかの実施形態では、マルチホップ通信ネットワークは、リンクパーティション（ｌｉｎｋ  ｐａｒｔｉｔｉｏｎ）と、ルータパーティション（ｒｏｕｔｅｒ  ｐａｒｔｉｔｉｏｎ）と、に分割（ｐａｒｔｉｔｉｏｎｅｄ）されている。リンクパーティションは、水平積層されたダイ用のインターポーザの金属層内に少なくとも部分的に実装されている。また、リンクパーティションは、単一のダイ内のダイ内相互接続部によって、かつ、垂直積層されたダイのセットを接続するダイ間相互接続部によって、部分的に実装されてもよい。いくつかの実施形態では、マルチホップネットワークは、リング、メッシュ、トーラス、ファットツリー、および、ｋ変数ｎ立方体等のような様々な従来のネットワークトポロジの何れかで実装されてもよい。他の実施形態では、マルチホップネットワークは、任意のルータおよびリンクが処理システムの必要性によって決定されるように相互接続された「不規則な」トポロジを実装してもよい。ルータパーティションは、インターポーザに配設されたダイのいくつかまたは全てに実装されており、リンクパーティションの相互接続部を介して処理システムの構成要素間でパケットをルーティングする機能をサポートするロジック（ｌｏｇｉｃ）を備えている。ルータパーティションは、固定ルーティングを実装してもよいし、プログラム可能なルーティングテーブルまたは構成可能な論理ブロックを用いて構成可能であってもよい。記載されたネットワーク分割は、インターポーザ内のロジックの欠如にかかわらず、水平積層された処理システム内のマルチホップネットワークの実装形態を容易にする。同様に、マルチホップネットワークは、より少ない数のインターポーザ金属層、および、より短いインターポーザトレースを用いてダイを相互接続することを可能にし、積層されたダイの数が増加するにつれてネットワーク拡張性を改善する。
【０００７】
図１は、いくつかの実施形態による、ルータパーティションおよびリンクパーティションを備えるマルチホップネットワークを利用する、ダイ積層された処理システム１００を示す図である。処理システム１００は、ノートブックまたはタブレットコンピュータや、デスクトップコンピュータや、サーバや、ネットワークルータや、スイッチまたはハブや、コンピューティング対応の携帯電話や、携帯情報端末などを含む様々なコンピューティングシステムの何れかを含むことができる。例示的な処理システム１００は、インターポーザ１０２の表面に配設された複数の水平積層ダイ１０４，１０５，１０６，１０７を含む。ダイ１０７は、ダイ１１１，１１２，１１３をさらに含む垂直ダイスタック１１０の最下位層である。
【０００８】
図示されたダイ１０４〜１０７，１１１〜１１３は、例えば、中央処理装置（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）などの、任意の様々なプロセッサコアおよびこれらの組み合わせを含むことができる。また、図示されたダイは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ強誘電体ＲＡＭ（Ｆ−ＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）などのメモリアーキテクチャを含むがこれらに限定されない、任意の様々なストレージデバイスを実装することができる。さらに、図示されたダイ１０４〜１０７，１２４〜１２７は、例えば、ノースブリッジおよびサウスブリッジ機能、入力／出力コントローラ、ネットワークインターフェースなどの、任意の周辺デバイスを含むことができる。また、処理システム１００は、ディスプレイコンポーネントに対する１つ以上の外部インターフェースや、ストレージデバイスや、入力デバイス（例えば、マウスまたはキーボード）などの、図１に示されない様々な他の構成要素を含むことができる。
【０００９】
いくつかの実施形態では、垂直ダイスタック１１０は、積層ダイ１１１〜１１３が例えばＤＲＡＭ、ＳＲＡＭ、ＲＯＭ等のメモリ回路を実装しており、ダイ１０７が積層ダイ１１１〜１１３のメモリ回路にアクセスするためのハードワイヤードロジックや、後述するルーティングロジックを実装する、積層されたメモリデバイスを備えている。垂直ダイスタック１１０は、様々な３Ｄ集積回路製造プロセスのうち何れかを用いて製造されてもよい。１つの手法では、ダイ１０７，１１１〜１１３の各々は、アクティブデバイスと、アクティブ表面に形成された１つ以上のメタルルーティング層とを有する別個の基板（例えば、バルクシリコン）として実装されている。この手法では、ダイのマトリクスを含むウェハが製造され、薄くされることと、ＴＳＶがバルクシリコンによってエッチングされることとを含む、ウェハオンウェハプロセスを有し得る。次に、複数のウェハは、図示された層構成（例えば、３つのメモリ層用のメモリ回路を備える４つのウェハと、論理層用の論理ダイを備えるウェハと、のスタック）を実現するように積層され、整列され、次いで、熱圧着によって接合される。結果として得られる、積層されたウェハのセットは、個々の３ＤのＩＣデバイスを分離するように単一化される。
【００１０】
ダイオンダイプロセスでは、対応する層を実装するウェハは、最初に単一化される。次いで、ダイは、３ＤのＩＣデバイスを製造するように別々に積層および接合される。ダイオンウェハ手法では、１つ以上の層のウェハは、１つ以上の層のダイを生成するように単一化されており、これらのダイは、別のウェハの対応するダイ面積に整列および結合され、別のウェハは、個々の３ＤのＩＣデバイスを製造するために単一化される。別個のウェハ上にダイ１０７，１２４〜１２７を製造する１つの利点は、論理層（ダイ１０７）を製造するために、メモリダイ（ダイ１１１〜１１３）の製造プロセスとは異なる製造プロセスを使用することが可能になることである。したがって、改善された性能、および、より低い電力消費を提供する製造プロセスは、ダイ１０７を製造する（したがって、ルーティングロジック１２７用のより高速でより低い電力インターフェースロジックおよび回路を提供する）のに使用され得る。一方、改善されたセル密度、および、改善された漏洩制御を提供する製造プロセスは、メモリ層（ダイ１２４〜１２６）を製造する（したがって、積層メモリ用のより高密度でより低い漏洩ビットセルを提供する）のに使用され得る。
【００１１】
別の手法では、層１０７，１１１〜１１３は、単一基板が使用され、例えばイオン遮断プロセス等の層転写プロセスを用いて各ダイ層が先行のダイ層に形成される、モノリシック３Ｄ製造プロセスを用いて製造される。また、積層されたメモリデバイスは、技術の組み合わせを用いて製造され得る。例えば、論理層（ダイ１０７）は、モノリシック３Ｄ技術を用いて製造されてもよく、メモリ層（ダイ１１１〜１１３）は、ダイオンダイまたはウェハオンウェハ技術（逆も同様）を用いて製造されてもよい。結果として得られた論理層スタックおよびメモリ層スタックは、ともに結合され、次いで、インターポーザ基板に結合され得る。
【００１２】
動作中、水平積層されたダイ１０４〜１０７間のダイ間通信は、トレース、ビア、および、インターポーザ１０２の１つ以上の金属層から形成された他の相互接続部を用いて行われる。従来のシステムでは、インターポーザ１０２内の相互接続部から形成された、２つのダイ間のポイントツーポイントリンクは、２つのダイが互いに通信するために必要とされる。上述したように、従来の手法では、ルーティングを実現するために、インターポーザ内の過剰な数の金属層、および、過度に長い相互接続部のうち、１つもしくは両方をもたらす。このような問題を減少または取り除くために、いくつかの実施形態では、処理システム１００は、水平積層されたダイ１０４〜１０７のうち１つ以上のダイのルーティングロジックによって形成されたルータパーティションと、水平積層されたダイ１０４〜１０７を接続するインターポーザ１０２のデバイス間相互接続部、および、垂直積層されたダイ１０７，１１１〜１１３を接続するダイ間相互接続部によって形成されたリンクパーティションと、から構成されたマルチホップネットワーク１０１を実装している。ルータパーティションは、リンクパーティションを形成するダイ間相互接続部とダイ内相互接続部とにわたって、１つ以上のホップ上でパケットをルーティングするルーティング判断を行うために使用されるダイの論理（ｌｏｇｉｃ）および他の回路を備える。リンクパーティションは、１つのダイの送信／受信回路を別のダイの送信／受信回路（「ダイ間相互接続部」）に結合する導体を含む。これらのダイ間相互接続部は、パッド、ピン、ピンインターフェース、金属層、貫通穴、および、インターポーザ１０２上のビアまたは垂直積層されたダイ間のＴＳＶなどの、導電体を含むことができる。また、このようなダイ間相互接続部は、光導体、または、導電体および光導体の両方の組み合わせを含むことができる。リンクパーティションは、例えば、トレース、ビア、貫通孔、パッド、はんだバンプなどを含む導体等のように、同じダイ（「ダイ内相互接続部」）上の送信／受信回路のセットを結合する導体をさらに含むことができる。
【００１３】
説明のために、例示的な処理システム１００では、水平積層されたダイ１０４〜１０７は、ダイ１０４がリンク１１６を介してダイ１０５に接続されており、ダイ１０５がリンク１１７を介してダイ１０６に接続されており、ダイ１０６がリンク１１８を介してダイ１０７に接続されており、ダイ１０７がリンク１１９を介してダイ１０４に接続されている、リングネットワーク内のインターポーザ１０２上に配列されている。リンク１１６〜１１９は、インターポーザ１０２の１つ以上の金属層内に実装されている。さらに、処理システム１００の図示されたリンクパーティションは、複数のＴＳＶ１２２、または、垂直積層されたダイ１０７，１１１〜１１３を相互接続する他の導体によって形成されたリンク１２０を含む。他の実施形態では、リンクパーティションは、図３を参照して以下に詳細に説明するように、特定のダイ上に位置するデバイスを相互接続するオンダイインクを含んでもよい。
【００１４】
いくつかの実施形態では、リンク１１６〜１１９は、メッセージデータがシリアル通信プロセスを用いてリンク１１６〜１１９にわたって送信される、シングルエンドまたは差動シリアルデータリンクとして実装されている。このプロセスでは、メッセージデータは、個々の金属トレース、ビア、貫通孔、ワイヤ、および、リンク１１６〜１１９を構成する他の導体にわたって、１ビットずつ送信される。他の実施形態では、リンク１１６〜１１９は、複数のメッセージデータビットが複数の金属トレース、ワイヤ、ビア、または、リンク１１６〜１１９を構成する他の導体にわたって同時に送信される並列通信プロセスを用いて、これらのリンクにわたってメッセージデータが送信される並列データリンクとして実装される。
【００１５】
図示した例では、水平積層されたダイ１０４〜１０７の各々は、対応するルーティングロジック（ルーティングロジック１２４，１２５，１２６，１２７としてそれぞれ識別される）を含む。ルーティングロジック１２４〜１２７は、マルチホップネットワーク１０１を流れるメッセージパケットを、ともに管理およびルーティングする。これを実現するために、各ダイのルーティングロジックは、ルーティングロジックを実装するダイに接続されたネットワークリンクと関連してメッセージデータをルーティングするために１つ以上の従来または独自のマルチホップルーティングを実装するロジックおよび制御機能を含む。説明のために、ルーティングロジック１２４は、リンク１１６，１１９に接続されており、ルーティングロジック１２５は、リンク１１６，１１７に接続されており、ルーティングロジック１２６は、リンク１１７，１１８に接続されており、ルーティングロジック１２７は、リンク１１８，１１９，１２０に接続されている。いくつかまたは全てのルーティングロジックは、例えば、ＣＰＵ、ＧＰＵ、ＤＳＰ、メモリコントローラなどのように、対応するダイ上に実装された機能デバイスにローカルに接続され得る。したがって、ルーティングロジック１２４〜１２７は、同じダイ上のデバイスと、インターポーザ１０２上に水平に配設され、または、垂直積層された、他のダイ上のルータもしくは他のロジックと、に接続されている。
【００１６】
ルーティングロジック１２４〜１２７の各々は、このルーティング機能をサポートするロジックおよび他の回路を含み、かかるロジックは、例えば、データ入力および出力バッファと、クロスバースイッチと、スケジューリングロジックと、管理および制御ロジックと、ルーティングテーブル用のストレージと、構成ロジックと、を含む。ルーティングロジック１２４〜１２７によって実装されたルーティングロジックは、固定ルーティングを実装してもよいし、プログラム可能なルーティングテーブルまたは構成可能な論理ブロックを用いて、構成可能であってよい。ルーティングロジックの例示的な実装形態は、図４を参照してより詳細に説明される。
【００１７】
図１では、ルーティングロジック１２７が、垂直ダイスタック１１０用のインターポーザ１０２に隣接して配設されたダイ１０７上に実装されているという例示的な実装形態を示しているが、他の実施形態では、ルーティングロジック１２７は、垂直ダイスタックのうち別のダイ上（例えば、ダイ１１１上）に実装されてもよい。すなわち、インターポーザ１０２と、垂直ダイスタック１１０用のルーティングロジック１２７を実装するダイとの間に１つ以上のダイが配設されてもよい。さらに、図１では、ルーティングロジック１２７が、単一のダイ上に実装されているという例示的な実装形態を示しているが、他の実装形態では、ルーティングロジック１２７は、垂直ダイスタック１１０内の複数のダイにわたって分散されてもよい。例えば、クロスバースイッチおよび関連した制御ロジックなどのルーティングロジック１２７の一部が１つのダイに実装され、１つ以上のルーティングテーブルなどのルーティングロジック１２７の他の部分が垂直ダイスタック１１０の別のダイに実装されてもよい。この場合、垂直ダイスタック１１０をマルチホップネットワーク１０１に接続するリンクパーティションは、垂直ダイスタック１１０内のダイを接続する複数のＴＳＶ１２２を含む。いくつかの実施形態では、ルーティングロジック１２７を実装する垂直ダイスタック１１０のダイは、ルーティングロジック１２７専用である。他の実施形態では、ルーティングロジック１２７を実装する垂直ダイスタック１１０のダイは、非ルーティングのハードコードされたロジックまたは他のデバイス（例えば、ＣＰＵ、ＧＰＵ、キャッシュ、メモリなど）を実装することができる。
【００１８】
以下の例示的なメッセージトラフィックは、処理システム１００の分割されたマルチホップネットワーク１０１の使用を示している。この例のために、ダイ１０４〜１０６は、プロセッサコアを実装し、垂直ダイスタック１１０は、ダイ１１１〜１１３が積層されたＤＲＡＭメモリデバイスであり、ダイ１０７がＤＲＡＭメモリコントローラを実装する、積層されたメモリデバイスである。ＤＲＡＭメモリコントローラは、ＴＳＶ１２２を介して積層されたメモリデバイスに接続されている。メモリコントローラは、１つ以上のプロセッサコアからのメモリアクセス要求に応じて、積層されたＤＲＡＭメモリデバイスの記憶セル回路に記憶されたデータへのメモリアクセスを実行するように動作する。かかる要求の例としては、従来のメモリ読み込みおよび書き込み動作ならびにメタデータ管理動作が挙げられる。かかるメタデータ管理動作の例としては、アドレス変換動作、データセキュリティまたはデータ整合性動作（例えば、チェックサムもしくはエラー補正コードの計算または認証）、ガーベジコレクション動作、メモリ使用量プロファイリング、メモリロギングなどが挙げられるが、これらに限定されない。
【００１９】
メモリ書き込み要求を提供するプロセスの以下の説明は、処理システム１００の分割されたマルチホップ通信ネットワークの例示的な動作を示している。動作の過程では、ダイ１０５のＣＰＵは、関連したメモリアドレス、積層されたメモリデバイスに書き込まれるデータ、ならびに、書き込みおよびバイトマスクの長さ等の他の制御情報を含む、メモリ書き込み要求を生成する。この情報は、ダイ１０５のＣＰＵからダイ１０７のメモリコントローラに送信されるパケットとしてフォーマットされる。メモリ書き込み要求を生成する場合に、ＣＰＵは、ルーティングロジック１２５（同じダイに存在することによって、ＣＰＵ用のローカルルーティングロジックとなる）の入力バッファへの書き込み要求情報を、宛先ノードの指標とともに提供する。この例では、宛先ノードは、ダイ１０７上のメモリコントローラデバイスである。ルーティングロジック１２５は、パケットヘッダを検査し、宛先ノードを抽出する。次に、ルーティングロジック１２５は、メモリコントローラへのルートにおける次のノードを決定するように、テーブルルックアップを実行する。この例では、メモリコントローラへのルートにおける次のノードは、ダイ１０４のルーティングロジック１２４である。したがって、ダイ１０５のルーティングロジック１２５は、書き込み要求パケットを、ダイ１０５をダイ１０４に接続するためのリンク１１６に対応する出力バッファに配置する。次に、ダイ１０５のインターフェースロジックは、ダイ１０４の中間ノードへのメモリ書き込み要求を表すシグナル伝達を送信するためのリンク１１６を構成する導体に接続された物理インターフェース（ＰＨＹ）を操作することによって、パケットを発行する。リンク１１６を構成する導体は、インターポーザ１０２の金属層およびダイ１０４，１０５をインターポーザ１０２の金属層に接続する金属コンタクト内に実装される。リンク１１６上の信号の送信は、ビットレーンごとに２対の導体に送信された２つの電気的な補完的信号を用いる従来の差動技術を用いて実装されてもよい。あるいは、ビットレーンごとに単一の導体を必要とし、且つ、同相電圧または接地に対して導体上の信号レベルを参照するシングルエンド技術によって実装されてもよい。
【００２０】
ダイ１０４のＰＨＹは、シグナル伝達を受信し、シグナル伝達によって表されたメモリ書き込み要求情報をバッファリングする。ダイ１０４のルーティングロジック１２４は、バッファリングされたパケットヘッダを検査して、宛先ノードを抽出する。ダイ１０４のローカルデバイスが最終宛先ではないので、ルーティングロジック１２４は、メモリコントローラへのルートにおける次のノードを決定するようにテーブルルックアップを実行する。この例では、このルート（パス）内の次のノードは、ダイ１０７のルータである。したがって、ダイ１０４のルーティングロジック１２４は、書き込み要求パケットを、ダイ１０４をダイ１０７に接続するためのリンク１１９に対応する出力バッファ内に配置させる。次に、ダイ１０４のインターフェースロジックは、メモリ書き込み要求を表すシグナル伝達を送信するようにダイ１０７に接続されたリンク１１９を備える導体に接続された物理インターフェース（ＰＨＹ）を操作することによって、パケットを発行する。
【００２１】
ダイ１０７のＰＨＹは、シグナル伝達を受信し、メモリ要求パケットをバッファリングする。ダイ１０７のルーティングロジック１２７は、パケットヘッダを検査して、宛先ノードを抽出する。この例では、宛先ノードは、メモリコントローラのノード識別と一致する。したがって、ルーティングロジック１２７は、書き込み要求を、ダイ１０７のメモリコントローラの入力バッファに配置する。メモリコントローラは、ダイ１１１〜１１３上の適切なＤＲＡＭセルにアクセスし、書き込みデータを、シグナル伝達されたアドレスによって示されたメモリの位置に記憶する。これにより、ダイ１０５のＣＰＵによって開始された、要求されたメモリ書き込み動作を完了する。
【００２２】
したがって、図示した上記の例のように、メッセージデータは、ダイ１０５，１０７間のポイントツーポイントリンクを必要とすることなく、ダイ１０５とダイ１０７と間で通信され得る。さらに、この同じマルチホップルーティング手法は、２つのダイ間のポイントツーポイントリンクなしに、ダイ１０４とダイ１０６との間の通信を可能にする。したがって、図１の例におけるインターポーザ１０２は、従来の手法で必要とされる６つのダイ間のポイントツーポイントリンクではなく、４つのダイに対する４つのダイ間リンクをサポートすることのみを必要とする。サポートする２つのより少ないダイ間リンクにより、インターポーザ１０２は、より少ない金属層と、ダイ間でルーティングする、より短いまたは複雑ではないトレースと、を実装することができる。
【００２３】
リングネットワーク配列が図１に示されるが、処理システム１００のダイは、メッシュ、トーラス、ツリー、ｎ立方体など、または、これらの組み合わせを含む様々なネットワークトポロジの何れかで実装され得る。説明のために、ダイ１０４〜１０７は、ダイ１０４が、ダイ１０４，１０６，１０７の間で全てのメッセージデータをルーティングするためのハブとして機能を果たす、ハブアンドスポーク配列で実装され得る。
【００２４】
図２は、いくつかの実施形態による、分割されたマルチホップネットワークを利用する別の例示的な処理システム２００の平面図２０３と断面図２１３とを示す図である。図示の例では、処理システム２００は、インターポーザ２０２に配設され、水平積層されたダイ２０４，２０５，２０６，２０７を含む。また、処理システム２００は、ダイ２０５上に積層されたダイ２１０と、ダイ２１０上に積層されたダイ２１２と、を備える垂直ダイスタック２０８を含む。
【００２５】
ダイ２０４〜２０７は、リンク２１６，２１７，２１８を備える分割されたマルチホップネットワーク２０１を介して相互接続されている。マルチホップネットワーク２０１は、垂直スタック２０８のダイ２０５，２１０，２１２を相互接続するＴＳＶ２２２から形成されたデバイス間リンクをさらに含む。断面図２１３によって示されるように、ダイ間リンク２１６〜２１８の各々は、インターポーザ２０２の１つ以上の金属層であって、ダイ２０４〜２０７をインターポーザ２０２に接続する金属コンタクトにおいて実装され得る。
【００２６】
図示の例では、リンク２１６がダイ２０４，２０５を接続し、リンク２１７がダイ２０５，２０６を接続し、リンク２１８がダイ２０６，２０７を接続し、リンク２１９がダイ２０５，２０７を接続している。さらに、この例では、リンク２１９は、ダイ２０５の特定のデバイスと、ダイ２０７の特定のデバイスとの間の通信に独占的に使用されるサイドバンドリンクである。すなわち、リンク２１６，２１７，２１８がマルチホップネットワーク２０１のリンクパーティションを形成し、リンク２１９は、このマルチホップネットワーク内に含まれない。したがって、ダイ２０４，２０７は、マルチホップネットワーク２０１内のリーフノードであるから、この例示的なネットワークトポロジでルーティングロジックを実装する必要がない。ダイ間のメッセージデータのルーティングを容易にするために、ダイ２０５は、ルーティングロジック２１４を実装しており、ダイ２０６は、ルーティングロジック２１５を実装している。
【００２７】
以下の例示的なメッセージトラフィックは、処理システム２００内の分割されたマルチホップネットワークの使用を示している。この例のために、ダイ２０４，２０５，２１２は、全体的なエネルギー消費を減少させるのに役立つ電力管理機能を制御する機能を実装するプロセッサコアを備えている。かかる電力管理機能の例としては、クロックスロットリング、動的電圧制御、ＣＰＵのスリープ状態などが挙げられる。これらの機能は、ネットワーク上で１つのデバイスから別のデバイスに伝達されたメッセージに応じて構成され、呼び出され、制御され得る。これらの電力管理機能は、システムの処理負荷および全体的な利用に応じて、電力およびシステム性能を動的な様式で交換するためにオペレーティングシステムのソフトウェア（ＯＳ）によって使用される。
【００２８】
電力管理要求を提供する以下の例は、処理システム２００内の分割された通信ネットワークの動作を説明するのに役立つ。動作の過程では、ダイ２１２のＣＰＵ上で動作するオペレーティングシステム（ＯＳ）のソフトウェアは、システム電力消費を減少させるためにダイ２０４のＣＰＵを「スリープ」状態に移行すべきであると決定する。したがって、ダイ２１２のＣＰＵは、スリープ状態の予期される長さなどのように、必要に応じて他の制御情報とともに関連した電力管理コマンド（スリープ）を含むスリープ要求を生成する。このスリープ要求は、ダイ２１２のＣＰＵデバイスからダイ２０４のＣＰＵデバイスに送信される情報のパケットとして実装される。スリープ要求を生成する際に、ＯＳのソフトウェアは、スリープ情報パケットを、宛先ノードの指標とともに、ダイ２１２のインターフェースロジックに書き込む。次に、ダイ２０８のインターフェースロジックは、スリープ要求を表すシグナル伝達をダイ２０５のルーティングロジック２１４に送信するＴＳＶ２２２を備える導体に接続された物理インターフェース（ＰＨＹ）を操作することによって、パケットを発行する。ルーティングロジック２１４は、パケットヘッダを検査して、宛先ノードを抽出する。ルーティングロジック２１４は、宛先ノードを用いてテーブルルックアップを実行して、宛先へのルートにおける次のノードを決定する。テーブルルックアップの結果として、ルーティングロジック２１４は、スリープ要求パケットを、ダイ２０４に実装されたデバイスにダイ２０５を接続するリンク２１６に対応する出力バッファに配置する。次に、ダイ２０５のインターフェースロジックは、スリープ要求を表すシグナル伝達をダイ２０４に送信するリンク２１６を構成する導体に接続された物理インターフェース（ＰＨＹ）を操作することによって、スリープパケットを発行する。断面に示されるように、リンク２１６を構成する導体は、インターポーザ２０２の金属層内に実装される。ダイ２０４のＰＨＹは、シグナル伝達を受信し、このシグナル伝達によって表されたスリープ要求情報をバッファリングする。ダイ２０４のインターフェースロジックは、スリープ要求を、ＣＰＵに利用可能な入力バッファに配置し、典型的には、メッセージが到着したＣＰＵに通知する割り込みを生成する。ダイ２０４のＣＰＵデバイスは、メッセージを読み込み、シグナル伝達されたコマンドによって要求されたスリープ機能を実行することにより、ダイ２１２に位置するＣＰＵデバイスで動作するＯＳによって開始された、要求されたスリープ動作を完了する。
【００２９】
図３は、いくつかの実施形態による、分割されたマルチホップネットワーク３０１を実装する別の例示的な処理システム３００の平面図である。この例では、分割されたマルチホップネットワーク３０１は、ダイ間リンクとともにダイ内リンクの組み合わせを含むリンクパーティションを実装する。図示されたように、処理システム３００は、インターポーザ３０２の表面に配設された水平積層ダイ３０４，３０５，３０６，３０７を備えている。各ダイは、ダイ３０４のデバイス３０８，３０９，３１０、ダイ３０５のデバイス３１１，３１２，３１３、ダイ３０６のデバイス３１４，３１５，３１６、および、ダイ３０７のデバイス３１７，３１８，３１９などのように、複数のデバイスを実装している。これらのデバイスとしては、ＣＰＵ、ＧＰＵ、ＤＳＰ、メモリコントローラ、入力／出力コントローラ、ストレージデバイスなどが挙げられるが、これらに限定されない。
【００３０】
分割されたマルチホップネットワーク３０１のルータパーティションは、ダイ３０４，３０５，３０６，３０７にそれぞれ位置するルーティングロジック３２０，３２１，３２２，３２３として実装されている。分割されたマルチホップネットワーク３０１のリンクパーティションは、図示されたリングネットワークトポロジにおけるルーティングロジック３２０〜３２３を相互接続するデバイス間リンク３３０，３３１，３３２，３３３等の複数のデバイス間リンクを含む。各リンクは、インターポーザ３０２の様々な金属層によって部分的に実装されている。分割されたマルチホップネットワーク３０１のリンクパーティションは、所定のダイの個々のデバイスを当該ダイのローカルなルーティングロジックに接続する複数のデバイス内通信リンクをさらに含む。例えば、デバイス内リンク３３４，３３５，３３６は、ルーティングロジック３２０を各デバイス３０８〜３１０に接続する。これらのデバイス内リンクは、ダイの様々な金属層内の導電性相互接続構造として実装されている。
【００３１】
例示的な処理システム３００は、同一の分割された通信ネットワーク内の２つの異なるネットワークトポロジの使用を示している。ダイ内の通信は、ルーティングロジックが、ダイのデバイス間、および、当該ダイのデバイスと他のダイのデバイスとの間の全てのメッセージをルーティングするハブとして役割を果たすハブアンドスポークネットワークトポロジ（またはポイントツーポイントトポロジ）を介して実現される。一方、ダイ間通信は、ルーティングロジック３２０〜３２３の各々がリング様式でリンク３３０〜３３３を介して隣接ダイに接続されるリングトポロジを介して実現される。
【００３２】
以下の例示的なメッセージトラフィックは、処理システム３００内のハイブリッドのダイ間／ダイ内の分割されたマルチホップネットワークの使用を示している。この例のために、ダイ３０４のデバイス３０８〜３１０およびダイ３０６のデバイス３１４〜３１６は、関連したメモリキャッシュを有するプロセッサコア（したがって、本明細書ではプロセッサコア３０８〜３１０および３１４〜３１６と称される）を実装している。プロセッサコアは、複数のキャッシュを有する複数のプロセッサシステム内にキャッシュコヒーレンシおよび一貫性を維持するのに役立つキャッシュ管理機能を実装している。かかるキャッシュ管理機能の例としては、別のＣＰＵのキャッシュに存在する特定のキャッシュブロックの状態を修正するネットワークメッセージが挙げられる。
【００３３】
動作の過程では、プロセスは、ダイ３０５のプロセッサコア３１３のキャッシュ内の特定のラインがメモリの一貫したビュー（ｖｉｅｗ）を維持するために無効にされる必要がある、と決定する。キャッシュライン無効化要求は、無効にされる関連したメモリアドレスとともに関連したキャッシュ管理コマンド（無効にする）を含む。この情報は、プロセッサコア３０９からプロセッサコア３１３に送信される情報のパケットを含む。
【００３４】
無効化要求を生成するときに、プロセッサコア３０９は、宛先ノードの指標とともに無効化要求パケットを生成し、無効化要求パケットを、リンク３３５に対応する出力バッファに配置する。リンク３３５は、ダイ３０４の様々な金属層内に実装されており、ダイのルーティングロジック３２０を接続する。ローカルなルーティングロジック３２０は、パケットヘッダを検査して、宛先ノードを抽出する。次に、ルーティングロジック３２０は、テーブルルックアップを実行して、プロセッサコア３１３へのルートにおける次のノードを決定する。この例では、このパス（ルート）における次のノードは、ダイ３０５のルーティングロジック３２１である。ダイ３０４のルーティングロジック３２０は、無効化要求パケットを、リンク３３１に対応する出力バッファに配置する。次に、ダイ３０４のインターフェースロジックは、キャッシュライン無効化要求を表すシグナル伝達をダイ３０５に送信するリンク３３１を構成する導体に接続された物理インターフェース（ＰＨＹ）を操作することによって、パケットを発行する。
【００３５】
ダイ３０５のＰＨＹは、シグナル伝達を受信し、このシグナル伝達によって表された無効化要求情報をバッファリングする。ルーティングロジック３２１は、バッファリングされたパケットヘッダを検査して宛先ノードを抽出し、そのルーティングテーブル内で検索を実行する。ルーティングロジック３２１は、テーブルルックアップの結果として、宛先ノードであるプロセッサコア３１３がローカルデバイスである、と決定する。したがって、ルータは、デバイス内リンク３３６を介して、キャッシュライン無効化パケットをプロセッサコア３１３が利用可能なバッファに配置する。プロセッサコア３１３のロジックは、メッセージを読み込み、シグナル伝達されたコマンドによって要求されたキャッシュライン無効化機能を実行する。これにより、ダイ３０４に位置するプロセッサコアデバイス３０９によって開始された要求動作を完了する。
【００３６】
図４は、いくつかの実施形態による、図１〜３の例示的な処理システム内に実装されるルーティングロジックの例示的な実装形態を示す図である。図示された例では、ルーティングロジック４００は、入力バッファ４０１と、クロスバースイッチ４０２と、出力バッファ４０３と、制御ロジック４０４と、１つ以上のルーティングテーブル４０６と、構成ブロック４０８と、を備える。入力バッファ４０１は、１つ以上の入力ポート４１０に接続されている。各入力ポート４１０は、対応するデバイス間またはデバイス内リンクに接続されており、入力バッファ４０１は、対応するデバイス間リンクを介して受信したメッセージデータをバッファリングするように構成されている。同様に、出力バッファ４０３は、１つ以上の出力ポート４１２に接続されている。各出力ポート４１２は、対応するデバイス間またはデバイス内リンクに接続されており、出力バッファ４０３は、対応するリンクのために、クロスバースイッチ４０２から受信したメッセージデータをバッファリングするように構成されている。クロスバースイッチ４０２は、制御ロジック４０４によって提供された制御シグナル伝達に基づいて、入力ポート４１０から出力ポート４１２に流れるパケットを交換するマルチプレクサを含む。制御ロジック４０４は、構成ブロック４０８によって指定された構成パラメータと、１つ以上のルーティングテーブル４０６で表されたルーティング情報とを用いて、入力ポートから出力ポートへの入力メッセージデータの特定のルーティングをもたらすように、クロスバースイッチ４０２を制御する。制御ロジック４０４は、入力メッセージヘッダを検査して、１つ以上のルーティングテーブル４０６で検索を実行して次のホップを決定し、クロスバースイッチを制御して、データを適切な出力ポート４１２に転送する。また、制御ロジック４０４は、仮想チャネルを管理し、構成ブロック４０８の構成情報によってアービトレーションおよびフィルタリングを実行し、アービトレーションおよびフィルタリングを実行しない場合には１つ以上のルーティングプロトコルの構成要素を実装している。
【００３７】
いくつかの実施形態では、ルーティングテーブル４０６は、ルーティングロジック４００を通過するパケットに対してルーティング情報を提供する。説明のために、ルーティングテーブル４０６は、複数の表項目４２０として実装されてもよく、各表項目４２０は、対応する宛先ノードアドレスと関連付けられており、宛先ノードアドレスを表すインデックスフィールド４２２と、ソースノードと宛先ノードとの間に設定されたルーティングパスによって次のノードのアドレスを指定する次のノードフィールド４２４と、を含む。また、表項目４２０は、代替ルート、パスの長さ、リンクエラー状態などのように、制御ロジックによって用いられる他のフィールドを含んでもよい。次のノードフィールド４２４は、マルチホップルートのための次のノードのアドレス、または、ローカルノードが最終宛先である場合には、ローカルノードに接続されたポートであってもよい。いくつかの実施形態では、テーブル４０６の表項目４２０は、予め設定されてもよいし、そうでなければ固定ルーティング方式を実装するために、固定されてもよい。説明のために、テーブル４０６は、ＲＯＭ内に実装されてもよいし、ハードコードされたロジックとして実装されてもよい。
【００３８】
他の実施形態では、テーブル４０６は、書き込み可能であってもよいし、そうでなければ様々なルートを実装するか、ダイの異なる数もしくは配列またはネットワークトポロジの再構成を可能にするようにプログラム可能であってもよい。説明のために、プログラム可能な実装形態では、テーブル４０６は、ＲＡＭまたはフラッシュメモリ内のレジスタファイルなどのように、様々な構成可能な記憶素子の何れかで実装されてもよい。これらの構成可能な要素および書き込み可能な表項目は、オペレーションシステム、ハイパーバイザ、基本入出力システム（ＢＩＯＳ）、ファームウェア、または、これらの組み合わせを含む多くの要素によって管理され得る。一例として、システム起動中、オペレーティングシステムは、既知の固定トポロジによって必要とされる必須のルートを達成するために構成可能な要素を書き込みことができる。他のシナリオでは、分割されたネットワークのトポロジは、物理システムの異なるバージョンと実装形態との間で異なる種々のルータおよび接続により、事前に知られなくてもよい。この場合、システムファームウェアまたはＢＩＯＳは、ルータおよび相互接続トポロジを検査して、実装されたネットワークトポロジを発見することができる。このように行なっても、システムＢＩＯＳまたはファームウェアは、必須のネットワークルーティングを達成するために各ルータ内に構成可能な要素およびテーブルを書き込む。いくつかのシナリオでは、ルーティング構成は、システム起動時に１回構成されるのではなく、動的に変更され得る。所定のリンクのエラーの検出または所定のルータ内のハードウェア障害に応じて、オペレーションシステム、ハイパーバイザまたはシステムＢＩＯＳは、かかる障害の周りをルーティングするように、ルータの構成可能な要素を再書き込みすることができる。また、オペレーティングシステムまたはハイパーバイザは、ネットワークおよびメモリ帯域幅保証などのサービス方針の品質を実装するために、ルータを再構成することができる。
【００３９】
図４は、１つ以上のルーティングテーブル４０６がマルチホップネットワークのルータパーティションによって実装されるルーティングパスを指定するために使用される実装形態を示しているが、他の実装形態では、ルータパーティションは、ネットワークトポロジが既知のルーティングパスであって、製造時に固定されるルーティングパスを指定するために、ハードワイヤードロジックを使用することができる。
【００４０】
図５は、いくつかの実施形態による、分割されたマルチホップネットワークを利用する処理システム内でマルチホップパケットルーティングを実行する例示的な方法５００のフロー図である。説明しやすくするために、方法５００は、図４に示すルーティングロジック４００に記述されている。
【００４１】
ブロック５０２では、あるダイ（ソースダイ）におけるデバイスは、メッセージデータと、宛先デバイスまたは宛先ダイのうち１つまたは両方と関連付けられた宛先アドレスと、を含むパケットを生成することによって、別のダイ（宛先ダイ）上の宛先デバイスへのメッセージデータの送信を開始する。ソースダイがマルチホップネットワークの単一のリンクのみを含む場合には、パケットは、デフォルト設定でこの単一のリンクへの送信のために供給される。そうではなく、ソースダイがマルチホップネットワークの２つ以上のリンクを有する場合には、ブロック５０４では、ソースダイにおけるルーティングロジック４００の制御ロジック４０４は、パケットヘッダを検査して、テーブル４０６内で検索を実行し、ルーティングパス内の次のホップを決定する。これにより、次のホップにつながるリンクに接続された出力ポート４１２を決定する。ブロック５０６では、制御ロジック４０４は、クロスバースイッチ４０２を制御して、決定された出力ポート４１２にパケットをルーティングする。このとき、パケットは、次のホップへの対応するリンクを介して送信される。
【００４２】
ブロック５０８では、次のホップとして識別されたダイは、パケットを受信して、パケットの宛先アドレスを検査することによって、最終宛先であるかどうかを決定する。最終宛先が到着していない場合には、受信ダイにおけるルーティングロジック４００は、ブロック５０４，５０６，５０８の処理を実行して、ルーティングパス内の次のホップを決定し、それに応じてパケットを、決定された次のホップにルーティングする。ブロック５０４〜５０８の処理は、パケットが最終宛先に到着するまで繰り返される。最終宛先が到着すると、ブロック５１０では、制御ロジック４０４は、クロスバースイッチ４０２を制御して、ローカルパケットトラフィック（すなわち、ローカルダイのデバイス向けのパケット）に使用される出力ポート４１２にパケットを向ける。このとき、パケットは、出力バッファ４０３からアンロードされ、宛先デバイスで処理される。
【００４３】
いくつかの実施形態では、上述した装置および技術は、図１〜３のＩＣデバイス等の１つ以上の集積回路（ＩＣ）デバイス（集積回路パッケージまたはマイクロチップとも称される）を備えるシステム内に実装される。電子設計自動化（ＥＤＡ）およびコンピュータ支援設計（ＣＡＤ）のソフトウェアツールは、これらのＩＣデバイスの設計および製造に使用され得る。これらの設計ツールは、典型的に、１つ以上のソフトウェアプログラムとして表される。１つ以上のソフトウェアプログラムは、プロセスの少なくとも一部を実行して、回路を製造するために製造システムを設計または適合するように、１つ以上のＩＣデバイスの回路を表すコードで動作するためにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、または、命令とデータとの組み合わせを含むことができる。設計ツールまたは製造ツールを表すソフトウェア命令は、典型的に、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体内に記憶されている。同様に、ＩＣデバイスの設計または製造の１つ以上の段階を表すコードは、同一のコンピュータ可読記憶媒体または異なるコンピュータ可読記憶媒体内に記憶されており、そこからアクセスされ得る。
【００４４】
コンピュータ可読記憶媒体は、命令および／またはデータをコンピュータシステムに提供するために使用される間、コンピュータシステムによってアクセス可能な任意の記憶媒体または記憶媒体の組み合わせを含むことができる。このような記憶媒体としては、光媒体（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイディスク）、磁気媒体（例えば、フロッピー（登録商標）ディスク、磁気テープもしくは磁気ハードドライブ）、揮発性メモリ（例えば、ランダムアクセスメモリ（ＲＡＭ）もしくはキャッシュ）、不揮発性メモリ（例えば、読み取り専用メモリ（ＲＯＭ）もしくはフラッシュメモリ）、または、微小電気機械システム（ＭＥＭＳ）ベースの記憶媒体が挙げられ得るが、これらに限定されない。コンピュータ可読記憶媒体は、コンピューティングシステム（例えば、システムＲＡＭまたはＲＯＭ）に組み込まれ、コンピューティングシステム（例えば、磁気ハードドライブ）に固定して取り付けられ、コンピューティングシステム（例えば、光ディスクまたはユニバーサルシリアルバス（ＵＳＢ）ベースのフラッシュメモリ）に対して取り外し可能に取り付けられてもよいし、有線もしくは無線ネットワーク（例えば、ネットワークアクセス可能なストレージ（ＮＡＳ））を介してコンピュータシステムに接続されてもよい。
【００４５】
図６は、１つ以上の実施形態を実装するＩＣデバイスの設計および製造のための例示的な方法６００を示すフロー図である。上述したように、以下の処理の各々に対して生成されるコードは、対応する設計ツールまたは製造ツールによるアクセスおよび使用のために、コンピュータ可読記憶媒体内に記憶され、または具現化される。
【００４６】
ブロック６０２では、ＩＣデバイスの機能仕様が生成される。機能仕様（マイクロアーキテクチャ仕様（ＭＡＳ）としばしば称される）は、Ｃ、Ｃ＋＋、ＳｙｓｔｅｍＣ、ＳｉｍｕｌｉｎｋまたはＭＡＴＬＡＢを含む様々なプログラミング言語またはモデリング言語の何れかによって表され得る。
【００４７】
ブロック６０４では、機能仕様は、ＩＣデバイスのハードウェアを表すハードウェア記述コードを生成するために使用される。いくつかの実施形態では、ハードウェア記述コードは、少なくとも１つのハードウェア記述言語（ＨＤＬ）を用いて表される。ハードウェア記述コードは、ＩＣデバイスの回路の形式的記述および設計のための様々なコンピュータ言語、仕様言語またはモデリング言語の何れかを含む。生成されたＨＤＬコードは、典型的に、ＩＣデバイスの回路の動作や、回路の設計および組織化や、シミュレーションによるＩＣデバイスの正常動作を検証する試験を表す。ＨＤＬの例としては、アナログＨＤＬ（ＡＨＤＬ）、Ｖｅｒｉｌｏｇ  ＨＤＬ、システムＶｅｒｉｌｏｇ  ＨＤＬ、および、ＶＨＤＬが挙げられる。同期されたデジタル回路を実装するＩＣデバイスでは、ハードウェア記述コードは、同期デジタル回路の動作の抽象的表現を提供するレジスタ転送レベル（ＲＴＬ）コードを含むことができる。他のタイプの回路では、ハードウェア記述コードは、回路の動作の抽象的表現を提供する動作レベルコードを含むことができる。ハードウェア記述コードによって表されたＨＤＬモデルは、典型的に、設計検証を通過するために１回以上のシミュレーションおよびデバッギングに供される。
【００４８】
ハードウェア記述コードによって表された設計を検証した後に、ブロック６０６では、ハードウェア記述コードを合成して、ＩＣデバイスの回路の初期の物理的実装形態を表すか、または定義するコードを生成するために、合成ツールが使用される。いくつかの実施形態では、合成ツールは、回路デバイスインスタンス（例えば、ゲート、トランジスタ、レジスタ、コンデンサ、インダクタ、ダイオードなど）およびネットを含む１つ以上のネットリスト、または、回路デバイスインスタンス間の接続を生成する。あるいは、ネットリストの全てまたは一部は、合成ツールを使用せずに手動で生成され得る。ハードウェア記述コードのように、ネットリストは、最終の１つ以上のネットリストのセットが生成される前に、１つ以上の試験および検証プロセスに供され得る。
【００４９】
あるいは、回路図エディタツールは、ＩＣデバイスの回路の概略図を描くために使用されてもよく、回路図入力ツールは、結果として得られた回路図をキャプチャして、回路図の構成要素および接続性を表す１つ以上のネットリスト（コンピュータ可読媒体に記憶される）を生成するために使用されてもよい。次に、キャプチャされた回路図は、試験および検証のための１回以上のシミュレーションに供され得る。
【００５０】
ブロック６０８では、１つ以上のＥＤＡツールは、ブロック６０６で生成されたネットリストを使用して、ＩＣデバイスの回路の物理的レイアウトを表すコードを生成する。この処理は、例えば、ＩＣデバイスの回路の各要素の位置を決定または固定するためにネットリストを用いる配置ツールを含むことができる。さらに、ルーティングツールは、ネットリストに従って回路素子を接続するのに必要とされるワイヤを追加およびルーティングする配置プロセスに構築する。結果として得られたコードは、ＩＣデバイスの３次元モデルを表している。コードは、例えば、グラフィックデータベースシステムＩＩ（ＧＤＳＩＩ）形式などのデータベースファイル形式で表され得る。この形式でのデータは、典型的に、幾何学的形状や、テキストラベルや、階層形態での回路レイアウトに関する他の情報を表す。
【００５１】
ブロック６１０では、物理的レイアウトコード（例えば、ＧＤＳＩＩコード）は、製造施設に提供される。製造施設は、物理的レイアウトコードを使用して、ＩＣデバイスを製造するように製造施設（例えば、マスク作業による）の製造ツールを構成し、そうでなければそれを適合させる。すなわち、物理的レイアウトコードは、１つ以上のコンピュータシステムにプログラムされてもよく、全体的または部分的に、製造施設のツールの動作または製造施設で実行される製造動作を制御することができる。
【００５２】
一般的な説明で上述した活動または要素の全てが必要ではなく、特定の活動またはデバイスの一部が必要とされなくてもよく、１つ以上のさらなる活動が実行され、または記載された要素に追加の要素が含まれてもよいことに留意されたい。さらに、活動が列挙される順序は、必ずしもそれらが実施される順序ではない。
【００５３】
さらに、これらの概念は、特定の実施形態を参照して記載されている。しかしながら、当業者であれば、下記の特許請求の範囲に記載されるように本開示の範囲から逸脱することなく、様々な修正および変更が行われ得ることを理解する。したがって、本明細書および図は、限定的意味ではなく例示的意味において見なされるべきであり、すべてのこのような修正は、本開示の範囲内に含まれることが意図される。
【００５４】
特定の実施形態に関して、便益、他の利点および問題に対する解決法が上述された。しかしながら、この便益、利点、問題に対する解決法、および、あらゆる便益、利点もしくは解決法を生じさせるか、またはより顕著にさせ得る任意の特徴は、任意または全ての特許請求の範囲の重大、必須または本質的な特徴と解釈されるべきではない。
【図１】
2016502287.tif 000003
【図２】
2016502287.tif 000004
【図３】
2016502287.tif 000005
【図４】
2016502287.tif 000006
【図５】
2016502287.tif 000007
【図６】
2016502287.tif 000008
【国際調査報告】
2016502287.tif 000009
2016502287.tif 000010