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.
- 2. The method of claim 1,
wherein said compressing the block of data and storing the compressed block of data in the system memory utilizes less space in the system memory than storing the uncompressed block of data in the system memory.
- 3. The method of claim 1,
wherein said receiving comprises the memory controller receiving the uncompressed block of data from the system memory.
- 4. The method of claim 1,
wherein said receiving comprises the memory controller receiving the uncompressed block of data from the CPU.
- 5. The method of claim 1,
wherein the system includes a nonvolatile memory; wherein said receiving comprises the memory controller receiving the uncompressed block of data from the nonvolatile memory.
- 6. The method of claim 1,
wherein the memory controller includes a hardware decompression engine; the method further comprising: the memory controller receiving the compressed block of data from the system memory; the hardware decompression engine in the memory controller decompressing the compressed block of data to produce an uncompressed block of data; and the memory controller providing the uncompressed block of data.
- 7. The method of claim 6,
wherein said providing comprises the memory controller providing the uncompressed block of data to the CPU.
- 8. The method of claim 6,
wherein said providing comprises the memory controller providing the uncompressed block of data to the nonvolatile memory.
- 9. The method of claim 1,
wherein the system memory stores a portion of its data in an uncompressed format.
- 10. The method of claim 9,
wherein the system memory stores most recently used data in an uncompressed format.
- 11. The method of claim 1,
wherein the system memory stores least recently used data in a compressed format.
- 12. The method of claim 1,
wherein the memory controller includes a hardware compression/decompression engine.
- 13. The method of claim 1,
wherein the hardware compression engine performs lossless compression; wherein the hardware compression engine in the memory controller compressing the uncompressed block of data comprises the hardware compression engine in the memory controller performing lossless compression on the uncompressed block of data to produce the compressed block of data.
- 14. The method of claim 1,
wherein the uncompressed block of data comprises CPU application data.
- 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.
- 16. The method of claim 15, further comprising:
storing the compressed block of data in the system memory prior to said receiving; wherein said storing the compressed block of data in the system memory utilizes less space in the system memory than storing the block of data in the system memory in an uncompressed format.
- 17. The method of claim 15,
wherein said providing comprises the memory controller storing the uncompressed block of data in the system memory.
- 18. The method of claim 15,
wherein said providing comprises the memory controller providing the uncompressed block of data to the CPU.
- 19. The method of claim 15,
wherein the system includes a nonvolatile memory; wherein said providing comprises the memory controller providing the uncompressed block of data to the nonvolatile memory.
- 20. The method of claim 15,
wherein the memory controller includes a hardware compression engine; the method further comprising: the memory controller receiving the uncompressed block of data; the hardware compression engine in the memory controller compressing the uncompressed block of data to produce a compressed block of data; and the memory controller storing the compressed block of data in the system memory.
- 21. The method of claim 20,
wherein said receiving the uncompressed block of data comprises the memory controller receiving the uncompressed block of data from the CPU.
- 22. The method of claim 20,
wherein said receiving the uncompressed block of data comprises the memory controller receiving the uncompressed block of data from the nonvolatile memory.
- 23. The method of claim 15,
wherein the system memory stores a portion of data in an uncompressed format.
- 24. The method of claim 15,
wherein the system memory stores most recently used data in an uncompressed format.
- 25. The method of claim 15,
wherein the system memory stores least recently used data in a compressed format.
- 26. The method of claim 15,
wherein the memory controller includes a hardware compression/decompression engine.
- 27. The method of claim 15,
wherein the hardware decompression engine performs lossless decompression; wherein the hardware decompression engine in the memory controller decompressing the compressed block of data comprises the hardware decompression engine in the memory controller performing lossless decompression on the compressed block of data to produce the uncompressed block of data.
- 28. The method of claim 15,
wherein the compressed block of data comprises CPU application data.
- 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.
- 30. The method of claim 29,
wherein said compressing the block of data and storing the compressed block of data in the system memory utilizes less space in the system memory than storing the uncompressed block of data in the system memory.
- 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.
- 32. The method of claim 31,
wherein said decompressing the compressed block of data and storing the uncompressed block of data in the system memory utilizes more space in the system memory than storing the compressed block of data in the system memory.
- 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.
CONTINUATION DATA
[0001] This is a continuation of application Ser. No. 09/241,139 titled Memory Controller Including Embedded Compression/Decompression Capabilities for Improved Data Access Between Non-Volatile and System Memory, filed Feb. 1, 1999, whose inventor is Thomas A. Dye; which is A divisional of application Ser. No. 08/916,464 titled “Memory Controller Including Embedded Data Compression and Decompression Engines” and filed Aug. 8, 1997, whose inventor is Thomas A. Dye; which is a continuation of application Ser. No. 08/463,106 titled “Memory Controller Including Embedded Data Compression and Decompression Engines” and filed Jun. 5, 1995, whose inventor is Thomas A. Dye; which is a divisional of application Ser. No. 08/340,667 titled “Integrated Video and Memory Controller with Data Processing and Graphical Processing Capabilities” filed Nov. 16, 1994, whose inventor is Thomas A. Dye, which is now U.S. Pat. No. 6,002,411.
Divisions (2)
|
Number |
Date |
Country |
Parent |
08916464 |
Aug 1997 |
US |
Child |
09241139 |
Feb 1999 |
US |
Parent |
08340667 |
Nov 1994 |
US |
Child |
08463106 |
Jun 1995 |
US |
Continuations (2)
|
Number |
Date |
Country |
Parent |
09241139 |
Feb 1999 |
US |
Child |
09963090 |
Sep 2001 |
US |
Parent |
08463106 |
Jun 1995 |
US |
Child |
08916464 |
Aug 1997 |
US |