(57)【要約】本発明は、いくつかある側面の中でも特に、いくつかのユニット（６）上に特に配列された、相互接続された複数のコア回路（１０）を備えるネットワークであって、各コア回路（１０）は、複数の計算ノード（９０）および複数のメモリ回路（８０）を備える電子アレイ（８、９）であって、この電子アレイ（８、９）は、到着イベントを受信するように構成され、各計算ノード（９０）は、個々の計算ノード（９０）により受信された到着イベントが所定の基準を満足すると、データパケットを備えるイベントを生成するように構成されている、電子アレイ（８、９）と、宛先アドレスと、追加のソース情報、特にソースコアＩＤとを、個々のデータパケットに付加するように構成されている回路と、コア内接続性を提供する、および／またはコア間接続性のための中間レベルの第２ルータ（Ｒ２）およびユニット間接続性のためのより上位レベルの第３ルータ（Ｒ３）にイベントを伝達する、ローカル第１ルータ（Ｒ１）と、コア回路（１０）内のメモリ回路（８０）すべてに到着イベントを並行してブロードキャストするブロードキャストドライバ（７）とを備える、ネットワークに関する。【選択図】図１
2018514872.tif 000002
【特許請求の範囲】
【請求項１】
いくつかのユニット（６）上に特に配列された、相互接続された複数のコア回路（１０）を備えるネットワークであって、各コア回路（１０）は、
−複数の計算ノード（９０）および複数のメモリ回路（８０）を備える電子アレイ（８、９）であって、前記電子アレイ（８、９）は、到着イベントを受信するように構成され、各計算ノード（９０）は、個々の前記計算ノード（９０）により受信された到着イベントが所定の基準を満足すると、データパケットを備えるイベントを生成するように構成されている、前記電子アレイ（８、９）と、
−宛先アドレスと、追加のソース情報、特に仮想ソースコアＩＤとを、個々の前記データパケットに付加するように構成されている回路と、
−コア内接続性を提供する、および／またはコア間接続性のための中間レベルの第２ルータ（Ｒ２）およびユニット間接続性のためのより上位レベルの第３ルータ（Ｒ３）にイベントを伝達する、ローカル第１ルータ（Ｒ１）と、
−前記コア回路（１０）内の前記メモリ回路（８０）すべてに到着イベントを並行してブロードキャストするブロードキャストドライバ（７）と、
を備える、ネットワーク。
【請求項２】
前記ネットワークは、前記コア回路（１０）を相互接続するイベントルーティングシステム（Ｒ１、Ｒ２、Ｒ３）をさらに備え、前記イベントルーティングシステムは、前記ローカル第１ルータ（Ｒ１）を備え、かつ特に、さらなるルータ（Ｒ２、Ｒ３）、特に中間レベルの第２ルータおよびより上位レベルの第３ルータ（Ｒ２、Ｒ３）をも備え、特に前記ルータの全体は、階層型構造を形成することを特徴とする、請求項１に記載のネットワーク。
【請求項３】
各ルータ（Ｒ１、Ｒ２、Ｒ３）は、
ルートペイロード、すなわち特に、個々の前記データパケットの一部、に従ってイベントをルーティングするように構成されている少なくとも１つの制御回路を備え、
各第１ルータ（Ｒ１）は、
−前記データパケットのためのルートペイロードおよび特に仮想ソースコアＩＤを格納するように構成されたプログラム可能メモリと、
−前記メモリ回路に格納されたプログラムされたルート割り当てに応じて、ルートペイロードおよび特に仮想ソースコアＩＤを前記個々のデータパケットに付加するように構成された少なくとも１つの回路と、
をさらに備えることを特徴とする、請求項２に記載のネットワーク。
【請求項４】
前記コア回路（１０）は、ユニット（６）に、特にモジュラータイル（６）またはチップ（６）の形態で配列され、特に各ユニット（６）は、前記コア回路（１０）のいくつかを備え、各ユニット（６）は、前記第１ルータ（Ｒ１）のうちの１つを備え、特に前記第１ルータ（Ｒ１）はそれぞれ、前記ルータ（Ｒ１、Ｒ２、Ｒ３）の全体により形成される階層型構造内に配置されることを特徴とする、請求項１〜３のいずれか一項に記載のネットワーク。
【請求項５】
前記階層型構造は、前記第１ルータ（Ｒ１）を備える最下位レベルを備え、特に、前記第１ルータ（Ｒ１）は、同じ前記コア回路（１０）にイベントのソースおよび宛先が位置する前記イベントを分配するように構成されていることを特徴とする、請求項２または４に記載のネットワーク。
【請求項６】
前記階層型構造は、前記第２ルータ（Ｒ２）を備える少なくとも１つの中間レベルを備え、特に前記第２ルータ（Ｒ２）は、同じ前記ユニットの中のコア回路（１０）により生成されまたは同じ前記ユニットの中のコア回路（１０）をターゲットとするイベントを分配するように構成されていることを特徴とする、請求項２、４、および５のいずれか一項に記載のネットワーク。
【請求項７】
前記階層型構造は、異なるユニット（６）にイベントを分配するように構成されている前記第３ルータ（Ｒ３）を備える最上位レベルを備え、特に前記第３ルータ（Ｒ３）は、２次元メッシュ状に配列されることを特徴とする、請求項２、４、５、および６のいずれか一項に記載のネットワーク。
【請求項８】
前記ルータ（Ｒ１、Ｒ２、Ｒ３）は、前記ルータにより形成された階層型構造に配置され、異なるレベルにおける異なる非同期ルーティングスキームを整合させるために、ソースアドレスと、前記コア回路（１０）内で前記計算ノード（９０）により生成された前記データパケットとを対応付けることにより、前記階層型構造の前記異なるレベルにおける前記異なるルーティングスキームが共存することを特徴とする、請求項１〜７のいずれか一項に記載のネットワーク。
【請求項９】
前記ネットワークは、人工的なニューロンネットワークであり、各計算ノード（９０）は、ニューロンを形成し、前記メモリ回路（８０）それぞれは、シナプスを形成し、特に前記計算ノード（９０）は、到着イベントを集積して、前記集積されたイベントにより形成される信号が始動閾値を超えるとイベントを生成するよう設計されることを特徴とする、請求項１〜８のいずれか一項に記載のネットワーク。
【請求項１０】
相互作用するマルチコアプロセッサ（６）の並列ネットワークであって、各マルチコアプロセッサ（６）は、コア回路（１０）の中および／または異なるコア回路（１０）間でデータパケットの形態のイベントを通信するように構成されている複数のコア回路（１０）を備え、前記ネットワークは、独立した通信経路に作用するように構成されている非同期ルータ（Ｒ１、Ｒ２、Ｒ３）の階層により前記通信を規制するように構成されている、ネットワーク。
【請求項１１】
各データパケットは、エンコードされたソースアドレスを生成するコア回路（１０）の計算ノード（９０）の当該アドレスと、前記ネットワークにおける個々の前記イベントのルートの一部または全部を指定する追加のデジタルコードとからなる、あるいは備えることを特徴とする、請求項１０に記載のネットワーク。
【請求項１２】
ネットワークにルーティングメモリを分散させる方法であって、同じ前記ネットワークの中で共存する異なるルーティング戦略が使用される、方法。
【請求項１３】
特に請求項１〜１０のいずれか一項に記載のネットワークを使用して、ネットワーク内でイベントをルーティングする方法であって、前記方法は、
−相互接続された複数のコア回路（１０）を備えるネットワークを準備するステップであって、各コア回路（１０）は、複数の計算ノード（９０）および複数のメモリ回路（８０）を備えた電子アレイ（８、９）を備える、ステップと、
−個々の計算ノード（９０）により受信された到着イベントが所定の基準を満足すると、データパケットを備えるイベントを前記計算ノード（９０）により生成するステップと、
−前記生成されたイベントを、各コア回路（１０）が備えるローカル第１ルータ（Ｒ１）によって、前記イベントのコア回路（１０）の中で分配するステップであって、メモリ（２、３）に格納されているプログラムされたルート割り当てに応じて、個々の前記データパケットに、個々の前記第１ルータ（Ｒ１）によって宛先アドレス、および特に追加の仮想ソースコアＩＤが付加される、ステップと、
−前記個々の第１ルータ（Ｒ１）によって、個々の前記コア回路（１０）内の前記メモリ回路（８０）すべてに到着イベントを並行してブロードキャストするステップと、
−前記個々のデータパケットに付加された前記宛先アドレスに従って、同じユニット（６）の中のコア回路（１０）により生成されまたは同じユニット（６）の中のコア回路をターゲットとするイベントを、中間レベルの個々の第２ルータ（Ｒ２）によって分配するステップと、
−前記個々のデータパケットに付加された前記宛先アドレスに従って、前記より上位レベルの個々の第３ルータ（Ｒ３）によって異なるユニット（６）にイベントを分配するステップと、
を含む方法。
【請求項１４】
相互接続された複数のコア回路（１０）を備えるネットワークにおいてイベントをルーティングするためのルーティングファブリックであって、各コア回路は、複数の計算ノード（９０）および複数のメモリ回路（８０）を備えた電子アレイ（８、９）を備え、前記ルーティングファブリックは、
−コア内回路接続性を提供する複数のローカル第１ルータ（Ｒ１）であって、ローカル第１ルータ（Ｒ１）は、各コア回路（１０）に割り当てられるように構成され、個々の前記第１ルータ（Ｒ１）は、前記個々の第１ルータ（Ｒ１）が割り当てられているのと同じ前記コア回路（１０）にソースおよび宛先が位置するイベントのデータパケットを分配するように構成されている、前記ローカル第１ルータ（Ｒ１）と、
−複数のブロードキャストドライバ（７）であって、各ブロードキャストドライバ（７）は、前記コア回路（１０）の１つに割り当てられて到着イベントをその関連するコア回路（１０）内の前記メモリ回路（８０）すべてに並行して伝達するように構成されている、前記複数のブロードキャストドライバ（７）と、
−コア間接続性を提供するように構成された複数の第２ルータ（Ｒ２）であって、特に、前記第２ルータ（Ｒ２）は、個々の前記データパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、前記複数の第２ルータ（Ｒ２）と、
−チップ間接続性を提供するように構成された複数の第３ルータ（Ｒ３）であって、特に、前記第３ルータ（Ｒ３）は、前記個々のデータパケットが備える前記ルートペイロードに従ってイベントを分配するように構成されている、前記複数の第３ルータ（Ｒ３）と、
を備える、ルーティングファブリック。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに関し、特に、ニューラルネットワーク、ルーティングファブリック、および対応する方法に関する。
【背景技術】
【０００２】
本発明の基礎にある問題は、改善されたネットワーク、特にニューラルネットワーク、および対応する方法を提供することである。
【発明の概要】
【０００３】
この問題は、請求項１に記載のネットワークにより解決される。それによれば、相互接続された複数のコア回路（例えばいくつかのチップまたはユニットまたはタイルに配列される）を備えるネットワークが準備され、各コア回路は、
−複数の計算ノードおよび複数のメモリ回路を備える電子アレイであって、電子アレイは、到着イベントを受信するよう（特にローカルメモリを使用して入力イベントまたは到着イベントを識別するよう）構成され、各計算ノードは、個々の計算ノードにより受信された到着イベントが所定の基準を満足すれば、データパケットを備えるイベントを生成するように構成されている、電子アレイと、
−宛先アドレスと、追加のソース情報（例えばソースコアＩＤ、特に仮想ソースコアＩＤ、例えば下記参照）とを、個々のデータパケットに付加するように構成されている回路と、
−迅速なコア内接続性を提供する、および／またはコア間のための中間レベルの第２ルータ（Ｒ２）およびチップ間（またはユニット間またはタイル間）接続性のためのより上位レベルの第３ルータ（Ｒ３）にイベントを伝達する、ローカル第１ルータ（Ｒ１）と、
−コア内のメモリ回路すべてに到着イベントを並行してブロードキャストするブロードキャストドライバと、
を備える。
【０００４】
以下では、コア回路はコアとも表記される。
【０００５】
さらに、特に、個々の計算ノードは、個々の電子アレイのメモリ回路を介して前記到着イベントを受信してもよい。
【０００６】
特に、階層型ルーティング構造と異種メモリアーキテクチャとを組み合わせるイベントベースのルーティングファブリックが提供される。このルーティングファブリックは、複数の計算コアにわたり分散した非同期計算ノードを備えるアーキテクチャに適用可能である。ファブリックは、ソースベースおよび宛先ベースの組み合わせのルーティングからなり、データパケットは異なる階層レベルで処理されてからルーティングされる。これは、メモリおよび帯域幅の最適化を可能にする異種ネットワーク構造の構築を可能にする。ブロードキャスト、ツリー、およびメッシュルーティングの異なる３つの戦略を使用するルーティングファブリックのスタックの実現により本発明を例示する。計算ノード間の接続性を格納するのに使用されるメモリは、ノード、コア、およびルータ中に分散された異なる構造を使用する。計算ノードは、非同期入力を処理して、入力データに関する条件が満たされると非同期イベントを発生させることにより、並列、独立、かつ非同期に動作する。スパイキングニューラルネットワークの場合、計算ノードは、複数のソースから入力イベント（例えば到着イベント）を受信して、入力イベントの合計が設定された閾値を超えると１つの出力スパイクを発生させる、人工ニューロンである。フルカスタムのマイクロチップ上に実装されたプログラム可能な接続性を備える、スケーラブルなスパイキングニューラルネットワークの文脈の中で、本発明を例示する。
【０００７】
さらに、特に本発明は、情報処理および計算のための非同期イベントベースのシステムおよび回路、特にイベントベースのネットワーク、および特にスパイキングニューラルネットワークに関する。イベントベースのシステムは、計算ノードの入力信号に関する条件の所定のセットが満たされると構成要素の計算ノードが発生させる非同期イベントを介して、計算および通信を構成要素が実行する電子計算システムである。本発明は、ネットワーク接続性をプログラムするためのメモリの使用を最適化する、分散型異種メモリ構造をもつ階層型ルーティングファブリックに関する。ネットワーク接続性がその計算特性を決定するので、本発明は、ディープビリーフおよび畳み込みネットワークを含む「ディープネットワーク」、リザーバー計算ネットワークを含む回帰型ニューラルネットワーク、ならびに因子グラフを含む確率的グラフィカルモデルのハードウェア実装を構築するために使用可能である。ネットワーク接続性は、ネットワーク上に分散したルーティングルックアップテーブル（ＬＵＴ：Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅｓ）、および計算ノードに関連する連想メモリ（ＣＡＭ：Ｃｏｎｔｅｎｔ−Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｉｅｓ）をプログラムすることにより実現される。システムにプログラム可能なネットワークのタイプは、構成要素、コア、およびルータ内の配分されたメモリの量に依存する。
【０００８】
かかるシステムの具体的な事例は、スパイキングニューラルネットワークである。計算要素は、ダイナミクスまたは生物学的ニューロンをモデルとし、よって、多くの場合スパイクと称されるイベントを、集積された入力スパイクが設定された閾値を上回るのに応答して生成する。このスパイクイベントは、パケットとしてエンコードされ、その宛先に、ルータユニットおよびシナプスユニットを備える物理的ネットワークにより伝達される。ニューラルネットワークの接続性は、ローカルの分散型メモリ構造を使用して、ソースからスパイクイベントの宛先にスパイクイベントを適切にルーティングすることにより実現される。このアーキテクチャは、イベント駆動型と呼ばれ、人工ニューラルネットワークを実現する。
【０００９】
さらに、特に本発明の実施形態は、並列計算システムのための非同期イベント駆動型アーキテクチャを提供する。システムの計算ノード間の接続性の度合いと、システムにプログラム可能な計算のタイプとは、個々のノード、コア、およびルータに配分されたメモリの量に依存する。
【００１０】
特に、本発明は、本発明の範囲を限定することなく、計算ノードがダイナミックシナプスをもつ集積始動ニューロンである実施形態により説明される。この実施形態によれば、ニューラルネットワークは、１つ以上の電子チップ上に分散された複数のコアの中で、および複数のコアにわたって、相互接続された複数のノードを備える。各コアは、ネットワークの接続性を格納してニューラル計算を実現するニューラルおよびシナプス要素をもつ多数のブロックを備える。コア内のニューロンのシナプス要素は、それらが入力を受領するシナプス前ニューロンのアイデンティティを格納するメモリ構造を有する。適切なシナプス前ニューロンが有効なシナプス要素を刺激すると、この要素がアナログ電流を生成し、それが当該シナプスの接続されているシナプス後ニューロンにより集積される。或るニューロンに接続されたすべてのシナプスにより送られた、集積された入力電流が閾値を上回ると、ニューロンはスパイク生成メカニズムを活性化する。ニューロンが出力スパイクを発生させると、これがそのソースアドレスによりエンコードされ、このアドレスが非同期データパケットとして階層型スキームに従って他のノードにルーティングされる。最下位レベルでは、コアルータが、ソースおよび宛先が同じコアに位置するスパイクを分配する。中間レベルでは、１つ以上のセットのツリールータが、同じチップ内のコアにより生成されるかまたは同じチップの中のコアをターゲットとするかいずれかのスパイクを分配する。ツリールータは、階層レベルに編成され、複数のルータが、複数レベルの階層に広がることができる。
【００１１】
最上位レベルでは、メッシュルータが２次元メッシュに分散した複数チップにわたりスパイクを分配する。
【００１２】
本発明によるネットワークの実施形態によれば、ネットワークは、コア回路を相互接続するイベントルーティングシステムをさらに備え、イベントルーティングシステムは、前記ローカル第１ルータを備え、かつ特に、さらなるルータ、特に第２および第３ルータをも備え、特にルータの全体が、階層型構造を形成する。
【００１３】
さらに、本発明によるネットワークの実施形態によれば、各ルータ（Ｒ１、Ｒ２、Ｒ３）は、特に個々のイベント／データパケットが備えるルートペイロードに従ってイベント（または信号）をルーティングするように構成されている少なくとも１つの制御回路を備え、各第１ルータ（Ｒ１）は、
−前記データパケットの、ルートペイロードおよび特に仮想ソースコアＩＤを格納するように構成されたプログラム可能メモリ（例えばデジタルローカルメモリのアレイ）と、
−前記メモリに格納されたプログラムされたルート割り当てに応じて、ルートペイロードおよび特に仮想ソースコアＩＤを個々のデータパケットに付加するように構成された少なくとも１つの回路と、
をさらに備える。
【００１４】
仮想ソースコアＩＤは、全体的なアドレス空間を広げ、特にイベント識別可能性を向上させ、したがってアドレス曖昧性を低減するために、コア毎ではなくニューロン毎に、各ニューロンに関し独立してソースアドレスに付加される追加のコードである。
【００１５】
さらに、本発明によるネットワークの実施形態によれば、コア回路は、ユニット、特にモジュラータイルまたはチップの形態で配列され、特に各ユニットは、コア回路のいくつかを備え、各ユニットは、第１ルータのうちの１つを備え、特に前記第１ルータはそれぞれ、ルータの全体により形成される階層型構造内に配置される。
【００１６】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、第１ルータを備える最下位レベルを備え、特に、第１ルータは、イベントのソースおよび宛先が同じコア回路に位置する該イベントを分配するように構成されている。
【００１７】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、第２ルータを備える少なくとも１つの中間レベルを備え、特に第２ルータは、同じユニットの中のコア回路により生成されまたはそれをターゲットとするイベントを分配するように構成されている。
【００１８】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、異なるユニットにイベントを分配するように構成されている第３（例えばメッシュ）ルータを備える最上位レベルを備え、特に第３ルータは、２次元メッシュに配列される。
【００１９】
さらに、本発明によるネットワークの実施形態によれば、ルータは、ルータにより形成された階層型構造に配置され、異なるレベルにおける異なる非同期ルーティングスキームを整合させるために、ソースアドレスと、コア回路において計算ノードにより生成された前記データパケットとを対応付けることにより、階層型構造の異なるレベルにおける異なるルーティングスキームが共存する。
【００２０】
さらに、本発明によるネットワークの実施形態によれば、ネットワークは、人工的なニューロンネットワークであり、各計算ノードは、ニューロンを形成し、前記メモリ回路のそれぞれが、シナプスを形成し、特に計算ノードは、到着イベントを集積（例えば合計）して、集積されたイベントにより形成される信号が始動閾値を超えるとイベントを生成するよう設計される。
【００２１】
請求項１０によれば、本発明はさらに、（例えば高度に）相互作用するマルチコアプロセッサの（超）並列型ネットワークの側面に関し、各マルチコアプロセッサは、コア回路の中および／または異なるコア回路間でデータパケットの形態のイベントを通信するように構成されている複数のコア回路を備え、ネットワークは、独立した通信経路に作用するように構成されている非同期ルータの階層により前記通信を規制するように構成されている。
【００２２】
さらに、本発明による並列ネットワークの実施形態によれば、各データパケットは、エンコードされたソースアドレスを生成するコア回路の計算ノードの当該アドレスと、ネットワークに沿った個々のイベントのルートの一部または全部を指定する追加のデジタルコードとからなる。
【００２３】
請求項１２によれば、本発明はさらに、ネットワークにルーティングメモリを（特にパケットペイロードを最小化する形で）分散させる方法の側面に関し、同じネットワークの中に共存する異なるルーティング戦略が使用される。
【００２４】
請求項１３によれば、本発明はさらに、特に請求項１〜９のいずれか１項に記載のネットワークを使用して、ネットワーク内でイベントをルーティングする方法の側面に関し、本方法は、
−相互接続された複数のコア回路を備えるネットワークを準備するステップであって、各コア回路は、複数の計算ノードおよび複数のメモリ回路を備えた電子アレイを備える、ステップと、
−個々の計算ノードにより受信された到着イベントが所定の基準を満足すれば、データパケットを備えるイベントを計算ノードにより生成するステップと、
−生成されたイベントを、各コア回路が備えるローカル第１ルータによって、そのイベントのコア回路の中で分配するステップであって、前記メモリに格納されているプログラムされたルート割り当てに応じて、個々のデータパケットに、個々の第１ルータによって宛先アドレス、および特に追加の仮想ソースコアＩＤが付加される、ステップと、
−個々の第１ルータによって、個々のコア回路内のメモリ回路すべてに到着イベントを並行してブロードキャストするステップと、
−個々のデータパケットに付加された宛先アドレスに従って、同じユニットの中のコア回路により生成されまたは同じユニットの中のコア回路をターゲットとするイベントを、中間レベルの個々の第２ルータによって分配するステップと、
−個々のデータパケットに付加された宛先アドレスに従って、より上位レベルの個々の第３ルータによって異なるユニットにイベントを分配するステップと、
を含む。
【００２５】
請求項１４によれば、本発明はさらに、相互接続された複数のコア回路を備えるネットワークにおいてイベントをルーティングするためのルーティングファブリックの側面に関し、各コア回路は、複数の計算ノードおよび複数のメモリ回路（例えば入力イベントまたは到着イベントを識別するためにローカルメモリを使用する）を備える電子アレイを備え、このアレイは、到着イベントを受信するように構成され、各計算ノードは、個々の計算ノードにより受信された到着イベントが所定の基準を満足すればデータパケットを備えるイベントを生成するように構成され、ルーティングファブリックは、
−迅速なコア内回路接続性を提供する複数のローカル第１ルータ（Ｒ１）であって、ローカル第１ルータ（Ｒ１）は、各コア回路に割り当てられるように構成され、個々の第１ルータ（Ｒ１）は、
−個々の第１ルータが割り当てられているのと同じコア回路にイベントのソースおよび宛先が位置する該イベントのデータパケットを分配するように構成されている、ローカル第１ルータと、
−複数のブロードキャストドライバであって、各ブロードキャストドライバは、コア回路の１つに割り当てられて到着イベントをその関連するコア回路内のメモリ回路すべてに並行して伝達するように構成されている、複数のブロードキャストドライバと、
−コア間接続性を提供するように構成された複数の第２ルータ（Ｒ２）であって、特に、第２ルータは、個々のデータパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、複数の第２ルータ（Ｒ２）と、
−チップ間（またはユニット間またはタイル間）接続性を提供するように構成された複数の第３ルータ（Ｒ３）であって、特に、第３ルータは、個々のデータパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、複数の第３ルータ（Ｒ３）と、
を備える。
【００２６】
本発明の上述の特徴および他の特徴、側面、ならびに利点が、下記の記載、添付の特許請求の範囲、および添付の図面を参照することにより理解されるであろう。
【図面の簡単な説明】
【００２７】
【図１】本発明の実施形態による、例示のマルチコアネットワークの構造を例示する概観図を示す。
【図２】本発明の実施形態による、コアルータＲ１上で、対応するコアの中で生成されたイベントによりインスタンス生成されたプロセスの図を示す。
【図３】本発明の実施形態による、チップコアの１つの中で生成されたイベントによりチップルータＲ２上でインスタンス生成されたプロセスの図を示す。
【図４】本発明の実施形態による、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントによりチップルータＲ２上でインスタンス生成されたプロセスの図を示す。
【図５】本発明の実施形態による、メッシュルータＲ３上で、対応するチップの中のニューロンにより生成されたイベントによりインスタンス生成されるプロセスの図を示す。
【図６】本発明の実施形態による、メッシュルータＲ３の北または南ポートに到達する、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントにより、Ｒ３上でインスタンス生成されたプロセスの図を示す。
【図７】本発明の実施形態による、メッシュルータＲ３の東または西ポートに到達する、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントにより、Ｒ３上でインスタンス生成されたプロセスの図を示す。
【図８】本発明の実施形態による、１つのニューラルネットワークのアーキテクチャを例示する図を示す。
【図９】本発明の実施形態による、多数のニューロンピクセルと、コアの外からニューロンピクセルにブロードキャストされる信号のフローとを例示する図を示す。
【図１０】本発明の実施形態による、１つのコアと、当該コアの中でスパイクが生成されたときの信号のフローとのブロック図を示す。
【図１１】本発明の実施形態による、１つのコアと、当該コアによりスパイクが受信されたときの信号のフローとのブロック図を示す。
【図１２】本発明の実施形態による、１つのコアと、コアメモリをプログラムするためおよびニューロンを構成するために使用される信号のフローとのブロック図を示す。
【図１３】本発明の実施形態による、３レベルの階層規模および分岐（ツリー）をもつ階層型構造のメッシュを示す。
【図１４】本発明の実施形態による、階層型構造に編成された６４個のコアをもつチップと、通信フローとの例のブロック図を示す。
【図１５】本発明の実施形態による、コアおよびルータ間の通信フロー、ならびにパケット構造の詳細を示す。
【図１６】本発明の実施形態による、ソースニューロンから宛先ニューロンへのイベントのルーティングの例を示す。
【図１７】モジュール配列された複数の計算ノードを例示する図を示す。
【発明を実施するための形態】
【００２８】
本発明の実施形態は、スケーラブルニューラルネットワークのための分散型メモリおよび異種メモリ構造を備えＶＬＳＩ実装可能なイベント駆動型ニューラルアーキテクチャを提供する。階層型ルータアーキテクチャは、マルチコアチップ上に分散した複数のコアの中および間で各ノードを相互接続するための能力と、時間効率のよい戦略とを提供する。各コアに分散したメモリおよび各コアにおいてブロードキャストされるイベントが、膨大なファンアウトを提供して、生物学的にもっともらしいモデルの典型的な構造的制約をもつ大規模ニューラルネットワークを実装する。完全に非同期のルータおよびプログラミングファブリックは、差し迫ったオフライン学習のためのシナプス計算の高速演算を可能にする。
【００２９】
本願明細書で使用されるニューロンおよびシナプスという用語は、生物学上のニューロンおよびシナプスをシミュレートする回路を表す。電子ニューロンは、関連したシナプスの貢献度を合計してスパイクイベントを発生させる。本発明の実施形態による電子ニューロンおよびシナプスを備える神経形態学的システムは、生物学的ニューロンをモデルとする様々な処理要素を含んでもよい。シナプス接続性を格納するためにアナログニューロンおよびＣＡＭモジュールを使用する、本発明の特定の例示的実施形態が本願明細書に記載される。本発明は、ニューロンおよびシナプスの計算要素に限定されない。本発明の実施形態によるイベント駆動型の計算システムは、複数の入力イベントを処理して単一の出力イベントを発生させる任意の非同期計算ノードを使用することができる。さらに、本発明は、情報共有のために膨大なファンアウトを必要とする任意の種類の超並列型の混成信号イベントに基づく計算をサポートする。
【００３０】
本発明の実施形態によれば、完全非同期の回路実装がルータに使用されるが、本発明はかかる実装に限定はされない。
【００３１】
本発明の実施形態によれば（例えば図１参照）、ニューラルネットワークは複数のマルチコアチップ６を備える。各チップ６は、ネットワークの接続性を格納してそれにより特定の形態のニューラル計算を実現するニューラルおよびシナプス要素をもつ多数のコア１０を備える。
【００３２】
各コア１０は、ニューロン９０一つにつき（または計算ノード９０一つにつき）複数のシナプス８０（またはメモリ回路８０）をもつニューロンのアレイ９、シナプスアレイ８（このアレイ８、９は電子アレイ８、９の一部を形成し得る）、宛先ＬＵＴ３を格納するＳＲＡＭメモリ２、およびコア（または第１）ルータＲ１を備える。さらに各チップ６は、チップ（または第２）ルータＲ２、およびメッシュ（または第３）ルータＲ３も備える。各ニューロン９０は、対応するシナプス８０により受信および受領された複数のイベントを集積し、集積された信号が始動閾値を超えるとスパイクイベントを生成する。ニューロン９０の発生させたスパイクは、コアのエンコーダにより、ソースのアイデンティティを表すデジタルアドレスイベントとしてエンコードされ、Ｒ１に送信される。Ｒ１は、そのローカルＬＵＴ３に格納されている宛先情報により、イベントを処理してさらにＲ２に伝達するか、コアに再び伝達するかを決定する。さらにＲ１は、そのイベントからファンアウトを生成でき、すなわち、最大４つのイベントが生成されて、ＬＵＴ  ＳＲＡＭ２においてプログラムされた異なる宛先を割り当てられることができる。Ｒ２ルータがいずれかのコアルータＲ１からスパイクイベントを受信すると、Ｒ２ルータは、宛先アドレスを確認して、対応するコアルータにイベントを再び伝達するか、Ｒ３にさらに伝達するかを適宜決定する。各シナプス８０は、接続されているソースニューロン９０のアドレス、シナプスタイプ、およびそのシナプス効力を格納するためのｎビットＣＡＭワードを有する。１つのイベントが特定のコア１０に送られると、アドレスがコア１０の中のすべてのシナプス８０にブロードキャストされる。格納されているアドレスがブロードキャストされたアドレスに一致するシナプス９０は、対応するシナプス後ニューロン９０に対して、シナプスタイプおよびシナプス効力の所定パラメータをもつＰＳＣを生成する。なお、ファンアウトは、（１）イベントが１つのコア１０を出てＲ１に到達するときに、そのイベントについてＲ１メモリがどのようにプログラムされているかに応じて、および（２）イベントがＲ１からコア１０に到達するときに生成される。記載されるスキームは、短距離および長距離での情報共有を要求する高度相互接続型ネットワークをサポートする。
【００３３】
図２は、本発明の実施形態によるＲ１ルータのプロセスのさらなる詳細を示す。ニューロン９０がスパイクを生成すると、このスパイクのアドレスがＲ１に送られる。このイベントの宛先は、Ｒ１がアクセスできるＬＵＴ３に格納されている。イベントについてプログラムされている宛先に従って、Ｒ１は、イベントをコア１０に送り返すか、またはイベントパケットにこのイベントの宛先を表すデジタルコードを付加することができる。所与の例では、コア１０からのスパイクは８ビットアドレスイベントとして表される。付加された宛先アドレスは、１２ビットコードからなり、チップシフト（ｄｘ，ｄｙ）のための６ビット、仮想ソースコアＩＤのための２ビット、およびチップ内宛先のための４ビットを含む。仮想ソースコアＩＤは、全体的なアドレス空間を広げ、イベント識別可能性を向上させ、したがってアドレス曖昧性を低減するために、コア毎ではなくニューロン毎に、各ニューロンに関し独立してソースアドレスに付加される追加のコードである。例えば、コア１のニューロン２４３には仮想ＩＤ＝１が割り当てられ、同じコアのニューロン１２１には別の仮想ＩＤ、例えば２が割り当てられることが可能である。１つのスパイクイベントはさらに、ＳＲＡＭメモリ２においてプログラムされているとおりファンアウトを生成することができ、各イベントは異なる宛先を割り当てられるが、同じソースアドレスを輸送する。
【００３４】
Ｒ２がＲ１からイベントを受信すると、Ｒ２は、図３に示されているとおり、このイベントのターゲットコア１０が同じチップ６の中に位置するかどうかを確認する。そうである場合、Ｒ２は、イベントパケットから読み取った宛先コア１０に従ってイベントを伝達する。そうでない場合、このイベントはＲ３に伝達される。Ｒ２はさらに、図４に示されるとおり、他のチップ６からＲ３を介してイベントを受信する。これが発生すると、Ｒ２は、ソースアドレスに付加された宛先コードに従って分岐にイベントを送る。
【００３５】
図５は、本発明の実施形態による、Ｒ３ルータがＲ２からイベントを受信したときのＲ３ルータの処理の詳細を示す。この例では、Ｒ３はまずｘ方向（東西）シフトの数を確認する。ｘシフトが０でない場合、Ｒ３は、ｄｘの符号を確認して、ｄｘ＞０であれば東、ｄｘ＜０であれば西、の伝達の方向を決定する。次にｄｘが１減じられ、イベントが適切な方向に伝達される。ｘシフトが０の場合、Ｒ３は、ｄｙの符号を確認して、ｄｙ＞０であれば北、ｄｙ＜０であれば南、伝達の方向を決定する。次に、ｄｙが１減じられ、イベントが適切な方向に伝達される。したがって、本例では、イベントがＲ３に伝達されると、まず東西方向に沿ってシフトされ、次に南北方向に沿ってシフトされるように優先順位規則が設定されている。イベントは、ｄｘおよびｄｙ両方が０になるまでメッシュに沿って移動する。図６に示されているとおり、Ｒ３が南／北（ｙ方向）からイベントを受信すると、上記の優先順位規則が当てはまるので、イベントをｘ方向に沿ってさらにシフトする必要はないと推定することができる。故に、ｄｙの値が０になると、イベントは対応するチップのＲ２に伝達される。
【００３６】
ＣＡＭワードは、ニューロン接続およびシナプス効力を格納するためのシナプス８０として使用される。或る例では、１つのコア１０は、２５６個のニューロンを有し、ニューロン１つにつき６４個のＣＡＭベースシナプスがある。各ＣＡＭワードは、ソースアドレスのための１０ビットと、シナプスタイプのための２ビットとの１２ビットからなる。１つのコアに到達するスパイクイベントは、ブロードキャストドライバによりコア全体にブロードキャストされる。各ＣＡＭは、ブロードキャストバス上のイベントと、格納されたコンテンツとを比較する。ブロードキャストされたイベントにコンテンツが一致するものは「一致状態」を出し、適切なシナプス後電流（ＰＳＣ：Ｐｏｓｔ−Ｓｙｎａｐｔｉｃ  Ｃｕｒｒｅｎｔ）を生成する。図９では、ニューロン１のシナプス４、ニューロン１６のシナプス１、およびニューロン５のシナプス５が、ブロードキャストドライバにより伝達されたものに一致するアドレスを格納しているので、これらが、対応するニューロンに対して適切な電流を生成する応答を出す。
【００３７】
図１０は、ニューロンアレイ９の中で生成されたスパイクに対しイベントを発するプロセスを示す。ニューロン９０により生成されたスパイクは、ニューロンアドレスとしてエンコードされる。例えば、１６×１６ニューロンアレイの場合、スパイクは、列のための４ビットおよび行のための４ビットの８ビットとして列エンコーダ５および行エンコーダ４によりエンコードできる。このイベントは、上記説明のとおり宛先ＳＲＡＭ  ＬＵＴを読み取ることにより宛先アドレスおよび追加のソースコアＩＤを得るためにまずコアルータＲ１へ送られる。
【００３８】
図１１は、１つのイベントが特定のコア１０に送られるのを受けてイベントをブロードキャストするプロセスを示す。受信されるイベントは、まずＲ１により受信され、次にブロードキャストドライバ７によりシナプスアレイ８にブロードキャストされる。ブロードキャストドライバ７は、スパイクをコア１０内のすべてのＣＡＭに伝達し、続いてＣＡＭが、イベントのソースアドレスを識別し、ＰＳＣを適宜生成する。
【００３９】
図１２は、アドレスおよびデータを行デコーダ４０および列デコーダ５０に送ることによりコアのメモリ３をプログラムする例を示す。ＣＡＭベースの異種メモリ構造および分散型宛先ＳＲＡＭ  ＬＵＴ３が各コア１０において使用されるので、ＣＡＭ／ＳＲＡＭのコンテンツは、ＣＡＭ／ＳＲＡＭに対する標準の書き込み動作を使用して行デコーダ４０および列デコーダ５０により容易にプログラムできる。
【００４０】
図１３は、異種メモリ構造をもつ階層型ネットワークまたはルーティングファブリックの別の例を示す。ルーティングファブリックは、その葉がマルチニューロンコア１０であるツリー構造６の２次元メッシュを統合する。本発明の実施形態によれば、各コア１０は、スパイク入力／出力（例えばコア内接続性）のための１つのコア（または第１）ルータＲ１を有する。１つのコア１０から同じ分岐６０内の他のコア１０に伝達されるイベントは、まず下位レベルの分岐ルータ（または第２ルータ）Ｒ２に送られ、次に、アドレスイベントにより輸送される宛先コードに従って１つ以上のターゲットコア１０へ送られる。１つのコア１０から他の分岐であるが同じチップ６の中にある他の１つ以上のコア１０へ伝達されるイベントは、まずより上位の（第２）ルータＲ２へ送られ、次に、イベントにより輸送された宛先コードにエンコードされているとおりにより下位の分岐ルータＲ２へ送られる。ターゲットにできるツリーの深さおよび同じチップの中の異なるコアの数は、宛先コードとしてアドレスイベントにより輸送されるビット数に依存する。一例では、各チップ６は２次元メッシュ状に当該ツリー構造を相互接続する１つのタイルルータ（または第３ルータ）Ｒ３を有する。
【００４１】
図１４は、図１３に記載された階層型ルーティングスキームを使用する６４個のコア１０からなるチップ構造の例を示す。本例では、各コア１０は、ローカルコア接続のための専用（第１）ルータＲ１を有する。４つのコアのグループが、ツリー構造の最下位レベル分岐と定義される。これらのモジュール４つの各グループは、レベル２分岐と定義され、したがって、それぞれ１６個のコア１０を含む。例示のチップ６は、これらのモジュール４つのグループからなり（ツリーにおける第３レベル）、したがって、合計で６４個のコア１０からなる。各レベルは、当該レベルの中でのコアの通信のため、およびツリー６の他のレベルへ／からのイベント送信／受信のため、専用（第２）ルータＲ２を含む。
【００４２】
コア１０の中で生成された各イベントに割り当てられた宛先アドレスに従って、同じコア１０の中の宛先をターゲットとするイベントは、コアルータＲ１によりルーティングされ、そうしてローカル接続性が実現される。同じレベル１分岐の中の他のコア１０をターゲットとするイベントは、（第２）ルータＲ２に送られ、次に処理されて、対応するコア１０へ伝達される。概して、ルータのメモリは、チップ６の中の任意の宛先コア１０に到達するのに必要なだけイベントが各レベルのＲ２ルータを通ってツリーを上がるようにプログラムされる。イベントのターゲットが別のチップ６のコア１０にある場合、イベントは、すべての層を通ってチップ（第３）ルータＲ３まで送られ、Ｒ３はそれをさらに処理してメッシュ内の適切な方向に沿って伝達する。
【００４３】
図１５は、ネットワーク内の１つのコア１０の構造の詳細を示す。本例において、１つのマルチコアチップ６は、各コア１０内に２５６個のニューロン９０、ニューロン９０それぞれに対し６４個のシナプス８０を備えた４つのコア１０を有する。各コア１０は、シナプス／ニューロンアレイ８、９、列／行エンコーダ５、４、ブロードキャストドライバ７、宛先ＬＵＴ３、およびローカルコア（または第１）ルータＲ１を含む。ニューロンアレイ９により生成されたイベントは、８ビットアドレス（列のための４ビットおよび行アドレスのための４ビット）としてエンコードおよび表現される。ニューロンアレイ９により生成されたイベントには、１０ビットの宛先アドレス（ｄｘ距離およびｘ方向符号のための３ビット、ｄｙおよびｙ方向符号のための３ビット、宛先チップ６上のターゲットコア１０、すなわちｄｘ−ｄｙチップに到達したらどのコア１０をターゲットとするかの４ビット）およびソースアドレス識別性を増す追加のソースコアＩＤのための２ビットが割り当てられる。各イベントは複数回複製でき、各複製にはコアルータＲ１により異なる宛先アドレスを割り当てできる。本発明の実施形態において、２ビットがコアアドレスによりソースアドレスに内部的に付加され、ＬＵＴ（３）を４回読み取るために使用される。こうして、異なる１２ビット宛先アドレスおよびコアＩＤが各複製に付加される。ソース８ビットイベントアドレスは、ＬＵＴ３から読み取られた１２ビットデータとともに、２０ビットイベントの単一パケットとして送られ、その後（第２）ルータＲ２へ伝達される。（第３）ルータＲ３からルータＲ２に到達するイベントは、図９に記載されたとおり宛先コアにブロードキャストされる。
【００４４】
図１６は、ソース計算ノードから宛先ノードへのイベントのルーティングの例を示す。図１３に示された階層型マルチレベルスキームに従うことにより、任意の１つのチップ６内でノード９０により生成されるイベントに特定の宛先が割り当てられる。イベントはさらに、複数回複製され、各複製に異なる宛先が割り当てられる。本例では、白丸で示されたノード９０により生成されたイベントに異なる４つの宛先が割り当てられ、４つのマルチチップ６に送られる。複製イベントのうちの１つは、同じチップ６上の別のコア１０に伝達される（よってそのルートはＲ１−Ｒ２−Ｒ１）。他の３つのイベントは、別々のチップ６に伝達されて、複数のコア１０上でローカルに分配される（よってそのルートはＲ１−Ｒ２−Ｒ３−…−Ｒ３−Ｒ２−Ｒ１）。
【００４５】
図１７は、異種メモリ構造をもつ階層型ルーティングファブリックまたはネットワークの別の例を示す。本例において、自己相似計算アーキテクチャは、必要な計算を実装するためにローカルメモリ８０にアクセスし異種混合性のルーティングシステムの階層（Ｒ１、Ｒ２、Ｒ３）により相互接続された複数のイベントベース計算ノード９０からなる。ノード９８は、前記複数のノード９０、ローカル（または第１）ルータＲ１、および前記ルータＲ１によりアクセスされるルータメモリ３からなるコア１０に配列される。コア１０の複数のグループが、コア１０の前記グループ、ローカル（または第２）ルータＲ２、および前記ルータＲ２によりアクセスされるルータメモリ３２からなる複数のタイル（またはチップまたはユニット）６に配列される。前記タイルモジュール６は、自己相似構造を形成するよう任意に組み合わされ、ルータＲ２、Ｒ３は、ソースアドレスを、さらに伝送されるべきパケットにルートデータを付加するために使用されるローカルメモリエントリ３、３２、３３に対するポインタとして使用する。さらに、前記ルータＲ２、Ｒ３は、より上位レベルから伝達されたイベントを処理して、それらをパケットに含まれたルートデータに従ってより下位レベルの宛先をターゲットにするようにルーティングするようプログラムされる。
【図１】
2018514872.tif 000003
【図２】
2018514872.tif 000004
【図３】
2018514872.tif 000005
【図４】
2018514872.tif 000006
【図５】
2018514872.tif 000007
【図６】
2018514872.tif 000008
【図７】
2018514872.tif 000009
【図８】
2018514872.tif 000010
【図９】
2018514872.tif 000011
【図１０】
2018514872.tif 000012
【図１１】
2018514872.tif 000013
【図１２】
2018514872.tif 000014
【図１３】
2018514872.tif 000015
【図１４】
2018514872.tif 000016
【図１５】
2018514872.tif 000017
【図１６】
2018514872.tif 000018
【図１７】
2018514872.tif 000019
【国際調査報告】
2018514872.tif 000020
2018514872.tif 000021