From: Chuck Reeves (creeves_at_windows.microsoft.com)
Date: Wed Feb 18 2004 - 14:38:28 PST
The paper "Memory Coherence in Shared Virtual Memory Systems" was
written by Kai Li and Paul Hudak, at Yale University in 1986. It
discusses the design and implementation of a number of different shared
memory systems on loosely coupled multiprocessors. The designs differed
in their approach to managing memory coherence. I interpreted this to be
the validity of information in copies of memory in the presence of
parallel read and writes. Dimensions that varied included
synchronization techniques (invalidation vs writeback) and ownership
methodologies (static vs dynamic). The paper chooses to focus on dynamic
ownership strategies that use invalidation to synchronize data between
shared pages of memory. A centralized management approach, establishes a
single monitor to control the state of reader-writer locks associated
with each page. Each processor communicate with this monitor using
messages. Attempts to read and write to a page generate a synchronous
message sent to the monitor to guarantee proper data coherency.
Additionally, a confirmation message is sent to the manager once access
to that page is no longer required (similiar to the enter/exit used for
crititical sections). By moving ownership (copy-set data) to the
individual processors the confirmation operation can be removed.
The most interesting approach presented is the distributed manager
algorithms. It does away with any concept of a centralized page manager
and simply allows processors to coordinate ownership and locking
behavior between themselves. Two approaches to ownership are presented:
fixed and dynamic. In the fixed model, a hash of the page number is used
to determine the owner and never changes. In the dynamic model,
processors retain a reference to the last known owner. These hints are
chased down to locate the actual current page owner. This is simliar to
the garbage collection algorithms described in the Emerald distributed
object system. The authors suggest an optimization to reduce the average
number of edges that must be traversed to identify the true owner. The
optimized behavior, is to generate a broadcast after a configurable
number of page faults on each page entry occurs.
I didn't really understand the benefits of the refinement introduced in
section 4.5 around management of copy_sets. I would appreciate some
discussion on this aspect of the design.
Chuck Reeves, creeves_at_microsoft.com
Microsoft | Windows | Directory Services
This archive was generated by hypermail 2.1.6 : Wed Feb 18 2004 - 14:38:39 PST