KR20210107100A - 딥 러닝 인공 신경망 내의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하기 위한 시스템 - Google Patents
딥 러닝 인공 신경망 내의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하기 위한 시스템 Download PDFInfo
- Publication number
- KR20210107100A KR20210107100A KR1020217023620A KR20217023620A KR20210107100A KR 20210107100 A KR20210107100 A KR 20210107100A KR 1020217023620 A KR1020217023620 A KR 1020217023620A KR 20217023620 A KR20217023620 A KR 20217023620A KR 20210107100 A KR20210107100 A KR 20210107100A
- Authority
- KR
- South Korea
- Prior art keywords
- array
- output
- volatile memory
- input
- memory cells
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims description 262
- 238000013528 artificial neural network Methods 0.000 title abstract description 40
- 230000001537 neural effect Effects 0.000 title abstract description 31
- 238000013135 deep learning Methods 0.000 title description 6
- 239000013598 vector Substances 0.000 claims abstract description 89
- 239000011159 matrix material Substances 0.000 claims abstract description 47
- 210000004027 cell Anatomy 0.000 claims description 345
- 210000002569 neuron Anatomy 0.000 claims description 109
- 230000006870 function Effects 0.000 claims description 61
- 230000004913 activation Effects 0.000 claims description 36
- 238000013507 mapping Methods 0.000 claims description 18
- 239000003990 capacitor Substances 0.000 claims description 16
- 238000000034 method Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 238000003491 array Methods 0.000 description 48
- 210000000225 synapse Anatomy 0.000 description 35
- 210000004205 output neuron Anatomy 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 10
- 239000000758 substrate Substances 0.000 description 8
- 102100036301 C-C chemokine receptor type 7 Human genes 0.000 description 6
- 102100031658 C-X-C chemokine receptor type 5 Human genes 0.000 description 6
- 101000716065 Homo sapiens C-C chemokine receptor type 7 Proteins 0.000 description 6
- 101000922405 Homo sapiens C-X-C chemokine receptor type 5 Proteins 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000011176 pooling Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000006403 short-term memory Effects 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000946 synaptic effect Effects 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 241000288105 Grus Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 229910052802 copper Inorganic materials 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 150000004767 nitrides Chemical class 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 102100023226 Early growth response protein 1 Human genes 0.000 description 1
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 1
- 101001049697 Homo sapiens Early growth response protein 1 Proteins 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
Classifications
-
- 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
-
- G06N3/0635—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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/044—Recurrent networks, e.g. Hopfield networks
-
- G06N3/0445—
-
- 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
- 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/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0466—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/02—Structural aspects of erasable programmable read-only memories
- G11C2216/04—Nonvolatile memory cell provided with a separate control gate for erasing the cells, i.e. erase gate, independent of the normal read control gate
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Non-Volatile Memory (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
벡터x매트릭스 승산(VMM) 어레이에 의해 출력되는 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하고, 그러한 펄스들을 인공 신경망 내의 다른 VMM 어레이에 입력으로서 제공하기 위한 다수의 실시예들이 개시된다. VMM 어레이에 대해 아날로그 입력이 요구되는 경우 뉴런 전류-기반 시간 펄스들을 아날로그 전류 또는 전압 값들로 변환하기 위한 다수의 실시예가 개시된다.
Description
우선권 주장
본 출원은 2019년 3월 6일자로 출원되고 발명의 명칭이 "딥 러닝 인공 신경망에서의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류 기반 시간 펄스들로 변환하기 위한 시스템(System for Converting Neuron Current Into Neuron Current-Based Time Pulses in an Analog Neural Memory in a Deep Learning Artificial Neural Network)"인 미국 가출원 제62/814,813호, 2019년 1월 18일자로 출원되고 발명의 명칭이 "딥 러닝 인공 신경망에서의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류 기반 시간 펄스들로 변환하기 위한 시스템(System for Converting Neuron Current Into Neuron Current-Based Time Pulses in an Analog Neural Memory in a Deep Learning Artificial Neural Network)"인 미국 가출원 제62/794,492호, 및 2019년 3월 14일자로 출원되고 발명의 명칭이 "딥 러닝 인공 신경망 내의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하기 위한 시스템(System for Converting Neuron Current Into Neuron Current-Based Time Pulses in an Analog Neural Memory in a Deep Learning Artificial Neural Network)"인 미국 특허 출원 제16/353,830호로부터 우선권을 주장한다.
기술분야
벡터x매트릭스 승산(vector-by-matrix multiplication, VMM) 어레이에 의해 출력되는 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하고, 그러한 펄스들을 인공 신경망 내의 다른 VMM 어레이에 입력으로서 제공하기 위한 다수의 실시예들이 개시된다.
인공 신경망은 생물학적 신경망(동물의 중추신경계, 특히 뇌)을 모방하며, 다수의 입력에 의존할 수 있고 일반적으로 알려져 있지 않은 함수들을 추정하거나 근사화하는 데 이용된다. 인공 신경망은, 일반적으로, 서로 메시지들을 교환하는 상호접속된 "뉴런(neuron)들"의 층들을 포함한다.
도 1은 인공 신경망을 예시하며, 여기서 원들은 뉴런들의 층들 또는 입력들을 나타낸다. 연접부(시냅스(synapse)들로 지칭됨)는 화살표로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치를 갖는다. 이는 신경망을 입력에 적응시키고 학습할 수 있게 한다. 전형적으로, 신경망은 다수의 입력들의 층을 포함한다. 전형적으로 뉴런의 하나 이상의 중간 층, 및 신경망의 출력을 제공하는 뉴런의 출력 층이 있다. 각각의 레벨의 뉴런은 개별적으로 또는 집합적으로 시냅스들로부터의 수신된 데이터에 기초하여 결정을 행한다.
고성능 정보 처리를 위한 인공 신경망의 개발에서의 주요 과제들 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 신경망은 매우 많은 수의 시냅스들에 의존하여, 뉴런들 사이의 높은 접속성, 즉 매우 높은 계산 병렬성(computational parallelism)을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터들 또는 특수 그래픽 처리 유닛 클러스터들로 달성될 수 있다. 그러나, 고비용에 더하여, 이들 접근법은 또한 주로 저-정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 망(biological network)과 비교하여 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로가 인공 신경망에 사용되어 왔지만, 대부분의 CMOS-구현된 시냅스들은 요구되는 많은 수의 뉴런들 및 시냅스들을 고려해 볼 때 너무 부피가 컸다.
출원인은, 참고로 포함되는, 미국 특허 공개 제2017/0337466호로서 공개된, 미국 특허 출원 제15/594,439호에서 하나 이상의 비휘발성 메모리 어레이를 시냅스로서 이용하는 인공 (아날로그) 신경망을 이전에 개시하였다. 비휘발성 메모리 어레이들은 아날로그 뉴로모픽 메모리(analog neuromorphic memory)로서 동작한다. 신경망 디바이스는 제1 복수의 입력들을 수신하고 그로부터 제1 복수의 출력들을 생성하도록 구성된 제1 복수의 시냅스들, 및 제1 복수의 출력들을 수신하도록 구성된 제1 복수의 뉴런들을 포함한다. 제1 복수의 시냅스들은 복수의 메모리 셀들을 포함하는데, 여기서 메모리 셀들 각각은 반도체 기판 내에 형성되고 채널 영역이 사이에 연장되는 이격된 소스 영역과 드레인 영역, 채널 영역의 제1 부분 위에 배치되고 그로부터 절연되는 플로팅 게이트, 및 채널 영역의 제2 부분 위에 배치되고 그로부터 절연되는 비-플로팅 게이트를 포함한다. 복수의 메모리 셀들 각각은 플로팅 게이트 상의 전자들의 수에 대응하는 가중치 값을 저장하도록 구성된다. 복수의 메모리 셀들은 제1 복수의 입력들을 저장된 가중치 값들과 승산하여 제1 복수의 출력들을 생성하도록 구성된다.
아날로그 뉴로모픽 메모리 시스템에서 사용되는 각각의 비휘발성 메모리 셀은 플로팅 게이트에서 매우 특정적이고 정확한 양의 전하를, 즉 전자들의 수를 유지하도록 소거되고 프로그램되어야 한다. 예를 들어, 각각의 플로팅 게이트는 N개의 상이한 값 중 하나를 유지해야 하며, 여기서 N은 각각의 셀에 의해 표시될 수 있는 상이한 가중치들의 수이다. N의 예들은 16, 32, 64, 128 및 256을 포함한다.
VMM 어레이들을 이용하는 시스템들에서의 하나의 과제는 VMM 어레이의 출력을 정확하게 측정하고 그 출력을 다른 스테이지, 예를 들어 다른 VMM 어레이의 입력 블록에 전달하는 능력이다. 다수의 접근법들이 알려져 있지만, 이들 각각은 누설 전류를 통한 정보의 손실과 같은 소정 결점들을 갖고 있다.
필요한 것은 VMM 어레이의 출력 전류를 측정하고 출력 전류를 전자 기기의 다른 스테이지로 전달되기에 더 적합한 형태로 변환하기 위한 개선된 시스템이다.
벡터x매트릭스 승산(VMM) 어레이에 의해 출력되는 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하고, 그러한 펄스들을 인공 신경망 내의 다른 VMM 어레이에 입력으로서 제공하기 위한 다수의 실시예들이 개시된다.
도 1은 종래 기술의 인공 신경망을 예시하는 다이어그램이다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 7은 종래 기술의 적층형 게이트 플래시 메모리 셀을 도시한다.
도 8은 하나 이상의 비휘발성 메모리 어레이를 활용하는 상이한 레벨들의 예시적인 인공 신경망을 예시하는 다이어그램이다.
도 9는 벡터x매트릭스 승산 시스템을 예시하는 블록 다이어그램이다.
도 10은 하나 이상의 벡터x매트릭스 승산 시스템들을 활용하는 예시적인 인공 신경망을 예시하는 블록 다이어그램이다.
도 11은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 12는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 13은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 14는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 15는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 16은 종래 기술의 장단기 메모리 시스템을 도시한다.
도 17은 장단기 메모리 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 18은 도 17의 예시적인 셀의 실시예를 도시한다.
도 19는 도 17의 예시적인 셀의 다른 실시예를 도시한다.
도 20은 종래 기술의 게이티드 회귀 유닛 시스템(gated recurrent unit system)을 도시한다.
도 21은 게이티드 회귀 유닛 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 22는 도 21의 예시적인 셀의 실시예를 도시한다.
도 23은 도 21의 예시적인 셀의 다른 실시예를 도시한다.
도 24는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 25는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 26은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 27은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 28은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 29는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 30은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 31은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 32는 VMM 시스템을 도시한다.
도 33은 플래시 아날로그 신경 메모리 시스템을 도시한다.
도 34a는 적분 아날로그-디지털 변환기를 도시한다.
도 34b는 도 34a의 적분 아날로그-디지털 변환기의 전압 특성을 도시한다.
도 35a는 적분 아날로그-디지털 변환기를 도시한다.
도 35b는 도 35a의 적분 아날로그-디지털 변환기의 전압 특성을 도시한다.
도 36a 및 도 36b는 도 34a 및 도 35a의 아날로그-디지털 변환기의 동작의 예에 대한 파형을 도시한다.
도 36c는 타이밍 제어 회로를 도시한다.
도 37은 펄스-전압 변환기를 도시한다.
도 38은 전류-전압 변환기를 도시한다.
도 39는 전류-전압 변환기를 도시한다.
도 40은 전류-로그 전압 변환기를 도시한다.
도 41은 전류-로그 전압 변환기를 도시한다.
도 42는 디지털 데이터-전압 변환기를 도시한다.
도 43은 디지털 데이터-전압 변환기를 도시한다.
도 44는 기준 어레이를 도시한다.
도 45는 디지털 비교기를 도시한다.
도 46은 변환기 및 디지털 비교기를 도시한다.
도 47은 아날로그 비교기를 도시한다.
도 48은 변환기 및 아날로그 비교기를 도시한다.
도 49는 출력 회로를 도시한다.
도 50은 디지털화 후에 활성화되는 출력의 태양을 도시한다.
도 51은 디지털화 후에 활성화되는 출력의 태양을 도시한다.
도 52는 전하 합산기 회로를 도시한다.
도 53은 전류 합산기 회로를 도시한다.
도 54는 디지털 합산기 회로를 도시한다.
도 55a 및 도 55b는, 각각, 디지털 비트-펄스 로우 변환기 및 파형을 도시한다.
도 56은 전력 관리 방법을 도시한다.
도 57은 다른 전력 관리 방법을 도시한다.
도 58은 다른 전력 관리 방법을 도시한다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 7은 종래 기술의 적층형 게이트 플래시 메모리 셀을 도시한다.
도 8은 하나 이상의 비휘발성 메모리 어레이를 활용하는 상이한 레벨들의 예시적인 인공 신경망을 예시하는 다이어그램이다.
도 9는 벡터x매트릭스 승산 시스템을 예시하는 블록 다이어그램이다.
도 10은 하나 이상의 벡터x매트릭스 승산 시스템들을 활용하는 예시적인 인공 신경망을 예시하는 블록 다이어그램이다.
도 11은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 12는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 13은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 14는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 15는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 16은 종래 기술의 장단기 메모리 시스템을 도시한다.
도 17은 장단기 메모리 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 18은 도 17의 예시적인 셀의 실시예를 도시한다.
도 19는 도 17의 예시적인 셀의 다른 실시예를 도시한다.
도 20은 종래 기술의 게이티드 회귀 유닛 시스템(gated recurrent unit system)을 도시한다.
도 21은 게이티드 회귀 유닛 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 22는 도 21의 예시적인 셀의 실시예를 도시한다.
도 23은 도 21의 예시적인 셀의 다른 실시예를 도시한다.
도 24는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 25는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 26은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 27은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 28은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 29는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 30은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 31은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 32는 VMM 시스템을 도시한다.
도 33은 플래시 아날로그 신경 메모리 시스템을 도시한다.
도 34a는 적분 아날로그-디지털 변환기를 도시한다.
도 34b는 도 34a의 적분 아날로그-디지털 변환기의 전압 특성을 도시한다.
도 35a는 적분 아날로그-디지털 변환기를 도시한다.
도 35b는 도 35a의 적분 아날로그-디지털 변환기의 전압 특성을 도시한다.
도 36a 및 도 36b는 도 34a 및 도 35a의 아날로그-디지털 변환기의 동작의 예에 대한 파형을 도시한다.
도 36c는 타이밍 제어 회로를 도시한다.
도 37은 펄스-전압 변환기를 도시한다.
도 38은 전류-전압 변환기를 도시한다.
도 39는 전류-전압 변환기를 도시한다.
도 40은 전류-로그 전압 변환기를 도시한다.
도 41은 전류-로그 전압 변환기를 도시한다.
도 42는 디지털 데이터-전압 변환기를 도시한다.
도 43은 디지털 데이터-전압 변환기를 도시한다.
도 44는 기준 어레이를 도시한다.
도 45는 디지털 비교기를 도시한다.
도 46은 변환기 및 디지털 비교기를 도시한다.
도 47은 아날로그 비교기를 도시한다.
도 48은 변환기 및 아날로그 비교기를 도시한다.
도 49는 출력 회로를 도시한다.
도 50은 디지털화 후에 활성화되는 출력의 태양을 도시한다.
도 51은 디지털화 후에 활성화되는 출력의 태양을 도시한다.
도 52는 전하 합산기 회로를 도시한다.
도 53은 전류 합산기 회로를 도시한다.
도 54는 디지털 합산기 회로를 도시한다.
도 55a 및 도 55b는, 각각, 디지털 비트-펄스 로우 변환기 및 파형을 도시한다.
도 56은 전력 관리 방법을 도시한다.
도 57은 다른 전력 관리 방법을 도시한다.
도 58은 다른 전력 관리 방법을 도시한다.
본 발명의 인공 신경망은 CMOS 기술과 비휘발성 메모리 어레이들의 조합을 이용한다.
비휘발성 메모리 셀들
디지털 비휘발성 메모리들이 잘 알려져 있다. 예를 들어, 본 명세서에 참고로 포함되는, 미국 특허 제5,029,130호("'130 특허")는 플래시 메모리 셀들의 한 유형인, 분리형 게이트 비휘발성 메모리 셀들의 어레이를 개시하고 있다. 그러한 메모리 셀(210)이 도 2에 도시되어 있다. 각각의 메모리 셀(210)은 반도체 기판(12) 내에 형성된 소스 영역(14) 및 드레인 영역(16)을 포함하며, 그 영역들 사이에 채널 영역(18)이 있다. 플로팅 게이트(20)가 소스 영역(14)의 일부분 위에, 그리고 채널 영역(18)의 제1 부분 위에 형성되고 그로부터 절연된다(그리고 그의 전도율을 제어한다). 워드 라인 단자(22)(전형적으로 워드 라인에 결합됨)가 채널 영역(18)의 제2 부분 위에 배치되고 그로부터 절연되는(그리고 그의 전도율을 제어하는) 제1 부분, 및 위쪽으로 그리고 플로팅 게이트(20) 위로 연장되는 제2 부분을 갖는다. 플로팅 게이트(20) 및 워드 라인 단자(22)는 게이트 산화물에 의해 기판(12)으로부터 절연된다. 비트 라인(24)이 드레인 영역(16)에 결합된다.
메모리 셀(210)은 워드 라인 단자(22) 상에 높은 포지티브 전압을 배치함으로써 소거되는데(여기서 전자들이 플로팅 게이트로부터 제거됨), 이는 플로팅 게이트(20) 상의 전자들이 파울러-노드하임 터널링(Fowler-Nordheim tunneling)을 통해 중간 절연체를 통과하여 플로팅 게이트(20)로부터 워드 라인 단자(22)로 터널링하게 한다.
메모리 셀(210)은 워드 라인 단자(22) 상에 포지티브 전압을, 그리고 소스 영역(14) 상에 포지티브 전압을 배치함으로써 프로그램된다(여기서 전자들이 플로팅 게이트 상에 배치됨). 전자 전류가 소스 영역(14)으로부터 드레인 영역(16)을 향해 흐를 것이다. 전자들은 그들이 워드 라인 단자(22)와 플로팅 게이트(20) 사이의 갭에 도달할 때 가속되고 가열될 것이다. 가열된 전자들 중 일부는 플로팅 게이트(20)로부터의 정전 인력으로 인해 게이트 산화물을 통과하여 플로팅 게이트(20) 상으로 주입될 것이다.
메모리 셀(210)은 드레인 영역(16) 및 워드 라인 단자(22) 상에 포지티브 판독 전압들을 배치함(이는 워드 라인 단자 아래의 채널 영역(18)의 부분을 턴온시킴)으로써 판독된다. 플로팅 게이트(20)가 포지티브로 대전되면(즉, 전자들이 소거되면), 플로팅 게이트(20) 아래의 채널 영역(18)의 부분이 또한 턴온되고, 전류가 채널 영역(18)을 가로질러 흐를 것이며, 이는 소거된 또는 "1" 상태로 감지된다. 플로팅 게이트(20)가 네거티브로 대전되면(즉, 전자들로 프로그램되면), 플로팅 게이트(20) 아래의 채널 영역의 부분은 대부분 또는 완전히 턴오프되고, 전류가 채널 영역(18)을 가로질러 흐르지 않을 것이며(또는 흐름이 거의 없을 것이며), 이는 프로그램된 또는 "0" 상태로 감지된다.
표 1은 판독, 소거, 및 프로그램 동작들을 수행하기 위해 메모리 셀(110)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 1]
도 3은 제어 게이트(CG)(28)가 추가된 도 2의 메모리 셀(210)과 유사한, 메모리 셀(310)을 도시한다. 제어 게이트(28)는 프로그래밍에서 고전압, 예를 들어 10V, 소거에서 저전압 또는 음전압, 예를 들어 0v/-8V, 판독에서 저전압 또는 중간 범위 전압, 예를 들어 0v/2.5V로 바이어싱된다. 다른 단자들은 도 2의 것과 유사하게 바이어싱된다.
도 4는 소스 영역(14), 드레인 영역(16), 채널 영역(18)의 제1 부분 위의 플로팅 게이트(20), 채널 영역(18)의 제2 부분 위의 선택 게이트(22)(전형적으로 워드 라인(WL)에 결합됨), 플로팅 게이트(20) 위의 제어 게이트(28), 및 소스 영역(14) 위의 소거 게이트(30)를 포함하는 4-게이트 메모리 셀(410)을 도시한다. 이러한 구성은 미국 특허 제6,747,310호에 기재되어 있으며, 이 특허는 모든 목적을 위해 본 명세서에 참고로 포함된다. 여기서, 모든 게이트들은 플로팅 게이트(20)를 제외하고 비-플로팅 게이트들이며, 이는 그들이 전압 소스에 전기적으로 접속되거나 접속 가능하다는 것을 의미한다. 프로그래밍은 채널 영역(18)으로부터의 가열된 전자들이 플로팅 게이트(20) 상으로 자신들을 주입하는 것에 의해 수행된다. 소거는 전자들이 플로팅 게이트(20)로부터 소거 게이트(30)로 터널링하는 것에 의해 수행된다.
표 2는 판독, 소거, 및 프로그램 동작들을 수행하기 위해 메모리 셀(310)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 2]
도 5는 메모리 셀(510)이 소거 게이트(EG)를 포함하지 않는다는 점을 제외하고는 도 4의 메모리 셀(410)과 유사한, 메모리 셀(510)을 도시한다. 소거는 기판(18)을 고전압으로 바이어싱하고 제어 게이트(CG)(28)를 저전압 또는 음전압으로 바이어싱함으로써 수행된다. 대안적으로, 소거는 워드 라인(22)을 양전압으로 바이어싱하고 제어 게이트(28)를 음전압으로 바이어싱함으로써 수행된다. 프로그래밍 및 판독은 도 4의 것과 유사하다.
도 6은 플래시 메모리 셀의 다른 유형인 3-게이트 메모리 셀(610)을 도시한다. 메모리 셀(610)은, 메모리 셀(610)이 별개의 제어 게이트를 갖지 않는다는 점을 제외하고는, 도 4의 메모리 셀(410)과 동일하다. 소거 동작(그에 의해 소거 게이트의 사용을 통해 소거가 발생함) 및 판독 동작은, 제어 게이트 바이어스가 인가되지 않는다는 점을 제외하고는, 도 4의 것과 유사하다. 프로그래밍 동작은 또한 제어 게이트 바이어스 없이 행해지고, 결과적으로, 제어 게이트 바이어스의 결여를 보상하기 위해 프로그램 동작 동안 소스 라인 상에 더 높은 전압이 인가되어야 한다.
표 3은 판독, 소거, 및 프로그램 동작들을 수행하기 위해 메모리 셀(610)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 3]
도 7은 플래시 메모리 셀의 다른 유형인 적층형 게이트 메모리 셀(710)을 도시한다. 메모리 셀(710)은, 절연 층(도시되지 않음)에 의해 분리되어, 플로팅 게이트(20)가 전체 채널 영역(18) 위로 연장되고, 제어 게이트(22)(여기서 워드 라인에 결합될 것임)가 플로팅 게이트(20) 위로 연장된다는 점을 제외하고는, 도 2의 메모리 셀(210)과 유사하다. 소거, 프로그래밍, 및 판독 동작은 메모리 셀(210)에 대해 이전에 설명된 것과 유사한 방식으로 동작한다.
표 4는 판독, 소거, 및 프로그램 동작들을 수행하기 위해 기판(12) 및 메모리 셀(710)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 4]
인공 신경망에서 위에서 설명된 비휘발성 메모리 셀들의 유형들 중 하나를 포함하는 메모리 어레이들을 이용하기 위해, 두 가지 수정이 이루어진다. 첫째, 라인들은, 하기에서 추가로 설명되는 바와 같이, 각각의 메모리 셀이 어레이 내의 다른 메모리 셀들의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그램, 소거, 및 판독될 수 있도록 구성된다. 둘째, 메모리 셀들의 연속적인 (유사한) 프로그래밍이 제공된다.
구체적으로, 어레이 내의 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀들의 교란을 최소화시킨 상태로, 완전 소거된 상태로부터 완전 프로그램된 상태로 연속적으로 변경될 수 있다. 다른 실시예에서, 어레이 내의 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀들의 교란을 최소화시킨 상태로, 완전 프로그램된 상태로부터 완전 소거된 상태로 연속적으로 변경될 수 있고, 그 역으로도 가능하다. 이것은 셀 저장소가 유사하거나 또는 적어도, 많은 개별 값들(예컨대 16개 또는 64개의 상이한 값) 중 하나를 저장할 수 있음을 의미하는데, 이는 메모리 어레이 내의 모든 셀들의 매우 정밀하고 개별적인 튜닝을 허용하고, 메모리 어레이를 신경망의 시냅스 가중치들에 대한 미세 튜닝 조정을 저장하고 행하는 데 이상적인 것으로 되게 한다.
본 명세서에 설명된 방법들 및 수단들은 SONOS(silicon-oxide-nitride-oxide-silicon, 질화물 내의 전하 트랩), MONOS(metal-oxide-nitride-oxide-silicon, 질화물 내의 금속 전하 트랩), ReRAM(resistive ram), PCM(phase change memory), MRAM(magnetic ram), FeRAM(ferroelectric ram), OTP(bi-level or multi-level one time programmable), CeRAM(correlated electron ram) 등과 같은 다른 비휘발성 메모리 기술들에 적용될 수 있다. 본 명세서에 설명된 방법 및 수단은, 제한 없이, SRAM, DRAM, 및/또는 휘발성 시냅스 셀과 같은 신경망에 대해 사용되는 휘발성 메모리 기술들에 적용될 수 있다.
비휘발성 메모리 셀 어레이들을 채용한 신경망들
도 8은 본 실시예의 비휘발성 메모리 어레이를 활용하는 신경망의 비제한적인 예를 개념적으로 예시한다. 이 예는 안면 인식 애플리케이션에 대해 비휘발성 메모리 어레이 신경망을 이용하지만, 비휘발성 메모리 어레이 기반 신경망을 이용하여 임의의 다른 적절한 애플리케이션이 구현될 수 있다.
S0은, 이 예에 대해, 5 비트 정밀도를 갖는 32x32 픽셀 RGB 이미지(즉, 각각의 색상 R, G 및 B에 대해 하나씩인 3개의 32x32 픽셀 어레이들, 각각의 픽셀은 5 비트 정밀도임)인 입력 층이다. 입력 층(S0)으로부터 층(C1)으로 가는 시냅스들(CB1)은 몇몇 예에서 가중치들 및 다른 예에서 공유 가중치들의 상이한 세트들을 적용하며, 입력 이미지를 3x3 픽셀 중첩 필터들(커널(kernel))로 스캔하여, 필터를 1 픽셀(또는 모델별로 지시되는 바와 같이 1 초과 픽셀)만큼 시프트시킨다. 구체적으로, 이미지의 3x3 부분 내의 9개 픽셀들(즉, 필터 또는 커널로 지칭됨)에 대한 값들이 시냅스들(CB1)에 제공되며, 여기서 이들 9개의 입력 값들이 적절한 가중치들과 승산되고, 그 승산의 출력들을 합산한 후, 단일 출력 값이 결정되고, 피처 맵(feature map)(C1)의 층들 중 하나의 층의 픽셀을 생성하기 위해 CB1의 제1 시냅스에 의해 제공된다. 이어서, 3x3 필터가 입력 층(S0) 내에서 하나의 픽셀씩 우측으로 시프트되며(즉, 우측에 3개 픽셀들의 컬럼(column)을 추가하고, 좌측에서 3개 픽셀들의 컬럼을 뺌), 여기서 이러한 새롭게 위치된 필터에서의 9개 픽셀 값들이 시냅스들(CB1)에 제공되고, 이에 의해 이들은 동일한 가중치들과 승산되고, 제2 단일 출력 값이 연관된 시냅스에 의해 결정된다. 이러한 프로세스는, 3개의 모든 색상들에 대해 그리고 모든 비트들(정밀도 값들)에 대해, 3x3 필터가 입력 층(S0)의 전체 32x32 픽셀 이미지를 가로질러서 스캔할 때까지 계속된다. 이어서, 프로세스는, 층(C1)의 모든 피처 맵들이 계산될 때까지, 가중치들의 상이한 세트들을 사용하여 반복되어 C1의 상이한 피처 맵을 생성한다.
층(C1)에, 본 예에서, 각각 30x30 픽셀들을 갖는 16개 피처 맵들이 있다. 각각의 픽셀은 입력들과 커널을 승산하는 것으로부터 추출된 새로운 피처 픽셀이고, 따라서 각각의 피처 맵은 2 차원 어레이이고, 따라서, 이러한 예에서, 층(C1)은 2차원 어레이들의 16개 층들을 구성한다(본 명세서에서 언급된 층들 및 어레이들은 반드시 물리적 관계인 것이 아니라 논리적 관계임 - 즉, 어레이들은 반드시 물리적으로 2차원 어레이들로 배향되지는 않음 - 에 유념한다). 층(C1) 내의 16개 피처 맵들 각각은 필터 스캔에 적용되는 시냅스 가중치들의 상이한 16개 세트들 중 하나의 세트에 의해 생성된다. C1 피처 맵들은 모두, 경계 식별과 같은 동일한 이미지 피처의 상이한 태양들에 관한 것일 수 있다. 예를 들어, 제1 맵(이러한 제1 맵을 생성하는 데 사용되는 모든 스캔을 위해 공유되는 제1 가중치 세트를 사용하여 생성됨)은 원형 에지들을 식별할 수 있고, 제2 맵(제1 가중치 세트와는 상이한 제2 가중치 세트를 사용하여 생성됨)은 직사각형 에지들, 또는 특정 피처들의 종횡비 등을 식별할 수 있다.
활성화 함수(P1)(풀링(pooling))가 층(C1)으로부터 층(S1)으로 가기 전에 적용되는데, 이는 각각의 피처 맵 내의 연속적인 비중첩 2x2 영역들로부터의 값들을 풀링한다. 풀링 함수의 목적은, 예를 들어 에지 위치의 의존성을 감소시키고 다음 스테이지로 가기 전에 데이터 크기를 감소시키기 위해 인근 위치를 평균하는 것이다(또는 최대 함수가 또한 사용될 수 있음). 층(S1)에, 16개 15x15 피처 맵들(즉, 각각 15x15 픽셀들의 상이한 16개 어레이들)이 있다. 층(S1)으로부터 층(C2)으로 가는 시냅스들(CB2)은 1 픽셀의 필터 시프트를 갖는 4x4 필터들로 S1 내의 맵들을 스캔한다. 층(C2)에, 22개 12x12 피처 맵들이 있다. 활성화 함수(P2)(풀링)가 층(C2)으로부터 층(S2)으로 가기 전에 적용되는데, 이는 각각의 피처 맵 내의 연속적인 비중첩 2x2 영역들로부터의 값들을 풀링한다. 층(S2)에, 22개 6x6 피처 맵들이 있다. 활성화 함수(풀링)가 층(S2)으로부터 층(C3)으로 가는 시냅스들(CB3)에서 적용되며, 여기서 층(C3) 내의 모든 뉴런은 CB3의 각자의 시냅스를 통해 층(S2) 내의 모든 맵에 접속된다. 층(C3)에, 64개 뉴런들이 있다. 층(C3)으로부터 출력 층(S3)으로 가는 시냅스들(CB4)은 C3을 S3에 완전히 접속시키는데, 즉 층(C3) 내의 모든 뉴런은 층(S3) 내의 모든 뉴런에 접속된다. S3에서의 출력은 10개 뉴런들을 포함하고, 여기서 최고 출력 뉴런이 클래스를 결정한다. 이러한 출력은, 예를 들어, 원래의 이미지의 콘텐츠의 식별 또는 분류를 나타낼 수 있다.
시냅스들의 각각의 층은 비휘발성 메모리 셀들의 어레이 또는 그들의 어레이의 일부를 사용하여 구현된다.
도 9는 그 목적을 위해 사용될 수 있는 어레이의 블록 다이어그램이다. 벡터x매트릭스 승산(VMM) 어레이(32)는 비휘발성 메모리 셀들을 포함하고, 하나의 층과 다음 층 사이에서 시냅스들(예컨대, 도 6의 CB1, CB2, CB3, 및 CB4)로서 이용된다. 구체적으로, VMM 어레이(32)는 비휘발성 메모리 셀들(33)의 어레이, 소거 게이트 및 워드 라인 게이트 디코더(34), 제어 게이트 디코더(35), 비트 라인 디코더(36) 및 소스 라인 디코더(37)를 포함하며, 이들은 비휘발성 메모리 셀 어레이(33)에 대한 각자의 입력들을 디코딩한다. VMM 어레이(32)로의 입력은 소거 게이트 및 워드 라인 게이트 디코더(34)로부터 또는 제어 게이트 디코더(35)로부터일 수 있다. 이 예에서, 소스 라인 디코더(37)는 또한 비휘발성 메모리 셀 어레이(33)의 출력을 디코딩한다. 대안적으로, 비트 라인 디코더(36)는 비휘발성 메모리 셀 어레이(33)의 출력을 디코딩할 수 있다.
비휘발성 메모리 셀 어레이(33)는 두 가지 목적에 기여한다. 첫째, 그것은 VMM 어레이(32)에 의해 사용될 가중치들을 저장한다. 둘째, 비휘발성 메모리 셀 어레이(33)는 입력들을 비휘발성 메모리 셀 어레이(33)에 저장된 가중치들과 유효하게 승산하고 이들을 출력 라인(소스 라인 또는 비트 라인)마다 가산하여 출력을 생성하며, 이는 다음 층으로의 입력 또는 최종 층으로의 입력일 것이다. 승산 및 가산 함수를 수행함으로써, 비휘발성 메모리 셀 어레이(33)는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 그의 인시투(in-situ) 메모리 계산으로 인해 전력 효율적이다.
비휘발성 메모리 셀 어레이(33)의 출력은 차동 합산기(예컨대, 합산 연산 증폭기 또는 합산 전류 미러)(38)에 공급되고, 이는 비휘발성 메모리 셀 어레이(33)의 출력들을 합산하여 그 콘볼루션(convolution)에 대한 단일 값을 생성한다. 차동 합산기(38)는 포지티브 가중치 및 네거티브 가중치의 합산을 수행하도록 배열된다.
이어서, 차동 합산기(38)의 합산된 출력 값들은 활성화 함수 회로(39)에 공급되고, 이는 출력을 정류한다. 활성화 함수 회로(39)는 시그모이드(sigmoid), tanh 또는 ReLU 함수들을 제공할 수 있다. 활성화 함수 회로(39)의 정류된 출력 값들은 다음 층(예를 들어, 도 8의 C1)의 피처 맵의 요소가 되고, 이어서 다음 시냅스에 적용되어 다음 피처 맵 층 또는 최종 층을 생성한다. 따라서, 이 예에서, 비휘발성 메모리 셀 어레이(33)는 복수의 시냅스들(이들은 이전 뉴런 층으로부터 또는 이미지 데이터베이스와 같은 입력 층으로부터 그들의 입력들을 수신함)을 구성하고, 합산기(38) 및 활성화 함수 회로(39)는 복수의 뉴런들을 구성한다.
도 9의 VMM 어레이(32)에의 입력(WLx, EGx, CGx, 및 선택적으로 BLx 및 SLx)은 아날로그 레벨, 이진 레벨, 디지털 펄스들(이 경우에 펄스들을 적절한 입력 아날로그 레벨로 변환하기 위해 펄스-아날로그 변환기(PAC)가 필요할 수 있음) 또는 디지털 비트들(이 경우에 디지털 비트들을 적절한 입력 아날로그 레벨로 변환하기 위해 DAC가 제공됨)일 수 있고, 출력은 아날로그 레벨, 이진 레벨, 디지털 펄스들, 또는 디지털 비트들(이 경우에 출력 아날로그 레벨을 디지털 비트들로 변환하기 위해 출력 ADC가 제공됨)일 수 있다.
도 10은, 여기서 VMM 어레이들(32a, 32b, 32c, 32d, 및 32e)로서 라벨링된, VMM 어레이들(32)의 다수의 층들의 사용을 도시하는 블록 다이어그램이다. 도 10에 도시된 바와 같이, Inputx로 표시된 입력은 디지털-아날로그 변환기(31)에 의해 디지털로부터 아날로그로 변환되고, 입력 VMM 어레이(32a)에 제공된다. 변환된 아날로그 입력들은 전압 또는 전류일 수 있다. 제1 층에 대한 입력 D/A 변환은, 입력들(Inputx)을 입력 VMM 어레이(32a)의 매트릭스 승산기에 대한 적절한 아날로그 레벨들에 매핑시키는 함수 또는 LUT(look up table)를 사용함으로써 행해질 수 있다. 입력 변환은 또한, 외부 아날로그 입력을 입력 VMM 어레이(32a)로의 매핑된 아날로그 입력으로 변환하기 위한 아날로그-아날로그(A/A) 변환기에 의해 행해질 수 있다. 입력 변환은 또한 외부 디지털 입력을 입력 VMM 어레이(32a)에 대한 매핑된 디지털 펄스 또는 펄스들로 변환하기 위해 디지털-디지털 펄스(D/P) 변환기에 의해 행해질 수 있다.
입력 VMM 어레이(32a)에 의해 생성된 출력은 다음 VMM 어레이(은닉 레벨 1)(32b)에 대한 입력으로서 제공되고, 이는 이어서 다음 VMM 어레이(은닉 레벨 2)(32c)에 대한 입력으로서 제공되는 출력을 생성하고, 등등이다. VMM 어레이(32)의 다양한 층들은 컨볼루션 신경망(convolutional neural network, CNN)의 시냅스들 및 뉴런들의 상이한 층들로서 기능한다. 각각의 VMM 어레이(32a, 32b, 32c, 32d, 및 32e)는 독립형 물리적 비휘발성 메모리 어레이일 수 있거나, 다수의 VMM 어레이들은 동일한 물리적 비휘발성 메모리 어레이의 상이한 부분들을 활용할 수 있거나, 다수의 VMM 어레이들은 동일한 물리적 비휘발성 메모리 어레이의 중첩 부분들을 활용할 수 있다. 각각의 VMM 어레이(32a, 32b, 32c, 32d, 및 32e)는 또한 그의 어레이 또는 뉴런의 다양한 부분에 대해 시간 다중화될 수 있다. 도 10에 도시된 예는 다음과 같은 5개의 층(32a, 32b, 32c, 32d, 32e)을 포함한다: 하나의 입력 층(32a), 2개의 은닉 층(32b, 32c) 및 2개의 완전히 접속된 층(32d, 32e). 당업자는 이것은 단지 예시적인 것이고 시스템이 대신에 2개 초과의 은닉 층들 및 2개 초과의 완전히 접속된 층들을 포함할 수 있다는 것을 인식할 것이다.
벡터x매트릭스 승산(VMM) 어레이들
도 11은 뉴런 VMM 어레이(1100)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1100)는 비휘발성 메모리 셀들의 메모리 어레이(1101), 및 비휘발성 기준 메모리 셀들의 (어레이의 상부에 있는) 기준 어레이(1102)를 포함한다. 대안적으로, 다른 기준 어레이가 하부에 배치될 수 있다.
VMM 어레이(1100)에서, 제어 게이트 라인(1103)과 같은 제어 게이트 라인들이 수직 방향으로 이어지고(따라서, 로우 방향에서의 기준 어레이(1102)는 제어 게이트 라인(1103)에 직교함), 소거 게이트 라인(1104)과 같은 소거 게이트 라인들이 수평 방향으로 이어진다. 여기서, VMM 어레이(1100)로의 입력들은 제어 게이트 라인들(CG0, CG1, CG2, CG3) 상에 제공되고, VMM 어레이(1100)의 출력은 소스 라인들(SL0, SL1) 상에 나타난다. 일 실시예에서 짝수 로우들만이 사용되고, 다른 실시예에서 홀수 로우들만이 사용된다. 각각의 소스 라인(각각, SL0, SL1) 상에 배치된 전류는 그 특정 소스 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 함수를 수행한다.
신경망들에 대해 본 명세서에 설명된 바와 같이, VMM 어레이(1100)의 비휘발성 메모리 셀들, 즉 VMM 어레이(1100)의 플래시 메모리는 바람직하게는 서브-임계 영역에서 동작하도록 구성된다.
본 명세서에 기술된 비휘발성 기준 메모리 셀들 및 비휘발성 메모리 셀들은 약 반전(weak inversion)으로 바이어싱되며:
Ids = Io * e (Vg- Vth)/㎸t = w * Io * e (Vg)/㎸t,
여기서 w = e (- Vth)/㎸t이다.
메모리 셀(예컨대, 기준 메모리 셀 또는 주변 메모리 셀)을 사용하는 I-V 로그 변환기 또는 입력 전류를 입력 전압으로 변환하기 위한 트랜지스터에 대해:
Vg= k*Vt*log [Ids/wp*Io]
여기서, wp는 기준 또는 주변 메모리 셀의 w이다.
벡터 매트릭스 승산기(VMM) 어레이로서 사용되는 메모리 어레이에 대해, 출력 전류는 다음과 같다:
Iout = wa * Io * e (Vg)/㎸t, 즉
Iout = (wa/wp) * Iin = W * Iin
W = e (Vthp - Vtha)/㎸t
여기서, wa = 메모리 어레이 내의 각각의 메모리 셀의 w이다.
워드 라인 또는 제어 게이트가 입력 전압을 위해 메모리 셀에 대한 입력으로서 사용될 수 있다.
대안적으로, 본 명세서에 기술된 VMM 어레이들의 플래시 메모리 셀들은 선형 영역에서 동작하도록 구성될 수 있다:
Ids = beta* (Vgs-Vth)*Vds; beta = u*Cox*W/L
W = α (Vgs-Vth)
워드 라인 또는 제어 게이트 또는 비트 라인 또는 소스 라인이 선형 영역에서 동작된 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 메모리 셀에 대한 출력으로서 사용될 수 있다.
I-V 선형 변환기에 대해, 선형 영역에서 동작하는 메모리 셀(예컨대, 기준 메모리 셀 또는 주변 메모리 셀) 또는 트랜지스터, 또는 저항기가 입력/출력 전류를 입력/출력 전압으로 선형적으로 변환하는 데 사용될 수 있다.
도 9의 VMM 어레이(32)에 대한 다른 실시예들은, 본 명세서에 참고로 포함되는 미국 특허 출원 제15/826,345호에 기술되어 있다. 그 출원에 기술되어 있는 바와 같이, 소스 라인 또는 비트 라인이 뉴런 출력(전류 합산 출력)으로서 사용될 수 있다. 대안적으로, 본 명세서에 기술된 VMM 어레이들의 플래시 메모리 셀들은 포화 영역에서 동작하도록 구성될 수 있다:
Ids = α ½ * beta* (Vgs-Vth)2; beta = u*Cox*W/L
W = α (Vgs-Vth)2
워드 라인, 제어 게이트, 또는 소거 게이트가 포화 영역에서 동작되는 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 출력 뉴런에 대한 출력으로서 사용될 수 있다.
대안적으로, 본 명세서에 기술된 VMM 어레이들의 플래시 메모리 셀들은 모든 영역들 또는 이들의 조합(임계 아래, 선형, 또는 포화)에서 사용될 수 있다.
도 12는 뉴런 VMM 어레이(1200)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 시냅스들로서 이용된다. VMM 어레이(1200)는 비휘발성 메모리 셀들의 메모리 어레이(1203), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1201), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1202)를 포함한다. 어레이의 컬럼 방향으로 배열된 기준 어레이들(1201 및 1202)은, 단자들(BLR0, BLR1, BLR2, 및 BLR3) 내로 흐르는 전류 입력들을 전압 입력들(WL0, WL1, WL2, 및 WL3)로 변환하는 역할을 한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀들은 그들 내로 흐르는 전류 입력들과 멀티플렉서들(1214)(단지 부분적으로 도시됨)을 통해 다이오드 접속된다. 기준 셀들은 타깃 기준 레벨들로 튜닝(예컨대, 프로그램)된다. 타깃 기준 레벨들은 기준 미니-어레이 매트릭스(도시되지 않음)에 의해 제공된다.
메모리 어레이(1203)는 두 가지 목적에 기여한다. 첫째, 그것은 VMM 어레이(1200)에 의해 사용될 가중치들을 그것의 각자의 메모리 셀들 상에 저장한다. 둘째, 메모리 어레이(1203)는 입력들(즉, 단자들(BLR0, BLR1, BLR2, 및 BLR3)에 제공되는 전류 입력들, 이것에 대해 기준 어레이들(1201 및 1202)이 워드 라인들(WL0, WL1, WL2, 및 WL3)에 공급할 입력 전압들로 변환함)을 메모리 어레이(1203)에 저장된 가중치들과 유효하게 승산하고, 이어서 모든 결과들(메모리 셀 전류들)을 가산하여 각자의 비트 라인들(BL0 - BLN) 상의 출력을 생성하는데, 이는 다음 층에 대한 입력 또는 최종 층에 대한 입력일 것이다. 승산 및 가산 함수를 수행함으로써, 메모리 어레이(1203)는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 전압 입력들은 워드 라인들(WL0, WL1, WL2, 및 WL3) 상에 제공되고, 출력은 판독(추론) 동작 동안 각자의 비트 라인들(BL0 - BLN) 상에 나타난다. 비트 라인들(BL0 - BLN) 각각에 배치된 전류는 그 특정 비트 라인에 접속된 모든 비휘발성 메모리 셀들로부터의 전류들의 합산 함수를 수행한다.
표 5는 VMM 어레이(1200)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 비선택된 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 비선택된 셀들에 대한 비트 라인들, 선택된 셀들에 대한 소스 라인들, 및 비선택된 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그램의 동작들을 나타낸다.
[표 5]
도 13은 뉴런 VMM 어레이(1300)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1300)는 비휘발성 메모리 셀들의 메모리 어레이(1303), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1301), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1302)를 포함한다. 기준 어레이들(1301 및 1302)은 VMM 어레이(1300)의 로우 방향으로 이어진다. VMM 어레이는, VMM 어레이(1300)에서 워드 라인들이 수직 방향으로 이어진다는 점을 제외하고는, VMM(1000)과 유사하다. 여기서, 입력들은 워드 라인들(WLA0, WLB0, WLA1, WLB2, WLA2, WLB2, WLA3, WLB3) 상에 제공되고, 출력은 판독 동작 동안 소스 라인(SL0, SL1) 상에 나타난다. 각각의 소스 라인 상에 배치된 전류는 그 특정 소스 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 함수를 수행한다.
표 6은 VMM 어레이(1300)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 비선택된 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 비선택된 셀들에 대한 비트 라인들, 선택된 셀들에 대한 소스 라인들, 및 비선택된 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그램의 동작들을 나타낸다.
[표 6]
도 14는 뉴런 VMM 어레이(1400)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1400)는 비휘발성 메모리 셀들의 메모리 어레이(1403), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1401), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1402)를 포함한다. 기준 어레이들(1401 및 1402)은 단자들(BLR0, BLR1, BLR2, 및 BLR3) 내로 흐르는 전류 입력들을 전압 입력들(CG0, CG1, CG2, 및 CG3)로 변환하는 역할을 한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀들은 BLR0, BLR1, BLR2, 및 BLR3을 통해 그들 내로 흐르는 전류 입력들과 멀티플렉서들(1412)(단지 부분적으로 도시됨)을 통해 다이오드 접속된다. 멀티플렉서들(1412) 각각은 판독 동작 동안 제1 및 제2 비휘발성 기준 메모리 셀들 각각의 비트 라인(예컨대, BLR0) 상의 일정한 전압을 보장하기 위해 각각의 멀티플렉서(1405) 및 캐스코딩 트랜지스터(1404)를 포함한다. 기준 셀들은 타깃 기준 레벨들로 튜닝된다.
메모리 어레이(1403)는 두 가지 목적에 기여한다. 첫째, 그것은 VMM 어레이(1400)에 의해 사용될 가중치들을 저장한다. 둘째, 메모리 어레이(1403)는 입력들(단자들(BLR0, BLR1, BLR2, 및 BLR3)에 제공되는 전류 입력들, 이것에 대해 기준 어레이들(1401 및 1402)이 이러한 전류 입력들을 제어 게이트들(CG0, CG1, CG2, 및 CG3)에 공급할 입력 전압들로 변환함)을 메모리 어레이에 저장된 가중치들과 유효하게 승산하고, 이어서 모든 결과들(셀 전류들)을 가산하여 출력을 생성하는데, 이는 BL0 - BLN 상에 나타나며 다음 층에 대한 입력 또는 최종 층에 대한 입력일 것이다. 승산 및 가산 함수를 수행함으로써, 메모리 어레이는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 입력들은 제어 게이트 라인들(CG0, CG1, CG2, 및 CG3) 상에 제공되고, 출력은 판독 동작 동안 비트 라인들(BL0 - BLN) 상에 나타난다. 각각의 비트 라인 상에 배치된 전류는 그 특정 비트 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 함수를 수행한다.
VMM 어레이(1400)는 메모리 어레이(1403) 내의 비휘발성 메모리 셀들에 대한 단방향 튜닝을 구현한다. 즉, 각각의 비휘발성 메모리 셀은 소거되고, 이어서 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그램된다. 이것은, 예를 들어, 후술되는 정밀 프로그래밍 기법들을 사용하여 수행될 수 있다. (잘못된 값이 셀에 저장되도록) 너무 많은 전하가 플로팅 게이트 상에 배치되는 경우, 셀은 소거되어야 하고, 부분 프로그래밍 동작들의 시퀀스가 다시 시작되어야 한다. 도시된 바와 같이, 동일한 소거 게이트(예컨대, EG0 또는 EG1)를 공유하는 2개의 로우들이 함께 소거될 필요가 있고(페이지 소거로서 알려짐), 그 후에 각각의 셀은 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그램된다.
표 7은 VMM 어레이(1400)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 비선택된 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 비선택된 셀들에 대한 비트 라인들, 선택된 셀들에 대한 제어 게이트들, 선택된 셀들과 동일한 섹터 내의 비선택된 셀들에 대한 제어 게이트들, 선택된 셀들과는 상이한 섹터 내의 비선택된 셀들에 대한 제어 게이트들, 선택된 셀들에 대한 소거 게이트들, 비선택된 셀들에 대한 소거 게이트들, 선택된 셀들에 대한 소스 라인들, 및 비선택된 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그램의 동작들을 나타낸다.
[표 7]
도 15는 뉴런 VMM 어레이(1500)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1500)는 비휘발성 메모리 셀들의 메모리 어레이(1503), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1501), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1502)를 포함한다. EG 라인들(EGR0, EG0, EG1, 및 EGR1)은 수직으로 이어지는 반면, CG 라인들(CG0, CG1, CG2, 및 CG3) 및 SL 라인들(WL0, WL1, WL2, 및 WL3)은 수평으로 이어진다. VMM 어레이(1500)는, VMM 어레이(1500)가 양방향 튜닝을 구현한다는 점을 제외하고는 VMM 어레이(1400)와 유사하며, 여기서 각각의 개별 셀은 별개의 EG 라인들의 사용으로 인해 플로팅 게이트 상의 원하는 전하량에 도달하기 위해 필요에 따라 완전히 소거되고, 부분적으로 프로그램되고, 부분적으로 소거될 수 있다. 도시된 바와 같이, 기준 어레이들(1501 및 1502)은 (멀티플렉서들(1514)을 통한 다이오드 접속된 기준 셀들의 액션을 통해) 단자(BLR0, BLR1, BLR2, 및 BLR3) 내의 입력 전류를 로우 방향으로 메모리 셀들에 인가될 제어 게이트 전압들(CG0, CG1, CG2, 및 CG3)로 변환한다. 전류 출력(뉴런)은 비트 라인들(BL0 - BLN)에 있으며, 여기서 각각의 비트 라인은 그 특정 비트 라인에 접속된 비휘발성 메모리 셀들로부터의 모든 전류들을 합산한다.
표 8은 VMM 어레이(1500)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 비선택된 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 비선택된 셀들에 대한 비트 라인들, 선택된 셀들에 대한 제어 게이트들, 선택된 셀들과 동일한 섹터 내의 비선택된 셀들에 대한 제어 게이트들, 선택된 셀들과는 상이한 섹터 내의 비선택된 셀들에 대한 제어 게이트들, 선택된 셀들에 대한 소거 게이트들, 비선택된 셀들에 대한 소거 게이트들, 선택된 셀들에 대한 소스 라인들, 및 비선택된 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그램의 동작들을 나타낸다.
[표 8]
도 24는 뉴런 VMM 어레이(2400)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(2400)에서, 입력들(INPUT0. ..., INPUTN)은 각각 비트 라인들(BL0, ... BLN) 상에서 수신되고, 출력들(OUTPUT1, OUTPUT2, OUTPUT3, 및 OUTPUT4)은 각각 소스 라인들(SL0, SL1, SL2, 및 SL3) 상에서 생성된다.
도 25는 뉴런 VMM 어레이(2500)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. 이 예에서, 입력들(INPUT0, INPUT1, INPUT2, 및 INPUT3)은 각각 소스 라인들(SL0, SL1, SL2, 및 SL3) 상에서 수신되고, 출력들(OUTPUT0, ... OUTPUTN)은 비트 라인들(BL0, ..., BLN) 상에서 생성된다.
도 26은 뉴런 VMM 어레이(2600)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. 이 예에서, 입력들(INPUT0, ..., INPUTM)은 각각 워드 라인들(WL0, ..., WLM) 상에서 수신되고, 출력들(OUTPUT0, ... OUTPUTN)은 비트 라인들(BL0, ..., BLN) 상에서 생성된다.
도 27은 뉴런 VMM 어레이(2700)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. 이 예에서, 입력들(INPUT0, ..., INPUTM)은 각각 워드 라인들(WL0, ..., WLM) 상에서 수신되고, 출력들(OUTPUT0, ... OUTPUTN)은 비트 라인들(BL0, ..., BLN) 상에서 생성된다.
도 28은 뉴런 VMM 어레이(2800)를 도시하며, 이는 도 4에 도시된 바와 같은 메모리 셀들(410)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. 이 예에서, 입력들(INPUT0, ..., INPUTn)은 각각 비트 라인들(BL0, ..., BLN) 상에서 수신되고, 출력들(OUTPUT1 및 OUTPUT2)은 소거 게이트 라인들(EG0 및 EG1) 상에서 생성된다.
도 29는 뉴런 VMM 어레이(2900)를 도시하며, 이는 도 4에 도시된 바와 같은 메모리 셀들(410)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. 이 예에서, 입력들(INPUT0, ..., INPUTN)은, 각각 비트 라인들(BL0, ..., BLN)에 결합되는, 각각 비트 라인 제어 게이트들(2901-1, 2901-2, ..., 2901-(N-1), 및 2901-N)의 게이트들 상에서 수신된다. 예시적인 출력들(OUTPUT1 및 OUTPUT2)이 소거 게이트 라인들(SL0 및 SL1) 상에서 생성된다.
도 30은, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용되는 뉴런 VMM 어레이(3000)를 도시한다. 이 예에서, 입력들(INPUT0, ..., INPUTM)은 워드 라인들(WL0, ..., WLM) 상에서 수신되고, 출력들(OUTPUT0, ..., OUTPUTN)은 각각 비트 라인들(BL0, ..., BLN) 상에서 생성된다.
도 31은, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용되는 뉴런 VMM 어레이(3100)를 도시한다. 이 예에서, 입력들(INPUT0, ..., INPUTM)은 제어 게이트 라인들(CG0, ..., CGM) 상에서 수신된다. 출력들(OUTPUT0, ..., OUTPUTN)은 각각 소스 라인들(SL0, ..., SLN) 상에서 생성되며, 여기서 각각의 소스 라인(SLi)은 컬럼 i 내의 모든 메모리 셀들의 소스 라인 단자들에 결합된다.
도 32는 VMM 시스템(3200)을 도시한다. VMM 시스템(3200)은 VMM 어레이(3201)(VMM(900, 1000, 1100, 1200, 및 1320), 또는 다른 VMM 설계들과 같은, 이전에 논의된 VMM 설계 중 임의의 것에 기초할 수 있음), 저전압 로우 디코더(3202), 고전압 로우 디코더(3203), 기준 셀 저전압 컬럼 디코더(3204)(컬럼 방향으로 도시됨, 이는 그것이 로우 방향으로 입력 대 출력 변환을 제공한다는 것을 의미함), 비트 라인 멀티플렉서(3205), 제어 로직(3206), 아날로그 회로(3207), 뉴런 출력 블록(3208), 입력 VMM 회로 블록(3209), 프리디코더들(3210), 테스트 회로(3211), 소거-프로그램 제어 로직 EPCTL(3212), 아날로그 및 고전압 생성 회로(3213), 비트 라인 PE 드라이버(3214), 리던던시 어레이들(3215 및 3216), NVR 섹터들(3217), 및 기준 섹터들(3218)을 포함한다. 입력 회로 블록(3209)은 외부 입력으로부터 메모리 어레이의 입력 단자로의 인터페이스로서의 역할을 한다. 뉴런 출력 블록(3208)은 메모리 어레이 출력으로부터 외부 인터페이스로의 인터페이스로서의 역할을 한다.
저전압 로우 디코더(3202)는 판독 및 프로그램 동작들을 위한 바이어스 전압을 제공하고, 고전압 로우 디코더(3203)에 대한 디코딩 신호를 제공한다. 고전압 로우 디코더(3203)는 프로그램 및 소거 동작들을 위한 고전압 바이어스 신호를 제공한다. 기준 셀 저전압 컬럼 디코더(3204)는 기준 셀들에 대한 디코딩 함수를 제공한다. 비트 라인 PE 드라이버(3214)는 프로그램, 검증, 및 소거 동작들 동안 비트 라인에 대한 제어 기능을 제공한다. 아날로그 및 고전압 생성 회로(3213)는 다양한 프로그램, 소거, 프로그램 검증, 및 판독 동작들에 필요한 다수의 전압들을 제공하는 공유 바이어스 블록이다. 리던던시 어레이들(3215 및 3216)은 결함이 있는 어레이 부분을 대체하기 위한 어레이 리던던시를 제공한다. NVR(정보 섹터로도 알려진 비휘발성 레지스터) 섹터들(3217)은, 제한 없이, 사용자 정보, 디바이스 ID, 패스워드, 보안 키, 트림비트(trimbit)들, 구성 비트들, 제조 정보를 저장하는 데 사용되는 어레이 섹터들인 섹터들이다.
도 33은 아날로그 신경 메모리 시스템(3300)을 도시한다. 아날로그 신경 메모리 시스템(3300)은 매크로 블록들(3301a, 3301b, 3301c, 3301d, 3301e, 3301f, 3301g, 및 3301h); 뉴런 출력(예컨대, 합산기 회로 및 샘플 및 홀드 S/H 회로) 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h); 및 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 및 3304h)을 포함한다. 매크로 블록들(3301a, 3301b, 3301c, 3301d, 3301e 및 3301f) 각각은 플래시 메모리 셀들과 같은 비휘발성 메모리 셀들의 로우들 및 컬럼들을 포함하는 VMM 어레이를 포함하는 VMM 서브시스템이다. 신경 메모리 서브시스템(3333)은 매크로 블록(3301), 입력 블록(3303), 및 뉴런 출력 블록(3302)을 포함한다. 신경 메모리 서브시스템(3333)은 그 자신의 디지털 제어 블록을 가질 수 있다.
아날로그 신경 메모리 시스템(3300)은 도 36과 관련하여 아래에서 더 상세히 논의되는 시스템 제어 블록(3304), 아날로그 저전압 블록(3305), 고전압 블록(3306), 및 타이밍 제어 회로(3670)를 추가로 포함한다.
시스템 제어 블록(3304)은 일반적인 제어 기능 및 산술 연산을 처리하기 위해 ARM/MIPS/RISC_V 코어와 같은 하나 이상의 마이크로컨트롤러 코어를 포함할 수 있다. 시스템 제어 블록(3304)은 또한 단일 명령어로 다수의 데이터에 대해 동작하기 위해 SIMD(single instruction multiple data) 유닛들을 포함할 수 있다. 그것은 DSP 코어들을 포함할 수 있다. 그것은, 제한 없이, 풀링, 평균화, 최소, 최대, 소프트맥스, 가산, 감산, 승산, 제산, 로그, 안티-로그, ReLu, 시그모이드, tanh, 및 데이터 압축과 같은 함수를 수행하기 위한 하드웨어 또는 소프트웨어를 포함할 수 있다. 그것은 활성화 근사화기/양자화기/정규화기와 같은 함수들을 수행하기 위한 하드웨어 또는 소프트웨어를 포함할 수 있다. 그것은 입력 데이터 근사화기/양자화기/정규화기와 같은 함수들을 수행하는 능력을 포함할 수 있다. 그것은 활성화 근사화기/양자화기/정규화기의 함수들을 수행하기 위한 하드웨어 또는 소프트웨어를 포함할 수 있다. 신경 메모리 서브시스템(3333)의 제어 블록은 마이크로컨트롤러 코어들, SIMD 코어들, DSP 코어들, 및 다른 기능 유닛들과 같은 시스템 제어 블록(3304)의 유사한 요소들을 포함할 수 있다.
일 실시예에서, 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h)은 각각 길고 구성 가능한 인터커넥트를 구동할 수 있는 버퍼(예를 들어, 연산 증폭기) 저임피던스 출력 타입 회로를 포함한다. 일 실시예에서, 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g 및 3303h)은 각각 합산 고임피던스 전류 출력들을 제공한다. 다른 실시예에서, 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g 및 3302h)은 각각 활성화 회로를 포함하며, 이 경우에 출력들을 구동하기 위해 추가적인 저임피던스 버퍼가 필요하다.
다른 실시예에서, 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h)은 각각 아날로그 신호 대신에 디지털 비트를 출력하는 아날로그-디지털 변환 블록을 포함한다. 이 실시예에서, 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g 및 3303h)은 각각 각자의 뉴런 출력 블록으로부터 디지털 비트를 수신하고 디지털 비트를 아날로그 신호로 변환하는 디지털-아날로그 변환 블록을 포함한다.
따라서, 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h)은 매크로 블록들(3301a, 3301b, 3301c, 3301d, 3301e, 및 3301f)로부터 출력 전류를 수신하고, 선택적으로 그 출력 전류를 아날로그 전압, 디지털 비트, 또는 하나 이상의 디지털 펄스로 변환하며, 여기서 각각의 펄스의 폭 또는 펄스의 수는 출력 전류의 값에 응답하여 달라진다. 유사하게, 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 및 3303h)은 선택적으로 아날로그 전류, 아날로그 전압, 디지털 비트, 또는 디지털 펄스를 수신하고 - 여기서 각각의 펄스의 폭 또는 펄스의 수는 출력 전류의 값에 응답하여 달라짐 -, 아날로그 전류를 매크로 블록들(3301a, 3301b, 3301c, 3301d, 3301e, 및 3301f)에 제공한다. 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 및 3303h)은 선택적으로 전압-전류 변환기, 입력 신호에서의 디지털 펄스들의 수 또는 입력 신호에서의 디지털 펄스의 폭의 길이를 카운트하기 위한 아날로그 또는 디지털 카운터, 또는 디지털-아날로그 변환기를 포함한다.
장단기 메모리
종래 기술은 장단기 메모리(long short-term memory, LSTM)로 알려진 개념을 포함한다. LSTM 유닛들은 종종 신경망들에서 사용된다. LSTM은 신경망이 미리 결정된 임의적인 시간 간격들에 걸쳐 정보를 기억하도록 그리고 후속 동작들에서 그 정보를 사용하도록 허용한다. 종래의 LSTM 유닛은 셀, 입력 게이트, 출력 게이트 및 망각 게이트를 포함한다. 3개의 게이트들은 셀 내로의 그리고 셀 외부로의 정보의 흐름을 그리고 정보가 LSTM에서 상기되는 시간 간격을 조절한다. VMM들은 LSTM 유닛들에서 특히 유용하다.
도 16은 예시적인 LSTM(1600)을 도시한다. 이 예에서의 LSTM(1600)은 셀들(1601, 1602, 1603, 및 1604)을 포함한다. 셀(1601)은 입력 벡터(x0)를 수신하고 출력 벡터(h0) 및 셀 상태 벡터(c0)를 생성한다. 셀(1602)은 입력 벡터(x1), 셀(1601)로부터의 출력 벡터(은닉 상태)(h0), 및 셀(1601)로부터의 셀 상태(c0)를 수신하고, 출력 벡터(h1) 및 셀 상태 벡터(c1)를 생성한다. 셀(1603)은 입력 벡터(x2), 셀(1602)로부터의 출력 벡터(은닉 상태)(h1), 및 셀(1602)로부터의 셀 상태(c1)를 수신하고, 출력 벡터(h2) 및 셀 상태 벡터(c2)를 생성한다. 셀(1604)은 입력 벡터(x3), 셀(1603)로부터의 출력 벡터(은닉 상태)(h2), 및 셀(1603)로부터의 셀 상태(c2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀들이 사용될 수 있으며, 4개의 셀을 갖는 LSTM은 단지 예일 뿐이다.
도 17은 도 16의 셀들(1601, 1602, 1603, 및 1604)에 대해 사용될 수 있는 LSTM 셀(1700)의 예시적인 구현을 도시한다. LSTM 셀(1700)은 입력 벡터(x(t)), 선행 셀로부터의 셀 상태 벡터(c(t-1)), 및 선행 셀로부터의 출력 벡터(h(t-1))를 수신하고, 셀 상태 벡터(c(t)) 및 출력 벡터(h(t))를 생성한다.
LSTM 셀(1700)은 시그모이드 함수 디바이스들(1701, 1702, 및 1703)을 포함하며, 이들 각각은 얼마나 많은 입력 벡터 내의 각각의 성분이 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. LSTM 셀(1700)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 디바이스들(1704 및 1705), 2개의 벡터를 함께 승산하기 위한 승산기 디바이스들(1706, 1707, 및 1708), 및 2개의 벡터를 함께 가산하기 위한 가산 디바이스(1709)를 포함한다. 출력 벡터(h(t))는 시스템 내의 다음 LSTM 셀에 제공될 수 있거나, 그것은 다른 목적들을 위해 액세스될 수 있다.
도 18은 LSTM 셀(1700)의 구현의 예인 LSTM 셀(1800)을 도시한다. 독자의 편의를 위해, LSTM 셀(1700)로부터의 동일한 넘버링이 LSTM 셀(1800)에 사용된다. 시그모이드 함수 디바이스들(1701, 1702, 및 1703) 및 tanh 디바이스(1704) 각각은 다수의 VMM 어레이들(1801) 및 활성화 회로 블록들(1802)을 포함한다. 따라서, VMM 어레이들이 소정의 신경망 시스템들에서 사용되는 LSTM 셀들에 특히 유용함을 알 수 있다. 승산기 디바이스들(1706, 1707, 및 1708) 및 가산 디바이스(1709)는 디지털 방식으로 또는 아날로그 방식으로 구현된다. 활성화 함수 블록(1802)은 디지털 방식으로 또는 아날로그 방식으로 구현될 수 있다.
LSTM 셀(1800)에 대한 대안(및 LSTM 셀(1700)의 구현예의 다른 예)이 도 19에 도시되어 있다. 도 19에서, 시그모이드 함수 디바이스들(1701, 1702, 및 1703) 및 tanh 디바이스(1704)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이들(1901) 및 활성화 함수 블록(1902))를 공유한다. LSTM 셀(1900)은, 또한, 2개의 벡터들을 함께 승산하기 위한 승산기 디바이스(1903), 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(1908), tanh 디바이스(1705)(활성화 회로 블록(1902)을 포함함), i(t)가 시그모이드 함수 블록(1902)으로부터 출력될 때 값 i(t)를 저장하기 위한 레지스터(1907), 값 f(t) * c(t-1)를 그 값이 멀티플렉서(1910)를 통해 승산기 디바이스(1903)로부터 출력될 때 저장하기 위한 레지스터(1904), 값 i(t) * u(t)를 그 값이 멀티플렉서(1910)를 통해 승산기 디바이스(1903)로부터 출력될 때 저장하기 위한 레지스터(1905), 및 값 o(t) * c~(t)를 그 값이 멀티플렉서(1910)를 통해 승산기 디바이스(1903)로부터 출력될 때 저장하기 위한 레지스터(1906), 및 멀티플렉서(1909)를 포함한다.
LSTM 셀(1800)은 VMM 어레이들(1801) 및 각자의 활성화 함수 블록들(1802)의 다수의 세트들을 포함하는 반면, LSTM 셀(1900)은 LSTM 셀(1900)의 실시예에서 다수의 층들을 나타내는 데 사용되는 VMM 어레이들(1901) 및 활성화 함수 블록(1902)의 하나의 세트만을 포함한다. LSTM 셀(1900)은 LSTM(1800)보다 더 적은 공간을 필요로 할 것인데, 그 이유는 LSTM 셀(1900)이 LSTM 셀(1800)과 비교하여 VMM들 및 활성화 함수 블록들에 대해 1/4만큼의 공간을 요구할 것이기 때문이다.
LSTM 유닛들은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록들과 같은, VMM 어레이들 밖의 소정 회로 블록들에 의해 제공되는 기능을 요구한다는 것을 추가로 알 수 있다. 각각의 VMM 어레이에 대한 별개의 회로 블록들을 제공하는 것은 반도체 디바이스 내의 상당한 양의 공간을 필요로 할 것이고 다소 비효율적일 것이다.
게이티드 회귀 유닛들
아날로그 VMM 구현예가 GRU(게이티드 회귀 유닛) 시스템에 이용될 수 있다. GRU들은 회귀 신경망들에서의 게이팅 메커니즘이다. GRU들은, GRU 셀들이 대체적으로 LSTM 셀보다 더 적은 컴포넌트들을 포함하는 것을 제외하고는, LSTM들과 유사하다.
도 20은 예시적인 GRU(2000)를 도시한다. 이 예에서의 GRU(2000)는 셀들(2001, 2002, 2003, 및 2004)을 포함한다. 셀(2001)은 입력 벡터(x0)를 수신하고 출력 벡터(h0)를 생성한다. 셀(2002)은 입력 벡터(x1) 및 셀(2001)로부터의 출력 벡터(h0)를 수신하고, 출력 벡터(h1)를 생성한다. 셀(2003)은 입력 벡터(x2) 및 셀(2002)로부터의 출력 벡터(은닉 상태)(h1)를 수신하고, 출력 벡터(h2)를 생성한다. 셀(2004)은 입력 벡터(x3) 및 셀(2003)로부터의 출력 벡터(은닉 상태)(h2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀들이 사용될 수 있으며, 4개의 셀을 갖는 GRU는 단지 예일 뿐이다.
도 21은 도 20의 셀들(2001, 2002, 2003, 및 2004)에 사용될 수 있는 GRU 셀(2100)의 예시적인 구현예를 도시한다. GRU 셀(2100)은 선행 GRU 셀로부터 입력 벡터(x(t)) 및 출력 벡터(h(t-1))를 수신하고, 출력 벡터(h(t))를 생성한다. GRU 셀(2100)은 시그모이드 함수 디바이스들(2101 및 2102)을 포함하고, 이들 각각은 0과 1 사이의 수를 출력 벡터(h(t-1)) 및 입력 벡터(x(t))로부터의 성분들에 적용한다. GRU 셀(2100)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 디바이스(2103), 2개의 벡터를 함께 승산하기 위한 복수의 승산기 디바이스들(2104, 2105, 및 2106), 2개의 벡터를 함께 가산하기 위한 가산 디바이스(2107), 및 1로부터 입력을 감산하여 출력을 생성하기 위한 상보 디바이스(2108)를 포함한다.
도 22는 GRU 셀(2100)의 구현의 예인 GRU 셀(2200)을 도시한다. 독자의 편의를 위해, GRU 셀(2100)로부터의 동일한 넘버링이 GRU 셀(2200)에 사용된다. 도 22에서 알 수 있는 바와 같이, 시그모이드 함수 디바이스들(2101 및 2102) 및 tanh 디바이스(2103) 각각은 다수의 VMM 어레이들(2201) 및 활성화 함수 블록들(2202)을 포함한다. 따라서, VMM 어레이들은 소정 신경망 시스템들에서 사용되는 GRU 셀들에서 특히 유용하다는 것을 알 수 있다. 승산기 디바이스들(2104, 2105, 2106), 가산 디바이스(2107) 및 상보 디바이스(2108)는 디지털 방식 또는 아날로그 방식으로 구현된다. 활성화 함수 블록(2202)은 디지털 방식으로 또는 아날로그 방식으로 구현될 수 있다.
GRU 셀(2200)에 대한 대안(및 GRU 셀(2300)의 구현예의 다른 예)이 도 23에 도시되어 있다. 도 23에서, GRU 셀(2300)은 VMM 어레이들(2301) 및 활성화 함수 블록(2302)을 이용하며, 활성화 함수 블록은, 시그모이드 함수로서 구성될 때, 얼마나 많은 입력 벡터 내의 각각의 성분이 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. 도 23에서, 시그모이드 함수 디바이스들(2101 및 2102) 및 tanh 디바이스(2103)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이들(2301) 및 활성화 함수 블록(2302))를 공유한다. GRU 셀(2300)은, 또한, 2개의 벡터들을 함께 승산하기 위한 승산기 디바이스(2303), 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(2305), 1로부터 입력을 감산하여 출력을 생성하기 위한 상보적 디바이스(2309), 멀티플렉서(2304), 값 h(t-1) * r(t)를 그 값이 멀티플렉서(2304)를 통해 승산기 디바이스(2303)로부터 출력될 때 보유하기 위한 레지스터(2306), 값 h(t-1) *z(t)를 그 값이 멀티플렉서(2304)를 통해 승산기 디바이스(2303)로부터 출력될 때 보유하기 위한 레지스터(2307), 및 값 h^(t) * (1-z(t))를 그 값이 멀티플렉서(2304)를 통해 승산기 디바이스(2303)로부터 출력될 때 보유하기 위한 레지스터(2308)를 포함한다.
GRU 셀(2200)은 VMM 어레이들(2201) 및 활성화 함수 블록들(2202)의 다수의 세트들을 포함하는 반면, GRU 셀(2300)은 GRU 셀(2300)의 실시예에서 다수의 층들을 나타내는 데 사용되는 VMM 어레이들(2301) 및 활성화 함수 블록(2302)의 하나의 세트만을 포함한다. GRU 셀(2300)은 GRU 셀(2200)보다 더 적은 공간을 필요로 할 것인데, 그 이유는 GRU 셀(2300)이 GRU 셀(2200)과 비교하여 VMM들 및 활성화 함수 블록들에 대해 1/3만큼의 공간을 요구할 것이기 때문이다.
GRU 시스템들은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록들과 같은, VMM 어레이들 밖의 소정 회로 블록들에 의해 제공되는 기능을 요구한다는 것을 추가로 알 수 있다. 각각의 VMM 어레이에 대한 별개의 회로 블록들을 제공하는 것은 반도체 디바이스 내의 상당한 양의 공간을 필요로 할 것이고 다소 비효율적일 것이다.
VMM 어레이들에 대한 입력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있고(이 경우에, DAC는 디지털 비트들을 적절한 입력 아날로그 레벨로 변환하는 데 필요함), 출력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있다(이 경우에, 출력 ADC는 출력 아날로그 레벨을 디지털 비트들로 변환하는 데 필요함).
VMM 어레이 내의 각각의 메모리 셀에 대해, 각각의 가중치(w)는 단일 메모리 셀에 의해 또는 차동 셀에 의해 또는 2개의 블렌드(blend) 메모리 셀들(2개의 셀들의 평균)에 의해 구현될 수 있다. 차동 셀의 경우에, 2개의 메모리 셀들은 차동 가중치(w = w+ - w-)로서 가중치(w)를 구현하는 데 필요하다. 2개의 블렌드 메모리 셀들에서, 2개의 메모리 셀들은 2개의 셀들의 평균으로서 가중치(w)를 구현하는 데 필요하다.
출력 회로
도 34a는 출력 뉴런 전류를 디지털 펄스 또는 디지털 출력 비트로 변환하기 위해 출력 뉴런 INEU(3406)에 적용된 적분 이중 혼합 기울기 아날로그-디지털 변환기(ADC)(3400)를 도시한다.
일 실시예에서, ADC(3400)는 뉴런 출력 블록(예컨대, 도 32의 뉴런 출력 블록(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h))에서의 아날로그 출력 전류를 뉴런 출력 블록에서의 아날로그 출력 전류의 크기에 비례하여 그의 폭이 달라지는 디지털 펄스로 변환한다. 적분 연산 증폭기(3401) 및 적분 커패시터(3402)를 포함하는 적분기는 기준 전류 IREF(3407)에 대해 메모리 어레이 전류 INEU(3406)(출력 뉴런 전류임)를 적분한다.
선택적으로, IREF(3407)는 0의 온도 계수를 갖는, 또는 뉴런 전류 INEU(3406)를 추적하는 온도 계수를 갖는 밴드갭 필터를 포함할 수 있다. 후자는 선택적으로 테스트 단계 동안 결정된 값들을 포함하는 기준 어레이로부터 획득될 수 있다.
선택적으로, 교정 단계는 어레이 또는 제어 회로 내에 존재하는 임의의 누설 전류를 오프셋시키기 위해 회로가 동작 온도에 또는 그 위에 있는 동안 수행될 수 있고, 그 오프셋 값은 그 후에 도 34b 또는 도 35b에서 Ineu로부터 감산될 수 있다.
초기화 단계 동안, 스위치(3408)가 닫힌다. 이어서, Vout(3403) 및 연산 증폭기(3401)의 음의 단자로의 입력은 VREF가 될 것이다. 그 후에, 도 34b에 도시된 바와 같이, 스위치(33408)가 열리고, 고정된 시간 주기 tref 동안, 뉴런 전류 INEU(3406)가 상향 적분된다. 고정된 시간 주기 tref 동안, Vout이 상승하고, 그의 기울기는 뉴런 전류가 변함에 따라 변한다. 그 후에, 주기 tmeas 동안, 일정한 기준 전류 IREF가 시간 주기 tmeas 동안(이 주기 동안 Vout은 하강함) 하향 적분되며, 여기서 tmeas는 Vout을 VREF로 하향 적분하는 데 필요한 시간이다.
출력 EC(3405)는 VOUT > VREFV일 때 하이일 것이고, 그렇지 않으면 로우일 것이다. 따라서, EC(3405)는 그의 폭이 주기 tmeas를 반영하는 펄스를 생성하며, 그것은 결국 전류 INEU(3406)에 비례한다. 도 34b에서, EC(3405)는 tmeas = Ineu1인 예에서 파형(3410)으로서 도시되고, tmeas = Ineu2인 예에서 파형(3412)으로서 도시된다. 따라서, 출력 뉴런 전류 INEU(3406)는 디지털 펄스 EC(3405)로 변환되며, 여기서 디지털 펄스 EC(3405)의 폭은 출력 뉴런 전류 INEU(3406)의 크기에 비례하여 변한다.
전류 INEU(3406)는 = tmeas/tref*IREF이다. 예를 들어, 10 비트의 원하는 출력 비트 해상도에 대해, tref는 1024 클록 사이클과 동일한 시간 주기이다. 주기 tmeas는 INEU(3406)의 값 및 Iref의 값에 따라 0과 동일한 주기로부터 1024 클록 사이클까지 변한다. 도 34b는 INEU(3406)에 대한 2개의 상이한 값의 예를 나타내며, 하나는 INEU(3406) = Ineu1인 경우이고 하나는 INEU(3406) = Ineu2를 갖는다. 따라서, 뉴런 전류 INEU(3406)는 충전의 레이트 및 기울기에 영향을 미친다.
선택적으로, 출력 펄스 EC(3405)는 다른 VMM 어레이의 입력 블록과 같은, 회로의 다음 스테이지로의 송신을 위해 균일한 주기의 일련의 펄스로 변환될 수 있다. 주기 tmeas의 시작에서, 출력 EC(3405)는 기준 클록(3441)과 함께 AND 게이트(3440)에 입력된다. 출력은 VOUT > VREF인 주기 동안 펄스 시리즈(3442)일 것이다(여기서 펄스 시리즈(3442) 내의 펄스들의 주파수는 클록(3441)의 주파수와 동일함). 펄스들의 수는 주기 tmeas에 비례하며, 이는 전류 INEU(3406)에 비례한다.
선택적으로, 펄스 시리즈(3443)는, 펄스 시리즈(3442) 내의 펄스의 수를 카운트할, 그리고 뉴런 전류 INEU(3406)에 정비례하는, 펄스 시리즈(3442) 내의 펄스의 수의 디지털 카운트인, 카운트 값(3421)을 생성할 카운터(3420)에 입력될 수 있다. 카운트 값(3421)은 디지털 비트의 세트를 포함한다. 다른 실시예에서, 적분 이중 기울기 ADC(3400)는 뉴런 전류 INEU(3407)를 펄스로 변환할 수 있으며, 여기서 펄스의 폭은 뉴런 전류 INEU(3407)의 크기에 반비례한다. 이러한 반전은 디지털 또는 아날로그 방식으로 행해질 수 있고, 회로 상에서 후속할 출력을 위해 일련의 펄스들 또는 디지털 비트들로 변환될 수 있다.
도 35a는 셀 전류를 변화하는 폭의 디지털 펄스로 또는 일련의 디지털 출력 비트로 변환하기 위해 출력 뉴런 INEU(3504)에 적용되는 적분 이중 혼합 기울기 ADC(3500)를 도시한다. 예를 들어, ADC(3500)는 (도 32의 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h)과 같은) 뉴런 출력 블록에서의 아날로그 출력 전류를 디지털 출력 비트들의 세트로 변환하는 데 사용될 수 있다. 적분 연산 증폭기(3501) 및 적분 커패시터(3502)를 포함하는 적분기는 기준 전류 IREF(3503)에 대해 뉴런 전류 INEU(3504)를 적분한다. 스위치(3505)는 VOUT을 리셋하기 위해 닫힐 수 있다.
초기화 단계 동안, 스위치(3505)는 닫히고, VOUT은 전압 VBIAS로 충전된다.
그 후에, 도 35b에 도시된 바와 같이, 스위치(3505)가 열리고, 고정된 시간 tref 동안, 셀 전류 INEU(3504)가 상향 적분된다. 그 후에, 기준 전류 IREF(3503)는 Vout이 접지로 떨어질 때까지 시간 tmeas 동안 하향 적분된다. 전류 INEU(3504) = tmeas Ineu/tref*IREF이다. 예를 들어, 10 비트의 원하는 출력 비트 해상도에 대해, tref는 1024 클록 사이클과 동일한 시간 주기이다. 주기 tmeas는 INEU(3504) 및 Iref의 값에 따라 0과 동일한 주기로부터 1024 클록 사이클까지 변한다. 도 35b는 2개의 상이한 Ineu 값의 예들을 나타내며, 하나는 전류 Ineu1을 갖고, 하나는 전류 Ineu2를 갖는다. 따라서, 뉴런 전류 INEU(3504)는 충전 및 방전의 레이트 및 기울기에 영향을 미친다.
출력(3506)은 VOUT > VREF일 때 하이일 것이고, 그렇지 않으면 로우일 것이다. 따라서, 출력(3506)은 그의 폭이 주기 tmeas를 반영하는 펄스를 생성하며, 그것은 결국 전류 INEU(3404)에 비례한다. 도 35b에서, 출력(3506)은 tmeas = Ineu1인 예에서 파형(3512)으로서 도시되고, tmeas = Ineu2인 예에서 파형(3515)으로서 도시된다. 따라서, 출력 뉴런 전류 INEU(3504)는 펄스 출력(3506)으로 변환되며, 여기서 펄스의 폭은 출력 뉴런 전류 INEU(3504)의 크기에 비례하여 변한다.
선택적으로, 출력(3506)은 다른 VMM 어레이의 입력 블록과 같은, 회로의 다음 스테이지로의 송신을 위해 균일한 주기의 일련의 펄스로 변환될 수 있다. 주기 tmeas의 시작에서, 출력(3506)은 기준 클록(3507)과 함께 AND 게이트(3508)에 입력된다. 출력은 VOUT > VREF인 주기 동안 펄스 시리즈(3509)일 것이다(여기서 펄스 시리즈(3509) 내의 펄스들의 주파수는 기준 클록(3507)의 주파수와 동일함). 펄스들의 수는 주기 tmeas에 비례하며, 이는 전류 INEU(3504)에 비례한다.
선택적으로, 펄스 시리즈(3509)는, 펄스 시리즈(3509) 내의 펄스의 수를 카운트할, 그리고 파형들(3514, 3517)에 의해 예시된 바와 같이 뉴런 전류 INEU(3504)에 정비례하는, 펄스 시리즈(3509) 내의 펄스의 수의 디지털 카운트인, 카운트 값(3511)을 생성할 카운터(3510)에 입력될 수 있다. 카운트 값(3511)은 디지털 비트의 세트를 포함한다.
다른 실시예에서, 적분 이중 기울기 ADC(3500)는 뉴런 전류 INEU(3504)를 펄스로 변환할 수 있으며, 여기서 펄스의 폭은 뉴런 전류 INEU(3504)의 크기에 반비례한다. 이러한 반전은 디지털 또는 아날로그 방식으로 행해질 수 있고, 회로 상에서 후속할 출력을 위해 하나 이상의 펄스들 또는 디지털 비트들로 변환될 수 있다.
도 35b는 INEU(3504)에 대한, 각각, 2개의 뉴런 전류 값 Ineu1 및 Ineu2에 대한 카운트 값(3511)(디지털 비트들)을 도시한다.
도 36a 및 도 36b는 동작 동안 VMM에서 수행되는 예시적 방법(3600 및 3650)과 연관된 파형들을 도시한다. 각각의 방법(3600 및 3650)에서, 워드 라인들(WL0, WL1, 및 WL2)은 다양한 상이한 입력들을 수신하며, 이 입력들은 선택적으로 워드 라인들에 인가할 아날로그 전압 파형들로 변환될 수 있다. 이들 예에서, 전압 VC는 제1 VMM의 출력 블록에서 ADC(3400 또는 3500)에서 각각 도 34a 및 도 35a의 적분 커패시터(3402 또는 3502) 상의 전압을 나타내고, OT 펄스(= '1')는 (뉴런의 값에 비례하는) 뉴런의 출력이 적분 이중 기울기 ADC(3400 또는 3500)를 이용하여 캡처되는 주기를 나타낸다. 도 34 및 도 35를 참조하여 설명된 바와 같이, 출력 블록의 출력은 제1 VMM의 출력 뉴런 전류에 비례하여 변하는 폭의 펄스일 수 있거나, 그것은 펄스들의 수가 제1 VMM의 뉴런 전류에 비례하여 변하는 균일한 폭의 일련의 펄스일 수 있다. 그러한 펄스들은 이어서 제2 VMM에 입력들로서 인가될 수 있다.
방법(3600) 동안, 일련의 펄스(예컨대, 펄스 시리즈(3442) 또는 펄스 시리즈(3509)), 또는 일련의 펄스로부터 도출된 아날로그 전압이 제2 VMM 어레이의 워드 라인들에 인가된다. 대안적으로, 일련의 펄스들, 또는 일련의 펄스들로부터 도출된 아날로그 전압은 제2 VMM 어레이 내의 셀들의 제어 게이트들에 인가될 수 있다. 펄스들(또는 클록 사이클들)의 수는 입력의 크기에 직접적으로 대응한다. 이러한 특정 예에서, WL1 상의 입력의 크기는 WL0의 것에 비해 4배이다(4 펄스 대 1 펄스).
방법(3650) 동안, (EC(3405) 또는 출력(3506)과 같은) 변화하는 폭의 단일 펄스들, 또는 단일 펄스들로부터 도출된 아날로그 전압이 제2 VMM 어레이의 워드 라인들에 인가되지만, 펄스들은 가변 펄스 폭을 갖는다. 대안적으로, 펄스들, 또는 펄스들로부터 도출된 아날로그 전압은 제어 게이트들에 인가될 수 있다. 단일 펄스의 폭은 입력의 크기에 직접적으로 대응한다. 예를 들어, WL1 상의 입력의 크기는 WL0의 것에 비해 4배이다(WL1 펄스 폭은 WL0의 것에 비해 4배이다).
또한, 도 36c를 참조하면, 타이밍 제어 회로(3670)는 VMM 어레이의 출력 및 입력 인터페이스를 관리하고 다양한 출력 또는 다양한 입력의 변환을 순차적으로 분할함으로써 VMM 시스템의 전력을 관리하는 데 사용될 수 있다. 도 56은 전력 관리 방법(5600)을 도시한다. 제1 단계는 벡터x매트릭스 승산 어레이에 대한 복수의 입력을 수신하는 것이다(단계 5601). 제2 단계는 복수의 입력을 복수의 입력 세트로 조직화하는 것이다(단계 5602). 제3 단계는 복수의 입력 세트 각각을 어레이에 순차적으로 제공하는 것이다(단계 5603).
전력 관리 방법(5600)의 실시예는 다음과 같다. (VMM 어레이들의 워드 라인들 또는 제어 게이트들과 같은) VMM 시스템들에 대한 입력들은 시간 경과에 따라 순차적으로 인가될 수 있다. 예를 들어, 512개의 워드 라인 입력을 갖는 VMM 어레이에 대해, 워드 라인 입력들은 4개의 그룹(WL0-127, WL128-255, WL256-383, 및 WL383-511)으로 분할될 수 있다. 각각의 그룹은 상이한 시간들에 인에이블될 수 있고, 예를 들어 도 34 내지 도 36의 출력 적분 회로들에 의해, 워드 라인들의 4개의 그룹 중 하나에 대응하는 그룹에 대해 출력 판독 동작이 수행될 수 있다(뉴런 전류를 디지털 비트들로 변환함). 이어서 출력 디지털 비트 결과들은 4개의 그룹 각각이 순차적으로 판독된 후에 함께 결합된다. 이 동작은 타이밍 제어 회로(3670)에 의해 제어될 수 있다.
다른 실시예에서, 타이밍 제어 회로(3670)는 도 33의 아날로그 신경 메모리 시스템(3300)과 같은, 벡터x매트릭스 승산 시스템에서 전력 관리를 수행한다. 타이밍 제어 회로(3670)는, 예를 들어 상이한 시간들에 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 및 3303h)을 인에이블함으로써, 입력들이 시간 경과에 따라 순차적으로 VMM 서브시스템들(3333)에 인가되게 할 수 있다. 유사하게, 타이밍 제어 회로(3670)는, 예를 들어 상이한 시간들에 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g 및 3302h)을 인에이블함으로써, VMM 서브시스템들(333)로부터의 출력들이 시간 경과에 따라 순차적으로 판독되게 할 수 있다.
도 57은 전력 관리 방법(5700)을 도시한다. 제1 단계는 벡터x매트릭스 승산 어레이로부터 복수의 출력을 수신하는 것이다(단계 5701). 다음 단계는 어레이로부터의 복수의 출력을 복수의 출력 세트로 조직화하는 것이다(단계 5702). 다음 단계는 복수의 출력 세트 각각을 변환기 회로에 순차적으로 제공하는 것이다(단계 5703).
전력 관리 방법(5700)의 실시예는 다음과 같다. 전력 관리는, 상이한 시간들에서 뉴런 출력들의 그룹들을 순차적으로 판독함으로써, 즉 다수의 뉴런 출력(비트 라인)에 걸쳐 (출력 ADC 회로와 같은) 출력 회로들을 다중화함으로써 타이밍 제어 회로(3670)에 의해 구현될 수 있다. 비트 라인들은 상이한 그룹들에 배치될 수 있고, 출력 회로는, 타이밍 제어 회로(3670)의 제어 하에, 한 번에 하나의 그룹에 대해 순차적인 방식으로 동작한다.
도 58은 전력 관리 방법(5800)을 도시한다. 복수의 어레이를 포함하는 벡터x매트릭스 승산 시스템에서, 제1 단계는 복수의 입력을 수신하는 것이다. 다음 단계는 복수의 입력의 일부 또는 전부를 수신하도록 복수의 어레이 중 하나 이상을 순차적으로 인에이블하는 것이다(단계 5802).
전력 관리 방법(5800)의 실시예는 다음과 같다. 타이밍 제어 회로(3670)는 한 번에 하나의 신경망 층에 대해 동작할 수 있다. 예를 들어, 하나의 신경망 층이 제1 VMM 어레이에서 표현되고 제2 신경망 층이 제2 VMM 어레이에서 표현되는 경우, 출력 판독 동작(예컨대, 뉴런 출력이 디지털 비트로 변환되는 경우)은 한 번에 하나의 VMM 어레이에 대해 순차적으로 수행될 수 있고, 이에 의해 VMM 시스템의 전력을 관리할 수 있다.
다른 실시예에서, 타이밍 제어 회로(3670)는 도 33에 도시된 바와 같이 복수의 신경 메모리 서브시스템들(3333) 또는 복수의 매크로들(3301)을 순차적으로 인에이블함으로써 동작할 수 있다.
다른 실시예에서, 타이밍 제어 회로(3670)는 비활성 기간(온 및 오프 순차적 인에이블링 사이의 타임 오프 기간을 의미함) 동안 어레이 바이어스들(예를 들어, 입력들로서 제어 게이트 CG들 및 출력들로서 비트 라인 BL들에 대한 워드 라인 WL들 및/또는 비트 라인 BL들 상의 바이어스들, 또는 입력들로서 워드 라인들 WL들 및 출력들로서 비트 라인들 BL들에 대한 제어 게이트들 CG들 및/또는 비트 라인 BL들 상의 바이어스들)을 방전함이 없이 도 33에 도시된 바와 같은 복수의 신경 메모리 서브시스템들(3333) 또는 복수의 매크로들(3301)을 순차적으로 인에이블함으로써 동작할 수 있다. 이것은 하나 이상의 판독 동작들 동안(예를 들어, 추론 또는 분류 동작들 동안) 여러 번 사용될 어레이 바이어스들의 불필요한 방전 및 재충전으로부터 전력을 절약하기 위한 것이다.
도 37 내지 도 44는 도 33의 입력 회로 블록들(3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 및 3303h)과 같은 VMM 입력 블록, 또는 도 33의 뉴런 출력 블록들(3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 및 3302h)과 같은 뉴런 출력 블록에서 사용될 수 있는 다양한 회로를 도시한다.
도 37은 펄스-전압 변환기(3700)를 도시하는데, 이는 선택적으로 적분 이중-기울기 ADC(3400 또는 3500)에 의해 생성된 디지털 펄스들을, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 전압으로 변환하는 데 사용될 수 있다. 펄스-전압 변환기(3700)는 기준 전류(IREF)를 생성하는 기준 전류 생성기(3701), 커패시터(3702), 및 스위치(3703)를 포함한다. 입력은 스위치(3703)를 제어하는 데 사용된다. 펄스가 입력 상에서 수신될 때, 스위치는 닫히고, 전하는 커패시터(3702) 상에 축적되어, 입력 신호가 완료된 후의 커패시터(3702)의 전압은 수신된 펄스들의 수를 나타낼 것이다. 커패시터는 선택적으로 워드 라인 또는 제어 게이트 커패시턴스일 수 있다.
도 38은 전류-전압 변환기(3800)를 도시하며, 이는 선택적으로 뉴런 출력 전류를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 전압으로 변환하는 데 사용될 수 있다. 전류-전압 변환기(3800)는 여기서 수신된 뉴런 전류 ineu(또는 Iin)를 나타내는 전류 생성기(3801), 및 가변 저항기(3802)를 포함한다. 출력 Vout은 뉴런 전류가 증가함에 따라 크기가 증가할 것이다. 가변 저항기(3802)는 바람직한 대로 Vout의 최대 범위를 증가시키거나 감소시키도록 조정될 수 있다.
도 39는 전류-전압 변환기(3900)를 도시하며, 이는 선택적으로 뉴런 출력 전류를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 전압으로 변환하는 데 사용될 수 있다. 전류-전압 변환기(3900)는 연산 증폭기(3901), 커패시터(3902), 스위치(3903), 스위치(3904), 및 여기서 뉴런 전류 ICELL을 나타내는 전류 소스(3905)를 포함한다. 동작 동안, 스위치(3903)는 열릴 것이고, 스위치(3904)는 닫힐 것이다. 출력 Vout은 뉴런 전류 ICELL(3905)의 크기에 비례하여 진폭이 증가할 것이다.
도 40은 전류-로그 전압 변환기(4000)를 도시하며, 이는 선택적으로 뉴런 출력 전류를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 로그 전압으로 변환하는 데 사용될 수 있다. 전류-로그 전압 변환기(4000)는 메모리 셀(4001), (메모리 셀(4001)의 워드 라인 단자를 Vout을 생성하는 노드에 선택적으로 접속하는) 스위치(4002), 및 여기서 뉴런 전류 IiN을 나타내는 전류 소스(4003)를 포함한다. 동작 동안, 스위치(4002)는 닫힐 것이고, 출력 Vout은 뉴런 전류 iIN의 크기에 비례하여 진폭이 증가할 것이다.
도 41은 전류-로그 전압 변환기(4100)를 도시하며, 이는 선택적으로 뉴런 출력 전류를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 로그 전압으로 변환하는 데 사용될 수 있다. 전류-로그 전압 변환기(4100)는 메모리 셀(4101), (메모리 셀(4101)의 제어 게이트 단자를 Vout을 생성하는 노드에 선택적으로 접속하는) 스위치(4102), 및 여기서 뉴런 전류 IiN을 나타내는 전류 소스(4103)를 포함한다. 동작 동안, 스위치(4102)는 닫힐 것이고, 출력 Vout은 뉴런 전류 IiN의 크기에 비례하여 진폭이 증가할 것이다.
도 42는 디지털 데이터-전압 변환기(4200)를 나타내며, 이는 선택적으로 디지털 데이터(즉, 0 및 1의)를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 전압으로 변환하는 데 사용될 수 있다. 디지털 데이터-전압 변환기(4200)는 커패시터(4201), 조정 가능한 전류 소스(4202)(여기서는 메모리 셀들의 기준 어레이로부터의 전류임), 및 스위치(4203)를 포함한다. 디지털 데이터는 스위치(4203)를 제어한다. 예를 들어, 스위치(4203)는 디지털 데이터가 "1"일 때 닫히고 디지털 데이터가 "0"일 때 열릴 수 있다. 커패시터(4201) 상에 축적된 전압은 출력 OUT일 것이고 디지털 데이터의 값에 대응할 것이다. 선택적으로, 커패시터는 워드 라인 또는 제어 게이트 커패시턴스일 수 있다.
도 43은 디지털 데이터-전압 변환기(4300)를 나타내며, 이는 선택적으로 디지털 데이터(즉, 0 및 1의)를, 예를 들어, VMM 메모리 어레이의 (예를 들어, WL 또는 CG 라인 상의) 입력으로서 인가될 수 있는 전압으로 변환하는 데 사용될 수 있다. 디지털 데이터-전압 변환기(4300)는 가변 저항기(4301), 조정 가능한 전류 소스(4302)(여기서는 메모리 셀들의 기준 어레이로부터의 전류임), 및 스위치(4303)를 포함한다. 디지털 데이터는 스위치(4303)를 제어한다. 예를 들어, 스위치(4303)는 디지털 데이터가 "1"일 때 닫히고 디지털 데이터가 "0"일 때 열릴 수 있다. 출력 전압은 디지털 데이터의 값에 대응할 것이다.
도 44는 도 42 및 도 43에서 조정 가능한 전류 소스들(4202 및 4302)의 기준 전류를 제공하는 데 사용될 수 있는 기준 어레이(4400)를 도시한다.
도 45 내지 도 47은, 프로그래밍 동작 후에, VMM 내의 플래시 메모리 셀이 그 플래시 메모리 셀에 저장되도록 의도된 W 값에 대응하는 적절한 전하를 포함하는지를 검증하기 위한 컴포넌트들을 도시한다.
도 45는 디지털 입력들로서의 W 값들 및 다수의 프로그램된 플래시 메모리 셀들로부터의 감지된 W 디지털 값들의 기준 세트를 수신하는, 디지털 비교기(4500)를 도시한다. 디지털 비교기(4500)는 불일치가 있는 경우 플래그를 생성하며, 이는 하나 이상의 플래시 메모리 셀이 정확한 값으로 프로그램되지 않았음을 나타낼 것이다.
도 46은 변환기(4600)와 협력하는 도 45로부터의 디지털 비교기(4500)를 도시한다. 감지된 W 값들은 변환기(4600)의 다수의 인스턴스화에 의해 제공된다. 변환기(4600)는 플래시 메모리 셀로부터 셀 전류(ICELL)를 수신하고, 셀 전류를, ADC(3400 또는 3500)와 같은, 이전에 설명된 변환기들 중 하나 이상을 사용하여 디지털 비교기(4500)에 제공될 수 있는 디지털 데이터로 변환한다.
도 47은 아날로그 입력들로서의 W 값들 및 다수의 프로그램된 플래시 메모리 셀들로부터 감지된 W 아날로그 값들의 기준 세트를 수신하는, 아날로그 비교기(4700)를 도시한다. 아날로그 비교기(4700)는 불일치가 있는 경우 플래그를 생성하며, 이는 하나 이상의 플래시 메모리 셀이 정확한 값으로 프로그램되지 않았음을 나타낼 것이다.
도 48은 변환기(4800)와 협력하는 도 47로부터의 아날로그 비교기(4700)를 도시한다. 감지된 W 값들은 변환기(4800)에 의해 제공된다. 변환기(4800)는 감지된 W 값들의 디지털 값들을 수신하고, 이들을 (펄스-전압 변환기(3700), 디지털 데이터-전압 변환기(4200), 또는 디지털 데이터-전압 변환기(4300)와 같은) 이전에 설명된 변환기들 중 하나 이상을 사용하여 아날로그 비교기(4700)에 제공될 수 있는 아날로그 신호로 변환한다.
도 49는 출력 회로(4900)를 도시한다. 뉴런의 출력이 (예를 들어, 전술한 적분 이중-기울기 ADC(3400 또는 3500)를 사용함으로써) 디지털화되는 경우, 여전히 뉴런 출력에 대해 활성화 함수를 수행할 필요가 있을 수 있다는 것이 인식될 수 있다. 도 49는 뉴런 출력이 가변 폭의 펄스 또는 펄스 시리즈로 변환되기 전에 활성화가 발생하는 실시예를 도시한다. 출력 회로(4900)는 활성화 회로(4901) 및 전류-펄스 변환기(4902)를 포함한다. 활성화 회로는 다양한 플래시 메모리 셀들로부터 Ineuron 값들을 수신하고, 수신된 Ineuron 값들의 합인 Ineuron_act를 생성한다. 이어서 전류-펄스 변환기(4902)는 Ineuron_act를 일련의 디지털 펄스들 및/또는 일련의 디지털 펄스들의 카운트를 나타내는 디지털 데이터로 변환한다. 전술한 다른 변환기들(예컨대, 적분 이중-기울기 ADC(3400 또는 3500))이 4902 변환기 대신에 사용될 수 있다.
다른 실시예에서, 활성화는 디지털 펄스들이 생성된 후에 발생할 수 있다. 그 실시예에서, 디지털 출력 비트들은 활성화 매핑 유닛(5010)에 의해 구현된 활성화 매핑 테이블 또는 함수를 이용하여 디지털 비트들의 새로운 세트에 매핑된다. 그러한 매핑의 예들이 도 50 및 도 51에 그래픽으로 도시되어 있다. 활성화 디지털 매핑은 시그모이드, tanh, ReLu, 또는 임의의 활성화 함수를 시뮬레이션할 수 있다. 또한, 활성화 디지털 매핑은 출력 뉴런을 양자화할 수 있다.
도 52는 프로그래밍 동작 후에 검증 동작 동안 VMM의 출력을 합산하는 데 사용되어, 출력을 표현하고 이어서 선택적으로 디지털 비트 값들로 변환될 수 있는 단일 아날로그 값을 획득할 수 있는 전하 합산기(5200)의 예를 도시한다. 전하 합산기(5200)는 전류 소스(5201), 및 스위치(5202) 및 샘플-앤드-홀드(S/H) 커패시터(5203)를 포함하는 샘플-앤드-홀드 회로를 포함한다. 4-비트 디지털 값의 예에 대해 도시된 바와 같이, 4개의 평가 펄스들로부터 값을 유지하기 위한 4개의 S/H 회로들이 있으며, 여기서 이 값들은 프로세스의 마지막에 합산된다. S/H 커패시터들(5203)은 그 S/H 커패시터에 대한 2^n*DINn 비트 포지션과 연관된 비율들에 따라 선택되며; 예를 들어, C_DIN3 = x8 Cu, C_DIN2 = x4 Cu, C_DIN1 = x2 Cu, DIN0 = x1 Cu이다. 전류 소스(5201)는 또한 그에 따라 비율 조정된다.
도 53은 프로그래밍 동작 후에 검증 동작 동안 VMM의 출력을 합산하는 데 사용될 수 있는 전류 합산기(5300)를 도시한다. 전류 합산기(5300)는 전류 소스(5301), 스위치(5302), 스위치들(5303 및 5304), 및 스위치(5305)를 포함한다. 4-비트 디지털 값의 예에 대해 도시된 바와 같이, 4개의 평가 펄스들로부터 값을 유지하기 위한 전류 소스 회로들이 있으며, 여기서 이 값들은 프로세스의 마지막에 합산된다. 전류 소스는 2^n*DINn 비트 포지션에 기초하여 비율 조정되는데; 예를 들어 I_DIN3 = x8 Icell 단위, I_DIN2 = x4 Icell 단위, I_DIN1 = x2 Icell 단위, I_DIN0 = x1 Icell 단위이다.
도 54는 복수의 디지털 값들을 수신하고, 이들을 함께 합산하고, 입력들의 합을 표현하는 출력 DOUT을 생성하는 디지털 합산기(5400)를 도시한다. 디지털 합산기(5400)는 프로그래밍 동작 후에 검증 동작 동안 사용될 수 있다. 4-비트 디지털 값의 예에 대해 도시된 바와 같이, 4개의 평가 펄스들로부터 값을 유지하기 위한 디지털 출력 비트들이 있으며, 여기서 이 값들은 프로세스의 마지막에 합산된다. 디지털 출력들은 2^n*DINn 비트 포지션 기초하여 디지털식으로 스케일링되는데; 예를 들어, DOUT3 = x8 DOUT0, _DOUT2 = x4 DOUT1, I_DOUT1 = x2 DOUT0, I_DOUT0 = DOUT0이다.
도 55a 및 도 55b는 입력 블록, 로우 디코더, 또는 출력 블록 내에서 사용될 디지털 비트-펄스 폭 변환기(5500)를 도시한다. 디지털 비트-펄스 폭 변환기(5500)로부터의 펄스 폭 출력은 도 36b와 관련하여 전술한 바와 같은 그의 값에 비례한다. 디지털 비트-펄스 폭 변환기는 이진 카운터(5501)를 포함한다. 이진 카운터(5501)의 상태 Q [N:0]은 로딩 시퀀스에서 직렬 또는 병렬 데이터에 의해 로딩될 수 있다. 로우 제어 로직(5510)은 도 34 및 도 35에서의 적분 ADC와 같은 블록들로부터 제공되는 디지털 데이터 입력들의 값에 비례하는 펄스 폭을 갖는 전압 펄스를 출력한다.
도 55b는 그의 디지털 비트 값에 비례하는 폭을 갖는 출력 펄스 폭에 대한 파형을 도시한다. 먼저, 수신된 디지털 비트들 내의 데이터가 반전되고, 반전된 디지트 비트들은 카운터(5501)에 직렬로 또는 병렬로 로딩된다. 이어서 로우 펄스 폭이 그것이 최대 카운터 값에 도달할 때까지 이진 방식으로 카운트함으로써 파형(5520)에 도시된 바와 같이 로우 제어 로직(5510)에 의해 생성된다.
선택적으로, 펄스 시리즈-펄스 변환기는, (도 34b의 신호들(3411 또는 3413) 및 도 35b의 신호들(3513 또는 3516)과 같은) 펄스 시리즈를 포함하는 출력을, 그의 폭이 VMM 어레이 내의 워드 라인 또는 제어 게이트들에 인가될 VMM 어레이에 대한 입력으로서 사용될 (도 36b의 신호들 WL0, WL1 및 WLe와 같은) 펄스 시리즈 내의 펄스들의 수에 비례하여 변하는 단일 펄스로 변환하는 데 사용될 수 있다. 펄스 시리즈-펄스 변환기의 예는 제어 로직을 갖는 이진 카운터이다.
예는 4-비트 디지털 입력에 대한 표 9에 도시된 바와 같다:
[표 9]
다른 실시예는 상향 이진 카운터 및 디지털 비교 로직을 사용하는 것이다. 즉, 출력 펄스 폭은 이진 카운터의 디지털 출력들이 디지털 입력 비트들과 동일할 때까지 상향 이진 카운터를 카운트함으로써 생성된다.
다른 실시예는 하향 이진 카운터를 사용하는 것이다. 먼저, 하향 이진 카운터는 직렬로 또는 디지털 데이터 입력 패턴과 병렬로 로딩된다. 이어서 출력 펄스 폭은 이진 카운터의 디지털 출력들이 최소값, 즉 '0' 논리 상태에 도달할 때까지 하향 이진 카운터를 카운트 다운함으로써 생성된다.
본 명세서에 사용된 바와 같이, 용어들 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)와 "간접적으로~ 상에"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것에 유의하여야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "~에 실장되는"은 "직접적으로 ~에 실장되는"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 실장되는"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 결합되는"은 "직접적으로 ~에 전기적으로 결합되는"(요소들을 함께 전기적으로 접속시키는 어떠한 중간 재료들 또는 요소들도 사이에 없음)과 "간접적으로 ~에 전기적으로 결합되는"(요소들을 함께 전기적으로 접속시키는 중간 재료들 또는 요소들이 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료들/요소들도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료들/요소들을 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.
Claims (60)
- 벡터x매트릭스 승산 시스템(vector-by-matrix multiplication system)으로서,
로우(row)들 및 컬럼(column)들로 배열된 비휘발성 메모리 셀들의 어레이;
하나 이상의 입력 펄스들을 수신하고, 상기 하나 이상의 입력 펄스들을 아날로그 전압으로 변환하고, 벡터 매트릭스 승산기 동작 동안 상기 아날로그 전압을 상기 어레이 내의 워드 라인 또는 제어 게이트 라인에 인가하기 위한, 상기 어레이에 결합된 입력 블록; 및
상기 벡터 매트릭스 승산기 동작 동안 상기 어레이에 의해 인출된 뉴런 전류에 응답하여 디지털 비트들의 세트를 생성하기 위한, 상기 어레이에 결합된 출력 블록을 포함하는, 벡터x매트릭스 승산 시스템. - 제1항에 있어서, 상기 디지털 비트들의 세트는 상기 뉴런 전류가 인출되는 기간 후에 생성되는, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 출력 블록은,
반전 입력 단자, 비-반전 입력 단자, 및 출력 단자를 포함하는 제1 연산 증폭기,
출력에서 기준 전류를 생성하기 위한 기준 전류 소스,
상기 기준 전류 소스의 상기 출력을 상기 제1 연산 증폭기의 상기 반전 입력 단자에 선택적으로 결합하는 제1 스위치,
상기 뉴런 전류를 상기 제1 연산 증폭기의 상기 반전 입력 단자에 선택적으로 결합하는 제2 스위치,
상기 제1 연산 증폭기의 상기 반전 입력 단자와 상기 제1 연산 증폭기의 상기 출력 단자 사이에 결합된 커패시터,
상기 제1 연산 증폭기의 상기 반전 입력 단자와 상기 제1 연산 증폭기의 상기 출력 단자를 선택적으로 결합하는 제3 스위치, 및
상기 제1 연산 증폭기의 출력을 수신하기 위한 비-반전 입력 단자, 반전 출력 단자, 및 상기 뉴런 전류에 응답하여 디지털 펄스를 생성하기 위한 출력 단자를 포함하는 제2 연산 증폭기를 포함하는, 벡터x매트릭스 승산 시스템. - 제3항에 있어서, 상기 제2 연산 증폭기의 출력을 수신하도록 배열된 게이트 및 일련의 펄스들을 생성하기 위한 클록을 추가로 포함하는, 벡터x매트릭스 승산 시스템.
- 제4항에 있어서, 상기 디지털 비트들을 포함하는 카운트 값을 생성하기 위해 상기 게이트에 의해 출력된 상기 일련의 펄스들을 카운트하기 위한 카운터를 추가로 포함하는, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 출력 블록은,
반전 입력 단자, 비-반전 입력 단자, 및 출력 단자를 포함하는 연산 증폭기,
상기 연산 증폭기의 상기 비-반전 입력 단자에 결합된 노드로부터 기준 전류를 인출하기 위한 기준 전류 소스,
상기 연산 증폭기의 상기 비-반전 입력 단자와 접지 사이에 결합된 커패시터,
상기 연산 증폭기의 상기 비-반전 입력을 바이어스 전압 소스에 선택적으로 결합하는 스위치, 및
상기 연산 증폭기의 상기 출력에 결합된 로직 회로를 포함하며,
상기 뉴런 전류는 상기 연산 증폭기의 상기 비-반전 입력에 제공되고, 상기 하나 이상의 펄스들은 상기 로직 회로에 의해 제공되는, 벡터x매트릭스 승산 시스템. - 제1항에 있어서, 상기 하나 이상의 입력 펄스들은 단일 펄스를 포함하는, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 하나 이상의 입력 펄스들은 일련의 펄스들을 포함하는, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 입력 블록은 디지털-아날로그 변환기를 포함하는, 벡터x매트릭스 승산 시스템.
- 제9항에 있어서, 상기 디지털-아날로그 변환기는 펄스-전압 변환기를 포함하는, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제1항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 벡터x매트릭스 승산 시스템으로서,
로우들 및 컬럼들로 배열된 비휘발성 메모리 셀들의 어레이;
디지털 비트들의 제1 세트를 수신하고, 상기 디지털 비트들의 제1 세트를 아날로그 전압으로 변환하고, 벡터 매트릭스 승산기 동작 동안 상기 아날로그 전압을 상기 어레이 내의 워드 라인 또는 제어 게이트 라인에 인가하기 위한, 상기 어레이에 결합된 입력 블록; 및
상기 벡터 매트릭스 승산기 동작 동안 상기 어레이에 의해 인출된 뉴런 전류에 응답하여 디지털 출력 비트들의 제2 세트를 생성하기 위한, 상기 어레이에 결합된 출력 블록을 포함하는, 벡터x매트릭스 승산 시스템. - 제13항에 있어서, 상기 출력 블록은,
상기 뉴런 전류에 응답하여 출력 펄스를 생성하기 위한 적분 아날로그-디지털 변환기, 및
상기 출력 펄스를 펄스 시리즈로 변환하고 상기 펄스 시리즈 내의 펄스들을 카운트하여 상기 디지털 출력 비트들을 생성하기 위한 로직을 포함하는, 벡터x매트릭스 승산 시스템. - 제13항에 있어서, 상기 입력 블록은 디지털-아날로그 변환기를 포함하는, 벡터x매트릭스 승산 시스템.
- 제15항에 있어서, 상기 디지털-아날로그 변환기는 디지털 데이터-전압 변환기를 포함하는, 벡터x매트릭스 승산 시스템.
- 제13항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제13항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제13항에 있어서, 상기 출력 블록은 매핑 함수 또는 매핑 테이블을 사용하여 하나 이상의 디지털 펄스들을 디지털 비트들의 세트에 매핑하기 위한 회로를 포함하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 매핑 함수 또는 상기 매핑 테이블은 각각 시그모이드 함수를 시뮬레이션하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 매핑 함수 또는 상기 매핑 테이블은 각각 tanh 함수를 시뮬레이션하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 매핑 함수 또는 상기 매핑 테이블은 각각 ReLu 함수를 시뮬레이션하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 매핑 함수 또는 상기 매핑 테이블은 각각 활성화 함수를 시뮬레이션하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 매핑 함수 또는 상기 매핑 테이블은 상기 디지털 펄스들을 양자화하는, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제19항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 벡터x매트릭스 승산 시스템으로서,
로우들 및 컬럼들로 배열된 비휘발성 메모리 셀들의 어레이;
하나 이상의 입력 펄스들을 포함하는 입력을 수신하고, 벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 입력 라인에 상기 입력을 인가하기 위한, 상기 어레이에 결합된 입력 블록; 및
상기 벡터 매트릭스 승산기 동작 동안 상기 어레이로부터의 출력 라인 상의 출력에 응답하여 디지털 비트들의 세트를 생성하기 위한, 상기 출력 라인에 결합된 출력 블록을 포함하는, 벡터x매트릭스 승산 시스템. - 제27항에 있어서, 상기 출력은 전류인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 출력은 전압인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 비트 라인 단자들에 결합된 비트 라인인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 소스 라인 단자들에 결합된 소스 라인인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 워드 라인 단자들에 결합된 워드 라인인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 제어 게이트 단자들에 결합된 제어 게이트 라인인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 하나 이상의 입력 펄스들은 뉴런 전류에 비례하는 단일 펄스를 포함하는, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 하나 이상의 입력 펄스들은 일련의 펄스들을 포함하고, 상기 일련의 펄스들 내의 펄스들의 수는 뉴런 전류에 비례하는, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제27항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 벡터x매트릭스 승산 시스템으로서,
로우들 및 컬럼들로 배열된 비휘발성 메모리 셀들의 어레이;
하나 이상의 입력 펄스들을 포함하는 입력을 수신하고, 벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 입력 라인에 상기 입력을 인가하기 위한, 상기 어레이에 결합된 입력 블록; 및
상기 어레이로부터의 출력 라인에 결합된 출력 블록을 포함하는, 벡터x매트릭스 승산 시스템. - 제38항에 있어서, 상기 출력 블록은 상기 벡터 매트릭스 승산기 동작 동안 상기 출력 라인 상의 출력에 응답하여 디지털 비트들의 세트를 생성하는, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 전류 신호를 출력하는, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 전압 신호를 출력하는, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 비트 라인 단자들에 결합된 비트 라인인, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 소스 라인 단자들에 결합된 소스 라인인, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 워드 라인 단자들에 결합된 워드 라인인, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 제어 게이트 단자들에 결합된 제어 게이트 라인인, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 하나 이상의 입력 펄스들은 뉴런 전류에 비례하는 단일 펄스를 포함하는, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 하나 이상의 입력 펄스들은 일련의 펄스들을 포함하고, 상기 일련의 펄스들 내의 펄스들의 수는 뉴런 전류에 비례하는, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제38항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 벡터x매트릭스 승산 시스템으로서,
로우들 및 컬럼들로 배열된 비휘발성 메모리 셀들의 어레이;
디지털 입력 비트들을 포함하는 입력을 수신하고, 벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 입력 라인에 상기 입력을 인가하기 위한, 상기 어레이에 결합된 입력 블록; 및
상기 어레이로부터의 출력 라인에 결합되고, 상기 벡터 매트릭스 승산기 동작 동안 하나 이상의 펄스들을 생성하기 위한 출력 블록을 포함하는, 벡터x매트릭스 승산 시스템. - 제50항에 있어서, 상기 출력 라인은 전류 신호를 출력하는, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 출력 라인은 전압 신호를 출력하는, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 비트 라인 단자들에 결합된 비트 라인인, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 소스 라인 단자들에 결합된 소스 라인인, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 워드 라인 단자들에 결합된 워드 라인인, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 출력 라인은 상기 어레이 내의 복수의 비휘발성 메모리 셀들의 제어 게이트 단자들에 결합된 제어 게이트 라인인, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 하나 이상의 입력 펄스들은 뉴런 전류에 비례하는 단일 펄스를 포함하는, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 하나 이상의 입력 펄스들은 일련의 펄스들을 포함하고, 상기 일련의 펄스들 내의 펄스들의 수는 뉴런 전류에 비례하는, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
- 제50항에 있어서, 상기 비휘발성 메모리 셀들의 어레이 내의 각각의 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 벡터x매트릭스 승산 시스템.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962794492P | 2019-01-18 | 2019-01-18 | |
US62/794,492 | 2019-01-18 | ||
US201962814813P | 2019-03-06 | 2019-03-06 | |
US62/814,813 | 2019-03-06 | ||
US16/353,830 | 2019-03-14 | ||
US16/353,830 US11500442B2 (en) | 2019-01-18 | 2019-03-14 | System for converting neuron current into neuron current-based time pulses in an analog neural memory in a deep learning artificial neural network |
PCT/US2019/049922 WO2020149889A1 (en) | 2019-01-18 | 2019-09-06 | System for converting neuron current into neuron current-based time pulses in an analog neural memory in a deep learning artificial neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210107100A true KR20210107100A (ko) | 2021-08-31 |
KR102657246B1 KR102657246B1 (ko) | 2024-04-12 |
Family
ID=71608372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217023620A KR102657246B1 (ko) | 2019-01-18 | 2019-09-06 | 딥 러닝 인공 신경망 내의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하기 위한 시스템 |
KR1020217023621A KR102599243B1 (ko) | 2019-01-18 | 2019-09-06 | 딥 러닝 인공 신경망에서의 아날로그 신경 메모리에 대한 전력 관리 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217023621A KR102599243B1 (ko) | 2019-01-18 | 2019-09-06 | 딥 러닝 인공 신경망에서의 아날로그 신경 메모리에 대한 전력 관리 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11409352B2 (ko) |
EP (3) | EP3912102B1 (ko) |
JP (2) | JP7340612B2 (ko) |
KR (2) | KR102657246B1 (ko) |
CN (2) | CN113316793A (ko) |
TW (2) | TWI716222B (ko) |
WO (2) | WO2020149889A1 (ko) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839894B2 (en) * | 2018-06-29 | 2020-11-17 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory computation circuit and method |
US11023559B2 (en) * | 2019-01-25 | 2021-06-01 | Microsemi Soc Corp. | Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit |
CN112181895B (zh) * | 2020-09-02 | 2023-06-06 | 上海交通大学 | 可重构架构、加速器、电路部署和计算数据流方法 |
DE102020214359A1 (de) | 2020-11-16 | 2022-05-19 | Robert Bosch Gesellschaft mit beschränkter Haftung | Analog-Digital-Wandler und Matrixschaltungsanordnung |
JP7465797B2 (ja) | 2020-12-15 | 2024-04-11 | 株式会社日立製作所 | リザーバー計算機 |
US20220215239A1 (en) * | 2021-01-01 | 2022-07-07 | Silicon Storage Technology, Inc. | Digital output mechanisms for analog neural memory in a deep learning artificial neural network |
WO2022146468A1 (en) * | 2021-01-01 | 2022-07-07 | Silicon Storage Technology, Inc. | Digital output mechanisms for analog neural memory in a deep learning artificial neural network |
US20220374696A1 (en) * | 2021-05-18 | 2022-11-24 | Silicon Storage Technology, Inc. | Split array architecture for analog neural memory in a deep learning artificial neural network |
JP2024518884A (ja) * | 2021-05-18 | 2024-05-08 | シリコン ストーリッジ テクノロージー インコーポレイテッド | 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用のスプリットアレイアーキテクチャ |
US20220374161A1 (en) * | 2021-05-19 | 2022-11-24 | Silicon Storage Technology, Inc. | Output circuit for analog neural memory in a deep learning artificial neural network |
KR102416605B1 (ko) * | 2021-08-17 | 2022-07-05 | 한국과학기술원 | 비트라인 멀티 레벨 전압 센싱 회로 |
CN113672854B (zh) * | 2021-08-25 | 2024-02-06 | 恒烁半导体(合肥)股份有限公司 | 一种基于电流镜和存储单元的存内运算方法、装置及其应用 |
JP7209068B1 (ja) * | 2021-10-19 | 2023-01-19 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
EP4385015A1 (en) * | 2021-11-12 | 2024-06-19 | Silicon Storage Technology Inc. | Determination of a bias voltage to apply to one or more memory cells in a neural network |
WO2023162632A1 (ja) * | 2022-02-28 | 2023-08-31 | ヌヴォトンテクノロジージャパン株式会社 | ニューラルネットワーク演算回路、その制御回路、および、その制御方法 |
US20230317161A1 (en) * | 2022-03-31 | 2023-10-05 | Crossbar, Inc. | Matrix multiplication with resistive memory circuit having good substrate density |
KR20240148895A (ko) * | 2022-04-07 | 2024-10-11 | 실리콘 스토리지 테크놀로지 인크 | 아날로그 출력을 활용한 벡터와 행렬 간 승산 어레이 |
WO2023196000A1 (en) * | 2022-04-07 | 2023-10-12 | Silicon Storage Technology, Inc. | Vector-by-matrix-multiplication array utilizing analog inputs |
US20230325650A1 (en) * | 2022-04-07 | 2023-10-12 | Silicon Storage Technology, Inc. | Vector-by-matrix-multiplication array utilizing analog outputs |
US20240112003A1 (en) * | 2022-09-22 | 2024-04-04 | Silicon Storage Technology, Inc. | Output circuit for artificial neural network array |
EP4358087A1 (de) | 2022-10-20 | 2024-04-24 | Semron GmbH | Anordnung einer pulsweiten gesteuerten vektor-matrix multiplikationseinheit mit kapazitiven elementen und verfahren zu dessen ansteuerung |
CN116136752B (zh) * | 2023-04-19 | 2023-06-30 | 上海登临科技有限公司 | 阵列输入策略的确定方法和系统 |
CN116185334B (zh) * | 2023-04-19 | 2023-07-04 | 上海登临科技有限公司 | 阵列电路的输入控制方法和阵列电路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170017948A (ko) * | 2014-05-12 | 2017-02-15 | 실리콘 스토리지 테크놀로지 인크 | 분리형 게이트 플래시 메모리 셀들의 프로그래밍 동안 외란을 감소시키기 위한 시스템 및 방법 |
KR20170099848A (ko) * | 2014-12-19 | 2017-09-01 | 인텔 코포레이션 | 컨볼루션 연산을 수행하기 위한 저장 디바이스 및 방법 |
US20170337466A1 (en) * | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Deep Learning Neural Network Classifier Using Non-volatile Memory Array |
KR20180004026A (ko) * | 2016-07-01 | 2018-01-10 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 음의 값을 포함하는 벡터-매트릭스 곱셈 |
Family Cites Families (130)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6153831A (ja) | 1984-08-24 | 1986-03-17 | Mitsubishi Electric Corp | アナログ入力回路 |
FR2603414B1 (fr) | 1986-08-29 | 1988-10-28 | Bull Sa | Amplificateur de lecture |
JPH06103782B2 (ja) | 1987-04-17 | 1994-12-14 | 日本シイエムケイ株式会社 | プリント配線板 |
US5055897A (en) | 1988-07-27 | 1991-10-08 | Intel Corporation | Semiconductor cell for neural network and the like |
US4904881A (en) | 1989-02-10 | 1990-02-27 | Intel Corporation | EXCLUSIVE-OR cell for neural network and the like |
JP3122756B2 (ja) | 1991-01-12 | 2001-01-09 | 直 柴田 | 半導体装置 |
US5621336A (en) | 1989-06-02 | 1997-04-15 | Shibata; Tadashi | Neuron circuit |
JPH0318985A (ja) | 1989-06-16 | 1991-01-28 | Hitachi Ltd | 情報処理装置 |
US4961002A (en) | 1989-07-13 | 1990-10-02 | Intel Corporation | Synapse cell employing dual gate transistor structure |
US5028810A (en) | 1989-07-13 | 1991-07-02 | Intel Corporation | Four quadrant synapse cell employing single column summing line |
KR920010344B1 (ko) | 1989-12-29 | 1992-11-27 | 삼성전자주식회사 | 반도체 메모리 어레이의 구성방법 |
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
US5242848A (en) | 1990-01-22 | 1993-09-07 | Silicon Storage Technology, Inc. | Self-aligned method of making a split gate single transistor non-volatile electrically alterable semiconductor memory device |
EP0484506A1 (en) | 1990-05-22 | 1992-05-13 | International Business Machines Corporation | A learning machine synapse processor system apparatus |
US5150450A (en) | 1990-10-01 | 1992-09-22 | The United States Of America As Represented By The Secretary Of The Navy | Method and circuits for neuron perturbation in artificial neural network memory modification |
US5214747A (en) | 1990-12-24 | 1993-05-25 | Eastman Kodak Company | Segmented neural network with daisy chain control |
US5146602A (en) | 1990-12-26 | 1992-09-08 | Intel Corporation | Method of increasing the accuracy of an analog neural network and the like |
US5138576A (en) | 1991-11-06 | 1992-08-11 | Altera Corporation | Method and apparatus for erasing an array of electrically erasable EPROM cells |
US7071060B1 (en) | 1996-02-28 | 2006-07-04 | Sandisk Corporation | EEPROM with split gate source side infection with sidewall spacers |
JP3103908B2 (ja) * | 1992-02-28 | 2000-10-30 | ソニー株式会社 | デジタル/アナログ変換回路 |
DE69319162T2 (de) | 1992-03-26 | 1999-03-25 | Hitachi Vlsi Engineering Corp., Kodaira, Tokio/Tokyo | Flash-Speicher |
US5336936A (en) | 1992-05-06 | 1994-08-09 | Synaptics, Incorporated | One-transistor adaptable analog storage element and array |
US5264734A (en) | 1992-05-19 | 1993-11-23 | Intel Corporation | Difference calculating neural network utilizing switched capacitors |
US5256911A (en) | 1992-06-10 | 1993-10-26 | Intel Corporation | Neural network with multiplexed snyaptic processing |
US5298796A (en) | 1992-07-08 | 1994-03-29 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Nonvolatile programmable neural network synaptic array |
JP2852989B2 (ja) * | 1992-10-05 | 1999-02-03 | ニッタン株式会社 | 異常報知システム |
US5386132A (en) | 1992-11-02 | 1995-01-31 | Wong; Chun C. D. | Multimedia storage system with highly compact memory device |
JP2835272B2 (ja) | 1993-12-21 | 1998-12-14 | 株式会社東芝 | 半導体記憶装置 |
KR0151623B1 (ko) | 1994-12-07 | 1998-10-01 | 문정환 | 이이피롬 셀 및 그 제조방법 |
US6965142B2 (en) | 1995-03-07 | 2005-11-15 | Impinj, Inc. | Floating-gate semiconductor structures |
US5990512A (en) | 1995-03-07 | 1999-11-23 | California Institute Of Technology | Hole impact ionization mechanism of hot electron injection and four-terminal ρFET semiconductor structure for long-term learning |
US5825063A (en) | 1995-03-07 | 1998-10-20 | California Institute Of Technology | Three-terminal silicon synaptic device |
US5554874A (en) | 1995-06-05 | 1996-09-10 | Quantum Effect Design, Inc. | Six-transistor cell with wide bit-line pitch, double words lines, and bit-line contact shared among four cells |
US5721702A (en) | 1995-08-01 | 1998-02-24 | Micron Quantum Devices, Inc. | Reference voltage generator using flash memory cells |
US5966332A (en) | 1995-11-29 | 1999-10-12 | Sanyo Electric Co., Ltd. | Floating gate memory cell array allowing cell-by-cell erasure |
JP4036896B2 (ja) | 1995-12-01 | 2008-01-23 | キネティック リミテッド | イメージングシステム |
US5748534A (en) | 1996-03-26 | 1998-05-05 | Invox Technology | Feedback loop for reading threshold voltage |
US6389404B1 (en) | 1998-12-30 | 2002-05-14 | Irvine Sensors Corporation | Neural processing module with input architectures that make maximal use of a weighted synapse array |
US6222777B1 (en) | 1999-04-09 | 2001-04-24 | Sun Microsystems, Inc. | Output circuit for alternating multiple bit line per column memory architecture |
US6232180B1 (en) * | 1999-07-02 | 2001-05-15 | Taiwan Semiconductor Manufacturing Corporation | Split gate flash memory cell |
JP3423267B2 (ja) * | 2000-01-27 | 2003-07-07 | 寛治 大塚 | ドライバ回路、レシーバ回路、および信号伝送バスシステム |
US6282119B1 (en) | 2000-06-02 | 2001-08-28 | Winbond Electronics Corporation | Mixed program and sense architecture using dual-step voltage scheme in multi-level data storage in flash memories |
US6829598B2 (en) | 2000-10-02 | 2004-12-07 | Texas Instruments Incorporated | Method and apparatus for modeling a neural synapse function by utilizing a single conventional MOSFET |
US6563167B2 (en) | 2001-01-05 | 2003-05-13 | Silicon Storage Technology, Inc. | Semiconductor memory array of floating gate memory cells with floating gates having multiple sharp edges |
US6563733B2 (en) | 2001-05-24 | 2003-05-13 | Winbond Electronics Corporation | Memory array architectures based on a triple-polysilicon source-side injection non-volatile memory cell |
WO2003081833A2 (en) | 2002-03-22 | 2003-10-02 | Georgia Tech Research Corporation | Floating-gate analog circuit |
US6747310B2 (en) | 2002-10-07 | 2004-06-08 | Actrans System Inc. | Flash memory cells with separated self-aligned select and erase gates, and process of fabrication |
JP4174297B2 (ja) * | 2002-11-06 | 2008-10-29 | キヤノン株式会社 | 信号処理回路 |
JP2004171686A (ja) | 2002-11-20 | 2004-06-17 | Renesas Technology Corp | 不揮発性半導体記憶装置およびそのデータ消去方法 |
JP4601287B2 (ja) | 2002-12-26 | 2010-12-22 | ルネサスエレクトロニクス株式会社 | 不揮発性半導体記憶装置 |
US6822910B2 (en) | 2002-12-29 | 2004-11-23 | Macronix International Co., Ltd. | Non-volatile memory and operating method thereof |
US6781186B1 (en) | 2003-01-30 | 2004-08-24 | Silicon-Based Technology Corp. | Stack-gate flash cell structure having a high coupling ratio and its contactless flash memory arrays |
US6856551B2 (en) | 2003-02-06 | 2005-02-15 | Sandisk Corporation | System and method for programming cells in non-volatile integrated memory devices |
US6946894B2 (en) | 2003-06-12 | 2005-09-20 | Winbond Electronics Corporation | Current-mode synapse multiplier circuit |
EP1676197B1 (en) | 2003-10-16 | 2012-01-18 | Canon Kabushiki Kaisha | Operation circuit and operation control method thereof |
JP4272967B2 (ja) | 2003-10-16 | 2009-06-03 | キヤノン株式会社 | 演算回路およびその動作制御方法 |
TWI220560B (en) | 2003-10-27 | 2004-08-21 | Powerchip Semiconductor Corp | NAND flash memory cell architecture, NAND flash memory cell array, manufacturing method and operating method of the same |
JP4545423B2 (ja) | 2003-12-09 | 2010-09-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2005348117A (ja) * | 2004-06-03 | 2005-12-15 | Matsushita Electric Ind Co Ltd | デジタル/アナログ変換回路 |
US7315056B2 (en) | 2004-06-07 | 2008-01-01 | Silicon Storage Technology, Inc. | Semiconductor memory array of floating gate memory cells with program/erase and select gates |
US7092290B2 (en) | 2004-11-16 | 2006-08-15 | Sandisk Corporation | High speed programming system with reduced over programming |
TWI270199B (en) | 2005-01-31 | 2007-01-01 | Powerchip Semiconductor Corp | Non-volatile memory and manufacturing method and operating method thereof |
US8443169B2 (en) | 2005-03-28 | 2013-05-14 | Gerald George Pechanek | Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor |
US7627540B2 (en) | 2005-06-28 | 2009-12-01 | Neurosciences Research Foundation, Inc. | Addressing scheme for neural modeling and brain-based devices using special purpose processor |
US7304890B2 (en) | 2005-12-13 | 2007-12-04 | Atmel Corporation | Double byte select high voltage line for EEPROM memory block |
US7626868B1 (en) | 2007-05-04 | 2009-12-01 | Flashsilicon, Incorporation | Level verification and adjustment for multi-level cell (MLC) non-volatile memory (NVM) |
KR100910869B1 (ko) * | 2007-06-08 | 2009-08-06 | 주식회사 하이닉스반도체 | 테스트시 필요한 채널의 갯수를 줄인 반도체 메모리장치 |
US7733262B2 (en) | 2007-06-15 | 2010-06-08 | Micron Technology, Inc. | Quantizing circuits with variable reference signals |
US7630246B2 (en) | 2007-06-18 | 2009-12-08 | Micron Technology, Inc. | Programming rate identification and control in a solid state memory |
US20090039410A1 (en) | 2007-08-06 | 2009-02-12 | Xian Liu | Split Gate Non-Volatile Flash Memory Cell Having A Floating Gate, Control Gate, Select Gate And An Erase Gate With An Overhang Over The Floating Gate, Array And Method Of Manufacturing |
US7894267B2 (en) | 2007-10-30 | 2011-02-22 | Spansion Llc | Deterministic programming algorithm that provides tighter cell distributions with a reduced number of programming pulses |
JP5025436B2 (ja) * | 2007-11-29 | 2012-09-12 | 京セラ株式会社 | 基地局および無線通信方法 |
US7746698B2 (en) | 2007-12-13 | 2010-06-29 | Spansion Llc | Programming in memory devices using source bitline voltage bias |
JP4513865B2 (ja) | 2008-01-25 | 2010-07-28 | セイコーエプソン株式会社 | 並列演算装置および並列演算方法 |
JP2009211153A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリ装置、情報処理装置及び電力制御方法 |
JP2010267341A (ja) | 2009-05-15 | 2010-11-25 | Renesas Electronics Corp | 半導体装置 |
WO2011115769A2 (en) | 2010-03-15 | 2011-09-22 | California Institute Of Technology | System and method for cognitive processing for data fusion |
JP5300773B2 (ja) | 2010-03-29 | 2013-09-25 | ルネサスエレクトロニクス株式会社 | 不揮発性半導体記憶装置 |
US9665822B2 (en) | 2010-06-30 | 2017-05-30 | International Business Machines Corporation | Canonical spiking neuron network for spatiotemporal associative memory |
US8325521B2 (en) | 2010-10-08 | 2012-12-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Structure and inhibited operation of flash memory with split gate |
US8473439B2 (en) | 2010-12-08 | 2013-06-25 | International Business Machines Corporation | Integrate and fire electronic neurons |
US8892487B2 (en) | 2010-12-30 | 2014-11-18 | International Business Machines Corporation | Electronic synapses for reinforcement learning |
JP2013041654A (ja) | 2011-08-19 | 2013-02-28 | Toshiba Corp | 不揮発性記憶装置 |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US8760955B2 (en) | 2011-10-21 | 2014-06-24 | Taiwan Semiconductor Manufacturing Company, Ltd. | Electrical fuse memory arrays |
US9443471B2 (en) | 2012-07-31 | 2016-09-13 | Sharp Kabushiki Kaisha | Display device and driving method thereof |
US9466732B2 (en) | 2012-08-23 | 2016-10-11 | Silicon Storage Technology, Inc. | Split-gate memory cell with depletion-mode floating gate channel, and method of making same |
US9153230B2 (en) | 2012-10-23 | 2015-10-06 | Google Inc. | Mobile speech recognition hardware accelerator |
CN103000218A (zh) | 2012-11-20 | 2013-03-27 | 上海宏力半导体制造有限公司 | 存储器电路 |
US9275748B2 (en) | 2013-03-14 | 2016-03-01 | Silicon Storage Technology, Inc. | Low leakage, low threshold voltage, split-gate flash cell operation |
JP5659361B1 (ja) | 2013-07-04 | 2015-01-28 | パナソニックIpマネジメント株式会社 | ニューラルネットワーク回路、およびその学習方法 |
US9753959B2 (en) | 2013-10-16 | 2017-09-05 | University Of Tennessee Research Foundation | Method and apparatus for constructing a neuroscience-inspired artificial neural network with visualization of neural pathways |
US20150213898A1 (en) | 2014-01-27 | 2015-07-30 | Silicon Storage Technololgy, Inc. | Byte Erasable Non-volatile Memory Architecture And Method Of Erasing Same |
US20150324691A1 (en) | 2014-05-07 | 2015-11-12 | Seagate Technology Llc | Neural network connections using nonvolatile memory devices |
US9286982B2 (en) | 2014-08-08 | 2016-03-15 | Silicon Storage Technology, Inc. | Flash memory system with EEPROM functionality |
US9760533B2 (en) | 2014-08-14 | 2017-09-12 | The Regents On The University Of Michigan | Floating-gate transistor array for performing weighted sum computation |
US9984754B2 (en) | 2014-09-29 | 2018-05-29 | Toshiba Memory Corporation | Memory device and method for operating the same |
US10312248B2 (en) | 2014-11-12 | 2019-06-04 | Silicon Storage Technology, Inc. | Virtual ground non-volatile memory array |
US9361991B1 (en) | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN104615909B (zh) | 2015-02-02 | 2018-02-13 | 天津大学 | 基于FPGA的Izhikevich神经元网络同步放电仿真平台 |
CN105990367B (zh) | 2015-02-27 | 2019-03-12 | 硅存储技术公司 | 具有rom单元的非易失性存储器单元阵列 |
US10698975B2 (en) | 2016-01-27 | 2020-06-30 | Hewlett Packard Enterprise Development Lp | In situ transposition |
US20170330070A1 (en) * | 2016-02-28 | 2017-11-16 | Purdue Research Foundation | Spin orbit torque based electronic neuron |
US10269440B2 (en) | 2016-05-17 | 2019-04-23 | Silicon Storage Technology, Inc. | Flash memory array with individual memory cell read, program and erase |
WO2017200850A1 (en) | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Array of three-gate flash memory cells with individual memory cell read, program and erase |
CN107425003B (zh) | 2016-05-18 | 2020-07-14 | 硅存储技术公司 | 制造分裂栅非易失性闪存单元的方法 |
US10042819B2 (en) * | 2016-09-29 | 2018-08-07 | Hewlett Packard Enterprise Development Lp | Convolution accelerators |
US10346347B2 (en) | 2016-10-03 | 2019-07-09 | The Regents Of The University Of Michigan | Field-programmable crossbar array for reconfigurable computing |
US11205116B2 (en) * | 2016-12-09 | 2021-12-21 | Fu-Chang Hsu | Three-dimensional neural network array |
US10860923B2 (en) | 2016-12-20 | 2020-12-08 | Samsung Electronics Co., Ltd. | High-density neuromorphic computing element |
JP6941943B2 (ja) | 2017-02-01 | 2021-09-29 | 日本放送協会 | 予測装置およびプログラム |
KR102304331B1 (ko) | 2017-02-24 | 2021-09-24 | 에이에스엠엘 네델란즈 비.브이. | 기계 학습에 의해 공정 모델들을 결정하는 방법들 |
US10748059B2 (en) | 2017-04-05 | 2020-08-18 | International Business Machines Corporation | Architecture for an electrochemical artificial neural network |
CN110692017A (zh) | 2017-05-26 | 2020-01-14 | Asml荷兰有限公司 | 基于机器学习的辅助特征放置 |
US10460817B2 (en) | 2017-07-13 | 2019-10-29 | Qualcomm Incorporated | Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors |
US10482929B2 (en) | 2017-07-13 | 2019-11-19 | Qualcomm Incorporated | Non-volative (NV) memory (NVM) matrix circuits employing NVM matrix circuits for performing matrix computations |
US10580492B2 (en) | 2017-09-15 | 2020-03-03 | Silicon Storage Technology, Inc. | System and method for implementing configurable convoluted neural networks with flash memories |
CN109522753B (zh) | 2017-09-18 | 2020-11-06 | 清华大学 | 电路结构及其驱动方法、芯片及其认证方法、电子设备 |
US10303998B2 (en) | 2017-09-28 | 2019-05-28 | International Business Machines Corporation | Floating gate for neural network inference |
US11087207B2 (en) * | 2018-03-14 | 2021-08-10 | Silicon Storage Technology, Inc. | Decoders for analog neural memory in deep learning artificial neural network |
US11354562B2 (en) | 2018-01-03 | 2022-06-07 | Silicon Storage Technology, Inc. | Programmable neuron for analog non-volatile memory in deep learning artificial neural network |
US10552510B2 (en) | 2018-01-11 | 2020-02-04 | Mentium Technologies Inc. | Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays |
US10740181B2 (en) * | 2018-03-06 | 2020-08-11 | Western Digital Technologies, Inc. | Failed storage device rebuild method |
US10496374B2 (en) * | 2018-03-22 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Crossbar array operations using ALU modified signals |
US10217512B1 (en) | 2018-05-15 | 2019-02-26 | International Business Machines Corporation | Unit cell with floating gate MOSFET for analog memory |
US10692570B2 (en) | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
US11061646B2 (en) | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US10891222B2 (en) * | 2018-12-24 | 2021-01-12 | Macronix International Co., Ltd. | Memory storage device and operation method thereof for implementing inner product operation |
US11270763B2 (en) | 2019-01-18 | 2022-03-08 | Silicon Storage Technology, Inc. | Neural network classifier using array of three-gate non-volatile memory cells |
US10741611B1 (en) | 2019-02-11 | 2020-08-11 | International Business Machines Corporation | Resistive processing units with complementary metal-oxide-semiconductor non-volatile analog memory |
-
2019
- 2019-03-14 US US16/354,040 patent/US11409352B2/en active Active
- 2019-03-14 US US16/353,830 patent/US11500442B2/en active Active
- 2019-09-06 KR KR1020217023620A patent/KR102657246B1/ko active IP Right Grant
- 2019-09-06 EP EP19773293.6A patent/EP3912102B1/en active Active
- 2019-09-06 WO PCT/US2019/049922 patent/WO2020149889A1/en unknown
- 2019-09-06 EP EP23174482.2A patent/EP4235671A3/en active Pending
- 2019-09-06 KR KR1020217023621A patent/KR102599243B1/ko active IP Right Grant
- 2019-09-06 CN CN201980089081.8A patent/CN113316793A/zh active Pending
- 2019-09-06 JP JP2021541296A patent/JP7340612B2/ja active Active
- 2019-09-06 CN CN201980089071.4A patent/CN113302629A/zh active Pending
- 2019-09-06 EP EP19773599.6A patent/EP3912103B1/en active Active
- 2019-09-06 JP JP2021541295A patent/JP7346579B2/ja active Active
- 2019-09-06 WO PCT/US2019/050088 patent/WO2020149890A1/en unknown
- 2019-12-13 TW TW108145705A patent/TWI716222B/zh active
- 2019-12-13 TW TW108145701A patent/TWI737078B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170017948A (ko) * | 2014-05-12 | 2017-02-15 | 실리콘 스토리지 테크놀로지 인크 | 분리형 게이트 플래시 메모리 셀들의 프로그래밍 동안 외란을 감소시키기 위한 시스템 및 방법 |
KR20170099848A (ko) * | 2014-12-19 | 2017-09-01 | 인텔 코포레이션 | 컨볼루션 연산을 수행하기 위한 저장 디바이스 및 방법 |
US20170337466A1 (en) * | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Deep Learning Neural Network Classifier Using Non-volatile Memory Array |
KR20180004026A (ko) * | 2016-07-01 | 2018-01-10 | 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 | 음의 값을 포함하는 벡터-매트릭스 곱셈 |
Also Published As
Publication number | Publication date |
---|---|
US20200233482A1 (en) | 2020-07-23 |
EP4235671A3 (en) | 2023-09-13 |
TW202032561A (zh) | 2020-09-01 |
TWI737078B (zh) | 2021-08-21 |
EP3912103B1 (en) | 2023-07-05 |
JP7346579B2 (ja) | 2023-09-19 |
JP2022523291A (ja) | 2022-04-22 |
EP3912102A1 (en) | 2021-11-24 |
EP3912102B1 (en) | 2023-06-14 |
EP4235671A2 (en) | 2023-08-30 |
US11409352B2 (en) | 2022-08-09 |
TWI716222B (zh) | 2021-01-11 |
CN113316793A (zh) | 2021-08-27 |
WO2020149890A1 (en) | 2020-07-23 |
US11500442B2 (en) | 2022-11-15 |
TW202032562A (zh) | 2020-09-01 |
JP7340612B2 (ja) | 2023-09-07 |
WO2020149889A1 (en) | 2020-07-23 |
CN113302629A (zh) | 2021-08-24 |
KR102657246B1 (ko) | 2024-04-12 |
KR20210107101A (ko) | 2021-08-31 |
US20200234111A1 (en) | 2020-07-23 |
EP3912103A1 (en) | 2021-11-24 |
JP2022517810A (ja) | 2022-03-10 |
KR102599243B1 (ko) | 2023-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102657246B1 (ko) | 딥 러닝 인공 신경망 내의 아날로그 신경 메모리에서 뉴런 전류를 뉴런 전류-기반 시간 펄스들로 변환하기 위한 시스템 | |
KR102361803B1 (ko) | 딥 러닝 인공 신경 네트워크 내의 아날로그 신경 메모리의 프로그래밍을 위한 정밀도 튜닝 | |
KR102709575B1 (ko) | 딥 러닝 인공 신경 네트워크 내의 아날로그 신경 메모리를 위한 구성가능한 입력 블록들과 출력 블록들 및 물리적 레이아웃 | |
KR20220104004A (ko) | 인공 신경망 내의 아날로그 신경 메모리를 위한 정밀 데이터 튜닝 방법 및 장치 | |
KR102715858B1 (ko) | 딥 러닝 인공 신경 네트워크 내의 아날로그 신경 메모리의 프로그래밍을 위한 정밀도 튜닝 | |
US11893478B2 (en) | Programmable output blocks for analog neural memory in a deep learning artificial neural network | |
KR20220073798A (ko) | 인공 신경망에서의 아날로그 신경 메모리를 위한 정밀 프로그래밍 방법 및 장치 | |
EP4341933A1 (en) | Output circuit for analog neural memory in a deep learning artificial neural network | |
WO2022245384A1 (en) | Output circuit for analog neural memory in a deep learning artificial neural network | |
TWI841981B (zh) | 深度學習人工神經網路中類比神經記憶體的可程式輸出區塊 | |
KR20240137066A (ko) | I-v 기울기 구성을 위한 기준 어레이를 포함하는 인공 신경망 | |
KR20240026489A (ko) | 신경 메모리 가중치 데이터를 아날로그 형태 또는 디지털 형태로 저장하도록 구성 가능한 하이브리드 메모리 시스템 | |
EP4381502A1 (en) | Input circuitry for analog neural memory in a deep learning artificial neural network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |