From: Steve Arnold (steve.arnold4_at_verizon.net)
Date: Tue Feb 17 2004 - 22:57:57 PST
The authors claim that this paper (1986) is the first one to really address
memory coherence in shared VM systems. This is where there are multiple
processors, each with their own memory, and you want to map a virtual memory
over all of them. This lends the system naturally to sharing.
With a small argument, they quickly dismiss writeback strategies. This would
monopolize communication and probably have quite a bottleneck. Rather they
divide it into centralized manager and distributed manager. In the
centralized manager system, there is a central table where VM is managed and
mapped. It indicates which processors have a copy and which is the owner.
They improve upon this by pushing out copy_set to the processors.
However, they do claim that distributed management system is preferred. The
simplest way would be to just divide the VM address space among the
processors. However, this is not optimal. A slightly better way to have the
processors broadcast once they fault, to let other processors know. However,
this could bottleneck the bus. The best way, they present, is a dynamic
system that keeps managment at each of the nodes. They also manage who is
the current owner of a certain page. When that page faults, you ask the
owner for the current page. When an owner writes to its page, it must
invalidate the other copies. Getting the data only when needed helps to
reduce the bottleneck.The final refinement that they make is to distribute
the copy_set field (contains which processors have a copy).
They also present performance results, which I found were not that useful.
The paper was easy to read and they provided a lot of implementation detail
(I'll admit I didn't actually read through the code very closely). This is a
good introduction to any coherence problem.
This archive was generated by hypermail 2.1.6 : Tue Feb 17 2004 - 22:57:08 PST