Memory Controller Prefetch Kill Signal Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multiprocessor systems with shared memory, low-priority speculative prefetch requests can significantly delay high-priority real requests when accessing the same memory bank but with different addresses, leading to increased latency due to the lower priority of prefetch requests competing with real read and write accesses.

Innovation Solution

A real request from a CPU to the same memory bank as a prior prefetch request but to a different address is transmitted along with a kill signal to terminate the existing prefetch request, allowing the real request to proceed without waiting for the prefetch request to complete, and the kill signal prevents any acknowledgement confusion if the prefetch request finishes after the real request is sent.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If prefetch requests are allowed to compete with real requests in the per-bank logic, then memory bandwidth utilization is improved through speculative data loading, but high-priority real requests experience increased latency due to priority-based arbitration

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidreal request latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary speculative prefetch operations to load data into the memory bank before it is actually needed by real requests. The per-CPU logic anticipates future memory access patterns and pre-fetches data in the background, allowing real requests to be served faster when they arrive, thus improving overall memory bandwidth utilization without significantly impacting real request latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The arbitration mechanism dynamically adjusts priority based on request type and system state. Prefetch requests operate with lower priority during normal operation to allow real requests to proceed, but the system can dynamically escalate prefetch priority when memory bandwidth is underutilized or when prefetch data is highly likely to be needed soon, creating a flexible balance between the two competing objectives.

Inventive Principle:
Principle #15Dynamics

2Reliability

If prefetch requests are given lowest priority in arbitration, then real requests are served first ensuring timely access, but prefetch requests take much longer to complete increasing overall memory access time

Engineering Contradiction:
Improvereal request service guaranteeVSAvoidprefetch request completion time
Core Design Contradiction:
ReliabilityVSDuration of action of stationary object

Solution Approach 1:

The prefetch mechanism is designed to be self-service and non-blocking. Prefetch requests operate independently in the per-bank logic without blocking real requests, and their extended completion time does not impact system performance because they are speculative operations. The system accepts longer prefetch completion times as a trade-off for ensuring real requests are always served promptly, and the prefetched data is automatically available when needed without requiring active management.

Inventive Principle:
Principle #25Self-service

3Reliability

If a real request waits for a pending prefetch request to complete before accessing the same memory bank, then resource conflicts are avoided, but the real request experiences unnecessary delay reducing system throughput

Engineering Contradiction:
Improvememory access correctnessVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The per-bank logic acts as an intermediary buffer between the CPU and memory array. It allows multiple requests including prefetch and real requests to be processed in parallel by maintaining separate request queues and using arbitration logic to selectively service requests. This intermediary structure eliminates the need for real requests to wait for prefetch completion, as the per-bank logic manages resource conflicts internally, thereby maintaining both access correctness and high system throughput.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8683133B2Termination of prefetch requests in shared memory controller
Publication Date: 2014.03.25 TEXAS INSTRUMENTS INC
  • US8683133B2 patent drawing
  • US8683133B2 patent drawing
  • US8683133B2 patent drawing

AI summary

A real request from a CPU to the same memory bank as a prior prefetch request is transmitted to the per-memory bank logic along with a kill signal to terminate the prefetch request. This avoids waiting for a prefetch request to complete before sending the real request to the same memory bank. The kill signal gates off any acknowledgement of completion of the prefetch request. This invention reduces the latency for completion of a high priority real request when a low priority speculative request to a different address in the same memory bank has already been dispatched.