XOR Parity Updates for Non-Volatile Memory Block Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In non-volatile memory devices, updating XOR parity data to protect changed data elements without reading data from other cells protected by the parity data is challenging, as existing methods often require rebuilding the entire parity data set, which is inefficient and undesirable.

Innovation Solution

A controller updates XOR parity data by removing a previous data element from the current parity data using an XOR operation, then adds the updated data element to the parity data, allowing for incremental updates without reading data from other cells, thus maintaining data integrity and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If XOR parity data is rebuilt from scratch to protect updated data elements, then data integrity is maintained, but processing time and computational resources increase significantly

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

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing XOR parity data for individual data elements before they are needed for updates. When a data element needs to be updated, the corresponding pre-computed parity data is already available, eliminating the need to rebuild parity from scratch and significantly reducing processing time while maintaining data integrity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the parity data computation into individual contributions from each data element. Instead of treating parity generation as a monolithic operation requiring all data elements, it breaks down the parity data into separable XOR components, allowing selective updating of only the affected parity portions when data elements change

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If all data elements are read to rebuild XOR parity data, then accurate parity is generated, but memory bandwidth and I/O operations increase

Engineering Contradiction:
Improveparity accuracyVSAvoidupdate efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts only the specific parity contribution corresponding to the updated data element, rather than reading and processing all data elements. By isolating and using only the relevant XOR parity component for the changed element, it maintains parity accuracy while dramatically reducing memory bandwidth requirements and I/O operations

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies local quality by making the parity update process localized to only the affected data element and its corresponding parity contribution. Instead of a global parity rebuild operation that touches all data, the system performs a localized XOR operation on the specific element that changed, improving update efficiency while preserving parity accuracy for the affected portion

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10275310B2Updating exclusive-or parity data
Publication Date: 2019.04.30 SANDISK TECHNOLOGIES LLC
  • US10275310B2 patent drawing
  • US10275310B2 patent drawing
  • US10275310B2 patent drawing

AI summary

A storage device may include a non-volatile memory; and a controller. The controller may be configured to store a plurality of blocks of data in the memory, determine exclusive-or (XOR) parity data for the plurality of blocks, and store the XOR parity data in the memory; store a second block of data in the memory. The controller may be further configured to generate updated XOR parity data by at least XORing a first block of the plurality of blocks and the second block of data with the XOR parity data to remove the first block from the XOR parity data and to add the second block to the XOR parity data, and store the updated XOR parity data in the memory.