Parallel Memory Initialization for Server Boot Time Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing memory capacity on server platforms leads to longer boot times due to the time-consuming memory configuration process, particularly the ECC scrubbing process, which is proportional to the dual-inline memory module (DIMM) size and memory channel bandwidth.

Innovation Solution

Implementing a memory manager that initializes a portion of the system memory in parallel with the BIOS load process and utilizes a patrol memory engine to perform background ECC scrubbing, allocating a significant portion of write credits to the patrol engine to speed up the memory initialization process, allowing the rest of the BIOS load process to proceed concurrently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If memory capacity is increased to meet growing server requirements, then system memory capacity is improved, but boot time increases due to longer memory configuration time

Engineering Contradiction:
Improvememory capacityVSAvoidboot time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary memory initialization actions by allocating a first portion of system memory before the BIOS load process and initializing it in advance. This preliminary allocation and initialization allows the BIOS to load into predetermined memory locations without waiting for complete memory configuration, thereby reducing boot time while supporting increased memory capacity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the memory initialization process into distinct portions: a first portion allocated before BIOS loading and a second portion initialized during or after BIOS loading. This segmentation allows parallel execution of BIOS loading and memory initialization, preventing the boot process from being bottlenecked by sequential memory configuration

Inventive Principle:
Principle #1Segmentation

2Reliability

If traditional sequential memory initialization is used to ensure complete ECC scrubbing, then memory reliability is improved, but boot time increases

Engineering Contradiction:
Improvememory reliabilityVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary allocation of a first portion of system memory before the BIOS load process completes. This preliminary action includes setting aside predetermined memory locations and initializing them with proper ECC scrubbing in advance, allowing reliable memory to be available immediately for BIOS execution without waiting for complete memory configuration

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent continues memory initialization actions during and after the BIOS load process by initializing a second portion of system memory while the BIOS is loading. This continuous initialization ensures that ECC scrubbing and memory configuration proceed without interruption, maintaining reliability while reducing overall boot time

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10346177B2Boot process with parallel memory initialization
Publication Date: 2019.07.09 INTEL CORP
  • US10346177B2 patent drawing
  • US10346177B2 patent drawing
  • US10346177B2 patent drawing

AI summary

An embodiment of a memory apparatus may include a system memory, and a memory manager communicatively coupled to the system memory to determine a first amount of system memory needed for a boot process, initialize the first amount of system memory, start the boot process, and initialize additional system memory in parallel with the boot process. Other embodiments are disclosed and claimed.