KR20210083466A - 스토리지 장치 및 스토리지 장치의 동작 방법 - Google Patents

스토리지 장치 및 스토리지 장치의 동작 방법 Download PDF

Info

Publication number
KR20210083466A
KR20210083466A KR1020190175560A KR20190175560A KR20210083466A KR 20210083466 A KR20210083466 A KR 20210083466A KR 1020190175560 A KR1020190175560 A KR 1020190175560A KR 20190175560 A KR20190175560 A KR 20190175560A KR 20210083466 A KR20210083466 A KR 20210083466A
Authority
KR
South Korea
Prior art keywords
read
data
nonvolatile memory
memory device
controller
Prior art date
Application number
KR1020190175560A
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 KR1020190175560A priority Critical patent/KR20210083466A/ko
Priority to US16/990,262 priority patent/US11361832B2/en
Priority to DE102020126869.6A priority patent/DE102020126869A1/de
Priority to CN202011410313.6A priority patent/CN113053441A/zh
Publication of KR20210083466A publication Critical patent/KR20210083466A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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
    • 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/0658Controller construction 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • 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/08Address circuits; Decoders; Word-line control circuits

Abstract

본 발명은 스토리지 장치에 관한 것이다. 본 발명의 스토리지 장치는 불휘발성 메모리 장치, 그리고 제1 읽기 명령 및 제1 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제1 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제1 데이터를 수신하고, 그리고 제1 데이터에 대해 에러 정정을 수행하는 메모리 제어기를 포함한다. 메모리 제어기는 에러 정정이 실패한 때에, 제2 읽기 명령 및 제2 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제2 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제2 데이터를 수신하고, 제3 읽기 명령 및 제3 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 그리고 제3 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제3 데이터를 수신한다. 메모리 제어기는 제2 데이터 및 제3 데이터에 기반하여 오프셋을 조절하고, 제4 읽기 명령, 제4 읽기 전압 정보 및 오프셋을 불휘발성 메모리 장치로 전송하고, 제4 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제4 데이터를 수신하고, 그리고 제4 데이터에 기반하여 연판정을 수행한다.

Description

스토리지 장치 및 스토리지 장치의 동작 방법{STORAGE DEVICE AND OPERATING METHOD OF STORAGE DEVICE}
본 발명은 반도체 장치에 관한 것으로, 더 상세하게는 향상된 신뢰성을 갖는 읽기 동작을 수행하는 스토리지 장치 및 스토리지 장치의 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 데이터를 저장하도록 구성되는 메모리 셀들을 포함한다. 스토리지 장치에 저장되는 데이터의 양을 늘리기 위해, 메모리 셀들의 각각에 저장되는 비트들의 수를 증가시키는 방안들이 시도되고 있다. 메모리 셀들의 각각에 저장되는 비트들의 수가 증가하면, 메모리 셀들에 저장된 데이터에서 에러들이 발생할 확률이 증가할 수 있다.
메모리 셀들에 저장된 데이터의 무결성(integrity)을 보장하기 위하여, 메모리 셀들에 저장된 데이터에서 에러가 발생하여도 원본 데이터를 복원할 수 있는 읽기 방법들이 요구되고 있다.
본 발명의 목적은 향상된 신뢰성을 갖는 읽기 동작을 제공하는 스토리지 장치 및 스토리지 장치의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 스토리지 장치는 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치, 그리고 복수의 메모리 셀들에 대한 제1 읽기 명령 및 제1 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제1 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제1 데이터를 수신하고, 그리고 제1 데이터에 대해 에러 정정을 수행하도록 구성되는 메모리 제어기를 포함한다. 메모리 제어기는 에러 정정이 실패한 때에, 복수의 메모리 셀들에 대한 제2 읽기 명령 및 제2 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제2 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제2 데이터를 수신하고, 복수의 메모리 셀들에 대한 제3 읽기 명령 및 제3 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 그리고 제3 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제3 데이터를 수신하도록 더 구성된다. 메모리 제어기는 제2 데이터 및 제3 데이터에 기반하여 오프셋을 조절하고, 복수의 메모리 셀들에 대한 제4 읽기 명령, 제4 읽기 전압 정보 및 오프셋을 불휘발성 메모리 장치로 전송하고, 제4 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제4 데이터를 수신하고, 그리고 제4 데이터에 기반하여 연판정을 수행하도록 더 구성된다.
본 발명의 실시 예에 따른 스토리지 장치는 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치, 그리고 복수의 메모리 셀들에 대한 제1 읽기 명령 및 제1 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제1 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제1 데이터를 수신하고, 그리고 제1 데이터에 대해 에러 정정을 수행하도록 구성되는 메모리 제어기를 포함한다. 메모리 제어기는 에러 정정이 실패한 때에, 복수의 메모리 셀들에 대한 제2 읽기 명령, 제2 읽기 전압 정보 및 제1 오프셋을 불휘발성 메모리 장치로 전송하고, 제2 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제2 데이터를 수신하고, 그리고 제2 데이터에 기반하여 제1 연판정을 수행하도록 더 구성된다. 메모리 제어기는 제1 연판정이 실패한 때에, 복수의 메모리 셀들에 대한 제3 읽기 명령 및 제3 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 제3 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제3 데이터를 수신하고, 복수의 메모리 셀들에 대한 제4 읽기 명령 및 제4 읽기 전압 정보를 불휘발성 메모리 장치로 전송하고, 그리고 제4 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제4 데이터를 수신하도록 더 구성된다. 메모리 제어기는 제3 데이터 및 제4 데이터에 기반하여 제1 오프셋을 제2 오프셋으로 조절하고, 복수의 메모리 셀들에 대한 제5 읽기 명령, 제5 읽기 전압 정보 및 제2 오프셋을 불휘발성 메모리 장치로 전송하고, 제5 읽기 명령에 기반하여 불휘발성 메모리 장치로부터 제5 데이터를 수신하고, 그리고 제5 데이터에 기반하여 제2 연판정을 수행하도록 더 구성된다.
불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법은, 제어기가 불휘발성 메모리 장치로부터 제1 읽기 전압을 이용하여 제1 데이터를 읽는 단계, 제1 데이터의 에러 정정이 실패한 때에, 제어기가 불휘발성 메모리 장치로부터 제2 읽기 전압 및 제3 읽기 전압을 이용하여 제2 데이터 및 제3 데이터를 각각 읽는 단계, 제어기가 제2 데이터 및 제3 데이터에 기반하여 오프셋을 조절하는 단계, 제어기가 불휘발성 메모리 장치로부터 제4 읽기 전압 및 조절된 오프셋을 이용하여 제4 데이터를 읽는 단계, 그리고 제어기가 제4 데이터에 기반하여 연판정을 수행하는 단계를 포함한다.
본 발명에 따르면, 메모리 셀들의 문턱 전압들의 산포에 따라 오프셋이 결정되고, 그리고 연판정이 수행된다. 따라서, 메모리 셀들의 상태들에 적응적으로 대응하는 읽기 동작을 수행함으로써 향상된 신뢰성을 갖는 스토리지 장치 및 스토리지 장치의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여준다.
도 2는 경판정에 기반한 읽기가 수행되는 예를 보여준다.
도 3은 경판정에 기반한 읽기 동작에서 정정 불가능한 에러들이 발생하는 예를 보여준다.
도 4는 연판정에 기반한 읽기 동작의 예를 보여준다.
도 5는 본 발명의 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다.
도 6은 사전 읽기 동작들 및 모델링이 수행되는 예를 보여준다.
도 7은 하나의 메모리 셀에 3개의 비트들이 기입될 때의 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 8은 본 발명의 실시 예에 따른 연판정 제어기를 보여준다.
도 9는 본 발명의 다른 실시 예에 따른 스토리지 장치의 동작 방법을 보여주는 순서도이다.
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다.
도 11은 본 발명의 실시 예에 따른 하나의 메모리 블록의 예를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여준다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리 장치(110) 및 메모리 제어기(120), 그리고 외부 버퍼(130)를 포함할 수 있다. 불휘발성 메모리 장치(110)는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들의 각각은 둘 이상의 비트들을 저장할 수 있다.
예를 들어, 불휘발성 메모리 장치(110)는 플래시 메모리 장치, 상 변화 메모리 장치, 강유전체 메모리 장치, 자기 메모리 장치, 저항성 메모리 장치 등과 같은 다양한 불휘발성 메모리 장치들 중 적어도 하나를 포함할 수 있다. 본 발명의 기술적 사상을 용이하게 전달하기 위하여, 불휘발성 메모리 장치(110)는 플래시 메모리 장치인 것으로 가정될 수 있다.
메모리 제어기(120)는 외부의 호스트 장치로부터 불휘발성 메모리 장치(110)에 데이터를 기입하거나 또는 불휘발성 메모리 장치(110)로부터 데이터를 읽기 위한 다양한 요청들을 수신할 수 있다. 메모리 제어기(120)는 외부의 호스트 장치와 통신되는 사용자 데이터를 외부 버퍼(130)에 저장(또는 버퍼링)하고, 그리고 스토리지 장치(100)를 관리하기 위한 메타 데이터를 외부 버퍼(130)에 저장할 수 있다.
메모리 제어기(120)는 제1 채널(CH1) 및 제2 채널(CH2)을 통해 불휘발성 메모리 장치(110)를 액세스할 수 있다. 예를 들어, 메모리 제어기(120)는 제1 채널(CH1)을 통해 불휘발성 메모리 장치(110)에 명령 및 주소를 전송할 수 있다. 메모리 제어기(120)는 제1 채널(CH1)을 통해 불휘발성 메모리 장치(110)와 데이터를 교환할 수 있다.
메모리 제어기(120)는 제2 채널(CH2)을 통해 불휘발성 메모리 장치(110)에 제1 제어 신호들을 전송할 수 있다. 메모리 제어기(120)는 제2 채널(CH2)을 통해 불휘발성 메모리 장치(110)로부터 제2 제어 신호들을 수신할 수 있다.
예시적으로, 메모리 제어기(120)는 둘 이상의 불휘발성 메모리 장치들을 제어하도록 구성될 수 있다. 메모리 제어기(120)는 둘 이상의 불휘발성 메모리 장치들의 각각에 대해 서로 다른 제1 채널들 및 서로 다른 제2 채널들을 구비할 수 있다.
다른 예로서, 메모리 제어기(120)는 둘 이상의 불휘발성 메모리 장치들에 대해 하나의 제1 채널을 공유할 수 있다. 메모리 제어기(120)는 둘 이상의 불휘발성 메모리 장치들에 대해 제2 채널의 일부를 공유하고, 그리고 나머지 일부를 별도로 구비할 수 있다.
외부 버퍼(130)는 랜덤 액세스 메모리를 포함할 수 있다. 예를 들어, 외부 버퍼(130)는 동적 랜덤 액세스 메모리, 상 변화 랜덤 액세스 메모리, 강유전체 랜덤 액세스 메모리, 자기 랜덤 액세스 메모리, 저항성 랜덤 액세스 메모리 중 적어도 하나를 포함할 수 있다.
메모리 제어기(120)는 버스(121), 호스트 인터페이스(122), 내부 버퍼(123), 프로세서(124), 버퍼 제어기(126), 메모리 관리자(127), 그리고 에러 정정 코드 블록(128)(ECC 블록)(Error Correction Code 블록)을 포함할 수 있다.
버스(121)는 메모리 제어기(120) 내부의 구성 요소들 사이에 통신 채널들을 제공할 수 있다. 호스트 인터페이스(122)는 외부의 호스트 장치로부터 다양한 요청들을 수신하고, 그리고 수신된 요청들을 해석할 수 있다. 호스트 인터페이스(122)는 해석된 요청들을 내부 버퍼(123)에 저장할 수 있다.
호스트 인터페이스(122)는 외부의 호스트 장치에 다양한 응답들을 전송할 수 있다. 호스트 인터페이스(122)는 정해진 통신 프로토콜에 기반하여 외부의 호스트 장치와 신호들을 교환할 수 있다. 내부 버퍼(123)는 랜덤 액세스 메모리를 포함할 수 있다. 예를 들어, 내부 버퍼(123)는 정적 랜덤 액세스 메모리 또는 동적 랜덤 액세스 메모리를 포함할 수 있다.
프로세서(124)는 메모리 제어기(120)를 구동하기 위한 운영 체제 또는 펌웨어를 구동할 수 있다. 프로세서(124)는 내부 버퍼(123)에 저장된 해석된 요청들을 읽고, 불휘발성 메모리 장치(110)를 제어하기 위한 명령들 및 주소들을 생성할 수 있다. 프로세서(124)는 생성된 명령들 및 주소들을 메모리 관리자(127)로 전달할 수 있다.
프로세서(124)는 스토리지 장치(100)를 관리하기 위한 다양한 메타 데이터를 내부 버퍼(123)에 저장할 수 있다. 프로세서(124)는 버퍼 제어기(126)를 통해 외부 버퍼(130)를 액세스할 수 있다. 프로세서(124)는 외부 버퍼(130)에 저장된 사용자 데이터를 불휘발성 메모리 장치(110)로 전송하도록 버퍼 제어기(126) 및 메모리 관리자(127)를 제어할 수 있다.
프로세서(124)는 외부 버퍼(130)에 저장된 데이터를 외부의 호스트 장치로 전송하도록 호스트 인터페이스(122) 및 버퍼 제어기(126)를 제어할 수 있다. 프로세서(124)는 불휘발성 메모리 장치(110)로부터 수신되는 데이터를 외부 버퍼(130)에 저장하도록 버퍼 제어기(126) 및 메모리 관리자(127)를 제어할 수 있다. 프로세서(124)는 외부의 호스트 장치로부터 수신되는 데이터를 외부 버퍼(130)에 저장하도록 호스트 인터페이스(122) 및 버퍼 제어기(126)를 제어할 수 있다.
버퍼 제어기(126)는 프로세서(124)의 제어에 따라 외부 버퍼(130)에 데이터를 기입하거나 외부 버퍼(130)로부터 데이터를 읽을 수 있다. 메모리 관리자(127)는 프로세서(124)의 제어에 따라 제1 채널(CH1) 및 제2 채널(CH2)을 통해 불휘발성 메모리 장치(110)와 통신할 수 있다.
에러 정정 코드 블록(128)은 불휘발성 메모리 장치(110)로 전송되는 데이터에 대해 에러 정정 코드(ECC)를 이용하여 에러 정정 인코딩을 수행할 수 있다. 에러 정정 코드 블록(128)은 불휘발성 메모리 장치(110)로부터 수신되는 데이터에 대해 에러 정정 코드(ECC)를 이용하여 에러 정정 디코딩을 수행할 수 있다.
프로세서(124)는 연판정 제어기(125)(SDC)(Soft Decision Controller)를 포함할 수 있다. 프로세서(124)의 제어에 따라 메모리 관리자(127)가 불휘발성 메모리 장치(110)로부터 데이터를 읽고, 그리고 에러 정정 코드 블록(128)이 읽혀진 데이터에 대한 에러 정정을 실패한 때에, 연판정 제어기(125)가 활성화될 수 있다.
연판정 제어기(125)는 불휘발성 메모리 장치(110)에 저장된 데이터가 에러를 포함할 때, 해당 데이터로부터 원본 데이터를 복원함으로써 향상된 신뢰성 및 데이터 무결성을 제공하는 읽기 동작을 지원할 수 있다.
예시적으로, 스토리지 장치(100)에서 외부 버퍼(130) 및 버퍼 제어기(126)는 생략될 수 있다. 외부 버퍼(130) 및 버퍼 제어기(126)가 생략될 때, 외부 버퍼(130) 및 버퍼 제어기(126)에 의해 수행되는 것으로 설명된 기능들은 내부 버퍼(123)에 의해 수행될 수 있다.
도 2는 경판정에 기반항 읽기가 수행되는 예를 보여준다. 도 2에서, 가로축은 불휘발성 메모리 장치(110)의 메모리 셀들의 문턱 전압(VTH)을 가리키고, 세로축은 불휘발성 메모리 장치(110)의 메모리 셀들의 수를 가리킨다. 예시적으로, 메모리 셀들의 각각은 소거 상태(E) 및 프로그램 상태(P) 중 하나의 상태를 갖도록 프로그램되는 예가 도 2에 도시된다.
도 2에서, 제1선(L1)은 쓰기 동작 시에 프로그램되지 않고 소거 상태(E)를 갖는 메모리 셀들에 대응할 수 있다. 제2선(L2)은 쓰기 동작 시에 프로그램 상태(P)를 갖도록 프로그램된 메모리 셀들에 대응할 수 있다.
도 1 및 도 2를 참조하면, 읽기 동작 시에, 불휘발성 메모리 장치(110)는 읽기 전압(VR)을 이용하여 읽기 동작을 수행할 수 있다. 읽기 전압(VR)보다 낮은 문턱 전압을 갖는 메모리 셀들은 턴-온 되고, 읽기 전압(VR)보다 높은 문턱 전압을 갖는 메모리 셀들은 턴-오프 될 수 있다.
불휘발성 메모리 장치(110)는 턴-온 된 메모리 셀들을 소거 상태(E)로 식별하고, 그리고 턴-오프 된 메모리 셀들을 프로그램 상태(P)로 식별할 수 있다. 불휘발성 메모리 장치(110)는 식별된 데이터를 메모리 제어기(120)로 전송할 수 있다.
도 2에 도시된 바와 같이, 제1선(L1)에 대응하는 메모리 셀들 중 일부는 읽기 전압(VR)보다 높은 문턱 전압들을 가질 수 있다. 즉, 소거 상태(E)를 갖도록 의도된 메모리 셀들 중 일부는 프로그램 상태(P)로 식별될 수 있다.
마찬가지로, 제2선(L2)에 대응하는 메모리 셀들 중 일부는 읽기 전압(VR)보다 낮은 문턱 전압들을 가질 수 있다. 즉, 프로그램 상태(P)를 갖도록 의도된 메모리 셀들 중 일부는 소거 상태(E)로 식별될 수 있다.
에러 정정 코드 블록(128)은 불휘발성 메모리 장치(110)로부터 수신되는 데이터에 대해 에러 정정 디코딩을 시도할 수 있다. 에러 정정 디코딩에 의해, 제1 선(L1)에 대응하는 메모리 셀들로부터 읽힌 데이터 중 프로그램 상태(P)로 식별된 데이터는 소거 상태(E)로 정정될 수 있다. 또한, 제2 선(L2)에 대응하는 메모리 셀들로부터 읽힌 데이터 중 소거 상태(E)로 식별된 데이터는 프로그램 상태(P)로 정정될 수 있다.
도 2를 참조하여 설명된 바와 같이, 메모리 셀들의 상태들(E 및 P) 사이를 한 번 읽고, 그리고 에러 정정 디코딩을 수행하는 읽기 동작은 경판정에 기반한 읽기 동작일 수 있다.
도 3은 경판정에 기반한 읽기 동작에서 정정 불가능한 에러들이 발생하는 예를 보여준다. 도 1 및 도 3을 참조하면, 제1선(L1)에 대응하며 소거 상태(E)로 의도된 메모리 셀들로부터 읽혀진 데이터 중에서 프로그램 상태(P)로 식별되는 데이터의 수는 도 2와 비교하여 증가할 수 있다.
또한, 제2선(L2)에 대응하며 프로그램 상태(P)로 의도된 메모리 셀들로부터 읽혀진 데이터 중에서 소거 상태(E)로 식별되는 데이터의 수는 도 2와 비교하여 증가할 수 있다. 메모리 셀들의 문턱 전압들은 리텐션(retention), 교란(disturb), 커플링(coupling) 등과 같은 다양한 요인들에 의해 의도하지 않았음에도 변경될 수 있다. 이러한 변경은 메모리 셀들에 기입된 데이터가 열화되는 것으로 이해될 수 있다.
메모리 셀들에 기입된 데이터의 열화가 진행되면, 에러들의 수가 증가한다. 에러들의 수가 에러 정정 코드 블록(128)에 의해 정정 가능한 범위를 초과하면, 정정 불가능한 에러가 발생할 수 있다. 경판정에 기반한 읽기 동작에서 정정 불가능한 에러가 발생하면, 메모리 제어기(120)는 데이터의 복원을 위한 후속 읽기 동작들을 수행할 수 있다. 예를 들어, 프로세서(124)의 연판정 제어기(125)가 활성화되고, 그리고 연판정에 기반한 읽기 동작이 수행될 수 있다.
도 4는 연판정에 기반한 읽기 동작의 예를 보여준다. 도 1 및 도 4를 참조하면, 메모리 제어기(120)는 읽기 전압(VR)보다 제1 오프셋(OFF1)만큼 낮은 제1 오프셋 읽기 전압(VRO1)을 이용하여 읽기를 수행하고, 그리고 읽기 전압(VR)보다 제1 오프셋(OFF1)보다 높은 제2 오프셋 읽기 전압(VRO2)을 이용하여 읽기를 수행하도록 불휘발성 메모리 장치(110)를 제어할 수 있다.
불휘발성 메모리 장치(110)는 제1 오프셋 읽기 전압(VRO1)을 이용한 읽기 결과와 제2 오프셋 읽기 전압(VRO2)을 이용한 읽기 결과에 대해 배타적 논리곱(XOR) 연산을 수행할 수 있다. 불휘발성 메모리 장치(110)는 연산 결과를 메모리 제어기(120)에 전송할 수 있다.
제1 오프셋 읽기 전압(VRO1)을 이용한 제1 읽기와 제2 오프셋 읽기 전압(VRO2)을 이용한 제2 읽기에서 동일한 상태들(E 또는 P)로 판단된 메모리 셀에 대응하는 연산 결과는 '0'일 수 있다. 제1 오프셋 읽기 전압(VRO1)을 이용한 제1 읽기와 제2 오프셋 읽기 전압(VRO2)을 이용한 제2 읽기에서 동일한 상태들(E 또는 P)로 판단된 메모리 셀에 대응하는 연산 결과는 '1'일 수 있다. 즉, 연산 결과는 메모리 셀들의 각각이 제1 읽기와 제2 읽기에서 동일한 상태로 식별되었는지 또는 서로 다른 상태들로 식별되었는지를 나타낼 수 있다.
경판정에 기반한 읽기 동작에서 소거 상태(E)로 식별되고, 그리고 연산 결과에서 동일한 상태들로 식별된 메모리 셀의 문턱 전압은 제1 오프셋 읽기 전압(VRO1)보다 낮을 수 있다. 제1선(L1)에 대응하는 메모리 셀들 중에서 제1 오프셋 읽기 전압(VRO1)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 강한 올바른(SC)(Strong Correct) 비트들을 저장하는 것으로 식별될 수 있다.
경판정에 기반한 읽기 동작에서 소거 상태(E)로 식별되고, 그리고 연산 결과에서 서로 다른 상태들로 식별된 메모리 셀의 문턱 전압은 제1 오프셋 읽기 전압(VRO1)보다 높고 그리고 읽기 전압(VR)보다 낮을 수 있다. 제1선(L1)에 대응하는 메모리 셀들 중에서 제1 오프셋 읽기 전압(VRO1)보다 높고 그리고 읽기 전압(VR)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 약한 올바른(WC)(Weak Correct) 비트들(또는 신뢰할 수 없는 올바른(UC)(Unreliable Correct) 비트들)을 저장하는 것으로 식별될 수 있다.
경판정에 기반한 읽기 동작에서 프로그램 상태(P)로 식별되고, 그리고 연산 결과에서 서로 다른 상태들로 식별된 메모리 셀의 문턱 전압은 읽기 전압(VR)보다 높고 그리고 제2 오프셋 읽기 전압(VRO2)보다 낮을 수 있다. 제1선(L1)에 대응하는 메모리 셀들 중에서 읽기 전압(VR)보다 높고 그리고 제2 오프셋 읽기 전압(VRO2)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 약한 에러(WE)(Weak Error) 비트들을 저장하는 것으로 식별될 수 있다.
경판정에 기반한 읽기 동작에서 프로그램 상태(P)로 식별되고, 그리고 연산 결과에서 동일한 상태들로 식별된 메모리 셀의 문턱 전압은 제2 오프셋 읽기 전압(VRO2)보다 높을 수 있다. 제1선(L1)에 대응하는 메모리 셀들 중에서 제2 오프셋 읽기 전압(VRO2)보다 높은 문턱 전압을 갖는 메모리 셀들의 데이터는 강한 에러(SE)(Strong Error) 비트들(또는 하드 에러(HE)(Hard Error) 비트들)을 저장하는 것으로 식별될 수 있다.
제2선(L2)에 대응하는 메모리 셀들 중에서 제2 오프셋 읽기 전압(VRO2)보다 높은 문턱 전압을 갖는 메모리 셀들의 데이터는 강한 올바른(SC) 비트들을 저장하는 것으로 식별될 수 있다. 제2선(L2)에 대응하는 메모리 셀들 중에서 읽기 전압(VR)보다 높고 그리고 제2 오프셋 읽기 전압(VRO2)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 약한 올바른(WC) 비트들(또는 신뢰할 수 없는 올바른(UC) 비트들)을 저장하는 것으로 식별될 수 있다.
제2선(L2)에 대응하는 메모리 셀들 중에서 제1 오프셋 읽기 전압(VRO1)보다 높고 그리고 읽기 전압(VR)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 약한 에러(WE) 비트들을 저장하는 것으로 식별될 수 있다. 제2선(L2)에 대응하는 메모리 셀들 중에서 제1 오프셋 읽기 전압(VRO1)보다 낮은 문턱 전압을 갖는 메모리 셀들의 데이터는 강한 에러(SE) 비트들(또는 하드 에러(HE) 비트들)을 저장하는 것으로 식별될 수 있다.
메모리 제어기(120)는 읽기 전압(VR)을 이용하여 읽혀진 데이터, 그리고 제1 오프셋 읽기 전압(VRO1) 및 제2 오프셋 읽기 전압(VRO2)을 이용하여 읽혀진 데이터에 기반하여 비트들을 식별하고, 그리고 식별 결과를 이용하여 에러 정정 코드 블록(128)에서 연판정을 수행할 수 있다.
예를 들어, 에러 정정 코드 블록(128)은 강한 올바른(SC) 비트들, 약한 올바른(WC) 비트들, 약한 에러(WE) 비트들, 그리고 강한 에러(SE) 비트들에 각각 점수들을 부여할 수 있다. 에러 정정 코드 블록(128)은 점수들이 부여된 비트들에 대해 저밀도 패리티 검사(LDPC)(Low Density parity Check) 디코딩을 수행함으로써 에러들을 정정하고 원본 데이터를 복원할 수 있다.
본 발명의 실시 예에 따른 스토리지 장치(100)는 정교한 연판정을 수행하도록 더 구성될 수 있다. 정교한 연판정은 제1선(L1) 및 제2선(L2)과 같은 메모리 셀들의 산포 상태들을 모델링하고, 그리고 모델링 결과에 기반하여 오프셋을 조절하고, 조절된 오프셋에 기반하여 적어도 두 개의 읽기들을 포함하는 읽기 동작을 수행하고, 그리고 연판정을 수행할 수 있다.
도 5는 본 발명의 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 5를 참조하면, S110 단계에서, 메모리 제어기(120)는 외부의 호스트 장치로부터 논리 주소(LBA)를 포함하는 읽기 요청을 수신할 수 있다.
메모리 제어기(120)는 외부의 호스트 장치의 논리 주소들(LBA) 및 불휘발성 메모리 장치(110)의 물리 주소들(PBA) 사이의 매핑 정보를 메타 데이터로 관리할 수 있다. 예를 들어, 매핑 정보는 불휘발성 메모리 장치(110)에 백업되고, 그리고 외부 버퍼(130) 또는 내부 버퍼(123)에 로드되어 사용될 수 있다.
메모리 제어기(120)는 매핑 정보를 이용하여 논리 주소(LBA)를 물리 주소(PBA)로 변환할 수 있다. S115 단계에서, 메모리 제어기(120)는 물리 주소(PBA) 및 읽기 레벨의 정보를 포함하는 읽기 전압 정보(IVR)와 함께 제1 읽기 명령(CMD_R1)을 불휘발성 메모리 장치(110)로 전송할 수 있다.
S120 단계에서, 도 3을 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(110)는 읽기 전압 정보(IVR)가 가리키는 읽기 레벨을 이용하여, 물리 주소(PBA)가 가리키는 메모리 셀들로부터 데이터를 읽을 수 있다. S125 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 제1 데이터(D1)를 메모리 제어기(120)로 전송할 수 있다. S115 단계 내지 S125 단계는 하나의 읽기 동작에 해당할 수 있다.
S130 단계에서, 메모리 제어기(120)는 경판정을 수행할 수 있다. 예를 들여, 메모리 제어기(120)는 읽기 전압 정보(IVR)를 이용하여 읽혀진 제1 데이터(D1)에 대해 에러 정정 디코딩을 수행할 수 있다. 예시적으로, 에러 정정 디코딩은 실패할 수 있다. 이후에, 메모리 제어기(120)는 메모리 셀들에 저장된 데이터를 복원하기 위한 절차에 진입할 수 있다.
S135 단계에서, 메모리 제어기(120)는 제1 읽기 명령(CMD_R1), 물리 주소(PBA), 그리고 제1 읽기 전압 정보(IVR1)를 불휘발성 메모리 장치(110)로 전송할 수 있다. 제1 읽기 전압 정보(IVR1)가 가리키는 읽기 레벨은 읽기 전압 정보(IVR)가 가리키는 읽기 레벨보다 낮거나 높을 수 있다.
S140 단계에서, 불휘발성 메모리 장치(110)는 제1 읽기 전압 정보(IVR1)가 가리키는 읽기 레벨을 이용하여 읽기 동작을 수행할 수 있다. S145 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 제2 데이터(D2)를 메모리 제어기(120)로 전송할 수 있다.
S150 단계에서, 메모리 제어기(120)는 제1 읽기 명령(CMD_R1), 물리 주소(PBA), 그리고 제2 읽기 전압 정보(IVR2)를 불휘발성 메모리 장치(110)로 전송할 수 있다. 제2 읽기 전압 정보(IVR2)가 가리키는 읽기 레벨은 읽기 전압 정보(IVR)가 가리키는 읽기 레벨보다 높거나 낮을 수 있다.
S155 단계에서, 불휘발성 메모리 장치(110)는 제2 읽기 전압 정보(IVR2)가 가리키는 읽기 레벨을 이용하여 읽기 동작을 수행할 수 있다. S160 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 제3 데이터(D3)를 메모리 제어기(120)로 전송할 수 있다.
S135 단계 내지 S145 단계는 하나의 읽기 동작에 해당하며, 정교한 연판정을 위한 사전 읽기 동작들에 포함될 수 있다. S150 단계 내지 S160 단계 또한 하나의 읽기 동작에 해당하며, 정교한 연판정을 위한 사전 읽기 동작들에 포함될 수 있다.
S165 단계에서, 사전 읽기 동작들을 통해 읽혀진 제2 데이터(D2) 및 제3 데이터(D3)에 기반하여, 메모리 제어기(120)는 메모리 셀들의 문턱 전압 산포들을 모델링할 수 있다.
도 6은 사전 읽기 동작들 및 모델링이 수행되는 예를 보여준다. 도 1, 도 5 및 도 6을 참조하면, 소거 상태(E)로 의도된 메모리 셀들을 가리키는 제1선(L1) 및 프로그램 상태(P)로 의도된 제2선(L2)이 도시되지만, 실제 메모리 셀들로부터 식별되는 문턱 전압들은 제1선(L1) 및 제2선(L2)으로 구분되지 않는다.
도 6에서 실선으로 도시된 바와 같이, 메모리 셀들로부터 실제로 식별되는 문턱 전압들은 제1선(L1) 및 제2선(L2)으로 구분되지 않는다. 그러나 메모리 셀들의 문턱 전압 산포의 양쪽 말단은 지수적으로 감소하는 형태를 가짐이 알려져 있다.
따라서, 소거 상태(E)의 문턱 전압 산포의 양쪽 말단 중 프로그램 상태(P)와 중첩되는 말단에서 제1 함수(F1)가 모델링될 수 있다. 또한, 프로그램 상태(P)의 문턱 전압 산포의 양쪽 말단 중 소거 상태(E)와 중첩되는 말단에서 제2 함수(F2)가 모델링될 수 있다.
제1 읽기 전압 정보(IVR1)가 가리키는 제1 읽기 전압(VR1)을 이용하여 읽기 동작을 수행하고, 그리고 온-셀들(턴-온 되는 메모리 셀들) 또는 오프-셀들(턴-오프 되는 메모리 셀들)의 수가 제1 카운트로서 카운트될 수 있다. 마찬가지로, 제2 읽기 전압 정보(IVR2)가 가리키는 제2 읽기 전압(VR2)을 이용하여 읽기 동작을 수행하고, 그리고 온-셀들 또는 오프-셀들의 수가 제2 카운트로서 카운트될 수 있다.
메모리 제어기(120)는 제1 카운트 및 제2 카운트에 기반하여 제1 함수(F1) 및 제2 함수(F2)를 모델링할 수 있다. 예를 들어, 메모리 제어기(120)는 카운트 값들 및 카운트 값들에 대응하는 지수 함수들을 메타 데이터로 관리할 수 있다. 메모리 제어기(120)는 메타 데이터를 참조하여 지수 함수들을 모델링할 수 있다.
예시적으로, 제1 읽기 전압(VR1)의 레벨 및 제2 읽기 전압(VR2)의 레벨은 고정될 수 있다. 다른 예로서, 메모리 제어기(120)는 온도, 습도, 메모리 셀들의 소거 횟수, 데이터가 기입된 후 경과한 시간, 데이터가 기입된 후 읽기 동작이 수행된 횟수 등과 같은 환경 변수들 중 적어도 하나의 환경 변수의 범위들 및 범위들에 대응하는 제1 읽기 전압(VR1) 및 제2 읽기 전압(VR2)의 레벨들을 메타 데이터로 관리하고, 그리고 메타 데이터를 참조하여 제1 읽기 전압(VR1) 및 제2 읽기 전압(VR2)의 레벨들을 판단할 수 있다.
사전 읽기 동작들의 횟수는 2회로 한정되지 않는다. 사전 읽기 동작들의 횟수는 고정될 수 있다. 반대로, 사전 읽기 동작들의 횟수는 상술된 환경 변수들 중 적어도 하나의 환경 변수의 범위들 및 범위들에 대응하는 사전 읽기 동작들의 횟수를 메타 데이터로 관리하고, 그리고 메타 데이터를 참조하여 사전 읽기 동작들의 횟수를 판단할 수 있다.
예시적으로, 메모리 제어기(120)는 소거 상태(E) 및 프로그램 상태(P)에 공통으로 적용되는 하나의 지수 함수를 모델링 하거나, 또는 소거 상태(E) 및 프로그램 상태(P)에 각각 대응하는 서로 다른 지수 함수들을 모델링할 수 있다.
다시 도 1 및 도 5를 참조하면, S170 단계에서, 메모리 제어기(120)는 오프셋을 결정할 수 있다. 예를 들어, 오프셋은 부르트 포스(brute force)에 기반하여 결정될 수 있다. 메모리 제어기(120)는 다양한 오프셋들을 설정하고, 그리고 다양한 오프셋들의 각각에 대응하는 강한 올바른(SC) 비트들, 약한 올바른(WC) 비트들, 약한 에러(WE) 비트들, 그리고 강한 에러(SE) 비트들의 수들을 계산할 수 있다.
메모리 제어기(120)는 다양한 오프셋들 중에서 계산된 수들이 특정 범위에 속하는 오프셋을 선택할 수 있다. 예를 들어, 메모리 제어기(120)는 강한 올바른(SC) 비트들 및 약한 올바른(WC) 비트들의 수에 대한 강한 올바른(SC) 비트들의 수의 비율(제1 비율), 그리고 강한 에러(SE) 비트들 및 약한 에러(WE) 비트들의 수에 대한 강한 에러(SE) 비트들의 수의 비율(제2 비율)에 기반하여 오프셋을 선택할 수 있다.
예를 들어, 오프셋이 증가할수록 약한 올바른(WC) 비트들 및 약한 에러(WE) 비트들의 수가 증가하고, 에러 비트들과 올바른 비트들 사이의 차별성이 감소할 수 있다. 오프셋이 감소할수록, 경판정에 기반한 읽기 동작과 차이가 적어질 수 있다. 메모리 제어기(120)는 차별성을 획득하면서 경판정에 기반한 읽기 동작과도 차이를 확보할 수 있는 오프셋을 선택할 수 있다. 예를 들어, 메모리 제어기(120)는 제1 비율이 90%에 가깝고 그리고 제2 비율이 4% 대인 오프셋을 선택할 수 있다.
다른 예로서, 메모리 제어기(120)는 오프셋을 추론하도록 학습된 기계 학습 알고리즘을 포함할 수 있다. 메모리 제어기(120)는 기계 학습 알고리즘을 이용하여 오프셋을 추론할 수 있다. S175 단계에서, 메모리 제어기(120)는 제2 읽기 명령(CMD_R2), 물리 주소(PBA), 읽기 전압 정보(IVR), 그리고 S170 단계에서 결정된 제2 오프셋(OFF2)을 불휘발성 메모리 장치로 전송할 수 있다.
예시적으로, 제2 오프셋(OFF2)은 소거 상태(E) 및 프로그램 상태(P)에 공통으로 적용되는 하나의 오프셋, 또는 소거 상태(E) 및 프로그램 상태(P)에 각각 적용되는 두 개의 오프셋들을 포함할 수 있다. 두 개의 오프셋들은 동일하거나 서로 다를 수 있다.
S180 단계에서, 도 4를 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(110)는 읽기 전압 정보(IVR)가 가리키는 읽기 레벨 및 제2 오프셋(OFF2)을 이용하여 읽기들을 수행하고, 읽기들의 결과들에 대해 배타적 논리곱을 수행할 수 있다. S185 단계에서, 불휘발성 메모리 장치(110)는 배타적 논리곱의 결과를 제4 데이터(D4)로서 메모리 제어기(120)로 전송할 수 있다.
S190 단계에서, 메모리 제어기(120)는 연판정(SD)을 수행할 수 있다. 예를 들어, 도 4를 참조하여 설명된 바와 같이, 메모리 제어기(120)는 강한 올바른(SC) 비트들, 약한 올바른(WC) 비트들, 약한 에러(WE) 비트들, 그리고 강한 에러(SE) 비트들에 각각 점수들을 부여하고, 그리고 LDPC 디코딩을 수행할 수 있다.
예시적으로, 연판정이 성공하여 원본 데이터가 복원될 수 있다. S195 단계에서, 메모리 제어기(120)는 복원된 원본 데이터를 제5 데이터(D5)로서 외부의 호스트 장치에 제공할 수 있다.
상술된 바와 같이, 메모리 제어기(120)는 사전 읽기 동작들을 수행하여 메모리 셀들의 문턱 전압 산포들을 모델링할 수 있다. 메모리 제어기(120)는 모델링 결과에 기반하여 오프셋을 결정하고, 그리고 연판정을 수행할 수 있다. 메모리 셀들의 문턱 전압 산포 상태에 기반하여 오프셋이 결정되므로, 연판정의 신뢰성이 향상될 수 있다.
예시적으로, 제1 읽기 명령들(CMD_R1)은 읽기 전압 정보(IVR)와 함께 전송되며, 동일한 코드들을 가질 수 있다. 제2 읽기 명령(CMD_R2)은 읽기 전압 정보(예를 들어, IVR1 또는 IVR2) 및 오프셋(예를 들어, OFF2)과 함께 전송되며, 제1 읽기 명령들(CMD_R1)과 다른 코드를 가질 수 있다.
예시적으로, S170 단계의 오프셋 결정 과정에서, 읽기 전압 정보(IVR)가 가리키는 읽기 레벨 또한 수정될 수 있다. 예를 들어, 읽기 전압 정보(IVR)가 가리키는 읽기 레벨은 제1 함수(F1) 및 제2 함수(F2)의 교점에 대응하는 레벨로 수정될 수 있다. 즉, S115 단계의 읽기 전압 정보(IVR)와 S175 단계의 읽기 전압 정보(IVR)가 가리키는 읽기 레벨들은 서로 다를 수 있다.
상술된 바와 같이, 사전 읽기 동작들은 제1 함수(F1) 및 제2 함수(F2)의 모델링을 위한 것이다. 따라서, 사전 읽기 동작들의 결과인 제2 데이터(D2) 및 제3 데이터(D3)에 대해 에러 정정 코드 블록(128)은 에러 정정 디코딩을 생략할 수 있다. 예시적으로, 도 5에서 언급된 물리 주소들(PBA)은 모두 동일한 메모리 셀들을 가리킬 수 있다.
예시적으로, 읽기 에러를 복원하기 위한 알고리즘들(예를 들어, 방어 코드들)의 수행 과정에서 제1 카운트 및 제2 카운트 중 적어도 일부가 미리 수집된 경우, 제1 카운트 및 제2 카운트를 수집하기 위한 동작들 중 대응하는 적어도 일부가 생략될 수 있다.
예시적으로, S190 단계에서 원본 데이터의 복원이 성공한 후에, 메모리 제어기(120)는 복원된 데이터를 불휘발성 메모리 장치의 다른 메모리 셀들에 기입하는 읽기 리클레임(read reclaim)을 수행할 수 있다. 읽기 리클레임이 수행되면 데이터가 새로 기입되므로, 데이터의 열화가 복원될 수 있다.
도 7은 하나의 메모리 셀에 3개의 비트들이 기입될 때의 메모리 셀들의 문턱 전압 산포들을 보여준다. 도 1, 도 5 및 도 7을 참조하면, 불휘발성 메모리 장치(110)의 메모리 셀들의 각각은 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1~P7) 중 하나의 상태에 대응하는 문턱 전압 범위에 속하도록 의도(예를 들어, 프로그램)될 수 있다. 메모리 셀들로부터 데이터를 읽기 위해, 8개의 상태들 사이에서 7개의 읽기 전압들(VR)이 사용될 수 있다.
메모리 셀들의 각각에 n개의 비트들이 기입될 때, 메모리 셀들은 2n개의 상태들 중 하나로 의도될 수 있다. 읽기 동작 시에, 메모리 셀들의 상태들을 식별하기 위해 2n-1개의 읽기 전압들이 사용될 수 있다.
S115 단계, S135 단계, S150 단계의 읽기 전압 정보들(IVR, IVR1, IVR2)의 각각은 2n-1개의 읽기 레벨들에 대한 정보를 포함할 수 있다. 또는, S115 단계, S135 단계, S150 단계의 읽기 전압 정보들(IVR, IVR1, IVR2)의 각각은 2n-1개의 읽기 레벨들을 각각 포함하는 세트들 중 하나의 세트를 가리키는 정보를 포함할 수 있다. S120 단계 및 S140 단계의 각각에서, 2n-1개의 읽기 레벨들을 이용하여 2n-1번의 읽기들이 수행될 수 있다.
S165 단계에서, '2 X 2n-1'개(중첩된 두 개의 산포 상태들에 서로 다른 함수들이 모델링되는 경우) 또는 2n-1개(중첩된 두 개의 산포 상태들에 동일한 함수가 모델링되는 경우)의 함수들이 모델링될 수 있다.
S170 단계에서, '2 X 2n-1'개(중첩된 두 개의 산포 상태들에 서로 다른 오프셋들이 결정되는 경우) 또는 2n-1개(중첩된 두 개의 산포 상태들이 동일한 오프셋이 결정되는 경우)의 오프셋들이 결정될 수 있다.
S175 단계의 읽기 전압 정보(IVR)는 2n-1개의 읽기 레벨들에 대한 정보 또는 2n-1개의 읽기 레벨들을 각각 포함하는 세트들 중 하나의 세트를 가리키는 정보를 포함할 수 있다. S175 단계의 제2 오프셋(OFF2)은 '2 X 2n-1'개(중첩된 두 개의 산포 상태들에 서로 다른 오프셋들이 결정되는 경우) 또는 2n-1개(중첩된 두 개의 산포 상태들이 동일한 오프셋이 결정되는 경우)의 오프셋들을 포함할 수 있다.
다른 예로서, S175 단계의 제2 오프셋(OFF2)은 '2 X 2n-1'개(중첩된 두 개의 산포 상태들에 서로 다른 오프셋들이 결정되는 경우)의 오프셋들을 각각 포함하는 세트들 또는 2n-1개(중첩된 두 개의 산포 상태들이 동일한 오프셋이 결정되는 경우)의 오프셋들을 각각 포함하는 세트들 중 하나의 세트를 가리키는 정보를 포함할 수 있다. S180 단계에서, 불휘발성 메모리 장치(110)는 '2 X 2n-1'번의 읽기 동작들을 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 연판정 제어기(125)를 보여준다. 도 1, 도 5 및 도 8을 참조하면, 연판정 제어기(125)는 카운터(210), 지수 계산기(220), 오프셋 판단기(230), 그리고 에러 정정 코드(ECC) 수정기(240)를 포함할 수 있다.
카운터(210)는 사전 읽기 동작들에 의해 읽혀진 데이터(예를 들어, 제2 데이터(D2) 및 제3 데이터(D3))에서 온-셀들 또는 오프-셀들의 수를 카운트할 수 있다. 지수 계산기(220)는 카운터(210)의 카운트 값으로부터 지수 함수 또는 지수 함수들을 계산할 수 있다.
예를 들어, 지수 계산기(220)는 카운트 값들 및 카운트 값들에 대응하는 지수 함수들을 메타 데이터로 관리할 수 있다. 지수 계산기(220)는 메타 데이터를 참조하여 지수 함수들을 선택할 수 있다. 다른 예로서, 지수 계산기(220)는 카운트 값들로부터 지수 함수들을 추론하도록 학습된 기계 학습 알고리즘을 포함할 수 있다.
오프셋 판단기(230)는 지수 함수들로부터 제2 오프셋(OFF2)을 판단할 수 있다. 예를 들어, 오프셋 판단기(230)는 부르트 포스에 기판하여 오프셋들에 대응하는 비트들(강한, 약한, 올바른, 또는 에러)의 수들을 계산하고, 그리고 비트들(강한, 약한, 올바른, 또는 에러)의 수들에 기반하여 오프셋을 선택할 수 있다.
다른 예로서, 오프셋 판단기(230)는 지수 함수의 파라미터들 및 파라미터들에 대응하는 오프셋들을 메타 데이터로 관리할 수 있다. 오프셋 판단기(230)는 메타 데이터를 참조하여 오프셋을 선택할 수 있다. 예를 들어, 지수 함수는 'eax +b'의 형태일 수 있다. x는 가로축, 즉 문턱 전압(VTH)에 대응할 수 있다. 이 지수 함수에서, 파라미터는 a 및 b를 포함할 수 있다.
다른 예로서, 오프셋 판단기(230)는 지수 함수의 파라미터들로부터 제2 오프셋(OFF2)을 추론하도록 학습된 기계 학습 알고리즘을 포함할 수 있다. 오프셋 판단기(230)는 기계 학습 알고리즘을 이용하여 제2 오프셋(OFF2)을 판단할 수 있다. 다른 예로서, 지수 계산기(220) 및 오프셋 판단기(230)는 카운트 값들로부터 제2 오프셋(OFF2)을 추론하도록 학습된 기계 학습 알고리즘으로 통합될 수 있다.
오프셋 판단기(230)는 제2 오프셋(OFF2)과 연관된 세기 정보(SI)를 ECC 수정기(240)로 전달할 수 있다. 예를 들어, 세기 정보(SI)는 강한 올바른(SC) 비트들 및 약한 올바른(WC) 비트들의 수에 대한 강한 올바른(SC) 비트들의 수의 비율(제1 비율), 그리고 강한 에러(SE) 비트들 및 약한 에러(WE) 비트들의 수에 대한 강한 에러(SE) 비트들의 수의 비율(제2 비율)을 포함할 수 있다.
ECC 수정기(240)는 제1 비율 및 제2 비율에 기반하여 에러 정정 코드 블록(128)의 내부 연산 파라미터들을 수정할 수 있다. 예를 들어, 약한 비트들(WE 및 WC)의 수가 제1 기준값보다 낮을 때, 약한 비트들에 부여되는 점수가 증가될 수 있다. 약한 비트들의 수가 제2 가준값보다 높을 때, 약한 비트들에 부여되는 점수가 감소될 수 있다.
예시적으로, ECC 수정기(240)는 옵션으로 제공될 수 있다. ECC 수정기(240)는 연판정 제어기(125)에 제공되고, 선택적으로 활성화 또는 비활성화 될 수 있다. ECC 수정기(240)는 연판정 제어기(125)에 포함되지 않고 생략될 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 스토리지 장치(100)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 9를 참조하면, S211 단계에서, 메모리 제어기(120)는 외부의 호스트 장치로부터 논리 주소(LBA)를 포함하는 읽기 요청을 수신할 수 있다. S211 단계는 도 5의 S110 단계와 동일할 수 있다. 도 5의 S110 단계와 연관되어 제시된 설명은 S211 단계에 동일하게 적용될 수 있다
S212 단계에서, 메모리 제어기(120)는 제1 읽기 명령(CMD_R1), 물리 주소(PBA), 그리고 읽기 전압 정보(IVR)를 불휘발성 메모리 장치(110)로 전송할 수 있다. S213 단계에서, 불휘발성 메모리 장치(110)는 읽기를 수행할 수 있다. S214 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 제1 데이터(D1)를 메모리 제어기(120)로 전송할 수 있다. S212 단계 내지 S214 단계는 도 5의 S115 단계 내지 S125 단계와 동일할 수 있다. 도 5의 S115 단계 내지 S125 단계와 연관되어 제시된 설명은 S212 단계 내지 S214 단계에 동일하게 적용될 수 있다.
S215 단계에서, 메모리 제어기(120)는 에러 정정 디코딩을 수행할 수 있다. 예를 들어, 에러 정정 디코딩을 실패할 수 있다. S215 단계는 도 5의 S130 단계와 동일할 수 있다. 도 5의 S130 단계와 연관되어 제시된 설명은 도 9의 S215 단계에 동일하게 적용될 수 있다.
에러 정정 디코딩이 실패함에 따라, S216 단계에서, 메모리 제어기(120)는 제2 읽기 명령(CMD_R2), 물리 주소(PBA), 읽기 전압 정보(IVR), 그리고 제1 오프셋(OFF1)을 불휘발성 메모리 장치(110)로 전송할 수 있다. 제2 읽기 명령(CMD_R2)은 연판정을 위한 읽기들을 지시할 수 있다. 제1 오프셋(OFF1)은 고정된 값 또는 기본값일 수 있다.
S217 단계에서, 도 4를 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(110)는 제1 오프셋 읽기 전압(VRO1)을 이용하여 읽기를 수행하고, 그리고 제2 오프셋 읽기 전압(VRO2)을 이용하여 읽기를 수행할 수 있다. S218 단계에서, 불휘발성 메모리 장치(110)는 읽기 결과들에 대한 배타적 논리곱의 연산 결과를 제6 데이터(D6)로서 메모리 제어기(120)로 전송할 수 있다.
S219 단계에서, 메모리 제어기(120)는 제1 데이터(D1) 및 제6 데이터(D6)에 기반하여 연판정(SD)을 수행할 수 있다. 메모리 제어기(120)는 강한 올바른(SC) 비트들, 약한 올바른(WC) 비트들, 약한 에러(WE) 비트들, 강한 에러(SE) 비트들을 식별하고, 점수들을 각각 부여할 수 있다. 이후에, 메모리 제어기(120)는 LDPC 디코딩을 수행할 수 있다. 예를 들어, 연판정(SD)은 실패할 수 있다.
연판정이 실패함에 따라, 메모리 제어기(120)는 사전 읽기 동작들을 수행할 수 있다. S220 단계에서, 메모리 제어기(120)는 불휘발성 메모리 장치(110)에 제1 읽기 명령(CMD_R1), 물리 주소(PBA), 그리고 제1 읽기 전압 정보(IVR1)를 전송할 수 있다.
S221 단계에서, 불휘발성 메모리 장치(110)는 제1 읽기 전압 정보(VIR1)가 가리키는 읽기 레벨을 이용하여 읽기를 수행할 수 있다. S222 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 데이터를 제2 데이터(D2)로서 메모리 제어기(120)로 전송할 수 있다.
S223 단계에서, 메모리 제어기(120)는 불휘발성 메모리 장치(110)에 제1 읽기 명령(CMD_R1), 물리 주소(PBA), 그리고 제2 읽기 전압 정보(IVR2)를 전송할 수 있다. S224 단계에서, 불휘발성 메모리 장치(110)는 제2 읽기 전압 정보(VIR2)가 가리키는 읽기 레벨을 이용하여 읽기를 수행할 수 있다. S225 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 데이터를 제3 데이터(D3)로서 메모리 제어기(120)로 전송할 수 있다.
S226 단계에서, 메모리 제어기(120)는 지수 함수들을 모델링할 수 있다. S227 단계에서, 메모리 제어기(120)는 오프셋을 결정할 수 있다. S228 단계에서, 메모리 제어기(120)는 제2 읽기 명령(CMD_R2), 물리 주소(PBA), 읽기 전압 정보(IVR), 그리고 제2 오프셋(OFF2)을 불휘발성 메모리 장치(110)로 전송할 수 있다.
S229 단계에서, 도 4를 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(110)는 읽기 전압 정보(IVR) 및 제2 오프셋(OFF2)이 가리키는 두 개의 오프셋 읽기 전압들을 이용하여 읽기들을 수행할 수 있다. S230 단계에서, 불휘발성 메모리 장치(110)는 읽혀진 데이터를 제4 데이터(D4)로서 메모리 제어기(120)로 전송할 수 있다.
S220 단계 내지 S230 단계는 도 5의 S135 단계 내지 S185 단계와 동일할 수 있다. 도 5의 S135 단계 내지 S185 단계와 연관되어 제시된 설명은 도 9의 S220 단계 내지 S230 단계에 동일하게 적용될 수 있다.
S231 단계에서, 메모리 제어기(120)는 연판정(SD)을 수행할 수 있다. 예를 들어, 도 5의 S190 단계를 참조하여 설명된 것과 같이, 메모리 제어기(120)는 제1 데이터(D1) 및 제4 데이터(D4)에 기반하여 강한 올바른(SC) 비트들, 약한 올바른(WC) 비트들, 약한 에러(WE) 비트들, 강한 에러(SE) 비트들을 식별하고, 점수들을 각각 부여할 수 있다. 이후에, 메모리 제어기(120)는 LDPC 디코딩을 수행할 수 있다.
다른 예로서, 메모리 제어기(120)는 제6 데이터(D6)를 더 반영하여, 비트들을 6가지의 올바른 그리고 에러 비트들로 식별하고, 점수들을 각각 부여할 수 있다. 이후에, 메모리 제어기(120)는 LDPC 디코딩을 수행할 수 있다. 예시적으로, 연판정(SD)은 성공할 수 있다. S232 단계에서, 메모리 제어기(120)는 외부의 호스트 장치에 복원된 데이터를 제5 데이터(D5)로 전송할 수 있다.
상술된 바와 같이, 스토리지 장치(100)는 경판정에 기반한 읽기 동작이 실패한 경우, 연판정을 수행할 수 있다. 연판정이 실패한 경우, 스토리지 장치(100)는 사전 읽기 동작들을 포함하는 정교한 연판정을 수행할 수 있다. 예시적으로, 도 5를 참조하여 제공된 다양한 설명들은 맥락에서 명시적으로 다르게 언급하지 않으면 도 9에도 동일하게 적용될 수 있다.
도 10은 본 발명의 실시 예에 따른 불휘발성 메모리 장치(300)를 보여주는 블록도이다. 도 10을 참조하면, 불휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 행 디코더 블록(320), 페이지 버퍼 블록(330), 데이터 입력 및 출력 블록(340), 버퍼 블록(350), 그리고 제어 로직 블록(360)을 포함한다.
메모리 셀 어레이(310)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 각 메모리 블록은 적어도 하나의 접지 선택 라인(GSL), 워드 라인들(WL), 그리고 적어도 하나의 스트링 선택 라인(SSL)을 통해 행 디코더 블록(320)에 연결될 수 있다. 워드 라인들(WL) 중 일부는 더미 워드 라인들로 사용될 수 있다. 각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 블록(330)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다.
예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 소거 동작의 단위일 수 있다. 각 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다. 다른 예로서, 각 메모리 블록은 복수의 서브 블록들로 분할될 수 있다. 복수의 서브 블록들 각각은 소거 동작의 단위일 수 있다.
행 디코더 블록(320)은 접지 선택 라인들(GSL), 워드 라인들(WL), 그리고 스트링 선택 라인들(SSL)을 통해 메모리 셀 어레이(310)에 연결된다. 행 디코더 블록(320)은 제어 로직 블록(360)의 제어에 따라 동작한다.
행 디코더 블록(320)은 버퍼 블록(350)으로부터 수신되는 행 주소(RA)를 디코딩하고, 디코딩된 행 주소에 따라 스트링 선택 라인들(SSL), 워드 라인들(WL), 그리고 접지 선택 라인들(GSL)에 인가되는 전압들을 제어할 수 있다.
페이지 버퍼 블록(330)은 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(310)에 연결된다. 페이지 버퍼 블록(330)은 복수의 데이터 라인들(DL)을 통해 데이터 입력 및 출력 블록(340)과 연결된다. 페이지 버퍼 블록(330)은 제어 로직 블록(360)의 제어에 따라 동작한다.
쓰기 동작 시에, 페이지 버퍼 블록(330)은 메모리 셀들에 기입될 데이터를 저장할 수 있다. 저장된 데이터에 기반하여, 페이지 버퍼 블록(330)은 복수의 비트 라인들(BL)에 전압들을 인가할 수 있다. 읽기 동작 시에, 또는 쓰기 동작 또는 소거 동작의 검증 읽기 시에, 페이지 버퍼 블록(330)은 비트 라인들(BL)의 전압들을 감지하고, 감지 결과를 저장할 수 있다.
데이터 입력 및 출력 블록(340)은 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 블록(330)과 연결된다. 데이터 입력 및 출력 블록(340)은 버퍼 블록(350)으로부터 열 주소(CA)를 수신할 수 있다. 데이터 입력 및 출력 블록(340)은 페이지 버퍼 블록(330)에 의해 읽힌 데이터를 열 주소(CA)에 따라 버퍼 블록(350)으로 출력할 수 있다. 데이터 입력 및 출력 블록(340)은 열 주소(CA)에 의존하여, 버퍼 블록(350)으로부터 수신되는 데이터를 페이지 버퍼 블록(330)에 전달할 수 있다.
버퍼 블록(350)은 외부의 장치와 제1 채널(CH1)을 통해 명령(CMD) 및 주소(ADDR)를 수신하고, 그리고 데이터(DATA)를 교환할 수 있다. 버퍼 블록(350)은 제어 로직 블록(360)의 제어에 따라 동작할 수 있다. 버퍼 블록(350)은 명령(CMD)을 제어 로직 블록(360)에 전달할 수 있다. 버퍼 블록(350)은 주소(ADDR)의 행 주소(RA)를 행 디코더 블록(320)에 전달하고, 열 주소(CA)를 데이터 입력 및 출력 블록(340)에 전달할 수 있다. 버퍼 블록(350)은 데이터(DATA)를 데이터 입력 및 출력 블록(340)과 교환할 수 있다.
제어 로직 블록(360)은 외부 장치와 제2 채널(CH)을 통해 제어 신호(CTRL)를 교환할 수 있다. 제어 로직 블록(360)은 버퍼 블록(350)이 명령(CMD), 주소(ADDR) 및 데이터(DATA)를 라우팅하게 제어할 수 있다. 제어 로직 블록(360)은 버퍼 블록(350)으로부터 수신된 명령(CMD)을 디코딩하고, 디코딩된 명령에 따라 불휘발성 메모리 장치(300)를 제어할 수 있다.
예시적으로, 읽기 전압 정보 및 오프셋이 가리키는 읽기 전압들을 이용한 읽기들의 결과들에 대해 배타적 논리곱 연산을 수행하기 위한 연산기가 불휘발성 메모리 장치(300)에 포함될 수 있다. 연산기는 데이터 입력 및 출력 블록(340), 버퍼 블록(350), 또는 제어 로직 블록(360)에 포함될 수 있다. 다른 예로서, 연산기는 페이지 버퍼 블록(330)과 데이터 입력 및 출력 블록(340)의 사이, 또는 데이터 입력 및 출력 블록(340)과 버퍼 블록(350)의 사이에 배치될 수 있다.
예시적으로, 불휘발성 메모리 장치(300)는 본딩 방식으로 제조될 수 있다. 메모리 셀 어레이(310)는 제1 웨이퍼에서 제조되고, 행 디코더 블록(320), 페이지 버퍼 블록(330), 데이터 입력 및 출력 블록(340), 버퍼 블록(350), 그리고 제어 로직 블록(360)은 제2 웨이퍼에서 제조될 수 있다. 제1 웨이퍼의 상부면과 및 제2 웨이퍼의 상부면을 마주보게 하여 결합함으로써, 불휘발성 메모리 장치(300)가 구현될 수 있다.
다른 예로서, 불휘발성 메모리 장치(300)는 COP(Cell Over Peri) 방식으로 제조될 수 있다. 기판 상에 행 디코더 블록(320), 페이지 버퍼 블록(330), 데이터 입력 및 출력 블록(340), 버퍼 블록(350), 그리고 제어 로직 블록(360)을 포함하는 주변 회로가 구현될 수 있다 주변 회로의 상부에 메모리 셀 어레이(310)가 구현될 수 있다. 주변 회로 및 메모리 셀 어레이(310)는 관통 비아들을 통해 연결될 수 있다.
도 11은 본 발명의 실시 예에 따른 하나의 메모리 블록(BLK1)의 예를 보여준다. 도 11을 참조하면, 복수의 셀 스트링들(CS)이 제1 방향, 제2 방향 및 제3 방향을 따라 기판(SUB) 위에서 행들 및 열들로 배치될 수 있다. 복수의 셀 스트링들(CS)은 기판(SUB) 상에(또는 안에) 형성되는 공통 소스 라인(CSL)에 공통으로 연결될 수 있다. 도 2에서, 메모리 블록(BLK1)의 구조의 이해를 돕기 위하여, 기판(SUB)의 위치가 예시적으로 표시되어 있다.
각 행의 셀 스트링들은 접지 선택 라인(GSL)에 공통으로 연결되고, 그리고 제1 내지 제4 상부 스트링 선택 라인들(SSLu1~SSLu4) 중 대응하는 스트링 선택 라인들, 그리고 제1 내지 제4 하부 스트링 선택 라인들(SSLl1~SSLl4) 중 대응하는 스트링 선택 라인들에 연결될 수 있다. 각 열의 셀 스트링들은 제1 내지 제4 비트 라인들(BL1~BL4) 중 대응하는 비트 라인에 연결될 수 있다. 도면이 복잡해지는 것을 방지하기 위하여, 제2 및 제3 스트링 선택 라인들(SSL2l, SSL2u, SSL3l, SSL3u)에 연결된 셀 스트링들은 옅게 도시되어 있다.
각 셀 스트링은 접지 선택 라인(GSL)에 연결되는 적어도 하나의 접지 선택 트랜지스터(GST), 제1 더미 워드 라인(DWL1)에 연결되는 제1 더미 메모리 셀(DMC1), 제1 내지 제10 워드 라인들(WL1~WL10)에 각각 연결되는 제1 내지 제10 메모리 셀들(MC1~MC10), 제2 더미 워드 라인(DWL2)에 각각 연결되는 제2 더미 메모리 셀(DMC2), 그리고 대응하는 상부 및 하부 스트링 선택 라인들에 각각 연결되는 상부 및 하부 스트링 선택 트랜지스터들(SSTu, SSTl)를 포함할 수 있다.
각 셀 스트링(CS)에서, 접지 선택 트랜지스터(GST), 제1 더미 메모리 셀(DMC1), 제1 내지 제10 메모리 셀들(MC1~MC10), 제2 더미 메모리 셀(DMC2), 그리고 상부 및 하부 스트링 선택 트랜지스터들(SSTu, SSTl)은 기판(SUB)과 수직인 제3 방향을 따라 직렬 연결되고, 기판(SUB)과 수직인 제3 방향을 따라 순차적으로 적층될 수 있다.
메모리 블록(BLK1)은 3차원 메모리 어레이로 제공된다. 3차원 메모리 어레이는, 실리콘 기판(SUB) 및 메모리 셀들(MC)의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들(MC)의 어레이들의 하나 또는 그 이상의 물리 레벨들에 획일적으로(monolithically) 형성될 수 있다. 메모리 셀들(MC)의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 획일적으로 형성되는 것은, 3차원 어레이의 각 레벨의 레이어들이 3차원 어레이의 하위 레벨의 레이어들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 일 예로서, 3차원 메모리 어레이는 수직의 방향성을 가져, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 셀 스트링들(CS)(또는 NAND 스트링들)을 포함한다. 적어도 하나의 메모리 셀은 전하 포획 레이어를 포함한다. 각 셀 스트링은 메모리 셀들(MC) 위에 위치하는 적어도 하나의 선택 트랜지스터를 더 포함한다. 적어도 하나의 선택 트랜지스터는 메모리 셀들(MC)과 동일한 구조를 갖고, 메모리 셀들(MC)과 함께 획일적으로 형성된다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에서 워드 라인들 또는 비트 라인들이 공유되는 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
상술된 실시 예들에서, 제1, 제2, 제3 등의 용어들을 사용하여 본 발명의 기술적 사상에 따른 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 발명을 한정하지 않는다. 예를 들어, 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 실시 예들에서, 블록들을 사용하여 본 발명의 실시 예들에 따른 구성 요소들이 참조되었다. 블록들은 IC (Integrated Circuit), ASIC (Application Specific IC), FPGA (Field Programmable Gate Array), CPLD (Complex Programmable Logic Device) 등과 같은 다양한 하드웨어 장치들, 하드웨어 장치들에서 구동되는 펌웨어, 응용과 같은 소프트웨어, 또는 하드웨어 장치와 소프트웨어가 조합된 형태로 구현될 수 있다. 또한, 블록들은 IC 내의 반도체 소자들로 구성되는 회로들 또는 IP(Intellectual Property)로 등록된 회로들을 포함할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 스토리지 장치
110: 불휘발성 메모리 장치
120: 메모리 제어기
130: 외부 버퍼
121: 버스
122: 호스트 인터페이스
123: 내부 버퍼
124: 프로세서
125: 연판정 제어기
126: 버퍼 제어기
127: 메모리 관리자
128: 에러 정정 코드 블록

Claims (21)

  1. 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치; 그리고
    상기 복수의 메모리 셀들에 대한 제1 읽기 명령 및 제1 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 상기 제1 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제1 데이터를 수신하고, 그리고 상기 제1 데이터에 대해 에러 정정을 수행하도록 구성되는 메모리 제어기를 포함하고,
    상기 메모리 제어기는 상기 에러 정정이 실패한 때에, 상기 복수의 메모리 셀들에 대한 제2 읽기 명령 및 제2 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 상기 제2 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제2 데이터를 수신하고, 상기 복수의 메모리 셀들에 대한 제3 읽기 명령 및 제3 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 그리고 상기 제3 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제3 데이터를 수신하도록 더 구성되고, 그리고
    상기 메모리 제어기는 상기 제2 데이터 및 상기 제3 데이터에 기반하여 오프셋을 조절하고, 상기 복수의 메모리 셀들에 대한 제4 읽기 명령, 제4 읽기 전압 정보 및 상기 오프셋을 상기 불휘발성 메모리 장치로 전송하고, 상기 제4 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제4 데이터를 수신하고, 그리고 상기 제4 데이터에 기반하여 연판정을 수행하도록 더 구성되는 스토리지 장치.
  2. 제1항에 있어서,
    상기 제1 읽기 명령, 상기 제2 읽기 명령, 그리고 상기 제3 읽기 명령은 동일한 코드들을 갖는 스토리지 장치.
  3. 제1항에 있어서,
    상기 제4 읽기 명령의 코드는 상기 제1 읽기 명령, 상기 제2 읽기 명령, 그리고 상기 제3 읽기 명령의 코드들과 다른 스토리지 장치.
  4. 제1항에 있어서,
    상기 제1 읽기 명령, 상기 제2 읽기 명령 그리고 상기 제3 읽기 명령 중 하나의 읽기 명령이 수신되는 것에 응답하여, 상기 불휘발성 메모리 장치는 상기 제1 읽기 전압 정보, 상기 제2 읽기 전압 정보, 그리고 상기 제3 읽기 전압 정보 중에서 상기 수신된 하나의 읽기 명령에 대응하는 읽기 전압 정보가 가리키는 읽기 레벨을 이용하여 상기 복수의 메모리 셀들에 대해 읽기 동작을 수행하도록 구성되는 스토리지 장치.
  5. 제1항에 있어서,
    상기 제1 읽기 전압 정보, 상기 제2 읽기 전압 정보, 그리고 상기 제3 읽기 전압 정보의 각각은 둘 이상의 읽기 레벨들에 대한 정보를 포함하는 스토리지 장치.
  6. 제1항에 있어서,
    상기 제4 읽기 명령에 응답하여, 상기 불휘발성 메모리 장치는 상기 제4 읽기 전압 정보가 가리키는 읽기 레벨로부터 상기 오프셋을 감한 제1 읽기 레벨, 그리고 상기 읽기 레벨로부터 상기 오프셋을 더한 제2 읽기 레벨을 이용하여 읽기 동작을 수행하도록 구성되는 스토리지 장치.
  7. 제6항에 있어서,
    상기 제4 읽기 명령에 응답하여, 상기 불휘발성 메모리 장치는 상기 제1 읽기 레벨을 이용한 읽기의 결과 및 상기 제2 읽기 레벨을 이용한 읽기의 결과에 대해 배타적 논리합의 연산을 수행하고, 그리고 상기 연산의 결과를 상기 제4 데이터로서 상기 메모리 제어기에 제공하도록 더 구성되는 스토리지 장치.
  8. 제1항에 있어서,
    상기 제어기는 상기 제2 데이터 및 상기 제3 데이터에 기반하여 상기 복수의 메모리 셀들의 문턱 전압들의 산포들의 적어도 일부의 수식을 계산하고, 상기 수식에 기반하여 강한 에러 비트들의 제1수, 약한 에러 비트들의 제2수, 강한 올바른 비트들의 제3수, 그리고 약한 올바른 비트들의 제4수를 계산하고, 그리고 상기 제1수, 상기 제2수, 상기 제3수 및 상기 제4수에 기반하여 상기 오프셋을 조절하는 스토리지 장치.
  9. 제8항에 있어서,
    상기 제어기는 상기 제2수 및 상기 제4수의 합의 상기 제1수, 상기 제2수, 상기 제3수 및 상기 제4수의 합에 대한 비율이 목표 범위에 속하도록 상기 오프셋을 조절하는 스토리지 장치.
  10. 제1항에 있어서,
    상기 제어기는 기계 학습에 기반하여 상기 제2 데이터 및 상기 제3 데이터를 이용하여 상기 오프셋을 조절하도록 더 구성되는 스토리지 장치.
  11. 제1항에 있어서,
    상기 연판정이 성공한 후에, 상기 제어기는 상기 복수의 메모리 셀들로부터 읽혀지고 그리고 복원된 데이터를 다른 복수의 메모리 셀들에 기입하도록 더 구성되는 스토리지 장치.
  12. 제1항에 있어서,
    상기 제어기는 상기 제2 데이터 및 상기 제3 데이터에 대한 에러 정정을 생략하도록 더 구성되는 스토리지 장치.
  13. 제1항에 있어서,
    상기 제어기는 상기 제4 데이터에 대한 에러 정정을 생략하도록 더 구성되는 스토리지 장치.
  14. 제1항에 있어서,
    상기 제어기는 상기 조절된 오프셋에서 예측되는 강한 에러 비트들의 제1수, 약한 에러 비트들의 제2수, 강한 올바른 비트들의 제3수, 그리고 약한 올바른 비트들의 제4수에 기반하여 상기 연판정 시에 사용되는 파라미터들을 수정하도록 더 구성되는 스토리지 장치.
  15. 제14항에 있어서,
    상기 연판정은 저밀도 패리티 검사(LDPC)(Low Density Parity Check) 디코딩에 의해 수행되고,
    상기 제어기는 상기 제1수, 상기 제2수, 상기 제3수 및 상기 제4수에 기반하여, 상기 강한 에러 비트들, 상기 약한 에러 비트들, 상기 강한 올바른 비트들, 그리고 상기 약한 올바른 비트들에 부여되는 점수들을 조절하도록 더 구성되는 스토리지 장치.
  16. 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치; 그리고
    상기 복수의 메모리 셀들에 대한 제1 읽기 명령 및 제1 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 상기 제1 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제1 데이터를 수신하고, 그리고 상기 제1 데이터에 대해 에러 정정을 수행하도록 구성되는 메모리 제어기를 포함하고,
    상기 메모리 제어기는 상기 에러 정정이 실패한 때에, 상기 복수의 메모리 셀들에 대한 제2 읽기 명령, 제2 읽기 전압 정보 및 제1 오프셋을 상기 불휘발성 메모리 장치로 전송하고, 상기 제2 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제2 데이터를 수신하고, 그리고 상기 제2 데이터에 기반하여 제1 연판정을 수행하도록 더 구성되고,
    상기 메모리 제어기는 상기 제1 연판정이 실패한 때에, 상기 복수의 메모리 셀들에 대한 제3 읽기 명령 및 제3 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 상기 제3 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제3 데이터를 수신하고, 상기 복수의 메모리 셀들에 대한 제4 읽기 명령 및 제4 읽기 전압 정보를 상기 불휘발성 메모리 장치로 전송하고, 그리고 상기 제4 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제4 데이터를 수신하도록 더 구성되고, 그리고
    상기 메모리 제어기는 상기 제3 데이터 및 상기 제4 데이터에 기반하여 상기 제1 오프셋을 제2 오프셋으로 조절하고, 상기 복수의 메모리 셀들에 대한 제5 읽기 명령, 제5 읽기 전압 정보 및 상기 제2 오프셋을 상기 불휘발성 메모리 장치로 전송하고, 상기 제5 읽기 명령에 기반하여 상기 불휘발성 메모리 장치로부터 제5 데이터를 수신하고, 그리고 상기 제5 데이터에 기반하여 제2 연판정을 수행하도록 더 구성되는 스토리지 장치.
  17. 제16항에 있어서,
    상기 제2 읽기 전압 정보 및 상기 제3 읽기 전압 정보 중 하나가 가리키는 제1 읽기 레벨은 상기 제1 읽기 전압 정보가 가리키는 읽기 레벨보다 낮고, 그리고 상기 제2 읽기 전압 정보 및 상기 제3 읽기 전압 정보 중 다른 나가 가리키는 제2 읽기 레벨은 상기 읽기 레벨보다 높은 스토리지 장치.
  18. 제16항에 있어서,
    상기 불휘발성 메모리 장치는 복수의 메모리 블록들을 포함하고, 상기 복수의 메모리 블록들의 각각은 기판 위에서 상기 기판과 수직한 방향으로 적층되는 메모리 셀들을 포함하고,
    상기 기판으로부터 동일한 높이에 위치한 메모리 셀들은 복수의 서브 워드 라인들에 연결되고, 그리고
    상기 복수의 메모리 셀들은 하나의 서브 워드 라인에 연결되는 스토리지 장치.
  19. 제16항에 있어서,
    상기 제2 오프셋은 상기 제5 읽기 전압 정보가 가리키는 하나의 읽기 레벨에 대응하는 두 개의 오프셋들을 포함하는 스토리지 장치.
  20. 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 제어기가 상기 불휘발성 메모리 장치로부터 제1 읽기 전압을 이용하여 제1 데이터를 읽는 단계;
    상기 제1 데이터의 에러 정정이 실패한 때에, 상기 제어기가 상기 불휘발성 메모리 장치로부터 제2 읽기 전압 및 제3 읽기 전압을 이용하여 제2 데이터 및 제3 데이터를 각각 읽는 단계;
    상기 제어기가 상기 제2 데이터 및 상기 제3 데이터에 기반하여 오프셋을 조절하는 단계;
    상기 제어기가 상기 불휘발성 메모리 장치로부터 제4 읽기 전압 및 상기 조절된 오프셋을 이용하여 제4 데이터를 읽는 단계; 그리고
    상기 제어기가 상기 제4 데이터에 기반하여 연판정을 수행하는 단계를 포함하는 동작 방법.
  21. 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 스토리지 장치의 동작 방법에 있어서:
    상기 제어기가 상기 불휘발성 메모리 장치로부터 제1 읽기 전압 및 제2 읽기 전압을 이용하여 제1 데이터 및 제2 데이터를 각각 읽는 단계;
    상기 제어기가 상기 제1 데이터 및 상기 제2 데이터에 기반하여 오프셋을 조절하는 단계;
    상기 제어기가 상기 불휘발성 메모리 장치로부터 제3 읽기 전압 및 상기 조절된 오프셋을 이용하여 제3 데이터를 읽는 단계; 그리고
    상기 제어기가 상기 제3 데이터에 기반하여 연판정을 수행하는 단계를 포함하는 동작 방법.
KR1020190175560A 2019-12-26 2019-12-26 스토리지 장치 및 스토리지 장치의 동작 방법 KR20210083466A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190175560A KR20210083466A (ko) 2019-12-26 2019-12-26 스토리지 장치 및 스토리지 장치의 동작 방법
US16/990,262 US11361832B2 (en) 2019-12-26 2020-08-11 Storage device and operating method of storage device
DE102020126869.6A DE102020126869A1 (de) 2019-12-26 2020-10-13 Speichervorrichtung und Betriebsverfahren für eine Speichervorrichtung
CN202011410313.6A CN113053441A (zh) 2019-12-26 2020-12-04 存储装置和存储装置的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190175560A KR20210083466A (ko) 2019-12-26 2019-12-26 스토리지 장치 및 스토리지 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210083466A true KR20210083466A (ko) 2021-07-07

Family

ID=76508078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190175560A KR20210083466A (ko) 2019-12-26 2019-12-26 스토리지 장치 및 스토리지 장치의 동작 방법

Country Status (3)

Country Link
US (1) US11361832B2 (ko)
KR (1) KR20210083466A (ko)
CN (1) CN113053441A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11907570B2 (en) * 2020-02-25 2024-02-20 Micron Technology, Inc. Predictive media management for read disturb
KR20210132784A (ko) * 2020-04-27 2021-11-05 삼성전자주식회사 메모리 장치 및 메모리 장치로부터 데이터를 읽는 방법
US11355209B2 (en) * 2020-07-10 2022-06-07 Micron Technology, Inc. Accessing a multi-level memory cell
US11423989B2 (en) * 2020-11-02 2022-08-23 Micron Technology, Inc. Generating embedded data in memory cells in a memory sub-system
KR20230020109A (ko) * 2021-08-03 2023-02-10 에스케이하이닉스 주식회사 리드 동작을 수행하는 메모리 장치 및 그것의 동작 방법
KR102532038B1 (ko) * 2021-12-15 2023-05-12 삼성전자주식회사 에러 정정 코드(ecc) 디코딩 방법 및 이를 수행하는 메모리 시스템

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
KR102038408B1 (ko) * 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
US8804421B2 (en) 2012-10-31 2014-08-12 Intel Corporation Center read reference voltage determination based on estimated probability density function
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9129711B2 (en) 2013-02-28 2015-09-08 Kabushiki Kaisha Toshiba Semiconductor memory device
TWI515734B (zh) * 2014-03-13 2016-01-01 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
US10552085B1 (en) * 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9418751B1 (en) * 2015-01-23 2016-08-16 Sandisk Technologies Llc Pre-program detection of threshold voltages of select gate transistors in a memory device
KR20170039795A (ko) * 2015-10-01 2017-04-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170058066A (ko) 2015-11-18 2017-05-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170065076A (ko) * 2015-12-02 2017-06-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10158380B2 (en) 2016-12-06 2018-12-18 Sandisk Technologies Llc ECC and read adjustment based on dynamic memory error model estimation
KR102302187B1 (ko) * 2017-03-13 2021-09-14 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
KR102386703B1 (ko) * 2017-09-13 2022-04-14 에스케이하이닉스 주식회사 메모리 장치 및 그것의 동작 방법
US10381090B2 (en) * 2017-03-31 2019-08-13 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory device and storage device
US10289341B2 (en) 2017-06-30 2019-05-14 Western Digital Technologies, Inc. Operating parameter offsets in solid state memory devices
US10199111B1 (en) 2017-08-04 2019-02-05 Micron Technology, Inc. Memory devices with read level calibration
CN109979519B (zh) * 2017-12-27 2021-03-16 华邦电子股份有限公司 存储器完整性的检验方法、非易失性存储器以及电子装置
KR102392056B1 (ko) 2017-12-27 2022-04-28 삼성전자주식회사 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102505857B1 (ko) * 2021-11-15 2023-03-06 삼성전자 주식회사 스트롱 에러 정보를 관리하는 메모리 컨트롤러 및 그 동작방법
US11886293B2 (en) 2021-11-15 2024-01-30 Samsung Electronics Co., Ltd. Memory controller managing strong error information and operating method thereof

