JP7442625B2 - 相変化メモリ・シナプスのプログラム中にドリフト係数外れ値を抑制すること - Google Patents

相変化メモリ・シナプスのプログラム中にドリフト係数外れ値を抑制すること Download PDF

Info

Publication number
JP7442625B2
JP7442625B2 JP2022513039A JP2022513039A JP7442625B2 JP 7442625 B2 JP7442625 B2 JP 7442625B2 JP 2022513039 A JP2022513039 A JP 2022513039A JP 2022513039 A JP2022513039 A JP 2022513039A JP 7442625 B2 JP7442625 B2 JP 7442625B2
Authority
JP
Japan
Prior art keywords
conductance
programming
pcm
time
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022513039A
Other languages
English (en)
Other versions
JP2022546032A (ja
JPWO2021038334A5 (ja
Inventor
バール、ジェフリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022546032A publication Critical patent/JP2022546032A/ja
Publication of JPWO2021038334A5 publication Critical patent/JPWO2021038334A5/ja
Application granted granted Critical
Publication of JP7442625B2 publication Critical patent/JP7442625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/82Array having, for accessing a cell, a word line, a bit line and a plate or source line receiving different potentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • Semiconductor Memories (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Advance Control (AREA)

Description

本発明は一般にコンピュータ技術に関し、より詳細には、相変化メモリ(PCM)をプログラムすることに、およびPCMのプログラム中にドリフト外れ値を抑制する方法に関する。
PCMは、別個の電気特性を有する2つの相の間で切り替わる特質を有する材料の特徴を利用する。例えば、これらの材料は、非晶質の無秩序な相と、結晶質または多結晶質の秩序的な相との間で、切り替わることができる。これら2つの相は大きく異なる抵抗値と関連付けられる。更に、材料の一部しか非晶質相にまたは結晶相に切り替わっていない中間構成を、中間の抵抗値と関連付けることができる。
本発明の1つまたは複数の実施形態によれば、相変化メモリ(PCM)デバイスのドリフト外れ値を抑制するためのコンピュータ実装方法は、制御装置によってPCMデバイスのコンダクタンスをプログラムすることを含み、プログラムすることは、第1の時点において、PCMデバイスのコンダクタンスを第1のコンダクタンス値となるように構成することであって、第1の時点はプログラミング時点である、構成することを含む。更に、プログラムすることは、第1の事前補償時点において、PCMデバイスのコンダクタンスが、目標コンダクタンス値との差が所定閾値以内である第2のコンダクタンス値に変化していると判定することを含む。また更に、プログラムすることは、上記判定に基づいて、第2の事前補償時点において、上記事前補償を再び測定することを含めて、第2の時点において、PCMデバイスを第1のコンダクタンス値となるようにプログラムし直すことを含む。PCMデバイスのコンダクタンスは、コンダクタンス・ドリフトに起因して第2のコンダクタンス値に変化する。
1つまたは複数の例では、事前補償時点は、プログラミング時点後の所定時間期間にある。更に、1つまたは複数の例では、第1の事前補償時点における目標コンダクタンス値は、プログラミング時点後の第2の所定期間にあたる目標時間窓に基づいて決定される。PCMデバイスのコンダクタンスは、目標時間窓内で特定の範囲内に維持されることになる。
1つまたは複数の例では、プログラムすることは、(i)事前補償時点における第2のコンダクタンス値と(ii)目標コンダクタンス値との間の差が所定閾値未満になるまで継続される。
事前補償時点において、事前補償時点における第2のコンダクタンス値と目標コンダクタンス値との間の差が所定閾値未満である場合、方法は、第1のチェックポイントにおいて、PCMデバイスのコンダクタンスが、第2の目標コンダクタンス値との差が所定閾値以内である第3のコンダクタンス値に変化していると判定することを更に含む。方法は、上記事前補償を再び測定することを含めて、第3の時点において、PCMデバイスを第1のコンダクタンス値となるようにプログラムすることを更に含む。
1つまたは複数の例では、第1のチェックポイントは、プログラミング時点後の第2の所定時間期間にある。第1のチェックポイントにおける第2の目標コンダクタンス値は、プログラミング時点以降の第2の所定期間にあたる目標時間窓に基づいて決定され、PCMデバイスのコンダクタンスは目標時間窓内で特定の範囲内に維持される。
1つまたは複数の例では、PCMデバイスは人工ニューラル・ネットワーク・システムにおけるシナプスとして使用され、コンダクタンスはシナプスに割り当てられる重みである。
1つまたは複数の例では、PCMデバイスは複数のPCMデバイスを備え、各PCMデバイスは対応する目標コンダクタンス値と関連付けられている。
上記した特徴はまた、少なくともシステム、コンピュータ・プログラム製品、および機械によっても提供され得る。
本発明の1つまたは複数の実施形態によれば、コンピュータ実装方法は、クロスバー・アレイ中の複数の相変化メモリ(PCM)デバイスから、あるPCMデバイスのコンダクタンス値を、プログラミング時点である第1の時点において第1のコンダクタンス値となるようにPCMデバイスのコンダクタンスを構成するための信号を受信することによって、構成することを含む。方法は、事前補償時点において、PCMデバイスのコンダクタンスが、目標コンダクタンス値との差が所定閾値以内である第2のコンダクタンス値に変化していると判定することを更に含む。方法は、上記事前補償を第2の事前補償時点において再び測定することを含めて、第2の時点において、PCMデバイスのコンダクタンスを第1のコンダクタンス値となるように構成するための別の信号を受信することを更に含む。
上記した特徴はまた、少なくともシステム、コンピュータ・プログラム製品、および機械によっても提供され得る。
本発明の1つまたは複数の実施形態はしたがって、特にPCMデバイスをプログラムするおよびドリフト外れ値を抑制するための、コンピュータ技術の実際の応用および改善を容易にする。PCMデバイスの重みがどのようであるべきか知られている場合に本発明の実施形態を適用することができ、PCMデバイスはそれらが将来の適切な時間に適切な重み値に到達するような方法でプログラムされる。PCMデバイスは対数スケールで推移するので、(重みが使用される時点と比較して)比較的短い時間期間(例えば、1秒、1分、等)後であっても、PCMデバイスの重みの測定値を使用して、所望の目標時間窓(例えば、6ヶ月、1年、等)においてPCMデバイスが所望の目標重みを有することになるかどうかの予測が可能になることが実現される。
事前補償時点は、プログラミング時点後の所定時間期間にあたる。事前補償時点における目標コンダクタンス値は、プログラミング時点後の第2の所定期間にあたる目標時間窓に基づいて決定される。PCMデバイスのコンダクタンスは、目標時間窓内で特定の範囲内に維持されることになる。
本発明の技術によって更なる技術的特徴および利益が実現される。本発明の実施形態および態様は本明細書に詳細に記載されており、特許請求される主題の一部と見なされる。よりよく理解するためには、詳細な説明および図面を参照されたい。
本明細書に記載される排他的権利の詳細は、本明細書の終結部に置く特許請求の範囲において具体的に指摘され、明確に特許請求される。本発明の実施形態の前述のおよび他の特徴および利点は、添付の図面と併せて解釈される続く詳細な説明から明らかである。
深層ニューラル・ネットワークのブロック図である。 本発明の1つまたは複数の実施形態に係る、アナログ・メモリのクロスバー・アレイを使用する深層ニューラル・ネットワークのブロック図である。 本発明の1つまたは複数の実施形態に係る、アナログ・メモリのクロスバー・アレイを使用する深層ニューラル・ネットワークのブロック図である。 本発明の1つまたは複数の実施形態に係る、アナログ・メモリのクロスバー・アレイを使用する深層ニューラル・ネットワークのブロック図である。 本発明の1つまたは複数の実施形態に係る相変化メモリ・アレイ・デバイスのブロック図である。 本発明の1つまたは複数の実施形態に係る、複数のニューロンに結合されたクロスバー・アレイをネットワークとして使用して実装されたニューロモルフィック・システムの構造を表した図である。 本発明の1つまたは複数の実施形態に係る相変化メモリ・デバイスの抵抗/コンダクタンス値の例示のドリフトを表した図である。 本発明の1つまたは複数の実施形態に係る例示のデバイスに関するν係数を表した図である。 本発明の1つまたは複数の実施形態に係る、相変化メモリ・デバイスのプログラム中にドリフト係数外れ値を抑制するための方法を表したフローチャートである。 本発明の1つまたは複数の実施形態に従ってプログラムされている例示の相変化メモリ・デバイスを表した図である。 本発明の1つまたは複数の実施形態に係る、ドリフト外れ値の抑制を伴って相変化メモリ・デバイスをプログラムするためのシステムを表した図である。
本明細書に描かれている図は例示的なものである。これらの図またはそれらに記載されている動作には、本発明の思想から逸脱することなく多くの変形が存在し得る。例えば、アクションを異なる順序で実行することができるか、またはアクションを追加、削除、もしくは変更することができる。また、用語「結合された」およびその変形は2つの要素間に通信経路を有することを記述するものであり、それらの間に介在する要素/接続部を有さない要素間の直接的な接続は示唆していない。これらの変形は全て本明細書の一部であると見なされる。
添付の図および開示される実施形態の続く詳細な説明において、図に示される様々な要素には、2桁または3桁の参照番号が付されている。僅かな例外はあるが、各参照番号の最も左の数字は、その要素が最初に図示される図に対応している。
本発明の様々な実施形態が関連する図面を参照して本明細書に記載されている。本発明の範囲から逸脱することなく本発明の代替の実施形態を考案することができる。以下の説明および図面において、要素間の様々な接続および位置関係(例えば、上、下、隣、等)が説明される。これらの接続または位置関係あるいはその両方は、別に規定されていない限りは、直接的または間接的であり得、本発明はこの点に関して限定することは意図していない。したがって、エンティティの結合は直接的結合または間接的結合のいずれを指す場合もあり、エンティティ同士の位置関係は直接的な位置関係または間接的な位置関係であり得る。また更に、本明細書に記載する様々なタスクおよびプロセス・ステップは、本明細書に詳細に記載されていない追加のステップまたは機能性を有するより包括的な手順またはプロセスに組み込むことができる。
以下の定義および略語は、特許請求の範囲および明細書を解釈するために使用されるものである。本明細書で使用される場合、用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」、「含む(including)」、「有する(has)」、「有する(having)」、「含有する(contains)」、もしくは「含有する(containing)」、またはその何らかの他の変形は、非排他的な包含を含むことが意図されている。例えば、列挙された要素を含む組成物、混合物、プロセス、方法、物品、または装置は必ずしもそれらの要素だけに限定されず、明示的に列挙されていないかまたはそのような組成物、混合物、プロセス、方法、物品、もしくは装置に固有の、他の要素を含み得る。
また加えて、用語「例示的」は本明細書では、「例、実例、または例示の役割を果たす」という意味で使用される。本明細書で「例示的」であるとして記載されるいかなる実施形態または設計も、必ずしも他の実施形態または設計に比べて好ましいかまたは有利であると解釈されるべきではない。用語「少なくとも1つの」および「1つまたは複数の」は、1よりも大きいかまたは1と等しい任意の整数、すなわち1、2、3、4、等を含むものと理解され得る。用語「複数」は、2よりも大きいかまたは2と等しい任意の整数、すなわち2、3、4、5、等を含むものと理解され得る。用語「接続」は、間接的な「接続」および直接的な「接続」の両方を含み得る。
用語「約(about)」、「実質的に」、「約(approximately)」、およびこれらの変形は、本願の出願の時点で利用可能な機器に基づく特定の量の測定に関連する誤差の程度を含むことが意図されている。例えば「約(about)」は、所与の値の±8%、または5%、または2%の範囲を含み得る。
簡潔にするために、本発明の態様の製作または使用に関連する従来の技術は、本明細書で詳細に説明する場合もあれば、しない場合もある。特に、本明細書に記載する様々な技術的特徴を実装するためのコンピューティング・システムおよび特定のコンピュータ・プログラムの様々な態様はよく知られている。したがって、簡潔にするために、本明細書では従来の実装の詳細の多くは簡潔にしか記述しないかまたは完全に省略し、よく知られているシステムまたはプロセスあるいはその両方の詳細は提供しない。
既に指摘したように、相変化メモリ(PCM)素子は、別個の電気特性を有する2つの相の間で切り替わる特質を有する材料の特徴を利用する。現時点では、カルコゲニドまたはカルコゲニック材料と呼ばれる、TeまたはSeなどの周期表の第6族の合金が、相変化セルにおいて有利に使用され得る。カルコゲニドでは、当該材料が非晶質相(抵抗がより高い)から結晶相(抵抗がより低い)へとおよびその逆に移行すると、抵抗値は2桁以上変化する。
そのような特性によって、PCM素子は、デジタルおよびアナログのデータ・ストレージ用のメモリ・セルおよびメモリ・アレイを提供するのに非常に適したものとなる。特に、相変化メモリにおいて、カルコゲニド材料の一部は、第1の論理値および第2の論理値とそれぞれ関連付けられている高抵抗状態と低抵抗状態を切り替えるおよびその逆を行うように、制御された電流によって電気的に加熱可能な、プログラム可能な抵抗器として使用される。カルコゲニドの状態は、加熱が行われないような十分に低い電圧を印加することによって、およびそこに流れる電流を測定することによって、読み出すことができる。電流はカルコゲニド材料のコンダクタンスに比例するので、2つの状態を区別することが可能である。例えば、コンピュータおよび他のタイプのデジタル・ストレージ・デバイスにおいてなど、上書き可能なメモリ・デバイスに情報を記憶するために、Ge、Sb、およびTeの合金(Ge2Sb2Te5、GST)によって形成されるカルコゲニドが広く使用されている。
高抵抗の非晶質状態と高導電性の結晶状態の間の相転移は、適切な振幅および持続時間の電流パルスによって電気的に誘起することができる。特に、非晶質状態への転移(「リセット」)は、カルコゲニドをジュール効果によって融点を超えて加熱するのに十分な振幅の電流パルスを適用することによって実現される。使用される電流パルスは、カルコゲニドの冷却が結晶化を防止するのに十分な速さとなるような、急峻なエッジを有するもので、例えば矩形電流パルスである。結晶状態への転移(「セット」)は異なる技術を用いて誘起することができる。このように、PCMデバイスの相のコンダクタンスが異なるため、この現象を使用してビットを記憶することが可能である。ビットが中間のコンダクタンスを有する状態になるように内部温度およびその時間的推移を制御することも可能である。このことは、ビットを記憶することに加えて、計算を行うために使用できるが、このことは、閾値未満の相変化の所定のグループ(または組)が次第に積み上がってビット反転が生じることによる。
このように計算を行うことの利点は2つある。すなわち、メモリ内で演算が行われるためメモリを行き来することが回避される、および、演算を並列で行うことができる。これらの違いはニューロンの集団の挙動と自然な対応関係を有し、このことにより、PCMデバイスは深層ニューラル・ネットワーク(DNN)などの人工ニューラル・ネットワーク(ANN)で使用するのに適したものとなる。
PCMは更に、DNN(または他のタイプのニューラル・ネットワーク)での使用にも適している。このことはニューロン活動が二値的な全か無かの状態ではないことに起因しており、ニューロン活動はオンとオフの間のある範囲の中間挙動をとり得る。したがって、PCMデバイスが1と0の間の状態をとることができることによって、ニューロンの挙動を直接的にモデル化することが可能になる。
これを訓練に使用するために、PCMデバイス(ビット)のグリッド(またはアレイ)をDNNの各層にマッピングすることができる。配線で構成した通信ネットワークによって、ニューロン同士の間で通信を行うことが可能になる。この通信の強度はメモリの状態によって設定され、このときメモリは完全にオンと完全にオフの間の変動範囲をとる。次にその状態がそこに投入される全てのビットによって設定される。通信ハードウェアは、相変化ビットからの可変強度信号を、デジタル通信ネットワークと適合性のある、様々な持続時間の信号へと変換する。
通常、DNNを実装するには前向き推論の計算は時間がかかりかつエネルギー負荷が高い可能性があるが、その理由は、ネットワーク用の重みデータを従来のデジタル・メモリ・チップとプロセッサ・チップの間で伝送する必要があるとともに、それらの重みを常にメモリに維持する必要があるからである。上記したように、PCMに基づくアナログ不揮発性メモリは、アナログ領域内の重みデータの場所において並列化された積和演算を行うことによって、前向き推論を加速させ、エネルギー消費を低減することができ、メモリ中の記憶されている重みデータをリフレッシュする必要性が低減される。そのようなDNNの実際の応用には制限はなく、IoTデバイスに関するリアルタイムのセンサ・データ処理および推論などが含まれ得る。
前向き推論の精度は重みプログラミングの精度に強く依存する。しかしながら、PCMなどのアナログ・メモリを所望のアナログ・コンダクタンス値となるようにプログラムすることは、特にアナログ・メモリ・アレイにばらつきがある場合、簡単なことではない。特定の抵抗状態(例えばこれは、低抵抗またはSET状態、高抵抗またはRESET状態、またはR1、R2、もしくはR3などのSET/RESET状態の間の何らかの中間状態であり得る)となるようにPCMデバイスをプログラムした後で、その抵抗状態の特定の抵抗値が経時的にドリフトする場合がある。例えば、抵抗ドリフトは、PCMデバイスのLOG(抵抗)が、LOG(時間)の関数として定常的に線形の増加(LOG(コンダクタンス)の減少と等価である)を示し続ける物理的プロセスである。このことは、コンダクタンスが時間の一次関数としてまず急激に降下し、その後(時間の一次関数として)飽和を見せることを意味するが、少なくとも所定期間(例えば6週間、3ヶ月、1年、等)である時間間隔にわたってコンダクタンスは降下し続ける。そのようなドリフトは、特にメモリ・デバイスが多状態モードで操作されるとき、ある抵抗状態を別の抵抗状態と区別する際に問題となる場合がある。このことにより、PCMデバイスを使用するシステム、例えばANNは、PCMデバイスを繰り返しプログラムし直すことを余儀なくされるか、または(PCMデバイスからの様々な値に起因して)予想しない結果を生じる可能性がある。以降、本文書では、ドリフトがPCMデバイスのコンダクタンス値を少なくとも所定値だけ変化させるまでの最短期間を、「ドリフト期間」と呼ぶ。
少なくとも過去にプログラムされたPCMデバイスを使用して実装されるANNの前向き推論に関して、コンダクタンスの平均損失は読み出し電流をスケーリング・アップすることによって部分的に補償できるが、ドリフト係数「ニュー」のサイクル間のランダムな変動に起因するコンダクタンスの拡散は、この様式では容易には補正できない。シナプス荷重データが、平均スケーリング係数によって十分に補正されないPCMに基づくシナプス荷重へと符号化されるのを回避する方法が、依然として必要とされている。
本発明の1つまたは複数の実施形態を使用する本明細書に記載する技術は、そのような技術的課題を克服する。本発明の1つまたは複数の実施形態はしたがって、特にPCMデバイスをプログラムするおよびドリフト外れ値を抑制するための、コンピュータ技術の実際の応用および改善を容易にする。本発明の1つまたは複数の実施形態によって提供される他の利点および実際の応用は、本明細書の記載に基づいて当業者には明らかであろう。
本発明の1つまたは複数の実施形態は、コンダクタンスが最初に降下しその後飽和することに基づいて、本明細書に記載する技術的課題に対処する。しかしながら、PCMデバイスがプログラムされると(プログラミング事象)、コンダクタンスの推移は、時間がプログラミング事象以降の時間である限り、LOG(コンダクタンス)対LOG(時間)プロット上で常に直線となる。t=0である何らかの他の始点を使用すると、因果律に反するデータ点、または、時間軸の最初の大きさのオーダーに関して平坦であり後から初めてカーブして背後にある実際のニュー係数と整合する曲線、のいずれかが生じる。
ここで、ANNにおいてPCMデバイスをシナプスとして使用することを含み、ANN中のシナプスのプログラム中にドリフト係数外れ値を抑制するための技術を組み込むことによって技術的課題に対処する、本発明の1つまたは複数の実施形態について記載する。
図1は、深層ニューラル・ネットワークのブロック図を表す。描かれているDNN100は、入力層110と隠れ層120と出力層130とを有し、各層はニューロン105を含む。DNNは生物のニューラル・ネットワークから大まかな発想を得ている。ニューロン105は、可塑性シナプスによって相互接続されている並列処理ユニットとして機能する。相互接続の重みを調整することによって、DNN100は分類問題などの特定の問題を効率的に解くことができる。DNN100の訓練は一般に、通常は逆伝播と呼ばれる、大域的教師あり学習アルゴリズムに基づいている。訓練中、入力データはニューロン層110、120、および130を通って順伝播され、シナプス・ネットワークは積和演算を行う。最終層(出力層130)の応答は入力データ・ラベルと比較され、誤差が逆伝播される。順伝播ステップおよび逆伝播ステップはいずれも、行列ベクトル乗算のシークエンスを含む。この結果、誤差が低減されるようにシナプス荷重が更新される。これらの操作を、非常に大規模なニューラル・ネットワークに対して非常に大きいデータセット(数ギガバイト)を使用して繰り返し行う必要があるため、この総当たり最適化手法は、ノイマン型計算機上の従来技術のネットワークを訓練するのに、数日または数週間を要する可能性がある。したがって、深層学習のそのようなステップを加速させるために、本発明の1つまたは複数の実施形態では、PCMデバイスの複数のクロスバー・アレイと、他のアナログ通信リンクおよび周辺回路構成とを含む、コプロセッサが使用される。
図2A、図2B、および図2Cは、本発明の1つまたは複数の実施形態に係る、アナログ・メモリのクロスバー・アレイを使用する深層ニューラル・ネットワークのブロック図を表す。シナプス荷重は、クロスバー・アレイ200内で組織化された不揮発性メモリ(NVM)デバイス210のコンダクタンス値に関してDNN100の各層(110、120、および130)と関連付けられている。NVMデバイス210は、PCMデバイス、抵抗ランダム・アクセス・メモリ(RRAM)・デバイスなどであり得る。図2A、図2B、および図2CにはDNN100を実装する様々な段階が、すなわち、図2Aには順伝播が、図2Bには逆伝播が、および図2Cには重みの更新が描かれている。
1つまたは複数の例では、DNN100の複数の層(110、120、および130)の各々にそれぞれ対応する、複数のそのようなクロスバー・アレイが存在する。本発明の1つまたは複数の実施形態によれば、コプロセッサ/チップ/システムは、そのようなクロスバー・アレイ200を、ニューロン活性化関数とクロスバー・アレイ200間の通信とを実施するための追加の周辺回路構成と共に含む。
図3は、本発明の1つまたは複数の実施形態に係る相変化メモリ・アレイ・デバイスのブロック図を表す。アーキテクチャには、チップ/システム300上の融通性のあるルーティング・ネットワークによって接続されている、複数の同一のアレイ・ブロック310が描かれている。各アレイ・ブロック310は、NVMデバイス210のクロスバー・アレイ200を表す。融通性のあるルーティング・ネットワークは、少なくとも3つのタスクを有する:(1)チップ300のエッジからデバイス・アレイ310へとチップ入力(例えば例データ、例ラベル、および重み上書き)を伝達すること、(2)チップ出力(例えば推論された分類および更新された重み)をアレイ310からチップ300のエッジへと伝搬すること、ならびに(3)多層ニューラル・ネットワークを実装するために様々なアレイ310を相互接続すること。各アレイ310は、シナプス接続部115の密なグリッドで接続されている、入力ニューロン110(ここでは各アレイの「西」側に示されている)および出力ニューロン130(「南」側)を有する。周辺回路構成は、個々の行(行回路構成320)および列(列回路構成330)に割り当てられた回路構成へと分割されており、回路構成はいくつかの隣り合う行および列の間で共有される。
本発明の1つまたは複数の実施形態によれば、クロスバー・アレイ200におけるNVMデバイス210(例えば、PCMデバイス)は、事前に訓練された重みに従ってプログラムされる。事前に訓練された重みは、ニューラル・ネットワーク・コンピューテーションにおいてNVMデバイス210が、NVMデバイス210がプログラミング時間と将来の時点である実際の推論使用時間との間で経験することになるドリフトのいかなる不確実性/分布とも無関係に実施すべき重みである。
図4は、本発明の1つまたは複数の実施形態に係る、複数のニューロンに結合されたクロスバー・アレイをネットワークとして使用して実装されたニューロモルフィック・システムの構造を表す。描かれているニューロモルフィック・システム400は、クロスバー・アレイ200を使用して相互接続された複数のニューロン414、416、418、および420を含む。一例では、クロスバー・アレイ200は、約0.1nmから10μmの範囲内のピッチを有する。システム400は、クロスバー・アレイ412の交点接合部において可変状態抵抗器として使用されるNVMデバイス210を含むシナプス・デバイス422を更に含む。シナプス・デバイス422は、軸索経路424、樹状突起経路426、および膜経路427に接続され、このとき軸索経路424および膜経路427は樹状突起426と直交する。用語「軸索経路」、「樹状突起経路」、および「膜経路」を、それぞれ「軸索」、「樹状突起」、および「膜」と呼ぶ場合もある。
交点接合部にNVMデバイス210を含むナノスケールのクロスバー・アレイであり得る、クロスバー・アレイ200を利用して、上記電子ニューロン間の任意の可塑性接続性が実装される。各シナプス・デバイス422は、信号通信(ニューロン発火事象)中のクロストークを防止するために、ならびに漏れ電流および電力消費を最小化するために、クロスバー接合部ごとに、ダイオードとして配線されない電界効果トランジスタ(FET)を含み得るアクセスまたは制御デバイス425を更に含む。他の実施形態では制御デバイス425として他のタイプの回路を使用することができ、FETは本明細書の説明では1つの可能な例として使用されていることに留意すべきである。
電子ニューロン414、416、418、および420は、クロスバー・アレイ200の周辺にある回路として構成される。設計および製作が簡単であることに加えて、クロスバー・アーキテクチャは、利用可能なスペースの効率的な使用を実現する。完全なクロスバー・アレイに固有の完全なニューロン接続性は、製作中の電気的初期化または望まれない場所でのマスク・ステップの省略によって、どのような任意の接続性にも変換され得る。クロスバー・アレイ200はニューロン間の通信をカスタマイズするように構成され得る(例えば、あるニューロンは別のニューロンと決して通信しない)。製作レベルで特定のシナプスをブロックすることによって、任意の接続が得られ得る。このため、システム400のアーキテクチャ原理は、生物のニューロモルフィック・ネットワークにおいて観察される全ての直接的配線組合せを模倣することができる。
クロスバー・アレイ200は図4に示すように、ドライバ・デバイスX、X、およびXを更に含む。デバイスX、X、およびXは、インターフェース・ドライバ・デバイスを含み得る。詳細には、樹状突起426は、クロスバー・アレイ200の一方側にドライバ・デバイスXを、およびクロスバー・アレイの他方側にレベル変換器デバイス(例えば、センス・アンプ)Xを有する。軸索424は、クロスバー・アレイ200の一方側にドライバ・デバイスXを有する。ドライバ・デバイスは、「西」側および「南」側(図3)などの本明細書に記載する機能を実施するCMOS論理回路を含み得る。
これらのシグナリング技術は、図2A、図2B、および図2Cに描かれているようなクロスバー・アレイ200を使用するDNN100を実装するための操作に使用される。図2Aを参照すると、順伝播には、シナプス・ネットワークが積和演算を行うニューロン層(110、120、および130)を通してデータを処理することが含まれる。順方向パスと関連付けられる行列ベクトル乗算は、描かれているクロスバー・アレイ200を使用してO(1)複雑性で実施され得る。例えば、Aが行列でありxおよびbがベクトルであるときのAx=bを実行するために、Aの要素は、クロスバー200内で組織化されたPCMデバイス210のコンダクタンス値に線形にマッピングされる。x値は、行に沿って印加される読み出し電圧の振幅または持続時間へと符号化される。Aの正および負の要素は、個別のデバイス上で減算回路と一緒にコーディングされる。別法として、1つまたは複数の例では、負のベクトル要素が負の電圧として加えられる。列に沿った結果的な電流は、結果bに比例している。入力が持続時間へと符号化される場合、結果bは合計電荷(例えば、時間で積分された電流)である。使用されるNVMデバイス210の特質は、多レベルの記憶能力、ならびに、キルヒホッフの回路法則、すなわちオームの法則およびキルヒホッフの電流法則である。
クロスバー・アレイ210のおよびニューロモルフィック・システム400の説明は1つの可能な例示の実装形態であること、ならびに、本発明の1つまたは複数の実施形態を他のタイプの実装形態において使用できることに留意すべきである。
典型的には、NVMデバイス210をプログラムすること(重みを更新すること)は、コンプライアンス電流を定常的に大きくしながらSETパルスを反復的に適用することによって行われる。より低いコンダクタンス値への急激な移行を引き起こし得るRESETパルスとは異なり、部分的SETパルスの連続的な適用は、結果的にNVMデバイス210のコンダクタンス値のより漸進的な増大をもたらすと考えられる。このため、NVMデバイス210を使用するニューロモルフィック・システム400に対して、既存のソリューションでは、PCMデバイスを所望のシナプス荷重へと調整するために、部分的SETパルスが使用される。
例えば、NVMデバイス210のアナログ・コンダクタンス調整のための典型的なプログラミング戦略は、目標アナログ・コンダクタンス値に達するまで、コンプライアンス電流を定常的に大きくしながら(同時に場合によってはパルス持続時間も長くしながら)、SETパルスを反復的に適用することである。NVMデバイス210は平均スケーリング係数によって補正される。しかしながら、PCMに基づくシナプス荷重へのシナプス荷重データの符号化は、ドリフト期間にわたるそのような平均スケーリング係数によっては補正されない。
図5は、本発明の1つまたは複数の実施形態に係るNVMデバイスの抵抗/コンダクタンス値の例示のドリフトを表した図である。表されているのは例示的な値についてのものであり、他の例では任意の他の抵抗/コンダクタンス値およびドリフトが可能であることが理解される。図5は、個別のNVMデバイス210の経時的な抵抗/コンダクタンスのドリフトを示している。見てとれるように、デバイスは互いに異なってドリフトし得る。デバイスごとの異なるドリフトは、対応するNVMデバイス210のドリフト係数(「ν」(ニュー)係数)として表現できる。NVMデバイス210のν係数はNVMデバイス210に関するコンダクタンス推移の軌跡を示し、log(コンダクタンス)対log(時間)のプロット上の直線の傾きを表す。
図6は、本発明の1つまたは複数の実施形態に係る例示のデバイスに関するν係数を表した図である。図6のプロットは、個別のNVMデバイス210に関するコンダクタンスの経時的な変化の軌跡を示す。それぞれのNVMデバイスのν係数も示されている。コンダクタンスが最後に読み出されたときのコンダクタンスおよび時間はいずれも、LOGスケールを使用してプロットされる。ν係数はNVMデバイス210に割り当て可能な値ではない。むしろν係数は、NVMデバイスがプログラムされるときに、NVMデバイス210によってランダムに採択されているように見える。これらの現象は、各プログラミング事象後のNVMデバイス中の多結晶粒子のランダム分布に起因すると考えられる。このため、NVMデバイス210のドリフトは予測不可能であり、本明細書で検討する技術的課題をもたらす。
本発明の1つまたは複数の実施形態は、NVMデバイス210(シナプス)における重み値をプログラムすること、およびNVMデバイス210における変化した重み値を所定期間後にチェックすることによって、そのような技術的課題に対処する。例えば、変化した重み値は、1~60秒待機した後で、ν係数に起因する軌跡が明らかになるまでチェックされる。所定期間(例えば1~60秒)後の変化した重み値と目標値との差が少なくとも所定閾値である場合、NVMデバイス210をプログラムし直す。
このサイクルは、NVMデバイス210がν係数の予想される分布の中央値に十分に近いν係数を選択するまで継続される。このことは、1秒から1分までの合理的な間隔において、その時間におけるデバイスのコンダクタンスが、その時間間隔にわたるν係数中央値でドリフトするデバイスのコンダクタンスの変化に対応する比によって元のバウンディング・ボックスと関連付けられる、所与のバウンディング・ボックス内にあることをチェックすることによってチェックされ得る。各チェックには1回の試行あたり要するのは1分未満なので、将来への長期間にわたって「外れ値」のニュー係数からニューラル・ネットワークを保護するために、複数回のプログラミング試行を無理なく実施できる。言い換えれば、所定閾値を超えてドリフトすることになる重み値を抑制するようにNVMデバイス210が結果的にプログラムされることを考慮すれば、NVMデバイス210を複数回プログラムするために「余分な」時間を費すことを許容できる。その理由は、ドリフトのためにNVMデバイス210をプログラムし直す必要があり得るか、またはNVMデバイス210から誤った結果が生じ得るからである。
図7は、本発明の1つまたは複数の実施形態に係る、NVMデバイスのプログラム中にドリフト係数外れ値を抑制するための方法のフローチャートを表す。図8は、図7に示されている方法700に従ってプログラムされている例示のNVMデバイスを表す。
方法700は、702において、事前補償時点810(例えば、20ns)におけるNVMデバイス210のコンダクタンス目標を決定することを含み、これは、NVMデバイス210のプログラミング後のその時点810と、プログラミング時点805後の所望の目標窓850(例えば7時間、2週間、6ヶ月等)との間の、予想される平均ドリフトを事前補償する。事前補償時点810は、NVMデバイス210のコンダクタンス値の変化がチェックされる所定期間(例えば20ns)を表す。
図8を参照すると、NVMデバイス210は時点805においてプログラムされる。所望の(目標)時間窓850は、プログラミング時点805以降の約6時間~6ヶ月で表されている。他の例では所望の時間窓850は異なり得ることが理解される。所望の時間窓850は、NVMデバイス210にプログラムされるコンダクタンス値が、本明細書に記載するように、ドリフト係数中央値により、その期間中に予想されるドリフト周辺の所定の間隔の外に、所定閾値を超えて変化しない期間を表す。事前補償時点810は、プログラミング時点805から20nsの所定期間のところに示されている。他の例では事前補償時点810は異なる期間においてであり得ることが理解される。
したがって、事前補償時点810におけるNVMデバイス210のコンダクタンス目標を決定することは、所定期間後にNVMデバイス210が有するべきコンダクタンス値を計算することを含む。NVMデバイス210のコンダクタンス値がコンダクタンス目標から所定閾値内にある場合、ν係数は、NVMデバイス210のコンダクタンス値が目標窓850内で所定閾値を超えてドリフトしないような、許容可能な範囲内にあると判断される。NVMデバイス210のコンダクタンス値が事前補償時点810においてコンダクタンス目標から所定閾値内にない場合、ν係数は許容可能な範囲外にあると判断される。言い換えれば、NVMデバイス210のコンダクタンスは、目標窓850内で所定閾値を超えてドリフトすると予測される。
1つまたは複数の例では、方法700は、異なる時点において複数のコンダクタンス目標値を決定することを含む。例えば、事前補償時点810について第1の目標コンダクタンス値が算出され、チェックポイント815について第2の目標コンダクタンス値が算出され、以下同様である。実際の実装の観点からは、チェックされ得るコンダクタンス目標値の数を、例えば2つ、4つ、または、限定された時間、例えば1分、5分、もしくはそのようなプログラミング時間内での、NVMデバイスの複数回のプログラミングおよびチェックを容易にし得るような任意の他の数に、限定しなければならない。
ここで図7を参照すると、NVMデバイス210は、704において、NVMデバイス210によって表されるシナプスに記憶されることになる重みに対応するコンダクタンス値を用いてプログラムされる。プログラムすることは、既に指摘したように、時点805において行われる。方法700は、706において、事前補償時点(810)においてNVMデバイスのコンダクタンス値を測定することを更に含む。708において、測定されたコンダクタンス値は目標コンダクタンス値と比較される。事前補償時点810において測定されたコンダクタンス値が、事前補償時点810に対応するコンダクタンス目標値の第1の所定閾値内にない場合、NVMデバイス210はプログラムし直され、このチェックが継続される(704、706、708)。
測定されたコンダクタンス値が目標コンダクタンス値の第1の所定閾値内にある場合、方法700は、710において、第2のチェックポイント815においてコンダクタンス値を再び測定する。図8に表されている例では、チェックポイント815はプログラミング時点805から1秒のところに示されている。しかしながら、他の例では他のチェックポイントを使用できることが理解される。
第2の測定されたコンダクタンス値は、712において、チェックポイント815に対応する第2の目標コンダクタンス値と比較される。チェックポイント815における第2の測定されたコンダクタンス値が、チェックポイント815に対応する第2のコンダクタンス目標値の所定閾値内にない場合、NVMデバイス210はプログラムし直され、方法の動作が繰り返される(704、706、708、710)。第2の測定されたコンダクタンス値が第2の目標コンダクタンス値の所定閾値内にある場合、NVMデバイス210は、ドリフト外れ値が抑制された状態でプログラムされていると考えられる。
図8には、ν係数が変化して、事前補償点810またはチェックポイント815あるいはその両方において様々な量のコンダクタンス値のドリフトを引き起こす、様々なケースが表されている。図8の軌跡860および865は、目標窓850内でのコンダクタンス値が所望したようになるようにプログラムされているNVMデバイスを表す。他の軌跡は、測定されたコンダクタンス値が目標コンダクタンス値を満たさない場合に、NVMデバイス210が目標窓850内で所望されるコンダクタンス値とは異なるコンダクタンス値を有することになることを例示するために描かれている。
ν係数にはプログラミング事象の大部分についてNVMデバイスのプログラミングの時間においてν係数のランダム分布の中央領域に対応するランダム性が関連付けられているので、コンダクタンスは計算される目標範囲内にあることになる。測定されたコンダクタンス値が目標値の閾値内である場合、NVMデバイスは、目標時間窓850によって表されるその適用の目的の時間スパン(ここでは6時間から6ヶ月)において、所望のコンダクタンス値を有する可能性が非常に高い。代わりに、プログラミング後の事前補償時点810(20ns)において首尾よく第1の目標範囲内にあることが知られていたコンダクタンスが、その後のチェックポイント815において第2の目標コンダクタンス範囲外にある場合、このことは、そのν係数が外れ値であることを示している。したがってこの場合、適用目的の時間スパンにおいて予想されるコンダクタンスは、所望の値よりも高いまたは低いと予測することができる。
NVMデバイス210をプログラムし直しプログラム後にチェックポイントにおいてコンダクタンス測定値をチェックするこの方法は、実際上許容可能なプログラミング時間限度内で実行され得る。これに応じて、許容可能な「平均」ν係数を用いたNVMデバイスのプログラミングの複数回の試行後に、NVMデバイスのドリフト外れ値が抑制されていると見なすことができ、コンダクタンス値が目標時間窓中に所望の範囲内にあると予測することができる。
図9は、本発明の1つまたは複数の実施形態に係る、ドリフト外れ値の抑制を伴ってNVMデバイスをプログラムするためのシステムを表す。描かれているシステム900は、制御装置910と、1つまたは複数のNVMデバイス210を含むニューラル・ネットワーク・システムなどの、NVMデバイス・システム920と、を含む。制御装置910は、メモリ・デバイスに記憶されている1つまたは複数のコンピュータ実行可能命令を実行できる、1つまたは複数の処理ユニットを含むコンピューティング・デバイスであり得る。例えば、制御装置910は、デスクトップ・コンピュータ、タブレット・コンピュータ、電話機、サーバ・コンピュータ、または任意の他のコンピューティング・デバイスであり得る。制御装置910およびNVMデバイス・システム920は、制御装置910がNVMデバイス・システム920中のNVMデバイス210の抵抗/コンダクタンス(すなわち重み)を構成できるように互いに結合される。制御装置910は更に、NVMデバイス210の抵抗/コンダクタンスを読み出す/測定することができる。1つまたは複数の例では、制御装置910は、本明細書に記載される1つまたは複数の方法を実施する。図9では制御装置910およびNVMデバイス・システム920は別個のブロックとして示されているが、本発明の1つまたは複数の実施形態では、制御装置910およびNVMデバイス210を単一のブロックの一部として統合することができる。
本発明は、任意の可能な技術詳細レベルで組み込まれた、システム、方法、またはコンピュータ・プログラム製品あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持および記憶できる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されているパンチ・カードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の好適な組合せが含まれる。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの、一過性の信号そのものであると解釈されるべきではない。
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せを経由して外部のコンピュータまたは外部ストレージ・デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを備え得る。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるように転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれた、ソース・コードもしくはオブジェクト・コードのいずれか、であり得る。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、または専ら遠隔のコンピュータもしくはサーバ上で、実行することができる。後者のシナリオでは、遠隔のコンピュータを、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよく、または、外部のコンピュータへの接続を(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)行ってもよい。いくつかの実施形態では、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個人化することができる。
本明細書には、本発明の実施形態に係る方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本発明の態様が記載されている。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組合せを、コンピュータ可読プログラム命令によって実施できることが、理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定されている機能/動作を実施するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組合せに特定の方式で機能するように指示できるコンピュータ可読記憶媒体に保存されてもよく、この結果、命令が保存されたコンピュータ可読記憶媒体は、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定されている機能/動作の態様を実施する命令を含んだ製造品を構成することになる。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実行されるプロセスを作り出すべく、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図には、本発明の様々な実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の、可能な実装形態のアーキテクチャ、機能性、および動作が説明されている。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、モジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替的実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で行われ得る。例えば、連続して示される2つのブロックは、実際は実質的に並行して実行され得、またはこれらのブロックは時には、関わる機能性に応じて逆の順序で実行され得る。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を行う、または専用ハードウェアとコンピュータ命令の組合せを実行する、専用ハードウェア・ベースのシステムによって実施され得ることも、留意されるであろう。
本発明の様々な実施形態の説明を例示の目的で提示してきたが、それらは網羅的であることまたは開示される実施形態に限定されることは意図されていない。当業者には記載される実施形態の範囲から逸脱することなく多くの修正および変更が明らかであろう。本明細書で用いられる専門用語は、実施形態の原理、実際の応用、もしくは市場で見られる技術に対する技術的な改善を最もよく説明するように、または、他の当業者が本明細書に記載される実施形態を理解できるように、選択された。
本明細書に記載する本発明の好ましい実施形態では、相変化メモリ(PCM)がクロスバー・アレイにおける複数の交点の各々にある、複数のPCMデバイスを備えるクロスバー・アレイであって、1つまたは複数のPCMデバイスは人工ニューラル・ネットワークにおけるアナログ・シナプスを表し、クロスバー・アレイのPCMデバイスのコンダクタンスをプログラムすることは、プログラミング時点である第1の時点において、PCMデバイスのコンダクタンスを第1のコンダクタンス値となるように構成するための信号を受信することと、事前補償時点において、PCMデバイスのコンダクタンスが、目標コンダクタンス値との差が所定閾値以内である第2のコンダクタンス値に変化していると判定することと、第2の事前補償時点において前記事前補償を再び測定することを含めて、第2の時点において、PCMデバイスのコンダクタンスを第1のコンダクタンス値となるように構成するための別の信号を受信することと、を含む、クロスバー・アレイ、が提供される。好ましくは、事前補償時点はプログラミング時点後の所定時間期間にあり、事前補償時点における目標コンダクタンス値は、プログラミング時点後の第2の所定期間にあたる目標時間窓に基づいて決定され、PCMデバイスのコンダクタンスは目標時間窓内で特定の範囲内にある。
本明細書に記載する本発明の別の好ましい実施形態では、コンピュータ実装方法であって、プログラミング時点である第1の時点において、相変化メモリ(PCM)デバイスのコンダクタンスを第1のコンダクタンス値となるように構成するための信号を受信することと、事前補償時点において、PCMデバイスのコンダクタンスが目標コンダクタンス値との差が所定閾値以内である第2のコンダクタンス値に変化していると判定することと、第2の事前補償時点において前記事前補償を再び測定することを含めて、第2の時点において、PCMデバイスのコンダクタンスを第1のコンダクタンス値となるように構成するための別の信号を受信することと、によってクロスバー・アレイ中の複数のPCMデバイスから、あるPCMデバイスのコンダクタンス値を構成することを含む、コンピュータ実装方法、が提供される。

Claims (12)

  1. 相変化メモリ(PCM)デバイスのドリフト外れ値を抑制するためのコンピュータ実装方法であって、
    制御装置によって前記PCMデバイスのコンダクタンスをプログラムすることを含み、前記プログラムすることは、
    第1の時点において、前記PCMデバイスの前記コンダクタンスを第1のコンダクタンス値となるように構成することであって、前記第1の時点はプログラミング時点である、前記構成することと、
    第1の事前補償時点において、前記PCMデバイスの前記コンダクタンスが、目標コンダクタンス値との差が所定閾値以内である第2のコンダクタンス値に変化していると判定することと、
    第2の事前補償時点において前記コンダクタンスを再び測定することを含めて、第2の時点において、前記PCMデバイスを前記第1のコンダクタンス値となるようにプログラムし直すことと
    を含む、コンピュータ実装方法。
  2. 前記第1の事前補償時点は前記プログラミング時点後の所定時間期間にある、請求項1に記載の方法。
  3. 前記第1の事前補償時点における前記目標コンダクタンス値は、前記プログラミング時点後の第2の所定期間を有する目標時間窓に基づいて決定され、前記PCMデバイスの前記コンダクタンスは前記目標時間窓内で特定の範囲内にあることが望まれる、請求項2に記載の方法。
  4. プログラムすることは、(i)前記第1の事前補償時点における前記第2のコンダクタンス値と(ii)前記目標コンダクタンス値との間の差が前記所定閾値未満になるまで継続される、請求項2に記載の方法。
  5. 前記プログラムすることは、
    前記第1の事前補償時点において、前記第1の事前補償時点における前記第2のコンダクタンス値と前記目標コンダクタンス値との間の差が前記所定閾値未満であると判定することと、
    第1のチェックポイントにおいて、前記PCMデバイスの前記コンダクタンスが第2の目標コンダクタンス値との差が前記所定閾値以内である第3のコンダクタンス値に変化していると判定することと、
    前記コンダクタンスを再び測定することを含めて、第3の時点において、前記PCMデバイスを前記第1のコンダクタンス値となるようにプログラムすることと、を更に含む、請求項1に記載の方法。
  6. 前記第1のチェックポイントは前記プログラミング時点後の第2の所定時間期間にあたる、請求項5に記載の方法。
  7. 前記第1のチェックポイントにおける前記第2の目標コンダクタンス値は、前記プログラミング時点以降の第2の所定期間にあたる目標時間窓に基づいて決定され、前記PCMデバイスの前記コンダクタンスは前記目標時間窓内で特定の範囲内に維持される、請求項5に記載の方法。
  8. 前記PCMデバイスは人工ニューラル・ネットワーク・システムにおけるシナプスとして使用され、前記コンダクタンスは前記シナプスに割り当てられる重みである、請求項1に記載の方法。
  9. 前記PCMデバイスは複数のPCMデバイスを備え、前記複数のPCMデバイスの各々は対応する目標コンダクタンス値と関連付けられている、請求項1に記載の方法。
  10. 前記PCMデバイスの前記コンダクタンスはコンダクタンス・ドリフトに起因して前記第2のコンダクタンス値に変化する、請求項1に記載の方法。
  11. 制御装置と、1つまたは複数のクロスバー・アレイを備えるコプロセッサと、を備えるシステムであって、前記制御装置は前記コプロセッサを使用して人工ニューラル・ネットワークの層をクロスバー・アレイとマッピングすることによって前記人工ニューラル・ネットワークを実装するように構成されており、前記人工ニューラル・ネットワークを実装することは請求項1ないし10のいずれかに記載の方法を含む、システム。
  12. 相変化メモリ(PCM)デバイスのドリフト外れ値を抑制するよう、コンピュータの処理回路に、請求項1ないし10のいずれかに記載の方法を実行させる、コンピュータ・プログラム。
JP2022513039A 2019-08-28 2020-07-17 相変化メモリ・シナプスのプログラム中にドリフト係数外れ値を抑制すること Active JP7442625B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/554,018 2019-08-28
US16/554,018 US11183238B2 (en) 2019-08-28 2019-08-28 Suppressing outlier drift coefficients while programming phase change memory synapses
PCT/IB2020/056747 WO2021038334A1 (en) 2019-08-28 2020-07-17 Suppressing outlier drift coefficients while programming phase change memory synapses

Publications (3)

Publication Number Publication Date
JP2022546032A JP2022546032A (ja) 2022-11-02
JPWO2021038334A5 JPWO2021038334A5 (ja) 2022-12-06
JP7442625B2 true JP7442625B2 (ja) 2024-03-04

Family

ID=74680010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022513039A Active JP7442625B2 (ja) 2019-08-28 2020-07-17 相変化メモリ・シナプスのプログラム中にドリフト係数外れ値を抑制すること

Country Status (6)

Country Link
US (1) US11183238B2 (ja)
JP (1) JP7442625B2 (ja)
CN (1) CN114341890A (ja)
DE (1) DE112020003371T5 (ja)
GB (1) GB2600890B (ja)
WO (1) WO2021038334A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220101142A1 (en) * 2020-09-28 2022-03-31 International Business Machines Corporation Neural network accelerators resilient to conductance drift

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012140903A1 (ja) 2011-04-13 2012-10-18 パナソニック株式会社 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置
JP2012527669A (ja) 2009-05-21 2012-11-08 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・スイッチング素子を用いたスパイク・タイミング依存可塑性を有する電子学習シナプス
WO2016046980A1 (ja) 2014-09-26 2016-03-31 株式会社日立製作所 半導体記憶装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571901B2 (en) * 2007-06-21 2009-08-11 Qimonda North America Corp. Circuit for programming a memory element
US7978508B2 (en) 2009-01-20 2011-07-12 Ovonyx, Inc. Reduction of drift in phase-change memory via thermally-managed programming
KR101069680B1 (ko) * 2009-07-29 2011-10-04 주식회사 하이닉스반도체 비휘발성 반도체 메모리 회로 및 그의 제어 방법
US20120084240A1 (en) 2010-09-30 2012-04-05 International Business Machines Corporation Phase change memory synaptronic circuit for spiking computation, association and recall
US8854872B2 (en) * 2011-12-22 2014-10-07 International Business Machines Corporation Drift mitigation for multi-bits phase change memory
US20130336047A1 (en) * 2012-04-24 2013-12-19 Being Advanced Memory Corporation Cell Refresh in Phase Change Memory
US8737121B2 (en) 2012-05-23 2014-05-27 International Business Machines Corporation Drift-insensitive or invariant material for phase change memory
US9047944B2 (en) * 2013-04-24 2015-06-02 Micron Technology, Inc. Resistance variable memory sensing
CN105427892B (zh) 2015-11-23 2018-05-01 北京大学深圳研究生院 一种面向相变存储的非均匀纠错方法及相变存储装置
US9627055B1 (en) 2015-12-26 2017-04-18 Intel Corporation Phase change memory devices and systems having reduced voltage threshold drift and associated methods
KR101979987B1 (ko) 2017-01-31 2019-05-17 한양대학교 산학협력단 저항값 드리프트를 보상하는 동적 기준 값을 갖는 상변화 메모리 감지 장치 및 방법
US10755170B2 (en) 2017-03-01 2020-08-25 International Business Machines Corporation Resistive processing unit with hysteretic updates for neural network training
CN107425118A (zh) 2017-07-21 2017-12-01 吉林大学 一种高性能锗锑碲相变薄膜材料及其制备方法
US10079058B1 (en) 2017-08-24 2018-09-18 International Business Machines Corporation Resistive memory device for matrix-vector multiplications
US11074499B2 (en) 2017-11-20 2021-07-27 International Business Machines Corporation Synaptic weight transfer between conductance pairs with polarity inversion for reducing fixed device asymmetries
US10910051B1 (en) * 2019-11-17 2021-02-02 Winbond Electronics Corp. Method and electronic circuit for verifying operation performed by cell of RRAM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012527669A (ja) 2009-05-21 2012-11-08 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ・スイッチング素子を用いたスパイク・タイミング依存可塑性を有する電子学習シナプス
WO2012140903A1 (ja) 2011-04-13 2012-10-18 パナソニック株式会社 参照セル回路とそれを用いた抵抗変化型不揮発性記憶装置
WO2016046980A1 (ja) 2014-09-26 2016-03-31 株式会社日立製作所 半導体記憶装置

Also Published As

Publication number Publication date
JP2022546032A (ja) 2022-11-02
DE112020003371T5 (de) 2022-05-12
GB2600890B (en) 2023-11-01
US20210065794A1 (en) 2021-03-04
CN114341890A (zh) 2022-04-12
WO2021038334A1 (en) 2021-03-04
US11183238B2 (en) 2021-11-23
GB202202192D0 (en) 2022-04-06
GB2600890A (en) 2022-05-11

Similar Documents

Publication Publication Date Title
CN111279366B (zh) 人工神经网络的训练
US10643705B2 (en) Configurable precision neural network with differential binary non-volatile memory cell structure
US10643119B2 (en) Differential non-volatile memory cell for artificial neural network
CN110352436B (zh) 用于神经网络训练的具有迟滞更新的电阻处理单元
JP6858870B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
JP7357079B2 (ja) 相変化メモリの閉ループ・プログラミング
JP6956191B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
US20200118001A1 (en) Mixed-precision deep-learning with multi-memristive devices
KR102542532B1 (ko) 혼합-신호 연산 시스템 및 방법
US20160371583A1 (en) Communicating postsynaptic neuron fires to neuromorphic cores
TWI761860B (zh) 記憶體設備及使用記憶體之方法
Nandakumar et al. Mixed-precision training of deep neural networks using computational memory
TWI753532B (zh) 神經網絡中用於權重更新的記憶體元件
KR102409859B1 (ko) 신경망들을 위한 가중된 입력들을 생성하도록 구성된 메모리 셀들
US10832773B1 (en) Architecture for enabling zero value shifting
JP7442625B2 (ja) 相変化メモリ・シナプスのプログラム中にドリフト係数外れ値を抑制すること
KR102605890B1 (ko) 멀티-레벨 초 저전력 추론 엔진 가속기
US11170852B1 (en) Cross-bar arrays having steering element with diode
US20200379673A1 (en) Device for high dimensional computing comprising an associative memory module
US20220101142A1 (en) Neural network accelerators resilient to conductance drift
Gallo et al. Mixed-precision training of deep neural networks using computational memory
Syed et al. Non von Neumann computing concepts
EP4095759A1 (en) Method for training a binarized neural network and related electronic circuit
Pedretti et al. Analogue In-Memory Computing with Resistive Switching Memories

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240220

R150 Certificate of patent or registration of utility model

Ref document number: 7442625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150