KR100321999B1 - 스크립트를이용한프로그램패치방법 - Google Patents

스크립트를이용한프로그램패치방법 Download PDF

Info

Publication number
KR100321999B1
KR100321999B1 KR1019970033994A KR19970033994A KR100321999B1 KR 100321999 B1 KR100321999 B1 KR 100321999B1 KR 1019970033994 A KR1019970033994 A KR 1019970033994A KR 19970033994 A KR19970033994 A KR 19970033994A KR 100321999 B1 KR100321999 B1 KR 100321999B1
Authority
KR
South Korea
Prior art keywords
program
data
patch
changed
index
Prior art date
Application number
KR1019970033994A
Other languages
English (en)
Other versions
KR19990011053A (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 윤종용
Priority to KR1019970033994A priority Critical patent/KR100321999B1/ko
Publication of KR19990011053A publication Critical patent/KR19990011053A/ko
Application granted granted Critical
Publication of KR100321999B1 publication Critical patent/KR100321999B1/ko

Links

Images

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 하드웨어의 변경 없이 모듈별 인덱스값과 간단한 프로그램 패치 알고리즘을 이용하여 원격 시스템의 프로그램 코드 및 데이터를 변경하는 방법에 관한 것으로서, 프로그램 코드를 저장하는 플래시 메모리와 프로그램 데이터를 저장하는 램을 가지는 시스템의 프로그램 패치 방법에 있어서, 시스템의 운용이 시작되면 관리 장치로부터 프로그램 데이터를 다운로드하여 시스템 메모리의 특정 영역에 저장하는 과정, 저장된 프로그램의 인덱스를 검사하여 패치 모듈인지를 검사하는 패치 모듈 검사 과정을 수행하는 과정, 인덱스가 패치 모듈이면 플래시 메모리에 저장된 패치될 데이터를 램 영역으로 복사하는 과정, 다운로드된 프로그램 데이터를 이용하여 램 영역에 복사된 데이터를 변경하는 과정, 변경된 데이터를 플래시 메모리에 기록하기 위하여 변경된 데이터의 오류를 확인하는 과정, 오류 확인 결과 오류가 없으면, 시스템을 재시작하는 과정, 시스템이 재시작되면 변경된 데이터를 플래시 메모리에 기록하는 과정, 수정된 주 프로그램을 실행하고 스크립트 패치 알고리즘을 마치는 과정을 포함한다.

Description

스크립트를 이용한 프로그램 패치 방법{METHOD FOR PROGRAM PATCH USING SCRIPT}
본 발명은 스크립트(Script)를 이용한 프로그램 패치방법(Program patch algorithm)에 관한 것으로서, 특히 하드웨어의 변경 없이 모듈별 인덱스 값과 간단한 프로그램 패치 알고리즘을 이용하여 원격 시스템의 프로그램 코드 및 데이터를 변경하는 방법에 관한 것이다.
통상적인 컴퓨터 시스템은 중앙처리장치(Central Processor Unit: CPU)와 메모리 및 입/출력 장치를 포함하는데, 이러한 컴퓨터 시스템을 운영하다 보면 메모리에 저장된 시스템의 구성 정보나 운용 파라미터를 변경시킬 필요가 발생할 수 있다. 이러한 변경 정보는 중앙의 관리 장치로부터 원격지의 시스템으로 다운 로드된다.
도 1은 통상적인 컴퓨터 시스템의 구성을 나타낸 것으로서 도시된 바와 같이, 중앙처리장치(CPU)와 램(Random Access Memory: RAM)과 플래시 메모리(Flash Memory) 및 입/출력 복호기(Decoder)로 구성된다. 플래시 메모리는 블럭 단위로 쓰기 동작을 수행하는데 다운 로드된 패치 데이터는 플래시 메모리와는 별도의 영역(예를 들어 램 영역)에 위치하게 된다.
도 2는 상기 도 1에서 보이고 있는 플래시 메모리의 메모리 맵(Map)을 나타낸 것으로서 도시된 바와 같이, 시스템 초기 구동시 상위 시스템인 관리 장치로부터 프로그램 로드 데이터를 읽어오기 위하여 사용되는 부트(Boot) 프로그램 및 데이터 로딩(Loading)을 담당하는 로더(Loader) 프로그램을 위한 메모리 영역과, 다수의 프로그램 코드 모듈을 위한 다수의 메모리 영역이 도시되었다.
상기 플래시 메모리와 램 영역에 저장되는 프로그램 코드와 데이터 등은 스크립트 방식을 이용하는 스크립트 패치 데이터를 이용하여 변경이 가능하다. 도 3 은 스크립트 방식을 이용한 스크립트 패치 데이터 형식을 나타낸 것으로서 도시된 바와 같이, 패치 인덱스와 패치 주석문을 사용하여 스크립트 방식으로 데이터를 패치하게 된다.
일반적으로 원격 시스템(Remote System)에 있는 프로그램 또는 데이터의 일부분이나 시스템의 구성 정보와 각종 운용 파라미터를 변경할 필요가 발생할 경우, 이를 위해서는 하드웨어적인 메모리 교체작업 또는 모든 프로그램 시스템 코드의 다운로드에 의한 프로그램 전체 변경이 필요하다. 즉, 종래에는 프로그램, 데이터, 시스템의 구성 정보 및 각종 운용 파라미터의 변경이 요구되는 경우 이를 적용한 프로그램을 특정 램에 저장하고, 이를 시스템에 장착되어 있는 램과 교체하였다.
특히 시스템의 운용 파라미터를 변경할 필요가 발생한 경우, 운용 파라미터 부분은 프로그램 코드 영역과는 달리 수정할 수가 없고 크기가 큰 전체 프로그램을 다운 로드하여야 하기 때문에, 이에 따라 다운로드 및 파라미터 변경에 걸리는 시간이 매우 길어졌다는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위해서 창안된 것으로, 원격 시스템의 특정 영역 메모리에 위치한 데이터를 변경함에 있어서 전체 프로그램을 다운로드하지 않고도 프로그램의 변경 또는 시스템 파라미터의 변경이 가능하게 하는 스크립트를 이용한 프로그램 패치 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해서 창안된 본 발명은,
프로그램 코드를 저장하는 플래시 메모리와 프로그램 데이터를 저장하는 램을 가지는 시스템의 프로그램 패치 방법에 있어서, 시스템의 운용이 시작되면 관리 장치로부터 프로그램 데이터를 다운로드하여 시스템 메모리의 특정 영역에 저장하는 제 1 과정;
상기 저장된 프로그램의 인덱스를 검사하여 패치 모듈인지를 검사하는 패치모듈 검사 과정을 수행하는 제 2 과정;
상기 인덱스가 패치 모듈이면 플래시 메모리에 저장된 패치될 데이터를 램 영역으로 복사하는 과정 제 3 과정;
상기 다운로드된 프로그램 데이터를 이용하여 상기 램 영역에 복사된 데이터를 변경하는 제 4 과정;
상기 변경된 데이터를 플래시 메모리에 기록하기 위하여 상기 변경된 데이터의 오류를 확인하는 제 5 과정;
상기 오류 확인 결과 오류가 없으면 시스템을 재시작하는 제 6 과정;
상기 시스템이 재시작되면 상기 변경된 데이터를 플래시 메모리에 기록하는 제 7 과정;
상기 수정된 주 프로그램을 실행하고, 스크립트 패치 알고리즘을 마치는 제 8 과정을 포함한다.
도 1은 통상적인 컴퓨터 시스템의 구성도.
도 2는 도 1에서 보이고 있는 램과 플래시 메모리의 메모리 맵 구조를 보이고 있는 도면.
도 3은 통상적인 스크립트 방법을 이용한 스크립트 패치 데이터 형식을 보이고 있는 도면.
도 4는 본 발명의 실시 에에 따른 스크립트를 이용한 프로그램 패치 방법을 나타낸 흐름도.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세히 설명한다.
본 발명은 플래시 메모리의 패치 데이터를 램 영역으로 복사한 후 다운 로드 한 프로그램 패치 데이터를 이용하여 상기 복사한 데이터를 변경한 후 변경된 데이터를 다시 플래시 메모리로 복사함으로써, 프로그램 전체를 변경하지 않고 원하는 부분만을 변경하므로 패치 데이터의 다운로드 시간과 데이터 변경 시간을 단축시킬 수 있습니다.
도 4 는 본 발명에 의한 스크립트 방식을 이용하는 스크립트 패치 동작의 흐름도를 나타낸다. 상기 도 4의 방법은 전술한 도 1의 시스템에서 동작된다.
상기 도 4를 참조하면, 시스템의 운용이 시작되면 원격 시스템은 상위의 관리 장치로부터 변경된 프로그램을 다운 로드하여 시스템 메모리의 특정 영역(예를 들어 램 영역)에 저장한다. 그런 다음 원격 시스템은 상기 저장된 프로그램의 인덱스를 검사하여 프로그램 수행 과정 또는 패치 모듈 과정을 선택한다.
상기 프로그램 인덱스의 검사 과정에서 상기 인덱스가 미리 정해진 특정한 값과 같으면 해당하는 프로그램을 실행하고 스크립트 패치 알고리즘을 마친다. 만일 상기 인덱스가 상기 특정한 값과 같지 않으면 상기 인덱스가 패치 모듈인지를 검사하는 패치 모듈 검사 과정을 수행한다.
상기 패치 모듈 검사 과정에서 상기 인덱스가 패치 모듈이면 패치 데이터를 다른 메모리 영역(예를 들어 램 영역)으로 복사하고, 시스템의 정확한 동작을 위하여 시스템의 종류를 검사한다. 상기 시스템 종류 검사 과정에서 오류가 발생하면 스크립트 패치 알고리즘을 마치고, 시스템에 오류 발생이 없다면 시스템 운용 프로그램의 버전을 검사한다. 상기 버전 검사 과정에서 에러가 발생하면 스크립트 알고리즘의 수행을 마치고, 그렇지 않으면 플래시 메모리에 저장되어 있는 패치될 프로그램을 데이터를 램 영역에 복사한다.
복사 과정이후에는 램 영역에서 메모리의 시험 과정, 메모리의 저장된 데이터의 복사 과정, 메모리의 데이터 수정과정이 수행된다. 램 영역으로 복사된 프로그램은 다운 로드된 패치 데이터에 의하여 변경된다. 즉 플래시 메모리에서는 데이터가 블록 단위로 관리되기 때문에 수정된 일부 내용만을 변경하기가 어렵다. 따라서 본 발명은 플래시 메모리에서 수정할 부분의 프로그램 모듈을 램 영역에 복사한 다음, 램 영역에서 패치된 내용을 수정한 후 이후 과정에서 다시 플래시 메모리로 복사한다. 이로써 본 발명은 프로그램 전체를 수정하지 않고 변경된 특정 부분만을 수정할 수 있다.
상기 과정 이후에는 플래시 메모리에 저장될 데이터의 오류를 검사하는 CRC(Cyclic Redundancy Check)를 계산하여 데이터의 오류를 확인한 후 오류가 없으면 시스템을 재 시작한다.
상기 시스템의 재시작 이후에 플래시 메모리에 상기 패치 데이터에 의하여 변경된 프로그램 데이터를 기록한다. 수정된 메인 프로그램을 실행하고 스크립트 패치 알고리즘을 마친다.
상기와 같이 구성된 본 발명에 의한 스크립트 패치 알고리즘은, 플래시 메모리와 램의 특정 영역에 위치한 데이터의 변경이 가능하고, 변경을 요구하는 부분만을 다운로드하기 때문에 다운로드 시간을 단축시킬 수 있으며, 이에 따라 변경에 요구되는 시간이 단축된다. 또한 다운로드되는 데이터의 양을 줄여줄 수 있기 때문에 전송 선로의 점유 시간(seize time)을 줄여주어 전송 효율이 증가된다.

Claims (2)

  1. 프로그램 코드를 저장하는 플래시 메모리와 프로그램 데이터를 저장하는 램을 가지는 시스템의 프로그램 패치 방법에 있어서,
    시스템의 운용이 시작되면 관리 장치로부터 변경된 프로그램 데이터를 다운로드하여 시스템 메모리의 특정 영역에 저장하는 과정;
    스크립트 패치 알고리즘에 따라 상기 시스템 메모리의 특정 영역에 저장된 상기 프로그램 데이터의 인덱스를 검사하여 패치 모듈인지를 검사하는 패치 모듈 검사 과정;
    상기 인덱스가 패치 모듈이면 상기 플래시 메모리부터 상기 인덱스에 대응 하는 데이터를 상기 램의 소정 영역으로 복사하는 과정;
    상기 시스템 메모리의 특정 영역에 저장된 상기 프로그램 데이터에 의해 상기 램의 소정 영역에 복사된 데이터를 패치 및 변경하는 과정;
    상기 변경된 데이터를 상기 플래시 메모리에 기록하기 위하여 상기 변경된 데이터의 오류를 확인하는 과정;
    상기 오류 확인 결과 오류가 없으면 시스템을 재 시작하는 과정;
    상기 시스템이 재 시작되면 상기 변경된 데이터를 상기 인덱스에 준하여 상기 플래시 메모리에 기록하는 과정;
    상기 변경된 주 프로그램을 실행하고 스크립트 패치 알고리즘을 마치는 제 8 과정을 포함하여 이루어지는 것을 특징으로 하는 스크립트를 이용한 프로그램 패치방법.
  2. 제 1 항에 있어서,
    상기 시스템 메모리의 특정 영역에 저장된 상기 프로그램 데이터는 전체 프로그램의 일부임을 특징으로 하는 스크립트를 이용한 프로그램 패치 방법.
KR1019970033994A 1997-07-21 1997-07-21 스크립트를이용한프로그램패치방법 KR100321999B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970033994A KR100321999B1 (ko) 1997-07-21 1997-07-21 스크립트를이용한프로그램패치방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970033994A KR100321999B1 (ko) 1997-07-21 1997-07-21 스크립트를이용한프로그램패치방법

Publications (2)

Publication Number Publication Date
KR19990011053A KR19990011053A (ko) 1999-02-18
KR100321999B1 true KR100321999B1 (ko) 2002-04-22

Family

ID=37460639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970033994A KR100321999B1 (ko) 1997-07-21 1997-07-21 스크립트를이용한프로그램패치방법

Country Status (1)

Country Link
KR (1) KR100321999B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100620729B1 (ko) * 2004-03-31 2006-09-13 주식회사 팬택앤큐리텔 소프트웨어 이미지 생성 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940005031A (ko) * 1992-08-06 1994-03-16 정용문 교환시스템의 사용중 소프트웨어 버젼 변경 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940005031A (ko) * 1992-08-06 1994-03-16 정용문 교환시스템의 사용중 소프트웨어 버젼 변경 방법

Also Published As

Publication number Publication date
KR19990011053A (ko) 1999-02-18

Similar Documents

Publication Publication Date Title
CN109933348B (zh) 一种电子控制单元中Bootloader的更新方法和装置
KR100675518B1 (ko) 모듈식 바이오스 업데이트 메커니즘
US7036007B2 (en) Firmware architecture supporting safe updates and multiple processor types
JP4878715B2 (ja) オペレーティングシステムに適合しないアプリケーションにパッチを当てる方法、コンピュータシステム及びコンピュータ可読記録媒体
KR100880783B1 (ko) 전자 장치에서의 3-단계 부팅 프로세스
US20070094656A1 (en) Self-modifying copier for downloading executable code in a non-disruptive manner
US20110283274A1 (en) Firmware image update and management
US20050085222A1 (en) Software updating process for mobile devices
US20050060699A1 (en) Method and system for updating software
JP2021002317A (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
US20120304163A1 (en) Management of Software and Operating System Updates Required for the Process of Creating a Virtual Machine Facsimile of an Existing Physical or Virtual Machine
US20080263350A1 (en) Update in-use flash memory without external interfaces
JPH0836488A (ja) ダイナミック・パッチングを使用するランタイム・エラー・チェック方法と装置
GB2466685A (en) Fault tolerant updating of firmware
CN111562934B (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
RU2248627C2 (ru) Способ и устройство для изменения содержимого запоминающих устройств блоков управления
CN111240720A (zh) 引导程序升级方法、装置及存储介质
CN110874237A (zh) 软件升级方法、装置、终端以及可读存储介质
US5987625A (en) Method and apparatus for testing network bootable devices
CN110007935B (zh) 一种程序升级的处理方法、装置及设备
US6925522B2 (en) Device and method capable of changing codes of micro-controller
CN111400256B (zh) 一种应用程序调用资源文件的方法及装置
CN114860291A (zh) 一种引导及应用程序灵活储存与升级的方法
US6502176B1 (en) Computer system and methods for loading and modifying a control program without stopping the computer system using reserve areas
US6336215B1 (en) Apparatus and method for on-line code only replacement of a running program using checkpoints

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090102

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee