BMC-Based uCode Hot-Upgrade for Bare Metal Cloud

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud service providers face complexity and cost challenges in deploying uCode patches to bare metal servers without interrupting tenant operating systems, as traditional in-band methods are not applicable in bare metal cloud environments.

Innovation Solution

An out-of-band uCode hot-upgrade method using a baseboard management controller (BMC) to apply uCode patches to CPUs during runtime, buffering the patch in BMC memory and triggering an SMI handler for execution, allowing for transparent updates without affecting the host operating system or tenant applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If in-band uCode hot-upgrade method is used, then uCode can be updated during runtime, but it is not applicable in bare metal cloud environments where tenant owns the operating system

Engineering Contradiction:
ImproveuCode update applicabilityVSAvoidupdate mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a cloud service provider utility as an intermediary component that runs with elevated privileges (system administrator mode) to facilitate uCode updates. This intermediary bypasses the limitation of tenant-owned operating systems by implementing a kernel module that can directly interact with CPU microcode update mechanisms, thus enabling updates in bare metal cloud environments without requiring changes to the tenant's operating system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional BIOS update method is used, then firmware can be updated, but system downtime is required which affects cloud service availability

Engineering Contradiction:
Improvefirmware update reliabilityVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a boot-time loading mechanism where the uCode update utility and kernel module are pre-installed and configured during system initialization. The kernel module is loaded into memory during boot, and the update utility is prepared in advance, enabling the actual uCode patching to occur seamlessly during runtime without requiring system downtime or reboot interruptions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous operation of the system during uCode updates by implementing a runtime update mechanism. The cloud service provider utility operates alongside the tenant's operating system, and the kernel module facilitates incremental microcode updates without interrupting CPU operations or requiring system shutdown, thus maintaining continuous service availability.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If uCode hot-upgrade is implemented for tenant-owned operating systems, then update flexibility is improved, but security risks increase due to potential malicious code execution

Engineering Contradiction:
Improveupdate flexibilityVSAvoidsecurity vulnerability
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent implements preliminary security measures by requiring the cloud service provider utility to run with system administrator privileges and by incorporating authentication mechanisms in the kernel module. The system validates update packages before execution, and the elevated privilege mode ensures that only authorized update operations can modify microcode, preventing malicious code execution while maintaining update flexibility.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentEP4012553B1Secure and efficient microcode(UCODE) hot-upgrade for bare metal cloud
Publication Date: 2024.03.06 INTEL CORP
  • EP4012553B1 patent drawingFigure 1~2
  • EP4012553B1 patent drawingFigure 3~8
  • EP4012553B1 patent drawingFigure 4

AI summary

A microcode (uCode) hot-upgrade method for bare metal cloud deployment and associated apparatus. Under the uCode hot-upgrade method, a uCode path is received at an out-of-band controller (e.g., baseboard management controller (BMC)) and buffered in a memory buffer in the out-of-band controller. The out-of-band controller exposes the memory buffer as a Memory-Mapped Input-Output (MMIO) range to a host CPU. A uCode upgrade interrupt service is triggered to upgrade uCode for one or more CPUs in a bare-metal cloud platform during runtime of a tenant host operating system (OS) using an out-of-bound process. This innovation enables cloud service providers to deploy uCode hot-patches to bare metal servers for live-patch without touching the tenant operating system environment.