[go: up one dir, main page]

KR100849301B1 - 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법 - Google Patents

무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법 Download PDF

Info

Publication number
KR100849301B1
KR100849301B1 KR1020067024957A KR20067024957A KR100849301B1 KR 100849301 B1 KR100849301 B1 KR 100849301B1 KR 1020067024957 A KR1020067024957 A KR 1020067024957A KR 20067024957 A KR20067024957 A KR 20067024957A KR 100849301 B1 KR100849301 B1 KR 100849301B1
Authority
KR
South Korea
Prior art keywords
file
delta
segments
binary file
upgraded
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020067024957A
Other languages
English (en)
Other versions
KR20070018093A (ko
Inventor
수드힌드라 피. 헬레
바니 부다하티
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020067024957A priority Critical patent/KR100849301B1/ko
Publication of KR20070018093A publication Critical patent/KR20070018093A/ko
Application granted granted Critical
Publication of KR100849301B1 publication Critical patent/KR100849301B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 원본 바이너리 파일과 업그레이드된 바이너리 파일 사이의 차이들을 기반으로 하여 복합 델타 파일을 생성하는 방법 및 장치에 관한 것이다. 그러한 복합 델타 파일 생성 방법은 1) 원본 바이너리 파일을 크기 N인 다수의 제1 세그먼트들로 세그먼트화하는 단계; 2) 업그레이드된 바이너리 파일을 크기 N인 다수의 제2 세그먼트들로 세그먼트화하는 단계; 3) 원본 바이너리 파일로부터 나온 제1 세그먼트와 업그레이드된 바이너리 파일로부터 나온 제1 세그먼트 사이의 제1 세트의 차이들을 검출하는 단계; 및 4) 검출된 제1 세트의 차이들로부터 제1 델타 파일을 생성하는 단계를 포함한다. 그 방법은 4) 원본 바이너리 파일로부터 나온 제2 세그먼트와 업그레이드된 바이너리 파일로부터 나온 제2 세그먼트 사이의 제2 세트의 차이들을 검출하는 단계; 및 5) 검출된 제2 세트의 차이들로부터 제2 델타 파일을 생성하는 단계를 더 포함한다. 제1 및 제2 델타 파일들을 결합하여 복합 델타 파일을 생성한다.
오버-더-에어 업그레이드, 델타 파일, 원본 바이너리 파일, 업그레이드된 바이너리 파일, 세그먼트, 세그먼트화 링커, 세그먼트화 델타 파일 생성기

Description

무선 네트워크에서의 오버-더-에어 업그레이드용 델타 파일의 효율적 생성 장치 및 방법{APPARATUS AND METHOD FOR EFFICIENT GENERATION OF DELTA FILES FOR OVER-THE-AIR UPGRADES IN A WIRELESS NETWORK}
본 발명은 전반적으로 무선 통신에 관한 것으로, 좀더 상세하게는 무선 이동국의 오버-더-에어 업그레이드용 델타 파일을 효율적으로 생성하는 기법에 관한 것이다.
무선 서비스 공급자와 무선 장비 제조자는 무선 장비와 서비스를 가능한 한 편의적이고 사용자 친화적이며 적정 가격의 것으로 되도록 하려고 부단히 노력하고 있다. 그러한 노력들 중의 중요한 한 가지 양태는 휴대 전화, 무선 개인 디지털 보조 기기(PDA), 무선 포켓용 컴퓨터, 양방향 페이저 등과 같은 무선 이동국은 물론고정 무선 단말의 오버-더-에어(over-the-air)(OTA) 업그레이드를 포함한다. 때로 펌웨어 오버-더-에어(FOTA) 업그레이드라고 불리는 오버-더-에어(OTA) 업그레이드는 이동국 사용자로 하여금 패치들을 포함한 업그레이드된 소프트웨어, 버그 픽스(bug fix), 및 무선 이동국에 저장된, 운영 시스템을 포함한 소프트웨어의 신규 버전을 다운로드 받아 설치할 수 있게끔 하는 상대적으로 새로운 절차이다.
소프트웨어 업그레이드는 통상적으로 델타 파일의 형태로 이동국에 전달된다. 이동국은 원본 파일(또는 옛 파일)의 사본을 포함하고 있으므로, 그 원본 파일을 업그레이드된 파일(또는 새 파일)로 대체하는 것이 바람직하다. 그러나 많은 소프트웨어 프로그램들과 기타의 파일들이 매우 커서 전체의 업그레이드된 파일을 무선으로 전달하는 것이 설사 불가능하지 않다 할지라도 일반적으로는 비실용적이다. 그러한 문제점을 극복하기 위해, OTA 업그레이드 동작은 흔히 델타 파일을 사용한다. 그러한 델타 파일은 원본 파일과 업그레이드된 파일 사이의 차이들을 검출함으로써 생성된다. 이어서, 검출된 차이들을 사용하여 델타 파일을 생성하는데, 그 델타 파일은 원본 파일을 업그레이드된 파일로 변환하는데 사용될 수 있는 데이터와 명령들을 포함한다. 델타 파일을 무선 이동국에 전달할 때에, 델타 파일 내의 명령들이 실행되고, 델타 파일로부터 나온 데이터가 원본 파일을 수정(또는 패치)하는데 사용되며, 그럼으로써 이동국에서 원본 파일을 업그레이드된 파일로 변환하게 된다. 그러한 방법의 장점은 델타 파일이 전형적으로 원본 파일과 업그레이드된 파일의 그 어느 것보다도 훨씬 더 작다는 것이다.
델타 파일을 생성하는 많은 방법들이 존재한다. 하지만, 그 각각의 방법은 하나 이상의 심각한 단점들을 겪고 있다. Reichenberger에 의해 제안된, "그리디(greedy)" 알고리즘으로도 알려진 통상적인 델타 파일 생성 알고리즘은 이론적으로 가능한 최소의 크기인 델타 파일들을 생성하는데 적합하다. 하지만, 그러한 그리디 알고리즘은 델타 파일을 생성하는데 소요되는 시간 때문에 그 크기가 4메가바 이트(4Mb)보다 더 큰 어떠한 파일에도 사실상 사용될 수 없다. 그리디 알고리즘은 O(n2) 메모리와 실행 시간을 필요로 하는데, 여기서 n은 옛 파일과 새 파일의 합산 길이이다. n의 값이 큰 경우에는, 델타 파일의 생성을 완료하는데 여러 시간 또는 심지어 여러 날이 소요될 수 있다.
또 다른 통상적인 델타 파일 생성 알고리즘은 Josh MacDonald에 의해 소개된 x델타이다. x델타 알고리즘은 선형 시간으로 실행되지만, 델타 파일 크기가 그리디 알고리즘보다 훨씬 더 크다. 그것은 무선 적용에 있어 문제점이 되는데, 왜냐하면 무선 서비스 공급자가 델타 파일 크기에 제한을 가할 수 있기 때문이다. 또한, 이동국에서 실행되는 델타 파일 적용 소프트웨어(예컨대, "패치 클라이언트")가 산만한 플래시 메모리 섹터 기록 패턴을 가지게 될 것이다. 그것은 패치 적용 시간의 증가로 귀결된다. 무선 서비스 공급자는 일반적으로 패치 적용 시간에도 엄격한 제한을 가한다(예컨대, 10분 미만). 산만한 플래시 메모리 섹터 기록 동작에 따른 부가의 문제점은 결과적으로 물리적 플래시 메모리 부분에 마모가 생기게 된다는 것이다. 주지된 바와 같이, 플래시 메모리는 제한된 삭제-기록 사이클을 갖는다(예컨대, 약 10,000).
마지막으로, x델타 명령은 원본 파일로부터 업그레이드된 파일의 재구성이 제위치에서 일어나지 않음을 가정한다. 업그레이드된 파일은 옛 파일과는 별개이자 구별되는 것으로 가정된다. 재구성의 종료 시에, 옛 파일이 삭제되어 업그레이드된 파일만이 남게 된다. 따라서 업그레이드된 파일을 생성하는 동안, 이미지 파일의 2 배의 크기인 플래시 메모리 크기가 필요하다.
Kiem Phong Vo에 의해 제안된 vcdiff는 x델타 알고리즘과 유사한 또 다른 선형 시간 알고리즘이다. 그 결과, vcdiff 알고리즘은 x델타 알고리즘에 해를 주는 단점들과 유사한 단점들을 겪는다. 끝으로, Andrew Tridgell에 의해 소개된 rsync 알고리즘은 클라이언트와 서버 사이에 교환되는 트래픽의 양을 최소화시키도록 설계되어 있다. 하지만, rsync 알고리즘은 그 이외의 어느 것도 최적화시키지 못한다. 따라서 펌웨어 오버-더-에어(FOTA) 적용에 그것을 사용하는 것은 매우 제한적이다.
또한, 델타 파일을 생성하는 선행 기술의 알고리즘들은 통상의 링커 프로그램들이 원본 바이너리 파일과 업그레이드된 바이너리 파일을 생성하고, 그들로부터 델타 파일들을 생성하는 방식으로 인한 불리함 갖고 있다. 링커는 목적 파일들을 취하여 실행 가능 파일을 생성한다. 좀더 구체적으로, 링커는 메모리 맵 입력 파일로부터 하나 이상의 목적 파일들, 라이브러리들, 및 주소 상세들을 입력으로서 취하여 실행에 적합한 출력 파일을 생성한다. 하지만, 통상의 링커들에서는, 실행 가능 출력이 모놀리식(monolithic) 속성을 갖는다. 실행 가능 출력은 함수(function)들, 변수들 등의 결정적 순서화(deterministic ordering)를 갖지 못한다. 그러한 세부 항목들은 링커까지 완전히 방치된다.
현재의 링커들은 목적 파일들을 선택함에 있어 전혀 순서를 갖지 않는다. 더욱이, 판독-기록 데이터("RW 데이터")가 모이는 순서도 정해져 있지 않다(즉, 랜덤임). ARM 마이크로프로세서 명령 세트와 같은 명령 세트들의 고유 속성으로 인해, 그들 명령에 대한 주소 참조들이 변경될 경우에 분기명령 인코딩, 점프 명령 인코딩, 및 함수(function) 호출 명령 인코딩이 변경된다. 새로운 소프트웨어 모듈들이 파일에 부가되거나 파일로부터 삭제될 경우(버그 픽스 등으로 인해), 실행 가능 출력은 점프 명령, 분기 명령, 및 함수(function) 호출 명령에 변경을 가하게 된다.
그러한 변경들은 인트라 모듈(intra-module) 참조로 인해 다시 다른 모듈들로 연속된다. 결과적으로, 그러한 연속되는 변경들은 전혀 다른 바이너리들(원본 바이너리 파일과 업그레이드된 바이너리 파일)을 생기게 한다. 그것은 원본 바이너리 파일과 업그레이드된 바이너리 파일 사이에 생성되는 델타 파일의 크기를 매우 커지게 한다. 따라서 기존의 링커들은 소프트웨어 코드에서의 참조의 공간 지역성(spatial locality)을 그대로 유지하지 않을 뿐만 아니라, 실제로 변경들을 연속시킨다. 그리하여, 소프트웨어에서의 상대적으로 작은 변경들이 실행 가능 출력에서의 큰 변경들로 귀결되게 된다. 그러한 특성들은 FOTA 적용을 위한 델타 파일들을 생성하는데 매우 부적당하다.
따라서 당해 기술 분야에서는, 무선 이동국의 오버-더-에어 업그레이드를 수행하기 위한 델타 파일을 생성하는 개선된 장치 및 방법이 요구되고 있다. 특히, 델타 파일의 크기와 델타 파일을 생성하는데 소용되는 시간 사이의 최적의 균형 맞춤을 제공하는 델타 파일 생성 방법이 요구되고 있다. 좀더 구체적으로, 소프트웨어 파일에서의 작은 변경들이 최종의 실행 가능 출력에서의 큰 변경들로 연속되는 것을 방지하는 개선된 링커가 요구되고 있다.
본 발명은 업그레이드된 파일과 원본 파일의 세그먼트들로부터 거의 선형 시간으로 델타 파일들을 생성하는 개선된 알고리즘을 제공한다. 그러한 알고리즘은 바이너리 코드(목적 코드)에 존재하는 참조의 공간 지역성도 이용한다. 또한, 본 발명은 그리디 파일(또는 또 다른 델타 알고리즘)을 기반으로 하여 선형 시간 및 공간으로 실행될 수 있다. 아울러, 본 발명은 다른 선행 기술의 알고리즘들에 비해 플래시 메모리 기록 동작들의 수를 줄이는 델타 파일들을 생성한다.
또한, 본 발명은 목적 코드에서의 참조의 공간 지역성을 이용하여 더 좋은 실행 가능 출력을 내는 개선된 링커를 제공한다. 그러한 개선된 링커는 향후의 소프트웨어 확장을 수용하기 위해 목적 코드들(즉, 모듈들, 함수들) 사이에 공간들을 자동으로 예비 할당한다. 또한, 그 개선된 링커는 이전 실행 가능 출력(즉, 원본 바이너리 파일)을 분석하여 함수들과 변수들의 주소 할당을 그대로 유지하고, 그럼으로써 2개의 순차적 실행 가능 파일들 사이의 변경들을 최소화시킨다.
전술된 선행 기술의 결함들을 다루기 위해, 본 발명은 원본 파일과 업그레이드된 파일 사이의 차이들을 기반으로 하여 복합 델타 파일을 생성하는 방법을 제공하는 것을 그 주목적으로 한다. 본 발명의 바람직한 실시예에 따르면, 그러한 복합 델타 파일 생성 방법은 1) 원본 바이너리 파일을 크기 N인 다수의 제1 세그먼트들로 세그먼트화하는 단계; 2) 업그레이드된 바이너리 파일을 크기 N인 다수의 제2 세그먼트들로 세그먼트화하는 단계; 3) 원본 바이너리 파일로부터 나온 제1 세그먼트와 업그레이드된 바이너리 파일로부터 나온 제1 세그먼트 사이의 제1 세트의 차이들을 검출하는 단계; 및 4) 검출된 제1 세트의 차이들로부터 제1 델타 파일을 생성하는 단계를 포함한다.
도 1은 본 발명의 원리에 따라 공간 효율적 델타 파일 생성 알고리즘을 사용하여 이동국을 업그레이드할 수 있는 예시적 무선 네트워크를 나타낸 도면,
도 2는 본 발명의 원리에 따른 업그레이드 서버의 선택된 부분들을 나타낸 도면,
도 3은 본 발명의 예시적 실시예에 따른 복합 델타 파일을 나타낸 도면,
도 4는 본 발명의 원리에 따라 델타 파일들을 생성하는 새로운 알고리즘을 나타낸 흐름도.
본 발명의 일 실시예에 따르면, 본 복합 델타 파일 생성 방법은 4) 원본 바이너리 파일로부터 나온 제2 세그먼트와 업그레이드된 바이너리 파일로부터 나온 제2 세그먼트 사이의 제2 세트의 차이들을 검출하는 단계; 및 5) 검출된 제2 세트의 차이들로부터 제2 델타 파일을 생성하는 단계를 더 포함한다.
본 발명의 다른 실시예에 따르면, 본 복합 델타 파일 생성 방법은 제1 델타 파일과 제2 델타 파일을 결합하여 복합 델타 파일을 생성하는 단계를 더 포함한다.
본 발명의 또 다른 실시예에 따르면, 본 복합 델타 파일 생성 방법은 복합 델타 파일을 원본 파일의 사본을 포함하고 있는 타깃 장치에 전송하는 단계를 더 포함한다.
본 발명의 또 다른 실시예에 따르면, 본 복합 델타 파일 생성 방법은 제1 델타 파일과 제2 델타 파일로부터 데이터 검증치를 생성하는 단계; 및 데이터 검증치를 복합 델타 파일에 부가하는 단계를 더 포함한다.
본 발명의 또 다른 실시예에 따르면, 데이터 검증치는 순환 중복 검사(cyclic redundancy check)(CRC) 값을 포함한다.
본 발명의 또 다른 실시예에 따르면, 제1 델타 파일을 생성하는 단계와 제2 델타 파일을 생성하는 단계는 그리디 알고리즘을 사용하여 델타 파일들을 생성한다.
본 발명의 또 다른 실시예에 따르면, 원본 바이너리 파일을 세그먼트화하는 단계는 타깃 장치와 연관된 메모리 맵 입력 파일을 기반으로 하여 원본 바이너리 파일을 세그먼트화하는 부 단계(sub-step)를 포함한다.
본 발명의 일 실시예에 따르면, 업그레이드된 파일을 세그먼트화하는 단계는 타깃 장치와 연관된 메모리 맵 입력 파일을 기반으로 하여 업그레이드된 바이너리 파일을 세그먼트화하는 부 단계를 포함한다.
전술된 선행 기술의 결함들을 다루기 위해, 본 발명은 원본 바이너리 파일로부터 타깃 장치에 설치된 원본 바이너리 파일의 사본을 대체하는데 적합한 업그레이드된 파일을 생성하는 세그먼트화 링커를 제공하는 것을 그 주목적으로 한다. 본 발명의 바람직한 실시예에 따르면, 본 세그먼트화 링커는 다수의 객체들, 원본 바 이너리 파일, 및 타깃 장치와 연관된 메모리 맵 입력 파일을 입력들로서 수신하되, 원본 바이너리 파일에서의 코드의 참조의 공간 지역성의 적어도 일부를 업그레이드된 바이너리 파일에서 그대로 유지한다.
본 발명의 일 실시예에 따르면, 본 세그먼트화 링커는 원본 바이너리 파일에서 참조의 공간 지역성을 갖는 객체들의 레이아웃을 규정짓는 링커 가이드라인 파일을 입력으로서 더 수신한다.
본 발명의 다른 실시예에 따르면, 본 세그먼트화 링커는 링커 가이드라인 파일을 사용하여 업그레이드된 바이너리 파일에서의 연속되는 주소 참조들의 전파를 제한한다.
본 발명의 또 다른 실시예에 따르면, 본 세그먼트화 링커는 링커 가이드라인 파일을 사용하여 원본 바이너리 파일에서 참조의 공간 지역성을 갖는 객체들의 순서를 업그레이드된 바이너리 파일에서 그대로 유지한다.
본 발명의 또 다른 실시예에 따르면, 본 세그먼트화 링커는 링커 가이드라인 파일을 사용하여 업그레이드된 바이너리 파일에서 객체들과 모듈들 사이에 공간을 예비 할당한다.
본 발명의 또 다른 실시예에 따르면, 본 세그먼트화 링커는 모듈들과 객체들의 주소 공간 밖에 있는 외부 함수들과 객체들의 수를 기반으로 하여 업그레이드된 바이너리 파일에서 객체들과 모듈들 사이에 공간을 예비 할당한다.
본 발명의 또 다른 실시예에 따르면, 본 세그먼트화 링커는 프로그래머가 제공하는 발견적 값을 기반으로 하여 업그레이드된 파일에서 객체들과 모듈들 사이에 공간을 예비 할당한다.
본 발명의 일 실시예에 따르면, 본 세그먼트화 링커는 원본 바이너리 파일로부터 나온 정보를 사용하여 업그레이드된 파일에서 변수들과 함수들의 주소 할당을 그대로 유지한다.
아래의 본 발명의 상세한 설명에 착수하기에 앞서, 본 특허 출원 명세서의 전반에 걸쳐 사용되는 특정의 단어 및 문구의 정의에 관해 밝히는 것이 좋을 듯하다. "포함한다(include 및 comprise)"란 용어뿐만 아니라 그 파생어(derivatives thereof)는 한정이 아닌 포함을 의미한다. "또는(or)"이란 용어는 "및/또는(and/or)"의 의미를 포괄한다. "관련된(associated with)" 및 "그와 관련된(associated therewith)"이란 문구뿐만 아니라 그 파생 문구는 "포함한다(include)", "포함된다(be included within)", "상호 연결한다(interconnect with)", "내재한다(contain)", "내재된다(be contained within)", "연결한다(connect to or with)", "결합한다(couple to or with)", "소통될 수 있다(be communicable with)", "협력한다(cooperate with)", "삽입한다(interleave)", "병치한다(juxtapose)", "근접한다(be proximate to)", "접경한다(be bound to or with)", "구비한다(have)", " 특성을 갖는다(have a property of)" 등을 의미할 수 있다. "제어기(controller)"란 용어는 하나 이상의 동작을 제어하는 임의의 장치, 시스템, 또는 그 부품을 의미하는데, 그러한 장치는 하드웨어, 펌웨어, 소프트웨어, 또는 그들 중의 2개 이상의 조합으로 구현될 수 있다. 어떤 특정의 제어기와 관련된 기능성은 로컬로든 원격으로든 집중화되거나 분산될 수 있음을 유의해야 할 것이다. 특정의 단어 및 문구에 관한 그러한 정의는 본 특허 명세서의 전반에 걸쳐 규정되는 것으로, 당업계의 통상의 지식을 가진 자는 비록 대다수의 경우는 아닐지라도 많은 경우에 있어 그러한 정의가 그처럼 정의된 단어 및 문구의 선행 사용에는 물론 향후의 사용에도 적용되는 것임을 알아야 할 것이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
이후로 논할 도 1 내지 도 4 및 본 특허 출원 명세서에서 본 발명의 원리를 기술하는데 사용되는 각종의 실시예들은 단지 예시적인 것들에 불과하지, 결코 본 발명의 범위를 한정하는 것으로 해석되어서는 안 된다. 당업자라면 본 발명의 원리가 적절하게 구축된 어떠한 무선 네트워크에서라도 구현될 수 있음을 알 것이다.
도 1은 본 발명의 원리에 따라 공간 효율적 델타 파일 생성 알고리즘을 사용하여 이동국을 업그레이드할 수 있는 예시적 무선 네트워크를 나타낸 것이다. 본 발명은 인터넷 또는 그와 유사한 광역 IP 네트워크에 의해 업그레이드 서버(도시를 생략함) 연동 무선 네트워크(100)에서 실행된다. 대안적으로, 업그레이드 서버는 일반 전화 교환 네트워크(PSTN)에 의해 무선 네트워크(100)와 연동할 수도 있다.
무선 네트워크(100)는 기지국들(BS)(101, 102, 103) 중의 하나를 각각 포함하는 다수의 셀 사이트들(121 내지 123)을 포함한다. 기지국들(101 내지 103)은 예컨대 IS-2000 표준(즉, CDMA2000)에 따른 코드 분할 다중 접속(CDMA) 채널들을 통해 다수의 이동국들(MS)(111 내지 114)과 통신한다. 본 발명의 바람직한 실시예에 서는, 이동국들(111 내지 114)이 2개 이상의 CDMA 채널들을 통해 데이터 트래픽 및/또는 음성 트래픽을 동시에 수신할 수 있다. 이동국들(111 내지 114)은 무선 링크들을 경유하여 기지국들(101 내지 103)과 통신할 수 있는 임의의 적절한 장치들(예컨대, 통상의 휴대폰들, PCS 핸드셋들, 개인 디지털 보조(PDA) 핸드셋들, 휴대용 컴퓨터들, 원격 계측 장치들)일 수 있다.
본 발명은 이동 장치들에 한정되는 것이 아니다. 본 발명은 고정 무선 단말들을 비롯한 다른 타입의 무선 접속 단말들도 포함한다. 단순화를 위해, 이후로 단지 이동국만을 보이고 논하기로 한다. 하지만, 청구 범위 및 이후의 설명에서 "이동국"이란 용어를 사용하는 것은 엄밀한 의미의 이동 장치들(예컨대, 휴대폰들, 무선 랩탑들)과 고정 무선 단말들(예컨대, 무선 능력을 갖춘 기기 모니터)의 모두를 포괄하려는 의도의 것임을 알아야 할 것이다.
점선들은 기지국들(101 내지 103)이 위치한 셀 사이트들(121 내지 123)의 개략적인 경계들을 나타낸 것이다. 셀 사이트들은 단지 예시와 설명을 위한 목적으로 대략 원형으로 도시되어 있다. 셀 사이트들은 선택된 셀 구성과 천연 및 인공 장애물들에 의존하여 다른 불규칙한 형태들을 가질 수 있음을 확실히 알아야 할 것이다.
당해 기술 분야에 잘 알려진 바와 같이, 각각의 셀 사이트(121 내지 123)는 다수의 섹터들로 이뤄지는데, 여기서 기지국과 연동하는 지향성 안테나가 각각의 섹터를 비추고 있다. 도 1의 실시예는 셀의 중심에 기지국을 도시하고 있다. 대안적 실시예는 지향성 안테나들을 섹터들의 코너에 위치시킬 수 있다. 본 발명의 시 스템은 어떤 특정의 셀 사이트 구성에 한정되는 것이 아니다.
본 발명의 일 실시예에서는, 각각의 BS(101, 102, 103)가 기지국 제어기(BSC)와 하나 이상의 기지국 송수신 서브 시스템(BTS)으로 이뤄진다. 기지국 제어기와 기지국 송수신 서브 시스템은 당업자에게 잘 알려져 있는 것들이다. 기지국 제어기는 무선 통신 네트워크 내의 지정된 셀들에 대한, 기지국 송수신 서브 시스템들을 비롯한 무선 통신 자원들을 관리하는 장치이다. 기지국 송수신 서브 시스템은 각각의 셀 사이트에 위치하는 RF 송수신기, 안테나, 및 기타의 전기 장비들을 포함한다. 그러한 장비는 공조 유닛, 가열 유닛, 전원, 전화선 인터페이스, 및 RF 송신기와 RF 수신기를 포함할 수 있다. 본 발명의 동작을 설명함에 있어서의 단순 명료화를 위해, 각각의 셀(121, 122, 123)에서의 기지국 송수신 서브 시스템들과 그 각각의 기지국 송수신 서브 시스템과 연관된 기지국 제어기를 총괄하여 BS(101), BS(102), 및 BS(103)으로 각각 나타내기로 한다.
BS(101), BS(102), 및 BS(103)는 서로와 일반 전화 교환 네트워크(PSTN)(도시를 생략함) 사이에서 통신선(131) 및 이동 교환국(MSC)(140)을 경유하여 음성 및 데이터 신호들을 전송한다. BS(101), BS(102), 및 BS(103)는 통신선(1310과 패킷 데이터 서버 노드(PDSN)(150)를 경유하여 인터넷으로 패킷 데이터와 같은 데이터 신호들을 전송하기도 한다. 패킷 제어 함수(PCF) 유닛(190)은 기지국들(101 내지 103)과 PDSN(150) 사이에서의 데이터 패킷의 흐름을 제어한다. PCF 유닛(190)은 PDSN(150)의 일부로서, MSC(140)의 일부로서, 또는 도 1에 도시된 바와 같이 PDSN(150)과 통신하는 자립형 장치로서 구축될 수 있다. 통신선(131)은 MSC(140)와 BS(101), BS(102), 및 BS(103) 사이에서 전송되는 제어 신호들을 위한 접속 경로도 제공하는데, 그 접속 경로는 MSC(140)와 BS(101), BS(102), 및 BS(103) 사이의 음성 및 데이터 회로들에 대한 접속을 수립한다.
통신선(131)은 T 라인, T 라인, 광섬유 링크, 네트워크 패킷 데이터 백본 접속로, 또는 다른 임의의 타입의 데이터 접속로와 같은 임의의 적절한 접속 수단일 수 있다. 통신선(131)은 BSC에 있는 각각의 보코더를 MSC(140)에 있는 교환 소자에 연결한다. 통신선(131)을 통한 접속로들은 아날로그 음성 신호들 또는 디지털 음성 신호들을 펄스 코드 변조(PCM) 포맷, 인터넷 프로토콜(IP) 포맷, 비동기 전송 모드(ATM) 포맷 등으로 전송한다.
MSC(140)는 무선 네트워크와 PSDN 또는 인터넷과 같은 외부 네트워크에서 서비스들과 가입자들 사이의 조정을 제공하는 교환 장치이다.
MCS(140)는 당업자에게 잘 알려져 있다. 본 발명의 일부 실시예들에서는, 통신선(131)이 각각의 데이터 링크가 BS(101), BS(102), 및 BS(103) 중의 하나를 MSC(140)와 연동시키는 복수의 상이한 링크들일 수 있다.
그러한 예시적 무선 네트워크(100)에서, MS(111)는 셀 사이트(121)에 위치하여 BS(101)와 통신하고 있다. MS(113)는 셀 사이트(122)에 위치하여 BS(102)와 통신하고 있다. MS(114)는 셀 사이트(123)에 위치하여 BS(103)과 통신하고 있다. MS(112)는 셀 사이트(123)의 가장자리에 가깝게 위치하여 MS(112)에 근접한 방향 화살표에 의해 지시된 바와 같이 셀 사이트(123) 쪽으로 이동하고 있다. 특정 시점에, MS(112)가 셀 사이트(121)를 벗어나 셀 사이트(123) 내로 이동함에 따라, 핸드 오프가 일어나게 된다.
이동국들(111 내지 114)은 본 발명의 원리에 따라 델타 파일들을 생성하는 업그레이드 서버(도시를 생략함)에 의해 업그레이드된다. 공간 효율적 델타 파일들은 업그레이드 서버로부터 기지국들(101 내지 103)로 전송되고, 이어서 오버-더-에어로 이동국들(111 내지 114)에 전송된다.
도 2는 본 발명의 원리에 따른 업그레이드 서버(200)의 선택된 부분들을 나타낸 것이다. 업그레이드 서버(200)는 목적 파일들(205), 링크 가이드라인들(210), 세그먼트화 링커(215), 메모리 맵 입력 파일(220), 업그레이드된 바이너리 파일(또는 새 바이너리 파일)(235), 세그먼트화 델타 파일 생성기(245), 및 복합 델타(Δ) 파일(250)을 포함한다. 세그먼트화 링커(215)는 목적 파일들(205), 라이브러리들, 및 주소 상세들을 입력으로서 취하여 실행 가능 파일, 즉 업그레이드된 바이너리 파일(230)을 생성하는 애플리케이션 프로그램이다. 이후에 더욱 상세히 논할 바와 같이, 본 발명의 바람직한 실시예에서는, 세그먼트화 링커(215)가 메모리 맵 입력 파일(220)과 링커 가이드라인 파일(210)을 부가의 입력으로서 사용하여 소프트웨어에서의 참조의 공간 지역성을 기반으로 삼아 업그레이드된 실행 가능 바이너리 파일(230)을 생성한다.
본 발명의 원리에 따르면, 세그먼트화 델타 파일 생성기(245)는 업그레이드된 바이너리 파일(230)과 원본 바이너리 파일(235)의 각각의 것을 다수의 세그먼트들로 세그먼트화함으로써 시간 및 공간 효율적으로 델타 파일들을 생성한다. 이어서, 세그먼트화 델타 파일 생성기(245)는 업그레이드된 바이너리 파일(230)과 원본 바이너리 파일(235)로부터 나온 해당 세그먼트들로부터 다수의 델타 파일들을 생성한다. 이어서, 세그먼트화 델타 파일 생성기(245)는 그와 같이 생성된 다수의 델타 파일들을 복합 델타 파일(250)(또는 마크로 델타 파일(250))로 결합하고, 그 복합 델타 파일(250)이 이동국들(111 내지 114)에 전송된다.
전술된 바를 달성하기 위해, 세그먼트화 델타 파일 생성기(245)는 메모리 맵 입력 파일(220)을 입력으로서 사용하여 델타 파일들을 어떻게 세그먼트화할 것인지를 결정한다. 통상적으로, 세그먼트화 링커(215)와 같은 링커 프로그램이 메모리 맵 입력 파일(220)을 사용하여 목적 파일들로부터 실행 기능 파일을 생성한다. 메모리 맵 입력 파일(220)은 타깃 장치(본 경우에는, 이동국)의 메모리 공간을 어떻게 사용할 것인지를 규정짓는다. 따라서 메모리 맵 입력 파일(220)은 예컨대 이동국(111)에서의 플래시 메모리 및 랜덤 액세스 메모리(RAM)의 주소 공간을 규정짓고, 예컨대 데이터 파일들, 프로그램들, 부트 ROM, 자유 공간, 및 스택 경계들의 위치들을 규정짓는다.
통상적으로, 링커가 메모리 맵 입력 파일(220)을 사용하여 목적 파일들로부터 실행 가능 파일을 생성하고, 다른 필요 파일들을 겹쳐 쓰기 함이 없이 타깃 장치에 있는 메모리에 그 실행 가능 파일을 안전하게 저장하는 한편, 세그먼트화 델타 파일 생성기(245)도 역시 메모리 맵 입력 파일(220)을 사용하여 본 발명의 원리에 따라 세그먼트화 델타 파일들을 생성한다. 이어서, 세그먼트화 델타 파일들을 복합 델타 파일(또는 마크로 델타 파일)로 결합할 수 있고, 순환 중복 검사(CRC) 필드를 부가하여 복합 델타 파일에 들어있는 데이터를 검증할 수 있다. 전술된 바 와 같이, 선행 기술의 그리디 알고리즘에 따라 델타 파일을 생성하는데 소요되는 시간은 업그레이드된 파일과 원본 파일의 결합 크기가 커짐에 따라 지수 함수적으로 증가한다. 본 발명의 원리에 따라 업그레이드된 파일과 원본 파일을 세그먼트화하고 나서 세그먼트화 델타 파일들을 생성하는 데에는 전체의 업그레이드된 파일과 원본 파일로부터 직접 단일의 델타 파일을 생성하는데 드는 것보다 훨씬 적은 처리 시간이 소요된다. 본 발명을 상충시키는 것은 본 발명에 의해 생성된 복합 델타 파일들이 완전한 크기의 업그레이드된 파일과 원본 파일에 작용하는 종래의 그리디 알고리즘에 의해 생성된 최소 크기의 델타 파일보다 다소 더 크다는 점이다.
도 3은 본 발명의 예시적 실시예에 따른 예시적 복합 델타 파일(250)을 나타낸 것이다. 그러한 복합 델타 파일(250)은 개개의 델타 파일들(311 내지 316)과 CRC 필드(317)를 포함한다. 델타 파일들(311 내지 316)의 각각의 것은 업그레이드된 바이너리 파일(230)로부터 나온 하나의 세그먼트와 원본 바이너리 파일(235)로부터 나온 하나의 세그먼트로부터 생성된다. 세그먼트화 델타 파일 생성기(245)가 델타 파일들(311 내지 316)을 생성한 후에, 그 세그먼트화 델타 파일 생성기(245)는 델타 파일들(311 내지 316) 모두에 대하여 CRC 값을 계산하고, 그 계산된 CRC 값을 CRC 필드(317)에서 델타 파일들(311 내지 316)에 첨부한다. 그리고 나서, 복합 델타 파일(250)을 이동국들(111 내지 114)에 전송한다.
도 4는 본 발명의 원리에 따라 델타 파일들을 생성하는 새로운 알고리즘을 설명하는 흐름도(400)를 나타낸 것이다. 처음에, 세그먼트화 델타 파일 생성기(245)가 원본(옛) 바이너리 파일(235)과 업그레이드된(새) 바이너리 파일(230)을 크기 N인 세그먼트들로 분할한다(프로세스 단계 405). 본 발명의 바람직한 실시예에 따르면, 세그먼트화 델타 파일 생성기(245)는 이동국들(111 내지 114)에 있는 메모리의 플래시 섹터 크기들에 따라 N의 값을 결정한다. 세그먼트화 델타 파일 생성기(245)는 메모리 맵 입력 파일(220)에 들어있는 정보에 따라 플래시 섹터 크기를 결정한다.
다음으로, 각각의 세그먼트에 대해, 세그먼트화 델타 파일 생성기(245)가 그리디 알고리즘과 같은 통상의 델타 파일 생성 알고리즘을 실행하여 각각의 세그먼트에 대한 델타 명령과 데이터를 계산한다(프로세스 단계 410). 세그먼트화 델타 파일 생성기(245)는 델타 명령에서의 기록 충돌을 제거하여 델타 파일이 타깃 이동국에서 제위치에 적용될 수 있도록 한다(프로세스 단계 415). 다음으로, 세그먼트화 델타 파일 생성기(245)는 델타 파일 명령과 데이터를 인코딩한다(프로세스 단계 420). 세그먼트화 델타 파일 생성기(245)는 원본 바이너리 파일(235)과 업그레이드된 바이너리 파일(230)의 모든 세그먼트들이 처리될 때까지 프로세스 단계 410, 프로세스 단계 415, 및 프로세스 단계 420을 반복한다(프로세스 단계 425).
본 발명은 원본 바이너리 파일(235)과 업그레이드된 바이너리 파일(230)에서의 공간 긴밀성을 활용하는데, 그것은 코드의 블록들이 대부분 2개의 관련 파일들에서 동일한 오프셋들로 동일하기 일쑤이기 때문이다. 다시 말하면, 동일한 소프트웨어의 2개의 유사한 버전들이 통상적으로 코드에서 유사한 오프셋들로 높은 유사도를 보인다는 것이다. 본 발명은 주지의 "그리디 알고리즘"(Reichenberger에 의한)을 적용하여 델타들을 계산할 수 있지만, 다른 잘 알려진 알고리즘들을 사용할 수도 있다. 본 발명은 그리디 알고리즘을 능가하는 개선을 제공하면서도 여전히 이론적으로 최적인 델타 파일 크기의 이점을 대부분 견지하고 있다. 각각의 세그먼트의 끝에서 COPY와 ADD 명령을 함께 행함으로써, 플래시 기록 동작의 수가 최소화되게 된다. 통상의 델타 패치 알고리즘들은 COPY와 ADD 명령을 별개로 다루는데 2-패스 접근 방안(two-pass approach)을 필요로 한다. 본 발명은 거의 선형의 자원 요구(메모리와 시간)를 갖기 때문에, 큰 바이너리들(예컨대, > 4MB)이 결정적 양의 시간(deterministic amount of time)으로 실행되게 된다.
본 발명의 원리에 따른 세그먼트화 링커(또는 스마트 링커)를 사용함으로써, 세그먼트화 델타 파일 생성기(245)에 의해 생성되는 델타 파일들의 품질이 한층 더 개선되게 된다. 본 발명은 세그먼트화 링커에 부가의 지능을 부가하여 원본 바이너리 파일(235)과 업그레이드된 바이너리 파일(230) 사이의 참조의 공간 지역성을 그대로 유지한다. 그것은 주로 연속되는 주소 참조들의 전파를 제한하려고 이뤄진다.
세그먼트화 링커(215)는 목적 파일들(205), 메모리 맵 입력 파일(220), 업그레이드된 바이너리 파일(230), 및 원본 바이너리 파일(235)을 입력으로서 수신하는 이외에, 링커 가이드라인 파일(210)도 역시 부가의 입력으로서 수신한다. 본 발명의 바람직한 실시예에 따르면, 링커 가이드라인 파일(210)은 참조의 공간 지역성을 갖는 객체들을 기술하는 스크립트로 이뤄진다. 세그먼트화 링커(215)는 링커 가이드라인 파일(210)을 사용하여 소프트웨어 프로그래머에 의해 지정된 순서를 그대로 유지한다.
아울러, 세그먼트화 링커(215)는 링커 가이드라인 파일(210)을 사용하여 객 체들과 모듈들(함수들을 비롯한) 사이에 공간들을 예비 할당한다. 그러한 예비 할당된 공간들은 "홀(hole)들"로 지칭될 수 있다. 세그먼트화 링커(215)는 논-로컬(non-local) 심벌 참조들의 양, 즉 모듈(또는 목적 코드)의 밖에 있는 외부 함수들과 변수들의 수를 기반으로 하여 예비 할당되는 공간을 계산한다. 오직 세그먼트화 링커(215)만이 논-로컬 참조들의 수 및 타입을 알고 있다. 따라서 세그먼트화 링커(215)는 그 정보를 이용하여 더 좋은 실행 가능 출력(즉, 업그레이드된 바이너리 파일(230))을 생성한다.
예비 할당된 공간(또는 홀)의 양은 그들 함수들/목적 파일들에 대한 향후의 변경을 수용한, 프로그래머가 제공하는 발견적 값에 의해 수정될 수도 있다. 따라서 소프트웨어가 예컨대 버그 픽스로 인해 향후에 수정된다면, 홀 공간은 특정 모듈에서 함수들과 변수들의 주소들을 변경하는 것이 다른 모듈로 연속되지 않도록 하는 것을 보장하게 된다. 세그먼트화 링커(215)는 변수들과 함수들에의 동일한 주소 할당을 그대로 유지하기 위해 이전의 실행 가능 출력(즉, 원본 바이너리 파일(235))을 검사하기도 한다. 그것은 연속되는 변경들을 한층 더 감소시킨다.
그 결과, 세그먼트화 링커(215)는 FOTA 적용에 이상적으로 들어맞는 바이너리 출력 파일(즉, 업그레이드된 바이너리 파일(230))을 생성하게 되는데, 왜냐하면 업그레이드된 바이너리 파일(230)과 원본 바이너리 파일(235)과 같은 2개의 순차적 실행 가능 출력들 사이의 차이들이 상대적으로 작은 성향을 나타내기 때문이다. 따라서 세그먼트화 델타 파일 생성기(245)(또는 임의의 다른 통상적 델타 파일 생성기)에 의해 생성된 델타 파일의 크기가 최소화되게 된다.
이상, 본 발명을 예시적 실시예를 가지고 설명하였지만, 다양한 변경들 및 수정들이 당업자에게 제안될 수도 있다. 첨부된 청구의 범위의 범위에 속하는 것들과 같은 그러한 변경들과 수정들을 본 발명이 포괄하는 것으로 하고자 한다. 따라서 발명의 범위는 설명된 실시 예에 의해 정할 것이 아니고, 특허청구범위와 특허청구범위의 균등한 것에 의해 정하여져야 한다.
본 발명은 무선 통신 분야에 적용될 수 있으며, 특히 무선 단말이 오버-더-에어 방식을 통해 업그레이드를 하는 경우에 적용될 수 있다.

Claims (30)

  1. 복합 델타 파일을 생성하는 방법에 있어서,
    원본 바이너리 파일을 크기 N인 다수의 세그먼트들로 세그먼트화하는 단계와,
    업그레이드된 바이너리 파일을 크기 N인 다수의 세그먼트들로 세그먼트화하는 단계와,
    상기 원본 바이너리 파일을 세그먼트화한 세그먼트들 중 제1 세그먼트와 상기 업그레이드된 바이너리 파일을 세그먼트화한 세그먼트들 중 제2 세그먼트 사이의 차이들을 검출하는 단계와,
    상기 검출된 제1 세그먼트 및 제2 세그먼트 사이의 차이들로부터 제1 델타 파일을 생성하는 단계를 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  2. 제1항에 있어서,
    상기 원본 바이너리 파일을 세그먼트화한 세그먼트들 중 제3 세그먼트와, 상기 업그레이드된 바이너리 파일을 세그먼트화한 세그먼트들 중 제4 세그먼트 사이의 차이들을 검출하는 단계와,
    상기 검출된 제3 세그먼트 및 제4 세트먼트 사이의 차이들로부터 제2 델타 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  3. 제2항에 있어서,
    상기 제1 델타 파일과 상기 제2 델타 파일을 결합하여 복합 델타 파일을 생성하는 단계를 더 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  4. 제3항에 있어서,
    상기 복합 델타 파일을, 상기 복합 델타 파일에 대한 원본 파일의 사본을 저장하고 있는 타깃 장치에 전송하는 단계를 더 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  5. 제4항에 있어서,
    상기 제1 델타 파일 및 상기 제2 델타 파일 모두에 대한 데이터 검증치를 생성하는 단계와,
    상기 생성된 데이터 검증치를 상기 복합 델타 파일에 부가하는 단계를 더 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  6. 제5항에 있어서,
    상기 데이터 검증치는 순환 중복 검사(CRC) 값을 포함하는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  7. 제6항에 있어서,
    상기 제1 델타 파일과 제2 델타 파일은 그리디 알고리즘을 사용하여 생성되는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  8. 제7항에 있어서,
    상기 원본 바이너리 파일을 세그먼트화하는 단계는,
    상기 타깃 장치에 대한 메모리 맵 입력 파일을 이용하여 상기 원본 바이너리 파일을 세그먼트화하는 부 단계를 포함하되,
    상기 원본 바이너리 파일로부터 세그먼트화된 상기 세그먼트들의 크기 N은, 상기 타깃 장치에 기 구비된 플래시 메모리의 섹터 크기에 의해 결정되는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  9. 제8항에 있어서,
    상기 업그레이드된 바이너리 파일을 세그먼트화하는 단계는,
    상기 타깃 장치에 대한 메모리 맵 입력 파일을 이용하여 상기 업그레이드된 바이너리 파일을 세그먼트화하는 부 단계를 포함하되,
    상기 업그레이드된 바이너리 파일로부터 세그먼트화된 상기 세그먼트들의 크기 N은, 상기 타깃 장치에 구비된 플래시 메모리의 섹터 크기에 의해 결정되는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  10. 제9항에 있어서,
    상기 타깃 장치는 무선 이동국을 포함하고,
    상기 복합 델타 파일은 무선 네트워크를 경유하여 상기 무선 이동국에 전송되는 것을 특징으로 하는 복합 델타 파일 생성 방법.
  11. 복합 델타 파일의 데이터 구조를 기록한 기록매체에 있어서,
    원본 바이너리 파일을 크기 N인 다수의 세그먼트들로 세그먼트화하고, 업그레이드된 바이너리 파일을 크기 N인 다수의 세그먼트들로 세그먼트화하며, 상기 원본 바이너리 파일을 세그먼트화한 세그먼트들 중 제1 세그먼트와 상기 업그레이드된 바이너리 파일을 세그먼트화한 세그먼트들 중 제2 세그먼트 사이의 차이들을 검출하고, 상기 검출된 제1 세그먼트 및 제2 세그먼트 사이의 차이들로부터 제1 델타 파일을 생성하여 저장하는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  12. 제11항에 있어서, 상기 기록매체는,
    상기 원본 바이너리 파일을 세그먼트화한 세그먼트들 중 제3 세그먼트와, 상기 업그레이드된 바이너리 파일을 세그먼트화한 세그먼트들 중 제4 세그먼트 사이의 차이들을 검출하고, 상기 검출된 제3 세그먼트 및 제4 세그먼트 사이의 차이들로부터 제2 델타 파일을 생성하는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  13. 제12항에 있어서, 상기 기록매체는,
    상기 제1 델타 파일과 상기 제2 델타 파일을 결합하여 복합 델타 파일을 생성하는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  14. 삭제
  15. 제13항에 있어서, 상기 기록매체는,
    상기 제1 델타 파일 및 제2 델타 파일 모두에 대한 데이터 검증치를 생성하고, 상기 생성된 데이터 검증치를 상기 복합 델타 파일에 부가하는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  16. 제15항에 있어서,
    상기 데이터 검증치는 순환 중복 검사(CRC) 값을 포함하는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  17. 제16항에 있어서,
    상기 제1 델타 파일과 상기 제2 델타 파일은 그리디 알고리즘을 사용하여 생성되는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  18. 제17항에 있어서, 상기 기록매체는,
    상기 원본 바이너리 파일을, 해당 타깃 장치에 대한 메모리 맵 입력 파일을 이용하여 상기 다수의 세그먼트들로 세그먼트화하고,
    상기 세그먼트들의 크기 N은, 상기 타깃 장치에 기 구비된 플래시 메모리의 섹터 크기에 의해 결정되는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  19. 제18항에 있어서, 상기 기록매체는,
    상기 업그레이드된 바이너리 파일을, 상기 타깃 장치에 대한 메모리 맵 입력 파일을 이용하여 다수의 세그먼트들로 세그먼트화하고,
    상기 세그먼트들의 크기 N은, 상기 타깃 장치에 구비된 플래시 메모리의 섹터 크기에 의해 결정되는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  20. 제19항에 있어서,
    상기 타깃 장치는 무선 이동국을 포함하고,
    상기 복합 델타 파일은 무선 네트워크를 경유하여 상기 무선 이동국에 전송되는 것을 특징으로 하는 복합 델타 파일의 데이터 구조를 기록한 기록매체.
  21. 복합 델타 파일을 생성하는 장치에 있어서,
    원본 바이너리 파일 및 타깃 장치에 대한 메모리 맵 입력 파일을 입력들로서 수신하고, 상기 원본 바이너리 파일에서의 코드에 대응된 참조의 공간 지역성 중 적어도 일부를 업그레이드된 바이너리 파일에서 그대로 유지하면서, 상기 원본 바이너리 파일 및 업그레이드된 바이너리 파일을 이용하여 상기 타깃 장치에 저장된 원본 바이너리 파일의 사본을 대체하기 위한 업그레이드 파일을 생성하는 세그먼트화 링커와,
    상기 원본 바이너리 파일 및 업그레이드 바이너리 파일 각각을 다수의 세그먼트들로 세그먼트화하고, 상기 원본 바이너리 파일 및 업그레이드된 바이너리 파일로부터 세그먼트화된 상기 세그먼트들로부터 다수의 델타 파일들을 생성하고, 상기 생성된 다수의 델타 파일들을 이동국들에 전송하기 위한 하나의 복합 델타 파일로 결합하는 세그먼트화 델타 파일 생성기를 포함하는 것을 특징으로 하는 복합 델타 파일 생성 장치.
  22. 제21항에 있어서, 상기 세그먼트화 링커는,
    상기 원본 바이너리 파일에서 상기 참조의 공간 지역성을 갖는 객체들의 레이아웃을 규정짓는 링커 가이드라인 파일을 입력으로서 더 수신하는 것을 특징으로 하는 복합 델타 파일 생성 장치.
  23. 제22항에 있어서, 상기 세그먼트화 링커는,
    상기 링커 가이드라인 파일을 사용하여 상기 업그레이드된 바이너리 파일에서의 연속되는 주소 참조들의 전파를 제한하는 것을 특징으로 하는 복합 델타 파일 생성 장치.
  24. 제23항에 있어서, 상기 세그먼트화 링커는,
    상기 링커 가이드라인 파일을 사용하여 상기 원본 바이너리 파일에서 상기 참조의 공간 지역성을 갖는 객체들의 순서를 상기 업그레이드된 바이너리 파일에서 그대로 유지하는 것을 특징으로 하는 복합 델타 파일 생성 장치.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020067024957A 2004-06-10 2005-06-10 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법 Expired - Fee Related KR100849301B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020067024957A KR100849301B1 (ko) 2004-06-10 2005-06-10 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US60/578,685 2004-06-10
US60/578,684 2004-06-10
US11/125,663 2005-05-10
US11/125,665 2005-05-10
KR1020067024957A KR100849301B1 (ko) 2004-06-10 2005-06-10 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20070018093A KR20070018093A (ko) 2007-02-13
KR100849301B1 true KR100849301B1 (ko) 2008-07-29

Family

ID=41640431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067024957A Expired - Fee Related KR100849301B1 (ko) 2004-06-10 2005-06-10 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100849301B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10332006B2 (en) 2016-12-15 2019-06-25 At&T Intellectual Property I, L.P. Optimization of over-the-air file distribution for connected cars based upon a heuristic scheduling algorithm

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101019822B1 (ko) * 2008-12-04 2011-03-04 포항공과대학교 산학협력단 무선 센서 네트워크에서 센서 노드 소프트웨어 업데이트 방법 및 장치
CN112925553A (zh) * 2021-03-18 2021-06-08 上海创功通讯技术有限公司 一种嵌入式设备的系统升级方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US667170A (en) * 1900-10-20 1901-01-29 Hermann A Klemm Needle-thread take-up for sewing-machines.
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US20030212712A1 (en) * 2002-05-13 2003-11-13 Jinsheng Gu Byte-level file differencing and updating algorithms
US20040152455A1 (en) * 2003-02-05 2004-08-05 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US667170A (en) * 1900-10-20 1901-01-29 Hermann A Klemm Needle-thread take-up for sewing-machines.
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US20030212712A1 (en) * 2002-05-13 2003-11-13 Jinsheng Gu Byte-level file differencing and updating algorithms
US20040152455A1 (en) * 2003-02-05 2004-08-05 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10332006B2 (en) 2016-12-15 2019-06-25 At&T Intellectual Property I, L.P. Optimization of over-the-air file distribution for connected cars based upon a heuristic scheduling algorithm
US11176458B2 (en) 2016-12-15 2021-11-16 At&T Intellectual Property I, L.P. Optimization of over-the-air file distribution for connected cars based upon a heuristic scheduling algorithm

Also Published As

Publication number Publication date
KR20070018093A (ko) 2007-02-13

Similar Documents

Publication Publication Date Title
US7529779B2 (en) Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US7673300B2 (en) Segmented linker using spatial locality of reference for over-the-air software updates
US8255892B2 (en) Flash memory programming
US8572597B2 (en) Apparatus and method for performing an over-the-air software update in a dual processor mobile station
KR100663538B1 (ko) 무선 단말에 있어서 델타 파일에 따른 무선(ota)소프트웨어 업그레이드 시스템 및 방법
KR100584443B1 (ko) 소프트웨어 콤포넌트 다운로드 관리 기능을 가지는 이동 단말기와 그 방법
US6742025B2 (en) System and method for server managed modification of operating system data stored within a network device
US5930704A (en) Reconfigurable subscriber terminal for a wireless telecommunications system
CN101026826B (zh) 用于提供在无线装置中使用的整体映像的系统和方法
US20040133887A1 (en) Apparatus and method for upgrading software of a wireless mobile station
KR20040015823A (ko) 피어 투 피어 핸드셋 통신 시스템 및 방법
US20090172338A1 (en) Feedback linker for increased delta performance
KR20070057667A (ko) 패치 최소화 도구용 시스템 및 방법
CN111459506B (zh) 深度学习平台集群的部署方法、装置、介质及电子设备
CN108829431A (zh) iOS应用程序的更新方法、装置、设备及存储介质
CN106569863B (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
KR100849301B1 (ko) 무선 네트워크에서의 오버-더-에어 업그레이드용 델타파일의 효율적 생성 장치 및 방법
CN101002406A (zh) 高效生成用于无线网络中的空中下载升级的增量文件的装置和方法
WO2005122439A1 (en) Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
US20220085907A1 (en) Data transceiving method and device, and wavelength configuration method and device
CN115454575B (zh) jar包转换并自动加载的方法、装置、设备及存储介质
CN111464398A (zh) 自组织无中心的网络高层协议测试方法、设备及存储介质
CN107783778B (zh) 一种基于特征值查表法的增量升级方法
CN115514611A (zh) 消息处理方法、装置、设备及存储介质
US20100142480A1 (en) Method of seamless vertical handover for sdr terminal and sca based sdr terminal for the same

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20061127

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20071218

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080609

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080723

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080723

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110629

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20120628

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20120628

Start annual number: 5

End annual number: 5

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee