InnovationQ will be updated on Sunday, April 29, from 10am - noon ET. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method of compressing firmware images

IP.com Disclosure Number: IPCOM000129862D
Original Publication Date: 2005-Oct-07
Included in the Prior Art Database: 2005-Oct-07
Document File: 1 page(s) / 38K

Publishing Venue



A method of improving compression of firmware by adjusting reserved fields in instruction codes

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

Page 1 of 1

Method of compressing firmware images

Firmware is required by embedded systems. These systems have limited resources for the storage of their control program and so compression of this firmware is often employed to reduce the amount of non-volatile storage required to hold it. Any improvement in the compression of this firmware is advantageous as it allows more code to be stored, or storage to be freed up for other uses.

    The idea here is to modify the firmware instructions in certain ways to get a better compression than would have been possible with the original firmware. As the compression of the firmware is performed only once, this process can be processing-intensive, as long as the uncompression, which is done on the embedded system, can be done in the same time or slightly longer than before the changes were made.

    The code is altered by adjusting the firmware to use instructions that are equivalent to the original ones, but with different instruction opcodes.

    Different modifications are used and the code compressed using whatever modification results in the highest compression ratio.

    This results in code that is either no harder or slightly harder (due to a problem with some processors, see below) to decompress than the original code, but has at least the same compression as the compressed original firmware.

    In processor architectures there are many instructions that may be machine coded in different ways.

    For instance, a NOP instruction may be replaced by an instructi...