Intel Microcode

Jun 27, 2007 4 Replies

I was taught in university that microcode was what "high level" assembly language instructions were hardwired to on the lower level. Such that "add eax, ebx" becomes something like:



load eax into some internal ALU register load ebx into some internal ALU register tell the ALU to go into "add-mode" tell the ALU to do it's thing load the result from the ALU into the eax register increase the program counter



or something similar. I know this is probably a lot more complex on modern processors, but anyway...



Now, I know that it has been possible to update the microcode in Intel processors for a very long time. And this is where I get confused:



Does this mean that an Intel processor can be totally changed with microcode updates? How much of, say, a Core 2 Duo is hardwired, and how much of it can be updated with microcode updates? And if microcode is changable, is it still as fast as if it was hardwired?



I am confused :(



Please help!



/David



I think you will find that only parts of the microcode can be changed. Other parts are fixed.

I think LINUX kernel does this (if it has the damoen installed). Look in the source forge site for the code. only a few opcodes are available for update. but sometimes it needs to decrypt and then update (for protection :( )

I think it may be fairly flexible in terms of what can be patched, but the memory for patching is limited. Good luck getting public docs on doing it, though. Accessing the docs at Intel was on a need-to-know basis when I last wanted (and asked) to look at them.

Jon

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required