KR100645058B1 - 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 - Google Patents

데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 Download PDF

Info

Publication number
KR100645058B1
KR100645058B1 KR1020040088988A KR20040088988A KR100645058B1 KR 100645058 B1 KR100645058 B1 KR 100645058B1 KR 1020040088988 A KR1020040088988 A KR 1020040088988A KR 20040088988 A KR20040088988 A KR 20040088988A KR 100645058 B1 KR100645058 B1 KR 100645058B1
Authority
KR
South Korea
Prior art keywords
memory block
error
data
selected memory
error bits
Prior art date
Application number
KR1020040088988A
Other languages
English (en)
Other versions
KR20060039771A (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 KR1020040088988A priority Critical patent/KR100645058B1/ko
Priority to US11/156,721 priority patent/US7412575B2/en
Priority to JP2005299149A priority patent/JP2006134310A/ja
Priority to DE102005052698A priority patent/DE102005052698A1/de
Priority to CNB2005101193252A priority patent/CN100545817C/zh
Publication of KR20060039771A publication Critical patent/KR20060039771A/ko
Application granted granted Critical
Publication of KR100645058B1 publication Critical patent/KR100645058B1/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/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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
    • G11C2029/0411Online error correction

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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

복수의 메모리 블록들을 갖는 불 휘발성 메모리에 저장된 데이터를 관리하는 방법이 개시되어 있다. 먼저, 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생하였는 지의 여부가 판별된다. 상기 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생한 경우, 상기 선택된 메모리 블록이 어느 데이터 영역에 속하는 지의 여부가 판별된다. 상기 선택된 메모리 블록이 코드 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 지의 여부가 판별된다. 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 경우, 상기 코드 데이터 영역의 선택된 메모리 블록이 여분의 메모리 블록으로 대체되고 상기 코드 데이터 영역의 선택된 메모리 블록이 사용자 데이터 영역으로 지정된다.

Description

데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법{MEMORY MANAGING TECHNIQUE CAPABLE OF IMPROVING DATA RELIABILITY}
도 1은 본 발명에 따른 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도;
도 2는 도 1에 도시된 불 휘발성 메모리의 어레이 구조를 보여주는 도면; 그리고
도 3은 본 발명에 따른 불 휘발성 메모리 장치의 메모리 관리 기법을 설명하기 위한 흐름도이다.
* 도면의 주요 부분에 대한 부호 설명 *
120 : 불 휘발성 메모리 140 : 버퍼 메모리
160 : 제어 회로 162 : ECC 블록
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불 휘발성 메모리 장치에 저장된 데이터를 관리하는 기법에 관한 것이다.
에러 검출 및 정정 기술들은 다양한 원인들로 인해 손상되는 데이터의 효율 적인 복구를 제공한다. 예를 들면, 메모리에 데이터를 저장하는 과정에서 다양한 원인들로 인해서 데이터가 손상될 수 있고, 소오스에서 목적지로 데이터가 전송되는 데이터 전송 채널의 불안 (perturbations)에 의해서 데이터가 손상될 수 있다. 손상된 데이터를 검출하고 보정하기 위해서 다양한 방법들이 제안되어 오고 있다. 잘 알려진 에러 검출 기술들은 RS 코드 (Reed-Solomon code), 헤밍 코드 (Hamming code), BCH (Bose-Chaudhuri-Hocquenghem) 코드, CRC (Cyclic Redundancy Code) 코드 등이 있다. 이러한 코드들을 이용하여 손상된 데이터를 발견하고 보정하는 것이 가능하다. 불 휘발성 메모리 장치가 사용되는 대부분의 응용 분야에 있어서, 데이터는 오류보정코드 (error correcting code: ECC)라 불리는 값 (이하, ECC 데이터라 칭함)과 함께 불 휘발성 메모리 장치에 저장된다.
ECC 데이터는 불 휘발성 메모리 장치의 읽기 동작시 발생하는 에러를 정정하기 위한 것으로, ECC 데이터를 이용하여 정정 가능한 에러 비트 수는 제한되어 있다. 일반적인 불 휘발성 메모리 장치에는 1-비트 에러를 정정하기 위한 ECC 데이터가 저장된다. 읽기 동작시 생기는 1-비트 에러는, 따라서, 잘 알려진 블록 대체 (block replacement)와 같은 별도의 구제 과정없이 에러 검출 및 정정 기술을 통해 정정될 수 있다.
1-비트 에러가 정정된 데이터에 있어서, 다음의 읽기 동작시 추가적으로 에러가 발생할 확률이 높다. 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하는 경우, 블록 대체 방식으로 알려진 별도의 구제 방식을 통해 읽혀진 데이터를 포함하는 메모리 블록이 불 휘발성 메모리 장치에 제공되는 여분의 메모리 블록 (reserved memory block)으로 대체된다. 이때, 대체된 메모리 블록의 데이터는 여분의 메모리 블록으로 복사될 것이다. 일단 읽혀진 데이터가 허용되는 에러 비트 수를 포함하면, 주어진 에러 검출 및 정정 기술을 통해 읽혀진 데이터의 에러가 정정된다. 비록 읽혀진 데이터의 에러가 정정되더라도, 하지만, 에러 정정된 데이터는 추후의 읽기 동작시 에러가 발생할 확률이 높다. 따라서, 에러 정정된 데이터의 신뢰성을 향상시킬 수 있는 기술이 요구되고 있다.
본 발명의 목적은 데이터의 신뢰성을 향상시킬 수 있는 불 휘발성 메모리 장치의 데이터 관리 기법을 제공하는 것이다.
상술한 제반 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 복수의 메모리 블록들을 갖는 불 휘발성 메모리에 저장된 데이터를 관리하는 방법은 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생하였는 지의 여부를 판별하는 단계와; 상기 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생한 경우, 상기 선택된 메모리 블록이 어느 데이터 영역에 속하는 지의 여부를 판별하는 단계와; 상기 선택된 메모리 블록이 코드 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 지의 여부를 판별하는 단계와; 그리고 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하고 상기 코드 데이터 영역의 선택된 메모리 블록을 사용자 데이터 영역으로 지정하는 단계 를 포함한다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록을 대체하는 데 사용된 여분의 메모리 블록은 상기 코드 데이터 영역으로 지정된다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터를 제외한 상기 선택된 메모리 블록에 저장된 나머지 데이터는 상기 대체된 메모리 블록으로 복사된다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되고, 에러 정정된 데이터는 상기 대체된 메모리 블록에 저장된다.
예시적인 실시예에 있어서, 본 발명에 따른 방법은 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 본 발명에 따른 방법은 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 결함 메모리 블록으로 지정하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 코드 데이터 영역의 선택된 메모리 블록에 저장된 데이터는 새롭게 로드되며, 새롭게 로드된 데이터는 상기 대체된 여분의 메모리 블록에 저장된다.
예시적인 실시예에 있어서, 본 발명에 따른 방법은 상기 선택된 메모리 블록이 상기 사용자 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하였는 지의 여부를 판별하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하지 않은 경우, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정된다.
예시적인 실시예에 있어서, 본 발명에 따른 방법은 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하는 경우, 상기 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록은 결함 메모리 블록으로 지정된다.
본 발명의 다른 특징에 따르면, 복수의 메모리 블록들을 갖는 불 휘발성 메모리에 저장된 데이터를 관리하는 방법은 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생하였는 지의 여부를 판별하는 단계와; 그리고 상기 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생한 경우, 상기 선택된 메모리 블록이 데이터 영역들 중 어느 데이터 영역에 속하는 지의 여부에 따라 상기 데이터 영역들의 에러를 상이하게 처리하는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 에러를 상이하게 처리하는 단계는 상기 선택된 메모리 블록이 코드 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 지의 여부를 판별하는 단계와; 그리고 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하고 상기 코드 데이터 영역의 선택된 메모리 블록을 사용자 데이터 영역으로 지정하는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록을 대체하는 데 사용된 여분의 메모리 블록은 상기 코드 데이터 영역으로 지정된다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터를 제외한 상기 선택된 메모리 블록에 저장된 나머지 데이터는 상기 대체된 메모리 블록으로 복사된다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되고, 에러 정정된 데이터는 상기 대체된 메모리 블록에 저장된다.
예시적인 실시예에 있어서, 상기 에러를 상이하게 처리하는 단계는 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 에러를 상이하게 처리하는 단계는 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 결함 메모리 블록으로 지정하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 코드 데이터 영역의 선택된 메모리 블록에 저장된 데이터는 새롭게 로드되며, 새롭게 로드된 데이터는 상기 대체된 여분의 메모리 블록에 저장된다.
예시적인 실시예에 있어서, 상기 에러를 상이하게 처리하는 단계는 상기 선 택된 메모리 블록이 상기 사용자 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하였는 지의 여부를 판별하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하지 않은 경우, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정된다.
예시적인 실시예에 있어서, 상기 에러를 상이하게 처리하는 단계는 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하는 경우, 상기 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함한다.
예시적인 실시예에 있어서, 상기 선택된 메모리 블록은 결함 메모리 블록으로 지정된다.
본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
도 1은 본 발명에 따른 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다. 본 발명에 따른 불 휘발성 메모리 장치는 NAND 플래시 메모리 장치이다. 하지만, 본 발명이 다른 메모리 장치들 (예를 들면, MROM, PROM, FRAM, NOR 플래시 메모리 장치, 등)에 적용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 1을 참조하면, 본 발명에 따른 불 휘발성 메모리 장치 (100)는 불 휘발성 메모리 (120), 버퍼 메모리 (140), 그리고 제어 회로 (160)를 포함한다. 불 휘발성 메모리 (120)는, 도 2에 도시된 바와 같이, 제 1 메모리 영역 (121), 제 2 메모리 영역 (122), 그리고 제 3 메모리 영역 (123)으로 구성된 메모리 셀 어레이를 포함한다. 제 1 내지 제 3 메모리 영역들 (121, 122, 123) 각각은 메모리 블록들로 구성되고, 각 메모리 블록은 복수 개의 페이지들로 구성된다. 코드 데이터 영역으로서 제 1 메모리 영역 (121)에는 응용 프로그램과 같은 코드 데이터가 저장되고, 사용자 데이터 영역으로서 제 2 메모리 영역 (122)에는 일반적인 데이터로서 사용자 데이터가 저장된다. 제 3 메모리 영역 (123)은 제 1 및 제 2 메모리 영역들 (121, 122)의 메모리 블록(들)을 대체하기 위한 여분의 메모리 영역이다. 버퍼 메모리 (140)는 불 휘발성 메모리 (120)에서 읽혀진 데이터를 임시 저장하는 데 그리고 불 휘발성 메모리 (120)에 저장될 데이터를 임시 저장하는 데 사용된다. 제어 회로 (160)는 불 휘발성 메모리 (120)와 버퍼 메모리 (140)의 동작들 (예를 들면, 읽기 및 쓰기 동작들)을 제어하도록 구성된다. 제어 회로 (160)는 에러정정코드 (ECC) 블록 (162)을 포함한다. ECC 블록 (162)은 버퍼 메모리 (140)에서 불 휘발성 메모리 (120)로 쓰여질 데이터가 전송될 때 쓰여질 데이터와 관련된 ECC 데이터를 생성한다. ECC 블록 (162)은 불 휘발성 메모리 (120)에서 버퍼 메모리 (140)로 읽혀진 데이터가 전송될 때 읽혀진 데이터에 에러가 생성되었는 지의 여부를 검출한다. 읽혀진 데이터에 ECC 블록 (162)의 허용되는 에러 비트 수에 해당하는 에러가 생성된 경우, ECC 블록 (162)은 읽혀진 데이터의 에러를 정정한다. ECC 블록 (162)의 정정 가능한 에러 비트 수는 미리 결정된다. 예를 들면, ECC 블록 (162)은 허용되는 에러 비트 수에 해당하는 1-비트 에러를 정정하도록 구성될 것이다. 하지만, ECC 블 록 (162)이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 1에 있어서, 불 휘발성 메모리 (120), 버퍼 메모리 (140), 그리고 제어 회로 (160)는 단일의 집적 회로에 포함되도록 구현될 수 있다. 불 휘발성 메모리 (120), 버퍼 메모리 (140), 그리고 제어 회로 (160)는 메모리 시스템을 구성하도록 서로 다른 집적 회로들로 구현될 수 있다.
도 3은 본 발명에 따른 불 휘발성 메모리 장치의 메모리 관리 기법을 설명하기 위한 흐름도이다. 이하, 본 발명에 따른 불 휘발성 메모리 장치의 메모리 관리 기법이 참조 도면들에 의거하여 상세히 설명될 것이다.
제어 회로 (160)는 불 휘발성 메모리 (120)에서 버퍼 메모리 (140)로 데이터가 전송되도록 제어한다. 즉, 제어 회로 (160)의 제어에 따라 읽기 동작이 수행된다 (S100). 설명의 편의상, 읽기 동작시 한 페이지 분량의 데이터 (이하, 페이지 데이터라 칭함)가 불 휘발성 메모리 (120)에서 버퍼 메모리 (140)로 전송된다고 가정하자. 불 휘발성 메모리 (120)에서 버퍼 메모리 (140)로 페이지 데이터가 전송되는 동안, 제어 회로 (160)의 ECC 블록 (162)은 읽혀진 페이지 데이터에서 에러가 생성되었는 지의 여부를 검출한다 (S110). 만약 읽혀진 페이지 데이터에서 에러가 발생하지 않으면, 읽기 동작은 정상적으로 종료될 것이다. 만약 읽혀진 페이지 데이터에서 에러가 발생하면, 제어 회로 (160)는 에러가 코드 데이터 영역으로서 제 1 메모리 영역 (121)에서 발생하였는 지의 여부를 판별한다 (S120). 만약 그렇지 않으면, 제어 회로 (160)는 읽기 동작시 2-비트 에러가 발생하였는 지의 여부를 판 별한다 (S130). 만약 읽기 동작시 발생한 에러가 ECC 블록 (162)의 허용되는 에러 비트 수를 초과하는 2-비트 에러가 아니면, 읽기 동작은 정상적으로 종료된다. 즉, 읽기 동작시 발생한 제 2 메모리 영역 (122)에서 읽혀진 페이지 데이터의 에러가 ECC 블록 (162)의 허용되는 에러 비트 수에 속하는 1-비트 에러인 경우, 현재 발생된 에러는 별도의 구제 과정없이 ECC 블록 (162)에 의해서 검출/정정된다. 따라서, 만약 읽기 동작시 발생한 에러가 2-비트 에러가 아니면, 읽기 동작은 블록 대체와 같은 별도의 구제 과정없이 정상적으로 종료된다.
제 2 메모리 영역 (122)에서 읽혀진 페이지 데이터의 에러가 ECC 블록 (162)의 허용되는 에러 비트 수를 초과한 2-비트 에러인 경우, 현재 읽혀진 데이터의 페이지를 포함한 제 2 메모리 영역 (122)의 메모리 블록은 제 3 메모리 영역 (123)의 메모리 블록들 중 하나로 대체된다 (S140). 이때, 에러 페이지 데이터를 제외한 나머지 페이지 데이터는 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 복사된다. 에러 페이지 데이터는 ECC 블록 (162)에 의해서 정정되고, 에러 정정된 페이지 데이터는 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 복사된다. 이와 동시에, 에러 페이지 데이터를 포함한 메모리 블록은 결함 메모리 블록으로 지정되고, 대체된 메모리 블록은 제 2 메모리 영역 (122)의 메모리 블록으로 지정된다. 에러 페이지 데이터를 포함한 메모리 블록이 대체된 후, 읽기 동작은 종료될 것이다. 즉, 읽기 동작시 발생한 제 2 메모리 영역 (122)에서 읽혀진 페이지 데이터의 에러가 ECC 블록 (162)의 허용되는 에러 비트 수를 초과하는 2-비트 에러인 경우, 현재 발생된 에러는 별도의 구제 과정과 함께 정정된다. 따라서, 만약 읽기 동작시 제 2 메모리 영역 (122)에서 발생한 에러가 2-비트 에러이면, 읽기 동작은 블록 대체와 같은 별도의 구제 과정이 수행된 후 종료된다.
다시 S120 단계로 돌아가면, 에러가 제 1 메모리 영역 (121)에서 발생한 경우, 제어 회로 (160)는 현재 발생된 에러가 ECC 블록 (162)의 허용되는 에러 비트 수에 속하는 1-비트 에러인 지의 여부를 판별한다 (S150). 만약 현재 발생된 에러가 1-비트 에러가 아니면 즉, 2-비트 에러가 제 1 메모리 영역 (121)에서 발생하면, 에러가 발생한 페이지를 포함한 제 1 메모리 영역 (121)의 메모리 블록은 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 대체된다 (S160). 이때, 에러가 발생한 메모리 블록은 결함 메모리 블록으로 지정되고, 제 3 메모리 영역 (123)의 대체된 메모리 블록은 제 1 메모리 영역 (121)의 메모리 블록으로 지정된다. 여기서, 제 1 메모리 영역 (121)의 결함 메모리 블록에 저장된 데이터 대신에 새롭게 입력된 (또는 로드된) 데이터가 잘 알려진 방식에 따라 결함 메모리 블록 대신에 지정된 메모리 블록에 저장될 것이다. 이후, 읽기 동작이 종료될 것이다. 만약 현재 발생된 에러가 ECC 블록 (162)의 허용되는 에러 비트 수에 속하는 1-비트 에러이면, 즉, 1-비트 에러가 제 1 메모리 영역 (121)에서 발생하면, 제 1 메모리 영역 (121)의 메모리 블록은 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 대체되고, 제 1 메모리 영역 (121)의 메모리 블록은 제 2 메모리 영역 (122)의 메모리 블록으로 지정된다 (S170). 제 1 메모리 영역 (121)의 메모리 블록이 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 대체될 때, 에러가 발생한 페이지 데이터를 제외한 나머지 페이지 데이터는 새롭게 지정된 메모리 블록으로 복사된다. 에러가 발 생한 페이지 데이터는 ECC 블록 (162)에 의해서 정정되고, 에러 정정된 페이지 데이터는 새롭게 지정된 메모리 블록으로 복사된다. 이후, 읽기 동작이 종료될 것이다.
이상의 설명으로부터 알 수 있듯이, 제 1 메모리 영역 (121)에서 1-비트 에러 (ECC 블록의 허용되는 에러 비트 수에 속함)가 발생하면, 1-비트 에러가 발생한 제 1 메모리 영역 (121)의 메모리 블록의 페이지 데이터는 제 3 메모리 영역 (123)의 대응하는 메모리 블록으로 복사된다. 1-비트 에러가 발생하는 제 1 메모리 영역 (121)의 메모리 블록은 제 2 메모리 영역 (122)의 메모리 블록으로 지정된다. 이는 제 1 메모리 영역 (121)에 저장된 데이터의 신뢰성이 향상될 수 있음을 의미한다. 즉, 1-비트 에러가 제 1 메모리 영역에서 발생될 때마다, 제 1 메모리 영역의 메모리 블록이 여분의 메모리 블록으로 대체되며, 그 결과 한 페이지에서 생기는 1-비트 에러의 확률이 일정하게 유지될 수 있다. 결과적으로, 제 1 메모리 영역 (121)에 저장된 데이터의 신뢰성이 향상될 수 있다.
이 실시예에 있어서, 제 3 메모리 영역의 메모리 블록들은 제 1 및 제 2 메모리 영역들에 관계없이 사용되도록 구성되었다. 하지만, 제 3 메모리 영역의 메모리 블록들 중 일부는 제 1 메모리 영역의 메모리 블록들으로 대체되도록 그리고 나머지 메모리 블록들은 제 2 메모리 영역의 메모리 블록들로 대체되도록 구성될 수 있다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 제 1 및 제 2 메모리 영역들의 에러를 상이한 방식으로 관리함으로써 제 1 메모리 영역에 저장된 데이터 (또는 코드 데이터)의 신뢰성을 향상시킬 수 있다.

Claims (23)

  1. 복수의 메모리 블록들을 갖는 불 휘발성 메모리에 저장된 데이터를 관리하는 방법에 있어서:
    선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생하였는 지의 여부를 판별하는 단계와;
    상기 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생한 경우, 상기 선택된 메모리 블록이 어느 데이터 영역에 속하는 지의 여부를 판별하는 단계와;
    상기 선택된 메모리 블록이 코드 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 지의 여부를 판별하는 단계와; 그리고
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하고 상기 코드 데이터 영역의 선택된 메모리 블록을 사용자 데이터 영역으로 지정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 선택된 메모리 블록을 대체하는 데 사용된 여분의 메모리 블록은 상기 코드 데이터 영역으로 지정되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 읽혀진 데이터를 제외한 상기 선택된 메모리 블록에 저장된 나머지 데이터는 상기 대체된 메모리 블록으로 복사되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서,
    상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되고, 에러 정정된 데이터는 상기 대체된 메모리 블록에 저장되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 결함 메모리 블록으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 코드 데이터 영역의 선택된 메모리 블록에 저장된 데이터는 새롭게 로드되며, 새롭게 로드된 데이터는 상기 대체된 여분의 메모리 블록에 저장되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 선택된 메모리 블록이 상기 사용자 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하였는 지의 여부를 판별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하지 않은 경우, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되는 것을 특징으로 하는 방법.
  10. 제 8 항에 있어서,
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하는 경우, 상기 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제 10 항에 있어서,
    상기 선택된 메모리 블록은 결함 메모리 블록으로 지정되는 것을 특징으로 하는 방법.
  12. 복수의 메모리 블록들을 갖는 불 휘발성 메모리에 저장된 데이터를 관리하는 방법에 있어서:
    선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생하였는 지의 여부를 판별하는 단계와; 그리고
    상기 선택된 메모리 블록에서 읽혀진 데이터에 에러가 발생한 경우, 상기 선택된 메모리 블록이 데이터 영역들 중 어느 데이터 영역에 속하는 지의 여부에 따라 그리고 상기 읽혀진 데이터의 에러 비트 수가 허용 가능한 에러 비트 수를 초과하였는 지의 여부에 따라 블록 대체 방식과 에러 정정 방식 중 어느 하나의 방식으로 상기 데이터 영역들의 에러를 처리하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    상기 에러를 처리하는 단계는
    상기 선택된 메모리 블록이 코드 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 지의 여부를 판별하는 단계와; 그리고
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하는 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하고 상기 코드 데이터 영역의 선택된 메모리 블록을 사용자 데이터 영역으로 지정하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 선택된 메모리 블록을 대체하는 데 사용된 여분의 메모리 블록은 상기 코드 데이터 영역으로 지정되는 것을 특징으로 하는 방법.
  15. 제 13 항에 있어서,
    상기 읽혀진 데이터를 제외한 상기 선택된 메모리 블록에 저장된 나머지 데이터는 상기 대체된 메모리 블록으로 복사되는 것을 특징으로 하는 방법.
  16. 제 13 항에 있어서,
    상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되고, 에러 정정된 데이터는 상기 대체된 메모리 블록에 저장되는 것을 특징으로 하는 방법.
  17. 제 13 항에 있어서,
    상기 에러를 처리하는 단계는
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서,
    상기 에러를 처리하는 단계는
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수와 일치하지 않은 경우, 상기 코드 데이터 영역의 선택된 메모리 블록을 결함 메모리 블록으로 지정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 제 18 항에 있어서,
    상기 코드 데이터 영역의 선택된 메모리 블록에 저장된 데이터는 새롭게 로드되며, 새롭게 로드된 데이터는 상기 대체된 여분의 메모리 블록에 저장되는 것을 특징으로 하는 방법.
  20. 제 13 항에 있어서,
    상기 에러를 처리하는 단계는
    상기 선택된 메모리 블록이 상기 사용자 데이터 영역인 경우, 상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하였는 지의 여부를 판별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 제 20 항에 있어서,
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하지 않 은 경우, 상기 읽혀진 데이터의 에러는 에러정정코드 블록에 의해서 자동적으로 정정되는 것을 특징으로 하는 방법.
  22. 제 20 항에 있어서,
    상기 에러를 처리하는 단계는
    상기 읽혀진 데이터의 에러 비트 수가 허용되는 에러 비트 수를 초과하는 경우, 상기 선택된 메모리 블록을 여분의 메모리 블록으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  23. 제 22 항에 있어서,
    상기 선택된 메모리 블록은 결함 메모리 블록으로 지정되는 것을 특징으로 하는 방법.
KR1020040088988A 2004-11-03 2004-11-03 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 KR100645058B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040088988A KR100645058B1 (ko) 2004-11-03 2004-11-03 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
US11/156,721 US7412575B2 (en) 2004-11-03 2005-06-21 Data management technique for improving data reliability
JP2005299149A JP2006134310A (ja) 2004-11-03 2005-10-13 データ信頼性を向上させることができるメモリ管理方法
DE102005052698A DE102005052698A1 (de) 2004-11-03 2005-10-31 Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
CNB2005101193252A CN100545817C (zh) 2004-11-03 2005-11-03 用于提高数据可靠性的数据管理技术

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040088988A KR100645058B1 (ko) 2004-11-03 2004-11-03 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법

Publications (2)

Publication Number Publication Date
KR20060039771A KR20060039771A (ko) 2006-05-09
KR100645058B1 true KR100645058B1 (ko) 2006-11-10

Family

ID=36202091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040088988A KR100645058B1 (ko) 2004-11-03 2004-11-03 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법

Country Status (5)

Country Link
US (1) US7412575B2 (ko)
JP (1) JP2006134310A (ko)
KR (1) KR100645058B1 (ko)
CN (1) CN100545817C (ko)
DE (1) DE102005052698A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7469368B2 (en) * 2005-11-29 2008-12-23 Broadcom Corporation Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US20080092015A1 (en) * 2006-09-28 2008-04-17 Yigal Brandman Nonvolatile memory with adaptive operation
US7818653B2 (en) 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US7765426B2 (en) * 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
TWI343001B (en) * 2007-11-13 2011-06-01 Ite Tech Inc Data preserving method and data accessing method for non-volatile memory
EP2077559B1 (en) * 2007-12-27 2012-11-07 Hagiwara Solutions Co., Ltd. Refresh method of a flash memory
US7934130B2 (en) * 2008-08-29 2011-04-26 Cadence Design Systems, Inc. System and method for managing non-volatile memory based on health
US8510614B2 (en) * 2008-09-11 2013-08-13 Mediatek Inc. Bad block identification methods
CN101859604B (zh) * 2009-04-10 2012-10-24 国民技术股份有限公司 闪存坏块的利用方法
KR20110018605A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 자동 백업기능을 갖는 저장장치
KR101090394B1 (ko) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US8331151B2 (en) 2009-12-25 2012-12-11 Samsung Electronics Co., Ltd. Semiconductor memory including control unit responsive to erase command to determine selection of redundant memory block
JP5494086B2 (ja) * 2010-03-24 2014-05-14 パナソニック株式会社 不揮発性記憶装置および不揮発性メモリコントローラ
US8549379B2 (en) * 2010-11-19 2013-10-01 Xilinx, Inc. Classifying a criticality of a soft error and mitigating the soft error based on the criticality
US9086983B2 (en) 2011-05-31 2015-07-21 Micron Technology, Inc. Apparatus and methods for providing data integrity
US8522091B1 (en) 2011-11-18 2013-08-27 Xilinx, Inc. Prioritized detection of memory corruption
US9455048B2 (en) * 2013-06-28 2016-09-27 Sandisk Technologies Llc NAND flash word line management using multiple fragment pools
KR20150033859A (ko) * 2013-09-25 2015-04-02 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
KR102297541B1 (ko) 2014-12-18 2021-09-06 삼성전자주식회사 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템
US10204693B2 (en) * 2016-12-31 2019-02-12 Western Digital Technologies, Inc. Retiring computer memory blocks
CN110568993B (zh) * 2019-08-06 2022-04-12 新华三技术有限公司成都分公司 一种数据更新方法及相关装置
US11093164B2 (en) * 2019-08-27 2021-08-17 Micron Technology, Inc. Handling bad blocks generated during a block erase operation
CN111625200B (zh) * 2020-05-29 2024-02-27 合肥中科智存科技有限公司 一种非易失性存储器的读取方法、装置及系统
TWI794967B (zh) * 2021-09-10 2023-03-01 臺灣發展軟體科技股份有限公司 資料處理電路及故障修補方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2514954B2 (ja) * 1987-03-13 1996-07-10 三菱電機株式会社 Icカ−ド
JPH05150913A (ja) * 1991-11-29 1993-06-18 Hitachi Ltd フラツシユメモリを記憶媒体としたシリコンデイスク
DE69716233T2 (de) * 1996-08-16 2003-02-20 Tokyo Electron Device Ltd Halbleiterspeicheranordnung mit fehlerdetektion und -korrektur
JPH10289164A (ja) * 1997-04-16 1998-10-27 Mitsubishi Electric Corp メモリ制御方法およびメモリ制御装置
JP3230485B2 (ja) * 1998-04-09 2001-11-19 日本電気株式会社 1チップマイクロコンピュータ
KR100328818B1 (ko) 1998-09-17 2002-10-19 주식회사 하이닉스반도체 플래시 메모리의 데이타 저장방법
US6684289B1 (en) * 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US20040083334A1 (en) 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
JP4239754B2 (ja) * 2003-08-26 2009-03-18 パナソニック株式会社 不揮発メモリシステム

Also Published As

Publication number Publication date
CN1790292A (zh) 2006-06-21
US20060107127A1 (en) 2006-05-18
JP2006134310A (ja) 2006-05-25
US7412575B2 (en) 2008-08-12
CN100545817C (zh) 2009-09-30
DE102005052698A1 (de) 2006-05-04
KR20060039771A (ko) 2006-05-09

Similar Documents

Publication Publication Date Title
KR100645058B1 (ko) 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법
US8694849B1 (en) Shuffler error correction code system and method
KR100681429B1 (ko) 반도체 메모리 장치 및 그것의 비트 에러 검출 방법
US8954818B2 (en) Error detection and correction scheme for a memory device
KR100712596B1 (ko) 플래시 메모리 장치의 리페어 및 트리밍 방법 및 장치
US8010873B2 (en) Systems and methods for efficient uncorrectable error detection in flash memory
KR102143353B1 (ko) 메모리 소자로부터 액세스된 데이터의 오류를 정정하는 장치 및 방법
US10333558B2 (en) Decoding device and decoding method
US8635508B2 (en) Systems and methods for performing concatenated error correction
US20110041040A1 (en) Error Correction Method for a Memory Device
US8347183B2 (en) Flash memory device using ECC algorithm and method of operating the same
US10514980B2 (en) Encoding method and memory storage apparatus using the same
JP2019057752A (ja) メモリシステム
US20050091569A1 (en) System and method for securely storing data in a memory
US8347201B2 (en) Reading method of a memory device with embedded error-correcting code and memory device with embedded error-correcting code
US20180122494A1 (en) Raid decoding architecture with reduced bandwidth
JP2009295252A (ja) 半導体記憶装置及びそのエラー訂正方法
WO2017158430A1 (en) Coding technique
US9170881B2 (en) Solid state device coding architecture for chipkill and endurance improvement
JP2005011386A (ja) 誤り訂正装置
US11962327B2 (en) Iterative decoding technique for correcting DRAM device failures
US20190324852A1 (en) Semiconductor integrated circuit, storage device, and error correction method

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: 20091016

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee