Memory Interface Transfer Control for Partial and Misaligned Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory controllers in programmable logic devices (PLDs) are not optimal for transferring data that is not an integer multiple of the memory block size or that does not align with memory address boundaries, leading to inefficiencies in data transfer operations.

Innovation Solution

A memory controller system that includes a configurable structure to handle data transfers by determining the number of memory access cycles and time slots based on the data size and memory block size, allowing for partial block transfers and masking of unnecessary memory locations during read or write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-width data port is used in the memory controller, then the device structure is simple, but it cannot efficiently handle data transfers that are not integer multiples of the block size or do not align with memory address boundaries

Engineering Contradiction:
Improvedata transfer flexibilityVSAvoidmemory controller structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The data transfer process is segmented into multiple memory access cycles, where each cycle transfers a portion of the total data. The controller divides the data transfer task into discrete time slots (T) and bit groups (B), allowing flexible handling of arbitrary data sizes by adjusting the number of cycles (M) rather than changing the fundamental port structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory controller dynamically determines the number of memory access cycles (M) based on the data size to be transferred and the memory block size. This dynamic adjustment allows the system to adapt to different data transfer requirements while maintaining a fixed-width data port structure, resolving the contradiction between adaptability and structural simplicity.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the memory controller transfers data in fixed block sizes, then the transfer operation is simple, but it cannot handle partial block transfers efficiently

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidtransfer control mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The memory controller implements partial block transfers by allowing the data transfer quantity to be less than the full memory block size. The controller calculates the appropriate number of time slots to use within each memory access cycle, enabling efficient partial transfers without requiring complex additional hardware by simply controlling the transfer duration and scope.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system changes the parameter of data transfer quantity from fixed block size to variable size based on actual needs. By dynamically adjusting the number of memory access cycles (M) and the subset of time slots used within each cycle, the controller achieves efficient partial block transfers while maintaining relatively simple operational mechanisms.

Inventive Principle:
Principle #35Parameter changes

3Loss of energy

If the memory controller accesses entire memory blocks, then the memory access operation is simple, but it wastes bandwidth when transferring smaller amounts of data

Engineering Contradiction:
Improvebandwidth utilizationVSAvoidaccess control logic
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The memory controller extracts and transfers only the necessary portion of data from each memory block, rather than accessing entire blocks. By calculating the precise number of time slots and cycles needed based on the data size to be transferred, the controller extracts only the required data elements, improving bandwidth utilization without requiring overly complex access control logic.

Inventive Principle:
Principle #2Taking out (Extraction)

4Adaptability or versatility

If the memory controller uses alignment-based access, then the access operation is simple, but it cannot handle misaligned data transfers

Engineering Contradiction:
Improveaddress boundary handlingVSAvoidaddress calculation logic
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory controller dynamically calculates the number of memory access cycles and time slots needed based on the specific data size and starting address. This dynamic approach allows the controller to handle misaligned transfers by adjusting the transfer parameters in real-time, achieving address boundary flexibility without requiring excessively complex address calculation logic beyond basic arithmetic operations.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8307182B1Method and apparatus for transferring data to or from a memory
Publication Date: 2012.11.06 XILINX INC
  • US8307182B1 patent drawing
  • US8307182B1 patent drawing
  • US8307182B1 patent drawing

AI summary

An embodiment of a technique to transfer data includes: operating a memory interface using memory access cycles that each include T successive time slots each provided for transfer of B bits of data, where T and B are positive integers; selecting one of first or second predetermined integers as one of T or B; and transferring a quantity of data Q between the memory interface and another interface. The transferring includes: automatically determining a value of M memory access cycles as a function of the one of T or B; causing a data transfer sequence on the memory interface that includes M successive memory access cycles and thus M·T time slots; automatically determining a subset of the M·T time slots as a function of the one of T or B; and transferring the quantity of data Q through the memory interface during the subset of time slots.