KR20210105428A - 사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법 - Google Patents

사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법 Download PDF

Info

Publication number
KR20210105428A
KR20210105428A KR1020217024841A KR20217024841A KR20210105428A KR 20210105428 A KR20210105428 A KR 20210105428A KR 1020217024841 A KR1020217024841 A KR 1020217024841A KR 20217024841 A KR20217024841 A KR 20217024841A KR 20210105428 A KR20210105428 A KR 20210105428A
Authority
KR
South Korea
Prior art keywords
memory cells
program states
program
frequency
read operation
Prior art date
Application number
KR1020217024841A
Other languages
English (en)
Other versions
KR102407363B1 (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 KR20210105428A publication Critical patent/KR20210105428A/ko
Application granted granted Critical
Publication of KR102407363B1 publication Critical patent/KR102407363B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0425Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • 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
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B69/00Erasable-and-programmable ROM [EPROM] devices not provided for in groups H10B41/00 - H10B63/00, e.g. ultraviolet erasable-and-programmable ROM [UVEPROM] devices

Landscapes

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

Abstract

메모리 디바이스는 복수의 메모리 셀들 및 제어기를 포함한다. 제어기는 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 메모리 셀들을 판독하도록 구성된다. 판독 동작 동안, 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극들이 복수의 메모리 셀들에서의 프로그램 상태들의 사용 빈도들에 기초하여 가변된다.

Description

사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법
관련 출원
본 출원은 2019년 4월 11일자로 출원된 미국 출원 제16/382,060호의 이익을 주장하며, 이는 2019년 1월 29일자로 출원된 미국 가출원 제62/798,417호에 대한 우선권을 주장한다.
기술분야
본 발명은 신경 네트워크(neural network)들에 관한 것이다.
인공 신경 네트워크들은 생물학적 신경 네트워크들(동물의 중추신경계, 특히 뇌)을 모방하는데, 이들은 다수의 입력에 의존할 수 있고 일반적으로 알려져 있는 기능들을 추정하거나 근사화하는 데 이용된다. 인공 신경 네트워크들은, 대체적으로, 서로 메시지들을 교환하는 상호연결된 "뉴런(neuron)들"의 층들을 포함한다. 도 1은 인공 신경 네트워크를 도시하며, 여기서 원들은 뉴런들의 층들 또는 입력들을 나타낸다. 연접부들(시냅스(synapse)들로 지칭됨)은 화살표들로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치들을 갖는다. 이는 신경망들을 입력들에 적응시키고 학습할 수 있게 한다. 전형적으로, 신경 네트워크들은 다수의 입력들의 층을 포함한다. 전형적으로 뉴런들의 하나 이상의 중간 층들, 및 신경 네트워크의 출력을 제공하는 뉴런들의 출력 층이 있다. 각각의 레벨의 뉴런들은 개별적으로 또는 집합적으로 시냅스들로부터의 수신된 데이터에 기초하여 결정을 행한다.
고성능 정보 프로세싱을 위한 인공 신경 네트워크들의 개발에서의 주요 과제들 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 신경 네트워크들은 매우 많은 수의 시냅스들에 의존하여, 뉴런들 사이의 높은 연결성, 즉 매우 높은 계산 병렬성(computational parallelism)을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터들 또는 특수 그래픽 프로세싱 유닛 클러스터들로 달성될 수 있다. 그러나, 고비용에 더하여, 이들 접근법들은 또한, 그들이 주로 저정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 네트워크(biological network)들과 비교하여 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로들이 인공 신경 네트워크들에 사용되어 왔지만, 대부분의 CMOS 구현된 시냅스들은 많은 수의 뉴런들 및 시냅스들이 주어지면 너무 부피가 커졌다.
전술한 문제들 및 요구들은 복수의 메모리 셀들 및 제어기를 포함하는 메모리 디바이스에 의해 해소된다. 제어기는 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 메모리 셀들을 판독하도록 구성되고, 판독 동작 동안, 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극(separation)들이 복수의 메모리 셀들에서의 프로그램 상태들의 사용 빈도들에 기초하여 가변된다.
신경 네트워크 디바이스는, 제1 복수의 입력들을 수신하도록 그리고 그로부터 제1 복수의 출력들을 생성하도록 구성된 제1 복수의 시냅스들을 포함한다. 제1 복수의 시냅스들은 복수의 메모리 셀들 및 제어기를 포함한다. 제어기는 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 메모리 셀들을 판독하도록 구성되고, 판독 동작 동안, 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극들이 복수의 메모리 셀들에서의 프로그램 상태들의 사용 빈도들에 기초하여 가변된다. 복수의 메모리 셀들은 제1 복수의 입력들 및 복수의 프로그램 상태들에 기초하여 제1 복수의 출력들을 생성하도록 구성된다. 제1 복수의 뉴런들이 제1 복수의 출력들을 수신하도록 구성된다.
메모리 셀들을 프로그래밍하는 방법은, 복수의 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하는 단계, 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 메모리 셀들을 판독하는 단계, 복수의 메모리 셀들에서의 프로그램 상태들 각각에 대한 사용 빈도를 결정하는 단계, 및 프로그램 상태들 각각에 대해, 프로그램 상태에 대한 결정된 사용 빈도에 기초하여 판독 동작 동안 프로그램 상태와 프로그램 상태들 중 인접한 프로그램 상태 사이의 간극을 설정하는 단계를 포함한다.
신경 네트워크 디바이스는 제1 및 제2 복수의 시냅스들 및 제1 및 제2 복수의 뉴런들을 포함한다. 제1 복수의 시냅스들은 제1 복수의 입력들을 수신하도록 그리고 그로부터 제1 복수의 출력들을 생성하도록 구성되고, 제1 복수의 시냅스들은 복수의 제1 메모리 셀들 및 제어기를 포함하고, 제어기는 제1 메모리 셀들 각각을 복수의 제1 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록 그리고 제1 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 제1 메모리 셀들을 판독하도록 구성된다. 복수의 제1 메모리 셀들은 제1 복수의 입력들 및 복수의 제1 프로그램 상태들에 기초하여 제1 복수의 출력들을 생성하도록 구성된다. 제1 복수의 뉴런들은 제1 복수의 출력들을 수신하도록 구성된다. 제2 복수의 시냅스들은 제1 복수의 뉴런들로부터 제2 복수의 입력들을 수신하도록 그리고 그로부터 제2 복수의 출력들을 생성하도록 구성된다. 제2 복수의 시냅스들은 복수의 제2 메모리 셀들을 포함하고, 제어기는 제2 메모리 셀들 각각을 복수의 제2 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고 제2 메모리 셀들에 대한 제2 인가된 전압들의 제2 판독 동작을 이용하여 제2 메모리 셀들을 판독하도록 구성된다. 복수의 제2 메모리 셀들은 제2 복수의 입력들 및 복수의 제2 프로그램 상태들에 기초하여 제2 복수의 출력들을 생성하도록 구성된다. 제2 복수의 뉴런들은 제2 복수의 출력들을 수신하도록 구성된다. 여기서, 신경 네트워크 디바이스는 추가로, 하기들 중 적어도 하나에 의해 특징지어진다:
복수의 제1 프로그램 상태들의 총 수가 복수의 제2 프로그램 상태들의 총 수와는 상이한 것,
복수의 제1 프로그램 상태들의 총 수가 단지 2개이고 복수의 제2 프로그램 상태들의 총 수가 2개 초과이거나, 또는 복수의 제1 프로그램 상태들의 총 수가 2개 초과이고 복수의 제2 프로그램 상태들의 총 수가 단지 2개인 것,
제1 메모리 셀들은 휘발성이고 제2 메모리 셀들은 비휘발성이거나, 또는 제1 메모리 셀들은 비휘발성이고 제2 메모리 셀들은 휘발성인 것,
제1 메모리 셀들 및 제2 메모리 셀들은 비휘발성인 것,
제어기는 제1 판독 동작을 임계치 초과에서 그리고 제2 판독 동작을 임계치 미만에서 수행하거나, 또는 제1 판독 동작을 임계치 미만에서 그리고 제2 판독 동작을 임계치 초과에서 수행하도록 구성되는 것, 및
제어기는 제1 판독 동작 및 제2 판독 동작을 임계치 초과에서 수행하거나, 또는 제1 판독 동작 및 제2 판독 동작을 임계치 미만에서 수행하도록 구성되는 것.
본 발명의 다른 목적들 및 특징들이 명세서, 청구범위 및 첨부 도면의 검토에 의해 명백해질 것이다.
도 1은 인공 신경 네트워크를 도시하는 도면이다.
도 2는 종래의 2-게이트 비휘발성 메모리 셀의 측단면도이다.
도 3은 도 2의 메모리 셀에 대한 종래의 어레이 아키텍처를 도시한 도면이다.
도 4는 종래의 2-게이트 비휘발성 메모리 셀의 측단면도이다.
도 5는 도 4의 메모리 셀에 대한 종래의 어레이 아키텍처를 도시한 도면이다.
도 6은 종래의 4-게이트 비휘발성 메모리 셀의 측단면도이다.
도 7은 도 6의 메모리 셀에 대한 종래의 어레이 아키텍처를 도시한 도면이다.
도 8a는 균일하게 이격된 신경 네트워크 가중치 레벨 할당들을 도시한 도면이다.
도 8b는 불균일하게 이격된 신경 네트워크 가중치 레벨 할당들을 도시한 도면이다.
도 9는 양방향 튜닝 알고리즘을 도시한 흐름도이다.
도 10은 전류 비교를 이용한 가중치 맵핑을 도시한 블록도이다.
도 11은 전압 비교를 이용한 가중치 맵핑을 도시한 블록도이다.
도 12는 비휘발성 메모리 어레이를 활용하는 상이한 레벨들의 예시적인 신경 네트워크를 도시한 도면이다.
도 13은 벡터 승산기 매트릭스를 도시한 블록도이다.
도 14는 다양한 레벨들의 벡터 승산기 매트릭스를 도시한 블록도이다.
도 15는 2-게이트 메모리 셀들의 어레이의 제1 아키텍처를 도시한 개략도이다.
도 16은 2-게이트 메모리 셀들의 어레이의 제2 아키텍처를 도시한 개략도이다.
도 17은 2-게이트 메모리 셀들의 어레이의 제3 아키텍처를 도시한 개략도이다.
도 18은 2-게이트 메모리 셀들을 사용한 전류-전압 변환기를 도시한 개략도이다.
도 19는 4-게이트 메모리 셀들의 어레이의 제1 아키텍처를 도시한 개략도이다.
도 20은 4-게이트 메모리 셀들을 사용한 전류-전압 변환기를 도시한 개략도이다.
도 21은 4-게이트 메모리 셀들의 어레이의 제2 아키텍처를 도시한 개략도이다.
도 22는 4-게이트 메모리 셀들의 어레이의 제3 아키텍처를 도시한 개략도이다.
도 23은 4-게이트 메모리 셀들의 어레이의 제4 아키텍처를 도시한 개략도이다.
도 24는 4-게이트 메모리 셀들의 어레이의 제5 아키텍처를 도시한 개략도이다.
도 25는 3-게이트 비휘발성 메모리 셀의 측단면도이다.
도 26은 3-게이트 메모리 셀들의 어레이의 아키텍처를 도시한 개략도이다.
도 27은 3-게이트 비휘발성 메모리 셀의 측단면도이다.
도 28 내지 도 31은 도 27의 3-게이트 메모리 셀의 어레이들의 아키텍처들을 도시한 개략도들이다.
도 32는 2-게이트 비휘발성 메모리 셀의 측단면도이다.
도 33 내지 도 39는 도 32의 2-게이트 메모리 셀의 어레이들의 아키텍처들을 도시한 개략도들이다.
도 40, 도 42, 도 44 및 도 46은 프로그램 상태 레벨들의 함수로서의 사용 밀도를 도시한 그래프들이다.
도 41, 도 43, 도 45 및 도 47은 상이한 프로그램 상태 레벨 간극 스킴들을 도시한 도면들이다.
도 48은 메모리 어레이(들)의 동작을 구현하기 위한 메모리 어레이(들)와 동일한 칩 상의 제어기를 도시한 도면이다.
본 발명의 인공 신경 네트워크들은 CMOS 기술과 비휘발성 메모리 어레이들의 조합을 이용한다. 디지털 비휘발성 메모리들이 잘 알려져 있다. 예를 들어, 미국 특허 제5,029,130호("'130 특허")는 분리형 게이트 비휘발성 메모리 셀들의 어레이를 개시하고 있다. '130 특허에 개시된 메모리 셀은 도 2에 메모리 셀(10)로서 도시되어 있다. 각각의 메모리 셀(10)은 반도체 기판(12) 내에 형성된 소스 및 드레인 영역들(14/16)을 포함하며, 채널 영역(18)이 그들 사이에 있다. 플로팅 게이트(20)가 드레인 영역(16)의 일부분 위에, 그리고 채널 영역(18)의 제1 부분 위에 형성되고 그로부터 절연된다(그리고 그의 전도율을 제어한다). 제어 게이트(22)(즉, 제2, 채널 제어 게이트)는 채널 영역(18)의 제2 부분 위에 배치되며 그로부터 절연되는(그리고 그의 전도율을 제어하는) 제1 부분(22b), 및 플로팅 게이트(20) 위로 그리고 그 위에서 연장되는 제2 부분(22c)을 갖는다. 플로팅 게이트(20) 및 제어 게이트(22)는 게이트 산화물(26)에 의해 기판(12)으로부터 절연된다.
메모리 셀(10)은 제어 게이트(22) 상에 높은 포지티브 전압을 배치함으로써 소거되는데(여기서 전자들이 플로팅 게이트(20)로부터 제거됨), 이는 플로팅 게이트(20) 상의 전자들이 파울러-노드하임 터널링(Fowler-Nordheim tunneling)을 통해 중간 절연체(24)를 통과하여 플로팅 게이트(20)로부터 제어 게이트(22)로 터널링하게 한다.
메모리 셀(10)은 제어 게이트(22) 상에 포지티브 전압을, 그리고 드레인(16) 상에 포지티브 전압을 배치함으로써 프로그래밍된다(여기서 전자들이 플로팅 게이트(20) 상에 배치된다). 전자 전류가 소스(14)로부터 드레인(16)을 향해 흐를 것이다. 전자들은 그들이 제어 게이트(22)와 플로팅 게이트(20) 사이의 갭에 도달할 때 가속되고 가열될 것이다. 가열된 전자들 중 일부는 플로팅 게이트(20)로부터의 정전 인력으로 인해 게이트 산화물(26)을 통과하여 플로팅 게이트(20) 상으로 주입될 것이다.
메모리 셀(10)은 드레인(16) 및 제어 게이트(22) 상에 포지티브 판독 전압들을 배치함(이는 제어 게이트 아래의 채널 영역의 부분을 턴 온시킴)으로써 판독된다. 플로팅 게이트(20)가 포지티브로 대전되면(즉, 전자들이 소거되고 드레인(16) 상의 포지티브 전압에 용량성으로 커플링되면), 플로팅 게이트(20) 아래의 채널 영역(18)의 부분이 또한 턴 온되고, 전류가 채널 영역(18)을 가로질러 흐를 것이며, 이는 소거 또는 "1" 상태로 감지된다. 플로팅 게이트(20)가 네거티브로 대전되면(즉, 전자들로 프로그래밍되면), 플로팅 게이트(20) 아래의 채널 영역(18)의 부분은 대부분 또는 완전히 턴 오프되고, 전류가 채널 영역(18)을 가로질러 흐르지 않을 것이며(또는 흐름이 거의 없을 것이며), 이는 프로그래밍된 또는 "0" 상태로 감지된다.
메모리 셀(10)에 대한 종래의 어레이 아키텍처의 아키텍처가 도 3에 도시된다. 메모리 셀들(10)은 로우(row)들 및 컬럼(column)들로 배열된다. 각각의 컬럼에서, 메모리 셀들은 미러 방식으로 엔드-투-엔드(end to end)로 배열되므로, 그들은 메모리 셀들의 쌍들로서 형성되고, 메모리 셀들의 쌍들 각각은 공통 소스 영역(14)(S)을 공유하고, 메모리 셀 쌍들의 각각의 인접한 세트는 공통 드레인 영역(16)(D)을 공유한다. 임의의 주어진 로우의 메모리 셀들에 대한 모든 소스 영역들(14)은 소스 라인(14a)에 의해 함께 전기적으로 접속된다. 임의의 주어진 컬럼의 메모리 셀들에 대한 모든 드레인 영역들(16)은 비트 라인(16a)에 의해 함께 전기적으로 접속된다. 임의의 주어진 로우의 메모리 셀들에 대한 모든 제어 게이트들(22)은 제어 게이트 라인(22a)에 의해 함께 전기적으로 접속된다. 따라서, 메모리 셀들이 개별적으로 프로그래밍 및 판독될 수 있지만, 메모리 셀 소거는 로우별로 수행된다(메모리 셀들의 각각의 로우는 제어 게이트 라인(22a) 상에의 고전압의 인가에 의해 함께 소거된다). 특정 메모리 셀이 소거되어야 하는 경우, 동일한 로우의 모든 메모리 셀들이 또한 소거된다.
당업자는, 소스와 드레인이 상호 교환가능할 수 있으며, 여기서 플로팅 게이트(20)가 도 4에 도시된 바와 같이 드레인(16) 대신에 소스(14) 위에서 부분적으로 연장될 수 있다는 것을 이해한다. 도 5는 메모리 셀들(10), 소스 라인들(14a), 비트 라인들(16a), 및 제어 게이트 라인들(22a)을 포함하는 대응하는 메모리 셀 아키텍처를 가장 잘 도시한다. 도면들로부터 명백한 바와 같이, 동일한 로우의 메모리 셀들(10)은 동일한 소스 라인(14a) 및 동일한 제어 게이트 라인(22a)을 공유하는 반면, 동일한 컬럼의 모든 셀들의 드레인 영역들은 동일한 비트 라인(16a)에 전기적으로 접속된다. 어레이 설계는 디지털 애플리케이션들에 대해 최적화되며, 예컨대, 선택된 제어 게이트 라인(22a) 및 소스 라인(14a)에 각각 1.6 V 및 7.6 V를 인가하고 선택된 비트 라인(16a)을 접지시킴으로써, 선택된 셀들의 개별 프로그래밍을 허용한다. 동일한 쌍의 비선택된 메모리 셀을 교란시키는 것은 비선택된 비트 라인들(16a) 상에 2 볼트 초과의 전압을 인가하고 나머지 라인들을 접지시킴으로써 회피된다. 메모리 셀들(10)은 개별적으로 소거될 수 없는데, 그 이유는 소거의 원인이 되는 프로세스(플로팅 게이트(20)로부터 제어 게이트(22)로의 전자들의 파울러-노드하임 터널링)가 드레인 전압(즉, 동일한 소스 라인(14a)을 공유하는 로우 방향으로의 2개의 인접한 셀들에 대해 상이할 수 있는 유일한 전압)에 의해서만 약하게 영향을 받기 때문이다. 동작 전압들의 비제한적인 예는 하기를 포함할 수 있다:
[표 1]
Figure pct00001
판독 1은 셀 전류가 비트 라인 상에서 나오는 판독 모드이다. 판독 2는 셀 전류가 소스 라인 상에서 나오는 판독 모드이다.
2개 초과의 게이트들을 갖는 분리형 게이트 메모리 셀들이 또한 알려져 있다. 예를 들어, 도 6에 도시된 바와 같이, 소스 영역(14), 드레인 영역(16), 채널 영역(18)의 제1 부분 위의 플로팅 게이트(20), 채널 영역(18)의 제2 부분 위의 선택 게이트(28)(즉, 제2, 채널 제어 게이트), 플로팅 게이트(20) 위의 제어 게이트(22), 및 소스 영역(14) 위의 소거 게이트(30)를 갖는 메모리 셀들이 알려져 있다(예를 들어, 미국 특허 제6,747,310호 참조). 여기서, 모든 게이트들은 플로팅 게이트(20)를 제외하고 비-플로팅 게이트들이며, 이는 그들이 전압원 또는 전류원에 전기적으로 접속되어 있거나 접속가능하다는 것을 의미한다. 프로그래밍은 채널 영역(18)으로부터의 가열된 전자들이 플로팅 게이트(20) 상으로 자신들을 주입하는 것에 의해 나타난다. 소거는 전자들이 플로팅 게이트(20)로부터 소거 게이트(30)로 터널링하는 것에 의해 나타난다.
4-게이트 메모리 셀 어레이에 대한 아키텍처는 도 7에 도시된 바와 같이 구성될 수 있다. 이 실시예에서, 각각의 수평 선택 게이트 라인(28a)은 그 로우의 메모리 셀들에 대한 모든 선택 게이트들(28)을 함께 전기적으로 접속시킨다. 각각의 수평 제어 게이트 라인(22a)은 그 로우의 메모리 셀들에 대한 모든 제어 게이트들(22)을 함께 전기적으로 접속시킨다. 각각의 수평 소스 라인(14a)은 소스 영역들(14)을 공유하는 2개의 로우들의 메모리 셀들에 대한 모든 소스 영역들(14)을 함께 전기적으로 접속시킨다. 각각의 비트 라인(16a)은 그 컬럼의 메모리 셀들에 대한 모든 드레인 영역들(16)을 함께 전기적으로 접속시킨다. 각각의 소거 게이트 라인(30a)은 소거 게이트(30)를 공유하는 2개의 로우들의 메모리 셀들에 대한 모든 소거 게이트들(30)을 함께 전기적으로 접속시킨다. 이전의 아키텍처에서와 같이, 개별 메모리 셀들은 독립적으로 프로그래밍 및 판독될 수 있다. 그러나, 메모리 셀들을 개별적으로 소거하는 방법은 없다. 소거는 소거 게이트 라인(30a) 상에 높은 포지티브 전압을 배치함으로써 수행되는데, 이는 동일한 소거 게이트 라인(30a)을 공유하는 양측 로우들 모두의 메모리 셀들의 동시 소거를 초래한다. 예시적인 비제한적인 동작 전압들은 하기 표 2의 것들을 포함할 수 있다(이 실시예에서, 선택 게이트 라인들(28a)은 워드 라인들(WL)로 지칭될 수 있다):
[표 2]
Figure pct00002
판독 1은 셀 전류가 비트 라인 상에서 나오는 판독 모드이다. 판독 2는 셀 전류가 소스 라인 상에서 나오는 판독 모드이다.
전술된 비휘발성 메모리 어레이들을 신경 네트워크들에서 활용하기 위해, 두 가지의 수정들이 이루어질 수 있다. 첫째, 라인들은, 하기에서 추가로 설명되는 바와 같이, 각각의 메모리 셀이 어레이 내의 다른 메모리 셀들의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그래밍, 소거, 및 판독될 수 있도록 재구성될 수 있다. 둘째, 메모리 셀들의 연속적인(아날로그식) 프로그래밍이 제공될 수 있다. 구체적으로, 어레이 내의 각각의 메모리 셀들의 메모리 또는 프로그램 상태(즉, 플로팅 게이트 상의 전자들의 수에 의해 반영되는 바와 같은 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀들의 교란을 최소화시킨 상태로, 완전 소거 상태로부터 완전 프로그래밍된 상태로 연속적으로 변경될 수 있고, 그 역으로도 가능하다. 이것은 셀 저장소가 유사하거나 또는 적어도, 많은 개별 값들 중 하나를 저장할 수 있음을 의미하는데, 이는 메모리 어레이 내의 모든 셀들의 매우 정밀하고 개별적인 튜닝을 허용하고, 메모리 어레이를 신경 네트워크의 시냅스 가중치들에 대한 미세 튜닝 조정을 저장하고 행하는 데 이상적이 되게 한다.
메모리 셀 프로그래밍 및 저장
메모리 셀들에 저장된 바와 같은 신경 네트워크 가중치 레벨 할당들은 도 8a에 도시된 바와 같이 균일하게 이격될 수 있거나, 또는 도 8b에 도시된 바와 같이 불균일하게 이격될 수 있다. 비휘발성 메모리 셀들의 프로그래밍은 도 9에 도시된 것과 같은 양방향 튜닝 알고리즘을 이용하여 구현될 수 있다. Icell은 프로그래밍되는 타깃 셀의 판독 전류이고, Itarget은 셀이 이상적으로 프로그래밍될 때의 바람직한 판독 전류이다. 타깃 셀 판독 전류(Icell)는 판독되고(스텝 1), 타깃 판독 전류(Itarget)와 비교된다(스텝 2). 타깃 셀 판독 전류(Icell)가 타깃 판독 전류(Itarget)보다 큰 경우, 프로그래밍 튜닝 프로세스가 수행되어(스텝 3), 플로팅 게이트(20) 상의 전자들의 수를 증가시키는데(여기서, 제어 게이트(22) 상의 바람직한 초기 및 증분 프로그래밍 전압(VCG)을 결정하기 위해 룩업 테이블 또는 실리콘 기반 근사화 함수가 사용될 수 있음)(스텝 3a, 스텝 3b), 이는 필요에 따라 반복될 수 있다(스텝 3c). 타깃 셀 판독 전류(Icell)가 타깃 판독 전류(Itarget)보다 작은 경우, 소거 튜닝 프로세스가 수행되어(스텝 4), 플로팅 게이트(20) 상의 전자들의 수를 감소시키는데(여기서, 소거 게이트(30) 상의 바람직한 초기 및 증분 소거 전압(VEG)을 결정하기 위해 룩업 테이블 또는 실리콘 기반 근사화 함수가 사용될 수 있음)(스텝 4a, 스텝 4b), 이는 필요에 따라 반복될 수 있다(스텝 4c). 프로그래밍 튜닝 프로세스가 타깃 판독 전류를 오버슈팅하는 경우, (허용가능한 델타 값 내에서) 타깃 판독 전류가 달성될 때까지, 소거 튜닝 프로세스가 수행되고(스텝 3d, 그리고 스텝 4a로 시작됨) 그 역도 가능하다(스텝 4d, 그리고 스텝 3a로 시작됨).
비휘발성 메모리 셀들의 프로그래밍은, 그 대신, 프로그래밍 튜닝을 이용하는 단방향 튜닝 알고리즘을 이용하여 구현될 수 있다. 이 알고리즘에서, 메모리 셀(10)은 초기에 완전히 소거되고, 이어서 도 9의 프로그래밍 튜닝 스텝 3a 내지 스텝 3c는 타깃 메모리 셀(10)의 판독 전류가 타깃 임계값에 도달할 때까지 수행된다. 대안으로, 비휘발성 메모리 셀들의 튜닝은 소거 튜닝을 이용하는 단방향 튜닝 알고리즘을 이용하여 구현될 수 있다. 이러한 접근법에서, 메모리 셀은 초기에 완전히 프로그래밍되고, 이어서 도 9의 소거 튜닝 스텝 4a 내지 스텝 4c는 타깃 메모리 셀의 판독 전류가 타깃 임계값에 도달할 때까지 수행된다.
도 10은 전류 비교를 이용한 가중치 맵핑을 도시한 도면이다. 가중치 디지털 비트들(예컨대, 메모리 셀에 대한 타깃 디지털 가중치를 나타내는, 각각의 시냅스에 대해 5 비트 가중치)은 비트들을 전압(Vout)(예컨대, 64개 전압 레벨 - 5 비트)으로 변환하는 디지털-아날로그 변환기(DAC)(40)에 입력된다. Vout은 전압-전류 변환기(V/I Conv)(42)에 의해 전류(Iout)(예컨대, 64개 전류 레벨 - 5 비트)로 변환된다. 전류(Iout)는 전류 비교기(IComp)(44)에 공급된다. 프로그래밍 또는 소거 알고리즘 인에이블링이 메모리 셀(10)에 입력된다(예를 들어, 소거: EG 전압을 증분시킴; 또는 프로그래밍: CG 전압을 증분시킴). 출력 메모리 셀 전류(Icellout)(즉, 판독 동작으로부터의 것)는 전류 비교기(IComp)(44)에 공급된다. 전류 비교기(IComp)(44)는 메모리 셀 전류(Icellout)를 가중치 디지털 비트들로부터 도출된 전류(Iout)와 비교하여, 메모리 셀(10)에 저장된 가중치를 나타내는 신호를 생성한다.
도 11은 전압 비교를 이용한 가중치 맵핑을 도시한 도면이다. 가중치 디지털 비트들(예컨대, 각각의 시냅스에 대한 5 비트 가중치)은 디지털-아날로그 변환기(DAC)(40)에 입력되고, 이 디지털-아날로그 변환기(DAC)는 비트를 전압(Vout)(예컨대, 64개 전압 레벨 - 5 비트)으로 변환한다. Vout은 전압 비교기(VComp)(46)에 공급된다. 프로그래밍 또는 소거 알고리즘 인에이블링이 메모리 셀(10)에 입력된다(예를 들어, 소거: EG 전압을 증분시킴; 또는 프로그래밍: CG 전압을 증분시킴). 출력 메모리 셀 전류(Icellout)는 전압(V2out)(예컨대, 64개 전압 레벨 - 5 비트)으로의 변환을 위해 전류-전압 변환기(I/V Conv)(48)에 공급된다. 전압(V2out)은 전압 비교기(VComp)(46)에 공급된다. 전압 비교기(VComp)(46)는 전압들(Vout, V2out)을 비교하여, 메모리 셀(10)에 저장된 가중치를 나타내는 신호를 생성한다.
가중치 맵핑 비교를 위한 다른 실시예는 메모리 셀의 입력 가중치 및/또는 출력에 대해 가변 펄스 폭들(즉, 펄스 폭은 가중치의 값에 비례하거나 반비례함)을 사용한다. 가중치 맵핑 비교를 위한 또 다른 실시예에서, 메모리 셀의 입력 가중치 및/또는 출력에 대해 디지털 펄스들(예컨대, 클록들로부터 생성되는 펄스들, 여기서 펄스들의 수는 가중치의 값에 비례하거나 반비례함)이 사용된다.
비휘발성 메모리 셀 어레이를 채용한 신경 네트워크
도 12는 비휘발성 메모리 어레이를 활용하는 신경 네트워크의 비제한적인 예를 개념적으로 도시한다. 이 예는 얼굴 인식 애플리케이션에 대해 비휘발성 메모리 어레이 신경망을 사용하지만, 비휘발성 메모리 어레이 기반 신경 네트워크를 사용하여 임의의 다른 적절한 애플리케이션이 구현될 수 있다. 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 필터가 하나의 픽셀씩 우측으로 시프트되고(즉, 우측에 3개 픽셀들의 컬럼을 추가하고, 좌측에서 3개 픽셀들의 컬럼을 뺌), 이에 의해 이러한 새롭게 위치된 필터에서의 9개 픽셀 값들이 시냅스들(CB1)에 제공되고, 이에 의해 이들은 동일한 가중치들과 승산되고, 제2 단일 출력 값이 연관된 시냅스에 의해 결정된다. 이러한 프로세스는, 3개의 모든 색상들에 대해 그리고 모든 비트들(정밀도 값들)에 대해, 3x3 필터가 전체 32x32 픽셀 이미지를 가로질러서 스캔할 때까지 계속된다. 이어서, 프로세스는, 층(C1)의 모든 피처 맵들이 계산될 때까지, 가중치들의 상이한 세트들을 사용하여 반복되어 C1의 상이한 피처 맵을 생성한다.
층(C1)에서, 본 예에서, 각각 30x30 픽셀들을 갖는 16개의 피처 맵들이 있다. 각각의 픽셀은 입력들과 커널을 승산한 것으로부터 추출된 새로운 피처 픽셀이고, 따라서 각각의 피처 맵은 2차원 어레이이고, 따라서, 이러한 예에서, 시냅스들(CB1)은 2차원 어레이들의 16개 층들을 구성한다(본 명세서에서 언급된 뉴런 층들 및 어레이들은 반드시 물리적 관계인 것이 아니라 논리적 관계임 - 즉, 어레이들은 반드시 물리적으로 2차원 어레이들로 배향되지는 않음 - 에 유념한다). 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) 내의 모든 뉴런은 층(S2) 내의 모든 맵에 연결된다. 층(C3)에는, 64개의 뉴런들이 있다. 층(C3)으로부터 출력 층(S3)으로 가는 시냅스들(CB4)은 S3을 C3에 완전히 연결한다. 층(S3)에서의 출력은 10개의 뉴런들을 포함하고, 여기서 최고 출력 뉴런이 클래스를 결정한다. 이러한 출력은, 예를 들어, 원래의 이미지의 콘텐츠의 식별 또는 분류를 나타낼 수 있다.
시냅스들의 각각의 레벨은 비휘발성 메모리 셀들의 어레이 또는 그들의 어레이의 일부분을 사용하여 구현된다. 도 13은, 비휘발성 메모리 셀들을 포함하고 입력 층과 다음 층 사이의 시냅스들로서 활용되는 벡터 매트릭스 승산(vector-by-matrix multiplication, VMM) 어레이의 블록도이다. 구체적으로, VMM 어레이(32)는 비휘발성 메모리 셀들의 어레이(33), 소거 게이트 및 워드 라인 게이트 디코더(34), 제어 게이트 디코더(35), 비트 라인 디코더(36) 및 소스 라인 디코더(37)를 포함하며, 이들은 메모리 셀 어레이(33)에 대한 입력들을 디코딩한다. 이 예에서의 소스 라인 디코더(37)는 또한 메모리 셀 어레이(33)의 출력을 디코딩한다. 대안적으로, 비트 라인 디코더(36)는 비휘발성 메모리 셀 어레이(33)의 출력을 디코딩할 수 있다. 메모리 어레이는 두 가지 목적들을 담당한다. 첫째, 그것은 VMM 어레이(32)에 의해 사용될 가중치들을 저장한다. 둘째, 메모리 셀 어레이는 입력들을 메모리 셀 어레이에 저장된 가중치들과 유효하게 승산하고 각각의 출력 라인을 따른 결과들을 함께 가산하여 출력을 생성하며, 이는 다음 층으로의 입력 또는 최종 층으로의 입력일 것이다. 승산 및 가산 기능을 수행함으로써, 메모리 어레이는 별개의 승산 및 가산 로직 회로들에 대한 필요성을 무효화하고, 또한 그의 인-시츄(in-situ) 메모리 계산으로 인해 전력 효율적이다.
메모리 셀 어레이의 출력은 단일 또는 차동 합산 회로(38)에 공급되며 이는 메모리 셀 어레이의 출력들을 합산하여 그 콘볼루션(convolution)에 대한 단일 값을 생성한다. 이어서 합산된 출력 값들은 출력을 정류하는 활성화 함수 회로(39)에 공급된다. 활성화 함수는 시그모이드(sigmoid), tanh 또는 ReLu 함수일 수 있다. 회로(39)로부터의 정류된 출력 값들은 다음 층(예를 들어, 위의 설명의 C1)으로서 피처 맵의 요소가 되고, 이어서 다음 시냅스에 적용되어 다음 피처 맵 층 또는 최종 층을 생성한다. 따라서, 이 예에서, 메모리 셀 어레이(33)는 복수의 시냅스들(이들은 이전 뉴런 층으로부터 또는 이미지 데이터베이스와 같은 입력 층으로부터 그들의 입력들을 수신함)을 구성하고, 합산 회로(38) 및 활성화 함수 회로(39)는 복수의 뉴런들을 구성한다.
도 14는 여기에서 VMM 어레이들(32a, 32b, 32c, 32d, 32e)로 표지된 VMM 어레이들(32)의 다수의 층들의 사용을 도시하는 블록도이다. 도 14에 도시된 바와 같이, Inputx로 표기된 입력은 디지털-아날로그 변환기(31)에 의해 디지털로부터 아날로그로 변환되고, 입력 VMM 어레이(32a)에 제공된다. 입력 VMM 어레이(32a)에 의해 생성된 출력은 다음 VMM 어레이(은닉 레벨(hidden level) 1)(32b)로의 입력으로서 제공되고, 다음 VMM 어레이로의 입력은 이어서 다음 VMM 어레이(은닉 레벨 2)(32c)로의 입력으로서 제공되는 출력을 생성하는, 등등이다. VMM 어레이(32)의 다양한 층들은 콘볼루션 신경 네트워크(convolutional neural network, CNN)의 시냅스들 및 뉴런들의 상이한 층들로서 기능한다. 각각의 VMM 어레이(32a, 32b, 32c, 32d, 32e)는 독립형의, 물리적 비휘발성 메모리 어레이일 수 있거나, 또는 다수의 VMM 어레이들이 동일한 물리적 비휘발성 메모리 어레이의 상이한 부분들을 이용할 수 있거나, 또는 다수의 VMM 어레이들이 동일한 물리적 비휘발성 메모리 어레이의 중첩 부분들을 이용할 수 있다. 도 14에 도시된 예는 5개의 층들(32a, 32b, 32c, 32d, 32e), 즉 하나의 입력 층(32a), 2개의 은닉 층들(32b, 32c), 및 2개의 완전 접속 층들(32d, 32e)을 포함한다. 당업자는, 이것이 단지 예시적인 것이고, 시스템은 대신에, 2개 초과의 은닉 층들 및 2개 초과의 완전 접속 층들을 포함할 수 있다는 것을 이해할 것이다.
도 15는 소스 합산 매트릭스 승산기로서 배열된 2-게이트 메모리 셀들의 어레이(즉, 도 4에 도시된 것과 같음)를 도시한다. 도 15의 어레이에 대한 다양한 게이트 및 영역 라인들은 도 5에서의 것과 동일하다(대응하는 구조물에 대해 동일한 요소 수들을 가짐). 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 소스 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vinn이며, 비트 라인들(16a) 상에 배치된다. 도 15의 어레이에 대한 매트릭스 출력들(Iout0...IoutN)은 소스 라인들(22a) 상에 생성된다. 각각의 출력(Iout)은, 로우 내의 모든 셀들에 대해, 입력 전류(I)와 셀 내에 저장된 가중치(W)의 곱의 합이다:
Figure pct00003
여기서, "i"는 메모리 셀이 존재하는 로우를 나타내고, "j"는 메모리 셀이 존재하는 컬럼을 나타낸다. 도 15에서 Vin0 내지 Vinn으로서 도시된 바와 같이, 입력 전압이 입력 전류 대신에 인가되는 경우에, 각각의 출력(Iout)은, 로우 내의 모든 셀들에 대해, 입력 전압과 셀 내에 저장된 가중치(W)의 곱의 합에 비례한다:
Figure pct00004
각각의 메모리 셀 로우는 그 로우에 있는 메모리 셀들에 저장된 가중치 값들의 합에 의해 지시된 출력 전류(Iout)로서 표현되는 합산된 가중치 값을 갖는 단일 뉴런으로서 작용한다. 임의의 주어진 뉴런의 출력은 전류의 형태이며, 이는 이어서, 다음 후속 VMM 어레이 스테이지에 대한 활성화 함수 회로에 의한 조정 후에 입력으로서 사용될 수 있다.
도 16은 드레인(예컨대, 메모리 어레이의 비트 라인) 합산 매트릭스 승산기로서 배열된 2-게이트 메모리 셀들(10)의 어레이(즉, 도 4에 도시된 것과 같음)의 다른 구성을 도시한다. 도 16의 어레이에 대한 라인들은 도 15의 어레이에서의 것과 동일하다. 그러나, 매트릭스 전압 입력들(Vin0...Vin3)이 소스 라인들(14a) 상에 배치되고, 매트릭스 출력들(Iout0...IoutN)이 비트 라인들(16a) 상에 생성된다(즉, 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다). 이전 실시예에서와 같이, 임의의 주어진 뉴런의 출력은 전류의 형태이며, 이는 이어서, 다음 후속 VMM 어레이 스테이지에 대한 활성화 함수 회로에 의해 조정된 후에 입력 전류로서 사용될 수 있다.
도 17은 드레인 합산 매트릭스 승산기로서 배열된 2-게이트 메모리 셀들의 어레이(즉, 도 4에 도시된 것과 같음)의 다른 구성을 도시한다. 도 17의 어레이에 대한 라인들은 도 15의 어레이에서의 것과 동일하다. 그러나, 매트릭스 전압 입력들(Vin0...Vin7)이 제어 게이트 라인들(22a) 상에 배치되고, 매트릭스 출력들(전류들)(Iout0...IoutN)이 비트 라인들(16a) 상에 생성된다(즉, 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다).
도 17에서, 입력들이 전압들이고 출력들이 전류들인 것을 고려하면, 제1 스테이지 이후의 각각의 후속 VMM 스테이지는, 바람직하게는, 이전의 VMM 스테이지로부터의 인입 전류들을 입력 전압들(Vin)로서 사용될 전압들로 변환하기 위한 회로부를 포함한다. 도 18은 그러한 전류-전압 변환 회로부의 일례를 도시하는데, 이는 후속 스테이지에의 적용을 위해 인입 전류들(Iin0...IinN)을 입력 전압들(Vin0..VinN)로 로그 변환하는 메모리 셀들의 수정된 로우이다. 본 명세서에 기술된 메모리 셀들은 하기와 같은 약 반전(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. 제어 게이트 라인(22a)은 입력 전압을 위한 메모리 셀에 대한 입력으로서 사용될 수 있으며, 이는 전류-전압 변환 동안 폐쇄되는 스위치들(BLR)에 의해 비트 라인들(16a)에 접속된다.
대안적으로, 본 명세서에 기술된 VMM 어레이들의 비휘발성 메모리 셀들은 선형 영역에서 동작하도록 구성될 수 있다:
Ids = beta* (Vgs-Vth)*Vds; beta = u*Cox*Wt/L,
여기서, 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 어레이들의 비휘발성 메모리 셀들은 모든 영역들 또는 이들의 조합(서브 임계, 선형, 또는 포화)에서 사용될 수 있다. 전술된 전류-전압 변환 회로들 또는 기법들 중 임의의 것이 본 명세서의 실시예들 중 임의의 것과 함께 사용될 수 있어서, 전류의 형태의 임의의 주어진 뉴런으로부터의 전류 출력이 다음 후속 VMM 어레이 스테이지에 대한 활성화 함수 회로에 의해 조정된 후에 입력으로서 사용될 수 있게 할 수 있다.
도 19는 드레인(비트 라인) 합산 매트릭스 승산기로서 배열된 4-게이트 메모리 셀들의 어레이(즉, 도 6에 도시된 것과 같음)의 구성을 도시한다. 도 19의 어레이에 대한 라인들은 도 7의 어레이에서의 것과 동일하다. 메모리 셀들 각각이 그 셀에 대해 적절한 가중치 값으로 프로그래밍된 후, 어레이는 드레인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 선택 게이트 라인들(28a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 비트 라인들(16a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다.
도 19에서, 입력들이 전압들이고 출력들이 전류인 것을 고려하면, 제1 스테이지 이후의 각각의 후속 VMM 스테이지는, 바람직하게는, 이전의 VMM 스테이지로부터의 인입 전류들을 입력 전압들(Vin)로서 사용될 전압들로 변환하기 위한 회로부를 포함한다. 도 20은 그러한 전류-전압 변환 회로부의 일례를 도시하는데, 이는 인입 전류들(Iin0...IinN)을 입력 전압들(Vin0..VinN)로 로그 변환하는 메모리 셀들의 수정된 로우이다. 유사하게, 선형 전류-전압 변환기가 인입 전류들(Iin0...IinN)을 입력 전압들(Vin0..VinN)로 선형적으로 변환하기 위해 선형 영역에서 동작되는 수정된 메모리 셀과 함께 사용될 수 있다. 도 20에 도시된 바와 같이, 선택 게이트 라인(28a)은 전류-전압 변환을 위해 스위치들(BLR)에 의해 비트 라인(16a)에 접속된다. 대안적으로, 제어 게이트 라인(22a)은 전류-전압 변환을 위해 비트 라인(16a)에 접속될 수 있다.
도 21은 드레인 합산 매트릭스 승산기로서 배열된 4-게이트 메모리 셀들의 어레이(즉, 도 6에 도시된 것과 같음)의 다른 구성을 도시한다. 도 21의 어레이에 대한 라인들은 도 7의 어레이에서의 것과 동일하다. 메모리 셀들 각각이 그 셀에 대해 적절한 가중치 값으로 프로그래밍된 후, 어레이는 드레인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 제어 게이트 라인들(22a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 비트 라인들(16a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다.
도 22는 소스 합산 매트릭스 승산기로서 배열된 4-게이트 메모리 셀들(10)의 어레이(즉, 도 6에 도시된 것과 같음)의 다른 구성을 도시한다. 도 22의 어레이에 대한 라인들은, 제어 게이트 라인들(22a)이 수평으로 대신에 수직으로 이어져서, 각각의 메모리 셀이 독립적으로 프로그래밍, 소거, 및 판독될 수 있다는 점을 제외하고는, 도 7의 어레이와 동일하다. 구체적으로, 메모리 셀들의 각각의 컬럼은 그 컬럼 내의 메모리 셀들의 모든 제어 게이트들(22)을 서로 접속시키는 제어 게이트 라인(22a)을 포함한다. 매트릭스 전압 입력들(Vin0...VinN)은 제어 게이트 라인들(22a) 상에 제공되고, 매트릭스 출력들(Iout0...Iout1)은 소스 라인들(14a) 상에 생성된다.
도 23은 소스 합산 매트릭스 승산기로서 배열된 4-게이트 메모리 셀들의 어레이(즉, 도 6에 도시된 것과 같음)의 다른 구성을 도시한다. 도 23의 어레이에 대한 라인들은 도 22의 어레이와 동일하다. 매트릭스 전압 입력들(Vin0...VinN)은 비트 라인들(16a) 상에 제공되고, 매트릭스 출력들(Iout0...Iout1)은 소스 라인들(14a) 상에 생성된다.
도 24는 소스 합산 매트릭스 승산기로서 배열된 4-게이트 메모리 셀들의 어레이(즉, 도 6에 도시된 것과 같음)의 다른 구성을 도시한다. 도 24의 어레이에 대한 라인들은, 각각의 비트 라인이, 비트 라인을 턴 온시키는 (즉, 비트 라인을 그의 전류원 또는 전압원에 커플링시키는) 스위치로서 작용하는 비트 라인 버퍼 트랜지스터(60)를 포함한다는 점을 제외하고는, 도 22의 어레이와 동일하다. 매트릭스 입력들(Vin0...VinN)은 트랜지스터들(60)의 게이트들에 제공되고, 매트릭스 출력들(Iout0...Iout1)은 소스 라인들(14a) 상에 제공된다. 이러한 구성의 이점은, 비트 라인들에 직접 입력들을 공급하는 대신에, 매트릭스 입력들이 전압들(이는 트랜지스터들(60)을 동작시킴)로서 공급될 수 있다는 것이다. 이는 정전압원이 비트 라인들에 (즉, 트랜지스터들(60)을 통해) 인가될 수 있게 하며, 이들은 트랜지스터들의 게이트들에 공급되는 입력 전압(Vin)에 응답하여 제공된다.
도 25 및 도 26은 드레인 합산 매트릭스 승산기로서 배열된 3-게이트 메모리 셀들의 어레이의 구성을 도시한다. 메모리 셀이 도 25에 도시되어 있으며, 소거 게이트가 없는 것을 제외하고는, 도 6의 것과 동일하다. 일 실시예에서, 셀 소거는 선택 게이트(28)에 포지티브 전압을 인가함으로써 수행되는데, 여기서 전자들은 플로팅 게이트(20)로부터 선택 게이트(28)로 터널링한다. 하기는 도 25의 3-게이트 메모리 셀에 대한 예시적이고 비제한적인 동작 전압들의 표이다.
[표 3]
Figure pct00005
판독 1은 셀 전류가 비트 라인 상에서 나오는 판독 모드이다. 판독 2는 셀 전류가 소스 라인 상에서 나오는 판독 모드이다.
메모리 셀들의 어레이에 대한 라인들은 도 26에 도시되어 있으며, (소거 게이트들이 없기 때문에) 소거 게이트 라인(30a)이 없고, 소스 라인들(14a)이 수평으로 대신에 수직으로 이어져서, 각각의 메모리 셀이 독립적으로 프로그래밍, 소거 및 판독될 수 있다는 점을 제외하고는, 도 19의 어레이에서의 것과 동일하다. 구체적으로, 메모리 셀들의 각각의 컬럼은 그 컬럼에 있는 메모리 셀들에 대한 모든 소스 영역들(14)을 서로 접속시키는 소스 라인(14a)을 포함한다. 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 소스 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 제어 게이트 라인들(22a) 상에 배치된다. 대안적으로, 매트릭스 전압 입력들은 선택 게이트 라인들(28a) 상에 배치될 수 있다. 매트릭스 출력들(Iout0...Ioutn)은 소스 라인들(14a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다. 대안적으로, 매트릭스 출력들은 비트 라인들(16a) 상에 생성된다. 다른 실시예에서, 소스 라인들(14a)은 수평으로 이어진다(즉, 각각은 메모리 셀들의 로우에 대한 모든 소스 영역들을 접속시킴). 도 25 및 도 26에 대한 대안적인 소거 동작은 고전압, 예컨대 10 V 내지 20 V에서 p-형 기판(12)을, 그리고 저전압 또는 네거티브 전압, 예컨대 -10 V 내지 0 V에서 제어 게이트(22)를 가질 수 있으며, 이에 의해 전자들은 플로팅 게이트(20)로부터 기판(12)으로 터널링할 것이다.
도 27은, 제어 게이트(22)가 없는 것을 제외하고는, 도 6의 메모리 셀과 유사한 3개의 게이트들을 갖는 메모리 셀(10)을 도시한다. 판독, 소거, 및 프로그래밍은 유사한 방식으로 수행되지만, 제어 게이트에 대한 어떠한 바이어스도 없이 수행된다. 예시적인 비제한적인 동작 전압들은 하기 표 4의 것들을 포함할 수 있다:
[표 4]
Figure pct00006
판독 1은 셀 전류가 비트 라인 상에서 나오는 판독 모드이다. 판독 2는 셀 전류가 소스 라인 상에서 나오는 판독 모드이다.
도 28은 도 27의 메모리 셀(10)을 사용한 메모리 셀 어레이 아키텍처를 도시하는데, 이때 모든 라인들은 비트 라인들(16a)을 제외하고 수평/로우 방향으로 연장된다. 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 비트 라인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 선택 게이트 라인들(28a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 비트 라인들(16a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다. 이러한 어레이 아키텍처의 경우, 도 29에 도시된 바와 같이, 매트릭스 전압 입력들이 선택 게이트 라인들(28) 상에 대신에 소거 게이트 라인들(30a) 상에 배치될 수 있다는 것에 유의해야 한다. 대안적으로, 도 30에 도시된 바와 같이, 매트릭스 입력들은, 그 대신에, 선택 게이트 라인들(28a) 또는 소거 게이트 라인들(30a) 상에 배치된 전압 입력들 대신에, 소스 라인들(14a) 상에 배치된 전압 입력들일 수 있다. 또 하나의 추가 대안예에서, 도 31에 도시된 바와 같이, 매트릭스 입력들은 비트 라인들(16a) 상에 배치된 전압 입력들일 수 있으며, 이때 전류가 소스 라인들(14a) 상에서 출력된다.
도 32는 적층형 게이트 구성에서 단지 2개의 게이트들을 갖는 메모리 셀(10)을 도시한다. 메모리 셀은 채널 영역(18)이 사이에 있는 소스 영역(14) 및 드레인 영역(16)을 포함하며, 이는 전술된 메모리 셀들에서의 경우와 같다. 그러나, 본 메모리 셀 구성에서, 플로팅 게이트(20)는 전체 채널 영역 위로 연장되고, 제어 게이트(22)는 플로팅 게이트 위에 배치된다. 이러한 메모리 셀은 소스 측 상의 고온 전자 주입으로 프로그래밍된다. 대안적인 프로그래밍이 드레인 측 상에서 행해질 수 있다. 메모리 셀은 기판(12), 소스 영역(14) 또는 드레인 영역(16) 상에 높은 포지티브 전압을 배치함으로써 소거되는데, 여기서 전자들이 플로팅 게이트(20)로부터 기판(12)으로 터널링한다. 이러한 메모리 셀은 제어 게이트 및 소스 영역(14) 상에 판독 전압들을 배치함으로써 판독된다. 예시적인 비제한적인 동작 전압들은 하기 표 5의 것들을 포함할 수 있다:
[표 5]
Figure pct00007
판독 1은 셀 전류가 비트 라인 상에서 나오는 판독 모드이다. 판독 2는 셀 전류가 소스 라인 상에서 나오는 판독 모드이다.
도 33은 도 32의 메모리 셀들(10)을 사용한 메모리 셀 어레이 아키텍처를 도시하는데, 이때 모든 라인들은 비트 라인들(16a)을 제외하고 수평/로우 방향으로 연장된다. 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 비트 라인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 제어 게이트 라인들(22a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 비트 라인들(16a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다. 이러한 어레이 아키텍처의 경우, 도 34에 도시된 바와 같이, 매트릭스 입력들이, 그 대신에, 제어 게이트 라인들(22a) 상에 배치된 전압 입력들 대신에, 소스 라인들(14a) 상에 배치된 전압 입력들일 수 있다는 것에 유의해야 한다. 또 하나의 추가 대안예에서, 도 35에 도시된 바와 같이, 매트릭스 입력들은 비트 라인들(16a) 상에 배치된 전압 입력들일 수 있으며, 이때 전류가 소스 라인들(14a) 상에서 출력된다.
도 36은 도 32의 메모리 셀들(10)을 사용한 다른 메모리 셀 어레이 아키텍처를 도시한다. 도 36의 어레이 아키텍처는, 제어 게이트 라인들(22a)이 수평으로 대신에 수직으로 이어지는 것을 제외하고는, 도 33의 것과 동일하다(즉, 각각의 제어 게이트 라인(22a)은 컬럼들 중 하나의 컬럼에 있는 메모리 셀들에 대한 모든 제어 게이트들(22)을 서로 접속시킨다). 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 소스 라인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 제어 게이트 라인들(22a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 소스 라인들(14a) 상에 생성된다. 각각의 출력(Iout)은, 로우 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다.
도 37은 도 32의 메모리 셀들(10)을 사용한 다른 메모리 셀 어레이 아키텍처를 도시한다. 도 37의 어레이 아키텍처는, 소스 라인들(14a)이 수평으로 대신에 수직으로 이어지는 것을 제외하고는, 도 33의 것과 동일하다(즉, 각각의 소스 라인(14a)은 컬럼들 중 하나의 컬럼에 있는 메모리 셀들에 대한 모든 소스 영역들(14)을 서로 접속시킨다). 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 소스 라인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vin3이며, 제어 게이트 라인들(22a) 상에 배치된다. 매트릭스 출력들(Iout0...Ioutn)은 소스 라인들(14a) 상에 생성된다. 각각의 출력(Iout)은, 컬럼 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다. 대안적으로, 도 38에 도시된 바와 같이, 매트릭스 출력들은 소스 라인들(14a) 상에 대신에 비트 라인들(16a) 상에 생성된다.
도 39는 도 32의 메모리 셀들(10)을 사용한 다른 메모리 셀 어레이 아키텍처를 도시한다. 도 39의 어레이 아키텍처는, 메모리 셀들의 각각의 컬럼에 대해 2개의 제어 게이트 라인들(22a)(즉, 짝수 로우들에서의 컬럼에 있는 모든 메모리 셀들에 대한 제어 게이트들(22)을 서로 접속시키는 제1 제어 게이트 라인(22a1), 및 홀수 로우들에서의 컬럼에 있는 모든 메모리 셀들에 대한 제어 게이트들(22)을 서로 접속시키는 제2 제어 게이트 라인(22a2))이 있다는 것을 제외하고는 도 36의 것과 동일하다. 메모리 셀들 각각이 그 셀에 대한 적절한 가중치 값으로 프로그래밍된 후, 어레이는 소스 라인 합산 매트릭스 승산기로서 작용한다. 매트릭스 전압 입력들은 Vin0 내지 Vinn이며, 제어 게이트 라인들(22a1, 22a2) 상에 배치된다. 매트릭스 출력들(Iout0...Iout2)은 소스 라인들(14a) 상에 생성된다. 각각의 출력(Iout)은, 로우 내의 모든 셀들에 대해, 셀 내에 저장된 가중치(W)에 비례하는 셀 전류의 합이다. 각각의 컬럼에 대한 2개의 입력들은 차동 입력들일 수 있다.
앞서 기술된 모든 실시예들은 메모리 셀들을 아날로그 또는 디지털 방식으로, 그리고 메모리 셀들의 임계치 미만 또는 초과에서 동작시킬 수 있다. 본 명세서에 사용되는 바와 같이, 디지털 방식으로 동작시키는 것은, 메모리 셀이 동작 동안 2개의 프로그램 상태들(프로그램 레벨들로도 지칭됨), 예를 들어 프로그래밍된 상태 및 소거 상태로 나타내어지는 '0' 및 '1' 중 하나를 나타내도록 프로그래밍 또는 소거될 수 있음을 의미한다. 아날로그 방식으로 동작시키는 것은, 메모리 셀이 동작 동안 단지 2개 초과의 프로그램 상태들, 예를 들어 4-비트 등가의 메모리 셀의 경우 16개의 프로그램 상태들 중 하나를 나타내도록 프로그래밍 또는 소거될 수 있음을 의미한다. 임계치 초과에서 동작시키는 것은, 인가된 판독 전압(들)이 (그의 프로그램 상태에 따라) 메모리 셀을 턴 온시키기에 충분하다는 것을 의미하며, 이는 그것이 판독 전압(들)과 셀 전류 사이에 선형 또는 포화 관계가 있는 방식으로 채널 영역을 통과하여 전류(즉, 판독 전류 또는 셀 전류)를 전도할 것임을 의미한다. 임계치 미만으로 동작시키는 것은, 인가된 판독 전압(들)이 메모리 셀을 강하게 턴 온시키기에 충분하지 않다는 것을 의미하며, 이는 메모리 셀을 통과하는 임의의 전류가 서브-임계 전류로 간주됨을 의미한다. 서브-임계 동작 동안 판독 전압(들)과 셀 전류 간의 관계는 선형이 아니라, 지수적 방식으로 예측가능하고 반복가능하다. 따라서, 서브-임계 메모리 셀 동작은 극도의 저전력 아날로그 동작에 더 적합한 반면, 임계치 초과에서 동작시키는 선형 특성들은 고속 성능을 위한 디지털 동작에 더 적합하다. 그러나, 소정의 애플리케이션들에 대해 또는 동작 범위를 확장하기 위해, 임계치 미만의 디지털 동작, 및/또는 임계치 초과의 아날로그 동작이 요구될 수 있다.
메모리 셀들이 아날로그 방식으로 동작되는 경우, 프로그램 상태들을 최적화함으로써 네트워크 정확도가 개선될 수 있다. 구체적으로, 도 8a 및 도 8b와 관련하여 위에서 논의된 바와 같이, 메모리 셀들에 저장된 바와 같은 가중치 레벨 할당들은, 메모리 셀들로의 가중치 값들의 맵핑(프로그래밍 또는 소거에 의한 튜닝) 동안 메모리 셀들이 이상적으로 달성하는 상이한 프로그램 상태들(기술적으로 최하위 프로그램 상태인 소거 상태를 포함함)에 대응하여, 저장된 가중치들이 인입 입력들에 대한 판독 동작들 동안 적절히 인가되게 한다. 상이한 프로그램 상태들은 플로팅 게이트 상에 배치되는 상이한 수의 전자들을 반영하고, 동일한 인가된 판독 동작 전압들을 고려하여 채널 영역을 통과하는 상이한 가능한 판독 전류들에 대응한다. 플로팅 게이트 상의 전자들이 많을수록, 프로그램 상태가 더 높다(그리고 그에 따라 판독 동작 동안 채널 판독 전류가 더 낮다). 따라서, 도 8a의 16개의 프로그램 상태들의 경우, L0 상태는 가장 많이 소거된 프로그램 상태를 반영한다(여기서 플로팅 게이트는 가장 적은 양의 전자들을 포함한다). L1은 플로팅 게이트 상으로 프로그래밍된 제1 양의 전자들을 갖는 프로그램 상태를 반영한다. L2는 플로팅 게이트 상으로 프로그래밍된, 제1 양의 전자들보다 더 큰 제2 양의 전자들을 갖는 프로그램 상태를 반영하는, 등등이다. 이 실시예에서, 프로그램 상태들은 서로 균일하게 이격되어 있으며, 이는, 메모리 셀에 인가되는 인가된 판독 전압들의 주어진 판독 동작에 대해, 임의의 2개의 인접한 프로그램 상태들이 판독 전류에 있어서 동일한 차이만큼 서로 상이함을 의미한다. 달리 말하면, 플로팅 게이트를 추가적인 전자들로 프로그래밍하여 메모리 셀을 하나의 프로그래밍 상태로부터 다음 프로그래밍 상태로 이동시키는 것은, 인가된 판독 전압들의 주어진 판독 동작에 대해 판독 전류에 있어서 동일한 양의 감소를 항상 초래할 것이다. 대안적으로, 판독 전류가 판독 전압으로 변환되는 경우, 전술한 것이 동일하게 적용되지만, 판독 전류 대신에 판독 전압에 대하여 적용된다. 따라서, 본 명세서에 사용되는 바와 같이, 2개의 프로그램 상태들 사이의 프로그램 상태 간격 또는 간극은, 메모리 셀에 대한 인가된 판독 전압들의 동일한 판독 동작 조건들 하에서 판독 전류 또는 판독 전류로부터 도출된 판독 전압의 차이를 지칭한다. 대조적으로, 도 8b에서, 상위 레벨의 프로그램 상태들은 하위 레벨의 프로그램 상태들보다 서로 더 가깝게 이격되어 있다(즉, 인접한 레벨들의 프로그램 상태들 사이의 판독 전류 또는 판독 전압의 차이는 프로그램 상태 레벨들의 함수이며, 여기서 인접한 상위 레벨들의 프로그램 상태들을 분리시키는 판독 전류 또는 판독 전압의 차이들은 인접한 하위 레벨들의 프로그램 상태들에 대한 것보다 더 작다).
개선된 신경 네트워크 시스템의 신뢰성 및 성능은, 단순히 프로그램 상태 레벨 수에 기초하는 대신에, 다양한 프로그램 상태들의 사용 밀도에 기초하여 프로그램 상태 간극을 가변시킴으로써 달성될 수 있다는 것이 발견되었다. 사용 밀도는 그 프로그램 상태로 프로그래밍된 상대적인 수의 메모리 셀들(즉, 그 프로그램 상태의 사용 빈도)을 반영한다. 임의의 주어진 프로그램 상태에 대한 사용 밀도가 높을수록(즉, 사용 빈도가 높을수록), 다른 프로그램 상태들에 비해 그 프로그램 상태로 프로그래밍되는 메모리 셀들의 상대적인 수가 더 커진다. 예를 들어, 도 40은 16개의 프로그램 상태들을 채용하는 시스템의 예시적인 사용 밀도를 도시하며, 여기서 중간 프로그램 상태들이 가장 많이 사용되고, 하위 프로그램 상태들 및 상위 프로그램 상태들이 가장 적게 사용된다. 이 예에서, 더 많은 메모리 셀들이 다른 프로그램 상태들 중 임의의 것보다 L7 프로그램 상태로 프로그래밍된다. 시스템 신뢰성 및 성능을 증가시키기 위해, 가장 많이 사용되는 상태들은, 인접한 프로그램 상태들로부터의 간극이, 더 적은 양으로 사용되는 그러한 프로그램 상태들에 대한 것보다 더 크도록 설정된다. 이것은 도 41에 도시되어 있으며, 여기서 프로그램 상태들 L4 내지 L11은 프로그램 상태들 L0 내지 L3 및 L12 내지 L15보다 서로 더 멀리 이격되어 있다(즉, 인접한 상태들 사이의 간극 S1이 인접한 상태들 사이의 간극 S2보다 더 크다). 프로그램 상태 간극이 클수록, 달성될 수 있는 잠재적인 정확도 및 신뢰성이 더 양호해지는데, 그 이유는 메모리 셀의 프로그램 상태를 여전히 정확하게 판독할 수 있으면서 프로그래밍 동안 타깃 상태 레벨과 실제 튜닝된 상태 레벨 사이에 더 큰 편차들이 존재할 수 있기 때문이다. 더 큰 간극을 갖는 프로그램 상태들에서 프로그래밍되는 메모리 셀들을 여전히 정확하게 판독하면서 판독 부정확성들에서의 더 큰 허용오차들을 견딜 수 있다. 더 큰 프로그램 간극에 의해 극복될 수 있는 부정확성들의 소스들은 튜닝 부정확성, 판독 부정확도, 열 또는 1/f 잡음, 셀간 커플링 등을 포함할 수 있다.
도 42 및 도 43은 상이한 사용 밀도 예를 도시하며, 여기서 더 많은 상위 프로그램 상태들이, 도 41 및 도 42에 도시된 것에 비해 더 적게 사용되고, 더 많은 하위 프로그램 상태들이 더 많이 사용된다. 이 예에서, 프로그램 상태들 L2 내지 L9는 프로그램 상태들 L0과 L1 및 L10 내지 L15보다 서로 더 멀리 이격되어 있다. 이 시스템은, 하위 프로그램 상태들이 복수의 메모리 셀들에 의해 더 자주 사용되는 것을 고려하여 더 많은 하위 프로그램 상태들이 더 큰 간극을 갖는 것을 선호한다.
도 44 및 도 45는 상이한 사용 밀도 예를 도시하며, 여기서 중간 프로그램 상태들이 가장 적게 사용된다. 이 예에서, 프로그램 상태들 L0 내지 L3 및 L11 내지 L15는 프로그램 상태들 L4 내지 L10에 비해 서로 더 멀리 이격되어 있다. 이 시스템은, 하위 및 상위 프로그램 상태들이 복수의 메모리 셀들에 의해 더 자주 사용되는 것을 고려하여 하위 및 상위 프로그램 상태들이 중간 프로그램 상태들에 비하여 더 큰 간극을 갖는 것을 선호한다.
도 46 및 도 47은 상이한 사용 밀도 예를 도시하며, 여기서 더 높은 사용 밀도를 갖는 프로그램 상태들(L3, L7, L10, 및 L11)은 모두 서로 인접하지 않는다. 이 실시예는, 사용 밀도가 프로그램 상태마다 개별적으로 고려될 수 있다는 것을 반영한다. 소정의 프로그램 상태들이 신경 네트워크의 정확도에 가장 영향을 미치는 다른 실시예에서, 그러한 프로그램 상태들은 더 멀리 이격되어 있다.
인접한 프로그램 상태들 사이의 간극이 S1 또는 S2 중 어느 하나인 것으로 도시되어 있지만, 2개 초과의 간극 값들이 사용될 수 있고/있거나, 간극이 단지 덜 빈번하게 사용되는 상태들 사이에서 그리고/또는 단지 더 빈번하게 사용되는 상태들 사이에서 가변될 수 있음에 유의해야 한다. 또한, 간극의 변화들을 구현하기 위한 하나의 방식은, S1 간극이 로그형(logarithmic)이고 S2 간극이 선형이거나, 또는 그 반대로도 가능하다는 것이다. 대안적으로, S1 및 S2는 상이한 양의 로그형 차이일 수 있다.
사용 밀도는, 예를 들어 신경 네트워크 트레이닝 동안 결정될 수 있다. 그러한 트레이닝은, 원하는 출력들을 달성하기 위해 신경 네트워크에 공지된 입력들을 제공하는 것을 포함할 수 있다. 이어서, 실제 출력들이 원하는 출력들과 비교되어 에러들을 결정하는데, 이는 원하는 출력들이 달성되거나 또는 시스템이 일부 통계적으로 원하는 지점에 도달할 때까지 시스템 출력들을 개선하기 위해 저장된 가중치들을 조정하는 데 사용된다. 이러한 트레이닝의 일부로서, 다양한 프로그램 상태들의 사용 밀도가 결정되고, 위에서 논의된 바와 같이 프로그램 상태 간극을 조정하는 데 사용된다. 사용 밀도는 다수의 레벨들에 대해 전역 단위로 집합적으로, 또는 층별 단위에 이르기까지 더 개별적으로 결정 및 구현될 수 있다. 사용 밀도를 결정하기 위한 다른 기법들은, 특정 애플리케이션에 기초하여 또는 이력 정보에 기초하여 어느 가중치들(및 그에 따라 어느 프로그램 상태들)이 가장 많이 사용되는지를 추정하는 예측 모델을 생성하는 것을 포함할 수 있다.
동작의 유형(디지털 대 아날로그), 및/또는 프로그램 상태 간극 스킴은, 속도, 정확도, 신뢰성, 전력 소비 등의 관점에서 성능을 최대화하기 위해 신경망 층의 함수로서 가변되거나 또는 동일할 수 있다. 예를 들어, 2개의 상이한 인접한 또는 인접하지 않은 신경망 층들이 2개의 상이한 동작 모드들(하나는 디지털식으로 동작하고 다른 하나는 아날로그 방식으로 동작함) 또는 동일한 동작 모드를 사용할 수 있다. 추가적으로 또는 대안적으로, 일부 VMM 어레이들은 임계치 미만에서 동작할 수 있는 반면, 다른 것들은 임계치 초과에서 동작할 수 있다. 또한, 아날로그 방식으로 동작하는 2개의 상이한 인접한 또는 인접하지 않은 신경망 층들은 상이한 프로그램 상태 간극 스킴들을 활용할 수 있고/있거나, 상이한 수의 프로그램 상태들을 활용할 수 있거나(즉, 주어진 신경망 층이 더 적은 프로그램 상태들을 필요로 하는 경우, 더 멀리 이격되어 있는 더 적은 프로그램 상태들이 사용될 수 있음), 또는 동일한 프로그램 상태 간극 스킴들을 사용할 수 있다. 특정 예로서, 도 12에서, 층(S1)으로부터 층(C2)으로 가는 CB2에서의 시냅스들은 디지털식으로 동작될 수 있는 반면, (층(S2) 및 층(C3)으로부터 가는) CB3 및 (층(C3)으로부터 층(S3)으로 가는) CB4에서의 시냅스들은 아날로그 방식으로 동작될 수 있다. 추가적으로, CB2에서의 신경망 층들의 일부는 16개의 레벨들을 사용하는 도 41의 프로그램 상태 간극 스킴을 이용하여 동작할 수 있는 반면, 다른 것들은 단지 8개의 레벨들을 사용하는 도 8의 프로그램 상태 간극 스킴을 이용하여 동작한다. 추가적으로 또는 대안적으로, CB2에서의 신경망 층들의 일부는 도 41의 프로그램 상태 간극 스킴을 이용하여 동작할 수 있는 반면(이때 중간 상태들은 다른 프로그램 상태들보다 더 멀리 이격됨), 다른 것들은 도 45의 프로그램 상태 간극 스킴을 이용하여 동작한다(이때 중간 상태들은 다른 프로그램 상태들보다 서로 더 가깝게 이격됨).
각각의 신경망 층의 목적 및 요구들을 고려하여 상이하게(디지털 대 아날로그, 임계치 초과 또는 미만, 더 많은/더 적은 아날로그 프로그래밍 상태들 등) 동작하는 VMM 어레이들을 사용함으로써 성능이 향상될 수 있다. 예를 들어, 메모리 셀들을 임계치 미만(서브-임계)에서 동작시키는 것은 전력 소비를 감소시키고(예컨대, 수백 나노암페어로부터 1 피코암페어 미만에 이르기까지의 전류), 그에 따라 극도의 저전력 아날로그 동작에 더 양호하다. 메모리 셀들을 임계치 초과에서 동작시키는 것은 더 많은 전력(예컨대, 수백 나노암페어 내지 수십 마이크로암페어의 전류)을 소비하지만, 디지털 동작, 더 높은 동작 범위, 더 높은 전류로 인한 더 많은 상태 레벨들, 및 고속 성능에 더 적합한 특성들을 제공한다. 메모리 셀들을 디지털 방식으로 동작시키는 것은 콘볼루션, 풀링, 비선형 함수들과 같은 상이한 기계 학습(딥 러닝(deep learning)) 동작들에 대해 더 많은 유연성을 제공하지만, 더 많은 전력을 소비할 것이다. 메모리 셀들을 아날로그 방식으로 동작시키는 것은 덜 유연하지만, 더 적게 소비한다(예컨대, 디지털식으로 동작하는 메모리 셀들에 의해 소비되는 전력의 1/10 또는 심지어 1/100일 수 있다). 따라서, 각각의 VMM 어레이의 동작은 그 신경망 층의 성능을 최대화하기 위해 설정될 수 있으며(디지털/아날로그, 임계치 초과 또는 미만, 프로그램 상태 간극 스킴 등), 이는 다른 VMM 어레이들에 대해 가변되거나 동일할 수 있다.
상이하게 동작하거나 구성되는 VMM 어레이를, 단독으로 또는 전술된 다양한 유형의 VMM 어레이 동작 중 하나 이상과 조합하여, 사용함으로써 성능이 어떻게 추가로 향상될 수 있는지의 다른 예는, 아날로그 휘발성 VMM 어레이를 전술된 바와 같은 아날로그 비휘발성 VMM과 조합하여 사용하는 것이다. 그러한 아날로그 휘발성 VMM 어레이는 휘발성 메모리 셀들(예컨대, 메모리 셀에 대한 전력이 턴 오프된 후에도 그들의 저장된 정보가 유지되는 플로팅 게이트를 갖는 것들과 같은 비휘발성 메모리 셀들과는 대조적으로, 메모리 셀에 대한 전력이 턴 오프될 때 그들의 저장된 정보를 잃는 DRAM, SRAM, 커패시터 기반 맞춤형 메모리 셀 등)로 형성되고, 콘볼루션 층들로서 사용될 수 있다. 예를 들어, 필터들의 가중치들은 전술된 바와 같이 아날로그 비휘발성 어레이에 저장된다. 이어서, 이러한 가중치들은 아날로그 휘발성 VMM 어레이로 전달되며, 여기서 콘볼루션이 이어서 아날로그 휘발성 VMM 어레이 상에서 동작된다. 그렇게 하는 하나의 이점은 (비휘발성 메모리 셀들보다 더 빨리 동작하는) 휘발성 메모리 셀들을 사용하는 속도를 증가시킬 것이지만, 저장된 가중치들은 전력이 턴 오프된 후에 비휘발성 메모리 셀들에서 유지된다. 휘발성 메모리 셀들의 VMM 어레이가 상이한 기계 학습(딥 러닝) 동작들에 대해 더 유연하지만, 또한 더 빈번하게(예컨대, 전형적으로 밀리초 시간프레임 내에) 리프레시될 필요가 있으며, 그에 따라 더 많은 전력을 소비한다. 비휘발성 메모리 셀들의 VMM 어레이가 상이한 기계 학습(딥 러닝) 동작들에 대해 덜 유연하지만, 덜 빈번하게(예컨대, 전형적으로 수 개월 또는 수년의 시간프레임 내에) 리프레시될 필요가 있으며, 그에 따라 더 적은 전력을 소비한다. 따라서, 임의의 주어진 애플리케이션의 경우, 휘발성 및 비휘발성 VMM 어레이들의 전술된 이점들과 단점들의 균형, 및 각각의 VMM 층의 요건들에 따라, 휘발성 VMM 어레이들의 다수의 층들, 및/또는 비휘발성 층들의 다수의 층들이 사용될 수 있다.
상기 기능 모두는, 신경망 기능에 사용되는 전술된 메모리 셀들(10)의 메모리 어레이(들)에 접속되는 제어 회로부를 포함하는 제어기(100)의 제어 하에서 수행될 수 있다. 도 48에 도시된 바와 같이, 제어기(100)는 바람직하게는 메모리 어레이(들)(120)와 동일한 반도체 칩 또는 기판(110) 상에 있다. 그러나, 제어기(100)는 또한 별개의 반도체 칩 또는 기판 상에 위치될 수 있고, 반도체 칩 또는 기판(110) 상의 또는 그를 벗어난 상이한 위치들에 배치된 이종(disparate) 제어 회로부 또는 다수의 제어기들의 집합일 수 있다.
일부 신경망 애플리케이션들은 포지티브 가중치 및 네거티브 가중치 양쪽 모두를 사용하는데, 이 경우에 제어기(100)는 메모리 셀들이 가중치들로 프로그래밍될 때 프로그램 상태들 중 일부에 네거티브 가중치들을 그리고 프로그램 상태들 중 다른 것들에 포지티브 가중치들을 맵핑시킨다. 이어서, 동작 동안, 제어기(100)는 네거티브 가중치들로 프로그래밍된 메모리 셀들로부터 생성된 출력 전류에 대해 적절한 액션을 수행할 것이다.
본 발명은 전술되고 본 명세서에 예시된 실시예(들)로 제한되는 것이 아니라, 임의의 청구항들의 범주에 속하는 임의의 그리고 모든 변형들을 포괄한다는 것이 이해되어야 한다. 예를 들어, 본 명세서에서 본 발명에 대한 언급들은 임의의 청구항 또는 청구항 용어의 범주를 제한하는 것이 아니라, 대신에 단지 하나 이상의 청구항들에 의해 커버될 수 있는 하나 이상의 특징들에 대해 언급하는 것으로 의도된다. 전술된 재료들, 공정들, 및 수치 예들은 단지 예시적인 것일 뿐이며, 청구항들을 제한하는 것으로 간주되어서는 안 된다. 재료의 단일 층들이 그러한 또는 유사한 재료들의 다수의 층들로서 형성될 수 있고, 그 반대도 마찬가지이다. 각각의 메모리 셀 어레이의 출력들이 다음 뉴런 층으로 보내지기 전에 필터 응축에 의해 조작되지만, 반드시 그러할 필요는 없다. 마지막으로, 전술된 매트릭스 승산기 어레이 실시예들 각각에 대하여, 입력 전압들 또는 출력 전류들에 사용되지 않는 임의의 라인들의 경우, 메모리 셀의 그러한 구성에 대한 본 명세서의 표들에 개시된 공칭 판독 전압들이 동작 동안 이들 라인들에 인가될 수 있다(그러나, 필수적인 것은 아니다).
본 명세서에 사용된 바와 같이, 용어들 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)와 "간접적으로~ 상에"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것에 유의하여야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "~에 실장되는"은 "직접적으로 ~에 실장되는"(어떠한 중간 재료들, 요소들 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 실장되는"(중간 재료들, 요소들 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 커플링되는"은 "직접적으로 ~에 전기적으로 커플링되는"(요소들을 함께 전기적으로 접속시키는 어떠한 중간 재료들 또는 요소들도 사이에 없음)과 "간접적으로 ~에 전기적으로 커플링되는"(요소들을 함께 전기적으로 접속시키는 중간 재료들 또는 요소들이 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료들/요소들도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료들/요소들을 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.

Claims (27)

  1. 메모리 디바이스로서,
    복수의 메모리 셀들; 및
    제어기를 포함하고, 상기 제어기는
    상기 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고
    상기 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 상기 메모리 셀들을 판독하도록 구성되고,
    상기 판독 동작 동안, 상기 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극(separation)들이 상기 복수의 메모리 셀들에서의 상기 프로그램 상태들의 사용 빈도들에 기초하여 가변되는, 메모리 디바이스.
  2. 제1항에 있어서, 상기 복수의 프로그램 상태들 각각에 대해, 상기 제어기는
    상기 복수의 메모리 셀들에서의 상기 프로그램 상태의 사용 빈도를 결정하도록, 그리고
    상기 결정된 사용 빈도에 기초하여 상기 프로그램 상태와 상기 프로그램 상태들 중 인접한 프로그램 상태 사이의 간극을 설정하도록 구성되는, 메모리 디바이스.
  3. 제2항에 있어서, 상기 제어기는 제1 사용 빈도를 갖는 상기 프로그램 상태들 중 제1의 것에 대한 간극을 설정하도록, 그리고 상기 제1 사용 빈도보다 더 큰 제2 사용 빈도를 갖는 상기 프로그램 상태들 중 제2의 것에 대한 간극을 설정하도록 구성되고, 상기 프로그램 상태들 중 상기 제2의 것에 대한 간극은 상기 프로그램 상태들 중 상기 제1의 것에 대한 간극보다 더 큰, 메모리 디바이스.
  4. 제2항에 있어서, 상기 제어기는 상기 프로그램 상태들의 제1 그룹에 대한 간극들을 제1 값으로 설정하도록, 그리고 상기 프로그램 상태들의 제2 그룹에 대한 간극들을 상기 제1 값보다 더 큰 제2 값으로 설정하도록 구성되고, 상기 프로그램 상태들의 상기 제2 그룹 각각은 사용 빈도가 상기 프로그램 상태들의 상기 제1 그룹 중 임의의 것의 사용 빈도보다 더 큰, 메모리 디바이스.
  5. 제1항에 있어서, 상기 복수의 메모리 셀들은 비휘발성 메모리 셀들인, 메모리 디바이스.
  6. 신경 네트워크 디바이스로서,
    제1 복수의 입력들을 수신하도록 그리고 그로부터 제1 복수의 출력들을 생성하도록 구성된 제1 복수의 시냅스(synapse)들 - 상기 제1 복수의 시냅스들은,
    복수의 메모리 셀들; 및
    제어기를 포함하고, 상기 제어기는
    상기 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고
    상기 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 상기 메모리 셀들을 판독하도록 구성되고,
    상기 판독 동작 동안, 상기 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극들이 상기 복수의 메모리 셀들에서의 상기 프로그램 상태들의 사용 빈도들에 기초하여 가변되고,
    상기 복수의 메모리 셀들은 상기 제1 복수의 입력들 및 상기 복수의 프로그램 상태들에 기초하여 상기 제1 복수의 출력들을 생성하도록 구성됨 -; 및
    상기 제1 복수의 출력들을 수신하도록 구성된 제1 복수의 뉴런(neuron)들을 포함하는, 신경 네트워크 디바이스.
  7. 제6항에 있어서, 상기 복수의 프로그램 상태들 각각에 대해, 상기 제어기는
    상기 복수의 메모리 셀들에서의 상기 프로그램 상태의 사용 빈도를 결정하도록, 그리고
    상기 결정된 사용 빈도에 기초하여 상기 프로그램 상태와 상기 프로그램 상태들 중 인접한 프로그램 상태 사이의 간극을 설정하도록 구성되는, 신경 네트워크 디바이스.
  8. 제7항에 있어서, 상기 제어기는 제1 사용 빈도를 갖는 상기 프로그램 상태들 중 제1의 것에 대한 간극을 설정하도록, 그리고 상기 제1 사용 빈도보다 더 큰 제2 사용 빈도를 갖는 상기 프로그램 상태들 중 제2의 것에 대한 간극을 설정하도록 구성되고, 상기 프로그램 상태들 중 상기 제2의 것에 대한 간극은 상기 프로그램 상태들 중 상기 제1의 것에 대한 간극보다 더 큰, 신경 네트워크 디바이스.
  9. 제7항에 있어서, 상기 제어기는 상기 프로그램 상태들의 제1 그룹에 대한 간극들을 제1 값으로 설정하도록, 그리고 상기 프로그램 상태들의 제2 그룹에 대한 간극들을 상기 제1 값보다 더 큰 제2 값으로 설정하도록 구성되고, 상기 프로그램 상태들의 상기 제2 그룹 각각은 사용 빈도가 상기 프로그램 상태들의 상기 제1 그룹 중 임의의 것의 사용 빈도보다 더 큰, 신경 네트워크 디바이스.
  10. 제6항에 있어서,
    상기 제1 복수의 뉴런들로부터 제2 복수의 입력들을 수신하도록 그리고 그로부터 제2 복수의 출력들을 생성하도록 구성된 제2 복수의 시냅스들 - 상기 제2 복수의 시냅스들은,
    복수의 제2 메모리 셀들을 포함하고,
    상기 제어기는
    상기 제2 메모리 셀들 각각을 복수의 제2 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고
    상기 제2 메모리 셀들에 대한 제2 인가된 전압들의 제2 판독 동작을 이용하여 상기 제2 메모리 셀들을 판독하도록 구성되고,
    상기 제2 판독 동작 동안, 상기 제2 프로그램 상태들 중 인접한 제2 프로그램 상태들 사이의 간극들이 상기 복수의 제2 메모리 셀들에서의 상기 제2 프로그램 상태들의 사용 빈도들에 기초하여 가변되고,
    상기 복수의 제2 메모리 셀들은 상기 제2 복수의 입력들 및 상기 복수의 제2 프로그램 상태들에 기초하여 상기 제2 복수의 출력들을 생성하도록 구성됨 -; 및
    상기 제2 복수의 출력들을 수신하도록 구성된 제2 복수의 뉴런들을 추가로 포함하는, 신경 네트워크 디바이스.
  11. 제10항에 있어서, 상기 복수의 제2 프로그램 상태들 각각에 대해, 상기 제어기는
    상기 복수의 제2 메모리 셀들에서의 상기 제2 프로그램 상태의 사용 빈도를 결정하도록, 그리고
    상기 결정된 사용 빈도에 기초하여 상기 제2 프로그램 상태와 상기 제2 프로그램 상태들 중 인접한 제2 프로그램 상태 사이의 간극을 설정하도록 구성되는, 신경 네트워크 디바이스.
  12. 제11항에 있어서, 상기 제어기는 제3 사용 빈도를 갖는 상기 제2 프로그램 상태들 중 제1의 것에 대한 간극을 설정하도록, 그리고 상기 제3 사용 빈도보다 더 큰 제4 사용 빈도를 갖는 상기 제2 프로그램 상태들 중 제2의 것에 대한 간극을 설정하도록 구성되고, 상기 제2 프로그램 상태들 중 상기 제2의 것에 대한 간극은 상기 제2 프로그램 상태들 중 상기 제1의 것에 대한 간극보다 더 큰, 신경 네트워크 디바이스.
  13. 제11항에 있어서, 상기 제어기는 상기 제2 프로그램 상태들의 제1 그룹에 대한 간극들을 제3 값으로 설정하도록, 그리고 상기 제2 프로그램 상태들의 제2 그룹에 대한 간극들을 상기 제3 값보다 더 큰 제4 값으로 설정하도록 구성되고, 상기 제2 프로그램 상태들의 상기 제2 그룹 각각은 사용 빈도가 상기 제2 프로그램 상태들의 상기 제1 그룹 중 임의의 것의 사용 빈도보다 더 큰, 신경 네트워크 디바이스.
  14. 제10항에 있어서, 상기 프로그램 상태들 중 인접한 프로그램 상태들 사이의 간극들의 값들은 상기 제2 프로그램 상태들 중 인접한 제2 프로그램 상태들 사이의 간극들의 값들과는 상이한, 신경 네트워크 디바이스.
  15. 제10항에 있어서, 상기 복수의 프로그램 상태들의 총 수가 상기 복수의 제2 프로그램 상태들의 총 수와는 상이한, 신경 네트워크 디바이스.
  16. 제10항에 있어서, 상기 메모리 셀들은 휘발성이고 상기 제2 메모리 셀들은 비휘발성이거나, 또는 상기 메모리 셀들은 비휘발성이고 상기 제2 메모리 셀들은 휘발성인, 신경 네트워크 디바이스.
  17. 제10항에 있어서, 상기 복수의 메모리 셀들은 비휘발성 메모리 셀들이고, 상기 복수의 제2 메모리 셀들은 비휘발성 메모리 셀들인, 신경 네트워크 디바이스.
  18. 메모리 셀들을 프로그래밍하는 방법으로서,
    복수의 메모리 셀들 각각을 복수의 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하는 단계;
    상기 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 상기 메모리 셀들을 판독하는 단계;
    상기 복수의 메모리 셀들에서의 상기 프로그램 상태들 각각에 대한 사용 빈도를 결정하는 단계; 및
    상기 프로그램 상태들 각각에 대해, 상기 프로그램 상태에 대한 상기 결정된 사용 빈도에 기초하여 상기 판독 동작 동안 상기 프로그램 상태와 상기 프로그램 상태들 중 인접한 프로그램 상태 사이의 간극을 설정하는 단계를 포함하는, 방법.
  19. 제18항에 있어서, 상기 설정하는 단계는,
    제1 사용 빈도를 갖는 상기 프로그램 상태들 중 제1의 것에 대한 간극을 설정하는 단계; 및
    상기 제1 사용 빈도보다 더 큰 제2 사용 빈도를 갖는 상기 프로그램 상태들 중 제2의 것에 대한 간극을 설정하는 단계를 추가로 포함하고,
    상기 프로그램 상태들 중 상기 제2의 것에 대한 간극은 상기 프로그램 상태들 중 상기 제1의 것에 대한 간극보다 더 큰, 방법.
  20. 제18항에 있어서, 상기 설정하는 단계는,
    상기 프로그램 상태들의 제1 그룹에 대한 간극들을 제1 값으로 설정하는 단계; 및
    상기 프로그램 상태들의 제2 그룹에 대한 간극들을 상기 제1 값보다 더 큰 제2 값으로 설정하는 단계를 추가로 포함하고,
    상기 프로그램 상태들의 상기 제2 그룹 각각은 사용 빈도가 상기 프로그램 상태들의 상기 제1 그룹 중 임의의 것의 사용 빈도보다 더 큰, 방법.
  21. 신경 네트워크 디바이스로서,
    제1 복수의 입력들을 수신하도록 그리고 그로부터 제1 복수의 출력들을 생성하도록 구성된 제1 복수의 시냅스들 - 상기 제1 복수의 시냅스들은,
    복수의 제1 메모리 셀들; 및
    제어기를 포함하고, 상기 제어기는
    상기 제1 메모리 셀들 각각을 복수의 제1 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고
    상기 제1 메모리 셀들에 대한 인가된 전압들의 판독 동작을 이용하여 상기 제1 메모리 셀들을 판독하도록 구성되고,
    상기 복수의 제1 메모리 셀들은 상기 제1 복수의 입력들 및 상기 복수의 제1 프로그램 상태들에 기초하여 상기 제1 복수의 출력들을 생성하도록 구성됨 -;
    상기 제1 복수의 출력들을 수신하도록 구성된 제1 복수의 뉴런들;
    상기 제1 복수의 뉴런들로부터 제2 복수의 입력들을 수신하도록 그리고 그로부터 제2 복수의 출력들을 생성하도록 구성된 제2 복수의 시냅스들 - 상기 제2 복수의 시냅스들은,
    복수의 제2 메모리 셀들을 포함하고,
    상기 제어기는
    상기 제2 메모리 셀들 각각을 복수의 제2 프로그램 상태들 중 하나의 프로그램 상태로 프로그래밍하도록, 그리고
    상기 제2 메모리 셀들에 대한 제2 인가된 전압들의 제2 판독 동작을 이용하여 상기 제2 메모리 셀들을 판독하도록 구성되고,
    상기 복수의 제2 메모리 셀들은 상기 제2 복수의 입력들 및 상기 복수의 제2 프로그램 상태들에 기초하여 상기 제2 복수의 출력들을 생성하도록 구성됨 -; 및
    상기 제2 복수의 출력들을 수신하도록 구성된 제2 복수의 뉴런들을 포함하고,
    하기들 중 적어도 하나인, 신경 네트워크 디바이스:
    상기 복수의 제1 프로그램 상태들의 총 수가 상기 복수의 제2 프로그램 상태들의 총 수와는 상이한 것,
    상기 복수의 제1 프로그램 상태들의 총 수가 단지 2개이고 상기 복수의 제2 프로그램 상태들의 총 수가 2개 초과이거나, 또는 상기 복수의 제1 프로그램 상태들의 총 수가 2개 초과이고 상기 복수의 제2 프로그램 상태들의 총 수가 단지 2개인 것,
    상기 제1 메모리 셀들은 휘발성이고 상기 제2 메모리 셀들은 비휘발성이거나, 또는 상기 제1 메모리 셀들은 비휘발성이고 상기 제2 메모리 셀들은 휘발성인 것,
    상기 제1 메모리 셀들 및 상기 제2 메모리 셀들은 비휘발성인 것,
    상기 제어기는 상기 제1 판독 동작을 임계치 초과에서 그리고 상기 제2 판독 동작을 임계치 미만에서 수행하거나, 또는 상기 제1 판독 동작을 임계치 미만에서 그리고 상기 제2 판독 동작을 임계치 초과에서 수행하도록 구성되는 것, 및
    상기 제어기는 상기 제1 판독 동작 및 상기 제2 판독 동작을 임계치 초과에서 수행하거나, 또는 상기 제1 판독 동작 및 상기 제2 판독 동작을 임계치 미만에서 수행하도록 구성되는 것.
  22. 제21항에 있어서, 상기 복수의 제1 프로그램 상태들의 총 수가 상기 복수의 제2 프로그램 상태들의 총 수와는 상이한, 신경 네트워크 디바이스.
  23. 제21항에 있어서, 상기 복수의 제1 프로그램 상태들의 총 수가 단지 2개이고 상기 복수의 제2 프로그램 상태들의 총 수가 2개 초과이거나, 또는 상기 복수의 제1 프로그램 상태들의 총 수가 2개 초과이고 상기 복수의 제2 프로그램 상태들의 총 수가 단지 2개인, 신경 네트워크 디바이스.
  24. 제21항에 있어서, 상기 제1 메모리 셀들은 휘발성이고 상기 제2 메모리 셀들은 비휘발성이거나, 또는 상기 제1 메모리 셀들은 비휘발성이고 상기 제2 메모리 셀들은 휘발성인, 신경 네트워크 디바이스.
  25. 제21항에 있어서, 상기 제1 메모리 셀들 및 상기 제2 메모리 셀들은 비휘발성인, 신경 네트워크 디바이스.
  26. 제21항에 있어서, 상기 제어기는 상기 제1 판독 동작을 임계치 초과에서 그리고 상기 제2 판독 동작을 임계치 미만에서 수행하거나, 또는 상기 제1 판독 동작을 임계치 미만에서 그리고 상기 제2 판독 동작을 임계치 초과에서 수행하도록 구성되는, 신경 네트워크 디바이스.
  27. 제21항에 있어서, 상기 제어기는 상기 제1 판독 동작 및 상기 제2 판독 동작을 임계치 초과에서 수행하거나, 또는 상기 제1 판독 동작 및 상기 제2 판독 동작을 임계치 미만에서 수행하도록 구성되는, 신경 네트워크 디바이스.
KR1020217024841A 2019-01-29 2019-08-29 사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법 KR102407363B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962798417P 2019-01-29 2019-01-29
US62/798,417 2019-01-29
US16/382,060 2019-04-11
US16/382,060 US10720217B1 (en) 2019-01-29 2019-04-11 Memory device and method for varying program state separation based upon frequency of use
PCT/US2019/048935 WO2020159581A1 (en) 2019-01-29 2019-08-29 Memory device and method for varying program state separation based upon frequency of use

Publications (2)

Publication Number Publication Date
KR20210105428A true KR20210105428A (ko) 2021-08-26
KR102407363B1 KR102407363B1 (ko) 2022-06-10

Family

ID=71612006

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217024841A KR102407363B1 (ko) 2019-01-29 2019-08-29 사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법
KR1020217024248A KR102607530B1 (ko) 2019-01-29 2019-08-29 적층형 게이트 비휘발성 메모리 셀들의 어레이를 이용하는 신경망 분류기

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217024248A KR102607530B1 (ko) 2019-01-29 2019-08-29 적층형 게이트 비휘발성 메모리 셀들의 어레이를 이용하는 신경망 분류기

Country Status (7)

Country Link
US (2) US11270771B2 (ko)
EP (2) EP3918533B1 (ko)
JP (2) JP7008167B1 (ko)
KR (2) KR102407363B1 (ko)
CN (3) CN113366505B (ko)
TW (2) TWI705390B (ko)
WO (2) WO2020159580A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6708146B2 (ja) * 2017-03-03 2020-06-10 株式会社デンソー ニューラルネットワーク回路
US10902921B2 (en) * 2018-12-21 2021-01-26 Texas Instruments Incorporated Flash memory bitcell erase with source bias voltage
US11023559B2 (en) 2019-01-25 2021-06-01 Microsemi Soc Corp. Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit
US11270771B2 (en) * 2019-01-29 2022-03-08 Silicon Storage Technology, Inc. Neural network classifier using array of stacked gate non-volatile memory cells
US11328778B2 (en) * 2020-07-09 2022-05-10 Stmicroelectronics S.R.L. Methods and devices for wear leveling
US20220199078A1 (en) * 2020-12-22 2022-06-23 Samsung Electronics Co., Ltd. Electronic apparatus, system comprising electronic apparatus and server and controlling method thereof
US11462279B1 (en) 2021-05-13 2022-10-04 Western Digital Technologies, Inc. Modified distribution of memory device states
US11989440B2 (en) * 2021-08-11 2024-05-21 Silicon Storage Technology, Inc. Hybrid memory system configurable to store neural memory weight data in analog form or digital form

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080065832A (ko) * 2007-01-10 2008-07-15 삼성전자주식회사 프로그램 에러를 감소시킬 수 있는 멀티 비트 플래시메모리 장치의 프로그램 방법
KR20080084230A (ko) * 2007-03-15 2008-09-19 삼성전자주식회사 셀 사이의 커플링에 의한 영향을 감소시킨 플래시 메모리장치 및 그 구동방법
KR20100101694A (ko) * 2007-02-20 2010-09-17 샌디스크 코포레이션 비휘발성 저장소자를 위한 가변 프로그램
KR20120062818A (ko) * 2009-08-25 2012-06-14 마이크론 테크놀로지, 인크. 메모리 디바이스들에서 임계 전압 변화를 처리하는 방법들, 디바이스들, 및 시스템들
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US10720217B1 (en) * 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use

Family Cites Families (128)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2603414B1 (fr) 1986-08-29 1988-10-28 Bull Sa Amplificateur de lecture
JPH06103782B2 (ja) 1987-04-17 1994-12-14 日本シイエムケイ株式会社 プリント配線板
US5055897A (en) 1988-07-27 1991-10-08 Intel Corporation Semiconductor cell for neural network and the like
US4904881A (en) 1989-02-10 1990-02-27 Intel Corporation EXCLUSIVE-OR cell for neural network and the like
JP3122756B2 (ja) 1991-01-12 2001-01-09 直 柴田 半導体装置
US5621336A (en) 1989-06-02 1997-04-15 Shibata; Tadashi Neuron circuit
JPH0318985A (ja) 1989-06-16 1991-01-28 Hitachi Ltd 情報処理装置
US5028810A (en) 1989-07-13 1991-07-02 Intel Corporation Four quadrant synapse cell employing single column summing line
US4956564A (en) * 1989-07-13 1990-09-11 Intel Corporation Adaptive synapse cell providing both excitatory and inhibitory connections in an associative network
US4961002A (en) 1989-07-13 1990-10-02 Intel Corporation Synapse cell employing dual gate transistor structure
KR920010344B1 (ko) 1989-12-29 1992-11-27 삼성전자주식회사 반도체 메모리 어레이의 구성방법
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
US5242848A (en) 1990-01-22 1993-09-07 Silicon Storage Technology, Inc. Self-aligned method of making a split gate single transistor non-volatile electrically alterable semiconductor memory device
JP2663995B2 (ja) 1990-05-22 1997-10-15 インターナショナル・ビジネス・マシーンズ・コーポレーション スケーラブル・フロー仮想学習ニューロコンピュータ
US5150450A (en) 1990-10-01 1992-09-22 The United States Of America As Represented By The Secretary Of The Navy Method and circuits for neuron perturbation in artificial neural network memory modification
US5146602A (en) 1990-12-26 1992-09-08 Intel Corporation Method of increasing the accuracy of an analog neural network and the like
US5138576A (en) 1991-11-06 1992-08-11 Altera Corporation Method and apparatus for erasing an array of electrically erasable EPROM cells
US7071060B1 (en) 1996-02-28 2006-07-04 Sandisk Corporation EEPROM with split gate source side infection with sidewall spacers
EP0562737B1 (en) 1992-03-26 1998-06-17 Hitachi, Ltd. Flash memory
US5336936A (en) 1992-05-06 1994-08-09 Synaptics, Incorporated One-transistor adaptable analog storage element and array
US5264734A (en) 1992-05-19 1993-11-23 Intel Corporation Difference calculating neural network utilizing switched capacitors
US5256911A (en) 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
US5298796A (en) 1992-07-08 1994-03-29 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Nonvolatile programmable neural network synaptic array
US5386132A (en) 1992-11-02 1995-01-31 Wong; Chun C. D. Multimedia storage system with highly compact memory device
JP2835272B2 (ja) 1993-12-21 1998-12-14 株式会社東芝 半導体記憶装置
KR0151623B1 (ko) 1994-12-07 1998-10-01 문정환 이이피롬 셀 및 그 제조방법
US5825063A (en) * 1995-03-07 1998-10-20 California Institute Of Technology Three-terminal silicon synaptic device
US5990512A (en) 1995-03-07 1999-11-23 California Institute Of Technology Hole impact ionization mechanism of hot electron injection and four-terminal ρFET semiconductor structure for long-term learning
US6965142B2 (en) 1995-03-07 2005-11-15 Impinj, Inc. Floating-gate semiconductor structures
US5554874A (en) 1995-06-05 1996-09-10 Quantum Effect Design, Inc. Six-transistor cell with wide bit-line pitch, double words lines, and bit-line contact shared among four cells
US5721702A (en) 1995-08-01 1998-02-24 Micron Quantum Devices, Inc. Reference voltage generator using flash memory cells
US5966332A (en) 1995-11-29 1999-10-12 Sanyo Electric Co., Ltd. Floating gate memory cell array allowing cell-by-cell erasure
US6683645B1 (en) 1995-12-01 2004-01-27 Qinetiq Limited Imaging system with low sensitivity to variation in scene illumination
US5748534A (en) 1996-03-26 1998-05-05 Invox Technology Feedback loop for reading threshold voltage
US6389404B1 (en) 1998-12-30 2002-05-14 Irvine Sensors Corporation Neural processing module with input architectures that make maximal use of a weighted synapse array
US6222777B1 (en) 1999-04-09 2001-04-24 Sun Microsystems, Inc. Output circuit for alternating multiple bit line per column memory architecture
US6232180B1 (en) 1999-07-02 2001-05-15 Taiwan Semiconductor Manufacturing Corporation Split gate flash memory cell
US6282119B1 (en) 2000-06-02 2001-08-28 Winbond Electronics Corporation Mixed program and sense architecture using dual-step voltage scheme in multi-level data storage in flash memories
US6829598B2 (en) 2000-10-02 2004-12-07 Texas Instruments Incorporated Method and apparatus for modeling a neural synapse function by utilizing a single conventional MOSFET
US6563167B2 (en) 2001-01-05 2003-05-13 Silicon Storage Technology, Inc. Semiconductor memory array of floating gate memory cells with floating gates having multiple sharp edges
US6563733B2 (en) 2001-05-24 2003-05-13 Winbond Electronics Corporation Memory array architectures based on a triple-polysilicon source-side injection non-volatile memory cell
KR100983295B1 (ko) 2002-03-22 2010-09-24 조지아 테크 리서치 코오포레이션 부동 게이트 아날로그 회로
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
JP2004171686A (ja) 2002-11-20 2004-06-17 Renesas Technology Corp 不揮発性半導体記憶装置およびそのデータ消去方法
JP4601287B2 (ja) 2002-12-26 2010-12-22 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
US6822910B2 (en) 2002-12-29 2004-11-23 Macronix International Co., Ltd. Non-volatile memory and operating method thereof
US6781186B1 (en) 2003-01-30 2004-08-24 Silicon-Based Technology Corp. Stack-gate flash cell structure having a high coupling ratio and its contactless flash memory arrays
US6856551B2 (en) 2003-02-06 2005-02-15 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
US6946894B2 (en) 2003-06-12 2005-09-20 Winbond Electronics Corporation Current-mode synapse multiplier circuit
WO2005038645A2 (en) 2003-10-16 2005-04-28 Canon Kabushiki Kaisha Operation circuit and operation control method thereof
TWI220560B (en) 2003-10-27 2004-08-21 Powerchip Semiconductor Corp NAND flash memory cell architecture, NAND flash memory cell array, manufacturing method and operating method of the same
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7315056B2 (en) 2004-06-07 2008-01-01 Silicon Storage Technology, Inc. Semiconductor memory array of floating gate memory cells with program/erase and select gates
US7092290B2 (en) 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
TWI270199B (en) 2005-01-31 2007-01-01 Powerchip Semiconductor Corp Non-volatile memory and manufacturing method and operating method thereof
US8443169B2 (en) 2005-03-28 2013-05-14 Gerald George Pechanek Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor
US7304890B2 (en) 2005-12-13 2007-12-04 Atmel Corporation Double byte select high voltage line for EEPROM memory block
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7626868B1 (en) 2007-05-04 2009-12-01 Flashsilicon, Incorporation Level verification and adjustment for multi-level cell (MLC) non-volatile memory (NVM)
US7733262B2 (en) 2007-06-15 2010-06-08 Micron Technology, Inc. Quantizing circuits with variable reference signals
US7630246B2 (en) 2007-06-18 2009-12-08 Micron Technology, Inc. Programming rate identification and control in a solid state memory
US20090039410A1 (en) 2007-08-06 2009-02-12 Xian Liu Split Gate Non-Volatile Flash Memory Cell Having A Floating Gate, Control Gate, Select Gate And An Erase Gate With An Overhang Over The Floating Gate, Array And Method Of Manufacturing
JP2009080892A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 半導体記憶装置
US7894267B2 (en) 2007-10-30 2011-02-22 Spansion Llc Deterministic programming algorithm that provides tighter cell distributions with a reduced number of programming pulses
US7746698B2 (en) 2007-12-13 2010-06-29 Spansion Llc Programming in memory devices using source bitline voltage bias
JP4513865B2 (ja) 2008-01-25 2010-07-28 セイコーエプソン株式会社 並列演算装置および並列演算方法
JP2010267341A (ja) 2009-05-15 2010-11-25 Renesas Electronics Corp 半導体装置
TWI460588B (zh) * 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device
EP2488025A4 (en) * 2009-10-15 2013-04-03 Childrens Medical Center SEPIAPTERIC INTREDUCTASE INHIBITION FOR PAIN TREATMENT
US8204927B1 (en) 2010-03-15 2012-06-19 California Institute Of Technology System and method for cognitive processing for data fusion
JP5300773B2 (ja) 2010-03-29 2013-09-25 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
US9665822B2 (en) 2010-06-30 2017-05-30 International Business Machines Corporation Canonical spiking neuron network for spatiotemporal associative memory
US8325521B2 (en) 2010-10-08 2012-12-04 Taiwan Semiconductor Manufacturing Company, Ltd. Structure and inhibited operation of flash memory with split gate
US8473439B2 (en) 2010-12-08 2013-06-25 International Business Machines Corporation Integrate and fire electronic neurons
US8892487B2 (en) 2010-12-30 2014-11-18 International Business Machines Corporation Electronic synapses for reinforcement learning
JP2013041654A (ja) 2011-08-19 2013-02-28 Toshiba Corp 不揮発性記憶装置
US8909576B2 (en) 2011-09-16 2014-12-09 International Business Machines Corporation Neuromorphic event-driven neural computing architecture in a scalable neural network
US8760955B2 (en) 2011-10-21 2014-06-24 Taiwan Semiconductor Manufacturing Company, Ltd. Electrical fuse memory arrays
WO2014021150A1 (ja) 2012-07-31 2014-02-06 シャープ株式会社 表示装置およびその駆動方法
US9466732B2 (en) 2012-08-23 2016-10-11 Silicon Storage Technology, Inc. Split-gate memory cell with depletion-mode floating gate channel, and method of making same
US9153230B2 (en) 2012-10-23 2015-10-06 Google Inc. Mobile speech recognition hardware accelerator
CN103000218A (zh) 2012-11-20 2013-03-27 上海宏力半导体制造有限公司 存储器电路
US9275748B2 (en) 2013-03-14 2016-03-01 Silicon Storage Technology, Inc. Low leakage, low threshold voltage, split-gate flash cell operation
WO2015001697A1 (ja) 2013-07-04 2015-01-08 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路、およびその学習方法
US9513692B2 (en) * 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
US10095718B2 (en) 2013-10-16 2018-10-09 University Of Tennessee Research Foundation Method and apparatus for constructing a dynamic adaptive neural network array (DANNA)
US20150213898A1 (en) 2014-01-27 2015-07-30 Silicon Storage Technololgy, Inc. Byte Erasable Non-volatile Memory Architecture And Method Of Erasing Same
US20150324691A1 (en) 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
US20160034812A1 (en) * 2014-07-31 2016-02-04 Qualcomm Incorporated Long short-term memory using a spiking neural network
US9286982B2 (en) 2014-08-08 2016-03-15 Silicon Storage Technology, Inc. Flash memory system with EEPROM functionality
US9760533B2 (en) 2014-08-14 2017-09-12 The Regents On The University Of Michigan Floating-gate transistor array for performing weighted sum computation
US9984754B2 (en) 2014-09-29 2018-05-29 Toshiba Memory Corporation Memory device and method for operating the same
US10312248B2 (en) 2014-11-12 2019-06-04 Silicon Storage Technology, Inc. Virtual ground non-volatile memory array
US9361991B1 (en) 2014-12-23 2016-06-07 Sandisk Technologies Inc. Efficient scanning of nonvolatile memory blocks
CN104615909B (zh) 2015-02-02 2018-02-13 天津大学 基于FPGA的Izhikevich神经元网络同步放电仿真平台
CN105990367B (zh) 2015-02-27 2019-03-12 硅存储技术公司 具有rom单元的非易失性存储器单元阵列
US10650308B2 (en) * 2015-09-23 2020-05-12 Politecnico Di Milano Electronic neuromorphic system, synaptic circuit with resistive switching memory and method of performing spike-timing dependent plasticity
US10325006B2 (en) * 2015-09-29 2019-06-18 International Business Machines Corporation Scalable architecture for analog matrix operations with resistive devices
US10509999B2 (en) * 2015-12-30 2019-12-17 SK Hynix Inc. Neuromorphic device including post-synaptic neurons having a comparator for deciding quasi- learned synapses
US10698975B2 (en) 2016-01-27 2020-06-30 Hewlett Packard Enterprise Development Lp In situ transposition
US20170330070A1 (en) 2016-02-28 2017-11-16 Purdue Research Foundation Spin orbit torque based electronic neuron
US10269440B2 (en) 2016-05-17 2019-04-23 Silicon Storage Technology, Inc. Flash memory array with individual memory cell read, program and erase
WO2017200850A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Array of three-gate flash memory cells with individual memory cell read, program and erase
CN107425003B (zh) 2016-05-18 2020-07-14 硅存储技术公司 制造分裂栅非易失性闪存单元的方法
US9910827B2 (en) 2016-07-01 2018-03-06 Hewlett Packard Enterprise Development Lp Vector-matrix multiplications involving negative values
US10043573B2 (en) * 2016-08-04 2018-08-07 Intel Corporation Apparatus and method for endurance friendly programming using lower voltage thresholds
US10346347B2 (en) 2016-10-03 2019-07-09 The Regents Of The University Of Michigan Field-programmable crossbar array for reconfigurable computing
CN110574043B (zh) 2016-12-09 2023-09-15 许富菖 三维神经网络阵列
US10860923B2 (en) * 2016-12-20 2020-12-08 Samsung Electronics Co., Ltd. High-density neuromorphic computing element
JP6906058B2 (ja) 2017-02-24 2021-07-21 エーエスエムエル ネザーランズ ビー.ブイ. 機械学習によるプロセスモデルの決定方法
US10748059B2 (en) 2017-04-05 2020-08-18 International Business Machines Corporation Architecture for an electrochemical artificial neural network
US20200050099A1 (en) 2017-05-26 2020-02-13 Asml Netherlands B.V. Assist feature placement based on machine learning
US10460817B2 (en) 2017-07-13 2019-10-29 Qualcomm Incorporated Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors
US10482929B2 (en) 2017-07-13 2019-11-19 Qualcomm Incorporated Non-volative (NV) memory (NVM) matrix circuits employing NVM matrix circuits for performing matrix computations
US10580492B2 (en) 2017-09-15 2020-03-03 Silicon Storage Technology, Inc. System and method for implementing configurable convoluted neural networks with flash memories
CN109522753B (zh) 2017-09-18 2020-11-06 清华大学 电路结构及其驱动方法、芯片及其认证方法、电子设备
US10303998B2 (en) * 2017-09-28 2019-05-28 International Business Machines Corporation Floating gate for neural network inference
US11354562B2 (en) 2018-01-03 2022-06-07 Silicon Storage Technology, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
US10552510B2 (en) 2018-01-11 2020-02-04 Mentium Technologies Inc. Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays
US10740181B2 (en) 2018-03-06 2020-08-11 Western Digital Technologies, Inc. Failed storage device rebuild method
US10496374B2 (en) 2018-03-22 2019-12-03 Hewlett Packard Enterprise Development Lp Crossbar array operations using ALU modified signals
US10522226B2 (en) * 2018-05-01 2019-12-31 Silicon Storage Technology, Inc. Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network
US10217512B1 (en) * 2018-05-15 2019-02-26 International Business Machines Corporation Unit cell with floating gate MOSFET for analog memory
US10692570B2 (en) 2018-07-11 2020-06-23 Sandisk Technologies Llc Neural network matrix multiplication in memory cells
US10534840B1 (en) * 2018-08-08 2020-01-14 Sandisk Technologies Llc Multiplication using non-volatile memory cells
US11061646B2 (en) 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
US10891222B2 (en) 2018-12-24 2021-01-12 Macronix International Co., Ltd. Memory storage device and operation method thereof for implementing inner product operation
US10741611B1 (en) * 2019-02-11 2020-08-11 International Business Machines Corporation Resistive processing units with complementary metal-oxide-semiconductor non-volatile analog memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080065832A (ko) * 2007-01-10 2008-07-15 삼성전자주식회사 프로그램 에러를 감소시킬 수 있는 멀티 비트 플래시메모리 장치의 프로그램 방법
KR20100101694A (ko) * 2007-02-20 2010-09-17 샌디스크 코포레이션 비휘발성 저장소자를 위한 가변 프로그램
KR20080084230A (ko) * 2007-03-15 2008-09-19 삼성전자주식회사 셀 사이의 커플링에 의한 영향을 감소시킨 플래시 메모리장치 및 그 구동방법
KR20120062818A (ko) * 2009-08-25 2012-06-14 마이크론 테크놀로지, 인크. 메모리 디바이스들에서 임계 전압 변화를 처리하는 방법들, 디바이스들, 및 시스템들
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US10720217B1 (en) * 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use

Also Published As

Publication number Publication date
TW202042118A (zh) 2020-11-16
WO2020159580A1 (en) 2020-08-06
EP3918533A1 (en) 2021-12-08
CN113366505A (zh) 2021-09-07
US10720217B1 (en) 2020-07-21
EP3918533B1 (en) 2022-11-23
KR20210110354A (ko) 2021-09-07
EP3918534A1 (en) 2021-12-08
EP3918534B1 (en) 2024-02-21
US20200242453A1 (en) 2020-07-30
JP2022519041A (ja) 2022-03-18
TW202042117A (zh) 2020-11-16
JP7314286B2 (ja) 2023-07-25
CN113366506A (zh) 2021-09-07
CN113366505B (zh) 2022-10-18
US20200243139A1 (en) 2020-07-30
WO2020159581A1 (en) 2020-08-06
US11270771B2 (en) 2022-03-08
JP2022514111A (ja) 2022-02-09
CN115511068A (zh) 2022-12-23
TWI732414B (zh) 2021-07-01
TWI705390B (zh) 2020-09-21
KR102407363B1 (ko) 2022-06-10
KR102607530B1 (ko) 2023-11-29
JP7008167B1 (ja) 2022-01-25

Similar Documents

Publication Publication Date Title
US11853856B2 (en) Programming methods for neural network using non-volatile memory array
US10748630B2 (en) High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
KR102407363B1 (ko) 사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법
KR102350215B1 (ko) 2-게이트 비휘발성 메모리 셀들의 어레이를 이용하는 신경망 분류기
US20190237142A1 (en) Neural Network Classifier Using Array Of Four-Gate Non-volatile Memory Cells
KR102350213B1 (ko) 4-게이트 비휘발성 메모리 셀들의 어레이를 사용하는 신경 네트워크 분류기
US12033692B2 (en) Neural network classifier using array of three-gate non-volatile memory cells

Legal Events

Date Code Title Description
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