KR20230158570A - 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로 - Google Patents

딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로 Download PDF

Info

Publication number
KR20230158570A
KR20230158570A KR1020237035599A KR20237035599A KR20230158570A KR 20230158570 A KR20230158570 A KR 20230158570A KR 1020237035599 A KR1020237035599 A KR 1020237035599A KR 20237035599 A KR20237035599 A KR 20237035599A KR 20230158570 A KR20230158570 A KR 20230158570A
Authority
KR
South Korea
Prior art keywords
output
volatile memory
memory cells
output circuit
voltage
Prior art date
Application number
KR1020237035599A
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 실리콘 스토리지 테크놀로지 인크
Priority claimed from PCT/US2021/049075 external-priority patent/WO2022245384A1/en
Publication of KR20230158570A publication Critical patent/KR20230158570A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • 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
    • 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
    • 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
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • G11C27/024Sample-and-hold arrangements using a capacitive memory element
    • G11C27/026Sample-and-hold arrangements using a capacitive memory element associated with an amplifier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Networks Using Active Elements (AREA)
  • Feedback Control In General (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

딥 러닝 인공 신경망에서 아날로그 뉴럴 메모리에 대한 출력 회로에 대해 다양한 실시예가 개시된다. 일부 실시예에서, 출력 블록은 W+ 비트 라인으로부터 전류 및 연관된 W- 비트 라인으로부터의 전류를 수신하고, 출력 블록은 특정 실시예에서 차동 신호이고 다른 실시예에서 단일 종단 신호인 출력 신호를 생성한다.

Description

딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로
우선권 주장
본 출원은 2021년 5월 19일자로 출원되고, 발명의 명칭이 "딥러닝 인공 신경망에서 아날로그 뉴럴 메모리를 위한 하이브리드 출력 아키텍처"인 미국 특허 가출원 제63/190,240호, 및 2021년 8월 31일자로 출원되고, 발명의 명칭이 "딥러닝 인공 신경망에서 아날로그 뉴럴 메모리를 위한 출력 회로"인 미국 특허 출원 제17/463,063호에 대한 우선권을 주장하며, 이는 본원에 참조로 통합된다.
기술분야
딥 러닝 인공 신경망에서 아날로그 뉴럴 메모리를 위한 하이브리드 출력 아키텍처에 대해 다양한 실시예가 개시된다.
인공 신경망은 생물학적 신경망(동물의 중추신경계, 특히 뇌)을 모방하며, 다수의 입력에 의존할 수 있고 일반적으로 알려져 있지 않은 함수를 추정하거나 근사화하는 데 이용된다. 인공 신경망은 일반적으로 서로 간에 메시지를 교환하는 상호 연결된 "뉴런"의 계층을 포함한다.
도 1은 인공 신경망을 예시하며, 원은 입력 또는 뉴런의 계층을 표현한다. (시냅스로 지칭되는) 연결은 화살표로 표현되며, 경험에 기초하여 튜닝될 수 있는 수치 가중치를 갖는다. 이것은 신경망을 입력에 적응할 수 있고 학습할 수 있게 만든다. 통상적으로, 신경망은 다수의 입력 계층을 포함한다. 통상적으로 뉴런의 하나 이상의 중간 계층, 및 신경망의 출력을 제공하는 뉴런의 출력 계층이 있다. 각 레벨의 뉴런은 개별적으로 또는 집합적으로 시냅스로부터 수신된 데이터에 기초하여 결정을 내린다.
고성능 정보 처리를 위한 인공 신경망의 개발에서의 주요 문제 중 하나는 적절한 하드웨어 기술의 결여이다. 사실상, 실제 신경망은 매우 많은 수의 시냅스에 의존하며, 뉴런 사이의 높은 연결성, 즉 매우 높은 계산 병렬성을 가능하게 한다. 원칙적으로, 그러한 복잡성은 디지털 슈퍼컴퓨터 또는 특수 그래픽 처리 유닛 클러스터로 달성될 수 있다. 그러나, 고비용 외에도, 이들 접근법은 또한 주로 저정밀 아날로그 계산을 수행하기 때문에 훨씬 적은 에너지를 소비하는 생물학적 망에 비해 평범한 에너지 효율을 겪는다. CMOS 아날로그 회로가 인공 신경망에 사용되어 왔지만, 대부분의 CMOS 구현 시냅스는 많은 수의 뉴런 및 시냅스를 고려해 볼 때 너무 부피가 컸다.
출원인은 참조로 포함되는, 미국 특허 출원 번호 제15/594,439호에서 하나 이상의 비휘발성 메모리 어레이를 시냅스로서 활용하는 인공(아날로그) 신경망을 이전에 개시하였다. 비휘발성 메모리 어레이들은 아날로그 뉴럴 메모리로서 작동한다. 신경망 장치는 제1 복수의 입력을 수신하고 그로부터 제1 복수의 출력을 생성하도록 구성된 제1 복수의 시냅스, 및 제1 복수의 출력을 수신하도록 구성된 제1 복수의 뉴런을 포함한다. 제1 복수의 시냅스는 복수의 메모리 셀을 포함하며, 메모리 셀 각각은 반도체 기판 내에 형성되고 그 사이에 연장되는 채널 영역을 갖는 이격된 소스 영역 및 드레인 영역, 채널 영역의 제1 부분 위에 배치되고 그로부터 절연되는 플로팅 게이트, 및 채널 영역의 제2 부분 위에 배치되고 그로부터 절연되는 비플로팅 게이트를 포함한다. 복수의 메모리 셀 각각은 플로팅 게이트 상의 전자의 수에 대응하는 가중치 값을 저장하도록 구성된다. 복수의 메모리 셀은 제1 복수의 입력을 저장된 가중치 값과 승산하여 제1 복수의 출력을 생성하도록 구성된다.
비휘발성 메모리 셀
비휘발성 메모리는 잘 알려져 있다. 예를 들어, 본 원에 참조로 포함되는, 미국 특허 제5,029,130호("'130 특허")는 플래시 메모리 셀의 한 유형인, 분리형 게이트 비휘발성 메모리 셀의 어레이를 개시하고 있다. 그러한 메모리 셀(210)이 도 2에 도시되어 있다. 각 메모리 셀(210)은 반도체 기판(12) 내에 형성된, 그 사이에 채널 영역(18)을 갖는 소스 영역(14) 및 드레인 영역(16)을 포함한다. 플로팅 게이트(20)는 채널 영역(18)의 제1 부분 위에 형성되고 그로부터 절연되며(그리고 전도도를 제어하며), 소스 영역(14)의 일부분 위에 형성된다. 워드 라인 단자(22)(전형적으로 워드 라인에 결합되는)는 채널 영역(18)의 제2 부분 위에 배치되고 그로부터 절연되는(그리고 그의 전도도를 제어하는) 제1 부분, 및 플로팅 게이트(20) 위로 연장되는 제2 부분을 갖는다. 플로팅 게이트(20) 및 워드 라인 단자(22)는 게이트 산화물에 의해 기판(12)으로부터 절연된다. 비트 라인(24)은 드레인 영역(16)에 결합된다.
메모리 셀(210)은 워드 라인 단자(22) 상에 높은 양의 전압을 배치함으로써 소거되며(전자가 플로팅 게이트로부터 제거됨), 플로팅 게이트(20) 상의 전자가 파울러-노드하임(FN) 터널링을 통해 중간 절연체를 통과하여 플로팅 게이트(20)로부터 워드 라인 단자(22)로 터널링하게 한다.
메모리 셀(210)은 워드 라인 단자(22) 상에 양의 전압 및 소스 영역(14) 상에 양의 전압을 배치함으로써 고온 전자에 의한 소스 측 주입(SSI)에 의해 프로그램된다(전자가 플로팅 게이트 상에 배치됨). 전자 전류가 드레인 영역(16)으로부터 소스 영역(14)을 향해 흐를 것이다. 전자는 워드 라인 단자(22)와 플로팅 게이트(20) 사이의 간극에 도달할 때 가속되고 가열될 것이다. 가열된 전자 중 일부는 플로팅 게이트(20)로부터의 정전기적 인력으로 인해 게이트 산화물을 통과하여 플로팅 게이트(20) 상으로 주입될 것이다.
메모리 셀(210)은 드레인 영역(16) 및 워드 라인 단자(22) 상에 양의 판독 전압을 배치함(워드 라인 단자 아래의 채널 영역(18)의 부분을 턴온시킴)으로써 판독된다. 플로팅 게이트(20)가 양으로 대전되면(즉, 전자가 소거되면), 플로팅 게이트(20) 아래의 채널 영역(18)의 부분이 또한 턴온되고, 전류가 채널 영역(18)을 가로질러 흐를 것이며, 소거된 또는 "1" 상태로 감지된다. 플로팅 게이트(20)가 음으로 대전되면(즉, 전자로 프로그램되면), 플로팅 게이트(20) 아래의 채널 영역의 부분은 대부분 또는 완전히 턴오프되고, 전류가 채널 영역(18)을 가로질러 흐르지 않을 것이며(또는 흐름이 거의 없을 것이며), 프로그램된 또는 "0" 상태로 감지된다.
표 1은 판독, 소거, 및 프로그램 작동을 수행하기 위해 메모리 셀(110)의 단자에 적용될 수 있는 전형적인 전압 및 전류 범위를 도시한다:
[표 1]
다른 타입의 플래시 메모리 셀인 다른 분리형 게이트 메모리 셀 구성이 알려져 있다. 예를 들어, 도 3은 소스 영역(14), 드레인 영역(16), 채널 영역(18)의 제1 부분 위의 플로팅 게이트(20), 채널 영역(18)의 제2 부분 위의 선택 게이트(22)(전형적으로 워드 라인(WL)에 결합됨), 플로팅 게이트(20) 위의 제어 게이트(28), 및 소스 영역(14) 위의 소거 게이트(30)를 포함하는 4개 게이트 메모리 셀(310)을 도시한다. 이러한 구성은, 모든 목적을 위해 본 원에 참조로 포함되는, 미국 특허 제6,747,310호에 설명되어 있다. 여기서, 모든 게이트는 플로팅 게이트(20)를 제외하고 비플로팅 게이트이며, 그들이 전압원에 전기적으로 연결되거나 연결 가능하다는 것을 의미한다. 프로그래밍은 채널 영역(18)으로부터의 가열된 전자가 플로팅 게이트(20) 상으로 자신을 주입하는 것에 의해 수행된다. 소거는 전자가 플로팅 게이트(20)로부터 소거 게이트(30)로 터널링하는 것에 의해 수행된다.
표 2는 판독, 소거, 및 프로그램 작동을 수행하기 위해 메모리 셀(310)의 단자에 적용될 수 있는 전형적인 전압 및 전류 범위를 도시한다:
[표 2]
도 4는 플래시 메모리 셀의 다른 유형인 3개 게이트 메모리 셀(410)을 도시한다. 메모리 셀(410)은, 메모리 셀(410)이 별개의 제어 게이트를 갖지 않는다는 점을 제외하고는, 도 3의 메모리 셀(310)과 동일하다. 소거 작동(소거 게이트의 사용을 통해 발생하는 소거에 의해) 및 판독 작동은, 제어 게이트 바이어스가 적용되지 않는다는 점을 제외하고는, 도 3의 것과 유사하다. 프로그래밍 작동은 또한, 제어 게이트 바이어스 없이 행해지고, 결과적으로, 제어 게이트 바이어스의 결여를 보상하기 위해 프로그램 작동 동안 소스 라인 상에 더 높은 전압이 적용되어야 한다.
표 3은 판독, 소거, 및 프로그램 작동을 수행하기 위해 메모리 셀(410)의 단자에 적용될 수 있는 전형적인 전압 및 전류 범위를 도시한다:
[표 3]
도 5는 플래시 메모리 셀의 다른 유형인 적층형 게이트 메모리 셀(510)을 도시한다. 메모리 셀(510)은, 절연층(미도시)에 의해 분리되어, 플로팅 게이트(20)가 전체 채널 영역(18) 위로 연장되고, 제어 게이트(22)(여기서 워드 라인에 결합될 것임)가 플로팅 게이트(20) 위로 연장된다는 점을 제외하고는, 도 2의 메모리 셀(210)과 유사하다. 소거는 FG로부터 기판으로의 전자의 FN 터널링에 의해 행해지고, 프로그래밍은 채널(18)과 드레인 영역(16) 사이의 영역에서 채널 고온 전자(CHE) 주입에 의해, 소스 영역(14)으로부터 드레인 영역(16)으로 흐르는 전자에 의하며 더 높은 제어 게이트 전압을 갖는 메모리 셀(210)에 대한 그것과 유사한 판독 작동에 의한 것이다.
표 4는 판독, 소거, 및 프로그램 작동을 수행하기 위해 메모리 셀(510) 및 기판(12)의 단자에 적용될 수 있는 전형적인 전압 범위를 도시한다:
[표 4]
본 원에서 설명된 방법 및 수단은, 제한 없이, FINFET 분리형 게이트 플래시 또는 적층 게이트 플래시 메모리, NAND 플래시, SONOS(실리콘-산화물-질화물-산화물-실리콘, 질화물 내의 전하 트랩), MONOS(금속-산화물-질화물-산화물-실리콘, 질화물 내의 금속 전하 트랩), ReRAM(저항성 램), PCM(상 변화 메모리), MRAM(강자기 램), FeRAM(강유전체 램), CT(전하 트랩) 메모리, CN(탄소 나노튜브) 메모리, OTP(2 레벨 또는 복수 레벨 1회 프로그램 가능), 및 CeRAM(상관 전자 램)과 같은 다른 비휘발성 메모리 기술에 적용될 수 있다.
인공 신경망에서 전술한 비휘발성 메모리 셀의 유형 중 하나를 포함하는 메모리 어레이를 활용하기 위해, 2개의 수정이 이루어진다. 첫째, 라인은 하기에서 더 설명되는 바와 같이, 각 메모리 셀이 어레이 내의 다른 메모리 셀의 메모리 상태에 악영향을 미치지 않으면서 개별적으로 프로그램, 소거, 및 판독될 수 있도록 구성된다. 둘째, 메모리 셀의 연속적인(아날로그) 프로그래밍이 제공된다.
구체적으로, 어레이 내의 각 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적 및 다른 메모리 셀의 교란을 최소화하며, 완전 소거된 상태로부터 완전 프로그램된 상태로 연속적으로 변경될 수 있다. 다른 실시예에서, 어레이 내의 각 메모리 셀의 메모리 상태(즉, 플로팅 게이트 상의 전하)는, 독립적 및 다른 메모리 셀의 교란을 최소화하며, 완전 프로그램된 상태로부터 완전 소거된 상태로 연속적으로 변경될 수 있고, 그 역으로도 가능하다. 이것은 셀 저장소가 아날로그이거나 또는 적어도, 많은 개별 값(예를 들어 16개 또는 64개의 상이한 값) 중 하나를 저장할 수 있음을 의미하며, 메모리 어레이 내의 모든 셀의 매우 정밀하고 개별적인 튜닝을 허용하고, 메모리 어레이를 신경망의 시냅스 가중치에 대한 미세 튜닝 조절을 저장하고 행하는 데 이상적인 것으로 되게 한다.
비휘발성 메모리 셀 어레이를 채용한 신경망
도 6은 본 실시예의 비휘발성 메모리 어레이를 활용하는 신경망의 비제한적인 예를 개념적으로 예시한다. 이 예는 안면 인식 응용을 위해 비휘발성 메모리 어레이 신경망을 이용하지만, 임의의 다른 적절한 응용이 비휘발성 메모리 어레이 기반 신경망을 이용하여 구현될 수 있다.
(S0)은, 이 예에 대해, 5 비트 정밀도를 갖는 32x32 픽셀 RGB 이미지(즉, 각각의 색깔 R, G 및 B에 대해 하나씩인 3개의 32x32 픽셀 어레이, 각 픽셀은 5 비트 정밀도임)인 입력 계층이다. 입력 계층(S0)으로부터 계층(C1)으로 가는 시냅스(CB1)는 일부 경우에 가중치 및 다른 경우에 공유 가중치의 상이한 세트를 적용하며, 입력 이미지를 3x3 픽셀 중첩 필터(커널)로 스캔하며, 필터를 1개의 픽셀(또는 모델에 의해 지시되는 바와 같이 1개 초과의 픽셀)만큼 시프트한다. 구체적으로, 이미지의 3x3 부분 내의 9개 픽셀(즉, 필터 또는 커널로 지칭됨)에 대한 값이 시냅스(CB1)에 제공되며, 이들 9개의 입력 값이 적절한 가중치와 승산되고, 그 승산의 출력을 합산한 후, 단일 출력 값이 결정되고, 계층(C1)의 피처 맵 중 하나의 픽셀을 생성하기 위해 CB1의 제1 시냅스에 의해 제공된다. 이어서, 3x3 필터가 입력 계층(S0) 내에서 하나의 픽셀만큼 우측으로 시프트되며(즉, 우측 상에 3개 픽셀의 열을 추가하고, 좌측 상에 3개 픽셀의 열을 뺌), 이에 의해 이러한 새롭게 위치된 필터에서의 9개 픽셀 값이 시냅스(CB1)에 제공되며, 그들은 동일한 가중치와 승산되고, 제2 단일 출력 값이 연관된 시냅스에 의해 결정된다. 이러한 프로세스는, 3개의 모든 색깔 및 모든 비트(정밀도 값)에 대해, 3x3 필터가 입력 계층(S0)의 전체 32x32 픽셀 이미지를 가로질러서 스캔할 때까지 계속된다. 이어서, 프로세스는, 계층(C1)의 상이한 피처 맵을 생성하기 위해, 계층(C1)의 모든 피처 맵이 계산될 때까지, 가중치의 상이한 세트를 사용하여 반복된다.
계층(C1)에, 본 예에서, 각각 30x30 픽셀을 갖는 16개의 피처 맵이 있다. 각 픽셀은 입력과 커널을 승산하는 것으로부터 추출된 새로운 피처 픽셀이고, 따라서 각 피처 맵은 2차원 어레이이고, 따라서, 이러한 예에서, 계층(C1)은 2차원 어레이의 16개 계층을 구성한다(본 원에서 언급된 계층 및 어레이는 반드시 물리적 관계인 것이 아니라 논리적 관계임 - 즉, 어레이는 반드시 물리적으로 2차원 어레이로 배향되지는 않음에 유념함). 계층(C1) 내의 16개의 피처 맵의 각각은 필터 스캔에 적용된 시냅스 가중치의 상이한 16개 세트 중 하나에 의해 생성된다. (C1) 피처 맵은 모두, 경계 식별과 같은 동일한 이미지 피처의 상이한 양태에 관한 것일 수 있다. 예를 들어, 제1 맵(이러한 제1 맵을 생성하는 데 사용되는 모든 스캔을 위해 공유되는 제1 가중치 세트를 사용하여 생성됨)은 원형 에지를 식별할 수 있고, 제2 맵(제1 가중치 세트와는 상이한 제2 가중치 세트를 사용하여 생성됨)은 직사각형 에지, 또는 특정 피처의 종횡비 등을 식별할 수 있다.
활성화 함수(P1)(풀링)가 계층(C1)으로부터 계층(S1)으로 가기 전에 적용되며, 각 피처 맵 내의 연속적인 비중첩 2x2 영역으로부터의 값을 풀링한다. 풀링 함수(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개의 뉴런을 포함하며, 최고 출력 뉴런이 클래스를 결정한다. 이러한 출력은, 예를 들어, 원래의 이미지의 내용의 식별 또는 분류를 나타낼 수 있다.
시냅스의 각 계층은 비휘발성 메모리 셀의 어레이 또는 어레이의 일부를 사용하여 구현된다.
도 7은 그 목적을 위해 사용될 수 있는 어레이의 블록 도면이다. 벡터x매트릭스 승산(VMM) 어레이(32)는 비휘발성 메모리 셀을 포함하며, 하나의 계층과 다음 계층 사이에서 시냅스(도 6의 (CB1), (CB2), (CB3), (CB4)와 같은)로서 활용된다. 구체적으로, VMM 어레이(32)는 비휘발성 메모리 셀(33)의 어레이, 소거 게이트 및 워드 라인 게이트 디코더(34), 제어 게이트 디코더(35), 비트 라인 디코더(36) 및 소스 라인 디코더(37)를 포함하며, 비휘발성 메모리 셀 어레이(33)에 대한 각각의 입력을 디코딩한다. VMM 어레이(32)로의 입력은 소거 게이트 및 워드 라인 게이트 디코더(34)로부터 또는 제어 게이트 디코더(35)로부터 일 수 있다. 이 예에서, 소스 라인 디코더(37)는 또한 비휘발성 메모리 셀 어레이(33)의 출력을 디코딩한다. 대안적으로, 비트 라인 디코더(36)는 비휘발성 메모리 셀 어레이(33)의 출력을 디코딩할 수 있다.
비휘발성 메모리 셀 어레이(33)는 2개의 목적을 담당한다. 첫째, 그것은 VMM 어레이(32)에 의해 사용될 가중치를 저장한다. 둘째, 비휘발성 메모리 셀 어레이(33)는 입력을 비휘발성 메모리 셀 어레이(33)에 저장된 가중치와 사실상 승산하고 다음 계층으로의 입력 또는 최종 계층으로의 입력이 될 출력을 생성하기 위해 출력 라인(소스 라인 또는 비트 라인)마다 가산한다. 승산 및 가산 함수를 수행함으로써, 비휘발성 메모리 셀 어레이(33)는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 그의 인-시츄 메모리 계산으로 인해 전력 효율적이다.
비휘발성 메모리 셀 어레이(33)의 출력은 차동 합산기(합산 연산 증폭기 또는 합산 전류 미러와 같은)(38)에 공급되며, 그 콘볼루션에 대한 단일 값을 생성하기 위해 비휘발성 메모리 셀 어레이(33)의 출력을 합산한다. 차동 합산기(38)는 양의 가중치 및 음의 가중치의 합산을 수행하도록 배열된다.
이어서 차동 합산기(38)의 합산된 출력 값은 출력을 정류하는 활성화 함수 블록(39)에 공급된다. 활성화 함수 블록(39)은 시그모이드, tanh 또는 ReLU 함수를 제공할 수 있다. 활성화 함수 블록(39)의 정류된 출력 값은 다음 계층(예를 들어, 도 6의 C1)으로서 피처 맵의 요소가 되고, 이어서 다음 피처 맵 계층 또는 최종 계층을 생성하기 위해 다음 시냅스에 적용된다. 따라서, 이 예에서, 비휘발성 메모리 셀 어레이(33)는 복수의 시냅스(이전 뉴런 계층으로부터 또는 이미지 데이터베이스와 같은 입력 계층으로부터 그들의 입력을 수신함)를 구성하고, 합산 연산 증폭기(38) 및 활성화 함수 블록(39)은 복수의 뉴런을 구성한다.
도 7의 VMM 어레이(32)에 대한 입력(WLx, EGx, CGx, 및 선택적으로 BLx 및 SLx)은 아날로그 레벨, 이진 레벨, 또는 디지털 비트일 수 있고(이 경우, DAC는 디지털 비트를 적절한 입력 아날로그 레벨로 변환하기 위해 제공됨), 출력은 아날로그 레벨, 이진 레벨, 또는 디지털 비트일 수 있다(이 경우, 출력 ADC는 출력 아날로그 레벨을 디지털 비트로 변환하기 위해 제공됨).
도 8은 여기에서 VMM 어레이(32a, 32b, 32c, 32d, 및 32e)로 표지된 VMM 어레이(32)의 다수의 계층의 사용을 도시하는 블록 도면이다. 도 8에 도시된 바와 같이, Inputx로 표기된 입력은 디지털-아날로그 변환기(31)에 의해 디지털로부터 아날로그로 변환되고, 입력 VMM 어레이(32a)에 제공된다. 변환된 아날로그 입력은 전압 또는 전류일 수 있다. 제1 계층에 대한 입력 D/A 변환은, 입력(Inputx)을 입력 VMM 어레이(32a)의 매트릭스 승산기에 대한 적절한 아날로그 레벨에 매핑시키는 함수 또는 LUT(룩업테이블)를 사용함으로써 행해질 수 있다. 입력 변환은 또한, 외부 아날로그 입력을 입력 VMM 어레이(32a)로 매핑된 아날로그 입력으로 변환하기 위한 아날로그-아날로그(A/A) 변환기에 의해 행해질 수 있다.
입력 VMM 어레이(32a)에 의해 생성된 출력은 다음 VMM 어레이(은닉 레벨 1)(32b)로의 입력으로서 제공되고, 이어서 다음 VMM 어레이(은닉 레벨 2)(32c)로의 입력으로서 제공되는 출력을 생성하는, 등등이다. VMM 어레이(32)의 다양한 계층은 콘볼루션 신경망(CNN)의 시냅스 및 뉴런의 상이한 계층으로서 기능한다. 각 VMM 어레이(32a, 32b, 32c, 32d, 및 32e)는 독립형, 물리적 비휘발성 메모리 어레이일 수 있으며, 또는 다수의 VMM 어레이는 동일한 물리적 비휘발성 메모리 어레이의 상이한 부분을 활용할 수 있으며, 또는 다수의 VMM 어레이는 동일한 물리적 비휘발성 메모리 어레이의 중첩 부분을 활용할 수 있다. 도 8에 도시된 예는 다음과 같은 5개의 계층(32a, 32b, 32c, 32d, 32e)을 포함한다: 하나의 입력 계층(32a), 2개의 은닉 계층(32b, 32c) 및 2개의 완전히 연결된 계층(32d, 32e). 당업자는 이것은 단지 예시적인 것이고 시스템이 대신에 2개 초과의 은닉 계층 및 2개 초과의 완전히 연결된 계층을 포함할 수 있다는 것을 인식할 것이다.
벡터x매트릭스 승산(VMM) 어레이
도 9는 뉴런 VMM 어레이(900)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀(310)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(900)는 비휘발성 메모리 셀의 메모리 어레이(901) 및 비휘발성 기준 메모리 셀의 기준 어레이(902)(어레이의 상부에 있는)를 포함한다. 대안적으로, 다른 기준 어레이가 바닥에 배치될 수 있다.
VMM 어레이(900)에서, 제어 게이트 라인(903)과 같은 제어 게이트 라인이 수직 방향으로 이어지고(따라서, 행 방향의 기준 어레이(902)는 제어 게이트 라인(903)에 직교함), 소거 게이트 라인(904)과 같은 소거 게이트 라인이 수평 방향으로 이어진다. 여기서, VMM 어레이(900)로의 입력은 제어 게이트 라인(CG0, CG1, CG2, CG3) 상에 제공되고, VMM 어레이(900)의 출력은 소스 라인(SL0, SL1) 상에 나타난다. 일 실시예에서, 짝수 행만이 사용되고, 다른 실시예에서 홀수 행만이 사용된다. 각 소스 라인(SL0, SL1, 각각) 상에 배치된 전류는 그 특정 소스 라인에 연결된 메모리 셀로부터의 모든 전류의 합산 함수를 수행한다.
신경망에 대해 본 원에 설명된 바와 같이, VMM 어레이(900)의 비휘발성 메모리 셀, 즉 VMM 어레이(900)의 메모리 셀(310)은 바람직하게는 하위-임계 영역에서 작동하도록 구성된다.
본 원에 기술된 비휘발성 기준 메모리 셀 및 비휘발성 메모리 셀은 약한 반전(하위-임계 영역)에서 바이어싱되며:
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 로그 변환기에 대해:
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
여기서, wa = 메모리 어레이 내의 각 메모리 셀의 w이다.
Vthp는 주변 메모리 셀의 유효 임계 전압이고, Vtha는 메인(데이터) 메모리 셀의 유효 임계 전압이다. 트랜지스터의 임계 전압은 기판 바디 바이어스 전압의 함수이고, Vsb로 표시된 기판 바디 바이어스 전압은 그러한 온도에서 다양한 조건을 보상하도록 변조될 수 있다는 점에 유의한다. 임계 전압(Vth)은 다음과 같이 표현될 수 있다:
Vth = Vth0 + 감마
여기서 Vth0은 제로 기판 바이어스를 갖는 임계 전압이고, φF는 표면 전위이고, 감마는 바디 효과 파라미터이다.
워드 라인 또는 제어 게이트는 입력 전압을 위해 메모리 셀에 대한 입력으로서 사용될 수 있다.
대안적으로, 본 원에서 설명된 VMM 어레이의 플래시 메모리 셀은 선형 영역에서 작동하도록 구성될 수 있다:
Ids = 베타* (Vgs-Vth)*Vds; 베타 = u*Cox*Wt/L
W = α (Vgs-Vth)이다.
이는 선형 영역에서의 가중치(W)가 (Vgs-Vth)에 비례한다는 것을 의미함
워드 라인 또는 제어 게이트 또는 비트 라인 또는 소스 라인은 선형 영역에서 작동되는 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 메모리 셀에 대한 출력으로서 사용될 수 있다.
I-V 선형 변환기에 대해, 선형 영역에서 작동하는 메모리 셀(기준 메모리 셀 또는 주변 메모리 셀과 같은) 또는 트랜지스터는 입력/출력 전류를 입력/출력 전압으로 선형적으로 변환하는 데 사용될 수 있다.
대안적으로, 본 원에 기술된 VMM 어레이의 메모리 셀은 포화 영역에서 작동하도록 구성될 수 있다:
Ids = ½ * 베타* (Vgs-Vth)2 ; 베타 = u*Cox*Wt/L
Wα (Vgs-Vth)2, 이는 가중치(W)가 (Vgs-Vth)2에 비례한다는 것을 의미함
워드 라인, 제어 게이트, 또는 소거 게이트가 포화 영역에서 작동되는 메모리 셀에 대한 입력으로서 사용될 수 있다. 비트 라인 또는 소스 라인은 출력 뉴런에 대한 출력으로서 사용될 수 있다.
대안적으로, 본 원에 기술된 VMM 어레이의 메모리 셀은 신경망의 각각의 계층 또는 다중 계층에 대한 모든 영역 또는 이들(하위 임계, 선형, 또는 포화)의 조합에서 사용될 수 있다.
도 7의 VMM 어레이(32)에 대한 다른 실시예가, 본 원에 참조로 포함되는 미국 특허 출원 제10,748,630호에 설명되어 있다. 그 출원에 설명되어 있는 바와 같이, 소스 라인 또는 비트 라인이 뉴런 출력(전류 합산 출력)으로서 사용될 수 있다.
도 10은 뉴런 VMM 어레이(1000)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 계층과 다음 계층 사이의 시냅스로서 활용된다. VMM 어레이(1000)는 비휘발성 메모리 셀의 메모리 어레이(1003), 제1 비휘발성 기준 메모리 셀의 기준 어레이(1001), 및 제2 비휘발성 기준 메모리 셀의 기준 어레이(1002)를 포함한다. 어레이의 열 방향으로 배열된 기준 어레이(1001 및 1002)는, 단자(BLR0, BLR1, BLR2, 및 BLR3) 내로 흐르는 전류 입력을 전압 입력(WL0, WL1, WL2, 및 WL3)으로 변환하는 것을 담당한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀은 그들 내로 흐르는 전류 입력으로 다중화기(1014)(단지 부분적으로 도시됨)를 통해 다이오드 연결된다. 기준 셀은 타겟 기준 레벨로 튜닝(예를 들어, 프로그램된)된다. 타겟 기준 레벨은 기준 미니 어레이 매트릭스(미도시)에 의해 제공된다.
메모리 어레이(1003)는 2개의 목적을 담당한다. 첫째, 그것은 VMM 어레이(1000)에 의해 사용될 가중치를 그것의 각각의 메모리 셀 상에 저장한다. 둘째, 메모리 어레이(1003)는 입력(즉, 기준 어레이(1001 및 1002)가 워드 라인(WL0, WL1, WL2, 및 WL3)에 공급하기 위해 입력 전압으로 변환하는, 단자(BLR0, BLR1, BLR2, 및 BLR3)에 제공되는 전류 입력)을 메모리 어레이(1003)에 저장된 가중치와 사실상 승산하고, 이어서 모든 결과(메모리 셀 전류)를, 다음 계층에 대한 입력 또는 최종 계층에 대한 입력이 될 각각의 비트 라인(BL0 - BLN) 상의 출력을 생성하기 위해 가산한다.
승산 및 가산 함수를 수행함으로써, 메모리 어레이(1003)는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 전압 입력은 워드 라인(WL0, WL1, WL2, 및 WL3) 상에 제공되고, 출력은 판독(추론) 작동 동안 각각의 비트 라인(BL0 - BLN)상에 나타난다. 비트 라인(BL0 - BLN) 각각의 상에 배치된 전류는 그 특정 비트 라인에 연결된 모든 비휘발성 메모리 셀로부터의 전류의 합산 함수를 수행한다.
표 5은 VMM 어레이(1000)에 대한 작동 전압 및 전류를 도시한다. 표 내의 열은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타낸다. 행은 판독, 소거, 및 프로그램의 작동을 나타낸다.
[표 5]
도 11은 뉴런 VMM 어레이(1100)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(1100)는 비휘발성 메모리 셀의 메모리 어레이(1103), 제1 비휘발성 기준 메모리 셀의 기준 어레이(1101), 및 제2 비휘발성 기준 메모리 셀의 기준 어레이(1102)를 포함한다. 기준 어레이(1101 및 1102)는 VMM 어레이(1100)의 행 방향으로 이어진다. VMM 어레이는, VMM 어레이(1100)에서 워드 라인이 수직 방향으로 이어진다는 점을 제외하고는, VMM(1000)과 유사하다. 여기서, 입력은 워드 라인(WLA0, WLB0, WLA1, WLB2, WLA2, WLB2, WLA3, WLB3) 상에 제공되고, 출력은 판독 작동 동안 소스 라인(SL0, SL1) 상에 나타난다. 각 소스 라인 상에 배치된 전류는 그 특정 소스 라인에 연결된 메모리 셀로부터의 모든 전류의 합산 함수를 수행한다.
표 6은 VMM 어레이(1100)에 대한 작동 전압 및 전류를 도시한다. 표 내의 열은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타낸다. 행은 판독, 소거, 및 프로그램의 작동을 나타낸다.
[표 6]
도 12는 뉴런 VMM 어레이(1200)를 도시하며, 이는 도 3에 도시된 바와 같은 메모리 셀(310)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(1200)는 비휘발성 메모리 셀의 메모리 어레이(1203), 제1 비휘발성 기준 메모리 셀의 기준 어레이(1201), 및 제2 비휘발성 기준 메모리 셀의 기준 어레이(1202)를 포함한다. 기준 어레이(1201 및 1202)는 단자(BLR0, BLR1, BLR2, 및 BLR3) 내로 흐르는 전류 입력을 전압 입력(CG0, CG1, CG2, 및 CG3)으로 변환하는 것을 담당한다. 실제로, 제1 및 제2 비휘발성 기준 메모리 셀은 BLR0, BLR1, BLR2, 및 BLR3을 통해 그들 내로 흐르는 전류 입력으로 다중화기(1212)(단지 부분적으로 도시됨)를 통해 다이오드 연결된다. 다중화기(1212) 각각은 판독 작동 동안 제1 및 제2 비휘발성 기준 메모리 셀 각각의 비트 라인(BLR0과 같은) 상의 일정한 전압을 보장하기 위해 각각의 다중화기(1205) 및 캐스코딩 트랜지스터(1204)를 포함한다. 기준 셀은 타겟 기준 레벨로 튜닝된다.
메모리 어레이(1203)는 2개의 목적을 담당한다. 첫째, 그것은 VMM 어레이(1200)에 의해 사용될 가중치를 저장한다. 둘째, 메모리 어레이(1203)는 입력(단자(BLR0, BLR1, BLR2, 및 BLR3)에 제공되는 전류 입력, 기준 어레이(1201 및 1202)는 이러한 전류 입력을 제어 게이트(CG0, CG1, CG2, 및 CG3)에 공급할 입력 전압으로 변환함)을 메모리 어레이에 저장된 가중치와 사실상 승산하고, 이어서 모든 결과(셀 전류)를, (BL0 - BLN) 상에 나타나며 다음 계층에 대한 입력 또는 최종 계층에 대한 입력이 될, 출력을 생성하기 위해 가산한다. 승산 및 가산 함수를 수행함으로써, 메모리 어레이는 별개의 승산 및 가산 로직 회로에 대한 필요성을 무효화하고, 또한 전력 효율적이다. 여기서, 입력은 제어 게이트 라인(CG0, CG1, CG2, 및 CG3) 상에 제공되고, 출력은 판독 작동 동안 비트 라인(BL0 - BLN) 상에 나타난다. 각 비트 라인 상에 배치된 전류는 그 특정 비트 라인에 연결된 메모리 셀로부터의 모든 전류의 합산 함수를 수행한다.
VMM 어레이(1200)는 메모리 어레이(1203) 내의 비휘발성 메모리 셀에 대한 단방향 튜닝을 구현한다. 즉, 각 비휘발성 메모리 셀은 소거되고, 이어서 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그램된다. (잘못된 값이 셀에 저장되도록) 너무 많은 전하가 플로팅 게이트 상에 배치되는 경우, 셀은 소거되고, 부분 프로그래밍 작동의 시퀀스가 다시 시작된다. 도시된 바와 같이, 동일한 소거 게이트(EG0 또는 Eg1과 같은)를 공유하는 2개의 행가 함께 소거되고(페이지 소거로서 알려짐), 그 후에 각각의 셀은 플로팅 게이트 상의 원하는 전하에 도달할 때까지 부분적으로 프로그램된다.
표 7은 VMM 어레이(1200)에 대한 작동 전압 및 전류를 도시한다. 표 내의 열은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 제어 게이트, 선택된 셀과 동일한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀과는 상이한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀에 대한 소거 게이트, 비선택된 셀에 대한 소거 게이트, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타낸다. 행은 판독, 소거, 및 프로그램의 작동을 나타낸다.
[표 7]
도 13은 뉴런 VMM 어레이(1300)를 도시하며, 도 3에 도시된 바와 같은 메모리 셀(310)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(1300)는 비휘발성 메모리 셀의 메모리 어레이(1303), 제1 비휘발성 기준 메모리 셀의 기준 어레이(1301), 및 제2 비휘발성 기준 메모리 셀의 기준 어레이(1302)를 포함한다. EG 라인(EGR0, EG0, EG1, 및 EGR1)은 수직으로 이어지는 반면, CG 라인(CG0, CG1, CG2, 및 CG3) 및 SL 라인(WL0, WL1, WL2, 및 WL3)은 수평으로 이어진다. VMM 어레이(1300)는, VMM 어레이(1300)가 양방향 튜닝을 구현한다는 점을 제외하고는 VMM 어레이(1400)와 유사하며, 각 개별 셀은 별개의 EG 라인의 사용으로 인해 플로팅 게이트 상의 원하는 전하량에 도달하기 위해 필요에 따라 완전히 소거되고, 부분적으로 프로그램되고, 부분적으로 소거될 수 있다. 도시된 바와 같이, 기준 어레이(1301 및 1302)는 단자(BLR0, BLR1, BLR2, 및 BLR3) 내의 입력 전류를 행 방향으로 메모리 셀에 적용될 제어 게이트 전압(CG0, CG1, CG2, 및 CG3)으로(다중화기(1314)를 통한 다이오드 연결된 기준 셀의 작동을 통해) 변환한다. 전류 출력(뉴런)은 비트 라인(BL0 - BLN)에 있으며, 각 비트 라인은 그 특정 비트 라인에 연결된 비휘발성 메모리 셀로부터의 모든 전류를 합산한다.
표 8은 VMM 어레이(1300)에 대한 작동 전압 및 전류를 도시한다. 표 내의 열은 선택된 셀에 대한 워드 라인, 비선택된 셀에 대한 워드 라인, 선택된 셀에 대한 비트 라인, 비선택된 셀에 대한 비트 라인, 선택된 셀에 대한 제어 게이트, 선택된 셀과 동일한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀과는 상이한 섹터 내의 비선택된 셀에 대한 제어 게이트, 선택된 셀에 대한 소거 게이트, 비선택된 셀에 대한 소거 게이트, 선택된 셀에 대한 소스 라인, 및 비선택된 셀에 대한 소스 라인 상에 배치된 전압을 나타낸다. 행은 판독, 소거, 및 프로그램의 작동을 나타낸다.
[표 8]
도 22는 뉴런 VMM 어레이(2200)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. VMM 어레이(2200)에서, 입력(INPUT0, …, INPUTN)은 비트 라인(BL0,..BLN) 상에서 각각 수신되고, 출력(OUTPUT1, OUTPUT2, OUTPUT3, 및 OUTPUT4)은 각각 소스 라인(SL0, SL1, SL2, 및 SL3) 상에서 생성된다.
도 23은 뉴런 VMM 어레이(2300)를 도시하며, 이는 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, INPUT1, INPUT2, 및 INPUT3)은 각각 소스 라인(SL0, SL1, SL2, 및 SL3) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, ..., BLN) 상에서 생성된다.
도 24는 뉴런 VMM 어레이(2400)를 도시하며, 도 2에 도시된 바와 같은 메모리 셀(210)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 각각 워드 라인(WL0, ..., WLM) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, ..., BLN) 상에서 생성된다.
도 25는 뉴런 VMM 어레이(2500)를 도시하며, 도 3에 도시된 바와 같은 메모리 셀(310)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 각각 워드 라인(WL0, ..., WLM) 상에서 수신되고, 출력(OUTPUT0, ..., OUTPUTN)은 비트 라인(BL0, ..., BLN) 상에서 생성된다.
도 26은 뉴런 VMM 어레이(2600)를 도시하며, 도 4에 도시된 바와 같은 메모리 셀(410)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTn)은 각각 수직 제어 게이트 라인(CG0, ..., CGN) 상에서 수신되고, 출력(OUTPUT1 및 OUTPUT2)은 소스 라인(SL0 및 SL1) 상에서 생성된다.
도 27은 뉴런 VMM 어레이(2700)를 도시하며, 도 4에 도시된 바와 같은 메모리 셀(410)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 활용된다. 이 예에서, 입력(INPUT0, ..., INPUTN)은, 각각 비트 라인(BL0, ..., BLN)에 결합되는, 각각 비트 라인 제어 게이트(2701-1, 2701-2, ..., 2701-(N-1), 및 2701-N)의 게이트 상에서 수신된다. 예시적인 출력(OUTPUT1 및 OUTPUT2)이 소스 라인(SL0 및 SL1) 상에서 생성된다.
도 28은, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(2800)를 도시한다. 이 예에서, 입력(INPUT0, …, INPUTM)은 워드 라인(WL0, …, WLM) 상에서 수신되고, 출력(OUTPUT0, …, OUTPUTN은 각각 비트 라인BL0, …, BLN) 상에서 생성된다.
도 29는, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(2900)를 도시한다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 제어 게이트 라인(CG0, ..., CGM) 상에서 수신된다. 출력(OUTPUT0, ..., OUTPUTN)은 각각 수직 소스 라인(SL0, ..., SLN) 상에서 생성되며, 각각의 소스 라인(SLi)은 열 i 내의 모든 메모리 셀의 소스 라인에 결합된다.
도 30은, 도 3에 도시된 바와 같은 메모리 셀(310), 도 5에 도시된 바와 같은 메모리 셀(510), 및 도 7에 도시된 바와 같은 메모리 셀(710)에 특히 적합하고, 입력 계층과 다음 계층 사이의 뉴런의 부분 및 시냅스로서 이용되는 뉴런 VMM 어레이(3000)를 도시한다. 이 예에서, 입력(INPUT0, ..., INPUTM)은 제어 게이트 라인(CG0, ..., CGM) 상에서 수신된다. 출력(OUTPUT0, ..., OUTPUTN)은 각각 수직 비트 라인(BL0, ..., BLN) 상에서 생성되며, 여기서 각각의 비트 라인(BLi)은 열 i 내의 모든 메모리 셀의 비트 라인에 결합된다.
장단기 메모리
종래 기술은 장단기 메모리(LSTM)로 알려진 개념을 포함한다. LSTM 유닛은 종종 신경망에서 사용된다. LSTM은 신경망이 미리 결정된 임의적인 시간 간격에 걸쳐 정보를 기억하고 후속 작동에서 그 정보를 사용하도록 허용한다. 종래의 LSTM 유닛은 셀, 입력 게이트, 출력 게이트 및 망각 게이트를 포함한다. 3개의 게이트는 셀 내 및 셀 외부로의 정보의 흐름 및 LSTM에서 정보가 기억되는 시간 간격을 조절한다. VMM은 LSTM 유닛에서 특히 유용하다.
도 14는 예시적인 LSTM(1400)를 도시한다. 이 예에서의 LSTM(1400)은 셀(1401, 1402, 1403, 및 1404)을 포함한다. 셀(1401)은 입력 벡터(x0)를 수신하고 출력 벡터(h0) 및 셀 상태 벡터(c0)를 생성한다. 셀(1402)은 입력 벡터(x1), 셀(1401)로부터의 출력 벡터(은닉 상태)(h0), 및 셀(1401)로부터의 셀 상태(c0)를 수신하고, 출력 벡터(h1) 및 셀 상태 벡터(c1)를 생성한다. 셀(1403)은 입력 벡터(x2), 셀(1402)로부터의 출력 벡터(은닉 상태)(h1), 및 셀(1402)로부터의 셀 상태(c1)를 수신하고, 출력 벡터(h2) 및 셀 상태 벡터(c2)를 생성한다. 셀(1404)은 입력 벡터(x3), 셀(1403)로부터의 출력 벡터(은닉 상태)(h2), 및 셀(1403)로부터의 셀 상태(c2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀이 사용될 수 있으며, 4개의 셀을 갖는 LSTM는 단지 예일 뿐이다.
도 15는 도 14의 셀(1401, 1402, 1403, 및 1404)에 대해 사용될 수 있는 LSTM 셀(1500)의 예시적인 구현을 도시한다. LSTM 셀(1500)은 입력 벡터(x(t)), 선행 셀로부터의 셀 상태 벡터(c(t-1)), 및 선행 셀로부터의 출력 벡터(h(t-1))를 수신하고, 셀 상태 벡터(c(t)) 및 출력 벡터(h(t))를 생성한다.
LSTM 셀(1500)은 시그모이드 함수 장치(1501, 1502, 및 1503)를 포함하며, 이들 각각은 얼마나 많은 입력 벡터 내의 각 구성 요소가 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. LSTM 셀(1500)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 장치(1504 및 1505), 2개의 벡터를 함께 승산하기 위한 승산기 장치(1506, 1507, 및 1508), 및 2개의 벡터를 함께 가산하기 위한 가산 장치(1509)를 포함한다. 출력 벡터(h(t))는 시스템 내의 다음 LSTM 셀에 제공될 수 있거나, 그것은 다른 목적을 위해 액세스될 수 있다.
도 16은 LSTM 셀(1500)의 구현의 예인 LSTM 셀(1600)을 도시한다. 독자의 편의를 위해, LSTM 셀(1500)로부터의 동일한 번호 부여가 LSTM 셀(1600)에 사용된다. 시그모이드 함수 장치(1501, 1502, 및 1503) 및 tanh 장치(1504) 각각은 다수의 VMM 어레이(1601) 및 활성화 함수 블록(1602)을 포함한다. 따라서, VMM 어레이가 소정의 신경망 시스템에서 사용되는 LSTM 셀에 특히 유용함을 알 수 있다. 승산기 장치(1506, 1507, 및 1508) 및 가산 장치(1509)는 디지털 방식으로 또는 아날로그 방식으로 구현된다. 활성화 함수 블록(1602)은 디지털 방식으로 또는 아날로그 방식으로 구현될 수 있다.
LSTM 셀(1600)에 대한 대안(및 LSTM 셀(1500)의 구현예의 다른 예)이 도 17에 도시되어 있다. 도 17에서, 시그모이드 함수 장치(1501, 1502, 및 1503) 및 tanh 장치(1504)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이(1701) 및 활성화 함수 블록(1702))를 공유한다. LSTM 셀(1700)은, 또한, 2개의 벡터를 함께 승산하기 위한 승산기 장치(1703), 2개의 벡터를 함께 가산하기 위한 가산 장치(1708), tanh 장치(1505)(활성화 함수 블록(1702)을 포함함), i(t)가 시그모이드 함수 블록(1702)으로부터 출력될 때 값 i(t)를 저장하기 위한 레지스터(1707), 값 f(t) * c(t-1)을 그 값이 다중화기(1710)를 통해 승산기 장치(1703)로부터 출력될 때 저장하기 위한 레지스터(1704), 값 i(t) * u(t)를 그 값이 다중화기(1710)를 통해 승산기 장치(1703)로부터 출력될 때 저장하기 위한 레지스터(1705), 및 값 o(t) * c~(t)를 그 값이 다중화기(1710)를 통해 승산기 장치(1703)로부터 출력될 때 저장하기 위한 레지스터(1706), 및 다중화기(1709)를 포함한다.
LSTM 셀(1600)은 VMM 어레이(1601) 및 각각의 활성화 함수 블록(1602)의 다수의 세트를 포함하는 반면, LSTM 셀(1700)은 LSTM 셀(1700)의 실시예에서 다수의 계층을 나타내는 데 사용되는 VMM 어레이(1701) 및 활성화 함수 블록(1702)의 하나의 세트만을 포함한다. LSTM 셀(1700)이 LSTM 셀(1600)과 비교하여 VMM 및 활성화 함수 블록을 위해 1/4만큼의 많은 공간을 요구할 것이기 때문에, LSTM 셀(1700)은 LSTM(1600)보다 더 적은 공간을 요구할 것이다.
LSTM 유닛은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 함수 블록 및 고전압 생성 블록과 같은, VMM 어레이 밖의 소정의 회로 블록에 의해 제공되는 기능을 요구한다는 것을 더 알 수 있다. 각 VMM 어레이에 대한 별개의 회로 블록을 제공하는 것은 반도체 장치 내의 상당한 양의 공간을 요구할 것이고 다소 비효율적일 것이다. 따라서, 하기에 설명되는 실시예는 VMM 어레이 자체 밖에서 요구되는 회로부를 줄인다.
게이티드 순환 유닛
아날로그 VMM 구현예는 GRU(게이티드 순환 유닛) 시스템에 활용될 수 있다. GRU는 순환 신경망에서의 게이팅 메케니즘이다. GRU는, GRU 셀이 대체적으로 LSTM 셀보다 더 적은 구성요소를 포함하는 것을 제외하고는, LSTM과 유사하다.
도 18은 예시적인 GRU(1800)를 도시한다. 이 예에서의 GRU(1800)는 셀(1801, 1802, 1803, 및 1804)을 포함한다. 셀(1801)은 입력 벡터(x0)를 수신하고 출력 벡터(h0)를 생성한다. 셀(1802)은 입력 벡터(x1), 셀(1801)로부터의 출력 벡터(h0)를 수신하고, 출력 벡터(h1)를 생성한다. 셀(1803)은 입력 벡터(x2) 및 셀(1802)로부터의 출력 벡터(은닉 상태)(h1)를 수신하고, 출력 벡터(h2)를 생성한다. 셀(1804)은 입력 벡터(x3) 및 셀(1803)로부터의 출력 벡터(은닉 상태)(h2)를 수신하고, 출력 벡터(h3)를 생성한다. 추가적인 셀이 사용될 수 있으며, 4개의 셀을 갖는 GRU는 단지 예일 뿐이다.
도 19는 도 18의 셀(1801, 1802, 1803, 및 1804)에 사용될 수 있는 GRU 셀(1900)의 예시적인 구현예를 도시한다. GRU 셀(1900)은 선행 GRU 셀로부터 입력 벡터(x(t)) 및 출력 벡터(h(t-1))를 수신하고, 출력 벡터(h(t))를 생성한다. GRU 셀(1900)은 시그모이드 함수 장치(1901 및 1902)를 포함하고, 이들 각각은 0과 1 사이의 수를 출력 벡터(h(t-1)) 및 입력 벡터(x(t))로부터의 구성요소에 적용한다. GRU 셀(1900)은 또한 입력 벡터에 쌍곡선 탄젠트 함수를 적용하기 위한 tanh 장치(1903), 2개의 벡터를 함께 승산하기 위한 복수의 승산기 장치(1904, 1905, 및 1906), 2개의 벡터를 함께 가산하기 위한 가산 장치(1907), 및 1로부터 입력을 감산하여 출력을 생성하기 위한 상보 장치(1908)를 포함한다.
도 20은 GRU 셀(1900)의 구현의 예인 GRU 셀(2000)을 도시한다. 독자의 편의를 위해, GRU 셀(1900)로부터의 동일한 번호 부여가 GRU 셀(2000)에 사용된다. 도 20에서 알 수 있는 바와 같이, 시그모이드 함수 장치(1901 및 1902) 및 tanh 장치(1903) 각각은 다수의 VMM 어레이(2001) 및 활성화 함수 블록(2002)을 포함한다. 따라서, VMM 어레이는 소정의 신경망 시스템에서 사용되는 GRU 셀에서 특히 유용하다는 것을 알 수 있다. 승산기 장치(1904, 1905, 1906), 가산 장치(1907), 및 상보 장치(1908)는 디지털 방식으로 또는 아날로그 방식으로 구현된다. 활성화 함수 블록(2002)은 디지털 방식으로 또는 아날로그 방식으로 구현될 수 있다.
GRU 셀(2000)에 대한 대안(및 GRU 셀(1900)의 구현예의 다른 예)이 도 21에 도시되어 있다. 도 21에서, GRU 셀(2100)은 VMM 어레이(2101) 및 활성화 함수 블록(2102)을 활용하며, 시그모이드 함수로서 구성될 때, 얼마나 많은 입력 벡터 내의 각 구성요소가 출력 벡터로 통하도록 허용되는지를 제어하기 위해 0과 1 사이의 수를 적용한다. 도 21에서, 시그모이드 함수 장치(1901 및 1902) 및 tanh 장치(1903)는 시간 다중화 방식으로 동일한 물리적 하드웨어(VMM 어레이(2101) 및 활성화 함수 블록(2102))를 공유한다. GRU 셀(2100)은, 또한, 2개의 벡터를 함께 승산하기 위한 승산기 장치(2103), 2개의 벡터를 함께 가산하기 위한 가산 장치(2105), 1로부터 입력을 감산하여 출력을 생성하기 위한 상보 장치(2109), 다중화기(2104), 값 h(t-1) * r(t)를 그 값이 다중화기(2104)를 통해 승산기 장치(2103)로부터 출력될 때 유지하기 위한 레지스터(2106), 값 h(t-1) *z(t)를 그 값이 다중화기(2104)를 통해 승산기 장치(2103)로부터 출력될 때 유지하기 위한 레지스터(2107), 및 값 h^(t) * (1-z(t))를 그 값이 다중화기(2104)를 통해 승산기 장치(2103)로부터 출력될 때 유지하기 위한 레지스터(2108)를 포함한다.
GRU 셀(2000)은 VMM 어레이(2001) 및 활성화 함수 블록(2002)의 다수의 세트를 포함하는 반면, GRU 셀(2100)은 GRU 셀(2100)의 실시예에서 다수의 계층을 나타내는 데 사용되는 VMM 어레이(2101) 및 활성화 함수 블록(2102)의 하나의 세트만을 포함한다. GRU 셀(2100)이 GRU 셀(2000)과 비교하여 VMM 및 활성화 함수 블록에 대해 1/3만큼의 많은 공간을 요구할 것이기 때문에, GRU 셀(2100)은 GRU 셀(2000)보다 더 적은 공간을 필요로 할 것이다.
GRU 시스템은 전형적으로 다수의 VMM 어레이를 포함할 것이며, 이들 각각은 합산기 및 활성화 함수 블록 및 고전압 생성 블록과 같은, VMM 어레이 밖의 특정 회로 블록에 의해 제공되는 기능을 요구한다는 것을 더 알 수 있다. 각 VMM 어레이에 대한 별개의 회로 블록을 제공하는 것은 반도체 장치 내의 상당한 양의 공간을 요구할 것이고 다소 비효율적일 것이다. 따라서, 하기에 설명되는 실시예는 VMM 어레이 자체 밖에서 요구되는 회로부를 줄인다.
VMM 어레이에 대한 입력은 아날로그 레벨, 이진 레벨, 펄스, 시간 변조된 펄스 또는 디지털 비트일 수 있고(이 경우에 DAC가 디지털 비트를 적절한 입력 아날로그 레벨로 변환하는 데 필요함), 출력은 아날로그 레벨, 이진 레벨, 타이밍 펄스, 펄스 또는 디지털 비트일 수 있다(이 경우에 출력 ADC가 출력 아날로그 레벨을 디지털 비트로 변환하는 데 필요함).
일반적으로, VMM 어레이 내의 각각의 메모리 셀에 대해, 각각의 가중치(W)는 단일 메모리 셀에 의해 또는 차동 셀에 의해 또는 2개의 블렌드(blend) 메모리 셀(2개의 셀의 평균)에 의해 구현될 수 있다. 차동 셀의 경우에, 2개의 메모리 셀은 차동 가중치(W = W+ - W-)로서 가중치(W)를 구현하는 데 필요하다. 2개의 블렌드 메모리 셀에서, 2개의 메모리 셀은 2개의 셀의 평균으로서 가중치(W)를 구현하는 데 필요하다.
도 31은 VMM 시스템(3100)을 도시한다. 일부 실시예에서, VMM 어레이 내에 저장된 가중치(W)는 차분 쌍, 즉 W+(양의 가중치) 및 W-(음의 가중치)로서 저장되며, 여기서 W = (W+) - (W-)이다. VMM 시스템(3100)에서, 비트 라인의 절반은 W+ 라인, 즉 양의 가중치(W+)를 저장할 메모리 셀에 연결되는 비트 라인으로서 지정되고, 비트 라인의 다른 절반은 W- 라인, 즉 음의 가중치(W-)를 구현하는 메모리 셀에 연결되는 비트 라인으로서 지정된다. W-라인은 W+ 라인 사이에 교번 방식으로 산재된다. 감산 작동은 W+ 라인 및 W- 라인으로부터 전류를 수신하는 합산 회로(3101 및 3102)와 같은 합산 회로에 의해 수행된다. W+ 라인의 출력 및 W- 라인의 출력은 함께 조합되어, (W+, W-) 라인의 모든 쌍에 대해 (W+, W-) 셀의 각 쌍에 대해 W = W+ - W-를 효과적으로 제공한다. 상기는 교번하는 방식으로 W+ 라인 사이에 산재된 W- 라인과 관련하여 설명되었지만, 다른 실시예에서 W 라인 및 W- 라인은 어레이 내의 어디든지 임의적으로 배치될 수 있다.
도 32는 다른 실시예를 도시한다. VMM 시스템(3210)에서, 양의 가중치 W+는 제1 어레이(3211)에서 구현되고, 음의 가중치 W-는 제1 어레이와 별도인 제2 어레이(3212), 제2 어레이(3212)에서 구현되며, 결과적인 가중치는 합산 회로(3213)에 의해 함께 적절하게 조합된다.
도 33은 VMM 시스템(3300)을 도시한다. VMM 어레이 내에 저장된 가중치(W)는 차분 쌍, 즉 W+(양의 가중치) 및 W-(음의 가중)로서 저장되며, 여기서 W = (W+) - (W-)이다. VMM 시스템(3300)은 어레이(3301) 및 어레이(3302)를 포함한다. 각각의 어레이(3301 및 3302)에서 비트 라인의 절반은 W+ 라인, 즉 양의 가중치(W+)를 저장할 메모리 셀에 연결할 비트 라인으로서 지정되고, 각각의 어레이(3301 및 3302)에서 비트 라인의 다른 절반은 W- 라인, 즉 음의 가중치(W-)를 구현하는 메모리 셀에 연결하는 비트 라인으로서 지정된다. W-라인은 W+ 라인 사이에 교번 방식으로 산재된다. 감산 작동은 W+ 라인 및 W- 라인으로부터 전류를 수신하는 합산 회로(3303, 3304, 3305 및 3306)와 같은 합산 회로에 의해 수행된다. 각각의 어레이(3301, 3302)로부터의 W+ 라인의 출력 및 W- 라인의 출력은 함께 조합되어, (W+, W-) 라인의 모든 쌍에 대해 (W+, W-) 셀의 각 쌍에 대해 W = W+ - W-를 효과적으로 제공한다. 또한, 각각의 어레이(3301 및 3302)로부터의 W 값은 합산 회로(3307 및 3308)를 통해 추가로 조합될 수 있어서, 각각의 W 값은 어레이(3301)로부터의 W 값이 어레이(3302)로부터의 W 값이 차감되는 결과이며, 이는 합산 회로(3307 및 3308)로부터의 최종 결과가 2개의 차동 값의 차동 값임을 의미한다.
아날로그 뉴럴 메모리 시스템에서 사용되는 각각의 비휘발성 메모리 셀은 플로팅 게이트에서 매우 특정적이고 정확한 양의 전하를, 즉 전자의 수를 보유하도록 소거되고 프로그램된다. 예를 들어, 각 플로팅 게이트는 N개의 상이한 값 중 하나를 유지해야 하며, N은 각 셀에 의해 표시될 수 있는 상이한 가중치의 수이다. N의 예는 16, 32, 64, 128 및 256을 포함한다.
유사하게, 판독 작동은 N개의 상이한 레벨 사이를 정확하게 식별할 수 있어야 한다.
어레이로부터 출력을 신속하고 정확하게 수신할 수 있고 그러한 출력에 의해 표현되는 값을 식별할 수 있는 개선된 출력 블록을 위한 VMM 시스템이 필요하다.
딥 러닝 인공 신경망에서 아날로그 뉴럴 메모리에 대한 출력 회로에 대해 다양한 실시예가 개시된다.
도 1은 인공 신경망을 예시하는 도면이다.
도 2는 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 3은 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 4는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 5는 다른 종래 기술의 분리형 게이트 플래시 메모리 셀을 도시한다.
도 6은 하나 이상의 비휘발성 메모리 어레이를 활용하는 상이한 레벨의 예시적인 인공 신경망을 예시하는 도면이다.
도 7은 벡터x매트릭스 승산 시스템을 예시하는 블록 도면이다.
도 8은 하나 이상의 벡터x매트릭스 승산 시스템을 활용하는 예시적인 인공 신경망을 예시하는 블록 도면이다.
도 9는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 10은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 11은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 12는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 13은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 14는 종래 기술의 장단기 메모리 시스템을 도시한다.
도 15는 장단기 메모리 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 16은 도 15의 예시적인 셀의 실시예를 도시한다.
도 17은 도 15의 예시적인 셀의 다른 실시예를 도시한다.
도 18은 종래 기술의 게이티드 순환 유닛 시스템을 도시한다.
도 19는 게이티드 순환 유닛 시스템에서 사용하기 위한 예시적인 셀을 도시한다.
도 20은 도 19의 예시적인 셀의 실시예를 도시한다.
도 21은 도 19의 예시적인 셀의 다른 실시예를 도시한다.
도 22는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 23은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 24는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 25는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 26은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 27은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 28은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 29는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 30은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 31은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 32는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 33은 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 34는 벡터x매트릭스 승산 시스템의 다른 실시예를 도시한다.
도 35a 및 도 35b는 출력 블록의 실시예를 도시한다.
도 36은 출력 블록의 다른 실시예를 도시한다.
도 37a는 출력 블록의 다른 실시예를 도시한다.
도 37b는 출력 블록의 다른 실시예를 도시한다.
도 38a는 출력 블록의 다른 실시예를 도시한다.
도 38b는 출력 블록의 다른 실시예를 도시한다.
도 39a는 출력 블록의 다른 실시예를 도시한다.
도 39b는 출력 블록의 다른 실시예를 도시한다.
도 40a는 출력 블록의 다른 실시예를 도시한다.
도 40b는 출력 블록의 다른 실시예를 도시한다.
도 40c는 출력 블록의 다른 실시예를 도시한다.
도 41은 직렬 아날로그-디지털 변환기 회로를 도시한다.
도 42는 연속 근사 레지스터 아날로그-디지털 변환기 회로를 도시한다.
도 43은 파이프라인형 연속 근사 레지스터 아날로그-디지털 변환기 회로를 도시한다.
도 44a 및 도 44b는 하이브리드 연속 근사 레지스터 및 직렬 아날로그-디지털 변환기 회로를 도시한다.
도 45는 알고리즘 아날로그-디지털 변환기 블록을 도시한다.
도 46은 출력 블록에 사용되는 추적 기준 생성기를 도시한다.
본 발명의 인공 신경망은 CMOS 기술과 비휘발성 메모리 어레이의 조합을 활용한다.
VMM 시스템 개요
도 34는 VMM 시스템(3400)의 블록도를 도시한다. VMM 시스템(3400)은 VMM 어레이(3401), 행 디코더(3402), 고전압 디코더(3403), 열 디코더(3404), 비트 라인 드라이버(3405), 입력 회로(3406), 출력 회로(3407), 제어 로직(3408), 및 바이어스 생성기(3409)를 포함한다. VMM 시스템(3400)은 전하 펌프(3411), 전하 펌프 조절기(3412), 및 고전압 아날로그 정밀 레벨 생성기(3413)를 포함하는 고전압 생성 블록(3410)을 더 포함한다. VMM 시스템(3400)은 (프로그램/소거, 또는 가중치 튜닝) 알고리즘 제어기(3414), 아날로그 회로부(3415), 제어 엔진(3416)(제한 없이, 산술 함수, 활성화 함수, 내장 마이크로제어기 로직과 같은 특수 기능을 포함할 수 있음), 및 테스트 제어 로직(3417)을 더 포함한다. 하기에 설명되는 시스템 및 방법은 VMM 시스템(3400)에서 구현될 수 있다.
입력 회로(3406)는 DAC(디지털-아날로그 변환기), DPC(디지털-펄스 변환기, 디지털-시간 변조된 펄스 변환기), AAC(전류-전압 변환기, 로그 변환기와 같은, 아날로그-아날로그 변환기), PAC(펄스-아날로그 레벨 변환기), 또는 임의의 다른 유형의 변환기와 같은 회로를 포함할 수 있다. 입력 회로(3406)는 정규화, 선형 또는 비선형 업/다운 스케일링 함수, 또는 산술 함수를 구현할 수 있다. 입력 회로(3406)는 입력 레벨을 위한 온도 보상 함수를 구현할 수 있다. 입력 회로(3406)는 ReLU 또는 시그모이드와 같은 활성화 함수를 구현할 수 있다. 출력 회로(3407)는 ADC(뉴런 아날로그 출력을 디지털 비트로 변환하기 위한 아날로그-디지털 변환기), AAC(전류-전압 변환기, 로그 변환기와 같은 아날로그-아날로그 변환기), APC(아날로그-펄스(들) 변환기, 아날로그-시간 변조된 펄스 변환기), 또는 임의의 다른 유형의 변환기와 같은 회로를 포함할 수 있다.
출력 회로(3407)는 정류된 선형 활성화 함수(ReLU) 또는 시그모이드와 같은 활성화 함수를 구현할 수 있다. 출력 회로(3407)는 뉴런 출력을 위한 통계 정규화, 규칙화, 업/다운 스케일링/이득 함수, 통계적 반올림, 또는 산술 함수(예를 들어, 가산, 감산, 제산, 승산, 시프트, 로그)를 구현할 수 있다. 출력 회로(3407)는 어레이의 전력 소모를 대략 일정하게 유지하기 위해 또는 제 IV 기울기를 대략 동일하게 유지하는 것과 같은 어레이(뉴런) 출력의 정밀도를 향상시키기 위해, 뉴런 출력 또는 어레이 출력(비트 라인 출력과 같은)에 대한 온도 보상 함수를 구현할 수 있다.
도 35a는 출력 블록(3500)을 도시한다. 출력 블록은 전류-전압 변환기(ITV)(3501-1 내지 3501-i)를 포함하며, 여기서 i는 출력 블록(3500); 다중화기(3502); 표본 유지 회로(3503-1 내지 3503-i), 채널 다중화기(3504), 및 아날로그-디지털 변환기(ADC)(3505)에 의해 수신된 비트 라인 W+ 및 W- 쌍의 수이다. 출력 블록(3500)은 어레이 내의 비트 라인 쌍으로부터 W+ 및 W- 를 출력하는 차동 가중치를 수신하고, 궁극적으로 ADC(3505)로부터의 비트 라인 쌍 (예컨대, W+ 및 W-선) 중 하나의 출력을 나타내는 디지털 출력(DOUTx)을 생성한다.
전류-전압 변환기(3501-1 내지 3501-i) 각각은 아날로그 비트 라인 전류 신호(BLw+ 및 BLw-)(이는 입력에 응답하여 생성되고 W+ 및 W-가중치에 각각 저장된 비트 라인 출력)를 수신하고 이들을 차동 전압(ITVO+ 및 ITVO-)으로 변환한다.
이어서, ITVO+ 및 ITVO-는 다중화기(3502)에 의해 수신되고, 이는 출력을 전류-전압 변환기(3501-1 내지 3501-i)로부터 S/H 회로(3503-1 내지 3503k)로 시간 다중화하고, 여기서 k는 i와 동일하거나 상이할 수 있다.
S/H 회로(3503-1 내지 3503-k) 각각은 그의 수신된 차동 전압을 샘플링하고 이들을 차동 출력으로서 유지한다.
이어서, 채널 다중화기(3504)는 비트 라인 W+ 및 W- 채널 중 하나(즉, 비트 라인 쌍 중 하나)를 선택하기 위한 제어 신호를 수신하고, 각자의 표본 유지 회로(3503)에 의해 유지된 차동 전압을 ADC(3505)에 출력하며, 이는 각자의 표본 유지 회로(3503)에 의해 출력된 아날로그 차동 전압을 디지털 비트 세트(DOUTx)로 변환한다. 도시된 바와 같이, S/H(3503)는 다수의 ITV 회로(3501)에 걸쳐 공유될 수 있고, ADC (3505)는 시간 다중화 방식으로 다수의 ITV 회로 상에서 작동할 수 있다. 각각의 S/H(3503)는 단지 커패시터 또는 버퍼가 뒤따르는 커패시터(예: 연산 증폭기)일 수 있다.
ADC(3505)는 하이브리드 ADC 아키텍처일 수 있는데, 이는 변환을 수행하기 위해 하나 초과의 ADC 아키텍처를 갖는다는 것을 의미한다. 예를 들어, DOUTx가 8-비트 출력이면, ADC(3505)는 비트(B7-B4)를 생성하는 ADC 하위-아키텍처와 차동 입력(ITVSH+ 및 ITVSH-)를 생성하는 다른 ADC 하위-아키텍처를 포함할 수 있다. 즉, ADC 회로(3505)는 다수의 ADC 하위-아키텍처를 포함할 수 있다.
선택적으로, ADC 하위-아키텍처는 모든 채널 사이에서 공유될 수 있는 반면, 다른 ADC 하위-아키텍처는 모든 채널 사이에서 공유되지 않는다.
다른 실시예에서, 채널 다중화기(3504) 및 ADC(3505)는 제거될 수 있고, 대신 출력은, 연산 증폭기에 의해 버퍼링될 수 있는, S/H(3503)로부터의 아날로그 차동 전압일 수 있다. 예를 들어, 아날로그 전압의 사용은 모든 아날로그 신경망(즉, 뉴럴 메모리 어레이에 대해 디지털 출력 또는 디지털 입력이 필요하지 않은 신경망)에서 구현될 수 있다.
도 35b는 출력 블록(3550)을 도시한다. 출력 블록은 전류-전압 변환기(ITV)(3551-1 내지 3551-i)를 포함하며, 여기서 i는 출력 블록(3550); 다중화기(3552); 차동-단일 종단 변환기(Diff-to-S 변환기)(3553); 표본 유지 회로(3554-1 내지 3554-k)(여기서 k는 i와 동일하거나 상이함), 채널 다중화기(3554), 및 아날로그-디지털 변환기(ADC)(3555)에 의해 수신된 비트 라인 W+ 및 W- 쌍의 수이다. Diff-to-S 변환기(3553)는 다중화기(3552)에 의해 제공된 ITV (3551) 신호로부터의 차동 출력을 단일 종단 출력으로 변환하는 데 사용된다. 이어서, 단일 종단 출력은 S/H(3554), 다중화기(3555), 및 ADC(3556)에 입력된다.
도 36은 출력 블록(3600)을 도시한다. 출력 블록은 (전류 미러 회로와 같은) 합산 회로(3601-1 내지 3601-i)(여기서 i는 출력 블록(3600)에 의해 수신된 비트 라인(BLw+ 및 BLw-) 쌍의 수임); 전류-전압 변환기 회로(ITV)(3602-1 내지 3602-i), 다중화기(3603); 표본 유지 회로(3604-1 내지 3604-k)(여기서, k는 i와 동일하거나 상이함), 채널 다중화기(3605), 및 ADC(3606)를 포함한다. 출력 블록(3600)은 어레이 내의 비트 라인 쌍으로부터 차동 가중치 출력(BLw+ 및 BLw-)을 수신하고, 궁극적으로, 한 번에 비트 라인 쌍 중 하나의 출력을 나타내는, ADC(3606)로부터의 디지털 출력(DOUTx)을 생성한다.
전류 합산 회로(3601-1 내지 3601-i) 각각은 한 쌍의 비트 라인로부터 전류를 수신하고 BLw- 값으로부터 BLw- 값을 감산하고 결과를 합산 전류로서 출력한다.
전류-전압 변환기(3602-1 내지 3602-i)는 출력 합산 전류를 수신하고 각각의 합산 전류를 차동 전압(ITVO+ 및 ITVO-)으로 변환하고, 이는 이어서 다중화기(3603)에 의해 수신되고, 표본 유지 회로(3604-1 내지 3604-k)에 선택적으로 제공된다.
각각의 표본 유지 회로(3604)는 차동 전압(ITVOMX+ 및 ITVOMX-)을 수신하고, 수신된 차동 전압을 샘플링하고, 이들을 차동 전압 출력(OSH+ 및 PSH-)으로서 유지한다.
채널 다중화기(3605)는 제어 신호를 수신하여 비트 라인 쌍, 즉 채널(BLw+ 및 BLw-) 중 하나를 선택하고, 각자의 표본 유지 회로(3604)에 의해 유지된 전압을 ADC(3606)에 출력하며, 이는 전압을 DOUTx와 같은 디지털 비트 세트로 변환한다.
도 37a는 전류-전압 변환기(3700)를 도시한다. 전류-전압 변환기(3700)는, 도시된 바와 같이 구성된, 연산 증폭기(3701 및 3702) 및 가변 저항기(3703, 3704 및 3705)를 포함한다. 전류-전압 변환기(3700)는, 가변 전류원으로 도시된, 차동 출력 전류(W+ 비트 라인으로부터 BLw+ 및 W- 비트 라인으로부터 BLw-)를 수신하고, 단일-종단 출력(Vout)을 생성한다. 출력 전압 Vout = (BLw+ - BLw-)*R이고, 저항기(3703, 3704 및 3705) 각각은 R과 동일한 값을 갖는다. 도 37a의 가변 저항기는 출력을 스케일링하는 데 사용될 수 있다.
도 37b는 전류-전압 변환기(3710)를 도시한다. 전류-전압 변환기(3710)는, 도시된 바와 같이 구성된, 연산 증폭기(3711, 3712 및 3713) 및 가변 저항기(3714, 3715, 3716 및 3717)를 포함한다. 전류-전압 변환기(3710)는, 가변 전류원으로 도시된, W+ 비트 라인으로부터의 출력 전류(BLw+)를 수신하고, 해당 라인에 대한 출력(Vout+)을 생성하고, 가변 전류원으로 도시된, W- 비트 라인으로부터의 출력 전류(BLw-)를 수신하고, 해당 라인에 대한 출력(Vout-)을 생성한다. 따라서, 출력 블록(3700)에서와 달리, 출력 블록(3710)은, 단일 종단 출력보다는, 각각 차동 값(BLw+ 및 BLw-)을 나타내는, 차동 전압을 생성한다. 출력 전압 Vout+ = Iw+ * R 및 Vout- = -Rw- * R이고, 저항기(3714, 3715, 3716 및 3717) 각각은 R과 동일한 값을 갖는다. 도 37b의 가변 저항기는 출력을 스케일링하는 데 사용될 수 있다.
선택적으로, 차동 출력 전압(Vout+ 및 Vout-)은 ADC(3718)에 입력될 수 있고, 이는 이들을 디지털 출력 비트 세트(Doutx)로 변환한다.
도 38a는 전류-전압 변환기(3800)를 도시한다. 전류-전압 변환기(3800)는, 도시된 바와 같이 구성된, 연산 증폭기(3801 및 3802); 가변 커패시터(3803, 3805 및 3806); 및 제어된 스위치(3804 및 3807)를 포함한다. 전류-전압 변환기(3800)는, 차동 출력 전류(가변 전류원으로 도시된, W+ 비트 라인으로부터의 BLw+ 및, 가변 전류원으로 도시된, W- 비트 라인으로부터의 BLw-)를 수신하고, 단일-종단 출력(Vout)을 생성한다. 출력 전압 Vout = (Iw+ - Iw-) * t_integration / C이며, 커패시터(3803, 3805 및 3806) 각각은 C와 동일한 커패시턴스 값을 갖는다. 제어 회로(미도시)는 스위치(3804, 3807)의 개방 및 폐쇄를 제어하여 통합 시간(t_ntegration)을 제공한다.
도 38b는 전류-전압 변환기(3810)를 도시한다. 전류-전압 변환기(3810)는 연산 증폭기(3811, 3812 및 3813); 가변 커패시터(3815, 3816, 3817 및 3819); 및 스위치(3814, 3818 및 3820)를 포함한다. 전류-전압 변환기(3810)는, 가변 전류원으로 도시된, W+ 비트 라인으로부터의 출력 전류(BLw+)를 수신하고, 해당 라인에 대한 출력(Vout+)을 생성하고, 가변 전류원으로 도시된, W- 비트 라인으로부터의 출력 전류(BLw-)를 수신하고, 해당 라인에 대한 출력(Vout-)을 생성한다. 따라서, 출력 블록(3800)에서와 달리, 출력 블록(3810)은 각각의 차동 값(BLw+ 및 BLw-)을 나타내는 2개의 전압을 생성한다. 출력 전압 Vout+ = BLw+ * t_integration / C 및 Vout- = BLw- * t_integration / C이며, 커패시터(3815, 3816, 3817 및 3819) 각각은 C와 동일한 커패시턴스 값을 갖는다. 제어 회로(미도시)는 스위치(3814, 3818 및 3820)의 개방 및 폐쇄를 제어하여 통합 시간(t_integration)을 제공한다.
선택적으로, 차동 출력 전압(Vout+ 및 Vout-)은 ADC(3821)에 입력될 수 있고, 이는 이들을 디지털 출력 비트 세트(Doutx)로 변환한다.
도 39a는 전류-전압 변환기(3900)를 도시한다. 전류-전압 변환기(3900)는, 도시된 바와 같이 구성된, 연산 증폭기(3901); 가변 통합 저항기(3902 및 3903); 제어된 스위치(3904, 3905, 3906 및 3907); 및 표본 유지 커패시터(3908 및 3909)를 포함한다. 전류-전압 변환기(3900)는 차동 전류(W+ 비트 라인으로부터의 BLw+ 및 W- 비트 라인으로부터의 BLw-)를 수신하고, 전압(Vout+ 및 Vout-)을 각각 출력한다. 출력 전압 Vout+ = (BLw+) * R 및 Vout- = (BLw-) * R이며, 저항기(3902 및 3903) 각각은 R과 동일한 값을 갖는다. 커패시터(3908 및 3909) 각각은 저항기(3902 및 3903) 및 입력 전류가 차단되면 출력 전압을 유지하기 위해 S/H 커패시터를 유지하는 역할을 한다. 제어 회로(미도시)는 스위치(3904, 3905, 3906 및 3907)의 개방 및 폐쇄를 제어하여 통합 시간을 제공한다.
선택적으로, 차동 출력 전압(Vout+ 및 Vout-)은 ADC(3910)에 입력될 수 있고, 이는 이들을 디지털 출력 비트 세트(Doutx)로 변환한다.
도 39b는 차동 전압-단일 종단 전압 변환기(Diff-to-S)(3950)를 도시한다. Diff-to-S 변환기(3950)는 연산 증폭기(3951); 및 가변 통합 저항기(3952 및 3953)를 포함한다. 출력 전압 Vout - (Vin1 - Vin2) * (R_3852/R_3953). 이는, 예를 들어, 도 35b에서 블록(3553)으로서 사용된다.
도 40a는, 하이브리드 출력 변환 블록인, 출력 블록(4000)을 도시한다. 출력 블록(400)은 도시된 바와 같이 SAR 및 직렬 ADC 하위-아키텍처와 같은 다수의 하위-아키텍처를 포함한다. 출력 블록(4000)은 차동 신호(Iw+ 및 Iw-)를 수신한다. 연속 근사 레지스터 아날로그-디지털 변환기(SAR)(4001)가 차동 신호(Iw+ 및 Iw-)를 고차 디지털 비트를 변환한 다음, 직렬 블록(ADC)(4002)은 고차 비트 변환 후 남아 있는 신호를 저차 비트로 변환하고 모든 출력 디지털 비트를 함께 출력한다. 일례에서, SAR ADC(4001)는, 8-비트 ADC 변환의 경우, 수신된 차동 전압의 일부를 MSB 비트(B7-B4)로 변환하고 직렬 ADC(4002)는 수신된 차동 전압의 일부를 LSB 비트(B3-B0)로 변환한다.
도 40b는 출력 블록(4010)을 도시한다. 출력 블록(4010)은, 도시된 바와 같이 알고리즘 ADC 및 직렬 ADC 하위-아키텍처와 같은, 다수의 하위-아키텍처를 포함한다. 출력 블록(4010)은 차동 신호(Iw+ 및 Iw-)를 수신한다. 알고리즘 아날로그-디지털 변환기(4003)가 차동 신호(Iw+ 및 Iw-)를 고차 디지털 비트로 변환한 다음, 직렬 ADC 블록(4004)은 고차 비트 변환 후 남은 신호를 저차 비트로 변환하고, 모든 출력 디지털 비트를 함께 출력한다. 일례에서, 8비트 ADC 전환의 경우, 알고리즘 ADC(4003)는 수신된 차동 전압의 일부를 MSB 비트(B7-B4)로 변환하고 직렬 ADC(4004)는 수신된 차동 전압의 일부를 LSB 비트(B3-B0)로 변환한다.
도 40c는 출력 블록(4020)을 도시한다. 출력 블록(4020)은 차동 신호(Iw+ 및 Iw-)를 수신한다. 출력 블록(4020)은 하이브리드 아날로그-디지털 변환기를 포함하며, 이는 (도 40a 및 도 40b에 도시된 것과 같은) 상이한 변환 스킴을 하나의 블록으로 조합함으로써 차동 신호(Iw+ 및 Iw-)를 디지털 비트를 변환한다.
도 41은 구성가능한 직렬 아날로그-디지털 변환기(4100)를 도시한다. 이는, 가변 전류원으로 도시된, 뉴런 출력 전류(INEU)를 통합 커패시터(4102)(Cint)에 통합하는 적분기(4170)를 포함한다. 적분기(4170)는 차동 증폭기(4101), 제어된 스위치(4108 및 4110), 및 스위치(4108 및 4110)의 개방 및 폐쇄를 제어하여 통합 시간을 제공하는 제어 회로(미도시)를 포함한다.
일 실시예에서, VRAMP(4150)는 비교기(4104)의 반전 입력에 제공된다. 디지털 출력(카운트 값)(4121)은, EC(4105)로서 도시된, 비교기(4104)의 출력이 극성을 전환할 때까지 VRAMP(4150)를 램핑함으로써 생성되고, 이 때 카운터(4120)는 VRAMP(4150)의 램프의 시작으로부터 클록 펄스를 계수하고, 펄스 시리즈(4142)와 같은 클럭(4141)의 통과가 카운터(4120)에 도달하는 것을 방지하는 AND 게이트(4140)에 응답하여, 비교기(4104)의 출력이 극성을 전환할 때 중지한다.
다른 실시예에서, VREF(4155)는 비교기(4104)의 반전 입력에 제공된다. VC(4110)는 VOUT(4103)가 VREF(4155)에 도달할 때까지 램프 전류(4151)(IREF)에 의해 램핑 다운되며, 이 지점에서 비교기(4104)의 출력(EC(4105))은 카운터(4120)의 계수를 비활성화하도록 극성을 전환한다. 따라서, 카운터(4120)는 스위치(S2)의 폐쇄로 활성화된다(이는 S2의 개방 이후이고, 비교기(4104)의 출력(EC (4105))이 극성을 전환할 때 비활성화됨). S3은 작동의 시작에서 초기화(등화)하는 데 사용된다. (n-비트) ADC(4100)는 타겟 애플리케이션에 따라, (n 비트보다 더 적은) 보다 낮은 정밀도 또는 (n 비트보다 더 많은) 보다 높은 정밀도를 갖도록 구성 가능하다. 정밀도의 구성 가능성은 커패시터(4102)의 커패시턴스, 전류(4151)(IREF), VRAMP(4150)의 램핑 레이트, 또는 클록(4141)의 클록킹 주파수를 제한 없이 구성함으로써 이루어진다.
다른 실시예에서, VMM 어레이의 ADC 회로는 n 비트보다 낮은 정밀도를 갖도록 구성되고, 다른 VMM 어레이의 ADC 회로는 비트보다 높은 정밀도를 갖도록 구성된다.
다른 실시예에서, 하나의 신경 (어레이 출력) 회로의 직렬 ADC 회로(4100)의 하나의 인스턴스는 주변 신경 회로를 위한 직렬 ADC 회로(4100)의 다른 인스턴스와 조합하도록 구성되어, 예컨대 직렬 ADC 회로(4100)의 2개의 인스턴스들의 적분 커패시터(4102)를 조합함으로써, n-비트 정밀도보다 높은 정밀도를 갖는 ADC 회로를 생성한다.
도 42는 뉴런 출력 회로(어레이 출력 회로)에 사용되는 구성가능한 SAR(연속 근사 레지스터) 아날로그-디지털 변환기(4200)를 도시한다. 이러한 회로는 이진 커패시터를 사용하는 전하 재분배에 기초한 연속 근사 변환기이다. 이는 이진 CDAC(커패시터 디지털-아날로그 변환기)(4201), 비교기(4202), SAR 로직 및 레지스터(4203)를 포함한다. 도시된 바와 같이 GndV(4204)는 저전압 기준 레벨, 예를 들어 접지 레벨이다. SAR 로직 및 레지스터(4203)는 디지털 출력(4206)을 제공한다. 다른 비-이진 커패시터 구조는 가중 기준 전압 또는 출력에 의한 보정으로 구현될 수 있다.
도 43은 파이프라인 방식으로 비트의 수를 증가시키기 위해 다음 SAR ADC와 조합하도록 사용될 수 있는 파이프라인형 SAR ADC 회로(4300)를 도시한다. SAR ADC 회로(4300)는 이진 CDAC(4301), (연산 증폭기 또는 비교기로서 작동하는) 비교기(4302), 연산 증폭기/비교기(4303), SAR 로직 및 레지스터(4304)를 포함한다. 도시된 바와 같이 GndV(3104)는 저전압 기준 레벨, 예를 들어 접지 레벨이다. SAR 로직 및 레지스터(4304)는 디지털 출력(4306)을 제공한다. Vin은 입력 전압이고, VREF는 기준 전압이며, GndV는, 접지 전압과 같은, 저전압이다. Vresidue는 커패시터(4305)에 의해 생성되고, SAR ADC 변환 시퀀스의 다음 스테이지로의 입력으로서 제공된다.
도 44a는 하이브리드 방식으로 비트의 수를 증가시키는 데 사용될 수 있는 하이브리드 SAR + 직렬 ADC 회로(4400)를 도시한다. SAR ADC 회로(4400)는 이진 CDAC(4401), 비교기(4402), 및 SAR 로직 및 레지스터(4403)를 포함한다. 도시된 바와 같이, GndV는 저전압 기준 레벨, 예를 들어 SAR ADC 작동 동안 접지 레벨이다. SAR 로직 및 레지스터(4403)는 디지털 출력을 제공한다. Vin은 입력 전압이다. VREFRAMP는 적절한 제어 회로 및 신호 다중화(미도시)를 갖는 직렬 ADC 작동 동안 기준 램핑 전압으로서 사용된다.
사용될 수 있는 다른 하이브리드 ADC 아키텍처는 SAR ADC + 시그마 델타 ADC, 플래시 ADC + 직렬 ADC, 파이프라인형 ADC + 직렬 ADC, 직렬 ADC + SAR ADC, 및 다른 아키텍처를 포함한다.
도 44b는 하이브리드 방식으로 비트의 수를 증가시키는 데 사용될 수 있는 하이브리드 차동 SAR + 직렬 ADC 회로(4400)를 도시한다.
도 45는 알고리즘 ADC 출력 블록(4500)을 도시한다. 출력 블록(4500)은, 도시된 바와 같이 구성된, 표본 유지 회로(4501), 1-비트 아날로그-디지털 변환기(4502), 1-비트 디지털-아날로그 변환기(4503), 합산기(4504), 연산 증폭기(4505), 및 제어된 스위치(4506 및 4507)를 포함한다. 2의 이득을 제공하도록 구성된 연산 증폭기(4505)가 도시되어 있다.
도 46은, 도 37a, 도 37b, 도 38a, 도 38b, 도 41, 도 42, 도 43, 도 44a, 및 도 44b에서와 같이, 본원에 기술된 출력 회로 및 이러한 출력 회로의 구성요소에 의해 사용될 수 있는 기준 전압을 생성하는 데 사용되는 추적 전압 기준 생성기(4600)를 도시한다.
추적 전압 기준 생성기(4600)는 바이어스 전류(4601) 및 가변 저항기(4602)를 포함하고, 출력(VREFx(4603) = i * R)을 생성하며, 여기서 i는 바이어스 전류(4601)로부터의 전류이고 R은 가변 저항기(4602)의 저항이다.
본원에 사용된 바와 같이, 용어 "~ 위에" 및 "~ 상에" 둘 모두는 "직접적으로 ~ 상에"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음) 및 "간접적으로~ 상에"(중간 재료, 요소 또는 공간이 사이에 배치됨)를 포괄적으로 포함한다는 것이 유의되어야 한다. 마찬가지로, 용어 "인접한"은 "직접적으로 인접한"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 인접한"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "~에 장착되는"은 "직접적으로 ~에 장착되는"(어떠한 중간 재료, 요소 또는 공간도 사이에 배치되지 않음)과 "간접적으로 ~에 장착되는"(중간 재료, 요소 또는 공간이 사이에 배치됨)을 포함하고, "전기적으로 결합되는"은 "직접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 연결시키는 어떠한 중간 재료 또는 요소도 사이에 없음)과 "간접적으로 ~에 전기적으로 결합되는"(요소를 함께 전기적으로 연결시키는 중간 재료 또는 요소가 사이에 있음)을 포함한다. 예를 들어, "기판 위에" 요소를 형성하는 것은 어떠한 중간 재료/요소도 사이에 갖지 않고서 직접적으로 기판 상에 요소를 형성하는 것뿐만 아니라, 하나 이상의 중간 재료/요소를 사이에 갖고서 간접적으로 기판 상에 요소를 형성하는 것을 포함할 수 있다.

Claims (34)

  1. 비휘발성 메모리 셀의 하나 이상의 어레이로부터 출력을 생성하기 위한 출력 회로로서,
    복수의 전류-전압 변환기로서, 상기 복수의 전류-전압 변환기 각각은 W+ 값을 저장하는 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 그리고 W- 값을 저장하는 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 전류를 수신하는, 복수의 전류-전압 변환기;
    상기 복수의 전류-전압 변환기로부터 각각의 전압 출력을 수신하기 위한 다중화기;
    복수의 표본 유지 회로로서, 각각의 표본 유지 회로는 상기 다중화기에 의해 상기 복수의 전류-전압 변환기 중 하나에 선택적으로 결합되어, 유지된 전압 출력을 생성하는, 복수의 표본 유지 회로;
    상기 복수의 표본 유지 회로로부터 유지된 전압 출력을 수신하는 채널 다중화기; 및
    상기 채널 다중화기로부터 상기 유지된 전압 출력을 선택적으로 수신하고 상기 유지된 전압 출력을 디지털 출력으로 변환하는 아날로그-디지털 변환기를 포함하는, 출력 회로.
  2. 제1항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 상기 하나 이상의 어레이 중 동일한 어레이 내에 배치되는, 출력 회로.
  3. 제1항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 상기 하나 이상의 어레이 중 상이한 어레이 내에 배치되는, 출력 회로.
  4. 제1항에 있어서, 상기 비휘발성 메모리 셀의 하나 이상의 어레이 각각은 신경망 메모리 어레이인, 출력 회로.
  5. 제1항에 있어서, 상기 하나 이상의 어레이 내의 각각의 비휘발성 메모리 셀은 2개 초과의 가능한 값 중 하나를 저장할 수 있는, 출력 회로.
  6. 제1항에 있어서, 상기 하나 이상의 어레이 내의 상기 비휘발성 메모리 셀 각각은 분리형 게이트 플래시 메모리 셀인, 출력 회로.
  7. 비휘발성 메모리 셀의 하나 이상의 어레이로부터 출력을 생성하기 위한 출력 회로로서,
    복수의 전류-전압 변환기로서, 상기 복수의 전류-전압 변환기 각각은 W+ 값을 저장하는 비휘발성 메모리 셀의 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 그리고 W- 값을 저장하는 비휘발성 메모리 셀의 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 전류를 수신하여 상기 수신된 전류를 차동 전압 출력으로 변환하는, 복수의 전류-전압 변환기; 및
    상기 차동 전압 출력을 수신하고 상기 차동 전압 출력을 디지털 출력으로 변환하는 아날로그-디지털 변환기를 포함하는, 출력 회로.
  8. 제7항에 있어서,
    상기 복수의 전류-전압 변환기로부터 상기 차동 전압 출력을 수신하는 다중화기, 상기 다중화기로부터 상기 차동 전압 출력을 선택적으로 수신하는 상기 아날로그-디지털 변환기를 더 포함하는, 출력 회로.
  9. 제8항에 있어서,
    복수의 표본 유지 회로로서, 각각의 표본 유지 회로는 상기 다중화기에 의해 상기 복수의 전류-전압 변환기 중 하나에 선택적으로 결합되는, 복수의 표본 유지 회로를 더 포함하는, 출력 회로.
  10. 제9항에 있어서,
    상기 복수의 표본 유지 회로로부터 전압 출력을 수신하는 채널 다중화기를 더 포함하는, 출력 회로.
  11. 제7항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 비휘발성 메모리 셀의 상기 하나 이상의 어레이 중 동일한 어레이 내에 배치되는, 출력 회로.
  12. 제7항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 비휘발성 메모리 셀의 상기 하나 이상의 어레이 중 상이한 어레이 내에 배치되는, 출력 회로.
  13. 제7항에 있어서, 비휘발성 메모리 셀의 상기 하나 이상의 어레이 각각은 신경망 메모리 어레이인, 출력 회로.
  14. 제7항에 있어서, 상기 하나 이상의 어레이 내의 각각의 비휘발성 메모리 셀은 2개 초과의 가능한 값 중 하나를 저장할 수 있는, 출력 회로.
  15. 제7항에 있어서, 하나 이상의 어레이 내의 상기 비휘발성 메모리 셀 각각은 분리형 게이트 플래시 메모리 셀인, 출력 회로.
  16. 비휘발성 메모리 셀의 하나 이상의 어레이로부터 출력을 생성하기 위한 출력 회로로서,
    복수의 합산 회로로서, 상기 복수의 합산 회로 각각은 W+ 값을 저장하는 비휘발성 메모리 셀의 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 그리고 W- 값을 저장하는 비휘발성 메모리 셀의 상기 하나 이상의 어레이의 하나 이상의 비휘발성 메모리 셀에 결합된 각각의 비트 라인으로부터 전류를 수신하고, 상기 복수의 합산 회로 각각은 각각의 합산 전류를 생성하는, 복수의 합산 회로;
    복수의 전류-전압 변환기로서, 상기 전류-전압 변환기 각각은 상기 복수의 합산 회로 중 하나로부터 각각의 합산 전류를 수신하고 각각의 합산 전압을 생성하는, 복수의 전류-전압 변환기;
    상기 복수의 전류-전압 변환기로부터 각각의 합산 전압을 수신하는 다중화기;
    복수의 표본 유지 회로로서, 각각의 표본 유지 회로는 상기 다중화기에 의해 상기 복수의 전류-전압 변환기 중 하나에 선택적으로 결합되어, 각각의 유지된 전압을 생성하는, 복수의 표본 유지 회로;
    상기 복수의 표본 유지 회로로부터 상기 각각의 유지된 전압을 수신하고 채널 출력을 생성하는 채널 다중화기; 및
    상기 채널 다중화기로부터 수신된 상기 채널 출력을 디지털 출력으로 변환하는 아날로그-디지털 변환기를 포함하는, 출력 회로.
  17. 제16항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 비휘발성 메모리 셀의 상기 하나 이상의 어레이 중 동일한 어레이 내에 배치되는, 출력 회로.
  18. 제16항에 있어서, W+ 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인 및 W- 값을 저장하는 상기 하나 이상의 비휘발성 메모리 셀에 결합된 비트 라인은 비휘발성 메모리 셀의 상기 하나 이상의 어레이 중 상이한 어레이 내에 배치되는, 출력 회로.
  19. 제16항에 있어서, 비휘발성 메모리 셀의 상기 하나 이상의 어레이 각각은 신경망 메모리 어레이인, 출력 회로.
  20. 제16항에 있어서, 상기 하나 이상의 어레이 내의 각각의 비휘발성 메모리 셀은 2개 초과의 가능한 값 중 하나를 저장할 수 있는, 출력 회로.
  21. 제16항에 있어서, 상기 하나 이상의 어레이 내의 상기 비휘발성 메모리 셀 각각은 분리형 게이트 플래시 메모리 셀인, 출력 회로.
  22. 비휘발성 메모리 셀의 어레이로부터 출력을 생성하기 위한 출력 회로로서,
    비트 라인으로부터의 전류를 n-비트 출력의 일부 비트로 변환하는 제1 아날로그-디지털 변환기; 및
    상기 비트 라인으로부터의 상기 전류를 상기 n-비트 출력 내의 나머지 비트로 변환하는 제2 아날로그-디지털 변환기를 포함하는, 출력 회로.
  23. 제22항에 있어서, 상기 제2 아날로그-디지털 변환기는 상기 제1 아날로그-디지털 변환기로부터 상기 일부 비트를 수신하고 상기 일부 비트 및 상기 나머지 비트를 직렬 방식으로 배열하는 직렬 출력 회로를 포함하는, 출력 회로.
  24. 제22항에 있어서, 상기 제1 아날로그-디지털 변환기 및 상기 제2 아날로그-디지털 변환기 각각은 연속 근사 레지스터 아날로그-디지털 변환기를 포함하는, 출력 회로.
  25. 제24항에 있어서, 연속 근사 레지스터 아날로그-디지털 변환기 각각은 하나 이상의 가변 커패시터를 포함하는, 출력 회로.
  26. 제22항에 있어서, 상기 제1 아날로그-디지털 변환기 및 상기 제2 아날로그-디지털 변환기 각각은 알고리즘 아날로그-디지털 변환기를 포함하는, 출력 회로.
  27. 제22항에 있어서, 상기 비휘발성 메모리 셀의 어레이는 신경망 메모리 어레이인, 출력 회로.
  28. 제27항에 있어서, 상기 비휘발성 메모리 셀의 어레이 내의 각각의 비휘발성 메모리 셀은 2개 초과의 가능한 값 중 하나를 저장할 수 있는, 출력 회로.
  29. 제22항에 있어서, 상기 어레이 내의 상기 비휘발성 메모리 셀 각각은 분리형 게이트 플래시 메모리 셀인, 출력 회로.
  30. 제22항에 있어서, 상기 제1 아날로그-디지털 변환기 및 상기 제2 아날로그-디지털 변환기 중 하나 이상은 상기 비휘발성 메모리 셀의 어레이 및 비휘발성 메모리 셀의 하나 이상의 다른 어레이 사이에서 공유되는, 출력 회로.
  31. 비휘발성 메모리 셀의 어레이로부터 출력을 생성하기 위한 출력 회로로서,
    가변 저항기에 응답하여 기준 전압을 생성하기 위한 추적 전압 기준 회로; 및
    상기 어레이로부터의 전류를 전압으로 변환하기 위한 전류-전압 변환기로서, 상기 전류-전압 변환기는 상기 기준 전압을 활용하는, 전류-전압 변환기를 포함하는, 출력 회로.
  32. 제31항에 있어서,
    아날로그 신호를 디지털 출력으로 변환하기 위한 아날로그-디지털 변환기로서, 상기 아날로그-디지털 변환기는 상기 기준 전압을 이용하는, 아날로그-디지털 변환기를 더 포함하는, 출력 회로.
  33. 제31항에 있어서, 상기 비휘발성 메모리 셀은 분리형-게이트 메모리 셀인, 출력 회로.
  34. 제31항에 있어서, 상기 어레이는 신경망의 일부인, 출력 회로.
KR1020237035599A 2021-05-19 2021-09-03 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로 KR20230158570A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163190240P 2021-05-19 2021-05-19
US63/190,240 2021-05-19
US17/463,063 US20220374161A1 (en) 2021-05-19 2021-08-31 Output circuit for analog neural memory in a deep learning artificial neural network
US17/463,063 2021-08-31
PCT/US2021/049075 WO2022245384A1 (en) 2021-05-19 2021-09-03 Output circuit for analog neural memory in a deep learning artificial neural network

Publications (1)

Publication Number Publication Date
KR20230158570A true KR20230158570A (ko) 2023-11-20

Family

ID=84103850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237035599A KR20230158570A (ko) 2021-05-19 2021-09-03 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로

Country Status (6)

Country Link
US (1) US20220374161A1 (ko)
EP (1) EP4341933A1 (ko)
JP (1) JP2024521006A (ko)
KR (1) KR20230158570A (ko)
CN (1) CN117178323A (ko)
TW (1) TWI814383B (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7170315B2 (en) * 2003-07-31 2007-01-30 Actel Corporation Programmable system on a chip
WO2016073645A1 (en) * 2014-11-04 2016-05-12 Progranalog Corp. Configurable power management integrated circuit
US10741568B2 (en) * 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
US11409352B2 (en) * 2019-01-18 2022-08-09 Silicon Storage Technology, Inc. Power management for an analog neural memory in a deep learning artificial neural network
US11507816B2 (en) * 2019-09-19 2022-11-22 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network

Also Published As

Publication number Publication date
EP4341933A1 (en) 2024-03-27
US20220374161A1 (en) 2022-11-24
TWI814383B (zh) 2023-09-01
TW202312036A (zh) 2023-03-16
CN117178323A (zh) 2023-12-05
JP2024521006A (ja) 2024-05-28

Similar Documents

Publication Publication Date Title
TWI805909B (zh) 用於深度學習人工神經網路中之類比神經記憶體的可組態輸入塊及輸出塊與實體佈局
JP7340101B2 (ja) 人工ニューラルネットワークにおけるアナログニューラルメモリのための精密なプログラミング方法及び装置
KR20220125305A (ko) 인공 신경망 내의 차등 셀 쌍에 시냅스 가중치를 저장하는 아날로그 신경 메모리 어레이
CN114402391A (zh) 深度学习人工神经网络中的模拟神经存储器的编程的精确调谐
KR20230110360A (ko) 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를위한 디지털 출력 메케니즘
CN115516565A (zh) 人工神经网络中的具有源极线拉低机构的模拟神经存储器阵列
KR20230158570A (ko) 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로
TWI842636B (zh) 深度學習人工神經網路中類比神經記憶體的輸出電路
TWI822198B (zh) 深度學習人工神經網路中類比神經記憶體的輸出電路
WO2022245384A1 (en) Output circuit for analog neural memory in a deep learning artificial neural network
KR20240026194A (ko) 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 입력 회로
US20230154528A1 (en) Determination of a bias voltage to apply to one or more memory cells in a neural network
KR20230150848A (ko) 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 분할 배열 아키텍처
KR20240026489A (ko) 신경 메모리 가중치 데이터를 아날로그 형태 또는 디지털 형태로 저장하도록 구성 가능한 하이브리드 메모리 시스템
CN117813653A (zh) 用于深度学习人工神经网络中的模拟神经存储器的输出电路
CN117716427A (zh) 用于深度学习人工神经网络中的模拟神经存储器的输入电路
KR20240029074A (ko) 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를 위한 프로그램 가능 출력 블록
CN117751406A (zh) 可配置为以模拟形式或数字形式存储神经存储器权重数据的混合存储器系统
CN118043889A (zh) 要施加到神经网络中的一个或多个存储器单元的偏置电压的确定