Flexible Cache Pooling for Uneven Multicore Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing architectures face challenges in evenly dividing complex computations among multicore processors, leading to resource mismatch and underutilization due to varying workloads across cores.

Innovation Solution

Computational nodes share access to local memory, allowing repartitioning and reallocating private caches to serve as remote caches for other nodes based on expected or dynamic computational needs, enabling efficient utilization of resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If private caches are allocated to each computational node, then each node has dedicated memory access, but resource utilization decreases when workloads vary significantly

Engineering Contradiction:
Improvededicated memory accessVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges private caches from multiple computational nodes into a shared cache pool that can be dynamically allocated to any node. Instead of each node having dedicated cache memory, the caches are combined and managed as a shared resource, allowing efficient utilization when workloads vary across nodes.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements dynamic cache allocation where the amount of cache memory assigned to each computational node changes based on real-time workload demands. The system can repartition and reallocate cache resources dynamically, transitioning from static private allocation to adaptive shared allocation.

Inventive Principle:
Principle #15Dynamics

2Use of energy by moving object

If computational nodes are powered down to reduce power consumption, then energy efficiency improves, but memory availability decreases for remaining active nodes

Engineering Contradiction:
Improvepower consumptionVSAvoidmemory availability
Core Design Contradiction:
Use of energy by moving objectVSQuantity of substance

Solution Approach 1:

The patent makes cache memory universal by allowing it to serve multiple purposes and multiple computational nodes. Cache memory that would normally be dedicated to a single node can be shared across multiple nodes, enabling the system to power down nodes while maintaining memory availability through the shared pool.

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

Solution Approach 2:

The patent introduces a cache pooling mechanism as an intermediary layer between computational nodes and memory resources. This mediator manages the allocation and sharing of cache memory, allowing nodes to access memory resources even when their local cache is unavailable due to power down.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If complex computations are divided into component computations for parallel execution, then processing speed increases, but resource mismatch occurs between homogeneous cores and varying workloads

Engineering Contradiction:
Improveprocessing speedVSAvoidworkload adaptability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent applies local quality by allowing different computational nodes to have different amounts of cache memory allocated based on their specific workload requirements. Instead of uniform resource allocation, each node receives the appropriate quality and quantity of memory resources matched to its computational needs.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250298672A1Flexible Cache Pooling for Network of Processing Cores
Publication Date: 2025.09.25 TENSTORRENT USA INC
  • US20250298672A1 patent drawing
  • US20250298672A1 patent drawing
  • US20250298672A1 patent drawing

AI summary

Systems and methods related to networks of computational nodes such as cores in a multicore processor are disclosed herein. A disclosed method for executing a computation using a network of computational nodes includes assigning a component computation of the complex computation to a first computational node in the network of computational nodes. The first computational node includes a local memory. The local memory is reserved to be used for a cache by the computational node for executing the component computation. The disclosed method also includes reserving a remote memory on a second computational node in the network of computational nodes to be used for the cache by the computational node for executing the component computation.