Cache Coherence Manager for Heterogeneous Processor Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In heterogeneous processor systems, maintaining cache coherence between different processor types such as CPUs and GPUs is challenging due to the need for efficient data movement and synchronization, especially when data is requested by one processor type after being stored in another type's cache.
Innovation Solution
A processing device with a communication detector that monitors memory traffic and determines a time interval for moving data from one cache to another based on when the data was received and requested, allowing for improved data synchronization and movement between CPU and GPU caches.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is moved between caches in heterogeneous processor systems, then data availability for processing is improved, but maintaining cache coherence and synchronization becomes more complex
Solution Approach 1:
The patent introduces a cache coherence manager as an intermediary component that mediates data movement between CPU cache and GPU cache. This manager tracks data locations, manages coherence protocols, and coordinates transfers, thereby improving data availability while containing the complexity of coherence maintenance within a dedicated management layer rather than distributed across all processors.
Solution Approach 2:
The system performs preliminary actions by pre-copying data from CPU cache to GPU cache before the GPU actually needs it for processing. The coherence manager monitors data access patterns and initiates data transfers in advance, ensuring data is available when needed while reducing the urgency and complexity of real-time coherence management.
2Speed
If data is copied into caches of multiple processor types, then access speed is improved, but data consistency between caches and main memory becomes challenging
Solution Approach 1:
The cache coherence manager implements feedback mechanisms by monitoring data access patterns, tracking which data resides in which caches, and receiving notifications when processors access or modify data. This feedback enables the system to maintain consistency by responding to actual data usage events, ensuring that copies in CPU cache and GPU cache remain synchronized with main memory without continuously checking all data.
Solution Approach 2:
The coherence manager acts as an intermediary between the caches and main memory, intercepting and coordinating data access operations. It manages the complexity of maintaining consistency across multiple caches by centralizing coherence control, thereby enabling fast cache access while preserving data reliability through coordinated updates.
3Adaptability or versatility
If data is moved from first cache to second cache, then data can be processed by second processor type, but data movement time and synchronization overhead increase
Solution Approach 1:
The system performs data movement in advance by monitoring when data is loaded into CPU cache and proactively copying it to GPU cache before the GPU needs it. This preliminary action eliminates or reduces the actual data movement time when the GPU starts processing, as the data is already in place. The coherence manager tracks data lifecycles and initiates transfers during idle periods or before scheduled GPU operations.
Solution Approach 2:
The data movement system is made dynamic by adapting transfer timing and triggers based on actual processor behavior and data access patterns. Rather than using fixed scheduling, the coherence manager responds to dynamic events such as data insertion into CPU cache, processor idle states, and predicted GPU needs, optimizing data movement timing to minimize overhead while maintaining processor flexibility.
Data Source
Figure 1
Figure 2
Figure 3A~3B
AI summary
Apparatus, computer readable medium, integrated circuit, and method of moving a plurality of data items to a first cache or a second cache are presented. The method includes receiving an indication that the first cache requested the plurality of data items. The method includes storing information indicating that the first cache requested the plurality of data items. The information may include an address for each of the plurality of data items. The method includes determining based at least on the stored information to move the plurality of data items to the second cache. The method includes moving the plurality of data items to the second cache. The method may include determining a time interval between receiving the indication that the first cache requested the plurality of data items and moving the plurality of data items to the second cache. A scratch pad memory is disclosed.