JP6281024B2 - ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン - Google Patents

ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン Download PDF

Info

Publication number
JP6281024B2
JP6281024B2 JP2017519498A JP2017519498A JP6281024B2 JP 6281024 B2 JP6281024 B2 JP 6281024B2 JP 2017519498 A JP2017519498 A JP 2017519498A JP 2017519498 A JP2017519498 A JP 2017519498A JP 6281024 B2 JP6281024 B2 JP 6281024B2
Authority
JP
Japan
Prior art keywords
vector
voltage
electrodes
column
register
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.)
Expired - Fee Related
Application number
JP2017519498A
Other languages
English (en)
Other versions
JP2018501536A (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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of JP2018501536A publication Critical patent/JP2018501536A/ja
Application granted granted Critical
Publication of JP6281024B2 publication Critical patent/JP6281024B2/ja
Expired - Fee Related 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
    • 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/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers specially adapted therefor
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers specially adapted therefor for multiplication or division
    • 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/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Semiconductor Memories (AREA)

Description

メモリスタと呼ばれる抵抗変化型メモリ素子(resistive memoryelement)は、該メモリスタに電圧または電流を加えることによって異なる抵抗状態にプログラムすることができるデバイスである。メモリスタの状態をプログラミングした後に、該メモリスタの状態を読み取ることができる。メモリスタの状態は、該デバイスを不揮発性とみなすのに十分な長さの一定期間にわたって安定である。いくつかのメモリスタをクロスバーアレイ内に含めることができ、該クロスバーアレイ内では、いくつかの列ラインといくつかの行ラインが交差部で交差しており、該メモリスタは、該交差部で該列ライン及び該行ラインに結合している。
(補充可能性あり)
添付の図面は、本明細書に開示されている原理の種々の例を示すものであって、本開示の一部である。図示の例は、いくつかの例に過ぎず、特許請求の範囲を限定するものではない。
本明細書に開示されている原理の1例にしたがう、ドット積を求めるためのコンピューティングシステムの図である。 本明細書に開示されている原理の1例にしたがう、クロスバーアレイのクロスポイントすなわち交差部の各々に配置されたメムリスティブデバイスを有する該クロスバーアレイの図である。 本明細書に開示されている原理の1例にしたがう、クロスバーアレイのクロスポイントすなわち交差部の各々に配置されたメムリスティブデバイスを有する該クロスバーアレイの図である。 本明細書に開示されている原理の1例にしたがう、クロスバーアレイのクロスポイントすなわち交差部の各々に配置されたメムリスティブデバイスを有する該クロスバーアレイの図である。 本明細書に開示されている原理の1例にしたがうメムリスティブドット積エンジンの図である。 本明細書に開示されている原理の1例にしたがう、図3に示されているクロスバーアレイの上面で測定された電圧値のグラフである。 本明細書に開示されている原理の1例にしたがう、図3に示されているクロスバーアレイの下面で測定された電圧値のグラフである。 本明細書に開示されている原理の別の例にしたがうダブルバイアスメムリスティブドット積エンジンの図である。 本明細書に開示されている原理の1例にしたがう、図5に示されているクロスバーアレイの上面で測定された電圧値を示す。 本明細書に開示されている原理の1例にしたがう、図5に示されているクロスバーアレイの下面で測定された電圧値を示す。 本明細書に開示されている原理の例にしたがう、図3及び図5に示されているクロスバーアレイの上面で測定された電圧値の差のグラフである。 本明細書に開示されている原理の例にしたがう、図3及び図5に示されているクロスバーアレイの下面で測定された電圧値の差のグラフである。 本明細書に開示されている原理の別の例にしたがうダブルバイアスメムリスティブドット積エンジンの図である。 本明細書に開示されている原理の1例にしたがう、クロスバーアレイを有するダブルバイアスメムリスティブドット積エンジンを用いるベクトル処理の方法を示すフローチャートである。
多くの計算用途において、高速で効率の良いベクトル−行列処理技術が必要とされている。たとえば、ベクトル−行列処理は、少し例を挙げれば、データ圧縮、デジタルデータ処理、ニューラルネットワーク、暗号化及び最適化で使用される。メムリスティブクロスバーアレイを、ベクトル−行列計算またはドット積計算を実行するために使用することができる。たとえば、該クロスバーアレイのそれぞれの行からの入力電圧信号は、それぞれの列内の抵抗変化型デバイスのコンダクタンスによって重み付けされて、それぞれの列からの電流出力として累算される。理想的には、配線抵抗を無視できる場合には、該クロスバーアレイから流れ出る電流ベクトルIは、おおよそI=VGであり、ここで、Vは、入力電圧ベクトルであり、Gは、コンダクタンス行列であって、メムリスティブクロスバーアレイ内のそれぞれのメモリスタからの寄与を含んでいる。
該クロスバーアレイの交差部すなわちクロスポイントの各々においてメモリスタを使用することによって、各々の交差部においてGの値に対応する抵抗値(またはコンダクタンス)をプログラムすることが可能になり、これは、該クロスバーアレイをドット積エンジン(DPE)として使用することにつながる。しかしながら、実際の回路では、それぞれの交差部にあるメモリスタ内だけではなく、各列または各行に沿ってメモリスタを接続するワイヤ(電線)や線や電極にも抵抗がある。それらのワイヤに起因する抵抗は、各行または各列に沿って信号劣化(たとえば電圧の低下)を引き起こし得る。本明細書及び図面では、該クロスバーアレイの行及び列に沿ってメモリスタを接続するワイヤや線や電極の抵抗によって引き起こされる信号劣化を低減するメモリスタベースのクロスバーアレイを使用するベクトル−行列処理システム及び方法を開示している。
本明細書に開示されている原理の種々の例は、クロスバーメモリシステム、並びに、ベクトル−行列計算を実行する際の該システムの使用法に向けられている。メモリスタクロスバーアレイは、行列を実施し(ないし実装し)、及び、たとえば、グラフィックスプロセッシングユニットやこれに類似のアクセラレータに比べて、ベクトル処理の性能を大幅に高めることができる。さらに、メモリスタの低動作エネルギーは、電力消費の大幅な低減をもらしうる。
以下の説明では、説明の便宜上、本発明によるシステム及び方法を完全に理解できるようにするために、多くの特定の細部が説明されている。しかしながら、当業者には、それらの特定の細部なくして、本発明による装置、システム、及び方法を実施できることは明らかであろう。本明細書における「1例」もしくはこれに類似の用語は、その例に関連して説明されている特定の特徴、構造、または特性が、説明されているように含まれるが、他の例には含まれなくてもよいことを意味する。
図1は、本開示の原理の1例にしたがう、ドット積を求めるためのコンピューティングシステム(100)の図である。コンピューティングシステム(100)を、電子装置において実施することができる(または電子装置に組み込むことができる)。電子装置の例には、いくつかある中でも特に、サーバー、デスクトップコンピューター、ラップトップコンピュータ、携帯情報端末(PDA)、モバイル機器、スマートフォン、ゲーム機、及びタブレットが含まれる。
コンピューティングシステム(100)を、独立型のハードウェア、モバイル用途、コンピューティングネットワーク経由、またはそれらの組み合わせを含む任意のデータ処理状況で使用することができる。さらに、コンピューティングシステム(100)を、コンピューティングネットワーク、パブリッククラウドネットワーク、プライベートクラウドネットワーク、ハイブリッドクラウドネットワーク、その他の形態のネットワーク、または、それらの組み合わせにおいて使用することができる。1例では、コンピューティングシステム(100)によって提供される方法は、たとえば、サードパーティーによってネットワークを通じたサービスとして提供される。この例では、該サービスは、いくつかのアプリケーションをホストするSaaS(Software as a Service:サービスとしてのソフトウェア)や、たとえば、とりわけ、オペレーティングシステム、ハードウェア、及び記憶装置を含むコンピューティングプラットフォームをホストするPaaS(Platform as a Service:サービスとしてのプラットフォーム)や、たとえば、とりわけ、サーバー、記憶要素、ネットワーク、及び構成要素(コンポーネント)などの装備をホストするIaaS(Infrastructure as a Service:サービスとしてのインフラストラクチャー)や、APIaaS(API as a Service:クラウド型APIサービス)や、その他の形態のネットワークサービス、またはそれらの組み合わせなどを含むことができる。本発明によるシステムを、1つまたは複数のハードウェアプラットフォームにおいて実施することができ、この場合、該システム内のモジュールを1つのプラットフォームにおいてまたは複数のプラットフォームにわたって実行することができる。それらのモジュールを、種々の形態のクラウド技術及びハイブリッドクラウド技術で動作させることができ、または、クラウドにおいてもしくはクラウド外で実施することができるSaaSとして提供することができる。別の例では、コンピューティングシステム(100)によって提供される方法は、ローカル管理者によって実行される。
コンピューティングシステム(100)は、その所望の機能を達成するために、種々のハードウェアコンポーネントを備えている。それらのハードウェアコンポーネントには、いくつかのプロセッサ(101)、いくつかのデータ記憶装置(102)、いくつかの周辺機器アダプタ(103)、及び、いくつかのネットワークアダプタ(104)がありうる。これらのハードウェアコンポーネントを、いくつかのバス及び/又はネットワーク接続を用いて相互接続することができる。1例では、プロセッサ(101)、データ記憶装置(102)、周辺機器アダプタ(103)、及びネットワークアダプタ(104)を、バス(105)を介して通信可能に接続することができる。
プロセッサ(101)は、データ記憶装置(102)から実行可能コードを取り出して、該実行可能コードを実行するためのハードウェアアーキテクチャを有することができる。該実行可能コードは、プロセッサ(101)によって実行されると、プロセッサ(101)に、いくつかの(数の)第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えて、該行ラインといくつかの列ラインとの間の交差部に配置された対応する数のメモリスタの抵抗値を変化させるという機能を少なくとも実施させることができる。ここで、該第1の電圧のそれぞれは、行列内の対応する数の値をそれぞれ表す。該実行可能コードはまた、プロセッサ(101)によって実行されると、プロセッサ(101)に、いくつかの(数の)第2の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えるという機能を少なくとも実施させることができる。ここで、該第2の電圧のそれぞれは、対応する数のベクトル値をそれぞれ表す。該実行可能コードはさらに、プロセッサ(101)によって実行されると、プロセッサ(101)に、列ラインからの出力電流を収集する(集める)という機能を少なくとも実施させることができる。ここで、該収集された出力電流はドット積を表す。コンピューティングシステム(100)の機能は、本明細書及び/又は図面に記載されている方法にしたがう。プロセッサ(101)は、コードを実行している間に、いくつかの残りのハードウェアユニットから入力を受けとり、及び、それらのハードウェアウニットに出力を提供することができる。
データ記憶装置(102)は、プロセッサ(101)または他の処理装置によって実行される実行可能なプログラムコードなどのデータを格納することができる。説明されるように、データ記憶装置(102)は、プロセッサ(101)が本明細書に記載されている機能を少なくとも実施するために実行するいくつかのアプリケーションを表すコンピュータコードを格納することができる。
データ記憶装置(102)は、揮発性メモリ及び不揮発性メモリを含む種々のタイプのメモリ(記憶装置)モジュールを含むことができる。たとえば、今の例のデータ記憶装置(102)は、ランダムアクセスメモリ(RAM)(106)、読取り専用メモリ(ROM)(107)、及びハードディスクドライブ(HDD)メモリ(108)を備えている。他の多くのタイプのメモリを使用することもでき、本明細書では、本開示の原理の特定の用途に適合しうる(1つ以上の)さまざまなタイプのメモリをデータ記憶装置(102)において使用することが考慮されている。いくつかの例では、データ記憶装置(102)内の(2以上の)異なるタイプのメモリを、データ記憶の(2以上の)異なる必要性に対してそれぞれ使用することができる。たとえば、いくつかの例では、プロセッサ(101)は、読取り専用メモリ(ROM)(107)からブートすることができ、ハードディスクドライブ(HDD)メモリ(108)に不揮発性記憶を維持することができ、及び、ランダムアクセスメモリ(RAM)(106)に格納されているプログラムコードを実行することができる。
データ記憶装置(102)は、とりわけ、コンピュータ可読媒体、またはコンピュータ可読記憶媒体、または非一時的なコンピュータ可読媒体を含むことができる。たとえば、データ記憶装置(102)を、電子、磁気、光学、電磁、赤外線、もしくは半導体システム/装置/デバイス、または、これらの任意の適切な組み合わせとすることができる(ただし、それらに限定されない)。コンピュータ可読記憶媒体のより具体的な例は、たとえば、いくつかのワイヤ(電線)を有する電気的接続、携帯型コンピュータディスケット(たとえばフロッピーディスク)、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能PROM(EPROMまたはフラッシュメモリ)、携帯型コンパクトディスク読取り専用メモリ(CD−ROM)、光学式記憶装置、磁気記憶装置、または、これらの任意の適切な組み合わせを含むことができる。本明細書の文脈において、コンピュータ可読記憶媒体を、命令実行システム/装置/デバイスによってまたはそれらに関連して使用されるコンピュータ使用可能プログラムコードを含むことができもしくは格納することができる任意の有形の媒体とすることができる。別の例では、コンピュータ可読記憶媒体を、命令実行システム/装置/デバイスによってまたはそれらに関連して使用されるプログラムを含むことができもしくは格納することができる任意の非一時的な媒体とすることができる。
コンピューティングシステム(100)内のハードウェアアダプタ(103、104)は、プロセッサ(101)が、コンピューティングシステム(100)内外の他の種々のハードウェア要素とインターフェースできるようにする。たとえば、周辺機器アダプタ(103)は、たとえば、表示装置(109)やマウスやキーボードなどの入力/出力装置とのインターフェースを提供することができる。周辺機器アダプタ(103)はまた、外部記憶装置などの他の外部装置、及び、たとえば、サーバー、スイッチ、及びルーターなどのいくつかのネットワーク装置、及び、クライアント装置、及びその他のタイプのコンピューティング装置、及びこれらの任意の組み合わせに対するアクセスを提供することができる。
表示装置(109)を、コンピューティングシステム(100)のユーザーがコンピューティングシステム(100)の機能と相互作用(対話など)し、及び該機能を実施できるようにするために設けることができる。周辺機器アダプタ(103)はまた、プロセッサ(101)と、表示装置(109)、プリンター、または他の媒体出力装置との間のインターフェースを生成することができる。ネットワークアダプタ(104)は、たとえばネットワーク内の他のコンピューティング装置とのインターフェースを提供することができ、これによって、コンピューティングシステム(100)と該ネットワーク内に配置された他の装置との間のデータ伝送を可能にする。
コンピューティングシステム(100)は、プロセッサ(101)によって実行されると、表示装置(109)に、データ記憶装置(102)に格納されているいくつかのアプリケーションを表す実行可能なプログラムコードに関連付けられているいくつかのグラフィカルユーザーインターフェース(GUI)を表示することができる。これらのGUIは、たとえば、より詳細に後述するように、ユーザーが、コンピューティングシステム(100)と対話して、ダブルバイアスドット積エンジン(DPE)メムリスティブアレイ(110)に関連(もしくはそれと共同)して行列値(行列値は、該行列の(行位置と列位置によって決まる)各成分の値である)及びベクトル値を入力できるようにするインタラクティブな(すなわち対話型の)スクリーンショットを表示することができる。さらに、ユーザーは、表示装置(109)のGUIにおいていくつかのインタラクティブなジェスチャーをする(またはジェスチャー入力をする)ことによって、入力データに基づくドット積の値を得ることができる。表示装置(109)の例には、いくつかある中でも特に、コンピュータの画面、ラップトップコンピュータの画面、モバイル機器の画面、携帯情報端末(PDA)の画面、及びタブレットの画面が含まれる(ダブルバイアスは二重バイアスともいう)。
コンピューティングシステム(100)はさらに、ダブルバイアスDPEメムリスティブアレイ(110)を備えることができる。より詳しく後述するように、ダブルバイアスDPEメムリスティブアレイ(110)は、複数の入力の加重和(重み付き和)を計算するためにアレイ内で相互に機能し合ういくつかのメモリスタを含むいくつかの要素を備えている。ダブルバイアスDPEメムリスティブアレイ(110)を、いくつかのアプリケーションで使用することができる。たとえば、ダブルバイアスDPEメムリスティブアレイ(110)をしきい値論理ゲート(TLG)として使用して、行列積(マトリックス積)を計算し、その出力をある閾値と比較することができる。したがって、ダブルバイアスDPEメムリスティブアレイ(110)を、より汎用的な処理装置で実行されるソフトウェアで可能な速さよりも速くいくつかの機能を実行するアクセラレータとして使用することができる。ダブルバイアスDPEメムリスティブアレイ(110)は、コンピューティングシステム(100)の内部にある装置として図示されているが、別の例では、ダブルバイアスDPEメムリスティブアレイ(110)を、コンピューティングシステム(100)に結合された周辺装置とすることができ、または、コンピューティングシステム(100)に結合された周辺装置内に含めることができる。
コンピューティングシステム(100)はさらに、本明細書で説明されているシステム及び方法の実施に使用されるいくつかのモジュールを備えている。コンピューティングシステム(100)内の種々のモジュールは、個別に実行されることができる実行可能なプログラムコードを備えている。この例では、それらの種々のモジュールを、別個のコンピュータプログラム製品として格納することができる。別の例では、コンピューティングシステム(100)内のそれらの種々のモジュールを、いくつかのコンピュータプログラム製品内で組み合わせることができ、この場合、それぞれのコンピュータプログラム製品はいくつかの該モジュールを含む。
コンピューティングシステム(100)は、プロセッサ(101)によって実行されると、ダブルバイアスDPEメムリスティブアレイ(110)の機能を支援するドット積エンジンモジュール(111)を備えることができる。ドット積エンジンモジュール(111)は、たとえば、ドット積の数学的計算で処理される行列を定める(または指定する)いくつかの入力値を受け取る。ドット積エンジンモジュール(111)は、ダブルバイアスDPEメムリスティブアレイ(110)内のいくつかのメモリスタをプログラムするために、それらの入力値を、それらのメモリスタへのプログラミング信号としてダブルバイアスDPEメムリスティブアレイ(110)に送ることができる。ドット積エンジンモジュール(111)はまた、それらのメモリスタにプログラムされた行列に関連して処理されるベクトル入力を受け取ることができる。ドット積エンジンモジュール(111)はさらに、ドット積を表す値を得て、分析またはさらなる処理のために、該値をコンピューティングシステム(100)または別のコンピューティング装置にデータとして伝送することができる。
図2A、図2B、及び図2Cは、本開示の原理の1例にしたがう、クロスバーアレイ(200)のクロスポイントすなわち交差部の各々に配置されたメムリスティブデバイス(206)を有するクロスバーアレイ(200)を示している。図2Aにおいて、第1の層をなすほぼ平行な電極(202)の上に、第2の層をなすほぼ平行な電極(204)が配置されている。簡単にするために、第1の層をなす平行な電極(202)のうちの1つの電極と、第2の層をなす平行な電極(204)のうちの1つの電極が、参照番号で示されている。第2の層をなす電極(204)の向きは、第1の層をなす電極(202)の向きに概ね垂直であるが、それらの2つの層の間の向きの角度をそれとは異なるものとすることができる。それら2つの電極の層は、格子すなわちクロスバーを形成し、第2の層の各電極(204)は、第1の層の電極(202)の上に(第1の層の電極にかぶさるように)配置されて、2つの電極(202、204)間が一番近い位置を表す電極の交差部において、第1の層の電極(202)の各々と近接する。格子の向きが与えられると、第1の層をなす電極(202)を列と表現することができ、第2の層をなす電極(204)を行と表現することができる。図2Aの個々の電極(202、204)は長方形の断面を有するものとして示されているが、電極の断面を、正方形、円、楕円、またはより複雑な形状の断面とすることもできる。それらの電極(202、204)はまた、多くの異なる幅または直径、及び、多くの異なるアスペクト比または偏心を有することができる。「クロスバー」という用語は、電極の他にも、サブマイクロスケールもしくはマイクロスケールのワイヤ、もしくはこれらより寸法がより大きなワイヤからなる1つまたは複数の層を有するクロスバーを意味することができる。
電極の交差部において、抵抗(器)などの電子部品及びその他の電子部品を、2つのオーバーラップしている(部分的に重なり合う)電極(202、204)を相互接続するために製作することができる。電子部品によって接続された電極の交差部を「クロスバー交差部」と呼ぶこともある。図2B及び図2Cは、クロスバーアレイ内の2つの隣接する層の電極の列(202)と行(204)を相互接続するクロスバー交差部(210)の2つの異なる図を示している。クロスバー交差部(210)は、2つの電極(202、204)が物理的に接触しているものであってもよく、そうでなくてもよい。図2Bに示されているように、2つの電極(202、204)は、それらの電極が重なっている位置(重なり位置)において物理的に接触していないが、それらの電極(202、204)間のギャップ(間隙)は、それら2つの電極(202、204)が最も近接している重なり位置においてそれらの電極間にあるメムリスティブ素子(206)によって埋められている。図2Cは、図2Bに示されているメムリスティブ素子(206)及びオーバーラップしている電極(202、204)の略図である。メムリスティブ素子(206)は、残りの図面を通じてクロスバー交差部に配置されているメモリスタ及び任意の関連する回路を表すために使用されている。
図3は、本開示の原理の1例にしたがう、電圧入力の単一ベクトルを有するメムリスティブドット積エンジン(300)を示している。ドット積エンジン(300)は、N個の行電極(304)及びM個の列電極(306)を含むクロスバーアレイ(302)を備えている。クロスバーアレイ(302)中のクロスバー交差部は、メムリスティブ素子(308)を備えている。ドット積エンジン(300)は、行電極(304)に電圧を加えるためのベクトル入力レジスタまたはベクトル入力(部)(310)、及び、列電極(306)中の電流から生じる出力電圧を受け取るためのベクトル出力レジスタまたはベクトル出力(部)(314)を備えている。ドット積エンジン(300)はまた、列電極(306)中の電流を電圧に変換するためのセンス回路(316)を備えている。本開示の原理の1例では、センス回路(316)は、演算増幅器(オペアンプ)(318)及び抵抗(器)(320)を備えており、該センス回路を、読み取り動作用の仮想接地を表すように配置ないし構成することができる。
ドット積エンジン(300)はまた、記憶装置として使用されるクロスバーアレイ(302)に関連する他の周辺回路を備えることができる。たとえば、ベクトル入力(部)(310)は、行電極(304)に接続されたドライバを備えることができる。アドレスデコーダを用いて、行電極(304)を選択して、該選択された行電極(304)に対応するドライバを作動させることができる。選択された行電極(304)用のドライバは、ベクトル−行列乗算またはクロスバーアレイ(302)のメムリスティブ素子(308)内の抵抗値を設定する処理に対応する異なる電圧で、対応する行電極(304)を駆動することができる。同様のドライバ及びデコーダ回路を、列電極(306)用に含めることができる。また、制御回路を用いて、ドット積エンジン(300)の入力における電圧の印加、及び、該エンジン(300)の出力における電圧の読み取りを制御することができる。デジタル−アナログ回路(たとえばデジタルアナログ変換器)及びアナログ−デジタル回路(たとえばアナログデジタル変換器)を、ベクトル入力(部)(310)及びベクトル出力(部)(314)において使用することができる。行電極(304)及び列電極(306)への入力信号をアナログまたはデジタルとすることができる。半導体処理技術を用いて、上記の例のクロスバーアレイ(302)と同じ一体化された構造もしくは半導体ダイ中に、上記の周辺回路を製作することができる。
動作時、ドット積エンジン(300)によって、N×Mのクロスバーアレイ(302)の行(304)に沿って一組の電圧V(310)を加え、列(306)を流れる電流を集めて(収集して)、出力電圧V(314)を測定することによって、ベクトルと行列との乗算(ベクトル行列乗算)を実行することができる。それぞれの列において、すべての入力電圧(310)が対応するメムリスタンス(1/Gij)で重み付けされ、それらの重み付けされた総計が出力電圧(314)に反映される。オームの法則を用いて、入力電圧(310)と出力電圧(314)の間の関係を、{V=−{V[G]Rsの形式のベクトル行列乗算によって表すことができ、ここで、Gijは、クロスバーアレイ(302)のコンダクタンス(抵抗の逆数)によって決定されるN×M行列である。Rsは、センス増幅器(センスアンプ)の抵抗値であり、Tは、M×1及びN×1ベクトル(それぞれ、V及びV)の転置を表している。負号があるのは、センス増幅器において負帰還オペアンプ(回路)を使用しているためである。上記から、ベクトル処理のために、より具体的には、値{biの第1のベクトルに値[aij]の行列を乗じて値{cjの第2のベクトルを得るために、ドット積エンジン(300)を使用できるということになる。ここで、i=1、Nであり、j=1、Mである。ベクトル処理を以下のようにより詳しく記述することができる。
Figure 0006281024
本開示の原理を用いるベクトル処理すなわちベクトル乗算は、一般に、値[aij]の行列をクロスバーアレイ(302)にマッピングすること、換言すれば、コンダクタンス値Gijをアレイ(302)のクロスバー交差部にプログラムする(たとえば書込む)ことから開始する。図3をさらに参照すると、1例では、コンダクタンス値Gijの各々は、クロスバー交差部(図2の210)の各々に順次もしくは連続的に電圧降下を生じさせることによって設定される。たとえば、クロスバーアレイ(302)の2番目の行にVRow2に等しい電圧を加え、及び、クロスバーアレイ(302)の3番目の列にVCol3に等しい電圧を加えることによって、コンダクタンス値G2,3を設定することができる。図3を参照すると、1例では、電圧入力VRow2は、j=1の列電極(1番目の列電極)に隣接する2番目の行電極の位置(330)において該2番目の行に加えられる。電圧入力VCol3は、i=1またはi=Nの位置に隣接する3番目の列電極に加えられる。ある列電極(306)に電圧を加えるときは、その電極用のセンス回路(316)をオフにし(または切り離し)、電圧ドライバをオンにする(または接続する)ことができることに留意されたい。電圧差VRow2−VCol3は、一般に、交差部に配置されたメムリスティブ素子(308)の特性に基づいて、生じたコンダクタンス値G2,3を決定する。このアプローチにしたがう場合は、たとえば、選択されていない全ての列(306)及び行(304)をフローティング(状態)にし、または選択されていない全ての列(306)及び行(304)を接地することを含むいくつかの方式のうちの1つにしたがって、選択されていない列(306)及び行(304)に対処することができる。他の方式は、列(306)を接地すること、または一部の列(306)を接地することを含む。選択されていない全ての列(306)及び行(304)を接地することは、該方式が、選択されていない列(306)及び行(304)を絶縁ないし分離して、選択されている出力列へのスニークパス電流を最小限にするのに役立つという点で有益である。ドット積エンジン(300)の動作は、プログラミングの後に、入力電圧(310)のベクトルを加えて、出力電圧(314)のベクトルを読み取ることに進む。
本開示の原理の1例によれば、ドット積エンジン(300)に使用されるメモリスタは、線形の電流−電圧関係を有する。線形の電流−電圧関係は、ベクトル乗算処理においてより高い精度を可能にする。しかしながら、線形性のメモリスタを有するクロスバーアレイ(302)は、特に、クロスバーアレイ(302)のサイズが所定のサイズ(たとえば32×32)よりも大きいときに、アレイ(302)のプログラミング中に大きなスニークパス電流を生じる傾向がある。そのような場合には、選択されたメモリスタを流れる電流は、該メモリスタをプログラムするのには十分ではない場合がある。なぜなら、電流の大部分はスニークパスを流れるからである。あるいは、メモリスタは、スニークパスのために不正確な値にプログラムされる場合がある。このような例において、特に、より大きなアレイが望まれるときに、スニークパス電流を低減するために、非線形性のセレクタまたはトランジスタ(たとえば、ノーマリーオン(normally ON:通常は導通状態)デプレッションモードトランジスタ)などのアクセスデバイスを、メムリスティブ素子(308)内に組み込むかまたはメムリスティブ素子(308)と共に使用することができ、これによって、該アレイ内のスニークパス電流を最小限にすることができる。より具体的には、メムリスティブ素子(308)は、たとえば、メモリスタ、またはメモリスタ及びセレクタ、またはメモリスタ及びトランジスタを含むメムリスティブデバイスを含むものとして広義に解釈されるべきである。
図4A及び図4Bは、本開示の原理の1例にしたがう、クロスバーアレイ(図3の302)の上側の層の電極(図3の304)における電圧分布(400)と下側の層の電極(図3の306)における電圧分布(420)をそれぞれ示している。具体的には、プログラミング動作中に上側の層の行電極(図3の304)における電圧分布と下側の層の列電極(図3の306)における電圧分布を示すために、図3に示されているクロスバーアレイに類似の256×256の行列をなすクロスバーアレイ(図3の302)が使用される。図4A及び図4Bにおいて、入力条件として、入力ベクトル(図3の310)においてそれぞれの行電極(図3の304)に0.5Vが加えられ、出力ベクトル(図3の314)において接地電位が加えられて、センス回路(図3の316)はオフにされる(または切り離される)。図4A及び図4Bに示されているように、電圧分布は上側の表面と下側の表面に生じ、これは信号劣化を引き起こす。たとえば、上側の層の行電極(図3の304)における電圧分布は、電圧入力ベクトル(図3の310)の位置において0.50ボルト(402)から開始して、i=256、j=256の位置の近傍において約0.25ボルトに低下する。この低下は、0.50ボルト、0.45ボルト、0.40ボルト、0.35ボルト、及び0.30ボルトを表す曲線(等高線)によって明らかにされているように、上側の表面全体にわたって徐々に起こっている。同様に、下側の層の列電極(図3の306)については、N番目の行に隣接する加えられた接地電位すなわち0.00ボルト(422)、0.05ボルト、0.10ボルト、0.15ボルト、0.20ボルト、及び0.25ボルトを表す曲線(等高線)によって明らかにされているように、信号は、列電極(図3の306)の表面全体にわたって徐々に低下している。これらの分布から明らかなように、クロスバーアレイ(図3の302)のうちの広い領域が、該アレイ(図3の302)の上側の表面と下側の表面において完全な0.50ボルトのバイアスを受けず、これは、クロスバー交差部(図2の210)にあるメムリスティブ素子(図3の308)に意図した電圧降下が生じない可能性があることを意味する。以下の例は、上記の信号劣化(もしくは信号低下)に対処する。
図5は、本開示の原理の1例にしたがう、電圧入力のダブルベクトルを有するダブルバイアスメムリスティブドット積エンジン(500)を示している。ドット積エンジン(500)は、N個の行電極(504)及びM個の列電極(506)を含むクロスバーアレイ(502)を備えている。クロスバーアレイ(502)中のクロスバー交差部(図2の210)はメムリスティブ素子(508)を備えている。ドット積エンジン(500)は、行電極(504)に電圧を加えるための第1のベクトル入力レジスタまたは第1のベクトル入力(部)(510)を備えている。行電極(504)に電圧を加えるための第2のベクトル入力レジスタまたは第2のベクトル入力(部)(512)もドット積エンジン(500)に組み込まれている。ドット積エンジン(500)はさらに、列電極(506)中の電流から生じる出力電圧を受け取るためのベクトル出力レジスタまたはベクトル出力(部)(514)を備えている。ドット積エンジン(500)はまた、列電極(506)中の電流を電圧に変換するためのセンス回路(516)を備えている。本開示の原理の1例では、センス回路(516)は、演算増幅器(オペアンプ)(518)及び抵抗(器)(520)を備えており、該センス回路を、読み取り動作用の仮想接地を表すように配置ないし構成することができる。上記の例と同様に、ドット積エンジン(500)はまた、記憶装置として使用されるクロスバーアレイ(502)に関連する周辺回路を備えることができる。該周辺回路には、たとえば、ドライバ、デコーダ、DAC、ADC、及び制御回路が含まれ、これらの全てを、半導体処理技術を用いて、上記の例のクロスバーアレイ(図3の302)と同じ一体化された構造もしくは半導体ダイ中に製作することができる。
本開示の原理にしたがう1例では、電圧入力の第1の入力ベクトル(510)が、j=1の列電極に隣接する行電極(504)に加えられるかまたは接続され、電圧入力の第2の入力ベクトル(512)が、j=Mの列電極に隣接する行電極(504)に加えられるかまたは接続される。追加の例では、電圧入力の第1及び第2の入力ベクトル(510、512)が、たとえば、j=(1/4)M及びj=(3/4)Mの列などの、クロスバーアレイ(502)の異なる位置に配置される。他の例では、ベクトル入力の3以上の入力ベクトル(510、512)を使用することができる。一般に、それらの電圧入力は行毎に異なる。しかしながら、図5では、単一のバイアス方式に対するダブルバイアス方式の利点をより明確に示すために、各行(504)に対して同じ電圧が使用されている。さらに、第1の入力ベクトル(510)が電圧入力{Vi I}(i=1、N)を含んでいる場合には、一般に、第2の入力ベクトル(512)は同じ電圧入力を含んでいる。一般に、どの列電極(506)が、それらの入力(たとえば、図5に示されているj=1及びj=Mの列電極)に隣接しているか、及び、たとえば3つ以上の入力ベクトルを有しているかに関係なく、同じ方法が適用される。
動作時、上記と同様に、コンダクタンス値Gijをアレイ(502)のクロスバー交差部にプログラムする(たとえば書込む)ことによって、値[aij]の行列がクロスバーアレイ(502)にマッピングされる。1例では、コンダクタンス値Gijの各々は、クロスバー交差部(図2の210)の各々に順次もしくは連続的に電圧降下を生じさせることによって設定される。たとえば、クロスバーアレイ(502)の2番目の行にVRow2に等しい電圧を加え、及び、クロスバーアレイ(502)の3番目の列にVCol3に等しい電圧を加えることによって、コンダクタンス値G2,3を設定することができる。図5を参照すると、1例では、電圧入力VRow2は、j=1の列電極に隣接する2番目の行電極の第1の位置(530)、及びj=Mの列電極に隣接する2番目の行電極の第2の位置(532)の2つの位置において2番目の行に加えられる。電圧入力VCol3は、i=1またはi=Nの位置に隣接する3番目の列電極に加えられる。ある列電極(506)に電圧を加えるときは、その電極用のセンス回路(516)をオフにし(または切り離し)、電圧ドライバをオンにする(または接続する)ことができることに留意されたい。電圧差VRow2−VCol3は、一般に、交差部に配置されたメムリスティブ素子(508)の特性に基づいて、生じたコンダクタンス値G2,3を決定する。このアプローチにしたがう場合は、たとえば、選択されていない全ての列(506)及び行(504)をフローティング(状態)にし、または選択されていない全ての列(506)及び行(504)を接地することを含むいくつかの方式のうちの1つにしたがって、選択されていない列(506)及び行(504)に対処することができる。他の方式は、列(506)を接地すること、または一部の列(506)を接地することを含む。選択されていない全ての列(506)及び行(504)を接地することは、該方式が、選択されていない列(506)及び行(504)を絶縁ないし分離して、選択されている出力列(506)へのスニークパス電流を最小限にするのに役立つという点で有益である。ドット積エンジン(500)の動作は、プログラミングの後に、アレイ(502)のj=1の列電極に隣接する対応する行電極(504)に入力電圧の第1のベクトル(510)を加え、及び、アレイ(502)のj=Mの列電極(506)に隣接する対応する行電極(504)に入力電圧の第2のベクトル(512)を加えて、出力電圧のベクトル(514)を読み取ることに進む。
図6A及び図6Bは、本開示の原理の1例にしたがう、クロスバーアレイ(図5の502)の上側の層の電極(図5の504)における電圧分布(600)と下側の層の電極(図5の506)における電圧分布(620)をそれぞれ示している。具体的には、プログラミング動作中に上側の層の行電極(図5の504)における電圧分布と下側の層の列電極(図5の506)における電圧分布を示すために、図5(及び後述の図7)に示されているクロスバーアレイに類似の256×256の行列をなすクロスバーアレイ(図5の502)が使用される。入力条件として、入力ベクトル(図5の510、512)においてそれぞれの行に0.5Vが加えられ、出力ベクトル(図5の514)において接地電位が加えられて、センス回路(図5の516)はオフにされる(または切り離される)。一番上の行電極すなわち1番目の行電極(図5の504)に隣接する列電極(図5の506)も接地電位(グランド)にバイアスされる。図6A及び図6Bに示されているように、電圧分布は上側の表面と下側の表面に生じ、これは信号劣化を引き起こす。たとえば、上側の層の行電極(図5の504)における電圧分布は、電圧入力ベクトル(図5の510、512)の位置において0.50ボルト(602、612)から開始して、i=1、j=128、及び、i=256、j=128の行及び列電極(図5の504、506)の位置の近傍において約0.40ボルトに低下する。この低下は、0.50ボルト、0.48ボルト、0.46ボルト、0.44ボルト、0.42ボルト、及び0.40ボルトを表す曲線(等高線)によって明らかにされているように、上側の表面全体にわたって徐々に起こっている。同様に、下側の層の列電極(図5の506)については、1番目とN番目の行に隣接する加えられた接地電位すなわち0.00ボルト(622、624)、0.02ボルト、0.04ボルト、0.06ボルト、0.08ボルト、及び0.10ボルトを表す曲線(等高線)によって明らかにされているように、信号は、列電極(図5の506)の表面全体にわたって徐々に低下している。
これらの分布から明らかなように、ダブルバイアス電圧入力方式は、上記の単一バイアス入力方式に対して少なくとも2つの点に関して精度の向上をもたらす。第1に、信号劣化は、概ね対称的であって、最大の劣化(低下)は、(単一バイアス方式の場合に隅の領域の近くで起こるのとは異なり)上側の表面と下側の表面の両方においてアレイ(図5の502)の中心(中央)の近くで起こる。第2に、ダブルバイアス方式では、上側及び下側の表面における最大の信号劣化(信号低下)がより小さい。たとえば、ダブルバイアス方式では、上側及び下側の表面の各々における最大の信号劣化(信号低下)は約0.1ボルトであるが、単一バイアス方式では、最大の信号劣化(信号低下)は、約0.25ボルトである。
図7A及び図7Bは、上記の2つの例におけるクロスバーアレイの電圧差を示している。具体的には、図7Aは、図4A及び図4Bにそれぞれ示されている上側(図4の400)の電圧分布と下側(図4の420)の電圧分布間の電圧差(700)の曲線(等高線)を示しており、図7Bは、図6A及び図6Bにそれぞれ示されている上側(図6の600)の電圧分布と下側(図6の620)の電圧分布間の電圧差(720)の曲線(等高線)を示している。これらの電圧差(これは、プログラミング中のメムリスティブ素子にかかる電圧を表すことができる)の低下の分布から理解されるように、ダブルバイアス方式は、上側の表面と下側の表面間で約0.20ボルト(0.5ボルト−0.3ボルト)の最大低下を生じ、一方、単一バイアス方式は、約0.3ボルト(0.5ボルト−0.2ボルト)の最大低下を生じる。さらに、ダブルバイアス方式では、最大低下は、クロスバーアレイ(図5の502)の中心部で起こっているが、単一バイアス方式では、最大低下は、ダブルバイアス方式と比べると、クロスバーアレイの比較的広い部分(該アレイの斜め上側の大部分)にわたって起こっている。したがって、ダブルバイアス方式は、平均誤差を改善し、これによって、より密度の高いクロスバーアレイを、データの保存中またはドット積計算の実行中に正確に動作させる能力を高めることが可能である。さらに、誤差は、アレイの表面全体にわたって空間的に対称であるため、誤差をモデル化して、DPE(図5の500)の出力において補償することができる。
図8は、本開示の原理の1例にしたがう、電圧入力のダブルベクトル(810、812)及び出力のダブルベクトル(814、822)を有するダブルバイアスメムリスティブドット積エンジン(800)を示している。ドット積エンジン(800)は、N個の行電極(804)及びM個の列電極(806)を含むクロスバーアレイ(802)を備えている。クロスバーアレイ(802)中のクロスバー交差部はメムリスティブ素子(808)を備えている。ドット積エンジン(800)は、行電極(804)に電圧を加えるための第1のベクトル入力レジスタまたは第1のベクトル入力(部)(810)を備えている。行電極(804)に電圧を加えるための第2のベクトル入力レジスタまたは第2のベクトル入力(部)(812)もドット積エンジン(800)に組み込まれている。ドット積エンジン(800)はさらに、列電極(806)中の電流から生じる出力電圧を受け取るための第1のベクトル出力レジスタまたは第1のベクトル出力(部)(814)及び第2のベクトル出力レジスタまたは第2のベクトル出力(部)(822)を備えている。ドット積エンジン(800)はまた、列電圧(806)中の電流を電圧に変換するためのセンス回路(816)を備えている。本開示の原理の1例では、センス回路(816)は、演算増幅器(オペアンプ)(818)及び抵抗(器)(820)を備えており、該センス回路を、読み取り動作用の仮想接地を表すように配置ないし構成することができる。上記の例と同様に、ドット積エンジン(800)はまた、記憶装置として使用されるクロスバーアレイ(802)に関連する周辺回路を備えることができる。該周辺回路には、たとえば、ドライバ、デコーダ、DAC、ADC、及び制御回路が含まれ、これらの全てを、半導体処理技術を用いて、上記の例のクロスバーアレイ(図3の302)と同じ一体化された構造もしくは半導体ダイ中に製作することができる。
ドット積エンジン(800)の動作は上記の動作に類似している。上記と同様にして、値[aij]の行列がクロスバーアレイ(802)にマッピングされる(たとえば、コンダクタンス値Gijの各々が、クロスバー交差部の各々に順次もしくは連続的に電圧降下を生じさせることによって設定される)。ドット積エンジン(800)の動作は、プログラミングの後に、アレイ(802)のj=1の列電極(806)に隣接する対応する行電極(804)に入力電圧の第1のベクトル(810)を加え、及び、アレイ(802)のj=Mの列電極(806)に隣接する対応する行電極(804)に入力電圧の第2のベクトル(812)を加えることに進む。出力電圧が、第1のベクトル出力レジスタまたは第1のベクトル出力(部)(814)、及び、第2のベクトル出力レジスタまたは第2のベクトル出力(部)(822)において読み取られる。第1の出力ベクトル部(814)と第2の出力ベクトル部(822)において読み取られた電圧を加える(加算する)ことによって、行列乗算の最終結果が得られる。
図9には、本開示の原理の1例にしたがう、クロスバーアレイ(図5の502)を有するダブルバイアスメムリスティブドット積エンジン(図5の500)を用いるベクトル処理の方法(900)が示されている。いくつかの例によれば、方法(900)は、メムリスティブ記憶デバイスのクロスバーアレイ(図5の502)を提供するステップ(ブロック902)を含むことができる。たとえば、クロスバーアレイ(図5の502)は、メモリ素子(記憶素子)のN×M個のグリッド(格子)を形成するためのN個の行電極(図5の504)及びM個の列電極(図5の506)を含むことができる。各行電極(図5の504)と各列電極(図5の506)の交差部は、メモリ素子を画定し、この場合、メモリ素子は、メムリスティブ記憶デバイス(図5の508)を含む(またはメムリスティブ記憶デバイスから構成される)。方法(900)はまた、いくつかのベクトル入力レジスタ(図5の510、512)及びいくつかのベクトル出力レジスタ(図5の514、図8の822)を提供するステップ(ブロック904)を含む。たとえば、第1のベクトル入力レジスタ(図5の510)は、N個の行電極(図5の504)の各々に第1の電圧入力を供給する。さらに、いくつかの例では、第2のベクトル入力レジスタ(図5の512)は、N個の行電極(図5の504)の各々に第2の電圧入力を供給する。さらに、第1のベクトル出力レジスタ(図5の514)は、M個の列電極(図5の506)の各々から電圧出力を受け取る。方法(900)はさらに、クロスバーアレイ(図5の502)内のN×M個のメモリ位置に、N×M行列の行列値に対応するメムリスタンス値を設定するステップ(ブロック906)を含むことができる。たとえば、プログラミング電圧(プログラム用電圧)を、アレイ(図5の502)内のN×M個のメモリ位置のクロスバー交差部に対応する行電極及び列電極(図5の504、506)に順次もしくは連続的に加えることができる。方法(900)はさらに、N×1行列の値に対応する入力電圧を設定するステップ(ブロック908)を含むことができる。該入力電圧は、N×M行列の値に乗じられるN×1行列の値を表している。方法(900)はさらに、N個の行電極(図5の504)の各々の2つの位置に電圧入力を加えるステップ(ブロック910)を含むことができる。たとえば、N×1行列内の第1の値に対応する電圧入力を、クロスバーアレイ(図5の502)内の第1の行の左端部及び右端部に加えることができる。最後に、方法(900)は、M個の電圧出力(部)(図5の514)における出力電圧を決定するステップ(ブロック912)を含むことができる。出力電圧の各々は、N×M行列とN×1ベクトルの行と列の乗算(結果)に対応する。いくつかの例では、出力電圧を決定するステップ(ブロック912)は、抵抗器(図5の520)を備える抵抗回路網による乗算を含むことができる。1例では、電圧出力(図5の514)を、列電極(図5の506)を流れる電流が抵抗器(または抵抗素子ないし抵抗デバイス)を流れるようにし、これによって、その電圧をオームの法則を用いて決定することを可能にするセンス回路(図5の516)を用いて決定することができる。
本明細書では、本発明によるシステム及び方法のいくつかの側面が、本開示の原理のいくつかの例にしたがう方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。該フローチャート及び該ブロック図の各ブロック、並びに、該フローチャート中のブロックと該ブロック図中のブロックとの組み合わせを、コンピュータ使用可能プログラムコードによって実施することができる。該コンピュータ使用可能プログラムコードを、汎用コンピュータのプロセッサ、専用コンピュータ、または他のプログラム可能なデータ処理装置に提供して、該コンピュータ使用可能プログラムコードが、たとえばコンピューティングシステム(図1の100)のプロセッサ(図1の101)または他のプログラム可能なデータ処理装置によって実行されたときに、該フローチャート及び/又はブロック図の1つもしくは複数のブロックで指定ないし規定されている機能もしくは動作を実施するようにするマシン(装置)を生成することができる。1例では、該コンピュータ使用可能プログラムコードを、該コンピュータプログラム製品の一部であるコンピュータ可読記憶媒体内に具現化することができる。1例では、該コンピュータ可読記憶媒体は、非一時的なコンピュータ可読媒体である。
上記の記述は、開示されている原理のいくつかの例を図示し及び説明するために提示されたものである。この記述は、それらの原理を網羅することも、それらの原理を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正及び変更が可能である。

Claims (15)

  1. ベクトル処理のためのダブルバイアスメムリスティブドット積システムであって、
    N個の行電極、M個の列電極、及びN×M個のメモリ素子を備えるクロスバーアレイであって、前記メモリ素子は、前記クロスバーアレイの前記N個の行電極と前記M個の列電極の間の交差部に配置され、前記メモリ素子の各々は、メムリスティブ記憶デバイスを含む、クロスバーアレイと、
    前記N個の行電極の各々に第1の電圧入力を供給するための第1のベクトル入力レジスタと、
    前記N個の行電極の各々に第2の電圧入力を供給するための第2のベクトル入力レジスタと、
    前記M個の列電極の各々から電圧出力を受け取るためのベクトル出力レジスタ
    を備えるシステム。
  2. 前記第1のベクトル入力レジスタは、j番目の列(j=1、M)において前記N個の行電極の各々に接続され、前記第2のベクトル入力レジスタは、k番目の列(kはjに等しくない)において前記N個の行電極の各々に接続される、請求項1のシステム。
  3. 前記第1のベクトル入力レジスタは、j=1の列において前記N個の行電極の各々に接続され、前記第2のベクトル入力レジスタは、j=Mの列において前記N個の行電極の各々に接続される、請求項2のシステム。
  4. 前記ベクトル出力レジスタは、i=Nの行において前記M個の列電極の各々に接続される、請求項2のシステム。
  5. 前記M個の列電極の各々から電圧出力を受け取るための第2のベクトル出力レジスタをさらに備え、該第2のベクトル出力レジスタは、i=1の行において前記M個の列電極の各々に接続される、請求項4のシステム。
  6. ベクトル処理のためのダブルバイアスドット積エンジンであって、
    N×M行列に含まれている値に対応するN×M個のメモリ素子を備えるクロスバーアレイであって、前記メモリ素子は、N個の行電極とM個の列電極の間の交差部に配置され、前記メモリ素子の各々は、メムリスティブ記憶デバイスを含む、クロスバーアレイと、
    N個の電圧入力を含む第1のベクトル入力レジスタであって、該電圧入力の各々は、N個の値を有するベクトルに含まれている値に対応し、前記N個の行電極の各々に第1の電圧入力を供給するために前記クロスバーアレイに接続されることからなる、第1のベクトル入力レジスタと、
    N個の電圧入力を含む第2のベクトル入力レジスタであって、該電圧入力の各々は、N個の値を有するベクトルに含まれている値に対応し、前記N個の行電極の各々に第2の電圧入力を供給するために前記クロスバーアレイに接続されることからなる、第2のベクトル入力レジスタと、
    前記M個の列電極の各々から電圧出力を受け取るための第1のベクトル出力レジスタ
    を備えるドット積エンジン。
  7. 前記M個の列電極の各々から電圧出力を受け取るための第2のベクトル出力レジスタ
    をさらに備える、請求項6のドット積エンジン。
  8. 前記第1のベクトル入力レジスタは、j=1の列において前記N個の行電極の各々に接続され、前記第2のベクトル入力レジスタは、j=Mの列において前記N個の行電極の各々に接続される、請求項6のドット積エンジン。
  9. 前記第1のベクトル出力レジスタは、i=Nの行において前記M個の列電極の各々に接続され、前記第2のベクトル出力レジスタは、i=1の行において前記M個の列電極の各々に接続される、請求項7のドット積エンジン。
  10. 前記M個の列電極の各々と前記第1及び前記第2のベクトル出力レジスタとの間に配置されたアナログデジタル変換器、及び、前記N個の行電極の各々と前記第1及び前記第2のベクトル入力レジスタとの間に配置されたデジタルアナログ変換器をさらに備える、請求項7のドット積エンジン。
  11. クロスバーアレイを用いるベクトル処理のための方法であって、
    N×M個のメモリ素子を含むクロスバーアレイと、第1のベクトル入力レジスタと、第2のベクトル入力レジスタと、第1のベクトル出力レジスタとを提供するステップであって、前記メモリ素子は、N個の行電極とM個の列電極の間の交差部に配置され、前記メモリ素子の各々は、メムリスティブ記憶デバイスを含み、前記第1のベクトル入力レジスタは、前記N個の行電極の各々に第1の電圧入力を供給し、前記第2のベクトル入力レジスタは、前記N個の行電極の各々に第2の電圧入力を供給し、前記第1のベクトル出力レジスタは、前記M個の列電極の各々から電圧出力を受け取ることからなる、ステップと、
    前記クロスバーアレイ内のN×M個のメモリ位置にメムリスタンス値を設定するステップであって、該メムリスタンス値はN×M行列の行列値に対応することからなる、ステップと、
    N×1行列の値に対応する入力電圧を設定するステップと、
    前記N個の行電極の各々の2つの位置に電圧入力を加えるステップと、
    前記M個の電圧出力における出力電圧を決定するステップであって、該出力電圧の各々は、前記N×M行列と前記N×1ベクトルとの行と列の乗算に対応することからなる、ステップ
    を含む方法。
  12. 前記N個の行電極の各々について、入力電圧が、j=1及びj=Mの列に加えられる、請求項11の方法。
  13. 前記クロスバーアレイがさらに、前記M個の列電極の各々から電圧出力を受け取るための第2のベクトル出力レジスタを備え、前記第1のベクトル出力レジスタは、i=Nの行において前記M個の列電極の各々に接続され、前記第2のベクトル出力レジスタは、i=1の行において前記M個の列電極の各々に接続される、請求項11の方法。
  14. 前記M個の列の各々における電圧出力は、前記クロスバーアレイの前記M個の列の各々について、i=1及びi=Nの行において受け取られた電流出力を抵抗デバイスに通すことによって決定される、請求項13の方法。
  15. N×M個のメモリ位置にメムリスタンス値を設定する前記ステップ、N個の電圧入力に入力電圧を設定する前記ステップ、電圧入力を加える前記ステップ、及び、M個の電圧出力における出力電圧を決定する前記ステップが、所定の収束基準が満たされるまで繰り返し実行される、請求項11の方法。
JP2017519498A 2014-10-30 2014-10-30 ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン Expired - Fee Related JP6281024B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/063213 WO2016068953A1 (en) 2014-10-30 2014-10-30 Double bias memristive dot product engine for vector processing

Publications (2)

Publication Number Publication Date
JP2018501536A JP2018501536A (ja) 2018-01-18
JP6281024B2 true JP6281024B2 (ja) 2018-02-14

Family

ID=55858056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017519498A Expired - Fee Related JP6281024B2 (ja) 2014-10-30 2014-10-30 ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン

Country Status (4)

Country Link
US (2) US10109348B2 (ja)
JP (1) JP6281024B2 (ja)
KR (1) KR20170078633A (ja)
WO (1) WO2016068953A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016068953A1 (en) * 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Double bias memristive dot product engine for vector processing
US10901939B2 (en) * 2015-10-30 2021-01-26 International Business Machines Corporation Computer architecture with resistive processing units
US10482940B2 (en) * 2015-12-17 2019-11-19 Hewlett Packard Enterprise Development Lp Computational accuracy in a crossbar array
US10706922B2 (en) * 2016-01-26 2020-07-07 Hewlett Packard Enterprise Development Lp Memristive arrays with offset elements
KR102578124B1 (ko) * 2016-12-16 2023-09-14 에스케이하이닉스 주식회사 신경망 장치의 정규화 장치 및 방법
JP6724863B2 (ja) 2017-05-29 2020-07-15 株式会社デンソー 畳み込みニューラルネットワーク
JP6724870B2 (ja) 2017-06-19 2020-07-15 株式会社デンソー 人工ニューラルネットワーク回路の訓練方法、訓練プログラム、及び訓練装置
JP6724869B2 (ja) 2017-06-19 2020-07-15 株式会社デンソー 多層ニューラルネットワークのニューロンの出力レベル調整方法
JP6805984B2 (ja) 2017-07-06 2020-12-23 株式会社デンソー 畳み込みニューラルネットワーク
US10210138B2 (en) 2017-07-19 2019-02-19 International Business Machines Corporation Higher accuracy of non-volatile memory-based vector multiplication
IT201700108281A1 (it) * 2017-09-27 2019-03-27 Milano Politecnico "circuito di risoluzione di problemi matematici comprendente elementi resistivi."
US10867239B2 (en) * 2017-12-29 2020-12-15 Spero Devices, Inc. Digital architecture supporting analog co-processor
US10740125B2 (en) * 2018-01-30 2020-08-11 Hewlett Packard Enterprise Development Lp Memristive dot product engine virtualization
US10509167B2 (en) * 2018-04-23 2019-12-17 Hewlett Packard Enterprise Development Lp Optical phase difference calculation using analog processing
US11194886B2 (en) * 2019-05-09 2021-12-07 Applied Materials, Inc. Bit-ordered binary-weighted multiplier-accumulator
CN112053712B (zh) 2019-06-06 2024-05-10 意法半导体国际有限公司 具有集成偏差元件的存储器内计算阵列
US11094376B2 (en) 2019-06-06 2021-08-17 Stmicroelectronics International N.V. In-memory compute array with integrated bias elements
JP6818116B1 (ja) * 2019-11-22 2021-01-20 ウィンボンド エレクトロニクス コーポレーション クロスバーアレイを用いた電子装置およびデータ処理方法
US11599781B2 (en) * 2020-06-25 2023-03-07 Rain Neuromorphics Inc. Lithographic memristive array
US20220284956A1 (en) * 2020-07-06 2022-09-08 Tetramem, Inc. Reducing current in crossbar array circuits utilizing large input resistance
DE102021204651A1 (de) * 2021-05-07 2022-11-10 Forschungszentrum Jülich GmbH Vorrichtung und Verfahren basierend auf memristiven Domino-Verarbeitungseinheit-basierten Computerparadigmen
US12423567B2 (en) * 2021-09-24 2025-09-23 International Business Machines Corporation Training convolution neural network on analog resistive processing unit system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970375B2 (en) * 2002-08-02 2005-11-29 Unity Semiconductor Corporation Providing a reference voltage to a cross point memory array
US7233024B2 (en) * 2003-03-31 2007-06-19 Sandisk 3D Llc Three-dimensional memory device incorporating segmented bit line memory array
JP2005251381A (ja) * 2004-03-03 2005-09-15 Sharp Corp 電気的に書込み可能なクロスポイント型不揮発性可変抵抗記憶装置及びクロスポイント型可変抵抗メモリアレイの読み出し方法
US8559209B2 (en) 2011-06-10 2013-10-15 Unity Semiconductor Corporation Array voltage regulating technique to enable data operations on large cross-point memory arrays with resistive memory elements
US20070233761A1 (en) * 2006-04-03 2007-10-04 Mouttet Blaise L Crossbar arithmetic processor
JP5160304B2 (ja) * 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US8159858B2 (en) 2008-12-19 2012-04-17 Unity Semiconductor Corporation Signal margin improvement for read operations in a cross-point memory array
US8611134B2 (en) 2010-03-25 2013-12-17 Hewlett-Packard Development Company, L.P. Systems and methods for row-wire voltage-loss compensation in crossbar arrays
US8467253B2 (en) * 2010-05-24 2013-06-18 Hewlett-Packard Development Company, L.P. Reading memory elements within a crossbar array
US8914431B2 (en) * 2012-01-03 2014-12-16 International Business Machines Corporation Range check based lookup tables
US20150053909A1 (en) 2012-04-25 2015-02-26 Hewlett-Packard Development Company, Lp. Nonlinear memristors
US9236102B2 (en) 2012-10-12 2016-01-12 Micron Technology, Inc. Apparatuses, circuits, and methods for biasing signal lines
US9152827B2 (en) * 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
JP5714681B2 (ja) * 2013-10-25 2015-05-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US9489618B2 (en) * 2014-05-27 2016-11-08 Purdue Research Foudation Electronic comparison systems
WO2016068953A1 (en) * 2014-10-30 2016-05-06 Hewlett Packard Enterprise Development Lp Double bias memristive dot product engine for vector processing
US9847125B2 (en) * 2015-08-05 2017-12-19 University Of Rochester Resistive memory accelerator

Also Published As

Publication number Publication date
US10643697B2 (en) 2020-05-05
WO2016068953A1 (en) 2016-05-06
KR20170078633A (ko) 2017-07-07
US20190035463A1 (en) 2019-01-31
JP2018501536A (ja) 2018-01-18
US10109348B2 (en) 2018-10-23
US20170316828A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
JP6281024B2 (ja) ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン
US10541026B2 (en) Memristive dot product engine for vector processing
US10339202B2 (en) Resistive memory arrays for performing multiply-accumulate operations
JP6333477B2 (ja) ドット積を求めるためのメムリスティブクロスバーアレイ
US9691479B1 (en) Method of operating and apparatus of memristor arrays with diagonal lines interconnect between memristor cells
US10698975B2 (en) In situ transposition
US11886378B2 (en) Computer architecture with resistive processing units
US9785615B1 (en) Memristive computation of a vector cross product
US20180004708A1 (en) Vector-matrix multiplications involving negative values
CN107533858B (zh) 交叉杆阵列、图像处理器及对存储单元进行编程的方法
KR20200076571A (ko) 메모리내 승산 누적 연산들을 위한 nand 블록 아키텍처
US9947405B2 (en) Memristive dot product engine with a nulling amplifier
CN114298296A (zh) 基于存算一体阵列的卷积神经网络处理方法和装置
KR20170096152A (ko) 비 휘발성 메모리 크로스바 어레이
CN111128279A (zh) 基于NAND Flash的存内计算芯片及其控制方法
US10692573B2 (en) Controlling aggregate signal amplitude from device arrays by segmentation and time-gating
KR102409859B1 (ko) 신경망들을 위한 가중된 입력들을 생성하도록 구성된 메모리 셀들
US11488664B2 (en) Distributing device array currents across segment mirrors
CN111860794A (zh) 处理设备、处理方法及神经网络分类器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170411

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: 20180116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6281024

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees