BPRAM Software Layout for Faster Boot Times

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing boot and initialization processes in computer systems are time-consuming due to the need to load and initialize hardware, firmware, and software from slow storage resources, leading to delayed system availability, especially in modern devices where efficiency is crucial.

Innovation Solution

A software layout system that moves constant data and executable code into high-performance non-volatile memory (ReRAM or PCM) while keeping changing data in volatile storage, creating a fast-access cache for frequently used components like the kernel, allowing direct execution or quick transfer from cache, thereby reducing boot and initialization times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If constant data and executable code are stored in traditional hard drives or flash-based disk drives, then storage capacity is maintained, but boot time and application initialization time increase due to slow read speeds

Engineering Contradiction:
Improveboot timeVSAvoidinitialization time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent segments data into two categories: constant data (kernel code, application code, constant data structures) and changing data (dynamic data, user data). Constant data is moved to BPRAM while changing data remains on traditional storage, allowing selective optimization of frequently accessed components without requiring complete system restructuring.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

BPRAM serves as an intermediary storage layer between traditional slow storage (hard drives/flash) and volatile fast memory (DRAM). It provides byte-addressable persistent storage that maintains data after power loss while enabling fast read access, effectively bridging the speed gap between disk and memory for constant data.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If all data is loaded into volatile memory (DRAM) for fast access, then access speed improves, but power consumption increases and data is lost when power is removed

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

Solution Approach 1:

The patent applies different storage characteristics to different data types based on their access patterns. Constant data that requires fast read access is placed in BPRAM, while changing data remains on traditional storage. This localized optimization allows the system to achieve fast access for critical components without the power penalty of keeping all data in volatile memory.

Inventive Principle:
Principle #3Local quality

3Reliability

If the operating system loads all code and data from disk during boot, then complete system initialization is achieved, but boot time increases due to the complex load sequence

Engineering Contradiction:
Improvesystem initialization completenessVSAvoidboot time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary organization of constant data and executable code into BPRAM during system setup or first boot. This pre-positioning of frequently accessed components in fast persistent storage eliminates the need to load them from disk on subsequent boots, significantly reducing boot time while maintaining complete system initialization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2891059B1Layout and execution of operating systems using bpram
Publication Date: 2020.10.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2891059B1 patent drawingFigure 1
  • EP2891059B1 patent drawingFigure 2
  • EP2891059B1 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.