KR101460240B1 - 메모리 기반 저장 장치 및 그것의 블록 관리 기법 - Google Patents

메모리 기반 저장 장치 및 그것의 블록 관리 기법 Download PDF

Info

Publication number
KR101460240B1
KR101460240B1 KR1020080055643A KR20080055643A KR101460240B1 KR 101460240 B1 KR101460240 B1 KR 101460240B1 KR 1020080055643 A KR1020080055643 A KR 1020080055643A KR 20080055643 A KR20080055643 A KR 20080055643A KR 101460240 B1 KR101460240 B1 KR 101460240B1
Authority
KR
South Korea
Prior art keywords
memory
block
error
memory block
storage device
Prior art date
Application number
KR1020080055643A
Other languages
English (en)
Other versions
KR20090129626A (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 KR1020080055643A priority Critical patent/KR101460240B1/ko
Priority to US12/457,485 priority patent/US8027194B2/en
Priority to CN200910205766.2A priority patent/CN101673581B/zh
Publication of KR20090129626A publication Critical patent/KR20090129626A/ko
Priority to US13/137,401 priority patent/US8565021B2/en
Priority to US13/137,409 priority patent/US8638585B2/en
Priority to US13/137,424 priority patent/US8705272B2/en
Priority to US13/137,422 priority patent/US8614919B2/en
Priority to US13/137,423 priority patent/US8760918B2/en
Priority to US13/137,425 priority patent/US8625344B2/en
Application granted granted Critical
Publication of KR101460240B1 publication Critical patent/KR101460240B1/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/16Error detection or correction of the data by redundancy in hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

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

Abstract

여기에는 플래시 메모리를 포함하는 메모리 기반 저장 장치의 블록 관리 방법이 제공되며, 이 블록 관리 방법은 상기 플래시 메모리의 읽기 이력에 의거하여 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별하는 단계와; 그리고 상기 판별 결과에 따라 배드 블록으로 처리되도록 또는 제한된 용도로 사용되도록 상기 메모리 블록을 관리하는 단계를 포함한다.

Description

메모리 기반 저장 장치 및 그것의 블록 관리 기법{MEMORY-BASED STORAGE DEVICE AND BLOCK MANAGIN TECHNIQUE THEREOF}
본 발명은 저장 장치에 관한 것으로, 좀 더 구체적으로는 메모리를 기반으로 한 저장 장치에 관한 것이다.
에러 검출 및 정정 기술들은 다양한 원인들로 인해 손상되는 데이터의 효율적인 복구를 제공한다. 예를 들면, 메모리에 데이터를 저장하는 과정에서 다양한 원인들로 인해서 데이터가 손상될 수 있고, 소오스에서 목적지로 데이터가 전송되는 데이터 전송 채널의 불안(perturbations)에 의해서 데이터가 손상될 수 있다. 손상된 데이터를 검출하고 보정하기 위해서 다양한 방법들이 제안되어 오고 있다. 잘 알려진 에러 검출 기술들은 RS 코드(Reed-Solomon code), 헤밍 코드(Hamming code), BCH(Bose-Chaudhuri-Hocquenghem) 코드, CRC(Cyclic Redundancy Code) 코드 등이 있다. 이러한 코드들을 이용하여 손상된 데이터를 발견하고 보정하는 것이 가능하다. 불 휘발성 메모리 장치가 사용되는 대부분의 응용 분야에 있어서, 데이터는 오류정정코드(error correcting code: ECC)라 불리는 값 (이하, ECC 데이터라 칭함)과 함께 플래시 메모리 장치에 저장된다. ECC 데이터는 플래시 메모리 장치의 읽기 동작시 발생하는 에러를 정정하기 위한 것으로, ECC 데이터를 이용하여 정정 가능한 에러 비트 수는 제한되어 있다. 읽기 동작시 생기는 비트 에러는 잘 알려진 블록 대체(block replacement)와 같은 별도의 구제 과정없이 에러 검출 및 정정 기술을 통해 정정될 수 있다. 이에 반해서, 읽기 동작시 생기는 비트 에러가 정정 불가능한 경우, 비트 에러를 포함한 메모리 블록에 저장된 데이터는 소실될 것이다.
본 발명의 목적은 신뢰성을 향상시킬 수 있는 메모리 기반 저장 장치 및 그것의 블록 관리 기법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 플래시 메모리를 포함하는 메모리 기반 저장 장치의 블록 관리 방법을 제공하며, 이 블록 관리 방법은 상기 플래시 메모리의 읽기 이력에 의거하여 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별하는 단계와; 그리고 상기 판별 결과에 따라 배드 블록으로 처리되도록 또는 제한된 용도로 사용되도록 상기 메모리 블록을 관리하는 단계를 포함한다.
본 발명의 다른 예시적인 실시예들은 플래시 메모리와; 그리고 상기 플래시 메모리를 관리하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 플래시 메모리의 읽기 이력에 의거하여 상기 플래시 메모리의 메모리 블록들을 관리하는 메모리 기반 저장 장치를 제공한다.
본 발명에 의하면, 메모리 기반 저장 장치의 신뢰성이 향상될 것이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이며, 도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템은 호스트(100)와 메모리 기반 저장 장치(memory-based storage device)(200)를 포함할 것이다. 메모리 기반 저장 장치(200)는 호스트(100)의 요청에 따라 데이터를 저장 하거나 저장된 데이터를 출력할 것이다. 메모리 기반 저장 장치(200)는 SATA(serial AT attachment) 인터페이스, PATA(parallel AT attachment) 인터페이스, USB 인터페이스, SCSI 인터페이스, ESDI 인터페이스, IDE 인터페이스, MMC 인터페이스, SD 인터페이스, 또는 그와 같은 것을 통해 호스트(100)와 연결될 것이다. 하지만, 호스트(100)와 메모리 기반 저장 장치(200) 사이의 인터페이스가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 호스트(100)와 메모리 기반 저장 장치(200)는 SATA(serial AT attachment) 인터페이스, PATA(parallel AT attachment) 인터페이스, USB 인터페이스, SCSI 인터페이스, ESDI 인터페이스, IDE 인터페이스, MMC 인터페이스, SD 인터페이스, 그리고 그와 같은 것 중 적어도 2개의 인터페이스들을 통해 통신할 수도 있다.
메모리 기반 저장 장치(200)는 메모리 제어기(220)와 저장 매체(240)를 포함할 것이다. 본 발명의 예시적인 실시예에 있어서, 저장 매체(240)는 플래시 메모리들로 구성될 것이다. 하지만, 저장 매체(240)가 플래시 메모리에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 상 변화 메모리, 자기 저항 메모리, 등과 같은 불 휘발성 메모리들이 저장 매체(240)로서 사용될 수도 있다. 설명의 편의상, 저장 매체(240)가 단지 하나의 플래시 메모리로 구현된 실시예가 도 1에 도시되어 있다. 메모리 제어기(220)는, 도 2에 도시된 바와 같이, 호스트 인터페이스(222), 플래시 인터페이스(223), 프로세싱 유니트(224), 버퍼 메모리(225), 그리고 에러 검사 정정(ECC) 회로(226)를 포함하며, 이러한 구 성들은 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있다.
메모리 기반 저장 장치(200)에 있어서, 메모리 제어기(220)는 플래시 메모리(240)를 관리하도록 구성될 것이다. 예를 들면, 메모리 제어기(220)는 메모리 기반 저장 장치(200)의 신뢰성을 향상시키기 위해서 플래시 메모리(240)의 읽기 이력(read history)을 관리할 것이다. 읽기 이력은 에러 비트 수, 에러 비트 위치, 플레인 정보, 다이 정보, 리프레쉬 정보, 등을 포함할 것이다. 메모리 제어기(220)는 읽기 이력에 근거하여 플래시 메모리(240)의 메모리 블록들을 관리할 것이다. 예를 들면, 메모리 제어기(220)는 읽기 이력에 근거하여 배드 블록으로 또는 제한된 용도의 메모리 블록으로 처리되도록 플래시 메모리(240)의 메모리 블록들을 관리할 것이다.
본 발명에 따른 메모리 기반 저장 장치(200)는 읽기 동작이 수행될 때 관찰되는 특성들(예를 들면, 에러 비트 수, 에러 비트 위치, 플레인 정보, 다이 정보, 리프레쉬 정보, 등)에 대한 읽기 이력 정보를 기록하고, 이 읽기 이력 정보를 기반으로 향후 문제 유발 가능성이 높은 메모리 블록을 위험 블록으로 판정하며, 위험 블록을 일반 블록과 다른 그룹으로 관리함으로써 향후 메모리 기반 저장 장치(200)의 운용시 위험 블록의 활용 용도를 제약할 것이다. 이러한 관리 기법을 통해 메모리 기반 저장 장치(200)의 신뢰성을 향상시키는 것이 가능하다.
일반적인 메모리 관리 기법에 따르면, 프로그램 또는 소거 동작의 결과값을 통해 요청된 동작의 성공 여부에 의거하여 요청된 동작의 블록을 불량 블록으로 판정하는 방식이 사용되어 오고 있다. 즉, 메모리 블록을 배드 블록으로 처리할 지의 여부는 프로그램 또는 소거 동작의 결과값에 따라 결정될 것이다. 메모리 소자의 회로 선폭(minimum feature size)이 미세화되고 대용량화되면서 메모리 소자의 신뢰성이 저하되고 있다. 이에 따라 프로그램 또는 소거 결과가 성공으로 나타난 메모리 블록에 대한 읽기 동작시 데이터 오류가 발생할 우려가 점차적으로 증가하고 있다. 더욱이 메모리 소자의 계속적인 사용으로 인해 메모리 소자의 노화(aging)가 진행됨에 따라 회로 결함(즉, 물리적인 결함)이 증가될 것이다. 즉, 진행성 결함(progressive defect)이 증가될 것이다. 이러한 경우, 그러한 회로 결함 즉, 물리적인 결함을 갖는 메모리 블록(예를 들면, '위험 블록'으로 불림)으로부터 읽혀진 데이터가 오류 정정이 불가능할 확률 역시 높아질 수도 있다.
따라서, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치(200)는 메모리 블록들의 읽기 이력을 관리함으로써 위험 블록으로 인한 신뢰성의 저하를 방지할 수 있으며, 이는 이하 상세히 설명될 것이다.
도 3은 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차를 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차가 참조 도면들에 의거하여 상세히 설명될 것이다.
호스트(100)로부터 읽기 동작이 요청되면, 메모리 제어기(220)는 저장 매체(storage medium)로서 플래시 메모리(240)로부터 데이터를 읽는다(S100). 잘 알려진 바와 같이, 읽혀진 데이터는 메모리 제어기(220)의 버퍼 메모리(225)에 임시 저장될 것이다. 이와 동시에, 메모리 제어기(220)는 에러 검사 및 정정 회로(226) 를 통해 읽혀진 데이터로부터 에러가 발생하였는 지의 여부를 검사할 것이다(S110). 만약 읽혀진 데이터로부터 에러가 발생하지 않은 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. 이에 반해서, 만약 읽혀진 데이터로부터 에러가 발생한 것으로 판별되면, 절차는 S120 단계로 진행할 것이다. S120 단계에서, 메모리 제어기(220)는 에러 검사 및 정정 회로(226)를 통해 읽혀진 데이터의 에러를 정정할 것이다. 게다가, 메모리 제어기(220)는 데이터가 읽혀진 메모리 블록에 대한 에러 이력 즉, 읽기 이력을 갱신할 것이다. 이후, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 읽혀진 데이터는 외부 장치 즉, 호스트(100)로 전송될 것이다(S130).
여기서, 본 발명에 따른 메모리 기반 저장 장치(200)의 메모리 제어기(220)는, 도 1에 도시된 바와 같이, 읽기 이력 정보를 관리하는 테이블(이하, '읽기 이력 테이블'이라 불림) (221)을 포함할 것이다. 읽기 이력 테이블(221)에는 에러 비트 수, 에러 비트 위치, 플레인 정보, 등과 같은 에러 이력이 저장될 것이다. 그러한 읽기 이력 테이블(221)은 버퍼 메모리(225)에 저장될 것이다. 읽기 이력 테이블(221)은 파워-업시 플래시 메모리(240)에서 버퍼 메모리(225)로 로드되고, 필요시 플래시 메모리(240)에 백업/재저장될 것이다.
도 4는 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치(200)의 블록 관리 기법을 설명하기 위한 흐름도이고, 도 5는 본 발명의 예시적인 실시예들에 따른 리프레쉬 동작을 개념적으로 보여주는 도면이다.
설명에 앞서, 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장 치(200)는 읽기 이력을 근거로 하여 메모리 블록을 리프레쉬하도록 구성될 것이다. 예를 들면, 메모리 제어기(220)는 테이블(221)의 읽기 이력 정보(예를 들면, 에러 비트 수)를 분석하여 메모리 블록의 리프레쉬 동작을 제어할 것이다. 좀 더 구체적으로 설명하면, S200 단계에서, 메모리 제어기(220)는 읽기 이력 테이블(221)의 읽기 이력을 가져올 것이다. 그 다음에, S210 단계에서, 메모리 제어기(220)는 읽혀진 읽기 이력에 의거하여 임의의 메모리 블록에서 생긴 에러 비트 수가 특정 에러 비트 수(또는, 기준 에러 비트 수)를 초과하는 지의 여부를 판별할 것이다. 즉, 메모리 제어기(220)는 검사 결과에 따라 리프레쉬될 메모리 블록(들)이 존재하는 지의 여부를 판별할 것이다. 만약 리프레쉬될 메모리 블록(들)이 존재하지 않는 것으로 판별되면, 절차는 종료될 것이다. 만약 리프레쉬될 메모리 블록(들)이 존재하는 것으로 판별되면, 절차는 S220 단계로 진행할 것이다.
S220 단계에서, 메모리 제어기(220)는 검사된 메모리 블록들이 리프레쉬되도록 플래시 메모리(240)를 제어할 것이다. 좀 더 구체적인 설명은 도 5를 참조하여 행해질 것이다. 먼저, 도 5에 도시된 바와 같이, 리프레쉬될 메모리 블록의 데이터는 프리 블록으로 복사될 것이다(1001). 그 다음에, 리프레쉬될 메모리 블록이 소거될 것이다(1002). 마지막으로, 프리 블록에 저장된 데이터는 메모리 블록으로 복사될 것이다(1003). 메모리 블록은 상술한 과정들을 통해 리프레쉬될 것이다. 이후, 프리 블록은 소거될 것이다.
에러 비트 수가 점차적으로 증가한다는 것은 읽기 에러가 발생할 가능성이 높아짐을 의미한다. 만약 읽기 에러가 발생하면, 데이터는 소실될 것이다. 그러한 까닭에, 메모리 블록의 에러 비트 수가 기준 에러 비트 수를 초과하는 지의 여부에 따라 메모리 블록을 리프레쉬함으로써 데이터의 소실을 방지할 수 있다. 반복적인 읽기 과정으로 인해 메모리 셀들이 스트레스를 받기 때문에, 에러 비트 수는 증가될 수 있다. 다시 말해서, 읽기/프로그램/소거 스트레스로 인해 읽기 에러가 야기될 수 있다. 이하, 스트레스로 인한 읽기 에러를 '스트레스에 기인한 결함' (stress-based defect)이라 칭한다. 따라서, 스트레스에 기인한 결함은 메모리 블록을 리프레쉬함으로써 해결될 수 있다. 결과적으로, 스트레스에 기인한 결함으로 인한 읽기 에러를 줄임으로써 메모리 기반 저장 장치(200)의 신뢰성을 향상시키는 것이 가능하다.
도 6은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다. 이하, 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법이 참조 도면들에 의거하여 상세히 설명될 것이다.
메모리 제어기(220)는 버퍼 메모리(225)의 읽기 이력 테이블(221)로부터 읽기 이력을 가져올 것이다(S300). 메모리 제어기(220)는 읽혀진 읽기 이력을 의거하여 리프레쉬된 메모리 블록이 존재하는 지의 여부를 판별할 것이다(S310). 만약 리프레쉬된 메모리 블록이 존재하지 않는 것으로 판별되면, 절차는 종료될 것이다. 만약 리프레쉬된 메모리 블록이 존재하는 것으로 판별되면, 절차는 S320 단계로 진행할 것이다.
S320 단계에서, 메모리 제어기(220)는 리프레쉬된 메모리 블록에 대한 읽기 이력에 의거하여 메모리 블록의 이전에 발생된 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부를 판별할 것이다. 스트레스에 기인한 결함은, 앞서 설명된 바와 같이, 리프레쉬 동작을 통해 해소될 수 있다. 이에 반해서, 만약 리프레쉬된 메모리 블록의 이전에 발생된 에러가 물리적인 결함(예를 들면, 진행성 결함)으로 인한 것으로 판별되면, 절차는 S330 단계로 진행할 것이다. S330 단계에서, 메모리 제어기(220)는 물리적인 결함을 갖는 메모리 블록(들)의 용도가 제한되도록 메모리 블록(들)에 대한 사상을 관리할 것이다. 이후 절차는 종료될 것이다.
예시적인 실시예에 있어서, 리프레쉬된 메모리 블록이 물리적 결함을 갖는 메모리 블록인 지의 여부는 리프레쉬 횟수를 기준으로 판별될 수 있다. 예를 들면, 일회 이상 리프레쉬된 메모리 블록은 물리적 결함을 갖는 메모리 블록으로 판별될 수 있다.
앞서 언급된 바와 같이, 메모리 블록은 스트레스에 기인한 결함으로 인해 에러가 계속해서 발생된다는 가정하에서 리프레쉬된다. 하지만, 읽기 이력 정보 중 에러 이력을 고려하여 볼 때 스트레스에 기인한 결함으로 인한 것이 아니라 진행성 결함으로 인해 에러가 계속해서 발생될 수 있다. 만약 메모리 블록이 에러가 스트레스에 기인한 결함이 아니라 진행성 결함에 의한 것임에도 불구하고 리프레쉬되면, 향후 그러한 메모리 블록에 저장된 데이터는 모두 소실될 수 있다. 즉, 메모리 블록에 저장된 데이터를 복구하는 것은 불가능하다. 따라서, 본 발명에 따른 블록 관리 기법에 의하면, 물리적인 결함을 갖는 것으로 결정된 메모리 블록(들)은 미리 위험 블록으로 분류된다. 그러한 위험 블록은 배드 블록으로 처리되거나 정상 블록과 다른 용도를 사용하도록 처리될 것이다. 예를 들면, 본 발명에 따른 메모리 기반 저장 장치(200)가 M-비트 데이터를 저장한다고 가정하면, 그러한 위험 블록은 N-비트 데이터(M<N)를 저장하는 데 사용될 수 있다. 또는, 그러한 위험 블록에 대한 읽기, 소거, 그리고 프로그램 동작들은 제한될 것이다. 에러 이력에 따라 특정 블록과 회로적으로 그리고 물리적으로 연관성이 높은 메모리 블록들 역시 위험 블록으로 처리될 수도 있다.
도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다. 도 7에 도시된 블록 관리 기법은 도 6의 판별 동작(S310 단계)이 제거되었다는 점을 제외하면 도 6에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 판별 동작(S310 단계)이 제거되었음은 위험 블록이 리프레쉬된 메모리 블록을 기준으로 분류되지 않음을 의미한다. 다시 말해서, 읽기/에러 이력을 기준으로 메모리 블록의 이전에 발생한 에러가 진행성 결함(즉, 물리적인 결함)에 의한 것인 지 아니면 스트레스에 기인한 결함에 의한 것의 여부에 따라 위험 블록을 분류하는 것이 가능하다.
본 발명의 예시적인 실시예들에 있어서, 진행성 결함(또는, 물리적인 결함)은 플래시 메모리의 테스트 결과를 토대로 준비되는 에러 패턴들을 기준으로 판별될 수 있다. 또는, 진행성 결함(또는, 물리적인 결함)은, 예를 들면, 리프레쉬된 메모리 블록으로부터 반복적으로 에러가 발생되는 현상을 포함하는 에러 이력을 기준으로 판별될 수 있다.
본 발명의 예시적인 실시예들에 있어서, 읽기 이력에 근거하여 메모리 블록을 위험 블록 즉, 물리적 결함을 갖는 메모리 블록으로 판별하는 것이 가능하다. 예를 들면, 도 7의 흐름도를 참조하면, 메모리 제어기(220)는 버퍼 메모리(225)의 읽기 이력 테이블(221)로부터 읽기 이력을 가져오고(S400), 읽기 이력에 의거하여 메모리 블록이 물리적 결함을 갖는 지의 여부를 판별하고(S410), 판별 결과에 따라 물리적 결함을 갖는 메모리 블록을 위험 블록으로 처리할 것이다(S420).
본 발명의 블록 관리 기법의 경우, 메모리 블록에 대한 리프레쉬 동작이 선행되지 않을 수도 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 8에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(2001)에 전기적으로 연결된 마이크로프로세서(2100), 사용자 인터페이스(2200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2300), 메모리 제어기(2400), 그리고 플래시 메모리 장치(2500)를 포함한다. 메모리 제어기(2400)는 도 1에 도시된 메모리 제어기에 대응하며, 플래시 메모리 장치(2500)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(2500)에는 마이크로프로세서(2100)에 의해 서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기(2400)와 플래시 메모리 장치(2500)는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예시적인 SSD가 미국특허공개번호 제2006-0152981호에 게재되어 있으며, 이 분야의 레퍼런스로 포함된다. 또는, 메모리 제어기(2400)와 플래시 메모리 장치(2500)는 데이터를 저장하는 데 불 휘발성 메모리를 메모리 카드를 구성할 수 있다.
도 9는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.
도 9에 도시된 메모리 기반 저장 장치는 메모리(3510)와 메모리 제어기(3520)가 카드(3530)를 구성하도록 구현된다. 예를 들면, 카드(3530)는 플래시 메모리 카드와 같은 메모리 카드일 수 있다. 즉, 카드(3530)는 디지털, 카메라, 개인 컴퓨터 등과 같은 전자 장치를 사용하기 위한 어떤 산업 표준을 만족하는 카드일 수 있다. 메모리 제어기(3520)가 카드(3530)에 의해 또 다른 (예를 들면, 외부) 장치로부터 수신된 제어 신호들에 기초하여 메모리(3510)를 제어할 수 있다는 것이 이해될 것이다.
도 10은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.
도 10에 도시된 시스템은 휴대용 장치(4000)를 나타낸다. 휴대용 장치(4000)는 MP3 플레이어, 비디오 플레이어, 콤비네이션 비디오 및 오디오 플레이어 등일 수 있다. 도시된 바와 같이, 휴대용 장치(4000)는 메모리(3510) 및 메모리 제어기(3520)를 포함한다. 휴대용 장치(4000)는 또한 인코더 및 디코더(4610), 프리젠테이션 구성요소들(4620) 및 인터페이스(4630)를 포함할 수 있다.
인코더 및 디코더(EDC)(4610)에 의해 처리된 데이터(비디오, 오디오, 등)는 메모리 제어기(3520)를 통해 메모리(3510)로 입력되고 메모리(3510)로부터 출력될 수 있다. 도 9에서 점선들에 의해 도시된 바와 같이, 데이터는 EDC(4610)로부터 메모리(3510)로 직접 입력되고 그리고/또는 메모리(3510)로부터 EDC(4610)로 직접 출력될 수 있다.
EDC(4610)는 메모리(3510)에 저장하기 위해 데이터를 인코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)에 저장하기 위해 오디오 데이터에 대해 MP3 인코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)에 저장하기 위해 비디오 데이터에 대해 MPEG 인코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 인코딩하기 위한 복수의 인코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 인코더 및 비디오 데이터를 위한 MPEG 인코더를 포함할 수 있 다.
EDC(4610)는 메모리(3510)로부터의 출력을 디코딩할 수 있다. 예를 들면, EDC(4610)는 메모리(3510)로부터 출력된 오디오 데이터에 대해 MP3 디코딩을 수행할 수 있다. 다른 방법으로, EDC(4610)는 메모리(3510)로부터 출력된 비디오 데이터에 대해 MPEG 디코딩(예를 들면, MPEG2, MPEG4, 등)을 수행할 수 있다. 또한, EDC(4610)는 다른 데이터 포맷들에 따라 다른 타입들의 데이터를 디코딩하기 위한 복수의 디코더들을 포함할 수 있다. 예를 들면, EDC(4610)는 오디오 데이터를 위한 MP3 디코더 및 비디오 데이터를 위한 MPEG 디코더를 포함할 수 있다.
EDC(4610)가 디코더들만을 포함할 수 있다는 것이 또한 이해될 것이다. 예를 들면, 이미 인코딩된 데이터는 EDC(4610)에 의해 수신될 수 있고 메모리 제어기(3520) 및/또는 메모리(3510)로 패스될 수 있다.
EDC(4610)는 인터페이스(4630)를 통해 인코딩을 위한 데이터를 수신하거나 이미 인코딩된 데이터를 수신할 수 있다. 인터페이스(4630)는 알려진 표준(예를 들면, 펌웨어, USB, 등)에 따를 수 있다. 인터페이스(4630)는 또한 하나 이상의 인터페이스를 포함할 수 있다. 예를 들면, 인터페이스(4630)는 펌웨어 인터페이스, USB 인터페이스, 등을 포함할 수 있다. 메모리(3510)로부터의 데이터는 인터페이스(4630)를 통해 출력될 수도 있다.
프리젠테이션 구성요소들(4620)은 메모리로부터 출력되고 그리고/또는 EDC(4610)에 의해 디코딩된 데이터를 사용자에게 표시할 수 있다. 예를 들면, 프리젠테이션 구성요소들(4620)은 오디오 데이터를 출력하기 위한 스피커 잭, 비디오 데이터를 출력하기 위한 디스플레이 스크린, 등을 포함할 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1은 본 발명의 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 2는 본 발명의 예시적인 실시예들에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 3은 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 읽기 절차를 설명하기 위한 흐름도이다.
도 4는 본 발명의 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 예시적인 실시예들에 따른 리프레쉬 동작을 개념적으로 보여주는 도면이다.
도 6은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치의 블록 관리 기법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 다른 예시적인 실시예들에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 9는 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 보여주는 블록도이다.
도 10은 본 발명의 다른 예시적인 실시예들에 따른 메모리 기반 저장 장치를 포함한 메모리 시스템을 보여주는 블록도이다.

Claims (17)

  1. 플래시 메모리를 포함하는 메모리 기반 저장 장치의 블록 관리 방법에 있어서:
    상기 플래시 메모리의 읽기 이력에 포함된 리프레쉬 횟수가 기준 값 이상인 경우, 메모리 블록의 에러가 물리적인 결함에 의한 것으로 판별하고, 상기 리프레쉬 횟수가 기준 값 미만인 경우, 상기 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별하는 단계와; 그리고
    상기 판별 결과에 따라 배드 블록으로 처리되도록 또는 제한된 용도로 사용되도록 상기 메모리 블록을 관리하는 단계를 포함하고,
    상기 제한된 용도는 상기 메모리 기반 저장 장치가 M(M은 1보다 큰 자연수)-비트 데이터를 저장하는 경우, 상기 메모리 블록이 N(N은 M보다 작은 자연수)-비트 데이터를 저장하도록 제한되는 용도를 가리키는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  2. 제 1 항에 있어서,
    상기 메모리 블록의 에러가 물리적인 결함에 의한 것으로 판별될 때, 상기 메모리 블록은 배드 블록으로 처리되거나 제한된 용도로 사용되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별될 때, 상기 메모리 블록은 에러 이력에 따라 리프레쉬되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  5. 제 4 항에 있어서,
    상기 메모리 블록의 에러 비트 수가 기준 에러 비트 수를 초과하는 경우, 상기 메모리 블록은 리프레쉬되는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  6. 제 1 항에 있어서,
    상기 읽기 이력은 상기 메모리 블록에 대한 에러 비트 수, 에러 비트 위치, 그리고 리프레쉬 정보를 포함하는 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  7. 제 1 항에 있어서,
    상기 메모리 블록은 리프레쉬된 메모리 블록인 것을 특징으로 하는 메모리 기반 저장 장치의 블록 관리 방법.
  8. 삭제
  9. 플래시 메모리와; 그리고
    상기 플래시 메모리를 관리하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 제어기는 상기 플래시 메모리의 읽기 이력에 의거하여 상기 플래시 메모리의 메모리 블록들을 관리하되,
    상기 메모리 제어기는 상기 읽기 이력에 포함된 리프레쉬 횟수가 기준 값 이상인 경우 메모리 블록의 에러가 물리적인 결함에 의한 것으로 판별하고, 상기 리프레쉬 횟수가 기준 값 미만인 경우 상기 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별하고, 상기 판별 결과에 따라 상기 각 메모리 블록을 배드 블록으로 처리하거나 제한된 용도로 사용되도록 처리하되,
    상기 제한된 용도는 상기 메모리 기반 저장 장치가 M(M은 1보다 큰 자연수)-비트 데이터를 저장하는 경우, 상기 메모리 블록이 N(N은 M보다 작은 자연수)-비트 데이터를 저장하도록 제한되는 용도를 가리키는 메모리 기반 저장 장치.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 제 9 항에 있어서,
    상기 각 메모리 블록의 에러가 스트레스에 기인한 결함에 의한 것으로 판별될 때, 상기 메모리 제어기는 에러 이력에 따라 상기 각 메모리 블록을 리프레쉬하는 메모리 기반 저장 장치.
  14. 제 9 항에 있어서,
    상기 읽기 이력은 상기 메모리 블록들에 대한 에러 비트 수, 에러 비트 위치, 그리고 리프레쉬 정보를 포함하는 메모리 기반 저장 장치.
  15. 제 9 항에 있어서,
    상기 메모리 기반 저장 장치는 메모리 카드, 휴대용 저장 장치, 그리고 에스에스디 중 어느 하나인 메모리 기반 저장 장치.
  16. 제 9 항에 있어서,
    상기 각 메모리 블록의 에러가 물리적인 결함에 의한 것인 지 또는 스트레스에 기인한 결함에 의한 것인 지의 여부의 판별 동작은 상기 메모리 블록들 중 리프레쉬된 메모리 블록들에 대해서 행해지는 메모리 기반 저장 장치.
  17. 삭제
KR1020080055643A 1988-06-13 2008-06-13 메모리 기반 저장 장치 및 그것의 블록 관리 기법 KR101460240B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020080055643A KR101460240B1 (ko) 2008-06-13 2008-06-13 메모리 기반 저장 장치 및 그것의 블록 관리 기법
US12/457,485 US8027194B2 (en) 1988-06-13 2009-06-12 Memory system and method of accessing a semiconductor memory device
CN200910205766.2A CN101673581B (zh) 2008-06-13 2009-06-15 存取半导体存储设备的存储系统和方法
US13/137,401 US8565021B2 (en) 2008-06-13 2011-08-11 Memory system and method of accessing a semiconductor memory device
US13/137,409 US8638585B2 (en) 2008-06-13 2011-08-12 Memory system and method of accessing a semiconductor memory device
US13/137,424 US8705272B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,422 US8614919B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,423 US8760918B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device
US13/137,425 US8625344B2 (en) 2008-06-13 2011-08-15 Memory system and method of accessing a semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080055643A KR101460240B1 (ko) 2008-06-13 2008-06-13 메모리 기반 저장 장치 및 그것의 블록 관리 기법

Publications (2)

Publication Number Publication Date
KR20090129626A KR20090129626A (ko) 2009-12-17
KR101460240B1 true KR101460240B1 (ko) 2014-11-21

