KR102089570B1 - 저장 장치 및 그것의 데이터 처리 방법 - Google Patents

저장 장치 및 그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR102089570B1
KR102089570B1 KR1020120059957A KR20120059957A KR102089570B1 KR 102089570 B1 KR102089570 B1 KR 102089570B1 KR 1020120059957 A KR1020120059957 A KR 1020120059957A KR 20120059957 A KR20120059957 A KR 20120059957A KR 102089570 B1 KR102089570 B1 KR 102089570B1
Authority
KR
South Korea
Prior art keywords
data
read
error correction
auxiliary
memory cells
Prior art date
Application number
KR1020120059957A
Other languages
English (en)
Other versions
KR20130136274A (ko
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 KR1020120059957A priority Critical patent/KR102089570B1/ko
Priority to US13/786,509 priority patent/US8996964B2/en
Publication of KR20130136274A publication Critical patent/KR20130136274A/ko
Application granted granted Critical
Publication of KR102089570B1 publication Critical patent/KR102089570B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/3784Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 for soft-output decoding of block codes
    • 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/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
    • 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
    • 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/45Soft decoding, i.e. using symbol reliability information

Landscapes

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

Abstract

본 발명은 저장 장치 및 그것의 데이터 처리 방법에 관한 것이다. 본 발명의 저장 장치는 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치로부터 기초 데이터 및 보조 데이터를 제공받고, 상기 보조 데이터를 참조하여 상기 기초 데이터에 대한 보조 연판정 에러 정정 연산을 수행하는 에러 정정 회로를 포함하며, 상기 기초 데이터는 경판정 에러 정정 연산시 상기 복수의 메모리 셀들로부터 독출되는 데이터이고, 상기 보조 데이터는 상기 기초 데이터 중 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다. 본 발명에 의한 저장 장치 및 그것의 데이터 처리 방법은 향상된 에러 정정 능력을 제공하여 독출된 데이터의 신뢰성을 향상시킨다.

Description

저장 장치 및 그것의 데이터 처리 방법{STORAGE DEVICE AND DATA PROCESSING METHOD THEREOF}
본 발명은 저장 장치 및 그것의 데이터 처리 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다.
불휘발성 메모리 중 대표적인 것으로 플래시 메모리가 있다. 플래시 메모리의 메모리 셀 중 하나의 메모리 셀에 1-비트 데이터를 저장하는 메모리 셀을 단일 비트 셀(single-bit cell) 또는 단일 레벨 셀(SLC: single-level cell)이라 한다. 그리고 하나의 메모리 셀에 멀티 비트 데이터를 저장하는 메모리 셀을 멀티 비트 셀(multi-bit cell), 멀티 레벨 셀(MLC: multi-level cell), 또는 멀티 스테이트 셀(multi-state cell)이라 한다.
멀티 비트 셀은 싱글 비트 셀에 비하여 하나의 메모리 셀에 프로그램되는 비트의 수가 많으므로 메모리의 고집적화에 유리하다. 그러나 이에 따라 독출된 데이터의 신뢰성이 저하되어 판독 실패율(read failure rate)이 증가하게 된다. 따라서 멀티 비트 데이터를 저장하는 불휘발성 메모리 장치에서 독출된 데이터의 읽기 에러를 효과적으로 검출 및 정정할 수 있는 방법이 요구된다.
본 발명의 목적은 불휘발성 메모리 장치로부터 독출되는 데이터의 신뢰성을 향상시킬 수 있는 저장 장치 및 그것의 데이터 처리 방법을 제공하는 것에 있다.
본 발명의 저장 장치는 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치 및 상기 불휘발성 메모리 장치로부터 기초 데이터 및 보조 데이터를 제공받고, 상기 보조 데이터를 참조하여 상기 기초 데이터에 대한 보조 연판정 에러 정정 연산을 수행하는 에러 정정 회로를 포함하며, 상기 기초 데이터는 경판정 에러 정정 연산시 상기 복수의 메모리 셀들로부터 독출되는 데이터이고, 상기 보조 데이터는 상기 기초 데이터 중 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 보조 데이터는 상기 기초 데이터 중 소거 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 기초 데이터는 경판정 에러 정정 연산시 상기 복수의 메모리 셀들로부터 독출되는 최상위 비트 데이터이고, 상기 보조 데이터 중 논리값 '1'을 가지는 비트는 상기 기초 데이터 중 소거 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 보조 데이터는 상기 기초 데이터 중 가장 높은 문턱 전압을 갖는 프로그램 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 기초 데이터는 경판정 에러 정정 연산시 상기 복수의 메모리 셀들로부터 독출되는 최상위 비트 데이터이고, 상기 보조 데이터 중 논리값 '0'을 가지는 비트는 상기 기초 데이터 중 가장 높은 문턱 전압을 갖는 프로그램 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 에러 정정 회로는 상기 보조 연판정 에러 정정 연산을 수행하기 전 상기 기초 데이터를 이용하여 기초 연판정 에러 정정 연산을 수행한다.
실시예에 있어서, 상기 에러 정정 회로는 상기 보조 연판정 에러 정정 연산시, 상기 보조 데이터를 참조하여 상기 기초 데이터 중 상기 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 신뢰도를 보정한다.
실시예에 있어서, 상기 신뢰도는 로그-우도비(LLR: Log-Likelihood Ratio)이다.
실시예에 있어서, 상기 에러 정정 회로는 상기 보조 연판정 에러 정정 연산시, 상기 보조 데이터를 참조하여 상기 기초 데이터 중 상기 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 로그-우도의 절대값을 다른 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 로그-우도의 절대값에 비하여 작은 크기로 보정한다.
본 발명의 데이터 처리 방법은 불휘발성 메모리 장치로부터 독출된 데이터의 처리 방법에 있어서, 상기 불휘발성 메모리 장치로부터 기초 데이터를 제공받는 단계, 상기 불휘발성 메모리 장치로부터 보조 데이터를 제공받는 단계, 상기 보조 데이터를 참조하여 상기 기초 데이터에 대한 보조 연판정 에러 정정 연산을 수행하는 단계를 포함하며, 상기 기초 데이터는 경판정 에러 정정 연산시 상기 복수의 메모리 셀들로부터 독출되는 데이터이고, 상기 보조 데이터는 상기 기초 데이터 중 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 보조 데이터는 상기 기초 데이터 중 소거 상태로 프로그램된 메모리 셀들 또는 상기 기초 데이터 중 가장 높은 문턱 전압을 갖는 프로그램 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시한다.
실시예에 있어서, 상기 보조 데이터를 참조하여 상기 기초 데이터에 대한 보조 연판정 에러 정정 연산을 수행하는 단계에서는 상기 보조 데이터를 참조하여 상기 기초 데이터 중 상기 특정 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 신뢰도를 보정한다.
실시예에 있어서, 상기 보조 연판정 에러 정정 연산을 수행하기 전 상기 기초 데이터를 이용하여 기초 연판정 에러 정정 연산을 수행한다.
실시예에 있어서, 상기 기초 연판정 에러 정정 연산을 수행하기 전 상기 기초 데이터를 이용하여 경판정 에러 정정 연산을 수행한다.
실시예에 있어서, 상기 기초 연판정 에러 정정 연산을 수행하는 단계는 상기 불휘발성 메모리 장치로부터 보조 데이터를 제공받는 단계와 동시에 수행된다.
본 발명에 의한 저장 장치 및 그것의 데이터 처리 방법은 향상된 에러 정정 능력을 제공하여 독출된 데이터의 신뢰성을 향상시킨다.
도 1은 에러가 포함되는 멀티-비트 불휘발성 메모리 장치의 문턱 전압 산포를 예시적으로 보여주는 도면이다.
도 2는 본 발명의 실시예에 의한 불휘발성 메모리 장치(1100) 및 그것을 포함하는 메모리 시스템(1000)을 도시하는 블록도이다.
도 3은 도 2의 불휘발성 메모리 장치(1100)를 더 자세히 도시하는 블록도이다.
도 4는 프로그램 동작에 의하여 메모리 셀에 형성될 수 있는 이상적인 문턱 전압 분포를 예시적으로 도시하는 도면이다.
도 5는 도 4의 메모리 셀에 프로그램된 MSB의 값을 경판정 읽기 동작으로 독출하는 동작을 도시하는 도면이다.
도 6은 이상적이지 못한 상태의 메모리 셀에 프로그램된 MSB의 값을 연판정 동작으로 독출하는 동작을 도시하는 도면이다.
도 7은 데이터 심볼을 생성하기 위한 예시적인 변환표이다.
도 8은 메모리 셀이 속하는 그룹에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다.
도 9는 본 발명의 실시예에 의한 메모리 시스템의 MSB 연판정 방법을 도시하는 도면이다.
도 10은 예시적인 보조 데이터를 도시하는 표이다.
도 11은 소거 상태 셀에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다.
도 12는 최고 상태 셀에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다.
도 13은 본 발명의 다른 실시예에 의한 메모리 셀에 프로그램된 값을 연판정 동작으로 독출하는 동작을 도시하는 도면이다.
도 14는 본 발명의 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
도 15는 본 발명의 실시 예에 따른 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 16은 본 발명의 실시 예에 따른 메모리 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 17은 도 16에 도시된 SSD 컨트롤러(3210)의 구성을 예시적으로 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 메모리 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
도 1은 에러가 포함되는 멀티-비트 불휘발성 메모리 장치의 문턱 전압 산포를 예시적으로 보여주는 도면이다. 도 1에는 예시적으로 하나의 메모리 셀에 2-비트가 저장되는 멀티 비트 메모리 셀들의 문턱 전압 산포가 도시되어 있다. 도 1의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다.
도 1을 참조하면, 불휘발성 메모리 장치에서 메모리 셀들은 기준 산포들(10, 20, 30, 40)로 프로그램된다. 그러나 다양한 요인들로 인하여 메모리 셀들의 문턱 전압은 기준 산포들(10, 20, 30, 40)의 형태를 유지하지 못할 수 있다. 이러한 메모리 셀들의 문턱 전압 변화는 읽기 에러의 원인이 된다.
문턱 전압의 변화의 예로, 인접 메모리 셀들에 의한 간섭 현상이 있다. 메모리 셀들은 서로 영향을 미친다. 이러한 간섭 현상의 예로서 에프-폴리 커플링(F-Poly Coupling) 및 측면 전하 확산(Lateral Charge Spreading) 등이 있다.
특히, 메모리 셀들 중 소거 상태(E0)로 프로그램된 메모리 셀과 가장 높은 문턱 전압을 갖는 프로그램 상태(P3)로 프로그램된 메모리 셀에 대하여 이러한 인접 메모리 셀들의 간섭 현상이 현저하다.
인접 메모리 셀들에 의한 간섭 이외에도 리드 디스터브(Read Disturb)에 의하여 메모리 셀의 문턱 전압은 변화될 수 있다. 알려진 바와 같이, 리드 디스터브는 메모리 셀들 중 소거 상태(E0)로 프로그램된 메모리 셀에서 현저하다.
혹은 시간의 경과에 따른 메모리 셀의 전하량 감소에 의하여 메모리 셀의 문턱 전압은 변화될 수 있다. 시간의 경과에 따른 메모리 셀의 전하량 감소는 가장 높은 문턱 전압을 갖는 프로그램 상태(P3)로 프로그램된 메모리 셀에서 현저하다.
메모리 셀의 문턱 전압은 상술된 요인들 이외에도 다양한 요인들로부터 변화될 수 있다. 예를 들어, 문턱 전압은 공정적 결함, 채널의 불안정성에 의한 왜곡, 프로그램 디스터브 등의 요인들에 의하여 변화될 수 있다.
최초 메모리 셀이 프로그램되면, 메모리 셀들의 문턱 전압은 실선으로 도시된 기준 산포들(10, 20, 30, 40)을 형성하게 될 것이다. 그러나 위에서 설명된 현상들에 의하여 산포(10)에 대응하는 메모리 셀들의 산포는 산포(15)로 이동될 수 있다. 산포 (40)에 대응하는 메모리 셀들은 산포(45)로 이동될 수 있다. 즉, 소거 상태(E0)로 프로그램된 메모리 셀들의 문턱 전압은 높아질 수 있다. 프로그램 상태(P3)로 프로그램된 메모리 셀들의 문턱 전압은 측면 전하 확산에 의하여 낮아질 수 있다.
본 발명에서는 문턱 전압의 변화로 인한 에러를 정정하여 독출된 데이터의 신뢰성을 높일 수 있는 불휘발성 메모리 장치 및 그것의 읽기 방법을 제공하고자 한다. 특히, 본 발명에서는 메모리 셀들 중 소거 상태(E0)로 프로그램된 메모리 셀(이하, 소거 상태 셀) 및 가장 높은 문턱 전압을 갖는 프로그램 상태(P3)로 프로그램된 메모리 셀(이하, 최고 상태 셀)의 문턱 전압 변화에 의한 에러를 보정하여 원래 프로그램된 데이터의 신뢰성을 높일 수 있는 불휘발성 메모리 장치 및 그것의 읽기 방법을 제공할 것이다.
도 2는 본 발명의 실시예에 의한 불휘발성 메모리 장치(1100) 및 그것을 포함하는 메모리 시스템(1000)을 도시하는 블록도이다. 도 2를 참조하면, 메모리 시스템(1000)은 불휘발성 메모리 장치(1100) 및 메모리 컨트롤러(1200)를 포함한다.
본 발명의 메모리 시스템(1000)은 읽기 동작시 메모리 셀들의 문턱 전압 변화에 따른 에러를 보정한다. 특히, 본 발명의 메모리 시스템(1000)은 소거 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 혹은 본 발명의 메모리 시스템(1000)은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 이러한 읽기 동작에 의하여, 본 발명의 메모리 시스템(1000)은 독출된 데이터의 신뢰성을 높일 수 있다.
불휘발성 메모리 장치(1100)는, 예를 들어, 플래시 메모리 장치로 구성될 수 있다. 불휘발성 메모리 장치(1100)는 메모리 컨트롤러(1200)의 제어에 따라 데이터를 독출하거나, 메모리 컨트롤러(1200)로부터 제공되는 데이터를 메모리 셀 어레이에 프로그램한다.
메모리 컨트롤러(1200)는 불휘발성 메모리 장치(1100)를 제어한다. 메모리 컨트롤러(1200)는 불휘발성 메모리 장치(1100)로부터 독출된 데이터의 에러를 정정하기 위한 에러 정정 회로(ECC: Error Correction Circuit)(1210)를 포함한다. 에러 정정 회로(1210)는 에러 정정 방식으로서 경판정(Hard Decision)방식 및 연판정(Soft Decision)방식을 사용할 수 있다.
소정의 기준 전압을 인가하였을 때의 메모리 셀의 온-오프 특성에 따라 읽혀진 데이터(이하, 경판정 데이터) 및 에러 정정 부호(Error Correction Codes)만을 이용하여 데이터의 에러를 정정하는 기법을 경판정 방식이라 한다. 그리고 경판정 데이터 및 에러 정정 부호와 별도로, 경판정 데이터의 신뢰성에 대한 부가 정보를 추가적으로 이용하여 데이터의 에러를 정정하는 기법을 연판정 방식이라 한다.
에러 정정 회로(1210)는 경판정 방식에 의한 데이터 에러 정정이 실패한 경우 연판정 방식을 적용하여 데이터의 에러 정정을 다시 시도할 수 있다. 혹은 에러 정정 회로(1210)는 경판정 에러 정정 동작을 통하지 않고 연판정 방식으로 데이터의 에러를 정정할 수 있다. 본 발명에서 에러 정정 회로(1210)에 적용되는 에러 정정 부호의 인코딩 방식 및 디코딩 방식은 특정 형태에 국한되지 않는다.
본 발명의 메모리 시스템(1000)은 연판정 에러 정정 동작시, 소거 상태 셀 혹은 최고 상태 셀에 대한 부가 정보를 사용한다. 메모리 시스템(1000)은 상기 부가 정보를 사용하여 개선된 에러 정정 동작을 수행할 수 있다.
도 3은 도 2의 불휘발성 메모리 장치(1100)를 더 자세히 도시하는 블록도이다. 도 2를 참조하면, 불휘발성 메모리 장치(1100)는 메모리 셀 어레이(1110), 어드레스 디코더(1120), 데이터 입출력 회로(1130) 및 제어 로직(1140)을 포함한다.
메모리 셀 어레이(1110)는 워드 라인들(WL)을 통해 어드레스 디코더(1120)에 연결된다. 메모리 셀 어레이(1110)는 비트 라인들(BL)을 통하여 데이터 입출력 회로(130)에 연결된다. 메모리 셀 어레이(1110)는 복수의 셀 스트링들을 포함한다. 각각의 셀 스트링들은 수직 또는 수평 방향으로 채널을 형성할 수 있다. 메모리 셀 어레이(1110)에는 복수의 워드 라인들이 수직 방향으로 적층될 수 있다. 예시적으로, 메모리 셀 어레이(1110)는 메모리 셀 당 하나 혹은 그 이상의 비트를 저장할 수 있도록 구성된다.
어드레스 디코더(1120)는 워드 라인들(WL)을 통해 메모리 셀 어레이(1110)에 연결된다. 어드레스 디코더(1120)는 제어 로직(1140)의 제어에 응답하여 동작한다. 어드레스 디코더(1120)는 외부로부터 어드레스(ADDR)를 수신한다.
어드레스 디코더(1120)는 수신된 어드레스(ADDR)로부터 블록 어드레스를 디코딩한다. 어드레스 디코더(1120)는 디코딩된 블록 어드레스를 이용하여 하나 혹은 복수의 메모리 블록들을 활성화할 수 있다. 어드레스 디코더(1120)는 수신된 어드레스(ADDR)로부터 행 어드레스를 디코딩한다. 어드레스 디코더(1120)는 디코딩된 행 어드레스를 이용하여 워드 라인들(WL)을 선택할 수 있다.
데이터 입출력 회로(1130)는 비트 라인들(BL)을 통해 메모리 셀 어레이(1110)에 연결된다. 데이터 입출력 회로(1130)는 제어 로직(1140)의 제어에 응답하여 기입 드라이버(Write driver) 또는 감지 증폭기(Sense amplifier)로서 동작한다. 예시적으로, 데이터 입출력 회로(1130)는 읽기 동작 모드에서 감지 증폭기로서, 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다.
데이터 입출력 회로(1130)는 메모리 컨트롤러(1200)로부터 데이터를 수신한다. 데이터 입출력 회로(1130)는 프로그램 동작시, 수신된 데이터를 선택된 페이지에 동시에 프로그램한다. 데이터 입출력 회로(1130)는 읽기 동작시, 선택된 페이지의 데이터를 읽어 메모리 컨트롤러(1200)로 전달한다. 본 발명의 데이터 입출력 회로(1130)는 읽기 동작시 소거 상태 셀에 대한 부가 정보를 독출할 수 있다. 혹은 데이터 입출력 회로(1130)는 읽기 동작시 최고 상태 셀에 대한 부가 정보를 독출할 수 있다. 부가 정보 독출 동작은 도 6 내지 도 10을 통하여 자세히 설명될 것이다.
데이터 입출력 회로(1130)가 독출한 데이터는 한 페이지 단위로 외부에 출력될 수 있다. 혹은 데이터 입출력 회로(1130)가 독출한 데이터는 패킷 단위로 외부로 전송될 수 있다. 패킷은 복수의 페이지들을 포함할 수 있다.
제어 로직(1150)은 어드레스 디코더(1120) 및 데이터 입출력 회로(1130)에 연결된다. 제어 로직(1150)은 외부로부터의 제어 신호(CTRL)에 따라 어드레스 디코더(1120) 및 데이터 입출력 회로(1130)를 제어한다.
상술한 불휘발성 메모리 장치(1100)는 읽기 동작시 소거 상태 셀에 대한 부가 정보를 독출할 수 있다. 혹은 불휘발성 메모리 장치(1100)는 최고 상태 셀에 대한 부가 정보를 독출할 수 있다. 이러한 읽기 동작에 따라, 본 발명의 불휘발성 메모리 장치(1100)는 메모리 컨트롤러(1200)의 에러 정정 동작시 소거 상태 셀 혹은 최고 상태 셀에 대한 부가 정보를 제공할 수 있다.
도 4 내지 도 6은 본 발명의 메모리 시스템의 경판정 동작 및 연판정 동작을 설명하기 위한 도면이다. 도 4 내지 도 6에는 예시적으로 하나의 메모리 셀에 2-비트가 저장되는 멀티 비트 메모리 셀들에 대하여 도시되었다. 그러나 본 발명은 이에 한정되지 않는다. 본 발명은 하나의 메모리 셀에 2개 이상의 비트가 저장되는 멀티 비트 메모리 셀들에 대하여 모두 적용될 수 있다.
도 4는 프로그램 동작에 의하여 메모리 셀에 형성될 수 있는 이상적인 문턱 전압 분포를 예시적으로 도시하는 도면이다. 도 4의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다.
도 4를 참조하면, 2-비트의 데이터가 프로그램된 메모리 셀의 문턱 전압은 4 레벨의 데이터 상태들(E0, P1, P2, P3) 중 어느 하나에 대응될 수 있다. 각각의 데이터 상태는 문턱 전압 윈도우(Threshold Voltage Window)를 형성한다.
하나의 메모리 셀에 저장되는 복수의 비트들은 여러 단계의 프로그램 동작을 통해 각각 독립적으로 프로그램 될 수 있다. 예시적으로, 도 4에 도시된 2-비트 멀티 비트 셀의 경우, 먼저 1번째 비트(LSB: Least Significant Bit)에 대한 프로그램이 먼저 수행될 수 있다. 그리고 2번째 비트(MSB: Most Significant Bit)에 대한 프로그램이 순차적으로 수행될 수 있다.
경판정 읽기 동작이 수행될 때, 메모리 셀에 프로그램된 MSB의 값을 독출하기 위하여 2개의 읽기 전압들(VL1, VR1)이 사용될 수 있다. 이하에서, 읽기 전압을 기준으로 왼쪽에 위치한 메모리 셀들은 로직 하이 "1"의 논리값을 가진다고 가정한다. 읽기 전압을 기준으로 오른쪽에 위치한 메모리 셀들은 로직 로우 "0"의 논리값을 가진다고 가정한다. 그러나 본 발명은 이에 한정되지 않는다.
도 5는 도 4의 메모리 셀에 프로그램된 MSB의 값을 경판정 읽기 동작으로 독출하는 동작을 도시하는 도면이다. 도 5의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다.
도 5를 참조하면, 각 메모리 셀에 대하여, 제 1 좌측 읽기 전압(VL1) 및 제 1 우측 읽기 전압(VR1)에 대응되는 로직값이 독출된다.
소거 상태(E0)에 있는 메모리 셀은 제 1 좌측 읽기 전압(VL1) 및 제 1 우측 읽기 전압(VR1)에 대하여 로직 하이 "1"의 논리값을 가진다. 제 1 프로그램 상태(P1) 및 제 2 프로그램 상태(P2)에 있는 메모리 셀은 제 1 좌측 읽기 전압(VL1)에 대하여 로직 로우 "0", 제 1 우측 읽기 전압(VR1)에 대하여 로직 하이 "1"의 논리값을 가진다. 최고 프로그램 상태(P3)에 있는 메모리 셀은 제 1 좌측 읽기 전압(VL1) 및 제 1 우측 읽기 전압(VR1)에 대하여 로직 하이 "0"의 논리값을 가진다.
경판정 동작에서, 메모리 셀에 프로그램된 MSB는 제 1 좌측 읽기 전압(VL1) 및 제 1 우측 읽기 전압(VR1)에 대한 논리값의 배타적 부정 논리합(XNOR)으로 계산된다.
경판정 동작에서 제 1 좌측 읽기 전압(VL1) 및 제 1 우측 읽기 전압(VR1)의 전압 레벨은 도 4 및 도 5에 도시된 이상적인 문턱 전압들의 분포를 기준으로 결정될 수 있다. 따라서 경판정 동작에서 이상적이지 못한 상태의 메모리 셀들에 저장된 데이터를 판독하는 경우 에러가 발생될 수 있다. 본 발명의 메모리 시스템은 경판정 동작으로 독출된 데이터에 대한 에러 정정이 실패한 경우, 연판정 동작에 의하여 읽기 동작을 수행할 수 있다.
도 6은 이상적이지 못한 상태의 메모리 셀에 프로그램된 MSB의 값을 연판정 동작으로 독출하는 동작을 도시하는 도면이다. 도 6의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다.
도 6을 참조하면, 메모리 셀에 대하여, 제 0 내지 제 2 좌측 읽기 전압(VL0-VL2) 및 제 0 내지 제 2 우측 읽기 전압(VR0-VR2)에 대응되는 논리값이 독출된다.
도 6 하단의 표는 문턱 전압에 의하여 분류된 그룹(A-A')의 메모리 셀들의 각 읽기 전압(VL0-VL2, VR0-VR2)에 대응되는 논리값을 도시한다. 하나의 메모리 셀에 대하여 하나의 데이터 심볼(symbol)이 형성될 수 있다.
데이터 심볼은 메모리 셀이 문턱 전압에 의하여 분류된 그룹(A-A') 중 어느 그룹에 속하는지 지시하는 데이터이다. 데이터 심볼은 각 읽기 전압들(VL0-VL2, VR0-VR2)에 대응되는 논리값의 순차적 데이터로부터 생성될 수 있다. 예를 들어, 본 실시예에서 각 읽기 전압들(VL0-VL2, VR0-VR2)에 대응되는 논리값의 순차적 데이터는 데이터 심볼로서 직접 사용될 수 있다.
예를 들어, 제 0 좌측 읽기 전압(VL0)의 전압 레벨보다 낮은 문턱 전압을 가지는 그룹(A)인 메모리 셀들은 각 읽기 전압들(VL0-VL2, VR0-VR2)에 대하여 모두 로직 하이 "1"의 논리값을 가질 것이다. 즉, 그룹(A)인 메모리 셀들로부터 독출되는 데이터 심볼은 [1,1,1,1,1,1]이 될 것이다.
제 0 좌측 읽기 전압(VL0)의 전압 레벨과 제 1 좌측 읽기 전압(VL1)의 전압 레벨 사이의 문턱 전압을 가지는 그룹(B)인 메모리 셀들은 제 0 좌측 읽기 전압(VL0)에 대하여 로직 로우 "0"의 논리값을 가질 것이다. 또한 나머지 읽기 전압들에 대하여 모두 로직 하이 "1"의 논리값을 가질 것이다. 즉, 그룹(B)인 메모리 셀들로부터 독출되는 데이터 심볼은 [0,1,1,1,1,1]이 될 것이다.
소정의 메모리 셀에서 독출되는 데이터 심볼은 메모리 셀의 그룹을 지시한다. 따라서 데이터 심볼에 응답하여 경판정 동작시 독출되었던 MSB 비트의 신뢰도가 판단될 수 있다.
그룹(A)의 메모리 셀 및 그룹(A')의 메모리 셀에 프로그램된 MSB는 로직 하이 "1"의 논리값으로 프로그램 되었을 확률이 높다. 반면, 그룹(B)의 메모리 셀 및 그룹(B')의 메모리 셀에 프로그램된 MSB는 경판정 동작시 로직 하이 "1"의 논리값으로 독출되나 그 신뢰도는 낮을 것이다.
본 발명의 메모리 시스템은 읽기 동작이 연판정 동작으로 수행될 때, 메모리 셀을 문턱 전압을 기준으로 복수의 그룹으로 분류하고, 그룹에 대응되는 신뢰도를 적용하여 MSB에 대한 에러 정정을 시도한다. 따라서 연판정 동작에 의한 읽기 동작은 경판정 동작에 의한 읽기 동작에 비하여 높은 에러 정정 능력을 가진다.
위 실시예에서 데이터 심볼은 각 읽기 전압들(VL0-VL2, VR0-VR2)에 대응되는 논리값의 순차적 데이터로 예시되었으나 본 발명이 이에 한정되는 것은 아니다. 이하 도 7을 참조하여 데이터 심볼의 다른 실시예에 대하여 설명한다.
도 7은 데이터 심볼을 생성하는 예시적인 변환표이다. 도 7을 참조하면, 데이터 심볼은 각 읽기 전압들(VL0-VL2, VR0-VR2)에 대한 논리값의 순차적 데이터(이하 읽기 데이터, read data)로부터 다양한 형태로 생성될 수 있다.
예를 들어, 데이터 심볼은 읽기 데이터에 포함된 "1"의 개수일 수 있다. 즉, 그룹(A)인 메모리 셀들로부터 독출되는 읽기 데이터는 [1,1,1,1,1,1] 이므로 데이터 심볼은 [1,1,0]이 될 것이다. 그룹(B)인 메모리 셀들로부터 독출되는 데이터 심볼은 [1,0,1]이 될 것이다.
본 실시예에서는 데이터 심볼을 생성하기 위하여 6개의 읽기 전압이 예시적으로 사용되었으나, 실제로는 이보다 더 많은 읽기 전압이 사용될 수 있다. 읽기 전압의 수 및 이로 인해 정의되는 그룹의 수가 많아질수록 연판정 동작에 요구되는 계산량은 증가된다. 따라서 다른 실시예로서 유사한 그룹을 분류하여 같은 신뢰도를 사용할 수 있다. 각 그룹에 대한 신뢰도를 모두 달리 계산하지 않으므로 계산량 및 정보 전송량은 감소될 것이다.
예를 들어, 도 6을 참조하면, 그룹(A)와 그룹(A'), 그룹(B)와 그룹(B') 및 그룹(C)와 그룹(C')의, 경판정 동작시 독출되는 MSB 비트, 및 상기 MSB 비트에 대한 신뢰도는 서로 유사하다. 데이터 심볼은 경판정 동작시 독출되는 MSB 비트 및 신뢰도를 나타내는 비트(Reliable Bit)의 결합으로서 생성될 수 있다. 상기 데이터 심볼은 유사한 그룹에 대하여 동일한 값을 가지므로 계산량 및 정보 전송량은 감소될 것이다.
이에 대한 예시적인 변환표가 도 7에 도시되어 있다. 도 7을 다시 참조하면, 그룹(A)인 메모리 셀들로부터 독출되는 데이터 심볼 및 그룹(A')인 메모리 셀들로부터 독출되는 데이터 심볼은 동일한 [1,1,1]이 될 것이다. 예시적으로, 본 실시예에서 신뢰도가 높을수록 신뢰도 비트는 큰 값을 가진다.
도 8은 메모리 셀이 속하는 그룹에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다. 도 8의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다.
도 8 하단의 표는 문턱 전압을 기준으로 구분된 메모리 셀 그룹들에 대한 로그-우도비(LLR: Log Likelihood Ratio) 값을 나타낸다. 로그-우도비는 우도비(LR: Likelihood Ratio)에 상용 로그를 취한 값을 정규화한 값이다.
우도비는 두 조건부 확률의 비율로 계산된다. 예를 들어, 우도비는 소정 데이터 심볼에 대응되는 메모리 셀의 프로그램 동작시 프로그램된 데이터의 비트가 "1"인 확률과 "0"인 확률의 비율로서 계산된다. 일실시예로서, 우도비는 수학식 1과 같이 계산될 수 있다.
Figure 112012044632950-pat00001
따라서 로그-우도비는 수학식 2와 같이 계산될 수 있다.
Figure 112012044632950-pat00002
'Y'는 메모리 셀에서 독출된 데이터, 'S'는 프로그램 동작시 프로그램된 데이터의 비트를 의미한다. 'C'는 정규화 상수이다. 메모리 셀에 프로그램된 데이터의 비트가 "0"인 확률이 높을 수록 로그-우도비는 높은 양(+)의 값을 가질 것이다. 메모리 셀에 프로그램된 데이터의 비트가 "1"인 확률이 높을 수록 로그-우도비는 높은 음(-)의 값을 가질 것이다. 메모리 셀에 프로그램된 데이터의 비트가 불특정될 확률이 높을 수록 로그-우도비는 "0"에 가까운 값을 가질 것이다.
본 발명의 메모리 시스템은 데이터 심볼에 대응되는 LLR 값을 가중치로서 경판정 동작시 독출된 MSB에 대입하여 에러 정정을 시도한다. 각 그룹에 대한 LLR 값은 테이블의 형태로 미리 저장될 수 있다.
도 7을 참조하여 설명된 바와 같이, 동일한 데이터 심볼은 복수의 그룹에 대응될 수 있다. 소정의 데이터 심볼에 대응되는 LLR 값은 데이터 심볼에 대응되는 그룹에 대한 LLR 값의 평균으로 계산될 수 있다.
그러나, 앞에서 설명된 바와 같이 소거 상태 셀과 최고 상태 셀의 문턱 전압 산포는 다른 프로그램 상태 셀보다 이상적인 상태에서 벗어날 수 있다. 이하에서 설명되는 본 발명의 실시예에 의한 메모리 시스템은 보다 정확한 에러 정정을 위하여 소거 상태 셀과 최고 상태 셀에 대한 신뢰도를 다른 프로그램 상태 셀과 분리하여 고려한다.
도 9는 본 발명의 실시예에 의한 메모리 시스템의 MSB 연판정 방법을 도시하는 도면이다. 도 9를 참조하면, 메모리 시스템(1000)은 불휘발성 메모리 장치(1100) 및 메모리 컨트롤러(1200)을 포함한다. 메모리 컨트롤러(1200)는 에러 정정 회로(1210)를 포함한다.
본 발명의 메모리 시스템(1000)은 읽기 동작시 메모리 셀들의 문턱 전압 변화에 따른 에러를 보정한다. 특히, 본 발명의 메모리 시스템(1000)은 소거 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 혹은 본 발명의 메모리 시스템(1000)은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 이러한 읽기 동작에 따라, 본 발명의 메모리 시스템(1000)은 독출된 데이터의 신뢰성을 높일 수 있다.
도 9를 참조하면, 불휘발성 메모리 장치(1100)는 일차적으로 경판정 동작시 독출된 MSB 비트 및 신뢰도 비트(Reliable Bit)를 에러 정정 회로(1210)로 전송한다. 에러 정정 회로(1210)는 신뢰도 비트에 대응되는 LLR 값을 경판정 동작시 독출된 MSB 비트에 가중치로 대입하여 기초 에러 정정(Primary Decoding)을 시도한다.
에러 정정 회로(1210)가 기초 에러 정정(Primary Decoding)을 수행하는 동안, 불휘발성 메모리 장치(1100)는 보조 데이터(Secondary data)를 에러 정정 회로(1210)로 전송한다. 보조 데이터는 일차적으로 전송된 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다. 혹은 보조 데이터는 일차적으로 전송된 MSB 비트 중 최고 상태 셀로부터 독출된 비트를 지시한다.
에러 정정 회로(1210)는 기초 에러 정정(Primary Decoding)을 실패하면 보조 데이터를 이용하여 보조 에러 정정(Secondary Decoding)을 시도한다. 보조 에러 정정시, 에러 정정 회로(1210)는 보조 데이터를 이용하여 소거 상태 셀 혹은 최고 상태 셀로부터 독출된 비트에 대한 신뢰도를 보정한다.
도 10은 예시적인 보조 데이터를 도시하는 표이다. 도 10에는 예시적으로 8개의 메모리 셀에 대하여 독출된 MSB 비트 페이지 및 보조 데이터 페이지가 도시되었다.
경판정 동작시 메모리 셀들로부터 독출된 MSB 비트가 [1,0,1,1,0,0,1,1] 라고 가정한다. 도 5에서 설명된 바와 같이, 경판정 동작시 MSB는 제 1 좌측 읽기 전압(VL1)에 의한 독출 데이터와 제 2 우측 읽기 전압(VR1)에 의한 독출 데이터의 배타적 부정 논리합에 의해 계산된다.
본 발명의 실시예에 있어서, 보조 데이터는 제 1 좌측 읽기 전압(VL1)에 의한 독출 데이터(이하 제 1 보조 데이터, Secondary data 1)일 수 있다. 혹은 보조 데이터는 제 2 우측 읽기 전압(VR1)에 의한 독출 데이터(이하 제 2 보조 데이터, Secondary data 2)일 수 있다.
제 1 보조 데이터에서, 논리값 '1'을 가지는 비트는 논리값 '1'을 가지는 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다. 제 2 보조 데이터에서, 논리값 '0'을 가지는 비트는 논리값 '1'을 가지는 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다.
에러 정정 회로(1210)는 보조 데이터를 이용하여 MSB 비트 중 소거 상태 셀 혹은 최고 상태 셀로부터 독출된 비트에 대한 신뢰도를 보정할 수 있다. 불휘발성 메모리 장치(1100)에서 경판정 동작시 MSB 비트 및 신뢰도 비트(Reliable Bit)가 독출될 때 보조 데이터는 이미 독출된다. 따라서 추가적인 읽기 동작은 요구되지 않는다.
또한 설명된 바와 같이 2-비트 멀티 비트 셀에서 MSB 비트는 제 1 보조 데이터와 제 2 보조 데이터의 배타적 부정 논리합으로 계산된다. 에러 정정 회로(1210)는 MSB 비트를 이미 저장하고 있으므로, 제 1 및 제 2 보조 데이터 중 하나의 보조 데이터만 전송되면 다른 보조 데이터는 MSB와의 연산에 의해 계산될 수 있다.
도 11은 소거 상태 셀에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다. 도 11의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다. 도 11 하단의 표는 문턱 전압을 기준으로 구분된 메모리 셀 그룹들에 대한 로그-우도비(LLR: Log Likelihood Ratio) 값을 나타낸다.
도 11을 참조하면, 소거 상태(E0) 셀의 문턱 전압 산포는 다른 프로그램 상태, 예를 들어 제 1 프로그램 상태(P1)에 비하여 더 확산될 수 있다. 따라서 소거 상태(E0) 셀로부터 독출된 데이터의 신뢰도는 산포의 확산에 따라 보정될 수 있다. 예를 들어, 소거 상태(E0) 셀이 속하는 그룹에 대한 LLR 값은 보다 "0"에 가깝게 보정될 수 있다.
본 발명의 메모리 시스템은 보조 에러 정정 동작시 소거 상태 셀로부터 독출된 MSB 비트에 대한 LLR 값을 보정하므로 소거 상태 셀의 문턱 전압 변화에 의한 에러 발생을 감소시킬수 있다.
도 12는 최고 상태 셀에 대응되는 신뢰도를 MSB에 적용하는 동작을 도시하는 도면이다. 도 12의 도면에서 가로축은 메모리 셀들의 문턱 전압을, 세로축은 메모리 셀들의 수를 나타낸다. 도 12 하단의 표는 문턱 전압을 기준으로 구분된 메모리 셀 그룹들에 대한 로그-우도비(LLR: Log Likelihood Ratio) 값을 나타낸다.
도 12를 참조하면, 최고 상태(P3) 셀의 문턱 전압 산포는 다른 프로그램 상태, 예를 들어 제 2 프로그램 상태(P2)에 비하여 더 확산될 수 있다. 따라서 최고 상태(P3) 셀로부터 독출된 데이터의 신뢰도는 산포의 확산에 따라 보정될 수 있다. 예를 들어, 최고 상태(P3) 셀이 속하는 그룹에 대한 LLR 값은 보다 "0"에 가깝게 보정될 수 있다.
본 발명의 메모리 시스템은 보조 에러 정정 동작시 최고 상태 셀로부터 독출된 MSB 비트에 대한 LLR 값을 보정하므로 소거 상태 셀의 문턱 전압 변화에 의한 에러 발생을 감소시킬수 있다.
상기 실시예들에서는 2-비트 멀티 레벨 셀에 저장되는 MSB에 대하여 설명되었으나 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다. 본 발명은 3-비트 이상의 비트를 저장하는 멀티 레벨 셀에 저장되는 다양한 비트에 대하여 적용될 수 있다.
도 13은 본 발명의 다른 실시예에 의한 메모리 셀에 프로그램된 값을 연판정 동작으로 독출하는 동작을 도시하는 도면이다. 도 13의 메모리 셀은 하나의 메모리 셀에 3-비트를 저장한다.
도 13을 참조하면, 연판정 동작시 다양한 로직에 의하여 메모리 셀에 프로그램된 MSB 비트가 독출될 수 있다. 연판정 동작에서, 독출된 MSB 데이터 및 신뢰도 비트에 의하여 기초 에러 정정이 시도될 것이다. 기초 에러 정정이 실패한 경우, 보조 데이터에 의한 보조 에러 정정이 시도될 것이다.
이때 본 발명의 실시예에 있어서, 보조 데이터는 제 1 좌측 읽기 전압(VL1)에 의한 독출 데이터(이하 제 1 보조 데이터, Secondary data 1)일 수 있다. 혹은 보조 데이터는 제 2 우측 읽기 전압(VR1)에 의한 독출 데이터(이하 제 2 보조 데이터, Secondary data 2)일 수 있다.
제 1 보조 데이터에서, 논리값 '1'을 가지는 비트는 논리값 '1'을 가지는 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다. 제 2 보조 데이터에서, 논리값 '0'을 가지는 비트는 논리값 '1'을 가지는 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다.
본 발명의 연판정 읽기 동작은 보조 에러 정정 동작시 소거 상태 셀 혹은 최고 상태 셀로부터 독출된 MSB 비트에 대한 LLR 값을 보정하므로 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화에 의한 에러 발생을 감소시킬수 있다.
도 14는 본 발명의 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다. 본 발명의 데이터 처리 방법은 읽기 동작시 소거 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 혹은 본 발명의 데이터 처리 방법은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 이러한 읽기 동작에 의하여, 본 발명의 데이터 처리 방법은 독출된 데이터의 신뢰성을 높일 수 있다.
S100 단계에서, 경판정 에러 정정을 위한 MSB 비트가 독출된다.
S110 단계에서, S100 단계에서 독출된 MSB 비트에 대한 경판정 에러 정정이 수행된다.
S120 단계에서, 경판정 에러 정정의 성공 여부가 판별된다. 에러 정정에 성공하면 데이터 처리는 종료된다.
S130 단계에서, 경판정 에러 정정이 실패한 경우 연판정 에러 정정을 위한 신뢰도 데이터가 독출된다.
S140 단계에서, S100 단계에서 독출된 MSB 비트에 대하여 S130 단계에서 독출된 신뢰도 데이터를 참조하여 기초 연판정 에러 정정이 수행된다. 동시에, 보조 연판정 에러 정정을 위한 보조 데이터가 독출된다. 보조 데이터는 보조 데이터는 일차적으로 전송된 MSB 비트 중 소거 상태 셀로부터 독출된 비트를 지시한다. 혹은 보조 데이터는 일차적으로 전송된 MSB 비트 중 최고 상태 셀로부터 독출된 비트를 지시한다.
S150 단계에서, 기초 연판정 에러 정정의 성공 여부가 판별된다. 에러 정정에 성공하면 데이터 처리는 종료된다.
S160 단계에서, 기초 연판정 에러 정정이 실패한 경우 S100 단계에서 독출된 MSB 비트에 대하여 S140 단계에서 독출된 보조 데이터를 참조하여 보조 연판정 에러 정정이 수행된다.
본 발명의 데이터 처리 방법은 보조 에러 정정 동작시 소거 상태 셀 혹은 최고 상태 셀로부터 독출된 MSB 비트에 대한 신뢰도를 보정하므로 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화에 의한 에러 발생을 감소시킬수 있다.
도 15는 본 발명의 실시 예에 따른 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(2000)은 호스트(2100)와 메모리 카드(2200)를 포함한다. 호스트(2100)는 호스트 컨트롤러(2110), 호스트 접속 유닛(2120), 그리고 디램(2130)을 포함한다.
호스트(2100)는 메모리 카드(2200)에 데이터를 쓰거나, 메모리 카드(2200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(2110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(2100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(2120)을 통해 메모리 카드(2200)로 전송한다. 디램(2130)은 호스트(2100)의 메인 메모리이다.
메모리 카드(2200)는 카드 접속 유닛(2210), 카드 컨트롤러(2220), 그리고 플래시 메모리(2230)를 포함한다. 카드 컨트롤러(2220)는 카드 접속 유닛(2210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(2220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(2230)에 저장한다. 플래시 메모리(2230)는 호스트(2100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(2100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 15에 도시된 메모리 카드 시스템(2000)은 플래시 메모리(2230)로부터 데이터를 독출하는 과정에서 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 따라서 독출된 데이터의 신뢰성을 높일 수 있다.
도 16은 본 발명의 실시 예에 따른 메모리 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 16을 참조하면, SSD 시스템(3000)은 호스트(3100)와 SSD(3200)를 포함한다. 호스트(3100)는 호스트 인터페이스(3111), 호스트 컨트롤러(3120), 그리고 디램(3130)을 포함한다.
호스트(2100)는 SSD(3200)에 데이터를 쓰거나, SSD(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(3111)를 통해 SSD(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
SSD(3200)는 호스트 인터페이스(3211)를 통해 호스트(3100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 3221)를 통해 전원을 입력받는다. SSD(3200)는 복수의 불휘발성 메모리(3201~320n), SSD 컨트롤러(3210), 그리고 보조 전원 장치(3220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(3201~320n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(3201~220n)는 SSD(3200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(3201~320n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(3210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(3210)는 호스트 인터페이스(3211)를 통해 호스트(3100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(3210)는 호스트(3100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(3210)의 내부 구성은 도 15를 참조하여 상세하게 설명된다.
보조 전원 장치(3220)는 전원 커넥터(3221)를 통해 호스트(3100)와 연결된다. 보조 전원 장치(3220)는 호스트(3100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(3220)는 SSD(3200) 내에 위치할 수도 있고, SSD(3200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(3220)는 메인 보드에 위치하며, SSD(3200)에 보조 전원을 제공할 수도 있다.
도 17은 도 16에 도시된 SSD 컨트롤러(3210)의 구성을 예시적으로 보여주는 블록도이다. 도 17을 참조하면, SSD 컨트롤러(3210)는 NVM 인터페이스(3211), 호스트 인터페이스(3212), 제어 유닛(3213), 에스램(3214), 에러 정정 회로(3215)를 포함한다.
NVM 인터페이스(3211)는 호스트(3100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(3211)는 불휘발성 메모리(3201~320n)로부터 읽은 데이터를 호스트 인터페이스(3212)를 경유하여 호스트(3100)로 전달한다.
호스트 인터페이스(3212)는 호스트(3100)의 프로토콜에 대응하여 SSD(3200)와의 인터페이싱을 제공한다. 호스트 인터페이스(3212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(3100)와 통신할 수 있다. 또한, 호스트 인터페이스(3212)는 호스트(3100)가 SSD(3200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
제어 유닛(3213)은 호스트(3100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(3213)은 호스트 인터페이스(3212)나 NVM 인터페이스(3211)를 통해 호스트(3100)나 불휘발성 메모리(3201~320n)를 제어한다. 제어 유닛(3213)은 SSD(3200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(3201~320n)의 동작을 제어한다.
에스램(3214)은 불휘발성 메모리(3201~320n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(3214)은 호스트(3100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(3214)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(3220)를 이용하여 불휘발성 메모리(3201~320n)에 저장될 수 있다.
에러 정정 회로(3215)는 불휘발성 메모리(3201~320n)로부터 데이터를 독출하는 과정에서 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 따라서 독출된 데이터의 신뢰성을 높일 수 있다.
다시 도 16을 참조하면, 본 실시예의 SSD 시스템(3000)은 불휘발성 메모리(3201~320n)로부터 데이터를 독출하는 과정에서 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 따라서 독출된 데이터의 신뢰성을 높일 수 있다.
도 16 및 도 17에서 SRAM(3214)은 불휘발성 메모리로 대체될 수도 있다. 즉, 본 발명의 다른 실시 예에 따른 SSD 시스템(3000)은 SRAM(3214)의 역할을 플래시 메모리, PRAM, RRAM, MRAM 등의 불휘발성 메모리가 수행하도록 구현될 수도 있다.
도 18은 본 발명의 실시 예에 따른 메모리 장치를 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(3000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 18을 참조하면, 전자 장치(4000)는 메모리 장치(4100), 전원 장치(4200), 보조 전원 장치(4250), 중앙처리장치(4300), 디램(4400), 그리고 사용자 인터페이스(4500)를 포함한다. 메모리 장치(4100)은 플래시 메모리(4110) 및 메모리 컨트롤러(4120)를 포함한다. 메모리 장치(4100)은 전자 장치(4000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(4000)는 플래시 메모리(4110)로부터 데이터를 독출하는 과정에서 소거 상태 셀 혹은 최고 상태 셀의 문턱 전압 변화로부터 발생되는 에러를 보정할 것이다. 따라서 독출된 데이터의 신뢰성을 높일 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 불휘발성 메모리 장치 및 메모리 컨트롤러의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
1000: 메모리 시스템
1100: 불휘발성 메모리 장치
1200: 메모리 컨트롤러
1210: 에러 정정 회로

Claims (10)

  1. 복수의 메모리 셀들을 포함하는 불휘발성 메모리 장치; 및
    경판정 에러 정정 연산을 위해 상기 불휘발성 메모리 장치로부터 독출되는 보조 데이터 및 상기 보조 데이터에 기초하여 생성되는 기초 데이터를 제공받고, 그리고 상기 기초 데이터 중 대상 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시하는 상기 보조 데이터에 기초하여 상기 기초 데이터에 대한 보조 연판정 에러 정정 연산을 수행하는 에러 정정 회로를 포함하는 저장 장치.
  2. 제 1항에 있어서,
    상기 보조 데이터는 상기 기초 데이터 중 소거 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시하는 저장 장치.
  3. 제 1항에 있어서,
    상기 보조 데이터는 상기 기초 데이터 중 가장 높은 문턱 전압을 갖는 프로그램 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시하는 저장 장치.
  4. 삭제
  5. 제 1항에 있어서,
    상기 대상 상태로 프로그램된 상기 메모리 셀들로부터 독출되는 상기 데이터의 신뢰도는 로그-우도비(LLR: Log-Likelihood Ratio)인 저장 장치.
  6. 제 5항에 있어서,
    상기 보조 연판정 에러 정정 연산 시, 상기 에러 정정 회로는, 상기 보조 데이터에 기초하여, 상기 대상 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 로그-우도의 절대값을 다른 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터의 로그-우도의 절대값에 비하여 작은 크기로 보정하는 저장 장치.
  7. 에러 정정 회로에 의해 수행되는, 불휘발성 메모리 장치로부터 독출된 데이터의 처리 방법에 있어서,
    상기 에러 정정 회로에 의해, 상기 불휘발성 메모리 장치로부터 기초 데이터를 제공받는 단계;
    상기 에러 정정 회로에 의해, 상기 불휘발성 메모리 장치로부터 보조 데이터를 제공받는 단계; 및
    상기 에러 정정 회로에 의해, 상기 보조 데이터에 기초하여, 상기 기초 데이터 대한 보조 연판정 에러 정정 연산을 수행하는 단계를 포함하되,
    상기 기초 데이터는 경판정 에러 정정 연산시 복수의 메모리 셀들로부터 독출되는 상기 보조 데이터에 기초하여 생성되고, 그리고
    상기 보조 데이터는 상기 기초 데이터 중 대상 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시하는 데이터 처리 방법.
  8. 제 7항에 있어서,
    상기 보조 데이터는 상기 기초 데이터 중 소거 상태로 프로그램된 메모리 셀들 또는 가장 높은 문턱 전압을 갖는 프로그램 상태로 프로그램된 메모리 셀들로부터 독출되는 데이터를 지시하는 데이터 처리 방법.
  9. 제 7항에 있어서,
    상기 에러 정정 회로에 의해, 상기 보조 연판정 에러 정정 연산을 수행하기 전 상기 기초 데이터를 이용하여 기초 연판정 에러 정정 연산을 수행하는 단계를 더 포함하는 데이터 처리 방법.
  10. 제 9항에 있어서,
    상기 기초 연판정 에러 정정 연산을 수행하는 단계는 상기 불휘발성 메모리 장치로부터 보조 데이터를 제공받는 단계와 동시에 수행되는 데이터 처리 방법.
KR1020120059957A 2012-06-04 2012-06-04 저장 장치 및 그것의 데이터 처리 방법 KR102089570B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120059957A KR102089570B1 (ko) 2012-06-04 2012-06-04 저장 장치 및 그것의 데이터 처리 방법
US13/786,509 US8996964B2 (en) 2012-06-04 2013-03-06 Nonvolatile memory device and related read method using hard and soft decision decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120059957A KR102089570B1 (ko) 2012-06-04 2012-06-04 저장 장치 및 그것의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20130136274A KR20130136274A (ko) 2013-12-12
KR102089570B1 true KR102089570B1 (ko) 2020-03-16

Family

ID=49671836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120059957A KR102089570B1 (ko) 2012-06-04 2012-06-04 저장 장치 및 그것의 데이터 처리 방법

Country Status (2)

Country Link
US (1) US8996964B2 (ko)
KR (1) KR102089570B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014140111A (ja) * 2013-01-21 2014-07-31 Sony Corp コントローラ、情報処理システム、コントローラの制御方法およびプログラム
KR102120823B1 (ko) * 2013-08-14 2020-06-09 삼성전자주식회사 비휘발성 메모리 장치의 독출 시퀀스 제어 방법 및 이를 수행하는 메모리 시스템
US9329935B2 (en) 2014-05-19 2016-05-03 Seagate Technology Llc Method to dynamically update LLRs in an SSD drive and/or controller
US9336891B2 (en) * 2014-07-02 2016-05-10 Sandisk Technologies Inc. Look ahead read method for non-volatile memory
CN105468471A (zh) * 2014-09-12 2016-04-06 光宝科技股份有限公司 固态存储装置及其错误更正方法
KR102280433B1 (ko) * 2015-09-23 2021-07-22 삼성전자주식회사 전력 공급 회로 및 이를 포함하는 저장 장치
KR20170075065A (ko) * 2015-12-22 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
KR102349382B1 (ko) * 2017-10-11 2022-01-12 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20210156563A (ko) * 2020-06-18 2021-12-27 삼성전자주식회사 에러 체크 코드(ecc) 디코더 및 이를 포함하는 메모리 시스템
KR102247164B1 (ko) * 2020-06-23 2021-05-03 한국과학기술원 채널 복호기의 동작과 결합한 플래시 메모리 읽기 방법 및 그 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177931A1 (en) 2008-01-03 2009-07-09 Samsung Eletronics Co.,Ltd Memory device and error control codes decoding method
US20120134207A1 (en) * 2010-11-25 2012-05-31 Samsung Electronics Co., Ltd. Non-Volatile Memory Device And Read Method Thereof
US20130077400A1 (en) 2011-09-22 2013-03-28 Kabushiki Kaisha Toshiba Memory device and control method of memory device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904793B2 (en) 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
US7966546B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7656707B2 (en) 2007-12-14 2010-02-02 Intel Corporation Systems and methods for discrete channel decoding of LDPC codes for flash memory
US8464131B2 (en) 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US8462549B2 (en) 2008-07-01 2013-06-11 Lsi Corporation Methods and apparatus for read-side intercell interference mitigation in flash memories
TW201019327A (en) 2008-09-30 2010-05-16 Lsi Corp Methods and apparatus for soft data generation for memory devices using reference cells
JP4818381B2 (ja) 2009-03-02 2011-11-16 株式会社東芝 半導体メモリ装置
KR101601849B1 (ko) * 2009-10-21 2016-03-09 삼성전자주식회사 불휘발성 메모리 장치, 그것의 읽기 방법, 그리고 그것을 포함하는 메모리 시스템
JP2011197957A (ja) * 2010-03-18 2011-10-06 Toshiba Corp 誤り訂正符号復号装置及び誤り訂正符号復号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177931A1 (en) 2008-01-03 2009-07-09 Samsung Eletronics Co.,Ltd Memory device and error control codes decoding method
US20120134207A1 (en) * 2010-11-25 2012-05-31 Samsung Electronics Co., Ltd. Non-Volatile Memory Device And Read Method Thereof
US20130077400A1 (en) 2011-09-22 2013-03-28 Kabushiki Kaisha Toshiba Memory device and control method of memory device

Also Published As

Publication number Publication date
US8996964B2 (en) 2015-03-31
US20130326314A1 (en) 2013-12-05
KR20130136274A (ko) 2013-12-12

Similar Documents

Publication Publication Date Title
KR102089570B1 (ko) 저장 장치 및 그것의 데이터 처리 방법
US8479083B2 (en) Flash memory devices having multi-bit memory cells therein with improved read reliability
US8386860B2 (en) Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller
KR101616100B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR101835605B1 (ko) 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법
US8576622B2 (en) Non-volatile memory device and read method thereof
US8284599B2 (en) Nonvolatile memory device and related programming method
US9891991B2 (en) Decoding method, memory storage device and memory control circuit unit
KR101736792B1 (ko) 플래시 메모리 및 그것의 셀프 인터리빙 방법
KR101716716B1 (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
US8289771B2 (en) Data reading method and control circuit and memory controller using the same
KR101606880B1 (ko) 데이터 저장 시스템 및 그것의 채널 구동 방법
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US9478298B2 (en) Memory system and method of reading data thereof
KR101895605B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
US8631306B2 (en) Method and memory system using a priori probability information to read stored data
KR101949987B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20140031556A (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
KR20140096796A (ko) 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법
US8218363B2 (en) Flash memory device and methods programming/reading flash memory device
US9009576B1 (en) Adaptive LLR based on syndrome weight
KR20130030099A (ko) 플래시 메모리 시스템 및 플래시 메모리 시스템의 독출 방법
JP2012164072A (ja) メモリコントローラ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant