Re: 32-bit vs. 64-bit x86 Speed

George Peter Staplin <georgeps@xmission.com>
13 Apr 2007 01:36:42 -0400

          From comp.compilers

Related articles
32-bit vs. 64-bit x86 Speed jlforrest@berkeley.edu (Jon Forrest) (2007-04-11)
Re: 32-bit vs. 64-bit x86 Speed gah@ugcs.caltech.edu (glen herrmannsfeldt) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed marcov@stack.nl (Marco van de Voort) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed anton@mips.complang.tuwien.ac.at (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed DrDiettrich1@aol.com (Hans-Peter Diettrich) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed ian.rogers@manchester.ac.uk (Ian Rogers) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed meissner@the-meissners.org (Michael Meissner) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed georgeps@xmission.com (George Peter Staplin) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed tmk@netvision.net.il (Michael Tiomkin) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed dot@dotat.at (Tony Finch) (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed kenney@cix.compulink.co.uk (2007-04-13)
Re: 32-bit vs. 64-bit x86 Speed DrDiettrich1@aol.com (Hans-Peter Diettrich) (2007-04-14)
Re: 32-bit vs. 64-bit x86 Speed DrDiettrich1@aol.com (Hans-Peter Diettrich) (2007-04-14)
Re: 32-bit vs. 64-bit x86 Speed gah@ugcs.caltech.edu (glen herrmannsfeldt) (2007-04-18)
[6 later articles]
| List of all articles for this month |

From: George Peter Staplin <georgeps@xmission.com>
Newsgroups: comp.compilers
Date: 13 Apr 2007 01:36:42 -0400
Organization: nil
References: 07-04-031
Keywords: architecture, performance
Posted-Date: 13 Apr 2007 01:36:42 EDT

Jon Forrest wrote:
> I don't think it's worth messing with 64-bit computing for apps that
> don't need the address space."


This is an interesting claim. I've heard from several people that the
64-bit x86-64 architecture can be slower with some code patterns.


The 32-bit x86/IA-32 instruction set is translated on modern processors
to a more efficient form, and modern IA-32/x86-64 processors have >= 160
internal registers, and register replacement algorithms that run
automatically.


There are several other things to consider:
  1. The 2038 bug generally is fixed by a 64-bit computer. Computers
doing bank transactions and many automated calculations may have issues
with a 32-bit computer. Consider long loans, and contracts.
  2. The x86-64 instruction set may translate more directly to the
underlying architecture than the x86 instruction set.


Cray uses SRAM with the AMD x86-64 CPUs, so the RAM state doesn't need
to be updated after a period of cycles, and thus doesn't block the bus
during some loads/stores from what I understand. Most consumer RAM is
much cheaper, and does require periodic updates to retain the data
patterns. SRAM is also rated at a higher speed than DDR or SDRAM
generally. Note: the modern CPUs use some form of SRAM for the high
speed caches builtin to the CPU.


> Let's say you're a Linux user who never needs to run programs that
> don't fit in 32-bits. Would you run a 32-bit or a 64-bit version of
> Linux? You compiler people probably have intimate knowledge of the ISA
> issues here so I'm interested in what you have to say.


It would depend on what I was using it for. Compatibility is a big
reason to use the 32-bit x86/IA-32.


I think it's very difficult to compare CPUs, especially modern CPUs,
because of variable cycles-per-instruction, cache patterns and
algorithms effecting the cache replacement, register replacement
algorithms, branch prediction algorithms, operating system differences
for x86 vs. x86-64, and many other variables. You might find a clear
winner with one program, and the same machine might be a clear loser
with another.


So, I guess the primary reasons to use the x86-64 are address space,
2038, and possibly a performance increase depending on the programs and
toolchain.


-George


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.