Also Published As

Publication number Publication date
US20210202012A1 (en) 2021-07-01
US11361832B2 (en) 2022-06-14
CN113053441A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
KR20210083466A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US9672942B2 (en) Data decoding method of non-volatile memory device and apparatus for performing the method
TWI533314B (zh) Non-volatile semiconductor memory inspection methods and storage of inspection procedures recorded in the media
KR20190079327A (ko) 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR102284658B1 (ko) 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 상기 비휘발성 메모리 장치의 동작 방법
KR20140031556A (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
KR20160117713A (ko) 반도체 장치 및 그것의 동작 방법
CN110942795B (zh) 存储器系统、其操作方法以及非易失性存储器装置
KR20200129467A (ko) 스토리지 컨트롤러 및 이를 포함하는 스토리지 장치
KR102267046B1 (ko) 스토리지 장치 및 배드 블록 지정 방법
US11854623B2 (en) Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
CN112435703A (zh) 存储装置及其操作方法
KR20210099895A (ko) 메모리 시스템 및 그것의 동작방법
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
US11494254B2 (en) Storage system with predictive adjustment mechanism and method of operation thereof
KR102617350B1 (ko) 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 저장 장치
US11868647B2 (en) Nonvolatile memory device, with valley search for threshold voltage, memory controller, and reading method of storage device including the same
JP6997258B2 (ja) メモリシステムに対するプログラム検証のためのシステム及び方法
KR20210143612A (ko) 비휘발성 메모리 및 비휘발성 메모리의 동작 방법
KR20210152706A (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
CN112037837A (zh) 存储器系统、存储器控制器和存储器设备
KR20200118989A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US11848054B2 (en) Memory device determining precharge time based on a number of times that a program voltage is applied to word line and operating method of memory device
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device

Legal Events

Date Code Title Description
A201 Request for examination