(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023088841
(43)【公開日】2023-06-27
(54)【発明の名称】ニューラルネットワーク回路及び装置
(51)【国際特許分類】
G06N 3/063 20230101AFI20230620BHJP
G11C 11/54 20060101ALI20230620BHJP
G11C 11/16 20060101ALI20230620BHJP
G06G 7/60 20060101ALI20230620BHJP
G06G 7/14 20060101ALI20230620BHJP
G06G 7/16 20060101ALI20230620BHJP
【FI】
G06N3/063
G11C11/54
G11C11/16 230
G06G7/60
G06G7/14
G06G7/16
【審査請求】未請求
【請求項の数】24
【出願形態】OL
(21)【出願番号】P 2022157261
(22)【出願日】2022-09-30
(31)【優先権主張番号】10-2021-0179808
(32)【優先日】2021-12-15
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(71)【出願人】
【識別番号】517066191
【氏名又は名称】リサーチ ビジネス ファウンデーション ソンギュングァン ユニバーシティ
【氏名又は名称原語表記】RESEARCH BUSINESS FOUNDATION SUNGKYUNKWAN UNIVERSITY
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】田 正勳
(72)【発明者】
【氏名】宋 至浩
(72)【発明者】
【氏名】李 允銘
(72)【発明者】
【氏名】李 柱兒
(57)【要約】 (修正有)
【課題】ニューラルネットワーク回路及び装置を提供すること。
【解決手段】ニューラルネットワーク回路100は、J個の出力ラインに沿って配置されて、第1抵抗値及び第2抵抗値のうちの1つを有する抵抗性メモリ素子を含み、入力ライン(K個のワードラインWL0~WLK-1)を介して入力信号を受信する場合に応答して、抵抗性メモリ素子及び入力信号に基づいてカラム信号を生成するシナプスメモリセル111を有するシナプスメモリアレイ110と、基準ラインに沿って配置されて、第1抵抗値と異なる第2抵抗値を有する基準メモリ素子を含み、前記基準メモリ素子及び前記入力信号に基づいて基準信号を生成する基準メモリセル121を有する基準メモリアレイ120と、前記カラム信号及び前記基準信号から前記出力ラインに対する出力信号159を生成する出力回路150と、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワーク装置であって、
出力ラインに沿って配置されて、第1抵抗値及び第2抵抗値のうちの1つを有する抵抗性メモリ素子を含み、入力ラインを介して入力信号を受信する場合に応答して、前記抵抗性メモリ素子及び前記入力信号に基づいてカラム信号を生成する、シナプスメモリセルと、
基準ラインに沿って配置されて、前記第1抵抗値とは異なる前記第2抵抗値を有する基準メモリ素子を含み、前記基準メモリ素子及び前記入力信号に基づいて基準信号を生成する、基準メモリセルと、
前記カラム信号及び前記基準信号から、前記出力ラインに対する出力信号を生成する、出力回路と、
を含む、装置。
【請求項2】
前記シナプスメモリセルは、前記シナプスメモリセルに割り当てられるシナプス加重値を表現するためのビット数の抵抗性メモリ素子を含み、
前記ビット数の抵抗性メモリ素子は、同じ入力ラインに沿って配置される、
請求項1に記載の装置。
【請求項3】
前記基準メモリセルは、前記シナプス加重値を表現するためのビット数の基準メモリ素子を含み、
前記ビット数の基準メモリ素子は、同じ入力ラインに沿って配置されている、
請求項2に記載の装置。
【請求項4】
同じ出力ラインに接続されたシナプスメモリセルの抵抗性メモリ素子は、互いに並列に接続されている、
請求項1に記載の装置。
【請求項5】
前記装置は、さらに、
前記出力ラインとは異なる出力ラインに沿って配置される他のシナプスメモリセル、を含み、
前記出力回路は、前記出力ライン及び前記他の出力ラインのそれぞれに対して、同じ基準メモリセルを用いて、個別的に出力信号を生成する、
請求項1に記載の装置。
【請求項6】
前記出力回路は、前記シナプスメモリセルのビットごとの前記カラム信号を累積することにより、カラム累積信号を生成し、前記基準メモリセルのビットごとの前記基準信号を累積することによって、基準累積信号を生成する、読出し回路、を含む、
請求項1に記載の装置。
【請求項7】
前記読出し回路は、前記シナプスメモリセル及び前記基準メモリセルのビットごとに、前記カラム信号を該当ビットに対応する倍数の電流でコピーする、カレントミラー、を含む、
請求項6に記載の装置。
【請求項8】
前記出力回路は、前記カラム累積信号と前記基準累積信号との間の差異に対応する前記出力信号を生成する、
請求項6に記載の装置。
【請求項9】
前記出力回路は、前記基準累積信号に対応する電流をノードに向かって流入させ、前記カラム累積信号に対応する電流を前記ノードから流出させることで、前記カラム累積信号と前記基準累積信号との間の差異に対応する電流が流れる、キャパシタ、を含む、
請求項8に記載の装置。
【請求項10】
前記出力回路は、前記第1抵抗値の抵抗性メモリ素子に基づいた第1電流と、前記第2抵抗値の抵抗性メモリ素子に基づいた第2電流との間の差異であるネット電流の整数倍に対応する電流を、前記出力信号として生成する、
請求項1に記載の装置。
【請求項11】
前記出力回路は、さらに、
前記出力信号を閾値と比較した結果に基づいて、他のニューラルネットワーク装置への発火を行う漏洩及び発火(LIF)回路、を含む、
請求項1に記載の装置。
【請求項12】
前記LIF回路は、前記出力信号に基づいて累積する電圧が、閾値時間内に閾値電圧に達しない場合に応答して、前記出力信号を漏洩する、
請求項11に記載の装置。
【請求項13】
前記LIF回路は、前記出力信号に基づいて累積する電圧が、前記閾値に対応する閾値時間内に閾値電圧に達する場合に応答して、前記他のニューロン回路への発火を行う、
請求項11に記載の装置。
【請求項14】
前記装置は、さらに、
複数のメモリ素子を含む閾値メモリアレイ、を含み、
前記複数のメモリ素子のうちの1つ以上のメモリ素子は、前記閾値に基づいて指定され、前記第1抵抗値を有する、
請求項11に記載の装置。
【請求項15】
前記装置は、さらに、
閾値生成回路と基準ワードラインを共有し、
前記基準ワードラインに沿って配置されて、前記第2抵抗値を有する追加基準メモリ素子を有する追加基準メモリセル、を含む、
請求項14に記載の装置。
【請求項16】
前記出力回路は、
閾値メモリセルに基づいて生成された信号及び前記追加基準メモリセルに基づいて生成された信号に基づいて、前記閾値に対応する閾値時間を設定する、
請求項15に記載の装置。
【請求項17】
前記出力回路は、
閾値メモリセルに基づいて生成された信号と、前記追加基準メモリセルに基づいて生成された信号との間の差異に対応する電流の累積を開始し、
前記累積された電流に対応する電圧が閾値電圧を超過する場合に、前記閾値に対応する閾値時間を指示する信号、を出力する、
請求項15に記載の装置。
【請求項18】
前記出力回路は、
閾値メモリセル及び前記追加基準メモリセルに基づいて決定された前記閾値に対応する閾値時間を、前記出力ラインに対する前記出力信号及び他の出力ラインに対する他の出力信号に対して適用する、
請求項15に記載の装置。
【請求項19】
前記出力回路は、
前記入力ラインに沿って受信される入力信号とシナプス加重値との間の積和(MAC)を、前記出力信号を解釈した結果に基づいて取得し、
前記取得された積和に基づいて決定されたノード値を他のニューロン回路に伝達する、
請求項1に記載の装置。
【請求項20】
電子装置であって、
複数のニューラルネットワーク回路を含み、
請求項1に記載の装置は、前記複数のニューラルネットワーク回路のうちの1つである、
電子装置。
【請求項21】
ニューラルネットワーク回路の動作方法であって、
出力ラインに沿って配置された1つ以上のメモリセルのうち、入力ラインを介して入力信号が印加されたシナプスメモリセルの抵抗性メモリ素子及び前記入力信号に基づいて、カラム信号を生成する、ステップと、
基準ラインに沿って配置された1つ以上のメモリセルのうち、前記入力信号が印加された基準メモリセルの基準抵抗値を有する基準メモリ素子及び前記入力信号に基づいて、基準信号を生成する、ステップと、
前記カラム信号及び前記基準信号から、前記出力ラインに対する出力信号を生成する、ステップと、
を含む、動作方法。
【請求項22】
ニューラルネットワーク装置であって、
それぞれの第1抵抗値及び第2抵抗値のうちの1つを有する複数の抵抗性メモリ素子を含み、かつ、入力ラインを介して受信される入力信号に基づいてカラム信号を生成する、ように構成されている、シナプスメモリセルと、
それぞれ前記第2抵抗値を有する複数の基準メモリ素子を含み、前記入力信号に基づいて基準信号を生成するように構成されている、基準メモリセルと、
出力回路と、
を含み、
前記出力回路は、
前記シナプスメモリセルの各ビットに対して前記カラム信号を累積することによって、カラム累積信号を生成し、前記基準メモリセルの各ビットに対して前記基準信号を累積することによって、基準累積信号を生成し、
前記カラム累積信号と前記基準累積信号との間の差異に対応する、出力信号を生成する、
ように構成されている、
装置。
【請求項23】
前記出力回路は、
前記第1抵抗値を有する前記抵抗性メモリ素子の個数に基づいて決定された値、及び、
前記第2抵抗値を有する抵抗性メモリ素子に流れる電流の値と、前記第1抵抗値を有する抵抗性メモリ素子に流れる電流値との間の積に対応する前記出力信号、
を生成する、ように構成されている、
請求項22に記載の装置。
【請求項24】
前記第2抵抗値は、前記第1抵抗値よりも大きく、
前記抵抗性メモリ素子は、MRAM(magnetic random-access memory)を含む、
請求項22に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク回路及び装置に関する。
【背景技術】
【0002】
現在、フォン・ノイマン(von Neumann)コンピュータアーキテクチャーにおけるプロセッサとメモリとの間の膨大なデータの頻繁な移動は、長いディレイと大きい電力消耗を引き起こし、チップの性能を制限してしまう。現在のソフトウェア基盤のディープ神経網演算は、高性能CPU、GPU、ASICなどのAI加速器ハードウェアが用いられている。
【0003】
脳神経模写アーキテクチャーは、データが格納されているメモリ素子の位置で直ちに演算を行い、ニューロン回路間の接続強度(例えば、シナプス加重値)をメモリ素子に格納して更新することができる。脳神経模写演算方式は、人工知能、ビックデータ、センサネットワーク、パターン/事物認識などに適用されてもよい。脳神経模写アーキテクチャーは、アナログメモリを用いたハードウェアで実現することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の目的は、ニューラルネットワーク回路及び装置を提供することにある。
【課題を解決するための手段】
【0005】
一実施形態に係るニューラルネットワーク装置は、出力ラインに沿って配置されて第1抵抗値及び第2抵抗値のうちの1つを有する抵抗性メモリ素子を含み、入力ラインを介して入力信号を受信する場合に応答して、前記抵抗性メモリ素子及び前記入力信号に基づいてカラム信号を生成するシナプスメモリセルと、基準ラインに沿って配置され、前記第1抵抗値と異なる前記第2抵抗値を有する基準メモリ素子を含み、前記基準メモリ素子及び前記入力信号に基づいて基準信号を生成する基準メモリセルと、前記カラム信号及び前記基準信号から前記出力ラインに対する出力信号を生成する出力回路と、を含むことができる。
【0006】
前記シナプスメモリセルは、前記シナプスメモリセルに割り当てられるシナプス加重値を表現するためのビット数の抵抗性メモリ素子を含み、前記ビット数の抵抗性メモリ素子は、同じ入力ラインに沿って配置され得る。
【0007】
前記基準メモリセルは、前記シナプス加重値を表現するためのビット数の基準メモリ素子を含み、前記ビット数の基準メモリ素子は、同じ入力ラインに沿って配置され得る。
【0008】
同じ出力ラインに接続されたシナプスメモリセルの抵抗性メモリ素子は、互いに並列に接続され得る。
【0009】
ニューラルネットワーク装置は、さらに、前記出力ラインとは異なる出力ラインに沿って配置される他のシナプスメモリセルを含み、前記出力回路は、前記出力ライン及び前記他の出力ラインのそれぞれに対して同じ基準メモリセルを用いて個別的に出力信号を生成することができる。
【0010】
前記出力回路は、前記シナプスメモリセルのビットごとの前記カラム信号を累積することによりカラム累積信号を生成し、前記基準メモリセルのビットごとの前記基準信号を累積することによって基準累積信号を生成する、読出し回路を含み得る。
【0011】
前記読出し回路は、前記シナプスメモリセル及び前記基準メモリセルのビットごとに、前記カラム信号を該当ビットに対応する倍数の電流でコピーする、カレントミラーを含み得る。
【0012】
前記出力回路は、前記カラム累積信号と前記基準累積信号との間の差異に対応する前記出力信号を生成することができる。
【0013】
前記出力回路は、前記基準累積信号に対応する電流をノードに向かって流入させ、前記カラム累積信号に対応する電流を前記ノードから流出させることで、前記カラム累積信号と前記基準累積信号との間の差異に対応する電流が流れるキャパシタを含み得る。
【0014】
前記出力回路は、前記第1抵抗値の抵抗性メモリ素子に基づいた第1電流と、前記第2抵抗値の抵抗性メモリ素子に基づいた第2電流との間の差異であるネット電流(net current)の整数倍に対応する電流を前記出力信号として生成することができる。
【0015】
前記出力回路は、さらに、前記出力信号を閾値と比較した結果に基づいて、他のニューラルネットワーク装置への発火を行う漏洩及び発火回路、を含み得る。
【0016】
前記LIF回路は、前記出力信号に基づいて累積する電圧が、閾値時間内に閾値電圧に達しない場合に応答して、前記出力信号を漏洩することができる。
【0017】
前記LIF回路は、前記出力信号に基づいて累積する電圧が、前記閾値に対応する閾値時間内に閾値電圧に達する場合に応答して、前記他のニューロン回路への発火を行うことができる。
【0018】
ニューラルネットワーク装置は、さらに、複数のメモリ素子を含む閾値メモリアレイを含み、前記複数のメモリ素子のうちの1つ以上のメモリ素子は、前記閾値に基づいて指定され、前記第1抵抗値を有し得る。
【0019】
ニューラルネットワーク装置は、さらに、前記閾値生成回路と基準ワードラインを共有し、前記基準ワードラインに沿って配置されて、前記第2抵抗値を有する追加基準メモリ素子を有する追加基準メモリセル、を含み得る。
【0020】
前記出力回路は、前記閾値メモリセルに基づいて生成された信号及び前記追加基準メモリセルに基づいて生成された信号に基づいて、前記閾値に対応する閾値時間を設定することができる。
【0021】
前記出力回路は、前記閾値メモリセルに基づいて生成された信号と、前記追加基準メモリセルに基づいて生成された信号との間の差異に対応する電流の累積を開始し、前記累積された電流に対応する電圧が閾値電圧を超過する場合に、前記閾値に対応する閾値時間を指示する信号を出力することができる。
【0022】
前記出力回路は、前記閾値メモリセル及び前記追加基準メモリセルに基づいて決定された前記閾値に対応する閾値時間を、前記出力ラインに対する前記出力信号及び他の出力ラインに対する他の出力信号に対して適用することができる。
【0023】
前記出力回路は、前記入力ラインに沿って受信される入力信号とシナプス加重値との間の積和(multiply and accumulation:MAC)を、前記出力信号を解釈した結果に基づいて取得し、前記取得された積和に基づいて決定されたノード値を他のニューロン回路に伝達することができる。
【0024】
一実施形態に係る電子装置は、複数のニューラルネットワーク回路を含み、請求項1に記載の装置が前記複数のニューラルネットワーク回路のうちの1つであり得る。
【0025】
一実施形態に係るニューラルネットワーク回路の動作方法は、出力ラインに沿って配置された1つ以上のメモリセルのうち、入力ラインを介して入力信号が印加されたシナプスメモリセルの抵抗性メモリ素子及び前記入力信号に基づいて、カラム信号を生成するステップと、基準ラインに沿って配置された1つ以上のメモリセルのうち、前記入力信号が印加された基準メモリセルの基準抵抗値を有する基準メモリ素子及び前記入力信号に基づいて、基準信号を生成するステップと、前記カラム信号及び前記基準信号から前記出力ラインに対する出力信号を生成するステップと、を含む。
【0026】
一実施形態に係るニューラルネットワーク装置は、それぞれの第1抵抗値及び第2抵抗値のうちの1つを有する複数の抵抗性メモリ素子を含み、かつ、入力ラインを介して受信される入力信号に基づいてカラム信号を生成するように構成されているシナプスメモリセルと、それぞれ前記第2抵抗値を有する複数の基準メモリ素子を含み、前記入力信号に基づいて基準信号を生成するように構成されている基準メモリセルと、出力回路とを含み、前記出力回路は、前記シナプスメモリセルの各ビットに対して前記カラム信号を累積することによって、カラム累積信号を生成し、前記基準メモリセルの各ビットに対して前記基準信号を累積することによって、基準累積信号を生成し、前記カラム累積信号と前記基準累積信号との間の差異に対応する出力信号を生成するように構成され得る。
【0027】
前記出力回路は、前記第1抵抗値を有する前記抵抗性メモリ素子の個数に基づいて決定された値、及び、前記第2抵抗値を有する抵抗性メモリ素子に流れる電流の値と前記第1抵抗値を有する抵抗性メモリ素子に流れる電流値との間の積に対応する前記出力信号を生成する、ように構成され得る。
【0028】
前記第2抵抗値は、前記第1抵抗値よりも大きく、前記抵抗性メモリ素子は、MRAM(magnetic random-access memory)を含むことができる。
【発明の効果】
【0029】
本発明によれば、ニューラルネットワーク回路及び装置を提供することができる。
【図面の簡単な説明】
【0030】
【
図1】一実施形態に係るニューラルネットワーク回路を示す。
【
図2】一実施形態に係るシナプスメモリセル及び読出し回路を示す。
【
図3】一実施形態に係る出力回路の漏洩及び発火(Leaky Integration and Fire、LIF)回路を示す。
【
図4】一実施形態に係るニューラルネットワーク回路に含まれた閾値生成回路及び追加基準回路を説明する図である。
【
図5】一実施形態に係るシナプスメモリカラム、基準カラム、閾値生成カラム、及び追加基準カラムで生成されるネット信号を用いた発火比較の例示を説明する図である。
【
図6】一実施形態に係るシナプスメモリカラム、基準カラム、閾値生成カラム、及び追加基準カラムで生成されるネット信号を用いた発火比較の例示を説明する図である。
【
図7】一実施形態に係る出力回路の閾値時間生成回路を示す。
【
図8】一実施形態に係る出力回路でLIF回路に含まれる素子及び素子ごとのタイミング図を示す。
【
図9】一実施形態に係るニューラルネットワーク回路の発火動作例示を説明する図である。
【
図10】一実施形態に係るニューラルネットワーク回路の動作方法を示すフローチャートである。
【発明を実施するための形態】
【0031】
実施形態に対する特定の構造的又は機能的な説明は、単なる例示のための目的として開示されたものであって、様々な形態に変更され得る。したがって、実施形態は、特定の開示形態に限定されるものではなく、本明細書の範囲は、技術的な思想に含まれる変更、均等物、ないし代替物を含む。
【0032】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は、1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は、第2構成要素と命名することができ、同様に、第2構成要素は、第1構成要素としても命名することができる。
【0033】
いずれかの構成要素が他の構成要素に「連結」されているか「接続」されていると言及されたときには、その他の構成要素に対して直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0034】
単数の表現は、文脈上、明白に異なる意味をもたない限り、複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又は、これを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0035】
異なるように定義がされない限り、技術的又は科学的な用語を含んで、ここにおいて使用される全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0036】
以下に、添付の図面を参照しながら実施形態を詳細に説明する。図面を参照して説明する際には、図面符号に拘わらず、同じ構成要素には同じ参照符号を付与し、これに対する重複する説明は省略する。
【0037】
図1は、一実施形態に係るニューラルネットワーク回路を示す。
【0038】
一実施形態に係るニューラルネットワーク回路100(例えば、ニューラルネットワーク装置)は、ニューラルネットワークで以前レイヤのニューロン回路及び対象レイヤのニューロン回路を接続するシナプスを模写した回路として実現することができる。ニューラルネットワーク回路100を含む電子装置をニューラルネットワーク装置に示すことができる。ニューロン回路は、ニューロン(例えば、ノード)の活性化及び/又はニューラルネットワークの活性化関数(activation function)を実現した回路を含んでもよい。ニューラルネットワークは、それぞれ複数のノードを有する複数のレイヤを含み、以前レイヤは、ニューラルネットワークで対象レイヤの以前に接続されているレイヤを示す。ニューラルネットワークのノードは、ニューラルネットワーク回路100のニューロン回路に対応する。ニューラルネットワーク回路100は、以前レイヤのニューロン回路から出力されたノード値(例えば、入力値)を該当するニューロン回路間の接続強度(例えば、シナプス加重値)に基づいて、対象レイヤのニューロン回路に伝達することができる。対象レイヤの対象ニューロン回路は、対象ニューロン回路に接続された以前レイヤの以前ニューロン回路から受信されるノード値及びシナプス加重値に基づいた加重和に、活性化関数が適用された結果を、ノード値として有することができる。本明細書において、ニューラルネットワーク回路100のニューロン回路は、出力回路150において実現され、後述するが、スパイキングニューラルネットワーク(spiking neural network)を実現したニューラルネットワーク回路100のニューロン回路は、漏洩及び発火(Leaky Integration and Fire、LIF)回路を含んでもよい。但し、これに限定されることなく、ニューラルネットワークの活性化関数は、他の方式で設計された回路において実現されてもよい。特定回路が「ニューロン回路」、ノードが「ニューロン」、接続が「シナプス」として称されるが、「ニューロン回路」、「ニューロン」、及び「シナプス」は、単にニューラルネットワークのハードウェアで具現されたノードを示す用語である。
【0039】
ニューラルネットワーク回路100は、シナプスメモリアレイ110、基準メモリアレイ120、及び、出力回路150を含む。シナプスメモリアレイ110及び基準メモリアレイ120は、メモリアレイとして称されてもよい。
【0040】
シナプスメモリアレイ110は、入力ライン及び出力ラインに沿って配置される、複数のシナプスメモリセル111を含む。複数のシナプスメモリセル111は、クロスバーアレイの形態に配置されてもよい。入力ラインは、入力を受信するラインとして、
図1ではK個のワードラインWL
0~WL
K-1に示されている。Kは、1以上の整数である。出力ラインは、該当出力ラインに沿って配置されたシナプスメモリセル111の抵抗性メモリ素子により指示されるシナプス加重値と、各入力信号によって指示される入力値との間の演算結果(例えば、積の結果)が合算された値(例えば、積和(multiplication and accumulation、MAC)である結果値又は加重和を示す出力信号159を出力することができる。出力ラインは、
図1では、J個のラインに図示されており、Jは、1以上の整数であってもよい。従って、シナプスメモリアレイ110は、K×J個のシナプスメモリセル111を含み得る。言い換えれば、
図1に示されたニューラルネットワーク回路100は、K個の以前ノードと、J個の次のノードとを接続する、シナプス接続が具現された回路として解釈され得る。シナプス加重値がaビットに表現された場合、各出力ラインは、a個のビットラインを含んでもよい。ここで、aは、1以上の整数であってもよい。いずれかの出力ラインから出力される出力信号159は、該当出力ラインに含まれているビットラインで生成されるカラム信号(例えば、ビットカラム信号)が累積された信号と、基準ラインで生成される基準信号が累積された信号との間の差信号であってもよい。
【0041】
入力ラインは、プリシナプス回路(pre-synaptic circuit)を介して入力信号を受信することができる。プリシナプス回路は、ニューラルネットワークの以前ノード(例えば、以前のニューロン回路)の出力を受信し、現在のノードのシナプスメモリ素子に伝達することができる。プリシナプス回路は、アクソン回路(axon circuit)として示してもよい。出力ラインは、ポストシナプス回路(post-synaptic circuit)に接続され、該当出力ラインに接続されたシナプスメモリ素子のシナプス加重値と、入力信号との間の積和に対応する信号を、ポストシナプス回路に伝達することができる。ポストシナプス回路は、シナプス加重値と入力信号との間の積和に対応する出力信号159を、次のノード(例えば、次のシナプス回路)に発火(fire)し、または、伝達することができる。ポストシナプス回路は、デンドライト回路(dendrites circuit)として示してもよく、例示的に後述するLIF回路として実現してもよい。
【0042】
入力信号は、入力ラインを介して受信される信号を示す。本明細書において、ニューラルネットワーク回路100が、いずれかの入力ラインでビット値「1」に対応する入力信号を受信する場合、該当入力ラインに入力電圧が印加されてもよい。異なる例として、いずれかの入力ラインの入力信号がビット値「0」を示す場合、ニューラルネットワーク回路100は、該当入力ラインを不活性化することができる。言い換えれば、ニューラルネットワーク回路100は、該当入力ラインに電圧を印加していないか、または、0Vの電圧を印加することができる。但し、入力信号が示すビット値ごとに印加される入力電圧は、前述したものに限定されることはない。
図1に示された例示では、K個の入力ラインのうち、k個の入力ラインで活性化値(例えば、ビット値「1」に対応する電圧)が印加されてもよい。kは、0以上かつK以下の整数であってもよい。
【0043】
シナプスメモリセル111は、出力ラインに沿って配置されて、第1抵抗値及び第2抵抗値のうち1つを有する抵抗性メモリ素子を含んでもよい。シナプスメモリセル111は、シナプスメモリセル111に割り当てられるシナプス加重値を表現するためのビット数(bit number)の抵抗性メモリ素子を含む。前述したビット数の抵抗性メモリ素子は、同じ入力ラインに沿って配置されてもよい。
【0044】
シナプスメモリセル111は、入力ラインを介して入力信号を受信する場合に応答して、抵抗性メモリ素子及び入力信号に基づいて、カラム信号を生成することができる。第1抵抗値及び第2抵抗値は、それぞれ2進化された値にマッピングされてもよい。例えば、第1抵抗値及び第2抵抗値は、それぞれ「0」又は「1」のビット値を指示する。例示的に、低抵抗である第1抵抗値は「0」のビット値、高抵抗である第2抵抗値は「1」のビット値を示す。但し、これに限定されることなく、設計に応じて、第1抵抗値及び第2抵抗値にマッピングされるビット値は、変わり得る。
【0045】
シナプス加重値がマルチビットからなるビットシーケンスとして表現される場合、シナプスメモリセル111は、複数のサブセルを含んでもよい。例えば、シナプス加重値は、aビットのビットシーケンスとして表現されてもよい。aビットのシナプス加重値に対して、シナプスメモリセル111は、a個のサブセルを含んでもよい。第1サブセルは、シナプス加重値を示すビットシーケンスのLSB(least significant bit)ディジットに対応するビット値の抵抗値を有し、第aサブセルは、MSB(most significant bit)ディジットに対応するビット値の抵抗値を有することができる。a個のサブセルのそれぞれは、シナプス加重値のうち該当するビットディジットのビット値に対応する抵抗値を有する抵抗性メモリ素子、を含んでもよい。a個のサブセルのそれぞれに含まれている抵抗性メモリ素子は、該当するビットディジットのビット値にマッピングされた抵抗値を有するように設定され得る。第1抵抗値及び第2抵抗値のうち1つを有するように設定されてもよい。下記の
図2では、シナプスメモリセル111が、3ビットセルに具現された例示について説明する。
【0046】
カラム信号は、シナプスメモリアレイ110でいずれかのカラムラインに沿って配置されている、シナプスメモリセル111で出力される信号が、累積された信号である。例えば、カラム信号は、シナプスメモリアレイ110で、同じビットラインに接続されたサブセルの抵抗性メモリ素子に対応するビット値と、入力信号の入力値との間の積和に対応する信号である。言い換えれば、いずれかのビットラインのカラム信号は、出力ラインで該当ビットラインが示すビットディジットの積和に対応する信号であってもよい。後述するが、ニューラルネットワーク回路100は、同じ出力ラインに含まれているビットラインのカラム信号のそれぞれに、該当ビットラインのビットディジットに対応する加重値(以下、「ビット加重値」)を乗算して、合算した信号を取得することがでる。例えば、LSBに対応するビット加重値は1/4、LSBから1番目のビットディジットに対応するビット加重値は1/2、LSBから2番目のビットディジットに対応するビット加重値は1であってもよい。但し、LSBから2番目のビットディジットのビット加重値が1であると仮定して設計したものであり、ビット加重値は、これに限定されることなく、設計に応じて変わり得る。説明の便宜上、本明細書では、いずれかのカラムを主に縦ラインとして示しているが、これに限定されることなく、設計に応じて、カラムラインの形状は変わり得る。
【0047】
上述のように、抵抗性メモリ素子は、第1抵抗値及び第2抵抗値のうちいずれかの抵抗値を有する素子である。例えば、抵抗性メモリ素子は、MRAM(magnetic ram)であってもよい。MRAMは、MTJ(Magnetic Tunnel Junction)の2つの状態のうち1つの状態を有してもよい。P状態(parallel state)のMRAMは、第1抵抗値を有し、AP状態(anti-parallel state)のMRAMは、第2抵抗値を有する。第2抵抗値は、第1抵抗値より大きくてもよい。第2抵抗値は高抵抗値(high resistance value)として、第1抵抗値は低抵抗値(low resistance value)として称されてもよい。AP状態は高抵抗状態、P状態は低い抵抗状態として称されてもよい。MRAMの第1抵抗値対第2抵抗値の抵抗比は、2であってもよい。但し、抵抗性メモリ素子の抵抗比は、前述のように限定されず、素子の種類に応じて、抵抗比が変わり得る。一実施形態に係るニューラルネットワーク回路100は、抵抗性メモリ素子の第1抵抗値及び第2抵抗値により出力される信号を区別するために、後述する基準メモリアレイ120を用いて、ネット信号を生成することができる。
【0048】
参考として、本明細書では説明の便宜のために、P状態及びAP状態の抵抗性メモリ素子を主に説明するが、これに限定されることはない。説明に反しない限り、P状態は第1抵抗値を有する状態、AP状態は第2抵抗値を有する状態に置換されて、解釈されてもよい。
【0049】
基準メモリアレイ120は、基準ラインに沿って配置される複数の基準メモリセル121を含む。
図1に示された例示において、基準メモリアレイ120に含まれている基準メモリセル121は、基準ラインに沿って配置されてもよい。基準メモリアレイ120は、入力ラインの個数と同じ個数の基準メモリセル121を含んでもよい。
【0050】
基準メモリセル121は、基準ラインに沿って配置され、第1抵抗値とは異なる第2抵抗値を有する基準メモリ素子を含んでいる。基準メモリセル121は、シナプス加重値を表現するためのビット数の基準メモリ素子を含んでもよい。前述したビット数の基準メモリ素子は、同じ入力ラインに沿って配置されてもよい。各基準メモリセル121は、前述したシナプスメモリセル111と同様に、ビット数だけの基準サブセル、言い換えれば、ビット数だけの抵抗性メモリ素子を含むことができる。但し、基準メモリセル121は、前述したシナプスメモリセル111とは相違して、全て第2抵抗値として設定された抵抗性メモリ素子を含んでもよい。基準メモリセル121は、基準メモリ素子及び入力信号に基づいて、基準信号を生成することができる。基準信号は、基準メモリアレイ120で、基準ラインに沿って配置された基準メモリセル121から出力される信号が累積した信号である。基準ラインも、ビット数だけの基準ビットラインを含んでもよい。例えば、基準信号は、基準メモリアレイ120で、同じ基準ビットラインに接続されている基準サブセルの抵抗性メモリ素子に対応するビット値と、入力信号の入力値との間の積和に対応する信号である。言い換えれば、いずれか1つの基準ビットラインの基準信号は、基準ラインで該当基準ビットラインが示すビットディジットの積和に対応する信号であり得る。本明細書において、第2抵抗値として設定された抵抗性メモリ素子は、AP状態のMRAM素子APに示されている。
【0051】
出力回路150は、カラム信号及び基準信号から、出力ラインに対する出力信号159を生成することができる。参考として、ニューラルネットワーク回路100は、出力ラインと他の出力ラインに沿って配置される他のシナプスメモリセルを、さらに含んでもよい。この場合、出力回路150は、出力ライン及び他の出力ラインのそれぞれに対して同じ基準メモリセルを用いて、個別に出力信号を生成することができる。言い換えれば、出力回路150は、出力ラインごとに異なる出力信号を生成するために、同じ基準カラム信号を利用することができる。出力回路150の動作については、後述する。
【0052】
一実施形態に係るニューラルネットワーク回路100は、シナプス動作(Synapse operation)を行っている間に、各シナプスメモリ素子にアクセスするためのK個のワードラインに入力が入ってくると、カラムごとに生成された信号(例えば、電流信号)を全て累積することができる。出力ラインは、ビットディジットに対応するビットラインを含み、出力ラインから出力されるカラム累積信号ICellsは、個別ビットラインのカラム信号にビット加重値が適用された信号が、統合された信号であってもよい。カラム累積信号は、下記の数式(1)のように表現され得る。
ICells=MIP+(N-M)IAP (1)
【0053】
前述した数式(1)において、IPは、P状態(例えば、第1抵抗値)の抵抗性メモリ素子に流れる電流を示し、IAPは、AP状態(例えば、第2抵抗値)の抵抗性メモリ素子に流れる電流を示す。カラム累積信号ICellsは、IP及びIAPの線型な組み合せである。出力回路150のシナプス読出し回路151が、カラム累積信号ICellsを生成することができる。
IAPs=NIAP (2)
【0054】
前述した数式(2)は、基準メモリアレイ120に含まれているAP状態の抵抗性メモリ素子のうち、入力信号が印加された抵抗性メモリ素子に流れる電流信号に、ビットディジットごとのビット加重値が適用された信号である。基準累積信号I
APsは、ビットディジットごとの基準信号に、ビット加重値が適用されて統合された信号である。出力回路150の基準読出し回路152が、基準累積信号I
APsを生成することができる。前述した数式(1)及び数式(2)において、線型組み合せの係数N及びMは、下記の数式(3)及び数式(4)のように表現され得る。
N=k・(2
a―1) (3)
【数1】
【0055】
数式(3)及び数式(4)において、Nは、活性化したワードライン(例えば、入力ライン)に接続されたサブセルに基づいて決定される値を示す。kは、上述のように、活性化したワードライン(例えば、入力ライン)の個数を示す。aは、各メモリセルに含まれているサブセルの個数であり、シナプス加重値のビット数である。例えば、Nは、いずれかの出力ラインに接続されているシナプスメモリセル111のうち、活性化したワードラインに接続されているシナプスメモリセル111に含まれた各サブセルが示すビットディジットを指数にする、2のべき乗の値の和である。Mは、N以下の整数であって、活性化したワードラインに接続されているシナプスメモリセル111のうち、P状態(例えば、第1抵抗値)のサブセルに基づいて決定される値である。miは、第iシナプスメモリセルが第1抵抗値を有する場合は1であり、第iシナプスメモリセルが第2抵抗値を有する場合は0である。例えば、Mは、いずれかの出力ラインに接続されているシナプスメモリセル111のうち、活性化したワードラインに接続されているシナプスメモリセル111において、P状態のサブセルが示すビットディジットを指数にする、2のべき乗の値の和である。
Inet,column=ICells-IAPs=M(IP-IAP) (5)
【0056】
一実施形態に係るニューラルネットワーク回路100の出力回路150は、前述した数式(5)により、カラム累積信号ICellsと基準累積信号IAPsとの間の差異に対応する出力信号159Inet、columnを生成することができる。前述した数式(5)によれば、出力信号159Inet、columnは、P状態(例えば、第1抵抗値)の抵抗性メモリ素子が指示する2進値の和である、Mに比例する電流信号である。本明細書において、カラム累積信号ICellsと基準累積信号IAPsとの間の差信号を、有効信号又はネット信号(net signal)とも示すことができる。出力信号159Inet、columnは、電流形態の信号であるため、ネット電流(net current)とも示すことができる。いずれかの抵抗性メモリ素子を用いて生成されるネット電流は、IP-IAP=0又はIAP-IAP=0のうちの1つである。言い換えれば、出力信号159Inet、columnは、M個のネット電流の合算信号と解釈されるか、又は、同一であってもよい。従って、積分器(integrator)及び比較器(comparator)の性能が十分な場合、ニューラルネットワーク回路100は、多くの個数のシナプスメモリセル111を含むことができる。
【0057】
本明細書において、ニューラルネットワーク回路100は、シナプス加重値により電流を累積する生物神経網の模写機能を実現する、スパイキングニューラルネットワーク(spiking neural network、SNN)を主に説明するが、これに限定されることはない。一実施形態に係るニューラルネットワーク回路100は、抵抗比の大きくないメモリを使用するCIM(Computation In Memory)回路、及び、VMM(Vector Matrix Multiplication)回路のような、MAC(Multiply-Accumulate)演算を実現するシステムに適用されてもよい。ニューラルネットワーク回路100に含まれている抵抗性メモリ素子の低抵抗及び高抵抗間の抵抗比が大きくなくても、前述したネット信号を介して、出力値が区別され得る。一実施形態に係るニューラルネットワーク回路100では、第1抵抗値対第2抵抗値の抵抗比が1を超過する抵抗性メモリ素子を用いても、ネット信号を介して出力が区別されてもよい。従って、メモリアレイから出力された電流の検出及び合算のための設計における制約を低減することができる。
【0058】
従って、一実施形態に係るニューラルネットワーク回路100は、高抵抗状態を相殺することで、さらに大きいメモリアレイを有することができる。さらに、ニューラルネットワーク回路100は、多い量のデータを扱う人工知能プロセッサにも適用され得る。
【0059】
参考として、本明細書では、出力回路150が活性化関数回路としてLIF回路を含む例示を主に説明するが、これに限定されることはない。例えば、ニューラルネットワーク回路100は、LIF回路の代わりに、アナログデジタルコンバータ(Analog-to-Digital converter)を含み、前述した出力信号をアナログ信号からデジタル値(例えば、出力データ)に変換してもよい。ニューラルネットワーク回路100を含む電子装置は、出力データに活性化関数を適用して、次のノードに伝播する値を決定してもよい。言い換えれば、電子装置は、活性化関数に対応する演算をデジタルレベルで行ってもよい。
【0060】
図2は、一実施形態に係るシナプスメモリセル及び読出し回路を示す。
【0061】
一実施形態に係るニューラルネットワーク回路の出力回路は、シナプスメモリアレイ210に接続されている読出し回路251(例えば、非限定的な例示として、
図1に示すシナプス読出し回路151)及びLIF回路を含む。
図2においては省略されたが、出力回路150は、基準メモリアレイに接続される基準読出し回路251を含んでもよい。
図2では、シナプス読出し回路251を主に説明するが、基準読出し回路251もシナプス読出し回路251と同様に構成され得る。
【0062】
図2に示すように、同じ出力ラインに接続されているシナプスメモリセル211の抵抗性メモリ素子は、互いに並列に接続されている。例えば、同じ出力ラインに接続されているシナプスメモリセル211のうち、同じビットラインに接続された抵抗性メモリ素子が、互いに並列に接続されてもよい。従って、同じビットラインの抵抗性メモリ素子から出力される電流信号が、出力ラインに沿って統合され得る。
図2において、抵抗性メモリ素子の抵抗はR
Dataとして示されている。上述したように、ビットラインBL0~BL2に沿って配置された抵抗性メモリ素子のうち、ワードラインWL
0~WL
K-1を介して入力信号が印加された抵抗性メモリ素子は、該当抵抗性メモリ素子にかかる電圧による電流信号を生成することができる。ワードラインWL
0~WL
K-1に沿って入力信号が印加されたスイッチSW
sense(例えば、トランジスタ)は、抵抗性メモリ素子を検出ラインと接続させ得る。ここで、Sel_data信号が印加されることによって、ビットラインBL0~BL2及び検出ライン(sense line;SL)が、それぞれ供給電圧及びグラウンドに接続され得る。
【0063】
演算増幅器OPは、高い利益を有し、検出ラインSLとビットラインBL0~BL2との間に見える抵抗値に関係なく、ビットラインBL0~BL2の電圧をVamp_refに固定させることができる。言い換えれば、検出ラインSLとビットラインBL0~BL2との間の電圧差が一定に保持され得る。抵抗性メモリ素子は、それぞれの両端に同一にかかる固定された電圧Vamp_refに対して、抵抗RDataにより決定された電流(例えば、カラム信号)をビットラインBL0~BL2に生成することができる。
【0064】
出力回路の読出し回路251は、シナプスメモリセル211及び基準メモリセルのビットごとにカラム信号を該当ビットに対応する倍数の電流でコピーする、カレントミラーを含んでもよい。例えば、読出し回路251のカレントミラーは、ビットラインで生成されたカラム信号を他のビットラインBL’0~BL’2に複製することができる。複製された電流の大きさは、トランジスタの幅によって変わり得る。上述したように、カレントミラーは、ビット加重値に対応する電流コピー比でカラム信号を複製することができる。例示的に、
図2において、第1ビットラインBL0は1/4倍、第2ビットラインBL1は1/2倍、第3ビットラインBL2は1倍に電流が複製されている。非限定的な例示として、第1ビットラインBL0は、LSBに対応するビット加重値に対応する。第2ビットラインBL1は、LSBから1番目のビットディジット(bit digit)に対応するビット加重値に対応する。第3ビットラインBL2は、LSBから2番目のビットディジットに対応するビット加重値に対応する。
【0065】
出力回路150の読出し回路251は、シナプスメモリセル211のビットごとのカラム信号を累積することにより、カラム累積信号(column integrated signal)ICellsを生成し、基準メモリセルのビットごとの基準信号を累積することによって、基準累積信号(reference integrated signal)IAPsを生成することができる。例えば、出力回路150は、カラム信号から複製された電流を合算することによって、カラム累積信号ICellsを生成することができる。出力回路150は、基準信号に対しても前述のような読出し回路251及び動作により、基準累積信号IAPsを生成することができる。参考として、抵抗性メモリ素子がMRAMとして実現される場合、MTJに流れる電流が小さくなると、読み出し妨害(read disturbance)が発生しないため、相対的に低い共通入力(low common input)を処理することのできる増幅器が求められる。出力回路150は、カラム累積信号ICells及び基準累積信号IAPsに基づいて出力信号を生成し、生成された出力信号を処理するLIF回路260を、さらに含んでもよい。LIF回路260の構造及び動作については後述する。
【0066】
出力回路150は、前述した読出し回路251からカラム累積信号I
Cellsと基準累積信号I
APsとの間のネット信号である出力信号を利用でき、従って、1つ以上の実施形態に係るニューラルネットワーク回路は、P状態の抵抗性メモリ素子が1つであり、AP状態の抵抗性メモリ素子が複数ある場合であっても、信号を正確に区分することができる。AP状態の個数に関わらず、P状態のみによってネット電流が決定されるためである。
図2では、出力回路150のうち、読出し回路251によって、シナプスメモリアレイに含まれている抵抗性メモリ素子の抵抗値を判読した出力信号(例えば、ネット信号)が説明され、下記の
図3を参照して出力信号を用いた発火処理について説明する。
【0067】
図3は、一実施形態に係る出力回路の漏洩及び発火(Leaky Integration and Fire;LIF)回路を示す。
【0068】
一実施形態に係る出力回路150は、LIF回路260を含んでいる。LIF回路260は、ニューロン(例えば、ノード)動作を模写するための回路として、出力信号159を閾値と比較した結果に基づいて、他のニューロン回路への発火を行うことができる。出力信号159は、前述した数式(5)において、前述したInet、columnであるため、その説明は省略する。LIF回路260は、漏洩部分回路361及び発火部分回路362を含む。ニューロンでは、フリーニューロン(pre-neuron)において、ポストニューロン(post-neuron)で閾値を超過する刺激が伝達され、(時間周期内でポストニューロンによって受信された複数の刺激の和が閾値を超過するように)、または、閾値以下の複数の刺激が短い時間内で数回伝達されれば、活動電位(Action Potential)が発生し得る。その後、ニューロンの膜電位は、基本電圧でリセットできる。但し、フリーニューロンにおいて、ポストニューロンで閾値以下の刺激が伝達されれば、活動電位の代わりにPSP(Post Synaptic Potential)が発生し、PSPでは、次の刺激が入ってくる前まで、少しずつ漏洩が生じ得る。LIF回路260は、前述したニューロンの発火又は漏洩を実現した回路である。
【0069】
漏洩部分回路361は、
図2を参照して前述したカラム累積信号(例えば、I
Cells)及び基準累積信号(例えば、I
APs)を受信することができる。
図3において、カラム累積信号及び基準累積信号は、電流源としてモデリングされて図示されているが、これは説明の便宜のためのものであり、実際には、
図2に示された読出し回路によって供給される電流として解釈される。漏洩部分回路361は、ネット信号(例えば、ネット電流)を生成するキャパシタを含んでもよい。例えば、出力信号159は、基準累積信号に対応する電流をキャパシタのノードに向かって流入させ、カラム累積信号に対応する電流をキャパシタのようなノードから流出させることができる。前述した基準累積信号の流入及びカラム累積信号の流出によりキャパシタには、カラム累積信号と基準累積信号との間の差に対応する電流が流れる。言い換えれば、ネット電流(例えば、I
net、column)である出力信号159がキャパシタに流れることになる。出力回路150は、第1抵抗値の抵抗性メモリ素子に基づいた第1電流I
Pと、第2抵抗値の抵抗性メモリ素子に基づいた第2電流I
APとの間の差であるネット電流の整数倍に対応する電流(例えば、ネット電流I
P-I
AP)を出力信号159として生成することができる。漏洩部分回路361は、リセット信号RESETが印加されている間には不活性化され、リセット信号RESETが印加されていない間には活性化される。言い換えれば、漏洩部分回路361は、リセット信号RESETが印加されていない以後に、閾値時間の間に出力信号159による出力電流を漏洩させてもよい。
【0070】
出力信号159の出力電流は、キャパシタに流れることによって出力電圧に変換される。漏洩部分回路361のうち、漏洩演算増幅器OPintegは、出力端でウィンドウスイッチと接続し、ウィンドウスイッチは、グラウンドに接続されているキャパシタと接続してもよい。ウィンドウスイッチにウィンドウ信号WINDOWが印加されている間にウィンドウスイッチが閉じられ、漏洩演算増幅器OPintegとグラウンドに接続されているキャパシタが接続され得る。従って、出力信号159の出力電流が漏洩演算増幅器OPintegの出力端に位置しているグラウンドに接続されているキャパシタに流れる。グラウンドに接続されているキャパシタは、出力電流による電荷を漏洩することで、出力電流を出力電圧に変換することができる。ここで、グラウンドに接続されているキャパシタに充填された電圧は、漏洩トランジスタLEAKAGEによって漏洩され得る。漏洩トランジスタLEAKAGEには、VCM_COLOUMN_INに基づく付勢電圧が印加されてもよい。ウィンドウスイッチは、ウィンドウ信号WINDOWによって所定の閾値時間(例えば、漏洩時間)の間にターンオンされる。言い換えれば、グラウンドに接続されているキャパシタは、リセット後の閾値時間が経過する前まで出力電流が漏洩され得る。
【0071】
一実施形態によれば、漏洩部分回路361は発火部分回路362として、前述した閾値時間の間に漏洩された出力電圧を伝達することができる。発火部分回路362の比較器OP
fireは、予め設定された閾値電圧V
TH及び出力電圧V
COLUMNを比較することができる。例えば、比較器OP
fireは、閾値時間の間に累積された出力電圧V
COLUMNが閾値電圧V
THを超過する場合、発火信号(例えば、1)を出力し、出力電圧V
COLUMNが閾値電圧V
TH以下である場合、漏洩信号(例えば、0)を出力することができる。参考として、後述するが、閾値時間は、別途の回路(例えば、閾値時間生成回路)で閾値に対応する閾値電流の漏洩を介して、閾値電圧V
THを達成するまでに所要される時間として設定されてもよい。出力電流と閾値電流の両方は電流であるため、電流対電流を比較することが難しい。従って、発火部分回路362の比較器OP
fireは、後述する
図7を参照して生成された、WINDOW信号によるRESET信号が0になる瞬間から、WINDOW信号が0になる瞬間までの閾値時間の間に漏洩された電流から変換された電圧を、閾値電圧と比較することができる。電流が小さければ電圧に変換される量が小さく、変換された電圧が閾値電圧よりも小さいこともある。反対に、電流が大きければ、電圧に変換される量が大きいため、変換された電圧が閾値電圧以上になり、比較器OP
fireが発火パルスを出力することができる。
【0072】
一実施形態によれば、LIF回路は、出力信号159に基づいて累積される電圧が閾値時間内に閾値電圧に達しない場合に応答して、出力信号159を漏洩することができる。例えば、LIF回路260の発火部分回路362は、漏洩及び変換された出力電圧が閾値電圧よりも小さい場合、変換された出力電圧を漏洩演算増幅器OPintegに伝達することができる。アナログMUX(analog MUX)は、変換された出力電圧を漏洩演算増幅器OPintegの新しいコモンモード入力(common mode input)VCM_COLUMNとして提供することができる。漏洩回路は、次のニューロン入力に基づいた出力信号159が生成される場合、前述したコモンモード入力を基準にして、出力電流による漏洩として継続することで、漏洩された(leaky integrated)出力電圧を取得することができる。
【0073】
一実施形態によれば、LIF回路260は、出力信号159に基づいて累積される電圧が閾値に対応する閾値時間内に閾値電圧に達する場合に応答して、他のニューロン回路への発火を行うことができる。例えば、漏洩した出力電圧が閾値電圧を超過し、または、数個の小さい出力信号159の漏洩された電圧が閾値電圧を超過する場合、発火部分回路362の比較器OPfireは、発火信号を生成することができる。発火信号は、発火を指示するパルス出力であってもよい。発火信号は、クロック信号に対して同期されるアナログ増幅器基盤の比較器OPfire及びフリップフロップ(flip-flop)回路を介して、クロック信号に同期された信号として生成されてもよい。
【0074】
発火部分回路362は、アナログMUX回路の選択信号SELを制御し、外部から入力されるVCM_COLUMN_INを漏洩演算増幅器OPintegに伝達することで、コモンモード電圧を初期化することができる。
【0075】
一実施形態に係る出力回路150は、回路ごとに漏洩動作、比較動作、及び、漏洩動作を区分して行うことができる。従って、1つ以上の実施形態に係るニューラルネットワーク回路は、出力回路150でキャパシタの大きさや漏洩電流の制約による誤差を最小化できる。さらに、出力回路150は、実際の生物の刺激周期である、msの単位の発火も模写できる。
【0076】
図3において、RESET信号及びSW信号は制御信号として、外部クロックClkが入力されるタイミングジェネレータ(timing generator)によって生成され得る。後述する閾値時間生成回路は、発火の有無の基準となる閾値時間を指示するウィンドウ信号WINDOWを生成することができる。ウィンドウ信号WINDOWは、設定された閾値電圧、抵抗性メモリ素子、及び、キャパシタの変化に強靭な閾値時間(例えば、累積時間)を提供することができる。
【0077】
図4は、一実施形態に係るニューラルネットワーク回路に含まれた閾値生成回路及び追加基準回路を説明する。
【0078】
一実施形態に係るニューラルネットワーク回路は、閾値を設定するための回路をさらに含んでもよい。例えば、ニューラルネットワーク回路は、閾値メモリアレイ480及び追加基準メモリセルをさらに含んでもよい。シナプスメモリアレイ110及び基準メモリアレイ120は、
図1を参照して前述したため、その説明は省略する。
【0079】
閾値メモリアレイ480は、複数のメモリ素子を含んでもよい。閾値メモリアレイ480で複数のメモリ素子のうち設定された閾値に基づいて指定された少なくともいずれかのメモリ素子は、第1抵抗値(例えば、P状態)を有する。
図4において、閾値メモリアレイ480に含まれているメモリセルは、閾値メモリセルとして、Thに図示されてもよい。例えば、閾値を表現するためのメモリ素子が、ビットディジットを考慮して選択されてもよい。言い換えれば、閾値は、第1抵抗値を有するメモリ素子の個数及び該当メモリ素子が示すビットディジットに基づいて、表現される。閾値メモリアレイ480は、いずれかのカラムラインに沿って配置される閾値メモリセルを含んでもよい。カラムラインは、マルチビットを示す複数のビットラインを含んでもよい。閾値メモリセルのそれぞれは、ビットラインごとにサブセルを含んでもよい。例示的に、閾値が6I
Pの閾値電流に設定される場合、(2+4)×I
Pを表現するために、閾値メモリアレイ480において、LSBから1番目のビットディジット(例えば、2
1=2)に対応するメモリ素子、及び、LSBから2番目のビットディジット(例えば、2
2=4)に対応するメモリ素子が、第1抵抗値を有することができる。閾値の他の例示は、下記の
図5及び
図6を参照して説明する。
【0080】
追加基準メモリセルは、閾値生成回路と基準ワードラインRef WL0~Ref WL L-1を共有する。追加基準メモリセルは、基準ワードラインに沿って配置されて、第2抵抗値を有する追加基準メモリ素子を有する。追加基準メモリアレイ490に含まれている全ての追加基準メモリセルのメモリ素子は、第2抵抗値を有する。追加基準メモリセルは、後述するが、前述した閾値メモリアレイ480において指定された閾値をネット信号に表現するために使用されてもよい。
【0081】
例えば、前述した閾値メモリアレイ480のカラムに沿って累積した信号(以下、「閾値累積信号」)は、下記の数式(6)のように表現され得る。
ITh=T・Ip+(R-T)・IAP (6)
【0082】
前述した数式(6)において、IPは、P状態(例えば、第1抵抗値)の抵抗性メモリ素子に流れる電流を示し、IAPは、AP状態(例えば、第2抵抗値)の抵抗性メモリ素子に流れる電流を示す。閾値累積信号IThは、IP及びIAPの線型組み合せであってもよい。出力回路450の第2読出し回路452が閾値累積信号IThを生成することができる。
IAP、Th=R・IAP (7)
【0083】
前述した数式(7)は、追加基準メモリアレイ490に含まれたAP状態の抵抗性メモリ素子のうち、基準ワード信号が印加された抵抗性メモリ素子に流れる電流信号に、ビットディジットごとのビット加重値が適用された信号である。追加基準累積信号I
AP、Thは、ビットディジットごとの基準信号にビット加重値が適用されて統合された信号である。出力回路450の第2読出し回路452が、追加基準累積信号I
AP、Thを生成することができる。前述した数式(6)及び数式(7)で線型組み合せの係数T、Rは、下記の数式(8)及び数式(9)のように表現され得る。
R=L・(2
a―1) (8)
【数2】
【0084】
前述した数式(7)、数式(8)、及び数式(9)において、Rは、活性化した基準ワードラインに接続されたサブセルに基づいて決定される値を示す。Lは、活性化した基準ワードラインの個数を示す。
図4では、全ての基準ワードラインが活性化した例示について説明する。aは、各メモリセルに含まれているサブセルの個数であり、シナプス加重値のビット数であってもよい。例えば、Rは、いずれかのカラムに沿って接続された閾値メモリセルのうち、活性化した基準ワードラインに接続された基準メモリセルに含まれている各サブセルが示すビットディジットを指数にする2のべき乗の値の和である。Tは、R以下の整数として、活性化した基準ワードラインに接続されている閾値メモリセルのうち、P状態(例えば、第1抵抗値)のサブセルに基づいて決定される値である。Tは、予め設定される閾値に対応する。t
iは、第i閾値メモリセルが第1抵抗値を有すれば1であり、第i閾値メモリセルが第2抵抗値を有すれば0である。例えば、Tは、同じカラムに接続されている閾値メモリセルにおいて、P状態のサブセルが示すビットディジットを指数にする2のべき乗の値の和である。
I
net,Th=I
Th-I
AP、Th=T(I
P-I
AP) (10)
【0085】
一実施形態に係るニューラルネットワーク回路の出力回路450は、前述した数式(10)により、閾値累積信号I
Th及び追加基準累積信号I
AP、Th間の差に対応する閾値ネット信号I
net、Thを生成することができる。出力回路450は、前述した数式(5)で第1読出し回路451(例えば、
図1に示すシナプス読出し回路151及び基準読出し回路152を含む回路)から取得された出力信号I
net、columnと、前述した数式(10)で取得された閾値ネット信号I
net、Thとを比較することができる。但し、上述したように、電流対電流間の比較は、回路の実現が難しため、出力回路450は、出力信号I
net、column及び閾値ネット信号I
net、Thを間接的に比較するための閾値時間生成回路をさらに含んでもよい。閾値時間生成回路は、下記の
図7を参照して説明する。
【0086】
一実施形態に係る出力回路450は、閾値メモリセル及び追加基準メモリセルに基づいて決定された閾値に対応する閾値時間を、出力ラインに対する出力信号及び他の出力ラインに対する他の出力信号に対して適用することができる。言い換えれば、出力回路450は、シナプスメモリアレイの出力ラインから取得される出力信号に対して、共通した閾値に対応する閾値時間を適用することができる。以下、
図5及び
図6では、設定された閾値に対する閾値メモリセルの抵抗値マッピングについて説明する。
【0087】
図5及び
図6は、一実施形態に係るシナプスメモリカラム、基準カラム、閾値生成カラム、及び追加基準カラムで生成されるネット信号を用いた発火比較の例示を説明する。
【0088】
図5において、シナプスメモリアレイのいずれかのカラムが、シナプスメモリカラム510のように図示されている。基準メモリアレイのいずれかのカラムが、基準カラム520に図示されてもよい。閾値メモリアレイのいずれかのカラムが、閾値生成カラム580のように図示されてもよい。追加基準メモリアレイのいずれかのカラムが、追加基準カラム590のように図示されてもよい。説明の便宜のために、各カラムは、3ビットのビットラインを含み、1つの入力ラインに入力信号が印加された例示を示している。
【0089】
シナプスメモリカラム510のサブセルは、例示的に、全ての第1抵抗値として設定された抵抗性メモリ素子を有してもよい。基準カラム520は、上述したように、全ての第2抵抗値として設定されたメモリ素子を有してもよい。各サブセルのそれぞれは、LSBに対応するビット加重値(例えば、1倍)、LSBから1番目のビットディジットのビット加重値(例えば、2倍)、LSBから2番目のビットディジットのビット加重値(例えば、4倍)が適用された電流信号を生成してもよい。シナプスメモリカラム510のカラム累積信号I
Cellsは、(1+2+4)×I
Pである。基準カラム520の基準累積信号I
APsは、(1+2+4)×I
APである。言い換えれば、
図5において、N=M=7である。出力信号I
net、columnは、7(I
P-I
AP)であってもよい。同様に、閾値生成カラム580において、閾値累積信号I
Thは、1×I
AP+(2+4)×I
P=6I
P+I
APであってもよい。追加基準カラム590で生成される追加基準累積信号I
AP、Thは、(1+2+4)×I
AP=7I
APであってもよい。言い換えれば、
図5において、T=6、R=7であってもよい。
図5において、閾値はT=6であり、閾値ネット信号I
net、Thは、6(I
P-I
AP)に決定されてもよい。出力回路は、出力信号I
net、columnが閾値ネット信号I
net、Thよりも大きいため、発火信号を生成することができる。
【0090】
図6では、閾値T=8に設定され得るが、T=8を表現するために、閾値生成カラム680が2つの基準ワードラインに沿って配置される閾値メモリセルを含んでもよい。参考として、入力ラインの個数と基準ワードラインの個数は互いに独立的であって、互いに関係がない。
【0091】
図5を参照して前述したように、シナプスメモリカラム610で生成されるカラム累積信号I
Cellsは、(1+2)×I
P+(4+1+2+4)×I
AP=3I
P+11I
APであってもよい。基準カラム620で生成される基準累積信号I
APsは、(1+2+4+1+2+4)×I
AP=14I
APであってもよい。言い換えれば、
図6において、N=14、M=3であってもよい。出力信号I
net、columnは、3(I
P-I
AP)であってもよい。同様に、閾値生成カラム680において、閾値累積信号I
Thは、(1+1+2+4)×I
P+(2+4)×I
AP=8I
P+6I
APであってもよい。追加基準カラム690で生成される追加基準累積信号I
AP、Thは、(1+2+4+1+2+4)×I
AP=14I
APであってもよい。言い換えれば、
図6において、T=8、R=14であってもよい。
図6において、閾値はT=8であり、閾値ネット信号I
net、Thは、8(I
P-I
AP)に決定され得る。出力回路は、出力信号I
net、columnが閾値ネット信号I
net、Thよりも小さくなるため、漏洩動作を行うことができる。
【0092】
図7は、一実施形態に係る出力回路の閾値時間生成回路を示す。
【0093】
一実施形態に係る出力回路は、閾値メモリセルに基づいて生成された信号、及び、追加基準メモリセルに基づいて生成された信号に基づいて、閾値に対応する閾値時間791を設定することができる。
図7において、出力回路で閾値時間791を設定する閾値時間生成回路753について説明する。第1読出し回路451、第2読出し回路452、及びLIF回路は前述したため、その説明は省略する。
【0094】
上述したように、出力された電流と閾値として設定された電流との間の直接的な比較が難しいため、閾値時間生成回路753は、電流比較のための閾値時間791を設定することができる。閾値時間生成回路753は、閾値に対応する電流の漏洩を介して閾値電圧まで達するために所要する時間を閾値時間791として設定することができる。上述したように、出力回路は、出力電流の漏洩を介して、同じ閾値電圧まで達するために所要する時間が閾値時間791よりも小さいかを比較することができる。例えば、出力回路は、設定された閾値時間791内に出力電流の漏洩を介して、変換された出力電圧が閾値電圧を超過するか否かを判断することで、間接的に閾値電流と出力電流との間の比較を行うことができる。
【0095】
出力回路は、閾値メモリセルに基づいて生成された信号と、追加基準メモリセルに基づいて生成された信号との間の差に対応する電流の累積を開始し、累積された電流に対応する電圧が閾値電圧を超過する場合、閾値に対応する閾値時間791を指示する信号を出力することができる。
【0096】
閾値時間生成回路753は、
図3を参照して前述した漏洩部分回路と一部類似している構成を含む。例えば、閾値時間生成回路753は、キャパシタのノードから閾値累積信号I
Thを流出し、該当ノードに向かって追加基準累積信号I
AP、Thを流入させることができる。したがって、該当キャパシタには、閾値ネット信号I
net_Thが流れることができる。キャパシタ、演算増幅器の種類及びサイズは、同一に設計されてもよい。
【0097】
タイミング
図790に示されたリセット信号RESET、ホールド信号HOLD、ウィンドウ信号WINDOWは、タイミングジェネレータによって生成され得る。リセット信号RESET=1である場合、閾値ネット信号I
net、Thが流れるキャパシタの両端電圧が全てV
CM、TWGであるため、初期化され得る。リセット信号RESET=0であり、ホールド信号HOLD=1である場合、キャパシタに閾値ネット信号I
net、Thによる累積を介して変換された電圧V
TWGが格納されてもよい。変換された電圧V
TWGは、閾値ネット信号I
net、Thの累積により徐々に増加し得る。ウィンドウ比較器OP
windowは、変換された電圧V
TWGが閾値電圧V
THを超過する場合、0を出力することができる。従って、閾値時間791は、リセット信号RESET=0となる時点からウィンドウ信号WINDOW=0になるまで、のように定義することができる。V
CM、TWGは、V
CM_COLUMN_INよりも小さく設定されてもよい。
【0098】
図8は、一実施形態に係る出力回路でLIF回路に含まれる素子及び素子ごとのタイミング図を示す。
【0099】
リセットフリップフラップ810は、1/4に分周されたクロック信号及びニューロン入力(入力信号)に応答して、リセット信号RESETを生成することができる。ホールドフリップフラップ820は、1/8に分周されたクロック信号及びニューロン入力(例えば、入力信号)に応答して、ホールド信号HOLDを生成することができる。比較フリップフラップ830は、クロック信号、供給電圧VDD、インバースされたホールド信号HOLDBに応答して、比較信号COMPAREを生成することができる。比較信号COMPAREは、累積された出力信号が比較器の入力として伝達が完了すれば、比較器の比較動作を開始するようにした信号であってもよい。漏洩フリップフラップ840は、クロック信号、供給電圧VDD、インバースされた比較信号COMPAREBに応答して、漏洩信号LEAKAGEを生成することができる。漏洩信号LEAKAGEは、前述した比較動作の後に、出力電圧の漏洩動作(leakage operation)を行うための信号である。SWプルリップルラプ870は、漏洩された電圧がある場合、漏洩された電圧を次の入力に基づいた出力に合算されるよう漏洩部分回路に伝達するためのSW信号を生成することができる。前述した信号に対するタイミング
図890で示されているように、閾値時間891は、リセット以後のウィンドウ信号WINDOWが不活性化される前までの時間区間である。
【0100】
図9は、一実施形態に係るニューラルネットワーク回路の発火動作例示を説明する。
【0101】
ニューラルネットワーク回路900は、メモリアレイ910、出力回路950、分周器及びタイミングジェネレータ940、ワードラインドライバ970、書込みドライバ980を含む。メモリアレイ910は、シナプスメモリアレイ、基準メモリアレイ、閾値メモリアレイ、追加基準メモリアレイを含む。出力回路950は、読出し回路951、閾値時間生成回路953、LIF回路960を含む。メモリアレイ910及び出力回路950は、前述したため、その説明は省略する。分周器及びタイミングジェネレータ940は、回路で使用される信号(例えば、クロック信号及び個別素子に対する制御信号)を生成することができる。ワードラインドライバ970は、メモリアレイ910のワードライン(例えば、入力ライン)を駆動することができる。書込みドライバ980は、メモリアレイ910のビットラインに沿って配置されるメモリセルの抵抗性メモリ素子の抵抗値を設定し、ビットライン及び検出ラインを駆動することができる。
【0102】
図9に示されたタイミング
図990は、閾値がT=6に設定されたニューラルネットワーク回路900の例示的な動作を説明する。閾値ネット信号I
net、Thは、6(I
P-I
AP)であってもよい。カラム<0>に流れるネット電流信号が、7(I
P-I
AP)→4(I
P-I
AP)→4(I
P-I
AP)に変化し、カラム<1>に流れるネット電流信号が、5(I
P-I
AP)→3(I
P-I
AP)→10(I
P-I
AP)に変化し得る。上述したように、閾値以下の刺激が伝達されれば、発火信号が出力されず、蓄積された電圧V_integratedが、漏洩パルス(LEAKAGE pulse)がハイ(high)の区間に伝達される。蓄積された電圧のレベルは、累積パルス(LEAKAGE pulse)がハイ(high)の区間の間に徐々に減少される。閾値以上の刺激が伝達されれば、発火信号が出力され、累積した電圧V_integratedが初期化される。また、閾値以下の刺激が伝達されて漏洩された後、刺激がさらに伝達されて2つの刺激の和が閾値以上になると、発火信号が出力され得る。
図9に示された例示において、閾値T=7であるため、カラム<0>に流れるネット電流信号に対して、順次に発火→漏洩→発火が発生し得る。カラム<1>に流れるネット電流信号に対して、順次に漏洩→漏洩→発火が発生し得る。
【0103】
図10は、一実施形態に係るニューラルネットワーク回路の動作方法を示すフローチャートである。
【0104】
まず、ステップS1010において、ニューラルネットワーク回路は、出力ラインに沿って配置された1つ以上のメモリセルのうち、入力ラインを介して入力信号が印加されたシナプスメモリセルの抵抗性メモリ素子及び入力信号に基づいて、カラム信号を生成する。例えば、フリーシナプス回路を介して入力信号(例えば、スパイク信号)が受信されれば、ニューラルネットワーク回路は、メモリアレイのワードラインにアクセスすることができる。ニューラルネットワーク回路の読出し回路は、シナプス加重値及び入力信号によるカラム信号(例えば、電流)を生成することができる。
【0105】
そして、ステップS1020において、ニューラルネットワーク回路は、基準ラインに沿って配置された1つ以上のメモリセルのうち、入力信号が印加された基準メモリセルの基準抵抗値を有する基準メモリ素子及び入力信号に基づいて、基準信号を生成する。基準抵抗値は、第2抵抗値(例えば、AP状態に対応する高抵抗値)であってもよい。
【0106】
次に、ステップS1030において、ニューラルネットワーク回路は、カラム信号及び基準信号から出力ラインに対する出力信号を生成する。ニューラルネットワーク回路は、高抵抗状態の電流を相殺させるために、カラム累積信号と基準累積信号との間の差に対応するネット電流を出力信号として生成することができる。
【0107】
そして、ステップS1040において、ニューラルネットワーク回路は、出力信号に基づいて、発火又は累積処理を行う。例えば、ニューラルネットワーク回路は、出力信号を閾値時間の間に漏洩してもよい。ニューラルネットワーク回路は、漏洩された出力電圧を閾値電圧と比較した結果に応じて、発火又は累積を行う。ニューラルネットワーク回路は、出力電圧が閾値電圧を超過する場合、発火を行ってもよい。ニューラルネットワーク回路は、出力電圧が閾値電圧以下である場合に、累積処理を実行し、該当電圧を次のニューロンインプットが入ってくるまで保持する。
【0108】
但し、ニューラルネットワークの出力信号処理が、前述したステップS1040に限定されることはない。ニューラルネットワーク回路の出力回路は、入力ラインに沿って受信される入力信号とシナプス加重値との間の積和(multiply and accumulation;MAC)を、出力信号を解釈した結果(例えば、アナログデジタル変換された値)に基づいて、取得し、取得された積和に基づいて、決定されたノード値(例えば、活性化値)を、他のニューロン回路に伝達してもよい。
【0109】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又は、ハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者であれば、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことを把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0110】
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成し、または、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈され、または、処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、もしくは、送信される信号波に、永久的又は一時的に具体化することができる。ソフトウェアは、ネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納され、または、実行され得る。ソフトウェア及びデータは、一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0111】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって、公知のものであり、使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例は、ハードディスク、フロッピー(登録商標)ディスク、及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及び、ROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例は、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0112】
上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、また、その逆も同様である。
【0113】
上述したように、実施形態を限定された図面によって説明してきたが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて、様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が、説明された方法と異なる順に実行され、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態に結合又は組み合わせられてもよく、他の構成要素又は均等物によって置き換え又は置換されたとしても、適切な結果を達成することができる。
【0114】
したがって、他の具現、他の実施形態および特許請求の範囲と均等なものも、また、後述する特許請求範囲の範囲に属する。
【符号の説明】
【0115】
100 ニューラルネットワーク回路
110 ニューラルネットワーク回路
120 基準メモリアレイ
150 出力回路
251 読出し回路
361 漏洩部分回路
362 発火部分回路
450 出力回路
451 第1読出し回路
452 第2読出し回路
790 タイミング図
900 ニューラルネットワーク回路