Method for reducing binary image update package sizes
First Claim
1. A method for converting an original binary image into a new binary image, said method comprising:
- a. Determining differences between the original image and the new images by a binary comparison thereof;
b. Expressing the differences between the original image and the new image as a set of instructions comprising one or more candidate COPY operations;
c. Re-expressing each candidate COPY operation as a RELOCATE operation, wherein each said RELOCATE operation comprising two operands whereby a first operand expresses a number of instructions to be relocated and a second operand expresses a number of data values to be relocated;
d. Replacing in the instruction set each candidate COPY operation with one or more corresponding RELOCATE operations if said RELOCATE operation'"'"'s total length progresses further through the original and new images than the corresponding COPY operation;
e. Populating an address translation table which comprises a sorted list of addresses and delta values corresponding to the original image and the new image; and
f. Encoding an update package to include (i) the instruction set comprised of a plurality of COPY and RELOCATE operations and (ii) the address translation table.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for reducing the update package size used to convert an original image into a new image based on the differences between the two images. From comparison of original and new images, an update package is generated which includes ADD and COPY operations. This design introduces a RELOCATE operation. The update encoder attempts to re-express submitted COPY operations with one or more RELOCATE operations whose total length exceeds that of the original COPY. If this is the case, the RELOCATE operation(s) have progressed further through the images than the original COPY operation, thus producing a smaller update package. Each individual RELOCATE operation includes a number of instructions and a number of data items to be relocated.
43 Citations
16 Claims
-
1. A method for converting an original binary image into a new binary image, said method comprising:
-
a. Determining differences between the original image and the new images by a binary comparison thereof;
b. Expressing the differences between the original image and the new image as a set of instructions comprising one or more candidate COPY operations;
c. Re-expressing each candidate COPY operation as a RELOCATE operation, wherein each said RELOCATE operation comprising two operands whereby a first operand expresses a number of instructions to be relocated and a second operand expresses a number of data values to be relocated;
d. Replacing in the instruction set each candidate COPY operation with one or more corresponding RELOCATE operations if said RELOCATE operation'"'"'s total length progresses further through the original and new images than the corresponding COPY operation;
e. Populating an address translation table which comprises a sorted list of addresses and delta values corresponding to the original image and the new image; and
f. Encoding an update package to include (i) the instruction set comprised of a plurality of COPY and RELOCATE operations and (ii) the address translation table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12)
-
-
11. A method of updating an original image to create a new image, said method comprising:
-
a. Generating an update package by comparing the original image and the new image and using result of said comparison to encode an instruction set comprised of;
i. A plurality of operations, including at least one RELOCATE operation comprising two operands whereby a first operand expresses a number of instructions to be relocated and a second operand expresses a number of data values to be relocated, and ii. An address translation table comprising a sorted list of addresses and delta values corresponding to the original image and the new image; and
b. Applying the update package by interpreting the instruction set to direct the updating of the original image to create the new image in an order specified by the plurality of operations and associated address translation table values. - View Dependent Claims (13)
-
-
14. A method for updating an original image into a new image, said method comprising:
-
a. Generating an instruction set including one or more RELOCATE operations, wherein each said RELOCATE operation performs a COPY operation of the same length as the complete RELOCATE operation, then patching all branch instructions within a copied code section and all data values within a copied data section using information from an address translation table;
b. Populating the address translation table with a sorted list of addresses and delta values, whereby each address relates to the original image and the corresponding new image address is found by adding the delta value to the address; and
c. Encoding to create an update package comprising the instruction set and the address translation table.
-
-
15. A method for creating and applying an update package to efficiently modify an original image to create a new image, wherein said new image is generated by applying instructions contained within said update package modifying an original image, said method comprising:
-
a. Applying a differencing technique to the original image and new image;
b. Identifying distinctive patterns of code/data sections common to the original image and new image;
c. Moving code/data sections common to the original and new image;
d. Identifying transfers of control within said moved code/data section;
e. Expressing moving said code/data sections through the address space to form the new image;
f. Building the update package containing instructions to direct movement of said code/data sections and any associated transfer of control within moved sections. - View Dependent Claims (16)
-
Specification