Memory Controller CRC Recombination for DMA Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data integrity methods in storage systems face challenges due to software and hardware issues, particularly in Direct Memory Access (DMA) technology, where data corruption can occur during data transfer, and CRC protection is resource-intensive and has vulnerabilities.

Innovation Solution

A memory controller segments and recombines data blocks, calculates new CRC values for logic blocks, and compares combined CRC values to verify data integrity during write and read operations, minimizing redundant calculations and ensuring end-to-end protection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If CRC protection is implemented to verify data integrity, then data reliability is improved, but processing resources are significantly consumed

Engineering Contradiction:
Improvedata integrityVSAvoidprocessing resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent calculates CRC values in advance during the write operation before data is transferred to storage. The memory controller computes CRC for each data block when writing data, storing both the data and its CRC value. This preliminary calculation approach ensures that verification can be performed efficiently later without consuming excessive processing resources during read operations.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional CRC verification methods are used, then data corruption can be detected, but there are gaps in the data path creating vulnerability windows

Engineering Contradiction:
Improvedata corruption detectionVSAvoiddata integrity during transfer
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The system calculates and attaches CRC values to data blocks before they are transferred through the data path. By performing the CRC calculation in advance during the write operation and storing it with the data, the patent ensures continuous protection throughout the data lifecycle, eliminating vulnerability windows during transfer and processing.

Inventive Principle:
Principle #10Preliminary action

3Speed

If DMA technology is used for data transfer, then transfer speed is improved, but software-based memory protection becomes ineffective and data corruption risk increases

Engineering Contradiction:
Improvedata transfer speedVSAvoidmemory protection
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces CRC values as an intermediary mechanism that works alongside DMA technology. The memory controller calculates CRC values for data blocks before DMA transfer and stores them with the data. During read operations, the stored CRC values are used to verify data integrity after DMA transfer, providing a protective layer that is independent of the high-speed DMA transfer mechanism and effective even when traditional software-based memory protection is bypassed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12481550B2Device and methods for managing the data integrity of read and write operations
Publication Date: 2025.11.25 LEMON INC(GB)
  • US12481550B2 patent drawing
  • US12481550B2 patent drawing
  • US12481550B2 patent drawing

AI summary

A computing device for verifying data integrity is provided, comprising a memory controller configured to receive a plurality of original data blocks. Each original data block has an associated initial CRC value. The memory controller then segments and recombines the received data blocks into logic blocks, and calculates a new logic block CRC value for each logic block. The logic blocks are transmitted with their respective new logic block CRC values to a storage device, and the logic blocks are written to non-volatile memory of the storage device in a write operation. After the write operation, a combined CRC value is calculated for the logic blocks and a combined CRC value for the original data blocks, and compare the combined CRC values. The memory controller determines whether the combined CRC values match. When they match, the memory controller generates a verification response verifying the integrity of the write operation.