32bit vs 64bit computers, the QA
Table of contents
What 64-bit support mean?
What the difference between the 32-bit and 64-bit anyway?
General purpose registers
What additional registers good for?
So how good 64-bit really is?
What about OS and software?
Does that mean that paying extra money for 64-bit Windows XP/Vista worth it?
How about Linux?
Introduction
Many wonder what is the real difference between 64-bit and 32-bit computers. Is paying a little extra for 64-bit support really worth it?
What 64-bit support mean?
This can mean many things actually. This article dedicated to recent (relatively of course) addition of the 64-bit support in AMD’s and Intel’s micro-processors. Processors supporting 64-bit calculations exists for many years. However these were industry class processors, very expensive and powerful. Couple of year ago, first AMD and then Intel began selling 64-bit processors designed with home user in mind. This historical change is the one I would like to review in this article.
What the difference between the 32-bit and 64-bit anyway?
Processors with 64-bit support are those that natively support operations with 64-bit long numbers - you need lots of bits to accommodate large numbers. You may be a little confused by the fact that built into both Linux and Windows calculators easily sum a pair of nearly every possible numbers, including a pair of very big numbers. The thing is that 32-bit CPUs only simulate calculations with large numbers.
In 32-bit computer, summing two 64-bit numbers takes 10 and even more times than summing two 32-bit numbers. On the other hand, in 64-bit computers summing two 64-bit numbers takes same period of time as summing two 32-bit numbers.
General purpose registers
Another, less obvious, difference between the two is that processors with 64-bit support has additional 8 general purpose registers - these are small pieces of memory that are built into processor itself and help it to do its job. Importance of the later addition often overlooked, however this is the change that has brought a truly significant performance boost to 64-bit processors over their 32-bit predecessors.
What additional registers good for?
Actually the CPU does most of its operations using registers. Registers work as fast as the CPU itself, while RAM is much slower. So in terms of performance, it is better to do as many calculations using registers as possible. The problem is however that having registers is very expensive.
Intel’s Itanim processors have 128 general purpose registers. Itaniums are an industry class processors and are very expensive.
Additional 8 registers is a significant addition that let the CPU to speed up some of its operations by a large margin.
So how good 64-bit really is?
With 64-bit extension you get 10% performance boost for free. This number can be different from system to system of course, but I think we can presume this is pretty much the average.
What about OS and software?
When you have some neat feature in your CPU, you need software uses it. This is why there are 32-bit operating systems and 64-bit operating systems. First knows nothing about 64-bit calculations and additional registers, while the later uses both of them all the time.
Same with regular software.
Does that mean that paying extra money for 64-bit Windows XP/Vista worth it?
It’s a bit complex. You cannot run 64-bit software on 32-bit operating system. So if you plan running anything that uses 64-bit, you will need 64-bit operating system.
Still for most of the users the answer would be negative. The problem is that most of the software for Windows is 32-bit. 64-bit versions are rarely available. You can run 32-bit software on 64-bit computer and 64-bit operating system, but buying 64-bit operating system is often useless because you may end up using 32-bit software all the time.
update: As Mr. rasmasyean kindly noted in the comments below, amount of physical RAM that you plan to have in your computer is another consideration that should be taken. 32-bit versions of both Windows XP and Windows Vista limit amount of supported physical RAM to 4GB. In case you need more RAM, you will need 64-bit version of Windows.
How about Linux?
Linux is completely different story. For most of the software there is a 64-bit version. Even if there is none, you can try to compile it yourself - it is not that complicated. And there is no difference between 64-bit and 32-bit operating system in terms of price. So go ahead, grab yourself a 64-bit Linux and enjoy its improved performance

