Slashdot reports on an interesting article discussing how one might go about ‘killing’ x86. The article details a number of different technological solutions, from a clean 64-bit replacement (Alpha?), to a radically different VLIW approach (Itanium), and an evolutionary solution (Opteron). Another article by the same author covers hardware multi-threading and exploiting thread level parallelism, like Intel’s Hyperthreading or IBM’s POWER4 with its dual-cores on a die. These types of implementations can really pay off if the software supports it. In the case of servers, most applications tend to be multi-user, and so are parallel in nature.
Here’s another approach to the same problem, with (in my biased opinion) more “future proofing” built in:
http://llvm.cs.uiuc.edu/pubs/2003-10-01-LLVA.html
-Chris
a LLVA would be even slower.
That Intel will embrace the x86-64 instruction set and be compatible with AMD. Intel will sit on that platform for a while it conducts research on a 64 bit instruction set that will drop x86 compatibility. A move that will not be made for quite some time.
There is really no way to “kill” x86. It spent 20 years getting itself entrenched, and it’ll be a long term process getting rid of hit. However, to start the process, this is what you have to do:
1) Release a fast, commodity, cheap CPU. One thing anti-x86 people fail to realize that in an average single/dual processor setup, x86 chips are extremely fast. Certainly, they’ll blow away something like a MIPS or a SPARC. Something that really is faster (a revived Alpha, a Power4) would be prohibitively expensive. The G5 is about as close as they’ve gotten (its pretty much as fast as any x86 chip) but its neither commodity nor cheap. When someone comes out with a CPU that can match the performance of a 3.2GHz Pentium 4 for a similar price ($270) and with similarly cheap supporting components (motherboard, RAM, etc), then they’ll have something to sell.
2) Establish a niche. You could release a chip like I outlined above tomorrow and if it didn’t run Windows, you’d be screwed. There are people who don’t need to run x86 code, so you have to target them. Try to get Linux users (whose software by and large will port trivially) to jump on your platform. Try to steal the low-end workstation market from single/dual CPU SPARCs. Get into the scientific computing market (who were often perfectly happy using Alphas in the day). Hit the commodity server market — the kind of people who are happy running Linux and FreeBSD, and don’t have super-specialized programs to port. Try to steal some of Apple’s marketshare while you’re at it.
3) Bide your time. Over time, more things will get ported to architecture-independent platforms — Java/.NET/Python/Perl/etc. As the apps for a particular market become available in such a form, target that market with your platform. It’d be a big help if your CPU had features that made it good for such code. Reduce the cost of branching — anything that uses generic dispatch extensively (like all the languages I mentioned!) don’t like that. Make the CPU a wide design (lots of functional units) and allow compiler writers to explicitly use some of that parallelism to handle language tasks like range-checking, generic dispatch, etc. These things are often nicely parallelizable, and you can get better use of execution resources.
4) ???
5) Profit!!!
You’ll run into a problem with Operating Systems. In order to have a processor be adopted quickly, you need a good UNIX-esque system to run on it so that software will be easily portable. This will help get you out the door. However, Microsoft will be reluctant to port Windows to a UNIX-esque dominate platform. This hurts you in the long run.
“The G5 is about as close as they’ve gotten (its pretty much as fast as any x86 chip) but its neither commodity nor cheap.”
Wrong in every aspect. The G5 is at least as fast, and has proven itself time and time again to be faster than x86… Sometimes only marginally so in some respects but very significantly in others.
As far as being comodity… comodity statis only happens when everybody uses it… If anything, G5 is much closer to “comodity” status than any other non-x86 chip out there. Last report I’ve seen indicated that PPC970 is selling in similar scales to that of AMD64.
As far as it being cheap… PPC is much MUCH less expensive to produce than x86. Right now, x86 and PPC cost the same only because x86 is able to offset its price due to economics of scale. If PPC were used to the same degree that x86 is… the price would be a fraction of its already-inexpensive self.
“When someone comes out with a CPU that can match the performance of a 3.2GHz Pentium 4 for a similar price ($270) and with similarly cheap supporting components (motherboard, RAM, etc), then they’ll have something to sell.”
Sounds like you’re describing PPC.
“Establish a niche. You could release a chip like I outlined above tomorrow and if it didn’t run Windows, you’d be screwed.”
Apple did it, an their anything but screwed. LinuxPPC did it, and they’re anything but screwed. Linux Mandrake did it, and they’re anything but screwed.
“You’ll run into a problem with Operating Systems. In order to have a processor be adopted quickly, you need a good UNIX-esque system to run on it so that software will be easily portable.”
Boom… OS X on PPC
Next….
“However, Microsoft will be reluctant to port Windows to a UNIX-esque dominate platform. This hurts you in the long run.”
Who needs Microsoft. If we’re going to migrate to a superior hardware spec, why hold ourselves back with an inferior OS? If we’re going to make the transition… lets go all the way.
euhm I think powerpcs are so expensive because ibm makes less cpu’s then amd and intel. R&D costs have to be earnt back with sold cpu’s. This gives a big difference in cost/cpu.
PowerPC produces less heat and uses less watt so is better.
I think that thanks to linux we will see people easier change from x86 to another arch because linux runs on almost anything if you want. Not like MS who’s keeps the people on x86.
>>When someone comes out with a CPU that can match the performance of a 3.2GHz Pentium 4 for a similar price ($270) and with similarly cheap supporting components (motherboard, RAM, etc), then they’ll have something to sell.<<
No, that wouldnt be enough. For 99% of all people there is no single reason against chosing the x86 architecture. It’s cheap, compatible with everything and everybody has it. You couldn’t even get rid of it with CPUs that sell for 50% of the x86 price, as low-end x86s are already so cheap that the CPU price does not make much of a difference. Hey, you could probably sell non-x86 CPUs for $1 and people would still buy x86.
The only two events that would kill x86 would be
a) another architecture is *dramatically* faster than the best x86 chips. Dramatically faster means at least 2x faster, maybe even more. So fast that there are new kinds of applications that are not possible on x86 CPUs, or games that outleap x86-based games. Reasons strong enough that ordinary people start to care.
b) if x86 vendors slowly start chipping x86 CPUs with a second instruction set, as described in the article.
Otherwise x86 will be there till the end of time (and frankly, since I stopped working with x86 assembler 10 years ago I dont care).
Who needs Microsoft. If we’re going to migrate to a superior hardware spec, why hold ourselves back with an inferior OS? If we’re going to make the transition… lets go all the way.
If it doesn’t run Windows then you lock yourself out of about 95% of the desktop users. Your processor will not becoming widely adopted and we will still end up having x86.
“euhm I think powerpcs are so expensive because ibm makes less cpu’s then amd and intel.”
You have that wrong…
It should say, I think powerpcs are only priced the same as x86 rather than significantly less is because ibm makes less cpu’s then amd and intel.
“R&D costs have to be earnt back with sold cpu’s. This gives a big difference in cost/cpu.”[/i]
The R&D costs for PPC have already been paid for many times over. The only reason why x86 can match the price efficiency of PPC is because of economies of scale.
“If it doesn’t run Windows then you lock yourself out of about 95% of the desktop users.”
If we don’t use x86 you lock yourself out of about 95% of the desktop users. The premmise of this thread is doing away with x86. As long as we’re doing away with x86 (and its compatibility) we might as well ditch the inferior OS.
who needs windows? *scoff*
Disclaimer: neither a windows nore a XP but i am typing this in IE6 on XP using a PIIIm
i’d be willing that a lot of buzz comes from the the hobbyist community. I’m sure the reason for the FX-51/53 as an unclocked chip is to allow hobbyist to play with it and legitimize the architecture in general. Afterall when was the last time you saw someone trying to OC’d a USparc III or an Itanium 2? hobbyist buy new chips all the time and talk a lot about them thus its free publicity and release *TONS* of meaningless but popular and crucial benchmarks. Remember if you think a quality counts just ask Beta, what sells a product is 90% hype. These people most of the time aren’t computer-scientists but trailer park joe who wants to pplay quake 3 at 500 fps. Remember if we want other platforms we need other ppl to buy them too to fund there development so we need to give them a reason to switch. Therefore the most important thing to port to a new platform are iTunes, WindowsMediaPlayer, Flash Player, Comet Cursor and MSN Messenger. Remember Joe Average doesn’t mind reboot 14 times a day but dammit their cursor should flash different colours!!!
x86 chips are FAST!!! MUCH Faster than all the other CPUs! Intel makes the fastest processors on the planet!!! (Scar-casim)
eh, Intel are the ones who killed off the Alpha- The best 64-bit chip known to man. Dead. Thanks to Intel + HP. If Intel were smart It’d make alpha chips instead of this itanium crap that they want to shove down your throat.
Yeah, right, didn’t you learn that Ghz dosent always matter.. did you know x86-32 software cant run on a 64-bit? eh? well. anyway. I run the opteron and I run it in 32 bit mode. Can’t wait until 64-bit FreeBSD, Solaris and Linux come out in 64-bit and 32-bit mode for it. Yup.
Pardon me If I was rude.. I love OSNew btw
I was replying to a message that was presenting a formula to displace x86 completely with, and it included getting a Windows port. Don’t get me wrong, I love OS X. I’m using it right now. But if displacing x86 is your goal, that’s not quite the right way. That said, I’m not sure I want PPC to displace x86…
@Owen Anderson: First, I doubt its quite 99%. But even if its 95%, that’s 5% of the market that you can sell too. In absolute volume, that’s quite a bit.
@Anonymous
and has proven itself time and time again to be faster than x86… Sometimes only marginally so in some respects but very significantly in others.
—
The G5 is sometimes faster, sometimes slower, but usually about even. If its dramatically faster, you’re doing something like using AltiVec and not SSE.
Last report I’ve seen indicated that PPC970 is selling in similar scales to that of AMD64.
—
AMD64 isn’t exactly high-volume to begin with. But being commodity isn’t just about volume. Its also about availability. The only way to get a G5 is to buy a complete machine from Apple. Commodity means that I can run to pricewatch.com and get one from the hundreds of different vendors offering their products there.
As far as it being cheap… PPC is much MUCH less expensive to produce than x86.
—
Proof? The G5 and the Pentium 4 have a similar number of transistors (~55M) and a similar die size. (~130mm^2). IBM’s manufacturing process is good, but so is Intel’s. Why would the G5 be cheaper?
Sounds like you’re describing PPC.
—
Oh, can you point me to where you can buy a 2GHz G5 for $270? And get a motherboard for $100? Thanks!
Apple did it, an their anything but screwed. LinuxPPC did it, and they’re anything but screwed. Linux Mandrake did it, and they’re anything but screwed.
—
Isn’t that what I said? Apple, etc were able to survive without a Windows-compatible CPU because they established a niche that’d buy their products. That’s exactly what I was telling a hypothetic CPU company to do! My point was that if you want to kill x86, you can’t start by targetting the x86 market directly.
> Thanks to Intel + HP. If Intel were smart It’d make alpha chips instead of this itanium crap that they want to shove down your throat.
Isn’t the next Itanic going to be an Alpha in disguise? ISTR reading that the Alpha engineers were gobbled up by Intel-HP..
I suppose there’s no *technical* reason for x86 being dominant in some markets. Peripherals are standards – PCI, USB. Then there’s OpenBoot and EFI. What else?
What CPUs do cellphones use? ARM / Xscale? Or some exotic DSP?
Of course, there’s x86 specific applications, but when Linux takes over that problem is solved too
Perhaps a hammer will do?
Ok… Seriously… Computer people LIKE backwards compatability. The reuse of “old” software is one particular reason I avoid buying a new Mac. However, I would love to have a new dual G5, I shy away from one because I don’t want to repurchase my software (ie Office). Btw: I currently own two PC’s. One running WinXP, the other Suse 9.0.
“AMD64 isn’t exactly high-volume to begin with. But being commodity isn’t just about volume. Its also about availability. The only way to get a G5 is to buy a complete machine from Apple. Commodity means that I can run to pricewatch.com and get one from the hundreds of different vendors offering their products there.”
Not completely true, IBM sells 970 servers. 🙂 I do hope that trend continues, so you could buy a PPC Linux machine outside of IBM. Oh I know you could always buy a POWER machine from IBM and, if its supported, run Linux on it but the 970 brings PowerPC price/performance to new levels.
“I’m not sure I want PPC to displace x86…”
Why would you say that?
Because I like my Macs as they are. IBM and Apple seem to be doing well enough without taking over the world, and I don’t see a pressing need for them to.
The problem with this discussion is that we are looking at it from the views of hobbyists and home users. “Joe Average”, as everyone likes to call him, doesn’t matter. What matters is “Joe Chief Technical Officer and his staff.” Sun didn’t stay in business for years by developing for us, they did it by selling 64-bit SPARCS to companies with IT departments who felt they needed them. This is both large and small businesses, but it’s not the hobbyist. The people with the buying power is who the computing world (and every world, really) revolves around. Shoot for business customers (not iTunes, MSN and Quake) and you will have your market.
is not the CPU, in any architecture…ever.
Bus speed
Memory speed
Disk speed
…all of these impact performance far more than modern CPU architecture.
MOreover, 99.9999% of all bottlenecks are going to the network, and unless you have a Gbit connection to the internet, this is what is going to slow you down.
All this talk about ‘killing off the x86’ is really academic. It does not and will not offer Joe Six-Pack a faster computer.
I am all for faster CPU’s, but on balance, the other tech advances (ie. bandwidth) will actually allow us to use what we currently have faster in the near/mid term.
Well said, Barry.
Bus speed
Memory speed
—
Not as much of a problem with modern CPUs. A P4, Opteron, or G5 can have as much as 6-7GB/sec of bandwidth on tap.
Disk speed
—
Much less of a problem when you have a lot of RAM. I barely notice the fact that I’m on a slow laptop drive, because I have enough RAM.
all of these impact performance far more than modern CPU architecture.
—
People always make these comments on CPU articles, and its just not true. For lots of tasks, the CPU is the bottleneck, rather than the disk or memory. 3D rendering, for example, is much more CPU/memory-bandwidth limited than disk bandwidth limited. In the end, it depends on what you’re doing with the machine!
Moreover, 99.9999% of all bottlenecks are going to the network, and unless you have a Gbit connection to the internet, this is what is going to slow you down.o
—
Because of course, all apps are accessing data on the internet… Plus, I’ve got a 100mbps connection to the internet, and I can definitely say that the internet is not my bottleneck!
however, what so-called “busines people” fail to realise is this. If you develop a new platform, you need the money and you also need to accept that you may need to spend it to create the ecosystem.
In the x86 world, there is a whole ecosystem that builds off it, the IHV’s, the software vendors, the OEM networks – both large and small.
The Itanium failed because Intel did jack-squat to establish this ecosystem. As an OEM vendor, unless you were part of the large 5, you had no chance of getting a hold of an Itanium CPU; thats half your market evaporated just gone.
Lack of software, both server and workstation. If one is to get volume and reduce the per-unit price, the CPU must be spread from the top right down to the bottom and with this, there must be software, both for the server and desktop/workstation space. Again, Intel did nothing to get software vendors onboard. They sat back, did a SUN and assumed that people would simply port because of the “Intel factor” when in reality, writting software would be even LESS profitable than if one developed for the Linux desktop market!
Third party hardware vendors; where is the network of vendors? as an OEM, why should I by tied into one motherboard vendor? why should I be forced to source all my parts off one vendor? as an OEM, I certainly wouldn’t like the the prospect of a company having that much influence over my business.
So lets break it down; you need:
1) Software
2) Hardware
3) Operating System
4) Reselling/Distribution Network
5) Competitively priced/Performance ratio
Sorry, Itanium has failed in all 5 crucial tests. The sadest part is, its lack of success has nothing to do with the ISA and everything to do with Intel and its poor management.
Okay, my thinkpad T40 has a 1.3 Ghz centrino p4 and, it’s fast enough. It will be fast enough for a good 2 years (I dont game, run linux, and code Java). Many people wont upgrade because their computers are fast enough. Killing x86 will take at least ten years. Most people aren’t gamers and aside from visiting yahoo’s card games site, and MS office, they don’t use 1/10th of their processor. Plus, how many people really hate the x86 instruction set?
Rayiner:
I’m not arguing against better CPU architecture. I’m saying that statements like, “let’s kill off the x86 and it will cure all of our problems” is naive at best.
Regarding your statement:
—
“Not as much of a problem with modern CPUs. A P4, Opteron, or G5 can have as much as 6-7GB/sec of bandwidth on tap.”
—
That’s my point exactly! Most modern CPU’s are starving because the bus/memory/disk can’t supply data fast enough. Pray tell, what on your system – even with 100Mb internet – can deliver at those speeds?
I obviously know you don’t mean that. But, my point is; Upgrading your motherboard (to take advantage of that 6-7GB/sec potential) will yield better performance gains than designing a new CPU.
Moreover, you state:
—
“3D rendering, for example, is much more CPU/memory-bandwidth limited than disk bandwidth limited.”
—
Very true. Thats why people off-load this to the video card. Again, no reason to ditch x86 when you can purchase such a card for ~$100 USD.
Obviously, I know *anyone* can come up with examples of CPU-intensive (ie. factoring Primes) task. However, in most cases a cure like a new achitecture is worse than the pain.
Again, I’m not arguing against development of new CPU arch, I’m saying that there are easier and cheaper gains to be made elsewhere.
Plus, how many people really hate the x86 instruction set?
What most people hate is the crappy PC architecture, aka, the BIOS which f*cks over EVERY operating system, no matter how good it is written. Microsoft could spend 24/7/365 developing a perfect PnP technique and I’ll put money on it, It’ll be all a waste of time thanks to old of friend BIOS.
The really sad part? no vendor out there has done a bloody thing to improve the situation. EFI has sat there for over 18 months and not ONE vendor has come to the party and said, “hey, how about creating a EFI firmware for x86?” or better yet, “hey, we’ve got OpenBoot based on the IEEE 1274 standard, why don’t we adopt that as a new firmware”.
Once you adopt OpenBoot, you rid the idea of needing to have ACPI 1.0/2.0 and numerous other crap that half work and cause more problems that they solve.
How many people out there have problems, not due to the operating system but due to the crappy/buggy BIOS and its crappy ACPI implementation.
You know the *really* sad part? AMD had the chance when they started their hammer project. This is where they could have said, “lets fix the PC platform once and for all. Lets adopt the OpenBoot firmware”. Microsoft would have jumped on board as it would have made their life alot easier in the hardware support department and AMD would be taking a lead role in the PC world rather than tagging along with the status quo.
There are lots of tasks that are mostly CPU limited. For example, rendering scenes in a 3D modeler cannot be offloaded to a graphics card, because the latter usually does not have enough precision. Most of my Matlab programs are CPU bound — the dataset fits in memory, and they have good cache behavior. My simulations at work are CPU-bound. UI speed is CPU bound — KDE on a 2GHz system is a lot smoother than KDE on a 300MHz system. Even compiling can be CPU limited — g++ compiles C++ source code of the same size (on disk) much slower than gcc compiles C code. Compiling Dylan or Lisp is even more CPU limited — you’ve got an intermediate representation that fits in memory, and you iterate over it *many* times doing some very compute-intensive optimizations. Thus, pretty much everything I do is CPU bound. So as I said, it really depends on what your workload whether CPU speed is the bottleneck.
I completly agree with your statement.
I was wrong to say “The real bottleneck is not the CPU, in any architecture…ever” – That was an over-simplification
When a new CPU arch comes out, and when linux is ported to it and all associated applications…Matlab will run faster.
In the intervening 5 years, upgrading to 2.6, buying a 3.0Ghz chip, faster memory, et al. will get you there faster and with less pain.
And I agree with that statement The CPU architecture is much less of a bottleneck than the other things you mention, even in CPU-bound programs.
“The only way to get a G5 is to buy a complete machine from Apple.”
No, IBM sells them too. You can’t get an Apple sanction motherboard with it and run OS X, but the chip is available from IBM regardless.
“The G5 and the Pentium 4 have a similar number of transistors (~55M) and a similar die size. (~130mm^2). IBM’s manufacturing process is good, but so is Intel’s. Why would the G5 be cheaper?”
A PowerPC chip is significantly smaller, allowing for more chips to be fad from one wafer.
“Oh, can you point me to where you can buy a 2GHz G5 for $270?”
IBM will sell them for that cheap… though not individually, to one person at a time.
A PowerPC chip is significantly smaller, allowing for more chips to be fad from one wafer.
—
The current G5 has a die size of 122mm^2, while the current Pentium 4 has a die size of 131mm^2. That’s pretty much the same size. Yet, machines with the G5 are a lot more than machines with the P4!
The new 90nm G5 has a die size ~65mm^2. Now, in theory a Northwood P4 die-shrunk to 90nm should have a similar size, but Intel won’t be doing a 90nm Northwood. Instead, the first 90nm CPU will be Prescott, and that’ll have a ~100mm^2 die size, mostly because of the huge 1MB cache. If IBM updates the G5 to keep up with Intel (and AMD’s for that matter) cache sizes, then its die size will grow past 100mm^2 as well. The point is that PowerPC chips are not inherently smaller and cheaper to produce, especially considering that the G5 has to have some special decode logic just like the P4 and Opteron — to translate certain PPC instructions it doesn’t handle natively.
IBM will sell them for that cheap… though not individually, to one person at a time.
—
My point is that I can buy a P4 for that price and I can’t buy a G5 for that price. Its as simple as that.
Yet, machines with the G5 are a lot more than machines with the P4!
The size of the die or the yield of the cpu has a smaller role on the pricing of a cpu than volume does. The markup on a low volume cpu is higher than a high volume cpu. Intel has much higher volumes on the P4 than IBM does on the PPC970.
Take a look at the itanic, intel’s low volume cpu and it’s cost for example.
When intel chips come out they are always more expesive and as volumes ramp up they drop in price.
My point is that I can buy a P4 for that price and I can’t buy a G5 for that price. Its as simple as that.
Agree, there’s not many third-party of motherboard for PowerPC. So, to buy PowerPC + motherboard aren’t cheap as x86/AMD64.
You remember the history :
– 8080 : 8bits CPU -> Surpassed later by the Zilog Z80
– 8086 : 16 bits extensions 1978 (?) -> If only the 68000 was available a bit sooner !
– 8088 : 8bits ext. bus, original PC CPU -> Probably a real 16bits bus was too powerful ?
– 80286 : page protected modes -> The famously unuseable protected mode, with no way back to ‘real’ mode. Greatly helped the great DOS mess and 64kbytes years of frustration.
– 80386 : 32bits extensions -> Opcodes mess raised. Still too few registers. At that time people were convinced that RISC CPUs ( ARM for example ) would win !
– 80486 : FPU union -> Well, still the x87 stack floating point mess
– Pentium : Superscalar -> Too few register for effective superscalar without layers of registers renaming.
– MMX, SSE additions -> Several attempts to get rid of the x87 sequels.
– x-64 : 64 bits extension -> One more layer of opcodes and a new programming model.
A x86 CPU is like a very old tree with each year an new layer in the trunk. ( Does anyone has a big enough chain saw to chop it down ? )
( … As an example, PowerPC were through from the beginning as a 32bits / 64bits family. 64bits registers are not ‘alien’ extensions. )
I’m convinced that the awful complexity of instruction decoding in the x86 ( and the variable instruction length, from 1 to 9 bytes ) as well as all the other oddities must have a price in silicon real-estate and power dissipation.
A more sensible architecture would have been cheaper and/or more powerful ( for similar production levels ).
works for the dreamcast
The extra decoding layers maybe add 2-3% to the chip’s number of transistors. Quite irrelevant, and the code density you gain (tens of percents better than PPC) makes more stuff fit in the instruction cache.
You’re right, it’s probably now less revelant that some years ago. Nevertheless :
– All transistors doesn’t cost the same price. These one are in the core of the CPU and all instructions must pass through that bottleneck. It makes also branch prediction and many others aspects more complex.
– On recent CPUs ( P4 ), the first level I-cache stores microcode, so, actually, the internal code cached is not directly x86 code.
– The higher code density of x86 is good thing, but there is quite a difference between an efficient code and x86 assembly ( ARM’s have 16bits condensed code called ‘thumb’ )
Maybe, in the long term, some kind of hardware decompression of code and data will occur in the CPU to save bandwidth and optimize caching…
There are two problems with killing x86. First is the software. I worked on porting Windows NT to MIPS, PowerPC and Alpha, and it was almost impossible to convince anyone including MS to port apps to any of those platforms. We ended up doing a lot of the porting ourselves.
Second, clever engineering has minimized the problems with x86 hardware. Register renaming and high-speed cache has reduced the penalty for not having enough registers. Athlon (XP/64) and Pentium 4 have addressed the worst problems with instruction decoding: Athlon by marking where the instructions are (actually decoding them is the easy part) and Pentium 4 by just saving the decoded instructions. Process technology and R&D economies of scale have given us extreme performance at very reasonable prices. Cache is a increasing fraction of the CPU die, and that’s mostly independent of the processor architecture. Also, AMD64 (x86-64) has eliminated the worst problem with x86: lack of registers. Although 16 registers isn’t overly generous, it is amazing how infrequently more are needed.
Finally, RISC architectures have problems too. In general they tend to need more instruction cache because the code density is lower. Some (like ARM) have shorter alternative instruction encodings. Alpha started out without byte or shortword loads and stores and should have had a subtract-from-immediate instruction. PowerPC isn’t as simple as it could be (even without AltVec). MIPS and others have branch delay slots that complicate compilation and superscalar execution. IA64 is just too complicated.