Host-Side Command Injection for Memory Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging memory systems is challenging due to the difficulty in recreating exact error conditions caused by specific command sequences, as the interface between the host and memory is not normally monitored, making it hard to identify and address errors such as thermal stress reactions or timeouts.

Innovation Solution

A memory system that can replay a sequence of commands by writing them to an alternate data structure in the host's physical memory and switching its command pointer to execute against this structure, allowing for the re-execution of the same command sequence as if it were issued from the host.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the host-memory interface is not monitored during normal operation, then the system operates with simpler architecture and lower overhead, but debugging becomes difficult because exact error conditions cannot be captured or reproduced

Engineering Contradiction:
Improveinterface monitoring architectureVSAvoiderror condition detection
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The system performs preliminary action by capturing and storing command sequences in host memory before errors occur. The memory preserves the exact sequence of commands that led to the error condition, allowing later reproduction and analysis without needing to recreate the original error scenario. This preliminary capture of data enables subsequent debugging activities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the command sequence data structure in host memory that mirrors the original commands issued to the memory device. This copy can be replayed multiple times for debugging purposes without affecting the original operation. The copied data structure includes all necessary command information for accurate reproduction of error conditions.

Inventive Principle:
Principle #26Copying

2Reliability

If command sequences are captured and stored for debugging purposes, then error reproduction capability is improved, but additional memory resources and data structure management are required

Engineering Contradiction:
Improveerror reproduction capabilityVSAvoidmemory resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The host memory serves multiple functions: it stores both the command sequences for debugging reproduction and normal operational data. The same memory resources are utilized for dual purposes, eliminating the need for dedicated separate storage for debugging information. This multi-functional use of memory reduces overall resource requirements.

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

3Productivity

If the system replays command sequences by writing to alternate data structures in host memory, then debugging efficiency is improved, but the complexity of command pointer management and data structure switching increases

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidcommand pointer management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system extracts the command sequence data from the normal command processing path and places it in a separate alternate data structure in host memory. This extraction allows independent manipulation and replay of commands without interfering with ongoing operations. The separated data structure can be processed independently for debugging purposes.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The controller acts as an intermediary that manages the switching between primary and alternate command data structures. It handles the complexity of pointer management and data structure transitions, shielding the host from these complexities while enabling efficient debugging replay functionality. The intermediary coordinates the replay process and maintains system state consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10642536B2Non-volatile storage system with host side command injection
Publication Date: 2020.05.05 SANDISK TECHNOLOGIES LLC
  • US10642536B2 patent drawing
  • US10642536B2 patent drawing
  • US10642536B2 patent drawing

AI summary

To replay a series of commands for debugging (or other purposes), a memory device writes the commands to an alternate data structure in a host's physical memory. The memory device switches its own queuing and command processing infrastructure such that it executes against this alternate data structure instead of the primary data structure originally specified by the host.