Memory Controller In-Line Processing With Unified Data-Metadata Blocks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory storage and processing techniques face inefficiencies in data processing, bandwidth, and power consumption, particularly in the pre-processing and post-processing stages of data storage and retrieval.

Innovation Solution

A memory controller that performs in-line data processing, including cryptography and error correction code computation, while efficiently organizing data and metadata in memory, utilizing specialized cache mechanisms to optimize memory access operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is encrypted and ECC is computed before storage (pre-processing), then data security and integrity are improved, but processing time and power consumption increase

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

Solution Approach 1:

The patent applies preliminary action by computing ECC codes and performing encryption before data is written to memory. The memory controller calculates ECC for data blocks during the write operation, and cryptographic circuitry encrypts data before storage, so that when data is read back, verification and decryption can proceed faster since the heavy computational lifting was already done during writing.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If separate memory operations are used for data and metadata, then data organization is simplified, but memory access operations increase

Engineering Contradiction:
Improvedata organizationVSAvoidmemory access operations
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent merges data and metadata into a single unified memory structure. Each memory block contains both the data block and its associated metadata (ECC codes, cryptographic tags, length indicators) stored together in the same memory location. This allows the memory controller to retrieve both data and metadata in a single memory access operation, eliminating the need for separate read operations and significantly improving access efficiency.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If traditional separate processing of data and metadata is used, then processing logic is simpler, but bandwidth efficiency decreases

Engineering Contradiction:
Improveprocessing logicVSAvoidbandwidth efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements continuous useful action by processing data and metadata together throughout the memory access pipeline. The memory controller simultaneously retrieves data blocks and their associated metadata in parallel, performs ECC verification and cryptographic operations on both together, and maintains continuous data flow through the system. This eliminates idle processing stages and maximizes bandwidth utilization by ensuring that every memory access operation contributes to both data and metadata processing.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12346585B2Memory controller to perform in-line data processing and efficiently organize data and associated metadata in memory
Publication Date: 2025.07.01 XILINX INC
  • US12346585B2 patent drawing
  • US12346585B2 patent drawing
  • US12346585B2 patent drawing

AI summary

Embodiments herein describe a memory controller that performs in-line data processing (e.g., cryptography and error correction) and efficiently organizes data and associated metadata in memory. The memory controller generates a data block that includes a processed (e.g., encrypted) dataset and associated metadata (e.g., cryptographic metadata and ECC), and stores the data block in a block of memory (i.e., rather than storing the metadata separately), to minimize a number of access operations. The memory controller may access memory in segments (e.g., BL16 operations) that are smaller than the data blocks. For linear accesses, the memory controller may cache a portion of a data block until a subsequent access operation.