Slashdot Mirror


Is The x86 Obsolete?

levendis writes: "Ars Technica has an excellent article up on the future of the x86 architecture. It touches on new idea from Transmeta, Intel, HP's Dynamo, and a bunch of other technology that keeps the 20+ year old architecture alive and kicking." As always, the Ars take on this (specifically, Hannibal's) is lucid and thoughtful, and grounded in some interesting history.

5 of 336 comments (clear)

  1. Re:A little premature to call it obsolete by Hard_Code · · Score: 5

    Did anybody actually /read/ the article? Hannibal argues that asking whether it is obsolete is not even a meaningful question. x86 was obsolete as soon as there was something more convenient to use. But that's not going to be really relevant anymore because of the advent of third generation chips which will support whatever ISA you want. If you don't like x86, use something else. People have been making fast, successful, "obsolete" x86 chips since x86 was around. Just look at AMD's and Intel's latest processors for evidence of that. The question is whether x86 will be relevant or not.

    --

    It's 10 PM. Do you know if you're un-American?
  2. Back in school... by reimero · · Score: 5

    Way back in 1989 or 1990 I was taking a class in Assembler and the teacher was remarking that the x86 was making itself obsolete. IIRC, he said that the memory addressing was horrendous and the whole reason they stuck with it was for backwards-compatibility.

    There comes a time when backwards-compatibility needs to be sacrificed for genuine improvement or development. Apple no longer supports the 68k series of processors, barely supports any PPC lower than a 604, and is moving strongly toward G3 (or G4) only. Mac users howled, but it was expensive and counterproductive to try to keep too much backwards compatibility. Use older OSes and older apps for older computers and let newer computers become truly cutting-edge. IMHO there's no need for gigahertz PIIIs or Athlons to be able to run WordStar.

    Just my $0.02.
    --

    ----------

    Something clever
  3. Re:Hyperbole. by Dwindlehop · · Score: 5

    Did you, in fact, read the article? Hannibal said as much in his article. Obsolescence is the wrong question here; timothy should be ashamed of himself for titling this Is The x86 Obsolete?.

    Here's the short version for people too lazy to read the article or too dumb to understand what Hannibal is talking about:

    Due to incredible amount of programs written for the x86 architecture, machines that execute x86 instructions will be around for some time yet. Everyone agrees (even Intel) that x86 is not a good ISA (instruction set architecture), but the ability to run all the programs written for it make it too costly to scrap. In order to achieve better and better performance, the current generation of microprocessors (Athlons and PIIIs) emulate x86 in hardware. The actual execution on these machines takes place using a completely different, RISC-style set of instructions (x86 being CISC for those who don't know).

    This information addresses only half of Hannibal's article. The other and more interesting half describes the latest ideas computer architects have for circumventing the problems of the x86 ISA. The primary advancement is translation of x86 instructions into another architecture; this translation occurs only once, as opposed to emulation, and can be very aggressively optimized for the particular hardware it is running on because it is performed at runtime. Because the performance hit is only incurred once and because of the further, machine-specific optimizations, machines which execute x86 instructions will continue to increase in performance.

    Furthermore, executing x86 instructions by translation means that computer architects have the freedom to change the native architecture of their machines without worrying about executing legacy code. These issues were addressed by emulation; translation is a further step in this direction.

    As I said before, the obsolescence of the x86 ISA is a ridiculous and unanswerable question. However, I believe that the x86 ISA will continue to be a relevant problem until we leave 32 bit machines behind for 64 bit and larger.


    Jonathan David Pearce

    --
    Jonathan Pearce jonathan@pearce.name
    3EAAFB2A http://www.jonathan.pearce.name/
  4. legacy code issue overrated by theonetruekeebler · · Score: 5
    I don't think that issues of legacy code compatibility matter less and less these days, at least in regards to processor instruction sets. Why? HLL compilers and operating systems.

    The x86 ISA has been closely married to the fate of a single operating system for quite some time now. After the shift from CLI to GUI, most of the compatibility issues in software have been WRT how to talk to the OS, not anything underlying. Nobody talks to the hard drive or keyboard directly--you talk to the driver. Likewise, the only programs that generally need to understand the underlying architecture are compilers.

    There is so much standardization at levels above the processor instruction set that particular CPU architectures matter only while writing compilers and operating systems. Open source software distribution is making architectural irrelevancy even more thorough.

    I will freely admit that there are applications which need good familiarity with the underlying hardware; most of these, however are drivers. The rest are heavily optimized scientific computing tools that need to bum every single instruction out of a loop because the loop is going to run sixty-nine trillion times.

    As for the rest of the world, though, nearly transparant portability of operating systems and applications suites across architectures is a reality that lags only a few hours or days after the compiler is written. I'll offer two examples: Unix and Java.

    When does compatibility with prehistoric applications become a reality? In places other than the x86 architecture. I do DBA work for an RBOC, and yes, we have ancient COBOL and FORTRAN applications that first ran in the 1960s. For those groups, Y2K was a genuine nightmare. But all those apps run on MVS and other mainframe environments--not exactly the x86's stomping grounds. As for other, pre-x86 micro architectures, well, I can run all my old Atari 400 apps under an emulator on my Pentium 200, because I have cycles to spare even to a badly written emulator.

    So, no, the x86 isn't obsolete. The newer generations have some obsolete components, though.

    --

    --
    This is not my sandwich.
  5. Re:x86 is popular to hate, but not that bad really by The+Man · · Score: 5
    Interesting. I've programmed a similar set of CPUs and have come to exactly the opposite conclusion. I fail to see the difference between a "hardware stack" which apparently means there are extra instructions just for pushing and popping, and a software stack which presumably means normal load/store/add/subtract instructions are used with one register considered the stack pointer (and maybe another for frame pointer). The instructions do the same things. They take, in general, about the same time to execute. So what it really comes down to is more instructions to do the same things, which means more die size, which means more heat, more power, and more manufacturing cost. Some deal that is. The only reason it can take so long to save registers on a real CPU is that there are so many. Sure, it's fast to push your six general purpose registers. But that's not enough to make up for your memory-accessing instructions and the register-shuffling you have to do to keep useful values in your pitiful register file. If a register has to be saved, it has to be saved. That's true of any architecture. Sparc tries to avoid this and actually does a very good job of lowering call overhead, but the bottom line is that there will always be times when things have to be pushed onto the stack.

    Also realize that all of these instructions are fixed at 32-bits on most chips. That's 32-bits to copy a register, 32-bits for a return, etc. This may simplify the hardware, but at the expense of bloat. So you need a bigger instruction cache.

    This really depends on your instruction mix. There are longer instructions on x86 too. And let's remember that simpler hardware means less die size, less heat, less power, and less cost. And remember that the SHx has 16-bit instructions, not 32. So on that architecture your code size will always be less than equivalent x86 code.

    The bottom line is that x86 has about three orders of magnitude too many instructions and a similar factor too few registers. It exists without the grace of design or forethought. It's too big, too bloated, too hot, and more expensive than it needs to be. Programming it is a nightmare. The only positive thing I'll say for it is that the performance isn't terrible given its complete lack of design. This says good things about Intel's engineers. Of course, if they can do as well with x86, imagine how much better they could do with a decent architecture. In other words, if Intel manufactured MIPS and SPARC chips, they could crush the existing implementations in performance.

    The x86 was obsolete 12 years ago. The sacrifice of sanity on the altar of backward compatibility is disgraceful and foolish. I don't use x86 any more, thank God. I just wish nobody else did either. We'd all be better off if x86 died the death immediately or sooner.