KR20110025524A - 반도체 메모리 장치 및 그것의 데이터 처리 방법 - Google Patents

반도체 메모리 장치 및 그것의 데이터 처리 방법

Info

Publication number
KR20110025524A
KR20110025524A KR1020090083630A KR20090083630A KR20110025524A KR 20110025524 A KR20110025524 A KR 20110025524A KR 1020090083630 A KR1020090083630 A KR 1020090083630A KR 20090083630 A KR20090083630 A KR 20090083630A KR 20110025524 A KR20110025524 A KR 20110025524A
Authority
KR
South Korea
Prior art keywords
data
user data
error correction
free page
parity
Prior art date
Application number
KR1020090083630A
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 KR1020090083630A priority Critical patent/KR20110025524A/ko
Priority to JP2010196561A priority patent/JP5541792B2/ja
Priority to US12/875,479 priority patent/US8381085B2/en
Publication of KR20110025524A publication Critical patent/KR20110025524A/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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 반도체 메모리 장치에 관한 것이다. 반도체 메모리 장치는 사용자 데이터를 에러 정정 인코딩을 수행하여 패리티 데이터를 생성하는 에러 정정 코드 블록과 사용자 데이터와 패리티 데이터를 저장하는 메모리를 포함한다. 여기서 에러 정정 코드 블록은 프리 페이지 데이터와 동일한 사용자 데이터의 패리티 데이터를 프리 페이지 데이터와 구분을 위한 적어도 2t(t는 자연수)개의 비트를 포함하도록 생성한다.
사용자 데이터, 패딩 데이터, 패리티 데이터, 인디케이터

Description

반도체 메모리 장치 및 그것의 데이터 처리 방법{DATA PROCESSING DEVICE AND METHOD FOR DATA PROCESSING THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로서, 특히 메모리에 저장될 사용자 데이터를 처리하는 반도체 메모리 장치 및 그것의 데이터 처리 방법에 관한 것이다.
일반적인 반도체 메모리 장치는 메모리에 데이터를 기록하고 읽을 때, 에러가 발생할 수 있다. 이러한 에러를 정정하기 위해서 반도체 메모리 장치는 에러 정정 코드(Error Correction Code) 블록을 사용한다.
일반적으로 사용자 데이터를 메모리에 기록하고 읽을 때 사용자 데이터에 에러가 발생될 수 있다. 이러한 에러를 검출 및 정정하기 위해서 에러 정정 코드(ECC: Error Correction Code) 블록이 사용된다. 에러 정정 코드 블록은 사용자 데이터를 기록할 때, 사용자 데이터의 패리티 데이터를 사용자 데이터와 함께 저장한다. 패리티 데이터는 에러 정정 코드 블록의 에러 정정 인코딩 동작을 통해 생성되고, 에러 검출 및 정정을 위해 사용된다. 에러 정정 코드 블록은 사용자 데이터를 읽을 때, 패리티 데이터를 사용자 데이터와 함께 읽어 에러를 검출 및 정정한 다.
따라서 에러 정정 코드 블록은 허용된 범위 이내에 존재하는 에러에 대해서 검출 및 정정을 할 수 있다.
한편, 메모리 장치는 메모리 내에 데이터 쓰기를 위해서 소거된 후 사용되지 않고 있는 프리 페이지 데이터가 존재한다. 프리 페이지 데이터는 일예로, 동일한 하나의 비트(일예로 비트 '1')로 구성된다. 즉, 프리 페이지 데이터는 모두 비트 '1'로 구성될 수 있다.
에러 정정 코드 블록은 데이터를 읽을 때, 프리 페이지 데이터를 검출한다. 만약, 에러 정정 코드 블록은 프리 페이지 데이터를 검출하면, 프리 페이지 데이터에 대해서는 에러 검출 및 정정 동작을 수행하지 않는다. 하지만, 사용자 데이터가 프리 페이지 데이터와 동일한 비트, 일예로 비트 '1'로 구성될 수도 있다. 이때, 사용자 데이터가 모두 비트 '1'로 구성되면, 사용자 데이터의 패리티 데이터도 모두 '1'로 구성된다. 즉, 메모리에 저장되는 사용자 데이터와 패리티 데이터가 모두 비트 '1'로 구성된다.
이와 같이, 프리 페이지 데이터와 동일한 비트들로 구성된 사용자 데이터는 패리티 데이터까지 프리 페이지 데이터와 동일한 비트들로 구성된다. 따라서 에러 정정 코드 블록은 프리 페이지 데이터와 동일한 비트들로 구성된 사용자 데이터를 프리 페이지 데이터로 간주한다. 이때 에러 정정 코드 블록은 프리 페이지로 간주된 사용자 데이터의 에러 정정 및 인코딩 동작을 수행하지 않는다.
본 발명은 상술한 기술적 과제를 해결하기 위해 제안된 것으로, 본 발명의 목적은 사용자 데이터와 프리 페이지 데이터를 구분하는 반도체 메모리 장치를 제공하는데 있다.
본 발명의 다른 목적은 프리 페이지 데이터와 동일한 값을 갖는 사용자 데이터를 프리 페이지 데이터와 구분하는 반도체 메모리 장치를 제공하는 데 있다.
본 발명에 따른 반도체 메모리 장치는 사용자 데이터를 에러 정정 인코딩을 수행하여 패리티 데이터를 생성하는 에러 정정 코드 블록, 및 상기 사용자 데이터와 상기 패리티 데이터를 저장하는 메모리를 포함하고, 상기 에러 정정 코드 블록은 프리 페이지 데이터와 동일한 사용자 데이터의 패리티 데이터를 상기 프리 페이지 데이터와 구분을 위한 적어도 2t(t는 자연수)개의 비트를 포함하도록 생성함을 특징으로 한다.
이 실시예에 있어서, 상기 에러 정정 코드 블록은 상기 사용자 데이터의 패딩 데이터에 상기 프리 페이지 데이터와의 구분을 위한 인디케이터를 삽입하여 상기 패리티 데이터를 생성함을 특징으로 한다.
이 실시예에 있어서, 상기 인디케이터는 상기 프리 페이지 데이터를 구성하는 비트와 상이한 적어도 하나의 비트로 구성됨을 특징으로 한다.
이 실시예에 있어서, 상기 t는 상기 에러 정정 코드 블록에서 정정할 수 있는 최대 에러 개수임을 특징으로 한다.
이 실시예에 있어서, 상기 에러 정정 코드 블록은 인버티드 에러 정정 코드 블록임을 특징으로 한다.
이 실시예에 있어서, 상기 에러 정정 코드 블록은 상기 사용자 데이터를 인버팅하는 인버터, 상기 사용자 데이터와 상기 프리 페이지 데이터가 동일하면, 상기 인버팅된 사용자 데이터에 상기 인디케이터가 삽입된 패딩 데이터를 패딩하는 패딩 데이터 삽입기, 상기 인버팅된 사용자 데이터와 상기 패딩 데이터를 사용하여 패리티 비트를 생성하는 패리티 비트 생성기, 및 상기 인버팅된 사용자 데이터와 상기 패리티 비트를 인버팅하여 상기 메모리에 저장하는 제 2 인버터를 포함한다.
반도체 메모리 장치의 데이터 기록 방법에 있어서, 상기 사용자 데이터를 에러 정정 인코딩을 수행하여 패리티 데이터를 생성하는 단계, 상기 사용자 데이터와 상기 패리티 데이터를 저장하는 단계를 포함하고, 상기 패리티 데이터를 생성하는 단계는 프리 페이지 데이터와 상기 사용자 데이터가 동일하면, 상기 프리 페이지 데이터와 구분을 위한 적어도 2t(t는 자연수)개의 비트를 포함한 상기 패리티 데이터를 생성함을 특징으로 한다.
이 실시예에 있어서, 상기 패리티 데이터를 생성하는 단계는 상기 프리 페이지 데이터와 상기 사용자 데이터가 동일한 경우, 상기 사용자 데이터의 패딩 데이터에 상기 프리 페이지 데이터와 상이한 비트로 구성된 인디케이터를 삽입하는 단계, 및 상기 사용자 데이터와 상기 인디케이터가 포함된 패딩 데이터를 사용하여 상기 프리 페이지 데이터와 구분을 위한 적어도 2t개의 비트를 포함한 상기 패리티 데이터를 생성하는 단계를 포함한다.
이 실시예에 있어서, 상기 인디케이터는 상기 프리 페이지 데이터를 구성하는 비트와 상이한 적어도 하나의 비트로 구성됨을 특징으로 한다.
이 실시예에 있어서, 상기 t는 상기 에러 정정 코드 블록에서 정정할 수 있는 최대 에러 개수임을 특징으로 한다.
본 발명에 의하면, 반도체 메모리 장치는 사용자 데이터의 패딩 데이터에 프리 페이지와 구분을 위한 인디케이터를 삽입하여 패리티 데이터를 생성함으로서 프리 페이지 데이터와 동일한 값을 갖는 사용자 데이터를 구분한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 프리 페이지 데이터(free page data)와 동일한 비트로 구성된 사용자 데이터(user data)를 구분하는 반도체 메모리 장치 및 그것의 데이터 기록 방법을 제공한다.
도 1은 본 발명의 실시예에 따른 반도체 메모리 장치의 구조를 도시한 도면이다.
도 1을 참조하면, 반도체 메모리 장치는 인터페이스 장치(interface device)(10)와 기억 장치(storage)(20)를 포함한다.
반도체 메모리 장치는 기억 장치(20) 내의 프리 페이지 데이터와 동일한 비트로 구성된 사용자 데이터를 구분한다.
기억 장치(20)는 사용자 데이터를 저장한다. 기억 장치(20)는 데이터 기록을 위해 소거된 상태의 데이터 즉, 프리 페이지 데이터를 포함한다. 여기서, 프리 페이지 데이터는 모두 하나의 비트(예를 들어, '1')로만 구성된 데이터들을 의미한다.
인터페이스 장치(10)는 사용자 데이터의 교환을 인터페이스한다. 즉, 인터페이스 장치(10)는 사용자 데이터를 기억 장치(20)에 기록하거나 기억 장치(20)에 저 장된 사용자 데이터를 읽는다.
한편, 인터페이스 장치(10)는 에러가 발생된 사용자 데이터의 에러 정정을 위한 에러 정정 코드(ECC: Error Correction Code) 블록(11)을 포함한다.
본 발명에서 에러 정정 코드 블록(11)은 저장 장치(20)의 프리 페이지 데이터(free page data)와 동일한 사용자 데이터를 구분하기 위해 인디케이터(indicator)를 사용한다. 여기서, 인디케이터는 프리 페이지 데이터를 구성하는 비트(예를 들어, 비트 '1')와 다른 비트(예를 들어, 비트 '0')를 포함한다.
에러 정정 코드 블록(11)은 에러 정정 코드 인코딩 시에 사용자 데이터에 부가되는 패딩 데이터(padding data)에 인디케이터를 삽입한다. 여기서 패딩 데이터는 미리 결정된 코드워드의 길이를 형성하기 사용자 데이터에 부가되는 데이터이다.
에러 정정 코드 블록(11)은 사용자 데이터와 인디케이터가 삽입된 패딩 데이터를 사용하여 패리티 데이터를 생성한다. 이때 생성된 패리티 데이터는 프리 페이지 데이터를 구성하는 비트와 다른 2t개의 비트를 포함한다. 여기서 t는 에러 정정 코드 블록(11)에서 정정 가능한 최대 에러 개수(에러 검출 및 정정에 허용되는 전체 에러의 개수)이다. t는 자연수이다. 패리티 데이터는 사용자 데이터와 함께 저장 장치(20)에 기록되는 데이터이다. 또한, 패리티 데이터는 에러 정정 코드 디코딩 시 사용자 데이터와 함께 읽혀지는 데이터이다.
에러 정정 코드 블록(11)은 패딩 데이터에 인디케이터를 삽입한다. 그리하면, 에러 정정 코드 블록(11)은 디코딩 시에 사용자 데이터와 함께 읽혀진 패리티 데이터(프리 페이지 데이터를 구성하는 비트와 다른 적어도 2t개의 비트를 포함)를 통해 사용자 데이터를 프리 페이지 데이터와 구분할 수 있다.
한편, 에러 정정 코드 블록(11)은 하드웨어로 구현될 수 있고, 소프트웨어로 구현될 수도 있다.
도 2는 도 1에 도시된 에러 정정 코드 블록의 인코딩 동작을 도시한 순서도이다.
도 2를 참조하면, S110단계에서, 에러 정정 코드 블록(11)은 외부로부터 사용자 데이터를 입력받는다.
S120단계에서, 에러 정정 코드 블록(11)은 입력된 사용자 데이터가 프리 페이지 데이터와 동일한지를 판단한다.
S120단계에서, 에러 정정 코드 블록(11)은 입력된 사용자 데이터와 프리 페이지 데이터가 다른 경우 S130단계로 진행한다. S130단계에서, 에러 정정 코드 블록(11)은 제 1 인코딩을 수행한다. 제 1 인코딩은 기존의 에러 정정 코드 블록(11)에서 수행되던 사용자 데이터의 에러 정정 인코딩과 동일하다.
이와 달리, S120단계에서, 에러 정정 코드 블록(11)은 입력된 사용자 데이터와 프리 페이지 데이터가 동일한 경우 S140단계로 진행한다. S140단계에서, 에러 정정 코드 블록(11)은 제 2 인코딩을 수행한다. 사용자 데이터와 프리 페이지 데이터가 동일한 경우, 사용자 데이터의 패리티 데이터 생성 시 에러 정정 코드 블록(11)은 패딩 데이터에 인디케이터를 삽입한다. 이를 위해 에러 정정 코드 블록(11)은 사용자 데이터에 부가되는 패딩 데이터(padding data) 중 적어도 일부에 인디케이터를 삽입한다.
S150단계에서, 에러 정정 코드 블록(11)은 제 1 인코딩 또는 제 2 인코딩을 통해 생성된 코드 워드를 저장 장치(20)에 저장한다. 여기서 코드 워드는 사용자 데이터와 패리티 데이터를 포함한다.
도 3은 도 1에 도시된 에러 정정 코드 블록의 디코딩 동작을 도시한 순서도이다.
도 3을 참조하면, S210단계에서, 에러 정정 코드 블록(11)은 저장 장치(20)로부터 데이터를 읽는다.
S220단계에서, 에러 정정 코드 블록(11)은 읽혀진 데이터가 프리 페이지 데이터인지 판단한다.
S220단계에서, 에러 정정 코드 블록(11)은 읽혀진 데이터가 프리 페이지 데이터인 경우에는 에러 검출 및 에러 정정 동작을 수행하지 않고 종료한다.
S220단계에서, 에러 정정 코드 블록(11)은 읽혀진 데이터가 즉, 프리 페이지 데이터가 아닌 경우에는 S230단계로 진행한다. 여기서, 에러 정정 코드 블록(11)에 의해 읽혀진 데이터는 사용자 데이터와 패리티 비트를 포함한 코드워드이다.
S230단계에서, 에러 정정 코드 블록(11)은 사용자 데이터와 함께 읽혀진 패리티 데이터를 사용하여 사용자 데이터의 에러 검출 및 정정을 한다.
도 4는 본 발명의 바람직한 실시예에 따른 반도체 메모리 장치를 포함한 반도체 메모리 시스템을 도시한 도면이다.
도 4를 참조하면, 반도체 메모리 시스템은 반도체 메모리 장치(100)와 호스 트(200)를 포함한다.
반도체 메모리 장치(100)는 데이터들이 저장되는 메모리(110)와 메모리(110)를 제어하기 위한 메모리 컨트롤러(120)를 포함한다.
메모리 컨트롤러(120)는 호스트 인터페이스(121), 프로세서(122), 램(123), 에러 정정 코드 블록(124), 및 메모리 인터페이스(125)를 포함한다.
호스트 인터페이스(121)는 호스트(200)와 데이터 교환을 인터페이싱한다. 램(123)은 사용자 데이터를 메모리(110)에 저장하기 위해 사용자 데이터를 일시 저장한다. 램(123)은 프로세서(122)의 워킹 메모리로서 사용된다. 에러 정정 코드 회로(124)는 메모리(110)에 저장된 데이터의 비트 에러를 분석하거나 정정하는데 사용된다. 메모리 인터페이스(125)는 메모리(200)와 연결되며, 커맨드, 어드레스, 데이터 및 제어 신호를 인터페이싱한다. 프로세서(122)는 데이터 교환을 위한 전반적인 동작을 수행한다.
본 발명에서, 에러 정정 코드 블록(124)은 프리 페이지 데이터와 동일한 유저 데이터를 프리 페이지 데이터와 구분한다.
에러 정정 코드 블록(124)은 사용자 데이터 쓰기 시 에러 정정 코드 인코딩 동작을 수행하고, 사용자 데이터 읽기 시 에러 정정 코드 디코딩 동작을 수행한다.
에러 정정 코드 블록(124)은 에러 정정 인코딩 시 사용자 데이터에 대응되는 패리티 데이터를 생성한다. 에러 정정 코드 블록(124)은 프리 페이지 데이터와 동일한 사용자 데이터를 사용하여 패리티 데이터를 생성하면, 패리티 데이터도 프리 페이지 데이터와 동일한 값을 갖는다. 따라서 에러 정정 코드 블록(124)은 패딩 데 이터에 프리 페이지 데이터와의 구분을 위한 인디케이터를 삽입한다. 즉, 에러 정정 코드 블록(124)은 패딩 데이터의 비트들 중 적어도 하나를 인디케이터로 변경한다. 즉, 패딩 데이터에 인디케이터가 포함된다.
에러 정정 코드 블록(124)은 에러 정정 코드 인코딩을 통해 프리 페이지 데이터의 비트들로만 구성되지 않은 패리티 데이터를 생성한다. 에러 정정 코드 블록(124)은 사용자 데이터와 패리티 데이터를 함께 메모리(110)에 저장한다.
사용자 데이터 읽기 동작 시 에러 정정 코드 블록(124)은 프리 페이지 데이터들의 에러 정정 코드 디코딩 동작을 수행하지 않는다. 에러 정정 코드 블록(124)은 패리티 데이터를 프리 페이지 데이터와 동일하지 않도록 생성함으로서, 프리 페이지와 동일한 유저 데이터를 패리티 데이터를 통해 프리 페이지 데이터와 구분할 수 있다.
본 발명의 에러 정정 코드는 일예로, BCH(Bose-Chaudhuri-Hoquenbhem) 코드, 리드 솔로몬(RS: Reed-solomon) 부호와 같은 블록 코드들이 사용될 수 있다.
도 5는 도 4에 도시된 에러 정정 코드 블록의 상세 구조를 도시한 도면이다.
도 5를 참조하면, 에러 정정 코드 블록(124)은 제 1 인버터(310), 패딩 데이터 삽입기(320), 패리티 데이터 생성기(330), 및 제 2 인버터(340)를 포함한다.
제 1 인버터(310)는 입력된 사용자 데이터(U)를 인버팅한다. 일예로, 제 1 인버터(310)는 사용자 데이터에 포함된 비트 '1'을 비트 '0'으로 변환하거나 사용자 데이터에 포함된 비트 '0'을 비트 '1'로 변환한다.
패딩 데이터 삽입기(320)는 입력된 사용자 데이터(U)에 패딩 데이터(Pad)를 삽입 즉, 패딩한다. 이때, 패딩 데이터 삽입기(320)는 인버팅된 사용자 데이터(U')와 프리 페이지 데이터가 동일한 경우, 패딩 데이터(Pad)들 중 일부를 인디케이터로 변경하여 인버팅된 사용자 데이터(U')에 패딩한다. 패딩 데이터 삽입기(320)는 인버팅된 사용자 데이터(U')와 프리 페이지 데이터가 동일하지 않은 경우, 패딩 데이터(Pa)를 인버팅된 사용자 데이터(U')에 패딩한다.
패리티 데이터 생성기(330)는 인버팅된 사용자 데이터(U')와 패딩 데이터(Pa)를 사용하여 패리티 데이터(P')를 생성한다. 프리 페이지 데이터와 동일한 사용자 데이터들의 패리티 데이터는 프리 페이지 데이터를 구성하는 비트들과는 적어도 2t개의 다른 비트를 포함한다.
제 2 인버터(340)는 인버팅된 유저 데이터(U')와 패리티 데이터(P')를 인버팅하여 출력한다. 제 2 인버터(340)의 동작도 제 1 인버터(310)의 동작과 유사하다. 제 2 인버터(340)에서 인버팅되어 출력되는 유저 데이터(U)와 인버팅된 패리티 데이터(P)는 메모리(110)에 저장되는 코드워드에 포함된다.
도 6은 도 5의 에러 정정 코드 인코딩에 따른 데이터들을 도시한 도면이다.
도 6을 참조하면, 에러 정정 인코더(124)는 모두 비트 '1'로 구성된 사용자 데이터를 입력받는다. 일예로, 프리 페이지 데이터는 모두 비트 '1'로 구성된다고 가정한다.
제 1 인버터(310)는 비트 '1'로 구성된 사용자 데이터(U)를 인버팅하여 모두 비트 '0'으로 구성된 인버팅된 사용자 데이터(U')를 생성한다.
패딩 데이터 삽입기(320)는 비트 '0'의 패딩 데이터(Pad)를 패딩한다. 이때 입력된 사용자 데이터(U)는 모두 비트 '1'로 구성되고, 프리 페이지 데이터(모두 비트 '1'로 구성된)와 동일한 형태를 갖는다. 이때 패딩 데이터 삽입기(320)는 비트 '1'의 인디케이터를 패딩 데이터(Pad)에 삽입한다. 인디케이터는 패리티 데이터의 비트를 모두 '0'이 되지 않도록 한다. 인디케이터는 두 개 이상의 '1'로 구성될 수도 있다. 하지만, 인디케이터의 개수(비트 개수)가 증가하면, 에러 검출 및 정정 성능이 감소한다.
패리티 데이터 생성기(330)는 패리티 데이터(P')를 생성한다. 패딩 데이터(Pad)에 인디케이터가 포함된 경우, 패리티 데이터 생성기(330)는 적어도 2t개의 비트 '1'을 포함한 패리티 데이터(P')를 생성한다.
제 2 인버터(340)는 인버팅된 사용자 데이터(비트 '0'으로 구성된)와 패리티 데이터(적어도 2t개의 비트 '1'을 포함한)를 인버팅하여 메모리(110)에 저장한다.
메모리(110)는 모두 비트 '1'로 구성된 사용자 데이터와 적어도 다른 2t개의 비트 '1'을 포함한 패리티 데이터를 함께 저장한다. 메모리 컨트롤러(120)(또는, 에러 정정 코드 블록(11))로부터 메모리(110)의 읽기 시 패리티 데이터(프리 페이지 데이터와 다른 값을 갖는)로 인해 사용자 데이터는 프리 페이지 데이터와 구분될 수 있다.
도 7은 도 5에 예시적으로 도시된 에러 정정 코드 블록의 동작을 도시한 순서도이다.
도 7을 참조하면, S310단계에서, 제 1 인버터(310)는 입력된 유저 데이터(U)를 인버팅한다.
S320단계에서, 제 1 패딩 데이터 삽입기(320)는 인버팅된 유저 데이터(U')와 프리 페이지 데이터가 동일한지의 여부를 판단한다.
S320단계에서, 제 1 패딩 데이터 삽입기(320)는 인버팅된 유저 데이터(U')와 프리 페이지 데이터가 동일한 경우, S330단계로 진행한다.
S330단계에서, 패딩 데이터 삽입기(320)는 패딩 데이터(Pad)에 인디케이터를 삽입하고 340단계로 진행한다.
한편, S320단계에서, 패딩 데이터 삽입기(320)는 인버팅된 유저 데이터(U')와 프리 페이지 데이터가 동일한 경우, S340단계로 진행한다.
S340단계에서, 패딩 데이터 삽입기(320)는 인버팅된 사용자 데이터(U')에 패딩 데이터(Pad)를 패딩한다. 사용자 데이터(U)와 프리 페이지 데이터가 다른 경우 패딩 데이터 삽입기(320)는 일반적인 패딩 데이터(Pad)를 패딩한다. 사용자 데이터(U)와 프리 페이지 데이터가 동일한 경우 패딩 데이터 삽입기(320)는 인디케이터가 포함된 패딩 데이터(Pad)를 패딩한다.
S350단계에서, 패리티 데이터 생성기(330)는 패딩 데이터(Pad)가 패딩된 유저 데이터(U', Pa)를 사용하여 패리티 데이터(P')를 생성한다.
S360단계에서, 제 2 인버터(340)는 인버팅된 유저 데이터(U')와 패리티 데이터(P')를 인버팅한다.
S370단계에서, 제 2 인버터(340)는 인버팅된 코드워드, 즉 유저 데이터(U)와 패리티 데이터(P)를 메모리(110)에 저장한다. 여기서 사용자 데이터와 패리티 비트를 포함한 코드워드는 프리 페이지 데이터와 구분될 수 있다.
도 8은 본 발명의 다른 실시예에 따른 메모리 시스템 구조를 도시한 도면이다.
도 8을 참조하면, 메모리 시스템은 메모리(410)와 컨트롤러(420)를 포함한다. 메모리(410)는 메모리 셀(411)과 에러 정정 코드 블록(413)을 포함할 수 있다. 메모리 셀(411)은 복수개의 행들(즉, 워드 라인들)과 복수개의 열들(즉, 비트 라인들)의 교차 영역에 배열된다.
한편, 메모리 내에 에러 정정 코드 블록(413)은 소프트웨어의 형태로 구현될 수 있다. 이때 에러 정정 코드 블록(413)은 유저 데이터와 프리 페이지 데이터 구분을 위한 동작을 수행한다.
이때 에러 정정 코드 블록(413)은 메모리 컨트롤러(420)의 제어에 의해서 패딩 데이터(Pad)에 인디케이터를 삽입함으로서 프리 페이지 데이터와 동일한 유저 데이터의 패리티 데이터를 프리 페이지 데이터와 상이하게 생성한다.
상술한 본 발명에서, 에러 정정 코드 블록은 패딩 데이터에 프리 페이지와 다른 비트 값을 갖는 인디케이터를 사용하였다. 하지만, 에러 정정 코드 블록은 사용자 데이터의 적어도 일부에 인디케이터를 삽입하여 유저 데이터와 패리티 데이터가 항상 프리 페이지 데이터의 비트로만 구성되는 것을 방지할 수도 있다. 이때 에러 정정 코드 블록은 유저 데이터에 인디케이터를 삽입하는 인디케이터 삽입기를 포함할 수 있다.
한편, 인디케이터는 프리 페이지 데이터와의 구분을 위해서 삽입되는 것으로 에러 정정 디코딩 측면에서는 에러에 해당한다. 예를 들어, 인디케이터가 하나의 비트로 구성될 수 있다. 이때 에러 정정 코드 블록에서 에러 검출 및 정정에 허용되는 전체 에러의 개수는 t-1개(일예로, 인디케이터가 2비트로 구성되는 경우, t-2)로 감소된다. 따라서 인디케이터의 비트 수가 감소할수록 에러 정정 코드 블록의 에러 정정 성능은 증가한다.
도 9는 본 발명의 실시예에 따른 반도체 메모리 장치를 포함한 컴퓨팅 시스템을 도시한 도면이다.
도 9를 참조하면, 컴퓨팅 시스템(500)은 프로세서(510), 메모리 컨트롤러(520), 입력 장치(530), 출력 장치(540), 메모리(550), 그리고 주 기억 장치(560)를 포함한다. 여기서 메모리는 본 발명이 적용된 반도체 메모리 장치가 된다. 도면에서 실선은 데이터 또는 명령이 이동하는 시스템 버스(System bus)를 나타낸다.
메모리 컨트롤러(520)와 메모리(550)는 메모리 카드를 구성할 수 있다. 그리고 프로세서(510), 입력 장치(530), 출력 장치(540), 그리고 주 기억 장치(560)는 메모리 카드를 기억 장치로 사용하는 호스트를 구성할 수 있다.
본 발명에 따른 컴퓨팅 시스템(500)은 입력 장치(530)(키보드, 카메라등)를 통해 외부로부터 데이터를 입력받는다. 입력된 데이터는 사용자에 의한 명령이거나 카메라 등에 의한 영상 데이터 등의 멀티미디어 데이터일 수 있다. 입력된 데이터는 플래시 메모리(550) 또는 주 기억 장치(560)에 저장된다.
프로세서(510)에 의한 처리 결과는 플래시 메모리(550) 또는 주 기억 장치(560)에 저장된다. 출력 장치(540)는 플래시메모리(550) 또는 주 기억 장치(560) 에 저장된 데이터를 출력한다. 출력 장치(540)는 디지털데이터를 인간이 감지 가능한 형태로 출력한다. 예를 들어, 출력 장치(540)는 디스플레이 또는 스피커 등을 포함한다.
메모리 컨트롤러(520) 또는 메모리(550) 내에는 본 발명에 따른 유저 데이터와 페이지 데이터를 구분하는 에러 정정 코드 블록이 포함될 것이다. 에러 정정 코드 블록은 메모리(550)에 기록되는 유저 데이터의 패리티 비트를 프리 페이지 데이터와 다른 비트 값을 갖도록 생성함으로서 프리 페이지와 동일한 유저 데이터를 구분한다.
메모리(550), 그리고/또는 메모리컨트롤러(520)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 메모리(550) 그리고/또는 컨트롤러(520)는 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 Metric Quad 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) 등과 같은 패키지들을 이용하여 실장될 수 있다.
비록 도면에는 도시되지 않았지만 컴퓨팅시스템(500)의 동작에 필요한 전원을 공급하기 위한 전원 공급부(Power supply)가 요구됨은 이 분야의 통상적인 지식 을 습득한 자들에게 자명하다. 그리고 컴퓨팅 시스템(500)이 휴대용 기기(mobile device)인 경우, 컴퓨팅 시스템(500)의 동작 전원을 공급하기 위한 배터리(battery)가 추가로 요구될 것이다.
도 9에서, 본 발명에 제안된 반도체 메모리 장치가 컴퓨팅시스템에 적용된 것을 예시적으로 설명한 것이며, 본 발명에서 제안된 반도체 메모리 장치는 이동 단말 장치 이외의 다양한 장치들에 적용될 수 있다. 예를 들어, 본 발명에서 제안된 반도체 메모리장치는 일예로, 솔리드 스테이트 드라이브(SSD: Solid State Drive)에도 적용될 수 있다. 또한, 본 발명에 따른 반도체 메모리 장치는 이동형 저장 장치로서 사용될 수 있다. 따라서, MP3, 디지털 카메라, PDA, e-Book, USB 메모리 등의 저장 장치로서 사용될 수 있다. 또한, 디지털 TV나 컴퓨터 등의 저장 장치로서 사용될 수 있다.
예를 들어, 본 발명에서 제안된 반도체 메모리 장치가 컴퓨팅 시스템에 접속되는 USB 메모리라 가정한다. 이때 입력장치와 출력장치는 USB 메모리의 접속이 가능한 USB 포트로 구성된다. USB 메모리는 컴퓨팅 시스템의 제어에 의해 컴퓨팅 시스템으로 데이터를 출력하거나 컴퓨팅 시스템으로부터 수신된 데이터를 저장한다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 실시예에 따른 반도체 메모리 장치의 구조를 도시한 도면,
도 2는 도 1에 도시된 에러 정정 코드 블록의 인코딩 동작을 도시한 순서도,
도 3은 도 1에 도시된 에러 정정 코드 블록의 디코딩 동작을 도시한 순서도,
도 4는 본 발명의 바람직한 실시예에 따른 반도체 메모리 장치를 포함한 반도체 메모리 시스템을 도시한 도면,
도 5는 도 4에 도시된 에러 정정 코드 블록의 상세 구조를 도시한 도면,
도 6은 도 5의 에러 정정 코드 인코딩에 따른 데이터들을 도시한 도면,
도 7은 도 5에 예시적으로 도시된 에러 정정 코드 블록의 동작을 도시한 순서도,
도 8은 본 발명의 다른 실시예에 따른 메모리 시스템 구조를 도시한 도면, 및
도 9는 본 발명의 실시예에 따른 반도체 메모리 장치를 포함한 컴퓨팅 시스템을 도시한 도면이다.
*도면의 주요 부분에 대한 부호의 설명*
10: 인터페이스 장치 11: 에러 정정 코드 블록
20: 기억장치 110: 메모리
120: 메모리 컨트롤러 121: 호스트 인터페이스
122: 프로세서 123: 램
124: 에러 정정 코드 블록 125: 메모리 인터페이스
200: 호스트 310: 제 1 인버터
320: 패딩 데이터 삽입기 330: 패리티 데이터 생성기
340: 제 2 인버터 410: 메모리 셀
411: 메모리 셀 413: 에러 정정 코드 블록
420: 메모리 컨트롤러 500: 컴퓨팅 시스템
510: 프로세서 520: 메모리 컨트롤러
530: 입력장치 540: 출력장치
550: 메모리 560: 주 기억 장치

Claims (9)

  1. 사용자 데이터를 에러 정정 인코딩을 수행하여 패리티 데이터를 생성하는 에러 정정 코드 블록; 및
    상기 사용자 데이터와 상기 패리티 데이터를 저장하는 메모리를 포함하고,
    상기 에러 정정 코드 블록은 프리 페이지 데이터와 동일한 사용자 데이터의 패리티 데이터를 상기 프리 페이지 데이터와 구분을 위한 적어도 2t(t는 자연수)개의 비트를 포함하도록 생성함을 특징으로 하는 반도체 메모리 장치.
  2. 제 1 항에 있어서,
    상기 에러 정정 코드 블록은 상기 사용자 데이터의 패딩 데이터에 상기 프리 페이지 데이터와의 구분을 위한 인디케이터를 삽입하여 상기 패리티 데이터를 생성함을 특징으로 하는 반도체 메모리 장치.
  3. 제 1 항에 있어서,
    상기 인디케이터는 상기 프리 페이지 데이터를 구성하는 비트와 상이한 적어도 하나의 비트로 구성됨을 특징으로 하는 반도체 메모리 장치.
  4. 제 1 항에 있어서,
    상기 t는 상기 에러 정정 코드 블록에서 정정할 수 있는 최대 에러 개수임을 특징으로 하는 반도체 메모리 장치.
  5. 제 1 항에 있어서,
    상기 에러 정정 코드 블록은
    상기 사용자 데이터를 인버팅하는 인버터;
    상기 사용자 데이터와 상기 프리 페이지 데이터가 동일하면, 상기 인버팅된 사용자 데이터에 상기 인디케이터가 삽입된 패딩 데이터를 패딩하는 패딩 데이터 삽입기;
    상기 인버팅된 사용자 데이터와 상기 패딩 데이터를 사용하여 패리티 비트를 생성하는 패리티 비트 생성기; 및
    상기 인버팅된 사용자 데이터와 상기 패리티 비트를 인버팅하여 상기 메모리에 저장하는 제 2 인버터를 포함하는 반도체 메모리 장치.
  6. 반도체 메모리 장치의 데이터 기록 방법에 있어서,
    상기 사용자 데이터를 에러 정정 인코딩을 수행하여 패리티 데이터를 생성하는 단계;
    상기 사용자 데이터와 상기 패리티 데이터를 저장하는 단계를 포함하고,
    상기 패리티 데이터를 생성하는 단계는 프리 페이지 데이터와 상기 사용자 데이터가 동일하면, 상기 프리 페이지 데이터와 구분을 위한 적어도 2t(t는 자연수)개의 비트를 포함한 상기 패리티 데이터를 생성함을 특징으로 하는 데이터 기록 방법.
  7. 제 6 항에 있어서,
    상기 패리티 데이터를 생성하는 단계는
    상기 프리 페이지 데이터와 상기 사용자 데이터가 동일한 경우, 상기 사용자 데이터의 패딩 데이터에 상기 프리 페이지 데이터와 상이한 비트로 구성된 인디케이터를 삽입하는 단계; 및
    상기 사용자 데이터와 상기 인디케이터가 포함된 패딩 데이터를 사용하여 상기 프리 페이지 데이터와 구분을 위한 적어도 2t개의 비트를 포함한 상기 패리티 데이터를 생성하는 단계를 포함하는 데이터 기록 방법.
  8. 제 7 항에 있어서,
    상기 인디케이터는 상기 프리 페이지 데이터를 구성하는 비트와 상이한 적어도 하나의 비트로 구성됨을 특징으로 하는 데이터 기록 방법.
  9. 제 6 항에 있어서,
    상기 t는 상기 에러 정정 코드 블록에서 정정할 수 있는 최대 에러 개수임을 특징으로 하는 데이터 기록 방법.
KR1020090083630A 2009-09-04 2009-09-04 반도체 메모리 장치 및 그것의 데이터 처리 방법 KR20110025524A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090083630A KR20110025524A (ko) 2009-09-04 2009-09-04 반도체 메모리 장치 및 그것의 데이터 처리 방법
JP2010196561A JP5541792B2 (ja) 2009-09-04 2010-09-02 半導体メモリ装置及びそれのデータ処理方法
US12/875,479 US8381085B2 (en) 2009-09-04 2010-09-03 Semiconductor memory device and data processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090083630A KR20110025524A (ko) 2009-09-04 2009-09-04 반도체 메모리 장치 및 그것의 데이터 처리 방법

Publications (1)

Publication Number Publication Date
KR20110025524A true KR20110025524A (ko) 2011-03-10

Family

ID=43648591

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090083630A KR20110025524A (ko) 2009-09-04 2009-09-04 반도체 메모리 장치 및 그것의 데이터 처리 방법

Country Status (3)

Country Link
US (1) US8381085B2 (ko)
JP (1) JP5541792B2 (ko)
KR (1) KR20110025524A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140071640A (ko) * 2012-12-04 2014-06-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5039193B2 (ja) * 2010-09-22 2012-10-03 株式会社東芝 半導体記憶装置および制御方法
KR101861247B1 (ko) * 2011-04-06 2018-05-28 삼성전자주식회사 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템
KR102468721B1 (ko) * 2017-12-20 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10855314B2 (en) * 2018-02-09 2020-12-01 Micron Technology, Inc. Generating and using invertible, shortened Bose-Chaudhuri-Hocquenghem codewords
US11567831B2 (en) * 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11494264B2 (en) * 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
KR20220124582A (ko) * 2021-03-03 2022-09-14 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN113791741B (zh) * 2021-11-17 2022-02-22 苏州浪潮智能科技有限公司 固态硬盘的数据巡检方法、装置、计算机设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234545A (ja) 2003-01-31 2004-08-19 Toshiba Corp 制御回路及びメモリコントローラ
JP2006127441A (ja) 2004-09-30 2006-05-18 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
JP4866107B2 (ja) * 2006-03-08 2012-02-01 パナソニック株式会社 不揮発性記憶装置及びその書き込み判定方法
JP4901334B2 (ja) * 2006-06-30 2012-03-21 株式会社東芝 メモリコントローラ
US8145977B2 (en) * 2007-10-15 2012-03-27 Joseph Schweiray Lee Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory
US8355357B2 (en) * 2008-03-10 2013-01-15 Samsung Electronics Co., Ltd. Apparatus and method for admission control for service flow in broadband wireless access communication system using multi-hop relay scheme

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140071640A (ko) * 2012-12-04 2014-06-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법

Also Published As

Publication number Publication date
US8381085B2 (en) 2013-02-19
US20110060965A1 (en) 2011-03-10
JP5541792B2 (ja) 2014-07-09
JP2011060283A (ja) 2011-03-24

Similar Documents

Publication Publication Date Title
KR20110025524A (ko) 반도체 메모리 장치 및 그것의 데이터 처리 방법
KR101437396B1 (ko) 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
US9417958B2 (en) Flash memory control method, controller and electronic apparatus
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US9043678B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
US8949690B2 (en) Memory controller
US8112699B2 (en) Error detecting/correcting scheme for memories
US9619324B2 (en) Error correction in non—volatile memory
US10067824B2 (en) Error processing method, memory storage device and memory controlling circuit unit
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US10467091B2 (en) Memory module, memory system including the same, and error correcting method thereof
US9208021B2 (en) Data writing method, memory storage device, and memory controller
JP2008299855A (ja) エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法
TW201545167A (zh) 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置
KR20170042433A (ko) 정정 불가능한 ecc 오류를 갖는 데이터를 복구하도록 구성되는 raid 컨트롤러 장치 및 스토리지 장치
JPWO2016013285A1 (ja) メモリコントローラおよびメモリコントローラの制御方法
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
KR20150111273A (ko) 소스-채널 결합 인코더 회로 또는 소스-채널 결합 디코더 회로를 포함하는 메모리 컨트롤러, 및 이를 포함하는 저장 장치
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
CN101634938A (zh) 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘
JP2009259113A (ja) 不揮発性メモリ管理装置
US10970166B2 (en) Memory system and method of controlling non-volatile memory
CN105575439B (zh) 一种存储单元失效纠错的方法及存储器
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
JP2012003569A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

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