KR100601626B1 - Software upgrade method and computer-readable medium therefor - Google Patents

Software upgrade method and computer-readable medium therefor Download PDF

Info

Publication number
KR100601626B1
KR100601626B1 KR1019990050594A KR19990050594A KR100601626B1 KR 100601626 B1 KR100601626 B1 KR 100601626B1 KR 1019990050594 A KR1019990050594 A KR 1019990050594A KR 19990050594 A KR19990050594 A KR 19990050594A KR 100601626 B1 KR100601626 B1 KR 100601626B1
Authority
KR
South Korea
Prior art keywords
image
software image
block
original
software
Prior art date
Application number
KR1019990050594A
Other languages
Korean (ko)
Other versions
KR20010046714A (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 KR1019990050594A priority Critical patent/KR100601626B1/en
Publication of KR20010046714A publication Critical patent/KR20010046714A/en
Application granted granted Critical
Publication of KR100601626B1 publication Critical patent/KR100601626B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • H03K19/21EXCLUSIVE-OR circuits, i.e. giving output if input signal exists at only one input; COINCIDENCE circuits, i.e. giving output only if all input signals are identical

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 이용한 소프트웨어 업그레이드 방법이 개시된다.As a result of performing an XOR operation on a bit unit basis between an original software image and a new software image, a software upgrade method using the image is disclosed.

본 발명에 따른 소프트웨어 업그레이드 방법은 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하는 방법에 있어서, (a) 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계; (b) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및 (c) 상기 원 소프트웨어 이미지와 상기 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 포함하고, 상기 (b) 및 (c) 단계는 모든 소프트웨어 이미지를 대체할 때가지 복수번 반복함을 특징으로 한다.The software upgrade method according to the present invention is a method for upgrading an original software image stored in a nonvolatile memory into a new software image of a new version, comprising: (a) bit-wise converting the original software image and the new software image; Storing a first resultant image having a XOR operation on the nonvolatile memory; (b) backing up the original software image in units of blocks of a predetermined size; And (c) replacing the original software image in units of blocks of a predetermined size using a second result image in which the original software image and the first result image are subjected to an XOR operation in bit units. Steps (b) and (c) are characterized by repeating a plurality of times until all software images are replaced.

본 발명에 의하면, 소프트웨어 업그레이드를 수행하기 위하여 필요한 메모리 공간을 대폭적으로 감소시킬 수 있다. 또한, 소프트웨어 업그레이드시 발생할 수 있는 오류 상황에 완벽하게 대처할 수 있는 메카니즘을 제공한다.According to the present invention, the memory space required for performing the software upgrade can be greatly reduced. It also provides a mechanism that can perfectly cope with error situations that may occur during software upgrades.

Description

소프트웨어 업그레이드 방법 및 이를 위한 기록 매체{Software upgrade method and computer-readable medium therefor}Software upgrade method and computer-readable medium therefor}

도 1은 본 발명의 실시예에 따른 소프트웨어 업그레이드 과정에서 메모리에 기록 또는 저장되는 데이터를 개략적으로 도시한 것이다.FIG. 1 schematically illustrates data written or stored in a memory during a software upgrade process according to an exemplary embodiment of the present invention.

도 2는 본 발명의 바람직한 실시예에 따른 소프트웨어 업그레이드 방법에 대한 흐름도이다.2 is a flowchart of a software upgrade method according to a preferred embodiment of the present invention.

본 발명은 소프트웨어 업그레이드 방법에 관한 것으로, 특히 원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 이용한 소프트웨어 업그레이드 방법에 관한 것이다.The present invention relates to a software upgrade method, and more particularly, to a software upgrade method using an image obtained by performing an XOR operation on a bit unit of an original software image and a new software image.

일반적으로, 소프트웨어(software 또는 S/W)는 하드웨어(hardware 또는 H/W) 장치를 통하여 실행되는 프로그램을 총칭하는 말이다. 다만, 여기서는 특정 하드웨어 장치, 예를 들어, DTV(Digital TV), PCS(Persional Communications Services) 폰과 같은 이동 통신 단말기(mobile communication terminal) 등의 동작을 제어하는 운영 시스템과 관련된 소프트웨어를 중심으로 설명한다. 이러한 특정 하드웨어 장치의 운영 시스템 소프트웨어는 보통 EEPROM(Electrically Erasable and Programmable ROM) 또는 플래쉬 롬(Flash ROM)과 같은 비휘발성 메모리(non-volatile memory)에 이진 이미지(binary image), 즉 실행가능한 코드의 형태로 저장되며, 시스템의 동작과 함께 램(RAM)에 탑재되어 시스템의 동작을 제어한다.In general, software (software or software) is a general term for a program executed through a hardware (hardware or hardware) device. However, the following description will focus on software related to an operating system that controls the operation of a specific hardware device, for example, a mobile communication terminal such as a digital TV (DTV) or a performance communications service (PCS) phone. . Operating system software for this particular hardware device is usually a binary image, or form of executable code, in non-volatile memory, such as electrically erasable and programmable ROM (EEPROM) or Flash ROM. It is stored in the RAM and mounted in RAM together with the operation of the system to control the operation of the system.

특정 하드웨어 장치의 운영 시스템 소프트웨어는 해당 기술의 발전에 따라 계속적으로 업그레이드(upgrade), 즉, 구 버젼의 소프트웨어를 최신 버젼의 소프트웨어로 대체하는 과정이 필요하며, 종래의 소프트웨어 업그레이드 방식의 일반적인 절차는 다음과 같다.The operating system software of a specific hardware device needs to be continuously upgraded, that is, replacing the old version of the software with a newer version of the software as the technology develops. Same as

우선, 새로운 소프트웨어 이미지를 외부로부터 입력받아서 저장한다(이하, 제1 단계라 참조함). 다음으로, 원래의 소프트웨어 이미지 전체를 백업한다(이하, 제2 단계라 참조함). 마지막으로, 새로운 소프트웨어 이미지를 원래의 소프트웨어 이미지로 대체한다(이하, 제3 단계라 참조함).First, a new software image is received from the outside and stored (hereinafter referred to as first step). Next, the entire original software image is backed up (hereinafter referred to as the second step). Finally, the new software image is replaced with the original software image (hereinafter referred to as the third step).

