KR20220143076A - 딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝 - Google Patents

딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝 Download PDF

Info

Publication number
KR20220143076A
KR20220143076A KR1020227031893A KR20227031893A KR20220143076A KR 20220143076 A KR20220143076 A KR 20220143076A KR 1020227031893 A KR1020227031893 A KR 1020227031893A KR 20227031893 A KR20227031893 A KR 20227031893A KR 20220143076 A KR20220143076 A KR 20220143076A
Authority
KR
South Korea
Prior art keywords
memory cell
programming
cell
voltage
tuning
Prior art date
Application number
KR1020227031893A
Other languages
English (en)
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 KR20220143076A publication Critical patent/KR20220143076A/ko

Links

Images

Classifications

    • 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
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • G06N3/0454
    • G06N3/0481
    • 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/0635
    • 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/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
    • 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
    • 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
    • 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/10Programming or data input circuits
    • G11C16/12Programming voltage switching 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed 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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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
    • 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/048Activation functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/02Structural aspects of erasable programmable read-only memories
    • G11C2216/08Nonvolatile memory wherein data storage is accomplished by storing relatively few electrons in the storage layer, i.e. single electron memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Image Analysis (AREA)
  • Networks Using Active Elements (AREA)
  • Control Of Amplification And Gain Control (AREA)
  • Semiconductor Memories (AREA)

Abstract

신경 메모리에서 선택된 메모리 셀의 초정밀 튜닝. 선택된 메모리 셀은 거친 프로그래밍 및 미세 프로그래밍 방법을 사용하여 먼저 프로그램된다. 이어서, 선택된 메모리 셀은 인접한 메모리 셀의 프로그래밍을 통해 초정밀 프로그래밍을 겪는다. 인접한 메모리 셀이 프로그래밍됨에 따라, 인접한 메모리 셀의 플로팅 게이트 및 선택된 메모리 셀의 플로팅 게이트 사이의 용량성 커플링은 선택된 메모리 셀의 플로팅 게이트의 전압이 증가하게 할 것이지만, 선택된 메모리 셀을 직접 프로그래밍함으로써 달성될 수 있는 것보다 더 작은 증분을 야기할 것이다. 이러한 방식으로, 선택된 메모리 셀은 초정밀 그라데이션으로 프로그램될 수 있다.

Description

딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝
우선권 주장
본 출원은 2020년 2월 26일에 "딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝"이라는 명칭으로 출원된 미국 특허 가출원 제62/981,757호 및 2020년 8월 4일에 "딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝"이라는 명칭으로 출원된 미국 특허 출원 제16/985,147호에 대한 우선권을 주장한다.
기술분야
아날로그 신경 메모리에서 선택된 비휘발성 메모리 셀의 초정밀 튜닝을 위한 실시예가 개시된다.
인공 신경망은 생물학적 신경망(동물의 중추신경계, 특히 뇌)을 모방하며, 다수의 입력에 의존할 수 있고 일반적으로 알려져 있지 않은 함수를 추정하거나 근사화하는 데 이용된다. 인공 신경망은, 일반적으로, 서로 메시지를 교환하는 상호 접속된 "뉴런(neuron)"의 층을 포함한다.
도 1은 인공 신경망을 예시하며, 여기서 원은 뉴런의 층 또는 입력을 나타낸다. 연접부(시냅스(synapse)로 지칭됨)는 화살표로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치를 갖는다. 이것은 인공 신경망을 입력에 적응할 수 있게 하고 학습할 수 있게 한다. 통상적으로, 인공 신경망은 다수의 입력의 층을 포함한다. 통상적으로 뉴런의 하나 이상의 중간 층, 및 신경망의 출력을 제공하는 뉴런의 출력 층이 있다. 각각의 레벨의 뉴런은 개별적으로 또는 집합적으로 시냅스로부터의 수신된 데이터에 기초하여 결정을 행한다.
고성능 정보 처리를 위한 인공 신경망의 개발에서의 주요 과제 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 인공 신경망은 매우 많은 수의 시냅스에 의존하여, 뉴런 사이의 높은 접속성, 즉 매우 높은 계산 병렬성(computational parallelism)을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터 또는 특수 그래픽 처리 유닛 클러스터로 달성될 수 있다. 그러나, 고비용에 더하여, 이들 접근법은 또한 주로 저-정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 망(biological network)과 비교하여 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로가 인공 신경망에 사용되어 왔지만, 대부분의 CMOS-구현된 시냅스는 많은 수의 뉴런 및 시냅스를 고려해 볼 때 너무 부피가 컸다.
출원인은, 참고로 포함되는, 미국 특허 공개 제2017/0337466호로서 공개된, 미국 특허 출원 제15/594,439호에서 하나 이상의 비휘발성 메모리 어레이를 시냅스로서 이용하는 인공 (아날로그) 신경망을 이전에 개시하였다. 비휘발성 메모리 어레이는 아날로그 뉴로모픽 메모리(analog neuromorphic memory)로서 동작한다. 본원에서 사용된 바와 같은, 용어 '뉴로모픽'은 신경계의 모델을 구현하는 회로부를 의미한다. 아날로그 뉴로모픽 메모리는 제1 복수의 입력을 수신하고 그로부터 제1 복수의 출력을 생성하도록 구성된 제1 복수의 시냅스, 및 제1 복수의 출력을 수신하도록 구성된 제1 복수의 뉴런을 포함한다. 제1 복수의 시냅스는 복수의 메모리 셀을 포함하는데, 여기서 메모리 셀 각각은 반도체 기판 내에 형성되고 채널 영역이 사이에 연장되는 이격된 소스 영역과 드레인 영역, 채널 영역의 제1 부분 위에 배치되고 그로부터 절연되는 플로팅 게이트, 및 채널 영역의 제2 부분 위에 배치되고 그로부터 절연되는 비-플로팅 게이트를 포함한다. 복수의 메모리 셀 각각은 플로팅 게이트 상의 전자의 수에 대응하는 가중치 값을 저장하도록 구성된다. 복수의 메모리 셀은 제1 복수의 입력을 저장된 가중치 값과 승산하여 제1 복수의 출력을 생성하도록 구성된다. 이러한 방식으로 배열된 메모리 셀의 어레이는 VMM(vector by matrix multiplication) 어레이로 지칭될 수 있다.
비휘발성 메모리 셀
다양한 유형의 공지된 비휘발성 메모리 셀이 VMM 어레이에서 사용될 수 있다. 예를 들어, 본원에 참고로 포함되는, 미국 특허 제5,029,130호("'130 특허")는 플래시 메모리 셀의 한 유형인, 분리형 게이트 비휘발성 메모리 셀의 어레이를 개시하고 있다. 그러한 메모리 셀(210)이 도 2에 도시되어 있다. 각각의 메모리 셀(210)은 반도체 기판(12) 내에 형성된 소스 영역(14) 및 드레인 영역(16)을 포함하며, 그 영역 사이에 채널 영역(18)이 있다. 플로팅 게이트(20)가 소스 영역(14)의 일부분 위에, 그리고 채널 영역(18)의 제1 부분 위에 형성되고 그로부터 절연된다(그리고 그의 전도율을 제어한다). 워드 라인 단자(22)(통상적으로 워드 라인에 결합됨)가 채널 영역(18)의 제2 부분 위에 배치되고 그로부터 절연되는(그리고 그의 전도율을 제어하는) 제1 부분, 및 위쪽으로 그리고 플로팅 게이트(20) 위로 연장되는 제2 부분을 갖는다. 플로팅 게이트(20) 및 워드 라인 단자(22)는 게이트 산화물에 의해 기판(12)으로부터 절연된다. 비트 라인 단자(24)가 드레인 영역(16)에 결합된다.
메모리 셀(210)은 워드 라인 단자(22) 상에 높은 양전압을 배치함으로써 소거되는데(여기서 전자가 플로팅 게이트로부터 제거됨), 이는 플로팅 게이트(20) 상의 전자가 파울러-노드하임 터널링(Fowler-Nordheim tunneling)을 통해 중간 절연체를 통과하여 플로팅 게이트(20)로부터 워드 라인 단자(22)로 터널링하게 한다.
메모리 셀(210)은 워드 라인 단자(22) 상에 양전압을, 그리고 소스 영역(14) 상에 양전압을 배치함으로써 프로그램된다(여기서 전자가 플로팅 게이트 상에 배치됨). 전자 전류는 드레인 영역(16)으로부터 소스 영역(14)(소스 라인 단자)을 향해 흐를 것이다. 전자는 그들이 워드 라인 단자(22)와 플로팅 게이트(20) 사이의 갭에 도달할 때 가속되고 가열될 것이다. 가열된 전자 중 일부는 플로팅 게이트(20)로부터의 정전 인력으로 인해 게이트 산화물을 통과하여 플로팅 게이트(20) 상으로 주입될 것이다.
메모리 셀(210)은 드레인 영역(16) 및 워드 라인 단자(22) 상에 포지티브 판독 전압을 배치함(이는 워드 라인 단자 아래의 채널 영역(18)의 부분을 턴온시킴)으로써 판독된다. 플로팅 게이트(20)가 포지티브로 대전되면(즉, 전자가 소거되면), 플로팅 게이트(20) 아래의 채널 영역(18)의 부분이 또한 턴온되고, 전류가 채널 영역(18)을 가로질러 흐를 것이며, 이는 소거된 또는 "1" 상태로 감지된다. 플로팅 게이트(20)가 네거티브로 대전되면(즉, 전자로 프로그래밍되면), 플로팅 게이트(20) 아래의 채널 영역의 부분은 대부분 또는 완전히 턴오프되고, 전류가 채널 영역(18)을 가로질러 흐르지 않을 것이며(또는 흐름이 거의 없을 것이며), 이는 프로그래밍된 또는 "0" 상태로 감지된다.
표 1은 판독, 소거, 및 프로그램 동작을 수행하기 위해 메모리 셀(110)의 단자에 인가될 수 있는 통상적인 전압 범위를 보여준다:
[표 1]
Figure pct00001
"판독 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]
Figure pct00002
"판독 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]
Figure pct00003
"판독 1"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독 2"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다.
도 7은 플래시 메모리 셀의 다른 유형인 적층형 게이트 메모리 셀(710)을 도시한다. 메모리 셀(710)은, 절연 층(도시되지 않음)에 의해 분리되어, 플로팅 게이트(20)가 전체 채널 영역(18) 위로 연장되고, 제어 게이트 단자(22)(여기서 워드 라인에 결합될 것임)가 플로팅 게이트(20) 위로 연장된다는 점을 제외하고는, 도 2의 메모리 셀(210)과 유사하다. 프로그래밍은 채널(18)로부터 채널 영역의 플로팅 게이트(20)로 그 다음 드레인 영역(16)으로 고온 전자 주입을 사용하여 수행되고, 소거는 플로팅 게이트(20)부터 기판(12)으로의 파울러-노드하임 전자 터널링을 사용하여 수행된다. 판독 동작은 메모리 셀(210)에 대해 이전에 설명된 것과 유사한 방식으로 동작한다.
표 4는 판독, 소거, 및 프로그램 동작을 수행하기 위해 기판(12) 및 메모리 셀(710)의 단자에 인가될 수 있는 통상적인 전압 범위를 보여준다:
[표 4]
Figure pct00004
"판독 1"은 셀 전류가 비트 라인 상에서 출력되는 판독 모드이다. "판독 2"는 셀 전류가 소스 라인 단자 상에서 출력되는 판독 모드이다. 선택적으로, 메모리 셀(210, 310, 410, 510, 610, 또는 710)의 로우(row) 및 칼럼(column)을 포함하는 어레이에서, 소스 라인은 메모리 셀의 하나의 로우에 또는 메모리 셀의 2개의 인접한 로우에 결합될 수 있다. 즉, 소스 라인 단자는 메모리 셀의 인접한 로우에 의해 공유될 수 있다.
도 8는 트윈 분리형 게이트 메모리 셀(810)을 도시한다. 트윈 분리형 게이트 메모리 셀(810)은 한 쌍의 메모리 셀(왼쪽에 A 및 오른쪽에 B)을 포함하며, 여기서 각각의 메모리 셀은 기판(12) 위에 배치되면서 그로부터 절연되는 플로팅 게이트(FGA, FGB)(20), 플로팅 게이트(20) 위에 배치되면서 그로부터 절연되는 제어 게이트(CGA, CGB)(28), 플로팅 및 제어 게이트(20/28)에 인접하게 배치되면서 그들로부터 절연되고 기판(12) 위에 배치되면서 그로부터 절연되는 소거 게이트(30)(EG) (소거 게이트는 T자 형상으로 생성되어, 각각의 제어 게이트(CGA, CGB)의 상단 코너가 T자형 소거 게이트의 각자의 내측 코너에 대면하게 되어 소거 효율을 개선함), 및 비트 라인 콘택트(24)(BLA, BLB)로 각자의 드레인 확산 영역(16)(DRA, DRB)에 접속된 플로팅 게이트(20)에 인접한 기판 내의 드레인 영역(16)(DRA, DRB)을 포함한다. 메모리 셀은 공통 소거 게이트(30)를 공유하는 메모리 셀의 쌍으로 형성된다. 이러한 셀 설계는, 적어도 소거 게이트(EG) 아래에 소스 영역이 없고, 선택 게이트(워드 라인으로도 지칭됨)가 없고, 각각의 메모리 셀에 대한 채널 영역이 없다는 점에서, 도 2 내지 도 7을 참조하여 위에서 논의된 해당 메모리 셀과는 상이하다. 대신, 단일 연속 채널 영역(18)이 양측의 메모리 셀 아래에서 연장된다(즉, 하나의 메모리 셀의 드레인 영역(16)으로부터 다른 메모리 셀의 드레인 영역(16)으로 연장된다). 하나의 메모리 셀을 판독 또는 프로그래밍하기 위해, 다른 메모리 셀의 제어 게이트(28)는 하부 채널 영역 부분을 그들 사이의 플로팅 게이트(20)와의 전압 커플링을 통해 턴온시키도록 충분한 전압으로 상승된다(예컨대, 셀(A)을 판독 또는 프로그래밍하기 위해, FGB 상의 전압은 CGB로부터의 전압 커플링을 통해 상승되어, FGB 아래의 채널 영역 부분을 턴온시킨다). 소거는 플로팅 게이트(20A) 및/또는 플로팅 게이트(20B)로부터 소거 게이트(30)로 파울러 노드하임 전자 터널링을 사용하여 수행된다. 프로그래밍은 채널(18)로부터 플로팅 게이트(20A 또는 20B)로의 고온 전자 주입을 사용하여 수행된다.
표 5은 판독, 소거, 및 프로그램 동작을 수행하기 위해 메모리 셀(810)의 단자에 인가될 수 있는 통상적인 전압 범위를 보여준다: 셀 A (FG, CGA, BLA)는 판독, 프로그램, 및 소거 동작을 위해 선택된다
[표 5]
Figure pct00005
인공 신경망에서 위에서 설명된 비휘발성 메모리 셀의 유형 중 하나를 포함하는 메모리 어레이를 이용하기 위해, 일 실시예에서, 두 가지 수정이 이루어진다. 첫째, 라인은, 하기에서 추가로 설명되는 바와 같이, 각각의 메모리 셀이 어레이 내의 다른 메모리 셀의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그래밍, 소거, 및 판독될 수 있도록 구성된다. 둘째, 메모리 셀의 연속적인(아날로그) 프로그래밍이 제공된다.
구체적으로, 어레이 내의 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀의 교란을 최소화시킨 상태로, 완전 소거된 상태로부터 완전 프로그래밍된 상태로 연속적으로 변경될 수 있다. 다른 실시예에서, 어레이에서 각각의 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적으로 그리고 다른 메모리 셀의 교란을 최소화시킨 상태로, 완전 프로그래밍된 상태로부터 완전 소거된 상태로 또는 완전 소거된 상태에서 완전 프로그래밍된 상태로 연속적으로 변경될 수 있다. 이것은 셀 저장소가 아날로그이거나 또는 적어도 많은 이산 값(예컨대 16개 또는 256개의 상이한 값) 중 하나를 저장할 수 있음을 의미하는데, 이는 메모리 어레이에서 모든 셀의 매우 정밀하고 개별적인 튜닝(셀을 타깃 값으로 프로그래밍 또는 소거하는 것을 의미)을 허용하고, 메모리 어레이를 신경망의 미세하게 튜닝된 시냅스 가중치를 저장하고 만드는 데 이상적이게 한다.
본원에 설명된 방법 및 수단은, 제한 없이, FINFET 분리형 게이트 플래시 또는 스택형 게이트 플래시, SONOS(silicon-oxide-nitride-oxide-silicon, 질화물 내의 전하 트랩), MONOS(metal-oxide-nitride-oxide-silicon, 질화물 내의 금속 전하 트랩), ReRAM(저항 램), PCM(상 변화 메모리), MRAM(자기 램), FeRAM(강유전성 램), OTP(2-레벨 또는 다중 레벨 1회 프로그래밍 가능), 및 CeRAM(상관 전자 램)과 같은 다른 비휘발성 메모리 기술에 적용될 수 있다. 본원에 설명된 방법 및 수단은, 제한 없이, SRAM, DRAM, 및 다른 휘발성 시냅스 셀과 같은 신경망에 대해 사용되는 휘발성 메모리 기술에 적용될 수 있다.
비휘발성 메모리 셀 어레이를 채용한 신경망
도 9는 본 실시예의 비휘발성 메모리 어레이를 활용하는 신경망의 비제한적인 예를 개념적으로 예시한다. 이 예는 안면 인식 애플리케이션에 대해 비휘발성 메모리 어레이 신경망을 이용하지만, 비휘발성 메모리 어레이 기반 신경망을 이용하여 임의의 다른 적절한 애플리케이션이 구현될 수 있다.
S0은, 이 예에 대해, 5 비트 정밀도를 갖는 32x32 픽셀 RGB 이미지(즉, 각각의 색상 R, G 및 B에 대해 하나씩인 3개의 32x32 픽셀 어레이, 각각의 픽셀은 5 비트 정밀도임)인 입력 층이다. 입력 층(S0)으로부터 층(C1)으로 가는 시냅스(CB1)는 몇몇 예에서 가중치 및 다른 예에서 공유 가중치의 상이한 세트를 적용하며, 입력 이미지를 3x3 픽셀 중첩 필터(커널(kernel))로 스캔하여, 필터를 1 픽셀(또는 모델별로 지시되는 바와 같이 1 초과 픽셀)만큼 시프트시킨다. 구체적으로, 이미지의 3x3 부분 내의 9개 픽셀(즉, 필터 또는 커널로 지칭됨)에 대한 값이 시냅스(CB1)에 제공되며, 여기서 이들 9개의 입력 값이 적절한 가중치와 승산되고, 그 승산의 출력을 합산한 후, 단일 출력 값이 결정되고, 층(C1)의 피처 맵(feature map) 중 하나의 픽셀을 생성하기 위해 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)(풀링(pooling))가 층(C1)으로부터 층(S1)으로 가기 전에 적용되는데, 이는 각각의 피처 맵 내의 연속적인 비중첩 2x2 영역으로부터의 값을 풀링한다. 풀링 함수(P1)의 목적은, 예를 들어 에지 위치의 의존성을 감소시키고 다음 스테이지로 가기 전에 데이터 크기를 감소시키기 위해 인근 위치를 평균하는 것이다(또는 최대 함수가 또한 사용될 수 있음). 층(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개 뉴런을 포함하고, 여기서 최고 출력 뉴런이 클래스를 결정한다. 이러한 출력은, 예를 들어, 원래의 이미지의 내용의 식별 또는 분류를 나타낼 수 있다.
시냅스의 각각의 층은 비휘발성 메모리 셀의 어레이 또는 그들의 어레이의 일부를 사용하여 구현된다.
도 10는 해당 목적을 위해 사용될 수 있는 시스템의 블록도이다. VMM 시스템(32)은 비휘발성 메모리 셀을 포함하고, 하나의 층과 다음 층 사이에서 시냅스(예컨대, 도 6의 CB1, CB2, CB3, 및 CB4)로서 이용된다. 구체적으로, VMM 시스템(32)은 로우 및 칼럼으로 배열된 비휘발성 메모리 셀을 포함하는 VMM 어레이(33), 소거 게이트 및 워드 라인 게이트 디코더(34), 제어 게이트 디코더(35), 비트 라인 디코더(36) 및 소스 라인 디코더(37)를 포함하며, 이들은 VMM 어레이(33)에 대한 각자의 입력을 디코딩한다. VMM 어레이(33)로의 입력은 소거 게이트 및 워드 라인 게이트 디코더(34)로부터 또는 제어 게이트 디코더(35)로부터일 수 있다. 이 예에서의 소스 라인 디코더(37)는 또한 VMM 어레이(33)의 출력을 디코딩한다. 대안적으로, 비트 라인 디코더(36)는 VMM 어레이(33)의 출력을 디코딩할 수 있다.
비휘발성 메모리 셀 어레이(33)는 두 가지 목적을 담당한다. 첫째, 그것은 VMM 시스템(32)에 의해 사용될 가중치를 저장한다. 둘째, 비휘발성 메모리 셀 어레이(33)는 입력을 VMM 어레이(33)에 저장된 가중치와 효과적으로 승산하고 이들을 출력 라인(소스 라인 또는 비트 라인)마다 가산하여 출력을 생성하며, 이는 다음 층에 대한 입력 또는 최종 층에 대한 입력일 것이다. 승산 및 가산 함수를 수행함으로써, VMM 어레이(33)는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 그의 인시투(in-situ) 메모리 계산으로 인해 전력 효율적이다.
VMM 어레이(33)의 출력은 차동 합산기(예컨대, 합산 연산 증폭기 또는 합산 전류 미러)(38)에 공급되고, 이는 VMM 어레이(33)의 출력을 합산하여 그 콘볼루션(convolution)에 대한 단일 값을 생성한다. 차동 합산기(38)는 포지티브 가중치 및 네거티브 가중치 입력 둘 모두의 합산을 수행하여 단일 값을 출력하도록 배열된다.
이어서 차동 합산기(38)의 합산된 출력 값은 활성화 함수 회로(39)에 공급되며, 이는 출력을 정류한다. 활성화 함수 회로(39)는 시그모이드(sigmoid) 함수, tanh 함수, ReLU 함수, 또는 임의의 다른 비선형 함수를 제공할 수 있다. 활성화 함수 회로(39)의 정류된 출력 값은 다음 층(예를 들어, 도 8의 C1)의 피처 맵의 요소가 되고, 이어서 다음 시냅스에 적용되어 다음 피처 맵 층 또는 최종 층을 생성한다. 따라서, 이 예에서, VMM 어레이(33)는 복수의 시냅스(이들은 이전 뉴런 층으로부터 또는 이미지 데이터베이스와 같은 입력 층으로부터 그들의 입력을 수신함)를 구성하고, 합산기(38) 및 활성화 함수 회로(39)는 복수의 뉴런을 구성한다.
도 10의 VMM 시스템(32)에의 입력(WLx, EGx, CGx, 및 선택적으로 BLx 및 SLx)은 아날로그 레벨, 이진 레벨, 디지털 펄스(이 경우에 펄스를 적절한 입력 아날로그 레벨로 변환하기 위해 펄스-아날로그 변환기(PAC)가 필요할 수 있음) 또는 디지털 비트(이 경우에 디지털 비트를 적절한 입력 아날로그 레벨로 변환하기 위해 DAC가 제공됨)일 수 있고, 출력은 아날로그 레벨(예를 들어, 전류, 전압, 또는 전하), 이진 레벨, 디지털 펄스, 또는 디지털 비트(이 경우에 출력 아날로그 레벨을 디지털 비트로 변환하기 위해 출력 ADC가 제공됨)일 수 있다.
도 11은, 여기서 VMM 시스템(32a, 32b, 32c, 32d, 및 32e)으로 라벨링된, VMM 시스템(32)의 다수의 층의 사용을 도시하는 블록도이다. 도 11에 도시된 바와 같이, Inputx로 표시된 입력은 디지털-아날로그 변환기(31)에 의해 디지털로부터 아날로그로 변환되고, 입력 VMM 시스템(32a)에 제공된다. 변환된 아날로그 입력은 전압 또는 전류일 수 있다. 제1 층에 대한 입력 D/A 변환은, 입력(Inputx)을 입력 VMM 시스템(32a)의 매트릭스 승산기에 대한 적절한 아날로그 레벨에 매핑시키는 함수 또는 LUT(look up table)를 사용함으로써 행해질 수 있다. 입력 변환은 또한, 외부 아날로그 입력을 입력 VMM 시스템(32a)으로의 매핑된 아날로그 입력으로 변환하기 위한 아날로그-아날로그(A/A) 변환기에 의해 행해질 수 있다. 입력 변환은 또한 외부 디지털 입력을 입력 VMM 시스템(32a)에 대한 매핑된 디지털 펄스 또는 펄스들로 변환하기 위해 디지털-디지털 펄스(D/P) 변환기에 의해 행해질 수 있다.
입력 VMM 시스템(32a)에 의해 생성된 출력은 다음 VMM 시스템(은닉 레벨 1)(32b)에 대한 입력으로서 제공되고, 이는 이어서 다음 VMM 시스템(은닉 레벨 2)(32c)에 대한 입력으로서 제공되는 출력을 생성하고, 등등이다. VMM 시스템(32)의 다양한 층은 컨볼루션 신경망(convolutional neural network, CNN)의 시냅스 및 뉴런의 상이한 층으로 기능한다. 각각의 VMM 시스템(32a, 32b, 32c, 32d, 및 32e)은 각자의 비휘발성 메모리 어레이를 포함하는 독립형의, 물리적 시스템일 수 있거나, 또는 다수의 VMM 시스템이 동일한 물리적 비휘발성 메모리 어레이의 상이한 부분을 이용할 수 있거나, 또는 다수의 VMM 시스템이 동일한 물리적 비휘발성 메모리 어레이의 중첩 부분을 이용할 수 있다. 각각의 VMM 시스템(32a, 32b, 32c, 32d, 및 32e)은 또한 그의 어레이 또는 뉴런의 다양한 부분에 대해 시간 다중화될 수 있다. 도 11에 도시된 예는 다음과 같은 5개의 층(32a, 32b, 32c, 32d, 32e)을 포함한다: 하나의 입력 층(32a), 2개의 은닉 층(32b, 32c) 및 2개의 완전히 접속된 층(32d, 32e). 당업자는 이것은 단지 예시적인 것이고 시스템이 대신에 2개 초과의 은닉 층 및 2개 초과의 완전히 접속된 층을 포함할 수 있다는 것을 인식할 것이다.
VMM 어레이에서 사용되는 각각의 비휘발성 메모리 셀은 플로팅 게이트에서 매우 특정적이고 정확한 양의 전하를, 즉 전자의 수를 보유하도록 소거되고 프로그래밍되어야 한다. 예를 들어, 각각의 플로팅 게이트는 N개의 상이한 값 중 하나를 보유해야 하며, 여기서 N은 각각의 셀에 의해 표시될 수 있는 상이한 가중치의 수이다. N의 예는 16, 32, 64, 128 및 256을 포함한다. 하나의 난제는 선택한 셀을 N개의 상이한 값에 대해 요구되는 정밀도와 입도(granularity)를 가지고 프로그래밍하는 능력이다. 예를 들어, 선택된 셀이 128개의 상이한 값 중 하나를 포함할 수 있다면, 프로그램 동작에서 극도의 정밀도가 요구된다.
필요한 것은 아날로그 뉴로모픽 메모리에서 VMM 어레이와 함께 사용하기에 적합한 개선된 프로그래밍 시스템 및 방법이다.
선택된 메모리 셀의 초정밀 튜닝을 위한 실시예가 개시된다. 선택된 메모리 셀은 먼저 거친(coarse) 프로그래밍 및 미세 프로그래밍 방법을 사용하여 선택적으로 프로그램된다. 이어서, 선택된 메모리 셀은 인접한 메모리 셀의 프로그래밍을 통해 초정밀 (초미세) 프로그래밍을 겪는다. 인접한 메모리 셀이 프로그래밍됨에 따라, 인접한 메모리 셀의 플로팅 게이트 및 선택된 메모리 셀의 플로팅 게이트 사이의 용량성 커플링은 선택된 메모리 셀의 플로팅 게이트의 전압이 증가하게 할 것이지만, 선택된 메모리 셀을 직접 프로그래밍함으로써 달성될 수 있는 것보다 더 작은 증분을 야기할 것이다. 이러한 방식으로, 선택된 메모리 셀은 프로그래밍 펄스마다 선택된 메모리 셀의 플로팅 게이트에 추가되는 서브-단일 전자 정밀도(분수 전자 정밀도)에 대응하는 방식으로 초정밀 그라데이션으로 프로그램될 수 있다.
일 실시예에서, 신경 메모리의 선택된 메모리 셀을 타깃 값으로 프로그래밍하는 방법이 개시되며, 선택된 메모리 셀의 단자에 제1 전압 시퀀스를 인가함으로써, 선택된 메모리 셀의 플로팅 게이트를 제1 전압으로 프로그래밍하는 단계; 및 인접한 튜닝 셀의 단자에 제2 전압 시퀀스를 인가함으로써 선택된 메모리 셀의 플로팅 게이트와 인접 튜닝 셀의 플로팅 게이트 사이의 용량성 커플링을 통해 선택된 메모리 셀의 플로팅 게이트를 제2 전압으로 프로그래밍하는 단계를 포함하고, 여기서 제2 전압은 타깃 값에 대응한다.
도 1은 종래 기술의 인공 신경망을 도시한다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 7은 종래 기술의 적층형 게이트 플래시 메모리 셀을 도시한다.
도 8은 종래 기술의 트윈 분리형 게이트 플래시 메모리 셀을 도시한다.
도 9는 하나 이상의 비휘발성 메모리 어레이를 활용하는 상이한 레벨의 예시적인 인공 신경망을 도시한다.
도 10은 벡터x매트릭스 승산 시스템을 도시한다.
도 11은 하나 이상의 벡터x매트릭스 승산 시스템을 활용하는 예시적인 인공 신경망을 도시한다.
도 12는 VMM 시스템의 일 실시예를 도시한다.
도 13a는 비휘발성 메모리 셀을 프로그래밍하는 방법의 일 실시예를 도시한다.
도 13b는 비휘발성 메모리 셀을 프로그래밍하는 방법의 다른 실시예를 도시한다.
도 14는 거친 프로그래밍 방법의 실시예를 도시한다.
도 15는 비휘발성 메모리 셀의 프로그래밍에서 사용되는 예시적인 펄스를 도시한다.
도 16은 비휘발성 메모리 셀의 프로그래밍에서 사용되는 예시적인 펄스를 도시한다.
도 17은 셀의 기울기 특성에 기초하여 프로그래밍 파라미터를 조정하는 비휘발성 메모리 셀의 프로그래밍을 위한 교정 알고리즘을 도시한다.
도 18은 비휘발성 메모리 셀의 프로그래밍을 위한 교정 알고리즘을 도시한다.
도 19는 비휘발성 메모리 셀의 프로그래밍을 위한 교정 알고리즘을 도시한다.
도 20은 프로그래밍 펄스의 시퀀스 동안 선택된 메모리 셀의 플로팅 게이트 전압을 도시한다.
도 21은 초정밀 프로그래밍이 가능한 VMM 어레이를 도시한다.
도 22는 도 21의 VMM 어레이에 대한 셀 레이아웃을 도시한다.
도 23은 초정밀 프로그래밍이 가능한 VMM 어레이를 도시하며, 여기서 특정 칼럼은 양의 값(W)을 포함하고, 특정 칼럼은 음의 값(W-)을 포함한다.
도 24는 프로그래밍 펄스의 시퀀스 동안 선택된 메모리 셀의 플로팅 게이트 전압을 도시한다.
도 25a는 초정밀 프로그래밍이 가능한 VMM 어레이를 도시하며, 여기서 인접한 셀은 함께 판독되어 노이즈를 감소시킨다.
도 25b는 감지 증폭기에 의해 함께 판독된 인접한 셀의 개략도를 도시한다.
도 26은 초정밀 프로그래밍 방법을 도시한다.
도 27은 다른 초정밀 프로그래밍 방법을 도시한다.
도 28은 프로그래밍 펄스의 시퀀스 동안 선택된 메모리 셀 및 인접한 튜닝 셀의 플로팅 게이트 전압을 도시한다.
도 12는 VMM 시스템(1200)의 블록도를 도시한다. VMM 시스템(1200)은 VMM 어레이(1201), 로우 디코더(1202), 고전압 디코더(1203), 칼럼 디코더(1204), 비트 라인 드라이버(1205), 입력 회로(1206), 출력 회로(1207), 제어 로직(1208), 및 바이어스 생성기(1209)를 포함한다. VMM 시스템(1200)은 전하 펌프(1211), 전하 펌프 조절기(1212), 및 고전압 레벨 생성기(1213)를 포함하는 고전압 생성 블록(1210)을 추가로 포함한다. VMM 시스템(1200)은 알고리즘 제어기(1214), 아날로그 회로부(1215), 제어 로직(1216), 및 테스트 제어 로직(1217)을 추가로 포함한다. 아래에서 설명되는 시스템 및 방법은 VMM 시스템(1200)에서 구현될 수 있다.
거친 프로그래밍, 정밀 프로그래밍, 및 초정밀 프로그래밍을 사용하여 프로그래밍 프로세스 동안 다양한 수준의 정밀도가 달성될 수 있다.
신경망에 대해 본원에 설명된 바와 같이, VMM 어레이(1200)의 비휘발성 메모리 셀, 즉 VMM 어레이(1200)의 플래시 메모리는 바람직하게는 하위-임계 영역에서 동작하도록 구성된다.
본원에 기술된 비휘발성 기준 메모리 셀 및 비휘발성 메모리 셀은 하위-임계 영역에서 바이어싱되며:
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 어레이의 메모리 셀은 신경망의 각 층 또는 여러 층에 대해 모든 영역 또는 이들(하위 임계, 선형, 또는 포화)의 조합에서 사용될 수 있다.
VMM에서 셀의 거친 프로그래밍 및 정밀 프로그래밍을 위한 실시예
도 13a는 거친 프로그래밍 및 정밀 프로그래밍을 이용하는 프로그래밍 방법(1300) 도시한다. 먼저, 상기 방법이 시작되고(1301 단계), 이는 통상적으로 프로그램 커맨드가 수신된 것에 응답하여 발생한다. 다음에, 대규모 프로그램 동작이 모든 셀을 '0' 상태로 프로그래밍한다(1302 단계). 이어서 약한 소거 동작이 모든 셀을 중간의 약하게 소거된 레벨로 소거하여, 각각의 셀이 판독 동작 동안 예를 들어 대략 3 내지 5 ㎂의 전류를 인출할 것이다(1303 단계). 이는, 판독 동작 동안 각각의 셀이 대략 20 내지 30 ㎂의 전류를 인출할 깊은 소거 레벨(deeply erased level)과는 대조적이다. 이어서, 모든 사용되지 않은 셀에 대해 매우 깊은 프로그래밍 상태로 강한 프로그램이 수행되어 셀의 플로팅 게이트에 전자를 추가하여(1304 단계), 그들 셀이 실제로 "오프"인 것을 보장하는데, 이는 그들 셀이 판독 동작 동안 무시할 만한 양의 전류를 인출할 것임을 의미한다.
이어서 (셀을 타깃에 훨씬 더 가깝게, 예를 들어 타깃에 1.2배 내지 100배 더 가깝도록) 거친 프로그래밍 방법이 선택된 셀에 대해 수행되고(1305 단계), 각각의 선택된 셀에 대해 요구되는 정밀한 값을 프로그래밍하기 위해 선택된 셀에 대한 정밀 프로그래밍 방법이 이어진다(1306 단계).
도 13b는 프로그래밍 방법(1300)과 유사한 다른 프로그래밍 방법(1310)을 도시하고, 또한 거친 프로그래밍 및 정밀 프로그래밍을 이용한다. 그러나, 도 13a의 1302 단계에서와 같이 모든 셀을 '0' 상태로 프로그래밍하기 위한 프로그램 동작 대신에, 상기 방법이 시작된 후에(1301 단계), 소거 동작이 모든 셀을 '1' 상태로 소거하는 데 사용된다(3312 단계). 이어서, 소프트(약한) 프로그램 동작(1313 단계)이, 판독 동작 동안 각각의 셀이 대략 0.2 내지 5 uA(예를 들어, 타깃에 2배 내지 100배)의 전류를 인출하도록 모든 셀을 중간 상태(레벨)로 프로그래밍하는 데 사용된다. 이후에, 거친 및 정밀 프로그래밍 방법이 도 13a에서와 같이 이어질 것이다. 도 13b의 실시예의 변형은 약한 프로그래밍 방법(1313 단계)을 완전히 제거할 것이다.
도 14는 검색 및 실행 방법(1400)인, 거친 프로그래밍 방법(1305)의 제1 실시예를 도시한다. 먼저, 룩업 테이블 또는 기능 검색이 선택된 셀에 대한 거친 타깃 전류 값(ICT)을 해당 선택된 셀에 저장되도록 의도되는 값에 기초하여 결정하도록 수행된다(1401 단계). 이러한 테이블 또는 기능은, 예를 들어, 실리콘 특성화에 의해 또는 웨이퍼 테스트의 교정으로 생성된다. 선택된 셀은 N개의 가능한 값(예컨대, 제한없이 128, 64, 32) 중 하나를 저장하도록 프로그램될 수 있다는 것이 가정된다. N개의 값 각각은 판독 동작 동안 선택된 셀에 의해 인출되는 상이한 바람직한 전류 값(ID)에 대응할 것이다. 일 실시예에서, 룩업 테이블은 검색 및 실행 방법(1400) 동안 선택된 셀에 대해 거친 타깃 전류 값(ICT)으로 사용하기 위한 M개의 가능한 전류 값을 포함할 수 있고, 여기서 M은 N 미만의 정수이다. 예를 들어, N이 8인 경우, M은 4일 수 있고, 이는 선택된 셀이 저장할 수 있는 8개의 가능한 값이 존재하고, 4개의 거친 타깃 전류 값 중 하나가 검색 및 실행 방법(1400)을 위한 거친 타깃으로 선택될 것임을 의미한다. 즉, 검색 및 실행 방법(1400)(이는 다시, 거친 프로그래밍 방법(1305)의 일 실시예임)은 선택된 셀을 바람직한 전류 값(ID)에 다소 가까운 거친 타깃 전류 값(ICT)으로 신속하게 프로그래밍하도록 의도되며, 이어서, 정밀 프로그래밍 방법(1306)은 선택된 셀을 바람직한 전류 값(ID)에 극히 가깝도록 더 정밀하게 프로그램하도록 의도된다.
셀 값, 바람직한 전류 값, 및 거친 타깃 전류 값의 예가 N=8 및 M=4의 간단한 예에 대해 표 9 및 표 10에 도시되어 있다:
[표 9]
Figure pct00006
[표 10]
Figure pct00007
오프셋 값(ICTOFFSETx)은 거친 튜닝 동안 바람직한 전류 값의 오버슈팅을 방지하는 데 사용된다. 일단 거친 타깃 전류 값(ICT)이 선택되는 경우, 선택된 셀은 선택된 셀(예컨대, 메모리 셀(210, 310, 410, 또는 510))의 셀 아키텍처 유형에 기초하여 선택된 셀의 적절한 단자에 전압 v0을 인가함으로써 프로그램된다(1402 단계). 선택된 셀이 도 3의 메모리 셀(310) 유형이면, 전압 v0은 제어 게이트 단자(28) (및/또는 소스 라인(14))에 인가될 것이고, v0은 거친 타깃 전류 값(ICT)에 따라 예를 들어 5 내지 8V일 수 있다. v0의 값은 선택적으로 v0 대 거친 타깃 전류 값(ICT)을 저장하는 전압 룩업 테이블로부터 결정될 수 있다.
다음으로, 선택된 셀은 전압 vi = vi-1+vincrement를 인가함으로써 프로그램되고, 여기서 i는 1에서 시작하여 이러한 단계가 반복될 때마다 증분되고, 여기서 vincrement는 바람직한 변화의 입도에 대해 적절한 정도의 프로그래밍을 야기할 작은, 미세 전압이다(1403 단계). 이에 따라, 1403 단계가 처음 수행될 때, i=1이고, v1은 v0 + vincrement일 것이다. 이어서 검증 동작이 발생하며(1404 단계), 여기서 선택된 셀에 대해 판독 동작이 수행되고, 선택된 셀을 통해 인출되는 전류(Icell)가 측정된다. Icell이 ICT(이는 여기서 제1 임계 값임) 이하인 경우, 검색 및 실행 방법(1400)은 완료되고, 정밀 프로그래밍 방법(1306)이 시작될 수 있다. Icell이 ICT 이하가 아닌 경우, 1403 단계가 반복되고, i는 증분된다.
따라서, 거친 프로그래밍 방법(1305)이 종료되고 정밀 프로그래밍 방법(1306)이 시작되는 시점에서, 전압 vi는 선택된 셀을 프로그램하는 데 사용되는 마지막 전압일 것이고, 선택된 셀은 거친 타깃 전류 값(ICT)과 연관된 값을 저장할 것이다. 정밀 프로그래밍 방법(1306)의 목표는, 선택된 셀을, 판독 동작 동안 그것이 전류(ID)를 인출하는 지점(+ 또는 - 허용가능한 수량의 편차, 예컨대 +/-50 pA 또는 +/-30% 이하)으로 프로그램하는 것인데, 이는 선택된 셀에 저장되도록 의도되는 값과 연관되는 바람직한 전류 값이다.
도 15는 거친 프로그래밍 방법(1305) 및/또는 정밀 프로그램 방법(1306) 동안 선택된 메모리 셀의 제어 게이트에 인가될 수 있는 상이한 전압 진행의 예를 도시한다.
제1 접근법 하에서, 증가하는 전압이 진행 시에 제어 게이트에 인가되어, 선택된 메모리 셀을 추가로 프로그램한다. 시작 시점은 거친 프로그래밍 방법(1305) 동안 대략 인가된 마지막 전압 (바람직한 또는 타깃 전류에 따른 + 또는 - 일부 델타 전압) 부근인 vi이다. vp1의 증분이 v1에 추가되고, 이어서, 전압 vu+vp1이 선택된 셀을 프로그램하는 데 사용된다(1501 진행에서 좌측으로부터 제2 펄스에 의해 표시됨). vp1은 vincrement(거친 프로그래밍 방법(1305) 동안 사용된 전압 증분)보다 작은 증분이다. 각각의 프로그래밍 전압이 인가된 후에, (1404 단계와 유사한) 검증 단계가 수행되며, 여기서 Icell이 IPT1 (이는 제1 정밀 타깃 전류 값이고, 여기서는 제2 임계 값임) 이하인지 결정이 이루어지고, IPT1 = ID + IPT1OFFSET이고, IPT1OFFSET는 프로그램 오버슈팅을 방지하기 위해 추가되는 오프셋 값이다. 만약 그렇지 않다면, 다른 증분 vp1이 이전에 인가된 프로그래밍 전압에 추가되고, 프로세스가 반복된다. Icell이 IPT1 이하인 지점에서, 이어서, 프로그래밍 시퀀스의 이러한 부분이 정지된다. 선택적으로, IPT1이 ID와 동일하거나, 또는 충분한 정밀도로 ID와 거의 동일한 경우, 선택된 메모리 셀은 성공적으로 프로그램되었다.
IPT1이 ID에 충분히 가깝지 않은 경우, 더 작은 세분성의 추가 프로그래밍이 발생할 수 있다. 여기서, 이제 1502 진행이 사용된다. 1502 진행에 대한 시작 지점은 대략 1501 진행에서의 프로그래밍을 위해 사용되는 마지막 전압(바람직한 또는 타깃 전류에 따른 + 또는 - 일부 델타 전압)이다. (vp1보다 더 작은) Vp2의 증분이 해당 전압에 추가되고, 조합된 전압이 선택된 메모리 셀을 프로그램하기 위해 인가된다. 각각의 프로그래밍 전압이 인가된 후에, (1404 단계와 유사한) 검증 단계가 수행되며, 여기서 Icell이 IPT2(이는 제2 정밀 타깃 전류 값이고, 여기서 제3 임계 값임) 이하인지 결정이 이루어지고, IPT2 = ID + IPT2OFFSET이고, IPT2OFFSET은 프로그램 오버슈팅을 방지하기 위해 추가되는 오프셋 값이다. 통상적으로, IPT2OFFSET < IPT1OFFSET인데, 프로그래밍 단계가 라운드 마다 더 작아지고 더 정확해지기 때문이다. 만약 그렇지 않다면, 다른 증분 Vp2가 이전에 인가된 프로그래밍 전압에 추가되고, 프로세스가 반복된다. Icell이 IPT2보다 작거나 그와 동일한 지점에서, 이어서, 프로그래밍 시퀀스의 이러한 부분이 정지된다. 여기서, IPT2는 ID와 동일하거나 ID와 충분히 가까워 프로그램이 정지될 수 있다고 가정되는데, 타깃 값이 충분한 정밀도로 달성되었기 때문이다, 당업자는 점점 더 작은 프로그래밍 증분이 사용되어 추가적인 진행이 적용될 수 있다는 것을 인식할 수 있다. 예를 들어, 도 16에서, 3개의 진행(1601, 1602, 및 1603)이 단지 2개 대신에 적용된다.
제2 접근법은 도 15의 1503 진행 및 도 16의 1604 진행에서 도시된다. 여기서, 선택된 메모리 셀의 프로그래밍 동안 인가되는 전압을 증가시키는 대신에, 증가하는 기간의 지속기간에 대해 동일한 전압이 인가된다. 1501 진행에서의 vp1 및 1503 진행에서의 vp2와 같은 증분 전압을 추가하는 대신에, 각각의 인가된 펄스가 이전에 인가된 펄스보다 tp1만큼 더 길도록, 시간 tp1의 추가적인 증분이 프로그래밍 펄스에 추가된다. 각각의 프로그래밍 펄스가 적용된 후, (1404 단계와 유사한) 검증 단계가 수행된다. 선택적으로, 추가적인 진행이 적용될 수 있으며, 여기서 프로그래밍 펄스에 추가되는 시간의 추가적인 증분은 사용된 이전 진행보다 더 작은 지속기간을 갖는다. 단지 하나의 시간 진행만이 도시되지만, 당업자는 임의의 수의 상이한 시간 진행이 적용될 수 있다는 것을 인식할 것이다.
또한, 각 펄스의 지속 시간은 펄스 진행(1503 및 1603)에 대해 동일할 수 있고, 시스템은 추가 프로그래밍을 수행하기 위한 펄스의 수에 의존할 수 있다.
이제, 거친 프로그래밍 방법(1305)의 3개의 추가적인 실시예에 대한 추가 상세사항이 제공될 것이다.
도 17은 적응적 교정 방법(1700)인 거친 프로그래밍 방법(1305)의 제1 실시예를 도시한다. 상기 방법이 시작된다(1701 단계). 셀은 디폴트 시작 값 v0에서 프로그램된다(1702 단계). 검색 및 실행 방법(1400)에서와 달리, 여기서 v0은 룩업 테이블로부터 도출되지 않고, 대신에 사전 정의된 비교적 작은 초기 값일 수 있다. 셀의 제어 게이트 전압은 제1 전류 값 IR1(예컨대, 100na) 및 제2 전류 값 IR2(예컨대, 10na)에서 측정되고, 하위 임계 기울기는 그들 측정치(예컨대, 360 ㎷/dec)에 기초하여 결정되고 저장된다(1703 단계).
새로운 바람직한 전압 vi가 결정된다. 이 단계가 처음 수행될 때, i=1이고, v1은 다음과 같은 하위 임계 수학식을 사용하여, 저장된 하위 임계 기울기 값 및 전류 타깃 및 오프셋 값에 기초하여 결정된다:
Vi = Vi-1 + Vincrement,
Vincrement는 Vg의 기울기에 비례한다.
Vg= n*Vt*log [Ids/wa*Io]
여기서, wa는 메모리 셀의 w이고, Ids는 전류 타깃 + 오프셋 값이다.
저장된 하위 임계 기울기 값이 비교적 가파른 경우, 비교적 작은 전류 오프셋 값이 사용될 수 있다. 저장된 하위 임계 기울기 값이 비교적 평평한 경우, 비교적 높은 전류 오프셋 값이 사용될 수 있다. 따라서, 하위 임계 기울기 값을 결정하는 것은 문제의 특정 셀에 대해 맞춤화된 전류 오프셋 값이 선택될 수 있게 할 것이다. 이는 궁극적으로, 프로그래밍 프로세스를 더 짧게 만들 것이다. 이러한 단계가 반복될 때, i는 증분되고, vi = vi-1 + vincrement이다. 이어서, 셀이 vi를 사용하여 프로그램된다. vincrement는, 예를 들어 vincrement의 값 대 바람직한 전류 값(ID)을 저장하는 룩업 테이블로부터 결정될 수 있다.
다음에, 검증 동작이 수행되며, 여기서 판독 동작이 선택된 셀에 대해 수행되고, 선택된 셀을 통해 인출되는 전류(Icell)가 측정된다(1705 단계). Icell이 거친 타깃 전류 값(ICT) 이하이면(여기서, ICT는 ID+ ICTOFFSET으로 설정되고, ICTOFFSET는 프로그램 오버슈팅을 방지하기 위해 추가되는 오프셋 값임), 적응적 교정 방법(1700)이 완료되고, 정밀 프로그래밍 방법(2206)이 시작될 수 있다. Icell이 거친 타깃 전류 값(ICT) 이하가 아닌 경우, 1704 단계 및 1705 단계가 반복되고, i는 증분된다.
도 18은 적응적 교정 방법(1800)인 거친 프로그래밍 방법(1305)의 제2 실시예를 도시한다. 상기 방법이 시작된다(1801 단계). 셀은 디폴트 시작 값 v0에서 프로그램된다(1802 단계). v0는 실리콘 특성화로부터 생성된 것과 같은 룩업 테이블로부터 도출되며, 여기서 테이블 값은 프로그램된 타깃을 오버슈팅하지 않도록 오프셋을 포함한다.
1803 단계에서, 다음 프로그래밍 전압을 예측하는 데 사용되는 I-V 기울기 파라미터가 생성된다. 제1 제어 게이트 판독 전압, VCGR1이 선택된 셀에 인가되고, 생성된 셀 전류, IR1이 측정된다. 이어서, 제2 제어 게이트 판독 전압, VCGR2가 선택된 셀에 인가되고, 생성된 셀 전류, IR2가 측정된다. 기울기는 그들 측정치에 기초하여 결정되고, 예를 들어 하위 임계 영역(하위 임계치에서 동작하는 셀)의 수학식에 따라 저장된다:
기울기 = (VCGR1 - VCGR2) / (LOG(IR1) - LOG(IR2))
(1803 단계). VCGR1 및 VCGR2에 대한 값의 예는 각각 1.5 V 및 1.3 V이다.
따라서, 기울기 정보를 결정하는 것은, 문제의 특정 셀에 대해 맞춤화되는 Vincrement 값이 선택될 수 있게 한다. 이는 궁극적으로, 프로그래밍 프로세스를 더 짧게 만들 것이다.
1804 단계가 반복될 때, i는 증분되고, 새로운 바람직한 프로그래밍 전압, vi가 하기와 같은 수학식을 사용하여 저장된 기울기 값 및 전류 타깃(ICT) 및 오프셋 값에 기초하여 결정된다:
Vi = Vi-1 + Vincrement,
여기서, i-1에 대해, Vincrement = 알파 * 기울기 * (LOG (IR1) - LOG (ICT))이고,
여기서 ICT는 거친 타깃 전류이고, 알파는 오버슈팅을 방지하기 위한 1 미만의 미리 결정된 상수(프로그래밍 오프셋 값), 예를 들어 0.9이다.
이어서, 셀은 Vi를 사용하여 프로그램된다. (1805 단계) 여기서, vi는 사용된 프로그래밍 방식에 따라 선택된 셀의 소스 라인 단자, 제어 게이트 단자 또는 소거 게이트 단자에 적용될 수 있다.
다음에, 검증 동작이 발생하며, 여기서 판독 동작이 선택된 셀에 대해 수행되고, 선택된 셀을 통해 인출되는 전류(Icell)가 측정된다(1806 단계). Icell이 거친 타깃 임계 값(ICT) 이하이면 (여기서, 거친 타깃 임계 값(ICT)는 ID+ ICTOFFSET로 설정되고, ICTOFFSET는 프로그램 오버슈팅을 방지하기 위해 추가되는 오프셋 값임), 프로세스는 1807 단계로 진행한다. 그렇지 않으면, 프로세스는 1804 단계로 복귀하고, i는 증분된다.
1807 단계에서, Icell은 거친 타깃 임계 값(ICT)보다 더 작은 임계 값 ICT2와 비교된다. 이것의 목적은 오버슈팅이 발생했는지를 알기 위함이다. 즉, 목표는 Icell이 거친 타깃 임계 값(ICT) 미만인 것이지만, 그것이 과도하게 거친 타깃 임계 값(ICT) 미만인 경우, 오버슈팅이 발생했고 저장된 값은 실제로 잘못된 값에 대응할 수 있다. Icell이 ICT2 이하가 아닌 경우, 오버슈팅이 발생하지 않았고, 적응형 교정 방법(1800)이 완료되었으며, 그 시점에 프로세스는 정밀 프로그래밍 방법(1306)으로 진행한다. Icell이 ICT2 이하인 경우, 오버슈팅이 발생했다. 그 다음 선택된 셀은 소거되고(1808 단계), 프로그래밍 프로세스는 오버슈팅 정도에 따라 더 작은 값을 갖는 것과 같이 조정된 Vincrement 로 1802 단계에서 다시 시작된다. 또는, 1808 단계가 사전 결정된 횟수 초과로 수행되는 경우, 선택된 셀은 사용되지 않아야 하는 불량 셀로 간주될 수 있다.
도 15와 관련하여 상술된 바와 같이, 정밀 프로그램 방법(1306)은 다수의 검증 및 프로그램 사이클로 이루어지는데, 여기서 프로그램 전압은 고정된 펄스 폭으로 일정한 미세 전압만큼 증분되거나, 또는 프로그램 전압은 고정되고 프로그램 펄스 폭은 다음 펄스에 대해 가변하거나 일정하다.
또는, 판독 또는 검증 동작 동안 선택된 비휘발성 메모리 셀을 통한 전류가 제1 임계 전류 값(ICT) 이하인지 여부를 결정하는 단계는, 비휘발성 메모리 셀의 단자에 고정 바이어스를 인가하고, 선택된 비휘발성 메모리 셀에 의해 인출된 전류를 측정하고 디지털화하여 디지털 출력 비트를 생성하고, 디지털 출력 비트를 제1 임계 전류 값(ICT)을 나타내는 디지털 비트와 비교함으로써 수행될 수 있다.
또는, 판독 또는 검증 동작 동안 선택된 비휘발성 메모리 셀을 통한 전류가 제1 임계 전류 값(ICT) 이하인지 여부를 결정하는 단계는, 비휘발성 메모리 셀의 단자에 입력을 인가하고, 비휘발성 메모리 셀에 의해 인출된 전류를 입력 펄스로 변조하여 변조된 출력을 생성하고, 변조된 출력을 디지털화하여 디지털 출력 비트를 생성하고, 디지털 출력 비트를 제1 임계 전류(ICT)를 나타내는 디지털 비트와 비교함으로써 수행될 수 있다.
도 19은 절대적 교정 방법(1900)인 프로그래밍 방법(1305)의 제3 실시예를 도시한다. 상기 방법이 시작된다(1901 단계). 셀은 디폴트 시작 값 v0에서 프로그램된다(1902 단계). 셀의 제어 게이트 전압(VCGRx)은 전류 타깃 값(Itarget)에서 측정되고 저장된다(1903 단계). 저장된 제어 게이트 전압 및 전류 타깃 값(Itarget)과 오프셋 값, Itarget + Ioffset에 기초하여 새로운 바람직한 전압 v1이 결정된다(1904 단계). 예를 들어, 새로운 바람직한 전압 v1은 다음과 같이 계산될 수 있다: v1= v0 + 세타 * (VCGBIAS - 저장된 VCGR), 세타는 약 1이고, VCGBIAS는 최대 타깃 전류에서의 디폴트 판독 제어 게이트 전압인데, 통상적으로 약 1.5 V이고, 저장된 VCGR은 1903 단계의 측정된 판독 제어 게이트 전압이다. 즉, 업데이트된 프로그램 전압은 측정된 제어 게이트 전압과 타깃 제어 게이트 전압 사이의 차이에 기초하여 조정된다.
이어서, 셀은 vi를 사용하여 프로그램된다. i=1일 때, 단계 1904로부터의 전압 v1이 사용된다. i>=2일 때, 전압 vi = vi-1 + Vincrement가 사용된다. vincrement는 vincrement의 값 대 타깃 전류 값(ICT)을 저장하는 룩업 테이블로부터 결정될 수 있다. 다음에, 검증 동작이 발생하며, 여기서 판독 동작이 선택된 셀에 대해 수행되고, 선택된 셀을 통해 인출되는 전류(Icell)가 측정된다(1906 단계). Icell이 거친 타깃 임계 전류 값(ICT) 이하인 경우, 절대 교정 방법(1900)은 완료되고, 정밀 프로그래밍 방법(1306)이 시작될 수 있다. Icell이 거친 타깃 전류 값(ICT) 이하가 아닌 경우, 1905 단계 및 1906 단계가 반복되고, i는 증분된다.
또는, 거친 및/또는 미세 프로그램 방법은 플로팅 게이트 내로의 전하 커플링의 보다 정밀한 제어를 위해 하나의 단자(예를 들어, CG) 상의 프로그램 전압의 증분 및 다른 단자(예를 들어, EG 또는 SL) 상의 전압 감소를 포함할 수 있다.
따라서 지금까지 설명된 거친 및 정밀 프로그래밍 방법은 대부분의 시스템에 대해 충분히 정확할 것이다. 그러나, 이러한 방법도 그들의 정밀도에 대한 한계를 갖는다. 궁극적인 정밀도는 하나의 전자 정밀도인 것으로 이해될 수 있다. 도 20은 전술한 거친 및 정밀 프로그래밍 방법의 작업 실시예에 대한 출원인에 의해 수집된 데이터를 도시한다. 도 20은 가능한 한 타깃(2001)에 가깝게 플로팅 게이트 전압(2002)을 프로그래밍하기 위한 시도에서 실행되는 프로그래밍 펄스의 수에 대한 플로팅 게이트 전압을 도시한다. 알 수 있는 바와 같이, 플로팅 게이트 전압(2002)은 플로팅 게이트에 추가된 단일 전자의 전하와 동등한 +/- 4 ㎷ 내에서 타깃(2001)에 근접할 수 있다. 이는 특정 시스템에 대해 충분히 정확하지 않을 수 있다. 예를 들어, N(임의의 플로팅 게이트에 유지될 수 있는 상이한 값의 개수)이 큰 경우(예를 들어, 512), +/- 4 ㎷보다 큰 정밀도가 필요할 수 있으며, 이는 서브-전자 (분수 전자) 정밀 프로그래밍이 요구될 수 있음을 의미한다; 즉, 플로팅 게이트 전압이 +/- 4 ㎷보다 작은 증분으로 조정될 수 있는 메커니즘이 필요하며, 이는 전자의 일부가 플로팅 게이트로부터 어떻게든 추가되거나 감산되어야 함을 의미한다. 또한, 프로그래밍 프로세스 동안 플로팅 게이트 전압의 증분은 균일하지 않고 예측가능하지 않으며, 이는 시스템이 완전한 정밀도로 주어진 타깃 전압을 항상 달성하지 않을 것임을 의미한다는 것을 알 수 있다. 이는 프로그래밍 물리학의 통계적 특성에 기인한 것일 수 있다.
VMM에서 셀의 초정밀 프로그래밍에 대한 실시예
도 21 내지 도 28은 거친 프로그래밍 방법(1305) 및 정밀 프로그래밍 방법(1306) 단독을 통해 달성될 수 있는 것보다 더 정밀한 프로그래밍을 허용하는 초정밀 프로그래밍 방법 및 시스템의 실시예를 도시한다. 초정밀 프로그래밍 방법 및 시스템은 선택된 메모리 셀의 플로팅 게이트의 전압이 물리적으로 가능한 가장 미세한 프로그래밍 증분인 각각의 프로그래밍 펄스에 대해 플로팅 게이트에 추가되는 단일 전자의 일부(서브-단일 전자)와 동등한 전하에 의해 증가하는 것을 가능하게 한다.
도 21은 비휘발성 메모리 셀의 로우 및 칼럼을 포함하는 VMM 어레이(2100)를 도시한다. 여기서, 메모리 셀의 하나의 로우의 일부가 도시되며, 구체적으로, 데이터 메모리 셀(2101), 데이터 메모리 셀(2102), 튜닝 메모리 셀(2103), 튜닝 메모리 셀(2104), 데이터 메모리 셀(2105), 및 데이터 메모리 셀(2106)이며, 비트 라인(2121, 2122, 2123(튜닝 BL), 2124(튜닝 BL), 2125, 및 2126)에 각각 결합되고, 어떤 유형의 메모리 셀 아키텍처가 사용되는지(예를 들어, 메모리 셀(210, 310, 410, 510, 610, 710 또는 810))에 따라, 제어 게이트 라인 및 선택적으로 워드 라인, 소거 라인, 및/또는 소스 라인에 결합된다. 데이터 메모리 셀(2101)은 플로팅 게이트(2111)를 포함하고, 데이터 메모리 셀(2102)은 플로팅 게이트(2112)를 포함하고, 튜닝 메모리 셀(2103)은 플로팅 게이트(2113)를 포함하고, 튜닝 메모리 셀(2104)은 플로팅 게이트(2114)를 포함하고, 데이터 메모리 셀(2105)은 플로팅 게이트(2115)를 포함하고, 데이터 메모리 셀(2106)은 플로팅 게이트(2116)를 포함한다. 튜닝 BL(2123 및 2124)은 각각 인접한 비트 라인에 대한 초정밀 튜닝을 수행하는 데 사용되는 비트 라인이다.
통상적으로, 그 경우에 있어서, 도 21에 도시된 바와 같이 동일한 로우의 인접한 플로팅 게이트 사이에 용량성 커플링이 존재한다. VMM 어레이(2100)는 이 현상을 이용하여 초정밀 프로그래밍성을 달성한다. 이 예에서, 데이터 메모리 셀(2102)은 데이터를 저장하는 데 사용되지만, 튜닝 메모리 셀(2103)은 데이터를 저장하는 데 사용되지 않고, 대신에 용량성 커플링을 통해 셀(2102)을 프로그래밍하는 것을 보조하는 데만 사용된다. 유사하게, 데이터 메모리 셀(2105)은 데이터를 저장하는 데 사용되지만, 튜닝 메모리 셀(2104)은 용량성 커플링을 통해 셀(2105)을 프로그래밍하는 것을 보조하는 데만 사용된다. 데이터 메모리 셀(2101 및 2106)은 데이터를 저장하는 데 사용되고, 그들의 프로그래밍은 도시되지 않은 인접한 튜닝 셀에 의해 보조된다.
일 실시예에서, 특히 데이터 메모리 셀이 서로 인접할 때, 이들은 데이터 메모리 셀(2101 및 2102)에 대해 및 데이터 메모리 셀(2105 및 2106)에 대해 도시된 바와 같이, 거리 d2에 의해 분리된다. 그러나, 데이터 메모리 셀이 튜닝 메모리 셀에 인접한 경우, 데이터 메모리 셀(2102)과 인접한 튜닝 메모리 셀(2103), 및 데이터 메모리 셀(2104)과 인접한 튜닝 메모리 셀(2105)에 대해 도시된 바와 같이, 이들은 거리 d1에 의해 분리된다. 튜닝 메모리 셀이 다른 튜닝 메모리 셀에 인접한 경우, 튜닝 메모리 셀(2103 및 2104)에 대해 도시된 바와 같이, 이들은 거리 d1 또는 d2에 의해 분리될 수 있다. 설계에 의해, d2 > d1이다. 결과적으로, 거리 d2 만큼 떨어진 셀 사이의 용량성 커플링은 C2의 커패시턴스를 갖는 반면, 거리 d1 만큼 떨어진 셀 사이의 용량성 커플링은 C1 커패시턴스를 갖고, C1 > C2 이다. 즉, 커패시턴스는 서로 더 가까운 셀 사이에서 더 크다. 또한, 거리 d1은 데이터 메모리 셀에 대한 튜닝 메모리 셀의 효과 및 따라서 최종 프로그래밍 정밀도를 최적화하기 위해 바람직한 C1 값을 달성하도록 설계될 수 있다.
데이터 메모리 셀(2102)이 선택된 셀이고 데이터 메모리 셀(2102)을 특정 타깃 값으로 프로그램하는 것이 바람직한 경우, 데이터 메모리 셀(2102)은 도 13 내지 도 20을 참조하여 이전에 설명된 거친 및 정밀 프로그래밍 방법을 사용하여 특정 정도로 프로그램될 수 있다. 그러나, 타깃 값이 달성되거나 초과되기 전에, 거친 프로그래밍 및 정밀 프로그래밍은 중지되고, 대신 초정밀 프로그래밍 방법이 구현된다.
구체적으로, 튜닝 메모리 셀(2103)은 거친 및 정밀 프로그래밍 방법을 사용하여 프로그램된다. 용량성 커플링으로 인해, 튜닝 메모리 셀(2103)이 프로그램됨에 따라, 플로팅 게이트(2113)의 전하는 플로팅 게이트(2112)의 전하가 또한 증가되도록 하지만, 플로팅 게이트(2113)의 전하 증가보다 더 적은 양 만큼이다. 이러한 메커니즘을 통해, 플로팅 게이트(2112)는 플로팅 게이트(2113)에서 발생하는 것보다 더 미세한 증분 만큼 증가하거나 거친 및 정밀 프로그래밍 방법(1305 및 1306)을 사용하여 프로그래밍 셀(2102)에 의해 직접 달성될 수 있다. 이 경우, 튜닝 메모리 셀(2103)에 대해 프로그래밍이 수행되지만, 검증 동작은 데이터 메모리 셀(2102)에 대해서만 수행될 필요가 있다. 일단 타깃 값이 데이터 메모리 셀(2102)에서 달성되면, 플로팅 게이트(2113)는 그 전하 상태로 유지되어 플로팅 게이트(2112)는 타깃 값으로 유지된다.
도 22는 양방향 튜닝을 갖는 시스템을 위한 데이터 메모리 셀(2102), 튜닝 메모리 셀(2103), 튜닝 메모리 셀(2104), 및 데이터 메모리 셀(2105)에 대한 예시적인 레이아웃(2200)을 도시한다(이는, 소거 게이트는 수평이고 제어 게이트는 수직이기 때문에, 프로그래밍 및 소거 모두가 튜닝 목적으로 사용될 수 있음을 의미하며, 제어 게이트는 소거 게이트에 직교함을 의미한다; 유사하게, 제어 게이트 또는 워드 라인은 소스 라인에 직교할 수 있다). 여기서, CG 게이트는 수직으로 2개의 인접한 칼럼에 대해 공유된다. 양방향 튜닝을 이용할 수 있는 셀의 경우, 초정밀 튜닝은 튜닝 셀을 소거하거나 프로그래밍함으로써 또는 모두에 의해 달성될 수 있다.
도 23은 VMM 어레이(2100)를 활용하는 대안적인 실시예를 도시한다. 여기서, 메모리 셀(2102)은 양의 값(W+)을 저장하는 데 사용되고, 메모리 셀(2105)은 음의 값(W-)을 저장하는 데 사용되고, 이들은 함께 값(W)을 저장하며, 여기서 W = (W+)-(W-)이고, 판독 또는 검증 동작 동안 감산 회로에 의해 달성될 수 있다. 이 실시예에서, 튜닝 셀(2103 및 2104)과 같은 튜닝 셀은 인접한 데이터 셀을 반대 가중치로 조정하는 데 사용되는 가중치로 프로그램된다. 따라서, 예를 들어, 비트 라인(2123)은 튜닝 메모리 셀(2103)을 프로그램하여 용량성 커플링이 셀(2102)에서 플로팅 게이트(2112)의 전압을 감소시키게 하고, 비트 라인(2124)은 튜닝 메모리 셀(2104)을 프로그램하여 용량성 커플링이 메모리 셀(2105)에서 플로팅 게이트(2115)의 전압을 감소시키게 한다.
도 24는 인접한 데이터 메모리 셀에서 튜닝 메모리 셀의 효과, 예를 들어, 도 21에서와 같이 튜닝 메모리 셀(2103) 및 데이터 메모리 셀(2102)을 도시한다. 처음에, 데이터 메모리 셀(2102) 및 튜닝 메모리 셀(2103) 모두는 타킷 전압(2401) 근처에서 프로그램되지만, 여전히 그 아래에 있다. 이어서, 튜닝 메모리 셀(2103)은 플로팅 게이트(2113)의 전압이 타깃 전압(2401)을 초과할 수 있도록 프로그램된다. 플로팅 게이트(2112)의 전압은 (판독 검증 동작을 통해) 검증되고, 데이터 메모리 셀(2102)이 정확한 타깃 전압(2401)을 달성할 때까지 튜닝 메모리 셀(2103)은 계속 프로그램된다. 이 프로세스는 물리적으로 가능한 가장 미세한 프로그래밍 증분인 프로그래밍 펄스 동안 플로팅 게이트(2112)에 추가되는 서브-단일 전자 전위와 동등한 전하를 초래한다.
도 25a는 VMM 어레이(2100)를 활용하는 다른 대안적인 실시예를 도시한다. 여기서, 튜닝 비트 라인 및 (비트 라인 쌍을 구성하는) 데이터 비트 라인은 상호 교환 가능하다. 예를 들어, 더 많은 양의 노이즈(예컨대, RTN(random telegraph noise))를 갖는 비트 라인 쌍의 비트 라인은 비트 라인 쌍의 튜닝 비트 라인으로 지정될 수 있다. 예를 들어, 메모리 셀(2102)이 메모리 셀(2103) 보다 더 큰 RTN 노이즈를 갖는 경우, 비트 라인(2122)은 튜닝 비트 라인으로 지정될 수 있고, 즉 메모리 셀(2102)은 튜닝 메모리 셀로 지정되고, 비트 라인(2123)은 데이터 비트 라인으로 지정되며, 즉 메모리 셀(2103)은 데이터 메모리 셀로 지정된다. 도 25b는 이것이 어떻게 수행되는지를 개략적으로 도시한다. 비트 라인(2122 및 2123) 둘 모두는 각각 비트 라인 판독 트랜지스터(2501 및 2502)를 통해 감지 증폭기(2503)에 입력으로 공급된다. 다른 비트 라인보다 더 적은 RTN 노이즈를 갖는 비트 라인은 데이터 비트 라인으로 지정될 것이고, 즉 연관된 메모리 셀은 데이터 메모리 셀로서 지정된다. 비트 라인 쌍의 셀은 각각의 플로팅 게이트 사이에 고유 커패시턴스 C1을 갖고 거리 d1 만큼 분리된다. 쌍으로서 사용되지 않은 셀은, 상기 표시된 바와 같이 거리 d1 보다 큰 거리 d2 만큼 인접 셀로부터 분리될 수 있으며, C1 보다 작은 결과적인 커패시턴스 C2를 갖는다.
도 26는 초정밀 프로그래밍 방법(2600)을 도시한다. 상기 방법이 시작된다(2601 단계). 선택된 데이터 메모리 셀 및 그의 인접 튜닝 메모리 셀이 소거된다(2602 단계). 비선택된 메모리 셀은 깊게 프로그램된다(2603 단계). 선택된 데이터 메모리 셀에서 거친 프로그래밍이 수행된다(2604 단계). 증분 및/또는 감소를 사용한 정밀 프로그래밍이 선택된 데이터 메모리 셀에서 수행되고/되거나(2605 단계), 일정한 전압을 사용한 정밀 프로그래밍이 선택된 데이터 메모리 셀에 대해 수행된다(2605 단계). 이어서, 초정밀 프로그래밍이 인접한 튜닝 메모리 셀과 선택된 데이터 메모리 셀 사이의 용량성 커플링을 사용하여 수행된다(2607 단계). 타깃 값이 달성되면, 상기 방법은 종료된다(2608 단계).
도 27은 초정밀 프로그래밍 방법(2700)을 도시한다. 상기 방법이 시작된다(2701 단계). 전체 VMM 어레이가 소거된다(2702 단계). 비선택된 셀은 깊게 프로그램된다(2703 단계). 모든 셀은 거친 프로그래밍을 사용하여 중간 값(예를 들어, 약 0.5 내지 1 ㎂)으로 프로그램된다(2704 단계). 증분을 사용한 정밀 프로그래밍이 선택된 데이터 메모리 셀(들)에서 수행되고 (2705 단계), 및/또는 일정한 전압을 사용한 정밀 프로그래밍이 선택된 데이터 메모리 셀에서 수행된다(2706 단계). 이어서, 초정밀 프로그래밍이 인접한 튜닝 메모리 셀과 선택된 데이터 메모리 셀 사이의 용량성 커플링을 사용하여 수행된다(2707 단계). 타깃 값이 달성되면, 상기 방법은 종료된다(2708 단계).
전술한 실시예에서, 선택된 데이터 메모리 셀이 판독 또는 검증될 때, 그의 연관된 튜닝 메모리 셀도 판독 또는 검증되어야 하는데, 데이터 메모리 셀이 판독 또는 검증될 때 용량성 커플링이 활성이어야 하기 때문이다. 이를 수행하는 한 가지 방법은 판독 또는 검증 동작 동안 데이터 비트 라인 및 튜닝 비트 라인을 감지 증폭기에 결합시키는 것이다.
초정밀 프로그래밍의 최종 결과는 도 28에 도시되어 있으며, 이는 본원에 설명된 초정밀 프로그래밍 방법 및 시스템의 작업 실시예에 대해 출원인에 의해 수집된 데이터를 도시한다. 도 28은, 인접한 튜닝 메모리 셀(2103)에서 플로팅 게이트(2113)를 프로그래밍함으로써, 플로팅 게이트(2112)의 전압을 타깃(2801)에 정확히 프로그래밍하기 위한 시도에서 실행되는 프로그래밍 펄스의 수에 대한, 데이터 메모리 셀(예를 들어, 2102) 및 인접한 튜닝 메모리 셀(예를 들어, 2103)의 플로팅 게이트 전압을 도시한다. 선택된 데이터 메모리 셀(2102)은 먼저 90개 펄스 바로 아래까지 프로그램되고, 프로그래밍의 균형은 인접한 튜닝 메모리 셀(2103)에 프로그래밍 펄스만을 제공함으로써 수행된다. 알 수 있는 바와 같이, 초정밀 프로그래밍은 거친 프로그래밍 및 미세 프로그래밍 방법 단독(도 20에 도시됨) 보다 훨씬 더 정확하고, 플로팅 게이트 (2112, 2113) 사이의 용량성 결합으로 인한 플로팅 게이트(2112)의 전압의 증분은 실제로 플로팅 게이트(2112)에 프로그래밍 펄스당 추가되는 하나 미만의 전자에 해당한다.
초정밀 프로그래밍에 대한 다른 실시예는 튜닝 비트 라인을 참조하여 상술한 바와 같은 수평 플로팅 게이트 대 플로팅 게이트 커플링의 대신에 수직 플로팅 게이트 대 플로팅 게이트 커플링을 사용한다. 이 경우, 인접한 로우(튜닝 로우)가 결합 목적을 위해 사용된다. 이는 메모리 셀(210, 310, 510 및 710)에 특히 적합하며, 이 경우 상부 FG 및 하부 FG에 물리적 장벽(소거 게이트)이 없다.
초정밀 프로그래밍에 대한 다른 실시예는 튜닝 셀 플로팅 게이트가 타깃 셀 플로팅 게이트와 중첩되는 경우와 같이 중첩 플로팅 게이트 대 플로팅 게이트 커플링을 사용한다. 중첩은 하나의 플로팅 게이트가 다른 플로팅 게이트의 상부 상에 부분적으로 있는 때와 같은 것이다.
본원에 사용된 바와 같이, 용어 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)와 "간접적으로~ 상에"(중간 재료, 요소 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것에 유의하여야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "~에 실장되는"은 "직접적으로 ~에 실장되는"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 실장되는"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 결합되는"은 "직접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 접속시키는 어떠한 중간 재료 또는 요소도 사이에 없음)과 "간접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 접속시키는 중간 재료 또는 요소가 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료/요소도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료/요소를 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.

Claims (45)

  1. 신경 메모리에서 선택된 메모리 셀을 타깃 값으로 프로그래밍하는 방법으로서,
    상기 선택된 메모리 셀의 단자에 제1 전압 시퀀스를 인가함으로써 상기 선택된 메모리 셀의 플로팅 게이트를 제1 전압으로 프로그래밍하는 단계; 및
    인접한 튜닝 셀의 단자에 제2 전압 시퀀스를 인가함으로써 상기 선택된 메모리 셀의 플로팅 게이트와 상기 인접한 튜닝 셀의 플로팅 게이트 사이의 용량성 커플링을 통해 상기 선택된 메모리 셀의 플로팅 게이트를 제2 전압으로 프로그래밍하는 단계를 포함하되, 상기 제2 전압은 상기 타깃 값에 대응하는, 방법.
  2. 제1항에 있어서, 상기 선택된 메모리 셀의 단자는 비트 라인에 결합된 비트 라인 단자, 소스 라인에 결합된 소스 라인 단자, 및 워드 라인에 결합된 워드 라인 단자를 포함하는, 방법.
  3. 제2항에 있어서, 상기 선택된 메모리 셀의 단자는 제어 게이트 라인에 결합된 제어 게이트 단자를 더 포함하는, 방법.
  4. 제3항에 있어서, 상기 선택된 메모리 셀의 제어 게이트 단자는 제어 게이트 라인에 연결되고, 상기 제어 게이트 라인은 상기 선택된 메모리 셀을 포함하는 셀의 칼럼과 셀의 인접한 칼럼의 제어 게이트 단자에 연결되는, 방법.
  5. 제3항에 있어서, 상기 선택된 메모리 셀의 단자는 소거 게이트 라인에 결합된 소거 게이트 단자를 더 포함하는, 방법.
  6. 제5항에 있어서, 상기 제어 게이트는 상기 소거 게이트 라인에 직교하는, 방법.
  7. 제5항에 있어서, 상기 제어 게이트 라인은 상기 소스 라인에 직교하는, 방법.
  8. 제2항에 있어서, 상기 선택된 메모리 셀은 분리형 게이트 메모리 셀인, 방법.
  9. 제2항에 있어서, 상기 선택된 메모리 셀은 적층형 게이트 메모리 셀인, 방법.
  10. 제1항에 있어서, 서브-단일 전자와 동등한 전하는 상기 제2 전압 시퀀스의 각각의 프로그래밍 펄스 동안 상기 선택된 메모리 셀의 플로팅 게이트에 추가되는, 방법.
  11. 제1항에 있어서, 상기 선택된 메모리 셀 및 상기 인접한 튜닝 셀은 인접한 데이터 셀 및 튜닝 셀의 복수의 쌍을 포함하는 로우 내에 포함되는, 방법.
  12. 제1항에 있어서, 상기 선택된 메모리 셀 및 상기 인접한 튜닝 셀은 인접한 데이터 셀 및 튜닝 셀의 복수의 쌍을 포함하는 어레이 내에 포함되는, 방법.
  13. 제11항에 있어서, 인접한 데이터 셀 사이의 거리는 인접한 데이터 셀과 튜닝 셀 사이의 거리보다 큰, 방법.
  14. 제11항에 있어서, 상기 로우에서 상기 데이터 셀의 절반은 W+ 값을 저장하고, 상기 로우에서 상기 데이터 셀의 절반은 W- 값을 저장하는, 방법.
  15. 제14항에 있어서, W+ 값을 저장하는 상기 데이터 셀의 절반은 튜닝 셀로서 사용되는, 방법.
  16. 제14항에 있어서, W- 값을 저장하는 상기 데이터 셀의 절반은 튜닝 셀로서 사용되는, 방법.
  17. 제11항에 있어서, 판독 동작 동안, 데이터 비트 라인 및 튜닝 비트 라인의 인접한 쌍은 감지 증폭기에 결합되는, 방법.
  18. 제17항에 있어서, 상기 데이터 비트 라인 및 상기 튜닝 비트 라인은 상호 교환가능한, 방법
  19. 제1항에 있어서, 상기 선택된 메모리 셀의 플로팅 게이트를 제1 전압으로 프로그래밍하는 상기 단계는 거친 프로그래밍을 포함하는, 방법.
  20. 제1항에 있어서, 상기 선택된 메모리 셀의 플로팅 게이트를 제1 전압으로 프로그래밍하는 상기 단계는 거친 프로그래밍 및 정밀 프로그래밍을 포함하는, 방법.
  21. 제1항에 있어서, 상기 선택된 메모리 셀의 플로팅 게이트를 프로그래밍하는 상기 단계 동안, 상기 선택된 메모리 셀의 전압이 상기 제1 전압을 초과하는 전압으로 오버 프로그래밍되는 경우, 상기 방법은 상기 선택된 메모리 셀을 소거하는 단계를 더 포함하는, 방법.
  22. 제1항에 있어서, 상기 선택된 메모리 셀의 플로팅 게이트 및 상기 인접한 튜닝 셀의 플로팅 게이트는 부분적으로 중첩되는, 방법.
  23. 신경 메모리에서 제1 메모리 셀을 타깃 값으로 프로그래밍하는 방법으로서,
    제2 메모리 셀의 단자에 프로그래밍 전압을 인가함으로써 상기 제2 메모리 셀을 프로그래밍하는 단계; 및
    상기 제1 메모리 셀의 출력이 상기 타깃 값에 도달했는지 여부를 결정하는 단계를 포함하는, 방법.
  24. 제23항에 있어서, 상기 제2 메모리 셀은 상기 제1 메모리 셀에 인접하는, 방법.
  25. 제23항에 있어서, 상기 제1 메모리 셀은 데이터 비트 라인에 결합되고, 상기 제2 메모리 셀은 튜닝 비트 라인에 결합되는, 방법.
  26. 제25항에 있어서,
    상기 프로그래밍 단계 전에, 한 쌍의 인접한 비트 라인에서 어떤 비트 라인이 더 큰 노이즈를 포함하는지 결정하고 해당 비트 라인을 상기 튜닝 비트 라인으로 지정하고 상기 쌍의 다른 비트 라인을 상기 데이터 비트 라인으로 지정하는 단계를 더 포함하는, 방법.
  27. 제23항에 있어서, 상기 제1 메모리 셀 및 상기 제2 메모리 셀은 아날로그 신경 메모리 어레이에 포함되는, 방법.
  28. 제23항에 있어서,
    상기 제1 메모리 셀의 출력이 상기 타깃 값에 도달하지 않은 경우, 상기 제1 메모리 셀의 출력이 상기 타깃 값에 도달할 때까지 상기 프로그래밍 및 결정하는 단계를 반복하는 단계를 더 포함하는, 방법.
  29. 제28항에 있어서, 각각의 반복 단계에 대해, 상기 제2 메모리 셀의 단자에 인가되는 상기 프로그래밍 전압 중 하나 이상을 증가시키는, 방법.
  30. 제28항에 있어서, 상기 동일한 프로그래밍 전압이 각각의 반복 단계 동안 사용되는, 방법.
  31. 제23항에 있어서, 상기 제2 메모리 셀의 단자는 비트 라인 단자, 소스 라인 단자, 및 워드 라인 단자를 포함하는, 방법.
  32. 제31항에 있어서, 상기 제2 메모리 셀의 단자는 제어 게이트 단자를 더 포함하는, 방법.
  33. 제32항에 있어서, 상기 제1 메모리 셀의 제어 게이트 단자는 제어 게이트 라인에 연결되고;
    상기 제어 게이트 라인은 상기 제1 메모리 셀을 포함하는 셀의 칼럼과 상기 제2 메모리 셀을 포함하는 셀의 인접한 칼럼의 제어 게이트 단자에 연결되는, 방법.
  34. 제34항에 있어서, 상기 제2 메모리 셀의 단자는 소거 게이트 단자를 더 포함하는, 방법
  35. 제34항에 있어서, 상기 제어 게이트는 상기 소거 게이트에 직교하는, 방법.
  36. 제34항에 있어서, 상기 제어 게이트는 상기 소스 라인에 직교하는, 방법.
  37. 제23항에 있어서, 상기 제1 메모리 셀 및 상기 제2 메모리 셀은 분리형 게이트 메모리 셀인, 방법.
  38. 제23항에 있어서, 상기 제1 메모리 셀 및 상기 제2 메모리 셀은 적층형 게이트 메모리 셀인, 방법.
  39. 제23항에 있어서, 서브-단일 전자와 동등한 전하는 상기 프로그래밍 단계 동안 상기 제1 메모리 셀의 플로팅 게이트에 추가되는, 방법.
  40. 제23항에 있어서, 상기 제1 메모리 셀 및 상기 제2 메모리 셀은 인접한 데이터 셀 및 튜닝 셀의 복수의 쌍을 포함하는 어레이 내에 포함되는, 방법.
  41. 제40항에 있어서, 인접한 데이터 셀 사이의 거리는 인접한 데이터 셀 및 튜닝 셀 사이의 거리보다 더 큰, 방법.
  42. 제23항에 있어서, 상기 결정 단계 동안, 상기 제1 메모리 셀에 결합된 비트 라인 및 상기 제2 메모리 셀에 연결된 비트 라인 모두가 감지 증폭기에 연결되는, 방법.
  43. 제23항에 있어서,
    상기 제1 메모리 셀에서 거친 프로그래밍을 수행하는 단계를 더 포함하는, 방법.
  44. 제23항에 있어서,
    상기 제1 메모리 셀에서 거친 프로그래밍을 수행하는 단계; 및
    상기 제1 메모리 셀에서 정밀 프로그래밍을 수행하는 단계를 더 포함하는, 방법.
  45. 제21항에 있어서, 상기 제1 메모리 셀의 플로팅 게이트 및 상기 제2 메모리 셀의 플로팅 게이트는 부분적으로 중첩되는, 방법.
KR1020227031893A 2020-02-26 2020-08-31 딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝 KR20220143076A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062981757P 2020-02-26 2020-02-26
US62/981,757 2020-02-26
US16/985,147 US11393535B2 (en) 2020-02-26 2020-08-04 Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network
US16/985,147 2020-08-04
PCT/US2020/048829 WO2021173185A1 (en) 2020-02-26 2020-08-31 Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network

Publications (1)

Publication Number Publication Date
KR20220143076A true KR20220143076A (ko) 2022-10-24

Family

ID=77366771

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227031893A KR20220143076A (ko) 2020-02-26 2020-08-31 딥 러닝 인공 신경망에서 아날로그 신경 메모리 셀의 초정밀 튜닝

Country Status (7)

Country Link
US (2) US11393535B2 (ko)
EP (1) EP4111453A1 (ko)
JP (1) JP7418602B2 (ko)
KR (1) KR20220143076A (ko)
CN (1) CN115191016A (ko)
TW (2) TWI759062B (ko)
WO (1) WO2021173185A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755899B2 (en) * 2019-11-11 2023-09-12 Silicon Storage Technology, Inc. Precise programming method and apparatus for analog neural memory in an artificial neural network
US11532354B2 (en) 2020-03-22 2022-12-20 Silicon Storage Technology, Inc. Precision tuning of a page or word of non-volatile memory cells and associated high voltage circuits for an analog neural memory array in an artificial neural network
US11907571B2 (en) * 2020-07-13 2024-02-20 SK Hynix Inc. Read threshold optimization systems and methods using domain transformation
US11355204B2 (en) 2020-09-03 2022-06-07 SK Hynix Inc. Efficient read-threshold calculation method for parametric PV-level modeling
US11430530B2 (en) 2021-01-25 2022-08-30 SK Hynix Inc. Deep learning based program-verify modeling and voltage estimation for memory devices
US11514999B2 (en) 2021-04-16 2022-11-29 SK Hynix Inc. Systems and methods for parametric PV-level modeling and read threshold voltage estimation
US11749354B2 (en) 2021-07-13 2023-09-05 SK Hynix Inc. Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation
US11769556B2 (en) 2021-07-27 2023-09-26 SK Hynix Inc. Systems and methods for modeless read threshold voltage estimation
US11769555B2 (en) 2021-07-27 2023-09-26 SK Hynix Inc. Read threshold voltage estimation systems and methods for parametric PV-level modeling
US11854629B2 (en) 2021-11-22 2023-12-26 SK Hynix Inc. System and method for non-parametric optimal read threshold estimation using deep neural network
KR20230114500A (ko) * 2022-01-25 2023-08-01 삼성전자주식회사 플래시 메모리 제어 방법 및 장치

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
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
US7064980B2 (en) * 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
US7049652B2 (en) 2003-12-10 2006-05-23 Sandisk Corporation Pillar cell flash memory technology
US20080273389A1 (en) * 2007-03-21 2008-11-06 Micron Technology, Inc. Flash memory cells, NAND cell units, methods of forming NAND cell units, and methods of programming NAND cell unit strings
US7936599B2 (en) 2007-06-15 2011-05-03 Micron Technology, Inc. Coarse and fine programming in a solid state memory
US7723774B2 (en) * 2007-07-10 2010-05-25 Silicon Storage Technology, Inc. Non-diffusion junction split-gate nonvolatile memory cells and arrays, methods of programming, erasing, and reading thereof, and methods of manufacture
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
JP2010123210A (ja) * 2008-11-20 2010-06-03 Toshiba Corp 半導体記憶装置
JP6833873B2 (ja) 2016-05-17 2021-02-24 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器
US10748630B2 (en) * 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network

Also Published As

Publication number Publication date
JP2023515531A (ja) 2023-04-13
TW202133163A (zh) 2021-09-01
CN115191016A (zh) 2022-10-14
EP4111453A1 (en) 2023-01-04
TW202219956A (zh) 2022-05-16
TWI778920B (zh) 2022-09-21
TWI759062B (zh) 2022-03-21
US11393535B2 (en) 2022-07-19
JP7418602B2 (ja) 2024-01-19
WO2021173185A1 (en) 2021-09-02
US20210264983A1 (en) 2021-08-26
US20220336020A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
JP7418602B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリセルの超精密チューニング
KR102457394B1 (ko) 딥 러닝 신경 네트워크에서 사용되는 아날로그 신경 메모리 시스템 내의 메모리 셀들에 대한 온도 및 누설 보상
US11636322B2 (en) Precise data tuning method and apparatus for analog neural memory in an artificial neural network
EP4298557A1 (en) Precise data tuning method and apparatus for analog neural memory in an artificial neural network
JP2023525771A (ja) 論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ
JP2023524835A (ja) ソース線プルダウン機構を備えた人工ニューラルネットワーク内のアナログニューラルメモリアレイ
US11989440B2 (en) Hybrid memory system configurable to store neural memory weight data in analog form or digital form
US20210209458A1 (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
US20230049032A1 (en) Output circuitry for analog neural memory in a deep learning artificial neural network
US20230154528A1 (en) Determination of a bias voltage to apply to one or more memory cells in a neural network
TW202343451A (zh) 包含i-v斜率組構的參考陣列之人工神經網路
WO2023195999A1 (en) Artificial neural network comprising reference array for i-v slope configuration
WO2024063792A1 (en) Verification method and system in artificial neural network array
CN117751406A (zh) 可配置为以模拟形式或数字形式存储神经存储器权重数据的混合存储器系统