Memory controller including a hardware compression and decompression engine for managing system memory
First Claim
1. A method for managing memory in a system including a CPU, a system memory for storing applications and data, and a memory controller coupled between the CPU and the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware compression engine, the method comprising:
- the memory controller receiving an uncompressed block of data to be stored in the system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format;
the hardware compression engine in the memory controller compressing the uncompressed block of data to produce a compressed block of data;
the memory controller storing the compressed block of data in the system memory after said compressing the uncompressed block of data.
4 Assignments
0 Petitions
Accused Products
Abstract
An integrated memory controller (IMC) which includes data compression and decompression engines for improved performance. The memory controller (IMC) of the present invention preferably sits on the main CPU bus or a high speed system peripheral bus such as the PCI bus and couples to system memory. The IMC preferably uses a lossless data compression and decompression scheme. Data transfers to and from the integrated memory controller of the present invention can thus be in either two formats, these being compressed or normal (non-compressed). The IMC also preferably includes microcode for specific decompression of particular data formats such as digital video and digital audio. Compressed data from system I/O peripherals such as the hard drive, floppy drive, or local area network (LAN) are decompressed in the IMC and stored into system memory or saved in the system memory in compressed format. Thus, data can be saved in either a normal or compressed format, retrieved from the system memory for CPU usage in a normal or compressed format, or transmitted and stored on a medium in a normal or compressed format. Internal memory mapping allows for format definition spaces which 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. The integrated data compression and decompression capabilities of the IMC remove system bottle-necks and increase performance. This allows lower cost systems due to smaller data storage requirements and reduced bandwidth requirements. This also increases system bandwidth and hence increases system performance. Thus the IMC of the present invention is a significant advance over the operation of current memory controllers.
65 Citations
34 Claims
-
1. A method for managing memory in a system including a CPU, a system memory for storing applications and data, and a memory controller coupled between the CPU and the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware compression engine, the method comprising:
-
the memory controller receiving an uncompressed block of data to be stored in the system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format;
the hardware compression engine in the memory controller compressing the uncompressed block of data to produce a compressed block of data;
the memory controller storing the compressed block of data in the system memory after said compressing the uncompressed block of data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. (New) A method for managing memory in a system including a CPU, a system memory for storing applications and data, and a memory controller coupled between the CPU and the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware decompression engine, the method comprising:
-
the memory controller receiving a compressed block of data from the system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format;
the hardware decompression engine in the memory controller decompressing the compressed block of data to produce an uncompressed block of data;
the memory controller providing the uncompressed block of data after said decompressing the compressed block of data. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. (New) A method for managing memory in a system including a CPU, a system memory for storing applications and data, and a memory controller coupled between the CPU and the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware compression engine, the method comprising:
-
the memory controller receiving an uncompressed block of data from the system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in an uncompressed format;
the hardware compression engine in the memory controller compressing the uncompressed block of data to produce a compressed block of data;
the memory controller storing the compressed block of data in the system memory after said compressing the uncompressed block of data. - View Dependent Claims (30)
-
-
31. (New) A method for managing memory in a system including a CPU, a system memory for storing applications and data, and a memory controller coupled between the CPU and the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware decompression engine, the method comprising:
-
the memory controller receiving a compressed block of data from the system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format;
the hardware decompression engine in the memory controller decompressing the compressed block of data to produce an uncompressed block of data;
the memory controller storing the uncompressed block of data in the system memory after said decompressing the compressed block of data. - View Dependent Claims (32)
-
-
33. (New) A system with improved memory management, the system comprising:
-
a CPU;
a system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format; and
a memory controller coupled to the CPU and to the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware compression engine;
wherein the memory controller is operable to receive an uncompressed block of data to be stored in the system memory;
wherein the hardware compression engine in the memory controller is operable to compress the uncompressed block of data to produce a compressed block of data;
wherein the memory controller is operable to store the compressed block of data in the system memory after the hardware compression engine compresses the uncompressed block of data.
-
-
34. (New) A system with improved memory management, the system comprising:
-
a CPU;
a system memory, wherein the system memory is a volatile memory which stores at least a portion of its data in a compressed format; and
a memory controller coupled to the CPU and to the system memory, wherein the memory controller performs memory control functions for the system memory, wherein the memory controller includes a hardware decompression engine;
wherein the memory controller is operable to receive a compressed block of data from the system memory;
wherein the hardware decompression engine in the memory controller is operable to decompress the compressed block of data to produce an uncompressed block of data;
wherein the memory controller is operable to provide the uncompressed block of data to a device after the hardware decompression engine decompresses the compressed block of data.
-
Specification