Demand Load Latency Reduction via Dynamic Priority in Cache Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processing systems, demand loads often experience increased latency due to prefetching, where they must wait for cache line fills initiated by prefetch loads, even if the cache line is already being filled, leading to potential longer latency than without prefetching.

Innovation Solution

A processor system with a cache memory and a memory bus that allows parallel forwarding of a cache line portion to an instruction execution unit, enabling the identification and prioritization of data requests, particularly prioritizing demand loads over prefetch loads to reduce latency by selecting ready entries from queues based on age or priority policies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If prefetching is implemented to load cache lines prior to demand loads, then cache hit rate is improved, but demand load latency increases because demand loads must wait for prefetch cache line fills to complete

Engineering Contradiction:
Improvecache hit rateVSAvoiddemand load latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action through prefetching by loading cache lines into the cache before they are actually needed by demand loads. The prefetch load unit proactively issues cache line fill requests based on predicted future memory access patterns, so that when demand loads occur, the data is already in the cache or being filled, improving cache hit rate and reducing memory access latency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies dynamics through the load queue selection mechanism that dynamically prioritizes demand loads over prefetch loads based on current system state. The load queue controller monitors the status of cache line fills and dynamically selects which loads to service next, allowing demand loads to jump ahead of prefetch loads when the cache line is already being filled, thus reducing demand load latency while maintaining the benefits of prefetching.

Inventive Principle:
Principle #15Dynamics

2Stability of the object's composition

If demand loads are queued behind prefetch loads waiting for cache line fills, then cache memory consistency is maintained, but processing throughput decreases

Engineering Contradiction:
Improvecache memory consistencyVSAvoidprocessing throughput
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent segments the load processing into two independent queues: a prefetch load queue and a demand load queue. This segmentation allows the system to independently manage and prioritize different types of loads. The demand load queue can be serviced separately from the prefetch load queue, enabling demand loads to be processed without being blocked by prefetch operations, thereby improving processing throughput while maintaining cache consistency through separate management paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the priority parameter of load requests dynamically based on their type and current cache fill status. Demand loads are assigned higher priority than prefetch loads when the cache line is already being filled, as indicated by the patent's logic for selecting loads from the load queue. This parameter change enables the system to optimize processing throughput by servicing demand loads first in appropriate scenarios, while still maintaining cache memory consistency through the underlying fill mechanism.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If prefetch loads are always serviced first, then cache line fill efficiency is improved, but demand loads experience longer wait times even when ready

Engineering Contradiction:
Improvecache line fill efficiencyVSAvoiddemand load wait time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic priority adjustment in the load queue selection logic. Instead of statically prioritizing prefetch loads, the system dynamically evaluates the current state of cache line fills and the readiness of demand loads. When a cache line is already being filled (indicated by an active MAB entry), the load queue controller dynamically switches priority to service demand loads first, reducing their wait time. This dynamic approach maintains cache line fill efficiency while preventing excessive demand load latency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the service priority parameter of load requests based on real-time system state. The load queue controller monitors parameters such as MAB entry status, cache fill progress, and load readiness. Based on these parameters, the system adjusts the priority ordering, allowing ready demand loads to be serviced before completing prefetch fills in certain scenarios. This parameter-based dynamic scheduling optimizes both cache line fill efficiency and demand load wait times by adapting to current conditions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9213640B2Promoting transactions hitting critical beat of cache line load requests
Publication Date: 2015.12.15 ADVANCED MICRO DEVICES INC
  • US9213640B2 patent drawing
  • US9213640B2 patent drawing
  • US9213640B2 patent drawing

AI summary

A processor includes a cache memory, a first core including an instruction execution unit, and a memory bus coupling the cache memory to the first core. The memory bus is operable to receive a first portion of a cache line of data for the cache memory, the first core is operable to identify a plurality of data requests targeting the cache line and the first portion and select one of the identified plurality of data requests for execution, and the memory bus is operable to forward the first portion to the instruction execution unit and to the cache memory in parallel.