Re: 64-bit vs. 32-bit Computing

From: Jon Forrest <forrest_at_ce.berkeley.edu>
Date: Thu Apr 13 2006 - 13:45:00 PDT

Jonathan Loran wrote:
> We say why 64 bit today? But in a few years (or decades) we'll look
> back and laugh at why we even asked this question. It's not a really
> fair comparison, but the original IBM PC with 640K of addressable memory
> seemed like "plenty of space" when it first came out.
> [...]
> Finally, I just have to say: why not go to 64 bit addressing? The small
> slowdowns we see today with pointer copies or such will be a distant
> memory in the near term. Feel the wide open spaces of 2^64. Pretty
> soon you won't know how you got by without it.

64-bit computing is half bogus. Fortunately, the good half is the
one you're talking about, which is real. This is the need for
more than 32-bits of data address space. However, the other half,
which is the need for more than 32-bits of instructions (a.k.a. "text")
space, is practically non-existent. Here's a message I posted to
comp.arch a while back that explains this. (Be forwarned - a long
discussion follows)

---
64-bit computing has received lots of attention recently.
It's easy to imagine why. There are lots of applications
that truly need more than 32-bits of data space. One
point that I haven't seen raised before is that this
data addressing requirement is the ONLY reason
why 64-bit computing is needed, at least for the
indefinite future.
In other words, there's no need for more than 32-bits
of text (a.k.a. instruction) space. The reason for this
is simple - it's simply too complicated to write a
program that comes close to being this big (remember,
I'm talking about text space, not data space). The reasons
for this have been discussed for years and don't appear
to be lifting. Unless humans get much smarter, or automatic
program generation techniques get much better, this
isn't likely to change.
Does anybody know of any programs that have
more than 32-bits of text?
----
After I wrote this I receive an email message saying
"One is when libraries are included in toto, which is not obviously
stupid in the context of sharable libraries.
Another is with code generated by program.  Obviously, that has the
same requirements as comparable data structures."
I don't think the shared library issue is real because if you look at
all the shared libraries on a Windows or Unix system and add their
sizes together, you don't get near 32-bits worth of instructions.
Someone else said "Another class of applications is that class written
in a dynamic language like Common Lisp or Smalltalk, where the tendency is
in fact to compile eventually to native code, and to maniplulate
and garbage-collect that code as if it were data". I don't know how many
programs like this there are running wild, but I can see how this could
happen.
Someone else claimed the Computer Aided Design programs sometimes work by
collecting pieces of code where each piece represents one electronic
component so that a complicated device could require more than 32-bits
of code to model.
Finally, even though there's no need for 32-bits of text space I'm not suggesting
that modern processors be designed with a 32-bit text space and a 64-bit data
space. That would add needless complexity.
Sorry for the long diatribe but it's been raining a lot recently...
Jon
------------------------------------------------------------------------
The following was automatically added to this message by the list server:
For information about Micronet, including subscribing to
or unsubscribing from its mailing list and finding out
about upcoming meetings, please visit the Micronet Web site:
<http://micronet.berkeley.edu/>.
Received on Thu Apr 13 13:49:30 2006

This archive was generated by hypermail 2.1.8 : Thu Apr 13 2006 - 13:49:30 PDT