(57)【要約】  本開示は、概して、マルチノードネットワーク上でデータをルーティングするためのシステムに関する。例示的なシステムは、複数のノードを有するマルチノード配列およびそれらのノードを接続する複数の物理的な通信チャネルを含む。物理的な通信チャネルのうちの少なくとも１つは、データを、第１のノードから複数のノードのうちの２つ以上のその他の送信先ノードにルーティングするように構成され得る。本開示は、概して、マルチノードネットワーク上でデータをルーティングするための方法、ならびにマルチノードネットワーク上でデータをルーティングするための手法を実行するためのコンピュータが実行可能な命令を記憶するコンピュータがアクセス可能な媒体にも関する。
2012528416.tif 000002
【特許請求の範囲】
【請求項１】
マルチノードネットワーク上でデータをルーティングするためのシステムであって、
複数のノードを有するマルチノード配列と、
前記複数のノードを接続する複数の物理的な通信チャネルとを含み、
前記複数の物理的な通信チャネルのうちの少なくとも１つは、前記データを、第１のノードから、前記複数のノードのうちの２つ以上のその他の送信先ノードにルーティングするように構成される、システム。
【請求項２】
前記複数のノードのそれぞれは、ルーティングデバイスを共有するように構成されている２つ以上のサブノードを含む請求項１に記載のシステム。
【請求項３】
前記複数の物理的な通信チャネルは、物理的な通信チャネルの複数の列を形成するために前記配列の第１の方向のノードの第１の列に沿って延び、前記第１の列に沿って配置されている、前記複数のノードからのノードの数は、前記数の前記ノード間の、前記第１の列に沿って延びる、物理的な通信チャネルの前記複数の列からの列の数に等しい請求項１に記載のシステム。
【請求項４】
前記複数の物理的な通信チャネルは、物理的な通信チャネルの複数の列を形成するために、前記配列の第１の方向のノードの第１の列に沿って、および前記配列の第２の方向のノードの第２の列に沿って延び、
前記第１の列に沿って配置されている、前記複数のノードからのノードの第１の数は、前記第１の数の前記ノード間の、前記第１の列に沿って延びる、物理的な通信チャネルの前記複数の列からの列の数に等しく、
前記第２の列に沿って配置されている、前記複数のノードからのノードの第２の数は、前記第２の数の前記ノード間の、前記第２の列に沿って延びる、物理的な通信チャネルの前記複数の列からの列の数に等しい請求項１に記載のシステム。
【請求項５】
前記配列の前記第１の方向および前記第２の方向は、前記配列の水平方向および前記配列の垂直方向を含む請求項４に記載のシステム。
【請求項６】
前記複数のノードのそれぞれは、２〜４個の出力および２（ｋ−１）個の入力を有し、ｋは、前記配列の特定の列に沿って配置された、前記複数のノードからのノードの数である請求項１に記載のシステム。
【請求項７】
前記複数の物理的な通信チャネルのうちの少なくとも１つは、２つ以上の分割サブチャネルを含み、前記分割サブチャネルのそれぞれは、前記データを、前記複数の物理的な通信チャネルのうちの前記少なくとも１つの物理的な通信チャネルの前記その他の送信先ノードにルーティングするように構成されている請求項１に記載のシステム。
【請求項８】
前記２つ以上の分割サブチャネルは、ほぼ等しい帯域幅を有し、前記分割サブチャネルの前記帯域幅の合計は、前記複数の物理的な通信チャネルのうちの前記少なくとも１つの物理的な通信チャネルの帯域幅にほぼ等しい請求項７に記載のシステム。
【請求項９】
前記複数の物理的な通信チャネルのうちの少なくとも１つは、２つ以上の分割サブチャネルを含み、前記２つ以上の分割サブチャネルは、前記データを、前記複数の物理的な通信チャネルのうちの前記少なくとも１つの物理的な通信チャネルの前記その他の送信先ノードにルーティングするように構成され、前記分割サブチャネルのうちの少なくとも１つは、前記データを、前記第１のノードから前記複数の物理的な通信チャネルのうちの前記少なくとも１つの物理的な通信チャネルの前記その他の送信先ノードのうちの少なくとも２つにルーティングするように構成され、前記分割サブチャネルのうちの任意の分割サブチャネルの前記その他の送信先ノードは、前記分割サブチャネルのうちのいずれかその他の分割サブチャネルの前記その他の送信先ノードとは異なる請求項１に記載のシステム。
【請求項１０】
前記複数の物理的な通信チャネルは、前記データを、前記第１のノードから前記その他の送信先ノードのうちの任意の送信先ノードに最大２ホップでルーティングするように構成される請求項１に記載のシステム。
【請求項１１】
シングルチップマルチプロセッサとして構成される請求項１に記載のシステム。
【請求項１２】
マルチノードネットワーク上でデータをルーティングするための方法であって、
処理構成を用いて記憶構成から前記データを取得して、取得したデータを提供することと、
前記取得したデータを、前記データを第１のノードから２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、前記第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含む方法。
【請求項１３】
前記ノードのそれぞれは、ルーティングデバイスを共有するように構成されている２つ以上のサブノードを含む請求項１２に記載の方法。
【請求項１４】
前記ネットワークは、物理的な通信チャネルの複数の列を形成するために前記配列の第１の方向のノードの第１の列に沿って延びる複数の物理的な通信チャネルを含み、前記第１の列に沿って配置されている、複数のノードからのノードの数は、前記数の前記ノード間の、前記第１の列に沿って延びる、物理的な通信チャネルの前記複数の列からの列の数に等しい請求項１２に記載の方法。
【請求項１５】
前記ノードのそれぞれは、２〜４個の出力および２（ｋ−１）個の入力を有し、ｋは、前記配列の特定の列に沿って配置された、前記複数のノードからのノードの数である請求項１２に記載の方法。
【請求項１６】
前記物理的な通信チャネルは、ほぼ等しい帯域幅を有する分割サブチャネルを含み、前記分割サブチャネルのそれぞれは、前記データを、前記単一の物理的な通信チャネルの前記その他の送信先ノードにルーティングするように構成されている請求項１２に記載の方法。
【請求項１７】
前記分割サブチャネルの前記帯域幅の合計は、前記単一の物理的な通信チャネルの帯域幅にほぼ等しい請求項１６に記載の方法。
【請求項１８】
前記単一の物理的な通信チャネルは、前記データを、前記単一の物理的な通信チャネルの前記その他の送信先ノードにルーティングするように構成されている２つ以上の分割サブチャネルを含み、前記分割サブチャネルのうちの少なくとも１つは、前記データを、前記第１のノードから前記単一の物理的な通信チャネル前記その他の送信先ノードのうちの少なくとも２つにルーティングするように構成され、前記分割サブチャネルのうちの任意の分割サブチャネルの前記その他の送信先ノードは、前記分割サブチャネルのうちのいずれかその他の分割サブチャネルの前記その他の送信先ノードとは異なる請求項１２に記載の方法。
【請求項１９】
マルチノードネットワーク上でデータをルーティングするプロシージャを実行するためのコンピュータが実行可能な命令を記憶するコンピュータがアクセス可能な媒体であって、前記プロシージャが処理構成によって実行される場合、前記処理構成は、
前記処理構成を用いて記憶構成から前記データを取得することと、
前記記憶構成から取得した前記データを、前記データを第１のノードから少なくとも２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、前記第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含む手法を実行するように構成される、コンピュータがアクセス可能な媒体。
【請求項２０】
前記単一の物理的な通信チャネルは、分割サブチャネルを含み、前記分割サブチャネルのそれぞれは、前記データを、前記単一の物理的な通信チャネルの前記その他の送信先ノードにルーティングするように構成される請求項１９に記載のコンピュータがアクセス可能な媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
マルチノード処理アーキテクチャ（ｍｕｌｔｉｎｏｄａｌ  ｐｒｏｃｅｓｓｉｎｇ  ａｒｃｈｉｔｅｃｔｕｒｅ）が、ネットワーク化されたユニプロセッサの複雑なシステムの有力な代替として登場した。これらのアーキテクチャの例は、複数の処理ノードが単一の集積回路上に作製されるシングルチップマルチプロセッサおよびシステムオンチップを含む。複数の通信源を持つオンチップネットワークが、個々のノードを相互接続するために使用されることが多い。
【先行技術文献】
【非特許文献】
【０００２】
【非特許文献１】「Ｆｌａｔｔｅｎｅｄ  Ｂｕｔｔｅｒｆｌｙ  Ｔｏｐｏｌｏｇｙ  ｆｏｒ  Ｏｎ−Ｃｈｉｐ  Ｎｅｔｗｏｒｋｓ」、Ｊｏｈｎ  Ｋｉｍ、Ｊａｍｅｓ  Ｄ．Ｂａｌｆｏｕｒ、およびＷｉｌｌｉａｍ  Ｊ．Ｄａｌｌｙ著、ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｌｅｔｔｅｒｓ、第６巻、第２号、３７〜４０ページ
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ムーアの法則によれば、チップマイクロプロセッサのノード数は、近い将来、数十から数百に増えると予測される。しかし、既存の相互接続ネットワークは、簡単に拡張できず、概して、より大きなマルチノード処理アーキテクチャを効率的に収容しない。
【課題を解決するための手段】
【０００４】
本開示は、概して、マルチノードネットワーク上でデータをルーティングするためのシステムに関する。例示的なシステムは、複数のノードを有するマルチノード配列およびそれらのノードを接続する複数の物理的な通信チャネルを含む。物理的な通信チャネルのうちの少なくとも１つは、第１のノードからのデータを、複数のノードのうちの２つ以上のその他の送信先ノードにルーティングするように構成され得る。本開示は、概して、マルチノードネットワーク上でデータをルーティングするための方法、ならびにマルチノードネットワーク上でデータをルーティングするための手法を実行するためのコンピュータが実行可能な命令を記憶するコンピュータがアクセス可能な媒体にも関する。
【０００５】
一例において、マルチノードネットワーク上でデータをルーティングするためのシステムが、提供される。システムは、複数のノードを有するマルチノード配列およびそれらの複数のノードを接続する複数の物理的な通信チャネルを含み得る。複数の物理的な通信チャネルのうちの少なくとも１つは、データを、第１のノードから、複数のノードのうちの２つ以上のその他の送信先ノードにルーティングするように構成され得る。
【０００６】
別の例において、マルチノードネットワーク上でデータをルーティングするための方法が、提供される。方法は、処理構成を用いて記憶構成からデータを取得して、取得したデータを提供することと、取得したデータを、データを第１のノードから２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含み得る。
【０００７】
さらに別の例において、マルチノードネットワーク上でデータをルーティングするプロシージャを実行するためのコンピュータが実行可能な命令を記憶するコンピュータがアクセス可能な媒体が、提供される。プロシージャが処理構成によって実行される場合、処理構成は、手法を実行するように構成される。手法は、処理構成を用いて記憶構成からデータを取得することと、記憶構成から取得したデータを、データを第１のノードから少なくとも２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含み得る。
【０００８】
複数の例が開示されるが、さらにその他の例が、以下の詳細な説明から当業者に明らかになるであろう。明らかになるであろうように、本明細書に記載のシステム、方法、およびコンピュータプログラムは、本明細書の教示の精神および範囲から全く逸脱することなしに、さまざまな明らかな態様に修正を行うことができる可能性がある。したがって、詳細な説明は、本質的に例示的であるとみなされるべきであり、限定的であるとみなされるべきでない。
【０００９】
本開示の上述のおよびその他の特徴は、以下の説明および添付の特許請求の範囲を、添付の図面と併せて理解することによってより完全に明らかになるであろう。これらの図面は本開示によるほんのいくつかの実施形態を示すに過ぎず、したがって、本開示の範囲を限定するとみなされるべきでないことを理解したうえで、本開示が、添付の図面を使用してより具体的かつ詳細に説明される。
【図面の簡単な説明】
【００１０】
【図１】本開示によるマルチノード処理ネットワークの例示的な例の図である。
【図２】本開示によるマルチノード処理ネットワークの例示的な例の構成図である。
【図３】本開示によるマルチノード配列アーキテクチャの構成図である。
【図４】本開示によるマルチノード配列アーキテクチャの構成図である。
【図５】本開示によるマルチノード配列アーキテクチャの構成図である。
【図６】本開示による、図５に示されたマルチノード処理配列の単一のノードのマイクロアーキテクチャの例の概略図である。
【図７】本開示によるマルチノード処理ネットワークの単一のノードのマイクロアーキテクチャの概略図である。
【図８】本開示によるマルチノード配列アーキテクチャのさまざまな例の概略図である。
【図９】本開示によるマルチノード処理ネットワーク上でデータをルーティングするための方法の例の流れ図である。
【図１０】本開示によるマルチノード処理ネットワーク上でデータをルーティングするための方法の別の例の流れ図である。
【図１１】マルチノード処理ネットワーク上でデータをルーティングするように構成されているコンピューティングデバイスの例の構成図である。
【発明を実施するための形態】
【００１１】
図は、以下、すなわち、マルチノード処理構成１００、処理ノード配列１０２、処理ノード１０４（１）〜１０４（Ｎ）、単一の処理ノードに専用のリソース１０６、処理ノードの任意のサブセットに専用のリソース１０８、外部バス１１２、外部コンポーネント１１４、メインメモリ１２０、データ２０２、４０９、５０１、データ要求２１０、コア／ノードコントローラ１１６、データバス１２３、通信チャネル１１７、８０１、８０５、８０７、８０９、８１１、接続１２７、サブノード３０１、ポイントツーポイント通信チャネル４０１、４０３、４１１、共有通信チャネル４０５、５０７、５０９、ルーティングデバイス１１８、ポイントツーポイント通信チャネル４０７、通信チャネルの列３０３、水平の次元（ｄｉｍｅｎｓｉｏｎ）５０５、垂直の次元５０３、ノードプロセッサ（ｎｏｄｅ  ｐｒｏｃｅｓｓｏｒ）６１７、スプリッタ６０１、スプリッタからの入力６０３、出力６１８、６１５、６１６、６２０、マルチキャストデータパケット６０９、ブロードキャストデータパケット６０７、スプリッタのＸ座標フィールド６０２、スプリッタのＹ座標フィールド６０４、クライアントの入力６１９、クライアントの出力６１６、入力チャネル７０１〜７１１、データバッファ７２９〜７３９、ノードの東（Ｅ）向きの側のマルチプレクサ７２１、ノードの西（Ｗ）向きの側のマルチプレクサ７２３、ノードの北（Ｎ）向きの側のマルチプレクサ７２５、ノードの南（Ｓ）向きの側のマルチプレクサ７２７、出力チャネル７１３〜７１９、クロスバースイッチ７３０、ステップ９０２、ステップ９０４、コンピュータシステム１００７、プロセッサ１００５、ステップ１００１、ステップ１００３、基本構成１１０１、コンピューティングデバイス１１００、システムメモリ１１２０、プロセッサ１１１０、メモリバス１１３０、１次キャッシュ１１１１、２次キャッシュ１１１２、レジスタ１１１４、メモリコントローラ１１１５、ノード／コアコントローラ１１２９、多様な処理配列１１１３、オペレーティングシステム１１２１、アプリケーション１１２２、プログラムデータ１１２４、破線１１０１、データ記憶装置１１５０、バス／インターフェースコントローラ１１４０、記憶装置インターフェースバス１１４１、取り外し可能な記憶装置１１５１、取り外し不可能な記憶装置１１５２、インターフェースバス１１４２、出力デバイス１１６０、グラフィックス処理ユニット１１６１、周辺インターフェース１１７０、インターフェースコントローラ１１７１、パラレルインターフェースコントローラ１１７２、Ｉ／Ｏポート１１７３、通信デバイス１１８０、ネットワークコントローラ１１８１、コンピューティングデバイス１１９０、共有チャネル５１０、５１２、５１４を含む、図面に示された例の図示されたコンポーネントを指し示すための番号付けを含む。
【００１２】
以下の詳細な説明において、本明細書の一部を成す添付の図面に対する参照がなされる。図面において、概して、同様の符号は、文脈がそうでないことを示さない限り、同様のコンポーネントを特定する。詳細な説明、図面、および特許請求の範囲に記載の例示的な例は、限定することを意図されていない。本明細書で示される主題の精神または範囲を逸脱することなしに、その他の例が利用される可能性があり、その他の変更がなされる可能性がある。本明細書において全体的に説明され、図面に図示される本開示の態様は、多種多様な異なる構成で配置され、置き換えられ、組み合わされ、設計される可能性があり、それらの構成のすべては本明細書においてはっきりと考慮されていることが容易に理解されるであろう。さらに、一部のよく知られている構造、回路、手法などは、本開示を不必要に曖昧にすることを避けるために詳細に説明されていない。
【００１３】
マルチノード処理においては、データが、メモリ、外部センサ、または、これらに限定されないが、入力−出力（Ｉ／Ｏ）デバイス、もしくはバスによって中央演算処理装置（ＣＰＵ）に結合されたその他のコンポーネントなどのコンピューティング環境のその他のコンポーネントから読まれるときに、そのデータは、特定の処理ノードに配信され得る。処理されるべきデータは、例えば、シングルチップマイクロプロセッサのオンチップ相互接続ネットワークを介するなど、いくつかの方法で処理ノードに配信され得る。
【００１４】
時として、既存の相互接続トポロジーを用いたマルチノードプロセッサは、データをさまざまな処理ノードの間で効率的にルーティングしない可能性がある。例えば、データは、単一の通信チャネルを介して直接流れるのではなく、いくつかの中間ルーティングデバイスを通過する可能性がある。それぞれのそのようなデバイスは、データを、１つのポイントツーポイントネットワーク接続から別のポイントツーポイントネットワーク接続に「ホップ」させる可能性がある。例えば、多くの既存のトポロジーは、データパケットが、開始ノードと送信先ノードの間をルーティングされるときに何度かホップすることをもたらし、何度かホップすることは、エネルギーを浪費し、大きなルータ遅延を生む。その他の既存のトポロジーは、ネットワークにおいてホップ数を減らし、ルータ遅延全体を最小化するために、多数の専用のポイントツーポイントリンクを使用する。しかし、これらのトポロジーは、簡単に拡張できない可能性があり、低いチャネル利用率をもたらす可能性がある。
【００１５】
マルチノード処理ネットワークの効率および拡張性を向上するために、処理ノードの配列上でデータを効率的にルーティングすることができるマルチノード処理ネットワークアーキテクチャのためのシステムおよび方法の例が、本明細書において説明される。本明細書において説明されるシステムおよび方法の例は、２つ以上の送信先ノードにデータをルーティングするように構成された処理ノードを結合することができる複数の通信チャネルを含み得る。加えて、マルチノード処理ネットワークのノードおよび通信チャネルは、例えばネットワークの効率を改善するためにさまざまな構成で配置され得る。例えば、ネットワークは、例えば、配列のノードが、ルーティングデバイスを共有するように構成され得る一群のサブノードを含むことができるように集約され得る。これらの構成およびその他の構成の例が、以下で詳細に検討される。
【００１６】
図１は、本開示にしたがって配置されたマルチノード処理ネットワーク１００の例示的な例の図である。ネットワーク１００は、処理ノード配列１０２を有する単一の集積回路を含む。その他の例において、マルチノードプロセッサは、別々の集積チップ上のプロセッサを含む可能性がある。処理ノード配列１０２は、特定の数（Ｎ個）の処理ノード１０４（１）〜１０４（Ｎ）を含み得る。任意の好適な数（Ｎ個）の処理ノード１０４が、設けられてよい。概して、各処理ノード１０４（１）〜１０４（Ｎ）は、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）など、またはそれらの任意の組合せを含むがこれらに限定されない任意の所望の構成であってよい。したがって、各処理ノード１０４（１）〜１０４（Ｎ）は、プログラムまたはソフトウェア命令を実行するための論理と、例えば、算術論理演算ユニット（ＡＬＵ）、浮動小数点演算ユニット（ＦＰＵ）、デジタル信号処理（ＤＳＰ）ノード、レジスタ、アキュムレータなどのその他の機能ブロックとを含み得る。
【００１７】
マルチノードプロセッサ１００は、専用リソースまたは共有リソースの任意の組合せを含み得る。専用リソースは、例えば、専用の１次キャッシュなどの、単一の処理ノード１０４に専用のリソース１０６である可能性があり、および／または処理ノード１０４の任意のサブセットに専用のリソース１０８である可能性がある。共有リソースは、例えば、共有２次キャッシュなどの、ノード１０４（１）〜１０４（Ｎ）のすべてによって共有されるリソース１１０、および／またはマルチノードプロセッサ１００と別のコンポーネント１１４（これらに限定されないが、入力−出力（Ｉ／Ｏ）デバイス、外部センサなど）の間のインターフェースをサポートする共有外部バス１１２である可能性がある（または処理ノード１０４の任意のサブセットによって共有されるリソースである可能性がある）。共有リソースは、例えば、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ、読み出し専用メモリ（ＲＯＭ）もしくはフラッシュメモリ記憶装置などの不揮発性メモリを含むがこれらに限定されない任意の好適な形態のメモリであってよいメインメモリ１２０、磁気ディスク記憶装置（例えば、ハードディスクドライブもしくはＨＤＤ）、テープ記憶装置、光学式記憶装置（例えば、コンパクトディスクもしくはＣＤ、デジタルバーサタイルディスクもしくはＤＶＤ）などのデータ記憶装置、または取り外し可能、取り外し不可能、揮発性、もしくは不揮発性であってよいその他の機械可読記憶媒体および／もしくはコンピュータがアクセス可能な媒体も含み得る。
【００１８】
マルチノードプロセッサ１００は、任意の好適な数の処理ノード１０４（１）〜１０４（Ｎ）を有してよい。例えば、マルチノードプロセッサ１００は、２つのノード、４つのノード、数十個のノード、および数百個以上の処理ノードさえも有する可能性がある。マルチノードプロセッサの一部の例は、同種のノードからなる可能性があり、したがって、処理ノードのそれぞれが単一のノード設計を使用する。マルチノードプロセッサのその他の例は、異種のノードからなる可能性があり、したがって、処理ノードのうちの１つもしくは複数が、その他の処理ノードのうちの１つもしくは複数と異なってよく、および／または各ノードもしくはノードのサブセットが、マルチノードプロセッサ１００内の異なる役割に最適化されてよい。
【００１９】
マルチノードプロセッサ１００は、コア／ノードコントローラまたはコア／ノードインターフェース１１６も含み得る。コア／ノードコントローラ１１６は、どの処理タスクが各処理ノード１０４（１）〜１０４（Ｎ）によって処理されるべきかを決定することができる。ルータ、スイッチ、またはルータとスイッチの組合せなどの１つもしくは複数のルーティング機能またはデバイス１１８も、個々のノード１０４（１）〜１０４（Ｎ）の間でデータをルーティングするために設けられ得る。一例において、処理タスクは、選択された処理ノードにルータ１１８を用いてルーティングされ得る。
【００２０】
図１は、マルチノードプロセッサ１００の例の例示的な構成図であり、図中に示されたコンポーネントの物理的な位置を示さない。本明細書に記載のマルチノードプロセッサ１００は例示的であり、変更および修正が可能であることが理解される。設計上の選択は、例えば、性能に対するハードウェアの大きさおよび複雑性、熱エネルギーおよび熱の放散、プロセッサの速度、全体的なスループットなどを考慮して決められ得る。
【００２１】
本開示を読んだ当業者に理解されるであろうように、マルチノードプロセッサ１００は、パーソナルコンピュータ（ＰＣ）などの好適なコンピューティング環境に提供され得る。コンピューティング環境は、マルチノードプロセッサ１００と、システムメモリと、１つまたは複数のバスと、キーボード、マウス、タッチスクリーン、通常のＣＲＴまたはＬＣＤに基づくモニタなどのディスプレイデバイス、ユニバーサルシリアルバス（ＵＳＢ）またはその他のポート接続、ＣＤドライブ、ＤＶＤドライブなどの１つまたは複数の入力／出力（Ｉ／Ｏ）デバイスとを含み得る。さまざまなコンポーネントの間のバス接続は、周辺装置相互接続（ＰＣＩ）、ＰＣＩ  Ｅｘｐｒｅｓｓ、アクセラレーテッドグラフィックスポート（ＡＧＰ）、または任意のその他の好適なバスプロトコルなどのバスプロトコルを用いて実装される可能性があり、異なるデバイス間の接続は、異なるプロトコルを使用する可能性がある。ＰＣは、１つまたは複数のリモートコンピュータへの論理接続を使用したネットワーク化された環境で動作することができる。そのようなリモートコンピュータは、例えば、その他のＰＣ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、またはその他の通常のネットワークノードである可能性がある。論理接続は、例えば、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含み得る。
【００２２】
図２は、本開示によるマルチノード処理ネットワークの例示的な例の構成図である。図２に示されるように、データ２０２が、（図１に示されたような）プロセッサ１００によって、またはその他の方法で集められ、メモリおよび／または別の記憶構成１２０に記憶され得る。記憶されたデータ２０２は、マルチノードプロセッサ配列１０２による処理を要求されたときにコア／ノードコントローラ１１６によってメモリまたは記憶構成１２０から取得され得る。したがって、データ要求２１０が、コア／ノードコントローラ１１６によってマルチノードプロセッサ配列１０２からメモリ１２０に送信されることができ、データは、処理のために１つまたは複数のノード１０４（１）〜１０４（Ｎ）に送信される可能性がある。データ２０２は、データバス１２３に沿ってコア／ノードコントローラ１１６転送されることができ、そのとき、コア／ノードコントローラ１１６は、どのノード１０４（１）〜１０４（Ｎ）がデータ２０２を処理することになるかを決定することができる。
【００２３】
一部の例において、処理ノード１０４（１）〜１０４（Ｎ）は、集積回路もしくチップ上に、またはノード配列１０２上に作製または提供され得る。データ２０２は、接続１２７に沿ってルータ１１８にルーティングされ得る。次いで、データ２０２は、選択された個々の処理ノード１０４（１）〜１０４（Ｎ）に、そのような１つまたは複数のルータ１１８およびルータ１１８に接続する通信チャネル１１７を用いてルーティングされ得る。
【００２４】
（図４に示され、以下でさらに詳細に説明される）通信チャネル４０１、４０３、４０５、４０７は、半導体製造で使用される任意の好適な導電材料からなる物理的な通信チャネルである可能性がある。概して、ノード１０４（１）〜１０４（Ｎ）によって処理されているデータ２０２の種類が、データに関連するタスクを処理するために選択された処理ノード１０４（１）〜１０４（Ｎ）のネットワークを通るデータの経路を決定し得る。
【００２５】
ここに開示されるマルチノード配列アーキテクチャの別の例が、図３の構成図として示される。図３に示されるように、マルチノードプロセッサ１００の処理ノード配列１０２のノード１０４（１）〜１０４（Ｎ）は、ネットワークリソース１１８を共有する２つ以上のサブノード３０１（１）〜３０１（１６）を含み得る。上で検討されたように、ネットワークリソース１１８は、サブノードのそれぞれの群１０４（１）、１０４（２）、１０４（３）、および１０４（４）が通信チャネル１１７を介してサブノードのその他の群と通信することを容易にするルーティングデバイスまたはスイッチなどのネットワークインターフェースを含み得る。図３に示された例などの集約された配列は、ネットワークリソースを例えば４分の１に減らす結果をもたらす可能性があり、ネットワークリソースの削減は、マルチノードネットワーク全体の効率および処理速度を高めることができる。集約されたオンチップネットワークの別の例が、「Ｆｌａｔｔｅｎｅｄ  Ｂｕｔｔｅｒｆｌｙ  Ｔｏｐｏｌｏｇｙ  ｆｏｒ  Ｏｎ−Ｃｈｉｐ  Ｎｅｔｗｏｒｋｓ」、Ｊｏｈｎ  Ｋｉｍ、Ｊａｍｅｓ  Ｄ．Ｂａｌｆｏｕｒ、およびＷｉｌｌｉａｍ  Ｊ．Ｄａｌｌｙ著、ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ  Ｌｅｔｔｅｒｓ、第６巻、第２号、３７〜４０ページで検討されており、この文献の内容全体は、参照により本明細書に援用される。
【００２６】
図３に示されたように、マルチノード配列を構成するノード１０４（１）〜１０４（Ｎ）は、平行なまたはタイル状の構成に配置されてよく、単純なリング状構成などのその他の方法で配置されてもよい。
【００２７】
図４は、本開示によるマルチノード配列アーキテクチャの構成図である。図４に示されるように、個々のノード１０４のルータ１１８は、個々の処理ノード１０４を通り抜けておよび／または個々の処理ノード１０４を越えて横切るおよび／または延びる可能性があるさまざまな長さの通信チャネル４０１、４０３、４０５によって結ばれ得る。通信チャネルは、開始ノード１０４（１）またはノード１０４（２）から隣のノード１０４（２）またはノード１０４（３）にデータをルーティングするための単一のポイントツーポイント通信チャネル４０１、４０７、４１１と、（１つまたは複数の）中間ノード１０４（２）によって隔てられているノード１０４（１）と１０４（３）の間でデータをルーティングするためのより長いポイントツーポイントチャネル４０３とを含み得る。より長いポイントツーポイントチャネル４０３は、マルチノードネットワーク１０４を介してデータ４０９をルーティングするために必要とされるホップ数を削減することによってネットワークの遅延を最小化するように働くことができる。例として、図４に示される多様な配列において、データパケット４０９は、開始ノード１０４（１）から送信先ノード１０４（３）まで、短い長さのチャネル４０１および４０７を用いるよりも、より長いチャネル４０３を用いることでより効率的にルーティングされ得る。
【００２８】
ポイントツーポイント通信チャネルに加えて、マルチノード処理ネットワークは、開始ノード１０４（１）から複数の送信先ノード１０４（２）、１０４（３）、および１０４（４）にデータをルーティングするための共有バスウェイ（ｂｕｓｗａｙ）として機能することができる共有通信チャネル４０５も含み得る。より長いポイントツーポイントチャネル４０３と同様の利点によって、共有チャネル４０５は、ネットワークのホップ数全体を最小化することによって遅延を減らすことができる。さらに、ポイントツーポイントチャネルは、さまざまなネットワークノードを接続するために必要とされるチャネル数を削減することによってネットワークの拡張性および性能を大幅に高めることができる。
【００２９】
マルチノード配列アーキテクチャの別の例が、図５の構成図として示され、図５は、例えば、１６個のノード１０４（１）〜１０４（１６）の配列１０２と、単一のマルチノードチップ１０２上に配列された６４個のサブノード３０１とを示す。この例において、サブノード３０１（１）〜３０１（４）は、さまざまなノード群１０４（１）〜１０４（Ｎ）の間でデータをルーティングするための（図１〜４に示され、分かりやすくするために図５では省略されている）ルーティングデバイスおよびリソース１１８を共有する４つのサブノード３０１（１）〜３０１（４）の群に集約され得る。図５に示された図示された配列構成に加えて、多様な配列の多くのその他の大きさおよび構成が、あり得る。例えば、例示的な配列は、２５６個のノードを含む可能性があり、１６ノード集約（１６−ｗａｙ  ｃｏｎｃｅｎｔｒａｔｉｏｎ）または４ノード集約（４−ｗａｙ  ｃｏｎｃｅｎｔｒａｔｉｏｎ）を用いる可能性がある。
【００３０】
さまざまなノードを接続する物理的な通信チャネル３０３は、複数のノード１０４（１）〜１０４（１６）にまたがる物理的な通信チャネルの列３０３を形成するために、配列１０２のさまざまな方向、例えば、水平方向５０５、垂直方向５０３、および斜め方向などのさまざまな次元５０３、５０５で、処理ノード１０４（１）〜１０４（１６）の列に沿って延びる可能性がある。一部の例において、物理的な通信チャネルの列３０３は、水平の次元５０５および垂直の次元５０３に向かって配置されている処理ノード１０４（１）〜１０４（１６）の列に沿って延びる可能性がある。一部のその他の例において、物理的な通信チャネルの列３０３は、そのように望まれる場合には、斜めの次元またはその他の次元に向かって配置されている処理ノード１０４（１）〜１０４（１６）の列に沿って延びる可能性がある。次元または方向５０５、５０３の処理ノード１０４（１）〜１０４（１６）の列に沿って延びる通信チャネルの列３０３の数は、例えば、処理ノード１０４（１）〜１０４（１６）のそのそれぞれの列の中の処理ノード１０４（１）〜１０４（Ｎ）の数に等しい可能性がある。
【００３１】
例として、図５に示された配列は、ノード配列１０２のそれぞれの水平の列１０４（１）〜１０４（４）、１０４（５）〜１０４（８）、１０４（９）〜１０４（１２）、１０４（１３）〜１０４（１６）、およびそれぞれの垂直の列１０４（１）〜１０４（１３）、１０４（２）〜１０４（１４）、１０４（３）〜１０４（１５）、１０４（４）〜１０４（１６）に沿って通信チャネルの４つの列を有する。また、配列１０２は、それぞれの水平の列に４つのノード１０４、例えば、ノード１０４（１）〜１０４（４）、ノード１０４（５）〜１０４（８）、ノード１０４（９）〜１０４（１２）、およびノード１０４（１３）〜１０４（１６））を含む可能性があり、それぞれの垂直の列に４つのノード１０４、例えば、ノード１０４（１）〜１０４（１３）、ノード１０４（２）〜１０４（１４）、ノード１０４（３）〜１０４（１５）、およびノード１０４（４）〜１０４（１６）を含む可能性がある。別の例において、配列１０２の任意の次元５０５、５０３（垂直、水平、または斜め）の処理ノード１０４（１）〜１０４（１６）の列に沿って延びる通信チャネルの列３０３の数は、その列に沿った処理ノード１０４（１）〜１０４（１６）の数に等しい可能性がある。
【００３２】
一部の例において、マルチノード処理配列１０２は、ネットワークの効率および性能を最大化するために、共有バスウェイおよび／またはポイントツーポイントチャネルの組合せを含む可能性もある。受信データ５０１は、２ホップ以下で配列の任意の２つのノード１０４にルーティングされ得る。例えば、データ５０１は、ノード１０４（１）からノード１０４（１６）に、共有通信チャネル５０７および５０９を用いて２ホップでルーティングされ得る。
【００３３】
図５は、マルチノード処理配列の１つのあり得る構成のみを示し、この構成は、例えば、より多くのもしくはより少ないノード、サブノード、および／または通信チャネルを含むように修正され得ることに留意されたい。
【００３４】
図６は、本開示によるマルチノード処理配列、例えば、図５に示された配列１０２の単一のノード１０４（６）のマイクロアーキテクチャの例の概略図である。ノード１０４（６）は、ルータ１１８およびスプリッタ６０１（１）〜６０１（６）を有することができる。例として、データパケット６０７、６０９が、Ｘ次元６０５に沿った１ホップおよびＹ次元６０３に沿った１ホップで送信元ノード１０４（７）から送信先ノード１０４（６）にルーティングされ得る。送信元ノード１０４（７）は、送信先ノード１０４（１）〜１０４（Ｎ）のＸ座標位置６０７（２）およびＹ座標位置６０７（３）を含むデータパケットメッセージ６０７、６０９を構成することができる。一例において、送信元ノード１０４（７）は、データパケット６０７、６０９をノード１０４（６）のルータ１１８に送信することができ、ノード１０４（６）のルータ１１８は、そのデータパケット６０７、６０９を、ノード配列１０２内のその他のノード１０４（１）〜１０４（Ｎ）に配信するためにノード１０４（６）のルータ１１８の出力ポート６１５、６１６、６１８、６２０のうちの１つに出力する。
【００３５】
送信先ノード１０４（６）は、データパケット６０７のＸ座標フィールド６０７（２）をスプリッタ６０１のＸ座標フィールド６０２と比較することができるいくつかのスプリッタ６０１を含み得る。一例において、Ｘ座標が一致しない場合、スプリッタ６０１は、データパケット６０７をノード１０４（６）のルータ１１８の入力チャネル６０３にルーティングせず、その代わりに、データパケット６０７を配列１０２の別のノード１０４にルーティングすることができる。別の例において、データパケット６０７のＸ座標フィールド６０７（２）と、スプリッタ６０１のＸ座標フィールド６０２が一致する場合、スプリッタ６０１は、データパケット６０７を、適切な西（Ｗ）の入力チャネル６０３にルーティングすることができる。次いで、ノード１０４（６）のルータ１１８は、データパケット６０７のＹ座標フィールド６０７（３）を読み、データパケット６０７のＹ座標フィールド６０７（３）をスプリッタ６０１のＹ座標フィールド６０４と比較することができる。一例において、Ｙ座標フィールド６０７（３）と６０４が一致しない場合、ノード１０４（６）のルータ１１８は、それぞれのＹスプリッタを介してその他のノードのその他のルータ１１８によって比較されるように、データパケット６０７を、南に向かう（Ｓ）出力チャネル６１５を用いて配列１０２のその他のノード１０４に転送することができる。別の例において、Ｙ座標フィールド６０７（３）と６０４が一致する場合、ルータ１１８は、データパケット６０７を、内部通信チャネル６１６を介してノード１０４（６）のノードプロセッサ６１７にルーティングすることができる。
【００３６】
その他の例において、データパケット６０７は、そのデータパケット６０７が（図１〜５に示された）配列１０２のすべてのノード１０４（１）〜１０４（Ｎ）にルーティングされてよいことを示すブロードキャストビット６０７（１）をパケット６０７のヘッダに含み得る。別の例において、データパケット６０９は、そのデータ６０９が配列１０２のノード１０４のサブセットにルーティングされてよいことを示すマルチキャストビット６０９（１）をパケット６０９のヘッダに含み得る。マルチキャストをサポートするデータパケット６０９は、ノード配列１０２の複数の送信先ノード１０４（１）〜１０４（Ｎ）に対応し得るビットマスク６０９（２）を含んでよい。例として、マルチキャストデータパケット６０９は、ノード１０４（１）（座標位置０，０を有する）から、図５に示された配列１０２内の送信先ノード１０４（７）（例えば、座標位置２，１を有する）および１０４（１６）（例えば、座標位置３，３を有する）にいくつかの方法でマルチキャストされ得る。一例において、送信元処理ノード１０４（１）は、送信先ノード１０４（７）および１０４（１６）の座標（２，１）および（３，３）を参照するための、データパケット６０９のビットマスク６０９（２）を設定することができる。そして、送信元ノード１０４（１）のルータ１１８は、データパケット６０９を、（図５に示された）東に向かう（Ｅ）共有チャネル５１０を介して、適切なＸ座標位置に配置されたノード１０４（３）および１０４（４）にルーティングすることができ、ノード１０４（３）および１０４（４）は、そのメッセージを、適切なＹ座標位置に配置された送信先ノード１０４（７）および１０４（１６）に届けることができる。
【００３７】
図７は、本開示によるマルチノード処理配列、例えば、図５に示された配列１０２の単一のノード、ノード１０４（７）のマイクロアーキテクチャの例の概略図である。一例において、データバッファ７２９〜７３９に保持された受信データパケットが、入力チャネル７０１〜７１１を介してノード１０４（７）のルータ１１８またはその機能的均等物にルーティングされ得る。ルータ１１８によって処理された後、データパケットは、ノード１０４（７）から延びる出力チャネル７１３〜７１９を介してノード配列１０２のその他のノード１０４にルーティングされ得る。一部の例において、各ノード１０４は、データをノード１０４（７）にルーティングするための２（ｋ−１）個の入力チャネル７０１〜７１１を有する可能性があり、ｋは、それぞれの水平、垂直、または斜めの次元のノードの数である。図５および６の例に示されたように、ノード１０４（７）は、データをノード１０４（７）の東（Ｅ）向きの側７２１に供給する単一の通信チャネル７０１と、データをノード１０４（７）の西（Ｗ）向きの側７２３に供給する２つの入力チャネル７０３、７０５と、データをノード１０４（７）の北（Ｎ）向きの側７２５にルーティングする１つの入力チャネルと、データをノード１０４（７）の南（Ｓ）向きの側７２７に供給する２つの入力チャネル７０９、７１１との合計６つの入力チャネル７０１〜７１１を有する可能性がある。別の例において、ノードの入力チャネル７０１〜７１１に到着し、データバッファ７２９〜７３９に保持されたデータパケットは、それぞれのマルチプレクサ７２１〜７２７によって多重化され、チャネル７３１〜７３７を介してクロスバースイッチ７３０に送信される可能性があり、クロスバースイッチ７３０は、データを適切な出力チャネル７１３、７１５、７１７、または７１９に転送することができる。別の例において、ルータ１１８は、ノードプロセッサ６１７をルータ１１８に接続する入力チャネル６１９および出力チャネル６１６も含み得る。
【００３８】
加えて、図６に図示された例に示されたように、平行な配列構成のノード１０４は、最大で４つの出力通信チャネル７１３〜７１９を有する可能性がある。一例において、出力チャネルは、ノード１０４（７）から各方向（例えば、北、東、南、または西）に延びる可能性がある。
【００３９】
図８ａ〜８ｃは、本開示によるマルチノード配列アーキテクチャのさまざまな例の概略図である。図８ａに示される一例において、通信チャネル８０１は、データ８０３をノード配列１０２の複数の個々のノード１０４（１）〜１０４（４）にルーティングするように構成され得る。図８ｂに示される別の例において、通信チャネル８０１は、それぞれがデータをノード配列１０２のノード１０４（１）〜１０４（４）のそれぞれにルーティングするように構成され得る２つ以上の通信チャネル８０５および８０７によって分割され得る。通信チャネル８０５および８０７は、分割される通信チャネル８０１と同じ帯域幅であってよいが、より小さい（または大きい）帯域幅を有してもよい。一例において、通信チャネル８０５および８０７は、分割される通信チャネル８０１の帯域幅のほぼ等しい割合を含むほぼ等しい帯域幅を有する可能性がある。データを複数のノードにルーティングする複数の共有チャネルを用いることは、チャネルの帯域幅が頻繁に送信されるデータパケットの大きさを超える場合に起こり得る無駄な内部チャネル帯域幅を防ぐか、または削減することができる。チャネルを分割することは、バッファリングされるネットワークシステムにおけるヘッドオブラインブロッキング（ｈｅａｄ−ｏｆ−ｌｉｎｅ  ｂｌｏｃｋｉｎｇ）を防ぐか、または削減して、ネットワークの効率全体を高めることもできる。
【００４０】
図８ｃの例に示されるように、通信チャネル８０１は、データ８０３を分割される通信チャネル８０１の送信先ノード１０４（２）、１０４（３）、および１０４（４）にルーティングするように構成される２つ以上の分割サブチャネル８０９および８１１に分割されてもよい。分割サブチャネル８０９、８１１は、ポイントツーポイントチャネルと共有通信チャネルの組合せを含み得る。一部の例において、分割サブチャネル８０９、８１１の送信先ノード１０４（２）、１０４（３）、１０４（４）は、分割サブチャネルのうちの１つのサブチャネル８０９の送信先ノード１０４（２）および１０４（４）が、その他の分割サブチャネルのうちのいずれのサブチャネル８１１の（１つまたは複数の）送信先ノード１０４（３）とも異なるように分割され得る。その他の例において、配列１０２の各ルータ１１８への入力の数は、通信チャネル８０１が分割されるときに変わらない。
【００４１】
図９は、本開示によるマルチノード処理ネットワーク上でデータをルーティングするための方法の例の流れ図である。オペレーション９０２に示されるように、記憶構成からのデータが、処理構成を用いて取得されて、取得したデータを提供することができる。オペレーション９０４において、記憶装置から取得したデータが、単一の物理的な通信チャネルを介して、第１の処理ノードからマルチノード処理配列の少なくとも２つのその他の送信先処理ノードにルーティングデバイスを用いてルーティングされ得る。
【００４２】
図１０は、本開示によるマルチノード処理ネットワーク上でデータをルーティングするための方法の別の例の流れ図である。図１０に示されるように、コンピュータシステム１００７は、マルチノード処理ネットワーク上でデータをルーティングするための方法の例を実行するように構成されたプロセッサ１００５を含み得る。その他の例において、方法のさまざまなステップまたはさまざまなステップの一部は、プロセッサ１００５の外部で実行され得る。オペレーション１００１において、例えば、方法は、処理構成を用いて記憶構成からデータを取得して、取得したデータを提供することを含み得る。オペレーション１００３において、方法は、取得したデータを、単一の物理的な通信チャネルを介して、第１の処理ノードからマルチノード処理配列の少なくとも２つのその他の送信先処理ノードにルーティングデバイスを用いてルーティングすることを含み得る。
【００４３】
図１１は、本開示による、マルチノード処理ネットワーク上でデータをルーティングするように構成されている例示的なコンピューティングデバイス１１００を示す構成図である。ごく基本的な構成１１０１において、概して、コンピューティングデバイス１１００は、１つまたは複数のプロセッサ１１１０およびシステムメモリ１１２０を含む。メモリバス１１３０が、プロセッサ１１１０とシステムメモリ１１２０の間の通信のために使用され得る。
【００４４】
所望の構成に応じて、プロセッサ１１１０は、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはそれらの任意の組合せを含むがこれらに限定されない任意の種類であってよい。プロセッサ１１１０は、１次キャッシュ１１１１および２次キャッシュ１１１２などの１つまたは複数のレベルのキャッシュ、ならびにレジスタ１１１４を含み得る。プロセッサ１１１０は、マルチノード処理ネットワーク上でデータをルーティングするように構成されているマルチノード処理配列１１１３をさらに含み得る。マルチノード処理配列１１１３は、算術論理演算ユニット（ＡＬＵ）、浮動小数点演算ユニット（ＦＰＵ）、デジタル信号処理コア（ＤＳＰ  Ｃｏｒｅ）、またはそれらの任意の組合せを含み得る。メモリコントローラ１１１５が、プロセッサ１１１０とともに使用されてもよく、または一部の実装においては、メモリコントローラ１１１５は、プロセッサ１１１０の内部部分であってよい。プロセッサ１１１０は、マルチノード処理配列１１１３によって処理される処理タスクを決定することができるノード／コアコントローラ１１２９をさらに含み得る。
【００４５】
所望の構成に応じて、システムメモリ１１２０は、揮発性メモリ（ＲＡＭなど）、不揮発性メモリ（ＲＯＭ、フラッシュメモリなど）、またはそれらの任意の組合せを含むがこれらに限定されない任意の種類であってよい。概して、システムメモリ１１２０は、オペレーティングシステム１１２１、１つまたは複数のアプリケーション１１２２、およびプログラムデータ１１２４を含む。一部の実施形態において、アプリケーション１１２２は、オペレーティングシステム１１２１上でプログラムデータ１１２４を用いて動作するように構成され得る。この説明された基本構成は、図１１に破線１１０１内のコンポーネントによって示される。
【００４６】
コンピューティングデバイス１１００は、追加的な特徴または機能、ならびに基本構成１１０１と任意の必要とされるデバイスおよびインターフェースとの間の通信を容易にする追加的なインターフェースを含み得る。例えば、バス／インターフェースコントローラ１１４０が、記憶装置インターフェースバス１１４１を介した基本構成１１０１と１つまたは複数のデータ記憶装置１１５０の間の通信を容易にするために使用され得る。データ記憶装置１１５０は、取り外し可能な記憶装置１１５１、取り外し不可能な記憶装置１１５２、またはそれらの組合せであってよい。取り外し可能な記憶装置および取り外し不可能な記憶装置の例は、いくつか例を挙げるとすれば、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）などの磁気ディスクデバイス、コンパクトディスク（ＣＤ）ドライブまたはデジタルバーサタイルディスク（ＤＶＤ）ドライブなどの光ディスクドライブ、ソリッドステートドライブ（ＳＳＤ）、ならびにテープドライブを含む。例示的なコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実装された揮発性および不揮発性の取り外し可能なおよび取り外し不可能な媒体を含み得る。
【００４７】
システムメモリ１１２０、取り外し可能な記憶装置１１５１、および取り外し不可能な記憶装置１１５２は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、もしくはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、もしくはその他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくはその他の磁気記憶装置、または所望の情報を記憶するために使用されることができ、コンピューティングデバイス１１００によってアクセスされることができる任意のその他の媒体を含むがこれらに限定されない。任意のそのようなコンピュータ記憶媒体は、デバイス１１００の一部であってよい。
【００４８】
コンピューティングデバイス１１００は、バス／インターフェースコントローラ１１４０を介したさまざまなインターフェースデバイス（例えば、出力インターフェース、周辺インターフェース、および通信インターフェース）から基本構成１１０１への通信を容易にするためのインターフェースバス１１４２も含み得る。例示的な出力デバイス１１６０は、１つもしくは複数のＡ／Ｖポート１１６３を介してディスプレイまたはスピーカなどのさまざまな外部デバイスと通信するように構成され得るグラフィックス処理ユニット１１６１および音声処理ユニット１１６２を含む。例示的な周辺インターフェース１１７０は、１つまたは複数のＩ／Ｏポート１１７３を介して入力デバイス（例えば、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなど）またはその他の周辺デバイス（例えば、プリンタ、スキャナなど）などの外部デバイスと通信するように構成され得るシリアルインターフェースコントローラ１１７１またはパラレルインターフェースコントローラ１１７２を含む。例示的な通信デバイス１１８０は、１つまたは複数の通信ポート１１８２を介したネットワーク通信による１つまたは複数のその他のコンピューティングデバイス１１９０との通信を容易にするように構成され得るネットワークコントローラ１１８１を含む。
【００４９】
通信接続は、通信媒体の一例である。概して、通信媒体は、搬送波またはその他の搬送メカニズムなどの変調されたデータ信号内のコンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータによって具現化されることができ、任意の情報配信媒体を含む。「変調されたデータ信号」は、その信号の特徴のうちの１つまたは複数を、信号中に情報を符号化するような方法で設定または変更させる信号である可能性がある。限定ではなく例として、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、無線周波数（ＲＦ）、赤外線（ＩＲ）、およびその他の無線媒体などの無線媒体を含み得る。本明細書において使用される用語「コンピュータ可読媒体」は、記憶媒体および通信媒体の両方を含み得る。
【００５０】
コンピューティングデバイス１１００は、セル電話、携帯情報端末（ＰＤＡ）、パーソナルメディアプレイヤーデバイス、無線ウェブ閲覧デバイス、パーソナルハンドセットデバイス、特定用途向けデバイス、または上述の機能のうちの任意のものを含む複合デバイスなどの小型フォームファクタ携帯型（または移動体）電子デバイスの一部として実装され得る。また、コンピューティングデバイス１１００は、ラップトップコンピュータ構成および非ラップトップコンピュータ構成の両方を含むパーソナルコンピュータとして実装され得る。
【００５１】
ここまでは、データがマルチノード処理ネットワーク上でどのようにルーティングされ得るかのさまざまな例を説明する。マルチノード処理ネットワーク上でデータをルーティングするための方法およびシステムの具体的な例が、以下に説明される。そのような例は、例示のためにのみ提供され、限定することを意図されていない。
【００５２】
例えば、マルチノードネットワーク上でデータをルーティングするためのシステムは、複数のノードおよびそれらの複数のノードを接続する複数の物理的な通信チャネルを有するマルチノード配列を含み得る。複数の物理的な通信チャネルのうちの少なくとも１つは、データを、第１のノードから、ノードのうちの２つ以上のその他の送信先ノードにルーティングするように構成され得る。
【００５３】
その他の例において、複数のノードのそれぞれは、ルーティングデバイスを共有するように構成されている２つ以上のサブノードを含み得る。さらに、複数の物理的な通信チャネルは、物理的な通信チャネルの複数の列を形成するために配列の第１の方向のノードの第１の列に沿って延びる可能性があり、第１の列に沿って配置されている、複数のノードからのノードの数は、その数のそれらのノード間の、第１の列に沿って延びる、物理的な通信チャネルの複数の列からの列の数に等しい可能性がある。さらなる例において、複数の物理的な通信チャネルは、物理的な通信チャネルの複数の列を形成するために、配列の第１の方向のノードの第１の列に沿って、および配列の第２の方向のノードの第２の列に沿って延びる可能性がある。第１の列に沿って配置されている、複数のノードからのノードの第１の数は、それらの第１の数のノード間の、第１の列に沿って延びる、物理的な通信チャネルの複数の列からの列の数に等しい可能性がある。第２の列に沿って配置されている、複数のノードからのノードの第２の数は、それらの第２の数のノード間の、第２の列に沿って延びる、物理的な通信チャネルの複数の列からの列の数に等しい可能性がある。その他の例において、配列の第１の方向および第２の方向は、配列の水平方向および配列の垂直方向を含み得る。加えて、複数のノードのそれぞれは、２〜４個の出力および２（ｋ−１）個の入力を有する可能性があり、ここで、ｋは、配列の特定の列に沿って配置された、複数のノードからのノードの数である。
【００５４】
さらに、複数の物理的な通信チャネルのうちの少なくとも１つは、２つ以上の分割サブチャネルを含み得る。２つ以上の分割サブチャネルのそれぞれは、データを、複数の物理的な通信チャネルのうちの関連する物理的な通信チャネルのその他の送信先ノードにルーティングするように構成され得る。さらに、２つ以上の分割サブチャネルは、ほぼ等しい帯域幅を有する可能性があり、分割サブチャネルの帯域幅の合計は、複数の物理的な通信チャネルのうちの関連する物理的な通信チャネルの帯域幅にほぼ等しい可能性がある。
【００５５】
別の例において、複数の物理的な通信チャネルのうちの少なくとも１つは、２つ以上の分割サブチャネルを含む可能性があり、それらの２つ以上の分割サブチャネルは、データを、複数の物理的な通信チャネルのうちの関連する物理的な通信チャネルの送信先ノードにルーティングするように構成される。分割サブチャネルのうちの少なくとも１つは、データを、第１のノードから、物理的な通信チャネルのうちの関連する物理的な通信チャネルの送信先ノードのうちの少なくとも２つにルーティングするように構成される可能性があり、分割サブチャネルのうちの任意の分割サブチャネルのその他の送信先ノードは、分割サブチャネルのうちのいずれかその他の分割サブチャネルのその他の送信先ノードとは異なる可能性がある。その上、物理的な通信チャネルは、データを、第１のノードからその他の送信先ノードのうちの任意の送信先ノードに最大２ホップでルーティングするように構成され得る。その他の例において、システムは、シングルチップマルチプロセッサとして構成され得る。
【００５６】
本開示は、概して、マルチノードネットワーク上でデータをルーティングするための方法にも関する可能性がある。マルチノードネットワーク上でデータをルーティングするための方法の１つのあり得る例は、処理構成を用いて記憶構成からデータを取得して、取得したデータを提供することと、取得したデータを、データを第１のノードから２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含み得る。
【００５７】
その他の例において、ノードのそれぞれは、ルーティングデバイスを共有するように構成されている２つ以上のサブノードを含み得る。さらに、ネットワークは、物理的な通信チャネルの複数の列を形成するために配列の第１の方向のノードの第１の列に沿って延びる可能性がある複数の物理的な通信チャネルを含むことができ、第１の列に沿って配置されている、複数のノードからのノードの数は、その数のそれらのノード間の、第１の列に沿って延びる、物理的な通信チャネルの複数の列からの列の数に等しい可能性がある。一部の例において、ノードのそれぞれは、２〜４個の出力および２（ｋ−１）個の入力を有する可能性があり、ここで、ｋは、配列の特定の列に沿って配置された、複数のノードからのノードの数である。
【００５８】
さらなる例において、物理的な通信チャネルは、ほぼ等しい帯域幅を有する分割サブチャネルを含み得る。分割サブチャネルのそれぞれは、データを、単一の物理的な通信チャネルのその他の送信先ノードにルーティングするように構成され得る。加えて、２つ以上の分割サブチャネルは、ほぼ等しい帯域幅を有し、分割サブチャネルの帯域幅の合計は、単一の物理的な通信チャネルの帯域幅にほぼ等しい可能性がある。その他の例において、単一の物理的な通信チャネルは、データを、単一の物理的な通信チャネルのその他の送信先ノードにルーティングするように構成され得る２つ以上の分割サブチャネルを含み得る。分割サブチャネルのうちの少なくとも１つは、データを、第１のノードから単一の物理的な通信チャネルの少なくとも２つのその他の送信先ノードのうちの少なくとも２つにルーティングするように構成される可能性があり、分割サブチャネルのうちの任意の分割サブチャネルのその他の送信先ノードは、分割サブチャネルのうちのいずれかその他の分割サブチャネルのその他の送信先ノードとは異なる可能性がある。その上、単一の物理的な通信チャネルは、データを、第１のノードからその他の送信先ノードのうちの任意の送信先ノードに最大２ホップでルーティングするように構成され得る。
【００５９】
本開示は、概して、マルチノードネットワーク上でデータをルーティングするプロシージャを実行するためのコンピュータが実行可能な命令を記憶するコンピュータがアクセス可能な媒体にも関する可能性がある。例えば、プロシージャが処理構成によって実行される場合、処理構成は、処理構成を用いて記憶構成からデータを取得することと、記憶構成から取得したデータを、データを第１のノードから少なくとも２つ以上のその他の送信先ノードにルーティングするように構成された単一の物理的な通信チャネルを介して、第１のノードからマルチノード配列の別の送信先ノードにルーティングデバイスを用いてルーティングすることとを含む手法を実行するように構成され得る。
【００６０】
コンピュータがアクセス可能な媒体のその他の例において、単一の物理的な通信チャネルは、分割サブチャネルを含む可能性があり、分割サブチャネルのそれぞれは、データを、単一の物理的な通信チャネルのその他の送信先ノードにルーティングするように構成され得る。
【００６１】
本開示は、さまざまな態様の例示として意図されている、本出願に記載の特定の例によって限定されてはならない。当業者に明らかになるであろうように、多くの修正および変更が、本開示の精神および範囲を逸脱することなしになされ得る。本明細書に列挙された方法および装置に加えて、本開示の範囲内の機能的に均等な方法および装置が、上述の説明から当業者に明らかになるであろう。そのような修正および変更は、添付の特許請求の範囲の範囲内に入るように意図される。本開示は、添付の特許請求の範囲に与えられた均等物の全範囲と併せた、そのような特許請求の範囲の請求項によってのみ限定されるべきである。本開示は、特定の方法、試薬、化合物、組成物、または生体システムに限定されず、これらはもちろん変わり得ることを理解されたい。本明細書で使用された用語は、特定の例を説明することのみを目的としており、限定するように意図されていないことも理解されたい。
【００６２】
システムの態様のハードウェアの実装とソフトウェアの実装の間にはほとんど違いがなく、ハードウェアまたはソフトウェアの使用は、概して（しかし、状況によってはハードウェアとソフトウェアの間の選択が重要になる場合があるので必ずではないが）、費用対効果のトレードオフを示す設計上の選択である。本明細書に記載のプロセスおよび／またはシステムおよび／またはその他の技術がもたらされる得るさまざまな手段（例えば、ハードウェア、ソフトウェア、および／またはファームウェア）が存在し、好ましい手段は、プロセスおよび／またはシステムおよび／またはその他の技術が配備される状況によって変わる。例えば、実装者が、速度および精度が最も重要であると決定する場合、実装者は、主にハードウェアおよび／もしくはファームウェアの手段を選択することができ、柔軟性が最も重要である場合、実装者は、主にソフトウェアの実装を選択することができ、またはさらに代替的に、実装者は、ハードウェア、ソフトウェア、および／もしくはファームウェアの何らかの組合せを選択することができる。
【００６３】
上述の詳細な説明は、構成図、流れ図、および／または例を用いてデバイスおよび／またはプロセスのさまざまな実施形態を説明した。そのような構成図、流れ図、および／または例が１つまたは複数の機能および／またはオペレーションを含む場合、そのような構成図、流れ図、または例の各機能および／またはオペレーションは、幅広いハードウェア、ソフトウェア、ファームウェア、またはそれらの事実上任意の組合せによって個々におよび／またはまとめて実装され得ることが当業者に理解されるであろう。一例において、本明細書に記載の主題のさまざまな部分が、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、またはその他の集積された形態で実装され得る。しかし、当業者は、本明細書で開示された例のいくつかの態様が、全体として、または一部、集積回路で、１つもしくは複数のコンピュータ上で動作する１つもしくは複数のコンピュータプログラムとして（例えば、１つもしくは複数のコンピュータシステム上で動作する１つもしくは複数のプログラムとして）、１つもしくは複数のプロセッサ上で動作する１つもしくは複数のプログラムとして（例えば、１つもしくは複数のマイクロプロセッサ上で動作する１つもしくは複数のプログラムとして）、ファームウェアとして、またはそれらの事実上任意の組合せとして等価的に実装され得ることと、回路を設計することならびに／またはソフトウェアおよび／もしくはファームウェアのためのコードを記述することは、本開示に照らして、十分に当業者の技能の範囲内にあることとを認識するであろう。加えて、当業者は、本明細書に記載の主題の仕組みが、さまざまな形態のプログラム製品として配布されることができること、および本明細書に記載の主題の例示的な例が、実際に配布を行うために使用される信号を運ぶ媒体の特定の種類にかかわらず適用されることを理解するであろう。信号を運ぶ媒体の例は、以下のもの、すなわち、フロッピー（登録商標）（登録商標）ディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリなどの記憶可能なタイプの媒体と、デジタルおよび／またはアナログ通信媒体（例えば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）などの伝送タイプの媒体とを含むが、これらに限定されない。
【００６４】
当業者は、本明細書で説明された方法でデバイスおよび／またはプロセスを記述し、その後、工学的手法を用いてそのような記述されたデバイスおよび／またはプロセスをデータ処理システムに組み込むことが当技術分野で一般的であることを認めるであろう。つまり、本明細書に記載のデバイスおよび／またはプロセスの少なくとも一部は、妥当な量の実験によってデータ処理システムに組み込まれ得る。当業者は、通常のデータ処理システムが、概して、システムユニット筐体、ビデオディスプレイデバイス、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステム、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムなどの計算主体、タッチパッドもしくはタッチスクリーンなどの１つもしくは複数のインタラクションデバイス、ならびに／またはフィードバックループおよび制御モータ（例えば、位置および／もしくは速度を感知するためのフィードバック、コンポーネントおよび／もしくは量を移動および／もしくは調整するための制御モータ）を含む制御システムのうちの１つまたは複数を含むことを認めるであろう。通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムにおいて通常見られるコンポーネントなどの任意の好適な市販のコンポーネントを利用して実装され得る。
【００６５】
本明細書に記載の対象は、さまざまなその他のコンポーネント内に含まれるか、またはさまざまなその他のコンポーネントに接続されるさまざまなコンポーネントを示すことがある。そのような記載されたアーキテクチャは単なる例であるに過ぎず、実際、同じ機能を実現する多くのその他のアーキテクチャが実装可能であることを理解されたい。概念的な意味で、同じ機能を実現するためのコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」られる。したがって、特定の機能を実現するために組み合わされた本明細書の任意の２つのコンポーネントは、アーキテクチャまたは中間コンポーネントにかかわらず、所望の機能を実現するように互いに「関連付けられた」とみなされ得る。同様に、そのように関連付けられた任意の２つのコンポーネントは、所望の機能を実現するために互いに「動作可能に接続され」ているまたは「動作可能に結合され」ているとやはりみなされる可能性があり、そのように関連付けられることができる任意の２つのコンポーネントは、所望の機能を実現するために互いに「動作可能に結合可能」であるとやはりみなされる可能性がある。動作可能に結合可能な具体的な例は、物理的に接続可能なおよび／もしくは物理的にインタラクションするコンポーネント、ならびに／または無線でインタラクション可能なおよび／もしくは無線でインタラクションするコンポーネント、ならびに／または論理的にインタラクションするおよび／もしくは論理的にインタラクション可能なコンポーネントを含むがこれらに限定されない。
【００６６】
本明細書の実質的にすべての複数形の用語および／または単数形の用語の使用に関して、当業者は、状況および／または用途に合わせて、複数形を単数形におよび／または単数形を複数形に変換することができる。さまざまな単数形／複数形の変化形が、分かりやすくするために本明細書においては明示的に記載されている可能性がある。
【００６７】
概して、本明細書および特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本体部）で使用されている用語は、概して「非制限的」用語として意図される（例えば、用語「〜を含んでいる（ｉｎｃｌｕｄｉｎｇ）」は、「〜を含んでいるがそれらに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「〜を有する（ｈａｖｉｎｇ）」は、「少なくとも〜を有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「〜を含むがそれらに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、等々）ことが、当業者に理解されるであろう。導入される請求項の記載事項の具体的な数が意図される場合、そのような意図は請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しないことが、当業者にさらに理解されるであろう。例えば、理解の助けとして、以下の添付の特許請求の範囲は、請求項の記載事項を導入するための導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」の使用を含み得る。しかし、そのような句の使用は、たとえ同じ請求項が導入句「１つまたは複数の」または「少なくとも１つの」と、「ａ」または「ａｎ」などの不定冠詞とを含むとしても、不定冠詞「ａ」または「ａｎ」による請求項の記載事項の導入が、そのような導入される請求項の記載事項を含む任意の特定の請求項をそのような記載事項を１つしか含まない例に限定することを示唆すると解釈されるべきでなく（例えば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）、同じことが、請求項の記載事項を導入するために使用される定冠詞の使用にも当てはまる。加えて、たとえ導入される請求項の記載事項の具体的な数が明示的に記載されるとしても、当業者は、そのような記載が、少なくとも記載された数という意味であると解釈されるべきである（例えば、その他に修飾語のない「２つの記載事項」というそれだけの記載は、少なくとも２つの記載事項、または２つ以上の記載事項を意味する）ことを認めるであろう。さらに、「Ａ、Ｂ、およびＣなどのうちの少なくとも１つ」に類する表記法が使用される場合、概して、そのような構文は、当業者がその表記法を理解する意味で意図される（例えば、「Ａ、Ｂ、およびＣのうちの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢの両方、ＡおよびＣの両方、ＢおよびＣの両方、ならびに／またはＡ、Ｂ、およびＣのすべてなどを有するシステムを含むがこれらに限定されない）。「Ａ、Ｂ、またはＣなどのうちの少なくとも１つ」に類する表記法が使用される場合、概して、そのような構文は、当業者がその表記法を理解する意味で意図される（例えば、「Ａ、Ｂ、またはＣのうちの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢの両方、ＡおよびＣの両方、ＢおよびＣの両方、ならびに／またはＡ、Ｂ、およびＣのすべてなどを有するシステムを含むがこれらに限定されない）。２��以上の選択可能な用語を表す実質的にすべての離接的な語および／または離接的な句は、発明を実施するための形態においてであろうと、特許請求の範囲においてであろうと、または図面においてであろうと、それらの用語のうちの１つ、それらの用語のうちのいずれか、またはそれらの用語の両方を含む可能性を考慮すると理解されるべきであることが、当業者にさらに理解されるであろう。例えば、句「ＡまたはＢ」は、「Ａ」の可能性、または「Ｂ」の可能性、または「ＡおよびＢ」の可能性を含むと理解される。
【００６８】
さらに、本開示の特徴または態様がマーカッシュ群（Ｍａｒｋｕｓｈ  ｇｒｏｕｐ）によって説明される場合、当業者は、本開示が、それによって、マーカッシュ群の任意の個々の構成要素または構成要素の部分群によっても説明されることを認めるであろう。
【００６９】
当業者に理解されるであろうように、書面で説明するという観点など、任意のおよびすべての趣旨で、本明細書で開示されたすべての範囲は、任意のおよびすべてのあり得る部分的な範囲およびそれらの部分的な範囲の組合せも包含する。どの記載された範囲も、同じ範囲が少なくとも２等分、３等分、４等分、５等分、１０等分などに分割されることを十分に説明し、そのように分割されることを可能にすると容易に認識され得る。非限定的な例として、本明細書で検討された各範囲は、下３分の１、真ん中３分の１、および上３分の１などに容易に分割され得る。当業者にやはり理解されるであろうように、「最大で〜まで」、「少なくとも」、「〜より大きい」、「〜未満」などのすべての言い回しは、記載された数を含み、上で検討されたように部分的な範囲に続けて分割され得る範囲を指す。最後に、当業者に理解されるであろうように、範囲は、それぞれの個々の構成要素を含む。したがって、例えば、１〜３個のセルを有する群は、１個、２個、または３個のセルを有する群を指す。同様に、１〜５個のセルを有する群は、１個、２個、３個、４個、または５個のセルを有する群を指し、以下同様である。
【００７０】
水平または垂直などの方向を示す用語は、配列のレイアウトを示すために便宜的に使用され、必ずしも、水平方向または垂直方向が物理的なデバイスの水平軸に対して完全に水平にまたは垂直に向けて配置されることを示唆するわけではない。
【００７１】
さまざまな態様および実施形態が本明細書において開示されたが、その他の態様および実施形態が、当業者には明らかになるであろう。本明細書において開示されたさまざまな態様および実施形態は、例示を目的としており、限定するように意図されておらず、その真の範囲および精神は、以下の特許請求の範囲によって示される。
【図１】
2012528416.tif 000003
【図２】
2012528416.tif 000004
【図３】
2012528416.tif 000005
【図４】
2012528416.tif 000006
【図５】
2012528416.tif 000007
【図６】
2012528416.tif 000008
【図７】
2012528416.tif 000009
【図８ａ】
2012528416.tif 000010
【図８ｂ】
2012528416.tif 000011
【図８ｃ】
2012528416.tif 000012
【図９】
2012528416.tif 000013
【図１０】
2012528416.tif 000014
【図１１】
2012528416.tif 000015
【国際調査報告】
2012528416.tif 000016
2012528416.tif 000017