JP2020035502A - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JP2020035502A JP2020035502A JP2018159344A JP2018159344A JP2020035502A JP 2020035502 A JP2020035502 A JP 2020035502A JP 2018159344 A JP2018159344 A JP 2018159344A JP 2018159344 A JP2018159344 A JP 2018159344A JP 2020035502 A JP2020035502 A JP 2020035502A
- Authority
- JP
- Japan
- Prior art keywords
- memory cell
- data
- semiconductor integrated
- integrated circuit
- cell 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.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims abstract description 31
- 238000013528 artificial neural network Methods 0.000 claims abstract description 12
- 230000008859 change Effects 0.000 claims abstract description 7
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 33
- 238000013527 convolutional neural network Methods 0.000 description 28
- 238000011176 pooling Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 229910052731 fluorine Inorganic materials 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 229910052757 nitrogen Inorganic materials 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B63/00—Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
- H10B63/80—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
- H10B63/84—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays arranged in a direction perpendicular to the substrate, e.g. 3D cell arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
- G11C13/0028—Word-line or row circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/18—Bit line organisation; Bit line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/72—Array wherein the access device being a diode
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1036—Read-write modes for single port memories, i.e. having either a random port or a serial port using data shift registers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Semiconductor Memories (AREA)
- Memory System (AREA)
- Image Analysis (AREA)
- Read Only Memory (AREA)
- Logic Circuits (AREA)
Abstract
【課題】 ニューラルネットワークを省メモリで実装可能な半導体集積回路を提供すること。【解決手段】 実施形態に係る半導体集積回路は、クロスポイント型のメモリセルアレイ11と、メモリセルアレイ11への入力に接続される入力部12と、メモリセルアレイ11からの出力に接続される出力部14とを具備する。メモリセルアレイは、複数のワード線WLと、複数のワード線と交差する複数のビット線BLと、ワード線WLとビット線BLとのクロスポイントにそれぞれ形成される複数の抵抗変化型のメモリセルMCとを備える。入力部12は、行列で表されたデータのメモリセルMCへのアクセスを時系列で制御するアクセス制御部と、データのアクセス先のメモリセルMCに接続されたワード線WLに、当該データの値に応じた電圧を印加するドライバとを備える。出力部14は、ビット線BLの出力レベルの時系列における代表値を保持する複数の保持回路を備える。【選択図】 図5
Description
実施形態は、半導体集積回路に関する。
AI(artificial intelligence)チップに関する技術開発が盛んである。AIチップは、AI技術に基づく演算処理機能を有する半導体集積回路ということができる。例えばニューラルネットワークを実装したチップも知られている。
ディープニューラルネットワーク(Deep Neural Network:DNN)の一つである畳み込みニューラルネットワーク(Convolutional Neural Network:CNN)は、特に画像認識処理の分野において優れた性能を発揮する。CNNは、畳み込み層(Convolution layer)とプーリング層(Pooling layer)を備える。
畳み込み層は、例えば正方行列で与えられるフィルタ(カーネル)を用いた畳み込み演算により、直前の層のデータの特徴を抽出する。例えばN行×M列のマトリクスからなる画像データを3×3のフィルタで畳み込めば、(N−2)行×(M−2)列の特徴ベクトル(テンソル)が算出される。
プーリング層は、端的に言えば、直前の層のデータサイズを縮小するために設けられる。例えば畳み込み層の出力を2×2の領域で区分し、領域内の代表値を取ることでデータ量を削減することができる。領域内の最大値を次の層に渡すことをマックスプーリング(Max Pooling)と称する。代表値として、領域内の平均値、あるいは最小値を抽出することも原理的には可能である。
ニューラルネットワークを半導体チップに実装するには、例えばCNNのフィルタを記憶するための大量のメモリ空間が消費される。加えて、畳み込み演算の結果、あるいはプーリング演算の結果を一時的に格納するためのバッファメモリも必要になり、さらにメモリ空間が圧迫される。畳み込み層やプーリング層の数が増えると事態はますます深刻になる。
そこで、目的は、ニューラルネットワークを省メモリで実装可能な半導体集積回路を提供することにある。
実施形態に係る半導体集積回路は、クロスポイント型のメモリセルアレイと、前記メモリセルアレイへの入力に接続される入力部と、前記メモリセルアレイからの出力に接続される出力部とを具備する。前記メモリセルアレイは、複数のワード線と、前記複数のワード線と交差する複数のビット線と、前記ワード線と前記ビット線とのクロスポイントにそれぞれ形成される複数の抵抗変化型のメモリセルとを備える。前記入力部は、行列で表されたデータの前記メモリセルへのアクセスを時系列で制御するアクセス制御部と、前記データのアクセス先のメモリセルに接続されたワード線に当該データの値に応じた電圧を印加するドライバとを備える。前記出力部は、前記ビット線の出力レベルの時系列における代表値を保持する複数の保持回路を備える。
以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置等によって、技術思想が特定されるものではない。各機能ブロックは、ハードウェア及びソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。なお、以下の説明において、同様の機能及び構成を有する要素については同じ符号を付し、重複説明は必要な場合にのみ行う。
[一実施形態]
[1] 概要
[1−1] CNNについての説明
図1は、CNNの一例を示す概念図である。図1に示されるCNNは、入力層(Input Layer)と出力層(Output Layer)との間に、第1畳み込み層、第1プーリング層、第2畳み込み層、第2プーリング層、第3畳み込み層、第3プーリング層、局所結合層(Locally-connected layer)、全結合層(Fully-connected layer)1、および、全結合層2をこの順に配置して構成される。
[1] 概要
[1−1] CNNについての説明
図1は、CNNの一例を示す概念図である。図1に示されるCNNは、入力層(Input Layer)と出力層(Output Layer)との間に、第1畳み込み層、第1プーリング層、第2畳み込み層、第2プーリング層、第3畳み込み層、第3プーリング層、局所結合層(Locally-connected layer)、全結合層(Fully-connected layer)1、および、全結合層2をこの順に配置して構成される。
入力層から与えられるデータは、第1畳み込み層に渡され、予め用意されたフィルタに基づき畳み込み演算が施されたのち直後の第1プーリング層で圧縮される。この(畳み込み→プーリング)を1ユニットとする処理が3回にわたって繰り返されたのち、局所結合層、全結合層1、2を経て、出力層から入力データの特徴量が出力される。
それぞれの畳み込み層におけるフィルタのパラメータ(重み、バイアス)は、例えばクラウドコンピューティングシステム(クラウド)で作成された学習済みモデルとして、半導体集積回路に記憶される。
[1−2] CNNの適用例についての説明
CNNは、例えば画像データに捉えられた対象を識別するための識別器として用いられることができる。識別器と、識別器を学習させるための基盤などを組み合わせて識別システムが構築される。この実施形態では、画像データから数字0〜9のいずれかを識別する識別システムを例に挙げて説明する。
CNNは、例えば画像データに捉えられた対象を識別するための識別器として用いられることができる。識別器と、識別器を学習させるための基盤などを組み合わせて識別システムが構築される。この実施形態では、画像データから数字0〜9のいずれかを識別する識別システムを例に挙げて説明する。
図2は、実施形態に係る識別システム1の一例を示すブロック図である。識別システム1は、センサ2、学習装置3、識別器4、及びアプリケーション部5を備える。
センサ2は、例えばイメージセンサであり、カラーまたはグレースケールの画像データを出力する。この画像データは学習装置3および識別器4に入力データとして与えられる。入力データは(n+1)個の画素から構成され、各画素の値はAkで表される。
なお、CNNを説明する文脈では、入力データを、特徴マップと称することもある。入力データは、画像データでもよいし、ニューラルネットワークにおける直前の層から渡されたデータであってもよい。入力データ(特徴マップ)はM×Nのサイズの行列で表現することができる。行列の各要素が演算対象のデータの値である。データの値は、行列を一次元に展開したM×Nサイズの配列に格納することができる。
学習装置3は、多数の入力データからその特徴を学習し、識別器4のCNNにおける重み係数を生成する。学習装置3は、例えば、数字「5」をセンシングして得られた画像データが入力されたとき、識別結果として「5」を出力するような重み係数を生成する。学習装置3は、例えばクラウドのサーバコンピュータとして、あるいはクラウドによるサービスなどとして実現されることができる。
識別器4は、学習装置3からCNNの重み係数を取得する。識別器4は、重み係数をセットされたCNNに入力データを適用し、画像に描かれた数字が何であるかを識別する。アプリケーション部5は、識別結果を利用して種々の処理を行う。なお、重み係数は学習装置3により繰り返し生成される。識別器4の重み係数を都度、更新することで識別の精度を向上させることができる。
図3は、図2に示される識別器4の一例を示す概念図である。識別器4は、例えば1または複数の半導体集積回路により実装されてもよい。識別器4は、入力層6と、1または複数の隠れ層7と、出力層8とを備える。図3は、識別器4が2層の隠れ層7a、7bを含む例を示す。この場合、隠れ層7aは初段の隠れ層とも言える。隠れ層7bは、前段の隠れ層7aに引き続く隠れ層とも言えるし、最終段の隠れ層とも言える。
入力層6は、(n+1)個のノードI0〜Inを有する。例えば、入力データにおけるk番目の画素値AkがノードIkに設定される。
隠れ層7aは、(p+1)個のノードP10〜P1pを有する。pは、1以上の任意の整数である。ノードP10〜P1pの動作は同様であるので、以下代表してノードP1kとして説明する。ノードP1kには、入力層6におけるノードI0〜Inから(n+1)個の画素値A0〜Anが入力される。そして、ノードP1kは、画素値A0〜Anと、そのそれぞれに対応する重み係数Fk0〜Fknとで畳み込み演算を行い、結果Bkを次の層に渡す。重み係数Fk0〜Fknは、学習装置3から取得される。
隠れ層7bは、(q+1)個のノードP20〜P2qを有する。qは、1以上の任意の整数である。ノードP20〜P2qの動作は同様であるので、以下代表してノードP2kとして説明する。ノードP2kには、前段の隠れ層7aにおけるノードP10〜P1pから(p+1)個のデジタル値B0〜Bpが入力される。そして、ノードP2kは、デジタル値B0〜Bpと、そのそれぞれに対応する重み係数Gk0〜Gkpとでプーリング演算を行い、結果Ckを次の層に渡す。重み係数Gk0〜Gkpは、学習装置3から取得される。
出力層8は、(r+1)個のノードP30〜P3rを有し、隠れ層7bの出力に対して再び演算処理を施し、出力を得る。このようにして、多数の層にわたる演算の結果が局所結合層(図1)に至るまで順次、伝搬する。
[2] 構成
[2−1] 半導体集積回路の構成
図4は、この実施形態に係る半導体集積回路の一例を示すブロック図である。半導体集積回路10は、クロスポイント型のメモリセルアレイ11、入力部12、出力部14、入出力回路(I/O回路)16、アドレスレジスタ17、コントローラ(CONT)18、及び電圧発生回路19を備える。
[2−1] 半導体集積回路の構成
図4は、この実施形態に係る半導体集積回路の一例を示すブロック図である。半導体集積回路10は、クロスポイント型のメモリセルアレイ11、入力部12、出力部14、入出力回路(I/O回路)16、アドレスレジスタ17、コントローラ(CONT)18、及び電圧発生回路19を備える。
メモリセルアレイ11は、ロウ方向に延びる複数のワード線WLと、ロウ方向に交差(例えば直交)するカラム方向に延びる複数のビット線BLとを備える。ワード線WLとビット線BLとが立体的に交差する位置(クロスポイント)に、ワード線WLとビット線BLとを接続するようにメモリセルMCが形成される。各メモリセルMCは、記憶素子としてのReRAM(Resistive Random Access Memory)素子を含む。メモリセルMCの具体的な構成については後述する。
入力部12は、メモリセルアレイ11への入力において、複数のワード線WLに接続される。入力部12は、例えばワード線WLを駆動するドライバを備える。入力部12は、アドレスレジスタ17から取得したロウアドレスをデコードし、デコード信号(ロウ選択信号)に基づいてワード線WLを選択する。入力部12の具体的な構成については後述する。
出力部14は、メモリセルアレイ11からの出力において、複数のビット線BLに接続される。出力部14は、読み出し回路(センスアンプ)などを備え、各ビット線BLから出力信号(Data)を取り出し、入出力回路16に送る。出力部14の具体的な構成については後述する。
入出力回路16は、入出力端子I/Oを介して外部装置に接続される。入出力回路16は、外部装置との間でデータの受け渡しを行う。入出力回路16と出力部14との間のデータの受け渡しは、双方向データバス20を介して行われる。
コントローラ18は、半導体集積回路10の動作を制御する。コントローラ18は、例えば、チップイネーブル信号/CE、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLE、書き込みイネーブル信号/WE、及び読み出しイネーブル信号/RE等の外部制御信号を、外部装置(ホストコントローラなど)から受ける。信号名を修飾する“/”は、アクティブ・ローを表す。
コントローラ18は、これらの外部制御信号に基づいて、入出力端子I/Oから供給されるアドレスADDとコマンドCMDとを識別する。そして、コントローラ18は、アドレスADDを、アドレスレジスタ17を介して入力部12及び出力部14に送る。また、コントローラ18は、コマンドCMDをデコードする。コントローラ18は、外部制御信号及びコマンドに従って、データの読み出し、及びデータの書き込み、及びデータの消去の各々に関するシーケンス制御を行う。
電圧発生回路19は、各動作に必要な内部電圧(例えば、電源電圧より昇圧された電圧を含む)を発生する。電圧発生回路19は、コントローラ18により制御され、必要な電圧を発生する。
[2−2] 入力部12および出力部14の構成
図5は、図4に示される入力部12および出力部14の一例を示すブロック図である。入力部12は、アクセス制御部121と、ドライバ122とを備える。
アクセス制御部121は、入力データのメモリセルMCへのアクセスを、クロック信号に基づいて時系列的に制御する。つまりアクセス制御部121は、入力データを表す行列要素の値と、メモリセルMCとの対応を、クロック信号に基づいて時分割的に切り替える。
ドライバ122は、それぞれの入力データのアクセス先となるメモリセルMCに接続されたワード線WLに、当該データの値に応じた電圧を印加する。つまりドライバ122は、行列要素の値に対応付けられたメモリセルMCに繋がるワード線WLに、その値に応じた電圧を印加する。
図5は、図4に示される入力部12および出力部14の一例を示すブロック図である。入力部12は、アクセス制御部121と、ドライバ122とを備える。
アクセス制御部121は、入力データのメモリセルMCへのアクセスを、クロック信号に基づいて時系列的に制御する。つまりアクセス制御部121は、入力データを表す行列要素の値と、メモリセルMCとの対応を、クロック信号に基づいて時分割的に切り替える。
ドライバ122は、それぞれの入力データのアクセス先となるメモリセルMCに接続されたワード線WLに、当該データの値に応じた電圧を印加する。つまりドライバ122は、行列要素の値に対応付けられたメモリセルMCに繋がるワード線WLに、その値に応じた電圧を印加する。
図5において、例えば0〜nの(n+1)個の列で表される入力データは一次元配列に展開され、入力部12のアクセス制御部121に入力される。アクセス制御部121は、シフト回路としてのシフトレジスタ12aと、選択回路としてのMUX(Multiplexer)12bと、クロック信号に基づいてこれらを制御する制御回路12cとを備える。
シフトレジスタ12aは、入力データを一時的に記憶する。そして、制御回路12cから与えられるシフト量及びシフト方向に入力データをシフトさせて、MUX12bに格納する。MUX12bは、シフトされた入力データをドライバ122に接続する。
MUX12bは、シフトレジスタ12aによりシフトされたデータを、選択的にドライバ122に接続する。MUX12bを設けることにより、少ないクロック数でデータのシフト量を稼ぐことができる。データシフトにかかるクロック数が多くてもよければ、MUX12bを省略しても構わない。
ここで、制御回路12cは、メモリセルアレイ11に実装すべきCNNで用いられるフィルタのサイズおよびストライドと、入力データを表す行列のサイズとに基づいて、シフトレジスタ12aのシフト量及びシフト方向を時系列で制御する。当業者には既に知られているように、フィルタを適用する位置の間隔をストライドと称する。また、M行N列の行列のサイズは、(M×N)で表される。データのパディングを考慮する場合には、行列のサイズはこれよりも大きく、例えば(M+2)×(N+2)なる。
ドライバによりいくつかのワード線WLに電圧が印加されると、それに交差するビット線に、クロスポイントのメモリセルMCの抵抗値に応じた電流が流れる。その電流の出力レベルの代表値が、出力部14の保持回路により保持される。
保持回路は、例えば変換回路141と、ピークホールド回路142とを直列に接続してなり、ビット線BLのそれぞれの出力段に形成される。変換回路141は、接続されたビット線BLを流れる電流を電圧に変換する。ピークホールド回路142は、変換回路141の出力電圧のピーク値を保持し、出力データとして保持する。なお、保持されたピーク値を基準電圧と比較し、2値化して出力する比較回路をビット線BLごとに設けてもよい。
[2−3] メモリセルアレイ11の構成
図6は、メモリセルアレイ11の等価回路の一例を示す図である。メモリセルアレイ11において、ワード線WLとビット線BLとのクロスポイントの各々に、メモリセルMCが形成される。各メモリセルMCは、いわゆる2端子の抵抗変化型メモリであり、可変抵抗素子VRと、双極性のダイオードDiとを直列に接続してなる。
図6は、メモリセルアレイ11の等価回路の一例を示す図である。メモリセルアレイ11において、ワード線WLとビット線BLとのクロスポイントの各々に、メモリセルMCが形成される。各メモリセルMCは、いわゆる2端子の抵抗変化型メモリであり、可変抵抗素子VRと、双極性のダイオードDiとを直列に接続してなる。
抵抗変化型メモリは、アナログ情報を記憶させる事が可能である。各メモリセルMCは、CNNのフィルタの重みに対応する抵抗値を、可変抵抗素子VRに記憶する。より詳しくは、抵抗値の逆数が、実施形態におけるフィルタの重みに相当する。
ダイオードDiは、メモリセルMCへの書き込み動作時の、周辺セルへの回り込み電流を抑圧するために設けられる。この種の素子は、セレクタと称して知られている。クロスポイント構造では、選択メモリセルへの書き込み時に、非選択メモリセルにも逆方向バイアスが印加されるおそれがある。そこで、記憶媒体(可変抵抗素子)にセレクタを直列接続することで、逆方向バイアスによる回り込み電流を抑圧する。なお、実施形態ではセレクタとして双極性のダイオードDiを例示したが、これに限られない。二端子間の電圧が閾値より高いか低いかに応じて実質的にオンまたはオフとなる種々の素子を、セレクタとして用いることができる。例えば、セレクタとして、オボニック効果を利用したスイッチ(例えば、Ovonic Threshold Switch)を用いても同様な効果を得ることができる。
図7は、メモリセルアレイ11の斜視図である。図7において、複数のビット線(BL[BL1,BL2,…])が互いに平行に配置される。これらのビット線BLと直交するように、複数のワード線(WL[WL1,WL2,…])が互いに平行に配置される。そして、BLとWLとのクロスポイントのそれぞれにメモリ素子30が形成される。
図8は、ニューラルネットワークにおける積和演算について示す概念図である。それぞれ値X1〜Xnを持つ入力データに対し、例えば重みW12〜Wn2で積和演算(畳み込み:convolution)を行うと、出力データY2が得られる。
図9は、クロスポイント型メモリセルアレイによる積和演算について説明するための図である。例えばワード線WLをそれぞれ電圧値V1〜Vnでドライブすると、クロスポイントごとに、メモリセルMCの抵抗値の逆数に比例する電流が生じる。各クロスポイントで生じる電流は抵抗値の逆数と電圧値との積であり、その総和がビット線BLから取り出される。電流値を示す式を図8の式と比較すると、全く同じ格好をしている。つまり、重みの逆数を抵抗値としてメモリセルに記憶するメモリセルアレイを用いれば、データの多重選択と電流加算により、信号の積和演算を実装することができる。このようにクロスポイント構造のメモリセルアレイを用いると、ハードウェア回路に、自然なかたちでCNNを実装することができる。次に、上記構成における作用を説明する。
[3] 作用
図10は、実施形態において想定する入力データの一例を示す図である。議論を簡単にするために6行×6列の正方行列で示される画像データを想定するが、もちろん、このサイズに限定されるものではなく、正方行列に限定されるものでもない。行列の各要素の値が、例えば画像データの輝度を示す。
図10は、実施形態において想定する入力データの一例を示す図である。議論を簡単にするために6行×6列の正方行列で示される画像データを想定するが、もちろん、このサイズに限定されるものではなく、正方行列に限定されるものでもない。行列の各要素の値が、例えば画像データの輝度を示す。
図11は、実施形態において想定するCNNのフィルタの一例を示す図である。複数のフィルタを用いることで、複数の特徴量を抽出することができる。図11においては6種類(6チャネル)のフィルタが用いられることを示すが、もちろん、この数に限られるものではない。フィルタを表す行列要素を(a,b,c,d,e,f,g,h,i)で示す。
図12は、畳み込み演算の結果を格納する配列の一例を示す図である。例えば、CNNの入力層(図1)に図10のデータが与えられると、第1畳み込み層における積和演算の結果が図12の各配列要素A〜Pに格納される。6×6サイズの行列を3×3サイズのフィルタで畳み込むと、パディングを考慮しないケースでは、4×4サイズの出力が得られる。
図13〜図16は、入力データに対するフィルタの適用領域と、図12の各配列要素A〜Pとの関係を示す図である。配列要素Aは、フィルタ(a,b,c,d,e,f,g,h,i)と、入力データ行列の左上部分(ハッチング箇所)(0,6,12,1,7,13,2,8,14)との積和演算の結果を格納する。以下同様に、各図のハッチング箇所と配列要素B〜Pとが関連付けられる。
図13〜図16の例では、3×3の畳み込み演算をストライド1で行う処理手順が示される。CNN演算の過程でフィルタの適用個所を移動させてゆくにつれ、積和演算に係わるデータに周期性のあることがわかる。
図17は、マックスプーリングについて説明するための図である。16個の配列要素A〜Pを例えば2×2の領域に区分し、各領域の最大値をとることで2×2の行列(α,β,γ,δ)が得られる。例えばαは、A,B,E,Fのうちの最大値である。図17は、2×2のマックスプーリングをストライド2で行った例を示す。
図18は、実施形態における作用を説明するための図である。図19のタイミングチャートも参照して、実施形態における作用を説明する。この実施形態では、『(6×6)のサイズの行列で表される入力データに、(3×3)のフィルタでストライド1の畳み込み演算を行い、2×2の領域でストライド2のマックスプーリングを行う』という条件で計算を行うCNNを、一例として採り上げる。
図18に示されるように、上記の条件下では、メモリセルアレイは36×4のマトリクス構造を有する。つまり36本のワード線(WL0〜WL35)と、4本のビット線(BL0〜BL3)が消費される。i,jをインデックスとして、ワード線WLiとビット線BLjとの交点のメモリセルを(WLi,BLj)で表す。
フィルタの値a,b,c,d,e,f,g,h,iは、各メモリセルに周期的に記憶される。例えば値aは、メモリセル(WL0,BL0)、(WL12,BL1)、(WL2,BL2)、(WL14,BL3)に記憶される。他の値b,c,d,e,f,g,h,iも同様に、それぞれ4つのメモリセルに記憶される。
重みを記憶したメモリセルアレイ11に、一次元に展開されたデータの配列が入力される。アドレスA1(図19)に対応する最初のステップ(1)では、データ0がメモリセル(WL0,BL0)にアサインされ、データ1〜データ35が順次、ワード線のインデックスiが増える方向にアサインされる。
これに応じて、ドライバ122は各ワード線に、データ値に応じた電圧を印加する。このとき、値a,b,c,d,e,f,g,h,iを記憶するメモリセルにおいて、抵抗値に対応した電流が流れる。そして、電流の加算された結果が積和演算の結果として各ビット線BLから出力される。なお、重みの記憶されていないメモリセル(空白のマトリクスに対応:抵抗値が最大(絶縁状態))においても微小な電流が流れるが、その値は無視できる程度に小さい。よって、重みの記憶されていないメモリセルが演算の結果にもたらす影響は、無視することができる。
ステップ(1)では図12のA,I,C,Kに対応する結果が得られ、図19のように変換回路141の出力がピークホールド(PH)回路142で保持される。
図19のクロック信号(CLK)に同期して次のアドレスA2が与えられ、ステップ(2)において、シフトレジスタ12aによりデータが上方向に1シフトされる。ここでのシフト量は、フィルタのサイズおよびストライドと、データ行列のサイズとに基づいて設定される。
上方向とはつまり、図18においてメモリセル(WL0,BL0)にデータ0がアサインされていた状態から、データ1がアサインされるようにシフトすることを示す。このようにシフトレジスタ12aを作用させることで、図14の[B]を得るためのハッチング領域にフィルタをスライドさせた状態が、ビット線BL0で実現される。つまりデータ(1,2,3)、(7,8,9)、(13,14,15)が、フィルタの(a,d,g)、(b,e,h)、(c,f,j)に、それぞれアサインされる。これに応じて、ドライバ122により各ワード線に電圧が印加され、生じた電流の加算された結果が各ビット線BLから出力される。
[J],[D],[L]を得るための状態も、それぞれビット線BL1,BL2,BL3において同時に作られている。よってステップ(2)では図12のB,J,D,Lに対応する結果が得られる。図19において、変換回路141の出力が例えば低下しても、ピークホールド(PH)回路142の出力は(1)の状態で保持される。
さらに、次のアドレスA3が与えられると、ステップ(3)において、シフトレジスタ12aによりデータが上方向に5シフトされる。ここでのシフト量は、フィルタのサイズおよびストライドと、データ行列のサイズとに基づいて設定される。シフトレジスタ12aのみであれば5クロックが消費されるが、MUX12bを組み合わせることで、データ配列を5マス分、1クロックでシフトさせることができる。
そうすると、図13の[E]を得るためのハッチング領域にフィルタをスライドさせた状態が、ビット線BL0で実現される。つまりデータ(6,7,8)、(12,13,14)、(18,19,20)が、フィルタの(a,d,g)、(b,e,h)、(c,f,j)に、それぞれアサインされる。これに応じて、ドライバ122により各ワード線に電圧が印加され、生じた電流の加算された結果が各ビット線BLから出力される。
[M],[G],[O]を得るための状態も、それぞれビット線BL1,BL2,BL3において同時に作られている。よってステップ(3)では図12のE,M,G,Oに対応する結果が得られる。図19において、変換回路141の出力が増加すると、ピークホールド(PH)回路142の出力も増加する。
次のアドレスA4が与えられると、ステップ(4)において、シフトレジスタ12aによりデータが上方向に1シフトされる。ここでのシフト量も、フィルタのサイズおよびストライドと、データ行列のサイズとに基づいて設定される。
そうすると、図14の[F]を得るためのハッチング領域にフィルタをスライドさせた状態が、ビット線BL0で実現される。つまりデータ(7,8,9)、(13,14,15)、(19,20,21)が、フィルタの(a,d,g)、(b,e,h)、(c,f,j)に、それぞれアサインされる。これに応じて、ドライバ122により各ワード線に電圧が印加され、生じた電流の加算された結果が各ビット線BLから出力される。
[N],[H],[P]を得るための状態も、それぞれビット線BL1,BL2,BL3において同時に作られている。よってステップ(4)では図12のF,N,H,Pに対応する結果が得られる。図19において、変換回路141の出力が低下しても、ピークホールド(PH)回路142の出力は(3)の状態を保つ。
[4] 効果
実施形態に係わる半導体集積回路は、複数のメモリセルを有するメモリセルアレイと、メモリセルアレイへの信号接続を制御するMUXおよびシフトレジスタと、メモリセルアレイの出力を処理する変換回路と、出力の最大値を保持するピークホールド回路とを具備する。そして、個々のメモリセルにCNNの重みを記憶させ、メモリセルへのアクセスをMUXとシフトレジスタで制御して畳み込み演算を行い、メモリセルアレイの出力の最大値をピークホールド回路で検出することでマックスプーリングの処理を行うようにした。
実施形態に係わる半導体集積回路は、複数のメモリセルを有するメモリセルアレイと、メモリセルアレイへの信号接続を制御するMUXおよびシフトレジスタと、メモリセルアレイの出力を処理する変換回路と、出力の最大値を保持するピークホールド回路とを具備する。そして、個々のメモリセルにCNNの重みを記憶させ、メモリセルへのアクセスをMUXとシフトレジスタで制御して畳み込み演算を行い、メモリセルアレイの出力の最大値をピークホールド回路で検出することでマックスプーリングの処理を行うようにした。
実施形態において、『(6×6)のサイズの行列で表される入力データに、(3×3)のフィルタでストライド1の畳み込み演算を行い、2×2の領域でストライド2のマックスプーリングを行う』CNNを、半導体集積回路に実装した。すなわち、36×4のマトリクス構造のメモリセルアレイにフィルタの重みを抵抗値の逆数として記憶させた。また、データに応じた電圧をワード線に印加し、メモリセルで生じた電流の和をビット線から取り出し、電圧に変換してその最大値を保持するようにした。さらに、一次元に展開したデータをシフトレジスタ12aでシフトすることで、フィルタをスライドさせることと同じ演算を行えるようにした。さらに、ピークホールド回路142によりピーク値を保持することで、マックスプーリングと同じ結果を示す電圧値を得られるようにした。
図20は、比較のため、既存の半導体集積回路を示す模式図である。既存の回路は、データ配列をシフトさせるシフトレジスタと、そのシフト量及びシフト方向を制御する制御回路12cも備えておらず、よってピークホールド回路を設ける動機もない。このためマックスプーリング処理のためビット線の出力の最大値を選択する必要があった。また、CNN用とマックスプーリング用の処理のためのメモリ空間を別に用意する必要もあり、その分のメモリ空間が消費されてしまう。
そもそも、畳み込み演算後の結果が4×4サイズの行列になることに対応して、16本ものビット線が必要になる。このため図18と比較して4倍のメモリ領域が消費されてしまう。大容量のデータおよび大サイズのフィルタを用いる現実のCNNでは、メモリの消費量はさらに膨大なものとなる。さらに、フィルタのチャネル数が増えれば、その数に応じてメモリの消費量はさらに倍増する。
これに対して実施形態では、メモリセルアレイに入力されるデータを時系列的にシフトすることで、メモリ容量を格段に削減することができる。また、積和演算の結果が電流の加算値として時系列で得られるので、電圧に変換して最大値を保持するだけでマックスプーリングを実装することができ、回路をさらにシンプルにすることができる。
したがって、この実施形態によれば、ニューラルネットワークを省メモリで実装可能な半導体集積回路を提供することが可能となる。また、メモリ空間を節約できることから、コスト削減を期待できる。さらに、メモリ空間を節約した分、リソースを他の演算に振り分けることができ、高速化を促すこともできる。
[5] 変形例
[5−1] メモリセルのドライブ電圧に関する変形例
図21は、セレクタとしてのダイオードDi(図6)の、電圧‐電流特性の一例を示すグラフである。横軸が電圧、縦軸が電流(対数)である。図中、VSWは、セレクタがオンとなる電圧を示し、通常のメモリセルアレイでは、VSW以上の電圧領域でメモリセルをドライブする。
[5−1] メモリセルのドライブ電圧に関する変形例
図21は、セレクタとしてのダイオードDi(図6)の、電圧‐電流特性の一例を示すグラフである。横軸が電圧、縦軸が電流(対数)である。図中、VSWは、セレクタがオンとなる電圧を示し、通常のメモリセルアレイでは、VSW以上の電圧領域でメモリセルをドライブする。
しかしながら、この変形例では敢えて、VSW以下の電圧領域でメモリセルをドライブすることが好ましい。その理由を次に説明する。
つまり変形例では、各メモリセルで生じる電流の加算値を積和演算の結果として取り出すのであるから、特に出力側でのエネルギー負荷を抑えるために個々のメモリセルでの電流値をできるだけ低く抑えるのが好ましい。メモリセルの数が増えれば増えるほどその傾向は高まる。このような理由により変形例では、セレクタのオフ領域に相当する、VSW以下の電圧領域でメモリセルをドライブするようにする。
つまり変形例では、各メモリセルで生じる電流の加算値を積和演算の結果として取り出すのであるから、特に出力側でのエネルギー負荷を抑えるために個々のメモリセルでの電流値をできるだけ低く抑えるのが好ましい。メモリセルの数が増えれば増えるほどその傾向は高まる。このような理由により変形例では、セレクタのオフ領域に相当する、VSW以下の電圧領域でメモリセルをドライブするようにする。
なお、電圧を下げることで、精度を保つことが難しくなることが予期される。しかしながらCNNが適用される分野では、高い精度が要求されるアプリケーションはそれほど多くない。例えば画像処理や画像認識などの分野では、そのような傾向が強い。このような事情からも、メモリセルをセレクタのオフ領域でドライブし、セレクタからの出力が小電流になる領域で使うことのメリットは大きい。
[5−2] メモリセルのドライブ電圧に関する変形例
図22は、メモリセルアレイの他の例を示す斜視図であり、1層のビット線(BL[BL1,BL2,…])と、該ビット線を上下から挟み込む2層のワード線(WL[WL1,WL2,…],(WL′[WL′1,WL′2,…]))とを具備する構造のメモリセルアレイを示す。2層のワード線のうち一方を符号(+)に対応させ、他方のワード線を符号(−)に対応させるといった応用が考えられる。このようにすることで、正負の値を持つデータをシンプルに取り扱うことができる。
図22は、メモリセルアレイの他の例を示す斜視図であり、1層のビット線(BL[BL1,BL2,…])と、該ビット線を上下から挟み込む2層のワード線(WL[WL1,WL2,…],(WL′[WL′1,WL′2,…]))とを具備する構造のメモリセルアレイを示す。2層のワード線のうち一方を符号(+)に対応させ、他方のワード線を符号(−)に対応させるといった応用が考えられる。このようにすることで、正負の値を持つデータをシンプルに取り扱うことができる。
なお、上記各実施形態では、CNNとして図1に示される構成を適用した。しかし、CNNは図1に示される構成に限定されるものではなく、全結合型の多層ニューラルネットワークを適用してもよい。また、層の総数、畳み込み層の数、プーリング層の数等もシステム要件に応じて自由に設計することができる。
また、上記各実施形態では、半導体記憶装置として、抵抗変化型記憶素子を用いたReRAMを例に挙げて説明した。しかし、上記各実施形態は、これに限定されるものではなく、ReRAMと同様の抵抗変化型のメモリ、例えばMRAM(Magnetic Random Access Memory)、PCRAM(Phase-Change Random Access Memory)などにも適用可能である。
このほか、メモリセルアレイの構成も図示したものに限らず、ワード線に対して垂直に配置されるビット線(いわゆるバーティカルビットライン)を有する構成のメモリセルアレイに対しても上記各実施形態を適用することが可能である。
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
1…識別システム、2…センサ、3…学習装置、4…識別器、5…アプリケーション部、6…入力層、7…隠れ層、7a…隠れ層、7b…隠れ層、8…出力層、10…半導体集積回路、11…メモリセルアレイ、12…入力部、12a…シフトレジスタ、12c…制御回路、14…出力部、16…入出力回路、17…アドレスレジスタ、18…コントローラ、19…電圧発生回路、20…双方向データバス、30…メモリ素子、121…アクセス制御部、122…ドライバ、141…変換回路、142…ピークホールド回路、BL…ビット線、WL…ワード線。
Claims (8)
- クロスポイント型のメモリセルアレイと、
前記メモリセルアレイへの入力に接続される入力部と、
前記メモリセルアレイからの出力に接続される出力部とを具備し、
前記メモリセルアレイは、
複数のワード線と、
前記複数のワード線と交差する複数のビット線と、
前記ワード線と前記ビット線とのクロスポイントにそれぞれ形成される複数の抵抗変化型のメモリセルとを備え、
前記入力部は、
行列で表されたデータの前記メモリセルへのアクセスを時系列で制御するアクセス制御部と、
前記データのアクセス先のメモリセルに接続されたワード線に、当該データの値に応じた電圧を印加するドライバとを備え、
前記出力部は、
前記ビット線の出力レベルの時系列における代表値を保持する複数の保持回路を備える、半導体集積回路。 - 前記複数のメモリセルは、ニューラルネットワークを用いた畳み込み演算のフィルタの重みに対応する抵抗値を周期的に記憶する、請求項1に記載の半導体集積回路。
- 前記アクセス制御部は、
前記行列を展開した一次元配列で表される前記データをシフトするシフト回路と、
前記シフト回路のシフト量とシフト方向を、前記フィルタのサイズおよびストライドと、前記行列のサイズとに基づいて時系列で制御する制御回路と、
シフトされた前記データを前記ドライバに接続する接続部とを備える、請求項2に記載の半導体集積回路。 - 前記接続部は、
前記シフトされた前記データを前記ドライバに選択的に接続する選択回路を備える、請求項3に記載の半導体集積回路。 - 前記保持回路は、
前記ビット線の各々に接続され、接続されたビット線を流れる電流を電圧に変換する複数の変換回路と、
前記電圧のピーク値を保持する複数のピークホールド回路とを備える、請求項1に記載の半導体集積回路。 - 前記ピークホールド回路の出力を、基準電圧に基づいて2値化する複数の比較回路をさらに具備する、請求項5に記載の半導体集積回路。
- 前記メモリセルアレイは、
前記メモリセルと前記ビット線または前記ワード線との間にそれぞれ設けられるセレクタ素子をさらに備える、請求項1に記載の半導体集積回路。 - 前記ドライバは、前記データのアクセス先のメモリセルに接続されたワード線に、前記セレクタ素子のオフ領域に対応する電圧を印加する、請求項7に記載の半導体集積回路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018159344A JP2020035502A (ja) | 2018-08-28 | 2018-08-28 | 半導体集積回路 |
TW107142500A TWI689936B (zh) | 2018-08-28 | 2018-11-28 | 半導體積體電路 |
CN201811531462.0A CN110866596B (zh) | 2018-08-28 | 2018-12-14 | 半导体集成电路 |
US16/281,275 US10734448B2 (en) | 2018-08-28 | 2019-02-21 | Convolutional neural network system employing resistance change memory cell array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018159344A JP2020035502A (ja) | 2018-08-28 | 2018-08-28 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020035502A true JP2020035502A (ja) | 2020-03-05 |
Family
ID=69640117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018159344A Pending JP2020035502A (ja) | 2018-08-28 | 2018-08-28 | 半導体集積回路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10734448B2 (ja) |
JP (1) | JP2020035502A (ja) |
CN (1) | CN110866596B (ja) |
TW (1) | TWI689936B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11756616B2 (en) | 2021-02-19 | 2023-09-12 | Fujitsu Limited | Computer and calculation method using memristor array |
JP7542638B2 (ja) | 2020-03-02 | 2024-08-30 | インフィニオン テクノロジーズ エルエルシー | Mac演算を実行するためのインメモリコンピューティングアーキテクチャおよび方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12111878B2 (en) * | 2018-10-12 | 2024-10-08 | International Business Machines Corporation | Efficient processing of convolutional neural network layers using analog-memory-based hardware |
US11823771B2 (en) * | 2020-01-30 | 2023-11-21 | Stmicroelectronics S.R.L. | Streaming access memory device, system and method |
US11562240B2 (en) | 2020-05-27 | 2023-01-24 | International Business Machines Corporation | Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference |
CN111652363B (zh) * | 2020-06-08 | 2023-09-19 | 中国科学院微电子研究所 | 存算一体电路 |
TWI761029B (zh) * | 2021-01-13 | 2022-04-11 | 財團法人工業技術研究院 | 用於記憶體內運算的記憶體裝置及資料權重狀態判斷方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014235A (en) * | 1987-12-15 | 1991-05-07 | Steven G. Morton | Convolution memory |
US5923585A (en) * | 1997-01-10 | 1999-07-13 | Invox Technology | Source biasing in non-volatile memory having row-based sectors |
US7088860B2 (en) * | 2001-03-28 | 2006-08-08 | Canon Kabushiki Kaisha | Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus |
KR101734204B1 (ko) * | 2010-06-01 | 2017-05-12 | 삼성전자주식회사 | 프로그램 시퀀서를 포함하는 플래시 메모리 장치 및 시스템, 그리고 그것의 프로그램 방법 |
US9123411B2 (en) * | 2013-10-11 | 2015-09-01 | Kabushiki Kaisha Toshiba | Memory device, method of controlling memory device, and memory system |
US9466362B2 (en) * | 2014-08-12 | 2016-10-11 | Arizona Board Of Regents On Behalf Of Arizona State University | Resistive cross-point architecture for robust data representation with arbitrary precision |
EP3204888A4 (en) | 2014-10-09 | 2017-10-04 | Microsoft Technology Licensing, LLC | Spatial pyramid pooling networks for image processing |
JP6097775B2 (ja) * | 2015-02-16 | 2017-03-15 | 力晶科技股▲ふん▼有限公司 | 半導体記憶装置及び半導体集積回路装置 |
US9805303B2 (en) | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
CN106548124B (zh) | 2015-09-17 | 2021-09-07 | 松下知识产权经营株式会社 | 主题推定系统、主题推定方法 |
GB2552014B (en) * | 2016-07-07 | 2020-05-13 | Advanced Risc Mach Ltd | Reconfigurable artificial neural networks comprising programmable non-volatile memory elements |
JP6968602B2 (ja) * | 2016-07-14 | 2021-11-17 | 株式会社半導体エネルギー研究所 | 半導体装置、表示システム及び電子機器 |
US11501131B2 (en) * | 2016-09-09 | 2022-11-15 | SK Hynix Inc. | Neural network hardware accelerator architectures and operating method thereof |
CN106530210B (zh) * | 2016-10-31 | 2019-09-06 | 北京大学 | 基于阻变存储器件阵列实现并行卷积计算的设备和方法 |
KR102578124B1 (ko) * | 2016-12-16 | 2023-09-14 | 에스케이하이닉스 주식회사 | 신경망 장치의 정규화 장치 및 방법 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
JP2019028569A (ja) * | 2017-07-26 | 2019-02-21 | 株式会社東芝 | メモリシステム、半導体記憶装置及び信号処理システム |
US11263522B2 (en) * | 2017-09-08 | 2022-03-01 | Analog Devices, Inc. | Analog switched-capacitor neural network |
US11386644B2 (en) * | 2017-10-17 | 2022-07-12 | Xilinx, Inc. | Image preprocessing for generalized image processing |
US11521046B2 (en) * | 2017-11-08 | 2022-12-06 | Samsung Electronics Co., Ltd. | Time-delayed convolutions for neural network device and method |
US10643705B2 (en) * | 2018-07-24 | 2020-05-05 | Sandisk Technologies Llc | Configurable precision neural network with differential binary non-volatile memory cell structure |
-
2018
- 2018-08-28 JP JP2018159344A patent/JP2020035502A/ja active Pending
- 2018-11-28 TW TW107142500A patent/TWI689936B/zh active
- 2018-12-14 CN CN201811531462.0A patent/CN110866596B/zh active Active
-
2019
- 2019-02-21 US US16/281,275 patent/US10734448B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7542638B2 (ja) | 2020-03-02 | 2024-08-30 | インフィニオン テクノロジーズ エルエルシー | Mac演算を実行するためのインメモリコンピューティングアーキテクチャおよび方法 |
US11756616B2 (en) | 2021-02-19 | 2023-09-12 | Fujitsu Limited | Computer and calculation method using memristor array |
Also Published As
Publication number | Publication date |
---|---|
TWI689936B (zh) | 2020-04-01 |
CN110866596A (zh) | 2020-03-06 |
TW202009929A (zh) | 2020-03-01 |
US20200075677A1 (en) | 2020-03-05 |
US10734448B2 (en) | 2020-08-04 |
CN110866596B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020035502A (ja) | 半導体集積回路 | |
US11568200B2 (en) | Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference | |
US11416744B2 (en) | Max pooling processor based on 1T1R memory | |
CN110782028A (zh) | 具有差分二进制非易失性存储器单元结构的可配置精密神经网络 | |
US11354569B2 (en) | Neural network computation circuit including semiconductor storage elements | |
CN110825345A (zh) | 使用非易失性存储器单元的乘法 | |
CN107086048B (zh) | 电子装置 | |
KR20100116938A (ko) | 비휘발성 메모리 장치 | |
KR102187116B1 (ko) | 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 및 비휘발성 메모리 장치의 구동 방법 | |
JP2006523358A (ja) | 異なるメモリセルに対する同時読み取りおよび書き込み | |
KR20160023480A (ko) | 크로스 포인트 어레이 구조의 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법 | |
Liu et al. | A weighted sensing scheme for ReRAM-based cross-point memory array | |
CN106448718A (zh) | 存储器器件和操作存储器器件的方法 | |
CN113785290A (zh) | 基于存储器的矢量-矩阵乘法 | |
US11527276B2 (en) | Semiconductor storage device | |
CN115605957A (zh) | 存储器阵列中的匹配模式 | |
CN106844223B (zh) | 数据搜索系统及方法 | |
CN108154227B (zh) | 一种使用模拟计算的神经网络芯片 | |
US10749529B2 (en) | Memory device including integrated deterministic pattern recognition circuitry | |
CN116935929A (zh) | 互补式存储电路及存储器 | |
TWI782994B (zh) | 記憶體系統 | |
US11881260B2 (en) | Neuromorphic computing device and method of designing the same | |
CN114207724A (zh) | 控制突触元件中电阻逐渐变化的装置和方法 | |
JP7561906B2 (ja) | メモリシステム及びメモリシステムの操作方法 | |
US12125527B2 (en) | Apparatus and method for controlling gradual conductance change in synaptic element |