KR20100031402A - 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치 - Google Patents

프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치 Download PDF

Info

Publication number
KR20100031402A
KR20100031402A KR1020080090490A KR20080090490A KR20100031402A KR 20100031402 A KR20100031402 A KR 20100031402A KR 1020080090490 A KR1020080090490 A KR 1020080090490A KR 20080090490 A KR20080090490 A KR 20080090490A KR 20100031402 A KR20100031402 A KR 20100031402A
Authority
KR
South Korea
Prior art keywords
bits
free page
error correction
detected
data
Prior art date
Application number
KR1020080090490A
Other languages
English (en)
Other versions
KR101497545B1 (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 KR1020080090490A priority Critical patent/KR101497545B1/ko
Priority to US12/557,651 priority patent/US8429485B2/en
Publication of KR20100031402A publication Critical patent/KR20100031402A/ko
Priority to US13/859,976 priority patent/US8738989B2/en
Application granted granted Critical
Publication of KR101497545B1 publication Critical patent/KR101497545B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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
    • 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
    • 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

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 메모리 장치의 프리 페이지를 검출하는 방법 및 장치와 이를 적용하여 에러 정정 코드 디코딩 처리를 실행하는 방법 및 장치에 관한 것이다.
본 발명에 따른 프리 페이지 검출 방법은 프리 페이지 데이터를 에러 정정 코드 필드의 원소에 포함된 목표 코드워드로 변환시키는 변환 방식을 적용하여 메모리로부터 읽어낸 데이터를 에러 정정 코드 필드의 코드워드로 변환시키는 단계, 상기 변환된 코드워드와 상기 초기 설정된 목표 코드워드를 대응되는 비트 단위로 비교하여 동일하지 않은 비트의 개수를 검출하는 단계 및, 상기 검출된 동일하지 않은 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 단계를 포함함을 특징으로 한다.

Description

프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치{Method and apparatus for detecting free page and error correction code decoding method and apparatus using the same}
본 발명은 메모리 장치에서의 데이터 처리 방법 및 장치에 관한 것으로서, 특히 메모리 장치의 프리 페이지를 검출하는 방법 및 장치와 이를 적용하여 에러 정정 코드 디코딩 처리를 실행하는 방법 및 장치에 관한 것이다.
일반적으로, 비휘발성 메모리 소자에서 디폴트 상태인 '1'로 기록된 셀은 기록 동작을 통하여 '0'으로 변하는 것이 가능하지만, '0'으로 기록되어 있는 셀은 '1'로 되돌아 갈 수 없다. 이에 따라서, 비휘발성 메모리는 데이터를 기록할 때 기록할 위치를 포함하는 블록 내의 모든 비트를 '1'로 리셋 시키기 위하여 지우기 작업이 먼저 선행되어야 한다. 보통 한 번의 지우기 작업으로 동시에 지워지는 영역 전체를 블록이라 하며, 지워진 블록 내에 있는 페이지들을 프리 페이지(free page)라고 한다.
따라서, 메모리로부터 읽어낸 페이지가 프리 페이지인지를 효과적으로 판정하는 기술이 필요하게 되었다.
본 발명이 해결하고자 하는 과제는 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하는 프리 페이지 검출 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하는 프리 페이지 검출 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하고, 프리 페이지 판정 결과에 근거하여 에러 정정 디코딩 처리를 실행하는 에러 정정 코드 디코딩 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하고, 프리 페이지 판정 결과에 근거하여 에러 정정 디코딩 처리를 실행하는 에러 정정 코드 디코딩 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하는 프리 페이지 검출 방법 및 프리 페이지 판정 결과에 근거하여 에러 정정 디코딩 처리를 실행하는 에러 정정 코드 디코딩 방법을 수행하는 프로그램 코드가 기록된 저장매체를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일실시 예에 따른 프리 페이지 검출 방법은 프리 페이지 데이터를 에러 정정 코드 필드의 원소에 포함된 목표 코드워드로 변환시키는 변환 방식을 적용하여 메모리로부터 읽어낸 데이터를 에러 정정 코드 필드의 코드워드로 변환시키는 단계, 상기 변환된 코드워드와 상기 초기 설정된 목표 코드워드를 대응되는 비트 단위로 비교하여 동일하지 않은 비트의 개수를 검출하는 단계 및, 상기 검출된 동일하지 않은 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 단계를 포함함을 특징으로 한다.
상기 목표 코드워드는 모든 비트가 '0'인 코드워드를 포함하는 것이 바람직하다.
상기 검출된 동일하지 않은 비트의 개수가 초기 설정된 임계 값을 초과하는 경우에는 정상적인 에러 정정 코드 디코딩을 실행하는 단계를 더 포함하는 것이 바람직하다.
상기 프리 페이지로 결정된 경우에 에러 정정 코드 디코딩을 정지하는 단계를 더 포함하는 것이 바람직하다.
상기 프리 페이지로 결정된 경우에 상기 검출된 동일하지 않은 비트의 개수를 스턱 비트 개수로 리포트하는 단계를 더 포함하는 것이 바람직하다.
상기 과제를 달성하기 위한 본 발명의 다른 실시 예에 따른 프리 페이지 검출 방법은 메모리로부터 읽어낸 데이터를 논리 반전시키는 단계, 상기 논리 반전된 데이터로부터 초기 설정된 데이터 사이즈 단위로 '1'의 논리 값을 갖는 비트의 개수를 검출하는 단계 및, 상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 단계를 포함함을 특징으로 한다.
상기 프리 페이지로 결정되는 경우에 상기 검출된 '1'의 논리 값을 갖는 비트의 개수를 스턱 비트 개수로 리포트하는 단계를 더 포함하는 것이 바람직하다.
상기 다른 과제를 달성하기 위한 본 발명의 일실시 예에 따른 에러 정정 코드 디코딩 방법은 메모리로부터 읽어낸 데이터를 논리 반전시키는 단계, 상기 논리 반전된 데이터에서 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하면서 동시에 상기 논리 반전된 데이터에서 에러 정정 코드에 근거한 에러 검출을 실행하는 단계, 상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우 또는 에러가 검출되지 않은 경우에는 에러 정정 코드에 의한 에러 정정을 중단하는 단계 및, 상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값을 초과하고 에러가 검출되는 경우에는 에러 정정 코드에 의한 에러 정정을 실행하는 단계를 포함함을 특징으로 한다.
상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 조건을 만족하는 경우에는 프리 페이지로 결정하는 단계를 더 포함하는 것이 바람직하다.
상기 또 다른 과제를 달성하기 위한 본 발명의 일실시 예에 따른 프리 페이지 검출 장치는 메모리로부터 읽어낸 데이터를 논리 반전시키는 인버터 및, 상기 인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 프리 페이지 검출기를 포함함을 특징으로 한다.
상기 또 다른 과제를 달성하기 위한 본 발명의 일실시 예에 따른 에러 정정 코드 디코딩 장치는 메모리로부터 읽어낸 데이터를 논리 반전시키는 제1인버터, 상기 제1인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지 상태 신호를 생성시키는 프리 페이지 검출기, 상기 메모리로부터 읽어낸 데이터를 일시 저장하는 데이터 버퍼, 상기 데이터 버퍼에서 읽어낸 데이터를 논리 반전시키는 제2인버터 및, 상기 제2인버터에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고 검출된 에러를 정정하여 출력하며, 상기 프리 페이지 상태 신호가 발생되는 경우에는 에러 검출 및 정정 처리를 정지하는 에러 정정 코드 디코더를 포함함을 특징으로 한다.
상기 또 다른 과제를 달성하기 위한 본 발명의 다른 실시 예에 따른 에러 정정 코드 디코딩 장치는 메모리로부터 읽어낸 데이터를 논리 반전시키는 제1인버터, 상기 제1인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지 상태 신호를 생성시키는 프리 페이지 검출기 및, 상기 제1인버터에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고, 상기 프리 페이지 상태 신호가 생성되는 경우에는 에러 정정을 정지하고, 상기 프리 페이지 상태 신호가 생성되지 않는 경우에만 상기 검출된 에러를 정정하여 출력하는 에러 정정 코드 디코더를 포함함을 특징으로 한다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명은 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하는 프리 페이지 검출 방법 및 프리 페이지 판정 결과에 근거하여 에러 정정 디코딩 처리를 실행하는 에러 정정 코드 디코딩 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 컴퓨터로 읽을 수 있는 저장매체를 제공한다.
본 발명에 의하면 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정함으로써, 허용 범위 이내에서 에러가 발생되는 페이지도 정상적으로 사용할 수 있으므로 메모리 용량이 축소되는 것을 방지할 수 있는 효과가 발생된다.
그리고, 프리 페이지에 포함된 에러가 허용 범위 이내라면 에러 검출 및 에러 정정 처리를 수행하지 않도록 제어함으로써, ECC 디코딩 성능을 향상시킬 수 있는 효과가 발생된다.
또한, 프리 페이지 판정과 ECC 에러 검출을 동시에 실행하고, 프리 페이지로 판정되는 경우에 ECC 에러 정정 처리를 수행하지 않도록 제어함으로써, 데이터 처 리 속도를 향상시킬 수 있는 효과가 발생된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세히 설명하기로 한다.
우선, 본 발명이 적용되는 메모리 장치에 대하여 설명하기로 한다.
도 1에 도시된 바와 같이, 본 발명이 적용되는 메모리 장치는 메모리(110), ECC 인코딩 프로세서(120), 프리 페이지 검출 & ECC 디코딩 프로세서(130) 및 컨트롤러(140)를 구비한다.
메모리(110)는 정보를 저장하는 수단으로서, 비휘발성 메모리 소자를 포함한다. 일 예로서, 플래시 메모리가 적용될 수 있다.
비휘발성 메모리 소자인 플래시 메모리에서 디폴트 상태인 '1'로 기록된 셀은 기록 동작을 통하여 '0'으로 변하게 되는 것이 가능하지만, '0'으로 기록되어 있는 셀은 '1'로 되돌아 갈 수 없다. 따라서, 플래시 메모리에 데이터를 기록하고자 하는 경우에는 기록할 위치를 포함하는 블록 내의 모든 비트를 '1'로 리셋한다. 모든 비트를 '1'로 리셋시킨 페이지를 프리 페이지라 한다.
비정상적인 경우에 플래시 메모리의 프리 페이지는 MLC(Multi Level Cell)의 페어 페이지처럼 서로 연관된 페이지의 쓰기 작업을 통해 에러 비트가 발생될 수도 있다. 에러 비트가 발생된 프리 페이지에 대하여 런-타임 배드 블록(Run-time bad block)으로 처리하여 해당 블록을 버릴 수 있으나, 이렇게 처리하면 사용 가능한 메모리 용량이 줄어들게 된다. 이러한 문제를 해결하는 방안은 아래에서 상세하게 설명되어질 것이다.
비휘발성 메모리는 물리적인 특성 때문에 데이터를 기록하고 읽을 때 규격 범위 내의 비트 수만큼의 에러가 발생될 수 있으므로 에러 정정 코드(ECC: Error Correction Code)를 사용하여 에러 정정을 수행한다.
이에 따라서, ECC 인코딩 프로세서(120)는 입력되는 데이터(DATA_IN)에 대하여 에러 정정 시에 필요한 패리티 비트들을 생성시키고, 생성된 패리티 비트들을 입력 데이터에 부가한 코드워드를 출력한다. ECC 인코딩 프로세서(120)에서 출력되는 코드워드는 컨트롤러(140)에 인가되는 제어 명령에 따라서 발생되는 리드/라이트 제어신호 및 어드레스 신호에 의하여 메모리(110)에 기록된다.
컨트롤러(140)는 읽기 동작을 지시하는 제어 명령이 입력되는 경우에 메모리(110)로부터 데이터를 읽어내어 프리 페이지 검출 & ECC 디코딩 프로세서(130)로 출력한다.
프리 페이지 검출 & ECC 디코딩 프로세서(130)는 메모리(110)에서 읽어낸 데이터가 프리 페이지 데이터인지를 판별하는 기능 및 프리 페이지 판별 결과에 근거하여 ECC 디코딩 처리하는 기능을 수행한다.
프리 페이지 검출 & ECC 디코딩 프로세서(130)는 도 4에 도시된 흐름도와 같은 방식으로 프리 페이지 검출 및 ECC 디코딩 처리한다.
그러면, 도 4의 흐름도를 참조하여 프리 페이지 검출 방법을 설명하기로 한다.
우선, 프리 페이지 데이터를 ECC 필드의 원소에 포함된 임의의 코드워드(CW_test)로 변환시키는 변환 방식을 설정한다(S401). 즉, 프리 페이지 데이터가 ECC 필드에서 에러 정정 처리가 가능한 임의의 코드워드로 매핑되도록 변환시키는 방식을 설정한다. 참고적으로, ECC 필드의 원소에 모든 비트가 '0'인 코드워드가 포함되어 있다. 이에 따라서, 일 예로서, 프리 페이지 검출을 위하여 모든 비트가 '1'인 프리 페이지 데이터를 모든 비트가 '0'인 코드워드로 변환시키는 변환 방식을 선택할 수 있다.
다음으로, 단계401(S401)에서 설정된 변환 방식을 적용하여 메모리(110)로부터 읽어낸 데이터를 변환 처리한다(S402). 즉, 프리 페이지 데이터를 ECC 필드의 임의의 원소에 포함된 코드워드(CW_test)로 변환시키는 매핑 방식을 적용하여 메모리(110)로부터 읽어낸 데이터를 ECC 필드의 코드워드로 변환시킨다.
단계402(S402)에서 변환된 코드워드(CW_trans)와 단계401(S401)에서 설정된 코드워드(CW_test)를 대응되는 비트별로 비교한다(S403).
단계403(S403)의 비교 결과 동일하지 않은 총 비트의 개수(Total_Bit_diff)를 검출한다(S404).
그리고 나서, 단계404(S404)에서 검출된 동일하지 않은 총 비트의 개수(Total_Bit_diff)가 임계값(TH) 이하인지를 판단한다(S405). 여기에서, 임계값(TH)은 초기 설정값으로서, ECC 디코더의 에러 정정 가능한 범위 내에서 설정한 다.
단계405(S405)의 판단 결과 Total_Bit_diff가 TH 이하인 경우에는 프리 페이지로 결정하고 나서 ECC 디코딩을 정지한다(S406, S407).
만일, 단계405(S405)의 판단 결과 Total_Bit_diff가 TH를 초과하는 경우에는 정상적인 ECC 디코딩을 실행한다(S408).
이와 같이, 프리 페이지 내의 에러 비트 수가 허용할 수 있는 범위 이내라면 프리 페이지로 판정하고, 프리 페이지로 판정된 경우에 프리 페이지 데이터에 대하여 ECC 디코딩 처리가 불필요함으로 ECC 디코딩을 정지시킨다.
프리 페이지 검출을 위하여 모든 비트가 '1'인 프리 페이지 데이터를 모든 비트가 '0'인 코드워드로 변환시키는 변환 방식을 적용하는 경우의 프리 페이지 검출 & ECC 디코딩 프로세서(130)의 세부적인 구성의 예를 도 2 및 도 3에 도시하였다. 참고적으로, 본 발명에서는 프리 페이지 검출 & ECC 디코딩 프로세서(130)를 ECC 디코딩 장치라고 칭하였다.
도 2에 도시된 바와 같이, 본 발명의 일실시 예에 따른 ECC 디코딩 장치는 복수의 인버터(IN1,IN2), 프리 페이지 검출기(210), 데이터 버퍼(220) 및 ECC 디코더(230)로 구성된다.
인버터 IN1은 메모리(110)에서 읽어낸 데이터(DATA_READ)를 반전시켜 프리 페이지 검출기(210)로 출력한다.
프리 페이지 검출기(210)는 인버터 IN1에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값(TH) 이하인 경우에 프리 페이지 상태 신호(FP Status)를 생성시킨다.
데이터 버퍼(220)는 메모리(110)에서 읽어낸 데이터(DATA_READ)를 일시 저장하고, 프리 페이지 검출 시간 경과 후에 저장된 데이터를 순차적으로 읽어낸다.
인버터 IN2는 데이터 버퍼(220)에서 읽어낸 데이터를 논리 반전시켜 ECC 디코더(230)로 출력한다.
ECC 디코더(230)는 인버터 IN2에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고 검출된 에러를 정정하여 출력하며, 프리 페이지 상태 신호(FP Status)가 발생되는 경우에는 에러 검출 및 정정 처리를 정지한다.
세부적으로, 프리 페이지 검출기(210) 및 ECC 디코더(230)는 도 5에 도시된 바와 같은 방식으로 프리 페이지를 검출하고, 프리 페이지 검출 결과에 근거하여 ECC 디코딩을 실행한다. 도 5를 참조하여 프리 페이지 검출 및 ECC 디코딩 제어 동작을 설명하기로 한다.
우선, 프리 페이지 검출기(210)에 내장된 레지스터에 저장된 Total_Bit_1의 값을 '0'으로 리셋시킨다(S501).
그리고 나서, 프리 페이지 검출기(210)는 반전된 디코더 입력을 읽는다(S502). 반전된 디코더 입력은 인버터 IN1에서 출력되는 데이터에 해당된다.
한 사이클 동안에 ECC 디코딩 장치로 입력된 반전 디코더 입력 데이터에서 '1'의 논리 값을 갖는 비트의 개수를 카운팅하고, 카운팅된 결과를 Cur_Bit_1 값으로 출력한다(S503). ECC 디코더(230)가 매 사이클 처리해야 할 데이터가 8비트인 경우에 반전 디코더 입력 데이터에서 '1'의 개수가 몇 개 검출되는지를 알려주는 논리 회로의 구현 예를 도 7에 도시하였다.
도 7에 도시된 바와 같이 4개의 전가산기(FA1~FA4)와 3개의 반가산기(HA1~HA3)를 조합하여 한 사이클 동안에 반전 디코더 입력 데이터에서 발생되는'1'의 개수 Cur_Bit_1의 값을 검출할 수 있다. 만일 매 사이클 처리해야 할 데이터가 8비트를 초과하는 경우에는 도 7에 도시된 카운터 논리 회로를 복수개 사용한 후에 이진 가산기를 이용해 더하는 방식으로 논리 회로를 설계하여 구현할 수 있으며, 8비트 미만인 경우에는 안 쓰는 비트에 '0'을 설정하는 방식으로 구현할 수 있다.
그리고 나서, Total_Bit_1의 값에 단계503(S503)에서 출력된 Cur_Bit_1의 값을 더한 값으로 Total_Bit_1의 값을 갱신하여 저장한다(S504).
단계504(S504)를 실행하고 나서, ECC 디코딩 장치로 초기 설정된 단위 데이터 사이즈의 데이터가 입력 완료되었는지를 판단한다(S505). 여기에서, 단위 사이즈는 일 예로서 코드워드 사이즈로 설정할 수 있다.
단계505(S505)의 판단 결과 단위 데이터 사이의 데이터가 입력 완료되지 않은 경우에는 단계502(S502)로 돌아가서 다음 사이클 동안에 위의 단계들을 반복하여 실행한다.
만일 단계505(S505)의 판단 결과 단위 데이터 사이의 데이터가 입력 완료된 경우에는 저장된 Total_Bit_1의 값과 임계값(TH)을 비교한다(S506).
단계506(S506)의 비교 결과 Total_Bit_1의 값이 임계값(TH) 이하인 경우에는 프리 페이지 플래그를 '1'로 세팅하여 프리 페이지 상태가 검출되었음을 알린다(S507).
프리 페이지 플래그를 '1'로 세팅하고 나서, Total_Bit_1의 값으로 스턱 비트(stuck bits)의 개수를 리포트한다(S508). 스턱 비트는 프리 페이지에서 발생된 하드 에러가 발생된 비트를 의미한다.
그리고 나서, ECC 디코딩을 정지한다(S509). 즉, 프리 페이지 플래그가 '1'로 세팅되는 경우에 ECC 디코더에서의 에러 검출 및 에러 정정 처리를 정지한다.
만일 단계506(S506)의 비교 결과 Total_Bit_1의 값이 임계값(TH)을 초과하는 경우에는 프리 페이지 플래그를 '0'으로 세팅하여 프리 페이지 상태가 검출되지 않았음을 알린다(S510).
프리 페이지 플래그가 '0'으로 세팅되는 경우에는 ECC 디코더는 정상적으로 에러 검출 및 에러 정정을 실행한다(S511).
위와 같은 방식에 따르면, 프리 페이지 상태를 판정하는데 필요한 시간 동안에 ECC 디코딩을 보류하였다가 프리 페이지로 판정된 경우에는 ECC 디코딩 처리를 정지하고, 프리 페이지로 판정되지 않은 경우에는 정상적으로 ECC 디코딩을 실행하게 된다.
본 발명의 다른 실시 예에 따른 ECC 디코딩 장치를 도 3에 도시하였다. 도 2에 도시된 ECC 디코딩 장치는 프리 페이지 검출 후에 ECC 디코딩을 실행하도록 설계되어 있는데 비하여, 도 3에 도시된 ECC 디코딩 장치는 프리 페이지 검출과 ECC 디코딩을 병행 처리하도록 설계하였다.
도 3에 도시된 바와 같이, 본 발명의 다른 실시 예에 따른 ECC 디코딩 장치는 인버터(IN3), 프리 페이지 검출기(310) 및 ECC 디코더(330)로 구성된다.
인버터 IN3은 메모리(110)에서 읽어낸 데이터(DATA_READ)를 반전시켜 프리 페이지 검출기(310) 및 ECC 디코더(330)로 동시에 출력한다.
프리 페이지 검출기(310)는 인버터 IN3에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값(TH) 이하인 경우에 프리 페이지 상태 신호(FP Status)를 생성시킨다.
ECC 디코더(330)는 인버터 IN3에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고, 프리 페이지 상태 신호(FP Status)가 발생되는 경우에는 에러 정정 처리를 정지하고, 프리 페이지 상태 신호(FP Status)가 발생되지 않는 경우에만 정상적으로 에러 정정 처리를 실행한다.
즉, ECC 디코더(330)에서의 에러 검출 처리를 프리 페이지 검출기(310)에서의 프리 페이지 검출 처리와 동시에 실행하고, 프리 페이지 검출기(310)에서 프리 페이지로 판정되면 ECC 디코더(330)에서의 에러 정정 처리를 중단한다. 그리고, 프리 페이지로 판정되지 않은 경우에는 ECC 디코더(330)는 정상적으로 에러 정정 처리를 실행한다.
그러면, 도 6의 흐름도를 참조하여 도 3의 구성에 따른 프리 페이지 검출 및 ECC 디코딩 처리를 실행하는 방법을 상세히 설명하기로 한다.
우선, 메모리(110)에서 읽어낸 ECC 디코딩 장치의 입력 데이터(DATA_READ)를 반전시킨다(S601).
그리고 나서, 반전된 입력 데이터로부터 단위 데이터 사이즈의 데이터에 포함된 '1'의 논리 값을 갖는 비트의 개수를 카운팅하고, 동시에 반전된 입력 데이터에서 ECC 에러를 검출한다(S602). 여기에서, 단위 데이터 사이즈는 코드워드 사이즈로 설정할 수 있다.
단위 데이터 사이즈에 대한 '1'의 논리 값을 갖는 비트의 개수 카운팅 및 ECC 에러 검출을 마친 후에, 단위 데이터 사이즈에 대한 '1'의 논리 값을 갖는 비트의 개수 카운팅 값이 임계값(TH) 이하인지 여부와 에러 검출이 발생되었는지를 함께 판정한다(S603).
단계603(S603)의 판정 결과 '1'의 논리 값을 갖는 비트의 개수가 임계 값(TH) 이하인 경우 또는 에러가 검출되지 않은 경우에는 에러 정정 코드에 의한 에러 정정을 중단하고, '1'의 논리 값을 갖는 비트의 개수로 스턱 비트(stuck bits)의 개수를 리포트한다(S604).
만일 단계603(S603)의 판정 결과 '1'의 논리 값을 갖는 비트의 개수가 임계 값(TH)을 초과하고 에러가 검출된 경우에는 정상적으로 ECC 에러 정정 처리를 실행한다(S605).
이와 같은 동작에 의하여 프리 페이지 검출과 동시에 ECC 에러 검출을 실행하고, 프리 페이지 검출 결과 및 ECC 에러 검출 결과에 근거하여 ECC 에러 정정을 실행하게 된다.
본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행 될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수(RF) 망, 등이 있다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술 분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.
도 1은 본 발명이 적용되는 메모리 장치의 블록 구성도이다.
도 2는 본 발명의 일실시 예에 따른 ECC 디코딩 장치의 구성도이다.
도 3은 본 발명의 다른 실시 예에 따른 ECC 디코딩 장치의 구성도이다.
도 4는 본 발명의 일실시 예에 따른 프리 페이지 검출 방법의 흐름도이다.
도 5는 본 발명의 다른 실시 예에 따른 프리 페이지 검출 방법의 흐름도이다.
도 6은 본 발명의 또 다른 실시 예에 따른 프리 페이지 검출 방법의 흐름도이다.
도 7은 본 발명에 따른 반전 디코더 입력에서 '1'의 개수를 카운팅하기 위한 논리 회로의 예를 보여준다.

Claims (18)

  1. 프리 페이지 데이터를 에러 정정 코드 필드의 원소에 포함된 목표 코드워드로 변환시키는 변환 방식을 적용하여 메모리로부터 읽어낸 데이터를 에러 정정 코드 필드의 코드워드로 변환시키는 단계;
    상기 변환된 코드워드와 상기 초기 설정된 목표 코드워드를 대응되는 비트 단위로 비교하여 동일하지 않은 비트의 개수를 검출하는 단계; 및
    상기 검출된 동일하지 않은 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 단계를 포함함을 특징으로 하는 프리 페이지 검출 방법.
  2. 제1항에 있어서, 상기 목표 코드워드는 모든 비트가 '0'인 코드워드를 포함함을 특징으로 하는 프리 페이지 검출 방법.
  3. 제1항에 있어서, 상기 검출된 동일하지 않은 비트의 개수가 초기 설정된 임계값을 초과하는 경우에 정상적인 에러 정정 코드 디코딩을 실행하는 단계를 더 포함함을 특징으로 하는 프리 페이지 검출 방법.
  4. 제1항에 있어서, 상기 프리 페이지로 결정된 경우에 에러 정정 코드 디코딩을 정지하는 단계를 더 포함함을 특징으로 하는 프리 페이지 검출 방법.
  5. 제1항에 있어서, 상기 프리 페이지로 결정된 경우에 상기 검출된 동일하지 않은 비트의 개수를 스턱 비트 개수로 리포트하는 단계를 더 포함함을 특징으로 하는 프리 페이지 검출 방법.
  6. 메모리로부터 읽어낸 데이터를 논리 반전시키는 단계;
    상기 논리 반전된 데이터로부터 초기 설정된 데이터 사이즈 단위로 '1'의 논리 값을 갖는 비트의 개수를 검출하는 단계; 및
    상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 단계를 포함함을 특징으로 하는 프리 페이지 검출 방법.
  7. 제6항에 있어서, 상기 데이터 사이즈는 코드워드 사이즈로 설정함을 특징으로 하는 프리 페이지 검출 방법.
  8. 제6항에 있어서, 상기 프리 페이지로 결정되는 경우에 에러 정정 코드 디코딩을 정지하는 단계를 더 포함함을 특징으로 하는 프리 페이지 검출 방법.
  9. 제6항에 있어서, 상기 프리 페이지로 결정되는 경우에 상기 검출된 '1'의 논리 값을 갖는 비트의 개수를 스턱 비트 개수로 리포트하는 단계를 더 포함함을 특 징으로 하는 프리 페이지 검출 방법.
  10. 제6항에 있어서, 상기 프리 페이지로 결정되지 않는 경우에 정상적인 에러 정정 코드 디코딩을 실행하는 단계를 더 포함함을 특징으로 하는 프리 페이지 검출 방법.
  11. 메모리로부터 읽어낸 데이터를 논리 반전시키는 단계;
    상기 논리 반전된 데이터에서 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하면서 동시에 상기 논리 반전된 데이터에서 에러 정정 코드에 근거한 에러 검출을 실행하는 단계;
    상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우 또는 에러가 검출되지 않은 경우에는 에러 정정 코드에 의한 에러 정정을 중단하는 단계; 및
    상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계값을 초과하고 에러가 검출되는 경우에는 에러 정정 코드에 의한 에러 정정을 실행하는 단계를 포함함을 특징으로 하는 에러 정정 코드 디코딩 방법.
  12. 제11항에 있어서, 상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 조건을 만족하는 경우에는 프리 페이지로 결정하는 단계를 더 포함함을 특징으로 하는 에러 정정 코드 디코딩 방법.
  13. 제11항에 있어서, 상기 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 조건을 만족하는 경우에는 상기 검출된 '1'의 논리 값을 갖는 비트의 개수를 스턱 비트 개수로 리포트하는 단계를 더 포함함을 특징으로 하는 에러 정정 코드 디코딩 방법.
  14. 제1항 내지 제13항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 저장매체.
  15. 메모리로부터 읽어낸 데이터를 논리 반전시키는 인버터; 및
    상기 인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지로 결정하는 프리 페이지 검출기를 포함함을 특징으로 하는 프리 페이지 검출 장치.
  16. 제15항에 있어서, 상기 초기 설정된 데이터 사이즈는 코드워드 단위로 설정함을 특징으로 하는 프리 페이지 검출 장치.
  17. 메모리로부터 읽어낸 데이터를 논리 반전시키는 제1인버터;
    상기 제1인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위 로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지 상태 신호를 생성시키는 프리 페이지 검출기;
    상기 메모리로부터 읽어낸 데이터를 일시 저장하는 데이터 버퍼;
    상기 데이터 버퍼에서 읽어낸 데이터를 논리 반전시키는 제2인버터; 및
    상기 제2인버터에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고 검출된 에러를 정정하여 출력하며, 상기 프리 페이지 상태 신호가 발생되는 경우에는 에러 검출 및 정정 처리를 정지하는 에러 정정 코드 디코더를 포함함을 특징으로 하는 에러 정정 코드 디코딩 장치.
  18. 메모리로부터 읽어낸 데이터를 논리 반전시키는 제1인버터;
    상기 제1인버터에서 출력되는 데이터로부터 초기 설정된 데이터 사이즈 단위로'1'의 논리 값을 갖는 비트의 개수를 검출하고, 검출된 '1'의 논리 값을 갖는 비트의 개수가 초기 설정된 임계 값 이하인 경우에 프리 페이지 상태 신호를 생성시키는 프리 페이지 검출기; 및
    상기 제1인버터에서 출력되는 데이터를 입력하여 에러 정정 코드에 근거하여 에러를 검출하고, 상기 프리 페이지 상태 신호가 생성되는 경우에는 에러 정정을 정지하고, 상기 프리 페이지 상태 신호가 생성되지 않는 경우에만 상기 검출된 에러를 정정하여 출력하는 에러 정정 코드 디코더를 포함함을 특징으로 하는 에러 정정 코드 디코딩 장치.
KR1020080090490A 2008-09-12 2008-09-12 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치 KR101497545B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080090490A KR101497545B1 (ko) 2008-09-12 2008-09-12 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
US12/557,651 US8429485B2 (en) 2008-09-12 2009-09-11 Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
US13/859,976 US8738989B2 (en) 2008-09-12 2013-04-10 Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080090490A KR101497545B1 (ko) 2008-09-12 2008-09-12 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100031402A true KR20100031402A (ko) 2010-03-22
KR101497545B1 KR101497545B1 (ko) 2015-03-03

Family

ID=42008308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080090490A KR101497545B1 (ko) 2008-09-12 2008-09-12 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치

Country Status (2)

Country Link
US (2) US8429485B2 (ko)
KR (1) KR101497545B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101497545B1 (ko) * 2008-09-12 2015-03-03 삼성전자주식회사 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치
US8812934B2 (en) * 2012-12-12 2014-08-19 HGST Netherlands B.V. Techniques for storing bits in memory cells having stuck-at faults
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9721639B1 (en) * 2016-06-21 2017-08-01 Micron Technology, Inc. Memory cell imprint avoidance
TWI692771B (zh) 2017-11-14 2020-05-01 慧榮科技股份有限公司 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
KR102505200B1 (ko) * 2021-04-29 2023-03-02 포항공과대학교 산학협력단 삼진 논리 회로 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60142430A (ja) * 1983-12-28 1985-07-27 Fujitsu Ltd 誤り訂正・検出装置
KR0172366B1 (ko) * 1995-11-10 1999-03-30 김광호 불휘발성 반도체 메모리 장치의 독출 및 프로그램 방법과 그 회로
JPH10285146A (ja) * 1997-03-31 1998-10-23 Ando Electric Co Ltd ビット誤り測定回路
JP2001092723A (ja) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc制御回路及びそれを有するメモリシステム
JP2004234545A (ja) * 2003-01-31 2004-08-19 Toshiba Corp 制御回路及びメモリコントローラ
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
KR20070025145A (ko) * 2005-08-31 2007-03-08 삼성전자주식회사 소프트 복호화 방법 및 장치, 에러 정정 방법 및 장치,소프트 출력 방법 및 장치
JP4928830B2 (ja) * 2006-05-18 2012-05-09 株式会社東芝 Nand型フラッシュメモリ装置及びメモリデバイス
US8239732B2 (en) * 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
KR101497545B1 (ko) * 2008-09-12 2015-03-03 삼성전자주식회사 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치

Also Published As

Publication number Publication date
US8429485B2 (en) 2013-04-23
US20130219246A1 (en) 2013-08-22
US20100070821A1 (en) 2010-03-18
KR101497545B1 (ko) 2015-03-03
US8738989B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
TWI674767B (zh) 用於nand快閃記憶體的渦輪乘積碼
JP5649663B2 (ja) ビット値の格納されているカウントを使用してデータの誤りを訂正するシステムおよび方法
US9037946B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
US7613982B2 (en) Data processing apparatus and method for flash memory
US8321757B2 (en) Method and apparatus for error correction
US8332727B2 (en) Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US9734008B2 (en) Error vector readout from a memory device
US8738989B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
JP6080180B2 (ja) 不揮発性メモリでのマーカプログラミング
US9733870B2 (en) Error vector readout from a memory device
US20170186500A1 (en) Memory circuit defect correction
KR101512927B1 (ko) 비휘발성 메모리의 페이지 관리 방법 및 장치
CN109215726B (zh) 存储器测试方法及其存储器装置
US10025652B2 (en) Error location pointers for non volatile memory
CN106067326B (zh) 错误校正电路及包括其的半导体存储器件
US20170287569A1 (en) Electronic apparatus and data verification method using the same
US10877842B2 (en) Detecting silent data corruption for mass storage devices
US9417957B2 (en) Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device
CN112306382B (zh) 快闪存储器控制器、储存装置及其读取方法
CN109710445B (zh) 内存校正方法和电子设备
JP2020150515A (ja) 誤り訂正回路及びメモリシステム
US9519539B2 (en) Monitoring data error status in a memory
CN112540866B (zh) 存储器装置及其数据存取方法
CN113808642A (zh) 数据存取系统和操作数据存取系统的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 6