KR102605890B1 - 멀티-레벨 초 저전력 추론 엔진 가속기 - Google Patents

멀티-레벨 초 저전력 추론 엔진 가속기 Download PDF

Info

Publication number
KR102605890B1
KR102605890B1 KR1020210082725A KR20210082725A KR102605890B1 KR 102605890 B1 KR102605890 B1 KR 102605890B1 KR 1020210082725 A KR1020210082725 A KR 1020210082725A KR 20210082725 A KR20210082725 A KR 20210082725A KR 102605890 B1 KR102605890 B1 KR 102605890B1
Authority
KR
South Korea
Prior art keywords
memory cells
memory
array
voltage
programming
Prior art date
Application number
KR1020210082725A
Other languages
English (en)
Other versions
KR20220044642A (ko
Inventor
니콜라스 알버트 트랜 마이클
그로비스 마이클
Original Assignee
샌디스크 테크놀로지스 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 테크놀로지스 엘엘씨 filed Critical 샌디스크 테크놀로지스 엘엘씨
Publication of KR20220044642A publication Critical patent/KR20220044642A/ko
Application granted granted Critical
Publication of KR102605890B1 publication Critical patent/KR102605890B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/5692Digital 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 read-only digital stores using storage elements with more than two stable states
    • 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/24Bit-line control circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out

Landscapes

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

Abstract

신경망들에 대한 메모리내-연산 추론을 수행하기 위한 비휘발성 메모리 구조체들이 제시된다. 메모리 어레이는 각각의 교차점 접합에서 메모리 셀을 갖는 교차점 아키텍처에 따라 형성된다. 멀티-레벨 메모리 셀(MLC)들은 금속 층들에 의해 분리된 다수의 초 박형 유전체 층들로 형성되고, 여기서, 메모리 셀의 프로그래밍은 기입 전압 레벨을 선택하여 유전체 층들 중 하나 이상을 선택적으로 파괴함으로써 행해진다. 실시예들의 대안적인 세트에서, 메모리 셀들은 안티퓨즈들로서 형성된다.

Description

멀티-레벨 초 저전력 추론 엔진 가속기{MULTI-LEVEL ULTRA-LOW POWER INFERENCE ENGINE ACCELERATOR}
인공 신경망들은 인공 지능(artificial intelligence) 및 머신 러닝(machine learning) 애플리케이션들에서 점점 더 많이 사용되고 있다. 인공 신경망에서는, 입력들의 세트가 하나 이상의 중간 또는 은닉된 계층들을 통해 전파되어 출력을 생성하게 된다. 입력을 출력에 접속하는 계층들은, 입력을 출력으로 변환하기 위한 수학적 조작들의 세트를 결정하고 계층들을 통해 이동하면서 각 출력의 확률을 계산함으로써 트레이닝 또는 러닝 단계에서 생성되는 가중치(weight)들의 세트에 의해 접속된다. 일단 가중치들이 확정되면, 가중치들을 추론 단계에서 이용하여 입력들의 세트로부터 출력을 결정할 수 있다. 이러한 신경망들은 고도로 정확한 결과들을 제공할 수 있지만, 신경망들은 극도로 연산 집약적이고, 메모리로부터 상이한 계층들을 접속하는 가중치들을 판독하고 이 가중치들을 프로세싱 유닛의 프로세싱 유닛들로 전송하는 것에 관련된 데이터 전송들이 상당히 집약적일 수 있다.
유사한 번호의 요소들은 상이한 도면들에서 공통적인 컴포넌트들을 지칭한다.
도 1은 호스트에 접속된 메모리 시스템의 일 실시예의 블록도이다.
도 2는 프론트 엔드 프로세서(Front End Processor) 회로의 일 실시예의 블록도이다. 일부 실시예들에서, 프론트 엔드 프로세서 회로는 제어기의 일부이다.
도 3은 백 엔드 프로세서(Back End Processor) 회로의 일 실시예의 블록도이다. 일부 실시예들에서, 백 엔드 프로세서 회로는 제어기의 일부이다.
도 4는 메모리 패키지의 일 실시예의 블록도이다.
도 5는 메모리 다이의 일 실시예의 블록도이다.
도 6a 및 도 6b는 웨이퍼-대-웨이퍼(wafer-to-wafer) 접합을 통해 메모리 구조체에 결합된 제어 회로들의 예를 예시한다.
도 7은 컨볼루션 신경망(convolutional neural network)(CNN)의 간단한 예를 예시한다.
도 8은 인공 신경망에서의 완전히 접속된 계층들의 간단한 예를 예시한다.
도 9a는 가중치들의 세트를 생성하기 위하여 신경망을 트레이닝하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 9b는 신경망을 이용하는 추론을 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 10은 컨볼루션 신경망에서의 컨볼루션 연산의 개략적인 표현이다.
도 11은 신경망의 완전히 접속된 계층에서의 행렬 곱셈(matrix multiplication)의 이용의 개략적인 표현이다.
도 12a 내지 도 12c는 교차점(cross-point) 아키텍처를 가지는 메모리 어레이의 일 부분의 일 실시예를 도시한다.
도 13은 어레이를 동작시킬 시에 이용된 제어 회로들의 일부 및 교차점 어레이의 상면도이다.
도 14는 멀티-레벨 초 저전력 추론 엔진에서 이용될 수 있는 메모리 셀 설계의 제1 실시예의 개략적인 표현이다.
도 15는 멀티-레벨 초 저전력 추론 엔진에서 이용될 수 있는 그룹화된 유전체 층들을 이용하는 메모리 셀 설계의 실시예들의 또 다른 세트의 개략적인 표현이다.
도 16은 프로그래밍될 메모리 셀들의 선택을 위한 절반-선택 방식(half-select scheme)을 예시한다.
도 17은 다수의 유전체 층들로 형성된 메모리 셀들을 갖는 교차점 메모리를 기입하기 위한 시퀀스의 실시예의 개략적인 표현이다.
도 18a 내지 도 18c는 2 계층화된 층들의 예에서의 절연 파괴(dielectric breakdown)에 의한 기입 메커니즘을 예시한다.
도 19a 및 도 19b는 3 계층화된 층들의 예에서의 절연 파괴에 의한 기입 메커니즘을 예시한다.
도 20은 추론 엔진을 위한 초 박형 유전체 층들을 갖는 메모리 셀들을 이용하는 교차점 아키텍처의 이용에 대한 실시예를 예시하는 흐름도이다.
도 21은 안티퓨즈(anti-fuse)를 프로그래밍하기 위한 바이어싱에 대한 실시예 및 단일 FET에 기초한 안티퓨즈의 개략적인 표현이다.
도 22는 도 21의 안티퓨즈 기반 메모리 셀을 편입시키는 교차점 어레이 구조체의 일 부분의 상면도이다.
도 23은 추론 엔진을 위한 FET 기반 안티퓨즈들을 갖는 메모리 셀들을 이용하는 교차점 아키텍처의 프로그래밍에 대한 실시예를 예시하는 흐름도이다.
신경망이 추론 또는 트레이닝 동작을 수행할 때, 특히, 컨볼루션 및 완전히 접속된 계층들과 같은 많은 수의 연산 계층들을 수반하고 이러한 연산 계층들을 통해 입력들이 전파되는 심층 신경망(Deep Neural Network)들 또는 DNN들의 경우에, 대량의 데이터를 각각 수반하는 많은 수의 연산들이 수행된다. 메모리 디바이스의 내부 또는 외부에서의 다량의 데이터의 이동을 회피하기 위하여, 신경망을 위한 계층들의 가중치들은 메모리 디바이스의 비휘발성 메모리 어레이들에 저장되고, 계층들의 각각에 대한 연산들은 디바이스 상에서 수행된다. 성능을 더욱 개선시키기 위하여, 증가된 속도 및 감소된 전력 소비 둘 모두의 측면에서, 하기는 신경망을 위한 추론 동작들 동안에 가중치들과 입력들 사이의 어레이내 벡터 곱셈(in-array vector multiplication)들을 수행하기 위하여 이용될 수 있고 특수한 온-칩 프로그래밍(on-chip programming)을 요구하지 않는 멀티-레벨들 메모리 셀(multi-levels memory cell)(MLC)들에 대한 실시예들을 제시한다. 추론 엔진을 위한 벡터 곱셈 디바이스는 각각의 교차점 접합에서 메모리 셀을 갖는 교차점 어레이를 포함한다. 제어 회로부는 독립적인 입력 전압들을 와이어들의 하나의 평면(즉, 워드 라인들)에서의 각각의 와이어에 공급하고 다른 와이어 평면(즉, 비트 라인들)에서의 각각의 와이어 상의 전류를 판독하도록 구성된다. 벡터 곱셈은 메모리 셀들에 의해 인코딩된 행렬 가중치들과 입력 전압들의 곱셈으로서 교차점 메모리 어레이에서 수행된다. 교차점 어레이에서의 메모리 셀들은 입력 전압들을 전적으로 이용하여 개별적으로 프로그래밍될 수 있다. 실시예들의 제1 세트에서, 멀티-레벨 메모리 셀들은 금속 층들에 의해 분리된 다수의 초 박형 유전체 층들로 형성되고, 여기서, 메모리 셀의 프로그래밍은 기입 전압 레벨을 선택하여 유전체 층들 중 하나 이상을 선택적으로 파괴함으로써 행해진다. 실시예들의 제2 세트에서, 메모리 셀들은 안티퓨즈들로서 형성된다.
도 1은 호스트(120)에 접속된 메모리 시스템(100)의 일 실시예의 블록도이다. 메모리 시스템(100)은 본 명세서에서 제안된 기술을 구현할 수 있고, 여기서, 신경망 입력들 또는 다른 데이터는 호스트(120)로부터 수신된다. 실시예에 따라서는, 입력들이 호스트(120)로부터 수신될 수 있고, 이어서, 메모리 패키지들(104)의 메모리 어레이들 내로 이전에 프로그래밍된 가중치들에 대해 추론하기 위하여 메모리 패키지들(104)에 제공될 수 있다. 많은 상이한 유형들의 메모리 시스템들이 본 명세서에서 제안된 기술과 함께 이용될 수 있다. 예시적인 메모리 시스템들은 솔리드 스테이트 드라이브(solid state drive)("SSD")들, 메모리 카드들, 및 내장된 메모리 디바이스들을 포함하지만; 그러나, 다른 유형들의 메모리 시스템들이 또한 이용될 수 있다.
도 1의 메모리 시스템(100)은 제어기(102), 데이터를 저장하기 위한 비휘발성 메모리(104), 및 로컬 메모리(예컨대, DRAM/ReRAM)(106)를 포함한다. 제어기(102)는 프론트 엔드 프로세서(Front End Processor)(FEP) 회로(110) 및 하나 이상의 백 엔드 프로세서(Back End Processor)(BEP) 회로들(112)을 포함한다. 일 실시예에서, FEP 회로(110)는 ASIC 상에서 구현된다. 일 실시예에서, 각각의 BEP 회로(112)는 별도의 ASIC 상에서 구현된다. 다른 실시예들에서, 통합된 제어기 ASIC은 프론트 엔드 및 백 엔드 기능들 둘 모두를 조합할 수 있다. BEP 회로들(112) 및 FEP 회로(110) 각각에 대한 ASIC들은 동일한 반도체 상에서 구현되어, 제어기(102)가 시스템 온 칩(System on a Chip)("SoC")으로서 제조되도록 한다. FEP 회로(110) 및 BEP 회로(112) 둘 모두는 그 자신의 프로세서들을 포함한다. 일 실시예에서, FEP 회로(110) 및 BEP 회로(112)는 FEP 회로(110)가 마스터(master)이고 각각의 BEP 회로(112)가 슬레이브(slave)인 마스터 슬레이브 구성으로서 작동한다. 예를 들어, FEP 회로(110)는 메모리 관리(예컨대, 가비지 수집(garbage collection), 웨어 레벨링(wear leveling) 등), 논리 대 물리 어드레스 변환(logical to physical address translation), 호스트와의 통신, DRAM(로컬 휘발성 메모리)의 관리, 및 SSD(또는 다른 비휘발성 저장 시스템)의 전체적인 동작의 관리를 수행하는 플래시 변환 계층(Flash Translation Layer)(FTL) 또는 미디어 관리 계층(Media Management Layer)(MML)을 구현한다. BEP 회로(112)는 FEP 회로(110)의 요청 시에 메모리 패키지들/다이에서의 메모리 동작들을 관리한다. 예를 들어, BEP 회로(112)는 판독, 소거, 및 프로그래밍 프로세스들을 수행할 수 있다. 추가적으로, BEP 회로(112)는 버퍼 관리를 수행할 수 있고, FEP 회로(110)에 의해 요구된 특정 전압 레벨들을 설정할 수 있고, 에러 정정(error correction)을 수행할 수 있고, 메모리 패키지들에 대한 토글 모드(Toggle Mode) 인터페이스들을 제어할 수 있고, 등등을 할 수 있다. 일 실시예에서, 각각의 BEP 회로(112)는 메모리 패키지들의 그 자신의 세트를 담당한다.
일 실시예에서, 비휘발성 메모리(104)는 복수의 메모리 패키지들을 포함한다. 각각의 메모리 패키지는 하나 이상의 메모리 다이를 포함한다. 그러므로, 제어기(102)는 하나 이상의 비휘발성 메모리 다이에 접속된다. 일 실시예에서, 메모리 패키지들(104)에서의 각각의 메모리 다이는 (2 차원 NAND 플래시 메모리 및/또는 3 차원 NAND 플래시 메모리를 포함하는) NAND 플래시 메모리를 사용한다. 다른 실시예들에서, 메모리 패키지는 (ReRAM, MRAM, FeRAM, 또는 RRAM과 같은) 저항성 랜덤 액세스 메모리 또는 상변화 메모리(phase change memory)(PCM)에 기초한 스토리지 클래스 메모리(storage class memory)(SCM)와 같은 다른 유형들의 메모리를 포함할 수 있다.
제어기(102)는 예를 들어, PCI 익스프레스(PCI Express)(PCIe) 상에서의 NVM 익스프레스(NVM Express)(NVMe)와 같은 프로토콜을 구현하는 인터페이스(130)를 통해 호스트(120)와 통신한다. 메모리 시스템(100)과 작동하기 위하여, 호스트(120)는 버스(128)를 따라 접속된 호스트 프로세서(122), 호스트 메모리(124), 및 PCIe 인터페이스(126)를 포함한다. 호스트 메모리(124)는 호스트의 물리적 메모리이고, DRAM, SRAM, 비휘발성 메모리, 또는 또 다른 유형의 스토리지(storage)일 수 있다. 호스트(120)는 메모리 시스템(100) 외부에 있고, 메모리 시스템(100)으로부터 분리되어 있다. 일 실시예에서, 메모리 시스템(100)은 호스트(120) 내에 내장된다.
도 2는 FEP 회로(110)의 일 실시예의 블록도이다. 도 2는 호스트(120)와 통신하기 위한 PCIe 인터페이스(150), 및 그 PCIe 인터페이스와 통신하는 호스트 프로세서(152)를 도시한다. 호스트 프로세서(152)는 구현을 위하여 적당한 본 기술분야에서 알려진 임의의 유형의 프로세서일 수 있다. 호스트 프로세서(152)는 네트워크-온-칩(network-on-chip)(NOC)(154)과 통신한다. NOC는 전형적으로, SoC에서의 코어들 사이의, 집적 회로 상의 통신 서브시스템이다. NOC들은 동기식 및 비동기식 클록 도메인들에 걸쳐 있을 수 있거나, 비클록킹된 비동기식 로직(un-clocked asynchronous logic)을 이용할 수 있다. NOC 기술은 네트워킹 이론 및 방법들을 온-칩(on-chip) 통신들에 적용하고, 기존의 버스 및 크로스바 상호접속(bus and crossbar interconnection)들에 비해 현저한 개선을 가져온다. NOC는 다른 설계들과 비교하여, SoC들의 확장성(scalability) 및 복잡한 SoC들의 전력 효율을 개선시킨다. NOC의 와이어들 및 링크들은 많은 신호들에 의해 공유된다. NOC에서의 모든 링크들은 상이한 데이터 패킷들에 대해 동시에 동작할 수 있으므로, 높은 레벨의 병렬처리가 달성된다. 그러므로, 집적된 서브시스템들의 복잡성이 증가함에 따라, NOC는 이전의 통신 아키텍처들(예컨대, 전용 점-대-점(point-to-point) 신호 와이어들, 공유된 버스들, 또는 브릿지들을 갖는 구획된 버스들)과 비교하여 향상된 (스루풋(throughput)과 같은) 성능 및 확장성을 제공한다. 메모리 프로세서(156), SRAM(160), 및 DRAM 제어기(162)는 NOC(154)에 접속되고 NOC(154)와 통신한다. DRAM 제어기(162)는 DRAM(예컨대, DRAM(106))을 동작시키고 DRAM과 통신하기 위하여 이용된다. SRAM(160)은 메모리 프로세서(156)에 의해 이용된 로컬 RAM 메모리이다. 메모리 프로세서(156)는 FEP 회로를 작동시키고 다양한 메모리 동작들을 수행하기 위하여 이용된다. 또한, 2개의 PCIe 인터페이스들(164 및 166)은 NOC와 통신한다. 도 2의 실시예에서, SSD 제어기는 2개의 BEP 회로들(112)을 포함할 것이고; 그러므로, 2개의 PCIe 인터페이스들(164/166)이 있다. 각각의 PCIe 인터페이스는 BEP 회로들(112) 중 하나와 통신한다. 다른 실시예들에서, 2개 초과 또는 미만의 BEP 회로들(112)이 있을 수 있고; 그러므로, 2개 초과의 PCIe 인터페이스들이 있을 수 있다.
FEP 회로(110)는 또한, 메모리 관리(예컨대, 가비지 수집, 웨어 레벨링, 부하 균형화(load balancing) 등), 논리 대 물리 어드레스 변환, 호스트와의 통신, DRAM(로컬 휘발성 메모리)의 관리, 및 SSD 또는 다른 비휘발성 저장 시스템의 전체적인 동작의 관리를 수행하는 플래시 변환 계층(FTL) 또는 더 일반적으로 미디어 관리 계층 MML(158)을 포함할 수 있다. 미디어 관리 계층 MML(158)은 메모리 에러들 및 호스트와의 인터페이싱을 다룰 수 있는 메모리 관리의 일부로서 통합될 수 있다. 특히, MML은 FEP 회로(110)에서의 모듈일 수 있고, 메모리 관리의 본질들을 담당할 수 있다. 특히, MML(158)은 호스트로부터의 기입들을 다이의 메모리 구조체(예컨대, 아래의 도 5의 326)로의 기입들로 변환하는 메모리 디바이스 펌웨어에서의 알고리즘을 포함할 수 있다. MML(158)은: 1) 메모리가 제한된 내구성을 가질 수 있고; 2) 메모리 구조체가 페이지들의 배수들로만 오직 기입될 수 있고; 및/또는 3) 메모리 구조체가 블록으로서 소거되지 않으면, 메모리 구조체가 기입되지 않을 수 있기 때문에 필요하게 될 수 있다. MML(158)은 호스트에 가시적이지 않을 수 있는 메모리 구조체의 이 잠재적인 제한들을 이해한다. 따라서, MML(158)은 호스트로부터의 기입들을 메모리 구조체로의 기입들로 변환하려고 시도한다.
도 3은 BEP 회로(112)의 일 실시예의 블록도이다. 도 3은 FEP 회로(110)와 통신하기 위한(예컨대, 도 2의 PCIe 인터페이스들(164 및 166) 중 하나와 통신하기 위한) PCIe 인터페이스(200)를 도시한다. PCIe 인터페이스(200)는 2개의 NOC들(202 및 204)과 통신한다. 일 실시예에서, 2개의 NOC들은 하나의 대형 NOC로 결합될 수 있다. 각각의 NOC(202/204)는 XOR 엔진(224/254) 및 ECC 엔진(226/256)을 통해 SRAM(230/260), 버퍼(232/262), 프로세서(220/250), 및 데이터 경로 제어기(222/252)에 접속된다. ECC 엔진들(226/256)은 본 기술분야에서 알려진 바와 같이, 에러 정정을 수행하기 위하여 이용된다. XOR 엔진들(224/254)은 데이터를 XOR하기 위하여 이용되어, 프로그래밍 에러가 있을 경우에 복구될 수 있는 방식으로 데이터가 결합될 수 있고 저장될 수 있도록 한다. 데이터 경로 제어기(222)는 4개의 채널들을 통해 메모리 패키지들과 통신하기 위한 인터페이스 모듈에 접속된다. 따라서, 상부 NOC(202)는 메모리 패키지들과 통신하기 위한 4개의 채널들에 대한 인터페이스(228)와 연관되고, 하부 NOC(204)는 메모리 채널들과 통신하기 위한 4개의 추가적인 채널들에 대한 인터페이스(258)와 연관된다. 일 실시예에서, 각각의 인터페이스(228/258)는 4개의 토글 모드 인터페이스들(TM 인터페이스), 4개의 버퍼들, 및 4개의 스케줄러(scheduler)들을 포함한다. 채널들 각각에 대한 하나의 스케줄러, 버퍼, 및 TM 인터페이스가 있다. 프로세서는 본 기술분야에서 알려진 임의의 표준 프로세서일 수 있다. 데이터 경로 제어기들(222/252)은 프로세서, FPGA, 마이크로프로세서, 또는 다른 유형의 제어기일 수 있다. XOR 엔진들(224/254) 및 ECC 엔진들(226/256)은 하드웨어 가속기들로서 알려진 전용 하드웨어 회로들이다. 다른 실시예들에서, XOR 엔진들(224/254) 및 ECC 엔진들(226/256)은 소프트웨어로 구현될 수 있다. 스케줄러, 버퍼, 및 TM 인터페이스들은 하드웨어 회로들이다.
도 4는 메모리 버스(데이터 라인들 및 칩 인에이블 라인들)(294)에 접속된 복수의 메모리 다이(292)를 포함하는 메모리 패키지(104)의 일 실시예의 블록도이다. 메모리 버스(294)는 BEP 회로(112)(예컨대, 도 3 참조)의 TM 인터페이스와 통신하기 위한 토글 모드 인터페이스(296)에 접속된다. 일부 실시예들에서, 메모리 패키지는 메모리 버스 및 TM 인터페이스에 접속된 소형 제어기를 포함할 수 있다. 메모리 패키지는 하나 이상의 메모리 다이를 가질 수 있다. 일 실시예에서, 각각의 메모리 패키지는 8개 또는 16개의 메모리 다이를 포함하지만; 그러나, 다른 수들의 메모리 다이가 또한 구현될 수 있다. 본 명세서에서 설명된 기술은 임의의 특정한 수의 메모리 다이로 제한되지는 않는다.
도 5는 메모리 다이(300)의 일 실시예의 기능적인 블록도이다. 도 5에 도시된 컴포넌트들은 전기적 회로들이다. 일 실시예에서, 각각의 메모리 다이(300)는 메모리 구조체(326), 제어 회로부(310), 및 판독/기입 회로들(328)을 포함한다. 메모리 구조체(326)는 행 디코더(row decoder)(324)를 통해 워드 라인들에 의해, 그리고 열 디코더(column decoder)(332)를 통해 비트 라인들에 의해 어드레싱가능하다. 판독/기입 회로들(328)은 SB1, SB2, ..., SBp(감지 회로부)를 포함하는 다수의 감지 블록들(350)을 포함하고, 메모리 셀들의 페이지가 병렬로 판독되거나 프로그래밍되도록 한다. 커맨드(command)들 및 데이터는 라인들(318)을 통해 제어기와 메모리 다이(300) 사이에서 전송된다. 일 실시예에서, 메모리 다이(300)는 라인들(318)에 접속되는 입력 및/또는 출력(I/O) 핀들의 세트를 포함한다.
제어 회로부(310)는 메모리 구조체(326)에 대한 메모리 동작들(예컨대, 기입, 판독, 및 기타)을 수행하기 위하여 판독/기입 회로들(328)과 협력하고, 상태 머신(312), 온-칩 어드레스 디코더(314), 및 전력 제어 회로(316)를 포함한다. 상태 머신(312)은 메모리 동작들의 다이-레벨 제어를 제공한다. 일 실시예에서, 상태 머신(312)은 소프트웨어에 의해 프로그래밍가능하다. 다른 실시예들에서, 상태 머신(312)은 소프트웨어를 이용하지 않고, 하드웨어(예컨대, 전기적 회로들)로 완전히 구현된다. 또 다른 실시예에서, 상태 머신(312)은 마이크로제어기에 의해 대체된다.
온-칩 어드레스 디코더(314)는 제어기(102)에 의해 이용된 어드레스들 내지 디코더들(324 및 332)에 의해 이용된 하드웨어 어드레스 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(316)은 메모리 동작들 동안에 워드 라인들 및 비트 라인들에 공급된 전력 및 전압들을 제어한다. 전력 제어 모듈(316)은 전압들을 생성하기 위한 전하 펌프(charge pump)들을 포함할 수 있다. 감지 블록들은 비트 라인 구동기들을 포함한다.
이 문서의 목적들을 위하여, 어구 "하나 이상의 제어 회로들"은 제어기, 상태 머신, 마이크로제어기 및/또는 제어 회로부(310), 또는 비휘발성 메모리를 제어하기 위하여 이용되는 다른 유사한 회로들을 포함할 수 있다.
일 실시예에서, 메모리 구조체(326)는 다수의 메모리 레벨들이 웨이퍼와 같은 단일 기판 위에 형성되는 비휘발성 메모리 셀들의 3 차원 메모리 어레이를 포함한다. 메모리 구조체는 실리콘(또는 다른 유형의) 기판 위에 배치된 활성 영역(active area)을 가지는 메모리 셀들의 하나 이상의 물리적 레벨들로 모놀리식 방식으로 형성되는 임의의 유형의 비휘발성 메모리를 포함할 수 있다. 일례에서, 비휘발성 메모리 셀들은 그 전체적으로 참조로 본 명세서에서 원용된, 예를 들어, 미국 특허 제9,721,662호에 설명된 것과 같은 전하-포획 재료를 갖는 수직 NAND 스트링들을 포함한다.
또 다른 실시예에서, 메모리 구조체(326)는 비휘발성 메모리 셀들의 2 차원 메모리 어레이를 포함한다. 일례에서, 비휘발성 메모리 셀들은 그 전체적으로 참조로 본 명세서에서 원용된, 예를 들어, 미국 특허 제9,082,502호에서 설명된 것과 같은 부유 게이트(floating gate)들을 사용하는 NAND 플래시 메모리 셀들이다. 다른 유형들의 메모리 셀들(예컨대, NOR-유형 플래시 메모리)이 또한 이용될 수 있다.
메모리 구조체(326) 내에 포함된 정확한 유형의 메모리 어레이 아키텍처 또는 메모리 셀은 위의 예들로 제한되지는 않는다. 많은 상이한 유형들의 메모리 어레이 아키텍처들 또는 메모리 기술은 메모리 구조체(326)를 형성하기 위하여 이용될 수 있다. 특정한 비휘발성 메모리 기술이 본 명세서에서 제안된 새로운 청구된 실시예들의 목적들을 위하여 요구되지는 않는다. 메모리 구조체(326)의 메모리 셀들에 대한 적당한 기술의 다른 예들은 ReRAM 메모리들(저항성 랜덤 액세스 메모리들), 자기저항 메모리(magnetoresistive memory)(예컨대, MRAM, 스핀 전달 토크(Spin Transfer Torque) MRAM, 스핀 궤도 토크(Spin Orbit Torque) MRAM), 상변화 메모리(예컨대, PCM) 등을 포함한다. 메모리 구조체(326)의 메모리 셀 아키텍처들에 대한 적합한 기술의 예들은 2 차원 어레이들, 3 차원 어레이들, 교차점 어레이들, 적층형 2 차원 어레이들, 수직 비트 라인 어레이들 등을 포함한다.
ReRAM 교차점 메모리의 일례는 X 라인들 및 Y 라인들(예컨대, 워드 라인들 및 비트 라인들)에 의해 액세스된 교차점 어레이들에 배열된 가역적 저항-스위칭 요소(reversible resistance-switching element)들을 포함한다. 또 다른 실시예에서, 메모리 셀들은 전도성 브릿지 메모리 요소(conductive bridge memory element)들을 포함할 수 있다. 전도성 브릿지 메모리 요소는 또한, 프로그래밍가능한 금속화 셀(programmable metallization cell)로서 지칭될 수 있다. 전도성 브릿지 메모리 요소는 고체 전해질(solid electrolyte) 내에서의 이온들의 물리적 재위치(relocation)에 기초한 상태 변경 요소(state change element)로서 이용될 수 있다. 일부 경우들에는, 전도성 브릿지 메모리 요소가 2개의 전극들 사이에 고체 전해질의 박막을 갖는, 하나가 상대적으로 비활성(예컨대, 텅스텐)이고 다른 하나는 전기화학적으로 활성인(예컨대, 은 또는 구리) 2개의 고체 금속 전극들을 포함할 수 있다. 온도가 증가함에 따라, 이온들의 이동도(mobility)는 또한 증가하여, 전도성 브릿지 메모리 셀에 대한 프로그래밍 임계치가 감소하게 한다. 따라서, 전도성 브릿지 메모리 요소는 온도에 대한 넓은 범위의 프로그래밍 임계치들을 가질 수 있다.
자기저항 랜덤 액세스 메모리(magnetoresistive random access memory)(MRAM)는 자기적 저장 요소들에 의해 데이터를 저장한다. 요소들은, 얇은 절연 층에 의해 분리되며 각각이 강자성(ferromagnetic)인 층들로서 또한 알려진 2개의 강자성 박막들로 형성된다. 2개의 층들 중 하나는 특정한 극성으로 설정된 영구 자석이고; 다른 층의 자화(magnetization)는 외부 필드의 극성을 저장 메모리에 정합하도록 변경될 수 있다. 메모리 디바이스는 이러한 메모리 셀들의 그리드(grid)로부터 만들어진다. 프로그래밍을 위한 일 실시예에서, 각각의 메모리 셀은, 하나는 셀 위에 그리고 하나는 셀 아래에서 셀에 평행한, 서로에 대해 직각으로 배열된 한 쌍의 기입 라인들 사이에 놓인다. 전류가 기입 라인들을 통과하게 될 때, 유도된 자기장이 생성된다.
상변화 메모리(PCM)는 칼코게나이드 유리(chalcogenide glass)의 고유한 거동을 이용한다. 일 실시예는 레이저 펄스(또는 또 다른 소스로부터의 광 펄스)로 게르마늄 원자의 배위(co-ordination) 상태를 간단하게 변경함으로써 비-열적 상변화들을 달성하기 위하여 GeTe - Sb2Te3 초격자(super lattice)를 이용한다. 그러므로, 프로그래밍의 도우즈(dose)들은 레이저 펄스들이다. 메모리 셀들이 광을 수신하는 것을 차단함으로써 메모리 셀들은 금지될 수 있다. 다른 PCM 실시예들에서, 메모리 셀들은 전류 펄스들에 의해 프로그래밍된다. 이 문서에서의 "펄스"의 이용은 정사각형 펄스를 요구하는 것이 아니라, 사운드, 전류, 전압, 광, 또는 다른 파의 (연속적 또는 불연속적) 진동 또는 버스트(burst)를 포함한다는 점에 유의한다.
본 기술분야에서의 통상의 기술자는 본 명세서에서 설명된 기술이 단일 특정 메모리 구조체, 메모리 구성, 또는 재료 조성으로 제한되는 것이 아니라, 본 명세서에서 설명된 것과 같은 그리고 본 기술분야에서의 통상의 기술자에 의해 이해된 것과 같은 기술의 사상 및 범주 내에서 많은 관련된 메모리 구조체들을 포괄한다는 것을 인식할 것이다.
도 5의 요소들은 2개의 부분들인, 메모리 셀들의 메모리 구조체(326) 및 모든 다른 요소들을 포함하는 주변 회로부로 그룹화될 수 있다. 메모리 회로의 중요한 특성은 메모리 구조체(326)에 넘겨지는 메모리 다이(300)의 면적을 증가시킴으로써 증가될 수 있는 그 용량이지만; 그러나, 이것은 주변 회로부를 위하여 이용가능한 메모리 다이(300)의 면적을 감소시킨다. 이것은 이 주변 요소들에 대해 상당히 극심한 제한을 둘 수 있다. 예를 들어, 이용가능한 면적 내에 감지 증폭기 회로들을 맞추어야 하는 필요성은 감지 증폭기 설계 아키텍처들에 대한 상당한 제한일 수 있다. 온-다이 제어 회로부(310)에 대하여, 면적의 감소된 이용가능성은 온-칩으로 구현될 수 있는 이용가능한 기능성들을 제한할 수 있다. 결과적으로, 메모리 다이(300)의 설계에서의 기본적인 절충은 메모리 구조체(326)에 할애하기 위한 면적의 양과, 주변 회로부에 할애하기 위한 면적의 양이다.
메모리 구조체(326) 및 주변 회로부가 종종 상충되는 또 다른 면적은 이 영역들을 형성할 시에 관련된 프로세싱에 있는데, 그 이유는 이 영역들이 종종, 상이한 프로세싱 기술 및 단일 다이 상에서 상이한 기술을 가질 시의 절충안을 포함하기 때문이다. 예를 들어, 메모리 구조체(326)가 NAND 플래시일 때, 이것은 NMOS 구조체인 반면, 주변 회로부는 종종 CMOS 기반이다. 예를 들어, 감지 블록들(350)에서의 감지 증폭기 회로들, 전력 제어 블록(316)에서의 전하 펌프들, 상태 머신(312)에서의 로직 요소들, 및 다른 주변 회로부는 종종 PMOS 디바이스들을 사용한다. CMOS 다이를 제조하기 위한 프로세싱 동작들은 NMOS 플래시 NAND 메모리 또는 다른 메모리 셀 기술에 대하여 최적화된 프로세싱 동작들과 많은 양태들에서 상이할 것이다.
이 제한들을 개선시키기 위하여, 아래에 설명된 실시예들은 도 5의 요소들을, 이어서 함께 접합되는 별도로 형성된 다이들 상으로 분리시킬 수 있다. 더욱 구체적으로, 메모리 구조체(326)는 하나의 다이 상에 형성될 수 있거나, 하나 이상의 제어 회로들을 포함하는 주변 회로부 요소들의 일부 또는 전부는 별도의 다이 상에 형성될 수 있다. 예를 들어, 메모리 다이는 플래시 NAND 메모리, PCM 메모리, ReRAM 메모리, 또는 다른 메모리 유형의 메모리 셀들의 어레이와 같은 메모리 요소들로 오로지 형성될 수 있다. 이어서, 디코더들 및 감지 증폭기들과 같은 요소들을 심지어 포함하는 주변 회로부의 일부 또는 전부는 별도의 다이 상으로 이동될 수 있다. 이것은 메모리 다이의 각각이 그 기술에 따라 개별적으로 최적화되도록 한다. 예를 들어, CMOS 프로세싱에 대하여 최적화될 수 있는 별도의 주변 회로부 상으로 이동되었던 CMS 요소들에 대해 우려하지 않으면서, NAND 메모리 다이는 NMOS 기반 메모리 어레이 구조체에 대하여 최적화될 수 있다. 이것은 주변 요소들에 대한 더 많은 공간을 허용하며, 이러한 더 많은 공간은 추가적인 능력들이 메모리 셀 어레이를 보유하는 동일한 다이의 마진(margin)들로 제한될 경우에 용이하게 편입될 수 없었던 추가적인 능력들을 이제 편입시킬 수 있다. 이어서, 2개의 다이는 접합된 멀티-다이 메모리 회로에서 함께 접합될 수 있고, 하나의 다이 상의 어레이는 다른 메모리 회로 상의 주변 요소들에 접속될 수 있다. 하기는 하나의 메모리 다이 및 하나의 주변 회로부 다이의 접합된 메모리 회로에 집중할 것이지만, 다른 실시예들은 예를 들어, 2개의 메모리 다이 및 하나의 주변 회로부 다이와 같은 더 많은 다이를 이용할 수 있다.
도 6a 및 도 6b는 접합된 다이 쌍(604)을 제공하기 위하여 웨이퍼-대-웨이퍼(wafer-to-wafer) 접합을 이용하여 구현될 수 있는, 도 5의 배열에 대한 대안적인 배열을 도시한다. 도 6a는 메모리 다이(610)에 형성된 메모리 구조체(326)에 결합된 주변 회로 또는 제어 다이(608)에 형성된, 제어 회로들을 포함하는 주변 회로부의 예를 도시한다. 공통적인 컴포넌트들은 도 5에서와 같이 번호가 부여된다. (CMOS 프로세스에 의해 형성될 수 있는) 제어 회로부(310), 판독/기입 회로들(328), 및 행 디코더(324)는 제어 다이(608)에 위치된다는 것을 알 수 있다. 제어기(102)로부터의 기능성들과 같은 추가적인 요소들은 또한, 제어 다이(608)로 이동될 수 있다. 제어 회로부(310), 판독/기입 회로들(328), 행 디코더(324), 및 열 디코더(332)는 공통적인 프로세스(예컨대, CMOS 프로세스)에 의해 형성될 수 있어서, 메모리 제어기(102) 상에서 더욱 전형적으로 발견된 요소들 및 기능성들을 추가하는 것은 추가적인 프로세스 단계들을 약간 요구할 수 있거나 추가적인 프로세스 단계들을 요구하지 않을 수 있다(즉, 제어기(102)를 제조하기 위하여 이용된 동일한 프로세스 단계들은 또한, 제어 회로부(310), 판독/기입 회로들(328), 및 행 디코더(324)를 제조하기 위하여 이용될 수 있음). 따라서, 메모리 다이(300)와 같은 다이로부터 이러한 회로들을 이동하는 것은 이러한 다이를 제조하기 위하여 필요한 단계들의 수를 감소시킬 수 있지만, 이러한 회로들을 제어 다이(608)와 같은 다이에 추가하는 것은 임의의 추가적인 프로세스 단계들을 요구하지 않을 수 있다.
도 6a는 전기적 경로들(612)을 통해 메모리 다이(610) 상의 메모리 구조체(326)에 결합된 제어 다이(608) 상의 판독/기입 회로들(328)을 도시한다. 예를 들어, 전기적 경로들(612)은 판독/기입 회로들(328)과 메모리 구조체(326)의 비트 라인들 사이의 전기적 접속을 제공할 수 있다. 전기적 경로들은 메모리 구조체(326)의 비트 라인들에 접속되는 메모리 다이(610)의 대응하는 패드들에 접합되는 제어 다이(608) 상의 패드들을 통해 제어 다이(608)에서의 판독/기입 회로들(328)로부터 연장될 수 있다. 메모리 구조체(326)의 각각의 비트 라인은, 판독/기입 회로들(328)에 접속되고 한 쌍의 접합된 패드들을 포함하는, 전기적 경로들(612)에서의 대응하는 전기적 경로를 가질 수 있다. 유사하게, 행 디코더 회로들(324)은 전기적 경로들(614)을 통해 메모리 구조체(326)에 결합된다. 전기적 경로(614)의 각각은 워드 라인, 더미 워드 라인, 또는 선택 게이트 라인에 대응할 수 있다. 추가적인 전기적 경로들은 또한, 제어 다이(608)와 메모리 다이(610) 사이에 제공될 수 있다.
도 6b는 접합된 다이 쌍(604)의 집적된 메모리 조립체의 일 실시예의 배열에 대한 더 많은 세부사항을 도시하는 블록도이다. 메모리 다이(610)는 메모리 셀들의 평면(620) 또는 어레이를 포함한다. 메모리 다이(610)는 추가적인 평면들 또는 어레이들을 가질 수 있다. 하나의 대표적인 비트 라인(BL) 및 대표적인 워드 라인(WL)이 각각의 평면 또는 어레이(620)에 대하여 도시된다. 각각의 평면 또는 어레이(620)당 수천 또는 수만 개의 이러한 비트 라인들이 있을 수 있다. 일 실시예에서, 어레이 또는 평면은 온전한 워드 라인들 및 온전한 비트 라인들의 공통적인 세트를 공유하는 접속된 메모리 셀들의 그룹들을 나타낸다.
제어 다이(608)는 다수의 감지 증폭기(sense amplifier)(SA)들(350)을 포함한다. 각각의 감지 증폭기(350)는 하나의 비트 라인에 접속되거나, 일부 실시예들에서 다수의 비트 라인들에 접속될 수 있다. 감지 증폭기는 비트 라인 구동기를 포함한다. 따라서, 감지 증폭기는 전압을, 감지 증폭기가 접속되는 비트 라인에 제공할 수 있다. 감지 증폭기는 비트 라인의 상태를 감지하도록 구성된다. 일 실시예에서, 감지 증폭기는 비트 라인에서 흐르는 전류를 감지하도록 구성된다. 일 실시예에서, 감지 증폭기는 비트 라인 상의 전압을 감지하도록 구성된다.
제어 다이(608)는 다수의 워드 라인 구동기들(660(1) 내지 660(n))을 포함한다. 워드 라인 구동기들(660)은 전압들을 워드 라인들에 제공하도록 구성된다. 이 예에서는, 어레이 또는 평면 메모리 셀들당 "n"개의 워드 라인들이 있다. 메모리 동작이 프로그램 또는 판독일 경우에, 선택된 블록 내의 하나의 워드 라인은 일 실시예에서, 메모리 동작을 위하여 선택된다. 메모리 동작이 소거일 경우에, 선택된 블록 내의 모든 워드 라인들은 일 실시예에서, 소거를 위하여 선택된다. 워드 라인 구동기들(660)(예컨대, 전력 제어(316)의 일부)은 전압들을 메모리 다이(610)에서의 워드 라인들에 제공한다. 도 6a에 대하여 위에서 논의된 바와 같이, 제어 다이(608)는 또한, 워드 라인 구동기들(660) 및/또는 비트 라인 구동기들에 대한 전압들을 제공하기 위하여 이용될 수 있는, 도 6b에서 표현되지 않은 전하 펌프들, 전압 생성기들 등을 포함할 수 있다.
메모리 다이(610)는 메모리 다이(610)의 제1 주 표면(682) 상에 다수의 접합 패드들(670a, 670b)을 가진다. 대응하는 "n"개의 워드 라인 구동기들(660(1) 내지 660(n))로부터 전압들을 수신하기 위한 "n"개의 접합 패드들(670a)이 있을 수 있다. 평면(620)과 연관된 각각의 비트 라인에 대한 하나의 접합 패드(670b)가 있을 수 있다. 참조 번호 670은 주 표면(682) 상의 접합 패드들을 일반적으로 지칭하기 위하여 이용될 것이다.
일부 실시예들에서, 코드워드의 각각의 데이터 비트 및 각각의 패리티 비트는 상이한 접합 패드 쌍(670b, 674b)을 통해 전송된다. 코드워드의 비트들은 접합 패드 쌍들(670b, 674b) 상에서 병렬로 전송될 수 있다. 이것은 예를 들어, 메모리 제어기(102)와 집적된 메모리 조립체(604) 사이에서 데이터를 전송하는 것에 비해 매우 효율적인 데이터 전송을 제공한다. 예를 들어, 메모리 제어기(102)와 집적된 메모리 조립체(604) 사이의 데이터 버스는 예를 들어, 병렬로 전송될 8, 16, 또는 아마도 32비트들을 제공할 수 있다. 그러나, 메모리 제어기(102)와 집적된 메모리 조립체(604) 사이의 데이터 버스는 이 예들로 제한되지는 않는다.
제어 다이(608)는 제어 다이(608)의 제1 주 표면(684) 상에 다수의 접합 패드들(674a, 674b)을 가진다. 대응하는 "n"개의 워드 라인 구동기들(660(1) 내지 660(n))로부터 메모리 다이(610)로 전압들을 전달하기 위한 "n"개의 접합 패드들(674a)이 있을 수 있다. 평면(620)과 연관된 각각의 비트 라인에 대한 하나의 접합 패드(674b)가 있을 수 있다. 참조 번호 674는 주 표면(682) 상의 접합 패드들을 일반적으로 지칭하기 위하여 이용될 것이다. 접합 패드 쌍들(670a/674a) 및 접합 패드 쌍들(670b/674b)이 있을 수 있다는 점에 유의한다. 일부 실시예들에서, 접합 패드들(670 및/또는 674)은 플립-칩(flip-chip) 접합 패드들이다.
일 실시예에서, 접합 패드들(670)의 패턴은 접합 패드들(674)의 패턴과 정합한다. 접합 패드들(670)은 접합 패드들(674)에 접합된다(예컨대, 플립 칩 접합됨). 따라서 접합 패드들(670, 674)은 메모리 다이(610)를 제어 다이(608)에 전기적으로 그리고 물리적으로 결합한다.
또한, 접합 패드들(670, 674)은 메모리 다이(610)와 제어 다이(608) 사이의 내부 신호 전송을 허용한다. 따라서, 메모리 다이(610) 및 제어 다이(608)는 접합 패드들과 함께 접합된다. 도 6a는 하나의 메모리 다이(610)에 접합된 하나의 제어 다이(608)를 도시하지만, 또 다른 실시예에서, 하나의 제어 다이(608)는 다수의 메모리 다이들(610)에 접합된다.
본 명세서에서, "내부 신호 전송"은 제어 다이(608)와 메모리 다이(610) 사이의 신호 전송을 의미한다. 내부 신호 전송은 제어 다이(608) 상의 회로부가 메모리 다이(610)에서의 메모리 동작들을 제어하는 것을 허용한다. 그러므로, 접합 패드들(670, 674)은 메모리 동작 신호 전송을 위하여 이용될 수 있다. 본 명세서에서, "메모리 동작 신호 전송"은 메모리 다이(610)에서의 메모리 동작에 속하는 임의의 신호들을 지칭한다. 메모리 동작 신호 전송은 전압을 제공하는 것, 전류를 제공하는 것, 전압을 수신하는 것, 전류를 수신하는 것, 전압을 감지하는 것, 및/또는 전류를 감지하는 것을 포함할 수 있지만, 이것으로 제한되지는 않는다.
접합 패드들(670, 674)은 예를 들어, 구리, 알루미늄, 및 그 합금들로 형성될 수 있다. 접합 패드들(670, 674)과 주 표면들(682, 684) 사이에 라이너(liner)가 있을 수 있다. 라이너는 예를 들어, 티타늄/티타늄 질화물 적층체로 형성될 수 있다. 접합 패드들(670, 674) 및 라이너는 증기 증착 및/또는 도금 기법들에 의해 도포될 수 있다. 이 두께가 추가의 실시예들에서 더 크거나 더 작을 수 있지만, 접합 패드들 및 라이너들은 함께 720 nm의 두께를 가질 수 있다.
금속 상호접속부(interconnect)들 및/또는 비아(via)들은 다이들에서의 다양한 요소들을 접합 패드들(670, 674)에 전기적으로 접속하기 위하여 이용될 수 있다. 금속 상호접속부들 및/또는 비아들로 구현될 수 있는 몇몇 전도성 경로들이 도시된다. 예를 들어, 감지 증폭기(350)는 경로(664)에 의해 접합 패드(674b)에 전기적으로 접속될 수 있다. 도 6a와 관련하여, 전기적 경로들(612)은 경로(664), 접합 패드들(674b), 및 접합 패드들(670b)에 대응할 수 있다. 수천 개의 이러한 감지 증폭기들, 경로들, 및 접합 패드들이 있을 수 있다. BL은 접합 패드(670b)에 대한 직접적인 접속을 반드시 행하지는 않는다는 점에 유의한다. 워드 라인 구동기들(660)은 경로들(662)에 의해 접합 패드들(674a)에 전기적으로 접속될 수 있다. 도 6a와 관련하여, 전기적 경로들(614)은 경로(662), 접합 패드들(674a), 및 접합 패드들(670a)에 대응할 수 있다. 경로들(662)은 각각의 워드 라인 구동기(660(1) 내지 660(n))에 대한 별도의 전도성 경로를 포함할 수 있다는 점에 유의한다. 마찬가지로, 각각의 워드 라인 구동기(660(1) 내지 660(n))에 대한 별도의 접합 패드(674a)가 있을 수 있다. 메모리 다이(610)의 블록 2에서의 워드 라인들은 경로들(664)에 의해 접합 패드들(670a)에 전기적으로 접속될 수 있다. 도 6b에서는, 블록에서의 대응하는 "n"개의 워드 라인들에 대한 "n"개의 경로들(664)이 있다. 각각의 경로(664)에 대한 접합 패드들(670a, 674a)의 별도의 쌍이 있을 수 있다.
도 5와 관련하여, 도 6a의 온-다이 제어 회로들은 또한, 그 로직 요소들 내의 추가 기능성들인, 메모리 제어기(102)에서 전형적으로 발견되는 것보다 더욱 일반적인 능력들 및 일부 CPU 능력들 둘 모두뿐만 아니라, 특정 용도용 특징들을 포함할 수 있다. 예를 들어, 이 활성화 함수들은 곱셈 및 누산(Multiple and ACcumulation)(MAC) 연산들의 누산 부분에서 이용된 추가 및 임계치 결정 연산들을 포함할 수 있지만, sigmoid 또는 tanh 함수들과 같은 더 진보된 연산들을 포함할 수 있다.
하기에서, 상태 머신(312) 및/또는 제어기(102)(또는 동등하게 기능화된 회로들)는, 도 6a에서의 제어 다이(608) 상에 도시된 다른 회로들의 전부 또는 서브세트 및 도 5에서의 유사한 요소들과 조합하여, 본 명세서에서 설명된 기능들을 수행하는 하나 이상의 제어 회로들의 일부로 고려될 수 있다. 제어 회로들은 하드웨어만을 포함할 수 있거나, 또는 (펌웨어를 포함하는) 소프트웨어 및 하드웨어의 조합을 포함할 수 있다. 예를 들어, 본 명세서에서 설명된 기능들을 수행하기 위하여 펌웨어에 의해 프로그래밍된 제어기는 제어 회로의 일례이다. 제어 회로는 프로세서, FGA, ASIC, 집적 회로, 또는 다른 유형의 회로를 포함할 수 있다.
비휘발성 메모리 디바이스들에 저장될 수 있는 데이터의 유형들을 지금부터 주목하면, 하기의 논의에서 관심 있는 데이터의 유형의 특정한 예는 컨볼루션 신경망들 또는 CNN들과 같은 인공 신경망들에서 이용된 가중치들이다. 명칭 "컨볼루션 신경망"은 네트워크가 컨볼루션(convolution)으로 칭해진 수학적 연산, 즉, 특화된 종류의 선형 연산을 사용한다는 것을 표시한다. 컨볼루션 네트워크들은 그 계층들 중 적어도 하나에서 일반적인 행렬 곱셈 대신에 컨볼루션을 이용하는 신경망들이다. CNN은 다수의 중간 은닉된 계층들과 함께, 입력 및 출력 계층으로 형성된다. CNN의 은닉된 계층들은 전형적으로, 곱셈 또는 다른 내적(dot product)과 "컨볼루션하는(convolve)" 일련의 컨볼루션 계층들이다.
신경망에서의 각각의 뉴런(neuron)은 특정 함수를 이전의 계층에서의 수용 필드(receptive field)로부터 나오는 입력 값들에 적용함으로써 출력 값을 연산한다. 입력 값들에 적용되는 함수는 가중치들의 벡터와 바이어스(bias)에 의해 결정된다. 러닝은 신경망에서, 이 바이어스들 및 가중치들에 대해 반복적 조절을 행함으로써 진행된다. 가중치들의 벡터 및 바이어스는 필터들로 칭해지고, 입력의 특정한 특징들(예컨대, 특정한 형상)을 나타낸다. CNN들의 구별하는 특징은 많은 뉴런들이 동일한 필터를 공유할 수 있다는 점이다.
도 7은 CNN의 예의 개략적인 표현이다. 도 7은 픽셀 값들의 어레이의 초기 입력 이미지와, 그 다음으로, 최후의 계층이 출력을 제공하는 다수의 완전히 접속된 계층들에 궁극적으로 선행하는 다수의 컨볼루션 계층들을 예시한다. 제1 컨볼루션 계층(Con 1)에서의 각각의 뉴런은 입력 이미지의 n × n 픽셀 서브-영역으로부터 입력 데이터를 취한다. 컨볼루션 필터로서 집합적으로 지칭되는 뉴런의 러닝된 가중치들은 입력에 응답하여 뉴런의 단일-값 출력(single-valued output)을 결정한다. 컨볼루션 계층들에서는, 컨볼루션 계층의 값들을 생성하기 위하여 이미지의 x 및 y 차원들을 따라 입력 영역을 슬라이딩함으로써, 뉴런의 필터가 입력 이미지에 적용된다. 실제적으로, 동등한 컨볼루션은 일반적으로 상이한 입력 영역들에 대한 뉴런의 정적으로 동일한 복사본(copy)들에 의해 구현된다. 프로세스는 각각의 계층의 러닝된 가중치들을 이용하여 컨볼루션 계층들(Con 1 내지 Con N)의 각각을 통해 반복되고, 그 후에, 프로세스는 그 러닝된 가중치들을 이용하여 완전히 접속된 계층들(L1 내지 LM)을 통해 전파된다.
도 8은 신경망의 몇몇 완전히 접속된 계층들을 더욱 상세하게 나타낸다. 도 8에서, 인공 신경망의 도시된 3개의 계층들은 원들로 표현된, 노드들 또는 인공 뉴런들의 상호접속된 그룹, 및 하나의 인공 뉴런의 출력으로부터 또 다른 것의 입력까지의 접속들의 세트로서 표현된다. 예는 4개의 은닉된 또는 중간 노드들(H1, H2, H3, H4)의 중간 계층과 함께, 3개의 입력 노드들(I1, I2, I3) 및 2개의 출력 노드들(O1, O2)을 도시한다. 인공 신경망의 노드들 또는 인공 뉴런/시냅스(synaps)들은, 하나 이상의 입력들을 수신하고 출력을 생성하기 위하여 이들을 합산하는 수학적 함수로서, 호스트 또는 다른 프로세싱 시스템의 로직 요소들에 의해 구현된다. 통상적으로, 각각의 입력은 별도로 가중화되고, 합은 노드의 출력을 제공하기 위하여 노드의 수학적 함수를 통과하게 된다.
보편적인 인공 신경망 구현예들에서, 노드들(인공 뉴런/시냅스들) 사이의 접속에서의 신호는 실수이고, 각각의 인공 뉴런의 출력은 그 입력들의 합의 일부 비선형 함수에 의해 연산된다. 노드들 및 그 접속들은 전형적으로, 러닝 프로세스(learning process)가 계속될 때에 조절되는 가중치를 가진다. 가중치는 접속에서 신호의 강도를 증가시키거나 감소시킨다. 노드들은 임계치를 가질 수 있어서, 총 신호가 그 임계치를 교차할 경우에만 신호가 전송되도록 한다. 전형적으로, 노드들은 계층들 내로 집계된다. 상이한 계층들은 그 입력들에 대한 상이한 종류들의 변환들을 수행할 수 있다. 신호들은 가능한 한 계층들을 다수 회 횡단한 후에, 제1 계층(입력 계층)으로부터 최후의 계층(출력 계층)으로 이동한다. 도 7은 단일 중간 또는 은닉된 계층만을 도시하지만, 복잡한 심층 신경망(DNN)은 많은 이러한 중간 계층들을 가질 수 있다.
감독된 인공 신경망(supervised artificial neural network)은 입력들을 공급하고 이어서, 출력들을 체크하고 정정함으로써 "트레이닝" 된다. 예를 들어, 개 품종(dog breed)들을 인식하도록 트레이닝되는 신경망은 이미지들의 세트를 프로세싱할 것이고 이미지에서의 개가 소정의 품종일 확률을 계산할 것이다. 사용자는 결과들을 검토할 수 있고, 네트워크가 어느 확률들을 디스플레이해야 하는지(소정의 임계치 초과 등)를 선택할 수 있고, 제안된 라벨(label)을 반환할 수 있다. 이와 같은 각각의 수학적 조작은 계층으로 고려되고, 복잡한 신경망들은 많은 계층들을 가진다. 많은 수의 중간 또는 은닉된 계층들에 의해 제공된 심도(depth)로 인해, 신경망들은 이들이 트레이닝될 때에 복잡한 비선형 관계들을 모델링할 수 있다.
도 9a는 가중치들의 세트를 생성하기 위하여 신경망을 트레이닝하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다. 트레이닝 프로세스는 클라우드에서 종종 수행되어, 추가적인 또는 더욱 강력한 프로세싱이 액세스되도록 한다. 단계(901)에서, 이미지들의 세트와 같은 입력이 수신된다(예컨대, 도 7에서의 이미지 입력). 단계(903)에서, 입력은 현재의 필터 또는 가중치들의 세트를 이용하여 입력을 다음 계층(예컨대, 도 7에서의 CON1)에 접속하는 계층들을 통해 전파된다. 이어서, 신경망의 출력은 단계(905)에서, 다음 계층(예컨대, 도 7에서의 CON2)에서 수신되어, 하나의 계층으로부터 출력으로서 수신된 값들은 다음 계층에 대한 입력으로서 역할을 한다. 제1 계층으로부터의 입력들은 이들이 출력에 도달할 때까지 모든 중간 또는 은닉된 계층들을 통해 이러한 방법으로 전파된다. 선행 단락의 개 품종의 예에서, 입력은 다수의 개들의 이미지 데이터일 것이고, 중간 계층들은 단계(905)에서 반환되는 제안된 개 품종 라벨로, 이미지에서의 개가 소정의 품종일 확률을 계산하기 위하여 현재의 가중치 값들을 이용한다. 이어서, 사용자는 신경망이 어느 확률들을 반환해야 하는지를 선택하고 가중치들의 현재의 세트가 충분하게 정확한 라벨링을 공급하는지 여부를 판단하기 위하여 단계(907)에서 결과들을 검토할 수 있고, 그러한 경우에, 트레이닝이 완료된다(단계(911)). 결과가 충분하게 정확하지 않을 경우에, 신경망은 사용자가 선택한 확률들에 기초하여 단계(909)에서 가중치들을 조절하고, 그 다음으로, 조절된 가중치들로 입력 데이터를 다시 작동시키기 위하여 단계(903)로 루프백(loop back)한다. 일단 신경망의 가중치들의 세트가 결정되었으면, 이러한 가중치들의 세트는 "추론"하기 위하여 이용될 수 있고, 이러한 추론은 신경망으로의 데이터 입력으로부터 출력 결과를 생성하기 위하여 결정된 가중치들을 이용하는 프로세스이다. 일단 가중치들이 단계(911)에서 결정되면, 이어서, 가중치들은 더 이후의 이용을 위하여 비휘발성 메모리에 저장될 수 있고, 여기서, 비휘발성 메모리에서의 이 가중치들의 저장은 아래에 더욱 상세하게 논의된다.
도 9b는 추정된 정확도를 이용하여 입력 데이터의 "의미"를 예측하기 위하여 신경망을 이용하여 감독된 러닝의 추론 단계를 위한 프로세스를 설명하는 흐름도이다. 경우에 따라서는, 신경망이 클라우드에서 그리고 에지 디바이스(예컨대, 스마트폰, 자동차 프로세스, 하드웨어 가속기)의 프로세서에 의해 둘 모두에서 추론될 수 있다. 단계(921)에서는, 위에서 이용된 예에서의 개의 이미지와 같은 입력이 수신된다. 이전에 결정된 가중치들이 신경망 애플리케이션을 작동시키는 디바이스에서 존재하지 않을 경우에, 가중치들은 단계(922)에서 로딩된다. 예를 들어, 호스트 프로세서가 신경망을 실행시킬 시에, 가중치들은 가중치들이 저장되는 SSD로부터 판독될 수 있고, 호스트 디바이스 상의 RAM으로 로딩될 수 있다. 단계(923)에서는, 이어서, 입력 데이터가 신경망의 계층들을 통해 전파된다. 단계(923)는 도 9b의 단계(903)와 유사할 것이지만, 지금은 단계(911)에서의 트레이닝 프로세스의 종료 시에 확정된 가중치들을 이용할 것이다. 입력을 중간 계층들을 통해 전파한 후에, 출력은 이어서 단계(925)에서 제공된다.
도 10은 입력 이미지와 필터 또는 가중치들의 세트와의 사이의 컨볼루션 연산의 개략적인 표현이다. 이 예에서, 입력 이미지는 픽셀 값들의 6x6 어레이이고, 필터는 가중치들의 3x3 어레이이다. 컨볼루션 연산은 입력 이미지의 3x3 블록들과 3x3 필터의 행렬 곱셈에 의해 수행된다. 예를 들어, 필터와의 이미지의 상부-가장 좌측 3x3 블록의 곱셈은 출력 행렬의 상부 좌측 값으로 귀착된다. 이어서, 필터는 출력의 다음 엔트리를 생성하기 위하여 이미지 상에서 하나의 픽셀만큼 가로 질러 슬라이딩될 수 있고, 출력에 대한 4개의 요소들의 상부 행을 생성하기 위하여 그렇게 계속할 수 있다. 필터를 한번에 픽셀 아래로 슬라이딩하는 것에 의해 이것을 반복함으로써, 4x4 출력 행렬이 생성된다. 유사한 연산들이 계층들의 각각에 대하여 수행된다. 실제의 CNN에서, 데이터 세트들의 크기 및 수행된 컨볼루션들의 수는 매우 대량의 데이터를 수반하는 극도로 많은 수들의 이러한 연산들이 수행되는 것을 의미한다.
도 11은 신경망의 완전히 접속된 계층에서의 행렬 곱셈의 이용의 개략적인 표현이다. 행렬 곱셈 또는 MatMul은 신경망들에 대한 트레이닝 및 추론 단계들 둘 모두에서 보편적으로 이용된 접근법이고, 머신 러닝을 위한 커널 방법(kernel method)들에서 이용된다. 도 11은 상부에서 도 8과 유사하고, 여기서, 단일 은닉된 계층만이 입력 계층과 출력 계층 사이에 있다. 입력 데이터는 입력 노드들의 수에 대응하는 길이의 벡터로서 표현된다. 가중치들은 가중치 행렬로 표현되고, 여기서, 열들의 수는 은닉된 계층에서의 중간 노드들의 수에 대응하고, 행들의 수는 입력 노드들의 수에 대응한다. 출력은 입력 벡터와 가중치 행렬의 행렬 곱셈에 의해 결정되고, 여기서, 출력 벡터의 각각의 요소는 가중치 행렬의 열과 입력 데이터의 다중 성분 벡터의 내적이다.
행렬 곱셈들을 실행하기 위한 보편적인 기법은 승산기-누산기(multiplier-accumulator)(MAC 또는 MAC 유닛)를 이용하는 것이다. 그러나, 이것은 다수의 쟁점들을 가진다. 도 9b를 다시 참조하면, 행렬 곱셈들이 단계(923)에서 전파에 의해 수행되기 전에, 추론 단계는 단계(922)에서 신경망 가중치들을 로딩한다. 그러나, 수반된 데이터의 양이 극도로 클 수 있으므로, 추론을 위한 승산기-누산기의 이용은 가중치들의 로딩에 관련된 몇몇 쟁점들을 가진다. 이 쟁점들 중 하나는 요구된 비트-폭을 갖는 큰 MAC 어레이들을 이용해야 하는 것으로 인한 높은 에너지 손실이다. 또 다른 쟁점은 MAC 어레이들의 제한된 크기로 인한 높은 에너지 손실이어서, 로직과 메모리 사이의 높은 데이터 이동과, 로직 연산들 자체에서 이용된 것보다 훨씬 더 높을 수 있는 에너지 손실을 초래한다.
이 제한들을 피하기 위하여, 승산기-누산기 어레이의 이용은 다른 메모리 기술로 대체될 수 있다. 예를 들어, 행렬 곱셈은 ReRAM, PCM, FeRAM, 또는 MRAM 기반 메모리 셀들에 기초한 것들과 같은 스토리지 클래스 메모리(SCM) 및 NAND 메모리의 특성들을 활용함으로써 메모리 어레이 내에서 연산될 수 있다. 이것은 신경망 입력들이 판독 커맨드들을 통해 제공되고 신경 가중치들이 추론을 위하여 사전로딩되도록 한다. 메모리내(in-memory) 연산의 을 이용하여, MAC 어레이에서 행렬 곱셈을 수행하기 위한 로직에 대한 필요성, 및 메모리와 MAC 어레이 사이에서 데이터를 이동시키기 위한 필요성을 제거할 수 있다.
하기는 신경망의 계층들에 대한 가중치들을 메모리 셀들에 저장하고 계층들에 대한 입력들을 어레이의 워드 라인들 상의 전압 레벨들로서 적용함으로써, 메모리 셀들의 어레이 내에서 추론 동작의 입력 값들과 가중치들 사이의 곱셈들을 수행할 수 있는 메모리내-연산(compute-in-memory) DNN들에 대한 실시예들을 제시한다. 비트 라인들 상의 결과 전류는 가중치들과 입력들의 곱(product)에 대응하고, 여기서, 다수의 이러한 곱셈들은 동시에 수행될 수 있다. 이러한 추론 엔진들에 의해 소비된 전력을 감소시키기 위하여, 하기의 논의는 교차점 구조체를 가지는 어레이의 일부인 금속 층들에 의해 분리된 다수의 초 박형 유전체 층들로 형성된 멀티-레벨 메모리 셀들에 기초한 실시예들을 제시한다. 메모리 셀들에 대한 실시예들은 심지어 낮은 저항 상태에서도 높은 저항 값을 가지면서, 저 저항 및 고 저항 상태가 잘 분리되어 있으며, 추론할 때에 매우 낮은 전력 소비를 허용한다. DNN의 가중치들을 저장하기 위하여, 메모리 셀들은 프로그래밍 전압의 선택에 의해 유전체 층들 중 하나 이상을 선택적으로 파괴하기 위하여 입력 전압들을 이용하여 개별적으로 프로그래밍될 수 있다.
교차점 아키텍처의 이용은 행렬 가중치들이 어레이에서의 셀들의 저항 값들에서 인코딩되는 전압 대 전류(voltage to current) 변환 프로세스에 의해 벡터 곱셈이 구현되는, 더 작은 풋프린트(footprint)를 갖는 어레이를 가능하게 한다. 설명된 메모리 셀들은 RLRS > 10 MOhm과 같이, 그 저항이 여전히 매우 높은 최저 저항 상태를 가지면서, 2 이상의 인자를 갖는, 최저 저항 상태와 최고 저항 상태 사이의 메모리 윈도우를 가질 수 있다. 다른 메모리 셀 기술과 비교하여, 여기에 설명된 메모리 셀들은, 덜 엄격한 프로그래밍 요건들을 가지고 상대적으로 저전력 온-칩 회로부로 프로그래밍될 수 있는 멀티-레벨 셀(MLC)들을 허용한다. 추가적으로, 프로그래밍 방법은 각각의 비트에 대한 전용 선택 트랜지스터들을 필요로 하지 않으면서 디바이스들의 선택을 허용하여, 각각의 비트의 풋프린트를 줄인다. 메모리 디바이스가 추론을 위하여 이용되므로, 메모리 디바이스는 고객들에게 공급되기 전에, DNN에 대한 이전에 결정된 가중치 값들로 프로그래밍될 수 있다.
더욱 구체적으로, 실시예들은 멀티-레벨 저장 및 전기장 프로그램을 갖는 교차점 추론 엔진에 대하여 제시된다. 설명된 설계들은 초 저전력, 저비용이고 특수한 온-칩 프로그래밍을 요구하지 않는 멀티-레벨 셀(MLC) 벡터 곱셈 디바이스를 위한 것이다. 추론 엔진 또는 벡터 곱셈 디바이스는 각각의 교차점 접합에서 셀을 갖는 교차점 어레이, 및 독립적인 입력 전압들을 와이어들의 하나의 평면(즉, 워드 라인들)에서의 각각의 와이어에 공급하고 다른 와이어 평면(즉, 비트 라인들)에서의 각각의 와이어 상의 전류를 판독하도록 구성된 제어(또는 주변) 회로부로 이루어진다. 벡터 곱셈은 메모리 셀들에 의해 인코딩된 행렬 가중치들과 입력 전압들의 곱셈을 수반한다. 하나 이상의 이러한 어레이들을 보유하는 메모리 다이 및 제어 회로부는 도 6a 및 도 6b에 대하여 위에서 설명된 것과 같은, 동일한 다이의 일부 또는 제어 다이 및 메모리 다이의 접합된 다이 쌍일 수 있다. 여기에 제시된 실시예들에서, 교차점 어레이의 메모리 셀들은 입력 전압들을 전적으로 이용하여 다수의 저항 상태들 중 하나로 개별적으로 프로그래밍될 수 있다. 아래에 설명된 실시예들의 제1 세트에서, MLC 메모리 셀은 금속 층들에 의해 분리된 복수의 초 박형 유전체 층들로 형성되고, 여기서, 메모리 셀의 프로그래밍은 프로그래밍 전압 레벨의 선택에 의해 유전체 층들 중 하나 이상을 선택적으로 파괴함으로써 행해지고, 따라서, 메모리 셀의 전기적 저항을 설정한다. 실시예들의 대안적인 세트에서, 메모리 셀은 안티퓨즈를 기반으로 하며, 여기서, 안티퓨즈 기본 메모리 셀의 프로그래밍은 각각의 셀을 통하는 전류에 의해, 그리고 전류 흐름을 제한하는 컴플라이언스(compliance)를 설정함으로써 수행된다.
도 12a는 교차점 아키텍처를 형성하는 메모리 어레이(326)의 일 부분의 일 실시예를 사시도로 도시한다. 도 12a의 메모리 어레이(326)는 도 5에서의 메모리 어레이(326)에 대한 구현예의 일례이다. 비트 라인들(BL1 내지 BL5)은 (페이지 내로 이어지는 것으로서 표현된) 제1 방향으로 배열되고, 워드 라인들(WL1 내지 WL5)은 제1 방향에 수직인 제2 방향으로 배열된다. 도 12a는 워드 라인들(WL1 내지 WL5) 및 비트 라인들(BL1 내지 BL5) 둘 모두가 기판에 대해 수평 방향으로 이어지는 반면, 메모리 셀들의 2개가 1201로 표시되는 메모리 셀들이 전류가 수직 방향으로 이어지도록 배향되는 수평 교차점 구조체의 예이다. 메모리 셀들의 추가적인 층들을 갖는 메모리 어레이에서는, 비트 라인들 및 워드 라인들의 대응하는 추가적인 층들이 있을 것이다.
도 12a에 도시된 바와 같이, 메모리 어레이(326)는 복수의 메모리 셀들(1201)을 포함한다. 메모리 셀들(1201)은 ReRAM, MRAM, PCM, 또는 프로그래밍가능한 저항을 갖는 다른 재료를 이용하여 구현될 수 있는 것과 같은 재기입가능한(re-writeable) 메모리 셀들을 포함할 수 있다. 논의의 대부분이 더욱 일반적으로 적용될 수 있지만, 하기의 논의는 비휘발성 메모리 셀들의 특정한 구조체들에 초점을 맞출 것이다. 제1 메모리 레벨의 메모리 셀들에서의 전류는 화살표(Icell)에 의해 표시된 바와 같이 상향으로 흐를 수 있다.
도 12b 및 도 12c는 도 12a에서의 교차점 구조체의 측면도 및 상면도를 각각 제시한다. 도 12b의 측면도는 하나의 하부 와이어 또는 워드 라인(WL1), 및 상부 와이어들 또는 비트 라인들(BL1 내지 BLn)을 도시한다. 각각의 상부 와이어와 하부 와이어 사이의 교차점에는 멀티-레벨 메모리 셀(1201)이 있다. 도 12c는 m개의 하부 와이어들(WL1 내지 WLm) 및 n개의 상부 와이어들(BL1 내지 BLn)에 대한 교차점 구조체를 예시하는 상면도이다. 멀티-레벨 실시예에서, 각각의 교차점에서의 메모리 셀은 2 내지 5 레벨들과 같은 2개 초과의 저항 상태들 중 하나로 프로그래밍될 수 있다. 메모리 셀 설계에 대한 실시예들 및 그 프로그래밍을 위한 기법들에 관한 더 많은 세부사항이 아래에 주어진다.
도 12a 내지 도 12c의 어레이 구조체는 신경망의 계층들에 대한 행렬 가중치들이 그 전기적 저항으로서 메모리 셀들에 저장되는 추론 동작의 어레이 곱셈을 수행하기 위하여 이용될 수 있다. 전압 벡터 Vi in를 워드 라인들의 입력들에 인가하면 메모리 셀 저항들에 의해 인코딩된 가중치들과 입력 전압들의 벡터 곱셈을 참조하는 비트 라인들의 출력에서 전류가 생성된다. 가중치들은 워드 라인 WLi 및 비트 라인 BLj의 교차점에서의 메모리 셀의 저항 Ri,j의 역(inverse)인 컨덕턴스(conductance) bi,j로서 인코딩된다:
[수학식 1]
.
신경망의 계층에 대한 입력이 각각의 워드 라인들 WLi에 인가된 전압들 Vi in로서 인코딩될 경우에, 각각의 비트 라인 BLj상의 전류는 적(product)일 것이고:
[수학식 2]
,
여기서, 합은 i 이상이다. 실시예에 따라서는, 가중치들이 2진(binary) 값일 수 있고 2진 메모리 셀들에 저장될 수 있거나, 멀티-레벨 값들은 아래에 설명된 바와 같이 MLC 메모리에 저장될 수 있다. 유사하게, 실시예에 따라서는, 입력들이 2진 값일 수 있거나 더 높은 수의 값들을 가질 수 있다. 다수의 선택된 워드 라인들에 대해 감지 동작을 동시에 수행함으로써, 교차점 구조체는 계층에 대한 입력-가중치 곱을 자동적으로 연산할 것이다.
이 배열 하에서, 비트 라인을 따르는 다수의 메모리 셀들은 감지를 위하여 동시에 선택되고, 대응하는 입력 전압들은 그 대응하는 워드 라인들 상에 인가된다는 점에 유의한다. 전류 Ij out는 이 메모리 셀들의 전부에 대한 조합된 결과에 대응하고, 이 프로세스는 결과적으로, 단일 메모리 셀의 상태가 결정되는 정상적인 판독 동작과 상이하다. 이러한 추론 동작의 Ij out로부터, 그것은 결정되는 조합된 결과이고, 개별적인 메모리 셀들의 기여도는 알 수가 없을 것이다.
도 13은 어레이를 동작시킬 시에 이용된 제어 회로들의 일부 및 교차점 어레이의 상면도이고, 여기서, 어레이의 3x3 섹션이 도시된다. 각각의 워드 라인 WLi 및 비트 라인 BLj의 교차점에는 메모리 셀 Mi,j(1301i,j)이 있다. 신경망의 계층에 대한 입력들 INi은 디지털-아날로그 변환기들(1311i)에서의 전압 레벨들에 대한 입력 값들로부터 대응하는 전압 레벨로 변환된다. 입력들 INi은 네트워크에 대한 초기 입력 또는 선행 계층의 출력일 수 있다. 2진 실시예에서, 1 입력은 하이(high) 판독 전압 Vread으로 변환될 수 있고, 0 입력은 0V 또는 접지와 같은 로우(low) 판독 전압으로 변환될 수 있고, 이 경우에, DAC들(1311i)은 1 비트 DAC들일 수 있다. 멀티비트 입력들에 대하여, DAC들(1311i)은 대응하는 수의 비트들일 것이다. 디지털 출력 OUTj을 생성하기 위하여, 비트 라인들 BLj 각각 상의 아날로그 전류들 Ij out은 대응하는 아날로그-디지털 변환기 ADC(1311j)에서의 디지털 값으로 변환된다. 이어서, 출력 값들 OUTj은 디지털 연산 블록(1315)으로 가고, 디지털 연산 블록(1315)은 승산 및 누산 연산들에 대한 누산들과 같은 연산들, 활성화들 적용, 및 신경망을 통해 입력을 전파하는 것의 일부로서 수행된 다른 이러한 연산들을 수행할 수 있다. 도 5 및 도 6a를 다시 참조하면, DAC들(1311i), ADCj(1311j), 및 디지털 연산 블록(1315)은 310의 제어 회로부의 컴포넌트들과 함께, 행 디코더(324), 열 디코더(332), 및 판독/기입 회로들(328)의 일부로 고려될 수 있다. DAC 및/또는 ADC는 n>1인 2n 개의 레벨들로 양자화된 신호들을 생성하거나 출력할 수 있는 멀티-비트 디바이스들일 수 있다.
도 14는 멀티-레벨 초 저전력 추론 엔진에서 이용될 수 있는 메모리 셀 설계의 제1 실시예의 개략적인 표현이다. 어레이는 교차점 아키텍처를 이용하고, 각각의 셀은 상이한 저항 Ri 및 파괴 전압 VBD,i을 각각 갖는 다수의 유전체 층들을 가진다. 도 14에서, 메모리 셀은 워드 라인(1401)과 비트 라인(1411) 사이의 교차점에 위치된다. 메모리 셀은 N개의 유전체 층들을 가지고, 3개는 R1 및 VBD,1을 갖는 유전체 1(1407), Ri 및 VBD,i를 갖는 유전체 i(1405), 및 RN 및 VBD,N을 갖는 유전체 N(1403)으로서 도시된다. 유전체 층들 사이에는 1404 및 1406으로 도시된 것과 같은 도전성 층들이 있다. 금속 층(1402)은 또한, 워드 라인(1401)과 가장 인접한 유전체 층들, 여기에서는 유전체 N(1403) 사이에 포함될 수 있고, 금속성 층(1408)은 또한, 비트 라인(1411)과 가장 인접한 유전체 층들, 여기에서는 유전체 1(1407) 사이에 포함될 수 있다. 여기에서의 예에서, 유전체 층들은 그 저항 레벨들이 R1으로부터 RN으로 점진적으로 감소하도록 배열될 것이지만, 다른 순서들이 이용될 수 있다. 유전체 층들은 상이한 층의 저항 레벨들 사이의 차이들이 충분히 크도록 형성되어, 상이한 프로그래밍된 상태들이 잘 정의된다.
유전체 층의 파괴 전압 VBD는 유전체 층이 주어진 유전체 층에 대한 높은 저항 상태로부터 전기적 단락, Rshort << Ri으로 가는 전압이다. 예시적인 실시예에서, 유전체 층들은 초기 저항들(R1, …, RN) 및 파괴 강도들(VBD,1, …, VBD,N)이 조정되도록 형성되어, 더 높은 저항을 갖는 층들이 더 낮은 VBD를 가진다. 저항 및 파괴 강도들은 각각의 유전체 층의 두께, 결함 밀도, 및 재료 조성을 조정함으로써 제어될 수 있다. 이러한 방식으로, 메모리 셀의 저항은 더 많은 유전체 층들을 파괴하고 전체적인 셀 저항을 낮추기 위하여 프로그래밍 응력(programming stress)을 점진적으로 증가시킴으로써 설정될 수 있다.
예를 들어, 3개의 유전체 층들을 갖는 셀의 프로그래밍을 살펴보면, 셀은 R1 >> R2 >> R3 및 VBD,1 << VBD,2 << VBD,3가 되도록 형성된다. 이 예에서, 거의 모든 전압은 최고 저항(또는 최저 수의 아랫첨자) 비단락된 유전체 층을 가로 질러 강하된다. 초기에, 모든 유전체 층들이 온전한 상태에서, 셀은 최고 저항 상태에서 시작한다: Rcell = R1 + R2 + R3
Figure 112021073257562-pat00003
R1. 예를 들어, R3의 저항을 갖도록 메모리 셀을 프로그래밍하기 위하여, 층 3이 아니라 층들 1 및 2를 파괴하기 위하여, 프로그래밍 또는 기입 전압 Vwr은 메모리 셀에 걸쳐 가하게 된다: VBD,1 < VBD,2 < Vwr < VBD,3. 이것은 유전체 층 3 상에서 온전하게 남겨져서 Rcell = R3이 되도록 한다.
도 15는 멀티-레벨 초 저전력 추론 엔진에서 이용될 수 있는 그룹화된 유전체 층들을 이용하는 메모리 셀 설계의 실시예들의 또 다른 세트의 개략적인 표현이다. 도 14에서와 같이, 메모리 셀은 워드 라인(1501)과 비트 라인(1511) 사이의 교차점에 위치되고 다수의 교번하는 유전체 층들 및 도전성 층들로 형성되지만, 이제 유전체 층들은, 상이한 수들의 층들을 갖지만, 티어내(intra-tier) 동일하거나 매우 유사한 층들 성질들을 갖는 티어들로 그룹화된다. 이 예에서는, 티어 i에 대하여, i개의 층들이 있을 것이지만, 다른 실시예들은 상이하게 배열될 수 있다. 도 15는 각각이 N개의 층들로 이루어진 N개의 티어들의 예를 예시하고, 여기서, 티어들 1 및 2, 및 티어 N의 최후 층만이 명시적으로 도시된다. 유전체 티어 T1은 하나의 층 L1(1527-1)을 가지고, 금속 층(1530)에 의해 비트 라인(1511)으로부터 그리고 금속 층(1528)에 의해 티어 2 유전체 층들(1525-1 및 1525-2)로부터 분리된다. 제2 유전체 티어는 티어간(inter-tier) 금속 층(1526)에 의해 분리되는 층들 L1(1525-1) 및 L2(1525-2)의 쌍으로 형성되고, 여기서, 티어 2는 금속 층(1524)에 의해 티어 3의 층으로부터 분리된다. 티어 3의 제1 층 및 다른 개재하는 유전체 및 금속 층들은 N번째 티어의 N번째 층(1523-N)을 제외하고는 도시되지 않고, 이어서, N번째 티어의 N번째 층(1523-N)은 금속 층(1522)에 의해 워드 라인(1501)으로부터 분리된다.
도 15의 예시적인 실시예에서, 티어들은 더 낮은 번호가 부여된 티어들이 더 높은 저항을 가지고 더 높은 번호가 부여된 티어들이 더 낮은 번호 티어들보다 더 많은 층들을 포함할 수 있도록 순서화된다. 예를 들어, 티어 Ti
[수학식 3]
,
여기서, 합은 n 이상이고, Ti가 T(i+1)보다 더 적은 계층들을 가지더라도, RTi > RT(i+1)이다. 실시예들의 하나의 세트에서, 모든 층들에 대한 파괴 전압 VBD는 명목상으로 동일하도록 형성될 수 있다. 이러한 방법으로, 전압 n*VBD을 인가하면 티어 n에 이르기까지 모든 티어들이 파괴될 것이다.
총 (1 + 2 + 3=) 6개의 층들에 대한 3개의 티어들을 갖는 예에서 셀을 프로그래밍하기 위한 절차를 고려하면, RT1 >> RT2 >> RT3이고 각각의 층의 VBD가 유사하도록, 층들이 설계되고 형성될 수 있다. (저항은 전형적으로 두께에 대해 지수함수적으로 민감한 반면, VBD는 두께에 선형적으로만 종속됨.) 도 14의 실시예의 경우에서와 같이, 대다수의 메모리 셀의 총 저항은 최고 저항(여기에서 제시된 바와 같은 최저 번호가 부여된 아랫첨자) 티어를 갖는 온전한 티어로부터 나올 것이고, 메모리 셀에 걸쳐 인가된 대다수의 전압은 이 최고 저항 비단락된 티어를 가로 질러 강하할 것이다. 예를 들어, 저항 RT3을 갖도록 셀을 프로그래밍하기 위하여, 프로그래밍 전압 Vwr는 티어들 T1 및 T2에서의 층들의 각각을 파괴하도록 인가된다. 이 경우에, Vwr는 2*VBD < Vwr < 3*VBD가 되도록 취해진다.
어레이로의 데이터(즉, 가중치 값들)의 기입을 고려하면, 여기에서 제시된 실시예들은 도 14 및 도 15에 대하여 설명된 것들과 같은 메모리 셀들을 다수의 저항 값들 중 하나로 선택적으로 프로그래밍하기 위하여 인가된 전압들을 이용한다. 예를 들어, 다수의 워드 라인들을 따르는 동시 감지의 저전력 추론을 위하여, 모든 유전체들이 단락된 상태를 피할 수 있더라도, N개의 층들/티어들을 갖는 실시예는 N개의 상태들로 프로그래밍될 수 있지만, 일부 실시예들에서는, 과도한 전류를 피하기 위하여 추가적인 저항이 셀과 직렬로 형성될 수 있다. 기입되도록 선택된 메모리 셀들의 전기적 선택은 도 16에 대하여 예시된 바와 같이, 절반-선택 방식을 이용하여 행해진다.
도 16은 프로그래밍될 메모리 셀들의 선택을 위한 절반-선택 방식을 예시한다. 전압들은 상부(비트 라인들) 및 하부(워드 라인)에 인가되어, 기입될 비트 라인을 따르는 셀들은 하부 및 상부 와이어에 걸쳐 인가된 전압의 기입 전압 Vwr을 갖도록 하고, 여기서, Vwr의 값은 타겟 데이터 상태의 프로그래밍 전압을 제공하도록 선택된다. 기입되지 않아야 하는 셀들은 전압 강하의 절반(Vwr/2)만 경험하거나 전압 강하를 경험하지 않는다. 도 16의 예에서, 비트 라인 BL(N-1) 및 워드 라인들 WL1 및 WL(M-1)의 교점에서의 2개의 셀들은 기입을 위하여 선택되고, Vwr는 선택된 워드 라인들 상에 인가되고 0V는 선택된 비트 라인 상에 인가된다. 다른 워드 라인들 및 비트 라인들은 ½ Vwr로 설정된다. 이것은 선택된 메모리 셀들에 걸쳐 Vwr의 차분(differential)을, 그리고 비선택된 메모리 셀들에 걸쳐 0V 또는 ½ Vwr의 어느 하나를 가한다. Vwr.max가 최대 프로그래밍 전압이고 Vwr.min이 최소 프로그래밍 전압일 경우에, 이 값들은 ½Vwr.max < Vwr.min가 되도록 구성되어야 하고, 이와 다를 경우에, 절반-선택 전압은 비선택된 셀들의 일부를 파괴할 것이다. 프로그래밍은 아래에 더욱 상세하게 논의된 바와 같이, 비트 라인별로 순차적으로 수행될 수 있다. (여기에 설명된 절반-선택 프로세스에서, 로우 전압 레벨은 0V에서 취해지고, ½Vwr의 절반-선택 값들이 이용된다. 더욱 일반적으로, 이것들은 또 다른 로우 전압 값일 수 있고, 절반-선택 프로세스가 원하지 않는 프로그래밍 또는 판독 값들을 유도하지 않는 한, 절반-선택 전압 레벨은 Vwr 및 로우 전압에 대하여 중간인 다른 전압 레벨들일 수 있다.)
복수의 유전체 층들을 갖는 교차점 추론 엔진에서의 메모리 셀 프로그래밍은 적절한 프로그램 전압 Vwr을 인가함으로써, 최고 저항 상태로 좌측에 선택되지 않은 메모리 셀들에 대하여, 유전체 층들의 일부 또는 전부를 선택적으로 파괴하는 것을 통해 행해진다. 각각의 셀에서의 레벨들의 수는 ½Vwr.max < Vwr.min가 되도록 최대 절반-선택 전압(½Vwr.max)과 최소 선택 전압(Vwr.min) 사이의 마진, 유전체 층들의 저항 분포들을 제어하기 위한 능력, 및 멀티-레벨 메모리 셀들의 형성의 두께를 제한하는 임의의 설계 규칙에 의해 제한된다. 다른 메모리 기술에 비해, 이 메모리 셀 구조체는 거의 임의의 저항 상태 조합을 구현할 수 있으며, 반도체 제조 공장에서 일반적으로 이용가능한 임의의 재료(SiO2, HfO2, MgO 등)의 간단한 유전체 층들로부터 형성될 수 있다. 메모리 셀들이 한번만 프로그래밍될 수 있지만, 추론 엔진으로서의 애플리케이션들에서, 신경망의 층들의 가중치들은 디바이스가 전형적으로 거치는 테스트 프로세스들의 종료 시에 제조 설비에서 행해지는 것과 같이, 디바이스가 최종 사용자에게 제공되기 이전에, 또는 하나의 예를 들면, 자율 차량과 같은 애플리케이션 상에서 DNN을 구현하는 프로세서에 의해 이용된 메모리 어레이들로 그 DNN 모델의 가중치들을 프로그래밍하는 주문자 상표 생산자(original equipment manufacturer)와 같은 제3자에 의해 기입될 수 있다.
도 17은 다수의 유전체 층들로 형성된 메모리 셀들을 갖는 교차점 메모리를 기입하기 위한 시퀀스에 대한 실시예의 개략적인 표현이다. 신경망의 네트워크 가중치 값들 또는 다른 데이터를 교차점 어레이에 기입하기 위한 프로그래밍 동작은 전형적으로, 워드 라인들의 전부 또는 대부분, 비트 라인들의 전부 또는 대부분을 액세스할 것이고, 모든 데이터 상태들을 프로그래밍할 것이고, 이것은 비-2진(non-binary) 실시예들에 대한 다수의 Vwr 값들을 요구할 것이다. 이 상이한 조합들의 전부가 데이터 값들의 매우 비통상적인 세트들 외부에서, 동시에 달성될 수 있으므로, 기입 동작은 순차적인 동작을 수반할 것이다. 도 16에 대하여 설명된 바와 같이, 프로그래밍은 공유된 워드 라인을 따라 하나 이상의 워드 라인들 상의 메모리 셀들에 대하여 수행될 수 있어서, 워드 라인들은 개별적으로 프로그래밍될 수 있거나, 병렬처리를 증가시키기 위하여 다수의 워드 라인들이 동시에 프로그래밍될 수 있다. 동시에 프로그래밍될 수 있는 워드 라인들의 수는 어레이의 워드 라인들의 전부일 수 있거나, 전력/전류 고려사항들이 수를 제한할 경우에 더 적은 수일 수 있다. 멀티-레벨 셀 실시예에서, 대응하는 수의 상이한 Vwr 값들이 프로그래밍 동작에서 이용된다. 주어진 비트 라인에 대하여, 다수의 데이터 상태들을 동시에 프로그래밍하기 위하여 다수의 Vwr가 동시에 인가될 수 있지만; 그러나, 절반-선택 실시예에서 적절하게 바이어스되지 않을 경우에, 다수의 데이터 상태들을 동시에 프로그래밍하는 것은 비선택된 메모리 셀들 상에서 프로그래밍을 유도할 수 있다. 여기에서의 예시적인 실시예들은 동일한 상태로 프로그래밍되는 모든 비트 라인들에 대하여 단일 비트 라인 상의 선택된 메모리 셀들을 기입한다. 실시예에 따라서는, 프로그래밍 시퀀스는 주어진 데이터 상태에 대하여 비트 라인별로 수행될 수 있고, 이어서, 모든 데이터 상태들을 포괄하도록 반복될 수 있거나, 주어진 비트 라인에 대하여, 모든 데이터 상태들은 다음 비트 라인 상으로 이동하기 전에 프로그래밍될 수 있다.
도 17은 BL0에서 시작하고 순차적으로 BLn으로 진행되는 시퀀스로 어레이에서 각각의 비트 라인을 프로그래밍하는 것을 예시한다. 도 17에서 언급된 바와 같이, 선택된 비트 라인 상에서 프로그래밍되도록 선택된 메모리 셀들은 S로 라벨링되고, 프로그래밍되도록 선택되지 않은 메모리 셀들은 NS로 라벨링된다. 프로그래밍될 비트 라인은 모든 다른 비트 라인들을 Vwr/2 또는 중간 "절반-선택" 기입 전압으로 설정하면서, 각각의 비트 라인을 그룹화하거나 로우 전압으로 설정함으로써 선택된다. 비트 라인 상에서 프로그래밍되도록 선택된 메모리 셀들은 모든 다른 워드 라인들을 Vwr/2 설정하면서, Vwr를 각각의 워드 라인들에 인가함으로써 선택된다. 멀티-레벨 셀 실시예에서, 선택된 비트 라인에 대하여, Vwr 값은 모든 대응하는 프로그래밍 전압 레벨들을 통해 진행될 수 있다. 예를 들어, 도 17에서의 좌측에서, 비트 라인 BL1 및 워드 라인들 WL2 및 WLm 상의 메모리 셀들은 프로그래밍된 상태들 중 하나에 대하여 기입되도록 선택되고, 도 17에서의 우측에서, 비트 라인 BLn 및 워드 라인 WL1 상의 메모리 셀은 프로그래밍된 상태들 중 하나로 기입되도록 선택된다.
모든 데이터 상태들이 시퀀스에서 다음 비트 라인으로 이동하기 전에 주어진 비트 라인 상의 메모리 셀들로 기입되는 실시예에서, 비선택된 워드 라인 및 비트 라인들은 ½Vwr에서 절반-선택되고, 결과적으로 또한, 프로그래밍 전압 Vwr이 프로그래밍될 상이한 데이터 상태들에 대하여 상승될 때에 스텝업(step up)될 것이다. 모든 비트 라인들이 프로그래밍 전압들의 시퀀스에서 다음 Vwr에서의 모든 비트 라인들을 통해 사이클이 이루어지기 전에 하나의 Vwr에 대하여 사이클이 이루어지는 대안적인 실시예들에서, 비선택된 워드 라인들 및 비트 라인들은 비트 라인들을 통한 주어진 사이클에 대하여 동일한 ½Vwr에 머무를 것이고, 비트 라인들은 비트 라인이 선택/선택해제될 때에 ½Vwr 내지 0V 사이에서 스위칭하고, 워드 라인들이 주어진 Vwr에 대한 비트 라인들을 통해 프로그래밍 흐름 사이클들로서 선택/선택해제될 때, 워드 라인들은 ½Vwr 내지 Vwr 사이에서 스위칭한다.
도 5 및 도 6a를 다시 참조하면, 메모리 셀들의 판독 및 기입에 관련된 제어 회로부는 상태 머신(312)과 같은, 310의 제어 회로부의 컴포넌트들과 함께, 행 디코더(324), 열 디코더(332), 및 판독/기입 회로들(328)의 일부일 수 있다. 기입 동작 동안에, 행 디코더(324) 및 열 디코더(332) 내의 구동기들/바이어싱 회로부는 메모리 셀들이 프로그래밍을 위하여 개별적으로 선택되도록, 도 19에 대하여 예시된 바와 같이 워드 라인들 및 비트 라인들을 바이어스할 수 있다.
추론 동작에서의 데이터의 판독에 대하여, 도 12c에 대하여 설명된 바와 같이, 개별적인 메모리 셀들의 데이터 상태를 결정하는 것이 아니라, 행 디코더(324) 내의 바이어싱 회로부는 네트워크의 계층에 대한 입력 벡터를, 선택된 세트의 비트 라인들의 메모리 셀들의 워드 라인들에 동시에 인가되는 Vin 값들의 세트로 변환한다. 감지 증폭기들(350)을 포함하는, 열 디코더(332) 및 판독/기입 회로들(328)은 대응하는 비트 라인을 따라 저장된 가중치 값들과 입력 벡터의 곱을 표시하기 위하여 멀티-비트 감지 동작으로서 워드 라인들의 각각을 따라 전체 Iout을 결정할 것이다. 다수의 메모리 셀들을 동시에 감지하더라도, 여기에 설명된 메모리 셀들은 심지어 최저 저항 상태에서 높은 저항 값을 가질 수 있으므로, 전류 값들은 여전히 비교적 낮을 것이고 추론 프로세스는 저전력 프로세스일 것이다. 이어서, 메모리 디바이스 상의 제어 회로부는, 후속 계층에 대한 입력 또는 네트워크에 대한 출력의 어느 하나일 수 있는 신경망의 계층에 대한 출력을 결정하기 위하여, 곱셈 결과들을 승산 및 누산 연산의 일부로서 누산할 수 있다.
도 18a 내지 도 18c는 2 계층화된 층들의 예에서의 절연 파괴에 의한 기입 메커니즘을 예시한다. 도 18a는 2 티어 메모리 셀의 개략적인 표현이다. 제1 티어는 도전성 층들(1806 및 1808) 사이에 형성된 저항 R1 및 파괴 전압 VBD를 갖는 단일 층 유전체 1(1807)이다. 도전성 층들(1802 및 1806) 사이의 제2 티어는 유전체 2A(1805) 및 유전체 2B(1803)의 2개의 층들로 형성되고, 2개의 층들 각각은 파괴 전압 VBD 및 저항 R2을 갖고 도전성 층(1804)에 의해 분리된다. 대응하는 워드 라인 및 비트 라인에 의해 메모리 셀에 걸쳐 인가된 프로그래밍 전압 Vwr은 전압원(1801)에 의해 표현된다. 메모리 셀은 유전체 층들의 어느 것도 파괴되지 않은 최고 저항 상태에 대응하는 레벨 0일 수 있고; 레벨 1에서는, 유전체 1(1807)이 파괴된 반면, 유전체들 2A(1805) 및 2B(1803)가 온전하고; 레벨 2에서는, 유전체들 2A(1805) 및 2B(1803)가 또한 파괴된다. 2진 실시예에서, 레벨들 0 및 1이 이용될 것이고, 높은 저항 상태 및 낮은 저항 상태에 각각 대응할 것이다. 3 상태 디바이스로서 동작될 때, 레벨 0은 높은 저항 상태일 것이고, 레벨 1은 중간 저항 상태일 것이고, 레벨 2는 낮은 저항 상태일 것이다. 모든 유전체 층들이 레벨 2에서 단락되므로, 레벨 2는 매우 낮은 저항을 가질 수 있고 더 많은 전력을 소비할 것이다. 3 상태 메모리 셀로서 동작될 때, 일부 실시예들은 저전력 추론을 위한 용법을 허용하기 위하여 직렬 저항을 메모리 셀에 추가할 수 있다.
도 18b는 VBD의 측면에서 정규화된, 전압원(1801)으로부터의 메모리 셀의 전체에 걸쳐 인가된 전압에 대한, 파괴 전압 VBD에 대해 다시 정규화된, 티어들 각각에 걸친 전압의 도표이다. 도 18b의 예에서, R1 = 10 R2이어서, 메모리 셀들은 전압 분배기로서 작용하고, 각각의 층을 가로 질러 강하된 상대적인 전압은 총 셀 저항에 대한 그 저항의 비율에 따라 달라질 것이다. 이것은 도 18b의 도표들에 반영되고, 여기서, 1821은 유전체 1(1807)에 걸친 전압 강하이고, 1823은 유전체 2A(1805) 및 유전체 2B(1803) 각각에 걸친 전압 강하이다.
VBD의 인가된 전압(정규화된 스케일에서 1)에서 시작하는 전체 메모리 셀(x-축)에 걸친 인가된 전압을 살펴보면, 1.0VBD에서, 전압의 일부가 티어 2에 걸쳐 강하되므로, 유전체 1(1807)에 걸친 전압 강하는 VBD보다 작다. 인가된 전압이 증가됨에 따라, 모든 유전체 층들에 걸친 전압은 메모리 셀에 걸친 전압이 ~1.2VBD일 때까지 증가되고, 여기서, 유전체 1(1807)은 파괴될 것이다. 일단 유전체 1(1807)이 파괴되면, 유전체 1(1807)에 걸친 전압 강하가 없어서, 인가된 전압은 유전체 2A(1805) 및 유전체 2B(1803)에 걸쳐 강하되고, 유전체 2A(1805) 및 유전체 2B(1803)가 R2의 동일한 저항을 가지므로, 인가된 전압의 절반은 유전체 2A(1805) 및 유전체 2B(1803) 각각에 걸쳐 강하된다.
티어 2 유전체들, 유전체 2A(1805) 및 유전체 2B(1803)의 유전체를 파괴하기 위하여, 인가된 전압은 2VBD를 초과할 필요가 있을 것이다. 결과적으로, 레벨 1 데이터 값을 메모리 셀로 프로그래밍하기 위하여, 프로그램 전압 Vwr은 ~1.2VBD < Vwr < 2VBD이도록 되어야 한다. Vbd.effi가 티어 i에 대한 유효 파괴 전압일 경우에, 전압 분배기들을 참작하면, 초기에, 유전체 1(1807)에 걸쳐 보여진 바와 같은 파괴 전압은 Vbd.eff.1 = Vbd*(R1+2*R2)/R1이다. 유전체 1(1807)이 파괴된 후에, 모든 전압 강하는 유전체 2A(1805) 및 유전체 2B(1803)의 직렬 쌍을 가로 질러, Vbd.eff.2 = 2*Vbd가 된다. 레벨 0 및 레벨 1 상태들 사이의 충분한 마진을 가지기 위한 조건은 Vbd.eff.1 < Vbd.eff.2이어서, R1 > 2*R2이다.
도 18a에 예시된 바와 같이 데이터를 메모리 셀들의 어레이에 프로그래밍할 때, 도 18c는 도 17에 대하여 위에서 설명된 바와 같이 프로그래밍될 메모리 셀들에 대응하는 워드 라인들에 인가하기 위한 기입 전압 Vwr에 대한 스텝들의 시퀀스의 파형을 예시한다. 도 18c의 파형은 기입 동작에서 선택된 워드 라인들에 인가된 Vwr 레벨들에 대한 실시예이다. 초기에, 모든 메모리 셀들은 레벨 0에 있고, 레벨 0 상태의 타겟 상태를 갖는 메모리 셀들은 이 초기 상태로부터 프로그래밍되지 않을 것이다. 레벨 1 상태들을 기입하기 위하여, Vwr의 프로그래밍 전압은 선택된 워드 라인들에 인가되어, Vwr > Vbd.eff.1 및 Vwr < 2VBD가 되도록 한다. 유전체 2A(1805) 및 유전체 2B(1803)도 또한, 레벨 2에 대하여 파괴될 경우에, Vwr는 이어서, 레벨 2로 기입되도록 선택된 메모리 셀들에 대하여 Vwr > 2VBD로 상승된다.
도 19a 및 도 19b는 3 계층화된 층 메모리 셀의 예에서의 절연 파괴에 의한 기입 메커니즘을 예시한다. 도 19a는 제1 티어가 도전성 층들(1914 및 1912) 사이의 저항 R1 및 파괴 전압 VBD를 갖는 단일 층 유전체 1(1913)인 3 티어 메모리 셀의 개략적인 표현이다. 도전성 층들(1908 및 1912) 사이에 형성된 제2 티어는 유전체 2A(1911) 및 유전체 2B(1909)의 2개의 층들을 가지고, 이러한 2개의 층들 각각은 파괴 전압 VBD 및 저항 R2을 갖고 도전성 층(1908)에 의해 분리된다. 도전성 층들(1908 및 1902) 사이의 제3 티어는 유전체간(inter-dielectric) 도전성 층들(1906 및 1904)을 갖는 유전체 3A(1907), 유전체 3B(1905), 및 유전체 3C(1903)의 3개의 층들로 형성된다. 대응하는 워드 라인 및 비트 라인에 의해 메모리 셀에 걸쳐 인가된 프로그래밍 전압 Vwr은 전압원(1901)에 의해 표현된다. 메모리 셀은: 유전체 층들의 어느 것도 파괴되지 않은 최고 저항 상태에 대응하는 레벨 0일 수 있고; 유전체 1(1913)이 파괴된 반면, 유전체들 2A(1911) 및 2B(1909) 및 유전체들 3A(1907), 3B(1905), 및 3C(1903)가 온전한 레벨 1일 수 있고; 유전체들 2A(1911) 및 2B(1909)가 또한 파괴되는 레벨 2일 수 있고; 티어 3 유전체들(1907, 1905, 및 1903)이 파괴되는 레벨 3일 수 있다. 3진(ternary) 실시예에서, 레벨들 0, 1, 및 2가 이용될 것이고, 높은 저항 상태, 중간 저항 상태, 및 낮은 저항 상태에 각각 대응할 것이다. 4 상태 디바이스로서 동작될 때, 레벨 0은 높은 저항 상태일 것이고, 레벨들 1 및 2는 중간 저항 상태들일 것이고, 레벨 3은 낮은 저항 상태일 것이다. 모든 유전체 층들이 레벨 3에서 단락되므로, 레벨 3은 매우 낮은 저항을 가질 수 있고 더 많은 전력을 소비하므로, 3 상태 메모리 셀로서 동작될 때, 일부 실시예들은 저전력 추론을 위한 용법을 허용하기 위하여 직렬 저항을 메모리 셀에 추가할 수 있다. 3 레벨 3 계층화된 시스템에 대하여, 마진 조건들은 Vbd.eff.1 < Vbd.eff.2, 또는 인자 i에 대하여 Vbd.eff.1 = i*Vbd.eff.2이어서, ½Vwr.max < Vwr.min를 만족시키기 위하여 0.5 < i < 1가 된다. 유사하게, Vbd.eff.2 < Vbd.eff.3, 또는 인자 n에 대하여 Vbd.eff.2 = n*Vbd.eff.3이고, 여기서, n < 1이다. Vbd 및 R3의 단위들로, 이것은 조건 R2 = 3/(3*n-2) 및 R1 = 3n*R2/(3*n*i -1)을 부여한다.
도 19a에 예시된 바와 같이 데이터를 메모리 셀들의 어레이에 프로그래밍할 때, 도 19b는 도 17에 대하여 위에서 설명된 바와 같이 프로그래밍될 메모리 셀들에 대응하는 워드 라인들에 인가하기 위한 Vwr 스텝들의 시퀀스의 파형을 예시한다. 도 19b의 파형은 기입 동작에서 선택된 워드 라인들에 인가된 Vwr 레벨들에 대한 실시예이다. 초기에, 모든 메모리 셀들은 레벨 0에 있고, 레벨 0의 타겟 상태를 갖는 메모리 셀들은 이 초기 상태로부터 프로그래밍되지 않을 것이다. 레벨 1 상태들을 기입하기 위하여, Vwr의 프로그래밍 전압은 선택된 워드 라인들에 인가되어, 티어 2 또는 티어 3 유전체들이 아니라, 티어 1 유전체를 파괴하기 위하여 Vwr > Vbd.eff.1 및 Vwr < Vbd.eff.2가 된다. 레벨 2 상태들을 기입하기 위하여, Vwr의 프로그래밍 전압은 선택된 워드 라인들에 인가되어, 티어 3 유전체들이 아니라, 티어 2 유전체를 파괴하기 위하여 Vwr > Vbd.eff.2 및 Vwr < 3VBD가 된다. 유전체 3A(1907), 유전체 3B(1905), 및 유전체 3C(1903)가 또한, 레벨 3에 대하여 파괴되어야 할 경우에, Vwr는 이어서, 레벨 3으로 기입되도록 선택된 메모리 셀들에 대하여 Vwr > 3VBD로 상승된다.
도 20은 추론 엔진을 위한 초 박형 유전체 층들을 갖는 메모리 셀들을 이용하는 교차점 아키텍처의 이용에 대한 실시예를 예시하는 흐름도이다. 도 20의 흐름은 교차점 메모리 어레이를 프로그래밍하기 위한 방법의 실시예(단계들(2001 내지 2007)) 및 추론하기 위한 메모리 어레이의 후속 이용(2011 내지 2019)의 둘 모두를 포함한다. 여기의 설명은 신경망을 위한 추론 엔진의 맥락이고, 설명된 구조체들 및 기법들은 이러한 애플리케이션들에서 특히 유용할 수 있지만, 높은 유지력을 갖는 저전력 비휘발성 메모리가 많은 맥락들에서 이용될 수 있을 때, 이들이 더욱 일반적으로 적용될 수 있다.
단계(2001)에서, 어레이는 비트 라인들의 선택된 하나에 대하여 바이어스되고, 여기서, 프로그래밍 시퀀스는 도 17에 대하여 예시된 바와 같이 BL0으로 시작할 수 있다. 예를 들어, 선택된 비트 라인은 접지로 바이어스될 수 있고, 다른 비트 라인들 및 현재의 Vwr 값에 대한 비선택된 워드 라인들은 ½Vwr에서 절반 선택될 수 있다. 단계(2003)에서, 프로그래밍 전압 Vwr은 Vwr에 대응하는 데이터 상태로 프로그래밍될 메모리 셀들에 대응하는 워드 라인들에 인가된다. 단계들(2001 및 2003)에서의 워드 라인들 및 비트 라인들의 바이어싱은 행 디코더(324) 및 열 디코더(332) 및 판독/기입 회로들(328) 내에서 바이어싱 회로부를 포함하는 하나 이상의 제어 회로들에 의해 수행될 수 있다.
단계들(2001 및 2003)의 프로세스는 각각의 비트 라인에 대하여, 그리고 멀티-레벨 셀 실시예들에 대해서는 각각의 Vwr에 대하여 반복된다. 도 20의 실시예에서, Vwr 루프는 비트 라인 루프 내에 있지만, 다른 실시예들은 이 순서를 반전시킬 수 있다. 단계(2004)에서는, 선택된 비트 라인에 대한 더 많은 프로그래밍 전압들 Vwr이 있는지 여부가 결정되고, 그러한 경우에, 유전체 층들의 다음 티어 또는 다음 유전체 층을 단락시키는 것에 대응하는 Vwr 값으로 스텝되는 것과 같이, Vwr 값은 단계(2005)에서 다음 프로그래밍 값으로 증분되고, 이어서, 절반-선택되도록 현재 비선택된 워드 라인들을 이에 따라 리바이어스(re-bias)하기 위하여 단계(2001)로 루프백된다. 단계(2004)에서 기입하기 위한 Vwr 값이 더 이상 없을 경우에, 기입하기 위한 더 많은 비트 라인들이 있는지 여부를 결정하기 위하여 흐름은 단계(2006)로 가고, 그러한 경우에, 단계(2001)로 루프백하기 전에, 비트 라인은 단계(2007)에서 증분되고; 그렇지 않을 경우에, 메모리 어레이의 프로그래밍이 완료된다.
추론 엔진과 같은 애플리케이션들에서, 어레이의 프로그래밍은 전형적으로, 최종 사용자에게 제공되기 이전에 행해질 것이다. 예를 들어, 메모리 어레이는 신규 디바이스들에 대해 일반적으로 수행되는 테스팅 프로세스들의 종료 시와 같은 선적 이전에 제조자에 의해 프로그래밍될 수 있다. 대안적으로, 메모리 어레이는 최종 사용자에게 공급되기 전에 중간 당사자에 의해 프로그래밍될 수 있고: 예를 들어, 비프로그래밍된 메모리 어레이(초기화되거나 또는 그렇지 않은 것 중 어느 하나)는 (DNN 모델에 대한 가중치들과 같은) 그 데이터를 이어서 프로그래밍할 수 있고 이어서 프로그래밍된 어레이를 편입시키는 제품을 OEM의 고객에게 공급하는 주문자 상표 생산자(OEM)에게 제공될 수 있다. 이것은 예를 들어, 신경망들에 의존하는 자율 차량의 경우일 것이고, 제조자는 차량이 최종 조작자에게 제공되기 전에, 그 신경망 모델들의 가중치들을 어레이들로 프로그래밍할 것이다.
메모리 어레이는 전형적으로, 최종 사용자에게 공급되기 이전에 한번만 프로그래밍될 것이므로, 일부 실시예들에서, 프로그래밍 전압들 Vwr는 메모리 디바이스 자체 상에서 생성되는 것이 아니라, 프로그래밍 동안에 외부적으로 공급될 수 있다. 이 경우에, 전력 제어(316)와 같은, 메모리 디바이스 상의 하나 이상의 제어 회로들은 Vwr를 생성하기 위한 능력을 가질 필요가 없고, 더 높은 전압들을 다루기 위한 전하 펌프들 및 회로부들과 같은 회로 요소들을 피할 수 있어서, 이 회로들에 대한 면적 및 전력 소비를 절감할 수 있다.
단계들(2011 내지 2019)은 메모리 어레이가, 가중치들이 어레이의 메모리 셀들에 값들로서 저장되고 입력이 입력 값들의 벡터가 될 신경망에서 추론 엔진 네트워크로서 언제 이용되는지를 고려한다. 도 13에 대하여 위에서 예시된 바와 같이, 입력 벡터 INi은 DAC들(1311i)에 의해, 대응하는 워드 라인들 WLi에 인가되는 전압 레벨들 Vi in로 변환되고, 여기서, 입력 값들은 실시예에 따라서는 2진 또는 멀티-레벨일 수 있다. 워드 라인 WLi과 비트 라인 BLj 사이에서 흐르는 전류는 입력 벡터 성분 Vi in 및 메모리 셀(1301i,j)에 저장된 행렬 가충치 bi,j의 곱에 대응한다. 총 전류 Ij out는 전압 레벨들 Vi in에 의해 표현된 입력 벡터와 대응하는 BLj에 대한 메모리(1301i,j)에 저장된 가중치들에 의해 표현된 j번째 행렬 열에서의 값들의 벡터곱(vector product)의 합과 동일할 것이다. 출력 전류 Ij는 수학식들 1 및 2에 의해 위에서 설명된 바와 같은 메모리내 행렬 곱셈의 출력 벡터를 나타낸다.
단계(2015)는 ADC들(1313j)에 의해 OUTj으로 변환되는, 수학식 2의 곱에 대응하는 비트 라인들 BLj 각각 상의 전류 Ij out를 결정한다. 이어서, 개별적인 열들의 이 부분 곱들은 단계(2017)에서 계층에 대한 출력을 생성하기 위하여 디지털 연산 블록(1315)에서 누산될 수 있다. 단계(2019)는 단계(2017)로부터의 출력의 추가적인 전파에 대응한다. 실시예에 따라서는, 단계(2017)는 활성화 함수들을 적용하는 것, 추가적인 값들에 대한 추론 동작의 초기 단게들을 반복하는 것, 계층의 출력을 제공하는 것, 또는 이들의 일부 조합을 포함할 수 있다. 이어서, 계층의 출력은 네트워크 내의 계층의 위치에 따라서는, 네트워크의 후속 계층에 대한 입력 또는 네트워크에 대한 최종적인 출력으로서 이용될 수 있다.
실시예들의 대안적인 세트에서, 교차점 아키텍처를 갖는 추론 엔진은 안티퓨즈 유형 메모리 셀들에 기초할 수 있고, 여기서, 각각의 메모리 셀은 각각의 교차점에서 안티퓨즈를 포함한다. 박형 유전체 층들에 기초한 실시예들에서와 같이, 안티퓨즈 실시예는 1회 기입, 2진 실시예에서 도 20에 대하여 설명된 것과 유사한 흐름에 의해 프로그래밍이 수행되는 많은 유형의 어레이의 판독이다. 안티퓨즈 기반 실시예들은 (기가-Ω 또는 테라-Ω 범위에서와 같은) 매우 높은 저항 레벨을 달성할 수 있고, 낮은 저항 레벨은 대형 직렬 저항기의 이용을 통해 상승될 수 있다. 안티퓨즈 기술은 작은 스케일(즉, 10 nm) 아래로 구현될 수 있고, 멀티-레벨 저항 상태들이 구현될 수 있다.
일부 실시예들에서, 안티퓨즈의 바이어싱을 수정하여 컴플라이언스 전류로 귀착되게 함으로써 프로그래밍 후에 다수의 저항 레벨들을 정의하는 것이 가능하지만, 안티퓨즈는 비프로그래밍된 상태에서 정상적으로 OFF이고 프로그래밍된 상태에서 정상적으로 ON인 1회용 프로그래밍가능 디바이스이다. 안티퓨즈에 대한 일반적인 설계는 공급 레벨과 비트 라인 사이의 안티퓨즈 트랜지스터와 직렬로 접속된 선택 트랜지스터이다. 선택 트랜지스터는 판독 워드 라인에 접속된 제어 게이트를 가지고, 안티퓨즈 트랜지스터는 프로그래밍 워드 라인에 접속된 게이트를 가진다. 안티퓨즈는 안티퓨즈 트랜지스터에서 산화물을 파괴시키고 안티퓨즈 트랜지스터를 단락시키기 위하여 하이 전압(high voltage)을 프로그래밍 워드 라인에 인가함으로써 프로그래밍된다. 안티퓨즈를 판독하기 위하여, 전압은 선택 트랜지스터를 턴온하기 위하여 판독 워드 라인에 인가되는 반면, 프로그래밍 워드 라인은 로우(low)이어서, 전류는 프로그래밍된 안티퓨즈를 통해 흐를 수 있지만, 비프로그래밍된 안티퓨즈들은 전류를 전도하지 않을 것이다.
하기 논의는 단일의 정상적으로-오프인 전계 효과 트랜지스터(Field Effect Transistor)(FET) 안티퓨즈 셀을 이용하는 교차점 메모리의 실시예들을 제시한다. 안티퓨즈 셀은 금속 산화물 게이트(예컨대, 하이-k 금속 게이트) 또는 반도체 산화물 게이트(예컨대, SiO2)를 갖는 FET에 기초한다. FET 채널은 그 초기 상태에서 비전도성이고, 게이트 산화물이 프로그래밍된, 즉, 전기적으로 파괴된 후에 단락으로 된다. 특정 재료들에 대한 실시예들은 설계에 대하여 선택된 리소그래피 노드에 따라 변동된다. 안티퓨즈의 프로그래밍은 도 21에 대하여 예시될 수 있다.
도 21은 안티퓨즈를 프로그래밍하기 위한 바이어싱에 대한 실시예 및 단일 FET에 기초한 안티퓨즈의 개략적인 표현이다. FET 트랜지스터(2101)는 비트 라인 BL(2105)과 워드 라인 WL(2103) 사이에 접속된다. 제3 라인 또는 프로그래밍 워드 라인 WLP(2107)는 FET(2101)의 제어 게이트에 접속된다. 도 21은 프로그래밍을 위한 FET(2101)의 바이어싱을 예시하고, 여기서, 안티퓨즈의 프로그래밍은 워드 라인 WL(2103)을 그룹화하고 비트 라인 BL(2105)을 ½Vwr로 설정하면서, 프로그래밍 워드 라인 WLP(2107)를 기입 전압 Vwr으로 상승시킴으로써 수행된다. 프로그래밍 전압 Vwr은 ½Vwr가 산화물 파괴를 야기시키지 않는 동안에, 안티퓨즈 트랜지스터의 산화물 파괴를 산출하는 것이 충분하도록 선택되어, 교차점 어레이에서의 셀 선택을 허용한다. 낮은 저항 상태의 저항을 증가시키기 위하여, 각각의 안티퓨즈 FET(2101)는 비트 라인 BL(2105)과 워드 라인 WL(2103) 사이에 직렬로 접속된 저항을 가질 수 있다. (여기에 설명된 절반-선택 프로세스에서, 로우 전압 레벨은 0V에서 취해지고, ½Vwr의 절반-선택 값들이 이용되지만; 그러나, 더욱 일반적으로, 이것들은 또 다른 로우 전압 값일 수 있고, 절반-선택 프로세스가 원하지 않는 프로그래밍 또는 판독 값들을 유도하지 않는 한, 절반-선택 전압 레벨은 Vwr 및 로우 전압(low voltage)에 대하여 중간인 다른 전압 레벨들일 수 있다.)
도 22는 도 21의 안티퓨즈 기반 메모리 셀을 편입시키는 교차점 어레이 구조체의 일 부분의 상면도이다. 도 22는 도 12c 또는 도 17의 도면과 유사하지만, 각각의 교차점에서 안티퓨즈 메모리 셀을 나타내고, 이제는 프로그래밍 라인들(WLP1 내지 WLP4)을 또한 포함한다. 예를 들어, 메모리 셀(2201)은 워드 라인(WL4)과 비트 라인(BL3) 사이에 접속되고, WLP3에 접속된 제어 게이트를 가진다. 도면을 단순화하기 위하여 도시되지 않았지만, 낮은 저항 상태의 값을 증가시키기 위하여 저항은 안티퓨즈 메모리 셀들 각각과 직렬로 접속될 수 있다.
도 22는 일 실시예에서 메모리 셀(2201)을 프로그래밍하도록 바이어스된 교차점 어레이의 도시된 일 부분을 예시하고, 여기서, 전기적 선택은 프로그래밍 워드 라인 프로그램에 인가된 프로그래밍 전압 Vwr과 조합된 절반-선택 방식을 이용하여 행해진다. 선택된 가중치 값을 안티퓨즈(2201)에 기입하기 위하여, 대응하는 프로그래밍 워드 라인(WLP3)은 Vwr로 설정되고, 대응하는 워드 라인(WL4)은 0V로 설정되고, 대응하는 비트 라인(BL3)은 ½Vwr로 설정된다. 비선택된 비트 라인들의 비트 라인들은 또한, 비선택된 워드 라인들과 같이 ½Vwr로 설정된다. 비선택된 메모리 셀들에 대한 프로그래밍 워드 라인은 0V로 설정되고, 여기서, 프로그래밍은 도 17에 대하여 위에서 유사하게 설명된 프로그래밍 워드 라인 별로 순차적으로 수행될 수 있지만, 여기서, 시퀀스는 이제 (선택된 및 비선택된 메모리 셀들 둘 모두에 대하여 이제 절반 선택된 상태로 머무르는) 비트 라인들이 아니라 프로그래밍 워드 라인들에 대한 것이다. 게이트-소스 또는 게이트-드레인 전압들이 ½Vwr까지 유지되므로, 프로그램 선택된 안티퓨즈 메모리 셀(이 예에서, WLP3)과 프로그래밍 워드 라인을 공유하는 비선택된 안티퓨즈 셀들은 산화물 파괴를 경험하지 않는다. 일단 어레이가 프로그래밍되면, 프로그램 워드 라인들은 더 이상 판독 동작들을 위하여 요구되지 않고, 판독 동작은 박형 유전체 층 기반 메모리 셀들에 대하여 설명하는 것과 유사하게 수행된다.
도 23은 추론 엔진을 위한 FET 기반 안티퓨즈들을 갖는 메모리 셀들을 이용하는 교차점 아키텍처의 프로그래밍에 대한 실시예를 예시하는 흐름도이다. 도 23의 흐름은 교차점 메모리 어레이를 프로그래밍하기 위한 방법의 실시예(단계들(2301 내지 2007))를 포함하고, 추론하기 위한 메모리 어레이의 후속 이용은 도 20의 단계들(2011 내지 2019)에 대하여 위에서 설명된 바와 같을 수 있다. 설명된 구조체들 및 기법들은 이러한 애플리케이션들에서 특히 유용할 수 있으므로, 여기의 설명은 신경망을 위한 추론 엔진의 맥락이지만, 높은 유지력을 갖는 저전력 비휘발성 메모리가 많은 맥락들에서 이용될 수 있을 때, 이들이 더욱 일반적으로 적용될 수 있다.
단계(2301)에서, 어레이는 선택된 프로그래밍 워드 라인에 대하여 바이어스되고, 여기서, 프로그래밍 시퀀스는, 비트 라인들에 대하여, 그러나 이제는 프로그래밍 워드 라인들에 대하여, 도 17에 대해 예시된 시퀀스와 유사하게 WLP0으로 시작할 수 있다. 예를 들어, 모든 비트 라인들 및 비선택된 워드 라인들은 절반-선택될 수 있고 ½Vwr에서 바이어스될 수 있고, 선택된 메모리 셀들에 대응하는 워드 라인들은 접지로 바이어스될 수 있다. 단계(2303)에서, 프로그래밍 전압 Vwr은 선택된 프로그래밍 워드 라인에 인가된다. 단계들(2301 및 2303)에서의 워드 라인들, 프로그래밍 워드 라인들, 및 비트 라인들의 바이어싱은 행 디코더(324) 및 열 디코더(332) 및 판독/기입 회로들(328) 내에서 바이어싱 회로부를 포함하는 하나 이상의 제어 회로들에 의해 수행될 수 있다.
단계들(2301 및 2303)의 프로세스는 각각의 프로그래밍 워드 라인에 대하여 반복된다. 단계(2305)에서는, 기입하기 위한 더 많은 프로그래밍 비트 라인들이 있는지 여부가 결정되고, 그러한 경우에, 비트 라인은 단계(2301)로 루프백하기 전에 단계(2307)에서 증분되고; 그렇지 않을 경우에, 메모리 어레이의 프로그래밍은 완료된다. 일단 메모리 에러이가 신경망의 가중치들로 프로그래밍되면, 메모리 어레이는 도 20의 단계들(2011 내지 2019)에 대하여 위에서 설명된 바와 같이 추론 엔진으로서 이용될 수 있다.
위의 실시예들에서와 같이, 추론 엔진과 같은 애플리케이션들에서, 어레이의 프로그래밍은 전형적으로, 최종 사용자에게 제공되기 이전에 행해질 것이다. 예를 들어, 메모리 어레이는 신규 디바이스들에 대해 일반적으로 수행되는 테스팅 프로세스들의 종료 시와 같은 선적 이전에 제조자에 의해 프로그래밍될 수 있다. 대안적으로, 메모리 어레이는 최종 사용자에게 공급되기 전에 중간 당사자에 의해 프로그래밍될 수 있고: 예를 들어, 비프로그래밍된 메모리 어레이(초기화되거나 또는 그렇지 않은 것 중 어느 하나)는 (DNN 모델에 대한 가중치들과 같은) 그 데이터를 이어서 프로그래밍할 수 있고 이어서 프로그래밍된 어레이를 편입시키는 제품을 OEM의 고객에게 공급하는 주문자 상표 생산자(OEM)에게 제공될 수 있다. 이것은 예를 들어, 신경망들에 의존하는 자율 차량의 경우일 것이고, 제조자는 차량이 최종 조작자에게 제공되기 전에, 그 신경망 모델들의 가중치들을 어레이들로 프로그래밍할 것이다.
메모리 어레이는 전형적으로, 최종 사용자에게 공급되기 이전에 한번 오직 프로그래밍될 것이므로, 일부 실시예들에서, 프로그래밍 전압들 Vwr는 메모리 디바이스 자체 상에서 생성되는 것이 아니라, 프로그래밍 동안에 외부적으로 공급될 수 있다. 이 경우에, 전력 제어(316)와 같은, 메모리 디바이스 상의 하나 이상의 제어 회로들은 Vwr를 생성하기 위한 능력을 가질 필요가 없고, 더 높은 전압들을 다루기 위한 전하 펌프들 및 회로부들과 같은 회로 요소들을 피할 수 있어서, 이 회로들에 대한 면적 및 전력 소비를 절감할 수 있다.
양태들의 제1 세트에 따르면, 장치는 하나 이상의 비트 라인들을 따라 접속된 복수의 멀티-레벨 메모리 셀들에 접속하도록 구성된 제어 회로를 포함하고, 각각의 메모리 셀은 도전성 층들에 의해 분리된 복수의 유전체 층들로 형성된다. 제어 회로는 기입 선택된 메모리 셀들의 유전체 층들 중 하나 이상을 파괴하기 위하여 대응하는 복수의 기입 전압들 중 하나를 인가함으로써, 기입 선택된 메모리 셀들을 복수의 데이터 상태들 중 하나로 개별적으로 프로그래밍하고; 그리고
제1 복수의 메모리 셀들에 인가된 대응하는 제1 복수의 입력 전압들의 세트에 응답하여, 제1 비트 라인을 따라 접속된 제1 복수의 메모리 셀들을 동시에 감지하도록 구성된다.
추가적인 양태들에서, 방법은 하나 이상의 제1 선택된 메모리 셀들을 복수의 데이터 상태 중 제1 데이터 상태로 동시에 프로그래밍하기 위하여 메모리 셀들의 어레이를 바이어스하는 단계를 포함하고, 어레이는 메모리 셀들이 대응하는 비트 라인과 대응하는 워드 라인 사이에 접속되는 교차점 아키텍처에 따라 형성되고, 메모리 셀들 각각은 도전성 층들에 의해 분리된 복수의 유전체 층들로 형성된다. 바이어스하는 단계는 하나 이상의 제1 선택된 메모리 셀들에 대응하는 어레이의 비트 라인을 로우 전압 값으로 설정하는 단계; 하나 이상의 제1 선택된 메모리 셀들에 대응하지 않는 어레이의 비트 라인들을 제1 중간 전압 레벨로 설정하는 단계; 및
하나 이상의 제1 선택된 메모리 셀들에 대응하지 않는 어레이의 워드 라인들을 제1 중간 전압 레벨로 설정하는 단계를 포함한다. 하나 이상의 제1 선택된 메모리 셀들을 복수의 데이터 상태 중 제1 데이터 상태로 동시에 프로그래밍하기 위하여 상기 메모리 셀들의 어레이를 바이어스하는 동안에, 제1 기입 전압은 하나 이상의 제1 선택된 메모리 셀들에 대응하는 어레이의 워드 라인들에 인가되고, 제1 기입 전압은 제1 선택된 메모리 셀들을 복수의 데이터 상태들 중 제1 데이터 상태로 프로그래밍하기 위하여 제1 선택된 메모리 셀들의 유전체 층들 중 하나 이상을 파괴하도록 선택되고, 여기서, 제1 중간 전압 레벨은 로우 전압 값 및 제1 기입 전압에 대하여 중간이다.
양태들의 또 다른 세트에서, 비휘발성 메모리 디바이스는 메모리 어레이, 및 메모리 어레이에 접속된 하나 이상의 제어 회로들을 포함한다. 메모리 어레이는 복수의 워드 라인들; 복수의 비트 라인들; 복수의 프로그래밍 라인들; 및 복수의 안티퓨즈 메모리 셀들을 포함한다. 메모리 어레이는 교차점 아키텍처를 가지고, 각각의 안티퓨즈 메모리 셀은 비트 라인들 중 대응하는 하나와 워드 라인들 중 대응하는 하나 사이에 접속된 전계 효과 트랜지스터(FET)를 포함하고, 프로그래밍 라인들 중 대응하는 하나에 접속된 제어 게이트를 가진다. 안티퓨즈 메모리 셀들 각각은 메모리 셀의 게이트 산화물의 파괴에 의해 높은 저항 상태로부터 낮은 저항 상태로 프로그래밍가능하다. 하나 이상의 제어 회로들은 선택된 메모리 셀의 게이트 산화물을 파괴하기 위하여 기입 전압을 대응하는 프로그래밍 라인에 인가하면서, 선택된 메모리 셀들에 걸쳐 전압 차분을 가하기 위하여 대응하는 워드 라인 및 대응하는 비트 라인을 바이어스함으로써, 안티퓨즈 메모리 셀들의 선택된 메모리 셀들을 프로그래밍하고; 그리고 프로그래밍 라인들을 접지로 설정하면서, 대응하는 복수의 워드 라인들에 인가된 대응하는 제1 복수의 입력 전압들의 세트에 응답하여, 공유된 비트 라인을 따라 접속된 제1 복수의 메모리 셀들을 동시에 감지하도록 구성된다.
이 문서의 목적들을 위하여, "실시예", "일 실시예", "일부 실시예들", 또는 "또 다른 실시예"에 대한 명세서에서의 참조는 상이한 실시예들 또는 동일한 실시예를 설명하기 위하여 이용될 수 있다.
이 문서의 목적들을 위하여, 접속은 직접 접속 또는 (예컨대, 하나 이상의 다른 부품들을 통한) 간접 접속일 수 있다. 일부 경우들에는, 요소가 또 다른 요소에 접속되거나 결합되는 것으로서 지칭될 때, 요소는 다른 요소에 직접적으로 접속될 수 있거나, 개재하는 요소들을 통해 다른 요소에 간접적으로 접속될 수 있다. 요소가 또 다른 요소에 직접적으로 접속되는 것으로서 지칭될 때, 요소와 다른 요소 사이에는 개재하는 요소들이 없다. 2개의 디바이스들은, 이들이 서로 상이에서 전자신호들을 통신할 수 있도록 이들이 직접적으로 또는 간접적으로 접속될 경우에 "통신 중"이다.
이 문서의 목적들을 위하여, 용어 "~에 기초하여"는 "~에 적어도 부분적으로 기초하여"로서 판독될 수 있다.
이 문서의 목적들을 위하여, 추가적인 문맥 없이, "제1" 객체, "제2" 객체, 및 "제3" 객체와 같은 수치적 용어들의 이용은 객체들의 순서를 암시하는 것이 아니라, 대신에, 상이한 객체들을 식별하기 위한 식별 목적들을 위하여 이용될 수 있다.
이 문서의 목적들을 위하여, 객체들의 용어 "세트"는 객체들 중 하나 이상의 "세트"를 지칭할 수 있다.
상기한 상세한 설명은 예시 및 설명의 목적들을 위하여 제시되었다. 그것은 철저하도록 또는 개시된 정밀한 형태로 제한하도록 의도되지 않는다. 많은 수정들 및 변형들이 상기 교시사항을 고려하여 가능하다. 설명된 실시예들은 제안된 기술 및 그 실제적인 애플리케이션의 원리들을 최상으로 설명함으로써, 본 기술분야에서의 통상의 기술자들이 다양한 실시예들에서 그리고 고려된 특정한 이용에 적합한 바와 같은 다양한 수정들로 제한된 기술을 최상으로 사용하는 것을 가능하게 하도록 선택되었다. 범주는 본 명세서에 첨부된 청구항들에 의해 정의된다는 것이 의도된다.

Claims (20)

  1. 장치로서,
    하나 이상의 비트 라인들을 따라 접속된 복수의 멀티-레벨 메모리 셀들에 접속하도록 구성된 제어 회로를 포함하고, 각각의 메모리 셀은 도전성 층들에 의해 분리된 복수의 유전체 층들로 형성되고, 상기 제어 회로는:
    기입 선택된 메모리 셀들의 상기 유전체 층들 중 하나 이상을 파괴하기 위하여 대응하는 복수의 기입 전압들 중 하나를 인가함으로써, 상기 기입 선택된 메모리 셀들을 복수의 데이터 상태들 중 하나로 개별적으로 프로그래밍하고; 그리고
    제1 복수의 메모리 셀들에 인가된 대응하는 제1 복수의 입력 전압들의 세트에 응답하여, 제1 비트 라인을 따라 접속된 상기 제1 복수의 메모리 셀들을 동시에 감지하도록 구성된, 장치.
  2. 제1항에 있어서, 상기 제어 회로는:
    상기 제1 복수의 메모리 셀들에 인가된 상기 대응하는 제1 복수의 입력 전압들의 세트에 응답하여 상기 제1 비트 라인에서의 전류의 값을 수신하고, 상기 전류로부터 멀티-비트 출력 값을 결정하도록 구성된 아날로그-디지털 변환기를 포함하는, 장치.
  3. 제1항에 있어서, 상기 제어 회로는 제어 다이 상에 형성되고, 상기 장치는:
    상기 메모리 셀들을 포함하는 메모리 다이 - 상기 메모리 다이는 상기 제어 다이로부터 별도로 형성되고 상기 제어 다이에 접합됨 - 를 더 포함하는, 장치.
  4. 제3항에 있어서, 상기 메모리 다이는 메모리 셀들의 어레이를 포함하고, 상기 메모리 셀들의 어레이는:
    상기 메모리 셀들;
    상기 제1 비트 라인을 포함하는 복수의 비트 라인들; 및
    복수의 워드 라인들을 포함하고,
    상기 어레이는, 상기 메모리 셀들 각각이 상기 비트 라인들 중 대응하는 하나와 상기 워드 라인들 중 대응하는 하나 사이에 접속되는 교차점 아키텍처에 따라 형성된, 장치.
  5. 제4항에 있어서, 상기 메모리 셀들 각각은:
    복수의 유전체 층들 - 상기 유전체 층들 각각은 복수의 상이한 유효 파괴 전압들 중 하나를 갖고 복수의 상이한 저항 값들 중 하나를 갖도록 형성되어, 상기 유전체 층의 저항 값이 높을수록, 상기 유전체 층의 유효 파괴 전압이 낮음 -; 및
    하나 이상의 도전성 층들 - 상기 도전성 층들은 상기 유전체 층들과 교번함 - 을 포함하는, 장치.
  6. 제4항에 있어서, 상기 메모리 셀들 각각은:
    복수의 티어들 - 상기 티어들 각각은 하나 이상의 유전체 층들을 갖고, 상기 유전체 층들 각각은 공통 유효 파괴 전압을 갖고 복수의 저항 값들 중 하나를 갖도록 형성되고, 동일한 티어의 유전체 층들은 동일한 저항 값을 갖도록 형성되고, 상이한 티어들의 유전체 층들은 상이한 저항 값들을 갖도록 형성되어, 티어에서의 층들의 수가 클수록, 해당 티어의 유전체 층들의 저항 값은 낮음 -; 및
    복수의 도전성 층들 - 상기 도전성 층들은 상기 유전체 층들과 교번함 - 을 포함하는, 장치.
  7. 제4항에 있어서, 선택된 비트 라인을 따르는 하나 이상의 기입 선택된 메모리 셀들을 제1 데이터 상태로 프로그래밍하기 위하여, 상기 제어 회로는 동시에:
    상기 선택된 비트 라인을 로우 전압 레벨로 바이어스하고;
    상기 기입 선택된 메모리 셀들에 대응하는 워드 라인들을 상기 제1 데이터 상태에 대응하는 기입 전압으로 바이어스하고; 그리고
    상기 기입 선택된 메모리 셀들에 대응하지 않는 워드 라인들 및 상기 선택된 비트 이외의 비트 라인들을, 상기 제1 데이터 상태에 대응하는 기입 전압 및 상기 로우 전압 레벨에 대하여 중간인 전압 레벨로 바이어스하도록 구성된, 장치.
  8. 제4항에 있어서, 상기 제어 회로는:
    상기 비트 라인들에 접속되고, 상기 워드 라인들에 인가된 상기 대응하는 입력 전압들의 세트에 응답하여 상기 비트 라인들 각각에서의 전류의 값을 수신하고 상기 전류들 각각으로부터 멀티-비트 출력 값을 결정하도록 구성된 하나 이상의 아날로그-디지털 변환기들을 포함하는, 장치.
  9. 제8항에 있어서, 상기 제어 회로는:
    상기 하나 이상의 아날로그-디지털 변환기들에 접속되고, 상기 멀티-비트 출력 값들을 누산하도록 구성된 디지털 연산 회로를 포함하는, 장치.
  10. 제9항에 있어서, 상기 메모리 셀들은 신경망의 계층의 가중치들을 저장하도록 구성되고, 상기 제어 회로는:
    상기 신경망의 상기 계층에 대한 입력 값들의 벡터를 수신하고 - 상기 입력 값들의 벡터는 복수의 성분들을 가짐 -;
    상기 입력 벡터의 상기 성분들을 전압 레벨들의 세트로 변환하고; 그리고
    상기 전압 레벨들의 세트 각각을 상기 워드 라인들의 대응하는 세트에 인가하도록 추가로 구성된, 장치.
  11. 제10항에 있어서, 상기 제어 회로는:
    상기 전압 레벨들의 세트 각각을 상기 워드 라인들의 상기 대응하는 세트에 인가하는 것에 응답하여, 상기 복수의 비트 라인들로부터의 상기 멀티-비트 출력을 동시에 누산하도록 추가로 구성된, 장치.
  12. 제1항에 있어서, 상기 제어 회로는:
    신경망의 계층에 대한 복수의 가중치 값들을 수신하고;
    상기 가중치 값들을 데이터 상태들로서 상기 메모리 셀들 내로 프로그래밍하고;
    상기 가중치 값들을 상기 메모리 셀들 내로 프로그래밍하는 것에 후속하여, 상기 신경망의 상기 계층에 대한 입력 벡터를 수신하고;
    상기 입력 벡터를 상기 제1 복수의 입력 전압들로 변환하고; 그리고
    상기 제1 복수의 입력 전압들을 상기 메모리 셀들에 인가함으로써, 상기 가중치 값들과 상기 입력 벡터의 어레이내 곱셈(in-array multiplication)을 수행하도록 추가로 구성된, 장치.
  13. 방법으로서,
    하나 이상의 제1 선택된 메모리 셀들을 복수의 데이터 상태 중 제1 데이터 상태로 동시에 프로그래밍하기 위하여 메모리 셀들의 어레이를 바이어스하는 단계 - 상기 어레이는 상기 메모리 셀들이 대응하는 비트 라인과 대응하는 워드 라인 사이에 접속되는 교차점 아키텍처에 따라 형성되고, 메모리 셀들 각각은 도전성 층들에 의해 분리된 복수의 유전체 층들로 형성되고, 상기 바이어스하는 단계는:
    상기 하나 이상의 제1 선택된 메모리 셀들에 대응하는 상기 어레이의 비트 라인을 로우 전압 값으로 설정하는 단계;
    상기 하나 이상의 제1 선택된 메모리 셀들에 대응하지 않는 상기 어레이의 비트 라인들을 제1 중간 전압 레벨로 설정하는 단계; 및
    상기 하나 이상의 제1 선택된 메모리 셀들에 대응하지 않는 상기 어레이의 워드 라인들을 상기 제1 중간 전압 레벨로 설정하는 단계를 포함함 -; 및
    하나 이상의 제1 선택된 메모리 셀들을 상기 복수의 데이터 상태 중 상기 제1 데이터 상태로 동시에 프로그래밍하기 위하여 상기 메모리 셀들의 어레이를 바이어스하는 동안에, 제1 기입 전압을 상기 하나 이상의 제1 선택된 메모리 셀들에 대응하는 상기 어레이의 워드 라인들에 인가하는 단계 - 상기 제1 기입 전압은 상기 제1 선택된 메모리 셀들을 상기 복수의 데이터 상태들 중 상기 제1 데이터 상태로 프로그래밍하기 위하여 상기 제1 선택된 메모리 셀들의 상기 유전체 층들 중 하나 이상을 파괴하도록 선택되고, 상기 제1 중간 전압 레벨은 상기 로우 전압 값 및 상기 제1 기입 전압에 대하여 중간임 - 를 포함하는, 방법.
  14. 제13항에 있어서,
    상기 제1 선택된 메모리 셀들을 동시에 프로그래밍하기 위하여 상기 메모리 셀들의 어레이를 바이어스하는 것에 후속하여, 상기 제1 선택된 메모리 셀들에 대응하는 상기 어레이의 비트 라인에 접속된 하나 이상의 제2 선택된 메모리 셀들을 복수의 데이터 상태 중 제2 데이터 상태로 동시에 프로그래밍하기 위하여 상기 어레이를 바이어스하는 단계 - 하나 이상의 제2 선택된 메모리 셀들을 동시에 프로그래밍하기 위하여 상기 어레이를 바이어스하는 단계는:
    상기 하나 이상의 제1 선택된 메모리 셀들에 대응하는 상기 어레이의 비트 라인을 로우 전압 값으로 설정하는 단계;
    상기 하나 이상의 제2 선택된 메모리 셀들에 대응하지 않는 상기 어레이의 비트 라인들을 제2 중간 전압 레벨로 설정하는 단계; 및
    상기 하나 이상의 제2 선택된 메모리 셀들에 대응하지 않는 상기 어레이의 워드 라인들을 상기 제2 중간 전압 레벨로 설정하는 단계를 포함함 -; 및
    하나 이상의 제2 선택된 메모리 셀들을 상기 복수의 데이터 상태 중 상기 제2 데이터 상태로 동시에 프로그래밍하기 위하여 상기 메모리 셀들의 어레이를 바이어스하는 동안에, 제2 기입 전압을 상기 제2 선택된 메모리 셀들에 대응하는 상기 어레이의 워드 라인들에 인가하는 단계 - 상기 제2 기입 전압은 상기 제2 선택된 메모리 셀들을 상기 복수의 데이터 상태들 중 상기 제2 데이터 상태로 프로그래밍하기 위하여 상기 제2 선택된 메모리 셀들의 상기 유전체 층들 중 하나 이상을 파괴하도록 선택되고, 상기 제2 중간 전압 레벨은 상기 로우 전압 값 및 상기 제2 기입 전압에 대하여 중간임 - 를 더 포함하는, 방법.
  15. 제13항에 있어서,
    상기 어레이의 메모리 셀들은 신경망의 계층의 가중치들을 저장하도록 프로그래밍되고, 상기 방법은:
    상기 신경망의 상기 계층에 대한 입력 벡터를 수신하는 단계; 및
    입력 벡터를 전압 레벨들의 세트로 변환함으로써; 그리고
    상기 전압 레벨들의 세트를 상기 어레이의 워드 라인들에 인가함으로써,
    상기 신경망의 상기 가중치들과 상기 입력 벡터의 어레이내 곱셈을 수행하는 단계를 더 포함하는, 방법.
  16. 비휘발성 메모리 디바이스로서,
    메모리 어레이; 및
    상기 메모리 어레이에 접속된 하나 이상의 제어 회로들을 포함하고,
    상기 메모리 어레이는:
    복수의 워드 라인들;
    복수의 비트 라인들:
    복수의 프로그래밍 라인들; 및
    복수의 안티퓨즈 메모리 셀들을 포함하고,
    상기 메모리 어레이는 교차점 아키텍처를 갖고, 각각의 안티퓨즈 메모리 셀은 상기 비트 라인들 중 대응하는 하나와 상기 워드 라인들 중 대응하는 하나 사이에 접속된 전계 효과 트랜지스터(field effect transistor)(FET)를 포함하고 상기 프로그래밍 라인들 중 대응하는 하나에 접속된 제어 게이트를 가지고, 상기 안티퓨즈 메모리 셀들 각각은 상기 메모리 셀의 게이트 산화물의 파괴에 의해 높은 저항 상태로부터 낮은 저항 상태로 프로그래밍가능하고; 그리고
    상기 하나 이상의 제어 회로들은:
    선택된 메모리 셀들의 상기 게이트 산화물을 파괴하기 위하여 기입 전압을 상기 대응하는 프로그래밍 라인에 인가하면서, 상기 선택된 메모리 셀들에 걸쳐 전압 차분을 가하기 위하여 상기 대응하는 워드 라인 및 대응하는 비트 라인을 바이어스함으로써, 상기 안티퓨즈 메모리 셀들 중 선택된 안티퓨즈 메모리 셀들을 프로그래밍하고; 그리고
    상기 프로그래밍 라인들을 접지로 설정하면서, 상기 대응하는 복수의 워드 라인들에 인가된 대응하는 제1 복수의 입력 전압들의 세트에 응답하여, 공유된 비트 라인을 따라 접속된 제1 복수의 메모리 셀들을 동시에 감지하도록 구성된, 비휘발성 메모리 디바이스.
  17. 제16항에 있어서, 상기 비휘발성 메모리 디바이스는:
    접합된 다이 쌍을 포함하고, 상기 접합된 다이 쌍은:
    상기 메모리 어레이를 포함하는 메모리 다이; 및
    상기 메모리 다이로부터 별도로 형성되고, 상기 메모리 다이에 접합되고, 상기 하나 이상의 제어 회로들을 포함하는 제어 다이를 포함하는, 비휘발성 메모리 디바이스.
  18. 제16항에 있어서, 각각의 안티퓨즈 메모리 셀은 상기 대응하는 비트 라인과 상기 대응하는 워드 라인 사이에 상기 전계 효과 트랜지스터와 직렬로 접속된 저항기를 더 포함하는, 비휘발성 메모리 디바이스.
  19. 제16항에 있어서, 상기 안티퓨즈 메모리 셀들 중 선택된 안티퓨즈 메모리 셀들을 프로그래밍하기 위하여, 상기 하나 이상의 제어 회로들은 동시에:
    하나 이상의 선택된 메모리 셀들에 대응하는 프로그래밍 라인을 기입 선택 전압으로 바이어스하고, 상기 어레이의 다른 프로그래밍 라인들을 로우 전압 값으로 바이어스하고;
    상기 선택된 메모리 셀들에 대응하는 워드 라인들을 상기 로우 전압 값으로 바이어스하고, 상기 어레이의 다른 워드 라인들을, 상기 기입 선택 전압 및 상기 로우 전압 값에 대하여 중간인 전압 레벨로 바이어스하고; 그리고
    상기 어레이의 비트 라인들을, 상기 기입 선택 전압 및 상기 로우 전압 값에 대하여 중간인 상기 전압 레벨로 바이어스하도록 구성된, 비휘발성 메모리 디바이스.
  20. 제16항에 있어서, 상기 메모리 셀들은 신경망의 계층의 가중치들을 저장하도록 구성되고, 상기 하나 이상의 제어 회로는:
    상기 신경망의 상기 계층에 대한 입력 값들의 벡터를 수신하고; 그리고
    상기 입력 값들의 벡터를 전압 레벨들의 세트로 변환하고 상기 전압 레벨들의 세트를 상기 워드 라인들의 대응하는 세트에 동시에 인가함으로써, 신경망에 대한 어레이내 곱셈 연산을 수행하도록 추가로 구성된, 비휘발성 메모리 디바이스.
KR1020210082725A 2020-10-02 2021-06-24 멀티-레벨 초 저전력 추론 엔진 가속기 KR102605890B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/061,820 US11289171B1 (en) 2020-10-02 2020-10-02 Multi-level ultra-low power inference engine accelerator
US17/061,820 2020-10-02

Publications (2)

Publication Number Publication Date
KR20220044642A KR20220044642A (ko) 2022-04-11
KR102605890B1 true KR102605890B1 (ko) 2023-11-24

Family

ID=80738198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210082725A KR102605890B1 (ko) 2020-10-02 2021-06-24 멀티-레벨 초 저전력 추론 엔진 가속기

Country Status (6)

Country Link
US (1) US11289171B1 (ko)
JP (1) JP7152562B2 (ko)
KR (1) KR102605890B1 (ko)
CN (1) CN114388039A (ko)
DE (1) DE102021115503A1 (ko)
TW (1) TWI783538B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102318819B1 (ko) * 2020-06-10 2021-10-27 연세대학교 산학협력단 멀티 비트 가중치의 연산을 위한 인 메모리 장치
US20220366224A1 (en) * 2021-05-13 2022-11-17 Micron Technology, Inc. Binary neural network in memory
KR102540226B1 (ko) * 2022-07-28 2023-06-07 인하대학교 산학협력단 3진 신경망 가속기 소자 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050493A (ja) 2003-07-30 2005-02-24 Hynix Semiconductor Inc マルチビット制御機能を有する不揮発性強誘電体メモリ装置
JP2013533572A (ja) 2010-07-09 2013-08-22 サンディスク テクノロジィース インコーポレイテッド メモリアレイにおける破損ワード線の検出
JP2017527979A (ja) 2014-08-19 2017-09-21 サビック グローバル テクノロジーズ ビー.ブイ. マルチレベル動作を有する不揮発性強誘電体メモリセル

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677867A (en) * 1991-06-12 1997-10-14 Hazani; Emanuel Memory with isolatable expandable bit lines
US5268319A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US6151248A (en) * 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
JP5015420B2 (ja) * 2003-08-15 2012-08-29 旺宏電子股▲ふん▼有限公司 プログラマブル消去不要メモリに対するプログラミング方法
JP2013004143A (ja) * 2011-06-16 2013-01-07 Toshiba Corp 不揮発性半導体記憶装置
US20130148404A1 (en) * 2011-12-08 2013-06-13 Abhijit Bandyopadhyay Antifuse-based memory cells having multiple memory states and methods of forming the same
US9953725B2 (en) * 2012-02-29 2018-04-24 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of operating the same
US9082502B2 (en) 2013-10-10 2015-07-14 Sandisk Technologies Inc. Bit line and compare voltage modulation for sensing nonvolatile storage elements
US9721662B1 (en) 2016-01-13 2017-08-01 Sandisk Technologies Llc Non-volatile memory with efficient programming
JP6608312B2 (ja) * 2016-03-08 2019-11-20 ルネサスエレクトロニクス株式会社 半導体装置およびその製造方法
KR102369715B1 (ko) 2017-06-12 2022-03-03 삼성전자주식회사 이차원 물질을 포함하는 비휘발성 메모리 소자 및 이를 포함하는 장치
US11354562B2 (en) * 2018-01-03 2022-06-07 Silicon Storage Technology, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
US10664746B2 (en) 2018-07-17 2020-05-26 Macronix International Co., Ltd. Neural network system
EP3683833A4 (en) * 2018-08-30 2020-08-12 Shenzhen Weitongbo Technology Co., Ltd. STORAGE UNIT, STORAGE DEVICE, AND METHOD OF OPERATING A STORAGE UNIT
US10699764B1 (en) * 2018-12-14 2020-06-30 Nxp Usa, Inc. MRAM memory with OTP cells
JP2020155727A (ja) * 2019-03-22 2020-09-24 ソニーセミコンダクタソリューションズ株式会社 半導体装置及びこれを備えた電子機器
TWI686803B (zh) 2019-06-04 2020-03-01 旺宏電子股份有限公司 可變電阻式記憶體之編程方法及記憶胞之電壓編程方法
US10892279B1 (en) * 2019-07-17 2021-01-12 Sandisk Technologies Llc NAND string containing separate hole and electron tunneling dielectric layers and methods for forming the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050493A (ja) 2003-07-30 2005-02-24 Hynix Semiconductor Inc マルチビット制御機能を有する不揮発性強誘電体メモリ装置
JP2013533572A (ja) 2010-07-09 2013-08-22 サンディスク テクノロジィース インコーポレイテッド メモリアレイにおける破損ワード線の検出
JP2017527979A (ja) 2014-08-19 2017-09-21 サビック グローバル テクノロジーズ ビー.ブイ. マルチレベル動作を有する不揮発性強誘電体メモリセル

Also Published As

Publication number Publication date
CN114388039A (zh) 2022-04-22
US11289171B1 (en) 2022-03-29
JP2022060145A (ja) 2022-04-14
JP7152562B2 (ja) 2022-10-12
KR20220044642A (ko) 2022-04-11
TW202215437A (zh) 2022-04-16
TWI783538B (zh) 2022-11-11
DE102021115503A1 (de) 2022-04-07
US20220108759A1 (en) 2022-04-07

Similar Documents

Publication Publication Date Title
US10643705B2 (en) Configurable precision neural network with differential binary non-volatile memory cell structure
US10643119B2 (en) Differential non-volatile memory cell for artificial neural network
US11657259B2 (en) Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
KR102605890B1 (ko) 멀티-레벨 초 저전력 추론 엔진 가속기
US11328204B2 (en) Realization of binary neural networks in NAND memory arrays
US11625586B2 (en) Realization of neural networks with ternary inputs and ternary weights in NAND memory arrays
US11568228B2 (en) Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
US11397885B2 (en) Vertical mapping and computing for deep neural networks in non-volatile memory
US11544547B2 (en) Accelerating binary neural networks within latch structure of non-volatile memory devices
US20220108158A1 (en) Ultralow power inference engine with external magnetic field programming assistance
US20220398439A1 (en) Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions
CN110751276A (zh) 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
US20210397974A1 (en) Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing
US20220366211A1 (en) Dropout in neutral networks using threshold switching selectors in non-volatile memories
US20220358354A1 (en) Architecture design for ensemble binary neural network (ebnn) inference engine on single-level memory cell arrays
US11556311B2 (en) Reconfigurable input precision in-memory computing
US11663471B2 (en) Compute-in-memory deep neural network inference engine using low-rank approximation technique

Legal Events

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