JP2009517908A - データ送信方法 - Google Patents

データ送信方法 Download PDF

Info

Publication number
JP2009517908A
JP2009517908A JP2008541807A JP2008541807A JP2009517908A JP 2009517908 A JP2009517908 A JP 2009517908A JP 2008541807 A JP2008541807 A JP 2008541807A JP 2008541807 A JP2008541807 A JP 2008541807A JP 2009517908 A JP2009517908 A JP 2009517908A
Authority
JP
Japan
Prior art keywords
routing
key
elements
bits
word
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008541807A
Other languages
English (en)
Other versions
JP4942760B2 (ja
Inventor
バイラム フューバー,スティーヴン
Original Assignee
コグニサイエンス リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by コグニサイエンス リミテッド filed Critical コグニサイエンス リミテッド
Publication of JP2009517908A publication Critical patent/JP2009517908A/ja
Application granted granted Critical
Publication of JP4942760B2 publication Critical patent/JP4942760B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

複数の相互接続要素の間でデータを送信する方法である。この方法は、第1の要素からメッセージを受信し、このメッセージはルーティング鍵を有し、任意選択でデータペイロードを有する。ルーティング鍵は、複数のこの相互接続要素を識別するように処理され、データは、この識別された複数の相互接続要素に送信される。

Description

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

Claims (23)

  1. 複数の相互接続要素の間でデータを送信する方法であって、
    第1の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
    前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、
    前記識別された複数の相互接続要素にデータを送信することを有し、
    前記ルーティング鍵を処理することは、前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有し、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記見つかったルーティングワードを使用して識別される方法。
  2. 複数の相互接続要素の間でデータを送信する方法であって、
    第1の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
    前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、
    前記識別された複数の相互接続要素にデータを送信することを有し、
    前記ルーティング鍵を処理することは、前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することを有し、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、前記ルーティングワードは、複数の要素のそれぞれについてビットを有し、データが前記相互接続要素の1つに通信されるか否かを決定する各ビットの状態を有する方法。
  3. 前記ルーティングワードは、前記相互接続要素の特定のものに接続された前記複数の要素のそれぞれについてビットを有する、請求項2に記載の方法。
  4. 前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有する、請求項2又は3に記載の方法。
  5. 前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用される、請求項4に記載の方法。
  6. 前記ビットのサブセットは、前記鍵のそれぞれについて独立に決定される、請求項1又は5に記載の方法。
  7. 前記ビットのサブセットを選択することは、前記比較を実行する前に、前記ビットのサブセット以外の前記ルーティング鍵のビットを所定の状態に設定することを有する、請求項1、5又は6に記載の方法。
  8. 前記ルーティング鍵のビットを設定することは、前記ルーティング鍵と所定のマスクとの間でビット単位の論理AND動作を実行することを有する、請求項7に記載の方法。
  9. 前記ルーティング鍵は、前記第1の要素の識別子を有する、請求項1ないし8のうちいずれか1項に記載の方法。
  10. 前記試行が成功しない場合、少なくとも1つの相互接続要素は、初期設定データを使用して識別される、請求項1ないし9のうちいずれか1項に記載の方法。
  11. 前記第1の要素及び前記識別された複数の相互接続要素は、第2の要素に接続され、前記方法は、前記第2の要素で実行される、請求項1ないし10のうちいずれか1項に記載の方法。
  12. 前記送信されるデータは、前記メッセージを有する、請求項1ないし11のうちいずれか1項に記載の方法。
  13. 前記メッセージは、データペイロードを有する、請求項1ないし12のうちいずれか1項に記載の方法。
  14. コンピュータに請求項1ないし13のうちいずれか1項に記載の方法を実行させるように構成されたコンピュータ可読プログラムコードを伝達するデータ媒体。
  15. プロセッサ可読命令を格納するプログラムメモリと、
    前記プログラムメモリに格納された命令を読み取って実行するように構成されたプロセッサと
    を有するコンピュータ装置であって、
    前記プロセッサ可読命令は、前記プロセッサが請求項1ないし13のうちいずれか1項に記載の方法を実行するように制御する命令を有するコンピュータ装置。
  16. 複数の相互接続要素の間でデータを送信する装置であって、
    第1の要素からメッセージを受信する手段であり、前記メッセージはルーティング鍵を有する手段と、
    前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別する手段であり、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別される手段と、
    前記識別された複数の相互接続要素にデータを送信する手段と
    を有する装置。
  17. 複数の相互接続要素の間でデータを送信する装置であって、
    第1の要素からメッセージを受信するように構成された受信インタフェースであり、前記メッセージはルーティング鍵を有する受信インタフェースと、
    前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、複数の前記相互接続要素を識別するように構成されたプロセッサであり、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別されるプロセッサと、
    前記識別された複数の相互接続要素にデータを送信するように構成された送信インタフェースと
    を有する装置。
  18. 前記プロセッサは、連想メモリに格納されたデータに基づいて、前記複数の前記相互接続要素を識別するように構成される、請求項17に記載の装置。
  19. 前記連想メモリは、関連するRAMに格納されたルーティングワードを見つけるように構成される、請求項18に記載の装置。
  20. 前記連想メモリは複数のエントリを有し、各エントリは鍵を有し、前記プロセッサは、前記連想メモリの鍵を使用して前記複数の前記相互接続要素を識別するように構成される、請求項18又は19に記載の装置。
  21. 前記連想メモリの各エントリはマスクを更に有し、前記ルーティング鍵は前記マスクと結合され、前記複数の相互接続要素を識別する、請求項20に記載の装置。
  22. 相互の間でデータを送信するように構成される相互接続要素のネットワークであり、各要素はルータを有するネットワークであって、
    前記ルータは、
    第1の要素からメッセージを受信し、前記メッセージはルーティング鍵を有し、
    前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別し、前記検索動作は、前記ルーティング鍵と各ルーティングワードに関連する鍵とを比較することを有し、前記ルーティング鍵は、複数のビットを有し、前記ビットのサブセットのみが、前記比較の少なくともいくつかで使用され、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、
    前記識別された複数の相互接続要素にデータを送信するように構成されるネットワーク。
  23. 複数の相互接続要素の間でデータを送信する装置であって、
    第1の要素からメッセージを受信する手段であり、前記メッセージはルーティング鍵を有する手段と、
    前記ルーティング鍵を使用して検索動作を実行することにより、ルーティングワードを見つけることを試行することにより、前記ルーティング鍵を処理して複数の前記相互接続要素を識別する手段であり、前記複数の前記相互接続要素は、前記ルーティングワードを使用して識別され、前記ルーティングワードは、複数の要素のそれぞれについてビットを有し、データが前記相互接続要素の1つに通信されるか否かを決定する各ビットの状態を有する手段と、
    前記識別された複数の相互接続要素にデータを送信する手段と
    を有する装置。
JP2008541807A 2005-11-26 2006-11-21 データ送信方法 Active JP4942760B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0524126.0 2005-11-26
GBGB0524126.0A GB0524126D0 (en) 2005-11-26 2005-11-26 Data transmission method
PCT/GB2006/004312 WO2007060400A1 (en) 2005-11-26 2006-11-21 Data transmission method

Publications (2)

Publication Number Publication Date
JP2009517908A true JP2009517908A (ja) 2009-04-30
JP4942760B2 JP4942760B2 (ja) 2012-05-30

Family

ID=35601297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008541807A Active JP4942760B2 (ja) 2005-11-26 2006-11-21 データ送信方法

Country Status (8)

Country Link
US (1) US8289971B2 (ja)
EP (1) EP1952590B1 (ja)
JP (1) JP4942760B2 (ja)
KR (1) KR101350364B1 (ja)
CN (1) CN101322358B (ja)
ES (1) ES2436613T3 (ja)
GB (1) GB0524126D0 (ja)
WO (1) WO2007060400A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0524126D0 (en) * 2005-11-26 2006-01-04 Cogniscience Ltd Data transmission method
US9769112B2 (en) * 2011-10-26 2017-09-19 International Business Machines Corporation Optimising data transmission in a hypercube network
US9569561B2 (en) * 2013-07-09 2017-02-14 Cisco Technology, Inc. Label masked addressable memory
FR3011659B1 (fr) * 2013-10-04 2015-10-16 Commissariat Energie Atomique Circuit electronique, notamment apte a l'implementation d'un reseau de neurones, et systeme neuronal
US11574051B2 (en) * 2018-08-02 2023-02-07 Fortinet, Inc. Malware identification using multiple artificial neural networks
US20200366690A1 (en) * 2019-05-16 2020-11-19 Nec Laboratories America, Inc. Adaptive neural networks for node classification in dynamic networks
EP4127984B1 (en) * 2020-04-01 2024-02-21 Telefonaktiebolaget LM Ericsson (publ) Neural network watermarking
CN114079627B (zh) * 2020-08-14 2024-07-09 华为技术有限公司 数据传输装置和方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332752A (ja) * 1999-05-21 2000-11-30 Nec Corp パケット交換装置

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5181017A (en) * 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
DE69324204T2 (de) * 1992-10-22 1999-12-23 Cabletron Systems, Inc. Aufsuchen von Adressen bei Paketübertragung mittels Hashing und eines inhaltsadressierten Speichers
DE4302754C1 (de) * 1993-02-01 1994-06-16 Siemens Ag Monolithisch integrierte Datenspeicheranordnung und Verfahren zu deren Betrieb
JP3371006B2 (ja) * 1993-03-03 2003-01-27 株式会社日立製作所 テーブル検索方法及びルータ装置
JP3454884B2 (ja) * 1993-11-18 2003-10-06 株式会社日立製作所 メモリおよびその応用装置
US5909440A (en) * 1996-12-16 1999-06-01 Juniper Networks High speed variable length best match look-up in a switching device
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6212183B1 (en) * 1997-08-22 2001-04-03 Cisco Technology, Inc. Multiple parallel packet routing lookup
JP3735471B2 (ja) 1998-10-05 2006-01-18 株式会社日立製作所 パケット中継装置およびlsi
US6574702B2 (en) * 1999-02-23 2003-06-03 Netlogic Microsystems, Inc. Method and apparatus for determining an exact match in a content addressable memory device
US6606317B1 (en) * 1999-09-09 2003-08-12 Harris Corporation Dual key controlled content addressable memory for accessing packet switch data buffer for multicasting data packets
US6240003B1 (en) * 2000-05-01 2001-05-29 Micron Technology, Inc. DRAM content addressable memory using part of the content as an address
WO2002019624A2 (en) 2000-08-31 2002-03-07 The Regents Of The University Of California Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks
US6910097B1 (en) * 2001-04-09 2005-06-21 Netlogic Microsystems, Inc. Classless interdomain routing using binary content addressable memory
JP3863733B2 (ja) * 2001-05-18 2006-12-27 富士通株式会社 連想メモリ装置
US20030007489A1 (en) * 2001-07-09 2003-01-09 Ram Krishnan Data extraction system for packet analysis
US7389359B2 (en) * 2001-10-19 2008-06-17 Foundry Networks, Inc. Method and system for intelligently forwarding multicast packets
US7017089B1 (en) * 2001-11-01 2006-03-21 Netlogic Microsystems, Inc Method and apparatus for testing a content addressable memory device
US7076602B2 (en) * 2001-11-05 2006-07-11 Hywire Ltd. Multi-dimensional associative search engine having an external memory
GB0207372D0 (en) * 2002-03-28 2002-05-08 Cogniscience Ltd Digital memory
US7260096B2 (en) * 2002-07-09 2007-08-21 International Business Machines Corporation Method and router for forwarding internet data packets
US6987683B2 (en) * 2003-05-19 2006-01-17 Micron Technology, Inc. Magnitude comparator based content addressable memory for search and sorting
US7228378B1 (en) * 2003-06-11 2007-06-05 Netlogic Microsystems, Inc. Entry location in a content addressable memory
US7260675B1 (en) * 2003-07-15 2007-08-21 Integrated Device Technology, Inc. CAM-based search engines that support pipelined multi-database search operations using encoded multi-database identifiers
JPWO2005013566A1 (ja) * 2003-07-31 2006-09-28 富士通株式会社 データ検索方法及び装置
DE10345454A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
US7409526B1 (en) * 2003-10-28 2008-08-05 Cisco Technology, Inc. Partial key hashing memory
US7634500B1 (en) * 2003-11-03 2009-12-15 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory
US7325239B2 (en) * 2003-11-12 2008-01-29 International Business Machines Corporation Method and system of generically managing tables for network processors
US7739445B1 (en) * 2004-06-11 2010-06-15 Srinivasan Venkatachary Circuit, apparatus, and method for extracting multiple matching entries from a content addressable memory (CAM) device
GB0524126D0 (en) * 2005-11-26 2006-01-04 Cogniscience Ltd Data transmission method
KR100705593B1 (ko) * 2006-01-25 2007-04-09 삼성전자주식회사 라우팅 시스템 및 라우팅 시스템의 룰 엔트리 관리 방법
US7783654B1 (en) * 2006-09-19 2010-08-24 Netlogic Microsystems, Inc. Multiple string searching using content addressable memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000332752A (ja) * 1999-05-21 2000-11-30 Nec Corp パケット交換装置

Also Published As

Publication number Publication date
WO2007060400A1 (en) 2007-05-31
EP1952590B1 (en) 2013-10-09
US20080267188A1 (en) 2008-10-30
KR101350364B1 (ko) 2014-01-14
CN101322358A (zh) 2008-12-10
KR20080087100A (ko) 2008-09-30
CN101322358B (zh) 2013-06-19
JP4942760B2 (ja) 2012-05-30
EP1952590A1 (en) 2008-08-06
ES2436613T3 (es) 2014-01-03
US8289971B2 (en) 2012-10-16
GB0524126D0 (en) 2006-01-04

Similar Documents

Publication Publication Date Title
JP4942760B2 (ja) データ送信方法
US10728173B1 (en) Equal cost multiple path group failover for multicast
US11271869B1 (en) Link aggregation group failover for multicast
US9270566B2 (en) Monitoring server load balancing
US7302519B2 (en) Distributed content addressable memory
US20080298368A1 (en) Collective network routing
US9608913B1 (en) Weighted load balancing in a multistage network
US20100191890A1 (en) Globally Unique Transaction Identifiers
US9716592B1 (en) Traffic distribution over multiple paths in a network while maintaining flow affinity
US9159420B1 (en) Method and apparatus for content addressable memory parallel lookup
JPH08249306A (ja) データ駆動型情報処理装置
WO2011162230A1 (ja) 情報処理システム、中継装置、および情報処理方法
US7184403B1 (en) Hardware load balancing through a single fabric
CN108123901A (zh) 一种报文传输方法和装置
US20220417269A1 (en) Edge-based polymorphic network with advanced agentless security
US8811158B1 (en) Fast reroute for common network routes
US20200028779A1 (en) Packet processing method and apparatus
US20180287933A1 (en) Network switch device for routing network traffic through an inline tool
US10038566B1 (en) Systems and methods for multicast message routing
CN103368798B (zh) 数据传输网络中基于内容的寻址的方法和网络部件
US9641436B1 (en) Generating a flow ID by passing packet data serially through two CCT circuits
CN111355659B (zh) 一种数据发送方法及装置、设备及存储介质
US9819585B1 (en) Making a flow ID for an exact-match flow table using a programmable reduce table circuit
US10484304B2 (en) Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US10797900B2 (en) System and method of filtering control plane data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120105

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120131

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120228

R150 Certificate of patent or registration of utility model

Ref document number: 4942760

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250