# Intel 32-bit VS. AMD 64-bit processors

## Re-JeeP

Hi!

I have read some articles about Intel 32-bit VS. AMD 64-bit processors. The only articles / forum discussions are all pretty old. So I would like a status report of the situation today when the new Intel Dual Core has been presented.

And I am of course talking about the performance on a GNU/Linux system.

What are the ups and downs with these different processors today? Which would you choose if you should buy a new computer, and why?

Spit it out!   :Wink: 

----------

## didymos

Umm, the Intel processors are just as 64-bit as the AMD ones.  Have been for awhile now.  Besides which, the dual core thing isn't really new.  The Core Duo line is relatively new, but Intel had dual core CPUs well before those were introduced.

----------

## Re-JeeP

 *didymos wrote:*   

> Umm, the Intel processors are just as 64-bit as the AMD ones.  Have been for awhile now.  Besides which, the dual core thing isn't really new.  The Core Duo line is relatively new, but Intel had dual core CPUs well before those were introduced.

 

So intel doesn't make 32bit processors anymore?

Not long ago I bough a laptop with a 32bit pentium-m processor.

But isn't the new dual cores 2 x XMHz 32-bits?

----------

## vivi131313

Here's good start to answering your question: http://en.wikipedia.org/wiki/X86-64

Long story short, neither architecture is truly 64-bit. There are onyl a few truly 64-bit processors, those are the Itanium and other higher-end server processors like SPARC's etc.

These processors are actually 32-bit processors that support 64-bit memory addressing. Simply allowing you to have more system memory then the 2^32= 4 Gigabytes. Which is all a 32-bit processor is capable of addressing. Other thans that there are some other extensions to the processors, and differences between them, but at the core they still operate primarily on the 32-bit instruction set. So yes Intel does still make 32-bit processors as does AMD.

----------

## Genone

 *vivi131313 wrote:*   

> Here's good start to answering your question: http://en.wikipedia.org/wiki/X86-64
> 
> Long story short, neither architecture is truly 64-bit. There are onyl a few truly 64-bit processors, those are the Itanium and other higher-end server processors like SPARC's etc.

 

Out of curiosity, how do you define if a processor is "truly 64-bit" ?

----------

## barophobia

 *Genone wrote:*   

> Out of curiosity, how do you define if a processor is "truly 64-bit" ?

 

Yes what is a "truly 64-bit" processor?  One that will only run 64bit instructions?  

All new intel and amd processors have the 64bit extensions.

----------

## didymos

 *vivi131313 wrote:*   

> Long story short, neither architecture is truly 64-bit. There are onyl a few truly 64-bit processors, those are the Itanium and other higher-end server processors like SPARC's etc.

 

You may want to read that article a bit more closely:

 *Quote:*   

> 
> 
> The primary defining characteristic of AMD64 is its support for 64-bit general purpose registers, 64-bit integer arithmetic and logical operations, and 64-bit virtual addresses. The designers took the opportunity to make other improvements as well.
> 
> 

 

That right there, my friend, makes it a "real" 64-bit processor.  It's just that it can also use a 32-bit mode and run standard x86 code.  Also, the Itanium and SPARCS  have 32-bit modes as well, though not the same implementation of x86 in the Itanium's case, and for SPARCs, it's running  SPARC32 code (a close analogue to the x86_64, in fact, only on a RISC architecture).

You may as well say that, e.g., the original Pentium wasn't really a 32-bit processor since it could also execute code in real mode.

[edit] OK, newer Itanium's have ditched IA-32 support in hardware, so the above only applies to earlier revisions.

----------

## vivi131313

For some reason I didn't make the connection that the extended registers are exactly what I was looking for. So since both processors ALU's would be using these 64-bit registers then I guess they are technically 64-bit processirs. I hadn't considered them pure 64-bit because they are simply extended versions of processors that were and still fully support,without emulation, 32-bit. They still fully support 32-bit applications because they use the same logic and almost an identical instruction set, obviusly with the exception of some improved address decode logic and a few more instructions to handle full 64-bit operations.  As you said with the Itanium and sparc having a 32-bit mode, which from my understanding only emulates 32-bit mode. So I guess I was looking for an overhauled architecture defining the jump to 64-bit, like the Itanium, and not just an extended 32-bit processor. 

Take that as you will, I guess I haven't studied the current architectures enough, I've had IA-32 and some other less popular architectures, but x86_64 hadn't been developed when I had my computer architecture courses. And now I just do front-end work on chipsets and graphics.

----------

## ShinyThings

I was under the impression that they aren't "truly" 64-bit yet because they don't really use 64-bit addressing. They use 48-bit addressing, because 64 bits would be overkill for today's computers.

----------

## didymos

Yeah, but I still think it's the native word size, register width, and instruction size that matter the most.  Memory addressing can get pretty strange, esp. on x86 descended systems, so even if you don't have a full 64-bit addressing scheme, with memory management tricks and extensions, the max amount of memory supported can actually exceed that of a flat 64-bit address space.  And don't forget floating point, which uses entirely different bit widths.  Really, when people talk about 64-bit, they typically mean integer size.  

Wait, wasn't there also some point when i686 chips started to use a 36-bit memory model?

----------

## eccerr0r

I think the standard definition of an "x" bit computer is how many bits of data it can compute in one instruction.  Which is sort of confusing for some instruction sets that deal with more bits over multiple cycles.  Hence all these wars for definitions.

I think the weirdest example is the HP48 Saturn CPU which instructions dealt with 64 bits but only handled 4 per cycle...

Then the other end of the spectrum is all these SIMD instructions...

Memory management has always been weird.  There's "directly mappable" memory and "indirectly mappable" memory and I think for the most part "directly mappable" is what's considered "physical address space" (else going back into time, is EMS on 8086's really full address space?  How about segmentation issues, which is what's needed to deal with >32 bits of memory on ia32 (not to mention all the 64K segments on 8086)?)

----------

## Homer512

There has been an interesting discussion the gentoo-amd64 mailing list about Intel 64bit vs. AMD 64bit some time ago. Instead of linking it, I just quote the relevant parts. If you want to read the whole discussion, its name was "Is there any difference with 4 core?" You can find it on gmane.org

Duncan: 

 *Quote:*   

> 
> 
> As for Intel vs. AMD, with the hypertransport interconnect system AMD has, with AMD's hardware IOMMU for DMA access above the 4 gig boundary 
> 
> (Intel has to emulate it with software bounce-buffers on most of its hardware, kinda nullifying the point of DMA), and with the vaunted Intel 
> ...

 

Bob Sanders:

 *Quote:*   

> 
> 
>  [referring to the PentiumD Dual Core] And it's a crappy cpu.  Don't waste you're money.  Any AMD cpu running at half it's speed will eat it alive.
> 
> [...]
> ...

 

A bit nearer to the topic of this thread: "[gentoo-amd64]  Re: 32 or 64 for web server and mysql"

Duncan:

 *Quote:*   

> 
> 
> Generically, 64-bit can at times be worse, because some things (integers, memory addresses, etc) take 64-bits rather than 32, meaning bigger 
> 
> binaries on disk, more memory used, more bandwidth necessary between disk and memory and memory and CPU, larger cache required for the same effect, etc.  Thus, on many archs other than x86, it's quite common to have the kernel as 64-bit to allow addressing larger memory and etc, but run a 32-bit userland -- basically everything but the kernel.
> ...

 

----------

## didymos

When did the discussion occur?

----------

## Corona688

I don't think any of those answers have become obsolete since whenever they were posted.

----------

## didymos

No, I don't necessarily think so either, I just wanted to know when.

----------

