Doi: 10.1145/1435417.1435431
Double, double toil and trouble
—Shakespeare, Macbeth, Act 4, Scene 1
By John mashEy
the long Road
to 64 Bits
ShaKeSpeare’S WordS oFteN
cover circumstances
beyond his wildest dreams. Toil and trouble
accompany major computing transitions, even when
people plan ahead. Much of tomorrow’s software
will still be driven by decades-old decisions. past
decisions have unanticipated side effects that last
decades and can be difficult to undo.
For example, consider the overly
long, often awkward, and sometimes
contentious process by which 32-bit
microprocessor systems evolved into
64/32-bitters needed to address larger
storage and run mixtures of 32- and 64-
bit user programs. Most major general-purpose CPUs now have such versions,
so bits have “doubled,” but “toil and
trouble” are not over, especially in software.
This example illustrates the interactions of hardware, languages (
especially C), operating system, applications,
standards, installed-base inertia, and
industry politics. We can draw lessons
ranging from high-level strategies down
to programming specifics.
fundamental Problem (late 1980s)
Running out of address space is a long
tradition in computing, and often quite
predictable. Moore’s Law grew DRAM
approximately four times bigger every
three to four years, and by the mid-
1990s, people were able to afford 2GB
to 4GB of memory for midrange microprocessor systems, at which point simple 32-bit addressing (4GB) would get
awkward. Ideally, 64/32-bit CPUs would
have started shipping early enough
(1992) to have made up the majority of
the relevant installed base before they
PhotograPh by ben fransKe
chronology:
multiple
interlocking
threads
iBm s/360
32-bit, with 24-bit
addressing (16MB total)
of real (core) memory
1964
1965