JP6702596B2 - 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法 - Google Patents

多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法 Download PDF

Info

Publication number
JP6702596B2
JP6702596B2 JP2018537499A JP2018537499A JP6702596B2 JP 6702596 B2 JP6702596 B2 JP 6702596B2 JP 2018537499 A JP2018537499 A JP 2018537499A JP 2018537499 A JP2018537499 A JP 2018537499A JP 6702596 B2 JP6702596 B2 JP 6702596B2
Authority
JP
Japan
Prior art keywords
layer
rram crossbar
crossbar array
calculation result
array
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
JP2018537499A
Other languages
English (en)
Other versions
JP2019502225A (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.)
Huawei Technologies Co Ltd
Nanyang Technological University
Original Assignee
Huawei Technologies Co Ltd
Nanyang Technological University
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 Huawei Technologies Co Ltd, Nanyang Technological University filed Critical Huawei Technologies Co Ltd
Publication of JP2019502225A publication Critical patent/JP2019502225A/ja
Application granted granted Critical
Publication of JP6702596B2 publication Critical patent/JP6702596B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/003Cell access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06JHYBRID COMPUTING ARRANGEMENTS
    • G06J1/00Hybrid computing arrangements
    • 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
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • 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
    • 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/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/71Three dimensional array
    • 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)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Semiconductor Memories (AREA)
  • Logic Circuits (AREA)

Description

本発明の実施形態は、記憶分野、より詳細には、多層RRAM(登録商標、以下同じ)クロスバー・アレイに基づくメモリデバイス、およびデータ処理方法に関する。
現在、多くのアプリケーションは、指紋認識および機械学習のような複雑なビッグデータ計算に関する。現在のビッグデータ計算について、計算システムの性能ボトルネックは主に次の2つの態様にある。
メモリウォール(memory wall):技術の発達に伴い、プロセッサ性能は持続的に改善している。しかし、メモリ性能はたいへんゆっくりと改善している。その結果、メモリ性能は全体のシステム性能を改善するための「弱点」になり、これはメモリウォールと呼ばれる。具体的には、プロセッサとメモリの間の接続および通信は、入力/出力(Input/Output, I/O)バスを使用することによって実現される。ハードウェアによって制限され、I/Oバスは制限された帯域幅を有する。その結果、ほとんどの時間において、プロセッサはメモリを待つアイドル状態にある。
パワーウォール(power wall):現在、ほとんどのメモリは揮発性メモリである。従って、データ損失を防止するために、揮発性メモリは常に通電される必要がある。これは、メモリの高い動的な電力消費および高い静的な電力消費に導く。
一般に、次の解決策が上記の2つの問題に提供される。
メモリウォールへの解決策:論理ユニット(または論理回路)がメモリに追加されることが可能であり、それによってデータがメモリ内で直接に計算される、すなわちin-memory computing。例として10個の数字の合計を使用すると、メモリがデータ記憶機能のみを有するならば、プロセッサはメモリからI/Oバスを通して10個の数字を読み取り、10個の数字を合計する必要がある。メモリが論理演算機能を有するならば、メモリは10個の数字の合計を直接に計算し、そしてI/Oバスを通してプロセッサに計算結果を送ることができる。上記の2つの実装の間の比較から、論理演算機能を有するメモリは90%だけI/Oバスの伝送の圧迫を低減し、それによってメモリウォール制限が効果的に軽減されることが可能であることが見出され得る。
パワーウォールへの解決策:不揮発性メモリが揮発性メモリを置換するために使用され得る。メモリは不揮発性であるので、電力の一時中断によって引き起こされるメモリ内のデータの損失は生じない。従って、データ処理プロセスにおいて、全体のメモリが常に通電される必要はない。このようにして、電力消費は効果的に低減される。
抵抗ランダム・アクセス・メモリ(Resistive Random Access Memory, RRAM)技術の発達は、上記の2つの問題を同時に解決することを可能にする。まず、RRAMのコアデバイスはメモリスタである(すなわち、RRAM内の抵抗はメモリスタである)。RRAMは不揮発性であり、電力消費を低減することができる。さらに、図1に表わされているように、RRAMはクロスバー・アレイ構造を有する(従って、RRAMは、一般に、RRAMクロスバー・アレイ、またはRRAM crossbarと呼ばれる)。RRAM crossbarは単層または多層であり得る。多層RRAM crossbarにおいて、1つの層の出力は次の層の入力として使用され得る。抵抗アレイがRRAM crossbarの各層に配置される。RRAM内の抵抗がニューラル・ネットワーク内のニューロンとして考慮されるならば、RRAM crossbarは構造的にニューラル・ネットワークにたいへん類似していることが見出され得る。そのような構造は、論理演算のためにたいへん適している。具体的には、様々な論理演算が、RRAM crossbarの層の数、RRAM crossbarの各層における抵抗アレイのサイズ、および各抵抗の抵抗値を構成することによって実現され得る。
先行技術において、RRAM crossbarの論理演算能力は、ある程度まで既に開発され、使用されている。図2は、論理演算を行うことができるRRAM crossbarの従来の回路構造を表わす。まず、RRAM crossbar内の抵抗の抵抗値は、(合計、排他的OR、および行列乗算のような)所望の論理演算機能に従って構成される必要がある。例として行列乗算Y = ΦXを使用して、まず、行列Φ内の各要素がRRAM crossbar内に記憶され得る。例えば、図2の抵抗Gijは、Φの第i行および第j列の要素に対応し、Gijの抵抗値は、対応する要素の値を表現する。そして、実際の行列乗算において、行列Xの要素は、まず、デジタル・パラメータx1...xnからアナログ・パラメータ(アナログ電圧信号)に変換され、そして、RRAMの行に入力される。そして、RRAM crossbar内の行と列の間の電圧、電流、および抵抗の関係を使用することによって行列内の要素に点乗算演算が行われ、それによって計算結果V1からVmを取得する。最後に、計算結果(アナログ電圧パラメータ)が(y1およびy2のような)デジタル・パラメータに変換され、そして出力される。
上記の説明から、従来のRRAM crossbarはアナログ・パラメータを使用して論理演算を行い、そのような演算方式は主に次の2つの短所を有することが知られ得る。
第1に、多数のデジタル・アナログ変換器(Digital to Analog Converter, DAC)およびアナログ・デジタル変換器(Analog to Digital Converter, ADC)が信号へのDAおよびAD変換演算のために要求される。変換器および変換演算は時間を消費し、電力を消費する。
第2に、具体的な演算論理を実現するために、RRAM内の抵抗は、前もって構成され、またはプログラムされる必要がある。実際、RRAM内の抵抗の抵抗値は、抵抗を通して流れる電流の積分に従って決定される。しかし、RRAM内の抵抗素子の特性は、一定でなく、ある程度まで変動し得る。その結果、同じ電流についての積分演算によって得られる抵抗値は、異なり得る。具体的には、図3の(a)に表わされているように、素子特性の変動によって影響され、抵抗は、R on状態(低抵抗状態、またはon-stateとも呼ばれる)から、中間状態(intermediate state)へ、そしてRoff状態(高抵抗状態、またはoff-stateとも呼ばれる)への異なる状態変換曲線を有し、抵抗プログラミングの不正確さという結果になる。加えて、図3の(b)から、そのような不正確さは、抵抗の中間状態において特に明らかであることが知られ得る。
この出願は、従来のRRAM crossbarの論理演算の正確さを改善するために、メモリデバイスを提供する。
第1の態様によれば、メモリデバイスが提供される。メモリデバイスは制御バスおよび複数のメモリユニットを含み、複数のメモリユニットは制御バスを通して互いに接続され、複数のメモリユニットの各々は、制御モジュールであって、この制御モジュールは制御バスを通してプロセッサに接続され、制御バスを通してプロセッサの命令を受け取って解析し、プロセッサの命令は論理演算命令を含む、制御モジュールと、論理モジュールであって、この論理モジュールは制御モジュールに接続され、論理モジュールは少なくとも1つの層のRRAMクロスバー・アレイ(すなわち、RRAM crossbar)を含み、少なくとも1つの層のRRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、制御モジュールは、論理演算命令に従って少なくとも1つの層のRRAMクロスバー・アレイを使用することによってブール演算を行う、論理モジュールと、を含む。
RRAMクロスバー・アレイ内の抵抗はRonまたはRoffに設定され、RonおよびRoffはブール値1および0をそれぞれ示すために使用され、それによってRRAMクロスバー・アレイのブール演算が実現され、RRAMクロスバー・アレイの論理演算の正確さが改善される。
第1の態様を参照して、第1の態様の第1の実装において、論理演算命令は、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うように論理モジュールに命令するために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは2より小さくない正の整数であり、論理モジュールは多層RRAMクロスバー・アレイを含み、多層RRAMクロスバー・アレイ内の第1の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを含み、第1の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第1の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第1の層のRRAMクロスバー・アレイのN個のワードラインは、制御モジュールに接続され、第1の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、第1の層のRRAMクロスバー・アレイは、N個のワードラインによって入力された電圧信号および第1の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従ってN個のビットラインにおいてN個の電流信号を生成し、N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、第1の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたり、N個の比較器回路は、N個の電流信号をN個の電圧信号にそれぞれ変換し、N個の電圧信号をN個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによってN個のビットラインの出力端は第1の計算結果に対応する電圧信号を出力し、第1の計算結果は、N次元ブール・ベクトルであり、第1の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、他の層のRRAMクロスバー・アレイは、N個のビットラインの出力端から第1の計算結果に対応する電圧信号を受け取り、第1の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第2の計算結果に対応する電圧信号を取得し、第2の計算結果はKの2進数表現である。
ブール・ベクトルの点乗算演算は、多層RRAMクロスバー・アレイを使用することによって実現される。
第1の態様の第1の実装を参照して、第1の態様の第2の実装において、N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を含み、抵抗Rsの一端はN個のビットラインのうちの第jのビットラインおよび比較器に接続され、抵抗Rsの他端は接地され、第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す。
第1の態様の第2の実装を参照して、第1の態様の第3の実装において、論理モジュールは、少なくとも3つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第2の層のRRAMクロスバー・アレイおよび第3の層のRRAMクロスバー・アレイを含み、第2の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第2の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第2の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第2の層のRRAMクロスバー・アレイのワードラインは第1の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第2の層のRRAMクロスバー・アレイは2N-1個のワードラインを通して第1の層のRRAMクロスバー・アレイのビットラインの出力端から第1の計算結果に対応する電圧信号を受け取り、第1の計算結果に対応する電圧信号および第2の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
を行い、それによって中間計算結果に対応する電圧信号を取得し、
は、第1の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
は、第1の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
は、第2の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、第3の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第3の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第3の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは2進数で整数Nを表現するために要求される最小のビット数以上であり、第3の層のRRAMクロスバー・アレイは、第3の層のRRAMクロスバー・アレイのN個のワードラインを通して第2の層のRRAMクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第3の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第2の計算結果に対応する電圧信号を取得する。
nが2進数で整数Nを表現するために要求される最小のビット数以上であることは、次のように理解され得る。N = 8と仮定すると、少なくとも4ビットが2進数のNを表現するために要求され、すなわち、1000はNを表現し、従って、n≧4である。
第1の態様の第3の実装を参照して、第1の態様の第4の実装において、第3の層のRRAMクロスバー・アレイの第jのワードラインは、第2の層のRRAMクロスバー・アレイの第jのビットラインに接続され、第3の層のRRAMクロスバー・アレイの第j行内の抵抗の抵抗値は、整数j+1の2進数表現に対応する。
第1の態様の第1から第4の実装のいずれか1つを参照して、第1の態様の第5の実装において、ブール・ベクトルAはブール行列Φのいずれかの行ベクトルであり、ブール・ベクトルBはブール行列Xのいずれかの列ベクトルであり、メモリデバイス内の複数の論理モジュールの各々は、ブール行列Φのいくつかの行ベクトルとブール行列Xのいくつかの列ベクトルの点乗算演算の責任を負い、複数の論理モジュールは共同でブール行列Φとブール行列Xのブール行列乗算演算を実現する。
第1の態様または第1の態様の上記の実装のいずれか1つを参照して、第1の態様の第6の実装において、プロセッサの命令はデータ読み取り/書き込み命令をさらに含み、各メモリユニットは、記憶モジュールであって、この記憶モジュールは制御モジュールに接続され、制御モジュールは、データ読み取り/書き込み命令に従って、記憶モジュールを使用することによってデータ読み取り/書き込みを行う、記憶モジュールをさらに含む。
第2の態様によれば、多層RRAMクロスバー・アレイに基づくデータ処理方法が提供される。多層RRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、多層RRAMクロスバー・アレイは、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは2より小さくない正の整数であり、多層RRAMクロスバー・アレイ内の第1の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを含み、第1の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第1の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第1の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続される。この方法は、第1の層のRRAMクロスバー・アレイにより、第1の層のRRAMクロスバー・アレイのN個のワードラインによって入力された電圧信号および第1の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従ってN個のビットラインにおいてN個の電流信号を生成するステップであって、N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、第1の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたる、ステップと、N個の比較器回路により、N個の電流信号をN個の電圧信号に変換し、N個の電圧信号をN個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによってN個のビットラインの出力端は第1の計算結果に対応する電圧信号を出力するステップであって、第1の計算結果は、N次元ブール・ベクトルであり、第1の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果である、ステップと、他の層のRRAMクロスバー・アレイにより、N個のビットラインの出力端から第1の計算結果に対応する電圧信号を受け取り、第1の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第2の計算結果に対応する電圧信号を取得するステップであって、第2の計算結果はKの2進数表現である、ステップと、を含む。
RRAMクロスバー・アレイ内の抵抗はRonまたはRoffに設定され、RonおよびRoffはブール値1および0をそれぞれ示すために使用され、それによってRRAMクロスバー・アレイのブール演算が実現され、RRAMクロスバー・アレイの論理演算の正確さが改善される。
第2の態様を参照して、第2の態様の第1の実装において、論理モジュールは、少なくとも3つの層のRRAMクロスバー・アレイを含み、他の層のRRAMクロスバー・アレイは第2の層のRRAMクロスバー・アレイおよび第3の層のRRAMクロスバー・アレイを含み、第2の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを含み、第2の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第2の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、第2の層のRRAMクロスバー・アレイのワードラインは第1の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、第3の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを含み、第3の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、第3の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは2進数で整数Nを表現するために要求される最小のビット数以上であり、他の層のRRAMクロスバー・アレイにより、N個のビットラインの出力端から第1の計算結果に対応する電圧信号を受け取り、第1の計算結果に対応する電圧信号および他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第2の計算結果に対応する電圧信号を取得するステップは、第2の層のRRAMクロスバー・アレイにより、2N-1個のワードラインを通して第1の層のRRAMクロスバー・アレイのビットラインの出力端から第1の計算結果に対応する電圧信号を受け取り、第1の計算結果に対応する電圧信号および第2の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
を行い、それによって中間計算結果に対応する電圧信号を取得するステップであって、
は、第1の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
は、第1の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
は、第2の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、第3の層のRRAMクロスバー・アレイにより、第3の層のRRAMクロスバー・アレイのN個のワードラインを通して第2の層のRRAMクロスバー・アレイのN個のビットラインから中間計算結果に対応する電圧信号を受け取り、中間計算結果に対応する電圧信号および第3の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って中間計算結果をエンコードし、それによって第2の計算結果に対応する電圧信号を取得するステップと、を含む。
第2の態様または第2の態様の第1の実装を参照して、第2の態様の第2の実装において、N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を含み、抵抗Rsの一端はN個のビットラインのうちの第jのビットラインおよび比較器に接続され、抵抗Rsの他端は接地され、第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す。
上記の実装のいくつかにおいて、記憶モジュールは、RRAMクロスバー・アレイに基づく記憶モジュールである。RRAMクロスバー・アレイに基づく記憶モジュールは、メモリ電力消費を低減することができる。
上記の実装のいくつかにおいて、制御モジュールは、プロセッサの命令をバッファするように構成された命令キューと、プロセッサの命令を解析し、解析された命令に従って対応する演算を行うように構成された命令デコーダと、を含む。バッファキューは制御モジュール内に設定され、それによってプロセッサの待ち時間が低減されることが可能である。
上記の実装のいくつかにおいて、制御モジュールは、論理モジュールおよび/または記憶モジュールから取得された結果データを記憶するように構成されたスタティック・ランダム・アクセス・メモリ(Static Random Access Memory, SRAM)を含み、制御モジュールは、プロセッサに結果データを送るようにさらに構成される。
上記の実装のいくつかにおいて、制御モジュールは、相補型金属酸化膜半導体(Complementary Metal Oxide Semiconductor, CMOS)に基づく制御モジュールである。
この出願は、RRAM crossbarの論理演算の正確さを改善する。
本発明の実施形態における技術的解決策をより明確に説明するために、下記は、実施形態を説明するために要求される添付図面を簡単に説明する。明らかに、下記の説明における添付図面は、単に本発明のいくつかの実施形態を表わす。
RRAM crossbarの物理的構造の概略図である。 RRAM crossbarに基づく従来の論理回路の構造図である。 RRAM crossbar内の抵抗の抵抗特性の曲線である。 本発明の実施形態によるメモリデバイスの概略構造図である。 制御モジュール45のバス設計方式の例を表わす。 1つの層のRRAM crossbarの概略構造図である。 ブール行列乗算を実現するために使用される3つの層のRRAM crossbar内の第1の層のRRAM crossbarの回路図である。 ブール行列乗算を実現するために使用される3つの層のRRAM crossbar内の第2の層のRRAM crossbarの回路図である。 ブール行列乗算を実現するために使用される3つの層のRRAM crossbar内の第3の層のRRAM crossbarの回路図である。
図4は本発明の実施形態によるメモリデバイスの概略構造図である。図4から、メモリデバイス40は全体的にH-tree構造にあることが知られ得る。この構造において、記憶モジュール43(または、データモジュール、データアレイ、または同様のものと呼ばれる)は論理モジュール44(または、論理回路、論理演算回路、in-memory logic、または同様のものと呼ばれる)と対にされる。
任意選択で、一実施形態において、記憶モジュール43と論理モジュール44の両方はRRAM crossbarであってもよい。さらに、記憶モジュール43は単層RRAM crossbarであってもよく、論理モジュール44は多層RRAM crossbarであってもよい。もちろん、記憶モジュール43の種類は、本発明のこの実施形態において具体的に限定されず、他の種類の記憶媒体が使用されてもよい。加えて、記憶モジュール43と論理モジュール44の両方がRRAM crossbarであるとしても、RRAM crossbarの層の数は本発明のこの実施形態において具体的に限定されない。例えば、記憶モジュール43は多層RRAM crossbarとして設計されてもよく、論理モジュール44は単層論理モジュール44(単層RRAM crossbarは簡単な論理演算を実現することもできる)として設計されてもよい。
依然として図4を参照すると、メモリデバイス40は主に4つの部分、すなわち、ブロックデコーダ41(Block decoder)、記憶モジュール43、論理モジュール44、および制御モジュール45を含む。制御モジュール45はCMOSを基にした制御モジュールであってもよい。記憶モジュール43、論理モジュール44、および制御モジュール45はメモリユニット42(または、データ/論理対と呼ばれる)内に含まれてもよい。
図4において、制御モジュール45は、記憶モジュール43、論理モジュール44、およびブロックデコーダ41に別個に接続され、ブロックデコーダ41を通して(CPUのような)プロセッサ47に接続される。制御モジュール45は、プロセッサ47の命令を受け取って解析することが可能であり、さらに、記憶モジュール43と論理モジュール44の間のデータ交換または伝送の責任を負うことが可能である。ブロックデコーダ41は、プロセッサ47によって配送された命令を、命令に対応するメモリユニット42の制御モジュール45に転送し得る。加えて、一実施形態において、メモリユニット42のアドレス探索機能は、ブロックデコーダ41内に統合されてもよく、残りの制御機能は制御モジュール45内に全て統合される。
上記の説明から、制御モジュール45はブロックデコーダ41に接続されてもよいが、ブロックデコーダ41はプロセッサ47によって配送された命令を、対応するメモリユニット42の制御モジュール45に転送することのみに責任を負ってもよいことが知られ得る。従って、他の観点から、制御モジュール45は、プロセッサの命令を受け取って解析するための主体として考慮され得る。例として図5を使用して、下記は、制御モジュールの内部構造および制御モジュールが命令をどのように処理するかを詳細に説明する。
図5は制御モジュールのバス設計方式の例を表わす。制御モジュール45は命令キュー451、命令デコーダ452、アドレスデコーダ453、およびSRAMアレイ454を含むことが可能であり、それらの間の接続方式が図5に表わされ得る。メモリデバイスの動作周波数がプロセッサの動作周波数より低い可能性があることを考慮すると、命令キュー451が制御モジュール45内に配置されて、プロセッサ47によって配送される命令をバッファしてもよく、それによってプロセッサ47の待ち時間を低減する。命令デコーダ452は実行されるべき命令を解析し(これは、例えば、データ読み取り、データ記憶、またはメモリ計算の命令であってもよく、下記で詳細に説明される)、そして、対応する演算を行う。アドレスデコーダ453は命令内のアドレス情報を記憶モジュール43の行/列情報または論理モジュール44の行/列情報に分解し得る。SRAMアレイ454は、記憶モジュール43または論理モジュール44から読み取られるデータを一時的に記憶し、命令に従ってデータを記憶モジュール43または論理モジュール44に書き込み、またはデータを外部のプロセッサ47に戻して転送するように構成され得る。
プロセッサ47によってメモリデバイス40に配送される命令のフォーマットおよび種類は、本発明のこの実施形態において具体的に限定されない。例えば、プロセッサ47によってメモリデバイス40に配送される命令の種類または制御モジュール45によって解析される必要がある命令の種類は、表1にリストされた4種類の命令を含み得る。
例としてメモリ計算プロセスを使用して、まず、論理モジュール44において論理構成が行われ、すなわち、論理モジュール44が特定の演算論理を実現することができるように、論理モジュール44内の抵抗の抵抗値が構成される。そして、入力信号が論理モジュール44に提供される。すなわち、論理演算を要求するデータが論理モジュール44に入力される。そして、入力信号および構成された演算論理に従って論理モジュール44内でメモリ計算が行われ得る。下記は、表1における命令を参照してメモリ計算プロセスを詳細に説明する。
メモリ計算が必要であるとき、プロセッサ47は下記の命令をメモリデバイス40に配送し得る。
命令1:SW命令、これはプロセッサ47または記憶モジュール43内のデータを論理モジュール44に書き込むために使用されて、論理モジュール44内のRRAMの抵抗値を構成し、それによって論理モジュールは、合計、排他的OR、および乗算のような特定の論理を実現することができる。
命令2:LW命令、これはプロセッサ47または記憶モジュール43内のデータを論理モジュール44の入力列に書き込むために使用される(図6においてワードライン(word line)によって入力される電圧
)。入力データについての特定の論理演算は、前もって構成された演算論理に基づいて論理モジュール内に実現されることが可能である。例えば、論理モジュール44はa+b合計論理を実現する。命令1を使用することによってbが論理モジュールに記憶されることが可能であり、そして命令2を使用することによってaが入力され、そしてaとbが合計される。
命令3:ST命令、これは論理モジュール44の全ての行/列スイッチをターンオンするために使用され、それによって電流が論理モジュール44の全ての行/列を通して流れる。
命令4:WT命令。RRAM crossbarを使用することによって複雑な論理演算が実現されるとき、複数の層のRRAM crossbarが論理モジュール44内に必要である。この場合、RRAM crossbarの計算を完了するために時間がかかる。従って、ST命令は、制御モジュール45に、論理モジュール44のメモリ計算の完了を待ち、そして続く命令を実行するように命令するために使用され得る。
命令5:SW命令、これはメモリ計算が完了した後、論理モジュール44によって演算により取得されたデータを記憶モジュール43に戻して書き込むために使用され得る。
特定の論理について、論理構成は論理モジュール44に一度だけ行われる必要があり、命令1はメモリ計算が行われる前に必ずしも毎回実行されなくてよいことが留意されるべきである。すなわち、同じ論理演算は、論理モジュール44の入力列内のデータを交換することによって異なるデータのために実現されることが可能である。
制御モジュール45が命令に従ってメモリ計算を行うプロセスが上記で詳細に説明された。制御モジュール45は命令に従って通常のデータ読み取り/書き込みも行い得ることが留意されるべきである。このプロセスは先行技術におけるものと類似し、ここで詳細に説明されない。例として図6を使用して、下記は、RRAM crossbarに基づく論理モジュール44の論理演算プロセスを簡単に説明する。
図6において、比較器回路は各ビットライン(bit line)の下部に配置される。実際、比較器回路は、感知増幅器(Sense Amplifier, SA)であってもよい。SAは、比較的小さい抵抗値を有する一定の抵抗Rs(例えばRs<Ron<Roff)、および演算増幅器を含み、それによって列(すなわち、ビットライン)内の電流信号を電圧に変換し、この電圧を第1の層のRRAM crossbarにおける電圧閾値と比較して、この列の計算結果を取得する。各列についての計算式は次の通りである。
式(1)において、
は第i行のワードライン(word line)の電圧を示し、
は第j列のビットライン(bit line)の電圧を示し、gijは抵抗Rijに対応するアドミッタンス(Rijの逆数)を示し、
は第j列に対応する電圧閾値を示し、
は第j列の出力電圧を示す。加えて、図6は単層RRAM crossbarの回路構造を単に表わす。論理モジュール44が多層RRAM crossbarを含むならば、1つの層の列出力
は次の層の行入力として使用され得る。全ての層は同じ構造または異なる構造を有してもよい。最後の層の列出力
は論理モジュール44の最終出力として使用され得る。
RRAM crossbarを使用して特定の論理演算(または機能)を実現するために、下記のステップが、RRAM crossbar内の抵抗の抵抗値および各列の電圧閾値を構成するために行われ得る(すなわち、RRAM crossbar内の抵抗値および各列の電圧閾値がRRAM crossbarによって実際に実現される論理を決定する)。
ステップ1:(MatLabおよびOctaveのような)ソフトウェアにおいて、特定の論理を実現するために要求されるRRAM crossbarの層の数、および各層の行および列のサイズを決定する。
ステップ2:各層のRRAM crossbarにおいて抵抗の抵抗値、および比較器回路の電圧閾値を計算する。
ステップ3:命令を使用して、RRAM crossbar内の抵抗の計算された抵抗値を対応する抵抗に記憶させ、比較器回路の電圧閾値を設定する。
ステップ4:ハードウェア(論理モジュール44の回路)を使用することによって特定の論理計算を実現する。
アナログ信号に基づくRRAM crossbarの短所が、図2および図3、例えば、過度なADおよびDA変換演算、および抵抗値構成プロセスに存在する誤り、を参照して上記で詳細に説明されている。この短所を克服するために、下記は、具体的な実施形態を参照して、デジタル信号に基づくRRAM crossbarの具体的な実装を説明する。
まず、図3の(b)から、中間状態と比較して、RRAM crossbar内の抵抗がRonまたはRoffに設定されるならば信頼性はより高いことが知られ得る(RRAM crossbar内の抵抗を構成するプロセスはRRAM programmingと呼ばれ得る)。すなわち、RRAM crossbar内の抵抗のみがRonまたはRoffに設定されるならば、抵抗構成誤りが低減されることが可能であり、論理演算の信頼性は改善されることが可能である。従って、本発明のこの実施形態におけるRRAM crossbar内の抵抗は、Ron状態に設定されるか、またはRoff状態に設定されるかのいずれかである。Roffはブール値「0」(または数字「0」)を示してもよく、Ronはブール値「1」(または数字「1」)を示してもよい。そして、RRAM crossbarの行入力インタフェースは、AD変換の必要なく、純粋なデジタルインタフェースとして設計され得る(入力電圧信号はハイレベルおよびローレベルを含み、ハイレベルはブール値1に対応し、ローレベルはブール値0に対応すると仮定すると、図6から、RRAM crossbarの行入力は電圧信号であることが知られ得るが、ハイレベルとローレベルの電圧値は本発明のこの実施形態において具体的に限定されない)。上記の設定により、図2に表わされているアナログ信号に基づく論理モジュールは、デジタル信号に基づく論理モジュールに変換され得る。
図6を参照すると、各列のSA内の抵抗Rsは一定の抵抗値を有する小さい抵抗であってもよく、Roff,、Ron、およびRSについてRoff>>Ron>>Rsが満たされてもよい。(図において例としてSAを使用して)比較器回路は各列の端に接続される。式(2)を参照すると、SAはこの列の電圧を列の閾値電圧と比較して、この列の出力電圧を取得する。出力電圧は、ブール値0に対応する電圧(ローレベル)またはブール値1に対応する電圧(ハイレベル)のいずれかである。
RRAM crossbar内の抵抗およびワードラインの各列内の電圧閾値を構成することによって特定の論理が実現されることが可能であることが理解されるべきである。しかし、論理の種類は本発明のこの実施形態において具体的に限定されない。例としてブール行列(行列内の要素が全て0と1である)乗算を使用して、下記は、ブール行列乗算を実現するために、RRAM crossbar内の抵抗の抵抗値をどのように構成し、RRAM crossbar内のワードラインの電圧閾値をどのように構成するかを詳細に説明する。
理解の容易さのために、行列乗算Y = ΦXの計算プロセスがまず説明される。
行列XおよびΦの一般形式およびベクトル形式は次の通りである。
行列Φと行列Xの積は、その代わりに、列ベクトル
と行ベクトル
の積として考慮され得る。詳細には、式(4)
を参照されたい。
式(3)および(4)から、行列Yの各要素は行列Φの行と行列Xの列の点乗算(すなわち、内積を計算すること)の結果であることが知られ得る。
本発明のこの実施形態において、まず、論理モジュールが提供される。論理モジュールは、多層RRAM crossbarに基づいて、ブール・ベクトル(ブール・ベクトルは、要素が0または1であるベクトルである)の点乗算演算論理を実現し得る。これに基づいて、ブール行列(ブール行列は、要素が0または1である行列である)乗算演算を実現することができるメモリデバイスが、本発明のこの実施形態においてさらに提供される。メモリデバイスは、ブール・ベクトル乗算を実現することができる1つ以上の論理モジュールを含み得る。ブール行列乗算演算はブール・ベクトルの複数の点乗算演算に分解され得るので、メモリデバイスはブール行列乗算演算をブール・ベクトルの複数の点乗算演算に分解し、そしてブール・ベクトルの複数の点乗算演算を1つ以上の論理モジュールに分配し得る。1つ以上の論理モジュールは共同でブール行列乗算演算を実現する。
下記は、例として、ブール・ベクトル
(これはブール行列Φ内のいずれかの行の要素によって形成されるベクトルとして考慮されることが可能であり、上記で言及したブール・ベクトルAに対応する)と、ブール・ベクトル
(これは行列X内のいずれかの列の要素によって形成されるブール・ベクトルとして考慮されることが可能であり、上記で言及したブール・ベクトルBに対応する)を使用することによってブール・ベクトル点乗算演算を実現するために多層RRAM crossbarの構造および機能を詳細に説明する。
多層RRAM crossbarは、具体的には、3つの層のRRAM crossbarを含み得る。図7に表わされている回路は、3つの層のRRAM crossbar内の第1の層のRRAM crossbarにおいて使用され得る。図7において、第1の層のRRAM crossbarはN×N抵抗アレイを含む。N×N抵抗アレイの各列内のN個の抵抗は、それぞれ、ブール・ベクトル
を示す。例えば、Nは8であり、
の8個の要素は順に10101010であると仮定する。従って、第1の層のRRAM crossbarのN×N抵抗アレイ内の第1の列の抵抗値は、順に、Ron(1に対応する)、Roff(0に対応する)、Ron、Roff、Ron、Roff、Ron、およびRoffであり、N×N抵抗アレイ内の各列の抵抗構成は、第1の列の抵抗構成と同じである。
比較器回路は、N×N抵抗アレイの各列(bit line)の下部に配置される(SAは下記における比較器回路の例として使用される)。比較器回路は、比較的小さい抵抗値を有する一定の抵抗Rsおよび比較器を含み得る。比較器回路の機能は、各列内の電流信号を電圧信号に変換し、その電圧信号を列の電圧閾値Vth1と比較し、それによってこの列の計算結果が0であるか、または1であるかを決定することである。N×N抵抗アレイ内の各列の電圧閾値は、順にVr*gon*Rs*(2j+1)/2に設定されることが可能であり、ここでjは0からN-1までにわたる正の整数であり、VrはXの入力が1であるときの実際の電圧(すなわち、ハイレベル)を示し、gonは抵抗Ronに対応するアドミッタンスを示し、Rsはサンプリング抵抗の抵抗値を示す。この式から、N×N抵抗アレイ内の列の閾値は順に増加し、(図7に表わされているように)全体的に階段形状であることが知られ得る。
下記は、第1の層のRRAM crossbarによって実現されることが可能である論理機能を説明する。
ブール・ベクトル
に対応する電圧信号が第1の層のRRAM crossbarに入力される(すなわち、ブール・ベクトル
内の要素1に対応するワードラインにハイレベルが入力され、ブール・ベクトル
内の要素0に対応するワードラインにローレベルが入力される)。上記で説明したように、第1の層のRRAM crossbarにおける各列内の抵抗の抵抗値は、ブール・ベクトル
に対応する抵抗値である。第1の層のRRAM crossbarの全ての行/列のスイッチがターンオンされるとき、電圧と電流の間の関係に基づいて第1の層のRRAM crossbarの各ビットラインにおいて、ブール・ベクトル
とブール・ベクトル
の点乗算論理が実現される。点乗算論理の結果は各ワードラインにおける電流によって表現され得る。そして、ビットラインの出力端において、第1の層のRRAM crossbarのワードラインに接続されたSAは、上記で説明した階段形状の電圧閾値を設定することによって第1の計算結果に対応する電圧信号を出力する。第1の計算結果はN次元ブール・ベクトルであり、第1の計算結果の最初のK個の要素は1であり、残りの要素は0であり、Kは、ブール・ベクトル
とブール・ベクトル
についての点乗算演算の結果である。例えば、N=8およびK=3と仮定する。第1の層のRRAM crossbarの論理演算により、第1の層のRRAM crossbarの出力O1,j(0≦j≦N-1)の結果は11100000である。それは次のように、すなわち、列0から3におけるSAのすべての比較結果は、列の電圧が電圧閾値より大きいことであり、列4から7におけるSAの全ての比較結果は、列の電圧が電圧閾値より小さいことであると理解され得る。
次に、3つの層のRRAM crossbar内の第2の層のRRAM crossbarと第3の層のRRAM crossbarの論理タスクは、第1の層のRRAM crossbarの出力結果をKの2進数表現に変換することである。例としてK=3を依然として使用して、第1の層のRRAM crossbarの出力結果は11100000であり、第2の層のRRAM crossbarと第3の層のRRAM crossbarの論理タスクは、11100000を11、すなわち、2進数における3に変換することである。下記は、第2の層のRRAM crossbarと第3の層のRRAM crossbarの構造および論理機能をさらに説明する(ここで、第2の層のRRAM crossbarと第3の層のRRAM crossbarは共同で上記の論理タスクを完了するが、これは本発明のこの実施形態において限定されず、上記の論理タスクは、その代わりに、1つの層のRRAM crossbarまたは3つより多くの層のRRAM crossbarによって実現され得る)。
上記の論理タスクを実現するために、図8に表わされている構造は、第2の層のRRAM crossbarのために使用され得る。図8において、第2の層のRRAM crossbarは(2N-1)×N抵抗アレイを含む。第2の層のRRAM crossbarの抵抗の第j列内の第(2j)および第(2j+1)の抵抗の抵抗値はRonであり、残りの抵抗の抵抗値はRoffであり、ここで0≦j≦N-2である。第2の層のRRAM crossbarの抵抗の第(N-1)列内の第(2N-1)の抵抗の抵抗値はRonであり、残りの抵抗の抵抗値はRoffである。第2の層のRRAM crossbarの2N-1個のワードラインは、図8に表わされている接続関係に従って第1の層のRRAM crossbarのビットライン出力端O1,jに接続され得る。第1の層のRRAM crossbarのいくつかのビットラインの出力端は第2の層のRRAM crossbarのワードラインに接続される前に否定演算を要求することが留意されるべきである。図7に表わされている
を参照すると、そのような否定演算は、比較器または位相反転器のようなデバイスに接続することによって実現され得る。これは本発明のこの実施形態において具体的に限定されない。第2の層のRRAM crossbarにおける各ビットラインの端は比較器回路に接続される。比較器回路の電圧閾値Vth2はVr*gon*Rs/2に設定され得る。加えて、第2の層の出力O2,jを取得するために、演算回路内の比較器の正極と負極は交換される必要があり(すなわち、電圧閾値Vth2は比較器の同相入力端において設定され、逆相入力端は抵抗Rsおよびビットラインに接続される)、ここで0≦j≦N-1である。
第2の層のRRAM crossbarの出力O2,jと第1の層のRRAM crossbarの出力の間の関係は、式(5)によって表現され得る。すなわち、式(5)は第2の層のRRAM crossbarによって実現される論理機能である。
式(5)によって表現される論理は、実際、排他的OR論理である。すなわち、第1の層のRRAM crossbarによって出力された第1の計算結果について排他的OR演算が対で行われて、中間計算結果を取得する。中間計算結果はN次元ベクトルである。N次元ベクトルの第(K-1)の要素は1であり、残りの要素は0である。Kはブール・ベクトル
とブール・ベクトル
についての点乗算演算の結果である。第1の層のRRAM crossbarの出力結果が11100000であることは、一例として使用される。取得された結果は、第2の層の論理演算が行われた後に00100000である。しかし、排他的OR論理を実現するためのRRAM crossbarの構造は本発明のこの実施形態において具体的に限定されず、図8は単に例であることが留意されるべきである。実際、排他的OR論理は、その代わりに、他の方式において抵抗の抵抗値および電圧閾値を構成することによって実現され得る。
第2の層のRRAM crossbarは、中間計算結果に対応する電圧信号を第の層のRRAM crossbarのワードラインに転送する。第2の層のRRAM crossbarの第jのビットラインの出力端O2,jは第3の層のRRAM crossbarの第jのワードラインの入力端に接続される。第3の層のRRAM crossbarの論理回路は図9に表わされている。第3の層のRRAM crossbarはN×n抵抗アレイを含み、ここでnは2進数で整数Nを表現するために要求される最小のビット数以上である(例えば、N=8であり、8の2進数表現は1000であり、すなわち、8の2進数表現は4ビットを要求し、従って、nは4以上である)。抵抗のN行の抵抗値は、上から下に順に2進数1からNを抵抗が示すように設定される。このようにして、第2の層のRRAM crossbarによって出力される中間演算結果に対応する電圧信号が第3の層のRRAM crossbarの入力電圧信号として使用されるとき、中間演算結果の第(K-1)の要素はブール値1であり、残りの要素はブール値0であるので、第3の層のRRAM crossbarの第(K-1)のビットラインはブール値1に対応する電圧信号(ハイレベル)を入力し、残りのビットラインの各々はブール値0に対応する電圧信号(ローレベル)を入力する。論理の観点から、そのような構成により、最終的に第3の層のRRAM crossbarによって出力される(上記で説明した第2の演算に対応する)演算結果は、Kの2進数表現である。すなわち、第3の層のRRAM crossbarの第(K-1)行内の抵抗に対応する整数の2進数表現(上記で説明したように、第(K-1)行内の抵抗は整数Kの2進数表現に対応することが知られ得る)は最終的な演算結果として選択される。第3の層のRRAM crossbarの出力は最終的な演算結果に対応する電圧信号である。
例としてN=8およびK=3を依然として使用して、第2の層のRRAM crossbarの論理出力は00100000である。第3の層のRRAM crossbarの入力と出力の間の論理対応関係は、下記の表に表わされている。
上記の表から、00100000に対応する出力は0011、すなわち、3の2進数表現であることが知られ得る。
入力行列が非ブール行列である(例えば、入力行列が正の実数行列である)ならば、行列は線形代数により複数のブール行列の線形結合に分解され得ることが留意されるべきである。そして、上記の方式で複数のブール行列について演算が行われ、そして、複数のブール行列についての演算の結果は線形結合されて、実数行列に対応する行列乗算結果を取得する。詳細は本発明のこの実施形態において再度説明されない。
この技術分野の当業者は、この明細書において開示された実施形態において説明された例と組み合わせて、ユニットおよびアルゴリズムのステップは、電子的ハードウェアまたはコンピュータソフトウェアと電子的ハードウェアの組み合わせによって実現され得ることを認識し得る。機能がハードウェアによって行われるか、またはソフトウェアによって行われるかは、特定の応用および技術的解決策の設計制約条件に依存する。この技術分野の当業者は異なる方法を使用して各々の特定の応用のために説明された機能を実現し得るが、この実装は本発明の範囲を超えると考慮されるべきでない。上記の説明は単に本発明の具体的な実施形態であるが、本発明の保護範囲を限定することは意図されない。
40 メモリデバイス
41 ブロックデコーダ
42 メモリユニット
43 記憶モジュール
44 論理モジュール
45 制御モジュール
46 I/Oバス
47 プロセッサ
451 命令キュー
452 命令デコーダ
453 アドレスデコーダ
454 SRAMアレイ

Claims (9)

  1. メモリデバイスであって、前記メモリデバイスは制御バスおよび複数のメモリユニットを備え、前記複数のメモリユニットは前記制御バスを通して互いに接続され、前記複数のメモリユニットの各々は、
    制御モジュールであって、前記制御モジュールは前記制御バスを通してプロセッサに接続され、前記制御バスを通して前記プロセッサの命令を受け取って解析し、前記プロセッサの命令は論理演算命令を備える、制御モジュールと、
    論理モジュールであって、前記論理モジュールは前記制御モジュールに接続され、前記論理モジュールは少なくとも1つの層の抵抗ランダム・アクセス・メモリ(RRAM)クロスバー・アレイを備え、前記少なくとも1つの層のRRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記制御モジュールは、前記論理演算命令に従って前記少なくとも1つの層のRRAMクロスバー・アレイを使用することによってブール演算を行う、論理モジュールと、
    を備え
    前記論理演算命令は、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うように前記論理モジュールに命令するために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは2より小さくない正の整数であり、
    前記論理モジュールは多層RRAMクロスバー・アレイを備え、前記多層RRAMクロスバー・アレイ内の第1の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第1の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第1の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第1の層のRRAMクロスバー・アレイのN個のワードラインは、前記制御モジュールに接続され、前記第1の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
    前記第1の層のRRAMクロスバー・アレイは、前記N個のワードラインによって入力された電圧信号および前記第1の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成し、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、B j に対応する電圧値であり、前記第1の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、A j に対応する抵抗値であり、B j は前記ブール・ベクトルBの第jの要素であり、A j は前記ブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたり、
    前記N個の比較器回路は、前記N個の電流信号をN個の電圧信号にそれぞれ変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第1の計算結果に対応する電圧信号を出力し、
    前記他の層のRRAMクロスバー・アレイは、前記N個のビットラインの出力端から前記第1の計算結果に対応する電圧信号を受け取り、前記第1の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第2の計算結果に対応する電圧信号を取得する、メモリデバイス。
  2. 前記第1の計算結果は、N次元ブール・ベクトルであり、前記第1の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、前記第2の計算結果はKの2進数表現であり、
    前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項に記載のメモリデバイス。
  3. 前記論理モジュールは、少なくとも3つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第2の層のRRAMクロスバー・アレイおよび第3の層のRRAMクロスバー・アレイを備え、
    前記第2の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第2の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第2の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第2の層のRRAMクロスバー・アレイのワードラインは前記第1の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
    前記第2の層のRRAMクロスバー・アレイは2N-1個の前記ワードラインを通して前記第1の層のRRAMクロスバー・アレイのビットラインの出力端から前記第1の計算結果に対応する電圧信号を受け取り、前記第1の計算結果に対応する電圧信号および前記第2の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
    を行い、それによって中間計算結果に対応する電圧信号を取得し、
    は、前記第1の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
    は、前記第1の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
    は、前記第2の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
    前記第3の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第3の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第3の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは2進数で整数Nを表現するために要求される最小のビット数以上であり、
    前記第3の層のRRAMクロスバー・アレイは、前記第3の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第2の層のRRAMクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第3の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第2の計算結果に対応する電圧信号を取得する、請求項に記載のメモリデバイス。
  4. 前記第3の層のRRAMクロスバー・アレイの第jのワードラインは、前記第2の層のRRAMクロスバー・アレイの第jのビットラインに接続され、前記第3の層のRRAMクロスバー・アレイの第j行内の抵抗の抵抗値は、整数j+1の2進数表現に対応する、請求項に記載のメモリデバイス。
  5. 前記ブール・ベクトルAはブール行列Φのいずれかの行ベクトルであり、前記ブール・ベクトルBはブール行列Xのいずれかの列ベクトルであり、前記メモリデバイス内の複数の論理モジュールの各々は、前記ブール行列Φのいくつかの行ベクトルと前記ブール行列Xのいくつかの列ベクトルの点乗算演算の責任を負い、前記複数の論理モジュールは共同で前記ブール行列Φと前記ブール行列Xのブール行列乗算演算を実現する、請求項からのいずれか一項に記載のメモリデバイス。
  6. 前記プロセッサの命令はデータ読み取り/書き込み命令をさらに備え、各メモリユニットは、
    記憶モジュールであって、前記記憶モジュールは前記制御モジュールに接続され、前記制御モジュールは、前記データ読み取り/書き込み命令に従って、前記記憶モジュールを使用することによってデータ読み取り/書き込みを行う、記憶モジュールをさらに備える、請求項1からのいずれか一項に記載のメモリデバイス。
  7. 多層抵抗ランダム・アクセス・メモリ(RRAM)クロスバー・アレイに基づくデータ処理方法であって、前記多層RRAMクロスバー・アレイ内の抵抗の抵抗値はRonまたはRoffであり、Ronはブール値1を示し、Roffはブール値0を示し、前記多層RRAMクロスバー・アレイは、ブール・ベクトルAとブール・ベクトルBの点乗算演算を行うために使用され、AおよびBの各々はN次元ブール・ベクトルを示し、Nは2より小さくない正の整数であり、前記多層RRAMクロスバー・アレイ内の第1の層のRRAMクロスバー・アレイは、N行×N列を有する抵抗アレイを備え、前記第1の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第1の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第1の層のRRAMクロスバー・アレイのN個のビットラインは、N個の比較器回路を通して前記多層RRAMクロスバー・アレイ内の他の層のRRAMクロスバー・アレイにそれぞれ接続され、
    前記方法は、
    前記第1の層のRRAMクロスバー・アレイにより、前記第1の層のRRAMクロスバー・アレイのN個のワードラインによって入力された電圧信号および前記第1の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記N個のビットラインにおいてN個の電流信号を生成するステップであって、前記N個のワードラインのうちの第jのワードラインによって入力された電圧信号の電圧値は、Bjに対応する電圧値であり、前記第1の層のRRAMクロスバー・アレイにおける第j行内の抵抗の抵抗値は、Ajに対応する抵抗値であり、Bjはブール・ベクトルBの第jの要素であり、Ajはブール・ベクトルAの第jの要素であり、jの値は0からN-1までにわたる、ステップと、
    前記N個の比較器回路により、前記N個の電流信号をN個の電圧信号に変換し、前記N個の電圧信号を前記N個の比較器回路にそれぞれ対応する電圧閾値と比較し、それによって前記N個のビットラインの出力端は第1の計算結果に対応する電圧信号を出力するステップと
    前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第1の計算結果に対応する電圧信号を受け取り、前記第1の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って、第2の計算結果に対応する電圧信号を取得するステップと
    を備える、方法。
  8. 前記多層RRAMクロスバー・アレイは、少なくとも3つの層のRRAMクロスバー・アレイを備え、前記他の層のRRAMクロスバー・アレイは第2の層のRRAMクロスバー・アレイおよび第3の層のRRAMクロスバー・アレイを備え、
    前記第2の層のRRAMクロスバー・アレイは(2N-1)行×N列の抵抗アレイを備え、前記第2の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第2の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、前記第2の層のRRAMクロスバー・アレイのワードラインは前記第1の層のRRAMクロスバー・アレイのビットラインの出力端に接続され、
    前記第3の層のRRAMクロスバー・アレイはN行×n列の抵抗アレイを備え、前記第3の層のRRAMクロスバー・アレイにおける各行内の抵抗の入力端はワードラインに接続され、前記第3の層のRRAMクロスバー・アレイにおける各列内の抵抗の出力端はビットラインに接続され、nは2進数で整数Nを表現するために要求される最小のビット数以上であり、
    前記他の層のRRAMクロスバー・アレイにより、前記N個のビットラインの出力端から前記第1の計算結果に対応する電圧信号を受け取り、前記第1の計算結果に対応する電圧信号および前記他の層のRRAMクロスバー・アレイ内の抵抗の抵抗値に従って第2の計算結果に対応する電圧信号を取得するステップは、
    前記第2の層のRRAMクロスバー・アレイにより、2N-1個の前記ワードラインを通して前記第1の層のRRAMクロスバー・アレイのビットラインの出力端から前記第1の計算結果に対応する電圧信号を受け取り、前記第1の計算結果に対応する電圧信号および前記第2の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って論理演算
    を行い、それによって中間計算結果に対応する電圧信号を取得するステップであって、
    は、前記第1の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定であり、
    は、前記第1の層のRRAMクロスバー・アレイの第(j+1)のビットラインによって出力された電圧信号に対応するブール値であり、
    は、前記第2の層のRRAMクロスバー・アレイの第jのビットラインによって出力された電圧信号に対応するブール値の否定である、ステップと、
    前記第3の層のRRAMクロスバー・アレイにより、前記第3の層のRRAMクロスバー・アレイのN個のワードラインを通して前記第2の層のRRAMクロスバー・アレイのN個のビットラインから前記中間計算結果に対応する電圧信号を受け取り、前記中間計算結果に対応する電圧信号および前記第3の層のRRAMクロスバー・アレイにおける抵抗の抵抗値に従って前記中間計算結果をエンコードし、それによって前記第2の計算結果に対応する電圧信号を取得するステップと、
    を備える、請求項に記載の方法。
  9. 前記第1の計算結果は、N次元ブール・ベクトルであり、前記第1の計算結果の最初のK個の要素は1であり、残りの要素は0であり、KはAとBの点乗算の演算結果であり、前記第2の計算結果はKの2進数表現であり、
    前記N個の比較器回路のうちの第jの比較器回路は、一定の抵抗値の抵抗Rsおよび比較器を備え、前記抵抗Rsの一端は前記N個のビットラインのうちの第jのビットラインおよび比較器に接続され、前記抵抗Rsの他端は接地され、前記第jの比較器回路の電圧閾値はVr*gon*Rs*(2j+1)/2であり、Vrはブール値1に対応する電圧値を示し、gonはRonの逆数を示す、請求項またはに記載の方法。
JP2018537499A 2016-01-18 2016-01-18 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法 Active JP6702596B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/071254 WO2017124237A1 (zh) 2016-01-18 2016-01-18 内存设备及基于多层rram交叉阵列的数据处理方法

Publications (2)

Publication Number Publication Date
JP2019502225A JP2019502225A (ja) 2019-01-24
JP6702596B2 true JP6702596B2 (ja) 2020-06-03

Family

ID=59361091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018537499A Active JP6702596B2 (ja) 2016-01-18 2016-01-18 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法

Country Status (6)

Country Link
US (1) US10459724B2 (ja)
EP (1) EP3389051B1 (ja)
JP (1) JP6702596B2 (ja)
CN (1) CN108475522B (ja)
SG (1) SG11201805489YA (ja)
WO (1) WO2017124237A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10878317B2 (en) * 2017-09-11 2020-12-29 Samsung Electronics Co., Ltd. Method and system for performing analog complex vector-matrix multiplication
IT201700108281A1 (it) * 2017-09-27 2019-03-27 Milano Politecnico "circuito di risoluzione di problemi matematici comprendente elementi resistivi."
US11189345B2 (en) * 2018-01-22 2021-11-30 Institute of Microelectronics, Chinese Academy of Sciences Method for implementing logic calculation based on a crossbar array structure of resistive switching device
JP7070190B2 (ja) * 2018-07-18 2022-05-18 株式会社デンソー ニューラルネットワーク回路
US11328204B2 (en) 2018-07-24 2022-05-10 Sandisk Technologies Llc Realization of binary neural networks in NAND memory arrays
US11170290B2 (en) 2019-03-28 2021-11-09 Sandisk Technologies Llc Realization of neural networks with ternary inputs and binary weights in NAND memory arrays
US10643119B2 (en) * 2018-07-24 2020-05-05 Sandisk Technologies Llc Differential non-volatile memory cell for artificial neural network
US10643705B2 (en) 2018-07-24 2020-05-05 Sandisk Technologies Llc Configurable precision neural network with differential binary non-volatile memory cell structure
CN108763163B (zh) * 2018-08-02 2023-10-20 北京知存科技有限公司 模拟向量-矩阵乘法运算电路
US11410025B2 (en) * 2018-09-07 2022-08-09 Tetramem Inc. Implementing a multi-layer neural network using crossbar array
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
CN109327219B (zh) * 2018-10-18 2022-05-03 中国科学院微电子研究所 一种基于忆阻器rram的逻辑运算系统
US11636325B2 (en) 2018-10-24 2023-04-25 Macronix International Co., Ltd. In-memory data pooling for machine learning
CN109521995B (zh) * 2018-11-02 2023-05-12 上海交通大学 一种内嵌于忆阻器阵列的逻辑运算装置的计算方法
US11562229B2 (en) 2018-11-30 2023-01-24 Macronix International Co., Ltd. Convolution accelerator using in-memory computation
US11074318B2 (en) * 2018-12-14 2021-07-27 Western Digital Technologies, Inc. Hardware accelerated discretized neural network
US11934480B2 (en) * 2018-12-18 2024-03-19 Macronix International Co., Ltd. NAND block architecture for in-memory multiply-and-accumulate operations
US11114158B1 (en) * 2019-01-23 2021-09-07 Tetramem Inc. Reducing column switch resistance errors in RRAM-based crossbar array circuits
US20200349217A1 (en) * 2019-05-03 2020-11-05 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
IT201900014688A1 (it) * 2019-08-12 2019-11-12 Univ Degli Studi Di Modena E Reggio Emilia Metodo di lettura per circuiti del tipo Logic-in-Memory e relativa architettura circuitale
WO2021034264A1 (en) * 2019-08-22 2021-02-25 Quantumciel Pte. Ltd. Device, system and method for providing information security
US10726331B1 (en) 2019-08-26 2020-07-28 International Business Machines Corporation Neural network circuits providing early integration before analog-to-digital conversion
US11625586B2 (en) 2019-10-15 2023-04-11 Sandisk Technologies Llc Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays
US11568200B2 (en) 2019-10-15 2023-01-31 Sandisk Technologies Llc Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
JP6818116B1 (ja) * 2019-11-22 2021-01-20 ウィンボンド エレクトロニクス コーポレーション クロスバーアレイを用いた電子装置およびデータ処理方法
US11657259B2 (en) 2019-12-20 2023-05-23 Sandisk Technologies Llc Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
CN111478703B (zh) * 2020-04-14 2023-08-22 中国人民解放军国防科技大学 基于忆阻交叉阵列的处理电路及输出电流的补偿方法
US11397885B2 (en) 2020-04-29 2022-07-26 Sandisk Technologies Llc Vertical mapping and computing for deep neural networks in non-volatile memory
US11544547B2 (en) 2020-06-22 2023-01-03 Western Digital Technologies, Inc. Accelerating binary neural networks within latch structure of non-volatile memory devices
US11568228B2 (en) 2020-06-23 2023-01-31 Sandisk Technologies Llc Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
US11663471B2 (en) 2020-06-26 2023-05-30 Sandisk Technologies Llc Compute-in-memory deep neural network inference engine using low-rank approximation technique
US11544061B2 (en) * 2020-12-22 2023-01-03 International Business Machines Corporation Analog hardware matrix computation
CN113934398A (zh) * 2021-10-09 2022-01-14 广东工业大学 一种基于忆阻器的高效加法器和乘法器设计方法
CN114594819B (zh) * 2022-01-19 2023-12-05 之江实验室 可跟踪铁电电容工艺的自适应调节操作电压的电路和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2501932B2 (ja) 1990-03-19 1996-05-29 富士通株式会社 ニュ―ラルネットワ―クによる重心決定要素出力装置
JPH08212185A (ja) 1995-01-31 1996-08-20 Mitsubishi Electric Corp マイクロコンピュータ
JP2009117003A (ja) * 2007-11-09 2009-05-28 Toshiba Corp 不揮発性メモリ装置のデータ読み出し方法
JP5197427B2 (ja) * 2008-08-25 2013-05-15 株式会社東芝 半導体記憶装置
KR101583717B1 (ko) 2009-01-13 2016-01-11 삼성전자주식회사 저항 메모리 장치의 제조방법
CN102169720B (zh) * 2010-02-25 2014-04-02 复旦大学 一种消除过写、误写现象的电阻随机存储器
US8675391B2 (en) * 2010-04-19 2014-03-18 Hewlett-Packard Development Company, L.P. Refreshing memristive systems
CN102412827B (zh) 2011-11-02 2014-06-11 北京大学 利用rram器件实现逻辑运算的方法
JP2014081842A (ja) 2012-10-17 2014-05-08 Sharp Corp 演算装置
US8982647B2 (en) * 2012-11-14 2015-03-17 Crossbar, Inc. Resistive random access memory equalization and sensing
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
US9846644B2 (en) * 2013-01-14 2017-12-19 Hewlett Packard Enterprise Development Lp Nonvolatile memory array logic
CN104240753B (zh) 2013-06-10 2018-08-28 三星电子株式会社 突触阵列、脉冲整形电路和神经形态系统
US9489997B2 (en) * 2013-07-03 2016-11-08 Crossbar, Inc. Hardware assisted meta data lookup
CN103716038B (zh) 2013-12-25 2016-05-25 华中科技大学 一种基于相变存储器的非易失性逻辑门电路
US10025704B2 (en) * 2013-12-27 2018-07-17 Crossbar, Inc. Memory system including PE count circuit and method of operating the same
US20150213884A1 (en) * 2014-01-30 2015-07-30 University Of Dayton Partitioned resistive memory array
CN104124960B (zh) * 2014-06-20 2018-02-23 华中科技大学 一种非易失性布尔逻辑运算电路及其操作方法
US10008264B2 (en) 2014-10-23 2018-06-26 Hewlett Packard Enterprise Development Lp Memristive cross-bar array for determining a dot product

Also Published As

Publication number Publication date
SG11201805489YA (en) 2018-07-30
EP3389051A4 (en) 2019-01-09
WO2017124237A1 (zh) 2017-07-27
CN108475522B (zh) 2020-12-15
JP2019502225A (ja) 2019-01-24
CN108475522A (zh) 2018-08-31
EP3389051B1 (en) 2020-09-09
US20180321942A1 (en) 2018-11-08
US10459724B2 (en) 2019-10-29
EP3389051A1 (en) 2018-10-17

Similar Documents

Publication Publication Date Title
JP6702596B2 (ja) 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法
US20220374688A1 (en) Training method of neural network based on memristor and training device thereof
Long et al. ReRAM-based processing-in-memory architecture for recurrent neural network acceleration
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
US10346347B2 (en) Field-programmable crossbar array for reconfigurable computing
Ni et al. An energy-efficient matrix multiplication accelerator by distributed in-memory computing on binary RRAM crossbar
CN109146070B (zh) 一种支撑基于rram的神经网络训练的外围电路及系统
Ni et al. Distributed in-memory computing on binary RRAM crossbar
KR20210096679A (ko) 인코딩된 데이터를 디코딩하기 위한 신경망 및 시스템
CN111478703B (zh) 基于忆阻交叉阵列的处理电路及输出电流的补偿方法
CN112686364B (zh) 一种神经网络计算芯片及计算方法
Singh et al. Low-power memristor-based computing for edge-ai applications
Zhang et al. PIMCA: A programmable in-memory computing accelerator for energy-efficient DNN inference
CN113157248A (zh) 存内处理(pim)系统和pim系统的操作方法
Tsai et al. RePIM: Joint exploitation of activation and weight repetitions for in-ReRAM DNN acceleration
CN112182495A (zh) 一种基于忆阻器的二元域矩阵运算电路
Alam et al. Stochastic computing in beyond von-neumann era: Processing bit-streams in memristive memory
Zhang et al. A practical highly paralleled ReRAM-based DNN accelerator by reusing weight pattern repetitions
EP4086816A1 (en) Neural network circuit and neural network system
CN114626514A (zh) 一种神经网络计算装置及计算方法
US11163534B2 (en) Arithmetic device
CN113537478A (zh) 一种计算装置及神经网络系统
TWI788128B (zh) 記憶體裝置及其操作方法
US20230161557A1 (en) Compute-in-memory devices and methods of operating the same
WO2024032220A1 (zh) 基于存算一体电路的神经网络补偿方法、装置及电路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200427

R150 Certificate of patent or registration of utility model

Ref document number: 6702596

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250