On 26 Oct 2009 at 19:37, Dean Kukral wrote:
> There is a little confusion here that I think that I can clear up. A
> 64 bit system - "a 64 bit architecture" - refers to the word length
> internal to the cpu. It generally represents the number of memory
> locations that can be addressed in one word, two to the sixty-fourth
> power. I believe that all home computer cpu's have had a 64 bit
> architecture for a good number of years.
There are actually THREE numbers of interest here:
1. The size of integer data registers in the CPU. When people
talk about a given CPU as being "X bit", this is almost always
the number they are actually referring to. This is still 32
bits for most Intel and compatible processors unless they are
designated "64 bit" which, although becoming more and more
common, is still a minority.
2. The size of address registers in the CPU. This used to
commonly exceed the size of the integer data registers: most 8-
bit CPUs used 16-bit addresses and the 16-bit PC CPUs (8086
through 80286) used 24-bit addresses. 32-bit data registers
with 32-bit addressing has kind of been a sweet spot for almost
20 years.
3. The width of the physical memory address bus (collection of
pins) on the CPU, which is almost never wider than the address
register size. This determines the actual maximum addressable
physical memory. For instance, the 80386 SX and DX processors
both used 32-bit address registers, but the SX had only 24
physical address pins, limiting it to 16MB of physical RAM (but
making it easy to adapt tp motherboard designs intended for
80286 CPUs...).
Windows 3.x was a 16-bit OS. Most of the machines that ever
ran it had 32-bit CPUs (80386 or better), and a popular
optimization trick was to use the 32-bit data registers (which
required at least an 80386) for arithmetic while sticking with
the 24-bit address architecture from the 80286. The Pentium Pro
CPU had an optimized 32-bit core, but it's 16-bit subsystem
lacked performance and so it did poorly with Windows customers.
Intel corrected that in the Pentium II, and Microsoft finally
released Windows 95 and NT 4,
Now we have CPUs available which provide 64-bit data and
address registers, and since XP Microsoft has been shipping OS
versions which support and take advantage of those. A 64-bit OS
version won't run on a CPU that isn't also 64-bit. A 64-bit OS
knows how to manage RAM that could have physical addresses
bigger than 32 bits, so is a prerequisite for systems using more
than 4GB of total address space. (But the only 64-bit CPU I
currently own is on a motherboard that is limited to 2GB of RAM,
so CPU and OS support while required is not sufficient.)
Windows 95 was able to support 16-bit applications by running
them in one or more virtual 16-bit environments, and the 64-bit
versions of Windows are able to do similar (better, actually)
for 32-bit applications which are still the vast majority. That
trick doesn't really work for the OS itself, though, or for
drivers which need to act as OS components. If you are buying
or building a new system out of pretty standard components, that
shouldn't be an issue, but if you need to support some oddball
or legacy peripherals, lack of 64-bit driver support may rule
out a 64-bit OS version. But you may still find the price/speed
of a 64-bit CPU and matching motherboard competitive with 32-bit
versions, and the 32-bit OS and drivers etc will work on them
just fine.
David Gillett
Do you want to signoff PCBUILD or just change to
Digest mode - visit our web site:
http://freepctech.com/pcbuild.shtml
|