A64 = 64 bit emulation?

JDCentral

Senior member
Jul 14, 2004
372
0
0
Isn't the x86-64 'architecture' simply an extension to the x86 architecture?

So... A64 is basically a 32-bit architecture that is capable of manipulating double-length words?

Yes/no/flame/troll?
 

FrankSchwab

Senior member
Nov 8, 2002
218
0
0
What, pray tell, is a 32 bit architecture?

X86-64 has a 64 bit PC
X86-64 has 64 bit registers
X86-64 has opcodes that are generally 32 bits long (IIRC)

So, you tell me how you define a 32-bit architecture, and I'll tell you whether the X86-64 is one or not.

/frank

/frank
 

FrankSchwab

Senior member
Nov 8, 2002
218
0
0
Ooops, my mistake. The X86-64 has opcodes that are generally 8 bits long, though the full instructions can be a lot longer by the time you add register/immediate references and instruction prefixes.

 

JDCentral

Senior member
Jul 14, 2004
372
0
0
As far as I know, a 64-bit architecture is on in which a word is 64 bits.

I.E. - one register holds one word - you add two words to get another word, multiply two words to get... two more words, etc., etc.
The opcodes can be whatever length you want - as x86 has taught us all.. hehe.
 

aka1nas

Diamond Member
Aug 30, 2001
4,335
1
0
Rather think of it as a 64-bit architecture that can fall back on 32-bit x86 when needed and still maintain high performance. It's all semantics, anyway.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
AMD64 and its clone Intel EM64T has 64-bit registers, 64-bit address size, and instructions to deal with both. Yes it's an extension of the existing command and register set, just like the 386's 32-bitness on data and addressing was an extension to the 286's 16-bit data 24-bit addressing, which in turn was an extension to the 8086's 16-bit data 20-bit addressing.
 

Calin

Diamond Member
Apr 9, 2001
3,112
0
0
Originally posted by: Peter
AMD64 and its clone Intel EM64T has 64-bit registers, 64-bit address size, and instructions to deal with both. Yes it's an extension of the existing command and register set, just like the 386's 32-bitness on data and addressing was an extension to the 286's 16-bit data 24-bit addressing, which in turn was an extension to the 8086's 16-bit data 20-bit addressing.

Winnar :D
I would say that an architecture that can atomically manipulate 64-bit entities qualifies as a 64-bit architecture (even if by this definition, the floating point unit on Pentiums qualifies as 64-bit architecture and even 80-bit architecture).
An Pentium3, by example, would copy a 64-bit value in two operations (two 32-bit atomic copy operations).
Is 64-bit addressing necessary to make a architecture a 64-bit one? Well, 64-bit addressing is one of the most important reasons 64-bit architectures exists. So I would say yes, and by this the numeric coprocessor (FPU) on 32-bit architectures would be out of 64-bit or 80-bit architectures.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Agreed ... flat (non-paged) addressing beyond the 4-gigabyte threshold imposed by 32-bit systems is /the/ major reason why AMD64 is so popular in servers and workstations. Better number crunching and data shifting performance from the doubled dataword width is #2.
 

Calin

Diamond Member
Apr 9, 2001
3,112
0
0
Hmmm, Peter, I just thought of it... What are the integer-based number crunching? Every number crunching program I think of (except cryptography) seems to use floating point, so 64-bit won't be such a big advantage.
Well, maybe except for the fact that a double (8 bytes) can be read/saved in a single operation...
Data base comparisons? String comparison that would go twice as fast? ?? ???
Also, indexes bigger than 4billions would be a great help in many cases (database but I assume others as well), so 64bit helps in other cases
 

FrankSchwab

Senior member
Nov 8, 2002
218
0
0
I can't think of many real-world tasks where having a 64-bit integer is going to speed anything up.
Having twice the number of registers? Sure, that'll speed things up.
Having a 64-bit instruction pointer? Sure, that'll help a class of current applictions that need more than 4GB of memory.
Having 64-bit integers? That's a tough one. Perhaps it's the reason that Microsoft's Visual Studio still uses 32 bits for its "long" datatype - too many compatibility issues with changing the size of long for too few benefits.

/frank
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Just look at how simple things like ZIP packing go twice as fast when written for 64-bit, and there's your integer task that benefits from wider registers. Many other things handle lots of integer data as well.

For programmers, there still is and there has ever been the choice to use narrower subsets of each register - no need to shift 64 or 32 bits around when you're handling a single byte.
 

JDCentral

Senior member
Jul 14, 2004
372
0
0
Mmmkay... similar to the MIPS I-IV architecture evolution, I suppose.

I still don't see how you get anything 'faster' out of it. A 64-bit instruction still takes "longer" (probably engineered to take the same amount, though) of time to complete as a 32-bit instruction. Unless you could somehow pack two 32-bit words into one 64-bit register, and manipulate those. Not really useful unless you're moving them around the register file, however... or maybe doing some logical operations like AND,OR,XOR, etc.
 

JDCentral

Senior member
Jul 14, 2004
372
0
0
Point of clarification:

I know there's NO "emulation" occuring, what-so-ever... the processors were designed to run both 32 and 64 bit instructions.

Just "32-bit emulation" is what everybody always says... and I know I'm nit-picking, but it's a pet-peeve that I have :D

Thanks for humoring me.
 

Mday

Lifer
Oct 14, 1999
18,647
1
81
Originally posted by: JDCentral
Point of clarification:

I know there's NO "emulation" occuring, what-so-ever... the processors were designed to run both 32 and 64 bit instructions.

Just "32-bit emulation" is what everybody always says... and I know I'm nit-picking, but it's a pet-peeve that I have :D

Thanks for humoring me.

Yeah, that's why I laughed at the Itanium which actually does emulate 32bit. I mean, pfft.

 

Fox5

Diamond Member
Jan 31, 2005
5,957
7
81
Originally posted by: JDCentral
Isn't the x86-64 'architecture' simply an extension to the x86 architecture?

So... A64 is basically a 32-bit architecture that is capable of manipulating double-length words?

Yes/no/flame/troll?

X86 alone was capable of manipulating double-length words through the use of MMX, 3dnow, and SSE.(and maybe even without?)

Just "32-bit emulation" is what everybody always says... and I know I'm nit-picking, but it's a pet-peeve that I have

Doesn't the 64bit version of Windows emulate the 32bit version?
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Originally posted by: JDCentral
Mmmkay... similar to the MIPS I-IV architecture evolution, I suppose.

I still don't see how you get anything 'faster' out of it. A 64-bit instruction still takes "longer" (probably engineered to take the same amount, though) of time to complete as a 32-bit instruction. Unless you could somehow pack two 32-bit words into one 64-bit register, and manipulate those. Not really useful unless you're moving them around the register file, however... or maybe doing some logical operations like AND,OR,XOR, etc.

The point you're missing is that it doesn't "take longer". Data and code are intelligently prefetched, in much larger chunks (so called "cache lines"), and at execution time, are just plain available in the vast majority of cases. Hence, you can basically handle twice as much data in the same amount of time. When it gets to multiplication or division of large (integer) numbers, doing one 64-bit instruction is going to be massively more effective than e.g. doing a pair of 32-bit multiplications plus the additional overflow handling.
 

JDCentral

Senior member
Jul 14, 2004
372
0
0
Originally posted by: Peter
The point you're missing is that it doesn't "take longer". Data and code are intelligently prefetched, in much larger chunks (so called "cache lines"), and at execution time, are just plain available in the vast majority of cases. Hence, you can basically handle twice as much data in the same amount of time. When it gets to multiplication or division of large (integer) numbers, doing one 64-bit instruction is going to be massively more effective than e.g. doing a pair of 32-bit multiplications plus the additional overflow handling.

Nono.. I got that point. I was saying that 1 32-bit instruction takes less time than 1 64-bit instruction, at least as far as gate-propagation goes. Except pipelining will help a lot with that.

Two 32-bit instructions will be insanely less inefficient than one 64-bit instruction.
 

PerfeK

Senior member
Mar 20, 2005
329
0
0
Originally posted by: JDCentral
Isn't the x86-64 'architecture' simply an extension to the x86 architecture?

So... A64 is basically a 32-bit architecture that is capable of manipulating double-length words?

Yes/no/flame/troll?

64-bit is not 32-bit doubled. 64-bit is 32-bit squared.
 

PoopyPants

Platinum Member
Jun 3, 2004
2,403
0
0
to answer his question the best i know how

64bit=64bit emulation

yes there is only 1 true 64bit chip the Intel Itanium

the EMT64 and the AMD64 are only "emulating" 64bit
thats very loose terminology but the EMT64 and AMD64 are not true 64bit chips

so there you have it.

anyone who disagrees needs to go back to the release of the amd64 where is was well documented that they arent true 64bit chips they are emulating it , so to speak.

but until i can afford $1500 for an itanium ill keep thinking that my 3500 newcastle is a REAL 64bit processor lol

unless i am mistaken and it was only the memory management part of the chip that was "emulating" 64bit
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Originally posted by: PoopyPantsthe EMT64 and the AMD64 are only "emulating" 64bit
thats very loose terminology but the EMT64 and AMD64 are not true 64bit chips

so there you have it.

anyone who disagrees needs to go back to the release of the amd64 where is was well documented that they arent true 64bit chips they are emulating it , so to speak.

Steaming pile of bull. AMD's and Intel's xxx64 processors have 64-bit ALUs IN HARDWARE. End of story.

 

cquark

Golden Member
Apr 4, 2004
1,741
0
0
Originally posted by: PoopyPants
to answer his question the best i know how

64bit=64bit emulation

yes there is only 1 true 64bit chip the Intel Itanium

IBM's POWER microprocessors were 64-bit processors in 1990. The 64-bit Alpha 21064 arrived in 1992 at an amazing 200 MHz (Pentiums were having heat issues at 66 MHz at the time.) Itanium didn't come along until 2001.

anyone who disagrees needs to go back to the release of the amd64 where is was well documented that they arent true 64bit chips they are emulating it , so to speak.

I certainly didn't see any documentation of your claim at the time and can't find any now. Please provide references.

 

Vee

Senior member
Jun 18, 2004
689
0
0
Originally posted by: PoopyPants
to answer his question the best i know how

64bit=64bit emulation

yes there is only 1 true 64bit chip the Intel Itanium

the EMT64 and the AMD64 are only "emulating" 64bit
thats very loose terminology but the EMT64 and AMD64 are not true 64bit chips

so there you have it.

anyone who disagrees needs to go back to the release of the amd64 where is was well documented that they arent true 64bit chips they are emulating it , so to speak.

but until i can afford $1500 for an itanium ill keep thinking that my 3500 newcastle is a REAL 64bit processor lol

unless i am mistaken and it was only the memory management part of the chip that was "emulating" 64bit

You are indeed mistaken, since almost all of the above is very wrong. Intel's chip may have an hack in it's memory mapping. But I don't really know that, and it's also unlikely to be an issue anyway.