Take the 2-minute tour ×

Obviously, a 64-bit processor has a 64-bit address space, so you have more than 4 GB of RAM at your disposal. Does compiling the same program as 64-bit and running on a 64-bit CPU have any other advantages that might actually benefit programs that aren't enormous memory hogs?

I'm asking about CPUs in general, and Intel-compatible CPUs in particular.

share|improve this question

8 Answers 8

up vote 26 down vote accepted

There's a great article on Wikipedia about the differences and benefits of 64bit Intel/AMD cpus over their 32 bit versions. It should have all the information you need.

Some on the key differences are:

  • 16 general purpose registers instead of 8
  • Additional SSE registers
  • A no execute (NX) bit to prevent buffer overrun attacks
share|improve this answer
The no execute bit exists on 32-bit architectures too. –  flodin Mar 3 '09 at 17:47
Yes, but it only works at the segment level. Most OSs use a flat model, so they can't turn it on or they'd no-execute the entire address space! The 64 bit chips allow you to set it on a page level. Take a look at en.wikipedia.org/wiki/NX_bit for more info. –  Sean Mar 3 '09 at 17:54
@Sean, no it used to be at a segment level, But current 32-bit procs with PAE enabled have regular page level NX support. –  Evan Teran Mar 3 '09 at 18:26
On a general non-Intel point, some 32 bit processors had 16 General Purpose Registers and a bunch of Floating Point registers back in the 1970's. Intel and co are catching up! –  Simon Knights Mar 3 '09 at 22:13
* Can move RIP to a register. Important for PIC * new baseline for minimal support. x86 extensions like SSE2 and cmov are now guaranteed there. –  Marco van de Voort May 2 '09 at 14:59

The main advantage of a 64-bit CPU is the ability to have 64-bit pointer types that allow virtual address ranges greater than 4GB in size. On a 32-bit CPU, the pointer size is (typically) 32 bits wide, allowing a pointer to refer to one of 2^32 (4,294,967,296) discrete addresses. This allows a program to make a data structure in memory up to 4GB in size and resolve any data item in it by simply de-referencing a pointer. Reality is slightly more complex than this, but for the purposes of this discussion it's a good enough view.

A 64-bit CPU has 64-bit pointer types that can refer to any address with a space with 2^64 (18,446,744,073,709,551,616) discrete addresses, or 16 Exabytes. A process on a CPU like this can (theoretically) construct and logically address any part of a data structure up to 16 Exabytes in size by simply de-referencing a pointer (looking up data at an address held in the pointer).

This allows a process on a 64-bit CPU to work with a larger set of data (constrained by physical memory) than a process on a 32 bit CPU could. From the point of view of most users of 64-bit systems, the principal advantage is the ability for applications to work with larger data sets in memory.

Aside from that, you may get a native 64-bit integer type. A 64 bit integer makes arithmetic or logical operations using 64 bit types such as C's long long faster than one implemented as two 32-bit operations. Floating point arithmetic is unlikely to be significantly affected, as FPU's on most modern 32-bit CPU's natively support 64-bit double floating point types.

Any other performance advantages or enhanced feature sets are a function of specific chip implementations, rather than something inherent to a system having a 64 bit ALU.

share|improve this answer

With a 64bit Operating System, you can address over 4GB of RAM. This is useful for some applications.

For example, you can load a large data cube in memory and cut and slice it more effectively (seismic data or medical data for example).

share|improve this answer
This is the biggest draw for me –  Michael Haren Mar 3 '09 at 17:33
Granted. This is the only reason that compels me to upgrade computers to 64bit. In major oil companies, 24Gb of RAM on the desktop is now common (Linux or Windows). –  David Mar 3 '09 at 17:35

This article may be helpful:


This one is a bit off-topic, but might help if you plan to use Ubuntu:


And this pdf below contains a detailed technical specification:


share|improve this answer
the third link is down.. –  Pacerier Nov 24 '11 at 8:35
Concerning the Ubuntu forums links: "The administrator may have required you to register before you can view this page." That's inconvenient. –  leetNightshade Nov 25 '13 at 19:19

Slight correction. On 32-bit Windows, the limit is about 3GB of RAM. I believe the remaining 1GB of address space is reserved for hardware. You can still install 4GB, but only 3 will be accessable.

Personally I think anyone who hasn't happily lived with 16K on an 8-bit OS in a former life should be careful about casting aspersions against some of today's software starting to become porcine. The truth is that as our resources become more plentiful, so do our expectations. The day is not long off when 3GB will start to seem ridiculously small. Until that day, stick with your 32-bit OS and be happy.

share|improve this answer

About 1-3% of speed increase due to instruction level parallelism for 32-bit calculations.

share|improve this answer

Just wanted to add a little bit of information on the pros and cons of 64-bit CPUs. http://blogs.msdn.com/joshwil/archive/2006/07/18/670090.aspx

share|improve this answer

The main difference between 32-bit processors and 64-bit processors is the speed they operate. 64-bit processors can come in dual core, quad core, and six core versions for home computing (with eight core versions coming soon). Multiple cores allow for increase processing power and faster computer operation. Software programs that require many calculations to function operate faster on the multi-core 64-bit processors, for the most part. It is important to note that 64-bit computers can still use 32-bit based software programs, even when the Windows operating system is a 64-bit version.

Another big difference between 32-bit processors and 64-bit processors is the maximum amount of memory (RAM) that is supported. 32-bit computers support a maximum of 3-4GB of memory, whereas a 64-bit computer can support memory amounts over 4 GB. This is important for software programs that are used for graphical design, engineering design or video editing, where many calculations are performed to render images, drawings, and video footage.

One thing to note is that 3D graphic programs and games do not benefit much, if at all, from switching to a 64-bit computer, unless the program is a 64-bit program. A 32-bit processor is adequate for any program written for a 32-bit processor. In the case of computer games, you'll get a lot more performance by upgrading the video card instead of getting a 64-bit processor.

In the end, 64-bit processors are becoming more and more commonplace in home computers. Most manufacturers build computers with 64-bit processors due to cheaper prices and because more users are now using 64-bit operating systems and programs. Computer parts retailers are offering fewer and fewer 32-bit processors and soon may not offer any at all.

share|improve this answer

Your Answer


