BPRAM Software Layout for Faster Boot Times

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems experience lengthy boot and initialization times due to the slow loading of constant data and executable code from legacy drives, which hampers user availability, especially in mobile devices and integrated consumer electronics.

Innovation Solution

A software layout system that moves constant data and executable code into non-volatile high-performance memory (ReRAM or PCM) while keeping changing data in volatile storage, creating a high-performance cache for faster access and execution, potentially allowing direct boot or execution from the cache.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If constant data and executable code are stored on legacy drives, then storage capacity is sufficient, but boot and initialization times are lengthy

Engineering Contradiction:
Improveboot timeVSAvoiddata access speed
Core Design Contradiction:
Loss of timeVSSpeed

Solution Approach 1:

The patent segments storage into two distinct parts: a high-speed non-volatile memory (BPRAM) for storing constant data and executable code, and traditional slow storage for variable data. This segmentation allows the system to access frequently needed boot components from fast memory while maintaining adequate total storage capacity, directly reducing boot time without sacrificing storage capacity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary action by pre-loading constant data and executable code into BPRAM during system setup or installation, before the system needs to boot. This advance preparation ensures that when the system starts, all necessary boot components are already in high-speed memory, eliminating the need to read from slow storage during the critical boot process.

Inventive Principle:
Principle #10Preliminary action

2Speed

If all data is loaded into volatile memory during initialization, then access speed is fast, but power consumption increases and data is lost when power is off

Engineering Contradiction:
Improvedata access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The patent changes the memory state parameter from volatile to non-volatile by using BPRAM (byte-addressable persistent random access memory). This parameter change allows data to be retained without continuous power supply while maintaining fast access speeds comparable to volatile memory, thus reducing power consumption during idle states while preserving speed during operation.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces a new dimension of persistence to the memory system by using BPRAM, which combines the speed characteristics of volatile memory with the persistence of non-volatile storage. This dimensional addition allows the system to maintain fast access speeds while eliminating the need to continuously power volatile memory, thereby reducing overall power consumption.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Use of energy by moving object

If constant data is stored in non-volatile memory, then power consumption is reduced, but access speed may be slower compared to volatile memory

Engineering Contradiction:
Improvepower consumptionVSAvoiddata access speed
Core Design Contradiction:
Use of energy by moving objectVSSpeed

Solution Approach 1:

The patent changes the memory parameter from traditional non-volatile storage (like flash or hard drives) to BPRAM, which offers non-volatile persistence with memory-speed access characteristics. This parameter change resolves the speed penalty typically associated with non-volatile memory while maintaining the power-saving benefits of persistence, allowing fast access to constant data without continuous power supply.

Inventive Principle:
Principle #35Parameter changes

4Loss of time

If the entire operating system is loaded into high-performance memory, then boot time is reduced, but cost and complexity of the memory system increases

Engineering Contradiction:
Improveinitialization timeVSAvoidmemory system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies local quality by using high-performance BPRAM only for storing constant data and executable code that benefit from fast access, while leaving variable data on traditional storage. This localized application of high-performance memory reduces the overall amount of expensive memory needed, thereby reducing cost and complexity while still achieving significant boot time reduction for the critical OS loading phase.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the operating system data into constant portions (stored in BPRAM) and variable portions (stored on traditional storage). This segmentation allows the system to utilize high-performance memory only where it provides the most benefit during boot and initialization, reducing the total amount of expensive memory required and thereby lowering overall system complexity and cost.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2891060B1Layout and execution of software applications using bpram
Publication Date: 2021.04.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2891060B1 patent drawingFigure 1
  • EP2891060B1 patent drawingFigure 2
  • EP2891060B1 patent drawingFigure 3

AI summary

A software layout system is described herein that speeds up computer system boot time and/or application initialization time by moving constant data and executable code into byte-addressable, persistent random access memory (BPRAM). The system determines which components and aspects of the operating system or application change infrequently. From this information, the system builds a high performance BPRAM cache to provide faster access to these frequently used components, including the kernel. The result is that kernel or application code and data structures have a high performance access and execution time with regard to memory fetches. Thus, the software layout system provides a faster way to prepare operating systems and applications for normal operation and reduces the time spent on initialization.