KR20230110361A - 인공 신경망 내의 아날로그 신경 메모리를 위한 정밀데이터 튜닝 방법 및 장치 - Google Patents
인공 신경망 내의 아날로그 신경 메모리를 위한 정밀데이터 튜닝 방법 및 장치 Download PDFInfo
- Publication number
- KR20230110361A KR20230110361A KR1020237021985A KR20237021985A KR20230110361A KR 20230110361 A KR20230110361 A KR 20230110361A KR 1020237021985 A KR1020237021985 A KR 1020237021985A KR 20237021985 A KR20237021985 A KR 20237021985A KR 20230110361 A KR20230110361 A KR 20230110361A
- Authority
- KR
- South Korea
- Prior art keywords
- cell
- neural network
- volatile memory
- value
- memory cells
- Prior art date
Links
Images
Classifications
-
- 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
- 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
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/048—Activation functions
-
- 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
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B41/00—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
- H10B41/30—Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Non-Volatile Memory (AREA)
- Networks Using Active Elements (AREA)
- Feedback Control In General (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
Abstract
인공 신경망 내의 벡터x매트릭스 승산(VMM) 어레이 내에 있는 비휘발성 메모리 셀의 플로팅 게이트 상에 정확한 양의 전하를 정밀하고 신속하게 증착하기 위한 정밀 프로그래밍 알고리즘 및 장치의 다수의 실시예가 개시된다. 그에 의해 선택된 셀은 N개의 상이한 값 중 하나를 보유하도록 극도의 정밀도로 프로그래밍될 수 있다.
Description
우선권 주장
본 출원은 2020년 1월 3일자로 출원되고 발명의 명칭이 "Precise Data Tuning Method and Apparatus for Analog Neuromorphic Memory in an Artificial Neural Network."인 미국 가특허 출원 번호 제62/957,013호로부터 우선권을 주장하는 2020년 3월 25일자로 출원되고 발명의 명칭이 "Precise Data Tuning Method and Apparatus for Analog Neuromorphic Memory in an Artificial Neural Network,"인 미국 특허 출원 번호 제16/829,757호의 일부의 연속인 2021년 2월 25일자로 출원되고 발명의 명칭이 "Precise Data Tuning Method and Apparatus for Analog Neural Memory in an Artificial Neural Network,"인 미국 특허 출원 번호 제17/185,725호에 대한 우선권을 주장한다.
기술분야
인공 신경망 내의 벡터x매트릭스 승산(VMM) 어레이 내의 비휘발성 메모리 셀의 플로팅 게이트 상에 정확한 양의 전하를 정밀하고 신속하게 증착하기 위한 정밀 튜닝 방법 및 장치의 다수의 실시예가 개시된다.
인공 신경망은 생물학적 신경망(동물의 중추신경계, 특히 뇌)을 모방하며, 다수의 입력에 의존할 수 있고 일반적으로 알려져 있지 않은 함수를 추정하거나 근사화하는 데 이용된다. 인공 신경망은 일반적으로, 서로 간에 메시지를 교환하는 상호연결된 "뉴런"의 층을 포함한다.
도 1은 인공 신경망을 예시하며, 원은 입력 또는 뉴런의 층을 나타낸다. 연결부(시냅스로 지칭되는)는 화살표로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치를 갖는다. 이것은 인공 신경망을 입력에 적응할 수 있고 학습할 수 있게 만든다. 전형적으로, 인공 신경망은 다수의 입력 층을 포함한다. 전형적으로 뉴런의 하나 이상의 중간 층, 및 신경망의 출력을 제공하는 뉴런의 출력 층이 있다. 각 레벨의 뉴런은 개별적으로 또는 집합적으로 시냅스로부터의 수신된 데이터에 기초하여 결정을 내린다.
고성능 정보 처리를 위한 인공 신경망의 개발에서의 주요 문제 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 인공 신경망은 매우 많은 수의 시냅스에 의존하며, 뉴런 사이의 높은 연결성, 즉 매우 높은 계산 병렬성을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터 또는 특수 그래픽 처리 유닛 클러스터로 달성될 수 있다. 그러나, 고비용 외에도, 이들 접근법은 또한 주로 저정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 망에 비해 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로가 인공 신경망에 사용되어 왔지만, 대부분의 CMOS 구현 시냅스는 많은 수의 뉴런 및 시냅스를 고려해 볼 때 너무 부피가 컸다.
출원인은, 참고로 포함되는, 미국 특허 공개 제2017/0337466호로서 공개된, 미국 특허 출원 제15/594,439호에서 하나 이상의 비휘발성 메모리 어레이를 시냅스로서 이용하는 인공 (아날로그) 신경망을 이전에 개시하였다. 비휘발성 메모리 어레이는 아날로그 뉴로모픽 메모리로서 동작한다. 본 원에서 사용된 바와 같은, 용어 '뉴로모픽'은 신경계의 모델을 구현하는 회로부를 의미한다. 아날로그 뉴로모픽 메모리는 제1 복수의 입력을 수신하고 그로부터 제1 복수의 출력을 생성하도록 구성된 제1 복수의 시냅스, 및 제1 복수의 출력을 수신하도록 구성된 제1 복수의 뉴런을 포함한다. 제1 복수의 시냅스는 복수의 메모리 셀을 포함하며, 메모리 셀 각각은 반도체 기판 내에 형성되고 그 사이에 연장되는 채널 영역을 갖는 이격된 소스 영역 및 드레인 영역, 채널 영역의 제1 부분 위에 배치되고 그로부터 절연되는 플로팅 게이트, 및 채널 영역의 제2 부분 위에 배치되고 그로부터 절연되는 비플로팅 게이트를 포함한다. 복수의 메모리 셀 각각은 플로팅 게이트 상의 전자의 수에 대응하는 가중치 값을 저장하도록 구성된다. 복수의 메모리 셀은 제1 복수의 입력을 저장된 가중치 값과 승산하여 제1 복수의 출력을 생성하도록 구성된다. 이러한 방식으로 배열된 메모리 셀의 어레이는 벡터x매트릭스 승산(VMM) 어레이로 지칭될 수 있다.
VMM 어레이에서 사용되는 각각의 비휘발성 메모리 셀은 플로팅 게이트에서 매우 특정적이고 정확한 양의 전하를, 즉 전자의 수를 보유하도록 소거되고 프로그래밍되어야 한다. 예를 들어, 각 플로팅 게이트는 N개의 상이한 값 중 하나를 보유해야 하며, N은 각 셀에 의해 표시될 수 있는 상이한 가중치의 수이다. N의 예는 16, 32, 64, 128 및 256을 포함한다. 하나의 문제는 선택한 셀을 N개의 상이한 값에 대해 요구되는 정밀도와 입도로 프로그래밍하는 능력이다. 예를 들어, 선택된 셀이 64개의 상이한 값 중 하나를 포함할 수 있다면, 프로그램 동작에서 극도의 정밀도가 요구된다.
필요한 것은 아날로그 뉴로모픽 메모리에서 VMM 어레이와 함께 사용하기에 적합한 개선된 프로그래밍 시스템 및 방법이다.
발명의요약
아날로그 뉴로모픽 메모리 시스템에서 VMM 어레이 내의 비휘발성 메모리 셀의 플로팅 게이트 상에 정확한 양의 전하를 정밀하고 신속하게 증착하기 위한 정밀 튜닝 알고리즘 및 장치의 다수의 실시예가 개시된다. 그에 의해 선택된 셀은 N개의 상이한 값 중 하나를 보유하도록 극도의 정밀도로 프로그래밍될 수 있다.
일 실시예에서, 신경망은 비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하고, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 어레이 내의 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w- 으로서 저장되며, w+ 및 w-는 0이 아닌 오프셋 값을 포함한다.
다른 실시예에서, 신경망은 비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 이 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w-로서 저장되며, w+ 및 w- 값의 저장은 어레이 내의 모든 컬럼 사이에서 대략적으로 균일하게 확산된다.
다른 실시예에서, 벡터x매트릭스 승산 어레이에서 비휘발성 메모리 셀의 차동 쌍에서 0 값을 프로그래밍, 검증, 및 판독하는 방법은 차동 쌍에 제1 셀 w+를 제1 전류 값으로 프로그래밍하는 단계, 제1 전압 더하기 바이어스 전압과 동일한 전압을 제1 셀의 제어 게이트 단자에 적용함으로써 제1 셀을 검증하는 단계, 차동 쌍에 제2 셀 w-를 제1 전류 값으로 프로그래밍하는 단계, 제1 전압 더하기 바이어스 전압과 동일한 전압을 제2 셀의 제어 게이트 단자에 적용함으로써 제2 셀을 검증하는 단계, 제1 셀의 제어 게이트 단자에 제1 전압과 동일한 전압을 적용함으로써 제1 셀을 판독하는 단계, 제2 셀의 제어 게이트 단자에 제1 전압과 동일한 전압을 적용함으로써 제2 셀을 판독하는 단계 및 화학식 w = (w+) - (w-)에 따라 값(w)을 계산하는 단계를 포함한다.
다른 실시예에서, 벡터x매트릭스 승산 어레이에서 비휘발성 메모리 셀의 차동 쌍에서 0 값을 프로그래밍, 검증, 및 판독하는 방법은 차동 쌍에 제1 셀 w+를 제1 전류 값으로 프로그래밍하는 단계, 제1 전압 더하기 바이어스 전압과 동일한 전압을 제1 셀의 제어 게이트 단자에 적용함으로써 제1 셀을 검증하는 단계, 차동 쌍에 제2 셀 w-를 제1 전류 값으로 프로그래밍하는 단계, 제1 전압 더하기 바이어스 전압과 동일한 전압을 제2 셀의 제어 게이트 단자에 적용함으로써 제2 셀을 검증하는 단계, 제1 셀의 제어 게이트 단자에 제1 전압과 동일한 전압을 적용함으로써 제1 셀을 판독하는 단계, 제2 셀의 제어 게이트 단자에 제1 전압과 동일한 전압을 적용함으로써 제2 셀을 판독하는 단계 및 화학식 w = (w+) - (w-)에 따라 값(w)을 계산하는 단계를 포함한다.
다른 실시예에서, 신경망은 비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 이 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 차동 쌍 w+ 및 w-로서 저장되고, w+는 어레이 내의 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀에 차동 쌍으로서 저장되고, w-는 어레이 내의 제3 비휘발성 메모리 셀 및 제4 비휘발성 메모리 셀에 차동 쌍으로서 저장되며, w+ 및 w- 값의 저장은 바이어스 값에 의해 오프셋된다.
다른 실시예에서, 신경망은 비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 이 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w-로서 저장되며, w+에 대한 값은 0이 아닌 값의 제1 범위로부터 선택되고 w-에 대한 값은 0이 아닌 값의 제2 범위로부터 선택되며, 제1 범위 및 제2 범위는 중첩되지 않는다.
다른 실시예에서, 벡터x매트릭스 승산 어레이에서 비휘발성 메모리 셀을 판독하는 방법은 어레이 내의 선택된 셀에 저장된 가중치를 판독하는 단계를 포함하며, 이는, 선택된 셀의 제어 게이트 단자에 0 전압 바이어스를 적용하는 단계, 및 선택된 셀로부터의 전류 출력을 포함하는 뉴런 출력 전류를 감지하는 단계를 포함한다.
다른 실시예에서, 벡터x매트릭스 승산 어레이에서 비휘발성 메모리 셀을 동작시키는 방법은 비휘발성 메모리 셀의 제어 게이트에 제1 바이어스 전압을 적용함으로써 비휘발성 메모리 셀을 판독하는 단계, 및 대기 동작, 딥 파워 다운 동작, 또는 테스트 동작 중 하나 이상 동안 비휘발성 메모리 셀의 제어 게이트에 제2 바이어스 전압을 적용하는 단계를 포함한다.
도 1은 종래 기술의 인공 신경망을 예시하는 도면이다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 7은 종래 기술의 적층형 게이트 플래시 메모리 셀을 도시한다.
도 8은 하나 이상의 VMM 어레이를 활용하는 예시적인 인공 신경망의 상이한 레벨을 예시하는 도면이다.
도 9는 VMM 어레이 및 다른 회로부를 포함하는 VMM 시스템을 예시하는 블록 도면이다.
도 10은 하나 이상의 VMM 시스템을 활용하는 예시적인 인공 신경망을 예시하는 블록 도면이다.
도 11은 VMM 어레이의 다른 실시예를 도시한다.
도 12는 VMM 어레이의 다른 실시예를 도시한다.
도 13은 VMM 어레이의 다른 실시예를 도시한다.
도 14는 VMM 어레이의 다른 실시예를 도시한다.
도 15는 VMM 어레이의 다른 실시예를 도시한다.
도 16은 VMM 어레이의 다른 실시예를 도시한다.
도 17은 VMM 어레이의 다른 실시예를 도시한다.
도 18은 VMM 어레이의 다른 실시예를 도시한다.
도 19는 VMM 어레이의 다른 실시예를 도시한다.
도 20은 VMM 어레이의 다른 실시예를 도시한다.
도 21은 VMM 어레이의 다른 실시예를 도시한다.
도 22는 VMM 어레이의 다른 실시예를 도시한다.
도 23은 VMM 어레이의 다른 실시예를 도시한다.
도 24는 VMM 어레이의 다른 실시예를 도시한다.
도 25는 종래 기술의 장단기 메모리 시스템을 도시한다.
도 26은 장단기 메모리 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 27은 도 26의 예시적인 셀의 실시예를 도시한다.
도 28은 도 26의 예시적인 셀의 다른 실시예를 도시한다.
도 29는 종래 기술의 게이티드 순환 유닛 시스템을 도시한다.
도 30은 게이티드 순환 유닛 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 31은 도 30의 예시적인 셀의 실시예를 도시한다.
도 32는 도 30의 예시적인 셀의 다른 실시예를 도시한다.
도 33은 VMM 시스템을 도시한다.
도 34는 튜닝 보정 방법을 도시한다.
도 35a는 튜닝 보정 방법을 도시한다.
도 35b는 섹터 튜닝 보정 방법을 도시한다.
도 36a는 셀에 저장된 값에 대한 온도의 영향을 예시한다.
도 36b는 VMM 시스템의 동작 동안 데이터 드리프트에 의해 생성되는 문제를 예시한다.
도 36c는 데이터 드리프트를 보상하기 위한 블록을 도시한다.
도 36d는 데이터 드리프트 모니터를 도시한다.
도 37은 비트 라인 보상 회로를 도시한다.
도 38은 다른 비트 라인 보상 회로를 도시한다.
도 39는 다른 비트 라인 보상 회로를 도시한다.
도 40은 다른 비트 라인 보상 회로를 도시한다.
도 41은 다른 비트 라인 보상 회로를 도시한다.
도 42는 다른 비트 라인 보상 회로를 도시한다.
도 43은 뉴런 회로를 도시한다.
도 44는 다른 뉴런 회로를 도시한다.
도 45는 다른 뉴런 회로를 도시한다.
도 46은 다른 뉴런 회로를 도시한다.
도 47은 다른 뉴런 회로를 도시한다.
도 48은 다른 뉴런 회로를 도시한다.
도 49a는 출력 회로의 블록 도면을 도시한다.
도 49b는 다른 출력 회로의 블록 도면을 도시한다.
도 49c는 다른 출력 회로의 블록 도면을 도시한다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 7은 종래 기술의 적층형 게이트 플래시 메모리 셀을 도시한다.
도 8은 하나 이상의 VMM 어레이를 활용하는 예시적인 인공 신경망의 상이한 레벨을 예시하는 도면이다.
도 9는 VMM 어레이 및 다른 회로부를 포함하는 VMM 시스템을 예시하는 블록 도면이다.
도 10은 하나 이상의 VMM 시스템을 활용하는 예시적인 인공 신경망을 예시하는 블록 도면이다.
도 11은 VMM 어레이의 다른 실시예를 도시한다.
도 12는 VMM 어레이의 다른 실시예를 도시한다.
도 13은 VMM 어레이의 다른 실시예를 도시한다.
도 14는 VMM 어레이의 다른 실시예를 도시한다.
도 15는 VMM 어레이의 다른 실시예를 도시한다.
도 16은 VMM 어레이의 다른 실시예를 도시한다.
도 17은 VMM 어레이의 다른 실시예를 도시한다.
도 18은 VMM 어레이의 다른 실시예를 도시한다.
도 19는 VMM 어레이의 다른 실시예를 도시한다.
도 20은 VMM 어레이의 다른 실시예를 도시한다.
도 21은 VMM 어레이의 다른 실시예를 도시한다.
도 22는 VMM 어레이의 다른 실시예를 도시한다.
도 23은 VMM 어레이의 다른 실시예를 도시한다.
도 24는 VMM 어레이의 다른 실시예를 도시한다.
도 25는 종래 기술의 장단기 메모리 시스템을 도시한다.
도 26은 장단기 메모리 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 27은 도 26의 예시적인 셀의 실시예를 도시한다.
도 28은 도 26의 예시적인 셀의 다른 실시예를 도시한다.
도 29는 종래 기술의 게이티드 순환 유닛 시스템을 도시한다.
도 30은 게이티드 순환 유닛 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 31은 도 30의 예시적인 셀의 실시예를 도시한다.
도 32는 도 30의 예시적인 셀의 다른 실시예를 도시한다.
도 33은 VMM 시스템을 도시한다.
도 34는 튜닝 보정 방법을 도시한다.
도 35a는 튜닝 보정 방법을 도시한다.
도 35b는 섹터 튜닝 보정 방법을 도시한다.
도 36a는 셀에 저장된 값에 대한 온도의 영향을 예시한다.
도 36b는 VMM 시스템의 동작 동안 데이터 드리프트에 의해 생성되는 문제를 예시한다.
도 36c는 데이터 드리프트를 보상하기 위한 블록을 도시한다.
도 36d는 데이터 드리프트 모니터를 도시한다.
도 37은 비트 라인 보상 회로를 도시한다.
도 38은 다른 비트 라인 보상 회로를 도시한다.
도 39는 다른 비트 라인 보상 회로를 도시한다.
도 40은 다른 비트 라인 보상 회로를 도시한다.
도 41은 다른 비트 라인 보상 회로를 도시한다.
도 42는 다른 비트 라인 보상 회로를 도시한다.
도 43은 뉴런 회로를 도시한다.
도 44는 다른 뉴런 회로를 도시한다.
도 45는 다른 뉴런 회로를 도시한다.
도 46은 다른 뉴런 회로를 도시한다.
도 47은 다른 뉴런 회로를 도시한다.
도 48은 다른 뉴런 회로를 도시한다.
도 49a는 출력 회로의 블록 도면을 도시한다.
도 49b는 다른 출력 회로의 블록 도면을 도시한다.
도 49c는 다른 출력 회로의 블록 도면을 도시한다.
본 발명의 인공 신경망은 CMOS 기술 및 비휘발성 메모리 어레이의 조합을 활용한다.
비휘발성 메모리 셀
디지털 비휘발성 메모리는 잘 알려져 있다. 예를 들어, 본 원에 참조로 포함되는, 미국 특허 제5,029,130호("그'130 특허")는 플래시 메모리 셀의 한 유형인, 분리형 게이트 비휘발성 메모리 셀의 어레이를 개시하고 있다. 그러한 메모리 셀(210)이 도 2에 도시되어 있다. 각 메모리 셀(210)은 반도체 기판(12) 내에 형성된, 그 사이에 채널 영역(18)을 갖는 소스 영역(14) 및 드레인 영역(16)을 포함한다. 플로팅 게이트(20)는 채널 영역(18)의 제1 부분 위에 형성되고 그로부터 절연되며(그리고 그의 전도도를 제어하는) 소스 영역(14)의 일부분 위에 형성된다. 워드 라인 단자(22)(전형적으로 워드 라인에 결합됨)는 채널 영역(18)의 제2 부분 위에 배치되고 그로부터 절연되는(그리고 그의 전도도를 제어하는) 제1 부분, 및 플로팅 게이트(20) 위로 연장되는 제2 부분을 갖는다. 플로팅 게이트(20) 및 워드 라인 단자(22)는 게이트 산화물에 의해 기판(12)으로부터 절연된다. 비트 라인 단자(24)가 드레인 영역(16)에 결합된다.
메모리 셀(210)은 워드 라인 단자(22) 상에 높은 양의 전압을 배치함으로써 소거되며(전자가 플로팅 게이트로부터 제거됨), 플로팅 게이트(20) 상의 전자가 파울러-노드하임 터널링을 통해 중간 절연체를 통과하여 플로팅 게이트(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]
"판독(1)"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독(2)"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다.
도 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는 판독, 소거, 및 프로그램 동작을 수행하기 위해 메모리 셀(410)의 단자에 적용될 수 있는 전형적인 전압 범위를 도시한다:
[표 2]
"판독(1)"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독(2)"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다.
도 5는 메모리 셀(510)이 소거 게이트(EG) 단자를 포함하지 않는다는 점을 제외하고는 도 4의 메모리 셀(410)과 유사한, 메모리 셀(510)을 도시한다. 소거는 기판(18)을 고전압으로 바이어싱하고 제어 게이트(CG) 단자(28)를 저전압 또는 음의 전압으로 바이어싱함으로써 수행된다. 대안적으로, 소거는 워드 라인 단자(22)를 양의 전압으로 바이어싱하고 제어 게이트 단자(28)를 음의 전압으로 바이어싱함으로써 수행된다. 프로그래밍 및 판독은 도 4의 것과 유사하다.
도 6은 플래시 메모리 셀의 다른 유형인 3개 게이트 메모리 셀(610)을 도시한다. 메모리 셀(610)은, 메모리 셀(610)이 별개의 제어 게이트 단자를 갖지 않는다는 점을 제외하고는, 도 4의 메모리 셀(410)과 동일하다. 소거 동작(그에 의해 소거 게이트 단자의 사용을 통해 소거가 발생함) 및 판독 동작은, 제어 게이트 바이어스가 적용되지 않는다는 점을 제외하고는, 도 4의 것과 유사하다. 프로그래밍 동작은 또한 제어 게이트 바이어스 없이 행해지고, 결과적으로, 제어 게이트 바이어스의 결여를 보상하기 위해 프로그램 동작 동안 소스 라인 단자 상에 더 높은 전압이 적용되어야 한다.
표 3은 판독, 소거, 및 프로그램 동작을 수행하기 위해 메모리 셀(610)의 단자에 적용될 수 있는 전형적인 전압 범위를 도시한다:
[표 3]
"판독(1)"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독(2)"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다.
도 7은 플래시 메모리 셀의 다른 유형인 적층형 게이트 메모리 셀(710)을 도시한다. 메모리 셀(710)은, 절연 층(도시되지 않음)에 의해 분리되어, 플로팅 게이트(20)가 전체 채널 영역(18) 위로 연장되고, 제어 게이트 단자(22)(여기서 워드 라인에 결합될 것임)가 플로팅 게이트(20) 위로 연장된다는 점을 제외하고는, 도 2의 메모리 셀(210)과 유사하다. 소거, 프로그래밍, 및 판독 동작은 메모리 셀(210)에 대해 이전에 설명된 것과 유사한 방식으로 동작한다.
표 4는 판독, 소거, 및 프로그램 동작을 수행하기 위해 메모리 셀(710) 및 기판(12)의 단자에 적용될 수 있는 전형적인 전압 범위를 도시한다:
[표 4]
"판독(1)"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독(2)"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다. 선택적으로, 메모리 셀(210, 310, 410, 510, 610, 또는 710)의 로우 및 컬럼을 포함하는 어레이에서, 소스 라인은 메모리 셀의 하나의 로우 또는 메모리 셀의 2개의 인접한 로우에 결합될 수 있다. 즉, 소스 라인 단자는 메모리 셀의 인접한 로우에 의해 공유될 수 있다.
인공 신경망에서 위에서 설명한 비휘발성 메모리 셀의 유형 중 하나를 포함하는 메모리 어레이를 활용하기 위해, 2개의 수정이 이루어진다. 첫째, 라인은 하기에서 더 설명되는 바와 같이, 각 메모리 셀이 어레이 내의 다른 메모리 셀의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그램, 소거, 및 판독될 수 있도록 구성된다. 둘째, 메모리 셀의 연속적인(아날로그) 프로그래밍이 제공된다.
구체적으로, 어레이 내의 각 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적 및 다른 메모리 셀의 교란을 최소화하며, 완전 소거된 상태로부터 완전 프로그램된 상태로 연속적으로 변경될 수 있다. 다른 실시예에서, 어레이 내의 각 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적 및 다른 메모리 셀의 교란을 최소화하며, 완전 프로그램된 상태로부터 완전 소거된 상태로 연속적으로 변경될 수 있고, 그 역으로도 가능하다. 이것은 셀 저장소가 아날로그이거나 또는 적어도, 많은 개별 값(예를 들어 16개 또는 64개의 상이한 값) 중 하나를 저장할 수 있음을 의미하며, 메모리 어레이 내의 모든 셀의 매우 정밀하고 개별적인 튜닝을 허용하고, 메모리 어레이를 신경망의 시냅스 가중치에 대한 미세 튜닝 조절을 저장하고 행하는 데 이상적인 것으로 되게 한다.
본 원에 설명된 방법 및 수단은, 제한 없이, 소노스(실리콘-산화물-질화물-산화물-실리콘, 질화물 내의 전하 트랩), 모노스(금속-산화물-질화물-산화물-실리콘, 질화물 내의 금속 전하 트랩), 알이램(저항성 램), 피시엠(상 변화 메모리), 엠램(강자기 램), 에프이램(강유전체 램), 오티피(2 레벨 또는 복수 레벨 1회 프로그램 가능), 및 시이램(상관 전자 램)과 같은 다른 비휘발성 메모리 기술에 적용될 수 있다. 본 원에 설명된 방법 및 수단은, 제한 없이, 에스램, 디램, 및 다른 휘발성 시냅스 셀과 같은 신경망에 대해 사용되는 휘발성 메모리 기술에 적용될 수 있다.
비휘발성 메모리 셀 어레이를 채용한 신경망
도 8은 본 실시예의 비휘발성 메모리 어레이를 활용하는 신경망의 비제한적인 예를 개념적으로 예시한다. 이 예는 안면 인식 응용을 위해 비휘발성 메모리 어레이 신경망을 이용하지만, 임의의 다른 적절한 응용이 비휘발성 메모리 어레이 기반 신경망을 이용하여 구현될 수 있다.
(S0)은, 이 예에 대해, 5개의 비트 정밀도를 갖는 32x32 픽셀 RGB 이미지(즉, 각각의 색깔 R, G 및 B에 대해 하나씩인 3개의 32x32 픽셀 어레이, 각 픽셀은 5 비트 정밀도임)인 입력 층이다. 입력 층(S0)으로부터 층(C1)으로 가는 시냅스(CB1)는 일부 경우에 가중치 및 다른 경우에 공유 가중치의 상이한 세트를 적용하며, 입력 이미지를 3x3 픽셀 중첩 필터(커널)로 스캔하며, 필터를 1개의 픽셀(또는 모델에 의해 지시되는 바와 같이 1개 이상의 픽셀)만큼 시프트한다. 구체적으로, 이미지의 3x3 부분 내의 9개 픽셀(즉, 필터 또는 커널로 지칭됨)에 대한 값이 시냅스(CB1)에 제공되며, 이들 9개의 입력 값이 적절한 가중치로 승산되고, 그 승산의 출력을 합산한 후, 단일 출력 값이 결정되고, 피처 맵 중 하나의 층(C1)의 픽셀을 생성하기 위해 CB1의 제1 시냅스에 의해 제공된다. 이어서, 3x3 필터가 입력 층(S0) 내에서 하나의 픽셀만큼 우측으로 시프트되며(즉, 우측 상에 3개 픽셀의 컬럼을 추가하고, 좌측 상에 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)(풀링)가 층(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은 그 목적을 위해 사용될 수 있는 시스템의 블록 도면이다. VMM 시스템(32)은 비휘발성 메모리 셀을 포함하고, 하나의 층과 다음 층 사이에서 시냅스(도 6의 (CB1), (CB2), (CB3), 및 (CB4)와 같은)로서 활용된다. 구체적으로, VMM 시스템(32)은 로우 및 컬럼로 배열된 비휘발성 메모리 셀을 포함하는 VMM 어레이(33), 소거 게이트 및 워드 라인 게이트 디코더(34), 제어 게이트 디코더(35), 비트 라인 디코더(36) 및 소스 라인 디코더(37)를 포함하며, 이들은 비휘발성 메모리 셀 어레이(33)에 대한 각각의 입력을 디코딩한다. VMM 어레이(33)로의 입력은 소거 게이트 및 워드 라인 게이트 디코더(34)로부터 또는 제어 게이트 디코더(35)로부터일 수 있다. 이 예에서의 소스 라인 디코더(37)는 또한 VMM 어레이(33)의 출력을 디코딩한다. 대안적으로, 비트 라인 디코더(36)는 VMM 어레이(33)의 출력을 디코딩할 수 있다.
VMM 어레이(33)는 2개의 목적을 담당한다. 첫째, 그것은 VMM 시스템(32)에 의해 사용될 가중치를 저장한다. 둘째, VMM 어레이(33)는 입력을 VMM 어레이(33)에 저장된 가중치와 사실상 승산하고 다음 층으로의 입력 또는 최종 층으로의 입력이 될 출력을 생성하기 위해 출력 라인(소스 라인 또는 비트 라인)마다 가산한다. 승산 및 가산 함수를 수행함으로써, VMM 어레이(33)는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 그의 인-시츄 메모리 계산으로 인해 전력 효율적이다.
VMM 어레이(33)의 출력은 차동 합산기(합산 연산 증폭기 또는 합산 전류 미러와 같은)(38)에 공급되며, 그 콘볼루션에 대한 단일 값을 생성하기 위해 비휘발성 메모리 셀 어레이(33)의 출력을 합산한다. 차동 합산기(38)는 양의 가중치 및 음의 가중치 입력 둘 모두의 합산을 수행하여 단일 값을 출력하도록 배열된다.
이어서 차동 합산기(38)의 합산된 출력 값은 출력을 정류하는 활성화 함수 회로(39)에 공급된다. 활성화 함수 회로(39)는 시그모이드, tanh, ReLU 함수, 또는 임의의 다른 비-선형 함수를 제공할 수 있다. 활성화 함수 회로(39)의 정류된 출력 값은 다음 층(예를 들어, 도 8의 (C1))의 피처 맵의 요소가 되고, 이어서 다음 피처 맵 층 또는 최종 층을 생성하기 위해 다음 시냅스에 적용된다. 따라서, 이 예에서, VMM 어레이(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(룩업테이블)를 사용함으로써 행해질 수 있다. 입력 변환은 또한, 외부 아날로그 입력을 입력 VMM 시스템(32a)으로의 매핑된 아날로그 입력으로 변환하기 위한 아날로그-아날로그(A/A) 변환기에 의해 행해질 수 있다. 입력 변환은 또한 외부 디지털 입력을 입력 VMM 시스템(32a)에 대한 매핑된 디지털 펄스 또는 펄스로 변환하기 위해 디지털-디지털 펄스(D/P) 변환기에 의해 행해질 수 있다.
입력 VMM 시스템(32a)에 의해 생성된 출력은 다음 VMM 시스템(은닉 레벨 1)(32b)에 대한 입력으로서 제공되고, 이어서 다음 VMM 시스템(은닉 레벨 2)(32c)에 대한 입력으로서 제공되는 출력을 생성하는, 등등이다. VMM 시스템(32)의 다양한 층은 콘볼루션 신경망(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개 초과의 완전히 연결된 층을 포함할 수 있다는 것을 인식할 것이다.
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)의 플래시 메모리는 바람직하게는 하위 임계 영역에서 동작하도록 구성된다.
본 원에서 설명된 비휘발성 기준 메모리 셀 및 비휘발성 메모리 셀은 약한 반전으로 바이어싱되며:
Ids = Io * e (Vg- Vth)/nVt = w * Io * e (Vg)/nVt,
여기서 w = e (- Vth)/nVt
여기서 Ids는 드레인-소스 전류이고; Vg는 메모리 셀 상의 게이트 전압이고; Vth는 메모리 셀의 임계 전압이고; Vt는 열 전압 = k*T/q이며, 이때 k는 볼츠만 상수이고, T는 켈빈 단위의 온도이고, q는 전자 전하이고; n은 기울기 인자 = 1 + (Cdep/Cox)이며, 이때 Cdep = 공핍 층의 커패시턴스이고, Cox는 게이트 산화물 층의 커패시턴스이고; Io는 임계 전압과 동일한 게이트 전압에서의 메모리 셀 전류이고, Io는 (Wt/L)*u*Cox* (n-1) * Vt2에 비례하며, 여기서 u는 캐리어 이동도이고, Wt 및 L은 메모리 셀의, 각각, 폭 및 길이이다.
메모리 셀(예컨대, 기준 메모리 셀 또는 주변 메모리 셀)을 사용하는 I-V 로그 변환기 또는 입력 전류 Ids를 입력 전압 Vg로 변환하기 위한 트랜지스터에 대해:
Vg= n*Vt*log [Ids/wp*Io]
여기서, wp는 기준 또는 주변 메모리 셀의 w이다.
메모리 셀(예컨대, 기준 메모리 셀 또는 주변 메모리 셀)을 사용하는 I-V 로그 변환기 또는 입력 전류 Ids를 입력 전압 Vg로 변환하기 위한 트랜지스터에 대해:
Vg= n*Vt*log [Ids/wp*Io]
여기서, wp는 기준 또는 주변 메모리 셀의 w이다.
벡터 매트릭스 승산기(VMM) 어레이로서 사용되는 메모리 어레이에 대해, 출력 전류는:
Iout = wa * Io * e (Vg)/nVt, 즉
Iout = (wa/wp) * Iin = W * Iin이고
W = e (Vthp - Vtha)/nVt
Iin = wp * Io * e (Vg)/nVt
여기서, wa = 메모리 어레이 내의 각 메모리 셀의 w이다.
워드 라인 또는 제어 게이트는 입력 전압을 위해 메모리 셀에 대한 입력으로서 사용될 수 있다.
대안적으로, 본 원에 기술된 VMM 어레이의 비휘발성 메모리 셀은 선형 영역에서 동작하도록 구성될 수 있으며:
Ids = beta* (Vgs-Vth)*Vds이며; beta = u*Cox*Wt/L,
Wα (Vgs-Vth),
이는 선형 영역에서의 가중치(W)가 (Vgs-Vth)에 비례한다는 것을 의미함
워드 라인 또는 제어 게이트 또는 비트 라인 또는 소스 라인은 선형 영역에서 동작되는 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 메모리 셀에 대한 출력으로서 사용될 수 있다.
I-V 선형 변환기에 대해, 선형 영역에서 동작하는 메모리 셀(기준 메모리 셀 또는 주변 메모리 셀과 같은) 또는 트랜지스터 또는 저항기는 입력/출력 전류를 입력/출력 전압으로 선형적으로 변환하는 데 사용될 수 있다.
대안적으로, 본 원에 기술된 VMM 어레이의 메모리 셀은 포화 영역에서 동작하도록 구성될 수 있다:
Ids = ½ * beta* (Vgs-Vth)2; beta = u*Cox*Wt/L
Wα (Vgs-Vth)2, 이는 가중치(W)가 (Vgs-Vth)2에 비례한다는 것을 의미함
워드 라인, 제어 게이트, 또는 소거 게이트가 포화 영역에서 동작되는 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 출력 뉴런에 대한 출력으로서 사용될 수 있다.
대안적으로, 본 원에 기술된 VMM 어레이의 메모리 셀은 모든 영역 또는 이들(하위 임계, 선형, 또는 포화)의 조합에서 사용될 수 있다.
도 9의 VMM 어레이(33)에 대한 다른 실시예가, 본 원에 참조로 포함되는 미국 특허 출원 번호 제15/826,345호에 설명되어 있다. 그 출원에 설명되어 있는 바와 같이, 소스 라인 또는 비트 라인이 뉴런 출력(전류 합산 출력)으로서 사용될 수 있다.
도 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)는 2개의 목적을 담당한다. 첫째, 그것은 VMM 어레이(1200)에 의해 사용될 가중치를 그것의 각각의 메모리 셀 상에 저장한다. 둘째, 메모리 어레이(1203)는 입력(즉, 기준 어레이(1201 및 1202)이 워드 라인(WL0, WL1, WL2, 및 WL3)에 공급하기 위해 입력 전압으로 변환하는, 단자(BLR0, BLR1, BLR2, 및 BLR3)에 제공되는 전류 입력)를 메모리 어레이(1203)에 저장된 가중치와 사실상 승산하고, 이어서 모든 결과(메모리 셀 전류)를, 다음 층에 대한 입력 또는 최종 층에 대한 입력이 될 각각의 비트 라인(BL0 ~ BLN) 상의 출력을 생성하기 위해 가산한다. 승산 및 가산 함수를 수행함으로써, 메모리 어레이(1203)는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 전압 입력은 워드 라인(WL0, WL1, WL2, 및 WL3) 상에 제공되고, 출력은 판독(추론) 동작 동안 각각의 비트 라인(BL0 ~ BLN) 상에 나타난다. 비트 라인(BL0 ~ BLN) 각각의 상에 배치된 전류는 그 특정 비트 라인에 연결된 모든 비휘발성 메모리 셀로부터의 전류의 합산 함수를 수행한다.
표 5는 VMM 어레이(1200)에 대한 동작 전압을 도시한다. 표 내의 컬럼은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타내며, FLT는 플로팅, 즉 전압이 부과되지 않음을 나타낸다. 로우는 판독, 소거, 및 프로그램의 동작을 나타낸다.
[표 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)는 2개의 목적을 담당한다. 첫째, 그것은 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)는 단자(BLR0, BLR1, BLR2, 및 BLR3) 내의 입력 전류를 로우 방향으로 메모리 셀에 적용될 제어 게이트 전압(CG0, CG1, CG2, 및 CG3)으로(멀티플렉서(1514)을 통한 다이오드 연결된 기준 셀의 액션을 통해) 변환한다. 전류 출력(뉴런)은 비트 라인(BL0 ~ BLN)에 있으며, 각 비트 라인은 그 특정 비트 라인에 연결된 비휘발성 메모리 셀로부터의 모든 전류를 합산한다.
표 8은 VMM 어레이(1500)에 대한 동작 전압을 도시한다. 표 내의 컬럼은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 제어 게이트, 선택된 셀과 동일한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀과는 상이한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀에 대한 소거 게이트, 비선택된 셀에 대한 소거 게이트, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타낸다. 로우는 판독, 소거, 및 프로그램의 동작을 나타낸다.
[표 8]
도 16은 뉴런 VMM 어레이(1600)를 도시하며, 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(1600)에서, 입력(INPUT0. …, INPUTN)은 비트 라인(BL0,..BLN).상에서 각각 수신되며 출력(OUTPUT1, OUTPUT2, OUTPUT3, 및 OUTPUT4)은 소스 라인(SL0, SL1, SL2, 및 SL3) 상에 각각 생성된다.
도 17은 뉴런 VMM 어레이(1700)를 도시하며, 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, INPUT1, INPUT2, 및 INPUT3)은 각각 소스 라인(SL0, SL1, SL2, 및 SL3) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, …, BLN) 상에서 생성된다.
도 18는 뉴런 VMM 어레이(1800)를 도시하며, 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 각각 워드 라인(WL0, ..., WLM) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, …, BLN) 상에서 생성된다.
도 19는 뉴런 VMM 어레이(1900)를 도시하며, 도 3에 도시된 바와 같은 메모리 셀(310)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 각각 워드 라인(WL0, ..., WLM) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, …, BLN) 상에서 생성된다.
도 20은 뉴런 VMM 어레이(2000)를 도시하며, 도 4에 도시된 바와 같은 메모리 셀(410)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTn)은 각각 수직 제어 게이트 라인(CG0, ..., CGN) 상에서 수신되고, 출력(OUTPUT1 및 OUTPUT2)은 소스 라인(SL0 및 SL1) 상에서 생성된다.
도 21은 뉴런 VMM 어레이(2100)를 도시하며, 도 4에 도시된 바와 같은 메모리 셀(410)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTN)은, 각각 비트 라인(BL0, ..., BLN)에 결합되는, 각각 비트 라인 제어 게이트(2901-1, 2901-2, ..., 2901-(N-1), 및 2901-N)의 게이트 상에서 수신된다. 예시적인 출력(OUTPUT1 및 OUTPUT2)이 소스 라인(SL0 및 SL1) 상에서 생성된다.
도 22는, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(2200)를 도시한다. 이 예에서, 입력(INPUT0, …, INPUTM)은 워드 라인(WL0, …, WLM) 상에서 수신되고, 출력(OUTPUT0, …, OUTPUTN은 각각 비트 라인BL0, …, BLN) 상에서 생성된다.
도 23은, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(2300)를 도시한다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 제어 게이트 라인(CG0, ..., CGM) 상에서 수신된다. 출력(OUTPUT0, ..., OUTPUTN)은 각각 수직 소스 라인(SL0, ..., SLN) 상에서 생성되며, 각각의 소스 라인(SLi)은 컬럼 i 내의 모든 메모리 셀의 소스 라인에 결합된다.
도 24는, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 층과 다음 층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(2400)를 도시한다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 제어 게이트 라인(CG0, ..., CGM) 상에서 수신된다. 출력(OUTPUT0, ..., OUTPUTN)은 각각 수직 비트 라인(BL0, ..., BLN) 상에서 생성되며, 여기서 각각의 비트 라인(BLi)은 컬럼 i 내의 모든 메모리 셀의 비트 라인에 결합된다.
장단기 메모리
종래 기술은 장단기 메모리(LSTM)로 알려진 개념을 포함한다. LSTM은 종종 인공 신경망에서 사용된다. LSTM은 인공 신경망이 미리 결정된 임의적인 시간 간격에 걸쳐 정보를 기억하도록 그리고 후속 동작에서 그 정보를 사용하도록 허용한다. 종래의 LSTM은 셀, 입력 게이트, 출력 게이트 및 망각 게이트를 포함한다. 3개의 게이트는 셀 내 및 셀 외부로의 정보의 흐름 및 LSTM에서 정보가 기억되는 시간 간격을 조절한다. VMM은 LSTM에서 특히 유용하다.
도 25는 예시적인 LSTM(2500)를 도시한다. 이 예에서의 LSTM(2500)는 셀(2501, 2502, 2503, 및 2504)을 포함한다. 셀(2501)은 입력 벡터(x0)를 수신하고 출력 벡터(h0) 및 셀 상태 벡터(c0)를 생성한다. 셀(2502)은 입력 벡터(x1), 셀(2501)로부터의 출력 벡터(은닉 상태)(h0), 및 셀(2501)로부터의 셀 상태(c0)를 수신하고, 출력 벡터(h1) 및 셀 상태 벡터(c1)를 생성한다. 셀(2503)은 입력 벡터(x2), 셀(2502)로부터의 출력 벡터(은닉 상태)(h1), 및 셀(2502)로부터의 셀 상태(c1)를 수신하고, 출력 벡터(h2) 및 셀 상태 벡터(c2)를 생성한다. 셀(2504)은 입력 벡터(x3), 셀(2503)로부터의 출력 벡터(은닉 상태)(h2), 및 셀(2503)로부터의 셀 상태(c2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀이 사용될 수 있으며, 4개의 셀을 갖는 LSTM는 단지 예일 뿐이다.
도 26은 도 25의 셀(2501, 2502, 2503, 및 2504)에 대해 사용될 수 있는 LSTM 셀(2600)의 예시적인 구현을 도시한다. LSTM 셀(2600)은 입력 벡터(x(t)), 선행 셀로부터의 셀 상태 벡터(c(t-1)), 및 선행 셀로부터의 출력 벡터(h(t-1))를 수신하고, 셀 상태 벡터(c(t)) 및 출력 벡터(h(t))를 생성한다.
LSTM 셀(2600)은 시그모이드 함수 장치(2601, 2602, 및 2603)를 포함하며, 이들 각각은 얼마나 많은 입력 벡터 내의 각 구성 요소가 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. LSTM 셀(2600)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 장치(2604 및 2605), 2개의 벡터를 함께 승산하기 위한 승산기 장치(2606, 2607, 및 2608), 및 2개의 벡터를 함께 가산하기 위한 가산 장치(2609)를 포함한다. 출력 벡터(h(t))는 시스템 내의 다음 LSTM 셀에 제공될 수 있거나, 그것은 다른 목적을 위해 액세스될 수 있다.
도 27은 LSTM 셀(2600)의 구현의 예인 LSTM 셀(2700)을 도시한다. 독자의 편의를 위해, LSTM 셀(2600)로부터의 동일한 번호 부여가 LSTM 셀(2700)에 사용된다. 시그모이드 함수 장치(2601, 2602, 및 2603) 및 tanh 장치(2604) 각각은 다수의 VMM 어레이(2701) 및 활성화 회로 블록(2702)을 포함한다. 따라서, VMM 어레이가 소정의 신경망 시스템에서 사용되는 LSTM 셀에 특히 유용함을 알 수 있다.
LSTM 셀(2700)에 대한 대안(및 LSTM 셀(2600)의 구현예의 다른 예)이 도 28에 도시되어 있다. 도 28에서, 시그모이드 함수 장치(2601, 2602, 및 2603) 및 tanh 장치(2604)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이(2801) 및 활성화 함수 블록(2802))를 공유할 수 있다. LSTM 셀(2800)은, 또한, 2개의 벡터를 함께 승산하기 위한 승산기 장치(2803), 2개의 벡터를 함께 가산하기 위한 가산 장치(2808), tanh 장치(2605)(활성화 회로 블록(2802)을 포함함), i(t)가 시그모이드 함수 블록(2802)으로부터 출력될 때 값 i(t)를 저장하기 위한 레지스터(2807), 값 f(t) * c(t-1)를 그 값이 멀티플렉서(2810)를 통해 승산기 장치(2803)로부터 출력될 때 저장하기 위한 레지스터(2804), 값 i(t) * u(t)를 그 값이 멀티플렉서(2810)를 통해 승산기 장치(2803)로부터 출력될 때 저장하기 위한 레지스터(2805), 및 값 o(t) * c~(t)를 그 값이 멀티플렉서(2810)를 통해 승산기 장치(2803)로부터 출력될 때 저장하기 위한 레지스터(2806), 및 멀티플렉서(2809)를 포함한다.
LSTM 셀(2700)은 VMM 어레이(2701) 및 각각의 활성화 함수 블록(2702)의 다수의 세트를 포함하는 반면, LSTM 셀(2800)은 LSTM 셀(2800)의 실시예에서 다수의 층을 나타내는 데 사용되는 VMM 어레이(2801) 및 활성화 함수 블록(2802)의 하나의 세트만을 포함한다. LSTM 셀(2800)이 LSTM 셀(2700)과 비교하여 VMM 및 활성화 함수 블록을 위해 1/4만큼의 공간을 요구할 것이기 때문에, LSTM 셀(2800)은 LSTM(2700)보다 더 적은 공간을 요구할 것이다.
LSTM 유닛은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록과 같은, VMM 어레이 밖의 소정의 회로 블록에 의해 제공되는 기능을 요구한다는 것을 더 알 수 있다. 각 VMM 어레이에 대한 별개의 회로 블록을 제공하는 것은 반도체 장치 내의 상당한 양의 공간을 요구할 것이고 다소 비효율적일 것이다. 따라서, 하기에 설명되는 실시예는 VMM 어레이 자체 밖에서 요구되는 회로부를 최소화하려고 시도한다.
게이티드 순환 유닛
아날로그 VMM 구현예가 GRU(게이티드 회귀 유닛)에 활용될 수 있다. GRU는 회귀 인공 신경망에서의 게이팅 메케니즘이다. GRU는, GRU 셀이 일반적으로 LSTM 셀보다 더 적은 구성요소를 포함하는 것을 제외하고는, LSTM과 유사하다.
도 29는 예시적인 GRU(2900)를 도시한다. 이 예에서의 GRU(2900)는 셀(2901, 2902, 2903, 및 2904)을 포함한다. 셀(2901)은 입력 벡터(x0)를 수신하고 출력 벡터(h0)를 생성한다. 셀(2902)은 입력 벡터(x1), 셀(2901)로부터의 출력 벡터(h0)를 수신하고, 출력 벡터(h1)를 생성한다. 셀(2903)은 입력 벡터(x2) 및 셀(2902)로부터의 출력 벡터(은닉 상태)(h1)를 수신하고, 출력 벡터(h2)를 생성한다. 셀(2904)은 입력 벡터(x3) 및 셀(2903)로부터의 출력 벡터(은닉 상태)(h2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀이 사용될 수 있으며, 4개의 셀을 갖는 GRU는 단지 예일 뿐이다.
도 30는 도 29의 셀(2901, 2902, 2903, 및 2904)에 사용될 수 있는 GRU 셀(3000)의 예시적인 구현예를 도시한다. GRU 셀(3000)은 선행 GRU 셀로부터 입력 벡터(x(t)) 및 출력 벡터(h(t-1))를 수신하고, 출력 벡터(h(t))를 생성한다. GRU 셀(3000)은 시그모이드 함수 장치(3001 및 3002)를 포함하고, 이들 각각은 0과 1 사이의 수를 출력 벡터(h(t-1)) 및 입력 벡터(x(t))로부터의 구성요소에 적용한다. GRU 셀(3000)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 장치(3003), 2개의 벡터를 함께 승산하기 위한 복수의 승산기 장치(3004, 3005, 및 3006), 2개의 벡터를 함께 가산하기 위한 가산 장치(3007), 및 1로부터 입력을 감산하여 출력을 생성하기 위한 상보 장치(3008)를 포함한다.
도 31은 GRU 셀(3000)의 구현의 예인 GRU 셀(3100)을 도시한다. 독자의 편의를 위해, GRU 셀(3000)로부터의 동일한 번호 부여가 GRU 셀(3100)에 사용된다. 도 31에서 알 수 있는 바와 같이, 시그모이드 함수 장치(3001 및 3002) 및 tanh 장치(3003) 각각은 다수의 VMM 어레이(3101) 및 활성화 함수 블록(3102)을 포함한다. 따라서, VMM 어레이는 소정의 신경망 시스템에서 사용되는 GRU 셀에서 특히 유용하다는 것을 알 수 있다.
GRU 셀(3100)에 대한 대안(및 GRU 셀(3000)의 구현예의 다른 예)이 도 32에 도시되어 있다. 도 32에서, GRU 셀(3200)은 VMM 어레이(3201) 및 활성화 함수 블록(3202)을 활용하며, 시그모이드 함수로서 구성될 때, 얼마나 많은 입력 벡터 내의 각 구성요소가 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. 도 32에서, 시그모이드 함수 장치(3001 및 3002) 및 tanh 장치(3003)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이(3201) 및 활성화 함수 블록(3202))를 공유한다. GRU 셀(3200)은, 또한, 2개의 벡터를 함께 승산하기 위한 승산기 장치(3203), 2개의 벡터를 함께 가산하기 위한 가산 장치(3205), 1로부터 입력을 감산하여 출력을 생성하기 위한 상보 장치(3209), 멀티플렉서(3204), 값 h(t-1) * r(t)를 그 값이 멀티플렉서(3204)를 통해 승산기 장치(3203)로부터 출력될 때 유지하기 위한 레지스터(3206), 값 h(t-1) *z(t)를 그 값이 멀티플렉서(3204)를 통해 승산기 장치(3203)로부터 출력될 때 유지하기 위한 레지스터(3207), 및 값 h^(t) * (1-z(t))를 그 값이 멀티플렉서(3204)를 통해 승산기 장치(3203)로부터 출력될 때 유지하기 위한 레지스터(3208)를 포함한다.
GRU 셀(3100)은 VMM 어레이(3101) 및 활성화 함수 블록(3102)의 다수의 세트를 포함하는 반면, GRU 셀(3200)은 GRU 셀(3200)의 실시예에서 다수의 층을 나타내는 데 사용되는 VMM 어레이(3201) 및 활성화 함수 블록(3202)의 하나의 세트만을 포함한다. GRU 셀(3200)이 GRU 셀(3100)과 비교하여 VMM 및 활성화 함수 블록에 대해 1/3만큼의 공간을 요구할 것이기 때문에, GRU 셀(3200)은 GRU 셀(3100)보다 더 적은 공간을 필요로 할 것이다.
GRU를 이용하는 시스템은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 회로 블록 및 고전압 생성 블록과 같은, VMM 어레이 밖의 소정 회로 블록에 의해 제공되는 기능을 요구한다는 것을 더 알 수 있다. 각 VMM 어레이에 대한 별개의 회로 블록을 제공하는 것은 반도체 장치 내의 상당한 양의 공간을 요구할 것이고 다소 비효율적일 것이다. 따라서, 하기에 설명되는 실시예는 VMM 어레이 자체 밖에서 요구되는 회로부를 최소화하려고 시도한다.
VMM 어레이에 대한 입력은 아날로그 레벨, 이진 레벨, 타이밍 펄스, 또는 디지털 비트일 수 있고, 출력은 아날로그 레벨, 이진 레벨, 타이밍 펄스, 또는 디지털 비트일 수 있다(이러한 경우에 출력 ADC는 출력 아날로그 레벨 전류 또는 전압을 디지털 비트로 변환하는 데 필요하다).
VMM 어레이 내의 각각의 메모리 셀에 대해, 각각의 가중치(w)는 단일 메모리 셀에 의해 또는 차동 셀에 의해 또는 2개의 블렌드 메모리 셀(2개 이상의 셀의 평균)에 의해 구현될 수 있다. 차동 셀의 경우에, 2개의 메모리 셀은 차동 가중치(w= w+ - w-)로서 가중치(w)를 구현하는 데 필요하다. 2개의 블렌드 메모리 셀에서, 2개의 메모리 셀은 2개의 셀의 평균으로서 가중치(W)를 구현하는 데 필요하다.
VMM 내의 셀의 정밀 튜닝을 위한 실시예
도 33은 VMM 시스템(3300)의 블록 도면을 도시한다. VMM 시스템(3300)은 VMM 어레이(3301), 로우 디코더(3302), 고전압 디코더(3303), 컬럼 디코더(3304), 비트 라인 드라이버(3305), 입력 회로(3306), 출력 회로(3307), 제어 로직(3308), 및 바이어스 생성기(3309)를 포함한다. VMM 시스템(3300)은 전하 펌프(3311), 전하 펌프 조절기(3312), 및 고전압 레벨 생성기(3313)를 포함하는 고전압 생성 블록(3310)을 추가로 포함한다. VMM 시스템(3300)은 알고리즘 제어기(3314), 아날로그 회로부(3315), 제어 로직(3316), 및 테스트 제어 로직(3317)을 더 포함한다. 하기에 설명되는 시스템 및 방법은 VMM 시스템(3300)에서 구현될 수 있다.
입력 회로(3306)는 DAC(디지털-아날로그 변환기), DPC(디지털-펄스 변환기), AAC(전류-전압 변환기와 같은, 아날로그-아날로그 변환기), PAC(펄스-아날로그 레벨 변환기), 또는 임의의 다른 유형의 변환기와 같은 회로를 포함할 수 있다. 입력 회로(3306)는 정규화, 스케일링 함수, 또는 산술 함수를 구현할 수 있다. 입력 회로(3306)는 입력에 대한 온도 보상 함수를 구현할 수 있다. 입력 회로(3306)는 ReLU 또는 시그모이드 함수와 같은 활성화 함수를 구현할 수 있다.
출력 회로(3307)는 ADC(뉴런 아날로그 출력을 디지털 비트로 변환하기 위한, 아날로그-디지털 변환기), AAC(전류-전압 변환기와 같은, 아날로그-아날로그 변환기), APC(아날로그-펄스 변환기), 또는 임의의 다른 유형의 변환기와 같은 회로를 포함할 수 있다. 출력 회로(3307)는 ReLU 또는 시그모이드 함수와 같은 활성화 함수를 구현할 수 있다. 출력 회로(3307)는 뉴런 출력을 위한 정규화, 스케일링 함수, 또는 산술 함수를 구현할 수 있다. 출력 회로(3307)는, 하기에 설명되는 바와 같이, 뉴런 출력 또는 어레이 출력(비트 라인 출력과 같은)을 위한 온도 보상 함수를 구현할 수 있다.
도 34는 VMM 시스템(3300) 내의 알고리즘 제어기(3314)에 의해 실행될 수 있는 튜닝(메모리 셀을 타겟으로 프로그램밍 또는 소거함) 보정 방법(3400)을 도시한다. 튜닝 보정 방법(3400)은 셀 출력 및 셀 원래의 타겟으로부터 발생하는 최종 오차에 기초하여 적응 타겟을 생성한다. 방법은 전형적으로 수신되는 튜닝 커맨드에 응답하여 시작된다(단계(3401)). 선택된 셀 또는 선택된 셀의 그룹에 대한(프로그램/검증 알고리즘에 사용되는) 초기 전류 타겟(Itargetv(i))은 예를 들어 함수 또는 룩업 테이블을 사용하는 것에 의해 예측 타겟 모델을 사용하여 결정되고, 변수(DeltaError)는 0으로 설정된다(단계(3402)). 타겟 함수는, 사용되는 경우, 선택된 메모리 셀 또는 셀의 그룹의 I-V 프로그램 곡선에 기초할 것이다. 타겟 함수는 또한 셀이 나타내는 프로그램 장애의 정도(이는 섹터 내의 셀 어드레스 및 셀 레벨에 의존하며, 셀은 그것이 상대적으로 더 큰 장애를 나타내는 경우 억제 조건에서 더 많은 프로그램 시간을 겪으며, 더 높은 전류를 갖는 셀은 전형적으로 더 많은 장애를 가짐), 셀 대 셀 결합, 및 다양한 유형의 어레이 잡음과 같은 어레이 특성에 의해 야기되는 다양한 변동에 의존한다. 이러한 변동은 PVT(프로세스, 전압, 온도)에 걸쳐 실리콘 상에 특성화될 수 있다. 룩업 테이블은, 사용되는 경우, I-V 곡선 및 다양한 변동을 모방하도록 동일한 방식으로 특성화될 수 있다.
다음에, VMM 내의 모든 셀에 대해 소프트 소거가 수행되며, 이는 모든 셀을 중간의 약하게 소거된 레벨로 소거하며,각각의 셀이 판독 동작 동안 예를 들어 대략 3-5 ㎂의 전류를 흘리도록 할 것이다(단계(3403)). 소프트 소거는, 예를 들어, 중간 셀 전류에 도달할 때까지 증분 소거 펄스 전압을 셀에 적용함으로써 수행된다. 다음으로, 프로그래밍 동작(딥 프로그래밍 또는 타겟에 대한 코올스/미세 프로그래밍에 의한 것과 같은)이 <pA 전류 레벨 또는 등가의 0 가중치에 도달하기 위해 모든 미사용 셀에 대해 수행된다 (단계(3404)). 이어서 오차 결과에 기초한 타겟 조정(보정)이 수행된다. 셀이 프로그래밍에서 오버슈트를 겪었음을 의미하는, DeltaError > 0인 경우, Itargetv (i+1)은 Itarget + 세타* DeltaError로 설정되며, 세타는 예를 들어 1 또는 1에 가까운 수이다(단계(3405A)).
Itarget (i+1)은 또한 적절한 오차 타겟 조정/보정으로 이전의 Itarget(i)에 기초하여 조정될 수 있다. 셀 전류가 아직 타겟에 도달하지 않음을 의미하는, 셀이 프로그래밍에서 언더슈트를 겪었음을 의미하는, DeltaError < 0인 경우, Itargetv (i+1)은 이전의 타겟 Itargetv (i)로 설정된다(단계(3405B)).
다음에, 코올스 및/또는 미세 프로그램 및 검증 동작이 수행된다(단계(3406)). 정밀(미세) 프로그래밍 단계를 실행하기 전에 다수의 점진적으로 더 작은 코올스 타겟을 타겟화함으로써와 같은 프로그래밍을 가속하기 위해 다수의 적응 코올스 프로그래밍 방법이 사용될 수 있다. 적응 정밀 프로그래밍은 예를 들어 미세(정밀) 증분 프로그램 전압 펄스 또는 일정한 프로그램 타이밍 펄스로 행해진다. 코올스 프로그래밍 및 미세 프로그래밍을 수행하기 위한 시스템 및 방법의 예가 2019년 11월 11일자로 본 출원과 동일한 양수인에 의해 출원되고, 발명의 명칭이 "Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network"인 미국 가특허 출원 번호 제62/933,809호에 설명되며, 본 원에 참고로 포함된다.
선택된 셀에서 Icell이 측정된다(단계(3407)). 셀 전류는 예를 들어 전류계 회로에 의해 측정될 수 있다. 셀 전류는 예를 들어 ADC(아날로그-디지털 변환기) 회로에 의해 측정될 수 있으며, 이 경우에 출력은 디지털 비트에 의해 나타난다. 셀 전류는 예를 들어 I-V(전류-전압 변환기) 회로에 의해 측정될 수 있으며, 이 경우에 출력은 아날로그 전압에 의해 나타난다. DeltaError가 계산되며, 이는 Icell - Itarget이고, 이는 측정된 셀에서의 실제 전류(Icell)와 타겟 전류(Itarget) 사이의 차이를 나타낸다. | DeltaError | < DeltaMargin이면, 셀은 소정의 허용오차(DeltaMargin) 이내의 타겟 전류를 달성하였고, 방법은 종결된다(단계(3410)). | DeltaError | = abs (DeltaError) = DeltaError의 절댓값. 그렇지 않으면, 방법은 단계(3403)으로 복귀하고 단계를 다시 순차적으로 수행한다(단계(3410)).
도 35a 및 도 35b는 VMM 시스템(3300) 내의 알고리즘 제어기(3314)에 의해 실행될 수 있는 튜닝 보정 방법(3500)을 도시한다. 도 35a를 참조하면, 방법이 시작되며(단계(3501)), 이는 전형적으로 수신되는 튜닝 커맨드에 응답하여 발생한다. 전체 VMM 어레이가 소프트 소거 방법에 의한 것과 같이 소거된다(단계(3502)). 프로그래밍 동작(딥 프로그래밍 또는 타겟에 대한 코올스/미세 프로그래밍에 의한 것과 같은)이 <pA 레벨 또는 등가의 0 가중치에 도달하기 위해 모든 미사용 셀에 대해 수행된다(단계(3503)). VMM 어레이 내의 모든 셀은 코올스 및/또는 미세 프로그래밍 사이클을 사용하여 0.5~1.0 ㎂와 같은 중산 값으로 프로그래밍된다(단계(3504)) 코올스 프로그래밍 및 미세 프로그래밍을 수행하기 위한 시스템 및 방법의 예가 2019년 11월 11일자로 본 출원과 동일한 양수인에 의해 출원되고, 발명의 명칭이 "Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network"인 미국 가특허 출원 번호 제62/933,809호에 설명되며, 이는 본 원에 참고로 포함된다. 전술된 바와 같이 함수 또는 룩업 테이블을 사용하여 사용된 셀에 대해 예측 타겟이 설정된다(단계(3505)). 다음에, VMM 내의 각각의 섹터에 대해 섹터 튜닝 방법(3507)이 수행된다(단계(3506)). 섹터는 전형적으로 어레이 내의 2개 이상의 인접한 로우로 구성된다.
도 35b는 적응 타겟 섹터 튜닝 방법(3507)을 도시한다. 섹터 내의 모든 셀이 다음과 같은 개별 또는 조합 프로그램/검증(P/V) 방법을 사용하여 최종의 원하는 값(예를 들어, 1nA ~ 50nA)로 프로그래밍된다:(1) 코올스/미세/일정한 P/V 사이클; (2) CG+(CG 증분만) 또는 EG+(EG 증분만) 또는 상보적 CG+/EG-(CG 증분 및 EG 감분); 및 (3) 가장 깊게 프로그래밍된 셀 우선(셀을 그룹으로 그룹화하는 것을 의미하는 점진적 그룹화, 가장 낮은 전류를 갖는 셀을 가진 그룹이 우선 프로그래밍됨)(단계(3508A)). 다음에, Icell < Itarget인지에 대해 결정이 이루어진다. '예'인 경우, 방법은 단계(3509)로 진행한다. '아니오'인 경우, 방법은 단계(3508a)를 반복한다. 단계(3509)에서, DeltaError가 측정되며, 측정된 Icell - Itarget (i+1)과 동일하다(단계(3509)). | DeltaError | < DeltaMargin인지에 대해 결정이 이루어진다(단계(3510)). '예'인 경우, 방법이 완료된다(단계(3511)). '아니오'인 경우, 타겟 조정이 수행된다. 셀이 프로그래밍에서 오버슈트를 겪었음을 의미하는, DeltaError > 0인 경우, 타겟은 새로운 타겟을 Itarget + 세타* DeltaError로 설정함으로써 조정되며, 세타는 전형적으로 1이다(단계(3512A)). Itarget (i+1)은 또한 적절한 오차 타겟 조정/보정으로 이전의 Itarget(i)에 기초하여 조정될 수 있다. 셀이 아직 타겟에 도달하지 않았음을 의미하는, 셀이 프로그래밍에서 언더슈트를 겪었음을 의미하는, DeltaError <0인 경우, 타겟은 Itargetv (i+1) = Itargetv (i)를 의미하는, 이전의 타겟을 유지함으로써 조정된다(단계(3512B)). 섹터를 소프트 소거한다(단계(3513)). 섹터 내의 모든 셀을 중간 값으로 프로그래밍하고(단계(3514)), 단계(3509)로 복귀한다.
전형적인 신경망은 양의 가중치(w+) 및 음의 가중치(w-)를 가질 수 있으며 결합된 가중치 = w+ - w-. w+ 및 w-는 각각의 메모리 셀(Iw+ 및 Iw- 각각)에 의해 구현될 수 있고, 결합된 가중치(Iw = Iw+ - Iw-, 전류 차감)는 주변 회로 레벨에서(어레이 비트 라인 출력 회로를 사용함으로써) 수행될 수 있다. 따라서, 결합된 가중치에 대한 가중치 튜닝 실시예는 표 8에 도시된 바와 같이 예로서 w+ 셀 및 w- 셀 둘 모두를 동시에 튜닝하는 단계, w+ 셀만을 튜닝하는 단계, 또는 w- 셀만을 튜닝하는 단계를 포함할 수 있다. 튜닝 동작은 도 34/도 35a/도 35b에 대하여 이전에 설명된 프로그램/검증 및 오차 타겟 조정 방법을 사용하여 수행된다. 검증 동작은 결합된 가중치에 대해서만 수행될 수 있다(예를 들어, 결합된 가중치 전류를 측정/판독하지만, 개개의 양의 w+ 셀 전류 또는 w- 셀 전류, w+ 셀 전류만, 또는 w- 셀 전류만을 측정/판독하지 않음).
예를 들어, 3nA의 결합된 Iw에 대해, Iw+는 3nA일 수 있고 Iw- 는 0nA일 수 있고; 또는, Iw+는 13nA일 수 있고, Iw- 는 10nA일 수 있으며, 이는 양의 가중치(Iw+) 및 음의 가중치(Iw-) 둘 모두가 0이 아니다(예를 들어, 0은 깊게 프로그래밍된 셀을 나타낼 것이다). 이것은 소정 동작 조건에서 바람직할 수 있는데, 왜냐하면 그것은 Iw+ 및 Iw- 둘 모두가 잡음에 영향을 덜 받게 할 것이기 때문이다.
[표 8]
따라서, 화학식 w = (w+) - (w-)에 따른 차동 가중치 맵핑은 신경망에서 사용하기 위한 튜닝 값(w)을 저장하는 데 사용될 수 있다. w+ 및 w-의 맵핑은, 예를 들어, 각각의 값이 저장되는 시간에 w+ 및 w-에 오프셋 값을 포함함으로써, 신경망에서 VMM 어레이에서 발생하는 특정 문제에 대항하도록 최적화될 수 있다.
일 실시예에서, 가중치 맵핑은 RTN 잡음을 감소시키도록 최적화된다. 예를 들어, w의 원하는 값이 0nA인 경우(0 또는 사용되지 않은 메모리 셀), 하나의 가능한 맵핑은 (w+) = 0nA 및 (w-) =0nA이고, 다른 가능한 맵핑은 (w+) =30nA 및 (w-) = 30nA이고, 30nA는 여기서 저장 전에 각각의 w+ 및 w- 값에 가산되는 0이 아닌 오프셋 값의 예이다. 이러한 0이 아닌 오프셋 값을 포함하는 단계는 궁극적으로 더 많은 전력을 소비하고 튜닝 프로세스 동안 더 큰 부정확성을 초래할 것이지만, 그것은 임의의 잡음의 영향을 최소화할 것이다. 유사하게, w의 원하는 값이 1nA인 경우, 하나의 가능한 매핑은 (w+) = 1nA 및 (w-) = 0nA이고, 다른 가능한 매핑은 (w+) = 30nA 및 (w-) =29nA이다. 후자는 더 많은 전력을 소비할 것이고, 튜닝 프로세스 동안 더 큰 부정확성을 초래할 수 있지만, 임의의 잡음의 영향을 최소화할 것이다.
다른 실시예에서, 0 가중치(w)에 대해, w+ 및 w- 둘 모두는, 검증 동작을 위해 바이어스 오프셋 전압의 방법같은 것을 사용함으로써 대략 0인 것으로 튜닝될 수 있으며, 이제 설명될 것이다. 이 방법에서의 경우, w+ 및 w- 둘 모두는, 예를 들어, 추론(판독)에 사용되는 정상 CG 전압보다 더 높은 제어 게이트 전압(VCG)에서 5nA로 튜닝된다. 예를 들어, dVCG/Ir = 2 ㎷/1nA의 경우, VCG = 1.5V의 값이 추론에 사용되는 경우, 튜닝 알고리즘(가중치 튜닝을 위한 프로그램 검증 알고리즘)에서, VCG = 1.510V의 값이 0 가중치 셀이 5nA의 타겟에 도달하는 것을 검증하는 데 사용될 것이다. 추론 동작에서, VCG = 1.5V가 사용되기 때문에, 셀 전류는 1nA당 2 ㎷ 아래로 시프트되고, 따라서 검증 동작에서 5nA가 추론 동작에서 약 0nA가 된다.
다른 실시예에서, 0 가중치(w)에 대해, w+ 및 w- 둘 모두는, 검증 동작을 위해 바이어스 오프셋 전압의 음의 전류 튜닝 방법 같은 것을 사용함으로써 음의 전류를 갖도록 튜닝될 수 있으며, 이제 설명될 것이다. 이 경우에, w+ 및 w- 둘 모두는, 예를 들어, 추론(판독)에 사용되는 정상 CG 전압보다 더 높은 제어 게이트 전압(VCG)에서 -10nA로 튜닝된다. 예를 들어, dVCG/Ir = 2 ㎷/1nA의 경우, VCG = 1.5V의 값이 추론에 사용되는 경우, 튜닝 알고리즘(가중치 튜닝을 위한 프로그램 검증 알고리즘)에서, VCG = 1.530V이 0 가중치 셀이 5nA의 타겟에 도달하는 것을 검증하는 데 사용된다. 추론 동작에서, VCG = 1.5V가 사용되기 때문에, 셀 전류는 1nA당 2 ㎷ 아래로 시프트되고, 따라서 검증 동작에서 5nA가 추론 동작에서 약 - 10nA가 된다.
오프셋 바이어스 조건 또는 바이어스(전압 및/또는 전류 및/또는 타이밍 및/또는 온도) 시퀀스의 유사한 방법은, 상당한 잡음(RTN 잡음, 열 잡음, 또는 임의의 다른 잡음원)에 민감한 셀과 같은 비정상 비트를 검출하기 위해 테스트 스크리닝의 목적을 위해 사용될 수 있다. 기본적으로, 다른 바이어스 조건 또는 바이어스 시퀀스보다 메모리 셀로부터 더 큰 정도(잡음 감쇠 테스트)로 잡음을 감쇠시킴으로써 잡음을 더 잘 검출하는 데 사용될 수 있는 바이어스 조건 또는 바이어스 시퀀스가 존재한다. 예를 들어, 20nA 메모리 셀에 대해, 예를 들어, 테스트 스크리닝에서 제어 게이트 바이어스 전압을 변경하는 것과 같은 것으로써 이러한 셀에 대한 바이어스 조건을 변조함으로써 이 셀을 다른 조건 내로 배치하는 것으로부터 원하지 않는 동작을 검출하는 것이 유리할 수 있다. 예를 들어, 테스터 제한 또는 회로 제한으로 인해, 바이어스 조건을 변조함으로써 더 높은 전류 레벨에서 소음(RTN 잡음과 같은)에 민감한 비트/셀을 검출하는 것이 유리할 수 있다.
메모리 셀에 대한 RTN 잡음 스크리닝과 같은 잡음 레벨을 스크리닝 또는 검증하는 다른 방법은 메모리 셀 출력을 샘플링하는 것이다(출력을, 4/8/…/1024번과 같은, 여러 번 측정함과 같은 것으로써). 스크리닝 기준은 임의의 샘플 인스턴스의 값이 소정의 양만큼 샘플의 평균보다 더 크도록 한다. 다른 스크리닝 기준은 하나의 샘플의 값이 다음 샘플에 소정의 양만큼 더 크다는 것이다. 이런 기법이 2019년 11월 11일자로 출원되고, 발명의 명칭이 "Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network"인 미국 가특허 출원 번호 제62/933,809호에 설명되었으며, 본 원에 참조로 포함된다.
위의 가중치 할당 중 일부를 포함하는 메모리 셀의 가중치 튜닝(셀을 프로그램 또는 소거함)의 방법은, 셀을 소프트 소거하는 단계, 이어서 0 가중치 셀(위와 같은)을 프로그래밍하는 단계, 이어서, 전술된 바와 같은 노이즈 스크리닝으로 코올스 및 미세 및/또는 초미세 튜닝 알고리즘을 수행하는 단계를 포함할 수 있다. 코올스, 미세, 및 초미세 튜닝 알고리즘에 대한 기법이 2020년 3월 25일자로 출원되고 발명의 명칭이 "Precise Data Tuning Method and Apparatus for Analog Neural Memory in an Artificial Neural Network,"인 미국 특허 출원 번호 제16/829,757호의 명세서에 의해 이전에 개시되었고. 본 원에 참조로 포함된다.
다른 실시예에서, 잡음 기여는 바이어스 조건 시퀀싱을 포함하는 판독(추론) 또는 검증 방법을 사용함으로써 감소될 수 있다. 예를 들어, 판독 또는 검증 동작이 수행되기 전에 메모리 셀에 대해 축적 조건이 수행된다.
다른 실시예에서, 제어 게이트 상에 음의 전압 범위를 적용함으로써 잡음 기여가 감소될 수 있다. 다른 실시예에서, 0 가중치에 대한 어레이 및 사용되지 않은 셀에 대한 백그라운드 데이터는 변동을 감소시키기 위한 특정 패턴일 수 있다. 예를 들어, RTN 잡음 감소와 같은 잡음에 대해 높은 전류 레벨 백그라운드가 바람직할 수 있다. 예를 들어, 데이터 드리프트와 같은 잡음에 대해 낮은 전류 레벨 백그라운드가 바람직할 수 있다. 대기 또는 딥 파워 다운에서, 어레이는, 검증 동작 동안 사용되는 제어 게이트 전압에 비해 특정 전압 레벨을 사용하는 것과 같은 것으로써, 제어 게이트 전압을 변조함으로써 우측 조건에 놓이며, 제어 게이트 레벨이 대기 또는 딥 파워 다운 동작 동안 전류를 낮추거나 전류 레벨을 올리도록 설정될 수 있음을 의미한다.
다른 실시예에서, 판독 또는 검증 동작 동안 제어 게이트 상에 0V, 약 0V, 또는 낮은 바이어스 전압을 적용함으로써 판독 또는 검증 방법이 수행된다. 펄스 폭 변조 입력 또는 워드 라인에 적용된 아날로그 전압을 통하는 것과 같은 것으로, 로우 데이터 입력(활성화 값)을 수신하기 위해 제어 게이트 라인 대신에 워드라인이 사용된다.
또 다른 구현예에서, w에 대한 "0" 값(0 w 또는 사용되지 않은 셀)은 <10nA 또는 다른 미리 결정된 임계치로 정의될 수 있다. 즉, (w+) - (w-) < 10 nA이면, w는 "0"의 값으로 주어진다. 이는 w = 0인 때마다 더 큰 허용오차를 제공하고, 노이즈, 온도 변동, 또는 다른 힘에 의해 야기되는 부정확성에 대해 더 강건할 것이다.
다른 실시예에서, 가중치 맵핑은 온도 변동을 감소하도록 최적화된다. 예를 들어, w의 원하는 값이 5nA인 경우, 하나의 가능한 매핑은 (w+) = 5nA 및 (w-) =0nA이고, 다른 가능한 매핑은 (w+) =30nA 및 (w-) = 25nA이다. 후자는 더 많은 전력을 소비할 것이고, 튜닝 프로세스 동안 더 큰 부정확성을 초래할 수 있지만, 온도 변동을 최소화할 것이다.
다른 실시예에서, 가중치 맵핑은 뉴런에 대한 총 잡음 또는 온도 변동을 감소하도록 최적화된다. 예를 들어, 비트 라인 당 저장된 w+ 및 w- 값의 수(5nA는 30nA 내지 25nA 또는 50nA 내지 45nA 또는 80nA 내지 75nA로 구현될 수 있는 것과 같은)는 비트 라인 당 저장된 값의 수가 모든 비트 라인에 대해 대략적으로 동일하도록 모든 비트 라인 사이에서 균형을 이루도록 맵핑될 수 있다.
다른 실시예에서, 가중치 맵핑은 뉴런(비트 라인)에 대한 총 잡음을 감소하도록 최적화된다. 예를 들어, 비트 라인당 저장된 w+ 및 w- 값(셀)의 수는 뉴런(비트 라인) 내의 모든 가중치(셀)의 총 잡음 기여가 최적(최소한의 잡음을 갖는)이도록 모든 비트 라인 사이에서 균형을 이룰 수 있다.
[표 9a]
[표 9b]
표 9a 및 표 9b는 nA에서 16개의 레벨(상태)에 대한 예시적인 실시예를 도시한다. 메모리 셀이 도시된 바와 같이 16개의 레벨을 가질 수 있다는 것을 의미함. 화학식 Iw = Iw+ - Iw-에 따라, 표 9a는 w가 16개의 상이한 양의 값 중 하나일 수 있는 상황을 도시하며, 표 9b는 w가 16개의 상이한 음의 값 중 하나일 수 있는 상황을 도시한다. 도시된 바와 같은 전류 범위는 0 내지 80nA이다.
[표 10a]
[표 10b]
표 10a 및 표 10b는 레벨의 동적 총 전류 범위를 0 내지 80nA에서 40nA 내지 85nA로 압축하는 실시예를 도시한다.
표 10a/11a/12a에 대해, Iw-는 코올스 또는 미세 또는 초미세 튜닝 단계로 튜닝될 수 있고(예를 들어, Iw- 셀을 프로그래밍하고 검증함), Iw+는 미세 또는 초미세 단계로 튜닝될 수 있다(예를 들어, Iw = (Iw+ - Iw-)을 프로그래밍 및 검증하거나 Iw+ 셀만을 검증함). 표 10b/11b/12ab에 대해, Iw+는 코올스 또는 미세 또는 초미세 튜닝 단계로 튜닝될 수 있고(예를 들어, Iw+ 셀을 프로그래밍하고 검증함), Iw-는 미세 또는 초미세 단계로 튜닝될 수 있다(예를 들어, Iw = (Iw+ - Iw-)을 프로그래밍 및 검증하거나 Iw- 셀만을 검증함).
이는 도 11 및 도 12에 도시된 개념과 유사한 프로세스, 온도, 잡음, 동작 스트레스, 또는 동작 조건으로 인해 변동 및 불일치를 감소시키는 관점에서 유리하다.
표 10a 및 표 10b에 도시된 바와 같이, 표의 하부 절반 내의 값은 양의 양(오프셋 바이어스)만큼 시프트되어 이들 값의 총 범위가 표의 상부 절반과 대략적으로 동일하도록 한다. 오프셋은 최대 전류(레벨)의 절반과 대략적으로 동일하다.
[표 11a]
[표 11b]
표 11a 및 표 11b는 0 가중치(w = 0)가 오프셋 바이어스 값과 동일한, 도 10a 및 도 10b의 것과 유사한 실시예를 도시한다. 예는 하나의 오프셋 바이어스 값에 대한 가중치 값의 하나의 범위, 2개의 오프셋 값에 대한 가중치의 2개의 하위 범위를 도시한다.
[표 12a]
[표 12b]
[표 13]
표 13은 양의 가중치 및 음의 가중치에 대해 다양한 오프셋을 사용하는 실시예를 도시한다.
[표 14]
표 14는 양의 가중치 및 음의 가중치에 대해 공통 오프셋을 사용하는 실시예를 도시한다.
[표 15]
표 15는 가중치에 대해 증가하는 오프셋을 사용하는 실시예를 도시한다.
[표 16]
표 16는 가중치에 대해 감소하는 오프셋을 사용하는 실시예를 도시한다. 이는 또한 Iw+에 대한 일정한 오프셋을 도시한다. 이는 또한 Iw+에 대한 최대 일정한 값을 도시하며, 기본적으로 모든 가중치를 최대 값을 향해 시프트시킨다.
표 12a 및 표 12b는 도 10a 및 도 10b의 것과 유사한 실시예를 도시하며, 각각의 w+ 또는 w+ 값은 2개의 메모리 셀에 의해 구현되어 다른 절반만큼 대략적으로 동적 범위를 더 감소시킨다.
위의 실시예에서 제공되는 w+ 및 w-에 대한 값은 단지 예이며, 다른 값이 개시된 개념에 따라 사용될 수 있다는 것이 이해된다.
예를 들어, 오프셋 바이어스 값은 각각의 레벨에 대한 값을 시프트하기 위한 임의의 값일 수 있거나, 또는 그것은 모든 레벨에 대해 고정된 값일 수 있다. 사실상, 각각의 w는 차동 셀로서 구현되며, 프로세스, 온도, 잡음(RTN 또는 공급 잡음과 같은), 스트레스, 또는 동작 조건으로부터의 변동 또는 불일치를 최소화하는 데 효과적일 수 있다.
도 36a는 온도에 대한 데이터 동작(I-V 곡선)(예로서 하위 임계 영역에서의)을 예시하며, 도 36b는 VMM 시스템의 동작 동안 데이터 드리프트에 의해 생성되는 문제를 예시하고, 도 36c 및 도 36d는 데이터 드리프트를 위한 보상 및, 도 36c에 관해서는, 온도 변화를 위한 보상을 위한 블록을 예시한다.
도 36a는 동작 온도가 증가함에 따라, VMM 어레이 내의 임의의 주어진 선택된 비휘발성 메모리 셀에서의 감지된 전류가 하위-임계 영역에서 증가하거나, 포화 영역에서 감소하거나, 일반적으로 선형 영역에서 감소한다는, VMM 시스템의 알려진 특성을 도시한다.
도 36b는 시간 사용에 걸친 어레이 전류 분포(데이터 드리프트)를 도시하며, 그것은 VMM 어레이로부터의 집합적 출력(VMM 어레이 내의 모든 비트 라인으로부터의 전류의 합인)은 동작 시간 사용에 걸쳐 우측(또는, 활용되는 기술에 따라, 좌측)으로 시프트하는 것을 도시하며, 총 집합적 출력이 VMM 시스템의 수명 사용에 걸쳐 드리프트할 것임을 의미한다. 이러한 현상은 데이터 드리프트로 알려져 있는데, 왜냐하면 데이터가 사용 조건 및 환경 인자로 인한 저하로 인해 드리프트할 것이기 때문이다.
도 36c는 데이터 드리프트를 보상하기 위해 비트 라인 출력 회로(3610)의 출력에 보상 전류(iCOMP)를 주입하는 것을 포함할 수 있는 비트 라인 보상 회로(3600)를 도시한다. 비트 라인 보상 회로(3600)는 저항기 또는 커패시터 망에 기초하여 스케일러 회로에 의해 출력을 스케일링 업 또는 다운하는 것을 포함할 수 있다. 비트 라인 보상 회로(3600)는 그의 저항기 또는 커패시터 망에 기초하여 시프터 회로에 의해 출력을 시프팅하거나 오프셋팅하는 것을 포함할 수 있다.
도 36d는 데이터 드리프트의 양을 검출하는 데이터 드리프트 모니터(3620)를 도시한다. 그 정보는 이어서 iCOMP의 적절한 레벨이 선택될 수 있도록 비트 라인 보상 회로(3600)에 대한 입력으로서 사용된다.
도 37은 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(3700)를 도시한다. 비트 라인 보상 회로(3700)는, iCOMP를 함께 생성하는, 조정 가능한 전류원(3701) 및 조정 가능한 전류 원(3702)를 포함하며, iCOMP는 조정 가능한 전류원(3701)에 의해 생성된 전류에서 조정 가능한 전류원3701)에 의해 생성된 전류를 뺀 것과 동일하다.
도 38는 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(3700)를 도시한다. 비트 라인 보상 회로(3800)는 연산 증폭기(3801), 조정 가능한 저항기(3802), 및 조정 가능한 저항기(3803)를 포함한다. 연산 증폭기(3801)는 그의 비반전 단자에서 기준 전압(VREF) 및 그의 반전 단자에서 VINPUT을 수신하고, VINPUT은 도 36c에서의 비트 라인 출력 회로(3610)로부터 수신된 전압이며, VOUTPUT의 출력을 생성한다, VOUTPUT은 저항기(3803 및 3802)의 비율에 기초하여 데이터 드리프트를 보상하기 위한 VINPUT의 스케일링된 버전이다. 저항기(3803 및/또는 3802)의 값을 구성함으로써, VOUTPUT이 스케일링 업 또는 다운될 수 있다.
도 39는 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(3900)를 도시한다. 비트 라인 보상 회로(3900)는 연산 증폭기(3901), 전류원(3902), 스위치(3904), 및 조정 가능한 적분 출력 커패시터(3903)를 포함한다. 여기서, 전류원(3902)은 실제로 VMM 어레이 내의 단일 비트 라인 또는 다수의 비트 라인의 집합 상의 출력 전류이다(양의 가중치(w+)를 합산하기 위한 것, 및 음의 가중치(w-)를 합산하기 위한 것과 같은). 연산 증폭기(3901)는 그의 비반전 단자에서 기준 전압(VREF) 및 그의 반전 단자에서 VINPUT을 수신하며, VINPUT은 도 36c에서의 비트 라인 출력 회로(3610)로부터 수신된 전압이다. 비트 라인 보상 회로(3900)는 출력 전압(VOUTPUT)을 생성하기 위해 조정 가능한 적분 시간에서 커패시터(3903)를 가로지르는 전류(Ineu)를 적분하는 적분기로서의 역할을 하며, VOUTPUT = Ineu*적분 시간/ C3903이며, C3903은 커패시터(3903)의 값이다. 따라서, 출력 전압(VOUTPUT)은 (비트 라인)출력 전류(Ineu)에 비례하고, 적분 시간에 비례하고, 커패시터(3903)의 커패시턴스에 반비례한다. 비트 라인 보상 회로(3900)는 VOUTPUT의 출력을 생성하며, VOUTPUT의 값은 데이터 드리프트를 보상하기 위해 커패시터(3903)의 구성된 값 및/또는 적분 시간에 기초하여 스케일링된다.
도 40은 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(4000)를 도시한다. 비트 라인 보상 회로(4000)는 M:N 비를 갖는 전류 미러를 포함하며ICOMP = (M/N) * iinput를 의미한다. 전류 미러(4010)는 전류(iINPUT)를 수신하고, 그 전류를 미러링하고, 선택적으로 그 전류를 스케일링하여 iCOMP를 생성한다. 따라서, M 및/또는 N 파라미터를 구성함으로써, iCOMP는 상향 또는 하향 스케일링될 수 있다.
도 41은 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(4100)를 도시한다. 비트 라인 보상 회로(4100)는 연산 증폭기(4101), 조정 가능한 스케일링 저항기(4102), 조정 가능한 시프팅 저항기(4103), 및 조정 가능한 저항기(4104)를 포함한다. 연산 증폭기(4101)는 그의 비반전 단자에서 기준 전압(VREF) 및 그의 반전 단자에서 VIN을 수신한다. VIN은 VINPUT 및 Vshft에 응답하여 생성되며, VINPUT은 도 36c에서의 비트 라인 출력 회로(3610)로부터 수신된 전압이고, Vshft는 VINPUT과 VOUTPUT 사이의 시프트를 구현하도록 의도된 전압이다.
이에 따라, VOUTPUT은 데이터 드리프트를 보상하기 위한 VINPUT의 스케일링 및 시프트된 버전이다.
도 42는 도 36에서의 비트 라인 보상 회로(3600)의 실시예인 비트 라인 보상 회로(4200)를 도시한다. 비트 라인 보상 회로(4200)는 연산 증폭기(4201), 입력 전류원(Ineu)(4202), 전류 시프터(4203), 스위치(4205 및 4206), 및 조정 가능한 적분 출력 커패시터(4204)를 포함한다. 여기서, 전류원(4202)은 실제로 VMM 어레이 내의 단일 비트 라인 또는 다수의 비트 라인 상의 출력 전류(Ineu)이다. 연산 증폭기(4201)는 그의 비반전 단자에서 기준 전압(VREF) 및 그의 반전 단자에서 IIN을 수신하고, IIN은 Ineu 및 전류 시프터(4203)에 의해 출력된 전류의 합이며, VOUTPUT의 출력을 생성하며, VOUTPUT은 데이터 드리프트를 보상하기 위해 스케일링(커패시터(4204)에 기초하여)되고 시프트(Ishifter(4203)에 기초하여)된다.
도 43 내지 도 48은 프로그래밍 또는 판독 동작 동안 각각의 선택된 셀에 프로그래밍되거나 판독될 W 값을 제공하는 데 사용될 수 있는 다양한 회로를 도시한다.
도 43은, 함께 IOUT을 생성하는, 조정 가능한 전류원(4301) 및 조정 가능한 전류원(4302)을 포함하는 뉴런 출력 회로(4300)를 도시하며, IOUT은 조정 가능한 전류 원(4301)에 의해 생성된 전류(IW+)에서 조정 가능한 전류원(4302)에 의해 생성된 전류(IW-)를 뺀 것과 동일하다. 조정 가능한 전류(Iw+)(4301)는 양의 가중치를 구현하기 위한 셀 전류 또는 뉴런 전류(비트 라인 전류와 같은)의 스케일링된 전류이다. 조정 가능한 전류(Iw-)(4302)는 음의 가중치를 구현하기 위한 셀 전류 또는 뉴런 전류(비트 라인 전류와 같은)의 스케일링된 전류이다. 전류 스케일링은M:N 비율 전류 미러 회로, iout = (M/N) *Iin 같은 것에 의해 행해진다.
도 44는 조정 가능한 커패시터(4401), 제어 트랜지스터(4405), 스위치(4402), 스위치(4403), 및 M:N 전류 미러 회로같은 것에 의해 셀 전류 또는 (비트 라인)뉴런 전류의 스케일링된 출력 전류인 조정 가능한 전류원(4404)(Iw+)을 포함하는 뉴런 출력 회로(4400)를 도시한다. 트랜지스터(4405)는 예를 들어 전류(4404) 상에 고정된 바이어스 전압을 부과하는 데 사용된다. 회로(4404)는 VOUT을 생성하며, VOUT은 커패시터(4401)에 반비례하고, 조정 가능한 적분 시간(스위치(4403)가 닫히고 스위치(4402)가 개방된 시간)에 비례하고, 조정 가능한 전류원(4404)(IW+)에 의해 생성된 전류에 비례한다. VOUT은 V+ - ((Iw+*적분 시간)/C4401)과 동일하며, C4401은 커패시터(4401)의 값이다. 커패시터(4401)의 양의 단자(V+)는 양의 공급 전압에 연결되고, 커패시터(4401)의 음의 단자(V-)는 출력 전압(VOUT)에 연결된다.
도 45는 커패시터(4401), 및 M:N 전류 미러 회로같은 것에 의해 셀 전류 또는 (비트 라인)뉴런 전류의 스케일링된 전류인, 조정 가능한 전류원(4502)을 포함하는 뉴런 회로(4500)를 도시한다. 회로(4500)는 VOUT을 생성하며, VOUT은 커패시터(4401)에 반비례하고, 조정 가능한 적분 시간(스위치(4501)가 개방된 시간)에 비례하고, 조정 가능한 전류원(4502)(IWi)에 의해 생성된 전류에 비례한다. 커패시터(4401)는 그것이 전류(Iw+)를 적분하는 그의 동작을 완료한 후에 뉴런 출력 회로(44)로부터 재사용된다. 이어서 양 및 음의 단자(V+ 및 V-)는 양의 단자가 전류(Iw-)에 의해 비적분되는 출력 전압(VOUT)에 연결되는 뉴런 출력 회로(45)에서 교환된다. 음의 단자는 클램프 회로(미도시)에 의해 이전의 전압 값에서 유지된다. 사실상, 출력 회로(44)는 양의 가중치 구현을 위해 사용되고, 회로(45)는 결합된 가중치(Qw = Qw+ - Qw-)를 사실상 나타내는 커패시터(4401) 상의 최종 전하로 음의 가중치 구현을 위해 사용된다.
도 46은 조정 가능한 커패시터(4601), 스위치(4602), 제어 트랜지스터(4604), 및 조정 가능한 전류원(4603)을 포함하는 뉴런 회로(4600)를 도시한다. 회로(4600)는 VOUT을 생성하며, VOUT은 커패시터(4601)에 반비례하고, 조정 가능한 적분 시간(스위치(4602)가 개방된 시간)에 비례하고, 조정 가능한 전류원(4603)(IW-)에 의해 생성된 전류에 비례한다. 커패시터(4601)의 음의 단자(V-)는 예를 들어 접지와 동일하다. 커패시터(4601)의 양의 단자(V+)는 예를 들어 전류(Iw-)를 적분하기 전에 양의 전압으로 초기에 사전-충전된다. 뉴런 회로(4600)는 결합된 가중치(Qw = Qw+ - Qw-)를 구현하기 위해 뉴런 회로(4400)와 함께 뉴런 회로(4500) 대신에 사용될 수 있다.
도 47은 연산 증폭기(4703, 4706), 조정 가능한 전류원(Iw+(4701) 및 Iw-(4702)); 및 조정 가능한 저항기(4704, 4705, 및 4707)를 포함하는 뉴런 회로(4700)를 도시한다. 뉴런 회로(4700)는 VOUT을 생성하며, R4707 * (Iw+- Iw-)와 동일하다. 조정 가능한 저항기(4707)는 출력의 스케일링을 구현한다. 조정 가능한 전류원(Iw+(4701) 및 Iw-(4702))은 또한, M:N 비율 전류 미러 회로(Iout = (M/N)* Iin)와 같은 것에 의해 출력의 스케일링을 구현한다.
도 48은 연산 증폭기(4803, 및 4806); 스위치(4808, 및 4809); 조정 가능한 전류원(Iw-(4802) 및 Iw(4801)); 조정 가능한 커패시터(4804, 4805, 및 4807)를 포함하는 뉴런 회로(4800)를 도시한다. 뉴런 회로(4800)는 VOUT을 생성하며, (Iw+ - Iw-)에 비례하고, 적분 시간(스위치(4808 및 4809)이 개방된 시간)에 비례하고, 커패시터(4807)의 커패시턴스에 반비례한다. 조정 가능한 커패시터(4807)는 출력의 스케일링을 구현한다. 조정 가능한 전류 소스(Iw+(4801) 및 Iw-(4802))는 또한, M:N 비율 전류 미러 회로(Iout = (M/N)* Iin)와 같은 것에 의해 출력의 스케일링을 구현한다. 적분 시간은 또한 출력 스케일링을 조정할 수 있다.
도 49a, 도 49b, 및 도 49c는 도 33에서의 출력 회로(3307)와 같은 출력 회로의 블록 도면을 도시한다.
도 49a에서, 출력 회로(4901)는 아날로그 뉴런 출력(4910)을 직접 디지털화하여 디지털 출력 비트(4912)를 제공하는 데 사용되는 ADC 회로(4911)를 포함한다.
도 49b에서, 출력 회로(4902)는 뉴런 출력 회로(4921) 및 ADC(4911)를 포함한다. 뉴런 출력 회로(4921)는 뉴런 출력(4920)을 수신하고, ADC 회로(4911)에 의해 디지털화되기 전에 그것을 성형하여 출력(4912)을 생성한다. 뉴런 출력 회로(4921)는 이전에 설명된 바와 같은 정규화, 스케일링, 시프팅, 매핑, 산술 연산, 활성화, 및/또는 온도 보상을 위해 사용될 수 있다. ADC 회로는 직렬(슬로프 또는 램프 또는 카운팅) ADC, SAR ADC, 파이프 라인 ADC, 시그마 델타 ADC, 또는 임의의 유형의 ADC일 수 있다.
도 49c에서, 출력 회로는 뉴런 출력(4930)을 수신하는 뉴런 출력 회로(4921)를 포함하고, 변환기 회로(4931)는 뉴런 출력 회로(4921)로부터의 출력을 출력(4932)으로 변환하기 위한 것이다. 변환기(4931)는 ADC, AAC(전류-전압 변환기와 같은, 아날로그-아날로그 변환기), APC(아날로그-펄스 변환기), 또는 임의의 다른 유형의 변환기를 포함할 수 있다. ADC(4911) 또는 변환기(4931)는 예를 들어 비트 매핑(예를 들어, 양자화) 또는 클리핑(예를 들어, 클립 ReLU)에 의해 활성화 함수를 구현하는 데 사용될 수 있다. ADC(4911) 및 변환기(4931)는 더 낮은 또는 더 높은 정밀도(예를 들어, 더 낮은 또는 더 높은 비트 수), 더 낮은 또는 더 높은 성능(예를 들어, 더 느린 또는 더 빠른 속도) 등과 같은 것을 위해 구성될 수 있다.
스케일링 및 시프팅을 위한 다른 실시예는 어레이(비트 라인) 출력을 더 적은 또는 더 많은 비트 정밀도를 갖는 것과 같은 디지털 비트로 변환하고, 이어서 디지털 출력 비트를, 소정의 함수(예를 들어, 선형 또는 비선형, 압축, 비선형 활성화 등)에 따른 정규화(예를 들어, 12개의 비트를 8개의 비트로), 시프팅, 또는 리매핑 같은 것을 통해 조작하는 데 사용되는 ADC(아날로그-디지털) 변환 회로(직렬 ADC, SAR ADC, 파이프-라인 ADC, 슬로프 ADC 등)을 구성하는 것에 의한다. ADC 변환 회로의 예가 2019년 11월 11일자로 본 출원과 동일한 양수인에 의해 출원되고, 발명의 명칭이 "Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network"인 미국 가특허 출원 번호 제62/933,809호에 설명되며, 본 원에 참조로 포함된다.
표 9는 판독, 소거, 및 프로그램 동작을 수행하기 위한 대안적인 접근법을 도시한다:
[표 9]
판독 및 소거 동작은 이전의 표와 유사하다. 그러나 프로그래밍을 위한 2개의 방법은 파울러-노드하임(FN) 터널링 메케니즘에 의해 구현된다.
입력 상에서의 스케일링을 위한 실시예는 VMM의 소정의 수의 로우를 한 번에 활성화하고, 이어서 결과를 모두 결합하는 것과 같은 것에 의해 행해질 수 있다.
다른 실시예는 입력 전압을 스케일링하고, 정규화를 위해 출력을 적절히 재스케일링하는 것이다.
펄스폭 변조 입력을 스케일링하기 위한 다른 실시예는 펄스폭의 타이밍을 변조하는 것에 의한다. 이러한 기법의 예가 2019년 6월 21일자로 본 출원과 동일한 양수인에 의해 출원되고, 발명의 명칭이 "Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in Deep Learning Artificial Neural Network"인 미국 특허 출원 번호 제16/449,201호에 설명되며, 본 원에 참조로 포함된다.
입력을 스케일링하기 위한 다른 실시예는 예를 들어 8개의 비트 입력(IN7:0)에 대해 입력 이진 비트를 한 번에 하나씩 활성화하고, IN0, IN1, ..., IN7을 각각 순차적인 순서로 평가하고, 이어서 출력 결과를 적절한 이진 비트 가중치와 함께 결합하는 것에 의한다. 이러한 기법의 예가 2019년 6월 21일자로 본 출원과 동일한 양수인에 의해 출원되고, 발명의 명칭이 "Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in Deep Learning Artificial Neural Network"인 미국 특허 출원 번호 제16/449,201호에 설명되며, 본 원에 참조로 포함된다.
선택적으로, 전술된 실시예에서, 전류를 검증하거나 판독할 목적으로 셀 전류를 측정하는 것은 잡음(RTN 또는 임의의 무작위 잡음과 같은)의 영향을 감소시키기 위해서 그리고/또는 결함이 있고 여분의 비트에 의해 교체될 필요가 있는 임의의 이상치 비트를 검출하기 위해 평균 또는 다수의 측정을, 예를 들어 8 내지 32번 취하는 것일 수 있다.
본 원에 사용된 바와 같이, 용어 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)와 "간접적으로~ 상에"(중간 재료, 요소 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것에 유의하여야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "~에 장착되는"은 "직접적으로 ~에 장착되는"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 장착되는"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 결합되는"은 "직접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 연결시키는 어떠한 중간 재료 또는 요소도 사이에 없음)과 "간접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 연결시키는 중간 재료 또는 요소가 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료/요소도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료/요소를 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.
Claims (50)
- 신경망으로서,
비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하고, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 상기 어레이 내의 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w- 으로서 저장되며, w+ 및 w-는 0이 아닌 오프셋 값을 포함하는, 신경망. - 제1항에 있어서, 상기 0이 아닌 오프셋 값은 양의 값인, 신경망.
- 제1항에 있어서, 상기 0이 아닌 오프셋 값은 음의 값인, 신경망.
- 제1항에 있어서, 0의 값이 w에 대해 요구될 때, 상기 0이 아닌 오프셋 값과 동일한 값이 w+ 및 w-에 대해 저장되는, 신경망.
- 제1항에 있어서, w에 대한 0의 값이 미리 결정된 임계치 미만의 w에 대한 저장된 값에 의해 표시되는 때의, 신경망.
- 제5항에 있어서, 상기 미리 결정된 임계치는 5nA인, 신경망.
- 제5항에 있어서, 상기 미리 결정된 임계치는 10nA인, 신경망.
- 제1항에 있어서, 상기 비휘발성 메모리 셀은 분리형 게이트 플래시 메모리 셀인, 신경망.
- 제1항에 있어서, 상기 비휘발성 메모리 셀은 적층형 게이트 플래시 메모리 셀인, 신경망.
- 제1항에 있어서, 상기 제1 비휘발성 메모리 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w+로 튜닝되고, 상기 제2 비휘발성 메모리 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w-로 튜닝되는, 신경망.
- 신경망으로서,
비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 상기 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 화학식 w = (w+) - (w-)에 따라 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w-로서 저장되며, w+ 및 w- 값의 상기 저장은 상기 어레이 내의 모든 컬럼 사이에서 대략적으로 균일하게 확산되는, 신경망. - 제11항에 있어서, 상기 0이 아닌 오프셋 값은 양의 값인, 신경망.
- 제11항에 있어서, 상기 0이 아닌 오프셋 값은 음의 값인, 신경망.
- 제11항에 있어서, 0의 값이 w에 대해 요구될 때, 상기 0이 아닌 오프셋 값과 동일한 값이 w+ 및 w-에 대해 저장되는, 신경망.
- 제11항에 있어서, w에 대한 0의 값이 미리 결정된 임계치 미만의 w에 대한 저장된 값에 의해 표시되는 때의, 신경망.
- 제15항에 있어서, 상기 미리 결정된 임계치는 5nA인, 신경망.
- 제15항에 있어서, 상기 미리 결정된 임계치는 10nA인, 신경망.
- 제11항에 있어서, 상기 비휘발성 메모리 셀은 분리형-게이트 플래시 메모리 셀인, 신경망.
- 제11항에 있어서, 상기 비휘발성 메모리 셀은 적층형-게이트 플래시 메모리 셀인, 신경망.
- 제11항에 있어서, 상기 제1 비휘발성 메모리 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w+로 튜닝되고, 상기 제2 비휘발성 메모리 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 튜닝되는, 신경망.
- 벡터x매트릭스 승산 어레이 내의 비휘발성 메모리 셀의 차동 쌍에서 0 값을 프로그래밍, 검증, 및 판독하는 방법으로서,
상기 차동 쌍에서 제1 전류 값으로 제1 셀(w+)을 프로그래밍하는 단계;
제1 전압 더하기 바이어스 전압과 동일한 전압을 상기 제1 셀의 제어 게이트 단자에 적용함으로써 상기 제1 셀을 검증하는 단계;
상기 차동 쌍에서 상기 제1 전류 값으로 제2 셀(w-)을 프로그래밍하는 단계;
상기 제1 전압 더하기 상기 바이어스 전압과 동일한 전압을 상기 제2 셀의 제어 게이트 단자에 적용함으로써 상기 제2 셀을 검증하는 단계;
상기 제1 전압과 동일한 전압을 상기 제1 셀의 제어 게이트 단자에 적용함으로써 상기 제1 셀을 판독하는 단계;
상기 제1 전압과 동일한 전압을 상기 제2 셀의 제어 게이트 단자에 적용함으로써 상기 제2 셀을 판독하는 단계;
상기 화학식 w = (w+) - (w-)에 따라 값(w)을 계산하는 단계를 포함하는, 방법. - 제21항에 있어서, 상기 제1 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 튜닝되고, 상기 제2 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 튜닝되는, 방법.
- 벡터x매트릭스 승산 어레이 내의 비휘발성 메모리 셀의 차동 쌍에서 0 값을 프로그래밍, 검증, 및 판독하는 방법으로서,
상기 차동 쌍에서 제1 전류 값으로 제1 셀(w+)을 프로그래밍하는 단계;
제1 전압 더하기 바이어스 전압과 동일한 전압을 상기 제1 셀의 제어 게이트 단자에 적용함으로써 상기 제1 셀을 검증하는 단계;
상기 차동 쌍에서 상기 제1 전류 값으로 제2 셀(w-)을 프로그래밍하는 단계;
상기 제1 전압 더하기 상기 바이어스 전압과 동일한 전압을 상기 제2 셀의 제어 게이트 단자에 적용함으로써 상기 제2 셀을 검증하는 단계;
상기 제1 전압과 동일한 전압을 상기 제1 셀의 제어 게이트 단자에 적용함으로써 상기 제1 셀을 판독하는 단계;
상기 제1 전압과 동일한 전압을 상기 제2 셀의 제어 게이트 단자에 적용함으로써 상기 제2 셀을 판독하는 단계;
상기 화학식 w = (w+) - (w-)에 따라 값(w)을 계산하는 단계를 포함하는, 방법. - 제23항에 있어서, 상기 제1 전류 값은 양의 값인, 방법.
- 제23항에 있어서, 상기 제2 전류 값은 음의 값인, 방법.
- 제23항에 있어서, 상기 제1 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w+로 튜닝되고, 상기 제2 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w-로 튜닝되는, 방법.
- 신경망으로서,
비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 상기 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 상기 화학식 w = (w+) - (w-)에 따라 차동 쌍 w+ 및 w-로서 저장되고, w+는 상기 어레이 내의 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀에 차동 쌍으로서 저장되고, w-는 상기 어레이 내의 제3 비휘발성 메모리 셀 및 제4 비휘발성 메모리 셀에 차동 쌍으로서 저장되며, w+ 및 w- 값의 상기 저장은 바이어스 값에 의해 오프셋되는, 신경망. - 제27항에 있어서, 상기 모든 메모리 셀의 전류 범위는 바이어스 값을 나타내는 메모리 셀 전류 값에 의해 대략적으로 감소되는, 신경망.
- 제27항에 있어서, 상기 메모리 셀은 전류 레벨의 수를 갖는, 신경망.
- 제28항에 있어서, 바이어스 값은 메모리 셀 레벨의 수에 걸쳐 공유되는, 신경망.
- 제27항에 있어서, 상기 바이어스 값은 양의 값인, 신경망.
- 제27항에 있어서, 상기 바이어스 값은 음의 값인, 신경망.
- 제27항에 있어서, 0의 값이 w에 대해 요구될 때, 상기 바이어스 값과 동일한 값이 w+ 및 w-에 대해 저장되는, 신경망.
- 제27항에 있어서, w에 대한 0의 값은 미리 결정된 임계치 미만의 w에 대한 저장된 값에 의해 표시되는, 신경망.
- 제34항에 있어서, 상기 미리 결정된 임계치는 5nA인, 신경망.
- 제34항에 있어서, 상기 미리 결정된 임계치는 10nA인, 신경망.
- 제27항에 있어서, 상기 비휘발성 메모리 셀은 분리형-게이트 플래시 메모리 셀인, 신경망.
- 제27항에 있어서, 상기 비휘발성 메모리 셀은 적층형-게이트 플래시 메모리 셀인, 신경망.
- 제27항에 있어서, 상기 제1 및 제3 비휘발성 메모리 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 튜닝되고, 상기 제2 및 제4 비휘발성 메모리 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 튜닝되는, 신경망.
- 신경망으로서,
비휘발성 메모리 셀의 벡터x매트릭스 승산 어레이를 포함하며, 상기 어레이는 비휘발성 메모리 셀의 로우 및 컬럼으로 조직되며, 가중치 값(w)은 상기 화학식 w = (w+) - (w-)에 따라 제1 비휘발성 메모리 셀 및 제2 비휘발성 메모리 셀 내에 차동 쌍 w+ 및 w-로서 저장되며, w+에 대한 값은 0이 아닌 값의 제1 범위로부터 선택되고 w-에 대한 값은 0이 아닌 값의 제2 범위로부터 선택되며, 상기 제1 범위 및 상기 제2 범위는 중첩되지 않는, 신경망. - 제40항에 있어서, w에 대한 0의 값은 미리 결정된 임계치 미만의 w에 대한 저장된 값에 의해 표시되는, 신경망.
- 제41항에 있어서, 상기 미리 결정된 임계치는 5nA인, 신경망.
- 제41항에 있어서, 상기 미리 결정된 임계치는 10nA인, 신경망.
- 제40항에 있어서, 상기 비휘발성 메모리 셀은 분리형-게이트 플래시 메모리 셀인, 신경망.
- 제40항에 있어서, 상기 비휘발성 메모리 셀은 적층형-게이트 플래시 메모리 셀인, 신경망.
- 제40항에 있어서, 상기 제1 비휘발성 메모리 셀은 코올스, 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w+로 튜닝되고, 상기 제2 비휘발성 메모리 셀은 미세 또는 초미세 튜닝 알고리즘 중 하나 이상에 의해 w-로 튜닝되는, 신경망.
- 벡터x매트릭스 승산 어레이 내의 비휘발성 메모리 셀을 판독하는 방법으로서,
상기 어레이 내의 선택된 셀에 저장된 가중치를 판독하는 단계를 포함하며, 이는,
선택된 셀의 제어 게이트 단자에 0 전압 바이어스를 적용하는 단계; 및
상기 선택된 셀로부터의 전류 출력을 포함하는 뉴런 출력 전류를 감지하는 단계를 포함하는, 방법. - 제47항에 있어서, 상기 판독하는 단계는,
상기 선택된 셀의 워드 라인 단자에 전압을 적용하는 단계를 더 포함하는, 방법. - 벡터x매트릭스 승산 어레이 내의 비휘발성 메모리 셀을 동작시키는 방법으로서,
상기 비휘발성 메모리 셀의 제어 게이트에 제1 바이어스 전압을 적용함으로써 상기 비휘발성 메모리 셀을 판독하는 단계; 및
대기 동작, 딥 파워 다운 동작, 또는 테스트 동작 중 하나 이상 동안 상기 비휘발성 메모리 셀의 상기 제어 게이트에 제2 바이어스 전압을 적용하는 단계를 포함하는, 방법. - 제49항에 있어서,
상기 어레이 내의 백그라운드 데이터 패턴 또는 0 가중치 또는 비-사용자 셀을 변조하는 단계를 더 포함하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/185,725 US12124944B2 (en) | 2020-01-03 | 2021-02-25 | Precise data tuning method and apparatus for analog neural memory in an artificial neural network |
US17/185,725 | 2021-02-25 | ||
PCT/US2021/033122 WO2022182378A1 (en) | 2021-02-25 | 2021-05-19 | Precise data tuning method and apparatus for analog neural memory in an artificial neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230110361A true KR20230110361A (ko) | 2023-07-21 |
Family
ID=76355597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237021985A KR20230110361A (ko) | 2021-02-25 | 2021-05-19 | 인공 신경망 내의 아날로그 신경 메모리를 위한 정밀데이터 튜닝 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP4298557A1 (ko) |
JP (1) | JP2024508807A (ko) |
KR (1) | KR20230110361A (ko) |
CN (1) | CN116917905A (ko) |
TW (1) | TWI809663B (ko) |
WO (1) | WO2022182378A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024063792A1 (en) * | 2022-09-22 | 2024-03-28 | Silicon Storage Technology, Inc. | Verification method and system in artificial neural network array |
Family Cites Families (6)
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 |
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 |
US11308383B2 (en) | 2016-05-17 | 2022-04-19 | Silicon Storage Technology, Inc. | Deep learning neural network classifier using non-volatile memory array |
US10346740B2 (en) * | 2016-06-01 | 2019-07-09 | Kla-Tencor Corp. | Systems and methods incorporating a neural network and a forward physical model for semiconductor applications |
US10643119B2 (en) * | 2018-07-24 | 2020-05-05 | Sandisk Technologies Llc | Differential non-volatile memory cell for artificial neural network |
US20200364583A1 (en) * | 2019-05-14 | 2020-11-19 | Robert D. Pedersen | Iot sensor network artificial intelligence warning, control and monitoring systems and methods |
-
2021
- 2021-05-19 KR KR1020237021985A patent/KR20230110361A/ko unknown
- 2021-05-19 WO PCT/US2021/033122 patent/WO2022182378A1/en active Application Filing
- 2021-05-19 CN CN202180093494.0A patent/CN116917905A/zh active Pending
- 2021-05-19 JP JP2023551164A patent/JP2024508807A/ja active Pending
- 2021-05-19 EP EP21731362.6A patent/EP4298557A1/en active Pending
-
2022
- 2022-01-18 TW TW111101921A patent/TWI809663B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW202236170A (zh) | 2022-09-16 |
TWI809663B (zh) | 2023-07-21 |
JP2024508807A (ja) | 2024-02-28 |
EP4298557A1 (en) | 2024-01-03 |
WO2022182378A1 (en) | 2022-09-01 |
CN116917905A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7329151B2 (ja) | 人工ニューラルネットワーク内のアナログニューラルメモリにおけるデータドリフトを補償するための回路 | |
KR102457394B1 (ko) | 딥 러닝 신경 네트워크에서 사용되는 아날로그 신경 메모리 시스템 내의 메모리 셀들에 대한 온도 및 누설 보상 | |
KR20220143076A (ko) | 딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝 | |
KR20240135054A (ko) | 인공 신경망에서의 아날로그 신경 메모리를 위한 테스트 회로 및 방법들 | |
KR20240135678A (ko) | 인공 신경망에서의 아날로그 신경 메모리를 위한 테스트 회로 및 방법들 | |
KR20230110360A (ko) | 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를위한 디지털 출력 메케니즘 | |
KR20230110361A (ko) | 인공 신경망 내의 아날로그 신경 메모리를 위한 정밀데이터 튜닝 방법 및 장치 | |
US12124944B2 (en) | Precise data tuning method and apparatus for analog neural memory in an artificial neural network | |
US20240120009A1 (en) | Programming of a Selected Non-volatile Memory Cell by Changing Programming Pulse Characteristics | |
US20230154528A1 (en) | Determination of a bias voltage to apply to one or more memory cells in a neural network | |
US20240062813A1 (en) | Determination of a bias voltage to apply to one or more memory cells in a neural network | |
TW202431252A (zh) | 決定施加至神經網路中的一或多個記憶體胞元的偏壓 |