Cache Pooling for Predictable Real-Time Thread Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, cache thrashing occurs when threads contend for memory access, leading to reduced efficiency and the need for expensive hardware to meet real-time processing requirements, especially in systems like avionics where critical threads must execute promptly.

Innovation Solution

The system logically divides the cache into pools, reserving portions for critical threads and allowing non-critical threads to share the remaining cache, thereby minimizing contention and enabling predictable execution on inexpensive hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the cache is shared between all threads, then memory capacity is maximized, but cache thrashing occurs reducing system efficiency

Engineering Contradiction:
Improvememory capacityVSAvoidsystem efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides the shared cache into multiple private cache pools, with each thread assigned to a specific pool. This segmentation prevents threads from competing for the same cache lines, eliminating cache thrashing while maintaining efficient memory access for each thread.

Inventive Principle:
Principle #1Segmentation

2Reliability

If critical threads are assigned dedicated cache pools, then real-time performance is improved, but hardware cost increases

Engineering Contradiction:
Improvereal-time performanceVSAvoidhardware cost
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the cache into private pools for critical threads, ensuring dedicated cache space that prevents thrashing and guarantees real-time performance. This approach enables real-time systems to run on standard hardware without requiring expensive specialized memory components.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If more threads are supported, then system versatility improves, but cache contention increases

Engineering Contradiction:
Improvethread supportVSAvoidcache contention
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent assigns each thread to a dedicated private cache pool, isolating their memory access paths. This allows multiple threads to execute simultaneously without cache contention, as each thread's cache pool is exclusive to that thread.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The private cache pools act as intermediaries between threads and main memory, providing isolated fast memory spaces that mediate thread interactions and prevent cache thrashing while supporting multiple concurrent threads.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3109765B1Cache pooling for computing systems
Publication Date: 2019.01.02 HONEYWELL INTERNATIONAL INC
  • EP3109765B1 patent drawingFigure 1
  • EP3109765B1 patent drawingFigure 2
  • EP3109765B1 patent drawingFigure 3

AI summary

In a computing system a method and apparatus for cache pooling is introduced. Threads are assigned priorities based on the criticality of their tasks. The most critical threads are assigned to main memory locations such that they are subject to limited or no cache contention. Less critical threads are assigned to main memory locations such that their cache contention with critical threads is minimized or eliminated. Thus, overall system performance is improved, as critical threads execute in a substantially predictable manner.