Slashdot Mirror


Despite Aging Design, x86 Still in Charge

An anonymous reader writes "The x86 chip architecture is still kicking, almost 30 years after it was first introduced. A News.com article looks into the reasons why we're not likely to see it phased out any time soon, and the history of a well-known instruction set architecture. 'Every time [there is a dramatic new requirement or change in the marketplace], whether it's the invention of the browser or low-cost network computers that were supposed to make PCs go away, the engineers behind x86 find a way to make it adapt to the situation. Is that a problem? Critics say x86 is saddled with the burden of supporting outdated features and software, and that improvements in energy efficiency and software development have been sacrificed to its legacy. And a comedian would say it all depends on what you think about disco.'"

35 of 475 comments (clear)

  1. English is 700 years old by athloi · · Score: 4, Funny

    It should be replaced with Esperanto when we all upgrade to Vista.

    1. Re:English is 700 years old by Yst · · Score: 4, Informative

      Modern English is about 750 years old. English is at least 1550 years old. Tradition is to trace the English presence in Britain to the quasi-historical Anglo-Saxon incursions of the mid-5th century, but migration almost certainly preceded military confrontation. The starting point for the English language (and the Old English era) is the introduction of a continuous Anglic presence to Britain. And that linguistic heritage, termed English, begins at least 1550 years ago.

      --
      Karma: Chameleon (comes and goes)
    2. Re:English is 700 years old by bWareiWare.co.uk · · Score: 4, Funny

      If 8086 was a horse, then x86_64 would have sixteen legs and be capable of mach 3.

    3. Re:English is 700 years old by Unicorn+Giggles · · Score: 4, Funny

      Modded down for vista bashing??? You haven't been here long have you, all we have around here are apple and linux fanboys.

    4. Re:English is 700 years old by KowShak · · Score: 5, Interesting

      One of the reasons that x86 is able to perform as well as it does is its code density, that is a measure of how small a number of instructions (and the memory you need to store them) is compared to the work they can do.

      RISC architectures don't give very good code density, so ARM have their ARM Thumb compressed instruction set, thats the way the embedded processors acheive good power efficiency, by cutting down the amount of memory traffic that instruction requests generate.

      You can think of x86 as a way to compress the storage needed to contain the equivilent RISC instructions needed to perform the same work, that means that you make better use of available memory bandwidth and caches etc, your memory is vastly slower than the processor so you've got to make use of its bandwidth efficiently.

    5. Re:English is 700 years old by nuzak · · Score: 4, Insightful

      > Oh, and before I get modded into oblivion by the MS fanboys,

      For gods sakes, express a point of view and STOP FUCKING WHINING ABOUT MODERATION.

      Seriously. Even if you ARE modded down, it doesn't make you some kind of martyr.

      --
      Done with slashdot, done with nerds, getting a life.
  2. Let me guess... by Anonymous+Brave+Guy · · Score: 4, Insightful

    A News.com article looks into the reasons why we're not likely to see it phased out any time soon

    I'm going to go with:

    1. Installed base.
    2. Installed base.
    3. Installed base.

    Did I miss anything?

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:Let me guess... by Half+a+dent · · Score: 5, Funny

      4. ???
      5. Profit

    2. Re:Let me guess... by morgan_greywolf · · Score: 4, Funny

      Did I miss anything?


      I think you forgot to mention installed base.
    3. Re:Let me guess... by precize · · Score: 5, Funny

      The one time "All your base are belong to us" is actually an on-topic comment

    4. Re:Let me guess... by leuk_he · · Score: 4, Informative

      "There's no reason why they couldn't ditch 60 percent of the transistors on the chip, most of which are for legacy modes."

      I think 50% of the transistors on a modern cpu are cache, you could call that legacy stuff. But the 60% figure makes no sense. For the real, seldom used, legacy instructions, less time is spend on optimizing them in Microcode. And the microcode does not take THAT much space on a cpu.

      Some sources:
      Cpu die picture, est 50% = cache
      P6 takes ~ 40% for compatibility reasons. And as the total grows, the percentage should DECREASE, not INCREASE. If the amount grows it is for performance reasons, not compatibility reasons.

      However when you count the source "XenSource Chief Technology officler" it is not surprising that backwards compatibility gets that much attention. A main reason virtualization exists is to run older platforms so they are compatible.

  3. lock in by J.R.+Random · · Score: 4, Insightful

    The x86 instruction set will be retired in the same year as the QWERTY keyboard layout.

  4. Simple! by VincenzoRomano · · Score: 4, Insightful

    Just like the four stroke engine. It's not the best one, it can be largely enhanced and made better, but it's still here.
    And just like the four stroke engine, modern engines just burn gasoline and push car forward. This is where the similarity with the original engines end.

    --
    Maybe Computers will never be as intelligent as Humans.
    For sure they won't ever become so stupid. [VR-1988]
    1. Re:Simple! by Wite_Noiz · · Score: 5, Insightful

      I've heard loads of metaphors about why x86 will be around for years to come, but none of the really hold.
      An engine is black-box - petrol in, kinetic energy out (simply) - whereas the architecture on a processor is not.

      AMD and Intel can make as many additions to x86 as they like, but if they stop supporting the existing instruction set, they'll sell nothing.

      I'm sure Linux would be compiled on to a new architecture overnight, but I doubt MS would move any time soon - and their opinion holds a lot of weight on the desktop.

      RISC ftw!

    2. Re:Simple! by smenor · · Score: 5, Insightful

      Am I reading you wrong? Most modern engines *are* 4-stroke engines...

      I think that's the point, actually.

      If we were going to start over and design the best way to extract usable power from gasoline from the ground up, we could probably do better than the 4-stroke, just like we could do better than the x86 ISA, and just like we could do better than LCDs for flat panel displays.

      The problem is that, if you take an intrinsically inferior technology, and spend years upon years optimizing it, it will have such a head start that it is almost impossible for a newer, 'better', technology to compete.

    3. Re:Simple! by Nimey · · Score: 4, Funny

      Slashdot needs a mod tag (-1, Car analogy).

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
  5. Does it matter? by MBCook · · Score: 4, Interesting

    At this point, does it matter as much? As we move on the future is clearly x86-64 which is MASSIVELY cleaned up compared to x86 and is really rather clean compared to that. Sure at this point we still boot into 8086 mode and have to switch up to x86-64 but that's not that important, it only lasts a short while.

    As we move off of x86 onto -64, are things really still that bad? Memory isn't segmented, you have like 32 different registers, you don't have operands tied to registers (all add instructions must use AX or something like that) as some 16/32 bit instructions were.

    Of course, we should have used a nice clean architecture like 68k from the start, but that wasn't what was in the first IBM.... and we all know how things went from there.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  6. If it ain't broke, don't fix it by InsaneProcessor · · Score: 4, Insightful

    Yes, the instruction set is old, but, it does still work. As a consumer, why should I have to re-invest in software that I purchased and does the job, just becuase my hardware failed, or faster hardware becomes available and I upgrade. Apple bit that one some time ago. Last year, I had an investment of $4000.00 in software when Intel came out with a significantly faster part that was dropping in price. Just by upgrading my hardware (cost $800) my invenstment improved significantly. $4800.00 did not justify the upgrade but the low cost of hardware only, did. Also, there was not learning curve involved.

    You don't buy a new car just becuase the tires need replaceing (well some people do, but that is rarely the fiscally responsible thing).

    If it ain't broke, it doesn't need fixing.

    --

    Athiesm is a religion like not collecting stamps is a hobby.
  7. It's hairy to emulate, too by kabdib · · Score: 5, Interesting

    Things would be a lot easier if the darned thing wasn't so bloody complex to emulate. I mean if we were "stuck" with (say) an ARM or even a 68K we'd be able to use virtual machines to dig ourselves out of a similar architectural hole (though with an ARM we'd be unlikely to want to).

    The x86 has so many modes of operation (SMM, real/protected, lots of choices for vectorizing instructions, 16/32/64 bit modes) and special cases that it's a pretty big project to get emulation working correctly (much less fast). You're pretty much stuck with a 10x reduction clock-for-clock on a host. Making an emulated environment secure is hard, too; you don't necessarily need specialized hardware here (e.g., specialized MMU mapping modes), but it helps.

    And now, with transistor speeds bottoming-out, they want to go multicore and make *more* of the things, which is exactly the opposite direction that I want to go in... :-)

    --
    Any sufficiently advanced technology is insufficiently documented.
  8. 60% of transistors used for legacy modes? by trigeek · · Score: 5, Interesting
    "There's no reason whatsoever why the Intel architecture remains so complex," said XenSource Chief Technology Officer Simon Crosby. "There's no reason why they couldn't ditch 60 percent of the transistors on the chip, most of which are for legacy modes."

    Who is this guy and what is he smoking? Over half of a modern processor is cache. The instruction decoding and address decoding are a small fraction of the remainder. Where does he get the 60% from?

    --
    Sometimes I doubt your committment to SparkleMotion!
    1. Re:60% of transistors used for legacy modes? by TodMinuit · · Score: 4, Funny

      He only used 60% of his brain when writing the article. Sadly, he collected 100% of his pay check.

      (Obl: 43% of people know that all statistics are made up.)

      --
      I wonder if I use bold in my signature, people will notice my posts.
  9. Legacy Support Drives It by WED+Fan · · Score: 4, Interesting

    I know we all bitch about old designs, legacy support for outdated features, but, one of the things that keep people from moving from one OS to another is "existing base of installed software" and "knowledge of exisiting software". Like it or not, the major player is Microsoft. No matter how much a geek says, MS UI's suck, people are comfy with them. If alternative OS's had the same software offerings with the same UI, people would be able to move to them. The same holds true for processors.

    No matter how well a processor performs, if there is no application base for it, no one is going to buy a machine with that processor. In this case, perception is reality. You walk into a software store, you see 16 rows of Windows applications, half a row of Linux, and 5 rows of Apple.

    What processor family runs each of these? Guess who has moved to the dominant processor?

    The only way to build a software base is to build in legacy support. Then start weening users away from the legacy features, get programmers to stop using those features (mainly those building the compilers that developers use), and move towards the more advanced features.

    x86 rules for a reason. Microsoft rules for a reason. The customer is comfortable with them, and their perception is reinforced everytime they go to the store.

    --
    Politics is the art of looking for trouble, finding it everywhere, diagnosing it incorrectly and applying the wrong fix.
  10. Weeellll there's also: by anss123 · · Score: 5, Insightful

    4. Price / performance. A segment the x86 have done well in.
    5. Security. Will my x86 progs be supported in 20 years? The answer: yes.
    6. Availability. Hmm... Intel, I'd like to 1 000 000 CPUs. Intel: Sure thing.
    7. Good will. What should we buy, Intel or PPC. PPC? What's that? Go Intel! Yes boss. (Just look how far Itanium got on Intel's name, alone.)

    :D

  11. Re:The X86 is a pig. by fitten · · Score: 5, Insightful

    Already been done, didn't catch on (see Itanium).

    Because there is such a massive amount of installed x86 software base that you'd be throwing away silicon. To be sure that software ran on the most systems possible, software would still be written for x86 and not the 'desired' architecture.

    That being said, OSS tends to have good inroads in that you get all the source so can recompile to whatever architecture you want. However, since x86 is still the huge marketshare, other architectures get less attention. Also, all of the JIT languages (Java, C#, etc.) make transitioning easier IF you can get the frameworks ported to a stable environment on the 'desired' architecture.

    The main problem is that there is *so* much legacy code in binary (EXE) format only (the source code for many of those has been literally lost) that can be directly tracked to money. There are systems that companies continue to use and have so much momentum that changing platforms would require extreme amounts of money to reverse engineer the current system - complete with quirks and oddities, rewrite, and (here is a big part that many people fail to add in) retest and revalidate, that many companies don't want to spend that kind of money to replace something that 'works'.

    There's so much work/time/effort invested in x86 now that it's hard to jump off that train. AMD's x86-64 is a good approach in that you can run all the old stuff and develop on the new at the same time with few performance penalties. However, I don't know if we'll ever be able to shrug off the burden of x86.... at least not for a long time to come. It'd take something truly disruptive to divert from it (and what people are currently invisioning as quantum computing is not that disruption).

  12. Not Windows or Linux per se _but_... by burnttoy · · Score: 4, Informative

    Boot loaders tend to be 16bit segment model code 8086, at least they contain enough code to get into 32bit mode. The BIOS will be 16bit legacy code, at least some anyway as a x86 PC chip still boots in Real Mode (there is a 386 embedded variant that doesn't). Windows 9x series is _RIDDLED_ with 16 bit code esp the display drivers, although many of these switch to 32bit mode ASAP the entry points are 16 bit code. Any attempt at killing off 16bit code would stop any 9X system running.

    For WinNT and variants (2K, XP) I don't know how much 16bit code is in there. I've written drivers for 2K/XP and could not find a single 16bit style instruction however even NT series for x86 uses segments. FS is used for process & thread info. IIRC even AMD64 long mode implements FS & GS to make OS porting easier.

    Lastly. 16bit code (instruction operating on 16bits of a 32bit register) are trivial in 32bit mode - all you have to do is preceed an instruction with 0x66 and/or 0x67 to switch a 32bit instruction to a 16bit instruction.

    The problem transcends MSDOS and goes to the BIOS and boot sequence itself. Intel tried to address the with EFI but that seems to be slow gaining traction - probably because of backwards compatibility.

    --
    Time flies like an arrow. Fruit flies like a banana.
  13. Being mostly compatible doesn't pay by scgops · · Score: 4, Insightful

    Computer manufacturers have tried making non-compatible machines. Commodore 64, VIC 20, Coleco Adam, Atari ST. They all had their place in time and their niche in the market before fading out.

    Something they all had in common, though, is that they sold better than IBM's mostly-compatible PCjr. I attribute that difference to software and compatibility problems. Because of BIOS differences, a number of programs written for the PC couldn't run on the PCjr. That led to a fragmentation of shelf space at software retailers and confusion among retail customers, and led to customers avoiding the platform in favor of easier-to-understand options.

    I would expect something similar to happen if Intel, AMD, or anyone else started making mostly-compatible x86 processors. It wouldn't sell unless all of the software people are used to running still worked. Sure, someone could take Transmeta's approach and emulate little-used functionality in firmware rather than continuing to implement everything in silicon, but it all pretty much needs to keep working, so why bother?

    Seriously, why would anyone undertake the effort and expense needed to slim-down x86 processors when the potential gains are small and the market risk is pretty huge? No chip manufacturer wants to replace the math-challenged Pentium as the most recent mass-market processor to demonstrably not work right.

    Pundits and nerds can talk all they want about why the x86 architecture should be put out to pasture, but it won't happen until a successor is available that can run Windows, OSX, and virtually all current software titles at acceptable speeds. At that seems pretty unlikely to happen on anything other than yet another generation of x86 chips.

  14. I think I know... by TheVelvetFlamebait · · Score: 5, Funny

    Where does he get the 60% from?
    His ass looks suspiciously spacious...
    --
    You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
  15. Re:The X86 is a pig. by afidel · · Score: 4, Interesting

    Actually the encoding is VERY efficient where it matters most, cache density and limiting the number of calls to main memory. Having complex instructions helps in the areas where real world performance is most hurt and that is why we have a CISC frontend to an efficient RISC backend. This balance was reached even in the "RISC" camp, look at the PPC970 with the more complex instructions that get broken down in uops and dispatched to execution units, very similar in many ways to how modern x86 processors work. The translation layer is less than one percent of die space and probably a much lower percent of power usage on modern x86 chips.

    --
    There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  16. Oh, the irony.. by Mister+Whirly · · Score: 4, Funny

    The irony of being a grammar Nazi by pointing out that the statement "People like you make Nazi's look good." is incorrect. It should be "People like you make Nazis look good." - unless there is some unseen object that the Nazis posses, the apostrophe before the "s" is unnecessary and incorrect. Simply adding a "s" to the end is sufficient to make it plural.

    --
    "But this one goes to 11!"
  17. In short:x86 is the result of natural selection... by dpbsmith · · Score: 4, Funny

    ...rather than intelligent design.

  18. Give it more time by MarkByers · · Score: 4, Insightful

    > Now, this is the important part: He's used to XP. He's used to an OS, that while sucky, worked well enough for him, was relatively speedy, so why can't he just have that? Why does he have to have something replaced that worked just to put up with this shit?

    If instead of giving up after a day, he had tried it for a week or a month, he would have found out how great everything is. Then in a few months he would be used to it and if you try to make him downgrade to XP he will cry.

    There are many great features in Vista, but you have to try it for yourself.

    --
    I'll probably be modded down for this...
  19. Re:The X86 is a pig. by Waffle+Iron · · Score: 4, Insightful

    Like it or not, it's 3 ops (push,mov,pop) per subroutine

    Any processor has to do the exact same work, whether the user-visible encoding is done this way or as an "SP indexed" addressing mode. At the micro-op level, it all gets renamed, reordered, etc. so that the same things are happening. Moreover, that particular sequence is so common, in all probability most X86 CPUs have special logic just to optimally execute that entire sequence faster that the naive RISC equivalent.

  20. Re:Does it matter? Less than it did by thethibs · · Score: 4, Interesting

    What's with all this dissing of the X86?

    Like you, I'm an old fart; I wrote assembler code for the PDP-8, PDP/LSI-11 and the 68k. They were ok: easy to learn and use, but I always preferred the X86.

    Sure, it was harder to learn and I never got past having the blue book on my desk when I was coding but, in the end, it produced smaller, faster code. There were a number of apps I wrote for multiple platforms, so I got to compare. Also, (the same reason I love perl) you could do astounding things with side-effects.

    Commercially, X86 has staying power because it was architected to scale. Variable-length instructions with lots of space in the operator range lets Intel adapt the design to any new demands. Most, if not all, of the complaints about X86 (e.g. too few registers) are just version features—yesterday's news if there's a market demand for an improvement.

    Bottom line—it ain't neat, but that doesn't matter; it's programmed once and used millions of times. Programmer convenience is irrelevant.

    --
    I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
  21. I tried.. by Vr6dub · · Score: 5, Funny

    I tried looking into my heart but it asked me to "allow" or "deny". When I hit "allow" I got a BSOD. I'll have to get back to you on that one.

  22. Why x86 is better than one might expect. by Animats · · Score: 5, Insightful

    The x86 instruction set is a surprisingly good way to build a computer. The reasons aren't obvious.

    First, the original x86 was a huge pain, with that stupid segmented memory arrangement. But IA-32 was better and cleaner; at last there was a flat 32-bit address space. (Yes, there's a segmented 48-bit mode, and Linux even supports it, but at least apps see a flat address space.) AMD-64 is even more regular; the segmented memory stuff is completely gone in 64 bit mode. So there is progress.

    RISC architectures could yield simple machines that could execute one simple fixed-width instruction per clock cycle. The early DEC Alphas, the MIPS machines, and early IBM Power chips are examples of straightforward RISC machines. This looked like a big win. The ALU was simple, design teams were small (one midrange MIPS CPU was designed by about six people), and debugging wasn't hard. RISC looked like the future around 1990.

    What really changed everything was advanced superscalar architecture. The Pentium Pro, which could execute significantly more than one instruction per clock, changed everything. The complexity was appallingly high, far beyond that of supercomputers. The design teams required were huge; Intel peaked somewhere around 3000 people on that project. But it worked. All the clever stuff, like the "retirement unit" actually worked. Even the horrible cases, like code that stored into instructions just ahead of execution, worked. It was possible to beat the RISC machines without changing the software.

    The Pentium Pro was a bit ahead of the available fab technology. It required a multi-chip module, and was expensive to make. But soon fab caught up with architecture, and the result was the Pentium II and III, which delivered this technology to the masses. Then AMD figured out how to do superscalar x86, too, using different approaches than Intel had taken.

    The RISC CPUs went superscalar too. But they lost simplicity when they did. One of the big RISC ideas was to have many, many programmer-visible registers and do as much as possible register-to-register. But superscalar technology used register renaming, where the CPU has more internal registers than the programmer sees. The effect is that references to locations near the top of the stack are as efficient as register references. Once the CPU has that capability, all those programmer-visible registers don't help performance.

    Making all the instructions the same size, as in most RISC machines, leads to code bloat. Look at RISC code in hex, and you'll see that the middle third of most instructions is zero. Not only does this eat up RAM, it eats up memory and cache bandwidth, which is today's scarce resource. Fixed size instructions simplify instruction decode, but that doesn't really affect performance all that much. So x86, which is a rather compact code representation, actually turns out to be useful.