KR101077904B1 - 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 - Google Patents

페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 Download PDF

Info

Publication number
KR101077904B1
KR101077904B1 KR1020100067065A KR20100067065A KR101077904B1 KR 101077904 B1 KR101077904 B1 KR 101077904B1 KR 1020100067065 A KR1020100067065 A KR 1020100067065A KR 20100067065 A KR20100067065 A KR 20100067065A KR 101077904 B1 KR101077904 B1 KR 101077904B1
Authority
KR
South Korea
Prior art keywords
page
mapping information
block
group
mapping
Prior art date
Application number
KR1020100067065A
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 KR1020100067065A priority Critical patent/KR101077904B1/ko
Priority to PCT/KR2011/005102 priority patent/WO2012008732A2/ko
Application granted granted Critical
Publication of KR101077904B1 publication Critical patent/KR101077904B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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

Abstract

페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법이 개시된다. 매핑 정보 생성부는 블록을 구성하는 페이지들을 복수의 페이지 그룹으로 구분하고, 각각의 페이지 그룹에 속하는 페이지 중에서 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제2매핑 정보를 생성한다. 매핑 정보 기록부는 각각의 페이지에 대한 쓰기 동작의 수행시 동일한 페이지 그룹에 속하는 페이지들 중에서 쓰기 동작이 수행되는 페이지의 매핑 정보와 쓰기 동작이 수행되는 페이지에 앞서는 페이지의 매핑 정보를 쓰기 동작이 수행되는 페이지의 예비 영역에 누적적으로 기록한다. 매핑 정보 복원부는 정전 발생시 각각의 블록을 구성하는 페이지 그룹들의 대표 페이지 또는 최근 페이지의 예비 영역에 기록되어 있는 통합매핑정보를 기초로 매핑 테이블을 복원한다. 본 발명에 따르면, 갑작스러운 정전으로 인해 RAM이 보유하고 있는 매핑 테이블이 사라진 경우에도 플래시 메모리의 모든 페이지를 읽을 필요 없이 통합적인 매핑 정보가 기록되어 있는 페이지에 선택적으로 접근하여 정전 이전의 매핑 테이블을 빠르게 복원할 수 있다.

Description

페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법{Apparatus and method for managing flash memory using page level mapping algorithm}
본 발명은 플래시 메모리 관리 장치 및 방법에 관한 것으로, 보다 상세하게는 페이지 단위의 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법에 관한 것이다.
NAND 플래시 메모리(flash memory)는 임베디드, 대용량 저장장치 시장에서 저전력, 내충격성(shock resistance), 빠른 랜덤 읽기(random read) 등의 장점으로 인해 널리 사용되고 있다. 그러나 기존의 플래시 메모리 장치는 플래시 메모리가 지닌 고유한 물리적 특성에 의해 최대 성능을 가진 장치를 구현하지 못하고 있는 실정이다. 플래시 메모리가 가진 고유한 물리적 특징은 다음과 같다. 쓰기(write)를 수행하기 위해서는 소거(erase)가 선행되어야 하고, 읽기/쓰기(read/write)는 페이지(page) 단위로 수행되는 반면에 소거(erase)는 블록(block) 단위로 수행되며, 읽기(read)와 쓰기(write)에 소모되는 시간이 상이하다. 이와 같은 플래시 메모리의 고유한 물리적 특징으로 인해 특정한 페이지에 쓰기 동작을 수행하고자 할 경우에 해당 페이지에 이미 저장된 데이터가 존재하면 해당 페이지가 속해 있는 블록을 소거한 이후에 쓰기 동작의 수행이 가능하며, 동일한 블록에 대해 일정 횟수 이상의 소거 동작을 수행하면 해당 블록을 더 이상 사용할 수 없게 된다.
이와 같은 플래시 메모리가 지닌 특징에 기인한 단점을 극복하기 위해 현재 플래시 변환 층(Flash Translation Layer : FTL)을 사용하고 있다. FTL은 파일 시스템으로부터 입력받은 논리적 페이지 번호(Logical Page Number : LPN)를 물리적 페이지 번호(Physical Page Number : PPN)로 변환하여 실제 플래시 메모리에 접근한다. FTL은 이와 같은 주소 변환을 위해 매핑 테이블을 생성하며, 매핑 정보는 랜덤 액세스 메모리(Random Access Memory : RAM)에 저장된다.
한편 플래시 메모리는 기본적으로 비휘발성의 저장 소자이기 때문에 전원 공급이 중단되어도 기록된 데이터가 사라지지 않는다. 그러나 매핑 테이블은 휘발성 소자인 RAM에 저장되기 때문에 정전 발생시 사라지게 된다. 이와 관련하여 파일 시스템은 저장 장치에 접근할 때 논리적 페이지 번호를 이용하기 때문에 매핑 테이블이 존재하지 않으면 플래시 메모리에 저장되어 있는 데이터에 접근할 수 없게 된다. 따라서 정전에 대응하여 플래시 메모리의 복구 방법이 구현되어 있지 않다면 정전 발생 직전에 변경된 데이터가 사라질 수 있으며, 나아가 전체 데이터를 복구할 수 없는 경우가 발생할 수도 있다.
페이지 단위 매핑 기법에서 사용하는 플래시 기반 저장 장치에서 사용가능한 정전 복구 방법에는 맵 블록 기반 기법과 페이지 기반 기법이 있다. 맵 블록 기반 기법은 플래시 메모리에 별도로 설정된 맵 블록에 매핑 테이블을 저장하고, 매핑 정보가 바뀔 때마다 맵 블록에 저장되어 있는 매핑 테이블의 내용을 갱신한다. 즉 휘발성 메모리인 RAM의 정보가 사라지는 것에 대비하여 비휘발성인 플래시 메모리에 매핑 테이블의 복사본을 저장해 두는 방식이다.
플래시 메모리는 덮어 쓰기를 지원하지 않기 때문에, 메타 블록의 갱신은 기존의 메타 블록을 그대로 유지한 채 변경된 매핑 정보만이 계속적으로 추가되는 방식으로 갱신이 이루어진다. 이때 기존의 메타 블록을 베이스 메타 블록(base meta block)이라 하고, 추가되는 메타 블록을 첨부 메타 블록(append meta block)이라 한다. 그리고 첨부 메타 블록이 어느 정도 쌓이게 되면 베이스 메타 블록과 합병이 일어나 유효한 매핑 정보만으로 베이스 메타 블록을 재구성한다.
따라서 갑작스러운 정전으로 RAM의 매핑 테이블 정보가 사라질 경우 메타 블록에서 매핑 테이블을 읽어서 데이터를 복원할 수 있다. 그러나 물리적 블록 중에서 일정한 영역을 맵 블록으로 할당하여 매핑 정보가 변경될 때마다 맵 블록에 저장함으로써 정전 복구를 보장하는 맵 블록 기반 정전 복구 방법(map block method)은 매핑 정보의 변경시마다 이를 플래시 메모리에 저장하기 위한 추가적인 쓰기 작업을 수행해야 하며, 이는 플래시 메모리 기반 저장 장치의 성능을 저하시키는 요인으로 작용한다.
또한 맵 블록 재구성은 추가적인 쓰기 연산과 삭제 연산을 유발하며, 이 역시 플래시 메모리 기반 저장 장치의 전체적인 성능을 저하시키는 요인으로 작용한다. 그리고 맵 블록을 사용하기 위해서는 맵 블록에 대한 메타 정보에 대한 관리가 필요하다. 맵 블록의 위치는 계속적으로 바뀌기 때문에 이 정보를 지속적으로 갱신해야 한다. 이 작업은 시스템 블록과 체크 포인트 블록을 통해 이루어진다. 시스템 블록과 체크 포인트 블록은 물리적으로 고정된 블록에 할당된다. 맵 블록 재구성을 통해 맵 블록의 물리적 위치가 변경되면 변경된 맵 블록의 PBN을 체크 포인트 블록에 갱신한다. 시스템 블록은 체크 포인트 블록의 PBN을 저장하고 있다. 체크 포인트 블록의 수와 물리적 위치는 변경되지 않기 때문에 플래시 메모리 저장장치 컨트롤러는 시스템 블록을 통해 체크 포인트 블록의 위치를 확인하고 체크 포인트 블록에서 최신의 맵 블록 정보를 확인하게 된다. 따라서 맵 블록의 사용은 맵 블록에 대한 직접적인 갱신 및 재구성 작업 외에도 체크 포인트 블록에 대한 갱신 및 삭제 작업을 유발시키는 것이다. 이 역시 플래시 메모리 기반 저장장치의 성능을 저하시키는 요인이 된다.
페이지 기반 기법은 각 페이지의 예비영역에 해당 페이지의 매핑 정보를 저장하는 방식이다. 페이지의 예비영역에 매핑 정보를 기록하는 작업은 실제 페이지 쓰기 작업을 수행할 때 함께 일어나는 작업이기 때문에 매핑 정보 관리를 위한 추가적인 작업이 발생하지 않는다. 따라서 플래시 메모리 기반 저장장치의 성능 저하가 발생하지 않는다. 하지만 갑작스러운 정전 후 매핑 테이블을 복원하는 과정에서 저장장치의 모든 페이지를 읽어야만 하기 때문에 복원속도가 너무 느리다는 단점이 존재한다.
본 발명이 해결하고자 하는 기술적 과제는, 매핑 정보를 플래시 메모리의 맵 블록에 기록하기 위한 추가적인 쓰기 동작 및 맵 블록 재구성 동작을 제거하여 플래시 메모리의 전체적인 성능을 향상시킴과 동시에 안정적인 정전 복구 능력을 보장할 수 있는 플래시 메모리 관리 장치 및 방법을 제공하는 데 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 매핑 정보를 플래시 메모리의 맵 블록에 기록하기 위한 추가적인 쓰기 동작 및 맵 블록 재구성 동작을 제거하여 플래시 메모리의 전체적인 성능을 향상시킴과 동시에 안정적인 정전 복구 능력을 보장할 수 있는 플래시 메모리 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리 관리 장치의 바람직한 실시예는, 블록을 구성하는 페이지들을 복수의 페이지 그룹으로 구분하고, 첫 번째 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제2매핑 정보를 생성하는 매핑 정보 생성부; 및 각각의 페이지에 대한 쓰기 동작의 수행시 동일한 페이지 그룹에 속하는 페이지들 중에서 쓰기 동작이 수행되는 페이지의 매핑 정보와 상기 쓰기 동작이 수행되는 페이지에 앞서는 페이지의 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 누적적으로 기록하는 매핑 정보 기록부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리 관리 방법의 바람직한 제1실시예는, 블록을 구성하는 페이지들을 복수의 페이지 그룹으로 구분하고, 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제2매핑 정보를 생성하는 매핑 정보 생성 단계; 및 각각의 페이지에 대한 쓰기 동작의 수행시 동일한 페이지 그룹에 속하는 페이지들 중에서 쓰기 동작이 수행되는 페이지의 매핑 정보와 상기 쓰기 동작이 수행되는 페이지에 앞서는 페이지의 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 누적적으로 기록하는 매핑 정보 기록 단계;를 갖는다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 플래시 메모리 관리 방법의 바람직한 제2실시예는, 플래시 메모리에 접근하여 소거 동작의 수행 단위인 블록에 대해 설정된 각각의 페이지 그룹의 마지막에 위치한 대표 페이지의 예비 영역으로부터 순차적으로 해당 페이지 그룹에 속하는 모든 페이지의 매핑 정보가 누적적으로 기록되어 있는 통합 매핑 정보를 독출하는 통합 매핑 정보 독출 단계; 상기 통합 매핑 정보가 기록되어 있지 않은 미완성 대표 페이지에 도달하면, 상기 미완성 대표 페이지가 속하는 페이지 그룹의 페이지 중에서 시간적으로 가장 늦게 쓰기 동작이 수행된 페이지인 최근 페이지를 검색하고, 상기 최근 페이지의 예비 영역으로부터 상기 미완성 대표 페이지가 속하는 페이지 그룹의 첫 번째 페이지로부터 상기 최근 페이지까지의 매핑 정보가 누적적으로 기록되어 있는 누적 매핑 정보를 독출하는 누적 매핑 정보 독출 단계; 및 상기 통합 매핑 정보와 상기 누적 매핑 정보를 통합하여 상기 블록에 대한 매핑 테이블을 복원하는 매핑 테이블 복원 단계;를 갖는다.
본 발명에 따른 플래시 메모리 관리 장치 및 방법에 의하면, 블록에 설정된 각각의 페이지 그룹의 대표페이지에 페이지 그룹에 속한 모든 페이지의 매핑 정보를 누적하여 통합 매핑 정보를 구성함으로써, 갑작스러운 정전으로 인해 RAM이 보유하고 있는 매핑 테이블이 사라진 경우에도 플래시 메모리의 모든 페이지를 읽을 필요없이 통합적인 매핑 정보가 기록되어 있는 페이지에 선택적으로 접근하여 정전 이전의 매핑 테이블을 빠르게 복원할 수 있다. 또한, 플래시 메모리 저장 장치의 동작 중에는 매핑 테이블 복원을 위한 매핑 정보의 관리를 위한 맵 블록을 사용하지 않기 때문에 플래시 메모리에 대한 추가적인 쓰기 연산 및 맵 블록 재구성 작업이 발생하지 않으므로, 플래시 메모리 저장 장치의 동작 성능이 향상된다. 나아가, 플래시 메모리 저장 장치의 동작 중 맵 블록의 사용을 제거함으로써 맵 블록에 대한 메타 정보에 관리를 위한 오버헤드 역시 줄일 수 있으며, 이에 의해 플래시 메모리 저장 장치의 성능을 향상시킬 수 있다. 그리고 시스템의 종료시에 RAM에 기록된 최신의 매핑 테이블을 맵 블록에 저장하는 작업을 수행하는 플래시 메모리 기반의 저장장치에서 정상적인 시스템 종료 후 재부팅 시 맵 블록에서 매핑 테이블을 읽어 오기 때문에 정전 복구 메커니즘으로 인한 플래시 메모리 부팅 속도의 저하를 유발하지 않는다.
도 1은 본 발명에 따른 플래시 메모리 관리 장치에 대한 바람직한 실시예의 구성을 도시한 도면,
도 2a는 블록의 첫 번째 페이지 그룹에 속하는 페이지와 나머지 그룹들에 속하는 페이지에 설정된 예비 영역을 도시한 도면,
도 2b는 매핑 정보의 예를 도시한 도면,
도 3은 블록 내 페이지 그룹의 구분 예를 도시한 도면,
도 4는 매핑 정보의 축적 과정을 도시한 도면,
도 5는 본 발명에 따른 플래시 메모리 관리 방법에서 매핑 정보를 플래시 메모리에 기록하는 과정을 도시한 흐름도, 그리고,
도 6은 본 발명에 따른 플래시 메모리 관리 방법에서 정전 발생시에 플래시 메모리에 기록된 매핑 정보를 기초로 매핑 테이블을 복원하는 과정을 도시한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 플래시 메모리 관리 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 플래시 메모리 관리 장치에 대한 바람직한 실시예의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 플래시 메모리 관리 장치(100)는 매핑 정보 생성부(110), 버퍼부(120), 매핑 정보 기록부(130) 및 매핑 정보 복원부(140)를 구비한다.
매핑 정보 생성부(110)는 블록을 구성하는 각각의 페이지에 설정된 예비 영역(spare region)에 기록될 매핑 정보를 생성한다. 도 2a에는 블록의 첫 번째 페이지 그룹에 속하는 페이지와 나머지 페이지 그룹에 속하는 페이지에 설정된 예비 영역이 도시되어 있다. 도 2a에 도시된 블록의 페이지 구성은 2 기가바이트 멀티 레벨 셀 NAND 플래시 메모리를 기준으로 한 것이다.
블록의 첫 번째 페이지 그룹에 속하는 페이지에 설정된 예비 영역은 에러 정정 코드(Error Correction Code : ECC)가 기록되는 63 바이트의 ECC 영역, 블록 정보가 기록되는 1 바이트의 블록 정보 영역, 쓰기 카운터가 기록되는 4 바이트의 블록 쓰기 카운터 영역 및 매핑 정보가 기록되는 57 바이트의 매핑 정보 영역으로 구분된다. 그리고 블록의 나머지 페이지 그룹에 속하는 페이지들에 설정된 예비 영역은 63 바이트의 ECC 영역과 62 바이트의 매핑 정보 영역만으로 구분된다. 블록의 모든 페이지에 설정된 예비 영역의 나머지 3 바이트는 다른 용도를 위해 유보된다.
블록 정보 영역에는 배드 블록 표시(Bad Block Indicator)와 프리 블록 표시(Free Block Indicator)의 두 가지 정보가 기록된다. 배드 블록은 플래시 메모리 제조 시에 결함이 존재하여 사용할 수 없는 블록과 플래시 메모리의 사용 중에 발생하는 블록이 존재할 수 있으며, 이와 같은 배드 블록들에 대한 정보는 전원 공급 동작 시에 반드시 사용자 또는 컨트롤러에 제공되어야 한다. 그리고 사용자 또는 컨트롤러는 플래시 메모리 장치로부터 제공되는 배드 블록의 주소를 참조하여 매핑 테이블(Mapping Table)을 구성하게 된다. 프리 블록은 현재 아무런 데이터도 기록되어 있지 않은 블록을 의미한다. 이러한 블록 정보 영역은 정전 복구 및 시스템 부팅 시 사용된다. 배드 블록으로 표시된 경우에 해당 블록은 사용 가능하지 않은 블록이므로, 정전 복구 과정이 수행되지 않는다. 또한 프리 블록으로 표시된 경우에는 아직 사용하지 않은 블록이므로, 역시 정전 복구 과정이 수행되지 않는다.
블록 쓰기 카운터 영역에는 쓰기 카운터가 기록된다. 쓰기 카운터는 프리 블록이 사용을 위해 처음 할당될 때마다 값이 하나씩 증가한다. 따라서 카운터의 크기를 비교하면 각각의 블록이 할당된 순서를 알 수 있다. 플래시 메모리 기반 저장장치에서 쓰기 작업은 할당된 블록의 모든 페이지를 다 사용할 때까지 진행되다가 더 이상 기록할 공간이 없을 경우 새로운 프리 블록을 할당하여 쓰기 작업을 계속 진행한다. 결과적으로 쓰기 카운터를 이용하여 각 블록의 할당 순서를 확인함으로써 블록의 사용 순서를 파악할 수 있다. 쓰기 카운터의 크기와 관련하여, 2 기가바이트 멀티 레벨 셀을 사용하는 경우에 4096개의 블록이 각각 10,000번씩 카운터를 사용하게 되므로, 쓰기 카운터의 크기는 4 바이트면 충분하다.
매핑 정보 영역에는 페이지들의 매핑 정보가 축적되어 저장된다. 도 2b에는 예비영역에 저장되는 매핑 정보의 예가 도시되어 있다. 도 2b를 참조하면, 각각의 페이지에 대응하는 매핑 정보는 크기가 19 비트인 해당 페이지의 논리적 페이지 번호이다. 본 실시예에서 참조한 2 기가바이트 멀티 레벨 셀 NAND 플래시 메모리는 총 652,288개의 페이지를 가지고 있다. 따라서 모든 페이지를 표현하기 위해서는 최소 19 비트가 필요하다. 이와 같은 매핑 정보는 하나의 블록을 구성하는 각각의 페이지에 순차적으로 누적되어 기록된다. 따라서 블록의 첫 번째 페이지의 매핑 정보 영역에는 해당 페이지에 대응하는 한 개의 매핑 정보가 기록되며, 블록의 열 번째 페이지의 매핑 정보 영역에는 첫 번째 페이지로부터 열 번째 페이지 각각에 대응하는 열 개의 매핑 정보가 기록된다.
한편 블록의 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에는 각각 1 바이트와 4 바이트의 블록 정보와 쓰기 카운터가 기록되므로, 19 비트의 논리적 페이지 번호가 기록될 수 있는 공간은 57 바이트이다. 따라서 블록의 첫 번째 페이지그룹에 속하는 페이지들의 매핑 정보가 기록되는 예비 영역에는 총 24개의 페이지의 매핑 정보들만 기록될 수 있다. 따라서 블록의 첫 번째 페이지로부터 스물 네 번째 페이지를 하나의 그룹으로 묶을 수 있다. 이와 달리 블록의 스물 다섯 번째 페이지로부터 마지막 페이지까지는 19 비트의 매핑 정보가 26개까지 기록될 수 있다. 따라서 블록의 스물 다섯 번째 페이지로부터 마지막 페이지들은 26개의 페이지가 하나의 그룹을 구성한다.
도 3에는 블록 내 페이지 그룹의 구분 예가 도시되어 있다. 도 3을 참조하면, 하나의 블록을 구성하는 128개의 페이지들은 24개의 페이지로 이루어진 하나의 제1그룹과 26개의 페이지로 이루어진 네 개의 제2그룹들로 구분된다. 이때 각 그룹의 마지막 페이지에는 그룹에 포함된 다른 페이지들의 매핑 정보가 모두 기록되어 있으므로, 이를 대표 페이지라 한다. 따라서 블록을 구성하는 전체 페이지에 대한 쓰기 동작이 완료되면 모두 5개의 대표 페이지가 생성된다.
이상에서 설명한 바에 따라 매핑 정보 생성부(110)는 블록을 구성하는 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 매핑 정보와 블록의 나머지 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 매핑 정보를 생성한다. 그리고 매핑 정보 생성부(110)에 의해 생성된 매핑 정보는 버퍼부(120)에 저장된다. 이때 플래시 메모리의 내장 RAM의 일부를 버퍼부(120)로 이용할 수 있으며, 각각의 페이지에 대응하여 생성된 매핑 정보를 버퍼부(120)에 저장하여 사용하게 되면 매핑 정보를 축적해 나가는 과정에서 매번 이전 페이지의 스페어 영역을 읽는 작업을 피할 수 있는 이점이 있다.
매핑 정보 기록부(130)는 페이지에 대한 쓰기 작업을 수행할 때 해당 페이지에 대응하는 매핑 정보를 예비 영역에 함께 기록한다. 이때 매핑 정보의 기록은 페이지에 대한 쓰기 작업시 동시에 수행되므로, 추가적인 오버헤드가 발생하지 않게 된다. 이러한 매핑 정보 기록부(130)의 동작은 하나의 페이지 그룹을 구성하는 모든 페이지에 대한 매핑 정보의 기록이 완료될 때까지 반복적으로 수행되며, 하나의 페이지 그룹에 대한 매핑 정보 기록이 완료되면 버퍼부(120)가 초기화된다.
도 4에는 매핑 정보의 축적 과정이 도시되어 있다. 도 4에서 B는 바이트(Byte), b는 비트(Bit), ECC는 에러 정정 코드, 그리고 LPN은 논리적 페이지 번호를 의미한다. 도 4를 참조하면, 매핑 정보 생성부(110)에 의해 생성되어 버퍼부(120)에 저장된 블록의 첫 번째 페이지에 대응하는 매핑 정보는 첫 번째 페이지에 대한 쓰기 동작의 수행시 매핑 정보 기록부(130)에 의해 플래시 메모리의 블록의 첫 번째 페이지의 예비 영역에 기록된다. 이때 블록의 첫 번째 페이지 그룹에 속하는 페이지에 대응하는 매핑 정보는 블록 정보, 쓰기 카운터 및 첫 번째 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함한다.
다음으로 매핑 정보 생성부(110)는 두 번째 페이지에 대응하는 매핑 정보인 두 번째 페이지의 논리적 페이지 번호를 버퍼부(120)에 저장한다. 이때 매핑 정보 생성부(110)는 두 번째 페이지에 대응하는 매핑 정보를 블록의 첫 번째 페이지에 대응하는 매핑 정보가 저장되어 있는 버퍼부(120)의 저장 공간에 이어서 저장한다. 그리고 매핑 정보 기록부(130)는 두 번째 페이지에 대한 쓰기 동작의 수행시에 버퍼부(120)에 저장되어 있는 블록의 첫 번째 페이지에 대응하는 매핑 정보와 두 번째 페이지에 대응하는 매핑 정보를 모두 블록의 두 번째 페이지의 예비 영역에 기록한다.
매핑 정보 생성부(110)와 매핑 정보 기록부(130)는 첫 번째 페이지 그룹에 대해 이상의 방식에 의해 각각의 페이지의 예비 영역에 매핑 정보를 기록한다. 그리고 두 번째 페이지 그룹부터 다섯 번째 페이지 그룹에 대해서 매핑 정보 생성부(110)는 각 페이지의 논리적 페이지 번호만으로 이루어진 매핑 정보를 생성하여 버퍼부(120)에 누적적으로 저장하며, 매핑 정보 기록부(130)는 각각의 페이지에 대한 쓰기 동작의 수행시 버퍼부(120)에 저장되어 있는 해당 페이지의 매핑 정보를 함께 기록한다.
매핑 정보 복원부(140)는 정전 발생시 각각의 블록을 구성하는 페이지들의 예비 영역에 기록되어 있는 정보를 기초로 매핑 테이블을 복원한다. 정전 발생시 종래의 맵 블록 기법을 사용하는 FTL에서는 계속적으로 변하는 논리적 페이지 번호(Logical Page Number : LPN)와 물리적 페이지 번호(Physical Page Number : PPN)의 매핑 관계가 맵 테이블에 누적되어 기록되어 있기 때문에 맵 블록만 읽으면 데이터 블록과 프리 블록 모두 복원이 가능하다. 이와 달리 본 발명은 플래시 메모리의 동작 시간(runtime)에 맵 블록을 이용하여 매핑 테이블을 관리하지 않기 때문에 새로운 방법이 요구된다. 따라서 갑작스러운 정전이 발생하면, 매핑 정보 복원부(140)는 각각의 블록에 대한 매핑 테이블의 복원과정을 수행한다.
특정한 블록에 대한 매핑 테이블의 복원시 매핑 정보 복원부(140)는 가장 먼저 블록의 첫 번째 페이지 그룹의 대표 페이지에 접근하여 예비 영역으로부터 통합 매핑 정보를 독출한 후 매핑 테이블을 구성한다. 만약 첫 번째 페이지 그룹의 대표 페이지의 예비 영역이 비어있다면, 매핑 정보 복원부(140)는 블록의 가장 첫 번째 페이지의 예비 영역을 독출하여 해당 블록이 프리 블록인지를 확인한다. 이때 해당 블록이 프리 블록으로 확인되면 해당 블록은 전혀 사용되지 않은 블록이므로, 매핑 정보 복원부(140)는 해당 블록에 대한 복원 과정을 종료한다. 이와 달리 해당 블록이 프리 블록이 아니면, 매핑 정보 복원부(140)는 첫 번째 페이지 그룹 내에서 가장 최근에 갱신된 페이지를 찾는다. 최근에 갱신된 페이지에는 첫 번째 페이지 그룹에 속하는 모든 페이지에 대한 매핑 정보가 축적되어 있고, 그 이후의 페이지에는 더 이상 쓰기 작업이 발생하지 않았음을 알 수 있으므로, 매핑 정보 복원부(140)는 해당 블록에 대한 매핑 테이블을 복원할 수 있다. 이 과정에서 최근에 갱신된 페이지를 찾기 위해 이진 트리 방식 등 다양한 검색 방법이 사용될 수 있다.
첫 번째 페이지 그룹의 대표 페이지의 예비 영역으로부터 통합 매핑 정보가 독출되면, 매핑 정보 복원부(140)는 두 번째 페이지 그룹에 대해서도 동일한 방법에 의해 매핑 정보의 복원과정을 수행하여 해당 블록의 매핑 테이블을 복원한다. 즉, 페이지 그룹의 대표 페이지에서 통합 매핑 정보 읽기에 성공하면, 다음 페이지 그룹에 대해 통합 매핑 정보의 읽기를 시도하고, 이와 달리 페이지 그룹의 대표 페이지에서 통합 매핑 정보 읽기에 실패하면, 해당 페이지 그룹에 속한 페이지 중 가장 최근에 갱신된 페이지로부터 독출한 누적 매핑 정보와 이전 페이지 그룹의 대표 페이지로부터 독출된 통합 매핑 정보에 의해 해당 블록의 매핑 테이블을 복원한다. 이와 같은 매핑 테이블의 복원 과정에서 상이한 블록에서 동일한 LPN을 가진 페이지가 발견되면, 매핑 정보 복원부(140)는 충돌이 발생한 블록들의 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록되어 있는 쓰기 카운터를 비교하여 어느 블록이 더 최근에 갱신되었는지를 확인하고 더 최근에 갱신된 블록의 페이지를 유효한 페이지로 분류한다. 복원과정에서 우선 첫 번째 페이지 그룹에 속하는 페이지에 접근하므로 해당 블록의 쓰기 카운터 확인을 위한 추가적인 읽기 작업은 발생하지 않는다.
한편 본 발명에 따른 플래시 메모리 관리 장치(100)는 별도의 맵 블록을 할당하여 각각의 블록에 대응하는 매핑 테이블을 관리할 수 있다. 이 경우에 추가적인 쓰기 동작의 발생을 방지하기 위해 플래시 메모리 기반 저장 장치의 동작 중에는 맵 블록에 매핑 테이블을 갱신하지 않고 정상적인 시스템 종료 시에만 맵 블록에 매핑 테이블을 갱신한다. 따라서 갑작스러운 정전이 아닌 정상적인 종료 후의 재부팅의 경우 매핑 정보 복원부(140)는 맵 블록에 접근하여 데이터 블록에 대한 매핑 테이블을 구성한다.
도 5는 본 발명에 따른 플래시 메모리 관리 방법에서 매핑 정보를 플래시 메모리에 기록하는 과정을 도시한 흐름도이다.
도 5를 참조하면, 매핑 정보 생성부(110)는 블록을 구성하는 페이지들을 복수의 그룹으로 구분하고, 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제2매핑 정보를 생성한다(S500). 이때 제1매핑 정보는 블록 정보, 쓰기 카운터 및 첫 번째 페이지 그룹에 속하는 페이지들의 LPN으로 구성되며, 제2매핑 정보는 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 LPN으로 구성된다. 다음으로, 매핑 정보 생성부(110)는 생성한 제1매핑 정보와 제2매핑 정보를 생성 순서대로 버퍼부(120)에 누적적으로 저장한다(S510). 다음으로 매핑 정보 기록부(130)는 각각의 페이지에 대한 쓰기 동작의 수행시 버퍼부(120)에 저장되어 있는 해당 페이지에 대응하는 누적된 매핑 정보를 해당 페이지의 예비 영역에 함께 기록한다(S520). 이러한 매핑 정보 기록부(130)의 동작은 하나의 페이지 그룹을 구성하는 모든 페이지에 대한 매핑 정보의 기록이 완료될 때까지 반복적으로 수행되며, 하나의 페이지 그룹에 대한 매핑 정보 기록이 완료되면 버퍼부(130)가 초기화된다(S530).
도 6은 본 발명에 따른 플래시 메모리 관리 방법에서 정전 발생시에 플래시 메모리에 기록된 매핑 정보를 기초로 매핑 테이블을 복원하는 과정을 도시한 흐름도이다.
도 6을 참조하면, 정전 발생시 매핑 정보 복원부(140)는 각각의 블록에 순차적으로 접근하여 첫 번째 페이지 그룹의 대표 페이지에 접근하여 예비 영역으로부터 통합 매핑 정보를 독출한다(S600). 이때 첫 번째 페이지 그룹의 대표 페이지의 예비 영역이 비어 있으면(S605), 매핑 정보 복원부(140)는 블록의 가장 첫 번째 페이지의 예비 영역을 독출하여 해당 블록이 프리 블록인지를 확인한다(S610). 만약 해당 블록이 프리 블록으로 확인되면 해당 블록은 전혀 사용되지 않은 블록이므로, 매핑 정보 복원부(140)는 해당 블록에 대한 복원 과정을 종료한다(S615). 이와 달리 해당 블록이 프리 블록이 아니면, 매핑 정보 복원부(140)는 이진 트리 검색 등의 방법을 통해 첫 번째 페이지 그룹 내에서 가장 최근에 갱신된 페이지를 찾는다(S620). 다음으로 매핑 정보 복원부(140)는 해당 블록에 대한 매핑 테이블을 복원한다(S625).
만약 첫 번째 페이지 그룹의 대표 페이지의 예비 영역으로부터 통합 매핑 정보(즉, 첫 번째 페이지 그룹에 속한 모든 페이지의 매핑 정보가 누적된 매핑 정보)가 독출되면(S605), 매핑 정보 복원부(140)는 다음 순서의 페이지 그룹의 대표 페이지에 접근하여 예비 영역으로부터 통합 매핑 정보를 독출한다(S630). 이때 다음 순서의 페이지 그룹의 대표 페이지의 예비 영역이 비어 있으면(S635), 매핑 정보 복원부(140)는 이진 트리 검색 등의 방법을 통해 다음 순서의 페이지 그룹 내에서 가장 최근에 갱신된 페이지를 찾는다(S640). 다음으로 매핑 정보 복원부(140)는 첫 번째 페이지 그룹의 대표 페이지로부터 독출한 통합 매핑 정보와 다음 순서의 페이지 그룹의 가장 최근에 갱신된 페이지로부터 독출한 누적 매핑 정보를 기초로 해당 블록에 대한 매핑 테이블을 복원한다(S645). 이와 달리 다음 순서의 페이지 그룹의 대표 페이지의 예비 영역으로부터 통합 매핑 정보가 독출되면(S635), 매핑 정보 복원부(140)는 마지막 페이지 그룹에 대한 매핑 테이블의 복원과정이 수행되었는지 확인한다(S650). 만약 마지막 페이지 그룹에 대한 매핑 테이블의 복원과정이 수행되지 않았으면, 그 다음 페이지 그룹에 대해 S630단계 내지 S650단계를 수행한다. 이와 달리 마지막 페이지 그룹에 대한 매핑 테이블의 복원과정이 수행되었으면, 해당 블록에 대한 매핑 테이블의 복원은 종료된다. 그리고 S600단계 내지 S650단계는 플래시 메모리의 모든 블록에 대해 매핑 테이블의 복원이 완료될 때까지 반복적으로 수행된다. 이상의 설명에서 통합 매핑 정보는 페이지 그룹의 대표 페이지의 예비 영역에 기록된 매핑 정보로서, 해당 페이지 그룹에 속하는 모든 페이지의 매핑 정보가 누적적으로 포함되어 있다.
상술한 바와 같은 본 발명에 따른 플래시 메모리 관리 장치 및 방법은 페이지의 예비 영역에 매핑 정보를 누적적으로 기록함으로써 논리적 페이지 번호와 물리적 페이지 번호의 관계가 정의된 매핑 정보를 플래시 메모리에 기록하기 위한 추가적인 쓰기 동작을 제거하여 플래시 메모리의 전체적 성능 향상시킨다. 나아가 본 발명에 따른 플래시 메모리 관리 장치 및 방법은 별도의 맵 블록을 이용하지 않을 수 있으므로, 소프트웨어로 구현시 매핑 테이블의 관리를 위한 코딩을 제거할 수 있게 되어 전체적인 코딩의 양이 50 % 가까이 줄어드는 이점이 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (15)

  1. 블록을 구성하는 페이지들을 복수의 페이지 그룹으로 구분하고, 첫 번째 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제2매핑 정보를 생성하는 매핑 정보 생성부; 및
    각각의 페이지에 대한 쓰기 동작의 수행시 동일한 페이지 그룹에 속하는 페이지들 중에서 쓰기 동작이 수행되는 페이지의 매핑 정보와 상기 쓰기 동작이 수행되는 페이지에 앞서는 페이지의 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 누적적으로 기록하는 매핑 정보 기록부;를 포함하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  2. 제 1항에 있어서,
    동일한 페이지 그룹에 속하는 페이지들에 대해 상기 매핑 정보 생성부가 생성한 상기 제1매핑 정보 및 상기 제2매핑 정보가 누적적으로 저장되는 버퍼부를 더 포함하며,
    상기 매핑 정보 기록부는 상기 버퍼부에 저장되어 있는 쓰기 동작이 수행되는 페이지에 대응하는 누적된 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 기록하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  3. 제 2항에 있어서,
    상기 매핑 정보 기록부에 의해 하나의 페이지 그룹에 대한 매핑 정보가 플래시 메모리에 기록되면 상기 버퍼부가 초기화되는 것을 특징으로 하는 플래시 메모리 관리 장치.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 제1매핑 정보는 배드 블록 또는 프리 블록을 나타내는 블록 정보, 프리 블록의 할당 시마다 값이 사전에 설정된 크기만큼 증가하는 카운터 및 첫 번째 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함하고,
    상기 제2매핑 정보는 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  5. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    정전 발생시 각각의 블록을 구성하는 페이지들의 예비 영역에 기록되어 있는 정보를 기초로 매핑 테이블을 복원하는 매핑 정보 복원부를 더 포함하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  6. 제 5항에 있어서,
    상기 매핑 정보 복원부는 상기 블록에 대해 설정된 각각의 페이지 그룹의 마지막에 위치한 대표 페이지의 예비 영역으로부터 순차적으로 독출한 해당 페이지 그룹에 속하는 모든 페이지의 매핑 정보가 누적적으로 기록되어 있는 통합 매핑 정보와, 상기 통합 매핑 정보가 기록되어 있지 않은 미완성 대표 페이지에 도달하면 상기 미완성 대표 페이지가 속하는 페이지 그룹의 페이지 중에서 시간적으로 가장 늦게 쓰기 동작이 수행된 페이지인 최근 페이지의 예비 영역으로부터 독출한 상기 미완성 대표 페이지가 속하는 페이지 그룹의 첫 번째 페이지로부터 상기 최근 페이지까지의 매핑 정보가 누적적으로 기록되어 있는 누적 매핑 정보를 통합하여 상기 블록에 대한 매핑 테이블을 복원하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  7. 제 6항에 있어서,
    상기 매핑 정보 복원부는 상기 블록의 첫 번째 페이지 그룹의 대표 페이지의 예비 영역이 비어 있으면, 상기 블록의 가장 첫 번째 페이지의 예비 영역에 기록되어 있는 블록 정보를 기초로 상기 블록의 사용 여부를 확인하고, 상기 블록이 프리 블록이면 상기 블록에 대한 매핑 테이블의 복원과정을 종료하는 것을 특징으로 하는 플래시 메모리 관리 장치.
  8. 블록을 구성하는 페이지들을 복수의 페이지 그룹으로 구분하고, 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에 기록할 제1매핑 정보와 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 예비 영역에 기록할 제2매핑 정보를 생성하는 매핑 정보 생성 단계; 및
    각각의 페이지에 대한 쓰기 동작의 수행시 동일한 페이지 그룹에 속하는 페이지들 중에서 쓰기 동작이 수행되는 페이지의 매핑 정보와 상기 쓰기 동작이 수행되는 페이지에 앞서는 페이지의 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 누적적으로 기록하는 매핑 정보 기록 단계;를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  9. 제 8항에 있어서,
    상기 매핑 정보 생성 단계와 상기 매핑 정보 기록 단계 사이에, 동일한 페이지 그룹에 속하는 페이지들에 대해 상기 제1매핑 정보 및 상기 제2매핑 정보를 버퍼에 누적적으로 저장하는 매핑 정보 저장 단계를 더 포함하며,
    상기 매핑 정보 기록 단계에서, 상기 버퍼에 저장되어 있는 쓰기 동작이 수행되는 페이지에 대응하는 누적된 매핑 정보를 상기 쓰기 동작이 수행되는 페이지의 예비 영역에 기록하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  10. 제 9항에 있어서,
    상기 매핑 정보 기록 단계를 반복적으로 수행하여 하나의 페이지 그룹에 대한 매핑 정보의 기록이 완료되면, 상기 버퍼를 초기화하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  11. 제 8항 내지 제 10항 중 어느 한 항에 있어서,
    상기 제1매핑 정보는 배드 블록 또는 프리 블록을 나타내는 블록 정보, 프리 블록의 할당 시마다 사전에 설정된 크기만큼 증가하는 카운터 및 첫 번째 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함하고,
    상기 제2매핑 정보는 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  12. 플래시 메모리에 접근하여 소거 동작의 수행 단위인 블록에 대해 설정된 각각의 페이지 그룹의 마지막에 위치한 대표 페이지의 예비 영역으로부터 순차적으로 해당 페이지 그룹에 속하는 모든 페이지의 매핑 정보가 누적적으로 기록되어 있는 통합 매핑 정보를 독출하는 통합 매핑 정보 독출 단계;
    상기 통합 매핑 정보가 기록되어 있지 않은 미완성 대표 페이지에 도달하면, 상기 미완성 대표 페이지가 속하는 페이지 그룹의 페이지 중에서 시간적으로 가장 늦게 쓰기 동작이 수행된 페이지인 최근 페이지를 검색하고, 상기 최근 페이지의 예비 영역으로부터 상기 미완성 대표 페이지가 속하는 페이지 그룹의 첫 번째 페이지로부터 상기 최근 페이지까지의 매핑 정보가 누적적으로 기록되어 있는 누적 매핑 정보를 독출하는 누적 매핑 정보 독출 단계; 및
    상기 통합 매핑 정보와 상기 누적 매핑 정보를 통합하여 상기 블록에 대한 매핑 테이블을 복원하는 매핑 테이블 복원 단계;를 포함하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  13. 제 12항에 있어서,
    상기 블록에 대해 설정된 각각의 페이지 그룹 중에서 첫 번째 페이지 그룹에 속하는 페이지의 예비 영역에는 배드 블록 또는 프리 블록을 나타내는 블록 정보, 프리 블록의 할당 시마다 사전에 설정된 크기만큼 증가하는 카운터 및 블록의 첫 번째 페이지 그룹에 속하는 페이지들의 논리적 페이지 번호를 포함하는 제1매핑 정보가 기록되고,
    상기 페이지 그룹 중에서 첫 번째 페이지 그룹을 제외한 나머지 페이지 그룹에 속하는 페이지들의 예비 영역에는 해당 페이지의 논리적 페이지 번호를 포함하는 제2매핑 정보가 기록되는 것을 특징으로 하는 플래시 메모리 관리 방법.
  14. 제 13항에 있어서,
    상기 매핑 정보 복원 단계에서,
    상기 블록의 첫 번째 페이지 그룹의 대표 페이지의 예비 영역이 비어 있으면 상기 블록의 첫 번째 페이지 그룹에 속하는 페이지들의 예비 영역에 기록되어 있는 블록 정보를 기초로 상기 블록의 사용 여부를 확인한 후 상기 블록이 프리 블록이면 상기 블록에 대한 매핑 테이블의 복원과정을 종료하는 것을 특징으로 하는 플래시 메모리 관리 방법.
  15. 제 8항 내지 제 10항 또는 제 12항 내지 제14항에 기재된 플래시 메모리 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020100067065A 2010-07-12 2010-07-12 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 KR101077904B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100067065A KR101077904B1 (ko) 2010-07-12 2010-07-12 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
PCT/KR2011/005102 WO2012008732A2 (ko) 2010-07-12 2011-07-12 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100067065A KR101077904B1 (ko) 2010-07-12 2010-07-12 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101077904B1 true KR101077904B1 (ko) 2011-10-31

Family

ID=45033554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100067065A KR101077904B1 (ko) 2010-07-12 2010-07-12 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101077904B1 (ko)
WO (1) WO2012008732A2 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101545077B1 (ko) 2014-02-11 2015-08-17 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
KR101548452B1 (ko) 2014-02-11 2015-08-28 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
KR101826778B1 (ko) 2016-09-28 2018-03-22 현대오트론 주식회사 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
CN111722789A (zh) * 2019-03-20 2020-09-29 点序科技股份有限公司 存储器管理方法及存储器存储装置
CN113625964A (zh) * 2021-07-16 2021-11-09 浙江鸿泉电子科技有限公司 基于NandFlash的顺序存储方法、电子设备和存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461387B (zh) * 2014-12-02 2018-04-27 记忆科技(深圳)有限公司 一种提高固态硬盘对未映射区域的读性能的方法
CN104809037B (zh) * 2015-05-13 2018-04-13 深圳芯邦科技股份有限公司 eMMC基于特殊页的快速启动方法及装置
KR102270103B1 (ko) * 2017-07-11 2021-06-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN109766216A (zh) * 2018-12-20 2019-05-17 成都旋极历通信息技术有限公司 一种基于flash的数据掉电位置的恢复方法
CN110232003A (zh) * 2019-05-20 2019-09-13 平安普惠企业管理有限公司 数据恢复方法、装置、电子设备及存储介质
CN111857604A (zh) * 2020-07-31 2020-10-30 记忆科技(深圳)有限公司 分组管理映射反查表快速重建方法、装置、设备及介质
CN117112290A (zh) * 2023-10-20 2023-11-24 广州翼辉信息技术有限公司 一种yaffs文件系统掉电乱码保护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100817087B1 (ko) 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US7886126B2 (en) * 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
KR100882740B1 (ko) * 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100817087B1 (ko) 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101545077B1 (ko) 2014-02-11 2015-08-17 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
KR101548452B1 (ko) 2014-02-11 2015-08-28 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
KR101826778B1 (ko) 2016-09-28 2018-03-22 현대오트론 주식회사 플래쉬 라이프 사이클 및 성능 개선을 고려한 eeprom 에뮬레이션 구현 방법
CN111722789A (zh) * 2019-03-20 2020-09-29 点序科技股份有限公司 存储器管理方法及存储器存储装置
CN111722789B (zh) * 2019-03-20 2024-01-23 点序科技股份有限公司 存储器管理方法及存储器存储装置
CN113625964A (zh) * 2021-07-16 2021-11-09 浙江鸿泉电子科技有限公司 基于NandFlash的顺序存储方法、电子设备和存储介质
CN113625964B (zh) * 2021-07-16 2024-01-26 浙江鸿泉电子科技有限公司 基于NandFlash的顺序存储方法、电子设备和存储介质

Also Published As

Publication number Publication date
WO2012008732A3 (ko) 2012-05-03
WO2012008732A2 (ko) 2012-01-19

Similar Documents

Publication Publication Date Title
KR101077904B1 (ko) 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
USRE45222E1 (en) Method of writing of writing to a flash memory including data blocks and log blocks, using a logical address having a block address portion and page identifying portion, a block address table and a page table
US8301861B2 (en) Startup reconstruction of logical-to-physical address translation data for solid state disks
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
JP5571691B2 (ja) 記憶装置におけるマッピングアドレステーブルの維持
US20150212752A1 (en) Storage system redundant array of solid state disk array
US20100205363A1 (en) Memory device and wear leveling method thereof
US20120284587A1 (en) Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
US20100191897A1 (en) System and method for wear leveling in a data storage device
US10990528B2 (en) Methods and systems for managing physical information of memory units in a memory device
JP6677740B2 (ja) ストレージシステム
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
TWI463313B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
Jung et al. Data loss recovery for power failure in flash memory storage systems
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR101020781B1 (ko) 플래시 메모리를 기반으로 한 데이터베이스 시스템에 대한 로그 관리 방법
US11199983B2 (en) Apparatus for obsolete mapping counting in NAND-based storage devices
Gwak et al. Reducing garbage collection overhead of log-structured file systems with GC journaling
KR100868674B1 (ko) 플래시메모리 관리방법
CN107544866B (zh) 一种日志更新方法与装置
CN114265562B (zh) 一种基于flash存储器的文件存储方法和系统
US20220164135A1 (en) Apparatus, method and computer program for managing memory page updates within non-volatile memory

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
N231 Notification of change of applicant
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: 20141024

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150720

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181024

Year of fee payment: 8