OS Switching via Non-Volatile Memory Context Saving

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems take an unreasonably long time to switch between operating systems due to the need for a complete shutdown and boot-up process, and virtualization limits performance by restricting direct hardware access to each operating system.

Innovation Solution

Utilizing system contexts saved in non-volatile memory to rapidly switch between operating systems by saving and loading standby contexts between volatile and non-volatile memory, allowing for quick transitions without full shutdown and boot-up, and enabling direct hardware access through appropriate management of sleep states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If a complete shutdown and boot-up process is used to switch between operating systems, then system stability is ensured, but switching time becomes unreasonably long

Engineering Contradiction:
ImproveOS switching timeVSAvoidsystem stability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system performs preliminary actions by saving the complete system context (including CPU registers, memory state, and device statuses) to non-volatile memory before shutting down. This allows the next operating system to restore the saved context and continue execution as if no shutdown occurred, eliminating the need for complete re-initialization and dramatically reducing switching time while maintaining system stability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention creates a copy of the entire system state in non-volatile memory before OS transition. This copy includes all volatile memory contents, processor states, and hardware configurations. The target OS can then load this copied state to resume operations quickly without performing a full boot sequence, thus reducing switching time while preserving system reliability

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If virtualization is used to run multiple guest operating systems, then hardware access is consolidated, but performance is reduced due to restricted direct hardware access

Engineering Contradiction:
Improvemulti-OS capabilityVSAvoidprogram performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system dynamically switches between virtualization mode and direct hardware access mode based on the requirements of the running application. When high-performance applications (such as games) need to run, the system transitions to direct hardware access mode by restoring the appropriate system context, allowing full hardware performance while maintaining multi-OS capability through rapid context switching

Inventive Principle:
Principle #15Dynamics

3Loss of time

If system context is saved in volatile memory during standby, then switching speed is improved, but data loss occurs when power is cutoff or memory is overwritten

Engineering Contradiction:
ImproveOS switching timeVSAvoidcontext data persistence
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The invention introduces non-volatile memory as an intermediary between volatile memory and permanent storage. The system context is first saved to volatile memory for quick access, then asynchronously copied to non-volatile memory for persistence. This intermediary layer ensures that context data survives power cutoffs and overwrites, maintaining both fast switching capability and data reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11307868B2Techniques for switching between operating systems
Publication Date: 2022.04.19 INTEL CORP
  • US11307868B2 patent drawing
  • US11307868B2 patent drawing
  • US11307868B2 patent drawing

AI summary

Various embodiments are generally directed to an apparatus, method and other techniques for receiving information to invoke a transition from a first operating system to a second operating system, copying a system context for the second operating system from a location of a non-volatile memory to a volatile memory, the location associated with the second operating system and transitioning from the first operating system to the second operating system using the system context for the second operating system.