64-bit
sounds magical doesn't it? Full of the promise of faster and more powerful
computing. After all, 64 is two times 32, so there has got to be a performance
increase right?
Well, yes
and no. When we refer to 32-bit or 64-bit
processors, what we are talking about is primarily the size of the
registers, tiny, high-speed memory areas built right into the chip itself,
closer even than the level 1 cache memory. You can think of them as the hands of
the processor, in that they hold values to be operated on or
combined.
As a
vastly simplified example, say you want to add two integers together such as 2 +
3. Both values must be stored in separate registers until the adding operation
can be performed, at which point the resulting value of 5 is deposited in a
third register for transfer out. Any data to
be processed must at some point end up in a register, therefore the number and
size of the registers helps to determine the overall performance of the
processor.
Ok, so
64-bit processors have 64-bit registers instead of 32, so they are faster, yes?
Hmm, there is a catch though. When performing mathematical operations with
integers (whole numbers), having a 64-bit register only helps performance if the
integers being worked on are numbers larger than 32 bits, which is rather
unlikely in current software. If you are adding 2 + 3 or 4,987,606 + 5,000,065
you are still going to need one register for each value and one for the answer,
and the system doesn't care whether they are 32-bit or 64-bit registers, because
you can only store one value in them at any given time.
When
operating on floating point (decimal) numbers, a 64-bit register would seem to
give added precision, as it can hold more numbers after the decimal place, but
the x86 architecture, on which all current 32-bit Intel and AMD CPUs are based
already provides for 64-bit floating point registers (actually 80 bits
internally) so no advantage is gained there either. So what's the point? Well,
there is one, and it's a good one. Memory.
To access
an area in the computer's physical memory (RAM) to store or retrieve data, the
processor needs the address of that location, which is an integer number
representing one byte of memory storage.
Suddenly,
having 64-bit registers makes sense as, while a 32-bit processor can access up
to 4.3 billion memory addresses (232) for a total of about 4GB of physical
memory, a 64-bit processor
could conceivably access over 18 petabytes of physical memory.
This is the one area that clearly
shows why 64-bit processors are the future of
computing, as demanding applications such as databases have long been scraping
on the 4GB memory ceiling, and although Microsoft and Intel have combined to
enable servers using the 32-bit Xeon processor and certain versions of Windows
2003 Server to utilize more than 4GB of
memory, the amount that can be accessed per-application is still less than 3GB.
If you
are a business with a database of a terabyte or more of
information, the 64-bit AMD Athlon64 processors look pretty good right now.