2 May 2009

64-bit = GoodI’m sure you’ve all heard some hype about 64-bit this and 64-bit that. The thing I read the most is that a 64-bit operating system or piece of software is automagically twice as fast as a 32-bit one. Not so. Worse yet, some operating system vendors market their product as having an “advanced 64-bit architecture”, when the truth of the matter is that their OS is not fully 64-bit.

In any case, most people today are using a 32-bit operating system, but a surprising number have already switched to a 64-bit OS. Or in some cases, a quasi-64-bit OS…

There is one true reason though why you will actually want to switch to a 64-bit OS in the near future: the infamous 3GB barrier. Just what the heck is this mystical barrier, and why should you care?

Well, maybe you won’t care just yet. If you’re perfectly content running Windows XP with 1GB of RAM, well then more power to ya! But for the rest of us, computers are advancing, operating systems are advancing, and we like to take advantage of the new bells and whistles, security, productivity, etc.

Now, let’s talk about the 3GB barrier. Usually, it’s more like a “3.3GB barrier”. First, you have to understand that the “3GB barrier” refers to the RAM limitation inherent when using a 32-bit operating system. Why is there a limit? Simply put, the term “32-bit” refers to the width of the path coming out of the processor. When that path is 32 bits wide, the processor has an “address space” of 4GB. The address space is like a map where all the components in your computer are allocated a space to live in. The processor needs this address space “map” because it needs to have specified “street addresses” for each component. That way, when data needs to be sent to the graphics card for example, the processor knows where to send the data. With a 32-bit OS, the processor operates in 32-bit mode, and that means we have 232 possible bytes, or 4GB of total space in which to map out all our hardware components.

[ad name=”banner”]

Alrighty. So, say you have a new PC with 4GB of RAM, a graphics card with 256MB of memory, a 500GB harddrive, amd a bunch of other integrated components like 8.1 channel audio, gigabit ethernet, and so on. When the PC boots, the BIOS sets everything up before handing control over to the OS. One of the things the BIOS does is to run through a process where it enumerates (or maps out) all the components in your system. The dialogue will look something like this:

BIOS: Who’s there? We got a graphics card?

GRAPHICS CARD: Yo! I have 256MB of RAM. Give me address space, fool!

BIOS: You got it, 256MB mapped to Graphics Card. What else have we got?

ETHERNET: Dude, I so need some address space…

BIOS: You got it, here ya go!

And so on. Part of the address space is taken up by the actual RAM installed in the computer. In this case, we are imagining that our computer has 4GB of RAM. Now, as we’ve already established, the maximum amount of address space that is supported in a 32-bit OS is also 4GB. So, the BIOS can’t allocate the entire address space to RAM alone, because then your graphics card, ethernet, audio, and so on wouldn’t work at all!

So what happens? Well, the BIOS automatically reduces the amount of RAM available to the OS. With our computer example above, instead of your OS showing that you have 4GB of RAM available, it might show something like 3.3GB. That’s because 0.7GB of address space is used up by all the other components in your computer. Those components aren’t actually using the physical RAM – they are using the address space which would have all been handed over to the RAM, but in this case cannot be.

In other words, with a 32-bit operating system, the BIOS must make a map of all components and fit it into a space of only 4GB. What happens if you have a new gaming rig with 8GB of RAM? Sorry! You’re out of luck. You’ll only see 3.3GB (or thereabouts) if you have a 32-bit OS.

Enter the 64-bit OS. With a 64-bit processor, you have a HUGEMONGOUS address space that is way, way, way bigger than 4GB. Practically speaking, the limit is not as monstrous as 264 bytes = 16 exabytes. Since even the idea of 16 exabytes of RAM is completely absurd at this point in time, modern 64-bit processors don’t use the whole 64 bits for their address space. Still, you can easily have 8GB or 16GB or whatever of RAM, and your 256MB graphics card, and all the other components in the system. The BIOS no longer needs to cram all the components into a 4GB space, so in our imaginary PC example above, your 64-bit OS will report 4GB of RAM and you will actually be able to use all of it! Sweet.

This is the one reason why you want a 64-bit OS. RAM these days is dirt cheap. Especially if you buy a new computer, it will most likely have 4GB of RAM or more in the coming months and years. In fact, Microsoft expects that the 64-bit version of its new OS, Windows 7, will be far more popular than the 32-bit version. Already it seems that in the past 6 months or so, 64-bit Vista is outselling 32-bit Vista. The reason is the 3GB barrier. If you want to use all your RAM, get 64-bit.

“But hang on a minute,” you say. “If the address space is only 4GB with a 32-bit OS, then how can the processor access the whole 500GB of my harddrive?!” Ah, an excellent question. The answer is that addressing tricks are used so that a much smaller address space is allocated to the harddrive, and requests from the processor to that harddrive address space are a bit more complicated. The end result is that even if you have a 500GB harddrive, the address space required to access the whole drive is nowhere near 500GB!

[ad name=”square-l”]

Now, how do you know if your processor supports a 64-bit OS? Well, if it’s a modern processor, it does. Starting with the later series of Pentium 4 processors, almost all of Intel’s desktop processors support 64-bit. The same is true of AMDs processors. The easiest way to make sure is to find the model number of your processor, and Google it. If it says something like “64-bit extensions”, then you’re all set. The exceptions these days are the lower end laptop and netbook processors like Intel’s Atom, which is only 32-bit. But then, what the heck would you need more than 2GB of RAM for in a netbook?!

Next, how do you enable the 64-bit support on your computer? Normally, you go into the BIOS setup when your computer is first booting and look for a setting called “Memory Remap Feature” and set it to “Enabled”. This little trick will enable 64-bit support. Note that it also might make your 32-bit OS crash upon booting, so keep this in mind if you are dual-booting!

One final word: If you’re thinking about upgrading to Windows 7 64-bit and you’re worred about drivers, don’t be. Windows’ 64-bit driver support is excellent, and has been since about a year after Vista and Vista 64 were released.

The 3GB Barrier: Why you want a 64-bit OS
Tagged on:                     

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.