August 26th, 2008 at 1:42 pm
Althought not explained in the article, related to the new CPU registers in x86-64 architectures, Win64 OS, has a new default function calling convention, which applies to all the API, plus user applications by default, which passes parameters throught registers instead of throught stack, making another bit of speed boost.
August 26th, 2008 at 2:10 pm
You talk about something called ABI - Application Binary Interface. Actually it is operating system independent - Linux has it too. The reason I didn’t mention this is because this is way beyond scope of this article. This article intended for average computer user. On the other hand, nowadays some engineers don’t know what stack is
August 27th, 2008 at 7:32 am
Sorry to say but your arguments are flawed because you missed some pretty critical information. And you appear to know little about Windows.
32-bit means it can only address 2^32 (2 to the 32nd power) = 4GB memory spaces.
That would be RAM + VRAM + other devices on Motherboard, etc.
e.g. If you have a 1 GB VRAM, you will prolly only be able to get 2.7GB user RAM approx.
Superfetch makes your computer’s “data-access” speed much faster the more RAM you have.
“There appears to be a shift taking place in the PC industry: the move from 32-bit to 64-bit PCs.
We’ve been tracking the change by looking at the percentage of 64-bit PCs connecting to Windows Update, and have seen a dramatic increase in recent months. The installed base of 64-bit Windows Vista PCs, as a percentage of all Windows Vista systems, has more than tripled in the U.S. in the last three months, while worldwide adoption has more than doubled during the same period. Another view shows that 20% of new Windows Vista PCs in the U.S. connecting to Windows Update in June were 64-bit PCs, up from just 3% in March. Put more simply, usage of 64-bit Windows Vista is growing much more rapidly than 32-bit. Based on current trends, this growth will accelerate as the retail channel shifts to supplying a rapidly increasing assortment of 64-bit desktops and laptops.”
http://windowsvistablog.com/blogs/windowsvista/archive/2008/07/30/windows-vista-64-bit-today.aspx
August 27th, 2008 at 7:41 am
And this is what they said as well…
“PC Accelerators built into Windows Vista, such as Windows SuperFetch, improve performance by keeping commonly used programs in memory, even when the program is closed. More memory capacity on 64-bit PCs allows SuperFetch to do its job more efficiently.”
Just an FYI, so you can include this in your analysis. I guess not many people know that Vista has this technology that sort of “redefines” traditional ways of computing. WPF is also something that introduces some new concepts from a “software engineering” point if you’re interested in checking that out as well. Perhaps it can give you some ideas that carry over to Linux.
August 27th, 2008 at 9:11 am
Well… I am wondering if there’s a slight chance that at least some of my arguments are right…
As a rule you don’t need 64-bit support to have more than 4GB of RAM. Good old Pentium 4 is well capable to address more than 4GB of RAM with both Windows and Linux. However when you try to have more than 4GB of RAM there are whole bunch of limitations unrelated to either OS or the CPU. For instance, I have 4GB on my XP machine at home, but it only sees 3.2GB. Why? This limitation imposed by my MOTHERBOARD.
Still you are right. I missed this point. Someone considering to have more than 4GB of RAM should check out his computers specs. It is possible that 64-bit OS would be the only way for him/her to have that amount of RAM.
update: That’s not true. If your hardware supports more than 4GB, there is no reason to buy 64-bit Windows. 32-bit XP supports 4GB+. So it was right not to mention this because in terms of bitness it does not matter how much RAM you have. If your hardware does not support more than 4GB, then 64-bit OS won’t help you anyway.
August 28th, 2008 at 3:25 am
You mean with PAE?
http://en.wikipedia.org/wiki/Physical_Address_Extension
That is true, but to my understanding, this is usually for servers so I guess it depends on your budget or application.
But that still doesn’t seem to allow you as much as this…
“…all 64-bit versions of Microsoft operating systems currently impose a 16 TB limit on address space and allow no more than 128 GB of physical memory due to the impracticality of having 16 TB of RAM. Processes created on Windows Vista x64 Edition are allotted 8 TB in virtual memory for user processes and 8 TB for kernel processes to create a virtual memory of 16 TB.”
http://zone.ni.com/devzone/cda/tut/p/id/5709
Here is an application.
http://www.youtube.com/watch?v=PDOf3IEr4FU
August 28th, 2008 at 5:49 am
“update: That’s not true. If your hardware supports more than 4GB, there is no reason to buy 64-bit Windows. 32-bit XP supports 4GB+. So it was right not to mention this because in terms of bitness it does not matter how much RAM you have. If your hardware does not support more than 4GB, then 64-bit OS won’t help you anyway.”
Sorry, do the math.
2^32 = 4 GB. 32bit applications cannot access more than 4 GB of RAM.
Also, there are a few programs that can be recompiled for 64bit OS, especially open-source programs (as you have already noted) as well as others, provided a person has the know how and wherewithal to do so. Finally, The next version of Photoshop is going 64bit, just to name *one* prominent application.
August 28th, 2008 at 9:45 am
Actually, the only reason I cansee not ot go to 64bit OSs is if you ahve legacy 16bit or even (shudder!) 8bit apps that need to run, or legacy hardware that has no 64bit drivers.
August 28th, 2008 at 10:02 am
@John L. Galt: You can access more than 4GB with two processes. This is why this is virtual memory.
You’re right. Today more and more vendors create 64-bit versions of their software. So in couple of years having 64-bit OS may become worthwhile.
August 28th, 2008 at 10:04 am
@John L. Galt: Well… There are not many 16-bit applications left, but you’re right, lack of 64-bit drivers may become a serious problem.
August 28th, 2008 at 10:07 am
@rasmasyean: I am not sure I got your SolidWorks argument - SolidWorks is not your average home application.
). So at the end amount of RAM is a consideration when deciding between 32-bit and 64-bit Windows - I’ll update the article to reflect this. Thanks for your notes.
However, you’re right. It seems that both 32-bit XP and 32-bit Vista limit amount of supported physical memory to 4GB (another good reason to switch to Linux
October 16th, 2008 at 6:47 am
@ John L. Galt: You DON’T need 64-bit to run more than 4GB of RAM. I’m currently running 16GB of RAM in a Windows Vista Ultimate 32-bit OS. My MB support up to 16GB of RAM and so did the CPUs (Dual Xeon 3.0GHz) and my 32-bit OS recognizes all the available RAM. So, NO, you don’t need 64-bit to run more than 4GB of RAM, you need a MB that can handle it.
October 22nd, 2008 at 10:38 am
@Somanie
It is a little strange because it contradicts with this article on MSDN.