A new memory subsystem, called Memory Xpansion Technology (MXT), has been b
uilt for compressing main memory contents. MXT effectively doubles the phys
ically available memory transparently to the CPUs, input/output devices, de
vice drivers, and application software. An average compression ratio of two
or greater has been observed for many applications. Since compressibility
of memory contents varies dynamically, the size of the memory managed by th
e operating system is not fixed. In this paper, we describe operating syste
m techniques that can deal with such dynamically changing memory sizes. We
also demonstrate the performance impact of memory compression using the SPE
C CPU2000 and SPECweb99 benchmarks. Results show that the hardware compress
ion of memory has a negligible performance penalty compared to a standard m
emory for many applications. For memory starved applications and benchmarks
such as SPECweb99, memory compression improves the performance significant
ly. Results also show that the memory contents of many applications can be
compressed, usually by a factor of two to one.