KR102625006B1 - Apparatus for firmware and system including the same - Google Patents

Apparatus for firmware and system including the same Download PDF

Info

Publication number
KR102625006B1
KR102625006B1 KR1020180170629A KR20180170629A KR102625006B1 KR 102625006 B1 KR102625006 B1 KR 102625006B1 KR 1020180170629 A KR1020180170629 A KR 1020180170629A KR 20180170629 A KR20180170629 A KR 20180170629A KR 102625006 B1 KR102625006 B1 KR 102625006B1
Authority
KR
South Korea
Prior art keywords
data
image
movement information
movement
data set
Prior art date
Application number
KR1020180170629A
Other languages
Korean (ko)
Other versions
KR20200080796A (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 KR1020180170629A priority Critical patent/KR102625006B1/en
Publication of KR20200080796A publication Critical patent/KR20200080796A/en
Application granted granted Critical
Publication of KR102625006B1 publication Critical patent/KR102625006B1/en

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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

실시 예는, 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고, 상기 제어부는, 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향인 펌웨어 장치를 개시한다.The embodiment includes a storage unit that stores an image; a communication unit that receives an update file for the image; and a control unit that updates the storage unit by applying the update file to the image, wherein the update file includes first movement information for a first dataset moving in a first direction among the images, and among the images. It includes second movement information for a second dataset moving in a second direction, and third movement information for a third dataset added to the image, wherein the control unit moves the first dataset to the first movement. storing in the storage unit according to information, storing the second data set in the storage unit according to the second movement information, storing the third data set in the storage unit according to the third movement information, and storing the first data set in the storage unit according to the third movement information. The direction is a direction in which the data address increases or decreases, and the second direction is the opposite direction to the first direction.

Description

펌웨어 장치 및 이를 포함하는 시스템{APPARATUS FOR FIRMWARE AND SYSTEM INCLUDING THE SAME}Firmware device and system including same {APPARATUS FOR FIRMWARE AND SYSTEM INCLUDING THE SAME}

실시 예는 펌웨어 장치 및 이를 포함하는 시스템에 관한 것이다.Embodiments relate to firmware devices and systems including the same.

무선 단말기의 기능이 복잡해짐에 따라 탑재되는 소프트웨어 또한 많은 버그(bug)를 가지고 있고, 무선 단말기의 출시 후 기능 추가에 대한 요구가 갈수록 더해지고 있다. 이에 따라 무선 단말기의 소프트웨어의 패치 및 기능 업그레이드를 무선상으로 해결하기 위해 나온 것이 FOTA(Firmware Over The Air)이다.As the functions of wireless terminals become more complex, the software installed therein also has many bugs, and the demand for additional functions is increasing after the release of wireless terminals. Accordingly, FOTA (Firmware Over The Air) was developed to solve wireless terminal software patches and function upgrades.

종래 기술에 따른 FOTA 서비스 방법을 살펴보면, 각 FOTA 솔루션 업체에서 FOTA를 실행하기 위한 소프트웨어를 각기 개발하여 공급하고, 이동통신망을 이용하여 무선 단말기로 상기 소프트웨어를 다운받아 실행함으로써 무선 단말기의 펌웨어(Firmware) 업데이트를 수행하게 된다.Looking at the FOTA service method according to the prior art, each FOTA solution company develops and supplies software to run FOTA, and downloads and executes the software to a wireless terminal using a mobile communication network to create the firmware of the wireless terminal. The update will be performed.

FOTA를 수행하기 위한 소프트웨어는 음성 데이터 패킷이나 SMS 메시지의 데이터 등에 비해 데이터의 양이 훨씬 크므로 다운로드에 많은 시간이 소요되는데, 이로 인해 소프트웨어를 다운받는 동안에는 다른 수행을 할 경우 다운로드를 중단해야 하는 문제점이 발생한다.The software for performing FOTA requires a lot of time to download because the amount of data is much larger than that of voice data packets or SMS message data, which causes the problem of having to stop downloading if you do anything else while downloading the software. This happens.

또한, 다운받는 소프트웨어의 용량이 큰 편이므로, 다운로드 중에는 특정 단말이 무선 자원(Radio Resource)을 많이 소모하게 된다. 이로 인해, 특정 셀(cell) 내에 있는 한 사용자에게 무선 자원이 집중되어 동일 셀 내의 다른 사용자가 무선 통신 서비스를 이용함에 있어 악영향을 미칠 수 있다는 문제점을 남기게 된다.Additionally, since the capacity of the downloaded software is large, a specific terminal consumes a lot of radio resources during downloading. As a result, wireless resources are concentrated on one user within a specific cell, leaving a problem in that other users within the same cell may have a negative impact on using wireless communication services.

더 나아가, 단말 사용자에게 불편을 초래하는 것 이외에, 각 통신 서비스 사용자에게 최상을 통신 환경을 제공하려는 통신 사업자에게도 효율적인 무선 자원 분배에 어려움을 가중시키는 한계가 존재한다.Furthermore, in addition to causing inconvenience to terminal users, there are also limitations that increase difficulties in efficient wireless resource distribution for communication service providers who seek to provide the best communication environment to each communication service user.

실시 예는 원본 이미지 중 수정되는 부분의 파일을 다운로드를 통해 플러쉬(flush)하는 펌웨어 장치 및 펌웨어 시스템을 제공한다.The embodiment provides a firmware device and a firmware system that flushes the file of the modified portion of the original image by downloading it.

또한, 실시예는 이전 펌웨어 이미지에서 새로운 펌웨어 이미지로 수정되는 부분 중 데이터 이동 방향에 따라 구분하여 수정되는 부분의 용량을 최소화하는 펌웨어 장치 및 펌웨어 시스템을 제공한다.Additionally, the embodiment provides a firmware device and firmware system that minimizes the capacity of the modified portion by distinguishing it according to the data movement direction among the portion modified from the previous firmware image to the new firmware image.

실시 예에서 해결하고자 하는 과제는 이에 한정되는 것은 아니며, 아래에서 설명하는 과제의 해결수단이나 실시 형태로부터 파악될 수 있는 목적이나 효과도 포함된다고 할 것이다.The problem to be solved in the embodiment is not limited to this, and it will also include means of solving the problem described below and purposes and effects that can be understood from the embodiment.

본 발명의 실시예에 따른 펌웨어 장치는 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고, 상기 제어부는, 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.A firmware device according to an embodiment of the present invention includes a storage unit that stores an image; a communication unit that receives an update file for the image; and a control unit that updates the storage unit by applying the update file to the image, wherein the update file includes first movement information for a first dataset moving in a first direction among the images, and among the images. It includes second movement information for a second dataset moving in a second direction, and third movement information for a third dataset added to the image, wherein the control unit moves the first dataset to the first movement. storing in the storage unit according to information, storing the second data set in the storage unit according to the second movement information, storing the third data set in the storage unit according to the third movement information, and storing the first data set in the storage unit according to the third movement information. The direction is a direction in which the data address increases or decreases, and the second direction is opposite to the first direction.

상기 제1 이동 정보는, 상기 제1 데이터셋의 이동 전 어드레스인 제1 소스 어드레스 정보; 상기 제1 데이터셋이 이동 후 어드레스인 제1 타겟 어드레스 정보; 및 상기 제1 데이터셋의 제1 길이 정보;를 포함할 수 있다.The first movement information includes first source address information, which is an address before movement of the first data set; First target address information, which is the address after the first data set is moved; and first length information of the first data set.

상기 제2 이동 정보는, 상기 제2 데이터셋의 이동 전 어드레스인 제2 소스 어드레스 정보; 상기 제2 데이터셋이 이동 후 어드레스인 제2 타겟 어드레스 정보; 및 상기 제2 데이터셋에서 이동 대상 데이터의 제2 길이 정보;를 포함할 수 있다.The second movement information includes second source address information, which is an address before movement of the second data set; Second target address information, which is the address after the second data set is moved; and second length information of data to be moved in the second dataset.

상기 제3 이동 정보는, 상기 제3 데이터셋의 어드레스 및 상기 제3 데이터셋의 데이터를 포함할 수 있다.The third movement information may include the address of the third data set and data of the third data set.

상기 제1 데이터셋은 상기 제1 방향으로 이동되는 제1 데이터의 집합이고, 상기 제2 데이터셋은 상기 제2 방향으로 이동되는 제2 데이터의 집합이고, 상기 제3 데이터셋은 상기 이미지에 신규로 추가되는 제3 데이터의 집합일 수 있다.The first data set is a set of first data moved in the first direction, the second data set is a set of second data moved in the second direction, and the third data set is a new set of data in the image. It may be a set of third data added.

상기 제어부는 상기 제1 데이터를 상기 제2 방향을 따라 순차로 복사할 수 있다.The control unit may sequentially copy the first data along the second direction.

상기 제어부는 상기 제2 데이터를 상기 제1 방향을 따라 순차로 복사할 수 있다.The control unit may sequentially copy the second data along the first direction.

상기 통신부는 LTE, Wifi 및 근거리 무선 통신 중 어느 하나를 포함할 수 있다.The communication unit may include any one of LTE, Wifi, and short-range wireless communication.

실시예에 따른 펌웨어 시스템은 업데이트 파일을 생성하는 서버; 및 상기 업데이트 파일을 이미지에 적용하여 업데이트하는 펌웨어 장치;를 포함하고, 상기 펌웨어 장치는 상기 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고, 상기 제어부는, 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.A firmware system according to an embodiment includes a server that generates an update file; and a firmware device that updates the image by applying the update file to the image, wherein the firmware device includes a storage unit that stores the image. a communication unit that receives an update file for the image; and a control unit that updates the storage unit by applying the update file to the image, wherein the update file includes first movement information for a first dataset moving in a first direction among the images, and among the images. It includes second movement information for a second dataset moving in a second direction, and third movement information for a third dataset added to the image, wherein the control unit moves the first dataset to the first movement. storing in the storage unit according to information, storing the second data set in the storage unit according to the second movement information, storing the third data set in the storage unit according to the third movement information, and storing the first data set in the storage unit according to the third movement information. The direction is a direction in which the data address increases or decreases, and the second direction is opposite to the first direction.

상기 서버는, 상기 이미지와 업데이트된 이미지를 비교하여 상기 업데이트 파일을 추출하는 업데이트 추출부;를 포함할 수 있다.The server may include an update extraction unit that extracts the update file by comparing the image with the updated image.

상기 업데이트 추출부는,The update extractor,

상기 제1 이동 정보를 추출하는 제1 추출부; 상기 제2 이동 정보를 추출하는 제2 추출부; 및 상기 제3 이동 정보를 추출하는 제3 추출부를 포함할 수 있다.a first extraction unit that extracts the first movement information; a second extraction unit that extracts the second movement information; And it may include a third extraction unit that extracts the third movement information.

상기 업데이트 추출부는 제1 이동데이터와 제2 이동데이터의 크기 비교를 통해 우선 이동 복사되는 데이터를 결정하고, 상기 제1 이동데이터는 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고, 상기 제2 이동데이터는 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터일 수 있다.The update extractor determines data to be moved and copied first by comparing the sizes of the first and second movement data, and the first movement data is data that moves along the first direction from the image to the updated image. , and the second movement data may be data moving along the second direction in the image.

본 발명의 실시예에 따른 업데이트 방법은 업데이트 파일을 서버로부터 수신하는 단계; 및 상기 업데이트 파일을 이미지에 적용하여 저장하는 단계를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함하고, 상기 저장하는 단계는, 상기 이미지에서 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 이동하여 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 이동하여 저장하고, 상기 제3 데이터셋을 상기 제3 이동 정보에 따라 추가하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.An update method according to an embodiment of the present invention includes receiving an update file from a server; and applying and storing the update file to an image, wherein the update file includes first movement information for a first dataset moving in a first direction among the images, and moving in a second direction among the images. It includes at least one of second movement information for a second dataset and third movement information for a third dataset added to the image, and the storing step includes storing the first dataset in the image. Move and store according to first movement information, move and store the second data set according to the second movement information, add the third data set according to the third movement information, and the first direction is The direction in which the data address increases or decreases is the direction in which the second direction is opposite to the first direction.

본 발명의 실시예에 따른 업데이트 파일 추출 방법은 이미지와 업데이트된 이미지 간의 동일 데이터를 제외한 차분 이미지를 추출하는 단계; 상기 차분 이미지에서 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계; 제1 방향으로 이동하는 제1 데이터셋의 제1 이동 정보를 추출하는 단계; 제2 방향으로 이동하는 제2 데이터셋의 제2 이동 정보를 추출하는 단계; 제3 데이터셋의 제3 이동 정보를 추출하는 단계; 및 업데이트 파일을 생성하는 단계;를 포함하고, 상기 제1 이동데이터는, 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고, 상기 제2 이동데이터는, 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터이고, 상기 업데이트 파일은, 상기 제1 이동 정보, 상기 제2 이동 정보, 및 상기 제3 이동 정보 중 어느 하나 이상을 포함하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.An update file extraction method according to an embodiment of the present invention includes extracting a difference image excluding identical data between an image and an updated image; Comparing the length of first movement data and the length of second movement data in the difference image; extracting first movement information of a first dataset moving in a first direction; extracting second movement information of a second data set moving in a second direction; extracting third movement information of a third data set; and generating an update file, wherein the first movement data is data moving along the first direction from the image to the updated image, and the second movement data is data moving from the image to the updated image. Data moves along two directions, the update file includes one or more of the first movement information, the second movement information, and the third movement information, and the first direction increases the address of the data. or a decreasing direction, and the second direction is opposite to the first direction.

상기 제2 데이터셋의 어드레스는 상기 제1 데이터셋의 어드레스와 상이할 수 있다.The address of the second data set may be different from the address of the first data set.

실시 예에 따르면, 메모리 사용량을 최소화하는 펌웨어 장치 및 시스템을 구현할 수 있다.According to the embodiment, a firmware device and system that minimizes memory usage can be implemented.

또한, 업데이트시 요구되는 메모리 및 업데이트 시간을 감소할 수 있다. Additionally, the memory and update time required for updating can be reduced.

본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.The various and beneficial advantages and effects of the present invention are not limited to the above-described content, and may be more easily understood through description of specific embodiments of the present invention.

도 1은 실시예에 따른 펌웨어 시스템의 개념도이고,
도 2는 실시예에 따른 서버의 동작을 설명하는 도면이고,
도 3은 제1 이미지와 제2 이미지 각각의 데이터 블록을 도시한 도면이고,
도 4는 제1 이미지에서 제2 이미지로 이동하는 데이터를 도시한 도면이고,
도 5는 제1 데이터셋의 이동을 설명하는 도면이고,
도 6은 제1 중간 이미지를 도시한 도면이고,
도 7은 제2 데이터셋의 이동을 설명하는 도면이고,
도 8은 제2 중간 이미지와 제3 데이터셋을 도시한 도면이고,
도 9는 업데이트 파일을 도시한 도면이고,
도 10은 실시예에 따른 펌웨어 장치의 동작을 설명하는 도면이고,
도 11은 실시예에 따른 업데이트 과정을 설명하는 도면이고,
도 12는 실시예에 따른 제어부의 동작을 설명하는 도면이고,
도 13은 제1 처리부의 동작을 설명하는 도면이고,
도 14는 제2 처리부의 동작을 설명하는 도면이고,
도 15는 실시예에 따른 펌웨어 장치의 동작을 설명하는 순서도이고,
도 16은 실시예에 따른 서버의 동작을 설명하는 순서도이다.
1 is a conceptual diagram of a firmware system according to an embodiment,
Figure 2 is a diagram explaining the operation of a server according to an embodiment,
Figure 3 is a diagram showing data blocks of each of the first image and the second image;
Figure 4 is a diagram showing data moving from the first image to the second image;
Figure 5 is a diagram explaining the movement of the first data set,
Figure 6 is a diagram showing a first intermediate image;
Figure 7 is a diagram explaining the movement of the second data set,
Figure 8 is a diagram showing a second intermediate image and a third dataset;
Figure 9 is a diagram showing an update file,
10 is a diagram explaining the operation of a firmware device according to an embodiment;
11 is a diagram illustrating an update process according to an embodiment;
Figure 12 is a diagram explaining the operation of the control unit according to the embodiment;
13 is a diagram explaining the operation of the first processing unit;
14 is a diagram explaining the operation of the second processing unit;
15 is a flowchart explaining the operation of the firmware device according to the embodiment;
16 is a flowchart explaining the operation of a server according to an embodiment.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the attached drawings.

다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.However, the technical idea of the present invention is not limited to some of the described embodiments, but may be implemented in various different forms, and as long as it is within the scope of the technical idea of the present invention, one or more of the components may be optionally used between the embodiments. It can be used by combining and replacing.

또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.In addition, terms (including technical and scientific terms) used in the embodiments of the present invention, unless explicitly specifically defined and described, are generally understood by those skilled in the art to which the present invention pertains. It can be interpreted as meaning, and the meaning of commonly used terms, such as terms defined in a dictionary, can be interpreted by considering the contextual meaning of the related technology.

또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.Additionally, the terms used in the embodiments of the present invention are for describing the embodiments and are not intended to limit the present invention.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.In this specification, the singular may also include the plural unless specifically stated in the phrase, and when described as "at least one (or more than one) of A and B and C", it is combined with A, B, and C. It can contain one or more of all possible combinations.

또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.Additionally, when describing the components of an embodiment of the present invention, terms such as first, second, A, B, (a), and (b) may be used.

이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.These terms are only used to distinguish the component from other components, and are not limited to the essence, sequence, or order of the component.

그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.And, when a component is described as being 'connected', 'coupled' or 'connected' to another component, the component is not only directly connected, coupled or connected to that other component, but also is connected to that component. It can also include cases where other components are 'connected', 'combined', or 'connected' due to another component between them.

또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.Additionally, when described as being formed or disposed "above" or "below" each component, "above" or "below" refers not only to cases where two components are in direct contact with each other, but also to one This also includes cases where another component described above is formed or placed between two components. In addition, when expressed as "top (above) or bottom (bottom)", it may include not only the upward direction but also the downward direction based on one component.

도 1은 실시예에 따른 펌웨어 시스템의 개념도이고, 도 2는 실시예에 따른 서버의 동작을 설명하는 도면이다.FIG. 1 is a conceptual diagram of a firmware system according to an embodiment, and FIG. 2 is a diagram explaining the operation of a server according to an embodiment.

도 1 및 도 2를 참조하면, 실시예에 따른 펌웨어 시스템(10)은 서버(100)와 펌웨어 장치(200)를 포함할 수 있다. Referring to FIGS. 1 and 2 , the firmware system 10 according to an embodiment may include a server 100 and a firmware device 200.

먼저, 서버(100)는 통신을 통해 단말기로 FOTA(Firmware Over the Air) 서비스를 제공할 수 있다. 즉, 서버(100)는 단말기의 사용자에게 문자 메시지 등으로 FOTA 서비스를 통지하며, 인증 절차 등을 걸쳐 단말기 사용자에게 펌웨어 업데이트 파일을 송신할 수 있다. 이를 통해 단말기는 시스템 버전이 최신 버전으로 업데이트될 수 있다.First, the server 100 can provide FOTA (Firmware Over the Air) service to the terminal through communication. That is, the server 100 notifies the terminal user of the FOTA service through a text message, etc., and can send a firmware update file to the terminal user through an authentication process, etc. Through this, the terminal's system version can be updated to the latest version.

이 때, 서버(100)는 업데이트 추출부(110)를 포함할 수 있다. 상기 업데이트 추출부(110)는 기존의 펌웨어 이미지인 제1 이미지(I1)와 새로운 펌웨어 이미지인 제2 이미지(I2)를 비교하여 업데이트 파일(D)을 생성할 수 있다. 다시 말해, 업데이트 파일(D)은 제2 이미지(I2)로 업데이트하기 위해 제1 이미지(I1)에 필요한 내용으로 이루어질 수 있다.At this time, the server 100 may include an update extraction unit 110. The update extractor 110 may generate an update file (D) by comparing the first image (I1), which is an existing firmware image, with the second image (I2), which is a new firmware image. In other words, the update file D may consist of contents necessary for the first image I1 to update the second image I2.

그리고 업데이트 추출부(110)는 제1 이미지(I1)에서 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보를 추출하는 제1 추출부(111), 제1 이미지(I1)에서 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보를 추출하는 제2 추출부(112) 및 제1 이미지(I1)에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 추출하는 제3 추출부(113)를 포함할 수 있다. 그리고 이하에서 데이터의 이동은 데이터의 복사, 변경 등을 포함하나 이하에서는 복사로 설명한다.And the update extractor 110 includes a first extractor 111 that extracts first movement information for the first dataset moving in the first direction from the first image I1, A second extraction unit 112 for extracting second movement information for a second data set moving in two directions and a third extracting third movement information for a third data set added to the first image I1. It may include an extraction unit 113. In the following, data movement includes copying and changing data, but is described as copying below.

업데이트 추출부(110)에서 상술한 제1 추출부(111), 제2 추출부(112) 및 제3 추출부(113)의 동작에 대해서는 후술한다. 그리고 업데이트 추출부(110)는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어로 구현될 수 있으나, 이에 한정되는 것은 아니다.The operations of the first extraction unit 111, second extraction unit 112, and third extraction unit 113 described above in the update extraction unit 110 will be described later. The update extractor 110 may be implemented with hardware such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), but is not limited thereto.

또한, 업데이트 추출부(110)는 서버(100) 내에 위치할 수 있으나, 이에 한정되는 것은 아니고 서버(100) 외부에 위치할 수 있다. 예컨대, 추출된 업데이트 파일(D)은 서버(100)에서 제어부(220)를 포함하는 단말기로 송신될 수 있다.Additionally, the update extractor 110 may be located within the server 100, but is not limited thereto and may be located outside the server 100. For example, the extracted update file D may be transmitted from the server 100 to the terminal including the control unit 220.

펌웨어 장치(200)는 통신부(210), 제어부(220) 및 저장부(230)를 포함할 수 있다. 펌웨어 장치(200)는 상술한 단말기 내에 위치할 수 있으며, 단말기는 다양한 전자 장치를 포함할 수 있다. 예컨대, 단말기는 랩탑 컴퓨터, 개인용 컴퓨터, 태블릿 장치, 전자 독출 장치, 이동국(MS), 무선 모뎀을 구비한 개인정보단말(PDA) 장치, 양방향 페이저(pager), 개인휴대통신 장치 등과 같이 무선 통신이 가능한 임의의 전자 장치를 모두 포함할 수 있다. 이러한 펌웨어 장치는 상술한 펌웨어 이미지를 포함할 수 있다. 이 때, 펌웨어 이미지는 단말기 내의 플래시 메모리 등에 존재할 수 있다. The firmware device 200 may include a communication unit 210, a control unit 220, and a storage unit 230. The firmware device 200 may be located within the above-described terminal, and the terminal may include various electronic devices. For example, a terminal may be a wireless communication device such as a laptop computer, personal computer, tablet device, electronic reading device, mobile station (MS), personal digital assistant (PDA) device equipped with a wireless modem, two-way pager, personal communication device, etc. It can include any possible electronic device. These firmware devices may include the above-described firmware image. At this time, the firmware image may exist in flash memory, etc. within the terminal.

그리고 통신부(210)는 서버(100)로부터 업데이트 파일(D)을 수신할 수 있다. 이러한 통신부(210)는 유선 또는 무선 통신 방식을 이용할 수 있다. 예컨대, 통신부(210)는 통신 방식으로 유선 랜(Local Area Network; LAN), USB(Universal Serial Bus), 이더넷(Ethernet), 전력선 통신(Power Line Communication; PLC), 무선 랜(Wireless LAN), 코드분할 다중접속(Code Division Multiple Access; CDMA), 시분할 다중접속(Time Division Multiple Access; TDMA), 주파수분할 다중접속(Frequency Division Multiple Access; FDMA), 와이브로(Wireless Broadband Internet; WiBro), LTE(Long Term Evolution), 고속 하향 패킷 접속(High Speed Downlink Packet Access; HSDPA), 광대역 코드분할 다중접속(Wideband CDMA; WCDMA), 초광대역 통신(Ultra WideBand; UWB), 유비쿼터스 센서 네트워크(Ubiquitous Sensor Network; USN), RFID(Radio Frequency IDentification), 적외선 통신(Infrared Data Association; IrDA), NFC(Near Field Communication), 지그비 통신을 포함할 수 있다.And the communication unit 210 can receive the update file D from the server 100. This communication unit 210 may use a wired or wireless communication method. For example, the communication unit 210 uses wired LAN (Local Area Network), USB (Universal Serial Bus), Ethernet, Power Line Communication (PLC), wireless LAN, and code as communication methods. Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Wireless Broadband Internet (WiBro), LTE (Long Term) Evolution), High Speed Downlink Packet Access (HSDPA), Wideband CDMA (WCDMA), Ultra WideBand (UWB), Ubiquitous Sensor Network (USN), It may include RFID (Radio Frequency IDentification), Infrared Data Association (IrDA), NFC (Near Field Communication), and ZigBee communication.

제어부(220)는 제1 이미지에 서버(100)로부터 수신한 업데이트 파일(D)을 적용하여 제2 이미지를 생성할 수 있다. 이 때, 제1 이미지는 상술한 바와 같이 기존의 펌웨어 이미지일 수 있으며, 단말기 내에 저장될 수 있다. 즉, 제어부(220)에서 제1 이미지는 단말기 내에 싱크(SYNC)되어 있는 파일일 수 있다.The control unit 220 may generate a second image by applying the update file D received from the server 100 to the first image. At this time, the first image may be an existing firmware image as described above and may be stored in the terminal. That is, in the control unit 220, the first image may be a file that is synced within the terminal.

그리고 제어부(220)는 제1 처리부(221), 제2 처리부(222), 제3 처리부(223)을 포함할 수 있다.And the control unit 220 may include a first processing unit 221, a second processing unit 222, and a third processing unit 223.

제1 처리부(221)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제1 이미지에서 제1 데이터셋을 제1 이동 정보에 따라 복사하여 제1 중간 이미지를 생성할 수 있다. 즉, 제1 처리부(221)는 업데이트 파일(D)의 정보에 따라 파일 복사를 1차적으로 수행할 수 있다. 그리고 여기서 제1 데이터셋은 복수 개의 제1 데이터를 포함할 수 있으며, 제1 데이터는 제1 방향으로 이동하는 데이터일 수 있다. 이에 대한 자세한 설명은 후술한다.The first processing unit 221 uses the update file D received from the server 100 to copy the first data set from the first image in the firmware device 200 according to the first movement information to create a first intermediate image. can be created. That is, the first processing unit 221 may primarily perform file copying according to the information in the update file D. And here, the first data set may include a plurality of first data, and the first data may be data moving in the first direction. A detailed explanation of this will be provided later.

제2 처리부(222)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제1 중간 이미지에서 제2 데이터셋을 제2 이동 정보에 따라 복사하여 제2 중간 이미지를 생성할 수 있다. 여기서, 제2 데이터셋은 복수 개의 제2 데이터를 포함할 수 있으며, 제2 데이터는 제1 방향과 반대 방향으로 이동하는 데이터일 수 있다. 즉, 제1 데이터와 제2 데이터는 서로 다른 반대 방향으로 이동하는 데이터를 의미할 수 있다. 예컨대, 제1 방향이 데이터의 어드레스가 증가하는 방향이면, 제2 방향은 데이터의 어드레스가 감소하는 방향이다. 반대로, 제1 방향이 데이터의 어드레스가 감소하는 방향이면, 제2 방향은 데이터의 어드레스가 증가하는 방향이다.The second processing unit 222 uses the update file D received from the server 100 to copy the second data set from the first intermediate image in the firmware device 200 according to the second movement information to create a second intermediate image. can be created. Here, the second data set may include a plurality of second data, and the second data may be data moving in a direction opposite to the first direction. That is, the first data and the second data may mean data moving in opposite directions. For example, if the first direction is a direction in which the data address increases, the second direction is a direction in which the data address decreases. Conversely, if the first direction is a direction in which the data address decreases, the second direction is a direction in which the data address increases.

제3 처리부(223)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제2 중간 이미지에서 제3 데이터셋을 제3 이동 정보에 따라 추가하여 제2 이미지를 생성할 수 있다. 여기서, 제3 데이터셋은 복수 개의 제3 데이터를 포함할 수 있다. 제3 데이터는 상술한 방향과 무관할 수 있다.The third processing unit 223 uses the update file D received from the server 100 to add the third data set to the second intermediate image in the firmware device 200 according to the third movement information to create the second image. can be created. Here, the third data set may include a plurality of third data. The third data may be unrelated to the above-described direction.

이러한 방식에 의하여, 제어부(220)는 단말기 내의 파일 시스템에서 동기화 명령(SYNC)을 수행하여 업데이트 파일(D)에 따라 파일을 변경할 수 있다. 이 때, 실시예에 따른 펌웨어 장치는 본 명세서에서 설명하는 업데이트 파일(D)을 이용하여 업데이트를 수행하기에 메모리 사용량을 현저하게 감소할 수 있으며, 업데이트 소요 시간도 감소하므로 전력 소모량도 감소할 수 있다. 다시 말해, 실시예에 따른 펌웨어 장치는 서버 등으로부터 소프트웨어 데이터 전체를 다운로드하지 않고 이전 버전의 소프트웨어 데이터와 비교해 수정된 부분만 추출하여 업데이트 파일을 생성하고, 생성한 업데이트 파일을 다시 압축하여 다운받을 파일의 사이즈를 최소화할 수 있다. 이러한 업데이트 파일을 통해 전자 장치의 저장공간을 좀 더 효율적으로 활용할 수 있고, 다운로드에 걸리는 소요 시간도 줄일 수 있다. 그리고 업데이트 파일을 적용하여 소프트웨어 데이터를 업데이트할 수 있다. By this method, the control unit 220 can change the file according to the update file (D) by executing a synchronization command (SYNC) in the file system within the terminal. At this time, the firmware device according to the embodiment can significantly reduce memory usage by performing an update using the update file (D) described herein, and the time required for the update is also reduced, so power consumption can also be reduced. there is. In other words, the firmware device according to the embodiment does not download the entire software data from a server, etc., but extracts only the modified parts compared to the previous version of the software data to create an update file, and recompresses the generated update file to create a file to be downloaded. The size can be minimized. These update files allow you to use your electronic device's storage space more efficiently and reduce the time it takes to download. And you can update software data by applying the update file.

저장부(230)는 이미지를 저장할 수 있다. 이러한 저장부(230)는 데이터베이스 관리 프로그램(DBMS)을 이용하여 컴퓨터 시스템의 저장공간(하드디스크 또는 메모리)에 구현된 일반적인 데이터구조를 의미하는 것으로, 데이터의 검색(추출), 삭제, 편집, 추가 등을 자유 롭게 행할 수 있는 데이터 저장형태를 모두 포함할 수 있다. 그리고 저장부(230)에서는 이미지가 제어부(220)에 의해 데이터 이동에 따라 지속적으로 업데이트되어 저장될 수 있다. The storage unit 230 can store images. This storage unit 230 refers to a general data structure implemented in the storage space (hard disk or memory) of a computer system using a database management program (DBMS), and searches (extracts), deletes, edits, and adds data. It can include all types of data storage that can be freely performed. And in the storage unit 230, the image can be continuously updated and stored according to data movement by the control unit 220.

도 3은 제1 이미지와 제2 이미지 각각의 데이터 블록을 도시한 도면이고, 도 4는 제1 이미지에서 제2 이미지로 이동하는 데이터를 도시한 도면이고, 도 5는 제1 데이터셋의 이동을 설명하는 도면이고, 도 6은 제1 중간 이미지를 도시한 도면이고, 도 7은 제2 데이터셋의 이동을 설명하는 도면이고, 도 8은 제2 중간 이미지와 제3 데이터셋을 도시한 도면이다.Figure 3 is a diagram showing data blocks of each of the first image and the second image, Figure 4 is a diagram showing data moving from the first image to the second image, and Figure 5 is a diagram showing the movement of the first data set. It is an explanatory diagram, FIG. 6 is a diagram illustrating the first intermediate image, FIG. 7 is a diagram illustrating the movement of the second data set, and FIG. 8 is a diagram illustrating the second intermediate image and the third data set. .

도 3 및 도 4를 참조하면, 상술한 바와 같이 제2 이미지(I2)는 제1 이미지(I1)를 기반으로 업데이트된 이미지일 수 있다. 따라서 제1 이미지(I1)와 제2 이미지(I2)는 대부분의 데이터가 동일할 수 있다. 다만, 업데이트를 통해 추가되는 데이터의 위치에 따라 제1 이미지(I1)의 데이터는 제2 이미지(I2) 대비 어드레스(address)가 변경될 수 있다. 즉, 제1 이미지(I1)에서 일부 데이터는 제2 이미지(I2) 대비 어드레스가 증가 또는 감소할 수 있다. 그리고 제1 이미지(I1)와 제2 이미지(I2)는 상술한 바와 같이 복수의 데이터로 이루어진 파일일 수 있다. Referring to FIGS. 3 and 4 , as described above, the second image I2 may be an image updated based on the first image I1. Accordingly, most of the data of the first image I1 and the second image I2 may be the same. However, depending on the location of data added through update, the address of the data of the first image (I1) may change compared to the second image (I2). That is, the address of some data in the first image I1 may increase or decrease compared to the second image I2. And the first image (I1) and the second image (I2) may be files composed of a plurality of data as described above.

구체적으로, 설명을 위해, 제1 이미지(I1)는 복수 개의 데이터의 집합으로 이루어질 수 있다. 예컨대, 제1 이미지(I1)는 제1-1 영역(Z11) 내지 제1-7 영역(Z17)로 구획될 수 있다. 이 때, 제1-1 영역(Z11) 내지 제1-7 영역(Z1-7)은 제1 방향(d1)으로 순차로 배치될 수 있으며, 제1 방향(d1)은 이미지 내의 데이터의 어드레스가 증가 및 감소 중 어느 하나가 이루어지는 방향일 수 있다. 그리고 제2 방향(d2)은 제1 방향(d1)에 반대 방향일 수 있다. 이하에서 제1 방향(d1)은 데이터의 어드레스가 증가하는 방향으로, 제2 방향(d2)은 데이터의 어드레스가 감소하는 방향으로 설명한다. 이에, 제1-1 영역(Z11)은 어드레스가 가장 작고, 제1-7 영역(Z17)은 어드레스가 가장 클 수 있다. 또한, 제1-1 영역(Z11) 내지 제1-7 영역(Z17)의 저장부(230)에서 펌웨어 대상인 이미지가 저장되는 공간으로 후술하는 제1 이미지, 제1 중간 이미지, 제2 중간 이미지, 제2 이미지는 동일한 공간에 저장되나, 이하에서 각 영역으로 구획하여 설명한다. 이에, 제1-1 영역(Z11) 내지 제1-7 영역(Z17)은 각각이 제2-1 영역(Z21) 내지 제2-7 영역(Z27) 중 어느 하나와 동일하거나, 일부 동일 영역이 중첩될 수 있는 것으로 이해해야 한다.Specifically, for explanation purposes, the first image I1 may be composed of a plurality of sets of data. For example, the first image I1 may be divided into a 1-1 area Z11 to a 1-7 area Z17. At this time, the 1-1st area (Z11) to the 1-7th area (Z1-7) may be sequentially arranged in the first direction (d1), and the first direction (d1) is the address of the data in the image. The direction may be either increase or decrease. And the second direction d2 may be opposite to the first direction d1. Hereinafter, the first direction d1 will be described as a direction in which the data address increases, and the second direction d2 will be described as a direction in which the data address decreases. Accordingly, the 1-1 area (Z11) may have the smallest address, and the 1-7 area (Z17) may have the largest address. In addition, the storage unit 230 of the 1-1st area (Z11) to the 1-7th area (Z17) is a space where images that are subject to firmware are stored, and includes a first image, a first intermediate image, a second intermediate image, which will be described later, The second image is stored in the same space, but is explained separately in each area below. Accordingly, each of the 1-1 regions (Z11) to the 1-7 regions (Z17) is the same as or is partially identical to any one of the 2-1 regions (Z21) to the 2-7 regions (Z27). It must be understood that they can overlap.

그리고 제2 이미지(I2)는 제2-1 영역(Z2) 내지 제2-7 영역(Z27)로 구획될 수 있다. 이 때, 제2-1 영역(Z21) 내지 제2-7 영역(Z2-7)은 제1 방향(d1)을 따라 순차로 배치될 수 있다. 마찬가지로, 제2-1 영역(Z21)은 어드레스가 가장 작고, 제2-7 영역(Z27)은 어드레스가 가장 클 수 있다. 또한, 제1-1 영역(Z11)과 제2-1 영역(Z21)은 데이터의 길이가 같은 경우 데이터 어드레스도 전 영역에서 같을 수 있다. 또한, 제1-1 영역(Z11)의 어드레스는 제2-1 영역(Z21)의 어드레스와 동일할 수 있다.And the second image I2 may be divided into a 2-1 area Z2 to a 2-7 area Z27. At this time, the 2-1st area Z21 to the 2-7th area Z2-7 may be sequentially arranged along the first direction d1. Likewise, the 2-1st area (Z21) may have the smallest address, and the 2-7th area (Z27) may have the largest address. Additionally, when the data length of the 1-1st area (Z11) and the 2-1st area (Z21) are the same, the data address may also be the same in all areas. Additionally, the address of the 1-1 area Z11 may be the same as the address of the 2-1 area Z21.

그리고 상술한 바와 같이 제1 이미지(I1)는 제2 이미지(I2)와 비교할 때, 내용(예컨대, 함수 등)은 동일하나 위치(어드레스)가 차분 이미지를 포함할 수 있다. And as described above, when compared to the second image I2, the first image I1 may have the same content (eg, function, etc.) but may include a difference image in location (address).

예컨대, 제1 이미지(I1)의 제1-1 영역(Z11)은 제2 이미지(I2)의 제2-2 영역(Z22)과 내용이 같으나 위치가 상이할 수 있다. 이와 동일하게, 제1 이미지(I1)의 제1-2 영역(Z12)은 제2 이미지(I2)의 제2-4 영역(Z24)에 대응되고, 제1 이미지(I1)의 제1-3 영역(Z13)은 제2 이미지(I2)의 제2-1 영역(Z21)과 대응되고, 제1 이미지(I1)의 제1-5 영역(Z15)는 제2 이미지(I2)의 제2-3 영역(Z23)과 대응되고, 제1 이미지(I1)의 제1-6 영역(Z16)은 제2 이미지(I2)의 제2-7 영역(Z27)과 대응되고, 제1 이미지(I1)의 제1-7 영역(Z17)은 제2 이미지(I2)의 제2-5 영역(Z25)과 대응될 수 있다. 즉, 제1 이미지(I1)의 제1-2 영역(Z12), 제1-3 영역(Z13), 제1-5 영역(Z15), 제1-6 영역(Z16) 및 제1-7 영역(Z17)은 각각이 제2 이미지(I2)의 제2-4 영역(Z24), 제2-1 영역(Z21), 제2-3 영역(Z23), 제2-7 영역(Z27) 및 제2-5 영역(Z25)의 내용과 동일하나 위치가 상이할 수 있다. 또한, 제2 이미지(I2)의 제2-6 영역(Z26)은 제1 이미지(I1)에 포함되지 않는 데이터를 내용으로 가지는 영역일 수 있다.For example, the 1-1 area Z11 of the first image I1 may have the same content as the 2-2 area Z22 of the second image I2, but the location may be different. Likewise, the 1-2 area Z12 of the first image I1 corresponds to the 2-4 area Z24 of the second image I2, and the 1-3 area Z of the first image I1 The area Z13 corresponds to the 2-1st area Z21 of the second image I2, and the 1-5th area Z15 of the first image I1 corresponds to the 2-1st area Z21 of the second image I2. 3 corresponds to area Z23, the 1-6 area Z16 of the first image I1 corresponds to the 2-7 area Z27 of the second image I2, and the first image I1 The 1-7th area Z17 may correspond to the 2-5th area Z25 of the second image I2. That is, the 1-2 area (Z12), the 1-3 area (Z13), the 1-5 area (Z15), the 1-6 area (Z16), and the 1-7 area of the first image (I1). (Z17) represents the 2-4th region (Z24), the 2-1st region (Z21), the 2-3rd region (Z23), the 2-7th region (Z27), and the 2nd-7th region (Z27) of the second image I2, respectively. The contents are the same as those in area 2-5 (Z25), but the location may be different. Additionally, the 2-6 area Z26 of the second image I2 may be an area whose contents include data that is not included in the first image I1.

그리고 제1 이미지(I1)의 제1-1 영역(Z11)은 제2 이미지(I2)의 제2-2 영역(Z22)으로 복사되어야 하므로 업데이트 시 어드레스가 증가하는 제1 방향(d1)으로 이동할 수 있다.And since the 1-1 area (Z11) of the first image (I1) must be copied to the 2-2 area (Z22) of the second image (I2), the address is moved in the first direction (d1) where the address increases. You can.

또한, 제1 이미지(I1)의 제1-2 영역(Z12)은 제2 이미지(I2)의 제2-4 영역(Z24)으로 복사되어야 하므로, 업데이트 시 어드레스가 증가할 수 있다. 또한, 제1 이미지(I1)의 제1-6 영역(Z16)은 제2 이미지의 제2-7 영역(Z27)으로 복사되어야 하므로, 업데이트 시 어드레스가 증가할 수 있다.Additionally, since the 1-2 area Z12 of the first image I1 must be copied to the 2-4 area Z24 of the second image I2, the address may increase during update. Additionally, since the 1-6 area Z16 of the first image I1 must be copied to the 2-7 area Z27 of the second image, the address may increase during update.

그리고 제1 이미지(I1)의 제1-3 영역(Z13)은 제2 이미지(I2)의 제2-1 영역(Z21)으로 복사되어야 하므로, 업데이트 시 어드레스가 감소하는 제2 방향(d2)으로 이동할 수 있다. 또한, 제1 이미지(I1)의 제1-5 영역(Z15)은 제2 이미지(I2)의 제2-3 영역(Z23)으로 복사되어야 하므로 업데이트 시 어드레스가 감소할 수 있다. 또한, 제1 이미지(I1)의 제1-7 영역(Z17)은 제2 이미지(I2)의 제2-5 영역(Z25)으로 복사되어야 하므로, 업데이트 시 어드레스가 감소할 수 있다. And since the 1-3 area Z13 of the first image I1 must be copied to the 2-1 area Z21 of the second image I2, the address decreases in the second direction d2 when updating. You can move. Additionally, since the 1-5 area Z15 of the first image I1 must be copied to the 2-3 area Z23 of the second image I2, the address may decrease during update. Additionally, since the 1-7 area Z17 of the first image I1 must be copied to the 2-5 area Z25 of the second image I2, the address may decrease during update.

그리고 상술한 업데이트 추출부는 제1 추출부를 통해 제1 데이터셋을 추출하기 이전에 제1 이동데이터의 길이와 제2 이동데이터의 길이를 비교하여 우선 복사되는 이동데이터로 결정할 수 있다. 예컨대, 업데이트 추출부는 제1 이동데이터의 길이가 제2 이동데이터의 길이보다 큰 경우, 제1 이동데이터를 우선 복사되는 데이터로 결정하고 제1 이동데이터를 제1 데이터셋으로 추출할 수 있다. 이러한 구성에 의하여, 실시예에 따른 펌웨어 장치는 추가되는 데이터의 길이를 최소화하여 메모리 사용량을 감소할 수 있다. 이하에서는 제1 이동데이터의 길이가 제2 이동데이터의 길이보다 큰 경우로 설명한다.In addition, the above-described update extraction unit may compare the length of the first movement data and the length of the second movement data before extracting the first data set through the first extraction unit and determine the movement data to be copied first. For example, when the length of the first movement data is greater than the length of the second movement data, the update extractor may determine the first movement data as data to be copied first and extract the first movement data as the first dataset. By this configuration, the firmware device according to the embodiment can reduce memory usage by minimizing the length of added data. Hereinafter, a case where the length of the first movement data is greater than the length of the second movement data will be described.

구체적으로, 이동데이터는 제1 이미지를 제2 이미지와 비교할 때 데이터의 이동 방향에 따라 제1 이동데이터 및 제2 이동데이터로 구분될 수 있다. 먼저, 제1 이동데이터는 제2 이미지 대비 제1 이미지에서 제1 방향으로 어드레스가 이동된 데이터이고, 제2 이동데이터는 제2 이미지 대비 제1 이미지에서 제2 방향으로 어드레스가 이동된 데이터이다. 다시 말해, 제1 이동데이터는 제1 이미지에서 제2 이미지로 이동하는 데이터 중 어드레스가 증가한 데이터이고, 제2 이동데이터는 어드레스가 감소한 데이터이다. 예컨대, 제1 이동데이터는 제1-1 영역(Z11)의 데이터, 제1-2 영역(Z12)의 데이터, 제1-6 영역(Z16)의 데이터를 포함하고, 제2 이동데이터는 제1-3 영역(Z13)의 데이터, 제1-5 영역(Z15)의 데이터, 제1-7 영역(Z17)의 데이터를 포함할 수 있다.Specifically, movement data may be divided into first movement data and second movement data depending on the direction of movement of the data when comparing the first image with the second image. First, the first movement data is data whose address is moved in the first direction from the first image compared to the second image, and the second movement data is data whose address is moved in the second direction from the first image compared to the second image. In other words, the first movement data is data whose address is increased among data moving from the first image to the second image, and the second movement data is data whose address is decreased. For example, the first movement data includes data of the 1-1 area (Z11), data of the 1-2 area (Z12), and data of the 1-6 area (Z16), and the second movement data includes the data of the 1-1 area (Z11), the data of the 1-2 area (Z12), and the data of the 1-6 area (Z16). It may include data of the -3 area (Z13), data of the 1-5th area (Z15), and data of the 1-7th area (Z17).

도 5를 참조하면, 제1 추출부는 제1 이미지(I1)로부터 제1 데이터셋(D1)의 제1 이동 정보를 추출할 수 있다. Referring to FIG. 5, the first extractor may extract first movement information of the first dataset D1 from the first image I1.

먼저, 제1 데이터셋(D1)은 제1 방향으로 이동하는 복수 개의 제1 데이터(D11, D12, D13)을 포함할 수 있다. 실시예로, 제1 데이터셋(D1)은 제1 이미지(I1)에서 상술한 제1-1 영역(Z11), 제1-2 영역(Z12) 및 제1-6 영역(Z16)의 각 데이터를 포함할 수 있다. 그리고 예를 들어, 복수 개의 제1 데이터는 제1-1 데이터(D11), 제1-2 데이터(D12), 제1-3 데이터(D13)을 포함할 수 있으며, 제1-1 데이터(D11)는 제1-1 영역(Z11)의 데이터이고, 제1-2 데이터(D12)는 제1-2 영역(Z12)의 데이터이고, 제1-3 데이터(D13)는 제1-6 영역(Z16)의 데이터이다.First, the first data set D1 may include a plurality of first data D11, D12, and D13 moving in the first direction. In an embodiment, the first data set (D1) is each data of the 1-1 area (Z11), the 1-2 area (Z12), and the 1-6 area (Z16) described above in the first image (I1). may include. And, for example, the plurality of first data may include 1-1 data (D11), 1-2 data (D12), and 1-3 data (D13), and the 1-1 data (D11) ) is the data of the 1-1 area (Z11), the 1-2 data (D12) is the data of the 1-2 area (Z12), and the 1-3 data (D13) is the data of the 1-6 area ( This is data from Z16).

그리고 제1 데이터셋(D1)의 제1 이동 정보는 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보, 제1 길이 정보를 포함할 수 있다. 제1 데이터셋(D1)의 제1 이동 정보는 각 제1 데이터에 대한 이동 정보를 모두 포함할 수 있다.And the first movement information of the first data set D1 may include first source address information, first target address information, and first length information. The first movement information of the first data set D1 may include all movement information for each first data.

그리고 제1 소스 어드레스 정보는 제1 데이터가 이동하기 전의 어드레스일 수 있다. 예를 들어, 제1-1 데이터(D11)의 제1 소스 어드레스 정보는 제1-1 영역(Z11)의 어드레스일 수 있다. 그리고 제1-1 데이터(D11)의 제1 타겟 어드레스 정보는 제2-2 영역(22)의 어드레스일 수 있다. 다만, 전술한 바와 같이, 제1-1 영역(Z12)의 어드레스는 제2-1 영역(Z21)의 어드레스와 동일하고, 제2-2 영역(Z22)의 어드레스의 일부는 제1-2 영역(Z12)의 어드레스와 동일하다. 그리고 제1 길이 정보는 제1-1 영역(Z11)의 데이터의 양으로 제1 방향(d1) 또는 제2 방향(d2)으로 크기일 수 있다.And the first source address information may be an address before the first data is moved. For example, the first source address information of the 1-1 data D11 may be the address of the 1-1 area Z11. And the first target address information of the 1-1 data D11 may be the address of the 2-2 area 22. However, as described above, the address of the 1-1 area (Z12) is the same as the address of the 2-1 area (Z21), and part of the address of the 2-2 area (Z22) is the address of the 1-2 area (Z21). It is the same as the address of (Z12). And the first length information is the amount of data in the 1-1 area Z11 and may be sized in the first direction d1 or the second direction d2.

상술한 방식에 의하여, 제1 추출부는 제1 데이터셋(D1)의 제1 이동 정보를 추출할 수 있다.By the above-described method, the first extractor can extract the first movement information of the first data set (D1).

도 6 및 도 7을 참조하면, 제2 추출부는 제2 데이터셋(D2)의 이동 정보를 추출할 수 있다. Referring to FIGS. 6 and 7 , the second extractor may extract movement information of the second data set (D2).

구체적으로, 제1 이미지(I1)는 제1 데이터셋(D1)이 제1 이동 정보에 따라 이동하게 되어 저장될 수 있다. 저장되는 제1 이미지는 제1 중간 이미지(I1')로 변경될 수 있고, 제1 중간 이미지(I1')는 제1 이미지에서 제1 이동 정보에 따라 이동하여 저장된 이미지일 수 있다.Specifically, the first image I1 may be stored as the first data set D1 moves according to the first movement information. The stored first image may be changed to the first intermediate image I1', and the first intermediate image I1' may be an image stored by moving from the first image according to the first movement information.

그리고 제1 중간 이미지(I1')는 제2 이동데이터의 일부 영역을 침범할 수도 있다. 즉, 제1 데이터셋(D1)의 이동에 의하여 제2 이동데이터의 일부 데이터가 다른 데이터로 변경되는 중첩 영역을 포함할 수 있다. And the first intermediate image I1' may invade some areas of the second moving data. That is, it may include an overlapping area where some data of the second movement data is changed to other data due to movement of the first data set D1.

다시 말해, 제1 중간 이미지(I1')에서 제1-1 영역(Z12)의 데이터는 제2-2 영역(Z22)으로 복사되어 이동하고, 제1-2 영역(Z12)의 데이터는 제2-4 영역(Z24)으로 복사되어 이동하며, 제1-6 영역(Z16)의 데이터도 제2-7 영역(Z27)으로 복사되어 이동할 수 있다. 이에 따라, 제1-3 영역(Z13)의 데이터는 제1-1 영역(Z11)의 데이터와 제1-2 영역(Z12)의 데이터의 이동에 따라 일부 변경될 수 있다. 이 때, 변경된 영역은 제1 중첩 영역(OV1)일 수 있다. 다시 말해, 제1 중첩 영역(OV1)은 제1-3 영역(Z13)의 데이터 중 제1-1 영역(Z11)의 데이터와 제1-2 영역(Z12)의 데이터의 이동에 따라 일부 변경된 영역이다.In other words, in the first intermediate image I1', the data in the 1-1 area Z12 is copied and moved to the 2-2 area Z22, and the data in the 1-2 area Z12 is copied and moved to the 2-2 area Z12. It is copied and moved to the -4 area (Z24), and data from the 1-6th area (Z16) can also be copied and moved to the 2-7th area (Z27). Accordingly, the data in the 1-3 area (Z13) may be partially changed according to the movement of the data in the 1-1 area (Z11) and the data in the 1-2 area (Z12). At this time, the changed area may be the first overlapping area OV1. In other words, the first overlapping area OV1 is an area that is partially changed according to the movement of the data in the 1-1 area (Z11) and the data in the 1-2 area (Z12) among the data in the 1-3 area (Z13). am.

마찬가지로, 제1 중간 이미지(I1')에서 제1-6 영역(Z16)의 데이터가 제2-7 영역(Z27)의 데이터로 복사되어 이동되어 제1-7 영역(Z17)의 데이터는 제1-6 영역(Z16)의 데이터로 변경될 수 있다. 즉, 제1-7 영역(Z17)의 데이터는 전체가 변경되며 제2 중첩 영역(OV2)일 수 있다. 이러한 중첩 영역은 이에 한정되는 것은 아니며 제1 이미지와 제2 이미지 간의 데이터 차이에 따라 존재하지 않을 수도 있다.Likewise, in the first intermediate image I1', the data of the 1-6th area Z16 is copied and moved to the data of the 2-7th area Z27, so that the data of the 1-7th area Z17 is changed to the 1st intermediate image I1'. It can be changed to data in the -6 area (Z16). That is, the data in the 1-7th area (Z17) is entirely changed and may become the second overlapping area (OV2). This overlapping area is not limited to this and may not exist depending on the data difference between the first image and the second image.

그리고 제2 데이터셋(D2)은 제2 방향으로 이동하는 제2 데이터로 이루어질 수 있다. 실시예로, 제2 데이터셋(D2)은 제1 중간 이미지(I1')에서 제1 중첩 영역(OV1)의 데이터가 제거된 제1-3 영역(Z13)의 데이터인 제2-1 데이터(D21) 및 제1-5 영역(Z15)의 데이터인 제2-2 데이터(D22)를 포함할 수 있다.And the second data set D2 may be composed of second data moving in the second direction. In an embodiment, the second data set D2 is the 2-1 data (2-1 data) which is the data of the 1-3 region (Z13) from which the data of the first overlapping region (OV1) is removed from the first intermediate image (I1') D21) and 2-2 data D22, which is data of the 1-5 area Z15.

그리고 제2 추출부는 제2 데이터셋(D2)의 제2 이동 정보를 추출할 수 있다. 이 때, 제2 데이터셋(D2)의 제2 이동 정보는 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보, 제2 길이 정보를 포함할 수 있다. 또한, 제2 데이터셋(D1)의 제2 이동 정보는 각 제2 데이터에 대한 이동 정보를 모두 포함할 수 있다.And the second extraction unit may extract the second movement information of the second data set (D2). At this time, the second movement information of the second data set D2 may include second source address information, second target address information, and second length information. Additionally, the second movement information of the second data set D1 may include all movement information for each second data.

제2 소스 어드레스 정보는 제2 데이터가 이동하기 전의 어드레스일 수 있다. 예를 들어, 제2-1 데이터(D21)의 제2 소스 어드레스 정보는 제1-3 영역(Z13)의 어드레스일 수 있다. 그리고 제2-1 데이터(D21)의 제1 타겟 어드레스 정보는 제2-1 영역의 어드레스일 수 있다. 다만, 전술한 바와 같이, 제2-1 영역의 어드레스는 제1-1 영역(Z11)의 어드레스와 동일하고, 제2-2 영역의 어드레스의 일부는 제1-2 영역의 어드레스와 동일하다. 그리고 제2 길이 정보는 제2 데이터셋에서 제2 데이터의 양으로 제1 방향(d1) 또는 제2 방향(d2)으로 크기일 수 있다.The second source address information may be an address before the second data is moved. For example, the second source address information of the 2-1 data D21 may be the address of the 1-3 area Z13. And the first target address information of the 2-1 data D21 may be the address of the 2-1 area. However, as described above, the address of the 2-1 area is the same as the address of the 1-1 area (Z11), and a part of the address of the 2-2 area is the same as the address of the 1-2 area. And the second length information may be the amount of second data in the second data set and the size in the first direction (d1) or the second direction (d2).

또한, 제2 데이터셋의 제2 소스 어드레스 정보는 제1 타겟 어드레스 정보와 상이할 수 있다. 다시 말해, 제2 데이터셋의 제2 소스 어드레스 정보의 어드레스는 제1 타겟 어드레스 정보의 어드레스와 중첩되지 않을 수 있다. 이렇나 구성에 의하여, 데이터 복사에 따른 데이터 오염 발생을 방지할 수 있다.Additionally, the second source address information of the second data set may be different from the first target address information. In other words, the address of the second source address information of the second data set may not overlap with the address of the first target address information. With this configuration, data contamination due to data copying can be prevented.

도 8을 참조하면, 제3 추출부는 제1 이미지(I1)에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 추출할 수 있다.Referring to FIG. 8, the third extractor may extract third movement information for the third dataset added to the first image I1.

구체적으로, 제1 중간 이미지(I1')는 제2 데이터셋(D2)이 제2 이동 정보에 따라 이동하게 되면 제2 중간 이미지(I1'')로 변경될 수 있다. 이 때, 제1 이동 정보에서 제1 길이 정보는 제2 길이 정보보다 크기가 클 수 있다. 왜냐하면, 후술하는 중첩 영역이 존재하지 않더라도 상술한 바와 같이 제1 이동데이터의 길이에 대한 크기가 제2 이동데이터의 길이에 대한 크기가 더 크기 때문이다. 이로써, 실시예에 따른 펌웨어 장치는 메모리 소모량을 최소화할 수 있다.Specifically, the first intermediate image I1' may be changed to the second intermediate image I1'' when the second data set D2 moves according to the second movement information. At this time, the first length information in the first movement information may be larger than the second length information. This is because, as described above, even if there is no overlapping area described later, the length of the first movement data is larger than the length of the second movement data. Accordingly, the firmware device according to the embodiment can minimize memory consumption.

제3 데이터셋(D3)은 제2 중간 이미지(I1'')와 제2 이미지 간의 차분 이미지인 제3 데이터를 포함할 수 있다. 즉, 제3 데이터셋(D3)은 제1 중간 이미지(I1')에서 이동된 제1 데이터셋(D1)과 제2 이동데이터 사이에 동일한 데이터를 포함할 수 있다.The third data set D3 may include third data that is a difference image between the second intermediate image I1'' and the second image. That is, the third data set D3 may include the same data between the first data set D1 and the second moved data in the first intermediate image I1'.

실시예로, 제3 데이터셋(D3)는 제3-1 데이터(D31), 제3-2 데이터(D32), 제3-3 데이터(D33) 및 제3-4 데이터(D34)를 포함할 수 있다. In an embodiment, the third data set (D3) may include 3-1 data (D31), 3-2 data (D32), 3-3 data (D33), and 3-4 data (D34). You can.

구체적으로, 제3-1 데이터(D31)와 제3-2 데이터(D32)는 제1 중첩 영역의 데이터이며 제1-3 영역(Z13)의 데이터의 일부와 동일할 수 있다. 제3-3 데이터(D33)은 상술한 제2 중첩 영역의 데이터로 제1-7 영역(Z17)의 데이터와 동일할 수 있다. 그리고 제3-4 데이터(D34)은 제2 중간 이미지(I1'')에 추가되는 새로운 데이터일 수 있다. 즉, 제3-4 데이터(D34)은 제1 이미지에 존재하지 않는 데이터일 수 있다.Specifically, the 3-1 data D31 and the 3-2 data D32 are data of the first overlapping area and may be the same as part of the data of the 1-3 area Z13. The 3-3 data D33 is data of the above-described second overlapping area and may be the same as the data of the 1-7 area Z17. And the 3-4 data D34 may be new data added to the second intermediate image I1''. That is, the 3-4 data D34 may be data that does not exist in the first image.

이에 따라, 제3 데이터셋(D3)의 제3 이동 정보는 추가되는 위치, 즉 배치되는 어드레스와 데이터의 길이 및 추가되는 데이터를 포함할 수 있다. 이와 같이, 제3 데이터셋(D3)은 제1 데이터셋(D1), 제2 데이터셋(D2)과 달리 소스 어드레스 정보가 존재하지 않으므로 데이터의 이동이 없이 해당 어드레스로 제공될 수 있다.Accordingly, the third movement information of the third data set D3 may include the location to be added, that is, the address to be placed, the length of the data, and the data to be added. In this way, unlike the first data set D1 and the second data set D2, the third data set D3 does not have source address information, so it can be provided to the corresponding address without data movement.

도 9는 업데이트 파일을 도시한 도면이다.Figure 9 is a diagram showing an update file.

도 9를 참조하면, 업데이트 파일은 제1 데이터셋(D1)의 제1 이동 정보, 제2 데이터셋(D2)의 제2 이동 정보 및 제3 데이터셋(D3)의 제3 이동 정보를 포함할 수 있다.Referring to FIG. 9, the update file may include first movement information of the first dataset (D1), second movement information of the second dataset (D2), and third movement information of the third dataset (D3). You can.

제1 데이터셋(D1)의 제1 이동 정보는 상술한 바와 같이 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보, 제1 길이 정보를 포함할 수 있다. 즉, 제1 데이터셋(D1)의 제1 이동 정보는 각 제1 데이터가 1차로 이동하는데 요구되는 정보를 포함할 수 있다.As described above, the first movement information of the first data set D1 may include first source address information, first target address information, and first length information. That is, the first movement information of the first data set D1 may include information required for each first data to move in the first order.

그리고 제1 이동 정보는 각 제1 데이터의 각 이동 정보를 순차로 포함할 수 있다. 이 때, 각 이동 정보의 순서는 제1 데이터의 이동 방향과 반대 방향으로 정해질 수 있다. 실시예와 같이, 제1 데이터셋(D1)에서 제1 데이터가 제1 방향으로 이동하는 경우, 제1 이동 정보는 제1-3 데이터의 이동 정보(M13), 제1-2 데이터의 이동 정보(M12) 및 제1-1 데이터의 이동 정보(M11) 순으로 배치될 수 있다. 이에 따라, 업데이트 시, 제1-3 데이터의 이동 정보(M13)에 따라 제1-3 데이터가 이동하고, 다음으로 제1-2 데이터의 이동 정보(M12)에 따라 제1-2 데이터가 이동하며, 마지막으로 제1-1 데이터의 이동 정보(M11)에 따라 제1 데이터가 이동할 수 있다. 이로써, 제1 데이터셋(D1)의 제1 이동 정보에 따른 데이터 이동에 의하여 이동 전 데이터의 오염이 발생하여 제2 이미지로의 업데이트가 완료되지 못하는 것을 방지할 수 있다. And the first movement information may sequentially include each movement information of each first data. At this time, the order of each movement information may be determined in a direction opposite to the movement direction of the first data. As in the embodiment, when the first data moves in the first direction in the first data set (D1), the first movement information is movement information (M13) of the 1-3 data, movement information of the 1-2 data (M12) and movement information (M11) of the 1-1 data may be arranged in that order. Accordingly, when updating, the 1-3 data moves according to the movement information (M13) of the 1-3 data, and then the 1-2 data moves according to the movement information (M12) of the 1-2 data. And finally, the first data can be moved according to the movement information (M11) of the 1-1 data. As a result, it is possible to prevent the update to the second image from being incomplete due to contamination of the data before movement due to data movement according to the first movement information of the first data set D1.

그리고 제2 데이터셋(D2)의 제2 이동 정보는 상술한 바와 같이 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보, 제2 길이 정보를 포함할 수 있다. 즉, 제2 데이터셋(D2)의 제2 이동 정보는 각 제2 데이터가 제1 데이터셋(D1)의 이동 이후에 2차 이동하는데 요구되는 정보를 포함할 수 있다.And the second movement information of the second data set D2 may include second source address information, second target address information, and second length information, as described above. That is, the second movement information of the second data set (D2) may include information required for each second data to move secondary after the first data set (D1) is moved.

즉, 제2 이동 정보는 각 제2 데이터의 각 이동 정보를 순차로 포함할 수 있다. 이 때, 각 이동 정보의 순서는 제2 데이터의 이동 방향과 반대 방향으로 정해질 수 있다. 실시예와 같이, 제2 데이터셋(D2)에서 제2 데이터가 제2 방향으로 이동하는 경우, 제2 이동 정보는 제2-1 데이터의 이동 정보(M21) 및 제2-2 데이터의 이동 정보(M22)순으로 배치될 수 있다. 마찬가지로, 업데이트 시, 제2-1 데이터의 이동 정보(M21)에 따라 제2-1 데이터가 이동하고, 다음으로 제2-2 데이터의 이동 정보(M22)에 따라 제1-2 데이터가 이동할 수 있다. 이로써, 제2 데이터셋(D2)의 제2 이동 정보에 따른 데이터 이동에 의하여 이동 전 데이터의 오염이 발생하여 제2 이미지로의 업데이트가 완료되지 못하는 것을 방지할 수 있다.That is, the second movement information may sequentially include each movement information of each second data. At this time, the order of each movement information may be determined in a direction opposite to the movement direction of the second data. As in the embodiment, when the second data moves in the second direction in the second data set (D2), the second movement information includes movement information (M21) of the 2-1 data and movement information of the 2-2 data. It can be arranged in (M22) order. Likewise, when updating, the 2-1 data may be moved according to the movement information (M21) of the 2-1 data, and then the 1-2 data may be moved according to the movement information (M22) of the 2-2 data. there is. As a result, it is possible to prevent the update to the second image from being incomplete due to corruption of data before movement due to data movement according to the second movement information of the second data set D2.

제3 데이터셋(D3)의 제3 이동 정보는 제1 데이터셋(D1)의 제1 이동 정보와 제2 데이터셋(D2)의 제2 이동 정보와 달리 추가되는 데이터를 포함할 수 있다. 이와 달리, 제1 데이터셋(D1)의 제1 이동 정보와 제2 데이터셋(D2)의 제2 이동 정보는 제1 이미지에 존재하는 데이터를 제2 이미지로 이동하는 데이터로 데이터를 포함할 필요가 없다. 즉, 제1 데이터셋(D1)의 제1 이동 정보와 제2 데이터셋(D2)의 제2 이동 정보는 데이터의 이동에 대한 정보(소스 어드레스 정보, 타겟 어드레스 정보, 길이 정보)만이 필요할 수 있다. 이에 따라, 제1 데이터셋(D1)의 제1 이동 정보와 제2 데이터셋(D2)의 제2 이동 정보는 메모리 사용량을 현저히 감소할 수 있고, 업데이트 파일의 크기도 감소할 수 있다.The third movement information of the third data set D3 may include additional data, unlike the first movement information of the first data set D1 and the second movement information of the second data set D2. In contrast, the first movement information of the first data set (D1) and the second movement information of the second data set (D2) need to include data that moves data existing in the first image to the second image. There is no That is, the first movement information of the first data set (D1) and the second movement information of the second data set (D2) may only require information about data movement (source address information, target address information, length information). . Accordingly, the memory usage of the first movement information of the first data set D1 and the second movement information of the second data set D2 can be significantly reduced, and the size of the update file can also be reduced.

또한, 제3 데이터셋(D3)의 제3 이동 정보는 각 제3 데이터의 제3 이동 정보의 배치 순서와 무관할 수 있다. 이로써, 제3 데이터의 배열 위치는 다양하게 이루어질 수 있다.Additionally, the third movement information of the third data set D3 may be unrelated to the arrangement order of the third movement information of each third data. Accordingly, the arrangement position of the third data can be varied.

뿐만 아니라, 상술한 업데이트 파일은 업데이트 전/후로 데이터의 어드레스가 동일한 데이터에 대한 정보는 제외할 수 있다. 즉, 업데이트 전/후로 데이터의 어드레스가 동일한 경우, 업데이트가 필요하지 않게 때문에, 업데이트 파일로 반영되지 않는다. 이로써, 업데이트 파일의 크기를 감소할 수 있으며 업데이트에 소요되는 시간을 용이하게 감소할 수 있다.In addition, the above-described update file may exclude information about data whose addresses are the same before and after update. In other words, if the address of the data before and after the update is the same, it is not reflected in the update file because the update is not necessary. As a result, the size of the update file can be reduced and the time required for the update can be easily reduced.

도 10은 실시예에 따른 펌웨어 장치의 동작을 설명하는 도면이고, 도 11은 실시예에 따른 업데이트 과정을 설명하는 도면이고, 도 12는 실시예에 따른 제어부의 동작을 설명하는 도면이고, 도 13은 제1 처리부의 동작을 설명하는 도면이고, 도 14는 제2 처리부의 동작을 설명하는 도면이다.FIG. 10 is a diagram explaining the operation of a firmware device according to an embodiment, FIG. 11 is a diagram explaining an update process according to an embodiment, FIG. 12 is a diagram explaining the operation of a control unit according to an embodiment, and FIG. 13 is a diagram explaining the operation of the first processing unit, and FIG. 14 is a diagram explaining the operation of the second processing unit.

도 10 및 도 11을 참조하면, 실시예에 따른 펌웨어 장치는 상술한 바와 같이 제어부를 통해 제1 이미지(I1)에 수신한 업데이트 파일(D)을 적용하여 제2 이미지(I2)를 생성할 수 있다. 여기서, 제1 이미지(I1)와 제2 이미지(I2)는 상술한 서버에서 적용된 제1 이미지(I1) 및 제2 이미지(I2)와 동일한 파일이나, 처리 위치가 상이하다. 그리고 이미지는 시스템 파일 등의 버전에 따라 복수 개로 다양할 수 있으며, 업데이트 전에 상술한 인증 절차 전/후로 시스템 파일의 버전에 대한 스캔이 수행될 수 있다.Referring to FIGS. 10 and 11, the firmware device according to the embodiment can generate the second image (I2) by applying the received update file (D) to the first image (I1) through the control unit as described above. there is. Here, the first image (I1) and the second image (I2) are the same files as the first image (I1) and the second image (I2) applied in the above-described server, but the processing locations are different. In addition, there may be multiple images depending on the version of the system file, etc., and a scan of the version of the system file may be performed before/after the above-described authentication process before and after the update.

보다 구체적으로, 실시예에 따른 펌웨어 장치 내에 제1 이미지(I1)만 배치되어 일부 메모리(EM)는 빈(empty) 영역일 수 있다. 이후에, 인증 절차를 통해 서버로부터 업데이트 파일(D)을 수신하면, 일부 메모리(EM)에 업데이트 파일(D)이 배치될 수 있다. 그리고 제어부(220)는 펌웨어 장치 내에 저장된 제1 이미지(I1)에 대해 서버로부터 수신한 업데이트 파일(D)을 적용할 수 있다. 이 때, 상술한 바와 같이 업데이트 파일(D)은 펌웨어 장치 내에 저장된 이미지의 버전에 따라 변경될 수 있다. 그리고 제어부(220)는 제1 처리부, 제2 처리부 및 제3 처리부를 통해 제2 이미지(I2)를 최종으로 생성할 수 있다. 이러한 동작에 대해서는 이하 자세히 후술한다.More specifically, only the first image I1 is disposed in the firmware device according to the embodiment, so some of the memory EM may be an empty area. Afterwards, when the update file (D) is received from the server through an authentication procedure, the update file (D) may be placed in some memory (EM). And the control unit 220 may apply the update file (D) received from the server to the first image (I1) stored in the firmware device. At this time, as described above, the update file D may be changed depending on the version of the image stored in the firmware device. And the control unit 220 can finally generate the second image I2 through the first processing unit, second processing unit, and third processing unit. These operations will be described in detail below.

도 12를 참조하면, 제어부는 업데이트 파일의 데이터 순서(제1 방향 기준)에 따라 데이터 이동을 수행할 수 있다. 그리고 이하 전술한 업데이트 추출부에서 추출된 업데이트 파일이 적용되는 경우로 이하 설명한다.Referring to FIG. 12, the control unit may perform data movement according to the data order (based on the first direction) of the update file. Hereinafter, the case where the update file extracted from the above-described update extraction unit is applied will be described.

먼저, 제어부에서 제1 처리부는 제1 데이터셋을 제1 이동 정보에 따라 제1 이미지가 저장된 저장부에 저장할 수 있다. 구체적으로, 제1 처리부는 제1 데이터셋의 제1 데이터를 제1 방향(d1)으로 이동할 수 있다. 실시예로, 제1 처리부는 제1 이미지(I1)에서 제1-6 영역의 데이터, 제1-2 영역의 데이터 및 제1-1 영역의 데이터 순으로 제1 이동 정보에 따라 각각 이동할 수 있다. 즉, ST1, ST2 및 ST3 순으로 데이터를 이동할 수 있다. First, the first processing unit in the control unit may store the first data set in a storage unit where the first image is stored according to the first movement information. Specifically, the first processing unit may move the first data of the first dataset in the first direction (d1). In an embodiment, the first processing unit may move in the first image I1 in the following order: data of area 1-6, data of area 1-2, and data of area 1-1, respectively, according to the first movement information. . That is, data can be moved in the order of ST1, ST2, and ST3.

도 13을 참조하면, 어드레스 3,4,5,6 및 7에 위치하는 소스(source) 데이터가 제1 방향(d1)으로 이동하여 타겟(target) 데이터가 이루어지는 경우, 소스 데이터는 데이터의 이동 방향과 반대 방향(K1)인 제2 방향(d2) 순으로 이루어질 수 있다. 즉, 어드레스 7의 데이터에서 어드레스 3의 데이터까지 순으로 데이터가 이동할 수 있다. 이는 데이터 내의 각 함수도 동일하게 적용될 수 있다.Referring to FIG. 13, when source data located at addresses 3, 4, 5, 6, and 7 moves in the first direction (d1) to create target data, the source data moves in the direction of movement of the data. It may be done in the order of the second direction (d2), which is the opposite direction (K1). That is, data can be moved sequentially from data at address 7 to data at address 3. This can be equally applied to each function in the data.

다시 도 12를 참조하면, 제1-6 영역의 데이터, 제1-2 영역의 데이터 및 제1-1 영역의 데이터는 각각 상술한 바와 같이 제2-7 영역, 제2-4 영역 및 제2-2 영역으로 이동할 수 있다. 즉, ST4, ST5 순으로 데이터를 이동할 수 있다. 이러한 각 데이터의 이동으로 제1 이미지는 제1 중간 이미지로 변경되어 저장부에서 저장될 수 있다.Referring again to FIG. 12, the data of the 1-6 area, the data of the 1-2 area, and the data of the 1-1 area are respectively the 2-7 area, the 2-4 area, and the 2-2 area as described above. -2 You can move to area. In other words, data can be moved in the order of ST4 and ST5. As each data is moved, the first image can be changed into a first intermediate image and stored in the storage unit.

그리고 제어부에서 제2 처리부는 제2 데이터셋을 제2 이동 정보에 따라 저장부에 저장할 수 있다. 구체적으로, 제2 처리부는 제2 데이터셋의 제2 데이터를 제2 방향(d2)으로 이동할 수 있다. And the second processing unit in the control unit may store the second data set in the storage unit according to the second movement information. Specifically, the second processing unit may move the second data of the second data set in the second direction (d2).

실시예로, 제2 처리부는 제1 중간 이미지(I1')에서 제1 중첩 영역의 데이터가 제거된 제1-3 영역의 데이터를 제2-1 영역 내로 이동할 수 있다. 이 때, 제2 이동 정보는 제1 중첩 영역 이외의 어드레스를 타겟 어드레스로 포함하여, 데이터 이동에 따른 오염을 방지할 수 있다.In an embodiment, the second processing unit may move the data of the 1-3 area from which the data of the first overlapping area has been removed from the first intermediate image I1' into the 2-1 area. At this time, the second movement information includes an address other than the first overlapping area as the target address, thereby preventing contamination due to data movement.

이후에, 제2 처리부는 제1 중간 이미지(I1')에서 제1-5 영역의 데이터를 제2-3 영역으로 이동할 수 있다. 이와 같이 제2 처리부는 제2 데이터셋을 제2 이동 정보에 따라 이동한 저장할 수 있다. 또한, 제2 데이터셋이 제2 방향(d2)으로 이동하는 경우 제2 데이터셋 내의 데이터는 제1 방향(d1)을 따라 순차로 이동할 수 있다. Afterwards, the second processing unit may move data from areas 1-5 in the first intermediate image I1' to areas 2-3. In this way, the second processing unit can move and store the second data set according to the second movement information. Additionally, when the second data set moves in the second direction (d2), data in the second data set may sequentially move along the first direction (d1).

도 14을 참조하면, 어드레스 3,4,5,6 및 7에 위치하는 소스(source) 데이터가 제2 방향(d2)으로 이동하여 타겟(target) 데이터(어드레스 1,2,3,4 및 5에 위치함)가 이루어지는 경우, 소스 데이터는 데이터의 이동 방향과 반대 방향(K2)인 제1 방향(d1) 순으로 이루어질 수 있다. 즉, 어드레스 3의 데이터에서 어드레스 7의 데이터 순으로 데이터가 이동할 수 있다. 이는 데이터 내의 각 함수도 동일하게 적용될 수 있다.Referring to FIG. 14, source data located at addresses 3, 4, 5, 6, and 7 moves in the second direction d2 to produce target data (addresses 1, 2, 3, 4, and 5). (located in ), the source data may be arranged in the first direction (d1), which is the opposite direction (K2) to the direction of movement of the data. That is, data can be moved in the order from data at address 3 to data at address 7. This can be equally applied to each function in the data.

그리고 이러한 구성에 의하여, 데이터 오염을 방지할 수 있다. 그리고 제2 데이터셋의 이동으로 제1 중간 이미지는 제2 중간 이미지로 변경되어 저장부에 저장될 수 있다.And with this configuration, data contamination can be prevented. And, as the second data set is moved, the first intermediate image may be changed to a second intermediate image and stored in the storage unit.

다시 도 12를 참조하면, 제어부에서 제3 처리부는 제3 데이터셋을 제3 이동 정보에 따라 상기 저장부에 저장할 수 있다. 구체적으로, 제3 처리부는 제3 데이터셋의 제3 데이터를 제2 중간 이미지 상에 추가될 수 있다. 이 때, 제3 데이터는 제2 중간 이미지의 내의 데이터 이동이 없으므로, 추가되는 순서가 변경되더라도 데이터의 오염이 없다. 다시 말해, ST6, ST7 및 ST8은 추가 순서가 다양하게 적용될 수 있다.Referring again to FIG. 12, the third processing unit in the control unit may store the third data set in the storage unit according to the third movement information. Specifically, the third processing unit may add third data of the third dataset to the second intermediate image. At this time, since there is no data movement of the third data within the second intermediate image, there is no data corruption even if the order of addition is changed. In other words, ST6, ST7, and ST8 can be applied in various addition orders.

도 15는 실시예에 따른 펌웨어 장치의 동작을 설명하는 순서도이고, 도 16은 실시예에 따른 서버의 동작을 설명하는 순서도이다.FIG. 15 is a flowchart explaining the operation of a firmware device according to an embodiment, and FIG. 16 is a flowchart explaining the operation of a server according to an embodiment.

도 15 및 도 16을 참조하면, 실시예에 따른 펌웨어 장치의 업데이트 방법은 전술한 바와 같이 업데이트 파일을 서버로부터 수신하는 단계(S410), 업데이트 파일에 따라 제1 데이터셋, 제2 데이터셋 및 제3 데이터 셋 중 어느 하나를 이동하는 단계(S420)을 포함할 수 있다.Referring to FIGS. 15 and 16, the method of updating a firmware device according to an embodiment includes receiving an update file from a server (S410) as described above, and a first data set, a second data set, and a first data set according to the update file. It may include a step (S420) of moving any one of the three data sets.

구체적으로, 펌웨어 장치는 업데이트 파일을 서버로부터 수신할 수 있다. 이 때, 업데이트 파일은 기존 이미지 중에 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 기존 이미지에 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보 및 기존 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함할 수 있다.Specifically, the firmware device may receive an update file from a server. At this time, the update file includes first movement information for the first dataset moving in the first direction among the existing images, second movement information for the second dataset moving in the second direction in the existing image, and addition to the existing image. It may include one or more of the third movement information for the third data set.

즉, 펌웨어 장치는 내부에 저장된 기존의 이미지(제1 이미지라 함)에서 제1 방향으로 이동하는 제1 데이터셋을 제1 이동 정보에 따라 이동할 수 있다. 전술한 바와 같이, 제1 방향이 데이터의 어드레스가 증가하는 방향인 경우, 제2 방향은 제1 방향에 반대 방향으로 데이터의 어드레스가 감소하는 방향일 수 있다.That is, the firmware device can move the first data set moving in the first direction in the existing image (referred to as the first image) stored internally according to the first movement information. As described above, when the first direction is a direction in which the data address increases, the second direction may be a direction in which the data address decreases in a direction opposite to the first direction.

이 때, 펌웨어 장치는 제1 이미지에서 제1 데이터셋 내의 제1 방향으로 이동하는 제1 데이터에 대해서는 제2 방향을 따라 순차로 이동하여 저장할 수 있다. 그리고 제1 데이터셋이 복사된 이미지를 상술한 바와 마찬가지로 제1 중간 이미지라 할 수 있다.At this time, the firmware device may sequentially move and store the first data moving in the first direction in the first data set in the first image along the second direction. Also, the image from which the first data set is copied can be referred to as the first intermediate image, as described above.

그리고 펌웨어 장치는 서버로부터 수신한 업데이트 파일을 이용하여 제1 중간 이미지에서 제2 데이터셋을 제2 이동 정보에 따라 복사하여 제2 중간 이미지를 생성할 수 있다. 이 때, 제2 데이터셋은 복수 개의 제2 데이터를 포함할 수 있으며, 제2 데이터는 제2 방향으로 이동하는 데이터일 수 있다.Additionally, the firmware device may generate a second intermediate image by copying the second data set from the first intermediate image according to the second movement information using the update file received from the server. At this time, the second data set may include a plurality of second data, and the second data may be data moving in the second direction.

또한, 펌웨어 장치는 서버로부터 수신한 업데이트 파일을 이용하여 제2 중간 이미지에서 제3 데이터셋을 제3 이동 정보에 따라 추가하여 업데이트 파일에 따라 업데이트가 완료된 이미지인 제2 이미지를 생성할 수 있다. 이 때, 펌웨어 장치는 이미지에 추가되는 제3 이동 정보에 따라 데이터를 추가하여 이미지를 업데이트하고 저장할 수 있다.Additionally, the firmware device may use an update file received from the server to add a third data set to the second intermediate image according to the third movement information to generate a second image, which is an updated image according to the update file. At this time, the firmware device can update and save the image by adding data according to the third movement information added to the image.

그리고 실시예에 따른 서버의 업데이트 파일 생성 방법은 업데이트 전 이미지인 제1 이미지와 업데이트된 이미지인 제2 이미지 간의 비교를 통해 차분 이미지를 추출하는 단계(S510), 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계(S520), 제1 이동 정보를 추출하는 단계(S530), 제2 이동 정보를 추출하는 단계(S540), 제3 이동 정보를 추출하는 단계(S550), 업데이트 파일을 생성하는 단계(S560)을 포함할 수 있다. And the method of generating an update file of a server according to an embodiment includes extracting a difference image through comparison between a first image, which is a pre-update image, and a second image, which is an updated image (S510), the length of the first movement data and the second image. Comparing the length of movement data (S520), extracting first movement information (S530), extracting second movement information (S540), extracting third movement information (S550), update file It may include a step of generating (S560).

먼저, 업데이트 전 이미지인 제1 이미지와 업데이트된 이미지인 제2 이미지 간의 비교를 통해 차분 이미지를 추출하는 단계(S510)에서는 제1 이미지와 제2 이미지 간의 동일 데이터를 제외한 나머지 데이터를 차분 이미지로 추출할 수 있다. 여기서, 동일 데이터는 데이터의 내용(함수 등) 및 어드레스가 모두 같은 경우를 의미한다. 예컨대, 함수의 호출이 어드레스를 통해 이루어지기 때문에 데이터의 함수가 동일하더라도 어드레스가 상이하면 데이터는 서로 상이할 수 있다. 또한, 동일한 데이터를 찾는 방식은 Suffix Pattern Matching과 같은 다양한 알고리즘이 적용될 수 있다.First, in the step (S510) of extracting a difference image through comparison between the first image, which is the image before the update, and the second image, which is the updated image, the remaining data excluding the same data between the first image and the second image is extracted as a difference image. can do. Here, identical data means that the contents (functions, etc.) and addresses of the data are all the same. For example, since a function call is made through an address, even if the data function is the same, if the address is different, the data may be different. Additionally, various algorithms such as Suffix Pattern Matching can be applied to find the same data.

그리고 차분 이미지에서 데이터의 이동 방향에 따라 제1 이동데이터 및 제2 이동데이터를 추출할 수 있다. 실시예로, 제1 이동데이터는 제1 이미지에서 제1 방향으로 이동하는 데이터이고, 제2 이동데이터는 제1 이미지에서 제2 방향으로 이동하는 데이터이다. 그리고 제1 이동데이터의 길이와 제2 이동데이터의 길이를 서로 비교할 수 있다(S520). 이 때, 길이가 큰 이동데이터를 제1 데이터셋을 결정하여, 데이터 추출이 먼저 이루어질 수 있다. 이에 따라, 이동이 수행되는 데이터를 최대한 증가시켜 업데이트에서 데이터 추가를 최소화할 수 있다. 즉, 업데이트 파일의 크기를 최소화할 수 있다.And, the first movement data and the second movement data can be extracted from the difference image according to the direction of movement of the data. In an embodiment, the first movement data is data moving in the first direction in the first image, and the second movement data is data moving in the second direction in the first image. And the length of the first movement data and the length of the second movement data can be compared (S520). At this time, moving data with a large length may be determined as the first dataset, and data extraction may be performed first. Accordingly, the data for which movement is performed can be increased as much as possible to minimize data addition in updates. In other words, the size of the update file can be minimized.

그리고 제1 데이터셋으로부터 제1 이동 정보를 추출할 수 있다(S530). 즉, 제1 이미지에서 제1 데이터가 어디에서 어디로 얼마만큼 이동하였는지에 대한 정보를 추출할 수 있다. 보다 구체적으로, 제1 이미지에서 제2 이미지로 업데이트되기 위해서, 제1 이미지에서 제1 데이터의 어드레스인 제1 소스 어드레스 정보를 추출할 수 있다. 그리고 제2 이미지에서 제1 데이터의 어드레스인 제1 타겟 어드레스 정보를 추출할 수 있다. 그리고 제1 데이터가 제1 이미지에서 제2 이미지로 이동되는 길이인 제1 길이 정보를 추출할 수 있다. 상술한 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보 및 제1 길이 정보는 순서와 무관할 수 있다.And the first movement information can be extracted from the first data set (S530). That is, information about where and how much the first data moved from the first image can be extracted. More specifically, in order to update from the first image to the second image, first source address information, which is the address of the first data, can be extracted from the first image. And, first target address information, which is the address of the first data, can be extracted from the second image. And first length information, which is the length by which the first data is moved from the first image to the second image, can be extracted. The order of the above-described first source address information, first target address information, and first length information may be independent.

다음으로, 제2 이동 정보를 추출할 수 있다(S540). 제2 이동 정보는 제2 데이터의 이동 정보일 수 있다. 구체적으로, 제1 이미지는 제1 데이터셋이 제1 이동 정보에 따라 이동하여 제1 중간 이미지로 변경될 수 있다. 그리고 제1 중간 이미지는 제2 이동데이터의 일부 영역과 중첩될 수 있다. 다시 말해, 제1 데이터셋의 이동에 의해 제2 이동데이터의 일부 영역이 제1 데이터셋으로 오염될 수 있다. 이에 따라, 제2 데이터셋은 제1 중간 이미지와 제2 이미지 대비 제2 방향으로 이동하는 제2 데이터로 이루어질 수 있다. 다시 말해, 상술한 중첩된 영역은 제거될 수 있다. 다만, 제1 이미지와 제2 이미지 간의 데이터 차이에 따라 상술한 중첩이 존재하지 않을 수도 있다.Next, second movement information can be extracted (S540). The second movement information may be movement information of second data. Specifically, the first image may be changed to a first intermediate image by moving the first dataset according to the first movement information. And the first intermediate image may overlap with some areas of the second moving data. In other words, some areas of the second movement data may be contaminated with the first data set due to movement of the first data set. Accordingly, the second data set may be composed of second data moving in a second direction relative to the first intermediate image and the second image. In other words, the above-described overlapping areas can be removed. However, depending on the data difference between the first image and the second image, the above-described overlap may not exist.

그리고 제1 중간 이미지에서 제2 데이터의 어드레스인 제2 소스 어드레스 정보를 추출할 수 있다. 그리고 제2 이미지에서 제2 데이터의 어드레스인 제2 타겟 어드레스 정보를 추출할 수 있다. 그리고 제2 데이터가 제1 중간 이미지에서 제2 이미지로 이동되는 길이인 제2 길이 정보를 추출할 수 있다. 상술한 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보 및 제2 길이 정보는 순서와 무관할 수 있다.And second source address information, which is the address of second data, can be extracted from the first intermediate image. And second target address information, which is the address of the second data, can be extracted from the second image. In addition, second length information, which is the length by which the second data is moved from the first intermediate image to the second image, can be extracted. The order of the above-described second source address information, second target address information, and second length information may be independent.

그리고 제3 이동 정보를 추출할 수 있다(S550). 제3 이동 정보는 제3 데이터셋으로부터 추출될 수 있다. 구체적으로, 제1 중간 이미지는 제2 데이터셋의 제2 이동 정보에 따른 이동에 의해 제2 중간 이미지로 변경될 수 있다. 이 때, 제1 이동 정보에서 제1 길이 정보는 제2 길이정보보다 클 수 있다. 상술한 바와 같이 상기 중첩되는 영역이 존재하지 않더라도 제1 이동데이터의 길이에 대한 크기가 제2 이동데이터의 길이에 대한 크기가 더 크기 때문이다. 이에 따라, 펌웨어 장치는 메모리 소모량을 최소화할 수 있다.And third movement information can be extracted (S550). Third movement information may be extracted from the third dataset. Specifically, the first intermediate image may be changed to a second intermediate image by movement according to the second movement information of the second dataset. At this time, the first length information in the first movement information may be larger than the second length information. As described above, even if the overlapping area does not exist, the length of the first movement data is larger than the length of the second movement data. Accordingly, the firmware device can minimize memory consumption.

그리고 제3 데이터셋은 제2 중간 이미지와 제2 이미지 간의 차분 이미지인 제3 데이터를 포함할 수 있다. 제3 데이터셋은 상기 중첩된 영역의 데이터를 포함할 수 있다. 또한, 제3 데이터셋의 제3 이동 정보는 추가되는 위치, 즉 데이터가 배치되는 어드레스와 데이터의 길이 및 추가되는 데이터를 모두 포함할 수 있다. 추가되는 데이터는 함수 등을 포함할 수 있다. 이와 같이, 제3 데이터셋은 제1 데이터셋, 제2 데이터셋과 달리 소스 어드레스 정보를 포함하지 않을 수 있다. And the third data set may include third data that is a difference image between the second intermediate image and the second image. The third dataset may include data in the overlapping area. Additionally, the third movement information of the third data set may include all of the added location, that is, the address where the data is placed, the length of the data, and the added data. The added data may include functions, etc. In this way, the third data set may not include source address information, unlike the first data set and the second data set.

그리고 제1 데이터셋의 제1 이동 정보, 제2 데이터셋의 제2 이동 정보 및 제3 데이터셋의 제3 이동 정보를 포함하는 업데이트 파일을 생성할 수 있다(S560). 이 때, 업데이트 파일은 압축 알고리즘에 의해 압축이 수행될 수 있다. 그리고 업데이트 파일을 수신한 펌웨어 장치는 압축된 업데이트 파일을 압축 해제 알고리즘으로 압축 해제하여 저장을 수행할 수 있다. 이러한 압축을 통해 메모리 사용량을 최소화할 수 있다. 또한, 업데이트 파일을 제1 이미지 상에 직접적으로 이동/복사를 수행하여 제2 이미지에 대한 추가적인 메모리 공간이 필요하지 않는 이점 또한 존재한다.And, an update file including the first movement information of the first dataset, the second movement information of the second dataset, and the third movement information of the third dataset can be created (S560). At this time, the update file may be compressed using a compression algorithm. Additionally, the firmware device that has received the update file can decompress the compressed update file using a decompression algorithm and store it. This compression can minimize memory usage. Additionally, there is also the advantage that additional memory space for the second image is not required by moving/copying the update file directly onto the first image.

Claims (15)

이미지를 저장하는 저장부;
상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및
상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고,
상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고,
상기 제어부는,
상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 펌웨어 장치.
a storage unit that stores images;
a communication unit that receives an update file for the image; and
A control unit that updates the storage unit by applying the update file to the image,
The update file includes first movement information for a first dataset moving in a first direction among the images, second movement information for a second dataset moving in a second direction among the images, and added to the image. Contains third movement information for a third dataset,
The control unit,
The first data set is stored in the storage unit according to the first movement information, the second data set is stored in the storage unit according to the second movement information, and the third movement of the third data set is performed. Store the information according to the above,
The first direction is a direction in which the data address increases or decreases,
The second direction is a firmware device opposite to the first direction.
제1항에 있어서,
상기 제1 이동 정보는,
상기 제1 데이터셋의 이동 전 어드레스인 제1 소스 어드레스 정보;
상기 제1 데이터셋이 이동 후 어드레스인 제1 타겟 어드레스 정보; 및
상기 제1 데이터셋의 제1 길이 정보;를 포함하는 펌웨어 장치.
According to paragraph 1,
The first movement information is,
First source address information, which is the address before movement of the first data set;
First target address information, which is the address after the first data set is moved; and
A firmware device comprising: first length information of the first data set.
제2항에 있어서,
상기 제2 이동 정보는,
상기 제2 데이터셋의 이동 전 어드레스인 제2 소스 어드레스 정보;
상기 제2 데이터셋이 이동 후 어드레스인 제2 타겟 어드레스 정보; 및
상기 제2 데이터셋에서 이동 대상 데이터의 제2 길이 정보;를 포함하는 펌웨어 장치.
According to paragraph 2,
The second movement information is,
Second source address information, which is the address before movement of the second data set;
Second target address information, which is the address after the second data set is moved; and
A firmware device comprising: second length information of data to be moved in the second data set.
제3항에 있어서,
상기 제3 이동 정보는,
상기 제3 데이터셋의 어드레스 및 상기 제3 데이터셋의 데이터를 포함하는 펌웨어 장치.
According to paragraph 3,
The third movement information is,
A firmware device including an address of the third data set and data of the third data set.
제1항에 있어서,
상기 제1 데이터셋은 상기 제1 방향으로 이동되는 제1 데이터의 집합이고,
상기 제2 데이터셋은 상기 제2 방향으로 이동되는 제2 데이터의 집합이고,
상기 제3 데이터셋은 상기 이미지에 신규로 추가되는 제3 데이터의 집합인 펌웨어 장치.
According to paragraph 1,
The first data set is a set of first data moved in the first direction,
The second data set is a set of second data moved in the second direction,
The third data set is a firmware device that is a set of third data newly added to the image.
제5항에 있어서,
상기 제어부는 상기 제1 데이터를 상기 제2 방향을 따라 순차로 복사하는 펌웨어 장치.
According to clause 5,
The control unit sequentially copies the first data along the second direction.
제5항에 있어서,
상기 제어부는 상기 제2 데이터를 상기 제1 방향을 따라 순차로 복사하는 펌웨어 장치.
According to clause 5,
The control unit sequentially copies the second data along the first direction.
제1항에 있어서,
상기 통신부는 LTE, Wifi 및 근거리 무선 통신 중 어느 하나를 포함하는 펌웨어 장치.
According to paragraph 1,
The communication unit is a firmware device including any one of LTE, Wifi, and short-range wireless communication.
업데이트 파일을 생성하는 서버; 및
상기 업데이트 파일을 이미지에 적용하여 업데이트하는 펌웨어 장치;를 포함하고,
상기 펌웨어 장치는 상기 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고,
상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고,
상기 제어부는,
상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 펌웨어 시스템.
A server that generates update files; and
A firmware device that updates the image by applying the update file to the image,
The firmware device includes a storage unit that stores the image; a communication unit that receives an update file for the image; And a control unit that applies the update file to the image and updates the storage unit.
The update file includes first movement information for a first dataset moving in a first direction among the images, second movement information for a second dataset moving in a second direction among the images, and added to the image. Contains third movement information for a third dataset,
The control unit,
The first data set is stored in the storage unit according to the first movement information, the second data set is stored in the storage unit according to the second movement information, and the third movement of the third data set is performed. Store the information according to the above,
The first direction is a direction in which the data address increases or decreases,
The firmware system wherein the second direction is opposite to the first direction.
제9항에 있어서,
상기 서버는, 상기 이미지와 업데이트된 이미지를 비교하여 상기 업데이트 파일을 추출하는 업데이트 추출부;를 포함하는 펌웨어 시스템.
According to clause 9,
The server includes an update extraction unit that extracts the update file by comparing the image with the updated image.
제10항에 있어서,
상기 업데이트 추출부는,
상기 제1 이동 정보를 추출하는 제1 추출부;
상기 제2 이동 정보를 추출하는 제2 추출부; 및
상기 제3 이동 정보를 추출하는 제3 추출부를 포함하는 펌웨어 시스템.
According to clause 10,
The update extractor,
a first extraction unit that extracts the first movement information;
a second extraction unit that extracts the second movement information; and
A firmware system including a third extraction unit that extracts the third movement information.
제11항에 있어서,
상기 업데이트 추출부는 제1 이동데이터와 제2 이동데이터의 크기 비교를 통해 우선 이동 복사되는 데이터를 결정하고,
상기 제1 이동데이터는 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고,
상기 제2 이동데이터는 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터인 펌웨어 시스템.
According to clause 11,
The update extractor determines data to be moved and copied first by comparing the sizes of the first and second move data,
The first movement data is data that moves along the first direction from the image to the updated image,
The second movement data is data that moves along the second direction in the image.
업데이트 파일을 서버로부터 수신하는 단계; 및
상기 업데이트 파일을 이미지에 적용하여 저장하는 단계를 포함하고,
상기 업데이트 파일은,
상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함하고,
상기 저장하는 단계는,
상기 이미지에서 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 이동하여 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 이동하여 저장하고, 상기 제3 데이터셋을 상기 제3 이동 정보에 따라 추가하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 업데이트 방법.
Receiving an update file from a server; and
Including applying and storing the update file to the image,
The update file is,
First movement information for a first dataset moving in a first direction among the images, second movement information for a second dataset moving in a second direction among the images, and a third dataset added to the image. Contains any one or more of the third movement information about,
The saving step is,
In the image, the first data set is moved and stored according to the first movement information, the second data set is moved and stored according to the second movement information, and the third data set is moved and stored according to the third movement information. Add accordingly,
The first direction is a direction in which the data address increases or decreases,
The update method wherein the second direction is opposite to the first direction.
이미지와 업데이트된 이미지 간의 동일 데이터를 제외한 차분 이미지를 추출하는 단계;
상기 차분 이미지에서 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계;
제1 방향으로 이동하는 제1 데이터셋의 제1 이동 정보를 추출하는 단계;
제2 방향으로 이동하는 제2 데이터셋의 제2 이동 정보를 추출하는 단계;
제3 데이터셋의 제3 이동 정보를 추출하는 단계; 및
업데이트 파일을 생성하는 단계;를 포함하고,
상기 제1 이동데이터는, 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고,
상기 제2 이동데이터는, 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터이고,
상기 업데이트 파일은, 상기 제1 이동 정보, 상기 제2 이동 정보, 및 상기 제3 이동 정보 중 어느 하나 이상을 포함하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 업데이트 파일 추출 방법.
extracting a difference image excluding identical data between the image and the updated image;
Comparing the length of first movement data and the length of second movement data in the difference image;
extracting first movement information of a first dataset moving in a first direction;
extracting second movement information of a second data set moving in a second direction;
extracting third movement information of a third dataset; and
Including: generating an update file;
The first movement data is data that moves along the first direction from the image to the updated image,
The second movement data is data moving along the second direction in the image,
The update file includes one or more of the first movement information, the second movement information, and the third movement information,
The first direction is a direction in which the data address increases or decreases,
The update file extraction method wherein the second direction is opposite to the first direction.
제14항에 있어서,
상기 제2 데이터셋의 어드레스는 상기 제1 데이터셋의 어드레스와 상이한 업데이트 파일 추출 방법.
According to clause 14,
A method of extracting an update file in which the address of the second data set is different from the address of the first data set.
KR1020180170629A 2018-12-27 2018-12-27 Apparatus for firmware and system including the same KR102625006B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170629A KR102625006B1 (en) 2018-12-27 2018-12-27 Apparatus for firmware and system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170629A KR102625006B1 (en) 2018-12-27 2018-12-27 Apparatus for firmware and system including the same

Publications (2)

Publication Number Publication Date
KR20200080796A KR20200080796A (en) 2020-07-07
KR102625006B1 true KR102625006B1 (en) 2024-01-15

Family

ID=71603253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170629A KR102625006B1 (en) 2018-12-27 2018-12-27 Apparatus for firmware and system including the same

Country Status (1)

Country Link
KR (1) KR102625006B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1808764B1 (en) * 2005-12-20 2010-12-15 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Generating incremental program updates
KR20120105203A (en) * 2011-03-15 2012-09-25 삼성테크윈 주식회사 Method for sending image file
US9858067B2 (en) * 2015-10-05 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with update control mechanism and method of operation thereof
KR20180131840A (en) * 2017-06-01 2018-12-11 한국전자통신연구원 Apparatus for supporting firmware update and method for the same

Also Published As

Publication number Publication date
KR20200080796A (en) 2020-07-07

Similar Documents

Publication Publication Date Title
US9075693B2 (en) Methods for updating applications
US7757226B2 (en) Method and mechanism for performing a rolling upgrade of distributed computer software
EP3021218B1 (en) Upgrade packet generation method, server, software upgrade method, and mobile terminal
CN102073512B (en) JAVA cluster application system code loading and upgrading device and method
US20130283267A1 (en) Virtual machine construction
CN106815276A (en) Method for page jump and device
CN105302587A (en) Data updating method and apparatus
CN108415714A (en) The method for upgrading system and device of mobile terminal
CN105045631A (en) Method and device for upgrading client-side applications
CN103188097A (en) Method, device and system achieving patch management
CN101833464A (en) Method and device for sectionally loading application programs by mobile terminal
US10558566B2 (en) Garbage collection of non-pinned objects within heap
CN105808273A (en) Software upgrading method and software upgrading device
US20150234703A1 (en) System and method to perform a backup operation using one or more attributes of files
CN111736982B (en) Data forwarding processing method and server of 5G data forwarding plane
CN103593233A (en) Method and system for pushing software information
CN110532016B (en) Version management method, version updating method and version management system
CN104079623A (en) Method and system for controlling multilevel cloud storage synchrony
CN111176706A (en) Terminal upgrading method and device, electronic equipment and storage medium
CN105912641A (en) Icon update method and apparatus of Native Apps
US10846015B2 (en) Early IO control techniques for a remote data facility
KR102625006B1 (en) Apparatus for firmware and system including the same
CN104199682A (en) Information processing method and electronic equipment
CN106569865A (en) Producing method and producing device for system upgrade file of terminal
US20230289165A1 (en) Data processing method and apparatus for application, device, and storage medium

Legal Events

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