Memory Controller Command Queue Segmentation for Program Fail Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In memory systems with multiple semiconductor memories, existing technologies face challenges in efficiently processing program failures, leading to operational inefficiencies and potential data loss.

Innovation Solution

A memory system with a controller that generates and manages command queues for each semiconductor memory, allowing for queuing and prioritization of commands, and performs program fail recovery operations by holding and re-queuing commands for the failed memory after other memories have completed their operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the controller processes commands for all semiconductor memories simultaneously, then system productivity is improved, but when a program fail occurs in one memory, it causes operational inefficiency and potential data loss in other memories

Engineering Contradiction:
Improvesystem throughputVSAvoidprogram fail recovery
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The controller divides the command processing into separate command queues for each semiconductor memory. When a program fail occurs in one memory, only the command queue corresponding to that specific memory is affected and held, while other command queues continue processing normally. This segmentation isolates the failure impact to a single memory unit, preventing cascading failures across the entire system.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the controller holds the command queue for a failed memory, then data integrity is improved, but operational overhead increases due to re-queuing commands after recovery

Engineering Contradiction:
Improvedata integrityVSAvoidrecovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The controller maintains command queues in a pre-organized state for each memory, so when a program fail occurs, the commands are already queued and ready to be re-issued once the memory recovers. This preliminary organization of commands minimizes the recovery time and operational overhead, as the controller does not need to re-parse or re-organize commands after detecting the failure.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If the controller processes commands for multiple memories in parallel, then system complexity is reduced, but difficulty in detecting and measuring program fails increases

Engineering Contradiction:
Improvecontroller structureVSAvoidprogram fail detection
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The controller uses separate command queues for each semiconductor memory, which segments the command processing and failure detection. Each command queue is independently monitored for program fails, making it easier to detect and measure failures in specific memories without being obscured by simultaneous operations in other memories. This segmentation maintains relatively simple controller structure while improving failure detection capability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11086722B2Memory system and operating method thereof
Publication Date: 2021.08.10 SK HYNIX INC
  • US11086722B2 patent drawing
  • US11086722B2 patent drawing
  • US11086722B2 patent drawing

AI summary

There are provided a memory system and an operating method thereof. The memory system includes: a memory device including a plurality of semiconductor memories; and a controller for generating a plurality of command queues respectively corresponding to the plurality of semiconductor memories by queuing a plurality of commands received from a host, and controlling the plurality of semiconductor memories to perform overall operations by outputting the plurality of commands queued in the plurality of command queues, wherein the controller holds a first command queue, among the plurality of command queues, corresponding to a first semiconductor memory, among the plurality of semiconductor memories, in which a program fail has occurred.