Programmable Memory-Side Cache Management for Applications

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory-side cache management systems do not effectively maximize cache hit rates for different applications, leading to inefficient resource allocation and performance issues due to the use of a single cache configuration for various applications.

Innovation Solution

A programmable memory-side cache system with a controller that includes programmable processing cores, which execute cache configuration codes tailored for specific applications, optimizing cache performance by configuring parameters such as block size, associativity, replacement policy, writing policy, and prefetching based on representative workloads to enhance cache hit rates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single cache configuration is used for various applications, then device complexity is reduced, but cache hit rate and performance deteriorate

Engineering Contradiction:
Improvecache hit rateVSAvoidcache management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache system transitions from a static single configuration to a dynamic multi-configuration system where the cache controller can switch between different cache configuration codes based on the application being executed. Each application can have its own optimized cache configuration, allowing the system to adapt cache parameters such as block size, associativity, and replacement policy to match specific workload requirements, thereby improving cache hit rates without requiring a completely separate cache for each application.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes cache parameters (block size, associativity, replacement policy, writing policy, prefetching) based on the specific application workload. By storing multiple cache configuration codes and selecting the appropriate configuration for each application, the system optimizes cache performance for different workloads while maintaining a single physical cache structure, thus improving adaptability without proportionally increasing device complexity.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If cache configuration is optimized for each application, then cache hit rate increases, but resource allocation efficiency deteriorates

Engineering Contradiction:
Improvesystem throughputVSAvoidresource allocation efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

A single cache controller is designed to perform multiple functions by executing different cache configuration codes. The same physical cache infrastructure serves multiple applications with different workload characteristics, eliminating the need for separate dedicated caches for each application. This multi-functionality approach improves resource allocation efficiency while still providing application-specific optimization through configurable parameters.

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

Solution Approach 2:

The system changes cache operational parameters dynamically based on the running application's needs. By adjusting block size, associativity, replacement policy, and prefetching behavior according to the specific application's access patterns, the system achieves high cache hit rates and system throughput without requiring multiple dedicated cache resources, thus avoiding waste of energy and resources.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If a programmable cache controller with multiple configuration codes is implemented, then adaptability improves, but device complexity increases

Engineering Contradiction:
Improveapplication-specific cache optimizationVSAvoidcontroller structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The cache controller is segmented into functional modules that can independently execute different cache configuration codes. Each configuration code represents a distinct cache management strategy that can be selected based on the application. This segmentation allows the controller to maintain a relatively simple base structure while adding configurability through modular code execution, reducing the complexity increase compared to a fully custom-designed controller for each application.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10282302B2Programmable memory-side cache management for different applications
Publication Date: 2019.05.07 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10282302B2 patent drawing
  • US10282302B2 patent drawing
  • US10282302B2 patent drawing

AI summary

Examples disclosed herein relate to programmable memory-side cache management. Some examples disclosed herein may include a programmable memory-side cache and a programmable memory-side cache controller. The programmable memory-side cache may locally store data of a system memory. The programmable memory-side cache controller may include programmable processing cores, each of the programmable processing cores configurable by cache configuration codes to manage the programmable memory-side cache for different applications.