Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!news.cs.indiana.edu!ux1.cso.uiuc.edu!uicbert.eecs.uic.edu!wilson From: wilson@uicbert.eecs.uic.edu (Paul Wilson) Newsgroups: comp.arch Subject: Re: 64-bit addressing Message-ID: <1991Feb18.032849.16544@uicbert.eecs.uic.edu> Date: 18 Feb 91 03:28:49 GMT References: <4270@lectroid.sw.stratus.com> Organization: University of Illinois at Chicago Lines: 49 dswartz@bigbootay.sw.stratus.com writes: >Not that I'm arguing with all of the erudite claims I've heard in this >newsgroup arguing about how bad a 64 bit virtual address space is because >it is [too inefficient | unnecessary | too expensive | ...]. I'm sure >with the current state of technology, they probably understand the issues >better than I. I just can't help but remember back in the good old days >when I was programming a 16-bit PDP/11 with 128KB main memory and 16MB >of hard disk, hearing similar lamentations about how a 32-bit machine >would be a huge lose, just think of all the extra memory you will use once >the pointers and integers all double in size! I now have a home PC with >64 times the main memory and 16 times the disk storage (and a processor >which is probably 10 times faster at 1/10 the cost!) All of this happened >within 10 years. Although I would like to have 4GB of main memory in a >desktop box, my main interest in the large address space is being able to >map ANYTHING of interest into memory. It might be a fairly small database >mapped readonly over a pair of tin cans connected by string, but hey... Then you ought to *like* pointer swizzling. Your address-space can be arbitrarily large, at little cost, on hardware with some fixed-sized bus, and with languages with only one kind of pointer. You can implement a really huge address space if you want to, so that you *could* address more bytes of memory than there are subatomic particles in the universe. Pointer swizzling is like segmentation, but with the upper bits of the address translated _at_page_fault_time_ rather than by hardware. And (mercifully) programmers needn't know any of this is going on, if the language they use supports fully supports the abstraction of pointers. (Unrestricted C doesn't, quite. Eiffel and Modula-3 do, as do Lisp and Smalltalk.) But like segmentation, it gets into trouble when object sizes approach the segment size. But if you just want to map a big database into your desktop machine, you're *really* in luck. You can have all of the computers in the world implement one unbelievably huge heap, heap and you could follow pointers around the planet. The real question is whether the bus should be 32 or 64 bits, or something in between. Even if you have a 64-bit word, pointer swizzling could be handy -- you could implement the heap described above without *ever* running out of bits. You can arbitrarily large address space with no problem. >Dan S. -- 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