Transient Memory Manager for UEFI Persistent Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing capacity needs for flash memory in information handling systems due to newer technologies and firmware features lead to larger, more complex, and costly systems, with limited availability of code and data storage for preboot applications.

Innovation Solution

Implementing a transient memory manager in persistent memory that designates two data areas for non-transitory and transitory data, allowing for efficient storage and reclamation of data within the basic input/output system, utilizing industry-standard UEFI variable services to categorize and manage data types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If flash memory capacity is increased to store firmware code and variables, then storage capacity is improved, but system size, cost, and complexity increase

Engineering Contradiction:
Improveflash memory capacityVSAvoidsystem complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The flash memory is segmented into two distinct data areas: a non-transitory data area for permanent storage of critical firmware variables and configuration data, and a transitory data area for temporary storage of preboot application data. This segmentation allows the system to efficiently manage limited flash memory capacity by storing only essential permanent data in the non-transitory area, thereby reducing the required total flash memory capacity and simplifying the system.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If flash memory capacity is increased to store firmware code and variables, then storage capacity is improved, but system cost increases

Engineering Contradiction:
Improveflash memory capacityVSAvoidsystem cost
Core Design Contradiction:
Quantity of substanceVSEase of manufacture

Solution Approach 1:

By segmenting flash memory into non-transitory and transitory data areas, the system reduces the total flash memory capacity required. This reduction directly lowers component costs and manufacturing expenses while maintaining adequate storage for critical firmware functions.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If more flash memory is allocated for permanent data, then data retention is improved, but availability for preboot applications decreases

Engineering Contradiction:
Improvepermanent data storage spaceVSAvoidpreboot application storage availability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The flash memory is divided into dedicated non-transitory and transitory data areas, ensuring that permanent firmware data has guaranteed storage space while preboot applications can utilize the transitory area. This segmentation resolves the conflict by providing assured capacity for critical data while making temporary storage available for application needs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The transitory data area is designed for temporary storage of preboot application data that can be discarded after use. This allows the system to allocate flash memory space for preboot applications without permanently reducing the capacity available for critical firmware data, as the transitory space can be reclaimed and reused.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS11347664B1Shared transient memory storage in basic input/output system environment
Publication Date: 2022.05.31 DELL PROD LP
  • US11347664B1 patent drawing
  • US11347664B1 patent drawing
  • US11347664B1 patent drawing

AI summary

A method may be provided in a basic input/output system embodied in persistent memory including two data areas for storing data associated with the basic input/output system and a code area comprising firmware for performing functionality of the basic input/output system. The method may include, at any given time, designating one of the data areas as a non-transitory data area and designating the other of the data areas as a transitory data area; and for each item of data associated with the basic input/output system, determining if such item of data is non-transitory-type data or transitory-type data, storing such item of data in the non-transitory data area if such item of data is determined to be non-transitory-type data, and storing such item of data in the transitory data area if such item of data is determined to be transitory-type data.