Managing multi-configuration hardware via dynamic working set analysis
ISCA '02 Proceedings of the 29th annual international symposium on Computer architecture
Improving System Performance with Compressed Memory
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
The Feasibility of Using Compression to Increase Memory System Performance
MASCOTS '94 Proceedings of the Second International Workshop on Modeling, Analysis, and Simulation On Computer and Telecommunication Systems
The performance advantage of applying compression to the memory system
Proceedings of the 2002 workshop on Memory system performance
Design and Evaluation of a Selective Compressed Memory System
ICCD '99 Proceedings of the 1999 IEEE International Conference on Computer Design
Performance of Hardware Compressed Main Memory
HPCA '01 Proceedings of the 7th International Symposium on High-Performance Computer Architecture
The case for compressed caching in virtual memory systems
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
IBM memory expansion technology (MXT)
IBM Journal of Research and Development
Memory expansion technology (MXT): competitive impact
IBM Journal of Research and Development
Dynamic detection and visualization of software phases
WODA '05 Proceedings of the third international workshop on Dynamic analysis
Hi-index | 0.01 |
During a program's runtime, the stack and data segments of the main memory often contain much redundancy, which makes them good candidates for compression. Compression and decompression however require either extra hardware or substantial processing resources. This paper presents a new approach in which a mostly software solution is suggested but without the processing power penalty that usually accompanies such a solution. This is achieved by not compressing all the memory all of the time. The suggested method is to identify the current working set and to leave it uncompressed for faster access. Pages that are not in the working set may be compressed during the CPU's idle time. Also, compression is only performed during phases which exhibit good spatial locality. These phases are identified by detecting changes in the program's working set. By comparing the current working set's "signature" with the signature at the end of the previous instruction window, a difference parameter is calculated and, when the difference is low enough, the program is in a phase that exhibits good locality and thus compression may begin. Simulation results confirm that this new approach to main memory compression provides good compression ratios for most SPEC CPU2000 programs.