Proxy Cache Conditional Allocation for Coherent Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems face challenges in translating non-coherent transactions into coherent transactions for communication between non-coherent and coherent subsystems, leading to inefficiencies and increased silicon area usage due to the need for a single unit to perform multiple coherence functions.

Innovation Solution

A bridge system that translates non-coherent transactions into coherent transactions, buffers data coherently in a proxy cache, and classifies each coherent transaction based on attributes such as read/write, cache hit/miss, and temporal order, allowing dynamic allocation and deallocation policies to optimize cache usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single unit performs multiple coherence functions to translate non-coherent transactions into coherent transactions, then translation capability is improved, but silicon area usage increases

Engineering Contradiction:
Improvetranslation capabilityVSAvoidsilicon area usage
Core Design Contradiction:
Adaptability or versatilityVSArea of stationary object

Solution Approach 1:

The bridge is divided into multiple specialized units: a first bridge unit for receiving non-coherent transactions, a second bridge unit for issuing coherent transactions, and a proxy cache for buffering data. This segmentation allows each unit to be optimized for its specific function, reducing the overall silicon area compared to a single monolithic unit performing all functions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The proxy cache acts as an intermediary between the non-coherent subsystem and the coherent subsystem. It buffers data coherently and enables the translation function to be distributed across multiple units rather than concentrated in a single large unit, thereby reducing silicon area while maintaining translation capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a proxy cache buffers all data coherently, then coherence is maintained, but bandwidth efficiency decreases due to unnecessary cache allocations

Engineering Contradiction:
Improvecoherence maintenanceVSAvoidbandwidth efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The bridge classifies each coherent transaction based on attributes such as read/write type, cache hit/miss status, and temporal order. Different cache allocation policies are applied locally to different transaction types: for example, bulk data transfer transactions may use different policies than random access transactions. This localized policy application maintains coherence where needed while avoiding unnecessary cache allocations, thereby improving bandwidth efficiency.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The cache allocation policy is made dynamic rather than static. The bridge adapts the cache allocation behavior based on the classification of each transaction and the current state of the proxy cache. This dynamic approach allows the system to optimize bandwidth efficiency by adjusting cache usage patterns to match the actual workload characteristics while maintaining coherence requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10133671B2Proxy cache conditional allocation
Publication Date: 2018.11.20 ARTERIS INC
  • US10133671B2 patent drawing
  • US10133671B2 patent drawing
  • US10133671B2 patent drawing

AI summary

A system and method are disclosed that include a bridge that translates non-coherent transactions, which are received from a non-coherent subsystem, into one or more coherent transactions to be issued to a coherent subsystem. The bridge also buffers data coherently in an internal cache, also known as a proxy cache, based on certain attributes of the non-coherent transaction. The invention may be applied to any cache, which receives read and write transactions that become coherent transactions.