Evaluation of memory system extensions

A traditional memory system for a uniprocessor consists of one or two levels of cache, a main memory and a backing store. One can extend such a memory sys tem by adding inexpensive but slower memories into the memory hierarchy. This paper uses an experimental approach to evaluate two methods of extending a memory system: direct and caching. The direct method adds the slower memory into the memory hierarchy by putting it at the same level as the main memory, allowing the CPU to access the slower memories directly; whereas the caching method puts the slower memory between the main memory and the backing store, using the main memory as a cache for the slower memory. We have implemented both approaches and our experiments indicate that applications with very large data structures can benefit significantly using an extended memory system, and that the direct approach outperforms the caching approach in memory-bound applications.

[1]  Laszlo A. Belady,et al.  A Study of Replacement Algorithms for Virtual-Storage Computer , 1966, IBM Syst. J..

[2]  Michael Wayne Young Exporting a user interface to memory management from a communication-oriented operating system , 1989 .

[3]  A. Pohm,et al.  An efficient flexible buffered memory system , 1973 .

[4]  Jeffrey F. Naughton,et al.  Multiprocessor Main Memory Transaction Processing , 1988, Proceedings [1988] International Symposium on Databases in Parallel and Distributed Systems.

[5]  Richard J. Lipton,et al.  A Massive Memory Machine , 1984, IEEE Transactions on Computers.

[6]  Robert J. Fowler,et al.  The implementation of a coherent memory abstraction on a NUMA multiprocessor: experiences with platinum , 1989, SOSP '89.

[7]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[8]  A. J. Smith,et al.  Disk cache - Miss ratio analysis and design considerations , 1983, Perform. Evaluation.

[9]  Peter J. Denning,et al.  Working Sets Past and Present , 1980, IEEE Transactions on Software Engineering.

[10]  J. O. Eklundh Efficient Matrix Transposition , 1981 .

[11]  Gary M. King,et al.  Storage Hierarchies , 1989, IBM Syst. J..

[12]  Barbara S. Brawn,et al.  Program behavior in a paging environment , 1899, AFIPS '68 (Fall, part II).

[13]  Alan Jay Smith,et al.  Cache Memories , 1982, CSUR.

[14]  Kai Li,et al.  A Hypercube Shared Virtual Memory System , 1989, ICPP.

[15]  Jan Gecsei Determining Hit Ratios for Multilevel Hierarchies , 1974, IBM J. Res. Dev..

[16]  Carla Schlatter Ellis,et al.  Experimental comparison of memory management policies for NUMA multiprocessors , 1991, TOCS.

[17]  Michael L. Scott,et al.  Simple but effective techniques for NUMA memory management , 1989, SOSP '89.

[18]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[19]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[20]  Irving L. Traiger,et al.  Evaluation Techniques for Storage Hierarchies , 1970, IBM Syst. J..

[21]  Michael Stonebraker,et al.  Virtual memory transaction management , 1984, OPSR.

[22]  Hector Garcia-Molina,et al.  System M: A Transaction Processing Testbed for Memory Resident Data , 1990, IEEE Trans. Knowl. Data Eng..

[23]  Jim Griffioen,et al.  A New Design for Distributed Systems: The Remote Memory Model , 1990, USENIX Summer.

[24]  S. G. Tucker,et al.  The IBM 3090 System: An Overview , 1986, IBM Syst. J..