KR102500616B1 - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents
데이터 저장 장치 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR102500616B1 KR102500616B1 KR1020160023615A KR20160023615A KR102500616B1 KR 102500616 B1 KR102500616 B1 KR 102500616B1 KR 1020160023615 A KR1020160023615 A KR 1020160023615A KR 20160023615 A KR20160023615 A KR 20160023615A KR 102500616 B1 KR102500616 B1 KR 102500616B1
- Authority
- KR
- South Korea
- Prior art keywords
- read
- data
- algorithm
- read bias
- bias
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Algebra (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
데이터 저장 장치는 타겟 메모리 영역을 포함하는 비휘발성 메모리 장치 및 리드 바이어스를 조정하고 상기 리드 바이어스에 근거하여 상기 타겟 메모리 영역으로부터 데이터 청크를 리드하고 상기 데이터 청크에 대해 상기 에러 정정 동작을 수행함으로써 리드 동작을 수행하도록 구성되고, 상기 에러 정정 동작의 결과에 따라 리드 동작을 반복하도록 구성된 컨트롤러를 포함하되, 상기 컨트롤러는 이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들 및 상기 리드 바이어스들에 각각 대응하는 정정 실패 지수들에 근거하여 상기 리드 바이어스를 조정한다.
Description
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 비휘발성 메모리 장치를 포함하는 데이터 저장 장치에 관한 것이다.
데이터 저장 장치는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
본 발명의 실시 예는 에러율을 최소화하는 리드 바이어스를 추정할 수 있는 데이터 저장 장치 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 타겟 메모리 영역을 포함하는 비휘발성 메모리 장치 및 리드 바이어스를 조정하고 상기 리드 바이어스에 근거하여 상기 타겟 메모리 영역으로부터 데이터 청크를 리드하고 상기 데이터 청크에 대해 상기 에러 정정 동작을 수행함으로써 리드 동작을 수행하도록 구성되고, 상기 에러 정정 동작의 결과에 따라 리드 동작을 반복하도록 구성된 컨트롤러를 포함하되, 상기 컨트롤러는 이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들 및 상기 리드 바이어스들에 각각 대응하는 정정 실패 지수들에 근거하여 상기 리드 바이어스를 조정할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 에러 정정 동작의 결과에 따라 리드 동작을 반복하되, 상기 리드 동작은, 리드 바이어스를 조정하는 단계, 상기 리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하는 단계 및 상기 데이터 청크에 대해 상기 에러 정정 동작을 수행하는 단계를 포함하는, 상기 리드 동작을 반복하는 단계를 포함하되, 상기 리드 바이어스를 조정하는 단계는, 이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들 및 상기 리드 바이어스들에 각각 대응하는 정정 실패 지수들에 근거하여 상기 리드 바이어스를 조정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 테스트 리드 동작을 반복하되, 상기 테스트 리드 동작은, 리드 바이어스를 조정하는 단계, 상기 리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하되, 상기 데이터 청크는 각각이 에러 정정 알고리즘에 근거하여 인코딩된 복수의 데이터 블록들을 포함하는, 리드하는 단계, 상기 데이터 블록들 각각에 대해 상기 에러 정정 알고리즘에 근거하여 디코딩 동작을 수행하는 단계 및 상기 리드 바이어스와 상기 디코딩 동작에서 산출된 정정 실패 지수를 기록에 추가하는 단계를 포함하는, 상기 테스트 리드 동작을 반복하는 단계 및 상기 기록에 포함된 정정 실패 지수들 중 최소 정정 실패 지수에 대응하는 리드 바이어스에 근거하여 리드 동작에서 사용될 최종 리드 바이어스를 설정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치 및 그것의 동작 방법은 에러율을 최소화하는 리드 바이어스를 추정할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 블록도,
도2는 도1의 비휘발성 메모리 장치의 세부적인 구성을 예시적으로 도시한 블록도,
도3은 메모리 셀들의 문턱 전압 분포들을 예시적으로 도시하는 도면,
도4는 도1의 ECC부에 의한 인코딩 및 디코딩 방법을 예시적으로 설명하기 위한 도면,
도5는 에러 정정 동작에서 정정 실패 지수가 산출되는 방법을 설명하기 위한 도면,
도6은 정정 실패 지수와 데이터 청크의 에러율의 관계를 도시하는 도면,
도7은 도1의 데이터 저장 장치가 이전의 정정 실패 지수들에 근거하여 리드 바이어스를 조정하는 방법을 예시적으로 도시하는 도면,
도8은 도1의 데이터 저장 장치가 리드 동작을 수행하는 방법을 예시적으로 도시하는 순서도,
도9는 도1의 데이터 저장 장치가 최적 리드 바이어스 추정 동작을 수행하는 방법을 예시적으로 도시하는 순서도,
도10은 본 발명의 실시 예에 따른 SSD를 도시하는 블록도,
도11은 본 발명의 실시 예에 따른 데이터 저장 장치가 적용된 데이터 처리 시스템을 도시하는 블록도이다.
도2는 도1의 비휘발성 메모리 장치의 세부적인 구성을 예시적으로 도시한 블록도,
도3은 메모리 셀들의 문턱 전압 분포들을 예시적으로 도시하는 도면,
도4는 도1의 ECC부에 의한 인코딩 및 디코딩 방법을 예시적으로 설명하기 위한 도면,
도5는 에러 정정 동작에서 정정 실패 지수가 산출되는 방법을 설명하기 위한 도면,
도6은 정정 실패 지수와 데이터 청크의 에러율의 관계를 도시하는 도면,
도7은 도1의 데이터 저장 장치가 이전의 정정 실패 지수들에 근거하여 리드 바이어스를 조정하는 방법을 예시적으로 도시하는 도면,
도8은 도1의 데이터 저장 장치가 리드 동작을 수행하는 방법을 예시적으로 도시하는 순서도,
도9는 도1의 데이터 저장 장치가 최적 리드 바이어스 추정 동작을 수행하는 방법을 예시적으로 도시하는 순서도,
도10은 본 발명의 실시 예에 따른 SSD를 도시하는 블록도,
도11은 본 발명의 실시 예에 따른 데이터 저장 장치가 적용된 데이터 처리 시스템을 도시하는 블록도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 도시한 블록도이다.
데이터 저장 장치(10)는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치(10)는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다.
데이터 저장 장치(10)는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치(10)는 컨트롤러(100) 및 비휘발성 메모리 장치(200)를 포함할 수 있다.
컨트롤러(100)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 컨트롤러(100)는 외부 장치로부터 전송된 라이트 요청에 응답하여 비휘발성 메모리 장치(200)에 데이터를 저장하고, 외부 장치로부터 전송된 리드 요청에 응답하여 비휘발성 메모리 장치(200)에 저장된 데이터를 리드하여 외부 장치로 출력할 수 있다.
컨트롤러(100)는 비휘발성 메모리 장치(200)의 리드 동작이 실패할 때, 리드 동작에서 사용되는 리드 바이어스(VR)를 조정함으로써 리드 동작을 재수행할 수 있다. 구체적으로, 컨트롤러(100)는 리드 바이어스(VR)를 조정하고, 리드 바이어스(VR)에 근거하여 타겟 메모리 영역(260)으로부터 데이터 청크(DTCK)를 리드하고, 데이터 청크(DTCK)에 대해 에러 정정 동작을 수행함으로써 리드 동작을 수행할 수 있고, 에러 정정 동작의 결과에 따라 리드 동작을 반복할 수 있다. 컨트롤러(100)는 리드 동작을 반복할 때, 기록(130)을 참조하여, 이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들(VR) 및 그에 각각 대응하는 정정 실패 지수들(FI)에 근거하여 리드 바이어스(VR)를 조정할 수 있다.
실시 예에 따라, 컨트롤러(100)는 리드 동작에서 사용될 최종 리드 바이어스를 설정하기 위한 목적으로, 리드 바이어스를 조정함으로써 테스트 리드 동작을 반복적으로 수행할 수 있다. 구체적으로, 컨트롤러(100)는 리드 바이어스(VR)를 조정하고, 리드 바이어스(VR)에 근거하여 타겟 메모리 영역(260)으로부터 데이터 청크(DTCK)를 리드하고, 데이터 청크(DTCK)에 대해 에러 정정 알고리즘에 근거하여 디코딩 동작을 수행하고, 리드 바이어스(VR)와 디코딩 동작에서 산출된 정정 실패 지수(FI)를 기록(130)에 추가함으로써 테스트 리드 동작을 수행할 수 있다. 그리고, 컨트롤러(100)는 기록(130)에 포함된 정정 실패 지수들(FI) 중 최소 정정 실패 지수에 대응하는 리드 바이어스(VR)에 근거하여 리드 동작에서 사용될 최종 리드 바이어스를 설정할 수 있다.
컨트롤러(100)는 리드 바이어스 조정부(110) 및 ECC부(120)를 포함할 수 있다.
리드 바이어스 조정부(110)는 리드 동작이 반복될 때 기록(130)에 포함된 이전의 리드 동작들에서 사용된 리드 바이어스들(VR) 및 그에 각각 대응하는 정정 실패 지수들(FI)에 근거하여 리드 바이어스(VR)를 조정할 수 있다. 조정된 리드 바이어스(VR)는 비휘발성 메모리 장치(200)로 제공됨으로써 비휘발성 메모리 장치(200)의 리드 동작에서 사용될 수 있다.
ECC부(120)는 최초의 데이터(DT)를 수신하고, 데이터(DT)에 대해 소정 단위로 제1 알고리즘에 근거하여 제1 인코딩 동작을 수행함으로써 데이터 블록들을 생성하고, 제2 알고리즘에 근거하여 데이터 블록들에 대해 제2 인코딩 동작을 수행함으로써 데이터 청크(DTCK)를 생성할 수 있다. 제1 알고리즘은, 예를 들어, BCH(Bose, Chaudhuri, Hocquenghem) 코드 알고리즘이고, 제2 알고리즘은, 예를 들어, TPC(Turbo Product Code) 알고리즘일 수 있다. 그러나, 본 발명의 실시 예는 이에 제한되지 않는다.
ECC부(120)는 비휘발성 메모리 장치(200)로부터 리드된 데이터 청크(DTCK)에 대해 에러 정정 동작을 수행할 수 있다. 구체적으로, ECC부(120)는 데이터 청크(DTCK)의 데이터 블록들 각각에 대해 제1 알고리즘에 근거하여 제1 디코딩 동작을 수행하고, 제1 디코딩 동작이 실패한 데이터 블록들에 대해 제2 알고리즘에 근거하여 제2 디코딩 동작을 수행할 수 있다.
이때, ECC부(120)는 제1 디코딩 동작이 실패한 데이터 블록들의 개수에 근거하여 정정 실패 지수(FI)를 산출할 수 있다. 그리고, 현재 리드 동작에서 사용된 리드 바이어스(VR)와 정정 실패 지수(FI)는 기록(130)에 함께 저장될 수 있다. 정정 실패 지수(FI)는 데이터 청크(DTCK)의 에러율에 실질적으로 비례할 수 있고, 따라서, 현재 리드 바이어스(VR)의 적합성을 반영할 수 있다. 정정 실패 지수(FI)는 이후 리드 동작의 리드 바이어스(VR)를 조정하기 위해 현재 리드 바이어스(VR)에 더해질 조정 값을 결정하는 데 사용될 수 있다. 또한, 정정 실패 지수(FI)는 기록(130)에 포함된 복수의 리드 바이어스들(VR) 중 에러율을 최소화시키는 리드 바이어스(VR)를 선택하는 데 사용될 수 있다.
비휘발성 메모리 장치(200)는 컨트롤러(100)의 제어에 따라, 컨트롤러(100)로부터 전송된 데이터를 저장하고, 저장된 데이터를 리드하여 컨트롤러(100)로 전송할 수 있다.
비휘발성 메모리 장치(200)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다.
도2는 도1의 비휘발성 메모리 장치(200)의 세부적인 구성을 예시적으로 도시한 블록도이다.
비휘발성 메모리 장치(200)는 제어 로직(210), 전압 공급부(220), 인터페이스부(230), 어드레스 디코더(240), 데이터 입출력부(250) 및 메모리 영역(260)을 포함할 수 있다.
제어 로직(210)은 컨트롤러(100)의 제어에 따라 비휘발성 메모리 장치(200)의 제반 동작들을 제어할 수 있다. 제어 로직(210)은 컨트롤러(100)로부터 전송된 커맨드를 인터페이스부(230)로부터 전송받고, 커맨드에 응답하여 제어 신호들을 비휘발성 메모리 장치(200)의 내부 유닛들로 전송할 수 있다.
전압 공급부(220)는 제어 로직(210)의 제어에 따라, 비휘발성 메모리 장치(200)의 제반 동작에 필요한 다양한 동작 전압들을 생성할 수 있다. 전압 공급부(220)는 리드 동작에서 사용될 리드 바이어스(VR)를 어드레스 디코더(240)로 공급할 수 있다.
인터페이스부(230)는 컨트롤러(100)와 커맨드 및 어드레스를 포함한 각종 제어 신호들 및 데이터를 주고 받을 수 있다. 인터페이스부(230)는 입력된 각종 제어 신호들 및 데이터를 비휘발성 메모리 장치(200)의 내부 유닛들로 전송할 수 있다.
어드레스 디코더(240)는 메모리 영역(260)에서 액세스될 부분을 선택하기 위해 어드레스를 디코딩할 수 있다. 어드레스 디코더(240)는 디코딩 결과에 따라 워드라인들(WL)을 선택적으로 구동하고, 비트라인들(BL)을 선택적으로 구동하도록 데이터 입출력부(250)를 제어할 수 있다.
데이터 입출력부(250)는 인터페이스부(230)로부터 전송된 데이터를 비트라인들(BL)을 통해 메모리 영역(260)으로 전송할 수 있다. 데이터 입출력부(250)는 메모리 영역(260)으로부터 비트라인들(BL)을 통해 리드된 데이터를 인터페이스부(230)로 전송할 수 있다. 데이터 입출력부(250)는 메모리 영역(260)에 포함된 메모리 셀이 리드 바이어스(VR)에 응답하여 턴온/턴오프됨에 따라 비트라인에 형성된 커런트를 센싱하고, 센싱 결과에 따라 메모리 셀로부터 리드된 데이터를 획득할 수 있다.
메모리 영역(260)은 워드라인들(WL)을 통해 어드레스 디코더(240)와 연결될 수 있고, 비트라인들(BL)을 통해 데이터 입출력부(250)와 연결될 수 있다. 메모리 영역(260)은 워드라인들(WL)과 비트라인들(BL)이 교차하는 영역에 각각 배치되고 데이터가 저장되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 영역(260)은 2차원 또는 3차원 구조의 메모리 셀 어레이를 포함할 수 있다.
도3은 메모리 셀들의 문턱 전압 분포들(PV1, PV2)을 예시적으로 도시하는 도면이다. 도3의 그래프에서, 가로축(VTH)은 메모리 셀의 문턱 전압을 의미하고, 세로축(#)은 문턱 전압에 대응하는 메모리 셀들의 개수를 의미할 수 있다.
도3을 참조하면, 메모리 셀들은 저장된 데이터에 따라 문턱 전압 분포들(PV1, PV2)을 형성할 수 있다. 제1 데이터가 저장된 메모리 셀들은 문턱 전압 분포(PV1)를 형성할 수 있고, 제2 데이터가 저장된 메모리 셀들은 문턱 전압 분포(PV2)를 형성할 수 있다.
리드 바이어스(VR)는 메모리 셀에 저장된 데이터를 리드하기 위해 메모리 셀에 연결된 워드라인으로 인가될 수 있다. 메모리 셀은 문턱 전압에 따라, 즉, 저장된 데이터에 따라 리드 바이어스(VR)에 응답하여 턴온/턴오프되므로, 리드 바이어스(VR)가 인가될 때 메모리 셀의 턴온/턴오프를 판별함으로써 메모리 셀에 저장된 데이터가 리드될 수 있다.
한편, 메모리 셀의 문턱 전압은 다양한 원인에 의해 변경될 수 있고, 따라서, 예를 들어, 문턱 전압 분포(PV2)가 문턱 전압 분포(PV2?)로 이동할 수 있다. 이때, 리드 바이어스(VR)에 근거하여 리드 동작이 수행된다면, 문턱 전압 분포(PV2?)의 음영 영역에 대응하는 메모리 셀들은 에러 비트를 출력할 수 있다. 그러나, 문턱 전압 분포들(PV1, PV2?)의 골짜기에 위치하는 리드 바이어스(VR), 즉, 최적 리드 바이어스(VR?)에 근거하여 리드 동작이 수행된다면, 리드된 데이터의 에러율은 최소화될 수 있다.
한편, 도1에서 비휘발성 메모리 장치(200)로부터 리드된 데이터 청크(DTCK)가 에러 비트들을 포함하더라도, ECC부(120)는 에러 정정 능력까지의 에러 비트들을 정정할 수 있기 때문에, 데이터 청크(DTCK)의 에러율을 최소화시키는 것이 필요하다. 따라서, 리드 동작은 에러율을 최소화시키는 최적 리드 바이어스(VR?)에 근거하여 수행되어야 한다.
한편, 메모리 셀들의 현재 문턱 전압 분포들(PV1, PV2?)을 정확하게 파악할 수 있다면, 정확한 최적 리드 바이어스(VR?)가 설정될 수 있을 것이지만, 그렇지 않다면, 최적 리드 바이어스(VR?)는 간접적으로 추정되어야 한다. 본 발명의 실시 예에 따르면, 정정 실패 지수(FI)는 리드 바이어스(VR)를 최적 리드 바이어스(VR?)에 근접하도록 조정하는 데 유용할 있다. 또한, 정정 실패 지수(FI)는 복수의 리드 바이어스들 중에서 최적 리드 바이어스(VR?)에 가장 근접한 리드 바이어스를 선택하는 데 유용할 수 있다. 이에 대한 자세한 설명은 후술될 것이다.
도4는 도1의 ECC부(120)에 의한 인코딩 및 디코딩 방법을 예시적으로 설명하기 위한 도면이다.
ECC부(120)는 우선 최초의 데이터(DT)에 대해 소정 단위로 BCH 코드 알고리즘에 근거하여 제1 인코딩 동작을 수행함으로써 데이터 블록들(DB00~DB33)을 생성할 수 있다. 예를 들어, 데이터 블록(DB11)은 최초의 데이터(DT)의 일부분(D11)과 일부분(D11)에 대해 BCH 코드 알고리즘에 근거하여 생성된 패리티 데이터(P11)를 포함할 수 있다.
그리고, ECC부(120)는 TPC 알고리즘에 근거하여 데이터 블록들(DB00~DB33)이 행 및 열 방향으로 정렬됨으로써 생성된 행 그룹들(R0~R3) 및 열 그룹들(C0~C3) 각각에 대해 제2 인코딩 동작을 수행함으로써 행 및 열 패리티 데이터(RP0~RP3, CP0~CP3)를 생성할 수 있다. 예를 들어, ECC부(120)는 행 그룹(R1)에 대해 행 패리티 데이터(RP1)를 생성하고, 열 그룹(C1)에 대해 열 패리티 데이터(CP1)를 생성할 수 있다. 그리고, ECC부(120)는 행 패리티 데이터(RP0~RP3)에 대해 인코딩 동작을 수행함으로써 패리티 데이터(RPP)를 생성할 수 있다.
이어서, ECC부(120)는 데이터 청크(DTCK)가 비휘발성 메모리 장치(200)로부터 리드되면, 우선, 데이터 블록들(DB00~DB33) 각각에 대해 BCH 코드 알고리즘에 근거하여 제1 디코딩 동작을 수행할 수 있다. 그리고, ECC부(120)는 제1 디코딩 동작이 실패한 데이터 블록에 대해 TPC 알고리즘에 근거하여 제2 디코딩 동작을 수행할 수 있다. 예를 들어, ECC부(120)는 데이터 블록(DB11)에 대해 제1 디코딩 동작이 실패했을 때, 행 그룹(R1)과 행 패리티 데이터(RP1)에 대한 제2 디코딩 동작 및/또는 열 그룹(C1)과 열 패리티 데이터(CP1)에 대한 제2 디코딩 동작을 수행함으로써 데이터 블록(DB11)을 정정할 수 있다.
도5는 에러 정정 동작에서 정정 실패 지수(FI)가 산출되는 방법을 설명하기 위한 도면이다.
도5를 참조하면, 데이터 블록들(DB02, DB03, DB11, DB22)은 BCH 코드 알고리즘에 근거한 제1 디코딩 동작이 실패한 데이터 블록들일 수 있다. 이때, 정정 실패 지수(FI)는 제1 디코딩 동작이 실패한 데이터 블록들(DB02, DB03, DB11, DB22)의 개수인 "4"일 수 있다. 정정 실패 지수(FI)는, 데이터 블록들(DB02, DB03, DB11, DB22)이 TPC 알고리즘에 근거한 제2 디코딩 동작을 통해 에러 정정되기 전에 결정될 수 있다.
정정 실패 지수(FI)는 데이터 청크(DTCK)를 리드하기 위해 사용된 리드 바이어스(VR1)에 대응할 수 있다. 다른 말로 하면, 리드 바이어스(VR1)가 리드 바이어스(VR2)로 조정되고, 조정된 리드 바이어스(VR2)를 사용하여 데이터 청크(DTCK)가 다시 리드되면, 정정 실패 지수(FI)는 다른 값, 예를 들어 "5"로 산출될 수 있다. 따라서, 정정 실패 지수(FI)는 대응하는 리드 바이어스(VR)의 적합성을 반영할 수 있다.
리드 동작에 사용된 리드 바이어스(VR)와 그에 대응하는 정정 실패 지수(FI)는 기록(130)에 추가될 수 있다. 기록(130)은 리드 동작에 사용된 리드 바이어스들(VR)과 그에 각각 대응하는 정정 실패 지수들(FI)을 포함할 수 있다.
도6은 정정 실패 지수(FI)와 데이터 청크(DTCK)의 에러율의 관계를 도시하는 도면이다.
도6을 참조하면, 정정 실패 지수(FI)와 에러율은 실질적으로 비례할 수 있다. 이는, 데이터 청크(DTCK)의 에러율이 높을 때, 제1 디코딩 동작이 실패하는 데이터 블록들의 개수가 많아질 것이기 때문이다.
따라서, 정정 실패 지수(FI)가 작을수록 리드 바이어스(VR)는 도3의 최적 리드 바이어스(VR?)에 근접할 수 있다.
도7은 도1의 데이터 저장 장치(10)가 이전의 정정 실패 지수들(FI)에 근거하여 리드 바이어스(VR)를 조정하는 방법을 예시적으로 도시하는 도면이다. 도7에서. 리드 바이어스(VR)는 리드 바이어스들(VR1~ VR4)의 순서로 조정될 수 있다.
도7을 참조하면, 리드 동작이 수행될 때, 예를 들어, 시작 리드 바이어스(VR1)가 설정되고, 리드 바이어스(VR1)에 근거하여 데이터 청크(DTCK)가 리드되고, 리드된 데이터 청크(DTCK)에 대해 에러 정정 동작이 수행될 수 있다. 그리고, 에러 정정 동작이 실패할 때, 리드 바이어스(VR1)가 리드 바이어스(VR2)로 조정됨으로써 리드 동작은 반복될 수 있다.
리드 바이어스(VR)는 이전 리드 동작들에서 사용된 리드 바이어스들(VR) 및 그에 각각 대응하는 정정 실패 지수들(FI)을 사용한 최소 값 추정 알고리즘에 근거하여 설정될 수 있다. 최소 값 추정 알고리즘은 이전에 사용된 리드 바이어스들(VR) 및 정정 실패 지수들(FI)에 근거하여, 정정 실패 지수(FI)의 최소 값에 대응하는 리드 바이어스(VR)로 이동하기 위해, 리드 바이어스(VR)의 조정량의 부호 및 크기를 결정하는 알고리즘일 수 있다.
리드 바이어스(VR)의 조정량의 부호는 이전의 정정 실패 지수들(FI)이 감소하는 방향에 대응할 수 있다. 리드 바이어스(VR)의 조정량의 크기는 소정의 설정 값에 따르거나, 이전의 정정 실패 지수들(FI)의 변화량에 대응하여 설정될 수 있다. 예를 들어, 리드 바이어스(VR2)에서 리드 바이어스(VR3)로 조정된 결과, 정정 실패 지수(FI)가 소량 증가하면 그 다음 리드 바이어스(VR4)는 이전과 반대 방향으로 더 소량의 조정량만큼 이동할 수 있다.
실시 예에 따라, 메모리 셀들에 저장된 데이터를 획득하기 위한 리드 동작이 반복될 때뿐만 아니라, 도3의 최적 리드 바이어스(VR?)를 추적하기 위한 테스트 리드 동작이 반복될 때도 도7의 방법에 따라 리드 바이어스(VR)가 조정될 수 있다. 다만, 리드 동작은 에러 정정된 데이터를 획득하면서 종료될 수 있고, 테스트 리드 동작은 리드 동작 시 사용될 적절한 리드 바이어스(VR)를 설정하면서 종료될 수 있다.
도8은 도1의 데이터 저장 장치(10)가 리드 동작을 수행하는 방법을 예시적으로 도시하는 순서도이다. 컨트롤러(100)는, 예를 들어, 비휘발성 메모리 장치(200)의 최초 리드 동작이 실패했을 때, 정정 실패 지수(FI)에 근거하여 리드 바이어스(VR)를 조정함으로써, 단계들(S120~S140)을 포함하는 리드 동작을 반복할 수 있다.
단계(S110)에서, 컨트롤러(100)는 시작 리드 바이어스(VR)를 설정할 수 있다.
단계(S120)에서, 컨트롤러(100)는 설정된 리드 바이어스(VR)에 근거하여 비휘발성 메모리 장치(200)로부터 데이터 청크(DTCK)를 리드할 수 있다.
단계(S130)에서, 컨트롤러(100)는 리드된 데이터 청크(DTCK)에 대해 에러 정정 동작을 수행할 수 있다.
구체적으로 단계(S131)에서, 컨트롤러(100)는 데이터 청크(DTCK)에 대해 제1 알고리즘에 근거하여 제1 디코딩 동작을 수행할 수 있다. 제1 알고리즘은 BCH 코드 알고리즘일 수 있다. 컨트롤러(100)는 데이터 청크(DTCK)에 포함된 데이터 블록들 각각에 대해 제1 디코딩 동작을 수행할 수 있다.
단계(S132)에서, 컨트롤러(100)는 모든 데이터 블록들에 대해 제1 디코딩 동작이 성공했는지 여부를 판단할 수 있다. 제1 디코딩 동작이 성공한 경우, 절차는 단계(S135)로 진행될 수 있다. 하나 이상의 데이터 블록들에 대해 제1 디코딩 동작이 실패한 경우, 절차는 단계(S133)로 진행될 수 있다.
단계(S135)에서, 컨트롤러(100)는 에러 정정된 데이터를 획득할 수 있다. 따라서, 리드 동작은 성공으로서 종료될 수 있다.
단계(S133)에서, 컨트롤러(100)는 제1 디코딩 동작이 실패한 데이터 블록에 대해 제2 알고리즘에 근거하여 제2 디코딩 동작을 수행할 수 있다. 제2 알고리즘은 TPC 알고리즘일 수 있다.
단계(S134)에서, 컨트롤러(100)는 제2 디코딩 동작이 성공했는지 여부를 판단할 수 있다. 제2 디코딩 동작이 성공한 경우, 절차는 단계(S135)로 진행될 수 있다. 제2 디코딩 동작이 실패한 경우, 절차는 단계(S140)로 진행될 수 있다.
단계(S140)에서, 컨트롤러(100)는 리드 바이어스(VR)와 제1 디코딩 동작을 통해 산출되는 정정 실패 지수(FI)를 기록(130)에 추가할 수 있다. 정정 실패 지수(FI)는 데이터 청크(DTCK)에서 제1 디코딩 동작이 실패한 데이터 블록들의 개수일 수 있다.
단계(S150)에서, 컨트롤러(100)는 리드 동작을 반복할 것인지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(100)는 리드 동작을 수행할 때 증가시킨 카운트가 임계 카운트에 도달했는지를 판단함으로써 리드 동작을 반복할 것인지 여부를 결정할 수 있다. 리드 동작을 반복하지 않을 것으로 결정될 때, 리드 동작은 실패로서 종료될 수 있다. 리드 동작을 반복할 것으로 결정될 때, 절차는 단계(S160)로 진행될 수 있다.
단계(S160)에서, 컨트롤러(100)는 기록(130)에 포함된 리드 바이어스들(VR)과 그에 각각 대응하는 정정 실패 지수들(FI)에 근거하여 리드 바이어스(VR)를 조정할 수 있다. 컨트롤러(100)는 이전에 사용된 리드 바이어스들(VR) 및 정정 실패 지수들(FI)에 근거하여, 정정 실패 지수(FI)의 최소 값 및 그에 대응하는 리드 바이어스(VR)로 이동하기 위해 리드 바이어스(VR)의 조정량의 부호 및 크기를 결정할 수 있다. 그리고, 절차는 단계(S120)로 이동하고, 새로운 리드 바이어스(VR)에 근거하여 리드 동작이 반복될 수 있다.
실시 예에 따라, 단계(S150)에서, 리드 동작을 반복하지 않을 것으로 결정될 때, 컨트롤러(100)는 리드 동작을 실패로서 종료하지 않고, 공지된 다양한 리드 바이어스 조정 방법들에 근거하여 추가 리드 동작을 수행할 수 있다. 이때, 추가 리드 동작은 시작 리드 바이어스(VR)를 새로 설정함으로써 개시될 수 있고, 시작 리드 바이어스(VR)는 현재 기록(130)에 포함된 정정 실패 지수들(FI) 중에서 최소 정정 실패 지수(FI)에 대응하는 리드 바이어스(VR)에 근거하여 설정될 수 있다.
도9는 도1의 데이터 저장 장치(10)가 최적 리드 바이어스 추정 동작을 수행하는 방법을 예시적으로 도시하는 순서도이다. 컨트롤러(100)는 최적 리드 바이어스 추정 동작을 수행할 때, 정정 실패 지수(FI)에 근거하여 리드 바이어스(VR)를 조정함으로써, 단계들(S220~S240)을 포함하는 테스트 리드 동작을 반복할 수 있다.
단계(S210)에서, 컨트롤러(100)는 시작 리드 바이어스(VR)를 설정할 수 있다.
단계(S220)에서, 컨트롤러(100)는 설정된 리드 바이어스(VR)에 근거하여 비휘발성 메모리 장치(200)로부터 데이터 청크(DTCK)를 리드할 수 있다.
단계(S230)에서, 컨트롤러(100)는 데이터 청크(DTCK)에 대해 제1 알고리즘에 근거하여 제1 디코딩 동작을 수행할 수 있다. 제1 알고리즘은 BCH 코드 알고리즘일 수 있다. 컨트롤러(100)는 데이터 청크(DTCK)에 포함된 데이터 블록들 각각에 대해 제1 디코딩 동작을 수행할 수 있다.
단계(S240)에서, 컨트롤러(100)는 리드 바이어스(VR)와 제1 디코딩 동작을 통해 산출되는 정정 실패 지수(FI)를 기록(130)에 추가할 수 있다. 정정 실패 지수(FI)는 데이터 청크(DTCK)에서 제1 디코딩 동작이 실패한 데이터 블록들의 개수일 수 있다.
단계(S250)에서, 컨트롤러(100)는 테스트 리드 동작을 반복할 것인지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(100)는 테스트 리드 동작을 수행할 때 증가시킨 카운트가 임계 카운트에 도달했는지를 판단함으로써 테스트 리드 동작을 반복할 것인지 여부를 결정할 수 있다. 다른 예로서, 컨트롤러(100)는 현재 산출된 정정 실패 지수(FI)가 임계 지수 미만인지를 판단함으로써 테스트 리드 동작을 반복할 것인지 여부를 결정할 수 있다. 테스트 리드 동작을 반복할 것으로 결정될 때, 절차는 단계(S260)로 진행될 수 있다. 테스트 리드 동작을 반복하지 않을 것으로 결정될 때, 절차는 단계(S270)로 진행될 수 있다.
단계(S260)에서, 컨트롤러(100)는 기록(130)에 포함된 리드 바이어스들(VR)과 그에 각각 대응하는 정정 실패 지수들(FI)에 근거하여 리드 바이어스(VR)를 조정할 수 있다. 컨트롤러(100)는 이전에 사용된 리드 바이어스들(VR) 및 정정 실패 지수들(FI)에 근거하여, 정정 실패 지수(FI)의 최소 값 및 그에 대응하는 리드 바이어스(VR)로 이동하기 위해 리드 바이어스(VR)의 조정량의 부호 및 크기를 결정할 수 있다. 그리고, 절차는 단계(S220)로 이동하고, 새로운 리드 바이어스(VR)에 근거하여 테스트 리드 동작이 반복될 수 있다.
단계(S270)에서, 컨트롤러(100)는 기록(130)에 포함된 정정 실패 지수들(FI) 중 최소 정정 실패 지수(FI)에 대응하는 리드 바이어스(VR)에 근거하여 리드 동작에서 사용될 최종 리드 바이어스를 설정할 수 있다. 예를 들어, 컨트롤러(100)는 최소 정정 실패 지수(FI)에 대응하는 리드 바이어스(VR)를 최종 리드 바이어스로 설정할 수 있다.
실시 예에 따라, 컨트롤러(100)는 최소 정정 실패 지수(FI)에 대응하는 리드 바이어스(VR)를 공지된 다양한 리드 바이어스 조정 방법들에서 사용될 시작 리드 바이어스(VR)로 설정할 수 있다.
실시 예에 따라, 테스트 리드 동작에서 사용되는 리드 바이어스들(VR)은 정정 실패 지수들(FI)에 근거하여 조정되지 않고, 기 설정된 테이블에 포함된 리드 바이어스들(VR) 중에서 선택됨으로써 조정될 수 있다. 이러한 경우, 테이블에 포함된 리드 바이어스들(VR)에 각각 대응하는 정정 실패 지수들(FI)이 산출되고, 최소 정정 실패 지수(FI)에 대응하는 리드 바이어스(VR)가 선택될 수 있다.
도10은 본 발명의 실시 예에 따른 SSD(1000)를 도시하는 블록도이다.
SSD(1000)는 컨트롤러(1100)와 저장 매체(1200)를 포함할 수 있다.
컨트롤러(1100)는 호스트 장치(1500)와 저장 매체(1200) 사이의 데이터 교환을 제어할 수 있다. 컨트롤러(1100)는 프로세서(1110), 램(1120), 롬(1130), ECC부(1140), 호스트 인터페이스(1150) 및 저장 매체 인터페이스(1160)를 포함할 수 있다.
컨트롤러(1100)는 도1의 컨트롤러(100)와 실질적으로 동일하게 구성될 수 있다. 컨트롤러(1100)는 리드 동작이 실패할 때, 리드 동작에서 사용되는 리드 바이어스를 조정함으로써 리드 동작을 재수행할 수 있다. 구체적으로, 컨트롤러(1100)는 리드 바이어스를 조정하고, 리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하고, 데이터 청크에 대해 에러 정정 동작을 수행함으로써 리드 동작을 수행할 수 있고, 에러 정정 동작의 결과에 따라 리드 동작을 반복할 수 있다. 컨트롤러(1100)는 리드 동작을 반복할 때, 기록을 참조하여, 이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들 및 그에 각각 대응하는 정정 실패 지수들에 근거하여 리드 바이어스를 조정할 수 있다.
또한, 컨트롤러(1100)는 리드 동작에서 사용될 최종 리드 바이어스를 설정하기 위해서, 리드 바이어스를 조정함으로써 테스트 리드 동작을 반복적으로 수행할 수 있다. 컨트롤러(1100)는 리드 바이어스를 조정하고, 리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하고, 데이터 청크에 대해 에러 정정 알고리즘에 근거하여 디코딩 동작을 수행하고, 리드 바이어스와 디코딩 동작에서 산출된 정정 실패 지수를 기록에 추가함으로써 테스트 리드 동작을 수행할 수 있다. 그리고, 컨트롤러(1100)는 기록에 포함된 정정 실패 지수들 중 최소 정정 실패 지수에 대응하는 리드 바이어스에 근거하여 최종 리드 바이어스를 설정할 수 있다.
프로세서(1110)는 컨트롤러(1100)의 제반 동작을 제어할 수 있다. 프로세서(1110)는 호스트 장치(1500)의 데이터 처리 요청에 따라 저장 매체(1200)에 데이터를 저장하고, 저장 매체(1200)로부터 저장된 데이터를 리드할 수 있다. 프로세서(1110)는 저장 매체(1200)를 효율적으로 관리하기 위해서, 머지 동작 및 웨어 레벨링 동작 등과 같은 SSD(1000)의 내부 동작을 제어할 수 있다.
램(1120)은 프로세서(1110)에 의해 사용되는 프로그램 및 프로그램 데이터를 저장할 수 있다. 램(1120)은 호스트 인터페이스(1150)로부터 전송된 데이터를 저장 매체(1200)에 전달하기 전에 임시 저장할 수 있고. 저장 매체(1200)로부터 전송된 데이터를 호스트 장치(1500)로 전달하기 전에 임시 저장할 수 있다.
롬(1130)은 프로세서(1110)에 의해 리드되는 프로그램 코드를 저장할 수 있다. 프로그램 코드는 프로세서(1110)가 컨트롤러(1100)의 내부 유닛들을 제어하기 위해서 프로세서(1110)에 의해 처리되는 명령들을 포함할 수 있다.
ECC부(1140)는 저장 매체(1200)에 저장될 데이터를 인코딩하고, 저장 매체(1200)로부터 리드된 데이터를 디코딩할 수 있다. ECC부(1140)는 ECC 알고리즘에 따라 데이터에 발생된 에러를 검출하고 정정할 수 있다.
호스트 인터페이스(1150)는 호스트 장치(1500)와 데이터 처리 요청 및 데이터 등을 교환할 수 있다.
저장 매체 인터페이스(1160)는 저장 매체(1200)로 제어 신호 및 데이터를 전송할 수 있다. 저장 매체 인터페이스(1160)는 저장 매체(1200)로부터 데이터를 전송받을 수 있다. 저장 매체 인터페이스(1160)는 저장 매체(1200)와 복수의 채널들(CH0~CHn)을 통해 연결될 수 있다.
저장 매체(1200)는 복수의 비휘발성 메모리 장치들(NVM0~NVMn)을 포함할 수 있다. 복수의 비휘발성 메모리 장치들(NVM0~NVMn) 각각은 컨트롤러(1100)의 제어에 따라 라이트 동작 및 리드 동작을 수행할 수 있다.
도11은 본 발명의 실시 예에 따른 데이터 저장 장치(10)가 데이터 저장 장치(2300)로서 적용된 데이터 처리 시스템(2000)을 도시하는 블록도이다.
데이터 처리 시스템(2000)은 컴퓨터, 랩탑, 넷북, 스마트폰, 디지털 TV, 디지털 카메라, 네비게이션 등을 포함할 수 있다. 데이터 처리 시스템(2000)은 메인 프로세서(2100), 메인 메모리 장치(2200), 데이터 저장 장치(2300) 및 입출력 장치(2400)를 포함할 수 있다. 데이터 처리 시스템(2000)의 내부 유닛들은 시스템 버스(2500)를 통해서 데이터 및 제어 신호 등을 주고받을 수 있다.
메인 프로세서(2100)는 데이터 처리 시스템(2000)의 제반 동작을 제어할 수 있다. 메인 프로세서(2100)는, 예를 들어, 마이크로프로세서와 같은 중앙 처리 장치일 수 있다. 메인 프로세서(2100)는 운영 체제, 애플리케이션 및 장치 드라이버 등의 소프트웨어들을 메인 메모리 장치(2200) 상에서 수행할 수 있다.
메인 메모리 장치(2200)는 메인 프로세서(2100)에 의해 사용되는 프로그램 및 프로그램 데이터를 저장할 수 있다. 메인 메모리 장치(2200)는 데이터 저장 장치(2300) 및 입출력 장치(2400)로 전송될 데이터를 임시 저장할 수 있다.
데이터 저장 장치(2300)는 컨트롤러(2310) 및 저장 매체(2320)를 포함할 수 있다.
입출력 장치(2400)는 사용자로부터 데이터 처리 시스템(2000)을 제어하기 위한 명령을 입력받거나 처리된 결과를 사용자에게 제공하는 등 사용자와 정보를 교환할 수 있는 키보드, 스캐너, 터치스크린, 스크린 모니터, 프린터 및 마우스 등을 포함할 수 있다.
실시 예에 따라, 데이터 처리 시스템(2000)은 LAN(Local Area Network), WAN(Wide Area Network) 및 무선 네트워크 등의 네트워크(2600)를 통해 적어도 하나의 서버(2700)와 통신할 수 있다. 데이터 처리 시스템(2000)은 네트워크(2600)에 접속하기 위해서 네트워크 인터페이스(미도시)를 포함할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 데이터 저장 장치
100: 컨트롤러
110: 리드 바이어스 조정부
120: ECC부
130: 기록
200: 비휘발성 메모리 장치
100: 컨트롤러
110: 리드 바이어스 조정부
120: ECC부
130: 기록
200: 비휘발성 메모리 장치
Claims (21)
- 타겟 메모리 영역을 포함하는 비휘발성 메모리 장치; 및
리드 바이어스에 근거하여 상기 타겟 메모리 영역으로부터 데이터 청크를 리드하고 상기 데이터 청크에 대해 에러 정정 동작을 수행함으로써 리드 동작을 수행하고, 상기 에러 정정 동작의 결과에 따라 상기 리드 동작을 반복하고, 이전의 하나 이상의 리드 동작들에서 사용된 적어도 하나의 리드 바이어스 및 상기 적어도 하나의 리드 바이어스에 대응하는 적어도 하나의 정정 실패 지수에 근거하여 상기 리드 바이어스를 조정하도록 구성된 컨트롤러를 포함하되,
상기 컨트롤러는 상기 에러 정정 동작을 수행할 때, 상기 데이터 청크에 포함된 복수의 데이터 블록들 각각에 대해 제1 알고리즘에 근거하여 제1 디코딩 동작을 수행하고,
상기 정정 실패 지수는 상기 제1 디코딩 동작이 실패한 상기 하나 이상의 데이터 블록들의 개수에 근거하여 산출되는 데이터 저장 장치. - ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서,
상기 컨트롤러는, 상기 에러 정정 동작을 수행할 때, 상기 제1 디코딩 동작이 실패한 하나 이상의 데이터 블록들에 대해 제2 알고리즘에 근거하여 제2 디코딩 동작을 수행하는 데이터 저장 장치. - 삭제
- ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈제2항에 있어서,
상기 제1 알고리즘은 BCH 코드 알고리즘이고, 상기 제2 알고리즘은 TPC 알고리즘인 데이터 저장 장치. - 삭제
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서,
상기 컨트롤러는, 상기 리드 동작을 수행할 때, 카운트를 증가시키고, 상기 카운트가 임계 카운트에 도달했는지 여부를 판단하고, 판단 결과에 따라 상기 리드 동작의 반복을 종료하는 데이터 저장 장치. - ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제1항에 있어서,
상기 컨트롤러는, 상기 적어도 하나의 리드 바이어스 및 상기 적어도 하나의 정정 실패 지수를 사용한 최소값 추정 알고리즘에 근거하여 상기 리드 바이어스를 조정하는 데이터 저장 장치. - 에러 정정 동작의 결과에 따라 리드 동작을 반복하되, 상기 리드 동작은,
리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하는 단계; 및
상기 데이터 청크에 대해 상기 에러 정정 동작을 수행하는 단계를 포함하는, 상기 리드 동작을 반복하는 단계; 및,
이전의 하나 이상의 리드 동작들에서 사용된 리드 바이어스들 및 상기 리드 바이어스들에 각각 대응하는 정정 실패 지수들에 근거하여 상기 리드 바이어스를 조정하는 단계를 포함하고,
상기 에러 정정 동작을 수행하는 단계는, 상기 데이터 청크에 포함된 복수의 데이터 블록들 각각에 대해 제1 알고리즘에 근거하여 제1 디코딩 동작을 수행하는 단계를 포함하고,
상기 정정 실패 지수는 상기 제1 디코딩 동작이 실패한 상기 하나 이상의 데이터 블록들의 개수에 근거하여 산출되는, 데이터 저장 장치의 동작 방법. - ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제8항에 있어서,
상기 에러 정정 동작을 수행하는 단계는,
상기 제1 디코딩 동작이 실패한 하나 이상의 데이터 블록들에 대해 제2 알고리즘에 근거하여 제2 디코딩 동작을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 삭제
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제9항에 있어서,
상기 제1 알고리즘은 BCH 코드 알고리즘이고, 상기 제2 알고리즘은 TPC 알고리즘인 데이터 저장 장치의 동작 방법. - ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈제8항에 있어서,
상기 리드 동작은, 상기 에러 정정 동작의 결과에 따라 상기 리드 바이어스 및 상기 리드 바이어스에 대응하는 정정 실패 지수를 기록에 추가하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제8항에 있어서,
상기 리드 동작을 수행할 때, 카운트를 증가시키는 단계;
상기 카운트가 임계 카운트에 도달했는지 여부를 판단하는 단계; 및
판단 결과에 따라 상기 리드 동작의 반복을 종료하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제8항에 있어서,
상기 리드 바이어스를 조정하는 단계는,
상기 리드 바이어스들 및 상기 정정 실패 지수들을 사용한 최소값 추정 알고리즘에 근거하여 상기 리드 바이어스를 조정하는 단계를 포함하는 데이터 저장 장치의 동작 방법. - 테스트 리드 동작을 반복하되, 상기 테스트 리드 동작은,
리드 바이어스에 근거하여 타겟 메모리 영역으로부터 데이터 청크를 리드하되, 상기 데이터 청크는 각각이 에러 정정 알고리즘에 근거하여 인코딩된 복수의 데이터 블록들을 포함하는, 리드하는 단계;
상기 데이터 블록들 각각에 대해 상기 에러 정정 알고리즘에 근거하여 디코딩 동작을 수행하는 단계; 및
상기 리드 바이어스와 상기 디코딩 동작에서 산출된 정정 실패 지수를 기록에 추가하는 단계를 포함하는, 상기 테스트 리드 동작을 반복하는 단계; 및
상기 기록에 포함된 정정 실패 지수들 중 최소 정정 실패 지수에 대응하는 리드 바이어스에 근거하여 리드 동작에서 사용될 최종 리드 바이어스를 설정하는 단계를 포함하고,
상기 정정 실패 지수는 상기 디코딩 동작이 실패한 하나 이상의 데이터 블록들의 개수에 근거하여 산출되는 데이터 저장 장치의 동작 방법. - ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 테스트 리드 동작은,
상기 기록에 포함된 리드 바이어스들 및 상기 정정 실패 지수들을 사용한 최소값 추정 알고리즘에 근거하여 상기 리드 바이어스를 조정하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 테스트 리드 동작은,
소정의 복수의 리드 바이어스들을 포함하는 테이블을 참조하여 상기 리드 바이어스를 조정하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - 삭제
- ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 에러 정정 알고리즘은 BCH 코드 알고리즘인 데이터 저장 장치의 동작 방법. - ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 테스트 리드 동작을 수행할 때, 카운트를 증가시키는 단계;
상기 카운트가 임계 카운트에 도달했는지 여부를 판단하는 단계; 및
판단 결과에 따라 상기 테스트 리드 동작의 반복을 종료하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법. - ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈제15항에 있어서,
상기 정정 실패 지수가 임계 지수 미만인지 여부를 판단하는 단계; 및
판단 결과에 따라 상기 테스트 리드 동작의 반복을 종료하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160023615A KR102500616B1 (ko) | 2016-02-26 | 2016-02-26 | 데이터 저장 장치 및 그것의 동작 방법 |
US15/219,380 US10055286B2 (en) | 2016-02-26 | 2016-07-26 | Data storage device and operating method thereof |
TW105133160A TWI727980B (zh) | 2016-02-26 | 2016-10-14 | 資料儲存裝置及其操作方法 |
CN201611115728.4A CN107134293B (zh) | 2016-02-26 | 2016-12-07 | 数据存储装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160023615A KR102500616B1 (ko) | 2016-02-26 | 2016-02-26 | 데이터 저장 장치 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170101367A KR20170101367A (ko) | 2017-09-06 |
KR102500616B1 true KR102500616B1 (ko) | 2023-02-17 |
Family
ID=59679639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160023615A KR102500616B1 (ko) | 2016-02-26 | 2016-02-26 | 데이터 저장 장치 및 그것의 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10055286B2 (ko) |
KR (1) | KR102500616B1 (ko) |
CN (1) | CN107134293B (ko) |
TW (1) | TWI727980B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180108939A (ko) * | 2017-03-23 | 2018-10-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10521296B2 (en) * | 2018-02-20 | 2019-12-31 | Micron Technology, Inc. | Performing an additional decoding operation on an identified set of bits of a data block |
KR102085690B1 (ko) * | 2018-04-27 | 2020-03-06 | 한양대학교 산학협력단 | 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법 |
US10725862B2 (en) * | 2018-07-06 | 2020-07-28 | Macronix International Co., Ltd. | Data recovery method to error correction code in memory |
KR102660417B1 (ko) * | 2019-07-24 | 2024-04-24 | 삼성전자주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101512661B (zh) * | 2006-05-12 | 2013-04-24 | 苹果公司 | 用于存储设备的失真估计与纠错编码的组合 |
KR20100086193A (ko) | 2009-01-22 | 2010-07-30 | 주식회사 하이닉스반도체 | 반도체 메모리 소자의 독출 방법 |
US8451664B2 (en) * | 2010-05-12 | 2013-05-28 | Micron Technology, Inc. | Determining and using soft data in memory devices and systems |
US8839073B2 (en) * | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
TWI594254B (zh) * | 2012-07-17 | 2017-08-01 | 慧榮科技股份有限公司 | 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置 |
US8804421B2 (en) * | 2012-10-31 | 2014-08-12 | Intel Corporation | Center read reference voltage determination based on estimated probability density function |
US20140359202A1 (en) * | 2013-05-31 | 2014-12-04 | Western Digital Technologies, Inc. | Reading voltage calculation in solid-state storage devices |
CN104282339B (zh) * | 2013-07-08 | 2018-12-14 | 群联电子股份有限公司 | 读取电压设定方法、控制电路与存储器储存装置 |
KR101429184B1 (ko) * | 2013-09-12 | 2014-08-12 | 주식회사 디에이아이오 | 낸드 플래시 메모리 장치의 독출 전압 조정 방법 |
CN104616695B (zh) * | 2013-11-05 | 2017-12-22 | 光宝科技股份有限公司 | 固态存储装置及其读取电压设定方法 |
US9209835B2 (en) * | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
KR20150084560A (ko) * | 2014-01-14 | 2015-07-22 | 에스케이하이닉스 주식회사 | 인코딩 장치, 디코딩 장치 및 그 동작 방법 |
KR102149668B1 (ko) * | 2014-04-22 | 2020-08-31 | 삼성전자주식회사 | 비휘발성 메모리 장치의 데이터 디코딩 방법 |
US20150379678A1 (en) * | 2014-06-25 | 2015-12-31 | Doa'a M. Al-otoom | Techniques to Compose Memory Resources Across Devices and Reduce Transitional Latency |
TWI550612B (zh) * | 2015-03-23 | 2016-09-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
-
2016
- 2016-02-26 KR KR1020160023615A patent/KR102500616B1/ko active IP Right Grant
- 2016-07-26 US US15/219,380 patent/US10055286B2/en active Active
- 2016-10-14 TW TW105133160A patent/TWI727980B/zh active
- 2016-12-07 CN CN201611115728.4A patent/CN107134293B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107134293B (zh) | 2021-05-07 |
US20170249208A1 (en) | 2017-08-31 |
KR20170101367A (ko) | 2017-09-06 |
US10055286B2 (en) | 2018-08-21 |
TW201730742A (zh) | 2017-09-01 |
TWI727980B (zh) | 2021-05-21 |
CN107134293A (zh) | 2017-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102500616B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20170097868A1 (en) | Data storage device and operating method thereof | |
KR102378541B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102263047B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10268540B2 (en) | Data storage device and operating method thereof | |
KR102564441B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20110097446A (ko) | 메모리 시스템 및 그것의 데이터 처리 방법 | |
US20170038969A1 (en) | Data storage device and operating method thereof | |
US10359943B2 (en) | Data storage device | |
US20200020395A1 (en) | Data storage device and operating method thereof | |
KR20170090683A (ko) | 비휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치의 동작 방법 | |
CN113628665A (zh) | 基于以经优化读取电压为中心的信号和噪声特性确定位错误计数 | |
US20170018315A1 (en) | Test system and test method | |
KR102504763B1 (ko) | 데이터 저장 장치 | |
KR20180092422A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10026501B2 (en) | Data storage device and operating method thereof | |
US10152372B2 (en) | Data storage device and operating method thereof | |
KR20210105096A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US9646707B1 (en) | Data storage device and operating method thereof | |
US20220084614A1 (en) | Track Charge Loss based on Signal and Noise Characteristics of Memory Cells Collected in Calibration Operations | |
KR20230095157A (ko) | 패리티 관리 모듈을 포함하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 스토리지 장치의 동작 방법 | |
US20170017417A1 (en) | Data storage device and operating method thereof | |
KR101982381B1 (ko) | 소프트 정보에 대한 데이터 전송의 수행 최적화 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |