Memory Controller Prefetching for Row Address Timing Constraints

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing systems with multiple processing cores experience significant 'dead time' due to memory timing constraints, particularly when consecutive memory requests target different pages, leading to inefficiencies in system memory response.

Innovation Solution

A memory controller that forces prefetches by maintaining the same row address and incrementing the column address, allowing read requests to be serviced from a local cache, thereby reducing idle time and adhering to memory timing constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If consecutive memory requests target different pages, then memory address diversity is improved, but memory device idleness increases due to row address change timing constraints

Engineering Contradiction:
Improvememory address diversityVSAvoidmemory device idleness
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The memory controller performs preliminary actions by detecting upcoming row address changes before they occur and initiating prefetch operations in advance. When the controller predicts that a row address change is imminent based on the memory request queue, it prefetches data from the current row before the actual row address change happens, thereby eliminating idle time caused by timing constraints.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention applies beforehand cushioning by creating a buffer of prefetched data that compensates for the upcoming row address change timing constraint. The memory controller monitors the row address change timing constraint and prefetches data beforehand to cushion against the inevitable idle period that would occur when the row address must change, ensuring continuous data availability for memory devices.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Manufacturing precision

If the memory controller waits for timing constraints to be satisfied, then memory timing accuracy is improved, but system productivity decreases due to dead time

Engineering Contradiction:
Improvememory timing accuracyVSAvoidsystem productivity
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The memory controller maintains continuity of useful action by continuously prefetching data in the background while monitoring timing constraints. Instead of stopping all operations to wait for timing constraints to be satisfied, the controller continues to service memory requests and simultaneously performs prefetch operations, ensuring that useful actions continue without interruption and eliminating dead time while maintaining timing accuracy.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The controller performs preliminary prefetch actions during periods when timing constraints are not yet critical, preparing data in advance so that when timing constraints become active, the system can maintain productivity without waiting. This preliminary action allows the system to satisfy timing requirements while keeping memory devices continuously productive.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the memory controller services requests in strict order, then request processing reliability is improved, but memory utilization decreases due to idle periods

Engineering Contradiction:
Improverequest processing reliabilityVSAvoidmemory utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The memory controller performs preliminary prefetch operations for future requests while maintaining the strict ordering of request processing. By detecting patterns in the request queue and prefetching data in advance of when it will be needed, the controller ensures that data is ready when required for reliable processing, while simultaneously improving memory utilization by keeping memory devices busy with prefetch operations during what would otherwise be idle periods.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces an intermediary prefetch buffer that decouples the strict ordering requirement from memory device utilization. The prefetch buffer acts as an intermediary layer that prepares data in advance according to predicted needs, allowing the memory controller to maintain reliable ordered processing while the memory devices remain continuously utilized through background prefetch operations that don't interfere with the ordered request stream.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10268585B2Memory controller that forces prefetches in response to a present row address change timing constraint
Publication Date: 2019.04.23 INTEL CORP
  • US10268585B2 patent drawing
  • US10268585B2 patent drawing
  • US10268585B2 patent drawing

AI summary

An apparatus having a memory controller is described. The memory controller includes prefetch circuitry to prefetch, from a memory, data having a same row address in response to the memory controller's servicing of its request stream being stalled because of a timing constraint that prevents a change in row address. The memory controller also includes a cache to cache the prefetched data. The memory controller also includes circuitry to compare addresses of read requests in the memory controller's request stream against respective addresses of the prefetched data in the cache and to service those of the requests in the memory controller's request stream having a matching address with corresponding ones of the prefetched data in the cache.