Memory controller including a hardware compression and decompression engine for managing system memory and graphical operations
First Claim
1. A method, comprising:
- receiving, at a memory controller, a request from a processor for a first block of data for use in data processing operations;
identifying a second block of data stored in memory as uncompressed data, wherein said identifying is performed by the memory controller in response to determining that the first block of data is stored in the memory as compressed data;
freeing a portion of the memory by compressing, using the memory controller, the second block of data and storing the compressed second block of data in the memory;
decompressing, using the memory controller, the first block of data and storing the decompressed first block of data in the memory; and
performing the data processing operations using the decompressed first block of data.
2 Assignments
0 Petitions
Accused Products
Abstract
An integrated memory controller (IMC) may sit on the main CPU bus or a high speed system peripheral bus and couple to system memory. The IMC may use a lossless data compression and decompression scheme for improved performance. The IMC may also include microcode for specific decompression of particular data formats such as digital video and digital audio. Compressed data may be decompressed in the IMC and stored into system memory or saved in the system memory in compressed format. Internal memory mapping may allow for format definition spaces which may define the format of the data and the data type to be read or written. Software overrides may be placed in applications software in systems that desire to control data decompression at the software application level.
61 Citations
20 Claims
-
1. A method, comprising:
-
receiving, at a memory controller, a request from a processor for a first block of data for use in data processing operations; identifying a second block of data stored in memory as uncompressed data, wherein said identifying is performed by the memory controller in response to determining that the first block of data is stored in the memory as compressed data; freeing a portion of the memory by compressing, using the memory controller, the second block of data and storing the compressed second block of data in the memory; decompressing, using the memory controller, the first block of data and storing the decompressed first block of data in the memory; and performing the data processing operations using the decompressed first block of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
one or more processors; memory; and a memory controller coupled to the one or more processors and to the memory, wherein the memory controller is configured to; receive a request from the one or more processors for a first block of data; in response to determining that the first block of data is stored in the memory as compressed data, identify a second block of data stored in the memory as uncompressed data; free a portion of the memory by compressing the second block of data and storing the compressed second block of data in the memory; decompress the first block of data; and store the decompressed first block of data in the memory. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. An apparatus, comprising:
-
means for storing data; means for requesting a first block of data that is stored as compressed data in the means for storing data; means for freeing a portion of the means for storing data, responsive to a determination that the first block of data is stored as compressed data, by compressing a second block of data stored therein, and by storing the compressed second block of data in the means for storing data; and means for decompressing the first block of data and causing the decompressed first block of data to be stored in the means for storing data. - View Dependent Claims (18, 19, 20)
-
Specification