On-chip decompression engine
First Claim
1. A method for entering data into a register file of a processing module, the processing module including a processor and an application specific decompression engine distinct from the processor, the method comprising:
- storing a first set of data into an intermediate memory, the first set of data comprising instructions and a set of compressed data including compressed initial register values to be stored in the register file of the processing module;
reading from the intermediate memory the compressed initial register values by the decompression engine;
retrieving a first set of one or more instructions from the first set of data by the decompression engine;
decompressing the compressed initial register values by the decompression engine to produce a set of decompressed initial values, wherein the decompressing is performed in accordance with the retrieved instructions;
transferring the decompressed initial values over an internal bus of the processing module to the register file of the processing module, andsaving in the register file the transferred decompressed initial values.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention are directed to a microcontroller which includes a Register Load Assist engine. The microcontroller can include no or minimal non-volatile memory which stores boot data. Thus, most of the boot data can be stored at a non-volatile memory external to the microcontroller. An external circuit can read the externally positioned non-volatile memory and send compressed boot data to the microcontroller. The boot data can be originally stored in compressed form in the external non-volatile memory or it can be compressed by the external circuit. The boot data can be received by the microcontroller and saved in an intermediate location in the microcontroller'"'"'s internal volatile memory. The RLA engine can then uncompress the boot data and store various portions of it in their final destinations (such as, for example, in respective registers).
21 Citations
45 Claims
-
1. A method for entering data into a register file of a processing module, the processing module including a processor and an application specific decompression engine distinct from the processor, the method comprising:
-
storing a first set of data into an intermediate memory, the first set of data comprising instructions and a set of compressed data including compressed initial register values to be stored in the register file of the processing module; reading from the intermediate memory the compressed initial register values by the decompression engine; retrieving a first set of one or more instructions from the first set of data by the decompression engine; decompressing the compressed initial register values by the decompression engine to produce a set of decompressed initial values, wherein the decompressing is performed in accordance with the retrieved instructions; transferring the decompressed initial values over an internal bus of the processing module to the register file of the processing module, and saving in the register file the transferred decompressed initial values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of loading initialization values into a microcontroller comprising a processor and a decompression engine, the method comprising:
-
receiving a set of data from a source external to the microcontroller by a communications interface of the microcontroller, the set of data including instructions and compressed initialization values, the compressed initialization values to be loaded into a register file of the microcontroller; saving the set of data in a memory by the communications interface; activating the decompression engine by the communications interface; decompressing at least a portion of the set of data by the decompression engine in accordance with the instructions to obtain decompressed initialization values corresponding to the compressed initialization values; transferring the decompressed initialization values over an internal bus of the microcontroller to a register file of the microcontroller, and saving in the register file the transferred decompressed initialization values. - View Dependent Claims (17, 18, 19, 20)
-
-
21. An electronic device comprising:
-
a processing module further including a processor having an internal bus and a register file, a memory connected to the processor over the internal bus, and a decompression engine connected to the processor and the memory over the internal bus and comprising application specific electronics configured to retrieve a set of data comprising a set of one or more instructions and compressed data including initialization values from the memory, execute the one or more instructions in order to decompress the set of compressed data, decompress the set of compressed data to obtain a set of uncompressed data, transferring the uncompressed data over the internal bus of the processor to the register file of the processor, and the register file operative to save the set of uncompressed data to registers within the register file; and a compressed data source external to the processing module, the data source including the set of data and configured to send the set of data to the processing module. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. An electronic device comprising:
-
a processing module further comprising a processor having an internal bus and a register file, means for storing data in a memory connected to the processor, retrieval means for retrieving from the memory a set of data comprising one or more instructions and a set of compressed data, wherein the compressed data includes initialization values to be stored in the register file of the processor, decompression means for executing the one or more instructions to decompress the set of compressed data to obtain a set of uncompressed data, means for transferring the decompressed data over the internal bus to the register file, and storage means for storing the set of uncompressed data in registers of the register file; and external data source means for sending the set of data to the processing module, the external data source means being external to the processing module.
-
-
33. A micro controller comprising:
-
a processor; a register file; a receiving means for receiving a set of data from a source external to the microcontroller, the set of data including one or more instructions and compressed data including compressed initialization values; a storage means for storing the set of data in a memory; a decompression means for decompressing the compressed data in accordance with the one or more instructions to obtain a set of decompressed data including decompressed initialization values, the decompression means further transmitting the decompressed initialization values the register file; and a decompressed data storage means for storing the set of decompressed data into a destination memory; wherein the decompression means are distinct from the processor.
-
-
34. A mobile telephone comprising:
-
a processing module further comprising a processor having an internal bus and a register file, a memory connected to the processor over the internal bus, and a decompression engine connected to the processor and the memory over the internal bus and comprising application specific electronics configured to retrieve a set of data comprising a set of one or more instructions and compressed data including initialization values from the memory, execute the one or more instructions in order to decompress the set of compressed data, decompress the set of compressed data to obtain a set of uncompressed data, transferring the uncompressed data over the internal bus of the processor to the register file of the processor, and save the set of uncompressed data to registers within the register file; and a compressed data source external to the processing module, comprising the set of data and configured to send the set of data to the processing module.
-
-
35. A digital audio player comprising:
-
a processing module further comprising a processor having an internal bus and a register file, a memory connected to the processor over the internal bus, and a decompression engine connected to the processor and the memory over the internal bus and comprising application specific electronics configured to retrieve a set of data comprising a set of one or more instructions and compressed data including initialization values from the memory, execute the one or more instructions in order to decompress the set of compressed data, decompress the set of compressed data to obtain a set of uncompressed data, transferring the uncompressed data over the internal bus of the processor to the register file of the processor, and save the set of uncompressed data to registers within the register file; and a compressed data source external to the processing module, comprising the set of data and configured to send the set of data to the processing module.
-
-
36. A method for entering data into a register file of a processing module, the processing module including a processor and a decompression engine, the method comprising:
-
storing in an intermediate memory, compressed initial register values to be stored in the register file of the processing module; reading from the intermediate memory the compressed initial register values by the decompression engine; decompressing the compressed initial register values by the decompression engine to produce a set of decompressed initial values; transferring the decompressed initial values to the register file of the processing module, and saving in the register file the transferred decompressed initial values. - View Dependent Claims (37, 38, 39)
-
-
40. An electronic device comprising:
a processing module further including a processor having an internal bus and a register file, a memory connected to the processor over the internal bus, and a decompression engine connected to the processor and the memory over the internal bus and configured to retrieve compressed initialization values from the memory, decompress the compressed initialization values to obtain a set of uncompressed initialization values, transfer the uncompressed initialization to the register file of the processor, and save the set of uncompressed initialization values to registers within the register file. - View Dependent Claims (41, 42, 43, 44, 45)
Specification