Boot Controller Cache Configuration for Parallel Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current boot processes in computer systems are slow due to the lack of visibility of last-level cache memory during the boot stage, limiting the ability to parallelize boot steps and resulting in longer boot times, especially in multicore processor systems where resources are not efficiently utilized.

Innovation Solution

The implementation of a boot controller that configures a cache as memory for hardware initialization code before execution, allowing for parallel processing and reducing boot time by utilizing a larger pre-initialized cache memory, such as L4 cache, which is accessible by multiple cores, thereby enabling a multicore environment for faster boot processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional boot process is used with limited memory visibility, then system stability is maintained, but boot time is extended due to inability to parallelize boot steps

Engineering Contradiction:
Improveboot timeVSAvoidmemory visibility during boot stage
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The patent configures the cache as memory before executing hardware initialization code, making memory resources available in advance during the boot stage. This preliminary configuration enables the boot process to utilize cache memory without waiting for DRAM initialization, thereby reducing boot time while maintaining system stability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If cache is configured as memory before hardware initialization code execution, then boot time is reduced through parallel processing, but device complexity increases

Engineering Contradiction:
Improveboot speedVSAvoidboot controller configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the boot process into distinct stages with the boot controller managing cache configuration separately from the hardware initialization code execution. This segmentation allows the boot controller to prepare cache memory independently, enabling parallel processing without overwhelming system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The boot controller acts as an intermediary component that bridges the gap between the processor core and the cache memory during the boot stage. It manages the cache-as-memory configuration and facilitates smooth transition to the hardware initialization code, reducing the complexity burden on the overall system.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If last-level cache is made visible during boot stage, then resource utilization is optimized for parallel execution, but memory management complexity increases

Engineering Contradiction:
Improvecache visibilityVSAvoidmemory management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies cache-as-memory configuration locally during the boot stage rather than globally across all operating modes. The boot controller enables cache visibility specifically for hardware initialization code execution, while maintaining standard memory management during normal operation. This localized approach optimizes resource utilization without permanently complicating memory management.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP3901768B1Methods, systems, and apparatuses for a multiprocessor boot flow for a faster boot process
Publication Date: 2024.10.09 INTEL CORP
  • EP3901768B1 patent drawingFigure 1
  • EP3901768B1 patent drawingFigure 2
  • EP3901768B1 patent drawingFigure 3

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.