Cache Sub-Partitioning for Sub-Entity Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing devices with multiple processing subsystems, cache contention occurs among processing subsystems and their sub-entities, leading to inefficient operation despite partitioning, as sub-entities within a partition still contend for space, resulting in inefficient data access and cache usage.

Innovation Solution

A partitioning mechanism that divides cache memory into sub-partitions based on memory access patterns and properties of sub-entities, allocating specific sub-partitions to each sub-entity to prevent eviction of their cache blocks and optimize access, thereby enhancing cache efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If caches are partitioned into partitions for processing subsystems, then processing subsystems can have protected access to cache portions, but sub-entities within a partition still contend for space leading to inefficient operation

Engineering Contradiction:
Improvecache access efficiencyVSAvoidsub-entity operation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing the cache into partitions for processing subsystems, and then further dividing each partition into sub-partitions for sub-entities. This multi-level segmentation eliminates contention at the sub-entity level while maintaining protected access at the partition level, resolving the contradiction between partition protection and sub-entity efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements local quality by allocating different portions of the cache to different sub-entities based on their specific access patterns and requirements. Each sub-entity receives customized cache allocation rather than uniform sharing, improving local access efficiency while maintaining overall system reliability.

Inventive Principle:
Principle #3Local quality

2Adaptability or versatility

If sub-entities share cache partitions, then cache space is available for multiple sub-entities, but contention for space occurs causing inefficient data access

Engineering Contradiction:
Improvecache sharing capabilityVSAvoiddata access efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the shared cache partition into dedicated sub-partitions for each sub-entity. This maintains cache sharing capability at the partition level while eliminating contention at the sub-entity level through dedicated sub-partition allocation, resolving the contradiction between adaptability and productivity.

Inventive Principle:
Principle #1Segmentation

3Reliability

If fixed cache partitioning is used, then processing subsystems have guaranteed access, but cannot adapt to varying memory access patterns of sub-entities

Engineering Contradiction:
Improvecache access guaranteeVSAvoidmemory access pattern adaptation
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic cache partitioning where sub-partitions are allocated and reallocated based on observed memory access patterns of sub-entities. The system maintains guaranteed access through protected sub-partition allocation while adapting to varying access patterns through runtime monitoring and reallocation, resolving the contradiction between reliability and adaptability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9098417B2Partitioning caches for sub-entities in computing devices
Publication Date: 2015.08.04 ADVANCED MICRO DEVICES INC
  • US9098417B2 patent drawing
  • US9098417B2 patent drawing
  • US9098417B2 patent drawing

AI summary

Some embodiments include a partitioning mechanism that partitions a cache memory into sub-partitions for sub-entities. In the described embodiments, the cache memory is initially partitioned into two or more partitions for one or more corresponding entities. During a partitioning operation, the partitioning mechanism is configured to partition one or more of the partitions in the cache memory into two or more sub-partitions for one or more sub-entities of a corresponding entity. A cache controller then uses a corresponding sub-partition for memory accesses by the one or more sub-entities.