I/O Subsystem Driver Hibernation State Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern computing systems face challenges in managing Input/Output (I/O) subsystems effectively, particularly during hibernation and resumption states, due to limited I/O channels and the need to differentiate between memory access requests for RAM and flash memory devices like Flash DIMM, which are coupled to memory channels for increased speed.

Innovation Solution

The implementation of an I/O subsystem device driver that detects hibernation requests, sets a memory address to indicate non-serviceability during hibernation, and reverts it upon restart to allow proper resumption of system requests, ensuring accurate operational states and preventing improper access to Flash DIMM before driver initialization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the I/O subsystem is coupled to a memory channel for increased speed, then data transfer speed is improved, but the system cannot properly differentiate between RAM and flash memory devices during hibernation and resumption states

Engineering Contradiction:
Improvedata transfer speedVSAvoidoperational state management
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

A device driver acts as an intermediary between the operating system and the I/O subsystem, managing the operational state transitions during hibernation and resumption. The driver detects hibernation requests, updates the operational state memory location to indicate non-serviceability, and restores it upon resumption, preventing improper access to flash memory devices while maintaining high-speed memory channel coupling.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the I/O subsystem services system requests during hibernation, then request processing continues, but flash memory devices may be improperly accessed before driver initialization

Engineering Contradiction:
Improverequest processingVSAvoidimproper access to flash memory
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system applies preliminary anti-action by setting the operational state to indicate non-serviceability before the I/O subsystem services system requests during hibernation. This prevents harmful improper access to flash memory devices that would occur if requests were serviced before driver initialization, while still allowing the system to maintain productivity by properly managing state transitions.

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The device driver performs preliminary action by detecting hibernation requests and updating the operational state memory location before the I/O subsystem processes any system requests. This ensures flash memory devices are protected from improper access during the critical hibernation transition period, while enabling resumption of normal operations after driver reinitialization.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If the operational state is not properly maintained during hibernation, then system resumption is faster, but the I/O subsystem cannot properly interact with the operating system post-restart

Engineering Contradiction:
Improvehibernation resumption timeVSAvoidOS interaction
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The device driver implements feedback by continuously monitoring the operational state memory location and adjusting I/O subsystem serviceability accordingly. During hibernation, the driver detects the state change, updates the operational state to indicate non-serviceability, and upon resumption, detects the restored state and re-enables servicing. This feedback mechanism ensures proper OS interaction post-restart while minimizing resumption time through efficient state detection and transition.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9141565B2Memory bus attached input/output (‘I/O’) subsystem management in a computing system
Publication Date: 2015.09.22 LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
  • US9141565B2 patent drawing
  • US9141565B2 patent drawing
  • US9141565B2 patent drawing

AI summary

Memory bus attached Input/Output (‘I/O’) subsystem management in a computing system, the computing system including an I/O subsystem communicatively coupled to a memory bus, including: detecting, by an I/O subsystem device driver, a hibernation request; setting, by the I/O subsystem device driver, a predetermined memory address to a value indicating that the I/O subsystem is not to service system requests; detecting, by the I/O subsystem device driver, that the I/O subsystem device driver has been restarted; and setting, by the I/O subsystem device driver, the predetermined memory address to a value indicating that the I/O subsystem can resume servicing system requests.