Auto-precharge Management in Memory Controller

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory management techniques face inefficiencies in managing auto-precharge commands, particularly when memory access patterns are linear, leading to performance degradation due to premature closure and reopening of memory rows, especially when the number of transactions exceeds the queue size or when access history is not indicative of future access patterns.

Innovation Solution

A system comprising multiple masters, a queue, and a controller that issues auto-precharge commands based on the presence of subsequent transactions in the queue, preventing premature closure by keeping rows open if subsequent transactions from the same master access the same row and closing rows if subsequent transactions access different rows, with the option to receive hints from masters to maintain row openness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If auto-precharge command is issued to close a row after completion of memory access, then memory bank/row is prepared for accessing different row, but performance degradation occurs when memory access is linear due to premature closure and reopening of rows

Engineering Contradiction:
Improvememory access correctnessVSAvoidmemory access efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The controller examines the command queue in advance to determine whether subsequent commands will access the same row. If the queue is empty or contains commands for different rows, the controller issues an auto-precharge command. This preliminary inspection prevents premature row closure while maintaining memory access correctness.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If history of memory bank accesses is used to determine whether auto-precharge should be issued, then decision-making is enabled, but the technique is very process intensive and past access may not be a good indication of future memory accesses

Engineering Contradiction:
Improveauto-precharge decision capabilityVSAvoidprocessing complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The invention extracts only the necessary information from the command queue - specifically, whether there are pending commands for the same row. This selective extraction avoids the complexity of analyzing full access history while providing sufficient information for auto-precharge decisions.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If current content in the command queue is leveraged to determine auto-precharge, then future memory accesses can be predicted, but the technique falls short when the number of commands increases surpassing the queue size

Engineering Contradiction:
Improvefuture access prediction accuracyVSAvoidhandling capability for large command volumes
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The controller performs a partial inspection of the command queue, checking only up to the point needed to determine if subsequent commands access the same row. This partial action provides sufficient prediction accuracy without requiring the controller to process the entire queue, thus handling large command volumes effectively.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10991417B1Auto-precharge management in a controller
Publication Date: 2021.04.27 XILINX INC
  • US10991417B1 patent drawing
  • US10991417B1 patent drawing
  • US10991417B1 patent drawing

AI summary

A system includes a queue and a controller. The queue receives a transactions from masters to access a memory component. The memory component includes a plurality of rows. The controller issues a command to access a row of the plurality of rows in response to receiving a first issued transaction. The first issued transaction is issued by a first master. The controller is configured to prevent issuing an auto-precharge command to keep the row associated with the first issued transaction open if a subsequent transaction in the queue from the first master accesses a same row as the first transaction. The controller is configured to prevent issuing the auto-precharge command to keep the row associated with the first issued transaction open if the controller receives data associated with keeping the row associated with the first issued transaction open.