KR20130055936A - Method of updating firmware and apparatus for the same - Google Patents
Method of updating firmware and apparatus for the same Download PDFInfo
- Publication number
- KR20130055936A KR20130055936A KR1020110121620A KR20110121620A KR20130055936A KR 20130055936 A KR20130055936 A KR 20130055936A KR 1020110121620 A KR1020110121620 A KR 1020110121620A KR 20110121620 A KR20110121620 A KR 20110121620A KR 20130055936 A KR20130055936 A KR 20130055936A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- file
- blocks
- update
- updating
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates 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
Description
본 발명은 펌웨어 업데이트에 관한 것으로, 더욱 상세하게는이전 버전의 펌웨어를 새로운 버전의 펌웨어로 업데이트하는 펌웨어 업데이트 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a firmware update, and more particularly, to a firmware update method and an apparatus therefor for updating an older version of firmware to a newer version of firmware.
무선통신 기술이 발달하면서 사용자 편의를 위한 다양한 서비스와 기능이 포함된 휴대용 단말기, 예를 들어 휴대용 CDP(Compact Disk Player), 휴대용 MP3 플레이어, PMP(Portable Multimedia Player) 등의 기술적 발전 또한 눈부시게 발전하고 있다.With the development of wireless communication technology, technological developments of portable terminals including various services and functions for user convenience, such as portable CDP (Compact Disk Player), portable MP3 player, and Portable Multimedia Player (PMP), are also remarkably developing. .
이러한 휴대용 단말기는 그 기능이 다양하고 복잡해짐에 따라 휴대용 단말기에 탑재되는 소프트웨어 또한 많은 버그가 발생할 확률이 높아지고, 휴대용 단말기의 출시 이후에 새로운 기능의 추가에 대한 요구가 갈수록 더해지고 있다. 이와 같은 이유로 최근 휴대용 단말기는 사용자의 요구를 반영하는 다양한 기능들을 수용하고 있다. As the portable terminal has various functions and complexity, the software mounted on the portable terminal is also more likely to cause a lot of bugs, and there is an increasing demand for the addition of new functions after the release of the portable terminal. For this reason, portable terminals have recently accommodated various functions that reflect user needs.
특히, 최근의 휴대용 단말기는 제품 출시 단계에서 모든 개발이 완료되는 것이 아니라, 제품의 최초 출시 이후에도 끊임없이 탑재된 소프트웨어의 진화를 추구하고 있다.In particular, the recent portable terminal is not all development is completed at the product release stage, but also pursues the evolution of the software that is constantly loaded even after the initial release of the product.
따라서, 휴대용 단말기의 개발 및 생산 업체의 경우에는 제품 최초 출시 이후 단계에서도 출시된 제품에 탑재된 펌웨어의 수정, 보완 작업을 지속적으로 진행한다.Therefore, the development and production companies of portable terminals continue to modify and supplement firmware on the released products even after the initial release of the product.
일반적으로 펌웨어는 업데이트 가능하도록 구성되어 휴대용 단말기의 제조 후에도 업데이트 파일의 설치를 통해 각종 프로그램 또는 하드웨어의 개발로 인하여 추가된 새로운 기능들을 업데이트 파일을 설치함으로써 사용할 수 있도록 한다.In general, the firmware is configured to be updateable so that new functions added due to the development of various programs or hardware can be used by installing the update file even after manufacture of the portable terminal.
여기서, 펌웨어는 일반적으로 ROM(Read Only Memory)에 저장된 하드웨어를 제어하는 마이크로 프로그램을 의미하며, 이러한 펌웨어는 프로그램 관점에서 소프트웨어와 동일하지만 하드웨어와 밀접한 관계를 가지고 있다는 점에서 소프트웨어와 하드웨어의 특성을 동시에 가진다.Here, the firmware generally refers to a micro program that controls the hardware stored in the ROM (Read Only Memory). The firmware is the same as the software from the program point of view, but the characteristics of the software and the hardware at the same time are closely related to the hardware. Have
이러한 휴대용 단말기는 그 기능이 다양하고 복잡해짐에 따라 휴대용 단말기에 탑재되는 소프트웨어 또한 많은 버그가 발생할 확률이 높아지고, 휴대용 단말기의 출시 이후에 새로운 기능의 추가에 대한 요구가 갈수록 더해지고 있다. 이와 같은 이유로 최근 휴대용 단말기는 사용자의 요구를 반영하는 다양한 기능들을 수용하고 있다. 특히, 최근의 휴대용 단말기는 제품 출시 단계에서 모든 개발이 완료되는 것이 아니라, 제품의 최초 출시 이후에도 끊임없이 탑재된 소프트웨어의 진화를 추구하고 있다.As the portable terminal has various functions and complexity, the software mounted on the portable terminal is also more likely to cause a lot of bugs, and there is an increasing demand for the addition of new functions after the release of the portable terminal. For this reason, portable terminals have recently accommodated various functions that reflect user needs. In particular, the recent portable terminal is not all development is completed at the product release stage, but also pursues the evolution of the software that is constantly loaded even after the initial release of the product.
따라서, 휴대용 단말기의 개발 및 생산 업체의 경우에는 제품 최초 출시 이후 단계에서도 출시된 제품에 탑재된 펌웨어 수정 등의 업데이트 작업을 지속적으로 진행할 수 있다.Therefore, in the case of developing and producing a portable terminal, even after the initial release of the product, an update operation such as firmware modification of the released product can be continuously performed.
하지만, 휴대용 단말기의 업데이트를 위하여 종래에 사용자는 서비스 센터를 찾거나 컴퓨터에 업데이트 파일을 다운로드 받은 후 컴퓨터와 휴대단말기를 유무선으로 연결하여 업데이트를 하였다.However, in order to update a portable terminal, the user has conventionally made a service center or downloaded an update file to a computer, and then connected the computer and the mobile terminal by wired or wireless to perform an update.
그러나 이러한 업데이트 과정 중에는 펌웨어 전체가 플래쉬 메모리에 기록되므로 사용자의 실수나 운영체제의 오류, 시스템 재부팅, 전원 부족, 전원 케이블 접촉 불량 등과 같은 상황이 발생하면 업데이트 과정을 다시 실행해야 하는 상황이 발생되며, 이에 따라 펌웨어 업데이트를 수행하는데 많은 시간이 낭비되는 문제점이 있다. However, during the update process, the entire firmware is written to the flash memory. If a user mistake, an error in the operating system, a system reboot, a power failure, or a bad power cable contact occurs, the update process needs to be executed again. Accordingly, there is a problem that a lot of time is wasted in performing the firmware update.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 업데이트 대상 펌웨어를 블록 단위 업데이트하는 펌웨어 업데이트 방법을 제공하는 데 있다.An object of the present invention for solving the above problems is to provide a firmware update method for block-by-block updating the update target firmware.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 업데이트 대상 펌웨어를 블록 단위 업데이트하는 펌웨어 업데이트 장치를 제공하는 데 있다.Another object of the present invention for solving the above problems is to provide a firmware update device for block-by-block updating the update target firmware.
상기한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 펌웨어 업데이트 방법은, 제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 단계 및 상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 단계를 포함한다.In order to achieve the above object of the present invention, a firmware update method according to an embodiment of the present invention compares a first file and a second file in block units, and refers to the block for each block of the first file. Extracting and counting blocks of the second file, and determining an update order for each block of the first file according to the number of blocks of the counted second file.
여기서, 상기 업데이트 순서를 결정하는 단계는 상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.In the determining of the update order, the update order may be determined such that the number of blocks of the counted second file is updated from the smallest block for each block of the first file.
여기서, 펌웨어 업데이트 방법은 상기 결정한 업데이트 순서에 따라 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 단계를 더 포함할 수 있다.The firmware update method may further include performing an update on each block of the first file according to the determined update order.
여기서, 업데이트하는 단계는 상기 제 1 파일의 블록과 새로운 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 각 블록에 대한 업데이트를 수행할 수 있다.The updating may include updating each block of the first file by using a delta file from which the difference between the block of the first file and the block of the new file is extracted.
상기한 본 발명의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치는제 1 파일 및 제 2 파일을 블록 단위로 비교하여 상기 제 1 파일의 각 블록에 대하여, 상기 블록을 참조하는 제 2 파일의 블록을 추출하여 카운팅하는 참조블록 추출부 및 상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 업데이트 순서 결정부를 포함한다.According to an aspect of the present invention, there is provided a firmware update apparatus that compares a first file and a second file in block units, and refers to the block for each block of the first file. A reference block extracting unit extracting and counting blocks of a second file and an update order determining unit determining an update order for each block of the first file according to the number of blocks of the counting second file.
여기서, 업데이트 순서 결정부는 상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.Here, the update order determiner may determine the update order such that the number of blocks of the counted second file for each block of the first file is updated from the smallest block.
여기서, 상기 결정한 업데이트 순서에 따라 제 1 파일의 각 블록에 대한 업데이트를 수행하는 업데이트부를 더 포함할 수 있다.The apparatus may further include an updater configured to update each block of the first file according to the determined update order.
여기서, 업데이트부는 상기 제 1 파일의 블록과 제 2 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 블록에 대한 업데이트를 수행할 수 있다.Here, the updater may update the block of the first file by using a delta file from which the difference between the block of the first file and the block of the second file is extracted.
상기와 같은 본 발명에 따른 펌웨어 업데이트 방법 및 이를 위한 장치를 이용할 경우에는구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트 되기 때문에 배터리를 제거하는 등의 이유로 업데이트가 도중에 실패하였더라도 이전 업데이트 완료된 블록 이후의 블록부터 업데이트를 계속 진행할 수 있다.In the case of using the firmware update method and apparatus therefor according to the present invention as described above, the number of blocks of the new file referring to each block is updated from a small block for each block of the old file. Even if the update fails in the middle, the update can continue from the block after the previous updated block.
도 1은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 참조 테이블을 추출하는 과정을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 추출한 참조 테이블을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 업데이트 우선순위 결정부가 업데이트 우선순위를 결정하는 과정을 나타내는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 과정을 설명하기 위한 흐름도이다.1 is a block diagram illustrating a configuration of a firmware update apparatus according to an embodiment of the present invention.
2 is a conceptual diagram illustrating a process of extracting a reference table by a reference block extractor of a firmware updater according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a reference table extracted by the reference block extracting unit of the firmware updater according to an embodiment of the present invention.
4 is a conceptual diagram illustrating a process of determining an update priority by an update priority determiner of a firmware update apparatus according to an embodiment of the present invention.
5 is a flowchart illustrating a firmware update process according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 구성을 설명하기 위한 블록도이다.1 is a block diagram illustrating a configuration of a firmware update apparatus according to an embodiment of the present invention.
도 1을 참조하면, 펌웨어 업데이트 장치는 구 파일과 새 파일을 블록 단위로 비교하여 구 파일의 각 블록에 대하여 블록을 참조하는 새 파일의 블록을 추출하여 카운팅하는 참조블록 추출부(110), 카운팅한 새 파일의 블록 개수에 따라 업데이트 순서를 결정하는 업데이트 순서 결정부(130), 업데이트 순서에 따라 델타파일 저장부(170)에 저장된 델타 파일을 이용하여 구 파일을 새 파일로 업데이트하는 업데이트부(150)를 포함하여 구성될 수 있다.Referring to FIG. 1, the apparatus for updating a firmware extracts and counts a block of a new file referring to a block for each block of the old file by comparing the old file and the new file in units of blocks. The update
참조블록 추출부(110)는 구 파일 및 새 파일을 제공받아 구 파일과 새 파일을 블록 단위로 비교할 수 있다. 여기서, 블록 단위는 펌웨어가 저장되는 비휘발성 메모리의 물리적 단위를 의미하며, 블록 단위는 예를 들어 플래쉬 메모리의 섹터 단위 혹은 임의의 단위가 될 수 있다. The reference
예를 들어, 구 파일의 블록이 2개이고, 구 파일을 참조한 새 파일의 블록 4개인 경우, 참조블록 추출부(110)는 구 파일의 첫 번째 블록을 참조하는 블록이 제 2 파일에 존재하는지 비교하며, 첫 번째 블록에 대한 검색이 종료된 후 구 파일의 두 번째 블록을 참조하는 블록이 제 2 파일에 존재하는지 비교한다. For example, if there are two blocks of the old file and four blocks of the new file referencing the old file, the
또한, 참조블록 추출부(110)는 구 파일의 블록을 참조하는 새 파일의 블록을 추출하고, 추출한 새 파일의 블록 개수를 카운팅하여 참조 테이블을 생성하며, 생성한 참조 테이블을 업데이트 순서 결정부(130)로 제공할 수 있다.In addition, the
예를 들어, 구 파일의 첫 번째 블록에 대하여 상기 첫 번째 블록을 참조하는 새 파일의 블록이 두 번째 블록 및 네 번째 블록인 경우, 참조블록 추출부(110)는 구 파일의 첫 번째 블록의 참조블록으로 두 번째 블록 및 네 번째 블록을 추출할 수 있다. 이에 대한 상세한 설명은 후술할 도 2에서 보다 구체적으로 설명하기로 한다.For example, when a block of a new file that refers to the first block is the second block and the fourth block with respect to the first block of the old file, the
여기서, 새 파일의 두 번째 블록 및 네 번째 블록은 구 파일의 첫 번째 블록에 포함된 일부 또는 전부의 정보에 대한 포인터 정보를 포함하며, 포인터 정보를 이용하여 구 파일의 첫 번째 블록을 참조할 수 있다.Here, the second and fourth blocks of the new file contain pointer information about some or all of the information contained in the first block of the old file, and the pointer information can be used to refer to the first block of the old file. have.
업데이트 순서 결정부(130)는 참조블록 추출부(110)로부터 참조 테이블을 수신하고, 수신한 참조 테이블을 이용하여 업데이트 순서를 결정할 수 있다. 여기서, 업데이트 순서 결정부(130)는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 구 파일의 블록부터 업데이트되도록 업데이트 순서를 결정한다.The
업데이트부(150)는 업데이트 순서 결정부(130)로부터 업데이트 순서를 제공받고, 제공받은 업데이트 순서에 따라 구 파일의 블록을 새로운 버전 파일로 업데이트할 수 있다.The
여기서, 업데이트부(150)는 델타파일 저장부(170)로부터 수신한 델타파일을 이용하여 구 파일의 블록을 새로운 버전 파일로 업데이트할 수 있다. 여기서, 델타 파일은 구 파일의 블록과 새로운 버전 파일의 블록 중 동일하지 않은 부분만을 추출하여 생성한 파일을 의미한다. Here, the
즉, 업데이트부(150)는 구 파일의 블록을 업데이트할 때 델타파일 저장부(170)로부터 수신한 업데이트될 부분만을 포함하는 델타 파일을 이용하기 때문에 빠른 시간에 업데이트를 수행할 수 있다.
That is, since the
도 2는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 참조 테이블을 추출하는 과정을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a process of extracting a reference table by a reference block extractor of a firmware updater according to an embodiment of the present invention.
도 2를 참조하면, 참조블록 추출부(110)는 구 파일(100) 및 새 파일(200)을 수신하고, 수신한 구 파일(100)의 블록 및 새 파일(200)의 블록을 비교하여 구 파일(100)의 각 블록을 참조하는 새 파일(200)의 블록을 추출할 수 있다.Referring to FIG. 2, the
도 2에서는 구 파일(100)을 사용한 새 파일(200)이 하나인 경우를 예로 들어 설명할 것이지만, 구 파일(100)을 사용한 새 파일 하나 이상일 수도 있다. In FIG. 2, a case where there is one
또한, 도 2에서 구 파일(100)은 8개의 블록으로 구성되어 있고, 새 파일(200)은 8개의 블록으로 구성되어 있으나, 구 파일(100)의 블록 및 새 파일(200)의 블록은 파일의 크기에 따라 변경될 수 있고, 구 파일(100)의 블록 및 새 파일(200)의 블록의 개수가 변경됨에 따라 도 2의 도면이 변경될 수 도 있다.Also, in FIG. 2, the
참조블록 추출부(110)는 새 파일(200)의 8개의 블록에 대해서구 파일(100)의 8개의블록을 참조하는 새 파일(200)의 블록을 추출할 수 있다. The
참조블록 추출부(110)는 구 파일(100)의 첫 번째 블록에 대하여 상기 첫 번째 블록에 포함된 일부 또는 전부의 정보와 동일한 정보를 새 파일(200)의 블록이두 번째 블록이라고 판단하면, 구 파일(100)의 첫 번째 블록의 참조 블록을 새 파일(200)의 두 번째 블록으로 추출할 수 있다.If the reference
또한, 참조블록 추출부(110)는 구 파일(100)의 두 번째 블록에 대하여 상기 두 번째 블록에 포함된 일부 또는 전부의 정보와 동일한 정보를 새 파일(200)의 블록에 존재하지 않는다고 판단하면, 구 파일(100)의 두 번째 블록의 참조 블록은 존재하지 않는다고 판단한다. 따라서, 참조블록 추출부(110)는 구 파일(100)의 첫 번째 블록의 참조 블록을 추출하지 않는다. In addition, when the reference
참조블록 추출부(110)는 구 파일(100)의 세 번째 블록 내지 여덟 번째 블록에 대해서도 구 파일(100)의 첫 번째 블록 및 두 번째 블록과 같은 과정을 수행하여, 구 파일(100)의 세 번째 블록의 참조블록을 새 파일(200)의 두 번째 블록으로 추출하고, 구 파일(100)의 네 번째 블록의 참조블록은 존재하지 않기 때문에 구 파일(100)의 네 번째 블록의 참조블록을 추출하지 않는다.The reference
또한, 참조블록 추출부(110)는 구 파일(100)의 다섯 번째 블록의 참조블록을 새 파일(200)의 여섯 번째 블록으로 추출하고, 구 파일(100)의 여섯 번째 블록의 참조블록은 존재하지 않지 않기 때문에 구 파일(100)의 여섯 번째 블록의 참조블록을 추출하지 않고, 구 파일(100)의 일곱 번째 블록의 참조블록을 새 파일(200)의 일곱 번째 블록 및 여덟 번째 블록으로 추출하고, 구 파일(100)의 여덟 번째 블록의 참조블록을 새 파일(200)의 일곱 번째 블록으로 추출할 수 있다.
In addition, the
도 3은 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 참조블록 추출부가 추출한 참조 테이블을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a reference table extracted by the reference block extracting unit of the firmware updater according to an embodiment of the present invention.
도 3을 참조하면, 참조블록 추출부(110)는 도 2에서와 같이 구 파일(100)의 블록을 참조하는 새 파일(200)의 블록을 이용하여 도 3과 같은 참조 테이블을 생성할 수 있다.Referring to FIG. 3, the
참조 테이블을 참조하면, 구 파일(100)의 첫 번째 블록(101)에 대하여 첫 번째 블록(101)을 참조하는 새 파일(200)의 블록은 두 번째 블록이다. 따라서 첫 번째 블록(101)을 참조하는 블록 개수는 1이다. 여기서, 새 파일(200)의 두 번째 블록은 구 파일(100)의 첫 번째 블록(101)에 포함된 일부 또는 전부의 정보에 대한 포인터 정보를 포함하며, 포인터 정보를 이용하여 구 파일(100)의 첫 번째 블록(101)을 참조할 수 있다.Referring to the reference table, the block of the
또한, 구 파일(100)의 두 번째 블록(102)에 대하여 두 번째 블록(102)을 참조하는 블록은 존재하지 않는다. 따라서 첫 번째 블록(101)을 참조하는 블록 개수는 0이다. 구 파일(100)의 세 번째 블록(103)에 대하여 세 번째 블록(103)을 참조하는 새 파일(200)의 블록은 네 번째 블록이다. 따라서 세 번째 블록(103)을 참조하는 블록 개수는 1이다.Also, for the
또한, 구 파일(100)의 네 번째 블록(104)에 대하여 네 번째 블록(104)을 참조하는 새 파일(200)의 블록은 존재하지 않는다. 따라서 네 번째 블록(104)을 참조하는 블록 개수는 0이다. 구 파일(100)의 다섯 번째 블록(105)에 대하여 다섯 번째 블록(105)을 참조하는 새 파일(200)의 블록은 여섯 번째 블록이고, 따라서 다섯 번째 블록(105)을 참조하는 블록 개수는 1이다.In addition, for the
또한, 구 파일(100)의 여섯 번째 블록(106)에 대하여 여섯 번째 블록(106)을 참조하는 새 파일(200)의 블록은 존재하지 않는다. 따라서 여섯 번째 블록(106)을 참조하는 블록 개수는 0이다. 구 파일(100)의 일곱 번째 블록(107)에 대하여 일곱 번째 블록(107)을 참조하는 새 파일(200)의 블록은 일곱 번째 블록 및 여덟 번째 블록이고, 따라서 일곱 번째 블록(107)을 참조하는 블록 개수는 2이다.In addition, for the
구 파일(100)의 여덟 번째 블록(108)에 대하여 여덟 번째 블록(108)을 참조하는 새 파일(200)의 블록은 일곱 번째 블록이다. 따라서 여덟 번째 블록(108)을 참조하는 블록 개수는 1이다.
The block of the
도 4는 본 발명의 일 실시예에 따른 펌웨어 업데이트 장치의 업데이트 우선순위 결정부가 업데이트 순서를 결정하는 과정을 나타내는 개념도이다.4 is a conceptual diagram illustrating a process of determining an update order by an update priority determiner of a firmware update apparatus according to an embodiment of the present invention.
도 4를 참조하면, 업데이트 순서 결정부(130)는 참조블록 추출부(110)로부터 도 3과 같은 참조 테이블을 수신하고, 수신한 참조 테이블을 이용하여 구 파일(100)의 블록의 업데이트 순서를 결정할 수 있다.Referring to FIG. 4, the
여기서, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 구 파일(100)의 각 블록 중 상기 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.Here, the
먼저, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 상기 블록을 참조하는 새 파일의 블록이 존재하지 않는 두 번째 블록(102), 네 번째 블록(104) 및 여섯 번째 블록(106) 순서로 업데이트 순서를 결정할 수 있다.First, the
이후, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록이 하나인 첫 번째 블록(101), 세 번째 블록(103), 다섯 번째 블록(105) 및 여덟 번째 블록(106) 순서로 업데이트 순서를 결정할 수 있다.Thereafter, the
이후, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록이 두 개인 일곱 번째 블록(107)에 대한 업데이트 순서를 결정할 수 있다.Thereafter, the
결론적으로, 업데이트 순서 결정부(130)는 참조 테이블을 참조하여 대상 파일(100)의 각 블록 중 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 차례로 두 번째 블록(102), 네 번째 블록(104), 여섯 번째 블록(106), 첫 번째 블록(101), 세 번째 블록(103), 다섯 번째 블록(105), 여덟 번째 블록(106) 및 일곱 번째 블록(107) 순으로 업데이트 순서를 결정할 수 있다.
In conclusion, the
도 5는 본 발명의 일 실시예에 따른 펌웨어 업데이트 과정을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a firmware update process according to an embodiment of the present invention.
도 5를 참조하면, 펌웨어 업데이트 장치는 구 파일과 새 파일을 블록 단위로 비교하여 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록을 추출할 수 있다(S510).Referring to FIG. 5, the firmware updater may extract a block of a new file referring to each block for each block of the old file by comparing the old file and the new file in block units (S510).
펌웨어 업데이트 장치는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수에 따라 구 파일의 블록의 업데이트 순서를 결정할 수 있다(S520). 예를 들어, 펌웨어 업데이트 장치는 구 파일의 각 블록에 대하여 상기 각 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정할 수 있다.The firmware updater may determine an update order of blocks of the old file according to the number of blocks of the new file referring to each block for each block of the old file (S520). For example, the firmware updater may determine the update order such that the number of blocks of the new file referring to each block is updated from the smallest block for each block of the old file.
또한, 펌웨어 업데이트 장치는 결정한 업데이트 순서에 따라 구 파일의 블록을 새로운 버전 파일의 블록으로 업데이트할 수 있다(S530). In addition, the firmware updater may update the blocks of the old file to the blocks of the new version file according to the determined update order (S530).
이와 같이, 펌웨어 업데이트 장치는 구 파일의 블록에 대하여 상기 블록을 참조하는 새 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하고, 결정한 업데이트 순서에 따라 구 파일의 블록을 새 파일의 블록으로 업데이트할 수 있다.
As such, the firmware updater determines the update order such that the number of blocks of the new file referring to the block is updated from the smallest block with respect to the block of the old file, and converts the blocks of the old file into blocks of the new file according to the determined update order. You can update it.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that
110: 참조블록 추출부 130: 업데이트 순서 결정부
150: 업데이트부 190: 델타파일 저장부110: reference block extraction unit 130: update order determination unit
150: update unit 190: delta file storage unit
Claims (8)
상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 단계를 포함하는 펌웨어 업데이트 방법.Comparing the first file and the second file in units of blocks and extracting and counting a block of a second file referring to the block for each block of the first file; And
Determining an update order for each block of the first file according to the number of blocks of the counted second file.
상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하는 것을 특징으로 하는 펌웨어 업데이트 방법.The method of claim 1, wherein determining the update order comprises:
And an update order is determined so that the number of blocks of the counted second file is updated from a small block for each block of the first file.
상기 결정한 업데이트 순서에 따라 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 단계를 더 포함하는 것을 펌웨어 업데이트 방법.3. The method according to claim 1 or 2,
And updating the respective blocks of the first file according to the determined update order.
상기 제 1 파일의 블록과 새로운 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 각 블록에 대한 업데이트를 수행하는 것을 특징으로 하는 펌웨어 업데이트 방법.The method of claim 3, wherein the updating comprises:
And updating each block of the first file by using a delta file from which the difference between the block of the first file and the block of the new file is extracted.
상기 카운팅한 제 2 파일의 블록 개수에 따라 상기 제 1 파일의 각 블록에 대한 업데이트 순서를 결정하는 결정부를 포함하는 펌웨어 업데이트 장치.An extraction unit which compares a first file and a second file in units of blocks and extracts and counts a block of a second file referring to the block for each block of the first file; And
And a determining unit to determine an update order for each block of the first file according to the number of blocks of the counted second file.
상기 제 1 파일의 각 블록에 대하여 상기 카운팅한 제 2 파일의 블록 개수가 작은 블록부터 업데이트되도록 업데이트 순서를 결정하는 것을 특징으로 하는 펌웨어 업데이트 장치.The method of claim 5, wherein the determining unit,
And an update order is determined for each block of the first file so that the number of blocks of the counted second file is updated from a smaller block.
상기 결정한 업데이트 순서에 따라 제 1 파일의 각 블록에 대한 업데이트를 수행하는 업데이트부를 더 포함하는 것을 특징으로 하는 펌웨어 업데이트 장치.The method according to claim 5 or 6,
And an update unit for updating the respective blocks of the first file according to the determined update order.
상기 제 1 파일의 블록과 제 2 파일의 블록의 차이점을 추출한 델타 파일을 이용하여 상기 제 1 파일의 블록에 대한 업데이트를 수행하는 것을 특징으로 하는 펌웨어 업데이트 장치.The method of claim 7, wherein the update unit,
And updating the block of the first file by using a delta file from which the difference between the block of the first file and the block of the second file is extracted.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110121620A KR101341003B1 (en) | 2011-11-21 | 2011-11-21 | Method of updating firmware and apparatus for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110121620A KR101341003B1 (en) | 2011-11-21 | 2011-11-21 | Method of updating firmware and apparatus for the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130055936A true KR20130055936A (en) | 2013-05-29 |
KR101341003B1 KR101341003B1 (en) | 2013-12-12 |
Family
ID=48664204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110121620A KR101341003B1 (en) | 2011-11-21 | 2011-11-21 | Method of updating firmware and apparatus for the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101341003B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102107843B1 (en) * | 2018-01-26 | 2020-05-29 | 페가트론 코포레이션 | Firmware updating method and electronic device using the same |
WO2021040167A1 (en) | 2019-08-27 | 2021-03-04 | 루나 주식회사 | Software update agent apparatus and patch method using same |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5225163B2 (en) | 2009-03-06 | 2013-07-03 | 三菱電機株式会社 | Data update device, data update method for data update device, and data update program |
JP5346253B2 (en) | 2009-08-24 | 2013-11-20 | 株式会社日立ソリューションズ | Firmware update system, information device, and program |
-
2011
- 2011-11-21 KR KR1020110121620A patent/KR101341003B1/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102107843B1 (en) * | 2018-01-26 | 2020-05-29 | 페가트론 코포레이션 | Firmware updating method and electronic device using the same |
WO2021040167A1 (en) | 2019-08-27 | 2021-03-04 | 루나 주식회사 | Software update agent apparatus and patch method using same |
US11379216B2 (en) | 2019-08-27 | 2022-07-05 | Konamobility Company Limited | Software update agent device and software patching method through the same |
Also Published As
Publication number | Publication date |
---|---|
KR101341003B1 (en) | 2013-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459964B (en) | Test case selection method, device, equipment and computer readable storage medium | |
CN104918114B (en) | A kind of operating system update method and device | |
US20120144380A1 (en) | Method for generating delta file using basic blocks | |
CN108279922A (en) | Differential file generation method, upgrade method and system based on the differential file | |
CN103559065A (en) | Method and system for OTA (Over-the-Air Technology) upgrade | |
CN111708566A (en) | Software increment updating method, device, system and computer readable storage medium | |
CN106293849B (en) | application updating method and terminal | |
KR101882759B1 (en) | Method and apparatus for stabilized binary differencing | |
CN109002305B (en) | Method and system for updating equipment program | |
CN104461621A (en) | Attribute information updating method and device | |
CN108469960B (en) | Version management method and device | |
CN110569058B (en) | System upgrading method, device, terminal and computer readable storage medium | |
CN102999349A (en) | Software upgrading method | |
KR101341003B1 (en) | Method of updating firmware and apparatus for the same | |
CN102830988A (en) | Firmware updating method and related computer system | |
CN109656629A (en) | A kind of EMMC adaptive regulation method, storage medium and terminal device | |
CN113225397A (en) | Firmware upgrading method and device for embedded equipment, terminal and storage medium | |
CN105700900A (en) | Method and device for optimizing wireless local area network function | |
CN107632864B (en) | Method for establishing UEFI Boot Order of specific ordering | |
WO2021012170A1 (en) | Firmware booting method and device, and computer-readable storage medium | |
US9619355B2 (en) | Booting verification method of computer and electronic device | |
CN105701162B (en) | Management method for user data partition of intelligent terminal and intelligent terminal | |
CN102314353A (en) | Method for changing database during android software update | |
CN113010195B (en) | System upgrading method, storage medium and terminal equipment | |
US11507367B2 (en) | Firmware update method and firmware update system thereof |
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 |