Slashdot Mirror


Why Do We Use x86 CPUs?

bluefoxlucid asks: "With Apple having now switched to x86 CPUs, I've been wondering for a while why we use the x86 architecture at all. The Power architecture was known for its better performance per clock; and still other RISC architectures such as the various ARM models provide very high performance per clock as well as reduced power usage, opening some potential for low-power laptops. Compilers can also deal with optimization in RISC architectures more easily, since the instruction set is smaller and the possible scheduling arrangements are thus reduced greatly. With Just-in-Time compilation, legacy x86 programs could be painlessly run on ARM/PPC by translating them dynamically at run time, similar to how CIL and Java work. So really, what do you all think about our choice of primary CPU architecture? Are x86 and x86_64 a good choice; or should we have shot for PPC64 or a 64-bit ARM solution?" The problem right now is that if we were going to try to "vote with our wallets" for computing architecture, the only vote would be x86. How long do you see Intel maintaining its dominance in the home PC market?

88 of 552 comments (clear)

  1. Easy by Short+Circuit · · Score: 5, Insightful

    Until someone replaces the PC.

    PC architecture sits in a local minima where the fastest route to greater profits lies in improving existing designs, rather than developing new approaches.

    The reason "We" use x86 is because "we" use PCs, where x86 technology is dominant and obvious. However, "we" also use PDAs, cell phones, TiVos and even game console systems. As the functions of those devices melt into a new class of unified devices, other architectures will advance.

    The real irony is that, for most of these other devices, the underlying architecture is invisible. Few know that Palm switched processors a few years back. Fewer still know what kind of cpu powers their cell phone.

    1. Re:Easy by SheeEttin · · Score: 5, Funny
      Fewer still know what kind of cpu powers their cell phone.
      I think mine is silicon-based.
    2. Re:Easy by HappySqurriel · · Score: 4, Interesting

      The reason "We" use x86 is because "we" use PCs, where x86 technology is dominant and obvious. However, "we" also use PDAs, cell phones, TiVos and even game console systems. As the functions of those devices melt into a new class of unified devices, other architectures will advance.

      Honestly, I think it is much simpler than that ...

      The problem has very little to do with the processors that are used and is entirely related to the software that we run. Even in the 80s/90s it would have been completely possible for Microsoft to support a wide range of processors ( if their OS was designed correctly ) and produce OS related libraries which abstracted software development from needing to directly access the underlying hardware; on install, necessary files would be re-compiled and all over the shelf software could run on any architecture that Windows/dos supported. In general, the concept is combining standard C/C++ with libraries (like OpenGL) and recompiling to ensure that no one was tied to a particular hardware architecture.

      Just think of how many different architectures Linux has been ported to, if DOS/Windows was built in a similar way you'd be able to choose between any architecture you wanted and still be able to run any program you wanted.

    3. Re:Easy by Canthros · · Score: 2, Insightful

      I think you severely overestimate computing power in the 80s and 90s. I last compiled XFree86 around 2000. Took a bit over a day.

      I really wouldn't have wanted to wait that long to install Office or DevStudio.

      --
      Canthros
    4. Re:Easy by Marillion · · Score: 4, Insightful

      Windows NT was designed to run on i386, MIPS, PPC and Alpha. Over the years, Microsoft discontinued support for the various platforms - IIRC MIPS and Alpha ended with NT3.51 - PPC ended with NT4. NT5 (aka - Windows 2000) was the first i386 only version of NT.

      --
      This is a boring sig
    5. Re:Easy by Marillion · · Score: 2, Interesting

      Random note after I clicked submit - The designers of the DEC Alpha chip designed it as a 64bit Big Endian chip. Microsoft convinced DEC to add a feature to the Alpha that switched CPU to a 32bit Little Endian chip so that Microsoft wouldn't have to recode all their the apps that processed binary files with the assumption that integers were four byte little endian.

      --
      This is a boring sig
    6. Re:Easy by budcub · · Score: 3, Informative

      Release Candidate 1 of Windows 2000 still supported Alpha. It was somewhere around RC2 or RC3 (if there ever was a RC3, I don't remember) that Microsoft went to x86 only. Prior to that, with NT4 they supported MIPS, PPC, Alpha, and x86, up until the early service packs. After Service Pack 3 (for NT4 that is) they were only supporting x86 and Alpha. I remember because I worked in a shop that used Compac/DEC Alpha machines running MS Exchange on NT4 for their mail system. Don't know what their long term plans were since I got laid off from that place.

    7. Re:Easy by Marillion · · Score: 2, Insightful

      WRONG. I've seen windows 2000 running on an axp workstation

      RC1 for W2K was released for for the Alpha - not the final version of W2k - See Wikipedia

      --
      This is a boring sig
    8. Re:Easy by Canthros · · Score: 2, Insightful

      Probably they would have included binaries.

      Even so, there are pretty major difficulties, even now, with the idea of write once, run anywhere. Although the interface to a library may be standard across multiple platforms, it isn't necessarily the case that the implementation is equally robust, let alone identically so. The observation that it was 'completely possible' neglects any consideration of practicality or commercial viability. I'm not saying that it was too impractical to happen, but you gloss over a lot of details and problems with the observation.

      --
      Canthros
    9. Re:Easy by ergo98 · · Score: 5, Insightful
      Windows NT was designed to run on i386, MIPS, PPC and Alpha. Over the years, Microsoft discontinued support for the various platforms

      At the time Microsoft was hedging their bets as everyone ranted about the next generation of RISC chips storming the market. Endlessly we'd hear about how the x86 line was dead, and the only improvements would be to move to the next generation (Intel themselves was heavily focusing on RISC as well -- think of the i860).

      We never did because those alternatives never delivered on their promise. Ever since 680x0 processors, the highest performance per dollar crown has been held, with only a couple of very short term or niche exceptions, by the x86 line. When given the option of running software on a variety of platforms, customers always ended up buying the x86.

      Look at Linux -- so many platforms supported, yet on the desktop and up level, overwhelmingly it's run on x86. This has been the cast over its history.
    10. Re:Easy by samkass · · Score: 3, Insightful

      The real irony is that, for most of these other devices, the underlying architecture is invisible. Few know that Palm switched processors a few years back. Fewer still know what kind of cpu powers their cell phone.

      And I think this will be increasingly true of the desktop. And since all the best desktop CPUs are x86, it'll probably stay x86.

      From an engineering design point of view, it's possible some of these other architectures are cleaner or easier to design or code to, but from a desktop chip and compiler point of view, x86 is the best. It has the best codegen compilers, despite the fact that it may have taken more effort to get to that state, and the CPUs are damn fast at reasonable (although perhaps not optimal) power consumption levels. Talk of theoretical alternate options are academic. Unless one of those other options can produce a chip and compiler that's so much better than x86 that it would be worth moving to, emulation overhead during transition and all, it's not a practical discussion.

      --
      E pluribus unum
    11. Re:Easy by Aladrin · · Score: 2, Insightful

      "Or did I just reveal complete ignorance of the computer industry?"

      Did you seriously just say that designing a computer system and porting a ton of software to it would be easier than creating a controller for a gaming system?

      If by 'off the shelf' you mean x86, you haven't done ANYTHING new. If you mean a non-x86, non-PPC processor... You're crazy.

      And as your example, you chose a controller for a game system that this company somehow manages to sell for $350, despite competition that sells one for $15. http://store.gameasylum.us/1ddrdapadmat.html

      I mean sure, if you're willing to sell your exclusive odd-architecture personal computer with only the software your company has managed to port for $10k a piece... Yeah, it'd work. I'm not sure who'd buy it, though. And you'd have to sell quite a few to just break even on the cost of your programmers porting to this architecture.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    12. Re:Easy by soft_guy · · Score: 2, Insightful

      By using X86 as the primary architecture for Windows, binary compatibility is maintained. While Linux is ported to many different architectures, it doesn't have binary compatibility between them. This is why most Linux software seems to be distributed as source that the user then has to compile. Obviously for closed source models, this is not acceptable.

      Use of Universal binaries (e.g. OS X) wastes disk space that up until recently would have been too costly for most people.

      --
      Avoid Missing Ball for High Score
    13. Re:Easy by ajs318 · · Score: 3, Funny

      "For external use only" -- ah, so that's why the Essex girl was standing in the pouring rain applying Savlon to a cut!

      --
      Je fume. Tu fumes. Nous fûmes!
    14. Re:Easy by king-manic · · Score: 4, Insightful

      At the time Microsoft was hedging their bets as everyone ranted about the next generation of RISC chips storming the market. Endlessly we'd hear about how the x86 line was dead, and the only improvements would be to move to the next generation (Intel themselves was heavily focusing on RISC as well -- think of the i860).

      We never did because those alternatives never delivered on their promise. Ever since 680x0 processors, the highest performance per dollar crown has been held, with only a couple of very short term or niche exceptions, by the x86 line. When given the option of running software on a variety of platforms, customers always ended up buying the x86.

      Look at Linux -- so many platforms supported, yet on the desktop and up level, overwhelmingly it's run on x86. This has been the cast over its history. Part of the problem is the consumer thinks "I've spent X$ on software. If I move to platform B I would have wasted X$." so on of the primary reasons we're still with x86 is investment in software.

      As for linux. choice isn't good. People get overwhelmed easily. So anythign more then 2 or 3 choices makes them go cross eyed and buy windows. I myself operate mostly on windows occasionally on red hat/mandrake and very rarely mac OSX.
      --
      "There are more things in heaven and earth, Horatio, than are dreamt of in your philosophy."
    15. Re:Easy by Ngarrang · · Score: 2, Interesting

      *cough* Games? And don't give me that lame "well, you get an Xbox/Playstation/Wii/whatever for those!" answer to that question.

      There is no better controller combo in FPS games than WASD + mouse. Period.

      I would partially agree with this. Game makers are now optimizing their games for new graphics cards, most of which are not x86 CPUs. These GPUs are custom and fast. They target the broadest market to garner the most money, which currently means M$ Windows, which means an x86 CPU. I firmly believe that if M$ ported Windows to the Cell processor and maintained a way to run the older apps, that Cell processor would become the new worldwide standard.

      Maybe the perfect computer is a computer powered by a Cell processor with 16Gb of RAM running several virtual machines. For that matter, with virtualization, anyone could create their own virtual architecture and run it as if it really existed in hardware.

      --
      Bearded Dragon
    16. Re:Easy by soft_guy · · Score: 2, Informative

      If only there were some way the installer could detect your platform and auto-strip on installation. Too bad that's impossible. There were installers that did this. They typically asked you whether you wanted to install the app for "this macintosh" or "any macintosh" (because some people had applications on a server.)
      --
      Avoid Missing Ball for High Score
    17. Re:Easy by TheRaven64 · · Score: 2, Informative
      Anyone who wants to can build a computer without using an off-the-shelf CPU for few thousand dollars. You can get chips fab'd using one or two generation old technology for under $1000 each in runs as small as 10. The price drops a lot every time you add a zero to the end of your production run. You can generate the masks using open source tools, and there are even some HDL cores already designed under Free licenses. Of course, you'll lag a good 5 years behind x86 performance if you do...

      Once you've got the CPU, you need a motherboard. This is a little easier to design, and if you're lucky you can use off-the-shelf supporting chips, or make your CPU a monolithic system on chip and have things like memory, USB, PCIe, SATA, etc. controllers integrated. You can even put RAM on the die, but that is going to drive up your production costs a lot (it's much cheaper to buy DRAM modules).

      If you want to build a non-x86 machine and still want a general purpose machine, I'd recommend that you look at ARM or PowerPC chips. You can buy ones intended for high-end embedded systems quite cheaply, and these are in the GHz range, which is fast enough for a lot of things. You can also pick up an evaluation board quite cheaply, so you don't need to build your own motherboard.

      Of course, when I say cheaply, you're still talking about at least twice the price of x86 for equivalent performance. Why? Because you're getting limited volume stuff. PowerPC and ARM computers are cheap; the odds are that you own at least one or two, but don't think of them as computers (what do you think your mobile phone is?) but they tend to focus on low power rather than high performance. My current mobile phone has about the same processing power, RAM, and storage as my desktop from ten years ago though, so it may be enough for a lot of applications. My personal recommendation would be to go for a PowerPC 400 series.

      With Free Software, the cost of moving to a new processor architecture is cheap, but there still needs to be an incentive. Typically, that incentive is much better performance. An example of this is the Sun T1 chip, which gives much better performance both per watt and per dollar on a lot of web and database server workloads, and much worse performance on a lot of others.

      Unfortunately, it's a chicken and egg problem. Developing a CPU that's competitive in year X has a relatively fixed cost; you need a group of bright people to go from concept to mask and you need to set up some fabrication facilities. These are roughly fixed costs (you can save a bit for smallish runs by using someone else's fab, but it's still a big capital cost for them to do the set-up, and you have to pay it). Once you've paid these costs, then CPUs don't actually cost that much individually to manufacture. The second one you make probably costs under ten dollars. Unfortunately the first one cost several hundreds of thousands of dollars (at least; for something like the Core 2, you are talking hundreds of millions of dollars), so you need to sell enough to make enough to cover this.

      Will we keep using x86? Yes and no. x86 dominance will, I suspect, last until the end of the desktop era. I doubt it will last much longer though, so expect to be using something else in ten years or so. In the CPU market, x86 is a relatively small player; it's only the desktop (including laptops) market that it has such a large presence.

      --
      I am TheRaven on Soylent News
    18. Re:Easy by Citizen+of+Earth · · Score: 2, Insightful
      At the time Microsoft was hedging their bets as everyone ranted about the next generation of RISC chips storming the market. Endlessly we'd hear about how the x86 line was dead, and the only improvements would be to move to the next generation (Intel themselves was heavily focusing on RISC as well -- think of the i860).

      Not to worry, RISC won the day. x86 chips these days are RISC chips with a thin veneer of x86ness.

    19. Re:Easy by Pollardito · · Score: 5, Funny

      Fewer still know what kind of cpu powers their cell phone.
      I think mine is silicon-based. trust me, it's real and it's fantastic
    20. Re:Easy by epine · · Score: 3, Insightful


      I agree that the alternatives never delivered on their promises. That, more than anything else, is why we still use x86. The problem for the alternatives has always been that the liabilities of the x86 design were never as bad as people made them out to be. Certainly the x86 went sideways with the 286, but it returned to sanity again with the 386 and most of those worthless 286 protection modes are just a bit of wasted die area in the microcode array which gets smaller and smaller with each new shrink.

      The old story "make is easy for the compilers" is vastly overstated. Modern compilers schedule non-orthogonal register sets extremely well. What is hard for the compilers is crazy amounts of loop unrolling involving asynchronous memory access patterns. Out-of-order execution actually makes life a lot *easier* for the compilers than more rigid approaches such as Itanium or Cell at the cost of extra heat production. Now that we are hitting the thermal wall, maybe it's time for the compilers to finally earn their keep. I've never understood the sentiment of making it easy for the compiler as opposed to, say, writing a very good compiler that implements the best algorithm available.

      The key is to choose an aggressive target for what the compiler can reasonably contribute, and then ensure that the compiler achieves that target in a good way. Some of the VLIW efforts stand out in my mind as shining examples of asking the compiler to do a little more than could reasonably be expected. OTOH, I see no reason to simplify an instruction set to the point where a college student could implement the register scheduling algorithm over a long weekend.

      Yes, a few things could have been done far better from the outset, such as a more uniform instruction length (though not necessarily as regimented as ARM), a register based floating point unit, and a treatment of the flag register with fewer partial updates. But really, how much else of what was conceived in the early eighties doesn't have greater flaws? We still use email, barely.

      The time for debate over instruction sets has long passed. The future debate concerns the integration of heterogenous cores such as the IBM Cell and the future spawn of the AMD/ATI assimilation. I have no doubt someone is out there right now inventing an interconnect everyone will be wistfully lamenting twenty years from now. If only we had known and done something about it (other than this).

      After twenty years, it's time to face the music: x86 is more ugly than bad.

    21. Re:Easy by MobyTurbo · · Score: 2, Informative
      IBM picked the x86 for the original IBM PC because they wanted something better than an Apple ]{ and TRS-80 but not too much better

      They probably picked the 8088, rather than the alternative 16 bit processor at the time, the somewhat better Motorolla 68000 used in (expensive) workstations at the time, because of it being very close to the 8 bit 8080/Z-80 chip - which was powering CP/M boxes that were the business software standard. That's why their first choice in operating system vendor was Digital Research, the makers of CP/M. If you're a whippersnapper, you may not remember CP/M, but it was the original platform of Wordstar, dBase II, and a number of other popular business software programs at the time. (Even MS's own MBASIC had its latest version running on CP/M.) Because of the 8088's similarity in instruction set with the 8080 and PC-DOS's similarity to CP/M, these applications were quickly ported (at first complete with the 8080 and Z-80's 8 bit limitations!) to the PC.

      When Digital Research failed to follow through with IBM (Gary Kidall's famous plane flight). IBM then went to the biggest microcomputer software vendor, Microsoft, with a proposition depending upon if they had an operating system soon available for them. They lied and said that not only they had one, they had one already made to keep others from making offers, bought it for less than $20,000 from a local hobbiest hardware maker, and sold it to IBM; much in the same way that they secured a monopoly in BASIC for the Altair by claiming they already had BASIC written for it. (Of course, this is far from the worst of their business practices.)

    22. Re:Easy by thogard · · Score: 2, Informative

      The Kidall's theory goes out the window when you consider IBM already had a license agreement for CPM and was already making better x86 based machines than the PC (like the DisplayWrite which had a faster CPU, more memory potential and CPM) but instead of using a well engineered machine to take on what they considered "toy computer". Their intent was to put Apple and Tandy out of the computer business and then regain their market on the "real computers".

      I took more than one call from IBM's sales people trying to get me to consider upgrading to a better computer at 10 times the cost. A friend had a job of putting a flyer in boxes at the factory that offered to take the band new PC as a trade in for some thing like a 360 or whatever was their current mini at the time. The temporary workers at the factory (in Boca Raton) were told that the assembly line on the new PC would shut down with very little notice and were offered a very nice severance package. Even IBM's management had odd attitudes about the product until about two years after the XT.

  2. easy by exspecto · · Score: 5, Funny

    because they don't cost an ARM and a leg and they don't pose as much of a RISC

  3. momentum by nuggz · · Score: 5, Informative

    Change is expensive.
    So don't change unless there is a compelling reason.

    Hard to optimize? You only have to optimize the compiler once, over the millions of devices this cost is small.

    Runtime interpreter/compilers, you lose the speed advantage.

    Volume and competition makes x86 series products cheap

    1. Re:momentum by Frumious+Wombat · · Score: 4, Interesting

      If you're dead-set on using GCC, yes. Alternately, if you use the native compilers which only have to support a fairly narrow architecture, you can get much higher performance. XLF on RS/6K and Macs was one example (capable of halving your run-time in some cases), IFORT/ICC on x86 and up, or FORT/CCC on DEC/Compaq/HP Alpha-Unix and Alpha-Linux were others. Currently GCC is not bad on almost everything, but native-mode compilers will still tend to dust it, especially for numeric work.

      Which brings back the other problem; not only are x86 chips cheap to make, but we have 30 years of practice optimizing for them. Their replacement is going to have to be enough better to overcome those two factors.

      --
      the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
    2. Re:momentum by Short+Circuit · · Score: 2, Informative

      GCC 4.x is designed to enable optimizations that will work across architectures, by providing an intermediate code layer for compiler hackers to work with.

      There are still optimizations possible at the assembly level for each architecture that depend on the quirks and features of those architectures and even their specific implementations.

      The intermediate level optimizations are intended to reduce code duplication by allowing optimizations common across all architectures to be applied to a common intermediate architecture.

    3. Re:momentum by UtucXul · · Score: 2, Informative
      IFORT/ICC on x86 and up
      Funny thing about IFORT is that while in simple tests it always outperforms g77 (I've since switched to gfortran, but haven't tested it too well yet), for complex things (a few thousand lines of FORTRAN 77 using mpi), it is very unpredictable. I have lots of cases where g77 outperforms ifort in real world cases (as real world as astronomy gets anyway) and cases where ifort wins. It just seems to me that either ifort is not the best compiler, or optimizing for x86 is funnier business than it seems (or there is some other variable I'm missing which is always possible).
    4. Re:momentum by Chris+Burke · · Score: 4, Interesting

      You're absolutely right, it's all about momentum.

      Hard to optimize? You only have to optimize the compiler once, over the millions of devices this cost is small.

      This is a red herring anyway. RISC being simpler has nothing to do with it being easier to optimize. If it is easier for a compiler to optimize simple RISC-like instructions, then the compiler can use RISC-like instructions that are present in x86. This has been the situation for years and years. Compilers use a basic subset of x86 that looks a lot like RISC (minus variable instruction lengths), but also with some of the decent syntactic sugar of x86 like push/pop and load-ops (you know: add eax, [esp + 12] to do a load and add in one inst).

      The only real obstacle for compilers optimizing x86 is the dearth of registers. With fast l1 caches and stack engine tricks like in Core Duo the performance hit for stack spillover isn't big, and x86-64 basically solves the problem by doubling the register space. Less than a RISC machine, but enough for what research has shown is typically needed. Maybe still a little too few, but combined with the first point enough to make this a wash.

      These arguments are as old as RISC itself, but the basis behind them has changed as the technology has changed. All of the performance, efficiency, and other technical arguments have been put to pasture in terms of actual implementations. In the end, it comes down to this:

      The only reason not to use x86 is because it is an ugly mess that makes engineers who like elegance cry at night.
      The only reason to use x86 is because it runs the vast majority of software on commodity chips.

      Which of these factors dominates is not an open question; it has already been decided. It's just those engineers who like elegance can't accept it, and thus keep bringing it up. Believe me, I don't like it either, but I don't see the point at screaming at reality and demanding that it change to suit my aesthetics.

      --

      The enemies of Democracy are
    5. Re:momentum by Frumious+Wombat · · Score: 2, Interesting

      The time I saw the runtime halved, it was a piece of code that had been rearranged to run well on early-90s Cray/Alliant vector machines. Dusty-deck fortran that grew up on VAXes or IBM mainframes doesn't do nearly as well, though I still can generally get 15-30% vs. g77. I can also get wierd bugs, as much of that code depends on, *ahem*, "features" left over from Fortran-66 which have since gone away and modern compilers (which are really F90/F95 compilers) don't support well.

      Personally, I'm sorry I won't be getting XServes with Power6 processors and 64-bit XLF, but price/flop for x86 isn't all that bad.

      Btw, my informal testing so far is showing that on PPC GFortran is about 12% slower than XLF for 32-bit code, which makes it significantly faster than the commercial competitors. A group that provides one of the packages I use (3/4 million lines of F77) recommends GFortran for building the 64-bit AMD version, for reasons of both speed and stability. So, it's getting better, but since I don't use C I don't know how much improvement GCC is showing for numerics.

      --
      the more accurate the calculations became, the more the concepts tended to vanish into thin air. R. S. Mulliken
    6. Re:momentum by Chris+Burke · · Score: 2, Insightful

      The fast "actual implementations" of x86 are done by translating x86 to RISC /in hardware/ as dynamically translating x86 instructions to RISC was the only way Intel could continue to achieve decent performance after the advent of pipelining.

      Yes I'm well aware, ever since the Pentium Pro (worst name for a completely new architecture ever). I usually start my "CISC/RISC is an irrelevent argument" rants with that fact. That is exactly why the predictions of the RISC crowd that RISC would blow CISC out of the water in performance never materialized. The RISC crowd simply underestimated the ingenuity of the CISC crowd.

      You can talk about the hypothetical failings of x86 all day long if you'd like. In actual implementation, aka reality, aka the only thing that matters, x86 chips have had rough performance parity -- sometimes slower, sometimes faster, but never a significant difference that could be attributed to the ISA -- with chips in similar market segments.

      However, doing this lengthens the processor pipeline and makes things like branch mispredictions even more costly than they need to be. This is why x86 processors are still outperformed by RISC architectures in high-end servers and why Intel attempted, unsuccessfully, to remove the x86 albatross from its neck with the introduction of the Itanium.

      The performance of high-end servers has nothing to do with ISA, little to do with branch mispredict penalty, and everything to do with caches, memory, and system architecture. x86 has approached this space from the bottom, with 4-way Intel servers being their "high-end" for a long time while IBM had been calling machines with only 20 processors in them "mid-range" for years. IBM has a good server system architecture, Intel's system architecture sucks. The design of x86 has nothing to do with it. Opteron has a good system architecture, and if AMD could afford the gigantic caches of IBM then they'd be sitting pretty in the high-end space.

      Intel attempted to get rid of x86 because they have cross-licensing agreements with AMD on x86 which IA-64 is not subject to. It failed because the implementations were late and relatively poor -- you might notice a theme of hypothetical ISA superiority not materializing in practice -- and more importantly AMD gave people what they really wanted: 64-bit but with backward compatability.

      The x86 ISA forces engineers to spend time working around its defects rather than improving performance or reducing power consumption.

      I think you're both over and under estimating the engineering effort it takes to work around x86's complexities. On the one hand, producing super-scalar decoders for a variable length instruction set is an extremely difficult problem. On the other hand, it has been solved, and relatively little effort is needed to update the design for new processes. The same goes for other problems in x86. The actual effort spent on x86-isms for any particular project is relatively small and their ceasing to exist would not result in huge performance features since those features usually live or die by their own complexity/cost/performance tradeoffs, not lack of manpower.

      Dismissing the issues with it as "engineers who like elegance" crying will not make its technical problems go away. Our personal computers are not as fast as they would be if x86 had not become the standard ISA for them, and it is worth asking when we will be able to get this lost performance back.

      Sure, but the better question would be is it worth the cost to get that lost performance back. The cost is losing compatability with existing software. The benefit is in practice at best a percent of performance. I've been able to measure what happens when you get rid of x86's technical problems, and it isn't much. Programmers/compilers have learned to avoid the worst features of x86 (which are comensurately de-prioritized by the chip designers), and the rest are problems that have been basic

      --

      The enemies of Democracy are
  4. Why Apple moved to x86 by plambert · · Score: 5, Informative

    The reason given, which people seem to keep forgetting, was pretty simple and believable:

    Performance per watt.

    The PPC architecture was not improving _at all_ in performance per watt. Apple's market was growing fastest in the portable space, but it was becoming impossible to keep temperatures and power consumption down with PPC processors.

    And IBM's future plans for the product line were focusing on the Power series (for high-end servers) and the Core processors (for Xbox 360's) and not on the PowerPCs themselves.

    While I've never had any particular love for the x86 instruction sets, I, for one, enjoy the performance of my Macbook Pro Core 2 Duo, and the fact that it doesn't burn my lap off, like a PowerPC G5-based laptop would.

    1. Re:Why Apple moved to x86 by RAMMS+EIN · · Score: 3, Interesting

      ``Performance per watt.''

      Not as I remember. As I remember, the PPW of PowerPC CPUs was pretty good, and getting better thanks to Freescale, but the problem was that Freescale's CPUs didn't have enough raw performance, and IBM's didn't have low enough power consumption. Freescale was committed to the mobile platform and thus was only focusing on PPW, whereas IBM was focusing on the server market, and thus favored performance over low power consumption. Seeing that the situation wasn't likely to improve anytime soon, Apple switched to Intel.

      --
      Please correct me if I got my facts wrong.
    2. Re:Why Apple moved to x86 by loony · · Score: 2, Insightful

      > The PPC architecture was not improving _at all_ in performance per watt. Apple's market was growing fastest in the portable space, but it was becoming impossible to keep temperatures and power consumption down with PPC processors.

      Dual core 2GHz PPC below 25W isn't an improvement I guess? Look at PA-Semi...

      Seriously, this has nothing at all to do with it.. What home user really cares if their PC takes 150W or 180W ? Nobody...

      Peter.

    3. Re:Why Apple moved to x86 by Wdomburg · · Score: 4, Insightful

      Dual core 2GHz PPC below 25W isn't an improvement I guess? Look at PA-Semi...

      You mean a processor from a fabless company announced six months after Apple announced the switch to Intel, and wasn't expected to sample until nearly a year after the first Intel Macintosh shipped? It's an interesting product, particularly if the performance of the cores is any good (hard to say, since there seems to be much in the way of benchmarks), but it didn't exist as a product until recently. Even if it had, there's the significant question of whether they could secure the fab capacity to supply a major customer like Apple.

      What home user really cares if their PC takes 150W or 180W ? Nobody...

      Desktops aren't the dealbreaker here. Try asking "who cares if their laptop runs for 5 hours or 3 hours?" or maybe "who cares if their laptop can be used comfortably in their lap?" or perhaps "who cares if they can get reasonable performance for photo-editing, video-editing and what not in a portable form factor?".

      Cast an eye toward the business market and performance per watt on the desktop is important. You may not care about a 30W savings but an a company with 500 seats may well care about 28800kWh in savings per year (assuming 240 work eight hour work days a year after factoring out weekends holidays and vacation).

    4. Re:Why Apple moved to x86 by Tim+Browse · · Score: 3, Insightful

      Not as I remember.

      I'm confused - didn't you just then go on to confirm that Apple switched to Intel because they got better performance per watt, as the original poster said?

      Or do you mean IBM's performance per watt was really good, but had a lower bound on power consumption that was too much for Apple's laptops/iMacs/Mac minis?

      I was certainly under the impression that Apple were very frustrated with not being able to produce a 'state of the art' laptop with the G5 chipset (hence this famous image), and saw the Pentium M and what else Intel had coming, and decided the world of x86 was good. Performance per watt was definitely the reason Jobs gave when he announced the Intel switch.

    5. Re:Why Apple moved to x86 by soft_guy · · Score: 2, Insightful

      What home user really cares if their PC takes 150W or 180W ? Nobody... Anyone using a laptop?

      Seriously, the reason for Apple to switch to x86 was due to the fact that Intel has focused their business around creating the best possible chips for laptop computers. Laptops are now more than 50% of Macintoshes sold (and probably more than 50% of personal computers in general).

      More money is being spent on R&D for the x86 architecture than anything else and this R&D is focused like a laser on the PC laptop/desktop use case.

      There was a time when the best chip available for a laptop was a PowerPC G3. It was fast and it used really low power. And maybe PPC had a better more elegant architecture. But the fact is that more money has been poured into the x86 architecture so that TODAY and looking at the published roadmaps for the next few years, x86 looks like the clear winner in the PC market.
      --
      Avoid Missing Ball for High Score
  5. Good question... by kotj.mf · · Score: 4, Informative
    I just got done reading about the PWRficient (via Ars):
    • Two 64-bit, superscalar, out-of-order PowerPC processor cores with Altivec/VMX
    • Two DDR2 memory controllers (one per core!)
    • 2MB shared L2 cache
    • I/O unit that has support for: eight PCIe controllers, two 10 Gigabit Ethernet controllers, four Gigabit Ethernet controllers
    • 65nm process
    • 5-13 watts typical @ 2GHz, depending on the application

    Now I have to wait for the boner this gave me to go away before I can get up and walk around the office.

    Maybe Apple could have put off the Switch after all...

    --
    hang brain.
    1. Re:Good question... by the_humeister · · Score: 2, Funny
      Now I have to wait for the boner this gave me to go away before I can get up and walk around the office.

      It's called priapism; you might want mosey on over to the emergency room quickly!
  6. Why do we ... by jbeaupre · · Score: 5, Insightful

    Why do we drive on the right side of the road in some places, left in others?
    Why do most screws tighten clockwise?
    Why do we use a 7 day calender, 60 second minutes, 60 minute hours, and a 24 hour clock like the Sumerians instead of base 10?
    Why do we count in base 10 instead of binary, hex, base 12?
    Why don't we all switch to Esperanto or some other idealized language?
    Or if you're familiar with the story: Why are the Space Shuttle boosters the size they are?

    Because sometimes it's easier to stick with a standard.

    There. Question answered. Next article please.

    --
    The world is made by those who show up for the job.
    1. Re:Why do we ... by terrymr · · Score: 2, Informative

      "The railroad line from the factory had to run through a tunnel in the mountains. The SRBs had to fit through that tunnel. The tunnel is slightly wider than the railroad track, and the railroad track is about as wide as two horses' behinds. So, the major design feature of what is arguably the world's most advanced transportation system was determined over two thousand years ago by the width of a Horse's Ass!"

      from snopes.com

    2. Re:Why do we ... by Robber+Baron · · Score: 2, Informative

      The chariot and horse's ass as a determiner of standard gauge for railroads story, while entertaining, is untrue.

      --

      You're using her as bait, Master!

    3. Re:Why do we ... by dreamlax · · Score: 2, Informative
      "Why do we drive on the right side of the road in some places, left in others?" Where do we drive on the left in the U.S.?

      According to Wikipedia, the Virgin Islands drive on the left.

      And by the way, there are readers from many different countries on Slashdot, and I (from NZ) drive on the left.

  7. Chicken and Egg by RAMMS+EIN · · Score: 3, Interesting

    I think it's a chicken and egg proposition. We use x86, because we use it. Historically, this is because of the popularity of the PC. A lot of people bought them. A lot of software was written for them. Other architectures did not succeed to displace the PC, because of the reluctance of people to abandon their software. Now, with years and years of this happening, the PC has actually become the most performant platform in its price class, while simultaneously becoming powerful enough that it could rival Real computers.

    Slowly, other architectures became more like PCs: Alpha's got PCI buses, Power Macs got PCI buses, Sun workstations got PCI buses, etc. Eventually, the same happened to the CPUs: the Alpha line was discontinued, Sun started shipping x86-64 systems, and Apple started shipping x86 systems. The reason this happened is that most of the action was in the PC world; other platforms just couldn't keep up, in price and performance.

    --
    Please correct me if I got my facts wrong.
  8. Not a technical reason by ivan256 · · Score: 4, Interesting

    The reason is that intel provides better infrastructure and services that any other high performance microprocessor vendor in the industry. When Motorola or IBM tried to make a sale, intel would swoop in and offer to develop the customer's entire board for them. The variety of intel reference designs is unmatched. Intel not only provides every chip you need for a full solution, but they do it for more possible solution sets than you can imagine. Intel will manufacture your entire product including chassis and bezel. Nobody even comes close to intel's infrastructure services. That is why even when other vendors have had superior processors for periods of time over the years, intel has held on to market leadership. There may be other reasons too, but there don't have to be. That one alone is sufficient.

    The other answer, of course, is that we don't always... ARM/xScale has become *very* widely used, but that is still coming from intel. There are also probably more MIPS processors in people's homes than x86 processors since the cores are embedded in everything.

    1. Re:Not a technical reason by Lord+of+Hyphens · · Score: 2, Interesting

      Interesting note: Intel did sell its ARM/xScale off a few months ago.

      --
      "I've spent my whole life figuring out crazy ways to do things. It'll work." -- Montgomery Scott, "Relics"
    2. Re:Not a technical reason by Cassini2 · · Score: 2, Informative

      Intel's support infrastructure also includes some of the best semiconductor fabrication facilities in the business. Intel has consistently held a significant process advantage at its fabs (fabrication facilities) over the life of the x86 architecture. Essentially, no one else can deliver the volume and performance of chips that Intel can. Even AMD is struggling to compete against Intel (90 nm vs 60 nm).

      The process advantage means Intel can get a horrible architecture (x86) to perform acceptably at a decent price/performance point. RISC chips, while faster, require different software. People aren't going to change their software unless a good reason exists. The process advantage of Intel, means that Intel can sell good processors at a reasonable price. Given that, why switch? The x86 is even clobbering Intel's own Itanium (Itanic) architecture in terms of sales.

      Other hardware vendors are competitive in market segments that place very high values on particular system metrics. For instance, the ARM processor is very competitive for low power dissipations and 32-bit applications. The 8-bit embedded microcontrollers (PIC, 8051) are really cheap. RISC chips still dominate the high performance computing market.

  9. Where The Money Is by spoonboy42 · · Score: 5, Insightful

    There's no doubt that x86 is an ugly, hacked-together architecture whose life has been extended far beyond reason by various extensions which were hobbled by having to maintain backwards compatibility. x86 was designed nearly 30 years ago as an entry level processor for the technology of the day. It was originally built as a 16-bit architecture, then extended to 32-bit, and recently 64-bit (compare to PowerPC, designed for 64-bit and, for the earlier models, scaled back to 32-bit with forward-looking design features). Even the major x86 hardware vendors, Intel and AMD, have long since stopped implementing x86 in hardware, choosing instead to design decoders which rapidly translate x86 instructions to the native RISC instruction set used by the cores.

    So why the hell do we use x86? A major reason is inertia. The PC is centered around the x86, and there are mountains and mountains of legacy software in use that depend on it. For those of us in the open-source world, it's not to difficult to recompile and maintain a new binary architecture, but for all of the software out there that's only available in binary form, emulation remains the only option. And although binary emulation of x86 is always improving, it remains much slower than native code, even with translation caches. Emulation is, at this point, fine for applications that aren't computationally intensive, but the overhead is such that the clocks-per-instruction and performance-per-watt advantages of better-designed architectures disappears.

    A side effect of the enormous inertia behind x86 is that a vast volume of sales goes to Intel and AMD, which in turn funds massive engineering projects to improve x86. All things being equal, the same investment of engineer man-hours would bear more performance fruit on MIPS, SPARC, POWER, ARM, Alpha, or any of a number of other more modern architectures, but because of the huge volumes the x86 manufacturers deal in, they can afford to spend the extra effort improving the x86. Nowadays, x86 has gotten fast enough that there are basically only 2 competing architectures left for general-purpose computing (the embedded space is another matter, though): SPARC and POWER. SPARC, in the form of the Niagra, has a very high-throughput multithreaded processor design great for server work, but it's very lackluster for low-latency and floating-point workloads. POWER has some extremely nice designs powering next-generation consoles (Xenon and the even more impressive Cell), but the Cell in particular is so radically different from a standard processor design that it requires changes in coding practice to really take advantage of it. So, even though the Cell can mop the floor with a Core 2 or an Opteron when fully optimized code is used, it's easier (right now at least) to develop code that uses an x86 well than code which fully utilizes the Cell.

    --
    Anonymous Luddite: "What do you think of the dehumanizing effects of the Internet?"
    Andy Grove: "Not Much."
  10. The Ugly Architecture Runs Well by forkazoo · · Score: 5, Informative

    One perspective on the question:

    Non x86 architectures are certainly not inherently better clock for clock. That's a matter of specific chip designs more than anything else. The P4 was a fairly fast chip, but miserable clock for clock against a G4. An Athlon however, was much closer to a G4. (Remember kids, not all code takes advantage of SIMD like AltiVec!) And, the G4 wasn't very easy get bring to super high clock rates. The whole argument of architectural elegance no longer applies.

    The RISC Revolution started at a time when decoding an ugly architecture like VAX or x86 would require a significant portion of the available chip area. The legacy modes of x86 significantly held back performance because the 8086 and 80286 compatibility areas took up space that could have been used for cache or floating point hardware, or whatever. Then, transistor budgets grew. People stopped manually placing individual transistors, and then they stopped manually fiddling with individual gates for the most part. Chips grew in transistor count to the point where basically, nobody knew what to do with all the extra space. When that happened, x86 instruction decoding became a tiny area of the chip. Removing legacy cruft from x86 really wouldn't have been a significant design win after about P6/K7.

    Instead of being a design win, the fixed instruction length of the RISc architectures no longer meant improved performance through simple decoding. They meant that even simple instructions took as much space as average instructions. Really complex instructions weren't allowed, so they had to be implimented as multiple instructions. Something that was one byte on x86 was always exactly 4 bytes on MIPS. Something that was 12 bytes on x86 might be done as four instruction on MIPS, and thus take 16 bytes. So, effective instruction cache sizes and effective instruction fetch bandwidth grew on X86 compared to purer RISC architectures.

    At the same time, the gap between compute performance and memory bandwidth on all architectures was widening. Instruction fetch badwidth was irrelevent in the time of the PC XT, because RAM fetches could actually be done in like a single cycle. Less that it takes to get to SRAM on-chip caches today. But, as time went on, memory accesses became more and more costly. So, if a MIPS machine was in a super tight loop that ran in L1 cache, it might be okay. But, it it was just going balls to the wall through sequential instructions, or a loop that was much larger than cache, then it didn't matter how fast it could compute the instructions if it couldn't fetch them quick enough to keep the processor fed. but, X86 absurdly ugly instruction encoding acted like a sort of compression, meaning that a loop was more likely to fit in a particularly sized cache, and that better use of instruction fetch bandwidth was made.

    Also, people had software that ran on X86, so they bought 9000 bazillion chips to run it all. The money spent on those 9000 bazillion chips got invested in building better chips. If somebody had the sort of financial resources that Intel had to build a better chip, and they shipped it in that sort of volume, we might well se an extremely competetive desktop SPARC or ARM chip.

    1. Re:The Ugly Architecture Runs Well by dido · · Score: 2, Interesting

      This reminds me of an old Dr. Dobb's Journal article that I read more than a decade ago entitled "Personal Supercomputing" (I believe it was back in 1992 or thereabouts) where the author found a good use for a 486+i860 (remember that chip?) combo that involved making the i860 a computation engine and the 486 sort of like an I/O processor, and IIRC it was called PORT. The compiler set for this system didn't generate native i860 or x86 code, but instead compiled C or FORTRAN programs into a type of fixed-length instruction set tailored to the source language. The i860 would interpret this instruction set using a very efficiently hand-optimized interpreter that could fit almost entirely within the on-chip cache, reasoning that the frequent cache misses that come from executing RISC code directly are much more expensive than the interpretation overhead, and it seems that this observation was correct, at least in that case. Essentially, instead of using the i860 as a native RISC processor, the author used it as what could be considered a CISC processor with what amounted to programmable microcode inside its on-chip cache! The author even went so far as to say that this is the way RISC processors should really be used.

      I wonder why no one has tried to use this same approach with more modern RISC architectures. I can see that the approach doesn't lend itself well to multitasking (the article was concerned with building supercomputers, to which multitasking is the very antithesis), but it is similar in principle to how VM's such as Java's and the .NET CLR work. It should also be noted that the instruction sets that the compilers that the PORT system used were memory transfer instructions designed in such a way that most individual statements in C or FORTRAN would compile to at most one instruction, rather than stack-based instruction sets like those used by Java and .NET.

      --
      Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
  11. What are you on? by Chibi+Merrow · · Score: 4, Insightful

    With Just-in-Time compilation, legacy x86 programs could be painlessly run on ARM/PPC by translating them dynamically at run time, similar to how CIL and Java work.

    Do you really believe that? If so, how does one get to this fantasy land you live in? This may be true sometime in the future, but that day is not today.

    I happen to own a PowerBook G4. I like it very much. I love nice little purpose-designed chips based on POWER like the Gekko in the GameCube and it's successor in the Wii. But until we're at a point where you can effortlessly and flawlessly run everything from fifteen year old accounting packages to the latest thing to come off the shelf WITHOUT some PHB type knowing any funny business is going on behind the scenes, x86 is here to stay.

    Plus, RISC has its own problems. It's not the second coming. It's nice, but not for everyone.

    --
    Maxim: People cannot follow directions.
    Increases in truth directly with the length of time spent explaining them
  12. We don't by BenjyD · · Score: 3, Insightful

    We don't really use x86 CPUs, they're all RISC with an x86->RISC decode stage at the front of the pipeline. As far as I understand it, we use the x86 ISA because there has always been too much x86 specific code around for people to switch easily, which gave Intel huge amounts of money to spend on research and fabs.

  13. One reason.. by MartinG · · Score: 5, Funny

    tIs' ebacsue ilttel neidna si ebttre.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  14. Like it or not, x86 is the portable ISA by swillden · · Score: 5, Interesting

    The x86 ISA hasn't been bound to Intel for some time now. There are currently at least three manufacturers making processors that implement the ISA, and of course there is a vast number of companies making software that runs on that ISA. Not only that, Intel isn't even the source of all of the changes/enhancements in their own ISA -- see AMD64.

    With all of that momentum, it's hard to see how any other ISA could make as much practical sense.

    And it's not like the ISA actually constrains the processor design much, either. NONE of the current x86 implementations actually execute the x86 instructions directly. x86 is basically a portable bytecode which gets translated by the processor into the RISC-like instruction set that *really* gets executed. You can almost think of x86 as a macro language.

    For very small processors, perhaps the additional overhead of translating the x86 instructions into whatever internal microcode will actually be executed isn't acceptable. But in the desktop and even laptop space, modern CPUs pack so many millions of transistors that the cost of the additional translation is trivial, at least in terms of silicon real estate.

    From the perspective of performance, that same overhead is a long term advantage because it allows generations of processors from different vendors to decouple the internal architecture from the external instruction set. Since it's not feasible, at least in the closed source world, for every processor generation from every vendor to use a different ISA, coupling the ISA to the internal architecture would constrain the performance improvements that CPU designers could make. Taking a 1% performance hit from the translation (and it's probably not that large) enables chipmakers to stay close to the performance improvement curve suggested by Moore's law[*], without requiring software vendors to support a half dozen ISAs.

    In short, x86 may not be the best ISA ever designed from a theoretical standpoint, but it does the job and it provides a well-known standard around which both the software and hardware worlds can build and compete.

    It's not going anywhere anytime soon.


    [*] Yes, I know Moore's law is about transistor counts, not performance.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  15. But you do use the metric system by OzPeter · · Score: 2, Informative

    Obligatory wiki page

    And while you seem to be holding out, I did see one website that suggested less thna 7% of the worlds population doesn't use the metric system .. and the US is 80% of that 7%

    --
    I am Slashdot. Are you Slashdot as well?
    1. Re:But you do use the metric system by BravoFourEcho · · Score: 2, Informative

      Ask the average Joe in the US how far a meter is, and you'll likely get a blank stare and the response "metric is too hard." Yes, metric is taught in schools. Yes, some states post road signs using kilometers alongside the mile signs. But the only non-engineering, non-scientist segment of the population to use metric is the military, because the land maps are in metric. Everything else is still pounds for weight and gallons for volume.

      --

      What good is a double standard if you can't enforce it?
    2. Re:But you do use the metric system by Tim+C · · Score: 4, Insightful

      I've never understood the attitude that "metric is too hard". It's all powers of ten and standard prefixes. How many millimetres in a metre? 1000. How many millilitres in a litre? 1000. How many metres in a kilometre? 1000. How many ounces in a pound? 16 (I think!) How many pounds in a stone? 14. What's the name of the next unit up? I had to google for it - apparently it's a quarter, which is 28lb (2 stones). Same with distance; 12 inches in a foot, 3 feet in a yard, 1760 yards in a mile (skipping over chains, poles and furlongs).

      I know that a lot of it is simply what you're used to, but Imperial units are nonsensical to me after a science-heavy education using only SI units.

    3. Re:But you do use the metric system by illtud · · Score: 2, Funny

      You have a point, up until you tried to use "stone" as a measurement, because until you did, I didnt even know it existed.

      if you are gonna compare units, use the commonly used ones vs the craziest version you can find.


      In the UK, stone is the standard unit for weight of people, not pounds. If you asked a UKnian how much they weigh in pounds, most of them couldn't tell you (slightly more could probably tell you in kilos), everybody uses stones. 7 stone is slight, 15 stone is heavy. 20 stone is American.

  16. CISC (x86) vs RISC by Spazmania · · Score: 2, Informative

    These days there is a limited amount difference under the hood between a CISC processor like the x86 series and a RISC processor. They're mostly RISC under the hood but a CPU like the x86 has a layer of microcode embedded in the processor which implements the complex instructions.

    http://www.heyrick.co.uk/assembler/riscvcisc.html

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  17. But we did by teflaime · · Score: 4, Insightful

    vote with our wallets. The x86 architecture was cheaper than ppc, so that's what consumers chose. It is still consistently cheaper than other architectures. That's ultimately why Apple is moving to it too; they weren't selling enough product (yes, not being able to put their best chip in their laptops hurt, but most people were saying why am I paying $1000 more for a Mac when I can get almost everything I want from a PC)?

  18. performance isn't the only factor by briancnorton · · Score: 4, Insightful

    Why don't we all drive Formula 1 Cars? Why not hybrids? Why not motorcycles or electric scooters? The reason is that there is an infrastructure built around supporting a platform that is reliable, robust, and surprisingly extensible. (MMX, SSE, 64bit, etc) Intel asked the same question and came up with the Itanium. It is fast, efficient, and well understood. This is the same big reason that people don't use Linux, it's hard to switch for minimal tangible benefits. (not a flame, just an observation)

    --

    People who think they know everything really piss off those of us that actually do.

  19. Re:Code Size is the answer by AndrewHowe · · Score: 3, Interesting

    I can see where you're going with this... But... Well, not so much.

    RISC CPUs with 4-byte instructions that don't do very much require lots of memory bandwidth to execute.

    Well, I'm currently working on ARM, and stuff almost always ends up smaller than x86 code. Those 4-byte instructions actually do quite a lot. Oh, and that's with straight ARM code, not Thumb or Thumb-2.

    The x86 instruction set has lots of 1-byte instructions

    Not so many actually, and the ones it does have are mostly totally useless these days!

    and multi-byte instructions that do a lot.

    Well, you get to do fancy addressing modes on the rare occasions that you need them... But not too fancy, no pre/post increment/decrement etc.

    In other words, x86 is really just a compression scheme for instruction sets.

    Sort of, except that it was never designed to be one, and it's not very good at it at all.
    Well, you could say that it was an OK (but not great) encoding for 8086, but it's totally unsuited to encoding the instructions that modern software actually uses.

  20. Parent nails it by metamatic · · Score: 2, Insightful

    OK, parent is the first post I've seen that explains the real reason why the x86 has become basically the only instruction set in mainstream computing.

    There's no technical advantage to x86. In fact, IBM picked it specifically because it sucked--they didn't want the PC to compete with their professional workstations. Grafted on sets of extensions (SSE, MMX etc) have just made x86 more baroque over the years, and backward compatibility requirements have prevented cleaning away crap like segmented memory.

    However, once a big enough chunk of the market got behind x86, it became impossible for any other design to keep up in R&D across all segments (mobile, desktop, server etc). Intel collects truckloads of cash, so they can spend more on engineering and make up for x86's deficiencies. IBM can compete with Intel, but even IBM decided it wasn't financially viable to be competitive in all segments, and basically dropped desktop PowerPC to focus on embedded (game consoles) and servers, hence Apple's switch to Intel. Similarly, AMD can compete, but only in desktop and servers. VIA compete, but only in embedded and low-end desktop.

    The interesting question is whether the same thing will happen with operating systems. We're now basically down to Windows and Unix, plus a few niche OSs for embedded systems and high end servers. Microsoft finds itself in the awkward position of having to compete against most of the rest of the computing industry, including Sun, IBM, Apple, HP... At the same time they have certainly the biggest--and likely the cruftiest--codebase in the history of computing.

    Ten years ago they were able to deliver technology before the competition, albeit not original technology--DDE and OLE shipped in usable form before the Publish-and-subscribe and OpenDoc they were copied from. Now things are different, Microsoft is struggling to keep up with Apple. It seems they can't copy Apple's new technology as fast as Apple can invent more new stuff. And at the same time, they're trying to fight two more wars in the embedded space with Xbox and Windows CE. Hence 5 years between desktop OS releases, while Apple has a release every 18 months.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  21. Because ISA doesn't matter by Erich · · Score: 3, Insightful
    It's because if you're willing to throw some effort at the problem, the instruction set doesn't matter.

    Intel chips haven't really executed x86 since the original Pentium. They translate the instructions into a more convienient form and execute those. They do analysis in hardware and find all sorts of opportunities to make code run faster.

    As it turns out, you have to do most of the same analysis to get good performance on a RISC too. So you have a bit of extra decoding work, which you might not have to do on a MIPS or something, but you gain some flexibility in what lies underneath. And if you're producing 10x the amount of processors as Freescale, you're going to be able to make up for any marginal increase in cost the extra complexity costs you.

    Also, don't buy into the hype. You can't buy that much from a good ISA on high-end processors. Look at the SPEC numbers for the Core 2 duo vs. anyone else if you don't believe me. IA64 was supposed to be the greatest thing ever because compilers could do all the work at compile time. There's almost every instruction set hook imaginable in IA64. And look how that architecture has turned out.

    We use x86 because instruction translation is pretty easy and very effective... the same reason why Java algorithms perform pretty well, Transmeta had a halfway decent chip, Alpha could execute x86 code pretty well, and Apple can run PPC apps pretty well on x86. It's not bad enough to be completely broken, and we can engineer our way out of the problems in the architecture.

    Of course, if you're counting transistors and joules, some of this breaks down... that's why ARM and DSPs have been effective at the low end.

    --

    -- Erich

    Slashdot reader since 1997

  22. Architecture is meaningless for the end user by ebunga · · Score: 2, Insightful

    Architecture is meaningless for the end user and almost meaningless for the application developer. The preferences of OS designers and compiler writers are meaningless unless it can somehow Make Things Better for the end user.

  23. Microsoft Windows by quarrel · · Score: 2

    There are lots of posts already outlining the technical aspects of why (Speed/Power/Momentum/whatever), and while they are certainly important, I think it misses the crux entirely.

    x86 is dominant, because Microsoft Windows has a monopoly on the desktop computer market, with an operating system that runs on x86. Intel and Microsoft have massive synergies - Intel gets dominance of the CPU market because it has Microsoft Windows, and so it can spend massive amounts of R&D and win the speed/power/technical merit wars (sometimes, or enough), and this massive amount of CPU power allows Microsoft to bring us amazing breakthroughs like the Aero interface (and the new Office ribbon!)...

    Why Microsoft got that monopoly, and why it does/doesn't deserve to keep it, gives us endless comments on slashdot already, so no real point in going in to it here.

    (Yes, I'm aware there has been Windows for other architectures, but the massive backlog of x86 software that runs on Windows and won't be recompiled for something else is HUGELY important)

    --Q

  24. Microsoft did do that with NT by sczimme · · Score: 2, Informative


    Even in the 80s/90s it would have been completely possible for Microsoft to support a wide range of processors ( if their OS was designed correctly )

    Microsoft did do that: there was a time when NT ran on X86, DEC Alpha, and PowerPC machines. (Okay, that's not a huge range, but the point stands.)

    X86s became cheaper and cheaper, and continuing development of NT on !X86 became financially infeasible due the rapidly-shrinking market share for non-PC platforms.

    --
    I want to drag this out as long as possible. Bring me my protractor.
  25. Why we REALLY use x86. by Ninja+Programmer · · Score: 2, Interesting

    bluefoxlucid asks: "With Apple having now switched to x86 CPUs,
    I've been wondering for a while why we use the x86 architecture
    at all. ..."

    Because its a better CPU.

    "... The Power architecture was known for its better performance
    per clock; ..."

    Utter nonsense. This is a complete lie. Benchmarks do not bear this out. And this is besides the fact, that this qualifier reveals the PowerPC's primary weakness -- it has a far lower clock rate.

    "... and still other RISC architectures such as the various ARM
    models provide very high performance per clock as well as
    reduced power usage, opening some potential for low-power
    laptops. ... "

    ARM is currently made by Intel. It does have a high ops per clock performance, but it does so at a severe complexity penalty which drammatically limits clock rate. You can't get "free extra shift" or "free conditional computation" without some compromise to the architecture.

    " ... Compilers can also deal with optimization in RISC
    architectures more easily, since the instruction set is
    smaller and the possible scheduling arrangements are thus
    reduced greatly. ... "

    Nice in theory. Intel's latest generation compilers put other compilers to shame. Remember that x86s perform a lot of auto-scheduling themselves. While it may seem like putting more scheduling pressure onto the compiler seemed to make sense back in the 90s, no compiler can solve them totally correctly. This is critical especially in dynamic situations such as cache and branch misses (which the compiler can often neither detect or even solve). By letting the CPU solve the problem dynamically as the problems occurr, it can do so nearly optimally all the time.

    " ... With Just-in-Time compilation, legacy x86 programs
    could be painlessly run on ARM/PPC by translating them
    dynamically at run time, similar to how CIL and Java
    work. ... "

    Are you smoking pot? The state of the art in x86 CPU emulation are the Itanium and TransMeta CPUs. Both failed precisely because of their pathetic performance of their x86 emulators. The x86 has complicated addressing modes, flag registers, structured sub-registers, unaligned memory access, etc, which does not easily translate to "clean RISC" architectures. (However, they do translate to straight forward hardware implementations, as AMD and Intel have proven.)

    " ... So really, what do you all think about our choice of
    primary CPU architecture? ... "

    It is the correct and logical choice. If RISC were really the greatest thing since sliced bread, then PowerPC should be running circles around x86. But the truth is that it can't even keep up.

    "... Are x86 and x86_64 a good choice; or should we have shot
    for PPC64 or a 64-bit ARM solution?"

    Why would you want to use a slower, and less functional CPU? Yes, I said *LESS FUNCTIONAL*. Look into how the PowerPC performs atomic lock operations. Its pathetic. Its just built into the basic x86 architecture, but the PowerPC requires significant external hardware support (via special modes in the memory controller) to do the same thing. x86 just supports "locked memory addresses" which nicely maps to the caching modes.

    PowerPC is missing both the right instructions and relevant memory semantics to support it directly. PowerPC uses seperate lock instructions for cache lines, which means that each thread can lock out other threads arbitrarily; if you crash or stall with a held lock, all dependent threads deadlock. It also means you can't put multiple locks in a single cache line and expect them to operate ind

  26. As apple proved by polyp2000 · · Score: 2, Interesting

    by keeping their code open (at least internally) and cross platform it really doesnt matter what architecture it is running on. The switch to intel was comparitively quick - relatively speaking.

    The reasons for apples switch were made on costing and performance - and undoubtably because IBM failed to deliver.

    Of course if something else comes up - I imagine we would see another change.

    N.

    --
    Electronic Music Made Using Linux http://soundcloud.com/polyp
  27. Re:Why do we count in base 10 instead of binary... by g2devi · · Score: 2, Insightful

    Binary, hex, and base 12 aren't "natural" since we have 10 fingers to count.

    That being said, if our ancesters don't use thumbs or used them as carry bits or used them to extend our counting range to 32 we would all be using octal.

  28. Maybe you *can* polish a turd? by CatOne · · Score: 2, Insightful

    For all the academic arguments about what architecture is better (CISC versus RISC, pipelined versus superscalar, etc.) what's difficult to deny is that the Intel/AMD (and the x86 architecture in general) have continued to meet or exceed Moore's law. Despite Apple's insistence that PowerPC was a better and faster path forward, the facts are that Intel outran them. This doesn't necessarily mean it's a better architecture, but rather the engineering resources (perhaps due to AMD/Intel competition) managed to do more with what they had. Maybe x86 is performing at 95% of its potential, and PPC at 50%. Who knows. Who actually cares, except for an academic discussion.

    SPARC may well be the same way -- the main issue there is that Sun doesn't have the resources to both build CPU architectures, computer architectures, and OS and application software, and be competitive in all markets.

    There are other instances of something similar. Take the Porsche 911. A rear-engined setup (with the majority of the weight of the car *behind* the rear axle) is inherently inferior to a mid-engine design. The car should handle like crap. And early versions, for the most part, did (oversteer was a very real and common issue). Take 40 years of incremental advances in body and suspension design, and the 911 is one of the best handling cars there is. The design is not the best -- it never WILL be the best -- but it is a very, very competent performer. Few things are better.

  29. Flawed assumptions in the question by Sebastopol · · Score: 2, Interesting


    Compilers can also deal with optimization in RISC architectures more easily

    This is a dead giveaway that the author is just stabbing at the wind. Scheduling is no more complex with CISC than with RISC. In fact, some compilation can be optimized even better by specialized CISC instructions that happen frequently. This is an ancient debate that is a tie.

    With Just-in-Time compilation, legacy x86 programs could be painlessly run on ARM/PPC by translating them dynamically at run time, similar to how CIL and Java work.

    Yeah, and run 20x slower.

    what do you all think about our choice of primary CPU architecture

    The R&D was sunk into x86 by the two most able teams, Intel and AMD. Companies are driven by profit, and higher profit meant honing x86 and leveraging an installed base. That's the only reason why we are x86 world.

    But claiming a RISC world would be better is again an argument that has been put to rest decades ago: we'd be having the same argument reversed if RISC was the dominant architecture.

    Further, there are pedants out there who will argue all x86 is really RISC under the hood, but that's a bit misleading.

    --
    https://www.accountkiller.com/removal-requested
  30. MS CPU by codecore · · Score: 2, Interesting

    Actually, the writing is on the wall. There will be a new architecture in the 5-10 year time-frame. Microsoft has openned a design center in Silicon Valley, and I suspect that they are developing the IP for a MSIL core. They will then license this IP to any vendor (ala ARM). But how do you introduce a new architecture without an installed base of software (ala 29K, 88K, T800, Clipper, etc)? Well, any software that has targetted the CLR will run on the new cores natively, or with an efficient JIT translation (ala Jazelle). This should open the CPU market to many other players. A good thing. What about legacy code? For source code, there will be a tool for translating C to C#. C++ may be translated to Managed C++, or C#. Java also maps to C#. For binaries, there will be a load-time translator (HDD image is x86, memory image is MSIL), and perhaps an install-time translator (DVD-ROM image is x86, HDD image is MSIL). This is all just my speculation, but the text on that wall looks pretty clear to me.

  31. Who cares? by Chris+Snook · · Score: 2, Insightful

    Modern CPUs have sufficiently complex decoder units at the front of sufficiently deep pipelines that the programmer-visible ISA has very little impact on the performance-critical aspects of the architecture. You need look no further than the vast architectural difference between AMD and Intel, or even Intel and Intel (P4 vs. Core) for the proof.

    So, we'll keep using x86 in this market because it's what we've been using. We need *some* ISA, and now that the ISA itself is largely decoupled from the underlying implementation, there's very little incentive to change it.

    --
    There's no failure quite as dissatisfying as a complete and total solution to the wrong problem.
  32. Re:Code Size is the answer by AndrewHowe · · Score: 2, Insightful

    Really? That hasn't been my experience.

    Yes, really. But there are many variables, of course.

    Increment/decrement of a register is one of those 1-byte instructions.

    Yes, and push/pop. Note that I said 'mostly', and that my general point is that such instructions take up too much opcode space for their relative usefulness.

    And don't underestimate those fancy instructions. It's very nice to be able to do things like a nondestructive multiply by 5 without using up the ALU.

    It's nice, occasionally, but you don't need it so often in practice and you can do even more fancy stuff with ARM.

    Well... it's not ideal for code compression, but I wouldn't call it "totally unsuited".

    I think you're stretching my words a bit too far, we're talking about code compression so I didn't feel the need to qualify further.

  33. Re:Another reason by vought · · Score: 2, Interesting

    We know what happened to the PPC port (it was finished by Apple), we know what happened to the x86 port (it was secretly maintained by Apple).

    Having worked there during the mid-to-late 90s, I would characterize the effort more as "overhauling NeXTSTEP into Mac OS X and maintaining an x86 build".

    It was a matter of weeks after the acquisition was finalized before NeXT engineers had a PPC build running - minus a lot of support for Apple's ASICs. At the time, Apple's machines were pretty heavily specilaized, with custom ASICS for video (powerbooks), I/O, and specialized interfaces (ADB); other than supporting these chips and their bugs, there wasn't much to finish. ;-|

    I remember trying to NetBoot a Workgroup Server 700 (2x200MHz 604) with Rhapsody in late 1997. At that point, it had been up and running and demonstrated on campus several times throughout the summer. I never did get that to work because the Rhapsody team did not support the C&T video chip the NWS hardware used. Too bad, because those machines were extremely capable hardware.

    The x86 builds were maintained on control hardware as a matter of course throughout the Rhapsody, Mac OS X Server and Mac OS X days. Most Mac OS X development was done on PCs pre-2000 IIRC. I don't see the point in keeping it going on SPARC, but given the rumors about Apple and Sun during this time, I wouldn't have been surprised it was working on those boxes too.

  34. 68k vs. 8086/8088 by nojayuk · · Score: 3, Informative

    There were a number of factors that made the IBM team go for the Intel solution rather than the superior 68000 chip from Motorola. One factor was, as you said, the 8088 chip could use plentiful and well-understood 8-bit peripheral chips like the 8251, the 8259 etc. Another factor was that the 68000 had a long gestation -- Motorola had problems producing chips in quantity that could actually run at their specced speed of 8MHz. I played with an early dev board which had a working 68000 but it only ran at 4MHz. At that time the 8086/8088 were already available on the market, in quantity and that's what IBM needed.

    The biggest factor though was probably the software. The x86 architecture was structurally similar to the venerable 8080 family's architecture (hence the memory segmentation, 8/16 bit registers etc.), and there was a lot of 8080-family code already out there, including developer toolsets like compilers and assemblers. Intel also released conversion tools for coders to convert existing 8080 code to run on their new 16-bit CPUs. The M68k was radically different structurally from Motorola's 6800 8-bit chips and its instruction set (although a dream to code new stuff for) did not make transitioning older 8-bit code easy.

    1. Re:68k vs. 8086/8088 by scdeimos · · Score: 2, Interesting
      The 68000 was packaged in an enormous 64-pin package (I've heard it called "the aircraft carrier") and IIRC it required three voltages.

      Ah, no, the 68000 was definitely a single-supply 5 volt chip. It did come in via two pins, though (14 and 49), to spread the current load across the die.

      Perhaps you're confusing the power requirements of the chip with the power outputs of the Macintosh power supply which were +5v (main logic), +12v (drive and video power) and -5v (serial).

  35. Limitations of x86 by alexhmit01 · · Score: 3, Interesting

    You're right about the advantages of the CISC ISA vs. a RISC ISA, but I wanted to throw a few more points out.

    Originally, going to RAM was cheap (in terms of cycles), going to disk was slow, so we loaded what we could in RAM and processed it. However, RAM was VERY expensive, until very recently, having "enough RAM" was rarely affordable. NT took so long to mass market (Win2K sort of, XP did it, almost 10 years), because when NT 3.1 shipped, it wanted 16 MB of RAM on the x86, and 32MB of RAM on the other systems, but going above 8 MB required specialized RAM because the RAM Chips (you plugged chips into sockets then, not chips on cards with standardized interfaces) were mass produced for 1 MB, 4 MB, and 8 MB, but going to 16 MB required using VERY expensive (relative to normal RAM) chips. So upgrading from 4 to 8 was normally doable (usually, they used the same chips, and you filled half the slots for 4MB, I think, it's been a long time since I had a 486 computer), but going to 16MB would often cost $2000 for the new RAM, when computers sold for $2000.

    In the days of expensive RAM, the tighter ISA of x86 (more instructions per megabyte) gave them a major advantage in the real world. Sure, the ISA was crap, and the chips were crap, but when the most expensive component was RAM, the x86 used on average half the memory as the RISC competitors, which gave Intel a HUGE advantage in the cost-conscious desktop fight. It wasn't until the last 5 years, when Microsoft stagnated in their quest to use up more and more memory with each release (largely by failing to release OS updates), that the continual growth of RAM outpaced the computers. WinXP will run in 256MB, and run decently on 512MB, but 1GB or 2GB of RAM is reasonable for a decent system, and 512MB is not reasonable for a budget system. However, when we were struggling cost wise with 4MB and 8MB, the larger size of RISC programs was a problem.

    Up until this point, it wasn't clear that x86 was the winner, it was the release of Windows 95 on the Pentium chips when Microsoft "won" the market, up until then, Windows was niche, OS/2 looked promising, Apple was a contender, and everyone just ran DOS/WP5.1 and NetWare 2.0. Up until 1995, it was anybody's game.

    The biggest hit to the x86 was the lack of registers. In the 8088 and 8086 days, going to RAM wasn't too expensive, and the chip couldn't do much in the mean time, so we didn't care so much that it was the most register starved system. However, as chips got faster, going to RAM got expensive, and we didn't have registers, which is why the x86 GOT SMOKED in tightly run loops, because it couldn't keep enough data in there. The original cache banks (these were high tech, the chips were on a little card you plugged into your motherboard, you could even upgrade them for more) were to run faster than RAM, and created a third tier. Originally, this seemed like a hack because of the lack of registers.

    However, our chips have massively increased in speed in the past 10 years (we were running at ~75-200 MHz in 1996) which meant that flooding the processor with data is the problem. The clock cycles are VERY short (we run ~ 2 Ghz, I remember the excitement at AMD making a 12 MHz 286, the 8088 started at 1 or 2 MHz), which means that carrying the signal over the wires is now an issue, so our motherboards are tighter, we keep cache ON THE CHIP, etc.

    One reason that the x86 always outperformed was that once going to RAM became expensive, the smaller instruction size (and at the time, having 16-bit integers instead of 32 or 64) meant that if Intel provided 128 KB cache, then the other players needed 256 KB or even 512 KB to have the same caching advantage. This means, all things being equal, RISC was the better architecture, but IN REALITY, x86 could do the same amount of work with half or less resources. This allowed the computers to price cheaper, AND it meant that Intel could make HUGE profits.

    For example, if RISC Vendor A sold a solution for $2500, assuming $2000 in parts

  36. literacy, a beautiful thing by dmorelli · · Score: 2, Funny

    "Posted by Cliff on 2007-01-04 10:13
    from the because-their-cheap dept."

    I pledge to use the x86 architecture until Cliff learns the difference between "their" and "they're"

  37. Because They're Good Enough by localman · · Score: 2, Insightful

    Isn't it because all of the alleged advantages of other architectures just weren't compelling enough? And because unless you've got a rare sense of aesthetics for processor architecture design, nobody really cares what kind of chip is in the machine?

    To elaoborate: I used to have and Amiga with an '040, and I remember then the arguments about how it was a "better" processor. But when the Commodore died I got a Cyrix Pentium-class PC and it seemed faster rendering in Lightwave, and that was all I really cared about at the time. Years later I switched to the Mac because I liked OSX. I ran it on a G4, and everyone said the G4 was "better" than the x86 of the day. I'm on a MacBook Pro now, with a Core Duo, and it seems faster. At least as fast, if not faster, than my wife's G5. Battery life is about as good as my G4 was. Maybe it gets a little hotter, but I don't really notice.

    So in the end, regardless of any aesthetic concerns about the architecture or theories about what is "right", "clean" or "better", x86 seems to have been good enough all along the way to make switching a waste of time. So if it's not pragmatically better, why all the sorrow?

    Cheers.

  38. Server farms and power consumption by Reziac · · Score: 2, Interesting

    Recently I saw a stat that about 40% of the power consumption in California goes to feed server farms. Given that, even a 1% savings is millions, possibly billions of dollars worth.

    --
    ~REZ~ #43301. Who'd fake being me anyway?
  39. Re:Code Size is the answer by gnasher719 · · Score: 2, Informative

    '' Increment/decrement of a register is one of those 1-byte instructions. And don't underestimate those fancy instructions. It's very nice to be able to do things like a nondestructive multiply by 5 without using up the ALU. ''

    Increment/decrement of a register is gone in 64 bit code and painfully slow anyway (it seemed a good idea in 1977, but partial condition code register updates are a pain). Lots of floating point instructions have three or four bytes in prefixes alone, that's before we even start with the instruction itself. Multiplication by 5 using LEA instruction on a P4 took five cycles; on an ARM it takes one...

    I had to write a bit of decryption code a few months ago, and a 200 MHz ARM chip was about as fast as an 800 MHz P4.

  40. Let's abandon Linux by sulfur · · Score: 2, Insightful

    OK, everybody, let's switch to Windows. "Because sometimes it's easier to stick with a standard". But nevertheless the easy way should not be always chosen.

  41. Silly rabits, x86 has been RISC core since PPro by gmezero · · Score: 5, Informative

    x86 only refers to a set of API interfaces with the CPU architecture. As of the launch of the Pentium, the modern "x86" processor is a RISC based CPU with an internal x86 translation layer. Start you learning here. x86 is also refered to as x86-32 or IA-32. And with the current generation of processors, we are leaving that behind for "x64" also known as EM64T, IA-32e or IA-64 in its various iterations. Many of the "x64" series generally maintian "x86" interface compatibility in order to allow legacy operation. For instance you can run Warp Server on a dual Opteron server just fine.

    1. Re:Silly rabits, x86 has been RISC core since PPro by Creechur · · Score: 3, Informative
      And with the current generation of processors, we are leaving that behind for "x64" also known as EM64T, IA-32e or IA-64 in its various iterations.

      Just to clarify, IA-64 was implemented only in Itanium processors, and is unrelated to x86-64. Intel themselves tried to break away from the x86 line, and the market wasn't very receptive, which is part of what drove the creation of x86-64 instead by AMD.

    2. Re:Silly rabits, x86 has been RISC core since PPro by MSTCrow5429 · · Score: 2, Informative

      Actually, the Pentium is CISC, x86 internally. The Pentium Pro is RISC, non-x86 internally. As is the AMD K5 and up. For some reason, Cyrix stuck with x86 internal. See sandpile.org.

      --
      Slashdot: Playing Favorites Since 1997
  42. THESE are the reasons we use x86 by default+luser · · Score: 4, Insightful

    1. Development of efficient compilers and high-end IDEs. Without having to see the mess that is x86 machine code, you can usually ignore it. People made a clamour for clean RISC machine code in the 80s, but within a decade very few people really cared anymore.

    2. Total backward-compatibility of the API for the last 20+ years. Even Windows doesn't offer such amazing compatibility modes.

    3. Every fundamental architectural improvement in CPU design has been integrated into the x86 family. Academics and designers alike said it was impossible, but x86 today enjoys all the benefits of RISC, pipelining, superscalar design, branch prediction, out-of-order execution, register renaming, symmetric multi-threading and multi-processing, real-time voltage and frequency adjustment...you name it, it has been implemented on an x68 processor.

    These reasons are why everyone still uses x86. These reasons are why x86-64 is the predominant 64-bit architecture, and will be for some time. The die overhead for the compatibility and translation layers on modern processes is tiny, so why the hell not keep using it?

    --

    Man is the animal that laughs.
    And occasionally whores for Karma.