Virtual memory compression (also referred to as RAM compression and memory compression) is a memory management technique that utilizes data compression to reduce the size or number of paging requests to and from the auxiliary storage.[1] In a virtual memory compression system, pages to be paged out of virtual memory are compressed and stored in physical memory, which is usually random-access memory (RAM), or sent as compressed to auxiliary storage such as a hard disk drive (HDD) or solid-state drive (SSD). In both cases the virtual memory range, whose contents has been compressed, is marked inaccessible so that attempts to access compressed pages can trigger page faults and reversal of the process (retrieval from auxiliary storage and decompression). The footprint of the data being paged is reduced by the compression process; in the first instance, the freed RAM is returned to the available physical memory pool, while the compressed portion is kept in RAM. In the second instance, the compressed data is sent to auxiliary storage but the resulting I/O operation is smaller and therefore takes less time.[2][3]
In some implementations, including zswap, zram and Helix Software Company’s Hurricane, the entire process is implemented in software. In other systems, such as IBM's MXT, the compression process occurs in a dedicated processor that handles transfers between a local cache and RAM.
Virtual memory compression is distinct from garbage collection (GC) systems, which remove unused memory blocks and in some cases consolidate used memory regions, reducing fragmentation and improving efficiency. Virtual memory compression is also distinct from context switching systems, such as Connectix's RAM Doubler (though it also did online compression) and Apple OS 7.1, in which inactive processes are suspended and then compressed as a whole.[4]
^Cite error: The named reference CaseForCompressedCaching was invoked but never defined (see the help page).
^Cite error: The named reference PAT-5559978 was invoked but never defined (see the help page).
^Cite error: The named reference PAT-5785474 was invoked but never defined (see the help page).
^Cite error: The named reference CWORLD-RD2 was invoked but never defined (see the help page).
and 19 Related for: Virtual memory compression information
Virtualmemorycompression (also referred to as RAM compression and memorycompression) is a memory management technique that utilizes data compression...
compression, April 3, 2013, LWN.net, by Dan Magenheimer The Compression Cache: VirtualMemoryCompression for Handheld Computers, March 16, 2000, by Michael J...
discrete quantity Spatial quantization Charge quantization Virtualmemorycompression § Compression using quantization. The process of making the signal discrete...
C dynamic memory allocation refers to performing manual memory management for dynamic memory allocation in the C programming language via a group of functions...
commands. The company pioneered several technologies, including virtualmemorycompression systems, switching between multiple protected mode operating environments...
image compression algorithms, texture compression algorithms are optimized for random access. Texture compression can be applied to reduce memory usage...
the computer memory can be transferred to storage; a common way of doing this is through a memory management technique called virtualmemory. Modern computer...
Compressed Memory is a virtualmemorycompression system which automatically compresses data from inactive apps when approaching maximum memory capacity...
QEMM and still allow the use of QEMM's Stealth feature. It was a virtualmemorycompression utility for Windows 3.1, Windows For Workgroups and Windows 95...
Executable compression is any means of compressing an executable file and combining the compressed data with decompression code into a single executable...
Volatile memory, in contrast to non-volatile memory, is computer memory that requires power to maintain the stored information; it retains its contents...
Semiconductor memory is a digital electronic semiconductor device used for digital data storage, such as computer memory. It typically refers to devices...
disk compression software utility increases the amount of information that can be stored on a hard disk drive of given size. Unlike a file compression utility...
Deflate (stylized as DEFLATE, and also called Flate) is a lossless data compression file format that uses a combination of LZ77 and Huffman coding. It was...
general memory hierarchy structuring. Many other structures are useful. For example, a paging algorithm may be considered as a level for virtualmemory when...
Core rope memory is a form of read-only memory (ROM) for computers. It was used in the UNIVAC I (Universal Automatic Computer I) and the UNIVAC II, developed...
High Bandwidth Memory (HBM) is a computer memory interface for 3D-stacked synchronous dynamic random-access memory (SDRAM) initially from Samsung, AMD...