(57)【要約】  複数の相互接続要素の間でデータを送信する方法である。この方法は、第１の要素からメッセージを受信し、このメッセージはルーティング鍵を有し、任意選択でデータペイロードを有する。ルーティング鍵は、複数のこの相互接続要素を識別するように処理され、データは、この識別された複数の相互接続要素に送信される。
2009517908.tif 000002
【特許請求の範囲】
【請求項１】
複数の相互接続要素の間でデータを送信する方法であって、
第１の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、
前記識別された複数の相互接続要素にデータを送信することを有し、
前記ルーティング鍵を処理することは、前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有し、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記見つかったルーティングワードを使用して識別される方法。
【請求項２】
複数の相互接続要素の間でデータを送信する方法であって、
第１の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、
前記識別された複数の相互接続要素にデータを送信することを有し、
前記ルーティング鍵を処理することは、前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有し、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、前記ルーティングワードは、複数の要素のそれぞれについてビットを有し、データが前記相互接続要素の１つに通信されるか否かを決定する各ビットの状態を有する方法。
【請求項３】
前記ルーティングワードは、前記相互接続要素の特定のものに接続された前記複数の要素のそれぞれについてビットを有する、請求項2に記載の方法。
【請求項４】
前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有する、請求項２又は３に記載の方法。
【請求項５】
前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用される、請求項４に記載の方法。
【請求項６】
前記ビットのサブセットは、前記鍵のそれぞれについて独立に決定される、請求項１又は５に記載の方法。
【請求項７】
前記ビットのサブセットを選択することは、前記比較を実行する前に、前記ビットのサブセット以外の前記ルーティング鍵のビットを所定の状態に設定することを有する、請求項１、５又は６に記載の方法。
【請求項８】
前記ルーティング鍵のビットを設定することは、前記ルーティング鍵と所定のマスクとの間でビット単位の論理AND動作を実行することを有する、請求項７に記載の方法。
【請求項９】
前記ルーティング鍵は、前記第１の要素の識別子を有する、請求項１ないし８のうちいずれか１項に記載の方法。
【請求項１０】
前記試行が成功しない場合、少なくとも１つの相互接続要素は、初期設定データを使用して識別される、請求項１ないし９のうちいずれか１項に記載の方法。
【請求項１１】
前記第１の要素及び前記識別された複数の相互接続要素は、第２の要素に接続され、前記方法は、前記第２の要素で実行される、請求項１ないし１０のうちいずれか１項に記載の方法。
【請求項１２】
前記送信されるデータは、前記メッセージを有する、請求項１ないし１１のうちいずれか１項に記載の方法。
【請求項１３】
前記メッセージは、データペイロードを有する、請求項１ないし１２のうちいずれか１項に記載の方法。
【請求項１４】
コンピュータに請求項１ないし１３のうちいずれか１項に記載の方法を実行させるように構成されたコンピュータ可読プログラムコードを伝達するデータ媒体。
【請求項１５】
プロセッサ可読命令を格納するプログラムメモリと、
前記プログラムメモリに格納された命令を読み取って実行するように構成されたプロセッサと
を有するコンピュータ装置であって、
前記プロセッサ可読命令は、前記プロセッサが請求項１ないし１３のうちいずれか１項に記載の方法を実行するように制御する命令を有するコンピュータ装置。
【請求項１６】
複数の相互接続要素の間でデータを送信する装置であって、
第１の要素からメッセージを受信する手段であり、前記メッセージはルーティング鍵を有する手段と、
前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別する手段であり、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別される手段と、
前記識別された複数の相互接続要素にデータを送信する手段と
を有する装置。
【請求項１７】
複数の相互接続要素の間でデータを送信する装置であって、
第１の要素からメッセージを受信するように構成された受信インタフェースであり、前記メッセージはルーティング鍵を有する受信インタフェースと、
前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、複数の前記相互接続要素を識別するように構成されたプロセッサであり、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別されるプロセッサと、
前記識別された複数の相互接続要素にデータを送信するように構成された送信インタフェースと
を有する装置。
【請求項１８】
前記プロセッサは、連想メモリに格納されたデータに基づいて、前記複数の前記相互接続要素を識別するように構成される、請求項１７に記載の装置。
【請求項１９】
前記連想メモリは、関連するRAMに格納されたルーティングワードを見つけるように構成される、請求項１８に記載の装置。
【請求項２０】
前記連想メモリは複数のエントリを有し、各エントリは鍵を有し、前記プロセッサは、前記連想メモリの鍵を使用して前記複数の前記相互接続要素を識別するように構成される、請求項１８又は１９に記載の装置。
【請求項２１】
前記連想メモリの各エントリはマスクを更に有し、前記ルーティング鍵は前記マスクと結合され、前記複数の相互接続要素を識別する、請求項２０に記載の装置。
【請求項２２】
相互の間でデータを送信するように構成される相互接続要素のネットワークであり、各要素はルータを有するネットワークであって、
前記ルータは、
第１の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、
前記識別された複数の相互接続要素にデータを送信するように構成されるネットワーク。
【請求項２３】
複数の相互接続要素の間でデータを送信する装置であって、
第１の要素からメッセージを受信する手段であり、前記メッセージはルーティング鍵を有する手段と、
前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別する手段であり、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、前記ルーティングワードは、複数の要素のそれぞれについてビットを有し、データが前記相互接続要素の１つに通信されるか否かを決定する各ビットの状態を有する手段と、
前記識別された複数の相互接続要素にデータを送信する手段と
を有する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信方法及び装置に関する。
【背景技術】
【０００２】
典型的には、従来のコンピュータネットワークは、２つの通信モードをサポートする。第１の通信モードは、１対１の通信である。この場合、メッセージは単一の発信元から単一の宛先に伝達される。第２の通信モードは、ブロードキャスト通信である。この場合、メッセージは単一の発信元からネットワークに接続された全ての他の要素に伝達される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
相互接続されたニューロンのニューラルシステムでは、典型的には、ニューロンは相互に非常に高い接続性を有する。所定のニューロンが1,000〜10,000の他のニューロンからデータを受け付け、データを同様の数のニューロンに出力することが、しばしば存在する。前述の２つの通信モードのいずれも、ニューラルシステムには理想的に適合しない。１対１の通信が使用される場合、大量のメッセージが送信される必要がある。特に、１つのニューロンが1,000の他のニューロンにデータを送信する場合、1,000のメッセージが必要になる。ブロードキャスト通信が使用される場合、メッセージは、他の全てのニューロンに送信される。メッセージが必要より多くの宛先に送信され、貴重な帯域が消費されるため、これも望ましくない。
【０００４】
その代わりに、マルチキャスト通信機構が好ましい。マルチキャスト通信では、メッセージは単一の発信元から複数の受信者に送信されるが、全ての潜在的な受信者には送信されない。マルチキャスト通信は、ニューラルシステムで特に魅力的であるが、現在のマルチキャスト通信技術は、ニューラルアプリケーションには理想的に適合しない。
【０００５】
前述の問題のうち少なくともいくつかを回避又は軽減することが、本発明の目的である。
【課題を解決するための手段】
【０００６】
本発明によれば、複数の相互接続要素の間でデータを送信する方法が提供され、この方法は、第１の要素からメッセージを受信し、このメッセージはルーティング鍵を有し、このルーティング鍵を処理して複数のこの相互接続要素を識別し、この識別された複数の相互接続要素にデータを送信することを有し、このルーティング鍵を処理することは、このルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有し、この複数のこの相互接続要素は、このルーティングワードを使用して識別される。
【０００７】
このように、本発明は、データを送信する方法を提供し、データが送信される要素は、メッセージ内で受信したルーティング鍵に基づいて選択される。例えば、ルーティング鍵は、メッセージを送信する要素の識別子の形式を取ってもよく、従って、このような状況に、メッセージを送信する要素の識別子は、データが送信される要素を決定するために使用される。
【０００８】
識別された複数の相互接続要素に送信されるデータは、受信メッセージを有してもよい。実際に、送信されるデータは、受信メッセージと同一でもよい。受信メッセージは、データペイロードを有してもよい。しかし、本発明のニューラルの実施例では、受信メッセージは、典型的には、ニューラル“スパイク（spike）であると考えられるルーティング鍵のみを含み、従って、更なるデータが必要ない点に留意すべきである。
【０００９】
ルーティング鍵を処理することは、ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有してもよい。識別された複数の相互接続要素は、ルーティングワードを使用して選択されてもよい。試行が成功しない場合、データが送信される要素を決定するために初期設定データが使用されてもよい。特に、少なくとも１つの相互接続要素は、初期設定データを使用して識別されてもよい。
【００１０】
ルーティングワードは、接続要素のそれぞれについてビットを有してもよく、各ビットの状態は、データが相互接続要素の１つに通信されるか否かを決定してもよい。すなわち、データを送信する方法が、Nの更なる要素に接続された要素で実行された場合、Nビットのルーティングワードが使用されてもよく、各ビットは、Nの要素の１つを表す。検索動作は、各ルーティングワードに関連する鍵とルーティング鍵とを比較することを有してもよい。ルーティング鍵は、複数のビットを有してもよく、これらのビットの何らかのサブセットは、比較動作の少なくともいくつかで使用されてもよい。使用されるビットは、鍵のそれぞれについて独立に決定されてもよい。すなわち、鍵のそれぞれは、ルーティング鍵の特定のビットのみが検索動作で使用されることを確保するために使用される関連のマスクを有してもよい。マスクは、ビット単位の論理AND動作を使用して、ルーティング鍵と結合されてもよい。
【００１１】
本発明の好ましい実施例では、第１の要素及び識別された複数の相互接続要素は、第２の要素に接続され、この方法は、第２の要素で実行される。
【００１２】
前記の方法は、ハードウェアで実施されてもよい。
【００１３】
本発明は、コンピュータに前記の方法を実行させるように構成されたコンピュータ可読プログラムコードを伝達するデータ媒体を更に提供する。また、プロセッサ可読命令を格納するプログラムメモリと、プログラムメモリに格納された命令を読み取って実行するように構成されたプロセッサとを有するコンピュータ装置も提供される。プロセッサ可読命令は、プロセッサが前述の方法を実行するように制御する命令を有する。
【００１４】
本発明の更なる態様によれば、複数の相互接続要素の間でデータを送信する装置が提供される。この装置は、第１の要素からメッセージを受信する手段であり、このメッセージはルーティング鍵を有する手段と、このルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、ルーティング鍵を処理して複数の相互接続要素を識別する手段であり、この複数のこの相互接続要素は、このルーティングワードを使用して識別される手段と、識別された複数の相互接続要素にデータを送信する手段とを有する。
【００１５】
本発明はまた、複数の相互接続要素の間でデータを送信する装置を提供し、この装置は、第１の要素からメッセージを受信するように構成された受信インタフェースであり、このメッセージはルーティング鍵を有する受信インタフェースと、このルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、このルーティング鍵を使用して複数のこの相互接続要素を識別するように構成されたプロセッサであり、この複数のこの相互接続要素は、このルーティングワードを使用して識別されるプロセッサと、この識別された複数の相互接続要素にデータを送信するように構成された送信インタフェースとを有する。
【００１６】
この装置は、RAMと通信する連想メモリを有する。連想メモリに格納されたデータは、複数の相互接続要素を識別するために使用されてもよい。このようにこの連想メモリを使用して、ルーティングワードがRAMで見つけられてもよい。
【００１７】
本発明の更なる態様は、相互接続要素のネットワークを提供し、このネットワークは相互の間でデータを送信するように構成される。各要素はルータを有し、ルータは、第１の要素からメッセージを受信し、このメッセージはルーティング鍵を有し、このルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、ルーティング鍵を処理して複数の相互接続要素を識別し、この複数のこの相互接続要素は、このルーティングワードを使用して識別され、識別された複数の相互接続要素にデータを送信するように構成される。
【発明を実施するための最良の形態】
【００１８】
本発明の実施例について、一例のみとして添付図面を参照して説明する。
【００１９】
図１を参照すると、大規模ネットワークの一部を形成する16の相互接続要素が示されている。各要素は、直接通信リンクにより8の最も近い隣接に接続されることがわかる。図１の各要素は、その相互接続要素のいずれかからメッセージを受信し、接続される１つ以上の要素に送信するデータを生成するように構成される。
【００２０】
相互接続要素の間のデータの送信は、各相互接続要素内に含まれるルータにより管理される。ルータは、メッセージ内で受信したルーティング鍵を処理し、これから、どの要素にデータが送信されるべきかを決定することにより動作する。例えば、本発明の好ましい実施例では、このルーティング鍵は、メッセージを送信する要素の識別子を有する。この識別子は、データが送信されるべき要素を識別するように処理される。このことが特に図２に概略的に示されている。ここでは、ルータ1が発信元要素3から識別子2を受信することがわかる。ルータ1は識別子2を処理し、３つの宛先要素4、5、6を識別する。宛先要素4、5、6を識別すると、ルータ1は、適切なメッセージの形式でデータを宛先要素4、5、6に送信する。従って、このように、ルータ1によるデータのルーティングは、ルータ1がメッセージを受信する発信元要素3の識別子2により決定される。
【００２１】
ルータ1は、図３に概略的に示すような形式のルーティングテーブルを使用してルーティング動作を実行する。テーブルは、複数の検索鍵7を有し、これに対して受信した識別子2が比較される。受信した識別子が１つの鍵7に合致する場合、対応するルーティングワード8が取り出され、データが送信されるべき適切な要素を決定するために使用される。各ルーティングワード8は、所定数のビットを有する２進数であり、各ビットは、他の要素へのリンクを表す。すなわち、図１の例では、各ルーティングワードは8ビットの数であり、8ビットは、各要素の8の通信リンクを表す。しかし、本発明の多くの実施例では、各要素が8より多くの通信リンクを有し、従って、各ルーティングワードがより多くのビットを有することがわかる。ルーティングワードの特定のビットが‘1’に設定される場合、データがそのビットにより表される通信リンクで送信されるべきであることを示す。逆に、ルーティングワードの特定のビットが‘0’に設定される場合、データがそのビットにより表される通信リンクで送信されるべきでないことを示す。
【００２２】
前述のルーティングにより、メッセージが受信される要素がデータを送信する要素を決定するように、効果的にマルチキャスト通信が可能になる。しかし、相互接続要素の非常に大規模なネットワークが使用される場合、図３に示すルーティングテーブルは非常に大きくなる。従って、図１の各要素が単一チップとして実装される場合、ルーティングテーブルをチップに適合させることは不可能であり、又は少なくとも非常に高コストになる。従って、様々な最適化が可能である。例えば、ネットワークのいずれかの要素のルータに含まれるルーティングテーブルは、発信元から全ての宛先へのルートが通過する識別子、生成される識別子又はその要素で終了する識別子に関連する鍵のエントリを有しさえすればよい点に留意すべきである。
【００２３】
更に又は代替として、各要素は、図３の検索テーブルが特定の識別子との合致を提供できない場合に、初期設定のルーティングを実施してもよい。例えば、メッセージ内に含まれる識別子が図３のテーブルの鍵のいずれにも合致しない場合、データは、メッセージが受信されるものと正反対のリンクで単一の要素に単に送信されてもよい。
【００２４】
更に、メッセージ識別子のグループは、しばしば同様に扱われる必要がある。すなわち、複数の要素から受信したメッセージの全ては、ネットワーク内の同じ要素のセットへのデータ送信を生成する必要がある。このことは、検索動作を実行するときに、メッセージ識別子のいくつかのビットを効果的に無視することにより実現され得る。すなわち、メッセージ識別子のいくつかのビットは、検索動作で“無関係（don’t  care）”ビットとして扱われる。このような“無関係”ビットを使用する実施例について、図４を参照して説明する。
【００２５】
図４を参照すると、16ビットのルーティング鍵が示されている。16ビットは、３つの論理成分を形成する。第１の成分9は、16ビットが合わせて特定の形式のルーティングデータを表すことを示す2ビットを有する。一実施例では、これらのビットは値‘00’を有し、この場合、図３のルーティングテーブルが前述のマルチキャスト通信を行うために使用される。‘01’、‘10’及び‘11’の値はそれぞれ、残りの14ビットがデータが送信されるべきアドレスを表す１対１のルーティング、残りの14ビットが必要ないブロードキャスト通信、及びルータにより実装される他のルーティングアルゴリズムを示すために使用される。
【００２６】
ルーティング鍵の第２及び第３の成分10、11は、第１の成分が図３の検索テーブルを使用して検索動作を実行することによりルーティングを実行するために使用される値‘00’を有する場合である。しかし、本発明の記載の実施例では、第２の成分10を構成する6ビットのみが検索動作で使用され、残りの8ビットはこのルータのルーティング目的に対して無視される第３の成分11を構成する。すなわち、データが送信される要素を決定するものは、第２の成分10のビットのみであり、第３の成分11のビットは、ネットワークの更なる要素で必要に応じて更なるルーティングを決定するために使用される。第３の成分11のビットは、ネットワークの次の要素で詳細な検索テーブルを使用して部分的に処理されてもよく、或いは代替として、このような次の要素のソフトウェアにより処理されてもよい。
【００２７】
（第３の成分11ではなく）第２の成分10のみを考慮した図３のルーティングテーブルの最適化は、ルーティング動作を実行するときに、相当な利点を提供することがわかる。この比較的小規模の例では、別法では16,384エントリ（すなわち214）を必要とするルーティングテーブルは、その代わりに64エントリ（すなわち26）を必要とする。
【００２８】
図４の例では、6の隣接ビットが第２の成分10を形成し、8の隣接ビットが第３の成分11を形成することがわかる。これらの第２及び第３の成分が隣接ビットから構成される必要はない。例えば、検索動作を実行するときに、第２の成分11の最上位ビット12もまた無視可能であることが決定されてもよい。このような場合、最上位ビット12は第３の成分11の一部になり、検索動作の間には使用されない。同様に、ビット13が検索動作に考慮される必要があり、従って、ビット13が第２の成分10の一部になってもよい。すなわち、一般的に、ルーティングテーブルのサイズを低減するために、識別子のいくつかのビットのみが考慮され、考慮されたビット及び考慮されないビットが、ルーティング鍵のどこかに見つかってもよい。
【００２９】
図３の検索テーブルを有するルータ1について、更に詳細に説明する。一般的に、ルータは、前述のルーティング鍵の第２及び第３の成分10、11を正確に処理するためにエントリ毎にプログラム可能なマスクを有する連想（コンテンツアドレス）メモリである。この連想メモリは、ルーティング動作を実行するために使用されるルーティングワードを保持する従来のメモリに接続される。連想メモリは、VLSI  CAMセル又はハッシュアドレスRAMのような何らかの従来の技術を使用して実装され得る。
【００３０】
ルータの構成について、図５及び６を参照して説明する。前述のように、図５を参照すると、ルータ3は、連想メモリ14と検索RAM15とを有することがわかる。一般的に、矢印16により示されるように、前述のような形式のルーティング鍵は、連想メモリに提示される。連想メモリは、連想メモリの各鍵と提示されたルーティング鍵とを比較することにより、検索動作を実行する。矢印17により示されるように、この動作により生成されたヒット又はミスは、連想メモリにより出力される。ヒットが生成された場合、矢印18により示されるように、適切なルーティングワードが検索RAM15から得られて出力される。
【００３１】
ルータ1の構成及びその動作について、図６を参照して更に詳細に説明する。図６は、連想メモリ14の２つのエントリと、検索RAM15の２つの対応するエントリとを示している。連想メモリの第１のエントリは、マスク19と、マスク・ゲート（mask  gating）20と、鍵21と、比較器22とを有する。矢印18により示されるように提供されたルーティング鍵（例えば、前述の発信元要素の識別子）は、マスク19と共にマスク・ゲート20に渡される。マスク・ゲート20は、提供されたルーティング鍵とマスク19との間でビット単位のAND動作を実行するANDゲートの集合である。
【００３２】
マスク19は、ルーティング鍵の“無関係”ビットを正確に扱うように構成される。例えば、ルーティング鍵が図４に示すような構成を有し、14の最小位ビットがルーティング鍵の動作部分を形成する場合、11111100000000の形式の14ビットのマスクが提供される。このマスクと図４のルーティング鍵との間で論理的なビット単位のAND動作を実行することは、6の最上位ビットの動作部分のルーティング鍵の状態を保持し、8の最小位ビットを‘0’に設定することがわかる。鍵21が‘0’に設定された8の最小位ビットをも有することを確保することにより、このことは、所望の“無関係”のポリシーを効果的に実施する。
【００３３】
マスク・ゲート20により実行されるビット単位のAND動作の結果は、連想メモリのそのエントリに関連する鍵21と共に比較器22に出力される。比較が成功した場合、検索RAM15に格納され、連想メモリの記載のエントリに関連するルーティングデータが読み取られ、矢印18により示されるように出力される。
【００３４】
図６の前述の説明は、連想メモリ14の単一のエントリと、検索RAM15の関連のエントリとに関する。マスク19aとマスク・ゲート20aと鍵21aと比較器22aとを有する連想メモリ14の更なるエントリも、図６に示されている。しかし、連想メモリは、実際には同じ構成を有する多数の更なるエントリを有することがわかる。比較器22、22aのいずれかがヒットを生成すると、その出力がORゲート24に渡され、矢印17により示されるように、ORゲートはヒット／ミスデータを生成することが、図６からわかる。すなわち、１つの比較の成功が存在する場合、各比較器は、‘1’をORゲート24に渡し、その結果、出力17はヒットを示す‘1’になる。比較器が全く‘1’を出力しない場合、ORゲート24の出力は‘0’になる。矢印17により示されるヒット／ミスの出力は、前述のように、ミスの場合に初期設定のルーティング動作を起動するために使用され得る。
【００３５】
図５及び６の前述の説明は、特定のルーティング鍵に適したデータの位置に関する。このような処理が実行される前に、連想メモリは、適切なデータを格納するように適切に構成されなければならないことがわかる。このような処理について、まず図５を参照して説明する。一般的に、矢印25a、25bにより示される制御信号は、鍵又はマスクが連想メモリに書き込まれるか否かを示し、矢印26により示されるように適切なデータが提示される。提示されたデータは、矢印27により示されるアドレスデータにより決定される連想メモリ14のアドレスに書き込まれる。矢印27により示されるアドレスデータは、検索RAM18のエントリを更に識別し、矢印28により示される適切な制御信号が提供可能であり、矢印29により示される（ルーティングワードの形式の）データが検索RAM15に書き込まれることを可能にすることを意味する。
【００３６】
図５の書き込み構成が、図６に更に詳細に示される。ここでは、矢印27により示されるアドレスが、連想メモリ14の適切なエントリを選択する書き込みアドレスデコーダ30に渡されることがわかる。連想メモリ14の各要素は、25a、25b、25c、25dにより示される制御信号を受信し、鍵データ又はマスクデータが書き込まれるか否かを示す。書き込まれるデータは、矢印26により示されるように提供されることにより連想メモリの適切な要素に提供され、現在書き込み可能になっている連想メモリのいずれかの要素に格納される。
【００３７】
書き込みアドレスデコーダ30は、矢印29により示されるように提供されたルーティングデータが書き込まれる検索RAM18の要素を選択することが、図６から更にわかる。
【００３８】
図６において、ルータは、連想メモリ14と検索RAM15との双方について単一の書き込みアドレスデコーダを有するように図示されている。これは必要ではない。例えば、ヒットの場合を仮定すると、ちょうど１つの比較器が、提示されたルーティング鍵のビットを生成し、比較器の集合の出力が、Nのうち1のコードになる（すなわち、ちょうど１ビットが‘1’に設定され、N-1ビットが‘0’に設定される）。このNのうち1のコードは、効果的に検索RAM15をアドレス指定するために使用され得る。
【００３９】
再び図６を参照すると、連想メモリのエントリ毎のマスクの提供により、連想メモリの異なるエントリについて異なる“無関係”のポリシーが実施可能になる点に留意すべきである。本発明の代替実施例では、単一の“無関係”のポリシーが連想メモリの全てのエントリに適用されてもよい。このような実施例では、単一のマスクが格納され、全てのエントリのマスク・ゲートに渡されてもよい。
【００４０】
前述の説明は、相互接続要素のネットワークにおいて要素間でデータをルーティングするルータに関する。しかし、本発明はまた、要素内のルーティングに適用可能である。例えば、図７を参照すると、図１に示す１つの要素の適切な構成が示されている。ルータ1に加えて、図示の要素は、要素の全体管理を担うモニタプロセッサ31を有することがわかる。更に、メッセージが受信される通信リンク毎に受信インタフェース32が提供される（すなわち、8の受信インタフェースが図1のネットワークの各要素に提供される）。受信インタフェース32は、受信インタフェース32からルータ1に受信されるメッセージを提示することを担う仲裁器（arbiter）33にデータを渡す。メッセージがルータに渡される順序は、仲裁器33により決定されるが、メッセージが独立にルーティングされることを仮定して、メッセージが渡される順序はあまり重要ではない。ルータ1は、前述のようにルーティングを実行し、要素内の束プロセッサ（fascicle  processors）34又は送信インタフェース35にデータをルーティングする。それぞれの束プロセッサ34は、ニューラルネットワークの一部を形成する複数のニューロン（バンドル（bundle）として知られる）を実装するように構成される点に留意すべきである。しかし、プロセッサ34は、如何なる適切な形式を取ってもよく、複数のニューロンを実装する必要はない。データが送信され得る通信リンク毎に１つの送信インタフェース35が提供される（すなわち、図１のネットワークの各要素に8の送信インタフェースが提供される）。従って、ルータ1は、図示の要素内のプロセッサと、ネットワーク内の他の要素との双方にデータをルーティングすることがわかる。束プロセッサ34は、相互接続要素から受信されるメッセージと同様に、ルータ1により扱われるメッセージを生成することができる。
【００４１】
本発明によるルーティング及び通信方法は、特にニューロンが相互に通信するニューラルシステムに適用性を有する。このようなシステムは、本発明により提供される形式の効果的なマルチキャスト通信を必要とする。このようなシステムは、図７に示す形式を有する要素を使用して実装可能であり、各要素内に含まれる束プロセッサ34のそれぞれは、前述の複数のニューロンを実装する。このような状況で、各ニューロンは、それぞれの識別子を有してもよいことがわかる。これらのニューロン識別子は、ルーティング鍵として使用されてもよい。実際に、ルーティング鍵は、如何なる便宜的な形式を取ってもよいことがわかる。すなわち、ルーティング鍵は、ニューロン、プロセッサ又は要素の識別子の形式を取ってもよい。実際に、本発明の代替実施例では、他のルーティング鍵が使用される。
【００４２】
本発明の実施例で使用されるルーティングテーブルが定められなければならないことがわかる。ルーティングテーブルは、外部ソフトウェアを使用して構成されてもよい。例えば、本発明のニューラルの実装では、ニューロンの相互接続を記述するニューラル・ネットリスト（neural  netlist）が提供され、ニューロンは、ルーティングテーブルのエントリを決定するためにプロセッサにマッピングされる。これは、FPGA構成と同様の処理である。ルーティングテーブルサイズ及び帯域制限のようなリソースの制約が、マッピング処理の間に考慮されなければならない。適切なルーティングテーブルが生成される場合、図６を参照して説明した方法を使用してルーティングテーブルが書き込まれてもよい。
【００４３】
静的な用途では、ルーティングテーブルは固定される。しかし、システムが動作している間に、ローカルプロセッサがルーティングテーブルを変更することを可能にすることが可能である。このことにより、例えばニューラル型システムで、発展的な処理がモデル化可能になる。システム動作中のルーティングテーブルへの変更は、当然に、所望のルーティングが常に得られることを確保するように注意して実行されなければならない。
【００４４】
本発明の好ましい実施例について前述した。しかし、特許請求の範囲に記載の本発明の要旨及び範囲を逸脱することなく、このような実施例に様々な変更が行われ得ることがわかる。例えば、メッセージが発生する要素の識別子がルーティングを決定するために使用されるように、本発明について説明した。これは必要ではない。メッセージが発生する要素は、検索動作でルーティング鍵として使用されるメッセージ内に如何なる適切なデータを提供してもよい。
【００４５】
更に、図１の例は、各要素が8の最も近い隣接に接続される要素の２次元の構成を示している。しかし、他の多くの構成も可能であることがわかる。例えば、３次元の構成が使用されてもよく、実際に、各要素が8の接続を有するネットワークでは、4次元の超立方体相互接続ファブリック（hypercube  interconnection  fabric）が使用されてもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明が実施され得る相互接続要素のネットワークの概略図
【図２】図１の要素の１つに含まれるルータの動作を示す概略図
【図３】図２のルータにより使用される検索テーブルの概略図
【図４】図３の検索テーブルに関して使用されるルーティング鍵の概略図
【図５】図２のルータの構成を詳細に示す概略図
【図６】図５のルータの構成を更に詳細に示す概略図
【図７】図１の要素の可能なアーキテクチャの概略図
【図１】
2009517908.tif 000003
【図２】
2009517908.tif 000004
【図３】
2009517908.tif 000005
【図４】
2009517908.tif 000006
【図５】
2009517908.tif 000007
【図６】
2009517908.tif 000008
【図７】
2009517908.tif 000009
【国際調査報告】
2009517908.tif 000010
2009517908.tif 000011