KR100284430B1 - 프로그램 갱신 방법 및 장치 - Google Patents

프로그램 갱신 방법 및 장치 Download PDF

Info

Publication number
KR100284430B1
KR100284430B1 KR1019980056063A KR19980056063A KR100284430B1 KR 100284430 B1 KR100284430 B1 KR 100284430B1 KR 1019980056063 A KR1019980056063 A KR 1019980056063A KR 19980056063 A KR19980056063 A KR 19980056063A KR 100284430 B1 KR100284430 B1 KR 100284430B1
Authority
KR
South Korea
Prior art keywords
code
system initialization
initialization code
original
copy
Prior art date
Application number
KR1019980056063A
Other languages
English (en)
Other versions
KR20000040430A (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 KR1019980056063A priority Critical patent/KR100284430B1/ko
Priority to US09/442,507 priority patent/US6604194B1/en
Publication of KR20000040430A publication Critical patent/KR20000040430A/ko
Application granted granted Critical
Publication of KR100284430B1 publication Critical patent/KR100284430B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 프로그램 갱신 방법 및 장치에 관한 것으로 특히, 사본 시스템 초기화 코드의 영역을 고정적으로 지정할 수 있도록 하는 회로를 구비하여 프로그램 갱신시 정전등으로 인한 시스템 오동작 및 동작 불능 상태를 제거할 수 있도록 함으로써 마스터 코드는 물론 시스템 초기화 코드도 원격지로부터 안전하게 최신 버전으로 갱신할 수 있도록 함에 목적이 있다. 이러한 목적의 본 발명은 시스템의 동작 제어를 위한 프로그램을 저장하기 위한 플래시 메모리(230)와, 시스템의 동작에 따른 연산 데이터를 저장하기 위한 시스템 메모리(240)와, 시스템의 전체 동작을 제어하는 씨피유(CPU)(210)와, 원격지 서버와 통신하기 위한 네트워크 인터페이스부(250)와, 상기 씨피유(210)와 상기 플래시 메모리(230), 시스템 메모리(240) 및 네트워크 인터페이스부(250)간의 버스를 제공하는 시스템 제어부(220)와, 시스템의 리세트 신호를 제공하며 원본 시스템 초기화 코드가 정상적으로 동작하지 않은 경우 시스템을 리세트시키는 리세트 로직(280)과, 상기 플래시 메모리(230)의 어드레스 영역을 지정하며 원본 시스템 초기화 코드가 정상적으로 실행되었는지 판단하여 실행되지 않은 경우 사본 시스템 초기화 코드를 실행시키기 위한 어드레스를 상기 플래시 메모리(230)에 제공하는 어드레스 제어부(290)로 구성한다.

Description

프로그램 갱신 방법 및 장치
본 발명은 통신 단말 시스템에 관한 것으로 특히, 네트워크를 이용하여 원격지로부터 프로그램을 갱신할 수 있도록 한 프로그램 갱신 방법 및 장치에 관한 것이다.
최근 시스템에서는 롬(ROM)대신 플래시 메모리를 사용하여 프로그램의 갱신을 쉽게 하고 있다.
특히, 네트워크를 통해 최신 버전의 프로그램 코드를 갱신하는 시스템에서는 플래시 메모리를 사용한다.
도1 은 종래 기술의 실시예를 위한 장치의 블럭도로서 이에 도시된 바와 같이, 시스템의 동작 제어를 위한 프로그램을 저장하기 위한 플래시 메모리(130)와, 시스템의 동작에 따른 연산 데이터를 저장하기 위한 시스템 메모리(140)와, 시스템의 전체 동작을 제어하는 씨피유(CPU)(110)와, 원격지 서버와 통신하기 위한 네트워크 인터페이스부(150)와, 사용자에 의한 키보드 또는 마우스 등의 신호를 입력시키는 유저 인터페이스부(160)와, 표시 장치로 비디오 신호를 출력하는 VGA 인터페이스부(170)와, 상기 씨피유(110)와 연결되어 상기 플래시 메모리(130), 시스템 메모리(140), 네트워크 인터페이스부(150), 유저 인터페이스부(160) 및 VGA 인터페이스부(170)과의 버스를 제공하는 시스템 제어부(120)으로 구성된다.
이와같은 종래 기술에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
통신 단말 시스템은 네트워크 인터페이스부(150)를 통해 최신 버전의 플래시 메모리 데이터가 존재하는 원격지 서버와 연결되며 씨피유(110)는 필요시 플래시 메모리(130)에 저장된 데이터를 최신 버전의 데이터로 갱신한다.
상기 플래시 메모리(130)의 저장 내용 구성은 도2 의 예시도에 도시된 바와 같이, 원본 시스템 초기화 코드, 원본 마스터 코드 및 사본 마스터 코드가 각각의 영역에 저장된다.
상기 시스템 초기화 코드는 플래시 메모리(130)의 '0'(HEX) 번지로부터 존재하며 파워 온시 씨피유(CPU)(110)의 동작 시작 번지로서 파워가 온되면 상기 씨피유(110)는 시스템 초기화 코드를 실행하여 시스템을 초기화한다.
상기 원본 마스터 코드는 네트워크 동작, VGA 동작등 단말기 시스템의 기본 프로그램이다.
상기 사본 마스터 코드는 원본 마스터 코드와 똑같은 내용을 복사한 것이다.
종래 기술에서의 플래시 메모리(120)의 데이터 갱신 과정을 도3 의 신호 흐름도를 참조하여 설명하면 다음과 같다.
파워가 온된 후 리세트 신호(RST)가 인액티브되면 씨피유(CPU)(110)는 '0(HEX)'번지를 플래시 메모리(130)에 출력하도록 시스템 제어부(120)를 제어하고 그 시스템 제어부(120)가 상기 플래시 메모리(130)의 '0(HEX)'번지에 저장된 시스템 초기화 코드를 상기 씨피유(110)에 전송하면 그 씨피유(110)가 시스템 초기화 코드를 실행하여 시스템을 초기화한다.
이 후, 씨피유(110)는 플래시 메모리(130)에 저장되어 있는 원본 및 사본 마스터 코드를 시스템 메모리(140)에 로드하도록 시스템 제어부(120)를 제어한다.
이러한 이유는 플래시 메모리(130)의 데이터를 갱신할 때 현재 실행중인 프로그램을 올바르게 동작시키기 위함이다.
이 후, 씨피유(110)는 원본 마스터 코드의 체크섬을 확인하여 이상이 없으면 원본 마스터 코드가 정상이라고 판단하여 시스템 메모리(140)에 저장된 원본 마스터 코드 프로그램을 실행시키고 네트워크 인터페이스부(150)를 통해 서버를 검색하여 원본 마스터 코드의 버전을 판단한다.
이때, 씨피유(110)는 서버로부터의 원본 마스터 코드와 플래시 메모리(130)에 저장되어 있는 원본 마스터 코드를 비교하여 마스터 코드의 갱신 여부를 판단한다.
만일, 마스터 코드를 최신 버전으로 갱신할 필요가 있다면 씨피유(110)는 서버로부터의 마스터 코드로 플래시 메모리(130)의 사본 마스터 코드 영역을 갱신한 후 원본 마스터 코드 영역을 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 동작시키게 된다.
그리고, 마스터 코드의 갱신 여부를 판단하여 갱신이 필요없는 경우 씨피유(110)는 유저 인터페이스부(160)를 통해 입력되는 키보드 또는 마우스의 신호에 따라 다음 작업을 수행시키며 그 작업 진행 상황을 VGA 인터페이스부(170)를 통해 표시 장치에 표시시키게 된다.
한편, 시스템 초기화후 원본 마스터 코드의 체크섬을 확인하여 원본 마스터 코드가 비정상이라고 판단하면 씨피유(110)는 사본 마스터 코드의 이상 유무를 판단하기 위해 사본 마스터 코드의 체크섬을 확인한다.
이때, 사본 마스터 코드가 정상이면 씨피유(110)는 사본 마스터 코드를 실행시키고 네트워크 인터페이스부(150)를 통해 서버를 검색하여 원본 마스터 코드의 버전을 판단한다.
이 후, 씨피유(110)는 서버로부터의 원본 마스터 코드와 플래시 메모리(130)에 저장되어 있는 사본 마스터 코드를 비교하여 사본 마스터 코드의 갱신 여부를 판단한다.
만일, 마스터 코드를 최신 버전으로 갱신할 필요가 있다면 씨피유(110)는 서버로부터의 마스터 코드로 플래시 메모리(130)의 원본 마스터 코드 영역을 갱신한 후 사본 마스터 코드 영역을 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 갱신시키게 된다.
그리고, 사본 마스터 코드의 갱신 여부를 판단하여 갱신이 필요없는 경우 씨피유(110)는 서버로부터의 원본 마스터 코드로 플래시 메모리(130)에 저장된 원본 마스터 코드를 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 동작시키게 된다.
여기서, 원본 마스터 코드 영역만을 갱신하는 이유는 사본 마스터 코드를 실행시키기 이전에 원본 마스터 코드가 이미 손상되었다는 것을 의미하기 때문이다.
즉, 네트워크를 통해 시스템 프로그램을 갱신하기 위하여 통신 단말 시스템은 플래시 메모리를 사용하며, 시스템 프로그램을 최신 버전을 갱신하기 위해서는 갱신하려는 기존의 플래시 메모리 영역을 섹터 단위로 지우고 최신 버전으로 라이트한다.
그러나, 갱신 도중에 정전 등의 문제가 발생하면 갱신하려는 영역의 프로그램이 삭제되어 복구되지 않으므로 프로그램의 갱신이 정상적으로 이루어지지 않아 시스템이 동작 불능 상태가 되는 문제점이 있다.
따라서, 종래에는 플래시 메모리(130)에 마스터 코드의 원본외에 마스터 코드의 사본을 구비하고 있다.
만일, 원본 마스터 코드를 갱신하는 도중에 정전등으로 소실되면 씨피유(110)는 사본 마스터 코드로 동작을 실행시키게 되며 이에 의해 원본 마스터 코드를 최신 버전으로 갱신하고 사본 마스터 코드도 최신 버전으로 갱신하게 된다.
그러나, 종래에는 시스템 초기화 코드를 갱신할 때 정전등으로 인해 시스템 초기화 코드가 소실되거나 잘못 갱신되면 시스템을 동작시킬 대책이 없는 문제점이 있다.
그 이유는 시스템 초기화 코드는 플래시 메모리 영역의 '0(HEX)'번지부터 시작되므로 시스템 초기화 코드의 사본을 마련하여도 사본 시스템 초기화 코드는 플래시 메모리 영역에서 '0hex'번지에 위치하지 않고 파워 온시 씨피유는 항상 플래시 메모리의 '0(HEX)'번지를 가르키므로 사본 시스템 초기화 코드가 실행되지 않아 시스템 초기화 코드를 최신 버전 또는 기존 버전으로 갱신할 수 없기 때문이다.
따라서, 본 발명은 종래의 문제점을 개선하기 위하여 플래시 메모리에 사본 시스템 초기화 코드를 저장함과 동시에 그 사본 시스템 초기화 코드의 영역을 고정적으로 지정할 수 있도록 하는 회로를 구비하여 프로그램 갱신시 정전등으로 인한 시스템 오동작 및 동작 불능 상태를 제거할 수 있도록 함으로써 마스터 코드는 물론 시스템 초기화 코드도 원격지로부터 안전하게 최신 버전으로 갱신할 수 있도록 창안한 프로그램 갱신 방법 및 장치를 제공함에 목적이 있다.
도 1은 종래의 실시예를 위한 장치의 블럭도.
도 2는 도 1에서 플래시 메모리의 구성을 보인 예시도.
도 3은 종래의 실시예를 위한 신호 흐름도.
도 4는 본 발명의 실시예를 위한 장치의 블럭도.
도 5는 도 4에서 플래시 메모리의 구성을 보인 예시도.
도 6은 본 발명의 실시예를 위한 신호 흐름도.
도 7은 도 4에서 리세트 로직과 어드레스 제어부를 보인 회로도.
도 8은 본 발명의 실시를 위한 동작 타이밍도.
* 도면의 주요부분에 대한 부호 설명 *
210 : 씨피유(CPU) 220 : 시스템 제어부
230 : 플래시 메모리 240 : 시스템 메모리
250 : 네트워크 인터페이스부 260 : 유저 인터페이스부
270 : VGA 인터페이스부
본 발명은 상기의 목적을 달성하기 위하여 원본 시스템 초기화 코드를 동작시키고 소정 시간을 계수하는 단계와, 상기에서 소정 시간이 경과되면 원본 시스템 초기화 코드가 동작되지 않은 것으로 판단하여 사본 시스템 초기화 코드를 동작시키는 단계와, 상기에서 원본 또는 사본 시스템 초기화 코드가 실행되면 원본 또는 사본 마스터 코드가 정상인지 판단하는 단계와, 상기에서 마스터 코드가 정상이면 원본 또는 사본 마스터 코드를 실행하고 그 마스터 코드의 갱신 여부를 판단하는 단계와, 상기에서 원본/사본 마스터 코드가 정상이거나 또는 원본/사본 마스터 코드의 갱신을 종료한 경우 사본 시스템 초기화 코드로 동작되었는지 판단하는 단계와, 상기에서 사본 시스템 초기화 코드로 동작된 경우 그 사본 시스템 초기화 코드로 원본 시스템 초기화 코드를 갱신하는 단계와, 상기에서 시스템 초기화 코드의 갱신 과정이 종료되면 시스템 초기화 코드를 새로운 버전으로 갱신할 것인지 판단하는 단계와, 상기에서 시스템 초기화 코드의 갱신으로 판단한 경우 원본/사본 시스템 초기화 코드를 순차적으로 갱신하는 단계를 수행함을 특징으로 한다.
또한, 본 발명은 상기의 목적을 달성하기 위하여 플래시 메모리와 네트워크 인터페이스를 포함하여 원격지 서보로부터의 데이터를 이용하여 상기 플래시 메모리의 데이터를 갱신하는 장치에 있어서, 원본 시스템 초기화 코드가 정상적으로 동작하였는지 판단하는 회로와, 상기에서 원본 시스템 초기화 코드가 정상적으로 동작하지 않은 경우 시스템을 리세트시키는 회로와, 상기에서 원본 시스템 초기화 코드가 정상적으로 동작하지 않은 경우 사본 시스템 초기화 코드를 동작시키는 회로를 구비하여 마스터 코드는 물론 시스템 초기화를 포함하는 전 플래시 영역을 안전하게 갱신할 수 있도록 구성함을 특징으로 한다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
도4 는 본 발명의 실시예를 보인 장치의 블록도로서 이에 도시한 바와 같이, 시스템의 동작 제어를 위한 프로그램을 저장하기 위한 플래시 메모리(230)와, 시스템의 동작에 따른 연산 데이터를 저장하기 위한 시스템 메모리(240)와, 시스템의 전체 동작을 제어하는 씨피유(CPU)(210)와, 원격지 서버와 통신하기 위한 네트워크 인터페이스부(250)와, 사용자에 의한 키보드 또는 마우스 등의 신호를 입력시키는 유저 인터페이스부(260)와, 표시 장치로 비디오 신호를 출력하는 VGA 인터페이스부(270)와, 상기 씨피유(210)와 연결되어 상기 플래시 메모리(230), 시스템 메모리(240), 네트워크 인터페이스부(250), 유저 인터페이스부(260) 및 VGA 인터페이스부(270)과의 버스를 제공하는 시스템 제어부(220)으로 구성된 통신 단말 시스템에 있어서, 시스템의 전체 리셋 신호를 제어하는 리세트 로직(280)과, 상기 플래시 메모리(230)의 어드레스 영역을 지정하며 원본 시스템 초기화 코드가 정상적으로 실행되지 않은 경우 사본 시스템 초기화 코드를 실행시키기 위한 어드레스를 상기 플래시 메모리(230)에 제공하는 어드레스 제어부(290)를 더 포함하여 구성한다.
상기 리세트 로직(280)과 어드레스 제어부(290)는 도7 의 회로도에 도시한 바와 같이 구성된다.
즉, 상기 리세트 로직(280)는 리세트 신호(RST)와 어드레스 제어부(290)의 출력 신호( )를 논리곱하여 리세트 신호(MRST)를 출력하는 앤드 게이트(AN)로 구성한다.
상기 어드레스 제어부(290)는 전원이 온되면 클럭(CLK)을 분주하는 분주기(301)와, 인에이블 단자( )가 로우가 되면 상기 분주기(301)의 출력 신호(Q1)를 계수하는 카운터(302)와, 이 카운터(302)의 출력 신호(RCO)를 반전하여 리세트 로직(280)에 입력시키는 인버터(303)와, 이 인버터(303)의 출력 신호( )의 상승 에지에서 하이 신호를 래치하는 디플립플롭(304)와, 플래시 칩 선택 신호( )가 로우가 되면 플래시 어드레스(FADDR)와 하드웨어적으로 고정된 원본 마스터 시작 어드레스(MSADDR)를 비교하여 일치하면 하이('1'), 일치하지 않으면 로우('0') 신호를 출력하는 비교기(306)와, 이 비교기(306)의 출력 신호(Q4)의 상승 에지에서 하이 신호를 래치하는 디플립플롭(307)과, 이 디플립플롭(307)의 출력 신호(Q3)와 상기 디플립플롭(304)의 출력 신호(Q2)를 논리합하여 상기 카운터(302)의 인에이블 단자( )에 출력하는 오아 게이트(305)와, 하위 플래시 어드레스(LFADDR)와 함께 플래시 메모리(230)에 출력되도록 선택 단자( )가 하이이면 상위 플래시 어드레스(MFADDR)를 선택하고 로우이면 하드웨어적으로 고정된 사본 시스템 초기화 코드의 상위 어드레스(SMADDR)를 선택하는 라인 선택기(309)와, 상기 디플립플롭(304)의 출력 신호( )와 상기 디플립플롭(307)의 출력 신호(Q3)를 논리합하여 상기 라인 선택기(309)의 단자( )에 출력하는 오아 게이트(308)로 구성한다.
이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
통신 단말 시스템은 네트워크 인터페이스부(250)를 통해 최신 버전의 플래시 메모리 데이터가 존재하는 원격지 서버와 연결되며 씨피유(210)는 필요시 플래시 메모리(230)에 저장된 데이터를 최신 버전의 데이터로 갱신한다.
상기 플래시 메모리(230)의 저장 내용 구성은 도5 의 예시도에 도시된 바와 같이, 원본 시스템 초기화 코드, 사본 시스템 초기화 코드, 원본 마스터 코드 및 사본 마스터 코드가 각각의 영역에 저장된다.
상기 원본 시스템 초기화 코드는 플래시 메모리(230)의 '0(HEX)'번지부터 존재하며 파워 온시 씨피유(210)의 동작이 시작되는 번지로서 상기 씨피유(210)는 원본 시스템 초기화 코드를 실행하여 시스템을 초기화한다.
상기 사본 시스템 초기화 코드는 원본 시스템 초기화 코드와 똑같은 내용을 복사한 것으로, 원본 시스템 초기화 코드의 손상시 시스템의 초기화에 이용한다.
상기 원본 마스터 코드는 네트워크 동작, VGA 동작등 단말기 시스템의 기본 프로그램이다.
상기 사본 마스터 코드는 원본 마스터 코드와 똑같은 내용을 복사한 것이다.
즉, 본 발명에서 플래시 메모리(230)의 영역을 갱신하는 과정을 도6 의 신호 흐름도와 도8 의 타이밍도를 참조하여 설명하면 다음과 같다.
파워가 온되어 리세트 신호(RST)가 도8 (a)와 같이 로우인 동안 분주기(301), 카운터(302) 및 디플립플롭(304)(307)은 리세트되며 상기 로우인 리세트 신호(RST)에 의해 리세트 로직(280)은 앤드 게이트(AN)의 출력 신호(MRST)가 도8 (b)와 같이 로우로 되어 시스템이 리세트 상태를 유지한다.
이 후, 리세트 신호(RST)가 도8 (a)와 같이 하이로 인액티브되면 어드레스 제어부(290)는 카운터(302)의 로우 출력(RCO)을 반전하는 인버터(303)의 출력이 하이 상태이므로 리세트 로직(280)에 구비된 앤드 게이트(AN)의 출력(MRST)도 도8 (b)와 같이 하이로 인액티브된다.
이때, 어드레스 제어부(290)는 분주기(301)가 발진기(도면 미도시)에서의 클럭(CLK)을 분주하며 디플립플롭(304)(307)의 로우 신호(Q2)(Q3)를 오아 게이트(305)를 통해 인에이블 단자( )에 인가받은 카운터(302)가 도8 (c)와 같은 상기 분주기(301)의 출력 클럭을 계수하게 된다.
동시에 디플립플롭(304)의 하이 신호( )를 오아 게이트(308)를 통해 선택 단자( )에 인가받은 라인 선택기(309)는 시스템 제어부(220)을 통해 입력되는 씨피유(210)에서의 상위 플래시 어드레스(FADDR = '0'HEX)를 플래시 메모리(230)에 인가하게 된다.
이에 따라, 플래시 메모리(230)의 '0'(HEX)번지에 저장되어 있는 원본 시스템 초기화 코드가 실행되며 씨피유(210)는 시스템을 초기화하게 된다.
이 후, 시스템의 초기화가 완료되어 원본 시스템 초기화 코드가 성공적으로 실행되면 씨피유(210)는 플래시 메모리(230)에 저장된 원본 마스터 코드를 실행시키기 위해 시스템 제어부(220)를 제어하여 원본 마스터 코드 영역의 어드레스(MFADDR)를 어드레스 제어부(290)에 출력하게 된다.
이때, 원본 마스터 코드 영역의 어드레스(MFADDR)와 하드웨어적으로 고정된 원본 마스터 코드의 시작 어드레스(MSADDR)가 일치하므로 비교기(306)의 출력이 하이가 되어 디플립플롭(306)이 하이 입력 신호를 래치하여 하이 신호(Q3)를 출력하게 된다.
이에 따라, 오아 게이트(305)의 출력이 하이가 되어 카운터(302)의 동작이 정지됨에 의해 인버터(303)의 출력( )은 하이 상태를 유지하며 오아 게이트(308)의 출력도 하이 상태를 유지하게 된다.
따라서, 오아 게이트(308)의 출력이 하이가 되어 라인 선택기(309)는 씨피유(210)에 의해 시스템 제어부(220)으로부터 입력되는 상위 플래시 어드레스(MFADDR)를 선택하여 플래시 메모리(230)에 출력하게 된다.
만일, 원본 시스템 초기화 코드가 손상되어 카운터(302)가 소정 시간(T1)을 계수할 때까지 시스템의 초기화기 이루어지지 않으면 상기 카운터(302)가 도8 (d)와 같이 소정 시간동안 하이 신호(RCO)를 출력하여 인버터(303)의 출력( )이 도8 (e)와 같이 소정 시간동안 로우가 되므로 앤드 게이트(AN)의 출력 신호(MRST)가 도8 (b)와 같이 로우가 되어 시스템이 다시 리세트된다.
이때, 인터버(303)의 출력( )이 도8 (e)와 같이 하이에서 로우로 천이되면 디플립플롭(304)은 비반전 단자(Q2)를 로우 상태, 반전 단자( )를 하이 상태로 유지한다.
동시에 시스템의 초기화가 이루어지지 않아 원본 마스터 코드 영역의 어드레스로 점프하지 못하므로 비교기(306)의 출력 신호(Q4)가 도8 (h)와 같이 로우 상태를 유지하여 디플립플롭(307)의 출력 신호(Q3)도 도8 (i)와 같이 로우 상태를 유지하게 된다.
이 후, 소정 시간이 경과되어 카운터(302)의 출력( )이 로우가 되면 인버터(303)의 출력( )이 도8 (e)와 같이 하이가 되고 앤드 게이트(AN)의 출력(MRST)도 도8 (b)와 같이 다시 하이가 된다.
이때, 인버터(303)의 출력( )이 로우에서 하이로 천이되므로 디플립플롭(304)은 하이 신호를 래치하여 비반전 단자(Q2)를 하이 상태로, 반전 단자( )를 도8 (g)와 같이 로우 상태로 천이시키게 된다.
이에 따라, 도8 (f)와 같은 디플립플롭(304)의 하이 출력 신호(Q2)를 오아 게이트(305)를 통해 인에이블 단자( )에 인가받은 카운터(302)는 동작하지 않으며 상기 디플립플롭(304)의 로우 신호( )와 디플립플롭(307)의 로우 신호(Q3)를 입력받은 오아 게이트(308)의 출력이 도8 (j)와 같이 소정 시간(T2)동안 로우로 되어 라인 선택기(309)는 하드웨어적으로 고정된 사본 시스템 초기화 코드 영역의 어드레스(SMADDR)를 플래시 메모리(230)에 출력하게 된다.
따라서, 라인 선택기(309)의 출력(CFADDR)이 하드웨어적으로 고정된 사본 시스템 초기화 영역의 어드레스(SMADDR)이므로 씨피유(210)는 플래시 메모리(230)에 저장되어 있는 사본 시스템 초기화 코드를 실행하여 소정 시간(T2)동안 시스템의 초기화를 수행하게 된다.
이 후, 사본 시스템 초기화 코드의 실행으로 시스템의 초기화가 완료되면 씨피유(210)는 시스템 제어부(220)를 제어하여 원본 마스터 코드 영역의 어드레스(FADDR)를 어드레스 제어부(290)에 입력시키게 된다.
이때, 원본 마스터 코드 영역의 어드레스(MFADDR)와 하드웨어적으로 고정된 원본 마스터 코드의 시작 어드레스(MSADDR)가 일치하므로 비교기(306)의 출력이 하이가 되어 디플립플롭(306)이 하이 입력 신호를 래치하여 하이 신호(Q3)를 출력하게 된다.
이에 따라, 오아 게이트(308)의 출력이 하이가 되어 라인 선택기(309)는 씨피유(210)에 의해 시스템 제어부(220)으로부터 입력되는 상위 플래시 어드레스(MFADDR)를 선택하여 플래시 메모리(230)에 출력하게 된다.
즉, 본 발명은 도8 (k)에 도시한 바와 같이 원본 시스템 초기화 코드를 실행하기 위한 상위 플래시 어드레스를 플래시 메모리(230)에 입력시키고 만일, 원본 시스템 초기화 코드가 손상된 경우 사본 시스템 초기화 코드를 실행시기 위한 하드웨어적으로 고정된 상위 어드레스를 상기 플래시 메모리(230)에 입력시켜 시스템을 초기화하게 된다.
한편, 상기에서 비교기(306)에 입력되는 플래시 어드레스(FADDR)은 시스템의 초기화가 성공적으로 완료된 시점에서만 하드웨어적으로 고정된 원본 마스터 코드 영역의 어드레스(MSADDR)와 일치하고 그 이 후부터는 일치하지 않으므로 디플립플롭(307)은 하이 출력(Q3) 상태를 유지하게 된다.
따라서, 라인 선택기(309)는 상위 플래시 어드레스(MFADDR)를 선택하여 출력하도록 고정되며 그 상위 플래시 어드레스(MFADDR)는 하위 플래시 어드레스(LFADDR)와 함께 플래시 메모리(230)로 입력되어진다.
여기서, 상위 플래시 어드레스(MFADDR)는 각 코드 영역을 구분하기 위해 필요한 어드레스이며 하위 플래시 어드레스(LFADDR)는 각 코드 영역에 공통으로 적용되는 어드레스이다.
그리고, 상기와 같은 과정으로 시스템의 초기화가 종료되면 원본/사본 마스터 코드의 갱신을 위한 동작을 수행하게 되며 이를 설명하면 다음과 같다.
먼저, 시스템의 초기화가 종료되면 씨피유(210)는 플래시 메모리(230)에 저장되어 있는 원본 및 사본 마스터 코드를 시스템 메모리(240)에 로드하도록 시스템 제어부(220)를 제어한다.
이 후, 씨피유(210)는 원본 마스터 코드의 체크섬을 확인하여 이상이 없으면 원본 마스터 코드가 정상이라고 판단하여 시스템 메모리(240)에 저장된 원본 마스터 코드 프로그램을 실행시키고 네트워크 인터페이스부(250)를 통해 서버를 검색하여 원본 마스터 코드의 버전을 판단한다.
이때, 씨피유(210)는 서버로부터의 원본 마스터 코드와 플래시 메모리(230)에 저장되어 있는 원본 마스터 코드를 비교하여 마스터 코드의 갱신 여부를 판단한다.
만일, 마스터 코드를 최신 버전으로 갱신할 필요가 있다면 씨피유(210)는 서버로부터의 마스터 코드로 플래시 메모리(230)의 사본 마스터 코드 영역을 갱신한 후 원본 마스터 코드 영역을 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 동작시키게 된다.
그리고, 마스터 코드의 갱신 여부를 판단하여 갱신이 필요없는 경우 씨피유(210)는 유저 인터페이스부(260)를 통해 입력되는 키보드 또는 마우스의 신호에 따라 다음 작업을 수행시키며 그 작업 진행 상황을 VGA 인터페이스부(270)를 통해 표시 장치에 표시시키게 된다.
한편, 시스템 초기화후 원본 마스터 코드의 체크섬을 확인하여 원본 마스터 코드가 비정상이라고 판단하면 씨피유(210)는 사본 마스터 코드의 이상 유무를 판단하기 위해 사본 마스터 코드의 체크섬을 확인한다.
이때, 사본 마스터 코드가 정상이면 씨피유(210)는 사본 마스터 코드를 실행시키고 네트워크 인터페이스부(250)를 통해 서버를 검색하여 원본 마스터 코드의 버전을 판단한다.
이에 따라, 씨피유(210)는 서버로부터의 원본 마스터 코드와 플래시 메모리(230)에 저장되어 있는 사본 마스터 코드를 비교하여 사본 마스터 코드의 갱신 여부를 판단한다.
만일, 마스터 코드를 최신 버전으로 갱신할 필요가 있다면 씨피유(210)는 서버로부터의 마스터 코드로 플래시 메모리(230)의 원본 마스터 코드 영역을 갱신한 후 사본 마스터 코드 영역을 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 갱신시키게 된다.
그리고, 사본 마스터 코드의 갱신 여부를 판단하여 갱신이 필요없는 경우 즉, 사본 마스터 코드를 실행시키기 이전에 원본 마스터 코드가 이미 손상된 경우 씨피유(210)는 서버로부터의 원본 마스터 코드로 플래시 메모리(230)에 저장된 원본 마스터 코드를 갱신하고 파워를 오프/온하여 갱신된 마스터 코드로 시스템을 동작시키게 된다.
만일, 원본 마스터 코드를 갱신하는 도중에 정전등으로 소실되면 씨피유(210)는 사본 마스터 코드로 동작을 실행시키게 되며 이에 의해 원본 마스터 코드를 최신 버전으로 갱신하고 사본 마스터 코드도 최신 버전으로 갱신하게 된다.
한편, 마스터 코드를 갱신하기 위한 과정이 종료되면 씨피유(210)는 사본 시스템 초기화 코드가 동작되었는지 판단하게 된다.
이때, 상기에서 사본 시스템 초기화 코드가 동작되었다면 플래시 메모리(230)에 저장되어 있는 원본 시스템 초기화 코드가 손상된 것이므로 씨피유(210)는 사본 시스템 초기화 코드로 원본 시스템 초기화 코드를 갱신한다.
따라서, 원본 시스템 초기화 코드가 정상적으로 동작되었거나 또는 사본 시스템 초기화 코드로 동작되어 원본 시스템 초기화 코드를 갱신한 경우 씨피유(210)는 서버로부터의 시스템 초기화 코드의 버젼과 상기 플래시 메모리(230)에 저장되어 있는 원본/사본 시스템 초기화 코드의 버젼를 비교하여 갱신할 것인지를 판단하게 된다.
이에 따라, 시스템 초기화 코드의 갱신이 필요없는 경우 씨피유(210)는 다른 작업을 수행시키게 된다.
만일, 시스템 초기화 코드의 갱신이 필요한 경우 씨피유(210)는 서버로부터의 시스템 초기화 코드로 플래시 메모리(230)에 저장되어 있는 원본 시스템 초기화 코드를 갱신한 후 사본 시스템 초기화 코드를 갱신하고 파워 오프/온를 수행시켜 갱신된 시스템 초기화 코드를 실행한 후 갱신된 마스터 코드를 실행하여 시스템을 동작시키게 된다.
즉, 본 발명은 네트워크를 통해 시스템 프로그램을 새로운 버전으로 갱신하는 경우 플래시 메모리의 기존 영역을 섹터 단위로 지우고 최신 버전으로 라이트하므로 갱신 도중에 정전 등으로 인하여 갱신하려는 영역의 원본 시스템 초기화 코드가 삭제되어도 사본 시스템 초기화 코드를 구비하고 있으므로 시스템의 동작 불능 상태를 방지할 수 있다.
상기에서 상세히 설명한 바와 같이 본 발명은 프로그램 코드의 업데이트가 가능한 플래시 메모리를 채용한 시스템에 있어서, 시스템 초기화 코드의 사본을 추가하고 리셋 로직과 플래시 메모리 어드레스 콘트롤 로직을 하드웨어적으로 제어할 수 있게 하므로서 원격지 서버를 통해 시스템 초기화 코드를 포함한 전 시스템 소프트웨어를 안전하게 최신 버전으로 업데이트하기 위한 효과가 있다.
또한, 본 발명은 통신 매체를 이용하는 모든 단말기 시스템에 적용하여 원격지로부터 단말기의 시스템 코드를 안전하게 업데이트할 수 있는 효과가 있다.

Claims (4)

  1. 원본 시스템 초기화 코드가 실행되었는지 판단하는 제1 단계와, 상기에서 소정 시간이 경과하는 동안 원본 시스템 초기화 코드가 정상적으로 실행되지 않았으면 사본 시스템 초기화 코드를 실행하는 제2 단계와, 상기에서 원본 또는 사본 시스템 초기화 코드가 실행된 후 원본 또는 사본 마스터 코드의 정상이면 서버로부터의 마스터 코드의 버전과 비교하여 갱신 여부를 판단하는 제3 단계와, 상기에서 마스터 코드의 갱신으로 판단하면 서버로부터의 마스터 코드로 갱신하는 제4 단계와, 상기에서 마스터 코드의 갱신 과정이 종료되면 상기에서 시스템 초기화 코드의 갱신 여부를 판단하는 제5 단계와, 상기에서 시스템 초기화 코드의 갱신으로 판단하면 서버로부터의 시스템 초기화 코드로 원본/사본 시스템 초기화 코드를 순차적으로 갱신하는 제6 단계를 수행함을 특징으로 하는 프로그램 갱신 방법.
  2. 제1항에 있어서, 시스템 초기화 코드의 갱신 여부를 판단하는 제5 단계는 마스터 코드의 갱신 과정이 종료되면 초기에 사본 시스템 초기화 코드가 실행되었는지 판단하는 제1 과정과, 상기에서 사본 시스템 초기화 코드가 실행되었으면 사본 시스템 초기화 코드로 원본 시스템 초기화 코드를 갱신하고 서버로부터의 시스템 초기화 코드의 버전과 비교하여 갱신 여부를 판단하는 제2 과정과, 상기에서 초기에 원본 시스템 초기화 코드가 실행되었으면 바로 서버로부터의 시스템 초기화 코드의 버전과 비교하여 갱신 여부를 판단하는 제3 과정을 수행함을 특징으로 하는 프로그램 갱신 방법.
  3. 플래시 메모리와 네트워크 인터페이스를 포함하여 원격지 서버로부터의 데이터를 이용하여 상기 플래시 메모리의 데이터를 갱신하는 통신 단말 시스템에 있어서, 원본 시스템 초기화 코드를 실행시키고 만일 원본 시스템 초기화 코드가 정상적으로 동작하지 않은 상태에서 일정 시간이 경과되면 사본 시스템 초기화 코드를 동작시키는 제1 수단과, 상기 플래시 메모리에 저장되어 있는 원본 시스템 초기화 코드가 정상적으로 동작하였는지 판단하는 제2 수단과, 상기에서 원본 시스템 초기화 코드가 정상적으로 동작하지 않은 경우 시스템을 일정 시간동안 리세트시키는 제3 수단과, 상기 제1 수단에 의해 시스템 초기화 코드가 실행되면 원본/사본 마스터 코드를 실행한 후 그 마스터 코드의 갱신 여부를 판단하여 마스터 코드의 갱신으로 판단한 경우 상기 서버로부터의 마스터 코드로 상기 플래시 메모리의 원본/사본 마스터 코드 영역을 순차적으로 갱신하고 마스터 코드의 갱신 과정이 종료되면 시스템 초기화 코드의 갱신 여부를 판단하여 시스템 초기화 코드의 갱신으로 판단한 경우 상기 서버로부터의 시스템 초기화 코드로 상기 플래시 메모리의 시스템 초기화 코드 영역을 갱신하는 제어 수단을 구비하여 구성함을 특징으로 하는 프로그램 갱신 장치.
  4. 제3항에 있어서, 제1 수단은 사본 시스템 초기화 코드 영역 어드레스를 하드웨어적으로 고정하여 출력하도록 구성함을 특징으로 하는 프로그램 갱신 장치.
KR1019980056063A 1998-12-18 1998-12-18 프로그램 갱신 방법 및 장치 KR100284430B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019980056063A KR100284430B1 (ko) 1998-12-18 1998-12-18 프로그램 갱신 방법 및 장치
US09/442,507 US6604194B1 (en) 1998-12-18 1999-11-18 Program updating method and apparatus for communication terminal system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980056063A KR100284430B1 (ko) 1998-12-18 1998-12-18 프로그램 갱신 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20000040430A KR20000040430A (ko) 2000-07-05
KR100284430B1 true KR100284430B1 (ko) 2001-04-02

Family

ID=19563661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980056063A KR100284430B1 (ko) 1998-12-18 1998-12-18 프로그램 갱신 방법 및 장치

Country Status (2)

Country Link
US (1) US6604194B1 (ko)
KR (1) KR100284430B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306543A (ja) * 2000-04-19 2001-11-02 Nec Corp マイクロコンピュータ及びフラッシュメモリのデータ書換え方法
JP3907520B2 (ja) * 2002-05-14 2007-04-18 キヤノン株式会社 情報処理装置及びそのメモリのアップデート方法と記録装置
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
KR20070120447A (ko) * 2006-06-19 2007-12-24 삼성전자주식회사 시스템 프로그램 갱신 장치 및 방법
JP4333745B2 (ja) 2007-01-15 2009-09-16 株式会社デンソー 電子制御装置
JP4404147B2 (ja) * 2008-01-23 2010-01-27 株式会社デンソー 車載電子制御装置及びその車載電子制御装置の情報更新方法
CN101944036B (zh) * 2010-09-27 2013-05-01 苏州光格设备有限公司 一种基于工业监控系统的ria应用的内存优化方法
KR101630001B1 (ko) * 2012-11-08 2016-06-13 엘에스산전 주식회사 동작 중 프로그램 변경이 가능한 장치

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636583A (en) * 1970-06-24 1987-01-13 The United States Of America As Represented By The Secretary Of The Navy Synchronization of long codes of bounded time uncertainty
JP2865692B2 (ja) * 1989-02-22 1999-03-08 株式会社日立製作所 スイッチングシステム及びその構成方法
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
EP0669023A1 (en) * 1992-11-16 1995-08-30 Microsoft Corporation Method and system for loading device drivers; method for organizing a read only memory unit to be used in a computer system operable without a storage disk
US6182187B1 (en) * 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
GB9601900D0 (en) * 1996-01-31 1996-04-03 Neopost Ltd Electronic apparatus including a memory device and method of reprogramming the memory device
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
US5835760A (en) * 1995-10-13 1998-11-10 Texas Instruments Incorporated Method and arrangement for providing BIOS to a host computer
US6279153B1 (en) * 1995-10-16 2001-08-21 Nec Corporation Multi-user flash ROM update
US5737318A (en) * 1995-12-27 1998-04-07 Philips Electronics North America Corporation Method for initializing a wireless, packet-hopping network
US5805882A (en) * 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
ATE225961T1 (de) * 1996-08-16 2002-10-15 Tokyo Electron Device Ltd Halbleiterspeicheranordnung mit fehlerdetektion und -korrektur
US6128732A (en) * 1997-12-15 2000-10-03 Compaq Computer Corporation Implementing universal serial bus support with a minimum of system RAM
US6308265B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Protection of boot block code while allowing write accesses to the boot block
US6272628B1 (en) * 1998-12-14 2001-08-07 International Business Machines Corporation Boot code verification and recovery
US6247126B1 (en) * 1999-01-25 2001-06-12 Dell Usa, L.P. Recoverable software installation process and apparatus for a computer system
US6393559B1 (en) * 1999-04-30 2002-05-21 Dell Usa, L.P. Method and computer for self-healing BIOS initialization code
US6473856B1 (en) * 1999-06-30 2002-10-29 International Business Machines Corporation Gold code backup for corrupt boot code recovery

Also Published As

Publication number Publication date
KR20000040430A (ko) 2000-07-05
US6604194B1 (en) 2003-08-05

Similar Documents

Publication Publication Date Title
KR101283431B1 (ko) 마이크로 컴퓨터
CN107480011B (zh) Bios切换装置
US20070101166A1 (en) Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer
CN101553789A (zh) 管理快闪存储器中挂起请求的方法及系统
US20190079748A1 (en) Server with double-firmware storage space and firmware update method therefor
US7418589B2 (en) System and method for updating a basic input/output system
US6571347B1 (en) Apparatus and method for intelligent computer initiation program recovery
KR100284430B1 (ko) 프로그램 갱신 방법 및 장치
CN107609403B (zh) 一种嵌入式设备的安全启动方法、装置、设备及介质
CN110647340A (zh) 复杂可编程逻辑器件cpld的升级方法和cpld
CN107450953B (zh) 一种更新bios的方法及装置
US20010018752A1 (en) Apparatus and method for processing information continuously even against extraneously incoming noise
CN112181468A (zh) 一种cpld更新方法、服务器及计算机可读存储介质
CN115129345A (zh) 一种固件升级方法、装置、设备及存储介质
US5949997A (en) Method and apparatus for programming a microprocessor using an address decode circuit
CN111309358A (zh) 一种cpld固件升级方法、装置、设备及可读存储介质
CN111208891B (zh) 一种cpld更新系统及方法
CN116755749A (zh) 板载mcu的升级方法、板载mcu、板卡及信息处理系统
CN110677643A (zh) 触摸屏电视机、触摸屏电视机测试方法、装置及介质
CN108958823B (zh) 修改基本输入输出系统设定值的方法
JP5992029B2 (ja) 基本入出力システムプログラムコードの書き込み回路及び書き込み方法
JPH0640306B2 (ja) デ−タ記憶装置
CN115454465B (zh) 一种cpld固件的自动更新方法
US6018250A (en) Programming method to enable system recovery after power failure
KR100200528B1 (ko) 퍼스널 컴퓨터의 자동 셧다운 방법

Legal Events

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

Payment date: 20121128

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20131122

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20141124

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20151124

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee