KR100906519B1 - 비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치 - Google Patents

비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100906519B1
KR100906519B1 KR1020030075158A KR20030075158A KR100906519B1 KR 100906519 B1 KR100906519 B1 KR 100906519B1 KR 1020030075158 A KR1020030075158 A KR 1020030075158A KR 20030075158 A KR20030075158 A KR 20030075158A KR 100906519 B1 KR100906519 B1 KR 100906519B1
Authority
KR
South Korea
Prior art keywords
block
defective
physical
storage element
physical storage
Prior art date
Application number
KR1020030075158A
Other languages
English (en)
Other versions
KR20040038713A (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 샌디스크 코포레이션
Publication of KR20040038713A publication Critical patent/KR20040038713A/ko
Application granted granted Critical
Publication of KR100906519B1 publication Critical patent/KR100906519B1/ko

Links

Images

Classifications

    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 발명은 결함 블록의 적어도 일부가 용이하게 식별되어 유용성을 위하여 테스트될 수 있도록 결함 블록을 추적하기 위한 방법 및 장치에 관한 것이다. 본 발명의 일 특징에 따르면, 비휘발성 메모리내에서 여분의 블록을 식별하기 위한 방법은 비휘발성 메모리와 연관된 적어도 하나의 결함 물리적 블록을 테스트하는 단계를 포함하며, 상기 테스트는 결함 물리적 블록이 사용가능한지를 결정한다. 본 발명의 방법은 결함 물리적 블록이 상기 테스트를 통과할때를 결정하는 단계와, 결함 물리적 블록이 상기 테스트를 통과한 것으로 결정될때 결함 물리적 블록을 사용가능한 물리적 블록으로서 식별하는 단계를 포함한다.

Description

비-휘발성 메모리 시스템에서 사용불가능한 블록을 관리하기 위한 방법 및 장치{UNUSABLE BLOCK MANAGEMENT WITHIN A NON-VOLATILE MEMORY SYSTEM}
도 1은 메모리 시스템 내의 결함 블록 리스트를 컴파일하는 종래의 한 방법과 연관된 단계들을 도시하고 있는 흐름도.
도 2a는 비-휘발성 메모리를 포함하는 일반적인 호스트 시스템의 개략도.
도 2b는 도 2a의 메모리 장치(120)와 같은 메모리 장치의 개략도.
도 2c는 삽입된 비-휘발성 메모리를 포함하는 호스트 시스템의 개략도.
도 3a는 본 발명의 일 실시예에 따른 소거 카운트 블록의 개략도.
도 3b는 소거 카운트 블록 내의 페이지, 예컨대 도 3a의 소거 카운트 블록의 페이지(310a)를 나타내는 도면으로서, 상기 페이지가 본 발명의 실시예에 따라 로케이션으로 실제 분할되어 있는 도면.
도 3c는 본 발명의 실시예에 따른 소거 카운트 블록 내의 페이지, 예컨대 도 3a의 소거 카운트 블록의 페이지(310a)를 나타내는 도면으로서, 상기 페이지가 바이트로 실제 분할되어 있는 도면.
도 3d는 본 발명의 실시예에 따른 소거 카운트 블록 내의 페이지, 예컨대 도 3a의 소거 카운트 블록(300)의 페이지(310a)에 대한 개략도로서, 상기 카운트 블록은 특정 블록이 사용될 수 없다는 것을 나타내는 엔트리 및 소거 카운트를 포함하 고 있는 도면.
도 4는 본 발명의 실시예에 따른, 소거 카운트 블록의 헤더, 예컨대 도 3a의 소거 카운트 블록(300)의 헤더(320)에 대한 개략도.
도 5는 본 발명의 실시예에 따른, 비-휘발성 메모리 시스템의 비-휘발성 메모리가 제일 먼저 포맷되었을 때 소거 카운트 블록을 초기화하는 한 방법과 연관된 단계들을 도시하는 흐름도.
도 6은 본 발명의 실시예에 따른, 성장 결함을 가질 수 있는 블록을 처리하는 것과 연관된 단계들을 도시하는 흐름도.
도 7a 및 7b는 본 발명의 실시예에 따른, 비-휘발성 메모리 시스템 내의 사용불가능한 블록을 재활용하는 처리를 구현하는 한 방법과 연관된 단계들을 도시하는 흐름도.
도 8은 본 발명의 실시예에 따른, 시스템 구조의 개략적인 블록도.
본 발명은 2002년 10월 28일에 미국 가특허출원된 제 60/421,965호의 우선권을 청구하며, 상기 미국 가특허출원은 본 명세서에서 참조된다.
관련 출원의 상호 참조
본 발명은 공동-계류 중인 미국 특허 출원 제 10/281,739호, 제 10/281,823호, 제 10/281,670호, 제 10/281,824호, 제 10/281,631호, 제 10/281,855호, 제 10/281,762호, 제 10/281,696호, 제 10/281,626호, 및 제 10/281,804호 뿐만 아니라 공동-계류 중인 미국 가특허출원 제 60/421,910호, 제 60/421,725호, 제 60/422,166호, 제 60/421,746호 및 제 60/421,911호와 관련되는데, 상기 가특허출원들 각각은 2002년 10월 28일에 출원되었으며, 각각은 본 명세서에서 완전히 참조된다.
본 발명은 일반적으로 대용량 디지털 데이터 저장 시스템에 관한 것이다. 더 상세히는, 본 발명은 여분의 블록이 필요할 경우, 성장 결함을 갖는 결함 블록이 재활용될 수 있도록 하기 위해서, 결함이 있거나 또는 사용불가능한 블록이 관리될 수 있도록 하는 시스템 및 방법에 관한 것이다.
플래시 메모리 저장 시스템과 같은 비-휘발성 메모리 시스템의 사용이 그러한 메모리 시스템의 소형 물리적인 크기 및 비-휘발성 메모리의 반복적인 재프로그램 능력으로 인해서 증가하고 있다. 플래시 메모리 저장 시스템의 소형 물리적인 크기는 점점 더 일반적으로 사용되고 있는 장치에서 그러한 저장 시스템의 사용을 용이하게 한다. 플래시 메모리 저장 시스템을 사용하는 장치는 디지털 카메라, 디지털 캠코더, 디지털 뮤직 플레이어, 휴대용의 개인용 컴퓨터, 및 전지국 측위 장치(global positioning device)를 포함하지만, 반드시 그러한 것들만을 포함하는 것으로 제한되지는 않는다. 플래시 메모리 저장 시스템에 포함된 비-휘발성 메모리를 반복해서 재프로그래밍하는 능력은 플래시 메모리 저장 시스템이 사용된 후에 재사용될 수 있게 한다.
일반적으로, 플래시 메모리 저장 시스템은 플래시 메모리 카드와 플래시 메모리 칩 세트를 포함할 수 있다. 플래시 메모리 칩 세트는 일반적으로 플래시 메모리 성분 및 제어기 성분을 포함한다. 통상적으로, 플래시 메모리 칩 세트는 삽입된 시스템에 어셈블링되도록 배치된다. 그러한 어셈블리나 호스트 시스템의 제조자들은 통상적으로 플래시 메모리를 성분-형태로 획득할 뿐만 아니라 다른 성분도 획득한 후, 플래시 메모리 및 다른 성분을 호스트 시스템에 어셈블링한다.
플래시 메모리가 제조될 때, 제조 중의 결함이나 공장 결함은 통상적으로 플래시 메모리의 제조자에 의해서 식별된다. 일반적으로, 플래시 메모리가 일정한 수 또는 일정 % 미만의 결함이 있거나 사용불가능한 물리적 블록을 포함하고 있는 한, 플래시 메모리는 예컨대 플래시 메모리 카드의 제조자에게 판매되지 않을 수 있다. 결함 블록은, 예컨대, 전기 전하를 보유할 수 없을 수 있으며 플래시 메모리의 제조자에 의해서 적용되는 압력 테스트에 실패할 수도 있다. 공장 결함이 식별될 때, 플래시 메모리 제조자는 공장 결함을 갖는 블록을 결함이 있다고 효과적으로 표시할 수 있다.
공장 결함을 갖는 플래시 메모리의 결함 블록은 전력이 플래시 메모리에 인가될 때 스캐닝 처리를 사용하여 식별될 수 있다. 일반적으로, 스캐닝 처리는 또한 성장 결함을 갖는 결함 블록이나 또는 한번은 사용가능하지만 재사용불가능한 블록을 식별한다. 비록 스캐닝 처리는 결함 블록을 식별하지만, 스캐닝 처리는 일반적으로 공장 결함을 갖는 결함 블록과 성장 결함을 갖는 결함 블록을 구별하지 않는다. 결함 블록의 식별은 결함 블록이 사용되는 것을 방지함으로써 전체 플래시 메모리 시스템의 완전성을 보장하는데 중요하다. 일예로서, 데이터를 보유할 수 없는 결함 블록이 데이터를 저장하기 위해서 사용될 때, 데이터는 손실될 수 있다.
통상적으로, 플래시 메모리에 전력이 인가되었을 때, 일단 결함 블록이 스캐닝 처리에 의해서 식별되면, 결함 블록의 일시적 또는 휘발성인 리스트가 생성될 수 있다. 도 1을 참조하여, 메모리 시스템 내의 결함 블록 리스트를 컴파일하는 종래의 한 처리와 연관된 단계가 설명될 것이다. 결함이 있거나 사용불가능한 블록 리스트를 컴파일하는 방법(200)은 전력이 메모리 시스템에 제공되는 단계(204)에서 시작한다. 일단 메모리 시스템에 전력이 인가되면, 실질적으로 모든 블록, 즉, 메모리 시스템의 비-휘발성 메모리의 물리적 블록은 결함 블록을 식별하기 위해 단계(208)에서 스캐닝된다. 통상적으로, 시스템에 포맷되도록 먼저 전력이 인가되었을 때, 결함 블록은 공장 결함, 즉, 비-휘발성 메모리와 연관된 제조 처리 중에 제일 먼저 식별된 결함을 갖는 블록만을 포함한다. 후속적인 처리가 진행될 때, 결함 블록은 공장 결함을 갖는 블록과 성장 결함, 즉 메모리 시스템이 사용되는 중에 발생하는 결함을 갖는 블록 양쪽 모두를 포함할 수 있다.
결함 블록이 식별된 이후에는, 단계(212)에서 결함 블록 리스트가 버퍼에서 생성될 수 있다. 종종, 상기 리스트는 메모리 시스템과 연관된 휘발성 버퍼에서 생성되고, 그로 인해서 전력이 메모리 시스템으로부터 제거될 때, 상기 리스트는 손실된다. 또한, 결함 블록 리스트는 일반적으로 공장 결함으로 인한 결함을 갖는 블록과 성장 결함을 인한 결함을 갖는 블록을 구별하지 않는다. 대신에, 리스트의 블록들은 단지 일반적으로 사용불가능한 것으로 식별된다.
단계(216)에서, 결함이 있거나 또는 사용불가능한 블록은 사용될 수 없도록 한다. 결함 블록이 사용될 수 없도록 하는 것은 결함 블록 리스트의 블록이 여분의 블록으로서 사용되기 위해서 접속되지 않도록 보장하는 것을 포함할 수 있다. 이로써, 리스트에 포함되지 않은 블록은 데이터나 정보를 저장하는데 사용하기 위해 단계(220)에서 사용된다. 때로는, 결함 블록 리스트에 포함되지 않은 블록은 성공적으로 판독될 수 없거나, 성공적으로 기록될 수 없거나, 성공적으로 소거될 수 없다. 즉, 결함 블록 리스트에 포함되지 않은 블록은 예컨대 발생된 성장 결함으로 인해서 결함을 가질 수 있다. 따라서, 단계(220)로부터, 처리 흐름은 단계(224)로 진행하는데, 상기 단계(224)에서는 결함 블록 리스트에 포함되지 않은 블록이 실제로 결함이 있는지 여부가 결정된다.
만약 블록에 결함이 있다고 단계(224)에서 결정되면, 처리 흐름은 단계(220)로 복귀하고, 그 단계(220)에서는 리스트에 포함되지 않은 블록이 계속해서 사용된다. 대안적으로, 만약 리스트에 포함되지 않은 블록이 결함이 있다고 단계(224)에서 결정되면, 블록은 단계(228)에서 결함 블록 리스트에 추가된다. 일단 블록이 결함 블록 리스트에 추가되면, 처리 흐름은 단계(220)로 복귀하고, 그 단계(220)에서는 결함 블록 리스트에 포함되지 않은 블록이 사용된다.
비록 결함 블록 리스트의 생성이 일반적으로 결함 블록이 사용되지 않도록 하는데 효과적일지라도, 리스트에서 식별되는 블록들 중 적어도 일부는 실제로 사용가능할 수 있다. 특히, 성장 결함을 포함하는 결함 블록들 중 적어도 일부는 실제로 엄격한 패턴을 갖는 테스팅 처리를 통과할 수 있는데, 즉, 결함 블록들 중 적어도 일부는 실제로 사용가능한 것으로 판명될 수 있다. 일부 경우에, 일부 "극단적인" 또는 드문 환경에서 결함이 있는 것으로 보이는 블록은 실제로 "정상" 또는 더 일반적인 환경에서 결함이 없을 수 있다. 그 결과, 실제로 사용가능한 블록이 사용될 수 없고, 메모리 시스템은 실질적으로 사용가능한 모든 블록의 사용이 불가능해져 덜 효율적으로 동작할 수 있다. 예컨대, 만약 NAND 플래시 메모리가 거의 섭씨 90°의 환경에 있다면(이러한 환경은 일반적으로 대부분의 플래시 메모리의 규격 범위 밖에 있음), 많은 성장 결함이 통상적으로 검출된다. 규격 범위 밖에 있는 환경에서 검출되는 대부분의 그런 사용불가능한 성장 결함은, 메모리가 예컨대 메모리 규격에 지정된 범위 내에 있는 더욱 정상적인 온도로 돌아갈 때 사용될 수 있다.
때때로, 플래시 메모리 성분을 포함하는 메모리 시스템을 사용하는 동안에는, 메모리 시스템이 데이터를 저장하는데 있어 사용하기에 유효한 여분의 블록을 충분히 갖지 않는다고 결정될 수 있다. 데이터를 저장하는데 있어 사용하기에 유효한 여분의 블록이 충분히 있지 않을 때, 사용자는 데이터를 저장하는데 있어 사용하기 위한 추가적인 플래시 메모리 성분을 획득할 필요가 있을 수 있다. 메모리 시스템을 사용하기 위한 추가적인 플래시 메모리 성분을 획득하는 것은 시간-소모적일 수 있을 뿐만 아니라 비교적 비용도 많이 들 수 있다. 사용불가능한 것으로 특정된 사용가능한 블록이 있을 수 있을 때는, 메모리 시스템 내의 이용가능한 여분의 블록의 부족을 보상하는 것이 특히 비효율적일 수 있는데, 그 이유는 잠재적으로 사용가능한 일부 블록이 효율적으로 소모되기 때문이다.
본 발명의 목적은 결함 블록으로 식별되는 잠재적으로 사용가능한 블록이 여분의 블록으로서 사용될 수 있게 하는 방법 및 장치를 제공하는데 있다.
본 발명의 다른 목적은 블록이 실제로 사용가능할 때 성장 결함으로 인해서 결함이 있는 것으로 특정된 블록을 "재이용"하거나 재활용하는 방법 및 장치를 제공하는데 있다.
본 발명은 필요시 결함 블록들 중 적어도 일부가 쉽게 식별되고 사용가능성이 테스트될 수 있도록 결함 블록을 트랙킹하기 위한 시스템 및 방법에 관한 것이다. 본 발명의 한 양상에 따르면, 비-휘발성 메모리 내에서 여분의 블록을 식별하기 위한 방법은 비-휘발성 메모리와 연관된 적어도 하나의 결함 물리적 블록이 결함 물리적 블록의 사용가능 여부를 결정하도록 배치되는 테스트를 받는 단계를 포함한다. 상기 방법은 또한 결함 물리적 블록이 테스트를 통과하는 때를 결정하는 단계와, 그 결함 물리적 블록이 테스트를 통과하였다고 결정되었을 때 그 결함 물리적 블록을 사용가능한 물리적 블록으로서 식별하는 단계를 포함한다. 일 실시예에서, 결함 물리적 블록을 사용가능한 물리적 블록으로서 식별하는 단계는 그 결함 물리적 블록을 제 1 여분의 블록으로서 식별하는 단계와, 비-휘발성 메모리와 연관된 여분의 블록의 풀(pool)에 상기 제 1 여분의 블록을 추가하는 단계를 포함한다.
효율적으로 사용하기에 사용불가능한 것으로서 이미 식별된 잠재적으로 사용가능한 블록을 재활용하는 능력은 비-휘발성 메모리 시스템 내의 거의 모든 이용가능한 블록이 데이터를 저장할 수 있게 하고, 그로 인해서 메모리 시스템이 사용될 수 있도록 하여 더욱 효율적으로 동작하게 한다. 일 실시예에 있어서, 이전엔 "양호"였지만 "불량"으로 되는, 성공적으로 소거될 수 없는 것과 같은 성장 결함을 갖는 블록은 엄격한 테스팅 이후에 잠재적으로 재활용될 수 있다. 일부 블록이 재활용될 수 있게 함으로써, 메모리 시스템의 자원은 더욱 효율적으로 사용될 수 있다.
본 발명의 다른 양상에 따르면, 비-휘발성 메모리 내의 사용가능하지 않은 물리적 저장 엘리먼트를 관리하는 방법은 제 1 물리적 저장 엘리먼트가 결함이 있는 것으로 식별되는 때를 결정하는 단계와, 상기 제 1 물리적 저장 엘리먼트가 결함이 있다고 결정하였을 때 사용가능한 물리적 저장 엘리먼트들의 풀로부터 제 1 물리적 저장 엘리먼트를 실질적으로 제거하는 단계를 포함한다. 상기 방법은 제 1 물리적 저장 엘리먼트가 결함이 있는 것으로 식별하는 제 1 서명을 비-휘발성 메모리의 데이터 구조에 저장하는 단계를 또한 포함한다. 그러한 데이터 구조는 미국 특허 출원 제 10/281,626호에 설명된 바와 같이 소거 카운트 블록일 수 있다. 일 실시예에서, 제 1 물리적 저장 엘리먼트가 결함이 있는 때를 결정하는 단계는 제 1 물리적 저장 엘리먼트가 성공적으로 판독될 수 없는 때를 결정하는 단계와, 제 1 물리적 저장 엘리먼트가 성공적으로 기록될 수 없는 때를 결정하는 단계와, 제 1 물리적 저장 엘리먼트가 성공적으로 소거될 수 없는 때를 결정하는 단계 중 적어도 하나의 단계를 포함한다.
본 발명의 또 다른 양상에 따르면, 비-휘발성 메모리 시스템 내의 블록을 관리하기 위한 방법은, 비-휘발성 메모리 시스템의 비-휘발성 메모리 내에 있는 제 1 물리적 블록이 공장 결함을 갖는 때를 결정하는 단계와, 제 1 물리적 블록이 공장 결함을 갖는다고 결정되었을 때 상기 제 1 물리적 블록을 공장 결함을 갖는 블록으로서 식별하는 제 1 서명을 비-휘발성 메모리와 연관된 데이터 구조에 저장하는 단계를 포함한다. 상기 방법은 또한, 제 1 물리적 블록이 공장 결함을 갖는다고 결정되었을 때 상기 물리적 블록이 정보를 저장하기 위해 사용되는 것을 실질적으로 방지하는 단계와, 비-휘발성 메모리 내의 제 2 물리적 블록이 성장 결함을 갖는 때를 결정하는 단계와, 제 2 물리적 블록이 성장 결함을 갖는다고 결정되었을 때 상기 제 2 물리적 블록을 성장 결함을 갖는 블록으로서 식별하는 제 2 서명을 데이터 구조에 저장하는 단계를 포함한다. 마지막으로, 상기 방법은, 제 1 물리적 블록이 성장 결함을 갖는다고 결정되었을 때 제 2 물리적 블록이 정보를 저장하기 위해 사용되는 것을 실질적으로 방지하는 단계를 포함한다.
본 발명의 그러한 장점과 다른 장점이 다음의 상세한 설명을 읽고 다양한 도면을 검토함으로써 자명해질 것이다.
본 발명은 첨부 도면과 연계하여 이루어지는 다음의 설명을 참조함으로써 가장 잘 이해될 수 있다.
비-휘발성 메모리를 포함하는 메모리 시스템이 소모되는, 즉 로우(low) 동작하는 여분의 물리적 블록의 풀을 가질 때, 메모리 시스템 사용자는 이용가능한 메모리의 부족을 효과적으로 보상할 수 있다. 이를테면, 사용자는 추가적인 비-휘발성 메모리를 포함할 수 있는데, 이는 비용이 많이 들 수 있다. 때때로, 일부 환경에서 사용가능하지 않거나 결함이 있는 것으로 식별되는 비-휘발성 메모리의 물리적 블록은 실제로 다른 환경에서는 나중에 사용하기에 적합할 수 있다. 예컨대, 성장 결함으로 인해 사용할 수 있는 것으로 식별되는 물리적 블록은, 엄격한 패턴을 갖는 철저한 테스팅 처리를 구현하였을 때, 재활용될 수 있다. 사용불가능한 것으로 특징되어진 사용가능한 블록이 존재할 때, 잠재적으로 사용가능한 일부 블록이 효과적으로 소모된다.
사용이 불가능한 것으로 이미 식별된 잠재적으로 사용가능한 블록을 재활용함으로써, 사용하기에 적합한 실제 모든 이용가능한 블록이 데이터를 저장하는데 사용될 수 있고, 그로 인해서 모든 메모리 시스템이 사용될 수 있음으로써 더욱 효율적으로 동작할 수 있다. 통상적으로, 저장된 전하 레벨을 유지할 수 없는 무능력과 같은 공장 결함을 갖는 블록은 그것들이 제조되었을 때 결함을 갖고, 실제로 항상 결함을 가질 것이며, 따라서 재활용될 수 없다. 그러나, 한 때는 "양호"였지만 "불량"이 되는, 성공적으로 소거될 수 없는 무능력과 같은 성장 결함을 갖는 블록이 어떤 경우에는 재활용될 수 있다. 그로써, 일 실시예에서, 성장 결함을 갖는 블록은 실제로 이용가능한지를 결정하기 위해서 테스팅될 수 있는 반면에, 공장 결함을 갖는 블록은 테스팅될 수 없다.
사용불가능한 블록이 공장 결함이나 성장 결함으로 인해 사용불가능한지 여부를 식별함으로써 전체 블록 재활용 처리가 더욱 효율적으로 발생할 수 있는데, 그 이유는 블록의 테스팅이 회피될 수 있기 때문이다. 즉, 잠재적으로 재활용할 수 있는 블록, 예컨대 성장 결함을 갖는 블록을 실제로 테스팅만 함으로써, 블록을 재활용하기 위한 테스팅 처리는 효율적으로 구현될 수 있는데, 그 이유는 재활용될 수 없을 것 같은 블록은 일반적으로 테스팅되지 않기 때문이다. 사용불가능한 블록이 식별될 때, 상기 사용불가능한 블록을 공장 결함으로 인해 사용할 수 없거나 또는 성장 결함으로 인해 사용불가능한 것으로서 표시함으로써, 성장 결함을 갖는 사용불가능한 블록이 쉽게 식별될 수 있다.
사용불가능한 블록이 공장 결함이나 성장 결함을 갖는지 여부를 트랙킹함으로써 사용불가능한 블록을 관리하는 것은 메모리 시스템의 자원이 효율적으로 사용될 수 있게 한다. 성장 결함을 갖는 비-휘발성 메모리 내의 적어도 일부 사용불가능한 블록을 재활용할 수 있는 잠재성이 존재할 때는, 이용가능한 블록의 부족으로 인해 비-휘발성 메모리를 교체해야 하는 필요성을 적어도 지연시키는 것이 가능할 수 있다.
플래시 메모리 시스템, 또는 보다 일반적으로 사용불가능한 블록들의 관리 능력 및 일단 추가의 여분의 블록들이 일반적으로 요구되면 사용 불가능한 것으로 이전에 식별된 블록들을 재사용하는 능력의 장점을 가지는 비휘발성 메모리 장치들은 플래시 메모리, 예를 들어 NAND 또는 MLC NAND, 카드 및 칩 세트를 일반적으로 포함한다. 통상적으로, 플래시 메모리 시스템은 호스트 시스템과 연계하여 사용되고, 그로 인해서 상기 호스트 시스템은 플래시 메모리 시스템에 데이터를 기록하거나 그로부터 데이터를 판독할 수 있다. 그러나, 일부 플래시 메모리 시스템은, 도 2c와 관련해서 아래에 설명될 바와 같이, 삽입된 플래시 메모리에 대해 실질적으로 제어기로서의 역할을 하도록 호스트 상에서 실행되는 삽입된 플래시 메모리 및 소프트웨어를 포함한다. 도 2a를 참조하여, 예컨대 CompactFlash 메모리 카드와 같은 비-휘발성 메모리 장치를 포함하는 일반적인 호스트 시스템이 설명될 것이다. 호스트 또는 컴퓨터 시스템(100)은 마이크로프로세서(108), RAM(random access memory)(112), 및 입/출력 회로(116)가 통신할 수 있게 하는 시스템 버스(104)를 일반적으로 포함한다. 호스트 시스템(100)은 일례를 위해 도시되지 않은 예컨대 디스플레이 장치 및 네트워킹 장치와 같은 다른 구성성분들을 일반적으로 포함할 수 있다는 것을 알아야 한다.
일반적으로, 호스트 시스템(100)은 정지 영상 정보, 오디오 정보, 및 비디오 영상 정보를 포함하는 정보(그러나, 그러한 것들로 제한되지는 않음)를 캡쳐링할 수 있을 수 있다. 그러한 정보는 실시간적으로 캡쳐링될 수 있으며, 무선 방식으로 호스트 시스템(100)에 전송될 수 있다. 비록 호스트 시스템(100)이 실제 임의의 시스템일 수 있을 지라도, 호스트 시스템(100)은 통상적으로 디지털 카메라, 비디오 카메라, 셀룰러 통신 장치, 및 오디오 플레이어나 비디오 플레이어와 같은 시스템이다. 그러나, 호스트 시스템(100)은 일반적으로 데이터나 정보를 저장하고 데이터나 정보를 검색하는 임의의 시스템일 수 있다.
호스트 시스템(100)은 또한 데이터를 단지 캡쳐링하거나 데이터를 단지 검색만하는 시스템일 수 있다. 즉, 호스트 시스템(100)은, 일 실시예에서, 데이터를 저장하는 전용 시스템일 수 있거나, 데이터를 판독하는 전용 시스템일 수 있다. 일예로서, 호스트 시스템(100)은 데이터를 기록하거나 저장하기 위해서만 배치되는 메모리 기록기일 수 있다. 대안적으로, 호스트 시스템(100)은 데이터를 판독하거나 검색할 뿐 데이터를 캡쳐링하지는 않도록 통상적으로 배치되는 MP3 플레이어와 같은 장치일 수 있다.
일 실시예에서 제거가능한 비-휘발성 메모리 장치인 비-휘발성 메모리 장치(120)는 정보를 저장하기 위해서 버스(104)와 인터페이싱하도록 배치된다. 선택성 인터페이스 블록(130)은 비-휘발성 메모리 장치(120)로 하여금 버스(104)와 간접적으로 인터페이싱하도록 할 수 있다. 존재하는 경우에 입/출력 회로 블록(116)은 당업자가 아는 바와 같이 버스(104) 상에서의 로딩을 감소시키는 기능을 한다. 비-휘발성 메모리 장치(120)는 비-휘발성 메모리(124)와 선택성 메모리 제어 시스템(128)을 포함한다. 일 실시예에서, 비-휘발성 메모리 장치(120)는 단일 칩이나 다이(die) 상에 구현될 수 있다. 대안적으로, 비-휘발성 메모리 장치(120)는 다중-칩 모듈 상에 구현될 수 있거나, 칩 세트를 형성할 수 있으면서 비-휘발성 메모리 장치(120)로서 함께 사용될 수 있는 다중 이산 성분 상에 구현될 수 있다. 비-휘발성 메모로 장치(120)의 일 실시예가 도 3b와 관련하여 아래에서 더욱 상세히 설명될 것이다.
비-휘발성 메모리(124), 예컨대, NAND 플래시 메모리나 MLC NAND 플래시 메모리와 같은 플래시 메모리가 데이터를 저장하도록 배치됨으로써, 상기 데이터는 필요시 액세스되어 판독될 수 있다. 비-휘발성 메모리(124)에 저장된 데이터는 또한 적절하게 소거될 수 있지만, 비-휘발성 메모리(124) 내의 일부 데이터가 소거될 수 없을 수도 있다는 것을 알아야 한다. 데이터를 저장하고, 데이터를 판독하고, 데이터를 소거하는 처리는 일반적으로 메모리 제어 시스템(128)에 의해 제어되거나, 또는 메모리 제어 시스템(128)이 존재하지 않을 때는, 마이크로프로세서(108)에 의해서 실행되는 소프트웨어를 통해 제어된다. 비-휘발성 메모리(124)의 동작은, 상기 비-휘발성 메모리(124)의 섹션들이 본질적으로 거의 동일하게 소모되도록 야기함으로써 상기 비-휘발성 메모리(124)의 수명이 실제로 극대화되도록 관리될 수 있다.
비-휘발성 메모리 장치(120)는 선택성 메모리 제어 시스템(128), 즉 제어기를 포함하는 것으로서 일반적으로 설명되었다. 종종, 비-휘발성 메모리 장치(120)는 비-휘발성 메모리(124) 및 메모리 제어 시스템(128), 즉 제어기 기능부를 위한 별도의 칩들을 포함할 수 있다. 일예로서, PC 카드, CompactFlash 카드, MultiMedia 카드, 및 보안 디지털 카드를 포함하는(하지만 그러한 것들로 제한되지는 않음) 비-휘발성 메모리 장치가 별도의 칩 상에 구현될 수 있는 제어기를 포함할 지라도, 다른 비-휘발성 메모리 장치는 별도의 칩 상에 구현된 제어기를 포함하지 않을 수 있다. 비-휘발성 메모리 장치(120)가 별도의 메모리 및 제어기 칩을 포함하지 않는 실시예에서는, 메모리와 제어기 기능부는 당업자가 아는 바와 같이 단일 칩에 집적될 수 있다. 대안적으로, 메모리 제어 시스템(128)의 기능은, 위에서 논의된 바와 같이, 비-휘발성 메모리 장치(120)가 메모리 제어기(128)를 포함하지 않는 실시예에서 일예로서 마이크로프로세서(108)에 의해 제공될 수 있다.
도 2b에 관련해서, 비-휘발성 메모리 장치(120)가 본 발명의 실시예에 따라 더욱 상세히 설명될 것이다. 위에서 설명된 바와 같이, 비-휘발성 메모리 장치(120)는 비-휘발성 메모리(124)를 포함하며, 메모리 제어 시스템(128)을 포함 할 수 있다. 메모리(124) 및 제어 시스템(128), 즉 제어기는 비-휘발성 메모리 장치(120)의 기본 성분일 수 있지만, 메모리(124)가 삽입형 MLC NAND 메모리와 같은 삽입형 NAND 장치일 때는, 예컨대, 비-휘발성 메모리 장치(120)가 제어 시스템(128)을 포함하지 않을 수 있다. 메모리(124)는 반도체 기판 상에 형성된 메모리 셀 어레이일 수 있는데, 메모리 셀의 각 저장 엘리먼트 상에 2 이상 레벨의 전하를 저장함으로써 각 메모리 셀에 1 비트 이상의 데이터가 저장된다. 비-휘발성 플래시 전기 EEPROM(erasable programmable read only memory)은 그러한 시스템을 위한 일반적인 유형의 메모리에 대한 예이다.
존재할 경우에, 제어 시스템(128)은 데이터를 저장하기 위해서 메모리 시스템을 사용하는 호스트 컴퓨터나 다른 시스템에 버스(15)를 통해서 통신한다. 버스(15)는 일반적으로 도 2a의 버스(104)의 일부분이다. 제어 시스템(128)은 또한 메모리(124)의 동작을 제어하는데, 상기 메모리(124)는 호스트가 제공하는 데이터를 저장하고 호스트가 요청하는 데이터를 판독하며 메모리(124)를 동작시키는데 있어 다양한 하우스키핑 기능을 수행하기 위해서 메모리 셀 어레이(11)를 포함할 수 있다. 제어 시스템(128)은 일반적으로 비-휘발성 소프트웨어 메모리, 다양한 논리 회로 등과 연관된 범용 마이크로프로세서를 포함한다. 하나 이상의 상태 머신이 종종 특정 루틴의 수행을 제어하기 위해서 또한 포함된다.
메모리 셀 어레이(11)는 통상적으로 어드레스 디코더(17)를 통해서 제어 시스템(128)이나 마이크로프로세서(108)에 의해 어드레싱된다. 디코더(17)는 제어 시스템(128)에 의해서 어드레싱되는 메모리 셀 그룹에 데이터를 프로그래밍하거나, 메모리 셀 그룹으로부터 데이터를 판독하거나, 메모리 셀 그룹을 소거하기 위해서 정확한 전압을 게이트 및 비트 라인 어레이(11)에 인가한다. 추가 회로(19)는 어드레싱된 셀 그룹 내에 프로그래밍되는 데이터에 의존하는 어레이의 엘리먼트에 인가되는 전압을 제어하는 프로그래밍 구동기를 포함한다. 회로(19)는 또한 어드레싱된 메모리 셀 그룹으로부터 데이터를 판독하기 위해 필요한 감지 증폭기 및 다른 회로를 포함한다. 어레이(11)에 프로그래밍될 데이터, 또는 어레이(11)로부터 최근에 판독된 데이터는 통상적으로 제어 시스템(128) 내의 버퍼 메모리(21)에 저장된다. 제어 시스템(128)은 또한 일반적으로 명령 및 상태 데이터를 일시 저장하기 이한 다양한 레지스터 및 그와 유사한 것을 포함한다.
어레이(11)는 매우 많은 수의 블록 0-N 메모리 셀로 분할된다. 플래시 EEPROM 시스템에 공통되는 것처럼, 블록은 통상적으로 가장 작은 소거 단위이다. 즉, 각각의 블록은 함께 소거되는 최소 수의 메모리 셀을 포함한다. 각각의 블록은 통상적으로 다수의 페이지로 분할된다. 당업자에게 인지되는 바와 같이, 페이지는 가장 작은 프로그래밍 단위일 수 있다. 즉, 기본 프로그래밍 동작은 메모리 셀의 최소 한 페이지에 데이터를 기록하거나 그로부터 데이터를 판독한다. 하나 이상의 데이터 섹터가 통상적으로 각각의 페이지에 저장된다. 도 2b에 도시된 바와 같이, 하나의 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 통상적으로 섹터의 사용자 데이터로부터 계산되어진 ECC나 다른 중복 코드를 포함한다. 제어 시스템(128)의 일부분(23)은 데이터가 어레이(11)에 프로그래밍될 때 ECC를 계산하고, 데이터가 어레이(11)로부터 판독될 때 ECC를 또한 검사한다. 대안적으로, ECC는 자신이 속하는 사용자 데이터 이외의 다른 페이지나 다른 블록에 저장된다.
사용자 데이터의 섹터는 통상적으로 512바이트인데, 이는 자기 디스크 장치의 섹터 크기에 상응한다. 오버헤드 데이터, 즉 중복 데이터는 통상적으로 추가적인 바이트이다. 데이터의 한 섹터가 가장 일반적으로는 각각의 페이지에 포함되지만 두 개 이상의 섹터가 대신에 페이지를 형성할 수 있다. 임의의 수의 페이지가 일반적으로 하나의 블록을 형성할 수 있다. 일예로서, 하나의 블록은 8 개의 페이지에서부터 최대 512,1024개 이상의 페이지로 형성될 수 있다. 블록의 수는 메모리 시스템에 원하는 데이터 저장 용량을 제공하도록 선택된다. 어레이(11)는 통상적으로 수 개의 서브-어레이(미도시)로 분할되는데, 각각의 서브-어레이는 블록들의 균형을 포함하며, 상기 블록은 다양한 메모리 동작의 실행에 있어 평행 정도를 증가시키기 위해 서로에 다소 상관없이 동작한다. 다중 서브-어레이의 사용에 대한 예가 미국 특허 제 5,890,192호에 설명되어 있는데, 상기 미국 특허는 완전히 본 명세서에서 참조된다.
일 실시예에서, MLC NAND 메모리와 같은 비-휘발성 메모리 시스템, 예컨대 호스트 시스템에 삽입된다. 도 2c는 삽입된 비-휘발성 메모리를 포함하는 호스트 시스템의 개략도이다. 호스트 또는 컴퓨터 시스템(150)은 일반적으로 시스템 버스(154)를 포함하는데, 상기 시스템 버스(154)는 마이크로프로세서(158), RAM(162), 및 입/출력 회로(166)가 호스트 시스템(150)의 다른 성분들(미도시) 사이에서 통신할 수 있게 한다. 비-휘발성 메모리(174), 예컨대 플래시 메모리는 정보가 호스트 시스템(150) 내에 저장될 수 있게 한다. 인터페이스(180)가 비-휘발성 메모리(174)와 버스(154) 사이에 제공될 수 있음으로써, 정보가 비-휘발성 메모리(174)로부터 판독되거나 그곳에 기록될 수 있다.
비-휘발성 메모리(174)는 상기 비-휘발성 메모리(174)를 제어하기 위해 배치되는 소프트웨어나 펌웨어 중 어느 하나 또는 그 둘 모두를 효과적으로 실행시키는 마이크로프로세서(158)에 의해서 관리될 수 있다. 즉, 마이크로프로세서(158)는 비-휘발성 메모리(174)가 제어될 수 있게 하는 코드 장치(미도시), 즉 소프트웨어 코드 장치나 펌웨어 코드 장치를 작동시킬 수 있다. 아래에서 설명될 바와 같이, 마이크로프로세서(158) 내의 CPU와 패킷화되는 플래시 메모리, 별도의 플래시 ROM, 또는 내장형 비-휘발성 메모리(174)일 수 있는 그러한 코드 장치는 비-휘발성 메모리(174)의 물리적 블록이 어드레싱될 수 있게 하며, 정보가 물리적 블록에 저장되고, 물리적 블록으로부터 판독되며, 물리적 블록으로부터 소거될 수 있게 할 수 있다.
사용불가능한 블록과 같은 사용불가능한 블록이 구별되도록 하기 위해서, 예컨대, 공장 결함을 갖는 사용불가능한 블록 및 성장 결함을 갖는 사용불가능한 블록이 쉽게 식별될 수 있도록 하기 위해서, 일련의 제 1 비트가 공장 결함을 갖는 사용불가능한 블록을 식별하는데 사용될 수 있고, 일련의 제 2 비트가 성장 결함을 갖는 사용불가능한 블록을 식별하는데 사용될 수 있다. 상이한 일련의 비트, 예컨대, 서명이나 표시는 공장 결함을 갖는 블록과 성장 결함을 갖는 블록을 실제 고유하게 식별하도록 배치될 수 있다.
일반적으로, 공장 결함을 갖는 것으로서 블록을 식별하는 서명과 성장 결함을 갖는 것으로서 블록을 식별하는 서명이 비-휘발성 메모리 시스템과 연관된 데이터 구조에 저장될 수 있다. 그러한 데이터 구조는, 비-휘발성 메모리 성분 내의 데이터 구조에 바람직하게 저장됨으로써 전체적인 시스템에 전력이 차단되었을 때 상기 데이터 구조가 잘 유지되도록 하는데, 메모리 성분에 존재하는 실제 모든 물리적 블록과 연관된 비트를 포함할 수 있다. 사용불가능한 물리적 블록과 연관된 비트는 공장 결함이나 성장 결함 중 어느 하나를 갖는 것으로서 상기 사용불가능한 블록을 실제 고유하게 식별하는 서명일 수 있다.
공장 결함을 갖는 사용불가능한 블록과 성장 결함을 갖는 사용불가능한 블록을 식별하는 서명이나 표시를 저장하기 위해 사용될 수 있는 데이터 구조는 소거 카운트 블록일 수 있는데, 상기 소거 카운트 블록은, 본 명세서에서 참조되는 미국 특허 출원 제 10/281,626호에 설명된 바와 같이, 비-휘발성 메모리 시스템과 연관된 메모리, 예컨대 NAND 메모리에 저장되는 여분의 블록이다. 소거 카운트 블록은 성장 결함을 갖는 사용불가능한 블록이 이를테면 식별될 수 있도록 하기 위해서 재활용 처리가 발생할 때 액세스될 수 있다. 비-휘발성 메모리 시스템에 있는 물리적 블록이 소거된 횟수를 효과적으로 트랙킹하기 위해서 사용될 수 있는 소거 카운트가 또한 소거 카운트 블록에 저장될 수 있다. 일반적으로, 소거 카운트 블록은 또한 평균 소거 카운트를 포함할 수 있는데, 상기 평균 소거 카운트는, 각 물리적 블록의 소거 카운트 외에도, 비-휘발성 메모리 시스템 내의 각각의 사용할 수 있는 물리적 블록이 소거되는 평균 횟수의 표시자이도록 배치된다. 도 3a는 본 발명의 실시예에 따른 소거 카운트 블록의 개략도이다. 소거 카운트 블록(300)은 일반적으로, 소거 카운트 블록(300)이 상기 소거 카운트 블록(300)을 포함하는 전체 비-휘발성 시스템 내의 각각의 블록, 즉 물리적 블록에 대한 특정 비트 수를 포함하도록, 일반적으로 크기가 정해진다. 각각의 블록에 효과적으로 할당되는 비트 수는 하나의 블록에 대한 전체 소거 카운트가 할당된 비트에 의해서 수용될 수 있도록 선택될 수 있다. 일 실시예에서, 소거 카운트 블록(300)은, 3 바이트가 일반적으로 거의 100000 정도의 소거 카운트를 수용하기에 일반적으로 충분할 때, 각각의 블록에 대해서 거의 3 바이트를 포함할 수 있다. 블록마다 거의 64 페이지를 갖는 거의 2048개의 블록을 포함하는 512 Mb 시스템에서 3 바이트가 각각의 블록에 할당될 때, 소거 카운트 블록(300)은 거의 12 페이지, 예컨대 거의 6000 바이트를 포함하도록 크기가 정해질 수 있다.
소거 카운트 블록(300)은, 당업자들이 알 게 될 바와 같이, 소거 카운트와 같은 데이터를 저장하는데 사용될 수 있는 거의 512 바이트를 종종 포함하는 페이지(310)를 포함한다. 도시된 바와 같이, 제 1 페이지(310a)는 블록 '0' 내지 '169'에 대한 소거 카운트 엔트리를 포함하도록 배치될 수 있는 반면에, 제 2 페이지(310b)는 블록 '170' 내지 '339'에 대한 소거 카운트 엔트리를 포함하도록 배치될 수 있다. 블록 '1', 즉 물리적 블록 '1'에 대한 소거 카운트가 기록 또는 판독될 때, 제 1 페이지(310a)의 3 내지 5 바이트가 액세스될 수 있는데, 그 이유는, 도 3b 및 3c에 대해 아래에서 설명될 바와 같이, 제 1 페이지(310a)의 3 내지 5 바이트가 블록 '1'에 상응하는 소거 카운트 엔트리를 포함하도록 배치되기 때문이다.
소거 카운트 블록(300)은 페이지(310)를 포함하는 것 외에도, 소거 카운트 블록(300)의 거의 모든 곳에 일반적으로 배치될 수 있는 헤더(320)를 또한 포함한다. 도시된 바와 같이, 비록 헤더(320)가 소거 카운트 블록(300)의 처음 부분에 종종 위치된다고 인지되어야 하지만, 헤더(320)는 소거 카운트 블록(300)의 페이지(310c, 310d) 사이에 위치된다. 헤더(320)는, 도 4를 참조하여 아래에서 설명된 바와 같이, 페이지(310)에 저장된 소거 카운트와 연관있는 블록을 포함하는 비-휘발성 플래시 메모리에 관한 정보를 포함하는 소거 카운트 블록(300)의 페이지일 수 있다.
도 3b는, 본 발명의 실시예에 따른, 소거 카운트 블록 내의 페이지, 예컨대 도 3a의 소거 카운트 블록(300)의 페이지(310)에 대한 개략도이다. 페이지(310a)는 거의 170 개의 물리적 블록에 상응하는 엔트리(330)를 유지하도록 배치된다. 도시된 바와 같이, 엔트리(330)는 블록에 대한 소거 카운트를 포함함으로써, 페이지(310a)의 제 1 엔트리(330a)는 블록 '0'에 대한 소거 카운트를 포함하도록 배치되고, 제 2 엔트리(330b)는 블록 '1'에 대한 소거 카운트를 포함하도록 배치된다. 페이지(310a)의 마지막 엔트리(330e)는 블록 '169'에 대한 소거 카운트를 보유하도록 배치된다.
각각의 엔트리(330)는 실제 동일한 수의 바이트를 포함한다. 도 3c에 도시된 바와 같이, 블록 '0'에 상응하는 엔트리(330a)는 페이지(310a)의 '0' 내지 '2' 바이트일 수 있는 반면에, 블록 '2'에 상응하는 엔트리(330c)는 페이지(310a)의 '6' 내지 '8' 바이트일 수 있다. 앞서 설명된 바와 같이, 각각의 엔트리(330)는, 비록 각각의 엔트리(330)의 바이트 수 및 그로 인한 페이지(310a)의 엔트리(330)의 수가 변할 수 있지만, 거의 3 바이트를 포함할 수 있다는 것이 인지되어야 한다. 일예로서, 일 실시예에서는, 각각의 엔트리(330)는 거의 4 바이트를 포함할 수 있다.
페이지(310a)에서 각각의 엔트리(330)는 소거 카운트 또는, 특정 엔트리(330)가 앞서 소거된 횟수에 대한 표시를 포함하도록 배열되지만, 엔트리(330)는 반드시 소거 카운트를 포함하지 않을 수 있다. 이를테면, 특정 블록이 예컨대 제조 결함이나 공장 결함으로 인해서 사용될 수 없어서 기록되거나 판독될 수 없을 때, 그 블록은 일반적으로 소거 카운트를 갖지 않을 것이다. 그로써, 도 3a의 소거 카운트 블록(300)과 같은 소거 카운트 블록은 일반적으로 사용불가능한 블록에 대한 소거 카운트를 포함하는 엔트리를 갖지 않을 것이다. 대신에, 소거 카운트를 보유하는 대신에, 사용불가능한 블록에 대한 엔트리(330)는 사용불가능한 것으로서 블록을 식별하기 위해 배치되는 표시자나 표식을 보유할 수 있다. 더 상세히는, 엔트리(330)는 공장 또는 제조 결함으로 인해 사용할 수 없거나 또는 성장 결함으로 인해 사용불가능한 것으로서 블록을 식별하는 표시자를 보유할 수 있다.
도 3d는 도 3a의 소거 카운트 블록(300)의 페이지(310a)와 같은 소거 카운트 블록의 페이지에 대한 개략도인데, 상기 소거 카운트 블록(300)의 페이지(310a)는 본 발명의 실시예에 따라 특정 블록이 사용될 수 없다는 것을 표시하는 엔트리와 소거 카운트를 포함한다. 블록이 사용될 수 없을 때, 즉, 기록되거나 판독될 수 없을 때, 블록은 일반적으로 소거 카운트를 가질 것이다. 예컨대, 블록 '0'에 상응하는 소거 카운트를 포함하도록 배치되는 페이지(310a)의 엔트리(330a)는 블록 '0'이 100번 소거되었을 때 '100'의 값을 포함할 수 있다. 마찬가지로, 페이지(310a)의 엔트리(330b)는 블록 '1'이 30번 소거되었을 때 '30'의 값을 포함할 수 있다.
만약 블록 '2'가 예컨대 블록 '2'에 저장된 표식이나 서명을 통해서 공장 결함으로 인해 사용불가능한 블록인 것으로 식별된다면, 블록 '2'에 상응하는 페이지(310a)의 엔트리(330c)는 블록 '2'가 공장 결함으로 인해 사용불가능한 것을 나타내도록 배치되는 표식을 포함할 수 있다. 설명된 실시예에서, 엔트리(330c)의 'FFFFFF'인 표식이나 서명은 블록 '2'가 공장 결함으로 인해 사용될 수 없다는 것을 나타낼 수 있다. 블록이 공장 결함이나 제조 결함으로 인해 사용될 수 없다는 것을 나타내기 위해서 실제 임의의 표식이 사용될 수 있다는 것을 알아야 한다.
블록 '3'이 성장 결함이나 공장 결함 이외의 결함으로 인해 사용불가능한 블록인 것으로 식별되었을 때, 블록 '3'에 상응하는 페이지(310a)의 엔트리(330d)는 블록 '3'이 성장 결함으로 인해 사용될 수 없다는 것을 나타내도록 배치되는 표식을 포함할 수 있다. 도시된 바와 같이, 엔트리(330d)의 '7FFFFF'인 표식이나 서명는 블록 '3'이 성장 결함으로 인해 사용될 수 없다는 것을 나타낼 수 있다. 블록이 성장 결함으로 인해 사용될 수 없다는 것을 식별하기 위해서 사용될 수 있는 서명의 또 다른 예는 '8XXXXX'과 같은 서명이 있는데, 여기서 'XXXXX'는 소거 카운트의 거의 20 비트일 수 있다. 소거 카운트가 성장 결함의 표식에 포함될 수 있는 서명을 사용함으로써, 결함이 있는 것으로서 식별되는 블록의 소거 카운트는 그 블록 내에 유지될 수 있다.
위에서 설명된 바와 같이, 도 3a의 소거 카운트 블록(300)과 같은 소거 카운트 블록은 통상적으로 헤더(320)를 포함하는데, 상기 헤더(320)는, 일 실시예에서, 비-휘발성 메모리 시스템 내의 블록과 일반적으로 관련되는 정보를 포함한 소거 카운트 블록(300) 내의 페이지이다. 다음 도 4를 참조하며, 소거 카운트 블록의 헤더, 예컨대 도 3a의 소거 카운트 블록의 헤더(320)가 본 발명의 실시예에 따라 설명될 것이다. 소거 카운트 블록 내의 실제 모든 곳에 위치될 수 있는 헤더(320)는 정보를 저장하기 위해 사용될 수 있는 거의 512 바이트를 포함할 수 있다. 헤더(320)에 저장된 정보는 통상적으로 보안 검사를 위해 사용될 수 있는 서명(350a)을 포함한다. 비-휘발성 메모리의 여분의 블록(350d)의 수에 관한 정보(350d) 이외에도, 비-휘발성 메모리의 숨겨진 블록의 수에 관한 정보(350c)가 또한 헤더(320)에 포함될 수 있다. 정보(350f)는 비-휘발성 메모리에 포함된 블록의 총 수를 포함할 수 있고, 평균 소거 카운트가 헤더(320)에 정보(350g)로서 저장된다.
헤더(320)는 일반적으로 다른 내용을 포함할 수 있다는 것을 알아야 한다. 일예로서, 헤더(320)는 사용 중이거나 사용에 이용가능한 사용할 수 있는 블록의 총 수에 관한 정보뿐만 아니라 정보를 분할하는 정보를 포함할 수 있다. 대안적으로, 헤더(320)는 공장 결함을 갖는 블록의 수 및 성장 결함을 갖는 블록의 수에 관한 정보를 보유할 수 있다.
소거 카운트 블록은, 먼저 전력이 상기 소거 카운트 블록을 포함하는 비-휘발성 메모리 시스템에 제공될 때, 초기화되거나 그렇지 않으면 생성된다. 즉, 소거 카운트 블록은 통상적으로 비-휘발성 메모리 시스템의 비-휘발성 메모리가 먼저 포맷팅되었을 때 초기화되고, 사용불가능한 블록이 식별된다. 도 5를 참조하면, 비-휘발성 메모리 시스템의 비-휘발성 메모리가 먼저 포맷팅될 때 소거 카운트 블록을 초기화하는 한 방법과 연관된 단계들이 본 발명의 실시예에 따라 설명될 것이다. 처리(500)는 단계(504)에서 시작하는데, 상기 단계에서 비-휘발성 메모리의 모든 블록, 즉 더 상세히는 모든 물리적 블록이 검사된다. 결함 스캐닝 처리는, 일 실시예에서, 낮은 레벨 포맷의 결함 스캐닝 처리를 포함할 수 있다. 블록을 검사하는 것은 블록들 중 어느 것이 사용불가능한지를 결정하기 위해서 블록의 내용을 검사하는 것을 포함한다. 통상적으로, 시스템이 먼저 포맷팅될 때, 사용불가능한 블록은 사용불가능한 것으로서 비-휘발성 메모리 제조자에 의해 식별되는 블록, 즉 공장 결함을 갖는 블록만을 실제로 포함한다. 그러한 블록은 상기 블록에 저장된 비트에 의해 공장 결함을 갖는 것으로서 식별될 수 있다. 따라서, 단계(508)에서는, 비-휘발성 메모리 내의 사용불가능한 블록이 식별된다. 사용불가능한 블록을 식별하는 것은 비트나 표식, 예컨대 블록의 미리 결정된 페이지의 '0'과 같은 특정 서명을 포함하는 각 블록을 식별하는 단계를 포함할 수 있는데, 상기 특정 서명은 공장 결함을 갖거나 그렇지 않으면 포함하는 블록을 식별하기 위해 알려진다.
일단 실제로 모든 사용불가능한 블록이 식별되면, 상기 사용불가능한 블록은 단계(512)에서 소거 카운트 블록에서 사용불가능한 것으로 표식되거나 그렇지 않으면 식별된다. 특정 블록을 사용불가능한 것으로서 표식하는 것은 블록을 사용불가능한 것으로 식별하는 상기 블록을 위해 예비된 소거 카운트 블록의 일부분에 특정 표식이나 코드를 배치하는 것을 포함한다. 'FFFFFF'와 같은 서명은 특정 블록이 공장 결함으로 인해 사용될 수 없다는 것을 나타내기 위해서 소거 카운트 블록의 적절한 섹션 내에 배치될 수 있다. 소거 카운트 블록에서 사용불가능한 블록을 표식하는 것은 통상적으로 비-휘발성 메모리 내의 사용불가능한 블록의 총 수에 대한 카운팅을 포함하도록 소거 카운트 블록의 헤더를 갱신하는 것을 또한 포함한다는 것이 인지되어야 한다.
소거 카운트 블록내에서 사용불가능한 블록이 마킹된 이후, 소거되지 않은 사용가능한 블록의 소거 카운트 또는 제조상 결함을 가지지 않는 블록이 단계(516)에서 초기화된다. 소거 카운트의 초기화는 소거되어 0의 값이 되는 각각의 블록의 소거 카운트를 설정하는 단계를 포함한다. 소거되지 않은 블록에 대한 소거 카운트는 전형적으로 블록과 관련된 리던던트 또는 전체 영역중 적어도 하나에 저장된다. 사용가능한 블록에 해당하는 소거 카운트 즉, 소거된 및 미소거된 사용가능한 블록 모두 단계(520)에서 소거 카운트 블록내에 설정된다. 전형적으로, 소거 카운트 블록내에 저장된 소거 카운트가 0의 값으로 설정되거나 미소거 블록의 경우 자신의 해당 미소거 블록내 저장된 소거 카운트와 동일한 값으로 설정된다. 다시 말해, 미소거 블록에 대한 소거 카운트는 전형적으로 블록에 해당하는 위치내 소거 카운트 블록내에 저장된 소거 카운트와 동일하다. 일단 소거 카운트가 소거 카운트 블록내에 엔트리로서 설정되면, 평균 소거 카운트가 단계(524)에서 소거 카운트 블록내 설정된다. 상술된 바와 같이, 평균 소거 카운트는 소거 카운트 블록의 헤더에 저장된다. 사용가능한 블록의 소거 카운트가 모두 0의 값으로 초기화될 때, 평균 소거 카운트는 0의 값으로 설정된다. 비휘발성 메모리 시스템내 포함된 비휘발성 메모리를 포맷팅하는 과정은 평균 소거 카운트가 설정된 이후 완결된다.
비휘발성 메모리 시스템내 물리적 블록을 사용하는 과정 동안, 몇몇 블록은 성장형 결함을 가지는 것으로 식별된다. 이전에 사용가능하였던 블록이 더이상 사용가능하지 않은 것으로 결정되면, 그 블록은 일반적으로 성장형 결함을 가진다. 도 6을 참조하면, 성장형 결함을 가진 블록을 처리하는 것과 관련된 단계들이 본 발명의 실시예에 따라 설명된다. 블록을 효율적으로 분류하는 것과 관련된 프로세스(550)가 블록을 사용하고자 시도하기 위한 단계(554)에서 시작한다. 개시된 실시예에서, 블록을 사용하고자 시도하는 것은 여분의 블록 풀로부터 블록을 얻는 단계 및 블록내에 데이터를 기입하는 단계를 포함한다. 선택적으로, 블록을 사용하고자 하는 시도는 블록으로부터 데이터를 판독하고자 하는 단계 또는 블록을 소거하는 단계를 포함한다.
블록이 사용가능한지의 여부에 관한 결정이 단계(558)에서 수행된다. 다시 말해, 블록은 성공적으로 기입, 성공적으로 판독 또는 성공적으로 소거되는지를 결정한다. 만일 블록이 사용불가능한 것으로 결정되지 않는다면, 블록이 사용가능한 블록이며 사용가능한 블록의 전체 풀내에 유지되도록 지시된다. 따라서, 블록이 사용되는 단계(562)로 진행된다. 블록을 사용하는 것은 블록을 데이터를 저장하는데 사용하는 단계 및 여분의 블록 풀에 블록을 부가하는 단계를 포함한다. 일단 블록이 사용되고 사용가능한 것으로 효율적으로 분류되면, 블록을 분류하는 프로세스가 완결된다.
선택적으로, 만일 블록이 사용가능하지 않은 것으로 단계(558)에서 결정되면, 단계(566)에서 블록은 사용가능한 블록의 전체 풀로부터 효율적으로 제거된다. 예를 들어, 만일 블록이 여분의 블록과 블록에 기입하고자 하는 시도와 관련된 단계(554)에서 블록을 사용하고자 하는 시도로부터 얻어진다면, 사용가능한 블록의 전체 풀로부터 블록을 제거하는 것은 여분의 블록 풀로부터 블록을 제거하는 것을 포함한다. 일반적으로, 사용가능한 블록의 전체 풀로부터 블록을 제거하는 것은 블록이 사용가능하지 않다는 것을 지시하기 위해 블록을 마킹하는 것을 포함한다.
블록이 사용가능한 블록의 전체 풀로부터 제거된 이후, 성장형 결함 서명 예를 들면, '7FFFFF' 서명은, 블록이 성장형 결함을 가지는 것을 지시하기 위해 단계(570)에서 시스템의 소거 카운트 블록으로 기입된다. 이러한 서명은 전형적으로 블록에 해당하는 소거 카운트 블록내 위치에 기입된다. 일단 성장형 결함 서명이 소거 카운트 블록으로 기입되면, 단계(574)에서 다른 블록을 사용하고자 시도한다. 예를 들어, 단계(570)에서 데이터를 저장하기 위해 사용되었던 성장형 결함을 가진 것으로 블록이 마킹되면, 성장형 결함을 가진 것으로 마킹된 블록내에 저장되지 않은 데이터를 저장하기 위한 다른 블록이 얻어진다. 시도가 다른 블록을 사용하고자 할 때, 블록이 사용불가능한 지를 결정하는 단계(558)로 되돌아간다.
소거 카운트 블록내 다른 서명을 사용하는 것을 통한 예에서와 같이, 제조상 결함을 가진 사용불가능 블록과 성장형 결함을 가진 사용불가능 블록 사이의 중요 한 차이점에 의해, 성장형 결함을 가진 사용불가능한 블록의 적어도 일부를 재생하는 것이 가능하다. 즉, 실질적으로 문제가 있는 블록 즉, 제조상 결함을 가진 사용불가능 블록을 처음에는 우수했지만 문제를 가지게 된 블록 즉, 성장형 결함을 가진 블록과 용이하게 구별할 수 있도록 함으로써, 추가의 블록이 필요할 때 성장형 결함을 가진 사용불가능한 블록중 적어도 일부를 재생할 수 있다. 사용불가능한 블록을 재생하는 것은 일반적으로 일단 사용가능한 임의의 블록을 식별할 수 잇도록 사용불가능한 블록상에서의 테스트를 통해 상대적으로 수행하는 단계를 포함한다.
도 7a와 도 7b는 본 발명의 일 실시예에 따라 비휘발성 메모리 시스템내 사용불가능한 블록을 재생하는 프로세스를 구현하는 하나의 방법에 관련된 단계를 도시한다. 사용불가능한 블록이 재생될 수 있는 전체 비휘발성 시스템을 동작시키는 프로세스(600)는 메모리 시스템이 파워업되는 과정에 있다고 결정되는 단계(602)에서 시작한다. 만일 시스템이 파워업 프로세스를 겪지 않는 것으로 결정된다면, 프로세스는 단계(604)로 이동하여 소거 카운트 블록이 유지되도록 한다. 소거 카운트 블록을 유지하는 것은 성장형 결함으로 인해 사용불가능한 사용불가능 블록을 식별하는 소거 카운트 블록내에 서명을 기록하는 단계를 포함한다. 전형적으로, 소거 카운트 블록은 사용되고 있는 시스템내 블록으로서 유지된다.
시스템의 몇몇 동작의 포인트에서, 단계(608)에서 여분의 블록 풀 또는 데이터를 저장하는데 사용가능한 블록의 풀이 로우로 수행된다. 즉, 단계(608)에서 사용하기에 적절한 적정 수의 여분의 블록이 있는지를 결정한다. 예를 들어 제어기 또는 비휘발성 메모리 시스템과 관련된 프로세서에 의해, 만일 여분의 블록 풀이 로우로 수행되지 않는 것으로 결정된다면, 프로세스는 단계(604)로 되돌아가 소거 카운트 블록이 유지될 수 있도록 한다.
선택적으로, 단계(608)에서 여분의 블록이 로우로 수행되고 있다고 결정된다면, 성장형 결함을 가진 몇몇 사용불가능 블록을 재생하고자 하는 시도가 바람직하다. 다시 말해, 성장형 결함을 가지는 것으로 식별된 임의의 블록이 사용가능한 것으로 결정하는 것이 바람직하다. 따라서, 프로세스는 성장형 결함 서명을 위해 소거 카운트 블록이 스캐닝되는 단계(608)에서 단계(912)로 이동한다. 일단 소거 카운트 블록의 스캔이 시작되면, 단계(616)에서 성장형 결함을 식별하는 서명이 발견되었는지가 결정된다.
만일 단계(616)에서 성장형 결함을 식별하는 서명이 발견되지 않은 것으로 결정된다면, 성장형 결함을 식별하는 서명을 스캔하기 위해 소거 카운트 블록내 더 많은 엔트리가 존재하는지에 대한 결정이 단계(618)에서 수행된다. 스캔할 많은 엔트리가 존재하는 것으로 결정될 때, 소거 카운트 블록은 단계(612)에서 성장형 결함을 식별하는 서명에 대해 스캔된다. 한편, 스캔될 소거 카운트 블록내 많은 엔트리가 존재하지 않는 것으로 결정된다면, 프로세스는 단계(604)로 이동하여 소거 카운트 블록이 유지되도록 한다.
단계(616)로 돌아가서, 성장형 결함 서명이 발견된 것으로 결정된다면, 성장형 결함 서명이 발견되는 블록이 단계(620)에서 테스트된다. 블록을 테스트하는 것은 블록으로부터의 정보 또는 비트를 소거하기 위한 소거 테스트, 블록내에 비트 를 기입하는 기록 테스트 및 블록으로부터 정보를 판독하는 판독 테스트중 하나 또는 임의의 조합으로 포함한다. 당업자라면, 소거 테스트는 블록이 적절하게 소거되었는지를 결정하기 위해 사용되며, 기록 테스트는 블록이 기록되었는지를 결정하기 위해 사용되며, 판독 테스트는 블록이 판독되었는지를 결정하기 위해 사용된다. 하지만 일반적으로, 정밀한 패턴을 가진 블록에 대한 실질적으로 임의의 비교적 정밀한 테스트가 사용된다.
일단 성장형 결함이 발견된 블록이 테스트되면, 단계(624)에서 블록이 테스트를 통과하였는지가 결정된다. 일 실시예에서, 블록이 테스트를 통과했는지에 대한 결정은 블록이 소거 프로세스, 기록 프로세스 및 판독 프로세스중 적어도 하나를 수행하였는지를 결정하는 단계를 포함한다. 만일 블록이 테스트를 통과한 것으로 결정되었다면, 블록은 더이상 사용불가능하지 않으며 이에 따라 사용을 위해 재생된다. 따라서, 프로세스는 단계(632)로 이동하여 블록의 소거 카운트가 설정된다 즉, 전체 시스템과 관련된 평균 소거 카운트로 설정된다. 블록의 소거 카운트가 설정된 이후, 블록은 여분의 블록 풀에 단계(636)에서 부가된다. 여분의 블록 풀에 블록을 부가하는 것은 필요시 블록이 사용을 위해 얻어질 수 있도록 한다.
단계(636)로부터, 프로세스는 소거 카운트 블록의 스캔이 완결되었는지를 결정하는 단계(628)로 이동한다. 다시 말해, 단계(628)에서 성장형 결함을 가지는 것으로 블록을 식별하는 서명을 위한 스캔을 위해 소거 카운트 블록내 추가의 엔트리가 존재하는지를 결정한다. 만일 스캔을 위해 추가의 엔트리가 존재한다면, 소거 카운트 블록이 완전하지 않으며, 프로세스는 단계(612)로 돌아가서 소거 카운트 블록이 완전하며, 소거 카운트 블록이 성장형 결함을 가지는 것으로 블록을 식별하는 서명을 위해 스캔된다. 선택적으로, 만일 단계(628)에서 소거 카운트 블록의 스캔이 완결되는 것으로 결정된다면, 프로세스는 소거 카운트 블록이 계속 유지되는 단계(604)로 돌아간다.
단계(624)로 돌아가서, 단계(620)에서 테스트된 블록이 테스트를 통과하지 못한 블록이 있는 것으로 결정되면, 블록이 여전히 사용불가능한 것을 의미한다. 이와 같이, 블록은 재생되지 않는다. 일 실시예에서, 블록은 영구히 사용불가능한 것으로 간주된다. 블록이 단계(624)에서 테스트를 통과하지 못했을 때, 블록은 여전히 사용불가능한 것으로 결정되고, 프로세스는 단계(626)로 진행하여 블록이 단계(626)에서 제조상 결함을 가지는 것으로 마킹되도록 한다. 제조상 결함을 가지는 것으로 블록을 마킹하는 것이 전형적으로 블록에 대한 제조상 결함 서명을 소거 카운트 블록으로 기입하는 것을 포함한다는 것을 알 수 있을 것이다. 블록이 제조상 결함을 가지는 것으로 마킹된 이후, 소거 카운트 블록의 스캔이 단계(628)에서 완결되는 것으로 결정된다.
단계(602)를 다시 참조하면, 시스템이 파워업 프로세스를 겪는 것으로 결정될 때, 일 실시예에서 성장형 결함을 가진 사용불가능한 블록이 이러한 블록이 실제로 사용가능한지를 결정하기 위해 테스트된다. 따라서, 단계(602)로부터, 프로세스는 단계(612)로 이동하여 소거 카운트 블록이 성장형 결함 서명에 대해 스캔된다.
사용불가능한 블록과 관련된 기능성은 전형적으로 비휘발성 메모리 또는 비휘발성 메모리 컴포넌트를 포함하는 호스트 시스템으로 프로그램 코드 장치 또는 펌웨어로서 소프트웨어내에 제공된다. 소거 카운트 블록내 서명을 사용하여 사용불가능한 블록이 효율적으로 트랙킹될 수 있도록 하며, 성장형 결함을 가진 블록이 잠재적으로 재생될 수 있도록 하는 호스트 시스템에 제공된 소프트웨어 또는 펌웨어와 관련된 적정 시스템 아키텍처의 일 실시예가 도 8에 도시된다. 시스템 아키텍처(700)는 애플리케이션 인터페이스 모듈(704), 시스템 매니저 모듈(708), 데이터 매니저 모듈(712), 데이터 무결성 매니저(716) 및 장치 관리 및 인터페이스 모듈(720)을 포함하지만 이에 국한되지는 않는 다양한 모듈을 포함한다. 일반적으로, 시스템 아키텍처(700)는 프로세서 예를 들면, 도 2a의 프로세서에 의해 액세스되는 소프트 코드 장치 또는 펌웨어를 사용하여 구현된다.
일반적으로, 애플리케이션 인터페이스 모듈(704)은 호스트, 운용 시스템 또는 사용자와 직접 통신하기 위해 제공된다. 애플리케이션 인터페이스 모듈(704)은 또한 시스템 매니저 모듈(708) 및 데이터 매니저 모듈(712)과 통신한다. 사용자가 플래시 메모리로 판독, 기록 및 포맷팅하는 요청을 받을 때, 사용자는 일반적으로 운용 시스템에 요청을 송신하여, 애플리케이션 인터페이스 모듈(704)로 요청을 전달한다. 애플리케이션 인터페이스 모듈(704)은 요청에 따라 시스템 매니저 모듈(708) 또는 데이터 매니저 모듈(712)에 요청을 지향한다.
시스템 매니저 모듈(708)은 시스템 초기화 서브모듈(724), 소거 카운트 블록 매니저 서브모듈(726) 및 전력 매니저 블록 서브모듈(730)을 포함한다. 시스템 초기화 서브모듈(724)은 일반적으로 초기화 요청이 처리될 수 있도록 하고, 전형적으로 소거 카운트 블록 매니저 서브모듈(726)과 통신한다.
소거 카운트 블록 관리 서브모듈(726)은 블록의 소거 카운트가 저장되도록 하는 기능 및 평균 소거 카운트가 개별 소거 카운트를 사용하여 계산되고 업데이팅되는 기능을 포함한다. 다시 말해, 소거 카운트 블록 관리 서브모듈(726)은 소거 카운트가 효율적으로 카테고리화되고 평균 소거 카운트가 유지되도록 한다. 더욱이 일 실시예에서, 소거 카운트 블록 관리 서브모듈(726)은 또한 전체 시스템의 초기화 요청 동안 소거 카운트 블록내 모든 블록의 소거 카운트를 동기화한다. 소거 카운트 블록 관리 서브모듈(726)이 평균 소거 카운트가 소거 카운트 블록내에 저장되도록 하지만, 전력 관리 블록 서브모듈(730)은 평균 소거 카운트가 저장될 수 있도록 하는데 사용된다.
애플리케이션 인터페이스 모듈(704)과의 통신에 부가하여, 시스템 관리 모듈(708)은 데이터 매니저 모듈(712) 및 장치 관리 및 인터페이스 모듈(720)과 통신한다. 시스템 매니저 모듈(708) 및 애플리케이션 인터페이스 모듈(704)과 모두 통신하는 데이터 매니저 모듈(712)은 논리 섹터를 물리적 섹터로 효율적으로 번역하는 섹터 맵핑을 제공하기 위한 기능을 포함한다. 즉, 데이터 매니저 모듈(712)은 논리 블록을 물리적 블록으로 맵핑하기 위해 제공된다. 데이터 매니저 모듈(712)은 또한 운용 시스템과 관련된 기능을 포함하며 시스템 인터페이스 층을 파일하고, 블록내 그룹이 관리될 수 있도록 하며, 이는 공동계류중인 미국특허 출원번호 10/281,855호에 개시되어 있고, 여기서는 전체적으로 참조를 위해 인용된다. 일 실시예에서, 데이터 매니저(712)는 시퀀스외(out-of-sequence) 기록 프로세스가 발생하도록 하기 위해 제공된다.
시스템 매니저 모듈(708), 데이터 매니저(712) 및 데이터 무결성 매니저(716)와 통신하는 장치 관리 및 인터페이스 모듈(720)은 전형적으로 플래시 메모리 인터페이스를 제공하며, 하드웨어 추상화들, 예를 들면, I/O 인터페이스와 관련된 기능을 포함한다. 데이터 무결성 매니저 모듈(716)은 다른 기능들중에서 ECC 핸들링을 제공한다.
비록 본 발명의 몇몇 실시예가 개시되었지만, 본 발명이 본 발명의 정신 또는 범위를 벗어남 없이 다른 특정 형태로 구현될 수 있음을 알 수 있을 것이다. 예를 들어, 성장형 결함을 가진 사용불가능한 블록과 제조상 결함을 가진 사용불가능한 블록이 소거 카운트 블록내 다른 서명을 사용하여 트랙킹되는 것으로 설명되었지만, 다른 형태의 사용불가능한 블록이 임의의 적정 데이터 서명을 사용하여 트랙킹된다. 다시 말해, 소거 카운트 블록내 한 형태의 마킹 또는 서명을 사용하여 성장형 결함을 가진 블록 및 다른 형태의 마킹 또는 서명을 사용하여 제조상 결함을 가진 블록을 트랙킹하는 대신, 이러한 블록은 사용불가능한 블록과 관련된 정보만을 포함하기 위해 제공되는 데이터 구조물을 포함하는 다양한 데이터 구조물내에서 트랙킹될 수 있지만 이에 국한되는 것은 아니다. 이러한 데이터 구조물내에서 성장형 결함을 가진 블록이 식별되고 제조상 결함을 가진 블록이 재생을 위해 성장형 결함을 가진 블록을 쉽게 식별할 수 있도록 식별된다.
일반적으로, 마킹 또는 서명은 블록내에 존재하는 결함의 형태를 식별하기 위해 사용된다. 즉, 비록 '7FFFFF'의 서명이 성장형 결함을 가진 블록을 식별하는 데 사용하기에 적합한 것으로 설명되고, 'FFFFF'의 서명이 제조상 결함을 가진 블록을 식별하는데 사용하기에 적합한 것을 설명되었지만, 서명은 광범위하게 변화된다.
소거 카운트 블록의 헤더의 콘텐츠는 본 발명의 정신 또는 범위를 벗어남없이 광범위하게 변화된다. 예를 들어, 사용불가능한 블록의 전체 수는 헤더에 저장될 필요는 없으며 대신에 다수의 사용불가능한 블록에 속하는 어떠한 정보도 저장되지 않거나 또는 성장형 결함을 가진 다수의 사용불가능한 블록 및 제조상 결함을 가진 다수의 사용불가능한 블록이 분리되어 저장될 수 있다. 선택적으로, 정보를 분할하는 것은 헤더로부터 제거된다.
사용불가능한 블록의 재활용 또는 재생이 성장형 결함을 가진 임의의 사용불가능 블록이 재생될 것인지를 결정하기 위해 성장형 결함을 가진 사용불가능 블록만을 테스트하는 견지에서 설명되었지만, 실질적으로 모든 사용불가능한 블록이 재생에 적합한 임의의 사용불가능한 블록이 존재하는지를 결정하기 위해 테스트된다. 실질적으로 모든 사용불가능한 블록이 테스트되는 실시예에서, 사용불가능한 블록을 식별하기 위해 소거 카운트 블록내 저장된 서명은 성장형 결함을 가진 블록 및 제조상 결함을 가진 블록 모두에 대해 동일하다. 즉, 사용불가능 블록이 재생될 수 있도록 하는 시스템에서, 소거 카운트 블록내 서명은 사용불가능한 블록과 관련된 결함 형태들을 반드시 구별할 필요는 없고 대신에 블록이 사용불가능한 것만을 식별한다.
본 발명의 다양한 방법과 관련된 단계들은 광범위하게 변화된다. 일반적으로, 본 발명의 정신 또는 범위를 벗어남없이 단계들이 추가, 제거, 재정렬 및 변경될 수 있다. 예를 들어, 여분의 블록 풀이 로우로 동작할 때 성장형 결함을 가진 블록을 재생하고자 하는 시도 대신에, 블록이 임의의 시간에 재생된다. 추가로, 성장형 결함을 가진 블록의 처리는 콘텐츠를 가진 블록이 성장형 결함을 가지는지에 대한 결정과 동시에 하나의 블록의 콘텐츠를 다른 블록으로 복사 또는 적어도 복사하고자 하는 시도를 포함한다. 그러므로, 본 실시예들은 예시를 위한 것이지 한정을 위한 것은 아니며, 본 발명은 여기에 개시된 설명에 한정되는 것이 아니라 첨부된 청구항의 범위내에서 변경될 수 있다.
본 발명은 결함 블록으로 식별되는 잠재적으로 사용가능한 블록이 여분의 블록으로서 사용될 수 있도록 하는 효과를 가진다.
또한, 본 발명은 블록이 실제로 사용가능할 때 성장 결함으로 인해서 결함이 생긴 것으로 특징되는 블록을 "재이용"하거나 재활용할 수 있는 효과를 가진다.

Claims (51)

  1. 비휘발성 메모리내에서 여분의 블록들을 식별하기 위한 방법으로서,
    상기 비휘발성 메모리내에서 결함이 있는 것으로 식별된 적어도 하나의 물리적 블록을 테스트하는 단계 ― 상기 테스트는 결함이 있는 것으로 식별된 물리적 블록이 사용가능한지를 결정함 - ;
    결함이 있는 것으로 식별된 상기 물리적 블록이 상기 테스트를 통과할 때를 결정하는 단계; 및
    결함이 있는 것으로 식별된 상기 물리적 블록이 상기 테스트를 통과한 것으로 결정될 때, 상기 결함이 있는 것으로 식별된 상기 물리적 블록을 사용가능한 물리적 블록으로서 식별하는 단계
    를 포함하는 식별방법.
  2. 제 1 항에 있어서,
    상기 결함이 있는 것으로 식별된 적어도 하나의 물리적 블록을 테스트하는 단계는, 상기 결함이 있는 것으로 식별된 적어도 하나의 물리적 블록을 상기 결함이 있는 것으로 식별된 물리적 블록에 비트들을 기록하는 기록 프로세스로 처리하는 단계, 상기 결함이 있는 것으로 식별된 물리적 블록으로부터 상기 비트들을 판독하는 판독 프로세스로 처리하는 단계, 및 상기 결함이 있는 것으로 식별된 상기 물리적 블록으로부터 상기 비트들을 소거하는 소거 프로세스로 처리하는 단계 중 적어도 하나의 단계를 포함하는 것을 특징으로 하는 식별방법.
  3. 제 1 항에 있어서,
    상기 물리적 블록을 사용가능한 물리적 블록으로서 식별하는 단계는,
    상기 결함이 있는 것으로 식별된 상기 물리적 블록을 제 1 여분의 블록으로 식별하는 단계; 및
    상기 비휘발성 메모리와 연관된 여분의 블록들의 풀(pool)에 상기 제 1 여분의 블록을 추가하는 단계
    를 포함하며, 상기 제 1 여분의 블록은 비트들의 저장시 사용되도록 여분의 블록들의 풀로부터 얻어지도록 구성되는 것을 특징으로 하는 식별방법.
  4. 제 1 항에 있어서,
    상기 비휘발성 메모리내에 적어도 하나의 추가 여분의 블록이 필요할 때를 결정하는 단계; 및
    상기 적어도 하나의 추가 여분의 블록이 필요하다고 결정될 때, 상기 물리적 블록이 결함이 있는 것으로 식별하는 단계
    를 더 포함하는 것을 특징으로 하는 식별방법.
  5. 제 4 항에 있어서,
    상기 물리적 블록이 결함이 있는 것으로 식별하는 단계는 상기 비휘발성 메모리와 연관된 데이터 구조를 스캐닝하는 단계를 포함하며, 상기 데이터 구조는 결함이 있는 것으로 식별된 상기 물리적 블록이 결함이 있다고 표시하도록 구성된 비트들을 포함하도록 구성되는 것을 특징으로 하는 식별방법.
  6. 제 5 항에 있어서,
    상기 데이터 구조는 결함이 있는 것으로 식별된 상기 물리적 블록이 공장 결함을 갖는 경우를 식별하는 제 1 비트들의 세트, 및 결함이 있는 것으로 식별된 상기 물리적 블록이 성장 결함을 갖는 경우를 식별하는 제 2 비트들의 세트 중 하나를 포함하도록 구성되는 것을 특징으로 하는 식별방법.
  7. 제 5 항에 있어서,
    상기 데이터 구조는 소거 카운트 블록인 것을 특징으로 하는 식별방법.
  8. 제 1 항에 있어서,
    결함이 있는 것으로 식별된 상기 물리적 블록은 성장 결함을 포함하는 것을 특징으로 하는 식별방법.
  9. 제 1 항에 있어서,
    상기 비휘발성 메모리는 플래시 메모리인 것을 특징으로 하는 식별방법.
  10. 제 9 항에 있어서,
    상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 것을 특징으로 하는 식별방법.
  11. 비휘발성 메모리내에서 사용불가능한 물리적 저장 엘리먼트들을 관리하는 방법으로서,
    제 1 물리적 저장 엘리먼트가 결함이 있는 것으로 식별되는지를 결정하는 단계;
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 사용가능한 물리적 저장 엘리먼트들의 풀(pool)로부터 상기 제 1 물리적 저장 엘리먼트를 제거하는 단계; 및
    상기 비휘발성 메모리의 데이터 구조에 제 1 서명을 저장하는 단계
    를 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 것을 식별하도록 구성되는, 관리방법.
  12. 제 11 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있는지를 결정하는 단계는, 상기 제 1 물리적 저장 엘리먼트가 성공적으로 판독될 수 없는지를 결정하는 단계, 상기 제 1 물리적 저장 엘리먼트가 성공적으로 기록될 수 없는지를 결정하는 단계, 및 상기 제 1 물리적 저장 엘리먼트가 성공적으로 소거될 수 없는지를 결정하는 단계중 적어도 하나의 단계를 포함하는 것을 특징으로 하는 관리방법.
  13. 제 12 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 상기 제 1 물리적 저장 엘리먼트는 성장 결함을 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 상기 성장 결함이 있는 것으로 식별되도록 구성되는 것을 특징으로 하는 관리방법.
  14. 제 11 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있는지를 결정하는 단계는, 상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 것을 표시하도록 비트들이 구성되는지를 결정하기 위해 상기 제 1 물리적 저장 엘리먼트에 포함된 비트들을 판독하는 단계를 포함하는 것을 특징으로 하는 관리방법.
  15. 제 14 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 상기 제 1 물리적 저장 엘리먼트는 공장 결함을 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 상기 공장 결함을 갖는 것으로 식별되도록 구성되는 것을 특징으로 하는 관리방법.
  16. 제 11 항에 있어서,
    상기 데이터 구조는 상기 사용가능한 물리적 저장 엘리먼트들과 연관된 비트들을 포함하도록 구성되는 것을 특징으로 하는 관리방법.
  17. 제 11 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트를 식별하기 위하여, 상기 비휘발성 메모리내의 모든 물리적 엘리먼트들을 스캐닝하는 단계를 더 포함하는 것을 특징으로 하는 관리방법.
  18. 제 11 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트는 제 1 물리적 블록이며, 상기 사용가능한 물리적 저장 엘리먼트들은 사용가능한 물리적 블록들인 것을 특징으로 하는 관리방법.
  19. 제 11 항에 있어서,
    상기 비휘발성 메모리는 플래시 메모리인 것을 특징으로 하는 관리방법.
  20. 제 19 항에 있어서,
    상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 것을 특징으로 하는 관리방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 비휘발성 메모리 시스템으로서,
    비휘발성 메모리;
    상기 비휘발성 메모리와 연관된 적어도 하나의 결함이 있는 것으로 식별된 물리적 블록을 테스트하는 수단 ― 상기 테스트는 상기 결함이 있는 것으로 식별된 물리적 블록이 사용가능한지를 결정하도록 구성됨 ―;
    상기 결함이 있는 것으로 식별된 물리적 블록이 상기 테스트를 통과할 때를 결정하는 수단;
    상기 결함이 있는 것으로 식별된 물리적 블록이 상기 테스트를 통과한 것으로 결정될 때, 상기 결함이 있는 것으로 식별된 물리적 블록을 사용가능한 물리적 블록으로 식별하는 수단
    을 포함하는, 비휘발성 메모리 시스템.
  37. 제 36 항에 있어서,
    상기 결함이 있는 것으로 식별된 물리적 블록은 성장결함을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  38. 제 36 항에 있어서,
    상기 비휘발성 메모리는 플래시 메모리인 것을 특징으로 하는 비휘발성 메모리 시스템.
  39. 제 38 항에 있어서,
    상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 것을 특징으로 하는 비휘발성 메모리 시스템.
  40. 비휘발성 메모리 시스템으로서,
    비휘발성 메모리;
    제 1 물리적 저장 엘리먼트가 결함이 있는지를 결정하는 수단;
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 사용가능한 물리적 저장 엘리먼트들의 풀로부터 상기 제 1 물리적 저장 엘리먼트를 제거하는 수단; 및
    상기 비휘발성 메모리의 데이터 구조에 제 1 서명을 저장하는 수단
    을 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 것을 표시하도록 구성되는, 비휘발성 메모리 시스템.
  41. 제 40 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있는지를 결정하는 수단은, 상기 제 1 물리적 저장 엘리먼트가 성공적으로 판독될 수 없는지를 결정하는 수단, 상기 제 1 물리적 저장 엘리먼트가 성공적으로 기록될 수 없는지를 결정하는 수단, 및 상기 제 1 물리적 저장 엘리먼트가 성공적으로 소거될 수 없는지를 결정하는 수단중 적어도 하나의 수단을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  42. 제 41 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 상기 제 1 물리적 저장 엘리먼트는 성장 결함을 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 성장 결함을 가지는 것으로 식별되도록 구성되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  43. 제 40 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있는지를 결정하는 수단은 비트들이 상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 것을 표시하도록 구성되었는지를 결정하기 위해 상기 제 1 물리적 저장 엘리먼트에 포함된 비트 판독 수단을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  44. 제 43 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트가 결함이 있다는 결정에 응답하여, 상기 제 1 물리적 저장 엘리먼트는 공장 결함을 포함하며, 상기 제 1 서명은 상기 제 1 물리적 저장 엘리먼트가 공장 결함을 가지는 것으로 식별하도록 구성되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  45. 제 40 항에 있어서,
    상기 제 1 물리적 저장 엘리먼트는 제 1 물리적 블록이며, 상기 사용가능한 물리적 저장 엘리먼트들은 사용가능한 물리적 블록들인 것을 특징으로 하는 비휘발성 메모리 시스템.
  46. 제 40 항에 있어서,
    상기 비휘발성 메모리는 플래시 메모리인 것을 특징으로 하는 비휘발성 메모리 시스템.
  47. 제 46 항에 있어서,
    상기 플래시 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 것을 특징으로 하는 비휘발성 메모리 시스템.
  48. 비휘발성 메모리 시스템에서 블록들을 관리하는 방법으로서,
    상기 비휘발성 메모리 시스템내의 비휘발성 메모리의 제 1 물리적 블록이 공장결함을 갖는지를 결정하는 단계;
    상기 제 1 물리적 블록이 공장 결함을 갖는다는 결정에 응답하여, 상기 제 1 물리적 블록이 공장 결함을 가지는 것으로 식별되는 제 1 서명을 상기 비휘발성 메모리와 연관된 데이터 구조에 저장하는 단계;
    상기 제 1 물리적 블록이 공장 결함을 갖는다는 결정에 응답하여, 상기 제 1 물리적 블록이 정보를 저장하는데 이용되는 것을 방지하는 단계;
    상기 비휘발성 메모리내의 제 2 물리적 블록이 성장 결함을 갖는지를 결정하는 단계;
    상기 제 2 물리적 블록이 상기 성장 결함을 갖는다는 결정에 응답하여, 상기 제 2 물리적 블록이 성장 결함을 가지는 것으로 식별되는 제 2 서명을 상기 데이터 구조에 저장하는 단계; 및
    상기 제 1 물리적 블록이 상기 성장 결함을 갖는다는 결정에 응답하여, 상기 제 2 물리적 블록이 정보를 저장하는데 이용되는 것을 방지하는 단계
    를 포함하는, 관리방법.
  49. 제 48 항에 있어서,
    상기 비휘발성 메모리내에서 여분의 블록이 필요한지를 결정하는 단계;
    상기 제 2 물리적 블록이 사용가능한지를 결정하기 위하여, 상기 제 2 물리적 블록을 테스트하는 단계; 및
    상기 제 2 물리적 블록이 사용가능하다는 결정에 응답하여, 상기 제 2 물리적 블록을 상기 여분의 블록으로서 지정하는 단계
    를 더 포함하는 것을 특징으로 하는 관리방법.
  50. 제 49 항에 있어서,
    상기 제 2 서명을 배치함으로써 상기 제 2 물리적 블록이 이전에 결정된 성장 결함을 식별하도록 상기 데이터 구조를 스캐닝하는 단계를 더 포함하는 것을 특징으로 하는 관리방법.
  51. 제 48 항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리 및 MLC NAND 플래시 메모리중 하나인 것을 특징으로 하는 관리방법.
KR1020030075158A 2002-10-28 2003-10-27 비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치 KR100906519B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42196502P 2002-10-28 2002-10-28
US60/421,965 2002-10-28

Publications (2)

Publication Number Publication Date
KR20040038713A KR20040038713A (ko) 2004-05-08
KR100906519B1 true KR100906519B1 (ko) 2009-07-07

Family

ID=32108157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030075158A KR100906519B1 (ko) 2002-10-28 2003-10-27 비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US7171536B2 (ko)
EP (1) EP1418502A3 (ko)
JP (2) JP4361774B2 (ko)
KR (1) KR100906519B1 (ko)
CN (1) CN100589203C (ko)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235915B (en) * 2003-03-13 2005-07-11 Ritek Corp Device and method for recording the status of block of a nonvolatile memory
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
CN1728284B (zh) * 2004-07-26 2012-08-22 深圳市朗科科技股份有限公司 一种扫描闪存盘的闪存芯片的方法
US7464306B1 (en) * 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
EP1630657A1 (en) * 2004-08-30 2006-03-01 STMicroelectronics S.r.l. Embedded storage device with integrated data-management functions and storage system incorporating it
JP4192129B2 (ja) 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
US7282374B1 (en) * 2004-11-03 2007-10-16 Advanced Micro Devices, Inc. Method and apparatus for comparing device and non-device structures
US7246195B2 (en) * 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
KR100746289B1 (ko) * 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7500081B2 (en) * 2005-09-30 2009-03-03 Intel Corporation Power-up implementation for block-alterable memory with zero-second erase time
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
US7441068B2 (en) * 2006-01-06 2008-10-21 Phison Electronics Corp. Flash memory and method for utilizing the same
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US7466600B2 (en) 2006-08-03 2008-12-16 Micron Technology, Inc. System and method for initiating a bad block disable process in a non-volatile memory
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7561482B2 (en) * 2006-09-07 2009-07-14 Sandisk Corporation Defective block isolation in a non-volatile memory system
KR100781976B1 (ko) * 2006-11-02 2007-12-06 삼성전자주식회사 플래시 메모리를 구비하는 반도체 메모리 장치에서의 블록상태 정보 제공방법
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
DE602008002849D1 (de) * 2007-04-20 2010-11-18 St Microelectronics Sa Kontrolle der Integrität eines prozessorexternen Speichers
CN101369463B (zh) * 2007-08-17 2012-12-12 深圳芯邦科技股份有限公司 闪存检测分类方法
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
CN101527162A (zh) * 2008-03-07 2009-09-09 深圳市朗科科技股份有限公司 卡槽式闪存硬盘
WO2009124320A1 (en) 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US7996736B2 (en) * 2008-10-26 2011-08-09 Sandisk 3D Llc Bad page marking strategy for fast readout in memory
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8112682B2 (en) * 2009-04-23 2012-02-07 Sandisk Il Ltd Method and device for bad-block testing
KR101624969B1 (ko) * 2009-05-26 2016-05-31 삼성전자주식회사 메모리 시스템 및 그것의 배드 블록 관리 방법
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110040924A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
JP5999645B2 (ja) * 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
EP2476079A4 (en) * 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
KR20110060493A (ko) * 2009-11-30 2011-06-08 삼성전자주식회사 메모리 장치의 소거 카운트 관리 방법 및 장치
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8429371B2 (en) * 2010-03-23 2013-04-23 Avaya Inc. System and method for robust and efficient free chain management
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9092337B2 (en) 2011-01-31 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8560922B2 (en) 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
TWI473103B (zh) * 2011-09-14 2015-02-11 威剛科技股份有限公司 快閃記憶體儲存裝置及其不良儲存區域的判定方法
US8959416B1 (en) * 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
US8700961B2 (en) 2011-12-20 2014-04-15 Sandisk Technologies Inc. Controller and method for virtual LUN assignment for improved memory bank mapping
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9128822B2 (en) * 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
CN102880554B (zh) * 2012-10-09 2013-12-25 邹粤林 提高闪存芯片存储效率的方法、闪存存储系统及其控制器
TWI501249B (zh) * 2012-11-14 2015-09-21 Winbond Electronics Corp 晶片上之反及閘快閃記憶體及其損壞區塊管理方法
CN103871447B (zh) * 2012-12-14 2017-03-01 华邦电子股份有限公司 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US9324450B2 (en) 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9804922B2 (en) 2014-07-21 2017-10-31 Sandisk Technologies Llc Partial bad block detection and re-use using EPWR for block based architectures
US9442798B2 (en) 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10146604B2 (en) * 2016-08-23 2018-12-04 Oracle International Corporation Bad block detection and predictive analytics in NAND flash storage devices
TWI687933B (zh) * 2017-03-03 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及其區塊釋放方法
US10387281B2 (en) 2017-08-30 2019-08-20 Micron Technology, Inc. Flash memory block retirement policy
KR20220103205A (ko) 2017-12-29 2022-07-21 마이크론 테크놀로지, 인크. 정정 불가능 ecc
CN109343800B (zh) * 2018-09-30 2021-11-12 深圳市得一微电子有限责任公司 存储设备管理方法、装置及可读存储介质
US11183267B2 (en) 2019-07-12 2021-11-23 Micron Technology, Inc. Recovery management of retired super management units
CN111179997B (zh) * 2019-12-26 2021-09-14 武汉精鸿电子技术有限公司 一种半导体存储器测试数据的存储方法及装置
KR102227196B1 (ko) * 2020-08-14 2021-03-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
CN114968066A (zh) * 2021-02-19 2022-08-30 瑞昱半导体股份有限公司 用于快闪存储器中进行故障区块管理的方法与装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010003416A (ko) * 1999-06-23 2001-01-15 김영환 플래쉬 메모리의 프리프로그램 방법
JP2001319493A (ja) 2000-05-02 2001-11-16 Advantest Corp メモリ試験方法・メモリ試験装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
EP0618535B1 (en) 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US5303219A (en) * 1991-09-09 1994-04-12 International Business Machines Corporation Reclamation of dust contaminated sectors in optical disk apparatus
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5377146A (en) * 1993-07-23 1994-12-27 Alliance Semiconductor Corporation Hierarchical redundancy scheme for high density monolithic memories
JP3263250B2 (ja) * 1994-08-24 2002-03-04 株式会社東芝 液晶表示装置
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6412089B1 (en) * 1999-02-26 2002-06-25 Compaq Computer Corporation Background read scanning with defect reallocation
JP2000285001A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 半導体フラッシュメモリ装置及びその制御方法
JP4165990B2 (ja) * 1999-12-20 2008-10-15 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
KR100644602B1 (ko) 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6563732B2 (en) * 2001-08-02 2003-05-13 Stmicroelectronics, Inc. Redundancy circuit and method for flash memory devices
US6759257B2 (en) * 2001-11-13 2004-07-06 Fujitsu Limited Structure and method for embedding capacitors in z-connected multi-chip modules

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010003416A (ko) * 1999-06-23 2001-01-15 김영환 플래쉬 메모리의 프리프로그램 방법
JP2001319493A (ja) 2000-05-02 2001-11-16 Advantest Corp メモリ試験方法・メモリ試験装置

Also Published As

Publication number Publication date
EP1418502A3 (en) 2009-12-09
US7171536B2 (en) 2007-01-30
CN100589203C (zh) 2010-02-10
JP2009282991A (ja) 2009-12-03
US20040080998A1 (en) 2004-04-29
EP1418502A2 (en) 2004-05-12
JP4361774B2 (ja) 2009-11-11
KR20040038713A (ko) 2004-05-08
CN1512511A (zh) 2004-07-14
JP2004152299A (ja) 2004-05-27

Similar Documents

Publication Publication Date Title
KR100906519B1 (ko) 비-휘발성 메모리 시스템에서 사용불가능한 블록을관리하기 위한 방법 및 장치
US5200959A (en) Device and method for defect handling in semi-conductor memory
EP1424631B1 (en) Hybrid implementation for error correction codes within a non-volatile memory system
KR101004876B1 (ko) 비휘발성 메모리 시스템에서 사용하기 위한 전원 관리 블록
US7680977B2 (en) Page and block management algorithm for NAND flash
US7818492B2 (en) Source and shadow wear-leveling method and apparatus
US6831865B2 (en) Maintaining erase counts in non-volatile storage systems
KR100910680B1 (ko) 소거 카운트 블록을 유지하는 방법 및 장치
JP5297195B2 (ja) 再対象化可能なメモリセル冗長性を備えたメモリ
US20040103241A1 (en) Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US20140289588A1 (en) Memory system
JP2002508862A (ja) フラッシュメモリ内のブロックにおける移動セクタ
JP2007018499A (ja) 記憶装置
KR101468432B1 (ko) 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술
JP2010267290A (ja) 共通論理ブロックに関連付けられている物理ブロックを解決するための方法および装置
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
CN114385084B (zh) 坏块表继承方法及其存储装置
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2003263894A (ja) 不揮発性半導体メモリ装置の制御方法
JP2006040484A (ja) フラッシュメモリモジュール
KR20010091565A (ko) 플래시 메모리 구조 및 그 관리 방법

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20130604

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee