32bit vs 64bit computers, the QA

Table of contents

IntroductionBACK TO TOC

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?BACK TO TOC

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?BACK TO TOC

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 registersBACK TO TOC

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?BACK TO TOC

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?BACK TO TOC

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?BACK TO TOC

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?BACK TO TOC

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?BACK TO TOC

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 :D

Did you know that you can receive periodical updates with the latest articles that I write right into your email box? Alternatively, you subscribe to the RSS feed!

Want to know how? Check out
Subscribe page

15 Comments

  1. Guti says:

    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.

  2. Alexander Sandler says:

    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 :D

  3. rasmasyean says:

    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

  4. rasmasyean says:

    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.

  5. Alexander Sandler says:

    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.

  6. rasmasyean says:

    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

  7. John L. Galt says:

    “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.

  8. John L. Galt says:

    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.

  9. Alexander Sandler says:

    @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.

  10. Alexander Sandler says:

    @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.

  11. Alexander Sandler says:

    @rasmasyean: I am not sure I got your SolidWorks argument – SolidWorks is not your average home application.
    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 :D ). 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.

  12. Somanie says:

    @ 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.

  13. David Brown says:

    There seems to be a bit of mixup about physical memory limits and address space limits. With a 32-bit processor, you have a maximum linear address space of 4GB. Different OS’s can place other limits on these, such as making 1GB or 2GB of this “kernel” address space, leaving 3GB or 2GB for “user” address space. These limitations are at the logical level, and are per-process. They apply to the whole virtual address space (your physical memory, plus swap space).

    Intel PAE allows a 32-bit processor to have more than 4GB physical ram (without PAE, you can get more than 4GB virtual memory if you have swap space). PAE requires support from the motherboard and from the OS. Windows “server” editions typically have PAE enabled, as do “server” kernels for Linux. However, PAE adds overhead to normal access, so don’t use it unless you need it. It also does not affect the maximum address space accessible per process – a single process cannot directly access more than 4GB space even if you have 32GB physical ram.

    Also, part of the physical address space is eaten up by PCI and other memory-mapped peripherals. Thus with a 32-bit processor/OS and no PAE, you get a maximum of about 3.2 GB physical memory (details depend on the hardware).

    With a 64-bit processor and OS, your physical memory limits are dependent on the motherboard and processor, and any artificial limits imposed by the OS. The per-process logical address space is unlikely to be a bottleneck with 64-bit addresses!

    As a general rule, you want a 32-bit OS for 2GB or less, and a 64-bit OS for 4GB or more. For modern systems, there is no reason for using PAE to get more memory in a 32-bit system.

    If you are using Linux and using mainly open-source software, you can happily use 64-bit for everything, even if you have less memory – pretty much all software will work at 64-bit. Some software will be faster (taking advantage of the additional registers, and perhaps 64-bit arithmetic), some will be slower (due mainly to larger pointers taking more memory). 32-bit binary-only software, such as flash plugins and media codecs, have traditionally been a problem for 64-bit Linux systems, but support has improved greatly.

    For Windows, the situation is different – there can be many unexpected compatibility problems with using 64-bit windows. There are (so I’ve heard) fewer issues with Vista 64 (in the sense that if a program is incompatible with Vista 64, it is probably also incompatible with Vista 32), but XP 64 had problems with a lot of software. And of course, you have endless fun with 32-bit drivers and unsigned drivers not working on Vista 64.

  14. Andre Goddard Rosa says:

    @David Brown – Thanks again for your helpful insights!

Leave a Reply

Prove you are not a computer or die *