KR20130115603A - 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법 - Google Patents

플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법 Download PDF

Info

Publication number
KR20130115603A
KR20130115603A KR1020120038052A KR20120038052A KR20130115603A KR 20130115603 A KR20130115603 A KR 20130115603A KR 1020120038052 A KR1020120038052 A KR 1020120038052A KR 20120038052 A KR20120038052 A KR 20120038052A KR 20130115603 A KR20130115603 A KR 20130115603A
Authority
KR
South Korea
Prior art keywords
area
spare block
block area
block
flash memory
Prior art date
Application number
KR1020120038052A
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 KR1020120038052A priority Critical patent/KR20130115603A/ko
Publication of KR20130115603A publication Critical patent/KR20130115603A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

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

Abstract

플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법이 개시된다. 플래시 메모리를 포함한 메모리 장치는, 둘 이상의 예비 블록 영역을 포함하는 상기 플래시 메모리; 및 둘 이상의 예비 블록 영역 중 어느 하나의 예비 블록 영역이 배드 블록 영역화되면 상기 플래시 메모리의 데이터 영역에 포함된 프리 블록들을 이용하여 새로운 예비 블록 영역을 할당하는 FTL부를 포함한다. 본 발명에 의해, 플래시 메모리를 포함한 메모리 장치의 수명을 연장시킬 수 있고, 데이터 무결성을 확보할 수 있다.

Description

