KR20120098068A - 플래시 메모리 배드 블록 관리 장치 및 방법 - Google Patents

플래시 메모리 배드 블록 관리 장치 및 방법 Download PDF

Info

Publication number
KR20120098068A
KR20120098068A KR1020110017767A KR20110017767A KR20120098068A KR 20120098068 A KR20120098068 A KR 20120098068A KR 1020110017767 A KR1020110017767 A KR 1020110017767A KR 20110017767 A KR20110017767 A KR 20110017767A KR 20120098068 A KR20120098068 A KR 20120098068A
Authority
KR
South Korea
Prior art keywords
block
replacement
bad
target block
flash memory
Prior art date
Application number
KR1020110017767A
Other languages
English (en)
Inventor
김홍석
민상렬
Original Assignee
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단 filed Critical 서울대학교산학협력단
Priority to KR1020110017767A priority Critical patent/KR20120098068A/ko
Publication of KR20120098068A publication Critical patent/KR20120098068A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

플래시 메모리 배드 블록 관리 장치 및 방법이 제공된다. 플래시 메모리 배드 블록 관리 장치는 대상 블록이 정상 블록인지 여부를 확률적으로 판단할 수 있다. 플래시 메모리 배드 블록 장치는 플래시 메모리에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 상기 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 이용하여 대상 블록이 정상 블록인지 여부를 판단할 수 있다.

Description