종래의 소프트웨어 업그레이드 방식에서의 저장 매체의 필요 용량을 살펴보기로 한다. 여기서 저장 매체는 소프트웨어가 일차적으로 저장되어 있는 비휘발성 메모리만을 의미하며, 가장 널리 사용되는 플래쉬 롬을 중심으로 설명한다(DRAM은 플래쉬 롬에 비하여 상대적으로 매우 저가이므로 무시함). 플래쉬 롬과 같은 비휘발성, 반복 쓰기 가능한 메모리(non-volatile, re-writable memory)는 일반 DRAM에 비하여 가격이 매우 고가이므로, 그 필요량을 최소화하는 것이 제품의 단가를 줄이는 중요한 요소로 작용한다. 그리고, 설명의 편의를 위하여 원래의 소프트웨어 이미지와 새로운 소프트웨어 이미지를 동일한 이진 크기의 N 메가바이트(Mega Byte) 라고 가정한다.The required capacity of the storage medium in the conventional software upgrade scheme will be described. Here, the storage medium refers only to nonvolatile memory in which software is primarily stored, and is described based on the most widely used flash ROM (DRAM is ignored because it is relatively inexpensive compared to a flash ROM). Non-volatile, re-writable memory, such as flash ROM, is very expensive compared to conventional DRAM, so minimizing the required amount is an important factor in reducing the cost of the product. For convenience of explanation, it is assumed that the original software image and the new software image are N megabytes of the same binary size.

종래의 방식에 따를 경우, 원래의 소프트웨어 이미지가 저장되어 있는 N 메가 바이트, 제1 단계에서 외부로부터 입력된 새로운 소프트웨어 이미지를 저장하기 위하여 필요한 N 메가 바이트, 그리고 제2 단계에서 원래의 소프트웨어 이미지를 백업하기 위한 공간으로 필요한 N 메가바이트, 따라서, 총 3N 메가바이트의 플래쉬 롬이 필요하며, 제3 단계에서는 추가적인 메모리가 사용되지 않는다.According to the conventional method, N megabytes in which the original software image is stored, N megabytes necessary for storing a new software image inputted from the outside in the first step, and the original software image in the second step are backed up. N megabytes of space needed, and therefore 3N megabytes of flash ROM in total, are required, and no additional memory is used in the third stage.

따라서, 종래의 방식으로 소프트웨어 업그레이드를 수행하기 위하여는 원래의 소프트웨어 이미지를 저장하기 위한 메모리 공간 외에 2번의 소프트웨어 이미지를 저장을 위한 메모리 공간이 추가적으로 필요하다.Therefore, in order to perform a software upgrade in a conventional manner, a memory space for storing two software images is additionally required in addition to a memory space for storing an original software image.

만약, 종래의 방식에서 플래쉬 롬의 크기를 줄이기 위하여, 예를 들어 2N 메가바이트의 플래쉬 롬만을 사용하면, 소프트웨어 업그레이드시 발생할 수 있는 오류 상황에 충분히 대처할 수 없는 문제가 발생한다.If, in the conventional method, to reduce the size of the flash ROM, for example, using only 2N megabytes of flash ROM, there is a problem that can not sufficiently cope with an error situation that may occur during the software upgrade.

소프트웨어 업그레이드시 발생할 수 있는 오류 상황은 다음과 같다. 즉, 소프트웨어 업그레이드 수행중에 갑작스런 전원 차단 등이 발생하는 경우와 새로운 소프트웨어 자체의 오류로 인하여 원래의 소프트웨어 이미지로 원상복귀를 해야하는 경우가 있다.Error situations that can occur during software upgrade are as follows. In other words, there is a case where a sudden power cut occurs during the software upgrade, and because of the error of the new software itself, it is necessary to restore the original software image.

만약, 원래의 소프트웨어 이미지만을 플래쉬 롬에 백업하고 새로운 소프트웨어 이미지는 DRAM을 사용하여 저장한 상태에서, 소프트웨어 업그레이드를 진행하는 도중에 전원이 차단된 경우를 가정하자. 이 경우, DRAM에 저장되어 있던 새로운 소프트웨어 이미지는 전원 차단과 함께 소멸하므로, 플래쉬 롬에 백업된 원래의 소프 트웨어 이미지를 통하여 원래의 소프트웨어 이미지를 복구한 후, 다시금 새로운 소프트웨어 이미지를 외부로부터 입력받아서 소프트웨어 업그레이드 과정을 처음부터 반복하여야 한다.Suppose that if only the original software image is backed up to the flash ROM and the new software image is stored using DRAM, the power is cut off during the software upgrade process. In this case, the new software image stored in the DRAM disappears with the power off. Therefore, after recovering the original software image through the original software image backed up in the flash ROM, the new software image is input again from the outside. The upgrade process must be repeated from the beginning.

만약, 새로운 소프트웨어 이미지만을 플래쉬 롬에 저장하고 원래의 소프트웨어 이미지는 DRAM을 사용하여 백업한 상태에서, 소프트웨어 업그레이드를 진행하는 도중에 전원이 차단된 경우를 가정하자. 이 경우, DRAM에 저장되어 있던 새로운 소프트웨어 이미지는 전원 차단과 함께 소멸하므로, 원래의 소프트웨어 이미지를 복구할 방법은 없다. 그러므로, 만약 새로운 소프트웨어 이미지 자체에 오류가 있음이 발견되면, 원래의 소프트웨어 이미지로 원상복귀하는 것이 불가능하게 된다.Suppose that if only a new software image is stored in the flash ROM and the original software image is backed up using DRAM, the power is cut off during the software upgrade process. In this case, the new software image stored in the DRAM is extinguished with power off, so there is no way to recover the original software image. Therefore, if it is found that there is an error in the new software image itself, it is impossible to revert to the original software image.

따라서, 종래의 방식에서 필요한 메모리 공간을 줄이기 위한 다양한 변형 방식은 소프트웨어 업그레이드시 발생할 수 있는 오류 상황에 충분히 대처할 수 없는 문제가 있다.Therefore, various modifications to reduce the memory space required in the conventional method may not sufficiently cope with error situations that may occur during software upgrade.

본 발명이 이루고자 하는 기술적인 과제는 상기의 문제점을 해결하기 위해, 원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 이용하여, 최소 용량의 메모리 공간을 사용하면서도 소프트웨어 업그레이드시 발생할 수 있는 오류 상황에 대처할 수 있는 소프트웨어 업그레이드 방법 및 이를 위한 기록 매체를 제공하는 데 있다.The technical problem to be solved by the present invention is to solve the above problems, by using the result of performing the XOR operation of the original software image and the new software image bit-by-bit image, when upgrading the software while using the minimum memory space The present invention provides a method for upgrading a software that can cope with an error situation that may occur, and a recording medium therefor.

상기 기술적 과제를 해결하기 위하여, 본 발명에 일측면에 의한 소프트웨어 업그레이드 방법은 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하는 방법에 있어서, (a) 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계; (b) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및 (c) 상기 원 소프트웨어 이미지와 상기 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 포함하고, 상기 (b) 및 (c) 단계는 모든 소프트웨어 이미지를 대체할 때가지 복수번 반복함을 특징으로 한다.In order to solve the above technical problem, the software upgrade method according to one aspect of the present invention in the method of upgrading the original software image of the original version stored in the non-volatile memory to a new version of the new software image, (a) the Storing a first resultant image obtained by performing an XOR operation on the original software image and the new software image bit by bit in the nonvolatile memory; (b) backing up the original software image in units of blocks of a predetermined size; And (c) replacing the original software image in units of blocks of a predetermined size using a second result image in which the original software image and the first result image are subjected to an XOR operation in bit units. Steps (b) and (c) are characterized by repeating a plurality of times until all software images are replaced.

또한, 상기 비휘발성 메모리는 플래쉬 롬임이 바람직하다.In addition, the nonvolatile memory is preferably a flash ROM.

또한, 상기 (b) 단계는 백업 상황을 관리하기 위하여 블록 단위의 백업을 수행하기 전에 백업을 수행할 블록 번호를 저장하는 단계를 포함하고, 상기 (c) 단계는 대체 상황을 관리하기 위하여 블록 단위의 대체를 수행하기 전에 대체를 수행할 블록 번호를 저장하는 단계를 포함하거나, 상기 (b) 단계는 백업 상황을 관리하기 위하여 블록 단위의 백업을 수행한 후에 백업이 완료된 블록 번호를 저장하는 단계를 포함하고, 상기 (c) 단계는 대체 상황을 관리하기 위하여 블록 단위의 대체를 수행한 후에 대체가 완료된 블록 번호를 저장하는 단계를 포함함이 바람직하다.In addition, the step (b) includes the step of storing the block number to perform the backup before performing the block-by-block backup in order to manage the backup situation, the step (c) is a block unit to manage the replacement situation Storing the block number to be replaced before performing the replacement of the method; or (b) storing the block number in which the backup is completed after performing the block unit backup to manage the backup situation. In addition, the step (c) preferably comprises the step of storing the block number of the replacement is completed after performing the block-by-block replacement to manage the replacement situation.

또한, 상기 (a) 단계는 (a1) 상기 새 소프트웨어 이미지를 외부로부터 입력받는 단계; (a2) 상기 원 소프트웨어 이미지와 상기 (a1) 단계에서 외부로부터 입력된 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행하여 상기 제1 결과 이 미지를 생성하는 단계; (a3) 상기 (a2) 단계에서 생성된 제1 결과 이미지를 압축하는 단계; 및 (a4) 상기 (a3) 단계에서 압축된 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계를 포함함이 바람직하다.In addition, the step (a) may include (a1) receiving the new software image from the outside; (a2) generating the first result image by performing an XOR operation on the original software image and a new software image input from the outside in the step (a1) in units of bits; (a3) compressing the first resultant image generated in step (a2); And (a4) storing the first resultant image compressed in the step (a3) in the nonvolatile memory.

본 발명에 다른 측면에 의한 소프트웨어 업그레이드 방법은 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하는 방법에 있어서, (a) 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 압축한 이미지를 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장하는 단계; (b) 상기 (a) 단계에서 외부로부터 입력된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계; (c) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및 (d) 상기 원 소프트웨어 이미지와 상기 (b) 단계에서 복원된 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 포함하고, 상기 (c) 및 (d) 단계는 모든 소프트웨어 이미지를 대체할 때가지 복수번 반복함을 특징으로 한다.According to another aspect of the present invention, a software upgrade method includes upgrading an original software image stored in a nonvolatile memory to a new software image of a new version, the method comprising: (a) the original software image and the new software image; Receiving a compressed image of the first result image obtained by performing an XOR operation in units of bits from the outside and storing the image in the nonvolatile memory; (b) decompressing the image input from the outside in step (a) to restore the first resultant image; (c) backing up the original software image in units of blocks of a predetermined size; And (d) replacing the original software image by the block unit of the predetermined size using the original software image and the second result image of which the XOR operation is performed in bit units on the first result image restored in the step (b). And the steps (c) and (d) are repeated a plurality of times until all software images are replaced.

또한, 상기 (b) 단계는, (b1) 상기 (a) 단계에서 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장된 이미지를 독출하는 단계; 및 (b2) 상기 (b1) 단계에서 독출된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계를 포함함이 바람직하다.In addition, step (b) may include: (b1) reading an image stored in the nonvolatile memory by receiving an input from the outside in the step (a); And (b2) decompressing the image read out in the step (b1) to restore the first resultant image.

상기 다른 기술적 과제를 해결하기 위하여, 본 발명의 일측면에 컴퓨터로 읽 을 수 있는 기록 매체는 (a) 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하기 위하여, 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계; (b) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및 (c) 상기 원 소프트웨어 이미지와 상기 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 컴퓨터에 의하여 실행시키기 위한 프로그램을 기록함을 특징으로 한다.In order to solve the above other technical problem, a computer-readable recording medium in one aspect of the present invention includes (a) upgrading the original software image stored in a nonvolatile memory to a new software image of a new version. Storing a first resultant image obtained by performing an XOR operation on the original software image and the new software image bit by bit in the nonvolatile memory; (b) backing up the original software image in units of blocks of a predetermined size; And (c) replacing, by the computer, the original software image by the block unit of the predetermined size using a second resultant image obtained by performing an XOR operation on the original software image and the first resultant image bit by bit. Characterized in that it records the program for the purpose.

본 발명의 다른 측면에 컴퓨터로 읽을 수 있는 기록 매체는 (a) 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하기 위하여, 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 압축한 이미지를 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장하는 단계; (b) 상기 (a) 단계에서 외부로부터 입력된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계; (c) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및 (d) 상기 원 소프트웨어 이미지와 상기 (b) 단계에서 복원된 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 컴퓨터에 의하여 실행시키기 위한 프로그램을 기록함을 특징으로 한다.In another aspect of the present invention, a computer-readable recording medium includes (a) the original software image and the new software in order to upgrade the original software image stored in the nonvolatile memory with a new version of the new software image. Receiving an image obtained by compressing the first resultant image after performing an XOR operation on a bit basis from an external source and storing the image in the nonvolatile memory; (b) decompressing the image input from the outside in step (a) to restore the first resultant image; (c) backing up the original software image in units of blocks of a predetermined size; And (d) replacing the original software image by the block unit of the predetermined size using the original software image and the second result image of which the XOR operation is performed in bit units on the first result image restored in the step (b). And recording a program for executing the step by the computer.

이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 실시예의 구성 및 동작을 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the configuration and operation of the preferred embodiment of the present invention.

도 1은 본 발명의 실시예에 따른 소프트웨어 업그레이드 과정에서 메모리에 기록 또는 저장되는 데이터를 개략적으로 도시한 것이다.FIG. 1 schematically illustrates data written or stored in a memory during a software upgrade process according to an exemplary embodiment of the present invention.

도 1에 도시된 바와 같이, 본 실시예에 따른 소프트웨어 업그레이드 과정에서 필요한 플래쉬 롬(100)의 용량은 원 소프트웨어 이미지를 저장하기 위한 공간(110), XOR된 새 소프트웨어 이미지를 압축한 이미지를 저장하기 위한 공간(140), 원 소프트웨어 이미지의 1블록을 저장하기 위한 백업 공간(120) 및 업그레이드 상황 정보를 기록하기 위한 공간(130)을 포함한다.As shown in FIG. 1, the capacity of the flash ROM 100 required in the software upgrade process according to the present embodiment is a space for storing the original software image 110, and for storing the compressed image of the XORed new software image. Space 140, a backup space 120 for storing one block of the original software image, and a space 130 for recording upgrade status information.

여기서, XOR된 새 소프트웨어 이미지란 원래의 소프트웨어 이미지와 새로운 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 말한다. 따라서, XOR된 새 소프트웨어 이미지와 원래의 소프트웨어 이미지를 비트 단위로 XOR 연산을 다시 한번 수행하면 새 소프트웨어 이미지가 된다. 이러한 XOR된 새 소프트웨어 이미지는 메모리 공간을 절약하기 위하여 압축된 상태로 플래쉬 롬에 저장하는 것이 바람직하다. 만약, 원래의 소프트웨어 이미지와 새 소프트웨어 이미지에서 차이가 나는 비트 수가 적을 경우, 본 실시예에 따른 XOR된 새 소프트웨어 이미지는 높은 압축 효율을 가지게 됨을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이해할 수 있을 것이다.Here, the new software image XORed refers to an image obtained by performing an XOR operation on a bit unit of the original software image and the new software image. Therefore, if the XOR operation is performed once again bit by bit on the new software image and the original software image, the new software image becomes. These new XORed software images are preferably stored in the flash ROM in a compressed state to save memory space. If the number of bits that differ between the original software image and the new software image is small, it will be understood by those skilled in the art that the new software image XORed according to the present embodiment has a high compression efficiency. Could be.

DRAM 등에서의 메모리 접근 단위는 비트(bit), 바이트(byte) 또는 워드(word) 등의 최소 단위이지만, 플래쉬 롬과 같은 비휘발성 메모리는 한번에 접 근 또는 소거가능한 단위가 블록 단위, 예를 들어 4 킬로바이트 내지 256 킬로바이트 단위이다(이하에서, 블록이란 특정 플래쉬 롬에서의 최소 접근 단위를 의미함). 본 실시예에서는 원 소프트웨어 이미지에 대하여 블록 단위로 업그레이드를 진행하므로, 원 소프트웨어 이미지를 블록 단위로 백업할 수 있는 메모리 공간(120)만 있으면 충분하다.Memory access units in DRAMs and the like are the smallest units such as bits, bytes, or words, but nonvolatile memories such as flash ROMs can be accessed or erased at once. It is in units of kilobytes to 256 kilobytes (hereinafter, a block means a minimum access unit in a specific flash ROM). In this embodiment, since the original software image is upgraded on a block basis, only a memory space 120 capable of backing up the original software image on a block basis is sufficient.

또한, 본 실시예에서는 현재의 업그레이드 상황을 관리한다. 이러한, 업그레이드 상황을 관리하기 위하여 필요한 메모리 공간은 수 바이트 내지 수십 바이트에 지나지 않으므로 상대적으로 접근 속도가 느린 플래쉬 롬에의 접근 횟수를 줄이기 위하여 별도의 접근 속도가 빠른 비휘발성 메모리를 사용하는 것이 바람직할 것이다. 또한, 블록의 크기가 작을 경우에는 플래쉬 롬 내에 백업 공간을 두지 않고 별도의 접급 속도가 빠른 비휘발성 메모리를 백업 공간으로 활용할 수도 있을 것이다.In this embodiment, the current upgrade status is managed. Since the memory space required to manage the upgrade situation is only a few bytes to several tens of bytes, it is preferable to use a non-volatile memory having a fast access speed to reduce the number of accesses to a relatively slow flash ROM. will be. In addition, if the block size is small, the backup space may be utilized as a nonvolatile memory having a high speed of contact without a backup space in the flash ROM.

DRAM(150)에는 XOR된 새 소프트웨어 이미지를 저장하기 위한 공간(160)이 도시되어 있다. 물론, 모든 연산 과정은 DRAM에서 이루어지므로, 예를 들어, XOR 연산을 위한 연산자 및 피연산자는 일시적으로 DRAM에 저장되어야 함은 당연하다.The DRAM 150 shows the space 160 for storing the XORed new software image. Of course, since all computations are done in DRAM, it is natural that the operators and operands for XOR operations, for example, must be temporarily stored in DRAM.

계속해서, 도 1에 도시된 DRAM 및 플래쉬 롬의 메모리 구성에서의 본 발명의 실시예에 따른 소프트웨어 업그레이드 과정을 도2를 참조하여 설명한다.Subsequently, a software upgrade process according to an embodiment of the present invention in the memory configuration of the DRAM and flash ROM shown in FIG. 1 will be described with reference to FIG.

도 2는 본 발명의 바람직한 실시예에 따른 소프트웨어 업그레이드 방법에 대한 흐름도이다.2 is a flowchart of a software upgrade method according to a preferred embodiment of the present invention.

우선, 새 소프트웨어 이미지를 외부로부터 입력받는다(단계 200). 단계 200 에서의 외부 입력 방식은 새 소프트웨어 이미지를 저장하고 있는 스마트카드(Smartcard) 등을 이용하는 일반적이다. 그러나, 바람직하게는 새 소프트웨어 이미지를 서버 또는 서비스 센터로부터 통신망을 통하여 수신하는 것이 가능함을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이해할 수 있을 것이다. 이러한 통신망을 통한 외부 입력 방식은 예를 들어, 직렬 케이블(serial cable), 이더네트(ethernet) 및 무선망 등을 통한 직접 전송(direct transmission) 또는 다중 전송(broadcast) 방식이 가능할 것이다.First, a new software image is received from the outside (step 200). The external input method in step 200 is generally using a smart card or the like which stores a new software image. However, it will be appreciated by those skilled in the art that preferably it is possible to receive new software images from a server or service center via a communication network. The external input method through such a communication network may be, for example, a direct transmission or a multiplex transmission method through a serial cable, ethernet, and a wireless network.

또한, 단계 200에서 외부로부터 입력되는 새 소프트웨어 이미지는 원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지(즉, XOR된 새 소프트웨어 이미지)를 압축한 이미지 형태가 바람직하다. 그러나, 본 발명은 종래의 방식과 호환성을 가지면서 동작할 수 있다. 즉, XOR 연산이 수행되지 않은 새 소프트웨어 이미지가 직접 외부로부터 입력되는 경우에는, 입력된 새 소프트웨어 이미지와 원 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 생성하는 단계 및 그 결과 이미지를 압축하는 단계를 내부적으로 수행한다(미도시). 물론, 새 소프트웨어 이미지가 자체 방식으로 압축되어 있는 경우에는 압축을 해제한 후 XOR 연산을 수행하여야 할 것이다.In addition, the new software image input from the outside in step 200 is preferably an image form in which the original software image and the new software image are compressed as a result of performing an XOR operation on a bit-by-bit basis (that is, the XORed new software image). However, the present invention can operate with compatibility with conventional methods. That is, when a new software image having no XOR operation is directly input from the outside, generating a result image of performing the XOR operation bitwise on the input new software image and the original software image, and compressing the resulting image. Performing steps internally (not shown). Of course, if the new software image is compressed in its own way, you will need to decompress and perform the XOR operation.

다음으로, XOR된 새 소프트웨어 이미지를 플래쉬 롬에 압축된 형태로 저장한다(단계 210).Next, the XORed new software image is stored in a compressed form in a flash ROM (step 210).

만약, 단계 200에서 외부로부터 XOR된 새 소프트웨어 이미지를 압축된 형태로 입력받은 경우에는 압축을 해제하는 과정을 거친다(단계 220). 그러나, 종래의 방식에서처럼 새 소프트웨어 이미지를 직접 외부로부터 입력받은 경우에는 내부적으로 수행한 XOR 연산의 결과 이미지를 이용할 수 있으므로 반드시 단계 220을 수행할 필요는 없을 것이다.If the new software image XOR received from the outside is received in a compressed form in step 200, the process is decompressed (step 220). However, when the new software image is directly input from the outside as in the conventional method, the result image of the internally performed XOR operation may be used, and thus it is not necessary to perform step 220.

그리고, 단계 200에서 외부로부터 입력된 새 소프트웨어 이미지는 단계 210에서 플래쉬 ROM에 저장되기 전에 일시적으로 DRAM에 저장하는 과정을 거치므로, 단계 220에서 반드시 단계 210에서 플래쉬 ROM에 저장한 새 소프트웨어 이미지를 독출하여 RAM으로 읽어 들일 필요는 없을 것이다.Since the new software image input from the outside in step 200 is temporarily stored in the DRAM before being stored in the flash ROM in step 210, the new software image stored in the flash ROM must be read in step 210. You will not need to read it into RAM.

그러나, 외부로부터 새 소프트웨어 이미지를 입력받는 단계와 원 소프트웨어 이미지를 새 소프트웨어 이미지로 업그레이드하는 단계를 독립된 과정으로 처리하기 위하여, 외부로부터 입력된 새 소프트웨어 이미지를 일단 플래쉬 롬에 저장하고, 플래쉬 롬에 저장된 새 소프트웨어 이미지를 다시금 독출하여 RAM에 탑재한 후, 이후의 작업을 진행할 수도 있다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 이해할 수 있을 것이다.However, in order to process the step of receiving a new software image from the outside and upgrading the original software image to the new software image as a separate process, the new software image input from the outside is stored in the flash ROM and stored in the flash ROM. It will be understood by those skilled in the art that the new software image may be read again, mounted in RAM, and then further processed.

다음으로, 플래쉬 롬에 저장되어 있는 원 소프트웨어 이미지의 1블록을 백업한다(단계 230). 여기서, 백업 공간은 플래쉬 롬의 백업 공간이 사용될 수도 있고, 블록 단위가 작을 경우에는 접근 속도가 상대적으로 빠른 다른 비휘발성 메모리가 사용될 수도 있다는 것은 이미 살펴본 바와 같다.Next, one block of the original software image stored in the flash ROM is backed up (step 230). Here, the backup space may be used as the backup space of the flash ROM, and when the block unit is small, other nonvolatile memory having a relatively high access speed may be used as described above.

또한, 단계 230은 백업의 상황(status) 정보를 관리하는 과정을 포함한다. 이러한 백업 상황은 2 가지 방식으로 관리될 수 있다. 블록 단위로 백업을 수행하기 전에 백업을 수행할 블록 번호를 저장하는 방식 또는 블록 단위로 백업을 수행 한 후에 백업이 완료된 블록 번호를 저장하는 방식이 가능하다. 본 실시예에서는 어떠한 방식을 사용하든지에 상관없이, 이후에서 설명될 단계 250에서 관리되는 대체 상황 정보를 함께 참조하여 정확한 오류 발생 시점을 파악해 낼 수 있다. 이에 대하여는, 추후에 다시 설명하기로 한다.In addition, step 230 includes managing the status information of the backup (status). This backup situation can be managed in two ways. It is possible to save the block number to be backed up before performing the backup in block units or to save the block number in which the backup is completed after performing the backup in block units. Regardless of which method is used, the present embodiment may refer to the alternative situation information managed in step 250, which will be described later, to determine the exact time of occurrence of an error. This will be described later.

만약, 단계 230의 백업 과정에서 전원 차단 등의 오류가 발생한 것으로 판단되는 경우, 본 실시예에서의 소프트웨어 업그레이드 방법은 소프트웨어 업그레이드 과정 전체를 반복하여야 하는 종래의 방식과는 달리, 플래쉬 롬에 저장되어 있는 XOR된 새 소프트웨어 이미지를 다시 DRAM으로 읽어와서 압축을 해제한 후, 해당 블록에서부터의 백업 과정을 재개하는 오류 복구 방법을 가능하게 한다.If it is determined that an error such as a power failure occurs in the backup process of step 230, the software upgrade method according to the present embodiment is stored in the flash ROM, unlike the conventional method in which the entire software upgrade process should be repeated. This allows for an error recovery method that reads the new XORed software image back into DRAM, decompresses it, and resumes the backup process from that block.

다음으로, 원 소프트웨어 이미지와 XOR된 새 소프트웨어 이미지의 1블록을 비트 단위로 XOR 연산을 수행하여 새 소프트웨어 이미지 1블록을 생성하여(단계 240), 플래쉬 롬에 저장되어 있는 원 소프트웨어 이미지의 해당 블록을 단계 240에서 생성된 새 소프트웨어 이미지 1블록으로 대체한다(단계 250).Next, an XOR operation is performed on the original software image and one block of the new software image XORed in bit units to generate one block of the new software image (step 240), and the corresponding block of the original software image stored in the flash ROM is generated. Replace with one block of the new software image created in step 240 (step 250).

또한, 단계 250은 대체의 상황 정보를 관리하는 과정을 포함한다. 이러한 대체 상황은 2 가지 방식으로 관리될 수 있다. 블록 단위로 대체를 수행하기 전에 대체를 수행할 블록 번호를 저장하는 방식 또는 블록 단위로 대체를 수행한 후에 대체가 완료된 블록 번호를 저장하는 방식이 가능하다. 본 실시예에서는 어떠한 방식을 사용하든지에 상관없이, 단계 230에서의 백업 상황 정보를 함께 참조하여 정확한 오류 발생 시점을 파악해 낼 수 있음은 이미 언급한 바와 같다.Step 250 also includes a process of managing alternative contextual information. This alternative situation can be managed in two ways. It is possible to store the block number to be replaced before performing the replacement in block units or to store the block number in which the replacement is completed after performing the replacement in block units. Regardless of which method is used in the present embodiment, as mentioned above, it is possible to identify the exact time of occurrence of error by referring to the backup status information in step 230 together.

만약, 단계 250의 대체 과정에서 전원 차단 등의 오류가 발생한 것으로 판단 되는 경우, 본 실시예에서의 소프트웨어 업그레이드 방법은 소프트웨어 업그레이드 과정 전체를 반복하여야 하는 종래의 방식과는 달리, 플래쉬 롬에 저장되어 있는 XOR된 새 소프트웨어 이미지를 다시 DRAM으로 읽어와서 압축을 해제한 후, 백업된 원 소프트웨어 이미지의 해당 블록 데이터와 XOR된 새 소프트웨어 이미지의 해당 블록 데이터를 XOR 연산을 수행하여 새 소프트웨어 이미지의 해당 블록을 생성하고, 오류가 발생한 시점에서부터의 대체 과정을 재개하는 오류 복구 방법을 가능하게 한다.If it is determined that an error such as power off occurs in the replacement process of step 250, the software upgrade method according to the present embodiment is stored in the flash ROM, unlike the conventional method in which the entire software upgrade process should be repeated. After the new XOR software image is read back into DRAM and decompressed, XOR operation is performed on the corresponding block data of the original backed-up software image and the corresponding block data of the new XORed software image to generate the corresponding block of the new software image. And an error recovery method that resumes the replacement process from the point where the error occurred.

마지막, 모든 소프트웨어 이미지의 대체가 완료되었는지 판단하는 과정(단계 260)을 통하여, 전체 소프트웨어 이미지에 대한 블록 단위의 백업 및 대체 과정을 반복한다.Finally, the process of determining whether the replacement of all the software images is completed (step 260) is repeated in the block-by-block backup and replacement process for the entire software image.

계속해서, 본 발명의 실시예에 따른 소프트웨어 업그레이드 방법을 채용할 경우에, 소프트웨어 업그레이드 과정에서 오류가 발생한 시점을 판단하는 방법에 대하여 설명한다. 본 발명의 실시예에 따른 소프트웨어 업그레이드 과정에서 관리된 백업 블록과 대체 블록의 상황 정보는 (N, N)인 경우와 (N,N-1)인 경우가 가능하다. 왜냐하면, 백업과 대체는 순차적으로 반복되며, 대체는 백업 후에 진행되기 때문이다. 여기서, N은 블록 번호를 의미한다.Subsequently, when the software upgrade method according to the embodiment of the present invention is adopted, a method of determining a time point at which an error occurs in the software upgrade process will be described. The status information of the backup block and the replacement block managed in the software upgrade process according to an embodiment of the present invention may be (N, N) and (N, N-1). Because backup and replacement are repeated sequentially, the replacement proceeds after the backup. Here, N means a block number.

우선, 단계 230 및 단계 250에서의 상황 정보가 백업 또는 대체를 수행하기 전에 해당 블록 번호를 저장하는 방식으로 관리되면, 상황 정보 (N,N)은 N번째 블록의 대체를 수행하는 과정에서 오류가 발생했음을 의미하고, 상황 정보 (N,N-1)은 N 번째 블록의 백업을 수행하는 과정에서 오류가 발생하였음을 의미한다는 것을 이 해할 수 있을 것이다.First, if the situation information in steps 230 and 250 is managed in such a way that the block number is stored before performing the backup or replacement, the situation information (N, N) is an error during the replacement of the Nth block. It can be understood that the error has occurred, and that the situation information (N, N-1) indicates that an error has occurred in performing the backup of the N-th block.

그리고, 단계 230 및 단계 250에서의 상황 정보가 백업 또는 대체를 수행한 후에 해당 블록 번호를 저장하는 방식으로 관리되면, 상황 정보 (N,N)은 N+1번째 블록의 백업을 수행하는 과정에서 오류가 발생했음을 의미하고, 상황 정보 (N,N-1)은 N 번째 블록의 대체를 수행하는 과정에서 오류가 발생하였음을 의미한다는 것을 이해할 수 있을 것이다.If the situation information in steps 230 and 250 is managed in such a manner that the corresponding block number is stored after the backup or replacement is performed, the situation information (N, N) is performed in the process of performing the backup of the N + 1th block. It will be understood that an error has occurred, and the situation information (N, N-1) means that an error has occurred in the course of performing replacement of the N-th block.

따라서, 본 발명에 의하면, 정확한 오류 발생 시점을 파악할 수 있고, 그 시점부터 소프트웨어 업그레이드 과정을 진행할 수 있다.Therefore, according to the present invention, it is possible to determine the exact time of occurrence of the error, and to proceed with the software upgrade process from that time.

또한, 본 발명에 의하면, 소프트웨어 업그레이드가 완료된 후에 새 소프트웨어 이미지 자체에 오류가 있음이 발견되었을 경우, 원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR한 결과 이미지(즉, XOR된 새 소프트웨어 이미지)를 이용하여, XOR된 새 소프트웨어 이미지와 새 소프트웨어 이미지를 다시금 비트 단위로 XOR 연산을 수행하여 원래의 소프트웨어 이미지로 원상복귀하는 것도 가능하다. In addition, according to the present invention, when it is found that there is an error in the new software image itself after the software upgrade is completed, the resultant image (that is, the new software image XORed) is obtained by XORing the original software image and the new software image bit by bit. By using the new software image and the new software image, it is also possible to perform an XOR operation on a bit basis again to restore the original software image.

본 발명의 실시예들은 컴퓨터 시스템에서 실행할 수 있는 프로그램으로 작성가능하다. 또한, 이러한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체로부터 해당 프로그램을 읽어들여 범용 디지털 컴퓨터 시스템에서 실행될 수 있다. 이러한 기록 매체에는 마그네틱 저장 매체(예를 들면, 롬, 플로피디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 매체가 포함된다.Embodiments of the present invention can be written as a program executable in a computer system. In addition, the program can be read from a computer readable recording medium having recorded such a program and executed in a general-purpose digital computer system. Such recording media include magnetic storage media (e.g., ROM, floppy disk, hard disk, etc.), optical reading media (e.g., CD-ROM, DVD, etc.) and carrier waves (e.g., transmission over the Internet). Media is included.

이제까지 본 발명에 대하여 그 바람직한 실시예(들)를 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to the preferred embodiment (s). Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 의하면, 원 소프트웨어 이미지와 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 결과 이미지를 이용하고, 블록 단위로 백업 및 대체 과정을 반복수행하면서 그 상황 정보를 관리하는 방식을 통하여, 소프트웨어 업그레이드를 수행하기 위하여 필요한 메모리 공간을 대폭적으로 감소시킬 수 있다.According to the present invention, a software upgrade is performed by using a result image of performing an XOR operation on an original software image and a new software image bit by bit, and managing the status information while repeatedly performing a backup and replacement process on a block basis. It is possible to greatly reduce the memory space required to perform the operation.

또한, 소프트웨어 업그레이드시 발생할 수 있는 오류 상황에 완벽하게 대처할 수 있는 메카니즘을 제공한다.It also provides a mechanism that can perfectly cope with error situations that may occur during software upgrades.

Claims (13)

비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하는 방법에 있어서,In the method of upgrading the original version of the original software image stored in non-volatile memory to the new version of the new software image, (a) 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계;(a) storing a first resultant image obtained by performing an XOR operation on the original software image and the new software image bit by bit in the nonvolatile memory; (b) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및(b) backing up the original software image in units of blocks of a predetermined size; And (c) 상기 원 소프트웨어 이미지와 상기 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 포함하고,(c) replacing the original software image in units of blocks of a predetermined size using a second result image in which the original software image and the first result image are subjected to an XOR operation in bits; 상기 (b) 및 (c) 단계는 모든 소프트웨어 이미지를 대체할 때가지 복수번 반복함을 특징으로 하는 소프트웨어 업그레이드 방법.The steps (b) and (c) are repeated multiple times until all software images are replaced. 제1항에 있어서,The method of claim 1, 상기 비휘발성 메모리는 플래쉬 롬임을 특징으로 하는 소프트웨어 업그레이드 방법.And wherein the nonvolatile memory is a flash ROM. 제1항에 있어서,The method of claim 1, 상기 (b) 단계는, 백업 진행 상황을 관리하기 위하여 블록 단위의 백업을 수행하기 전에 백업을 수행할 블록 번호를 저장하는 단계를 포함하고,Step (b) includes storing a block number to be backed up before performing the backup in block units in order to manage the backup progress, 상기 (c) 단계는, 대체 진행 상황을 관리하기 위하여 블록 단위의 대체를 수행하기 전에 대체를 수행할 블록 번호를 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.The step (c) of the software upgrade method comprising the step of storing the block number to be replaced before performing the block-by-block replacement to manage the replacement progress. 제1항에 있어서,The method of claim 1, 상기 (b) 단계는, 백업 진행 상황을 관리하기 위하여 블록 단위의 백업을 수행한 후에 백업이 완료된 블록 번호를 저장하는 단계를 포함하고,Step (b) includes the step of storing the block number of the backup is completed after performing a block-by-block backup to manage the backup progress, 상기 (c) 단계는, 대체 진행 상황을 관리하기 위하여 블록 단위의 대체를 수행한 후에 대체가 완료된 블록 번호를 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.The step (c) of the software upgrade method comprising the step of storing the block number of the replacement is completed after performing the block-by-block replacement to manage the replacement progress. 제1항에 있어서, 상기 (a) 단계는,According to claim 1, wherein the step (a), (a1) 상기 새 소프트웨어 이미지를 외부로부터 입력받는 단계;(a1) receiving the new software image from an external source; (a2) 상기 원 소프트웨어 이미지와 상기 (a1) 단계에서 외부로부터 입력된 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행하여 상기 제1 결과 이미지를 생성하는 단계;(a2) generating the first result image by performing an XOR operation on a bit basis between the original software image and a new software image input from the outside in the step (a1); (a3) 상기 (a2) 단계에서 생성된 제1 결과 이미지를 압축하는 단계; 및(a3) compressing the first resultant image generated in step (a2); And (a4) 상기 (a3) 단계에서 압축된 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.(a4) storing the first resultant image compressed in the step (a3) in the nonvolatile memory. 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하는 방법에 있어서,In the method of upgrading the original version of the original software image stored in non-volatile memory to the new version of the new software image, (a) 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 압축한 이미지를 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장하는 단계;(a) receiving an image obtained by compressing a first resultant image obtained by performing an XOR operation on the original software image and the new software image in units of bits from the outside and storing the image in the nonvolatile memory; (b) 상기 (a) 단계에서 외부로부터 입력된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계;(b) decompressing the image input from the outside in step (a) to restore the first resultant image; (c) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및(c) backing up the original software image in units of blocks of a predetermined size; And (d) 상기 원 소프트웨어 이미지와 상기 (b) 단계에서 복원된 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 포함하고,(d) replacing the original software image by the block unit of the predetermined size using the original software image and the second result image obtained by performing an XOR operation on a bit-by-bit basis with the first result image reconstructed in step (b) Including steps 상기 (c) 및 (d) 단계는 모든 소프트웨어 이미지를 대체할 때가지 복수번 반복함을 특징으로 하는 소프트웨어 업그레이드 방법.The steps (c) and (d) are repeated multiple times until all software images are replaced. 제6항에 있어서, 상기 (b) 단계는,According to claim 6, wherein step (b), (b1) 상기 (a) 단계에서 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장된 이미지를 독출하는 단계; 및(b1) reading an image stored in the nonvolatile memory by receiving an input from the outside in the step (a); And (b2) 상기 (b1) 단계에서 독출된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.(b2) decompressing the image read out in the step (b1) to restore the first resultant image. 제6항에 있어서,The method of claim 6, 상기 (c) 단계는, 백업 상황을 관리하기 위하여 블록 단위의 백업을 수행하기 전에 백업을 수행할 블록 번호를 저장하는 단계를 포함하고,Step (c) includes storing a block number for performing a backup before performing a block-by-block backup to manage the backup situation, 상기 (d) 단계는, 대체 상황을 관리하기 위하여 블록 단위의 대체를 수행하 기 전에 대체를 수행할 블록 번호를 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.The step (d) of the software upgrade method comprising the step of storing the block number to be replaced before performing the block-by-block replacement to manage the replacement situation. 제6항에 있어서,The method of claim 6, 상기 (c) 단계는, 백업 상황을 관리하기 위하여 블록 단위의 백업을 수행한 후에 백업이 완료된 블록 번호를 저장하는 단계를 포함하고,Step (c) includes the step of storing the block number of the backup is completed after performing a block-by-block backup to manage the backup situation, 상기 (d) 단계는, 대체 상황을 관리하기 위하여 블록 단위의 대체를 수행한 후에 대체가 완료된 블록 번호를 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 업그레이드 방법.The step (d) of the software upgrade method comprising the step of storing the block number of the replacement is completed after performing the block-by-block replacement to manage the replacement situation. (a) 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하기 위하여, 상기 원 소프트웨어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계;(a) a first result image of performing an XOR operation on a bit-by-bit basis between the original software image and the new software image in order to upgrade the original software image stored in the nonvolatile memory to the new software image of the new version. Storing in the nonvolatile memory; (b) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및(b) backing up the original software image in units of blocks of a predetermined size; And (c) 상기 원 소프트웨어 이미지와 상기 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 컴퓨터에 의하여 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체. (c) causing the computer to replace the original software image by the block unit of the predetermined size by using the second result image in which the original software image and the first result image are subjected to an XOR operation in bit units. A computer-readable recording medium that records a program for the program. 제10항에 있어서,The method of claim 10, 상기 (b) 단계는, 백업 상황을 관리하기 위하여 블록 단위의 백업을 수행한 후에 백업이 완료된 블록 번호를 저장하는 단계를 포함하고,Step (b) includes the step of storing the block number of the backup is completed after performing a block-by-block backup to manage the backup situation, 상기 (c) 단계는, 대체 상황을 관리하기 위하여 블록 단위의 대체를 수행한 후에 대체가 완료된 블록 번호를 저장하는 단계를 포함함을 특징으로 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.The step (c) includes storing a block number in which the replacement is completed after performing block-by-block replacement in order to manage the replacement situation. 제10항에 있어서, 상기 (a) 단계는,The method of claim 10, wherein step (a) comprises: (a1) 상기 새 소프트웨어 이미지를 외부로부터 입력받는 단계;(a1) receiving the new software image from an external source; (a2) 상기 원 소프트웨어 이미지와 상기 (a1) 단계에서 외부로부터 입력된 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행하여 상기 제1 결과 이미지를 생성하는 단계;(a2) generating the first result image by performing an XOR operation on a bit basis between the original software image and a new software image input from the outside in the step (a1); (a3) 상기 (a2) 단계에서 생성된 제1 결과 이미지를 압축하는 단계; 및(a3) compressing the first resultant image generated in step (a2); And (a4) 상기 (a3) 단계에서 압축된 제1 결과 이미지를 상기 비휘발성 메모리에 저장하는 단계를 포함함을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.(a4) storing the first resultant image compressed in the step (a3) in the nonvolatile memory. (a) 비휘발성 메모리에 저장되어 있는 원래 버젼의 원 소프트웨어 이미지를 새로운 버젼의 신 소트트웨어 이미지로 업그레이드하기 위하여, 상기 원 소프트웨 어 이미지와 상기 새 소프트웨어 이미지를 비트 단위로 XOR 연산을 수행한 제1 결과 이미지를 압축한 이미지를 외부로부터 입력받아서, 상기 비휘발성 메모리에 저장하는 단계;(a) a first result of performing an XOR operation on a bit basis of the original software image and the new software image to upgrade the original software image stored in the nonvolatile memory to the new software image of the new version; Receiving the compressed image from an external source and storing the compressed image in the nonvolatile memory; (b) 상기 (a) 단계에서 외부로부터 입력된 이미지의 압축을 해제하여 상기 제1 결과 이미지를 복원하는 단계;(b) decompressing the image input from the outside in step (a) to restore the first resultant image; (c) 상기 원 소프트웨어 이미지를 소정 크기의 블록 단위로 백업하는 단계; 및(c) backing up the original software image in units of blocks of a predetermined size; And (d) 상기 원 소프트웨어 이미지와 상기 (b) 단계에서 복원된 제1 결과 이미지를 비트 단위로 XOR 연산을 수행한 제2 결과 이미지를 사용하여 상기 원 소프트웨어 이미지를 상기 소정 크기의 블록 단위로 대체하는 단계를 컴퓨터에 의하여 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체. (d) replacing the original software image by the block unit of the predetermined size using the original software image and the second result image obtained by performing an XOR operation on a bit-by-bit basis with the first result image reconstructed in step (b) A computer-readable recording medium having recorded thereon a program for executing a step by a computer.
KR1019990050594A 1999-11-15 1999-11-15 Software upgrade method and computer-readable medium therefor KR100601626B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990050594A KR100601626B1 (en) 1999-11-15 1999-11-15 Software upgrade method and computer-readable medium therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990050594A KR100601626B1 (en) 1999-11-15 1999-11-15 Software upgrade method and computer-readable medium therefor

Publications (2)

Publication Number Publication Date
KR20010046714A KR20010046714A (en) 2001-06-15
KR100601626B1 true KR100601626B1 (en) 2006-07-14

Family

ID=19620113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990050594A KR100601626B1 (en) 1999-11-15 1999-11-15 Software upgrade method and computer-readable medium therefor

Country Status (1)

Country Link
KR (1) KR100601626B1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
KR100806104B1 (en) * 2001-11-28 2008-02-21 엘지전자 주식회사 Upgrade method for software in digital electric home appliance
KR100922102B1 (en) * 2002-12-17 2009-10-16 엘지전자 주식회사 Method for upgrade and backup in mobile terminal
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
US7802129B2 (en) * 2007-10-17 2010-09-21 Hewlett-Packard Development Company, L.P. Mobile handset employing efficient backup and recovery of blocks during update
KR101630001B1 (en) * 2012-11-08 2016-06-13 엘에스산전 주식회사 Apparatus Capable of Changing Program During Operation
US9274900B2 (en) * 2013-12-03 2016-03-01 Samsung Electronics Co., Ltd. Method and apparatus for updating firmware

Also Published As

Publication number Publication date
KR20010046714A (en) 2001-06-15

Similar Documents

Publication Publication Date Title
US7669195B1 (en) Electronic device network supporting compression and decompression in electronic devices and update generator
US8201054B2 (en) Fault-tolerant method and apparatus for updating compressed read-only file systems
CN108027753B (en) In-vehicle control device, program update system, and storage medium storing program update software
US8200886B2 (en) Efficient system and method for updating a memory device
KR100601626B1 (en) Software upgrade method and computer-readable medium therefor
EP1769343B1 (en) Method and system for in-place updating content stored in a storage device
KR101359834B1 (en) Methods and systems for updating content including a compressed version
KR101074010B1 (en) Block unit data compression and decompression method and apparatus thereof
US8650439B2 (en) Apparatus and method for fault tolerant FOTA update
JP5503539B2 (en) Method and system for repairing a damaged hard disk file system
CN105009067B (en) Managing operations on units of stored data
US20040103340A1 (en) Upgrading of firmware with tolerance to failures
US20110179406A1 (en) Firmware update system and information apparatus, and program
KR20130138635A (en) Method and apparatus for fault tolerant fota update with single backup block write
CN111475195A (en) Firmware upgrading method, device and system
CN110941514A (en) Data backup method, data recovery method, computer equipment and storage medium
CN111221682A (en) Method for mirroring storage system
KR102275240B1 (en) Managing operations on stored data units
EP3355184A1 (en) A method for generating a delta file for in-place updating of memory content and a method for memory updating
EP2333660B1 (en) Method of and apparatus for providing a logical view of data stored in an non-volatile memory
JP2000207193A (en) Magnetic tape unit and firmware updating method for the same
JPH06274279A (en) Mirrored disk and its control system
CN113485874B (en) Data processing method and distributed storage system
CN116737065A (en) Bad block table inheritance and management method
EP1686463A1 (en) Difference generation method and apparatus

Legal Events

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