Programmable Memory Controller Bandwidth Adaptation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programmable logic devices (PLDs) lack an efficient memory controller that can dynamically interact with various memory devices and adapt to changing conditions, leading to suboptimal bandwidth utilization and operational efficiency in systems relying on dynamic random access memory (DRAM).

Innovation Solution

A programmable memory controller is implemented within a PLD, featuring a user interface with a command register and data FIFO memories, a core controller, and a physical layer that can initiate operations in memory devices, select appropriate state machines, and provide debug interfaces for dynamic configuration and performance monitoring.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a memory controller is implemented within a PLD to enable dynamic interaction with memory devices, then adaptability and bandwidth utilization are improved, but device complexity increases

Engineering Contradiction:
ImproveadaptabilityVSAvoiddevice complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The memory controller is segmented into distinct functional modules: a command register for receiving commands, multiple data FIFO memories for data buffering, a core controller for generating control signals, and a physical layer for signal transmission. This segmentation allows each module to be optimized independently while working together to provide adaptable memory operations within the PLD.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The memory controller is designed with multi-functionality to support various memory device types and operations (read, write, refresh) through a unified architecture. The core controller can generate appropriate control signals for different memory operations, and the physical layer can interface with different memory devices, making the controller universally applicable to various memory technologies.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Productivity

If multiple data FIFO memories are used to store data from memory operations, then bandwidth utilization is improved, but device complexity increases

Engineering Contradiction:
Improvebandwidth utilizationVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The data storage function is segmented into multiple separate FIFO memories, each capable of buffering data from different memory operations or memory devices. This allows parallel data buffering and reduces congestion, improving overall bandwidth utilization while maintaining manageable complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The FIFO memories are pre-configured with specific capacities and addressing schemes to handle data flow patterns before operations begin. This preliminary configuration allows the system to optimize data routing and buffering strategies in advance, improving bandwidth utilization without requiring complex runtime decisions.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a core controller generates control signals to initiate memory operations, then operational efficiency is improved, but device complexity increases

Engineering Contradiction:
Improveoperational efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The core controller receives feedback from the command register about the type of operation to be performed and adjusts its control signal generation accordingly. This feedback mechanism allows the core controller to efficiently generate appropriate control signals for different memory operations without requiring complex hardwired logic for each operation type.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The core controller dynamically adjusts its operation based on commands received from the command register. Rather than using static hardwired logic, the controller can adapt its control signal generation in real-time based on the current memory operation requirements, improving operational efficiency while maintaining flexibility.

Inventive Principle:
Principle #15Dynamics

4Ease of operation

If the physical layer provides interfaces for debug and configuration, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improveease of operationVSAvoiddevice complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The physical layer serves as an intermediary between the internal controller components and external debug/configuration interfaces. This intermediary layer provides standardized interfaces for debugging and configuration operations, making the system easier to operate while isolating the complexity of the internal controller architecture from the user.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8099564B1Programmable memory controller
Publication Date: 2012.01.17 XILINX INC
  • US8099564B1 patent drawing
  • US8099564B1 patent drawing
  • US8099564B1 patent drawing

AI summary

A memory controller implemented within a programmable integrated circuit can include a user interface having a command register and a plurality of data First-In-First-Out (FIFO) memories, wherein the command register can receive an address of a data FIFO memory of the plurality of data FIFO memories. A core controller coupled to the user interface can, responsive to an instruction from the user interface, generate control signals that initiate an operation within a memory device coupled to the core controller. A physical layer coupling with the core controller, the user interface, and the memory device can, responsive to a read operation of the memory device, store data received from the memory device within the selected data FIFO memory according to the address received in the command register.