Start a conversation

Benefits of a 64-bit application

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:

  1. 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!
  2. 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.

Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. Brian Sloman

  2. Posted
  3. Updated

Comments