Last week I posted an article about 64-bit computers but I don’t feel it was well-written. Here follows a second attempt to explain the important points without going into a lot of technical detail too early.

The major microchip manufacturers, Intel and AMD, now sell 64-bit processors for personal computers. 64-bit chips themselves are nothing new: there have been 64-bit processors for high-end servers for decades. What’s new is that in the last few years, 64-bit chips have entered the consumer market. Which opens the question, if you’re in the market for a new computer, should you consider a 64-bit machine?

Until recently, most consumer computers used 32-bit microprocessors. (Actually, many years ago when I was in college, the majority of consumer computers were 16-bit.) The number of bits “of the processor” refers to the size of the binary number it can store and manipulate. This is called the word length of the processor.

Advantages of 64-Bit Computers

The main advantage of having a longer word length is that the processor can access large amounts of memory.

Desktop computers are starting to approach what would be considered “large amounts” of memory. Large amounts, to a 32-bit computer, means “over 4 gigabytes”. We’re getting to the point where one can envision wanting that much memory on a home PC. A computer with a 32-bit word length can’t make use of more than 4 GB of memory; one with a 64-bit word length is, for practical purposes, unlimited in the amount of memory it can use. (Technically, there is a limit, but it’s in the billions of gigabytes and not anything you or any major government could afford to actually use on one machine.)

The main reason I can foresee why a home user would want 4 GB or memory or more is for HD video. Whether it’s editing home movies of baby’s first (digitally recorded) steps, or watching downloaded movies from one of the services that is starting to make that legally possible, high-resolution video is going to take a lot of memory to play smoothly.

Disadvantages of 64-Bit Computers

The main disadvantage of 64-bit computers is that, to a certain extent, they’re incompatible with software written for 32-bit computers. The incompatibilities are most likely to show up in device drivers and the operating system itself. You may also run into some problems with Java.

64-bit processors are fairly new. Not all software is available in 64-bit versions yet, and in some cases the 64-bit version is buggy or incomplete. What this means is that you cannot count on your current devices, such as your printer, scanner, even video card, working smoothly (or at all) with a new 64-bit computer. There might not be device drivers available. For many people, this may not matter very much. Most people buy their computers fully assembled, and they usually come with video cards and the like. Printers wear out after a few years anyway so if you are looking for a new computer, it may be time for a new printer as well. Just be aware that if you’re on a budget and planning on re-using some of your current devices, they may not work on a new 64-bit machine.

Another compatibility problem you may run into is with Java (as I mentioned previously). Java is used in some Web sites to make animations or other interactive content. For a long time there was no 64-bit Java plug-in (that’s a little program that lets your Web browser display movies or other Java content). The work-around was to use a 32-but Java plug-in instead, but it simply didn’t always work right. If you’re a heavy Web user, this will affect your experience.

The bottom line is that 64-bit computers need a few more years before they are widespread enough that all the bugs have been worked out of the software. I have a 64-bit machine at work and it causes me a lot of headaches when I write software on it.

A Word to the Nerds: How 64-bit Word Length Helps Performance

The following is a reprise of the nonsense I was scribbling last week about 232-1 and all that.

Remember that all data in the computer is encoded as sequences of zeros and ones. Each datum (that’s the singular of “data”) has to be stored somewhere, whether on disk or in memory. The computer needs an indexing scheme in order to find that stored datum again.

The way this is done on a typical mass-market computer (as opposed to on the Space Shuttle or something) is that the data is broken into small chunks called bytes. The bytes are stored in a big sequence of memory “slots”, kind of like a row of mailboxes. So there are millions of these “mailboxes” inside your computer, some containing data and some vacant. When the computer wants to process a piece of data, it uses a memory address, which works just like a mailbox number. The processor goes to the memory address and grabs whatever is stored there. It can then do its little job on that data, which usually involves adding, subtracting, or multiplying, but we will not burden ourselves with the details of how that has anything to do with playing music or writing a blog.

Now, again for typical mass-market computers, the memory address itself is one word long (either 32 bits or 64 bits depending on the processor). That means there’s a maximum size to the memory address the computer can use. That limit works out to be 4 GB (no big surprise there) for 32-bit computers.

As an aside, old-timers like me may remember back to the days of DOS, when there was 640 KB (that’s kilobytes, a quaint unit of measure equal to 1/1,000 of a megabyte) of “base memory,” then all that confusion about “extended” and “expanded” memory. That’s because DOS was using a 16-bit memory address, so the upper limit on easily available memory was 216-1, or 655,535. Beyond that limit users had to run special software called a expanded memory manager that would fetch data from addresses beyond the physical limit of the processor. In order to exceed 4 GB of RAM on a 32-bit machine, one has to play the same sort of game.

Now, the maximum memory address for a 64-bit computer is four billion times larger than the maximum memory address for a 32-bit computer. That probably exceeds the total amount of memory in use on Earth at the time of this writing. It should be enough to last us another couple of decades, at least.