Memory Controller Merging Module for Bandwidth Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional system memory has limited bandwidth, allowing it to fulfill only a limited number of memory access requests within a given time period, leading to inefficiencies in processing large numbers of requests and wasted clock cycles due to requests for data portions smaller than the configured burst size.

Innovation Solution

Incorporating a merging module within the memory controller that identifies and merges multiple memory access requests, allowing them to be fulfilled as a single burst transaction, thereby improving memory access request fulfillment efficiency and conserving system memory bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If system memory fulfills memory access requests individually, then each request is processed accurately, but the number of requests fulfilled within a given time period is limited due to bandwidth constraints

Engineering Contradiction:
Improvenumber of memory access requests fulfilledVSAvoidclock cycles wasted
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple small memory access requests into a single larger burst transaction. The memory controller identifies multiple pending requests for different data portions and combines them into one consolidated request that can be fulfilled in a single burst, thereby reducing the total number of transactions and improving memory bandwidth utilization.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The memory controller performs preliminary analysis of pending memory access requests to identify those that can be merged. Before issuing requests to system memory, the controller pre-processes the request queue to combine compatible requests, ensuring that burst transactions are fully utilized and minimizing wasted clock cycles.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If system memory processes small data requests separately, then data accuracy is maintained, but burst size configuration is wasted and bandwidth is underutilized

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidwasted clock cycles
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent combines multiple small data requests into a single burst transaction that fully utilizes the configured burst size. By merging requests for different data portions into one consolidated transaction, the system maximizes memory bandwidth utilization and eliminates the waste associated with partial burst transactions.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If the memory controller issues multiple separate memory access requests, then all data access needs are met, but the fulfillment queue becomes congested and processing efficiency decreases

Engineering Contradiction:
Improvememory access request fulfillment efficiencyVSAvoidfulfillment queue management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The memory controller performs preliminary merging of requests in the fulfillment queue before issuing them to system memory. By pre-processing the queue to identify and combine compatible requests, the controller reduces the number of transactions that need to be managed, simplifying queue management while improving fulfillment efficiency.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9032162B1Systems and methods for providing memory controllers with memory access request merging capabilities
Publication Date: 2015.05.12 TAHOE RES LTD
  • US9032162B1 patent drawing
  • US9032162B1 patent drawing
  • US9032162B1 patent drawing

AI summary

An integrated circuit may include a memory controller serving as an interface between master processing modules and system memory. The master processing modules may provide memory access requests to the memory controller along with respective tag identifications. The memory controller may place the memory access requests in a queue for fulfillment. The memory controller may include a merging module that generates a memory access request to replace two or more memory access requests previously received from the master processing modules. The merging module may store information associated with the memory access requests that were merged and use the stored information to assign appropriate tag identifications to portions of data obtained from system memory when fulfilling the generated memory access request. The memory controller may include a verification module that can be used with test equipment to optimize the design of the master processing modules for improved memory access performance.