Question
What does "64-bit" mean, is it really better than "32-bit", and how much better is it?
Answer
Part 1: The Quick-and-Dirty
A 64-bit application can access and use more memory than a 32-bit application, and in a more efficient manner.
A 32-bit operating system can handle a maximum of 4 GB (gigabytes) of addressable memory. That 4 GB gets used up by your onboard video card, by Windows, by device drivers, and by everything else that happens to be running on the computer. Typically, this leaves about 3 GB of RAM that can actually be used by an application.
A 64-bit operating system can handle a theoretical maximum of 16 EB (exabytes) of addressable memory. That's four billion times more than 4 GB, and could almost be considered unlimited by today's standards. So a 64-bit application can access all of the available memory on your computer.
Part 2: The Detailed Explanation
This can be explained with an understanding of two important principles that you may already know about computers:
- A computer is essentially just a whole lot of tiny little on/off switches. And I mean TINY, measured in nanometers - that's billionths of a meter!
- Your computer represents everything in a binary number system, which is really a series of 0's and 1's called "bits" that represent the physical on (1) or off (0) state of these tiny switches.
A 32-bit computer system uses memory addresses (called registers) that are 32 bits (or switches) long, whereas a 64-bit computer system uses memory addresses that are 64 bits long.
So a 32-bit memory address can have a maximum value of 11111111111111111111111111111111 (that's 32 switches, all turned on), which in our normal (called "Base 10") number system equals 2^32 or 4,294,967,296. That's enough to reference 4 GB of memory, which is the limitation of a 32-bit system. Thus, until recently, computers did not come with more than 4 GB of RAM. (Computer engineers will point out workarounds to this, but that's another story for another day.)
In contrast, a 64-bit memory address can have a maximum value of 1111111111111111111111111111111111111111111111111111111111111111 (that's 64 switches, all turned on), which equals 2^64 or 18,446,744,073,709,551,616. That's enough to reference a theoretical maximum of 16 exabytes (or 16 billion gigabytes) of RAM - far more than you could even consider fitting into any of today's workstations.
64-bit versions of Windows are backwards-compatible with 32-bit applications, via a virtualization layer called Windows-on-Windows or WOW64. But if you're running a 32-bit application on a 64-bit operating system, that 32-bit application is still limited to using a maximum of only 4 GB of memory even if more is available.
While this increased memory capacity is arguably the primary advantage, a 64-bit application can also read and write memory in a more efficient manner. Through clever optimizations that are done when a program is compiled (that is, when its source code is turned into a runnable program), an application can use the extra bandwidth in a 64-bit memory register to hold multiple shorter values (like two 32-bit values, four 16-bit values, etc) and these values can therefore all be transferred between the CPU and RAM in a single operation instead of two or four seperate operations. Since a computer can read and write data much faster in the CPU than in RAM, this lets a program run faster.
Part 3: The Future
Will we eventually need to switch to 128-bit systems? Yes, probably, but it will be a while before workstations will need more than 16 EB of RAM.
"640K ought to be enough for anybody." -Bill Gates, 1981
Please note, this article is meant to be easy-to-read and easy-to-understand. It makes some important simplifications and, while accurate, it is not thorough.
Brian Sloman
Comments