B
Bruce Lee
Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
1.6mhz 64 bit processor?
In normal 32 bit applications: noneBruce said:Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
General Schvantzkoph said:Meaningless question, which processor? Even if you are talking about the
same processor, .i.e. an Athlon 64 running a 32 bit program or a 64 bit
program it's still meaningless because different applications behave very
differently. I'll give you a several examples. One of the things that AMD
did in the 64 bit extensions to the x86 architecture is add more
registers. This has nothing to do with 64bitness, they just took the
opportunity to fix a major defect in the x86 architecture which is too few
registers. For programs that do a lot of computation these additional
register can speed things up considerably. For most applications this is
the only thing about 64 bit mode that will improve performance. The only
area where the 64bitness of the architecture helps directly is for
applications with huge (>4G) datasets. Trying to deal with >4G of memory
on a 32 bit machine requires the use of overlays which are very
inefficient. So people with giant database applications will see a big
boost when running in 64 bit mode. There are other applications which get
much slower in 64 bit mode because you've doubled the size of all of the
memory pointers and integers which effectively cuts your cache and main
memory bandwidth in half. One example of this is NCverilog which is a
Verilog simulator. It's 40% slower in 64 bit mode then in 32 bit mode. The
reason for this is simple, Verilog simulators spend most of their time
managing large data structures (i.e. they are chasing pointers) and very
little time doing actual computing. In 64 bit mode those structures, which
consist of pointers and integers, double in size. That means the
probability of a cache hit is greatly reduced, the penalty of a cache miss
is doubled (because the main memory performance in terms of
pointers/second has been cut in half), and the speed of procedure calls
has been reduced because you have to push and pop 64 bit registers on to
the stack instead of 32 bit registers.
The bottom line is that there is no one answer about what the performance
of 64 bit vs 32 bit is.
Well, it depends on whether you're talking about a true 64-bitWhats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
Well, it depends on whether you're talking about a true 64-bit
processor like the SPARC or Itanium, or a 32-bit processor with 64-bit
extensions like the Xeon2 or Opteron. (This really reminds me of my
old TurboGrafx system when I was a kid... ) True 64-bit processors
generally run 32-bit apps very poorly and are generally only used for
specialized applications that need to access very large data sets,
need a lot of ram, or need to work with very large numbers.
Traditionally this kind of power was only needed for scientific
applications, databases, CAD, etc... The new hybrid processor
technologies like AMD64 (opteron) and EM64T (Xeon2) allow the 32-bit
core to access a flat 64-bit memory space and have 64-bit registers.
They will run 32-bit apps at about the same speed as their 32-bit
processor counterparts. The real advantage though, comes when trying
to address more than 4GB of memory. Since a 32-bit processor can only
address 4GB of memory natively, they have to start paging RAM in and
out of addressable space which creates some significant overhead when
exceeding this limit. A hybrid or true 64-bit processor can address a
64-bit flat memory space and doesn't have this problem. However,
since the hybrid processors have 32-bit cores, they can not natively
do 64-bit math and generally won't perform as well in the afore
mentioned specialized applications (scientific apps, databases, CAD,
etc...) .