KR20160150507A - 데이터 저장 장치 및 그것의 동작 방법 - Google Patents

데이터 저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20160150507A
KR20160150507A KR1020150088601A KR20150088601A KR20160150507A KR 20160150507 A KR20160150507 A KR 20160150507A KR 1020150088601 A KR1020150088601 A KR 1020150088601A KR 20150088601 A KR20150088601 A KR 20150088601A KR 20160150507 A KR20160150507 A KR 20160150507A
Authority
KR
South Korea
Prior art keywords
read voltage
offset value
value
voltage
test lead
Prior art date
Application number
KR1020150088601A
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 KR1020150088601A priority Critical patent/KR20160150507A/ko
Priority to US14/950,957 priority patent/US20160372161A1/en
Publication of KR20160150507A publication Critical patent/KR20160150507A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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
    • 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/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • 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/63Joint error correction and other techniques
    • H03M13/6325Error control coding in combination with demodulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2273Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터 저장 장치는 타겟 영역을 포함하는 불휘발성 메모리 장치 및 기준 리드 전압 및 오프셋 값에 근거하여 복수의 테스트 리드 전압들을 설정하는 단계, 상기 복수의 테스트 리드 전압들을 각각 사용함으로써 상기 타겟 영역으로부터 복수의 코드워드들을 리드하는 단계; 상기 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출하는 단계 및 상기 복수의 패리티 체크섬들에 근거하여 상기 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택하는 단계를 포함하는 리드 전압 조정 동작을 수행하도록 구성된 컨트롤러를 포함한다.

Description

데이터 저장 장치 및 그것의 동작 방법{DATA STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 리드 전압 조정 동작을 수행하는 데이터 저장 장치에 관한 것이다.
데이터 저장 장치는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
데이터 저장 장치는 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) 등으로 구성될 수 있다.
데이터 저장 장치는 데이터를 저장하기 위해 불휘발성 메모리 장치를 포함할 수 있다. 불휘발성 메모리 장치는 전원이 인가되지 않더라도 저장된 데이터를 유지할 수 있다. 불휘발성 메모리 장치는 낸드 플래시(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) 등을 포함할 수 있다.
본 발명이 해결하고자 하는 과제는 패리티 체크섬에 근거하여 최적의 리드 전압을 선택하는 데이터 저장 장치 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 타겟 영역을 포함하는 불휘발성 메모리 장치 및 기준 리드 전압 및 오프셋 값에 근거하여 복수의 테스트 리드 전압들을 설정하는 단계, 상기 복수의 테스트 리드 전압들을 각각 사용함으로써 상기 타겟 영역으로부터 복수의 코드워드들을 리드하는 단계; 상기 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출하는 단계 및 상기 복수의 패리티 체크섬들에 근거하여 상기 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택하는 단계를 포함하는 리드 전압 조정 동작을 수행하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법은 리드 전압 조정 동작을 수행하는 단계를 포함하되, 상기 리드 전압 조정 동작을 수행하는 단계는, 기준 리드 전압 및 오프셋 값에 근거하여, 복수의 테스트 리드 전압들을 설정하는 단계, 상기 복수의 테스트 리드 전압들을 각각 사용함으로써 타겟 영역으로부터 복수의 코드워드들을 리드하는 단계, 상기 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출하는 단계 및 상기 복수의 패리티 체크섬들에 근거하여 상기 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치 및 그것의 동작 방법은 리드 전압 조정 동작을 통해 최적의 리드 전압을 선택함으로써, 타겟 영역으로부터 리드된 데이터에 대한 디코딩 성공 확률을 증가시킬 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 블록도,
도2a 내지 도2c는 메모리 셀들이 형성하는 문턱 전압 분포들을 도시한 도면들,
도3은 도1의 ECC 유닛의 패리티 체크섬 산출 방법을 설명하기 위한 도면,
도4는 본 발명의 실시 예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 순서도,
도5 내지 도7은 리드 전압 조정 동작의 수행 방법을 설명하기 위한 순서도들,
도8a 내지 도8c는 도1의 데이터 저장 장치의 리드 전압 조정 동작의 수행 방법을 예시적으로 설명하기 위한 도면들이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 장치(10)를 도시한 블록도이다.
도1을 참조하면, 데이터 저장 장치(10)는 컨트롤러(100) 및 불휘발성 메모리 장치(200)를 포함할 수 있다.
컨트롤러(100)는 프로세서(110) 및 ECC(Error Correction Code) 유닛(120)을 포함할 수 있다.
프로세서(110)는 데이터 저장 장치(10)의 제반 동작을 제어할 수 있다. 프로세서(110)는 외부 장치로부터 전송된 라이트 요청에 응답하여 불휘발성 메모리 장치(200)에 데이터를 저장하기 위해서, 불휘발성 메모리 장치(200)의 라이트 동작을 제어할 수 있다. 프로세서(110)는 외부 장치로부터 전송된 리드 요청에 응답하여 불휘발성 메모리 장치(200)에 저장된 데이터를 리드하여 외부 장치로 출력하기 위해서, 불휘발성 메모리 장치(200)의 리드 동작을 제어할 수 있다.
ECC 유닛(120)은 불휘발성 메모리 장치(200)에 저장될 데이터를 인코딩할 수 있다. ECC 유닛(120)은, 예를 들어, LDPC(Low Density Parity Check) 코드에 근거하여 데이터를 인코딩하고, 인코딩된 데이터, 즉, 코드워드를 생성할 수 있다.
ECC 유닛(120)은 불휘발성 메모리 장치(200)로부터 리드된 코드워드를 디코딩할 수 있다. 구체적으로, 일단, ECC 유닛(120)은 LDPC(Low Density Parity Check) 코드에 대응하는 패리티 체크 행렬에 근거하여 코드워드에 대응하는 신드롬을 산출하고, 산출된 신드롬에 근거하여 코드워드가 에러를 포함하는지 여부를 판단할 수 있다. 이어서, ECC 유닛(120)은 코드워드에 포함된 에러를 정정할 수 있는 경우, 에러를 정정하고 에러 정정된 데이터를 출력할 수 있다. ECC 유닛(120)은 코드워드에 포함된 에러를 정정할 수 없는 경우, 디코딩이 페일되었음을 프로세서(110)로 보고할 수 있다. ECC 유닛(120)에 의한 디코딩은 코드워드에 포함된 에러들이 많을수록 페일될 확률이 높을 수 있다.
불휘발성 메모리 장치(200)는 컨트롤러(100)의 제어에 따라, 컨트롤러(100)로부터 전송된 데이터(즉, 코드워드)에 대한 라이트 동작을 수행할 수 있고, 저장된 데이터(즉, 코드워드)에 대한 리드 동작을 수행하여 리드된 데이터를 컨트롤러(100)로 전송할 수 있다. 불휘발성 메모리 장치(200)는 데이터가 저장될 복수의 메모리 셀들(미도시)을 포함할 수 있다.
도2a 내지 도2c는 메모리 셀들이 형성하는 문턱 전압 분포들(PV1, PV2_B, PV2_A)을 도시한 도면들이다. 도2a 내지 도2c 각각의 그래프에서 가로축은 문턱 전압을 의미하고, 세로축은 메모리 셀들의 개수를 의미할 수 있다.
도2a를 참조하면, 메모리 셀들 각각이 자신에 저장된 데이터에 따라 일정한 문턱 전압을 가지게 됨으로써, 메모리 셀들은 문턱 전압 분포들(PV1, PV2_B)을 형성할 수 있다. 예를 들어, 제1 데이터가 저장된 메모리 셀들은 문턱 전압 분포(PV1)를 형성할 수 있고, 제2 데이터가 저장된 메모리 셀들은 문턱 전압 분포(PV2_B)를 형성할 수 있다.
리드 동작이 수행될 때, 메모리 셀에 저장된 데이터는 리드 전압(VR1)을 통해 메모리 셀의 문턱 전압이 판별됨으로써 메모리 셀로부터 리드될 수 있다. 구체적으로, 리드 전압(VR1)이 메모리 셀에 대응하는 워드라인으로 인가될 때, 리드 전압(VR1)보다 작은 문턱 전압을 가진 메모리 셀로부터 제1 데이터가 리드되고 리드 전압(VR1)보다 큰 문턱 전압을 가진 메모리 셀로부터 제2 데이터가 리드될 수 있다. 따라서, 리드 동작이 수행될 때, 리드 전압(VR1)에 의해 문턱 전압분포들이 서로 구분되어야 하므로, 불휘발성 메모리 장치(200)는 문턱 전압 분포들(PV1, PV2_B) 사이의 간격, 즉, 리드 마진이 충분하게 확보되도록 라이트 동작을 수행할 수 있다.
도2b를 참조하면, 문턱 전압 분포들(PV1, PV2_B)은 다양한 원인, 예를 들어, 충전 전하의 방전, 인접한 메모리 셀들 간의 간섭 또는 방해 등에 기인하여 변형된 형태를 가지거나 가로축을 따라 이동할 수 있다. 예를 들어, 문턱 전압 분포(PV2_B)는 문턱 전압 분포(PV2_A)로 이동할 수 있다. 결과적으로, 문턱 전압 분포들(PV1, PV2_A)의 일부는 오버랩될 수 있다. 문턱 전압 분포들(PV1, PV2_A)의 일부가 오버랩될 때 종래의 리드 전압(VR1)을 사용하여 리드 동작이 수행될 경우, 메모리 셀들에 저장된 데이터는 최초에 저장된 값과 다른 값으로 리드될 수 있다. 즉, 리드된 데이터는 에러를 포함할 수 있다. 리드된 데이터가 에러를 포함하더라도 ECC 유닛이 디코딩을 성공한다면 문턱 전압 분포의 이동은 별로 문제되지 않을 수 있다. 다만, ECC 유닛(120)에 의한 디코딩은 리드된 데이터에 포함된 에러가 적을수록 성공할 확률이 높을 수 있고, 에러가 많을 수록 페일될 확률이 높을 수 있다.
도2c를 참조하면, 이동된 문턱 전압 분포들(PV1, PV2_A)에 대해 리드 전압(VR1)이 리드 전압(VR2)으로 조정되면, 리드된 데이터에 포함된 에러들은 최소화될 수 있다. 구체적으로, 제2 데이터가 실제로 저장되었지만 종래의 리드 전압(VR1)을 사용함으로써 제1 데이터가 저장된 것으로 잘못 리드되는 메모리 셀들은 점선으로 표시될 수 있다. 즉, 점선 내의 메모리 셀들은 종래의 리드 전압(VR1)을 사용할 경우, 에러를 유발할 수 있다. 그리고, 제1 데이터가 실제로 저장되었지만 조정된 리드 전압(VR2)을 사용함으로써 제2 데이터가 저장된 것으로 잘못 리드되는 메모리 셀들과 제2 데이터가 실제로 저장되었지만 조정된 리드 전압(VR2)을 사용함으로써 제1 데이터가 저장된 것으로 잘못 리드되는 메모리 셀들은 음영으로 표시될 수 있다. 즉, 음영으로 표시된 메모리 셀들은 조정된 리드 전압(VR2)을 사용할 경우, 에러를 유발할 수 있다.
즉, 문턱 전압 분포들(PV1, PV2_A)에 의해 형성되는 골에 대응하는 문턱 전압이 새로운 리드 전압(VR2)으로 조정되는 경우, 리드된 데이터에 포함된 에러들은 최소화될 수 있다. 그리고, ECC 유닛(120)에 의한 디코딩은 리드된 데이터에 포함된 에러가 적을 수록 성공할 확률이 높기 때문에, 조정된 리드 전압(VR2)을 사용함으로써 리드된 데이터의 디코딩은 성공할 확률이 높을 수 있다.
다시 도1을 참조하면, 컨트롤러(100)는 불휘발성 메모리 장치(200)가 메모리 셀들의 문턱 전압을 판별하기 위해 사용하는 리드 전압이 새롭게 조정될 필요가 있다고 판단되는 경우, 리드 전압 조정 동작을 수행할 수 있다. 예를 들어, 컨트롤러(100)는 ECC 유닛(120)에 의한 디코딩이 페일되는 경우 디코딩 페일된 타겟 영역에 대해 리드 전압 조정 동작의 수행이 필요하다고 판단할 수 있다. 디코딩 페일은 문턱 전압 분포들의 이동에 기인하여 타겟 영역으로부터 리드된 데이터가 너무 많은 에러들을 포함하는 경우 발생할 수 있다. 또한, 컨트롤러(100)는 ECC 유닛(120)의 디코딩 페일에 기인하여, 디코딩 페일된 타겟 영역에 대해 원래의 리드 전압 대신에 미리 설정된 리드 리트라이 전압들을 사용하는 리드 리트라이 동작을 수행하였음에도 불구하고, 재차 디코딩이 페일되는 경우 타겟 영역에 대해 리드 전압 조정 동작의 수행이 필요하다고 판단할 수 있다.
리드 전압 조정 동작에 의해 새롭게 조정되는 리드 전압은 원래의 리드 전압보다, 문턱 전압 분포들에 의해 형성되는 골에 대응하는 문턱 전압에 가까울 수 있다. 문턱 전압 분포들에 의해 형성되는 골을 정확하게 찾은 것은 실질적으로 어렵기 때문에, 컨트롤러(100)는 리드 전압 조정 동작을 통해 상기 골에 대응하는 문턱 전압에 원래의 리드 전압보다 더욱 가까워지도록 리드 전압을 조정할 수 있다. 후술될 바와 같이, 리드 전압 조정 동작은 반복적으로 수행될 수 있고, 리드 전압 조정 동작이 반복적으로 수행될 때마다 새롭게 조정되는 리드 전압은 앞서 조정된 리드 전압보다 상기 골에 대응하는 문턱 전압에 더욱 가까워짐으로써 디코딩 성공 확률을 보다 증가시킬 수 있다.
구체적으로, 리드 전압 조정 동작이 수행될 때, 프로세서(110)는 기준 리드 전압 및 오프셋 값에 근거하여, 복수의 테스트 리드 전압들을 설정할 수 있다. 타겟 영역에 대한 리드 전압 조정 동작이 최초로 시작될 때, 최초의 기준 리드 전압 및 최초의 오프셋 값은 불휘발성 메모리 장치(200)의 특성에 따라 미리 설정된 값들일 수 있다. 복수의 테스트 리드 전압들은 기준 리드 전압을 포함할 수 있고, 기준 리드 전압에서 오프셋 값의 정수 배를 가감한 값들을 포함할 수 있다. 복수의 테스트 리드 전압들은, 예를 들어, 제1 내지 제3 테스트 리드 전압들을 포함할 수 있다. 프로세서(110)는 기준 리드 전압에서 오프셋 값을 감한 값을 제1 테스트 리드 전압으로 설정하고, 기준 리드 전압을 제2 테스트 리드 전압으로 설정하고, 기준 리드 전압에서 오프셋 값을 가한 값을 제3 테스트 리드 전압으로 설정할 수 있다. 그러나, 본 발명의 실시 예에 따라, 복수의 테스트 리드 전압들의 개수는 3개로 제한되지 않을 것이다.
이어서, 프로세서(110)는 제1 내지 제3 테스트 리드 전압들을 각각 사용함으로써 타겟 영역으로부터 제1 내지 제3 코드워드들을 리드할 수 있다. 프로세서(110)는 제1 내지 제3 코드워드들을 리드하기 위해서, 불휘발성 메모리 장치(200)가 타겟 영역에 대해 제1 내지 제3 테스트 리드 전압들을 각각 사용하여 제1 내지 제3 리드 동작을 수행하도록 불휘발성 메모리 장치(200)를 제어할 수 있다. 불휘발성 메모리 장치(200)는 프로세서(110)의 제어에 따라, 타겟 영역에 대응하는 워드라인으로 제1 내지 제3 테스트 리드 전압들을 각각 인가함으로써 제1 내지 제3 리드 동작들을 각각 수행하고, 타겟 영역으로부터 리드된 제1 내지 제3 코드워드들을 컨트롤러(100)로 출력할 것이다.
이어서, ECC 유닛(120)은 제1 내지 제3 코드워드들에 각각 대응하는 제1 내지 제3 패리티 체크섬들을 산출할 수 있다. 제1 내지 제3 패리티 체크섬들 각각은, 제1 내지 제3 코드워드들로부터 각각 산출된 제1 내지 제3 신드롬들 각각에 포함된 1의 개수일 수 있다. 예를 들어, 제1 패리티 체크섬은 제1 코드워드로부터 산출된 제1 신드롬에 포함된 1의 개수일 수 있다.
이어서, 프로세서(110)는 제1 내지 제3 패리티 체크섬들에 근거하여 제1 내지 제3 테스트 리드 전압들 중 최종 리드 전압을 선택할 수 있다. 프로세서(110)는 제1 내지 제3 패리티 체크섬들 중 최솟값에 대응하는 테스트 리드 전압을 최종 리드 전압으로 선택할 수 있다. 이때, 패리티 체크섬이 작을 수록 코드워드가 에러들을 적게 포함할 확률은 증가할 수 있다. 즉, 프로세서(110)는 패리티 체크섬에 근거하여 보다 적은 에러를 유발할 확률이 높은 테스트 리드 전압을 최종 리드 전압으로 선택함으로써 디코딩 성공 확률을 증가시킬 수 있다.
실시 예에 따라, 프로세서(110)는 최종 리드 전압을 최적으로 선택하기 위해서, 리드 전압 조정 동작의 반복 조건이 성립하는지 여부를 판단할 수 있다. 컨트롤러(100)는 판단 결과에 따라 리드 전압 조정 동작을 반복적으로 수행할 수 있다. 프로세서(110)는 리드 전압 조정 동작을 반복적으로 수행할 때마다 반복 횟수를 증가시킬 수 있다. 그리고, 프로세서(110)는 리드 전압 조정 동작을 반복적으로 수행할 때마다, 최종 리드 전압을 기준 리드 전압으로 재설정할 수 있다.
또한, 프로세서(110)는 리드 전압 조정 동작을 반복적으로 수행할 때마다, 이전의 오프셋 값에 근거하여 조정된 값을 새로운 오프셋 값으로 재설정할 수 있다. 재설정된 오프셋 값은 이전의 오프셋 값보다 작을 수 있다. 재설정된 오프셋 값은, 예를 들어, 이전의 오프셋 값의 1/2값일 수 있다. 오프셋 값이 정수로 표현되는 상대값인 경우, 재설정된 오프셋 값은, 예를 들어, 이전의 오프셋 값의 1/2값을 넘지 않는 최대 정수일 수 있다. 예를 들어, 이전의 오프셋 값이 15일 때, 재설정된 오프셋 값은 7일 수 있다.
실시 예에 따라, 프로세서(110)는 오프셋 값이 임계 오프셋 값 미만인지 여부를 판단할 수 있다. 컨트롤러(100)는 오프셋 값이 임계 오프셋 값 미만인 것으로 판단될 때까지 리드 전압 조정 동작을 반복적으로 수행할 수 있다.
실시 예에 따라, 프로세서(110)는 제1 내지 제3 패리티 체크섬들 중 최솟값이 임계값 미만인지 여부를 판단할 수 있다. 컨트롤러(100)는 최솟값이 임계값 미만인 것으로 판단될 때까지 리드 전압 조정 동작을 반복적으로 수행할 수 있다. 임계값은 임계값보다 작은 패리티 체크섬이 산출되는 코드워드에 대해 ECC 유닛(120)에 의한 디코딩 성공을 실질적으로 보장할 수 있는 값일 수 있다. 임계값은 다른 타겟 영역으로부터 리드된 코드워드에 대해 ECC 유닛(120)이 디코딩을 성공한 경우 해당 코드워드로부터 산출된 패리티 체크섬일 수 있다.
실시 예에 따라, 프로세서(110)는 반복 횟수가 임계 횟수에 도달했는지 여부를 판단할 수 있다. 컨트롤러(100)는 반복 횟수가 임계 횟수에 도달한 것으로 판단될 때까지 리드 전압 조정 동작을 반복적으로 수행할 수 있다.
프로세서(110)는 리드 전압 조정 동작의 반복 조건이 성립하지 않는 것으로 판단되는 경우, 타겟 영역에 대한 리드 전압 조정 동작을 종료할 수 있다. 이후, 프로세서(110)는 적어도 1회의 리드 전압 조정 동작들에서 최후로 선택된 최종 리드 전압에 대응하는 코드워드의 디코딩을 ECC 유닛(120)으로 지시할 수 있다. 최종 리드 전압에 대응하는 코드워드란, 최후로 선택된 최종 리드 전압을 사용함으로써 타겟 영역으로부터 리드된 코드워드를 의미할 것이다. ECC 유닛(120)은 최후로 선택된 최종 리드 전압에 대응하는 코드워드의 디코딩을 수행할 수 있고, 높은 확률로 성공할 수 있다.
프로세서(110)는 리드 전압 조정 동작을 종료할 때, 최후로 선택된 최종 리드 전압을 불휘발성 메모리 장치(200)에 설정할 수 있다. 프로세서(110)는 최종 리드 전압을 불휘발성 메모리 장치(200)에 설정하기 위한 설정 커맨드를 불휘발성 메모리 장치(200)로 전송할 수 있다. 불휘발성 메모리 장치(200)는 최종 리드 전압을 저장할 수 있고, 추후, 새롭게 저장된 해당 리드 전압을 사용함으로써 타겟 영역에 대한 리드 동작을 수행할 수 있다.
도3은 도1의 ECC 유닛(120)의 패리티 체크섬 산출 방법을 설명하기 위한 도면이다. 도3은 ECC 유닛(120)에 대응하는 패리티 체크 행렬(H)을 예시적으로 도시한다.
도3을 참조하면, ECC 유닛(120)은 LDPC 코드에 근거하여 동작할 때, LDPC 코드에 대응하는 패리티 체크 행렬(H)에 근거하여 코드워드가 에러를 포함하는지 여부를 판단할 수 있다.
우선, ECC 유닛(120)은 패리티 체크 행렬(H)과 코드워드로 구성된 코드워드 행렬(C)의 곱을 수행하고, 신드롬(S)을 생성할 수 있다. 예를 들어, 신드롬(S)을 구성하는 패리티 체크 비트(p0)는 코드워드의 비트들(r0, r3, r4 및 r5)의 이진합(modulo-2 sum)에 의해 생성될 수 있다.
이어서, ECC 유닛(120)은 패리티 체크섬(PSUM)을 산출할 수 있다. 패리티 체크섬(PSUM)은 신드롬(S)에 포함된 1의 개수일 수 있다. 다른 말로 하면, 패리티 체크섬(PSUM)은 신드롬(S)을 구성하는 패리티 체크 비트들(p0~p4)의 합일 수 있다. ECC 유닛(120)은 패리티 체크섬(PSUM)이 0인 경우 코드워드가 에러를 포함하지 않는다고 판단할 수 있고, 패리티 체크섬(PSUM)이 0이 아닌 경우 코드워드가 에러를 포함한다고 판단할 수 있다.
한편, 코드워드의 패리티 체크섬(PSUM)이 작을 수록 코드워드가 에러들을 적게 포함할 확률은 증가될 수 있다. 즉, 코드워드의 패리티 체크섬(PSUM)이 작을 수록 코드워드에 대한 디코딩 성공 확률은 증가될 수 있다.
도4는 본 발명의 실시 예에 따른 데이터 저장 장치(10)의 동작 방법을 설명하기 위한 순서도이다.
S110 단계에서, 프로세서(110)는 리드 전압 조정 동작을 수행할 것인지 여부를 판단할 수 있다. 컨트롤러(100)는 ECC 유닛(120)에 의한 디코딩이 페일되는 경우 디코딩 페일된 타겟 영역에 대해 리드 전압 조정 동작을 수행할 것으로 판단할 수 있다. 컨트롤러(100)는 ECC 유닛(120)의 디코딩 페일에 기인하여, 디코딩 페일된 타겟 영역에 대해 원래의 리드 전압 대신에 미리 설정된 리드 리트라이 전압들을 사용하는 리드 리트라이 동작을 수행하였음에도 불구하고, 재차 디코딩이 페일되는 경우 타겟 영역에 대해 리드 전압 조정 동작을 수행할 것으로 판단할 수 있다.
S120 단계에서, 컨트롤러(100)는 타겟 영역에 대해 적어도 1회의 리드 전압 조정 동작을 수행할 수 있다. 리드 전압 조정 동작에 의해 선택된 최종 리드 전압은 원래의 리드 전압보다 디코딩 성공 확률을 더욱 증가시킬 수 있다.
S130 단계에서, ECC 유닛(120)은 최종 리드 전압을 사용함으로써 타겟 영역으로부터 리드된 코드워드의 디코딩을 수행할 수 있다.
도5 내지 도7은 리드 전압 조정 동작의 수행 방법을 설명하기 위한 순서도들이다. 도5 내지 도7에 도시된 절차들은 도4에 도시된 S120 단계의 실시 예들일 수 있다. 도5 내지 도7에 도시된 절차들은 리드 전압 조정 동작의 반복 수행 여부를 결정하는 반복 조건들을 제외하면 실질적으로 유사할 수 있다.
도5를 참조하면, S210 단계에서, 프로세서(110)는 기준 리드 전압 및 오프셋 값에 근거하여, 복수의 테스트 리드 전압들을 설정할 수 있다. 복수의 테스트 리드 전압들은 기준 리드 전압을 포함할 수 있고, 기준 리드 전압에서 오프셋 값의 정수 배를 가감한 값들을 포함할 수 있다.
S220 단계에서, 프로세서(110)는 복수의 테스트 리드 전압들을 각각 사용함으로써 타겟 영역으로부터 복수의 코드워드들을 리드할 수 있다. 프로세서(110)는 복수의 코드워드들을 리드하기 위해서, 불휘발성 메모리 장치(200)가 타겟 영역에 대해 복수의 테스트 리드 전압들을 각각 사용하여 복수의 리드 동작을 수행하도록 불휘발성 메모리 장치(200)를 제어할 수 있다.
S230 단계에서, ECC 유닛(120)은 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출할 수 있다. 복수의 패리티 체크섬들 각각은, 복수의 코드워드들로부터 각각 산출된 복수의 신드롬들 각각에 포함된 1의 개수일 수 있다.
S240 단계에서, 프로세서(110)는 복수의 패리티 체크섬들에 근거하여 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택할 수 있다. 프로세서(110)는 복수의 패리티 체크섬들 중 최솟값에 대응하는 테스트 리드 전압을 최종 리드 전압으로 선택할 수 있다.
S250 단계에서, 프로세서(110)는 복수의 패리티 체크섬들 중 최솟값이 임계값 미만인지 여부를 판단할 수 있다. 복수의 패리티 체크섬들 중 최솟값이 임계값 미만인 것으로 판단되는 경우(예), 절차는 종료될 수 있다. 복수의 패리티 체크섬들 중 최솟값이 임계값 이상인 것으로 판단되는 경우(아니오), 절차는 S260 단계로 진행될 수 있다.
S260 단계에서, 프로세서(110)는 최종 리드 전압을 기준 리드 전압으로 재설정하고, 조정된 값을 오프셋 값으로 재설정할 수 있다. 조정된 값, 즉, 재설정된 오프셋 값은, 예를 들어, 이전의 오프셋 값의 1/2값일 수 있다. 오프셋 값이 정수로 표현되는 상대값인 경우, 재설정된 오프셋 값은, 예를 들어, 이전의 오프셋 값의 1/2값을 넘지 않는 최대 정수일 수 있다.
이후, 프로세서(110)는 재설정된 기준 리드 전압 및 재설정된 오프셋 값에 근거하여, S210 단계를 다시 수행할 것이다.
정리하면, 컨트롤러(100)는 복수의 패리티 체크섬들 중 최솟값이 임계값 미만인 것으로 판단될 때까지 S210 단계 내지 S240 단계를 포함하는 리드 전압 조정 동작을 반복적으로 수행할 수 있다.
도6에 도시된 동작 방법은, 리드 전압 조정 동작의 반복 조건, 즉, S350 단계를 제외하면, 도5를 참조하여 설명된 동작 방법과 실질적으로 유사할 수 있다.
도6을 참조하면, S350 단계에서, 프로세서(110)는 오프셋 값이 임계 오프셋 값 미만인지 여부를 판단할 수 있다. 오프셋 값이 임계 오프셋 값 미만인 것으로 판단되는 경우(예), 절차는 종료될 수 있다. 오프셋 값이 임계 오프셋 값 이상인 것으로 판단되는 경우(아니오), 절차는 S360 단계로 진행될 수 있다.
정리하면, 컨트롤러(100)는 오프셋 값이 임계 오프셋 값 미만인 것으로 판단될 때까지 S310 단계 내지 S340 단계를 포함하는 리드 전압 조정 동작을 반복적으로 수행할 수 있다.
도7에 도시된 동작 방법은, 리드 전압 조정 동작의 반복 조건, 즉, S450 단계를 제외하면, 도5를 참조하여 설명된 동작 방법과 실질적으로 유사할 수 있다.
도7을 참조하면, S450 단계에서, 프로세서(110)는 반복 횟수가 임계 횟수에 도달했는지 여부를 판단할 수 있다. 반복 횟수가 임계횟수에 도달한 것으로 판단되는 경우(예), 절차는 종료될 수 있다. 반복 횟수가 임계횟수에 도달하지 않은 것으로 판단되는 경우(아니오), 절차는 S460 단계로 진행될 수 있다.
S460 단계에서, 프로세서(110)는 최종 리드 전압을 기준 리드 전압으로 재설정하고, 조정된 값을 오프셋 값으로 재설정하고, 반복 횟수를 증가시킬 수 있다.
정리하면, 컨트롤러(100)는 반복 횟수가 임계횟수에 도달한 것으로 판단될 때까지 S410 단계 내지 S440 단계를 포함하는 리드 전압 조정 동작을 반복적으로 수행할 수 있다.
도8a 내지 도8c는 도1의 데이터 저장 장치(100)의 리드 전압 조정 동작의 수행 방법을 예시적으로 설명하기 위한 도면들이다. 도8a 내지 도8c는 타겟 영역의 메모리 셀들이 형성하는 오버랩된 문턱 전압 분포들(PV1, PV2)을 예시적으로 도시한다.
도8a를 참조하면, 프로세서(110)는 최초의 기준 리드 전압(VR_C1) 및 최초의 오프셋 값(D1)에 근거하여, 복수의 테스트 리드 전압들, 예를 들어, 제1 내지 제3 테스트 리드 전압들(VR_L1, VR_C1, VR_R1)을 설정할 수 있다. 프로세서(110)는 기준 리드 전압(VR_C1)에서 오프셋 값(D1)을 감한 값(VR_L1)을 제1 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C1)을 제2 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C1)에서 오프셋 값(D1)을 가한 값(VR_R1)을 제3 테스트 리드 전압으로 설정할 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들(VR_L1, VR_C1, VR_R1)을 각각 사용함으로써 타겟 영역으로부터 제1 내지 제3 코드워드들(CW_L1, CW_C1, CW_R1)을 리드할 수 있다.
ECC 유닛(120)은 제1 내지 제3 코드워드들(CW_L1, CW_C1, CW_R1)에 각각 대응하는 제1 내지 제3 패리티 체크섬들(PSUM1)을 산출할 수 있다. 제1 내지 제3 패리티 체크섬들(PSUM1) 각각은, 제1 내지 제3 코드워드들(CW_L1, CW_C1, CW_R1)로부터 산출된 제1 내지 제3 신드롬들 각각에 포함된 1의 개수일 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들(VR_L1, VR_C1, VR_R1) 중, 제1 내지 제3 패리티 체크섬들(PSUM1) 중 최솟값 "5"에 대응하는 제1 테스트 리드 전압(VR_L1)을 최종 리드 전압으로 선택할 수 있다.
이어서, 프로세서(110)는 리드 전압 조정 동작의 반복 조건을 판단할 수 있다. 예를 들어, 프로세서(110)는 제1 내지 제3 패리티 체크섬들(PSUM1) 중 최솟값 "5"가 임계값 미만인지 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 오프셋 값(D1)이 임계 오프셋 값 미만인지 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 반복 횟수가 임계 횟수에 도달했는지 여부를 판단할 수 있다.
프로세서(110)는 반복 조건의 판단 결과에 따라, 타겟 영역에 대해 리드 전압 조정 동작을 재수행할 것으로 결정할 수 있고, 선택된 최종 리드 전압(VR_L1)을 새로운 기준 리드 전압(VR_C2)으로 재설정할 수 있다. 그리고, 프로세서(110)는 오프셋 값(D1)에 근거하여 조정된 값, 예를 들어, 오프셋 값(D1)의 1/2값을 새로운 오프셋 값으로 재설정할 수 있다. 오프셋 값이 정수로 표현되는 상대값인 경우, 프로세서(110)는, 예를 들어, 이전의 오프셋 값의 1/2값을 넘지 않는 최대 정수를 새로운 오프셋 값으로 재설정할 수 있다.
도8b를 참조하면, 프로세서(110)는 타겟 영역에 대해 리드 전압 조정 동작을 재수행할 수 있다. 프로세서(110)는 재설정된 기준 리드 전압(VR_C2) 및 재설정된 오프셋 값(D2)에 근거하여, 제1 내지 제3 테스트 리드 전압들(VR_L2, VR_C2, VR_R2)을 설정할 수 있다. 프로세서(110)는 기준 리드 전압(VR_C2)에서 오프셋 값(D2)을 감한 값(VR_L2)을 제1 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C2)을 제2 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C2)에서 오프셋 값(D2)을 가한 값(VR_R2)을 제3 테스트 리드 전압으로 설정할 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들(VR_L2, VR_C2, VR_R2)을 각각 사용함으로써 타겟 영역으로부터 제1 내지 제3 코드워드들(CW_L2, CW_C2, CW_R2)을 리드할 수 있다.
ECC 유닛(120)은 제1 내지 제3 코드워드들(CW_L2, CW_C2, CW_R2)에 각각 대응하는 제1 내지 제3 패리티 체크섬들(PSUM2)을 산출할 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들(VR_L2, VR_C2, VR_R2) 중, 제1 내지 제3 패리티 체크섬들(PSUM2) 중 최솟값 "3"에 대응하는 제3 테스트 리드 전압(VR_R2)을 최종 리드 전압으로 선택할 수 있다.
프로세서(110)는 리드 전압 조정 동작의 반복 조건을 판단할 수 있고, 판단 결과에 따라 타겟 영역에 대해 리드 전압 조정 동작을 재수행할 것으로 결정할 수 있다. 프로세서(110)는 선택된 최종 리드 전압(VR_R2)을 새로운 기준 리드 전압(VR_C3)으로 재설정할 수 있고, 오프셋 값(D2)에 근거하여 조정된 값, 예를 들어, 오프셋 값(D2)의 1/2값을 새로운 오프셋 값으로 재설정할 수 있다. 다른 예로서, 오프셋 값이 정수로 표현되는 상대값인 경우, 프로세서(110)는 이전의 오프셋 값의 1/2값을 넘지 않는 최대 정수를 새로운 오프셋 값으로 재설정할 수 있다.
도8c를 참조하면, 프로세서(110)는 타겟 영역에 대해 리드 전압 조정 동작을 재수행할 수 있다. 프로세서(110)는 재설정된 기준 리드 전압(VR_C3) 및 재설정된 오프셋 값(D3)에 근거하여, 제1 내지 제3 테스트 리드 전압들(VR_L3, VR_C3, VR_R3)을 설정할 수 있다. 프로세서(110)는 기준 리드 전압(VR_C3)에서 오프셋 값(D3)을 감한 값(VR_L3)을 제1 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C3)을 제2 테스트 리드 전압으로 설정하고, 기준 리드 전압(VR_C3)에서 오프셋 값(D3)을 가한 값(VR_R3)을 제3 테스트 리드 전압으로 설정할 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들(VR_L3, VR_C3, VR_R3)을 각각 사용함으로써 타겟 영역으로부터 제1 내지 제3 코드워드들(CW_L3, CW_C3, CW_R3)을 리드할 수 있다.
ECC 유닛(120)은 제1 내지 제3 코드워드들(CW_L3, CW_C3, CW_R3)에 각각 대응하는 제1 내지 제3 패리티 체크섬들(PSUM3)을 산출할 수 있다.
프로세서(110)는 제1 내지 제3 테스트 리드 전압들 중(VR_L3, VR_C3, VR_R3), 제1 내지 제3 패리티 체크섬들(PSUM3) 중 최솟값 "1"에 대응하는 제1 테스트 리드 전압(VR_L3)을 최종 리드 전압으로 선택할 수 있다.
프로세서(110)는 리드 전압 조정 동작의 반복 조건을 판단할 수 있다. 예를 들어, 프로세서(110)는 제1 내지 제3 패리티 체크섬들(PSUM3) 중 최솟값 "1"가 임계값 미만인지 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 오프셋 값(D3)이 임계 오프셋 값 미만인지 여부를 판단할 수 있다. 예를 들어, 프로세서(110)는 반복 횟수가 임계 횟수에 도달했는지 여부를 판단할 수 있다.
프로세서(110)는 판단 결과에 따라 리드 전압 조정 동작을 종료할 수 있다. 프로세서(110)는 최종 리드 전압(VR_L3)을 사용함으로써 타겟 영역으로부터 리드된 코드워드의 디코딩을 ECC 유닛(120)으로 지시할 수 있다. ECC 유닛(120)은 최종 리드 전압(VR_L3)을 사용함으로써 타겟 영역으로부터 리드된 코드워드의 디코딩을 수행할 수 있고, 높은 확률로 성공할 것이다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 데이터 저장 장치
100: 컨트롤러
110: 프로세서
120: ECC 유닛
200: 불휘발성 메모리 장치

Claims (19)

  1. 영역을 포함하는 불휘발성 메모리 장치; 및
    기준 리드 전압 및 오프셋 값에 근거하여 복수의 테스트 리드 전압들을 설정하는 단계, 상기 복수의 테스트 리드 전압들을 각각 사용함으로써 상기 타겟 영역으로부터 복수의 코드워드들을 리드하는 단계; 상기 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출하는 단계 및 상기 복수의 패리티 체크섬들에 근거하여 상기 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택하는 단계를 포함하는 리드 전압 조정 동작을 수행하도록 구성된 컨트롤러를 포함하는 데이터 저장 장치.
  2. 제1항에 있어서,
    상기 컨트롤러는 반복 조건이 성립하는지 여부를 판단하고, 판단 결과에 따라 상기 리드 전압 조정 동작을 반복적으로 수행하고, 상기 리드 전압 조정 동작을 반복적으로 수행할 때마다 상기 최종 리드 전압을 상기 기준 리드 전압으로 재설정하고 조정된 값을 상기 오프셋 값으로 재설정하는 데이터 저장 장치.
  3. 제2항에 있어서,
    상기 컨트롤러는 상기 복수의 패리티 체크섬들 중 최솟값이 임계값 미만인지 여부를 판단하고, 상기 최솟값이 상기 임계값 미만인 것으로 판단될 때까지 상기 리드 전압 조정 동작을 반복적으로 수행하는 데이터 저장 장치.
  4. 제2항에 있어서,
    상기 컨트롤러는 반복 횟수가 임계 횟수에 도달했는지 여부를 판단하고, 상기 반복 횟수가 상기 임계 횟수에 도달한 것으로 판단될 때까지 상기 리드 전압 조정 동작을 반복적으로 수행하는 데이터 저장 장치.
  5. 제2항에 있어서,
    상기 컨트롤러는 상기 오프셋 값이 임계 오프셋 값 미만인지 여부를 판단하고, 상기 오프셋 값이 상기 임계 오프셋 값 미만인 것으로 판단될 때까지 상기 리드 전압 조정 동작을 반복적으로 수행하는 데이터 저장 장치.
  6. 제1항에 있어서,
    상기 복수의 테스트 리드 전압들은 제1 내지 제3 테스트 리드 전압들을 포함하고,
    상기 제1 테스트 리드 전압은 상기 기준 리드 전압에서 상기 오프셋 값을 감한 값이고, 상기 제2 테스트 리드 전압은 상기 기준 리드 전압이고, 상기 제3 테스트 리드 전압은 상기 기준 리드 전압에서 상기 오프셋 값을 가한 값인 데이터 저장 장치.
  7. 제1항에 있어서,
    상기 복수의 패리티 체크섬들 각각은,
    상기 복수의 코드워드들로부터 각각 산출된 복수의 신드롬들 각각에 포함된 1의 개수인 데이터 저장 장치.
  8. 제1항에 있어서,
    상기 컨트롤러는 상기 복수의 테스트 리드 전압들 중, 상기 복수의 패리티 체크섬들 중 최솟값에 대응하는 테스트 리드 전압을 상기 최종 리드 전압으로 선택하는 데이터 저장 장치.
  9. 제1항에 있어서,
    상기 컨트롤러는 복수의 코드워드들 중 상기 최종 리드 전압에 대응하는 코드워드의 디코딩을 수행하는 데이터 저장 장치.
  10. 제1항에 있어서,
    상기 컨트롤러는 상기 타겟 영역으로부터 리드된 데이터의 디코딩을 실패한 경우, 상기 리드 전압 조정 동작을 수행하는 데이터 저장 장치.
  11. 리드 전압 조정 동작을 수행하는 단계를 포함하되,
    상기 리드 전압 조정 동작을 수행하는 단계는,
    기준 리드 전압 및 오프셋 값에 근거하여, 복수의 테스트 리드 전압들을 설정하는 단계;
    상기 복수의 테스트 리드 전압들을 각각 사용함으로써 타겟 영역으로부터 복수의 코드워드들을 리드하는 단계;
    상기 복수의 코드워드들에 각각 대응하는 복수의 패리티 체크섬들을 산출하는 단계; 및
    상기 복수의 패리티 체크섬들에 근거하여 상기 복수의 테스트 리드 전압들 중 최종 리드 전압을 선택하는 단계를 포함하는 데이터 저장 장치의 동작 방법.
  12. 제11항에 있어서,
    반복 조건을 판단하는 단계를 더 포함하되,
    판단 결과에 따라 상기 리드 전압 조정 동작은 반복적으로 수행되고,
    상기 리드 전압 조정 동작을 수행하는 단계는 상기 최종 리드 전압을 상기 기준 리드 전압으로 재설정하고 조정된 값을 상기 오프셋 값으로 재설정하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
  13. 제12항에 있어서,
    상기 반복 조건을 판단하는 단계는,
    상기 복수의 패리티 체크섬들 중 최솟값이 임계값 미만인지 여부를 판단하는 단계를 포함하고,
    상기 리드 전압 조정 동작은 상기 최솟값이 상기 임계값 미만인 것으로 판단될 때까지 반복적으로 수행되는 데이터 저장 장치의 동작 방법.
  14. 제12항에 있어서,
    상기 반복 조건을 판단하는 단계는,
    반복 횟수가 임계 횟수에 도달했는지 여부를 판단하는 단계를 포함하고,
    상기 리드 전압 조정 동작은 상기 반복 횟수가 상기 임계 횟수에 도달한 것으로 판단될 때까지 반복적으로 수행되는 데이터 저장 장치의 동작 방법.
  15. 제12항에 있어서,
    상기 반복 조건을 판단하는 단계는,
    상기 오프셋 값이 임계 오프셋 값 미만인지 여부를 판단하는 단계를 포함하고,
    상기 리드 전압 조정 동작은 상기 오프셋 값이 상기 임계 오프셋 값 미만인 것으로 판단될 때까지 반복적으로 수행되는 데이터 저장 장치의 동작 방법.
  16. 제11항에 있어서,
    상기 복수의 테스트 리드 전압들은 제1 내지 제3 테스트 리드 전압들을 포함하고,
    상기 제1 테스트 리드 전압은 상기 기준 리드 전압에서 상기 오프셋 값을 감한 값이고, 상기 제2 테스트 리드 전압은 상기 기준 리드 전압이고, 상기 제3 테스트 리드 전압은 상기 기준 리드 전압에서 상기 오프셋 값을 가한 값인 데이터 저장 장치의 동작 방법.
  17. 제11항에 있어서,
    상기 복수의 패리티 체크섬들 각각은,
    상기 복수의 코드워드들로부터 각각 산출된 복수의 신드롬들 각각에 포함된 1의 개수인 데이터 저장 장치의 동작 방법.
  18. 제11항에 있어서,
    상기 최종 리드 전압은 상기 복수의 패리티 체크섬들 중 최솟값에 대응하는 테스트 리드 전압인 데이터 저장 장치의 동작 방법.
  19. 제11항에 있어서,
    상기 복수의 코드워드들 중 상기 최종 리드 전압에 대응하는 코드워드의 디코딩을 수행하는 단계를 더 포함하는 데이터 저장 장치의 동작 방법.
KR1020150088601A 2015-06-22 2015-06-22 데이터 저장 장치 및 그것의 동작 방법 KR20160150507A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150088601A KR20160150507A (ko) 2015-06-22 2015-06-22 데이터 저장 장치 및 그것의 동작 방법
US14/950,957 US20160372161A1 (en) 2015-06-22 2015-11-24 Data storage device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150088601A KR20160150507A (ko) 2015-06-22 2015-06-22 데이터 저장 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20160150507A true KR20160150507A (ko) 2016-12-30

Family

ID=57588338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150088601A KR20160150507A (ko) 2015-06-22 2015-06-22 데이터 저장 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US20160372161A1 (ko)
KR (1) KR20160150507A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10403372B2 (en) 2017-08-29 2019-09-03 SK Hynix Inc. Memory system with adaptive read-threshold scheme and method of operating such memory system
KR20190102439A (ko) * 2018-02-26 2019-09-04 에스케이하이닉스 주식회사 전자 장치, 비 일시적 컴퓨터 판독 가능 저장 매체, 및 전자 장치를 제어하는 방법
KR20190102599A (ko) * 2018-02-26 2019-09-04 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 저장 장치
US11367488B2 (en) 2018-12-11 2022-06-21 SK Hynix Inc. Memory system and method for read operation based on grouping of word lines

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190054533A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
KR20200130008A (ko) * 2019-05-10 2020-11-18 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
CN113129993A (zh) * 2020-01-16 2021-07-16 华邦电子股份有限公司 内存装置及其数据读取方法
US11049547B1 (en) 2020-08-05 2021-06-29 Samsung Electronics Co., Ltd. Non-volatile memory device, operating method thereof, and storage device including the non-volatile memory device
WO2022213320A1 (zh) * 2021-04-08 2022-10-13 中国科学院微电子研究所 用于闪存的数据恢复方法
CN114049910B (zh) * 2022-01-13 2022-04-22 深圳华电通讯有限公司 一种nand重读档位的换档方法、系统及相关组件

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10403372B2 (en) 2017-08-29 2019-09-03 SK Hynix Inc. Memory system with adaptive read-threshold scheme and method of operating such memory system
KR20190102439A (ko) * 2018-02-26 2019-09-04 에스케이하이닉스 주식회사 전자 장치, 비 일시적 컴퓨터 판독 가능 저장 매체, 및 전자 장치를 제어하는 방법
KR20190102599A (ko) * 2018-02-26 2019-09-04 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 저장 장치
US11367488B2 (en) 2018-12-11 2022-06-21 SK Hynix Inc. Memory system and method for read operation based on grouping of word lines

Also Published As

Publication number Publication date
US20160372161A1 (en) 2016-12-22

Similar Documents

Publication Publication Date Title
KR20160150507A (ko) 데이터 저장 장치 및 그것의 동작 방법
US8830743B2 (en) Method of operating memory controller, memory controller, memory device and memory system
KR101645906B1 (ko) 계층적 반복 에러 교정을 위한 종료 기준
US9977713B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
US8370710B2 (en) Non-volatile memory devices, systems, and data processing methods thereof
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US9973213B2 (en) Decoding method, and memory storage apparatus and memory control circuit unit using the same
US10326479B2 (en) Apparatuses and methods for layer-by-layer error correction
KR20150099218A (ko) 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법
KR102257050B1 (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US9147483B2 (en) Apparatus and method of operating memory device
US20200272539A1 (en) Methods and apparatuses for error correction
US20170263331A1 (en) Memory system
US9553612B2 (en) Decoding based on randomized hard decisions
KR20180027803A (ko) 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
KR102556479B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
CN107608818B (zh) 解码方法、存储器存储装置及存储器控制电路单元
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
KR20180018069A (ko) 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
KR20200021253A (ko) 디코더, 그것의 동작 방법 및 메모리 시스템
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
KR101574208B1 (ko) 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그리고 그것의 동작 방법
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元