PCIe SSD Boot Data Pre-fetching During Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The initialization of PCIe-connected solid state storage devices in Information Handling Systems (IHS) is slower compared to SATA-connected devices, resulting in longer boot times due to the time required to allocate host memory for high-speed NVMe queues, which hinders the benefits of faster bus speeds provided by PCIe.

Innovation Solution

The method involves pre-fetching and loading operating system boot data from persistent storage to volatile memory during the allocation of host memory for PCIe connections, using mappings to identify and copy the data, and transmitting it to the host IHS to facilitate faster booting, even when the data size exceeds volatile memory limits by transferring portions sequentially.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If PCIe bus interface is used for SSD connection, then data transfer speed is improved, but initialization time increases

Engineering Contradiction:
Improvedata transfer speedVSAvoidinitialization time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-fetching operating system boot data from persistent storage to volatile memory during the host memory allocation phase, before the PCIe initialization process completes. This overlapping of operations allows the system to prepare boot data in advance, reducing the effective initialization time perceived by the user while maintaining the high-speed PCIe data transfer capability.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If host memory is allocated for NVMe queues, then PCIe connection functionality is improved, but boot time increases

Engineering Contradiction:
ImprovePCIe connection functionalityVSAvoidboot time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements continuity of useful action by ensuring that the boot data pre-fetching operation continues uninterrupted during the host memory allocation process. Rather than waiting for memory allocation to complete before fetching boot data, the system maintains continuous productive activity by overlapping these two necessary operations, thereby reducing total boot time while preserving full PCIe/NVMe functionality.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of time

If operating system boot data is pre-fetched during host memory allocation, then boot speed is improved, but memory management complexity increases

Engineering Contradiction:
Improveboot speedVSAvoidmemory management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent uses an intermediary approach by introducing a dedicated boot data pre-fetching mechanism that operates independently during the memory allocation phase. This intermediary process bridges the gap between persistent storage and the final boot execution, allowing boot data to be prepared in advance without interfering with the normal memory management workflow. The complexity is localized to a specific pre-fetching routine rather than affecting the entire memory management system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10289421B2Booting of IHS from SSD using PCIe
Publication Date: 2019.05.14 DELL PROD LP
  • US10289421B2 patent drawing
  • US10289421B2 patent drawing
  • US10289421B2 patent drawing

AI summary

Methods and systems are provided for initializing a host IHS (Information Handling System) that includes an SSD (solid state storage device) connected using PCIe (Peripheral Component Interconnect Express). The SSD detects the transfer of boot data from the host to the persistent storage of the SSD. The SSD marks the detected boot data for pre-fetching. When the host is booted, memory is allocated for the PCIe connection. During the resulting delay, the SSD pre-fetches the marked boot data from persistent storage to a portion of a volatile memory used by the SSD for storing a mapping of the boot data in persistent storage. Upon configuring the PCIe connection, the SSD is provides pre-fetched boot data to the host immediately, thus improving boot times. In certain scenarios, the SSD pre-fetches successive portions of the boot data and provides each pre-fetched portion of the boot data to the host.