[comp.arch] you'll never need 64-bit hardware addressing

wilson@uicbert.eecs.uic.edu (Paul Wilson) (01/26/91)

A while back there was a lot of traffic here about the advantages and
disadvantages of 64 bit addresses.  I say you don't need them, not in
hardware anyway, and you never will.

I have a scheme for translating pointers from an idealized 64-bit large
format to a machine-supported 32-bit format by "swizzling" (translating)
the pointers in a page at page fault time.  So 64-bit (or 100-bit, or 
whatever) pointers are supported in software, but do NOT incur continual 
overhead for running programs.  The page fault handler ensures that the 
running program only ever sees "real" hardware-supported pointers.  (For 
people who know the Appel, Ellis, and Li stock-hardware pagewise incremental
gc, yes, the principle is the same and that's where I got the basic idea. 
I realized that objects in fromspace can have a different format than 
objects in tospace.  You also can relocate pages instead of objects,
and -- voila -- you've got page-fault-time address translation.)

If anybody is interested, I've got a tech report that says how this
is done, and can send a copy.  (The 20-or-so people who've requested
my paper on gc locality effects will get this one, too -- no need to
send another request.)  This paper assumes that real memories are
not greater than 4GB, but I'm working on a scheme to support huge
RAM too.

   -- Paul
-- 
Paul R. Wilson                         
Software Systems Laboratory               lab ph.: (312) 996-9216
U. of Illin. at C. EECS Dept. (M/C 154)   wilson@bert.eecs.uic.edu
Box 4348   Chicago,IL 60680