Memory Controller Buffer Selection Logic for Dynamic Port Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-port memory controllers, write buffers are not utilized evenly due to varying demand from different devices, leading to inefficiencies as some ports experience low memory access while others have high demand, resulting in underutilization of buffers and potential delays in writing data to memory.

Innovation Solution

Implementing buffer selection logic that assigns priority to each port and buffer dynamically, allowing write requests to be stored in the highest priority available buffer, and using buffer arbitration logic to manage write and read requests, ensuring efficient data storage and retrieval by merging write data within cache lines and managing coherence hits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If each port has a dedicated write buffer, then write requests from each port can be absorbed without immediate writing to memory, but buffers are not utilized evenly due to varying demand from different ports

Engineering Contradiction:
Improvewrite request handling capabilityVSAvoidbuffer utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements a universal buffer pool where any port can access any buffer, rather than dedicating specific buffers to specific ports. The buffer selection logic dynamically assigns available buffers to ports with pending write requests, allowing buffers to serve multiple ports based on current demand patterns. This resolves the contradiction by making buffers multi-functional resources that can adapt to varying port demands.

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

Solution Approach 2:

The patent introduces dynamic buffer assignment through buffer selection logic that continuously monitors buffer availability and port demand. When a port has a high demand, it can utilize more buffers; when demand is low, buffers are released for other ports. This dynamic allocation ensures both reliable write request handling and efficient buffer utilization across varying workloads.

Inventive Principle:
Principle #15Dynamics

2Productivity

If one port has high demand for memory access, then that port can maintain data in buffers longer, but other ports with low demand experience underutilization of buffers

Engineering Contradiction:
Improvememory access throughput for high-demand portVSAvoidwait time for low-demand ports
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements a buffer recovery mechanism where buffers are continuously monitored and released back to the pool when no longer needed by high-demand ports. The buffer selection logic identifies when a high-demand port no longer needs specific buffers and recovers them for allocation to low-demand ports. This prevents buffer hoarding and ensures timely availability of buffers for all ports.

Inventive Principle:
Principle #34Discarding and recovering

Solution Approach 2:

The buffer selection logic implements feedback by monitoring both buffer usage status and port demand patterns. When a high-demand port's buffer usage decreases or its demand fluctuates, the system detects this through feedback signals and reallocates buffers to low-demand ports. This feedback mechanism balances buffer distribution dynamically, reducing wait times for all ports.

Inventive Principle:
Principle #23Feedback

3Reliability

If write data is immediately written to memory, then memory consistency is maintained, but ports with high demand experience delays due to memory write timing constraints

Engineering Contradiction:
Improvememory data consistencyVSAvoidwrite request completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by allowing write requests to be accepted and staged in the buffer pool before actual memory writing occurs. The buffer selection logic prepares buffer assignments in advance, and multiple ports can have their write requests acknowledged and staged simultaneously. This preliminary staging reduces the apparent wait time for ports while maintaining memory consistency through controlled write-back mechanisms.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The buffer pool acts as an intermediary between ports and memory, decoupling the immediate write request acceptance from the actual memory write timing. High-demand ports can continue generating write requests that are absorbed by the buffer intermediary, while the memory interface writes data at its own pace. This intermediary layer masks the memory write timing constraints from the ports, reducing perceived delays while maintaining data consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9213545B2Storing data in any of a plurality of buffers in a memory controller
Publication Date: 2015.12.15 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9213545B2 patent drawing
  • US9213545B2 patent drawing
  • US9213545B2 patent drawing

AI summary

A memory controller containing one or more ports coupled to a buffer selection logic and a plurality of buffers. Each buffer is configured to store write data associated with a write request and each buffer is also coupled to the buffer selection logic. The buffer selection logic is configured to store write data associated with a write request from at least one of the ports in any of the buffers based on a priority of the buffers for each one of the ports.