🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #22666

RE: Inverted Page Tables

#22666
From: Richard Huff
Date: Wed, 28 Feb 1990 04:56
38 lines
2535 bytes
Someone suggested that Mach handles large sparse address spaces
efficiently.  But Mach's architecture independent pmap module simply
implements an inverted page table in software; although their IPT's are
on a per process basis, rather than using a single IPT for the entire
machine.  So I still see IPT's as the only way to manage huge virtual
address spaces.

Now here's an interesting research problem:  What is the most efficient
way to manage large virtual address spaces on NUMA (non uniform memory
access) shared memory MIMD machines?  Can we extend the IPT approach in
a clean way?  I'd like to handle a TLB fault to a local physically
present page without referencing non local memory.  Ok, I could do that
with a local IPT approach.  But what if the page is physically present
on another processor's node?  How can I determine which node to talk to,
WITHOUT utilizing a local data structure that grows with the number of
nodes in the system?  Remember, I want a SCALABLE solution.  And we
presumably don't want a virtual address to always be associated with a
fixed node; so the processor number can't be encoded in the address
itself.  Besides, I might want to let the OS move pages around between
nodes for maximum locality.  In this case, we might view local memory as
simply a page cache for the larger global address space.

Will TLB faults be rare enough for me to simply maintain a master page
directory for the entire machine, distributed across all of the nodes,
that only gets used when the local IPT comes up empty?  Should we use
multiple distributed IPT's, say, one per "cluster" of nodes?

What is currently being done, or being proposed, for such large NUMA
MIMD machines?  How does the Butterfly II, Ultracomputer, or RP3 do
virtual to physical address translation?  Do they employ a separate
virtual address space per process?  Is it 32-bits, or larger?

Is anyone out there considering building a NUMA MIMD shared memory
machine with a single, machine wide, 64 bit virtual address space?


Richard Huff
huff@svax.cs.cornell.edu
Technical Details
Message-ID: <37877@cornell.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!rpi!batcomputer!cornell!huff

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!rpi!batcomputer!cornell!huff
From: huff@svax.cs.cornell.edu (Richard Huff)
Newsgroups: comp.arch
Subject: RE: Inverted Page Tables
Message-ID: <37877@cornell.UUCP>
Date: 28 Feb 90 04:56:12 GMT
Sender: nobody@cornell.UUCP
Reply-To: huff@cs.cornell.edu (Richard Huff)
Distribution: comp
Organization: Cornell Univ. CS Dept, Ithaca NY
Lines: 38