6

Today after unpacking the initramfs file from my Linux /boot directory I found that it contains the GenuineIntel.bin file, and that that file is an image of what is called the CPU microcode.

Then I found articles on ArchWiki and Wikipedia describing the subject. Now I'm not sure that my vague understanding of the subject is correct.

Can anyone please explain what the CPU microcode is in plain English?

2
  • 2
    You constructed the phrase "kernel microcode", as none of the links you provided combined those two words together. So there are kernels and there are microcode, but there is no such thing as "kernel microcode". The document by Fenghua Yu describes how microcode can be loaded by the kernel. The microcode is for the CPU. The kernel is described as a mechanism for loading the microcode. The microcode is not for or part of the kernel. Hence "kernel microcode" is not a valid construct.
    – sawdust
    Commented Aug 20, 2014 at 19:29
  • @sawdust, you are probably right about the term. I've updated the original post. Though the authorship is not mine. I saw the term somewhere on the Internet while researching the subject. Thanks for correcting.
    – golem
    Commented Aug 20, 2014 at 22:04

1 Answer 1

6

In many modern CPUs, including Intel and AMD models, some instructions are executed directly in hardware, and some are "microcoded" - essentially, such instructions are internally made up of a series of smaller internal-to-the-CPU-only instructions.

I'm not sure what you call the facility inside the CPU that "executes" microcode, and I believe microcode in Intel/AMD CPUs may control things other than microcoded instructions. It's something that can be updated, but it needs to be applied each reboot.

Anyway, sometimes Intel/AMD releases a "microcode update" which corrects some flaws or disables instructions that are unreliable. So generally you want the latest microcode update installed on a CPU before you really use it. The BIOS can do this as part of hardware initialization, and it's probably part of Linux hardware initialization as well.

The BIOS would only apply the most recent microcode update for a CPU if a BIOS update that contains it has been applied to the system, so it's possible the BIOS may not apply the latest update for a CPU that is available.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .