Microcode

nicholas on 2009-06-18T13:33:48

Dear lazyweb:

As I understand it, for a decade or more, x86 family CPUs haven't actually implemented the x86 instruction set in silicon, or at least not wholly in silicon. The underlying hardware is actually something far more RISC, and the CISC instruction set is converted to microcode which runs on the "real" CPU. I seem to remember reading* that some CPUs could even be flashed to upgrade the microcode.

So what I wondered was, how come one can't target the microcode direct? Cut out the middle man of the x86 abstraction layer. Either by breaking out of x86 into native, or even by restricting it to the reflashable CPUs, and upgrading to homebrew microcode that was basically a NOOP layer.

Whilst this isn't going to be a winner for a binary distributed OS, it would be viable for something that could be recompiled from source, such as GNU/Linux, *BSD or GNU/HURD. So what am I missing? Aside from this being quite hard work.

* citation needed fail.


Citation

ilmari on 2009-06-18T20:12:54

The microcode and the program to upload it to the CPU.

Abstraction = market share

ChrisDolan on 2009-06-18T23:40:27

Broad binary compatibility increases the size of the available market for a piece of pre-compiled software. This doesn't matter nearly as much for open source software as it does for closed-source. For example, the lack of commercial software for the non-x86 Itanium continues to hold back that platform today, 8 years after its launch.