플래시 메모리 배드 블록 관리 장치 및 방법{METHOD AND APPARATUS FOR MANAGING BAD BLOCK OF FLASH MEMORY}
본 발명은 플래시 메모리의 배드 블록을 관리하는 장치 및 방법에 관한 것이다.
플래시 메모리에는 정상적인 동작이 보장되지 않는 배드 블록이 존재할 수 있다. 배드 블록의 종류로, 초기 배드 블록(Initial bad block) 및 동작중 배드 블록(Run-time bad block)이 존재한다. 초기 배드 블록은 플래시 메모리 칩이 출하되었을 때부터 결함이 있는 블록이다. 초기 배드 블록은 해당 블록의 특정 페이지에 해당 블록이 배드 블록임을 나타내는 정보를 포함한다. 동작중 배드 블록은 출하 시에는 정상 블록이었으나 블록의 마모 현상 등으로 결함을 갖게 된 블록이다.
본 발명의 실시예들은 블록 필터 또는 블록 상태 정보 캐시를 이용하여 배드 블록인지 여부 및 해당 교체 정보를 보다 효율적으로 찾는 플래시 메모리의 배드 블록 관리 장치 및 방법을 제공한다.
본 발명의 일 실시예에 따른 플래시 메모리의 배드 블록 관리 장치는 외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 제어부; 상기 대상 블록이 정상 블록인지 여부를 확률적으로 판단하는 블록 필터; 및 상기 플래시 메모리의 배드 블록들 및 대체 블록들의 매핑(mapping) 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블을 포함하고, 상기 제어부는 상기 블록 필터의 판단 결과에 따라, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색한다.
상기 제어부는 상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
상기 제어부는 상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
상기 블록 필터는 축약된 블록 상태 정보를 포함할 수 있다.
상기 블록 필터는 상기 대상 블록에 대한 판단 결과로 정상 블록, 배드 블록 또는 알 수 없음 중 어느 하나를 출력할 수 있다.
상기 제어부는 상기 블록 필터가 상기 대상 블록이 정상 블록이라고 판단하지 않은 경우, 상기 배드 블록 테이블에서 상기 대상 블록의 교체 정보를 검색할 수 있다.
상기 플래시 메모리에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 상기 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 캐싱하는 블록 상태 정보 캐시를 더 포함하고, 상기 제어부는 상기 블록 필터가 상기 대상 블록을 정상 블록이 아니라고 판단한 경우, 상기 블록 상태 정보 캐시에서 상기 대상 블록과 관련된 정보를 검색할 수 있다.
상기 블록 상태 정보 캐시는 상기 플래시 메모리에 포함되는 블록들로 최근에 접근된 순서를 기초로 상기 블록 상태 정보 및 대체 블록 정보를 업데이트할 수 있다.
상기 제어부는 상기 블록 상태 정보 캐시에 포함된 상기 대상 블록과 관련된 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
상기 제어부는 상기 블록 상태 정보 캐시에 상기 대상 블록과 관련된 정보가 존재하지 않는 경우, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리의 배드 블록 관리 장치는 외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 제어부; 상기 플래시 메모리에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 상기 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 캐싱하는 블록 상태 정보 캐시; 및 상기 플래시 메모리의 배드 블록들과 대체 블록들의 매핑 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블을 포함하고, 상기 제어부는 상기 블록 상태 정보 캐시에 상기 대상 블록과 관련된 정보가 존재하지 않는 경우, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색한다.
상기 블록 상태 정보 캐시는 상기 플래시 메모리에 포함되는 블록들로 최근에 접근된 순서를 기초로 상기 블록 상태 정보 및 대체 블록 정보를 업데이트할 수 있다.
상기 제어부는 상기 블록 상태 정보 캐시에 포함된 상기 대상 블록과 관련된 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
상기 제어부는 상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
상기 제어부는 상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리할 수 있다.
본 발명의 일 실시예에 따른 플래시 메모리의 배드 블록 관리 방법은 외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 단계; 블록 필터를 이용하여 상기 대상 블록이 정상 블록인지 여부를 판단하는 단계; 및 상기 판단 결과에 따라, 상기 플래시 메모리의 배드 블록들과 대체 블록들의 매핑 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색하는 단계를 포함한다.
상기 배드 블록 관리 방법은 상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 단계를 더 포함할 수 있다.
상기 배드 블록 관리 방법은 상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 단계를 더 포함할 수 있다.
상기 블록 필터는 축약된 블록 상태 정보를 포함하고 상기 대상 블록에 대한 판단 결과로 정상 블록, 배드 블록 또는 알 수 없음 중 어느 하나를 출력할 수 있다.
상기 대상 블록에 대한 교체 정보를 검색하는 단계는 상기 블록 필터가 상기 대상 블록이 정상 블록이라고 판단하지 않은 경우, 상기 배드 블록 테이블에서 상기 대상 블록의 교체 정보를 검색하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 배드 블록 관리 장치는 블록 상태를 확률적으로 판단하는 블록 필터를 이용함으로써 대상 블록이 정상 블록인지 여부를 빠르게 판단할 수 있다.
본 발명의 일 실시예에 따른 배드 블록 관리 장치는 일부 블록들의 블록 상태 정보 및 일부 블록들 중 배드 블록들에 대한 대체 정보를 포함하는 블록 상태 정보 캐시를 이용함으로써, 최근 또는 자주 접근되는 블록의 상태를 신속하게 판단할 수 있다.
본 발명의 일 실시예에 따른 배드 블록 관리 장치는 블록 필터 및 블록 상태 정보 캐시를 이용함으로써 배드 블록의 교체 정보를 검색하는 데에 소요되는 리소스를 줄일 수 있고, 배드 블록인지 여부 및 교체 정보를 보다 효율적으로 찾을 수 있다.
도 1은 배드 블록 관리 방법의 예를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 배드 블록 관리 장치를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 블록 필터를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 블록 상태 정보 캐시를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 교체 정보 테이블을 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 배드 블록 관리 방법을 나타낸 동작 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 실시예를 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 바람직한 실시예를 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 배드 블록 관리 방법의 예를 도시한 도면이다.
도 1을 참조하면, 플래시 메모리 컨트롤러는 접근 명령이 배드 블록에 관한 것이면, 배드 블록에 대응하는 대체 블록을 이용하여 접근 명령을 처리할 수 있다. 대체 블록은 배드 블록을 대신하기 위한 정상 블록이다.
보다 구체적으로, 플래시 메모리 컨트롤러는 전체 블록들 중에서 배드 블록들 및 배드 블록들 각각에 대응하는 대체 블록의 매핑 관계를 나타내는 교체 정보를 포함하는 테이블을 포함할 수 있다. 그리고 플래시 메모리 컨트롤러는 외부 호스트로부터 대상 블록에 대한 접근 명령을 수신하는 경우, 테이블을 검색하여 대상 블록이 배드 블록인지 파악한다. 그리고 대상 블록이 배드 블록인 경우, 플래시 메모리 컨트롤러는 대상 블록에 대응하는 교체 정보를 이용하여 해당 대체 블록에 대해 접근 명령을 처리한다. 대상 블록이 정상 블록인 경우, 플래시 메모리 컨트롤러는 정상 블록을 이용하여 접근 명령을 처리한다.
도 1과 같이, 외부 호스트로부터 블록 2의 페이지 3에 대한 프로그램(program) 명령과 블록 5에 대한 삭제(erase) 명령이 수신된 경우, 플래시 메모리 컨트롤러는 테이블을 통해 블록 2는 배드 블록이고 블록 2에 대응하는 대체 블록이 블록 10임을 파악한다. 그리고 블록 5는 테이블에 없으므로 정상 블록임을 인지한다.
따라서 플래시 메모리 컨트롤러는 접근 명령을 블록 2가 아닌 블록 10을 이용하여 처리한다. 삭제 명령은 블록 5에 대하여 수행된다.
이때, 배드 블록의 수가 많아질수록 테이블에 포함되는 교체 정보의 양이 많아질 수 있다. 그리고 배드 블록의 수가 많은 경우, 위와 같은 방법은 교체 정보 검색에 많은 시간이 소요되어 스토리지 시스템의 성능을 저하시킬 수 있다. 특히 SSD(Solid State Disk)와 같은 대용량 플래시 메모리 저장 장치의 경우 필요한 교체 정보의 양이 많을 수 있으므로, 보다 효율적인 배드 블록 관리 방법 및 장치가 필요하다.
도 2는 본 발명의 일 실시예에 따른 배드 블록 관리 장치를 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 배드 블록 관리 장치(220)는 제어부(221), 블록 필터(222), 블록 상태 정보 캐시(223) 및 교체 정보 테이블(224)을 포함한다. 배드 블록 관리 장치는 플래시 메모리 컨트롤러에 포함될 수 있다.
제어부(221)는 외부 호스트 시스템(210)으로부터 대상 블록에 대한 접근 명령을 수신한다. 접근 명령은 읽기, 쓰기 또는 삭제와 같은 대상 블록과 관련된 명령들일 수 있다. 그리고 제어부(2221)는 블록 필터(222) 및 블록 상태 정보 캐시(223)을 제어하고, 교체 정보 테이블(224)를 관리한다.
블록 필터(222)는 대상 블록이 정상 블록인지 여부를 확률적으로 판단한다. 제어부(221)는 블록 필터를 통해 대상 블록이 정상 블록임을 확인하면, 교체 정보 테이블을 검색하지 않고 접근 명령을 처리할 수 있다. 그러나, 대상 블록이 배드 블록이거나 상태 파악이 불가능한 블록인 경우, 제어부는 블록 상태 정보 캐시(223)에서 대상 블록에 대한 대체 블록을 나타내는 교체 정보를 검색한다.
블록 상태 정보 캐시(223)는 플래시 메모리(230)에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 캐싱한다. 즉, 블록 상태 정보 캐시(223)는 최근에 접근된 블록들의 교체 정보를 유지하는 캐시(cache)이다. 제어부(221)는 블록 필터(222)가 대상 블록을 정상 블록이라고 판단하지 않은 경우, 교체 정보 테이블(224)을 검색하기 전에 블록 상태 정보 캐시(223)를 이용하여 대상 블록의 상태를 파악할 수 있다. 대상 블록이 호스트 시스템(210)에 의해 최근에 접근된 적이 있다면 블록 상태 정보 캐시(223)에 대상 블록의 상태 정보가 있을 것이다. 그러면, 제어부(221)는 교체 정보 테이블(224)을 검색하지 않고 보다 신속하게 대상 블록의 상태 정보 및 교체 정보를 획득할 수 있다. 그리고 제어부(221)는 블록 상태 정보 캐시(223)에서 확인된 대상 블록의 상태 정보 및 교체 정보를 이용하여 접근 명령을 처리할 수 있다. 블록 상태 정보 캐시(223)에 대상 블록에 대한 정보가 존재하지 않는 경우, 제어부(221)는 교체 정보 테이블(224)에서 대상 블록의 교체 정보를 검색할 수 있다.
제어부(221)는 교체 정보 테이블(224)에서의 대상 블록에 대한 정보 검색 결과, 대상 블록이 정상 블록이면(즉, 교체 정보 테이블(224)에 대상 블록에 대한 정보가 없으면) 대상 블록의 주소를 이용하여 접근 명령을 처리한다. 그리고 제어부(221)는 교체 정보 테이블(225)에 대상 블록에 대한 교체 정보가 존재하는 경우, 교체 정보를 이용하여 접근 명령을 처리한다. 즉, 제어부(221)는 대상 블록 대신 대체 블록에 접근 명령을 처리한다.
본 발명의 다른 실시예에 따른 배드 블록 관리 장치(220)는 교체 상태 정보 캐시(223) 없이, 제어부(221), 블록 필터(222) 및 교체 정보 테이블(224)를 포함하도록 구성될 수 있다. 이 경우, 제어부(221)는 블록 필터(222)를 통해 대상 블록이 정상 블록인지 확인하고, 확인 결과에 따라 교체 정보 테이블(224)을 검색할 수 있다.
본 발명의 또 다른 실시예에 따른 배드 블록 관리 장치(220)는 블록 필터(222) 없이, 제어부(221), 블록 상태 정보 캐시(223) 및 교체 정보 테이블(224)을 포함할 수 있다. 이 경우, 제어부(221)는 호스트 시스템(210)으로부터 대상 블록에 대한 접근 명령을 수신하면, 블록 상태 정보 캐시(223)에서 대상 블록에 대한 상태 정보를 검색하고, 검색 결과에 따라 교체 정보 테이블(224)에서 대상 블록의 교체 정보를 검색할 수 있다.
도 3은 본 발명의 일 실시예에 따른 블록 필터를 도시한 도면이다.
도 3을 참조하면, 블록 필터는 대상 블록이 정상 블록인지 여부를 미리 정해진 알고리즘에 따라 확률적으로 판단하는 필터이다. 블록 필터는 블록들의 상태에 관한 축약된 정보를 포함할 수 있다. 블록들의 상태에 관한 축약된 정보는 통계적 정보일 수 있다.
블록 필터는 대상 블록에 대한 식별 정보(예를 들면, 블록 번호)를 입력 받아, 대상 블록의 상태를 판단한다. 그리고 블록 필터는 판단 결과로서 '정상 블록', 배드 블록' 또는 '알 수 없음' 중 어느 하나를 출력한다. 블록 필터는 블록 상태를 확률로 출력하는 블룸 필터(bloom filter)를 이용할 수 있다. 블록 필터의 판단 속도는 교체 정보 테이블의 검색 속도보다 더 빠를 수 있다.
'정상 블록'이 출력된 경우, 제어부는 대상 블록의 주소를 이용하여 접근 명령을 처리한다.
'배드 블록' 또는 '알 수 없음'이 출력된 경우, 제어부는 블록 상태 정보 캐시 또는 교체 정보 테이블을 이용하여 대상 블록이 정상 블록인지 배드 블록인지 여부를 파악할 수 있다.
또한 블록 필터는 블록 번호 및 블록 상태를 포함하는 블록 상태 정보 갱신 데이터를 통해 축약된 블록 상태 정보를 업데이트함으로써, 블록들의 상태가 변화하는 것을 반영할 수 있다.
도 4는 본 발명의 일 실시예에 따른 블록 상태 정보 캐시를 도시한 도면이다.
도 4를 참조하면, 블록 상태 정보 캐시는 최근에 접근된 블록들의 상태 정보 및 교체 정보를 유지하는 캐시이다. 즉, 블록 상태 정보 캐시는 플래시 메모리에 포함되는 전체 블록들 중 최근에 접근된 순서에 따라 일부 블록들에 대한 블록 상태 정보 및 일부 블록들 중 배드 블록들 각각에 대한 대체 블록 정보를 캐싱한다.
예를 들어, 블록 상태 정보 캐시는 정상 블록 상태 목록 및 배드 블록 상태 목록을 포함할 수 있다. 정상 블록 상태 목록은 최근에 접근된 일부 블록들 중 정상 블록들의 목록(블록 번호 a1 내지 블록 번호 am)을 나타낸다. 배드 블록 상태 목록은 최근에 접근된 일부 블록들 중 배드 블록들의 목록(블록 번호 b1 내지 블록 번호 bn) 및 배드 블록들 각각에 대응하는 대체 블록들의 목록(블록 번호 c1 내지 블록 번호 cn)을 나타낸다. 그리고 정상 블록 상태 목록 및 배드 블록 상태 목록은 최근에 접근된 순서를 기초로 업데이트된다.
블록 상태 정보 캐시에 대상 블록에 대한 정보가 있는 경우, 제어부는 이를 이용하여 접근 명령을 처리할 수 있다. 구체적으로, 정상 블록 상태 목록에 대상 블록의 블록 번호가 있는 경우, 제어부는 대상 블록의 주소를 이용하여 접근 명령을 처리할 수 있다. 배드 블록 상태 목록에 대상 블록의 번호가 있는 경우, 제어부는 대상 블록에 대응하는 대체 블록에 대한 주소를 이용하여 접근 명령을 처리할 수 있다.
반면, 블록 상태 정보 캐시에 대상 블록에 대한 정보가 없는 경우, 제어부는 교체 정보 테이블에서 대상 블록에 대한 교체 정보를 검색한다.
블록 상태 정보 캐시의 검색 속도는 교체 정보 테이블의 검색 속도보다 더 빠를 수 있다. 그리고 보유하는 정보의 양 또한 블록 상태 정보 캐시가 더 적다. 따라서 블록 상태 정보 캐시를 이용하면 보다 빠르게 대상 블록의 상태 및 교체 정보가 획득될 수 있다.
도 5는 본 발명의 일 실시예에 따른 교체 정보 테이블을 도시한 도면이다.
도 5를 참조하면, 교체 정보 테이블은 플래시 메모리에 포함되는 블록들 중 배드 블록들(d1 내지 dk)과 대체 블록들(e1 내지 ek)의 매핑 관계를 나타내는 교체 정보를 포함하는 테이블이다. 즉, 교체 정보 테이블은 플래시 메모리에 포함되는 모든 배드 블록들에 대한 교체 정보를 포함한다. 따라서 교체 정보 테이블에 교체 정보가 없는 블록은 정상 블록이다.
제어부는 교체 정보 테이블에서 대상 블록에 대한 교체 정보를 검색할 수 있다. 대상 블록에 대한 교체 정보가 없는 경우는 대상 블록이 정상 블록임을 나타내는 것이므로 제어부는 대상 블록의 주소를 이용하여 접근 명령을 처리한다. 대상 블록에 대한 교체 정보가 있는 경우는 대상 블록이 배드 블록임을 나타내는 것이므로 제어부는 교체 정보를 이용하여 접근 명령을 처리한다. 즉, 제어부는 대상 블록에 매핑되는 대체 블록의 주소를 이용하여 접근 명령을 처리할 수 있다.
이처럼 본 발명의 일 실시예에 따른 배드 블록 관리 장치는 교체 정보 테이블을 검색하기 전에 보다 처리 속도가 빠른 블록 필터 및 블록 상태 정보 캐시 중 적어도 하나를 이용하여 대상 블록의 상태 정보 및 교체 정보를 검색함으로써, 보다 신속하고 간단하게 대상 블록이 배드 블록인지 여부 및 배드 블록인 경우의 대체 블록 정보를 파악할 수 있다. 이를 통해 플래시 메모리 시스템의 처리 속도가 향상될 수 있다.
도 6은 본 발명의 일 실시예에 따른 배드 블록 관리 방법을 나타낸 동작 흐름도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 배드 블록 관리 방법은 대상 블록에 대한 접근 명령을 수신한다(610).
배드 블록 관리 방법은 블록 필터를 이용하여 대상 블록의 상태를 판단한다(620). 즉 배드 블록 관리 방법은 블록 필터를 통해 대상 블록의 상태에 대한 확률적 판단 결과로서 '정상 블록', '배드 블록' 또는 '알 수 없음' 중 어느 하나를 획득할 수 있다.
블록 필터가 대상 블록을 '정상 블록'이라고 판단한 경우, 배드 블록 관리 방법은 대상 블록의 주소를 이용하여 접근 명령을 처리한다(680).
블록 필터의 판단 결과가 '정상 블록'이 아닌 경우(즉, 판단 결과가 '배드 블록' 또는 '알 수 없음'인 경우) 배드 블록 관리 방법은 블록 상태 정보 캐시에서 대상 블록과 관련된 정보를 검색한다(630).
블록 상태 정보 캐시에 대상 블록의 상태 정보가 존재하는 경우, 배드 블록 관리 방법은 대상 블록의 상태 정보를 이용하여 접근 명령을 처리할 수 있다.
구체적으로, 블록 상태 정보 캐시가 대상 블록이 정상 블록임을 나타내는 경우, 배드 블록 관리 방법은 대상 블록의 주소를 이용하여 접근 명령을 처리할 수 있다(680).
그리고 블록 상태 정보 캐시가 대상 블록이 배드 블록임을 나타내는 경우, 배드 블록 관리 방법은 대상 블록에 대응하는 대체 블록 정보를 이용하여 접근 명령을 처리할 수 있다. 즉, 배드 블록 관리 방법은 대체 블록 정보를 이용하여 접근 명령을 처리할 블록 주소를 대상 블록의 주소에서 대체 블록의 주소로 변환한다(650). 그리고 대체 블록의 주소에 접근 명령을 처리할 수 있다(680).
블록 상태 정보 캐시에 대상 블록의 상태 정보가 존재하지 않는 경우, 배드 블록 관리 방법은 교체 정보 테이블에서 대상 블록의 교체 정보를 검색한다(660). 교체 정보 테이블에 대상 블록의 교체 정보가 존재하지 않는 경우, 즉 대상 블록이 정상 블록인 경우, 배드 블록 관리 방법은 대상 블록의 주소를 이용하여 접근 명령을 처리한다(680). 교체 정보 테이블에 대상 블록의 교체 정보가 존재하는 경우, 배드 블록 관리 방법은 교체 정보를 이용하여 접근 명령을 처리할 블록 주소를 대상 블록의 주소에서 대체 블록의 주소로 변환한다(670). 그리고 배드 블록 관리 방법은 대체 블록의 주소를 이용하여 접근 명령을 처리한다(680).
물론 선술한 바와 같이 블록 필터를 이용하는 단계 또는 블록 상태 정보 캐시를 이용하는 단계 중 어느 하나는 생략될 수도 있다.
지금까지 본 발명에 따른 배드 블록 관리 방법에 대해 설명하였다. 본 배드 블록 관리 방법에는 앞서 도 1 내지 도 5와 관련하여 다양한 실시예를 통하여 상술한 내용이 그대로 적용될 수 있으므로, 더 이상의 상세한 설명은 생략하도록 한다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
221: 제어부
222: 블록 필터
223: 블록 상태 정보 캐시
224: 교체 정보 테이블

Claims (20)

  1. 플래시 메모리의 배드 블록 관리 장치에 있어서,
    외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 제어부;
    상기 대상 블록이 정상 블록인지 여부를 확률적으로 판단하는 블록 필터; 및
    상기 플래시 메모리의 배드 블록들 및 대체 블록들의 매핑 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블
    을 포함하고,
    상기 제어부는
    상기 블록 필터의 판단 결과에 따라, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색하는 플래시 메모리의 배드 블록 관리 장치.
  2. 제1항에 있어서,
    상기 제어부는
    상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  3. 제1항에 있어서,
    상기 제어부는
    상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  4. 제1항에 있어서,
    상기 블록 필터는 축약된 블록 상태 정보를 포함하는 플래시 메모리의 배드 블록 관리 장치.
  5. 제1항에 있어서,
    상기 블록 필터는
    상기 대상 블록에 대한 판단 결과로 정상 블록, 배드 블록 또는 알 수 없음 중 어느 하나를 출력하는 플래시 메모리의 배드 블록 관리 장치.
  6. 제1항에 있어서,
    상기 제어부는
    상기 블록 필터가 상기 대상 블록이 정상 블록이라고 판단하지 않은 경우, 상기 교체 정보 테이블에서 상기 대상 블록의 교체 정보를 검색하는 플래시 메모리의 배드 블록 관리 장치.
  7. 제1항에 있어서,
    상기 플래시 메모리에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 상기 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 캐싱하는 블록 상태 정보 캐시
    를 더 포함하고,
    상기 제어부는
    상기 블록 필터가 상기 대상 블록을 정상 블록이 아니라고 판단한 경우, 상기 블록 상태 정보 캐시에서 상기 대상 블록과 관련된 정보를 검색하는 플래시 메모리의 배드 블록 관리 장치.
  8. 제7항에 있어서,
    상기 블록 상태 정보 캐시는
    상기 플래시 메모리에 포함되는 블록들로 최근에 접근된 순서를 기초로 상기 블록 상태 정보 및 대체 블록 정보를 업데이트하는 플래시 메모리의 배드 블록 관리 장치.
  9. 제7항에 있어서,
    상기 제어부는
    상기 블록 상태 정보 캐시에 포함된 상기 대상 블록과 관련된 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  10. 제7항에 있어서,
    상기 제어부는
    상기 블록 상태 정보 캐시에 상기 대상 블록과 관련된 정보가 존재하지 않는 경우, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색하는 플래시 메모리의 배드 블록 관리 장치.
  11. 플래시 메모리의 배드 블록 관리 장치에 있어서,
    외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 제어부;
    상기 플래시 메모리에 포함되는 블록들 중 일부 블록들에 대한 블록 상태 정보 및 상기 일부 블록들 중 배드 블록들에 대한 대체 블록 정보를 캐싱하는 블록 상태 정보 캐시; 및
    상기 플래시 메모리의 배드 블록들과 대체 블록들의 매핑 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블
    을 포함하고,
    상기 제어부는
    상기 블록 상태 정보 캐시에 상기 대상 블록과 관련된 정보가 존재하지 않는 경우, 상기 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색하는 플래시 메모리의 배드 블록 관리 장치.
  12. 제11항에 있어서,
    상기 블록 상태 정보 캐시는
    상기 플래시 메모리에 포함되는 블록들로 최근에 접근된 순서를 기초로 상기 블록 상태 정보 및 대체 블록 정보를 업데이트하는 플래시 메모리의 배드 블록 관리 장치.
  13. 제11항에 있어서,
    상기 제어부는
    상기 블록 상태 정보 캐시에 포함된 상기 대상 블록과 관련된 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  14. 제11항에 있어서,
    상기 제어부는
    상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  15. 제11항에 있어서,
    상기 제어부는
    상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 플래시 메모리의 배드 블록 관리 장치.
  16. 플래시 메모리의 배드 블록 관리 방법에 있어서,
    외부 호스트 시스템으로부터 대상 블록에 대한 접근 명령을 수신하는 단계;
    블록 필터를 이용하여 상기 대상 블록이 정상 블록인지 여부를 판단하는 단계; 및
    상기 판단 결과에 따라, 상기 플래시 메모리의 배드 블록들과 대체 블록들의 매핑 관계를 나타내는 교체 정보를 포함하는 교체 정보 테이블에서 상기 대상 블록에 대한 교체 정보를 검색하는 단계
    를 포함하는 플래시 메모리의 배드 블록 관리 방법.
  17. 제16항에 있어서,
    상기 대상 블록에 대한 교체 정보를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 단계
    를 더 포함하는 플래시 메모리의 배드 블록 관리 방법.
  18. 제16항에 있어서,
    상기 교체 정보 테이블에 상기 대상 블록에 대한 교체 정보가 존재하지 않는 경우, 상기 대상 블록의 주소를 이용하여 상기 대상 블록에 대한 접근 명령을 처리하는 단계
    를 더 포함하는 플래시 메모리의 배드 블록 관리 방법.
  19. 제16항에 있어서,
    상기 블록 필터는
    축약된 블록 상태 정보를 포함하고 상기 대상 블록에 대한 판단 결과로 정상 블록, 배드 블록 또는 알 수 없음 중 어느 하나를 출력하는 플래시 메모리의 배드 블록 관리 방법.
  20. 제16항에 있어서,
    상기 대상 블록에 대한 교체 정보를 검색하는 단계는
    상기 블록 필터가 상기 대상 블록이 정상 블록이라고 판단하지 않은 경우, 상기 교체 정보 테이블에서 상기 대상 블록의 교체 정보를 검색하는 단계
    를 포함하는 플래시 메모리의 배드 블록 관리 방법.
KR1020110017767A 2011-02-28 2011-02-28 플래시 메모리 배드 블록 관리 장치 및 방법 KR20120098068A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110017767A KR20120098068A (ko) 2011-02-28 2011-02-28 플래시 메모리 배드 블록 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110017767A KR20120098068A (ko) 2011-02-28 2011-02-28 플래시 메모리 배드 블록 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20120098068A true KR20120098068A (ko) 2012-09-05

Family

ID=47109184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110017767A KR20120098068A (ko) 2011-02-28 2011-02-28 플래시 메모리 배드 블록 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20120098068A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9257195B2 (en) 2013-10-02 2016-02-09 Samsung Electronics Co., Ltd. Memory controller operating method and memory system including memory controller
US9875179B2 (en) 2015-05-19 2018-01-23 SK Hynix Inc. Semiconductor device and operating method thereof
US10366776B2 (en) 2016-11-29 2019-07-30 SK Hynix Inc. Memory system for effectively organizing super memory block and operating method thereof
US10861581B2 (en) 2017-06-19 2020-12-08 SK Hynix Inc. Memory system for accessing recovered super block and operating method thereof
US11614897B2 (en) 2021-02-24 2023-03-28 SK Hynix Inc. Storage device and operating method thereof

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9257195B2 (en) 2013-10-02 2016-02-09 Samsung Electronics Co., Ltd. Memory controller operating method and memory system including memory controller
US9875179B2 (en) 2015-05-19 2018-01-23 SK Hynix Inc. Semiconductor device and operating method thereof
US10366776B2 (en) 2016-11-29 2019-07-30 SK Hynix Inc. Memory system for effectively organizing super memory block and operating method thereof
US10861581B2 (en) 2017-06-19 2020-12-08 SK Hynix Inc. Memory system for accessing recovered super block and operating method thereof
US11614897B2 (en) 2021-02-24 2023-03-28 SK Hynix Inc. Storage device and operating method thereof

