KR101608623B1 - 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법 - Google Patents

전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법 Download PDF

Info

Publication number
KR101608623B1
KR101608623B1 KR1020150092407A KR20150092407A KR101608623B1 KR 101608623 B1 KR101608623 B1 KR 101608623B1 KR 1020150092407 A KR1020150092407 A KR 1020150092407A KR 20150092407 A KR20150092407 A KR 20150092407A KR 101608623 B1 KR101608623 B1 KR 101608623B1
Authority
KR
South Korea
Prior art keywords
user
blocks
recorded
mapping table
block
Prior art date
Application number
KR1020150092407A
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 KR1020150092407A priority Critical patent/KR101608623B1/ko
Application granted granted Critical
Publication of KR101608623B1 publication Critical patent/KR101608623B1/ko
Priority to PCT/KR2016/006392 priority patent/WO2016204529A1/ko
Priority to US15/736,607 priority patent/US20180189144A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant

Abstract

전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법이 개시된다. 메모리 복구 방법은 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정하는 단계; 상기 결정된 제1 사용자 블록들의 스페어(spare) 영역 및 마지막 페이지에 제1 매핑 테이블을 기록하는 단계;상기 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하는 단계; 상기 결정된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록하는 단계; 비정상적인 전원 손실 이후 상기 결정된 제1 사용자 블록들에 기록된 제1 매핑 테이블을 복구하는 단계; 상기 맵 블록에 스냅샷 형태로 기록된 제2 매핑 테이블을 복구하는 단계; 및 상기 제1 매핑 테이블 및 제2 매핑 테이블을 이용하여 비정상적인 전원 손실 직전에 데이터가 기록되고 있던 제1 사용자 블록을 확인하는 단계를 포함할 수 있다.

Description

전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법{APPARATUS AND METHOD FOR MEMORY RECOVERY TO EFFECTIVE DATA RECOVERY AFTER POWER LOSS}
본 발명은 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법에 관한 것으로, 보다 구체적으로는 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 맵 테이블 저장 시기를 유연하게 조절하는 장치 및 방법에 관한 것이다.
최근 플래시 메모리 기반 저장 장치는 모바일 시스템, 개인 휴대용 컴퓨터 시스템의 주요 저장매체로 각광받고 있다. 이러한 플래시 메모리 기반 저장 장치는 앞으로도 기존의 하드디스크를 대체하는 차세대 저장매체로 꾸준히 사용될 것으로 예상된다.
하지만 플래시 메모리는 플래시 메모리를 구성하는 반도체 소자의 특성에 따라 많은 단점이 존재하므로 이를 효과적으로 분석하고 해결하기 위한 메커니즘이 필요하다. 이를 위해, 플래시 메모리 기반 저장 장치는 컨트롤러(controller)를 통해 장착된 플래시 메모리의 단점을 보완하여 사용된다. 플래시 메모리의 단점으로는 덮어쓰기가 불가능하며, 삭제 횟수에도 제한이 있다는 점이다. 따라서, 이러한 단점을 극복하고 기존의 하드디스크와 같은 인터페이스를 제공하기 위해 데이터가 저장되는 플래시 메모리의 영역을 유연하게 접근할 수 있는 매핑(mapping) 기법이 필요하다. 이러한 매핑 테이블(mapping table)은 빈번하게 변경되며, 또한 빠르게 접근되어야 하기 때문에 플래시 메모리 이외에 SRAM 혹은 DRAM과 같은 휘발성 메모리에 보관된다.
그러나, 이러한 SRAM 혹은 DRAM과 같은 휘발성 메모리는 전원이 손실될 경우 저장데이터가 증발하는 문제가 있다. 이를 해결하기 위하여 플래시 메모리 기반 저장 장치는 SRAM 혹은 DRAM과 같은 휘발성 메모리에 보관된 매핑 테이블을 전체, 혹은 부분 별로 나누어 별도의 플래시 메모리에 저장하는 기법을 사용하여야 한다.
이때, 지나치게 빈번히 매핑 테이블을 플래시 메모리에 저장하면 이를 처리하기 위한 추가 저장 공간이 크게 확보되어야 하고, 지연 시간이 크게 발생한다는 측면에서 플래시 메모리 기반 저장 장치의 성능을 저하시킬 수 있다. 전원 손실 이후 재부팅 시간은 전원 손실 이전의 상태로 복구하기 위하여 저장영역을 검사하고 매핑 테이블을 복구하는데 걸리지만, 사용자가 수긍할 수 있는 정도의 지연만 발생하도록 관리하여야 한다. 결과적으로, 매핑 테이블의 저장빈도와 전원 손실 이후 재부팅 시간은 trade-off 관계가 성립하며 이를 균형 있게 관리할 수 있는 방법이 사용되어야 한다.
그러나, 종래의 기술들은 이러한 매핑 테이블의 저장빈도와 전원 손실 이후 재부팅 시간 간의 트레이드 오프(trade-off) 관계에 대한 정확한 분석을 기반으로 제작되지 않은 문제가 있었다.
본 발명은 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법에 관한 것으로, 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 맵 테이블 저장 시기를 유연하게 조절하는 장치 및 방법을 제공한다.
본 발명의 일실시예에 따른 메모리 복구 방법은 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정하는 단계; 상기 결정된 제1 사용자 블록들의 스페어(spare) 영역 및 마지막 페이지에 제1 매핑 테이블을 기록하는 단계; 상기 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하는 단계; 상기 전환된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록하는 단계; 비정상적인 전원 손실 이후 상기 결정된 제1 사용자 블록들에 기록된 제1 매핑 테이블을 복구하는 단계; 상기 맵 블록에 스냅샷 형태로 기록된 제2 매핑 테이블을 복구하는 단계; 및 상기 제1 매핑 테이블 및 제2 매핑 테이블을 이용하여 비정상적인 전원 손실 직전에 데이터가 기록되고 있던 제1 사용자 블록을 확인하는 단계를 포함할 수 있다.
상기 결정하는 단계는 상기 제1 사용자 블록들에 기록된 제1 매핑 테이블에 대한 복구 시간 및 상기 맵 블록에 기록된 제2 매핑 테이블에 대한 복구 시간을 이용하여 상기 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 제1 사용자 블록들의 개수를 결정할 수 있다.
상기 제2 매핑 테이블은 사용자 블록들 중 매핑 테이블이 변경된 제1 사용자 블록들에 대한 정보를 포함하고, 상기 맵 블록 내에 순차적으로 기록될 수 있다.
상기 제1 매핑 테이블을 복구하는 단계는 상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 확인하는 단계; 및 상기 확인된 첫번째 페이지 정보 및 마지막 페이지 정보에 따라 제1 사용자 블록의 전부에 데이터가 기록되었는 지 여부를 판단하여 제1 사용자 블록의 제1 매핑 테이블을 추출하는 단계를 포함할 수 있다.
상기 제1 매핑 테이블을 추출하는 단계는 상기 제1 사용자 블록의 전부에 데이터가 기록된 경우, 제1 사용자 블록의 마지막 페이지를 이용하여 제1 매핑 테이블을 복구하는 단계; 또는 상기 제1 사용자 블록의 전부에 데이터가 기록되지 않은 경우, 상기 제1 사용자 블록의 스페어 영역을 이용하여 제1 매핑 테이블을 복구하는 단계를 포함할 수 있다.
상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보는 상기 기록할 예정인 제1 사용자 블록들이 할당되어 사용되는 시점에서 상기 기록할 예정인 제1 사용자 블록들의 할당 순서 정보를 포함하고, 상기 기록할 예정인 제1 사용자 블록들 각각의 마지막 페이지 정보는 상기 기록할 예정인 제1 사용자 블록들의 페이지가 모두 사용되면 상기 기록할 예정인 제1 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
상기 제2 매핑 테이블을 복구하는 단계는 복수의 맵 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인하는 단계; 상기 확인된 맵 블록을 이용하여 제2 매핑 테이블을 복구하는 단계를 포함할 수 있다.
상기 복수의 맵 블록들 각각의 첫 번째 페이지 정보는 맵 블록들이 할당되어 사용되는 시점에서 상기 맵 블록들의 할당 순서 정보를 포함하고, 상기 복수의 맵 블록들 각각의 마지막 페이지 정보는 맵 블록들의 페이지가 모두 사용되면 상기 맵 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
상기 기록할 예정인 제1 사용자 블록들은 기록 순서 정보를 포함하여 시스템 블록의 시스템 페이지에 순차적으로 저장될 수 있다.
상기 기록할 예정인 제1 사용자 블록들은 복수의 시스템 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 확인될 수 있다.
상기 복수의 시스템 블록들 각각의 첫 번째 페이지 정보는 시스템 블록들이 할당되어 사용되는 시점에서 상기 시스템 블록들의 할당 순서 정보를 포함하고, 상기 복수의 시스템 블록들 각각의 마지막 페이지 정보는 시스템 블록들의 페이지가 모두 사용되면 상기 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
본 발명의 일실시예에 따른 메모리 복구 장치에 있어서, 복수의 동작들을 수행하는 컨트롤러를 포함하고, 상기 복수의 동작들은, 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정하는 동작; 상기 결정된 제1 사용자 블록들의 스페어(spare) 영역 및 마지막 페이지에 제1 매핑 테이블을 기록하는 동작; 상기 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하는 동작; 상기 전환된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록하는 동작; 비정상적인 전원 손실 이후 상기 결정된 제1 사용자 블록들에 기록된 제1 매핑 테이블을 복구하는 동작; 상기 맵 블록에 스냅샷 형태로 기록된 제2 매핑 테이블을 복구하는 동작; 및 상기 제1 매핑 테이블 및 제2 매핑 테이블을 이용하여 비정상적인 전원 손실 직전에 데이터가 기록되고 있던 제1 사용자 블록을 확인하는 동작을 포함할 수 있다.
상기 컨트롤러는 상기 제1 사용자 블록들에 기록된 제1 매핑 테이블에 대한 복구 시간 및 상기 맵 블록에 기록된 제2 매핑 테이블에 대한 복구 시간을 이용하여 상기 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 제1 사용자 블록들의 개수를 결정할 수 있다.
상기 제2 매핑 테이블은 사용자 블록들 중 매핑 테이블이 변경된 제1 사용자 블록들에 대한 정보를 포함하고, 상기 맵 블록 내에 순차적으로 기록될 수 있다.
상기 컨트롤러는 상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 확인하고, 상기 확인된 첫번째 페이지 정보 및 마지막 페이지 정보에 따라 제1 사용자 블록의 전부에 데이터가 기록되었는 지 여부를 판단하여 제1 사용자 블록의 제1 매핑 테이블을 추출할 수 있다.
상기 컨트롤러는 상기 제1 사용자 블록의 전부에 데이터가 기록된 경우, 제1 사용자 블록의 마지막 페이지를 이용하여 제1 매핑 테이블을 복구하거나 상기 제1 사용자 블록의 전부에 데이터가 기록되지 않은 경우, 상기 제1 사용자 블록의 스페어 영역을 이용하여 제1 매핑 테이블을 복구할 수 있다.
상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보는 상기 기록할 예정인 제1 사용자 블록들이 할당되어 사용되는 시점에서 상기 기록할 예정인 제1 사용자 블록들의 할당 순서 정보를 포함하고, 상기 기록할 예정인 제1 사용자 블록들 각각의 마지막 페이지 정보는 상기 기록할 예정인 제1 사용자 블록들의 페이지가 모두 사용되면 상기 기록할 예정인 제1 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
상기 컨트롤러는 복수의 맵 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인하고, 상기 확인된 맵 블록을 이용하여 제2 매핑 테이블을 복구할 수 있다.
상기 복수의 맵 블록들 각각의 첫 번째 페이지 정보는 맵 블록들이 할당되어 사용되는 시점에서 상기 맵 블록들의 할당 순서 정보를 포함하고, 상기 복수의 맵 블록들 각각의 마지막 페이지 정보는 맵 블록들의 페이지가 모두 사용되면 상기 맵 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
상기 기록할 예정인 제1 사용자 블록들은 기록 순서 정보를 포함하여 시스템 블록의 시스템 페이지에 순차적으로 저장될 수 있다.
상기 기록할 예정인 제1 사용자 블록들은 복수의 시스템 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 확인될 수 있다.
본 발명의 일실시예에 따르면, 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 사용자 블록들의 개수를 결정함으로써 맵 테이블의 저장 시기를 유연하게 조절할 수 있다.
도 1은 본 발명의 일실시예에 따른 메모리 저장 장치를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 플래시 메모리의 구성을 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 플래시 메모리 내의 데이터 블록을 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 제1 사용자 블록들의 개수를 결정하는 방법을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 사용자가 요구하는 매핑 테이블의 복구 시간 별 복구 가능한 사용자 블록의 개수를 도시한 도면이다.
도 6은 본 발명의 일실시예에 따른 매핑 테이블 기록 방법을 도시한 도면이다.
도 7은 본 발명의 일실시예에 따른 매핑 테이블 복구 방법을 도시한 도면이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 메모리 저장 장치를 도시한 도면이다.
메모리 복구 장치(100)는 컨트롤러(110), 캐시 메모리(120), 및 플래시 메모리(130)로 구성될 수 있다. 컨트롤러(110)는 플래시 메모리(130)에 데이터를 저장하거나, 저장된 데이터를 읽고 삭제할 수 있다. 본 발명에서 컨트롤러(130)는 시스템 페이지를 이용하여 플래시 메모리(130)에 데이터를 저장하고, 비정상적인 전원 손실 이후 빠르게 매핑 테이블을 복구하는 방법을 제공한다. 이때, 시스템 페이지에는 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들에 대한 기록 순서 정보가 저장 될 수 있으며, 제1 사용자 블록들은 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 결정될 수 있다. 자세한 내용은 이하 도면을 통해 설명하도록 한다.
캐시 메모리(120)는 매핑 테이블을 보관 할 수 있다. 매핑 테이블은 데이터가 플래시 메모리(130)에 저장될 때마다 빈번하게 변경되어야 하며, 또한 빠르게 접근되어야 하기 때문에 SRAM 또는 DRAM과 같은 휘성발 메모리에 보관 될 수 있다. 그러나, 이러한 휘발성 메모리는 전원이 손실될 경우 메모리 내에 저장된 데이터가 증발하는 문제가 발생할 수 있다. 따라서, 캐시 메모리(120) 내에 저장된 매핑 테이블은 전체가 별도의 플래시 메모리(130)에 저장되거나, 변경된 부분을 나누어 별도의 플래시 메모리(130)에 저장될 필요가 있다.
플래시 메모리(130)는 복수의 데이터 블록들로 구성될 수 있다. 각각의 데이터 블록들은 복수의 페이지로 구성되며, 각각의 페이지에 데이터가 저장될 수 있다. 데이터 블록들은 데이터 블록 내의 페이지에 저장하는 정보에 따라 시스템 블록, 맵 블록 및 사용자 블록으로 표현될 수 있다. 플래시 메모리(130)의 자세한 구성은 도 2를 통해 설명하도록 한다.
도 2은 본 발명의 일실시예에 따른 플래시 메모리의 구성을 도시한 도면이다.
플래시 메모리(130)는 복수의 데이터 블록들로 구성될 수 있다. 이때, 시스템 페이지가 저장된 데이터 블록은 시스템 블록으로 정의하고, 매핑 테이블이 저장된 데이터 블록은 맵 블록으로 정의할 수 있다. 또한, 데이터가 저장된 데이터 블록은 사용자 블록으로 정의할 수 있다. 플래시 메모리(130)는 복수의 시스템 블록들로 구성된 시스템 블록 영역(210), 맵 블록들로 구성된 맵 블록 영역(220), 및 사용자 블록들로 구성된 사용자 블록 영역(230)으로 구성될 수 있다.
시스템 블록 영역(210) 내의 시스템 블록은 시스템 페이지를 저장 할 수 있다. 시스템 페이지는 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 사용자 블록들에 대한 기록 순서 정보를 포함할 수 있다. 메모리 복구 장치(100)는 시스템 페이지를 이용하여 비정상적인 전원 손실 직전에 사용된 사용자 블록을 빠르게 찾음으로써 비정상적인 전원 손실 이후 매핑 테이블을 복구하는 시간을 줄일 수 있다. 메모리 복구 장치(100)는 비정상적인 전원 손실 이후 매핑 테이블을 복구하기 위하여 매핑 테이블이 저장되어 있는 맵 블록과 비정상적인 전원 손실 직전에 사용 중이었던 사용자 블록을 확인할 수 있다. 이때, 맵 블록 및 사용자 블록들의 첫 번째 페이지에 저장된 할당 순서와 마지막 페이지에 저장된 해당 맵 블록 및 사용자 블록들의 삭제 여부에 대해 확인할 수 있는 정보를 확인함으로써 비정상적인 전원 손실 직전에 사용 중이었던 맵 블록 및 사용자 블록을 확인할 수 있다.
맵 블록 영역(220) 내의 맵 블록은 매핑 테이블을 저장할 수 있다. 매핑 테이블은 컨트롤러(110) 내의 플래시 변환 계층(Flash translation layer)을 통해 생성될 수 있다. 플래시 변환 계층은 데이터의 논리적인 주소(Logical address)를 플래시 메모리(130)내의 물리적인 데이터 블록과 페이지에 대한 주소(Physical address)로 변환하여 논리적인 주소와 물리적인 주소를 서로 연결해 줄 수 있다. 이러한 매핑 테이블은 데이터가 플래시 메모리(130)에 저장될 때마다 빈번하게 변경되어야 하며, 또한 빠르게 접근되어야 하기 때문에 SRAM 또는 DRAM과 같은 캐시 메모리에 보관 될 수 있다. 그러나, 이러한 SRAM 또는 DRAM과 같은 캐시 메모리는 전원이 손실될 경우 저장 데이터가 증발하는 문제가 발생할 수 있다. 따라서, 컨트롤러(110)는 캐시 메모리(120) 내에 저장된 매핑 테이블 전체를 플래시 메모리(130)에 저장하거나, 매핑 테이블 중 변경된 부분을 나누어 별도의 방법에 따라 플래시 메모리(130)의 맵 블록에 저장할 필요가 있다.
사용자 블록 영역(230) 내의 사용자 블록은 데이터를 저장할 수 있다. 사용자 블록은 복수의 페이지로 구성될 수 있으며, 데이터는 복수의 페이지에 순서대로 저장될 수 있다.
도 3은 본 발명의 일실시예에 따른 플래시 메모리 내의 데이터 블록을 도시한 도면이다.
데이터 블록(300)은 복수의 페이지로 구성될 수 있다. 하나의 페이지는 데이터 영역(310)과 스페어(spare) 영역(320)으로 구분될 수 있다. 데이터 영역(310)에는 데이터가 저장 될 수 있으며, 스페어 영역(320)에는 해당 페이지에 대한 매핑 테이블 및 에러 정정 코드(Error correction code, ECC) 등이 저장될 수 있다. 예를 들어, 데이터 블록(300) 중 맵 블록의 페이지를 구성하는 데이터 영역에는 현재 플래시 메모리(130)에 존재하는 데이터들의 매핑 테이블에 대한 데이터가 저장되어 있으며, 스페어 영역에는 해당 맵 블록의 페이지에 대한 매핑 테이블 및 에러 정정 코드가 저장될 수 있다. 또는, 데이터 블록(300) 중 사용자 블록의 페이지를 구성하는 데이터 영역에는 데이터가 저장되어 있으며, 스페어 영역에는 해당 사용자 블록의 페이지에 대한 매핑 테이블 및 에러 정정 코드가 저장될 수 있다.
데이터 블록(300)은 컨트롤러(110)에 의해 데이터를 저장하도록 할당되어 사용되는 시점에서 해당 데이터 블록의 첫 번째 페이지에 할당 순서를 저장할 수 있다. 데이터는 데이터 블록의 첫 번째 페이지에서부터 순서대로 저장될 수 있으며, 마지막 페이지(330)에는 해당 데이터 블록(300) 내에 포함된 모든 페이지들 각각의 스페어 영역(320)에 저장된 매핑 테이블이 저장 될 수 있다. 이때, 데이터 블록(300)은 해당 데이터 블록의 모든 페이지가 사용되면 마지막 페이지(330)에 데이터 블록의 삭제 여부에 대해 확인할 수 있는 정보를 포함할 수 있다.
도 4는 본 발명의 일실시예에 따른 제1 사용자 블록들의 개수를 결정하는 방법을 도시한 도면이다.
메모리 복구 장치(100)는 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중에서 기록할 예정인 제1 사용자 블록들을 결정할 수 있다. 제1 사용자 블록들에 데이터가 기록되면, 메모리 복구 장치(100)는 제1 사용자 블록들의 스페어(spare)영역 및 마지막 페이지에 매핑 테이블을 기록할 수 있다. 이때, 제1 사용자 블록들의 스페어 영역 및 마지막 페이지에 기록되는 매핑 테이블을 제1 매핑 테이블로 표현할 수 있다.
메모리 복구 장치(100)는 제1 사용자 블록들 전부에 데이터가 기록되면, 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환 할 수 있다. 이때, 메모리 복구 장치(100)는 제1 사용자 블록들이 전환된 제2 사용자 블록들에 대한 매핑 테이블을 맵 블록에 순차적으로 기록할 수 있으며, 이를 제2 매핑 테이블로 표현할 수 있다. 상기 제2 매핑 테이블은 스냅샷 형태로 기록될 수 있다.
이때, 제1 사용자 블록들은 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 결정될 수 있다. 예를 들어, 사용자가 요구하는 매핑 테이블 복구 시간이 5초라고 가정하면, 주어진 시간 내에 최대한 많은 개수의 제1 사용자 블록들로부터 매핑 테이블이 복구되도록 조정할 수 있다. 맵 블록에는 매핑 테이블 정보가 순차 저장되어 있어 매핑 테이블을 바로 대체할 수 있다,
예를 들어 도 4에서와 같이 맵 블록을 이용하여 제2 매핑 테이블을 0.5초 정도의 빠른 시간 내에 복구하는 것이 가능할 수 있다. 그럼 사용자가 요구하는 매핑 테이블 복구 시간 5초 중 나머지 4.5초 동안에 몇 개의 제1 사용자 블록으로부터 매핑 테이블을 복구할 수 있는지 계산할 수 있다. 이 때, 이미 제1 사용자 블록 내의 모든 페이지에 데이터가 저장된 제1 사용자 블록은 매핑 테이블을 저장하는 페이지를 따로 두기 때문에 1초 정도의 복구 지연 시간이 걸리고, 그렇지 않은 데이터 블록은 1.5초 정도의 지연 시간이 걸린다고 가정한다. 그렇다면 메모리 복구 장치(100)는 4개의 제1 사용자 블록으로부터 매핑 테이블을 복구하는 것이 가능할 수 있다.
즉, 메모리 복구 장치(100)는 복수의 사용자 블록들 중에서 4개의 제1 사용자 블록들을 결정하여 데이터를 저장한 이후 상기 4개의 제1 사용자 블록들에 대한 매핑 테이블을 맵 블록에 저장함으로써 사용자가 요구하는 5초의 매핑 테이블의 복구 시간을 만족할 수 있다.
만약 사용자가 요구하는 매핑 테이블의 복구 시간이 4초라고 가정하면 메모리 복구 장치(100)는 복수의 사용자 블록들 중에서 3개의 제1 사용자 블록들을 결정하여 데이터를 저장한 이후 상기 3개의 제1 사용자 블록들에 대한 매핑 테이블을 맵 블록에 저장함으로써 사용자가 요구하는 매핑 테이블의 복구 시간을 만족할 수 있다. 그러나 이와 같은 경우에는 이전 경우 보다 빈번히 매핑 테이블을 맵 블록에 저장함으로써 쓰기 지연 및 내구성 감소 문제가 더 크게 발생할 수 있다.
도 5는 본 발명의 일실시예에 따른 사용자가 요구하는 매핑 테이블의 복구 시간 별 복구 가능한 사용자 블록의 개수를 도시한 도면이다.
사용자가 요구하는 매핑 테이블의 복구 시간 별 복구 가능한 사용자 블록의 개수는 많은 부분을 가정하여 계산한 이론적인 값이다. 여기에서 매핑 테이블 전체를 맵 블록에서 캐시 메모리(120)로 복구하는데 걸리는 시간은 대략 0.4초이다. 메모리 복구 장치(100)는 사용자가 요구하는 매핑 테이블 복구 시간이 1초일 때, 맵 블록으로부터 제2 매핑 테이블을 복구하는 시간은 0.4초이므로 0.6초 동안 제1 사용자 블록들로부터 제1 매핑 테이블을 복구할 수 있다. 그 결과 메모리 복구 장치(100)는 300개의 제1 사용자 블록들로부터 제1 매핑 테이블을 복구할 수 있음을 확인할 수 있다.
이때, 메모리 복구 장치(100)는 300개의 제1 사용자 블록들 전부에 데이터가 모두 기록이 되면 상기 300개의 제1 사용자 블록들에 대한 매핑 테이블을 맵 블록에 기록하는 동작을 수행하게 되며, 이로 인해 약 4%의 다시쓰기 오버헤드가 발생하는 것을 확인할 수 있다.
이와는 달리 메모리 복구 장치(100)는 사용자가 요구하는 매핑 테이블 복구 시간이 5초 일 때, 맵 블록으로부터 제2 매핑 테이블을 복구하는 시간은 0.4초이므로 4.6초 동안 제1 사용자 블록들로부터 제1 매핑 테이블을 복구할 수 있다. 그 결과 메모리 복구 장치(100)는 2256개의 제1 사용자 블록들로부터 제1 매핑 테이블을 복구할 수 있음을 확인할 수 있다.
이때, 메모리 복구 장치(100)는 2256개의 제1 사용자 블록들 전부에 데이터가 모두 기록이 되면 상기 2256개의 제1 사용자 블록들에 대한 매핑 테이블을 맵 블록에 기록하는 동작을 수행하게 되며, 이로 인해 약 0.5%의 다시쓰기 오버헤드가 발생하는 것을 확인할 수 있다.
위의 결과로 알 수 있듯이 매핑 테이블을 맵 블록에 기록하는 빈도와 비정상적인 전원 손실 이후 시스템을 재부팅하는 시간 사이에는 트레이트 오프(trade--f) 관계가 성립함을 알 수 있으며, 본 발명은 사용자가 요구하는 매핑 테이블 복구 시간에 기초하여 제1 사용자 블록들의 개수를 결정함으로써 매핑 테이블을 맵 블록에 기록하는 빈도를 유연하게 결정할 수 있다.
도 6은 본 발명의 일실시예에 따른 매핑 테이블 기록 방법을 도시한 도면이다.
단계(610)에서, 메모리 복구 장치(100)는 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정할 수 있다. 이 때, 메모리 복구 장치(100)는 제1 사용자 블록들에 기록된 제1 매핑 테이블에 대한 복구 시간 및 맵 블록에 기록된 제2 매핑 테이블에 대한 복구 시간을 이용하여 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 제1 사용자 블록들의 개수를 결정할 수 있다. 메모리 복구 장치(100)는 결정된 제1 사용자 블록들의 순서 정보를 시스템 블록의 시스템 페이지에 저장할 수 있다.단계(620)에서, 메모리 복구 장치(100)는 결정된 제1 사용자 블록들에 대한 제1 매핑 테이블을 기록할 수 있다. 이때, 메모리 복구 장치(100)는 제1 사용자 블록들 각각의 페이지의 스페어 영역에 제1 매핑 테이블을 기록할 수 있으며 해당하는 제1 사용자 블록의 마지막 페이지에는 스페어 영역에 기록된 모든 매핑 테이블을 모아서 기록할 수 있다.
단계(630)에서, 메모리 복구 장치(100)는 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 결정된 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하고, 전환된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록할 수 있다.
단계(640)에서, 메모리 복구 장치(100)는 비정상적인 전원 손실이 발생하지 않는 경우, 새로운 제1 사용자 블록들을 결정하여 데이터를 기록할 수 있다.
단계(650)에서, 메모리 복구 장치(100)는 비정상적인 전원 손실이 발생할 경우, 캐시 메모리(120)로의 매핑 테이블 복구를 실행할 수 있다.
도 7은 본 발명의 일실시예에 따른 매핑 테이블 복구 방법을 도시한 도면이다.
단계(710)에서, 메모리 복구 장치(100)는 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인할 수 있다. 복수의 맵 블록들 각각의 첫 번째 페이지 정보는 맵 블록들이 할당되어 사용되는 시점에서 해당하는 맵 블록들의 할당 순서 정보를 포함할 수 있다. 또한. 복수의 맵 블록들 각각의 마지막 페이지 정보는 맵 블록들의 페이지가 모두 사용되면 해당하는 맵 블록들의 삭제 여부를 확인할 수 있는 식별 정보를 포함할 수 있다.
메모리 복구 장치(100)는 상기 복수의 맵 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인하는 것이 가능하다.
단계(720)에서, 메모리 복구 장치(100)는 단계(710)에서 확인된 맵 블록을 이용하여 제2 매핑 테이블을 복구할 수 있다. 맵 블록에는 제2 사용자 블록들에 대한 제2 매핑 테이블이 스냅샷 형태로 기록되어 있으므로 비교적 빠른 시간 내에 제2 매핑 테이블을 캐시 메모리(120)로 복구하는 것이 가능하다.
단계(730)에서, 메모리 복구 장치(100)는 비정상적인 전원 손실 직전에 사용된 제1 사용자 블록들을 확인할 수 있다. 메모리 복구 장치(100)는 시스템 블록의 시스템 페이지를 이용하여 비정상적인 전원 손실 직전에 사용된 제1 사용자 블록들을 확인할 수 있다.
제1 사용자 블록들 각각의 첫 번째 페이지 정보는 제1 사용자 블록들이 할당되어 사용되는 시점에서 해당하는 제1 사용자 블록들의 할당 순서 정보를 포함할 수 있다. 또한, 제1 사용자 블록들 각각의 마지막 페이지 정보는 제1 사용자 블록들의 페이지가 모두 사용되면 해당하는 제1 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함할 수 있다.
메모리 복구 장치(100)는 상기 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 제1 사용자 블록을 확인하는 것이 가능하다.
단계(740)에서 메모리 복구 장치(100)는 단계(730)에서 확인된 제1 사용자 블록을 이용하여 제1 매핑 테이블을 복구할 수 있다. 이때, 메모리 복구 장치(100)는 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 각각의 제1 사용자 블록들의 전부에 데이터가 기록되었는지 여부를 판단할 수 있다.
이때, 메모리 복구 장치(100)는 제1 사용자 블록의 전부에 데이터가 기록된 경우, 제1 사용자 블록의 마지막 페이지를 이용하여 제1 매핑 테이블을 복구 할 수 있다. 또는 제1 사용자의 전부에 데이터가 기록되지 않은 경우, 제1 사용자 블록의 스페어 영역을 이용하여 제1 매핑 테이블을 복구할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 메모리 저장 장치
110 : 컨트롤러
120 : 캐시 메모리
130 : 플래시 메모리
210 : 시스템 블록 영역
220 : 맵 블록 영역
230 : 사용자 블록 영역
300 : 사용자 블록
310 : 데이터 영역
320 : 스페어 영역
330 : 마지막 페이지

