Maker Pro
Maker Pro

Intel Microcode

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
 
M

MooseFET

Jan 1, 1970
0
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 :(

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

ThanderMaX

Jan 1, 1970
0
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 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 :( )
 
J

Jonathan Kirwan

Jan 1, 1970
0
<snip>
I think you will find that only parts of the microcode can be
changed. Other parts are fixed.

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
 
M

Matt

Jan 1, 1970
0
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 :( )

man microcode_ctl
 
Top