KR101545077B1 - 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 - Google Patents

비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 Download PDF

Info

Publication number
KR101545077B1
KR101545077B1 KR1020140015380A KR20140015380A KR101545077B1 KR 101545077 B1 KR101545077 B1 KR 101545077B1 KR 1020140015380 A KR1020140015380 A KR 1020140015380A KR 20140015380 A KR20140015380 A KR 20140015380A KR 101545077 B1 KR101545077 B1 KR 101545077B1
Authority
KR
South Korea
Prior art keywords
block
volatile memory
blocks
metadata
page
Prior art date
Application number
KR1020140015380A
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 KR1020140015380A priority Critical patent/KR101545077B1/ko
Application granted granted Critical
Publication of KR101545077B1 publication Critical patent/KR101545077B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리의 각 블록에 데이터가 할당되는 순서에 기반한 할당 체인을 사용하여 비휘발성 메모리의 블록들이 연결되고, 연결된 블록들의 데이터가 기입된 각 페이지의 복원 정보에 기반하여 휘발성 메모리 상의 메타 데이터를 복원하는 방법 및 장치가 제공된다. 할당 체인을 사용하여 블록들이 연결됨으로써, 휘발성 메모리 상의 메타 데이터의 복원 시 저장 장치의 무결성이 보장될 수 있다.

Description

비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 {METHOD AND APPARATUS FOR RECOVERING METADATA IN ELECTRONIC DEVICE BASED ON NON-VOLATILE MEMEORY}
아래의 설명은 비휘발성 메모리 기반의 저장 장치의 메타 데이터를 관리하는 방법에 관한 것으로, 특히 휘발성 메모리 상의 메타 데이터를 복원하는 방법에 관한 것이다.
비휘발성 메모리 기반의 전자 장치는 비휘발성 메모리에 대한 데이터의 기입 또는 비휘발성 메모리에 기입된 데이터에 대한 독출 또는 소거에 있어서 사용되는 다양한 메타 데이터를 포함할 수 있다. 이러한 메타 데이터는 비휘발성 메모리 기반의 전자 장치가 동작하는 동안 매우 빈번하게 접근되므로, 전자 장치의 성능 향상을 위해 일반적으로 랜덤 액세스 메모리(Random Access Memory; RAM)과 같은 휘발성 메모리에 저장될 수 있고, 전자 장치 및 전자 장치의 비휘발성 메모리에 의해 접근될 수 있다.
그러나, 전자 장치의 동작의 비정상적인 종료 시 휘발성 메모리에 저장된 메타 데이터는 모두 소멸된다. 따라서, 전자 장치의 재시작 시 이러한 메타 데이터는 모두 복구될 수 있어야 한다.
그러나 저장 장치의 대용량화의 추세에 따라 메타 데이터의 복구 시 독출되어야 할 페이지들의 수가 급격하게 증가됨으로써, 효율적이고 신뢰성 있는 메타 데이터의 복구가 어렵게 되었다.
따라서, 비휘발성 메모리 기반의 저장 장치의 동작의 비정상적인 종료 시 저장 장치의 무결성을 보장할 수 있으면서 효율적으로 메타 데이터를 복원할 수 있는 방법이 요구된다.
한국공개특허 제10-2013-0034830호(공개일 2013년 04월 08일)에는 논리적 페이지가 압축되어 저장되는 물리적 페이지의 여분 공간 내에 메타 데이터의 변화 정보를 저장함으로써, 저장된 메타 데이터의 변화 정보를 사용하여 저장 장치의 전원 공급이 중단되었을 때 메타 데이터를 복구하는 방법이 개시되어 있다.
일 실시예는 비휘발성 메모리의 각 블록에 데이터가 할당되는 순서에 기반한 할당 체인을 사용하여 비휘발성 메모리의 블록들을 연결하고, 상기 블록들의 데이터가 기입된 각 페이지의 복원 정보에 기반하여 휘발성 메모리 상의 메타 데이터를 복원하는 방법 및 장치를 제공할 수 있다.
일 실시예는 휘발성 메모리 상의 메타 데이터를 복원함에 있어서 불필요한 블록들의 할당 체인에 의한 연결을 해제함으로써, 효율적으로 메타 데이터를 복원할 수 있는 방법 및 장치를 제공할 수 있다.
일 측면에 있어서, 비휘발성 메모리 및 휘발성 메모리를 포함하는 전자 장치의 메타 데이터 관리 방법에 있어서, 상기 비휘발성 메모리의 하나 이상의 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인(allocation chain)을 사용하여 상기 블록들을 연결하는 단계, 상기 할당 체인에 의해 연결된 상기 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출하는 단계 및 상기 독출된 페이지들의 각 페이지에 기입된 복원 정보에 기반하여 상기 휘발성 메모리 상의 상기 블록들과 관련된 메타 데이터를 복원하는 단계를 포함하는, 메타 데이터 관리 방법이 제공된다.
상기 블록들을 연결하는 단계는 상기 블록들의 각 블록에 기입된 상기 각 블록의 다음에 할당될 블록을 나타내는 다음 블록 포인트(Next Block Point; NBP)의 값에 기반하여 상기 블록들을 연결할 수 있다.
상기 NBP는 상기 각 블록의 최초로 데이터가 기입되는 페이지에 기입될 수 있다.
상기 블록들 중 제1 블록의 제1 페이지에 기입된 NBP가 나타내는 제2 블록에 대한 데이터의 기입은 상기 제1 페이지에 대한 데이터의 기입이 완료된 후 수행될 수 있다.
상기 메타 데이터 관리 방법은 상기 블록들 중 완전히 데이터가 기입된 상기 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록의 상기 할당 체인에 의한 연결을 해제하는 단계를 더 포함할 수 있다.
상기 연결을 해제하는 단계는 상기 휘발성 메모리 상의 상기 할당 체인에 의해 연결된 상기 블록들과 관련된 정보를 포함하는 할당 블록 리스트(allocation block list)에 기반하여 상기 블록들 중 완전히 데이터가 기입된 블록을 식별하는 단계를 포함할 수 있다.
상기 연결을 해제하는 단계는 상기 블록들 중 상기 할당 체인이 시작되는 블록을 나타내는 상기 할당 블록 리스트의 할당 체인 포인터(Allocation Chain Pointer; ACP)의 값을 변경하는 단계를 포함할 수 있다.
상기 메타 데이터 관리 방법은 상기 전자 장치의 비정상적인 종료 전에 상기 휘발성 메모리 상의 상기 블록들과 관련된 백업 메타 데이터를 상기 비휘발성 메모리의 선택된 블록에 기입하는 단계를 더 포함할 수 있다.
상기 백업 메타 데이터는 상기 비정상적인 종료 전의 상기 할당 체인이 시작되는 블록을 나타내는 백업 ACP, 상기 비정상적인 종료 전의 상기 페이지들에 대한 페이지 백업 페이지 매핑 테이블(Page Mapping Table; PMT), 상기 비정상적인 종료 전의 백업 페이지 상태 테이블(Page State Table; PST) 및 제1 동작 카운트(Operation Count; OC) 중 적어도 하나를 포함할 수 있다.
상기 제1 OC는 상기 복원 정보 및 상기 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
상기 메타 데이터를 복원하는 단계는 상기 백업 ACP, 상기 백업 PMT의 하나 이상의 값들, 상기 백업 PST의 하나 이상의 값들, 상기 제1 OC 및 상기 복원 정보 중 적어도 하나를 사용하여 상기 전자 장치의 재시작 후 상기 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다.
상기 각 페이지의 상기 복원 정보는 상기 각 페이지의 논리 페이지 번호 (Logical Page Number; LPN) 및 제2 OC를 포함할 수 있다.
상기 LPN은 상기 각 페이지의 물리 페이지가 가리키는 논리 페이지의 번호일 수 있다.
상기 제2 OC는 상기 복원 정보 및 상기 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
상기 메타 데이터를 복원하는 단계는 상기 제1 OC 및 상기 제2 OC 간의 비교에 기반하여, 상기 백업 ACP, 상기 백업 PMT의 하나 이상의 값들, 상기 백업 PST의 하나 이상의 값들, 상기 물리 페이지의 번호(Physical Page Number; PPN), 상기 LPN 중 적어도 하나를 사용하여 복원 정보 리스트를 생성하는 단계를 포함할 수 있다.
상기 메타 데이터를 복원하는 단계는 상기 생성된 복원 정보 리스트에 기반하여 상기 페이지들에 대한 상기 PMT 및 상기 PST 중 적어도 하나를 복원할 수 있다.
상기 메타 데이터를 복원하는 단계는 상기 백업 ACP에 기반하여 상기 할당 체인에 의해 연결된 블록들을 식별하고 상기 블록들과 관련된 정보를 포함하는 할당 블록 리스트를 복원하는 단계를 포함할 수 있다.
상기 백업 메타 데이터의 상기 비휘발성 메모리의 선택된 블록에 대한 기입은 소정의 시간 간격으로 수행될 수 있다.
다른 일 측면에 있어서, 전자 장치에 있어서, 하나 이상의 블록들을 포함하는 비휘발성 메모리, 상기 블록들과 관련된 메타 데이터를 저장하는 휘발성 메모리 및 상기 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인(allocation chain)을 사용하여 상기 블록들을 연결하고, 상기 할당 체인에 의해 연결된 상기 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출하고, 상기 독출된 페이지들의 각 페이지에 기입된 복원 정보에 기반하여 상기 휘발성 메모리 상의 상기 메타 데이터를 복원하는 제어부를 포함하는, 전자 장치가 제공된다.
비휘발성 메모리의 각 블록에 데이터가 할당되는 순서에 기반한 할당 체인을 사용하여 블록들을 연결함으로써, 휘발성 메모리 상의 메타 데이터의 복원 시 저장 장치의 무결성이 보장되고 메타 데이터를 효율적으로 복원할 수 있는 방법 및 장치가 제공된다.
휘발성 메모리 상의 메타 데이터를 복원함에 있어서 불필요한 블록들의 할당 체인에 의한 연결을 해제하는 체크포인팅을 수행함으로써 효율적으로 메타 데이터를 복원할 수 있고 저장 장치의 부하를 감소시킬 수 있는 방법 및 장치가 제공된다.
도 1은 일 실시예에 따른 전자 장치를 나타낸다.
도 2는 일 예에 따른 페이지를 나타낸다.
도 3은 일 실시예에 따른 전자 장치의 동작 방법을 나타낸다.
도 4는 일 예에 따른 전자 장치의 동작 방법을 나타낸다.
도 5는 일 예에 따른 휘발성 메모리 상의 메타 데이터를 복원하는 방법을 나타낸다.
도 6은 일 예에 따른 전자 장치의 동작 방법을 나타낸다.
도 7은 일 예에 따른 선택된 블록에 저널 정보를 기입하는 방법을 나타낸다.
도 8은 일 예에 따른 블록의 할당 체인에 의한 연결을 해제하는 방법을 나타낸다.
도 9는 일 예에 따른 할당 블록 리스트를 나타낸다.
도 10은 일 예에 따른 백업 메타 데이터를 선택된 블록에 기입하는 방법을 나타낸다.
도 11은 일 예에 따른 휘발성 메모리 상의 저널 정보의 저장 방법을 나타낸다.
도 12는 일 예에 따른 저널 정보를 선택된 블록에 기입하는 방법을 나타낸다.
도 13는 일 예에 따른 전자 장치의 동작의 비정상 적인 종료 후 비휘발성 메모리 및 휘발성 메모리의 상태를 나타낸다.
도 14는 일 예에 따른 메타 데이터를 복원하는 방법을 나타낸다.
도 15는 일 예에 따른 메타 데이터를 복원하는 방법을 나타낸다.
도 16은 일 예에 따른 복원 정보 리스트를 생성하는 방법을 나타낸다.
도 17은 일 예에 따른 복원 정보 리스트를 업데이트하는 방법을 나타낸다.
도 18 및 도 19는 일 예에 따른 할당 블록 리스트를 복구하는 방법을 나타낸다.
도 20은 일 예에 따른 복원 정보 리스트에 기반하여 휘발성 메모리 상의 메타 데이터를 복원하는 방법을 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 전자 장치를 나타낸다.
전자 장치(100)는 비휘발성 메모리 기반의 전자 장치일 수 있다.
전자 장치(100)는 비휘발성 메모리(110), 제어부(120) 및 휘발성 메모리(130)를 포함할 수 있다. 전자 장치(100)는 비휘발성 메모리(110) 및 휘발성 메모리(130)에 저장된 데이터를 관리할 수 있다. 예컨대, 전자 장치(100)는 비휘발성 메모리(110) 및 휘발성 메모리(130)에의 데이터의 기입, 휘발성 메모리(130) 및 비휘발성 메모리(110)에 기입된 데이터의 독출 및 비휘발성 메모리(110)에 기입된 데이터의 소거를 관리할 수 있다.
비휘발성 메모리(110)는 예컨대, 플래시 메모리, NAND 플래시 메모리, 임베디드 멀티-미디어 카드(embedded Multi-Media Card; eMMC) 또는 솔리드 스테이트 드라이브(Solid State Drive; SSD)를 포함할 수 있다.
비휘발성 메모리(110)는 하나 이상의 블록들을 포함할 수 있다. 하나 이상의 블록들은 적어도 하나의 채널로서 구분될 수 있다. 각 블록은 하나 이상의 페이지들을 포함할 수 있다. 비휘발성 메모리(110)에 기입되는 데이터는 비휘발성 메모리(110)의 페이지에 기입될 수 있다. 예컨대, 데이터는 비휘발성 메모리(110)의 페이지의 데이터 영역(data area)에 기입될 수 있다.
비휘발성 메모리(110)의 페이지에는 전자 장치(100)의 동작이 비정상적인 종료 시 휘발성 메모리(130)에 저장된 메타 데이터를 복원하기 위한 복원 정보가 기입될 수 있다. 복원 정보는 페이지의 예비 영역(spare area)에 기입될 수 있다. 복원 정보는 휘발성 메모리(130)의 메타 데이터를 복원하기 위한 메타 데이터일 수 있다.
비휘발성 메모리(110)에 기입된 데이터는 블록 단위로 소거될 수 있다.
비휘발성 메모리(110)의 페이지에 대해서는 후술될 도 2를 참조하여 더 자세하게 설명된다.
휘발성 메모리(130)는 RAM일 수 있다. 예컨대, 휘발성 메모리(130)는 다이나믹 RAM(Dynamic Random Access Memory; DRAM) 또는 정적 RAM(Static Random Access Memory; SRAM)일 수 있다.
휘발성 메모리(130)는 메타 데이터를 저장할 수 있다. 휘발성 메모리(130)에 저장되는 메타 데이터는 비휘발성 메모리(110)의 데이터가 기입된 페이지들에 대한 페이지 매핑 테이블(Page Mapping Table; PMT), 페이지 상태 테이블(Page State Table; PST), 비휘발성 메모리(110)의 블록들의 평균 마모도(wear-level)를 일정수준으로 유지하기 위해 요구되는 정보, 더 이상 사용할 수 없게 된 블록(bad block)에 대한 정보 중 적어도 하나를 포함할 수 있다.
페이지들에 대한 PMT은 논리 페이지를 가리키는 물리 페이지의 주소를 포함할 수 있다. 페이지의 주소는 페이지의 번호일 수 있다.
페이지들에 대한 PST는 페이지(예컨대, 물리 페이지)가 유효한 페이지인지 무효한 페이지인지 여부를 나타내는 정보를 포함할 수 있다.
비휘발성 메모리(110) 및 제어부(120)는 휘발성 메모리(130)에 저장된 메타 데이터에 접근할 수 있다.
제어부(120)는 전자 장치(100)의 구성 요소들을 관리할 수 있고, 전자 장치(100)가 사용하는 비휘발성 메모리(110) 및 휘발성 메모리(130)를 관리하기 위한 프로그램을 실행할 수 있다. 제어부(120)는 프로그램의 실행에 필요한 연산 및 비휘발성 메모리(110) 및 휘발성 메모리(130)를 관리하기 위한 데이터의 처리 등에 필요한 연산을 처리하는 장치일 수 있다. 예컨대, 제어부(120)는 비휘발성 메모리(110) 및/또는 휘발성 메모리(130)의 메모리 컨트롤러일 수 있다. 제어부(120)는 비휘발성 메모리(110) 및 휘발성 메모리(130)에 대한 데이터의 기입, 독출 및 소거를 관리할 수 있다. 예컨대, 제어부(120)는 데이터가 기입되는 비휘발성 메모리(110)의 하나 이상의 블록들 및 블록들의 페이지들을 관리할 수 있다. 또한, 제어부(120)는 휘발성 메모리(130)에 저장된 메타 데이터를 관리할 수 있다.
예컨대, 제어부(120)는 데이터 기입 요청에 의해 비휘발성 메모리(110)의 논리 페이지가 갱신되는 경우 갱신된 논리 페이지를 가리키는 물리 페이지의 주소로서 휘발성 메모리(130) 상의 PMT를 업데이트할 수 있다. 이 때, 갱신 전에 논리 페이지를 가리키는 물리 페이지는 무효한 페이지가 될 수 있다. 제어부(120)는 휘발성 메모리(130) 상의 PST의 상기 물리 페이지의 주소에 대응하는 페이지의 상태를 업데이트할 수 있다. 제어부(120)는 PST에 기반하여, 가비지 컬렉션(garbage collection)을 수행함으로써 무효한 페이지들을 블록 단위로 삭제할 수 있다.
제어부(120)는 비휘발성 메모리(110)의 페이지에 기입된 복원 정보에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다. 제어부(120)는 비휘발성 메모리(110)의 하나 이상의 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인(allocation chain)을 사용하여 블록들을 연결함으로써, 전자 장치(100)의 동작의 비정상적인 종료 후 휘발성 메모리(130) 상의 메타 데이터의 복원 시 저장 장치의 무결성을 보장할 수 있다.
제어부(120)가 페이지에 기입된 복원 정보에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원하는 방법에 대해서는 후술될 도 3 내지 도 20을 참조하여 더 자세하게 설명된다.
도 2는 일 예에 따른 페이지를 나타낸다.
도시된 페이지(200)는 도 1을 참조하여 전술된 비휘발성 메모리(110)의 페이지일 수 있다. 페이지(200)는 물리 페이지일 수 있다. 페이지(200)는 도 3 내지 도 20을 참조하여 후술될 비휘발성 메모리(110)의 페이지들의 각각일 수 있다.
페이지(200)는 데이터 영역(210) 및 예비 영역(220)을 포함할 수 있다. 데이터 영역에는 제어부(120)에 의해 기입 요청된 사용자 데이터가 기입될 수 있다.
예비 영역(220)은 페이지(200) 내의 데이터 영역(210) 이외의 공간으로서, 전자 장치(100)의 동작의 비정상적인 종료 시 휘발성 메모리(130)에 저장된 메타 데이터를 복원하기 위한 복원 정보가 기입될 수 있다.
복원 정보는 페이지(200)의 논리 페이지 번호(Logical Page Number; LPN), 동작 카운트(Operation Count; OC) 및 다음 블록 포인트(Next Block Point; NBP) 중 적어도 하나를 포함할 수 있다.
LPN은 페이지(200)의 물리 페이지가 가리키는 논리 페이지의 번호일 수 있다.
OC는 페이지(200)의 복원 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다. OC는 페이지(200)의 복원 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산이 수행될 때마다 증가할 수 있다. 예컨대, 페이지(200)에 데이터가 기입될 때마다 OC는 증가할 수 있다. 말하자면, 페이지(200)와는 상이한 페이지의 OC 보다 페이지(200)의 OC가 큰 경우, 페이지(200)에 대한 데이터의 기입은 상기 상이한 페이지에 대한 데이터의 기입 보다 나중에 수행된 것일 수 있다.
NBP는 비휘발성 메모리(110)의 블록들이 할당 체인이 의해 연결된 경우, 페이지(200)가 속하는 블록의 다음에 할당될 블록을 나타낼 수 있다. 예컨대, NBP는 페이지(200)가 속하는 블록의 다음에 할당될 블록의 번호를 포함할 수 있다.
NBP는 페이지(200)가 속하는 블록의 페이지들 중 소정의 페이지에 기입될 수 있다.
LPN, OC 및 NBP에 기반하여 휘발성 메모리(130) 상의 메타 데이터가 복원되는 방법에 대해서는 후술될 도 3 내지 도 20을 참조하여 더 자세하게 설명된다.
또는, 예비 영역(220)에는 데이터 영역(210)에 기입된 데이터에 대해 발생하는 오류를 검출 및/또는 정정하기 위한 ECC 패리티가 기입될 수 있다.
앞서 도 1을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 3은 일 실시예에 따른 전자 장치의 동작 방법을 나타낸다.
도 3은 도 1을 참조하여 전술된 전자 장치(100)의 동작 및 전자 장치(100)의 동작의 비정상적인 종료 시 전자 장치(100)의 재시작 방법이 도시되었다.
단계(310)에서, 전자 장치(100)는 동작할 수 있다. 전자 장치(100)의 동작은 비휘발성 메모리(110) 및 휘발성 메모리(130)의 정상적인 동작을 의미할 수 있다. 전자 장치(100)의 동작은 예컨대, 비휘발성 메모리(110)에 대한 데이터의 기입, 비휘발성 메모리(110)에 기입된 데이터에 대한 독출, 또는 비휘발성 메모리(110)의 블록의 소거를 포함할 수 있다. 또한, 전자 장치(100)의 동작은 비휘발성 메모리(110)에 대한 데이터의 기입, 비휘발성 메모리(110)에 기입된 데이터에 대한 독출, 또는 비휘발성 메모리(110)의 블록의 소거에 기반한 휘발성 메모리(130) 상의 메타 데이터의 업데이트를 포함할 수 있다.
단계(315)에서, 제어부(120)는 비휘발성 메모리(110)의 하나 이상의 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인을 사용하여 비휘발성 메모리(110)의 블록들을 연결할 수 있다. 예컨대, 제어부(120)는 비휘발성 메모리(110)의 블록들의 각각에 데이터가 기입된 순서로, 데이터가 기입된 블록들을 연결할 수 있다. 제어부(120)는 데이터가 기입된 블록들의 각 블록에 기입된 각 블록의 다음에 할당될 블록을 나타내는 NBP의 값에 기반하여 블록들을 연결할 수 있다. 말하자면, 제어부(120)는 각 블록에 기입된 NBP 값이 나타내는 블록이 상기 각 블록의 다음 블록으로서 연결될 수 있다. NBP의 값은 각 블록의 다음에 할당될 블록의 번호에 대응할 수 있다.
도 2를 참조하여 전술된 것처럼, NBP는 데이터가 기입된 각 블록의 페이지들 중 소정의 페이지에 기입될 수 있다. 예컨대, NBP는 데이터가 기입된 각 블록의 페이지들 중 최초로 데이터가 기입되는 페이지에 기입될 수 있다. 또는, NBP는 각 블록의 최초로 데이터가 기입되는 페이지에만 기입될 수 있다.
또한, 비휘발성 메모리(110)의 데이터가 기입된 블록들 중 제1 블록의 제1 페이지에 기입된 NBP가 제2 블록을 다음의 할당 블록으로서 나타내는 경우, 제1 페이지에 기입된 NBP가 나타내는 제2 블록에 대한 데이터의 기입은 제1 페이지에 대한 데이터의 기입이 완료된 후 수행될 수 있다. 제1 페이지에 대한 데이터 기입이 완료된 후 제2 블록에 대한 데이터의 기입이 수행됨으로써 할당 체인에 의해 연결된 블록들에게만 데이터가 기입될 수 있다.
제어부(120)는 할당 체인을 통해 연결된 블록들의 데이터가 기입된 페이지들을 독출함으로써, 전자 장치(100)의 동작의 비정상적인 종료 시 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다. 제어부(120)가 휘발성 메모리(130) 상의 메타 데이터를 복원하는 시간은 할당 체인을 통해 연결된 블록들의 개수에 비례할 수 있다.
제어부(120)는 할당 체인을 통해 연결된 블록들 중 휘발성 메모리(130) 상의 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결을 해제할 수 있다. 제어부(120)가 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결을 해제하는 방법에 대해서는 후술될 도 4 및 도 8 내지 도 10을 참조하여 더 자세하게 설명된다.
단계(320)에서, 제어부(120)는 전자 장치(100)의 동작의 비정상적인 종료를 감지할 수 있다. 전자 장치(100)의 동작의 비정상적인 종료는 예컨대, 전자 장치(100)의 동작의 비정상적인 종료는 전자 장치(100)의 예상치 못한 전원 손실(sudden Power-off)일 수 있다.
단계(330)에서, 제어부(120)는 전자 장치를 재시작할 수 있다. 말하자면, 제어부(120)는 전자 장치의 시스템을 재시작할 수 있다.
단계(335)에서, 제어부(120)는 비정상적인 종료에 의해 손실된 데이터에 대한 복원을 수행할 수 있다.
단계(337)에서, 제어부(120)는 할당 체인에 의해 연결된 비휘발성 메모리(110)의 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출할 수 있다.
단계(339)에서, 제어부(120)는 독출된 페이지들의 각 페이지에 기입된 복원 정보에 기반하여 휘발성 메모리(130) 상의 비휘발성 메모리(110)의 블록들과 관련된 메타 데이터를 복원할 수 있다. 복원 정보는 각 페이지의 예비 영역에 기입된 휘발성 메모리(130) 상의 메타 데이터의 복원을 위한 정보를 포함할 수 있다. 단계(339)에서 복원되는 메타 데이터는 비휘발성 메모리(110)의 페이지들에 대한 PMT 및 PST 중 적어도 하나일 수 있다.
제어부(120)가 각 페이지에 기입된 복원 정보에 기반하여 메모리(130) 상의 메타 데이터를 복원하는 방법에 대해서는 후술될 도 4 내지 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 및 도 2를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 4는 일 예에 따른 전자 장치의 동작 방법을 나타낸다.
도 4에는 도 3을 참조하여 전술된 할당 체인에 의해 연결된 블록들 중 휘발성 메모리(130) 상의 메타 데이터의 복원에 불필요한 블록들의 할당 체인에 의한 연결을 해제하는 방법이 도시되었다.
단계(410)에서, 제어부(120)는 전자 장치(100)의 비정상적인 종료 전에 휘발성 메모리(130) 상의 블록들과 관련된 백업 메타 데이터를 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다. 백업 메타 데이터는 단계(410)의 수행 당시, 휘발성 메모리(130) 상의 메타 데이터일 수 있다. 예컨대, 단계(410)의 수행 당시의 휘발성 메모리(130) 상의 PMT 및 PST 중 적어도 하나가 비휘발성 메모리(110)의 선택된 블록에 기입될 수 있다. 선택된 블록은 비휘발성 메모리(110)의 블록들 중 하나일 수 있다. 비휘발성 메모리(110)의 선택된 블록에 기입된 백업 메타 데이터는, 전자 장치(100)의 동작의 비정상적인 종료 시 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 사용될 수 있다.
비휘발성 메모리(110)의 선택된 블록에 기입되는 백업 메타 데이터는 OC를 포함할 수 있다. OC는 도 2를 참조하여 전술된 OC에 대응할 수 있다. OC는 페이지의 복원 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
단계(410)의 백업 메타 데이터의 비휘발성 메모리(110)의 선택된 블록에 대한 기입은 소정의 시간 간격으로 수행될 수 있다. 말하자면, 비휘발성 메모리(110)의 선택된 블록에 대한 백업 메타 데이터의 기입은 주기적으로 수행될 수 있다.
단계(420)에서, 제어부(120)는 비휘발성 메모리(110)의 데이터가 기입된 블록들 중 완전히 데이터가 기입된 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록의 할당 체인에 의한 연결을 해제할 수 있다. 단계(420)는 후술될 단계들(422 및 424)를 포함할 수 있다.
완전히 데이터가 기입된 블록은 더 이상 데이터가 기입될 공간이 존재하지 않는 블록일 수 있다. 말하자면, 완전히 데이터가 기입된 블록은 블록의 마지막 페이지까지 데이터가 기입된 블록일 수 있다.
휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록은 단계(410)의 수행 전에 이미 완전히 데이터가 기입된 블록일 수 있다. 또는, 완전히 데이터가 기입된 블록의 페이지들의 복원 정보의 OC들의 각각의 값이 백업 메타 데이터의 OC보다 작은 경우, 완전히 데이터가 기입된 블록은 복원 정보가 결여된 블록일 수 있다.
말하자면, 완전히 데이터가 기입된 블록의 페이지들의 복원 정보의 OC들 및 백업 메타 데이터의 OC의 비교에 기반하여, 백업 메타 데이터가 완전히 데이터가 기입된 블록에 기입된 메타 데이터보다 더 나중의 메타 데이터인 경우, 상기 완전히 데이터가 기입된 블록에 기입된 복원 정보는 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 사용되지 않을 수 있다.
단계(422)에서, 제어부(120)는 휘발성 메모리(130) 상의 할당 체인에 의해 연결된 블록들과 관련된 정보를 포함하는 할당 블록 리스트(allocation block list)에 기반하여 블록들 중 완전히 데이터가 기입된 블록을 식별할 수 있다. 할당 블록 리스트는 할당 체인에 의해 연결된 블록들 중 할당 체인이 시작되는 블록을 나타내는 할당 체인 포인터(Allocation Chain Pointer; ACP)를 포함할 수 있다. 또한, 할당 블록 리스트는 할당 체인에 의해 연결된 블록의 각 블록이 완전히 데이터가 기입된 블록인지 여부를 식별하기 위한 정보를 포함할 수 있다. 할당 블록 리스트는 비휘발성 메모리(110)의 채널 별 ACP를 포함할 수 있다.
할당 블록 리스트에 대해서는 후술될 도 9를 참조하여 더 자세하게 설명된다.
단계(424)에서, 제어부(120)는 블록들 할당 체인에 의해 연결된 블록들 중 할당 체인이 시작되는 블록을 나타내는 상기 할당 블록 리스트의 ACP의 값을 변경할 수 있다. ACP의 값은 할당 체인이 시작되는 블록의 번호에 대응할 수 있다. 말하자면, 제어부(120)는 ACP의 값을 변경함으로써, 할당 체인에 의해 연결된 블록들 중 휘발성 메모리(130) 상의 메타 데이터의 복원에 필요한 복원 정보를 포함하지 않는 블록들의 할당 체인에 의한 연결을 해제할 수 있다. 메타 데이터의 복원에 필요한 복원 정보를 포함하지 않는 블록들의 할당 체인에 의한 연결의 해제는 할당 체인에 대한 체크 포인팅(check-pointing)을 의미할 수 있다.
단계들(422 및 424)은 소정의 시간 간격으로 수행될 수 있다. 말하자면, 제어부(120)는 주기적으로 할당 체인에 대한 체크 포인팅을 수행할 수 있다.
전술된 단계(410)에서 선택된 블록에 기입되는 백업 메타 데이터는 단계(410)의 수행 당시의 ACP를 포함할 수 있다. 예컨대, 백업 메타 데이터는 전자 장치(100)의 동작의 비정상적인 종료 전의 할당 체인이 시작되는 블록을 나타내는 백업 ACP, 상기 비정상적인 종료 전의 백업 PMT, 상기 비정상적인 종료 전의 백업 PST 및 OC 중 적어도 하나를 포함할 수 있다. 백업 ACP, 백업 PMT 및 백업 PST는 단계(410)의 수행 당시의 ACP, PMT 및 PST에 각각 대응할 수 있다.
도 3을 참조하여 전술된 단계(337)에서, 제어부(120)는 백업 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들을 독출할 수 있다.
단계(339)에서, 제어부(120)는 단계(337)에서 독출된 페이지들의 각 페이지에 기입된 복원 정보 및 비휘발성 메모리(110)의 선택된 블록에 기입된 백업 메타 데이터에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다. 예컨대, 제어부(120)는 백업 ACP, 백업 PMT의 하나 이상의 값들, 백업 PST의 하나 이상의 값들, OC 및 단계(337)에서 독출된 페이지들의 각 페이지에 기입된 복원 정보 중 적어도 하나를 사용하여 전자 장치(100)의 재시작 후 비휘발성 메모리(110)의 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다.
제어부(120)가 휘발성 메모리(130) 상의 메타 데이터를 복원하는 방법에 대해서는 도 5 내지 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 3을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 5는 일 예에 따른 휘발성 메모리 상의 메타 데이터를 복원하는 방법을 나타낸다.
도 4를 참조하여 전술된 것처럼 단계(339)에서, 제어부(120)는 비휘발성 메모리(110)의 독출된 페이지들의 각 페이지에 기입된 복원 정보 및 비휘발성 메모리(110)의 선택된 블록에 기입된 백업 메타 데이터에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다. 단계(339)는 후술될 단계들(510 내지 530)을 포함할 수 있다.
도 2를 참조하여 전술된 것처럼 각 페이지의 복원 정보는 LPN 및 OC를 포함할 수 있다. 복원 정보의 OC는 상기 각 페이지의 복원 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
단계(510)에서, 제어부(120)는 백업 메타 데이터의 OC 및 각 페이지의 복원 정보의 OC 간의 비교에 기반하여, 백업 메타 데이터의 백업 ACP, 백업 PMT의 하나 이상의 값들, 백업 PST의 하나 이상의 값들, 물리 페이지의 번호(Physical Page Number; PPN), 복원 정보의 LPN 중 적어도 하나를 사용하여 복원 정보 리스트를 생성할 수 있다. 복원 정보 리스트는 휘발성 메모리(130) 상의 PMT 및 PST 의 적어도 하나의 복원을 위해 사용되는 정보의 리스트일 수 있다.
예컨대, 제어부(120)는 백업 데이터의 OC, 백업 PMT 및 백업 PST를 휘발성 메모리(130) 상에 적재할 수 있다. 제어부(120)는 백업 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들의 각각의 복원 정보의 OC가 백업 메타 데이터의 OC보다 더 큰 경우 상기 더 큰 OC가 기입된 페이지의 PPN 및 LPN을 사용하여 적재된 메타 데이터를 업데이트함으로써 복원 정보 리스트를 생성할 수 있다. 생성된 복원 정보 리스트의 값들에 기반하여 휘발성 메모리(130) 상의 PMT 및 PST 중 적어도 하나가 복원될 수 있다.
복원 정보 리스트는 비휘발성 메모리(110)의 페이지들(물리 페이지들)의 각각이 가리키는 LPN, 페이지들(물리 페이지들)의 상태 및 페이지들의 각각의 OC 중 적어도 하나와 관련된 정보를 포함할 수 있다.
복원 정보 리스트를 생성하는 방법에 대해서는 후술될 도 14 내지 도 17을 참조하여 더 자세하게 설명된다.
단계(520)에서, 제어부(120)는 메타 데이터의 백업 ACP에 기반하여 할당 체인에 의해 연결된 블록들을 식별할 수 있고 상기 블록들과 관련된 정보를 포함하는 할당 블록 리스트를 복원할 수 있다. 복원된 할당 블록 리스트는 전자 장치(100)의 재시작 후 전자 장치(100)의 동작 시 할당 체인의 체크 포인팅을 위해 사용될 수 있다.
제어부(120)는 백업 ACP가 나타내는 블록을 할당 체인이 시작되는 블록으로서 식별함으로써 할당 체인에 의해 연결된 블록들을 식별할 수 있다. 제어부(120)는 연결된 블록들의 각각이 데이터가 완전히 기입된 블록인지를 식별함으로써 할당 블록 리스트를 복원할 수 있다.
제어부(120)가 할당 블록 리스트를 복원하는 방법에 대해서는 후술될 도 15, 도 18 및 도 19를 참조하여 더 자세하게 설명된다.
도시된 것과는 달리 단계(520)는 단계(510)보다 먼저 수행될 수 있다. 말하자면, 단계(520) 및 단계(510)가 수행되는 순서는 도시된 것과는 상이할 수 있다. 또는, 도시된 것과는 달리 단계(520)는 단계(510)의 수행과는 독립적으로 수행될 수 있다.
단계(530)에서, 제어부(120)는 단계(510)에서 생성된 복원 정보 리스트에 기반하여 휘발성 메모리(130) 상의 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다. 예컨대, 제어부(120)는 복원 정보 리스트의 각 페이지(물리 페이지)가 가리키는 LPN 및 각 페이지의 상태와 관련된 정보에 기반하여 휘발성 메모리(130) 상에 적재된 메타 데이터 또는 백업 PMT 및 백업 PST를 업데이트함으로써 휘발성 메모리(130) 상의 PMT 및 PST를 복원할 수 있다.
제어부(120)가 휘발성 메모리(130) 상의 페이지들에 대한 PMT 및 PST를 복원하는 방법에 대해서는 후술될 도 20을 참조하여 더 자세하게 설명된다.
또는, 제어부(120)는 비휘발성 메모리(110)의 블록들과 관련된 메타 데이터의 복원을 위한 저널 정보에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다. 예컨대, 제어부(120)는 비휘발성 메모리(110)에 기입된 각 페이지의 복원 정보, 저널 정보 및 백업 메타 데이터에 기반하여 전자 장치(100)의 동작의 비정상적인 종료 후 휘발성 메모리(130) 상의 메타 데이터를 복원할 수 있다.
제어부(120)가 저널 정보에 기반하여 휘발성 메모리(130) 상의 메타 데이터를 복원하는 방법에 대해서는 후술될 도 6 및 도 11 내지 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 4를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 6은 일 예에 따른 전자 장치의 동작 방법을 나타낸다.
도 6은 도 3을 참조하여 전술된 도 1을 참조하여 전술된 전자 장치(100)의 동작 및 전자 장치(100)의 동작의 비정상적인 종료 시 전자 장치(100)의 재시작 방법이 도시되었다. 도 6에서 단계(310)는 후술될 단계(610)을 더 포함할 수 있다.
단계(610)에서, 제어부(120)는 휘발성 메모리(130) 상의 비휘발성 메모리(110)의 하나 이상의 블록들과 관련된 메타 데이터의 복원을 위한 저널 정보를 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다. 선택된 블록은 비휘발성 메모리(110)의 블록들 중 하나일 수 있다. 저널 정보는 휘발성 메모리(130)에 저장된 후 비휘발성 메모리(110)에 기입될 수 있다. 저널 정보의 기입을 위해 선택된 블록 및 단계(410)에서 백업 메타 데이터가 기입된 선택된 블록은 서로 상이할 수 있다.
비휘발성 메모리(110)의 선택된 블록에 기입된 저널 정보는, 전자 장치(100)의 동작의 비정상적인 종료 시 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 사용될 수 있다.
저널 정보는 데이터가 기입된 각 페이지의 PPN, 각 페이지의 LPN 및 OC를 포함할 수 있다. 각 페이지의 LPN은 상기 각 페이지의 물리 페이지가 가리키는 논리 페이지의 번호일 수 있다. 또한, OC는 각 페이지의 복원 정보, 저널 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
또한, 저널 정보는 도 3을 참조하여 전술된 할당 체인이 시작되는 블록을 나타내는 ACP를 포함할 수 있다. 저널 정보의 ACP는 저널 정보가 휘발성 메모리(130)에 저장될 당시의 ACP일 수 있다.
단계(337)에서, 제어부(120)는 할당 체인에 의해 연결된 비휘발성 메모리(110)의 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출할 수 있다. 예컨대, 제어부(120)는 전자 장치(100)의 동작의 비정상 적인 종료 후 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 저널 정보의 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들을 독출할 수 있다.
단계(339)에서, 제어부(120)는 독출된 페이지들의 각 페이지에 기입된 복원 정보 및 선택된 블록에 기입된 저널 정보에 기반하여 휘발성 메모리(130) 상의 비휘발성 메모리(110)의 블록들과 관련된 메타 데이터를 복원할 수 있다. 예컨대, 제어부(120)는 전자 장치(100)의 동작의 비정상적인 종료 후 재시작 시 저널 정보의 PPN, 저널 정보의 LPN, 저널 정보의 OC 및 상기 복원 정보 중 적어도 하나를 사용하여 비휘발성 메모리(110)의 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다. 도 2를 참조하여 전술된 것처럼, 페이지의 복원 정보는 LPN 및 OC를 포함할 수 있다. 복원 정보의 OC는 각 페이지의 복원 정보, 저널 정보 및 휘발성 메모리(130) 상의 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함할 수 있다.
이 때, 도 5를 참조하여 전술된 단계(510)에서, 제어부(120)는 선택된 블록 내의 저널 정보의 OC 및 각 페이지의 복원 정보의 OC 간의 비교에 기반하여, 저널 정보의 PPN, 저널 정보의 LPN 및 각 페이지의 복원 정보의 LPN 중 적어도 하나를 사용하여 복원 정보 리스트를 생성할 수 있다.
또는, 제어부(120)는 단계(410)에서 선택된 블록에 기입된 백업 메타 데이터를 휘발성 메모리(130) 상의 메타 데이터의 복원에 사용할 수 있다. 이 때, 단계(337)에서, 제어부(120)는 전자 장치(100)의 동작의 비정상적인 종료 후 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해, 저널 정보의 OC 및 백업 메타 데이터의 OC 간의 비교에 기반하여, 저널 정보의 ACP 및 백업 ACP 중 더 나중의 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들을 독출할 수 있다.
단계(339)에서, 제어부(120)는 저널 정보의 PPN, 저널 정보의 LPN, 저널 정보의 ACP, 저널 정보의 OC, 백업 메타 데이터의 백업 ACP, 백업 메타 데이터의 백업 PMT의 하나 이상의 값들, 백업 메타 데이터의 백업 PST의 하나 이상의 값들, 백업 메타 데이터의 OC 및 각 페이지의 복원 정보 중 적어도 하나를 사용하여 전자 장치(100)의 재시작 후 비휘발성 메모리(110)의 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다. 이 때, 도 5를 참조하여 전술된 단계(510)에서, 제어부(120)는 저널 정보의 OC, 각 페이지의 복원 정보의 OC 및 백업 메타 데이터의 OC 간의 비교에 기반하여, 저널 정보의 PPN, 저널 정보의 LPN, 저널 정보의 ACP, 백업 ACP, 백업 PMT의 하나 이상의 값들, 백업 PST의 하나 이상의 값들, 복원 정보의 LPN 중 적어도 하나를 사용하여 복원 정보 리스트를 생성할 수 있다. 예컨대, 제어부(120)는 백업 메타 데이터의 OC, 백업 PMT 및 백업 PST를 휘발성 메모리(130) 상에 적재할 수 있다. 제어부(120)는 백업 메타 데이터의 OC 및 저널 정보의 OC를 비교할 수 있고, 저널 정보의 OC가 더 큰 경우 저널 정보 값에 기반하여 휘발성 메모리(130)에 적재된 메타 데이터를 업데이트할 수 있다. 또한, 제어부(120)는 백업 메타 데이터의 OC 및 저널 정보의 OC 중 더 큰 OC를 갖는, 백업 메타 데이터 또는 저널 정보의 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들의 각각의 OC를 상기 더 큰 OC와 비교할 수 있다. 페이지들의 각각의 OC가 상기 더 큰 OC보다 더 큰 경우, 제어부(120)는 더 큰 OC를 갖는 페이지들의 각각의 복원 정보에 기반하여 휘발성 메모리(130)에 적재된 메타 데이터를 업데이트함으로써 복원 정보 리스트를 생성할 수 있다. 제어부(120)는 생성된 복원 정보 리스트의 값들에 기반하여 휘발성 메모리(130) 상의 PMT 및 PST 중 적어도 하나를 복원할 수 있다.
복원 정보 리스트를 생성하는 방법에 대해서는 후술될 도 14 내지 도 17을 참조하여 더 자세하게 설명된다.
또한, 단계(520)에서, 제어부(120)는 저널 정보의 OC 및 백업 메타 데이터의 OC 간의 비교에 기반하여 저널 정보의 ACP 및 백업 ACP 중 선택된 ACP에 기반하여 할당 체인에 의해 연결된 블록들과 관련된 정보를 포함하는 할당 블록 리스트를 복원할 수 있다. 예컨대, 저널 정보의 OC 및 백업 메타 데이터의 OC 중 더 큰 OC의 저널 정보 또는 백업 메타 데이터의 ACP가 나타내는 블록으로부터 시작되는 할당 체인에 의해 연결된 블록들 및 상기 블록들의 데이터가 기입된 페이지들에 기반하여 할당 블록 리스트를 복원할 수 있다.
제어부(120)가 할당 블록 리스트를 복원하는 방법에 대해서는 후술될 도 14, 도 18 및 도 19를 참조하여 더 자세하게 설명된다
단계(530)에서, 제어부(120)는 단계(510)에서 생성된 복원 정보 리스트에 기반하여 휘발성 메모리(130) 상의 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원할 수 있다.
제어부(120)가 휘발성 메모리(130) 상의 페이지들에 대한 PMT 및 PST를 복원하는 방법에 대해서는 후술될 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 5를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 7은 일 예에 따른 선택된 블록에 저널 정보를 기입하는 방법을 나타낸다.
도 7에는 제어부(120)가 휘발성 메모리(130) 상의 메타 데이터의 복원을 위한 저널 정보를 비휘발성 메모리(110)의 선택된 블록에 기입하는 방법이 도시되었다. 도 6을 참조하여 전술된 단계(610)는 후술될 단계들(710 및 720)을 포함할 수 있다.
단계(710)에서, 제어부(120)는 저널 정보를 휘발성 메모리(130) 상의 저널 버퍼에 기입할 수 있다. 저널 버퍼는 저널 정보가 비휘발성 메모리(110)의 선택된 블록에 기입되기 전에 임시적으로 저장되는 휘발성 메모리(130) 내의 저장 공간일 수 있다.
단계(720)에서, 제어부(120)는 저널 정보가 저널 버퍼에 소정의 페이지만큼 기입되면, 저널 버퍼에 기입된 소정의 페이지만큼의 저널 정보를 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다. 예컨대, 제어부(120)는 한 페이지 이상의 저널 정보가 저널 버퍼에 기입되면, 저널 정보를 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다. 또는, 제어부(120)는 저널 버퍼에 기입된 저널 정보를 페이지 단위로 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다.
비휘발성 메모리(110)에 대한 데이터의 기입은 페이지 단위로 수행될 수 있기 때문에, 페이지 단위로 비휘발성 메모리(110)의 선택된 블록에 저널 정보가 기입됨으로써 저널 정보의 비휘발성 메모리(110)에 대한 기입 횟수가 줄어들 수 있다.
비휘발성 메모리(110)의 선택된 블록에 대한 저널 정보의 기입에 대해서는 후술될 도 11 및 도 12를 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 6을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 8은 일 예에 따른 블록의 할당 체인에 의한 연결을 해제하는 방법을 나타낸다. 도 8에는 도 3을 참조하여 전술된 휘발성 메모리(130) 상의 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결을 해제하는 방법이 도시되었다.
도 8에서는, 블록 2, 블록 5, 블록 4 및 블록 3이 할당 체인에 의해 연결되었다. 블록들(블록 2 내지 5)는 각 블록들의 최초로 데이터가 기입되는 페이지에 기입된 NBP의 값에 기반한 순서로 연결될 수 있다.
제어부(120)는 블록 2 및 블록 5를 완전히 데이터가 기입된 블록으로서 식별할 수 있다. 제어부(120)는 휘발성 메모리(130) 상의 할당 블록 리스트의 ACP의 값을 2에서 4로 변경함으로써, 블록 2 및 블록 5의 할당 체인에 의한 연결을 해제할 수 있다. 말하자면, 할당 블록 리스트의 ACP의 값이 2에서 4로 변경됨으로써, 할당 체인이 시작되는 블록은 블록 2에서 블록 5로 변경될 수 있다.
할당 체인에 의해 연결된 블록의 개수가 4개에서 2개로 줄어듦으로써, 제어부(120)가 휘발성 메모리(130) 상의 메타 데이터를 복원하기 위해 데이터가 기입된 페이지들을 독출하는 시간이 줄어들 수 있다.
전술된 ACP 값의 변경은 도 4를 참조하여 전술된 단계(410)의 선택된 블록에 대한 백업 베타데이터의 기입 후에 수행될 수 있다. 이 때, 블록 2 및 블록 5는 완전히 데이터가 기입된 휘발성 메모리(130) 상의 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록들일 수 있다.
앞서 도 1 내지 도 7을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 9는 일 예에 따른 할당 블록 리스트를 나타낸다.
도 9에는 도 4를 참조하여 전술된 할당 블록 리스트가 도시되었다.
할당 블록 리스트는 휘발성 메모리(130) 상에 저장될 수 있다. 할당 블록 리스트는 채널 별로 존재할 수 있다. 도시된 할당 블록 리스트는 도 8을 참조하여 전술된 블록들(블록 2 내지 블록 5)이 연결된 할당 체인에 대응하는 할당 블록 리스트일 수 있다.
블록들(블록 2 내지 블록 5)은 블록 2, 블록 5, 블록 4 및 블록 3의 순서로 연결될 수 있으므로, ACP의 값은 2일 수 있다. Full_Flag의 값은 각 블록이 완전히 데이터가 기입된 블록인지 여부를 나타낼 수 있다. 예컨대, Full_Flag의 값이 1인 경우, 블록은 완전히 데이터가 기입된 블록일 수 있고, Full_Flag의 값이 0인 경우 블록은 완전히 데이터가 기입되지 않은 블록일 수 있다.
도시된 것처럼, 블록 2 및 블록 5의 Full_Flag 값들은 1로서 블록 2 및 블록 5는 데이터가 완전히 기입된 블록일 수 있다.
할당 블록 리스트의 ACP 값이 변경됨으로써, 휘발성 메모리(130) 상의 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결이 해제될 수 있다. 예컨대, 제어부(120)는 할당 블록 리스트의 Full_Flag의 값이 1인 블록들의 할당 체인에 의한 연결을 해제하기 위해 ACP 값을 2에서 4로 변경함으로써, 블록 2 및 블록 5의 할당 체인에 의한 연결을 해제할 수 있다.
앞서 도 1 내지 도 8을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 10은 일 예에 따른 백업 메타 데이터를 선택된 블록에 기입하는 방법을 나타낸다.
도시된 휘발성 메모리(130)에는 비휘발성 메모리(110)의 페이지들에 대한 PMT, PST, 할당 블록 리스트 및 OC가 저장될 수 있다. 도 8 및 도 9를 참조하여 전술된 것처럼 할당 블록 리스트의 ACP가 변경됨으로써, 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결이 해제될 수 있다.
도 4를 참조하여 전술된 단계(410)에서, 제어부(120)는 전자 장치(100)의 비정상적인 종료 전에 휘발성 메모리(130) 상의 블록들과 관련된 백업 메타 데이터를 비휘발성 메모리(110)의 선택된 블록에 기입할 수 있다. 도 10에서 선택된 블록은 채널 0의 블록 0일 수 있다. 블록 0에는 휘발성 메모리(130) 상의 메타 데이터인, 백업 PMT, 백업 PST, 할당 블록 리스트의 백업 ACP 및 OC가 기입될 수 있다.
블록 0의 페이지 0 및 페이지 1에 기입된 백업 PMT, 백업 PST, 할당 블록 리스트의 백업 ACP 및 OC는 초기치일 수 있다. 이때, OC는 0일 수 있다.
블록 0의 페이지 2 및 페이지 3에 기입된 백업 PMT, 백업 PST, 할당 블록 리스트의 백업 ACP 및 OC는 단계(410)의 수행 당시의 휘발성 메모리(130) 상의 메타 데이터일 수 있다.
전술된 것처럼, 단계(410)는 메타 데이터의 복원에 불필요한 블록의 할당 체인에 의한 연결의 해제를 위한 ACP의 변경 보다 먼저 수행될 수 있다.
제어부(120)는 비휘발성 메모리(110)의 선택된 블록에 대한 백업 메타 데이터의 기입 후, 휘발성 메모리(130)의 OC를 증가시킬 수 있다. 예컨대, 단계(410)가 수행된 후 OC는 1만큼 증가될 수 있다. 증가된 OC에 의해 단계(410)의 수행 후에 비휘발성 메모리(110) 및 휘발성 메모리(130)에 대해 수행되는 연산들이 단계(410)의 수행 전에 비휘발성 메모리(110) 및 휘발성 메모리(130)에 대해 수행되는 연산들과 구분될 수 있다.
비휘발성 메모리(110)의 선택된 블록에 대해 백업 메타 데이터가 기입되고, 할당 블록 리스트의 ACP가 변경됨으로써 할당 체인에 대한 체크 포인팅이 완료될 수 있다.
앞서 도 1 내지 도 9를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 11은 일 예에 따른 휘발성 메모리 상의 저널 정보의 저장 방법을 나타낸다.
도 11에는 도 6을 참조하여 전술된 단계(610)가 수행되기 전에 휘발성 메모리(130) 상의 저널 버퍼에 저널 정보가 기입되는 방법이 도시되었다.
데이터는 휘발성 메모리(130)의 쓰기 버퍼를 통해 비휘발성 메모리(110)의 페이지에 기입될 수 있다. 예컨대, 제어부(120)는 채널 1의 블록 2의 페이지 35에 데이터를 기입할 수 있다. 제어부(120)는 데이터의 기입 후 휘발성 메모리의 OC를 증가시킬 수 있다. OC가 증가됨으로써, 페이지 35에 대한 데이터의 기입 후에 수행되는 연산과 페이지 35에 대한 데이터의 기입 전에 수행되는 연산이 구분될 수 있다. 제어부(120)는 페이지 35에 대한 데이터의 기입에 기반하여 휘발성 메모리(130)의 PMT 및 PST를 업데이트할 수 있다. 예컨대, 도시된 것처럼, 제어부(120)는 PMT의 논리 페이지 2를 가리키는 페이지를 8에서 35로 변경할 수 있다. 또한, 제어부(120)는 PST의 페이지 8의 상태를 유효 상태(01)에서 무효 생태(10)로 변경할 수 있고, 페이지 35의 상태를 빈 상태(00)에서 유효 상태(01)로 변경할 수 있다. 또한, 제어부(120)는 할당 블록 리스트의 블록 2의 Full_Flag의 값을 0에서 1로 변경할 수 있다.
제어부(120)는 데이터가 기입되는 페이지의 번호(35) 및 페이지 35가 가리키는 LPN(2)을 저널 정보로서 저널 버퍼에 기입할 수 있다.
저널 정보는 각 채널의 ACP, 저널의 개수 및 OC를 더 포함할 수 있다. 각 페이지에 대한 페이지의 번호(PPN) 및 페이지가 가리키는 LPN은 하나의 저널일 수 있다. 말하자면, PPN 및 PPN에 대응하는 LPN은 각 페이지 별로 한 쌍(pair)으로서 저널 버퍼 내에서 관리될 수 있다.
각 채널의 ACP, 저널의 개수 및 OC는 저널 헤드에 저장될 수 있다. 저널 버퍼에 추가로 저널이 기입되면 저널의 개수는 업데이트될 수 있다.
저널 헤드에 저장된 정보의 업데이트 및 저널 버퍼에 기입된 저널 정보가 비휘발성 메모리(110)의 선택된 블록에 기입되는 방법에 대해서는 후술될 도 12를 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 10을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 12는 일 예에 따른 저널 정보를 선택된 블록에 기입하는 방법을 나타낸다.
도 8 및 도 9를 참조하여 전술된 것처럼, 제어부(120)는 할당 블록 리스트의 ACP 값을 변경함으로써 데이터가 완전히 기입된 블록의 할당 체인에 의한 연결을 해제할 수 있다. 제어부(120)는 변경된 ACP의 값 및 OC를 저널 헤드에 저장할 수 있다. 제어부(120)는 이후 수행될 연산의 순서의 구분을 위해 OC를 증가시킬 수 있다.
도 6을 참조하여 전술된 단계(610)에서, 제어부(120)는 저널 버퍼에 기입된 저널 정보는 비휘발성 메모리(110)의 선택된 블록에 기입될 수 있다. 예컨대, 저널 정보는 채널 0의 블록 1에 기입될 수 있다. 선택된 블록에 기입된 저널 정보는 각 채널의 ACP, 저널의 개수, OC 및 저널들을 포함할 수 있다.
각 저널의 PPN 및 PPN에 대응하는 LPN은 각 페이지 별로 한 쌍(pair)으로서 선택된 블록 내에서 관리될 수 있다.
선택된 블록에 각 채널의 ACP, 저널의 개수, OC 및 저널들은 도 4를 참조하여 전술된 단계(410)에서 선택된 블록에 기입된 백업 메타 데이터에 대응할 수 있다. 말하자면, 단계(610)의 수행에 의해, 단계(410)의 반복적인 수행에 따른 전자 장치(100)의 부하를 줄일 수 있다.
제어부(120)는 선택된 블록 내에 저널 정보가 기입될 수 있는 공간이 부족한 경우, 선택된 블록 내에 저장된 저널 정보를 초기화할 수 있다. 예컨대, 저널 정보가 선택된 블록 내에 기입된 후 백업 메타데이터가 다른 선택된 블록 내에 기입되는 경우, 선택된 블록 내에 기입된 저널 정보는 소거될 수 있다.
앞서 도 1 내지 도 11을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 13는 일 예에 따른 전자 장치의 동작의 비정상 적인 종료 후 비휘발성 메모리 및 휘발성 메모리의 상태를 나타낸다.
도 13에는 도 12를 참조하여 전술된 저널 정보가 선택된 블록에 기입된 후, OC가 11인 페이지 13에 대한 데이터의 기입 및 OC가 12인 페이지 10에 대한 데이터의 기입이 정상적으로 수행되고, OC가 13인 페이지 11에 데이터가 기입되는 도중에 전자 장치(100)의 동작이 비정상적으로 종료된 경우가 도시되었다.
제어부(120)는 선택된 블록(블록 0)에 기입된 백업 메타 데이터, 선택된 블록(블록 1)에 기입된 저널 정보 및 블록들의 데이터가 기입된 페이지들의 복원 정보에 기반하여, 전자 장치(100)의 동작의 비정상적인 종료 전의 PMT 및 PST를 복원할 수 있다.
전자 장치(100)의 동작의 비정상적인 종료 전의 휘발성 메모리(130) 상의 PMT 및 PST를 복원하는 방법에 대해서는 후술될 도 14 내지 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 12를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 14는 일 예에 따른 메타 데이터를 복원하는 방법을 나타낸다.
도 14에는 도 3을 참조하여 전술된 전자 장치(100)의 동작이 비정상적으로 종료된 후 전자 장치(100)의 재시작 시 휘발성 메모리(130) 상의 메타 데이터를 복원하는 방법이 도시되었다.
제어부(120)는 채널 0의 블록 0에 기입된 백업 메타 데이터의 OC 및 각 채널 별 백업 ACP의 값을 사용하여 휘발성 메모리(130)의 OC 및 ACP의 값을 업데이트할 수 있다. 또한, 제어부(120)는 백업 메타 데이터의 백업 PMT 및 백업 PST를 휘발성 메모리(130) 상에 적재할 수 있다.
제어부(120)는 백업 메타 데이터의 OC 및 채널 0의 블록 1에 기입된 저널 정보의 OC를 비교할 수 있다. 도시된 예시에서, 백업 메타 데이터의 OC는 0이고, 저널 정보의 OC는 10이기 때문에, 제어부(120)는 저널 정보의 메타 데이터가 백업 메타 데이터보다 더 나중의 정보임을 식별할 수 있다. 말하자면, 저널 정보의 저널들 및 채널 별 ACP의 값은 백업 메타 데이터의 백업 PMT의 값들, 백업 PST의 값들 및 각 채널 별 백업 ACP의 값보다 더 최신의 메타 데이터일 수 있다.
제어부(120)는 저널 정보의 OC 및 각 채널 별 백업 ACP의 값을 사용하여 휘발성 메모리(130)의 OC 및 ACP의 값을 다시 업데이트할 수 있다. 예컨대, 휘발성 메모리(130)의 OC는 10으로 업데이트될 수 있고, 채널 0의 ACP의 값은 2로 업데이트 될 수 있고, 채널 1의 ACP의 값은 5로 업데이트 될 수 있다.
또한, 제어부(120)는 저널 정보의 저널들을 사용하여 휘발성 메모리(130) 상의 PMT 및 PST의 복원을 위한 복원 정보 리스트를 생성할 수 있다.
도시된 것과는 달리, 저널 정보의 OC가 백업 메타 데이터의 OC보다 더 작다면, 백업 PMT 및 백업 PST의 값들을 사용하여 복원 정보 리스트가 생성될 수 있다.
복원 정보 리스트는 데이터가 기입된 페이지들의 복원 정보에 기반하여 업데이트 될 수 있다.
복원 정보 리스트의 생성 방법 및 복원 정보 리스트에 기반한 휘발성 메모리(130) 상의 PMT 및 PST의 복원 방법에 대해서는 후술될 도 15 내지 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 13을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 15는 일 예에 따른 메타 데이터를 복원하는 방법을 나타낸다.
도 15에는 도 14를 참조하여 전술된 업데이트된 ACP의 값에 기반하여 각 채널별 할당 복원 리스트가 복원되고, 업데이된 OC에 기반하여 생성된 복원 정보 리스트가 업데이트되는 방법이 도시되었다.
도 15에서, 채널 0의 ACP의 값은 2이므로 채널 0의 할당 체인은 블록 2로부터 시작될 수 있다. 제어부(120)는 블록 2의 NBP 값에 기반하여 연결된 다음 블록이 블록 3이고 그 다음 블록은 블록 4임을 식별할 수 있다. 또한, 제어부(120)는 블록 2, 블록 3 및 블록 4가 완전히 데이터가 기입된 블록인지를 식별할 수 있다. 제어부(120)는 식별된 정보에 기반하여 채널 0의 할당 블록 리스트를 복원할 수 있다. 마찬가지로, 제어부(120)는 채널 1의 할당 블록 리스트를 복원할 수 있다.
제어부(120)가 할당 블록 리스트를 복원하는 방법에 대해서는 후술될 도 18 및 도 19를 참조하여 더 자세하게 설명된다.
또한, 제어부(120)는 ACP의 값들에 기반하여 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들의 복원 정보에 기반하여 복원 정보 리스트를 업데이트할 수 있다.
업데이트된 OC보다 큰 OC가 기입된 페이지의 복원 정보가 포함하는 메타 데이터는 도 14를 참조하여 전술된 복원 정보 리스트의 메타 데이터보다 더 나중의 메타 데이터일 수 있다.
제어부(120)는 OC가 12인 페이지 10 및 OC가 11인 페이지 13의 복원 정보 및 데이터의 기입 실패가 발생한 페이지 11에 기반하여 복원 정보 리스트를 업데이트할 수 있다.
제어부(120)가 복원 정보 리스트를 생성하는 방법에 대해서는 후술될 도 16 및 도 17을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 14를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 16은 일 예에 따른 복원 정보 리스트를 생성하는 방법을 나타낸다.
도 16에는 도 14 및 도 15를 참조하여 전술된 저널들에 기반하여 복원 정보 리스트가 생성되는 방법이 도시되었다.
제어부(120)는 저널 정보의 저널 헤드에 저장된 OC를 사용하여 휘발성 메모리(130)의 OC를 10으로 업데이트할 수 있다. 또한 제어부(120)는, 각 논리 페이지별로 각 논리 페이지를 가리키는 물리 페이지를 대응시킬 수 있다. 예컨대, LPN 2에 대해, 제어부(120)는 페이지 8 및 페이지 35를 순차적으로 대응시킬 수 있다. 저널 정보의 OC는 10이므로 복원 정보 리스트의 각 페이지의 OC는 10이 될 수 있다. 각 페이지의 상태는 모두 NULL로서 설정될 수 있다.
생성된 복원 정보 리스트는 할당 체인에 의해 연결된 블록들의 데이터가 기입된 페이지들 중 OC가 10보다 큰 페이지들의 복원 정보에 기반하여 복원 정보 리스트를 업데이트할 수 있다.
앞서 도 1 내지 도 15를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 17은 일 예에 따른 복원 정보 리스트를 업데이트하는 방법을 나타낸다.
도 17에는 도 16을 참조하여 전술된 저널 정보에 기반하여 생성된 복원 정보 리스트를 페이지들의 복원 정보에 기반하여 업데이트 하는 방법이 도시되었다.
제어부(120)는 저널 정보의 OC보다 더 큰 OC를 갖는 페이지의 복원 정보에 기반하여 복원 정보 리스트를 업데이트할 수 있다. 예컨대, 도시된 것처럼, 저널 정보의 OC가 10인 경우, 제어부(120)는 OC가 11인 페이지 13 및 OC가 12인 페이지 10의 복원 정보를 사용하여 복원 정보 리스트를 업데이트할 수 있다.
또한, 제어부(120)는 기입 실패가 발생한 페이지 11의 페이지 번호 및 빈 페이지의 페이지 번호를 사용하여 복원 정보 리스트를 업데이트할 수 있다.
또한, 제어부(120)는 도 15에서 복원된 할당 블록 리스트의 할당 체인에 의해 연결된 블록들 내의 빈 페이지를 식별함으로써 복원 정보 리스트를 업데이트할 수 있다. 예컨대, 제어부(120)는 페이지 46, 페이지 14, 페이지 16 및 페이지 40을 빈(free) 페이지로서 식별할 수 있다.
휘발성 메모리(130) 상의 OC는 10에서 데이터가 기입된 페이지의 OC들 중 가장 큰 OC인 12로 업데이트될 수 있다.
업데이트된 복원 정보 리스트에 기반하여 휘발성 메모리(130) 상의 PMT 및 PST가 복원되는 방법에 대해서는 후술될 도 20을 참조하여 더 자세하게 설명된다.
앞서 도 1 내지 도 16을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 18 및 도 19는 일 예에 따른 할당 블록 리스트를 복구하는 방법을 나타낸다.
도 18 및 도 19는 저널 정보에 의해 업데이트된 ACP의 값에 기반하여 채널 0 및 채널 1의 할당 체인들에 대한 할당 블록 리스트들이 복원되는 방법이 도시되었다.
도 18에서, 업데이트된 ACP의 값 2에 의해 블록 2, 블록 3 및 블록 4의 순서로 블록들은 할당 체인에 의해 연결되었다. 제어부(120)는 블록 2, 블록 3 및 블록 4의 각각이 데이터가 완전히 기입된 블록인지 여부를 식별할 수 있다. 예컨대, 제어부(120)는 블록 2를 데이터가 완전히 기입된 블록으로서 식별할 수 있고, 블록 2에 대한 할당 블록 리스트의 Full_Flag의 값을 1로서 설정할 수 있다. 제어부(120)는 할당 체인에 의해 연결된 모든 블록들에 대해 할당 블록 리스트의 Full_Flag의 값을 설정함으로써 할당 블록 리스트를 복원할 수 있다.
마찬가지로, 도 19에서, 업데이트된 ACP의 값 5에 의해 블록 5 및 블록 4의 순서로 블록들은 할당 체인에 의해 연결되었고, 제어부(120)는 할당 체인에 의해 연결된 모든 블록들에 대해 할당 블록 리스트의 Full_Flag의 값을 설정함으로써 할당 블록 리스트를 복원할 수 있다.
복원된 블록 리스트는 할당 체인에 대한 체크 포인팅의 수행을 위해 사용될 수 있다.
앞서 도 1 내지 도 17을 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
도 20은 일 예에 따른 복원 정보 리스트에 기반하여 휘발성 메모리 상의 메타 데이터를 복원하는 방법을 나타낸다.
도 20에는 도 17을 참조하여 전술된 복원 정보 리스트에 기반하여 휘발성 메모리(130) 상의 PMT 및 PST가 복원되는 방법이 도시되었다.
제어부(120)는 PMT 및 PST의 복원 전 후의 연산의 수행의 순서를 구분하기 위해 휘발성 메모리(130)의 OC를 증가시킬 수 있다.
제어부(120)는 빈 페이지 또는 기입 실패된 페이지가 논리 페이지를 가리키는 경우 이러한 복원 정보 리스트 내의 정보를 제거할 수 있다. 예컨대, 비휘발성 메모리(130)의 페이지가 빈 페이지 또는 기입 실패된 페이지인데도, 복원 정보 리스트에는 데이터가 기입된 것으로 나타난 경우, 이러한 복원 정보 리스트 내의 정보는 PMT 및 PST의 복원에 불필요하므로 제거될 수 있다.
제어부(120)는 복원 정보 리스트의 각 페이지의 상태를 업데이트함으로써 PST를 업데이트할 수 있다. 예컨대, 동일한 논리 페이지를 가리키는 페이지들 중 가장 나중에 데이터가 기입된 페이지를 유효 상태(Valid)(01)로 식별할 수 있고, 나머지를 무효 상태(INvalid)(10)로 식별할 수 있다. 기입 실패된 페이지의 상태는 무효 상태로 식별될 수 있다. 또한, 제어부(120)는 복원 정보 리스트에 기반하여 빈 페이지(00)를 식별할 수 있다.
제어부(120)는 상태가 업데이트된 복원 정보 리스트에 기반하여 메모리(130) 상의 PMT 및 PST를 복원할 수 있다. PMT 및 PST의 복원은 복원 전 PMT 및 복원 전 PST의 상태를 업데이트하는 것일 수 있다. 예컨대, 복원 전 PMT 및 복원 전 PST는 각각 비휘발성 메모리(110)로부터 적재된 백업 메타 데이터의 백업 PMT 및 백업 PST일 수 있다.
앞서 도 1 내지 도 19를 참조하여 설명된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
100: 전자 장치
110: 비휘발성 메모리
120: 제어부
130: 휘발성 메모리

Claims (12)

  1. 비휘발성 메모리 및 휘발성 메모리를 포함하는 전자 장치의 메타 데이터 관리 방법에 있어서,
    상기 비휘발성 메모리의 하나 이상의 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인(allocation chain)을 사용하여 상기 블록들을 연결하는 단계;
    상기 블록들 중 완전히 데이터가 기입되어 상기 블록들과 관련된 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록의 상기 할당 체인에 의한 연결을 해제하는 단계;
    상기 전자장치의 비정상적인 종료를 감지하는 단계;
    상기 비정상적인 종료를 감지한 경우 상기 할당 체인에 의해 연결된 상기 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출하는 단계; 및
    상기 독출된 페이지들의 각 페이지에 기입된 복원 정보에 기반하여 상기 메타 데이터를 상기 휘발성 메모리에 복원하는 단계를 포함하고,
    상기 할당 체인에 의해 연결된 상기 블록들은 데이터가 할당되는 블록에 해당하는, 메타 데이터 관리 방법.
  2. 제1항에 있어서,
    상기 블록들을 연결하는 단계는 상기 블록들의 각 블록에 기입된 상기 각 블록의 다음에 할당될 블록을 나타내는 다음 블록 포인트(Next Block Point; NBP)의 값에 기반하여 상기 블록들을 연결하고,
    상기 NBP는 상기 각 블록의 최초로 데이터가 기입되는 페이지에 기입되는, 메타 데이터 관리 방법.
  3. 제2항에 있어서,
    상기 블록들 중 제1 블록의 제1 페이지에 기입된 NBP가 나타내는 제2 블록에 대한 데이터의 기입은 상기 제1 페이지에 대한 데이터의 기입이 완료된 후 수행되는, 메타 데이터 관리 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 연결을 해제하는 단계는
    상기 휘발성 메모리 상의 상기 할당 체인에 의해 연결된 상기 블록들과 관련된 정보를 포함하는 할당 블록 리스트(allocation block list)에 기반하여 상기 블록들 중 완전히 데이터가 기입된 블록을 식별하는 단계; 및
    상기 블록들 중 상기 할당 체인이 시작되는 블록을 나타내는 상기 할당 블록 리스트의 할당 체인 포인터(Allocation Chain Pointer; ACP)의 값을 변경하는 단계
    를 포함하는, 메타 데이터 관리 방법.
  6. 제1항에 있어서,
    상기 전자 장치의 비정상적인 종료 전에 상기 휘발성 메모리 상의 상기 블록들과 관련된 백업 메타 데이터를 상기 비휘발성 메모리의 선택된 블록에 기입하는 단계
    를 더 포함하는, 메타 데이터 관리 방법.
  7. 제6항에 있어서,
    상기 백업 메타 데이터는 상기 비정상적인 종료 전의 상기 할당 체인이 시작되는 블록을 나타내는 백업 ACP, 상기 비정상적인 종료 전의 상기 페이지들에 대한 페이지 백업 페이지 매핑 테이블(Page Mapping Table; PMT), 상기 비정상적인 종료 전의 백업 페이지 상태 테이블(Page State Table; PST) 및 제1 동작 카운트(Operation Count; OC) 중 적어도 하나를 포함하고,
    상기 제1 OC는 상기 복원 정보 및 상기 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함하고,
    상기 메타 데이터를 복원하는 단계는 상기 백업 ACP, 상기 백업 PMT의 하나 이상의 값들, 상기 백업 PST의 하나 이상의 값들, 상기 제1 OC 및 상기 복원 정보 중 적어도 하나를 사용하여 상기 전자 장치의 재시작 후 상기 페이지들에 대한 PMT 및 PST 중 적어도 하나를 복원하는, 메타 데이터 관리 방법.
  8. 제7항에 있어서,
    상기 각 페이지의 상기 복원 정보는
    상기 각 페이지의 논리 페이지 번호 (Logical Page Number; LPN) 및 제2 OC를 포함하고,
    상기 LPN은 상기 각 페이지의 물리 페이지가 가리키는 논리 페이지의 번호이고,
    상기 제2 OC는 상기 복원 정보 및 상기 메타 데이터 중 적어도 하나와 관련된 연산의 수행의 순서와 관련된 정보를 포함하고,
    상기 메타 데이터를 복원하는 단계는
    상기 제1 OC 및 상기 제2 OC 간의 비교에 기반하여, 상기 백업 ACP, 상기 백업 PMT의 하나 이상의 값들, 상기 백업 PST의 하나 이상의 값들, 상기 물리 페이지의 번호(Physical Page Number; PPN), 상기 LPN 중 적어도 하나를 사용하여 복원 정보 리스트를 생성하는 단계; 및
    상기 생성된 복원 정보 리스트에 기반하여 상기 페이지들에 대한 상기 PMT 및 상기 PST 중 적어도 하나를 복원하는 단계
    를 포함하는, 메타 데이터 관리 방법.
  9. 제8항에 있어서,
    상기 메타 데이터를 복원하는 단계는
    상기 백업 ACP에 기반하여 상기 할당 체인에 의해 연결된 블록들을 식별하고 상기 블록들과 관련된 정보를 포함하는 할당 블록 리스트를 복원하는 단계
    를 포함하는, 메타 데이터 관리 방법.
  10. 제6항에 있어서,
    상기 백업 메타 데이터의 상기 비휘발성 메모리의 선택된 블록에 대한 기입은 소정의 시간 간격으로 수행되는, 메타 데이터 관리 방법.
  11. 제1항 내지 제3항 및 제5항 내지 제10항 중 어느 한 항의 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
  12. 전자 장치에 있어서,
    하나 이상의 블록들을 포함하는 비휘발성 메모리;
    상기 블록들과 관련된 메타 데이터를 저장하는 휘발성 메모리; 및
    상기 블록들의 각각에 데이터가 할당되는 순서에 기반한 할당 체인(allocation chain)을 사용하여 상기 블록들을 연결하고, 상기 블록들 중 완전히 데이터가 기입되어 상기 블록들과 관련된 메타 데이터의 복원을 위해 요구되는 복원 정보가 결여된 블록의 상기 할당 체인에 의한 연결을 해제하고, 상기 전자장치의 비정상적인 종료를 감지하고, 상기 비정상적인 종료를 감지한 경우 상기 할당 체인에 의해 연결된 상기 블록들 내의 데이터가 기입된 하나 이상의 페이지들을 독출하고, 상기 독출된 페이지들의 각 페이지에 기입된 복원 정보에 기반하여 상기 메타 데이터를 상기 휘발성 메모리에 복원하는 제어부를 포함하고,
    상기 할당 체인에 의해 연결된 상기 블록들은 데이터가 할당되는 블록에 해당하는, 전자 장치.
KR1020140015380A 2014-02-11 2014-02-11 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치 KR101545077B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140015380A KR101545077B1 (ko) 2014-02-11 2014-02-11 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140015380A KR101545077B1 (ko) 2014-02-11 2014-02-11 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101545077B1 true KR101545077B1 (ko) 2015-08-17

Family

ID=54061234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140015380A KR101545077B1 (ko) 2014-02-11 2014-02-11 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101545077B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111916140A (zh) * 2019-05-10 2020-11-10 爱思开海力士有限公司 控制器及其操作方法以及包括控制器的存储器系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077904B1 (ko) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077904B1 (ko) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111916140A (zh) * 2019-05-10 2020-11-10 爱思开海力士有限公司 控制器及其操作方法以及包括控制器的存储器系统
CN111916140B (zh) * 2019-05-10 2023-08-15 爱思开海力士有限公司 控制器及其操作方法以及包括控制器的存储器系统

Similar Documents

Publication Publication Date Title
US9645894B2 (en) Data storage device and flash memory control method
US9558839B2 (en) Power fail saving modes in solid state drive with MLC memory
US7941692B2 (en) NAND power fail recovery
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
KR101494051B1 (ko) 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터
TWI501253B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US8812910B2 (en) Pilot process method for system boot and associated apparatus
JP3682256B2 (ja) ディスクアレイ装置及び同装置におけるパリティ処理方法
US20140351526A1 (en) Data storage controller with multiple pipelines
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
US9983833B2 (en) Solid state drive with holding file for atomic updates
TW201329700A (zh) 處理用於具有非揮發性記憶體之一系統之不正常關機
JP2012128643A (ja) メモリシステム
JP2012198878A (ja) 半導体不揮発性メモリ装置のリフレッシュ操作開始方法およびシステム
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
US11204912B2 (en) Commit coalescing for micro-journal based transaction logging
US9811275B2 (en) Memory system and data control method
JP2014137711A (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
US9519545B2 (en) Storage drive remediation in a raid system
US20140372710A1 (en) System and method for recovering from an unexpected shutdown in a write-back caching environment
US10528436B2 (en) Micro-journal based transaction logging
KR101545077B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
KR101543861B1 (ko) 테이블을 관리하는 저장 장치 및 그 관리 방법
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
WO2010145967A1 (en) Memory device for managing the recovery of a non volatile memory

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 5