Spare Block Pool for Debug Data Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory devices face degradation over time, leading to errors and the need for efficient debug and error correction mechanisms to maintain data integrity, as existing solutions only store the latest control data and lack comprehensive debugging information.

Innovation Solution

The implementation of a data storage device with a memory interface and electronic processor that detects control block exchange events, generates debug blocks by copying control information from control blocks to spare blocks, and reserves spare blocks for storing additional control data during formatting operations, enabling comprehensive debugging and error recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If control information is stored only in the latest control block, then storage space is conserved, but debugging information is lost when memory degrades

Engineering Contradiction:
Improvedebugging capabilityVSAvoidstorage space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent creates copies of control information blocks and stores them in spare blocks. When a control block becomes full or needs to be exchanged, the system copies the control information to a spare block before recycling the original block. This ensures that historical control data is preserved for debugging purposes while managing storage space efficiently.

Inventive Principle:
Principle #26Copying

2Reliability

If spare blocks are used for debugging information, then error correction capability is improved, but available storage for user data is reduced

Engineering Contradiction:
Improveerror correction capabilityVSAvoiduser data storage capacity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a block recycling mechanism where spare blocks that have served their debugging purpose can be recovered and returned to the pool of available blocks for user data storage. When control information is successfully copied to a spare block, the original control block is marked as available for recycling, thus recovering storage space for user data while maintaining debugging capabilities.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If control blocks are recycled to increase storage availability, then storage efficiency is improved, but debugging information is lost

Engineering Contradiction:
Improvestorage efficiencyVSAvoidcontrol data history
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent performs preliminary copying of control information to spare blocks before recycling control blocks. By proactively creating copies of the control data in spare blocks before the original blocks are marked for recycling, the system ensures that debugging information is preserved in advance, allowing control blocks to be safely recycled without losing historical control data.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12197744B2Storage of control data information
Publication Date: 2025.01.14 SANDISK TECHNOLOGIES LLC
  • US12197744B2 patent drawing
  • US12197744B2 patent drawing
  • US12197744B2 patent drawing

AI summary

Methods for storing control information for memory operations within spare physical blocks. During formatting of a data storage device, spare memory blocks may be identified within memory dies and placed into a spare block pool. Upon initiation of a block exchange event for a control block, a controller determines whether a spare block is available in the spare block pool. When a spare block is available, data from the control block is copied to the spare block to generate a debug block. The control block may be a MasterIndexPage block. When a spare block is not available, the controller may erase information stored in an oldest debug memory block and copy data from the control block to the oldest debug memory block.