In recent years we have seen much talk about so called “field updates” to CPU’s from Intel and AMD. They are called field updates because they are updates made in the field (i.e. after they have shipped from the factory). Put simply a field update is just a “firmware” update to your CPU to fix a bug, improve performance, and sometimes even to unlock new functions.

What is Firmware In Simple Terms?

Firmware is a specialized type of software that is permanently embedded into hardware devices to provide low-level control and enable them to function properly. Here are the three main things you need to understand about firmware:

  1. It tells operating systems, like Windows and Linux, what the hardware’s capabilities are and how to access those capabilities.
  2. When it comes to CPU’s, firmware, also translates complex machine language instructions from the operating system into simpler, lower-level operations that the CPU’s core can directly process
  3. Firmware is loaded automatically at power-up, by the hardware (in this case the CPU) before the operating system (like Windows 11) even starts

Can I Update My CPU?

Yes, in nearly all cases today you can update a CPU’s firmware; what Intel and AMD call “micro-code”. Modern CPUs aren’t entirely hardwired for every instruction they execute. Instead, they contain a layer of internal firmware called microcode. As noted above, microcode breaks the operating systems commands down to millions of simple low-level operations the CPU run.

How To Update CPU Microcode:

software - os with drivers - microcode - cpu simplified stack

We said that micro-code updates occur when the machine is powered up but that is not always true. Operating System’s can also modify the microcode. Here are the 3 ways you are likely to source CPU microcode updates:

  1. Motherboard Manufacturer’s BIOS/UEFI Updates:
    • Primary Source: This is the most common and often recommended way to get persistent microcode updates. Motherboard manufacturers integrate the latest microcode provided by Intel or AMD into their BIOS/UEFI firmware
    • How it works: When you download and install a new BIOS/UEFI update from your motherboard manufacturer’s support website, it flashes the new firmware onto your motherboard’s non-volatile memory. During the system’s boot-up process, the updated BIOS/UEFI loads the new microcode into the CPU’s volatile memory
    • Pros: It’s a persistent update, meaning it’s applied every time the system boots, before the operating system even loads. This is ideal for addressing issues that affect early boot stages
    • Cons: Requires manual download and installation, can be a bit intimidating for novice users, and an interrupted update can potentially “brick” your motherboard. Motherboard manufacturers may also stop providing updates for older models
  2. Operating System (OS) Updates:
    • Windows Update: Microsoft routinely includes Intel and AMD microcode updates as part of its regular Windows Update releases. These are often categorized as “optional updates” but are highly recommended for security and stability
    • Linux Distributions: Linux distributions (like Ubuntu, Fedora, Debian, Arch Linux, etc.) actively package and distribute microcode updates for both Intel and AMD processors. These updates are typically delivered through the distribution’s standard package manager (e.g., apt, dnf, pacman)
      • Early Loading: Many Linux distributions configure the system to load microcode updates very early in the boot process (often via the initramfs/initrd) to ensure the CPU is patched before the main operating system fully loads
      • Late Loading: It’s also possible for the OS to apply microcode updates to a running system without a reboot, though this is often considered less ideal for critical fixes as the system might run unpatched for a brief period
    • macOS: Apple also includes microcode updates with its macOS system updates
    • Pros: Automatic and convenient for most users. Ensures rapid deployment of critical security fixes
    • Cons: OS-level updates are volatile, meaning they are loaded into the CPU’s memory at runtime but lost when the system is powered off. They must be reapplied on every boot. If the OS doesn’t load them early enough, the CPU might run with older, vulnerable microcode during the initial boot phase
  3. Intel or AMD Directly (Mostly for Linux/Advanced Users):
    • Intel: Intel provides a repository (e.g., on GitHub) with its latest microcode data files, primarily for Linux distributors and advanced users who want to manually manage updates. This is typically used by Linux distributions to package the microcode, rather than by end-users directly
    • AMD: AMD also provides microcode, but often relies more heavily on OEMs (motherboard manufacturers) to integrate it into BIOS/UEFI updates. While AMD microcode packages exist for Linux, they might not be as consolidated or as easily accessible for manual download by the average user as Intel’s
    • Pros: Direct access to the absolute latest microcode often before it’s packaged by OS vendors or OEMs
    • Cons: Requires significant technical expertise to download, verify, and manually apply the updates. Not recommended for typical users

Where Else?

  • System Integrators (for Pre-Built Systems): If you bought a pre-built desktop or laptop, the system integrator (e.g., Dell, HP, Lenovo, Acer, ASUS, MSI) will provide the BIOS/UEFI updates on their support website, tailored for your specific model. These updates contain the necessary microcode
  • Virtualization Hosts: In virtualized environments, it’s the responsibility of the host operating system or hypervisor to ensure the physical CPU’s microcode is up to date, as the virtual machines (guests) rely on the underlying hardware

Recommendation:

For most users, the safest and most effective strategy is to:

  1. Keep your motherboard’s BIOS/UEFI updated by regularly checking the motherboard manufacturer’s support website for your specific model
  2. Keep your operating system updated (Windows Update, Linux package manager, macOS updates). These updates will frequently include the latest microcode from Intel/AMD

By doing both, you ensure that your CPU is patched as early as possible during boot (via BIOS/UEFI) and that you receive ongoing, timely updates via your OS.

When Were Field Updates First Used?

The Intel P6 microarchitecture, introduced with the Pentium Pro processor in November 1995, marked a pivotal moment in CPU design, particularly regarding microcode updates. Before P6, microcode was essentially fixed in the CPU’s ROM (Read-Only Memory) during manufacturing. If a bug was found post-release, the only solution was a product recall or to live with the bug. The infamous Pentium FDIV bug of 1994, which led to a costly recall, highlighted the critical need for an in-field update mechanism.

This experience directly influenced the design of the P6 microarchitecture. Here’s a breakdown of its microcode history:

The Birth of Patchable Microcode

The mid-1990’s Pentium FDIV bug was a significant financial and reputational blow to Intel. It demonstrated that even with extensive pre-release testing, complex CPUs could have flaws that only manifest in specific, rare circumstances. The P6 microarchitecture was designed with this lesson in mind, incorporating the ability to patch its internal microcode after fabrication.

Intel P6 and later architectures store a baseline microcode in an internal ROM. When an update is applied, it populates a separate SRAM (Static RAM) inside the CPU. This SRAM holds the patched microcode.

“Match registers” act as breakpoints within the microcode ROM. If the CPU’s internal “Microcode Instruction Pointer” matches a value in these registers, it “jumps” to the corresponding updated micro-operations in the SRAM. This effectively reroutes problematic instructions to the corrected code.

In the original P6 architecture, there was space for around 60 micro-operations in this SRAM for patches.



0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *