32 bit vs 64 bit processors

B

Bruce Lee

Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
 
M

Marc Hulsebosch

Bruce said:
Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?
In normal 32 bit applications: none
In 64 bit applications: BIG difference: the 32 bit won't do anyting, and
the 64 bit one will.

Marc
 
G

General Schvantzkoph

Whats the performance difference between for example 1.6mhz 32 bit and
1.6mhz 64 bit processor?

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.
 
K

Ken Maltby

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.

It sounds like running in a 32bit OS would not help with those
issues, unless the size of the registers are defined in software.

Perhaps there could be a "32bit mode" where the processor
treats each physical register as two logical registers?

Luck;
Ken
 
D

DaveW

That depends on whether the application that is being used was compiled for
64 bit usaeage or not.
 
I

Ian East

Whats 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...) .
 
G

General Schvantzkoph

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...) .

The A64 is a true 64 bit processor, it has 64 bit registers and 64 bit
arithmetic units. The reason it does so well on 32 bit code is that it has
a native 32 bit instruction set. The Itanic is a pure 64 bit processor in
that it has only one instruction set, as a result it can only run 32 bit
code with an emulator which is why the performance of 32 bit code on an
Itanic sucks. Of course the performance of 64 bit code on the Itanic also
sucks because the whole architecture was ill conceived. The only way Intel
was able to get remotely competitive performance out of them was to give
them massive 9M caches which makes them prohibitively expensive to produce.
 
C

Cuzman

Bruce Lee wrote:

" Whats the performance difference between for example 1.6mhz 32 bit
and 1.6mhz 64 bit processor? "


Given that Intel released the 2Mhz 8080 in 1974, a 1.6mhz processor just
isn't going to cut it in today's market.
 
B

BlastUK

lol >_<

but seriously, both processors running on a 32bit platform will see
pretty much no difference for the average user
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top