Operating System Support for Modern Memory Hierarchies (Thesis)
Abstract:
The demands of large applications and the rapid development
of microprocessor and high-density memory technology over the last years
have motivated the design of new memory hierarchies for uniprocessors and
parallel architectures. This dissertation presents the study of three such
memory hierarchy alternatives: large memory extensions for uniprocessors,
cache coherence schemes for multiprocessors based on virtual
memory support, and memory servers for multicomputers.
Large memory extensions for uniprocessors provide extensive amounts of
physical memory to support the efficient execution of applications
that use very large data structures. My work studies architectures
with large amounts of memory on a secondary memory bus. On such
computers, the processor can either access the additional memory
directly or can use it as a cache between primary memory and disks.
Analytical and empirical results show that many applications can
benefit significantly from using an extended memory system, and that
the direct approach outperforms the caching approach in most cases.
In the second part of this dissertation, I study a new class of
software cache coherence schemes for multiprocessors. Currently, most
multiprocessors are based on bus interconnections. However, bus-based
multiprocessors have limited memory bandwidth. Other approaches, such
as directory-based schemes and compiler-based software schemes,
require hardware support and are complex. The software cache
coherence schemes I propose are based on virtual memory (VM) support
and can be implemented on very simple multiprocessors, built with
distributed memories and arbitrary interconnects. Trace-driven
simulation results show that VM-based cache coherence is an economical
and practical approach to build simple shared-memory multiprocessors.
The third component of this dissertation presents a virtual memory
management technique for multicomputers called {em memory servers}.
Multicomputers can provide very high levels of computing power and
storage capacity at relatively low cost. However, it is difficult to
exploit the available peak performance and capacity of existing
multicomputers. The memory server model extends the memory hierarchy
of multicomputers by introducing a remote memory server layer, which
can be viewed as a distributed cache for disk backing stores. Results
from a prototype implementation show that the memory server mechanism
is an effective way to use multicomputer memory resources.