(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-30
(45)【発行日】2022-10-11
(54)【発明の名称】超伝導ニューロモルフィックコア
(51)【国際特許分類】
G06N 3/063 20060101AFI20221003BHJP
G11C 11/54 20060101ALI20221003BHJP
G11C 11/44 20060101ALI20221003BHJP
G06G 7/60 20060101ALI20221003BHJP
【FI】
G06N3/063
G11C11/54
G11C11/44
G06G7/60
(21)【出願番号】P 2021542530
(86)(22)【出願日】2020-01-13
(86)【国際出願番号】 US2020013359
(87)【国際公開番号】W WO2020154128
(87)【国際公開日】2020-07-30
【審査請求日】2021-07-30
(32)【優先日】2019-01-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520128820
【氏名又は名称】ノースロップ グラマン システムズ コーポレーション
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】チルハート、ポール ケントン
【審査官】金田 孝之
(56)【参考文献】
【文献】国際公開第2018/044562(WO,A2)
【文献】特開2018-005297(JP,A)
【文献】米国特許出願公開第2016/0350643(US,A1)
【文献】Michael L. Schneider et al.,Tutorial: High-speed low-power neuromorphic systems based on magnetic Josephson junctions,Journal of Applied Physics,2018年10月25日,Vol. 124, 161102,https://aip.scitation.org/doi/10.1063/1.5042425
【文献】小野美 武ほか,ストカスティック論理ニューロ演算用単一磁束量子アップダウンカウンタの実証,電子情報通信学会2008年総合大会講演論文集,エレクトロニクス2,社団法人電子情報通信学会,2008年03月05日,p. 62,ISSN: 1349-1369
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/063
G11C 11/54
G11C 11/44
G06G 7/60
(57)【特許請求の範囲】
【請求項1】
超伝導ニューロモルフィックコアであって、
単一磁束量子(SFQ)パルスを受信するように構成された入力ラインと、
ニューロモルフィックコアによってシミュレートされる単一のニューロンに入力を提供する異なる神経シナプスに対応する列と、前記ニューロモルフィックコアによって逐次的にシミュレートされる異なるニューロンに対応する行とにおいてシナプス重み値を格納するように構成された超伝導デジタルメモリアレイと、
累積期間中にメモリアレイから取得されたシナプス重み値を合計するように構成された超伝導デジタルアキュムレータと、
合計重みアキュムレータ出力をアナログ信号に変換するように構成された超伝導デジタル-アナログ変換器と、
閾値を超える前記アナログ信号に基づいて、SFQパルスを前記ニューロモルフィックコアの出力として提供するように構成された超伝導アナログ細胞体回路構成と
を備える超伝導ニューロモルフィックコア。
【請求項2】
前記メモリアレイのそれぞれの異なる行は、人工ニューラルネットワークの個々の層におけるシミュレートされたニューロンのためのシナプス重み値を格納する、請求項1に記載のニューロモルフィックコア。
【請求項3】
前記メモリアレイの第一の行は、人工ニューラルネットワークの層における第一のシミュレートされたニューロンのためのシナプス重み値を格納し、前記メモリアレイの第二の行は、前記人工ニューラルネットワークの前記同じ層における第二のシミュレートされたニューロンのためのシナプス重み値を格納する、請求項1に記載のニューロモルフィックコア。
【請求項4】
前記ニューロモルフィックコアへの入力として提供されるSFQパルスを、
前記ニューロモルフィックコアが、シミュレートされている人工ニューラルネットワークの次の層のニューロンへの入力を処理する次のシステムサイクルの開始、又は
前記メモリアレイが、前記メモリアレイへの列選択入力としてそれらを逐次的に受信するために利用可能となること
の何れかまで格納するように構成された入力スパイクバッファをさらに備える、請求項1に記載のニューロモルフィックコア。
【請求項5】
細胞体回路構成は、2つのみのジョセフソン接合及び3つのみのインダクタを含む、請求項1に記載のニューロモルフィックコア。
【請求項6】
細胞体回路構成は、前記ニューロモルフィックコアによって逐次的にシミュレートされる異なるニューロンの個々の細胞体をそれぞれシミュレートする細胞体回路のアレイを含む、請求項1に記載のニューロモルフィックコア。
【請求項7】
前記アレイ内の各細胞体回路は、2つのみのジョセフソン接合及び3つのみのインダクタを含む、請求項6に記載のニューロモルフィックコア。
【請求項8】
ニューラルネットワークの少なくとも4つの個々の層内の少なくとも4つのニューロンを逐次的にシミュレートするように構成される、請求項1に記載のニューロモルフィックコア。
【請求項9】
少なくとも4つの行のメモリアレイを有する、請求項8に記載のニューロモルフィックコア。
【請求項10】
細胞体回路構成は、前記ニューロモルフィックコアによって逐次的にシミュレートされる異なるニューロンの個々の細胞体をそれぞれシミュレートする少なくとも4つの細胞体回路のアレイを含む、請求項9に記載のニューロモルフィックコア。
【請求項11】
方法であって、
入力信号を、シミュレートされたニューロンによって生成された活動電位を表す入力単一磁束量子(SFQ)パルスとして受信するステップと、
超伝導デジタルメモリアレイに、前記入力信号に基づいてシナプス重み値にアクセスするステップと、
ある期間中にアクセスされたシナプス重み値を累積するステップと、
累積された重み値をアナログ信号に変換するステップと、
前記アナログ信号と閾値との比較に基づいて、出力信号を出力SFQパルスとして発出するステップと
を含む方法。
【請求項12】
第二の入力信号を、異なるシミュレートされたニューロンによって生成された活動電位を表す第二のSFQパルスとして受信するステップと、
前記第二の入力信号を、次のシステムサイクルを示すシステムサイクルクロック又はその利用不可能性を示すメモリアレイからの信号の何れかに基づいてバッファに格納するステップと
をさらに含む、請求項
11に記載の方法。
【請求項13】
複数の追加の入力信号を、他のシミュレートされたニューロンによって生成された活動電位を表すSFQパルスとして受信するステップと、
前記複数の追加の入力信号を、メモリアレイの対応する異なる列選択ラインへの定期的な逐次的放出のためにバッファ内に格納するステップと
をさらに含む、請求項
11に記載の方法。
【請求項14】
前記バッファは、先入先出(FIFO)バッファとして構築されるとともに、個々の期間中に受信された入力信号を2つのバイナリ状態の一方として表し、且つ他の個々の期間中に受信された入力信号がないことを前記2つのバイナリ状態の他方として表して、スパイク到来時間間のタイミング関係を保持するように構成される、請求項
13に記載の方法。
【請求項15】
前記累積された重み値をアナログ信号に変換する前記ステップは、
連続的に、又は
指定された入力カットオフ時間以降に開始し、且つ累積期間の終了以前に開始すること
の一方で行われる、請求項
13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、量子及び古典的デジタル超伝導回路に関し、具体的には超伝導ニューロモルフィックコア(superconducting neuromorphic core)に関する。
【背景技術】
【0002】
デジタルロジックの分野では、よく知られており、且つ開発の進んだ相補型金属酸化膜半導体(CMOS:complimentary metal-oxide semiconductor)技術が幅広く使用されている。CMOSは、技術として成熟期に近付き始めているため、速度、消費電力計算密度、相互接続帯域及び他の点でさらに高性能化につながり得る代替案に関心が寄せられている。CMOS技術の代替案は、超伝導体に基づく単一磁束量子回路構成を含み、これは、超伝導ジョセフソン接合(JJ:Josephson junction)を利用し、典型的な信号電力は、約4ナノワット(nW:nanowatt)であり、典型的データレートは、20ギガビット毎秒(Gb/s:gigabit per second)以上であり、動作温度は、約4kケルビンである。
【0003】
ニューロモルフィックコンピューティングは、人及び他の動物の生物神経系中に存在する神経生物学的構成を模倣するように、知覚、運動制御又は多感覚統合のための神経系モデルを実装するための超大型集積(VLSI:very-large-scale integration)システムの使用を指し、これは、電子アナログ回路、電子デジタル回路、ミックスモードアナログ/デジタルVLSI回路及び/又はソフトウェアシステムを含む。特に、ニューロモルフィックコンピューティングは、個々の神経、回路及び/又は神経構成の形態学及び機能に関する知見を新規な計算プラットフォームの開発に応用しようとするものである。このような知見は、情報がどのように提示されるか、これらがダメージに対する堅牢性にどのように影響を与えるか、これらが学習と発達とをどのように組み込むか、これらが局所変化にどのように適応するか(適応力)及びこれらが進化的変化をどのように促進するかにニューロン及び神経構造がどのような影響を与えるかに関する洞察を含み得る。例えば、酸化物ベースのメモリスタ、スピントロニックメモリ、限界スイッチ及びトランジスタを用いてハードウェアレベルでニューロモルフィックコンピューティングを実装するための努力がなされてきた。最大100万個のニューロンのネットワークをシミュレートできる大規模ニューロモルフィックプロセッサが設計されている。しかしながら、これらの設計は、その規模を実現するために多くのチップ又は簡略化されたニューロン表現を必要とする。
【0004】
コンピュータシステムの中央処理ユニット(CPU:central processing unit)は、専門タスクのための、アクセラレータと呼ばれる特定用途コプロセッサで補足できる。生物学的に着想された計算モデルを用いてタスクを完遂するためにニューラルネットワークを組み込む、このような専用ハードウェアユニットの開発が進められている。このようなニューラルネットワークアクセラレータは、ソフトウェア機械学習アルゴリズムにより、必要なデジタル数学を迅速に実行するように設計される。これらのシステムは、生物学的ニューロンをモデル化しようとするのではなく、データの移動及び演算の実行を最適化することにより、ソフトウェア定義ニューラルネットワークをより迅速に処理することを試みる。ソフトウェア定義ニューラルネットワークで現在使用されているニューロンモデルは、大幅に単純化されており、そのため、ネットワーク全体で幾つかの能力が失われている。これは、算術アクセラレータを利用したとしても、大規模ソフトウェア定義ニューラルネットワーク内の全ニューロンの複雑なニューロンモデルをソフトウェアで計算することが現実的ではないからである。例えば、多くの既存のニューラルネットワークは、「リーキ積分発火(leaky integrate and fire)」型ニューロンモデル等、生物学的ニューロンの複雑な挙動及び異なる状態の全てを完全に複製できない単純化されたニューロンモデルを使用している。リーキ積分発火モデルは、神経の「積分発火」モデルを、膜電位に「リーク」という項を追加することによって改良したものであり、細胞内である平衡に到達しないときに膜を通して起こるイオンの拡散を表し、したがって時間依存メモリを実装する。しかしながら、このモデル及び他の単純化モデルは、ニューラルネットワーク内の正確な神経機能性を十分に可能にすることができない。
【0005】
直列コンピュータでのニューラルネットワーク計算は、多くの用途にとって有益な結果をもたらすには速度が低すぎ、並列構成の耐故障性の利点を欠く。しかしながら、大規模ニューラルネットワーク計算に必要な超並列構成の室温作動半導体電子部品の実装では、関係する相互接続の数が多いため、電力散逸の問題が発生する。超伝導ジョセフソン回路は、はるかに低い電力散逸でより高速に動作できるが、これまで、超伝導ニューラルネットワークの分野における研究の焦点は、細胞体(soma)回路等のニューロン成分の開発又はプログラマブル若しくはスケーラブルでない概念証明型ネットワークの何れかであった。
【0006】
ニューロン発火のレート符号化モデルでは、情報は、入力スパイクの提示頻度により、すなわち特定の期間内に神経に提示される入力スパイクの数で運ばれ、必ずしもスパイク到達間のタイミング間隔によるとは限らない。それに対して、ニューロン発火の時間符号化モデルでは、情報は、精密なスパイクタイミング又は高周波数発火レート変動によって運ぶことができる。したがって、例えば時間符号化により、ビットストリーム000111000111により表現される1つの入力スパイクシーケンスは、同じ長さの時間に送達されるビットストリーム001100110011により表現される他の入力スパイクシーケンスと、何れのシーケンスも平均発火レートがある期間あたり6スパイクと同じであっても異なる意味を有することができる。
【発明の概要】
【0007】
1つの例は、超伝導ニューロモルフィックコアを含む。コアは、単一磁束量子(SFQ:single flux quantum)パルスを受信する入力ラインと、コアによってシミュレートされる単一のニューロンに入力を提供する異なる神経シナプスに対応する列と、コアによって逐次的にシミュレートされる異なるニューロンに対応する行とにおいてシナプス重み値を格納する超伝導デジタルメモリアレイとを含む。コアは、累積期間中にメモリアレイから取得されたシナプス重み値を合計するように構成された超伝導デジタルアキュムレータと、合計重みアキュムレータ出力をアナログ信号に変換するように構成された超伝導デジタル-アナログ変換器とをさらに含む。コアは、閾値を超えるアナログ信号に基づいて、SFQパルスをコアの出力として提供するように構成された超伝導アナログ細胞体回路構成をさらに含む。
【0008】
他の例は、方法であって、入力信号は、シミュレートされたニューロンによって生成された活動電位を表す入力SFQパルスとして受信される、方法を含む。シナプス重み値は、入力信号に基づいて、超伝導デジタルメモリからアクセスされる。ある期間中にアクセスされたシナプス重み値は、累積され、及び累積された重み値は、アナログ信号に変換される。その後、アナログ信号と閾値との比較に基づいて、出力信号は、出力SFQパルスとして発出される。
【0009】
また別の例は、プログラマブルなハードウェアベースの人工ニューラルネットワークを含む。ニューラルネットワークは、少なくとも1つのニューロモルフィックコアを有する超伝導集積回路を含み、少なくとも1つのニューロモルフィックコアは、ニューラルネットワーク内の複数のニューロンを逐次的にシミュレートするように構成される。少なくとも1つのニューロモルフィックコアは、超伝導デジタルメモリアレイと、超伝導アナログ細胞体回路構成とを有する。メモリアレイは、1システムサイクル中に少なくとも1つのニューロモルフィックコアによってシミュレートされる特定のニューロンの特定のシナプス入力に関連付けられるプログラマブルな重みを表す、デジタルメモリアレイ内のワードを選択するように構成された列選択ライン及び行選択ラインを有する。細胞体回路構成は、デジタルメモリアレイからの処理された出力に基づいて、SFQパルスをニューロモルフィックコアの出力として提供するように構成される。
【図面の簡単な説明】
【0010】
【
図1】例示的なニューロモルフィックコアのブロック図である。
【
図3】例示的なニューラルネットワークの概念図である。
【
図5】例示的なニューロモルフィックコアのブロック図である。
【
図6】ニューロモルフィックコアで使用される例示的な細胞体アレイの回路図である。
【
図7】スパイクバッファを有さないか、又はスパイクバッファ内にスパイクを保持するように構成されず、累積が完了したときにのみ累積された重みを細胞体に適用するように構成されたニューロモルフィックコアの動作を図解するフロー図である。
【
図8】スパイクバッファを有し、累積が完了したときにのみ累積された重みを細胞体に適用するように構成されたニューロモルフィックコアの動作を図解するフロー図である。
【
図9】スパイクバッファを有さないか、又はスパイクバッファ内にスパイクを保持するように構成されず、累積された重みを細胞体に連続的に適用するように構成されたニューロモルフィックコアの動作を図解するフロー図である。
【
図10】スパイクバッファを有し、累積された重みを細胞体に連続的に適用するように構成されたニューロモルフィックコアの動作を図解するフロー図である。
【
図11】スパイクバッファを有し、累積された重みを細胞体に連続的に適用するように構成され、バッファ制御がパイプライン型制御と異なるループで動作するニューロモルフィックコアの動作を図解するフロー図である。
【
図12】
図3に示される例示的なネットワークの隠れ層のように各層内に4つのニューロンのニューラルネットワークを共同で作る、4つのニューロモルフィックコアの直接ネットワークを図解するブロック図である。
【
図13】デジタル分散ネットワークを介して大規模ニューラルネットワークを共同で作る多数のニューロモルフィックコアのネットワーキングを図解するブロック図である。
【
図14A】ニューロモルフィックコアのパイプライン型動作の例を図解するタイミング図である。
【
図14B】ニューロモルフィックコアのパイプライン型動作の例を図解するタイミング図である。
【
図15A】ニューロモルフィックコアのパイプライン型動作の他の例を図解するタイミング図である。
【
図15B】ニューロモルフィックコアのパイプライン型動作の他の例を図解するタイミング図である。
【
図15C】ニューロモルフィックコアのパイプライン型動作の他の例を図解するタイミング図である。
【
図15D】ニューロモルフィックコアのパイプライン型動作の他の例を図解するタイミング図である。
【
図15E】ニューロモルフィックコアのパイプライン型動作の他の例を図解するタイミング図である。
【発明を実施するための形態】
【0011】
超伝導ニューロモルフィックパイプライン型プロセッサコアは、細胞体、軸索、樹状突起及びシナプス結合の機能性を提供することにより、ハードウェアにおいてニューラルネットワークを構築するために使用され得る。超伝導ニューロモルフィックパイプライン型プロセッサコアの単一のインスタンスは、既存の設計よりも効率的であり且つ生物学的に示唆的である、超伝導ハードウェア内の1つ又は複数の生物学的ニューロンのプログラマブル且つスケーラブルなモデルを実装することができる。説明されるニューロモルフィックコアは、ハードウェアにおいて様々な大規模ニューラルネットワークを構築するために使用され得る。例えば、1つのコア又はおそらく数百万ものニューロンを表すコアのネットワークは、マイクロ波周波数クロック速度での超伝導動作のために低温空間内で極低温まで冷却可能な1つの超伝導集積回路(「チップ」)又はチップの集合の上に製作できる。ニューロモルフィックコアの生物学的に示唆的な動作は、ネットワークに対して、ソフトウェアベースのニューラルネットワークでは実装が難しく、且つ室温作動半導体電子機器を使用して実現不能であろう追加の能力を提供する。説明されるニューロモルフィックコアを構成する超伝導電子機器は、それが、同等の従来技術の半導体ベースの設計で可能なものよりも1ワットあたり1秒間に多くの動作を行うことを可能にする。
【0012】
スケーラビリティは、ニューラルネットワーク回路設計において大きい課題となる。特に、超伝導ループを組み合わせて単純なニューラルネットワークを作る方式は、大規模ニューラルネットワーク、すなわち複雑な人工知能及び深層学習コンピューティングへの応用に必要な何千、何十万又は何百万ものニューロンに拡張することができない。これは、特に現在の製造技術では、多数のニューロンの各々に何百もの他のニューロンからの入力が供給されるような構成をサポートするためのニューロン成分間の多数の相互接続に対応するのに十分な配線層が提供されないからである。このような相互接続ルーティングをたとえ現在の製造技術の制約内で設計できたとしても、この相互接続ルーティングには、必然的に1つのチップ上の大きいスペースが費やされるため、そのチップにおいて、大規模なニューラルネットワークをサポートするのに十分なニューロンを設置することができない。
【0013】
一部には、人工ニューラルネットワーク内の全ての論理的ニューロンが同時に計算により表現されなければならないわけではないことと、したがってハードウェア共有が容認可能で有利な方式となり得ることとに基づいて、本願で説明するシステム及び方法は、これらのスケーラビリティの課題に対処すると同時に、プログラマビリティを含む他の利点も提供する。本願で説明するシステム及び方法は、超伝導デジタルメモリのアレイがアナログ超伝導ロジックとして実装される細胞体への入力のためのシナプスとしてさらに機能でき、また本明細書に記載の特定の配置により、1つの細胞体又は複数の細胞体のアレイは、ニューラルネットワーク内の多くの異なる論理的ニューロンの機能性を提供できるという認識を利用するものであり、効率面での利点を提供する。
【0014】
大型の有用な超伝導メモリがないことは、超伝導ニューラルネットワークの創出における設計決定に影響を与えてきた。本願のシステム及び方法は、超伝導メモリ技術における最近の進化を活用し、超伝導デジタルメモリのアレイをニューロモルフィックコアの設計に組み込むように設計される。特に、本明細書に記載のシステム及び方法は、超伝導デジタルメモリアレイを人工神経細胞体に接続でき、超伝導デジタルメモリのアレイは、アナログ超伝導回路構成として実装された概念的細胞体に入力を提供する概念的シナプスとして動作する。メモリアレイ及び細胞体へのその接続を適切に組織化することにより、メモリアレイは、複数のニューロンのためのシナプスを表現できる。例えば、メモリアレイの列は、2つの異なるニューロン間のシナプスの接続、すなわち入力ニューロン群の出力の各々が、各入力ニューロンが概念的にそれに接続され、ニューロモルフィックコアがそれに関する出力応答を計算するニューロンの挙動にどの程度影響を与えるかを説明する特定の重みを表すことができる。メモリアレイの行は、ニューロモルフィックコアがそれについての出力応答を計算する異なるニューロンを表すことができる。したがって、メモリアレイの幅により、各ニューロンが有し得る入力シナプスの最大数が決まり、メモリアレイの深さにより、1つのニューロモルフィックコアがその出力応答を計算できるニューロンの最大数が決まる。
【0015】
図1は、例示的な超伝導ニューロモルフィックコア100を、5つの要素、すなわち入力スパイクバッファ102、シナプスメモリバンク104、パイプライン型デジタルアキュムレータ106、デジタル-アナログ変換器(DAC:digital-to-analog converter)108、及びアナログ細胞体回路構成110を含むものとして示す。アキュムレータ106とDAC 108とは、共に、超伝導メモリアレイ104を、生物学的に示唆的な超伝導細胞体回路構成110と、ニューロンのためのシナプス接続の総入力重みを累積し、その後、その結果として得られたデジタル値を比例的な超伝導電流に変換して、細胞体回路構成110に適用することによってインタフェースする。本明細書に記載されているように、コア100の1つのインスタンスは、それ自体、ニューラルネットワークを表すことができ、且つ/又はコア100の複数のインスタンスは、直接若しくは中間デジタル信号分散ネットワークを用いて相互に接続してニューラルネットワークを作ることができる。コア100の各インスタンスは、信号論理的ニューロン又は図及び後述のようにニューラルネットワーク内の複数の論理的ニューロンに対応することができ、そのニューラル応答(すなわち活動)を計算することができる。
図1のニューロモルフィックコア100は、先行技術のシステムで実現できないスケーラビリティの利点を提供しながら、そのデジタル/アナログの折衷設計による追加の利点及び生物学的ニューロンの動作に対するその設計のより高い忠実性を提供する。
【0016】
図2は、整数N個の入力(左側)、4種類の素子及び単一の出力(右側)で構成される例示的モデルによるノンスパイキング人工ニューロン200の概念図を示す。ニューロン200は、ニューラルネットワーク内の多くのうちの1つであり得る。ニューロン200を構成する4つの素子は、N個のシナプスの重み記憶装置202、204、206、N個のシナプス208、210、212、樹状突起の木214及び細胞体216を含む。図の例は、3つのシナプス及びそれに対応する重み記憶装置のみを示すが、ニューロンは、省略記号で示されているように、これらの各々を何れの任意の数Nだけ有することもできる。各重み記憶装置202、204、206は、例えば、レジスタであり得、これは、多くのそのようなレジスタを含む、より大型のメモリ内のレジスタであり得る。各シナプス208、210、212は、例えば、入力された活動電位をシナプスの重みに応じて変調するマルチプライヤであり得る。ニューロン200の樹状突起の木214は、例えば、重み付けされた入力活動電位を合計して、細胞体216への1つの入力を作るアキュムレータであり得る。細胞体216は、例えば、樹状突起の木214の1つの入力を閾値と比較し、それによりニューロン200の出力として活動電位を発出するべきか否かを特定するように構成された比較器であり得る。モデル200において、入力される活動電位及び重みの何れも、例えば、デシマル値として表現でき、その後、これらは、相互に乗じられて、各シナプスによる細胞体への寄与が特定される。
【0017】
図3は、重み付けされたシナプスにより相互に接続された少なくとも3つの層のニューロンとして組織化された例示的な人工ニューラルネットワーク300の概念図を示し、
図3の図では、各ニューロンは、円として示され、各重み付けされたシナプスは、2つのそれぞれのニューロン間の直線として示されている。層は、入力ニューロンの少なくとも1つの層302、出力ニューロンの少なくとも1つの層304並びに入力及び出力層302、304間の、ニューラルネットワーク300への入力を適当な出力に変換する機能を有する「隠れ」ニューロンの1つ又は複数の層306、308、310、312を含む。隠れニューロンの複数の層が可能であり、それによりコンピュータビジョン、発話認識、自然言語処理、オーディオ認識、ソーシャルネットワークフィルタリング、機械翻訳、生物情報学、創薬設計、医用画像分析、材料検査、ゲーム及びシミュレーション等の応用における「深層学習」ソリューションが可能となる。幾つかの例において、隠れ層は、わずかに1つでも十分であり、また
図3の図には4つの隠れ層306、308、310、312が示されているが、幾つかの例は、5つ以上の隠れ層を含み得る。
【0018】
ニューラルネットワーク300は、教師付き又は教師なしトレーニングを用いて訓練できる。教師付きトレーニングは、誤差逆伝播法によって達成でき、このような技術は、確率的勾配降下法として使用される。ネットワーク300は、フィードフォワード又は反復型であり得る。
図3は、文献中で各種の階層構造に応じて分類されている様々な種類のニューラルネットワーク構成の一例のみを示す。そのため、同じ構成要素を異なる方法で接続することにより、異なるネットワーク機能を実現できる。ニューラルネットワーク階層構造の例は、フョードル・ヴァン・ヴィーン(Fjodor van Veen)の2016年アシモフ研究所(Asimov Institute)の図又はノーマン・アハドら(Nauman Ahad et al.)による論文「無線ネットワーク内のニューラルネットワーク:技術、応用及びガイドライン(Neural networks in wireless networks:Techniques,applications and guidelines)」、68 ジャーナル・オブ・ネットワーク・アンド・コンピュータ・アプリケーションズ(J.NETW.COMPUT.APPL.)(2016年)に記載されている。
【0019】
ニューラルネットワーク300内の各層は、時間的に分離されていると考えることができ、すなわち、層312内のニューロンの出力は、層310内のニューロンの出力後に計算でき、層310内のニューロンの出力は、層308内のニューロンの出力後に計算できる等である。したがって、本明細書に記載されているように、1つ又は複数のニューロモルフィックコアを用いてネットワークが実装される場合、1つのニューロモルフィックコア100のハードウェアは、異なる層内の複数のニューロン、例えば
図3のニューロンの集合314を表現するために使用できる。
図1のローカルメモリ104は、ルーティングレイアウトのための天然のネットワーキング地点を提供し、これは、全ての入力がコア100のローカルメモリ104に入力されるからであり、それにより何千ものニューロンを有する大型システムのためのルーティングが容易になる。
図9は、例として4つのコアの接続を示すが、図の例を拡張することにより、且つ相互接続の代わりに超伝導デジタル分散ネットワークを用いることにより、
図10に示されるようにより多くのコアを接続できる。
【0020】
図4は、例示的なニューロン400の他の概念図を示し、これは、
図2の例示的ニューロン200のものと同様であるが、乗算シナプスが排除されている点が異なり、これは、デジタルモデルでは、全ての入力信号(すなわち「スパイク」)が論理ハイ高値(例えば、論理「1」)若しくは論理ロー値(例えば、論理「0」)であるか、又はレシプロカル量子論理(RQL:reciprocal quantum logic)システムで論理キャリアとして表現され、入力信号は、信号磁束量子(SFQ)パルス又はSFQパルスがないことの何れかからなるとの認識による。1又は0による重みを乗算するという不要なステップをとる代わりに、ニューロンモデル400は、基本的に、入力信号ラインをシナプス重み記憶装置402、404、406に直接供給されるイネーブルラインに変えて、それぞれに記憶された重み値の出力をイネーブルするか又はイネーブルしないようにする。樹状突起の木414と細胞体416とは、
図2のニューロン200の対応する構成要素214、216に関して前述したように挙動し、構成できる。
図4に示されるニューロンモデルの再配置は、
図1のコア100での信号の扱いをよりよく表し、シナプスの重みは、入力ラインによって超伝導メモリアレイ104から有効に選択でき、スパイクをSFQパルスの形態で提供できる。したがって、重みは、デシマル値として表現されるが、入力される活動電位は、バイナリとして表現されるため、モデル200と比べて、モデル400ではデジタル乗算の必要がなくなり、且つ依然として生物学的ニューロンを密接に複製する。
【0021】
本明細書に記載の種類のニューロモルフィックコア、例えば
図1のコア100は、その挙動を組織化するための複数のクロックを用いて動作できる。デジタルクロックは、本明細書では論理クロックとも呼ばれ、ニューロモルフィックコアのデジタルコンポーネントによってそれらの動作を調整するために使用できる。このようなデジタルクロックは、ニューロモルフィックコアで使用される最速クロックであり得、他のクロックの基礎をなすことができる。幾つかの例に含めることのできる他のクロックは、活動電位クロックであり、これは、リズムクロックと呼ぶこともできる。活動電位クロックは、ニューロモルフィックコアがどの程度の頻度でスパイクを生成するか(すなわちニューロンがどの程度の頻度で発火するか)を決定でき、必要に応じてニューロンの集合の発火を組織化し、同期することに役立ち得る。活動電位クロックの期間は、スパイクバッファの大きさ、細胞体回路の不応期、ニューロモルフィックコアのパイプラインのレイテンシ、ネットワークの制御回路構成、ニューロンの所望のスパイキング頻度及び他の要素によって決定できる。活動電位クロックの期間は、例えば、デジタルクロックの整数倍であり得る。複数の活動電位クロックは、ニューロモルフィックコアにより、ネットワークを異なるレートで発火するニューロン(すなわち異なる頻度で活動電位を生成する)で実装するために使用できる。幾つかの例に含めることのできる他のクロックは、システムクロックであり、これは、層クロックと呼ぶこともできる。システムクロックは、ニューラルネットワークの何れの層が現在ニューロモルフィックコアによって処理(すなわち計算)されているかを特定できる。システムクロックは、例えば、活動電位クロックの整数倍であり得る。厳格な層に組織化されない1つ又は複数のニューロモルフィックコアで実装されるネットワークは、必ずしもシステムクロックを利用しなくてもよい。他のクロックの多くの組合せが可能である。
【0022】
図1を再び参照すると、他のニューロン(すなわちコア100によってその応答が計算されるニューロンの前シナプスであるニューロン)からのスパイクは、入力スパイクバッファ102によって入力ライン112に沿って受信できる。図の例では、5つの入力ラインが示されているが、他の例は、それより多い又は少ない入力ラインを有することができる。入力ラインの数(列イネーブル信号とも呼ばれる)は、コア100に接続される前シナプスニューロンの数に対応することができる。入力スパイクバッファ102は、超伝導デジタルロジック、例えばRQLファミリのロジックとして実装でき、コア100の状態に応じて、入力スパイクを後に使用するために他のニューロンからラッチするか若しくは直ちに使用するためにそれがシナプスメモリバンク104を通過できるようにするか又はその両方となるように構成できる。バッファ102は、例えば、Dラッチのアレイとして実装できる。
【0023】
幾つかの例において、入力スパイクバッファ102は、先入先出(FIFO:first-in,first-out)バッファとして構築でき、各サイクルにバッファへの1つのエントリがある。スパイクが受信されたサイクルでは、例えば「1」のエントリが入力スパイクバッファ102に追加され、これは、シナプスメモリバンク104内で何れのシナプスがイネーブルされるかを示す。スパイクが受信されないサイクルでは、例えば「0」のエントリをバッファに追加できる。換言すれば、バッファは、それぞれの期間中に受信された入力信号を2つのバイナリ状態の一方として表現し、且つ他のそれぞれの期間中に入力信号が受信されなかったことを2つのバイナリ状態の他方として表現できる。入力スパイクが受信されなくても、新しいエントリをデジタルサイクルごとに追加することにより、スパイク到来時刻間のタイミング関係がバッファ102に保持される。同じデジタルサイクル中に複数のスパイクが受信された場合、これらは、次のデジタルサイクルにわたり1回に1つバッファに追加される。幾つかの例において、デジタルクロックは、活動電位クロックより大幅に速い可能性があり、それにより、入力スパイクバッファ102内の隣接スパイクのタイミングは、細胞体回路構成110にとってほぼ同時であるように見える。追加の制御及び機能ユニットをニューロモルフィックコア100に追加してその並列性を増大させることにより、ニューロモルフィックコア100は、一度に複数の入力スパイクを処理することができ、したがって複数のスパイクが活動電位サイクルの終わり近くに到来した場合等にスパイクを取りこぼすことを回避できる。このような場合、スパイクが失われるのは、それらが活動電位又はシステムサイクルの終了前に利用可能な時間中に処理できるものより多くのスパイクを受信する本発明の例のみに限られ、これについては、
図14A、14B及び
図15A~
図15Eのタイミング図を参照しながらより詳細に説明する。幾つかの例において、入力スパイクバッファ102は、1つの層内で生成されたスパイクを記憶するために使用でき、それによりこれらを次の層のニューロンに適用することができる。バッファは、所望の数のデジタルサイクルに対応するために様々な大きさで実装できる。バッファ102は、複雑なスパイク到来時間の扱いが不要であるか又は望まれない場合、コア100の特定の実装形態において省くこともできる。入力スパイクがラッチされるか、通過されるか又はそれらの両方であるかを問わず、入力ライン112の特定のラインに到来したスパイクは、コラムイネーブルライン114の対応するラインに伝送できる。
【0024】
シナプスメモリバンク104は、ニューロモルフィックコア100により実装されるニューロンに接続される各シナプスに関する重みを記憶するように構成された超伝導デジタルランダムアクセスメモリであり得る。例えば、メモリアレイの1つの行を構成するメモリワードは、それぞれ特定のシナプスの重みに対応できる。何れのワードを取得するかを選択する列イネーブルライン114は、同じ信号を入力スパイク(すなわち入力スパイクストレージ102によって提供されるか、又はストレージ102がない場合、前シナプスニューロンから直接提供される)と同じ信号であり得、対応する前シナプスニューロンの位置は、したがって、何れのワードがイネーブルされるかを特定できる。パルスが列入力(
図1において「他のニューロンからのスパイク」と表示される)で受信されると、対応する重み値は、列出力ライン116の対応する列出力上のメモリから取得される。列入力上でパルスが受信されない場合、列出力ライン116の対応する列出力上でゼロの重みが取得される。
【0025】
ニューロモルフィックコアが層状ニューラルネットワークの一部をシミュレートする例では、メモリ104の行の各々は、したがって、より大きいニューラルネットワークの、コア100の特定のインスタンスにより表現される何れかの論理的ニューロンがその一部である特定の層に対応できる。したがって、行イネーブルは、状態機械制御回路構成(図示せず)により提供でき、その応答がコア100のインスタンスにより計算される現在の論理ニューロンに対応できる。したがって、シミュレートされたニューラルネットワーク内の層の数(例えば、
図3を参照されたい)は、メモリ104内の行の数及び同様に状態機械制御回路構成(図示せず)からメモリ104に入る行イネーブル制御ライン(
図1では図示せず)の数を特定できる。このようにして、単独の物理的ニューロンコア100は、ネットワーク全体を通した多くの論理ニューロンの活性化を時間多重化方式で計算するために使用できる。メモリ104の何れの行が活性化されるかは、状態機械制御回路により制御でき、これは、幾つかの例において、単純にメモリの行を一度に1つ進め、連続するニューロンの全て及びしたがってニューラルネットワーク内の幾つかの例の連続層を、各行を進めながら有効に処理する。したがって、1つのコア100は、例えば、
図3の破線314で囲まれたニューロンのように、ニューラルネットワーク内のある経路内の複数のニューロンを表すように構成できる。何れかの特定の時点で経路314内の何れの特定のニューロンがコア100によってシミュレートされるかは、したがって、時間ステップにより、したがって前述の状態機械制御回路構成により特定できる。実装されるメモリの大きさの特徴は、シナプス重みの所望の数及び精度に依存する可能性がある。他の幾つかの例において、バッファに適当な変更を加えたうえで、メモリアレイの1つの行を、人工ニューラルネットワークのある層内の第一のシミュレートされたニューロンのためのシナプス重み値を記憶するために使用でき、メモリアレイの他の行は、人工ニューラルネットワークの同じ層内の第二のシミュレートされたニューロンのためのシナプス重み値を記憶するために使用できる。
【0026】
メモリ104は、受動メモリアレイ又は非破壊読み出し(NDRO:non-destructive readout)アレイを含む様々な種類の超伝導メモリの何れとしても実装できる。各種のメモリは、それぞれ異なる性能特性を有し得、そのため、メモリ技術の選択によって
図1に示されている種類の1つ又は複数のニューロモルフィックコアを取り入れた超伝導ニューラルネットワークシステムのタイミングは、変わり得るが、システムの全体的機能性は、メモリ技術の選択によって変化しないであろう。メモリは、シナプス活性化間のタイミングを、パイプラインを通して、メモリレイテンシと等しいデジタルサイクルタイムの選択を通して又は他の何れかの手法によって保持するように構成され得る。メモリ104は、例えば、RQL適合メモリを用いて実装できる。超伝導メモリセルの適当なアレイは、例えば、ミラーら(Miller et al.)の「超伝導位相制御ヒステリシス磁気ジョセフソン接合JMRAMメモリセル(Superconducting Phase Controlled Hysteretic Magnetic Josephson Junction JMRAM Memory Cell)」という名称の米国特許第9,520,181 B1号明細書、バーネットら(Burnett et al.)の「超伝導ゲートメモリ回路(Superconducting Gate Memory Circuit)」という名称の米国特許第9,812,192 B1号明細書及びヘールら(Herr et al.)の「超伝導非破壊読み出し回路(Superconducting Non-Destructive Readout Circuits)」という名称の米国特許出願公開第16/051,058号明細書に記載されている。これらの開示の各々が参照により本願に援用される。
【0027】
超伝導メモリバンク104の合理的なプログラマビリティにより、シミュレーションの開始時のシナプス重みの初期プログラミングは、単純に重み値をニューラルネットワーク内で使用されている各コア100の超伝導メモリ104に書き込むことによって容易となる。その結果、様々なネットワークは、単純に重み値を各メモリ104の行に入力することにより、コア100又はこのようなコアのアレイにマッピングできる。したがって、コア100内の超伝導デジタルメモリ104の使用により、シナプスを、バイアスラインを介して提供するニューラルネットワーク方式に対するレイアウトの簡素性及びセットアップ速度面の利点並びにそれらのシナプス重みを、例えば超伝導ループ間の選択的に大きさが定められた誘導結合を用いて有効にハードワイヤ接続し、したがって製造時に選択される1つのニューラルネットワーク以外の何れのニューラルネットワークをシミュレートするためにも使用できない方式に対するフレキシビリティ面の利点が得られる。プログラマビリティの特徴により、コア100によってシミュレートされるニューロンを、シナプス重みの柔軟性を示し、したがってヘッブ則に基づく学習を証明するようにさらに構成することができる。したがって、コア100の1つ又は複数のインスタンスを用いるニューラルネットワークは、非プログラマブルシステムより適応性が高いと同時に、コア100が動作する超伝導速度を考えると、ソフトウェアベースのシステムより依然としてはるかに高速である。
【0028】
幾つかの例において、メモリ104は、1つのメモリアレイではなく、複数のメモリアレイとして実装される。幾つかの例において、メモリ104は、大きいアレイと小さいメモリとに分割される。このような例では、大きいアレイからの行が小さいメモリにプリロードされて、スパイクを処理する際、より低レイテンシのメモリアクセスが提供される。
【0029】
デジタルアキュムレータ106とデジタル-アナログ変換器108とは、共に、
図2の概念的ニューロン200の樹状突起の木214に対応できる。デジタルアキュムレータ106は、活動電位サイクル中に受信された各スパイクの重みを加算して、間欠的(例えば、ラッチのトリガリング時)又は連続的に、その活動電位サイクル中にどの程度の入力を受信したかを特定し、それによりアキュムレータの出力として数値を表すデジタル信号を生成する。アキュムレータ106は、パイプライン型であり得、それにより、これは、メモリ104から重み値を利用できるようになるとデジタル加算を行う。例えば、オア(OR)木(図示せず)を用いて正しい出力メモリワードをアキュムレータ116の入力に向けることができ、それは、スパイクごとに1つのワードイネーブル114のみがハイ(例えば、論理「1」)であり、それ以外のワードが全てロー(例えば、論理「0」)であるからである。幾つかの例において、アキュムレータ106は、アキュムレータ106の結果が、サイクルの終了時、例えば活動電位サイクルのカットオフ地点以後にのみデジタル-アナログ変換器108に提供されるように(例えば、ラッチを用いて)構成できる。したがって、アキュムレータの結果は、記憶されて、特定のタイミングでのみ細胞体110に印加される。他の例では、アキュムレータ106は、アキュムレータ106の結果が常にデジタル-アナログ変換器108に供給され、それにより細胞体110における電流の変化がシナプスにおいて見られるスパイクタイミングに対応するように構成できる。後者の構成による挙動は、時間符号化のシミュレーションを支援し、前者の構成による挙動は、レート符号化のみをシミュレートできる。幾つかの例において、図示されないが、ある時間にわたり入力電流パルスを累積するように構成されたアナログ回路は、デジタルアキュムレータ106の代わりに提供できる。
【0030】
デジタル-アナログ変換器108は、アキュムレータ106のデジタル出力を、細胞体に提供できる信号に変換するように構成できる。この信号は、アキュムレータ106のデジタル出力の数値に比例する電流であり得る。したがって、アキュムレータ106からのデジタル信号としての数がより大きいと、その結果、デジタル-アナログ変換器108からの出力電流の振幅は、より大きくなる可能性がある。アキュムレータ106により出力される値がデジタルサイクルごとに変化し得る例では、デジタル-アナログ変換器108の出力電流もデジタルサイクルごとに変化し得る。デジタル-アナログ変換器108は、したがって、デジタル論理シナプスとコアのアナログ細胞体部分との間のインタフェースを提供する。超伝導DACの例は、ポール アイ.バニクら(Paul I.Bunyk et al.)の「超伝導粒子アニーリングプロセッサの設計におけるアーキテクチャに関する考察(Architectural Considerations in the Design of a Superconducting Quantum Annealing Processor)」、24 IEEEトランザクションズ・オン・アプライド・スーパコンダクティビティ(TRANS.APPL.SUPERCOND.)第4号(2014年)、2013年12月10日に発行された「量子プロセッサ素子のローカルプログラミングのためのシステム、方法及び装置(Systems,Methods,and Apparatus for Local Programming of Quantum Processor Elements)」という名称の米国特許第8,604,944 B2号明細書、2007年5月14に出願された「超伝導インダクタ梯子型回路を用いたスケーラブル超伝導磁束デジタル-アナログ変換(Scalable Superconducting Flux Digital-to-Analog Conversion Using a Superconducting Inductor Ladder Circuit)」という名称の米国仮特許出願第60/917,884号明細書、2007年5月14日に出願された「スケーラブル超伝導磁束デジタル-アナログ変換器のためのシステム、方法及び装置(Systems,Methods and Apparatus for a Scalable Superconducting Flux Digital-to-Analog Converter)」という名称の米国仮特許出願第60/917,891号明細書、及び2007年9月26日に出願された「差動超伝導磁束デジタル-アナログ変換器のためのシステム、方法及び装置(Systems,Methods and Apparatus for a Differential Superconducting Flux Digital-to-Analog Converter)」という名称の米国仮特許出願第60/975,487号明細書に記載されている。
【0031】
ニューロモルフィックコア100のアナログ細胞体回路110は、デジタル-アナログ変換器108からの入力電流を用いて、ニューロモルフィックコア100の出力118としてスパイクを発出する(すなわち「発火する」)か否かを特定する超伝導回路構成として提供できる。細胞体出力は、例えば、1つのSFQパルス又は複数のSFQパルスであり得る。細胞体回路構成110のアナログの性質により、スパイキングイベント間の不応期、励起ごとのスパイク数の違い、及びスパイクタイミングの違い等の複雑な挙動を効率的に実装することが可能となる。これらの挙動は、生物学的ニューロン内で観察されており、適切に利用されれば、大きいニューラルネットワークに追加の機能性を提供できる。本明細書に記載のアナログ細胞体回路構成とは対照的に、これらの挙動をデジタル細胞体設計で実装するには、より多くの回路コンポーネントが必要となり、その結果、格段に効率の低いシステムとなる。細胞体回路構成110は、1つの細胞体のための回路構成を含むことができるか、又は
図5及び6に関して後述するように、1つのコア100が複数のニューロン、例えば
図3のニューラルネットワーク300等のニューラルネットワークの異なる層内の複数のニューロンを表すことができるように、細胞体回路のアレイを含むこともできる。
【0032】
入力スパイクと、対応する電流が細胞体110に印加される時点との間のタイミング関係を保持することにより、大きさだけでなく、入力のタイミングも細胞体110の状態に影響を与える時間符号化及び複雑なニューロン挙動も可能となる。ニューラルネットワークのソフトウェアモデルにおいて層を明確に分離することにより、ニューロモルフィックコアコントローラ(すなわち前述の状態機械制御回路構成)は、何れのシナプス重みを使用すべきかを知ることができる。複数の層が使用される例では、追加のバッファ(図示せず)を、現在の層からのスパイクを記憶して、それらをシステムサイクルが進んで次の層が計算されるまで適用しないように構成することができる。スパイクは、その後、バッファから再生できる。
【0033】
コア100の複数のインスタンスのネットワークにおいて、コアは、
図9に示されるように直接又は
図10に示されるようにコア間にスパイクを分散させ、送達するように構成されたデジタル信号分散ネットワークによって相互に接続できる。デジタルネットワークにより、コアを用いて、おそらく何十万又は何百万ものニューロンを1つのチップ上に組み込むハードウェアで大規模ニューラルネットワークを構築することが可能となる。このようなネットワークは、コア100の一部ではない。状態機械制御回路(図示せず)は、何れのスパイクをバッファに記憶すべきか及びニューラルネットワークモデル内の適当な層の重みを得るために何れのメモリアドレスから読み出すべきかを特定するために使用できる。1つの状態機械制御回路は、
図9及び
図10のネットワーク等のコアのネットワーク内の複数のコアの動作を調整するためにも使用できる。したがって、この状態機械制御回路は、ニューロモルフィックコア100から分離している。幾つかの例において、1つの状態機械制御回路は、1つ又は複数のクロックを用いて、1つのニューロモルフィックコア100のコンポーネントに必要な制御信号を生成できる。他の例では、1つの状態機械制御回路は、複数のニューロモルフィックコアを同時に制御するために使用できる。
【0034】
図5は、複数の細胞体回路を含み、独立してアドレス指定可能な複数の神経細胞体を表す細胞体アレイ510を有するニューロモルフィックコア500を示す。アレイ510内の各細胞体回路は、例えば、異なる出力閾値関数を有することができ、別々の状態を保持できる。各細胞体の閾値関数は、線形又は非線形であり得る。例示的なコア500は、アレイ510内に4つの細胞体回路を有するように示されているが、他の例ではそれより多い又は少ない細胞体を有することができる。これらの異なる細胞体回路は、
図5の図では点描によるシェーディングで「色分け」されている。対応する色分けは、メモリアレイ504内の行も表示する。したがって、行イネーブル(例えば、前述のように状態機械制御回路構成により提供される)がメモリの行を逐次的に1行ずつ活性化してニューロンを1つずつシミュレートすると、アレイ510内の各細胞体回路を逐次的にアドレス指定でき、デジタル-アナログ変換器508の出力をアレイ内の対応する細胞体に提供できる。その結果、1つのコア500は、異なるシナプス重みを有する(メモリアレイ504内)だけでなく、異なる細胞体活性化閾値を有する複数のニューロンを(細胞体アレイ510内の別の細胞体回路を提供することによって)表すことができる。他の例では、細胞体アレイ510内の異なる細胞体回路は、それぞれ異なる回路構造を有して、1つのコア内で異なる細胞体応答特性を有するか、又は生物学的迫真度(biological verisimilitude)の異なる各種生物学的ニューロンのシミュレーションを、細胞体回路のコア内でニューラルネットワークの特定の用途に応じて望まれる応答に最も適したものを選択できるようにすることによって可能にできる。コア500の他の要素502、506、512、514、516、518は、
図1の同様の番号の対応要素と同様であり得、それと同等に機能できる。
【0035】
図6は、
図5の細胞体アレイ510に対応できる例示的な細胞体アレイ600を示す。各細胞体回路602、604、606、608は、生物学的に現実的な動作を有するコンパクトな細胞体(神経本体)の回路設計を表す。図の例では、各細胞体回路602、604、606、608は、2つのみのジョセフソン接合及び3つのみのインダクタを含み、これは、例えば、神経の動作をデジタル式に模倣しようとする設計等、他の設計に必要であり得る何十、何百又は何千ものコンポーネントに代わる。他のより複雑であるが、おそらくより生物学的に示唆的な細胞体設計もコア500の細胞体アレイ510に使用され得、前述のようにより多い又はより少ない数の個別にアドレス指定可能な細胞体回路をアレイ600で使用することができる。各細胞体回路602、604、606、608は、例えば、そのコンポーネントの異なるバイアスを提供して、累積された入力重みによって出力スパイクが生成されるか否かを特定できる異なる閾値関数を有することができる。また、前述のように、アレイ内のアドレス指定可能な各細胞体回路は、例えば、異なる生物学的示唆性から得ることができるような異なる有利な特徴又は挙動の細胞体及びそれらを選択する能力をコアに提供するように異なる構造を有することができる。
【0036】
図7は、
図1又は
図5のコア100又は500のようなニューロモルフィックコアの、コアがスパイクバッファを有さないか、又はスパイクバッファが入力スパイクをメモリの列選択ラインの対応する1つ上のメモリに直接通過させる場合と、累積された重みが累積の完了後にのみ細胞体に適用される場合との機能700を示す。入力スパイクを受信すると702、そのスパイクに関する記憶されたシナプス重みに例えばスパイクの受信及びコアの動作の特定の時間サイクルに基づいてアクセスする(708)。アクセスされたスパイク重みは、同じサイクル中に受信された全てのスパイクに関してアクセスされた重みの累計と共に累積される(710)。そのサイクルが完了しない間、このプロセス702、708、710を繰り返す(712)。サイクルが完了したら、サイクルの累積された重みの合計をニューロモルフィックコアの細胞体に適用し(714)、それに累積された重みが閾値と比較されて、シミュレートされているニューロンが発火すべきか否かが判断される(716)。発火すべきではない場合、新しいサイクルが始まる。発火すべきであれば、スパイク(例えば、SFQパルス)を発出する(718)。例えば、サイクルは、プロセス700及びその判断712の目的において、サイクル中の、それ以降、受信された入力スパイクがそのサイクル中にニューロモルフィックコアによってシミュレートされているニューロンの発火に影響を与えない所定のスパイク入力カットオフ時間後に「完了した」と考えることができる。このようなカットオフ時間は、例えば、前述のように、状態機械制御回路構成によって提供されるニューロモルフィックコアへの入力を制御することによって設定できる。
【0037】
図8は、
図1又は
図5のコア100又は500のようなニューロモルフィックコアの、コアがバッファ102又は502のようなスパイクバッファを含む場合と、累積された重みが、累積が完了してからのみ細胞体に適用される場合との機能800を示す。動作802、808、810、812、814、816及び818は、
図7の同様の番号の対応するものと同じであるが、例外として、入力スパイクを受信した後(802)、シナプス重みには、コアがスパイクをすでに現在処理していない場合にのみ、例えばメモリ検索機能を実行することにより(これには、それに伴うある程度の時間遅延があり得る)又は一度に1つのスパイクのみが処理されることを要求する活性化シミュレーション計算の他の部分を実行することによりアクセスされる(808)。例えば、コアの重み記憶メモリアレイ又はコアの他の何れかの部分からの信号によって判断され得るが、コアがスパイクの処理に使用中である場合(804)、入力スパイクは、処理される状態となるまでコアの入力スパイクバッファに保持される(806)。バッファに記憶されたスパイクは、メモリが読取りの使用に利用可能となったらバッファからメモリに逐次的に放出することにより、一度に1つ処理できる。例えば、サイクルは、プロセス800及びその判断812の目的において、サイクル中の、それ以降、受信された入力スパイクがそのサイクル中にニューロモルフィックコアによってシミュレートされているニューロンの発火に影響を与えない所定のスパイク入力カットオフ時間後に「完了した」と考えることができる。このようなカットオフ時間は、例えば、前述のように状態機械制御回路構成によって提供されるニューロモルフィックコアへの入力を制御することによって設定できる。
【0038】
図9は、
図1又は
図5のコア100又は500のようなニューロモルフィックコアの、コアがスパイクバッファを有さないか、又はスパイクバッファが入力スパイクをメモリの列選択ラインの対応する1つ上のメモリに直接通過させる場合の機能900を示す。入力スパイクを受信すると(902)、そのスパイクに関する記憶されたシナプス重みに例えばスパイクの受信及びコアの動作の特定の時間サイクルに基づいてアクセスする(908)。アクセスされたスパイク重みは、同じサイクル中に受信された全てのスパイクに関してアクセスされた重みの累計と共に累積される(910)。サイクル中、連続的に、そのサイクルの累積された入力重みの合計がニューロモルフィックコアの細胞体に適用され(914)、それに累積された重みは、例えば、閾値と比較されて、シミュレートされたニューロンが発火すべきか否かが判断される(916)。発火すべきである場合、スパイク(例えば、SFQパルス)が発出される(918)。発火すべきではないか、又はスパイクが発出された後、プロセス900は、アイドル状態に戻り(920)、他の入力スパイクを待つ。
【0039】
図10は、
図1又は
図5のコア100又は500のようなニューロモルフィックコアの、コアがバッファ102又は502のようなスパイクバッファを含む場合の機能1000を示す。動作1002、1008、1010、1014、1016、1018及び1020は、
図7及び
図9の同様の番号の対応するものと同じであるが、例外として、入力スパイクを受信した後(1002)、シナプス重みには、コアがスパイクをすでに現在処理していない場合にのみ、例えばメモリ検索機能を実行することにより(これには、それに伴うある程度の時間遅延があり得る)又は一度に1つのスパイクのみが処理されることを要求する活性化シミュレーション計算の他の部分を実行することによりアクセスされる(1008)。例えば、コアの重み記憶メモリアレイ又はコアの他の何れかの部分からの信号によって判断され得るが、コアがスパイクの処理に使用中である場合(1004)、入力スパイクは、処理される状態となるまでコアの入力スパイクバッファに保持される(1006)。バッファに記憶されたスパイクは、メモリが読取りの使用に利用可能となったらバッファからメモリに逐次的に放出することにより、一度に1つ処理できる。
【0040】
図11は、
図1又は
図5のコア100又は500のようなニューロモルフィックコアの、コアがバッファ102又は502のようなスパイクバッファを含む場合の機能を2つの並列プロセス1100、1101として示す。プロセス1100において、スパイクがバッファ内で待機中であるとき(1104)、そのスパイクに関する記憶されたシナプス重みには、例えばスパイクの受信及びコアの特定の動作時間サイクルに基づいてアクセスされる(1108)。アクセスされたスパイク重みは、同じサイクル中に受信された全てのサイクルについてのアクセスされた重みの累計と共に累積される(1110)。あるサイクル中に連続的に、そのサイクルの累積された入力重みの合計がニューロモルフィックコアの細胞体に適用され(1114)、それに累積された重みが例えば閾値と比較されて、シミュレートされたニューロンが発火すべきか否かが特定される(1116)。発火すべきである場合、スパイク(例えば、SFQパルス)が発出される(1118)。発火すべきでない場合又はスパイクが発出された後、プロセス1100は、戻り、他のスパイクがバッファ内で待機中であるか否かをチェックする(1104)。このチェック1104により、バッファ内に待機中のスパイクがないことがわかると、プロセスは、スパイクがバッファに入力されるまでアイドル状態となる(1120)。プロセス1101において、入力スパイクを受信すると(1102)、スパイクは、スパイクバッファに記録され(1106)、プロセス1101は、他のスパイクを受信するまでアイドル状態に戻る(1122)。したがって、動作1102、1106、1108、1110、1114、1116及び1118は、
図7~
図10のそれらと同様の番号の対応するものと同じであるが、異なる並列プロセスへの動作の配置は、プロセス700、800、900及び1000と異なる。
【0041】
図9、
図10及び
図11のプロセス900、1000及び1100において、累積された重みは、連続的に細胞体に適用される。これは、
図7及び
図8の方法700及び800と異なり、これらの場合、累積された重みは、サイクル中(例えば、システムサイクル中のスパイク到来からカットオフ時間前まで)の全ての入力重みの受信が完了した後にのみ細胞体に適用される。したがって、細胞体回路構成の適切な選択により、プロセス900、1000及び1100は、細胞体提示において入力パルス又は入力スパイクトレイン間のタイミング関係を保持することによって時間符号化をシミュレートすることが可能であり得るのに対して、プロセス700及び800は、これらのプロセスの1回の細胞体提示により、事実上、パルス間のタイミング関係を破壊することから、レート符号化のみをシミュレートすることが可能であり得る。幾つかの応用において、時間符号化をシミュレートする能力は、レート符号化のみをシミュレートできることより、その生物学的示唆性がより高い可能性から好ましいことがあり得る。
【0042】
図12は、相互に直接接続されたニューロモルフィックコア1202、1204、1206、1208の例示的なネットワーク1200を示す。図のように、各コアは、入力として3つの他のコアの各々の出力を受信し、すなわち、1つのコアのメモリアレイへの各列入力は、他のコアからの細胞体出力に対応する。したがって、細胞体の各々は、他のニューロンのシナプス重みアレイの列にマッピングされる。メモリの列及び行により、計算されるニューロンとプレシナプスニューロンとの間の特定のシナプス接続が決まることを想起すると、コア1202、1204、1206、1208の各々は、ニューラルネットワーク内の次の層の計算に進み、各々は、入力として、前の時間ステップ中に他のコアにより表されたニューロンからの活性化結果を取り入れる。他の例は、4個(図の通り)より多い若しくはそれより少ないコア又はそれら自体に接続されてそれら自体の出力を入力として受信するコアを含むことができる。あるコアの細胞体出力を同じコアの入力に接続することにより、リカレントニューラルネットワーク接続ができる。さらに、時間多重化を用いて、同じ層内の複数のニューロンのコアを再使用することができる。このような方式は、1層あたり1時間ステップではなく、1層あたり複数の時間ステップを使用する。
【0043】
図13は、ニューロモルフィックコア1302の他の例示的なネットワーク1300を示し、各々は、例えば、
図1のコア100又は
図5のコア500に対応できる。
図12のように相互に直接接続するのではなく、各コア1302への及びそれからの接続は、超伝導デジタル分散ネットワーク1304によって扱うことができる。例示的なネットワーク1300に25個のコアが示されているが、他の例示的なネットワークは、それより多い又は少ないコアを有することができる。
図13の配置により、多数のコアを接続して、ハードウェア及び超伝導速度において、1つのチップ又は接続された複数のチップ上の何千、何十万又は何百万ものニューロンをシミュレートすることができる。
【0044】
ここで、ニューロモルフィックコアの動作タイミングの2種類の例を提供する。第一の例は、
図14A及び
図14Bのタイミング図に示され、パイプラインレイテンシは、入力パルス間のタイミングが保持されないため、考慮されない。第二の例は、
図15A~
図15Eのタイミング図で示され、パイプラインレイテンシは、
図15A~
図15Eに関して後述するように考慮される。
図14A及び
図14Bの例に示されるタイミングレジームは、例えば、
図7又は
図8のプロセス700又は800に従ってニューロモルフィックコアの使用に対応できる。それに対して、
図15A~
図15Eの例に示されるタイミングレジームは、
図9、
図10及び
図11に示されるプロセス900、1000又は1100によるニューロモルフィックコアの使用に対応できる。
【0045】
図14A及び
図14Bは、それぞれコアがニューラルネットワークのそれぞれの連続する層内における、4つのニューロンをシミュレートするように構成された場合のコア100又はコア500等のニューロモルフィックコアの例示的な機能のタイミングを説明するタイミング図である。これらの図面に示されるタイミングレジームは、例えば、ニューロモルフィックコアがそれぞれ
図7又は
図8のプロセス700又は800に従って動作するときに使用でき、累積された重みは、累積が完了した後にのみ細胞体に適用される。水平スケール(すなわち時間スケール)に沿って、タイミング図は、8つのシステムサイクル(番号0~7)に分割され、各々が10の活動電位サイクル(番号0~9)からなる。タイミング図で「PR」と表示された活動電位サイクルセルは、活動電位が活動電位サイクル中に受信され、メモリへのアクセスが実質的に前記活動電位サイクル中に行われることを示す。タイミング図で「WA」と表示される活動電位サイクルセルは、重みの累積がそれぞれの活動電位サイクル中に行われることを示す。タイミング図で「DAC」と表示される活動電位サイクルセルは、デジタル-アナログ変換(すなわち重み変調)がそれぞれの活動電位サイクル中に行われることを示す。タイミング図で「PG」と表示される活動電位サイクルセルは、活動電位生成がそれぞれの活動電位サイクル中に行われる(すなわちコアの細胞体から出力スパイクを発出する)ことを意味する。
【0046】
各活動電位サイクルの時間の長さは、例えば、そのコアのメモリのアクセス時間、すなわち入力活動電位スパイクを処理して、それをパイプライン型に累積できる状態にするのにかかる時間によって決まる。図において、「ワーストケースの遅延」として表示され、図の例において特定のシステムサイクルの10番目の活動電位サイクルに対応する各ニューロンの最大許容遅延を保証するために、スパイク入力カットオフを確立することができ、それにより、スパイク入力カットオフ後にコアによって受信されたスパイクは、全て無視される(すなわちニューロモルフィックコアにより実行されるニューラルシミュレーションにより処理されない)。図の例では、スパイク入力カットオフは、各システムサイクル内の10の活動電位サイクルの4番目の後に見られる。
【0047】
図14A及び
図14Bに示される例において、その間にニューロモルフィックコアの第一のニューロンがシミュレートされる(例えば、第一のニューラルネットワーク層のニューロン)ニューロモルフィックコアのシステムサイクル0において、システムサイクルの第一の活動電位は、活動電位サイクル0中に第一の活動電位入力ラインで受信される。活動電位が受信されるシナプスの対応する重み(すなわち特定のメモリ列選択ラインに対応する)は、同じ活動電位サイクル中、その活動電位が受信されるメモリ列選択ラインと、層1内のニューロンが現在シミュレートされていることを有効に指定し、そのニューロンに関連付けられるシナプス重みを記憶するメモリ内の行を選択するメモリ行選択ラインとに従い、そのコアのローカルメモリから選択され、取得される。
【0048】
したがって、重み累積(例えば、デジタルアキュムレータ106又は506による)は、次の活動電位サイクル、すなわちシステムサイクル0の活動電位サイクル1で始まり、カットオフ前に受信された全ての活動電位がニューロモルフィックコアによる対応する重み取得メモリアクセスで逐次的に処理されるまで継続される。活動電位サイクル3中、カットオフ直前にシステムサイクル0の第二の活動電位が第三の活動電位入力ライン上で受けられる。対応する重みは、活動電位サイクル3においてメモリから取得され、前記重みは、活動電位サイクル4中に累積される(すなわちシステムサイクル0の第一の受信活動電位からのそれ以前の累積重みと加算される)。カットオフ前に受信した活動電位シナプス重みは、全て累積されており、対応するデジタル値は、活動電位サイクル5でアナログ電流に(例えば、DAC 108又は508によって)変換され、システムサイクル0の活動電位サイクル6において、重みが対応する層1の細胞体の閾値を超えるか否かに応じて出力活動電位が生成されるか又は生成されず、したがって層1のニューロンのニューロモルフィックコアのシミュレーションが完了する。
【0049】
その後、ニューロモルフィックコアは、引き続き次のシステムサイクル、すなわちシステムサイクル1の後続層2のニューロンのシミュレーションに移り、これは、一部には、コアのメモリの行選択ラインの値を、メモリの次の行を指すか、又はメモリ内の、コアによりシミュレートされる層2のニューロンに対応する何れかの行を指すように進めることによる(連続的にシミュレートされるニューロンに関する重みを後続のメモリ行に記憶しなければならないという厳格な要求はない)。図の例において、第一の活動電位は、システムサイクルの第一の活動電位サイクル、すなわち活動電位サイクル0で第一の活動電位入力ライン上に到達する。対応するシナプス重みは、メモリから取得され、再び次の活動電位サイクル、すなわち活動電位サイクル1で累積が始まる。システムサイクル1の第二の活動電位は、活動電位サイクル2中に第三の活動電位入力ライン上で受信され、これは、再び、コア内に設計されるカットオフ前である。対応する重みは、活動電位サイクル2内でメモリから取得され、前記重みは、活動電位サイクル3中に累積される。活動電位サイクル3中に(すなわちカットオフ前に)何れの活動電位も受信されないと、累積されたシナプス重みのデジタル-アナログ変換は、システムサイクル0の場合のように活動電位サイクル5ではなく、活動電位サイクル4内で直ちに行うことができる。システムサイクル1の活動電位サイクル5において、出力活動電位が生成されるか又は生成されず、コアは、適時、イベントのないさらに幾つかの活動電位サイクル後に層3内のニューロンのシミュレーションに移る。
【0050】
次に、システムサイクル2において、システムサイクルの第一の活動電位サイクル、すなわち活動電位サイクル0中に第一の活動電位が第一の活動電位入力ライン上で受信され、その後、同じシステムサイクル内でそれ以上の活動電位が受信されない。活動電位サイクル1内で累積が完了しても、コアは、活動電位サイクル3の終了時にカットオフ前に到達した活動電位がないと特定できた後も活動電位サイクル4まで待ち、活動電位サイクル4でデジタル-アナログ変換を、また活動電位サイクル5でスパイク生成(又は不生成)のための細胞体の閾値に基づく二値化を開始する。
【0051】
図の例では、システムサイクル3は、コアがシミュレートする第四のニューロンに移り、システムサイクルの第四の活動電位サイクル、すなわち活動電位サイクル3でスパイク入力カットオフの直前に第一の活動電位が第一の活動電位入力ラインに到達することを示す。次の活動電位サイクル、すなわち活動電位サイクル4で累積が開始及び終了され、累積されたシナプス重みのデジタル-アナログ変換及び出力スパイクの伝播(又は不伝播)は、それぞれその後の活動電位サイクル5及び6で行われる。
【0052】
本明細書に記載のニューロモルフィックコアは、任意の多数のニューロンのシミュレーションを逐次的に行うことができるが、
図14A及び
図14Bの例には、4つのニューロンのコアが関わっており、したがって、システムサイクル4では、コアは、その層1のニューロンのシミュレーションに戻る。2つの入力スパイクがシステムサイクル4の活動電位サイクル0で第一及び第二のシナプスに到達し、各々の重みがコアのメモリから逐次的に取得されるため、スパイクは、メモリが利用可能となるまでバッファに格納され得る。したがって、次の活動電位サイクル、すなわちシステムサイクル4の活動電位サイクル1で第三のスパイクが第三のシナプスに到達すると、その重みは、活動電位サイクル1ではなく、代わりに活動電位サイクル2で取得され、これは、活動電位サイクル1では、メモリが、第二のシナプス活動電位に対応する重みの取得に使用中であるからである。したがって、活動電位サイクル3の終了後に初めて、全ての重みが確実に累積され、デジタル-アナログ変換及び細胞体の処理は、それぞれその後の活動電位サイクル4及び5で行うことができる。さらに、イベントのない幾つかの活動電位サイクル後、システムサイクル4が終了して、層2のニューロンが再びコアによってシミュレートされる。
【0053】
システムサイクル5の例において、活動電位サイクル0及び1の各々で2つの活動電位がそれらのそれぞれのシナプスに到達する。各入力スパイクは、バッファに格納されて、メモリが関連する重みを取得することによってそれを処理できるようになるまで順番待ちする。そのため、システムサイクル5で累積が確実に完了するまで、4つの活動電位サイクル1、2、3及び4を要する。DAC及び細胞体の処理は、その後、それぞれ活動電位サイクル5及び6で行われる。
【0054】
層3のニューロンを処理するシステムサイクル6の例では、2つの活動電位が活動電位サイクル2及び3の各々においてそれらのそれぞれのシナプスに到達する。これらは、全て依然としてタイムリであるため、再び、各入力スパイクは、バッファに格納されて、メモリが対応する重みをメモリから取得することによってそれを自由に処理できるようになるまで順番待ちする。そのため、累積がシステムサイクル6で確実に完了するまで、4つの活動電位サイクル3、4、5、6を要する。DAC及び細胞体の処理は、その後、それぞれ活動電位サイクル7及び8で行われる。
【0055】
層4のニューロンが再びシミュートされるシステムサイクル7は、ここで、4つの入力スパイクの全てがスパイク入力カットオフの直前に活動電位サイクル3で到来するとどうなるかを示す。各スパイクは、バッファに記憶され、累積は、活動電位サイクル4まで開始されず、活動電位サイクル7まで終了せず、これらが全て活動電位サイクル3で同時に到達した可能性があるにも関わらず、各々の適時の入力スパイクに関する1つのメモリルックアップ活動電位サイクルが提供される。したがって、DAC処理は、システムサイクルの最後から2番目の活動電位サイクル、すなわち活動電位サイクル8まで行われず、細胞体の処理は、システムサイクルの10番目の最後の活動電位サイクル、すなわち活動電位サイクル9で行われる。図の例において、スパイク入力カットオフがそれより少しでも後になるように設計された場合、1つのシステムサイクルあたり10の活動電位サイクルでは、次のシステムサイクルが来る前に全ての入力スパイクを適時に処理するのに不十分であり得る。
【0056】
図14A及び
図14Bの上記の例には、1システムサイクルあたりの複数の活動電位サイクル及びコアによりシミュレートされるニューロンのシナプスの最大数に合わせたスパイク入力カットオフが関わる。前述のように、サイクルタイミングは、状態機械回路構成により調整できる。より多くのシナプス(すなわちより多くのスパイク入力ライン及び対応してメモリ列)を有する状態機械制御回路構成は、1システムサイクルあたりの活動電位サイクル数がより多いコアを提供することにより、適時に到来した入力スパイクの全てがシステムサイクルの終了前に確実に処理でき、他方で依然として適当なスパイク入力カットオフを介して前システムサイクルのスパイク到来にとって十分に広い時間間隔を提供するように構成され得る(例えば、少なくとも3~4つの活動電位サイクルだけ続くものであるが、この正確な数は、システムのサイズ及びタイミング要件に基づいて異なり得る)。
【0057】
図14A~
図14Bの例には、1システムサイクルあたりの複数の活動電位サイクル及びコアによりシミュレートされるニューロンのシナプスの最大数に合わせたスパイク入力カットオフが関わる。前述のように、サイクルタイミングは、状態機械回路構成により調整できる。より多くのシナプス(すなわちより多くのスパイク入力ライン及び対応してメモリ列)を有する状態機械制御回路構成は、1システムサイクルあたりの活動電位サイクル数がより多いコアを提供することにより、適時に到来した入力スパイクの全てがシステムサイクルの終了前に確実に処理でき、他方で依然として適当なスパイク入力カットオフを介して前システムサイクルのスパイク到来にとって十分に広い時間間隔を提供するように構成され得る(例えば、少なくとも3~4つの活動電位サイクルだけ続くものであるが、この正確な数は、システムのサイズ及びタイミング要件に基づいて異なり得る)。
【0058】
図14A及び
図14Bのタイミング図では、あるシステムサイクルでのニューロンへの入力により、そのニューロンは、同じシステムサイクル内に発火する(又は発火しない)。その結果として得られる1つの層の出力は、その後のシステムサイクルでの次の層に影響を与える。したがって、
図3に示される例示的なネットワーク300のように、層に沿って組織化されるニューラルネットワークにおいて、結果として得られる現在のシステムサイクルの出力を処理するために、次のシステムサイクルまで待機する必要があることがわかり得る。このタイミングレジームは、出力スパイクがスパイク入力カットオフ後(すなわち
図14A及び
図14Bの例の活動電位サイクル4後)に発せられ、次の層のニューロンの入力において適正にバッファに格納できる限り、レート符号化されたニューラル処理を適正に表現するように機能する。しかしながら、
図14A及び
図14Bに示されるタイミングレジームでは、累積された重みは、全てが一度に細胞体に提示されるため、このタイミングレジームは、入力スパイク間のタイミング関係を保持せず、したがって時間符号化されるニューラルネットワークシステムのシミュレーションができない。したがって、
図15A~
図15Eは、コア100又はコア500等のニューロモルフィックコアの他の例示的な機能のタイミングを説明するタイミング図を示す。
図14A及び
図14Bの上記の例と同様に、コアは、ニューラルネットワークのそれぞれの連続する層の各々で4つのニューロンをシミュレートするように構成されるが、上記の例と異なり、1つのシステムサイクル内に到来するスパイクは、直後のシステムサイクルでニューロモルフィックコアによりシミュレートされるニューロンに適用される。
【0059】
図15A~
図15Eに示されるタイミングレジームは、
図14A及び
図14Bに関して上述したものに対して、下記のような改善された動作をさらに表す。重みがメモリからアクセスされ、デジタルアキュムレータによって累積され、細胞体に適用されるようにするために複数のデジタルサイクルが必要となり得るため、第一のスパイクがおそらく生成されることができるまで、各活動電位クロックサイクルの開始時に幾つかのこのようなデジタルサイクルが経過し得る。したがって、例えば極端に重み付けされた入力スパイクが活動電位サイクルの第一のデジタルサイクルで生じたとしても、結果として得られる出力スパイクは、複数のデジタルサイクルが経過するまで生成されない。このレイテンシを隠すために、スパイクバッファを時間的にパイプラインのレイテンシの分だけ後方にシフトすることができる。例えば、入力活動電位がニューロモルフィックコアのパイプラインを通して(すなわち
図1の図又は
図5の図の上から下まで)移動するために3デジタルサイクルを要する場合、第三のデジタルサイクルで生成される対応するスパイクは、サイクル0で発生したものとしてバッファに記録できる。加えて、少なくとも3つのデジタルサイクルを活動電位クロック期間に追加して、最後のスパイクがパイプラインを通して伝播できる時間を設けることができる。
【0060】
したがって、
図15A~
図15Eのタイミング図は、5つのシステムサイクル(番号0~4)に分割され、各々は、2つの活動電位サイクル(番号0~1)からなる。図の例の各活動電位サイクルは、0~5、X及びYと表示される8つの論理クロックサイクルにさらに分割される。このような例では、ニューロモルフィックコアのFIFO入力バッファは、16のエントリを有することができるが、X及びYサイクル中に排出されるエントリはない。タイミング図で「PR」と表示される論理クロックサイクルセルは、活動電位がその論理クロックサイクル中に受信され、対応するメモリアクセスが、その後、タイミング図で「PA」と表示される論理クロックサイクルにより示されるように、次のシステム電位サイクル中に行われることを示す。タイミング図で「WA」と表示される論理クロックサイクルセルは、それぞれの論理クロックサイクル中に重み累積が行われることを示す。デジタル-アナログ変換(すなわち重み変調)専用の論理クロックサイクルセルはなく、これは、
図15A~
図15Eのタイミングの例ではこの変換が連続的に行われるからである。タイミング図で「PG」と表示される論理クロックサイクルセルは、活動電位生成がそれぞれの論理クロックサイクル中に行われる(すなわちコアの細胞体から出力スパイクを発出する)ことを示す。
【0061】
図15Aに示されるニューロモルフィックコアの、ニューロモルフィックコアのニューロンがシミュレートされないシステムサイクル0では、各種の活動電位は、第一、第二及び第三の入力ライン上で受信されるが、メモリアクセスは、行われない。システムサイクルの第一の活動電位は、活動電位サイクル0の論理クロックサイクル2において第一の活動電位入力ライン上で受信される。活動電位サイクル0のその後の論理クロックサイクル4及びXにおいて、それぞれ第二及び第三の活動電位がそれぞれ第二及び第三の活動電位入力ライン上で受信される。第二の活動電位サイクル、すなわち活動電位サイクル1では、3つの活動電位がそれぞれの論理クロックサイクル2、3及びYでニューロモルフィックコアによって受信される。これらの活動電位は、
図1又は
図5のバッファ102又は502等のFIFOバッファに記憶できる。
【0062】
図15Bに示される次のシステムサイクル、すなわちシステムサイクル1になったところで初めて、ニューロモルフィックコアは、活動電位が受信されたシナプスに関する対応する重み(すなわち特定のメモリ列選択ラインに対応する)へのアクセスを開始し、これは、各活動電位が受信されたメモリ列選択ライン及び層1のニューロンが現在シミュレートされていることを有効に指定し、そのニューロンに関連するシナプス重みを記憶するメモリの行を選択するメモリ行選択ラインに従い、コアのローカルメモリから重みを選択し、取得することによる。活動電位は、できるだけ早く処理が開始される(すなわち活動電位サイクルの第一の論理クロックサイクル中のそれらの最初のものから開始される)が、依然として活動電位間の適切なタイミングが保持され、それにより、入力活動電位は、相互に関して、それらが受信されたときと同じ時間間隔だけ空けて処理される。そのため、システムサイクル1の第一の活動電位サイクルにおいて、3つの重みアクセスPA1、PA2、PA3は、それぞれそれらの間に1つの論理クロックサイクルを空けて行われるのに対して、システムサイクル1の第二の活動電位サイクルでは、最初の2つの重みアクセスPA1、PA2の間に論理クロックサイクルがなく、3つの論理クロックサイクルが経過してから、第三の重みアクセスPA3が行われる。このタイミングの保持により、有利には、電位受信タイミング依存であるニューロン細胞体の機能性を実現できる。前述のように、タイミングは、「0」の値をFIFOバッファに、活動電位が受信されなかった論理クロックサイクルにわたり記憶することによって保持できる。
【0063】
したがって、
図15Bに示されるシステムサイクル1において、層1のニューロンがシミュレートされ、したがってメモリアクセスが行われて、システムサイクル0内で受信された対応する入力パルスの重みが取得される。メモリアクセスは、システムサイクル1において、システムサイクル0での対応する入力パルスの受信時より時間的に早い時期にシフトすることができる。したがって、例えば、図のように、システムサイクル0の活動電位サイクル0の論理クロックサイクル2で受信されたパルスは、その対応するメモリアクセスがシステムサイクル1の活動電位サイクル0の論理クロックサイクル0で行われ、これは、2論理クロックサイクル早いことを表す。このような前倒しは、パイプライン遅延を考慮に入れることに役立つ。入力スパイクは、X及びYサイクルで受信することができるが、バッファは、その時点で空である可能性があるため、それは、これらの論理クロックサイクル中にメモリアクセスのための何れのスパイクも出力しない。X及びYサイクルは、「パイプライン調整サイクル」と呼ばれ得、特定の実装されたタイミングのために選択されるこのようなサイクルの数は、ニューロモルフィックコアのパイプラインの深さ、すなわちそれがメモリアクセスから細胞体からのパルスの生成までに要する論理クロックサイクルの数に対応できる。したがって、メモリアクセスを行い、重みを累積し、累積した重みを細胞体に適用して出力パルスを生成するために20論理クロックサイクルが必要であった例では、20のパイプライン深さに対応する20のパイプライン調整サイクルがあることになる。
【0064】
引き続き
図15Bに関して、各活動電位サイクル中、対応する重み累積(例えば、デジタルアキュムレータ106又は506による)WA1、WA2、WA3は、各重みアクセスのそれらに続く論理クロックサイクル中に開始される。システムサイクル1の活動電位サイクル0の論理クロックサイクルXにおける細胞体による活動電位の発出によってわかるように、最初の3つの受信活動電位が終わることは、層1のニューロンを発火させるのに十分である。これに対して、システムサイクル1の活動電位サイクル1において発出がないことからわかるように、次の3つの受信活動電位では、層1のニューロンを2回目に発火させるには不十分であった。これは、累積重み1、2、3が両方の活動電位サイクル0及び1間で同じであっても当てはまり得、なぜなら、パルス受信間の相対的なタイミングが活動電位サイクル0及び1間で異なり、
図15A~
図15Eのタイミングレジームは、レート符号化シミュレーションだけでなく、時間符号化シミュレーションにも対応できるからである。層1のニューロンのニューロモルフィックコアによるシミュレーションが完了する。活動電位サイクルの終わりに、細胞体内の立ち上がり電荷は、散逸し、プロセスは、次に進む。
【0065】
同じシステムサイクル(すなわちシステムサイクル1)において、3つの活動電位は、ニューロモルフィックコアの異なるシナプス入力ライン上で実質的に同時に受信され(すなわち全てが活動電位サイクル0の論理クロックサイクルX内である)、異なるシミュレートされたニューロン、すなわちシミュレートされたニューラルネットワークの第二の層のニューロンへの入力としてバッファに格納される。これらの入力スパイクの1つは、同じニューロモルフィックコアにより出力されるが、前の層(すなわち層1)のシミュレートされたニューロンの出力を代表するスパイク生成の出力からフィードバックされ得、すなわち、この入力は、システムサイクル1の活動電位サイクル0の層1の論理クロックサイクルXで生成されるものとまさに同じ出力であり得る。
図15Bに示されるように、システムサイクル1の活動電位サイクル1では、層2への入力は、受信されない。
【0066】
図15Cに示されるように、その後、ニューロモルフィックコアは、次のシステムサイクル、すなわちシステムサイクル2内の層2のニューロンのシミュレーションに進み、これは、一部には、コアのメモリの行選択ラインの値をメモリの次の行を指すか、又はメモリ内の、コアによりシミュレートされる層2のニューロンに対応する何れかの行を指すように進めることによる(連続的にシミュレートされるニューロンに関する重みを後続のメモリ行に記憶しなければならないという厳格な要求はない)。FIFOバッファは、それぞれのメモリアクセスのためにスパイクの各々を逐次的に出力する。図の例では、実質的に同時に受信される3つの入力パルスの第一のものの重みは、システムサイクル2の活動電位サイクル0の論理クロックサイクル4でアクセスされ、重みは、次の論理クロックサイクル、すなわち論理クロックサイクル5で累積される。同様に、実質的に同時に受信される3つの入力パルスの第二のものの重みは、システムサイクル2の活動電位サイクル0の論理クロックサイクル5でアクセスされ、この重みは、次の論理クロックサイクル、すなわち論理クロックサイクルXで累積される。しかしながら、システムサイクル2の活動電位サイクル0の論理クロックサイクルXでは、実質的に同時に受信される3つの入力パルスの第三のものについて重みにアクセスされず、それは、図のタイミングレジームでは、パイプライン調整サイクル中にFIFOバッファからスパイクが出力されないからである。第三のパルスは、事実上、「失われる」。それでもなお、偶発的に、最初の2つのバッファ出力スパイクは、活動電位が層2によりシミュレートされるニューロンにより生成されるようにするのに十分であり、出力スパイクは、図のように、システムサイクル2の活動電位サイクル0の論理クロックサイクルYで生成される。
【0067】
この出力スパイクは、再びニューロモルフィックコアに戻されて、その結果、
図15Cにおいてシステムサイクル2、活動電位サイクル0、論理クロックサイクルYに示される層-3-ニューロン-受信パルスが得られる。代替的に、層3のニューロンへの前記入力パルスは、他のニューロンからまとめて到来し得る。何れの場合にも、この受信された1つのパルスは、活動電位サイクルの最後の論理クロックサイクルで到来する。その効果は、
図15Dに示されるように、システムサイクル2、動作電位サイクル1、論理クロックサイクルYで層3のニューロンの入力への実質的に同時に受信される3つのパルスの効果と対照的であり得る。
【0068】
図15Dにおいて、システムサイクル3は、第三のシミュレートされたニューロン、すなわち図の例の層3のニューロンのシミュレーションに進む。システムサイクル2の活動電位サイクル0でこのニューロンに受信される唯一の入力スパイクについて、その対応する重みメモリアクセスは、システムサイクル3、活動電位サイクル0内で2論理クロックサイクルだけ早く、すなわちその論理クロックサイクル5で見られる。これは、図のレジームでは、後方に移される論理クロックサイクルの数がパイプライン調整サイクルの数であるからである。このスパイクからの重みは、論理ロックサイクルXで累積され、偶発的に、活動電位サイクル0の論理クロックサイクルYでスパイクを生じさせるのに十分である。それに対して、活動電位サイクル1で実質的に同時に受信された3つのスパイクの1つのみがパイプラインを通して処理される。これによりまた、偶発的に、システムサイクル3、活動電位サイクル1、論理クロックサイクルYに示されるように細胞体によりスパイクが生成される。
【0069】
層4に関して示される例は、5つのパルスが受信されたとき、さらにこれらの2つが活動電位サイクルの最後の2つの論理クロックサイクルで到達したときにどのようになるかを示す。これらのパルスは、
図15Dに示されるように、システムサイクル3の活動電位サイクル1で層4のニューロンへの異なるシナプス入力に到達し、
図15Eに示されるように、それに対応してシステムサイクル4の活動電位サイクル1で処理される。
図15Eに示されるように、層4のニューロンは、最初の3つのパルスからの累積された重みの結果として、ここではシステムサイクル4、活動電位サイクル1、論理クロックサイクル4で発火できるが、次の3つのパルスからの累積重みからの同じ活動電位サイクルで再び発火することはできない。これは、活動電位サイクルの論理クロックサイクルの長さがモデル化対象のニューロンの所望の不応期によって決定でき、それにより、シミュレートされたニューロンは、システムサイクル4の活動電位サイクル1ですでに発火してからそれほど早く再び発火することができない。
【0070】
図15A~
図1Eの例には、1システムサイクルについて2つの活動電位サイクルが関わり、すなわち、シミュレートされた各ニューロンは、各サイシステムサイクルで発火する機会が2回あるが、他の例では、これは、1システムサイクルについて1つの活動電位サイクル又は1システムサイクルについて3、4、5、100等、任意のそれより多い数であり得る。同様に、他の例では、1活動電位サイクルの論理クロックサイクルは、8より少ないか又は多いことができる。加えて、より大型のシステムは、幾つかのニューロンが1つの活動電位クロックを有し、他のニューロンが異なる活動電位クロックを有するように、異なるニューロモルフィックコアに異なる活動電位クロックを提供することによって構成できる。この特徴は、生物学的示唆性を向上させることができ、それは、生物学的脳内のニューロンの異なる集合が異なる不応期を有する可能性があるからである。
【0071】
ニューロモルフィックコアは、その細胞体からそれ自体のメモリへのラインをコアの設計の内部に提供するように構成され得、1つのシミュレートされたニューロンから、例えばニューラルネットワークの次の層等、次の連続的に処理されるニューロンに信号を提供するための外部のラインは、不要である。
【0072】
本明細書に記載のシステム及び方法では、1つ又は複数の生物学的ニューロンのプログラマブル且つスケーラブルなモデルを、高速であり、コンポーネント及びレイアウト効率が高く、生物学的に示唆的な超伝導ハードウェアで実装することができる。このコアは、様々な大規模ニューラルネットワークをハードウェアにおいて構築するために使用され得る。ニューロンコアの生物学的に示唆的な動作は、ソフトウェアベースのニューラルネットワークでの実装が難しい追加の能力をネットワークに提供する。コアを構成する超伝導電子機器は、それが、同等の従来技術による半導体ベースの設計の場合に可能なものよりも多い1ワットあたり1秒間のシナプス動作(SOPS/W:synaptic operation per second per watt)を行うことを可能にする。本明細書で使用される限り、「シナプス動作」という用語は、入力スパイク及び樹状突起の重み並びに生成されたスパイクの発火ニューロンからシナプスを通る標的ニューロンへの伝播に基づく、発火ニューロンでのスパイクの生成を指す。したがって、SOPSの数値は、計算時間と信号伝達時間との両方を含む。
【0073】
本願に記載のニューロモルフィックコアの生物学的示唆性について、生物学的ニューロンは、リーキ積分発火モデルにより説明されるものよりも複雑な挙動を示し、より明確に異なる状態を有する。ニューラルネットワークの新たな機能性を可能にするために、ニューロン挙動のより複雑なシミュレーションが必要である。複雑なニューロンモジュールのソフトウェアシミュレーションには、途方もない時間がかかり、非常に大型のニューロンネットワークに拡張することが困難である。複雑なニューロン挙動の半導体に基づくハードウェア実装には、多大なハードウェアオーバヘッドが関わり、これもスケーリングを限定する。本願に記載のニューロモルフィックコアは、これまで可能であったものより複雑なニューロンモデルを利用する大型のニューラルネットワークを構築するための効率的な方法を提供する。
【0074】
本開示のシステム及び方法は、したがって、機械学習のワークロードのために大幅に改善された性能を提供する一方、従来技術の半導体アクセラレータ又はニューロモルフィックプロセッサより消費電力が少ない。超伝導デジタルロジック、超伝導メモリ及び生物学的着想に基づく超伝導アナログ回路を組み合わせて、スケーラブル且つプログラマブルな超伝導ニューロモルフィックコアを創出することにより、本願に記載のシステム及び方法は、超伝導の利点を利用して、非超伝導ニューロモルフィックコアと異なる構造と動作を有する。例えば、本願に記載のシステム及び方法は、標準的な室温作動半導体電子機器CPUを用いてニューロンのための計算を行うニューロモルフィックプロセッサの設計よりはるかに低いエネルギ消費及びしたがってより低い演算コストを提供する。他の例として、本願に記載のシステム及び方法の共有シナプスアーキテクチャは、有利には、共有樹状突起アーキテクチャを実装し、シナプスのためにアナログ回路を使用するシステムより多岐にわたるニューロン機能性を提供する。
【0075】
さらに、本願に記載のシステム及び方法により、既存のニューロモルフィックデバイスによって提供されるものより十分な機能性を提供できる。例えば、本願に記載のシステム及び方法は、アナログ及びデジタルの両方のコンポーネントを用いてニューロンコアを作り、したがって動作がより遅く、且つ/又はコンポーネント点数及び/若しくはエネルギ消費の点でより効率が低いことがあり得る純粋なデジタル設計と異なる。さらに、本願に記載のシステム及び方法は、より中央集中的な細胞体回路を用いてスパイキング挙動を特定し、細胞体での入力重みを合計するためにアキュムレータを使用し、したがってニューロン細胞体を、ニューロンのスパイキング挙動を特定する1つ又は複数の樹状突起膜回路として実装し、したがって細胞体中にアキュムレータを有さない設計と異なる。本願のシステム及び方法の中央集中的な細胞体及び重み累積設計は、有利には、スパイク間のタイミング関係をより効率的な方法で保持する。
【0076】
既存の又は提案されているニューラルネットワークのアクセラレータの設計と比べて、本明細書に記載のシステム及び方法は、細胞体、軸索、樹状突起及びシナプス接続の機能を個別に実行するハードウェア回路を明確に実装することによって生物学的ニューロンをより忠実に複製し、それによりおそらく標準的なデジタル算術回路を用いて数の行列で積和演算を行うのみの設計より高い性能を提供する。このような設計は、脳回ニューラルネットワーク及び深層ニューラルネットワークアルゴリズムの重要部分を構成する積和演算を加速させるように構築され得るが、本願のシステム及び方法に見られるような生物学的ニューロンの機能を再現するハードウェアニューラルネットワークの汎用性を提供しない。
【0077】
さらに、本願に記載のシステム及び方法は、ミックストシグナル方式でも、プログラマブルでもなく、細胞体等、ニューロンの一部のみを表す、提案されている又は既存の超伝導ニューラルネットワークに対して、スケーラビリティ、プログラマビリティ及び生物学的忠実性の点の利点を有する。本願のシステム及び方法は、各ニューロンに必要な多数の制御ワイヤに依存し、時間多重化を行うことができない設計よりスケーラブルである。スケーラビリティは、多数のニューロンを有するニューラルネットワークの構築で使用されるコンポーネントの特に重要な特性である。例えば、トロント大学のアレックス・クリチェフスキ(Alex Krizhevsky)、イリヤ・スツケヴェル(Ilya Sutskever)及びジェフリ イー.ヒントン(Geoffrey E.Hinton)により、何百万もの画像から物体認識タスクを行うために構築されたイメージネットラージスケールビジュアルレコグニションチャレンジ(ImageNet Large Scale Visual Recognition Challenge)分類器アレックスネット(AlexNet)は、8層で650,000のニューロンを有する人工ニューラルネットワークから作られた。本願で提供されるミックストシグナル方式は、全ての機能のためにSQUID及び超伝導ループを使用し得る設計と比較して、他の面での効率性を提供する。本願のシステム及び方法は、外部バイアス電流を介してネットワークの動作のみを調整できる設計よりプログラマブルである。
【0078】
上述のものは、本発明の例である。当然のことながら、本発明を説明するために構成要素又は方法の考え得る全ての組合せを説明することは、不可能であるが、当業者であれば、本発明の他の多くの組合せ及び順列が可能であることがわかるであろう。したがって、本発明は、付属の特許請求の範囲を含めた本願の範囲内に含まれるかかる改変形態、改良形態及び変更形態の全てを包含するものとする。加えて、本開示又は特許請求の範囲において、「1つの(a)」、「1つの(an)」、「第一の」若しくは「他の」要素又はそれと同等の記載がある場合、これは、1つ又は複数のそのような要素を含むと解釈すべきであり、2つ以上のそのような要素を必要としなければ排除もしない。本明細書で使用される限り、「含む」という用語は、含むが、限定されないことを意味し、「含んでいる」という用語は、含むが、限定されないことを意味する。「基づく」という用語は、少なくとも部分的に基づくことを意味する。
以下に、上記実施形態から把握できる技術思想を付記として記載する。
[付記1]
超伝導ニューロモルフィックコアの少なくとも4つのインスタンスのネットワークであって、各コアのインスタンスの出力は、他のコアのインスタンスの各々の入力に直接接続され、前記超伝導ニューロモルフィックコアは、
単一磁束量子(SFQ)パルスを受信するように構成された入力ラインと、
ニューロモルフィックコアによってシミュレートされる単一のニューロンに入力を提供する異なる神経シナプスに対応する列と、前記ニューロモルフィックコアによって逐次的にシミュレートされる異なるニューロンに対応する行とにおいてシナプス重み値を格納するように構成された超伝導デジタルメモリアレイと、
累積期間中にメモリアレイから取得されたシナプス重み値を合計するように構成された超伝導デジタルアキュムレータと、
合計重みアキュムレータ出力をアナログ信号に変換するように構成された超伝導デジタル-アナログ変換器と、
閾値を超える前記アナログ信号に基づいて、SFQパルスを前記ニューロモルフィックコアの出力として提供するように構成された超伝導アナログ細胞体回路構成と
を含む、ネットワーク。
[付記2]
超伝導ニューロモルフィックコアのインスタンスのネットワークであって、各コアのインスタンスの入力及び出力は、超伝導デジタル分散ネットワークに接続され、前記超伝導ニューロモルフィックコアは、
単一磁束量子(SFQ)パルスを受信するように構成された入力ラインと、
ニューロモルフィックコアによってシミュレートされる単一のニューロンに入力を提供する異なる神経シナプスに対応する列と、前記ニューロモルフィックコアによって逐次的にシミュレートされる異なるニューロンに対応する行とにおいてシナプス重み値を格納するように構成された超伝導デジタルメモリアレイと、
累積期間中にメモリアレイから取得されたシナプス重み値を合計するように構成された超伝導デジタルアキュムレータと、
合計重みアキュムレータ出力をアナログ信号に変換するように構成された超伝導デジタル-アナログ変換器と、
閾値を超える前記アナログ信号に基づいて、SFQパルスを前記ニューロモルフィックコアの出力として提供するように構成された超伝導アナログ細胞体回路構成と
を含む、コアのインスタンスのネットワーク。
[付記3]
少なくとも1000個のニューロンを含むニューラルネットワークのシミュレーションを行うように構成される、付記2に記載のコアのインスタンスのネットワーク。
[付記4]
プログラマブルなハードウェアベースの人工ニューラルネットワークであって、
少なくとも1つのニューロモルフィックコアを含む超伝導集積回路であって、前記少なくとも1つのニューロモルフィックコアは、ニューラルネットワーク内の複数のニューロンを逐次的にシミュレートするように構成される、前記超伝導集積回路を備え、前記少なくとも1つのニューロモルフィックコアは、
超伝導デジタルメモリアレイであって、システムサイクル中に前記少なくとも1つのニューロモルフィックコアによってシミュレートされる特定のニューロンの特定のシナプス入力に関連付けられるプログラマブルな重みを表す、前記デジタルメモリアレイ内のワードを選択するように構成された列選択ライン及び行選択ラインを有する超伝導デジタルメモリアレイと、
デジタルメモリアレイからの処理された出力に基づいて、単一磁束量子(SFQ)パルスを前記ニューロモルフィックコアの出力として提供するように構成された超伝導アナログ細胞体回路構成と
を含む、人工ニューラルネットワーク。
[付記5]
前記少なくとも1つのニューロモルフィックコアは、
複数の入力信号を格納し、且つそれらを前記列選択ラインに提供するバッファと、
メモリアレイから取得された重みを合計するパイプラインデジタルアキュムレータと、
アキュムレータによって合計された前記重みに基づいて、細胞体回路構成にアナログ信号を提供するデジタル-アナログ変換器と
をさらに含む、付記4に記載の人工ニューラルネットワーク。