Thread: x86-64 vs x86

  1. #1
    Banned
    Join Date
    Jan 2003
    Posts
    1,708

    x86-64 vs x86

    What are the main differences between the x86 and x86-64 bit architecture. I was told I have an x86 architecture (athlon) processor. Other than new registers what is the difference between x86 and x86-64? If I truly do have x86 then what's so different about the x86-64 architecture, i.e my processor can obviously still address 64bit sized variables.

  2. #2
    Registered User TravisS's Avatar
    Join Date
    Jun 2002
    Posts
    536
    The differences between x86 and x86-64 are not entirely huge. You'll notice that the "x86" part remains the same between the two, and that's a pretty big thing

    Intel's Itanium 64 bit processor is not based on the x86 architecture. It works natively on 64 bit appliactions, runs on a 64 bit OS, and can only run 32 bit apps through emulation. The Hammer, or x86-64, can run both 64 and 32 bit apps natively. But it's kind of a jack of all trades, master of none type situation. While it is better than the current T-Bred core of Athlon XP's, and slightly better than the upcoming Bartron core (basically T-Bred plus more L2 cache), it is not 100% made for 32 or 64 bit apps, so it doesn't really run either to 100% effieciency. BUT it does run both natively, so it's faster than running through an emulator .

    Another thing to keep in mind is that the x86-64 is to processors as Windows is to OS's. There are desktop (home user) models, and there are business models.


    Real uses of x86-64 architecture: Business end. There is no real advantage for the standard user. The 64 bit ability simply allows for even bigger addressable memory, more precise floating point, and multiprocessing-features. Stuff that really benefits servers and the like. Current 32 bit processors can address 4 Gigs of RAM. More than enough for home users (for now). 64 bit allows up to 16 Terabytes, WAY more than enough for anybody .

    Some links

    http://www.extremetech.com/article2/0,3973,231,00.asp
    http://www.anandtech.com/showdoc.html?i=1295
    http://www.expresscomputeronline.com...23/cover.shtml

  3. #3
    PC Fixer-Upper Waldo2k2's Avatar
    Join Date
    May 2002
    Posts
    2,001
    >>16 terabytes

    *drools**orgasms**wonders where i can get one*
    PHP and XML
    Let's talk about SAX

  4. #4
    Just because ygfperson's Avatar
    Join Date
    Jan 2002
    Posts
    2,490
    64 bit processing also helps in doing long number mathematics fairly quickly. But don't we already have the various extensions (SSE, MMX, 3dnow, and their sequels) to do that? I know MMX uses 8 byte registers. Which are the same as floating point registers. Which brings us to the question: what kind of improvement would happen there? Floating Point processing is already 64-bit (for doubles).

    Addressing isn't really a problem for business computer servers. Worse comes to worst, there's still paging to get the job done. When they do come out with 64 bit processors, first on my wish list is the abolishment of paging. 16 terabytes per page is enough for anyone. People who need more go to supercomputers. Besides, paging makes an assembly programmer's life much more difficult.

  5. #5
    It's full of stars adrianxw's Avatar
    Join Date
    Aug 2001
    Posts
    4,829
    >>> 16 terabytes per page is enough for anyone.

    Couldn't help thinking of the famous Gates quote "640k is enough for anyone".
    Wave upon wave of demented avengers march cheerfully out of obscurity unto the dream.

  6. #6
    Registered User
    Join Date
    Sep 2002
    Posts
    1,640
    Originally posted by adrianxw
    Couldn't help thinking of the famous Gates quote "640k is enough for anyone".
    Haha, I keep seeying that, When exactly DID he say that?

  7. #7
    Siilvercord
    Guest
    Which are the same as floating point registers. Which brings us to the question: what kind of improvement would happen there? Floating Point processing is already 64-bit (for doubles).
    That's exactly what I was wondering about, our 32bit processors can already operate on 64bit operands, especially 8byte doubles. I am very unknowledgable of all of this. What exactly does '32bit' mean, that simply means that it can operate on a variable and then store it in memory in one cycle, right? Is it true then that it takes multiple cycles to operate on a 64bit variable? i.e you have to do the 32bit part, address it in memory, and then the next cycle does the other 32bit part of the operand? Someone explain that to me please.

    So MMX (multimedia extensions) extends the power of a processor's native architecture?

    And what exactly does 'x86' mean. So far it's a meaningless term to me.

    Ok thanks

  8. #8
    ! |-| /-\ +3 1337 Yawgmoth's Avatar
    Join Date
    Dec 2002
    Posts
    187
    x86 refers to a certain processor instruction set. It is the instruction set used by every Pentium and Athlon CPU, and any CPU ending with 86 (hence the name x86).
    L33t sp3@k sux0rz (uZ it t@k3s 10 m1|\|ut3s 2 tr@nzl@te 1 \/\/0rd & th3n j00 h@\/3 2 g3t p@$t d@ m1zpelli|\|gz, @tr0(i0u$ gr@mm@r @|\|d 1n(0/\/\pr3#3|\|$1bl3 $l@|\|g. 1t p\/\/33nz j00!!

    Speling is my faverit sujekt

    I am a signature virus. Add me to your signature so that I may multiply.

  9. #9
    Banned
    Join Date
    Jan 2003
    Posts
    1,708
    x86 refers to a certain processor instruction set. It is the instruction set used by every Pentium and Athlon CPU, and any CPU ending with 86 (hence the name x86).
    Well, yes, I guess I didn't make myself clear enough: what quality(s) allows them to share the same instruction set, i.e they all share the same architecture, they all have the same number of pins, the same bus width, etc.

    EDIT: Why are they given the '..86' names? i.e 486, where does that come from. Also, I've got an Athlon processor, that means it uses the x86 instruction set, right? Someone told me that's what it uses, if that's true then the x86-64 instruction set isnt' the same as what my processor uses. Nuts.
    Last edited by Silvercord; 02-12-2003 at 02:45 PM.

  10. #10
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    Originally posted by ygfperson
    64 bit processing also helps in doing long number mathematics fairly quickly. But don't we already have the various extensions (SSE, MMX, 3dnow, and their sequels) to do that? I know MMX uses 8 byte registers. Which are the same as floating point registers. Which brings us to the question: what kind of improvement would happen there? Floating Point processing is already 64-bit (for doubles).
    MMX registers are used for different things than the general purpose registers we all know......but the main difference (and the one that will be the main improvement with IA64) is that those MMX registers arent used to address memory...

  11. #11
    I lurk
    Join Date
    Aug 2002
    Posts
    1,361
    Originally posted by Silvercord
    Well, yes, I guess I didn't make myself clear enough: what quality(s) allows them to share the same instruction set, i.e they all share the same architecture, they all have the same number of pins, the same bus width, etc.

    EDIT: Why are they given the '..86' names? i.e 486, where does that come from. Also, I've got an Athlon processor, that means it uses the x86 instruction set, right? Someone told me that's what it uses, if that's true then the x86-64 instruction set isnt' the same as what my processor uses. Nuts.
    See: http://www.intel.com/intel/intelis/m...f/hof_main.htm

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. 64 bit testing
    By DrSnuggles in forum C++ Programming
    Replies: 7
    Last Post: 11-20-2007, 03:20 AM
  2. File IO
    By Jack1982 in forum C++ Programming
    Replies: 9
    Last Post: 10-15-2007, 01:14 AM
  3. x86 64 C data type sizes
    By valis in forum Tech Board
    Replies: 6
    Last Post: 07-25-2006, 07:17 AM
  4. Porting from 32 bit machine to 64 bit machine!
    By anoopks in forum C Programming
    Replies: 10
    Last Post: 02-25-2005, 08:02 PM
  5. If the RGB color is (64, 64, 255), change it to (64, 255, 64).
    By Grayson_Peddie in forum C# Programming
    Replies: 2
    Last Post: 06-14-2003, 04:26 PM