Summary: For decades we've used 16-bit and 32-bit computers. Now 64-bit computers are becoming affordable. This module makes clear the enormous increase in memory addressing capability of 64-bit addresses by comparing the physical sizes of familiar objects.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
The first personal computers were 16-bit machines.
They dealt naturally with 16-bit-wide binary quantities:
they had a word size of 16 bits.
This did not affect the size of the numbers that they could
compute with, but it affected memory addressing.
Generally, memory addresses were limited to 16-bit numbers,
meaning that they ranged between
The 16-bit addresses of the early machines were too small even then. Hardware schemes involving segmentation registers were introduced so that more than 64K bytes of memory could be attached to the computer. The operating system would manipulate the segmentation registers so that different parts of the memory could be used by different programs, or by the same program at different times. Fundamentally, though, the programs had to deal with 16-bit memory addresses.
It took a computer hardware revolution to fix this.
The new personal computers were 32-bit machines: they used 32-bit integers and 32-bit
memory addresses.
32-bit memory addresses range from
It's difficult to express how big an impact this was on program developers. Suddenly, size of programs and data was no longer a problem. Things had to fit in the memory the computer had, but this was much more than 64Ki bytes. Programming became much simpler; programs could be larger, could incorporate more functions, and could do much bigger tasks. The benefits of the larger address were significant enough that it was worth going through porting difficulties in order to move operating systems and applications from 16-bit to 32-bit machines.
Today 16-bit machines are history as far as personal computers and larger computers are concerned. 16-bit processors are still made (they are generally very inexpensive) but they are used for specialized purposes such as controlling appliances and automobiles rather than in general-purpose computers. Almost all of today's PCs and large server computers are 32-bit machines, with the exceptions being 64-bit machines.
Sixty-four-bit machines are becoming increasingly common.
Once limited to the machine rooms of large companies because of their expense and
physical size, 64-bit computers can now be purchased as home PCs.
They use 64-bit integers and 64-bit memory addresses.
Sixty-four-bit memory addresses range from
Let's assume that each individual address in our computer represents a small area such as a tiny portion of a piece of paper. The computer's entire memory is represented by the piece of paper, and each memory address "addresses" a small part of it.
We'll start with a 16-bit computer, and assume that 16-bit addresses can span the surface of a 4-inch square Post-it® note (Figure 1).
| Sixteen-bit addressing |
|---|
|
Each individual memory address in our 16-bit computer then represents
| Mapping addresses to areas |
|---|
|
Let's move on to 32-bit addressing and see how much bigger computer memory can be when we
double the width of the address.
Each individual address will still represent the same amount of surface area,
a square 1/64 inch (.4 mm) on a side.
Now we'll have
| Thirty-two-bit addressing |
|---|
|
A 32-bit address can span so much more area than a 16-bit address that it goes beyond just being bigger or even a lot bigger, it's different in some fundamental way. The vast increase in the amount of memory that can be addressed by a program means that not only can existing programs be adapted to deal with larger problems, but new applications that weren't possible at all on the smaller machine can now be created.
The final step, at least for now, is to a 64-bit address.
Sixty-four-bit machines are still not common today, but they have become affordable even
to consumers (in late 2005,
Hewlett-Packard's
Internet list price for a workstation containing an AMD Opteron™ 64-bit processor was US $1799).
Again, the wider address spans so much more memory than in the previous generation that
things are fundamentally different.
To see this, we'll still let each individual address be represented by a tiny square 1/64
inch (.4 mm) on a side.
16-bit addressing required only a Post-it note to represent all the memory, while 32-bit
addressing required a tennis court.
64-bit addressing spans
| Sixty-four-bit addressing |
|---|
|
Let's compare lengths rather than areas. We'll assume that 16-bit addresses span only half a millimetre, the diameter of a common pencil lead. Then each individual address represents a length of
Now that we've established what length one individual address corresponds to, and we see what
| Comparing distances | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
So if we start with a tiny block so short that 130 of them stacked up would be only 1 micron high, by the time we stack up
If we have a disk that will hold
We'll use round numbers to make things easy. Let's assume that each frame recorded by our video camera consists of 1 megabyte. That would be a moderate size image in full color, with no compression. Like many video cameras, ours records 30 frames each second. Thus, each second of video will require 30M bytes of space.
With an 18.45 exabyte disk and a large enough battery, we could have set up a video camera 19,500 years ago, during the last ice age, and let it record continually day and night (Figure 6). It would just be filling up the disk now.
| A video camera recording for 19,500 years |
|---|
|
By equating various widths of computer memory addresses to familiar objects and then comparing the sizes of those objects, we gain some insight into just how large a 64-bit memory address is.
The cold, hard number
18,446,744,073,709,551,616
has no real meaning for us, but seeing that that many almost infinitesimal boxes, each less than 1/100 micron high, would make a stack equal in height to the distance between the Earth and the Sun convinces us that
So now we know what "big" means, at least until we see our first 128-bit computer....