Memory Controller Request Queue Reordering Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face inefficiencies in managing memory requests due to various timing constraints of memory devices, such as limitations on simultaneous row and column requests within the same memory cycle.

Innovation Solution

A memory controller with a request queue and associated logic that efficiently manages requests by selecting both row and column requests based on timing constraints, updating the queue to maintain a time-ordered and compressed sequence, and using status bits to optimize request issuance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory requests are issued without reordering, then the request issuance is simple, but the memory device cannot efficiently utilize its bandwidth due to timing constraints

Engineering Contradiction:
Improvememory device bandwidth utilizationVSAvoidrequest queue management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-ordering memory requests in the request queue before issuance to the memory device. The memory controller reorders requests in advance based on timing constraints and memory device characteristics, ensuring that requests are optimally sequenced before being sent to the memory device. This preliminary reordering enables the memory device to efficiently utilize its bandwidth without encountering timing constraint violations during operation.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple row requests are issued simultaneously to different banks, then the throughput increases, but timing constraints are violated

Engineering Contradiction:
Improverequest throughputVSAvoidtiming constraint compliance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies feedback by using status bits associated with each request in the queue to track the timing state of memory operations. The memory controller monitors the completion status and timing of issued requests, and uses this feedback information to determine when subsequent requests can be safely issued. This feedback mechanism ensures that multiple row requests to different banks are issued in a manner that maintains timing constraint compliance while maximizing throughput.

Inventive Principle:
Principle #23Feedback

3Productivity

If requests are reordered based on timing constraints, then the memory operation efficiency improves, but the control logic complexity increases

Engineering Contradiction:
Improvememory operation efficiencyVSAvoidselection logic and queue update complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the request queue into multiple segments or groups based on timing characteristics and memory bank assignments. Each segment can be managed independently with its own status bits and selection logic. This segmentation reduces the complexity of the overall control logic by breaking down the large-scale reordering problem into smaller, more manageable sub-problems, while still achieving improved memory operation efficiency through coordinated segment management.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250077124A1Reordering memory controller
Publication Date: 2025.03.06 RAMBUS INC
  • US20250077124A1 patent drawing
  • US20250077124A1 patent drawing
  • US20250077124A1 patent drawing

AI summary

A memory controller includes a request queue and associated logic for efficiently managing the request queue based on various timing constraints of the memory device. A single request queue for the memory device stores read and write requests spanning different banks of the memory device. In each memory controller cycle, selection logic may select both a row request and a column request (relating to a different bank than the row request) for issuing to the memory device based on a set of timing status bits. Following issuance of requests, the memory controller updates the queue to maintain the queued requests in a time-ordered, compressed sequence. The memory controller furthermore updates the timing status bits that are used by the selection logic to select requests from the queue based on a history of past memory requests.