IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7654001パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造
<>
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図1
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図2
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図3
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図4
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図5A
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図5B
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図5C
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図6
  • 特許-パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-21
(45)【発行日】2025-03-31
(54)【発明の名称】パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造
(51)【国際特許分類】
   G11C 11/54 20060101AFI20250324BHJP
   G11C 11/16 20060101ALI20250324BHJP
   G06N 3/065 20230101ALI20250324BHJP
   G06G 7/60 20060101ALI20250324BHJP
   H10B 61/00 20230101ALI20250324BHJP
   H10N 50/10 20230101ALI20250324BHJP
【FI】
G11C11/54
G11C11/16 100C
G06N3/065
G06G7/60
H10B61/00
H10N50/10 Z
【請求項の数】 16
(21)【出願番号】P 2022542783
(86)(22)【出願日】2021-02-03
(65)【公表番号】
(43)【公表日】2023-03-30
(86)【国際出願番号】 IB2021050854
(87)【国際公開番号】W WO2021156755
(87)【国際公開日】2021-08-12
【審査請求日】2023-07-21
(31)【優先権主張番号】16/782,758
(32)【優先日】2020-02-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】安田 岳雄
(72)【発明者】
【氏名】細川 浩二
(72)【発明者】
【氏名】岡澤 潤香
(72)【発明者】
【氏名】岩科 晶代
【審査官】小林 紀和
(56)【参考文献】
【文献】米国特許第10528643(US,B1)
【文献】米国特許出願公開第2019/0228295(US,A1)
【文献】特表2019-537187(JP,A)
【文献】再公表特許第2010/087389(JP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 11/54
G11C 11/16
G06N 3/065
G06G 7/60
H10B 61/00
H10N 50/10
(57)【特許請求の範囲】
【請求項1】
シナプス・メモリ・システムであって、
複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられた複数のシナプス・メモリ・セルであって、各シナプス・メモリ・セルが複数の分解能を含む複数のアナログ・メモリ・デバイスを備え、各シナプス・メモリ・セルが書き込み信号の出力レベルに従って重み値を格納するように構成されて、各シナプス・メモリ・セルに格納されることになる前記重み値が少なくとも3つの異なる値のうちの1つの値であり、前記複数の分解能を含む前記複数のアナログ・メモリ・デバイスが、各シナプス・メモリ・セルにおける前記複数のアナログ・メモリ・デバイスの前記複数の分解能を用いて指数スケールで表現される各シナプス・メモリ・セルの構成要素となるように組み合わされた、前記複数のシナプス・メモリ・セルと、
前記重み値を各シナプス・メモリ・セルへ書き込むように構成された書き込み部分であって、前記書き込み部分が書き込みドライバおよび出力コントローラを備え、前記書き込みドライバが前記書き込み信号をサブジェクト・シナプス・メモリ・セルへ出力するように構成されて、前記サブジェクト・シナプス・メモリ・セルが前記シナプス・メモリ・セルのうちの1つであり、前記サブジェクト・シナプス・メモリ・セルが前記重み値を格納するために選択されて、前記出力コントローラが前記書き込みドライバの前記書き込み信号の前記出力レベルを制御するように構成された、前記書き込み部分と、
および前記シナプス・メモリ・セルに格納された前記重み値を読み取るように構成された読み取りドライバと
を備える、シナプス・メモリ・システム。
【請求項2】
前記複数のアナログ・メモリ・デバイスのダイナミック・レンジが各シナプス・メモリ・セル全体としてのダイナミック・レンジを得るために組み合わされた、請求項1に記載のシナプス・メモリ・システム。
【請求項3】
前記複数のアナログ・メモリ・デバイスの各々に異なる大きさが割り当てられた、請求項2に記載のシナプス・メモリ・システム。
【請求項4】
前記複数のシナプス・メモリ・セルは、各シナプス・メモリ・セルに含まれる前記複数のアナログ・メモリ・デバイスの長辺が互いに平行であるように配列された、請求項1~3のいずれか一項に記載のシナプス・メモリ・システム。
【請求項5】
各シナプス・メモリ・セルのアスペクト比は、各アナログ・メモリ・デバイスのアスペクト比より小さい、請求項4に記載のシナプス・メモリ・システム。
【請求項6】
各シナプス・メモリ・セルのアスペクト比は、ほとんど1:1である、請求項4に記載のシナプス・メモリ・システム。
【請求項7】
各アナログ・メモリ・デバイスは、不揮発性ランダム・アクセス・メモリ(NVRAM)を備える、請求項1~6のいずれか一項に記載のシナプス・メモリ・システム。
【請求項8】
各アナログ・メモリ・デバイスは、磁気抵抗ランダム・アクセス・メモリ(MRAM)を備える、請求項1~7のいずれか一項に記載のシナプス・メモリ・システム。
【請求項9】
シナプス・メモリ・システムを動作させるための方法であって、前記シナプス・メモリ・システムは、
複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられた複数のシナプス・メモリ・セルであって、各シナプス・メモリ・セルが複数の分解能を含む複数のアナログ・メモリ・デバイスを備え、前記複数の分解能を含む前記複数のアナログ・メモリ・デバイスが、各シナプス・メモリ・セルにおける前記複数のアナログ・メモリ・デバイスの前記複数の分解能を用いて指数スケールで表現される各シナプス・メモリ・セルの構成要素となるように組み合わされた、前記複数のシナプス・メモリ・セルと、
書き込みドライバおよび出力コントローラを備える書き込み部分と、
ならびに一組の読み取りドライバと
を備え、
前記方法は、
書き込み信号の出力レベルに従って重み値を、前記システムのシナプス・メモリ・セルによって、格納することであって、格納される前記重み値が少なくとも3つの異なる値のうちの1つの値である、前記格納することと、
前記重み値を前記シナプス・メモリ・セルに、前記書き込み部分によって、書き込むことであって、前記書き込むことが、前記重み値を格納するために選択された前記シナプス・メモリ・セルへ前記書き込み信号を、前記書き込みドライバによって、出力することと、前記書き込みドライバの前記書き込み信号の前記出力レベルを、前記出力コントローラによって、制御することとを含む、前記書き込むことと、
前記シナプス・メモリ・セルに格納された前記重み値を、前記読み取りドライバによって、読み取ることと
を含む、方法。
【請求項10】
各シナプス・メモリ・セル全体としてのダイナミック・レンジを得るために、前記複数のアナログ・メモリ・デバイスのダイナミック・レンジを組み合わせることをさらに含む、請求項9に記載の方法。
【請求項11】
前記複数のアナログ・メモリ・デバイスの各々に異なる大きさを割り当てることをさらに含む、請求項10に記載の方法。
【請求項12】
前記複数のシナプス・メモリ・セルを、各シナプス・メモリ・セルに含まれる前記複数のアナログ・メモリ・デバイスの長辺が互いに平行であるように、配列することをさらに含む、請求項9~11のいずれか一項に記載の方法。
【請求項13】
各シナプス・メモリ・セルのアスペクト比は、各アナログ・メモリ・デバイスのアスペクト比より小さい、請求項12に記載の方法。
【請求項14】
各シナプス・メモリ・セルのアスペクト比は、ほとんど1:1である、請求項12に記載の方法。
【請求項15】
各アナログ・メモリ・デバイスは、不揮発性ランダム・アクセス・メモリ(NVRAM)を備える、請求項9~14のいずれか一項に記載の方法。
【請求項16】
各アナログ・メモリ・デバイスは、磁気抵抗ランダム・アクセス・メモリ(MRAM)を備える、請求項9~14のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パフォーマンスおよび面積の効率的なシナプス・メモリ・セル構造に関する。特に、本発明は、シナプス・メモリ・セル構造を動作させるためのシステムおよび方法を提供する。
【背景技術】
【0002】
アナログ・メモリは、その抵抗およびキャパシタンスを連続的に制御できるような特性を有し、典型的に、ニューラル・ネットワーク・システムにおいてシナプスの重み値を格納するためのメモリ・デバイスとして用いられる。ニューラル・ネットワーク・システムとして良好なパフォーマンスを達成するために、シナプス・メモリ・セルが高い分解能を有することが好ましい。多くのメモリ・デバイスは、低い分解能もしくは小さいダイナミック・レンジを有する。それらを改善することは、それらのデバイス特性およびノイズ・マージンゆえに難しい。いくつかのメモリ・デバイスは、アレイ・ブロックへの集積化には適さない、アスペクト比が大きい長方形を有する。それゆえに、当技術分野においては前述の問題に取り組む必要がある。
【発明の概要】
【0003】
第1の態様の観点から、本発明は、シナプス・メモリ・システムを提供し、シナプス・メモリ・システムは、複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられた複数のシナプス・メモリ・セルであって、各シナプス・メモリ・セルが複数のアナログ・メモリ・デバイスを備え、各シナプス・メモリ・セルが書き込み信号の出力レベルに従って重み値を格納するように構成されて、各シナプス・メモリ・セルに格納されることになる重み値が少なくとも3つの異なる値のうちの1つの値であり、複数のアナログ・メモリ・デバイスが各シナプス・メモリ・セルの構成要素となるように組み合わされた、複数のシナプス・メモリ・セルと、重み値を各シナプス・メモリ・セルへ書き込むように構成された書き込み部分であって、書き込み部分が書き込みドライバおよび出力コントローラを備え、書き込みドライバが書き込み信号をサブジェクト・シナプス・メモリ・セルへ出力するように構成されて、サブジェクト・シナプス・メモリ・セルがシナプス・メモリ・セルのうちの1つであり、サブジェクト・シナプス・メモリ・セルが重み値を格納するために選択されて、出力コントローラが書き込みドライバの書き込み信号の出力レベルを制御するように構成された、書き込み部分と、およびシナプス・メモリ・セルに格納された重み値を読み取るように構成された読み取りドライバとを備える。
【0004】
さらなる態様の観点から、本発明は、シナプス・メモリ・システムを備えるデバイスを提供し、シナプス・メモリ・システムは、複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられた複数のシナプス・メモリ・セルであって、各シナプス・メモリ・セルが複数のアナログ・メモリ・デバイスを備え、各シナプス・メモリ・セルが書き込み信号の出力レベルに従って重み値を格納するように構成されて、各シナプス・メモリ・セルに格納されることになる重み値が少なくとも3つの異なる値のうちの1つの値であり、複数のアナログ・メモリ・デバイスが各シナプス・メモリ・セルの構成要素となるように組み合わされた、シナプス・メモリ・セルと、重み値を各シナプス・メモリ・セルへ書き込むように構成された書き込み部分であって、書き込み部分が書き込みドライバおよび出力コントローラを備え、書き込みドライバが書き込み信号をサブジェクト・シナプス・メモリ・セルへ出力するように構成されて、サブジェクト・シナプス・メモリ・セルがシナプス・メモリ・セルのうちの1つであり、サブジェクト・シナプス・メモリ・セルが重み値を格納するために選択されて、出力コントローラが書き込みドライバの書き込み信号の出力レベルを制御するように構成された、書き込み部分と、およびシナプス・メモリ・セルに格納された重み値を読み取るように構成された読み取りドライバとを備える。
【0005】
さらなる態様の観点から、本発明は、シナプス・メモリ・システムを動作させるための方法を提供し、シナプス・メモリ・システムは、複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられた複数のシナプス・メモリ・セルであって、各シナプス・メモリ・セルが複数のアナログ・メモリ・デバイスを備える、シナプス・メモリ・セルと、書き込みドライバおよび出力コントローラを備える書き込み部分と、ならびに一組の読み取りドライバとを備え、方法は、書き込み信号の出力レベルに従って重み値を、システムのシナプス・メモリ・セルによって、格納することであって、格納される重み値が少なくとも3つの異なる値のうちの1つである、格納することと、重み値をシナプス・メモリ・セルに、書き込み部分によって、書き込むことであって、書き込むことが、重み値を格納するために選択されたシナプス・メモリ・セルへ書き込み信号を、書き込みドライバによって、出力することと、書き込みドライバの書き込み信号の出力レベルを、出力コントローラによって、制御することとを含む、書き込むことと、シナプス・メモリ・セルに格納された重み値を、読み取りドライバによって、読み取ることとを含む。
【0006】
本発明のある態様によれば、シナプス・メモリ・システムが提供される。システムは、複数のシナプス・メモリ・セル、書き込み部分、および読み取りドライバを含む。複数のシナプス・メモリ・セルは、複数のアクソン・ラインと複数のデンドライト・ラインとの交点に設けられる。各シナプス・メモリ・セルは、複数のアナログ・メモリ・デバイスを含む。各シナプス・メモリ・セルが書き込み信号の出力レベルに従って重み値を格納するように構成される。各シナプス・メモリ・セルに格納されることになる重み値は、少なくとも3つの異なる値のうちの1つの値である。複数のアナログ・メモリ・デバイスが各シナプス・メモリ・セルの構成要素となるように組み合わされる。書き込み部分は、重み値を各シナプス・メモリ・セルへ書き込むように構成される。書き込み部分が書き込みドライバおよび出力コントローラを含む。書き込みドライバが書き込み信号をサブジェクト・シナプス・メモリ・セルへ出力するように構成される。サブジェクト・シナプス・メモリ・セルは、シナプス・メモリ・セルのうちの1つである。サブジェクト・シナプス・メモリ・セルが重み値を格納するために選択される。出力コントローラが書き込みドライバの書き込み信号の出力レベルを制御するように構成される。読み取りドライバは、シナプス・メモリ・セルに格納された重み値を読み取るように構成される。
【0007】
本発明の別の態様によれば、前述のシナプス・メモリ・システムを含むデバイスが提供される。
【0008】
次に、以下の図に示されるような、好ましい実施形態を参照して、本発明が、例としてのみ、記載される。
【図面の簡単な説明】
【0009】
図1】本発明の第1の例示的な実施形態によるクロスバー・アレイを有するシナプス・メモリを示す。
図2】第1の例示的な実施形態によるシナプス・メモリ・システムを示す。
図3】信号出力のタイミングを図示するタイミング・チャートを示す。
図4】シナプス・メモリおよび各々が複数のメモリ・デバイスからなるシナプス・メモリ・セルを示す。
図5A】MRAMからなるアナログ・メモリの例示的な構造を示す。
図5B図5Aのアナログ・メモリが最大(または最小)値を格納する状態を示す。
図5C図5Aのアナログ・メモリが最小(または最大)値を格納する状態を示す。
図6図5A~5Cに示されるアナログ・メモリがシナプス・メモリ・セル中の各メモリ・デバイスに用いられる例示的な構成を示す。
図7】ニューロシナプティック・コア・システムを含むデバイスの例を示す。
【発明を実施するための形態】
【0010】
以下に、本発明の例示的な実施形態が添付図面を参照して詳細に記載される。本発明は、以下に与えられることになる例示的な実施形態には限定されず、本発明の範囲内の様々な修正を伴って実装されてよいことに留意すべきである。加えて、本明細書に用いられる図面は、図示のためであり、実寸法を示さない。
【0011】
第1の例示的な実施形態
図1は、本発明の第1の例示的な実施形態によるクロスバー・アレイを有するシナプス・メモリ100を描く。
【0012】
ニューロモーフィック・システムのハードウェア実装は、シナプス・メモリならびにニューロン本体と、アクソンおよびデンドライトによるネットワーク接続とを含んでよい。図1に示されるように、シナプス・メモリ100は、すべてのアクソン(アクソン・ライン)20とすべてのデンドライト(デンドライト・ライン)30とのすべての交点に配置された/置かれたシナプス・メモリ・セル10を含んでよい。シナプス・メモリ・セル10の各々が、対応するシナプス・メモリ・セル10のシナプス接続の重みを示す、シナプスの重み値を格納するように構成されてよい。留意すべきは、アクソン20がプレニューロンのそれぞれのアクソンに対応し、デンドライト30がポストニューロンのそれぞれのデンドライトに対応することである。
【0013】
シナプス・メモリ・セル10のためのメモリ・デバイスは、アナログ・メモリである、不揮発性ランダム・アクセス・メモリ(NVRAM:non-volatile random access memory)であってよい。シナプス・メモリ・セル10は、後で詳細に記載される。
【0014】
図2は、第1の例示的な実施形態によるシナプス・メモリ・システム1を描く。
【0015】
図2に示されるように、シナプス・メモリ・システム1は、シナプス・メモリ100、書き込みドライバ40、書き込みライン・セレクタ45、読み取りドライバ50、読み取りドライバ・セレクタ150、重みエバリュエータ70、重みエンコーダ80、および書き込みパルス発生器90を含んでよい。留意すべきは、シナプス・メモリ・システム1をシリコン上のニューロモーフィック・システムとすることができることである。シナプス・メモリ・システム1は、請求されるシナプス・メモリ・システムの例である。
【0016】
ここで、図1を参照して上述されたように、シナプス・メモリ100は、アクソン20とデンドライト30とのクロスバー・アレイを有し、アクソン20とデンドライト30とのすべての交点に配列されたシナプス・メモリ・セル10を含む。この例示的な実施形態は、シナプスの重み値をNVRAMへ書き込むことが、電圧値を制御することによって実行されることを仮定する。
【0017】
書き込みドライバ(シナプス・メモリ・セル・ドライバ)40がシナプス・メモリ100へ接続される。書き込みドライバ40は、学習動作入力または認識動作入力に応答してシナプスの重み値をそれぞれのシナプス・メモリ・セル10へ書き込むように構成されてよい。具体的には、書き込みドライバ40が書き込みライン・セレクタ45によって選択されたそれぞれのアクソン20へ電圧を印加してよい。書き込みライン・セレクタ45は、書き込みドライバ40が電圧を印加するアクソン20を選択する。例えば、書き込みライン・セレクタ45が予め決められた順に選択されたアクソン20をある一定のタイミングでスイッチする。この例では、書き込みライン・セレクタ45によって選択されたアクソン(単数または複数)20上に設けられたシナプス・メモリ・セル(単数または複数)10へ書き込みライン・セレクタ45のスイッチング・タイミングに従って電圧を印加するように、重みエンコーダ80が書き込みドライバ40および書き込みライン・セレクタ45を制御する。これは、書き込みドライバ40および書き込みライン・セレクタ45の単一のペアがシナプスの重み値をそれぞれのアクソン20上に設けられたシナプス・メモリ・セル10のすべてへ書き込むことを可能にする。
【0018】
デンドライト30が、デンドライト30から、サブジェクト・デンドライト(単数または複数)を選択するデンドライト・ドライバ(図示されない)へ接続されて、シナプスの重み値がサブジェクト・デンドライトを用いてシナプスの重み値の書き込み動作では書き込まれて、読み取り動作では読み取られる。デンドライト・ドライバは、電圧をデンドライト30へ選択的に印加してよい。これは、デンドライト・ドライバがサブジェクト・デンドライト(単数または複数)を決定することを可能にする。具体的には、シナプスの重み値の書き込み動作では、デンドライト・ドライバがデンドライト30のうちの1つをグラウンド(GND)状態にセットして、他のデンドライト30を高インピーダンス(Hi-Z)状態にセットする。書き込みライン・セレクタ45は、書き込みドライバ40へ接続されたアクソン20のうちの1つを選択して、電圧をそれへ印加する。これは、GND状態にセットされたデンドライト30と、書き込みドライバ40によって電圧を印加されたアクソン20との交点上のシナプス・メモリ・セル10にシナプスの重み値が書き込まれる結果をもたらす。書き込みドライバ40は、出力タイミングを制御するためのパルス信号を受信する。書き込みドライバ40は、駆動電圧(VDD)を印加される。留意すべきは、書き込みドライバ40がシナプス・メモリ・セル10へ印加される電圧を制御するように構成されることである。
【0019】
読み取りドライバ50がシナプス・メモリ100へ接続される。読み取りドライバ50は、認識動作入力に応答してシナプスの重み値をシナプス・メモリ・セル10から読み取るように構成されてよい。具体的には、デンドライト・ドライバ(図示されない)が、シナプスの重み値がそれを用いて読み取られるデンドライト(単数または複数)30をGND状態にセットして、他のデンドライト30をHi-Z状態にセットする。読み取りドライバ・セレクタ150は、アクソン(単数または複数)20に対応する読み取りドライバ50を選択し、または有効にして、電圧をそれらへ印加する。これは、GND状態にセットされたデンドライト30と、読み取りドライバ50によって電圧を印加されたアクソン20との交点上のシナプス・メモリ・セル10からシナプスの重み値が読み取られる結果をもたらす。シナプスの重み値の読み取り動作では、GND状態にセットされた各デンドライト30について全シナプスの重み値が読み取られる。全シナプスの重み値とは、電圧を印加されているアクソン20上にあるそれぞれのシナプス・メモリ・セル10のシナプスの重み値の合計である。
【0020】
重みエバリュエータ70は、デンドライト30からのニューロン出力信号を用いて現在のシナプスの重み値を評価し、次のシナプスの重み値を決定する。具体的には、重みエバリュエータ70がデンドライト30から得られたニューロン出力信号と、学習動作入力として与えられた所望の出力信号とを比較して、シナプス・メモリ・セル10に格納された現在のシナプスの重み値がそれを用いてアップデートされることになる、次のシナプスの重み値を計算する。
【0021】
重みエンコーダ80は、重みエバリュエータ70によって計算された次のシナプスの重み値をエンコードしてよい。重みエンコーダ80が重みエバリュエータ70によって計算された次のシナプスの重み値に基づいて書き込みドライバ40の駆動電圧を制御する。これは、書き込みドライバ40がシナプス・メモリ・セル10へ印加される電圧を制御することを可能にする。
【0022】
書き込みパルス発生器90は、パルス幅変調およびパルス数(または周波数)変調のような、変調プロセスを実施してよい。言い換えれば、書き込みパルス発生器90が重みエンコーダ80によって発生されたエンコード値に基づいてパルス信号を発生させて、出力してよい。重みエンコーダ80によって制御されたこのパルス信号および駆動電圧は、シナプス・メモリ・セル10に格納された現在のシナプスの重み値をアップデートするように書き込みドライバ40を導く。
【0023】
現在のシナプスの重み値をアップデートするために、いくつかの方法、例えば、(i)現在のシナプスの重み値と次のシナプスの重み値との間のギャップを現在のシナプスの重み値に追加する方法、および(ii)現在のシナプスの重み値を最小値へリセットして、ひいては次のシナプスの重み値を書き込む方法が適用可能でありうる。
【0024】
例えば、方法(i)は、次の場合にシナプスの重み値を減少させることによってそれをアップデートするために適用可能でありうる。すなわち、シナプス・メモリ・セル10として用いられるNVRAMは、格納値を増加させるために印加される電圧とは反対の極性を有する電圧を印加することによって格納値を削減でき、格納されたシナプスの重み値の減少量を供給電圧の値によって制御できる。
【0025】
方法(i)において、シナプスの重み値を制御するために書き込みドライバ40の出力値についていくつかのレベルをセットできる。例えば、レベルは、「ドライバ共通レベル」、「セット閾値レベル」、および「リセット閾値レベル」である。ドライバ共通レベルは、書き込みドライバ40がオフ状態にある(非アクティブな)ときの電圧レベルである。シナプス・メモリ・セル10は、書き込みドライバ40の出力がセット閾値レベルとリセット閾値レベルとの間にあるかまたは高インピーダンス(Hi-Z)状態にあり、デンドライト30へ印加される電圧値がドライバ共通レベルにあれば、現在の重み値を維持するように構成される。セット閾値レベル、すなわち、正の閾値レベルは、シナプスの重み値を増加させるための書き込み動作がそれ以上では実行可能な電圧レベルである。リセット閾値レベル、すなわち、負の閾値レベルは、シナプスの重み値を減少させるための書き込み動作がそれ以下では実行可能な電圧レベルである。書き込みドライバ40の出力値は、請求される出力レベルの例である。
【0026】
図3を参照すると、上記の方法がより詳細に記載される。図3は、書き込みドライバ40からの信号出力のタイミング、読み取りドライバ50からの信号出力のタイミング、およびシナプス・メモリ・セル10の状態遷移のタイミングを示すタイム・チャートである。
【0027】
(1)第1に、時間t1から時間t2へ(期間t1~t2)、書き込みドライバ40は、書き込みドライバ40がターゲット・セルをリセット状態(ある一定のデクリメントされた値)にセットするように、リセット閾値レベルより低い電圧をシナプス・メモリ・セル10のうちの1つ(ターゲット・セル)へ印加する。すなわち、シナプスの重み値を減少させるための書き込み動作が行われる。ターゲット・セルでデクリメントされることになる値は、書き込みドライバ40によって印加される電圧がリセット閾値レベルより低くなる量に依存する。タイム・チャートでは、この動作が状態「リセット1」で行われる。
【0028】
(2)次に、時間t2から時間t3へ(期間t2~t3)、書き込みドライバ40は、書き込みドライバ40がターゲット・セルをセット状態(ある一定のインクリメントされた値)にセットするように、セット閾値レベルより高い電圧をターゲット・セルへ印加する。すなわち、シナプスの重み値を増加させるための書き込み動作が行われる。ターゲット・セルでインクリメントされることになる値は、書き込みドライバ40によって印加される電圧がセット閾値レベルを超える量に依存する。タイム・チャートでは、この動作が状態「セット1」で行われる。
【0029】
(3)次に、時間t4から時間t5へ(期間t4~t5)、読み取りドライバ50は、読み取りドライバ50がターゲット・セルを読み取り状態にセットするように、ドライバ共通レベルとセット閾値レベルとの間の電圧をターゲット・セルへ印加する。すなわち、シナプスの重み値の読み取り動作が行われる。この状態で読み取られるターゲット・セルが「セット1」状態で書き込まれた同じものであれば、この時点で読み取られることになる値が上記のステップ(2)でアップデートされたシナプスの重み値に対応する。タイム・チャートでは、この動作が状態「読み取り1」で行われる。
【0030】
(4)次に、時間t6から時間t7へ(期間t6~t7)、書き込みドライバ40は、書き込みドライバ40がターゲット・セルを別のデクリメントされた値へ別のリセット状態にセットするように、リセット閾値レベルより低い電圧をターゲット・セルへ印加する。すなわち、シナプスの重み値を減少させるための書き込み動作が行われる。タイム・チャートでは、この動作が状態「リセット2」で行われる。
【0031】
(5)次に、時間t8から時間t9へ(期間t8~t9)、読み取りドライバ50は、読み取りドライバ50がターゲット・セルを別の読み取り状態にセットするように、ドライバ共通レベルとセット閾値レベルとの間の電圧をターゲット・セルへ印加する。すなわち、シナプスの重み値の読み取り動作が行われる。この状態で読み取られるターゲット・セルが「リセット2」状態で書き込まれた同じものであれば、この時点で読み取られることになる値が上記のステップ(4)でアップデートされたシナプスの重み値に対応する。タイム・チャートでは、この動作が状態「読み取り2」で行われる。
【0032】
(6)期間t1~t2、t2~t3、およびt6~t7以外の期間には、ターゲット・セルが書き込みドライバ40に対して高インピーダンス(Hi-Z)状態にセットされる。すなわち、その期間に書き込み動作が行われない。さらに、期間t4~t5およびt8~t9以外の期間には、ターゲット・セルが読み取りドライバ50に対して高インピーダンス状態にセットされる。すなわち、その期間には読み取り動作が行われない。
【0033】
書き込みドライバ40がオフ状態にあるときに、シナプス・メモリ・セル10への印加電圧は、セット閾値レベルとリセット閾値レベルとの間にあるかまたは高インピーダンス状態であり、シナプス・メモリ・セル10が現在の重み値を維持する。これは、シナプスの重み値の書き込み動作を防止する。
【0034】
書き込みドライバ40からの出力信号に応答して、印加電圧がドライバ共通レベルからセット閾値レベル以上へ、またはリセット閾値レベル以下へシフトする。
【0035】
書き込みドライバ40によって印加される電圧がセット閾値レベルを超えるときに、シナプスの重み値は、増加されるようにアップデートされる。インクリメントの量は、書き込みドライバ40によって印加される電圧がセット閾値レベルを超える量に依存する。すなわち、書き込みドライバ40により印加される電圧を調整することによって、つまり書き込みレベルを選択することによって超過量を制御すると、シナプスの重み値のインクリメント量を制御することが可能になる。
【0036】
書き込みドライバ40によって印加される電圧がリセット閾値レベルより低くなるときに、シナプスの重み値は、減少されるようにアップデートされる。デクリメントの量は、書き込みドライバ40によって印加される電圧がリセット閾値レベルより低くなる量に依存する。すなわち、書き込みドライバ40により印加される電圧を調整することによって、つまり書き込みレベルを選択することによって低下量を制御すると、シナプスの重み値のデクリメント量を制御することが可能になる。
【0037】
留意すべきは、印加電圧がセット閾値レベルとリセット閾値レベルとの間の範囲内にあれば、シナプスの重み値が保たれることである。言い換えれば、シナプス・メモリ・セル10上の書き込み動作は実施されない。読み取りドライバ50は、この範囲内の電圧をシナプス・メモリ・セル10へ印加することによってシナプスの重み値をシナプス・メモリ・セル10から読み取る。
【0038】
以下に、シナプス・メモリ・セル10の説明が与えられる。
【0039】
アナログ・メモリである、不揮発性ランダム・アクセス・メモリ(NVRAM)がシナプス・メモリ・セル10として用いられてよい。アナログ・メモリは、その抵抗およびキャパシタンスを連続的に制御できるような特性を有する。NVRAMの例は、フラッシュ・メモリ、強誘電体ランダム・アクセス・メモリ(FeRAM:ferroelectric random access memory)、磁気抵抗ランダム・アクセス・メモリ(MRAM:magnetoresistive random access memory)、相変化ランダム・アクセス・メモリ(PRAM:phase change random access memory)、および抵抗性ランダム・アクセス・メモリ(ReRAM:resistive random access memory)を含む。
【0040】
データをNVRAMへ書き込むことが、電圧もしくは電流をNVRAMへ印加することによって実行される。NVRAMは、印加電圧もしくは電流に応答し、対応するシナプス・メモリ・セル10の状態変化を用いてデータを格納することができる。留意すべきは、データを記録するために用いられる状態変化がNVRAMの構造に依存することである。例えば、状態変化は、電気的状態における変化、磁気的状態における変化、および相における変化を含んでよい。
【0041】
状態変化の度合いは、印加電圧もしくは電流の大きさ、すなわち、電圧値もしくは電流値に依存して変動してよい。これは、NVRAMが連続値(アナログ値)または多値(離散値)を格納することを可能にする。留意すべきは、NVRAMが少なくとも3つの異なる(非デジタル)値のうちの1つである値を格納して保持できることである。言い換えれば、NVRAMをアナログ・メモリとして用いることができる。図に示される例では、シナプス・メモリ・セル10がNVRAMによって構成され、そのため、NVRAMへ印加されることになる電圧値もしくは電流値を制御することが、シナプス・メモリ・セル10に格納されるシナプスの重み値を制御することを可能にする。具体的には、書き込み動作を制御するために電圧値が用いられるならば、電圧値が大きいほど、NVRAMがより大きいシナプスの重み値を格納することを許容する。電圧(電流)のこのチューニングをシナプス・メモリ・システム1(後述)の製造後に行うことができる。NVRAM上の書き込み動作を制御するために電圧値もしくは電流値を用いるべきかどうかは、NVRAMの特性、例えば、データ記録に用いられる状態における変化のタイプ、および電圧値もしくは電流値に依存して変動する状態変化の変動幅、速度、または精度に基づいてそれを判定できることに留意すべきである。
【0042】
ところで、ニューラル・ネットワーク・システムとして良好なパフォーマンスを達成するために、シナプス・メモリ・セル100は、十分過ぎるほどの分解能ステップを有することが望まれる。しかしながら、多数のメモリ・デバイスがかなり低い分解能もしくは小さいダイナミック・レンジを有し、それらを改善することは、デバイス特性およびノイズ・マージンゆえに難しい。
【0043】
このような観点から、本実施形態は、低い分解能もしくは小さいダイナミック・レンジ(または両方)をもつ複数のメモリ・デバイスを単一のシナプス・メモリ(シナプス・メモリ・セル10)として組み合わせる。より好ましくは、全ダイナミック・レンジを増加できるように、デバイスごとに異なる大きさが割り当てられてよい。
【0044】
図4は、シナプス・メモリ100および各々が複数のメモリ・デバイスからなるシナプス・メモリ・セル10を描く。
【0045】
この図では、m個のメモリ・デバイス11が1つのシナプス・メモリ・セル10の構成要素となるように組み合わされる。1つのシナプス・メモリ・セル10に含まれるメモリ・デバイス11が同じデバイス特性を有すると仮定される。また、各メモリ・デバイス11がn個の分解能ステップを有すると仮定される。
【0046】
1つのシナプス・メモリ・セル10がm個のメモリ・デバイス11からなるので、それぞれのメモリ・デバイス11に対応するデンドライトのm本のラインが1つのシナプス・メモリ・セル10へ接続される。これらm本のラインが一組のデンドライト30の構成要素となる。
【0047】
一組のデンドライト30の構成要素となるm本のラインの各々に0~(m-1)の範囲内の数が割り当てられる。シナプス・メモリ・セル10の構成要素となるメモリ・デバイス11が互いに区別されるべきときに、メモリ・デバイス11の各々に、以下では、メモリ・デバイス11(0)、メモリ・デバイス11(1)...メモリ・デバイス11(m-2)、およびメモリ・デバイス11(m-1)のように、そのメモリ・デバイス11へ接続されたラインの番号が記される。
【0048】
図4に示されるシナプス・メモリ・セル10全体としての分解能は、複数のメモリ・デバイス11のダイナミック・レンジの組み合わせによって決定される。例えば、シナプス・メモリ・セル10全体としての分解能は、nを底としてもつメモリ・デバイス11の分解能(n)を用いて指数スケールで表現される。それに応じて、各メモリ・デバイス11には異なる大きさが割り当てられる。より具体的には、シナプス・メモリ・セル10の分解能がm桁の値であることを仮定すると、メモリ・デバイス11(0)が第1桁を表し、メモリ・デバイス11(1)が第2桁を表し...メモリ・デバイス11(m-2)が第(m-1)桁を表し、メモリ・デバイス11(m-1)が第m桁を表す。
【0049】
シナプス・メモリ・セル10全体としての分解能を得るために、一組のデンドライト30の構成要素となるラインの各々からの電流が、対応するメモリ・デバイス11によって表現される桁に従って、コンバータ12(k-1)(k=1,2,・・・,m)によって変換される。より具体的には、メモリ・デバイス11(0)へ接続されたラインからの電流に1(またはn)が乗じられ、メモリ・デバイス11(1)へ接続されたラインからの電流にn(またはn)が乗じられ、...メモリ・デバイス11(m-2)へ接続されたラインからの電流にnm-2が乗じられて、メモリ・デバイス11(m-1)へ接続されたラインからの電流にはnm-1が乗じられる。従って、各ラインからの出力は、シナプス・メモリ・セル10全体としての分解能の値の一部を形成する、対応するメモリ・デバイス11(k-1)(k=1,2,・・・,m)の桁を表すことができる。
【0050】
次に、加算器13がラインからの電流を合計する。先に記載されたように、ラインの各々からの出力電流がシナプス・メモリ・セル10の分解能の桁に従って変換され、従って、これらの電流を合計することが、シナプス・メモリ・セル10全体としての分解能に対応する電流を得ることを許容する。次に、電流から電圧への変換器(IVC:current-to-voltage converter)14が出力値を電圧へ変換して、その電圧が、次に、アナログからデジタルへの変換器(ADC:analog-to-digital converter)15によってアナログからデジタルへの変換を受ける。このようにして得られたデジタル値がマージされたデンドライト35からの出力信号として出力される。
【0051】
図7は、ニューロシナプティック・コア・システム1000を含むデバイス1010の例を描く。
【0052】
図7に示されるように、シナプス・メモリ・システム1が、コンピュータのような、デバイス1010上に設けられてよい。示される例では、複数のニューロシナプティック・コア・システム1000は、半導体チップのような、チップ1001上に設けられる。チップ1001が、次に、デバイス1010上に載せられる。
【0053】
ニューロシナプティック・コア・システム1000の各々がシナプス・メモリ・システム1およびニューロン本体700を含む。ニューロン本体700は、ニューロン動作を行う。具体的には、ニューロン本体700が電流センサによってセンシングされた全電流に基づいてシナプスの重み値と入力値との積和値を得る。電流センサによってセンシングされた全電流は、選択されたアクソン(単数または複数)20と一組のデンドライト30との交点上のシナプス・メモリ・セル10に格納されたシナプスの重み値と、入力値との積和値を表してよい。次に、ニューロン本体700が全電流値に対応するニューロン出力を出力する。
【0054】
ここで、ニューロシナプティック・コア・システム1000がプリドライブされたアクソン25を介して互いに接続される。シナプス・メモリ・システム1は、プリドライブされたアクソン25を介してプレニューロンへ接続される。ニューロン本体700は、ポストニューロンの一部であり、その出力が、同じかまたは他のニューロシナプティック・コア・システム1000中のシナプス・メモリ・システム1へ接続された、プリドライブされたアクソン25である。シナプス・メモリ・システム1は、入力がアクソン20を介して活動化されるシナプスの重み値を累積するためにプレニューロンからの出力信号を受信する。シナプスの重み値と、アクソン20(またはプリドライブされたアクソン25)からの入力値との乗算値の累積値が予め決められた閾値に達すれば、ニューロン本体700が出力信号をプリドライブされたアクソン25でポストニューロンのニューロン出力として出力する。
【0055】
第2の例示的な実施形態
図5Aは、MRAMからなるアナログ・メモリの例示的な構造を示す。図5Bは、図5Aのアナログ・メモリが値「0」を格納する状態を示す。図5Cは、図5Aのアナログ・メモリが値「1」を格納する状態を示す。
【0056】
アナログ・メモリ16は、フリー層161およびピンニング層162を含む。フリー層161は、平面状であり、その端部に固定領域161a、および固定領域161aの間にデータ領域161bを含む。ピンニング層162は、フリー層161の端部においてそれぞれの固定領域161a上に堆積される。
【0057】
ピンニング層162によって励起されるにつれて、2つの固定領域161aは、反対方向の磁界を有する。
【0058】
固定領域161aの影響に起因して、データ領域161bの磁界は、いずれかの固定領域161aの磁界と同一であってもよく、または両方の固定領域161aの磁界を部分的に含んでもよい。データ領域161bの磁界が変化する境界は、分域壁161cと呼ばれる。
【0059】
固定領域161aがピンニング層162によって励起されるにつれて、データ領域161bでは分域壁161cの位置が固定領域161aの間で移動する。分域壁161cの位置に従ってアナログ値が格納される。
【0060】
それに応じて、上記のように構成されたアナログ・メモリ16のダイナミック・レンジを増加させるために必要とされるのは、分域壁161cが移動できる長さを、できる限り、増加させることである。言い換えれば、データ領域161bの長さ(図5A中の長さa)ができるだけ長い必要がある。さらに言い換えれば、2つの固定領域161aの間の距離ができるだけ長い必要がある。
【0061】
一方では、メモリに書き込む際に分域壁161cが図5Bおよび5Cに示されるように2つの固定領域161aの間で移動するときに、図3中のセット閾値レベルまたはリセット閾値レベルより大きい電圧によってある一定の閾値量より大きい電流(または単位時間当たりの電子移動)がもたらされる。この電子移動の方向(電流方向とは反対)が図5Bおよび5Cに示される。分域壁161c移動の量は、その電流(単位時間内に移動される電子の量)に依存する。そのように、その全範囲内のメモリの記録値のステップの数は、分域壁161cが図5B中の分域壁から図5C中の分域壁へ移動することができるデータ領域161bの長さに比例する。従って、図5A中のデバイス16のaの長さが最大化されるべきである。他方では、記録電流は、流れる電流に垂直なメモリ・デバイスの断面積に比例する。従って、図5A中のデバイス16の幅bは、記録電流を削減して、電力消費を削減するために最小化されるべきである。これらの理由のため、ダイナミック・レンジが大きく、低電力消費で格納値の十分な分解能をもつアナログ・メモリ16の形状は、大きいアスペクト比(図5Aのa:bの比)を呈するであろう。
【0062】
図5A~5Cを参照して説明されたアナログ・メモリ16の構造は、例示に過ぎない。しかしながら、多くのアナログ・メモリは、それらが多数の少量のステップによって大きいダイナミック・レンジを有することができるように、実際には、大きいアスペクト比を呈する。
【0063】
図4を参照して説明されたシナプス・メモリ・セル10のメモリ・デバイス11の各々が図5A~5Cを参照して説明されたアナログ・メモリ16からなることを仮定する。
【0064】
図6は、図5A~5Cに示されるアナログ・メモリ16がシナプス・メモリ・セル10中の各メモリ・デバイス11に用いられる例示的な構成を示す。
【0065】
図6に示される例では、各シナプス・メモリ・セル10中の複数のメモリ・デバイス11(アナログ・メモリ16)は、それらの長辺(図5A中の長さaの方向に沿う辺)が互いに平行であるように配列される。これは、シナプス・メモリ・セル10全体としてのアスペクト比(すなわち、メモリ・デバイス11の長さ方向対メモリ・デバイス11が配列される方向の比)を個々のメモリ・デバイス11と比較して削減できる。これは、複数のメモリ・デバイス11が1つのシナプス・メモリ・セル10として組み合わされた構成においてシナプス・メモリ・セル10およびシナプス・メモリ100の形状のフレキシビリティを増加させる。
【0066】
第3の例示的な実施形態
図2を参照して説明されたように、シナプス・メモリ・システム1が、または外部ブロックがシナプス・メモリ100へ接続された周辺デバイスを含んでよい。これらの周辺デバイスは、シナプス・メモリ100のアクソン20側に設けられたもの、およびシナプス・メモリ100のマージされたデンドライト35側に設けられたものを含む。
【0067】
推論(または認識)およびトレーニングを伴うシナプス・メモリ・システム1の通常動作の下で、前のニューロン本体700からの信号出力がプリドライブされたアクソン25を介してシナプス・メモリ100へ入力されて、シナプス・メモリ100が、次には、その信号をマージされたデンドライト35を介して後のニューロン本体700へ出力する。
【0068】
他方では、バック・プロパゲーションを伴うシナプス・メモリ・システム1の動作の下で、後のニューロン本体700からの信号出力がマージされたデンドライト35を介してシナプス・メモリ100へ入力されて、シナプス・メモリ100が、次には、その信号をプリドライブされたアクソン25を介して前のニューロン本体700へ出力する。
【0069】
この理由のため、ほとんど同じサイズの一群の周辺デバイスがシナプス・メモリ100のアクソン20(またはプリドライブされたアクソン25)側およびデンドライト30(またはマージされたデンドライト35)側の両方に設けられる。従って、シナプス・メモリ100のアスペクト比(すなわち、そのアクソン20に沿った長さ対そのデンドライト30に沿った長さの比)が1:1に近づくにつれて、シナプス・メモリ100に対して周辺デバイスを置くことがより容易になり、従って、シナプス・メモリ・システム1を設計することがより容易になる。
【0070】
図4を参照して説明されたように、シナプス・メモリ・セル10が複数のメモリ・デバイス11からなるときに、シナプス・メモリ・セル10に含まれるメモリ・デバイス11の数に依存してシナプス・メモリ・セル10が大きいアスペクト比を有することがある。その場合には、シナプス・メモリ100全体としてのアスペクト比を削減するために、シナプス・メモリ・セル10は、各シナプス・メモリ・セル10のアスペクト比に従って垂直方向にある一定の距離のブランク・ギャップによって互いにスペースを空けて置かれる必要があり、これにより無用なスペースが作り出される結果をもたらす。
【0071】
他方では、図6に示されるように各シナプス・メモリ・セル10中のメモリ・デバイス11としてアナログ・メモリ16を配列すると、シナプス・メモリ100全体としてのアスペクト比を削減し、同時に無用なスペースをなくすことができる。
【0072】
より具体的には、各シナプス・メモリ・セル10中の複数のメモリ・デバイス11(アナログ・メモリ16)は、それらの長辺が互いに平行であるように配列される。これは、シナプス・メモリ・セル10のアスペクト比を1:1に近付けることができる。従って、かかるシナプス・メモリ・セル10からなるシナプス・メモリ100は、シナプス・メモリ・セル10の間に無用なスペースのない1:1に近いアスペクト比を有することができる。
図1
図2
図3
図4
図5A
図5B
図5C
図6
図7