Cache Agent Eviction Priority Management for SoC Interoperability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing System-on-Chip (SoC) technologies face compatibility issues due to differing prioritization policies for eviction and probe operations, leading to potential concurrency problems and data hazards when components with different configurations interoperate.

Innovation Solution

Implementing an agent with circuitry that enables two types of eviction messages at different priorities: a low-priority 'Evict' message and a high-priority 'InclEvict' message, allowing for interoperability of agents with varying prioritization policies by prioritizing eviction operations and probe operations accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If agents use different prioritization policies for eviction and probe operations, then each agent can optimize for its specific cache coherence requirements, but compatibility issues and concurrency problems arise when agents with different configurations interoperate

Engineering Contradiction:
ImproveCache coherence policy adaptabilityVSAvoidInteroperability reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a parameter change mechanism where eviction messages carry priority indicators (high priority or low priority) that can be dynamically adjusted based on the receiving agent's capabilities. This allows the system to adapt the behavior of eviction operations to match different cache coherence policies without requiring agents to implement all possible policy combinations, thus resolving the contradiction between adaptability and reliability.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent employs an intermediary mechanism in the form of priority conversion logic that acts as a mediator between agents with different prioritization policies. When an agent receives an eviction message with a priority level it doesn't natively support, the intermediary converts the message to a compatible priority level, enabling reliable interoperability while maintaining the adaptability of diverse cache coherence policies.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If high-priority eviction operations are implemented to prevent data hazards, then data safety is improved, but the complexity of managing multiple priority levels and interruptible operations increases

Engineering Contradiction:
ImproveData safetyVSAvoidEviction operation management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the eviction operation into distinct priority levels (high priority and low priority) with clearly defined behaviors. High-priority evictions are interruptible by probes, while low-priority evictions are not. This segmentation simplifies the management complexity by providing clear rules for each level rather than requiring complex arbitration logic for all possible scenarios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic priority assignment where the priority of an eviction operation can change based on the receiving agent's capabilities and the current operational context. This dynamic approach allows the system to maintain data safety through high-priority evictions when needed while avoiding unnecessary complexity by using low-priority evictions when safe, thus managing complexity through intelligent adaptation rather than rigid fixed rules.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250181507A1Eviction operations based on eviction message types of different priorities
Publication Date: 2025.06.05 SIFIVE INC
  • US20250181507A1 patent drawing
  • US20250181507A1 patent drawing
  • US20250181507A1 patent drawing

AI summary

An agent may be configured to invoke a first eviction operation that is interruptible by probe operations when receiving a first type of eviction message and invoke a second eviction operation in which probe operations are interruptible by the second eviction operation when receiving a second type of eviction message. In some implementations, the agent may maintain a data storage that is inclusive of at least one of unique or dirty cache blocks in a cache maintained by an agent that transmits the second type of eviction message. In some implementations, the agent may prevent a cache block from transitioning from a modified state to an exclusive state when the agent invokes the second eviction operation to evict the cache block. In some implementations, the agent may convert from the second eviction operation to the first eviction operation when receiving the second type of eviction message.