플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법{Memory device having flash memory and method for managing reserved block area}
본 발명은 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법에 관한 것이다.
메모리 장치는 데이터를 저장하고 필요할 때 독출하여 이용할 수 있는 기억 장치로서, 일반적으로 램(RAM, Random Access Memory)과 롬(ROM, Read Only Memory)으로 나뉜다. 휘발성(volatile) 메모리인 램에 저장된 데이터는 전원 공급이 중단되면 소멸됨에 반하여, 비휘발성(nonvolatile) 메모리인 롬에 저장된 데이터는 전원 공급이 중단되더라도 소멸되지 않고 유지된다.
최근 디지털 카메라, 차량용 블랙박스, 이동통신 단말기 등의 디지털 기기에 기억 장치로 이용되는 플래시(flash) 메모리는 비휘발성 메모리 장치의 일종이다. 플래시 메모리는 일반적으로 휴대용 디지털 기기에 사용되기 때문에 플래시 메모리의 신뢰성 및 수명은 휴대용 디지털 기기의 신뢰성 및 수명에 큰 영향을 주게 된다. 따라서 플래시 메모리의 신뢰성 및 수명을 향상시키는 것은 휴대용 디지털 기기의 신뢰성 및 수명 측면에서 매우 중요하다.
플래시 메모리는 물리적 특성으로 인해 데이터를 프로그램(또는 쓰기)하기 전에 소거(erase) 동작을 먼저 수행한다. 프로그램 동작 또는 읽기 동작은 페이지(page) 단위로 수행되고, 소거 동작은 블록(block) 단위로 수행된다. 여기서, 소거 동작은 플래시 메모리의 수명에 영향을 미치는 중요한 요인이다. 이는, 제한된 횟수의 소거 동작이 수행되면 플래시 메모리 내의 블록에서는 더 이상의 소거 동작이 수행되지 않기 때문이다.
프로그램(또는 쓰기) 횟수와 소거 횟수가 제한되어 있는 플래시 메모리는 프로그램, 소거 등의 처리가 반복될수록 해당 블록에서 오류가 발생(배드 블록의 발생)될 수 있으므로, 이에 대비하기 위해 미리 예비 블록 영역(reserved block area)을 지정하고, 오류가 발생된 블록은 미리 지정된 예비 블록으로 대체하는 방법을 사용하고 있다.
도 1은 종래 기술에 따른 플래시 메모리의 저장 영역 구성을 나타낸 도면이다.
도 1에 도시된 바와 같이, 플래시 메모리의 저장 영역은 FAT 영역, 데이터 영역, 시스템 영역, 예비 블록 영역(RBA)을 포함한다. FAT 영역, 데이터 영역 및 시스템 영역은 일종의 사용자 영역으로 이해될 수 있다.
FAT 영역에는 파일 할당 테이블(FAT, File Allocation Table)가 저장되고, 데이터 영역에는 사용자 데이터가 저장되며, 시스템 영역에는 FTL(flash translation layer)의 처리에 따른 데이터인 배드 블록의 위치 정보, 예비 블록 영역(RBA)에 관한 정보, 사용자 영역에 저장된 데이터의 위치 정보, 웨어 레벨링(wear leveling)에 관한 정보 등이 저장될 수 있다. 예비 블록 영역은 타 영역에서 배드 블록(Bad Block)이 발생되는 경우 이를 대체하기 위한 예비 블록들이 포함된 영역이다.
예를 들어, FAT 영역, 데이터 영역 또는 시스템 영역에서 배드 블록이 발생되면, FTL은 해당 배드 블록과 예비 블록 영역에 포함된 정상 블록(즉, 데이터를 저장하고 있지 않은 공백(blank) 상태의 정상 블록인 프리 블록)을 스와핑(Swapping)처리한다.
그러나, 예비 블록 영역에 포함된 정상 블록들이 모두 스와핑 처리되어 예비 블록 영역의 모든 블록들이 배드 블록화되면 이후에 타 영역에서 배드 블록이 발생하더라도 더 이상 교체할 예비 블록이 존재하지 않아 메모리 장치는 신뢰성을 상실하고 수명을 다하게 된다.
이와 같이, 종래 기술에 따른 메모리 장치는 예비 블록 영역을 구비하여 배드 블록 발생시에도 장치의 신뢰성을 확보를 시도하였다. 그러나 예비 블록 영역 자체도 임의의 제한된 크기로 특정된 저장 영역에 불과하여, 예비 블록 영역 내의 모든 정상 블록들에 대한 배드 블록화가 이루어지면 더 이상 장치의 신뢰성을 확보할 수 없는 문제점이 있었다.
본 발명은 플래시 메모리를 포함한 메모리 장치의 수명을 연장시킬 수 있고, 데이터 무결성을 확보할 수 있는 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법을 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 플래시 메모리를 포함한 메모리 장치에 있어서, 둘 이상의 예비 블록 영역을 포함하는 상기 플래시 메모리; 및 둘 이상의 예비 블록 영역 중 어느 하나의 예비 블록 영역이 배드 블록 영역화되면 상기 플래시 메모리의 데이터 영역에 포함된 프리 블록들을 이용하여 새로운 예비 블록 영역을 할당하는 FTL(Flash Translation Layer)부를 포함하는 메모리 장치가 제공된다.
상기 데이터 영역에 상기 예비 블록 영역을 새로이 할당하기 위한 프리 블록이 충분하지 않은 경우, 상기 FTL부는 프리 블록의 확보를 위해 가비지 컬렉션(garbage collection) 및 트리밍(trimming) 중 하나 이상의 처리를 수행할 수 있다.
상기 FTL부는, 둘 이상의 예비 블록 영역 중 기본 예비 블록 영역으로 할당된 제1 예비 블록 영역이 배드 블록 영역화된 즉시 제2 예비 블록 영역을 기본 예비 블록 영역으로 지정할 수 있다.
상기 FTL부는 상기 메모리 장치가 초기화될 때마다 상기 새로운 예비 블록 영역의 할당이 완료되었는지 여부를 판단하고, 완료되지 않은 경우 상기 새로운 예비 블록 영역의 할당을 다시 시도할 수 있다.
상기 둘 이상의 예비 블록 영역에 대한 정보는 상기 플래시 메모리의 시스템 영역에 저장될 수 있다.
본 발명의 다른 측면에 따르면, 메모리 장치의 예비 블록 관리 방법에 있어서, FTL(Flash Translation Layer)부가 플래시 메모리의 저장 영역 내에 둘 이상의 예비 블록 영역을 할당하는 단계; 상기 FTL부가 둘 이상의 예비 블록 영역 중 어느 하나의 예비 블록 영역이 배드 블록 영역화되었는지 판단하는 단계; 및 배드 블록 영역화된 예비 블록 영역이 존재하면, 상기 FTL부가 상기 플래시 메모리의 데이터 영역에 포함된 프리 블록들을 이용하여 새로운 예비 블록 영역을 할당하는 단계를 포함하는 예비 블록 관리 방법이 제공된다.
상기 데이터 영역에 상기 예비 블록 영역을 새로이 할당하기 위한 프리 블록이 충분하지 않은 경우, 상기 FTL부는 프리 블록의 확보를 위해 가비지 컬렉션(garbage collection) 및 트리밍(trimming) 중 하나 이상의 처리를 수행할 수 있다.
상기 FTL부는, 둘 이상의 예비 블록 영역 중 기본 예비 블록 영역으로 할당된 제1 예비 블록 영역이 배드 블록 영역화된 즉시 제2 예비 블록 영역을 기본 예비 블록 영역으로 지정할 수 있다.
상기 FTL부는 상기 메모리 장치가 초기화될 때마다 상기 새로운 예비 블록 영역의 할당이 완료되었는지 여부를 판단하고, 완료되지 않은 경우 상기 새로운 예비 블록 영역의 할당을 다시 시도할 수 있다.
상기 둘 이상의 예비 블록 영역에 대한 정보는 상기 플래시 메모리의 시스템 영역에 저장될 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 플래시 메모리를 포함한 메모리 장치의 수명을 연장시킬 수 있고, 데이터 무결성을 확보할 수 있는 효과가 있다.
도 1은 종래 기술에 따른 플래시 메모리의 저장 영역 구성을 나타낸 도면.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 구성을 개략적으로 나타낸 블록 구성도.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리의 저장 영역 구성을 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 메모리 장치의 예비 블록 영역 관리 방법을 나타낸 순서도.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…유닛", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 구성을 개략적으로 나타낸 블록 구성도이고, 도 3은 본 발명의 일 실시예에 따른 플래시 메모리의 저장 영역 구성을 나타낸 도면이다.
도 2를 참조하면, 메모리 장치는 호스트(210) 및 데이터 저장 유닛(220)을 포함하고, 데이터 저장 유닛(220)은 컨트롤러(230) 및 플래시 메모리(240)를 포함한다. 컨트롤러(230)는 제어로직부(250) 및 FTL(Flash Translation Layer)부(255)를 포함할 수 있다. 각 구성요소의 기능 및 동작 과정은 당업자에게 자명한 사항이므로 이에 대해서는 간략히 설명한다.
호스트(210)의 입장에서 볼 때, 데이터 저장 유닛(220)은 마치 하드 디스크처럼 읽기(read), 쓰기(write), 그리고 소거(erase) 동작이 자유로운 저장 매체로 인식된다.
컨트롤러(230)는 호스트(210)로부터 액세스 요청이 있을 때 플래시 메모리(240)를 제어하도록 구성된다. 컨트롤러(230)는 제어로직부(250) 및 FTL부(255)를 포함할 수 있고, 제어로직부(250)는 호스트(210)로부터의 액세스 요청이 있으면 이에 따라 FTL부(255)의 동작을 제어한다.
FTL부(255)는 제어로직부(250)로부터의 쓰기, 읽기 등의 연산 요청에 응답하여 플래시 메모리(240)로의 액세스를 가능하게 한다. 도시되지는 않았으나, FTL부(255)는 예를 들어 맵핑(mapping) 모듈, 웨어 레벨링(wear leveling) 모듈, 가비지 컬렉션(garbage collection) 모듈, 트리밍(trimming) 모듈, 예비 블록 영역 할당 모듈 등 중 하나 이상을 포함할 수 있다.
매핑 모듈은 호스트(210)로부터 제공되는 논리 어드레스(Logical address)를 플래시 메모리(240)의 물리 어드레스(Physical address)로 전환하기 위한 어드레스 맵핑 처리를 수행한다.
웨어 레벨링 모듈은 플래시 메모리(240)의 열화 현상을 균등화시키기 위한 블록 맵핑 기능을 수행한다. 전술한 처리를 위해 블록들의 서열화 작업인 웨어 레벨링 처리가 수행되며, 웨어 레벨링은 각 블록에 대해서 소거 횟수(Erase Count)에 대한 정보를 저장하고, 횟수가 적은 수의 블록을 우선적으로 호스트(210)로부터의 논리적 블록 어드레스에 할당하는 방식으로 이루어진다.
가비지 컬렉션 모듈은 플래시 메모리(240)의 각 블록들에 흩어져 있는 유효 데이터들을 모아서 하나의 블록에 채우는 가비지 컬렉션(Garbage Collection) 동작을 수행한다. 메모리 장치의 사용 기간이 길어질수록 저장된 데이터의 양이 많아지게 되고, 사용 가능한 예비 블록(Reserved block)의 수가 감소될수록 가비지 컬렉션이 보다 중요시될 수 있을 것이다.
트리밍 모듈은 프리 블록을 생성하기 위하여 플래시 메모리(240)의 데이터 영역의 블록에 대한 트리밍 처리(즉, 상응하는 블록의 데이터를 삭제하여 프리 블록(free block)(즉, 데이터를 저장하고 있지 않은 공백(blank) 상태의 정상 블록)으로 만드는 처리)를 수행한다. 트리밍 처리는 후술될 예비 블록 영역의 신규 할당을 위한 과정에서 수행될 수도 있다.
종래의 트리밍 처리를 간략히 설명하면, 호스트(210)로부터 트림 커맨드(trim command)가 제공되면 FLT부(255)가 상응하는 블록의 데이터를 삭제하여 프리 블록으로 만드는 처리를 수행한다. 이와 유사하게, 호스트(210)로부터 트림 커맨드(trim command)가 제공되지 않더라도, 트리밍 모듈이 필요한 시점에서 전술한 트리밍 처리를 수행하도록 구현될 수 있다.
예비 블록 영역 할당 모듈은 구비한 둘 이상의 예비 블록 영역 중 어느 하나가 배드 블록화된 경우 데이터 영역에 포함된 정상 블록들을 이용하여 새로운 예비 블록 영역을 형성한다.
FTL부(255)는 예비 블록 영역에 대한 정보(예를 들어, 예비 블록 영역에 포함된 각 블록들에 대한 물리 어드레스, 해당 블록의 상태, 웨어 레벨 값(Wear Level Value), 예비 블록 영역의 크기 등의 정보를 플래시 메모리(240)의 시스템 영역에 저장한다. FTL부(255)는 메모리 장치의 쓰기/읽기 등의 연산 작업 중 배드 블록이 발생되면 예비 블록 영역의 프리 블록(free block)과 해당 배드 블록의 교체 작업을 하게 되며, 이때 FTL부(255)는 예비 블록 영역에 대한 메타 데이터를 수정하여 플래시 메모리(240)의 시스템 영역에 저장한다. 즉, FTL부(255)는 시스템 영역에 저장된 데이터를 이용하여 예비 블록 영역에 포함된 각 블록들의 상태를 언제든지 알 수 있으며, 예비 블록 영역의 신규 형성이 필요한지 여부를 인식할 수 있다.
이외에도, FTL부(255)가 전력손실 복구(power-loss recovery), 배드 블록 관리(Bad block management) 등의 처리를 위한 구성요소를 더 포함할 수도 있음은 당연하다.
플래시 메모리(240)는 예를 들어 낸드(NAND) 플래시 메모리일 수 있으며, 저장 영역은 FAT 영역, 데이터 영역, 둘 이상의 예비 블록 영역(260, 265), 시스템 영역을 포함하여 구성될 수 있다.
앞서 도 1을 설명한 바와 같이, 종래 기술에 따른 플래시 메모리는 하나의 예비 블록 영역만을 구비하고 있다. 즉, 하나의 예비 블록 영역을 이용하여 사용자 영역(예를 들어, FAT 영역, 데이터 영역, 시스템 영역 등)에 배드 블록(bad block)이 발생되면, 이를 예비 블록 영역에 포함된 정상 블록과 교체함으로써 사용자 영역에는 배드 블록이 존재하지 않는 상태를 유지하게 된다.
그러나, 지정된 예비 블록 영역 내의 정상 블록들이 모두 배드 블록으로 교체되면 사용자 영역에서 배드 블록이 신규로 발생될지라도, 예비 블록 영역 내에 남아있는 정상 블록(즉, 프리 블록)이 없어 배드 블록 위에 데이터를 쓰기(write)하거나 쓰기 금지 상태에서 동작하게 된다. 이러한 상태는 일반적으로 낸드 플래시 메모리를 구비한 메모리 장치의 수명이 다한 상태로 인식된다.
이에 비해, 본 실시예에 따른 플래시 메모리는 둘 이상(예를 들어 2개)의 예비 블록 영역을 구비하고 있다. 즉, 사용자 영역에 정상 블록들이 많이 남아있을 것이므로, 해당 블록들을 이용하여 새로운 예비 블록 영역을 형성함으로써 메모리 장치의 수명을 연장하기 위한 것이다.
이후 설명되는 바와 같이, 기본 영역으로 지정된 어느 하나의 예비 블록 영역에 포함된 모든 정상 블록들이 배드 블록화되면, 다른 하나의 예비 블록 영역이 기본 영역으로 재설정되고, 신규로 새로운 예비 블록 영역이 생성되도록 함으로써, 본 실시예에 따른 메모리 장치는 사용자 영역에 정상 블록이 존재하는 한 메모리 장치가 정상적인 동작을 수행하도록 할 수 있는 장점을 가진다.
또한, 둘 이상의 예비 블록 영역을 구비함으로써 메모리 장치의 수명을 연장하기 위해 새로운 예비 블록 영역을 형성할 때 기존의 데이터를 보호하고 메모리 장치의 신뢰성을 유지할 수도 있다.
즉, 도 3에 도시된 바와 같이 제1 예비 블록 영역(260a)이 배드 블록화되면 즉시 제2 예비 블록 영역(265a)가 기본 영역인 제1 예비 블록 영역(260b)으로 다시 지정되어 배드 블록을 스와핑(swapping)함으로써 메모리 장치를 계속 사용할 수 있게 된다. 또한, FTL부(255)가 새로운 제2 예비 블록 영역(265b)이 확보될 때까지 메모리 장치의 신뢰성을 유지하면서 시간을 확보할 수도 있다.
제2 예비 블록 영역(265b)의 확보는 메모리 장치가 초기화될 때마다 FTL부(255)가 데이터 영역 내에 제2 예비 블록 영역(265b)을 신규로 구성할 만큼의 여유 공간이 존재하는지 여부를 체크하며, 해당 공간이 확보되면 제2 예비 블록 영역(265b)을 신규로 설정한다.
여기서, 예비 블록 영역의 크기는 메모리 장치마다 유동적으로 결정될 수 있다. 이는 예비 블록 영역의 크기를 증가시켰을 때 메모리 장치의 수명 연장에는 효과적일 수 있으나, 사용자 영역의 크기가 감소되어 메모리 장치로서의 효율성이 감소될 수 있기 때문이다. 즉, 예비 블록 영역의 크기에 따라 장치의 수명과 저장 용량은 트레이드오프(trade-off) 관계에 있기 때문에, 예를 들어 전체 저장 용량의 크기 중 약 5~10% 정도를 예비 블록 영역으로 할당할 수 있으며, 제1 예비 블록 영역(260)과 제2 예비 블록 영역(265)의 크기는 예를 들어 전체 예비 블록 영역의 크기를 기준으로 50%:50%, 60%:40% 등으로 지정될 수 있을 것이다.
만일 제1 예비 블록 영역(260a)과 제2 예비 블록 영역(265a)의 크기가 60%:40%으로 지정된 경우, 제1 예비 블록 영역(260a)이 배드 블록화된 경우 제1 예비 블록 영역(260b)으로 재설정된 제2 예비 블록 영역(265a)이 40%의 크기를 가지고 있으므로, 신규 생성되는 제2 예비 블록 영역(265b)이 60%의 크기를 가지도록 설정될 수 있을 것이다.
도 4는 본 발명의 일 실시예에 따른 메모리 장치의 예비 블록 영역 관리 방법을 나타낸 순서도이다.
도 4를 참조하면, 단계 410에서 FTL(Flash Translation Layer)부(255)는 두 개 이상의 예비 블록 영역(RBA, Reserved Block Area)을 형성한다. 형성된 두 개 이상의 예비 블록 영역에 대한 정보는 플래시 메모리(240)의 사용자 영역에 저장될 수 있다. 이하 설명의 편의를 위해 FTL부(255)가 두 개의 예비 블록 영역을 형성한 경우를 가정하여 설명한다.
단계 420에서 FTL부(255)는 기본 예비 블록 영역으로 설정된 제1 예비 블록 영역(260a)에 포함된 모든 프리 블록들이 배드 블록을 대체함으로 배드 블록 영역화되었는지 여부를 판단한다.
만일 제1 예비 블록 영역(260a) 내에 아직 프리 블록이 남아있는 경우라면 단계 420에서 대기한다.
그러나 만일 설정된 제1 예비 블록 영역(260a)이 배드 블록 영역화되었다면 단계 430에서 FTL부(255)는 미리 지정된 제2 예비 블록 영역(265a)을 기본 예비 블록 영역인 제1 예비 블록 영역(260b)으로 지정한다. 단계 430에 의해 사용자 영역에서 배드 블록이 발생된 경우 새로 제1 예비 블록 영역(260b)으로 지정된 제2 예비 블록 영역(265a) 내의 프리 블록이 배드 블록을 대체할 것이다.
이어서, FTL부(255)는 단계 440에서 데이터 영역 내에 존재하는 프리 블록이 신규로 제2 예비 블록 영역(265b)를 할당할 수 있을 만큼 충분한지 여부를 판단한다.
만일 데이터 영역 내에 존재하는 프리 블록이 신규로 제2 예비 블록 영역(265b)를 할당할 수 있을 만큼 충분한 경우라면 단계 470으로 진행하여 FTL부(255)는 신규로 제2 예비 블록 영역(265b)를 할당한다.
그러나 만일 데이터 영역 내에 존재하는 프리 블록이 신규로 제2 예비 블록 영역(265b)를 할당할 수 있을 만큼 충분하지 않은 경우라면, FTL부(255)는 단계 450으로 진행하여 제2 예비 블록 영역(265b)을 신규로 할당하기 위해 여유 공간 생성 처리를 수행한다.
새로운 제2 예비 블록 영역(265b)을 할당하기 위해, FTL부(255)는 현재 사용중인 데이터 영역으로부터 프리 블록들을 확보하여야 한다. 이를 위해, FTL부(255)는 기존의 데이터 영역의 블록들에 대해 가비지 컬렉션(Garbage Collection) 및/또는 트리밍(Trimming) 처리를 수행한다. 가비지 컬렉션 및 트리밍 처리는 당업자에게 자명한 사항이므로 이에 대한 설명은 생략한다.
단계 460에서 FTL부(255)는 제2 예비 블록 영역(265b)를 신규로 할당하기 위한 프리 블록들이 충분한지 여부를 판단한다.
만일 충분한 프리 블록들이 확보되지 않았다면 단계 450으로 다시 진행한다.
그러나 만일 충분한 프리 블록들이 확보되었다면 단계 470으로 진행하여 FTL부(255)는 제2 예비 블록 영역(265b)를 할당한다.
데이터 영역의 프리 블록들을 이용하여 제2 예비 블록 영역(265b)를 할당한 경우, 데이터 영역의 프리 블록들이 예비 블록 영역으로 대체되어 이용되는 것이므로 저장 용량이 그만큼 감소된다. 따라서, FTL부(255)는 FAT 영역에 저장된 파일 할당 테이블(FAT) 정보를 이에 상응하도록 갱신한다.
FTL부(255)는 전술한 단계 440 내지 단계 460의 가비지 컬렉션이나 트리밍 처리에 의해 데이터 영역으로부터 프리 블록들을 확보할 수 있을 것이지만, 만일 사용자가 사용자 영역의 저장 공간을 거의 모두 사용하고 있는 상태라면(예를 들어 디스크 사용량이 풀(Full)에 가까운 경우) 새로운 예비 블록 영역을 할당할 수 있을 만큼의 프리 블록들을 확보하지 못할 수도 있다.
이 경우에도, 기본 예비 블록 영역으로 신규 지정된 제2 예비 블록 영역(265a)이 이미 사용되고 있으므로 신규로 제2 예비 블록 영역(265b)을 할당하기 위한 여유 시간이 충분히 확보된 것으로 이해될 수 있다.
따라서, FTL부(255)는 메모리 장치가 초기화 될 때마다 신규로 제2 예비 블록 영역(265b)이 현재 할당된 상태인지 여부를 체크하고, 만약 할당되어 있지 않다면 그 때마다 제2 예비 블록 영역(265b)을 신규로 할당하기 위해 시도한다.
즉, 사용자 영역의 저장 공간이 거의 모두 사용되고 있는 상태라면 현재 시점에서는 프리 블록들을 확보할 수 없지만, 제2 예비 블록 영역(265b)의 할당 시도를 반복함으로써 프리 블록들이 충분히 확보된 시점(예를 들어 여유 저장 공간이 10% 이상인 시점 등)에서 제2 예비 블록 영역(265b)을 신규로 할당한다.
상술한 예비 블록 관리 방법은 메모리 장치에 내장되거나 설치된 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 당연하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 디지털 처리 장치가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 디지털 처리 장치에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
210 : 호스트
220 : 데이터 저장 유닛
230 : 컨트롤러
240 : 플래시 메모리
250 : 제어로직부
255 : FTL(Flash Translation Layer)부
260a, 260b : 제1 예비 블록 영역
265a, 265b : 제2 예비 블록 영역

Claims (11)

  1. 플래시 메모리를 포함한 메모리 장치에 있어서,
    둘 이상의 예비 블록 영역을 포함하는 상기 플래시 메모리; 및
    둘 이상의 예비 블록 영역 중 어느 하나의 예비 블록 영역이 배드 블록 영역화되면 상기 플래시 메모리의 데이터 영역에 포함된 프리 블록들을 이용하여 새로운 예비 블록 영역을 할당하는 FTL(Flash Translation Layer)부를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 데이터 영역에 상기 예비 블록 영역을 새로이 할당하기 위한 프리 블록이 충분하지 않은 경우, 상기 FTL부는 프리 블록의 확보를 위해 가비지 컬렉션(garbage collection) 및 트리밍(trimming) 중 하나 이상의 처리를 수행하는 것을 특징으로 하는 메모리 장치.
  3. 제1항에 있어서,
    상기 FTL부는, 둘 이상의 예비 블록 영역 중 기본 예비 블록 영역으로 할당된 제1 예비 블록 영역이 배드 블록 영역화된 즉시 제2 예비 블록 영역을 기본 예비 블록 영역으로 지정하는 것을 특징으로 하는 메모리 장치.
  4. 제1항에 있어서,
    상기 FTL부는 상기 메모리 장치가 초기화될 때마다 상기 새로운 예비 블록 영역의 할당이 완료되었는지 여부를 판단하고, 완료되지 않은 경우 상기 새로운 예비 블록 영역의 할당을 다시 시도하는 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서,
    상기 둘 이상의 예비 블록 영역에 대한 정보는 상기 플래시 메모리의 시스템 영역에 저장되는 것을 특징으로 하는 메모리 장치.
  6. 메모리 장치의 예비 블록 관리 방법에 있어서,
    FTL(Flash Translation Layer)부가 플래시 메모리의 저장 영역 내에 둘 이상의 예비 블록 영역을 할당하는 단계;
    상기 FTL부가 둘 이상의 예비 블록 영역 중 어느 하나의 예비 블록 영역이 배드 블록 영역화되었는지 판단하는 단계; 및
    배드 블록 영역화된 예비 블록 영역이 존재하면, 상기 FTL부가 상기 플래시 메모리의 데이터 영역에 포함된 프리 블록들을 이용하여 새로운 예비 블록 영역을 할당하는 단계를 포함하는 예비 블록 관리 방법.
  7. 제6항에 있어서,
    상기 데이터 영역에 상기 예비 블록 영역을 새로이 할당하기 위한 프리 블록이 충분하지 않은 경우, 상기 FTL부는 프리 블록의 확보를 위해 가비지 컬렉션(garbage collection) 및 트리밍(trimming) 중 하나 이상의 처리를 수행하는 것을 특징으로 하는 예비 블록 관리 방법.
  8. 제6항에 있어서,
    상기 FTL부는, 둘 이상의 예비 블록 영역 중 기본 예비 블록 영역으로 할당된 제1 예비 블록 영역이 배드 블록 영역화된 즉시 제2 예비 블록 영역을 기본 예비 블록 영역으로 지정하는 것을 특징으로 하는 예비 블록 관리 방법.
  9. 제6항에 있어서,
    상기 FTL부는 상기 메모리 장치가 초기화될 때마다 상기 새로운 예비 블록 영역의 할당이 완료되었는지 여부를 판단하고, 완료되지 않은 경우 상기 새로운 예비 블록 영역의 할당을 다시 시도하는 것을 특징으로 하는 예비 블록 관리 방법.
  10. 제6항에 있어서,
    상기 둘 이상의 예비 블록 영역에 대한 정보는 상기 플래시 메모리의 시스템 영역에 저장되는 것을 특징으로 하는 예비 블록 관리 방법.
  11. 제6항 내지 제10항 중 어느 한 항에 기재된 예비 블록 관리 방법을 수행하기 위해 메모리 장치에서 실행될 수 있는 명령어들의 프로그램이 기록되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램이 기록된 기록매체.
KR1020120038052A 2012-04-12 2012-04-12 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법 KR20130115603A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120038052A KR20130115603A (ko) 2012-04-12 2012-04-12 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120038052A KR20130115603A (ko) 2012-04-12 2012-04-12 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법

Publications (1)

Publication Number Publication Date
KR20130115603A true KR20130115603A (ko) 2013-10-22

Family

ID=49635027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120038052A KR20130115603A (ko) 2012-04-12 2012-04-12 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법

Country Status (1)

Country Link
KR (1) KR20130115603A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190131170A (ko) * 2018-05-16 2019-11-26 주식회사 디에이아이오 비휘발성 메모리 시스템
KR20210080907A (ko) * 2019-12-23 2021-07-01 주식회사 디에이아이오 비휘발성 메모리 시스템
CN113093993A (zh) * 2021-03-25 2021-07-09 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190131170A (ko) * 2018-05-16 2019-11-26 주식회사 디에이아이오 비휘발성 메모리 시스템
KR20210080907A (ko) * 2019-12-23 2021-07-01 주식회사 디에이아이오 비휘발성 메모리 시스템
CN113093993A (zh) * 2021-03-25 2021-07-09 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘
CN113093993B (zh) * 2021-03-25 2023-08-22 深圳大普微电子科技有限公司 一种闪存空间动态分配方法及固态硬盘

Similar Documents

Publication Publication Date Title
US11449435B2 (en) Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
US9645894B2 (en) Data storage device and flash memory control method
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US8645613B2 (en) Data writing method for flash memory and control circuit and storage system using the same
KR100946286B1 (ko) 플래시 파일 시스템에서 가상-물리 주소 변환 방법 및 시스템
EP2389631B1 (en) Solid state memory formatting
US9582416B2 (en) Data erasing method, memory control circuit unit and memory storage apparatus
JP4164118B1 (ja) フラッシュメモリを用いた記憶装置
US20160011974A1 (en) Techniques for controlling recycling of blocks of memory
US8812776B2 (en) Data writing method, and memory controller and memory storage device using the same
KR102663661B1 (ko) 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
US9235534B2 (en) Data protecting method, memory controller and memory storage apparatus
CN109117383B (zh) 管理闪存模块的方法和闪存控制器
EP2441004A2 (en) Memory system having persistent garbage collection
US9141530B2 (en) Data writing method, memory controller and memory storage device
US20130275655A1 (en) Memory management method and memory controller and memory storage device using the same
TWI501252B (zh) 用於控制保留區的固態儲存系統及其控制方法
US9569126B2 (en) Data storage device and flash memory control method
US9032135B2 (en) Data protecting method, memory controller and memory storage device using the same
US9990152B1 (en) Data writing method and storage controller
KR20130115603A (ko) 플래시 메모리를 포함하는 메모리 장치 및 예비 블록 관리 방법
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR101065147B1 (ko) 저장장치와 그 저장장치의 상태정보에 접근하는 방법
CN103389941A (zh) 存储器格式化方法、存储器控制器及存储器存储装置
CN103106148A (zh) 区块管理方法、存储器控制器与存储器存储装置

Legal Events

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