Cache Control Circuit Drop Allocate Policy for False Dependencies

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems face inefficiencies due to false dependencies, which cause latency and potential stalling in data processing systems, especially for isochronous workloads, as they wait for older requests to complete even when they are false dependencies, leading to increased latency and system inefficiency.

Innovation Solution

Implementing a 'drop allocate' policy in the cache that allows the cache to detect false dependencies on-the-fly and drop the allocation of cache lines for older requests, enabling younger requests to proceed without waiting for the resolution of false dependencies, thereby reducing latency and improving Quality of Service (QoS).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the cache checks for dependencies between all memory access requests to ensure correctness, then reliability is improved, but latency increases due to false dependencies causing unnecessary waiting

Engineering Contradiction:
Improvememory access correctnessVSAvoidrequest latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by checking dependency types in advance before allocating cache lines. The control circuit classifies dependencies as true or false during the request staging phase, allowing the system to prepare appropriate handling strategies before actual cache allocation occurs. This prevents younger requests from waiting on false dependencies while maintaining correctness for true dependencies.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of dependency classification by introducing a binary distinction between true and false dependencies. The control circuit modifies the cache allocation behavior based on this parameter change: for false dependencies, it allows younger requests to proceed without waiting, while for true dependencies, it maintains the traditional waiting behavior. This parameter-based differentiation resolves the contradiction between reliability and latency.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If the cache maintains strict ordering of memory requests to preserve program semantics, then reliability is improved, but productivity decreases due to stalling on false dependencies

Engineering Contradiction:
Improveprogram semantics preservationVSAvoidrequest processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The control circuit performs preliminary classification of dependency types before cache line allocation. By identifying false dependencies in advance, the system can selectively relax ordering constraints for these cases while maintaining strict ordering for true dependencies. This preliminary action enables the cache to preserve program semantics where necessary while avoiding unnecessary stalls that reduce productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a dependency type parameter that controls ordering behavior. When the parameter indicates a false dependency, the cache modifies its ordering behavior to allow out-of-order processing of younger requests. When the parameter indicates a true dependency, traditional in-order processing is maintained. This parameter-driven approach preserves program semantics for critical cases while improving overall throughput.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If the cache allocates cache lines to older requests to ensure proper data availability, then reliability is improved, but loss of time increases as younger requests wait for older request completion

Engineering Contradiction:
Improvedata availabilityVSAvoidrequest completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The control circuit performs preliminary dependency analysis before cache line allocation decisions. By identifying false dependencies in advance, the system can allocate cache lines to younger requests immediately without waiting for older request completion, while still ensuring data availability for true dependencies. This preliminary action eliminates unnecessary waiting time while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the cache allocation parameter based on dependency type. For false dependencies, the allocation parameter is modified to allow younger requests to proceed independently of older request completion status. For true dependencies, traditional allocation behavior is maintained. This parameter-based allocation strategy reduces completion time for non-critical requests while preserving data availability guarantees where needed.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If the cache implements comprehensive dependency checking to avoid program failures, then reliability is improved, but device complexity increases due to additional control logic

Engineering Contradiction:
Improveprogram execution correctnessVSAvoidcontrol circuit complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The control circuit implements preliminary dependency classification using a streamlined logic that distinguishes true from false dependencies. Rather than implementing complex comprehensive checking for all possible dependency scenarios, the circuit performs a focused preliminary analysis that identifies the critical distinction needed to resolve false dependencies. This preliminary action maintains reliability while limiting complexity growth.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent simplifies control circuit complexity by changing the dependency analysis parameter from a comprehensive multi-state classification to a binary true/false distinction. This parameter simplification allows the control circuit to implement reliable dependency checking with reduced logic complexity, as it only needs to determine whether a dependency is true or false rather than analyzing multiple dependency dimensions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11755477B2Cache allocation policy
Publication Date: 2023.09.12 ADVANCED MICRO DEVICES INC
  • US11755477B2 patent drawing
  • US11755477B2 patent drawing
  • US11755477B2 patent drawing

AI summary

A cache includes an upstream port, a downstream port, a cache memory, and a control circuit. The control circuit temporarily stores memory access requests received from the upstream port, and checks for dependencies for a new memory access request with older memory access requests temporarily stored therein. If one of the older memory access requests creates a false dependency with the new memory access request, the control circuit drops an allocation of a cache line to the cache memory for the older memory access request while continuing to process the new memory access request.