ECC Hashing for Faster Memory Region Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for determining whether sections of memory are identical are time-consuming, especially when comparing large data sets, as they require iterating through all possible pairs of memory sections, which affects processor performance.

Innovation Solution

Using error correcting code (ECC) data to generate hash values, which are smaller than the actual data, reducing the number of iterations needed for comparison and thereby increasing processing speed by combining these hash values to compare memory regions efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hash function is used to compare memory sections, then comparison time is reduced, but the number of iterations is still dependent on data size

Engineering Contradiction:
Improvecomparison timeVSAvoidnumber of iterations
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent extracts and uses only the ECC data portion (e.g., 8 bytes) from each memory section instead of hashing the entire data set. This extraction of the essential verification component reduces the input size for hash computation while maintaining the ability to detect differences, directly reducing the number of iterations required.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the parameter being hashed from the full data size to a fixed-size ECC data portion. By transforming the input parameter from variable size (entire memory section) to fixed size (ECC data only), the computational complexity and number of iterations become independent of the original data size.

Inventive Principle:
Principle #35Parameter changes

2Measurement precision

If entire memory sections are compared directly, then accuracy is ensured, but processor performance decreases due to time-consuming operations

Engineering Contradiction:
Improvecomparison accuracyVSAvoidprocessor performance
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent introduces ECC data as an intermediary representation of the memory section content. Instead of directly comparing or hashing large data sets, the system uses the compact ECC data as a mediator that preserves the essential difference-detection capability while enabling efficient processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses ECC data as a compact copy or representation of the memory section's error-correcting properties. This copy contains sufficient information to determine section identity without requiring access to or processing of the full original data, maintaining accuracy while improving performance.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8751898B2Utilizing error correcting code data associated with a region of memory
Publication Date: 2014.06.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8751898B2 patent drawing
  • US8751898B2 patent drawing
  • US8751898B2 patent drawing

AI summary

In a particular embodiment, a processor retrieves from memory, for each data block within the region of the memory, error correcting code (ECC) data corresponding to data stored within the data block. In one embodiment, a processor generates for each retrieved ECC data, a hash value by hashing the retrieved ECC data. In a particular embodiment, a processor combines hash values to generate a total hash value corresponding to a region of memory. In one embodiment, a processor uses a total hash value to compare a region of memory to other regions of the memory.