A method and system for allowing a processor or I/O master to address more system
memory than physically exists are described. A Compressed Memory Management Unit
(CMMU) may keep least recently used pages compressed, and most recently and/or
frequently used pages uncompressed in physical memory. The CMMU translates system
addresses into physical addresses, and may manage the compression and/or decompression
of data at the physical addresses as required. The CMMU may provide data to be
compressed or decompressed to a compression/decompression engine. In some embodiments,
the data to be compressed or decompressed may be provided to a plurality of compression/decompression
engines that may be configured to operate in parallel. The CMMU may pass the resulting
physical address to the system memory controller to access the physical memory.
A CMMU may be integrated in a processor, a system memory controller or elsewhere
within the system.