Family

ID=41689534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080055643A KR101460240B1 (ko) 1988-06-13 2008-06-13 메모리 기반 저장 장치 및 그것의 블록 관리 기법

Country Status (1)

Country Link
KR (1) KR101460240B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144246B2 (en) 2019-03-28 2021-10-12 SK Hynix Inc. Memory system using available bad block based on data storage reliability and operating method thereof
US11474721B2 (en) 2019-11-07 2022-10-18 SK Hynix Inc. Storage device managing bad block information of memory blocks and operating method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244618B1 (ko) * 2014-02-21 2021-04-26 삼성전자 주식회사 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102599A (ja) * 1997-09-29 1999-04-13 Nec Field Service Ltd 半導体記憶装置
KR20020032340A (ko) * 2000-10-25 2002-05-03 아끼구사 나오유끼 플래시 메모리 내의 결함 관리 방법
KR20030067660A (ko) * 2000-08-15 2003-08-14 보드 오브 트러스티즈 오브 유니버시티 오브 일리노이 마이크로입자
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102599A (ja) * 1997-09-29 1999-04-13 Nec Field Service Ltd 半導体記憶装置
KR20030067660A (ko) * 2000-08-15 2003-08-14 보드 오브 트러스티즈 오브 유니버시티 오브 일리노이 마이크로입자
KR20020032340A (ko) * 2000-10-25 2002-05-03 아끼구사 나오유끼 플래시 메모리 내의 결함 관리 방법
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144246B2 (en) 2019-03-28 2021-10-12 SK Hynix Inc. Memory system using available bad block based on data storage reliability and operating method thereof
US11474721B2 (en) 2019-11-07 2022-10-18 SK Hynix Inc. Storage device managing bad block information of memory blocks and operating method thereof

