KR100970064B1 - 차분 갱신 방법, 기록 매체 및 장치 - Google Patents

차분 갱신 방법, 기록 매체 및 장치 Download PDF

Info

Publication number
KR100970064B1
KR100970064B1 KR1020030091272A KR20030091272A KR100970064B1 KR 100970064 B1 KR100970064 B1 KR 100970064B1 KR 1020030091272 A KR1020030091272 A KR 1020030091272A KR 20030091272 A KR20030091272 A KR 20030091272A KR 100970064 B1 KR100970064 B1 KR 100970064B1
Authority
KR
South Korea
Prior art keywords
data
nonvolatile memory
restoration
partition
processing
Prior art date
Application number
KR1020030091272A
Other languages
English (en)
Other versions
KR20040055602A (ko
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 후지쯔 가부시끼가이샤
Publication of KR20040055602A publication Critical patent/KR20040055602A/ko
Application granted granted Critical
Publication of KR100970064B1 publication Critical patent/KR100970064B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)

Abstract

전원 복구 후에 갱신 처리를 도중에 재개할 수 있도록 한다. 차분 데이터 수신부(32)는 전체 구획분의 차분 데이터를 수신하여 불휘발성 메모리(34)에 저장한다. 복원 처리부(36)는 현재의 처리 구획을 나타내는 복원 처리 구획 번호 X를 불휘발성 메모리(34)에 보존한 후에, 차분 데이터로부터 구획 데이터를 복원하여 불휘발성 메모리(34)에 저장한다. 덮어쓰기 처리부(38)는 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호 X-1을 불휘발성 메모리(34)에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 불휘발성 메모리(34)로부터 판독하여 휘발성 메모리(40)의 재기록 대상 데이터에 덮어쓰기한다. 재개 처리부(44)는 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하고, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개한다.
차분 갱신, 차분 데이터 수신부, 덮어쓰기 처리부, 복원 처리부, 복원 재개부, 판정부

Description

차분 갱신 방법, 기록 매체 및 장치{DIFFERENTIAL UPDATE METHOD, RECORDING MEDIUM AND APPARATUS}
도 1은 본 발명의 원리 설명도.
도 2는 본 발명에 따른 제1 실시예의 블록도.
도 3은 도 2의 실시예에서의 차분 데이터 생성 처리의 설명도.
도 4는 구 파일에 일치 부분이 복수 존재한 경우의 차분 추출의 설명도.
도 5는 구분 데이터의 복원 처리 중에 있어서의 복원 처리 구획 번호와 덮어쓰기 처리 구분 번호의 불휘발성 메모리의 기술 상태의 설명도.
도 6은 구분 데이터의 복원이 종료하여 불휘발성 메모리 저장 중에 있어서의 복원 처리 구획 번호와 덮어쓰기 처리 구분 번호의 기술 상태의 설명도.
도 7은 도 2의 기지국측에서 행해지는 차분 데이터 생성 처리의 흐름도.
도 8은 도 7에 계속되는 차분 데이터 생성 처리의 흐름도.
도 9는 도 2의 휴대 전화로 행해지는 본 발명의 제1 실시예에 의한 데이터 갱신 처리의 흐름도.
도 10은 도 9에 계속되는 데이터 갱신 처리의 흐름도.
도 11은 데이터 갱신 중에 차단된 전원이 복구된 후에 행하는 본 발명의 제1 실시예에 의한 데이터 갱신 처리의 흐름도.
도 12는 도 11에 계속되는 데이터 갱신 처리의 흐름도.
도 13은 본 발명에 따른 제2 실시예의 블록도.
도 14는 도 13의 기지국측에서 행해지는 차분 데이터 생성 처리의 흐름도.
도 15는 도 14에 계속되는 차분 데이터 생성 처리의 흐름도.
도 16은 도 13의 휴대 전화로 행해지는 본 발명의 제2 실시예에 의한 데이터 갱신 처리의 흐름도.
도 17은 도 16에 계속되는 데이터 갱신 처리의 흐름도.
도 18은 데이터 갱신 중에 차단된 전원이 복구된 후에 행하는 본 발명의 제2 실시예에 의한 데이터 갱신 처리의 흐름도.
도 19는 도 18에 계속되는 데이터 갱신 처리의 흐름도.
도 20은 휴대 전화로 행해지는 본 발명의 제3 실시예에 의한 데이터 갱신 처리의 흐름도.
도 21은 도 20에 계속되는 데이터 갱신 처리의 흐름도.
도 22는 데이터 갱신 중에 차단된 전원이 복구된 후에 행하는 본 발명의 제3 실시예에 의한 데이터 갱신 처리의 흐름도.
도 23은 도 22에 계속되는 데이터 갱신 처리의 흐름도.
〈도면의 주요 부분에 대한 부호의 설명〉
10 : 기지국
12 : 휴대 전화
14 : 구 파일
16 : 신 파일
18 : 구획 절단부
20 : 데이터 비교부
22 : 일치 데이터 열 검색부
24 : 갱신 데이터 출력부
26 : 복사 코드 출력부
28 : 차분 데이터 출력부
30 : 전송 회선
32 : 차분 데이터 수신부
34 : 불휘발성 메모리
36 : 복원 처리부
38 : 덮어쓰기 처리부
40 : 재기록 대상 메모리(휘발성 메모리)
42 : 워크 메모리
44 : 재개 처리부
46 : 판정부
48 : 복원 재개부
50 : 덮어쓰기 재개부
52 : 블록 분할부
본 발명은 신구(新舊) 2개의 파일로부터 생성된 차분 데이터를 수신하여 재기록 대상 파일의 데이터를 갱신하는 차분 갱신 방법, 프로그램 및 장치에 관한 것으로, 특히 데이터 갱신 중에 차단된 전원의 복구 후에 데이터 갱신 처리를 도중부터 재개하기 위한 차분 갱신 방법, 프로그램 및 장치에 관한 것이다.
종래, 휴대 단말기와 같은 조립형 시스템에서는, 외부와의 통신이 저속이며, 사용 가능한 워크 메모리가 적다는 등의 제한이 있다. 이러한 환경에서 내부 메모리에 저장된 소프트웨어를 단시간에 갱신하기 위해서는 소프트웨어의 신구 차분 데이터를 이용하는 차분 갱신법이 있다.
차분 갱신법을 이용하여 조립형 시스템의 내장 메모리에 저장된 소프트웨어의 갱신을 행하는 경우, 갱신량이 많으면 차분 데이터의 사이즈가 커져, 조립형 시스템의 이용 가능한 메모리에 다 저장되지 않는다.
이러한 경우, 재기록 대상의 데이터(소프트웨어) 전체를 몇 개의 구획으로 분할하여, 각각에 대하여 갱신 처리를 행하게 된다. 이 때의 갱신 처리의 흐름은 다음과 같이 된다.
S1 : 재기록 대상 데이터의 1구획을 갱신하기 위한 차분 데이터를 외부로부터 전송시켜 수신한다.
S2 : 수신된 1구획분의 차분 데이터와 대응하는 1구획분의 재기록 대상 데이터로부터 새로운 1구획분의 신 데이터를 생성한다.
S3 : 생성된 1구획분의 신 데이터를 대응하는 1구획분의 재기록 대상 데이터에 덮어쓰기한다.
그러나, 이러한 차분 갱신 처리 시에는, 각 구획별로 차분 데이터로부터 생성된 신 데이터를 재기록 대상 데이터에 덮어쓰기하고 있는 처리 도중에 휴대 전화의 전원이 차단되어, 전원 회복 후에 차분 갱신 처리를 재개하고자 해도, 재기록 대상 단말기는 도중까지 재기록된 상태로 되어 있고, 차분 데이터는 참조해야 하는 데이터를 소실하기 때문에, 갱신 처리를 계속할 수는 없다.
또한, 전원 차단 시에 생성되어 있던 1구획분의 신 데이터도 전원 차단에 의해 소실되어, 전원 회복에 따른 재개 처리로 대응하는 재기록 대상 데이터의 덮어쓰기를 다시 할 수는 없다.
이 때문에, 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우, 차분 갱신법에 의한 갱신 처리를 단념하고, 갱신을 완료시키기 위해서는 외부로부터 갱신 후의 데이터 그 자체를 전송받을 필요가 있으며, 갱신 후의 데이터 그 자체를 수취하는 경우, 그 데이터량은 차분 데이터와 비교하여 대단히 큰 사이즈가 되기 때문에, 갱신 처리 시간의 증가를 피할 수 없는 문제가 있었다.
본 발명은 전송된 구획별 차분 데이터로부터 신 데이터를 복원하여 재기록 대상 데이터에 덮어쓰기하는 갱신 처리의 도중에 전원이 차단되어, 전원 복구 후에 갱신 처리를 도중에 재개할 수 있도록 하는 차분 갱신 방법, 프로그램 및 장치를 제공하는 것을 목적으로 한다.
도 1은 본 발명의 원리 설명도이다.
(방법)
본 발명은 차분 갱신 방법을 제공하는 것으로, 이 차분 갱신 방법은,
차분 데이터 수신부(32)에 의해, 신구 2개의 파일에 대하여, 신 파일(16)을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일(14)의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일(14)의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리(34)에 저장하는 차분 데이터 수신 단계와,
복원 처리부(36)에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 불휘발성 메모리(34)에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
덮어쓰기 처리부(38)에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리(34)에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 불휘발성 메모리(34)로부터 판독하여 불휘발성 메모리(40)의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
를 포함한 것을 특징으로 한다. 여기서, 차분 데이터 수신 단계는, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 생성된 구획별 차분 데이터를 수신하도록 해도 된다.
또한, 본 발명은,
판정부(46)에 의해, 전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
복원 재개부(48)에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
덮어쓰기 재개부(50)에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
를 포함한 것을 특징으로 한다.
이러한 본 발명에 따른 차분 갱신 방법을 이용함으로써, 휴대 전화 등의 조립형 시스템 상에서의 분할 차분 갱신 처리에 있어서의 처리 순서 중, 각 구분의 차분 데이터로부터의 갱신 처리의 처리 중에 전원이 차단된 경우라도, 전원 복구 후에 그 구획으로부터 갱신 처리를 재개할 수 있게 된다.
또한, 데이터 복원 중의 전원 차단 시, 구 데이터 덮어쓰기 처리 중의 전원 차단 시와 함께, 전원 복구 후에는 차단 전의 처리로부터의 속행이 가능하게 되고, 불필요한 복원 처리, 덮어쓰기 처리를 행하지 않고 처리를 재개할 수 있다.
여기서 판별 단계는, 전원이 차단된 경우의 전원 복구 후에, 복원 처리 구획 번호와 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별한다.
복원 처리 단계는 1구획분의 차분 데이터로부터 복원된 복원 구분 데이터와, 재기록 대상 데이터의 해당 구획 데이터의 내용이 동일한지의 여부를 판단하여, 동일한 경우에는 상기 복원 구분 데이터 대신에 불휘발성 메모리에 신구 동일함을 기술하고, 덮어쓰기 처리 단계는 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에는 복원 구분 데이터의 덮어쓰기를 스킵한다.
이 때문에, 각 구분의 차분 데이터로부터 복원한 신 데이터가 재기록 대상 데이터(구 데이터)와 동일한 경우, 신 데이터의 불휘발성 메모리에의 기입, 구 데이터가 저장되어 있는 메모리에의 덮어쓰기를 불요로 하여, 처리를 행할 필요성이 없는 경우에는 아무것도 하지 않음으로써 처리 시간을 짧게 한다.
복원 처리 단계는, 1구획분의 차분 데이터로부터 복원된 복원 구획 데이터를 다시 n개의 복원 블록 데이터로 더 등분하여, 각 블록 단위로 복원 블록 데이터와 재기록 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 복원 블록 데이터 대신에 불휘발성 메모리에 신구 동일함을 기술하고, 덮어쓰기 처리 단계는 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에는 복원 블록 데이터의 덮어쓰기를 스킵하는 것을 특징으로 한다.
이와 같이 복원한 1구획분의 신 데이터를 n 블록으로 더 분할하여, 구 데이터와 동일한 경우에는 신 데이터의 불휘발성 메모리에의 기입, 구 데이터가 저장되어 있는 메모리에의 덮어쓰기를 불요로 하여, 블록 단위로 처리를 행할 필요성이 없는 경우에는 아무것도 하지 않음으로써, 처리 시간을 더욱 짧게 한다.
본 발명에 따른 차분 갱신 방법의 다른 형태에 있어서는, 각 구획의 차분 데이터를 n개의 블록으로 더 분할하여 처리된 차분 데이터를 수신하여 갱신하는 차분 갱신 방법이 제공된다. 즉, 이 차분 갱신 방법은,
차분 데이터 수신부에 의해, 신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분에 대하여 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
복원 처리부에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하여 휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
를 포함한 것을 특징으로 한다. 여기서 차분 데이터 수신 단계는, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 수신하도록 해도 된다.
이 차분 갱신 방법은,
판정부에 의해, 전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
복원 재개부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
덮어쓰기 재개부에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
를 더 포함한 것을 특징으로 한다.
이 차분 갱신 방법을 이용함으로써, 휴대 전화 등의 조립형 시스템 상에서의 분할 차분 갱신 처리에 있어서의 처리 순서 중, 각 구분의 차분 데이터로부터의 갱신 처리의 처리 중에 전원이 차단된 경우라도, 전원 복귀 후에 그 구획으로부터 갱신 처리를 재개할 수 있다.
또한, 데이터 복원 중의 전원 차단 시, 구 데이터 덮어쓰기 처리 중의 전원 차단 시와 함께, 전원 복구 후에는 차단 전의 처리로부터의 속행이 가능하게 되어, 불필요한 복원 처리, 덮어쓰기 처리를 행하지 않고 처리를 재개할 수 있다.
여기서 판별 단계는, 전원이 차단된 경우의 전원 복구 후에, 복원 처리 구획 번호와 상기 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별한다.
복원 처리 단계는 차분 블록 데이터에 신구 동일함이 기술되어 있는 경우에는 차분 블록 데이터에 기초하는 복원 처리를 스킵하여 불휘발성 메모리에 신구 동일함을 기술하고, 덮어쓰기 처리 단계는 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에는 복원 블록 데이터의 덮어쓰기를 스킵한다.
이와 같이 차분 데이터로부터 복원한 1구획분을 n 블록으로 분할한 신 블록 데이터가, 구 블록 데이터와 동일한 경우에는 신 블록 데이터의 불휘발성 메모리에의 기입, 구 데이터가 저장되어 있는 메모리에의 덮어쓰기를 불요로 하여, 보다 미세한 블록 단위로 처리를 행할 필요성이 없는 경우에는 아무것도 하지 않음으로써 처리 시간을 짧게 한다. 또한, 복원 후에 각 구획의 복원 데이터를 n 블록으로 분할하여 신구를 비교하는 처리가 불필요하여, 그 만큼 처리 시간을 단축할 수 있다.
(프로그램)
본 발명은 휴대 전화 등의 조립형 시스템의 컴퓨터로 실행되는 차분 갱신을 위한 프로그램을 제공한다. 이 프로그램은 컴퓨터에,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하 고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치(또는 개시 위치보다 1구획분 더 전방의 위치)로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 불휘발성 메모리에 저장하는 복원 처리 단계와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계를 실행시키는 것을 특징으로 한다.
이 프로그램은,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부 터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
를 더 포함한다.
본 발명에 따른 프로그램의 다른 형태에 있어서는, 각 구획의 신구 데이터를 n개의 블록으로 더 분할하여 처리된 차분 데이터를 수신하여 갱신하는 프로그램이 제공된다. 즉, 이 프로그램은 휴대 전화 등의 조립형 시스템의 컴퓨터에,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치(또는 개시 위치보다 1구획분 더 전방의 위치)로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 또한 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 불휘발성 메모리에 저장하는 복원 처리 단계와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
를 실행하는 것을 특징으로 한다.
이 프로그램은,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
를 더 구비한다. 또, 본 발명에서의 프로그램의 상세는 차분 갱신 방법과 기본적으로 동일하게 된다.
(장치)
본 발명은 휴대 전화 등의 조립 시스템을 대상으로 한 차분 갱신 장치를 제공한다. 이 차분 갱신 장치는,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치(또는 개시 위치보다 1구획분 더 전방의 위치)로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신부와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 불휘발성 메모리에 저장하는 복원 처리부와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리부와,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판정부와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개부와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개부
를 구비한다.
본 발명에 따른 차분 갱신 장치의 다른 형태에 있어서는, 각 구획의 신구 데이터를 n개의 블록으로 더 분할하여 처리된 차분 데이터를 수신하여 갱신하는 차분 갱신 장치가 제공된다.
이 차분 갱신 장치는,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치(또는 개시 위치보다 1구획분 더 전방의 위치)로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 차분 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 신 파일 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신부와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리부와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리부와,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판정부와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개부와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 불휘발성 메모리로부터 판독한 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개부
를 구비한 것을 특징으로 한다.
또, 본 발명에서의 차분 갱신 장치의 상세는, 차분 갱신 방법과 기본적으로 동일하게 된다.
〈실시예〉
도 2는 본 발명의 차분 갱신 방법이 적용되는 제1 실시예의 블록도이다. 도 2에서, 송신측의 차분 데이터 생성 장치로서 기능하는 기지국(10)에는, 하드디스크 드라이브 등에 의해 구 파일(14)과 신 파일(16)이 보존되어 있다.
기지국(10)에 있어서의 차분 데이터의 생성은, 신 파일(16)을 일정 사이즈, 예를 들면 256KB 사이즈의 복수 구획으로 분할하여, 각 구획 내의 신 파일의 데이터 열과 일치하는 구 파일(14)의 데이터 열을 구 파일의 최후미로부터 대상 구획의 개시 위치까지의 범위에서 탐색하여, 각 구획별 차분 데이터를 생성한다.
이를 위해 기지국(10)에는 구획 절단부(18), 데이터 비교부(20), 일치 데이터 열 검색부(22), 갱신 데이터 출력부(24), 복사 코드 출력부(26) 및 차분 데이터 출력부(28)가 설치되어 있다.
도 3은 도 2의 기지국(10)에 있어서의 차분 데이터 생성 처리의 설명도이다. 신 파일(16)은 일정 사이즈, 예를 들면 256KB마다 복수의 구획(16-1∼16-5)으로 나누어져 있다.
이 신 파일(16)에 있어서, 현재 구획(16-2)이 처리 중이었다고 하면, 구획(16-2)의 선두 어드레스에 데이터 비교 대상 포인터 P1을 세트하고, 구 파일(14)에 대해서도 동일한 위치에 데이터 비교 참조 포인터 Q1을 세트하여, 각 포인터 P1, Q1이 가리키는 데이터값, 예를 들면 1바이트 데이터가 일치하는지를 체크한다.
일치하면, 이 위치로부터 후방으로 몇 바이트 일치 데이터가 계속되는지를 계측한다. 값이 일치하지 않게 된 경우에는 「복사 코드」에 최초로 값이 일치하였을 때의 데이터 참조 포인터 Q1의 값과 계측한 일치 길이를 조합하여 차분 데이터로서 출력한다.
한편, 신 파일(16)의 데이터 비교 대상 포인터 P1과 동일한 위치의 구 파일(14)의 데이터 비교 참조 포인터 Q1이 나타내는 값이 불일치인 경우에는 구 파일(14)의 데이터 비교 참조 포인터 Q2와 같이, 구 파일(14)의 최후미에 세트한 후에, 전방으로 이동시키면서 신 파일(16)의 데이터 비교 대상 포인터 P1의 값과의 일치 검색을, 대상 구획(16-2)에 대응하는 구획보다 1개의 전의 구 파일(14)의 구획까지의 범위에서 행한다.
또, 구 파일(14)에 있어서의 검색 범위는, 최후미로부터 신 파일(16)의 대상 구획(16-2)에 대응한 구 파일의 구획까지의 범위이어도 된다. 구 파일의 탐색 범 위를 대상 구획보다 1개 전의 범위로 확대하고 있는 이유는, 후의 설명에서 밝히는 차분 데이터가 전송 수신되는 차분 갱신측에서, 구 파일에 대한 갱신 데이터의 덮어쓰기가 복원 처리를 행하고 있는 구획보다 1개 전의 구획에 대하여 행해지기 때문에, 이에 맞춰 차분 데이터 생성측에서도 대상 구획 1개 전의 구획까지를 구 파일의 탐색 범위로 하고 있다.
도 4는 도 3과 동일한 구획(16-2)의 데이터 비교 대상 포인터 P1에 대하여, 구 파일(14)의 최후미에 세트한 데이터 비교 참조 포인터 Q2를 전방으로 이동하면서 일치 탐색을 행한 경우에, 복수의 데이터 열(56-1, 56-2, 56-3)이 일치 탐색된 경우이다.
이와 같이 복수의 데이터 열(56-1∼56-3)이 일치 데이터 열로서 탐색된 경우에는, 최후미의 데이터 열(56-1)의 데이터 비교 참조 포인터의 위치와 일치 길이를 갖는 「복사 코드」를 차분 데이터로서 출력한다.
한편, 도 3, 도 4에 의한 구 파일(14)에 있어서의 일치 부분의 탐색으로 일치 부분을 탐색할 수 없던 경우에는, 구획(16-2)의 데이터는 새로운 갱신 데이터이므로, 「갱신 코드」와 신 데이터를 차분 데이터로서 출력한다.
여기서, 구획별로 신 파일(16)과 구 파일(14)과의 일치 검색을 행하는 처리는, 신 파일(16)에 있어서 데이터 비교 대상 포인터를 1바이트씩 변이시켜 행하기 때문에, 1구획의 차분 데이터 중에는 최소 1바이트 폭으로 구 파일과의 일치에 기초한 복사 코드와 구 파일의 불일치에 기초한 갱신 코드와 각각의 값이 혼재하게 된다.
이러한 차분 데이터의 생성을 도 2의 기지국(10)에 대하여 구체적으로 설명하면, 구획 절단부(18)가 신 파일(16)로부터 256KB 단위로 갱신 후의 신 데이터를 추출하여, 데이터 비교부(20)에서 대응하는 위치의 구 파일(14)의 선두 위치의 값과 비교한다.
데이터 비교부(20)에서 구획 선두 위치와 구 파일이 대응하는 선두 위치의 값이 일치하면, 일치 데이터 열 검색부(22)가 도 3 및 도 4에 도시한 바와 같이 구 파일의 일치 부분의 검색을 행하여, 「복사 코드」에 값이 최초로 일치하였을 때의 데이터 참조 포인터의 값과 일치 길이를 조합한 차분 데이터를 차분 데이터 출력부(28)에 출력한다.
한편, 처리 대상 구획이 되는 신 데이터에 일치하는 데이터가 구 파일 중에 발견되지 않은 경우에는, 복사 코드 출력부(26)가 「갱신 코드」와 신 데이터의 조합인 차분 데이터를 차분 데이터 출력부(28)에 출력한다.
차분 데이터 출력부(28)는 전송 회선(30)을 통하여 접속되는, 예를 들면 휴대 전화(12) 등의 조립 시스템으로부터의 차분 데이터의 전송 요구를 받아, 휴대 전화(12)에 보존하고 있는 소프트웨어를 갱신하기 위한 차분 데이터를 전송한다. 이 전송 회선(30)은 기지국(10)과 휴대 전화(12)의 예에서는 무선 회선이 된다.
조립 시스템으로서 실현되는 휴대 전화(12)는, 본 발명의 차분 갱신 방법이 적용되는 차분 갱신 장치로서 기능한다. 이 차분 갱신 장치로서 기능하는 휴대 전화(12)에는 차분 데이터 수신부(32), 불휘발성 메모리(34), 복원 처리부(36), 덮어쓰기 처리부(38), 불휘발성 메모리를 이용한 재기록 대상 메모리(40), 워크 메모리(42), 전원 차단에 의한 복구 후에 동작하는 재개 처리부(44)를 더 구비하고 있다. 이 재개 처리부(44)에는 판정부(46), 복원 재개부(48) 및 덮어쓰기 재개부(50)의 기능이 갖추어져 있다.
휴대 전화(12)에 설치한 차분 데이터 수신부(32)는, 기지국(10)에 대하여 재기록 대상 메모리(40)에 보존하고 있는 재기록 대상 데이터의 갱신에 필요한 전체 구획의 차분 데이터의 전송을 요구하여, 전체 구획의 차분 데이터를 수신하여 불휘발성 메모리(34)에 저장한다.
복원 처리부(36)는, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(x)를 불휘발성 메모리(34)에 보존한 후, 해당하는 1구획분의 차분 데이터로부터 구획 데이터를 복원하여, 불휘발성 메모리(34)에 저장한다.
덮어쓰기 처리부(38)는, 현재 처리 중인 구획에 대하여 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(x-1)를 불휘발성 메모리(34)에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 구획 데이터를 불휘발성 메모리(34)로부터 판독하여, 재기록 대상 메모리(40)의 재기록 대상 데이터에 덮어쓰기한다.
이와 같이 본 발명의 차분 갱신 처리가 행해지는 휴대 전화(12)에 있어서는, 차분 데이터에 기초하는 각 구획별 갱신 처리에 있어서, 차분 데이터로부터의 신 데이터의 복원과, 복원한 신 데이터의 재기록 대상 데이터에 대한 덮어쓰기 처리를 분리하고 있으며, 또한 임의의 구획의 복원 처리가 종료한 경우에는 그 구획의 신 데이터의 덮어쓰기는 행하지 않고, 1개 전의 구획으로 복원하고 있는 신 데이터의 덮어쓰기를 행하고 있다.
이와 같이 복원 처리와 덮어쓰기 처리를 분리하고, 또한 복원 처리에 대하여 덮어쓰기 처리를 1구획 늦추고 있는 이유는, 차분 갱신 처리 중에 휴대 전화(12)의 전원이 차단되어 갱신 처리가 중단되고, 그 후에 전원이 복구된 경우에, 전원 차단에 따른 중단 시점부터 처리를 재개할 수 있도록 하기 위함이다.
또한, 전원 차단의 타이밍은 복원 처리와 덮어쓰기 처리를 시간적으로 나누고 있기 때문에, 복원 처리의 도중에 전원이 차단되는 경우와 덮어쓰기 처리의 도중에 전원이 차단되는 경우의 두 가지가 있으며, 각각의 케이스로 나누어 재개 처리부(44)에서 전원 복구 후의 차분 갱신 처리의 재개를 행하게 된다.
이 때문에, 재개 처리부(44)에 설치되어 있는 판정부(46)는, 전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별한다. 이 판정부(46)에 의한 판별은 전원이 차단된 경우의 전원 복구 후에 복원 처리 구획 번호와 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별한다.
도 5는 도 2의 휴대 전화(12)에 있어서의 구분 데이터의 복원 처리 중에 있어서의 복원 처리 구획 번호와 덮어쓰기 처리 구획 번호의 불휘발성 메모리에서의 기술 상태의 설명도이다. 도 5의 (a)는 복원 처리 구획 번호 y이고, 도 5의 (b)의 불휘발성 메모리 차분 데이터 SDi를 이용한 복원 처리 시에는 복원에 앞서 복원 처리 구획 번호 y로 불휘발성 메모리(34)에 (x)를 기술하고 있다. 이 상태에서 차분 데이터 SDi로부터 도 5의 (c)의 워크 메모리 상에 신 데이터 NDi를 복원하고 있다.
이 때, 도 5의 (d)의 덮어쓰기 처리 구획 번호 z는, 도 5의 (e)에 도시하는 불휘발성 메모리 복원 데이터에 있어서의 전전회의 복원 데이터 NDi-2에 대하여 기술된 번호(x-2)뿐이며, 전회 복원된 복원 데이터 NDi-1에 대한 구획 번호는 아직 기술되어 있지 않다.
도 6은 도 5의 신 데이터 NDi의 복원이 종료하여 불휘발성 메모리 저장 중에 있어서의 복원 처리 구획 번호와 덮어쓰기 처리 구획 번호의 기술 상태의 설명도이다. 도 6에서는, 도 6의 (b)의 불휘발성 메모리 차분 데이터 SDi를 이용하여 도 6의 (c)의 워크 메모리 상에 신 데이터 NDi의 복원이 완료된 상태로서, 복원이 완료되면, 도 6의 (e)와 같이 불휘발성 메모리에 복원 데이터 NDi를 저장한다. 이 불휘발성 메모리에 대한 복원 데이터 NDi의 저장에 앞서, 도 5의 (d)와 같이 덮어쓰기 처리 구획 번호 z로서 1개 전의 구획의 번호(x-1)를 불휘발성 메모리에 기술한다.
이러한 도 5 또는 도 6의 각각의 상태에서, 전원이 차단된 경우를 생각한다. 우선, 도 5와 같이 신 데이터 NDi의 복원의 도중에 전원이 차단된 것으로 한다. 이 경우, 불휘발성 메모리에 기술되어 있는 복원 처리 구획 번호 y는 y=X이고, 한편 덮어쓰기 처리 구획 번호 z는 z=x-2로 되어 있다. 따라서, 양자의 차(y-z)를 구하면,
(y-z)=x-(x-2)=2
가 된다. 따라서, 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z의 차가 2 인 경우에는 복원 처리 중에 전원 차단이 일어난 것을 알 수 있다.
한편, 도 6과 같이 복원된 신 데이터 NDi를 불휘발성 메모리에 기입한 후에 덮어쓰기 구획 번호 z에 1개 전의 구획의 번호(x-1)를 기술하고, 그 후에 1개 전의 구획의 복원 데이터에 의한 재기록 대상 메모리의 덮어쓰기를 행하고 있기 때문에, 덮어쓰기 처리 중에 전원이 차단된 경우, 불휘발성 메모리(34)의 복원 처리 구획 번호 y는 y=x이고, 한편 덮어쓰기 처리 구획 번호 z는 z=x-1로 되어 있다. 따라서, 양자의 차를 취하면,
(y-z)=x-(x-1)=1
이 되어, 차가 1인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판단할 수 있다.
다시 도 2를 참조하면, 휴대 전화(12)의 재개 처리부(44)에 설치되어 있는 복원 재개부(48)는, 판정부(46)에 의해 구획 데이터의 복원 처리 중에 전원이 차단되었다고 판단한 경우에, 전원 복구 후에 불휘발성 메모리(34)로부터 판독한 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개한다.
또한, 덮어쓰기 재개부(50)는, 판정부(46)에 의해 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었다고 판단된 경우, 전원 복구 후에 불휘발성 메모리(34)로부터 판독한 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개한다.
이러한 재개 처리부(44)의 기능에 의해, 차분 데이터에 기초하는 차분 갱신 처리의 도중에 휴대 전화(12)의 전원이 차단되고, 그 후에 전원이 복구된 경우에는 전원 차단이 복원 처리 중에 일어나도, 덮어쓰기 처리 중에 일어나도, 전원 복구 후에는 각각의 중단된 구획 위치로부터의 처리를 재개하여 차분 갱신 처리를 계속 할 수 있다.
또한, 본 발명의 차분 갱신 처리에 있어서의 복원 처리부(36)에서는, 구획별로 차분 데이터를 이용하여 신 데이터를 복원한 후, 재기록 대상 메모리의 재기록 대상 데이터, 즉 구 데이터와의 동일 유무를 판단하여, 동일한 경우에는 신구 동일 코드를 불휘발성 메모리에 기입하여 신 데이터의 저장을 스킵하고, 동일하지 않은 경우에만 신 데이터의 불휘발성 메모리에의 기입을 행하는 처리를 병행하고 있다.
도 7 및 도 8은 도 2의 기지국(10)에 있어서의 차분 데이터 생성 처리의 흐름도이다. 여기서, 1개의 구획의 크기를, 예를 들면 256KB로 한다.
S1 : 구 파일을 디스크 등으로부터 판독한다.
S2 : 신 파일로부터 사이즈 256KB의 데이터를 판독하여, 1개의 구획 x(x번째 구획)로서 정의한다.
S3 : 데이터 비교 대상 포인터 P를 구획 x의 선두에, 데이터 참조 포인터 Q를 구 파일의 구획 x의 선두에 상당하는 위치에 설정한다.
S4 : 데이터 비교 대상 포인터 P가 가리키는 값과 데이터 참조 포인터 Q가 가리키는 값을 비교한다.
S5 : S4의 비교에서 값이 동일하면 S8로 진행하고, 그렇지 않으면 S6으로 진행한다.
S6 : 구 파일의 최후미로부터 구획(x-1)의 선두에 상당하는 위치를 향하여, 데이터 비교 대상 포인터가 가리키는 값과 일치하는 개소를 탐색한다.
S7 : 탐색 결과, 일치하는 데이터가 구 파일 중에 발견되었다면 S8로 진행한 다. 발견되지 않으면 S11로 진행한다.
S8 : 데이터 비교 대상 포인터 P와 데이터 참조 포인터 Q의 각각의 포인터의 위치로부터 포인터를 후방으로 1바이트씩 이동시키면서 값을 비교하여, 값의 일치가 몇 바이트 연속해서 발생하는지를 계측한다.
S9 : 값이 일치하지 않게 되었을 때, 최초로 값이 일치하였을 때의 데이터 참조 포인터의 값과 S6에서 계측한 일치 길이를 「복사 코드」로서 차분 데이터에 출력한다.
S10 : 데이터 비교 대상 포인터 P, 데이터 참조 포인터 Q를 마지막에 일치한 데이터의 위치로 이동시켜, S13으로 진행한다.
S11 : S7에서 일치하는 데이터가 구 파일 중에 발견되지 않은 경우로서, 데이터 비교 대상이 가리키는 값은 갱신되어 신규로 나타난 데이터라고 판정된다.
S12 : 갱신 코드와 그 값(갱신 후 데이터)을 차분 데이터로서 출력한다.
S13 : 데이터 비교 대상 포인터 P를 1 바이트 후방으로 이동시킨다.
S14 : S13의 이동 결과, 데이터 비교 대상 포인터 P가 구획 x의 최종 위치에 도달하였으면 S15로 진행하고, 그렇지 않으면 S4로 진행한다.
S15 : 구획 x가 신 파일의 최종 구획인 경우에는 차분 추출 처리를 종료하고, 그렇지 않으면 S16으로 진행한다.
S16 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시켜, S2로 되돌아간다.
도 9 및 도 10은 도 2의 휴대 전화(12)에 있어서의 데이터 갱신 처리의 흐름 도이다. 여기서, x의 초기값을 1로 한다.
S1 : 전체 구획용의 차분 데이터를 외부로부터 전송시켜 수신한다.
S2 : 수신한 차분 데이터를 불휘발성 메모리에 보존한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S5 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S6 : S5에서 판독된 코드가 「복사 코드」이면 S7로 진행하고, 「갱신 코드」이면 S8로 진행한다.
S7 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여, S9로 진행한다.
S8 : 「갱신 코드」가 가리키는 갱신 후 데이터를 워크 메모리에 출력한다.
S9 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S10 : 차분 데이터의 코드 판독 위치가 차분 데이터의 최종인 경우에는 S11로 진행하고, 그렇지 않으면 S5로 되돌아간다.
S11 : 워크 메모리에 복원된 구획 x의 신 데이터와 재기록 대상 메모리 상의 구획 x의 구 데이터를 비교하여, 동일하면 S12로 진행하고, 그렇지 않으면 S13으로 진행한다.
S12 : 불휘발성 메모리에 구획 x는 신구 동일한 데이터임을 나타내는 신구 동일 코드를 기술하고, S14로 진행한다.
S13 : 워크 메모리에 복원된 구획 x의 신 데이터를 불휘발성 메모리에 저장 한다.
S14 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S15 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 신구 동일 코드가 기술되어 있던 경우에는 S17로 진행하고, 그렇지 않으면 S16으로 진행한다.
S16 : 불휘발성 메모리에 복원된 구획(x-1)의 신 데이터를 내부 메모리에 저장된 구 데이터의 (x-1)구획에 덮어쓰기한다.
S17 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S18 : 모든 구획의 복원이 종료된 경우에는, S19로 진행하고, 그렇지 않으면 S3으로 되돌아간다.
S19 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
이 데이터 갱신 처리 시에는, 단계 S1, S2의 처리에 의해 모든 구획의 차분 데이터를 최초로 불휘발성 메모리에 보존함으로써, 갱신 처리 중의 전원 차단에 의해 외부로부터 차분 데이터를 수신할 수 없게 되는 문제를 해소한다. 또한, 단계 S3의 복원 처리 구획 번호의 불휘발성 메모리에의 기술과 단계 S14의 덮어쓰기 처리 구획 번호의 불휘발성 메모리에의 기술에 의해, 전원 차단에 의해 갱신 처리가 끊긴 경우라도, 전원 복구 후에 도중의 구획부터 갱신 처리를 재개 가능하게 하고 있다.
또한, 단계 S13의 복원된 구획의 신 데이터의 불휘발성 메모리에 대한 저장 에 의해, 복원된 구획의 신 데이터가 전원 차단에 의해 소멸하는 문제를 해소하고 있다. 또한, 단계 S11, S12의 처리에 의해, 복원된 신 데이터와 구 데이터를 비교하여, 동일한 경우에는 신구 동일 코드를 불휘발성 메모리에 기입하여 복원된 신 데이터의 기입을 생략함으로써, 덮어쓰기 처리에 의한 처리 시간의 증가를 방지하고 있다.
도 11 및 도 12는 도 2의 휴대 전화(12)에서의 데이터 갱신 처리의 도중에 전원이 차단되어, 전원 복구 후에 갱신 처리를 도중부터 재개하는 처리의 흐름도이다. 이 처리는 도 9의 단계 S1, S2의 처리가 단계 S101∼S104의 처리로 자동적으로 전환된 것으로, 단계 S3∼S19는 도 9 및 도 10의 데이터 갱신 처리와 동일하게 된다.
S101 : 불휘발성 메모리로부터 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z를 판독한다.
S102 : 복원 처리 구획 번호와 덮어쓰기 처리 구획 번호의 차가 1이면, 덮어쓰기 처리 중의 전원 차단이라고 판단하여 S104로 진행하고, 차가 2이면 복원 처리 중의 전원 차단이라고 판단하여 S103으로 진행한다.
S103 : x=y로서 S3으로 진행한다.
S104 : x=z+1로서 S15로 진행한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S5 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S6 : S5에서 판독된 코드가 「복사 코드」이면 S7로 진행하고, 「갱신 코드」이면 S8로 진행한다.
S7 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여, S9로 진행한다.
S8 : 갱신 코드가 지시하는 갱신 후 데이터를 워크 메모리에 출력한다.
S9 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S10 : 차분 데이터의 코드 판독 위치가 차분 데이터의 최종인 경우에는 S11로 진행하고, 그렇지 않으면 S5로 되돌아간다.
S11 : 워크 메모리에 복원된 구획 x의 신 데이터와 재기록 대상 메모리 상의 구획 x의 구 데이터를 비교하여, 동일하면 S12로 진행하고, 그렇지 않으면 S13으로 진행한다.
S12 : 불휘발성 메모리에 구획 x는 신구 동일한 데이터임을 나타내는 신구 동일 코드를 기술하고, S14로 진행한다.
S13 : 워크 메모리에 복원된 구획 x의 신 데이터를 불휘발성 메모리에 저장한다.
S14 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S15 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 신구 동일 코드가 기술되어 있던 경우에는 S17로 진행하고, 그렇지 않으면 S16으로 진행한다.
S16 : 불휘발성 메모리에 복원된 구획(x-1)의 신 데이터를 내부 메모리에 저 장된 구 데이터의 (x-1)구획에 덮어쓰기한다.
S17 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S18 : 모든 구획의 복원이 종료된 경우에는 S19로 진행하고, 그렇지 않으면 S3으로 되돌아간다.
S19 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
이 전원 복구 후에 재개하는 갱신 처리 시에, 단계 S101∼S104의 처리에 의해 전원 복귀 후의 처리 개시 위치가 복원 처리가 덮어쓰기 처리인지를 판정하여, 데이터 갱신 처리의 속행을 가능하게 하고 있다.
도 13은 본 발명에 따른 차분 갱신 처리 방법의 제2 실시예가 적용되는 블록도이다. 이 실시예에서는 기지국(10)측에서의 차분 데이터 생성 처리 시에, 신 파일(16)로부터 구획 절단부(18)에서 추출한 일정 사이즈, 예를 들면 256KB의 데이터를 n개의 블록 데이터로 블록 분할부(52)에서 더 분할하여, 각 블록별 처리에 의해 차분 데이터를 생성하도록 한 것을 특징으로 한다.
이 기지국(10) 측에서의 1구분을 n블록으로 분할한 블록 데이터에 대응한 차분 데이터의 생성에 대응하고, 휴대 전화(12)측의 복원 처리부(36)에도, 각 구분별 차분 데이터를 이용한 복원 처리 시에, n개로 분할된 차분 블록 데이터에 기초한 신 데이터의 복원을 행하도록 하고 있다. 또, 그 이외의 구성은 도 2의 제1 실시예와 동일하다.
도 14 및 도 15는 도 13의 기지국(10)에 있어서의 차분 데이터 생성 처리의 흐름도이다. 또, 이 처리에서는 1개의 구획의 크기를, 예를 들면 256KB로 한다.
S1 : 구 파일을 디스크 등으로부터 판독한다.
S2 : 신 파일로부터 사이즈 256KB의 데이터를 판독하여, 1개의 구획 x(x번째 구획)로서 정의한다.
S3 : 데이터 비교 대상 포인터 P를 구획 x의 선두에, 데이터 참조 포인터 Q를 구 파일의 구획 x의 선두에 상당하는 위치에 설정한다.
S4 : 데이터 비교 대상 포인터 P가 가리키는 값과 데이터 참조 포인터 Q가 가리키는 값을 비교한다.
S5 : S4의 비교에서 값이 동일하면 S8로 진행하고, 그렇지 않으면 S6으로 진행한다.
S6 : 구 파일의 최후미로부터 구획(x-1)의 선두에 상당하는 위치를 향하여, 데이터 비교 대상 포인터 P가 가리키는 값과 일치하는 개소를 탐색한다.
S7 : 탐색 결과, 일치하는 데이터가 구 파일 중에 발견되었다면 S8로 진행하고, 발견되지 않으면 S11로 진행한다.
S8 : 데이터 비교 대상 포인터 P와 데이터 참조 포인터 Q의 각각의 포인터의 위치로부터 포인터를 후방으로 1바이트씩 이동시키면서 값을 비교하여, 값의 일치가 몇 바이트 연속해서 발생하는지를 계측한다.
S9 : 값이 일치하지 않게 되었을 때, 최초로 값이 일치하였을 때의 데이터 참조 포인터 Q의 값과 S6에서 계측한 일치 길이를 「복사 코드」로서 차분 데이터에 출력한다.
S10 : 데이터 비교 대상 포인터 P를 데이터 참조 포인터 Q가 마지막에 일치한 데이터의 위치로 이동시켜, S13으로 진행한다.
S11 : 일치하는 데이터가 구 파일 중에 발견되지 않은 경우로서, 데이터 비교 대상이 가리키는 값은 갱신되어 신규로 나타난 데이터라고 판정된다.
S12 : 「갱신 코드」와 그 값(갱신 후 데이터)을 차분 데이터로서 출력한다.
S13 : 데이터 비교 대상 포인터 P를 1바이트 후방으로 이동시킨다.
S14 : S13의 이동 결과, 포인터가 구획 x의 최종 위치에 도달하였으면 S15로 진행하고, 그렇지 않으면 S4로 되돌아간다.
S15 : 구획 x를 n 등분하여 n개의 블록으로 분할한다.
S16 : m번째 블록에서, 신구 데이터의 내용을 비교하여, 신구 동일하면 S17로 진행하고, 그렇지 않으면 S18로 진행한다.
S17 : m번째 블록의 내용이 신구 동일함을 나타내는 신구 동일 코드를 구획 x용의 차분 데이터에 부가한다.
S18 : m번째 블록은 구획 x의 최종 블록인 경우에 S20으로 진행하고, 그렇지 않으면 S19로 진행한다.
S19 : m의 값을 1 증가시켜 S16으로 되돌아간다.
S20 : 구획 x가 신 파일의 최종 구획인 경우에는 차분 추출 처리를 종료하고, 그렇지 않으면 S21로 진행한다.
S21 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1증가시켜, S2로 되돌아간다.
이 차분 데이터 생성 처리 시에, 단계 S1∼S19의 처리에 의해, 각 구획에 대해 n개로 분할한 블록 데이터와 구 파일의 블록 데이터를 비교하여, 일치하는 경우에는 신구 동일 코드를 차분 데이터에 부가해 둠으로써, 조립 시스템이 되는 휴대 전화(12)측에서의 갱신 처리 시의 블록 단위로 복원한 신 데이터와 구 데이터를 비교하는 처리를 생략하고, 그 만큼, 갱신 처리 시간을 단축할 수 있다.
도 16 및 도 17은 도 13의 휴대 전화에 있어서의 데이터 갱신 처리의 흐름도이다. 또, x의 초기값을 1로 한다.
S1 : 전체 구획용의 차분 데이터를 외부로부터 전송하여 수신한다.
S2 : 수신한 차분 데이터를 불휘발성 메모리에 보존한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터에 블록 m이 신구 동일하다는 취지의 신구 동일 코드가 부가되어 있으면 S5로 진행하고, 그렇지 않으면 S6으로 진행한다.
S5 : 구획 x 블록 m이 신구 동일하다는 취지의 신구 동일 코드를 불휘발성 메모리에 기입하여 기억시켜, S14로 진행한다.
S6 : 구획 x 블록 m용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S7 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S8 : S7에서 판독된 코드가 「복사 코드」이면 S9로 진행하고, 「갱신 코드」이면 S10으로 진행한다.
S9 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여 S11로 진행한다.
S10 : 「갱신 코드」가 가리키는 갱신 후 데이터를 워크 메모리에 출력한다.
S11 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S12 : 차분 데이터의 코드 판독 위치가 블록 m의 차분 데이터의 최종인 경우에는 S13으로 진행하고, 그렇지 않으면 S7로 되돌아간다.
S13 : 워크 메모리에 복원된 구획 x 블록 m의 데이터를 불휘발성 메모리에 저장한다.
S14 : m의 값을 1 증가시킨다.
S15 : 구획 x의 최종 블록까지 처리를 완료한 경우에는 S16으로 진행하고, 그렇지 않으면 S4로 되돌아간다.
S16 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S17 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 블록 m에 대하여 신구 동일 데이터라는 취지의 신구 동일 코드가 기술되어 있던 경우에는 S19로 진행하고, 그렇지 않으면 S18로 진행한다.
S18 : 불휘발성 메모리에 복원된 구획(x-1), 블록 m의 신 데이터를 내부 메모리에 저장된 구 데이터의 구획(x-1), 블록 m에 덮어쓰기한다.
S19 : m의 값을 1 증가시킨다.
S20 : 구획(x-1)의 최종 블록까지 전부 덮어쓰기 처리가 완료되어 있으면 S21로 진행하고, 그렇지 않으면 S17로 진행한다.
S21 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S22 : 모든 구획의 복원이 종료하고 있었던 경우에는 S23으로 진행하고, 그 렇지 않으면 S3으로 되돌아간다.
S23 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
이러한 휴대 전화(12)에 있어서의 데이터 갱신 처리 시에, 단계 S1, S2의 처리에 의해 모든 구획의 차분 데이터를 최초로 불휘발성 메모리에 보존함으로써, 갱신 처리 중의 전원 차단에 의해 외부로부터 데이터를 두 번 다시 수신할 수 없게 되는 문제를 해소한다.
또한, 단계 S3에서의 불휘발성 메모리에 대한 복원 처리 구획 번호의 기술과, 단계 S16에서의 불휘발성 메모리에 대한 덮어쓰기 처리 구획 번호의 기술에 의해, 전원 차단에 의해 갱신 처리가 끊긴 경우라도, 전원 복귀 후에 도중의 구획으로부터 갱신 처리를 재개할 수 있다.
또한, 단계 S3에서 복원된 구획의 블록 데이터의 불휘발성 메모리에의 기입에 의해, 전원 차단에 의해 복원된 블록 데이터가 소멸하는 문제를 해소한다. 또한, 단계 S4에서의 신구 동일 코드가 있었던 경우의 불휘발성 메모리에의 기입의 스킵, 단계 S17에서의 동일하게 신구 동일 코드가 기술되어 있던 경우의 기입 대상 데이터에의 덮어쓰기의 스킵에 의해, 덮어쓰기 처리에 의한 처리 시간의 증가를 방지할 수 있다.
도 18 및 도 19는 도 13의 휴대 전화(12)로 데이터 갱신 처리의 도중에 전원이 차단되어, 전원 복귀 후에 갱신 처리를 도중부터 재개하는 경우의 흐름도이다. 이 처리는 도 12의 단계 S1, S2의 처리가 단계 S101∼S104의 처리로 자동적으로 전 환된 것으로, 단계 S3∼S23은 도 12의 데이터 갱신 처리와 동일하게 된다.
S101 : 불휘발성 메모리로부터 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z를 판독한다.
S102 : 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z의 차가 1이면 덮어쓰기 처리 중의 전원 차단이라고 판단하여 S104로 진행하고, 차가 2이면 복원 처리 중의 전원 차단이라고 판단하여 S103으로 진행한다.
S103 : x=y로서 S3으로 진행한다.
S104 : x=z+1로서 S17로 진행한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터에 블록 m이 신구 동일하다는 취지의 신구 동일 코드가 부가되어 있으면 S5로 진행하고, 그렇지 않으면 S6으로 진행한다.
S5 : 구획 x 블록 m이 신구 동일하다는 취지의 신구 동일 코드를 불휘발성 메모리에 기입하여 기억시켜, S14로 진행한다.
S6 : 구획 x 블록 m용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S7 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S8 : S7에서 판독된 코드가 「복사 코드」이면 S9로 진행하고, 「갱신 코드」이면 S10으로 진행한다.
S9 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여, S11로 진행한다.
S10 : 「갱신 코드」가 가리키는 갱신 후 데이터를 워크 메모리에 출력한다.
S11 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S12 : 차분 데이터의 코드 판독 위치가 블록 m의 차분 데이터의 최종인 경우에는 S13으로 진행하고, 그렇지 않으면 S7로 되돌아간다.
S13 : 워크 메모리에 복원된 구획 x, 블록 m의 데이터를 불휘발성 메모리에 저장한다.
S14 : m의 값을 1 증가시킨다.
S15 : 구획 x의 최종 블록까지 처리를 완료한 경우에는 S16으로 진행하고, 그렇지 않으면 S4로 되돌아간다.
S16 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S17 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 블록 m에 대하여 신구 동일 데이터라는 취지의 신구 동일 코드가 기술되어 있던 경우에는 S19로 진행하고, 그렇지 않으면 S18로 진행한다.
S18 : 불휘발성 메모리에 복원된 구획(x-1), 블록 m의 신 데이터를 내부 메모리에 저장된 구 데이터의 구획(x-1), 블록 m에 덮어쓰기한다.
S19 : m의 값을 1 증가시킨다.
S20 : 구획(x-1)의 최종 블록까지 전부 덮어쓰기 처리가 완료되어 있으면 S21로 진행하고, 그렇지 않으면 S17로 진행한다.
S21 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S22 : 모든 구획의 복원이 종료된 경우에는 S23으로 진행하고, 그렇지 않으면 S3으로 되돌아간다.
S23 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
이러한 전원 복귀 후의 데이터 갱신 처리 시에, 단계 S101∼S104의 처리에 의해 전원 복귀 후의 처리 재개 위치가 갱신 처리가 덮어쓰기 처리인지를 판정하여, 데이터 갱신 처리를 속행할 수 있다.
도 20 및 도 21은 도 2의 휴대 단말기(12)에 있어서의 데이터 갱신 처리의 다른 실시예의 흐름도로서, 이 실시예는 1구획분의 데이터 복원 처리가 완료한 단계에서 n개의 블록으로 분할하고, 블록 단위로 신구 데이터가 동일한지를 비교하여, 동일하면 그 취지를 나타내는 신구 동일 코드를 신 블록 데이터 대신에 불휘발성 메모리에 기억하도록 한 것을 특징으로 한다. 여기서, x의 초기값을 1로 한다.
S1 : 전체 구획용의 차분 데이터를 외부로부터 전송시켜 수신한다.
S2 : 수신한 차분 데이터를 불휘발성 메모리에 보존한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S5 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S6 : S5에서 판독된 코드가 「복사 코드」이면 S7로 진행하고, 「갱신 코드」이면 S8로 진행한다.
S7 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여, S9로 진행한다.
S8 : 「갱신 코드」가 가리키는 갱신 후 데이터를 워크 메모리에 출력한다.
S9 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S10 : 차분 데이터의 코드 판독 위치가 차분 데이터의 최종인 경우에는 S11로 진행하고, 그렇지 않으면 S5로 되돌아간다.
S11 : 구획 x를 n 등분하여 n개의 블록으로 분할한다.
S12 : m번째 블록에 있어서, 신구 데이터의 내용을 비교하여, 신구 동일하면 S13으로 진행하고, 그렇지 않으면 S14로 진행한다.
S13 : m번째 블록의 내용이 신구 동일함을 나타내는 신구 동일 코드를 불휘발성 메모리의 구획 x에 기술한다.
S14 : 워크 메모리에 복원된 m번째 블록의 신 데이터를 불휘발성 메모리에 저장한다.
S15 : m번째 블록은 구획 x의 최종 블록인 경우에는 S17로 진행하고, 그렇지 않으면 S16으로 진행한다.
S16 : m의 값을 1 증가시키서 S12로 되돌아간다.
S17 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S18 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 블록 m에 대하여 신구 동일 데이터라는 취지의 신구 동일 코드가 기술되어 있던 경우에는 S20으로 진행하고, 그렇지 않으면 S19로 진행한다.
S19 : 불휘발성 메모리에 복원된 구획(x-1), 블록 m의 신 데이터를 내부 메모리에 저장된 구 데이터의 구획(x-1), 블록 m에 덮어쓰기한다.
S20 : m의 값을 1 증가시킨다.
S21 : 구획(x-1)의 최종 블록까지 전부 덮어쓰기 처리가 완료되어 있으면 S22로 진행하고, 그렇지 않으면 S18로 되돌아간다.
S22 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S23 : 모든 구획의 복원이 종료하고 있었던 경우에는 S24로 진행하고, 그렇지 않으면 S3으로 되돌아간다.
S24 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
도 22 및 도 23은 도 20 및 도 21의 데이터 갱신 처리의 도중에 전원이 차단되고, 전원 복귀 후에 갱신 처리를 도중에 재개하는 경우의 흐름도이다. 이 처리는 도 20의 단계 S1, S2의 처리가 단계 S101∼S104의 처리로 자동적으로 전환된 것으로, 단계 S3∼S24는 도 20 및 도 21의 데이터 갱신 처리와 동일하게 된다.
S101 : 불휘발성 메모리로부터 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z를 판독한다.
S102 : 복원 처리 구획 번호 y와 덮어쓰기 처리 구획 번호 z의 차가 1이면 덮어쓰기 처리 중의 전원 차단이라고 판단하여 S104로 진행하고, 차가 2이면 복원 처리 중의 전원 차단이라고 판단하여 S103으로 진행한다.
S103 : x=y로서 S3으로 진행한다.
S104 : x=z+1로서 S17로 진행한다.
S3 : 불휘발성 메모리에 복원 처리 구획 번호로서 값 x를 기술한다.
S4 : 구획 x용의 차분 데이터를 불휘발성 메모리로부터 판독한다.
S5 : 전송된 차분 데이터로부터 코드를 1개 판독한다.
S6 : S5에서 판독된 코드가 「복사 코드」이면 S7로 진행하고, 「갱신 코드」이면 S8로 진행한다.
S7 : 「복사 코드」가 가리키는 구 데이터의 참조 위치로부터 「복사 코드」가 가리키는 복사 길이분의 데이터를 워크 메모리에 출력하여, S9로 진행한다.
S8 : 「갱신 코드」가 가리키는 갱신 후 데이터를 워크 메모리에 출력한다.
S9 : 차분 데이터의 코드 판독 위치를 하나 후방으로 이동시킨다.
S10 : 차분 데이터의 코드 판독 위치가 차분 데이터의 최종인 경우에는 S11로 진행하고, 그렇지 않으면 S5로 되돌아간다.
S11 : 구획 x를 n 등분하여 n개의 블록으로 분할한다.
S12 : m번째 블록에 있어서, 신구 데이터의 내용을 비교하여, 신구 동일하면 S13으로 진행하고, 그렇지 않으면 S14로 진행한다.
S13 : m번째 블록의 내용이 신구 동일함을 나타내는 신구 동일 코드를 불휘발성 메모리의 구획 x에 기술한다.
S14 : 워크 메모리에 복원된 m번째 블록의 신 데이터를 불휘발성 메모리에 저장한다.
S15 : m번째 블록은 구획 x의 최종 블록인 경우에는 S17로 진행하고, 그렇지 않으면 S16으로 진행한다.
S16 : m의 값을 1 증가시켜서 S12로 되돌아간다.
S17 : 불휘발성 메모리에 덮어쓰기 처리 구획 번호로서 값(x-1)을 기술한다.
S18 : 구획(x-1)의 데이터가 저장된 불휘발성 메모리의 내용을 판독하여, 블록 m에 대하여 신구 동일 데이터라는 취지의 신구 동일 코드가 기술되어 있던 경우에는 S20으로 진행하고, 그렇지 않으면 S19로 진행한다.
S19 : 불휘발성 메모리에 복원된 구획(x-1), 블록 m의 신 데이터를 내부 메모리에 저장된 구 데이터의 구획(x-1), 블록 m에 덮어쓰기한다.
S20 : m의 값을 1 증가시킨다.
S21 : 구획(x-1)의 최종 블록까지 전부 덮어쓰기 처리가 완료되어 있으면 S22로 진행하고, 그렇지 않으면 S18로 되돌아간다.
S22 : 다음의 구획을 판독 대상으로 하기 위해서 x를 1 증가시킨다.
S23 : 모든 구획의 복원이 종료된 경우에는 S24로 진행하고, 그렇지 않으면 S3으로 되돌아간다.
S24 : 불휘발성 메모리에 복원된 최종 구획의 신 데이터를 내부 메모리에 저장된 구 데이터의 최종 구획에 덮어쓰기한다.
또, 상기한 실시예는 기지국에서 차분 데이터를 생성하여 조립 시스템으로서의 휴대 전화에 전송하여 차분 갱신 처리를 행하는 경우를 예로 들고 있지만, 본 발명은 이에 한정되지 않고, 적절한 송신측의 장치로부터 조립 시스템을 구비한 장치에 차분 데이터를 전송하여 재기록 대상 데이터의 차분 갱신을 행하는 경우를 포함한다.
또한, 본 발명은 그 목적과 이점의 손상없이 적절한 변형을 포함하고, 또한 상기한 실시예에 설명한 수치에 의한 한정은 받지 않는다.
여기서, 본 발명의 특징을 열거하면 다음과 같이 된다.
(부기)
(부기 1)
차분 데이터 수신부에 의해, 신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
복원 처리부에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계를 포함한 것을 특징으로 하는 차분 갱신 방법.
(부기 2)
부기 1에 기재된 차분 갱신 방법에 있어서, 상기 차분 데이터 수신 단계는, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 생성된 구획별 차분 데이터를 수신하는 것을 특징으로 하는 차분 갱신 방법.
(부기 3)
부기 1에 기재된 차분 갱신 방법에 있어서,
판정부에 의해, 전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
복원 재개부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
덮어쓰기 재개부에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계를 더 포함한 것을 특징으로 하는 차분 갱신 방법.
(부기 4)
부기 3에 기재된 차분 갱신 방법에 있어서, 상기 판별 단계는, 전원이 차단된 경우의 전원 복구 후에, 상기 복원 처리 구획 번호와 상기 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별하는 것을 특징으로 하는 차분 갱신 방법.
(부기 5)
부기 1에 기재된 차분 갱신 방법에 있어서, 상기 복원 처리 단계는, 1구획분의 차분 데이터로부터 복원된 복원 구분 데이터와, 재기록 대상 데이터의 해당 구획 데이터의 내용이 동일한지의 여부를 판단하여, 동일한 경우에는 상기 복원 구분 데이터 대신에 상기 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 구분 데이터의 덮어쓰기를 스킵하는 것을 특징으로 하는 차분 갱신 방법.
(부기 6)
부기 1에 기재된 차분 갱신 방법에 있어서, 상기 복원 처리 단계는, 1구획분의 차분 데이터로부터 복원된 복원 구획 데이터를 n개의 복원 블록 데이터로 더 등분하여, 각 블록 단위로 복원 블록 데이터와 재기록 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 복원 블록 데이터 대신에 상기 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 블록 데이터 덮어쓰기를 스킵하는 것을 특징으로 하는 차분 갱신 방법.
(부기 7)
차분 데이터 수신부에 의해, 신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최 후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
복원 처리부에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하고 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계를 포함한 것을 특징으로 하는 차분 갱신 방법.
(부기 8)
부기 7에 기재된 차분 갱신 방법에 있어서,
판정부에 의해, 전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
복원 재개부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
덮어쓰기 처리부에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계를 더 포함한 것을 특징으로 하는 차분 갱신 방법.
(부기 9)
부기 7에 기재된 차분 갱신 방법에 있어서,
상기 복원 처리 단계는, 상기 차분 블록 데이터에 신구 동일함이 기술되어 있는 경우에, 차분 블록 데이터에 기초하는 복원 처리를 스킵하여 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 블록 데이터 덮어쓰기를 스킵하는 것을 특징으로 하는 차분 갱신 방법.
(부기 10)
컴퓨터에,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계를 실행시키는 것을 특징으로 하는 프로그램.
(부기 11)
부기 10에 기재된 프로그램에 있어서, 상기 차분 데이터 수신 단계는, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 생성된 구획별 차분 데이터를 수신하는 것을 특징으로 하는 프로그램.
(부기 12)
부기 10에 기재된 프로그램에 있어서,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계를 더 구비한 것을 특징으로 하는 프로그램.
(부기 13)
부기 12에 기재된 프로그램에 있어서, 상기 판별 단계는 전원이 차단된 경우의 전원 복구 후에, 상기 복원 처리 구획 번호와 상기 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별하는 것을 특징으로 하는 프로그램.
(부기 14)
부기 10에 기재된 프로그램에 있어서, 상기 복원 처리 단계는, 1구획분의 차분 데이터로부터 복원된 복원 구분 데이터와, 재기록 대상 데이터의 해당 구획 데이터의 내용이 동일한지의 여부를 판단하여, 동일한 경우에는 상기 복원 구분 데이터 대신에 상기 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 구분 데이터의 덮어쓰기를 스킵하는 것을 특징으로 하는 프로그램.
(부기 15)
부기 10에 기재된 프로그램에 있어서,
상기 복원 처리 단계는, 1구획분의 차분 데이터로부터 복원된 복원 구획 데이터를 n개의 복원 블록 데이터로 더 등분하여, 각 블록 단위로 복원 블록 데이터와 재기록 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 복원 블록 데이터 대신에 상기 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 블록 데이터 덮어쓰기를 스킵하는 것을 특징으로 하는 프로그램.
(부기 16)
컴퓨터에,
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치로부터 보다 1구획분 더 전방의 위치 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하 여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계를 구비한 것을 특징으로 하는 프로그램.
(부기 17)
부기 16에 기재된 프로그램에 있어서, 상기 차분 데이터 수신 단계는, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 수신하는 것을 특징으로 하는 프로그램.
(부기 18)
부기 16에 기재된 프로그램에 있어서,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계를 더 구비한 것을 특징으로 하는 프로그램.
(부기 19)
부기 18에 기재된 프로그램에 있어서, 상기 판별 단계는, 전원이 차단된 경우의 전원 복구 후에, 상기 복원 처리 구획 번호와 상기 덮어쓰기 처리 구획 번호와의 차를 산출하여, 차가 1인 경우에는 복원 처리 중의 전원 차단이라고 판별하고, 차가 2인 경우에는 덮어쓰기 처리 중의 전원 차단이라고 판별하는 것을 특징으로 하는 프로그램.
(부기 20)
부기 16에 기재된 프로그램에 있어서,
상기 복원 처리 단계는, 상기 차분 블록 데이터에 신구 동일함이 기술되어 있는 경우에, 차분 블록 데이터에 기초하는 복원 처리를 스킵하여 불휘발성 메모리에 신구 동일함을 기술하고,
상기 덮어쓰기 처리 단계는, 상기 불휘발성 메모리에 신구 동일함이 기술되어 있는 경우에, 복원 블록 데이터 덮어쓰기를 스킵하는 것을 특징으로 하는 프로그램.
(부기 21)
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치 또는 상기 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신부와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리부와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리부와,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판정부와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개부와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개부를 구비한 것을 특징으로 하는 차분 갱신 장치.
(부기 22)
신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치 또는 상기 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 또한 1구획분의 신구 파일 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신부와,
현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리부와,
1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리부와,
전원이 차단된 경우의 전원 복구 후에, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판정부와,
구획 데이터의 복원 처리 중에 전원이 차단된 경우에는 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개부와,
구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개부를 구비한 것을 특징으로 하는 차분 갱신 장치.
이상 설명한 바와 같이 본 발명에 따르면, 휴대 전화 등의 조립형 시스템 상에서의 분할 차분 갱신 처리에 있어서의 처리 순서 중 각 구획의 차분 데이터로부터의 갱신 처리의 처리 중에 전원이 차단된 경우라도, 전원 복귀 후에 그 구획으로부터 갱신 처리를 재개할 수 있다.
또한, 데이터 복원 중의 전원 차단 시라도, 구 데이터에 대한 덮어쓰기 처리 중의 전원 차단이라도, 전원 복구 후에 차단된 처리를 판별하여 차단 전의 처리부터 속행할 수 있어, 불필요한 복원 처리나 덮어쓰기 처리를 행하지 않고 차분 갱신 처리를 재개할 수 있다.
또한, 각 구획의 차분 데이터로부터 복원한 신 데이터가 재기록 대상이 되는 구 데이터와 동일한 경우, 신 데이터의 불휘발성 메모리에의 기입 및 구 데이터가 저장되어 있는 재기록 대상 메모리에의 덮어쓰기를 불요로 하여, 처리를 행할 필요가 없는 경우에 대해서는 아무것도 하지 않고 처리를 스킵함으로써, 차분 갱신 처리에 있어서의 처리 시간을 단축할 수 있다.

Claims (5)

  1. 차분 데이터 수신부에 의해, 신구(新舊) 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
    복원 처리부에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
    덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
    를 포함한 것을 특징으로 하는 차분 갱신 방법.
  2. 제1항에 있어서,
    차분 데이터 수신 단계 후의, 구획 데이터의 복원 처리 단계 또는 구획 데이터의 덮어쓰기 처리 단계 중 어느 하나의 처리 중에 전원이 차단된 경우의 전원 복구 후에, 판정부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
    복원 재개부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
    덮어쓰기 재개부에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
    를 더 포함한 것을 특징으로 하는 차분 갱신 방법.
  3. 차분 데이터 수신부에 의해, 신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별 차분 데이터를 생성하고, 1구획분의 신구 데이터를 n개의 블록으로 더 등분하여, 각 블록 단위로 신 파일 블록 데이터와 구 파일 데이터가 동일한지의 여부를 판단하여, 동일한 경우에는 상기 차분 블록 데이터 대신에 신구 동일함이 기술된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
    복원 처리부에 의해, 현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터에 대해 n 분할된 블록 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
    덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구 획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터에 대해 n 분할된 복원 블록 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
    를 포함한 것을 특징으로 하는 차분 갱신 방법.
  4. 제3항에 있어서,
    차분 데이터 수신 단계 후의, 구획 데이터의 복원 처리 단계 또는 구획 데이터의 덮어쓰기 처리 단계 중 어느 하나의 처리 중에 전원이 차단된 경우의 전원 복구 후에, 판정부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단되었는지, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단되었는지를 판별하는 판별 단계와,
    복원 재개부에 의해, 구획 데이터의 복원 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 복원 처리 구획 번호의 구획의 선두로부터 복원 처리를 재개하는 복원 재개 단계와,
    덮어쓰기 처리부에 의해, 구획 데이터의 덮어쓰기 처리 중에 전원이 차단된 경우에는, 전원 복구 후에 상기 불휘발성 메모리로부터 판독한 상기 덮어쓰기 처리 구획 번호의 선두로부터 덮어쓰기 처리를 재개하는 덮어쓰기 재개 단계
    를 더 포함한 것을 특징으로 하는 차분 갱신 방법.
  5. 컴퓨터에,
    신구 2개의 파일에 대하여, 신 파일을 동일 사이즈의 복수 구획으로 분할하고, 각 구획 내의 데이터 열과 일치하는 데이터 열을 구 파일의 대상 구획의 개시 위치보다 1구획분 더 전방의 위치로부터 구 파일의 최후미까지의 범위에서 탐색하여 구획별로 생성된 차분 데이터를 전체 구획분 수신하여 불휘발성 메모리에 저장하는 차분 데이터 수신 단계와,
    현재의 처리 구획을 나타내는 복원 처리 구획 번호(X)를 상기 불휘발성 메모리에 보존한 후에, 1구획분의 차분 데이터로부터 구획 데이터를 복원하여 상기 불휘발성 메모리에 저장하는 복원 처리 단계와,
    덮어쓰기 처리부에 의해, 1개 전의 처리 구획을 나타내는 덮어쓰기 처리 구획 번호(X-1)를 상기 불휘발성 메모리에 보존한 후에, 1개 전의 구획으로 복원되어 있는 복원 데이터를 상기 불휘발성 메모리로부터 판독하여 불휘발성 메모리의 재기록 대상 데이터에 덮어쓰기하는 덮어쓰기 처리 단계
    를 실행시키는 것을 특징으로 하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
KR1020030091272A 2002-12-16 2003-12-15 차분 갱신 방법, 기록 매체 및 장치 KR100970064B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00363362 2002-12-16
JP2002363362A JP4302970B2 (ja) 2002-12-16 2002-12-16 差分更新方法、プログラム及び装置

Publications (2)

Publication Number Publication Date
KR20040055602A KR20040055602A (ko) 2004-06-26
KR100970064B1 true KR100970064B1 (ko) 2010-07-16

Family

ID=32376201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030091272A KR100970064B1 (ko) 2002-12-16 2003-12-15 차분 갱신 방법, 기록 매체 및 장치

Country Status (4)

Country Link
US (1) US7222137B2 (ko)
EP (1) EP1431874A3 (ko)
JP (1) JP4302970B2 (ko)
KR (1) KR100970064B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7756826B2 (en) * 2006-06-30 2010-07-13 Citrix Systems, Inc. Method and systems for efficient delivery of previously stored content
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US7949824B2 (en) * 2006-04-11 2011-05-24 Emc Corporation Efficient data storage using two level delta resemblance
US7844652B2 (en) * 2006-04-11 2010-11-30 Emc Corporation Efficient computation of sketches
US7562186B2 (en) * 2006-04-11 2009-07-14 Data Domain, Inc. Efficient data storage using resemblance of data segments
JP4235236B2 (ja) * 2006-09-12 2009-03-11 東芝テック株式会社 無線通信装置
JP5224800B2 (ja) * 2007-12-21 2013-07-03 株式会社東芝 情報処理装置およびデータ復旧方法
US8112664B2 (en) * 2008-03-26 2012-02-07 Symantec Operating Corporation Using volume snapshots to prevent file corruption in failed restore operations
JP2010146257A (ja) * 2008-12-18 2010-07-01 Fujitsu Ten Ltd 情報処理装置、プログラム更新方法および情報処理システム
US8255366B1 (en) * 2009-03-25 2012-08-28 Symantec Corporation Segment-based method for efficient file restoration
US8504759B2 (en) * 2009-05-26 2013-08-06 Micron Technology, Inc. Method and devices for controlling power loss
JP5346253B2 (ja) 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
US8806263B2 (en) * 2011-08-26 2014-08-12 Micron Technology, Inc. Methods and apparatuses including a global timing generator and local control circuits
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP6637398B2 (ja) * 2016-09-23 2020-01-29 ルネサスエレクトロニクス株式会社 判定装置及び判定方法
KR102259256B1 (ko) * 2017-05-16 2021-06-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10795585B2 (en) * 2018-06-22 2020-10-06 Intel Corporation Nonvolatile memory store suppresion
CN111176704B (zh) * 2018-11-09 2022-08-23 中移(杭州)信息技术有限公司 一种差分包文件生成方法、中断恢复方法和相关装置
KR20210140862A (ko) * 2020-05-14 2021-11-23 현대자동차주식회사 소프트웨어 업데이트 시스템 및 그 제어 방법
JP7420025B2 (ja) 2020-09-07 2024-01-23 トヨタ自動車株式会社 プログラムの更新方法および更新システム
KR102452400B1 (ko) * 2020-12-16 2022-10-06 현대오토에버 주식회사 차량용 제어기의 차분 업데이트 방법, 및 차분 업데이트 롤백 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168769A (ja) * 1993-12-16 1995-07-04 Toshiba Eng Co Ltd 不揮発性メモリに対するデータ更新方法
JPH10229446A (ja) 1997-02-17 1998-08-25 Nec Corp 局データ更新回路
US5940074A (en) 1996-06-03 1999-08-17 Webtv Networks, Inc. Remote upgrade of software over a network
KR20000020510A (ko) * 1998-09-18 2000-04-15 구자홍 프로그램 갱신오류시 복구가능한 구동장치 및 그 프로그램 갱신방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274384A (ja) 1993-03-22 1994-09-30 N T T Data Tsushin Kk 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
JPH07219780A (ja) 1994-02-04 1995-08-18 N T T Data Tsushin Kk 端末装置の処理プログラムダウンロード方式
JPH1013494A (ja) 1996-06-20 1998-01-16 Fujitsu Ltd 伝送装置及びその復旧方式
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6236993B1 (en) * 1998-06-24 2001-05-22 Victor V. Fanberg Computer file comparison method
JP2002007192A (ja) 2000-06-27 2002-01-11 Mitsubishi Electric Corp データ更新方法およびそのシステム
JP2002152821A (ja) * 2000-11-08 2002-05-24 Nec Saitama Ltd 携帯端末装置のプログラム更新方法および携帯端末装置
US6938140B2 (en) * 2002-08-29 2005-08-30 Micron Technology, Inc. System and method for linear object reallocation in place

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07168769A (ja) * 1993-12-16 1995-07-04 Toshiba Eng Co Ltd 不揮発性メモリに対するデータ更新方法
US5940074A (en) 1996-06-03 1999-08-17 Webtv Networks, Inc. Remote upgrade of software over a network
JPH10229446A (ja) 1997-02-17 1998-08-25 Nec Corp 局データ更新回路
KR20000020510A (ko) * 1998-09-18 2000-04-15 구자홍 프로그램 갱신오류시 복구가능한 구동장치 및 그 프로그램 갱신방법

Also Published As

Publication number Publication date
US20040128281A1 (en) 2004-07-01
US7222137B2 (en) 2007-05-22
EP1431874A3 (en) 2006-09-06
KR20040055602A (ko) 2004-06-26
EP1431874A2 (en) 2004-06-23
JP2004199121A (ja) 2004-07-15
JP4302970B2 (ja) 2009-07-29

Similar Documents

Publication Publication Date Title
KR100970064B1 (ko) 차분 갱신 방법, 기록 매체 및 장치
CN108170460B (zh) 一种嵌入式系统增量升级的方法及装置
US7587433B2 (en) Method and system for in-place updating content stored in a storage device
JP6568947B2 (ja) 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア
KR101359834B1 (ko) 압축 버전을 포함하는 내용을 업데이트하는 방법 및시스템들
US7210010B2 (en) Efficient system and method for updating a memory device
EP1347383A1 (en) Data recorder and method for recording data in flash memory
US7421624B2 (en) Data recovery apparatus and method used for flash memory
EP2709022A1 (en) Method and devices for updating a database of a navigation device
US9058843B2 (en) Recovery of data written before initialization of format in tape media
US20160294411A1 (en) Method and system
KR100637787B1 (ko) 파일 정보의 기록 처리 방법 및 프로그램
RU2375769C2 (ru) Автоматическое резервное сохранение при модификациях встроенного программного обеспечения
JP4285679B2 (ja) 差分転送方法、プログラム及びシステム
US20160037119A1 (en) Video recording apparatus, and video recording method when temporary network failure occurs
CN113419897A (zh) 一种文件处理方法、装置、电子设备及其存储介质
CN113051184B (zh) 一种数据读取的方法、装置、电子设备及存储介质
US20180039663A1 (en) Performing set operations on variable-length data sequentially stored and indexed to facilitate reverse reading
CN101256497A (zh) 终端固件的升级方法和装置
CN114185849A (zh) 文件操作方法、文件操作系统、电子设备及存储介质
JP3978720B2 (ja) データ記憶方法
US20100094804A1 (en) Method and Device for Updating a Database, and Computer Program Product
JP5666273B2 (ja) データ格納装置及びデータ格納方法
JP2005258562A (ja) データ更新装置及びデータ更新方法
WO2001082305A1 (en) Non-volatile storage method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee