x86 Evolution Still Driving the Revolution
An anonymous reader writes "The x86 instruction set may be ancient, in technology terms, but that doesn't mean it's not exciting or innovative. In fact the future of x86 is looking brighter than it has in years. Geek.com has an article pointing out how at 30 years old x86 is still a moving force in technological advancement and, despite calls for change and numerous alternatives, it will still be the technology that gets us where we want to go. Quoting: 'As far as the world of the x86 goes, the future is very bright. There are so many new markets that 45nm products enable. Intel has really nailed the future with this goal. And in the future when they produce 32nm, and underclock their existing processors to allow the extremely low power requirements of cell phones and other items, then the x86 will be the power-house for our home computers, our notebooks, our cell phones, our MIDs and other unrealized devices today.'"
The article appears to be written from the perspective of someone who knows fuck all about the embedded market. The majority of embedded products that have something more sophisticated than an 8bit processor are using Motorola M68K, ARM or MIPS derivatives. That's likely to stay that way, as x86 processors tend to be large, comparatively power hungry and focused on high clock speeds - especially the ones from Intel and AMD. In fact, the only vaguely embedded device I've come across with an x86 chip was using a 486 clone (from Cyrix I think).
I respectfully disagree. An x86 processor is any processor that can execute x86 instructions. The underlying architecture (RISC vs CISC, etc.) is irrelevant.
They are x86 processors. Maybe you don't know that there's more to an ISA than simply how instructions are encoded?
x86 comes from a time when transistors weren't essentially free, so while its design might have made sense in the microcoded-machine era, x86 processors now have a lot of cruft they have to deal with.
Its performance is limited by some of this cruft. For example, x86 has a hardcoded page table structure, and its TLB has no application-specific identifiers. Context switches become much more expensive on x86 compared to some other architectures because on x86, one must flush every entry in the TLB before proceeding.
I agree with your point about competition being good, but technically, Intel tried to keep x86 closed and proprietary. Competition from AMD and others grew despite the spec not being open.
I prefer rogues to imbeciles because they sometimes take a rest.
I don't think it's been an abuse of position (in the vertical monopolistic sense), but rather the development of a technology that created a parallel effect on the market winner/common supplier. I believe there are more benefits from using general purpose CPUs. If MS had taken the pure RISC route we'd have co-processors for everything now.
The future will lie in complex instruction sets that are incrementally updated with very long word "feature pipelines". Transmeta had a point with VLW CPUs, but suffered because they tried to use the tech to emulate general purpose functionality, rather than have legacy fetch-decode-execute silicon to do the mundane stuff, and offload to VLW for bespoke applications.
Your comments on PAE are spot on btw: it is an ugly hack, but so are most methods of indirect access. I can't see translation going any time soon. We do it everywhere - protected state, dynamic linking, mmio... everywhere. Unless CPU manufacturers start providing wider internal archs that aren't linked to the width of the address bus, we're not going to see that (multiplexing is expensive!!)
Matt
Ars Technica has a good article on this debate
RISC vs. CISC - the Post-RISC Era, and Bibliography
In defence of RISC
The majority of software written for any chip is compiled by a relatively small number of compilers, and those compilers tend to use pretty much the same subset of instructions. The UNIX portable C compiler for example used less than 30% of the Motorola 68000 instruction set.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
Pipelines are an implementation technique, not part of an architecture. Some architectures make it easier to take advantage of pipelining than others, but that doesn't mean they're pipelined architectures. Hell, the intel x86-family processors have had longer pipelines than just about anything else for at least a decade. P4 family chips had up to 33 pipeline stages, neatly beating the profligate G5's max-23-stage pipeline.
The Core 2 still has 14 stages in its pipeline.
As for the ARM, the XScale has 5 stages, other arm implementations have had up to 8.