Memory compression method and apparatus for heterogeneous processor architectures in an information handling system
First Claim
Patent Images
1. A method of compressing and decompressing information in a heterogeneous multi-core processor, the method comprising:
- processing information by a first processor core exhibiting a first architecture, the first processor core including a first data path exhibiting a first data width;
processing information by a second processor core exhibiting a second architecture, the first processor core and the second processor core being in the same heterogeneous multi-core processor, the second processor core including a second data path, the second data path exhibiting a second data width that is wider than the width of the first data path;
compressing, by the second processor core, information to be sent by the heterogeneous multi-core processor to a system memory for storage therein as compressed information;
decompressing, by the second processor core, compressed information received from the system memory for use as uncompressed information by the heterogeneous processor, the second processor core being dedicated to compressing and decompressing operations;
storing, by the heterogeneous multi-core processor, both compressed information and uncompressed information in the system memory, the system memory including a compressed memory portion that stores the compressed information and an uncompressed memory portion that stores the uncompressed information, the system memory acting as a shared memory for both the compressed information and the uncompressed information, the system memory including a movable boundary between the compressed memory portion and the uncompressed memory portion, the movable boundary enabling changing of the ratio of the amount of compressed information in the compressed memory portion to the amount of uncompressed information in the uncompressed memory portion;
receiving, by the second processor core, a request to decompress compressed information stored in the compressed memory portion;
testing to determine if memory space is available in the uncompressed memory portion to store resultant decompressed information generated by performing the request to decompress;
compressing, by the second processor core, uncompressed information in the uncompressed memory portion to provide resultant compressed information,transferring the resultant compressed information to the compressed memory portion for storage if the testing step determines that sufficient memory space is not available in the uncompressed memory portion for the resultant decompressed information;
performing, by the second processor core, the request to decompress to generate the resultant decompressed information; and
storing the resultant decompressed information in the uncompressed memory portion.
3 Assignments
0 Petitions
Accused Products
Abstract
The disclosed heterogeneous processor compresses information to more efficiently store the information in a system memory coupled to the processor. The heterogeneous processor includes a general purpose processor core coupled to one or more processor cores that exhibit an architecture different from the architecture of the general purpose processor core. In one embodiment, the processor dedicates a processor core other than the general purpose processor core to memory compression and decompression tasks. In another embodiment, system memory stores both compressed information and uncompressed information.
28 Citations
8 Claims
-
1. A method of compressing and decompressing information in a heterogeneous multi-core processor, the method comprising:
-
processing information by a first processor core exhibiting a first architecture, the first processor core including a first data path exhibiting a first data width; processing information by a second processor core exhibiting a second architecture, the first processor core and the second processor core being in the same heterogeneous multi-core processor, the second processor core including a second data path, the second data path exhibiting a second data width that is wider than the width of the first data path; compressing, by the second processor core, information to be sent by the heterogeneous multi-core processor to a system memory for storage therein as compressed information; decompressing, by the second processor core, compressed information received from the system memory for use as uncompressed information by the heterogeneous processor, the second processor core being dedicated to compressing and decompressing operations; storing, by the heterogeneous multi-core processor, both compressed information and uncompressed information in the system memory, the system memory including a compressed memory portion that stores the compressed information and an uncompressed memory portion that stores the uncompressed information, the system memory acting as a shared memory for both the compressed information and the uncompressed information, the system memory including a movable boundary between the compressed memory portion and the uncompressed memory portion, the movable boundary enabling changing of the ratio of the amount of compressed information in the compressed memory portion to the amount of uncompressed information in the uncompressed memory portion; receiving, by the second processor core, a request to decompress compressed information stored in the compressed memory portion; testing to determine if memory space is available in the uncompressed memory portion to store resultant decompressed information generated by performing the request to decompress; compressing, by the second processor core, uncompressed information in the uncompressed memory portion to provide resultant compressed information, transferring the resultant compressed information to the compressed memory portion for storage if the testing step determines that sufficient memory space is not available in the uncompressed memory portion for the resultant decompressed information; performing, by the second processor core, the request to decompress to generate the resultant decompressed information; and storing the resultant decompressed information in the uncompressed memory portion. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An information handling system (IHS) comprising:
-
a heterogeneous processor including; a first processor core exhibiting a first architecture, the first processor core including a first data path exhibiting a first data width; a second processor core exhibiting a second architecture that compresses information to provide compressed information and that decompresses compressed information to provide uncompressed information, the first processor core and the second processor core being situated in the same heterogeneous multi-core processor, the second processor core including a second data path, the second data path exhibiting a second data width that is wider than the width of the first data path; a bus coupling the first processor core to the second processor core; and a system memory, coupled to the heterogeneous processor, that stores the compressed information and the uncompressed information, the system memory acting as a shared memory that stores both the compressed information and the uncompressed information, the system memory including a compressed memory portion that stores the compressed information and an uncompressed memory portion that stores the uncompressed information, the system memory including a movable boundary between the compressed memory portion and the uncompressed memory portion, the movable boundary enabling changing of the ratio of the amount of compressed information in the compressed memory portion to the amount of uncompressed information in the uncompressed memory portion ; the second processor core being dedicated to compressing and decompressing operations, the second processor core being configured to; receive a request to decompress compressed information stored in the compressed memory portion; test to determine if memory space is available in the uncompressed memory portion to store resultant decompressed information generated by performing the request to decompress; compress uncompressed information in the uncompressed memory portion to provide resultant compressed information and transfer the resultant compressed information to the compressed memory portion for storage if the test determines that sufficient memory space is not available in the uncompressed memory portion for the resultant decompressed information; perform the request to decompress to generate the resultant decompressed information; and store the resultant decompressed information in the uncompressed memory portion. - View Dependent Claims (7, 8)
-
Specification