KR20060089486A - 플래시 파일 시스템의 오류 복구 방법 - Google Patents

플래시 파일 시스템의 오류 복구 방법 Download PDF

Info

Publication number
KR20060089486A
KR20060089486A KR1020050010744A KR20050010744A KR20060089486A KR 20060089486 A KR20060089486 A KR 20060089486A KR 1020050010744 A KR1020050010744 A KR 1020050010744A KR 20050010744 A KR20050010744 A KR 20050010744A KR 20060089486 A KR20060089486 A KR 20060089486A
Authority
KR
South Korea
Prior art keywords
state
target
data block
valid
original
Prior art date
Application number
KR1020050010744A
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 KR1020050010744A priority Critical patent/KR20060089486A/ko
Publication of KR20060089486A publication Critical patent/KR20060089486A/ko

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process

Landscapes

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

Abstract

본 발명은 플래시 파일 시스템의 오류 복구 방법에 관한 것으로서, 플래시 메모리에 대한 지우기 또는 데이터 기록을 실행할 때는 그 과정을 세분화하여 나타낼 수 있도록 세부 과정마다 상태 정보를 서로 다르게 설정하면서 실행하도록 한다. 그리고, 예기치 못한 전원 차단 등의 상황이 발생하여 지우기 과정이나 데이터 기록 과정이 정상적으로 종료되지 못한 경우에는 그 과정이 중단된 상태를 정확히 파악하여 오류를 복구한다. 이에 따라 플래시 메모리에 저장되어 있는 데이터의 안정성을 보장할 수 있으며, 정확하고 효율적인 오류 복구가 가능해 진다.
플래시 메모리, 파일 시스템, 전원 차단, 지우기, 기록, 오류 복구

Description

플래시 파일 시스템의 오류 복구 방법{ Method of data recorvery for flash file systems }
도 1은 플래시 파일 시스템의 전체적인 구조,
도 2는 플래시 메모리의 데이터 구조,
도 3은 본 발명에 따라 지우기 과정의 오류를 복구하는 일 실시예,
도 4는 본 발명에 따라 지우기 과정의 오류를 복구하는 개념도,
도 5는 지우기 과정의 세부 과정에 관한 일 실시예,
도 6은 지우기 과정과 관련한 오류 복구 과정의 일 실시예,
도 7은 본 발명에 따라 데이터 기록 과정의 오류를 복구하는 일 실시예,
도 8은 데이터 기록 과정의 세부 과정에 관한 일 실시예,
도 9는 데이터 기록 과정과 관련한 오류 복구 과정의 일 실시예,
도 10은 NAND형 플래시 메모리의 데이터 구조,
도 11은 지우기 과정의 세부 과정에 관한 또 다른 실시예,
도 12는 지우기 과정과 관련한 오류 복구 과정의 또 다른 실시예,
도 13은 데이터 기록 과정의 세부 과정에 관한 또 다른 실시예,
도 14는 데이터 기록 과정과 관련한 오류 복구 과정의 또 다른 실시예이다.
본 발명은 플래시 파일 시스템의 오류 복구 방법에 관한 것으로서, 특히 플래시 메모리를 사용하는 각종 장치에 사용되어 비정상적으로 장치의 전원이 차단되는 등 예기치 않은 상황으로 인해 플래시 메모리의 데이터 관리가 정상적으로 이루어지지 않고 종료될 때 발생하는 오류를 정확히 복구할 수 있도록 해주는 방법에 관한 것이다.
최근 플래시 메모리가 점차 폭넓게 사용되고 있는데, 플래시 메모리는 기존의 회전식 자기 매체를 이용한 디스크에 비해 외부 충격에 강하고 비휘발성의 성질을 가지며, 빠른 속도로 접근할 수 있는 장점에 있다. 또한, 저전력 구동이 가능하고 크기가 작기 때문에 가전제품, 통신기기, 휴대기기, 가정용 셋탑 박스 등 각종 분야에 적용되고 있다.
그러나, 플래시 메모리는 다음과 같은 문제점을 가지고 있다.
첫째, 플래시 메모리는 일반 저장매체와는 달리 한번 데이터를 기록한 영역에 바로 다시 쓸 수 없다. 즉, 새로운 데이터를 기록하기 전에 플래시 메모리를 지워야 하며, 지우기 작업 역시 다른 저장매체와는 달리 일정 크기의 지우기 단위(Erase Unit: 이하 EU라 한다)로 지워야 하는 제한이 있다. 이러한 EU는 세그먼트(segment)라고도 불리는데, 그 용어와 관계없이 플래시 메모리를 관리하기 위하여 사용되는 지우기 단위를 포괄적으로 의미하는 것으로 사용하기로 한다.
둘째, 플래시 메모리는 지울 수 있는 횟수가 제한되어 있다. 즉, 일정 EU를 계속해서 사용하게 되면 한계 수명에 도달하게 되고 더 이상 사용할 수 없게 된다. 이는 플래시 메모리의 크기가 줄어드는 결과를 가져오고 새로운 데이터를 기록하기 위하여 지우기 과정이 더욱 빈번히 발생하게 되어 시스템의 이용에 치명적인 악영향을 준다.
이에 따라 이러한 플래시 메모리의 제한 요소를 극복하기 위하여 여러 기법들이 소개되고 있다.
한편, 플래시 메모리를 사용할 때 발생할 수 있는 또 하나의 주요 문제점은 플래시 메모리의 EU를 지우거나 데이터를 기록하는 도중 비정상적으로 전원이 차단되는 등의 예기치 못한 상황으로 인해 해당 과정이 정상적으로 이루어지지 못한 상태에서 종료될 때 나타난다. 특히, 플래시 메모리에서는 데이터의 갱신뿐만 아니라 지우기 과정도 데이터의 기록 과정을 필요로 하므로 이러한 상황은 장치의 안정성에 매우 중요한 영향을 미치게 된다.
예로서, 플래시 메모리에 데이터를 기록하거나 지우는 과정을 실행하는 도중에 갑작스러운 전원 차단이 발생하면 매핑 테이블에 이상이 발생할 수 있으며, 기존의 데이터가 파일 시스템에 관련된 메타 데이터라면 플래시 파일 시스템은 회복 불능 상태가 될 수도 있다. 즉, 플래시 메모리에 데이터를 기록하거나 지우기 과정을 실행하는 도중에 전원이 차단되거나 기타 다른 이유로 오류가 발생하면, 같은 주소의 데이터가 두 개 이상의 블록에 존재하게 되는 일관성 문제와 기존의 데이터가 소실되는 문제가 발생하게 된다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 플래시 메모리를 사용하는 장치의 전원이 갑자기 차단되는 등 예기치 않은 상황이 발생하여 플래시 메모리의 데이터 처리가 정상적으로 종료되지 못한 경우에도 그로 인하여 발생할 수 있는 오류를 정확하고 효율적으로 복구할 수 있는 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 플래시 파일 시스템의 오류 복구 방법은, 플래시 메모리에 대한 지우기를 실행할 때는 지우기 과정을 세부적으로 구분할 수 있도록 지우기 대상 EU(원본 EU)와 새로 할당받은 EU(타겟 EU)의 상태를 세부 과정마다 서로 다르게 설정하면서 지우기를 실행하는 단계; 상기 플래시 메모리를 사용하는 장치가 새로이 동작을 시작하면 상기 원본 EU와 타겟 EU의 상태를 확인하는 단계; 상기 확인된 원본 EU와 타겟 EU의 상태에 따라 상기 지우기 과정이 정상적으로 종료되었는지를 판단하는 단계; 및 상기 판단 결과 상기 지우기 과정이 정상적으로 종료되지 않은 경우에는 상기 원본 EU와 타겟 EU의 상태에 따라 상기 지우기 과정에서 발생한 오류를 복구하는 단계를 포함하여 이루어질 수 있다.
상기 플래시 메모리의 각 EU에 설정될 수 있는 상태는 해당 EU에 지우기가 정상적으로 실행되어 데이터를 기록할 수 있음을 나타내는 'Free', 해당 EU에 유효한 데이터가 기록되어 있음을 나타내는 'Valid', 해당 EU에 유효한 데이터가 존재하지 않고 데이터를 기록할 수 없음을 나타내는 'Invalid' 상태를 포함할 수 있다.
상기 지우기 과정은, 상기 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받은 후 상기 타겟 EU를 'Allocated' 상태로 설정하는 단계, 상기 원본 EU의 유효 데이터를 상기 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 상기 타겟 EU를 'Pre-valid' 상태로 설정하는 단계, 상기 원본 EU를 'Invalid' 상태로 설정하는 단계, 상기 타겟 EU를 'Valid' 상태로 설정하는 단계, 및 상기 원본 EU를 'Erasing' 상태로 설정하고 지우기를 실행하는 단계 등의 세부 단계로 구분될 수 있다.
이러한 실시예에서 오류 복구 과정은 다음과 같이 이루어질 수 있다.
1) 상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Allocated'인 경우에는 상기 타겟 EU를 'Invalid' 상태로 설정하고 상기 원본 EU를 지운다.
2) 상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Pre-valid'인 경우에는 상기 원본 EU를 'Invalid' 상태로 설정하고 지우며 상기 타겟 EU를 'Valid' 상태로 설정한다.
3) 상기 원본 EU의 상태가 'Invalid'이고 상기 타겟 EU의 상태가 'Pre-valid'인 경우에는 상기 원본 EU를 지우고 타겟 EU를 'Valid' 상태로 설정한다.
4) 상기 원본 EU의 상태가 'Invalid'이고 상기 타겟 EU의 상태가 'Valid'인 경우, 또는 상기 원본 EU의 상태가 'Erasing'이고 상기 타겟 EU의 상태가 'Valid'인 경우에는 상기 원본 EU에 대하여 지우기를 실행한다.
한편, 데이터 기록과 관련하여 오류 복구를 수행하는 본 발명의 또 다른 실시예는, 플래시 메모리에 데이터를 기록할 때는 데이터 기록 과정을 세부적으로 구 분할 수 있도록 원래 데이터를 가지고 있던 데이터 블록(원본 데이터 블록)과 새로 할당받은 데이터 블록(타겟 데이터 블록)의 상태를 세부 과정마다 서로 다르게 설정하면서 데이터 기록을 실행하는 단계; 상기 플래시 메모리를 사용하는 장치가 새로이 동작을 시작하면 상기 원본 데이터 블록과 타겟 데이터 블록의 상태를 확인하는 단계; 및 상기 확인된 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 상기 데이터 기록 과정이 정상적으로 종료되었는지를 판단하는 단계; 및 상기 데이터 기록 과정이 정상적으로 종료되지 않은 경우에는 상기 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 상기 데이터 기록 과정에서 발생한 오류를 복구하는 단계를 포함하여 이루어질 수 있다.
상기 각 데이터 블록에 설정될 수 있는 상태는 해당 데이터 블록에 데이터를 기록할 수 있음을 나타내는 'Free' 상태, 해당 데이터 블록에 유효한 데이터가 기록되어 있음을 나타내는 'Valid' 상태, 및 해당 데이터 블록에 유효한 데이터가 존재하지 않고 데이터를 기록할 수도 없음을 나타내는 'Invalid' 상태를 포함할 수 있다.
상기 데이터 기록 과정은 데이터를 저장할 타겟 데이터 블록을 할당받은 후 상기 타겟 데이터 블록을 'Allocated' 상태로 설정하는 단계, 상기 타겟 데이터 블록에 데이터를 저장하고 상기 타겟 데이터 블록을 'Pre-valid' 상태로 설정하는 단계, 상기 원본 데이터 블록을 'Invalid' 상태로 설정하는 단계, 및 상기 타겟 데이터 블록을 'Valid' 상태로 설정하는 단계 등의 세부 단계로 구분될 수 있다.
이러한 실시예에서 오류 복구 과정은 다음과 같이 이루어질 수 있다.
1) 상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태가 'Allocated'인 경우에는 상기 타겟 데이터 블록을 'Invalid' 상태로 설정한다.
2) 상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태가 'Pre-valid'인 경우에는 상기 원본 데이터 블록을 'Invalid' 상태로 설정하고 상기 타겟 데이터 블록을 'Valid' 상태로 설정한다.
3) 상기 원본 데이터 블록의 상태가 'Invalid'이고 상기 타겟 데이터 블록의 상태가 'Pre-valid'인 경우에는 상기 타겟 데이터 블록을 'Valid' 상태로 설정한다.
한편, 상기 플래시 메모리는 한 페이지에 삭제 작업 이전까지 기록 작업을 할 수 있는 최대 NOP(Number of Operation)가 정해져 있는 것일 수도 있는데, 그 하나의 예는 NAND형 플래시 메모리이다.
NOP 제한을 갖는 플래시 메모리를 사용하는 실시예에서 본 발명에 따른 지우기 과정은, 상기 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받은 후 상기 타겟 EU를 'Copying' 상태로 설정하는 단계, 상기 원본 EU의 유효 데이터를 상기 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 상기 타겟 EU를 'Valid' 상태로 설정하는 단계, 상기 원본 EU를 'Erasing' 상태로 설정하고 지우기를 실행하는 단계 등의 세부 단계로 구분될 수 있다.
이러한 실시예에서 오류 복구 과정은 다음과 같이 이루어질 수 있다.
1) 상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Copying'인 경우에는 상기 타겟 EU를 'Invalid' 상태로 설정한다.
2) 상기 원본 EU와 타겟 EU의 상태가 모두 'Valid'인 경우에는 상기 원본 EU를 'Invalid' 상태로 설정한다.
3) 상기 원본 EU의 상태가 'Erasing'이면, 상기 원본 EU를 'Invalid' 상태로 설정한다.
또한, NOP 제한을 갖는 플래시 메모리를 사용하는 실시예에서 본 발명에 따른 데이터 기록 과정은, 데이터를 저장할 타겟 데이터 블록을 할당받은 후 상기 타겟 데이터 블록을 'Writing' 상태로 설정하는 단계, 상기 타겟 데이터 블록에 데이터를 저장하고 상기 타겟 데이터 블록을 'Valid' 상태로 설정하는 단계, 및 상기 원본 데이터 블록을 'Invalid' 상태로 설정하는 단계 등의 세부 단계로 구분될 수 있다.
이러한 실시예에서 오류 복구 과정은 다음과 같이 이루어질 수 있다.
1) 상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태가 'Writing'인 경우에는 상기 타겟 데이터 블록을 'Invalid' 상태로 설정한다.
2) 상기 원본 데이터 블록과 타겟 데이터 블록의 상태가 모두 'Valid'인 경우에는 상기 원본 데이터 블록을 'Invalid' 상태로 설정한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1을 참조하여 플래시 파일 시스템의 전체적인 구조를 간략히 설명하자면, 블록 디바이스 API 계층(12-1)은 하드 디스크 드라이브(HDD)와 같은 블록 단위의 API(Application Programming Interface)를 제공하며, 블록 디바이스 에뮬레이션 및 플래시 관리 계층(12-2)은 플래시 메모리(13)를 저장 매체로 이용할 때 필요한 가비지 회수와 마모 평준화 기능을 수행하며, 블록 단위의 서비스를 위해 블록 디바이스 형태를 에뮬레이트한다.
또한, 메모리 기술 계층(12-3)은 상위 플래시 관리 계층(12-2)에게 실제 플래시 메모리(13)를 액세스할 수 있는 수단을 제공하여, 플래시 메모리(13)에 대한 읽기, 쓰기, 지우기 연산을 할 수 있도록 한다. 이 때, 플래시 메모리(12-3)는 NOR형 플래시 메모리, NAND형 플래시 메모리, 메모리 카드 형태의 플래시 메모리 등 각종 형태로 구성될 수 있다. 이러한 블록 디바이스 API(12-1), 블록 디바이스 에물레이션 및 플래시 관리 계층(12-2) 및 메모리 기술 계층(12-3)을 플래시 변환 계층(12)이라고 하며, 파일 시스템(11)과 연동한다.
도 2를 참조하여 플래시 메모리의 데이터 구조에 관하여 설명하자면, EU의 첫번째 데이터 블록에는 각 EU의 정보를 기록하는 EU 헤더와 데이터 블록의 정보를 기록하는 블록 헤더가 위치한다. 두 번째 데이터 블록부터 실제 데이터가 저장되며, EU 헤더와 블록 헤더는 16 바이트의 크기를 갖는다.
EU 헤더는 EU가 지워진 횟수가 기록되는 지우기 횟수 필드, EU가 데이터 저장을 위해 할당될 때의 시간이 기록되는 시간 정보 필드, 현재 EU의 상태가 기록되는 EU 상태 필드, 및 해당 EU의 식별정보(ID)가 기록되는 EU ID 필드로 이루어질 수 있다.
또한, 블록 헤더는 데이터 블록의 상태가 기록되는 상태 필드, 해당 블록이 속한 파일의 ID가 기록되는 파일 ID 필드, 파일에서 해당 블록이 몇 번째 블록에 해당되는지의 정보가 기록되는 블록 ID 필드, 해당 블록에 저장된 데이터의 길이가 기록되는 데이터 길이 필드, 해당 블록에 데이터가 기록된 시간이 기록되는 시간 정보 필드, 및 해당 블록의 갱신 횟수가 기록되는 갱신 횟수 필드로 이루어질 수 있다.
이 때, 각 EU의 상태와 데이터 블록의 상태는 데이터를 기록할 수 있음을 나타내는 'Free' 상태, 유효한 데이터가 기록되어 있음을 나타내는 'Valid' 상태, 유효한 데이터가 존재하지 않고 데이터를 기록할 수도 없음을 나타내는 'Invalid' 상태 등을 포함할 수 있다.
한편, 플래시 메모리에 대한 지우기는 EU 단위로 이루어지며, EU의 크기는 플래시 메모리 마다 서로 다를 수 있다. 지우기 과정에서는 먼저 데이터를 기록할 수 있는 새로운 EU(타겟 EU)를 할당받고, 지우기의 대상인 EU(원본 EU)에 기록되어 있는 유효한 데이터를 타겟 EU로 옮기고 난 후 원본 EU를 지우게 된다.
도 3을 참조하여, 본 발명에 따라 지우기 과정을 실행할 때 발생하는 오류를 복구하기 위한 실시예를 설명하기로 한다.
먼저, 플래시 메모리에 대한 지우기를 실행할 때는 지우기 과정을 세부적으로 구분하고, 각 세부 과정이 진행될 때마다 현재 이루어지는 세부 과정을 고유하게 표시할 수 있도록 원본 EU와 타겟 EU의 상태를 설정하면서 지우기를 실행한다(S31). 이와 같이 함으로써 지우기 과정의 실행 도중 갑작스러운 전원의 차단으로 지우기 과정이 비정상적으로 종료한 경우에 지우기 과정이 어느 세부 과정을 진행할 때 중단되었는지를 확인할 수 있게 된다.
이제 플래시 메모리를 사용하는 장치의 전원이 오프되었다가 새로 동작을 시작하면 원본 EU와 타겟 EU의 상태를 확인하고(S32), 확인된 원본 EU와 타겟 EU의 상태에 따라 지우기 과정이 정상적으로 종료되었는지의 여부를 판단한다(S33).
그리고, 단계 S33에서의 판단 결과 지우기 과정이 비정상적으로 종료된 것으로 판단되면(S34), 원본 EU와 타겟 EU의 상태에 따라 지우기 과정에서 발생한 오류를 복구한다(S35).
즉, 도 4에 도시한 바와 같이 단계 S31에서 이루어지는 지우기 과정은 각 지우기 세부 과정 #1 내지 #r이 진행될 때마다 해당 과정을 고유하게 판별할 수 있도록 처리하면서 실행되므로, 지우기 과정이 실행되는 도중 갑자기 그 절차가 종료된 경우에는 어느 세부 과정을 진행하는 도중에 중단되었는지를 확인할 수 있다.
그러므로, 각 세부 과정에 대응하는 적절한 오류 복구 과정 #1 내지 #r을 진행하여 오류를 정확히 복구할 수 있게 된다. 예로서, 지우기 세부 과정 #1을 진행하는 도중 갑자기 전원이 차단되었다면 해당 장치가 새로이 시작되었을 때는 오류 복구 과정 #1을 실행하여 오류를 복구하고, 지우기 세부 과정 #r을 진행하는 도중 갑자기 전원이 차단되었다면 해당 장치가 새로이 시작되었을 때는 오류 복구 과정 #r을 실행하여 오류를 복구한다.
도 5를 참조하여 본 발명에 따라 지우기 과정을 세분화하는 일 실시예를 설명하자면, 지우기 과정을 실행하는 시점에서의 원본 EU는 'Valid' 상태이고, 타겟 EU는 'Free' 상태이다.
지우기 과정이 실행되면, 먼저 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받고 타겟 EU를 'Allocated' 상태로 설정한다(S51-1). 그리고, 원본 EU의 유효 데이터를 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 타겟 EU를 'Pre-valid' 상태로 설정한다(S51-2). 단계 S51-2 이후에는 원본 EU를 'Invalid' 상태로 설정하고(S51-3), 타겟 EU를 'Valid' 상태로 설정한다(S51-4). 이제 원본 EU를 'Erasing' 상태로 설정한 후 지우기를 실행하고(S51-5), 마지막으로 원본 EU의 지우기가 정상적으로 종료되면 원본 EU를 'Free' 상태로 설정한다(S51-6).
이와 같이 각 세부 과정에서는 원본 EU와 타겟 EU의 상태가 타 세부 과정에서의 상태와 서로 다르게 설정되는 것을 볼 수 있다. 이 때, 세부 과정을 결정하거나 각 세부 과정마다 원본 EU와 타겟 EU의 상태를 어떻게 설정할 것인지는 필요에 따라 다양하게 구성할 수 있음은 물론이다.
도 5에 도시한 실시예에서 지우기 과정이 정상적으로 종료된 경우에는 원본 EU는 'Free' 상태로 설정되어 있을 것이고, 타겟 EU는 'Valid' 상태로 설정되어 있을 것이므로, 원본 EU와 타겟 EU가 이러한 상태로 설정되어 있으면 지우기 과정이 정상적으로 종료된 것으로 판단할 수 있다.
그러나, 원본 EU와 타겟 EU 중 어느 EU의 상태가 'Allocated', 'Pre-valid', 'Invalid', 'Erasing' 중 어느 하나인 경우에는 지우기 과정이 정상적으로 종료되지 않은 것으로 판단할 수 있다.
도 6을 참조하여, 도 5에 도시한 세부 과정에 따라 이루어지는 지우기 과정이 비정상적으로 종료된 경우에 오류를 복구하는 실시예를 설명하기로 한다.
원본 EU의 상태가 'Valid'이고 타겟 EU의 상태가 'Allocated'인 경우에는 아직 원본 EU로부터 타겟 EU로의 데이터 이동이 이루어지지 않은 상태에서 중단된 것으로 판단할 수 있으므로, 타겟 EU를 'Invalid' 상태로 설정한 후 원본 EU를 지움으로써 오류를 복구할 수 있다(S61-1,S61-2)
그러나, 원본 EU의 상태가 'Valid'이고 타겟 EU의 상태가 'Pre-valid'인 경우에는 원본 EU로부터 타겟 EU로의 데이터 이동은 완료된 상태에서 중단된 것으로 판단할 수 있으므로(S61-3), 원본 EU를 'Invalid' 상태로 설정한 후 지우고(S61-4), 타겟 EU는 'Valid' 상태로 설정함으로써 오류를 복구할 수 있다(S61-5).
그러나, 원본 EU의 상태가 'Invalid'이고 타겟 EU의 상태가 'Pre-valid'인 경우에는(S61-6), 바로 원본 EU를 지우고(S61-7), 타겟 EU를 'Valid' 상태로 설정함으로써 오류를 복구할 수 있다(S61-8).
만일, 원본 EU의 상태가 'Invalid'이고 타겟 EU의 상태가 'Valid'인 경우(S61-9), 또는 원본 EU의 상태가 'Erasing'이고 타겟 EU의 상태가 'Valid'인 경우(S61-10)이면, 타겟 EU는 이미 'Valid' 상태로 되어 있으므로 원본 EU에 대하여 지우기를 실행함으로써 오류를 복구할 수 있다(S61-11).
한편, 플래시 메모리의 데이터를 갱신할 때와 같이 데이터를 기록하는 과정은 EU 내의 데이터 블록 사이에서 이루어질 수 있다. 이 때, 플래시 메모리의 특성상 현재 데이터가 기록되어 있는 부분에 바로 다시 데이터를 기록할 수는 없으므로 갱신이 이루어질 때도 타 데이터 블록에 갱신 데이터를 기록해야 하며, 데이터 기록 작업은 항상 비어 있는 데이터 블록에 대해서만 이루어질 수 있다.
데이터 기록 과정은 먼저 데이터를 기록할 수 있는 새로운 데이터 블록을 할당받고 해당 데이터를 새로 할당된 데이터 블록(타겟 데이터 블록)에 기록한 후, 원본 데이터 블록은 'Invalid' 상태로 설정하고 타겟 데이터 블록은 'Valid' 상태로 설정하게 된다.
도 7을 참조하여, 본 발명에 따라 데이터를 기록할 때 발생하는 오류를 복구하는 실시예를 설명하기로 한다.
먼저, 플래시 메모리에 데이터를 기록할 때는 데이터 기록 과정을 세부적으로 구분하고, 각 세부 과정이 진행될 때마다 현재 이루어지는 세부 과정을 고유하게 표시할 수 있도록 원본 데이터 블록과 타겟 데이터 블록의 상태를 설정하면서 데이터를 기록한다(S71). 이와 같이 함으로써 데이터 기록 과정이 실행되는 도중 갑작스러운 전원의 차단으로 데이터 기록 과정이 비정상적으로 종료한 경우 데이터 기록 과정이 어느 세부 과정을 진행할 때 중단되었는지를 확인할 수 있게 된다.
이제 플래시 메모리를 사용하는 장치의 전원이 오프되었다가 새로 동작을 시작하면 원본 데이터 블록과 타겟 데이터 블록의 상태를 확인하고(S72), 확인된 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 데이터 기록 과정이 정상적으로 종료되었는지의 여부를 판단한다(S73).
그리고, 단계 S73에서의 판단 결과 데이터 기록 과정이 비정상적으로 종료된 것으로 판단되면(S74), 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 데이터 기록 과정에서 발생한 오류를 복구한다(S75).
즉, 단계 S71에서 이루어지는 데이터 기록 과정은 각각의 세부 과정을 타 세부 과정과 구별할 수 있도록 설정하면서 실행되므로, 데이터 기록 과정이 실행되는 도중 갑자기 그 절차가 중단된 경우에는 어느 세부 과정을 진행하는 도중에 중단되었는지를 확인할 수 있다. 그러므로, 각 세부 과정에 대응하는 적절한 오류 복구 과정을 진행하여 오류를 정확히 복구할 수 있게 된다.
도 8을 참조하여 본 발명에 따라 데이터 기록 과정을 세분화하는 일 실시예를 설명하자면, 데이터 기록 과정을 실행하는 시작 시점에서의 원본 데이터 블록은 'Valid' 상태이고, 타겟 데이터 블록은 'Free' 상태이다.
데이터 기록 과정이 시작되면, 먼저 데이터를 저장할 타겟 데이터 블록을 할당받은 후 타겟 데이터 블록을 'Allocated' 상태로 설정한다(S81-1). 그리고, 타겟 데이터 블록에 데이터를 저장하고 타겟 데이터 블록을 'Pre-valid' 상태로 설정한다(S81-2). 이제 원본 데이터 블록을 'Invalid' 상태로 설정하고(S81-3), 타겟 데이터 블록을 'Valid' 상태로 설정한다(S81-4). 즉, 데이터 기록 과정이 정상적으로 종료되면 원본 데이터 블록은 'Invalid' 상태로 설정되고, 타겟 데이터 블록은 'Valid' 상태로 설정된다.
이와 같이 각 세부 과정에서는 원본 데이터 블록과 타겟 데이터 블록의 상태가 타 세부 과정에서와 서로 다르게 설정된다. 이 때, 세부 과정을 결정하거나 각 세부 과정마다 각 데이터 블록의 상태를 어떻게 설정할 것인지는 필요에 따라 다양하게 구성할 수 있음은 물론이다.
도 8에 도시한 실시예에서 데이터 기록 과정이 정상적으로 종료된 경우에는 원본 데이터 블록은 'Invalid' 상태로 설정되어 있을 것이고, 타겟 데이터 블록은 'Valid' 상태로 설정되어 있을 것이므로, 원본 데이터 블록과 타겟 데이터 블록이 이러한 상태로 설정되어 있으면 데이터 기록 과정이 정상적으로 종료된 것으로 판단할 수 있다.
그러나, 원본 데이터 블록 또는 타겟 데이터 블록의 상태가 'Allocated'와 'Pre-valid' 중 어느 하나인 경우에는 데이터 기록 과정이 정상적으로 종료되지 않은 것으로 판단할 수 있다.
도 9를 참조하여 도 8에 도시한 세부 과정에 따라 이루어지는 데이터 기록 과정이 비정상적으로 종료된 경우에 오류를 복구하는 실시예를 설명하기로 한다.
원본 데이터 블록의 상태가 'Valid'이고 타겟 데이터 블록의 상태가 'Allocated'인 경우에는 기록할 데이터가 타겟 데이터 블록에 완전히 저장되지 않은 상태에서 중단된 것으로 판단할 수 있으므로, 타겟 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S91-1,S91-2).
그러나, 원본 데이터 블록의 상태가 'Valid'이고 타겟 데이터 블록의 상태가 'Pre-valid'인 경우에는 기록할 데이터가 일단 타겟 데이터 블록에 완전히 저장된 상태에서 중단된 것으로 판단할 수 있으므로(S91-3), 원본 데이터 블록을 'Invalid' 상태로 설정하고(S91-4), 타겟 데이터 블록을 'Valid' 상태로 설정함으로써 오류를 복구할 수 있다(S91-5).
그러나, 원본 데이터 블록의 상태가 'Invalid'이고 타겟 데이터 블록의 상태가 'Pre-valid'인 경우에는 기록할 데이터가 일단 타겟 데이터 블록에 완전히 저장되고 원본 데이터 블록도 이미 'Invalid' 상태로 설정된 상태에서 중단된 것으로 판단할 수 있으므로(S91-6), 타겟 데이터 블록을 'Valid' 상태로 설정함으로써 오류를 복구할 수 있다(S91-7).
한편, NAND형 플래시 메모리와 같이 한 페이지에 대하여 삭제 작업을 하기 이전까지 데이터 기록 작업을 할 수 있는 최대횟수(NOP: Number of Operation)가 정해져 있는 플래시 메모리도 존재한다.
도 10을 참조하여 이러한 NAND형 플래시 메모리의 데이터 구조를 간략히 설명하자면, EU의 첫번째 블록에는 각 EU 정보를 기억하는 16 바이트의 EU 헤더가 위치한다. EU 헤더는 해당 EU의 지우기 횟수가 기록되는 지우기 횟수 필드, 해당 EU가 데이터 저장을 위해 할당될 때의 시간이 기록되는 시간 정보 필드, 현재 EU의 상태를 나타내는 EU 상태 필드, 및 해당 EU의 ID를 나타내는 EU ID 필드 등을 포함할 수 있다.
실제 데이터는 두 번째 데이터 블록부터 기록되며, 각 데이터 블록은 블록의 정보를 나타내는 18 바이트의 블록 헤더를 가진다.
블록 헤더는 해당 데이터 블록의 상태(Writing)가 기록되는 상태 필드, 해당 데이터 블록이 속한 파일의 ID가 기록되는 파일 ID 필드, 파일에서 해당 블록이 몇 번째 블록에 해당하는지를 나타내는 블록 ID 필드, 해당 블록의 갱신 횟수가 기록되는 갱신 횟수 필드, 해당 데이터 블록에 저장된 데이터의 길이를 나타내는 데이터 길이 필드, 해당 데이터 블록에 데이터가 기록된 시간을 나타내는 시간 정보 필드, 데이터 블록의 상태(Invalid)가 기록되는 또 다른 상태 필드 등을 포함할 수 있다.
이러한 NOP 제한을 갖는 플래시 메모리가 사용되는 경우에도 도 3에 도시한 실시예와 동일한 과정에 따라 본 발명에 따른 오류 복구 방법이 적용될 수 있다. 그러나 이 경우에는 지우기 과정을 구성하는 세부 과정에 차이가 발생할 수 있다.
도 11을 참조하여 NOP 제한을 갖는 플래시 메모리가 사용되는 경우에 본 발명에 따라 지우기 과정을 세분화하는 일 실시예를 설명하자면, 지우기 과정을 실행하는 시작 시점에서의 원본 EU는 'Valid' 상태이고, 타겟 EU는 'Free' 상태이다.
지우기 과정이 시작되면, 먼저 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받고 타겟 EU를 'Copying' 상태로 설정한다(S52-1). 그리고, 원본 EU의 유효 데이터를 상기 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 타겟 EU를 'Valid' 상태로 설정한다(S52-2). 이제 원본 EU를 'Erasing' 상태로 설정하고 지운다(S52-3), 마지막으로 원본 EU를 'Free' 상태로 설정한다(S52-4). 즉, 지우기가 정상적으로 종료되면 원본 EU는 'Free' 상태로 설정되고, 타겟 EU는 'Valid' 상태로 설정된다.
그러므로, 도 11에 도시한 실시예에서 원본 EU가 'Free' 상태로 설정되어 있고, 타겟 EU가 'Valid' 상태로 설정되어 있는 경우에는 지우기 과정이 정상적으로 종료된 것으로 판단할 수 있다.
또한, 원본 EU 또는 타겟 EU의 상태가 'Copying' 또는 'Erasing' 중 어느 하나인 경우에는 지우기 과정이 정상적으로 종료되지 않은 것으로 판단할 수 있다.
도 12를 참조하여, 도 11에 도시한 세부 과정에 따라 이루어지는 지우기 과정이 비정상적으로 종료된 경우에 오류를 복구하는 실시예를 설명하기로 한다.
원본 EU의 상태가 'Valid'이고 타겟 EU의 상태가 'Copying'인 경우에는 원본 EU의 유효 데이터가 타겟 EU로 복사되기 전에 중단된 것으로 판단할 수 있으므로, 타겟 EU를 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S62-1,62-2).
그러나, 원본 EU와 타겟 EU의 상태가 모두 'Valid'인 경우에는 일단 원본 EU의 모든 유효 데이터가 타겟 EU로 복사된 후에 중단된 것으로 판단할 수 있으므로, 원본 EU를 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S62-3,S62-4).
만일 원본 EU의 상태가 'Erasing'이면, 원본 EU에 대한 지우기가 이루어지기 전에 중단된 것으로 판단할 수 있으므로, 원본 EU를 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S62-5,S62-6).
한편, NOP 제한을 갖는 플래시 메모리가 사용되는 경우에도 도 7에 도시한 실시예와 동일한 과정에 따라 데이터 기록 과정 진행시에 발생한 오류를 복구할 수 있다. 그러나 데이터 기록 과정을 구성하는 세부 과정에 차이가 발생할 수 있다.
도 13을 참조하여 NOP 제한을 갖는 플래시 메모리가 사용되는 경우에 본 발명에 따라 데이터 기록 과정을 세분화하는 일 실시예를 설명하자면, 데이터 기록 과정을 실행하는 시작 시점에서의 원본 데이터 블록은 'Valid' 상태이고, 타겟 EU는 'Free' 상태이다.
데이터 기록 과정이 시작되면, 해당 데이터를 저장할 타겟 데이터 블록을 할당받고 타겟 데이터 블록을 'Writing' 상태로 설정한다(S82-1). 이제 타겟 데이터 블록에 데이터를 저장하고 타겟 데이터 블록을 'Valid' 상태로 설정한다(S82-2). 그리고, 원본 데이터 블록을 'Invalid' 상태로 설정한다(S82-3). 데이터 기록 과정이 정상적으로 종료되면 원본 데이터 블록은 'Invalid' 상태로 설정되고, 타겟 데이터 블록은 'Valid' 상태로 설정된다.
그러므로, 도 13에 도시한 실시예에서 원본 데이터 블록이 'Invalid' 상태로 설정되어 있고, 타겟 데이터 블록이 'Valid' 상태로 설정되어 있는 경우에는 데이터 기록 과정이 정상적으로 종료된 것으로 판단할 수 있다.
도 14를 참조하여, 도 13에 도시한 세부 과정에 따라 이루어지는 데이터 기록 과정이 비정상적으로 종료된 경우 오류를 복구하는 실시예를 설명하기로 한다.
원본 데이터 블록의 상태가 'Valid'이고 타겟 데이터 블록의 상태가 'Writing'인 경우에는 해당 데이터가 타겟 데이터 블록에 완전히 저장되지 않은 상태에서 중단된 것으로 판단할 수 있으므로, 타겟 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S92-1,S92-2).
그러나, 원본 데이터 블록과 타겟 데이터 블록의 상태가 모두 'Valid'인 경 우에는 해당 데이터가 일단 타겟 데이터 블록으로 모두 저장된 후에 중단된 것으로 판단할 수 있으므로, 원본 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구할 수 있다(S92-3,S92-4).
이상에서 설명한 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것이다.
본 발명을 플래시 메모리를 이용하는 파일 시스템에 적용하면, 전원 차단으로 인한 데이터 오류를 정확하게 복구할 수 있으므로 플래시 메모리에 저장되어 있는 데이터의 안정성을 보장할 수 있다. 또한, 전원 차단시 발생할 수 있는 오류를 세분화하여 오류가 발생한 시점을 파악할 수 있기 때문에 정확하고 효율적인 오류 복구가 가능하다. 본 발명에 따른 방법은 기존의 오류 복구 기능이 없는 플래시 파일 시스템을 최소한으로 수정하여 구현할 수도 있으므로, 기존의 파일 시스템에의 적용도 용이하다.

Claims (20)

  1. 플래시 메모리에 대한 지우기를 실행할 때는 지우기 과정을 세부적으로 구분할 수 있도록 지우기 대상 EU(원본 EU)와 새로 할당받은 EU(타겟 EU)의 상태를 세부 과정마다 서로 다르게 설정하면서 지우기를 실행하는 단계;
    상기 플래시 메모리를 사용하는 장치가 새로이 동작을 시작하면 상기 원본 EU와 타겟 EU의 상태를 확인하는 단계; 및
    상기 확인된 원본 EU와 타겟 EU의 상태에 따라 상기 지우기 과정이 정상적으로 종료되었는지를 판단하는 단계를 포함하여 이루어지는 플래시 파일 시스템의 오류 복구 방법.
  2. 제 1 항에 있어서,
    상기 판단 결과 상기 지우기 과정이 정상적으로 종료되지 않은 경우에는 상기 원본 EU와 타겟 EU의 상태에 따라 상기 지우기 과정에서 발생한 오류를 복구하는 단계를 더 포함하여 이루어지는 플래시 파일 시스템의 오류 복구 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 플래시 메모리의 각 EU에 설정될 수 있는 상태는 해당 EU에 지우기가 정상적으로 실행되어 데이터를 기록할 수 있음을 나타내는 'Free' 상태, 해당 EU에 유효한 데이터가 기록되어 있음을 나타내는 'Valid' 상태, 및 해당 EU에 유효한 데 이터가 존재하지 않고 데이터를 기록할 수도 없음을 나타내는 'Invalid' 상태를 포함하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  4. 제 3 항에 있어서, 상기 지우기 과정은
    상기 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받은 후 상기 타겟 EU를 'Allocated' 상태로 설정하는 단계, 상기 원본 EU의 유효 데이터를 상기 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 상기 타겟 EU를 'Pre-valid' 상태로 설정하는 단계, 상기 원본 EU를 'Invalid' 상태로 설정하는 단계, 상기 타겟 EU를 'Valid' 상태로 설정하는 단계, 및 상기 원본 EU를 'Erasing' 상태로 설정하고 지우기를 실행하는 단계 중 하나 이상의 세부 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  5. 제 4 항에 있어서,
    상기 원본 EU가 'Free' 상태로 설정되어 있고 상기 타겟 EU가 'Valid' 상태로 설정되어 있으면 상기 지우기 과정이 정상적으로 종료된 것으로 판단하고,
    상기 원본 EU 또는 타겟 EU의 상태가 'Allocated', 'Pre-valid', 'Invalid', 'Erasing' 중 어느 하나로 설정되어 있으면 상기 지우기 과정이 정상적으로 종료되지 않은 것으로 판단하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  6. 제 4 항에 있어서,
    상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Allocated'인 경우에는 상기 타겟 EU를 'Invalid' 상태로 설정하고 상기 원본 EU를 지움으로써 오류를 복구하는 단계;
    상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Pre-valid'인 경우에는 상기 원본 EU를 'Invalid' 상태로 설정하고 지우며 상기 타겟 EU를 'Valid' 상태로 설정함으로써 오류를 복구하는 단계;
    상기 원본 EU의 상태가 'Invalid'이고, 상기 타겟 EU의 상태가 'Pre-valid'인 경우에는 상기 원본 EU를 지우고 상기 타겟 EU를 'Valid' 상태로 설정함으로써 오류를 복구하는 단계; 및
    상기 원본 EU의 상태가 'Invalid'이고 상기 타겟 EU의 상태가 'Valid'인 경우, 또는 상기 원본 EU의 상태가 'Erasing'이고 상기 타겟 EU의 상태가 'Valid'인 경우에는 상기 원본 EU에 대하여 지우기를 실행함으로써 오류를 복구하는 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  7. 플래시 메모리에 데이터를 기록할 때는 데이터 기록 과정을 세부적으로 구분할 수 있도록 원래 데이터를 가지고 있던 데이터 블록(원본 데이터 블록)과 새로 할당받은 데이터 블록(타겟 데이터 블록)의 상태를 세부 과정마다 서로 다르게 설정하면서 데이터 기록을 실행하는 단계;
    상기 플래시 메모리를 사용하는 장치가 새로이 동작을 시작하면 상기 원본 데이터 블록과 타겟 데이터 블록의 상태를 확인하는 단계; 및
    상기 확인된 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 상기 데이터 기록 과정이 정상적으로 종료되었는지를 판단하는 단계를 포함하여 이루어지는 플래시 파일 시스템의 오류 복구 방법.
  8. 제 7 항에 있어서,
    상기 데이터 기록 과정이 정상적으로 종료되지 않은 경우에는 상기 원본 데이터 블록과 타겟 데이터 블록의 상태에 따라 상기 데이터 기록 과정에서 발생한 오류를 복구하는 단계를 더 포함하여 이루어지는 플래시 파일 시스템의 오류 복구 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 각 데이터 블록에 설정될 수 있는 상태는 해당 데이터 블록에 데이터를 기록할 수 있음을 나타내는 'Free' 상태, 해당 데이터 블록에 유효한 데이터가 기록되어 있음을 나타내는 'Valid' 상태, 및 해당 데이터 블록에 유효한 데이터가 존재하지 않고 데이터를 기록할 수도 없음을 나타내는 'Invalid' 상태를 포함하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  10. 제 9 항에 있어서, 상기 데이터 기록 과정은
    데이터를 저장할 타겟 데이터 블록을 할당받은 후 상기 타겟 데이터 블록을 'Allocated' 상태로 설정하는 단계, 상기 타겟 데이터 블록에 데이터를 저장하고 상기 타겟 데이터 블록을 'Pre-valid' 상태로 설정하는 단계, 상기 원본 데이터 블록을 'Invalid' 상태로 설정하는 단계, 및 상기 타겟 데이터 블록을 'Valid' 상태로 설정하는 단계 중 하나 이상의 세부 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  11. 제 10 항에 있어서,
    상기 원본 데이터 블록이 'Invalid' 상태로 설정되어 있고 상기 타겟 데이터 블록이 'Valid' 상태로 설정되어 있는 경우에는 상기 데이터 기록 과정이 정상적으로 종료된 것으로 판단하고,
    상기 원본 데이터 블록 또는 타겟 데이터 블록의 상태가 'Allocated' 및 'Pre-valid' 중 어느 하나인 경우에는 상기 데이터 기록 과정이 정상적으로 종료되지 않은 것으로 판단하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  12. 제 10 항에 있어서,
    상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태가 'Allocated'인 경우에는 상기 타겟 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계;
    상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태 가 'Pre-valid'인 경우에는 상기 원본 데이터 블록을 'Invalid' 상태로 설정하고 상기 타겟 데이터 블록을 'Valid' 상태로 설정함으로써 오류를 복구하는 단계; 및
    상기 원본 데이터 블록의 상태가 'Invalid'이고 상기 타겟 데이터 블록의 상태가 'Pre-valid'인 경우에는 상기 타겟 데이터 블록을 'Valid' 상태로 설정함으로써 오류를 복구하는 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  13. 제 3 항에 있어서,
    상기 플래시 메모리는 NOP(Number of Operation) 제한을 갖는 플래시 메모리로 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  14. 제 13 항에 있어서, 상기 지우기 과정은
    상기 원본 EU의 유효 데이터를 옮겨 저장할 타겟 EU를 할당받은 후 상기 타겟 EU를 'Copying' 상태로 설정하는 단계, 상기 원본 EU의 유효 데이터를 상기 타겟 EU로 복사하고 매핑 테이블을 갱신한 후 상기 타겟 EU를 'Valid' 상태로 설정하는 단계, 상기 원본 EU를 'Erasing' 상태로 설정하고 지우기를 실행하는 단계 중 하나 이상의 세부 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  15. 제 14 항에 있어서,
    상기 원본 EU가 'Free' 상태로 설정되어 있고 상기 타겟 EU가 'Valid' 상태로 설정되어 있으면 상기 지우기 과정이 정상적으로 종료된 것으로 판단하고,
    상기 원본 EU 또는 타겟 EU의 상태가 'Copying' 또는 'Erasing' 중 어느 하나인 경우에는 상기 지우기 과정이 정상적으로 종료되지 않은 것으로 판단하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  16. 제 14 항에 있어서,
    상기 원본 EU의 상태가 'Valid'이고 상기 타겟 EU의 상태가 'Copying'인 경우에는 상기 타겟 EU를 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계;
    상기 원본 EU와 타겟 EU의 상태가 모두 'Valid'인 경우에는 상기 원본 EU를 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계; 및
    상기 원본 EU의 상태가 'Erasing'이면 상기 원본 EU를 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  17. 제 9 항에 있어서,
    상기 플래시 메모리는 NOP(Number of Operation) 제한을 갖는 플래시 메모리로 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  18. 제 17 항에 있어서, 상기 데이터 기록 과정은
    데이터를 저장할 타겟 데이터 블록을 할당받은 후 상기 타겟 데이터 블록을 'Writing' 상태로 설정하는 단계, 상기 타겟 데이터 블록에 데이터를 저장하고 상기 타겟 데이터 블록을 'Valid' 상태로 설정하는 단계, 및 상기 원본 데이터 블록을 'Invalid' 상태로 설정하는 단계 중 하나 이상의 세부 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  19. 제 18 항에 있어서,
    상기 원본 데이터 블록이 'Invalid' 상태로 설정되어 있고, 상기 타겟 데이터 블록이 'Valid' 상태로 설정되어 있는 경우에는 상기 데이터 기록 과정이 정상적으로 종료된 것으로 판단하도록 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
  20. 제 18 항에 있어서,
    상기 원본 데이터 블록의 상태가 'Valid'이고 상기 타겟 데이터 블록의 상태가 'Writing'인 경우에는 상기 타겟 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계; 및
    상기 원본 데이터 블록과 타겟 데이터 블록의 상태가 모두 'Valid'인 경우에는 상기 원본 데이터 블록을 'Invalid' 상태로 설정함으로써 오류를 복구하는 단계를 포함하여 구성되는 것을 특징으로 하는 플래시 파일 시스템의 오류 복구 방법.
KR1020050010744A 2005-02-04 2005-02-04 플래시 파일 시스템의 오류 복구 방법 KR20060089486A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050010744A KR20060089486A (ko) 2005-02-04 2005-02-04 플래시 파일 시스템의 오류 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050010744A KR20060089486A (ko) 2005-02-04 2005-02-04 플래시 파일 시스템의 오류 복구 방법

Publications (1)

Publication Number Publication Date
KR20060089486A true KR20060089486A (ko) 2006-08-09

Family

ID=37177554

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050010744A KR20060089486A (ko) 2005-02-04 2005-02-04 플래시 파일 시스템의 오류 복구 방법

Country Status (1)

Country Link
KR (1) KR20060089486A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007044541A1 (en) * 2005-10-07 2007-04-19 Microsoft Corporation Flash memory management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007044541A1 (en) * 2005-10-07 2007-04-19 Microsoft Corporation Flash memory management

Similar Documents

Publication Publication Date Title
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US8041991B2 (en) System and method for recovering solid state drive data
US10613943B2 (en) Method and system for improving open block data reliability
KR101215864B1 (ko) 전력 손실에 의한 데이터 손상을 방지하는 플래시 메모리관리 방법
US6865658B2 (en) Nonvolatile data management system using data segments and link information
JP2009237668A (ja) フラッシュメモリを用いた記憶装置
CN104808951A (zh) 进行存储控制的方法和设备
KR100703680B1 (ko) 플래시 파일 시스템
CN108614743A (zh) 基于NAND flash的超级数据块处理方法和装置
JP4731325B2 (ja) 記録媒体、データ処理装置及びデータ処理方法
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
US9405668B1 (en) Data storage device initialization information accessed by searching for pointer information
KR102072351B1 (ko) 플래시 메모리를 관리하기 위한 방법
KR20060089486A (ko) 플래시 파일 시스템의 오류 복구 방법
JP4535049B2 (ja) 仮想ライブラリ装置、仮想ライブラリ装置の制御方法、仮想ライブラリ装置の制御プログラム
JP2006338731A (ja) データ書き込み方法
CN111324285A (zh) 一种存储器
JP2008251063A (ja) 記憶装置
JP4866114B2 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム
CN109407963A (zh) 一种实现存储管理的方法及装置
KR100571915B1 (ko) 갱신할 데이터에 따라 전체 지우기와 부분 지우기를선택하여 프로그램을 갱신하는 방법 및 그 장치
KR20050009045A (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법
KR100521155B1 (ko) 플래시 메모리의 정보기록장치 및 그 방법
JP2013003655A (ja) フラッシュメモリにデータの書き込みを行う制御装置

Legal Events

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