KR20220086733A - 메모리 컨트롤러, 메모리 장치, 및 저장 장치 - Google Patents
메모리 컨트롤러, 메모리 장치, 및 저장 장치 Download PDFInfo
- Publication number
- KR20220086733A KR20220086733A KR1020200176129A KR20200176129A KR20220086733A KR 20220086733 A KR20220086733 A KR 20220086733A KR 1020200176129 A KR1020200176129 A KR 1020200176129A KR 20200176129 A KR20200176129 A KR 20200176129A KR 20220086733 A KR20220086733 A KR 20220086733A
- Authority
- KR
- South Korea
- Prior art keywords
- read
- memory device
- memory
- voltage
- data
- Prior art date
Links
- 238000001514 detection method Methods 0.000 claims abstract description 97
- 238000010801 machine learning Methods 0.000 claims abstract description 76
- 238000012937 correction Methods 0.000 claims abstract description 54
- 238000009826 distribution Methods 0.000 claims abstract description 28
- 230000003068 static effect Effects 0.000 claims description 71
- 239000000872 buffer Substances 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 21
- 230000006866 deterioration Effects 0.000 claims description 12
- 238000005457 optimization Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 14
- 229910052751 metal Inorganic materials 0.000 description 68
- 239000002184 metal Substances 0.000 description 68
- 239000010410 layer Substances 0.000 description 55
- 238000010586 diagram Methods 0.000 description 35
- 239000000758 substrate Substances 0.000 description 23
- 230000002093 peripheral effect Effects 0.000 description 20
- 150000002739 metals Chemical class 0.000 description 13
- 238000012549 training Methods 0.000 description 8
- 101000617708 Homo sapiens Pregnancy-specific beta-1-glycoprotein 1 Proteins 0.000 description 6
- 102100022024 Pregnancy-specific beta-1-glycoprotein 1 Human genes 0.000 description 6
- 239000010949 copper Substances 0.000 description 6
- 101100449814 Arabidopsis thaliana GTL1 gene Proteins 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- 229910052782 aluminium Inorganic materials 0.000 description 3
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 3
- 229910052721 tungsten Inorganic materials 0.000 description 3
- 239000010937 tungsten Substances 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 101150062870 ssl3 gene Proteins 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011810 insulating material Substances 0.000 description 1
- PRFXRIUZNKLRHM-UHFFFAOYSA-N l-prostaglandin B2 Natural products CCCCCC(O)C=CC1=C(CC=CCCCC(O)=O)C(=O)CC1 PRFXRIUZNKLRHM-UHFFFAOYSA-N 0.000 description 1
- 150000002736 metal compounds Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- -1 polysilicon Chemical class 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- PRFXRIUZNKLRHM-HKVRTXJWSA-N prostaglandin B2 Chemical compound CCCCC[C@H](O)\C=C\C1=C(C\C=C/CCCC(O)=O)C(=O)CC1 PRFXRIUZNKLRHM-HKVRTXJWSA-N 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1476—Error detection or correction of the data by redundancy in operation in neural networks
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- 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/12005—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
-
- 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/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- 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/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- 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/08—Learning methods
-
- 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
- G11C2029/0411—Online error correction
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Read Only Memory (AREA)
Abstract
본 발명의 일 실시예에 따른 메모리 컨트롤러는, 읽기 동작을 실행한 메모리 장치로부터 수신한 읽기 데이터의 에러를 정정하는 데에 실패하는 경우, 메모리 장치가 메모리 셀들의 문턱 전압 산포로부터 셀 카운트 정보를 판단하고, 셀 카운트 정보에 기초하여 검출 케이스를 판단할 수 있다. 메모리 컨트롤러는, 검출 케이스에 대응하는 읽기 전압의 오프셋 전압을 고려하여 결정한 디벨롭 시간을 이용하여 읽기 동작을 실행하도록 메모리 장치를 제어할 수 있다. 읽기 데이터의 에러를 정정하는 데에 다시 실패하면, 메모리 컨트롤러는 셀 카운트 정보를 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압을 이용하여 생성한 수정 읽기 전압으로 읽기 동작을 진행하도록, 메모리 장치를 제어할 수 있다.
Description
본 발명은 메모리 컨트롤러, 메모리 장치, 및 저장 장치에 관한 것이다.
메모리 장치는 데이터를 기록하고 지우거나, 기록된 데이터를 읽어올 수 있는 기능을 제공할 수 있다. 메모리 장치는 메모리 컨트롤러가 전송하는 제어 신호들에 응답하여 프로그램 동작, 소거 동작, 읽기 동작 등을 실행하며, 읽기 동작에서 메모리 장치가 획득하는 데이터는 메모리 컨트롤러로 출력될 수 있다. 메모리 컨트롤러는, 읽기 동작의 결과로서 획득한 데이터의 에러를 정정할 수 있으며, 에러를 정정하는 데에 실패할 경우, 메모리 장치에 추가적인 읽기 동작을 지시할 수 있다.
본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 읽기 동작에 소요되는 시간 증가를 최소화하면서, 읽기 동작의 신뢰성을 확보할 수 있는 메모리 컨트롤러, 메모리 장치, 및 저장 장치를 제공하고자 하는 데에 있다.
본 발명의 일 실시예에 따른 메모리 컨트롤러는, 적어도 하나의 메모리 장치에 제어 신호들을 제공하는 제어 핀들, 상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들, 읽기 전압에 대한 정적 오프셋 전압이 기록된 테이블 및 상기 메모리 장치에 포함되는 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트 정보를 입력받아 상기 읽기 전압에 대한 동적 오프셋 전압을 출력하는 기계 학습 모델을 저장하는 버퍼 메모리, 상기 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 에러 정정 회로, 및 상기 에러 정정 회로가 읽기 데이터의 에러를 정정하는 데에 실패하면, 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하는 최적화 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 프로세서를 포함하며, 상기 프로세서는, 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러를 상기 에러 정정 회로가 정정하는 데에 실패하면, 상기 최적화 읽기 동작 동안 생성되는 상기 셀 카운트 정보를 이용하여 상기 동적 오프셋 전압을 획득하고, 상기 동적 오프셋 전압이 반영된 수정 읽기 전압을 상기 메모리 장치에 전송한다.
본 발명의 일 실시예에 따른 저장 장치는, 적어도 하나의 메모리 장치, 및 상기 메모리 장치에 CLE(command latch enable) 신호, ALE(address latch enable) 신호, CE(chip enable) 신호, WE(write enable) 신호, RE(read enable) 신호, DQS 신호 중 적어도 하나를 제공하는 제어 핀들, 및 상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들을 통해 상기 메모리 장치와 연결되고, 읽기 전압의 정적 오프셋 전압을 저장하는 테이블 및 동적 오프셋 전압을 결정하는 기계 학습 모델을 저장하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는, 제1 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제1 읽기 데이터의 에러가 정정되지 않으면, 상기 메모리 장치가 온-칩 밸리 서치 동작을 포함하는 제2 읽기 동작을 실행하도록 제어하며, 상기 제2 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제2 읽기 데이터의 에러가 정정되지 않으면, 상기 온-칩 밸리 서치 동작으로 생성된 검출 정보 중 적어도 일부를 상기 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압을 반영한 수정 읽기 전압을 상기 메모리 장치에 전송한다.
본 발명의 일 실시예에 따른 메모리 장치는, 메모리 컨트롤러로부터 제어 신호들을 수신하는 복수의 제어 핀들 및 상기 메모리 컨트롤러와 데이터 신호를 송수신하는 복수의 데이터 핀들을 포함하며, 상기 메모리 컨트롤러로부터 제1 읽기 커맨드 및 제2 읽기 커맨드를 수신하는 입출력 인터페이스, 복수의 메모리 셀들을 갖는 메모리 셀 어레이, 및 상기 제1 읽기 커맨드 및 상기 제2 읽기 커맨드에 응답하여, 상기 메모리 셀들 중 선택 메모리 셀들로부터 획득한 읽기 데이터를 상기 메모리 컨트롤러로 출력하는 로직 회로를 포함하며, 상기 제2 읽기 커맨드를 수신하면, 상기 로직 회로는 상기 메모리 셀들이 갖는 복수의 상태들의 문턱 전압 산포를 나타내는 셀 카운트 정보 및 상기 셀 카운트 정보에 기초하여 판단한 검출 케이스를 상기 메모리 컨트롤러로 출력하며, 상기 셀 카운트 정보를 출력한 이후 상기 메모리 컨트롤러로부터 상기 선택 메모리 셀들에 대한 상기 제1 읽기 커맨드를 재수신하면, 재수신한 상기 제1 읽기 커맨드에 포함된 읽기 전압으로 상기 읽기 동작을 실행하고 상기 읽기 데이터를 상기 메모리 컨트롤러로 출력한다.
본 발명의 일 실시예에 따른 메모리 장치의 제어 방법은, 디폴트 레벨을 갖는 읽기 전압을 포함하는 제1 읽기 커맨드를 메모리 장치에 전송하는 단계, 온-칩 밸리 서치 동작을 실행하여 셀 카운트 정보를 생성하고 상기 셀 카운트 정보에 기초하여 검출 케이스를 판단하며, 상기 검출 케이스에 따라 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 제2 읽기 커맨드를 상기 메모리 장치에 전송하는 단계, 및 상기 제2 읽기 커맨드에 응답하여 상기 메모리 장치로부터 수신한 읽기 데이터의 에러를 정정하는 데에 실패하면, 상기 셀 카운트 정보를 미리 학습된 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압이 반영된 수정 읽기 전압을 포함하는 상기 제1 읽기 커맨드를 상기 메모리 장치에 전송하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 메모리 컨트롤러는 서로 다른 제1 읽기 커맨드와 제2 읽기 커맨드를 메모리 장치에 전송할 수 있다. 제1 읽기 커맨드로 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 데에 실패하면, 제2 읽기 커맨드가 메모리 장치에 전송될 수 있다. 제2 읽기 커맨드로 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 데에 실패하면, 제2 읽기 커맨드의 결과로 획득한 정보를 기계 학습 모델에 입력하여 획득한 오프셋 전압을 이용하여 읽기 전압의 레벨을 조정하고, 다시 제1 읽기 커맨드를 메모리 장치에 전송할 수 있다. 따라서, 읽기 동작의 신뢰성을 확보함과 동시에, 읽기 동작에 소요되는 시간 증가를 최소화하여 메모리 장치와 저장 장치의 성능을 최적화할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 메모리 컨트롤러와 메모리 장치를 포함하는 저장 장치를 간단하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함되는 메모리 셀 어레이를 간단하게 나타낸 회로도이다.
도 4는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 비교예를 나타낸 흐름도이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 흐름도들이다.
도 7은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 10 및 도 11은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
도 14a 내지 도 14c, 및 도 15a 내지 도 15c는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면들이다.
도 16은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면이다.
도 17은 본 발명의 일 실시예에 따른 메모리 컨트롤러에 포함되는 기계 학습 모델을 설명하기 위한 도면이다.
도 18 및 도 19는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 20a 및 도 20b는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 21은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 22 내지 도 25는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 26은 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함되는 메모리 셀 어레이를 간단하게 나타낸 회로도이다.
도 4는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 비교예를 나타낸 흐름도이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 흐름도들이다.
도 7은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 10 및 도 11은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
도 14a 내지 도 14c, 및 도 15a 내지 도 15c는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면들이다.
도 16은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면이다.
도 17은 본 발명의 일 실시예에 따른 메모리 컨트롤러에 포함되는 기계 학습 모델을 설명하기 위한 도면이다.
도 18 및 도 19는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 20a 및 도 20b는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 21은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 22 내지 도 25는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 26은 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.
도 1은 본 발명의 일 실시예에 따른 메모리 컨트롤러와 메모리 장치를 포함하는 저장 장치를 간단하게 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(1)는 적어도 하나의 메모리 장치(10) 및 메모리 컨트롤러(20) 등을 포함할 수 있다. 메모리 장치(10)는 데이터를 저장하도록 구현될 수 있다. 메모리 장치(10)는 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리, 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory; RRAM), 상변화 메모리(phase-change memory; PRAM), 자기저항 메모리(magnetoresistive random access memory; MRAM), 강유전체 메모리(ferroelectric random access memory; FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory; STT-RAM) 등을 포함할 수 있다. 또한, 메모리 장치(10)는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다.
메모리 장치(10)는 메모리 셀 어레이(11)와 로직 회로(12) 및 메모리 인터페이스(14) 등을 포함할 수 있다. 메모리 셀 어레이(11)는 복수의 메모리 블록들(BLK1-BLKz)을 포함할 수 있다. 복수의 메모리 블록들(BLK1-BLKz) 각각은 복수의 페이지들(PAGE1-PAGEn)을 포함할 수 있으며, 복수의 페이지들(PAGE1-PAGEn) 각각에 복수의 메모리 셀들이 포함될 수 있다. 복수의 메모리 셀들 각각은 하나 이상의 비트를 저장하며, 일례로 2비트 이상의 데이터가 하나의 메모리 셀에 저장될 수도 있다.
로직 회로(12)는 메모리 인터페이스(14)를 통해 메모리 컨트롤러(20)로부터 수신한 제어 신호들에 응답하여 메모리 셀 어레이(11)를 제어할 수 있다. 일례로, 로직 회로(12)는 칩 인에이블 신호(nCE)가 인에이블 상태일 때 메모리 컨트롤러(20)와 제어 신호들을 주고받을 수 있다. 로직 회로(12)는 커맨드 래치 인에이블 신호(CLE), 및 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간 동안, 데이터 신호(DQ)에 포함되는 커맨드 신호 및 어드레스 신호를 획득할 수 있다. 일례로, 로직 회로(12)는 읽기 인에이블 신호(nRE)와 쓰기 인에이블 신호(nWE)의 토글 타이밍에 데이터 신호(DQ)로부터 커맨드 신호 및/또는 어드레스 신호를 획득할 수 있다. 로직 회로(12)는 커맨드 신호 및 어드레스 신호를 참조하여 읽기 동작, 프로그램 동작, 소거 동작 등을 실행할 수 있다.
로직 회로(12)는 데이터 스트로브 신호(DQS)에 동기화되어 데이터 신호(DQ)로 읽기 데이터를 출력하거나, 또는 데이터 스트로브 신호(DQS)에 동기화되어 데이터 신호(DQ)에 포함된 쓰기 데이터를 획득할 수 있다. 예시로서, 읽기 데이터를 출력하기 전에 로직 회로(12), 또는 메모리 인터페이스(14)가 읽기 인에이블 신호(nRE)를 참조하여 데이터 스트로브 신호(DQS)를 생성할 수 있다. 메모리 인트페이스(14)는 데이터 스트로브 신호(DQS)에 동기화된 데이터 신호(DQ)를 통해 읽기 데이터를 출력할 수 있다. 또한 로직 회로는 레디/비지 신호(nR/B)를 이용하여 메모리 장치(10)의 상태를 메모리 컨트롤러(20)에 전송할 수 있다.
또한, 로직 회로(12)은 OVS 회로(13)를 포함할 수 있다. OVS 회로(13)는 온-칩 밸리 서치(on-chip valley search: OVS) 동작을 수행하는 회로일 수 있다. 온-칩 밸리 서치 동작은, 셀 카운트 기반으로 검출 케이스를 판단하는 제1 센싱 동작과, 제1 센싱 동작에서 판단한 검출 케이스에 따라 디벨롭 시간 및/또는 읽기 전압의 레벨을 변경하여 선택 메모리 셀들로부터 데이터를 읽어오는 제2 센싱 동작을 포함할 수 있다. 온-칩 밸리 서치 동작에 대한 자세한 설명은, 본 발명의 참고문헌으로 결합된 KR 10-2019-0025359, US 2020-0098436, US 10,090,046, US 10,559,362, US 10,607,708, US 10,629,259 등을 참조하여 이해될 수 있을 것이다.
메모리 컨트롤러(20)는 프로세서(21), 에러 정정 회로(22), 버퍼 메모리(23) 및 컨트롤러 인터페이스(26) 등을 포함할 수 있다. 프로세서(21)는 메모리 컨트롤러(20)의 동작 전반을 제어하며, 메모리 장치(10)를 제어하기 위한 커맨드 신호 및 어드레스 신호 등을 생성할 수 있다. 컨트롤러 인터페이스(26)는 메모리 인터페이스(14)와 제어 핀들 및 데이터 핀들을 통해 연결될 수 있다. 제어 핀들을 통해 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 데이터 스트로브 신호(DQS), 칩 인에이블 신호(nCE), 읽기 인에이블 신호(nRE), 쓰기 인에이블 신호(nWE), 및 레디/비지 신호(nR/B) 등의 제어 신호가 전송될 수 있으며, 데이터 핀들을 통해 데이터 신호(DQ)가 전송될 수 있다.
에러 정정 회로(22)는, 프로그램 동작에서 에러 정정 코드(error correction code)를 생성하고, 읽기 동작에서 에러 정정 코드를 이용하여 메모리 장치(10)로부터 수신한 읽기 데이터의 에러를 정정할 수 있다. 에러 정정 회로(22)는 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러를 정정할 수 있다.
버퍼 메모리(23)는 테이블(24)과 기계 학습 모델(25)을 저장할 수 있다. 일례로 테이블(24)은 제1 내지 제3 테이블들을 포함할 수 있으며, 제1 테이블은 제1 정적 오프셋 전압을 기록한 테이블일 수 있다. 제1 정적 오프셋 전압은, 프로그램 동작 이후 경과 시간을 포함하는 다양한 열화 정보, 예를 들어 동작 온도, 프로그램/소거 사이클, 읽기 사이클, 오픈 워드라인 케이스 등으로 분류되어 제1 테이블에 기록될 수 있다.
제2 테이블은 메모리 장치(10)가 OVS 동작을 실행하여 판단하는 검출 케이스와 제2 정적 오프셋 전압을 매칭시켜 기록한 테이블일 수 있다. 메모리 컨트롤러(20)가 메모리 장치(10)로부터 OVS 동작의 결과인 검출 케이스를 수신하는 경우, 프로세서(21)는 수신한 검출 케이스와 제2 테이블을 참조하여 제2 정적 오프셋 전압을 결정할 수 있다.
제3 테이블은 히스토리 읽기 동작에 관련된 제3 정적 오프셋 전압이 기록된 테이블일 수 있다. 일 실시예에서, 제3 정적 오프셋 전압은 제1 정적 오프셋 전압과 제2 정적 오프셋 전압에 의해 결정될 수 있다. 제3 정적 오프셋 전압은 히스토리 읽기 동작을 위한 읽기 전압의 최적 레벨(optimal read level) 정보를 포함할 수 있다. 한편, 히스토리 읽기 동작에 대한 자세한 것은, 본 발명의 참고문헌으로 결합된 US 10,120,589, 및 US 10,373,693 등을 참조하여 이해될 수 있을 것이다.
읽기 동작의 결과로서 메모리 장치(10)로부터 획득한 읽기 데이터의 에러가 에러 정정 회로(22)에서 정정되지 않을 경우, 메모리 컨트롤러(20)는 메모리 장치(10)에 읽기 동작을 다시 지시할 수 있다. 이때, 메모리 컨트롤러(20)가 메모리 장치(10)에 지시하는 읽기 동작은, 메모리 장치(10)가 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하여 출력하는 최적화 읽기 동작일 수 있다. 최적화 읽기 동작에서 조절되는 읽기 동작의 동작 조건은 디벨롭 시간 또는 읽기 전압의 레벨일 수 있다. 일례로, 최적화 읽기 동작은 메모리 장치(10)가 셀 카운트 정보를 획득하고 셀 카운트 정보 기반으로 검출 케이스를 판단하는 제1 센싱 동작 및 제1 센싱 동작에서 판단한 검출 케이스에 따라 읽기 동작을 실행하고 읽기 데이터를 생성하는 제2 센싱 동작을 포함하는 OVS 읽기 동작일 수 있다.
메모리 컨트롤러(20)는, 제2 센싱 동작으로 생성되는 읽기 데이터와 함께, 제1 센싱 동작에서 생성되는 셀 카운트 정보 및 셀 카운트 정보에 따라 판단된 검출 케이스를 검출 정보로서 수신할 수 있다. 실시예에 따라, 검출 정보는 검출 케이스에 대응하는 디벨롭 시간 정보를 포함할 수도 있다. 셀 카운트 정보는 읽기 전압의 레벨 및/또는 디벨롭 시간에 따라 턴-온 또는 턴-오프되는 메모리 셀들의 개수를 포함할 수 있다. 제2 센싱 동작으로 생성되는 읽기 데이터의 에러가 에러 정정 회로(22)에서 정정되면, 프로세서(21)는 검출 케이스와 제2 테이블을 참조하여, 제3 테이블에 기록된 제3 정적 오프셋 전압을 업데이트할 수 있다.
반면, 제2 센싱 동작으로 생성되는 읽기 데이터의 에러가 에러 정정 회로(22)에서 정정되지 않으면, 프로세서(21)는 셀 카운트 정보를 기계 학습 모델(25)에 입력할 수 있다. 기계 학습 모델(25)은, 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트 정보 등을 입력받아 최적화된 동적 오프셋 전압을 출력하도록 학습된 모델일 수 있다. 프로세서(21)는 동적 오프셋 전압을 이용하여 읽기 전압을 수정하고, 수정된 읽기 전압으로 읽기 동작을 다시 실행할 것을 메모리 장치(10)에 지시할 수 있다.
본 발명의 일 실시예에서는, 일반적인 읽기 동작으로 획득한 읽기 데이터의 에러가 정정되지 않는 경우, 메모리 컨트롤러(20)는 메모리 장치(10)가 읽기 동작의 동작 조건을 조절하여 읽기 데이터를 획득하는 최적화 읽기 동작을 실행하도록 제어할 수 있다. 최적화 읽기 동작으로 획득한 읽기 데이터의 에러 역시 정정되지 않으면, 메모리 컨트롤러(20)는 최적화 읽기 동작의 결과로서 수신한 검출 정보에 포함된 셀 카운트 정보를 기계 학습 모델(25)에 입력하여 동적 오프셋 전압을 획득할 수 있다. 메모리 컨트롤러(20)는 동적 오프셋 전압을 반영하여 생성되는 수정 읽기 전압으로 읽기 동작을 실행하도록, 메모리 장치(10)를 제어할 수 있다.
본 발명의 일 실시예에서는, 최적화 읽기 동작으로 읽기 데이터의 에러가 정정되지 않는 경우에 기계 학습 모델(25)을 이용할 수 있다. 따라서 읽기 동작의 신뢰성을 높일 수 있다. 또한 최적화 동작에서 생성되는 셀 카운트 정보를 이용하여 기계 학습 모델(25)이 동적 오프셋 전압을 생성하므로, 동적 오프셋 전압을 생성하기 위해 메모리 셀들의 문턱 전압 산포를 나타내는 정보를 별도로 수집할 필요가 없으므로, 읽기 동작에 소요되는 시간의 증가를 최소화하고 읽기 동작의 레이턴시를 개선할 수 있다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 2를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(120), 페이지 버퍼부(130), 입출력 버퍼(140), 컨트롤 로직(150), 전압 생성기(160), 및 셀 카운터(170) 등을 포함할 수 있다.
메모리 셀 어레이(110)는 워드라인들(WL) 혹은 선택 라인들(SSL, GSL)을 통해 로우 디코더(120)에 연결될 수 있다. 메모리 셀 어레이(110)는 비트라인들(BL)을 통해서 페이지 버퍼부(130)에 연결될 수 있다. 메모리 셀 어레이(110)는 복수의 셀 스트링들을 포함할 수 있다. 셀 스트링들의 각각의 채널은 수직 혹은 수평 방향으로 형성되며, 셀 스트링들의 각각은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(110)에서 셀 스트링들은, 복수의 메모리 블록들(BLK1-BLKz)로 구분될 수 있다.
로우 디코더(120)는 어드레스(ADDR)에 응답하여 메모리 셀 어레이(110)의 메모리 셀들 중 적어도 하나를 선택할 수 있다. 로우 디코더(120)는 어드레스(ADDR)에 응답하여 워드라인들(WL) 중 적어도 하나를 선택할 수 있다. 로우 디코더(120)는 워드라인들(WL) 중 선택 워드라인에 프로그램 동작, 읽기 동작, 소거 동작 등을 실행하기 위한 바이어스 전압을 전달할 수 있다. 프로그램 동작시 로우 디코더(120)는 선택 워드라인에 프로그램 전압과 검증 전압을 인가하고, 비선택 워드라인들에 패스 전압을 인가할 수 있다. 읽기 동작시 로우 디코더(120)는 선택 워드라인에 읽기 전압을 인가하고, 비선택 워드라인들에 읽기 패스 전압을 인가할 수 있다.
페이지 버퍼부(130)는 쓰기 드라이버 또는 감지 증폭기로 동작할 수 있다. 프로그램 동작시, 페이지 버퍼 회로(130)는 메모리 셀 어레이(110)의 비트라인들(BL) 중 선택 비트라인에, 프로그램하고자 하는 데이터에 대응하는 비트라인 전압을 인가할 수 있다. 읽기 동작 혹은 검증 동작시, 페이지 버퍼부(130)는 선택된 메모리 셀에 저장된 데이터를 선택 비트라인을 통해서 감지할 수 있다. 페이지 버퍼부(130)에 포함되는 복수의 페이지 버퍼들(PB1-PBn) 각각은 적어도 하나의 비트라인에 연결될 수 있다.
복수의 페이지 버퍼들(PB1-PBn)의 각각은, OVS 동작을 수행하도록 구현될 수 있다. 메모리 셀들 각각은, 기록된 데이터에 따라 복수의 상태들 중 하나를 가질 수 있으며, 복수의 상태들은 메모리 셀들 각각의 문턱 전압에 따라 정의되는 상태들일 수 있다. 복수의 페이지 버퍼들(PB1-PBn)의 각각은 컨트롤 로직(150)의 제어에 따라 선택 메모리 셀들의 상태를 식별하기 위해 복수의 센싱 동작을 수행할 수 있다. 또한, 복수의 페이지 버퍼들(PB1-PBn)의 각각은 복수의 센싱 동작을 통해서 센싱된 데이터를 각각 저장한 후에, 컨트롤 로직(150)의 제어 아래에서 어느 하나의 데이터를 선택할 수 있다. 다시 말해, 복수의 페이지 버퍼들(PB1-PBn) 각각은 복수 회의 센싱을 수행할 수 있다. 또한, 복수의 페이지 버퍼들(PB1-PBn)의 각각은 컨트롤 로직(150)의 제어에 따라 센싱된 복수의 데이터 중에서 최적의 데이터를 선택 혹은 출력할 수 있다.
입출력 버퍼(140)는 외부에서 제공되는 데이터를 페이지 버퍼부(130)로 제공할 수 있다. 또한 입출력 버퍼(140)는 외부에서 제공되는 커맨드(CMD)를 제어 로직(150)에 제공할 수 있다. 입출력 버퍼(140)는 외부에서 제공된 어드레스(ADDR)를 컨트롤 로직(150) 및/또는 로우 디코더(120)에 제공할 수 있다. 더불어, 입출력 버퍼(140)는 페이지 버퍼부(130)에 의해서 센싱 및 래치된 데이터를 외부로 출력할 수 있다.
컨트롤 로직(150)은 외부로부터 전달되는 커맨드(CMD)에 응답하여 로우 디코더(120), 페이지 버퍼부(130), 전압 생성기(160) 등을 제어할 수 있다. 또한, 컨트롤 로직(150)은 OVS 동작을 수행하는 OVS 회로(155)를 포함할 수 있다. OVS 회로(155)는 OVS 동작을 위해 페이지 버퍼부(130)와 전압 생성기(160)를 제어할 수 있다. OVS 회로(155)는 선택 메모리 셀들의 특정 상태를 식별하기 위해 복수 회의 센싱 동작을 수행하도록 페이지 버퍼부(130)를 제어할 수 있다. 또한, OVS 회로(155)는 복수의 센싱 결과들의 각각에 대응하는 센싱 데이터를 복수의 페이지 버퍼들(PB1-PBn) 각각에 구비된 복수의 래치 세트들에 저장할 수 있다.
또한, OVS 회로(155)는 OVS 동작으로 생성되는 검출 정보를 저장할 수 있다. 검출 정보는 OVS 동작에서 생성되는 셀 카운트 정보(nC) 및 셀 카운트 정보(nC)에 기초하여 판단한 검출 케이스 등을 포함할 수 있다. OVS 회로(155)는 검출 정보를 외부의 메모리 컨트롤러로 출력할 수 있다. 실시예에 따라, 검출 정보는, UIB out을 이용하여 출력되거나, 메모리 컨트롤러가 전송하는 특수 커맨드, 예를 들어 겟 피쳐(get feature) 커맨드, 스테이터스 리드(status read) 커맨드에 응답하여 출력될 수 있다. 검출 정보는 메모리 컨트롤러에 저장되어 읽기 전압의 레벨을 결정하는 테이블을 업데이트하는 데에 이용될 수 있다.
셀 카운터(170)는 페이지 버퍼부(130)에 센싱된 데이터로부터 특정 범위의 문턱 전압을 갖는 메모리 셀들을 카운트하도록 구현될 수 있다. 일례로, 셀 카운터(170)는 복수의 페이지 버퍼들(PB1-PBn) 각각에 센싱된 데이터를 처리함으로써, 특정 범위의 문턱 전압을 갖는 메모리 셀들의 수를 카운트할 수 있다. 일 실시예에서, 셀 카운터(170)가 출력하는 셀 카운트 정보(nC)는, 메모리 컨트롤러가 기계 학습 모델로부터 동적 오프셋 전압을 획득하기 위한 입력 데이터로 이용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함되는 메모리 셀 어레이를 간단하게 나타낸 회로도이다.
도 3은 본 발명의 일 실시예에 따른 메모리 시스템의 메모리 장치에 적용될 수 있는 3D V-NAND 구조에 대해 설명하기 위한 도면이다. 메모리 장치가 3D V-NAND 타입의 플래시 메모리로 구현될 경우, 메모리 셀 어레이에 포함되는 복수의 메모리 블록들 각각은 도 3에 도시된 바와 같은 등가 회로로 표현될 수 있다.
도 3에 도시된 메모리 블록(BLKi)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 기판과 수직한 방향으로 형성될 수 있다.
도 3을 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 도 8에는 복수의 메모리 낸드 스트링들(NS11~NS33) 각각이 8개의 메모리 셀들(MC1, MC2, ..., MC8)을 포함하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.
스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 게이트 라인(GTL1, GTL2, ..., GTL8)에 연결될 수 있다. 게이트 라인(GTL1, GTL2, ..., GTL8)은 워드 라인들에 해당할 수 있으며, 게이트 라인(GTL1, GTL2, ..., GTL8)의 일부는 더미 워드 라인에 해당할 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.
동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다. 도 31에는 메모리 블록(BLK)이 여덟 개의 게이트 라인(GTL1, GTL2, ..., GTL8) 및 세 개의 비트 라인들(BL1, BL2, BL3)에 연결되는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.
도 4는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 비교예를 나타낸 흐름도이다.
도 4를 참조하면, 비교예에서 저장 장치에 포함되는 메모리 컨트롤러는, 디폴트 레벨의 읽기 전압으로 읽기 동작을 실행하도록 메모리 장치를 제어할 수 있다(S10). S10 단계에서, 메모리 컨트롤러는, 미리 결정된 디폴트 레벨을 갖는 읽기 전압을 포함하는 읽기 커맨드를 생성하고, 읽기 커맨드를 메모리 장치에 전송할 수 있다. 메모리 장치는, 읽기 커맨드에 포함된 디폴트 레벨의 읽기 전압을 그대로 이용하여 읽기 동작을 실행할 수 있다.
메모리 장치가 읽기 동작을 완료하고 읽기 데이터를 메모리 컨트롤러로 전송하면, 메모리 컨트롤러는 읽기 데이터의 에러를 정정할 수 있다(S11). 앞서 설명한 바와 같이, 에러 정정 회로가 읽기 데이터의 에러를 정정할 수 있으며, S11 단계에서 에러를 정정하는 데에 성공하거나 또는 에러가 발견되지 않으면, 다른 추가 동작 없이 읽기 동작을 종료할 수 있다.
반면, 에러 정정 회로가 에러를 정정하는 데에 실패하면, 메모리 컨트롤러는 OVS 읽기 커맨드를 생성할 수 있다(S12). OVS 읽기 커맨드를 수신한 메모리 장치는 OVS 읽기 동작을 실행할 수 있다(S13). OVS 읽기 동작에서 메모리 장치는, 앞서 설명한 바와 같이, OVS 회로를 이용하여 메모리 셀들의 문턱 전압 산포에 따른 최적의 검출 케이스를 찾고, 최적의 검출 케이스에 따라 읽기 전압에 반영되어야 하는 오프셋 전압을 고려하여 디벨롭 시간을 조절하는 방식으로 읽기 동작을 실행할 수 있다. OVS 읽기 동작이 완료되면 메모리 장치 내에서 OVS 동작이 비활성화되고(S14), 읽기 동작이 종료될 수 있다.
이와 같이 비교예에서는, 일반적인 읽기 동작에서 생성된 읽기 데이터의 에러를 정정하는 데에 실패하는 경우, 메모리 장치 내에 탑재된 OVS 회로를 이용하여 OVS 읽기 동작을 실행할 수 있다. 따라서, 에러가 정정된 또는 에러 정정 회로가 에러를 정정할 수 있는 읽기 데이터를 빠르게 읽어올 수 있다. 다만, OVS 읽기 동작에서 생성된 읽기 데이터에서도 에러가 정정되지 않을 경우, 읽기 동작에 실패할 수 있다. 또한, OVS 읽기 동작을 이용하여 읽기 동작이 성공한 경우에도, 다음 주소에 대한 읽기 동작이 시작될 때 OVS 동작이 비활성화되므로, 재차 읽기 데이터의 에러 정정에 실패하고 다시 OVS 동작을 실행함으로써 읽기 동작의 레이턴시가 증가하는 문제가 발생할 수 있다.
본 발명의 일 실시예에서는, OVS 읽기 동작으로 정정 가능한 에러를 갖거나 또는 에러가 없는 읽기 데이터를 획득하는 경우, OVS 읽기 동작에서 획득한 최적의 검출 케이스에 대응하는 정적 오프셋 전압을 읽기 전압에 반영할 수 있다. 따라서, 다음 주소에 대한 읽기 동작에서 에러가 발생할 가능성을 낮출 수 있다.
또한, OVS 읽기 동작으로도 읽기 데이터의 에러가 정정되지 않는 경우, OVS 읽기 동작에서 획득한 셀 카운트 정보를 기계 학습 모델에 입력하여 읽기 동작을 위한 동적 오프셋 전압을 생성하고, 동적 오프셋 전압을 반영한 읽기 전압을 이용하여 메모리 장치가 다시 읽기 동작을 실행할 수 있다. 기계 학습 모델의 추론을 위한 별도의 정보 수집 과정 없이 OVS 읽기 동작에서 생성되는 셀 카운트 정보를 그대로 이용하여 동적 오프셋 전압을 생성하므로, 레이턴시 증가를 최소화하면서 읽기 동작의 신뢰성을 개선할 수 있다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 흐름도들이다.
먼저 도 5를 참조하면, 본 발명의 일 실시예에 따른 저장 장치의 동작은, 메모리 컨트롤러가 디폴트 레벨의 읽기 전압으로 읽기 동작을 실행하도록 메모리 장치를 제어하는 것으로 시작될 수 있다(S20). 디폴트 레벨은 미리 정해진 레벨일 수 있으며, 실시예들에 따라 이전의 읽기 동작에 성공한 읽기 전압의 레벨을 참조하여 결정될 수도 있다. 읽기 동작의 결과로 메모리 장치로부터 읽기 데이터를 수신하면, 메모리 컨트롤러의 에러 정정 회로가 읽기 데이터의 에러를 검사 및 정정할 수 있다(S21).
S21 단계에서 에러 정정 회로가 에러를 정정하는 데에 실패하지 않으면, 다시 말해 읽기 데이터에서 에러가 검출되지 않거나 검출된 에러를 정정하는 데에 성공하면, 별도의 추가 동작 없이 읽기 동작을 종료할 수 있다. 반면, S21 단계에서 에러 정정 회로가 에러를 정정하는 데에 실패하면, 메모리 컨트롤러는 OVS 읽기 커맨드를 생성할 수 있다(S22). OVS 읽기 커맨드를 수신한 메모리 장치는, OVS 읽기 동작을 실행하도록 제어될 수 있다(S23). OVS 읽기 동작은, 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트를 수집하고 그에 따른 검출 케이스를 판단하는 제1 센싱 동작과, 제1 센싱 동작에서 판단한 검출 케이스에 따라 디벨롭 시간을 변경하여 읽기 데이터를 생성하는 제2 센싱 동작을 포함할 수 있다.
메모리 컨트롤러는 제2 센싱 동작으로 생성된 읽기 데이터의 에러를 검출 및 정정할 수 있다(S24). 또한 메모리 컨트롤러는, OVS 읽기 동작에서 생성되는 셀 카운트 정보를 수신할 수 있다. S24 단계에서 읽기 데이터의 에러가 정정되지 않으면, 메모리 컨트롤러는 기계 학습 모델을 이용하여 읽기 전압의 레벨을 수정할 수 있다(S25). 기계 학습 모델은 미리 학습된 모델로서, 메모리 장치로부터 수신한 셀 카운트 정보 등을 입력받아 입력 전압을 수정하기 위한 동적 오프셋 전압을 출력할 수 있다. 메모리 컨트롤러는, 기계 학습 모델이 출력한 동적 오프셋 전압을 이용하여 읽기 전압의 레벨을 수정하고(S25), 수정된 레벨의 읽기 전압을 포함하는 읽기 커맨드를 메모리 장치에 전송할 수 있다. 따라서, 메모리 장치가 수정된 레벨의 읽기 전압으로 읽기 동작을 실행할 수 있다(S26).
S26 단계에서 메모리 장치가 실행하는 읽기 동작은 OVS 읽기 동작이 아닌, S20 단계와 같은 일반적인 읽기 동작일 수 있다. 다만, 기계 학습 모델이 출력하는 동적 오프셋 전압에 의해 레벨이 조절된 수정 읽기 전압을 이용하여 메모리 장치가 읽기 동작을 진행하며, 따라서 읽기 데이터의 에러가 치유되거나 또는 에러 정정 회로에 의해 읽기 데이터의 에러가 정정될 수 있다.
다음으로 도 6을 참조하면, 본 발명의 일 실시예에 따른 저장 장치의 동작은, 메모리 컨트롤러가 읽기 요청을 수신하는 것으로 시작될 수 있다(S100). 일례로 저장 장치는, 외부의 호스트로부터 읽기 요청을 수신하고, 그에 응답하여 읽기 커맨드를 생성할 수 있다. 읽기 커맨드를 생성하기 위해, 메모리 컨트롤러는 읽기 전압의 레벨을 결정할 수 있다.
메모리 컨트롤러는 읽기 전압의 레벨을 결정하기 위해, 호스트로부터 수신한 읽기 요청에 대한 히스토리를 파악할 수 있다(S101). 일례로 메모리 컨트롤러는, 호스트로부터 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리 등에 존재하는지 판단할 수 있다. 현재 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리에 존재하면, 메모리 컨트롤러는 버퍼 메모리 등의 테이블에 기록된 히스토리 읽기 레벨을 참조하여 읽기 전압의 레벨을 결정할 수 있다. 따라서, 메모리 장치가 히스토리 읽기 동작을 실행할 수 있다(S102). 반면, 현재 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리에 존재하지 않으면, 메모리 컨트롤러는 디폴트 레벨로 읽기 전압의 레벨을 결정하고, 메모리 장치는 노멀 읽기 동작을 실행할 수 있다(S103).
S102 또는 S103 단계에서 실행되는 읽기 동작의 결과로 수신한 읽기 데이터에 대해, 메모리 컨트롤러의 에러 정정 회로는 에러 정정 동작을 실행할 수 있다(S104). S104 단계에서 읽기 데이터의 에러를 정정하는 데에 성공하거나, 읽기 데이터에서 에러가 검출되지 않으면, 별도의 추가 동작 없이 읽기 동작이 종료될 수 있다. 반면, S104 단계에서 읽기 데이터의 에러가 정정되지 않으면, 메모리 컨트롤러는 OVS 읽기 커맨드를 생성할 수 있다(S105).
메모리 컨트롤러로부터 OVS 읽기 커맨드를 수신한 메모리 장치는 OVS 읽기 동작을 실행할 수 있다(S106). 앞서 설명한 바와 같이, OVS 읽기 동작에서 메모리 장치는, 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트 정보를 수집하여 검출 케이스를 판단하고, 검출 케이스에 따라 디벨롭 시간을 결정하여 읽기 데이터를 생성할 수 있다. 실시예들에 따라 메모리 장치는, 셀 카운트 정보 및 디벨롭 시간 정보를 OVS 읽기 동작의 검출 정보로 생성할 수 있다. 일례로 메모리 장치는, 메모리 컨트롤러로부터 수신하는 특수 커맨드에 응답하여 검출 정보를 메모리 컨트롤러로 출력할 수 있다.
한편, 메모리 컨트롤러의 에러 정정 회로는, OVS 읽기 동작의 결과로 수신한 읽기 데이터의 에러를 검출 및 정정할 수 있다(S107). S107 단계에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공하면, 메모리 컨트롤러는 검출 정보에 포함된 디벨롭 시간 정보를 참조하여, 버퍼 메모리의 테이블을 업데이트할 수 있다(S114).
일례로, 버퍼 메모리는 메모리 셀들의 열화 정보에 따른 제1 정적 오프셋 전압을 기록하는 제1 테이블, 검출 케이스에 따른 제2 정적 오프셋 전압을 기록하는 제2 테이블, 및 제1 정적 오프셋 전압과 제2 정적 오프셋 전압에 의해 결정되는 제3 정적 오프셋 전압을 기록한 제3 테이블을 포함할 수 있다. 메모리 컨트롤러의 프로세서는, 검출 정보에 포함된 검출 케이스와 매칭되는 제2 정적 오프셋 전압을 선택하고, 제2 정적 오프셋 전압을 이용하여 제3 테이블에 기록된 제3 정적 오프셋 전압을 업데이트할 수 있다.
한편, S107 단계에서 에러를 정정하는 데에 실패하면, 메모리 컨트롤러의 프로세서는, 검출 정보에 포함된 셀 카운트 정보를 기계 학습 모델에 입력할 수 있다(S108). 기계 학습 모델은 버퍼 메모리 등에 저장된 모델로서, 셀 카운트 정보, 읽기 데이터를 획득하고자 하는 선택 메모리 셀의 어드레스 정보와 열화 정보 등을 입력받아 최적의 동적 오프셋 전압을 출력하도록 미리 학습된 모델일 수 있다. 열화 정보는, 프로그램 동작 이후 경과 시간, 동작 온도, 프로그램/소거 동작 사이클, 읽기 사이클 중 적어도 하나를 포함할 수 있다. 메모리 컨트롤러는, S108 단계에서 획득한 동적 오프셋 전압을 읽기 전압에 반영하여 수정 읽기 전압을 생성하고, 수정 읽기 전압을 포함하는 읽기 커맨드를 메모리 장치에 전송할 수 있다. 따라서, 메모리 장치는 수정 읽기 전압으로 읽기 동작을 실행할 수 있다(S109).
메모리 컨트롤러의 에러 정정 회로는, S109 단계의 읽기 동작의 결과로 수신한 읽기 데이터의 에러를 검출 및 정정할 수 있다(S110). S110 단계에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공하면, 메모리 컨트롤러는 수정 읽기 전압에 반영된 동적 오프셋 전압을 이용하여 제3 테이블을 업데이트할 수 있다(S114).
반면, S110 단계에서 에러를 정정하는 데에 실패하면, 데이터 복구를 위하여 메모리 장치가 오프 칩 밸리 서치 동작을 실행할 수 있다(S111). 일례로, 오프-칩 밸리 서치 동작은, 미리 결정된 전압 구간을 미리 결정된 레벨만큼 증가 혹은 감소시키면서 순차적으로 스캐닝함으로써, 문턱 전압 산포의 골(Valley)을 찾는 동작일 수 있다. 오프 칩 밸리 서치 동작으로 찾은 문턱 전압 산포의 골에 대응하는 레벨의 읽기 전압으로 다시 읽기 동작이 실행되며, 읽기 동작에 성공했는지 여부를 메모리 컨트롤러가 판단할 수 있다(S112). S112 단계에서 읽기 동작에 성공한 것으로 판단되면, 메모리 컨트롤러는 테이블을 업데이트할 수 있다(S114). 반면, S112 단계에서 읽기 동작에 실패한 것으로 판단되면, 메모리 컨트롤러는 읽기 동작의 실패를 호스트에 출력할 수 있다(S113).
도 7은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 7은 최적의 읽기 레벨을 메모리 컨트롤러(200) 내에서 최적의 읽기 레벨을 결정하는 방법을 개념적으로 나타낸 도면일 수 있다. 도 7을 참조하면, 메모리 컨트롤러(200)는 버퍼 메모리 등에 저장된 제1 내지 제3 테이블들(211-213)과 기계 학습 모델(220)을 이용하여 최적의 읽기 레벨을 결정할 수 있다.
제1 테이블(211)은 프로그램 동작 이후 경과 시간, 동작 온도, 프로그램/소거 동작 사이클, 읽기 사이클 등의 열화 정보에 따른 제1 정적 오프셋 전압을 기록할 수 있다. 제2 테이블(212)은 OVS 읽기 동작을 실행한 메모리 장치로부터 수신한 검출 정보(201) 중에서 검출 케이스에 매칭된 제2 정적 오프셋 전압을 기록할 수 있다. 제3 테이블(213)은 제1 정적 오프셋 전압과 제2 정적 오프셋 전압의 합으로 결정된 제3 정적 오프셋 전압을 기록할 수 있다.
한편, 제3 테이블(213)의 제3 정적 오프셋 전압은 기계 학습 모델(220)의 출력에 의해서도 업데이트될 수 있다. 앞서 도 6을 참조하여 설명한 바와 같이, 기계 학습 모델(220)은 검출 정보(201) 중 셀 카운트 정보를 입력받아 동적 오프셋 전압을 출력할 수 있다. 제3 테이블(213)은 기계 학습 모델이 출력하는 동적 오프셋 전압에 의해 업데이트될 수 있다. 또한, 기계 학습 모델(220)이 출력하는 동적 오프셋 전압은, 읽기 전압의 디폴트 레벨과 더해져서 수정 읽기 전압의 레벨을 결정할 수 있다. OVS 읽기 동작 및/또는 기계 학습 모델(220)을 이용한 읽기 동작으로 읽기 동작에 성공하면, 메모리 컨트롤러는 제3 테이블(213)에 기록된 제3 정적 오프셋 전압을 참조하여 이후의 읽기 동작을 위한 읽기 전압의 레벨을 결정할 수 있다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 8 및 도 9에 도시한 실시예들에서, 메모리 장치의 메모리 셀들 각각은 3비트의 데이터를 저장하는 TLC(Triple Level Cell) 방식으로 프로그램될 수 있다. 메모리 셀들 각각은, 기록된 데이터에 따라 8개의 상태들(E-P7) 중 하나를 가질 수 있다.
도 8 및 도 9를 참조하면, 메모리 셀들 각각에 대한 읽기 동작은 3회 수행될 수 있으며, 8개의 상태 정보를 3개의 페이지에 나누어 출력할 수 있다. 일 실시예에서, 소거 상태(E)는 데이터 '111'로 할당되고, 제1 프로그램 상태(P1)는 데이터 '110'으로 할당되며, 제2 프로그램 상태(P2)는 데이터 '100'으로 할당되고, 제3 프로그램 상태(P3)는 데이터 '000'으로 할당되며, 제4 프로그램 상태(P4)는 데이터 '010'으로 할당되고, 제5 프로그램 상태(P5)는 데이터 '011'로 할당되며, 제6 프로그램 상태(P6)는 데이터 '001'로 할당되고, 제7 프로그램 상태(P7)는 데이터 '101'로 할당될 수 있다. 다만 이는 하나의 실시예일 뿐이며, 다양한 실시예들에서 메모리 셀들 각각의 상태들(E-P7)에 할당되는 데이터는 달라질 수 있다.
일례로, 최하위 비트의 읽기 동작은, 소거 상태(E)와 제1 프로그램 상태(P1) 사이의 제1 읽기 전압(RP1)을 이용한 제1 읽기 동작, 및 제4 프로그램 상태(P4)와 제5 프로그램 상태(P5) 사이의 제5 읽기 전압(RP5)을 이용한 제2 읽기 동작을 포함할 수 있다. 유사하게, 최상위 비트의 읽기 동작은 제2 프로그램 상태(P2)와 제3 프로그램 상태(P3) 사이의 제3 읽기 전압(RP3)을 이용한 제1 읽기 동작, 및 제6 프로그램 상태(P6)와 제7 프로그램 상태(P7) 사이의 제7 읽기 전압(RP7)을 이용한 제2 읽기 동작을 포함할 수 있다. 중간 비트의 읽기 동작은 제1 프로그램 상태(P1)와 제2 프로그램 상태(P2) 사이의 제2 읽기 전압(RP2)을 이용한 제1 읽기 동작, 제3 프로그램 상태(P3)와 제4 프로그램 상태(P4) 사이의 제4 읽기 전압(RP4)을 이용한 제2 읽기 동작, 및 제5 프로그램 상태(P5)와 제6 프로그램 상태(P6) 사이의 제6 읽기 전압(RP6)을 이용한 제3 읽기 동작을 포함할 수 있다.
이상적으로, 메모리 셀들이 갖는 문턱 전압 산포는 도 8에 도시한 바와 같을 수 있다. 이 경우, 읽기 전압들(RP1-RP7)을 이용하여 메모리 셀들로부터 획득한 읽기 데이터에 에러가 포함되지 않거나, 또는 에러가 에러 정정 회로에서 정정될 수 있다. 다만, 프로그램 동작 이후 시간이 경과하거나 프로그램/소거 동작, 및 읽기 동작 등이 반복적으로 실행됨에 따라, 도 9에 도시한 바와 같이 메모리 셀들의 문턱 전압 산포가 열화될 수 있다.
도 9를 참조하면, 적어도 일부의 상태들(E-P7)에서 문턱 전압 산포가 서로 중첩될 수 있다. 이 경우 읽기 전압들(RP1-RP7)을 그대로 이용하여 읽기 동작을 실행할 경우, 읽기 데이터의 에러가 에러 정정 회로에서 정정되지 않을 수 있다. 따라서 본 발명의 일 실시예에서는, 메모리 장치가 OVS 읽기 동작을 실행하도록 제어하는 한편, OVS 읽기 동작에서 생성되는 검출 정보를 이용하여 읽기 전압들(RP1-RP7)의 레벨을 수정함으로써, 읽기 동작의 신뢰성을 개선할 수 있다.
도 10 및 도 11은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
먼저 도 10을 참조하면, 메모리 장치의 메모리 셀들이 갖는 상태들(S1, S2) 각각의 문턱 전압 산포가, 다양한 요인에 의해 열화되어 서로 중첩될 수 있다. 문턱 전압 산포가 중첩되는 경우, 읽기 데이터에 에러가 포함되거나, 읽기 데이터의 에러가 에러 정정 회로에 의해 정정되지 않을 수 있다. 본 발명의 일 실시예에서, 읽기 데이터의 에러를 정정하는 데에 실패하는 경우, 메모리 컨트롤러는 우선 OVS 읽기 커맨드를 생성하여 메모리 장치에 전송할 수 있다.
메모리 장치는 OVS 읽기 커맨드에 응답하여, 서로 중첩된 문턱 전압 산포에서 최적의 골을 찾고 읽기 데이터를 생성하는 OVS 읽기 동작을 실행할 수 있다. 일례로, OVS 읽기 동작은 문턱 전압 산포로부터 획득한 셀 카운트 정보에 기초하여 최적의 검출 케이스를 판단하며, 최적의 검출 케이스에 따라 읽기 전압에 반영되어야 하는 오프셋 전압을 고려하여 디벨롭 시간을 조절하는 방식으로 실행될 수 있다. 이하, 도 11을 함께 참조하여 OVS 읽기 동작을 설명하기로 한다.
도 11을 참조하면, 제1 페이지 버퍼들(PBG1)과 제2 페이지 버퍼들(PBG2)을 이용하여 OVS 읽기 동작이 실행될 수 있다. 우선, T0 시점에서 T1 시점까지 프리차지 동작이 수행될 수 있다. 프리차지 동작에서 제1 페이지 버퍼들(PBG1)의 각각에 연결된 제1 비트라인 및 제1 센싱 노드가 충전될 수 있다. 일례로, 비트라인 셋-업 신호들이 활성화되면, 센싱 노드와 제1 비트라인이 소정의 전압 레벨로 프리차지될 수 있다. T1 시점에서 제1 비트라인 셋-업 신호가 비활성화되면, 제1 페이지 버퍼들(PBG1) 각각의 프리차지 회로가 오프될 수 있다. 제2 페이지 버퍼들(PBG2) 각각의 프리차지 회로는, T1 시점보다 늦은 T2 시점에서 오프 될 수 있다. 제1 페이지 버퍼들(PBG1) 각각의 센싱 노드의 레벨과 제2 페이지 버퍼들(PBG2) 각각의 센싱 노드의 레벨은, 읽기 전압을 입력받은 메모리 셀의 온/오프 여부에 따라 비트라인으로 흐르는 전류의 크기에 의해 변화될 수 있다.
도 11에 도시한 바와 같이, 제1 페이지 버퍼들(PBG1) 각각은 T0 시점에서 T1 시점까지 센싱 노드를 프리차지하고, T1 시점부터 T4 시점까지 제1 비트라인들을 디벨롭시킬 수 있다. 반면 제2 페이지 버퍼들(PBG2)의 각각은 T0 시점에서 T1 시점까지 센싱 노드를 프리차지하고, T1 시점보다 늦은 T2 시점부터 T4 시점까지 제 2 비트라인들을 디벨롭시킬 수 있다.
OVS 읽기 동작은, 셀 카운트 정보를 수집하고 그에 따른 검출 케이스를 결정하는 제1 센싱 동작과, 제1 센싱 동작에서 결정한 검출 케이스에 따라 디벨롭 동작을 실행하여 읽기 데이터를 생성하는 제2 센싱 동작을 포함할 수 있다. 제1 센싱 동작은, T3 시점의 래치 리셋(nS) 센싱 동작과, T5 시점의 래치 셋(S) 센싱 동작을 포함할 수 있다. 제1 페이지 버퍼들(PBG1)에서 실행되는 래치 리셋(nS) 센싱 동작과 래치 셋(S) 센싱 동작의 온-셀 카운트 값을 이용하여 제1 셀 카운트 정보가 산출될 수 있다. 또한, 제2 페이지 버퍼들(PGB2)에서 실행되는 래치 리셋(nS) 센싱 동작과 래치 셋(S) 센싱 동작의 온-셀 카운트 값을 이용하여 제2 셀 카운트 정보가 산출될 수 있다.
제1 센싱 동작에서 획득한 제1 셀 카운트 정보와 제2 셀 카운트 정보에 근거로 하여, 메모리 셀들의 상태들(S1, S2)에 따른 검출 케이스들(C1-C5) 중에서 최적의 읽기 레벨에 대응하는 검출 케이스가 결정될 수 있다. 일례로, 최적의 읽기 레벨에 대응하는 검출 케이스는, 메모리 셀들이 갖는 상태들(S1, S2)의 산포 골에 대응할 수 있다. 제2 센싱 동작에서는, 제1 센싱 동작에서 결정한 검출 케이스를 참조하여, 디벨롭 시간 정보(tSODev1-tSODev5) 중 하나를 선택할 수 있다.
OVS 읽기 동작에서 생성된 셀 카운트 정보와 검출 케이스 등은, 검출 정보로서 OVS 읽기 동작으로 생성된 읽기 데이터와 함께 메모리 컨트롤러에 출력될 수 있다. OVS 읽기 동작으로 생성된 읽기 데이터에 에러가 없거나, 에러가 성공적으로 정정되면, 메모리 컨트롤러는 검출 케이스를 이용하여 메모리 컨트롤러 내부에 저장된 테이블을 업데이트할 수 있다. 앞서 설명한 바와 같이, 상기 테이블은 읽기 전압에 적용될 정적 오프셋 전압을 기록하는 테이블일 수 있다.
한편, OVS 읽기 동작으로 생성된 읽기 데이터의 에러가 정정되지 않으면, 메모리 컨트롤러는 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 메모리 컨트롤러는 동적 오프셋 전압을 반영한 수정 읽기 전압을 이용하여 읽기 동작을 다시 한 번 실행하도록 메모리 장치를 제어할 수 있다. 메모리 장치가 다시 실행한 읽기 동작의 결과로 획득한 읽기 데이터에 에러가 없거나 에러가 성공적으로 정정되면, 동적 오프셋 전압을 이용하여 테이블을 업데이트할 수 있다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
앞서 도 10 및 도 11을 참조하여 설명한 바와 같이, OVS 읽기 동작의 제1 센싱 동작에서 판단한 최적의 검출 케이스에 따라 읽기 전압에 반영되어야 하는 오프셋 전압이 결정될 수 있다. 일례로, 메모리 장치의 OVS 회로는, 제1 센싱 동작에서 문턱 전압 산포로부터 판단한 셀 카운트 정보를 기반으로 검출 케이스를 판단할 수 있다.
메모리 장치는, 메모리 컨트롤러로 OVS 읽기 동작의 검출 정보, 및 읽기 데이터를 출력할 수 있다. 앞서 설명한 바와 같이, 검출 정보는 셀 카운트 정보, 및 검출 케이스를 포함할 수 있다.
메모리 컨트롤러는, 에러 정정 회로가 읽기 데이터의 에러를 정정하는 데에 성공한 경우, 검출 케이스들에 대응하는 정적 오프셋 전압을 생성하고, 이를 제2 테이블에 기록할 수 있다. 일례로, OVS 읽기 동작의 제2 센싱 동작에서 판단한 검출 케이스가 제3 검출 케이스(C3)인 경우, 메모리 컨트롤러는 제3 검출 케이스(C3)에 대응하는 정적 오프셋 전압 +20mV를 제2 테이블에 기록할 수 있다.
도 13은 본 발명의 일 실시예에 따른 제2 테이블을 나타낸 도면이다. 도 13에 도시한 일 실시예에서, 메모리 셀들 각각에는 3비트의 데이터가 기록되며, 따라서 메모리 셀들 각각은 기록된 데이터에 따라 8개의 상태들 중 하나를 가질 수 있다. 제2 테이블은, 8개의 상태들을 판단하기 위한 7개의 읽기 전압들(RP1-RP7), 및 OVS 읽기 동작에서 판단하는 검출 케이스들(C1-C5)에 따른 제2 정적 오프셋 전압을 기록할 수 있다.
제2 테이블에 기록된 제2 정적 오프셋 전압은, 제1 테이블에 기록된 제1 정적 오프셋 전압에 합산되어 제3 정적 오프셋 전압으로서 제3 테이블에 기록될 수 있다. 앞서 설명한 바와 같이, 제1 테이블은 적어도 하나의 열화 정보에 따른 제1 정적 오프셋 전압을 기록한 테이블일 수 있다. 메모리 컨트롤러는, 읽기 동작을 시작할 때 제3 테이블을 참조하여 읽기 전압의 디폴트 레벨을 결정함으로써, 에러 정정 회로가 읽기 데이터의 에러 정정에 실패하지 않는 읽기 통과(Read Pass)의 가능성을 높일 수 있다. 이하, 도 14a 내지 내지 도 14c, 및 도 15a 내지 도 15c를 참조하여 더욱 상세히 설명하기로 한다.
도 14a 내지 도 14c, 및 도 15a 내지 도 15c는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면들이다.
먼저 도 14a 내지 도 14c는, 제1 정적 오프셋 전압이 부족한 경우를 예시적으로 보여주는 도면들일 수 있다. 도 14a 및 도 14b를 참조하면, 메모리 셀의 문턱 전압 산포가 열화되어, 제1 테이블에 기록된 제1 정적 오프셋 전압인 -50mV만으로는 최적의 읽기 전압에 도달하지 못할 수 있다. 따라서, 도 14b에 도시된 바와 같이, 제1 정적 오프셋 전압만을 반영한 읽기 전압으로 읽기 동작을 실행할 경우, 읽기 데이터의 에러를 정정하는 데에 실패하는 읽기 실패(Read Fail)의 가능성이 증가할 수 있다. 읽기 실패가 발생하면, 메모리 컨트롤러는 메모리 장치가 OVS 읽기 동작을 실행하도록 제어하며, 메모리 장치는 OVS 읽기 동작을 통해 최적의 검출 케이스를 찾고, 검출 케이스에 대응하는 오프셋 전압에 따라 디벨롭 시간을 조정하는 방식으로 읽기 동작을 실행하여 읽기 데이터를 생성할 수 있다.
OVS 읽기 동작으로 생성된 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러는 OVS 읽기 동작에서 판단한 검출 케이스에 대응하는 제2 정적 오프셋 전압을 산출하고, 이를 제2 테이블에 저장할 수 있다. 일례로, 도 14c에 도시한 일 실시예에서 제2 정적 오프셋 전압은 -60mV일 수 있다. 따라서, 다음 읽기 동작에서 제1 정적 오프셋 전압과 제2 정적 오프셋 전압을 더한 제3 정적 오프셋 전압 -110mV를 반영하여 읽기 전압의 디폴트 레벨을 결정할 수 있으며, 읽기 통과의 가능성을 높여 읽기 동작의 신뢰성을 개선할 수 있다.
도 15a 내지 도 15c는 제1 정적 오프셋 전압이 과도한 경우를 예시적으로 보여주는 도면들일 수 있다. 도 15a 및 도 15b를 참조하면, 메모리 셀의 문턱 전압 산포가 제1 정적 오프셋 전압인 -90mV보다 덜 열화되며, 따라서 제1 테이블에 기록된 제1 정적 오프셋 전압인 -90mV으로는 최적의 읽기 전압에 도달하지 못할 수 있다. 따라서, 도 15b에 도시된 바와 같이, 제1 정적 오프셋 전압만을 반영한 읽기 전압으로 읽기 동작을 실행할 경우, 읽기 데이터의 에러를 정정하는 데에 실패하는 읽기 실패(Read Fail)의 가능성이 증가할 수 있다. 읽기 실패가 발생하면, 메모리 컨트롤러는 메모리 장치가 OVS 읽기 동작을 실행하도록 제어하며, 메모리 장치는 OVS 읽기 동작을 통해 검출 케이스를 판단하고 읽기 데이터를 생성할 수 있다.
OVS 읽기 동작으로 생성된 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러는 OVS 읽기 동작에서 판단한 검출 케이스에 대응하는 제2 정적 오프셋 전압을 산출하고, 이를 제2 테이블에 저장할 수 있다. 일례로, 도 15c에 도시한 일 실시예에서 제2 정적 오프셋 전압은 +60mV일 수 있다. 따라서, 다음 읽기 동작에서 제1 정적 오프셋 전압과 제2 정적 오프셋 전압을 더한 제3 정적 오프셋 전압 -30mV를 반영하여 읽기 전압의 디폴트 레벨을 결정할 수 있으며, 읽기 동작의 신뢰성을 개선할 수 있다.
도 16은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면이다.
도 16을 참조하면, OVS 읽기 동작은 메모리 셀들이 가질 수 있는 모든 상태들(E-P7)에 적용될 수 있다. 따라서 모든 상태들(E-P7)에서 셀 카운트 정보가 산출되고, 셀 카운트 정보는 OVS 읽기 동작의 검출 정보로서 메모리 컨트롤러에 전송될 수 있다.
OVS 읽기 동작으로 생성된 읽기 데이터에 대해 에러 정정이 실패하는 경우, 본 발명의 일 실시예에서는 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 동적 오프셋 전압은 읽기 전압에 반영되며, 동적 오프셋 전압이 반영된 수정 읽기 전압을 이용하여 메모리 장치가 다시 읽기 동작을 실행할 수 있다.
기계 학습 모델은, 셀 카운트 정보를 입력받아 최적의 읽기 전압을 결정하기 위한 동적 오프셋 전압을 출력하도록 학습된 모델일 수 있다. 본 발명의 일 실시예에서는, 최상위 상태(P7)와 최하위 상태(E)만이 아닌, 메모리 셀들이 가질 수 있는 모든 상태들(E-P7)로부터 획득한 셀 카운트 정보를 기계 학습 모델에 입력할 수 있다. 따라서, 최상위 상태(P7)와 최하위 상태(E)의 셀 카운트 정보만을 기계 학습 모델에 입력하는 경우에 비해, 더 정확한 동적 오프셋 전압을 획득할 수 있으며, 수정 읽기 전압을 이용하는 읽기 동작의 신뢰성을 개선할 수 있다.
도 17은 본 발명의 일 실시예에 따른 메모리 컨트롤러에 포함되는 기계 학습 모델을 설명하기 위한 도면이다.
일 실시예에서, 기계 학습 모델(300)은 소정의 입력 데이터를 입력받아 출력 데이터를 내보낼 수 있다. 일례로 입력 데이터는, 메모리 장치에서 실행되는 OVS 읽기 동작의 결과로 획득한 셀 카운트 정보 및 기타 열화 정보일 수 있다. 기타 열화 정보는 프로그램 동작 이후 경과 시간, 프로그램/소거 동작 사이클, 읽기 동작 사이클 등을 포함하며, 도 16을 참조하여 설명한 바와 같이 메모리 셀들이 가질 수 있는 모든 상태들에서 셀 카운트 정보를 획득할 수 있다. 출력 데이터는 읽기 전압의 최적 레벨을 결정하기 위한 동적 오프셋 전압일 수 있다.
기계 학습 모델(300)은 셀 카운트 정보 및 기타 열화 정보 등을 입력받아 동적 오프셋 전압을 출력하도록 미리 학습될 수 있다. 도 17을 참조하면, 기계 학습 모델(300)의 학습을 위하여 데이터베이스(DB)가 제공되며, 데이터베이스(DB)에는 학습 데이터(TD)가 저장될 수 있다. 기계 학습 모델(300)의 학습을 위하여 학습 데이터(TD)를 데이터베이스(DB)로부터 선택하고, 학습 데이터(TD)를 제1 내지 제N 학습 데이터(TD1-TDN)로 분류할 수 있다.
일례로, 학습 데이터(TD)는 메모리 셀들의 열화된 문턱 전압 산포를 나타내는 데이터를 포함할 수 있다. 학습 데이터(TD)에 소정의 필터링을 진행하고, 서로 다른 해상도를 갖는 문턱 전압 산포를 병합하는 등의 데이터 전처리를 진행함으로써, 제1 내지 제N 학습 데이터(TD1-TDN)를 생성할 수 있다. 제1 내지 제N 학습 데이터(TD1-TDN)를 이용하여 학습 알고리즘(TA)이 학습을 진행함으로써, 복수의 모델들(M1-MN)을 생성할 수 있다. 일례로, 복수의 모델들(M1-MN)의 개수는 메모리 셀들 각각에 저장되는 데이터의 비트 수에 따라 결정될 수 있다. 예시로서, 메모리 셀들 각각에 3비트의 데이터가 저장되는 경우, 학습에 의해 적어도 7개의 트리들이 생성되며, 메모리 셀들 각각에 4비트의 데이터가 저장되는 경우 학습에 의해 적어도 15개의 트리들이 생성될 수 있다.
다만, 도 17을 참조하여 설명한 일 실시예는 기계 학습 모델(300)을 생성하기 위한 하나의 실시예일 뿐이며, 기계 학습 모델(300)은 다른 다양한 방식으로 생성될 수도 있다.
도 18 및 도 19는 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 18 및 도 19에 도시한 실시예들에서 메모리 장치의 메모리 셀들 각각에는 3비트의 데이터가 저장될 수 있다. 다만 이는 하나의 실시예이며, 메모리 셀들에 저장되는 데이터의 비트 수는 다양하게 변형될 수 있다. 메모리 셀들 각각에 3비트의 데이터가 저장되므로, 메모리 셀들 각각의 문턱 전압 산포는 8개의 상태들(E-P7)로 구분될 수 있다.
도 18 및 도 19를 참조하면, 기계 학습 모델들(400, 500)은 완전 연결 구조를 갖는 인공 신경망을 포함할 수 있다. 기계 학습 모델들(400, 500)은 입력 레이어(IL), 출력 레이어(OL) 및 그 사이의 히든 레이어(HL)를 포함하며, 히든 레이어(HL)는 완전 연결 구조로 서로 연결되는 복수의 히든 레이어들(HL1-HL3)을 포함할 수 있다. 다만 이는 하나의 실시예이며, 기계 학습 모델들(400, 500)은 다른 다양한 구조를 갖는 신경망들을 더 포함할 수도 있다.
기계 학습 모델들(400, 500) 각각은 셀 카운트 정보와, 메모리 셀들의 열화 정보를 입력받아 읽기 전압의 최적 레벨을 결정하기 위한 동적 오프셋 전압을 출력할 수 있다. 도 18에 도시한 일 실시예에서 제1 기계 학습 모델(400)에 입력되는 셀 카운트 정보는, 최하위 셀 카운트 정보(nCE)와 최상위 셀 카운트 정보(nCP7)를 포함할 수 있다. 소거 상태(E)에서 산출한 최하위 셀 카운트 정보(nCE)와, 제7 프로그램 상태(P7)에서 산출한 최상위 셀 카운트 정보(nCP7)로 다른 상태들(P1-P6)의 문턱 전압 산포를 예측하도록 제1 기계 학습 모델(400)이 학습될 수 있다.
다만, 도 18에 도시한 일 실시예에서는 최하위 셀 카운트 정보(nCE)와 최상위 셀 카운트 정보(nCP7)만을 이용하여 제1 기계 학습 모델(400)이 동적 오프셋 전압을 출력하므로, 복수의 상태들(E-P7) 각각의 셀 카운트 정보가 정확히 반영되지 못할 수 있다. 또한, 최하위 셀 카운트 정보(nCE)와 최상위 셀 카운트 정보(nCP7)를 별도로 획득하기 위한 더미 센싱 동작이 필요하며, 이는 읽기 동작의 전체적인 레이턴시를 증가시키는 원인이 될 수 있다.
도 19를 참조하면, 본 발명의 일 실시예에서는, 제2 기계 학습 모델(500)을 이용하기 전에 OVS 읽기 동작을 먼저 실행하고, OVS 읽기 동작에서 생성되는 셀 카운트 정보(nC1-nC7)를 메모리 컨트롤러가 메모리 장치로부터 수신하여 제2 기계 학습 모델(500)에 입력할 수 있다. OVS 읽기 동작에서는 메모리 셀들이 갖는 복수의 상태들(E-P7) 각각에서 셀 카운트 정보(nC1-nC7)가 생성되므로, 기계 학습 모델은 최하위 셀 카운트 정보(nCE)와 최상위 셀 카운트 정보(nCP7)만이 아닌, 복수의 상태들(E-P7) 각각의 셀 카운트 정보(nC1-nC7)를 모두 입력받아 동적 오프셋 전압을 출력하도록 학습될 수 있다. 따라서 읽기 전압의 최적 레벨을 효과적으로 찾을 수 있다.
또한 별도의 더미 센싱 동작이 아닌, OVS 읽기 동작에서 생성되는 셀 카운트 정보(nC1-nC7)를 제2 기계 학습 모델(500)에 입력하여 동적 오프셋 전압을 획득하므로, 읽기 동작의 레이턴시 증가를 최소화할 수 있다. 앞서 설명한 바와 같이, 셀 카운트 정보(nC1-nC7)를 제2 기계 학습 모델(500)에 입력하여 동적 오프셋 전압을 획득하는 동작은, OVS 읽기 동작의 결과로 메모리 장치로부터 수신한 읽기 데이터의 에러를 정정하는 데에 실패한 경우에만 실행될 수 있다.
도 20a 및 도 20b는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 20a와 도 20b는 도 18에 도시한 바와 같이 최하위 셀 카운트 정보(nCE)와 최상위 셀 카운트 정보(nCP7)를 기반으로 학습한 제1 기계 학습 모델(400)과, 도 19에 도시한 바와 같이 모든 상태들의 셀 카운트 정보(nC1-nC7)를 기반으로 학습한 제2 기계 학습 모델(500)의 성능을 비교 설명하기 위한 도면들일 수 있다. 도 20a와 도 20b에서 가로 축은 읽기 전압의 최적 레벨과 기계 학습 모델들(400, 500)이 출력한 예측 레벨의 차이일 수 있다.
도 20a는 학습 데이터를 이용하여 테스트한 결과를 나타낸 그래프일 수 있다. 도 20a를 참조하면, 제1 기계 학습 모델(400)과 제2 기계 학습 모델(500) 모두 우수한 예측력을 보여주는 것으로 이해할 수 있다. 다만, 읽기 전압의 최적 레벨과 예측 레벨의 차이가 0mV인 케이스는 제2 기계 학습 모델(500)이 제1 기계 학습 모델(400)보다 더 많으며, 따라서 제2 기계 학습 모델(500)의 예측력이 더 우수한 것으로 볼 수 있다.
도 20b는 학습 데이터가 아닌, 새로운 데이터로 테스트를 진행한 결과를 나타낸 그래프일 수 있다. 도 20b를 참조하면, 읽기 전압의 최적 레벨과 예측 레벨의 차이가 0mV인 케이스는 물론, 차이가 -10mV 내지 +10mV인 케이스와 -20mV 내지 +20mV인 케이스 모두 제2 기계 학습 모델(500)이 제1 기계 학습 모델(400)보다 더 많을 수 있다. 따라서, 제2 기계 학습 모델(500)의 예측력이 더 우수한 것으로 판단할 수 있다.
도 21은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면이다.
도 21을 참조하면, 본 발명의 일 실시예에 따른 저장 장치(600)의 동작은, 메모리 컨트롤러(620)가 메모리 장치(610)에 읽기 커맨드를 전송하는 것으로 시작될 수 있다(S200). 메모리 컨트롤러(620)는 저장 장치(600)와 연결된 외부 호스트로부터 수신한 읽기 요청에 응답하여 읽기 커맨드를 생성하고, 이를 메모리 장치(610)에 전송할 수 있다.
읽기 커맨드는 어드레스 신호와 함께, 디폴트 레벨로 결정된 읽기 전압을 포함할 수 있다. 디폴트 레벨은, 메모리 컨트롤러(620)가 결정하는 값으로, 메모리 컨트롤러(620)에 저장된 초기 값이거나, 이전 읽기 요청에서 읽기 전압에 반영된 정적 오프셋 전압을 상기 초기 값에 더한 값일 수도 있다. 메모리 컨트롤러(620)의 버퍼 메모리 등에는 이전 읽기 요청에서 읽기 전압에 반영되었던 정적 오프셋 전압이 테이블 형태로 기록될 수 있으며, 메모리 컨트롤러는 이 테이블을 참조하여 읽기 전압의 디폴트 레벨을 결정할 수 있다.
메모리 장치(610)는 읽기 커맨드에 응답하여 어드레스 정보에 대응하는 선택 메모리 셀들에 대한 읽기 동작을 실행하고(S201), 읽기 동작의 결과로서 읽기 데이터를 메모리 컨트롤러(620)에 전송할 수 있다(S202). 메모리 컨트롤러(620)의 에러 정정 회로는, 읽기 데이터의 에러를 검출하고 정정할 수 있다(S203). 에러 정정 회로가 에러 정정에 성공하거나 에러가 검출되지 않으면, 읽기 동작은 종료될 수 있다. 반면 에러 정정 회로가 에러 정정에 실패하면, 메모리 컨트롤러(620)는 OVS 읽기 커맨드를 메모리 장치(610)에 전송할 수 있다.
OVS 읽기 커맨드를 수신한 메모리 장치(610)는, OVS 동작과 읽기 동작을 순차적으로 실행할 수 있다(S205-S206). OVS 동작은 복수의 페이지 버퍼들이 서로 다른 시간에 데이터를 래치하도록 제어함으로써, 문턱 전압 산포에서 최적의 골을 찾는 동작일 수 있다. OVS 동작에서 메모리 셀들이 갖는 복수의 상태들 각각에 대한 셀 카운트 정보와, 검출 케이스가 결정될 수 있다. S206 단계의 읽기 동작에서 메모리 장치는, OVS 동작에서 결정한 검출 케이스에 대응하는 읽기 전압의 오프셋 전압을 고려하여 결정한 디벨롭 시간에 따라 센싱 동작을 실행할 수 있다. 메모리 장치(610)는, OVS 읽기 커맨드에 대한 응답으로, 읽기 데이터를 메모리 컨트롤러(620)에 전송할 수 있다(S207).
메모리 컨트롤러(620)는 특수 커맨드를 메모리 장치(610)로 전송하며(S208), 메모리 장치(610)는 특수 커맨드에 응답하여 OVS 동작의 검출 정보를 메모리 컨트롤러(620)에 전송할 수 있다(S209). 검출 정보는 셀 카운트 정보, 검출 케이스 등을 포함할 수 있다. 실시예들에 따라, 읽기 데이터가 메모리 컨트롤러(620)로 전송되는 S207 단계에 앞서, S208 단계 및 S209 단계가 실행될 수도 있다. 검출 정보는, 메모리 컨트롤러(620)와 메모리 장치(610)를 연결하는 제어 핀들 및 데이터 핀들 중 적어도 하나, 예를 들어 데이터 신호(DQ)에 할당된 데이터 핀들 중 적어도 하나를 통해 전송될 수 있다.
메모리 컨트롤러(620)의 에러 정정 회로는, 읽기 데이터의 에러를 검출하고 정정할 수 있다(S210). 에러 정정 회로가 에러 정정에 성공하거나 에러가 검출되지 않으면, 테이블을 업데이트하고(S211) 읽기 동작을 종료할 수 있다. 일례로 메모리 컨트롤러(620)는, 버퍼 메모리 등에 열화 정보에 따른 제1 정적 오프셋 전압이 기록된 제1 테이블, OVS 동작 결과에 따른 검출 케이스에 매칭된 제2 정적 오프셋 전압이 기록된 제2 테이블, 및 제1 정적 오프셋 전압과 제2 정적 오프셋 전압의 합으로 계산되는 제3 정적 오프셋 전압이 기록된 제3 테이블 등을 저장할 수 있다. S211 단계에서 메모리 컨트롤러(620)는, 제2 테이블 및 제3 테이블을 업데이트할 수 있다.
반면 에러 정정 회로가 에러 정정에 실패하면, 메모리 컨트롤러(620)는 기계 학습 모델을 이용하여 동적 오프셋 전압을 계산할 수 있다(S212). 일례로, 메모리 컨트롤러(620)는 S209 단계에서 수신한 검출 정보에 포함된 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 실시예들에 따라, 셀 카운트 정보 외에 열화 정보가 함께 기계 학습 모델에 입력될 수도 있다. 메모리 컨트롤러(620)는 동적 오프셋 전압을 이용하여 수정한 레벨을 갖는 수정 읽기 전압과 함께, 읽기 커맨드를 메모리 장치(610)로 전송할 수 있다(S213). S213 단계에서 전송하는 읽기 커맨드는, S200 단계에서 전송하는 읽기 커맨드와 같은 어드레스 정보를 포함할 수 있으며, 일반적인 읽기 동작을 지시하는 커맨드일 수 있다.
메모리 장치(610)는 S213 단계에서 수신한 읽기 커맨드에 응답하여, 선택 메모리 셀들에 대한 읽기 동작을 실행할 수 있다(S214). 다만, S214 단계에서, 선택 메모리 셀들에 연결된 선택 워드라인에는 수정 읽기 전압이 입력될 수 있다. 메모리 장치(610)는 읽기 동작의 결과로서 읽기 데이터를 메모리 컨트롤러(620)로 전송하며(S215), 메모리 컨트롤러(620)의 에러 정정 회로가 읽기 데이터의 에러를 검출하고 정정할 수 있다(S216).
S216 단계에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공하면, 메모리 컨트롤러(620)는 테이블을 업데이트하고(S217) 읽기 동작을 종료할 수 있다. S217 단계에서 업데이트되는 테이블은, 제3 테이블일 수 있다. 한편, S216 단계에서 에러를 정정하는 데에 실패하면, 메모리 컨트롤러(620)는 읽기 동작이 실패한 것으로 판단하고(S218), 이를 호스트에 알릴 수 있다. 또는, 오프 칩 밸리 서치 동작을 이용한 읽기 동작을 추가로 실행할 수도 있다.
도 21을 참조하여 설명한 일 실시예에서, 읽기 데이터에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공할 경우, 읽기 동작은 1회로 종료될 수 있다. 또한, OVS 읽기 동작에 의해 획득한 읽기 데이터에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공할 경우, 읽기 동작은 2회로 종료될 수 있다. 또한, 기계 학습 모델이 출력하는 동적 오프셋 전압을 반영한 수정 읽기 전압으로 읽기 동작을 실행하는 경우에도, OVS 동작에서 획득한 셀 카운트 정보로 동적 오프셋 전압을 획득할 수 있으므로, 읽기 동작의 레이턴시 증가를 최소화할 수 있다.
도 22 내지 도 25는 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 22 내지 도 25를 참조하면, 저장 장치(700)는 메모리 장치(710)와 메모리 컨트롤러(720)를 포함할 수 있다. 메모리 장치(710)는 메모리 셀들을 포함하는 메모리 셀 어레이(711)와 로직 회로(712)를 포함하며, 로직 회로(712)는 OVS 동작을 실행하기 위한 OVS 회로(713)를 포함할 수 있다. 메모리 셀 어레이(711)에서 메모리 셀들은 복수의 블록들(BLK1-BLKz)으로 구분되며, 복수의 블록들(BLK1-BLKz) 각각은 복수의 페이지들(PAGE1-PAGEn)을 포함할 수 있다. 메모리 컨트롤러(720)는 프로세서(721), 에러 정정 회로(722), 버퍼 메모리(723)를 포함하며, 버퍼 메모리(723)에는 테이블(724)과 기계 학습 모델(725)이 저장될 수 있다.
저장 장치(700)와 연동된 호스트로부터 읽기 요청을 수신하면, 메모리 컨트롤러(720)의 프로세서(721)는 제1 읽기 커맨드(RD_CMD1)를 생성하여 메모리 장치(710)로 전송할 수 있다. 제1 읽기 커맨드(RD_CMD1)에 포함된 읽기 전압은 제1 레벨을 가지며, 제1 레벨은 메모리 컨트롤러(720)가 결정한 레벨일 수 있다.
메모리 장치(710)의 로직 회로(712)는 제1 읽기 커맨드(RD_CMD1)에 응답하여 제1 읽기 동작을 실행하고, 제1 읽기 데이터(RD_DATA1)를 메모리 컨트롤러(720)로 출력할 수 있다. 메모리 컨트롤러(720)의 에러 정정 회로(722)는 제1 읽기 데이터의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나 에러를 정정하는 데에 성공하면, 읽기 동작은 종료될 수 있다.
에러 정정 회로(722)가 에러를 정정하는 데에 실패하면, 도 23에 도시한 바와 같이 프로세서(721)가 제2 읽기 커맨드(RD_CMD2)를 생성하여 메모리 장치(710)로 전송할 수 있다. 일례로, 제2 읽기 커맨드(RD_CMD2)는 OVS 동작을 지시하는 OVS 읽기 커맨드일 수 있다. 메모리 장치(710)의 로직 회로(712)는 OVS 회로(713)를 활성화하여 OVS 동작을 실행하고, OVS 동작의 결과로 셀 카운트 정보 검출 케이스 등의 검출 정보를 획득할 수 있다. 메모리 장치(710)는 제2 읽기 커맨드(RD_CMD2)에 응답하여 제2 읽기 데이터(RD_DATA2)를 생성하고, 이를 메모리 컨트롤러(720)로 출력할 수 있다. 메모리 장치(710)는 OVS 동작의 검출 정보(OVSDI) 역시 메모리 컨트롤러(720)로 전송할 수 있다.
에러 정정 회로(722)는 제2 읽기 데이터(RD_DATA2)의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나, 검출한 에러를 정정하는 데에 성공하면, 프로세서(721)는 검출 케이스에 대응하는 정적 오프셋 전압을 테이블(724)에 기록하여 테이블(724)을 업데이트할 수 있다.
반면, 에러 정정 회로(722)가 제2 읽기 데이터(RD_DATA2)의 에러를 정정하는 데에 실패하면, 도 24에 도시한 바와 같이 기계 학습 모델(725)을 이용하여 읽기 전압의 레벨을 수정할 수 있다. 일례로, 프로세서(721)는 검출 정보(OVSDI)에 포함된 셀 카운트 정보와 메모리 셀들의 열화 정보 등을 기계 학습 모델(725)에 입력하여 동적 오프셋 전압을 획득하고, 이를 이용하여 제1 레벨과 다른 제2 레벨을 갖는 수정 읽기 전압을 생성할 수 있다.
도 25를 참조하면, 메모리 컨트롤러(720)는 수정 읽기 전압을 포함하는 제3 읽기 커맨드(RD_CMD3)를 메모리 장치(710)로 전송할 수 있다. 일례로, 제3 읽기 커맨드(RD_CMD3)는 제1 읽기 커맨드(RD_CMD1)와 동일한 읽기 동작을 지시하는 커맨드일 수 있다. 다시 말해, 제3 읽기 커맨드(RD_CMD3)는 제1 읽기 전압과 다른 레벨의 수정 읽기 전압을 포함한다는 점을 제외하면, 제1 읽기 커맨드(RD_CMD1)와 동일한 커맨드일 수 있다. 메모리 장치(720)는 제3 읽기 커맨드(RD_CMD3)에 포함된 수정 읽기 전압을, 선택 메모리 셀들과 연결된 선택 워드라인에 입력하여 읽기 동작을 실행하고, 읽기 동작의 결과로서 제3 읽기 데이터(RD_DATA3)를 메모리 컨트롤러(720)에 전송할 수 있다.
에러 정정 회로(722)는 제3 읽기 데이터(RD_DATA3)의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나 에러 정정에 성공하면, 프로세서(721)는 수정 읽기 전압에 반영된 동적 오프셋 전압을 테이블(724)에 기록하여 테이블(724)을 업데이트하고 읽기 동작을 종료할 수 있다. 제3 읽기 데이터(RD_DATA3)에 대해서도 에러 정정에 실패하면, 메모리 컨트롤러(720)는 메모리 장치(710)가 오프 칩 밸리 서치 동작과 함께 읽기 동작을 실행하도록 제어할 수 있다.
이와 같이, 본 발명의 일 실시예에 따르면, 제1 읽기 동작이 실패한 경우 OVS 동작을 포함하는 제2 읽기 동작을 실행할 수 있다. 또한, 제2 읽기 동작이 실패한 경우 OVS 동작의 검출 정보에 포함된 셀 카운트 정보 등을 이용하여 생성한 수정 읽기 전압을 이용하여 제3 읽기 동작을 실행할 수 있다. 따라서, 읽기 동작의 신뢰성을 개선할 수 있다. 또한, 기계 학습 모델을 이용하여 수정 읽기 전압을 생성하는 과정에서, 불필요한 더미 센싱 동작이 추가되지 않으므로, 읽기 동작의 레이턴시 증가를 최소화하여 저장 장치(700)의 성능을 개선할 수 있다.
도 26은 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 26을 참조하면, 본 발명의 일 실시예에 따른 메모리 장치(1000)는 C2C(chip to chip) 구조를 가질 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonidng) 방식에 의해 서로 연결하는 방식으로 형성되는 구조를 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄 혹은 텅스텐으로도 형성될 수 있다.
메모리 장치(1000)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드라인 본딩 영역(WLBA), 및 비트라인 본딩 영역(BLBA)을 포함할 수 있다.
주변 회로 영역(PERI)은 제1 기판(810), 층간 절연층(815), 제1 기판(810)에 형성되는 복수의 회로 소자들(820a, 820b, 820c), 복수의 회로 소자들(820a, 820b, 820c) 각각과 연결되는 제1 메탈층(830a, 830b, 830c), 제1 메탈층(830a, 830b, 830c) 상에 형성되는 제2 메탈층(840a, 840b, 840c)을 포함할 수 있다. 일 실시예에서, 제1 메탈층(830a, 830b, 830c)은 상대적으로 저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈층(840a, 840b, 840c)은 상대적으로 저항이 낮은 구리로 형성될 수 있다.
본 명세서에서는 제1 메탈층(830a, 830b, 830c)과 제2 메탈층(840a, 840b, 840c)만 도시 되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈층(840a, 840b, 840c) 상에 적어도 하나 이상의 메탈층이 더 형성될 수도 있다. 제2 메탈층(840a, 840b, 840c)의 상부에 형성되는 하나 이상의 메탈층 중 적어도 일부는, 제2 메탈층(840a, 840b, 840c)을 형성하는 구리보다 더 낮은 저항을 갖는 알루미늄 등으로 형성될 수 있다.
층간 절연층(215)은 복수의 회로 소자들(820a, 820b, 820c), 제1 메탈층(830a, 830b, 830c), 및 제2 메탈층(840a, 840b, 840c)을 커버하도록 제1 기판(810) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.
워드라인 본딩 영역(WLBA)의 제2 메탈층(840b) 상에 하부 본딩 메탈(871b, 872b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(871b, 872b)은 셀 영역(CELL)의 상부 본딩 메탈(971b, 972b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(871b, 872b)과 상부 본딩 메탈(971b, 972b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다.
셀 영역(CELL)은 적어도 하나의 메모리 블록을 제공할 수 있다. 셀 영역(CELL)은 제2 기판(910)과 공통 소스 라인(920)을 포함할 수 있다. 제2 기판(910) 상에는, 제2 기판(910)의 상면에 수직하는 방향(Z축 방향)을 따라 복수의 워드라인들(931-2338; 2330)이 적층될 수 있다. 워드라인들(930)의 상부 및 하부 각각에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드라인들(930)이 배치될 수 있다.
비트라인 본딩 영역(BLBA)에서, 채널 구조체(CH)는 제2 기판(910)의 상면에 수직하는 방향으로 연장되어 워드라인들(930), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있으며, 채널층은 제1 메탈층(950c) 및 제2 메탈층(960c)과 전기적으로 연결될 수 있다. 예컨대, 제1 메탈층(950c)은 비트라인 컨택일 수 있고, 제2 메탈층(960c)은 비트라인일 수 있다. 일 실시예에서, 비트라인(960c)은 제2 기판(910)의 상면에 평행한 제1 방향(Y축 방향)을 따라 연장될 수 있다.
도 26에 도시한 일 실시예에서, 채널 구조체(CH)와 비트라인(960c) 등이 배치되는 영역이 비트라인 본딩 영역(BLBA)으로 정의될 수 있다. 비트라인(960c)은 비트라인 본딩 영역(BLBA)에서 주변 회로 영역(PERI)에서 페이지 버퍼(993)를 제공하는 회로 소자들(820c)과 전기적으로 연결될 수 있다. 일례로, 비트라인(960c)은 주변 회로 영역(PERI)에서 상부 본딩 메탈(971c, 972c)과 연결되며, 상부 본딩 메탈(971c, 972c)은 페이지 버퍼(393)의 회로 소자들(820c)에 연결되는 하부 본딩 메탈(871c, 872c)과 연결될 수 있다.
워드라인 본딩 영역(WLBA)에서, 워드라인들(930)은 제2 기판(910)의 상면에 평행한 제2 방향(X축 방향)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(941-2347; 2340)와 연결될 수 있다. 워드라인들(930)과 셀 컨택 플러그들(940)은, 제2 방향을 따라 워드라인들(930) 중 적어도 일부가 서로 다른 길이로 연장되어 제공하는 패드들에서 서로 연결될 수 있다. 워드라인들(930)에 연결되는 셀 컨택 플러그들(940)의 상부에는 제1 메탈층(950b)과 제2 메탈층(960b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(940)은 워드라인 본딩 영역(WLBA)에서 셀 영역(CELL)의 상부 본딩 메탈(971b, 972b)과 주변 회로 영역(PERI)의 하부 본딩 메탈(871b, 872b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다.
셀 컨택 플러그들(940)은 주변 회로 영역(PERI)에서 로우 디코더(994)를 제공하는 회로 소자들(820b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(994)를 제공하는 회로 소자들(820b)의 동작 전압은, 페이지 버퍼(993)를 제공하는 회로 소자들(820c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(993)를 제공하는 회로 소자들(820c)의 동작 전압이 로우 디코더(994)를 제공하는 회로 소자들(820b)의 동작 전압보다 클 수 있다.
외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(980)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(980)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(920)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(980) 상부에는 제1 메탈층(950a)과 제2 메탈층(960a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(980), 제1 메탈층(950a), 및 제2 메탈층(960a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.
한편 외부 패드 본딩 영역(PA)에는 입출력 패드들(805, 905)이 배치될 수 있다. 도 26을 참조하면, 제1 기판(810)의 하부에는 제1 기판(810)의 하면을 덮는 하부 절연막(801) 이 형성될 수 있으며, 하부 절연막(801) 상에 제1 입출력 패드(805)가 형성될 수 있다. 제1 입출력 패드(805)는 제1 입출력 컨택 플러그(803)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(820a, 820b, 820c) 중 적어도 하나와 연결되며, 하부 절연막(801)에 의해 제1 기판(810)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(803)와 제1 기판(810) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(803)와 제1 기판(810)을 전기적으로 분리할 수 있다.
도 26을 참조하면, 제2 기판(910)의 상부에는 제2 기판(910)의 상면을 덮는 상부 절연막(901)이 형성될 수 있으며, 상부 절연막(901) 상에 제2 입출력 패드(905)가 배치될 수 있다. 제2 입출력 패드(905)는 제2 입출력 컨택 플러그(903)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(820a, 820b, 820c) 중 적어도 하나와 연결될 수 있다.
실시예들에 따라, 제2 입출력 컨택 플러그(903)가 배치되는 영역에는 제2 기판(910) 및 공통 소스 라인(920) 등이 배치되지 않을 수 있다. 또한, 제2 입출력 패드(905)는 제3 방향(Z축 방향)에서 워드라인들(980)과 오버랩되지 않을 수 있다. 도 26을 참조하면, 제2 입출력 컨택 플러그(903)는 제2 기판(910)의 상면에 평행한 방향에서 제2 기판(910)과 분리되며, 셀 영역(CELL)의 층간 절연층(915)을 관통하여 제2 입출력 패드(905)에 연결될 수 있다.
실시예들에 따라, 제1 입출력 패드(805)와 제2 입출력 패드(905)는 선택적으로 형성될 수 있다. 일례로, 메모리 장치(1000)는 제1 기판(801)의 상부에 배치되는 제1 입출력 패드(805)만을 포함하거나, 또는 제2 기판(901)의 상부에 배치되는 제2 입출력 패드(905)만을 포함할 수 있다. 또는, 메모리 장치(1000)가 제1 입출력 패드(805)와 제2 입출력 패드(905)를 모두 포함할 수도 있다.
셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.
메모리 장치(1000)는 외부 패드 본딩 영역(PA)에서, 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(972a)에 대응하여 주변 회로 영역(PERI)의 최상부 메탈층에 셀 영역(CELL)의 상부 메탈 패턴(972a)과 동일한 형태의 하부 메탈 패턴(873a)을 형성할 수 있다. 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(873a)은 주변 회로 영역(PERI)에서 별도의 콘택과 연결되지 않을 수 있다. 이와 유사하게, 외부 패드 본딩 영역(PA)에서 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴에 대응하여 셀 영역(CELL)의 상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴과 동일한 형태의 상부 메탈 패턴을 형성할 수도 있다.
워드라인 본딩 영역(WLBA)의 제2 메탈층(840b) 상에는 하부 본딩 메탈(871b, 872b)이 형성될 수 있다. 워드라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(871b, 872b)은 셀 영역(CELL)의 상부 본딩 메탈(971b, 972b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다.
또한, 비트라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(852)에 대응하여 셀 영역(CELL)의 최상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(852)과 동일한 형태의 상부 메탈 패턴(992)을 형성할 수 있다. 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(992) 상에는 콘택을 형성하지 않을 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.
1, 600, 700: 저장 장치
10, 100, 610, 710: 메모리 장치
20, 620, 720: 메모리 컨트롤러
10, 100, 610, 710: 메모리 장치
20, 620, 720: 메모리 컨트롤러
Claims (20)
- 적어도 하나의 메모리 장치에 제어 신호들을 제공하는 제어 핀들;
상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들;
읽기 전압에 대한 정적 오프셋 전압이 기록된 테이블 및 상기 메모리 장치에 포함되는 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트 정보를 입력받아 상기 읽기 전압에 대한 동적 오프셋 전압을 출력하는 기계 학습 모델을 저장하는 버퍼 메모리;
상기 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 에러 정정 회로; 및
상기 에러 정정 회로가 읽기 데이터의 에러를 정정하는 데에 실패하면, 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하는 최적화 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 프로세서; 를 포함하며,
상기 프로세서는, 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러를 상기 에러 정정 회로가 정정하는 데에 실패하면, 상기 최적화 읽기 동작 동안 생성되는 상기 셀 카운트 정보를 이용하여 상기 동적 오프셋 전압을 획득하고, 상기 동적 오프셋 전압이 반영된 수정 읽기 전압을 상기 메모리 장치에 전송하는 메모리 컨트롤러. - 제1항에 있어서,
상기 메모리 셀들 각각은 기록된 데이터에 따라 복수의 상태들 중 하나를 가지며,
상기 셀 카운트 정보는, 상기 복수의 상태들 각각에서 상기 읽기 동작의 동작 조건에 의해 턴-온 또는 턴-오프되는 메모리 셀들의 개수를 포함하는 메모리 컨트롤러. - 제2항에 있어서,
상기 기계 학습 모델은, 상기 셀 카운트 정보와 함께, 상기 메모리 장치에서 상기 읽기 데이터가 저장된 선택 메모리 셀의 주소, 및 상기 선택 메모리 셀의 열화 정보 중 적어도 하나를 입력받아 상기 동적 오프셋 전압을 출력하는 메모리 컨트롤러. - 제1항에 있어서,
상기 테이블은, 제1 정적 오프셋 전압이 기록된 제1 테이블, 제2 정적 오프셋 전압이 기록된 제2 테이블, 및 히스토리 읽기 레벨에 대응하며 상기 제1 정적 오프셋 전압과 상기 제2 정적 오프셋 전압에 의해 결정되는 제3 정적 오프셋 전압이 기록된 제3 테이블을 포함하는 메모리 컨트롤러. - 제4항에 있어서,
상기 최적화 읽기 동작은 온-칩 밸리 서치 동작을 포함하며, 상기 프로세서는 상기 최적화 읽기 동작에서 생성되는 읽기 데이터와 함께 상기 온-칩 밸리 서치 동작의 검출 정보를 수신하는 메모리 컨트롤러. - 제5항에 있어서,
상기 검출 정보는 상기 셀 카운트 정보, 및 상기 셀 카운트 정보에 기초하여 결정되는 검출 케이스를 포함하며, 상기 제2 테이블은 상기 검출 케이스와 상기 제2 정적 오프셋 전압을 매칭시켜 기록하는 메모리 컨트롤러. - 제6항에 있어서,
상기 최적화 읽기 동작에서 생성되는 상기 읽기 데이터의 에러를 상기 에러 정정 회로가 정정하는 데에 성공하면, 상기 프로세서는 상기 검출 케이스 및 상기 제2 테이블을 참조하여 상기 제2 정적 오프셋 전압을 결정하고, 상기 제2 정적 오프셋 전압을 이용하여 상기 제3 테이블을 업데이트하는 메모리 컨트롤러. - 제4항에 있어서,
상기 프로세서는, 상기 메모리 장치에 대한 읽기 커맨드를 생성할 때, 상기 제3 테이블을 참조하여 상기 읽기 전압의 디폴트 레벨을 결정하는 메모리 컨트롤러. - 제4항에 있어서,
상기 수정 읽기 전압을 이용하여 상기 메모리 장치가 실행한 읽기 동작에서 생성되는 읽기 데이터의 에러가 상기 에러 정정 회로에 의해 정정되면, 상기 프로세서는 상기 동적 오프셋 전압을 이용하여 상기 제3 테이블을 업데이트하는 메모리 컨트롤러. - 제1항에 있어서,
상기 프로세서는 제1 읽기 커맨드 및 상기 제1 읽기 커맨드와 다른 제2 읽기 커맨드를 생성하며,
상기 제1 읽기 커맨드는 상기 프로세서가 결정한 읽기 전압의 레벨에 기초하여 상기 메모리 장치가 읽기 동작을 실행하도록 제어하는 커맨드이고, 상기 제2 읽기 커맨드는 상기 메모리 장치가 온-칩 밸리 서치 동작을 포함하는 상기 최적화 읽기 동작을 실행하도록 제어하는 커맨드인 메모리 컨트롤러. - 제10항에 있어서,
상기 프로세서는, 상기 제1 읽기 커맨드에 의해 획득한 상기 읽기 데이터의 에러가 정정되지 않으면, 상기 제2 읽기 커맨드를 상기 메모리 장치에 전송하는 메모리 컨트롤러. - 제11항에 있어서,
상기 프로세서는, 상기 제2 읽기 커맨드에 의해 획득한 상기 읽기 데이터의 에러가 정정되지 않으면, 상기 수정 읽기 전압을 포함하는 상기 제1 읽기 커맨드를 상기 메모리 장치에 전송하는 메모리 컨트롤러. - 적어도 하나의 메모리 장치; 및
상기 메모리 장치에 CLE(command latch enable) 신호, ALE(address latch enable) 신호, CE(chip enable) 신호, WE(write enable) 신호, RE(read enable) 신호, DQS 신호 중 적어도 하나를 제공하는 제어 핀들, 및 상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들을 통해 상기 메모리 장치와 연결되고, 읽기 전압의 정적 오프셋 전압을 저장하는 테이블 및 동적 오프셋 전압을 결정하는 기계 학습 모델을 저장하는 메모리 컨트롤러; 를 포함하며,
상기 메모리 컨트롤러는, 제1 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제1 읽기 데이터의 에러가 정정되지 않으면, 상기 메모리 장치가 온-칩 밸리 서치 동작을 포함하는 제2 읽기 동작을 실행하도록 제어하며,
상기 제2 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제2 읽기 데이터의 에러가 정정되지 않으면, 상기 온-칩 밸리 서치 동작으로 생성된 검출 정보 중 적어도 일부를 상기 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압을 반영한 수정 읽기 전압을 상기 메모리 장치에 전송하는 저장 장치. - 제13항에 있어서,
상기 메모리 장치에 포함되는 메모리 셀들 각각은 2비트 이상의 데이터를 저장하고, 상기 데이터에 의해 결정되는 복수의 상태들 중 하나를 갖는 저장 장치. - 제14항에 있어서,
상기 온-칩 밸리 서치 동작의 검출 정보는, 상기 복수의 상태들 각각에서 상기 읽기 전압의 레벨에 의해 온/오프가 결정되는 메모리 셀들의 개수를 나타내는 셀 카운트 정보, 및 상기 제2 읽기 동작의 디벨롭 시간을 결정하기 위해 상기 셀 카운트 정보로부터 선택되는 검출 케이스를 포함하는 저장 장치. - 제13항에 있어서,
상기 메모리 장치는, 상기 수정 읽기 전압을 이용하는 상기 제1 읽기 동작을 실행하여 획득한 읽기 데이터를, 상기 메모리 컨트롤러로 출력하는 저장 장치. - 메모리 컨트롤러로부터 제어 신호들을 수신하는 복수의 제어 핀들 및 상기 메모리 컨트롤러와 데이터 신호를 송수신하는 복수의 데이터 핀들을 포함하며, 상기 메모리 컨트롤러로부터 제1 읽기 커맨드 및 제2 읽기 커맨드를 수신하는 입출력 인터페이스;
복수의 메모리 셀들을 갖는 메모리 셀 어레이; 및
상기 제1 읽기 커맨드 및 상기 제2 읽기 커맨드에 응답하여, 상기 메모리 셀들 중 선택 메모리 셀들로부터 획득한 읽기 데이터를 상기 메모리 컨트롤러로 출력하는 로직 회로; 를 포함하며,
상기 제2 읽기 커맨드를 수신하면, 상기 로직 회로는 상기 메모리 셀들이 갖는 복수의 상태들의 문턱 전압 산포를 나타내는 셀 카운트 정보 및 상기 셀 카운트 정보에 기초하여 판단한 검출 케이스를 상기 메모리 컨트롤러로 출력하며,
상기 셀 카운트 정보를 출력한 이후 상기 메모리 컨트롤러로부터 상기 선택 메모리 셀들에 대한 상기 제1 읽기 커맨드를 재수신하면, 재수신한 상기 제1 읽기 커맨드에 포함된 읽기 전압으로 읽기 동작을 실행하고 상기 읽기 데이터를 상기 메모리 컨트롤러로 출력하는 메모리 장치. - 제17항에 있어서,
상기 로직 회로는, 상기 제2 읽기 커맨드에 응답하여 상기 셀 카운트 정보를 생성하고, 상기 검출 케이스를 판단하는 온-칩 밸리 서치 동작을 실행하는 OVS 회로를 포함하는 메모리 장치. - 제18항에 있어서,
상기 OVS 회로는, 상기 복수의 상태들 전체에 대해 상기 온-칩 밸리 서치 동작을 실행하는 메모리 장치. - 디폴트 레벨을 갖는 읽기 전압을 포함하는 제1 읽기 커맨드를 메모리 장치에 전송하는 단계;
온-칩 밸리 서치 동작을 실행하여 셀 카운트 정보를 생성하고 상기 셀 카운트 정보에 기초하여 검출 케이스를 판단하며, 상기 검출 케이스에 따라 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 제2 읽기 커맨드를 상기 메모리 장치에 전송하는 단계; 및
상기 제2 읽기 커맨드에 응답하여 상기 메모리 장치로부터 수신한 읽기 데이터의 에러를 정정하는 데에 실패하면, 상기 셀 카운트 정보를 미리 학습된 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압이 반영된 수정 읽기 전압을 포함하는 상기 제1 읽기 커맨드를 상기 메모리 장치에 전송하는 단계; 를 포함하는 메모리 장치의 제어 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200176129A KR20220086733A (ko) | 2020-12-16 | 2020-12-16 | 메모리 컨트롤러, 메모리 장치, 및 저장 장치 |
US17/376,932 US11393551B2 (en) | 2020-12-16 | 2021-07-15 | Memory controller, memory device, and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200176129A KR20220086733A (ko) | 2020-12-16 | 2020-12-16 | 메모리 컨트롤러, 메모리 장치, 및 저장 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220086733A true KR20220086733A (ko) | 2022-06-24 |
Family
ID=81941598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200176129A KR20220086733A (ko) | 2020-12-16 | 2020-12-16 | 메모리 컨트롤러, 메모리 장치, 및 저장 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11393551B2 (ko) |
KR (1) | KR20220086733A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220058278A (ko) * | 2020-10-30 | 2022-05-09 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
KR20220103228A (ko) * | 2021-01-14 | 2022-07-22 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 장치, 및 저장 장치 |
KR20230049223A (ko) * | 2021-10-06 | 2023-04-13 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 리드 방법 및 이를 수행하는 비휘발성 메모리 장치 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8406053B1 (en) | 2011-09-21 | 2013-03-26 | Sandisk Technologies Inc. | On chip dynamic read for non-volatile storage |
US9036417B2 (en) | 2012-09-06 | 2015-05-19 | Sandisk Technologies Inc. | On chip dynamic read level scan and error detection for nonvolatile storage |
US9812193B2 (en) | 2013-11-08 | 2017-11-07 | SK Hynix Inc. | Threshold estimation using bit flip counts and minimums |
KR20160005264A (ko) | 2014-07-04 | 2016-01-14 | 삼성전자주식회사 | 저장 장치 및 그것의 읽기 방법들 |
KR102290974B1 (ko) * | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
KR102609130B1 (ko) | 2016-02-17 | 2023-12-05 | 삼성전자주식회사 | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 |
KR102353405B1 (ko) | 2017-09-19 | 2022-01-19 | 삼성전자주식회사 | 특성 데이터 전처리 시스템, 장치, 방법 및 이를 이용한 메모리 제어 시스템 |
KR102470726B1 (ko) * | 2018-03-14 | 2022-11-25 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
-
2020
- 2020-12-16 KR KR1020200176129A patent/KR20220086733A/ko active Search and Examination
-
2021
- 2021-07-15 US US17/376,932 patent/US11393551B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11393551B2 (en) | 2022-07-19 |
US20220189575A1 (en) | 2022-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108122588B (zh) | 非易失性存储器设备及包括其的存储设备 | |
TWI459391B (zh) | Memory system | |
KR102634700B1 (ko) | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 | |
US9899077B2 (en) | Write abort detection for multi-state memories | |
JP5740296B2 (ja) | 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム | |
EP4040441A2 (en) | Memory controller, memory device and storage device | |
US9183945B2 (en) | Systems and methods to avoid false verify and false read | |
KR20220086733A (ko) | 메모리 컨트롤러, 메모리 장치, 및 저장 장치 | |
KR101669550B1 (ko) | 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 | |
US9484098B1 (en) | Smart reread in nonvolatile memory | |
US11514997B2 (en) | Controller, a storage device including the controller, and a reading method of the storage device | |
US9411669B2 (en) | Selective sampling of data stored in nonvolatile memory | |
US12062398B2 (en) | Nonvolatile memory device and storage device including nonvolatile memory device | |
US20110080791A1 (en) | Nonvolatile memory device and related method of operation | |
KR20150029404A (ko) | 반도체 장치, 메모리 시스템 및 이의 동작 방법 | |
CN113223593B (zh) | 存储单元的读取电压优化方法、3d存储器的控制器及其操作方法 | |
KR20220006467A (ko) | 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법 | |
KR20220103227A (ko) | 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법 | |
CN114446366A (zh) | 非易失性存储器装置、包括其的存储装置及其读取方法 | |
US9424942B2 (en) | Reduced timing and read verifying operation for non-volatile memory device | |
TWI846029B (zh) | 記憶體系統及半導體記憶裝置 | |
US11817170B2 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
KR20230090598A (ko) | 히스토리 데이터를 사용하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 | |
KR20230095157A (ko) | 패리티 관리 모듈을 포함하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 스토리지 장치의 동작 방법 | |
US20230086157A1 (en) | Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |