JP6333477B2 - ドット積を求めるためのメムリスティブクロスバーアレイ - Google Patents

ドット積を求めるためのメムリスティブクロスバーアレイ Download PDF

Info

Publication number
JP6333477B2
JP6333477B2 JP2017519526A JP2017519526A JP6333477B2 JP 6333477 B2 JP6333477 B2 JP 6333477B2 JP 2017519526 A JP2017519526 A JP 2017519526A JP 2017519526 A JP2017519526 A JP 2017519526A JP 6333477 B2 JP6333477 B2 JP 6333477B2
Authority
JP
Japan
Prior art keywords
memristor
voltage
crossbar array
value
memristive
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
JP2017519526A
Other languages
English (en)
Other versions
JP2018501537A (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 JP2018501537A publication Critical patent/JP2018501537A/ja
Application granted granted Critical
Publication of JP6333477B2 publication Critical patent/JP6333477B2/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/004Reading or sensing circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers 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/0007Digital 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 metal oxide memory material, e.g. perovskites
    • 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
    • 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
    • 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/0028Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/10Resistive cells; Technology aspects
    • G11C2213/15Current-voltage curve
    • 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

Description

しばしばメモリスタと呼ばれる抵抗変化型メモリ素子(resistivememory element)は、該メモリスタに電圧または電流を加えることによって異なる抵抗状態にプログラムすることができるデバイスである。メモリスタの状態をプログラミングした後に、該メモリスタの状態を読み取ることができる。メモリスタの状態は、該デバイスを不揮発性とみなすのに十分な長さの一定期間にわたって安定である。いくつかのメモリスタをクロスバーアレイ内に含めることができ、該クロスバーアレイ内では、いくつかの列ラインといくつかの行ラインが交差部で交差しており、該メモリスタは、該交差部で該列ライン及び該行ラインに結合している。
(補充可能性あり)
添付の図面は、本明細書に開示されている原理の種々の例を示すものであって、本開示の一部である。図示の例は、単に説明のために提供したものであって、特許請求の範囲を限定するものではない。
本明細書に開示されている原理の1例にしたがう、ドット積を求めるためのコンピューティングシステムの図である。 本明細書に開示されている原理の1例にしたがう、図1のコンピューティングシステムの差動モードドット積エンジン(DPE)メモリスタアレイ内で使用されるメムリスティブクロスバーアレイの図である。 本明細書に開示されている原理の1例にしたがう、図1及び図2の差動モードドット積エンジン(DPE)メモリスタアレイの回路図である。 本明細書に開示されている原理の1例にしたがう、メモリスタの電流対電圧ループを示す図3のメムリスティブデバイスの関数のグラフである。 本明細書に開示されている原理の1例にしたがう、図1及び図3の差動モードDPEメムリスティブアレイの動作方法を示すフローチャートである。 図面を通じて、同じ参照番号は類似の(ただし、必ずしも同一ではない)要素を示している。
メモリスタのクロスバーアレイを、不揮発性固体メモリ、プログラマブルロジック(プログラム可能な論理回路)、信号処理、制御システム、パターン認識、及びその他の用途を含む種々の用途で使用することができる。本出願は、たとえば、いくつかの入力行列値(行列値は、該行列の各成分の値である。行列値は、マトリックス値またはマトリクス値ともいう。以下同じ)といくつかの入力ベクトル値とのドット積を求めるために使用されるメムリスティブクロスバーアレイに向けられている。メムリスティブクロスバーアレイは、いくつかの行ライン(行ラインは行線ともいう。以下同じ)、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン(列ラインは列線ともいう。以下同じ)、及び、該交差部において該行ラインと該列ラインの間に結合されたいくつかの抵抗変化型メモリデバイスを備える。線形性を改善し、良好な信号対雑音比及び改善されたノイズマージンを得るために、いくつかの増幅器が、それぞれの行ラインに接続され、それぞれの抵抗変化型メモリデバイスに基準電圧を印加して該増幅器を異なる領域で動作させる。
抵抗変化型メモリデバイス(抵抗変化型メモリ素子ともいう。以下同じ)はまた、いくつかのプログラミング信号を受け取る。それらのプログラミング信号は、行列(マトリックス)内のいくつかの値を定める(すなわち、それぞれのプログラミング信号に対応してそれぞれの値が決まる)。それらの抵抗変化型メモリデバイスはまた、いくつかのベクトル信号を受け取る。それらのベクトル信号は、該抵抗変化型メモリデバイスに加えられることになるいくつかのベクトル値を表している。該抵抗変化型メモリデバイスのそれぞれの列ラインを通って該抵抗変化型メモリデバイスから出力される全ての電流を収集するために、電流収集ラインが、それぞれの列ラインの出力に結合される。収集された電流は、行列値とベクトル値のドット積に等しい。
本明細書及び特許請求の範囲で使用されている「ドット積」という用語は、スカラーを生成する2つのベクトルの積として広義に理解されるべきであることが意図されており、ここで、該ドット積の値は、それらのベクトルの大きさとそれらのベクトル間の角度の余弦(コサイン)との積である。1例では、それらのベクトルを、ドット積を得るために乗算することができる行列(マトリックス)として表すことができる。ドット積の他の通常の名称としてスカラー積や内積がある。ドット積の計算は、デジタルコンピュータにとって計算コストが高いタスクである。これは、特に、行列が、密行列の場合などのように、疎ではないかまたは対称ではない時に当てはまる。対称行列は、正方行列であり、自身の転置行列と等しい。疎行列は、要素(成分)のほとんどがゼロである行列である。これとは対照的に、行列の要素(成分)のほとんどが非ゼロの場合には、その行列は密であるとみなされる。
さらに、本明細書及び特許請求の範囲で使用されている「いくつかの」という用語またはこれに類似の用語は、1(1を含む)から無限大までの任意の正の数(0は数ではないが数がないことを表す)として広義に理解されるべきことが意図されている。
以下の説明では、説明の便宜上、本発明によるシステム及び方法を完全に理解できるようにするために、多くの特定の細部が説明されている。しかしながら、当業者には、それらの特定の細部なくして、本発明による装置、システム、及び方法を実施できることは明らかであろう。本明細書における「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)または別のコンピューティング装置にデータとして伝送することができる。
図2は、本開示の原理の1例にしたがう、図1のコンピューティングシステム(100)の差動モードドット積エンジン(DPE)メモリスタアレイ(110)内で使用されるメムリスティブクロスバーアレイ(200)の図である。メムリスティブクロスバーアレイ(200)は、いくつかの導電性の行ライン(201)、及びいくつかの導電性の列ライン(202)を備えることができる。図2には、3つの行ライン(201)と4つの列ライン(202)が示されているが、任意の数の行ライン(201)及び任意の数の列ライン(202)を、メムリスティブクロスバーアレイ(200)に設けることができる。行ライン(201)と列ライン(202)は破線(207)で示されているように交差部で交差している。いくつかの抵抗変化型メモリデバイスすなわち「メモリスタ」(203)が、それらの交差部(207)に配置されて、行ライン(201)と列ライン(202)を電気的に接続する。
メムリスタンスは、メモリスタと呼ばれる電子部品の特性である。電荷が回路を一方向に流れると、該回路の該電子部品の抵抗(値)は増加する。電荷が該回路内を該一方向とは逆の方向に流れると、該抵抗(値)は減少する。印加電圧をオフにすることによって電荷の流れを止めた場合には、該電子部品は、該電子部品が有していた直近の抵抗値(すなわち、電荷の流れが止められる直前に有していた抵抗値)を「記憶しておき」、電荷の流れが再び開始したときの該回路の抵抗値は、該回路が最後にアクティブであったときの抵抗値である。メモリスタは、その抵抗値を変化させることができる抵抗デバイスである。
メモリスタ(203)内のコンダクタンスチャンネルを、各メモリスタ(203)内に形成することができ、メモリスタ(203)をビットとして個別にアドレス指定することができる。クロスバーは、第1の組の平行なワイヤ(201)の各ワイヤを、該第1の組のワイヤ(201)と交差する第2の組の平行なワイヤ(202)の全ての要素に接続するスイッチの配列(アレイ)である。図2の例では、行ライン(201)と列ライン(202)は互いに垂直であるが、行ライン(201)と列ライン(202)を任意の角度で交差させることができる。
メモリスタ(203)を、マイクロスケールまたはナノスケールで作製することができ、及び、メモリや論理回路のベースなどの、多種多様な電子回路のコンポーネント(構成要素)として使用することができる。メモリスタ(203)がメモリのベースとして使用されるときは、メモリスタ(203)を、情報のビットである1または0を格納するために使用することができる。メモリスタ(203)が、本明細書に記載されているように論理回路として使用されるときは、メモリスタ(203)を、フィールドプログラマブルゲートアレイ中のビットを表すために用いることができ、または、ワイヤードロジックプログラマブルロジックアレイのベースとして用いることができ、または、本明細書に記載されているように、ドット積エンジンとして用いることができる。本明細書に開示されているメモリスタ(203)を様々な他の用途で使用することもできる。メモリスタ(203)を、たとえば、メモリスタを形成する化学気相成長(化学蒸着)、スパッタリング、エッチング、リソグラフィー、もしくはその他の方法などの任意の適切な製造プロセスを通じて作製することができる。
図2のメムリスティブクロスバーアレイ(200)はさらに、V、V、及びVとして示されているいくつかの入力値(205)を含んでいる。それらの入力値(205)を、該クロスバーアレイ内のそれぞれの交差部における個々のメモリスタ(203)の抵抗値を変化させて、それぞれの交差部におけるそれぞれの値が数学的行列(数学的マトリックス)内のそれぞれの値を表すところの該行列の表現(たとえばマッピング)を生成するために使用されるプログラム信号(プログラミング信号ともいう。以下同じ)とすることができる。個々のメモリスタ(203)の抵抗値のこの変化は、低い値から高い値への、または、高い値から低い値へのアナログ的な変化である。かくして、これらのメモリスタは、それらが有していた最後の抵抗値を「記憶している」点において「記憶抵抗器」である。
入力値(205)を、該クロスバーアレイ中の各交差部における個々のメモリスタ(203)の抵抗値を読み出すために使用される読み出し信号とすることもでき、また、下記するように、計算に関わるそれぞれのメモリスタ(203)において行列値にベクトル値を乗じるための手段とすることもできる。本明細書ではベクトル信号と呼ばれる該読み出し信号を、メムリスティブクロスバーアレイ(200)の行ライン(201)に対する第2の入力値(205)として加えることができる。該ベクトル信号は、該プログラム信号によって表される行列に乗じられるベクトルを表すことができる。1例では、それらのベクトル信号は、メモリスタ(203)をプログラムするために使用される第1の電圧よりも小さい電圧値を有し、これによって、それらのベクトル信号によって加えられた電圧レベルが、該第1の電圧によってプログラムされているメモリスタ(203)の抵抗値を変えないようにする。該ベクトル信号は、このように、メモリスタ(203)の抵抗値を変えないことによって、読み出し信号として機能する。
該ベクトル信号は、メモリスタ(203)のそれぞれの交差部(207)においてメモリスタ(203)と相互作用をし、その結果生じた電流は、206におけるそれぞれの列ライン(202)の端部において収集される。それぞれの列ライン(202)の和は、図2に示されているように、
Figure 0006333477

によって表される。ここで、gi1〜gi4は、メモリスタ(203)のコンダクタンス(値)である。これらの電圧値から得られたこれらの和は、列ベクトルの値を表している。より詳細に後述するように、それぞれの列ライン(202)のこれらの和を、変換回路(313)によって電流収集ライン(311)において合計して、図3に示されている信号値
Figure 0006333477

を得ることもできる。1例では、メモリスタ(203)の抵抗値を既知の値に設定するために、プログラム信号及びベクトル信号を加える前に、初期信号をメモリスタ(203)に加えることができる。
図3は、本開示の原理の1例にしたがう、図1及び図2の差動モードDPEメムリスティブアレイ(110)の回路図(300)である。図3の差動モードDPEメムリスティブアレイ(110)は、図示のとおり1つの回路配置を有するものとして示されているが、本発明によるシステム及び方法の機能を達成するために任意の数の回路配置を使用することができる。図3に示されている差動モードDPEメムリスティブアレイ(110)は、図2に関して上述した行ライン(201)、列ライン(202)、及びメモリスタ(203)を備えている。上記のごとく、省略記号(301、302)で示されているように、任意の数の行ライン(201)及び任意の数の列ライン(202)を、差動モードDPEメムリスティブアレイ(110)内に含めることができる。1例では、差動モードDPEメムリスティブアレイ(110)に含まれる行ライン(201)及び列ライン(202)の数を、本明細書に記載されているシステム及び方法を用いて計算されるドット積の行列のサイズと同じかまたはこれより大きくすることができる。
差動モードDPEメムリスティブアレイ(110)はさらに、たとえば行ライン(201)の入力端子において、演算増幅器(オペアンプ)(303)などのいくつかの差動入力回路を備えることができる。図3にはオペアンプ(303)が示されているが、任意のタイプの差動入力回路を使用することができる。オペアンプ(303)は、利得安定性、線形性、周波数応答、及びステップ応答を改善し、及び、製造や環境に起因するパラメータ変動に対する感度を低減するために、オペアンプ(303)の出力の一部をその入力から減じる負帰還を有する(すなわち負帰還オペアンプである)ように設計される。本明細書に記載されているように、入力電圧(Vin1、Vin2、…、Vinn)及び基準電圧(Vref1、Vref2、…、Vrefn)をオペアンプ(303)に印加して(加えて)、ドット積の値を得ることができる。
オペアンプ(303)はまた、差動モードDPEメムリスティブアレイ(110)を作製するために、差動増幅器として設計される。DPEメムリスティブアレイ(110)の各出力について、以下の関係がある。
Figure 0006333477

ここで、Rfは、オペアンプ(303)のフィードバック抵抗(値)であり、Riは、ドット積の計算前に予め決められているメモリスタの複数レベルのアナログ抵抗(値)である。
メモリスタ(203)は、電圧が高いほどより大きな非線形性を有するアナログデバイスである。メモリスタ(203)は、信号が小さい間は比較的良好な線形性を有する。たとえば、[0V、1V](図4の404)の領域でメモリスタ(203)を動作させた場合は、[−1/2V、1/2V]の領域(図4の405)でメモリスタ(203)動作させた場合に比べて非線形性が大きい。これは図4に示されている。
図4は、本開示の原理の1例にしたがう、メモリスタの電流対電圧ループを示す図3のメムリスティブデバイス(203)の関数のグラフである。図4に示されているように、x軸は、メモリスタ(203)から見た(すなわち該メモリスタが受ける)電圧値を表し、y軸は、メモリスタ(203)から見た(すなわち該メモリスタに流れる)電流値を表している。図4に示されている関数、曲線及び値は、例に過ぎず、特定の値を示すことは意図されていない。いくつかの例では、図4の電流対電圧ループを、挟みつぶされた形のヒステリシス曲線として示すことができる。図4に示されているように、メモリスタ(203)の電流/電圧ループ(401)は、第1のライン(402)によって示されている[−1/2V、1/2V]の領域(405)の方が、第2のライン(403)によって示されている[0V、1V](404)の領域よりも(該領域では比較的非線形である)はるかに線形性が高い。
負性抵抗という用語は、負の微分抵抗(NDR)(Δv/Δi<0)を意味している。NDRは、非線形のいくつかの原因のうちの1つでありうる。[0V、1V](404)の領域を、大信号動作領域と呼ぶことができる。メモリスタ(203)は、[0V、1V](404)の領域内ではより非線形でありうるが、[−1/2V、1/2V]の領域(405)では、オーム性を有するものとして分類されることができる。負性抵抗デバイスは非線形性であるので、正のオーム抵抗が電気回路で通常示す挙動よりも複雑な挙動を示す。
ドット積エンジン(DPE)メモリスタアレイの用途において、メモリスタ(203)の線形の電流/電圧挙動は出力エラーを低減する。同相(コモン)モードDPEメモリスタアレイは、種々の1抵抗(0T1R)回路アーキテクチャ、1トランジスタ−1抵抗(1T1R)回路アーキテクチャ、及び1スイッチ−1抵抗(1S1R)回路アーキテクチャで使用される。しかしながら、メモリスタ(203)は非線形挙動を示す。これとは対照的に、本明細書において提案されている差動モードDPE構成は、線形性に関してより良好な性能を提供する。
したがって、オペアンプ(303)の動作領域をシフト(移動)させるために、図3においてVref1、Vref2、…、Vrefnとして示されている基準電圧を用いて入力を微分することができる。1例では、所与のオペアンプ(303)に対するVrefの値は、最大電圧入力であるVin(Vin_max)の1/2に選択される。これは、大信号[0、V]の動作領域を小信号[−1/2V、1/2V]の動作領域にシフトさせることになる。この微分によるシフトでは、線形性が改善されることによってより高い精度が達成され、かつ、より良好な信号対雑音比及び改善されたノイズマージンが得られる。数学的には、非線形性を、一次の微分dV/dIによって表すことができる。2次の微分は傾向を明らかにする。微分が一定で、2×dIや2×dVなどの大きな範囲を想定した場合には、値はより大きくなるだろう。
さらに、より詳細に後述するように、Voutを、所望の正の整数値に容易に再マッピングすることができる。差動モードDPEメムリスティブアレイ(110)は、Vin1、Vin2、…、Vinnのすべての値が−1/2Vであるときでも良好に動作する。
差動モードDPEメムリスティブアレイ(110)はさらに、列ライン(202)に沿ってメモリスタ(203)から受け取った電流をそれぞれの出力電圧(Vout1、Vout2、Voutm)に変換するためのいくつかの電流増幅器(310)を備えることができる。1例では、電流増幅器(310)は、トランスインピーダンス増幅器(TIA。トランスインピーダンスアンプともいう)である。TIAは、電流−電圧変換器であり、図3に示されている演算増幅器を用いて実施される。TIAは、差動モードDPEメムリスティブアレイ(110)の電流出力を使用可能な電圧に増幅するために使用される。
列ライン(202)からの電流を、収集ライン(311)を用いて収集する(集める)ことができる。収集された電流
Figure 0006333477

は、行列値とベクトル値のドット積を表す。図3に示されているように、変換回路(313)を、電流増幅器(310)と収集ライン(311)との間に配置することができる。電流増幅器(310)から出力された電圧が収集される場合には、全ての電圧は、キルヒホッフの電圧法則にしたがって等しくされて、ドット積のための値は失われるだろう。そのため、メモリスタ(203)から得られた電流が合計される。1例では、電流増幅器(310)によって出力される電圧ではなく、電流を収集できるようにするために、電流増幅器(310)を取り除くことができる。別の例では、図3に示されているように、変換回路(313)が、個々の電流増幅器(310)から出力された電圧を収集し、それらの電圧を電流に変換して、該電流を合計する。しかしながら、メモリスタ(203)からの電流の和を得てドット積を得るために、任意の回路設計を使用することができる。
図3の差動モードDPEメムリスティブアレイ(110)は、オペアンプ(303)及びトランスインピーダンス増幅器(310)を含むものとして示されているが、本明細書に記載されている本発明によるシステム及び方法の機能を達成するために、任意の数の回路配置を使用することができる。
差動モードDPEメムリスティブアレイ(110)はさらに、いくつかのセレクタ(312)を備えることができる。いくつかの例では、プログラミング信号を加えている間に、スニークパス電流が、差動モードDPEメムリスティブアレイ(110)内に生じうる。スニークパス電流は、回路内の意図されていない電流経路である。本発明による差動モードDPEメムリスティブアレイ(110)の例では、スニークパス電流は、図5のブロック501及び502に関連して説明されているように、ターゲットのメモリスタがプログラムされているかまたは読み取られているときに、いくつかの近傍のメモリスタ(203)に影響を与えうる。1例では、電圧がターゲットのメモリスタ(203)に加えられると、近傍のメモリスタ(203)には、差動モードDPEメムリスティブアレイ(110)内を流れるスニークパス電流による該電圧の一部が生じうる。このスニークパス電流によって、それらの近傍のメモリスタ(203)は、予期せずにかつ不正確にプログラムされ、または別のやり方で不適切に使用されることになる。
1例では、いくつかのセレクタ(312)を、差動モードDPEメムリスティブアレイ(110)内に含めることができる。図3に示されているように、それらのセレクタを、それぞれの交差部(207)においてそれぞれのメモリスタ(203)と直列に配置することができる。図3には、該図内を明瞭にするために1つのセレクタ(312)が示されているが、任意の数のセレクタ(312)を、メモリスタ(302)の各々と直列に配置することができる。セレクタは、メモリスタ(203)によって表される選択されたビットだけが読み出されまたはプログラムされるのを確保するために、メモリスタ(203)をスニーク電流経路から保護する任意の回路要素である。セレクタは、マルチプレクサ(mux)と呼ばれることもある。このようにして、近傍のメモリスタ(203)に影響を与えることなく、ターゲットのメモリスタ(203)に電流を集中させることができる。図3に示されているように、メモリスタ(203)とセレクタ(312)は、1セレクタ−1メモリスタ(1S1M)回路アーキテクチャ、または、上記した、1セレクタ−1抵抗(1S1R)回路アーキテクチャ、または1トランジスタ−1抵抗(1T1R)(トランジスタがセレクタの代わりに使用されている)回路アーキテクチャ、または1抵抗(0T1R)回路アーキテクチャを形成することができる。
図5は、本開示の原理の1例にしたがう、図1及び図3の差動モードDPEメムリスティブアレイ(110)の動作の方法を示すフローチャートである。図5の方法は、いくつかの(数の)第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ライン(201)に加えて、それらの行ライン(201)と(該行ラインの各々と交差する)列ライン(202)の間のそれぞれの交差部(207)に配置された対応する数のメモリスタ(203)の抵抗値を変化させる(ブロック501)ことから開始することができる。それらの第1の電圧は、行列内の対応する数の値をそれぞれ表す、上記のプログラム電圧である。このようにして、数学的行列は、差動モードDPEメムリスティブアレイ(110)にマッピングされ、ドット積の数学的処理における第1の組の値として処理される準備が整う。
1例では、負の値を有する数学的行列を表すために、2倍の幅及び長さを有する1つの差動モードDPEメムリスティブアレイ(110)または2以上の差動モードDPEメムリスティブアレイ(110)を使用することができる。この例では、2倍の幅及び長さを有する該1つの差動モードDPEメムリスティブアレイ(110)または該2以上の差動モードDPEメムリスティブアレイ(110)を、上記のように、コンピューティングシステム(100)に結合することができる。
図5の方法は、続いて、いくつかの(数の)第2の電圧を、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加えるステップ(ブロック502)に進むことができる。それらの第2の電圧は、行列値とベクトル値とのドット積を得るために、メモリスタ(203)にプログラムされた行列値に加えられるいくつかのベクトル値を表す。それらの第2の電圧が、差動モードDPEメムリスティブアレイ(110)のメモリスタ(203)に加えられると、それらのメモリスタ(203)は、該メモリスタ(203)を電流が流れるようにする電圧入力(Vin1、Vin2、…、Vinn)を受ける。それらのメモリスタ(203)を流れる電流レベルは、電圧入力(Vin1、Vin2、…、Vinn)にそれらのメモリスタ(203)のコンダクタンスを乗じた値であり、メモリスタのコンダクタンスは、該メモリスタ(203)の抵抗値を変化させた第1の電圧によって定まる。ベクトル信号は読み出し信号として機能する。ベクトル信号によって加えられた電圧レベルが、第1の電圧によってプログラムされたメモリスタ(203)の抵抗値を変化させないように、該ベクトル信号によって加えられる電圧レベルは、メモリスタ(203)をプログラムするために使用される第1の電圧よりも小さい。
このように、第2の電圧を印加することによって個々のメモリスタ(203)から得られた電流は、それぞれのメモリスタ(203)においてプログラミング信号によって得られた行列値に、該それぞれのメモリスタ(203)においてベクトル信号によって得られたベクトル値を乗じたものに等しい。
図5の方法は、続いて、列ライン(202)からの出力電流を収集するステップ(ブロック503)に進むことができる。ここで、収集された出力電流はドット積を表す。図3に示されているように、収集ライン(311)を用いて、列ライン(202)によって収集されたメモリスタ(203)の出力電流をさらに収集することができる。図3の差動モードDPEメムリスティブアレイ(110)は、メモリスタ(203)によって出力された電流をそれぞれの出力電圧(Vout1、Vout2、Vout)に変換するためのトランスインピーダンス増幅器(310)を含むものとして示されている。しかしながら、所望の値を得るために、任意の回路トポロジーまたは回路設計を使用することができる。収集された電流
Figure 0006333477

などの、収集ライン(311)から得られた収集された信号は、行列値とベクトル値のドット積を表す。
図5のプロセスは、新たな数学的行例及びベクトルを表すために、ブロック501にループバックし、該ブロックにおいて、いくつかの新たな第1の電圧が、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加えられて、対応する数のメモリスタ(203)の抵抗値を変化させる(ブロック601)ことができる。このようにして、新たな抵抗値が、該新たな数学的行列を表すメムリスティブクロスバーアレイのメモリスタ(203)にプログラムされる。該方法は、続いて、メモリスタ(203)にプログラムされた行列値に加えられる対応する数の新たなベクトル値を表す新たな第2の電圧を、差動モードDPEメムリスティブアレイ(110)内の対応する数の行ライン(201)に加える(502)ことによって、上記のブロック502及び503に進むことができる。
本発明によるシステム及び方法を通じて、電圧及び電流が、列ライン(202)の端部で収集され、さらに、収集ライン(311)を用いて収集されるものとして説明されている。しかしながら、電圧値、または電流値、または他の回路パラメータなどの所望の出力を得るために、任意の回路トポロジーまたは回路設計を使用することができる。
本明細書では、本発明によるシステム及び方法のいくつかの側面が、本開示の原理のいくつかの例にしたがう方法、装置(システム)及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。該フローチャート及び該ブロック図の各ブロック、並びに、該フローチャート中のブロックと該ブロック図中のブロックとの組み合わせを、コンピュータ使用可能プログラムコードによって実施することができる。該コンピュータ使用可能プログラムコードを、汎用コンピュータのプロセッサ、専用コンピュータ、または他のプログラム可能なデータ処理装置に提供して、該コンピュータ使用可能プログラムコードが、たとえばコンピューティングシステム(100)のプロセッサ(101)または他のプログラム可能なデータ処理装置によって実行されたときに、該フローチャート及び/又はブロック図の1つもしくは複数のブロックで指定ないし規定されている機能もしくは動作を実施するようにするマシン(装置)を生成することができる。1例では、該コンピュータ使用可能プログラムコードを、該コンピュータプログラム製品の一部であるコンピュータ可読記憶媒体内に具現化することができる。1例では、該コンピュータ可読記憶媒体は、非一時的なコンピュータ可読媒体である。
明細書及び図面は、ドット積を求める(決定する)ためのコンピューティング装置及び関連する方法を記述している。該コンピューティングデバイスは、プロセッサ、及び該プロセッサに結合されたメモリスタクロスバーアレイを備えている。該メモリスタクロスバーアレイは、いくつかの行ライン、該行ラインと交差していくつかの交差部を形成するいくつかの列ライン、及び、該交差部において該行ラインと該列ラインとの間に結合されたいくつかのメモリスタデバイスを備える。それらのメモリスタデバイスは、いくつかのプログラミング信号を受け取る。該プログラミング信号は、行列内のいくつかの値を定める(すなわち、それぞれのプログラミング信号に対応してそれぞれの値が決まる)。該メモリスタデバイスはまた、いくつかのベクトル信号を受け取る。該ベクトル信号は、該メモリスタデバイスに加えられるいくつかのベクトル値を定める(すなわち、それぞれのベクトル信号に対応してそれぞれのベクトル値が決まる)。該メモリスタクロスバーアレイはさらに、それぞれの抵抗変化型メモリデバイスに基準電圧を加えて、該抵抗変化型メモリデバイスを初期抵抗(値)に設定するために、それぞれの行ラインに接続されたいくつかの増幅器を備える。該増幅器は、該増幅器への電圧入力の電圧と該増幅器への基準電圧入力の電圧との比に基づいて、メムリスティブクロスバーアレイの動作領域をシフトさせる。
ドット積を決定するためのこの抵抗型クロスバーアレイは、いくつかある利点の中でも特に下記の(1)〜(5)を含む利点を有しうる。
(1)メムリスティブデバイスを使用しないDPEと比べて、ドット積計算の処理が速く、かつ、該計算のエネルギー効率が良い。
(2)差動モードでのDPE動作によって、線形性がより良好な領域でメモリスタを動作させることができ、かつ、より良好な信号対雑音比及びノイズマージンがもたらされる。
(3)大信号([0V、1V])から小信号([−1/2V、1/2V])への動作領域のシフトによって、メモリスタが意図せず切り替わるリスクが低減し、これによって、出力エラーが低減する。
(4)動作電圧が小さくされることによって、メモリスタデバイスに対する電気的ストレスの影響も小さくなり、これによって、該デバイスの耐久性が向上する。
(5)0T1R、1T1R、及び1S1Rを含む複数の方式に適合する設計ないし構成を提供する。
上記の記述は、開示されている原理のいくつかの例を図示し及び説明するために提示されたものである。この記述は、それらの原理を網羅することも、それらの原理を開示した形態そのものに限定することも意図していない。上記の教示に照らして多くの修正及び変更が可能である。

Claims (15)

  1. ドット積を求めるためのメムリスティブクロスバーアレイであって、
    1以上の行ラインと、
    前記行ラインと交差して1以上の交差部を形成する1以上の列ラインと、
    前記交差部において、前記行ラインと前記列ラインの間に結合された1以上の抵抗変化型メモリデバイスと、
    前記抵抗変化型メモリデバイスのそれぞれの列ラインを通って該抵抗変化型メモリデバイスから出力される全ての電流を収集するための電流収集ライン
    を備え、
    前記抵抗変化型メモリデバイスは、1以上のプログラミング信号を受け取り、該プログラミング信号は、行列内の1以上の値を定め、
    前記抵抗変化型メモリデバイスは、1以上のベクトル信号を受け取り、該ベクトル信号は、前記抵抗変化型メモリデバイスに加えられる1以上のベクトル値を定め、
    前記収集された電流は、前記行列の行列値と前記ベクトル値とのドット積に等しいことからなる、メムリスティブクロスバーアレイ。
  2. それぞれの抵抗変化型メモリデバイスに基準電圧を加えるために、それぞれの行ラインに接続された1以上の回路をさらに備える、請求項1のメムリスティブクロスバーアレイ。
  3. 前記回路は、前記メムリスティブクロスバーアレイの動作領域をシフトさせ、該動作領域のシフトは、前記回路への電圧入力の電圧と、前記回路への基準電圧入力の電圧との比に基づく、請求項2のメムリスティブクロスバーアレイ。
  4. 前記比は、前記電圧入力最大電圧に対する前記基準電圧入力の電圧の比であり、該比が1/2である、請求項3のメムリスティブクロスバーアレイ。
  5. 前記回路は、負帰還オペアンプである、請求項2〜4のいずれかのメムリスティブクロスバーアレイ。
  6. 前記ドット積の合計と積の全ての計算が、前記メムリスティブクロスバーアレイによって同時に実行される、請求項1〜5のいずれかのメムリスティブクロスバーアレイ。
  7. 前記メムリスティブクロスバーアレイは、第2のコンピュータプログラムに関してアクセラレータとして使用され、これによって、前記メムリスティブクロスバーアレイの出力が、該第2のコンピュータプログラムに対する入力として、処理装置に結合されることからなる、請求項1〜6のいずれかのメムリスティブクロスバーアレイ。
  8. ドット積を得る方法であって、
    1以上の第1の電圧を、メムリスティブクロスバーアレイ内の対応する数の行ラインに加えて、該行ラインと1以上の列ラインとの間の交差部に配置された対応する数のメモリスタの抵抗値を変化させるステップであって、前記第1の電圧は、行列内の対応する数の値をそれぞれ定める、ステップと、
    1以上の第2の電圧を、前記メムリスティブクロスバーアレイ内の対応する数の行ラインに加えるステップであって、前記第2の電圧は、対応する数のベクトル値を定める、ステップと、
    前記列ラインからの出力電流を収集するステップであって、収集された出力電流は前記ドット積を定める、ステップ
    を含む方法。
  9. それぞれのメモリスタに初期電圧を加えて、該メモリスタの抵抗を初期抵抗に設定するステップをさらに含む、請求項8の方法。
  10. 前記初期電圧が、それぞれの行ラインに接続された1以上の回路によってそれぞれのメモリスタに加えられる、請求項9の方法。
  11. メムリスティブクロスバーアレイの動作領域をシフトさせるステップをさらに含み、該動作領域のシフトは、前記回路への電圧入力の電圧値と、前記回路への基準電圧入力の電圧値との比に基づく、請求項10の方法。
  12. 前記比は、前記電圧入力最大電圧値に対する前記基準電圧入力の電圧値の比であり、該比が1/2である、請求項11の方法。
  13. ドット積を求めるためのコンピューティング装置であって、
    プロセッサと、
    前記プロセッサに結合されたメモリスタクロスバーアレイ
    を備え、
    前記メモリスタクロスバーアレイは、
    1以上の行ラインと、
    前記行ラインと交差して1以上の交差部を形成する1以上の列ラインと、
    前記交差部において、前記行ラインと前記列ラインの間に結合された1以上のメモリスタデバイスと、
    1以上の回路
    を備え、
    前記メモリスタデバイスは、1以上のプログラミング信号を受け取り、該プログラミング信号は、行列内の1以上の値を定め、
    前記メモリスタデバイスは、1以上のベクトル信号を受け取り、該ベクトル信号は、前記メモリスタデバイスに加えられる1以上のベクトル値を定め、
    前記1以上の回路は、それぞれのメモリスタデバイスに基準電圧を加えて、該メモリスタデバイスの抵抗を初期抵抗に設定するために、それぞれの行ラインに接続され、
    前記回路は、該回路への電圧入力の電圧と、該回路への基準電圧入力の電圧との比に基づいて、前記メリスクロスバーアレイの動作領域をシフトさせることからなる、コンピューティング装置。
  14. 前記メモリスタクロスバーアレイは、前記メモリスタデバイスのそれぞれの列ラインを通って該メモリスタデバイスから出力される全ての電流を収集するための電流収集ラインをさらに備え、
    前記収集された電流は、前記行列の行列値と前記ベクトル値とのドット積に等しいことからなる、請求項13のコンピューティング装置。
  15. 前記プロセッサは、前記メリスクロスバーアレイの出力を第2のコンピュータプログラムに入力する、請求項13または14コンピューティング装置
JP2017519526A 2014-10-23 2014-10-23 ドット積を求めるためのメムリスティブクロスバーアレイ Expired - Fee Related JP6333477B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/062010 WO2016064406A1 (en) 2014-10-23 2014-10-23 Memristive cross-bar array for determining a dot product

Publications (2)

Publication Number Publication Date
JP2018501537A JP2018501537A (ja) 2018-01-18
JP6333477B2 true JP6333477B2 (ja) 2018-05-30

Family

ID=55761272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017519526A Expired - Fee Related JP6333477B2 (ja) 2014-10-23 2014-10-23 ドット積を求めるためのメムリスティブクロスバーアレイ

Country Status (4)

Country Link
US (1) US10008264B2 (ja)
JP (1) JP6333477B2 (ja)
KR (1) KR20170074234A (ja)
WO (1) WO2016064406A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016068886A1 (en) 2014-10-28 2016-05-06 Hewlett Packard Enterprise Development Lp Memcapacitive cross-bar array for determining a dot product
CN108475522B (zh) 2016-01-18 2020-12-15 华为技术有限公司 内存设备及基于多层rram交叉阵列的数据处理方法
US10496855B2 (en) 2016-01-21 2019-12-03 Hewlett Packard Enterprise Development Lp Analog sub-matrix computing from input matrixes
US10706922B2 (en) * 2016-01-26 2020-07-07 Hewlett Packard Enterprise Development Lp Memristive arrays with offset elements
EP3289477B1 (en) * 2016-01-30 2021-08-25 Hewlett Packard Enterprise Development LP Dot product engine with negation indicator
WO2017171771A1 (en) 2016-03-31 2017-10-05 Hewlett Packard Enterprise Development Lp Data processing using resistive memory arrays
US9785615B1 (en) * 2016-06-24 2017-10-10 Hewlett Packard Enterprise Development Lp Memristive computation of a vector cross product
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10248323B2 (en) * 2016-09-23 2019-04-02 International Business Machines Corporation Non-von neumann optimization based on approximate message passing
US10241971B2 (en) 2016-12-15 2019-03-26 Hewlett Packard Enterprise Development Lp Hierarchical computations on sparse matrix rows via a memristor array
JP6756287B2 (ja) 2017-03-24 2020-09-16 株式会社デンソー ニューラルネットワーク回路
US10720679B2 (en) 2017-06-13 2020-07-21 Sk Innovation Co., Ltd. Cooling case for battery and battery module including the same
IT201700108281A1 (it) * 2017-09-27 2019-03-27 Milano Politecnico "circuito di risoluzione di problemi matematici comprendente elementi resistivi."
US10735753B2 (en) * 2017-10-27 2020-08-04 Khalifa University of Science and Technology Data compression using memristive crossbar
KR102028476B1 (ko) * 2017-11-24 2019-10-04 광주과학기술원 비 휘발성 메모리
US10740125B2 (en) * 2018-01-30 2020-08-11 Hewlett Packard Enterprise Development Lp Memristive dot product engine virtualization
KR102151675B1 (ko) 2018-03-29 2020-09-03 국민대학교산학협력단 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로
CN111971662A (zh) 2018-04-30 2020-11-20 慧与发展有限责任合伙企业 电阻及数字处理核心
US10419346B1 (en) * 2018-04-30 2019-09-17 Hewlett Packard Enterprise Development L.P. Hash computation using memristor-implemented dot product engine
KR102105936B1 (ko) * 2018-06-25 2020-05-28 포항공과대학교 산학협력단 웨이트 행렬 입력 회로 및 웨이트 행렬 회로
JP7070190B2 (ja) * 2018-07-18 2022-05-18 株式会社デンソー ニューラルネットワーク回路
US10489483B1 (en) * 2018-09-21 2019-11-26 National Technology & Engineering Solutions Of Sandia, Llc Circuit arrangement and technique for setting matrix values in three-terminal memory cells
US10497442B1 (en) 2018-11-15 2019-12-03 Hewlett Packard Enterprise Development Lp Memristor arrays in crossbars
JP6904491B2 (ja) * 2019-01-09 2021-07-14 Tdk株式会社 積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法
US11042715B2 (en) 2019-04-11 2021-06-22 International Business Machines Corporation Electronic system for performing a multiplication of a matrix and vector
CN110473580B (zh) * 2019-08-21 2021-08-20 南京邮电大学 一种基于忆阻器芯片的可编程电路最小单元及其操作方法
DE102020211818A1 (de) 2020-09-22 2022-03-24 Robert Bosch Gesellschaft mit beschränkter Haftung Skalarproduktschaltung und Verfahren zum Berechnen binärer Skalarprodukte eines Eingangsvektors mit Gewichtsvektoren
CN113224236B (zh) * 2021-05-11 2022-09-16 山东大学 一种透明的双层结构忆阻器及其制备方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185143B1 (en) 2000-02-04 2001-02-06 Hewlett-Packard Company Magnetic random access memory (MRAM) device including differential sense amplifiers
US6501697B1 (en) 2001-10-11 2002-12-31 Hewlett-Packard Company High density memory sense amplifier
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
US7688656B2 (en) 2007-10-22 2010-03-30 Freescale Semiconductor, Inc. Integrated circuit memory having dynamically adjustable read margin and method therefor
US7907456B2 (en) 2007-10-31 2011-03-15 Texas Instruments Incorporated Memory having circuitry controlling the voltage differential between the word line and array supply voltage
JP5160304B2 (ja) 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
US9142287B2 (en) * 2010-03-12 2015-09-22 Hewlett-Packard Development Company, L.P. Coding for crossbar architecture
WO2011133139A1 (en) * 2010-04-19 2011-10-27 Hewlett-Packard Development Company, L.P. Refreshing memristive systems
WO2012003380A2 (en) * 2010-06-30 2012-01-05 Life Technologies Corporation Array column integrator
US8253443B2 (en) * 2010-10-26 2012-08-28 Hewlett-Packard Development Company, L.P. Interconnection architectures for multilayer crossbar circuits
US9367798B2 (en) * 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
WO2014116195A2 (en) * 2012-10-31 2014-07-31 Hewlett-Packard Development Company, L.P. Writing standard tape format to memory
US9442854B2 (en) * 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
US9323499B2 (en) * 2012-11-15 2016-04-26 Elwha Llc Random number generator functions in memory
US20140143191A1 (en) * 2012-11-20 2014-05-22 Qualcomm Incorporated Piecewise linear neuron modeling
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
KR102133573B1 (ko) * 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
US9588882B2 (en) * 2013-12-02 2017-03-07 Intel Corporation Non-volatile memory sector rotation

Also Published As

Publication number Publication date
KR20170074234A (ko) 2017-06-29
US10008264B2 (en) 2018-06-26
WO2016064406A1 (en) 2016-04-28
US20170316827A1 (en) 2017-11-02
JP2018501537A (ja) 2018-01-18

Similar Documents

Publication Publication Date Title
JP6333477B2 (ja) ドット積を求めるためのメムリスティブクロスバーアレイ
US10339202B2 (en) Resistive memory arrays for performing multiply-accumulate operations
JP6281024B2 (ja) ベクトル処理のためのダブルバイアスメムリスティブドット積エンジン
US10319441B2 (en) Nonvolatile memory cross-bar array
US10698975B2 (en) In situ transposition
US9785615B1 (en) Memristive computation of a vector cross product
US10580473B2 (en) Memcapacitive cross-bar array for determining a dot product
US10482940B2 (en) Computational accuracy in a crossbar array
US10706922B2 (en) Memristive arrays with offset elements
EP3221864B1 (en) Memristive dot product engine with a nulling amplifier
KR20170075741A (ko) 벡터 프로세싱을 위한 멤리스티브 내적 엔진

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180116

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6333477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees