KR102625006B1 - 펌웨어 장치 및 이를 포함하는 시스템 - Google Patents
펌웨어 장치 및 이를 포함하는 시스템 Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000007423 decrease Effects 0.000 claims abstract description 17
- 238000000605 extraction Methods 0.000 claims description 21
- 239000000284 extract Substances 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 10
- 238000011109 contamination Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72406—User 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 방향과 반대 방향인 펌웨어 장치를 개시한다.
Description
실시 예는 펌웨어 장치 및 이를 포함하는 시스템에 관한 것이다.
무선 단말기의 기능이 복잡해짐에 따라 탑재되는 소프트웨어 또한 많은 버그(bug)를 가지고 있고, 무선 단말기의 출시 후 기능 추가에 대한 요구가 갈수록 더해지고 있다. 이에 따라 무선 단말기의 소프트웨어의 패치 및 기능 업그레이드를 무선상으로 해결하기 위해 나온 것이 FOTA(Firmware Over The Air)이다.
종래 기술에 따른 FOTA 서비스 방법을 살펴보면, 각 FOTA 솔루션 업체에서 FOTA를 실행하기 위한 소프트웨어를 각기 개발하여 공급하고, 이동통신망을 이용하여 무선 단말기로 상기 소프트웨어를 다운받아 실행함으로써 무선 단말기의 펌웨어(Firmware) 업데이트를 수행하게 된다.
FOTA를 수행하기 위한 소프트웨어는 음성 데이터 패킷이나 SMS 메시지의 데이터 등에 비해 데이터의 양이 훨씬 크므로 다운로드에 많은 시간이 소요되는데, 이로 인해 소프트웨어를 다운받는 동안에는 다른 수행을 할 경우 다운로드를 중단해야 하는 문제점이 발생한다.
또한, 다운받는 소프트웨어의 용량이 큰 편이므로, 다운로드 중에는 특정 단말이 무선 자원(Radio Resource)을 많이 소모하게 된다. 이로 인해, 특정 셀(cell) 내에 있는 한 사용자에게 무선 자원이 집중되어 동일 셀 내의 다른 사용자가 무선 통신 서비스를 이용함에 있어 악영향을 미칠 수 있다는 문제점을 남기게 된다.
더 나아가, 단말 사용자에게 불편을 초래하는 것 이외에, 각 통신 서비스 사용자에게 최상을 통신 환경을 제공하려는 통신 사업자에게도 효율적인 무선 자원 분배에 어려움을 가중시키는 한계가 존재한다.
실시 예는 원본 이미지 중 수정되는 부분의 파일을 다운로드를 통해 플러쉬(flush)하는 펌웨어 장치 및 펌웨어 시스템을 제공한다.
또한, 실시예는 이전 펌웨어 이미지에서 새로운 펌웨어 이미지로 수정되는 부분 중 데이터 이동 방향에 따라 구분하여 수정되는 부분의 용량을 최소화하는 펌웨어 장치 및 펌웨어 시스템을 제공한다.
실시 예에서 해결하고자 하는 과제는 이에 한정되는 것은 아니며, 아래에서 설명하는 과제의 해결수단이나 실시 형태로부터 파악될 수 있는 목적이나 효과도 포함된다고 할 것이다.
본 발명의 실시예에 따른 펌웨어 장치는 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고, 상기 제어부는, 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.
상기 제1 이동 정보는, 상기 제1 데이터셋의 이동 전 어드레스인 제1 소스 어드레스 정보; 상기 제1 데이터셋이 이동 후 어드레스인 제1 타겟 어드레스 정보; 및 상기 제1 데이터셋의 제1 길이 정보;를 포함할 수 있다.
상기 제2 이동 정보는, 상기 제2 데이터셋의 이동 전 어드레스인 제2 소스 어드레스 정보; 상기 제2 데이터셋이 이동 후 어드레스인 제2 타겟 어드레스 정보; 및 상기 제2 데이터셋에서 이동 대상 데이터의 제2 길이 정보;를 포함할 수 있다.
상기 제3 이동 정보는, 상기 제3 데이터셋의 어드레스 및 상기 제3 데이터셋의 데이터를 포함할 수 있다.
상기 제1 데이터셋은 상기 제1 방향으로 이동되는 제1 데이터의 집합이고, 상기 제2 데이터셋은 상기 제2 방향으로 이동되는 제2 데이터의 집합이고, 상기 제3 데이터셋은 상기 이미지에 신규로 추가되는 제3 데이터의 집합일 수 있다.
상기 제어부는 상기 제1 데이터를 상기 제2 방향을 따라 순차로 복사할 수 있다.
상기 제어부는 상기 제2 데이터를 상기 제1 방향을 따라 순차로 복사할 수 있다.
상기 통신부는 LTE, Wifi 및 근거리 무선 통신 중 어느 하나를 포함할 수 있다.
실시예에 따른 펌웨어 시스템은 업데이트 파일을 생성하는 서버; 및 상기 업데이트 파일을 이미지에 적용하여 업데이트하는 펌웨어 장치;를 포함하고, 상기 펌웨어 장치는 상기 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고, 상기 제어부는, 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.
상기 서버는, 상기 이미지와 업데이트된 이미지를 비교하여 상기 업데이트 파일을 추출하는 업데이트 추출부;를 포함할 수 있다.
상기 업데이트 추출부는,
상기 제1 이동 정보를 추출하는 제1 추출부; 상기 제2 이동 정보를 추출하는 제2 추출부; 및 상기 제3 이동 정보를 추출하는 제3 추출부를 포함할 수 있다.
상기 업데이트 추출부는 제1 이동데이터와 제2 이동데이터의 크기 비교를 통해 우선 이동 복사되는 데이터를 결정하고, 상기 제1 이동데이터는 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고, 상기 제2 이동데이터는 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터일 수 있다.
본 발명의 실시예에 따른 업데이트 방법은 업데이트 파일을 서버로부터 수신하는 단계; 및 상기 업데이트 파일을 이미지에 적용하여 저장하는 단계를 포함하고, 상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함하고, 상기 저장하는 단계는, 상기 이미지에서 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 이동하여 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 이동하여 저장하고, 상기 제3 데이터셋을 상기 제3 이동 정보에 따라 추가하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.
본 발명의 실시예에 따른 업데이트 파일 추출 방법은 이미지와 업데이트된 이미지 간의 동일 데이터를 제외한 차분 이미지를 추출하는 단계; 상기 차분 이미지에서 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계; 제1 방향으로 이동하는 제1 데이터셋의 제1 이동 정보를 추출하는 단계; 제2 방향으로 이동하는 제2 데이터셋의 제2 이동 정보를 추출하는 단계; 제3 데이터셋의 제3 이동 정보를 추출하는 단계; 및 업데이트 파일을 생성하는 단계;를 포함하고, 상기 제1 이동데이터는, 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고, 상기 제2 이동데이터는, 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터이고, 상기 업데이트 파일은, 상기 제1 이동 정보, 상기 제2 이동 정보, 및 상기 제3 이동 정보 중 어느 하나 이상을 포함하고, 상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고, 상기 제2 방향은 상기 제1 방향과 반대 방향이다.
상기 제2 데이터셋의 어드레스는 상기 제1 데이터셋의 어드레스와 상이할 수 있다.
실시 예에 따르면, 메모리 사용량을 최소화하는 펌웨어 장치 및 시스템을 구현할 수 있다.
또한, 업데이트시 요구되는 메모리 및 업데이트 시간을 감소할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 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은 실시예에 따른 서버의 동작을 설명하는 순서도이다.
도 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은 실시예에 따른 서버의 동작을 설명하는 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
다만, 본 발명의 기술 사상은 설명되는 일부 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있고, 본 발명의 기술 사상 범위 내에서라면, 실시 예들간 그 구성 요소들 중 하나 이상을 선택적으로 결합, 치환하여 사용할 수 있다.
또한, 본 발명의 실시예에서 사용되는 용어(기술 및 과학적 용어를 포함)는, 명백하게 특별히 정의되어 기술되지 않는 한, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 일반적으로 이해될 수 있는 의미로 해석될 수 있으며, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미를 고려하여 그 의미를 해석할 수 있을 것이다.
또한, 본 발명의 실시예에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.
본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함할 수 있고, "A 및(와) B, C 중 적어도 하나(또는 한 개 이상)"로 기재되는 경우 A, B, C로 조합할 수 있는 모든 조합 중 하나 이상을 포함할 수 있다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다.
이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등으로 한정되지 않는다.
그리고, 어떤 구성 요소가 다른 구성요소에 '연결', '결합' 또는 '접속'된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결, 결합 또는 접속되는 경우뿐만 아니라, 그 구성 요소와 그 다른 구성 요소 사이에 있는 또 다른 구성 요소로 인해 '연결', '결합' 또는 '접속' 되는 경우도 포함할 수 있다.
또한, 각 구성 요소의 "상(위) 또는 하(아래)"에 형성 또는 배치되는 것으로 기재되는 경우, 상(위) 또는 하(아래)는 두 개의 구성 요소들이 서로 직접 접촉되는 경우뿐만 아니라 하나 이상의 또 다른 구성 요소가 두 개의 구성 요소들 사이에 형성 또는 배치되는 경우도 포함한다. 또한, "상(위) 또는 하(아래)"으로 표현되는 경우 하나의 구성 요소를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
도 1은 실시예에 따른 펌웨어 시스템의 개념도이고, 도 2는 실시예에 따른 서버의 동작을 설명하는 도면이다.
도 1 및 도 2를 참조하면, 실시예에 따른 펌웨어 시스템(10)은 서버(100)와 펌웨어 장치(200)를 포함할 수 있다.
먼저, 서버(100)는 통신을 통해 단말기로 FOTA(Firmware Over the Air) 서비스를 제공할 수 있다. 즉, 서버(100)는 단말기의 사용자에게 문자 메시지 등으로 FOTA 서비스를 통지하며, 인증 절차 등을 걸쳐 단말기 사용자에게 펌웨어 업데이트 파일을 송신할 수 있다. 이를 통해 단말기는 시스템 버전이 최신 버전으로 업데이트될 수 있다.
이 때, 서버(100)는 업데이트 추출부(110)를 포함할 수 있다. 상기 업데이트 추출부(110)는 기존의 펌웨어 이미지인 제1 이미지(I1)와 새로운 펌웨어 이미지인 제2 이미지(I2)를 비교하여 업데이트 파일(D)을 생성할 수 있다. 다시 말해, 업데이트 파일(D)은 제2 이미지(I2)로 업데이트하기 위해 제1 이미지(I1)에 필요한 내용으로 이루어질 수 있다.
그리고 업데이트 추출부(110)는 제1 이미지(I1)에서 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보를 추출하는 제1 추출부(111), 제1 이미지(I1)에서 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보를 추출하는 제2 추출부(112) 및 제1 이미지(I1)에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 추출하는 제3 추출부(113)를 포함할 수 있다. 그리고 이하에서 데이터의 이동은 데이터의 복사, 변경 등을 포함하나 이하에서는 복사로 설명한다.
업데이트 추출부(110)에서 상술한 제1 추출부(111), 제2 추출부(112) 및 제3 추출부(113)의 동작에 대해서는 후술한다. 그리고 업데이트 추출부(110)는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어로 구현될 수 있으나, 이에 한정되는 것은 아니다.
또한, 업데이트 추출부(110)는 서버(100) 내에 위치할 수 있으나, 이에 한정되는 것은 아니고 서버(100) 외부에 위치할 수 있다. 예컨대, 추출된 업데이트 파일(D)은 서버(100)에서 제어부(220)를 포함하는 단말기로 송신될 수 있다.
펌웨어 장치(200)는 통신부(210), 제어부(220) 및 저장부(230)를 포함할 수 있다. 펌웨어 장치(200)는 상술한 단말기 내에 위치할 수 있으며, 단말기는 다양한 전자 장치를 포함할 수 있다. 예컨대, 단말기는 랩탑 컴퓨터, 개인용 컴퓨터, 태블릿 장치, 전자 독출 장치, 이동국(MS), 무선 모뎀을 구비한 개인정보단말(PDA) 장치, 양방향 페이저(pager), 개인휴대통신 장치 등과 같이 무선 통신이 가능한 임의의 전자 장치를 모두 포함할 수 있다. 이러한 펌웨어 장치는 상술한 펌웨어 이미지를 포함할 수 있다. 이 때, 펌웨어 이미지는 단말기 내의 플래시 메모리 등에 존재할 수 있다.
그리고 통신부(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), 지그비 통신을 포함할 수 있다.
제어부(220)는 제1 이미지에 서버(100)로부터 수신한 업데이트 파일(D)을 적용하여 제2 이미지를 생성할 수 있다. 이 때, 제1 이미지는 상술한 바와 같이 기존의 펌웨어 이미지일 수 있으며, 단말기 내에 저장될 수 있다. 즉, 제어부(220)에서 제1 이미지는 단말기 내에 싱크(SYNC)되어 있는 파일일 수 있다.
그리고 제어부(220)는 제1 처리부(221), 제2 처리부(222), 제3 처리부(223)을 포함할 수 있다.
제1 처리부(221)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제1 이미지에서 제1 데이터셋을 제1 이동 정보에 따라 복사하여 제1 중간 이미지를 생성할 수 있다. 즉, 제1 처리부(221)는 업데이트 파일(D)의 정보에 따라 파일 복사를 1차적으로 수행할 수 있다. 그리고 여기서 제1 데이터셋은 복수 개의 제1 데이터를 포함할 수 있으며, 제1 데이터는 제1 방향으로 이동하는 데이터일 수 있다. 이에 대한 자세한 설명은 후술한다.
제2 처리부(222)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제1 중간 이미지에서 제2 데이터셋을 제2 이동 정보에 따라 복사하여 제2 중간 이미지를 생성할 수 있다. 여기서, 제2 데이터셋은 복수 개의 제2 데이터를 포함할 수 있으며, 제2 데이터는 제1 방향과 반대 방향으로 이동하는 데이터일 수 있다. 즉, 제1 데이터와 제2 데이터는 서로 다른 반대 방향으로 이동하는 데이터를 의미할 수 있다. 예컨대, 제1 방향이 데이터의 어드레스가 증가하는 방향이면, 제2 방향은 데이터의 어드레스가 감소하는 방향이다. 반대로, 제1 방향이 데이터의 어드레스가 감소하는 방향이면, 제2 방향은 데이터의 어드레스가 증가하는 방향이다.
제3 처리부(223)는 서버(100)로부터 수신한 업데이트 파일(D)을 이용하여 펌웨어 장치(200) 내의 제2 중간 이미지에서 제3 데이터셋을 제3 이동 정보에 따라 추가하여 제2 이미지를 생성할 수 있다. 여기서, 제3 데이터셋은 복수 개의 제3 데이터를 포함할 수 있다. 제3 데이터는 상술한 방향과 무관할 수 있다.
이러한 방식에 의하여, 제어부(220)는 단말기 내의 파일 시스템에서 동기화 명령(SYNC)을 수행하여 업데이트 파일(D)에 따라 파일을 변경할 수 있다. 이 때, 실시예에 따른 펌웨어 장치는 본 명세서에서 설명하는 업데이트 파일(D)을 이용하여 업데이트를 수행하기에 메모리 사용량을 현저하게 감소할 수 있으며, 업데이트 소요 시간도 감소하므로 전력 소모량도 감소할 수 있다. 다시 말해, 실시예에 따른 펌웨어 장치는 서버 등으로부터 소프트웨어 데이터 전체를 다운로드하지 않고 이전 버전의 소프트웨어 데이터와 비교해 수정된 부분만 추출하여 업데이트 파일을 생성하고, 생성한 업데이트 파일을 다시 압축하여 다운받을 파일의 사이즈를 최소화할 수 있다. 이러한 업데이트 파일을 통해 전자 장치의 저장공간을 좀 더 효율적으로 활용할 수 있고, 다운로드에 걸리는 소요 시간도 줄일 수 있다. 그리고 업데이트 파일을 적용하여 소프트웨어 데이터를 업데이트할 수 있다.
저장부(230)는 이미지를 저장할 수 있다. 이러한 저장부(230)는 데이터베이스 관리 프로그램(DBMS)을 이용하여 컴퓨터 시스템의 저장공간(하드디스크 또는 메모리)에 구현된 일반적인 데이터구조를 의미하는 것으로, 데이터의 검색(추출), 삭제, 편집, 추가 등을 자유 롭게 행할 수 있는 데이터 저장형태를 모두 포함할 수 있다. 그리고 저장부(230)에서는 이미지가 제어부(220)에 의해 데이터 이동에 따라 지속적으로 업데이트되어 저장될 수 있다.
도 3은 제1 이미지와 제2 이미지 각각의 데이터 블록을 도시한 도면이고, 도 4는 제1 이미지에서 제2 이미지로 이동하는 데이터를 도시한 도면이고, 도 5는 제1 데이터셋의 이동을 설명하는 도면이고, 도 6은 제1 중간 이미지를 도시한 도면이고, 도 7은 제2 데이터셋의 이동을 설명하는 도면이고, 도 8은 제2 중간 이미지와 제3 데이터셋을 도시한 도면이다.
도 3 및 도 4를 참조하면, 상술한 바와 같이 제2 이미지(I2)는 제1 이미지(I1)를 기반으로 업데이트된 이미지일 수 있다. 따라서 제1 이미지(I1)와 제2 이미지(I2)는 대부분의 데이터가 동일할 수 있다. 다만, 업데이트를 통해 추가되는 데이터의 위치에 따라 제1 이미지(I1)의 데이터는 제2 이미지(I2) 대비 어드레스(address)가 변경될 수 있다. 즉, 제1 이미지(I1)에서 일부 데이터는 제2 이미지(I2) 대비 어드레스가 증가 또는 감소할 수 있다. 그리고 제1 이미지(I1)와 제2 이미지(I2)는 상술한 바와 같이 복수의 데이터로 이루어진 파일일 수 있다.
구체적으로, 설명을 위해, 제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) 중 어느 하나와 동일하거나, 일부 동일 영역이 중첩될 수 있는 것으로 이해해야 한다.
그리고 제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)의 어드레스와 동일할 수 있다.
그리고 상술한 바와 같이 제1 이미지(I1)는 제2 이미지(I2)와 비교할 때, 내용(예컨대, 함수 등)은 동일하나 위치(어드레스)가 차분 이미지를 포함할 수 있다.
예컨대, 제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)에 포함되지 않는 데이터를 내용으로 가지는 영역일 수 있다.
그리고 제1 이미지(I1)의 제1-1 영역(Z11)은 제2 이미지(I2)의 제2-2 영역(Z22)으로 복사되어야 하므로 업데이트 시 어드레스가 증가하는 제1 방향(d1)으로 이동할 수 있다.
또한, 제1 이미지(I1)의 제1-2 영역(Z12)은 제2 이미지(I2)의 제2-4 영역(Z24)으로 복사되어야 하므로, 업데이트 시 어드레스가 증가할 수 있다. 또한, 제1 이미지(I1)의 제1-6 영역(Z16)은 제2 이미지의 제2-7 영역(Z27)으로 복사되어야 하므로, 업데이트 시 어드레스가 증가할 수 있다.
그리고 제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)으로 복사되어야 하므로, 업데이트 시 어드레스가 감소할 수 있다.
그리고 상술한 업데이트 추출부는 제1 추출부를 통해 제1 데이터셋을 추출하기 이전에 제1 이동데이터의 길이와 제2 이동데이터의 길이를 비교하여 우선 복사되는 이동데이터로 결정할 수 있다. 예컨대, 업데이트 추출부는 제1 이동데이터의 길이가 제2 이동데이터의 길이보다 큰 경우, 제1 이동데이터를 우선 복사되는 데이터로 결정하고 제1 이동데이터를 제1 데이터셋으로 추출할 수 있다. 이러한 구성에 의하여, 실시예에 따른 펌웨어 장치는 추가되는 데이터의 길이를 최소화하여 메모리 사용량을 감소할 수 있다. 이하에서는 제1 이동데이터의 길이가 제2 이동데이터의 길이보다 큰 경우로 설명한다.
구체적으로, 이동데이터는 제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)의 데이터를 포함할 수 있다.
도 5를 참조하면, 제1 추출부는 제1 이미지(I1)로부터 제1 데이터셋(D1)의 제1 이동 정보를 추출할 수 있다.
먼저, 제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)의 데이터이다.
그리고 제1 데이터셋(D1)의 제1 이동 정보는 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보, 제1 길이 정보를 포함할 수 있다. 제1 데이터셋(D1)의 제1 이동 정보는 각 제1 데이터에 대한 이동 정보를 모두 포함할 수 있다.
그리고 제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)으로 크기일 수 있다.
상술한 방식에 의하여, 제1 추출부는 제1 데이터셋(D1)의 제1 이동 정보를 추출할 수 있다.
도 6 및 도 7을 참조하면, 제2 추출부는 제2 데이터셋(D2)의 이동 정보를 추출할 수 있다.
구체적으로, 제1 이미지(I1)는 제1 데이터셋(D1)이 제1 이동 정보에 따라 이동하게 되어 저장될 수 있다. 저장되는 제1 이미지는 제1 중간 이미지(I1')로 변경될 수 있고, 제1 중간 이미지(I1')는 제1 이미지에서 제1 이동 정보에 따라 이동하여 저장된 이미지일 수 있다.
그리고 제1 중간 이미지(I1')는 제2 이동데이터의 일부 영역을 침범할 수도 있다. 즉, 제1 데이터셋(D1)의 이동에 의하여 제2 이동데이터의 일부 데이터가 다른 데이터로 변경되는 중첩 영역을 포함할 수 있다.
다시 말해, 제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)의 데이터의 이동에 따라 일부 변경된 영역이다.
마찬가지로, 제1 중간 이미지(I1')에서 제1-6 영역(Z16)의 데이터가 제2-7 영역(Z27)의 데이터로 복사되어 이동되어 제1-7 영역(Z17)의 데이터는 제1-6 영역(Z16)의 데이터로 변경될 수 있다. 즉, 제1-7 영역(Z17)의 데이터는 전체가 변경되며 제2 중첩 영역(OV2)일 수 있다. 이러한 중첩 영역은 이에 한정되는 것은 아니며 제1 이미지와 제2 이미지 간의 데이터 차이에 따라 존재하지 않을 수도 있다.
그리고 제2 데이터셋(D2)은 제2 방향으로 이동하는 제2 데이터로 이루어질 수 있다. 실시예로, 제2 데이터셋(D2)은 제1 중간 이미지(I1')에서 제1 중첩 영역(OV1)의 데이터가 제거된 제1-3 영역(Z13)의 데이터인 제2-1 데이터(D21) 및 제1-5 영역(Z15)의 데이터인 제2-2 데이터(D22)를 포함할 수 있다.
그리고 제2 추출부는 제2 데이터셋(D2)의 제2 이동 정보를 추출할 수 있다. 이 때, 제2 데이터셋(D2)의 제2 이동 정보는 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보, 제2 길이 정보를 포함할 수 있다. 또한, 제2 데이터셋(D1)의 제2 이동 정보는 각 제2 데이터에 대한 이동 정보를 모두 포함할 수 있다.
제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)으로 크기일 수 있다.
또한, 제2 데이터셋의 제2 소스 어드레스 정보는 제1 타겟 어드레스 정보와 상이할 수 있다. 다시 말해, 제2 데이터셋의 제2 소스 어드레스 정보의 어드레스는 제1 타겟 어드레스 정보의 어드레스와 중첩되지 않을 수 있다. 이렇나 구성에 의하여, 데이터 복사에 따른 데이터 오염 발생을 방지할 수 있다.
도 8을 참조하면, 제3 추출부는 제1 이미지(I1)에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 추출할 수 있다.
구체적으로, 제1 중간 이미지(I1')는 제2 데이터셋(D2)이 제2 이동 정보에 따라 이동하게 되면 제2 중간 이미지(I1'')로 변경될 수 있다. 이 때, 제1 이동 정보에서 제1 길이 정보는 제2 길이 정보보다 크기가 클 수 있다. 왜냐하면, 후술하는 중첩 영역이 존재하지 않더라도 상술한 바와 같이 제1 이동데이터의 길이에 대한 크기가 제2 이동데이터의 길이에 대한 크기가 더 크기 때문이다. 이로써, 실시예에 따른 펌웨어 장치는 메모리 소모량을 최소화할 수 있다.
제3 데이터셋(D3)은 제2 중간 이미지(I1'')와 제2 이미지 간의 차분 이미지인 제3 데이터를 포함할 수 있다. 즉, 제3 데이터셋(D3)은 제1 중간 이미지(I1')에서 이동된 제1 데이터셋(D1)과 제2 이동데이터 사이에 동일한 데이터를 포함할 수 있다.
실시예로, 제3 데이터셋(D3)는 제3-1 데이터(D31), 제3-2 데이터(D32), 제3-3 데이터(D33) 및 제3-4 데이터(D34)를 포함할 수 있다.
구체적으로, 제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 이미지에 존재하지 않는 데이터일 수 있다.
이에 따라, 제3 데이터셋(D3)의 제3 이동 정보는 추가되는 위치, 즉 배치되는 어드레스와 데이터의 길이 및 추가되는 데이터를 포함할 수 있다. 이와 같이, 제3 데이터셋(D3)은 제1 데이터셋(D1), 제2 데이터셋(D2)과 달리 소스 어드레스 정보가 존재하지 않으므로 데이터의 이동이 없이 해당 어드레스로 제공될 수 있다.
도 9는 업데이트 파일을 도시한 도면이다.
도 9를 참조하면, 업데이트 파일은 제1 데이터셋(D1)의 제1 이동 정보, 제2 데이터셋(D2)의 제2 이동 정보 및 제3 데이터셋(D3)의 제3 이동 정보를 포함할 수 있다.
제1 데이터셋(D1)의 제1 이동 정보는 상술한 바와 같이 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보, 제1 길이 정보를 포함할 수 있다. 즉, 제1 데이터셋(D1)의 제1 이동 정보는 각 제1 데이터가 1차로 이동하는데 요구되는 정보를 포함할 수 있다.
그리고 제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 이미지로의 업데이트가 완료되지 못하는 것을 방지할 수 있다.
그리고 제2 데이터셋(D2)의 제2 이동 정보는 상술한 바와 같이 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보, 제2 길이 정보를 포함할 수 있다. 즉, 제2 데이터셋(D2)의 제2 이동 정보는 각 제2 데이터가 제1 데이터셋(D1)의 이동 이후에 2차 이동하는데 요구되는 정보를 포함할 수 있다.
즉, 제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 이미지로의 업데이트가 완료되지 못하는 것을 방지할 수 있다.
제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 이동 정보는 메모리 사용량을 현저히 감소할 수 있고, 업데이트 파일의 크기도 감소할 수 있다.
또한, 제3 데이터셋(D3)의 제3 이동 정보는 각 제3 데이터의 제3 이동 정보의 배치 순서와 무관할 수 있다. 이로써, 제3 데이터의 배열 위치는 다양하게 이루어질 수 있다.
뿐만 아니라, 상술한 업데이트 파일은 업데이트 전/후로 데이터의 어드레스가 동일한 데이터에 대한 정보는 제외할 수 있다. 즉, 업데이트 전/후로 데이터의 어드레스가 동일한 경우, 업데이트가 필요하지 않게 때문에, 업데이트 파일로 반영되지 않는다. 이로써, 업데이트 파일의 크기를 감소할 수 있으며 업데이트에 소요되는 시간을 용이하게 감소할 수 있다.
도 10은 실시예에 따른 펌웨어 장치의 동작을 설명하는 도면이고, 도 11은 실시예에 따른 업데이트 과정을 설명하는 도면이고, 도 12는 실시예에 따른 제어부의 동작을 설명하는 도면이고, 도 13은 제1 처리부의 동작을 설명하는 도면이고, 도 14는 제2 처리부의 동작을 설명하는 도면이다.
도 10 및 도 11을 참조하면, 실시예에 따른 펌웨어 장치는 상술한 바와 같이 제어부를 통해 제1 이미지(I1)에 수신한 업데이트 파일(D)을 적용하여 제2 이미지(I2)를 생성할 수 있다. 여기서, 제1 이미지(I1)와 제2 이미지(I2)는 상술한 서버에서 적용된 제1 이미지(I1) 및 제2 이미지(I2)와 동일한 파일이나, 처리 위치가 상이하다. 그리고 이미지는 시스템 파일 등의 버전에 따라 복수 개로 다양할 수 있으며, 업데이트 전에 상술한 인증 절차 전/후로 시스템 파일의 버전에 대한 스캔이 수행될 수 있다.
보다 구체적으로, 실시예에 따른 펌웨어 장치 내에 제1 이미지(I1)만 배치되어 일부 메모리(EM)는 빈(empty) 영역일 수 있다. 이후에, 인증 절차를 통해 서버로부터 업데이트 파일(D)을 수신하면, 일부 메모리(EM)에 업데이트 파일(D)이 배치될 수 있다. 그리고 제어부(220)는 펌웨어 장치 내에 저장된 제1 이미지(I1)에 대해 서버로부터 수신한 업데이트 파일(D)을 적용할 수 있다. 이 때, 상술한 바와 같이 업데이트 파일(D)은 펌웨어 장치 내에 저장된 이미지의 버전에 따라 변경될 수 있다. 그리고 제어부(220)는 제1 처리부, 제2 처리부 및 제3 처리부를 통해 제2 이미지(I2)를 최종으로 생성할 수 있다. 이러한 동작에 대해서는 이하 자세히 후술한다.
도 12를 참조하면, 제어부는 업데이트 파일의 데이터 순서(제1 방향 기준)에 따라 데이터 이동을 수행할 수 있다. 그리고 이하 전술한 업데이트 추출부에서 추출된 업데이트 파일이 적용되는 경우로 이하 설명한다.
먼저, 제어부에서 제1 처리부는 제1 데이터셋을 제1 이동 정보에 따라 제1 이미지가 저장된 저장부에 저장할 수 있다. 구체적으로, 제1 처리부는 제1 데이터셋의 제1 데이터를 제1 방향(d1)으로 이동할 수 있다. 실시예로, 제1 처리부는 제1 이미지(I1)에서 제1-6 영역의 데이터, 제1-2 영역의 데이터 및 제1-1 영역의 데이터 순으로 제1 이동 정보에 따라 각각 이동할 수 있다. 즉, ST1, ST2 및 ST3 순으로 데이터를 이동할 수 있다.
도 13을 참조하면, 어드레스 3,4,5,6 및 7에 위치하는 소스(source) 데이터가 제1 방향(d1)으로 이동하여 타겟(target) 데이터가 이루어지는 경우, 소스 데이터는 데이터의 이동 방향과 반대 방향(K1)인 제2 방향(d2) 순으로 이루어질 수 있다. 즉, 어드레스 7의 데이터에서 어드레스 3의 데이터까지 순으로 데이터가 이동할 수 있다. 이는 데이터 내의 각 함수도 동일하게 적용될 수 있다.
다시 도 12를 참조하면, 제1-6 영역의 데이터, 제1-2 영역의 데이터 및 제1-1 영역의 데이터는 각각 상술한 바와 같이 제2-7 영역, 제2-4 영역 및 제2-2 영역으로 이동할 수 있다. 즉, ST4, ST5 순으로 데이터를 이동할 수 있다. 이러한 각 데이터의 이동으로 제1 이미지는 제1 중간 이미지로 변경되어 저장부에서 저장될 수 있다.
그리고 제어부에서 제2 처리부는 제2 데이터셋을 제2 이동 정보에 따라 저장부에 저장할 수 있다. 구체적으로, 제2 처리부는 제2 데이터셋의 제2 데이터를 제2 방향(d2)으로 이동할 수 있다.
실시예로, 제2 처리부는 제1 중간 이미지(I1')에서 제1 중첩 영역의 데이터가 제거된 제1-3 영역의 데이터를 제2-1 영역 내로 이동할 수 있다. 이 때, 제2 이동 정보는 제1 중첩 영역 이외의 어드레스를 타겟 어드레스로 포함하여, 데이터 이동에 따른 오염을 방지할 수 있다.
이후에, 제2 처리부는 제1 중간 이미지(I1')에서 제1-5 영역의 데이터를 제2-3 영역으로 이동할 수 있다. 이와 같이 제2 처리부는 제2 데이터셋을 제2 이동 정보에 따라 이동한 저장할 수 있다. 또한, 제2 데이터셋이 제2 방향(d2)으로 이동하는 경우 제2 데이터셋 내의 데이터는 제1 방향(d1)을 따라 순차로 이동할 수 있다.
도 14을 참조하면, 어드레스 3,4,5,6 및 7에 위치하는 소스(source) 데이터가 제2 방향(d2)으로 이동하여 타겟(target) 데이터(어드레스 1,2,3,4 및 5에 위치함)가 이루어지는 경우, 소스 데이터는 데이터의 이동 방향과 반대 방향(K2)인 제1 방향(d1) 순으로 이루어질 수 있다. 즉, 어드레스 3의 데이터에서 어드레스 7의 데이터 순으로 데이터가 이동할 수 있다. 이는 데이터 내의 각 함수도 동일하게 적용될 수 있다.
그리고 이러한 구성에 의하여, 데이터 오염을 방지할 수 있다. 그리고 제2 데이터셋의 이동으로 제1 중간 이미지는 제2 중간 이미지로 변경되어 저장부에 저장될 수 있다.
다시 도 12를 참조하면, 제어부에서 제3 처리부는 제3 데이터셋을 제3 이동 정보에 따라 상기 저장부에 저장할 수 있다. 구체적으로, 제3 처리부는 제3 데이터셋의 제3 데이터를 제2 중간 이미지 상에 추가될 수 있다. 이 때, 제3 데이터는 제2 중간 이미지의 내의 데이터 이동이 없으므로, 추가되는 순서가 변경되더라도 데이터의 오염이 없다. 다시 말해, ST6, ST7 및 ST8은 추가 순서가 다양하게 적용될 수 있다.
도 15는 실시예에 따른 펌웨어 장치의 동작을 설명하는 순서도이고, 도 16은 실시예에 따른 서버의 동작을 설명하는 순서도이다.
도 15 및 도 16을 참조하면, 실시예에 따른 펌웨어 장치의 업데이트 방법은 전술한 바와 같이 업데이트 파일을 서버로부터 수신하는 단계(S410), 업데이트 파일에 따라 제1 데이터셋, 제2 데이터셋 및 제3 데이터 셋 중 어느 하나를 이동하는 단계(S420)을 포함할 수 있다.
구체적으로, 펌웨어 장치는 업데이트 파일을 서버로부터 수신할 수 있다. 이 때, 업데이트 파일은 기존 이미지 중에 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 기존 이미지에 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보 및 기존 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함할 수 있다.
즉, 펌웨어 장치는 내부에 저장된 기존의 이미지(제1 이미지라 함)에서 제1 방향으로 이동하는 제1 데이터셋을 제1 이동 정보에 따라 이동할 수 있다. 전술한 바와 같이, 제1 방향이 데이터의 어드레스가 증가하는 방향인 경우, 제2 방향은 제1 방향에 반대 방향으로 데이터의 어드레스가 감소하는 방향일 수 있다.
이 때, 펌웨어 장치는 제1 이미지에서 제1 데이터셋 내의 제1 방향으로 이동하는 제1 데이터에 대해서는 제2 방향을 따라 순차로 이동하여 저장할 수 있다. 그리고 제1 데이터셋이 복사된 이미지를 상술한 바와 마찬가지로 제1 중간 이미지라 할 수 있다.
그리고 펌웨어 장치는 서버로부터 수신한 업데이트 파일을 이용하여 제1 중간 이미지에서 제2 데이터셋을 제2 이동 정보에 따라 복사하여 제2 중간 이미지를 생성할 수 있다. 이 때, 제2 데이터셋은 복수 개의 제2 데이터를 포함할 수 있으며, 제2 데이터는 제2 방향으로 이동하는 데이터일 수 있다.
또한, 펌웨어 장치는 서버로부터 수신한 업데이트 파일을 이용하여 제2 중간 이미지에서 제3 데이터셋을 제3 이동 정보에 따라 추가하여 업데이트 파일에 따라 업데이트가 완료된 이미지인 제2 이미지를 생성할 수 있다. 이 때, 펌웨어 장치는 이미지에 추가되는 제3 이동 정보에 따라 데이터를 추가하여 이미지를 업데이트하고 저장할 수 있다.
그리고 실시예에 따른 서버의 업데이트 파일 생성 방법은 업데이트 전 이미지인 제1 이미지와 업데이트된 이미지인 제2 이미지 간의 비교를 통해 차분 이미지를 추출하는 단계(S510), 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계(S520), 제1 이동 정보를 추출하는 단계(S530), 제2 이동 정보를 추출하는 단계(S540), 제3 이동 정보를 추출하는 단계(S550), 업데이트 파일을 생성하는 단계(S560)을 포함할 수 있다.
먼저, 업데이트 전 이미지인 제1 이미지와 업데이트된 이미지인 제2 이미지 간의 비교를 통해 차분 이미지를 추출하는 단계(S510)에서는 제1 이미지와 제2 이미지 간의 동일 데이터를 제외한 나머지 데이터를 차분 이미지로 추출할 수 있다. 여기서, 동일 데이터는 데이터의 내용(함수 등) 및 어드레스가 모두 같은 경우를 의미한다. 예컨대, 함수의 호출이 어드레스를 통해 이루어지기 때문에 데이터의 함수가 동일하더라도 어드레스가 상이하면 데이터는 서로 상이할 수 있다. 또한, 동일한 데이터를 찾는 방식은 Suffix Pattern Matching과 같은 다양한 알고리즘이 적용될 수 있다.
그리고 차분 이미지에서 데이터의 이동 방향에 따라 제1 이동데이터 및 제2 이동데이터를 추출할 수 있다. 실시예로, 제1 이동데이터는 제1 이미지에서 제1 방향으로 이동하는 데이터이고, 제2 이동데이터는 제1 이미지에서 제2 방향으로 이동하는 데이터이다. 그리고 제1 이동데이터의 길이와 제2 이동데이터의 길이를 서로 비교할 수 있다(S520). 이 때, 길이가 큰 이동데이터를 제1 데이터셋을 결정하여, 데이터 추출이 먼저 이루어질 수 있다. 이에 따라, 이동이 수행되는 데이터를 최대한 증가시켜 업데이트에서 데이터 추가를 최소화할 수 있다. 즉, 업데이트 파일의 크기를 최소화할 수 있다.
그리고 제1 데이터셋으로부터 제1 이동 정보를 추출할 수 있다(S530). 즉, 제1 이미지에서 제1 데이터가 어디에서 어디로 얼마만큼 이동하였는지에 대한 정보를 추출할 수 있다. 보다 구체적으로, 제1 이미지에서 제2 이미지로 업데이트되기 위해서, 제1 이미지에서 제1 데이터의 어드레스인 제1 소스 어드레스 정보를 추출할 수 있다. 그리고 제2 이미지에서 제1 데이터의 어드레스인 제1 타겟 어드레스 정보를 추출할 수 있다. 그리고 제1 데이터가 제1 이미지에서 제2 이미지로 이동되는 길이인 제1 길이 정보를 추출할 수 있다. 상술한 제1 소스 어드레스 정보, 제1 타겟 어드레스 정보 및 제1 길이 정보는 순서와 무관할 수 있다.
다음으로, 제2 이동 정보를 추출할 수 있다(S540). 제2 이동 정보는 제2 데이터의 이동 정보일 수 있다. 구체적으로, 제1 이미지는 제1 데이터셋이 제1 이동 정보에 따라 이동하여 제1 중간 이미지로 변경될 수 있다. 그리고 제1 중간 이미지는 제2 이동데이터의 일부 영역과 중첩될 수 있다. 다시 말해, 제1 데이터셋의 이동에 의해 제2 이동데이터의 일부 영역이 제1 데이터셋으로 오염될 수 있다. 이에 따라, 제2 데이터셋은 제1 중간 이미지와 제2 이미지 대비 제2 방향으로 이동하는 제2 데이터로 이루어질 수 있다. 다시 말해, 상술한 중첩된 영역은 제거될 수 있다. 다만, 제1 이미지와 제2 이미지 간의 데이터 차이에 따라 상술한 중첩이 존재하지 않을 수도 있다.
그리고 제1 중간 이미지에서 제2 데이터의 어드레스인 제2 소스 어드레스 정보를 추출할 수 있다. 그리고 제2 이미지에서 제2 데이터의 어드레스인 제2 타겟 어드레스 정보를 추출할 수 있다. 그리고 제2 데이터가 제1 중간 이미지에서 제2 이미지로 이동되는 길이인 제2 길이 정보를 추출할 수 있다. 상술한 제2 소스 어드레스 정보, 제2 타겟 어드레스 정보 및 제2 길이 정보는 순서와 무관할 수 있다.
그리고 제3 이동 정보를 추출할 수 있다(S550). 제3 이동 정보는 제3 데이터셋으로부터 추출될 수 있다. 구체적으로, 제1 중간 이미지는 제2 데이터셋의 제2 이동 정보에 따른 이동에 의해 제2 중간 이미지로 변경될 수 있다. 이 때, 제1 이동 정보에서 제1 길이 정보는 제2 길이정보보다 클 수 있다. 상술한 바와 같이 상기 중첩되는 영역이 존재하지 않더라도 제1 이동데이터의 길이에 대한 크기가 제2 이동데이터의 길이에 대한 크기가 더 크기 때문이다. 이에 따라, 펌웨어 장치는 메모리 소모량을 최소화할 수 있다.
그리고 제3 데이터셋은 제2 중간 이미지와 제2 이미지 간의 차분 이미지인 제3 데이터를 포함할 수 있다. 제3 데이터셋은 상기 중첩된 영역의 데이터를 포함할 수 있다. 또한, 제3 데이터셋의 제3 이동 정보는 추가되는 위치, 즉 데이터가 배치되는 어드레스와 데이터의 길이 및 추가되는 데이터를 모두 포함할 수 있다. 추가되는 데이터는 함수 등을 포함할 수 있다. 이와 같이, 제3 데이터셋은 제1 데이터셋, 제2 데이터셋과 달리 소스 어드레스 정보를 포함하지 않을 수 있다.
그리고 제1 데이터셋의 제1 이동 정보, 제2 데이터셋의 제2 이동 정보 및 제3 데이터셋의 제3 이동 정보를 포함하는 업데이트 파일을 생성할 수 있다(S560). 이 때, 업데이트 파일은 압축 알고리즘에 의해 압축이 수행될 수 있다. 그리고 업데이트 파일을 수신한 펌웨어 장치는 압축된 업데이트 파일을 압축 해제 알고리즘으로 압축 해제하여 저장을 수행할 수 있다. 이러한 압축을 통해 메모리 사용량을 최소화할 수 있다. 또한, 업데이트 파일을 제1 이미지 상에 직접적으로 이동/복사를 수행하여 제2 이미지에 대한 추가적인 메모리 공간이 필요하지 않는 이점 또한 존재한다.
Claims (15)
- 이미지를 저장하는 저장부;
상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및
상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고,
상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고,
상기 제어부는,
상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 펌웨어 장치.
- 제1항에 있어서,
상기 제1 이동 정보는,
상기 제1 데이터셋의 이동 전 어드레스인 제1 소스 어드레스 정보;
상기 제1 데이터셋이 이동 후 어드레스인 제1 타겟 어드레스 정보; 및
상기 제1 데이터셋의 제1 길이 정보;를 포함하는 펌웨어 장치.
- 제2항에 있어서,
상기 제2 이동 정보는,
상기 제2 데이터셋의 이동 전 어드레스인 제2 소스 어드레스 정보;
상기 제2 데이터셋이 이동 후 어드레스인 제2 타겟 어드레스 정보; 및
상기 제2 데이터셋에서 이동 대상 데이터의 제2 길이 정보;를 포함하는 펌웨어 장치.
- 제3항에 있어서,
상기 제3 이동 정보는,
상기 제3 데이터셋의 어드레스 및 상기 제3 데이터셋의 데이터를 포함하는 펌웨어 장치.
- 제1항에 있어서,
상기 제1 데이터셋은 상기 제1 방향으로 이동되는 제1 데이터의 집합이고,
상기 제2 데이터셋은 상기 제2 방향으로 이동되는 제2 데이터의 집합이고,
상기 제3 데이터셋은 상기 이미지에 신규로 추가되는 제3 데이터의 집합인 펌웨어 장치.
- 제5항에 있어서,
상기 제어부는 상기 제1 데이터를 상기 제2 방향을 따라 순차로 복사하는 펌웨어 장치.
- 제5항에 있어서,
상기 제어부는 상기 제2 데이터를 상기 제1 방향을 따라 순차로 복사하는 펌웨어 장치.
- 제1항에 있어서,
상기 통신부는 LTE, Wifi 및 근거리 무선 통신 중 어느 하나를 포함하는 펌웨어 장치.
- 업데이트 파일을 생성하는 서버; 및
상기 업데이트 파일을 이미지에 적용하여 업데이트하는 펌웨어 장치;를 포함하고,
상기 펌웨어 장치는 상기 이미지를 저장하는 저장부; 상기 이미지에 대한 업데이트 파일을 수신하는 통신부; 및 상기 이미지에 상기 업데이트 파일을 적용하여 상기 저장부에 업데이트하는 제어부;를 포함하고,
상기 업데이트 파일은, 상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보를 포함하고,
상기 제어부는,
상기 제1 데이터셋을 상기 제1 이동 정보에 따라 상기 저장부에 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 상기 저장부에 저장하고, 상기 제3 데이터셋의 상기 제3 이동 정보에 따라 상기 저장하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 펌웨어 시스템.
- 제9항에 있어서,
상기 서버는, 상기 이미지와 업데이트된 이미지를 비교하여 상기 업데이트 파일을 추출하는 업데이트 추출부;를 포함하는 펌웨어 시스템.
- 제10항에 있어서,
상기 업데이트 추출부는,
상기 제1 이동 정보를 추출하는 제1 추출부;
상기 제2 이동 정보를 추출하는 제2 추출부; 및
상기 제3 이동 정보를 추출하는 제3 추출부를 포함하는 펌웨어 시스템.
- 제11항에 있어서,
상기 업데이트 추출부는 제1 이동데이터와 제2 이동데이터의 크기 비교를 통해 우선 이동 복사되는 데이터를 결정하고,
상기 제1 이동데이터는 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고,
상기 제2 이동데이터는 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터인 펌웨어 시스템.
- 업데이트 파일을 서버로부터 수신하는 단계; 및
상기 업데이트 파일을 이미지에 적용하여 저장하는 단계를 포함하고,
상기 업데이트 파일은,
상기 이미지 중 제1 방향으로 이동하는 제1 데이터셋에 대한 제1 이동 정보, 상기 이미지 중 제2 방향으로 이동하는 제2 데이터셋에 대한 제2 이동 정보, 및 이미지에 추가되는 제3 데이터셋에 대한 제3 이동 정보 중 어느 하나 이상을 포함하고,
상기 저장하는 단계는,
상기 이미지에서 상기 제1 데이터셋을 상기 제1 이동 정보에 따라 이동하여 저장하고, 상기 제2 데이터셋을 상기 제2 이동 정보에 따라 이동하여 저장하고, 상기 제3 데이터셋을 상기 제3 이동 정보에 따라 추가하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 업데이트 방법.
- 이미지와 업데이트된 이미지 간의 동일 데이터를 제외한 차분 이미지를 추출하는 단계;
상기 차분 이미지에서 제1 이동데이터의 길이와 제2 이동데이터의 길이 비교를 하는 단계;
제1 방향으로 이동하는 제1 데이터셋의 제1 이동 정보를 추출하는 단계;
제2 방향으로 이동하는 제2 데이터셋의 제2 이동 정보를 추출하는 단계;
제3 데이터셋의 제3 이동 정보를 추출하는 단계; 및
업데이트 파일을 생성하는 단계;를 포함하고,
상기 제1 이동데이터는, 상기 이미지에서 상기 업데이트된 이미지로 상기 제1 방향을 따라 이동하는 데이터이고,
상기 제2 이동데이터는, 상기 이미지에서 상기 제2 방향을 따라 이동하는 데이터이고,
상기 업데이트 파일은, 상기 제1 이동 정보, 상기 제2 이동 정보, 및 상기 제3 이동 정보 중 어느 하나 이상을 포함하고,
상기 제1 방향은 데이터의 어드레스가 증가 또는 감소하는 방향이고,
상기 제2 방향은 상기 제1 방향과 반대 방향인 업데이트 파일 추출 방법.
- 제14항에 있어서,
상기 제2 데이터셋의 어드레스는 상기 제1 데이터셋의 어드레스와 상이한 업데이트 파일 추출 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170629A KR102625006B1 (ko) | 2018-12-27 | 2018-12-27 | 펌웨어 장치 및 이를 포함하는 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180170629A KR102625006B1 (ko) | 2018-12-27 | 2018-12-27 | 펌웨어 장치 및 이를 포함하는 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200080796A KR20200080796A (ko) | 2020-07-07 |
KR102625006B1 true KR102625006B1 (ko) | 2024-01-15 |
Family
ID=71603253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180170629A KR102625006B1 (ko) | 2018-12-27 | 2018-12-27 | 펌웨어 장치 및 이를 포함하는 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102625006B1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE602005025385D1 (de) * | 2005-12-20 | 2011-01-27 | Ericsson Telefon Ab L M | Erstellung inkrementeller Programmaktualisierungen |
KR20120105203A (ko) * | 2011-03-15 | 2012-09-25 | 삼성테크윈 주식회사 | 이미지 파일 전송 방법 |
US9858067B2 (en) * | 2015-10-05 | 2018-01-02 | Samsung Electronics Co., Ltd. | Electronic system with update control mechanism and method of operation thereof |
KR20180131840A (ko) * | 2017-06-01 | 2018-12-11 | 한국전자통신연구원 | 펌웨어 업데이트 지원 장치 및 그 방법 |
-
2018
- 2018-12-27 KR KR1020180170629A patent/KR102625006B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20200080796A (ko) | 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 (zh) | 一种java集群应用***代码装载及升级装置和方法 | |
US20130283267A1 (en) | Virtual machine construction | |
CN106815276A (zh) | 页面跳转方法及装置 | |
CN105302587A (zh) | 数据更新方法及装置 | |
CN105045631A (zh) | 一种升级客户端侧应用程序的方法和装置 | |
CN103188097A (zh) | 一种实现补丁管理的方法、装置及*** | |
CN105468707A (zh) | 一种基于缓存的数据处理方法及装置 | |
CN108959122A (zh) | 一种升级包下载的保存方法、装置和终端 | |
CN101833464A (zh) | 一种移动终端分段加载应用程序的方法及装置 | |
CN112631622A (zh) | 应用安装方法、装置、服务器及计算机可读介质 | |
CN104077161A (zh) | 一种客户端应用的升级方法及装置 | |
US10558566B2 (en) | Garbage collection of non-pinned objects within heap | |
CN105808273A (zh) | 软件升级方法和软件升级装置 | |
CN111736982B (zh) | 一种5g数据转发平面的数据转发处理方法和服务器 | |
CN103593233A (zh) | 推送软件信息的方法和*** | |
CN109213536A (zh) | 资源展示方法、资源展示类控件的配置方法、装置及设备 | |
CN104079623A (zh) | 多级云存储同步控制方法及*** | |
CN105912641A (zh) | 一种本地应用程序的图标更新方法及装置 | |
US10846015B2 (en) | Early IO control techniques for a remote data facility | |
US20210096956A1 (en) | Patch reconciliation of storage nodes within a storage cluster | |
KR102625006B1 (ko) | 펌웨어 장치 및 이를 포함하는 시스템 | |
US20150234703A1 (en) | System and method to perform a backup operation using one or more attributes of files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |