KR20070070909A - 플래시 메모리의 데이터 백업 및 복구 방법 - Google Patents

플래시 메모리의 데이터 백업 및 복구 방법 Download PDF

Info

Publication number
KR20070070909A
KR20070070909A KR1020050133928A KR20050133928A KR20070070909A KR 20070070909 A KR20070070909 A KR 20070070909A KR 1020050133928 A KR1020050133928 A KR 1020050133928A KR 20050133928 A KR20050133928 A KR 20050133928A KR 20070070909 A KR20070070909 A KR 20070070909A
Authority
KR
South Korea
Prior art keywords
data
data area
backup
area
main
Prior art date
Application number
KR1020050133928A
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 KR1020050133928A priority Critical patent/KR20070070909A/ko
Publication of KR20070070909A publication Critical patent/KR20070070909A/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/1456Hardware arrangements for backup
    • 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
    • G06F11/1469Backup restoration techniques

Landscapes

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

Abstract

본 발명은 전자기기의 부팅 및 동작시 사용되는 플래시 메모리의 주요 데이터 영역에 저장된 데이터를 백업하여 관리함으로써, 주요 데이터 영역에 물리적인 메모리 손상이나 데이터 오류와 같은 에러 발생시 이를 복구할 수 있도록 한 플래시 메모리의 데이터 백업 및 복구 방법에 관한 것이다.
본 발명은 플래시 메모리의 데이터 영역에 주요 데이터를 백업하여 관리하기 위한 별도의 백업 데이터 영역을 추가하고, 주요 데이터 영역 및 백업 데이터 영역에 각 데이터 블록 단위로 CRC 값을 함께 관리함으로써, 주요 데이터 영역에 에러가 있더라도 양쪽의 CRC 값을 비교하여 이를 백업된 데이터로 자동 복구할 수 있게 된다.
또한, 본 발명은 플래시 메모리의 주요 데이터에 대한 자동 복구가 가능하게 함으로써, 부팅 및 동작시 플래시 메모리를 사용하는 각종 전자기기의 플래시 메모리 오류로 인한 오동작을 방지할 수 있게 되며, 이에 따라 전자기기 사용자의 불편함을 최소화할 수 있게 됨과 동시에 A/S 센터의 운영 비용을 절감할 수 있게 된다.
전자기기, 플래시 메모리, 주요 데이터 영역, 백업 데이터 영역, CRC 에러 체크, 데이터 블록, 백업, 복구

Description

플래시 메모리의 데이터 백업 및 복구 방법{Data Backup And Recovery Method Of Flash Memory}
도 1은 종래 이동통신 단말기의 부팅 동작을 예시한 순서도.
도 2는 본 발명이 적용되는 플래시 메모리의 데이터 영역을 도시한 도면.
도 3은 본 발명에 따른 플래시 메모리의 주요 데이터 영역에 대한 데이터 백업 절차를 설명하기 위한 순서도.
도 4는 본 발명에 따른 플래시 메모리를 이용한 전자기기의 부팅 동작을 설명하기 위한 순서도.
도 5a 및 5b는 본 발명에 따른 플래시 메모리의 주요 데이터 영역에 대한 데이터 복구 절차를 설명하기 위한 순서도.
도 6은 본 발명에 따른 플래시 메모리의 백업 및 복구 상태를 예시한 도면.
본 발명은 전자기기의 부팅 및 동작시 사용되는 플래시 메모리에 관한 것으로, 특히 플래시 메모리의 주요 데이터 영역에 저장된 데이터를 백업하여 관리함으 로써, 주요 데이터 영역에 물리적인 메모리 손상이나 데이터 오류와 같은 에러 발생시 이를 복구할 수 있도록 한 플래시 메모리의 데이터 백업 및 복구 방법에 관한 것이다.
일반적으로, 이동통신 단말기와 같은 전자기기의 플래시 메모리에는 부팅이나 동작에 필요한 주요 데이터(예컨대, 이동통신 단말기의 경우 장치일련번호, 인증키 등 단말기 고유의 정보)들과 사용자 데이터들이 각각의 데이터 영역에 저장되며, 기기 부팅시나 동작시 임베디드 파일 시스템(Embedded File System, 이하, EFS 시스템)을 사용하여 플래시 메모리의 데이터 영역을 관리한다.
일례로서, 이동통신 단말기의 부팅 동작은 첨부된 도면 도 1에 도시된 바와 같이, 단말기에 전원 인가(Power On)시 부트 로더(Boot Loader)가 실행되면서 운영 체계를 내부 플래시 메모리(Flash ROM)로부터 읽어들여, 메모리(RAM)의 코드 영역에 복사하게 되며(스텝 S11), 이렇게 메모리(RAM)의 코드 영역에 운영체계가 복사된 상태에서 단말기의 MSM(Mobile Station Module) 칩 등과 같은 하드웨어의 초기화 절차가 수행되고(스텝 S12), 태스크(task) 초기화가 시작된다(스텝 S13).
그리고, 하드웨어 초기화 및 태스크 초기화가 이루어진 후에는 플래시 메모리(Flash ROM) 내의 데이터 영역에 저장되어 있는 정보(주요 데이터 및 사용자 데이터)의 액세스(Read/Write)를 위해 파일 정보를 수집하는 EFS 시스템의 초기화가 이루어지게 된다(스텝 S14).
이후, EFS 시스템은 플래시 메모리의 데이터 영역에서 부팅 및 동작에 필요 한 주요 데이터(장치일련번호, 인증키 등 단말기 고유의 정보)를 읽어 일련의 부팅 동작을 수행하게 되는데(스텝 S17), 이때 주요 데이터 영역의 물리적인 손상(Bad Block 발생 등)이나 데이터 오류 등과 같은 일련의 데이터 영역 에러가 발생하는 경우에는 비정상 종료를 수행하고 재부팅(Re-Booting) 동작을 수행하게 된다(스텝 S15, S16).
한편, 일반적인 플래시 메모리는 메모리 액세스시 비정상적인 전원 차단 등의 전기적인 충격이나 프로그래밍 오류로 인한 비정상적인 수행시 메모리의 물리적인 손상이나 소프트웨어적인 데이터 에러 등이 발생될 수 있는데, 종래에는 플래시 메모리를 이용하여 부팅을 수행하는 전자기기에서 부팅이나 동작시 해당 플래시 메모리 내의 주요 데이터 영역에 물리적인 메모리 손상이나 데이터 오류와 같은 에러가 발생하는 경우 계속 재부팅 동작을 수행하거나, 단말기 전원이 꺼지는 등 오동작을 하는 문제점이 있으며, 이를 복구하기 위해서는 서비스 센터에 직접 방문하여 복구하는 것 이외에는 다른 복구 방법이 없다는 불편함이 있었다.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로 그 목적은, 플래시 메모리의 데이터 영역에 주요 데이터를 백업하여 관리하기 위한 별도의 백업 데이터 영역을 추가하고, 주요 데이터 영역 및 백업 데이터 영역에 각 데이터 블록 단위로 CRC 값을 함께 관리함으로써, 주요 데이터 영역에 에러가 있더라도 양쪽의 CRC 값을 비교하여 이를 백업된 데이터로 자동 복구할 수 있도록 하는데 있다.
상술한 바와 같은 목적을 해결하기 위한 본 발명의 특징은, 전자기기에서 부팅 및 동작시 참조되는 플래시 메모리의 데이터 영역을 관리하는 방법에 있어서, 상기 플래시 메모리 내의 EFS(Embedded File System) 시스템에서 주요 데이터 영역에 주요 데이터를 블록 단위로 저장할 때에 각 데이터 블록에 CRC 영역을 할당하여 소정의 CRC 값을 상기 주요 데이터와 함께 저장하는 과정과; 상기 주요 데이터 영역의 각 데이터 블록에 저장되어 있는 주요 데이터 및 CRC 값을 백업 데이터 영역에 블록 단위로 백업하여 관리하는 과정을 포함하는 플래시 메모리의 데이터 백업 및 복구 방법을 구현하는데 있다.
상술한 플래시 메모리의 데이터 백업 및 복구 방법은, 상기 플래시 메모리에 대한 데이터 백업 이벤트가 발생하는 경우 EFS 시스템에서 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하는 과정과; 상기 주요 데이터 영역의 데이터 블록을 순서대로 하나씩 로딩하여 CRC 값을 계산하고, 상기 계산된 CRC 값을 상기 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값과 서로 비교하여 두 CRC 값이 동일한지 확인하는 과정과; 상기 계산된 CRC 값과 대응하는 데이터 블록의 CRC 값이 동일하지 않은 경우 상기 주요 데이터 영역의 각 데이터 블록에 저장되어 있는 주요 데이터와 CRC 값을 백업 데이터 영역의 대응하는 데이터 블록에 복사하는 데이터 백업을 수행하는 과정을 더 포함하는 것을 특징으로 한다.
또한, 상술한 플래시 메모리의 데이터 백업 및 복구 방법은, 상기 전자기기 의 전원 인가에 따른 부팅 수행시 EFS 시스템의 초기화가 이루어지는 경우 상기 EFS 시스템에서 플래시 메모리의 주요 데이터 영역에 대하여 각 데이터 블록 단위로 에러가 존재하는지 확인하는 과정과; 상기 주요 데이터 영역의 데이터 블록 중에서 어느 데이터 블록에 에러가 존재하는 경우 상기 백업 데이터 영역의 각 데이터 블록에 저장되어 있는 데이터를 이용하여 주요 데이터 영역의 각 데이터 블록을 복구하는 과정을 더 포함하는 것을 특징으로 한다.
여기서, 상기 주요 데이터 영역에 대하여 각 데이터 블록 단위로 에러가 존재하는지 확인하는 과정은, EFS 시스템에서 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하는 단계와; 상기 주요 데이터 영역의 데이터 블록에 대하여 순서대로 하나씩 로딩 절차를 수행하면서 해당되는 데이터 블록이 정상적으로 로딩되는지 확인하여 로딩 에러 유무를 확인하는 단계와; 상기 주요 데이터 영역에서 순서대로 로딩되는 데이터 블록의 CRC 값을 계산하고, 상기 계산된 CRC 값을 상기 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값과 동일한지 확인하여 상기 주요 데이터 영역의 데이터와 상기 백업 데이터 영역에 백업된 데이터와의 동일성 여부를 검사하는 단계를 포함하는 것을 특징으로 한다.
그리고, 상기 백업 데이터 영역의 데이터를 이용하여 주요 데이터 영역의 각 데이터 블록을 복구하는 과정은, EFS 시스템에서 상기 백업 데이터 영역의 데이터 블록을 순서대로 하나씩 로딩하는 단계와; 상기 주요 데이터 영역의 데이터 블록을 순서대로 하나씩 검사하여 물리적으로 손상된 데이터 블록이 아닌 경우 해당되는 주요 데이터 영역의 데이터 블록에 상기 백업 데이터 영역에서 로딩한 데이터 블록 을 복사하여 상기 주요 데이터 영역의 각 데이터 블록을 복구하는 단계를 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세하게 설명하면 다음과 같다.
본 발명에서는 전자기기에서 부팅 및 동작시 참조되는 플래시 메모리에 저장되어 있는 주요 데이터를 별도의 백업 데이터 영역에 백업하여 관리하고 CRC(cyclic redundancy checking) 방식의 에러 체크 알고리즘을 적용함으로써, 기기 부팅시 주요 데이터 영역에 에러가 있더라도 이를 백업된 주요 데이터로 복구하여 정상적인 부팅이 가능하게 되는데, 이를 위한 플래시 메모리의 데이터 영역은 첨부한 도면 도 2와 같은 구성을 가진다.
즉, 본 발명에 따른 플래시 메모리 내의 EFS 시스템에 의해 관리되는 데이터 영역은 도 2에 도시한 바와 같이, 주요 데이터 영역과 백업 데이터 영역 및 사용자 데이터 보관 영역으로 구분되는데, 주요 데이터 영역에는 기기 부팅 및 동작시 필요한 주요 데이터가 보관되고, 백업 데이터 영역에는 주요 데이터 영역에서 백업된 주요 데이터가 보관되며, 사용자 데이터 보관 영역에는 기기 운용에 치명적이지 않은 사용자 데이터가 보관된다.
먼저, 본 발명에서 EFS 시스템은 플래시 메모리 내의 주요 데이터 영역에 저장되어 있는 주요 데이터를 백업 데이터 영역에 백업하게 되는데, CRC 방식의 에러 체크 알고리즘을 적용하기 위해 본 발명에서는 주요 데이터 영역에 주요 데이터를 저장할 때에 각 데이터 블록에 CRC 영역을 할당(예컨대, CRC-32 에러 체크 방식의 경우 CRC 비트로 32비트를 사용하기 때문에 각 데이터 블록에 4바이트의 CRC 영역을 할당)하여 CRC 값을 주요 데이터와 함께 저장하게 되며, 백업 데이터 영역에 주요 데이터 백업시 CRC 값도 함께 백업하여 관리하게 된다.
또한, EFS 시스템은 플래시 메모리의 백업 데이터 영역에 백업된 주요 데이터 및 CRC 값의 신뢰도를 유지하기 위해 데이터 백업 이벤트 발생시 이미 정상 부팅된 주요 데이터 영역의 데이터와 백업 데이터 영역의 데이터를 비교하여 차이점이 있으면 주요 데이터 영역에 대한 데이터 백업을 수행하게 되는데, 이를 첨부한 도면 3을 참조하여 상세하게 설명하면 다음과 같다.
즉, EFS 시스템은 주요 데이터 변경이나 전원 오프(Power Off)와 같은 일련의 데이터 백업 이벤트가 발생하게 되면(스텝 S31), 우선, 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하게 된다(스텝 S32).
이후, 주요 데이터 영역을 지정된 데이터 블록 단위로 순서대로 하나의 데이터 블록을 로딩한 후(스텝 S33), 로딩된 데이터 블록의 CRC 값을 계산하게 되며(스텝 S34), 이렇게 계산된 데이터 블록의 CRC 값과 앞에서 로딩한 백업 데이터 영역의 전체 CRC 값 중에서 대응하는 데이터 블록의 CRC 값을 서로 비교(예컨대, 주요 데이터 영역의 첫번째 데이터 블록을 로딩하여 CRC 값을 계산한 경우에는 백업 데이터 영역에서 로딩한 전체 데이터 블록에 대한 CRC 값 중에서 첫번째 데이터 블록의 CRC 값을 서로 비교)하여(스텝 S35), 두 CRC 값이 동일한지 확인하게 된다(스텝 S36).
만약, 두 CRC 값이 동일한 경우 즉, 주요 데이터 영역에서 하나의 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값이 서로 동일한 경우에는 현재 CRC 값을 비교한 데이터 블록이 주요 데이터 영역의 마지막 데이터 블록인지를 확인하게 된다(스텝 S37).
이때, 마지막 데이터 블록이 아닌 경우에는 스텝 S33으로 귀환하여 주요 데이터 영역의 다음 데이터 블록을 로딩하여 CRC 값을 계산한 후, 이를 백업 데이터 영역에서 로딩한 다음 데이터 블록의 CRC 값을 서로 비교하여 두 CRC 값이 동일한지 확인하는 일련의 동작을 반복 수행하게 된다.
이러한 반복 동작을 통해, 주요 데이터 영역의 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역의 대응하는 데이터 블록에 대한 CRC 값을 서로 비교한 결과, 두 CRC 값이 모두 동일한 경우에는 주요 데이터 영역의 데이터와 백업 데이터 영역의 데이터가 동일한 것을 의미하므로, 주요 데이터 영역에 대한 데이터 백업을 수행하지 않고 데이터 블록의 CRC 값 비교 동작을 종료한 후, 전원 오프와 같은 다음 진행 과정을 수행하게 된다(스텝 S38).
하지만, 주요 데이터 영역의 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역의 대응하는 데이터 블록에 대한 CRC 값을 서로 비교하는 중에 어느 한 데이터 블록의 CRC 값이 동일하지 않은 것으로 확인되는 경우 이는 주요 데이터 영역의 데이터와 백업 데이터 영역의 데이터가 동일하지 않음을 의미하므로, 그 즉시 데이터 블록의 CRC 값 비교 동작을 종료하고 주요 데이터 영역에 대한 데이터 백업 동작을 수행함으로써, 주요 데이터 영역의 각 데이터 블록에 저장되어 있는 주요 데이터와 CRC 값을 백업 데이터 영역의 대응하는 데이터 블록에 복사한 후, 전원 오프와 같은 다음 진행 과정을 수행하게 된다(스텝 S39).
다음으로, 상술한 바와 같이 플래시 메모리가 관리되는 본 발명에 따른 전자기기의 부팅 동작을 첨부한 도면 도 4를 참조하여 상세하게 설명하면 다음과 같다.
전자기기에 전원 인가(Power On)시 부트 로더(Boot Loader)가 실행되면서 운영 체계를 내부 플래시 메모리(Flash ROM)로부터 읽어들여 메모리(RAM)의 코드 영역에 복사하게 되며(스텝 S41), 이렇게 메모리(RAM)의 코드 영역에 운영체계가 복사된 상태에서 전자기의 CPU 칩 등과 같은 하드웨어의 초기화 절차가 수행되고(스텝 S42), 태스크(task) 초기화를 시작하게 된다(스텝 S43).
그리고, 하드웨어 초기화 및 태스크 초기화가 이루어진 후에는 플래시 메모리(Flash ROM) 내의 데이터 영역에 저장되어 있는 정보의 액세스(Read/Write)를 위해 파일 정보를 수집하는 EFS 시스템의 초기화가 이루어지게 된다(스텝 S44).
이후, EFS 시스템은 일련의 에러 체크 알고리즘을 적용하여 주요 데이터 영역의 각 데이터 블록에 대한 정상 로딩 여부 및 백업 데이터 영역에 백업된 데이터와의 동일성 여부를 검사함으로써 주요 데이터 영역에 에러가 존재하는지를 확인하게 되며(스텝 S45), 이때, 주요 데이터 영역에 에러가 존재하지 않는 것으로 확인되는 경우에는 플래시 메모리의 주요 데이터 영역에서 로딩한 주요 데이터를 이용하여 일련의 부팅 동작을 수행하게 된다(스텝 S46).
하지만, 주요 데이터 영역에 에러가 존재하는 것으로 확인되는 경우 즉, 주요 데이터 영역의 어느 한 데이터 블록에서 로딩 에러가 발생하거나, 주요 데이터 영역에서 로딩한 데이터가 백업 데이터 영역에 백업된 데이터와 동일하지 않은 것으로 확인되는 경우 EFS 시스템은 백업된 정상 데이터인 백업 데이터 영역의 데이터를 이용하여 주요 데이터 영역을 복구한 후(스텝 S47), 복구된 주요 데이터 영역의 주요 데이터를 참조하여 일련의 부팅 동작을 수행하게 된다(스텝 S48).
한편, 본 발명의 EFS 시스템에서 주요 데이터 영역에 에러가 존재하는 경우 이를 복구하기 위한 일련의 동작을 첨부한 도면 도 5를 참조하여 설명하면 다음과 같다.
먼저, EFS 시스템의 초기화가 이루어지게 되면, 해당 EFS 시스템은 데이터 블록 단위로 에러 체크 절차를 수행하게 되는데, 이를 위해 우선, 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하게 된다(스텝 S51).
이후, EFS 시스템은 주요 데이터 영역을 지정된 데이터 블록 단위로 순서대로 하나의 데이터 블록을 로딩하게 되며(스텝 S52), 이때, 해당 데이터 블록이 정상적으로 로딩되는지 확인함으로써 로딩 에러 유무를 확인하게 된다(스텝 S53).
만약, 로딩 에러가 발생되지 않고 데이터 블록이 정상적으로 로딩된 경우 EFS 시스템은 로딩된 데이터 블록의 CRC 값을 계산한 후(스텝 S54), 계산된 데이터 블록의 CRC 값과 앞에서 로딩한 백업 데이터 영역의 전체 CRC 값 중에서 대응하는 데이터 블록의 CRC 값을 서로 비교(예컨대, 주요 데이터 영역의 첫번째 데이터 블록을 로딩하여 CRC 값을 계산한 경우에는 백업 데이터 영역에서 로딩한 전체 데이터 블록에 대한 CRC 값 중에서 첫번째 데이터 블록의 CRC 값을 서로 비교)하여(스텝 S55), 두 CRC 값이 동일한지 확인하게 된다(스텝 S56).
이때, 두 CRC 값이 동일한 경우 즉, 주요 데이터 영역의 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값이 서로 동일한 경우에는 현재 CRC 값을 비교한 데이터 블록이 주요 데이터 영역의 마지막 데이터 블록인지를 확인하게 된다(스텝 S57).
만약, 마지막 데이터 블록이 아닌 경우에는 스텝 S52로 귀환하여 주요 데이터 영역의 다음 데이터 블록을 로딩한 후에 해당 데이터 블록이 정상적으로 로딩되는지 확인함으로써 로딩 에러 유무를 확인하고, 로딩 에러가 발생되지 않고 데이터 블록이 정상적으로 로딩된 경우 로딩된 데이터 블록의 CRC 값을 계산한 후, 이를 백업 데이터 영역의 다음 데이터 블록에 대한 CRC 값과 서로 비교하여 두 CRC 값이 동일한지 확인하는 일련의 동작을 반복 수행하게 된다.
이러한 반복 동작을 통해, 주요 데이터 영역의 각 데이터 블록이 로딩 에러없이 순서대로 하나씩 정상적으로 로딩되고, 또한, 주요 데이터 영역의 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역의 대응하는 데이터 블록에 대한 CRC 값이 모두 동일한 것으로 확인되는 경우 이는 주요 데이터 영역에 에러가 존재하지 않는 것을 의미하므로, EFS 시스템은 앞에서 로딩한 주요 데이터 영역의 주요 데이터를 참조하여 일련의 부팅 동작을 수행하게 된다(스텝 S58).
하지만, 스텝 S53에서 주요 데이터 영역의 각 데이터 블록에 대한 로딩을 수행하는 중에 로딩 에러가 발생되거나, 스텝 S56에서 주요 데이터 영역의 어느 한 데이터 블록을 로딩하여 계산한 CRC 값과 백업 데이터 영역의 대응하는 데이터 블록에 대한 CRC 값이 서로 동일하지 않은 것으로 확인되는 경우 이는 주요 데이터 영역에 에러가 존재하는 것을 의미하므로, EFS 시스템은 정상적인 데이터인 백업 데이터 영역에 저장되어 있는 데이터(주요 데이터 및 CRC 값)를 이용하여 주요 데이터 영역의 각 데이터 블록에 대한 복구 동작을 시작하게 된다(스텝 S59).
이렇게 주요 데이터 영역에 대한 복구 동작이 시작되면, EFS 시스템은 백업 데이터 영역의 첫번째 데이터 블록을 로딩한 후(스텝 S60), 이를 복사할 주요 데이터 영역의 해당 데이터 블록을 검사하여(스텝 S61), 물리적으로 메모리가 손상된 데이터 블록인지를 확인하게 되고(스텝 S62), 이때, 물리적으로 손상된 데이터 블록인 것으로 확인되는 경우에는 주요 데이터 영역의 다음 데이터 블록을 검사하여(스텝 S63), 물리적으로 메모리가 손상된 데이터 블록인지를 확인하게 된다(스텝 S62).
그리고, 주요 데이터 영역의 데이터 블록이 물리적으로 손상된 데이터 블록이 아닌 경우에는 해당 주요 데이터 영역의 데이터 블록에 백업 데이터 영역에서 로딩된 데이터를 복사한 후(스텝 S64), 해당 백업 데이터 영역의 모든 데이터 블록이 주요 데이터 영역에 복사되었는지를 확인하게 된다(스텝 S65).
만약, 백업 데이터 영역의 모든 데이터 블록이 주요 데이터 영역에 복사되지 않은 경우에는 백업 데이터 영역의 다음 데이터 블록을 로딩한 후(스텝 S66), 이를 복사할 주요 데이터 영역의 데이터 블록을 검사하는 스텝 S61의 동작을 수행함으로써, 백업 데이터 영역의 모든 데이터 블록을 주요 데이터 영역에 복사하게 된다.
이후, 백업 데이터 영역의 모든 데이터 블록을 주요 데이터 영역에 복사한 후에는 복사된 주요 데이터 영역의 주요 데이터를 참조하여 일련의 부팅 동작을 수 행하게 된다(스텝 S67).
예를 들어, 첨부한 도면 도 6의 (가)에 도시한 바와 같이, 플래시 메모리의 주요 데이터 영역에 일련의 데이터가 저장된 A~H의 데이터 블록이 존재하고, 백업 데이터 영역에는 백업된 데이터가 저장된 A'~H'의 데이터 블록이 존재한다고 가정할 때, 주요 데이터 영역의 각 데이터 블록에 대한 에러 존재 여부를 확인한 결과, 도 6의 (나)와 같이 데이터 블록 F에서 로딩 에러가 발생되면, 정상적인 데이터인 백업 데이터 영역에 저장되어 있는 데이터를 블록 단위로 차례로 로딩하여 주요 데이터 영역의 해당 데이터 블록에 차례로 복사함으로써 주요 데이터 영역에 대한 복구 동작을 수행하게 되는데, 이때, 백업 데이터 영역의 데이터를 복사할 주요 데이터 영역의 데이터 블록을 검사한 결과, 데이터 블록 F가 물리적으로 손상된 데이터 블록인 것으로 확인되는 경우에는 도 6의 (다)와 같이 주요 데이터 영역의 데이터 블록 F에는 데이터 복사를 하지 않고 정상적인 데이터 블록에만 차례대로 백업 데이터 영역의 데이터를 복사함으로써 주요 데이터 영역에 대한 복구를 완료할 수 있게 된다.
또한, 본 발명에 따른 실시예는 상술한 것으로 한정되지 않고, 본 발명과 관련하여 통상의 지식을 가진자에게 자명한 범위내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
이상과 같이, 본 발명은 플래시 메모리의 데이터 영역에 주요 데이터를 백업 하여 관리하기 위한 별도의 백업 데이터 영역을 추가하고, 주요 데이터 영역 및 백업 데이터 영역에 각 데이터 블록 단위로 CRC 값을 함께 관리함으로써, 주요 데이터 영역에 에러가 있더라도 양쪽의 CRC 값을 비교하여 이를 백업된 데이터로 자동 복구할 수 있게 된다.
또한, 본 발명은 플래시 메모리의 주요 데이터에 대한 자동 복구가 가능하게 함으로써, 부팅 및 동작시 플래시 메모리를 사용하는 각종 전자기기의 플래시 메모리 오류로 인한 오동작을 방지할 수 있게 되며, 이에 따라 전자기기 사용자의 불편함을 최소화할 수 있게 됨과 동시에 A/S 센터의 운영 비용을 절감할 수 있게 된다.

Claims (5)

  1. 전자기기에서 부팅 및 동작시 참조되는 플래시 메모리의 데이터 영역을 관리하는 방법에 있어서,
    상기 플래시 메모리 내의 EFS(Embedded File System) 시스템에서 주요 데이터 영역에 주요 데이터를 블록 단위로 저장할 때에 각 데이터 블록에 CRC 영역을 할당하여 소정의 CRC 값을 상기 주요 데이터와 함께 저장하는 과정과;
    상기 주요 데이터 영역의 각 데이터 블록에 저장되어 있는 주요 데이터 및 CRC 값을 백업 데이터 영역에 블록 단위로 백업하여 관리하는 과정을 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 백업 및 복구 방법.
  2. 제 1항에 있어서,
    상기 플래시 메모리에 대한 데이터 백업 이벤트가 발생하는 경우 EFS 시스템에서 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하는 과정과;
    상기 주요 데이터 영역의 데이터 블록을 순서대로 하나씩 로딩하여 CRC 값을 계산하고, 상기 계산된 CRC 값을 상기 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값과 서로 비교하여 두 CRC 값이 동일한지 확인하는 과정과;
    상기 계산된 CRC 값과 대응하는 데이터 블록의 CRC 값이 동일하지 않은 경우 상기 주요 데이터 영역의 각 데이터 블록에 저장되어 있는 주요 데이터와 CRC 값을 백업 데이터 영역의 대응하는 데이터 블록에 복사하는 데이터 백업을 수행하는 과정을 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 백업 및 복구 방법.
  3. 제 1항에 있어서,
    상기 전자기기의 전원 인가에 따른 부팅 수행시 EFS 시스템의 초기화가 이루어지는 경우 상기 EFS 시스템에서 플래시 메모리의 주요 데이터 영역에 대하여 각 데이터 블록 단위로 에러가 존재하는지 확인하는 과정과;
    상기 주요 데이터 영역의 데이터 블록 중에서 어느 데이터 블록에 에러가 존재하는 경우 상기 백업 데이터 영역의 각 데이터 블록에 저장되어 있는 데이터를 이용하여 주요 데이터 영역의 각 데이터 블록을 복구하는 과정을 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 백업 및 복구 방법.
  4. 제 3항에 있어서,
    상기 주요 데이터 영역에 대하여 각 데이터 블록 단위로 에러가 존재하는지 확인하는 과정은, EFS 시스템에서 백업 데이터 영역의 전체 데이터 블록에 대한 CRC 값을 로딩하는 단계와;
    상기 주요 데이터 영역의 데이터 블록에 대하여 순서대로 하나씩 로딩 절차를 수행하면서 해당되는 데이터 블록이 정상적으로 로딩되는지 확인하여 로딩 에러 유무를 확인하는 단계와;
    상기 주요 데이터 영역에서 순서대로 로딩되는 데이터 블록의 CRC 값을 계산하고, 상기 계산된 CRC 값을 상기 백업 데이터 영역에서 로딩한 대응하는 데이터 블록의 CRC 값과 동일한지 확인하여 상기 주요 데이터 영역의 데이터와 상기 백업 데이터 영역에 백업된 데이터와의 동일성 여부를 검사하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 백업 및 복구 방법.
  5. 제 3항에 있어서,
    상기 백업 데이터 영역의 데이터를 이용하여 주요 데이터 영역의 각 데이터 블록을 복구하는 과정은, EFS 시스템에서 상기 백업 데이터 영역의 데이터 블록을 순서대로 하나씩 로딩하는 단계와;
    상기 주요 데이터 영역의 데이터 블록을 순서대로 하나씩 검사하여 물리적으로 손상된 데이터 블록이 아닌 경우 해당되는 주요 데이터 영역의 데이터 블록에 상기 백업 데이터 영역에서 로딩한 데이터 블록을 복사하여 상기 주요 데이터 영역의 각 데이터 블록을 복구하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 백업 및 복구 방법.
KR1020050133928A 2005-12-29 2005-12-29 플래시 메모리의 데이터 백업 및 복구 방법 KR20070070909A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050133928A KR20070070909A (ko) 2005-12-29 2005-12-29 플래시 메모리의 데이터 백업 및 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050133928A KR20070070909A (ko) 2005-12-29 2005-12-29 플래시 메모리의 데이터 백업 및 복구 방법

Publications (1)

Publication Number Publication Date
KR20070070909A true KR20070070909A (ko) 2007-07-04

Family

ID=38506131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050133928A KR20070070909A (ko) 2005-12-29 2005-12-29 플래시 메모리의 데이터 백업 및 복구 방법

Country Status (1)

Country Link
KR (1) KR20070070909A (ko)

Similar Documents

Publication Publication Date Title
US8196130B2 (en) Tri-phase boot process in electronic devices
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
CN1711747B (zh) 包括从升级中发生的故障和错误自动恢复的电子文件升级
US7805719B2 (en) System and method for updating and distributing information
CN101436138B (zh) 一种用于软件升级且动态回滚的控制装置以及控制方法
US7971199B1 (en) Mobile device with a self-updating update agent in a wireless network
CA2414281C (en) System and method for updating and distributing information
US7797693B1 (en) NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices
US6832373B2 (en) System and method for updating and distributing information
US20070055969A1 (en) System and method for updating firmware
US6895469B2 (en) Disk array apparatus and parity processing method therein
US7356744B2 (en) Method and system for optimizing testing of memory stores
US20050055595A1 (en) Software update method, apparatus and system
KR20050061378A (ko) 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법
WO2009074444A2 (en) Updating firmware of an electronic device
US20020112198A1 (en) Method and apparatus for recovering from failure of a mirrored boot device
KR100872175B1 (ko) Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN101904105A (zh) 在更新期间使用高效的块备份和块恢复的移动手持送受话器
US7689981B1 (en) Mobile handset with efficient interruption point detection during a multiple-pass update process
US6389539B1 (en) Method and system for enhancing security access to a data processing system
CN103677862A (zh) Epld程序的升级方法及装置
WO2005088448A1 (en) Method and apparatus for reliable in-place update
KR100986487B1 (ko) 고장 허용 갱신 에이전트를 구비한 모바일 핸드세트
CN115793985A (zh) 一种安全存储方法、装置、设备及存储介质
CN113672270A (zh) 升级方法,计算机系统和远端升级设备

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination