KR102351423B1 - 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템 - Google Patents

딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템 Download PDF

Info

Publication number
KR102351423B1
KR102351423B1 KR1020217007008A KR20217007008A KR102351423B1 KR 102351423 B1 KR102351423 B1 KR 102351423B1 KR 1020217007008 A KR1020217007008 A KR 1020217007008A KR 20217007008 A KR20217007008 A KR 20217007008A KR 102351423 B1 KR102351423 B1 KR 102351423B1
Authority
KR
South Korea
Prior art keywords
array
memory cells
block
vector
output
Prior art date
Application number
KR1020217007008A
Other languages
English (en)
Other versions
KR20210035304A (ko
Inventor
휴 반 트란
비핀 티와리
마크 레이텐
난 도
Original Assignee
실리콘 스토리지 테크놀로지 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 실리콘 스토리지 테크놀로지 인크 filed Critical 실리콘 스토리지 테크놀로지 인크
Publication of KR20210035304A publication Critical patent/KR20210035304A/ko
Application granted granted Critical
Publication of KR102351423B1 publication Critical patent/KR102351423B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • G06N3/0635
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0445
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • H01L27/11521
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/40Electrodes ; Multistep manufacturing processes therefor
    • H01L29/41Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions
    • H01L29/423Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions not carrying the current to be rectified, amplified or switched
    • H01L29/42312Gate electrodes for field effect devices
    • H01L29/42316Gate electrodes for field effect devices for field-effect transistors
    • H01L29/4232Gate electrodes for field effect devices for field-effect transistors with insulated gate
    • H01L29/42324Gate electrodes for transistors with a floating gate
    • H01L29/42328Gate electrodes for transistors with a floating gate with at least one additional gate other than the floating gate and the control gate, e.g. program gate, erase gate or select gate

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Ceramic Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Complex Calculations (AREA)

Abstract

딥 러닝 신경 네트워크에 대한 아날로그 신경 메모리 시스템에서 사용하기 위한 구성가능 하드웨어 시스템에 대한 다수의 실시예들이 개시된다. 구성가능한 구성가능 하드웨어 시스템 내의 컴포넌트들은 벡터 매트릭스 승산 어레이들, 합산기 회로들, 활성화 회로들, 입력들, 기준 디바이스들, 뉴런들, 및 테스트 회로들을 포함할 수 있다. 이들 디바이스들은 다양한 층들 또는 다양한 크기들의 벡터 매트릭스 승산 어레이들을 제공하도록 구성될 수 있어서, 동일한 하드웨어가 상이한 요건들을 갖는 아날로그 신경 메모리 시스템들에서 사용될 수 있게 할 수 있다.

Description

딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템
우선권 주장
본 출원은 2018년 8월 27일자로 출원되고 발명의 명칭이 "Configurable Analog Neural Memory System for Deep Learning Neural Network"인 미국 가특허 출원 제62/723,360호, 및 2018년 11월 6일자로 출원되고 발명의 명칭이 "Configurable Analog Neural Memory System for Deep Learning Neural Network"인 미국 특허 출원 제16/182,237호에 대한 우선권을 주장한다.
기술분야
딥 러닝 신경 네트워크(deep learning neural network)에 대한 아날로그 신경 메모리 시스템에서 사용하기 위한 구성가능 하드웨어 시스템에 대한 다수의 실시예들이 개시된다.
인공 신경 네트워크들은 생물학적 신경 네트워크들(동물들의 중추신경계, 특히 뇌)을 모방하고, 다수의 입력들에 의존할 수 있고 대체적으로 알려져 있지 않은 기능들을 추정하거나 근사화하는 데 사용된다. 인공 신경 네트워크들은, 대체적으로, 서로 메시지들을 교환하는 상호연결된 "뉴런(neuron)들"의 층들을 포함한다.
도 1은 인공 신경 네트워크를 예시하며, 여기서 원들은 뉴런들의 층들 또는 입력들을 나타낸다. 연접부(시냅스(synapse)들로 지칭됨)들은 화살표들로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치들을 갖는다. 이는 신경 네트워크들을 입력들에 적응시키고 학습할 수 있게 한다. 전형적으로, 신경 네트워크들은 다수의 입력들의 층을 포함한다. 전형적으로 뉴런들의 하나 이상의 중간 층들, 및 신경 네트워크의 출력을 제공하는 뉴런들의 출력 층이 있다. 각각의 레벨의 뉴런들은 개별적으로 또는 집합적으로 시냅스들로부터의 수신된 데이터에 기초하여 결정을 행한다.
고성능 정보 프로세싱을 위한 인공 신경 네트워크들의 개발에서의 주요 과제들 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 신경 네트워크들은 매우 많은 수의 시냅스들에 의존하여, 뉴런들 사이의 높은 연결성, 즉 매우 높은 계산 병렬성(computational parallelism)을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터들 또는 특수 그래픽 프로세싱 유닛 클러스터들로 달성될 수 있다. 그러나, 고비용에 더하여, 이들 접근법들은 또한, 그들이 주로 저정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 네트워크(biological network)들과 비교하여 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로들이 인공 신경 네트워크들에 사용되어 왔지만, 대부분의 CMOS 구현된 시냅스들은 많은 수의 뉴런들 및 시냅스들이 주어지면 너무 부피가 커졌다.
출원인은, 참고로 포함되는, 미국 특허 출원 제15/594,439호에서 하나 이상의 비휘발성 메모리 어레이들을 시냅스들로서 이용하는 인공(아날로그) 신경 네트워크를 이전에 개시하였다. 비휘발성 메모리 어레이들은 아날로그 신경모방형 메모리(analog neuromorphic memory)로서 동작한다. 신경 네트워크 디바이스는 제1 복수의 입력들을 수신하고 그로부터 제1 복수의 출력들을 생성하도록 구성된 제1 복수의 시냅스들, 및 제1 복수의 출력들을 수신하도록 구성된 제1 복수의 뉴런들을 포함한다. 제1 복수의 시냅스들은 복수의 메모리 셀들을 포함하는데, 여기서 메모리 셀들 각각은 반도체 기판 내에 형성되고 채널 영역이 사이에 연장되는 이격된 소스 영역과 드레인 영역, 채널 영역의 제1 부분 위에 배치되고 그로부터 절연되는 플로팅 게이트, 및 채널 영역의 제2 부분 위에 배치되고 그로부터 절연되는 비-플로팅 게이트를 포함한다. 복수의 메모리 셀들 각각은 플로팅 게이트 상의 전자들의 수에 대응하는 가중치 값을 저장하도록 구성된다. 복수의 메모리 셀들은 제1 복수의 입력들을 저장된 가중치 값들과 승산하여 제1 복수의 출력들을 생성하도록 구성된다.
아날로그 신경모방형 메모리 시스템에서 사용되는 각각의 비휘발성 메모리 셀들은 플로팅 게이트에서 매우 특정적이고 정확한 양의 전하, 즉 일정 수의 전자들을 보유하도록 소거되고 프로그래밍되어야 한다. 예를 들어, 각각의 플로팅 게이트는 N개의 상이한 값들 중 하나를 보유해야 하며, 여기서 N은 각각의 셀에 의해 표시될 수 있는 상이한 가중치들의 수이다. N의 예들은 16, 32, 64, 128, 및 256을 포함한다.
아날로그 신경 메모리 시스템들을 구현하는 하나의 과제는 상이한 크기들의 어레이들을 포함하는 다양한 층들이 요구된다는 것이다. 상이한 크기의 어레이들은 어레이 외부의 회로부를 지원하기 위한 상이한 요구들을 갖는다. 각각의 시스템에 대해 맞춤화된 하드웨어를 제공하는 것은 비용이 많이 들고 시간 소모적일 수 있다.
동일한 하드웨어가 상이한 요건들을 갖는 아날로그 신경 메모리 시스템들에서 사용될 수 있도록, 정확한 크기의 지원 회로부와 함께, 다양한 크기들의 벡터 매트릭스 승산(vector-by-matrix multiplication, VMM) 어레이들의 다양한 층들을 제공할 수 있는 아날로그 신경 메모리 시스템에 대한 구성가능 아키텍처가 필요하다.
딥 러닝 신경 네트워크에 대한 아날로그 신경 메모리 시스템에서 사용하기 위한 구성가능 하드웨어 시스템에 대한 다수의 실시예들이 개시된다. 구성가능한 구성가능 하드웨어 시스템 내의 컴포넌트들은 벡터 매트릭스 승산 어레이들, 합산기 회로들, 활성화 회로들, 입력들, 기준 디바이스들, 뉴런들, 및 테스트 회로들을 포함할 수 있다. 이들 디바이스들은 다양한 층들 또는 다양한 크기들의 벡터 매트릭스 승산 어레이들을 제공하도록 구성될 수 있어서, 동일한 하드웨어가 상이한 요건들을 갖는 아날로그 신경 메모리 시스템들에서 사용될 수 있게 할 수 있다.
도 1은 종래 기술의 인공 신경 네트워크를 예시하는 도면이다.
도 2는 종래의 2-게이트 비휘발성 메모리 셀의 측단면도이다.
도 3은 종래의 4-게이트 비휘발성 메모리 셀의 측단면도이다.
도 4는 종래의 3-게이트 비휘발성 메모리 셀의 측단면도이다.
도 5는 다른 종래의 2-게이트 비휘발성 메모리 셀의 측단면도이다.
도 6은 비휘발성 메모리 어레이를 이용하는 예시적인 인공 신경 네트워크의 상이한 레벨들을 예시하는 도면이다.
도 7은 벡터 승산기 매트릭스(vector multiplier matrix)를 예시하는 블록도이다.
도 8은 다양한 레벨들의 벡터 승산기 매트릭스를 예시하는 블록도이다.
도 9는 벡터 승산기 매트릭스의 다른 실시예를 도시한다.
도 10은 벡터 승산기 매트릭스의 다른 실시예를 도시한다.
도 11은 벡터 승산기 매트릭스의 다른 실시예를 도시한다.
도 12는 벡터 승산기 매트릭스의 다른 실시예를 도시한다.
도 13은 벡터 승산기 매트릭스의 다른 실시예를 도시한다.
도 14는 종래 기술의 장단기 메모리(long short term memory, LSTM) 시스템을 도시한다.
도 15는 종래 기술의 장단기 메모리 시스템 내의 예시적인 셀을 도시한다.
도 16은 도 15의 장단기 메모리 시스템 내의 예시적인 셀의 구현예를 도시한다.
도 17은 도 15의 장단기 메모리 시스템 내의 예시적인 셀의 다른 구현예를 도시한다.
도 18은 종래 기술의 게이티드 순환 유닛(gated recurrent unit, GRU) 시스템을 도시한다.
도 19는 종래 기술의 게이티드 순환 유닛 시스템 내의 예시적인 셀을 도시한다.
도 20은 도 19의 게이티드 순환 유닛 시스템 내의 예시적인 셀의 구현예를 도시한다.
도 21은 도 19의 게이티드 순환 유닛 시스템 내의 예시적인 셀의 다른 실시예를 도시한다.
도 22는 구성가능한 플래시 아날로그 신경 메모리 시스템을 도시한다.
도 23은 다른 구성가능한 플래시 아날로그 신경 메모리 시스템을 도시한다.
도 24는 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들 내의 벡터 매트릭스 승산(VMM) 서브시스템을 도시한다.
도 25는 도 24의 VMM 서브시스템 내의 구성가능한 VMM 어레이를 도시한다.
도 25는 도 24의 VMM 서브시스템 내의 구성가능한 합산기 블록을 도시한다.
도 27은 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 적응가능 뉴런을 도시한다.
도 28은 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 활성화 함수 회로를 도시한다.
도 29는 도 27의 적응가능 뉴런에서 사용하기 위한 연산 증폭기를 도시한다.
도 30은 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 벡터 매트릭스 승산 어레이들과 함께 사용된 다양한 블록들을 도시한다.
도 31은 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 프로그래밍 및 감지 블록을 도시한다.
도 32는 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 기준 어레이 시스템을 도시한다.
도 33은 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 디코딩 회로부를 도시한다.
도 34는 도 22 또는 도 23의 구성가능한 플래시 아날로그 신경 메모리 시스템들에서 사용하기 위한 디코딩 회로부를 도시한다.
도 35는 적응가능 출력 뉴런 회로를 도시한다.
도 36은 샘플 및 홀드 회로들을 도시한다.
도 37은 선형 영역에서 동작하는 메모리 셀들에 적합한 어레이 아키텍처를 도시한다.
본 발명의 인공 신경 네트워크들은 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]
Figure 112021027073039-pct00001
다른 타입들의 플래시 메모리 셀들인 다른 분리형 게이트 메모리 셀 구성들이 알려져 있다. 예를 들어, 도 3은 소스 영역(14), 드레인 영역(16), 채널 영역(18)의 제1 부분 위의 플로팅 게이트(20), 채널 영역(18)의 제2 부분 위의 선택 게이트(22)(전형적으로 워드 라인(WL)에 커플링됨), 플로팅 게이트(20) 위의 제어 게이트(28), 및 소스 영역(14) 위의 소거 게이트(30)를 포함하는 4-게이트 메모리 셀(310)을 도시한다. 이러한 구성은, 모든 목적을 위해 본 명세서에 참고로 포함되는, 미국 특허 제6,747,310호에 기재되어 있다. 여기서, 모든 게이트들은 플로팅 게이트(20)를 제외하고 비-플로팅 게이트들이며, 이는 그들이 전압원에 전기적으로 접속되어 있거나 접속가능하다는 것을 의미한다. 프로그래밍은 채널 영역(18)으로부터의 가열된 전자들이 플로팅 게이트(20) 상으로 자신들을 주입하는 것에 의해 수행된다. 소거는, 전자들이 플로팅 게이트(20)로부터 소거 게이트(30)로 터널링하는 것에 의해 수행된다.
표 2는 판독, 소거, 및 프로그래밍 동작들을 수행하기 위해 메모리 셀(310)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 2]
Figure 112021027073039-pct00002
도 4는 다른 타입의 플래시 메모리 셀인 3-게이트 메모리 셀(410)을 도시한다. 메모리 셀(410)은, 메모리 셀(410)이 별개의 제어 게이트를 갖지 않는다는 점을 제외하고는, 도 3의 메모리 셀(310)과 동일하다. 소거 동작(이에 의해, 소거 게이트의 사용을 통해 소거가 발생함) 및 판독 동작은, 제어 게이트 바이어스가 인가되지 않는다는 점을 제외하고는, 도 3의 것과 유사하다. 프로그래밍 동작은 또한, 제어 게이트 바이어스 없이 행해지고, 결과적으로, 제어 게이트 바이어스의 결여를 보상하기 위해 프로그래밍 동작 동안 소스 라인 상에 더 높은 전압이 인가되어야 한다.
표 3은 판독, 소거, 및 프로그래밍 동작들을 수행하기 위해 메모리 셀(410)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 3]
Figure 112021027073039-pct00003
도 5는 다른 타입의 플래시 메모리 셀인 적층형 게이트 메모리 셀(510)을 도시한다. 메모리 셀(510)은, 절연 층(도시되지 않음)에 의해 분리되어, 플로팅 게이트(20)가 전체 채널 영역(18) 위로 연장되고, 제어 게이트(22)(이는 여기서 워드 라인에 커플링될 것임)가 플로팅 게이트(20) 위로 연장된다는 점을 제외하고는, 도 2의 메모리 셀(210)과 유사하다. 소거, 프로그래밍, 및 판독 동작들은 메모리 셀(210)에 대해 이전에 설명된 것과 유사한 방식으로 동작한다.
표 4는 판독, 소거, 및 프로그래밍 동작들을 수행하기 위해 기판(12) 및 메모리 셀(510)의 단자들에 인가될 수 있는 전형적인 전압 범위들을 보여준다:
[표 4]
Figure 112021027073039-pct00004
인공 신경 네트워크에서 전술된 비휘발성 메모리 셀들의 타입들 중 하나를 포함하는 메모리 어레이들을 이용하기 위해, 두 가지 수정들이 이루어진다. 첫째, 라인들은, 하기에서 추가로 설명되는 바와 같이, 각각의 메모리 셀이 어레이 내의 다른 메모리 셀들의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그래밍되고, 소거되고, 판독될 수 있도록 구성된다. 둘째, 메모리 셀들의 연속적인(아날로그식) 프로그래밍이 제공된다.
구체적으로, 어레이 내의 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀들의 교란을 최소화시킨 상태로, 완전 소거 상태로부터 완전 프로그래밍 상태로 연속적으로 변경될 수 있다. 다른 실시예에서, 어레이 내의 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀들의 교란을 최소화시킨 상태로, 완전 프로그래밍 상태로부터 완전 소거 상태로 연속적으로 변경될 수 있고, 그 반대도 마찬가지이다. 이는 셀 저장소가 아날로그식이거나 또는 적어도, 많은 개별 값들(예컨대, 16개 또는 64개의 상이한 값들) 중 하나를 저장할 수 있음을 의미하며, 이것은 메모리 어레이 내의 모든 셀들의 매우 정밀하고 개별적인 튜닝을 허용하고, 메모리 어레이를 신경 네트워크의 시냅스 가중치들에 대한 미세 튜닝 조정들을 저장하고 행하는 데 이상적인 것으로 되게 한다.
비휘발성 메모리 셀 어레이들을 채용한 신경 네트워크들
도 6은 본 실시예들의 비휘발성 메모리 어레이를 이용하는 신경 네트워크의 비제한적인 예를 개념적으로 예시한다. 이러한 예는 얼굴 인식 애플리케이션에 대해 비휘발성 메모리 어레이 신경 네트워크를 사용하지만, 비휘발성 메모리 어레이 기반 신경 네트워크를 사용하여 임의의 다른 적절한 애플리케이션이 구현될 수 있다.
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 맵은 원형 에지들을 식별할 수 있고, (제1 가중치 세트와는 상이한 제2 가중치 세트를 사용하여 생성된) 제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개의 뉴런들을 포함하고, 여기서 최고 출력 뉴런이 클래스를 결정한다. 이러한 출력은, 예를 들어, 원래의 이미지의 콘텐츠의 식별 또는 분류를 나타낼 수 있다.
시냅스들의 각각의 층은 비휘발성 메모리 셀들의 어레이 또는 그들의 어레이의 일부분을 사용하여 구현된다.
도 7은 그 목적을 위해 사용될 수 있는 어레이의 블록도이다. 벡터 매트릭스 승산(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)의 정류된 출력 값들은 다음 층(예를 들어, 도 6의 C1)으로서 피처 맵의 요소가 되고, 이어서 다음 시냅스에 적용되어 다음 피처 맵 층 또는 최종 층을 생성한다. 따라서, 이 예에서, 비휘발성 메모리 셀 어레이(33)는 복수의 시냅스들(이들은 이전 뉴런 층으로부터 또는 이미지 데이터베이스와 같은 입력 층으로부터 그들의 입력들을 수신함)을 구성하고, 합산 연산 증폭기(38) 및 활성화 함수 회로(39)는 복수의 뉴런들을 구성한다.
도 7의 VMM 어레이(32)에 대한 입력(WLx, EGx, CGx, 및 선택적으로 BLx 및 SLx)은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있고(이 경우, DAC는 디지털 비트들을 적절한 입력 아날로그 레벨로 변환하기 위해 제공됨), 출력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있다(이 경우, 출력 ADC는 출력 아날로그 레벨을 디지털 비트들로 변환하기 위해 제공됨).
도 8은 여기에서 VMM 어레이들(32a, 32b, 32c, 32d, 32e)로 표지된 VMM 어레이들(32)의 다수의 층들의 사용을 도시하는 블록도이다. 도 8에 도시된 바와 같이, Inputx로 표기된 입력은 디지털-아날로그 변환기(31)에 의해 디지털로부터 아날로그로 변환되고, 입력 VMM 어레이(32a)에 제공된다. 변환된 아날로그 입력들은 전압 또는 전류일 수 있다. 제1 층에 대한 입력 D/A 변환은, 입력들(Inputx)을 입력 VMM 어레이(32a)의 매트릭스 승산기에 대한 적절한 아날로그 레벨들에 맵핑시키는 함수 또는 LUT(look up table)를 사용함으로써 행해질 수 있다. 입력 변환은 또한, 외부 아날로그 입력을 입력 VMM 어레이(32a)로의 맵핑된 아날로그 입력으로 변환하기 위한 A/A(analog to analog) 변환기에 의해 행해질 수 있다.
입력 VMM 어레이(32a)에 의해 생성된 출력은 다음 VMM 어레이(은닉 레벨 1)(32b)로의 입력으로서 제공되고, 다음 VMM 어레이로의 입력은 이어서 다음 VMM 어레이(은닉 레벨 2)(32c)로의 입력으로서 제공되는 출력을 생성하는, 등등이다. VMM 어레이(32)의 다양한 층들은 콘볼루션 신경 네트워크(convolutional neural network, CNN)의 시냅스들 및 뉴런들의 상이한 층들로서 기능한다. 각각의 VMM 어레이(32a, 32b, 32c, 32d, 32e)는 독립형의, 물리적 비휘발성 메모리 어레이일 수 있거나, 또는 다수의 VMM 어레이들이 동일한 물리적 비휘발성 메모리 어레이의 상이한 부분들을 이용할 수 있거나, 또는 다수의 VMM 어레이들이 동일한 물리적 비휘발성 메모리 어레이의 중첩 부분들을 이용할 수 있다. 도 8에 도시된 예는 다음과 같은 5개의 층(32a, 32b, 32c, 32d, 32e)을 포함한다: 하나의 입력 층(32a), 2개의 은닉 층들(32b, 32c), 및 2개의 완전 접속 층들(32d, 32e). 당업자는, 이것이 단지 예시적인 것이고, 시스템은 대신에, 2개 초과의 은닉 층들 및 2개 초과의 완전 접속 층들을 포함할 수 있다는 것을 이해할 것이다.
VMM 어레이들
도 9는 뉴런 VMM 어레이(900)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(900)는 비휘발성 메모리 셀들의 메모리 어레이(901), 및 비휘발성 기준 메모리 셀들의 (어레이의 상부에 있는) 기준 어레이(902)를 포함한다. 대안적으로, 다른 기준 어레이가 하부에 배치될 수 있다.
VMM 어레이(900)에서, 제어 게이트 라인(903)과 같은 제어 게이트 라인들이 수직 방향으로 이어지고(따라서, 로우(row) 방향에서의 기준 어레이(902)는 제어 게이트 라인(903)에 직교함), 소거 게이트 라인(904)과 같은 소거 게이트 라인들이 수평 방향으로 이어진다. 여기서, VMM 어레이(900)로의 입력들은 제어 게이트 라인들(CG0, CG1, CG2, CG3) 상에 제공되고, VMM 어레이(900)의 출력은 소스 라인들(SL0, SL1) 상에 나타난다. 일 실시예에서, 짝수 로우들만이 사용되고, 다른 실시예에서, 홀수 로우들만이 사용된다. 각각의 소스 라인(SL0, SL1, 각각) 상에 배치된 전류는 그 특정 소스 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 기능을 수행한다.
신경 네트워크들에 대해 본 명세서에 설명된 바와 같이, VMM 어레이(900)의 비휘발성 메모리 셀들, 즉 VMM 어레이(900)의 플래시 메모리는 바람직하게는 하위 임계 영역에서 동작하도록 구성된다.
본 명세서에 기술된 비휘발성 기준 메모리 셀들 및 비휘발성 메모리 셀들은 약 반전(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 선형 변환기에 대해, 선형 영역에서 동작하는 메모리 셀(예컨대, 기준 메모리 셀 또는 주변 메모리 셀) 또는 트랜지스터는 입력/출력 전류를 입력/출력 전압으로 선형적으로 변환하는 데 사용될 수 있다.
도 7의 VMM 어레이(32)에 대한 다른 실시예들은, 본 명세서에 참고로 포함되는 미국 특허 출원 제15/826,345호에 기술되어 있다. 그 출원에 기술되어 있는 바와 같이, 소스라인 또는 비트라인이 뉴런 출력(전류 합산 출력)으로서 사용될 수 있다.
도 10은 뉴런 VMM 어레이(1000)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 시냅스들로서 이용된다. VMM 어레이(1000)는 비휘발성 메모리 셀들의 메모리 어레이(1003), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1001), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1002)를 포함한다. 어레이의 컬럼 방향으로 배열된 기준 어레이들(1001, 1002)은, 단자들(BLR0, BLR1, BLR2, BLR3) 내로 흐르는 전류 입력들을 전압 입력들(WL0, WL1, WL2, WL3)로 변환하는 역할을 한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀들은 그들 내로 흐르는 전류 입력들과 멀티플렉서들(1014)을 통해 다이오드 접속된다. 기준 셀들은 타깃 기준 레벨들로 튜닝된다(예를 들어, 프로그래밍됨). 타깃 기준 레벨들은 기준 미니 어레이 매트릭스(도시되지 않음)에 의해 제공된다.
메모리 어레이(1003)는 두 가지 목적들을 담당한다. 첫째, 그것은 VMM 어레이(1000)에 의해 사용될 가중치들을 그것의 각자의 메모리 셀들 상에 저장한다. 둘째, 메모리 어레이(1003)는 입력들(즉, 단자들(BLR0, BLR1, BLR2, BLR3)에 제공되는 전류 입력들, 이것에 대해 기준 어레이들(1001, 1002)이 워드 라인들(WL0, WL1, WL2, WL3)에 공급할 입력 전압들로 변환함)을 메모리 어레이(1003)에 저장된 가중치들과 유효하게 승산하고, 이어서 모든 결과들(메모리 셀 전류들)을 가산하여 각자의 비트 라인들(BL0 내지 BLN) 상의 출력을 생성하는데, 이는 다음 층에 대한 입력 또는 최종 층에 대한 입력일 것이다. 승산 및 가산 기능을 수행함으로써, 메모리 어레이(1003)는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 전압 입력들은 워드 라인들(WL0, WL1, WL2, WL3) 상에 제공되고, 출력은 판독(추론) 동작 동안 각자의 비트 라인들(BL0 내지 BLN) 상에 나타난다. 비트 라인들(BL0 내지 BLN) 각각에 배치된 전류는 그 특정 비트라인에 접속된 모든 비휘발성 메모리 셀들로부터의 전류들의 합산 기능을 수행한다.
표 5는 VMM 어레이(1000)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 선택되지 않은 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 선택되지 않은 셀들에 대한 비트 라인들, 선택된 셀들에 대한 소스 라인들, 및 선택되지 않은 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그래밍의 동작들을 나타낸다.
[표 5]
Figure 112021027073039-pct00005
도 11은 뉴런 VMM 어레이(1100)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀들(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1100)는 비휘발성 메모리 셀들의 메모리 어레이(1103), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1101), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1102)를 포함한다. 기준 어레이들(1101, 1102)은 VMM 어레이(1100)의 로우 방향으로 이어진다. VMM 어레이는, VMM 어레이(1100)에서 워드 라인들이 수직 방향으로 이어진다는 점을 제외하고는, VMM(1000)과 유사하다. 여기서, 입력들은 워드 라인들(WLA0, WLB0, WLA1, WLB2, WLA2, WLB2, WLA3, WLB3) 상에 제공되고, 출력은 판독 동작 동안 소스 라인(SL0, SL1) 상에 나타난다. 각각의 소스 라인 상에 배치된 전류는 그 특정 소스 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 기능을 수행한다.
표 6은 VMM 어레이(1100)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 선택되지 않은 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 선택되지 않은 셀들에 대한 비트 라인들, 선택된 셀들에 대한 소스 라인들, 및 선택되지 않은 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그래밍의 동작들을 나타낸다.
[표 6]
Figure 112021027073039-pct00006
도 12는 뉴런 VMM 어레이(1200)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1200)는 비휘발성 메모리 셀들의 메모리 어레이(1203), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1201), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1202)를 포함한다. 기준 어레이들(1201, 1202)은 단자들(BLR0, BLR1, BLR2, BLR3) 내로 흐르는 전류 입력들을 전압 입력들(CG0, CG1, CG2, CG3)로 변환하는 역할을 한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀들은 BLR0, BLR1, BLR2, 및 BLR3을 통해 그들 내로 흐르는 전류 입력들과 멀티플렉서들(1212)을 통해 다이오드 접속된다. 멀티플렉서들(1212) 각각은 판독 동작 동안 제1 및 제2 비휘발성 기준 메모리 셀들 각각의 비트라인(예컨대, BLR0) 상의 일정한 전압을 보장하기 위해 각각의 멀티플렉서(1205) 및 캐스코딩 트랜지스터(1204)를 포함한다. 기준 셀들은 타깃 기준 레벨들로 튜닝된다.
메모리 어레이(1203)는 두 가지 목적들을 담당한다. 첫째, 그것은 VMM 어레이(1200)에 의해 사용될 가중치들을 저장한다. 둘째, 메모리 어레이(1203)는 입력들(단자들(BLR0, BLR1, BLR2, BLR3)에 제공되는 전류 입력들, 이것에 대해 기준 어레이들(1201, 1202)이 이러한 전류 입력들을 제어 게이트들(CG0, CG1, CG2, CG3)에 공급할 입력 전압들로 변환함)을 메모리 어레이에 저장된 가중치들과 유효하게 승산하고, 이어서 모든 결과들(셀 전류들)을 가산하여 출력을 생성하는데, 이는 BL0 내지 BLN 상에 나타나며 다음 층에 대한 입력 또는 최종 층에 대한 입력일 것이다. 승산 및 가산 기능을 수행함으로써, 메모리 어레이는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 입력들은 제어 게이트 라인들(CG0, CG1, CG2, CG3) 상에 제공되고, 출력은 판독 동작 동안 비트 라인들(BL0 내지 BLN) 상에 나타난다. 각각의 비트 라인 상에 배치된 전류는 그 특정 비트 라인에 접속된 메모리 셀들로부터의 모든 전류들의 합산 기능을 수행한다.
VMM 어레이(1200)는 메모리 어레이(1203) 내의 비휘발성 메모리 셀들에 대한 단방향 튜닝을 구현한다. 즉, 각각의 비휘발성 메모리 셀은 소거되고, 이어서 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그래밍된다. 이는, 예를 들어, 후술되는 신규한 정밀 프로그래밍 기법들을 사용하여 수행될 수 있다. (잘못된 값이 셀에 저장되도록) 너무 많은 전하가 플로팅 게이트 상에 배치되는 경우, 셀은 소거되어야 하고, 부분 프로그래밍 동작들의 시퀀스가 다시 시작되어야 한다. 도시된 바와 같이, 동일한 소거 게이트(예컨대, EG0 또는 EG1)를 공유하는 2개의 로우들이 함께 소거될 필요가 있고(페이지 소거로서 알려짐), 그 후에 각각의 셀은 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그래밍된다.
표 7은 VMM 어레이(1200)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 선택되지 않은 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 선택되지 않은 셀들에 대한 비트 라인들, 선택된 셀들에 대한 제어 게이트들, 선택된 셀들과 동일한 섹터 내의 선택되지 않은 셀들에 대한 제어 게이트들, 선택된 셀들과는 상이한 섹터 내의 선택되지 않은 셀들에 대한 제어 게이트들, 선택된 셀들에 대한 소거 게이트들, 선택되지 않은 셀들에 대한 소거 게이트들, 선택된 셀들에 대한 소스 라인들, 및 선택되지 않은 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그래밍의 동작들을 나타낸다.
[표 7]
Figure 112021027073039-pct00007
도 13은 뉴런 VMM 어레이(1300)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀들(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런들의 부분들 및 시냅스들로서 이용된다. VMM 어레이(1300)는 비휘발성 메모리 셀들의 메모리 어레이(1303), 제1 비휘발성 기준 메모리 셀들의 기준 어레이(1301), 및 제2 비휘발성 기준 메모리 셀들의 기준 어레이(1302)를 포함한다. EG 라인들(EGR0, EG0, EG1, EGR1)은 수직으로 이어지는 반면, CG 라인들(CG0, CG1, CG2, CG3) 및 SL 라인들(WL0, WL1, WL2, WL3)은 수평으로 이어진다. VMM 어레이(1300)는, VMM 어레이(1300)가 양방향 튜닝을 구현한다는 점을 제외하고는 VMM 어레이(1400)와 유사하며, 여기서 각각의 개별 셀은 별개의 EG 라인들의 사용으로 인해 플로팅 게이트 상의 원하는 전하량에 도달하기 위해 필요에 따라 완전히 소거되고, 부분적으로 프로그래밍되고, 부분적으로 소거될 수 있다. 도시된 바와 같이, 기준 어레이들(1301, 1302)은 (멀티플렉서들(1314)을 통한 다이오드 접속된 기준 셀들의 액션을 통해) 단자(BLR0, BLR1, BLR2, BLR3) 내의 입력 전류를 로우 방향으로 메모리 셀들에 인가될 제어 게이트 전압들(CG0, CG1, CG2, CG3)로 변환한다. 전류 출력(neuron)은 비트 라인들(BL0 내지 BLN)에 있으며, 여기서 각각의 비트 라인은 그 특정 비트라인에 접속된 비휘발성 메모리 셀들로부터의 모든 전류들을 합산한다.
표 8은 VMM 어레이(1300)에 대한 동작 전압들을 보여준다. 표 내의 컬럼들은 선택된 셀들에 대한 워드 라인들, 선택되지 않은 셀들에 대한 워드 라인들, 선택된 셀들에 대한 비트 라인들, 선택되지 않은 셀들에 대한 비트 라인들, 선택된 셀들에 대한 제어 게이트들, 선택된 셀들과 동일한 섹터 내의 선택되지 않은 셀들에 대한 제어 게이트들, 선택된 셀들과는 상이한 섹터 내의 선택되지 않은 셀들에 대한 제어 게이트들, 선택된 셀들에 대한 소거 게이트들, 선택되지 않은 셀들에 대한 소거 게이트들, 선택된 셀들에 대한 소스 라인들, 및 선택되지 않은 셀들에 대한 소스 라인들 상에 배치된 전압들을 나타낸다. 로우들은 판독, 소거 및 프로그래밍의 동작들을 나타낸다.
[표 8]
Figure 112021027073039-pct00008
장단기 메모리
종래 기술은 장단기 메모리(LSTM)로 알려진 개념을 포함한다. LSTM 유닛들은 종종 신경 네트워크들에 사용된다. LSTM은 신경 네트워크가 미리결정된 임의의 시간 간격들 동안 정보를 상기시키게 하고 후속 동작들에서 그 정보를 사용할 수 있게 한다. 종래의 LSTM 유닛은 셀, 입력 게이트, 출력 게이트, 및 포겟 게이트(forget gate)를 포함한다. 3개의 게이트들은 셀 내로의 그리고 셀 외부로의 정보의 흐름을 그리고 정보가 LSTM에서 상기되는 시간 간격을 조절한다. VMM들은 LSTM 유닛들에서 특히 유용하다.
도 14는 예시적인 LSTM(1400)을 도시한다. 이 예에서, LSTM(1400)은 셀들(1401, 1402, 1403, 1404)을 포함한다. 셀(1401)은 입력 벡터(x0)를 수신하고 출력 벡터(h0) 및 셀 상태 벡터(c0)를 생성한다. 셀(1402)은 입력 벡터(x1), 셀(1401)로부터의 출력 벡터(은닉 상태)(h0), 및 셀(1401)로부터의 셀 상태(c0)를 수신하고, 출력 벡터(h1) 및 셀 상태 벡터(c1)를 생성한다. 셀(1403)은 입력 벡터(x2), 셀(1402)로부터의 출력 벡터(은닉 상태)(h1), 및 셀(1402)로부터의 셀 상태(c1)를 수신하고, 출력 벡터(h2) 및 셀 상태 벡터(c2)를 생성한다. 셀(1404)은 입력 벡터(x3), 셀(1403)로부터의 출력 벡터(은닉 상태)(h2), 및 셀(1403)로부터의 셀 상태(c2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가의 셀들이 사용될 수 있으며, 4개의 셀들을 갖는 LSTM은 일례일 뿐이다.
도 15는 도 14의 셀들(1401, 1402, 1403, 1404)에 사용될 수 있는 LSTM 셀(1500)의 예시적인 구현예를 도시한다. LSTM 셀(1500)은 입력 벡터(x(t)), 선행 셀로부터의 셀 상태 벡터(c(t-1)), 및 선행 셀로부터의 출력 벡터(h(t-1))를 수신하고, 셀 상태 벡터(c(t)) 및 출력 벡터(h(t))를 생성한다.
LSTM 셀(1500)은 시그모이드 함수 디바이스들(1501, 1502, 1503)을 포함하며, 이들 각각은 입력 벡터 내의 각각의 성분 중 어느 정도가 출력 벡터로 통과될 수 있는지를 제어하기 위해 0과 1 사이의 수를 적용한다. LSTM 셀(1500)은, 또한, 입력 벡터에 하이퍼볼릭 탄젠트 함수를 적용하기 위한 tanh 디바이스들(1504, 1505), 2개의 벡터들을 함께 승산하기 위한 승산기 디바이스들(1506, 1507, 1508), 및 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(1509)를 포함한다. 출력 벡터(h(t))는 시스템 내의 다음 LSTM 셀에 제공될 수 있거나, 그것은 다른 목적들을 위해 액세스될 수 있다.
도 16은 LSTM 셀(1500)의 구현예의 일례인 LSTM 셀(1600)을 도시한다. 독자의 편의를 위해, LSTM 셀(1500)로부터의 동일한 넘버링이 LSTM 셀(1600)에 사용된다. 시그모이드 함수 디바이스들(1501, 1502, 1503) 및 tanh 디바이스(1504) 각각은 다수의 VMM 어레이들(1601) 및 활성화 회로 블록들(1602)을 포함한다. 따라서, VMM 어레이들이 소정의 신경 네트워크 시스템들에서 사용되는 LSTM 셀들에 특히 유용함을 알 수 있다.
LSTM 셀(1600)에 대한 대안(및 LSTM 셀(1500)의 구현예의 다른 예)이 도 17에 도시되어 있다. 도 17에서, 시그모이드 함수 디바이스들(1501, 1502, 1503) 및 tanh 디바이스(1504)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이들(1701) 및 활성화 함수 블록(1702))를 공유한다. LSTM 셀(1700)은, 또한, 2개의 벡터들을 함께 승산하기 위한 승산기 디바이스(1703), 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(1708), tanh 디바이스(1505)(활성화 회로 블록(1702)을 포함함), i(t)가 시그모이드 함수 블록(1702)으로부터 출력될 때 값 i(t)를 저장하기 위한 레지스터(1707), 값 f(t) * c(t-1)를 그 값이 멀티플렉서(1710)를 통해 승산기 디바이스(1703)로부터 출력될 때 저장하기 위한 레지스터(1704), 값 i(t) * u(t)를 그 값이 멀티플렉서(1710)를 통해 승산기 디바이스(1703)로부터 출력될 때 저장하기 위한 레지스터(1705), 및 값 o(t) * c~(t)를 그 값이 멀티플렉서(1710)를 통해 승산기 디바이스(1703)로부터 출력될 때 저장하기 위한 레지스터(1706), 및 멀티플렉서(1709)를 포함한다.
LSTM 셀(1600)은 VMM 어레이들(1601) 및 각자의 활성화 함수 블록들(1602)의 다수의 세트들을 포함하는 반면, LSTM 셀(1700)은 LSTM 셀(1700)의 실시예에서 다수의 층들을 나타내는 데 사용되는 VMM 어레이들(1701) 및 활성화 함수 블록(1702)의 하나의 세트만을 포함한다. LSTM 셀(1700)은 LSTM 셀(1600)보다 더 적은 공간을 필요로 할 것인데, 그 이유는 LSTM 셀(1700)이 LSTM 셀(1600)과 비교하여 VMM들 및 활성화 함수 블록들에 대해 1/4만큼 많은 공간을 요구할 것이기 때문이다.
또한, LSTM 유닛들은 전형적으로 다수의 VMM 어레이들을 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록들과 같은, VMM 어레이들 외부의 소정 회로 블록들에 의해 제공되는 기능을 필요로 한다는 것이 이해될 수 있다. 각각의 VMM 어레이에 대해 별개의 회로 블록들을 제공하는 것은 반도체 디바이스 내에서 상당한 양의 공간을 필요로 할 것이고, 다소 비효율적일 것이다. 따라서, 후술되는 실시예들은 VMM 어레이들 자체의 외부에 요구되는 회로부를 최소화하려고 시도한다.
게이티드 순환 유닛들
아날로그 VMM 구현예가 게이티드 순환 유닛(GRU) 시스템에 이용될 수 있다. GRU들은 순환 신경 네트워크들 내의 게이팅 메커니즘이다. GRU들은, GRU 셀들이 대체적으로 LSTM 셀보다 더 적은 컴포넌트들을 포함하는 것을 제외하고는, LSTM들과 유사하다.
도 18은 예시적인 GRU(1800)를 도시한다. 이 예에서, GRU(1800)는 셀들(1801, 1802, 1803, 1804)을 포함한다. 셀(1801)은 입력 벡터(x0)를 수신하고 출력 벡터(h0)를 생성한다. 셀(1802)은 입력 벡터(x1) 및 셀(1801)로부터의 출력 벡터(은닉 상태)(h0)를 수신하고, 출력 벡터(h1)를 생성한다. 셀(1803)은 입력 벡터(x2) 및 셀(1802)로부터의 출력 벡터(은닉 상태)(h1)를 수신하고, 출력 벡터(h2)를 생성한다. 셀(1804)은 입력 벡터(x3) 및 셀(1803)로부터의 출력 벡터(은닉 상태)(h2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가의 셀들이 사용될 수 있으며, 4개의 셀들을 갖는 GRU는 일례일 뿐이다.
도 19는 도 18의 셀들(1801, 1802, 1803, 1804)에 사용될 수 있는 GRU 셀(1900)의 예시적인 구현예를 도시한다. GRU 셀(1900)은 선행 GRU 셀로부터 입력 벡터(x(t)) 및 출력 벡터(h(t-1))를 수신하고, 출력 벡터(h(t))를 생성한다. GRU 셀(1900)은 시그모이드 함수 디바이스들(1901, 1902)을 포함하고, 이들 각각은 0과 1 사이의 수를 출력 벡터(h(t-1)) 및 입력 벡터(x(t))로부터의 성분들에 적용한다. GRU 셀(1900)은, 또한, 입력 벡터에 하이퍼볼릭 탄젠트 함수를 적용하기 위한 tanh 디바이스(1903), 2개의 벡터들을 함께 승산하기 위한 복수의 승산기 디바이스들(1904, 1905, 1906), 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(1907), 및 1로부터 입력을 감산하여 출력을 생성하기 위한 상보적 디바이스(1908)를 포함한다.
도 20은 GRU 셀(1900)의 구현예의 일례인 GRU 셀(2000)을 도시한다. 독자의 편의를 위해, GRU 셀(1900)로부터의 동일한 넘버링이 GRU 셀(2000)에 사용된다. 도 20에서 알 수 있는 바와 같이, 시그모이드 함수 디바이스들(1901, 1902) 및 tanh 디바이스(1903) 각각은 다수의 VMM 어레이들(2001) 및 활성화 함수 블록들(2002)을 포함한다. 따라서, VMM 어레이들이 소정의 신경 네트워크 시스템들에서 사용되는 GRU 셀들에 특히 유용함을 알 수 있다.
GRU 셀(2000)에 대한 대안(및 GRU 셀(1900)의 구현예의 다른 예)이 도 21에 도시되어 있다. 도 21에서, GRU 셀(2100)은 VMM 어레이들(2101) 및 활성화 함수 블록(2102)을 이용하며, 활성화 함수 블록은, 시그모이드 함수로서 구성될 때, 입력 벡터 내의 각각의 성분 중 어느 정도가 출력 벡터로 통과될 수 있는지를 제어하기 위해 0과 1 사이의 수를 적용한다. 도 21에서, 시그모이드 함수 디바이스들(1901, 1902) 및 tanh 디바이스(1903)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이들(2101) 및 활성화 함수 블록(2102))를 공유한다. GRU 셀(2100)은, 또한, 2개의 벡터들을 함께 승산하기 위한 승산기 디바이스(2103), 2개의 벡터들을 함께 가산하기 위한 가산 디바이스(2105), 1로부터 입력을 감산하여 출력을 생성하기 위한 상보적 디바이스(2109), 멀티플렉서(2104), 값 h(t-1) * r(t)를 그 값이 멀티플렉서(2104)를 통해 승산기 디바이스(2103)로부터 출력될 때 보유하기 위한 레지스터(2106), 값 h(t-1) *z(t)를 그 값이 멀티플렉서(2104)를 통해 승산기 디바이스(2103)로부터 출력될 때 보유하기 위한 레지스터(2107), 및 값 h^(t) * (1-z(t))를 그 값이 멀티플렉서(2104)를 통해 승산기 디바이스(2103)로부터 출력될 때 보유하기 위한 레지스터(2108)를 포함한다.
GRU 셀(2000)은 VMM 어레이들(2001) 및 활성화 함수 블록들(2002)의 다수의 세트들을 포함하는 반면, GRU 셀(2100)은 GRU 셀(2100)의 실시예에서 다수의 층들을 나타내는 데 사용되는 VMM 어레이들(2101) 및 활성화 함수 블록(2102)의 하나의 세트만을 포함한다. GRU 셀(2100)은 GRU 셀(2000)보다 더 적은 공간을 필요로 할 것인데, 그 이유는 GRU 셀(2100)이 GRU 셀(2000)과 비교하여 VMM들 및 활성화 함수 블록들에 대해 1/3만큼 많은 공간을 요구할 것이기 때문이다.
또한, GRU 시스템들은 전형적으로 다수의 VMM 어레이들을 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록들과 같은, VMM 어레이들 외부의 소정 회로 블록들에 의해 제공되는 기능을 필요로 한다는 것이 이해될 수 있다. 각각의 VMM 어레이에 대해 별개의 회로 블록들을 제공하는 것은 반도체 디바이스 내에서 상당한 양의 공간을 필요로 할 것이고, 다소 비효율적일 것이다. 따라서, 후술되는 실시예들은 VMM 어레이들 자체의 외부에 요구되는 회로부를 최소화하려고 시도한다.
VMM 어레이들에 대한 입력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있고(이 경우에, DAC는 디지털 비트들을 적절한 입력 아날로그 레벨로 변환하는 데 필요함), 출력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트들일 수 있다(이 경우에, 출력 ADC는 출력 아날로그 레벨을 디지털 비트들로 변환하는 데 필요함).
VMM 어레이 내의 각각의 메모리 셀에 대해, 각각의 가중치(w)는 단일 메모리 셀에 의해 또는 차동 셀에 의해 또는 2개의 블렌드(blend) 메모리 셀들(2개의 셀들의 평균)에 의해 구현될 수 있다. 차동 셀의 경우에, 2개의 메모리 셀들은 차동 가중치(w= w+ - w-)로서 가중치(w)를 구현하는 데 필요하다. 2개의 블렌드 메모리 셀들에서, 2개의 메모리 셀들은 2개의 셀들의 평균으로서 가중치(w)를 구현하는 데 필요하다.
구성가능한 어레이들
도 22는 구성가능한 플래시 아날로그 신경모방형 메모리 시스템(2200)을 도시한다. 구성가능한 플래시 아날로그 신경 메모리 시스템(2200)은 매크로 블록들(2201a, 2201b, 2201c, 2201d, 2201e, 2201f); 뉴런 출력(예컨대, 합산 회로와, 샘플 및 홀드(S/H) 회로) 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2202f); 활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f); 수평 멀티플렉서들(2204a, 2204b, 2204c, 2204d); 수직 멀티플렉서들(2205a, 2205b, 2205c); 및 교차 멀티플렉서들(2206a, 2206b)을 포함한다. 매크로 블록들(2201a, 2201b, 2201c, 2201d, 2201e, 2201f) 각각은 VMM 어레이를 포함하는 VMM 서브시스템이다.
일 실시예에서, 뉴런 출력 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2202f) 각각은 긴, 구성가능한 인터커넥트를 구동시킬 수 있는 버퍼(예컨대, 연산 증폭기) 저임피던스 출력 타입 회로를 포함한다. 일 실시예에서, 활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f)은 합산, 고임피던스 전류 출력들을 제공한다. 대안적으로, 뉴런 출력 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2202f)은 활성화 회로들을 포함할 수 있으며, 이 경우에 출력들을 구동시키기 위해 추가적인 저임피던스 버퍼들이 필요할 것이다.
활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f)은 입력 블록의 타입의 단지 일례일 뿐이고, 구성가능한 플래시 아날로그 신경 메모리 시스템(2200)은 활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f) 대신에 다른 입력 블록들로 대신 설계될 수 있어서, 이들 블록들이 입력 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f)이 되게 한다는 것이 당업자에 의해 이해될 것이다.
일 실시예에서, 뉴런 출력 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2202f) 각각은 아날로그 신호들 대신에 디지털 비트들을 출력하는 아날로그-디지털 변환 블록(2252)을 포함한다. 이어서, 이들 디지털 비트들은 도 22의 구성가능한 인터커넥트들을 사용하여 원하는 위치로 라우팅된다. 이러한 실시예에서, 활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f) 각각은 도 22의 인터커넥트들로부터 디지털 비트들을 수신하고, 디지털 비트들을 아날로그 신호들로 변환하는 디지털-아날로그 변환 블록(2251)을 포함한다.
구성가능한 시스템(2200)이 LSTM 또는 GRU를 구현하는 데 사용되는 경우들에서, 출력 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2202f) 및/또는 입력 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f)은 LSTM/GRU 아키텍처에 대해 필요에 따라 승산기 블록, 가산 블록, 감산(출력= 1-입력) 블록을 포함할 수 있고, 선택적으로, 필요에 따라 아날로그 샘플 및 홀드 회로들(예컨대, 도 36의 회로들(3600 또는 3650)) 또는 디지털 샘플 및 홀드 회로들(예컨대, 레지스터 또는 SRAM)을 포함할 수 있다.
구성가능성은, 다수의 매크로들을 조합하고/하거나 각각의 개별 매크로들을 뉴런 출력 및/또는 입력 회로의 부분들만이 활성상태이도록 구성함으로써, 뉴런들의 폭(비트라인들과 같은 출력 콘볼루션 층의 수), 입력들의 폭(로우들의 수와 같은 콘볼루션 층당 입력들의 수)을 포함한다.
VMM 어레이 내에서, 시간 멀티플렉싱은 다수의 시간지정 패스(timed pass)들을 인에이블하여 어레이의 사용을 최대화하는 데 사용될 수 있다. 예를 들어, 어레이의 첫 번째 N개의 로우들 또는 N개의 컬럼들이 시간 t0에서 인에이블(샘플링)될 수 있고 그것의 결과는 t0 샘플 및 홀드(S/H) 회로에 보유되고, 다음 N개의 로우들 또는 N개의 컬럼들은 시간 t1에서 인에이블될 수 있고 그것의 결과는 t1 샘플 및 홀드(S/H) 회로에 보유되는, 등등이다. 그리고, 최종 시간(tf)에서, 모든 이전의 S/H 결과들이 적절하게 조합되어 최종 출력을 제공한다.
이해될 수 있는 바와 같이, 아날로그 신경 메모리 시스템의 하나의 요건은 하나의 층으로부터 출력들을 수집하고 그들을 다른 층에 입력들로서 제공하는 능력이다. 이는, 하나의 VMM 어레이로부터의 출력들이 반드시 그것에 바로 인접하지는 않는 다른 VMM 어레이에 대한 입력들로서 라우팅될 필요가 있을 수 있는 복잡한 라우팅 방식을 초래한다. 도 22에서, 이러한 라우팅 기능은 수평 멀티플렉서들(2204a, 2204b, 2204c, 2204d); 수직 멀티플렉서들(2205a, 2205b, 2205c); 및 교차 멀티플렉서들(2206a, 2206b)에 의해 제공된다. 이들 멀티플렉서들을 사용하여, 매크로 블록들(2201a, 2201b, 2201c, 2201d, 2201e, 2201f) 중 임의의 것으로부터의 출력들은 2201a, 2201b, 2201c, 2201d, 2201e, 2201f 내의 다른 매크로 블록들 중 임의의 것에 대한 입력들로서 라우팅될 수 있다. 이러한 기능성은 구성가능한 시스템을 생성하는 데 중요하다.
구성가능한 플래시 아날로그 신경 메모리 시스템(2200)은 또한, 제어기 또는 제어 로직(2250)을 포함한다. 제어기 또는 제어 로직(2250)은 선택적으로, 각각의 사이클에서 필요한 라우팅 기능들을 수행하기 위해 수평 멀티플렉서들(2204a, 2204b, 2204c, 2204d); 수직 멀티플렉서들(2205a, 2205b, 2205c); 및 교차 멀티플렉서들(2206a 및 2206b)의 활성화를 포함한, 본 명세서에 기술된 구성들을 수행하기 위해 소프트웨어 코드를 실행시키는 마이크로제어기(제어기), 또는 본 명세서에 기술된 구성들을 수행하기 위한 하드웨어 로직(제어 로직)이다.
도 23은 구성가능한 플래시 아날로그 신경 메모리 시스템(2300)을 도시한다. 구성가능한 플래시 아날로그 신경 메모리 시스템(2300)은 매크로 블록들(2301a, 2301b, 2301c, 2301d, 2301e, 2301f); 뉴런 출력 블록들(예컨대, 합산기 회로와, 샘플 및 홀드(S/H) 회로)(2302a, 2302b, 2302c); 활성화 회로 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f); 수평 멀티플렉서들(2304a, 2304b, 2304c, 2304d); 수직 멀티플렉서들(2305a, 2305b, 2305c, 2305d, 2305e, 2305f); 및 교차 멀티플렉서들(2306a, 2306b)을 포함한다. 매크로 블록들(2301a, 2301b, 2301c, 2301d, 2301e, 2301f) 각각은 VMM 어레이를 포함하는 VMM 서브시스템이다. 뉴런 출력 블록들(2302a, 2302b, 2302c)은 매크로들에 걸쳐 공유되도록 구성된다.
알 수 있는 바와 같이, 도 22 및 도 23의 시스템들은, 도 23의 시스템이 공유된 구성가능한 뉴런 출력 블록들(즉, 뉴런 출력 블록들(2302a, 2302b, 2302c))을 갖는다는 점을 제외하고는 유사하다. 도 23에서, 라우팅 기능은 수평 멀티플렉서들(2304a, 2304b, 2304c, 2304d), 수직 멀티플렉서들(2305a, 2305b, 2305c, 2305d, 2305d, 2305f), 및 교차 멀티플렉서들(2306a, 2306b)에 의해 제공된다. 이들 멀티플렉서들을 사용하여, 매크로 블록들(2301a, 2301b, 2301c, 2301d, 2301e, 2301f) 중 임의의 것으로부터의 출력들이 2301a, 2301b, 2301c, 2301d, 2301e, 2301f 내의 다른 매크로 블록들 중 일부(그러나 전부는 아님)에 대한 입력들로서 라우팅될 수 있다. 이는 수직 멀티플렉서들의 결여로 인해 도 22의 시스템보다 더 적은 공간 요건으로 일부 구성가능성을 허용한다.
뉴런 출력 블록들(2302a, 2302b, 2302c)은 전류 합산기 회로 블록들 및/또는 활성화 회로 블록들을 포함할 수 있다. 예를 들어, 뉴런 출력 블록(2302a)은 매크로 블록(2301a)의 출력에 또는 매크로 블록(2301d)의 출력에 접속하도록 구성될 수 있다. 또는, 뉴런 출력 블록(2302a)은, 예를 들어 매크로 블록(2301a)의 출력의 일부에 그리고 매크로 블록(2301d)의 출력의 일부에 접속하도록 구성될 수 있다.
활성화 회로 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f)은 입력 블록의 타입의 단지 일례일뿐이고, 구성가능한 플래시 아날로그 신경 메모리 시스템(2300)은 활성화 회로 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f) 대신에 다른 입력 블록들로 대신 설계될 수 있어서, 이들 블록들이 입력 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f)이 되게 한다는 것이 당업자에 의해 이해될 것이다.
일 실시예에서, 뉴런 출력 블록들(2302a, 2302b, 2302c) 각각은 아날로그 신호들 대신에 디지털 비트들을 출력하는 아날로그-디지털 변환 블록(2352)을 포함한다. 이어서, 이들 디지털 비트들은 도 23의 구성가능한 인터커넥트들을 사용하여 원하는 위치로 라우팅된다. 이러한 실시예에서, 활성화 회로 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f) 각각은 도 23의 인터커넥트들로부터 디지털 비트들을 수신하고, 디지털 비트들을 아날로그 신호들로 변환하는 디지털-아날로그 변환 블록(2351)을 포함한다.
구성가능한 시스템(2300)이 LSTM 또는 GRU를 구현하는 데 사용되는 경우들에서, 출력 블록들(2302a, 2302b, 2302c, 2302d, 2302e, 2302f) 및/또는 입력 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f)은 LSTM/GRU 아키텍처에 대해 필요에 따라 승산기 블록, 가산 블록, 감산(출력= 1-입력) 블록을 포함할 수 있고, 선택적으로, 필요에 따라 아날로그 샘플 및 홀드 회로들(예컨대, 도 36의 회로들(3600 또는 3650)) 또는 디지털 샘플 및 홀드 회로들(예컨대, 레지스터 또는 SRAM)을 포함할 수 있다.
구성가능한 플래시 아날로그 신경 메모리 시스템(2300)은 또한, 제어기 또는 제어 로직(2250)을 포함한다. 도 21에서와 같이, 제어기 또는 제어 로직(2250)은 선택적으로, 각각의 사이클에서 필요한 라우팅 기능들을 수행하기 위해 수평 멀티플렉서들(2304a, 2304b, 2304c, 2304d); 수직 멀티플렉서들(2305a, 2305b, 2305c, 2305d, 2305e, 2305f); 및 교차 멀티플렉서들(2306a, 2306b)의 활성화를 포함한, 본 명세서에 기술된 구성들을 수행하기 위해 소프트웨어 코드를 실행시키는 마이크로제어기(제어기), 또는 본 명세서에 기술된 구성들을 수행하기 위한 하드웨어 로직(제어 로직)이다.
도 24는 VMM 시스템(2400)을 도시한다. VMM 시스템(2400)은 매크로 블록(2420)(이는, 도 22 및 도 23의 매크로 블록들(2201a, 2201b, 2201c, 2201d, 2201e, 2201f, 2301a, 2301b, 2301c, 2301d, 2301e, 2301f)을 구현하는 데 사용될 수 있음) 및 활성화 함수 블록(2414) 및 합산기 블록(2413)을 포함한다.
VMM 시스템(2400)은 VMM 어레이(2401), 저전압 로우 디코더(2402), 고전압 로우 디코더(2403), 및 저전압 기준 컬럼 디코더(2404)를 포함한다. 저전압 로우 디코더(2402)는 판독 및 프로그래밍 동작들을 위한 바이어스 전압을 제공하고, 고전압 로우 디코더(2403)에 대한 디코딩 신호를 제공한다. 고전압 로우 디코더(2403)는 프로그래밍 및 소거 동작들을 위한 고전압 바이어스 신호를 제공한다.
VMM 시스템(2400)은 리던던시 어레이들(2405, 2406)을 추가로 포함한다. 리던던시 어레이들(2405, 2406)은 어레이(2401) 내의 결함 부분을 대체하기 위한 어레이 리던던시를 제공한다. VMM 시스템(2400)은 NVR(비휘발성 레지스터(non-volatile register), 정보 섹터로도 알려짐) 섹터(2407)를 추가로 포함하며, 이는 사용자 정보, 디바이스 ID, 패스워드, 보안 키, 트리밍비트(trimbit)들, 구성 비트들, 제조 정보 등을 저장하는 데 사용되는 어레이 섹터들이다. VMM 시스템(2400)은 감지 동작에서 사용될 기준 셀들을 제공하기 위한 기준 섹터(2408); 디코더들(240, 2403, 및/또는 2404)에 대한 어드레스들을 디코딩하기 위한 프리디코더(2409); 비트 라인 멀티플렉서(2410); 매크로 제어 로직(2411); 및 매크로 아날로그 회로 블록(2412)을 추가로 포함하고, 이들 각각은 (모든 VMM 어레이들을 포함하는 시스템 레벨과는 대조적으로) VMM 어레이 레벨에서 기능들을 수행한다.
도 25는 어레이 구성가능성의 예들을 도시하는데, 이는 도 22 내지 도 24의 실시예들에 사용될 수 있다. 구성가능한 어레이(2500)는 M개의 로우들 × N개의 컬럼들의 어레이를 포함한다. 구성가능한 어레이(2500)는 도 2 내지 도 5에 도시된 타입들의 셀들을 포함하는 플래시 메모리 셀 어레이일 수 있다. 도 22 내지 도 24의 실시예들에서, 각각의 VMM 어레이는 구성가능한 어레이(2500)보다 작은 상이한 크기들의 하나 이상의 서브어레이들로 구성될 수 있다. 예를 들어, 구성가능한 어레이는 A개의 로우들 × B개의 컬럼들의 서브어레이(2501), C개의 로우들 × D개의 컬럼들의 서브어레이(2502), 및 E개의 로우들 × F개의 컬럼들의 서브어레이(2503)로 분할될 수 있다. 이러한 구성은 제어기 또는 제어 로직(2250)에 의해 구현될 수 있다. 일단 원하는 서브어레이들 각각이 생성되면, 제어기 또는 제어 로직(2250)은 도 22 및 도 23의 수평, 수직 및 교차 멀티플렉서들을 구성하여 적절한 시간에 각각의 서브어레이로부터 적절한 위치로 적절한 라우팅을 수행할 수 있다. 이상적으로는, 각각의 구성가능한 어레이 내의 단지 하나의 서브어레이가 (예를 들어, 어레이 시간 멀티플렉싱을 통해) 시간 t에서 임의의 주어진 사이클 동안 액세스될 것이다. 예를 들어, 구성가능한 어레이(2500) 내의 서브어레이들 중 단지 하나만이 단일 사이클 동안 액세스될 것이다. 그러나, 서브어레이들은 상이한 시간 사이클들 동안 액세스될 수 있고, 이는 동일한 물리적 어레이가 시간 멀티플렉싱된 방식으로 사용하기 위해 다수의 서브어레이들을 제공할 수 있게 한다.
도 22 내지 도 24에 도시된 회로 블록들의 실시예들의 예들이 이제 기술될 것이다.
도 26은 뉴런 출력 합산기 블록(2600)(이는 도 22에서의 뉴런 출력 합산기 블록들(2202a, 2202b, 2202c, 2202d, 2202e, 2201f)로서 사용될 수 있음); 도 23의 뉴런 출력 합산기 블록들(2302, 2302b, 2302c, 2302d, 2302e, 2302f); 및 도 24의 뉴런 출력 합산기 블록(2413)을 도시한다. 뉴런 출력 합산기 블록(2600)은 복수의 더 작은 합산기 블록들(2601a, 2601b, ... 2601i)을 포함하고, 이들 각각은 대응하는 VMM 어레이의 일부(예컨대, 어레이 내의 단일 컬럼) 상에서 동작할 수 있다는 것을 알 수 있다. 제어기 또는 제어 로직(2250)은 필요에 따라 각각의 사이클 동안 적절한 합산기 블록들(2601a, 2601b,. . . 2601i)을 활성화시킬 수 있다. 합산기 회로는 연산 증폭기 기반 합산기 회로 또는 전류 미러 회로로서 구현될 수 있다. 합산기 회로는 아날로그를 출력 디지털 비트들로 변환하기 위해 ADC 회로를 포함할 수 있다.
도 27은 다수의 전류 신호들을 합산하고 합산된 전류 신호를 전압 신호로 변환하기 위해, 저임피던스 출력을 제공하고, 도 26의 합산기 블록(2601a, ..., 2601i) 내의 각각의 합산기 블록의 실시예인 연산 증폭기를 포함하는 적응가능 뉴런 회로(2700)를 도시한다. 적응가능 뉴런 회로(2700)는 VMM 어레이(2401)와 같은 VMM으로부터 전류(I_NEU로 표지됨)를 수신하고, 이 전류는 여기서 전류 소스(2702)로서 표현되며, 이는 연산 증폭기(2701)의 반전 입력에 제공된다. 연산 증폭기(2701)의 비반전 입력은 전압원(VREF로 표지됨)에 커플링된다. 연산 증폭기(2701)의 출력(VO로 표지됨)은 NMOS R_NEU 트랜지스터(2703)에 커플링되며, 이는 NMOS 트랜지스터(2703)의 게이트에 인가되는 신호 VCONTROL에 응답하여 유효 저항 R_NEU의 가변 저항기로서 작용한다. 출력 전압 Vo는 I_NEU * R_NEU - VREF와 동일하다. I_NEU의 최대값은 VMM에 포함된 시냅스들의 수 및 가중치 값에 의존한다. R_NEU는 가변 저항이고, 그것이 커플링되는 VMM 크기에 적응될 수 있다. 예를 들어, R_NEU는 도 27에서 IBIAS 및/또는 VDREF 및/또는 VREF를 변화시킴으로써 변경될 수 있다. 또한, 합산 연산 증폭기(2701)의 전력은 전력 소비를 최소화하기 위해 R_NEU 트랜지스터(2703)의 값과 관련하여 조정된다. R_NEU 트랜지스터(2703)의 값이 증가함에 따라, 연산 증폭기(2701)의 바이어스(즉, 전력)는 전류 바이어스 IBIAS_OPA(2704)를 통해 감소되고, 그 반대도 마찬가지이다. 연산 증폭기 기반 합산기 회로는 저임피던스 출력을 제공할 수 있기 때문에, 긴 인터커넥트 및 더 무거운 부하를 구동하도록 구성되는 것이 적합하다.
도 28은 활성화 함수 회로(2800)를 도시한다. 활성화 함수 회로(2800)는 도 22의 활성화 회로 블록들(2203a, 2203b, 2203c, 2203d, 2203e, 2203f) 및 도 23의 활성화 회로 블록들(2303a, 2303b, 2303c, 2303d, 2303e, 2303f) 및 도 24의 활성화 블록(2414)에 사용될 수 있다.
활성화 함수 회로(2800)는 입력 전압 쌍(Vin+ 및 Vin-)을 tanh 함수를 사용하여 전류(Iout_neu)로 변환하고, 이러한 회로는 전술된 VMM 어레이들과 함께 사용될 수 있다. 활성화 함수 회로(2800)는, 도시된 바와 같이 구성된, PMOS 트랜지스터들(2801, 2802, 2803, 2804, 2805, 2806) 및 NMOS 트랜지스터들(2807, 2808, 2809, 2810)을 포함한다. 트랜지스터들(2803, 2804, 2806)은 캐스코딩 트랜지스터들로서의 역할을 한다. 입력 NMOS 쌍(2807, 2808)은 tanh 함수를 실현하기 위해 하위 임계 영역에서 동작한다. 전류 I_neu_max는 부착된 VMM(도시되지 않음)으로부터 수신될 수 있는 최대 뉴런 전류이다.
도 29는 도 27에서의 연산 증폭기(2701)로서 사용될 수 있는 연산 증폭기(2900)를 도시한다. 연산 증폭기(2900)는 PMOS 트랜지스터들(2901, 2902, 2905), NMOS 트랜지스터들(2903, 2904, 2906, 2907), 및 도시된 구성에서, 가변 바이어스로서 작용하는 NMOS 트랜지스터(2908)를 포함한다. 연산 증폭기(2900)에 대한 입력 단자들은 Vinn(NMOS 트랜지스터(2904)의 게이트에 인가됨) 및 Vin-(NMOS 트랜지스터(2903)의 게이트에 인가됨)로 표지되고, 출력은 VO이다.
도 30은 고전압 생성 블록(3000), 제어 로직 블록(3004), 아날로그 회로 블록(3005), 및 테스트 블록(3008)을 도시한다.
고전압 생성 블록(3000)은 전하 펌프(3001), 전하 펌프 조절기(3002), 및 고전압 연산 증폭기(3003)를 포함한다. 전하 펌프 조절기(3002)의 출력의 전압은 전하 펌프 조절기(3002) 내의 NMOS 트랜지스터들의 게이트들로 전송되는 신호들에 기초하여 제어될 수 있다. 제어 로직 블록(3004)은 제어 로직 입력들을 수신하고 제어 로직 출력들을 생성한다. 아날로그 회로 블록(3005)은, 어딘가 다른 곳에서 사용되는 바와 같이, 기준 전압 Vref를 수신하기 위한, 그리고 바이어스 신호를 인가하는 데 사용될 수 있는 전류 iBias를 생성하기 위한 전류 바이어스 생성기(3006)를 포함한다. 아날로그 회로 블록(3005)은 또한, 트리밍 비트들의 세트 TRBIT_ WL를 수신하기 위한, 그리고 다양한 동작들 동안 워드 라인들에 인가하기 위한 전압을 생성하기 위한 전압 생성기(3007)를 포함한다. 테스트 블록(3008)은 테스트 패드 MONHV_ PAD 상에서 신호들을 수신하고, 테스팅 동안 설계자가 모니터링할 다양한 신호들을 출력한다.
도 31은 프로그래밍 및 감지 블록(3100)을 도시하는데, 이는 프로그래밍 및 검증 동작들 동안 사용될 수 있다. 프로그래밍 및 감지 블록(3100)은 복수의 개별 프로그래밍 및 감지 회로 블록들(3101a, 3101b, ... 3101j)을 포함한다. 제어기 또는 제어 로직(2250)은 필요에 따라 각각의 사이클 동안 적절한 프로그래밍 및 감지 회로 블록들(3101a, 3101b, ... 3101j)을 활성화시킬 수 있다.
도 32는 도 24에서의 기준 섹터(2408) 대신에 사용될 수 있는 기준 시스템(3200)을 도시한다. 기준 시스템(3200)은 기준 어레이(3202), 저전압 로우 디코더(3201), 고전압 로우 디코더(3203), 및 저전압 기준 컬럼 디코더(3204)를 포함한다. 저전압 로우 디코더(3201)는 판독 및 프로그래밍 동작들을 위한 바이어스 전압을 제공하고, 고전압 로우 디코더(3203)에 대한 디코딩 신호를 제공한다. 고전압 로우 디코더(3203)는 프로그래밍 및 소거 동작들을 위한 고전압 바이어스 신호를 제공한다.
도 33은 도 2에 도시된 타입의 메모리 셀들과 함께 사용하는 데 적합한, 워드 라인 디코더 회로(3301), 소스 라인 디코더 회로(3304), 및 고전압 레벨 시프터(3308)를 포함하는 VMM 고전압 디코드 회로들을 도시한다.
워드 라인 디코더 회로(3301)는 도시된 바와 같이 구성된 PMOS 선택 트랜지스터(3302)(신호 HVO_B에 의해 제어됨) 및 NMOS 선택해제 트랜지스터(3303)(신호 HVO_B에 의해 제어됨)를 포함한다.
소스 라인 디코더 회로(3304)는 도시된 바와 같이 구성된 NMOS 모니터 트랜지스터들(3305)(신호 HVO에 의해 제어됨), 구동 트랜지스터(3306)(신호 HVO에 의해 제어됨), 및 선택해제 트랜지스터(3307)(신호 HVO_B에 의해 제어됨)를 포함한다.
고전압 레벨 시프터(3308)는 인에이블 신호 EN을 수신하였고, 고전압 신호 HV 및 그의 상보물 HVO_B를 출력한다.
도 34는 도 3에 도시된 타입의 메모리 셀들과 함께 사용하는 데 적합한, 소거 게이트 디코더 회로(3401), 제어 게이트 디코더 회로(3404), 소스 라인 디코더 회로(3407), 및 고전압 레벨 시프터(3411)를 포함하는 VMM 고전압 디코드 회로들을 도시한다.
소거 게이트 디코더 회로(3401) 및 제어 게이트 디코더 회로(3404)는 도 33에서의 워드 라인 디코더 회로(3301)와 동일한 설계를 사용한다.
소스 라인 디코더 회로(3407)는 도 33에서의 소스 라인 디코더 회로(3304)와 동일한 설계를 사용한다.
고전압 레벨 시프터(3411)는 도 33에서의 고전압 레벨 시프터(3308)와 동일한 설계를 사용한다.
도 35는 출력된 뉴런 전류를 전압으로 변환하는 적응가능 뉴런 회로(3500)를 도시한다. 적응가능 뉴런 회로(3500)는 하나의 PMOS 트랜지스터(3501)만을 사용하고, 본질적으로 스위치들(3502, 3503, 3504)을 사용하여 그 자신을 미러링하도록 구성된다(즉, 샘플 및 홀드 미러). 처음에, 스위치(3502) 및 스위치(3503)가 폐쇄되고 스위치(3504)가 개방되며, 이때 PMOS 트랜지스터(3501)는 VMM으로부터의 전류를 나타내는 전류 소스인 I_NEURON에 커플링된다. 이어서, 스위치(3502, 3503)가 개방되고 스위치(3504)가 폐쇄되는데, 이는 PMOS 트랜지스터(3501)가 그의 드레인으로부터 가변 저항기(3506)로 전류 I_NEURON을 전송하게 한다. 이에 따라, 적응가능 뉴런(3500)은 전류 신호(I_NEURON)를 전압 신호(VO)로 변환한다. 기본적으로, 트랜지스터(3501)는 전류 I_NEURON을 샘플링하고, 샘플링된 게이트-소스 전압을 그의 게이트 상에 저장함으로써 그것을 유지한다. 연산 증폭기 회로는 출력 전압(VO)을 버퍼링하여 구성가능한 인터커넥트를 구동시키는 데 사용될 수 있다.
도 36은 전류 샘플 및 홀드(S/H) 회로(3600)와 전압 샘플 및 홀드(S/H) 회로(3650)를 도시한다. 전류 S/H 회로(3600)는 샘플링 스위치들(3602, 3603), S/H 커패시터(3605), 입력 트랜지스터(3604) 및 출력 트랜지스터(3606)를 포함한다. 입력 트랜지스터(3604)는 입력 전류(3601)를 S/H 커패시터(3605) 상의 S/H 전압으로 변환하는 데 사용되고, 출력 트랜지스터(3606)의 게이트에 커플링된다. 전압 S/H 회로(3650)는 샘플링 스위치(3622), S/H 커패시터(3653), 및 연산 증폭기(3654)를 포함한다. 연산 증폭기(3654)는 커패시터(3653) 상의 S/H 전압을 버퍼링하는 데 사용된다. S/H 회로들(3600, 3650)은 본 명세서에 기술된 출력 합산기 회로들 및/또는 활성화 회로들과 함께 사용될 수 있다. 대안적인 실시예에서, 디지털 샘플 및 홀드 회로들은 아날로그 샘플 및 홀드 회로들(3600, 3650) 대신에 사용될 수 있다.
도 37은 선형 영역에서 동작하는 메모리 셀들에 적합한 어레이 아키텍처를 도시한다. 시스템(3700)은 입력 블록(3701), 출력 블록(3702), 및 메모리 셀들의 어레이(3703)를 포함한다. 입력 블록(3701)은 어레이(3703) 내의 메모리 셀들의 드레인들(소스 라인들)에 커플링되고, 출력 블록(3702)은 어레이(3703) 내의 메모리 셀들의 비트 라인들에 커플링된다. 대안적으로, 입력 블록(3701)은 어레이(3703) 내의 메모리 셀들의 워드 라인들에 커플링되고, 출력 블록(3702)은 어레이(3703) 내의 메모리 셀들의 비트 라인들에 커플링된다.
시스템(3700)이 LSTM 또는 GRU를 구현하는 데 사용되는 경우들에서, 출력 블록(3702) 및/또는 입력 블록(3701)은 LSTM/GRU 아키텍처에 대해 필요에 따라 승산기 블록, 가산 블록, 감산(출력= 1-입력) 블록을 포함할 수 있고, 선택적으로, 필요에 따라 아날로그 샘플 및 홀드 회로들(예컨대, 도 36의 회로들(3600 또는 3650)) 또는 디지털 샘플 및 홀드 회로들(예컨대, 레지스터 또는 SRAM)을 포함할 수 있다.
본 명세서에 사용된 바와 같이, 용어들 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)와 "간접적으로~ 상에"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것에 유의하여야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "~에 실장되는"은 "직접적으로 ~에 실장되는"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 실장되는"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 커플링되는"은 "직접적으로 ~에 전기적으로 커플링되는"(요소들을 함께 전기적으로 접속시키는 어떠한 중간 재료들 또는 요소들도 사이에 없음)과 "간접적으로 ~에 전기적으로 커플링되는"(요소들을 함께 전기적으로 접속시키는 중간 재료들 또는 요소들이 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료들/요소들도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료들/요소들을 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.

Claims (77)

  1. 삭제
  2. 삭제
  3. 구성가능한 벡터 매트릭스 승산(vector-by-matrix multiplication) 시스템으로서,
    로우(row)들 및 컬럼(column)들로 배열되는 메모리 셀들의 어레이;
    벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력 전압들의 벡터를 생성하기 위해 상기 어레이에 커플링된 출력 블록; 및
    벡터 매트릭스 승산기 동작 동안, 입력 전압들의 벡터에 응답하여 입력 전류들의 벡터를 생성하고 상기 입력 전류들의 벡터를 상기 어레이 내의 복수의 메모리 셀들에 제공하기 위해 상기 어레이에 커플링된 활성화 블록을 포함하고,
    제1 사이클 동안, 상기 어레이에서 제1 서브어레이가 생성되고, 상기 출력 블록은 상기 제1 서브어레이에 커플링되고 상기 활성화 블록은 상기 제1 서브어레이에 커플링되고,
    제2 사이클 동안, 상기 어레이 내에서 제2 서브어레이가 생성되고, 상기 출력 블록은 상기 제2 서브어레이에 커플링되고 상기 활성화 블록은 상기 제2 서브어레이에 커플링되며, 상기 제1 서브어레이 및 상기 제2 서브어레이는 상기 어레이 내의 상이한 메모리 셀들로 이루어지며,
    상기 제2 서브어레이의 벡터 매트릭스 승산기 동작을 위해 상기 제1 서브어레이로부터 수신된 전류에 응답하여 상기 출력 블록으로부터의 출력 전압들의 벡터를 상기 활성화 블록으로 라우팅하기 위한 라우팅 회로부를 추가로 포함하는, 시스템.
  4. 제3항에 있어서, 상기 라우팅 회로부는 하나 이상의 멀티플렉서들을 포함하는, 시스템.
  5. 제3항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어기를 추가로 포함하는, 시스템.
  6. 제3항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어 로직을 추가로 포함하는, 시스템.
  7. 제3항에 있어서, 상기 메모리 셀들은 분리형 게이트 플래시 메모리 셀들인, 시스템.
  8. 제3항에 있어서, 상기 출력 블록은 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력 전압들의 벡터를 생성하기 위해 상기 어레이에 커플링된 전류 합산기 블록인, 시스템.
  9. 제3항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 출력 폭을 구성하는 능력을 제공하는, 시스템.
  10. 제3항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 입력 폭을 구성하는 능력을 제공하는, 시스템.
  11. 제3항에 있어서, 상기 출력 블록은 디지털 비트들을 출력하는, 시스템.
  12. 삭제
  13. 제3항에 있어서, 상기 벡터 매트릭스 승산 시스템은 장단기 메모리(long short term memory) 셀의 부분인, 시스템.
  14. 제3항에 있어서, 상기 벡터 매트릭스 승산 시스템은 게이티드 순환 유닛(gated recurrent unit) 셀의 부분인, 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 구성가능한 벡터 매트릭스 승산 시스템으로서,
    로우들 및 컬럼들로 배열되는 메모리 셀들의 어레이; 및
    벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력들의 벡터를 생성하기 위해 상기 어레이에 커플링된 출력 블록을 포함하며,
    제1 사이클 동안, 상기 어레이에서 제1 서브어레이가 생성되고, 상기 출력 블록은 상기 제1 서브어레이에 커플링되고 활성화 블록은 상기 제1 서브어레이에 커플링되며,
    제2 사이클 동안, 상기 어레이 내에서 제2 서브어레이가 생성되고, 상기 출력 블록은 상기 제2 서브어레이에 커플링되고 상기 활성화 블록은 상기 제2 서브어레이에 커플링되며, 상기 제1 서브어레이 및 상기 제2 서브어레이는 상기 어레이 내의 상이한 메모리 셀들로 이루어지고,
    상기 제2 서브어레이의 벡터 매트릭스 승산기 동작을 위해 상기 제1 서브어레이로부터 수신된 전류에 응답하여 상기 출력 블록으로부터의 출력 전압들의 벡터를 상기 활성화 블록으로 라우팅하기 위한 라우팅 회로부를 추가로 포함하는, 시스템.
  20. 제19항에 있어서, 상기 라우팅 회로부는 하나 이상의 멀티플렉서들을 포함하는, 시스템.
  21. 제19항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어기를 추가로 포함하는, 시스템.
  22. 제19항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어 로직을 추가로 포함하는, 시스템.
  23. 제19항에 있어서, 상기 메모리 셀들은 분리형 게이트 플래시 메모리 셀들인, 시스템.
  24. 제19항에 있어서, 상기 출력 블록은 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력 전압들의 벡터를 생성하기 위해 상기 어레이에 커플링된 전류 합산기 블록인, 시스템.
  25. 제19항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 출력 폭을 구성하는 능력을 제공하는, 시스템.
  26. 제19항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 입력 폭을 구성하는 능력을 제공하는, 시스템.
  27. 제19항에 있어서, 상기 출력 블록은 디지털 비트들을 출력하는, 시스템.
  28. 제19항에 있어서, 상기 출력 블록은 아날로그 레벨들을 출력하는, 시스템.
  29. 삭제
  30. 제19항에 있어서, 상기 출력 블록은 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류를 디지털 형태로 변환하기 위한 아날로그-디지털 변환 블록을 포함하는, 시스템.
  31. 제19항에 있어서, 벡터 매트릭스 승산 동작 동안 어레이 내 복수의 메모리 셀들로의 입력 데이터에 응답하여 입력의 벡터를 생성하기 위해 상기 어레이에 커플링된 입력 블록을 더 포함하는, 시스템.
  32. 제31항에 있어서, 상기 입력 블록은 상기 어레이에 커플링된 활성화 블록을 포함하는, 시스템.
  33. 제31항에 있어서, 상기 입력 블록은 상기 입력 데이터를 아날로그 형태로 변환하기 위한 디지털-아날로그 변환 블록을 포함하는, 시스템.
  34. 제19항에 있어서, 상기 벡터 매트릭스 승산 시스템은 장단기 메모리 셀의 부분인, 시스템.
  35. 제19항에 있어서, 상기 벡터 매트릭스 승산 시스템은 게이티드 순환 유닛 셀의 부분인, 시스템.
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 구성가능한 벡터 매트릭스 승산 시스템으로서,
    로우들 및 컬럼들로 배열되는 메모리 셀들의 어레이; 및
    벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 복수의 메모리 셀들에 대한 입력 데이터에 응답하여 입력들의 벡터를 생성하기 위해 상기 어레이에 커플링된 입력 블록을 포함하며,
    제1 사이클 동안, 상기 어레이에서 제1 서브어레이가 생성되고 상기 입력 블록은 상기 제1 서브어레이에 커플링되고;
    제2 사이클 동안, 상기 어레이 내에서 제2 서브어레이가 생성되고 상기 입력 블록은 상기 제2 서브어레이에 커플링되고, 상기 제1 서브어레이 및 상기 제2 서브어레이는 상기 어레이 내의 상이한 메모리 셀들로 이루어지며,
    벡터 매트릭스 승산기 동작을 위해 입력 블록으로부터의 입력의 벡터를 제1 서브어레이로 라우팅으로 라우팅하기 위한 라우팅 회로부를 추가로 포함하는, 시스템.
  41. 제40항에 있어서, 상기 라우팅 회로부는 하나 이상의 멀티플렉서들을 포함하는, 시스템.
  42. 제40항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어기를 추가로 포함하는, 시스템.
  43. 제40항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어 로직을 추가로 포함하는, 시스템.
  44. 제40항에 있어서, 상기 메모리 셀들은 분리형 게이트 플래시 메모리 셀들인, 시스템.
  45. 제40항에 있어서, 어레이로부터 수신된 전류에 응답하여 출력 벡터를 생성하기 위해 상기 어레이에 커플링된 출력 블록을 추가로 포함하는, 시스템.
  46. 제45항에 있어서, 상기 출력 블록은 전류 합산기 블록인, 시스템.
  47. 제40항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 출력 폭을 구성하는 능력을 제공하는, 시스템.
  48. 제40항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 입력 폭을 구성하는 능력을 제공하는, 시스템.
  49. 제45항에 있어서, 상기 출력 블록은 디지털 비트들을 출력하는, 시스템.
  50. 제45항에 있어서, 상기 출력 블록은 아날로그 레벨들을 출력하는, 시스템.
  51. 삭제
  52. 제45항에 있어서, 상기 출력 블록은 어레이 내 복수의 메모리 셀들로부터 수신된 전류를 디지털 형태로 변환하기 위한 아날로그-디지털 변환 블록을 포함하는, 시스템.
  53. 삭제
  54. 삭제
  55. 삭제
  56. 제40항에 있어서, 상기 입력 블록은 상기 메모리 셀들의 어레이 내의 각각의 메모리 셀의 소스 게이트에 커플링되는, 시스템.
  57. 제40항에 있어서, 상기 입력 블록은 상기 메모리 셀들의 어레이 내의 각각의 메모리 셀의 워드 라인 게이트에 커플링되는, 시스템.
  58. 제40항에 있어서, 상기 벡터 매트릭스 승산 시스템은 장단기 메모리 셀의 부분인, 시스템.
  59. 제40항에 있어서, 상기 벡터 매트릭스 승산 시스템은 게이티드 순환 유닛 셀의 부분인, 시스템.
  60. 아날로그 신경 메모리 시스템으로서,
    복수의 벡터 매트릭스 승산 서브시스템들을 포함하고, 각각의 벡터 매트릭스 승산 서브시스템은,
    로우들 및 컬럼들로 배열되는 메모리 셀들의 어레이;
    벡터 매트릭스 승산기 동작 동안 상기 어레이 내의 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력 전압들의 벡터를 생성하기 위해 상기 어레이에 커플링된 출력 블록; 및
    벡터 매트릭스 승산기 동작 동안, 입력 전압들의 벡터에 응답하여 입력 전류들의 벡터를 생성하고 상기 입력 전류들의 벡터를 상기 어레이 내의 복수의 메모리 셀들에 제공하기 위해 상기 어레이에 커플링된 활성화 블록을 포함하고, 그리고,
    상기 복수의 벡터 매트릭스 승산 서브시스템들 중 하나의 벡터 매트릭스 승산 서브시스템 내의 제1 어레이 내에 포함된 제1 서브어레이에 커플링된 출력 블록으로부터의 출력 전압들의 벡터를 상기 복수의 벡터 매트릭스 승산 서브시스템들 중 다른 벡터 매트릭스 승산 서브시스템 내의 제2 어레이 내에 포함된 제2 서브어레이에 커플링된 활성화 블록으로 라우팅하기 위한 라우팅 회로부를 더 포함하는, 시스템.
  61. 제60항에 있어서, 상기 라우팅 회로부는 하나 이상의 멀티플렉서들을 포함하는, 시스템.
  62. 제60항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어기를 추가로 포함하는, 시스템.
  63. 제60항에 있어서, 상기 제1 서브어레이 및 상기 제2 서브어레이를 생성하기 위한 제어 로직을 추가로 포함하는, 시스템.
  64. 제60항에 있어서, 상기 벡터 매트릭스 승산 서브시스템들 중 일부 또는 모두는 장단기 메모리 셀을 형성하는, 시스템.
  65. 제60항에 있어서, 상기 벡터 매트릭스 승산 서브시스템들 중 일부 또는 모두는 게이티드 순환 유닛 셀을 형성하는, 시스템.
  66. 제60항에 있어서, 상기 메모리 셀들은 분리형 게이트 플래시 메모리 셀들인, 시스템.
  67. 제60항에 있어서, 상기 출력 블록은 어레이 내 복수의 메모리 셀들로부터 수신된 전류에 응답하여 출력 전압의 벡터를 생성하기 위해 상기 어레이에 커플링된 전류 합산기 블록인, 시스템.
  68. 제60항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 출력 폭을 구성하는 능력을 제공하는, 시스템.
  69. 제60항에 있어서, 상기 시스템은 상기 시스템 내에 뉴런의 입력 폭을 구성하는 능력을 제공하는, 시스템.
  70. 제60항에 있어서, 상기 출력 블록은 디지털 비트들을 출력하는, 시스템.
  71. 삭제
  72. 제60항에 있어서, 상기 벡터 매트릭스 승산 시스템은 장단기 메모리 셀의 부분인, 시스템.
  73. 제60항에 있어서, 상기 벡터 매트릭스 승산 시스템은 게이티드 순환 유닛 셀의 부분인, 시스템.
  74. 제19항에 있어서, 가중치를 나타내는 값이 차동 셀에 저장되는, 시스템.
  75. 제19항에 있어서, 가중치를 나타내는 값이 2개의 블렌드 메모리 셀들에 저장되는, 시스템.
  76. 제40항에 있어서, 가중치를 나타내는 값이 차동 셀에 저장되는, 시스템.
  77. 제40항에 있어서, 가중치를 나타내는 값이 2개의 블렌드 메모리 셀들에 저장되는, 시스템.
KR1020217007008A 2018-08-27 2019-07-11 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템 KR102351423B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862723360P 2018-08-27 2018-08-27
US62/723,360 2018-08-27
US16/182,237 2018-11-06
US16/182,237 US10956814B2 (en) 2018-08-27 2018-11-06 Configurable analog neural memory system for deep learning neural network
PCT/US2019/041493 WO2020046474A1 (en) 2018-08-27 2019-07-11 Configurable analog neural memory system for deep learning neural network

Publications (2)

Publication Number Publication Date
KR20210035304A KR20210035304A (ko) 2021-03-31
KR102351423B1 true KR102351423B1 (ko) 2022-01-13

Family

ID=69587243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007008A KR102351423B1 (ko) 2018-08-27 2019-07-11 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템

Country Status (7)

Country Link
US (3) US10956814B2 (ko)
EP (2) EP3844678B1 (ko)
JP (1) JP7209811B2 (ko)
KR (1) KR102351423B1 (ko)
CN (1) CN112585623B (ko)
TW (1) TWI718626B (ko)
WO (1) WO2020046474A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
US11513797B2 (en) * 2018-09-12 2022-11-29 Mentium Technologies Inc. Systems and methods for analog vector by matrix multiplier
JP7259253B2 (ja) * 2018-10-03 2023-04-18 株式会社デンソー 人工ニューラルネットワーク回路
US11663056B2 (en) * 2019-12-20 2023-05-30 Intel Corporation Unified programming interface for regrained tile execution
US20210350217A1 (en) * 2020-05-10 2021-11-11 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network with source line pulldown mechanism
CN112181895B (zh) * 2020-09-02 2023-06-06 上海交通大学 可重构架构、加速器、电路部署和计算数据流方法
CN114335186A (zh) * 2020-09-30 2022-04-12 硅存储技术股份有限公司 具有设置在字线栅上方的擦除栅的分裂栅非易失性存储器单元及其制备方法
WO2022232196A1 (en) * 2021-04-26 2022-11-03 The Trustees Of Dartmouth College Low power analog circuitry for artificial neural networks
WO2024026741A1 (en) * 2022-08-03 2024-02-08 Hefei Reliance Memory Limited Acceleration architecture for neural networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170337466A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US10565492B2 (en) 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
US5182794A (en) * 1990-07-12 1993-01-26 Allen-Bradley Company, Inc. Recurrent neural networks teaching system
US5726934A (en) * 1996-04-09 1998-03-10 Information Storage Devices, Inc. Method and apparatus for analog reading values stored in floating gate structures
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
US20050125477A1 (en) 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US9152827B2 (en) 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
CN105122278B (zh) * 2013-03-15 2017-03-22 Hrl实验室有限责任公司 神经网络及编程方法
US9672930B2 (en) * 2015-05-29 2017-06-06 Silicon Storage Technology, Inc. Low power operation for flash memory system
US10346350B2 (en) * 2015-10-08 2019-07-09 Via Alliance Semiconductor Co., Ltd. Direct execution by an execution unit of a micro-operation loaded into an architectural register file by an architectural instruction of a processor
CN106447035B (zh) * 2015-10-08 2019-02-26 上海兆芯集成电路有限公司 具有可变率执行单元的处理器
KR102399548B1 (ko) * 2016-07-13 2022-05-19 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR20180009315A (ko) * 2016-07-18 2018-01-26 아이엠이씨 브이제트더블유 시간 메모리 시스템의 하드웨어 구현
US11501130B2 (en) * 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
DE112017004983T5 (de) * 2016-09-30 2019-06-19 Semiconductor Energy Laboratory Co., Ltd. Anzeigesystem und elektronisches Gerät
US9922696B1 (en) * 2016-10-28 2018-03-20 Samsung Electronics Co., Ltd. Circuits and micro-architecture for a DRAM-based processing unit
US10528321B2 (en) * 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack
US10748630B2 (en) 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
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
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US11769036B2 (en) * 2018-04-18 2023-09-26 Qualcomm Incorporated Optimizing performance of recurrent neural networks
US10860918B2 (en) * 2018-08-21 2020-12-08 Silicon Storage Technology, Inc. Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170337466A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US10565492B2 (en) 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xinjie Guo, 'Mixed Signal Neurocomputing Based on Floating-gate Memories', Dissertation for Ph. D in the Electrical and Computer Engineering of UC Santa Barbara, 2017.01.01

Also Published As

Publication number Publication date
US20240095511A1 (en) 2024-03-21
EP3844678B1 (en) 2023-05-10
JP2021536614A (ja) 2021-12-27
CN112585623B (zh) 2022-06-28
TW202016928A (zh) 2020-05-01
EP3844678A1 (en) 2021-07-07
US20210174185A1 (en) 2021-06-10
EP4220489A1 (en) 2023-08-02
US12061976B2 (en) 2024-08-13
US20200065660A1 (en) 2020-02-27
US10956814B2 (en) 2021-03-23
KR20210035304A (ko) 2021-03-31
CN112585623A (zh) 2021-03-30
JP7209811B2 (ja) 2023-01-20
TWI718626B (zh) 2021-02-11
WO2020046474A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
KR102653629B1 (ko) 다수의 벡터 매트릭스 승산 어레이들 및 공유 컴포넌트들을 포함한 딥 러닝 신경 네트워크를 위한 아날로그 신경 메모리 시스템
KR102351423B1 (ko) 딥 러닝 신경 네트워크에 대한 구성가능 아날로그 신경 메모리 시스템
KR102616978B1 (ko) 딥 러닝 인공 신경망에서의 아날로그 비휘발성 메모리를 위한 프로그램 가능 뉴런
KR102457394B1 (ko) 딥 러닝 신경 네트워크에서 사용되는 아날로그 신경 메모리 시스템 내의 메모리 셀들에 대한 온도 및 누설 보상
KR102516399B1 (ko) 심층 학습 인공 신경망에서 아날로그 신경 메모리를 위한 디코더들
KR102657708B1 (ko) 딥 러닝 인공 신경 네트워크 내의 아날로그 신경 메모리를 위한 디코딩 시스템 및 물리적 레이아웃
KR102430151B1 (ko) 심층 학습 신경망에서 아날로그 비휘발성 메모리를 위한 데이터 리프레쉬 방법 및 장치
KR102675657B1 (ko) 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를 프로그래밍하기 위한 방법 및 장치
KR102404411B1 (ko) 딥 러닝 인공 신경 네트워크에서 아날로그 신경 메모리 내의 비휘발성 메모리 셀의 프로그래밍 동작 도중 저장된 값을 검증하기 위한 알고리즘들 및 회로부
KR20220141855A (ko) 인공 신경망에서 아날로그 신경 메모리 어레이를 위한 비휘발성 메모리 셀들 및 연관된 고전압 회로들의 페이지 또는 워드의 정밀 튜닝
KR102550428B1 (ko) 딥 러닝 인공 신경 네트워크에서 아날로그 신경 메모리 내의 결함이 있는 메모리 셀들을 포함하는 로우들 또는 컬럼들에 대한 리던던트 메모리 액세스

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant