US20060055951A1

Efficient method and system for reducing the time to apply update package

Claim Score by NHIP

Read claim 9, the broadest

Abstract

The present invention reduces the time required to apply an update package for generating a new image from an original image within a non-volatile memory device by effectively reducing the number of flash blocks requiring modification by use of whatever free space is available at the end of the image as required. A set of software development guidelines and an improved firmware development tool chain (i.e. compiler, linker, etc.) are utilized to produce new firmware for the client device. A firmware programmer follows or applies this set of guidelines when developing new features and fixes for distribution via a new firmware image. The improved firmware development tool chain executes on a collection of function blocks, available from the development of the original image, used to create new firmware source code, which when complied and linked yields a new image, prior to the delta or differencing processing.

US20060055951A1, drawing sheet 1
Sheet 1 of 3

Term

5.1 yearsto projected expiry

Projected expiry 5 November 2031, counted from filing; an application has no term until it is granted.

  1. Priority and filed
  2. Published
  3. Today
  4. Projected expiry

15 claims: 4 independent, 11 dependent

  1. 1
    A method for reducing data movement within an original image by creating a new image using one or more function blocks, comprised of software modules or subroutines, from the original image, said method comprising:a. Ordering function blocks by placing software modules or subroutines that are likely to change only infrequently together at the start of the new image where possible;b. Maintaining the order of object files specified to a linker at image build time, and when possible adding one or more new object files at the end of the new image;and c. Inserting one or more expansion gaps to reserve free space within the new image to allow individual sections of the image to grow (or shrink) without moving unrelated content further up the new image.
  2. 5
    A method for reducing data movement within an original image by creating a new image using one or more function blocks, comprised of software modules or subroutines, from the original image, said method comprising:a. Replacing a plurality of commonly called utility procedures with one or more jump tables;b. Inserting an expansion gap, to reserve free space within the new image, at the beginning of each jump table;and c. Positioning a plurality of jump tables at the beginning of the new image.
  3. 9
    Broadest claimClaim Score 82, broad(NHIP)A software development system for creating a new image, said software development system comprising:a. A collection of function blocks with starting addresses;b. A software tool chain complier and linker;and c. A copy of new source code.
  4. 13
    An updating system for transforming an original image into a new image, wherein said original image resides within blocks of a block-structured non-volatile memory device contained in a client device, said updating system comprising:a. An update generator that produces an update package resulting from a comparison between the original image and the new image whereby said comparison selects and encodes an instruction set comprising a plurality of ADD, COPY and MOVE operations for each of the memory blocks;and b. An update decoder resident on the client device, whereby said update decoder interprets the instruction set of the update package and applies the update a package to update the memory blocks.