Dynamic microcode for embedded processors
AssigneeConexant Systems, Inc.
InventorCharles P. Siska
Life of this patent
Estimating the term…
Loading patent…
AssigneeConexant Systems, Inc.
InventorCharles P. Siska
Estimating the term…
A method of compressing programs, especially those used in embedded systems, is provided which allows greater program compression without significantly degrading system performance. The method provides: first, examining an entire program for sequences of lines of code, which may or may not constitute basic blocks; determining which sequences are identical or are identical except for a variation in a predetermined number of Elements within the sequence; designating and saving one uncompressed version of the identified sequences in memory as a specific microroutine, saving the Elements which differentiate the saved sequence from the various nearly identical sequences; and, assembling a version of the program consisting of original lines of code and microcalls. The microcall is a line of code which instructs a processor to implement a previously saved microroutine and provides an indication as to which Elements in the microroutine are to be replaced and where to find the substitute Elements. In a preferred embodiment, the Elements replaced are parameters such as register values. However, the present invention may be suitably modified to accommodate substitutions of any portion of a code including sequences and/or lines of instruction, operands, opcodes, or the like. Additionally, in an alternative embodiment, the determination of when the end of a microroutine code has been reached is facilitated by providing a single bit indicator table which corresponds to the lines of code stored as microroutines in memory, such that when the single bit reads a particular value, the last instruction of the microroutine has been reached.
A method of compressing a program utilized by a processor in controlling the operation of an associated device, wherein said program has at least one original sequence of lines of code and each line of code comprises at least one Element;
A method of implementing a compressed program, wherein said compressed program comprises a program sequence of lines of code, each of said lines of code comprising at least one Element, said lines of code including at least one non-compressed instruction and at least one microcall, wherein each incidence of said microcall references at least one microroutine, each of said microroutines providing a starting location of a second sequence of lines of code and each line of code of said second sequence comprising at least one Element;
A program compressed from an original program sequence of lines of code utilized in a processor comprising a central processing unit, memory, and at least one interface with an associated device, wherein said program comprises:
Dependencies are inferred from the claim text.