In Sun's case I think it's simpler than that: SPARC hardware carries a steep premium over commodity x86, a good chunk of that premium is actually intended to pay for Sun's software stack, and Sun simply hasn't executed well enough on the software side to merit the premium.
Sun did a lot of engineering stuff "right" in the late '90s, and again over the past couple years: they were first to market with a mainstream-grade MP kernel and first to market with a mainstream 64 bit OS, and recently they have ZFS and DTrace to talk about.
On the other hand, I think you could have predicted probably starting in 2001 that nobody was going to pay that much for large-scale MP, 64 bits, and advanced filesystems; the entire server market swung to web stacks, which scale horizontally and move most of the systems management burden into a DBMS and out of the Adrian Cockroft and Chris Drake systems engineering realm where Sun has excelled.
I really think that if you compare the systems-level innovation at Apple to the systems-level innovation at Sun, Apple comes out ahead. And systems-level innovation isn't even their core competancy.
I think there was another big sea-change caused by AMD.
Before this, architecture and ISA were absolutely key - RISC was the way of the future. RISC architectures were theoretically running loops around CISC ones.
AMD bolted a CISC onto a RISC core and effectively made this architecture point moot. This approach let AMD and Intel use their momentum and market to catch up and overtake their workstation friends.
The big sea change that AMD caused is that 64-bit processors are now a commodity. Intel COULD have done that without AMD, but I doubt that they WOULD have if AMD hadn't essentially forced their hand.
And it's so ironic that people who were not married to x86 architectures enjoyed 64-bit computing a full decade before it became mainstream (as in "you could order a box from Dell")...
And that Sun had one of the first full implementations (I think MIPS got there first).
Yeah - although microcode had been around for a very long time.
The difference between microcode and RISC was the amount of synchronisation - RISC generally implied lots of uniform, high performance operations. Microcode could, but didn't necessarily. e.g. Microcode could still be doing funky co-ordination with lots of specialised execution units (and did afaik). This has some similarities to RISC, but RISC is a different philosophy really - namely fewer types, pipelined accesses, uniform instructions, more registers, etc.
(In my view) the big watershed moment was AMD's K5 architecture. This was literally based on one of AMD's pure RISC designs. It wasn't that popular in itself, but it set up a golden age for AMD... Which really only came to an end with Intel's Core.
Microcode is an implementation technique. Micro-ops (or whatever Intel formally calls them) is an instruction dispatch architecture --- an actual microarchitectural feature.
Sun did a lot of engineering stuff "right" in the late '90s, and again over the past couple years: they were first to market with a mainstream-grade MP kernel and first to market with a mainstream 64 bit OS, and recently they have ZFS and DTrace to talk about.
On the other hand, I think you could have predicted probably starting in 2001 that nobody was going to pay that much for large-scale MP, 64 bits, and advanced filesystems; the entire server market swung to web stacks, which scale horizontally and move most of the systems management burden into a DBMS and out of the Adrian Cockroft and Chris Drake systems engineering realm where Sun has excelled.
I really think that if you compare the systems-level innovation at Apple to the systems-level innovation at Sun, Apple comes out ahead. And systems-level innovation isn't even their core competancy.