Cache Pooling for Predictable Real-Time Thread Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Reliability
If critical threads are assigned dedicated cache pools, then real-time performance is improved, but hardware cost increases
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.
3Adaptability or versatility
If more threads are supported, then system versatility improves, but cache contention increases
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.