KR20230147525A - 머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩 - Google Patents
머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩 Download PDFInfo
- Publication number
- KR20230147525A KR20230147525A KR1020230042285A KR20230042285A KR20230147525A KR 20230147525 A KR20230147525 A KR 20230147525A KR 1020230042285 A KR1020230042285 A KR 1020230042285A KR 20230042285 A KR20230042285 A KR 20230042285A KR 20230147525 A KR20230147525 A KR 20230147525A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- page
- generate
- raw data
- Prior art date
Links
- 238000010801 machine learning Methods 0.000 title claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 26
- 238000013528 artificial neural network Methods 0.000 claims description 42
- 230000009977 dual effect Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 35
- 238000010586 diagram Methods 0.000 description 15
- 238000012937 correction Methods 0.000 description 14
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 7
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 6
- 101100524347 Xenopus laevis req-b gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 239000000758 substrate Substances 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 101100058967 Arabidopsis thaliana CALS8 gene Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 101150011582 ssl4 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 1
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 1
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 1
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 101150062870 ssl3 gene Proteins 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
- H03M13/1125—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using different domains for check node and bit node processing, wherein the different domains include probabilities, likelihood ratios, likelihood differences, log-likelihood ratios or log-likelihood difference pairs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
메모리 시스템은 각각이 다중 비트를 저장하는 복수의 메모리 셀을 포함하는 메모리 장치, 및 프로세서를 포함하는 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 제 1 페이지의 제 1 원시 데이터 및 상기 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터를 생성하기 위해 호스트로부터의 판독 명령에 응답하여 메모리 셀로부터의 출력을 판독하도록 구성된다. 메모리 컨트롤러는 제 1 디코딩된 데이터를 생성하기 위해 제 1 원시 데이터에 대해 경판정(HD) 디코딩을 수행하도록 더욱 구성된다. 프로세서는 신뢰도 정보를 생성하기 위해 제 1 디코딩된 데이터 및 제 2 원시 데이터를 머신 러닝 알고리즘에 입력 특징으로 적용하도록 구성된다. 메모리 컨트롤러는 제 2 디코딩된 데이터를 생성하기 위해 신뢰도 정보를 사용하여 제 2 원시 데이터에 대해 HD 디코딩을 수행하도록 더욱 구성된다.
Description
본 개시는 머신 러닝을 이용한 오류 검출 및 정정에 관한 것으로, 특히 머신 러닝을 사용하여 비휘발성 메모리에 대한 경판정 디코딩에 관한 것이다.
NAND 플래시 메모리 장치와 같은 현대의 비휘발성 메모리 장치는 여러 비트의 데이터가 각 메모리 셀에 저장되도록 하여 제조 비용 및 성능의 개선을 제공한다. 다중 비트의 데이터가 저장되는 메모리 셀은 멀티 레벨 메모리 셀로 지칭될 수 있다. 멀티 레벨 메모리 셀은 메모리 셀의 문턱 전압 범위를 여러 전압 상태로 분할하고, 메모리 셀 전압 레벨을 이용하여 메모리 셀에 기록된 데이터 값을 추출한다. NAND 플래시 메모리는 오류 정정 코드(ECC)를 사용하여 정정될 수 있는 비트 오류를 갖는다.
전력 소모는 비휘발성 메모리(NVM) 시스템을 설계할 때 고려해야 할 중요한 요소이며, 이것은 NAND 플래시 메모리를 포함할 수 있다. 예를 들어, NVM 시스템의 메모리 컨트롤러는 채널당 약 100밀리와트의 전력을 사용할 수 있다. 메모리 컨트롤러는 오류 정정 디코더를 이용하여 ECC를 이용한 오류 정정을 수행할 수 있다. 그러나 메모리 컨트롤러가 소비하는 대부분의 전력은 오류 정정 디코더를 사용한 결과이다.
본 개시가 해결하고자 하는 과제는 성능이 향상된 메모리 시스템 및 메모리 시스템을 제어하기 위한 컴퓨터로 구현된 방법을 제공하는 것이다.
예시적 실시 예에 따르면, 메모리 시스템이 제공된다. 메모리 시스템은 메모리 장치 및 메모리 컨트롤러를 포함한다. 메모리 장치는 각각이 다중 비트를 저장하는 복수의 메모리 셀을 포함한다. 메모리 컨트롤러는 제 1 페이지의 제 1 원시 데이터 및 상기 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터를 생성하기 위해 호스트로부터의 읽기 명령에 응답하여 상기 메모리 셀로부터의 출력(예를 들어, 채널 출력)을 읽도록 구성된다. 상기 메모리 컨트롤러는 제 1 디코딩된 데이터를 생성하기 위해 상기 제 1 원시 데이터에 대해 경판정(HD) 디코딩을 수행하도록 더욱 구성된다. 상기 프로세서는 상기 제 1 디코딩된 데이터 및 상기 제 2 원시 데이터를 머신 러닝 알고리즘에 입력 특징으로 적용하여 신뢰도 정보를 생성하도록 구성된다. 상기 메모리 컨트롤러는 상기 신뢰도 정보를 사용하여 상기 제 2 원시 데이터에 대해 HD 디코딩을 수행하여 제 2 디코딩된 데이터를 생성하도록 더욱 구성된다.
예시적 실시 예에 따르면, 메모리 시스템을 제어하기 위한 컴퓨터 구현 방법이 제공된다. 메모리 시스템은 각각 다중 비트를 저장하는 복수의 메모리 셀을 갖는 메모리 장치, 및 프로세서를 포함하는 메모리 컨트롤러를 포함한다. 방법은 상기 메모리 컨트롤러가 제 1 페이지의 제 1 원시 데이터 및 상기 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터를 생성하기 위해 호스트로부터의 읽기 명령에 응답하여 상기 메모리 셀로부터의 출력을 읽는 단계를 포함한다. 상기 방법은 상기 메모리 컨트롤러가 제 1 디코딩된 데이터를 생성하기 위해 상기 제 1 원시 데이터에 대해 경판정(HD) 디코딩을 실행하는 단계를 포함한다. 상기 방법은 상기 프로세서가 신뢰도 정보를 생성하기 위해 상기 제 1 디코딩된 데이터 및 상기 제 2 원시 데이터를 머신 러닝 알고리즘에 입력 특징으로 적용하는 단계를 포함한다. 상기 방법은 상기 메모리 컨트롤러가 제 2 디코딩된 데이터를 생성하기 위해 상기 신뢰도 정보를 이용하여 상기 제 2 원시 데이터에 대해 경판정(HD) 디코딩을 수행하는 단계를 포함한다.
예시적 실시 예에 따르면, 메모리 시스템이 제공된다. 메모리 시스템은 메모리 장치 및 메모리 컨트롤러를 포함한다. 메모리 장치는 복수의 삼중 레벨 메모리 셀(TLC)를 포함한다. 메모리 장치는 프로세서를 포함한다. 메모리 컨트롤러는 제 1 페이지의 제 1 원시 데이터, 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터, 및 제 2 페이지에 인접한 제 3 페이지의 제 3 원시 데이터를 생성하기 위해 호스트로부터의 판독 명령에 응답하여 상기 메모리 셀로부터의 출력을 판독하도록 구성된다. 상기 메모리 컨트롤러는 제 1 디코딩된 데이터를 생성하기 위해 상기 제 1 원시 데이터에 대해 제 1 디코딩을 수행하도록 더욱 구성된다. 상기 프로세서는 제 1 신뢰도 정보를 생성하기 위해 상기 제 1 디코딩된 데이터 및 상기 제 2 원시 데이터를 제 1 머신 러닝 알고리즘에 입력 특징으로 적용하도록 구성된다. 상기 메모리 컨트롤러는 제 2 디코딩된 데이터를 생성하기 위해 상기 제 1 신뢰도 정보를 사용하여 상기 제 2 원시 데이터에 대해 제 2 디코딩을 수행하도록 더 구성된다. 상기 프로세서는 상기 제 3 원시 데이터를 디코딩하는 데 사용할 제 2 신뢰도 정보를 생성하기 위해 상기 제 1 디코딩된 데이터, 상기 제 2 디코딩된 데이터, 및 상기 제 3 원시 데이터를 제 2 머신 러닝 알고리즘에 입력 특징으로 적용하도록 구성된다.
본 발명의 상기 및 기타 특징은 첨부되는 도면과 함께 상세하게 후술되는 실시 예들을 참조하면 명확해질 것이다:
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 구현예를 나타내는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른, 도 1의 비휘발성 메모리 장치의 상세 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 도 1의 메모리 시스템을 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른, 도 2의 메모리 셀 어레이의 블록도이다.
도 5는 본 발명의 일 실시 예에 따른, 도 4의 메모리 셀 어레이의 메모리 블록을 나타내는 회로도이다.
도 6은 본 발명의 일 실시 예에 따른, 4레벨 또는 이중 레벨 셀(DLC)에서 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터의 활용을 도시한다.
도 7은 제한된 크기 시프트를 나타내는 4레벨 메모리 셀에 대한 플래시 NVM 채널을 도시한다.
도 8a는 본 발명의 일 실시 예에 따른, 4레벨 메모리 셀에 대한 데이터 디코딩 방법을 도시한다
도 8b는 도 8a의 방법과 관련된 알고리즘의 의사코드를 도시한다.
도 9는 본 발명의 일 실시 예에 따른, 8레벨 또는 3레벨 셀(TLC)에서 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터의 활용을 도시한다.
도 10a는 본 발명의 일 실시 예에 따른, 8레벨 메모리 셀에 대한 데이터 디코딩 방법을 도시한다.
도 10b는 도 10a의 방법과 관련된 알고리즘의 의사코드를 도시한다.
도 11a는 본 발명의 일 실시 예에 따른, 복호화 방법 동안 신경망에 입력될 수 있는 특징들을 도시한다.
도 11b는 신경망의 예시적인 구조를 도시하는 도면이다.
도 12는 본 발명의 실시 예에 따른, 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템의 블록도이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 포함하는 데이터 처리 시스템의 구현예를 나타내는 블록도이다.
도 2는 본 발명의 일 실시 예에 따른, 도 1의 비휘발성 메모리 장치의 상세 블록도이다.
도 3은 본 발명의 일 실시 예에 따른, 도 1의 메모리 시스템을 나타내는 블록도이다.
도 4는 본 발명의 일 실시 예에 따른, 도 2의 메모리 셀 어레이의 블록도이다.
도 5는 본 발명의 일 실시 예에 따른, 도 4의 메모리 셀 어레이의 메모리 블록을 나타내는 회로도이다.
도 6은 본 발명의 일 실시 예에 따른, 4레벨 또는 이중 레벨 셀(DLC)에서 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터의 활용을 도시한다.
도 7은 제한된 크기 시프트를 나타내는 4레벨 메모리 셀에 대한 플래시 NVM 채널을 도시한다.
도 8a는 본 발명의 일 실시 예에 따른, 4레벨 메모리 셀에 대한 데이터 디코딩 방법을 도시한다
도 8b는 도 8a의 방법과 관련된 알고리즘의 의사코드를 도시한다.
도 9는 본 발명의 일 실시 예에 따른, 8레벨 또는 3레벨 셀(TLC)에서 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터의 활용을 도시한다.
도 10a는 본 발명의 일 실시 예에 따른, 8레벨 메모리 셀에 대한 데이터 디코딩 방법을 도시한다.
도 10b는 도 10a의 방법과 관련된 알고리즘의 의사코드를 도시한다.
도 11a는 본 발명의 일 실시 예에 따른, 복호화 방법 동안 신경망에 입력될 수 있는 특징들을 도시한다.
도 11b는 신경망의 예시적인 구조를 도시하는 도면이다.
도 12는 본 발명의 실시 예에 따른, 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템의 블록도이다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 보다 상세하게 설명한다. 첨부된 도면 전체에 걸쳐 동일한 참조 번호는 동일한 구성 요소를 나타낼 수 있다.
문맥이 명백하게 달리 나타내지 않는 한, 각각의 예시적인 실시 예 내의 특징 또는 측면의 설명은 일반적으로 다른 예시적인 실시 예의 다른 유사한 특징 또는 측면에 대해 이용가능한 것으로 간주되어야 한다는 것이 이해되어야 한다.
본 명세서에 사용된 바와 같이, 단수 형태는 문맥이 명백하게 달리 나타내지 않는 한 복수 형태도 포함하는 것으로 의도된다.
여기에서, 하나의 값이 다른 값과 거의 동일하거나 다른 값과 실질적으로 동일하거나 동일한 것으로 기술되는 경우, 당업자에 의해 이해되는 바와 같이, 측정 오차 내에서 값이 서로 동일하거나, 측정 가능하지 않은 경우 서로 기능적으로 동일할 만큼 가치가 충분히 가깝다는 것이 이해된다. 예를 들어, 본원에 사용된 용어 "약"은 언급된 값을 포함하며, 해당 측정 및 특정 수량 측정과 관련된 오류(즉, 측정 시스템의 한계)를 고려하여, 당업자에 의해 결정된 특정 값에 대한 허용 가능한 편차 범위 내를 의미한다. 예를 들어, "약"은 당업자에 의해 이해되는 바와 같이 하나 이상의 표준 편차 이내를 의미할 수 있다. 또한, 당업자에 의해 이해되는 바와 같이, 매개변수는 예시적인 실시 예에 따라 "약" 특정 값을 갖는 것으로 본 명세서에서 설명될 수 있는 반면, 매개변수는 정확히 특정 값이거나 측정 오류 내에서 대략 특정 값일 수 있다는 것이 이해된다.
도 1은 본 발명의 실시 예에 따른, 메모리 시스템을 포함하는 데이터 처리 시스템의 구현예를 나타내는 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(10)은 호스트(100) 및 메모리 시스템(200)을 포함할 수 있다. 도 1에 도시된 메모리 시스템(200)은 데이터 처리 기능을 포함하는 다양한 시스템에서 활용될 수 있다. 다양한 시스템은 예를 들어, 스마트폰 또는 태블릿 컴퓨터와 같은 모바일 장치를 포함하는 다양한 장치일 수 있다. 그러나 다양한 장치는 이에 한정되지 않는다.
메모리 시스템(200)은 다양한 형태의 메모리 장치를 포함할 수 있다. 여기서, 본 발명의 예시적인 실시 예들은 비휘발성 메모리인 메모리 장치를 포함하는 것으로 설명될 것이다. 그러나, 예시적인 실시 예들은 이에 한정되지 않는다. 예를 들어, 메모리 시스템(200)은 휘발성 메모리인 메모리 장치를 포함할 수 있다.
예시적인 실시 예들에 따르면, 메모리 시스템(200)은 예를 들어, 읽기 전용 메모리(ROM), 자기 디스크, 광 디스크, 플래시 메모리 등과 같은 비휘발성 메모리 장치를 포함할 수 있다. 플래시 메모리는 금속 산화물 반도체 전계 효과 트랜지스터(MOSFET)의 문턱 전압 변화에 따른 데이터를 저장하는 메모리일 수 있으며, 예를 들어 NAND 및 NOR 플래시 메모리를 포함할 수 있다. 메모리 시스템(200)은 예를 들어, 내장형 멀티미디어 카드(eMMC), 시큐어 디지털(SD) 카드, 마이크로 SD 카드 또는 범용 플래시 스토리지(UFS)와 같은 비휘발성 메모리 장치를 포함하는 메모리 카드를 이용하여 구현될 수 있거나, 메모리 시스템(200)은 예를 들어, 비휘발성 메모리 장치를 포함하는 SSD를 이용하여 구현될 수 있다. 여기서, 메모리 시스템(200)이 비휘발성 메모리 시스템인 경우를 가정하여 메모리 시스템(200)의 구성 및 동작을 설명한다. 그러나, 메모리 시스템(200)은 이에 한정되지 않는다.
호스트(100)는, 예를 들면, 모바일 장치에 탑재된 시스템 온 칩(SoC) 응용 프로세서(AP) 또는 컴퓨터 시스템에 포함된 중앙 처리 장치(CPU)를 포함할 수 있다.
상술한 바와 같이, 호스트(100)는 AP(110)를 포함할 수 있다. AP(110)는 다양한 지적 재산(IP; intellectual property) 블록을 포함할 수 있다. 예를 들어, AP(110)는 비휘발성 메모리 시스템(200)을 제어하는 메모리 장치 드라이버(111)를 포함할 수 있다. 호스트(100)는 메모리 동작과 관련된 명령(예를 들어, 읽기 명령, 쓰기 명령, 소거 명령 등)을 전송하고 전송된 명령에 응답하여 확인 명령을 수신하도록 불휘발성 메모리 시스템(200)과 통신할 수 있다.
비휘발성 메모리 시스템(200)은, 예를 들면, 메모리 컨트롤러(210) 및 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 호스트(100)로부터 메모리 동작과 관련된 명령을 수신하고, 수신된 명령을 사용하여 내부 명령 및 내부 클록 신호를 생성하고, 내부 명령 및 내부 클록 신호를 메모리 장치(220)에 제공한다. 메모리 장치(220)는 내부 명령에 응답하여 쓰기 데이터를 메모리 셀 어레이에 저장하거나, 내부 명령에 응답하여 읽기 데이터를 메모리 컨트롤러(210)에 제공할 수 있다.
메모리 장치(220)는 전원이 켜지지 않는 경우에도 내부에 저장된 데이터를 유지하는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 메모리 셀로서, 예를 들어 NAND 또는 NOR 플래시 메모리, 자기저항 랜덤 액세스 메모리(MRAM), 저항성 랜덤 액세스 메모리(RRAM), 강유전체 액세스 메모리)FRAM), 또는 상변화 메모리(PCM)를 포함할 수 있다. 예를 들어, 메모리 셀 어레이가 낸드 플래시 메모리를 포함하는 경우, 메모리 셀 어레이는 복수의 블록 및 복수의 페이지를 포함할 수 있다. 데이터는 페이지 단위로 프로그램되고 읽힐 수 있으며, 데이터는 블록 단위로 소거될 수 있다. 메모리 셀 어레이에 포함된 메모리 블록의 예는 도 4에 도시되어 있다.
도 2는 본 발명의 일 실시 예에 따른, 도 1의 불휘발성 메모리 장치(220)의 상세 블록도이다.
도 2를 참조하면, 비휘발성 메모리 장치(220)는 메모리 셀 어레이(221), 제어 로직(222), 전압 생성부(223), 행 디코더(224) 및 페이지 버퍼(225)를 포함할 수 있다.
메모리 셀 어레이(221)는 하나 이상의 스트링 선택 라인 SSL, 복수의 워드 라인 WL, 하나 이상의 접지 선택 라인 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)은 전압 생성부(223)에 전압 제어 신호 CTRL_vol를 제공할 수 있고, 행 디코더(224)에 행 어드레스 X-ADD를 제공하고, 페이지 버퍼(225)에 열 어드레스 Y-ADD를 제공한다.
전압 생성부(223)는 전압 제어 신호 CTRL_vol에 기초하여 메모리 셀 어레이(221)에 대한 프로그램, 읽기 및 소거 동작을 수행하기 위한 다양한 전압을 생성할 수 있다. 예를 들어, 전압 생성부(223)는 복수의 워드 라인 WL을 구동하기 위한 제 1 구동 전압 VWL, 복수의 스트링 선택 라인 SSL을 구동하기 위한 제 2 구동 전압 VSSL, 및 복수의 접지 선택 라인 GSL을 구동하기 위한 제 3 구동 전압 VGSL을 생성할 수 있다. 이 경우, 제 1 구동 전압 VWL은 프로그램 전압(예: 쓰기 전압), 읽기 전압, 소거 전압, 패스 전압 또는 프로그램 검증 전압일 수 있다. 또한, 제 2 구동 전압 VSSL은 스트링 선택 전압(예를 들어, 온 전압 또는 오프 전압)일 수 있다. 또한, 제 3 구동 전압 VGSL은 접지 선택 전압(예를 들어, 온 전압 또는 오프 전압)일 수 있다.
행 디코더(224)는 복수의 워드 라인 WL을 통해 메모리 셀 어레이(221)에 연결될 수 있고, 제어 로직(222)으로부터 수신된 로우 어드레스 X-ADD에 응답하여 복수의 워드 라인 WL의 일부를 활성화할 수 있다. 예를 들어, 읽기 동작시 행 디코더(224)는 선택된 워드 라인에 읽기 전압을 인가하고 비선택 워드 라인에 패스 전압을 인가할 수 있다.
프로그램 동작시, 행 디코더(224)는 선택된 워드 라인에 프로그램 전압을 인가하고 비선택 워드 라인에 패스 전압을 인가할 수 있다. 예시적인 실시 예에서, 복수의 프로그램 루프 중 적어도 하나에서, 행 디코더(224)는 선택된 워드 라인 및 추가로 선택된 워드 라인에 프로그램 전압을 인가할 수 있다.
페이지 버퍼(225)는 복수의 비트 라인 BL을 통해 메모리 셀 어레이(221)에 연결될 수 있다. 예를 들어, 읽기 동작시 페이지 버퍼(225)는 메모리 셀 어레이(221)에 저장된 데이터를 출력하는 감지 증폭기로 동작할 수 있다. 또는 프로그램 동작에서 페이지 버퍼(225)는 원하는 데이터를 메모리 셀 어레이(221)에 기록하는 쓰기 드라이버로 동작할 수 있다.
도 3은 본 발명의 일 실시 예에 따른, 도 2의 메모리 시스템(200)을 나타내는 블록도이다.
도 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)는 호스트로부터 수신된 읽기 명령 및 어드레스 정보에 응답하여 메모리 셀의 서브세트로부터 읽기 전압을 감지할 수 있고, 읽기 전압을 코드워드(데이터 및 중복 정보 포함)로 변환하고, ECC 회로를 사용하여 코드워드에 대해 ECC 연산을 수행한다. 메모리 제어 코어(122)는 ECC 알고리즘을 이용하여 오류 검출 및 정정(즉, ECC 동작)을 교대로 수행할 수 있다. ECC 회로 또는 ECC 알고리즘의 오류 정정 능력은 특정 수의 비트 오류일 수 있다. 오류 정정 능력이 초과되었을 때, 메모리 제어 코어(122)는 검출된 오류를 정정할 수 없다. 따라서, 어드레스 정보 및 읽기 명령에 기초하여 선택된 메모리 셀들로부터 데이터를 읽을 때, 메모리 제어 코어(122)는 데이터가 손상되어 판독 또는 정정될 수 없다고 보고할 필요가 있을 수 있다.
그러나, 본 발명의 일 실시 예에 따르면, 머신 러닝 코어(123)는 메모리 장치로부터 읽은 코드워드의 신뢰 가능한 페이지 비트에 대한 부가 정보를 결정하고, 코드워드의 오류를 감지하고 수정하기 위한 ECC 회로 또는 ECC 알고리즘에 부가 정보를 출력한다. 예시적인 실시 예에서, 부가 정보는 코드워드의 대응하는 비트에 대한 적어도 하나의 로그 우도 비율(LLR; Log-Likelihood Ratio)을 포함한다.
머신 러닝 코어(123)는 하나 이상의 이웃 페이지(예를 들어, 동일한 워드라인에 연결된 페이지)의 디코딩된 페이지 데이터 및 다른 이웃 페이지에 대한 원시 데이터를 입력으로 수신하여 부가 정보를 생성하는 머신 러닝 알고리즘을 실행할 수 있다. 메모리 장치의 메모리 셀이 4-레벨 데이터(예를 들어, DLC 또는 MLC)를 저장하는 실시 예에서, 디코딩된 페이지 데이터는 MSB 페이지의 최상위 비트(MSB) 데이터이고, 원시 페이지 데이터는 LSB 페이지의 최하위 비트(LSB) 데이터이고, 부가 정보는 LSB 데이터에 대한 것이다. 메모리 장치의 메모리 셀이 8레벨 데이터(TLC)를 저장하는 실시 예에서, 디코딩된 페이지 데이터는 LSB 페이지의 LSB 데이터 및 CSB 페이지의 중앙 중요 비트(CSB) 데이터를 포함하고, 원시 페이지 데이터는 MSB 페이지의 MSB 데이터이고, 부가 정보는 MSB 데이터용이다. DLC 또는 MLC(예를 들어, 셀당 2비트) 및 TLC(예를 들어, 셀당 3비트)에 대한 예가 아래에 제공되지만, 본 발명은 이에 한정되지 않고 셀당 4비트 또는 16레벨 데이터를 포함하는 쿼드 레벨 셀(QLC)과 같이 다중 비트를 저장할 수 있는 모든 메모리 셀 및 셀당 5비트 또는 32레벨 데이터를 포함하는 펜타 레벨 셀(PLC)에 적용될 수 있다.
머신 러닝 알고리즘은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 이하에서는 본 발명의 이해를 돕기 위해 머신 러닝 알고리즘을 인공 신경망(또는 신경망)으로 설명하지만, 본 발명은 이에 한정되지 않는다. 예를 들어, 머신 러닝 알고리즘은 의사 결정 트리로 구현될 수 있다. 코드워드에 대해 수행된 ECC 회로 또는 ECC 알고리즘이 실패하면, 제어기 코어(121)는 오류가 발생했음을 기록 및/또는 보고할 수 있다.
내부 메모리(124)는 예를 들어, 컨트롤러 코어(121)에 의해 사용되는 시스템 메모리, 메모리 장치(220)의 데이터를 저장하는 캐시 메모리, 또는 호스트(100)와 메모리 장치(220) 사이의 데이터를 임시로 저장하는 버퍼 메모리로 사용될 수 있다. 내부 메모리(124)는 메모리 시스템(200)에 할당된 호스트로부터의 논리적 어드레스와 메모리 장치(220)의 물리적 어드레스 간의 관계를 나타내는 매핑 테이블(MT)을 저장할 수 있다. 내부 메모리(124)는, 예를 들면, 동적 랜덤 액세스 메모리(DRAM) 또는 정적 랜덤 액세스 메모리(SRAM)를 포함할 수 있다.
예시적인 실시 예에서, 도 11a 및 도 11b를 참조하여 설명된 신경망과 같은 신경망은 메모리 컨트롤러(210)의 내부 메모리(124) 또는 메모리 장치(220)에 저장된 컴퓨터 프로그램에 포함될 수 있다. 신경망을 포함하는 컴퓨터 프로그램은 메모리 제어 코어(122)의 ECC 연산에 사용되는 부가 정보를 생성하기 위해 머신 러닝 코어(123)에 의해 실행될 수 있다. 대안적으로, 신경망은 하드웨어로 구현될 수 있다. 예를 들어, 머신 러닝 코어(123)는 신경망을 나타내는 하나 이상의 논리 회로를 포함할 수 있다. 따라서, 예시적인 실시 예들에 따르면, 메모리 시스템(200)은 메모리 장치(220)의 정상 읽기 동작 동안 메모리 장치(220)에 저장된 데이터를 에러 정정할 수 있다. 즉, 메모리 시스템(200)의 정상 동작 동안, 특히 데이터가 메모리 장치(220)로부터 읽히는 메모리 시스템(200)의 정상 읽기 동작 동안, 메모리 시스템(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을 참조하여 어드레스 정보 AI를 획득할 수 있다. 메모리 제어 코어(122)는 어드레스 정보(AI)를 이용하여 논리적 어드레스를 메모리 장치(220)의 물리적 어드레스로 변환할 수 있다. 메모리 제어 코어(122)는 메모리 장치(220)에 적합한 제 2 요청 REQ2을 메모리 인터페이스 블록(126)에 제공할 수 있다.
메모리 인터페이스 블록(126)은 메모리 제어 코어(122)로부터의 제 2 요청 REQ2을 큐에 등록할 수 있다. 메모리 인터페이스 블록(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)는 요청이 완료되었음을 나타내는 제 1 응답 RESP1을 호스트 인터페이스 블록(125)을 통해 호스트(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 방향으로 연장된 복수의 NAND 스트링을 포함할 수 있다. 복수의 NAND 스트링은, 예를 들어, 제 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 중 하나의 예시를 나타낸다.
메모리 블록 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에 공통으로 연결될 수 있다. 셀 스트링 CS3 및 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의 접지 선택 라인 GSL2은 접지 선택 라인 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에 공통으로 연결될 수 있다.
본 발명의 적어도 하나의 실시 예는 페이지 읽기당 평균 디코더 반복 횟수를 줄여 에너지 소비를 줄일 수 있는 디코딩 방법을 제공한다. 에너지 소비의 이러한 감소는 신뢰 가능한 페이지 비트의 부가 정보를 디코더에 제공함으로써 달성될 수 있다. 같은 워드라인에 위치한 연속 페이지를 읽을 때, 한 페이지의 디코딩된 데이터는 NVM 채널의 제한된 크기 오류 속성으로 인해 다른 인접 페이지에 신뢰 가능한 비트를 나타낼 수 있다. 예를 들어, 레벨 i(예를 들어, 프로그래밍된 또는 소거 레벨)가 레벨 i+1 또는 i=1로 시프트될 확률은 비순차적 레벨로 시프트하는 확률보다 훨씬 높다. 디코딩 방법은 인접 페이지 부가 정보를 이용한 디코딩이라고 할 수 있다.
도 6은 본 발명의 일 실시 예에 따른, 4-레벨 또는 다중-레벨 셀(DLC 또는 MLC)에 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터를 활용하는 것을 도시한다.
예를 들어, 도 6의 (a)을 참조하면, 제 1 페이지가 셀의 MSB에 저장되고 제 2 페이지가 셀의 LSB에 저장되는 4레벨 DLC 또는 MLC가 고려된다. 제 1 페이지(즉, MSB 페이지)를 성공적으로 읽고 디코딩했다고 가정한다. 1을 저장하는 모든 페이지 인덱스는 레벨 0(소거된 상태) 또는 3의 셀이다. 레벨 0 셀에서 읽은 데이터가 오류인 경우, 레벨 1로 시프트될 가능성이 가장 높다. 마찬가지로, 레벨 3 셀에서 읽은 데이터의 오류는 시프트된 레벨 2로부터 결과될 가능성이 있다. 셀의 LSB를 관찰하면, 레벨 0과 레벨 1은 동일한 데이터 1을 나타내고, 레벨 2와 레벨 3은 0을 나타낸다. 따라서 1을 저장하는 제 1 페이지 인덱스는 제 2 페이지의 해당 인덱스가 신뢰 가능한 비트를 저장한다는 것을 의미한다. 도 6의 (b)부분은 디코딩된 제 1 페이지 데이터(MSB 데이터) 및 제 2 페이지 원시 데이터를 나타낸다(예: ECC 디코딩 전 LSB 데이터). 제 2 페이지(0, 1, 0)의 인덱스 2, 3, 5에 있는 비트는 신뢰 가능한 것으로 간주된다. 이들 비트는 디코더 반복 수렴을 가속화할 수 있는, 높은 또는 최대 LLR이 할당될 수 있다. 비트가 균일하게 분포된 경우(예: 페이지 쓰기 중에 랜더마이저 사용), 설명된 예는 제 2 페이지(LSB 데이터)의 50% 신뢰 가능한 비트를 반복 디코더에 전달한다.
플래시 NVM 채널의 제한된 크기 오차는 도 7에 도시되어 있다. 오류의 크기가 제한되지 않을 확률(예: 레벨 1이 레벨 3으로 시프트됨)은 인접 레벨보다 실질적으로 낮다. 이 확률이 무시할 수 없다면, 인접 페이지에서 1인 인덱스의 LLR은 최대값은 아니지만 높은 값으로 조정될 수 있다.
일 실시 예에서, 설명된 부가 정보는 이전 읽기 주소가 동일한 워드라인에 매핑된 경우에만 사용 가능하다. 이러한 읽기 패턴은 유효한 섹터가 지워진 블록에 복사되는 가비지 수집 중에 일반적이다. 또 다른 가능한 설정은 동적 랜덤 액세스 메모리(DRAM) 캐시가 여러 페이지를 저장하고 적어도 하나가 선택된 NAND 읽기 주소와 유사한 워드라인을 공유하는 경우이다.
도 8a는 본 발명의 예시적인 실시 예에 따른 4레벨 DLC 또는 MLC에 대한 데이터 보정 방법을 나타내는 도면이고 도 8b는 도 8a의 방법을 수행하기 위한 의사 코드를 도시한다.
도 8a의 방법은 원시 MSB 데이터를 생성하기 위한 판독 명령에 응답하여 MSB 페이지를 판독하는 단계를 포함한다(단계 801). 읽기 명령은 읽기 어드레스와 함께 호스트로부터 메모리 컨트롤러(210)에 의해 수신될 수 있다. 읽기 어드레스는 메모리 장치(220)의 MSB 페이지 및 LSB 페이지의 위치를 나타낼 수 있다. MSB 페이지의 메모리 셀과 LSB는 동일한 워드라인에 연결된다. 판독은 도 8b의 단계 (1)에 대응할 수 있다. 일 실시 예에서, 판독은 원시 MSB 데이터를 생성하기 위해 판독 동안 출력된 메모리 장치(220)의 출력에 대해 제 1 기준 비교 Ref0-1 및 제 2 기준 비교 Ref2-3를 수행하는 것을 포함한다. 원시 MSB 데이터는 도 8b의 RawP1에 해당할 수 있다. 제 1 기준 비교 Ref0-1는 읽기 출력을 레벨 0과 레벨 1 사이의 전압 레벨과 비교하며, 도 6의 (a) 부분에서 좌측 하단 화살표로 표시된다. 제 2 기준 비교 Ref2-3는 읽기 출력을 레벨 2와 레벨 3 사이의 전압 레벨과 비교하며, 도 6의 (a) 부분에서 좌측 상단 화살표로 표시된다. 읽기는 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 8a의 방법은 디코딩된 MSB 데이터를 생성하기 위해 원시 MSB 데이터에 대해 경판정(HD; Hard Decision) 디코딩을 수행하는 단계를 더 포함한다(S802). HD 디코딩은 오류 검출 및 정정을 수행할 수 있다. HD 디코딩은 도 8b의 단계 (2)에 해당할 수 있다. 예시적인 실시 예에서, HD 디코딩은 디폴트 LLR을 사용하여 MSB 데이터를 디코딩한다. 디코딩된 MSB 데이터는 도 8b의 DataP1에 해당할 수 있다. HD 디코딩은 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다. HD 디코딩은 일반화된 저 밀도 패리티 체크(GLDPC) 디코더에 의해 수행될 수 있다.
도 8a의 방법은 원시 LSB 데이터를 생성하기 위해 판독 명령에 응답하여 LSB 페이지를 판독하는 단계(단계 803)를 더 포함한다. 일 실시 예에서, 단계 803은 단계 802 이전에 발생할 수 있다. 판독하는 단계는 도 8b의 단계 (3)에 대응할 수 있다. 실시 예에서, 판독 단계는 원시 LSB 데이터를 생성하기 위해 판독 출력에 대해 제 3 기준 비교 Ref1-2를 수행하는 단계를 포함한다. 원시 LSB 데이터는 도 8b의 RawP2에 해당할 수 있다. 제 3 기준 비교 Ref1-2는 읽기 출력을 레벨 1과 레벨 2 사이의 전압 레벨과 비교하며, 도 6의 (a) 부분에서 우측 화살표로 표시된다. 읽기는 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 8a의 방법은 LSB 데이터에 대한 LLR을 추정하기 위해 디코딩된 MSB 데이터 및 원시 LSB 데이터를 신경망에 입력으로 적용하는 단계를 포함한다(단계 804). 도 8b의 단계 (4)는 신경망에 대한 입력의 적용에 대응할 수 있다. 추정된 LLR은 도 8b의 llrP2에 대응할 수 있다. 예를 들어, LSB 데이터가 32비트의 데이터를 포함하는 경우, 신경망에 의해 32개의 LLR 또는 각 비트에 대해 하나씩 출력될 수 있다. 머신 러닝 코어(123)는 메모리 제어 코어(122)로부터 디코딩된 MSB 데이터 및 원시 LSB 데이터를 수신하고 이를 신경망에 대한 입력으로 적용할 수 있다.
도 8a의 방법은 디코딩된 LSB 데이터를 생성하기 위해 원시 LSB 데이터 및 LLR에 대해 HD 디코딩을 수행하는 단계를 포함한다(단계 805). HD 디코딩은 도 8b의 단계 (5)에 해당할 수 있다. 예시적인 실시 예에서, HD 디코딩은 머신 러닝 코어(123)로부터 수신된 LLR llrP2을 사용하여 LSB 데이터를 디코딩한다. 디코딩된 LSB 데이터는 도 8b의 DataP2에 해당할 수 있다. HD 디코딩은 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
HD 디코딩이 성공적이었다고 가정하면, 디코딩된 MSB 데이터 및 디코딩된 LSB 데이터는 호스트 인터페이스 블록(125)을 통해 호스트로 출력될 수 있다. MSB 데이터를 디코딩했지만 LSB 데이터를 디코딩할 수 없는 경우, 메모리 컨트롤러(210)는 오류를 기록하거나 호스트에 오류를 보고할 수 있다.
도 9는 8 레벨 또는 삼중 레벨 셀(TLC)에서 신뢰 가능한 비트를 표시하기 위해 인접 페이지 데이터를 활용하는 단계를 예시한다. 도 9의 (a) 부분은 8 레벨 TLC에 대한 비트의 매핑을 예시한다.
도 9의 (b) 부분은 MSB 페이지에 대한 신뢰 가능한 비트(예를 들어, 인접 레벨에서 유사한 값을 갖는 비트)를 예시한다. 도 9의 (b) 부분에서, 신뢰 가능한 비트(즉, 인접 레벨이 동일한 값을 가짐)는 레벨 2, 3, 6 및 7에 있다. 이러한 비트는 0을 저장하는 인덱스에서, LSB 페이지에 의해서만 식별된다.
도 9의 (c) 부분은 CSB 페이지에 대한 신뢰 가능한 비트를 예시한다. 도 9의 (c) 부분에서, CSB가 나타내는 페이지는 레벨 0, 1, 4 및 5에 신뢰 가능한 비트를 갖는다. 이러한 비트는 1을 저장하는 인덱스에서, LSB 페이지에 의해서만 식별될 수 있다. 도 9의 (d) 부분은 LSB 페이지에 대한 신뢰 가능한 비트를 도시한다.
도 9의 (d) 부분에서, LSB가 나타내는 페이지는 레벨 0과 7에서 신뢰 가능한 비트를 갖는다. 이러한 비트는 MSB 및 CSB 페이지가 모두 알려져 있고 동일한 비트 인덱스에 1을 저장하는 경우에만 감지된다.
따라서, 신뢰 가능한 비트의 최대 표시는 참조 비교 Ref1-2, Ref3-4 및 Ref5-6을 사용하여 LSB가 나타내는 페이지를 먼저 읽음으로써 달성된다. 읽을 제 2 및 제 3 페이지는 임의의 순서로 MSB 및 CSB이다. 인접 페이지 크기 정보는 페이지 비트의 50%를 제 2 및 제 3 페이지에 대해 신뢰 가능한 것으로 표시한다.
도 10a는 본 발명의 일 실시 예에 따른 8레벨 TLC에 대한 데이터 보정 방법을 나타내는 도면이고 도 10b는 도 10a의 방법을 수행하기 위한 의사 코드를 도시한다.
도 10a의 방법은 원시 LSB 데이터를 생성하기 위한 판독 명령에 응답하여 LSB 페이지를 판독하는 단계를 포함한다(단계 1001). 읽기 명령은 읽기 어드레스와 함께 호스트로부터 메모리 컨트롤러(210)에 의해 수신될 수 있다. 읽기 어드레스는 메모리 장치(220)의 LSB 페이지, CSB 페이지, MSB 페이지의 위치를 나타낼 수 있다. 판독 단계는 도 10b의 단계 (1)에 대응할 수 있다. 일 실시 예에서, 판독 단계는 원시 LSB 데이터를 생성하기 위해 판독하는 단계 동안 출력된 메모리 장치(220)의 출력과 관련하여, 제 1 기준 비교 Ref1-2, 제 2 기준 비교 Ref3-4 및 제 3 기준 비교 Ref5-6를 수행하는 것을 포함한다. 원시 LSB 데이터는 도 10b의 RawP1에 해당할 수 있다. 제 1 기준 비교 Ref1-2는 읽기 출력을 레벨 1과 레벨 2 사이의 전압 레벨과 비교한다. 제 2 기준 비교 Ref3-4는 읽기 출력을 레벨 3과 레벨 4 사이의 전압 레벨과 비교한다. 제 3 기준 비교 Ref5-6은 읽기 출력을 레벨 5와 6 사이의 전압 레벨과 비교한다. 판독하는 단계는 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 10a의 방법은 디코딩된 LSB 데이터를 생성하기 위해 원시 LSB 데이터에 대해 경판정(HD) 디코딩을 수행하는 단계를 더 포함한다(S1002). HD 디코딩은 도 10b의 단계 (2)에 해당할 수 있다. 예시적인 실시 예에서, HD 디코딩은 디폴트 LLR을 사용하여 LSB 데이터를 디코딩한다. 디코딩된 LSB 데이터는 도 10b의 DataP1에 해당할 수 있다. HD 디코딩은 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다. 예를 들어, 메모리 제어 코어(122)는 일반화된 저 밀도 패리티 체크(GLDPC) 코드와 같은 코드에 대해 반복적인 디코딩을 수행하여 HD 디코딩을 수행하도록 구성된 디코더 회로 또는 디코더 알고리즘을 포함할 수 있다.
도 10a의 방법은 원시 CSB 데이터를 생성하기 위한 판독 명령에 응답하여 CSB 페이지를 판독하는 단계를 더 포함한다(단계 1003). 판독 단계는 도 10b의 단계 (3)에 대응할 수 있다. 일 실시 예에서, 판독 단계는 원시 CSB 데이터를 생성하기 위해 판독 출력에 대해 제 4 기준 비교 Ref2-3 및 제5 기준 비교 Ref6-7를 수행하는 단계를 포함한다. 원시 CSB 데이터는 도 10b의 RawP2에 해당할 수 있다. 제 4 기준 비교 Ref2-3은 읽기 출력을 레벨 2와 3 사이의 전압 레벨과 비교한다. 제 5 기준 비교 Ref6-7은 읽기 출력을 레벨 6과 7 사이의 전압 레벨과 비교한다. 판독 단계는 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 10a의 방법은 CSB 데이터에 대한 LLR을 추정하기 위해 디코딩된 LSB 데이터 및 원시 CSB 데이터를 신경망에 입력으로 적용하는 단계를 포함한다(단계 1004). 도 10b의 단계는 신경망에 대한 입력의 적용에 대응할 수 있다. CSB 데이터의 추정된 LLR은 도 10b의 llrP2에 대응할 수 있다. 예를 들어, CSB 데이터에 32비트의 데이터가 포함된 경우, 신경망에 의해 32개의 LLR 또는 각 비트에 대해 하나씩 출력될 수 있다. 머신 러닝 코어(123)는 메모리 제어 코어(122)로부터 디코딩된 LSB 데이터 및 원시 CSB 데이터를 수신하고 이를 신경망에 입력으로 적용할 수 있다.
도 10a의 방법은 디코딩된 CSB 데이터를 생성하기 위해 원시 CSB 데이터 및 CSB 데이터의 LLR에 대해 HD 디코딩을 수행하는 단계를 포함한다(단계 1005). HD 디코딩은 도 10b의 (5) 단계에 해당할 수 있다. 예시적인 실시 예에서, HD 디코딩은 머신 러닝 코어(123)로부터 수신된 LLR llrP2을 사용하여 CSB 데이터를 디코딩한다. 디코딩된 CSB 데이터는 도 10b의 DataP2에 해당할 수 있다. HD 디코딩은 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 10a의 방법은 원시 MSB 데이터를 생성하기 위해 판독 명령에 응답하여 MSB 페이지를 판독하는 단계를 더 포함한다(단계 1006). 판독 단계는 도 10b의 단계 (6)에 대응할 수 있다. 일 실시 예에서, 판독 단계는 원시 MSB 데이터를 생성하기 위해 출력과 관련하여 제 6 기준 비교 Ref0-1 및 제 7 기준 비교 Ref4-5를 수행하는 단계를 포함한다. 원시 MSB 데이터는 도 10b의 RawP3에 해당할 수 있다. 제 6 기준 비교 Ref0-1은 읽기 출력을 레벨 0과 레벨 1 사이의 전압 레벨과 비교한다. 제 7 기준 비교 Ref4-5는 읽기 출력을 레벨 4와 레벨 5 사이의 전압 레벨과 비교한다. 판독 단계는 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
도 10a의 방법은 MSB 데이터에 대한 LLR을 추정하기 위해 디코딩된 LSB 데이터, 디코딩된 CSB 데이터, 및 원시 MSB 데이터를 신경망에 입력으로 적용하는 단계를 포함한다(단계 1007). 도 10b의 단계는 신경망에 대한 입력의 적용에 대응할 수 있다. MSB 데이터의 추정된 LLR은 도 10b의 llrP3에 대응할 수 있다. 예를 들어, MSB 데이터가 32비트의 데이터를 포함하는 경우, 신경망에 의해 32개의 LLR 또는 각 비트에 대해 하나씩 출력될 수 있다. 머신 러닝 코어(123)는 메모리 제어 코어(122)로부터 디코딩된 LSB 데이터, 디코딩된 CSB 데이터 및 원시 MSB 데이터를 수신하고 이를 신경망에 입력으로 적용할 수 있다.
도 10a의 방법은 디코딩된 MSB 데이터를 생성하기 위해 원시 MSB 데이터 및 MSB 데이터의 LLR에 대해 HD 디코딩을 수행하는 단계를 포함한다(단계 1008). HD 디코딩은 도 10b의 (8) 단계에 해당할 수 있다. 예시적인 실시 예에서, HD 디코딩은 머신 러닝 코어(123)로부터 수신된 LLR(llrP3)을 사용하여 MSB 데이터를 디코딩한다. 디코딩된 MSB 데이터는 도 10b의 DataP3에 해당할 수 있다. HD 디코딩은 컨트롤러 코어(121) 또는 메모리 제어 코어(122)에 의해 수행될 수 있다.
CSB 데이터(단계 1003) 및 MSB 데이터(단계 1006)의 판독 단계는 원시 LSB 데이터에 대해 HD 디코딩을 수행하는 단계(1002) 이전에 수행될 수 있다.
HD 디코딩이 성공적이었다고 가정하면, 디코딩된 LSB, CSB 및 MSB 데이터는 호스트 인터페이스 블록(125)을 통해 호스트로 출력된다. 데이터 중 일부만 성공적으로 디코딩된 경우, 메모리 컨트롤러(210)는 오류를 기록하거나 오류를 호스트에 출력할 수 있다.
도 11a는 신경망의 예, 신경망에 입력으로 적용될 수 있는 특징, 신경망의 출력을 나타낸다. 일 실시 예에서, 특징은 적어도 하나의 이웃 페이지에 대한 디코딩된 데이터와 다른 이웃 페이지에 대한 원시 데이터(디코딩 전)를 포함한다.
메모리 셀이 4 레벨 셀인 경우, 적어도 하나의 이웃 페이지에 대한 디코딩된 데이터는 MSB 페이지와 같은 단일의 제 1 페이지의 디코딩된 데이터이고 이웃 페이지의 원시 데이터는 LSB 페이지와 같은 제 1 페이지에 인접한 단일의 제 2 페이지의 데이터이다. 대안적인 실시 예에서, 제 1 페이지의 디코딩된 데이터는 LSB 페이지이고 제 2 페이지의 원시 데이터는 MSB 페이지이다.
메모리 셀이 8 레벨 셀인 경우, 모든 페이지를 디코딩하기 위해서는 신경망(NN)을 두 번 실행해야 한다. 제 1 실행에서, 적어도 하나의 이웃 페이지에 대한 디코딩된 데이터는 LSB 페이지와 같은 단일의 제 1 페이지에 대한 디코딩된 데이터이고 다른 이웃 페이지의 원시 데이터는 CSB 페이지의 원시 데이터이다. 제 2 실행에서는, 적어도 하나의 이웃 페이지에 대한 디코딩된 데이터는 LSB 페이지 및 CSB 페이지와 같은 두 개의 인접한 페이지의 디코딩된 데이터이고, 다른 이웃 페이지의 원시 데이터는 MSB 페이지와 같은 두 개의 인접한 페이지 중 하나에 인접한 단일 제 3 페이지이다. 대안적인 실시 예에서, 제 1 페이지의 디코딩된 데이터는 MSB 페이지이고 제 3 페이지의 원시 데이터는 LSB 페이지이다. 2개의 인접한 페이지는 페이지로 지칭될 수 있고, 여기서 2개의 인접한 페이지 각각은 페이지의 서브페이지로 지칭될 수 있다.
본 발명의 개념은 QLC 및 PLC에도 적용될 수 있다. 메모리 장치(220)가 QLC를 포함하는 경우, 도 10a의 단계 1006-1008는 단계 1003-1005에서 참조된 제 1 CSB 페이지에 인접한 제 2 CSB 페이지에 적용되도록 조정될 수 있으므로 단계 S1008는 원시 제 2 CSB 데이터를 디코딩하고, 단계 1006이 MSB 페이지를 판독하기 위해 적용된 다음에, 디코딩된 LSB 데이터, 디코딩된 제 1 및 제 2 CSB 데이터, 및 원시 MSB 데이터는 MSB 데이터를 디코딩하기 위해 신경망에 적용될 수 있다. 메모리 장치(220)가 PLC를 포함하는 경우, 도 10a의 방법에 대해 유사한 조정이 이루어지므로 추가 CSB 페이지가 처리된다.
신경망은 입력 특징으로부터 LLR을 추론하기 위해 상기 사용 이전에 훈련 데이터를 사용하여 훈련된다. 훈련 데이터는 적어도 하나의 이웃 페이지에 대한 디코딩된 데이터의 예시적인 쌍과 특정 LLR을 표시하도록 표시된 다른 이웃 페이지에 대한 원시 데이터의 예시적인 쌍을 포함할 수 있다. 신경망의 가중치는 입력 훈련 데이터 예가 신경망이 표시된 LLR을 출력하게 하도록 조정될 수 있다. DLC(또는 MLC), TLC, QLC, PLC와 같은 메모리의 종류에 따라 다른 신경망이 사용될 수 있다. 예를 들어, DLC 또는 MLC를 처리하도록 설계된 신경망은 디코딩된 제 1 페이지 데이터 및 원시 제 2 페이지 데이터와 같은 2가지 특징을 수신하도록 구성될 수 있으며, TLC를 처리하도록 설계된 신경망은 제 1 및 제 2 페이지의 디코딩된 데이터 및 원시 제 3 페이지 데이터와 같은 3가지 특징을 수신하도록 구성될 수 있다.
도 11b는 예로서 신경망을 구현하는 한 방법을 예시한다. 이 예에는 2개의 히든 레이어, 입력 레이어 및 출력 레이어가 있다. 예를 들어, 신경망이 3가지 특징에 대해 학습된 경우, 입력 레이어는 세 개의 노드를 포함하며, 이 때 각 노드는 세 가지 특징 중 다른 하나를 수신한다. 신경망의 출력 레이어는 페이지 날짜의 각 비트에 대해 하나의 출력 노드를 포함할 수 있다. 예를 들어, 각 페이지가 32비트인 경우, 신경망은 32개의 출력 노드를 포함하며, 각 노드는 페이지의 각 비트에 대해 고유한 LLR을 출력한다. 그러나, 본 발명은 이러한 특정 신경망에 한정되지 않고, 컨볼루션 신경망과 같은 다양한 다른 구성을 갖는 신경망에 의해 구현될 수 있다. 또한 신경망은 다양한 다른 머신 러닝 아키텍처 또는 알고리즘으로 대체될 수도 있다.
도 12는 본 발명의 일 실시 예에 따른, 비휘발성 메모리 시스템을 포함하는 컴퓨팅 시스템(1200)의 블록도이다.
도 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차원(3D) 메모리 어레이가 제공된다. 3D 메모리 어레이는 실리콘 기판 위에 배치된 활성 영역을 갖는 메모리 셀 어레이 및 이러한 메모리 셀의 동작과 관련된 회로의 하나 이상의 물리적 레벨에 모놀리식으로 형성되고, 관련 회로가 그러한 기판 위에 있는지 또는 내부에 있는지 상관 없다. "모놀리식"이라는 용어는 각 레벨의 레이어가 어레이의 각 기본 레벨의 레이어에 직접 증착됨을 의미한다.
본 발명의 예시적인 실시 예에서, 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀 위에 위치하도록 수직으로 배향된 수직 NAND 스트링을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다. 참고로 본 명세서에 포함된 다음 특허 문서는 다음과 같다. 3차원 메모리 어레이가 복수의 레벨로 구성되고 워드 라인 및/또는 비트 라인이 레벨 간에 공유되는 3차원 메모리 어레이에 대한 적절한 구성을 설명한다: 미국 특허 번호 제7,679,133호; 8,553,466; 8,654,587; 8,559,235; 및 미국 특허 공개 번호 2011/0233648호.
본 발명의 개념의 분야에서 전형적인 바와 같이, 예시적인 실시 예는 기능 블록, 유닛 및/또는 모듈의 관점에서 설명되고 도면에 예시된다. 당업자라면 이러한 블록, 장치 및/또는 모듈은 반도체 기반 제조 기술 또는 기타 제조 기술을 사용하여 형성될 수 있는, 논리 회로, 개별 구성 요소, 마이크로프로세서, 유선 회로, 메모리 요소, 배선 연결 등과 같은 전자 (또는 광학) 회로에 의해 물리적으로 구현된다는 것을 이해할 것이다. 블록, 유닛 및/또는 모듈이 마이크로프로세서 또는 이와 유사한 것에 의해 구현되는 경우, 이들은 소프트웨어(예를 들어, 마이크로코드)를 사용하여 여기에서 논의된 다양한 기능을 수행하도록 프로그래밍될 수 있고 선택적으로 펌웨어 및/또는 소프트웨어에 의해 구동될 수 있다. 또는, 각 블록, 유닛 및/또는 모듈은 전용 하드웨어에 의해, 또는 일부 기능을 수행하기 위한 전용 하드웨어와 다른 기능을 수행하기 위한 프로세서(예를 들어, 하나 이상의 프로그래밍된 마이크로프로세서 및 관련 회로)의 조합으로 구현될 수 있다. 또한, 예시적인 실시 예의 각 블록, 유닛 및/또는 모듈은 본 발명의 개념의 범위를 벗어나지 않고 물리적으로 2개 이상의 상호작용하는 개별 블록, 유닛 및/또는 모듈로 분리될 수 있다. 더욱, 예시적인 실시 예의 블록, 유닛 및/또는 모듈은 본 발명의 범위를 벗어나지 않고 물리적으로 더 복잡한 블록, 유닛 및/또는 모듈로 결합될 수 있다.
본 발명의 예시적인 실시 예는 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 둘의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은 예를 들어 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터 또는 당업계에 알려진 임의의 다른 형태의 스토리지 매체와 같은 비일시적 프로그램 저장 장치에 유형적으로 구현될 수 있다. 예시적인 스토리지 매체는 프로세서가 스토리지 매체로부터 정보를 읽고 정보를 기록할 수 있도록 프로세서에 연결될 수 있다. 대안적으로, 스토리지 매체는 프로세서에 통합될 수 있다. 또한, 일부 측면에서, 프로세서 및 스토리지 매체는 주문형 집적 회로(ASIC)에 상주할 수 있다.
GLDPC 코드, DLC (또는 MLC) 메모리 셀, 및 동일한 워드라인을 공유하는 두 개의 인접 페이지에 본 발명의 적어도 하나의 실시 예가 적용될 때, 한 페이지는 절반의 에너지로 디코딩될 수 있으며 전체 절전은 최소 23%에 도달할 수 있다. GLDPC 코드, TLC 메모리 셀, 및 동일한 워드라인을 공유하는 3개의 인접한 페이지에 본 발명의 적어도 하나의 실시 예가 적용될 때, 두 페이지는 절반의 에너지로 디코딩될 수 있으며, 전체 절전은 최소 30%에 도달할 수 있다. 또한, 일부 실시 예에서, 10/11 쓰기는 인접 페이지 부가 정보로 디코딩을 사용하여 감소된 전력으로 수행될 수 있으며, 여기서 SSD 쓰기 작업의 전체 절전은 DLC (또는 MLC) 셀에서 적어도 21%, TLC 셀에서 27%이다. 본 발명의 적어도 하나의 실시 예는 추정된 머신 러닝(ML) 지원 LLR로 HD 디코딩을 제공하기 때문에, 셀당 비트의 수가 증가하고 코드가 더 많은 오류를 허용하도록 설계됨에 따라 더 큰 GLDPC 전력이 절약될 수 있다.
본 발명의 개념이 예시적인 실시 예를 참조하여 구체적으로 도시되고 설명되었지만, 당업자라면 다음의 청구범위에 의해 정의되는 바와 같은 본 발명의 정신 및 범위를 벗어나지 않고 형태 및 세부사항의 다양한 변경이 이루어질 수 있다는 것이 이해될 것이다.
100: 호스트
200: 메모리 시스템
210: 메모리 컨트롤러
220: 메모리 장치
200: 메모리 시스템
210: 메모리 컨트롤러
220: 메모리 장치
Claims (10)
- 각각이 다중 비트를 저장하는 복수의 메모리 셀을 포함하는 메모리 장치; 및
프로세서를 포함하는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는, 제 1 페이지의 제 1 원시 데이터 및 상기 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터를 생성하기 위해 호스트로부터의 읽기 명령에 응답하여 상기 메모리 셀로부터의 출력을 판독하도록 구성되고,
상기 메모리 컨트롤러는, 제 1 디코딩된 데이터를 생성하기 위해 상기 제 1 원시 데이터에 대해 경판정(HD; Hard Decision) 디코딩을 수행하도록 구성되고,
상기 프로세서는, 상기 제 1 디코딩된 데이터 및 상기 제 2 원시 데이터를 머신 러닝 알고리즘에 입력 특징으로 적용하여 신뢰도 정보를 생성하도록 구성되고,
상기 메모리 컨트롤러는, 상기 신뢰도 정보를 사용하여 상기 제 2 원시 데이터에 대해 HD 디코딩을 수행하여 제 2 디코딩된 데이터를 생성하도록 구성되는, 시스템. - 제 1 항에 있어서,
상기 신뢰도 정보는 상기 제 2 원시 데이터의 비트의 적어도 하나의 로그 우도 비율(LLR; Log-Likelihood Ratio)을 포함하는, 시스템. - 제 1 항에 있어서,
상기 머신 러닝 알고리즘은 신경망인, 시스템. - 제 1 항에 있어서,
상기 메모리 셀은 이중 레벨 셀(DLC), 삼중 레벨 셀(TLC), 쿼드 레벨 레벨(QLC) 또는 펜타 레벨 셀(PLC)인, 시스템. - 제 4 항에 있어서,
상기 메모리 컨트롤러는,
상기 메모리 셀이 DLC인 경우, 제 1 및 제 2 인접 레벨에 대한 제 1 기준 비교 및 제 3 및 제 4 인접 레벨에 대한 제 2 기준 비교를 수행하여 상기 제 1 원시 데이터를 생성하고, 상기 제 2 및 제 3 인접 레벨에 대한 제 3 기준 비교를 수행하여 상기 제 2 원시 데이터를 생성하는, 시스템. - 제 1 항에 있어서,
상기 메모리 컨트롤러는, 상기 제 1 디코딩된 데이터 및 상기 제 2 디코딩된 데이터를 상기 호스트로 출력하도록 구성되는, 시스템. - 제 1 항에 있어서,
상기 메모리 컨트롤러는 디폴트 로그 우도 비율(default LLR)을 사용하여 상기 제 1 원시 데이터에 대해 HD 디코딩을 수행하는, 시스템. - 메모리 시스템에 있어서,
복수의 삼중 레벨 메모리 셀(TLC)를 포함하는 메모리 장치; 및
프로세서를 포함하는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는 제 1 페이지의 제 1 원시 데이터, 제 1 페이지에 인접한 제 2 페이지의 제 2 원시 데이터, 및 제 2 페이지에 인접한 제 3 페이지의 제 3 원시 데이터를 생성하기 위해 호스트로부터의 판독 명령에 응답하여 상기 메모리 셀로부터의 출력을 판독하도록 구성되고,
상기 메모리 컨트롤러는, 제 1 디코딩된 데이터를 생성하기 위해 상기 제 1 원시 데이터에 대해 제 1 디코딩을 수행하도록 더욱 구성되고,
상기 프로세서는, 제 1 신뢰도 정보를 생성하기 위해 입력 특징으로서 상기 제 1 디코딩된 데이터 및 상기 제 2 원시 데이터를 제 1 머신 러닝 알고리즘에 적용하도록 구성되고,
상기 메모리 컨트롤러는, 제 2 디코딩된 데이터를 생성하기 위해 상기 제 1 신뢰도 정보를 사용하여 상기 제 2 원시 데이터에 대해 제 2 디코딩을 수행하도록 더 구성되고,
상기 프로세서는, 상기 제 3 원시 데이터를 디코딩하는 데 사용할 제 2 신뢰도 정보를 생성하기 위해 상기 제 1 디코딩된 데이터, 상기 제 2 디코딩된 데이터, 및 상기 제 3 원시 데이터를 제 2 머신 러닝 알고리즘에 입력 특징으로 적용하도록 구성되는, 시스템. - 제 8 항에 있어서,
상기 제 1 및 제 2 디코딩은 경판정(HD) 디코딩을 사용하여 수행되는, 시스템. - 제 8 항에 있어서,
상기 메모리 셀은 데이터를 제 1 내지 제 8 레벨 중 하나에 저장하고,
상기 메모리 컨트롤러는, 제 2 및 제 3 인접 레벨에 대한 상기 출력의 제 1 기준 비교를 수행하고, 제 4 및 제 5 인접 레벨에 대한 상기 출력의 제 2 기준 비교를 수행하고, 제 6 및 제 7 인접 레벨에 대한 상기 출력의 제 3 기준 비교를 수행하여 상기 제 1 원시 데이터를 생성하는, 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/720,941 US11791840B1 (en) | 2022-04-14 | 2022-04-14 | Hard decision decoding of non-volatile memory using machine learning |
US17/720,941 | 2022-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230147525A true KR20230147525A (ko) | 2023-10-23 |
Family
ID=88307232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230042285A KR20230147525A (ko) | 2022-04-14 | 2023-03-30 | 머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11791840B1 (ko) |
KR (1) | KR20230147525A (ko) |
CN (1) | CN116913356A (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10573390B1 (en) | 2018-11-30 | 2020-02-25 | Samsung Electronics Co., Ltd. | High-density storage system |
US11221769B2 (en) | 2019-09-27 | 2022-01-11 | Samsung Electronics Co., Ltd. | Performing noise cancellation on a memory device using a neural network |
US11742879B2 (en) | 2019-03-13 | 2023-08-29 | Samsung Electronics Co., Ltd. | Machine-learning error-correcting code controller |
US11205498B1 (en) | 2020-07-08 | 2021-12-21 | Samsung Electronics Co., Ltd. | Error detection and correction using machine learning |
-
2022
- 2022-04-14 US US17/720,941 patent/US11791840B1/en active Active
-
2023
- 2023-03-30 KR KR1020230042285A patent/KR20230147525A/ko unknown
- 2023-04-13 CN CN202310396144.2A patent/CN116913356A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116913356A (zh) | 2023-10-20 |
US11791840B1 (en) | 2023-10-17 |
US20230336188A1 (en) | 2023-10-19 |
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 | |
US11221769B2 (en) | Performing noise cancellation on a memory device using a neural network | |
US10706944B2 (en) | Memory controller for controlling memory device based on erase state information and method of operating the memory controller | |
US9514830B2 (en) | Non-volatile memory device, memory system including the same, and method of operating the same | |
KR20140031556A (ko) | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 | |
KR20130125426A (ko) | 비휘발성 메모리 장치의 프로그래밍 방법 | |
JP2023025687A (ja) | メモリ装置およびその動作方法 | |
KR101435889B1 (ko) | 공통 소스 라인 전압을 제어하는 플래시 메모리 장치,그것의 프로그램 검증 방법, 그리고 그것을 포함하는메모리 시스템 | |
CN106959821B (zh) | 数据存储装置及其操作方法 | |
US12105961B2 (en) | Copyback clear command for performing a scan and read in a memory device | |
US11664079B2 (en) | Intervallic dynamic start voltage and program verify sampling in a memory sub-system | |
US11817170B2 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
KR20240033792A (ko) | 읽기 정보 및 디코딩 정보에 기초하여 연판정 디코딩을 위한 읽기 레벨을 생성하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법 | |
KR20230147525A (ko) | 머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩 | |
KR20220127168A (ko) | 다중 임계값-전문가 기계 학습 모델을 사용한 노이즈 제거 | |
CN111798903B (zh) | 存储器系统、存储器装置和存储器控制器 | |
KR20230090598A (ko) | 히스토리 데이터를 사용하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
US11573715B2 (en) | Memory cell level assignment using optimal level permutations in a non-volatile memory | |
CN111798913A (zh) | 存储器系统、存储器控制器及其操作方法 | |
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 | |
US11756612B2 (en) | All levels dynamic start voltage programming of a memory device in a memory sub-system | |
US20230031193A1 (en) | Memory system and operating method thereof | |
KR20220140052A (ko) | 히스토리 테이블을 사용하는 스토리지 컨트롤러의 동작 방법, 및 스토리지 컨트롤러를 포함하는 스토리지 장치 | |
JP2023076806A (ja) | 半導体装置内の信号干渉を減らすための装置及び方法 |