KR101341003B1 - 펌웨어 업데이트 방법 및 이를 위한 장치 - Google Patents

펌웨어 업데이트 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR101341003B1
KR101341003B1 KR1020110121620A KR20110121620A KR101341003B1 KR 101341003 B1 KR101341003 B1 KR 101341003B1 KR 1020110121620 A KR1020110121620 A KR 1020110121620A KR 20110121620 A KR20110121620 A KR 20110121620A KR 101341003 B1 KR101341003 B1 KR 101341003B1
Authority
KR
South Korea
Prior art keywords
block
file
update
blocks
old
Prior art date
Application number
KR1020110121620A
Other languages
English (en)
Other versions
KR20130055936A (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 KR1020110121620A priority Critical patent/KR101341003B1/ko
Publication of KR20130055936A publication Critical patent/KR20130055936A/ko
Application granted granted Critical
Publication of KR101341003B1 publication Critical patent/KR101341003B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]

Landscapes

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

Abstract

구 파일을 블록 단위로 업데이트 하는 펌웨어 업데이트 방법 및 이를 위한 장치가 개시된다. 펌웨어 업데이트 장치는 제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여 상기 블록을 참조하는 제 2 파일의 블록을 추출하고, 상기 추출한 제 2 파일의 블록 개수를 카운팅하는 추출부 및 상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 결정부를 포함할 수 있다. 따라서, 구 파일의 업데이트는 블록 단위로 수행되기 때문에 배터리를 제거하는 등의 이유로 업데이트가 도중에 실패하였더라도 이전 업데이트 완료된 블록 이후의 블록부터 업데이트를 계속 진행할 수 있다.

Description

펌웨어 업데이트 방법 및 이를 위한 장치{METHOD OF UPDATING FIRMWARE AND APPARATUS FOR THE SAME}
본 발명은 펌웨어 업데이트에 관한 것으로, 더욱 상세하게는이전 버전의 펌웨어를 새로운 버전의 펌웨어로 업데이트하는 펌웨어 업데이트 방법 및 이를 위한 장치에 관한 것이다.
무선통신 기술이 발달하면서 사용자 편의를 위한 다양한 서비스와 기능이 포함된 휴대용 단말기, 예를 들어 휴대용 CDP(Compact Disk Player), 휴대용 MP3 플레이어, PMP(Portable Multimedia Player) 등의 기술적 발전 또한 눈부시게 발전하고 있다.
이러한 휴대용 단말기는 그 기능이 다양하고 복잡해짐에 따라 휴대용 단말기에 탑재되는 소프트웨어 또한 많은 버그가 발생할 확률이 높아지고, 휴대용 단말기의 출시 이후에 새로운 기능의 추가에 대한 요구가 갈수록 더해지고 있다. 이와 같은 이유로 최근 휴대용 단말기는 사용자의 요구를 반영하는 다양한 기능들을 수용하고 있다.
특히, 최근의 휴대용 단말기는 제품 출시 단계에서 모든 개발이 완료되는 것이 아니라, 제품의 최초 출시 이후에도 끊임없이 탑재된 소프트웨어의 진화를 추구하고 있다.
따라서, 휴대용 단말기의 개발 및 생산 업체의 경우에는 제품 최초 출시 이후 단계에서도 출시된 제품에 탑재된 펌웨어의 수정, 보완 작업을 지속적으로 진행한다.
일반적으로 펌웨어는 업데이트 가능하도록 구성되어 휴대용 단말기의 제조 후에도 업데이트 파일의 설치를 통해 각종 프로그램 또는 하드웨어의 개발로 인하여 추가된 새로운 기능들을 업데이트 파일을 설치함으로써 사용할 수 있도록 한다.
여기서, 펌웨어는 일반적으로 ROM(Read Only Memory)에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미하며, 이러한 펌웨어는 프로그램 관점에서 소프트웨어와 동일하지만 하드웨어와 밀접한 관계를 가지고 있다는 점에서 소프트웨어와 하드웨어의 특성을 동시에 가진다.
이러한 휴대용 단말기는 그 기능이 다양하고 복잡해짐에 따라 휴대용 단말기에 탑재되는 소프트웨어 또한 많은 버그가 발생할 확률이 높아지고, 휴대용 단말기의 출시 이후에 새로운 기능의 추가에 대한 요구가 갈수록 더해지고 있다. 이와 같은 이유로 최근 휴대용 단말기는 사용자의 요구를 반영하는 다양한 기능들을 수용하고 있다. 특히, 최근의 휴대용 단말기는 제품 출시 단계에서 모든 개발이 완료되는 것이 아니라, 제품의 최초 출시 이후에도 끊임없이 탑재된 소프트웨어의 진화를 추구하고 있다.
따라서, 휴대용 단말기의 개발 및 생산 업체의 경우에는 제품 최초 출시 이후 단계에서도 출시된 제품에 탑재된 펌웨어 수정 등의 업데이트 작업을 지속적으로 진행할 수 있다.
하지만, 휴대용 단말기의 업데이트를 위하여 종래에 사용자는 서비스 센터를 찾거나 컴퓨터에 업데이트 파일을 다운로드 받은 후 컴퓨터와 휴대단말기를 유무선으로 연결하여 업데이트를 하였다.
그러나 이러한 업데이트 과정 중에는 펌웨어 전체가 플래쉬 메모리에 기록되므로 사용자의 실수나 운영체제의 오류, 시스템 재부팅, 전원 부족, 전원 케이블 접촉 불량 등과 같은 상황이 발생하면 업데이트 과정을 다시 실행해야 하는 상황이 발생되며, 이에 따라 펌웨어 업데이트를 수행하는데 많은 시간이 낭비되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 업데이트 대상 펌웨어를 블록 단위 업데이트하는 펌웨어 업데이트 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 업데이트 대상 펌웨어를 블록 단위 업데이트하는 펌웨어 업데이트 장치를 제공하는 데 있다.
상기한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 펌웨어 업데이트 방법은, 제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 단계 및 상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 단계를 포함한다.
여기서, 상기 업데이트 순서를 결정하는 단계는 상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.
여기서, 펌웨어 업데이트 방법은 상기 결정한 업데이트 순서에 따라 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 단계를 더 포함할 수 있다.
여기서, 업데이트하는 단계는 상기 제 1 파일의 블록과 새로운 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 각 블록에 대한 업데이트를 수행할 수 있다.
상기한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치는제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 참조블록 추출부 및 상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 업데이트 순서 결정부를 포함한다.
여기서, 업데이트 순서 결정부는 상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.
여기서, 상기 결정한 업데이트 순서에 따라 제 1 파일의 각 블록에 대한 업데이트를 수행하는 업데이트부를 더 포함할 수 있다.
여기서, 업데이트부는 상기 제 1 파일의 블록과 제 2 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 블록에 대한 업데이트를 수행할 수 있다.
상기와 같은 본 발명에 따른 펌웨어 업데이트 방법 및 이를 위한 장치를 이용할 경우에는구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트 되기 때문에 배터리를 제거하는 등의 이유로 업데이트가 도중에 실패하였더라도 이전 업데이트 완료된 블록 이후의 블록부터 업데이트를 계속 진행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 참조 테이블을 추출하는 과정을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 추출한 참조 테이블을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 업데이트 우선순위 결정부가 업데이트 우선순위를 결정하는 과정을 나타내는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 과정을 설명하기 위한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 구성을 설명하기 위한 블록도이다.
도 1을 참조하면, 펌웨어 업데이트 장치는 구 파일과 새 파일을 블록 단위로 비교하여 구 파일의 각 블록에 대하여 블록을 참조하는 새 파일의 블록을 추출하여 카운팅하는 참조블록 추출부(110), 카운팅한 새 파일의 블록 개수에 따라 업데이트 순서를 결정하는 업데이트 순서 결정부(130), 업데이트 순서에 따라 델타파일 저장부(170)에 저장된 델타 파일을 이용하여 구 파일을 새 파일로 업데이트하는 업데이트부(150)를 포함하여 구성될 수 있다.
참조블록 추출부(110)는 구 파일 및 새 파일을 제공받아 구 파일과 새 파일을 블록 단위로 비교할 수 있다. 여기서, 블록 단위는 펌웨어가 저장되는 비휘발성 메모리의 물리적 단위를 의미하며, 블록 단위는 예를 들어 플래쉬 메모리의 섹터 단위 혹은 임의의 단위가 될 수 있다.
예를 들어, 구 파일의 블록이 2개이고, 구 파일을 참조한 새 파일의 블록 4개인 경우, 참조블록 추출부(110)는 구 파일의 첫 번째 블록을 참조하는 블록이 제 2 파일에 존재하는지 비교하며, 첫 번째 블록에 대한 검색이 종료된 후 구 파일의 두 번째 블록을 참조하는 블록이 제 2 파일에 존재하는지 비교한다.
또한, 참조블록 추출부(110)는 구 파일의 블록을 참조하는 새 파일의 블록을 추출하고, 추출한 새 파일의 블록 개수를 카운팅하여 참조 테이블을 생성하며, 생성한 참조 테이블을 업데이트 순서 결정부(130)로 제공할 수 있다.
예를 들어, 구 파일의 첫 번째 블록에 대하여 상기 첫 번째 블록을 참조하는 새 파일의 블록이 두 번째 블록 및 네 번째 블록인 경우, 참조블록 추출부(110)는 구 파일의 첫 번째 블록의 참조블록으로 두 번째 블록 및 네 번째 블록을 추출할 수 있다. 이에 대한 상세한 설명은 후술할 도 2에서 보다 구체적으로 설명하기로 한다.
여기서, 새 파일의 두 번째 블록 및 네 번째 블록은 구 파일의 첫 번째 블록에 포함된 일부 또는 전부의 정보에 대한 포인터 정보를 포함하며, 포인터 정보를 이용하여 구 파일의 첫 번째 블록을 참조할 수 있다.
업데이트 순서 결정부(130)는 참조블록 추출부(110)로부터 참조 테이블을 수신하고, 수신한 참조 테이블을 이용하여 업데이트 순서를 결정할 수 있다. 여기서, 업데이트 순서 결정부(130)는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 구 파일의 블록부터 업데이트되도록 업데이트 순서를 결정한다.
업데이트부(150)는 업데이트 순서 결정부(130)로부터 업데이트 순서를 제공받고, 제공받은 업데이트 순서에 따라 구 파일의 블록을 새 파일의 블록으로 업데이트할 수 있다.
여기서, 업데이트부(150)는 델타파일 저장부(170)로부터 수신한 델타파일을 이용하여 구 파일의 블록을 새 파일의 블록으로 업데이트할 수 있다. 여기서, 델타 파일은 구 파일의 블록과 새 파일의 블록 중 동일하지 않은 부분만을 추출하여 생성한 파일을 의미한다.
즉, 업데이트부(150)는 구 파일의 블록을 업데이트할 때 델타파일 저장부(170)로부터 수신한 업데이트될 부분만을 포함하는 델타 파일을 이용하기 때문에 빠른 시간에 업데이트를 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 참조 테이블을 추출하는 과정을 설명하기 위한 개념도이다.
도 2를 참조하면, 참조블록 추출부(110)는 구 파일(100) 및 새 파일(200)을 수신하고, 수신한 구 파일(100)의 블록 및 새 파일(200)의 블록을 비교하여 구 파일(100)의 각 블록을 참조하는 새 파일(200)의 블록을 추출할 수 있다.
도 2에서는 구 파일(100)을 사용한 새 파일(200)이 하나인 경우를 예로 들어 설명할 것이지만, 구 파일(100)을 사용한 새 파일 하나 이상일 수도 있다.
또한, 도 2에서 구 파일(100)은 8개의 블록으로 구성되어 있고, 새 파일(200)은 8개의 블록으로 구성되어 있으나, 구 파일(100)의 블록 및 새 파일(200)의 블록은 파일의 크기에 따라 변경될 수 있고, 구 파일(100)의 블록 및 새 파일(200)의 블록의 개수가 변경됨에 따라 도 2의 도면이 변경될 수 도 있다.
참조블록 추출부(110)는 새 파일(200)의 8개의 블록에 대해서구 파일(100)의 8개의블록을 참조하는 새 파일(200)의 블록을 추출할 수 있다.
참조블록 추출부(110)는 구 파일(100)의 첫 번째 블록에 대하여 상기 첫 번째 블록에 포함된 일부 또는 전부의 정보와 동일한 정보를 새 파일(200)의 블록이두 번째 블록이라고 판단하면, 구 파일(100)의 첫 번째 블록의 참조 블록을 새 파일(200)의 두 번째 블록으로 추출할 수 있다.
또한, 참조블록 추출부(110)는 구 파일(100)의 두 번째 블록에 대하여 상기 두 번째 블록에 포함된 일부 또는 전부의 정보와 동일한 정보를 새 파일(200)의 블록에 존재하지 않는다고 판단하면, 구 파일(100)의 두 번째 블록의 참조 블록은 존재하지 않는다고 판단한다. 따라서, 참조블록 추출부(110)는 구 파일(100)의 첫 번째 블록의 참조 블록을 추출하지 않는다.
참조블록 추출부(110)는 구 파일(100)의 세 번째 블록 내지 여덟 번째 블록에 대해서도 구 파일(100)의 첫 번째 블록 및 두 번째 블록과 같은 과정을 수행하여, 구 파일(100)의 세 번째 블록의 참조블록을 새 파일(200)의 두 번째 블록으로 추출하고, 구 파일(100)의 네 번째 블록의 참조블록은 존재하지 않기 때문에 구 파일(100)의 네 번째 블록의 참조블록을 추출하지 않는다.
또한, 참조블록 추출부(110)는 구 파일(100)의 다섯 번째 블록의 참조블록을 새 파일(200)의 여섯 번째 블록으로 추출하고, 구 파일(100)의 여섯 번째 블록의 참조블록은 존재하지 않지 않기 때문에 구 파일(100)의 여섯 번째 블록의 참조블록을 추출하지 않고, 구 파일(100)의 일곱 번째 블록의 참조블록을 새 파일(200)의 일곱 번째 블록 및 여덟 번째 블록으로 추출하고, 구 파일(100)의 여덟 번째 블록의 참조블록을 새 파일(200)의 일곱 번째 블록으로 추출할 수 있다.
도 3은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 추출한 참조 테이블을 설명하기 위한 개념도이다.
도 3을 참조하면, 참조블록 추출부(110)는 도 2에서와 같이 구 파일(100)의 블록을 참조하는 새 파일(200)의 블록을 이용하여 도 3과 같은 참조 테이블을 생성할 수 있다.
참조 테이블을 참조하면, 구 파일(100)의 첫 번째 블록(101)에 대하여 첫 번째 블록(101)을 참조하는 새 파일(200)의 블록은 두 번째 블록이다. 따라서 첫 번째 블록(101)을 참조하는 블록 개수는 1이다. 여기서, 새 파일(200)의 두 번째 블록은 구 파일(100)의 첫 번째 블록(101)에 포함된 일부 또는 전부의 정보에 대한 포인터 정보를 포함하며, 포인터 정보를 이용하여 구 파일(100)의 첫 번째 블록(101)을 참조할 수 있다.
또한, 구 파일(100)의 두 번째 블록(102)에 대하여 두 번째 블록(102)을 참조하는 블록은 존재하지 않는다. 따라서 첫 번째 블록(101)을 참조하는 블록 개수는 0이다. 구 파일(100)의 세 번째 블록(103)에 대하여 세 번째 블록(103)을 참조하는 새 파일(200)의 블록은 네 번째 블록이다. 따라서 세 번째 블록(103)을 참조하는 블록 개수는 1이다.
또한, 구 파일(100)의 네 번째 블록(104)에 대하여 네 번째 블록(104)을 참조하는 새 파일(200)의 블록은 존재하지 않는다. 따라서 네 번째 블록(104)을 참조하는 블록 개수는 0이다. 구 파일(100)의 다섯 번째 블록(105)에 대하여 다섯 번째 블록(105)을 참조하는 새 파일(200)의 블록은 여섯 번째 블록이고, 따라서 다섯 번째 블록(105)을 참조하는 블록 개수는 1이다.
또한, 구 파일(100)의 여섯 번째 블록(106)에 대하여 여섯 번째 블록(106)을 참조하는 새 파일(200)의 블록은 존재하지 않는다. 따라서 여섯 번째 블록(106)을 참조하는 블록 개수는 0이다. 구 파일(100)의 일곱 번째 블록(107)에 대하여 일곱 번째 블록(107)을 참조하는 새 파일(200)의 블록은 일곱 번째 블록 및 여덟 번째 블록이고, 따라서 일곱 번째 블록(107)을 참조하는 블록 개수는 2이다.
구 파일(100)의 여덟 번째 블록(108)에 대하여 여덟 번째 블록(108)을 참조하는 새 파일(200)의 블록은 일곱 번째 블록이다. 따라서 여덟 번째 블록(108)을 참조하는 블록 개수는 1이다.
도 4는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 업데이트 우선순위 결정부가 업데이트 순서를 결정하는 과정을 나타내는 개념도이다.
도 4를 참조하면, 업데이트 순서 결정부(130)는 참조블록 추출부(110)로부터 도 3과 같은 참조 테이블을 수신하고, 수신한 참조 테이블을 이용하여 구 파일(100)의 블록의 업데이트 순서를 결정할 수 있다.
여기서, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 구 파일(100)의 각 블록 중 상기 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.
먼저, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 상기 블록을 참조하는 새 파일의 블록이 존재하지 않는 두 번째 블록(102), 네 번째 블록(104) 및 여섯 번째 블록(106) 순서로 업데이트 순서를 결정할 수 있다.
이후, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록이 하나인 첫 번째 블록(101), 세 번째 블록(103), 다섯 번째 블록(105) 및 여덟 번째 블록(106) 순서로 업데이트 순서를 결정할 수 있다.
이후, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록이 두 개인 일곱 번째 블록(107)에 대한 업데이트 순서를 결정할 수 있다.
결론적으로, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 차례로 두 번째 블록(102), 네 번째 블록(104), 여섯 번째 블록(106), 첫 번째 블록(101), 세 번째 블록(103), 다섯 번째 블록(105), 여덟 번째 블록(106) 및 일곱 번째 블록(107) 순으로 업데이트 순서를 결정할 수 있다.
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 과정을 설명하기 위한 흐름도이다.
도 5를 참조하면, 펌웨어 업데이트 장치는 구 파일과 새 파일을 블록 단위로 비교하여 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록을 추출할 수 있다(S510).
펌웨어 업데이트 장치는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수에 따라 구 파일의 블록의 업데이트 순서를 결정할 수 있다(S520). 예를 들어, 펌웨어 업데이트 장치는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.
또한, 펌웨어 업데이트 장치는 결정한 업데이트 순서에 따라 구 파일의 블록을 새 파일의 블록으로 업데이트할 수 있다(S530).
이와 같이, 펌웨어 업데이트 장치는 구 파일의 블록에 대하여 상기 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하고, 결정한 업데이트 순서에 따라 구 파일의 블록을 새 파일의 블록으로 업데이트할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
110: 참조블록 추출부 130: 업데이트 순서 결정부
150: 업데이트부 190: 델타파일 저장부

Claims (8)

  1. 펌웨어를 업데이트 하는 장치에 의해 수행되는 방법에 있어서,
    제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 단계; 및
    상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 단계를 포함하는 펌웨어 업데이트 방법.
  2. 제 1 항에 있어서, 상기 업데이트 순서를 결정하는 단계는,
    상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하는 것을 특징으로 하는 펌웨어 업데이트 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 결정한 업데이트 순서에 따라 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 단계를 더 포함하는 것을 펌웨어 업데이트 방법.
  4. 제 3항에 있어서, 상기 업데이트하는 단계는,
    상기 제 1 파일의 블록과 상기 제 2 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 것을 특징으로 하는 펌웨어 업데이트 방법.
  5. 제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 추출부; 및
    상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 결정부를 포함하는 펌웨어 업데이트 장치.
  6. 제 5 항에 있어서, 상기 결정부는,
    상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하는 것을 특징으로 하는 펌웨어 업데이트 장치.
  7. 제 5항 또는 제 6 항에 있어서,
    상기 결정한 업데이트 순서에 따라 제 1 파일의 각 블록에 대한 업데이트를 수행하는 업데이트부를 더 포함하는 것을 특징으로 하는 펌웨어 업데이트 장치.
  8. 제 7항에 있어서, 상기 업데이트부는,
    상기 제 1 파일의 블록과 제 2 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 블록에 대한 업데이트를 수행하는 것을 특징으로 하는 펌웨어 업데이트 장치.
KR1020110121620A 2011-11-21 2011-11-21 펌웨어 업데이트 방법 및 이를 위한 장치 KR101341003B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110121620A KR101341003B1 (ko) 2011-11-21 2011-11-21 펌웨어 업데이트 방법 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110121620A KR101341003B1 (ko) 2011-11-21 2011-11-21 펌웨어 업데이트 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20130055936A KR20130055936A (ko) 2013-05-29
KR101341003B1 true KR101341003B1 (ko) 2013-12-12

Family

ID=48664204

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110121620A KR101341003B1 (ko) 2011-11-21 2011-11-21 펌웨어 업데이트 방법 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR101341003B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI722269B (zh) * 2018-01-26 2021-03-21 和碩聯合科技股份有限公司 韌體更新方法及使用此方法的電子裝置
KR102088167B1 (ko) 2019-08-27 2020-03-12 루나 주식회사 소프트웨어 업데이트 에이전트 장치 및 이를 통한 패치방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211295A (ja) 2009-03-06 2010-09-24 Mitsubishi Electric Corp データ更新装置、データ更新装置のデータ更新方法およびデータ更新プログラム
JP2011044087A (ja) 2009-08-24 2011-03-03 Hitachi Solutions Ltd ファームウェア更新システム、及び情報機器、並びにプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010211295A (ja) 2009-03-06 2010-09-24 Mitsubishi Electric Corp データ更新装置、データ更新装置のデータ更新方法およびデータ更新プログラム
JP2011044087A (ja) 2009-08-24 2011-03-03 Hitachi Solutions Ltd ファームウェア更新システム、及び情報機器、並びにプログラム

Also Published As

Publication number Publication date
KR20130055936A (ko) 2013-05-29

Similar Documents

Publication Publication Date Title
CN103176824B (zh) 一种系统升级的方法及装置
US10423585B2 (en) Method and device for making differential upgrade package, and method and device for system differential upgrading
US20140372799A1 (en) System Differential Upgrade Method, Apparatus, and Mobile Terminal
CN104918114B (zh) 一种操作系统升级方法及装置
EP3001309A1 (en) Application migration method, device and system for mobile terminal
CN105335181A (zh) 一种实现ota升级的方法和终端
WO2016078263A1 (zh) 升级控制设备、终端、终端升级方法及系统、存储介质
CN102546907A (zh) 手机应用软件自动安装/更新的方法
CN104572217A (zh) 穿戴式智能设备的升级方法及系统
CN106293849B (zh) 一种应用更新方法和终端
CN109002305B (zh) 一种设备程序的更新方法及其系统
CN102880478B (zh) 软件更新方法
CN108469960B (zh) 一种版本管理方法和装置
KR101341003B1 (ko) 펌웨어 업데이트 방법 및 이를 위한 장치
CN104461621A (zh) 一种更新属性信息的方法及装置
CN102830988A (zh) 固件更新的方法及其相关计算机系统
CN113225397A (zh) 嵌入式设备的固件升级方法、装置、终端及存储介质
CN105700900A (zh) 一种优化无线局域网功能的方法及装置
CN102184115B (zh) 升级系统软件的方法及终端设备
WO2021012170A1 (zh) 固件启动方法、设备及计算机可读存储介质
CN107632864B (zh) 一种建立特定排序的UEFI Boot Order的方法
CN102929676A (zh) 基于安卓操作系统终端设备的快速适配方法
CN110737455A (zh) 固件的更新方法、装置及电子设备
US9619355B2 (en) Booting verification method of computer and electronic device
CN105701162B (zh) 一种智能终端的用户数据分区的管理方法及智能终端

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
FPAY Annual fee payment

Payment date: 20161206

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171206

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181206

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20191205

Year of fee payment: 7