KR20150091693A - 플래쉬 메모리 읽기 방법 - Google Patents

플래쉬 메모리 읽기 방법 Download PDF

Info

Publication number
KR20150091693A
KR20150091693A KR1020140012214A KR20140012214A KR20150091693A KR 20150091693 A KR20150091693 A KR 20150091693A KR 1020140012214 A KR1020140012214 A KR 1020140012214A KR 20140012214 A KR20140012214 A KR 20140012214A KR 20150091693 A KR20150091693 A KR 20150091693A
Authority
KR
South Korea
Prior art keywords
decision decoding
soft decision
read
flash memory
hard
Prior art date
Application number
KR1020140012214A
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 KR1020140012214A priority Critical patent/KR20150091693A/ko
Priority to US14/601,659 priority patent/US9647695B2/en
Publication of KR20150091693A publication Critical patent/KR20150091693A/ko

Links

Images

Classifications

    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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

Landscapes

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

Abstract

본 발명은 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위한 플래쉬 메모리의 읽기 방법에 대하여 개시된다. 플래쉬 메모리의 읽기 방법은, 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계와, 경판정 디코딩할 수 없었을 경우 독출 데이터에 대하여 연판정 디코딩하는 단계를 포함한다. 연판정 디코딩하는 단계는 메모리 셀들의 문턱 전압 분포에 따라 최대 이터레이션 회수를 변경하여 수행한다. 경판정 및 연판정 디코딩하는 단계는 경판정 및 연판정 디코딩 스테이지의 성공률에 따라 경판정 및 연판정 디코딩의 최대 이터레이션 회수를 변경하여 수행한다.

Description

플래쉬 메모리 읽기 방법 {Read method of flash memory}
본 발명은 메모리 제어 방법에 관한 것으로, 특히 플래쉬 메모리 셀들의 문턱 전압 분포에 따라 다양한 디코딩 방법들을 이용하는 플래쉬 메모리 읽기 방법들에 관한 것이다.
반도체 메모리 장치는 에러 정정 코드들에 기초한 인코딩 및 디코딩 기술을 이용하여 데이터 에러를 검출 및 정정한다. 에러 정정 코드들 중에서 확률 기반 반복 연산을 이용하는 에러 정정 코드인 저밀도 패리티 체크(Low Density Parity Check: LDPC) 코드가 주목받고 있다. LDPC 코드를 이용한 플래쉬 메모리의 읽기 처리 과정에서 디코딩 시간을 단축시킬 수 있는 방법이 요구된다.
본 발명이 이루고자 하는 기술적 과제는, 플래쉬 메모리 셀들의 문턱 전압 분포에 따라 다양한 디코딩 방법들을 이용하는 플래쉬 메모리 읽기 방법들을 제공하는 데 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 일면에 따른 플래쉬 메모리 읽기 방법은, 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위하여, 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계와, 경판정 디코딩할 수 없었을 경우 독출 데이터에 대하여 연판정 디코딩하는 단계를 포함하고, 연판정 디코딩하는 단계는 메모리 셀들의 문턱 전압 분포에 따라 최대 이터레이션 회수를 변경하여 수행한다.
본 발명의 실시예들에 따라, 연판정 디코딩하는 단계는 문턱 전압 분포의 인접 데이터 상태들에서, 경판정 읽기 전압과 경판정 읽기 전압의 저전압측의 제1 연판정 읽기 전압 사이의 문턱 전압을 갖는 제1 셀 수와 경판정 읽기 전압과 경판정 읽기 전압의 고전압측의 제2 연판정 읽기 전압 사이의 문턱 전압을 갖는 제2 셀 수를 이용하여 최대 이터레이션 회수를 변경할 수 있다.
본 발명의 실시예들에 따라, 제1 셀 수와 제2 셀 수의 차가 제1 임계치 이상인 경우, 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정될 수 있다.
본 발명의 실시예들에 따라, 제1 셀 수와 제2 셀 수의 차가 제2 임계치 이하인 경우, 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정될 수 있다.
본 발명의 실시예들에 따라, 제1 셀 수와 제2 셀 수의 합이 제3 임계치 이상인 경우, 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정될 수 있다.
본 발명의 실시예들에 따라, 플래쉬 메모리의 읽기 방법은 경판정 디코딩할 수 없었을 경우, 제1 셀 수와 제2 셀 수의 측정을 실시하는 단계를 더 포함할 수 있다.
본 발명의 다른 면에 따른 플래쉬 메모리 읽기 방법은, 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위하여, 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계와, 경판정 디코딩할 수 없었을 경우 독출 데이터에 대하여 연판정 디코딩하는 단계를 포함하고, 경판정 디코딩하는 단계는 경판정 디코딩 스테이지의 성공률에 따라 경판정 디코딩의 최대 이터레이션 회수를 변경하여 수행한다.
본 발명의 실시예들에 따라, 연판정 디코딩하는 단계는 연판정 디코딩 스테이지의 성공률에 따라 연판정 디코딩의 최대 이터레이션 회수를 변경하여 수행할 수 있다.
본 발명의 실시예들에 따라, 경판정 디코딩하는 단계는 해당 경판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 경판정 디코딩 스테이지인 경우, 변경된 경판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정될 수 있다.
본 발명의 실시예들에 따라, 경판정 디코딩하는 단계는 해당 경판정 디코딩 스테이지가 가장 높은 성공률을 갖는 경판정 디코딩 스테이지인 경우, 변경된 경판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정될 수 있다.
본 발명의 실시예들에 따라, 연판정 디코딩하는 단계는 해당 연판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 연판정 디코딩 스테이지인 경우, 변경된 연판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정될 수 있다.
본 발명의 실시예들에 따라, 연판정 디코딩하는 단계는 해당 연판정 디코딩 스테이지가 가장 높은 성공률을 갖는 연판정 디코딩 스테이지인 경우, 변경된 연판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정될 수 있다.
본 발명의 실시예들에 따라, 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률은 플래쉬 메모리의 메모리 셀 어레이에 저장될 수 있다.
본 발명의 실시예들에 따라, 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률은 플래쉬 메모리의 제조 공정 후 테스트 과정에서 읽기 동작의 결과로 얻어질 수 있다.
본 발명의 실시예들에 따라, 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률은 플래쉬 메모리의 사용 중에 읽기 동작의 결과로 얻어질 수 있다.
상술한 본 발명의 플래쉬 메모리 읽기 방법에 의하면, 메모리 셀의 문턱 전압이 시프트되어 에러 정정 확률이 작은 경우 연판정 디코딩의 최대 이터레이션 회수를 적게 변경하여 연판정 디코딩을 수행함에 따라 연판정 디코딩 소요 시간을 줄인다. 그리고, 에러 정정 확률이 높은 경우 연판정 디코딩의 최대 이터레이션 회수를 많게 변경하여 연판정 디코딩을 수행함에 따라, 연판정 디코딩 효율을 높인다.
또한, 에러 정정 확률이 작은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 적게 변경하여 경판정 및 연판정 디코딩을 수행함에 따라, 경판정 및 연판정 디코딩 소요 시간을 줄인다. 그리고, 에러 정정 확률이 높은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 많게 변경하여 경판정 및 연판정 디코딩을 수행함에 따라, 경판정 및 연판정 디코딩 효율을 높인다.
도 1은 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 2는 도 1에 도시된 메모리 콘트롤러의 상세 구성을 예시적으로 보여주는 도면이다.
도 3은 도 1에 도시된 플래쉬 메모리의 상세 구성을 예시적으로 보여주는 도면이다.
도 4는 도 3의 메모리 셀 어레이의 상세 구성을 예시적으로 보여주는 도면이다.
도 5, 도 6a및 도 6b는 프로그램 동작에 의해 멀티 비트 플래쉬 메모리의 각 셀에 형성된 문턱 전압 분포를 예시적으로 보여주는 도면들이다.
도 7은 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 설명하기 위한 인접한 데이터 상태들을 보여주는 도면이다.
도 8 및 도 9는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들에 이용되는 LDPC 디코딩 방법을 설명하는 도면이다.
도 10a 및 도 10b는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제1 예의 플로우챠트이다.
도 11a 및 도 11b는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제2 예의 플로우챠트이다.
도 12a 및 도 12b는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제3 예의 플로우챠트이다.
도 13a 및 도 13b는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제4 예의 플로우챠트이다.
도 14a 및 도 14b는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제5 예의 플로우챠트이다.
도 15는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 채용하는 컴퓨팅 시스템을 설명하는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
반도체 메모리 장치는 DRAM, SRAM등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래쉬 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단되면 저장된 데이터를 잃지만, 불휘발성 메모리 장치는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 특히, 플래쉬 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 가지기 때문에, 컴퓨터 시스템 등에서 저장 매체로 광범위하게 사용되고 있다.
플래쉬 메모리는 각각의 메모리 셀에 저장되는 비트 수에 따라서 각각의 메모리 셀에 저장 가능한 데이터 상태들이 결정될 수 있다. 하나의 메모리 셀에 1-비트 데이터를 저장하는 메모리 셀을 싱글 비트 셀(single-bit cell) 또는 싱글 레벨 셀(single-level cell: SLC)이라 한다. 그리고 하나의 메모리 셀에 멀티 비트 데이터(예를 들어, 2 비트 이상)를 저장하는 메모리 셀을 멀티 비트 셀(multi-bit cell), 멀티 레벨 셀(multi-level cell: MLC) 또는 멀티 스테이트 셀(multi-state cell)이라 한다. 멀티 비트 셀은 메모리의 고집적화에 유리한 장점을 갖는다. 그러나 하나의 메모리 셀에 프로그램되는 비트 수가 증가할수록 신뢰성은 떨어지고, 판독 실패율(read failure rate)은 증가하게 된다.
예를 들어, 하나의 메모리 셀에 k 개의 비트를 프로그램하려면, 2k 개의 문턱 전압들 중 어느 하나가 메모리 셀에 형성되어야 한다. 메모리 셀들 간의 미세한 전기적 특성의 차이로 인해, 동일한 데이터가 프로그램된 메모리 셀들의 문턱 전압들은 일정한 범위의 문턱 전압 분포(threshold voltage distribution)를 형성할 수 있다. 각각의 문턱 전압 분포는 k개의 비트에 의해 생성될 수 있는 2k 개의 데이터 값 각각에 대응될 수 있다.
그런데 문턱 전압 분포들이 배치될 수 있는 전압 윈도우(voltage window)는 제한되어 있기 때문에, k가 증가할수록 인접한 문턱 전압들 사이의 거리는 줄어들게 되고, 인접한 문턱 전압 분포들이 서로 중첩될 수 있다. 인접한 문턱 전압 분포들이 중첩됨에 따라, 읽혀진 데이터에는 많은 에러 비트들이 포함될 수 있다. 따라서, 멀티 비트 데이터를 저장하는 플래쉬 메모리에서 읽혀진 데이터의 읽기 에러를 효율적으로 검출 및 정정할 수 있는 방안이 요구된다.
플래쉬 메모리는 에러 정정 코드들에 기초한 인코딩 및 디코딩 기술을 이용하여 데이터 에러를 검출 및 정정할 수 있다. 에러 정정 코드들 중에서 확률 기반 반복 연산을 이용하는 에러 정정 코드인 저밀도 패리티 체크(LDPC; Low Density Parity Check) 코드가 주목받고 있다. 플래쉬 메모리는 LDPC 코드를 이용한 디코딩 처리를 통하여 읽혀진 데이터의 읽기 에러를 검출 및 정정하여 데이터 판정을 수행할 수 있다. 본 발명에서는 LDPC 디코딩 방법을 이용하여 플래쉬 메모리의 읽기 에러를 정정하는 방법에 대하여 기술된다.
도 1은 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 이용하는 메모리 시스템의 구성을 보여주는 도면이다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 콘트롤러(200)와 플래쉬 메모리(300)로 구성될 수 있다. 메모리 콘트롤러(200)는 플래쉬 메모리(300)를 제어하도록 구성될 수 있다. 메모리 콘트롤러(200)는 플래쉬 메모리(300)로부터 읽혀진 데이터의 에러를 정정하기 위한 에러 정정 회로(Error Correction Circuit: ECC, 230)를 포함할 수 있다. 에러 정정 회로(230)에 적용되는 에러 정정 방식은 경판정(Hard Decision: HD) 방식과 연판정(Soft Decision: SD) 방식으로 구분될 수 있다.
경판정 방식은 소정의 읽기 전압(Vread)을 인가하였을 때 메모리 셀의 온/오프 특성에 따라 읽혀진 데이터(이하, 경판정 데이터라 칭함)와 에러 정정 부호(Error Correction Code)만을 이용하여 데이터의 에러를 정정하는 방식이다. 연판정 방식은 경판정 데이터 및 에러 정정 부호 이외에 경판정 데이터의 신뢰성에 대한 부가 정보(이하, 신뢰성 데이터)를 추가적으로 이용하여 데이터의 에러를 정정하는 방식이다. 본 발명에서는 보다 정교한 에러 정정을 수행하고 에러 정정에 소요되는 시간을 줄이기 위해, 경판정 방식 및/또는 연판정 방식에서 에러 정정을 수행하는 회수를 변경하는 것에 대하여 설명될 것이다.
메모리 콘트롤러(200)는 플래쉬 메모리(300)의 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위하여 플래쉬 메모리 읽기 방법을 이용한다. 플래쉬 메모리 읽기 방법은, 플래쉬 메모리(300)로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계와, 경판정 디코딩할 수 없었을 경우 독출 데이터에 대하여 연판정 디코딩하는 단계를 포함한다. 연판정 디코딩하는 단계는 메모리 셀들의 문턱 전압 분포에 따라 LDPC 디코딩의 최대 이터레이션 회수를 변경하여 수행할 수 있다. 또한, 경판정 및 연판정 디코딩하는 단계는 경판정 및 연판정 디코딩 스테이지의 성공률에 따라 경판정 및 연판정 디코딩의 최대 이터레이션 회수를 변경하여 수행할 수 있다.
플래쉬 메모리(300)는 읽기 동작시 멀티 비트 데이터를 저장하는 메모리 셀로부터 읽혀진 독출 데이터를 메모리 콘트롤러(200)의 에러 정정 회로(230)로 제공할 수 있다. 플래쉬 메모리(300)에는 플래쉬 메모리(300)의 제조 공정 후 테스트 과정에서 읽기 동작의 결과로 얻어지는 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률이 저장될 수 있다. 또한, 플래쉬 메모리(300)에는 플래쉬 메모리의 사용 중에 읽기 동작의 결과로 얻어지는 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률이 저장될 수 있다.
도 2는 도 1에 도시된 메모리 콘트롤러(200)의 상세 구성을 예시적으로 보여주는 도면이다.
도 2를 참조하면, 메모리 컨트롤러(200)는 프로세서(210), 에러 정정 회로(230), RAM(Random Access Memory; 240), 호스트 인터페이스(250), 메모리 인터페이스(260) 및 버스(270)를 포함할 수 있다. 에러 정정 회로(230)는 LDPC 인코딩 처리하는 인코더(232)와 LDPC 디코딩 처리하는 디코더(234)를 포함할 수 있다.
프로세서(210)는 버스(270)를 통하여 에러 정정 회로(230), RAM(240), 호스트 인터페이스(250) 및 메모리 인터페이스(260)와 전기적으로 접속된다. 버스(270)는 메모리 컨트롤러(200)의 구성 수단들 간의 정보를 전송하는 전송로를 의미한다. 프로세서(210)는 메모리 시스템(100, 도 1)의 전반적인 동작을 제어한다. 세부적으로, 호스트로부터 수신되는 커맨드를 해독하고, 해독된 결과에 따른 동작을 수행하도록 메모리 시스템(100)을 제어한다.
프로세서(210)는 리드(read) 동작 시에는 리드 커맨드 및 어드레스를 플래쉬 메모리(200)에 제공하고, 라이트(write) 동작 시에는 라이트 커맨드, 어드레스, 그리고 인코딩 처리된 코드워드를 플래쉬 메모리(300)에 제공한다. 그리고, 프로세서(210)는 RAM(240)에 저장된 메타 데이터를 이용하여 호스트로부터 수신되는 논리적 주소를 물리적 페이지 주소로 변환시키는 처리를 수행한다.
RAM(240)에는 호스트로부터 전송된 데이터 및 프로세서(210)에서 생성된 데이터가 임시로 저장되거나 플래쉬 메모리(300)에서 읽어낸 데이터가 임시로 저장된다. 또한, RAM(240)에는 플래쉬 메모리(300)로부터 읽어낸 메타 데이터도 저장될 수 있다. 메타 데이터(meta data)는 플래쉬 메모리(300)를 관리하기 위하여 메모리 시스템(100)에서 생성된 관리 정보이다. 메타 데이터에는 논리적 주소(Logical Address)를 플래쉬 메모리(300)의 물리적 페이지 주소(PPA)로 변환시키는데 이용되는 매핑(mapping) 테이블 정보가 포함되어 있다. 메타 데이터에는 플래쉬 메모리(300)의 저장 공간을 관리하기 위한 정보들도 포함할 수 있다. 그리고 RAM(240)에는 플래쉬 메모리(300)로부터 읽어낸 저밀도 패리티 체크(LDPC) 이분 그래프를 조작하여 획득한 스케줄링 정보도 저장될 수 있다. 스케줄링 정보는 LDPC 이분 그래프의 체크 노드들과 변수 노드들 간의 메시지 교환 순서를 나타내는 정보가 포함될 수 있다. RAM(240)은 DRAM, SRAM 등으로 구현될 수 있다.
호스트 인터페이스(250)는 호스트와의 데이터 교환 프로토콜을 구비하고 플래쉬 메모리(300)와 호스트를 상호 연결한다. 호스트 인터페이스(250)는 ATA(Advanced Technology Attachment) 인터페이스, SATA(Serial Advanced Technology Attachment) 인터페이스, PATA(Parallel Advanced Technology Attachment) 인터페이스, USB(Universal Serial Bus) 또는 SAS(Serial Attached Small Computer System) 인터페이스, SCSI(Small Computer System Interface), eMMC(embedded Multi Media Card) 인터페이스, UFS(Unix File System) 인터페이스로 구현할 수 있다. 호스트 인터페이스(250)는 프로세서(210)의 제어에 따라서 호스트와 커맨드, 어드레스 및 데이터를 교환할 수 있다.
메모리 인터페이스(260)는 플래쉬 메모리(300)와의 인터페이스를 지원하도록 구성될 수 있다. 메모리 인터페이스(260)는 복수 개의 채널들을 통하여 소프트웨어 및 하드웨어 인터리브 동작들이 선택적으로 수행되도록 구성될 수도 있다.
프로세서(210)는 메모리 시스템(100)에 전원이 공급되면 플래쉬 메모리(300)에 저장되어 있는 메타 데이터를 읽어내어 RAM(240)에 저장하도록 메모리 시스템(100)을 제어한다. 프로세서(210)는 플래쉬 메모리(300)에서 메타 데이터 변경을 발생시키는 동작에 따라서 RAM(240)에 저장된 메타 데이터를 업데이트 하도록 메모리 시스템(100)을 제어한다. 그리고, 프로세서(210)는 메모리 시스템(100)에서 파워 오프(POWER OFF) 되기 전에 RAM(240)에 저장되어 있는 메타 데이터를 플래쉬 메모리 장치(300)에 라이트하도록 메모리 시스템(100)을 제어한다.
프로세서(210)는 라이트 동작 시에는 호스트로부터 수신된 정보 워드를 인코더(232)에서 LDPC 인코딩 처리하고, 리드 동작 시에는 플래쉬 메모리(300)로부터 읽어낸 데이터를 디코더(234)에서 LDPC 디코딩 처리하도록 메모리 컨트롤러(200)를 제어한다.
인코더(232)는 호스트로 수신된 정보 워드에 LDPC 코드에 의해 명시된 다수의 패리티 비트들을 첨부하여 코드워드를 생성한다. 코드워드의 비트 수가 N이고, 정보 워드의 비트 수가 K이면, 패리티 비트 수는 (N-K)가 된다. LDPC 코드워드의 각각의 패리티 비트는 LDPC 코드를 만족시키도록 설정된다.
디코더(234)는 플래쉬 메모리(300)로부터 읽어낸 데이터를 코드워드 단위로 LDPC 디코딩 처리하여 정보 워드를 복원한다. LDPC 코드들은 태너 그래프(Tanner graph)로 불리는 이분(bipartite) 그래프에 의해 표시될 수 있다. 즉, 에지는 변수 노드를 체크 노드에만 연결할 수 있고, 변수 노드를 다른 변수 노드에, 또는 체크 노드를 다른 체크 노드에 연결할 수 없다. 이러한 그래프에서 한 세트의 노드들, 변수 노드(variable node)들은 코드워드의 비트들 및 다른 노드들의 세트에 대응하고, 체크 노드들로 불리는 제약 노드(constraint node)들은 코드를 정의하는 한 세트의 패리티 체크 제약들에 대응한다. 디코더(234)는 예로서, 도 8에 도시된 바와 같은 LDPC 이분 그래프에 기초하여 변수 노드들과 체크 노드들 간의 메시지를 교환하면서 에러 판정이 발생되지 않을 때까지 체크 노드 업데이트 및 변수 노드 업데이트를 반복적으로 실행한다.
도 3은 도 1에 도시된 플래쉬 메모리의 상세 구성을 예시적으로 보여주는 도면이다.
도 3을 참조하면, 플래쉬 메모리(300)는 낸드형 플래쉬 메모리로 구성되고, 메모리 셀 어레이(310), 행 선택 회로(X-SEL, 320), 페이지 버퍼 회로(330), 열 선택 회로(Y-SEL, 340), 제어 로직(350), 그리고 전압 발생 회로(360)를 포함할 수 있다.
메모리 셀 어레이(310)는, 도 4에 도시된 바와 같이, 비트라인들(BL0~BLn-1)에 각각 연결된 복수의 셀 스트링들(또는 낸드 스트링들, 311)을 포함할 수 있다. 각 열의 셀 스트링(311)은 스트링 선택 라인(String Selection Line; SSL)에 연결되는 스트링 선택 트랜지스터(SST), 복수의 워드라인들(WLO ~ WLm-1)에 각각 연결된 복수의 메모리 셀들(MC0 ~ MCm-1), 그리고 접지 선택 라인(Ground Section Line; GSL)에 연결된 접지 선택 트랜지스터(GST)를 포함할 수 있다. 스트링 선택 트랜지스터(SST)는 비트라인과 스트링 채널 사이에 연결되고, 접지 선택 트랜지스터(GST)는 스트링 채널과 공통 소스 라인(Common Source Line; CSL) 사이에 연결된다. 셀 스트링들(311)은 대응하는 비트라인들(BL0~BLn-1)에 각각 전기적으로 연결된다.
메모리 셀 어레이(310)에는 일반적인 사용자 데이터 또는 메인 데이터가 저장되고, 사용자 데이터 외에 플래쉬 메모리(300)의 구동에 필요한 메타 데이터 (예를 들면, 플래쉬 변환 계층 (Flash Transition Layer: FTL)에 의한 맵핑 정보)가 저장될 수 있다. 플래쉬 변환 계층은 플래쉬 메모리(300)를 효율적으로 사용하도록 한다. 플래쉬 변환 계층은 프로세서(210)에서 제공한 논리적 어드레스(logical address)를 플래쉬 메모리에서 사용 가능한 물리적 어드레스(physical address)로 변환하는 역할을 한다.
메모리 셀 어레이(310)에는 플래쉬 메모리(300)의 제조 공정 후 테스트 과정에서 읽기 동작의 결과로 얻어지는 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률이 저장될 수 있다. 또한, 플래쉬 메모리의 사용 중에 읽기 동작의 결과로 얻어지는 경판정 디코딩 스테이지의 성공률과 연판정 디코딩 스테이지의 성공률이 저장될 수 있다.
페이지 버퍼(330)는 복수의 비트라인들(BL0~BLn-1)을 통해 셀 어레이(310)에 연결된다. 페이지 버퍼(330)는 선택된 워드라인에 연결된 메모리 셀들에 기입할 데이터를 임시로 저장하는 기입 드라이버로 동작하거나 또는 선택된 워드라인에 연결된 메모리 셀들로부터 독출된 데이터를 감지 증폭하는 감지 증폭기로 동작할 수 있다.
제어 로직(350)는 플래시 메모리(300)의 프로그램(program) 동작, 읽기(read) 동작 그리고 소거 동작과 관련된 제반 동작을 제어할 수 있다. 전압 발생 회로(360)는 동작 모드에 따라서 각각의 워드라인들로 공급될 워드라인 전압들(예를 들면, 프로그램 전압(Vpgm), 읽기 전압(Vread), 패스 전압(Vpass) 등)과, 메모리 셀들이 형성된 벌크(예를 들면, 웰 영역)로 공급될 전압을 생성할 수 있다. 전압 발생 회로(360)의 전압 생성 동작은 제어 로직(350)에 의해 제어될 수 있다. 전압 발생 회로(360)에서 셍성되는 워드라인 전압들 중 읽기 전압(Vread)은 읽기 동작시 데이터를 읽는 기준 읽기 전압으로 사용될 수 있다.
행 선택 회로(320)는 제어 로직(350)의 제어에 응답하여 메모리 셀 어레이(310)의 메모리 블록들(또는 섹터들) 중 하나를 선택하고, 선택된 메모리 블락의 워드라인들 중 하나를 선택할 수 있다. 행 선택 회로(320)는 제어 로직(350)의 제어에 응답하여 전압 발생 회로(360)로부터 생성된 워드라인 전압을 선택된 워드라인 및 비선택된 워드라인들로 각각 제공할 수 있다.
열 선택 회로(340)는 읽기 동작시 열 어드레스 정보(Y-addr)에 응답하여 페이지 버퍼(330)로부터 읽혀진 데이터를 외부(예를 들면, 메모리 콘트롤러(200) 또는 호스트)로 출력할 수 있다.
도 5, 도 6a및 도 6b는 프로그램 동작에 의해 멀티 비트 플래쉬 메모리의 각 셀에 형성된 문턱 전압 분포를 예시적으로 보여주는 도면들이다.
도 5를 참조하면, 멀티 비트, 예컨대 3-비트의 데이터가 프로그램된 메모리 셀의 문턱 전압은 8 레벨의 데이터 상태들(E, P1-P7) 중 어느 하나에 대응할 수 있다. 각각의 데이터 상태는 소정의 문턱 전압 윈도우(threshold voltage window)를 형성할 수 있다. 하나의 메모리 셀에는 3 비트의 데이터가 저장 가능하고, 각각의 비트는 여러 단계의 프로그램 동작을 통해 각각 독립적으로 프로그램될 수 있다. 예를 들면, 3-비트 MLC인 경우, 먼저 3-비트 중 1번째 비트(1st bit)(즉, 최하위 비트(Least Significant Bit: LSB)에 대한 프로그램이 수행될 수 있다. 그리고 나서, 2번째 비트 및 3번째 비트에 대한 프로그램이 순차적으로 수행될 수 있다.
프로그램된 MLC의 이상적인 데이터 상태는 인접 데이터 상태와 소정의 전압 간격이 유지되어, 읽기 마진(read margin)이 충분히 확보될 수 있어야 한다. 그러나, 멀티 비트 플래쉬 메모리의 실제 구현에 있어서 각 데이터 상태의 문턱 전압 분포는 도 6a 및 도 6b에 도시된 바와 같이, 점선 표시 부분으로 변형될 수 있다. 도 6a는 초기 문턱 전압 분포(실선 표시)에 비해 저전압측이 퍼진 분포(점선 표시)를 나타내고, 도 6b는 고전압측이 퍼진 분포를 나타낸다. 이러한 현상은 하나의 메모리 셀에 저장된 데이터의 비트 수가 증가함에 따라 더욱 심각해질 것이다. 또한, 이러한 현상은 전하 손실, 시간의 경과, 온도의 증가, 인접한 셀의 프로그래밍시 생기는 커플링, 인접한 셀의 읽기, 셀 결함 등과 같은 다양한 원인들로 인해 더욱 심각해질 것이다. 이러한 원인들로 인해 발생되는 읽기 에러들은 플래쉬 메모리의 문턱 전압 분포에 따른 디코딩 방법들을 이용한 읽기 방법을 통하여 해결될 수 있다.
도 7은 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 설명하기 위한 인접한 데이터 상태들을 보여주는 도면이다.
도 7을 참조하면, 메모리 셀에 프로그램된 데이터 상태들은 인접 데이터 상태(Si, Si+1)와 소정의 전압 간격이 유지되어, 읽기 마진이 충분히 확보될 수 있어야 한다. 읽기 기준 전압은 이상적인 데이터 상태들을 근거로 설정될 수 있다. 실선으로 표시된 이상적인 데이터 상태들(Si, Si+1)은 701로 표시된 기준 읽기 전압에 의해서 구별될 수 있다. 기준 읽기 전압(701)을 이용하여 수행되는 읽기 동작을 경판정 읽기 동작이라 한다. 기준 읽기 전압(701)은 경판정 읽기 전압이라 칭할 수 있다.
그러나, 각 데이터 상태(Si, Si+1)는 점선으로 표시된 바와 같이 이상적이지 못한 형태로 변형될 수 있다. 만일 실선으로 표시된 데이터 상태들(Si, Si+1)이 점선으로 표시된 것처럼 변화하게 되면, 경판정 읽기 동작만을 이용하여 변화된 데이터 상태들(Si, Si+1)을 구별하는 게 어려워 진다. 이 경우, 변화된 데이터 상태들(Si, Si+1)의 구별은 연판정 읽기 동작을 통해 행해질 수 있다. 연판정 읽기 동작에 의해 획득된 신뢰성 데이터는 경판정 데이터와 함께 에러 정정 회로(230)로 제공되어 변화된 데이터 상태들(Si, Si+1)이 가질 수 있는 에러를 정정하는데 사용될 수 있다. 연판정 읽기 동작은 기준 읽기 전압(701)의 저전압측과 고전압측에 702와 703으로 표시된 제1 및 제2 연판정 읽기 전압들을 이용하여 수행될 수 있다.
보다 정확한 데이터 판정 및 에러 정정을 위하여, 본 발명에서는 인접 데이터 상태들(Si, Si+1)의 문턱 전압 분포에서, 경판정 읽기 전압(701)과 경판정 읽기 전압(701)의 저전압측의 제1 연판정 읽기 전압(702) 사이의 문턱 전압을 갖는 셀 수와, 경판정 읽기 전압(701)과 경판정 읽기 전압(701)의 고전압측의 제2 연판정 읽기 전압(703) 사이의 문턱 전압을 갖는 셀 수를 이용하는 읽기 방법이 적용될 수 있다.
변화된 데이터 상태들(Si, Si+1)에서, 제1 연판정 읽기 전압(702) 보다 높고 경판정 읽기 전압(701) 보다 낮은 문턱 전압을 갖는 셀 수를 A 라고 가정하고, 경판정 읽기 전압(701) 보다 높고 연판정 읽기 전압보다 낮은 문턱 전압을 갖는 셀 수를 B 라고 가정하자. 본 발명에서는 연판정 읽기 동작에서 A, B 셀 수를 이용하여 최대 이터레이션 회수를 변경할 수 있다.
도 8 및 도 9는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법에 이용되는 LDPC 디코딩 방법을 설명하는 도면이다.
도 8을 참조하면, 태너 그래프(Tanner graph)로 불리는 이분(bipartite) 그래프를 이용하여 LDPC 디코딩을 수행할 수 있다. 태너 그래프는 변수 노드와 체크 노드로 구성될 수 있다. 변수 노드는 플래쉬 메모리로부터 읽혀진 데이터 비트, 즉, 코드워드에 대응하고, 체크 노드는 각각이 접속하는 변수 노드 사이의 패리티 검사 제약에 대응한다. LDPC 디코딩은 태너 그래프에서 메시지를 송수신하고 SPA (Sum Product Algorithm)을 이용하여 디코딩을 수행한다. 변수 노드와 체크 노드 사이의 메시지 교환의 1 왕복분을 "1 이터레이션" 이라 칭한다.
충분한 디코딩 특성을 얻기 위하여, 도 9에 도시된 바와 같이, 복수회의 이터레이션 처리가 필요하다. 복수회의 이터레이션 처리를 통하여, 노드 사이에 송수신되는 메시지 중 변수 노드로부터 체크 노드로의 메시지 계산과 체크 노드로부터 변수 노드로의 메시지 계산의 결과에 따라 수신된 데이터 비트를 추정할 수 있다.
그런데, LDPC 디코딩에서 이터레이션 회수 마다 메시지 계산에 소요되는 시간이 디코딩 시간에 영향을 미칠 수 있다. 특히, 데이터 판독시 메모리 셀의 문턱 전압 분포가 어느 데이터 상태에 존재하는지 정확히 알기 어려운 경우, 설정된 복수회의 이터레이션대로 메시지 계산을 수행하는 것은 LDPC 디코딩 시간을 증가시킬 수 있다. 이에 따라 디코딩 효율이 떨어지는 문제점이 야기될 수 있다.
본 발명의 플래쉬 메모리 읽기 방법에서는 메모리 셀의 문턱 전압이 시프트되어 에러 정정 확률이 작은 경우 연판정 디코딩의 최대 이터레이션 회수를 적게 변경하고, 에러 정정 확률이 높은 경우 연판정 디코딩의 최대 이터레이션 회수를 많게 변경하는 방법에 대하여 설명된다. 또한, 에러 정정 확률이 작은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 적게 변경하여 경판정 및 연판정 디코딩 소요 시간을 줄이고, 에러 정정 확률이 높은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 많게 변경하는 방법에 대하여 설명된다. 이러한 플래쉬 메모리의 읽기 방법을 통해 에러 정정 동작에서의 디코딩 시간을 줄이고 디코딩 효율을 향상시키는 것이 가능하다.
도 10은 본 발명의 제1 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제1 예의 플로우챠트이다.
<S1002> 단계
플래쉬 메모리(300)로부터 읽혀진 데이터에 대하여 경판정 읽기 동작이 수행된다. 경판정 읽기 동작을 수행하기 위하여, 경판정 판독 전압(Vread)이 인가된다. 예컨대, 도 5와 같이, 3 비트 데이터를 기록하는 메모리 셀의 경우 HD01-HD07의 7개 판독 전압(Vread)이 인가된다. 즉, N 비트(N은 2 이상의 자연수)의 데이터를 기록하는 메모리 셀의 데이터를 판독하기 위한 경판정 판독 전압은 (2N-1)개 이다.
<S1004> 단계
경판정 판독 전압에 의해 판독된 경판정 판독 데이터에 대하여 경판정 디코딩이 수행된다.
<S1006> 단계
경판정 디코딩할 수 있었을 경우(예), 경판정 디코딩 데이터가 호스트에 송신된다(S1028).
<S1008>단계
경판정 디코딩할 수 없었을 경우(S1006, 아니오), 에러 정정 능력이 높은 연판정 읽기 동작이 수행된다. 연판정 읽기 동작을 수행하기 위하여, 연판정 판독 전압이 인가된다. 예컨대, 도 7에 도시된 바와 같이, 경판정 판독 전압(701)의 저전압측과 고전압측 각각의 제1 및 제2 연판정 판독 전압(702, 703) 2개가 인가된다. 3 비트 데이터를 판독하기 위한 연판정 판독 전압은 14개 이다. N 비트 데이터를 판독하기 위한 연판정 판독 전압은 2x(2N-1)개 이다. 실시예에 따라, 연판정 판독 전압은 4x(2N-1)개 일 수 있다.
<S1010> 단계
연판정 디코딩 시간을 줄이기 위하여, 제1 연판정 판독 전압(702)과 경판정 판독 전압(701) 사이의 문턱 전압을 갖는 메모리 셀 수(A)와 경판정 판독 전압(701)과 제2 연판정 판독 전압(703) 사이의 문턱 전압을 갖는 메모리 셀 수(B)를 측정한다.
<S1012> 단계
측정 결과로부터, 만약 A 메모리 셀 수와 B 메모리 셀 수 사이의 차(A-B)에 해당하는 메모리 셀 수가 소정의 제1 임계치(THRESHOLD1) 보다 많은지를 판단한다. 메모리 셀의 문턱 전압 분포가 도 5에 도시된 바와 같다면, (A-B)에 해당하는 메모리 셀 수는 이상적으로 거의 0에 가까울 것이다. 그러나, 도 6a 및 도 6b와 같이 문턱 전압 분포가 시프트된다면, (A-B)에 해당하는 메모리 셀 수는 변화될 것이다. 변화된 (A-B) 메모리 셀 수가 제1 임계치(THRESHOLD1) 보다 많다는 것은 에러 정정 확률이 낮을 것임이 예상된다. 이는 미리 설정된 최대 이터레이션 회수대로 연판정 디코딩의 반복 계산을 수행한다면 에러 정정 처리에 장시간이 소요될 것이 예상된다.
<S1014> 단계
측정 결과(S1010)로부터, (A-B)에 해당하는 메모리 셀 수가 제1 임계치(THRESHOLD1) 보다 적은 경우, 미리 설정된 최대 이터레이션 회수대로 연판정 디코딩이 수행된다.
<S1016, S1018> 단계
측정 결과(S1010)로부터, (A-B)에 해당하는 메모리 셀 수가 제1 임계치(THRESHOLD1) 보다 많은 경우, 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 연판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것이 바람직하다.
<S1020> 단계
연판정 디코딩할 수 있었던 경우(예), 연판정 디코딩 데이터가 호스트에 송신된다(S1028).
<S1022> 단계
연판정 디코딩할 수 없었던 경우(S1020, 아니오), 경판정 판독 전압(Vread)을 변경한다.
<S1024> 단계
해당 디코딩 스테이지가 설정된 최대 디코딩 스테이지인지를 판단한다. 최대 디코딩 스테이지인 경우(예), 연판정 디코딩할 수 없었기 때문에 에러 신호가 호스트로 송신된다(S1026).
최대 디코딩 스테이지가 아닌 경우, 변경된 경판정 판독 전압(Vread)를 이용하여(S1022) 경판정 읽기 동작을 다시 실시한다(S1002).
본 발명의 플래쉬 메모리 읽기 방법의 제1 실시예에서는 메모리 셀의 문턱 전압이 시프트되어 에러 정정 확률이 작은 경우 연판정 디코딩의 최대 이터레이션 회수를 적게 변경하여 연판정 디코딩을 수행한다. 이에 따라, 연판정 디코딩 소요 시간을 줄일 수 있다.
도 11은 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제2 예의 플로우챠트이다. 도 11의 플로우챠트는 도 10의 플로우챠트와 거의 동일하므로, 동일한 구성 요소에는 동일한 참조 부호를 붙여 그 설명이 생략된다. 다른 구성 요소에 대하여 설명된다.
<S1012A> 단계
제1 연판정 판독 전압(702)과 경판정 판독 전압(701) 사이의 문턱 전압을 갖는 메모리 셀 수(A)와 경판정 판독 전압(701)과 제2 연판정 판독 전압(703) 사이의 문턱 전압을 갖는 메모리 셀 수(B)를 측정한 결과(S1010)로부터, 만약 A 메모리 셀 수와 B 메모리 셀 수 사이의 차(A-B)에 해당하는 메모리 셀 수가 소정의 제2 임계치(THRESHOLD2) 보다 작은지를 판단한다. (A-B) 메모리 셀 수가 제2 임계치(THRESHOLD2) 보다 작다는 것은 에러 정정 확률이 높을 것임이 예상될 수 있다. 에러 정정 확률이 높기 때문에, 미리 설정된 최대 이터레이션 회수 보다 많이 연판정 디코딩의 반복 계산이 수행된다면 읽기 데이터에 포함된 에러가 정정될 수 있을 것이다. 이는 보다 높은 정확도의 에러 정정 동작을 수행하는 것으로, 연판정 디코딩 효율을 높일 수 있다.
<S1016A, S1018A> 단계
측정 결과(S1010)로부터, (A-B)에 해당하는 메모리 셀 수가 제2 임계치(THRESHOLD2) 보다 적은 경우, 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수대로 연판정 디코딩을 수행한다. 변경된 최대 이터레이션 회수는 미리 설정된 최대 이터레이션 회수 보다 많게 설정되는 것이 바람직하다.
본 발명의 플래쉬 메모리 읽기 방법의 제2 실시예에서는 메모리 셀의 문턱 전압이 시프트되어 에러 정정 확률이 높은 경우 연판정 디코딩의 최대 이터레이션 회수를 많게 변경하여 연판정 디코딩을 수행한다. 이에 따라, 연판정 디코딩 효율을 높일 수 있다.
도 12는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제3 예의 플로우챠트이다. 도 12의 플로우챠트는 도 10의 플로우챠트와 거의 동일하므로, 동일한 구성 요소에는 동일한 참조 부호를 붙여 그 설명이 생략된다. 다른 구성 요소에 대하여 설명된다.
<S1012B> 단계
제1 연판정 판독 전압(702)과 경판정 판독 전압(701) 사이의 문턱 전압을 갖는 메모리 셀 수(A)와 경판정 판독 전압(701)과 제2 연판정 판독 전압(703) 사이의 문턱 전압을 갖는 메모리 셀 수(B)를 측정한 결과(S1010)로부터, 만약 A 메모리 셀 수와 B 메모리 셀 수의 합(A+B)에 해당하는 메모리 셀 수가 소정의 제3 임계치(THRESHOLD3) 보다 많은지를 판단한다. (A+B) 메모리 셀 수가 제3 임계치(THRESHOLD3) 보다 많다는 것은 에러 정정 확률이 낮을 것임이 예상될 수 있다. 에러 정정 확률이 낮기 때문에, 미리 설정된 최대 이터레이션 회수대로 반복 계산을 수행하는 연판정 디코딩에 의한 에러 정정 처리에 장시간이 소요될 것이다.
<S1016B, S1018B> 단계
측정 결과(S1010)로부터, (A+B)에 해당하는 메모리 셀 수가 제3 임계치(THRESHOLD3) 보다 많은 경우, 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 연판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것이 바람직하다.
본 발명의 플래쉬 메모리 읽기 방법의 제3 실시예에서는 메모리 셀의 문턱 전압이 시프트되어 에러 정정 확률이 작은 경우 연판정 디코딩의 최대 이터레이션 회수를 적게 변경하여 연판정 디코딩을 수행한다. 이에 따라, 연판정 디코딩 소요 시간을 줄일 수 있다.
도 13은 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제4 예의 플로우챠트이다.
<S1302> 단계
경판정 읽기 동작과 연판정 읽기 동작을 수행하는 플래쉬 메모리의 읽기 동작을 통하여, 읽기 데이터에 포함된 에러를 정정할 수 있다. 에러를 정정한 읽기 동작의 결과를 바탕으로, 경판정 디코딩 스테이지 마다의 성공율과 연판정 디코딩 스테이지 마다의 성공율이 얻어질 수 있다. 읽기 동작의 결과는 플래쉬 메모리의 제조 공정후 테스트 과정에서 얻어질 수 있고, 플래쉬 메모리의 사용중에 얻어질 수 있다. 또한, 읽기 동작의 결과는 도 10 내지 도 12에서 설명된 플래쉬 메모리 읽기 방법을 통하여 얻어질 수도 있다.
읽기 동작의 결과로부터 얻어진 경판정 디코딩 스테이지 마다의 성공률과 연판정 디코딩 스테이지 마다의 성공률은 플래쉬 메모리(300, 도 3)에 저장될 수 있다. 플래쉬 메모리(300)의 메모리 셀 어레이(310) 내 사용자 영역으로 할당된 영역에 저장될 수 있다. 메모리 콘트롤러(200, 도 2) 내 에러 정정 회로(230)의 디코더(234)는 플래쉬 메모리(300)에 저장된 경판정 디코딩 스테이지들의 성공률들과 연판정 디코딩 스테이지들의 성공률들을 가져올 수 있다.
<S1304> 단계
경판정 디코딩 스테이지들의 성공률들 중에서 가장 낮은 성공률을 갖는 경판정 디코딩 스테이지를 찾고, 연판정 디코딩 스테이지들의 성공률들 중에서 가장 낮은 성공률을 갖는 연판정 디코딩 스테이지를 찾는다. 성공률이 낮은 경판정 디코딩 스테이지는 에러 정정 확률이 낮다는 것을 의미한다. 에러 정정 확률이 낮기 때문에, 미리 설정된 경판정 디코딩의 최대 이터레이션 회수대로 경판정 디코딩을 수행한다면 에러 정정 처리에 장시간이 소요될 것이 예상된다. 마찬가지로, 성공률이 낮은 연판정 디코딩 스테이지는 에러 정정 확률이 낮다는 것을 의미하므로, 미리 설정된 연판정 디코딩의 최대 이터레이션 회수대로 연판정 디코딩을 수행한다면 에러 정정 처리에 장시간이 소요될 것이 예상된다.
<S1306> 단계
플래쉬 메모리(300)로부터 읽혀진 데이터에 대하여 경판정 읽기 동작이 수행된다. 경판정 읽기 동작을 수행하기 위하여, 경판정 판독 전압(Vread)이 인가된다.
<S1308> 단계
해당 경판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 경판정 디코딩 스테이지인지를 판단한다.
<S1310> 단계
판단 결과(S1308)로부터, 해당 경판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 경판정 디코딩 스테이지가 아닌 경우, 미리 설정된 경판정 디코딩의 최대 이터레이션 회수대로 경판정 디코딩이 수행된다.
<S1312, S1314> 단계
판단 결과(S1308)로부터, 해당 경판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 경판정 디코딩 스테이지인 경우, 경판정 디코딩의 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 경판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것이 바람직하다.
<S1316> 단계
경판정 디코딩할 수 있었을 경우(예), 경판정 디코딩 데이터가 호스트에 송신된다(S1336).
<S1318>단계
경판정 디코딩할 수 없었을 경우(S1316, 아니오), 에러 정정 능력이 높은 연판정 읽기 동작이 수행된다. 연판정 읽기 동작을 수행하기 위하여, 연판정 판독 전압이 인가된다.
<S1320> 단계
해당 연판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 연판정 디코딩 스테이지인지를 판단한다.
<S1322> 단계
판단 결과(S1320)로부터, 해당 연판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 연판정 디코딩 스테이지가 아닌 경우, 미리 설정된 연판정 디코딩의 최대 이터레이션 회수대로 연판정 디코딩이 수행된다.
<S1324, S1326> 단계
판단 결과(S1320)로부터, 해당 연판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 연판정 디코딩 스테이지인 경우, 연판정 디코딩의 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 연판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것이 바람직하다.
<S1328> 단계
연판정 디코딩할 수 있었을 경우(예), 연판정 디코딩 데이터가 호스트에 송신된다(S1336).
<S1330>단계
연판정 디코딩할 수 없었을 경우(S1328, 아니오), 경판정 판독 전압(Vread)을 변경한다.
<S1332> 단계
해당 디코딩 스테이지가 설정된 최대 디코딩 스테이지인지를 판단한다. 최대 디코딩 스테이지인 경우(예), 연판정 디코딩할 수 없었기 때문에 에러 신호가 호스트로 송신된다(S1334).
최대 디코딩 스테이지가 아닌 경우, 변경된 경판정 판독 전압(Vread)를 이용하여 경판정 읽기 동작을 다시 실시한다(S1306).
본 발명의 플래쉬 메모리 읽기 방법의 제4 실시예에서는 에러 정정 확률이 작은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 적게 변경하여 경판정 및 연판정 디코딩을 수행한다. 이에 따라, 경판정 및 연판정 디코딩 소요 시간을 줄일 수 있다.
도 14는 본 발명의 다양한 실시예에 따른 플래쉬 메모리 읽기 방법을 설명하는 제5 예의 플로우챠트이다. 도 14의 플로우챠트는 도 13의 플로우챠트와 거의 동일하므로, 동일한 구성 요소에는 동일한 참조 부호를 붙여 그 설명을 생략한다. 다른 구성 요소에 대하여 설명된다.
<S1304A> 단계
플래쉬 메모리(300)로부터 경판정 디코딩 스테이지들의 성공률들과 연판정 디코딩 스테이지들의 성공률들을 가져오고(S1302), 경판정 디코딩 스테이지들의 성공률들 중에서 가장 높은 성공률을 갖는 경판정 디코딩 스테이지를 찾고, 연판정 디코딩 스테이지들의 성공률들 중에서 가장 높은 성공률을 갖는 연판정 디코딩 스테이지를 찾는다. 성공률이 높은 경판정 디코딩 스테이지는 에러 정정 확률이 높다는 것을 의미한다. 에러 정정 확률이 높기 때문에, 미리 설정된 최대 이터레이션 회수 보다 많이 경판정 디코딩의 반복 계산이 수행된다면 읽기 데이터에 포함된 에러가 정정될 수 있을 것이다. 이는 보다 높은 정확도의 에러 정정 동작을 수행하는 것으로, 경판정 디코딩 효율을 높일 수 있다.
<S1308A> 단계
해당 경판정 디코딩 스테이지가 가장 높은 성공률을 갖는 경판정 디코딩 스테이지인지를 판단한다.
<S1312A, S1314A> 단계
판단 결과(S1308A)로부터, 해당 경판정 디코딩 스테이지가 가장 높은 성공률을 갖는 경판정 디코딩 스테이지인 경우, 경판정 디코딩의 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 경판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정되는 것이 바람직하다.
<S1320A> 단계
해당 연판정 디코딩 스테이지가 가장 높은 성공률을 갖는 연판정 디코딩 스테이지인지를 판단한다.
<S1324A, S1326A> 단계
판단 결과(S1320A)로부터, 해당 연판정 디코딩 스테이지가 가장 높은 성공률을 갖는 연판정 디코딩 스테이지인 경우, 연판정 디코딩의 최대 이터레이션 회수를 변경하고, 변경된 최대 이터레이션 회수로 연판정 디코딩이 수행된다. 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정되는 것이 바람직하다.
본 발명의 플래쉬 메모리 읽기 방법의 제5 실시예에서는 에러 정정 확률이 높은 경우 경판정 및 연판정 디코딩 스테이지의 최대 이터레이션 회수를 많게 변경하여 경판정 및 연판정 디코딩을 수행한다. 이에 따라, 경판정 및 연판정 디코딩 효율을 높일 수 있다.
도 15는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법을 채용하는 컴퓨팅 시스템을 설명하는 도면이다.
도 15를 참조하면, 컴퓨팅 시스템(1500)은 시스템 버스(1560)에 전기적으로연결되는 CPU(1520), 램(1530), 사용자 인터페이스(1540), 베이스밴드 칩셋(Baseband Chipset)과 같은 모뎀(1550) 그리고 메모리 시스템(100)을 포함할 수 있다.
메모리 시스템(100)은 메모리 콘트롤러(200)와 플래쉬 메모리(300)를 포함할 수 있다. 메모리 콘트롤러(200)는 시스템 버스(1560)를 통해 CPU(1520)와 플래쉬 메모리(300)를 연결시킬 수 있다. 메모리 콘트롤러(200)는 CPU(1520)의 버스 포맷(Bus format)에 대응하여 플래쉬 메모리(300)와의 인터페이싱을 제공할 수 있다. 메모리 시스템(100)은 반도체 디스크 장치(Solid State Disk: SSD)를 구성할 수 있다. 이 경우, 메모리 콘트롤러(200)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신할 수 있도록 구성될 것이다.
메모리 콘트롤러(200)는 도 2에 도시된 메모리 콘트롤러와 동일하게 구성될 수 있다. 또한, 메모리 콘트롤러(200)는 본 발명의 다양한 실시예들에 따른 플래쉬 메모리 읽기 방법들을 적용할 수 있다. 플래쉬 메모리(300)는 도 3 및 도 4에 도시된 플래쉬 메모리와 동일하게 구성될 수 있다.
메모리 콘트롤러(200)는 플래쉬 메모리(300)의 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위한 플래쉬 메모리의 읽기 방법을 이용한다. 플래쉬 메모리의 읽기 방법은, 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계와, 경판정 디코딩할 수 없었을 경우 독출 데이터에 대하여 연판정 디코딩하는 단계를 포함한다. 연판정 디코딩하는 단계는 메모리 셀들의 문턱 전압 분포에 따라 LDPC 디코딩의 최대 이터레이션 회수를 변경하여 수행할 수 있다. 또한, 경판정 및 연판정 디코딩하는 단계는 경판정 및 연판정 디코딩 스테이지의 성공률에 따라 경판정 및 연판정 디코딩의 최대 이터레이션 회수를 변경하여 수행할 수 있다.
컴퓨팅 시스템(1500)이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다. 또한, 컴퓨팅 시스템(1500)에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있다.
본 발명에 따른 메모리 콘트롤러(200) 및/또는 플래쉬 메모리(300)는 다양한 형태의 패키지를 이용하여 실장될 수 있다. 예를 들면, 메모리 콘트롤러(200) 및/또는 플래쉬 메모리(300)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic MetricQuad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위한 플래쉬 메모리의 읽기 방법에 있어서,
    상기 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계; 및
    상기 경판정 디코딩할 수 없었을 경우, 상기 독출 데이터에 대하여 연판정 디코딩하는 단계를 구비하고,
    상기 연판정 디코딩하는 단계는 상기 메모리 셀들의 문턱 전압 분포에 따라 최대 이터레이션 회수를 변경하여 수행하는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  2. 제1항에 있어서, 상기 연판정 디코딩하는 단계는
    상기 문턱 전압 분포의 인접 데이터 상태들에서, 경판정 읽기 전압과 상기 경판정 읽기 전압의 저전압측의 제1 연판정 읽기 전압 사이의 문턱 전압을 갖는 제1 셀 수와 상기 경판정 읽기 전압과 상기 경판정 읽기 전압의 고전압측의 제2 연판정 읽기 전압 사이의 문턱 전압을 갖는 제2 셀 수를 이용하여 상기 최대 이터레이션 회수를 변경하는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  3. 제2항에 있어서,
    상기 제1 셀 수와 상기 제2 셀 수의 차가 제1 임계치 이상인 경우, 상기 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  4. 제2항에 있어서,
    상기 제1 셀 수와 상기 제2 셀 수의 차가 제2 임계치 이하인 경우, 상기 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  5. 제2항에 있어서,
    상기 제1 셀 수와 상기 제2 셀 수의 합이 제3 임계치 이상인 경우, 상기 변경된 최대 이터레인션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  6. 메모리 셀에 저장된 멀티 비트 데이터를 읽기 위한 플래쉬 메모리의 읽기 방법에 있어서,
    상기 플래쉬 메모리로부터 출력된 독출 데이터에 대하여 경판정 디코딩하는 단계; 및
    상기 경판정 디코딩할 수 없었을 경우, 상기 독출 데이터에 대하여 연판정 디코딩하는 단계를 구비하고,
    상기 경판정 디코딩하는 단계는 경판정 디코딩 스테이지의 성공률에 따라 상기 경판정 디코딩의 최대 이터레이션 회수를 변경하여 수행하고,
    상기 연판정 디코딩하는 단계는 연판정 디코딩 스테이지의 성공률에 따라 상기 연판정 디코딩의 최대 이터레이션 회수를 변경하여 수행하는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  7. 제6항에 있어서, 상기 경판정 디코딩하는 단계는
    해당 경판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 상기 경판정 디코딩 스테이지인 경우, 상기 변경된 경판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  8. 제6항에 있어서, 상기 연판정 디코딩하는 단계는
    해당 연판정 디코딩 스테이지가 가장 낮은 성공률을 갖는 상기 연판정 디코딩 스테이지인 경우, 상기 변경된 연판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 적게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  9. 제6항에 있어서, 상기 경판정 디코딩하는 단계는
    해당 경판정 디코딩 스테이지가 가장 높은 성공률을 갖는 상기 경판정 디코딩 스테이지인 경우, 상기 변경된 경판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
  10. 제6항에 있어서, 상기 연판정 디코딩하는 단계는
    해당 연판정 디코딩 스테이지가 가장 높은 성공률을 갖는 상기 연판정 디코딩 스테이지인 경우, 상기 변경된 연판정 디코딩의 최대 이터레이션 회수는 초기에 미리 설정되었던 최대 이터레이션의 회수 보다 많게 설정되는 것을 특징으로 하는 플래쉬 메모리의 읽기 방법.
KR1020140012214A 2014-02-03 2014-02-03 플래쉬 메모리 읽기 방법 KR20150091693A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140012214A KR20150091693A (ko) 2014-02-03 2014-02-03 플래쉬 메모리 읽기 방법
US14/601,659 US9647695B2 (en) 2014-02-03 2015-01-21 Memory controllers and flash memory reading methods

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012214A KR20150091693A (ko) 2014-02-03 2014-02-03 플래쉬 메모리 읽기 방법

Publications (1)

Publication Number Publication Date
KR20150091693A true KR20150091693A (ko) 2015-08-12

Family

ID=53754907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012214A KR20150091693A (ko) 2014-02-03 2014-02-03 플래쉬 메모리 읽기 방법

Country Status (2)

Country Link
US (1) US9647695B2 (ko)
KR (1) KR20150091693A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402267B2 (en) 2017-02-02 2019-09-03 SK Hynix Inc. Memory system and operating method thereof
KR20210008326A (ko) * 2018-06-12 2021-01-21 웨스턴 디지털 테크놀로지스, 인코포레이티드 디코딩 성공 추세에 기초한 조정가능한 판독 재시도 순서
CN117393025A (zh) * 2023-12-08 2024-01-12 杭州阿姆科技有限公司 生成符合nand数据特征带软判决信息的数据的方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014126750A1 (en) 2013-02-14 2014-08-21 Marvell World Trade Ltd. Bit flipping decoding with reliability inputs for ldpc codes
KR20150128750A (ko) * 2013-03-07 2015-11-18 마벨 월드 트레이드 리미티드 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
WO2014149738A1 (en) 2013-03-21 2014-09-25 Marvell World Trade Ltd. Systems and methods for multi-stage soft input decoding
KR102157672B1 (ko) * 2013-11-15 2020-09-21 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9621188B2 (en) * 2014-03-17 2017-04-11 Samsung Electronics Co., Ltd. Soft and hard decision message-passing decoding
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
KR102370292B1 (ko) * 2015-05-07 2022-03-07 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
US10263644B1 (en) * 2015-10-28 2019-04-16 Xilinx, Inc. Hybrid architecture for LDPC channel coding in data center
US9852024B2 (en) * 2016-04-19 2017-12-26 Winbond Electronics Corporation Apparatus and method for read time control in ECC-enabled flash memory
KR102589259B1 (ko) * 2016-06-20 2023-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10416891B2 (en) * 2016-09-15 2019-09-17 The United States Of America, As Represented By The Secretary Of The Navy Systems and methods for transitioning and updating/tailoring machine instructions from a first system with an older or initial one or set of components to a second system or platform with one or more different components and new or modified operations or functions along with additional potential applications including use in network security and intrusion detection
US10558522B2 (en) 2017-10-20 2020-02-11 Western Digital Technologies, Inc. Dynamic multi-stage decoding
US10637511B2 (en) 2017-12-18 2020-04-28 Western Digital Technologies, Inc Dynamic multi-stage decoding
KR20190095825A (ko) * 2018-02-07 2019-08-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN111162794B (zh) * 2018-11-08 2023-10-20 北京忆芯科技有限公司 译码数据缓存方法和译码器
US11029883B2 (en) * 2018-12-28 2021-06-08 Micron Technology, Inc. Reduce system active power based on memory usage patterns
TWI672911B (zh) * 2019-03-06 2019-09-21 瑞昱半導體股份有限公司 解碼方法及相關電路
CN111611101B (zh) * 2020-04-22 2023-09-29 珠海妙存科技有限公司 调整闪存读取数据吞吐率的方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030016720A (ko) 2001-08-21 2003-03-03 한국전자통신연구원 신호대 잡음비 추정에 의한 엘디피씨 복호화 장치의 최대반복 복호수 적응 설정 장치 및 그 방법과, 이 장치를포함하는 엘디피씨 복호화 장치 및 그 방법
JP2005166089A (ja) 2003-11-28 2005-06-23 Toshiba Corp ディスク記憶装置、データ再生装置及びデータ再生方法
US7388781B2 (en) 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7672161B2 (en) * 2007-04-30 2010-03-02 Spansion Llc Adaptive detection of threshold levels in memory
JP2009271852A (ja) 2008-05-09 2009-11-19 Toshiba Corp 半導体記憶装置
US8286048B1 (en) 2008-12-30 2012-10-09 Qualcomm Atheros, Inc. Dynamically scaled LLR for an LDPC decoder
KR101261091B1 (ko) 2009-07-07 2013-05-06 한양대학교 산학협력단 반복 복호수 설정 방법, 반복 복호화 장치 및 그 방법
KR101618311B1 (ko) * 2010-02-08 2016-05-04 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
JP2011197957A (ja) * 2010-03-18 2011-10-06 Toshiba Corp 誤り訂正符号復号装置及び誤り訂正符号復号方法
TWI456579B (zh) 2010-03-26 2014-10-11 Silicon Motion Inc 提昇錯誤更正能力之方法以及相關之記憶裝置及其控制器
JP2012244305A (ja) 2011-05-17 2012-12-10 Toshiba Corp メモリコントローラ、半導体メモリ装置、および復号方法
JP2013080450A (ja) 2011-09-22 2013-05-02 Toshiba Corp メモリ装置
US8826096B2 (en) 2011-12-29 2014-09-02 Korea Advanced Institute Of Science And Technology Method of decoding LDPC code for producing several different decoders using parity-check matrix of LDPC code and LDPC code system including the same
US9378810B2 (en) * 2014-02-11 2016-06-28 Seagate Technology Llc Systems and methods for last written page handling in a memory device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10402267B2 (en) 2017-02-02 2019-09-03 SK Hynix Inc. Memory system and operating method thereof
KR20210008326A (ko) * 2018-06-12 2021-01-21 웨스턴 디지털 테크놀로지스, 인코포레이티드 디코딩 성공 추세에 기초한 조정가능한 판독 재시도 순서
US11557352B2 (en) 2018-06-12 2023-01-17 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
CN117393025A (zh) * 2023-12-08 2024-01-12 杭州阿姆科技有限公司 生成符合nand数据特征带软判决信息的数据的方法
CN117393025B (zh) * 2023-12-08 2024-03-15 杭州阿姆科技有限公司 生成符合nand数据特征带软判决信息的数据的方法

Also Published As

Publication number Publication date
US20150220389A1 (en) 2015-08-06
US9647695B2 (en) 2017-05-09

Similar Documents

Publication Publication Date Title
KR20150091693A (ko) 플래쉬 메모리 읽기 방법
US9535620B2 (en) Flash memory system and method controlling same
TWI483255B (zh) 具改善讀取可靠度之包含多位元記憶胞的快閃記憶體裝置
US8576622B2 (en) Non-volatile memory device and read method thereof
KR101633048B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
KR102081415B1 (ko) 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
US8644066B2 (en) Multi-level non-volatile memory device, system and method with state-converted data
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
US8923067B2 (en) Memory system and method of operating memory system using soft read voltages
WO2014194141A1 (en) Reading voltage calculation in solid-state storage devices
KR20140045168A (ko) 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9281839B2 (en) Hard-decision decoding method and low-density parity-check decoder using same
KR102089570B1 (ko) 저장 장치 및 그것의 데이터 처리 방법
KR20140031556A (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
US20140380129A1 (en) Memory system and method of reading data thereof
US20200176045A1 (en) Memory system and operating method thereof
US9105359B2 (en) Nonvolatile memory device and error correction methods thereof
KR20180009558A (ko) 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
KR102605633B1 (ko) 컨트롤러 및 그것의 동작 방법
KR20200021736A (ko) 컨트롤러 및 그것의 동작방법
US11770133B1 (en) Exact ber reporting in the presence of CRC termination
KR20220139081A (ko) 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application