The processor by default boots as a 16-bit processor (real mode) which is then transitioned into 32-bit (protected mode) by most modern operating systems. Life is well, everything seems to be just fine, but as the world pushes the boundaries so does my memory requirements. Sure my 32-bit memory address space allows for fast access to 4GB of memory, but the world is expanding and soon I’ll be needing 8GB or more to keep everything running. We have a little trick called Page Address Extension (PAE) which will let us jump through a few hoops to get access to 64GB, but the page table crawling isn’t particularly fast and now we just have that 64GB limit which we’ll catch up to in no time (think High Performance Computing – HPC). So what do we do to plan for the future?Let’s do the same thing IPv6 did to solve our IP deficit: move to 64-bit (long mode). Now we have a ceiling of somewhere in the realm of 256TB (and we shouldn’t have to worry about the future for another five years or so). But watch out, this new memory limit isn’t all good. You’re now much more vulnerable to cache misses resulting from the increase in size for addressing. It’s a good thing Intel has really large L2 caches, but don’t look for anything too drastic in the L1 size for a long time.
Great, so we have more address space for memory, what else do we get? Well all you math nerds out there will appreciate the increase in precision for primitive data types, but the average person won’t notice any difference. I know what you’re thinking: “Is this 64-bit stuff all just a bunch of hype to sell computers?”. Well, when you put it that way: yes. But the wonderful thing about the 64-bit roll-out is that AMD got to it first, so whatever they did to set the standards Intel had to follow (interesting side-note: AMD pays royalties to Intel to use 32-bit x86, but Intel pays royalties to AMD for 64-bit x86). The best part of this spec solved the biggest problem the x86 platform has suffered from since the beginning: register starvation. What does that mean? We all know that RAM is faster than your Hard Drive, and that your L2 cache is faster than RAM, and L1 is faster than L2, but the fastest memory is actually on the processor in what is known as registers. The 32-bit x86 spec has eight general purpose registers. Basically everything that happens on the system is passed between these registers and various memory, but that leaves a lot of overlap and massaging of data to get work done. AMD doubled the number of general purpose registers to 16, making it the same as RISC processors from before which consistently beats the x86 CISC architecture on performance time after time (remember kids, the best one doesn’t always win). So what do these extra registers get you in the end? If you look at Apple’s advertising for the move to 64-bit you get a 20% performance increase just from the additional registers (but remember, your software has to be 64-bit to take advantage of this).
So, is this 64-bit stuff really worth it? Like everything in life, it depends. Sure a fast new processor will speed up your applications, but if you’re keeping all your 32-bit applications on a 64-bit operating system you’ll probably see a performance decrease. The point of all this is to say that yes the future of the world is 64-bit, but you don’t have to use it if you don’t want to (and you probably won’t as 64-bit software is few and far between – it’s not always just a re-compile) and most of the time you don’t want to. Windows has a long way to go before you’ll see a significant 64-bit presence, Apple has a huge head-start over Microsoft, but the UI won’t be fully 64-bit until Snow Leopard later this year, but that darling Linux is at the head of the game in this regard. Remember, it all depends on your applications.