SSD Controller Debug Circuit for Failure Data Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In memory systems, particularly SSDs, debugging information is difficult to acquire when a CPU or bus failure occurs, as conventional methods require a dedicated debugger, and existing systems cannot retrieve data from DRAM, NAND memory, or registers without operational CPU and bus functionality.

Innovation Solution

A memory system with a controller that includes decoders, circuits, and a switching mechanism, allowing data access from DRAM, NAND memory, and SRAM using NVMe or PCIe commands, enabling data retrieval even in failure scenarios by transitioning to a debug mode that bypasses the normal CPU and bus pathways.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If a dedicated debugger is connected to the SSD to acquire debugging information, then debugging information can be acquired, but the debugging process becomes complicated and requires external equipment

Engineering Contradiction:
Improvedebugging informationVSAvoiddebugging process
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The SSD controller performs self-debugging by including a debug circuit that can read data from internal memories (DRAM, NAND memory, SRAM) and registers without requiring external debugger equipment. The controller switches to a debug mode where the debug circuit directly accesses internal components, enabling the system to debug itself autonomously.

Inventive Principle:
Principle #25Self-service

2Reliability

If the CPU and bus are operational, then normal data access and control functions work properly, but debugging information cannot be acquired when CPU or bus failure occurs

Engineering Contradiction:
Improvesystem operationVSAvoiddebugging information
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The debug circuit acts as an intermediary that can access internal memories and registers independently of the CPU and bus. When CPU or bus failure occurs, the debug circuit provides an alternative pathway to read debugging information directly from the failed system's internal components, bypassing the failed CPU and bus pathways.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The controller dynamically switches between normal operation mode and debug mode. In normal mode, the CPU and bus handle data access. In debug mode, the switching circuit redirects access paths to allow the debug circuit to read from internal memories and registers without involving the CPU or bus, enabling debugging even when they fail.

Inventive Principle:
Principle #15Dynamics

3Loss of information

If conventional debugging methods are used requiring dedicated equipment, then debugging information can be retrieved, but device complexity and operational difficulty increase

Engineering Contradiction:
Improvedebugging informationVSAvoiddebugging equipment
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The debug circuit is merged into the SSD controller itself, combining the debugging functionality with the existing control architecture. This integration eliminates the need for separate external debugger equipment, as the controller contains all necessary components (debug circuit, switching circuit, decoders) to perform debugging operations internally.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11500580B2Memory system
Publication Date: 2022.11.15 KIOXIA CORP
  • US11500580B2 patent drawing
  • US11500580B2 patent drawing
  • US11500580B2 patent drawing

AI summary

According to one embodiment, a memory system includes a first memory and a controller. The controller includes first and second decoders, first and second circuits, a register, and a switching circuit. The first and second decoders decode first and second commands respectively, which include first and second addresses respectively. The first and second circuits access the first memory using the first and second addresses respectively. A value stored in the register is changeable by a host. The switching circuit switches between the first and second circuits to access the first memory according to the value in the register.