KR20220103228A - 메모리 컨트롤러, 메모리 장치, 및 저장 장치 - Google Patents

메모리 컨트롤러, 메모리 장치, 및 저장 장치 Download PDF

Info

Publication number
KR20220103228A
KR20220103228A KR1020210005212A KR20210005212A KR20220103228A KR 20220103228 A KR20220103228 A KR 20220103228A KR 1020210005212 A KR1020210005212 A KR 1020210005212A KR 20210005212 A KR20210005212 A KR 20210005212A KR 20220103228 A KR20220103228 A KR 20220103228A
Authority
KR
South Korea
Prior art keywords
read
memory device
offset voltage
voltage
memory
Prior art date
Application number
KR1020210005212A
Other languages
English (en)
Inventor
박세환
김진영
박일한
서영덕
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210005212A priority Critical patent/KR20220103228A/ko
Priority to US17/397,321 priority patent/US11556415B2/en
Priority to EP22150726.2A priority patent/EP4040441A3/en
Priority to CN202210035693.2A priority patent/CN114764313A/zh
Publication of KR20220103228A publication Critical patent/KR20220103228A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/42Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using opto-electronic devices, i.e. light-emitting and photoelectric devices electrically- or optically- coupled or feedback-coupled
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Read Only Memory (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 일 실시예에 따른 메모리 컨트롤러는, 읽기 동작을 실행한 메모리 장치로부터 수신한 읽기 데이터의 에러를 정정하는 데에 실패하는 경우, 메모리 장치가 메모리 셀들의 문턱 전압 산포로부터 셀 카운트 정보를 판단하고, 셀 카운트 정보에 기초하여 검출 케이스를 판단할 수 있다. 메모리 컨트롤러는, 검출 케이스에 대응하는 읽기 전압의 오프셋 전압을 고려하여 결정한 디벨롭 시간을 이용하여 읽기 동작을 실행하도록 메모리 장치를 제어할 수 있다. 읽기 데이터의 에러를 정정하는 데에 성공하면, 메모리 컨트롤러는 셀 카운트 정보를 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압을 이용하여 메모리 컨트롤러에 저장된 테이블을 업데이트할 수 있다.

Description

메모리 컨트롤러, 메모리 장치, 및 저장 장치{MEMORY CONTROLLER, MEMORY DEVICE AND STORAGE DEVICE}
본 발명은 메모리 컨트롤러, 메모리 장치, 및 저장 장치에 관한 것이다.
메모리 장치는 데이터를 기록하고 지우거나, 기록된 데이터를 읽어올 수 있는 기능을 제공할 수 있다. 메모리 장치는 메모리 컨트롤러가 전송하는 제어 신호들에 응답하여 프로그램 동작, 소거 동작, 읽기 동작 등을 실행하며, 읽기 동작에서 메모리 장치가 획득하는 데이터는 메모리 컨트롤러로 출력될 수 있다. 메모리 컨트롤러는, 읽기 동작의 결과로서 획득한 데이터의 에러를 정정할 수 있으며, 에러를 정정하는 데에 실패할 경우, 메모리 장치에 추가적인 읽기 동작을 지시할 수 있다.
본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 읽기 동작에 성공한 경우, 다음 읽기 동작을 위하여 읽기 전압에 대한 오프셋 전압을 기록하는 테이블을 정확한 값으로 업데이트하여, 읽기 동작의 신뢰성을 확보할 수 있는 메모리 컨트롤러, 메모리 장치, 및 저장 장치를 제공하고자 하는 데에 있다.
본 발명의 일 실시예에 따른 메모리 컨트롤러는, 적어도 하나의 메모리 장치에 제어 신호들을 제공하는 제어 핀들, 상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들, 읽기 전압에 대한 정적 오프셋 전압이 기록된 테이블 및 상기 메모리 장치에 포함되는 메모리 셀들의 문턱 전압 산포에 대응하는 셀 카운트 정보를 입력받아 상기 읽기 전압에 대한 동적 오프셋 전압을 출력하는 기계 학습 모델을 저장하는 버퍼 메모리, 데이터의 에러를 정정하는 에러 정정 회로, 및 상기 에러 정정 회로가 상기 메모리 장치로부터 획득한 읽기 데이터의 에러 정정에 실패하면, 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하는 최적화 읽기 동작을 상기 메모리 장치에 지시하는 프로세서를 포함하며, 상기 프로세서는, 상기 최적화 읽기 동작의 결과로서 상기 메모리 장치로부터 수신한 상기 셀 카운트 정보를 상기 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득하고, 상기 에러 정정 회로가 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러 정정에 성공하면 상기 동적 오프셋 전압으로 상기 테이블을 업데이트한다.
본 발명의 일 실시예에 따른 저장 장치는, 적어도 하나의 메모리 장치, 및 CLE(command latch enable) 신호, ALE(address latch enable) 신호, CE(chip enable) 신호, WE(write enable) 신호, RE(read enable) 신호, 데이터 스트로브(DQS) 신호 중 적어도 하나를 제공하는 제어 핀들, 및 데이터 신호를 송수신하는 데이터 핀들을 통해 상기 메모리 장치와 연결되고, 읽기 전압의 정적 오프셋 전압을 저장하는 테이블 및 동적 오프셋 전압을 결정하는 기계 학습 모델을 저장하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는, 제1 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제1 읽기 데이터의 에러 정정에 실패하면, 상기 메모리 장치가 온-칩 밸리 서치(OVS) 동작을 포함하는 제2 읽기 동작을 실행하도록 제어하며, 상기 제2 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제2 읽기 데이터의 에러 정정에 성공하면, 상기 OVS 동작으로 생성된 OVS 검출 정보 중 적어도 일부를 상기 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압으로 상기 테이블을 업데이트한다.
본 발명의 일 실시예에 따른 메모리 장치는, 메모리 컨트롤러로부터 제어 신호들을 수신하는 복수의 제어 핀들 및 상기 메모리 컨트롤러와 데이터 신호를 송수신하는 복수의 데이터 핀들을 포함하며, 상기 메모리 컨트롤러로부터 제1 읽기 커맨드 및 제2 읽기 커맨드를 수신하는 입출력 인터페이스, 복수의 메모리 셀들을 갖는 메모리 셀 어레이, 및 상기 제1 읽기 커맨드 및 상기 제2 읽기 커맨드 중 적어도 하나에 응답하여, 상기 메모리 셀들로부터 획득한 읽기 데이터를 상기 메모리 컨트롤러로 출력하는 로직 회로를 포함하며, 선택 메모리 셀들에 대해 상기 제1 읽기 커맨드에 대응하는 제1 읽기 동작을 실행한 후 상기 제2 읽기 커맨드를 수신하면 상기 제1 읽기 동작과 다른 제2 읽기 동작을 실행하며, 상기 제2 읽기 동작에서 생성된 검출 정보를 상기 메모리 컨트롤러로 출력하며, 선택 메모리 셀들에 대해 히스토리 읽기 동작을 지시하는 읽기 커맨드를 수신하면, 상기 읽기 커맨드에 포함된 읽기 전압은, 상기 제2 읽기 동작에서 판단한 최적 읽기 전압과 다른 레벨을 갖는다.
본 발명의 일 실시예에 따른 메모리 장치의 제어 방법은, 디폴트 레벨을 갖는 읽기 전압을 포함하는 제1 읽기 커맨드를 메모리 장치에 전송하는 단계, 상기 제1 읽기 커맨드에 대한 응답으로 수신한 읽기 데이터의 에러 정정에 실패하면, 온-칩 밸리 서치(OVS) 동작을 실행하여 셀 카운트 정보를 생성하고 상기 셀 카운트 정보에 기초하여 판단한 검출 케이스에 따라 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 제2 읽기 커맨드를 상기 메모리 장치에 전송하는 단계, 및 상기 제2 읽기 커맨드에 대한 응답으로 수신한 읽기 데이터의 에러 정정에 성공하면, 상기 셀 카운트 정보를 미리 학습된 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압으로, 상기 읽기 전압의 정적 오프셋 전압을 기록하는 테이블을 업데이트하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 메모리 컨트롤러는 서로 다른 제1 읽기 커맨드와 제2 읽기 커맨드를 메모리 장치에 전송할 수 있다. 제1 읽기 커맨드로 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 데에 실패하면, 온-칩 밸리 서치 동작의 실행을 메모리 장치에 지시하는 제2 읽기 커맨드가 메모리 장치에 전송될 수 있다. 제2 읽기 커맨드로 메모리 장치로부터 획득한 읽기 데이터의 에러를 정정하는 데에 성공하면, OVS 동작의 결과로 수신한 셀 카운트 정보를 기계 학습 모델에 입력하여 획득한 오프셋 전압으로, 메모리 컨트롤러 내에 저장된 테이블을 업데이트할 수 있다. 따라서, 읽기 동작에 최적화된 오프셋 전압을 테이블에 기록함으로써, 읽기 동작의 신뢰성을 확보하고 읽기 동작에 소요되는 시간을 단축하여 메모리 장치와 저장 장치의 성능을 최적화할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 메모리 컨트롤러와 메모리 장치를 포함하는 저장 장치를 간단하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치에 포함되는 메모리 셀 어레이를 간단하게 나타낸 회로도이다.
도 4 내지 도 6은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 흐름도들이다.
도 7은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 10 및 도 11은 본 발명의 일 실시예에 따른 메모리 장치의 온-칩 밸리 서치 동작을 설명하기 위한 도면들이다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
도 14 내지 도 18은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
도 19 내지 도 21은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
도 22는 본 발명의 일 실시예에 따른 메모리 컨트롤러에 포함되는 기계 학습 모델을 설명하기 위한 도면이다.
도 23은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면이다.
도 24 내지 도 27은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 28은 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.
도 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 정적 오프셋 전압에 의해 결정되거나, 또는 기계 학습 모델(25)에 의해 결정될 수 있다. 제3 정적 오프셋 전압은 히스토리 읽기 동작을 위한 읽기 전압의 최적 레벨(optimal read level) 정보를 포함할 수 있다. 히스토리 읽기 동작에 대한 자세한 것은, 본 발명의 참고문헌으로 결합된 US 10,120,589, 및 US 10,373,693 등을 참조하여 이해될 수 있을 것이다.
읽기 동작의 결과로서 메모리 장치(10)로부터 획득한 읽기 데이터의 에러가 에러 정정 회로(22)에서 정정되지 않을 경우, 메모리 컨트롤러(20)는 메모리 장치(10)에 읽기 동작을 다시 지시할 수 있다. 이때, 메모리 컨트롤러(20)가 메모리 장치(10)에 지시하는 읽기 동작은, 메모리 장치(10)가 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하여 출력하는 최적화 읽기 동작일 수 있다. 최적화 읽기 동작에서 조절되는 읽기 동작의 동작 조건은 디벨롭 시간 또는 읽기 전압의 레벨일 수 있다. 일례로, 최적화 읽기 동작은 메모리 장치(10)가 셀 카운트 정보를 획득하고 셀 카운트 정보 기반으로 검출 케이스를 판단하는 OVS 동작인 제1 센싱 동작 및 제1 센싱 동작에서 판단한 검출 케이스에 따라 읽기 동작을 실행하고 읽기 데이터를 생성하는 제2 센싱 동작을 포함하는 OVS 읽기 동작일 수 있다.
메모리 컨트롤러(20)는, 제2 센싱 동작으로 생성되는 읽기 데이터는 물론, 제1 센싱 동작에서 생성되는 셀 카운트 정보 및 셀 카운트 정보에 따라 판단된 검출 케이스를 검출 정보로서 수신할 수 있다. 셀 카운트 정보는 읽기 전압의 레벨 및/또는 디벨롭 시간에 따라 턴-온 또는 턴-오프되는 메모리 셀들의 개수를 포함할 수 있다.
제2 센싱 동작으로 생성되는 읽기 데이터의 에러가 에러 정정 회로(22)에서 정정되면, 프로세서(21)는 검출 정보로 수신한 셀 카운트 정보를 기계 학습 모델(25)에 입력할 수 있다. 기계 학습 모델(25)은 셀 카운트 정보 등을 입력받아 읽기 전압에 대한 최적의 오프셋 전압을 출력하도록 미리 학습될 수 있다. 실시예들에 따라, 기계 학습 모델(25)은 셀 카운트 정보와 함께, 최적화 읽기 동작이 실행된 메모리 셀들의 주소, 메모리 셀들의 열화 정보 등을 추가로 입력받을 수도 있다.
프로세서(21)는 기계 학습 모델(25)이 출력한 오프셋 전압을 이용하여, 제3 테이블을 업데이트할 수 있다. 따라서, 최적화 읽기 동작에 의해 메모리 장치(10)의 로직 회로(12)가 읽기 전압에 반영한 오프셋 전압과, 프로세서(21)가 제3 테이블을 업데이트하는 데에 이용한 오프셋 전압이 서로 다른 레벨을 가질 수도 있다.
제2 센싱 동작으로 생성되는 읽기 데이터에 대해, 에러 정정 회로(22)가 에러 정정에 실패하면, 프로세서(21)는 셀 카운트 정보를 기계 학습 모델(25)에 입력할 수 있다. 프로세서(21)는 기계 학습 모델(25)이 출력하는 오프셋 전압을 이용하여 수정 읽기 전압을 결정하고, 수정 읽기 전압으로 읽기 동작을 다시 실행할 것을 메모리 장치(10)에 지시할 수 있다.
본 발명의 일 실시예에서는, 일반적인 읽기 동작으로 획득한 읽기 데이터의 에러가 정정되지 않는 경우, 메모리 컨트롤러(20)가 메모리 장치(10)에 OVS 동작을 포함하는 최적화 읽기 동작을 실행하도록 지시할 수 있다. 최적화 읽기 동작으로 획득한 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러(20)는 메모리 장치(10)로부터 OVS 동작의 결과로 수신한 셀 카운트 정보를 기계 학습 모델(25)에 입력하여 동적 오프셋 전압을 획득하고, 동적 오프셋 전압으로 제3 테이블을 업데이트할 수 있다. 따라서, 히스토리 테이블인 제3 테이블에 기록된 오프셋 전압을 최적화된 레벨로 유지할 수 있으며, 읽기 동작의 신뢰성을 개선하고 읽기 동작에 소요되는 시간 등을 단축시켜 읽기 동작의 레이턴시를 개선할 수 있다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 2를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(120), 페이지 버퍼부(130), 입출력 버퍼(140), 컨트롤 로직(150), 전압 생성기(160), 및 셀 카운터(170) 등을 포함할 수 있다. 일례로, 도 2에 도시한 일 실시예에 따른 메모리 장치(100)는 낸드 플래시 메모리일 수 있다.
메모리 셀 어레이(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)는 검출 정보를 외부의 메모리 컨트롤러로 출력할 수 있다. 실시예에 따라, 검출 정보는 메모리 컨트롤러가 전송하는 특수 커맨드, 예를 들어 겟 피쳐(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)를 포함할 수 있다. 도 3에는 복수의 메모리 낸드 스트링들(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 내지 도 6은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 흐름도들이다.
먼저 도 4를 참조하면, 본 발명의 일 실시예에 따른 메모리 컨트롤러는, 메모리 장치에 제1 읽기 커맨드를 전송할 수 있다(S10). 제1 읽기 커맨드는 메모리 컨트롤러가 결정한 레벨을 갖는 읽기 전압을 포함할 수 있다. 제1 읽기 커맨드를 수신한 메모리 장치는, 제1 읽기 커맨드에 포함된 읽기 전압을 선택 메모리 셀들에 연결된 선택 워드라인에 입력하고, 비선택 워드라인들에는 패스 전압을 입력하여 읽기 동작을 실행할 수 있다. 읽기 동작이 완료되면, 메모리 컨트롤러는 메모리 장치로부터 읽기 데이터를 수신할 수 있다(S11).
메모리 컨트롤러의 에러 정정 회로는, 읽기 데이터의 에러를 검사 및 정정할 수 있다(S12). 에러 정정 회로가 읽기 데이터의 에러 정정에 성공하면, 읽기 동작이 종료될 수 있다. 반면 에러 정정 회로가 읽기 데이터의 에러 정정에 실패하면, 메모리 컨트롤러는 제2 읽기 커맨드를 메모리 장치에 전송할 수 있다(S13). 제2 읽기 커맨드는 OVS 읽기 커맨드일 수 있으며, 제2 읽기 커맨드를 수신한 메모리 장치는 OVS 읽기 동작을 실행할 수 있다. 제2 읽기 커맨드를 수신하면, 메모리 장치는 OVS 회로를 활성화시켜 메모리 셀들의 문턱 전압 산포에 따른 셀 카운트 정보를 획득하고, 셀 카운트 정보에 따라 최적의 검출 케이스를 찾을 수 있다. 또한 메모리 장치는, 최적의 검출 케이스에 따라 읽기 전압에 반영되어야 하는 오프셋 전압을 고려하여 디벨롭 시간을 조절하는 방식으로 읽기 동작을 실행할 수 있다.
메모리 컨트롤러는 메모리 장치로부터 읽기 데이터와 함께, 셀 카운트 정보 및 검출 케이스 등을 포함하는 검출 정보를 수신할 수 있다(S14). 메모리 컨트롤러는 검출 정보를 이용하여, 메모리 컨트롤러 내에 저장되고 읽기 전압에 대한 오프셋 전압이 기록된 테이블을 업데이트할 수 있다(S15).
일례로, S15 단계에서 업데이트되는 테이블은 제1 읽기 커맨드에 포함되는 읽기 전압의 레벨을 결정하는 데에 필요한 오프셋 전압을 기록하는 히스토리 테이블일 수 있다. 일 실시예에서, 제1 읽기 커맨드에 포함되는 읽기 전압의 레벨은, 디폴트 전압과 히스토리 테이블에 기록된 오프셋 전압의 합으로 결정될 수 있다. 본 발명의 일 실시예에서는, 히스토리 테이블을 업데이트함에 있어서, S14 단계에서 수신한 검출 정보에 포함된 셀 카운트 정보를 이용할 수 있다. 따라서, 다음 읽기 동작에서 메모리 장치에 전송되는 제1 읽기 커맨드에 포함되는 읽기 전압의 레벨을 효과적으로 최적화할 수 있으며, 읽기 동작의 신뢰성 및 읽기 동작의 속도를 개선할 수 있다.
다음으로 도 5를 참조하면, 본 발명의 일 실시예에 따른 저장 장치의 동작은, 메모리 컨트롤러가 제1 읽기 커맨드를 메모리 장치에 전송하고(S20), 그에 대한 응답으로 메모리 장치로부터 읽기 데이터를 수신하는 것으로 시작될 수 있다(S21). 일례로 제1 읽기 커맨드에 포함되는 읽기 전압의 레벨은, 디폴트 전압에 의해 결정되거나, 또는 읽기 동작에 성공한 이전 읽기 전압의 레벨을 참조하여 결정될 수도 있다. 메모리 컨트롤러의 에러 정정 회로는 읽기 데이터의 에러를 검사 및 정정할 수 있다(S22).
S22 단계에서 에러 정정 회로가 에러를 정정하는 데에 성공하거나 또는 에러가 검출되지 않으면, 별도의 추가 동작 없이 읽기 동작을 종료할 수 있다. 반면, S22 단계에서 에러 정정 회로가 에러를 정정하는 데에 실패하면, 메모리 컨트롤러는 OVS 동작을 포함하는 제2 읽기 커맨드를 메모리 장치에 전송할 수 있다(S23). 메모리 장치는, 선택 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트를 수집하고 그에 따른 검출 케이스를 판단하는 제1 센싱 동작과, 제1 센싱 동작에서 판단한 검출 케이스에 대응하는 오프셋 전압에 따라 디벨롭 시간을 변경하여 읽기 데이터를 생성하는 제2 센싱 동작을 포함하는 OVS 읽기 동작을 실행 수 있다.
메모리 컨트롤러는 메모리 장치로부터 검출 정보 및 읽기 데이터를 수신할 수 있다(S24). 검출 정보는 제1 센싱 동작에서 생성되는 셀 카운트 정보 및 검출 케이스 등을 포함할 수 있다. 메모리 컨트롤러는, 셀 카운트 정보 등을 입력받아 읽기 전압에 대한 최적의 오프셋 전압을 출력하도록 미리 학습된 기계 학습 모델에 셀 카운트 정보를 입력하여, 오프셋 전압을 획득할 수 있다(S25). S25 단계에서 획득하는 오프셋 전압은, 기계 학습 모델에 입력되는 셀 카운트 정보에 따라 달라지는 동적 오프셋 전압일 수 있다.
에러 정정 회로는 제2 읽기 커맨드에 대한 응답으로 메모리 장치로부터 수신한 읽기 데이터의 에러를 검사 및 정정할 수 있다(S26). S26 단계에서 에러 정정 회로가 에러를 정정하는 데에 실패하면, 메모리 컨트롤러는 S25 단계에서 획득한 오프셋 전압을 이용하여 수정 읽기 전압을 결정하고, 수정 읽기 전압을 이용하는 읽기 동작을 메모리 장치에 지시할 수 있다(S27). 일례로, S27 단계에서, 메모리 컨트롤러는 수정 읽기 전압을 포함하는 제1 읽기 커맨드를 메모리 장치에 전송하고, 메모리 장치는 수정 읽기 전압을 선택 메모리 셀들에 연결된 선택 워드라인에 입력하여 읽기 동작을 실행할 수 있다.
한편, S26 단계에서 에러 정정 회로가 에러를 정정하는 데에 성공하거나 또는 에러가 검출되지 않으면, 메모리 컨트롤러는 S25 단계에서 기계 학습 모델이 출력한 오프셋 전압의 적합성을 판단할 수 있다(S28). S28 단계에서 오프셋 전압의 적합성이 존재한다고 판단되면, 메모리 컨트롤러는 기계 학습 모델이 출력한 오프셋 전압으로 메모리 컨트롤러 내에 저장된 테이블을 업데이트할 수 있다(S29). 반면, S28 단계에서 오프셋 전압의 적합성이 존재한다고 판단되지 않으면, 메모리 컨트롤러는 S24 단계에서 수신한 검출 정보에 포함되는 검출 케이스와 매칭되는 오프셋 전압으로 테이블을 업데이트할 수 있다(S30).
일례로 메모리 컨트롤러는 앞서 설명한 바와 같이 제1 내지 제3 테이블들을 포함할 수 있다. S28 단계에서 오프셋 전압의 적합성이 존재한다고 판단되면, S25 단계에서 기계 학습 모델이 출력한 오프셋 전압을 이용하여 히스토리 테이블인 제3 테이블을 업데이트할 수 있다. 반면, S28 단계에서 오프셋 전압의 적합성이 존재하지 않는다고 판단되면, S24 단계에서 획득한 검출 케이스와 제2 테이블을 참조하여 히스토리 테이블인 제3 테이블을 업데이트할 수 있다.
S25 단계에서 기계 학습 모델이 출력한 오프셋 전압은, 검출 케이스와 제2 테이블을 참조하여 결정되는 오프셋 전압과 다른 레벨을 가질 수 있다. 일례로 메모리 컨트롤러는, 검출 케이스와 제2 테이블을 참조하여 결정되는 오프셋 전압과, S25 단계에서 기계 학습 모델이 출력한 오프셋 전압 사이의 차이가 미리 정해진 임계값 이하인 경우, S28 단계에서 적합성이 존재한다고 판단할 수 있다.
다음으로 도 6을 참조하면, 본 발명의 일 실시예에 따른 저장 장치의 동작은, 메모리 컨트롤러가 읽기 커맨드를 생성하는 것으로 시작될 수 있다(S40). 일례로 저장 장치의 메모리 컨트롤러는, 외부의 호스트로부터 수신한 읽기 요청에 응답하여 읽기 커맨드를 생성할 수 있다. 읽기 커맨드를 생성하기 위해, 메모리 컨트롤러는 읽기 전압의 레벨을 결정할 수 있다.
메모리 컨트롤러는 읽기 전압의 레벨을 결정하기 위해, 호스트로부터 수신한 읽기 요청에 대한 히스토리를 파악할 수 있다(S41). 일례로 메모리 컨트롤러는, 호스트로부터 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리 등에 존재하는지 판단할 수 있다. 현재 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리에 존재하면, 메모리 컨트롤러는 버퍼 메모리 등의 테이블에 기록된 히스토리 읽기 레벨을 참조하여 읽기 전압의 레벨을 결정할 수 있다. 따라서, 메모리 장치가 히스토리 읽기 동작을 실행할 수 있다(S42). 반면, 현재 수신한 읽기 요청과 대응하는 이전의 읽기 요청이 버퍼 메모리에 존재하지 않으면, 메모리 컨트롤러는 디폴트 레벨로 읽기 전압의 레벨을 결정하고, 메모리 장치는 노멀 읽기 동작을 실행할 수 있다(S43).
S42 또는 S43 단계에서 실행되는 읽기 동작의 결과로 수신한 읽기 데이터에 대해, 메모리 컨트롤러의 에러 정정 회로는 에러 정정 동작을 실행할 수 있다(S44). S44 단계에서 읽기 데이터의 에러 정정에 성공하거나, 읽기 데이터에서 에러가 검출되지 않으면, 별도의 추가 동작 없이 읽기 동작이 종료될 수 있다. 반면, S44 단계에서 읽기 데이터의 에러 정정에 실패하면, 메모리 컨트롤러는 OVS 읽기 커맨드를 생성할 수 있다(S45).
메모리 컨트롤러로부터 OVS 읽기 커맨드를 수신한 메모리 장치는 OVS 읽기 동작을 실행할 수 있다(S46). 앞서 설명한 바와 같이, OVS 읽기 동작에서 메모리 장치는, 메모리 셀들의 문턱 전압 산포를 나타내는 셀 카운트 정보를 수집하여 검출 케이스를 판단하고, 검출 케이스에 대응하는 오프셋 전압을 고려하여 디벨롭 시간을 조절하는 읽기 동작을 실행할 수 있다. 실시예들에 따라 메모리 장치는, 셀 카운트 정보 및 검출 케이스 등을 OVS 읽기 동작의 검출 정보로 생성할 수 있다. 일례로 메모리 장치는, 메모리 컨트롤러로부터 수신하는 특수 커맨드에 응답하여 검출 정보를 메모리 컨트롤러로 출력할 수 있다.
메모리 컨트롤러는 기계 학습 모델을 이용하여 오프셋 전압을 획득할 수 있다(S47). 일례로, 메모리 컨트롤러는 OVS 읽기 동작의 결과로서 검출 정보를 메모리 장치로부터 수신하며, 검출 정보에 포함된 셀 카운트 정보를 기계 학습 모델에 입력하여 오프셋 전압을 획득할 수 있다. 한편, 메모리 컨트롤러의 에러 정정 회로는, OVS 읽기 동작의 결과로 메모리 장치로부터 수신한 읽기 데이터의 에러를 검출 및 정정할 수 있다(S48).
S48 단계에서 에러가 검출되지 않거나 에러 정정에 성공하면, 메모리 컨트롤러는 앞서 S47 단계에서 획득한 오프셋 전압의 적합성을 판단할 수 있다(S49). S49 단계의 판단 결과 오프셋 전압의 적합성이 인정되면, 메모리 컨트롤러는 기계 학습 모델이 출력한 오프셋 전압으로 히스토리 테이블을 업데이트할 수 있다(S50). 반면, 오프셋 전압의 적합성이 인정되지 않으면, 메모리 컨트롤러는 OVS 읽기 동작의 결과로 수신한 검출 정보 중에서 검출 케이스를 참조하여 오프셋 전압을 새로 정의하고, 해당 오프셋 전압으로 히스토리 테이블을 업데이트할 수 있다(S51).
S48 단계에서 에러 정정에 실패하면, 메모리 장치는 수정 읽기 전압을 이용하여 읽기 동작을 실행할 수 있다(S52). 일례로, S48 단계에서 에러 정정에 실패하면, 메모리 컨트롤러는 S47 단계에서 획득한 오프셋 전압을 이용하여 수정 읽기 전압을 결정하고, 수정 읽기 전압을 포함하는 읽기 커맨드를 생성하여 메모리 장치로 전송할 수 있다.
메모리 컨트롤러는 메모리 장치로부터 다시 수신한 읽기 데이터에 대한 에러 정정을 시도할 수 있다(S53). S53 단계에서 에러 정정에 성공하면, 메모리 컨트롤러는 수정 읽기 전압에 반영된 오프셋 전압, 다시 말해 S47 단계에서 획득한 오프셋 전압으로 히스토리 테이블을 업데이트할 수 있다(S50). S53 단계에서 에러 정정에 실패하면, 데이터 복구를 위하여 메모리 장치가 오프 칩 밸리 서치 동작을 실행할 수 있다(S54).
일례로, 오프-칩 밸리 서치 동작은, 미리 결정된 전압 구간을 미리 결정된 레벨만큼 증가 혹은 감소시키면서 순차적으로 스캐닝함으로써, 문턱 전압 산포의 골(Valley)을 찾는 동작일 수 있다. 오프 칩 밸리 서치 동작으로 찾은 문턱 전압 산포의 골에 대응하는 레벨의 읽기 전압으로 다시 읽기 동작이 실행되며, 읽기 동작에 성공했는지 여부를 메모리 컨트롤러가 판단할 수 있다(S55). S55 단계에서 읽기 동작에 성공한 것으로 판단되면, 메모리 컨트롤러는 오프-칩 밸리 서치 동작에서 결정된 읽기 전압을 참조하여 히스토리 테이블을 업데이트할 수 있다(S50). 반면, S55 단계에서 읽기 동작에 실패한 것으로 판단되면, 메모리 컨트롤러는 읽기 동작의 실패를 호스트에 출력할 수 있다(S56).
도 7은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 동작을 설명하기 위한 도면이다.
도 7은 최적의 읽기 레벨을 메모리 컨트롤러(200) 내에서 읽기 전압의 레벨을 최적화하는 방법을 개념적으로 나타낸 도면일 수 있다. 도 7을 참조하면, 메모리 컨트롤러(200)는 버퍼 메모리 등에 저장된 제1 내지 제3 테이블들(211-213)과 기계 학습 모델(220)을 이용하여 최적의 읽기 레벨을 결정할 수 있다.
제1 테이블(211)은 프로그램 동작 이후 경과 시간, 동작 온도, 프로그램/소거 동작 사이클, 읽기 사이클 등의 열화 정보에 따른 제1 정적 오프셋 전압을 기록할 수 있다. 제2 테이블(212)은 OVS 읽기 동작을 실행한 메모리 장치로부터 수신한 검출 정보 중에서 검출 케이스(202)에 매칭된 제2 정적 오프셋 전압을 기록할 수 있다. 제3 테이블(213)은 히스토리 읽기 동작에서 읽기 전압을 결정하기 위해 참조하는 히스토리 테이블이며, 제3 정적 오프셋 전압을 기록할 수 있다.
제3 테이블(213)의 제3 정적 오프셋 전압은 기계 학습 모델(220)의 출력에 의해서도 업데이트되거나, 또는 제1 정적 오프셋 전압과 제2 정적 오프셋 전압의 합에 의해 업데이트될 수 있다. 기계 학습 모델(220)은 OVS 읽기 동작의 결과로 수신한 검출 정보 중 셀 카운트 정보(201)를 이용하여 동적 오프셋 전압을 출력할 수 있다. OVS 읽기 동작으로 메모리 장치로부터 수신한 읽기 데이터의 에러 정정에 성공하고 동적 오프셋 전압의 적합성이 인정되면, 동적 오프셋 전압으로 제3 테이블(213)이 업데이트될 수 있다.
반면, OVS 읽기 동작으로 메모리 장치로부터 수신한 읽기 데이터의 에러 정정에 성공하고 동적 오프셋 전압의 적합성이 인정되지 않으면, 제1 테이블(211)로부터 선택되는 제1 정적 오프셋 전압과, 제2 테이블(212)에 검출 케이스(202)를 적용하여 선택되는 제2 정적 오프셋 전압의 합으로 제3 테이블(213)이 업데이트될 수 있다. OVS 읽기 동작으로 메모리 장치로부터 수신한 읽기 데이터의 에러 정정에 실패하면, 읽기 전압의 디폴트 전압에 동적 오프셋 전압을 더하여 수정 읽기 전압의 레벨을 결정할 수 있다. 수정 읽기 전압을 이용하는 읽기 동작에서 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러는 동적 오프셋 전압으로 제3 테이블(213)을 업데이트할 수 있다.
도 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)에 할당되는 데이터는 달라질 수 있다.
일례로, 최하위 비트(LSB)의 읽기 동작은, 소거 상태(E)와 제1 프로그램 상태(P1) 사이의 제1 읽기 전압(RP1)을 이용한 제1 읽기 동작, 및 제4 프로그램 상태(P4)와 제5 프로그램 상태(P5) 사이의 제5 읽기 전압(RP5)을 이용한 제2 읽기 동작을 포함할 수 있다. 유사하게, 최상위 비트(MSB)의 읽기 동작은 제2 프로그램 상태(P2)와 제3 프로그램 상태(P3) 사이의 제3 읽기 전압(RP3)을 이용한 제1 읽기 동작, 및 제6 프로그램 상태(P6)와 제7 프로그램 상태(P7) 사이의 제7 읽기 전압(RP7)을 이용한 제2 읽기 동작을 포함할 수 있다. 중간 비트(CSB)의 읽기 동작은 제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 읽기 동작은 문턱 전압 산포로부터 획득한 셀 카운트 정보에 기초하여 최적의 검출 케이스를 판단하는 동작, 최적의 검출 케이스에 따라 읽기 전압에 반영되어야 하는 오프셋 전압을 고려하여 디벨롭 시간을 조절하는 동작 등을 포함할 수 있다.
일례로, OVS 읽기 동작에서, 메모리 장치의 로직 회로는 제1 검출 케이스(C1)에 대응하는 제1 읽기 전압을 입력할 수 있다. 제1 읽기 전압보다 낮은 문턱 전압을 갖는 메모리 셀들과, 제1 읽기 전압보다 높은 문턱 전압을 갖는 메모리 셀들에서 서로 다른 데이터를 획득하며, 획득한 데이터는 페이지 버퍼의 래치에 저장될 수 있다. 다음으로, 상기 설명한 바와 같은 방식으로, 제2 및 제3 검출 케이스(C2, C3)에 대응하는 제2 및 제3 읽기 전압들을 순차적으로 입력하며, 획득한 데이터를 래치에 저장할 수 있다.
다음으로 셀 카운트를 계산하는 카운트 동작이 실행될 수 있다. 우선, 제1 읽기 전압을 입력하여 획득한 데이터와 제2 읽기 전압을 입력하여 획득한 데이터에 대하여 XOR 연산을 실행하고 결과가 `1`인 XOR 연산의 개수를 제1 개수(X)로 결정할 수 있다. XOR 연산의 결과가 1이라는 것은 제1 읽기 전압을 입력하여 획득한 데이터와 제2 읽기 전압을 입력하여 획득한 데이터가 서로 다른 케이스를 나타낼 수 있다. 마찬가지로, 제2 읽기 전압을 입력하여 획득한 데이터와, 제3 읽기 전압을 입력하여 획득한 데이터에 대해 XOR 연산을 실행하고 결과가 `1`인 XOR 연산의 개수를 제2 개수(Y)로 결정할 수 있다. 일 실시예에서, 제1 개수(X)는 문턱 전압이 제1 읽기 전압보다 크고 제2 읽기 전압보다 작은 메모리 셀들의 개수에 대응하고, 제2 개수(Y)는 문턱 전압이 제2 읽기 전압보다 크고 제3 읽기 전압보다 작은 메모리 셀들의 개수에 대응할 수 있다.
메모리 장치의 로직 회로는, 제1 개수(X)와 제2 개수(Y)를 이용하여 문턱 전압의 산포를 추정하고, 추정한 산포에 적합한 검출 케이스를 판단할 수 있다. 일례로, 검출 케이스를 판단하는 동작은 제1 센싱 동작으로 정의될 수 있으며, 제1 센싱 동작에서 판단한 검출 케이스에 따라 실제로 읽기 데이터를 생성하는 제2 센싱 동작이 실행될 수 있다.
도 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 페이지 버퍼들(PBG2)에서 실행되는 래치 리셋(nS) 센싱 동작과 래치 셋(S) 센싱 동작의 온-셀 카운트 값을 이용하여 제2 셀 카운트 정보가 산출될 수 있다.
제1 센싱 동작에서 획득한 제1 셀 카운트 정보와 제2 셀 카운트 정보에 근거로 하여, 메모리 셀들의 상태들(S1, S2)에 따른 검출 케이스들(C1-C5) 중에서 최적의 읽기 레벨에 대응하는 검출 케이스가 결정될 수 있다. 일례로, 최적의 읽기 레벨에 대응하는 검출 케이스는, 메모리 셀들이 갖는 상태들(S1, S2)의 산포 골에 대응할 수 있다. 제2 센싱 동작에서는, 제1 센싱 동작에서 결정한 검출 케이스를 참조하여, 디벨롭 시간 정보(tSODev1-tSODev5) 중 하나를 선택할 수 있다.
OVS 읽기 동작에서 생성된 셀 카운트 정보와 검출 케이스 등은, 검출 정보로서 OVS 읽기 동작으로 생성된 읽기 데이터와 함께 메모리 컨트롤러에 출력될 수 있다. OVS 읽기 동작으로 생성된 읽기 데이터에 에러가 없거나, 에러가 성공적으로 정정되면, 메모리 컨트롤러는 셀 카운트 정보를 메모리 컨트롤러 내부의 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득하고, 동적 오프셋 전압의 적합성을 판단한 후 메모리 컨트롤러 내부에 저장된 테이블을 업데이트할 수 있다. 앞서 설명한 바와 같이, 상기 테이블은 히스토리 읽기 동작에서 읽기 전압에 적용될 오프셋 전압을 기록하는 히스토리 테이블일 수 있다. 동적 오프셋 전압의 적합성이 인정되지 않으면, 메모리 컨트롤러는 검출 케이스에 대응하는 오프셋 전압으로 히스토리 테이블을 업데이트할 수 있다.
OVS 읽기 동작으로 생성된 읽기 데이터의 에러 정정에 실패하면, 메모리 컨트롤러는 동적 오프셋 전압을 반영한 수정 읽기 전압을 이용하여 읽기 동작을 다시 한 번 실행하도록 메모리 장치를 제어할 수 있다. 메모리 장치가 다시 실행한 읽기 동작의 결과로 획득한 읽기 데이터에 에러가 없거나 에러가 성공적으로 정정되면, 동적 오프셋 전압을 이용하여 히스토리 테이블을 업데이트할 수 있다.
도 10 및 도 11을 참조하여 설명한 일 실시예에서는, 선택 메모리 셀들에 입력되는 읽기 전압의 레벨을 일정하게 변화시키면서 제1 개수(X)와 제2 개수(Y)를 각각 획득하고, 그로부터 검출 케이스 및 그에 대응하는 오프셋 전압을 결정할 수 있다.
도 12 및 도 13은 본 발명의 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 도면들이다.
먼저 도 12를 참조하면, OVS 읽기 동작은 메모리 셀들이 가질 수 있는 상태들(E-P7) 중 일부(P5-P7)에만 적용될 수 있다. 일례로, OVS 읽기 동작이 적용되는 일부의 상태들(P5-P7)은 상위 상태로서, 문턱 전압의 열화 가능성이 높은 상태들일 수 있다. 따라서, 도 12에 도시한 일 실시예에서는, 최상위 비트(MSB), 중간 비트(CSB), 및 최하위 비트(LSB)를 판단하기 위한 읽기 동작들 각각에서 OVS 읽기 동작이 한 번씩 실행될 수 있다.
다음으로 도 13을 참조하면, OVS 읽기 동작은 메모리 셀들이 가질 수 있는 모든 상태들(E-P7)에 적용될 수 있다. 따라서 모든 상태들(E-P7)에서 셀 카운트 정보가 산출되고, 최상위 비트(MSB), 중간 비트(CSB), 및 최하위 비트(LSB)를 판단하기 위한 읽기 동작들 각각에서 OVS 읽기 동작이 복수 회 실행될 수도 있다.
본 발명의 일 실시예에서는, OVS 읽기 동작으로 생성된 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러가 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 동적 오프셋 전압은 적합성 판단 이후, 히스토리 테이블을 업데이트하는 데에 이용될 수 있다. 또는, OVS 읽기 동작으로 생성된 읽기 데이터의 에러 정정에 실패한 경우, 동적 오프셋 전압이 반영된 수정 읽기 전압을 이용하여 메모리 장치가 다시 읽기 동작을 실행할 수 있다.
도 14 내지 도 18은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
먼저 도 14 및 도 15를 참조하면, 최상위 비트(MSB)를 결정하기 위한 OVS 읽기 동작이 실행될 수 있다. 앞서 도 8 및 도 9를 참조하여 설명한 바와 같이, 최상위 비트(MSB)를 결정하기 위해서는, 제6 프로그램 상태(P6)와 제7 프로그램 상태(P7) 사이의 읽기 전압을 이용하는 읽기 동작이 실행될 수 있다. 다만, 도 14 및 도 15에 도시한 바와 같이, 문턱 전압 산포가 열화되어 제6 프로그램 상태(P6)의 문턱 전압 산포와 제7 프로그램 상태(P7)의 문턱 전압 산포가 중첩될 수 있으며, 메모리 컨트롤러가 읽기 데이터의 에러 정정에 실패할 수 있다. 에러 정정에 실패하면, 메모리 컨트롤러는 메모리 장치에 OVS 읽기 동작을 지시할 수 있다.
앞서 설명한 바와 같이, OVS 읽기 동작은 셀 카운트 정보를 이용하여 검출 케이스를 판단하는 제1 센싱 동작과, 검출 케이스를 참조하여 읽기 데이터를 획득하는 제2 센싱 동작을 포함할 수 있다. 도 14에 도시한 일 실시예에서 메모리 장치는, 검출 케이스를 제1 검출 케이스(C1)로 결정할 수 있으며, 제1 검출 케이스(C1)에 대응하는 OVS 읽기 전압(RDOVS)을 고려하여 제2 센싱 동작의 디벨롭 시간을 조절할 수 있다. 일례로, OVS 읽기 전압(RDOVS)은, OVS 읽기 동작에 포함된 읽기 전압에 제1 검출 케이스(C1)에 대응하는 제1 오프셋 전압을 반영한 레벨을 가질 수 있다. 일례로 제1 오프셋 전압은 -80mV일 수 있다.
메모리 컨트롤러는, 제1 검출 케이스(C1)와 함께, 제1 검출 케이스(C1)를 결정하는 데에 이용한 셀 카운트 정보를 수신할 수 있다. 메모리 컨트롤러는 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 일례로, 동적 오프셋 전압은 제1 오프셋 전압과 다른 레벨을 가질 수 있다. 도 15에 도시한 일 실시예에서, 동적 오프셋 전압은 -76mV일 수 있다.
따라서, 도 15에 도시한 바와 같이, OVS 읽기 동작에 포함된 읽기 전압에 동적 오프셋 전압을 반영한 수정 읽기 전압(RDML)은 OVS 읽기 전압(RDOVS)과 다른 레벨을 가질 수 있다. 제2 센싱 동작에서 획득한 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러는 동적 오프셋 전압과 제1 오프셋 전압의 차이를 소정의 임계값과 비교하여 동적 오프셋 전압의 적합성을 판단할 수 있다. 동적 오프셋 전압의 적합성이 인정되면, 도 16에 도시한 바와 같이, 메모리 컨트롤러는 동적 오프셋 전압을 이용하여 메모리 컨트롤러 내에 저장된 테이블을 업데이트할 수 있다.
일례로 메모리 컨트롤러는 제1 내지 제3 테이블들을 저장할 수 있으며, 적합성이 인정된 동적 오프셋 전압에 의해 업데이트되는 테이블은 히스토리 테이블인 제3 테이블일 수 있다. 예시적으로, 제1 테이블은 메모리 장치의 열화 정보에 따른 오프셋 전압을 기록한 테이블일 수 있으며, 제2 테이블은 메모리 셀들에 입력되는 읽기 전압들과 검출 케이스들을 매칭시켜 오프셋 전압을 기록한 테이블일 수 있다.
동적 오프셋 전압의 적합성이 인정되지 않으면, 메모리 컨트롤러는 제2 테이블을 참조하여 제1 검출 케이스(C1)에 대응하는 오프셋 전압을 결정하고, 제3 테이블을 업데이트할 수 있다. 도 17은 제2 테이블을 예시적으로 나타낸 도면일 수 있다. 앞서 설명한 바와 같이, 제2 테이블은 메모리 셀들이 가질 수 있는 상태들에 따라 적용되는 읽기 전압들(RP1-RP7)과, 검출 케이스들을 매칭시켜 기록할 수 있다. 도 14 및 도 15를 참조하여 설명한 일 실시예에서 동적 오프셋 전압의 적합성이 인정되지 않으면, 도 18에 도시한 바와 같이, 제2 테이블에 의해 결정되는 오프셋 전압인 -80mV로 제3 테이블이 업데이트될 수 있다. 실시예들에 따라, 제1 테이블에 기록된 오프셋 전압이 추가로 더해지는 경우, 제3 테이블에 업데이트되는 오프셋 전압은 -80mV보다 크거나 작을 수도 있다.
제2 센싱 동작에서 획득한 읽기 데이터의 에러 정정에 실패하면, 메모리 컨트롤러는 수정 읽기 전압(RDML)을 포함하는 읽기 커맨드를 메모리 장치에 재전송할 수 있다. 수정 읽기 전압(RDML)을 포함하는 읽기 커맨드는 OVS 읽기 커맨드가 아닌 일반 읽기 커맨드일 수 있다. 수정 읽기 전압(RDML)을 이용하는 읽기 동작으로 생성된 읽기 데이터에 대해 에러 정정이 성공하면, 메모리 컨트롤러는 동적 오프셋 전압으로 제3 테이블을 업데이트할 수 있다.
기계 학습 모델에 의해 동적 오프셋 전압이 결정되므로, 도 14 및 도 15에 도시한 바와 같이 동적 오프셋 전압을 반영한 수정 읽기 전압(RDML)이, 검출 케이스 기준으로 결정한 OVS 읽기 전압(RDOVS)보다 높은 정확도를 가질 수 있다. 따라서, 다음 읽기 동작이 히스토리 읽기 동작으로 실행되는 경우, 문턱 전압 산포에 최적화된 읽기 전압으로 읽기 동작을 실행할 수 있으며, 읽기 동작의 신뢰성을 개선할 수 있다. 또한, OVS 읽기 전압(RDOVS)에 반영된 오프셋 전압보다 높은 정확도를 갖는 동적 오프셋 전압으로 히스토리 읽기 동작이 실행되므로, 읽기 동작에서 에러 정정에 실패하고 OVS 읽기 동작이 실행되는 횟수를 최소화하여 읽기 동작의 레이턴시를 개선할 수 있다.
일례로, 선택 메모리 셀들에 대해 OVS 읽기 동작에서 결정된 최적 읽기 전압인 OVS 읽기 전압(RDOVS)으로 읽기 동작에 성공한 경우, 같은 선택 메모리 셀들에 대해 다시 실행되는 읽기 동작에서는, OVS 읽기 전압(RDOVS)이 아닌 수정 읽기 전압(RDML)을 포함하는 읽기 커맨드가 메모리 장치로 전송될 수 있다. 히스토리 테이블이 OVS 읽기 전압(RDOVS)에 반영된 오프셋 전압이 아닌, 수정 읽기 전압(RDML)에 반영된 동적 오프셋 전압으로 업데이트되므로, 같은 선택 메모리 셀들에 대해 실행되는 읽기 동작들에서 선택 워드라인에 입력되는 읽기 전압들이 서로 다른 레벨을 가질 수 있다.
도 19 내지 도 21은 본 발명의 일 실시예에 따른 메모리 컨트롤러의 테이블 업데이트 방법을 설명하기 위한 도면들이다.
먼저 도 19 및 도 20을 참조하면, 중간 비트(CSB)를 결정하기 위한 OVS 읽기 동작이 실행될 수 있다. 중간 비트(CSB)를 결정하기 위해서는, 제5 프로그램 상태(P5)와 제6 프로그램 상태(P6) 사이의 읽기 전압을 이용하는 읽기 동작이 실행될 수 있다. 도 19 및 도 20에 도시한 바와 같이, 문턱 전압 산포가 열화되어 제5 프로그램 상태(P5)의 문턱 전압 산포와 제6 프로그램 상태(P6)의 문턱 전압 산포가 중첩될 수 있으며, 메모리 컨트롤러가 읽기 데이터의 에러 정정에 실패할 수 있다. 에러 정정에 실패하면, 메모리 컨트롤러는 메모리 장치에 OVS 읽기 동작을 지시할 수 있다.
OVS 읽기 동작은 셀 카운트 정보를 이용하여 검출 케이스를 판단하는 제1 센싱 동작과, 검출 케이스를 참조하여 읽기 데이터를 획득하는 제2 센싱 동작을 포함할 수 있다. 도 19에 도시한 일 실시예에서 메모리 장치는, 검출 케이스를 제1 검출 케이스(C1)로 결정할 수 있으며, 제1 검출 케이스(C1)에 대응하는 OVS 읽기 전압(RDOVS)을 고려하여 제2 센싱 동작의 디벨롭 시간을 조절할 수 있다. 일례로, OVS 읽기 전압(RDOVS)에 반영되는 제1 오프셋 전압은 -64mV일 수 있다.
메모리 컨트롤러는, 제1 검출 케이스(C1)를 결정하는 데에 이용한 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득할 수 있다. 일례로, 동적 오프셋 전압은 제1 오프셋 전압과 다른 레벨을 가질 수 있다. 도 20에 도시한 일 실시예에서, 동적 오프셋 전압은 -58mV일 수 있다.
OVS 읽기 동작의 결과로 획득한 읽기 데이터의 에러 정정에 성공하면, 메모리 컨트롤러는 동적 오프셋 전압의 적합성을 판단할 수 있다. 적합성이 인정되는 경우, 동적 오프셋 전압을 이용하여 도 21에 도시한 바와 같이 히스토리 테이블이 업데이트될 수 있다. 다음 읽기 동작이 히스토리 읽기 동작으로 실행되면, 메모리 컨트롤러는 제7 읽기 전압(RP7)에 오프셋 전압 -76mV를 반영하고, 제6 읽기 전압(RP6)에 오프셋 전압 -58mV를 반영하여 메모리 장치로 전송할 수 있다. 따라서, 문턱 전압의 산포 열화에 최적화된 읽기 전압으로 읽기 동작을 실행함으로써 읽기 동작의 신뢰성을 개선할 수 있다. 또한, OVS 읽기 동작의 실행 확률을 최소화하여 읽기 동작의 속도를 개선할 수 있다.
도 22는 본 발명의 일 실시예에 따른 메모리 컨트롤러에 포함되는 기계 학습 모델을 설명하기 위한 도면이다.
일 실시예에서, 기계 학습 모델(300)은 소정의 입력 데이터를 입력받아 출력 데이터를 내보낼 수 있다. 일례로 입력 데이터는, 메모리 장치에서 실행되는 OVS 읽기 동작의 결과로 획득한 셀 카운트 정보일 수 있으며, 실시예들에 따라 셀 카운트 정보 외에 기타 열화 정보를 더 포함할 수도 있다. 기타 열화 정보는 프로그램 동작 이후 경과 시간, 프로그램/소거 동작 사이클, 읽기 동작 사이클 등을 포함할 수 있다. 기계 학습 모델(300)의 출력 데이터는 읽기 전압의 최적 레벨을 결정하기 위한 동적 오프셋 전압일 수 있다.
기계 학습 모델(300)은 셀 카운트 정보 및 기타 열화 정보 등을 입력받아 동적 오프셋 전압을 출력하도록 미리 학습될 수 있다. 도 22를 참조하면, 기계 학습 모델(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개의 트리들이 생성될 수 있다.
다만, 도 22를 참조하여 설명한 일 실시예는 기계 학습 모델(300)을 생성하기 위한 하나의 실시예일 뿐이며, 기계 학습 모델(300)은 다른 다양한 방식으로 생성될 수도 있다.
도 23은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면이다.
도 23을 참조하면, 본 발명의 일 실시예에 따른 저장 장치의 동작은, 메모리 컨트롤러(400)가 메모리 장치(500)에 읽기 커맨드를 전송하는 것으로 시작될 수 있다(S60). 메모리 컨트롤러(400)는 저장 장치와 연결된 외부 호스트로부터 수신한 읽기 요청에 응답하여 읽기 커맨드를 생성하고, 이를 메모리 장치(500)에 전송할 수 있다.
읽기 커맨드는 어드레스 신호와 함께, 디폴트 레벨의 읽기 전압을 포함할 수 있다. 디폴트 레벨은 메모리 컨트롤러(400)가 결정하는 값으로, 메모리 컨트롤러(400)에 미리 저장된 초기 전압이거나, 메모리 컨트롤러(400)에 저장된 히스토리 테이블에 기록된 오프셋 전압을 초기 전압에 더하여 결정될 수도 있다. 히스토리 테이블은 메모리 컨트롤러(400)의 버퍼 메모리 등에 저장될 수 있다.
메모리 장치(500)는 읽기 커맨드에 응답하여 어드레스 정보에 대응하는 선택 메모리 셀들에 대한 읽기 동작을 실행하고(S61), 읽기 동작의 결과로서 읽기 데이터를 메모리 컨트롤러(400)에 전송할 수 있다(S62). 메모리 컨트롤러(400)의 에러 정정 회로는, 읽기 데이터의 에러를 검출하고 정정할 수 있다(S63). 에러 정정 회로가 에러 정정에 성공하거나 에러가 검출되지 않으면, 읽기 동작은 종료될 수 있다(S64). 반면 에러 정정 회로가 에러 정정에 실패하면, 메모리 컨트롤러(400)는 OVS 읽기 커맨드를 메모리 장치(500)에 전송할 수 있다(S65).
OVS 읽기 커맨드를 수신한 메모리 장치(500)는, 먼저 OVS 동작을 실행할 수 있다(S66). 일례로 OVS 동작은, 복수의 페이지 버퍼들이 서로 다른 시간에 데이터를 래치하도록 제어함으로써, 문턱 전압 산포에서 최적의 골을 찾는 동작일 수 있다. OVS 동작에서 메모리 셀들의 문턱 전압 산포에 따른 셀 카운트 정보, 및 셀 카운트 정보에 대응하는 검출 케이스가 결정될 수 있다. OVS 동작이 완료되면, 메모리 장치(500)는 OVS 검출 정보를 메모리 컨트롤러(400)로 전송할 수 있다(S67). 일례로 OVS 검출 정보는 셀 카운트 정보와 검출 케이스를 포함할 수 있다.
메모리 장치(500)는, OVS 동작에서 결정한 검출 케이스에 대응하는 읽기 전압의 오프셋 전압을 고려하여 디벨롭 시간을 결정하고, 읽기 동작을 실행할 수 있다(S68). 메모리 장치(500)는, OVS 읽기 커맨드에 대한 응답으로, 읽기 데이터를 메모리 컨트롤러(400)에 전송할 수 있다(S69). 실시예들에 따라, OVS 동작과 읽기 동작이 완료된 후, 메모리 장치(500)가 읽기 데이터와 OVS 검출 정보를 메모리 컨트롤러(400)로 전송할 수도 있다. 일 실시예에서, 메모리 컨트롤러(400)는 OVS 검출 정보를 획득하기 위한 특수 커맨드를 메모리 장치(500)로 전송할 수 있으며, 메모리 장치(500)는 특수 커맨드에 응답하여 OVS 동작의 검출 정보를 메모리 컨트롤러(400)에 전송할 수도 있다. 검출 정보는, 메모리 컨트롤러(400)와 메모리 장치(500)를 연결하는 제어 핀들 및 데이터 핀들 중 적어도 하나, 예를 들어 데이터 신호(DQ)에 할당된 데이터 핀들 중 적어도 하나를 통해 전송될 수 있다.
메모리 컨트롤러(400)는 OVS 검출 정보에 포함된 셀 카운트 정보를 기계 학습 모델에 입력하여 동적 오프셋 전압을 계산할 수 있다(S70). 또한, 메모리 컨트롤러(400)의 에러 정정 회로는, OVS 읽기 커맨드에 대한 응답으로 메모리 장치(500)로부터 수신한 읽기 데이터의 에러를 검출하고 정정할 수 있다(S71).
S71 단계에서 에러 정정에 성공하거나 에러가 검출되지 않으면, S70 단계에서 계산한 동적 오프셋 전압으로 테이블을 업데이트하고(S72) 읽기 동작을 종료할 수 있다. 일례로 메모리 컨트롤러(400)는, 열화 정보에 따른 제1 정적 오프셋 전압이 기록된 제1 테이블, OVS 동작 결과에 따른 검출 케이스에 매칭된 제2 정적 오프셋 전압이 기록된 제2 테이블, 및 히스토리 읽기 동작에서 읽기 전압에 반영되는 제3 정적 오프셋 전압을 저장하는 히스토리 테이블인 제3 테이블 등을 저장할 수 있다. S72 단계에서 메모리 컨트롤러(400)는, 제3 테이블을 업데이트할 수 있다.
실시예들에 따라, 메모리 컨트롤러(400)는 S70 단계에서 계산한 동적 오프셋 전압의 적합성을 먼저 판단하고, 판단 결과에 따라 제3 테이블의 업데이트 방법을 결정할 수도 있다. 일례로, OVS 검출 정보에 포함된 검출 케이스와 제2 테이블을 참조하여 결정한 제2 정적 오프셋 전압을 동적 오프셋 전압과 비교하여 동적 오프셋 전압의 적합성을 판단할 수 있다.
예를 들어, 동적 오프셋 전압과 제2 오프셋 전압의 차이가 임계값 이하이면 동적 오프셋 전압의 적합성이 인정되는 것으로 판단할 수 있다. 메모리 컨트롤러(400)는, 동적 오프셋 전압의 적합성이 인정되면 동적 오프셋 전압으로 제3 테이블을 업데이트할 수 있다. 반면, 동적 오프셋 전압의 적합성이 인정되지 않으면, 메모리 컨트롤러(400)는 S67 단계에서 수신한 OVS 검출 정보에 포함된 검출 케이스와 제2 테이블을 참조하여 제2 정적 오프셋 전압을 결정하고, 제2 정적 오프셋 전압 및 제1 정적 오프셋 전압을 이용하여 제3 테이블을 업데이트할 수 있다.
한편, S71 단계에서 에러 정정 회로가 에러 정정에 실패하는 경우, 메모리 컨트롤러(400)는 읽기 커맨드를 생성하여 메모리 장치(500)에 다시 전송할 수 있다(S73). S73 단계에서 메모리 장치(500)에 전송되는 읽기 커맨드는 S60 단계에서 전송되는 읽기 커맨드와 같은 어드레스 정보를 포함할 수 있으며, 일반적인 읽기 동작을 지시하는 커맨드일 수 있다.
또한, S73 단계에서 메모리 장치(500)에 전송되는 읽기 커맨드는 수정 읽기 전압을 포함할 수 있다. 수정 읽기 전압은 S70 단계에서 계산한 동적 오프셋 전압을 반영하여 결정될 수 있다. 메모리 장치(500)는 선택 메모리 셀들에 연결된 선택 워드라인에 수정 읽기 전압을 입력하는 읽기 동작을 실행하고(S74), 읽기 데이터를 메모리 컨트롤러(400)에 전송할 수 있다(S75).
메모리 컨트롤러(400)의 에러 정정 회로는 읽기 데이터의 에러를 검출하고 정정할 수 있다(S76). S76 단계에서 에러가 검출되지 않거나 에러 정정에 성공하면, 메모리 컨트롤러(400)는 수정 읽기 전압에 반영된 동적 오프셋 전압을 이용하여 테이블을 업데이트하고(S77) 읽기 동작을 종료할 수 있다. S77 단계에서 업데이트되는 테이블은, 히스토리 테이블인 제3 테이블일 수 있다. 한편, S76 단계에서 에러를 정정하는 데에 실패하면, 메모리 컨트롤러(400)는 읽기 동작이 실패한 것으로 판단하고(S78), 이를 호스트에 알릴 수 있다. 또는, 오프 칩 밸리 서치 동작을 이용한 읽기 동작을 추가로 실행할 수도 있다.
도 23을 참조하여 설명한 일 실시예에서, 읽기 데이터에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공할 경우, 읽기 동작은 1회로 종료될 수 있다. 또한, OVS 읽기 동작에 의해 획득한 읽기 데이터에서 에러가 검출되지 않거나 에러를 정정하는 데에 성공할 경우, 읽기 동작은 2회로 종료될 수 있다. 또한, 기계 학습 모델이 출력하는 동적 오프셋 전압을 반영한 수정 읽기 전압으로 읽기 동작을 실행하는 경우에도, OVS 동작에서 획득한 셀 카운트 정보로 동적 오프셋 전압을 획득할 수 있으므로, 읽기 동작의 레이턴시 증가를 최소화할 수 있다.
또한, OVS 읽기 동작의 성공/실패와 관계없이, 기계 학습 모델에 셀 카운트 정보를 입력하여 동적 오프셋 전압을 획득할 수 있다. OVS 읽기 동작이 성공하는 경우, 동적 오프셋 전압으로 히스토리 테이블을 업데이트함으로써, 다음 읽기 동작의 성공률을 높이고, 읽기 동작의 속도와 신뢰성을 개선할 수 있다. 실시예들에 따라, 동적 오프셋 전압의 적합성을 판단함으로써, 히스토리 테이블의 신뢰성을 더욱 개선할 수 있다.
도 24 내지 도 27은 본 발명의 일 실시예에 따른 저장 장치의 동작을 설명하기 위한 도면들이다.
도 24 내지 도 27을 참조하면, 저장 장치(600)는 메모리 장치(610)와 메모리 컨트롤러(620)를 포함할 수 있다. 메모리 장치(610)는 메모리 셀들을 포함하는 메모리 셀 어레이(611)와 로직 회로(612)를 포함하며, 로직 회로(612)는 OVS 동작을 실행하기 위한 OVS 회로(613)를 포함할 수 있다. 메모리 셀 어레이(611)에서 메모리 셀들은 복수의 블록들(BLK1-BLKz)으로 구분되며, 복수의 블록들(BLK1-BLKz) 각각은 복수의 페이지들(PAGE1-PAGEn)을 포함할 수 있다. 메모리 컨트롤러(620)는 프로세서(621), 에러 정정 회로(622), 버퍼 메모리(623)를 포함하며, 버퍼 메모리(623)에는 테이블(624)과 기계 학습 모델(625)이 저장될 수 있다.
저장 장치(600)와 연동된 호스트로부터 읽기 요청을 수신하면, 메모리 컨트롤러(620)의 프로세서(621)는 제1 읽기 커맨드(RD_CMD1)를 생성하여 메모리 장치(610)로 전송할 수 있다. 제1 읽기 커맨드(RD_CMD1)에 포함된 읽기 전압은 제1 레벨을 가질 수 있다. 일례로 제1 레벨은 메모리 컨트롤러(620)에 미리 설정된 디폴트 레벨이거나, 또는 테이블(624) 중 히스토리 테이블에 기록된 오프셋 전압을 디폴트 레벨에 반영하여 결정한 히스토리 레벨일 수 있다.
메모리 장치(610)의 로직 회로(612)는 제1 읽기 커맨드(RD_CMD1)에 응답하여 제1 읽기 동작을 실행하고, 제1 읽기 데이터(RD_DATA1)를 메모리 컨트롤러(620)로 출력할 수 있다. 메모리 컨트롤러(620)의 에러 정정 회로(722)는 제1 읽기 데이터(RD_DATA1)의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나 에러를 정정하는 데에 성공하면, 읽기 동작은 종료될 수 있다.
에러 정정 회로(622)가 에러를 정정하는 데에 실패하면, 도 25에 도시한 바와 같이 프로세서(621)가 제2 읽기 커맨드(RD_CMD2)를 생성하여 메모리 장치(610)로 전송할 수 있다. 일례로, 제2 읽기 커맨드(RD_CMD2)는 OVS 동작을 지시하는 OVS 읽기 커맨드일 수 있다. 메모리 장치(610)의 로직 회로(612)는 OVS 회로(613)를 활성화하여 OVS 동작을 실행하고, OVS 동작의 결과로 셀 카운트 정보 및 검출 케이스 등의 OVS 검출 정보(OVSDI)를 획득할 수 있다. 메모리 장치(610)는 OVS 검출 정보(OVSDI)를 메모리 컨트롤러(620)로 출력할 수 있다. 메모리 장치(610)는 OVS 검출 정보(OVSDI)를 메모리 컨트롤러(620)로 전송할 수 있다.
메모리 컨트롤러(620)는 OVS 검출 정보(OVSDI)에 포함된 셀 카운트 정보를 기계 학습 모델(625)에 입력하여 동적 오프셋 전압을 획득할 수 있다. 또한 도 26에 도시한 바와 같이, 메모리 장치(610)는 제2 읽기 커맨드(RD_CMD2)에 대한 응답으로 제2 읽기 데이터(RD_DATA2)를 메모리 컨트롤러(620)에 전송할 수 있다. 다만, 제2 읽기 데이터(RD_DATA2)가 OVS 검출 정보(OVSDI)보다 먼저 메모리 컨트롤러(620)에 전송되거나, 또는 제2 읽기 데이터(RD_DATA2)와 OVS 검출 정보(OVSDI)가 동시에 메모리 컨트롤러(620)에 전송될 수도 있다.
에러 정정 회로(622)는 제2 읽기 데이터(RD_DATA2)의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나, 검출된 에러를 정정하는 데에 성공하면, 프로세서(621)는 기계 학습 모델(625)이 출력한 동적 오프셋 전압을 이용하여 테이블(624)을 업데이트할 수 있다. 이때 실시예들에 따라, 동적 오프셋 전압의 적합성이 인정되는 경우, 동적 오프셋 전압으로 테이블(624)을 업데이트할 수도 있다. 동적 오프셋 전압의 적합성이 인정되지 않으면, OVS 검출 정보(OVSDI)에 포함된 검출 케이스에 대응하는 정적 오프셋 전압으로 테이블(624)을 업데이트할 수 있다.
에러 정정 회로(622)가 제2 읽기 데이터(RD_DATA2)의 에러를 정정하는 데에 실패하면, 동적 오프셋 전압을 반영한 수정 읽기 전압을 생성하고, 수정 읽기 전압을 포함하는 제3 읽기 커맨드(RD_CMD3)를 메모리 장치(610)로 전송할 수 있다. 일례로, 제3 읽기 커맨드(RD_CMD3)는 제1 읽기 커맨드(RD_CMD1)와 동일한 읽기 동작을 지시하는 커맨드일 수 있다. 다시 말해, 제3 읽기 커맨드(RD_CMD3)는 제1 읽기 전압과 다른 레벨의 수정 읽기 전압을 포함한다는 점을 제외하면, 제1 읽기 커맨드(RD_CMD1)와 동일한 커맨드일 수 있다. 메모리 장치(620)는 제3 읽기 커맨드(RD_CMD3)에 포함된 수정 읽기 전압을, 선택 메모리 셀들과 연결된 선택 워드라인에 입력하여 읽기 동작을 실행하고, 읽기 동작의 결과로서 제3 읽기 데이터(RD_DATA3)를 메모리 컨트롤러(620)에 전송할 수 있다.
에러 정정 회로(622)는 제3 읽기 데이터(RD_DATA3)의 에러를 검출 및 정정할 수 있다. 에러가 검출되지 않거나 에러 정정에 성공하면, 프로세서(621)는 수정 읽기 전압에 반영된 동적 오프셋 전압으로 테이블(624)을 업데이트하고 읽기 동작을 종료할 수 있다. 제3 읽기 데이터(RD_DATA3)에 대해서도 에러 정정에 실패하면, 메모리 컨트롤러(620)는 메모리 장치(610)가 오프 칩 밸리 서치 동작과 함께 읽기 동작을 실행하도록 제어할 수 있다.
이와 같이, 본 발명의 일 실시예에 따르면, 제1 읽기 동작이 실패한 경우 OVS 동작을 포함하는 제2 읽기 동작을 실행할 수 있다. 또한, 제2 읽기 동작이 실패한 경우 OVS 동작의 검출 정보에 포함된 셀 카운트 정보 등을 이용하여 생성한 수정 읽기 전압을 이용하여 제3 읽기 동작을 실행할 수 있다. 따라서, 읽기 동작의 신뢰성을 개선할 수 있다. 또한, OVS 동작에서 획득한 셀 카운트 정보를 기계 학습 모델에 입력하여 제3 읽기 동작을 위한 수정 읽기 전압을 생성하므로, 불필요한 더미 센싱 동작을 추가하지 않음으로써, 읽기 동작의 레이턴시 증가를 최소화하고 저장 장치(600)의 성능을 개선할 수 있다.
도 28은 본 발명의 일 실시예에 따른 메모리 장치를 간단하게 나타낸 도면이다.
도 28을 참조하면, 본 발명의 일 실시예에 따른 메모리 장치(700)는 C2C(chip to chip) 구조를 가질 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonidng) 방식에 의해 서로 연결하는 방식으로 형성되는 구조를 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄 혹은 텅스텐으로도 형성될 수 있다.
메모리 장치(700)의 주변 회로 영역(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축 방향)을 따라 연장될 수 있다.
도 28에 도시한 일 실시예에서, 채널 구조체(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)이 배치될 수 있다. 도 28을 참조하면, 제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)을 전기적으로 분리할 수 있다.
도 28을 참조하면, 제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)과 오버랩되지 않을 수 있다. 도 28을 참조하면, 제2 입출력 컨택 플러그(903)는 제2 기판(910)의 상면에 평행한 방향에서 제2 기판(910)과 분리되며, 셀 영역(CELL)의 층간 절연층(915)을 관통하여 제2 입출력 패드(905)에 연결될 수 있다.
실시예들에 따라, 제1 입출력 패드(805)와 제2 입출력 패드(905)는 선택적으로 형성될 수 있다. 일례로, 메모리 장치(700)는 제1 기판(801)의 상부에 배치되는 제1 입출력 패드(805)만을 포함하거나, 또는 제2 기판(901)의 상부에 배치되는 제2 입출력 패드(905)만을 포함할 수 있다. 또는, 메모리 장치(700)가 제1 입출력 패드(805)와 제2 입출력 패드(905)를 모두 포함할 수도 있다.
셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.
메모리 장치(700)는 외부 패드 본딩 영역(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: 저장 장치
10, 500, 610: 메모리 장치
20, 400, 620: 메모리 컨트롤러

Claims (20)

  1. 적어도 하나의 메모리 장치에 제어 신호들을 제공하는 제어 핀들;
    상기 메모리 장치와 데이터 신호를 송수신하는 데이터 핀들;
    읽기 전압에 대한 정적 오프셋 전압이 기록된 테이블 및 상기 메모리 장치에 포함되는 메모리 셀들의 문턱 전압 산포에 대응하는 셀 카운트 정보를 입력받아 상기 읽기 전압에 대한 동적 오프셋 전압을 출력하는 기계 학습 모델을 저장하는 버퍼 메모리;
    데이터의 에러를 정정하는 에러 정정 회로; 및
    상기 에러 정정 회로가 상기 메모리 장치로부터 획득한 읽기 데이터의 에러 정정에 실패하면, 읽기 동작의 동작 조건을 조절하며 읽기 데이터를 획득하는 최적화 읽기 동작을 상기 메모리 장치에 지시하는 프로세서; 를 포함하며,
    상기 프로세서는, 상기 최적화 읽기 동작의 결과로서 상기 메모리 장치로부터 수신한 상기 셀 카운트 정보를 상기 기계 학습 모델에 입력하여 동적 오프셋 전압을 획득하고, 상기 에러 정정 회로가 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러 정정에 성공하면 상기 동적 오프셋 전압으로 상기 테이블을 업데이트하는 메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 프로세서는, 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러를 상기 에러 정정 회로가 정정하는 데에 실패하면, 상기 동적 오프셋 전압이 반영된 수정 읽기 전압을 이용하는 읽기 동작을 상기 메모리 장치에 지시하는 메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 메모리 셀들 각각은 기록된 데이터에 따라 복수의 상태들 중 하나를 가지며,
    상기 셀 카운트 정보는, 상기 복수의 상태들 중 일부에 대해 상기 최적화 읽기 동작을 실행하여 획득한 정보인 메모리 컨트롤러.
  4. 제3항에 있어서,
    상기 셀 카운트 정보는, 상기 복수의 상태들 각각에서 상기 최적화 읽기 동작의 읽기 전압에 의해 턴-온 또는 턴-오프되는 메모리 셀들의 개수를 포함하는 메모리 컨트롤러.
  5. 제1항에 있어서,
    상기 기계 학습 모델은, 상기 셀 카운트 정보와 함께, 상기 최적화 읽기 동작이 실행된 선택 메모리 셀의 주소, 및 상기 선택 메모리 셀의 열화 정보 중 적어도 하나를 입력받아 상기 동적 오프셋 전압을 출력하는 메모리 컨트롤러.
  6. 제1항에 있어서,
    상기 최적화 읽기 동작은 온-칩 밸리 서치(On-Chip Valley Search, OVS) 동작을 포함하며,
    상기 프로세서는 상기 OVS 동작의 결과로 상기 셀 카운트 정보 및 상기 셀 카운트 정보에 대응하는 검출 케이스를 포함하는 OVS 검출 정보를 상기 메모리 장치로부터 수신하는 메모리 컨트롤러.
  7. 제6항에 있어서,
    상기 테이블은, 제1 정적 오프셋 전압이 기록된 제1 테이블, 제2 정적 오프셋 전압이 기록된 제2 테이블, 및 히스토리 읽기 전압을 결정하기 위한 제3 정적 오프셋 전압이 기록된 제3 테이블을 포함하는 메모리 컨트롤러.
  8. 제7항에 있어서,
    상기 프로세서는, 상기 에러 정정 회로가 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러 정정에 성공하면, 상기 동적 오프셋 전압을 이용하여 상기 제3 테이블을 업데이트하는 메모리 컨트롤러.
  9. 제7항에 있어서,
    상기 프로세서는, 상기 에러 정정 회로가 상기 최적화 읽기 동작에 의해 획득한 읽기 데이터의 에러 정정에 성공하면, 상기 검출 케이스와 상기 제2 테이블을 이용하여 결정한 상기 제2 정적 오프셋 전압과 상기 동적 오프셋 전압을 비교하여 상기 동적 오프셋 전압의 적합성을 판단하는 메모리 컨트롤러.
  10. 제9항에 있어서,
    상기 동적 오프셋 전압의 적합성이 인정되면, 상기 프로세서는 상기 동적 오프셋 전압을 이용하여 상기 제3 테이블을 업데이트하고,
    상기 동적 오프셋 전압의 적합성이 인정되지 않으면, 상기 프로세서는 상기 제2 정적 오프셋 전압을 이용하여 상기 제3 테이블을 업데이트하는 메모리 컨트롤러.
  11. 제1항에 있어서,
    상기 프로세서는 제1 읽기 커맨드 및 상기 제1 읽기 커맨드와 다른 제2 읽기 커맨드를 생성하며,
    상기 제1 읽기 커맨드는 상기 프로세서가 결정한 읽기 전압의 레벨에 기초하여 상기 메모리 장치가 읽기 동작을 실행하도록 제어하는 커맨드이고, 상기 제2 읽기 커맨드는 상기 메모리 장치가 온-칩 밸리 서치(OVS) 동작을 포함하는 상기 최적화 읽기 동작을 실행하도록 제어하는 커맨드인 메모리 컨트롤러.
  12. 제11항에 있어서,
    상기 프로세서는, 상기 제2 읽기 커맨드에 의해 획득한 상기 읽기 데이터의 에러 정정에 실패하면, 상기 제1 읽기 커맨드를 상기 메모리 장치에 재전송하는 메모리 컨트롤러.
  13. 적어도 하나의 메모리 장치; 및
    CLE(command latch enable) 신호, ALE(address latch enable) 신호, CE(chip enable) 신호, WE(write enable) 신호, RE(read enable) 신호, 데이터 스트로브(DQS) 신호 중 적어도 하나를 제공하는 제어 핀들, 및 데이터 신호를 송수신하는 데이터 핀들을 통해 상기 메모리 장치와 연결되고, 읽기 전압의 정적 오프셋 전압을 저장하는 테이블 및 동적 오프셋 전압을 결정하는 기계 학습 모델을 저장하는 메모리 컨트롤러; 를 포함하며,
    상기 메모리 컨트롤러는, 제1 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제1 읽기 데이터의 에러 정정에 실패하면, 상기 메모리 장치가 온-칩 밸리 서치(OVS) 동작을 포함하는 제2 읽기 동작을 실행하도록 제어하며,
    상기 제2 읽기 동작을 실행한 상기 메모리 장치가 출력하는 제2 읽기 데이터의 에러 정정에 성공하면, 상기 OVS 동작으로 생성된 OVS 검출 정보 중 적어도 일부를 상기 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압으로 상기 테이블을 업데이트하는 저장 장치.
  14. 제13항에 있어서,
    상기 메모리 장치에 포함되는 메모리 셀들 각각은 2비트 이상의 데이터를 저장하고, 상기 데이터에 의해 결정되는 복수의 상태들 중 하나를 갖는 저장 장치.
  15. 제14항에 있어서,
    상기 OVS 검출 정보는, 상기 복수의 상태들 각각에서 상기 읽기 전압의 레벨에 의해 온/오프가 결정되는 메모리 셀들의 개수를 나타내는 셀 카운트 정보, 및 상기 제2 읽기 동작의 디벨롭 시간을 결정하기 위해 상기 셀 카운트 정보로부터 선택되는 검출 케이스를 포함하는 저장 장치.
  16. 제13항에 있어서
    상기 제2 읽기 데이터의 에러 정정에 실패하면, 상기 메모리 컨트롤러는 상기 동적 오프셋 전압을 반영한 수정 읽기 전압을 이용하는 상기 제1 읽기 동작을 상기 메모리 장치에 지시하는 저장 장치.
  17. 메모리 컨트롤러로부터 제어 신호들을 수신하는 복수의 제어 핀들 및 상기 메모리 컨트롤러와 데이터 신호를 송수신하는 복수의 데이터 핀들을 포함하며, 상기 메모리 컨트롤러로부터 제1 읽기 커맨드 및 제2 읽기 커맨드를 수신하는 입출력 인터페이스;
    복수의 메모리 셀들을 갖는 메모리 셀 어레이; 및
    상기 제1 읽기 커맨드 및 상기 제2 읽기 커맨드 중 적어도 하나에 응답하여, 상기 메모리 셀들로부터 획득한 읽기 데이터를 상기 메모리 컨트롤러로 출력하는 로직 회로; 를 포함하며,
    선택 메모리 셀들에 대해 상기 제1 읽기 커맨드에 대응하는 제1 읽기 동작을 실행한 후 상기 제2 읽기 커맨드를 수신하면 상기 제1 읽기 동작과 다른 제2 읽기 동작을 실행하며, 상기 제2 읽기 동작에서 생성된 검출 정보를 상기 메모리 컨트롤러로 출력하며,
    선택 메모리 셀들에 대해 히스토리 읽기 동작을 지시하는 읽기 커맨드를 수신하면, 상기 읽기 커맨드에 포함된 읽기 전압은, 상기 제2 읽기 동작에서 판단한 최적 읽기 전압과 다른 레벨을 갖는 메모리 장치.
  18. 제17항에 있어서,
    상기 로직 회로는, 상기 제2 읽기 커맨드에 응답하여 셀 카운트 정보를 생성하고, 상기 셀 카운트 정보에 기초하여 검출 케이스를 판단하는 온-칩 밸리 서치(OVS) 동작을 실행하는 OVS 회로를 포함하는 메모리 장치.
  19. 제18항에 있어서,
    상기 OVS 회로는, 상기 메모리 셀들이 갖는 복수의 상태들 중 일부에 대해 상기 OVS 동작을 실행하는 메모리 장치.
  20. 디폴트 레벨을 갖는 읽기 전압을 포함하는 제1 읽기 커맨드를 메모리 장치에 전송하는 단계;
    상기 제1 읽기 커맨드에 대한 응답으로 수신한 읽기 데이터의 에러 정정에 실패하면, 온-칩 밸리 서치(OVS) 동작을 실행하여 셀 카운트 정보를 생성하고 상기 셀 카운트 정보에 기초하여 판단한 검출 케이스에 따라 읽기 동작을 실행하도록 상기 메모리 장치를 제어하는 제2 읽기 커맨드를 상기 메모리 장치에 전송하는 단계; 및
    상기 제2 읽기 커맨드에 대한 응답으로 수신한 읽기 데이터의 에러 정정에 성공하면, 상기 셀 카운트 정보를 미리 학습된 기계 학습 모델에 입력하여 획득한 동적 오프셋 전압으로, 상기 읽기 전압의 정적 오프셋 전압을 기록하는 테이블을 업데이트하는 단계; 를 포함하는 메모리 장치의 제어 방법.

KR1020210005212A 2021-01-14 2021-01-14 메모리 컨트롤러, 메모리 장치, 및 저장 장치 KR20220103228A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020210005212A KR20220103228A (ko) 2021-01-14 2021-01-14 메모리 컨트롤러, 메모리 장치, 및 저장 장치
US17/397,321 US11556415B2 (en) 2021-01-14 2021-08-09 Memory controller, memory device and storage device
EP22150726.2A EP4040441A3 (en) 2021-01-14 2022-01-10 Memory controller, memory device and storage device
CN202210035693.2A CN114764313A (zh) 2021-01-14 2022-01-13 存储器控制器、存储器装置和存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210005212A KR20220103228A (ko) 2021-01-14 2021-01-14 메모리 컨트롤러, 메모리 장치, 및 저장 장치

Publications (1)

Publication Number Publication Date
KR20220103228A true KR20220103228A (ko) 2022-07-22

Family

ID=79287621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210005212A KR20220103228A (ko) 2021-01-14 2021-01-14 메모리 컨트롤러, 메모리 장치, 및 저장 장치

Country Status (4)

Country Link
US (1) US11556415B2 (ko)
EP (1) EP4040441A3 (ko)
KR (1) KR20220103228A (ko)
CN (1) CN114764313A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220058278A (ko) * 2020-10-30 2022-05-09 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법
KR102491652B1 (ko) * 2021-09-17 2023-01-27 삼성전자주식회사 산포 타입을 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
US11853161B2 (en) * 2022-04-22 2023-12-26 Google Llc Image models to predict memory failures in computing systems
EP4310847A3 (en) * 2022-07-20 2024-03-27 Samsung Electronics Co., Ltd. Storage controller
US11972122B2 (en) * 2022-08-04 2024-04-30 Micron Technology, Inc. Memory read operation using a voltage pattern based on a read command type

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US20130219107A1 (en) 2012-02-21 2013-08-22 Sandisk Technologies Inc. Write abort recovery through intermediate state shifting
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
KR102290974B1 (ko) 2014-11-07 2021-08-19 삼성전자주식회사 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
KR102435027B1 (ko) 2015-11-09 2022-08-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
KR102643916B1 (ko) 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
US10381090B2 (en) 2017-03-31 2019-08-13 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory device and storage device
KR102347184B1 (ko) 2017-05-23 2022-01-04 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102335774B1 (ko) 2017-09-01 2021-12-06 삼성전자주식회사 다중 공진기 어레이를 포함하는 소리 방향 탐지 센서
KR102427638B1 (ko) 2018-01-10 2022-08-01 삼성전자주식회사 비휘발성 메모리 장치 및 이의 읽기 방법
KR102419895B1 (ko) 2018-02-09 2022-07-12 삼성전자주식회사 비휘발성 메모리 장치 및 이의 읽기 방법
TWI689816B (zh) 2018-03-06 2020-04-01 群聯電子股份有限公司 區塊管理方法、記憶體控制電路單元與記憶體儲存裝置
KR102658792B1 (ko) 2018-09-21 2024-04-18 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법
KR102599123B1 (ko) 2018-11-14 2023-11-06 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
KR20220003705A (ko) 2020-07-02 2022-01-11 삼성전자주식회사 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
KR20220086733A (ko) * 2020-12-16 2022-06-24 삼성전자주식회사 메모리 컨트롤러, 메모리 장치, 및 저장 장치

Also Published As

Publication number Publication date
EP4040441A3 (en) 2022-08-17
CN114764313A (zh) 2022-07-19
EP4040441A2 (en) 2022-08-10
US11556415B2 (en) 2023-01-17
US20220222138A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
EP4040441A2 (en) Memory controller, memory device and storage device
TWI459391B (zh) Memory system
US10147495B2 (en) Nonvolatile memory device generating loop status information, storage device including the same, and operating method thereof
KR101406279B1 (ko) 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
KR102192910B1 (ko) 반도체 장치, 메모리 시스템 및 이의 동작 방법
KR101669550B1 (ko) 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR102608958B1 (ko) 스토리지 장치 및 이의 동작 방법
US11514997B2 (en) Controller, a storage device including the controller, and a reading method of the storage device
JP2013125527A (ja) 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
JP2008047273A (ja) 半導体記憶装置およびその制御方法
KR20220086733A (ko) 메모리 컨트롤러, 메모리 장치, 및 저장 장치
JP2012059349A (ja) 半導体メモリ装置及びその動作方法
US11508443B2 (en) Nonvolatile memory device including a peripheral circuit to verify a program operation
KR20190009630A (ko) 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템
KR20220006467A (ko) 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법
KR20180027276A (ko) 반도체 메모리 장치 및 그 동작 방법
KR102460717B1 (ko) 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US9934858B2 (en) Use of dummy word lines for metadata storage
KR20220060572A (ko) 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
US9424942B2 (en) Reduced timing and read verifying operation for non-volatile memory device
CN110164496B (zh) 半导体存储器元件及其读取方法
JP2022034536A (ja) マルチページデータをプログラムするための不揮発性メモリ装置の動作方法
KR20220058753A (ko) 비휘발성 메모리 장치, 그것을 갖는 저장 장치 및 그것의 리드 방법
US20230197159A1 (en) Memory system and semiconductor storage device
US11817170B2 (en) Storage controller determining error count, method of operating the same, and method of operating storage device including the same

Legal Events

Date Code Title Description
A201 Request for examination