Storage Controller Fault Insertion Command for Snapshot Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage devices face challenges in efficiently detecting and debugging faults, particularly after they are released as products, as pre-generated snapshots may not be useful for new errors, leading to lengthy debugging processes due to the need for repeated firmware updates and error reproduction.

Innovation Solution

A storage controller and host system that utilize a fault insertion command to detect faults through various operations like assert code execution, memory polling, and latency detection, generating snapshots of the storage device's state and storing them in nonvolatile memory for later retrieval and debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If pre-generated snapshots are used for fault debugging, then debugging can be performed with existing data, but the snapshots become useless for new errors requiring lengthy debugging processes

Engineering Contradiction:
Improvedebugging timeVSAvoidsnapshot usefulness
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system performs preliminary fault detection operations and generates snapshots before actual faults occur by injecting synthetic faults through the fault insertion command. This allows debugging preparation to be done in advance with realistic fault scenarios, making snapshots immediately useful when actual faults occur without waiting for error reproduction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The storage device autonomously performs fault detection operations and generates snapshots when instructed by the host, without requiring external intervention to reproduce errors. The system serves itself by automatically capturing fault states through coordinated operations between the host and storage device.

Inventive Principle:
Principle #25Self-service

2Adaptability or versatility

If multiple fault detection operations are implemented, then comprehensive fault coverage is achieved, but system complexity increases

Engineering Contradiction:
Improvefault detection capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The fault insertion command serves multiple functions: it specifies the fault type, target location, and fault condition in a single unified interface. This universal command structure allows the system to perform various fault detection operations (assert code execution, memory polling, interrupt polling, latency detection) through one standardized mechanism, reducing interface complexity while maintaining comprehensive fault coverage.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of operation

If vendors can easily add fault conditions, then debugging flexibility improves, but command parsing complexity increases

Engineering Contradiction:
Improvefault condition additionVSAvoidcommand parsing
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The fault insertion command is segmented into distinct components: fault type, target location, and fault condition. Each component is independently parseable and can be processed by separate modules within the storage device. This segmentation allows vendors to easily add new fault conditions by defining new parameters while maintaining a consistent command structure that simplifies overall parsing complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12105987B2Storage controller and electronic system
Publication Date: 2024.10.01 SAMSUNG ELECTRONICS CO LTD
  • US12105987B2 patent drawing
  • US12105987B2 patent drawing
  • US12105987B2 patent drawing

AI summary

An electronic system includes: a host; and a storage device configured to exchange data with the host using an interface protocol. The host provides a fault insertion command, including a fault type, a target location, and a fault condition, to the storage device, based on the interface protocol. The storage device performs a fault detection operation, selected based on the fault type among an assert code execution operation, a memory polling operation, an interrupt polling operation, and a latency detection operation, on the target location in response to the fault insertion command, and stores a snapshot of the storage device when the fault condition is detected as a result of performing the fault detection operation. The host obtains the stored snapshot using the interface protocol, and debugs the storage device using the obtained snapshot.