Also Published As

Publication number Publication date
KR20090129626A (ko) 2009-12-17

Similar Documents

Publication Publication Date Title
US10135465B2 (en) Error correction methods and apparatuses using first and second decoders
KR101483190B1 (ko) 메모리 시스템 및 그것의 데이터 처리 방법
US8122329B2 (en) Methods of operating memory devices using error correction and rereading techniques
KR101267183B1 (ko) 반도체 기억 장치
KR100845529B1 (ko) 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US8458568B2 (en) Systems and methods for memory devices
KR101730510B1 (ko) 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출
US8560901B2 (en) Apparatus, method and memory device for error correction by increasing or decreasing a read voltage and analyzing frequency information for a read error pattern
US7613982B2 (en) Data processing apparatus and method for flash memory
US10333558B2 (en) Decoding device and decoding method
US8321757B2 (en) Method and apparatus for error correction
US9128859B1 (en) Method and apparatus for dynamically selecting an error correction code for encoding and decoding data in a communication system
US8650458B2 (en) Methods of encoding/decoding for error correction code utilizing interdependent portions of codewords and related circuits
US20120096328A1 (en) Multi-write endurance and error control coding of non-volatile memories
CN108463807B (zh) 温度相关的多模式错误校正
US20140122963A1 (en) Identification of non-volatile memory die for use in remedial action
US8949694B2 (en) Address error detection
US11003529B2 (en) Encoding method and memory storage apparatus using the same
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
TWI691834B (zh) 採用連氏錯誤校正碼設計的記憶體儲存裝置及其編碼方法
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
JP2011060217A (ja) データ蓄積装置及びデータ書込み/読出し方法
US20170186500A1 (en) Memory circuit defect correction
US9015560B1 (en) Method and apparatus for ceasing access to a portion of a flash memory when less than a number of errors correctable by an error correction code exists
KR101460240B1 (ko) 메모리 기반 저장 장치 및 그것의 블록 관리 기법

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 6