Update package generation based on analysis of bank dependency
First Claim
Patent Images
1. A communication device comprising:
- a communication interface for receiving a package of update information from a remote system; and
at least one processor communicatively coupled to memory within or external to the at least one processor, wherein the memory is updated from a first version of code to a second version of the code as a plurality of banks, each bank comprising a plurality of contiguous memory locations,wherein the update package comprises difference information used to generate an updated bank of the second version using the first version of code and bank order information that specifies a bank order for generating each of the updated banks in a bank by bank fashion;
wherein the difference information is encoded as a sequence of instructions for execution by code in the memory, and wherein the sequence of instructions comprises instructions of a first type that generate part of the updated second version of code using part of the first version of code and instructions of a second type that generate part of the updated second version of code from code in the package of update information; and
wherein the bank order for updating the plurality of banks is optimized to minimize an amount of data associated with instructions of the second type, wherein the optimizing of the bank order includes;
determining an optimal sequence for updating a subset of the banks of the plurality of memory banks;
generating a new subset of the banks of the plurality of memory banks by adding a previously unselected memory bank to the subset of the banks of the plurality of memory banks; and
determining an optimal sequence for updating the new subset of the banks of the plurality of memory banks.
6 Assignments
0 Petitions
Accused Products
Abstract
Aspects of the present invention may be seen in an electronic device network that employs a generator to generate update packages and a corresponding update agent in the electronic device to update its firmware/software. The generator may employ bank order dependency analysis techniques to determine optimum bank orders. The generator may make use of an optimum bank order to generate update packages that are efficient and compact.
104 Citations
16 Claims
-
1. A communication device comprising:
-
a communication interface for receiving a package of update information from a remote system; and at least one processor communicatively coupled to memory within or external to the at least one processor, wherein the memory is updated from a first version of code to a second version of the code as a plurality of banks, each bank comprising a plurality of contiguous memory locations, wherein the update package comprises difference information used to generate an updated bank of the second version using the first version of code and bank order information that specifies a bank order for generating each of the updated banks in a bank by bank fashion; wherein the difference information is encoded as a sequence of instructions for execution by code in the memory, and wherein the sequence of instructions comprises instructions of a first type that generate part of the updated second version of code using part of the first version of code and instructions of a second type that generate part of the updated second version of code from code in the package of update information; and wherein the bank order for updating the plurality of banks is optimized to minimize an amount of data associated with instructions of the second type, wherein the optimizing of the bank order includes; determining an optimal sequence for updating a subset of the banks of the plurality of memory banks; generating a new subset of the banks of the plurality of memory banks by adding a previously unselected memory bank to the subset of the banks of the plurality of memory banks; and determining an optimal sequence for updating the new subset of the banks of the plurality of memory banks. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of updating memory in a communication device from a first code version to a second code version, the memory arranged as a plurality of banks, each bank comprising a plurality of contiguous memory locations, the method comprising:
-
receiving a package of update information from a remote system, wherein the package of update information comprises difference information and bank order information that specifies a bank order for generating each of the updated banks; and generating each updated bank of the second version of code from the first version of code in a bank by bank fashion, using the difference information, according to the bank order information, wherein the difference information is encoded as a sequence of instructions for execution by code in the memory, and wherein the sequence of instructions comprises instructions of a first type that generate part of the updated second version of code using part of the first version of code and instructions of a second type that generate part of the updated second version of code from code in the package of update information; and wherein the bank order for updating the plurality of banks is optimized to minimize an amount of data associated with instructions of the second type, wherein the optimizing of the bank order includes; determining an optimal sequence for updating a subset of the banks of the plurality of memory banks; generating a new subset of the banks of the plurality of memory banks by adding a previously unselected memory bank to the subset of the banks of the plurality of memory banks; and determining an optimal sequence for updating the new subset of the banks of the plurality of memory banks. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A system that operates to update memory in a communication device from a first code version to a second code version, the memory arranged as a plurality of banks, each bank comprising a plurality of contiguous memory locations, the system comprising:
one or more processors operably coupled to the memory and to interface circuitry for communicating over a network, the one or more processors operating to, at least; receive a package of update information from a remote system via the network, wherein the package of update information comprises difference information and bank order information that specifies a bank order for generating each updated bank; identify a not yet updated bank, in agreement with the bank order information; generate an updated second code version of the identified bank, using the first code version and the difference information; and in a bank by bank fashion, repeat identifying and generating, until all banks in the bank order have been updated to the second code version, wherein the difference information is encoded as a sequence of instructions for execution by code in the memory, and wherein the sequence of instructions comprises instructions of a first type that generate part of the updated second version of code using part of the first version of code and instructions of a second type that generate part of the updated second version of code from code in the package of update information; and wherein the bank order for updating the plurality of banks is optimized to minimize an amount of data associated with instructions of the second type, wherein the optimizing of the bank order includes; determining an optimal sequence for updating a subset of the banks of the plurality of memory banks; generating a new subset of the banks of the plurality of memory banks by adding a previously unselected memory bank to the subset of the banks of the plurality of memory banks; and determining an optimal sequence for updating the new subset of the banks of the plurality of memory banks. - View Dependent Claims (14, 15, 16)
Specification