[comp.arch] Shared memory with virtual caching

bader+@andrew.cmu.edu (Miles Bader) (07/18/87)

> The `Segmented Address Space` architecture of Prime systems solves the
> problem of multiple cached entries of the same data and doesn't require
> the address map identifier in the cache.  It works as follows:
> 
> 	A specific number of segments in the virtual space are used for
> 	sharing and are common to the address space of all processes in
> 	the system.  For example, if segment 1000 is a share segment then
>	multiple processes virtual segment 1000 will map to the same
> 	physical segment in memory.  Thus sharing is achieved, duplicate
> 	cached entries of the same data is avoided and the mapping for
> 	the shared data is maintained in one table.

This also reduces flexibility.  The case that comes immediately to mind is
that of a copy-on-write implementation of fork in unix.  In this case, the
mapping of v->p changes dynamically on a page-by-page basis.  Of course you
don't have to have a copy-on-write fork, but it's an awful neat idea to miss
out on...

It would also seem that the segments also correspond vaguely to address map
descriptors, except that a single process can easily address multiple
instances.  If this is the case, why is the set of segments used for sharing
static?  [I may be using the wrong concept of "segment"]

				-Miles