Similar Documents

Publication Publication Date Title
US20210109659A1 (en) Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US9779027B2 (en) Apparatus, system and method for managing a level-two cache of a storage appliance
US10558569B2 (en) Cache controller for non-volatile memory
US9639481B2 (en) Systems and methods to manage cache data storage in working memory of computing system
US20130138867A1 (en) Storing Multi-Stream Non-Linear Access Patterns in a Flash Based File-System
US8572325B2 (en) Dynamic adjustment of read/write ratio of a disk cache
US20090327607A1 (en) Apparatus and method for cache utilization
US10635581B2 (en) Hybrid drive garbage collection
US11106609B2 (en) Priority scheduling in queues to access cache data in a memory sub-system
US20210173789A1 (en) System and method for storing cache location information for cache entry transfer
US20220179798A1 (en) Separate read-only cache and write-read cache in a memory sub-system
WO2014157244A1 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
KR20120098068A (ko) 플래시 메모리 배드 블록 관리 장치 및 방법
US20160062895A1 (en) Method for disk defrag handling in solid state drive caching environment
CN114281719A (zh) 用于通过地址映射来扩展命令编排的系统及方法
US8656106B2 (en) Managing unforced injections of cache lines into a cache utilizing predetermined address ranges
US9141543B1 (en) Systems and methods for writing data from a caching agent to main memory according to a pre-clean criterion
KR102465851B1 (ko) 캐시 엔트리에서 메모리 액세스 요청의 펜던시를 식별하기 위한 시스템 및 방법
US10210097B2 (en) Memory system and method for operating the same
US20140359228A1 (en) Cache allocation in a computerized system
CN113391974B (zh) 内存监测方法、装置、处理器及存储介质
US9454488B2 (en) Systems and methods to manage cache data storage

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment