Cache Management for Heterogeneous Memory Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous computing systems face challenges in efficiently sharing data between CPUs and GPUs due to separate memory systems, high memory latency, and power consumption issues, limiting their use in fluid programming tasks beyond traditional graphics applications.

Innovation Solution

The implementation of a method that determines the visibility ordering of data items across multiple processors and performs cache operations to ensure data integrity and reduce overhead, allowing threads to share data efficiently by using a unified memory space and optimizing cache management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If separate memory systems are used for CPU and GPU, then each processor has independent memory management, but memory latency and power consumption increase for data sharing between processors

Engineering Contradiction:
Improveindependent memory managementVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent merges the separate memory systems of CPU and GPU into a unified memory space where both processors can access the same memory regions. This consolidation eliminates the need for costly memory copies between separate systems and reduces power consumption while maintaining independent memory management capabilities through virtual memory address spaces.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a memory management unit and virtual memory system as intermediaries that enable efficient data sharing between CPU and GPU. These intermediary components manage memory allocation, address translation, and cache coherence, allowing processors to access shared memory without direct interference while minimizing power consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If separate memory systems are used for CPU and GPU, then each processor has independent memory management, but memory latency increases for data sharing between processors

Engineering Contradiction:
Improveindependent memory managementVSAvoidmemory latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the separate memory systems of CPU and GPU into a unified memory space where both processors can access the same memory regions. This consolidation eliminates the need for costly memory copies between separate systems and reduces power consumption while maintaining independent memory management capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent implements preliminary actions by pre-fetching data into cache memory before it is needed by the other processor and by pre-establishing memory mappings in the unified address space. This proactive data preparation reduces the latency when processors need to share data, as the data is already in accessible locations.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If driver managed shared memory is used, then memory sharing between CPU and GPU is enabled, but overhead becomes unacceptable for fine grain offload

Engineering Contradiction:
Improvememory sharing capabilityVSAvoidoverhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the memory management into hierarchical levels: a unified virtual memory address space for high-level organization, page tables for intermediate management, and physical memory frames for actual data storage. This segmentation allows fine-grained control over memory allocation and access, reducing the overhead for small data transfers while maintaining the ability to share large memory regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic memory management where the level of sharing and management overhead adapts to the size and nature of data transfers. Small data transfers use lightweight mechanisms with minimal overhead, while large transfers utilize full driver-managed shared memory capabilities. The system dynamically adjusts its management granularity based on workload requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8935475B2Cache management for memory operations
Publication Date: 2015.01.13 ATI TECHNOLOGIES ULC
  • US8935475B2 patent drawing
  • US8935475B2 patent drawing
  • US8935475B2 patent drawing

AI summary

Embodiments of the present invention provides for the execution of threads and/or workitems on multiple processors of a heterogeneous computing system in a manner that they can share data correctly and efficiently. Disclosed method, system, and article of manufacture embodiments include, responsive to an instruction from a sequence of instructions of a work-item, determining an ordering of visibility to other work-items of one or more other data items in relation to a particular data item, and performing at least one cache operation upon at least one of the particular data item or the other data items present in any one or more cache memories in accordance with the determined ordering. The semantics of the instruction includes a memory operation upon the particular data item.