KR20100104840A - 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템 - Google Patents

셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템 Download PDF

Info

Publication number
KR20100104840A
KR20100104840A KR1020090023509A KR20090023509A KR20100104840A KR 20100104840 A KR20100104840 A KR 20100104840A KR 1020090023509 A KR1020090023509 A KR 1020090023509A KR 20090023509 A KR20090023509 A KR 20090023509A KR 20100104840 A KR20100104840 A KR 20100104840A
Authority
KR
South Korea
Prior art keywords
ecc
cell
data
user data
memory
Prior art date
Application number
KR1020090023509A
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 KR1020090023509A priority Critical patent/KR20100104840A/ko
Priority to US12/726,963 priority patent/US8607120B2/en
Publication of KR20100104840A publication Critical patent/KR20100104840A/ko

Links

Images

Classifications

    • 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/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/13Linear codes
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]

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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

셀 패턴에 따라 추가 ECC가 가능한 반도체 메모리 장치, 상기 장치를 포함하는 전자 시스템이 개시된다. 상기 반도체 메모리 장치는 사용자 데이터를 저장하는 메모리 셀 어레이; 및 상기 사용자 데이터에 대한 제1 ECC 인코딩을 수행하고 수행결과를 ECC(error correcting code) 정보 데이터로서 출력하는 ECC 엔진을 포함하며, 상기 ECC 엔진은, 상기 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행하여 특정 패턴에 의해서 발생될 수 있는 데이터 에러를 방지할 수 있다.
ECC, 패턴, 비휘발성 메모리

Description

셀 패턴에 따라 추가 ECC가 가능한 반도체 메모리 장치, 상기 장치를 포함하는 전자 시스템{Semiconductor memory device that addition ECC is possible according to cell pattern, electronic system there-of}
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 셀 패턴에 따라 추가 ECC가 가능한 반도체 메모리 장치, 상기 장치를 포함하는 전자 시스템에 관한 것이다.
최근에는 메모리의 집적도를 더욱 향상시키기 위해서 한 개의 메모리 셀에 복수의 데이터를 저장하는 멀티-레벨 메모리에 대한 연구가 활발히 진행되고 있다. 멀티-레벨 메모리의 메모리 셀에는 2 비트 이상의 멀티-비트가 저장될 수 있다. 이렇게 멀티-비트를 저장하는 메모리 셀을 멀티-레벨 셀(multi-level cell: MLC)이라 하고, 이에 대해 단일-비트를 저장하는 메모리 셀을 단일-레벨 셀(single-level cell: SLC)이라 한다. 멀티-레벨 셀은 멀티-비트를 저장하므로, 3개 이상의 데이터 저장 상태(셀 상태 혹은 상태라 함)를 가지며 이에 대응하는 3개 이상의 문턱 전압(Vth) 분포를 가진다.
멀티-레벨 셀의 문턱 전압 분포는 시간이 지남에 따라 이웃셀과의 커플 링(coupling), 전하 손실(charge loss) 등으로 인하여 변경될 수 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 셀 패턴에 따라 추가 ECC가 가능한 반도체 메모리 장치, 상기 장치를 포함하는 메모리 시스템을 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 반도체 메모리 장치는, 사용자 데이터를 저장하는 메모리 셀 어레이; 및 상기 사용자 데이터에 대한 제1 ECC(error correcting code) 인코딩을 수행하고 수행결과를 ECC 정보 데이터로서 출력하는 ECC 엔진을 포함하며, 상기 ECC 엔진은, 상기 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행할 수 있다.
상기 ECC 엔진은, 상기 검출된 셀 패턴에 해당하는 셀 데이터를 매핑 테이블에 매핑한 후에 상기 제2 ECC 인코딩을 수행할 수 있다.
상기 ECC 엔진은, 상기 ECC 정보 데이터에 기초하여 상기 사용자 데이터에 대한 제1 ECC 디코딩을 수행하여 에러가 발생한 비트를 정정하며, 상기 사용자 데이터가 상기 셀 패턴을 포함하는 경우, 제2 ECC 디코딩을 수행하여 상기 셀 패턴에 의해서 에러가 발생한 비트를 정정할 수 있다.
상기 제1 ECC 디코딩에 의해서 정정되는 비트수와 상기 제2 ECC 디코딩에 의해서 정정되는 비트수는 비대칭적일 수 있다.
상기 제1 ECC 디코딩에 의해서 정정되는 비트수는, 상기 제2 ECC 디코딩에 의해서 정정되는 비트수보다 작을 수 있고, 상기 미리 결정된 셀 패턴은, 상기 메모리 셀 어레이 상에서 에러에 취약한 셀들의 배치 구조일 수 있다.
상기 메모리 셀 어레이는, 상기 사용자 데이터를 저장하는 메인영역과 상기 ECC(error correcting code) 정보 데이터를 저장하는 스페어 영역을 포함할 수 있다.
상기 메모리 셀 어레이의 상기 ECC 엔진에 의해서 제2 ECC 인코딩된 데이터는 상기 스페어 영역에 저장될 수 있다.
상기 기술적 과제를 달성하기 위한 전자 시스템은 상기 전자 시스템의 전체적인 동작을 제어하는 메모리 컨트롤러; 및 상기 메모리 컨트롤러에 의해 처리된/처리될 사용자 데이터를 저장하는 비휘발성 메모리 장치를 포함하며, 상기 메모리 컨트롤러는, 상기 사용자 데이터에 대한 제1 ECC 인코딩을 수행하고 수행결과를 ECC 정보 데이터로서 출력하며, 상기 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행할 수 있다.
상기 메모리 컨트롤러는, 상기 검출된 셀 패턴에 해당하는 셀 데이터를 매핑 테이블에 매핑한 후에 상기 제2 ECC 인코딩을 수행할 수 있다.
상술한 바와 같이 본 발명에 따르면, 특정 셀 패턴에 기초해서 추가적으로 ECC 인코딩을 수행함으로써 셀 배치에 따라서 발생할 수 있는 취약한 셀의 데이터 에러발생을 방지할 수 있는 효과가 있다. 이에 따라 비 휘발성 메모리 장치 및 이를 포함하는 전자 시스템의 신뢰성이 향상될 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성 요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상 의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도로서, 특히 NAND형 플래시 메모리 장치의 블록도이다. NAND형 플래시 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(130), 및 페이지 버퍼 회로(150)를 구비한다.
메모리 셀 어레이(110)는 복수의 메모리 블록들(미도시)로 나뉘어져 있으며, 각각의 메모리 블록은 열 방향으로 신장하는 복수의 스트링들(110_1 내지 110_M)을 구비한다. 도 1에서는 설명의 편의를 위해 하나의 메모리 블록만을 도시하였다. 각각의 스트링은 스트링 선택 트랜지스터(string selecting transistor: SST), 접지 선택 트랜지스터(ground selecting transistor; GST), 및 스트링 선택 트랜지스터(SST)와 접지 선택 트랜지스터(GST) 사이에 직렬로 연결되는 복수의 메모리 셀 트랜지스터들(memory cell transistors: MCT<0> 내지 MCT<N-1>)을 구비한다. 스트링 선택 트랜지스터(SST)의 게이트는 스트링 선택 라인(string selection line: SSL)에 연결되고, 드레인은 대응하는 비트 라인(BL1, BL2)에 연결된다. 접지 선택 트랜지스터(GST)의 게이트는 접지 선택 라인(ground selection line: GSL)에 연결되고, 소스는 공통 소오스 라인(common source line; CSL)에 연결된다. 복수의 메모리 셀 트랜지스터들(MCT<0> 내지 MCT<N-1>)의 제어 게이트들은 대응하는 워드 라인들(WL<0> 내지 WL<N-1>)에 각각 연결된다.
여기서 라인들(SSL, WL<0> 내지 WL<N>, GSL)의 전압 레벨은 소정의 타이밍 제어신호(미도시)에 응답하여 로우 디코더(130)에 의해 제어되며, 비트라인들(BL1, BL2) 각각의 전압 레벨은 페이지 버퍼 회로(150)에 구비되는 각각의 페이지 버퍼 (미도시)에 의해 제어된다. 여기서, 라인들(SSL, WL0 내지 WLn, GSL)이 제어되는 동작과 비트라인들(BL1, BL2)이 제어되는 동작은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구나 알 수 있으므로, 이에 대한 구체적인 설명은 생략한다. 메모리셀 어레이(110)의 각 메모리 셀(MCT<0> 내지 MCT<N-1>)은 복수의 데이터(즉, 2 비트 이상의 멀티-비트)를 저장하는 멀티-레벨 셀이다.
도 2는 2-비트 메모리셀들의 각 상태별 문턱 전압 분포(즉, 셀 산포)를 나타내는 그래프이다. 도 2 에 도시된 그래프에서 x축은 문턱전압(Vth)을, y축은 각 상태에 해당하는 셀의 수를 나타낸다. 도 2를 참조하면, 2-비트 메모리셀들은 소거 상태(미도시), 및 제1 내지 제3 프로그램 상태(P1~P3)를 가질 수 있다.
도 2에서 그래프(L1)은 초기 셀 산포를 나타내고, 그래프(L2)는 시간이 경과한 후의 셀 산포를 나타낸다. 도 2를 통해, 전하 손실로 인하여 셀 산포가 시간이 지남에 따라 문턱 전압(Vth)이 낮아지는 쪽으로 쉬프트됨을 알 수 있다. 특히, 문턱 전압(Vth)이 높은 셀 상태가 문턱 전압이 낮은 셀 상태에 비하여 상대적으로 전하 손실이 많으며, 이에 따라, 문턱 전압(Vth)이 높은 상태일수록 변경 정도(쉬프트량)가 크다.
도 3 및 도 4는 이웃 셀의 프로그램으로 인한 커플링 효과를 설명하기 위한 도면이다.
도 3의 (a)는 워드라인(WL1)과 비트라인(BL2)의 교차점의 셀(이하, 기준셀이라 함)은 제1 프로그램 상태(P1)로 프로그램된 셀이고 이 셀의 이웃셀들, 즉 워드라인(WL1)과 비트라인들(BL1 및 BL3)의 교차점들의 셀들 및 워드라인(WL2)과 비트 라인들(BL1, BL2 및 BL3)의 교차점들의 셀들은 모두 소거된 상태(E)임을 도시한다. 도 3의 (a)에 대응하는 셀 산포는 도 3의 (b)에 도시된 바와 같을 수 있다.
도 3의 (a)의 경우에서 도 4의 (a)와 같이 프로그램되는 경우를 가정한다. 즉, 제1 프로그램 상태(P1)를 가지는 기준셀의 이웃셀들, 즉 워드라인(WL1)과 비트라인들(BL1 및 BL3)의 교차점들의 셀들 및 워드라인(WL2)과 비트라인들(BL1, BL2 및 BL3)의 교차점들의 셀들이 모두 제3 프로그램 상태(P3)로 프로그램된다고 가정한다. 도 4의 (a)에 도시된 커패시터는 기준셀과 이웃셀들간의 커플링 효과를 나타내기 위해 모델링된 커패시터이다.
도 4의 (a)와 같이 기준셀의 이웃셀들이 제3 프로그램 상태(P3)로 프로그램된 경우, 셀 산포는 도 4의 (b)에 도시된 바와 같을 수 있다. 도 4의 (b)에 도시된 바와 같이, 이웃셀들이 소거 상태에서 제3 프로그램 상태(P3)로 프로그램됨에 따라 커플링 효과로 인하여, 제1 프로그램 상태(P1)의 셀은 P1 에서 P1'로 변경된 산포를 갖게 된다. 즉, 커플링 디스터브(coupling disturb)에 의하여 문턱 전압의 산포가 "P1"에서 "P1'"로 변경된다.
즉, 기준셀과 인접하는 셀들이 특정 패턴(예컨대, P3-P1-P3)으로 프로그램되는 경우, 카플링 효과로 인해 기준셀에 저장되는 상태는 변경될 수 있다.
도 5는 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템의 블록도이다. 이를 참조하면, 비휘발성 메모리 시스템(600)은 비휘발성 메모리 장치(620) 및 상기 메모리 장치(620)를 컨트롤하는 메모리 컨트롤러(610)를 포함한다.
메모리 장치(620)는 메모리 셀 어레이(530), 디코더(540), 기입 드라이버/센 스앰프(write driver/SA)회로(550), 칩 컨트롤러(560), 전압 발생기(570) 및 입출력 회로(580)를 구비한다.
메모리 셀 어레이(530)는 메인 영역(531)와 스페어 영역(532)을 포함한다.
메인 영역(531)은 사용자 데이터를 저장하는데 사용될 수 있어 사용자 데이터 영역이라고도 칭하며, 스페어 영역은 ECC(error correcting code) 정보 데이터를 저장하는데 사용될 수 있다.
메모리셀 어레이(530)의 상세 구성 및 동작은 NAND형 메모리 셀 어레이의 경우 도 1에 도시된 메모리셀 어레이(110)와 유사하다.
디코더(540)는 로우 어드레스들에 응답하여 다수의 워드라인들 중에서 하나의 워드라인을 선택하고, 선택된 워드 라인으로 제1동작 전압을 공급하고 비선택된 워드라인들 각각으로 제2동작 전압을 공급할 수 있다. 예컨대, 프로그램 동작 모드에서, 디코더(540)는 선택된 워드라인으로 제1동작 전압(예컨대, 프로그램 전압)을 공급하고 비선택된 워드라인들 각각으로 제2동작 전압(예컨대, 패스 전압)을 공급할 수 있다.
프로그램 전압은 15V 내지 20V일 수 있고, 패스 전압은 10V일 수 있다. 또한, 읽기 동작 모드에서 디코더(540)는 선택된 워드라인으로 제1동작 전압(예컨대, 접지 전압)을 공급하고 비선택된 워드라인들 각각으로 제2동작 전압(예컨대, 읽기 전압)을 공급할 수 있다. 읽기 전압은 4.5V일 수 있다. 프로그램 전압은 패스 전압보다 높고, 패스 전압은 읽기 전압보다 높다.
기입 드라이버/센스앰프 회로(550)는 다수의 비트라인들에 선택적으로 연결 되어, 지정된 메모리 셀들로 데이터를 기입(즉, 프로그램)하거나 지정된 메모리 셀들로부터 데이터를 감지 증폭함으로써 독출한다. 기입 드라이버/센스앰프회로(550)는 프로그램 동작시 프로그램될 데이터 셋을 저장하고, 읽기 동작시 메모리셀들로부터 독출된 데이터 셋를 저장하기 위한 다수의 데이터 저장 장치들(미도시)을 구비할 수 있다. 다수의 데이터 저장 장치들(미도시) 각각은 다수의 래치들로 구현될 수 있다. 다수의 데이터 저장 장치들(미도시)은 또한 프로그램 검증 동작시 독출된 데이터 셋을 저장할 수 있다.
기입 드라이버/센스앰프 회로(550)와 메모리셀 어레이(530) 사이에는 기입 드라이버 또는 센스앰프를 다수의 비트라인들에 선택적으로 연결하기 위한 스위칭 블록(미도시)이 더 구비될 수 있다.
칩 컨트롤러(560)는 외부에서 제공된 커맨드에 응답하여 메모리 장치의 동작(예컨대, 프로그램 동작, 소거 동작, 독출 동작 등)을 제어하기 위한 내부 제어 신호들(미도시)을 출력한다.
전압 발생기(570)는 메모리 장치(620)의 동작에 필요한 전압(예컨대, 상술한 프로그램 전압, 패스 전압, 읽기 전압 등)을 생성한다.
입출력 회로(580)는 외부(예컨대, 메모리 컨트롤러(580))와의 인터페이스 기능을 수행한다. 구체적으로는 외부로부터 커맨드 및 프로그램할 데이터를 수신하고, 상태 신호 및 독출된 데이터를 외부로 전송할 수 있다.
메모리 컨트롤러(610)는 호스트(Host)와 메모리 장치(620)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(610)는 호스트(Host)의 제어에 따라 메 모리 장치(620)를 제어하여 데이터를 기록하거나 데이터를 독출한다.
도 5에 도시된 비휘발성 메모리 시스템(600)은 메모리 카드일 수 있다.
메모리 컨트롤러(610)는 SRAM(Static Random Access Memory)(511), 중앙 처리 장치(CPU: Central Processing Unit)(512), 호스트 인터페이스(Host I/F)(513), 메모리 인터페이스(Memory I/F)(514), 및 ECC(error correcting code) 엔진(790)을 포함할 수 있다.
SRAM(Static Random Access Memory)(511)은 중앙 처리 장치(512)의 동작 메모리로써 사용되고, 호스트 인터페이스(513)는 메모리 카드(500)와 접속되는 호스트의 데이터 교환 프로토콜을 구비한다. 메모리 인터페이스(514)는 메모리 장치(620)와 인터페이싱한다. 중앙 처리 장치(512)는 메모리 장치(620)로/로부터 데이터 기록/독출을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 비휘발성 메모리 시스템(600)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
ECC 엔진(790)은 사용자 데이터에 대한 제1 ECC 인코딩을 수행하고 수행결과를 ECC(error correcting code) 정보 데이터로서 출력할 수 있다. 이때, 상기 ECC 엔진(790)은 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행할 수 있다.
이때, ECC(error correcting code) 정보 데이터는 메모리셀 어레이(530) 상 의 스페어 영역(532)에 저장될 수 있으며, 제1 ECC 인코딩 및 제2 ECC 인코딩은 서로 같은 에러정정 알고니즘일 수 있다.
한편, 미리 결정된 셀 패턴은 메모리셀 어레이(530) 상에서 에러에 취약한 셀들의 배치 구조이다. 예컨대, 메모리셀 어레이(530) 상에서의 셀(예컨대, 도 6의 Victim Cell)이 제1 상태(또는, 제1 프로그램 상태, 예컨대, P3)를 갖는 셀 사이에 위치하는 경우, 상기 셀(Victim Cell)의 데이터 독출시 에러(error)가 발생할 수 있다.
보다 상세하게는, 제1 상태(P3), 제2 상태(P2), 또는 제3 상태(E)와 상응하는 데이터를 저장하는 셀(예컨대, 도 6의 Victim Cell)이 제1 상태(또는, 제1 프로그램 상태, 예컨대, P3)를 갖는 셀 사이에 위치하는 경우, 상기 셀(Victim Cell)에는 인접한 셀들의 커플링 효과로 인해 데이터의 저장 및 독출에서 에러가 발생될 수 있다.
이와 같은 에러발생을 방지하기 위해, 본 발명의 실시 예에 따른 ECC 엔진(790)은 사용자 데이터에 기초하여 메모리셀 어레이(530)의 셀 배치가 미리 결정된 셀 패턴(예컨대, 제1 상태(P3)를 갖는 셀 - 소정의 프로그램상태(예컨대, 제1 상태(P3), 제2 상태(P2), 또는 제3 상태(E))를 갖는 셀 - 제1 상태(P3)를 갖는 셀)을 갖는 경우, 셀 패턴에 해당하는 셀(Victim Cell)의 데이터에 대하여 추가적으로 ECC 인코딩을 수행한다.
따라서, 본 발명의 실시 예에 따른 NAND형 플래시 메모리 장치(100)의 ECC 엔진(790)은 추가적으로 ECC 인코딩을 수행함으로써 셀 배치에 따라서 발생할 수 있는 취약한 셀의 데이터 에러발생을 방지할 수 있는 효과가 있다.
한편, ECC 엔진(790)은 검출된 셀 패턴에 해당하는 셀 데이터를 매핑 테이블(예컨대, 도 6의 T1 및/ 또는 T2)에 매핑한 후에 상기 제2 ECC 인코딩을 수행할 수 있으며, 상기 ECC 엔진(790)에 의해서 제2 ECC 인코딩된 데이터는 메모리 셀어레이(530)의 스페어 영역(532)에 저장될 수 있다.
도 6은 도 5의 비휘발성 메모리 시스템이 특정 패턴에 해당하는 데이터를 매핑하는 과정을 설명하기 위한 도면으로, ECC 엔진(790)은 "M1"과 같이 메모리셀 어레이(530)의 셀 배치가 미리 결정된 셀 패턴(예컨대, 제1 상태(P3)를 갖는 셀 - 소정의 프로그램상태(예컨대, 제1 상태(P3), 제2 상태(P2), 또는 제3 상태(E))를 갖는 셀 - 제1 상태(P3)를 갖는 셀)을 갖는 경우, 상기 소정의 프로그램상태에 해당하는 데이터를 적어도 하나의 매핑 테이블(T1 및 T2)의 특정 어드레스에 매핑시킨 후, ECC 인코딩을 추가적으로 수행할 수 있다.
또한, 도 7은 본 발명의 다른 실시 예에 따른 도 5의 비휘발성 메모리 시스템이 특정 패턴에 해당하는 데이터를 매핑하는 과정을 설명하기 위한 도면으로, ECC 엔진(790)은 "M3"과 같이 메모리셀 어레이(530)의 셀 배치가 미리 결정된 셀 패턴(예컨대, 제1 상태(P3)를 갖는 셀 - 제3 상태(E))를 갖는 셀 - 제1 상태(P3)를 갖는 셀)을 갖는 경우, 상기 제3 상태(E)를 갖는 셀에 해당하는 데이터를 적어도 하나의 매핑 테이블(TB1 및 TB2)의 특정 어드레스에 매핑시킨 후, ECC 인코딩을 추가적으로 수행할 수 있다.
즉, ECC 엔진(790)은 도 7의 실시 예와 같이 미리 결정된 패턴에 해당하는 셀(즉, 기준셀)의 데이터가 제3 상태(E)를 갖는 경우에만 상기 제3 상태(E)와 상응하는 데이터를 적어도 하나의 매핑 테이블(TB1 및 TB2)의 특정 어드레스에 매핑시킨 후, ECC 인코딩을 추가적으로 수행할 수 있다.
또한, ECC 엔진(790)은 ECC 디코딩시 ECC 정보 데이터에 기초하여 사용자 데이터에 대한 제1 ECC 디코딩을 수행하여 에러가 발생한 비트를 정정하며, 상기 사용자 데이터가 상기 셀 패턴을 포함하는 경우, 제2 ECC 디코딩을 수행하여 상기 셀 패턴에 의해서 에러가 발생한 비트를 정정할 수 있다. 상기 제1 ECC 디코딩 및 제2 ECC 디코딩은 서로 같은 에러정정 알고니즘을 사용할 수 있다.
이때, 제1 ECC 디코딩에 의해서 정정되는 비트수와 상기 제2 ECC 디코딩에 의해서 정정되는 비트수는 비대칭적일 수 있으며, 바람직하게는 상기 제1 ECC 디코딩에 의해서 정정되는 비트수는 상기 제2 ECC 디코딩에 의해서 정정되는 비트수보다 작을 수 있다.
ECC 엔진(790)은 ECC에 의해 수정 가능한 비트수가 제한되고, 메모리셀 어레이(530)의 셀 배치가 취약 패턴(예컨대, 제1 상태(P3)를 갖는 셀 - 제3 상태(E))를 갖는 셀 - 제1 상태(P3)를 갖는 셀)을 갖는 경우, 상기 취약 패턴에 해당하는 셀(제3 상태(E))를 갖는 셀)에 대한 ECC를 강화함으로써 기존 ECC 방법에 비해서 에러정정 범위를 증가시킬 수 있다.
따라서, 본 발명의 실시 예에 따른 NAND형 플래시 메모리 장치(100)의 ECC 엔진(790)은 일반적으로 ECC 디코딩에 의해서 정정되는 셀들의 데이터보다 특정 셀 패턴에 따른 취약 셀의 데이터에 대한 ECC 디코딩에 의해서 정정되는 셀들의 데이 터의 비중을 높임으로써 셀 배치에 따라서 발생할 수 있는 취약한 셀의 데이터 에러발생을 효과적으로 방지할 수 있는 효과가 있다.
도 8은 본 발명의 실시예에 따른 전자 시스템의 블록도이다. 도 5와 도 8을 참조하면, 모바일 기기, 노트북, 데스크 톱 컴퓨터와 같은 시스템에 장착될 수 있는 전자 시스템(900)은 본 발명의 일 실시예에 따른 비휘발성 메모리 시스템(600), 전원부(power supply)(910), 중앙 처리 장치(CPU)(920), 램(RAM)(930), 유저 인터페이스(User Interface)(940) 및 이들 구성요소들을 전기적으로 연결하는 시스템 버스(950)를 포함할 수 있다.
CPU(920)는 시스템(900)의 전체적인 동작을 제어하고, RAM(930)은 시스템(900)의 동작을 위해 필요한 정보들을 저장하고, User Interface(940)는 시스템(900)과 사용자와의 인터페이스를 제공한다. 전원부(910)는 내부의 구성 요소들(즉, CPU(920), 램(RAM)(930), 유저 인터페이스(940), 메모리 시스템(600) 등)으로 전원을 공급한다.
본 발명의 실시예에 따른 비휘발성 메모리 시스템(600)의 구성 및 동작은 도 7를 참조하여 상술한 바와 같으므로, 설명의 중복을 피하기 위하여 생략한다.
또한 비록 도면에는 도시되지 않았지만, 상기 전자 시스템(900)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 9는 본 발명의 실시 예에 따른 셀 패턴에 고려한 ecc 방법의 흐름도이다. 도 5와 도 9를 참조하면, ECC 엔진(790)은 메모리셀 어레이(530)에 저장되는 사용자 데이터에 대한 제1 ECC 인코딩을 수행하고 수행결과를 ECC(error correcting code) 정보 데이터로서 출력한다(S10).
ECC 엔진(790)은 사용자 데이터에 기초하여 해당 셀이 미리 결정된 패턴에 속하는지 판단한다(S12). 상기 ECC 엔진(790)은 S12의 판단결과 해당 셀이 미리 결정된 패턴에 속하는 경우, 해당 셀에 상응하는 데이터를 매핑 테이블에 매핑시키고, 제2 ECC 디코딩을 추가적으로 수행한다(S14).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명에 따른 온라인 광고 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도이다.
도 2는 2-비트 메모리셀들의 각 상태별 문턱 전압 분포(즉, 셀 산포)를 나타내는 그래프이다.
도 3 및 도 4는 이웃 셀의 프로그램으로 인한 커플링 효과를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 비휘발성 메모리 시스템의 블록도이다.
도 6과 도 7은 도 5의 비휘발성 메모리 시스템이 특정 패턴에 해당하는 데이터를 매핑하는 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 전자 시스템의 블록도이다.
도 9는 본 발명의 실시 예에 따른 셀 패턴에 고려한 ECC 방법의 흐름도이다.

Claims (10)

  1. 사용자 데이터를 저장하는 메모리 셀 어레이; 및
    상기 사용자 데이터에 대한 제1 ECC(error correcting code) 인코딩을 수행하고 수행결과를 ECC 정보 데이터로서 출력하는 ECC 엔진을 포함하며, 상기 ECC 엔진은, 상기 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행하는 반도체 메모리 장치.
  2. 제1항에 있어서, 상기 ECC 엔진은,
    상기 검출된 셀 패턴에 해당하는 셀 데이터를 매핑 테이블에 매핑한 후에 상기 제2 ECC 인코딩을 수행하는 반도체 메모리 장치.
  3. 제1항에 있어서, 상기 ECC 엔진은,
    상기 ECC 정보 데이터에 기초하여 상기 사용자 데이터에 대한 제1 ECC 디코딩을 수행하여 에러가 발생한 비트를 정정하며, 상기 사용자 데이터가 상기 셀 패턴을 포함하는 경우, 제2 ECC 디코딩을 수행하여 상기 셀 패턴에 의해서 에러가 발생한 비트를 정정하는 반도체 메모리 장치.
  4. 제3항에 있어서, 상기 제1 ECC 디코딩에 의해서 정정되는 비트수와 상기 제2 ECC 디코딩에 의해서 정정되는 비트수는 비대칭적인 반도체 메모리 장치.
  5. 제4항에 있어서, 상기 제1 ECC 디코딩에 의해서 정정되는 비트수는,
    상기 제2 ECC 디코딩에 의해서 정정되는 비트수보다 작은 반도체 메모리 장치.
  6. 제1항에 있어서, 상기 미리 결정된 셀 패턴은,
    상기 메모리 셀 어레이 상에서 에러에 취약한 셀들의 배치 구조인 반도체 메모리 장치.
  7. 제1항에 있어서, 상기 메모리 셀 어레이는,
    상기 사용자 데이터를 저장하는 메인영역과 상기 ECC(error correcting code) 정보 데이터를 저장하는 스페어 영역을 포함하는 반도체 메모리 장치.
  8. 제7항에 있어서, 상기 메모리 셀 어레이의 상기 ECC 엔진에 의해서 제2 ECC 인코딩된 데이터는 상기 스페어 영역에 저장되는 반도체 메모리 장치.
  9. 비 휘발성 반도체 메모리 장치를 구비하는 전자 시스템에 있어서,
    상기 전자 시스템의 전체적인 동작을 제어하는 메모리 컨트롤러; 및
    상기 메모리 컨트롤러에 의해 처리된/처리될 사용자 데이터를 저장하는 비휘 발성 메모리 장치를 포함하며, 상기 메모리 컨트롤러는,
    상기 사용자 데이터에 대한 제1 ECC 인코딩을 수행하고 수행결과를 ECC 정보 데이터로서 출력하며, 상기 사용자 데이터에 기초하여 미리 결정된 셀 패턴을 검출하고 검출된 셀 패턴에 해당하는 셀 데이터에 대하여 추가적으로 제2 ECC 인코딩을 수행하는 전자 시스템.
  10. 제9항에 있어서, 상기 메모리 컨트롤러는,
    상기 검출된 셀 패턴에 해당하는 셀 데이터를 매핑 테이블에 매핑한 후에 상기 제2 ECC 인코딩을 수행하는 전자 시스템.
KR1020090023509A 2009-03-19 2009-03-19 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템 KR20100104840A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090023509A KR20100104840A (ko) 2009-03-19 2009-03-19 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템
US12/726,963 US8607120B2 (en) 2009-03-19 2010-03-18 Semiconductor memory device for performing additional ECC correction according to cell pattern and electronic system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090023509A KR20100104840A (ko) 2009-03-19 2009-03-19 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템

Publications (1)

Publication Number Publication Date
KR20100104840A true KR20100104840A (ko) 2010-09-29

Family

ID=42738690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090023509A KR20100104840A (ko) 2009-03-19 2009-03-19 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템

Country Status (2)

Country Link
US (1) US8607120B2 (ko)
KR (1) KR20100104840A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101357544B1 (ko) * 2012-07-05 2014-02-05 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
US9213598B2 (en) 2013-02-19 2015-12-15 Samsung Electronics Co., Ltd. Nonvolatile memory device and method of operating the same

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8023345B2 (en) * 2009-02-24 2011-09-20 International Business Machines Corporation Iteratively writing contents to memory locations using a statistical model
US8386739B2 (en) * 2009-09-28 2013-02-26 International Business Machines Corporation Writing to memory using shared address buses
US8463985B2 (en) * 2010-03-31 2013-06-11 International Business Machines Corporation Constrained coding to reduce floating gate coupling in non-volatile memories
US9268632B2 (en) 2010-09-24 2016-02-23 Rambus Inc. Memory device with ECC history table
US9558065B2 (en) * 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache
US9727261B2 (en) * 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US10838831B2 (en) * 2018-05-14 2020-11-17 Micron Technology, Inc. Die-scope proximity disturb and defect remapping scheme for non-volatile memory
US11055167B2 (en) * 2018-05-14 2021-07-06 Micron Technology, Inc. Channel-scope proximity disturb and defect remapping scheme for non-volatile memory
US11057053B2 (en) 2018-09-28 2021-07-06 Huawei Technologies Co., Ltd. Method and apparatus for wirelessly communicating over a noisy channel with a variable codeword length polar code to improve transmission capacity
US10769014B2 (en) * 2018-12-28 2020-09-08 Micron Technology, Inc. Disposable parity
KR20200127758A (ko) * 2019-05-03 2020-11-11 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11762735B2 (en) 2021-10-01 2023-09-19 Western Digital Technologies, Inc. Interleaved ECC coding for key-value data storage devices
US11934264B2 (en) * 2021-11-22 2024-03-19 Western Digital Technologies, Inc. ECC parity biasing for Key-Value data storage devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5693191A (en) 1979-12-25 1981-07-28 Fujitsu Ltd Memory error correction and automatic diagnosis system
JP2768371B2 (ja) 1992-01-14 1998-06-25 日本ビクター株式会社 ランダムアクセスメモリの検査方法
US6502218B1 (en) * 1999-12-16 2002-12-31 Intel Corporation Deferred correction of a single bit storage error in a cache tag array
JP4437519B2 (ja) * 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7043679B1 (en) * 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US7523364B2 (en) * 2005-02-09 2009-04-21 International Business Machines Corporation Double DRAM bit steering for multiple error corrections
US7823043B2 (en) * 2006-05-10 2010-10-26 Sandisk Il Ltd. Corruption-resistant data porting with multiple error correction schemes
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
KR100845529B1 (ko) 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
JP5537551B2 (ja) * 2008-09-28 2014-07-02 ラマト アット テル アビブ ユニバーシティ リミテッド フラッシュメモリにおける適応符号化用の方法およびシステム
US8276039B2 (en) * 2009-02-27 2012-09-25 Globalfoundries Inc. Error detection device and methods thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101357544B1 (ko) * 2012-07-05 2014-02-05 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
US9213598B2 (en) 2013-02-19 2015-12-15 Samsung Electronics Co., Ltd. Nonvolatile memory device and method of operating the same

Also Published As

Publication number Publication date
US8607120B2 (en) 2013-12-10
US20100241929A1 (en) 2010-09-23

Similar Documents

Publication Publication Date Title
KR102658792B1 (ko) 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법
CN110021313B (zh) 非易失性存储器件及其读取方法
KR20100104840A (ko) 셀 패턴에 따라 추가 ecc가 가능한 반도체 메모리 장치,상기 장치를 포함하는 전자 시스템
US8717832B2 (en) Nonvolatile memory devices, memory systems and methods of performing read operations
TWI408686B (zh) 程式化一記憶體裝置以增加資料可靠性
KR101552210B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR101434399B1 (ko) 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치,그것의 프로그램 검증 방법, 그리고 그것을 포함하는메모리 시스템
US8441856B2 (en) Method of providing an operating voltage in a memory device and a memory controller for the memory device
US9514830B2 (en) Non-volatile memory device, memory system including the same, and method of operating the same
US10990327B2 (en) Storage device and method of operating the same
KR101162000B1 (ko) 반도체 메모리 장치 및 이의 동작 방법
JP2009037619A (ja) メモリシステム及びその読み出し方法
KR20130087857A (ko) 반도체 메모리 장치 및 이의 동작 방법
US9030873B2 (en) Semiconductor device and method of operating the same
KR20130028589A (ko) 비휘발성 메모리 장치, 그 데이터 판독 방법 및 기록 매체
US9251901B2 (en) Semiconductor memory device with high threshold voltage distribution reliability method
KR102407571B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR20220006467A (ko) 기계 학습에 기반한 오류 정정을 수행하는 메모리 장치 및 이의 동작 방법
US10936421B2 (en) Memory system having storage device and memory controller and operating method thereof
KR101678888B1 (ko) 비휘발성 메모리 장치의 데이터 판독 방법
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
KR101435889B1 (ko) 공통 소스 라인 전압을 제어하는 플래시 메모리 장치,그것의 프로그램 검증 방법, 그리고 그것을 포함하는메모리 시스템
KR20140057901A (ko) 반도체 메모리 장치 및 이의 동작 방법
US20150194220A1 (en) Semiconductor device and memory system including the same
US9263148B2 (en) Semiconductor device with pass/fail circuit

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid