Unified Cache for Coherent and Non-Coherent Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face inefficiencies in managing both coherent and non-coherent data, with coherent caches limited in size and latency-sensitive locations, and non-coherent caches requiring additional software management for coherency, leading to suboptimal resource utilization and increased latency.

Innovation Solution

A single cache system that dynamically allocates cache lines as either shareable or non-shareable, enabling the storage of both coherent and non-coherent data, functioning as an eviction cache for the coherent domain and reducing off-chip memory traffic by migrating dirty shareable cache lines without writing to memory, thus optimizing resource allocation and latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate coherent and non-coherent caches are used, then data coherency management is simplified for each domain, but resource utilization is suboptimal and latency increases

Engineering Contradiction:
Improvedata coherency managementVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges separate coherent and non-coherent caches into a single unified cache structure. The cache controller dynamically manages cache lines, allocating them as shareable or non-shareable based on domain requirements. This consolidation improves resource utilization by allowing both domains to share the same physical cache resources while maintaining proper coherency management through domain-specific access protocols and cache line state tracking.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified cache serves multiple functions simultaneously - it acts as a coherent cache for the first domain and a non-coherent cache for the second domain. The cache controller implements multi-functional management by detecting the source domain of access requests and applying appropriate coherency protocols, thereby making a single cache structure universally applicable to both coherent and non-coherent domains.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Speed

If coherent cache is located in latency-sensitive location, then access speed is improved, but cache size is limited

Engineering Contradiction:
Improveaccess speedVSAvoidcache size
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

By merging coherent and non-coherent cache functions into a single unified structure, the system achieves both high-speed access (inherent in coherent cache design) and large cache capacity (characteristic of non-coherent caches). The unified cache is positioned to serve both domains, with the controller dynamically allocating cache lines based on access patterns and domain requirements, thereby achieving both speed and size benefits simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If non-coherent cache is located closer to memory controllers, then cache size can be larger, but latency increases

Engineering Contradiction:
Improvecache sizeVSAvoidlatency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The unified cache located near memory controllers serves dual purposes - providing large capacity for non-coherent domain storage while also functioning as an eviction cache for the coherent domain. The cache controller intelligently manages cache line allocation, allowing the same physical structure to fulfill both roles, thereby achieving large capacity without the latency penalty typically associated with non-coherent cache locations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Productivity

If dynamic allocation of cache lines is implemented, then resource allocation is optimized, but cache management complexity increases

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidcache management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache implementation uses dynamic allocation where cache lines can be transitioned between shareable and non-shareable states based on runtime requirements. The cache controller monitors access patterns and domain requirements, dynamically adjusting cache line allocation and state. This dynamic approach optimizes resource utilization while the controller manages complexity through automated state tracking and domain-aware allocation policies.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11599467B2Cache for storing coherent and non-coherent data
Publication Date: 2023.03.07 ARM LTD
  • US11599467B2 patent drawing
  • US11599467B2 patent drawing
  • US11599467B2 patent drawing

AI summary

The present disclosure advantageously provides a system cache and a method for storing coherent data and non-coherent data in a system cache. A transaction is received from a source in a system, the transaction including at least a memory address, the source having a location in a coherent domain or a non-coherent domain of the system, the coherent domain including shareable data and the non-coherent domain including non-shareable data. Whether the memory address is stored in a cache line is determined, and, when the memory address is not determined to be stored in a cache line, a cache line is allocated to the transaction including setting a state bit of the allocated cache line based on the source location to indicate whether shareable or non-shareable data is stored in the allocated cache line, and the transaction is processed.