Non-Volatile Memory Cache for Boot Sequence Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The boot sequence in computing devices is slowed down by the time-consuming process of retrieving the OS bootloader code/data from slower peripheral media, such as optical disks, during the Power On Self Test (POST) process, as these media take time to spin up and access.

Innovation Solution

Caching the OS bootloader or other necessary code/data in non-volatile memory, such as ROM, allows the firmware to retrieve it quickly instead of waiting for the peripheral media to spin up, and dynamically managing cache space by flushing less frequently used data when needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the OS bootloader code/data is retrieved from peripheral media (optical disk) during boot sequence, then the system can load the operating system, but the boot sequence time is significantly increased due to slow media access

Engineering Contradiction:
Improveboot sequence speedVSAvoidboot sequence time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent caches the OS bootloader code and data in non-volatile memory (NVM) before the actual boot sequence occurs. This preliminary action stores frequently accessed boot data in a faster storage location, so when the system needs to boot, it can retrieve the data from NVM instead of waiting for slow peripheral media access, thus reducing boot sequence time while maintaining system reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces non-volatile memory as an intermediary layer between the firmware and the slow peripheral media. This intermediary cache stores copies of the OS bootloader and related data, allowing the firmware to access boot-critical data quickly without directly accessing the slow optical disk, thereby resolving the contradiction between needing to load the OS and the slow access time of peripheral media

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If a cache is implemented in non-volatile memory to store OS bootloader data, then boot sequence time is reduced, but the device complexity increases

Engineering Contradiction:
Improveboot sequence timeVSAvoidfirmware complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the firmware automatically manages the cache in non-volatile memory. The firmware detects when boot data should be cached, automatically writes data to the cache, and manages cache validity without requiring external intervention or complex external control systems. This keeps the overall device complexity manageable while still achieving the time reduction benefits

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the storage parameter of critical boot data from slow peripheral media to fast non-volatile memory. By changing where the data is stored (from optical disk to NVM cache), the system achieves faster access times. The firmware manages this parameter change dynamically, caching data only when beneficial, thus balancing performance improvement with controlled complexity

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9720698B2Method and device for increased boot sequence speed using a cache in non-volatile memory
Publication Date: 2017.08.01 INSYDE SOFTWARE CORP
  • US9720698B2 patent drawing
  • US9720698B2 patent drawing
  • US9720698B2 patent drawing

AI summary

An OS bootloader or other code or data requested by firmware during a boot sequence is cached inside ROM or another non-volatile memory location. Firmware uses this cached version, instead of retrieving the OS bootloader or other code from a peripheral location to speed up the boot sequence. Embodiments also create additional room in the cache based on pre-determined rules if the cache doesn't already include the requested data and doesn't have enough room to store the requested data at the time of the firmware's read request.