Multiprocessor Boot Flow Using Cache as Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current system boot processes are inefficient, leading to prolonged boot times due to the lack of visibility of last-level cache memory during the boot stage, which limits the ability to utilize multiple processing cores effectively, resulting in sequential execution of hardware initialization code and inefficient resource usage.

Innovation Solution

The implementation of a boot controller that configures a cache as memory for hardware initialization code before execution, allowing parallel execution across multiple cores and utilizing a larger pre-initialized memory at reset, such as L4 cache, to enhance the boot process by treating cache as static RAM and providing more memory for boot firmware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional boot process is used with DRAM initialization, then system stability is ensured, but boot time is prolonged

Engineering Contradiction:
Improveboot timeVSAvoidmemory initialization complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-configuring the last-level cache as memory during the reset stage, before the traditional DRAM initialization process. This allows hardware initialization code to execute from the cache in parallel across multiple cores, eliminating the sequential dependency on DRAM initialization and significantly reducing boot time.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If single-core sequential execution is used, then hardware initialization is simplified, but productivity is reduced

Engineering Contradiction:
Improveboot process throughputVSAvoidmulti-core coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the hardware initialization code into multiple executable segments that can be distributed across different processor cores. Each core executes a portion of the initialization code in parallel, transforming the traditional single-threaded boot process into a multi-threaded parallel execution model that improves productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies dynamics by enabling the boot process to transition from a static single-core sequential execution model to a dynamic multi-core parallel execution model. The system adaptively utilizes available processor cores during the boot phase, optimizing resource utilization and throughput based on the hardware configuration.

Inventive Principle:
Principle #15Dynamics

3Productivity

If last-level cache is not visible during boot stage, then memory hierarchy is simplified, but boot process efficiency is reduced

Engineering Contradiction:
Improvehardware initialization speedVSAvoidcache configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies universality by making the last-level cache serve dual purposes: it functions as both the traditional cache for runtime operations and as main memory for hardware initialization code execution during the boot stage. This multi-functional utilization of the cache eliminates the need for separate initialization memory, improving boot efficiency without significantly increasing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11941409B2Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process
Publication Date: 2024.03.26 INTEL CORP
  • US11941409B2 patent drawing
  • US11941409B2 patent drawing
  • US11941409B2 patent drawing

AI summary

Systems, methods, and apparatuses relating to circuitry to implement a multiprocessor boot flow for a faster boot process are described. In one embodiment, a system includes a hardware processor comprising a processor core, a cache coupled to the hardware processor, storage for hardware initialization code, and a controller circuit to initialize a portion of the cache as memory for usage by the hardware initialization code before beginning execution of the hardware initialization code after a power on of the system.