Phased Memory Initialization via Error Scrub Engine
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing memory initialization processes in ECC memory systems are time-consuming, especially with increasing memory capacities, which delays system boot times and complicates configuration and validation processes.
Innovation Solution
The implementation of an error scrub engine that initializes memory in phases, allowing the operating system to be loaded and executed before completing the memory initialization, thereby reducing boot time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional hardware state machine performs memory initialization by writing all zeros to memory, then valid ECC is achieved, but system boot time is significantly delayed
Solution Approach 1:
The patent applies preliminary action by having the error scrub engine initialize a first portion of memory before the BIOS is loaded, so that the BIOS can be loaded into initialized memory and executed while the remainder of memory is still being initialized. This overlapping of initialization with BIOS execution significantly reduces boot time while ensuring that the portion of memory needed for BIOS operation is already initialized with valid ECC.
2Adaptability or versatility
If memory capacity is increased with more memory channels and multiple DIMMs per channel, then system configuration capability is improved, but initialization time increases and negatively impacts boot process
Solution Approach 1:
The patent applies segmentation by dividing memory initialization into two phases: initializing a first portion of memory before BIOS loading, and initializing the remainder of memory after BIOS is loaded and executing. This segmentation allows the system to handle large memory capacities with multiple channels and DIMMs without proportionally increasing boot time, as the BIOS can operate on the initially initialized portion while the rest is being initialized.
3Ease of operation
If DMA engine or multithreaded software initialization is used to configure upper system address space, then memory initialization can be performed, but processing resources are reserved and system start is delayed
Solution Approach 1:
The patent applies self-service by using the error scrub engine, which is already part of the memory controller hardware, to perform the initialization function. This eliminates the need for separate DMA engines or multithreaded software initialization, as the memory controller itself provides the initialization capability. The error scrub engine initializes memory as part of its normal error correction function, so no additional processing resources need to be reserved, and system start is not delayed.
Data Source
AI summary
Initialization of a memory can have different phases, first initializing a portion of memory for BIOS (basic input/output system) and initializing other portions of memory while the BIOS is operating. The initialization of the memory can be performed by the error scrub engine. In a first mode of operation, the scrub engine can initialize memory locations, then transition to performing scrub operations.


