特許第6959141号(P6959141)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ユニヴァーシテト チューリッヒの特許一覧

特許6959141スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック
<>
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000002
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000003
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000004
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000005
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000006
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000007
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000008
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000009
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000010
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000011
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000012
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000013
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000014
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000015
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000016
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000017
  • 特許6959141-スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6959141
(24)【登録日】2021年10月11日
(45)【発行日】2021年11月2日
(54)【発明の名称】スケーラブルなイベント駆動型計算システムのための異種メモリ構造をもつネットワークおよび階層型ルーティングファブリック
(51)【国際特許分類】
   G06F 15/173 20060101AFI20211021BHJP
   G06F 9/50 20060101ALI20211021BHJP
【FI】
   G06F15/173 685M
   G06F9/50 150C
   G06F15/173 660C
【請求項の数】16
【全頁数】18
(21)【出願番号】特願2017-555655(P2017-555655)
(86)(22)【出願日】2016年4月27日
(65)【公表番号】特表2018-514872(P2018-514872A)
(43)【公表日】2018年6月7日
(86)【国際出願番号】EP2016059446
(87)【国際公開番号】WO2016174113
(87)【国際公開日】20161103
【審査請求日】2019年4月9日
(31)【優先権主張番号】15165272.4
(32)【優先日】2015年4月27日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】508290633
【氏名又は名称】ユニヴァーシテト チューリッヒ
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】インディベリ ジャコモ
(72)【発明者】
【氏名】モラディ セイバー
(72)【発明者】
【氏名】チャオ ニン
(72)【発明者】
【氏名】ステファニーニ ファビオ
【審査官】 漆原 孝治
(56)【参考文献】
【文献】 米国特許出願公開第2014/0032465(US,A1)
【文献】 米国特許出願公開第2008/0120260(US,A1)
【文献】 特開2014−048707(JP,A)
【文献】 特表2013−546065(JP,A)
【文献】 特開平05−233586(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/173
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
いくつかのユニット(6)上に配列された、相互接続された複数のコア回路(10)を備えるネットワークであって、各コア回路(10)は、
−複数の計算ノード(90)および複数のメモリ回路(80)を備える電子アレイ(8、9)であって、前記電子アレイ(8、9)は、到着イベントを受信するように構成され、各計算ノード(90)は、個々の前記計算ノード(90)により受信された到着イベントが所定の基準を満足すると、データパケットを備えるイベントを生成するように構成されている、前記電子アレイ(8、9)と、
−宛先アドレスと、仮想ソースコアIDを含む追加のソース情報とを、個々の前記データパケットに付加するように構成されている回路と、
−コア内接続性を提供し、コア間接続性のための中間レベルの第2ルータ(R2)にイベントを伝達する、コア回路(10)内のローカル第1ルータ(R1)であって、前記第2ルータ(R2)は、ユニット間接続性のためのより上位レベルの第3ルータ(R3)にイベントを伝達するように構成されている、ローカル第1ルータ(R1)と、
−前記コア回路(10)内の前記メモリ回路(80)すべてに到着イベントを並行してブロードキャストするブロードキャストドライバ(7)と、
を備える、ネットワーク。
【請求項2】
前記ネットワークは、前記コア回路(10)を相互接続するイベントルーティングシステム(R1、R2、R3)をさらに備え、前記イベントルーティングシステムは、前記ローカル第1ルータ(R1)、中間レベルの第2ルータ(R2)およびより上位レベルの第3ルータ(R3)を備え、前記ルータの全体は、階層型構造を形成することを特徴とする、請求項1に記載のネットワーク。
【請求項3】
前記ネットワークは、
ルートペイロード、すなわち、個々の前記データパケットの一部、に従ってイベントをルーティングするように構成されている少なくとも1つの制御回路を備え、
前記ネットワークは、
−前記データパケットのためのルートペイロードおよび仮想ソースコアIDを格納するように構成されたプログラム可能メモリと、
−前記プログラム可能メモリに格納されたプログラムされたルート割り当てに応じて、ルートペイロードおよび仮想ソースコアIDを前記個々のデータパケットに付加するように構成された少なくとも1つの回路と、
をさらに備えることを特徴とする、請求項2に記載のネットワーク。
【請求項4】
前記コア回路(10)は、ユニット(6)に、モジュラータイル(6)またはチップ(6)の形態で配列され、各ユニット(6)は、前記コア回路(10)のいくつかを備え、各ユニット(6)は、前記第1ルータ(R1)のうちの1つを備え、前記第1ルータ(R1)はそれぞれ、前記ルータ(R1、R2、R3)の全体により形成される階層型構造内に配置されることを特徴とする、請求項1〜3のいずれか一項に記載のネットワーク。
【請求項5】
前記階層型構造は、前記第1ルータ(R1)を備える最下位レベルを備え、前記第1ルータ(R1)は、同じ前記コア回路(10)にイベントのソースおよび宛先が位置する前記イベントを分配するように構成されていることを特徴とする、請求項2または4に記載のネットワーク。
【請求項6】
前記階層型構造は、前記第2ルータ(R2)を備える少なくとも1つの中間レベルを備え、前記第2ルータ(R2)は、同じ前記ユニットの中のコア回路(10)により生成されまたは同じ前記ユニットの中のコア回路(10)をターゲットとするイベントを分配するように構成されていることを特徴とする、請求項2、4、および5のいずれか一項に記載のネットワーク。
【請求項7】
前記階層型構造は、異なるユニット(6)にイベントを分配するように構成されている前記第3ルータ(R3)を備える最上位レベルを備え、前記第3ルータ(R3)は、2次元メッシュ状に配列されることを特徴とする、請求項2、4、5、および6のいずれか一項に記載のネットワーク。
【請求項8】
前記ルータ(R1、R2、R3)は、前記ルータにより形成された階層型構造に配置され、異なるレベルにおける異なる非同期ルーティングスキームを整合させるために、ソースアドレスと、前記コア回路(10)内で前記計算ノード(90)により生成された前記データパケットとを対応付けることにより、前記階層型構造の前記異なるレベルにおける前記異なるルーティングスキームが共存することを特徴とする、請求項1〜7のいずれか一項に記載のネットワーク。
【請求項9】
前記ネットワークは、人工的なニューロンネットワークであり、各計算ノード(90)は、ニューロンを形成し、前記メモリ回路(80)それぞれは、シナプスを形成し、前記計算ノード(90)は、到着イベントを集積して、前記集積されたイベントにより形成される信号が始動閾値を超えるとイベントを生成するよう設計されることを特徴とする、請求項1〜8のいずれか一項に記載のネットワーク。
【請求項10】
請求項1〜9のいずれか一項に記載のネットワークを使用して、ネットワーク内でイベントをルーティングする方法であって、前記方法は、
−相互接続された複数のコア回路(10)を備えるネットワークを準備するステップであって、各コア回路(10)は、ローカル第1ルータ(R1)と、複数の計算ノード(90)および複数のメモリ回路(80)を備えた電子アレイ(8、9)とを備える、ステップと、
−前記計算ノード(90)により受信された到着イベントが所定の基準を満足すると、データパケットを備えるイベントを前記計算ノード(90)により生成するステップと、
−メモリ(2、3)に格納されているプログラムされたルート割り当てに応じて、前記データパケットに、宛先アドレス、および追加の仮想ソースコアIDを付加するステップと、
−前記生成されたイベントを、前記コア回路(10)が備える前記ローカル第1ルータ(R1)によって、前記イベントが生成されたコア回路(10)の中で分配するステップと、
−前記個々の第1ルータ(R1)によって、個々の前記コア回路(10)内の前記メモリ回路(80)すべてに到着イベントを並行してブロードキャストするステップと、
−前記個々のデータパケットに付加された前記宛先アドレスに従って、同じユニット(6)の中のコア回路(10)により生成されまたは同じユニット(6)の中のコア回路をターゲットとするイベントを、中間レベルの個々の第2ルータ(R2)によって分配するステップと、
−前記個々のデータパケットに付加された前記宛先アドレスに従って、前記より上位レベルの個々の第3ルータ(R3)によって異なるユニット(6)にイベントを分配するステップと、
を含む方法。
【請求項11】
相互接続された複数のコア回路(10)を備えるネットワークにおいてイベントをルーティングするためのルーティングファブリックであって、各コア回路は、複数の計算ノード(90)および複数のメモリ回路(80)を備えた電子アレイ(8、9)を備え、前記ルーティングファブリックは、
−コア内回路接続性を提供する複数のローカル第1ルータ(R1)であって、ローカル第1ルータ(R1)は、各コア回路(10)に割り当てられるように構成され、個々の前記第1ルータ(R1)は、前記個々の第1ルータ(R1)が割り当てられているのと同じ前記コア回路(10)にソースおよび宛先が位置するイベントのデータパケットを分配するように構成されている、前記ローカル第1ルータ(R1)と、
−複数のブロードキャストドライバ(7)であって、各ブロードキャストドライバ(7)は、前記コア回路(10)の1つに割り当てられて到着イベントをその関連するコア回路(10)内の前記メモリ回路(80)すべてに並行して伝達するように構成されている、前記複数のブロードキャストドライバ(7)と、
−コア間接続性を提供するように構成された複数の第2ルータ(R2)であって、前記第2ルータ(R2)は、個々の前記データパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、前記複数の第2ルータ(R2)と、
−チップ間接続性を提供するように構成された複数の第3ルータ(R3)であって、前記第3ルータ(R3)は、前記個々のデータパケットが備える前記ルートペイロードに従ってイベントを分配するように構成されている、前記複数の第3ルータ(R3)と、
を備える、ルーティングファブリック。
【請求項12】
複数のタイル/チップ(6)を含むVLSI回路であって、
前記タイル/チップ(6)は、複数のコア(10)を含み、
前記コア(10)は、生物学的ニューロンをシミュレートする回路(90)およびシナプスをシミュレートする回路(80)を含み、
前記コア(10)は、複数のニューロン回路(90)を含み、
前記ニューロン回路(90)は、対応するシナプス回路(80)によって受信および受け入れられた複数のイベントを統合し、前記統合された信号がトリガーしきい値を超えるとスパイクイベントを生成し、
前記コア(10)はまた、前記コア内に回路接続を提供するためのコアルータR1を含み、
前記タイル/チップ(6)はさらに、前記コア間の接続を提供するためのチップルータR2と、前記タイル/チップ(6)間の接続を提供するためのメッシュルータR3とを含み、
前記コアルータR1は、イベントを前記チップルータR2に送信または/および受信し、前記チップルータR2は、イベントを前記メッシュルータR3に送信または/および受信し、
1つのタイル/チップ(6)上に、前記コアルータR1、前記チップルータR2、および前記メッシュルータR3が、ツリー構造を形成し、
前記メッシュルータR3は2次元メッシュに配列されている、VLSI回路。
【請求項13】
前記コア(10)はまた、前記コアルータR1がイベントを受信した後に、ブロードキャストドライバ(7)を介してシナプスアレイ(8)にブロードキャストするように構成された前記ブロードキャストドライバ(7)を含み、前記シナプスアレイ(8)は、複数の前記シナプス回路(80)を有する、請求項12に記載のVLSI回路。
【請求項14】
各タイル/チップ(6)は1つのメッシュルータR3を有しており、前記メッシュルータR3は、前記ツリー構造を2次元メッシュ状に相互接続する、請求項12に記載のVLSI回路。
【請求項15】
前記チップルータR2は、3つのレベル/レイヤ分岐を有する、または1つのレベル/レイヤ分岐のみを有する、請求項12に記載のVLSI回路。
【請求項16】
前記ニューロン回路(90)がスパイクイベントを生成すると、前記スパイクイベントのアドレスが前記コアルータR1に送信され、
前記コア(10)は、前記スパイクイベントの宛先を格納するように構成され、前記コアルータR1によってアクセス可能である宛先LUT(3)をさらに含む、請求項12に記載のVLSI回路。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークに関し、特に、ニューラルネットワーク、ルーティングファブリック、および対応する方法に関する。
【背景技術】
【0002】
本発明の基礎にある問題は、改善されたネットワーク、特にニューラルネットワーク、および対応する方法を提供することである。
【発明の概要】
【0003】
この問題は、請求項1に記載のネットワークにより解決される。それによれば、相互接続された複数のコア回路(例えばいくつかのチップまたはユニットまたはタイルに配列される)を備えるネットワークが準備され、各コア回路は、
−複数の計算ノードおよび複数のメモリ回路を備える電子アレイであって、電子アレイは、到着イベントを受信するよう(特にローカルメモリを使用して入力イベントまたは到着イベントを識別するよう)構成され、各計算ノードは、個々の計算ノードにより受信された到着イベントが所定の基準を満足すれば、データパケットを備えるイベントを生成するように構成されている、電子アレイと、
−宛先アドレスと、追加のソース情報(例えばソースコアID、特に仮想ソースコアID、例えば下記参照)とを、個々のデータパケットに付加するように構成されている回路と、
−迅速なコア内接続性を提供する、および/またはコア間のための中間レベルの第2ルータ(R2)およびチップ間(またはユニット間またはタイル間)接続性のためのより上位レベルの第3ルータ(R3)にイベントを伝達する、ローカル第1ルータ(R1)と、
−コア内のメモリ回路すべてに到着イベントを並行してブロードキャストするブロードキャストドライバと、
を備える。
【0004】
以下では、コア回路はコアとも表記される。
【0005】
さらに、特に、個々の計算ノードは、個々の電子アレイのメモリ回路を介して前記到着イベントを受信してもよい。
【0006】
特に、階層型ルーティング構造と異種メモリアーキテクチャとを組み合わせるイベントベースのルーティングファブリックが提供される。このルーティングファブリックは、複数の計算コアにわたり分散した非同期計算ノードを備えるアーキテクチャに適用可能である。ファブリックは、ソースベースおよび宛先ベースの組み合わせのルーティングからなり、データパケットは異なる階層レベルで処理されてからルーティングされる。これは、メモリおよび帯域幅の最適化を可能にする異種ネットワーク構造の構築を可能にする。ブロードキャスト、ツリー、およびメッシュルーティングの異なる3つの戦略を使用するルーティングファブリックのスタックの実現により本発明を例示する。計算ノード間の接続性を格納するのに使用されるメモリは、ノード、コア、およびルータ中に分散された異なる構造を使用する。計算ノードは、非同期入力を処理して、入力データに関する条件が満たされると非同期イベントを発生させることにより、並列、独立、かつ非同期に動作する。スパイキングニューラルネットワークの場合、計算ノードは、複数のソースから入力イベント(例えば到着イベント)を受信して、入力イベントの合計が設定された閾値を超えると1つの出力スパイクを発生させる、人工ニューロンである。フルカスタムのマイクロチップ上に実装されたプログラム可能な接続性を備える、スケーラブルなスパイキングニューラルネットワークの文脈の中で、本発明を例示する。
【0007】
さらに、特に本発明は、情報処理および計算のための非同期イベントベースのシステムおよび回路、特にイベントベースのネットワーク、および特にスパイキングニューラルネットワークに関する。イベントベースのシステムは、計算ノードの入力信号に関する条件の所定のセットが満たされると構成要素の計算ノードが発生させる非同期イベントを介して、計算および通信を構成要素が実行する電子計算システムである。本発明は、ネットワーク接続性をプログラムするためのメモリの使用を最適化する、分散型異種メモリ構造をもつ階層型ルーティングファブリックに関する。ネットワーク接続性がその計算特性を決定するので、本発明は、ディープビリーフおよび畳み込みネットワークを含む「ディープネットワーク」、リザーバー計算ネットワークを含む回帰型ニューラルネットワーク、ならびに因子グラフを含む確率的グラフィカルモデルのハードウェア実装を構築するために使用可能である。ネットワーク接続性は、ネットワーク上に分散したルーティングルックアップテーブル(LUT:Look Up Tables)、および計算ノードに関連する連想メモリ(CAM:Content−Addressable Memories)をプログラムすることにより実現される。システムにプログラム可能なネットワークのタイプは、構成要素、コア、およびルータ内の配分されたメモリの量に依存する。
【0008】
かかるシステムの具体的な事例は、スパイキングニューラルネットワークである。計算要素は、ダイナミクスまたは生物学的ニューロンをモデルとし、よって、多くの場合スパイクと称されるイベントを、集積された入力スパイクが設定された閾値を上回るのに応答して生成する。このスパイクイベントは、パケットとしてエンコードされ、その宛先に、ルータユニットおよびシナプスユニットを備える物理的ネットワークにより伝達される。ニューラルネットワークの接続性は、ローカルの分散型メモリ構造を使用して、ソースからスパイクイベントの宛先にスパイクイベントを適切にルーティングすることにより実現される。このアーキテクチャは、イベント駆動型と呼ばれ、人工ニューラルネットワークを実現する。
【0009】
さらに、特に本発明の実施形態は、並列計算システムのための非同期イベント駆動型アーキテクチャを提供する。システムの計算ノード間の接続性の度合いと、システムにプログラム可能な計算のタイプとは、個々のノード、コア、およびルータに配分されたメモリの量に依存する。
【0010】
特に、本発明は、本発明の範囲を限定することなく、計算ノードがダイナミックシナプスをもつ集積始動ニューロンである実施形態により説明される。この実施形態によれば、ニューラルネットワークは、1つ以上の電子チップ上に分散された複数のコアの中で、および複数のコアにわたって、相互接続された複数のノードを備える。各コアは、ネットワークの接続性を格納してニューラル計算を実現するニューラルおよびシナプス要素をもつ多数のブロックを備える。コア内のニューロンのシナプス要素は、それらが入力を受領するシナプス前ニューロンのアイデンティティを格納するメモリ構造を有する。適切なシナプス前ニューロンが有効なシナプス要素を刺激すると、この要素がアナログ電流を生成し、それが当該シナプスの接続されているシナプス後ニューロンにより集積される。或るニューロンに接続されたすべてのシナプスにより送られた、集積された入力電流が閾値を上回ると、ニューロンはスパイク生成メカニズムを活性化する。ニューロンが出力スパイクを発生させると、これがそのソースアドレスによりエンコードされ、このアドレスが非同期データパケットとして階層型スキームに従って他のノードにルーティングされる。最下位レベルでは、コアルータが、ソースおよび宛先が同じコアに位置するスパイクを分配する。中間レベルでは、1つ以上のセットのツリールータが、同じチップ内のコアにより生成されるかまたは同じチップの中のコアをターゲットとするかいずれかのスパイクを分配する。ツリールータは、階層レベルに編成され、複数のルータが、複数レベルの階層に広がることができる。
【0011】
最上位レベルでは、メッシュルータが2次元メッシュに分散した複数チップにわたりスパイクを分配する。
【0012】
本発明によるネットワークの実施形態によれば、ネットワークは、コア回路を相互接続するイベントルーティングシステムをさらに備え、イベントルーティングシステムは、前記ローカル第1ルータを備え、かつ特に、さらなるルータ、特に第2および第3ルータをも備え、特にルータの全体が、階層型構造を形成する。
【0013】
さらに、本発明によるネットワークの実施形態によれば、各ルータ(R1、R2、R3)は、特に個々のイベント/データパケットが備えるルートペイロードに従ってイベント(または信号)をルーティングするように構成されている少なくとも1つの制御回路を備え、各第1ルータ(R1)は、
−前記データパケットの、ルートペイロードおよび特に仮想ソースコアIDを格納するように構成されたプログラム可能メモリ(例えばデジタルローカルメモリのアレイ)と、
−前記メモリに格納されたプログラムされたルート割り当てに応じて、ルートペイロードおよび特に仮想ソースコアIDを個々のデータパケットに付加するように構成された少なくとも1つの回路と、
をさらに備える。
【0014】
仮想ソースコアIDは、全体的なアドレス空間を広げ、特にイベント識別可能性を向上させ、したがってアドレス曖昧性を低減するために、コア毎ではなくニューロン毎に、各ニューロンに関し独立してソースアドレスに付加される追加のコードである。
【0015】
さらに、本発明によるネットワークの実施形態によれば、コア回路は、ユニット、特にモジュラータイルまたはチップの形態で配列され、特に各ユニットは、コア回路のいくつかを備え、各ユニットは、第1ルータのうちの1つを備え、特に前記第1ルータはそれぞれ、ルータの全体により形成される階層型構造内に配置される。
【0016】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、第1ルータを備える最下位レベルを備え、特に、第1ルータは、イベントのソースおよび宛先が同じコア回路に位置する該イベントを分配するように構成されている。
【0017】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、第2ルータを備える少なくとも1つの中間レベルを備え、特に第2ルータは、同じユニットの中のコア回路により生成されまたはそれをターゲットとするイベントを分配するように構成されている。
【0018】
さらに、本発明によるネットワークの実施形態によれば、前記階層型構造は、異なるユニットにイベントを分配するように構成されている第3(例えばメッシュ)ルータを備える最上位レベルを備え、特に第3ルータは、2次元メッシュに配列される。
【0019】
さらに、本発明によるネットワークの実施形態によれば、ルータは、ルータにより形成された階層型構造に配置され、異なるレベルにおける異なる非同期ルーティングスキームを整合させるために、ソースアドレスと、コア回路において計算ノードにより生成された前記データパケットとを対応付けることにより、階層型構造の異なるレベルにおける異なるルーティングスキームが共存する。
【0020】
さらに、本発明によるネットワークの実施形態によれば、ネットワークは、人工的なニューロンネットワークであり、各計算ノードは、ニューロンを形成し、前記メモリ回路のそれぞれが、シナプスを形成し、特に計算ノードは、到着イベントを集積(例えば合計)して、集積されたイベントにより形成される信号が始動閾値を超えるとイベントを生成するよう設計される。
【0021】
請求項10によれば、本発明はさらに、(例えば高度に)相互作用するマルチコアプロセッサの(超)並列型ネットワークの側面に関し、各マルチコアプロセッサは、コア回路の中および/または異なるコア回路間でデータパケットの形態のイベントを通信するように構成されている複数のコア回路を備え、ネットワークは、独立した通信経路に作用するように構成されている非同期ルータの階層により前記通信を規制するように構成されている。
【0022】
さらに、本発明による並列ネットワークの実施形態によれば、各データパケットは、エンコードされたソースアドレスを生成するコア回路の計算ノードの当該アドレスと、ネットワークに沿った個々のイベントのルートの一部または全部を指定する追加のデジタルコードとからなる。
【0023】
請求項12によれば、本発明はさらに、ネットワークにルーティングメモリを(特にパケットペイロードを最小化する形で)分散させる方法の側面に関し、同じネットワークの中に共存する異なるルーティング戦略が使用される。
【0024】
請求項13によれば、本発明はさらに、特に請求項1〜9のいずれか1項に記載のネットワークを使用して、ネットワーク内でイベントをルーティングする方法の側面に関し、本方法は、
−相互接続された複数のコア回路を備えるネットワークを準備するステップであって、各コア回路は、複数の計算ノードおよび複数のメモリ回路を備えた電子アレイを備える、ステップと、
−個々の計算ノードにより受信された到着イベントが所定の基準を満足すれば、データパケットを備えるイベントを計算ノードにより生成するステップと、
−生成されたイベントを、各コア回路が備えるローカル第1ルータによって、そのイベントのコア回路の中で分配するステップであって、前記メモリに格納されているプログラムされたルート割り当てに応じて、個々のデータパケットに、個々の第1ルータによって宛先アドレス、および特に追加の仮想ソースコアIDが付加される、ステップと、
−個々の第1ルータによって、個々のコア回路内のメモリ回路すべてに到着イベントを並行してブロードキャストするステップと、
−個々のデータパケットに付加された宛先アドレスに従って、同じユニットの中のコア回路により生成されまたは同じユニットの中のコア回路をターゲットとするイベントを、中間レベルの個々の第2ルータによって分配するステップと、
−個々のデータパケットに付加された宛先アドレスに従って、より上位レベルの個々の第3ルータによって異なるユニットにイベントを分配するステップと、
を含む。
【0025】
請求項14によれば、本発明はさらに、相互接続された複数のコア回路を備えるネットワークにおいてイベントをルーティングするためのルーティングファブリックの側面に関し、各コア回路は、複数の計算ノードおよび複数のメモリ回路(例えば入力イベントまたは到着イベントを識別するためにローカルメモリを使用する)を備える電子アレイを備え、このアレイは、到着イベントを受信するように構成され、各計算ノードは、個々の計算ノードにより受信された到着イベントが所定の基準を満足すればデータパケットを備えるイベントを生成するように構成され、ルーティングファブリックは、
−迅速なコア内回路接続性を提供する複数のローカル第1ルータ(R1)であって、ローカル第1ルータ(R1)は、各コア回路に割り当てられるように構成され、個々の第1ルータ(R1)は、
−個々の第1ルータが割り当てられているのと同じコア回路にイベントのソースおよび宛先が位置する該イベントのデータパケットを分配するように構成されている、ローカル第1ルータと、
−複数のブロードキャストドライバであって、各ブロードキャストドライバは、コア回路の1つに割り当てられて到着イベントをその関連するコア回路内のメモリ回路すべてに並行して伝達するように構成されている、複数のブロードキャストドライバと、
−コア間接続性を提供するように構成された複数の第2ルータ(R2)であって、特に、第2ルータは、個々のデータパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、複数の第2ルータ(R2)と、
−チップ間(またはユニット間またはタイル間)接続性を提供するように構成された複数の第3ルータ(R3)であって、特に、第3ルータは、個々のデータパケットが備えるルートペイロードに従ってイベントを分配するように構成されている、複数の第3ルータ(R3)と、
を備える。
【0026】
本発明の上述の特徴および他の特徴、側面、ならびに利点が、下記の記載、添付の特許請求の範囲、および添付の図面を参照することにより理解されるであろう。
【図面の簡単な説明】
【0027】
図1】本発明の実施形態による、例示のマルチコアネットワークの構造を例示する概観図を示す。
図2】本発明の実施形態による、コアルータR1上で、対応するコアの中で生成されたイベントによりインスタンス生成されたプロセスの図を示す。
図3】本発明の実施形態による、チップコアの1つの中で生成されたイベントによりチップルータR2上でインスタンス生成されたプロセスの図を示す。
図4】本発明の実施形態による、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントによりチップルータR2上でインスタンス生成されたプロセスの図を示す。
図5】本発明の実施形態による、メッシュルータR3上で、対応するチップの中のニューロンにより生成されたイベントによりインスタンス生成されるプロセスの図を示す。
図6】本発明の実施形態による、メッシュルータR3の北または南ポートに到達する、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントにより、R3上でインスタンス生成されたプロセスの図を示す。
図7】本発明の実施形態による、メッシュルータR3の東または西ポートに到達する、相互接続されたチップのいずれかの中のニューロンにより生成されたイベントにより、R3上でインスタンス生成されたプロセスの図を示す。
図8】本発明の実施形態による、1つのニューラルネットワークのアーキテクチャを例示する図を示す。
図9】本発明の実施形態による、多数のニューロンピクセルと、コアの外からニューロンピクセルにブロードキャストされる信号のフローとを例示する図を示す。
図10】本発明の実施形態による、1つのコアと、当該コアの中でスパイクが生成されたときの信号のフローとのブロック図を示す。
図11】本発明の実施形態による、1つのコアと、当該コアによりスパイクが受信されたときの信号のフローとのブロック図を示す。
図12】本発明の実施形態による、1つのコアと、コアメモリをプログラムするためおよびニューロンを構成するために使用される信号のフローとのブロック図を示す。
図13】本発明の実施形態による、3レベルの階層規模および分岐(ツリー)をもつ階層型構造のメッシュを示す。
図14】本発明の実施形態による、階層型構造に編成された64個のコアをもつチップと、通信フローとの例のブロック図を示す。
図15】本発明の実施形態による、コアおよびルータ間の通信フロー、ならびにパケット構造の詳細を示す。
図16】本発明の実施形態による、ソースニューロンから宛先ニューロンへのイベントのルーティングの例を示す。
図17】モジュール配列された複数の計算ノードを例示する図を示す。
【発明を実施するための形態】
【0028】
本発明の実施形態は、スケーラブルニューラルネットワークのための分散型メモリおよび異種メモリ構造を備えVLSI実装可能なイベント駆動型ニューラルアーキテクチャを提供する。階層型ルータアーキテクチャは、マルチコアチップ上に分散した複数のコアの中および間で各ノードを相互接続するための能力と、時間効率のよい戦略とを提供する。各コアに分散したメモリおよび各コアにおいてブロードキャストされるイベントが、膨大なファンアウトを提供して、生物学的にもっともらしいモデルの典型的な構造的制約をもつ大規模ニューラルネットワークを実装する。完全に非同期のルータおよびプログラミングファブリックは、差し迫ったオフライン学習のためのシナプス計算の高速演算を可能にする。
【0029】
本願明細書で使用されるニューロンおよびシナプスという用語は、生物学上のニューロンおよびシナプスをシミュレートする回路を表す。電子ニューロンは、関連したシナプスの貢献度を合計してスパイクイベントを発生させる。本発明の実施形態による電子ニューロンおよびシナプスを備える神経形態学的システムは、生物学的ニューロンをモデルとする様々な処理要素を含んでもよい。シナプス接続性を格納するためにアナログニューロンおよびCAMモジュールを使用する、本発明の特定の例示的実施形態が本願明細書に記載される。本発明は、ニューロンおよびシナプスの計算要素に限定されない。本発明の実施形態によるイベント駆動型の計算システムは、複数の入力イベントを処理して単一の出力イベントを発生させる任意の非同期計算ノードを使用することができる。さらに、本発明は、情報共有のために膨大なファンアウトを必要とする任意の種類の超並列型の混成信号イベントに基づく計算をサポートする。
【0030】
本発明の実施形態によれば、完全非同期の回路実装がルータに使用されるが、本発明はかかる実装に限定はされない。
【0031】
本発明の実施形態によれば(例えば図1参照)、ニューラルネットワークは複数のマルチコアチップ6を備える。各チップ6は、ネットワークの接続性を格納してそれにより特定の形態のニューラル計算を実現するニューラルおよびシナプス要素をもつ多数のコア10を備える。
【0032】
各コア10は、ニューロン90一つにつき(または計算ノード90一つにつき)複数のシナプス80(またはメモリ回路80)をもつニューロンのアレイ9、シナプスアレイ8(このアレイ8、9は電子アレイ8、9の一部を形成し得る)、宛先LUT3を格納するSRAMメモリ2、およびコア(または第1)ルータR1を備える。さらに各チップ6は、チップ(または第2)ルータR2、およびメッシュ(または第3)ルータR3も備える。各ニューロン90は、対応するシナプス80により受信および受領された複数のイベントを集積し、集積された信号が始動閾値を超えるとスパイクイベントを生成する。ニューロン90の発生させたスパイクは、コアのエンコーダにより、ソースのアイデンティティを表すデジタルアドレスイベントとしてエンコードされ、R1に送信される。R1は、そのローカルLUT3に格納されている宛先情報により、イベントを処理してさらにR2に伝達するか、コアに再び伝達するかを決定する。さらにR1は、そのイベントからファンアウトを生成でき、すなわち、最大4つのイベントが生成されて、LUT SRAM2においてプログラムされた異なる宛先を割り当てられることができる。R2ルータがいずれかのコアルータR1からスパイクイベントを受信すると、R2ルータは、宛先アドレスを確認して、対応するコアルータにイベントを再び伝達するか、R3にさらに伝達するかを適宜決定する。各シナプス80は、接続されているソースニューロン90のアドレス、シナプスタイプ、およびそのシナプス効力を格納するためのnビットCAMワードを有する。1つのイベントが特定のコア10に送られると、アドレスがコア10の中のすべてのシナプス80にブロードキャストされる。格納されているアドレスがブロードキャストされたアドレスに一致するシナプス90は、対応するシナプス後ニューロン90に対して、シナプスタイプおよびシナプス効力の所定パラメータをもつPSCを生成する。なお、ファンアウトは、(1)イベントが1つのコア10を出てR1に到達するときに、そのイベントについてR1メモリがどのようにプログラムされているかに応じて、および(2)イベントがR1からコア10に到達するときに生成される。記載されるスキームは、短距離および長距離での情報共有を要求する高度相互接続型ネットワークをサポートする。
【0033】
図2は、本発明の実施形態によるR1ルータのプロセスのさらなる詳細を示す。ニューロン90がスパイクを生成すると、このスパイクのアドレスがR1に送られる。このイベントの宛先は、R1がアクセスできるLUT3に格納されている。イベントについてプログラムされている宛先に従って、R1は、イベントをコア10に送り返すか、またはイベントパケットにこのイベントの宛先を表すデジタルコードを付加することができる。所与の例では、コア10からのスパイクは8ビットアドレスイベントとして表される。付加された宛先アドレスは、12ビットコードからなり、チップシフト(dx,dy)のための6ビット、仮想ソースコアIDのための2ビット、およびチップ内宛先のための4ビットを含む。仮想ソースコアIDは、全体的なアドレス空間を広げ、イベント識別可能性を向上させ、したがってアドレス曖昧性を低減するために、コア毎ではなくニューロン毎に、各ニューロンに関し独立してソースアドレスに付加される追加のコードである。例えば、コア1のニューロン243には仮想ID=1が割り当てられ、同じコアのニューロン121には別の仮想ID、例えば2が割り当てられることが可能である。1つのスパイクイベントはさらに、SRAMメモリ2においてプログラムされているとおりファンアウトを生成することができ、各イベントは異なる宛先を割り当てられるが、同じソースアドレスを輸送する。
【0034】
R2がR1からイベントを受信すると、R2は、図3に示されているとおり、このイベントのターゲットコア10が同じチップ6の中に位置するかどうかを確認する。そうである場合、R2は、イベントパケットから読み取った宛先コア10に従ってイベントを伝達する。そうでない場合、このイベントはR3に伝達される。R2はさらに、図4に示されるとおり、他のチップ6からR3を介してイベントを受信する。これが発生すると、R2は、ソースアドレスに付加された宛先コードに従って分岐にイベントを送る。
【0035】
図5は、本発明の実施形態による、R3ルータがR2からイベントを受信したときのR3ルータの処理の詳細を示す。この例では、R3はまずx方向(東西)シフトの数を確認する。xシフトが0でない場合、R3は、dxの符号を確認して、dx>0であれば東、dx<0であれば西、の伝達の方向を決定する。次にdxが1減じられ、イベントが適切な方向に伝達される。xシフトが0の場合、R3は、dyの符号を確認して、dy>0であれば北、dy<0であれば南、伝達の方向を決定する。次に、dyが1減じられ、イベントが適切な方向に伝達される。したがって、本例では、イベントがR3に伝達されると、まず東西方向に沿ってシフトされ、次に南北方向に沿ってシフトされるように優先順位規則が設定されている。イベントは、dxおよびdy両方が0になるまでメッシュに沿って移動する。図6に示されているとおり、R3が南/北(y方向)からイベントを受信すると、上記の優先順位規則が当てはまるので、イベントをx方向に沿ってさらにシフトする必要はないと推定することができる。故に、dyの値が0になると、イベントは対応するチップのR2に伝達される。
【0036】
CAMワードは、ニューロン接続およびシナプス効力を格納するためのシナプス80として使用される。或る例では、1つのコア10は、256個のニューロンを有し、ニューロン1つにつき64個のCAMベースシナプスがある。各CAMワードは、ソースアドレスのための10ビットと、シナプスタイプのための2ビットとの12ビットからなる。1つのコアに到達するスパイクイベントは、ブロードキャストドライバによりコア全体にブロードキャストされる。各CAMは、ブロードキャストバス上のイベントと、格納されたコンテンツとを比較する。ブロードキャストされたイベントにコンテンツが一致するものは「一致状態」を出し、適切なシナプス後電流(PSC:Post−Synaptic Current)を生成する。図9では、ニューロン1のシナプス4、ニューロン16のシナプス1、およびニューロン5のシナプス5が、ブロードキャストドライバにより伝達されたものに一致するアドレスを格納しているので、これらが、対応するニューロンに対して適切な電流を生成する応答を出す。
【0037】
図10は、ニューロンアレイ9の中で生成されたスパイクに対しイベントを発するプロセスを示す。ニューロン90により生成されたスパイクは、ニューロンアドレスとしてエンコードされる。例えば、16×16ニューロンアレイの場合、スパイクは、列のための4ビットおよび行のための4ビットの8ビットとして列エンコーダ5および行エンコーダ4によりエンコードできる。このイベントは、上記説明のとおり宛先SRAM LUTを読み取ることにより宛先アドレスおよび追加のソースコアIDを得るためにまずコアルータR1へ送られる。
【0038】
図11は、1つのイベントが特定のコア10に送られるのを受けてイベントをブロードキャストするプロセスを示す。受信されるイベントは、まずR1により受信され、次にブロードキャストドライバ7によりシナプスアレイ8にブロードキャストされる。ブロードキャストドライバ7は、スパイクをコア10内のすべてのCAMに伝達し、続いてCAMが、イベントのソースアドレスを識別し、PSCを適宜生成する。
【0039】
図12は、アドレスおよびデータを行デコーダ40および列デコーダ50に送ることによりコアのメモリ3をプログラムする例を示す。CAMベースの異種メモリ構造および分散型宛先SRAM LUT3が各コア10において使用されるので、CAM/SRAMのコンテンツは、CAM/SRAMに対する標準の書き込み動作を使用して行デコーダ40および列デコーダ50により容易にプログラムできる。
【0040】
図13は、異種メモリ構造をもつ階層型ネットワークまたはルーティングファブリックの別の例を示す。ルーティングファブリックは、その葉がマルチニューロンコア10であるツリー構造6の2次元メッシュを統合する。本発明の実施形態によれば、各コア10は、スパイク入力/出力(例えばコア内接続性)のための1つのコア(または第1)ルータR1を有する。1つのコア10から同じ分岐60内の他のコア10に伝達されるイベントは、まず下位レベルの分岐ルータ(または第2ルータ)R2に送られ、次に、アドレスイベントにより輸送される宛先コードに従って1つ以上のターゲットコア10へ送られる。1つのコア10から他の分岐であるが同じチップ6の中にある他の1つ以上のコア10へ伝達されるイベントは、まずより上位の(第2)ルータR2へ送られ、次に、イベントにより輸送された宛先コードにエンコードされているとおりにより下位の分岐ルータR2へ送られる。ターゲットにできるツリーの深さおよび同じチップの中の異なるコアの数は、宛先コードとしてアドレスイベントにより輸送されるビット数に依存する。一例では、各チップ6は2次元メッシュ状に当該ツリー構造を相互接続する1つのタイルルータ(または第3ルータ)R3を有する。
【0041】
図14は、図13に記載された階層型ルーティングスキームを使用する64個のコア10からなるチップ構造の例を示す。本例では、各コア10は、ローカルコア接続のための専用(第1)ルータR1を有する。4つのコアのグループが、ツリー構造の最下位レベル分岐と定義される。これらのモジュール4つの各グループは、レベル2分岐と定義され、したがって、それぞれ16個のコア10を含む。例示のチップ6は、これらのモジュール4つのグループからなり(ツリーにおける第3レベル)、したがって、合計で64個のコア10からなる。各レベルは、当該レベルの中でのコアの通信のため、およびツリー6の他のレベルへ/からのイベント送信/受信のため、専用(第2)ルータR2を含む。
【0042】
コア10の中で生成された各イベントに割り当てられた宛先アドレスに従って、同じコア10の中の宛先をターゲットとするイベントは、コアルータR1によりルーティングされ、そうしてローカル接続性が実現される。同じレベル1分岐の中の他のコア10をターゲットとするイベントは、(第2)ルータR2に送られ、次に処理されて、対応するコア10へ伝達される。概して、ルータのメモリは、チップ6の中の任意の宛先コア10に到達するのに必要なだけイベントが各レベルのR2ルータを通ってツリーを上がるようにプログラムされる。イベントのターゲットが別のチップ6のコア10にある場合、イベントは、すべての層を通ってチップ(第3)ルータR3まで送られ、R3はそれをさらに処理してメッシュ内の適切な方向に沿って伝達する。
【0043】
図15は、ネットワーク内の1つのコア10の構造の詳細を示す。本例において、1つのマルチコアチップ6は、各コア10内に256個のニューロン90、ニューロン90それぞれに対し64個のシナプス80を備えた4つのコア10を有する。各コア10は、シナプス/ニューロンアレイ8、9、列/行エンコーダ5、4、ブロードキャストドライバ7、宛先LUT3、およびローカルコア(または第1)ルータR1を含む。ニューロンアレイ9により生成されたイベントは、8ビットアドレス(列のための4ビットおよび行アドレスのための4ビット)としてエンコードおよび表現される。ニューロンアレイ9により生成されたイベントには、10ビットの宛先アドレス(dx距離およびx方向符号のための3ビット、dyおよびy方向符号のための3ビット、宛先チップ6上のターゲットコア10、すなわちdx−dyチップに到達したらどのコア10をターゲットとするかの4ビット)およびソースアドレス識別性を増す追加のソースコアIDのための2ビットが割り当てられる。各イベントは複数回複製でき、各複製にはコアルータR1により異なる宛先アドレスを割り当てできる。本発明の実施形態において、2ビットがコアアドレスによりソースアドレスに内部的に付加され、LUT(3)を4回読み取るために使用される。こうして、異なる12ビット宛先アドレスおよびコアIDが各複製に付加される。ソース8ビットイベントアドレスは、LUT3から読み取られた12ビットデータとともに、20ビットイベントの単一パケットとして送られ、その後(第2)ルータR2へ伝達される。(第3)ルータR3からルータR2に到達するイベントは、図9に記載されたとおり宛先コアにブロードキャストされる。
【0044】
図16は、ソース計算ノードから宛先ノードへのイベントのルーティングの例を示す。図13に示された階層型マルチレベルスキームに従うことにより、任意の1つのチップ6内でノード90により生成されるイベントに特定の宛先が割り当てられる。イベントはさらに、複数回複製され、各複製に異なる宛先が割り当てられる。本例では、白丸で示されたノード90により生成されたイベントに異なる4つの宛先が割り当てられ、4つのマルチチップ6に送られる。複製イベントのうちの1つは、同じチップ6上の別のコア10に伝達される(よってそのルートはR1−R2−R1)。他の3つのイベントは、別々のチップ6に伝達されて、複数のコア10上でローカルに分配される(よってそのルートはR1−R2−R3−…−R3−R2−R1)。
【0045】
図17は、異種メモリ構造をもつ階層型ルーティングファブリックまたはネットワークの別の例を示す。本例において、自己相似計算アーキテクチャは、必要な計算を実装するためにローカルメモリ80にアクセスし異種混合性のルーティングシステムの階層(R1、R2、R3)により相互接続された複数のイベントベース計算ノード90からなる。ノード98は、前記複数のノード90、ローカル(または第1)ルータR1、および前記ルータR1によりアクセスされるルータメモリ3からなるコア10に配列される。コア10の複数のグループが、コア10の前記グループ、ローカル(または第2)ルータR2、および前記ルータR2によりアクセスされるルータメモリ32からなる複数のタイル(またはチップまたはユニット)6に配列される。前記タイルモジュール6は、自己相似構造を形成するよう任意に組み合わされ、ルータR2、R3は、ソースアドレスを、さらに伝送されるべきパケットにルートデータを付加するために使用されるローカルメモリエントリ3、32、33に対するポインタとして使用する。さらに、前記ルータR2、R3は、より上位レベルから伝達されたイベントを処理して、それらをパケットに含まれたルートデータに従ってより下位レベルの宛先をターゲットにするようにルーティングするようプログラムされる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17