Claims (20)

  1. 사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정하는 단계;
    상기 결정된 제1 사용자 블록들의 스페어(spare) 영역 및 마지막 페이지에 제1 매핑 테이블을 기록하는 단계;
    상기 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하는 단계;
    상기 전환된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록하는 단계;
    비정상적인 전원 손실 이후 상기 결정된 제1 사용자 블록들에 기록된 제1 매핑 테이블을 복구하는 단계;
    상기 맵 블록에 스냅샷 형태로 기록된 제2 매핑 테이블을 복구하는 단계; 및
    상기 제1 매핑 테이블 및 제2 매핑 테이블을 이용하여 비정상적인 전원 손실 직전에 데이터가 기록되고 있던 제1 사용자 블록을 확인하는 단계
    를 포함하는 메모리 복구 방법.
  2. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 제1 사용자 블록들에 기록된 제1 매핑 테이블에 대한 복구 시간 및 상기 맵 블록에 기록된 제2 매핑 테이블에 대한 복구 시간을 이용하여 상기 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 제1 사용자 블록들의 개수를 결정하는 메모리 복구 방법.
  3. 제1항에 있어서,
    상기 제2 매핑 테이블은 사용자 블록들 중 매핑 테이블이 변경된 제1 사용자 블록들에 대한 정보를 포함하고, 상기 맵 블록 내에 순차적으로 기록되는 메모리 복구 방법.
  4. 제1항에 있어서,
    상기 제1 매핑 테이블을 복구하는 단계는,
    상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 확인하는 단계; 및
    상기 확인된 첫번째 페이지 정보 및 마지막 페이지 정보에 따라 제1 사용자 블록의 전부에 데이터가 기록되었는 지 여부를 판단하여 제1 사용자 블록의 제1 매핑 테이블을 추출하는 단계
    를 포함하는 메모리 복구 방법.
  5. 제4항에 있어서,
    상기 제1 매핑 테이블을 추출하는 단계는,
    상기 제1 사용자 블록의 전부에 데이터가 기록된 경우, 제1 사용자 블록의 마지막 페이지를 이용하여 제1 매핑 테이블을 복구하는 단계; 또는
    상기 제1 사용자 블록의 전부에 데이터가 기록되지 않은 경우, 상기 제1 사용자 블록의 스페어 영역을 이용하여 제1 매핑 테이블을 복구하는 단계
    를 포함하는 메모리 복구 방법.
  6. 제4항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보는,
    상기 기록할 예정인 제1 사용자 블록들이 할당되어 사용되는 시점에서 상기 기록할 예정인 제1 사용자 블록들의 할당 순서 정보를 포함하고,
    상기 기록할 예정인 제1 사용자 블록들 각각의 마지막 페이지 정보는,
    상기 기록할 예정인 제1 사용자 블록들의 페이지가 모두 사용되면 상기 기록할 예정인 제1 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함하는 메모리 복구 방법.
  7. 제1항에 있어서,
    상기 제2 매핑 테이블을 복구하는 단계는,
    복수의 맵 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인하는 단계;
    상기 확인된 맵 블록을 이용하여 제2 매핑 테이블을 복구하는 단계
    를 포함하는 메모리 복구 방법.
  8. 제7항에 있어서,
    상기 복수의 맵 블록들 각각의 첫 번째 페이지 정보는,
    맵 블록들이 할당되어 사용되는 시점에서 상기 맵 블록들의 할당 순서 정보를 포함하고,
    상기 복수의 맵 블록들 각각의 마지막 페이지 정보는,
    맵 블록들의 페이지가 모두 사용되면 상기 맵 블록들의 삭제 여부를 확인할 수 있는 정보를 포함하는 메모리 복구 방법.
  9. 제1항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들은 기록 순서 정보를 포함하여 시스템 블록의 시스템 페이지에 순차적으로 저장되는 메모리 복구 방법.
  10. 제1항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들은,
    복수의 시스템 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 확인되는 메모리 복구 방법.
  11. 메모리 복구 장치에 있어서,
    복수의 동작들을 수행하는 컨트롤러를 포함하고, 상기 복수의 동작들은,
    사용자가 요구하는 매핑 테이블의 복구 시간에 기초하여 데이터가 기록될 복수의 사용자 블록들 중 기록할 예정인 제1 사용자 블록들을 결정하는 동작;
    상기 결정된 제1 사용자 블록들의 스페어(spare) 영역 및 마지막 페이지에 제1 매핑 테이블을 기록하는 동작;
    상기 결정된 제1 사용자 블록들 전부에 데이터가 기록되면 상기 제1 사용자 블록들을 데이터의 기록이 완료된 제2 사용자 블록들로 전환하는 동작;
    상기 전환된 제2 사용자 블록들에 대한 제2 매핑 테이블을 맵 블록에 기록하는 동작;
    비정상적인 전원 손실 이후 상기 결정된 제1 사용자 블록들에 기록된 제1 매핑 테이블을 복구하는 동작;
    상기 맵 블록에 스냅샷 형태로 기록된 제2 매핑 테이블을 복구하는 동작; 및
    상기 제1 매핑 테이블 및 제2 매핑 테이블을 이용하여 비정상적인 전원 손실 직전에 데이터가 기록되고 있던 제1 사용자 블록을 확인하는 동작
    을 포함하는 메모리 복구 장치.
  12. 제11항에 있어서,
    상기 컨트롤러는,
    상기 제1 사용자 블록들에 기록된 제1 매핑 테이블에 대한 복구 시간 및 상기 맵 블록에 기록된 제2 매핑 테이블에 대한 복구 시간을 이용하여 상기 사용자가 요구하는 매핑 테이블의 복구 시간을 만족하는 제1 사용자 블록들의 개수를 결정하는 메모리 복구 장치.
  13. 제11항에 있어서,
    상기 제2 매핑 테이블은 사용자 블록들 중 매핑 테이블이 변경된 제1 사용자 블록들에 대한 정보를 포함하고, 상기 맵 블록 내에 순차적으로 기록되는 메모리 복구 장치.
  14. 제11항에 있어서,
    상기 컨트롤러는,
    상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 확인하고, 상기 확인된 첫번째 페이지 정보 및 마지막 페이지 정보에 따라 제1 사용자 블록의 전부에 데이터가 기록되었는 지 여부를 판단하여 제1 사용자 블록의 제1 매핑 테이블을 추출하는 메모리 복구 장치.
  15. 제14항에 있어서,
    상기 컨트롤러는,
    상기 제1 사용자 블록의 전부에 데이터가 기록된 경우, 제1 사용자 블록의 마지막 페이지를 이용하여 제1 매핑 테이블을 복구하거나 상기 제1 사용자 블록의 전부에 데이터가 기록되지 않은 경우, 상기 제1 사용자 블록의 스페어 영역을 이용하여 제1 매핑 테이블을 복구하는 메모리 복구 장치.
  16. 제14항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들 각각의 첫 번째 페이지 정보는,
    상기 기록할 예정인 제1 사용자 블록들이 할당되어 사용되는 시점에서 상기 기록할 예정인 제1 사용자 블록들의 할당 순서 정보를 포함하고,
    상기 기록할 예정인 제1 사용자 블록들 각각의 마지막 페이지 정보는,
    상기 기록할 예정인 제1 사용자 블록들의 페이지가 모두 사용되면 상기 기록할 예정인 제1 사용자 블록들의 삭제 여부를 확인할 수 있는 정보를 포함하는 메모리 복구 장치.
  17. 제11항에 있어서,
    상기 컨트롤러는,
    복수의 맵 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 비정상적인 전원 손실 직전에 사용된 맵 블록을 확인하고, 상기 확인된 맵 블록을 이용하여 제2 매핑 테이블을 복구하는 메모리 복구 장치.
  18. 제17항에 있어서,
    상기 복수의 맵 블록들 각각의 첫 번째 페이지 정보는,
    맵 블록들이 할당되어 사용되는 시점에서 상기 맵 블록들의 할당 순서 정보를 포함하고,
    상기 복수의 맵 블록들 각각의 마지막 페이지 정보는,
    맵 블록들의 페이지가 모두 사용되면 상기 맵 블록들의 삭제 여부를 확인할 수 있는 정보를 포함하는 메모리 복구 장치.
  19. 제11항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들은 기록 순서 정보를 포함하여 시스템 블록의 시스템 페이지에 순차적으로 저장되는 메모리 복구 장치.
  20. 제11항에 있어서,
    상기 기록할 예정인 제1 사용자 블록들은,
    복수의 시스템 블록들 각각의 첫 번째 페이지 정보 및 마지막 페이지 정보를 이용하여 확인되는 메모리 복구 장치.
KR1020150092407A 2015-06-16 2015-06-29 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법 KR101608623B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150092407A KR101608623B1 (ko) 2015-06-29 2015-06-29 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
PCT/KR2016/006392 WO2016204529A1 (ko) 2015-06-16 2016-06-16 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US15/736,607 US20180189144A1 (en) 2015-06-16 2016-06-16 Apparatus and method for memory storage to protect data-loss after power loss

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150092407A KR101608623B1 (ko) 2015-06-29 2015-06-29 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160035076A Division KR20170002279A (ko) 2016-03-24 2016-03-24 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101608623B1 true KR101608623B1 (ko) 2016-04-01

Family

ID=55799484

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150092407A KR101608623B1 (ko) 2015-06-16 2015-06-29 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101608623B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022103012A1 (ko) * 2020-11-13 2022-05-19 이화여자대학교 산학협력단 파라미터 전이 lstm을 이용한 손실 데이터 복구 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022103012A1 (ko) * 2020-11-13 2022-05-19 이화여자대학교 산학협력단 파라미터 전이 lstm을 이용한 손실 데이터 복구 방법 및 장치

Similar Documents

Publication Publication Date Title
US9343153B2 (en) De-duplication in flash memory module
US20210157523A1 (en) Storage system
US9645750B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
KR101920531B1 (ko) 고체 상태 드라이브에서의 원자성 기록 커맨드 지원
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US10621051B2 (en) Logical to physical table restoration from stored journal entries
US20150186224A1 (en) Data storage device and flash memory control method
CN109522154B (zh) 数据恢复方法及相关设备与系统
JP2017079053A (ja) ストレージジャーナリングを改善する方法およびシステム
US9983826B2 (en) Data storage device deferred secure delete
US11640244B2 (en) Intelligent block deallocation verification
US9535799B2 (en) Apparatus, systems, and methods for data recovery
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
KR101608623B1 (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
US10740189B2 (en) Distributed storage system
KR20170002279A (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법
CN108509295B (zh) 存储器系统的操作方法
US11144453B2 (en) Unmap to initialize sectors
KR101663425B1 (ko) 저장장치의 성능 및 내구성 향상을 위해 다중 오픈 블록을 관리하는 메모리 저장 장치 및 방법
JP6287055B2 (ja) 情報処理装置、情報収集方法および情報収集プログラム
JP6805501B2 (ja) ストレージ装置
KR101713780B1 (ko) 메모리 컨트롤러를 포함하는 메모리 디바이스, 상기 메모리 컨트롤러가 수행하는 데이터 저장 방법 및 데이터 복구 방법
WO2018075676A1 (en) Efficient flash management for multiple controllers

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5