KR20220006467A - 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법 - Google Patents

기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20220006467A
KR20220006467A KR1020210087427A KR20210087427A KR20220006467A KR 20220006467 A KR20220006467 A KR 20220006467A KR 1020210087427 A KR1020210087427 A KR 1020210087427A KR 20210087427 A KR20210087427 A KR 20210087427A KR 20220006467 A KR20220006467 A KR 20220006467A
Authority
KR
South Korea
Prior art keywords
memory
memory cell
codeword
voltage
ecc
Prior art date
Application number
KR1020210087427A
Other languages
English (en)
Inventor
에밋 벌만
이브제니 블라이히만
론 골란
세르게이 젠델
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20220006467A publication Critical patent/KR20220006467A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1024Identification of the type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • 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/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1204Bit line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 개시의 예시적 실시예에 따른 메모리 시스템은, 복수의 메모리 셀들, 복수의 워드라인들 및 복수의 비트라인들을 포함하는 메모리 장치 및 프로세서를 포함하는 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는, 호스트로부터 수신한 리드 커맨드에 응답하여 메모리 셀로부터 출력을 판독하여 제1 코드워드를 생성하고, 제1 코드워드에 대해 제1 ECC(error correction code) 동작을 수행하도록 구성되고, 프로세서는, 복수의 메모리 셀들 중 선택된 각각의 메모리 셀에 대해, 제2 코드워드를 생성하기 위해 기계 학습 알고리즘에 대한 입력 특징으로서 인접 메모리 셀에 대응하는 판독 출력 및 인접 전압을 적용하도록 구성되고, 메모리 컨트롤러는 제1 ECC 동작이 실패할 때, 제2 코드워드를 사용하여 제2 ECC 동작을 수행하도록 더 구성되고, 인접 메모리 셀은 선택된 메모리 셀과 동일한 워드라인에 연결될 수 있다.

Description

기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법{MEMORY DEVICE PERFORMING ERROR CORRECTION BASED ON MACHINE LEARNING AND OPERATING METHOD THEREOF}
본 개시의 기술적 사상은 오류 검출 및 정정을 수행하는 메모리 장치에 관한 것으로, 구체적으로 기계 학습(machine learning)을 이용하여 오류 검출 및 정정을 수행하는 메모리 장치 및 이의 동작 방법에 관한 것이다.
NAND 플래시 메모리 장치는 여러 비트의 데이터를 각 메모리 셀에 저장하여 제조 비용을 낮추고 성능을 향상시킨다. 다중 비트의 데이터가 저장되는 메모리 셀을 멀티 레벨 메모리 셀이라고 지칭할 수 있다. 멀티 레벨 메모리 셀은 메모리 셀의 문턱 전압 범위를 여러 전압 상태로 분할하고, 메모리 셀 전압 레벨을 이용하여 메모리 셀에 기록된 데이터 값을 추출한다. NAND 플래시 메모리는 비트 오류들을 포함할 수 있으며, 이는 오류 수정 코드(ECC)로 정정될 수 있다. 비트 오류의 원인은 워드라인 간 간섭, 워드라인 내 간섭, 인접 메모리 셀에 따른 리텐션(retention) 노이즈, 프로세스, 전압 또는 온도 변화(PVT variation)로 인해 다르게 동작하는 서로 다른 워드라인 등을 포함할 수 있다.
본 발명의 기술적 사상이 이루고자 하는 기술적 과제는, 기계 학습(machine learning)을 이용하여 오류 검출 및 정정을 수행하는 메모리 장치를 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 예시적 실시예에 따른 메모리 시스템은, 복수의 메모리 셀들, 복수의 워드라인들 및 복수의 비트라인들을 포함하는 메모리 장치 및 프로세서를 포함하는 메모리 컨트롤러를 포함하고, 메모리 컨트롤러는, 호스트로부터 수신한 리드 커맨드에 응답하여 메모리 셀로부터 출력을 판독하여 제1 코드워드를 생성하고, 제1 코드워드에 대해 제1 ECC(error correction code) 동작을 수행하도록 구성되고, 프로세서는, 복수의 메모리 셀들 중 선택된 각각의 메모리 셀에 대해, 제2 코드워드를 생성하기 위해 기계 학습 알고리즘에 대한 입력 특징으로서 인접 메모리 셀에 대응하는 판독 출력 및 인접 전압을 적용하도록 구성되고, 메모리 컨트롤러는 제1 ECC 동작이 실패할 때, 제2 코드워드를 사용하여 제2 ECC 동작을 수행하도록 더 구성되고, 인접 메모리 셀은 선택된 메모리 셀과 동일한 워드라인에 연결될 수 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 예시적 실시예에 따른 메모리 장치 및 프로세서를 포함하는 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법은, 메모리 컨트롤러가 호스트로부터의 리드 커맨드에 응답하여 메모리 셀로부터의 출력을 센싱하는 단계, 메모리 컨트롤러가 센싱된 출력으로부터 결정되는 제1 코드워드에 대해 제1 ECC(error correction code) 동작을 수행하는 단계, 제1 ECC 동작이 실패하면, 프로세서가, 복수의 메모리 셀들 중 선택된 각각의 메모리 셀에 대해 입력 특징으로서 인접 메모리 셀에 대응하는 판독 출력 및 인접 전압을 기계 학습 알고리즘에 적용하여 제2 코드워드를 생성하는 단계 및 메모리 컨트롤러가 제2 코드워드를 사용하여 제2 ECC 연산을 수행하는 단계를 포함하고, 인접 메모리 셀은 선택된 메모리 셀과 동일한 워드 라인에 연결될 수 있다.
본 개시의 예시적 실시예에 따른 메모리 장치는, 선택 메모리 셀의 인접 메모리 셀에 대한 셀 전압을 이용한 기계 학습 알고리즘에 기반하여 ECC의 오류 정정 확률을 향상시킬 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 블록도이다.
도 2는 본 개시의 예시적인 실시예에 따른 비휘발성 메모리 장치의 블록도이다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 블록도이다.
도 4는 본 개시의 예시적인 실시예에 따른 메모리 셀 어레이의 블록도이다.
도 5는 본 개시의 예시적인 실시예에 따른 메모리 셀 어레이의 메모리 블록에 대한 회로도이다.
도 6은 본 개시의 예시적인 실시예에 따른 오류 정정 동작을 수행하는 순서도이다.
도 7은 본 개시의 예시적인 실시예에 따른 오류 정정 동작 시에 사용되는 뉴럴 네트워크의 입력 및 출력을 도시한다.
도 8은 본 개시의 예시적인 실시예에 따른 뉴럴 네트워크의 구조를 도시한다.
도 9는 본 개시의 예시적인 실시예에 따른 전압 히스토그램에 대해 그려지는 예시적인 경판정(hard decision) 임계 값을 도시하는 다이어그램이다.
도 10은 본 개시의 예시적인 실시예에 따른 LLR(log likelihood ratio) 테이블을 도시한다.
도 11은 본 개시의 예시적인 실시예에 따른 뉴럴 네트워크에 적용될 수 있는 예시적인 특징들에 대한 테이블을 도시한다.
도 12는 본 개시의 예시적인 실시예에 따른 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템의 블록도이다.
이하, 첨부한 도면을 참조하여 본 개시의 예시적 실시예들에 대하여 상세히 설명하기로 한다.
도 1은 본 개시의 예시적인 실시예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(100은 호스트(100) 및 메모리 시스템(200)을 포함할 수 있다. 도 1에 도시된 메모리 시스템(200)은 데이터 처리 기능을 포함하는 다양한 시스템들에서 활용될 수 있다. 다양한 시스템들은 예를 들어, 스마트 폰 또는 태블릿 컴퓨터와 같은 모바일 장치를 포함하는 다양한 장치일 수 있다. 그러나, 다양한 장치가 이에 한정되는 것은 아니다.
메모리 시스템(200)은 다양한 유형의 메모리 장치를 포함할 수 있다. 여기서, 본 발명의 예시적인 실시예들은 비휘발성 메모리의 메모리 장치를 포함하는 것을 기준으로 도시하나, 이에 제한되는 것은 아니다. 예를 들어, 메모리 시스템(200)은 휘발성 메모리의 메모리 장치를 포함할 수 있다.
일 실시예에 따르면, 메모리 시스템(200)은 예를 들어, ROM(read-only memory), 자기 디스크, 광 디스크, 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 플래시 메모리는 MOSFET(Metal-Oxide-Semiconductor Field Effect Transistor)의 문턱 전압 변화에 따른 데이터를 저장하는 메모리로, 예를 들어 NAND 및 NOR 플래시 메모리를 포함할 수 있다. 메모리 시스템(200)은 예를 들어, 임베디드 멀티미디어 카드(eMMC), 보안 디지털(secure digital, SD) 카드, 마이크로 SD 카드 또는 범용 플래시 스토리지(universal flash storage, UFS)와 같은 비휘발성 메모리 장치를 포함하는 메모리 카드를 사용하여 구현될 수 있다. 또는 메모리 시스템 (200)은 예를 들어, 비휘발성 메모리 장치를 포함하는 SSD(solid state drive)를 사용하여 구현될 수 있다. 여기서, 메모리 시스템(200)이 비휘발성 메모리 시스템인 경우를 가정하여 메모리 시스템(200)의 구성 및 동작이 설명되나, 메모리 시스템 (200)은 이에 제한되는 것은 아니다. 호스트(100)는 예를 들어, 모바일 장치에 탑재된 SoC(system-on-chip) 어플리케이션 프로세서(application processor) 또는 컴퓨터 시스템에 포함된 중앙 처리 장치(central processing unit, CPU)를 포함할 수 있다.
전술한 바와 같이 호스트 (100)는 AP(110)를 포함할 수 있다. AP(110)는 다양한 IP(Intellectual Property) 블록들을 포함할 수 있다. 예를 들어, AP(110)는 비휘발성 메모리 시스템(200)을 제어하는 메모리 장치 드라이버(111)를 포함할 수 있다. 호스트(100)는 비휘발성 메모리 시스템(200)과 통신하여 메모리 동작과 관련된 커맨드(예: 읽기 커맨드, 쓰기 커맨드, 소거 커맨드 등)을 전송하고 그에 대한 응답으로 확인(confirm) 커맨드를 수신할 수 있다.
비휘발성 메모리 시스템(200)은 예를 들어, 메모리 컨트롤러(210) 및 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 호스트(100)로부터 메모리 동작과 관련된 커맨드를 수신하고, 수신된 커맨드를 이용하여 내부 커맨드 및 내부 클럭 신호를 생성하고, 내부 커맨드 및 내부 클럭 신호를 메모리 장치(220)에게 제공할 수 있다. 메모리 장치(220)는 내부 커맨드에 응답하여 쓰기 데이터를 메모리 셀 어레이에 저장하거나 내부 커맨드에 응답하여 읽기 데이터를 메모리 컨트롤러(210)에게 제공할 수 있다.
메모리 장치(220)는 메모리 장치(220)의 전원이 켜지지 않더라도 내부에 저장된 데이터를 유지하는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 메모리 셀로서, 예를 들어 NAND 또는 NOR 플래시 메모리, 자기 저항성 랜덤 액세스 메모리(magnetoresistive random-access memory, MRAM), 저항성 랜덤 액세스 메모리(resistive random-access memory, RRAM), 강유전성 액세스 메모리(ferroelectric access-memory, FRAM), 또는 위상 변화 메모리(phase change memory, PCM)를 포함할 수 있다. 예를 들어, 메모리 셀 어레이가 NAND 플래시 메모리를 포함하는 경우, 메모리 셀 어레이는 복수의 블록과 복수의 페이지를 포함할 수 있다. 데이터는 페이지 단위로 프로그래밍되고 리드될 수 있으며 데이터는 블록 단위로 소거될 수 있다.
도 2는 본 개시의 예시적인 실시예에 따른 비휘발성 메모리 장치의 블록도이다.
도 2를 참조하면, 비휘발성 메모리 장치(220)는 예를 들어, 메모리 셀 어레이(221), 제어 로직(222), 전압 생성부(223), 로우 디코더(224) 및 페이지 버퍼 (225)를 포함할 수 있다.
메모리 셀 어레이(221)는 하나 이상의 스트링 선택 라인(string selection line, SSL), 복수의 워드라인(WL), 하나 이상의 접지 선택 라인(ground selection line, GSL) 및 복수의 비트라인(BL)에 연결될 수 있다. 메모리 셀 어레이(221)는 복수의 워드라인(WL)과 복수의 비트라인(BL)의 교차점에 배치된 복수의 메모리 셀들을 포함할 수 있다.
제어 로직(222)은 메모리 컨트롤러(210)로부터 커맨드(CMD)(예를 들어, 내부 커맨드) 및 어드레스(ADD)를 수신하고, 메모리 컨트롤러(210)로부터 비휘발성 메모리 장치(220) 내의 다양한 기능 블록을 제어하기 위한 제어 신호(CTRL)를 수신할 수 있다. 제어 로직(222)은 커맨드(CMD), 어드레스(ADD) 및 제어 신호 (CTRL)에 기초하여 메모리 셀 어레이(221)에 데이터를 쓰거나 메모리 셀 어레이(221)로부터 데이터를 읽기 위한 다양한 제어 신호를 출력할 수 있다. 이러한 방식으로, 제어 로직(222)은 메모리 장치(220)의 전반적인 동작을 제어할 수 있다.
제어 로직(222)에서 출력되는 다양한 제어 신호는 전압 생성부(223), 로우 디코더(224) 및 페이지 버퍼(225)로 제공될 수 있다. 예를 들어, 제어 로직(222)은 전압 제어 신호(CTRL_vol)를 전압 생성부(223)에 제공하고, 로우 디코더(224)에 로우 어드레스(X-ADD)를 제공하고, 페이지 버퍼(225)에 컬럼 어드레스(Y-ADD)를 제공할 수 있다.
전압 생성부(223)는 전압 제어 신호(CTRL_vol)에 기초하여 메모리 셀 어레이(221)에 대한 프로그램, 읽기 및 소거 동작을 수행하기 위한 다양한 전압을 생성할 수 있다. 예를 들어, 전압 생성부(223)는 복수의 워드라인(WL)을 구동하기 위한 제1 구동 전압(VWL), 복수의 스트링 선택 라인(SSL)을 구동하기 위한 제2 구동 전압(VSSL) 및 접지 선택 라인(GSL)을 구동하기 위한 제3 구동 전압(VGSL)을 생성할 수 있다. 이때, 제1 구동 전압(VWL)은 프로그램 전압(예: 쓰기 전압), 읽기 전압, 소거 전압, 패스 전압 또는 프로그램 검증 전압일 수 있다. 또한, 제2 구동 전압(VSSL)은 스트링 선택 전압(예: 온 전압 또는 오프 전압)일 수 있다.
로우 디코더(224)는 복수의 워드라인(WL)을 통해 메모리 셀 어레이(221)에 연결되고, 제어 로직(222)으로부터 수신된 로우 어드레스(X-ADD)에 응답하여 복수의 워드 라인(WL)의 일부를 활성화할 수 있다. 예를 들어, 읽기 동작에서 로우 디코더(224)는 선택된 워드라인에 읽기 전압을 인가하고 선택되지 않은 워드라인에 패스 전압을 인가할 수 있다.
프로그램 동작에서 로우 디코더(224)는 선택된 워드라인에 프로그램 전압을 인가하고 선택되지 않은 워드라인에 패스 전압을 인가할 수 있다. 일 실시예에서, 복수의 프로그램 루프 중 적어도 하나에서, 로우 디코더(224)는 선택된 워드라인 및 추가로 선택된 워드라인에 프로그램 전압을 인가할 수 있다.
페이지 버퍼(225)는 복수의 비트라인(BL)들을 통해 메모리 셀 어레이(221)와 연결될 수 있다. 예를 들어, 읽기 동작에서 페이지 버퍼(225)는 메모리 셀 어레이(221)에 저장된 데이터를 출력하는 감지 증폭기(sensing amplifier)로 동작할 수 있다. 또는 프로그램 동작에서 페이지 버퍼(225)는 원하는 데이터를 메모리 셀 어레이(221)에 기입하는 쓰기 드라이버로 동작할 수 있다.
도 3은 본 개시의 예시적인 실시예에 따른 메모리 시스템의 블록도이다.
도 3을 참조하면, 메모리 시스템(200)은 메모리 장치(220) 및 메모리 컨트롤러(210)를 포함한다. 또한 메모리 컨트롤러(210)는 컨트롤러 회로로 지칭될 수도 있다. 메모리 장치(220)는 메모리 컨트롤러(210)의 제어에 따라 쓰기, 읽기 또는 소거를 수행할 수 있다.
메모리 컨트롤러(210)는 호스트(100)로부터 수신된 요청 또는 내부적으로 지정된 스케줄에 따라 메모리 장치(220)를 제어할 수 있다. 메모리 컨트롤러(210)는 컨트롤러 코어(121), 내부 메모리(124), 호스트 인터페이스 블록(125) 및 메모리 인터페이스 블록(126)을 포함할 수 있다.
컨트롤러 코어(121)는 메모리 제어 코어(122) 및 기계 학습 코어(123)를 포함할 수 있으며, 이들 코어 각각은 하나 이상의 프로세서에 의해 구현될 수 있다. 메모리 제어 코어(122)는 호스트(100)로부터 수신된 요청 또는 내부적으로 지정된 스케줄에 따라 메모리 장치(220)를 제어하고 액세스할 수 있다. 메모리 제어 코어(122)는 메모리 시스템(200)의 관리 또는 운영에 사용되는 다양한 메타 데이터 및 코드를 관리 및 실행할 수 있다. 일 실시예에서, 메모리 제어 코어(122)는 메모리 장치(220)의 메모리 셀로부터 독출된 데이터에 대한 오류 검출 및 정정을 수행하기 위한 오류 정정 코드(ECC) 회로를 포함할 수 있다. 예를 들어, 메모리 제어 코어(122)는 호스트(100)로부터 수신된 읽기 커맨드 및 어드레스 정보에 응답하여 메모리 셀의 서브 세트로부터 읽기 전압을 감지하고, 읽기 전압을 코드워드(데이터 및 리던던시(redundancy) 정보 포함)로 변환하고, ECC 회로를 사용하여 코드워드(즉, 첫 번째 코드워드)에 대한 ECC 연산을 수행할 수 있다. 메모리 제어 코어(122)는 ECC 알고리즘을 이용하여 에러 검출 및 정정(즉, ECC 동작)을 교대로 수행할 수 있다. ECC 회로 또는 ECC 알고리즘의 오류 정정 능력은 특정 수의 비트 오류일 수 있다. 오류 정정 능력이 초과되면, 메모리 제어 코어(122)는 검출된 오류를 정정하지 못할 수 있다. 따라서, 어드레스 정보 및 읽기 커맨드에 기초하여 선택된 메모리 셀로부터 데이터를 독출할 때, 메모리 제어 코어(122)는 데이터가 손상되었고 판독 또는 정정될 수 없음을 보고할 필요가 있을 수 있다.
그러나, 일 실시예에 따르면, 기계 학습 코어(123)는 선택된 메모리의 특징(예: 셀 전압) 및 하나 이상의 추가 관련 특징(예: 주변 메모리 셀의 전압)에 대해 동작하여 ECC 회로 또는 ECC 알고리즘을 사용하여 ECC 회로 또는 ECC 알고리즘이 데이터를 수정할 수 있도록 제어할 수 있다. 예를 들어, 기계 학습 코어(123)는 ECC 또는 ECC 알고리즘이 동작하도록 업데이트된 코드워드(즉, 제 2 코드워드)를 출력할 수 있다. 기계 학습 코어(123)는 업데이트된 코드워드를 생성하기 위해 입력으로 특징을 수신하는 기계 학습 알고리즘을 실행할 수 있다. 기계 학습 알고리즘은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 이하에서는, 본 개시의 이해를 돕기 위해 기계 학습 알고리즘을 인공 뉴럴 네트워크(또는 뉴럴 네트워크)로 설명하지만, 이에 제한되는 것은 아니다. 예를 들어 기계 학습 알고리즘은 결정 트리(decision tree)로 구현될 수 있다. 업데이트된 코드워드에 대해 수행된 ECC 회로 또는 ECC 알고리즘이 실패하면, 컨트롤러 코어(121)는 오류가 발생했음을 로그 및/또는 보고할 수 있다.
내부 메모리(124)는 예를 들어, 컨트롤러 코어(121)가 사용하는 시스템 메모리, 메모리 장치(220)의 데이터를 저장하는 캐시 메모리 또는 호스트(100)와 메모리 장치(200) 사이의 데이터를 일시적으로 저장하는 버퍼 메모리로 사용될 수 있다. 내부 메모리(124)는 메모리 시스템(200)에 할당된 호스트로부터의 논리 주소와 메모리 장치(220)의 물리 주소 사이의 관계를 나타내는 매핑 테이블(mapping table, MT)을 저장할 수 있다. 내부 메모리(124)는, 예를 들어, 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM) 또는 정적 랜덤 액세스 메모리(static random access memory, SRAM)를 포함할 수 있다.
예시적인 실시예에서, 도 7 및 도 8를 참조하여 후술되는 뉴럴 네트워크는 메모리 컨트롤러(210)의 내부 메모리(124) 또는 메모리 장치(220)에 저장된 컴퓨터 프로그램에 포함될 수 있다. 뉴럴 네트워크를 포함하는 컴퓨터 프로그램은 메모리 제어 코어(122)의 ECC 동작에 의해 사용되는 코드워드를 업데이트하기 위해 기계 학습 코어(123)에 의해 실행될 수 있다. 또는, 뉴럴 네트워크는 하드웨어로 구현될 수 있다. 예를 들어, 기계 학습 코어(123)는 뉴럴 네트워크를 나타내는 하나 이상의 논리 회로를 포함할 수 있다. 따라서, 예시적인 실시예들에 따라, 메모리 시스템(200)은 메모리 장치(220)의 정상적인 읽기 동작 중에 메모리 장치(220)에 저장된 데이터를 오류 정정할 수 있다. 즉, 메모리 시스템(200)의 제조 공정이 완료된 후, 메모리 시스템(200)의 정상 동작 중, 특히 메모리 장치(220)로부터 데이터를 읽는 메모리 시스템(200)의 정상 읽기 동작 시, 읽고 있는 메모리 장치(220)는 메모리 시스템(200)에 로컬로 저장되어 실행되는 뉴럴 네트워크를 이용하여 오류 정정할 수 있으며, 오류 정정된 데이터는 메모리 장치(220)로부터 판독될 수 있다.
호스트 인터페이스 블록(125)은 예를 들어 물리적 블록과 같이 호스트(100)와 통신하기 위한 구성 요소를 포함할 수 있다. 메모리 인터페이스 블록(126)은 예를 들어 물리적 블록과 같은 메모리 장치(220)와 통신하기 위한 구성 요소를 포함할 수 있다.
이하, 시간의 경과에 따른 메모리 시스템(200)의 동작을 설명한다. 메모리 시스템(200)에 전원이 공급되면, 메모리 시스템(200)은 호스트(100)와 초기화를 수행할 수 있다. 호스트 인터페이스 블록(125)은 호스트(100)로부터 수신된 제1 요청(REQ1)을 메모리 제어 코어(122)에 제공할 수 있다. 제1 요청(REQ1)은 명령(예: 읽기 커맨드 또는 쓰기 커맨드) 및 논리 주소를 포함할 수 있다. 메모리 제어 코어(122)는 제1 요청(REQ1)을 메모리 장치(220)에 적합한 제2 요청(REQ2)으로 변환할 수 있다. 예를 들어, 메모리 제어 코어(122)는 커맨드의 포맷을 번역할 수 있다. 메모리 제어 코어(122)는 내부 메모리(124)에 저장된 매핑 테이블(MT)을 참조하여 주소 정보(address information, AI)를 획득할 수 있다. 메모리 제어 코어(122)는 주소 정보(AI)를 이용하여 논리 주소를 메모리 장치(220)의 물리 주소로 변환할 수 있다. 메모리 제어 코어(122)는 메모리 장치(220)에 적합한 제2 요청(REQ2)을 메모리 인터페이스 블록(126)에 제공할 수 있다. 메모리 인터페이스 블록(126)은 메모리 제어 코어(122)로부터의 제2 요청(REQ2)을 큐(queue)에 등록할 수 있다. 메모리 인터페이스 블록(126)은 큐에 최초로 등록된 요청을 제3 요청(REQ3)으로 메모리 장치(220)로 전송할 수 있다. 제1 요청(REQ1)이 쓰기 요청인 경우, 호스트 인터페이스 블록(125)은 호스트(100)로부터 수신된 데이터를 내부 메모리(124)에 쓸 수 있다. 제3 요청(REQ3)이 쓰기 요청인 경우, 메모리 인터페이스 블록(126)은 내부 메모리(124)에 저장된 데이터를 메모리 장치(220)로 전송할 수 있다. 데이터 쓰기가 완료되면, 메모리 장치(220)는 제3 응답(RESP3)을 메모리 인터페이스 블록(126)으로 전송할 수 있다. 제 3 응답(RESP3)에 응답하여, 메모리 인터페이스 블록(126)은 데이터가 완전히 기록되었음을 나타내는 제2 응답(RESP2)를 메모리 제어 코어(122)에 제공할 수 있다. 데이터가 내부 메모리(124)에 저장된 후 또는 제2 응답(RESP2)가 수신된 후, 메모리 제어 코어(122)는 호스트 인터페이스 블록(125)을 통해 요청이 완료되었음을 나타내는 제1 응답(RESP1)을 호스트(100)로 전송할 수 있다.
제1 요청(REQ1)이 읽기 요청 인 경우, 읽기 요청은 제2 요청(REQ2) 및 제3 요청(REQ3)을 통해 메모리 장치(220)로 전송될 수 있다. 메모리 인터페이스 블록(126)은 메모리 장치(220)로부터 수신된 데이터를 내부 메모리(124)에 저장할 수 있다. 데이터 전송이 완료되면, 메모리 장치(220)는 제3 응답(RESP3)을 메모리 인터페이스 블록(126)으로 전송할 수 있다. 제3 응답(RESP3)가 수신됨에 따라, 메모리 인터페이스 블록(126)은 데이터가 완전히 저장되었음을 나타내는 제2 응답(RESP2)을 메모리 제어 코어(122)에 제공할 수 있다. 제2 응답(RESP2)이 수신됨에 따라, 메모리 제어 코어(122)는 호스트 인터페이스 블록(125)을 통해 제1 응답(RESP1)을 호스트(100)로 전송할 수 있다. 호스트 인터페이스 블록(125)은 내부 메모리(124)에 저장된 데이터를 호스트(100)로 전송할 수 있다. 일 실시 예에서, 제1 요청(REQ1)에 대응하는 데이터가 내부 메모리(124)에 저장되는 경우, 제2 요청(REQ2) 및 제3 요청(REQ3)의 전송은 생략될 수 있다.
도 4 및 도 5는 3차원 플래시 메모리를 이용하여 메모리 시스템(200)을 구현한 예를 나타낸다. 3차원 플래시 메모리는 3차원(예를 들어, 수직) NAND(예를 들어, VNAND) 메모리 셀을 포함할 수 있다. 3차원 메모리 셀을 포함하는 메모리 셀 어레이(221)의 구현이 후술된다. 후술하는 각각의 메모리 셀은 NAND 메모리 셀일 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 도 2의 메모리 셀 어레이(221)의 블록도이다.
도 4를 참조하면, 일 실시 예에 따른 메모리 셀 어레이(221)는 복수의 메모리 블록들(BLK1 ~ BLKz)을 포함할 수 있다. 각 메모리 블록(BLK1 ~ BLKz)은 3차원 구조(예를 들어, 수직 구조)를 가질 수 있다. 예를 들어, 각 메모리 블록들(BLK1 ~ BLKz)은 제1 내지 제3 방향으로 연장되는 구조를 포함할 수 있다. 예를 들어, 각 메모리 블록(BLK1 ~ BLKz)은 제2 방향으로 연장되는 복수의 낸드 스트링을 포함할 수 있다. 복수의 낸드 스트링은 예를 들어, 제1 내지 제3 방향으로 제공될 수 있다.
각각의 NAND 스트링은 비트 라인(BL), 스트링 선택 라인(SSL), 접지 선택 라인(GSL), 워드 라인(WL) 및 공통 소스 라인(CSL)에 연결될 수 있다. 즉, 각 메모리 블록(BLK1 ~ BLKz)은 복수의 비트 라인(BL), 복수의 스트링 선택 라인(SSL), 복수의 접지 선택 라인(GSL), 복수의 워드 라인(WL) 및 공통 소스 라인(CSL)에 연결될 수 있다. 메모리 블록들(BLK1 ~ BLKz)에 대해서는 하기의 도 5에서 후술한다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 블록(BLKi)의 회로도이다. 도 5는 도 4의 메모리 셀 어레이(221)에서 메모리 블록들(BLK1 ~ BLKz) 중 하나의 예를 도시한다. 도 5에 도시된 워드 라인 및 메모리 셀의 수는 예시일 뿐이며, 임의의 적절한 수의 워드 라인 및 메모리 셀이 사용될 수 있다.
메모리 블록(BLKi)은 복수의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)을 포함할 수 있다. 복수의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)은 열 및 행 방향으로 배열되어 열과 행을 형성할 수 있다. 셀 스트링(CS11 내지 CS41, CS12 내지 CS42) 각각은 접지 선택 트랜지스터(GST), 메모리 셀(MC1 ~ MC6) 및 스트링 선택 트랜지스터(SST)를 포함할 수 있다. 각각의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)에 포함되는 접지 선택 트랜지스터(GST), 메모리 셀(MC1 ~ MC6) 및 스트링 선택 트랜지스터(SST)는 기판과 실질적으로 수직인 높이 방향으로 적층될 수 있다.
복수의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)의 열은 각각 서로 다른 스트링 선택 라인(SSL1 내지 SSL4)에 연결될 수 있다. 예를 들어, 셀 스트링(CS11, CS12)의 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL1)에 공통으로 연결될 수 있다. 셀 스트링(CS21, CS22)의 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL2)에 공통으로 연결될 수 있다. 셀 스트링(CS31, CS32)의 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL3)에 공통으로 연결될 수 있다. 셀 스트링(CS41, CS42)의 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL4)에 공통으로 연결될 수 있다.
복수의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)의 행은 각각 서로 다른 비트 라인(BL1, BL2)에 연결될 수 있다. 예를 들어, 셀 스트링(CS11 내지 CS41)의 스트링 선택 트랜지스터(SST)는 비트 라인(BL1)에 공통으로 연결될 수 있다. 셀 스트링(CS12 내지 CS42)의 스트링 선택 트랜지스터(SST)는 비트 라인(BL2)에 공통으로 연결될 수 있다.
복수의 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)의 열은 각각 서로 다른 접지 선택 라인(GSL1 ~ GSL4)에 연결될 수 있다. 예를 들어, 셀 스트링(CS11, CS12)의 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL1)에 공통으로 연결될 수 있다. 셀 스트링(CS21, CS22)의 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL2)에 공통으로 연결될 수 있다. 셀 스트링(CS31, CS32)의 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL3)에 공통으로 연결될 수 있다. 셀 스트링(CS41, CS42)의 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL4)에 공통으로 연결될 수 있다.
기판과 동일한 높이에 배치된 메모리 셀(또는 접지 선택 트랜지스터(GST))은 공통적으로 단일 워드 라인에 연결되고, 기판과 다른 높이에 배치된 메모리 셀은 서로 다른 워드 라인(WL1 ~ WL6)에 각각 연결될 수 있다. 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결될 수 있다. 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결될 수 있다. 메모리 셀(MC3)은 워드 라인(WL3)에 공통으로 연결될 수 있다. 메모리 셀(MC4)은 워드 라인(WL4)에 공통으로 연결될 수 있다. 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결될 수 있다. 메모리 셀(MC6)은 워드 라인(WL6)에 공통으로 연결될 수 있다. 셀 스트링(CS11 내지 CS41, CS12 내지 CS42)의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
도 6은 본 개시의 예시적인 실시예에 따른 오류 정정 동작을 수행하는 순서도이다.
도 6을 참조하면, 동작 601은, 읽기 커맨드에 응답하여 메모리 장치의 복수의 메모리 셀 각각으로부터의 출력을 리드(예를 들어, 셀 전압 리드)하는 단계 및 리드된 출력을 제1 코드워드로 변환하는 단계를 포함할 수 있다. 예를 들어, 도 3의 메모리 제어 코어(122)는, 호스트 인터페이스 블록(125)을 통해 호스트 (100)로부터 수신된 어드레스 정보 및 읽기 커맨드로 표시된 메모리 장치(220)의 메모리 셀들로부터 전압을 리드할 수 있다. 제1 코드워드는 예를 들어 노이즈로 인한 오류를 포함할 수 있다.
동작 602는, 제1 코드워드에 대해 ECC 연산을 수행하는 것을 포함할 수 있다. 예를 들어, 메모리 제어 코어(122)의 ECC 회로를 사용하여 ECC 동작을 수행하거나, 메모리 제어 코어(122)가 소프트웨어를 사용하여 ECC 동작을 수행할 수 있다. 수행된 ECC 동작에 따라, 메모리 제어 코어(122)는 상이한 수의 비트 오류를 정정할 수 있다. 예를 들어, ECC 작업이 3 비트 오류를 정정할 수 있는 경우 ECC 작업의 오류 정정 능력은 3일 수 있다.
동작 603은, 비트 에러의 수가 ECC 동작의 오류 정정 능력을 초과하는지 판단하는 것을 포함할 수 있다. 예를 들어, 비트 에러의 수가 ECC 동작의 능력을 초과하지 않는다면, ECC 동작에 의한 오류 정정은 성공적이고 다음 읽기 커맨드에서 동작 601이 반복될 수 있다. 비트 에러의 수가 ECC 동작의 능력을 초과하면, 동작 604을 수행할 수 있다.
동작 604는, 각각의 선택된 메모리 셀(예를 들어, 리드 메모리 셀)에 대해, 대응하는 리드 출력(예를 들어, 특징으로서 리드 전압의 값) 및 적어도 하나의 다른 관련 특징을 기계 학습 알고리즘(예를 들어, 뉴럴 네트워크)에 적용하여 제2 코드워드를 생성하는 것을 포함할 수 있다. 대안적인 실시예에서, 제1 코드워드 및 관련 특징은 제2 코드워드를 생성하기 위해 기계 학습 알고리즘에 적용될 수 있다.
예시적인 실시예에서, 기계 학습 알고리즘은 복수의 임계 전압 레벨에 대한 로그 확률을 출력하고 제2 코드워드는 상기 로그 확률로부터 생성될 수 있다. 예를 들어, 각 메모리 셀이 4 비트의 데이터(예: 0000, 0001,??, 1110 또는 1111)를 저장할 수 있는 경우, 각각의 메모리 셀은 소거 상태 및 15개의 프로그램 상태들을 포함하는 16개의 다른 상태를 나타내기 위한 16개의 다른 임계 값(TH) 전압 레벨로 구별될 수 있다. 예를 들어, 리드되는 메모리 셀의 셀 전압이 이러한 임계 전압 레벨 중 제1 전압 레벨보다 낮을 때, 메모리 셀은 소거 상태에 있는 것으로 간주되고, 리드되는 메모리 셀의 셀 전압이 제1 임계 전압 레벨과 제2 임계 전압 레벨 사이에 있을 때, 메모리 셀은 제1 프로그램 상태(예를 들어, 0001)에 있는 것으로 간주될 수 있다. 예를 들어, 뉴럴 네트워크는 각 전압 레벨에 대한 로그 확률을 출력할 수 있다. 뉴럴 네트워크가 출력하는 가장 높은 두 개의 로그 확률은 서로 인접한 두 전압 임계 값의 로그 확률일 수 있다. 예시적인 실시예에서, 뉴럴 네트워크는 각 메모리 셀의 셀 전압과 같은 복수의 메모리 셀과 관련된 특징에 대해 미리 훈련될 수 있다.
예시적인 실시예에서, 뉴럴 네트워크는 특정 워드라인 및 특정 비트라인에 연결되는 선택된 메모리 셀의 셀 전압, 동일한 비트라인에 연결된 인접 메모리 셀로부터의 적어도 하나 이상의 동일 필라(pillar) 인접 전압, 동일한 워드라인에 연결된 인접 메모리 셀로부터의 하나 이상의 동일한 워드라인 인접 전압, 워드라인의 경판정(hard decision, HD)의 임계 전압, 및 워드라인의 워드라인 인덱스를 적어도 포함하는 복수의 특징들에 대하여 미리 훈련되었을 수 있다.
특정 비트라인에 연결된 메모리 셀의 동일 필라 인접 전압은 동일한 비트라인에 연결된 다른 메모리 셀의 셀 전압을 포함할 수 있다. 예를 들어, 읽기 메모리 셀이 다섯 번째 워드라인과 세 번째 비트라인에 연결되는 메모리 셀인 경우, 세 번째 비트라인과 네 번째 워드라인에 연결된 이웃 메모리 셀의 동일 필라의 이웃 전압 및 세 번째 비트라인과 여섯 번째 워드라인에 연결된 메모리 셀의 동일 필라의 이웃 전압은 동일 필라 이웃 전압 특성으로서 뉴럴 네트워크에 적용될 수 있다. 다른 예를 들어, 다섯 번째 워드라인 및 두 번째 비트라인에 연결된 이웃 메모리 셀의 워드라인 이웃 전압과 다섯 번째 워드라인 및 네 번째 비트라인에 연결된 메모리 셀의 워드라인 이웃 전압은 동일 워드라인 이웃 전압 특성으로서 뉴럴 네트워크에 적용될 수 있다. 메모리 장치(221)의 각 워드라인은 서로 다른 경판정 임계 전압 레벨을 가질 수 있다. 메모리 컨트롤러(210), 내부 메모리(124) 또는 메모리 장치(220)는 이러한 모든 경판정 임계 전압 레벨들을 저장할 수 있다. 워드라인의 워드라인 인덱스는 메모리 장치(220)의 워드라인 그룹 내에서 워드라인이 나타나는 순서와 관련된 숫자에 상응할 수 있다. 예를 들어, 첫 번째 워드라인의 워드라인 인덱스는 1이고, 20번째 워드라인의 워드라인 인덱스는 20일 수 있다.
동작 605는, 제2 코드워드에 대한 ECC 동작을 수행하는 것을 포함할 수 있다. 제2 코드워드는 리드 전압 및 로그 확률로부터 생성될 수 있다. 예를 들어, 로그 확률은 불확실성 비트 또는 연판정(soft decision, SD) 비트로 변환될 수 있다. 예시적인 실시예에서, 메모리 제어 코어(122)의 ECC 디코더(예를 들어, ECC 회로 또는 ECC 알고리즘을 실행하는 프로세서)는 시도하고 있는 리드 데이터의 각 비트에 대해 3개의 연판정(SD) 비트들(값)를 수신할 수 있다. ECC 디코더는 각 코드워드 비트에 대한 로그 우도비(LLR)를 계산할 수 있다. 예를 들어, 3 비트 중 하나는 경판정 할당을 나타내고 나머지 2개 비트는 불확실성 또는 신뢰성을 나타낼 수 있다. 경판정 할당은 임계 값 연산을 수행함으로써 획득될 수 있다. ECC 디코더는 판독된 데이터를 다시 오류 정정하려고 시도하지만 이번에는 동작 604에서 생성된 제2 코드워드를 사용할 수 있다. 예시적인 실시예에서, 이퀄라이저는 연판정 3 비트 판독이 "약한" 결과를 제공하는(예를 들어, 높은 불확실성을 갖는) 셀에만 적용될 수 있다. 도 9의 히스토그램을 참조하면, 이퀄라이저는 2개의 불확실성 비트가 01, 10, 또는 11인 셀들에만 적용될 수 있다. 각 "약한" 셀에 대하여, 뉴럴 네트워크는 개선된 LLR을 계산할 수 있다. 개선된 LLR이 계산되면, 그 대응하는 연판정 3비트 값(예를 들어, 오류 정정 코드)은 도 10에 도시된 것과 같은 LLR 룩업 테이블을 참조하여 계산될 수 있다. "강력한"셀의 경우 원래의 연판정 3 비트 값이 유지될 수 있다. 많은 LLR을 개선하는 결합된 효과를 통해 ECC 디코더는 이전에 디코딩할 수 없었던 코드워드를 성공적으로 처리할 수 있다.
도 7은 본 개시의 예시적인 실시예에 따른 오류 정정 동작 시에 사용되는 뉴럴 네트워크의 입력 및 출력을 도시한다.
도 7을 참조하면, 뉴럴 네트워크는 선택된 메모리 셀의 셀 전압 값, 선택된 메모리 셀의 동일 필라 인접 전압 값들, 선택된 메모리 셀의 동일 워드라인 이웃 전압 값들, 워드라인에 대한 모든 경판정 임계 값들, 워드라인 인덱스를 입력으로 수신할 수 있다. 뉴럴 네트워크는 상기 수신한 입력들에 기반하여 모든 프로그램 상태들에 대한 로그 확률들을 출력할 수 있다.
본 개시의 예시적인 실시예는 도 7의 특정 신경망에 한정되지 않고, 컨볼 루션 뉴럴 네트워크(Convolution Neural Network, CNN)와 같은 다양한 다른 구성을 갖는 뉴럴 네트워크로 구현될 수 있다. 또한 뉴럴 네트워크는 다양한 다른 기계 학습 아키텍처 또는 알고리즘으로 대체될 수도 있다.
도 8은 본 개시의 예시적인 실시예에 따른 뉴럴 네트워크의 구조를 도시한다.
도 8을 참조하면, 뉴럴 네트워크는 2개의 히든 레이어(hidden layer), 입력 레이어(input layer) 및 출력 레이어(output layer)를 포함할 수 있다. 예를 들어, 뉴럴 네트워크가 도 7의 5개 특징들(선택된 메모리 셀의 셀 전압 값, 선택된 메모리 셀의 동일 필라 인접 전압 값들, 선택된 메모리 셀의 동일 워드라인 이웃 전압 값들, 워드라인에 대한 모든 경판정 임계 값들, 워드라인 인덱스)에 대하여 훈련된 경우, 입력 레이어는 5개의 노드들을 포함할 수 있고, 5개의 노드들 각각은 5개의 특징 중 서로 상이한 특징들을 수신할 수 있다. 예를 들어, 메모리 셀이 16개의 서로 다른 상태(예를 들어, 소거 상태 및 15개의 프로그램 상태)를 나타낼 수 있는 경우, 출력 레이어는 16개의 노드를 포함할 수 있고, 16개의 노드들 각각은 16개의 서로 다른 전압 임계 값과 관련된 로그 확률을 출력할 수 있다.
도 9는 본 개시의 예시적인 실시예에 따른 전압 히스토그램에 대해 그려지는 예시적인 경판정(hard deceision) 임계 값을 도시하는 다이어그램이다.
도 9를 참조하면, 도 9는 전압 히스토그램(예: 800 P/E 사이클, 6개월 리텐션) 위에 그려진 레벨 5와 레벨 6 사이의 경판정 임계 값의 예시를 도시한다. 기계 학습 코어(123)는 이퀄라이저 또는 이퀄라이저 회로로 지칭될 수 있다. 이퀄라이저에 의해 처리되는 뉴럴 네트워크의 출력은 ECC 디코더에 의해 요구되는 형식일 수 있다. 따라서 ECC 디코더가 코드워드 당 3 비트를 수신할 것으로 예상하는 경우, 뉴럴 네트워크의 출력은 ECC 디코더로 출력되기 전에 상기 형식으로 변환될 수 있다.
뉴럴 네트워크가 셀 전압과 함께 동일 필라 인접 전압 및 동일 워드라인 인접 전압에 대해 훈련된 경우, 셀 전압과 함께 뉴럴 네트워크에 적용되기 위해, 동일 필라 인접 전압 값, 동일 워드라인 인접 전압 값을 독출하는 것이 요구될 수 있다. 예를 들어, 셀 전압이 세 번째 워드라인과 세 번째 비트라인에 연결된 선택 메모리 셀에 해당하는 경우, 이퀄라이저는 세 번째 워드라인과 두 번째 및 네 번째 비트라인에 연결된 메모리 셀들의 셀 전압 값들 및 세 번째 비트라인과 두 번째 및 네 번째 워드라인에 연결된 메모리 셀들의 셀 전압 값들을 리드하고, 리드한 값들과 선택 메모리 셀의 셀 전압을 함께 뉴럴 네트워크에 적용할 수 있다.
일 실시예에서, 메모리 제어 코어(122) 또는 이퀄라이저는 뉴럴 네트워크에 의해 출력된 값으로부터 새로운 LLR 값을 계산할 수 있다. 다른 실시예에서, 메모리 제어 코어(122) 또는 이퀄라이저는 뉴럴 네트워크에 의해 출력된 2개의 가장 큰 값들로부터 새로운 LLR 값을 계산할 수 있다. 예를 들어, 선택한 메모리 셀의 셀 전압이 레벨 5와 6 사이이고 페이지 3에 대한 LLR에 관심이 있는 경우 레벨 5의 로그 확률과 레벨 6의 로그 확률만 중요하고 다른 값은 0이라는 것은 항상 참(true)일 수 있다. LLR은 레벨 6의 로그 확률에서 레벨 5의 로그 확률을 뺄셈하여 계산될 수 있다. 여기서, 레벨 5는 읽기 출력(즉, 선택된 메모리 셀의 셀 전압)이 임계 전압 레벨 5에 대응할 확률을 의미할 수 있으며, 레벨 5의 로그 확률은, 읽기 출력이 임계 전압 레벨 5에 해당할 확률의 미리 결정된 로그를 의미할 수 있다.
메모리 제어 코어(122)는 주어진 워드라인에 연결된 메모리 셀로부터 데이터 독출을 시도할 수 있다. 메모리 제어 코어(122)는 리드 데이터로부터 LLR 값을 생성할 수 있다. 예를 들어 LLR 값이 2.3이라고 가정하더라도, ECC 디코더는 3 비트 값에서 동작할 수 있다. 기계 학습 코어(123)는 상기 LLR 값으로부터 룩업 테이블(lookup table, LUT)을 사용하여 초기 연판정 3 비트를 생성할 수 있다.
도 10은 본 개시의 예시적인 실시예에 따른 LLR(log likelihood ratio) 테이블을 도시하고, 도 11은 본 개시의 예시적인 실시예에 따른 뉴럴 네트워크에 적용될 수 있는 예시적인 특징들에 대한 테이블을 도시한다.
도 10을 참조하면, 2.3의 LLR을 010의 연판정의 3 비트로 변환하는데 사용되지만 연판정의 3 비트를 ECC 디코더를 사용하면, 정정될 수 없는 비트에 오류가 있는 것으로 판단될 수 있다. 이 경우, 레벨 5의 로그 확률 -0.42를 얻고, 레벨 6의 로그 확률 -1.08을 얻기 위해 셀 전압을 포함하는 도 11의 특징들이 뉴럴 네트워크에 적용될 수 있다.
예를 들어, 도 11에 도시된 바와 같이, 100번째 워드라인 및 세 번째 비트라인에 연결된 선택 메모리 셀의 셀 전압은 -20mV이고, 99번째 워드라인 및 세 번째 비트라인에 연결된 메모리 셀의 필라 이웃 업 전압 값은 1280mV이고, 101번째 워드라인 및 세 번째 비트라인에 연결된 메모리 셀의 필라 이웃 다운 전압 값은 2140mV이고, 세 번째 비트라인에 연결된 선택 메모리 셀에 이웃하는 메모리 셀들 중 100번째 워드라인에 연결된 메모리 셀들의 셀 전압 값들은 2320mV, -620mV, 1280mV, 940mV, -80mV, -1740mV이고, 100번째 워드라인의 16개의 임계 전압 값들, 및 100번째 워드라인의 워드라인 인덱스는 100일 수 있다.
대부분의 출력 노드에서 나온 뉴럴 네트워크의 출력이 매우 작고 레벨 6 및 레벨 5와 관련된 출력 노드만 각각 -1.08V, -0.42V의 전압 출력을 가진다고 가정하면, LLR은 -1.08에서 -0.42를 뺄셈하여 계산되는 -0.66일 수 있다. 도 10의 LLR 테이블을 참조하면, 연판정 비트 111은 LLR -0.66에 가장 가까운 것으로 판단할 수 있는데, 이는 경판정 값 1과 불확실성 비트 11에 상응할 수 있다. 따라서 이퀄라이저는 초기 연판정 3 비트 값 010을 111로 업데이트할 수 있다. 이퀄라이저는 연판정 3 비트 읽기를 변경하고 새로운 연판정 3 비트(예: 111)를 ECC 디코더에 피드함으로써 ECC 디코더 인터페이스를 변경하는 것을 바이패스할 수 있다.
도 12는 본 개시의 예시적인 실시예에 따른 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템의 블록도이다.
도 12를 참조하면, 비휘발성 메모리 시스템은 도 1에 도시된 메모리 시스템(200)에 상응할 수 있다. 예를 들어, 모바일 장치 또는 데스크톱 컴퓨터에 상응할 수 있는 컴퓨팅 시스템(1200)에서, 비휘발성 메모리 시스템은 비휘발성 저장 시스템(1201)에 임베디드될 수 있으나, 이에 한정되는 것은 아니다.
컴퓨팅 시스템(1200)은 예를 들어, CPU, RAM(1203), 사용자 인터페이스(1204) 및 장치 드라이버(1205)를 포함하는 호스트(1202)를 포함할 수 있다. 호스트(1202)는 도 1에 도시된 호스트(100)에 상응할 수 있고, 장치 드라이버(1205)는 도 1에 도시된 메모리 장치 드라이버(111)에 상응할 수 있다. 전술한 구성 요소들은 버스(1206)에 전기적으로 연결될 수 있다. 비휘발성 저장 시스템(1201)은 장치 드라이버(1205)에 연결될 수 있다. 호스트(1202)는 컴퓨팅 시스템(1200) 전체를 제어하고 사용자 인터페이스(1204)를 통해 입력된 사용자 명령에 대응하는 동작을 수행할 수 있다. RAM(1203)은 호스트(1202)의 데이터 메모리로서 동작할 수 있다. 호스트(1202)는 장치 드라이버(1205)를 통해 비휘발성 저장 시스템(1201)에 사용자 데이터를 쓰거나 읽을 수 있다. 도 12에서 비휘발성 저장 시스템(1201)의 동작 및 관리를 제어하는 장치 드라이버(1205)는 호스트(1202) 외부에 배치된 것으로 도시되어 있으나, 이에 한정되는 것은 아니다. 예를 들어, 예시적인 실시예에서, 장치 드라이버(1205)는 호스트(1202) 내부에 배치될 수도 있다.
예시적인 실시예들에서, 3차원(3-Dimensional) 메모리 어레이가 제공된다. 3차원 메모리 어레이는 실리콘 기판 위에 배치된 활성 영역 및 이러한 메모리 셀의 동작과 관련된 회로를 갖는 메모리 셀 어레이의 하나 이상의 물리적 레벨에서 모 놀리식(monolithic)으로 형성될 수 있다. 용어 "모놀리식"은 어레이의 각 레벨의 층이 어레이의 각 기본 레벨의 층에 직접 증착되는 것을 의미한다.
일 실시예에서, 3차원 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀 위에 위치하도록 수직 방향으로 배향된 수직 NAND 스트링을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함할 수 있다. 본 명세서에 참조로 포함되는 다음 특허 문헌(U.S. Pat. Nos. 7,679,133; 8,553,466; 8,654,587; 8,559,235; and US Pat. Pub. No. 2011/0233648)은 3차원 메모리 어레이에 대한 적절한 구성을 설명하며, 여기서 3차원 메모리 어레이는 레벨들 간에 공유되는 워드라인 및/또는 비트라인을 갖는 복수의 레벨로 구성된다.
본 개시의 기술 분야에서 통상적인 바와 같이, 예시적인 실시예가 기능 블록, 유닛 및/또는 모듈의 관점에서 설명되고 도면에 도시된다. 당업자는 이러한 블록, 유닛 및/또는 모듈이 논리 회로, 개별 구성 요소, 마이크로 프로세서, 하드 와이어드(wired) 회로, 메모리 요소, 배선 연결 등과 같은 전자(또는 광학) 회로에 의해 물리적으로 구현된다는 것을 인식할 것이다. 이는, 반도체 기반 제조 공정 또는 기타 제조 공정을 사용하여 형성될 수 있다. 마이크로 프로세서 또는 이와 유사한 장치에 의해 구현되는 블록, 유닛 및/또는 모듈의 경우, 소프트웨어(예를 들어, 마이크로코드)를 사용하여 프로그래밍되어 여기에서 논의되는 다양한 기능을 수행할 수 있으며 선택적으로 펌웨어 및/또는 소프트웨어에 의해 구동될 수 있다. 대안적으로, 각각의 블록, 유닛 및/또는 모듈은 전용 하드웨어에 의해 구현되거나, 일부 기능을 수행하기 위한 전용 하드웨어와 다른 기능을 수행하기 위한 프로세서(예를 들어, 하나 이상의 프로그래밍된 마이크로프로세서 및 관련 회로)의 조합으로 구현될 수 있다. 또한, 예시적인 실시예들의 각 블록, 유닛 및/또는 모듈은 본 개시의 범위를 벗어나지 않고 둘 이상의 상호 작용 및 개별 블록, 유닛 및/또는 모듈로 물리적으로 분리될 수 있다. 또한, 예시적인 실시예의 블록, 유닛 및/또는 모듈은 본 개시의 범위를 벗어나지 않고 보다 복잡한 블록, 유닛 및/또는 모듈로 물리적으로 결합될 수 있다.
본 개시의 예시적인 실시예는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이들의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은 예를 들어, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 또는 당 업계에 알려진 임의의 다른 형태의 저장 매체와 같은 비일시적 프로그램 저장 장치 상에 구현될 수 있다. 예시적인 저장 매체는 프로세서에 연결되어, 프로세서는 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수도 있다. 또한, 일 실시예에서 프로세서 및 저장 매체는 주문형 집적 회로(ASIC)에 상주(reside)할 수도 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 메모리 시스템에서 있어서,
    복수의 메모리 셀들, 복수의 워드라인들 및 복수의 비트라인들을 포함하는 메모리 장치; 및
    프로세서를 포함하는 메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는, 호스트로부터 수신한 리드 커맨드에 응답하여 메모리 셀로부터 출력을 판독하여 제1 코드워드를 생성하고, 상기 제1 코드워드에 대해 제1 ECC(error correction code) 동작을 수행하도록 구성되고,
    상기 프로세서는, 상기 복수의 메모리 셀들 중 선택된 각각의 메모리 셀에 대해, 제2 코드워드를 생성하기 위해 기계 학습 알고리즘에 대한 입력 특징으로서 인접 메모리 셀에 대응하는 판독 출력 및 인접 전압을 적용하도록 구성되고,
    상기 메모리 컨트롤러는 상기 제1 ECC 동작이 실패할 때, 상기 제2 코드워드를 사용하여 제2 ECC 동작을 수행하도록 더 구성되고,
    상기 인접 메모리 셀은 선택된 메모리 셀과 동일한 워드라인에 연결되는 것을 특징으로 하는 메모리 시스템.
  2. 청구항 1에 있어서,
    상기 복수의 메모리 셀들 각각은, N개 비트의 데이터를 저장하고,
    상기 기계 학습 알고리즘은 2N개의 임계 전압 레벨들 각각에 대한 로그 확률을 출력하고,
    상기 프로세서는 상기 로그 확률로부터 상기 제2 코드워드를 생성하며, 상기 N은 양의 정수인 것을 특징으로 하는 메모리 시스템.
  3. 청구항 2에 있어서,
    상기 프로세서는, 상기 복수의 메모리 셀들 각각과 연관되는 연관된 로그 확률로부터 로그 우도비(log likelihood ratio, LLR)을 결정하고, 상기 결정된 로그 우도비로부터 상기 제2 코드워드를 생성하는 것을 특징으로 하는 메모리 시스템.
  4. 청구항 1에 있어서,
    상기 입력 특징은, 선택된 메모리 셀과 동일한 비트라인에 연결된 이웃 메모리 셀의 필라(pillar) 전압을 더 포함하는 메모리 시스템.
  5. 청구항 1에 있어서,
    상기 입력 특징은, 하나의 워드라인과 연관된 경판정 임계 전압 값을 더 포함하는 메모리 시스템.
  6. 메모리 장치 및 프로세서를 포함하는 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법에 있어서,
    상기 메모리 컨트롤러가 호스트로부터의 리드 커맨드에 응답하여 메모리 셀로부터의 출력을 센싱하는 단계;
    상기 메모리 컨트롤러가 상기 센싱된 출력으로부터 결정되는 제1 코드워드에 대해 제1 ECC(error correction code) 동작을 수행하는 단계;
    상기 제1 ECC 동작이 실패하면, 상기 프로세서가, 복수의 메모리 셀들 중 선택된 각각의 메모리 셀에 대해 입력 특징으로서 인접 메모리 셀에 대응하는 판독 출력 및 인접 전압을 기계 학습 알고리즘에 적용하여 제2 코드워드를 생성하는 단계; 및
    상기 메모리 컨트롤러가 상기 제2 코드워드를 사용하여 제2 ECC 연산을 수행하는 단계를 포함하고,
    상기 인접 메모리 셀은 선택된 메모리 셀과 동일한 워드 라인에 연결되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  7. 청구항 6에 있어서,
    각각의 메모리 셀은 N개 비트의 데이터를 저장하고,
    상기 기계 학습 알고리즘은 2N개 임계 전압 레벨들 각각에 대한 로그 확률을 출력하고,
    상기 프로세서는 상기 로그 확률로부터 상기 제2 코드워드를 생성하며, 상기 N은 양의 정수인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  8. 청구항 7에 있어서,
    상기 프로세서는 각각의 메모리 셀과 연관된 로그 확률로부터 로그 우도비(log likelihood ratio, LLR)을 결정하고, 상기 로그 우도비로부터 상기 제2 코드워드를 생성하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 청구항 6에 있어서,
    상기 입력 특징은, 선택된 메모리 셀과 동일한 비트라인에 연결된 이웃 메모리 셀의 필라(pillar) 전압을 더 포함하는 메모리 시스템의 동작 방법.
  10. 청구항 6에 있어서,
    상기 입력 특징은, 하나의 워드라인과 연관된 경판정 임계 전압 값을 더 포함하는 메모리 시스템의 동작 방법.

KR1020210087427A 2020-07-08 2021-07-02 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법 KR20220006467A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/923,334 2020-07-08
US16/923,334 US11205498B1 (en) 2020-07-08 2020-07-08 Error detection and correction using machine learning

Publications (1)

Publication Number Publication Date
KR20220006467A true KR20220006467A (ko) 2022-01-17

Family

ID=78918372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210087427A KR20220006467A (ko) 2020-07-08 2021-07-02 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US11205498B1 (ko)
KR (1) KR20220006467A (ko)
CN (1) CN113918379A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI684106B (zh) * 2018-09-28 2020-02-01 大陸商深圳衡宇芯片科技有限公司 訓練人工智慧更正儲存裝置的對數概度比的方法
JP2021033369A (ja) * 2019-08-15 2021-03-01 ソニー株式会社 半導体記憶装置及び該装置における不良メモリセルに対するエラー処理方法
US11874736B2 (en) * 2021-08-11 2024-01-16 Apple Inc. Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines
US20230057711A1 (en) * 2021-08-19 2023-02-23 Kioxia Corporation System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices
US20230305923A1 (en) * 2022-03-25 2023-09-28 Advanced Micro Devices, Inc. Error-Tolerant Memory System for Machine Learning Systems
US11791840B1 (en) 2022-04-14 2023-10-17 Samsung Electronics Co., Ltd. Hard decision decoding of non-volatile memory using machine learning

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
JP5764392B2 (ja) * 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ

Also Published As

Publication number Publication date
US11205498B1 (en) 2021-12-21
CN113918379A (zh) 2022-01-11
US20220013189A1 (en) 2022-01-13

Similar Documents

Publication Publication Date Title
US9858993B2 (en) Non-volatile memory device and method of programming the same
US11205498B1 (en) Error detection and correction using machine learning
US8705284B2 (en) Flash memory device and method of programming same
US11514997B2 (en) Controller, a storage device including the controller, and a reading method of the storage device
US9514830B2 (en) Non-volatile memory device, memory system including the same, and method of operating the same
US8498160B2 (en) Nonvolatile memory device and related programming method using selective bit line precharging
US10706944B2 (en) Memory controller for controlling memory device based on erase state information and method of operating the memory controller
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR20140046064A (ko) 메모리 디바이스들 및 메모리 디바이스를 위한 구성 방법들
KR101618313B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
KR20100104840A (ko) 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템
US9536600B2 (en) Simultaneous multi-page commands for non-volatile memories
KR20180027276A (ko) 반도체 메모리 장치 및 그 동작 방법
JP2023025687A (ja) メモリ装置およびその動作方法
US9424942B2 (en) Reduced timing and read verifying operation for non-volatile memory device
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR101435889B1 (ko) 공통 소스 라인 전압을 제어하는 플래시 메모리 장치,그것의 프로그램 검증 방법, 그리고 그것을 포함하는메모리 시스템
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same
US11848054B2 (en) Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device
KR20230090598A (ko) 히스토리 데이터를 사용하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
CN111798913A (zh) 存储器***、存储器控制器及其操作方法
US11791840B1 (en) Hard decision decoding of non-volatile memory using machine learning
US11934701B2 (en) Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same
US20230141554A1 (en) Memory device, memory system, and method of operating the memory system
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device

Legal Events

Date Code Title Description
A201 Request for examination