JP7279293B2 - メモリデバイスおよびその動作方法 - Google Patents

メモリデバイスおよびその動作方法 Download PDF

Info

Publication number
JP7279293B2
JP7279293B2 JP2021136884A JP2021136884A JP7279293B2 JP 7279293 B2 JP7279293 B2 JP 7279293B2 JP 2021136884 A JP2021136884 A JP 2021136884A JP 2021136884 A JP2021136884 A JP 2021136884A JP 7279293 B2 JP7279293 B2 JP 7279293B2
Authority
JP
Japan
Prior art keywords
multiplication
bit
grouping
input data
memory device
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
JP2021136884A
Other languages
English (en)
Other versions
JP2022045333A (ja
Inventor
フ ハン-ウェン
リー ユン-チュン
リン ボ-ロン
ワン フアイ-ム
Original Assignee
旺宏電子股▲ふん▼有限公司
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 旺宏電子股▲ふん▼有限公司 filed Critical 旺宏電子股▲ふん▼有限公司
Publication of JP2022045333A publication Critical patent/JP2022045333A/ja
Application granted granted Critical
Publication of JP7279293B2 publication Critical patent/JP7279293B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/40Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using contact-making devices, e.g. electromagnetic relay
    • G06F7/44Multiplying; Dividing
    • G06F7/443Multiplying; Dividing by successive additions or subtractions
    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • 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
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/607Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/065Differential amplifiers of latching type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/067Single-ended amplifiers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/06Sense amplifier related aspects
    • G11C2207/063Current sense amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Nonlinear Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Electromagnetism (AREA)
  • Logic Circuits (AREA)
  • Complex Calculations (AREA)

Description

本開示は、一般的には、イン・メモリ・コンピューティング型のメモリデバイスおよびその動作方法に関する。
人工知能(「AI」)は、近年、多くの分野で非常に効果的なソリューションとして台頭してきている。AIの重要な問題点は、AIには大量の入力データ(例えば、入力フィーチャーマップ)と、積和(MAC)を行うための重みが含まれていることである。
しかしながら、現在のAI構造では、通常、IO(入力/出力)のボトルネックや非効率なMAC演算フローが発生してしまう。
そこで高精度を実現するためには、複数ビットの入力と複数ビットの重みを有するMAC演算を行うことになる。しかし、IOボトルネックが悪化し、また効率が低下する。
イン・メモリ・コンピューティング(「IMC」)は、プロセス中心アーキテクチャにおける複雑な算術論理演算装置(ALU)を削減し、かつメモリ上でのMAC演算の大規模な並列処理を提供し得るため、MAC演算を高速化することができる。
不揮発性IMC(NVMベースのIMC)の利点は、不揮発性ストレージやデータ移動の削減に因る。しかしながら、NVMベースのIMCの課題としては、重み付け後の合計電流が大きくなることによる電力バジェットの多大な要件、最上位ビット(MSB)を表すためのエラービットの作用、区別不可な複数の電流合計結果、ならびに消費電力とチップサイズの増加につながる多数のADC/DACがあげられる。
「コンピューティング・イン・メモリチップおよびメモリセルアレイ構造」と題された米国特許出願公開第20210151106号明細書では、コンピューティング・イン・メモリチップおよびメモリセルアレイ構造において、その中のメモリセルアレイがアレイ状に配置された複数のメモリセルサブアレイを備えることが開示されている。各メモリセルサブアレイは、複数のスイッチユニットと、アレイ状に配置された複数のメモリセルとを有し、各列のすべてのメモリセルの第1の端子はソース線に接続され、すべてのメモリセルの第2の端子はビット線に接続され、各行のすべてのメモリセルの第3の端子はスイッチユニットを介してワード線に接続され、複数のメモリセル行は複数のスイッチユニットに対応して接続され、複数のスイッチユニットの制御端子はメモリセルサブアレイのローカルワード線に接続され、このメモリセルセブアレイを活性化するか否かは、ローカルワード線を制御することにより制御される。
一実施形態によれば、複数の重みを記憶するための複数のメモリセルを有するメモリアレイと、このメモリアレイに結合され複数の入力データおよび重みに対してビット単位の乗算を行って複数の乗算結果を生成する乗算回路と、この乗算回路に結合され乗算結果に対してビット単位の計数を行ってMAC(積和)演算結果を生成する計数ユニットとを備えるメモリデバイスが提供される。
別の実施形態によれば、メモリデバイスの動作方法が提供される。本動作方法は、メモリデバイスのメモリアレイの複数のメモリセルに複数の重みを記憶する段階と、複数の入力データおよび重みに対してビット単位の乗算を行って、複数の乗算結果を生成する段階と、乗算結果に対してビット単位の計数を行って、MAC(積和)演算結果を生成する段階とを備える。
本願の一実施形態に係るIMC(イン・メモリ・コンピューティング)メモリデバイスの機能ブロック図を示す。
本願の一実施形態に係るデータマッピングを示す。
本願の実施形態に係るデータマッピングの可能な例を示す。 本願の実施形態に係るデータマッピングの可能な例を示す。 本願の実施形態に係るデータマッピングの可能な例を示す。
本願の一実施形態の乗算演算の例を示す。 本願の一実施形態の乗算演算の例を示す。
本願の一実施形態に係るグルーピング演算(多数決演算)および計数を示す。 本願の一実施形態に係るグルーピング演算(多数決演算)および計数を示す。
先行技術と本願の一実施形態とを比較したMAC演算フローを示す。
本願の一実施形態における固定メモリページのプログラミングを示す。 本願の一実施形態における読み出し電圧調整のフローチャートを示す。
本願の一実施形態に係るMAC演算フローを示す。
下記の詳細な記載においては、説明を目的として、開示された実施形態の完全な理解を提供するために、多数の具体的な詳細が記載される。なお、これらの具体的な詳細がなくても、1つまたは複数の実施形態を実施し得ることは明らかであろう。他の例では、図面を簡略化するために、よく知られた構造や装置を模式的に示している。
本開示の技術用語は、本開示の技術分野における一般的な定義に基づくものとする。ただし、本開示に1つまたはいくつかの用語が記載または説明されている場合、それら用語の定義は、本開示の記載または説明に基づくものとする。本開示の各実施形態は、1つまたは複数の技術的特徴を有する。可能な実施においては、当業者であれば、本開示の任意の実施形態の一部またはすべての技術的特徴を選択的に実施するか、または本開示の実施形態の一部またはすべての技術的特徴を選択的に組み合わせるであろう。
図1は、本願の一実施形態に係るIMC(イン・メモリ・コンピューティング)メモリデバイス100の機能ブロック図を示している。IMCメモリデバイス100は、メモリアレイ110、乗算回路120、入出力回路130、グルーピング回路140、および計数ユニット150を備える。メモリアレイ110および乗算回路120はアナログであり、一方、グルーピング回路140および計数ユニット150はデジタルである。
メモリアレイ110は、複数のメモリセル111を有する。本願の一実施形態では、メモリセル111は、例えば、不揮発性のメモリセルであるが、これに限定されない。MAC演算では、メモリセル111は、重みを記憶するのに使用される。
乗算回路120は、メモリアレイ110に結合される。乗算回路120は、複数のシングルビット乗算ユニット121を有する。シングルビット乗算ユニット121のそれぞれは、入力ラッチ121A、センシングアンプ(SA)121B、出力ラッチ121C、共通データラッチ(CDL)121Dを含む。入力ラッチ121Aは、メモリアレイ110に結合される。センシングアンプ121Bは、入力ラッチ121Aに結合される。出力ラッチ121Cは、センシングアンプ121Bに結合される。共通データラッチ121Dは、出力ラッチ121Cに結合される。
入出力回路130は、乗算回路120、グルーピング回路140、および計数ユニット150に結合される。入出力回路130は、入力データを受信し、メモリデバイス100により生成されたデータを出力するためのものである。
グルーピング回路140は、乗算回路120に結合される。グルーピング回路140は、複数のグルーピングユニット141を有する。グルーピングユニット141は、シングルビット乗算ユニット121からの複数の乗算結果に対してグルーピング演算を行って、複数のグルーピング結果を生成する。本願の可能な一実施形態では、グルーピング技法は、例えば、多数決関数技法などの多数決技法によって実施可能であり、グルーピング回路140は、多数決関数技法に基づく多数決グルーピング回路によって実施可能であり、またグルーピングユニット141は、分散型多数決グルーピングユニットによって実施可能であるが、これは本願を限定することを意図するものではない。グルーピング技法は、他の類似な技法により実施されてもよい。本願の一実施形態では、グルーピング回路140は任意である。
計数ユニット150は、グルーピング回路140または乗算回路120に結合される。本願の一実施形態では、計数ユニット150は、乗算回路からの乗算結果に対してビット単位の計数またはビット単位の累積を行って、MAC演算結果を生成するためのものである(メモリデバイス100がグルーピング回路140を含まない場合)。あるいは、計数ユニット150は、グルーピング回路140からのグルーピング結果(すなわち、多数決結果)に対してビット単位の計数またはビット単位の累積を行って、MAC演算結果を生成するためのものである(メモリデバイス100がグルーピング回路140を含む場合)。本願の一実施形態では、計数ユニット150は、限定されるわけではないが、例えば、リップルカウンタなどの既知の計数回路によって実施される。本願では、「計数」と「累積」という用語は交換可能であり、カウンタおよびアキュムレータは実質的に同じ意味を持つ。
以下、本願の一実施形態に係るデータマッピングを示す図2を参照する。図2に示すように、各入力データおよび各重みは、8ビット精度のN次元(Nは正の整数)を有するが、本願はこれに限定されない。
入力データのデータマッピングを例に挙げて説明したが、本願はこれに限定されない。以下の記載は、重みのデータマッピングにも適している。
入力データ(または重み)が2進数8ビット形式で表される場合、入力データ(または重み)は最上位ビット(MSB)ベクトルと最下位ビット(LSB)ベクトルとを含む。8ビットの入力データ(または重み)のMSBベクトルは、ビットB7~B4を含み、8ビットの入力データ(または重み)のLSBベクトルは、ビットB3~B0を含む。
入力データのMSBベクトルとLSBベクトルの各ビットは、単進符号(バリュー形式)で表される。例えば、入力データのMSBベクトルのビットB7はB7~B7として表され得るものであり、入力データのMSBベクトルのビットB6はB6~B6として表され得るものであり、入力データのMSBベクトルのビットB5はB5、B5として表され得るものであり、また入力データのMSBベクトルのビットB4はB4として表され得る。
次いで、入力データのMSBベクトルの各ビットと、単進符号(バリュー形式)で表された入力データのLSBベクトルの各ビットとをそれぞれ複数回複製して、展開ドット積(unFDP)形式にする。例えば、入力データのMSBベクトルをそれぞれ(2-1)倍ずつ複製し、同様に入力データのLSBベクトルをそれぞれ(2-1)倍ずつ複製する。そうすることで、入力データはunFDP形式で表される。同様に、重みもunFDP形式で表される。
乗算演算は、入力データ(unFDP形式)および重み(unFDP形式)に対して行われ、複数の乗算結果を生成する。
なお、理解のために、データマッピングの一例を説明するが、本願はそれによって限定されるものではない。
以下、本願の一実施形態に係る1次元のデータマッピングの可能な一例を示す図3Aを参照する。図3Aに示すように、入力データは(IN,IN)=(2,1)であり、重みは(We,We)=(1,2)である。入力データのMSBおよびLSBは2進法形式で表され、これによりIN=10であるのに対して、IN=01である。同様に、重みのMSBおよびLSBも2進法形式で表され、これによりWe=01であるのに対して、We=10である。
次いで、入力データのMSBおよびLSB、ならびに重みのMSBおよびLSBを単進符号(バリュー形式)に符号化する。例えば、入力データのMSBは「110」に符号化され、一方、入力データのLSBは「001」に符号化される。同様に、重みのMSBは「001」に符号化され、一方、重みのLSBは「110」に符号化される。
次いで、入力データのMSBの各ビット(110、単進符号に符号化)および入力データのLSBの各ビット(001、単進符号に符号化)を複数回複製し、unFDP形式で表す。例えば、入力データのMSBの各ビット(110、バリュー形式で表記)は、3回複製されて、これにより入力データのunFDP形式のMSBは111111000となる。同様に、入力データのLSBの各ビット(001、バリュー形式で表記)も、3回複製されて、これにより入力データのunFDP形式のLSBは000000111となる。
乗算演算を入力データ(unFDP形式で表記)および重み(unFDP形式で表記)に対して行い、MAC演算結果を生成する。MAC演算結果は、1×0=0、1×0=0、1×1=1、1×0=0、1×0=0、1×1=1、0×0=0、0×0=0、0×1=0、0×1=0、0×1=0、0×0=0、0×1=0、0×1=0、0×0=0、1×1=1、1×1=1、1×0=0である。これらの値は合計されて、0+0+1+0+0+1+0+0+0+0+0+0+0+0+0+1+1+0=4になる。
以上の記載から、入力データが「i」ビットであり、一方、重みが「j」ビット(「i」、「j」ともに正の整数)である場合、MAC(または乗算)演算に使用されるメモリセルの総数は(2-1)×(2-1)となる。
以下、本願の一実施形態に係るデータマッピングの可能な他の例を示す図3Bを参照する。図3Bに示すように、入力データは、(IN)=(2)であり、重みは(We)=(1)である。入力データおよび重みは、4ビットである。
入力データを2進法形式で表すことにより、IN=0010となる。同様に、重みも2進法形式で表すことにより、We=0001となる。
入力データおよび重みは、単進符号(バリュー形式)に符号化される。例えば、入力データの最高位ビット「0」は「00000000」に符号化され、一方、入力データの最低位ビット「0」は「0」に符号化される等である。同様に、重みの最高位ビット「0」は「00000000」に符号化され、一方、重みの最低位ビット「1」は「1」に符号化される。
次いで、入力データの各ビット(単進符号に符号化)を複数回複製し、unFDP形式で表す。例えば、入力データの最高位ビット301A(単進符号に符号化)は、15回複製されてビット303Aとなり、一方、入力データの最低位ビット301B(単進符号に符号化)は、15回複製されてビット303Bとなる。
重み302(単進符号に符号化)を15回複製して、unFDP形式で表す。
乗算演算を入力データ(unFDP形式で表記)および重み(unFDP形式で表記)に対して行って、MAC演算結果を生成する。詳しくは、入力データのビット303Aに重み302を乗算し、入力データのビット303Bに重み302を乗算する等である。MAC演算結果(「2」)は、乗算値を加算して生成される。
以下、本願の一実施形態に係るデータマッピングの可能な他の例を示す図3Cを参照する。図3Cに示すように、入力データは、(IN)=(1)であり、重みは(We)=(5)である。入力データおよび重みは、4ビットである。
入力データを2進法形式で表すことにより、IN=0001となる。同様に、重みも2進法形式で表すことにより、We=0101となる。
次いで、入力データおよび重みを単進符号(バリュー形式)に符号化する。
そして、入力データの各ビット(単進符号に符号化)を複数回複製して、unFDP形式で表す。図3Cでは、入力データの各ビットおよび重みの各ビットを複製する際に、ビット「0」が加算される。例えば、入力データの最高位ビット311A(単進符号に符号化)は、15回複製されて、ビット「0」が加算されてビット313Aを形成し、一方、入力データの最低位ビット311B(単進符号に符号化)は、15回複製されて、ビット「0」が加算されてビット313Bを形成する。そうすることで、入力データがunFDP形式で表される。
同様に、重み312(単進符号に符号化)を15回複製し、ビット「0」をそれぞれに追加的に加算して重み314のそれぞれとする。そうすることで、重みがunFDP形式で表される。
入力データ(unFDP形式で表記)および重み(unFDP形式で表記)に対して乗算演算を行って、MAC演算結果を生成する。詳しくは、入力データのビット313Aに重み314を乗算し、入力データのビット313Bに重み314を乗算する等である。MAC演算結果(「5」)は、乗算値を加算して生成される。
先行技術では、8ビットの入力データおよび8ビットの重みに対するMAC演算において、ダイレクトMAC演算を使用する場合、このダイレクトMAC演算で使用されるメモリセルの総数は255×255×512=33,292,822となる。
これに対して、本願の一実施形態では、8ビットの入力データおよび8ビットの重みに対するMAC演算において、ダイレクトMAC演算で使用されるメモリセルの総数は15×15×512×2=115,200×2=230,400となる。このように、本願の一実施形態に係るMAC演算で使用されるメモリセル数は、先行技術で使用されるメモリセル数の約0.7%である。
本願の一実施形態では、unFDPベースのデータマッピングを使用することにより、MAC演算で使用されるメモリセル数が減少し、これによって演算コストも削減される。さらに、ECC(誤り訂正符号)のコストも削減され、フェイルビット効果の許容度が向上する。
再度、図1を参照する。本願の一実施形態では、乗算演算において、重み(トランスコンダクタンス)をメモリアレイ110のメモリセル111に記憶させ、入力データ(電圧)を入出力回路130により記憶し読み出して共通データラッチ121Dに送信する。共通データラッチ121Dは、入力データを入力ラッチ121Aに出力する。
ここで、本願の一実施形態の乗算演算を説明するために、本願の一実施形態の乗算演算の2つの例を示す図4Aおよび図4Bを参照する。図4Aは、メモリデバイスが選択されたビット線読み出し機能をサポートしている場合に使用され、図4Bは、メモリデバイスが選択されたビット線読み出し機能をサポートしていない場合に使用される。図4Aでは、入力ラッチ121Aは、ラッチ(第1のラッチ)405と、ビット線スイッチ410とを含み、図4Bでは、入力ラッチ121Aは、ラッチ(第2のラッチ)415と、論理ANDゲート420とを含む。
図4Aに示すように、重みは、図2に示すような単進符号(バリュー形式)に表される。このように、重みの最高位ビットは8つのメモリセル111に記憶され、重みの2番目の高位ビットは4つのメモリセル111に記憶され、重みの3番目の高位ビットは2つのメモリセル111に記憶され、重みの最低位ビットは1つのメモリセル111に記憶される。
同様に、入力データは、単進符号(バリュー形式)で表される(図2に示すように)。このように、入力データの最高位ビットは8つの共通データラッチ121Dに記憶され、入力データの2番目の高位ビットは4つの共通データラッチ121Dに記憶され、入力データの3番目の高位ビットは2つの共通データラッチ121Dに記憶され、入力データの最低位ビットは1つの共通データラッチ121Dに記憶される。入力データは、共通データラッチ121Dからラッチ405に送信される。
図4Aでは、複数のビット線スイッチ410は、メモリセル111とセンシングアンプ121Bとの間に結合される。ビット線スイッチ410は、ラッチ405の出力によって制御される。例えば、ラッチ405がビット「1」を出力する場合、ビット線スイッチ410が導通し、一方、ラッチ405がビット「0」を出力する場合、ビット線スイッチ410が切断される。
さらに、メモリセル111に記憶されている重みがビット1であり、ビット線スイッチ410が導通している場合(すなわち、入力データがビット1である場合)、SA 121Bはメモリセル電流を検知して乗算結果「1」を生成する。メモリセル111に記憶されている重みがビット0であり、ビット線スイッチ410が導通している場合(すなわち、入力データがビット1である場合)、SA 121Bはメモリセル電流を検知しない。メモリセル111に記憶されている重みがビット1であり、ビット線スイッチ410が切断されている場合(すなわち、入力データがビット0である場合)、SA 121Bはメモリセル電流を検知しない(乗算結果「0」を生成する)。メモリセル111に記憶されている重みがビット0であり、ビット線スイッチ410が切断されている場合(すなわち、入力データがビット0である場合)、SA 121Bはメモリセル電流を検知しない。
すなわち、入力データがビット1であり、重みがビット1である場合、図4Aに示すレイアウトを介して、SA 121Bはメモリセル電流を検知する(乗算結果「1」を生成する)。他の状況では、SA 121Bは、メモリセル電流を検知しない(乗算結果「0」を生成する)。
図4Bでは、入力データを共通データラッチ121Dからラッチ415に送信する。論理ANDゲート420の一方の入力は、SA 121Bの検知結果(すなわち、重み)を受信し、論理ANDゲート420の他方の入力は、ラッチ415の出力ビット(すなわち、入力データ)を受信する。メモリセル111に記憶されている重みがビット1の場合、SA 121Bの検知結果はロジックハイ(すなわち、SA 121Bがメモリセル電流を検知している)であり、メモリセル111に記憶されている重みがビット0の場合、SA 121Bの検知結果はロジックロー(すなわち、SA 121Bはメモリセル電流を検知していない)である。
ラッチ415がビット1を出力し(すなわち、入力データがビット1であり)、SA 121Bの検知結果がロジックハイ(すなわち、重みがビット1である)である場合、論理ANDゲート420は、ビット1をグルーピング回路140または計数ユニット150に出力する(乗算結果「1」を生成する)。他の状況では、論理ANDゲート420は、ビット「0」をグルーピング回路140または計数ユニット150に出力する(乗算結果「0」を生成する)。
図4Bに示す実施形態は、不揮発性メモリおよび揮発性メモリの両方に適用される。
本願の一実施形態では、乗算演算において、選択されたビット線リード(SBL-read)コマンドを再利用して、シングルビット表現による変動影響を低減し得る。
以下、本願の一実施形態に係るグルーピング演算(多数決演算)とビット単位の計数とを示す、図5Aを参照する。図5Aに示すように、「GM1」とは、入力データの第1のMSBベクトルに重みをビット単位で乗算して得られた第1の乗算結果を指し、「GM2」とは、入力データの第2のMSBベクトルに重みをビット単位で乗算して得られた第2の乗算結果を指し、「GM3」とは、入力データの第3のMSBベクトルに重みをビット単位で乗算して得られた第3の乗算結果を指し、「GL」とは、入力データのLSBベクトルに重みをビット単位で乗算して得られた第4の乗算結果を指す。グルーピング演算(多数決演算)の後、第1の乗算結果「GM1」に対して行われたグルーピング結果は、第1のグルーピング結果CB1(その累積重みは2である)となり、第2の乗算結果「GM2」に対して行われたグルーピング結果は、第2のグルーピング結果CB2(その累積重みは2である)となり、第3の乗算結果「GM3」に対して行われたグルーピング結果は、第3のグルーピング結果CB3(その累積重みは2である)となり、第4の乗算結果「GL」に対して行われたダイレクト計数結果は、第4のグルーピング結果CB4(その累積重みは2である)となる。
図5Bは、図3Cの1つの累積例を示す。図3Cおよび図5Bを参照する。図5Bに示すように、入力データ(図3Cにおける)の複数ビット313Bに重み314を乗算する。入力データ(図3Cにおける)の複数ビット313Bに重み314を乗算することにより生成された、乗算結果の最初の4ビット(「0000」)は、第1の乗算結果「GM1」としてグループ化される。同様に、入力データ(図3Cにおける)の複数ビット313Bに重み314を乗算することにより生成された、乗算結果の5番目~8番目のビット(「0000」)は、第2の乗算結果「GM2」としてグループ化される。入力データ(図3Cにおける)の複数ビット313Bに重み314を乗算することにより生成された、乗算結果の9番目~12番目のビット(「1111」)は、第3の乗算結果「GM3」としてグループ化される。入力データ(図3Cにおける)の複数ビット313Bに重み314を乗算することにより生成された、乗算結果の13番目~16番目のビット(「0010」)は、直接計数される。
グルーピング演算(多数決演算)の後、第1のグルーピング結果CB1は「0」(その累積重みは2)となり、第2のグルーピング結果CB2は 「0」(その累積重みは2)となり、第3のグルーピング結果CB3は「1」(その累積重みは2)となる。計数においては、MAC結果は、各累積重みで乗算された各グルーピング結果CB1~CB4を累積することにより生成される。例えば、図5Bに示すように、MAC結果は、CB1×2+CB2×2+CB3×2+CB4×2=0×2+0×2+1×2+1×2=0000 0000 0000 0000 0000 0000 0000 0101=5である。
本願の一実施形態では、グルーピングの原則(例えば、多数決の原則)は以下の通りである。
Figure 0007279293000001
上記の表では、ケースAにおいて、グループが正しいビット(エラービットがないことを意味する、「1111」)を有するので、多数決結果は、1となる。同様に、上記の表では、ケースEにおいて、グループが正しいビット(エラービットがないことを意味する、「0000」)を有するので、多数決結果は、0となる。
ケースBにおいて、グループが1つのエラービット(「1110」のうち、ビット「0」がエラー)を有するため、多数決関数によりグループ「1110」は「1」と判定される。ケースDにおいて、グループが1つのエラービット(「0001のうち、ビット「1」がエラー)を有するため、多数決関数によりグループ「0001」は「0」と判定される。
ケースCにおいて、グループが2つのエラービット(「1100」のうち、ビット「00」または「11」がエラー)を有するため、多数決関数によりグループ「1100」は「1」または「0」と判定される。
このように、本願の一実施形態では、グルーピング(多数決)関数により、エラービットが削減される。
グルーピング回路140から得られた多数決結果は、ビット単位で計数するための計数ユニット150に入力される。
計数においては、MSBベクトルの乗算結果に対する計数結果とLSBベクトルの乗算結果に対する計数結果とを加算または累積する。図5Aに示すように、2つのアキュムレータが使用される。第1のアキュムレータには、重い累積重み(例えば2)が割り当てられる。第1のアキュムレータは、(1)乗算結果GM1に対して、グルーピング演算(多数決演算)を行って得られたグルーピング結果(多数決結果)(1ビットを有する)を、(2)乗算結果GM2に対して、グルーピング演算(多数決演算)を行って得られたグルーピング結果(多数決結果)(1ビットを有する)を、(3)乗算結果GM3に対して、グルーピング演算(多数決演算)を行って得られたグルーピング結果(多数決結果)(1ビットを有する)を累積する。第1のアキュムレータにより得られる累積結果は、重い累積重み(例えば2)が割り当てられる。第2のアキュムレータには、軽い累積重み(例えば2)が割り当てられる。第2のアキュムレータは、乗算結果GL(複数ビットを有する)を直接累積する。これら2つのアキュムレータによる2つの累積結果が加算され、MAC演算結果が出力される。例えば、これらに限定されないが、(1)乗算結果GM1に対してグルーピング(多数決)演算を行って得たグルーピング結果(多数決結果)(1ビットを有する)が「1」(1ビット)であり、(2)乗算結果GM2に対してグルーピング(多数決)演算を行ったグルーピング結果(多数決結果)(1ビットを有する)が「0」(1ビット)あり、ならびに(3)乗算結果GM3に対してグルーピング(多数決)演算を行ったグルーピング結果(多数決結果)(1ビットを有する)が「1」(1ビット)である。重み付け後の第1アキュムレータによる累積結果は、2(=1+0+1)×2=8である。乗算結果GLは、4(3ビットを有する)である。MAC演算結果は、8+4=12となる。
以上より、本願の一実施形態では、計数または累積において、入力データはunFDP形式であり、CDLに記憶されたデータは、MSBベクトルおよびLSBベクトルにグループ化される。グルーピング(多数決)関数により、MSBベクトルおよびLSBベクトルにおけるエラービットが削減される。
さらに、本願の一実施形態では、従来のアキュムレータ(従来のカウンタ)を使用しても、計数や累積にかかる時間的コストも削減される。これは、本願の一実施形態ではデジタルカウントコマンド(エラービットカウント)が適用され、異なるベクトル(MSBベクトルおよびLSBベクトル)は異なる累積重みが割り当てられるためである。可能な一例では、累積演算にかかる時間的コストが約40%にまで削減される。
図6は、先行技術と本願の一実施形態とを比較したMAC演算フローを示す。先行技術および本願の一実施形態のMAC演算フローでは、入力データがメモリデバイスに送信される。ビット線設定およびワード線設定は同時に行われる。ビット線設定の後、検知が行われる。次いで、累積が行われる。累積結果が戻される。以上のステップを、すべての入力データを処理するまで繰り返す。
図6より、本願の実施形態におけるMAC演算は、2種類のサブ演算を有する。第1のサブ演算は、選択されたビット線読み出しコマンドに基づいて、入力データと重みを乗算するための乗算である。第2のサブ演算は、累積(データカウント)、特にフェイルビットカウントである。本願の他の可能な実施形態では、より多くの計数ユニットを使用して、計数または累積演算を高速化し得る。
本願の一実施形態では、先行技術と比較して、累積演算がより速いため、MAC演算もより速い。
さらにまた、本願の一実施形態では、読み出し電圧も調整される。図7Aは、本願の一実施形態における固定メモリページのプログラミングを示す。図7Bは、本願の一実施形態における読み出し電圧調整のフローチャートを示す。
図7Aに示すように、ステップ710では、既知の入力データが固定メモリページにプログラムされ、ここで、この既知の入力データのビットレートは、ビット「0」が50%およびビット「1」が50%である。
図7Bに示すように、ステップ720では、固定メモリページが読み込まれ、ビット「1」のビットレートが計数される。ステップ730では、ビット「1」のビットレートが50%に近いかどうかを判定する。ステップ730においてNOの場合、フローはステップ740に進む。ステップ730においてYESの場合、フローはステップ750に進む。
ステップ740では、ビット「1」のビットレートが50%より小さい場合、読み出し電圧を増加させ、一方、ビット「1」のビットレートが50%より大きい場合、読み出し電圧を減少させる。ステップ740の後では、フローはステップ720に戻る。
ステップ750では、その後の読み出し動作のために、現在の読み出し電圧が記録される。
読み出し電圧は、ビット1の読み出しに影響を与え得る。本願の一実施形態では、演算条件(例えば、これらに限定されないが、プログラミングサイクル、温度、または読み出し妨害)に基づいて、高精度かつ高信頼性を維持するために読み出し電圧を定期的に較正してもよい。
図8は、本願の一実施形態に係るMAC演算フローを示す。ステップ810では、読み出し電圧を定期的にチェックする。読み出し電圧を較正しようとする場合は、図7Bのフローに従って読み出し電圧が較正される。
ステップ820では、入力データを共通データラッチ121Dに記憶する。
ステップ830では、入力データを共通データラッチ121Dから入力ラッチ121Aに転送する。
ステップ840では、選択されたビット線読み出しコマンドが有効(サポートされている)か、選択されたビット線読み出しコマンドが有効でない(サポートされていない)かのいずれかにおいて、乗算演算を行う。
ステップ850では、累積を行う。
ステップ860では、MAC演算結果を(例えば、入出力回路30を介して)出力する。
本願の一実施形態は、NAND型フラッシュメモリ、または保持力や熱変動に敏感なメモリデバイス、例えば、これらに限定されないが、NOR型フラッシュメモリ、相変化メモリ、磁気RAM、または抵抗RAMなどに適用される。
本願の一実施形態は、3D構造のメモリデバイスおよび2D構造のメモリデバイス、例えば、これらに限定されないが、2D/3D NAND型フラッシュメモリ、2D/3D NOR型フラッシュメモリ、2D/3D 相変化メモリ、2D/3D 磁気RAM、または2D/3D 抵抗RAMなどに適用される。
なお、本願の実施形態では、入力データおよび/または重みをMSBベクトルおよびLSBベクトル(すなわち、2つのベクトル)に分割しているが、本願はこれに限定されない。本願の他の可能な実施形態では、入力データおよび/または重みをより多くのベクトルに分割しているが、これも本願の趣旨および範囲内である。
本願の実施形態は、多数決のグルーピング技法だけでなく、他のグルーピング技法にも適用し、累積を高速化させる。
本願の実施形態は、AI技術であり、例えば、これに限定されないが、顔認証である。
なお、本開示の実施形態において様々な変更や変形が可能であることは、当業者にとっては明らかであろう。本明細書および実施例は例示的なものとしてのみ考えられ、本開示の真の範囲は以下の特許請求の範囲およびそれらの等価物によって示されることが意図される。

Claims (16)

  1. 複数の重みを記憶するための複数のメモリセルを有するメモリアレイと、
    前記メモリアレイに結合され、複数の入力データおよび前記複数の重みに対してビット単位の乗算を行って、複数の乗算結果を生成する乗算回路と、
    前記乗算回路に結合され、前記複数の乗算結果に対してビット単位の計数を行って、MAC(積和)演算結果を生成する計数ユニットと
    を備え
    前記複数の入力データのそれぞれの、または前記複数の重みのそれぞれの複数のビットは複数のビットベクトルに分割され、
    前記複数のビットベクトルの各ビットは、2進法形式から単進符号に変換され、
    前記単進符号で表された前記複数のビットベクトルの前記各ビットは、複数回複製されてunFDP(展開ドット積)形式となり、
    前記乗算回路は、前記unFDP形式で表された前記複数の入力データおよび前記複数の重みに対して乗算演算を行って、前記複数の乗算結果を生成する、メモリデバイス。
  2. 前記乗算回路は、複数のシングルビット乗算ユニットを有し、
    前記複数のシングルビット乗算ユニットのそれぞれは、
    前記メモリアレイに結合された入力ラッチと、
    前記入力ラッチに結合されたセンシングアンプと、
    前記センシングアンプに結合された出力ラッチと、
    前記出力ラッチに結合された共通データラッチと
    を含み、
    前記共通データラッチは、前記複数の入力データを前記入力ラッチに送信する、
    請求項1に記載のメモリデバイス。
  3. 前記複数のシングルビット乗算ユニットは、前記複数の乗算結果を生成し前記計数ユニットに送信する、請求項2に記載のメモリデバイス。
  4. 前記乗算回路および前記計数ユニットに結合され、前記乗算回路からの前記複数の乗算結果に対してグルーピング演算を行って複数のグルーピング結果を生成し、前記複数のグルーピング結果を前記計数ユニットに送信するグルーピング回路をさらに備え、前記複数のシングルビット乗算ユニットは、前記複数の乗算結果を生成し前記グルーピング回路に送信前記グルーピング演算が多数決関数技法である、請求項2または3に記載のメモリデバイス。
  5. 前記乗算回路および前記計数ユニットに結合され、前記複数の入力データを受信し前記メモリデバイスにより生成された前記MAC演算結果を出力する入出力回路をさらに備える、請求項1から4のいずれか一項に記載のメモリデバイス。
  6. 前記グルーピング回路は、前記複数の乗算結果に対してグルーピング演算を行って、前記複数のグルーピング結果を生成する複数のグルーピングユニットを有する、請求項4に記載のメモリデバイス。
  7. 前記メモリアレイおよび前記乗算回路はアナログであり、前記グルーピング回路および前記計数ユニットはデジタルである、請求項4または6に記載のメモリデバイス。
  8. 複数の前記入力ラッチのそれぞれは、第1のラッチおよびビット線スイッチを含み、前記第1のラッチは、前記共通データラッチからの前記複数の入力データを受信し、前記ビット線スイッチは、前記複数のメモリセルと前記センシングアンプとの間に結合され、前記ビット線スイッチは、前記複数のメモリセル内に記憶された前記複数の重みを前記センシングアンプに伝えるか否かを制御するように前記第1のラッチに記憶された前記複数の入力データにより制御され、前記センシングアンプは、前記ビット線スイッチからの出力を検知することにより前記複数の乗算結果を生成する、請求項2に記載のメモリデバイス。
  9. 前記入力ラッチのそれぞれは、第2のラッチおよび論理ゲートを含み、前記第2のラッチは、前記共通データラッチからの前記複数の入力データを受信し、前記センシングアンプは、前記複数のメモリセルに記憶された前記複数の重みを検知し、前記論理ゲートは、前記第2のラッチから送信された前記複数の入力データと前記複数のメモリセルに記憶された前記複数の重みとに基づいて、前記センシングアンプを介して前記複数の乗算結果を生成する、請求項2に記載のメモリデバイス。
  10. 前記複数の乗算結果に対してグルーピング演算を行う際に、前記グルーピング回路は、前記複数の乗算結果に対してそれぞれのグルーピング演算を行って、前記複数のグルーピング結果を生成する、請求項6に記載のメモリデバイス。
  11. ビット単位の計数において、前記複数のグルーピング結果はそれぞれ異なる累積重みが割り当てられ、MAC演算結果を生成する、請求項10に記載のメモリデバイス。
  12. 前記グルーピング回路は、複数の多数決ユニットを有する多数決回路である、請求項4に記載のメモリデバイス。
  13. メモリデバイスの動作方法であって、
    前記メモリデバイスのメモリアレイの複数のメモリセルに、複数の重みを記憶する段階と、
    複数の入力データおよび前記複数の重みに対してビット単位の乗算を行って、複数の乗算結果を生成する段階と、
    前記複数の乗算結果に対してビット単位の計数を行って、MAC(積和)演算結果を生成する段階と
    を備え、
    前記複数の入力データのそれぞれの、または前記複数の重みのそれぞれの複数のビットは、複数のビットベクトルに分割され、
    前記複数のビットベクトルの各ビットは、2進法形式から単進符号に変換され、
    前記単進符号で表された前記複数のビットベクトルの前記各ビットは、複数回複製されてunFDP(展開ドット積)形式となり、
    前記unFDP形式で表された前記複数の入力データおよび前記複数の重みに対して乗算演算を行って、前記複数の乗算結果を生成する、メモリデバイスの動作方法。
  14. 前記複数の乗算結果に対してグルーピング演算を行って、複数のグルーピング結果を生成する段階をさらに備え、前記グルーピング演算が多数決関数技法である、請求項13に記載のメモリデバイスの動作方法。
  15. ビット単位の計数において、前記複数のグルーピング結果はそれぞれ異なる累積重みが割り当てられ、前記MAC演算結果を生成する、請求項14に記載のメモリデバイスの動作方法。
  16. 前記複数の乗算結果に対してグルーピング演算を行う段階は、前記複数の乗算結果に対して多数決演算を行うことにより実施される、請求項14または15に記載のメモリデバイスの動作方法。
JP2021136884A 2020-09-08 2021-08-25 メモリデバイスおよびその動作方法 Active JP7279293B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063075307P 2020-09-08 2020-09-08
US63/075,307 2020-09-08
US17/365,034 2021-07-01
US17/365,034 US11809838B2 (en) 2020-09-08 2021-07-01 Memory device and operation method thereof

Publications (2)

Publication Number Publication Date
JP2022045333A JP2022045333A (ja) 2022-03-18
JP7279293B2 true JP7279293B2 (ja) 2023-05-23

Family

ID=80462316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021136884A Active JP7279293B2 (ja) 2020-09-08 2021-08-25 メモリデバイスおよびその動作方法

Country Status (4)

Country Link
US (1) US11809838B2 (ja)
JP (1) JP7279293B2 (ja)
KR (1) KR102603795B1 (ja)
CN (1) CN114153419A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139300A (ja) 2018-02-06 2019-08-22 国立大学法人北海道大学 ニューラル電子回路
US20200034686A1 (en) 2018-07-24 2020-01-30 Sandisk Technologies Llc Differential non-volatile memory cell for artificial neural network
WO2020046495A1 (en) 2018-08-27 2020-03-05 Silicon Storage Technology, Inc. Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102703432B1 (ko) 2018-12-31 2024-09-06 삼성전자주식회사 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치
CN112151095A (zh) 2019-06-26 2020-12-29 北京知存科技有限公司 存算一体芯片、存储单元阵列结构
US11573792B2 (en) * 2019-09-03 2023-02-07 Samsung Electronics Co., Ltd. Method and computing device with a multiplier-accumulator circuit
US11347477B2 (en) 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations
US10915298B1 (en) * 2019-10-08 2021-02-09 Ali Tasdighi Far Current mode multiply-accumulate for compute in memory binarized neural networks
US20210311703A1 (en) * 2020-04-07 2021-10-07 Samsung Electronics Co., Ltd. Neural network device for neural network operation, operating method of the neural network device, and application processor including the same
KR20210144417A (ko) * 2020-05-22 2021-11-30 삼성전자주식회사 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139300A (ja) 2018-02-06 2019-08-22 国立大学法人北海道大学 ニューラル電子回路
US20200034686A1 (en) 2018-07-24 2020-01-30 Sandisk Technologies Llc Differential non-volatile memory cell for artificial neural network
CN110782026A (zh) 2018-07-24 2020-02-11 闪迪技术有限公司 Nand存储器阵列中的二值神经网络的实现
WO2020046495A1 (en) 2018-08-27 2020-03-05 Silicon Storage Technology, Inc. Temperature and leakage compensation for memory cells in an analog neural memory system used in a deep learning neural network
JP2021536623A (ja) 2018-08-27 2021-12-27 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 深層学習ニューラルネットワークで使用されるアナログニューラルメモリシステムのメモリセルに対する温度補償及び漏れ補償

Also Published As

Publication number Publication date
CN114153419A (zh) 2022-03-08
KR20220033020A (ko) 2022-03-15
US20220075599A1 (en) 2022-03-10
JP2022045333A (ja) 2022-03-18
KR102603795B1 (ko) 2023-11-17
US11809838B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
Liu et al. Parallelizing SRAM arrays with customized bit-cell for binary neural networks
Sun et al. Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons
US11663471B2 (en) Compute-in-memory deep neural network inference engine using low-rank approximation technique
US20230005529A1 (en) Neuromorphic device and electronic device including the same
JP7255068B2 (ja) メモリデバイス及びその動作方法
US12079733B2 (en) Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing
CN110889080B (zh) 乘积累加运算装置、乘积累加运算方法和系统
US11556311B2 (en) Reconfigurable input precision in-memory computing
JP7279293B2 (ja) メモリデバイスおよびその動作方法
Mao et al. A versatile ReRAM-based accelerator for convolutional neural networks
Cheng et al. A large-scale in-memory computing for deep neural network with trained quantization
TWI777645B (zh) 記憶體裝置及其操作方法
Sabri et al. Redy: A novel reram-centric dynamic quantization approach for energy-efficient cnn inference
JP7206531B2 (ja) メモリデバイスおよびその動作方法
TWI783573B (zh) 記憶體裝置及其操作方法
TWI806641B (zh) 記憶體裝置及其操作方法
CN111126580B (zh) 采用Booth编码的多精度权重系数神经网络加速芯片运算装置
CN113343585B (zh) 一种用于矩阵乘法运算的权位分立存算阵列设计方法
US20220334800A1 (en) Exact stochastic computing multiplication in memory
Le et al. CIMulator: a comprehensive simulation platform for computing-in-memory circuit macros with low bit-width and real memory materials
US20230161556A1 (en) Memory device and operation method thereof
Mondal et al. Current comparator-based reconfigurable adder and multiplier on hybrid memristive crossbar
Cheng et al. A Low-Power High-Throughput In-Memory CMOS-ReRAM Accelerator for Large-Scale Deep Residual Neural Networks
Zhao et al. Light-CIM: A Lightweight ADC/DAC-Fewer RRAM CIM DNN Accelerator With Fully-Analog Tiles and Non-Ideality-Aware Algorithm for Consumer Electronics
Jain In-Memory Computing with Cmos and Emerging Memory Technologies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230420

R150 Certificate of patent or registration of utility model

Ref document number: 7279293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150