Software Cache Monitoring for Dynamic Memory Subsystem Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems have a limited scope in handling data requests and rely on a small set of previous data to predict future requests, leading to suboptimal performance and resource competition among applications sharing the same cache components.

Innovation Solution

Implementing a method to monitor cache performance and dynamically update cache settings from a software layer, utilizing higher-level system visibility to determine more optimal cache policy settings, including replacement algorithms and allocation quotas, to improve cache performance and efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If cache components are shared among multiple applications, then resource utilization is improved, but performance optimization becomes suboptimal due to limited visibility of system-wide data requests

Engineering Contradiction:
Improveresource utilizationVSAvoidperformance optimization capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a software intermediary layer that sits between the cache hardware and multiple applications. This software layer monitors system-wide data requests from all applications, analyzes access patterns, and dynamically adjusts cache settings. The intermediary resolves the contradiction by providing the cache with broader visibility into system-wide request patterns while maintaining shared resource utilization among multiple applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If cache settings are fixed, then device complexity is reduced, but cache performance cannot adapt to changing system conditions

Engineering Contradiction:
Improvecache configuration complexityVSAvoidperformance adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic cache settings that automatically adjust based on monitored system conditions and access patterns. Instead of fixed configurations, the cache parameters such as replacement policies and allocation sizes are continuously optimized based on real-time performance data. This dynamic approach resolves the contradiction by enabling performance adaptability while keeping the complexity management centralized in the software layer rather than requiring complex hardware configurations.

Inventive Principle:
Principle #15Dynamics

3Speed

If caches rely on limited previous data requests, then prediction speed is improved, but prediction accuracy decreases for diverse application workloads

Engineering Contradiction:
Improverequest prediction speedVSAvoidfuture request prediction accuracy
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

The patent creates a universal monitoring system that collects data requests from multiple applications with different workloads. The software layer aggregates and analyzes this diverse data to create comprehensive access patterns that apply across different application types. This universal approach resolves the contradiction by maintaining fast prediction response while improving accuracy through broader system-wide data collection rather than limiting analysis to individual application histories.

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

Data Source

PatentUS9892054B2Method and apparatus for monitoring system performance and dynamically updating memory sub-system settings using software to optimize performance and power consumption
Publication Date: 2018.02.13 GOOGLE LLC
  • US9892054B2 patent drawing
  • US9892054B2 patent drawing
  • US9892054B2 patent drawing

AI summary

A method and apparatus are disclosed to monitor system performance and dynamically update memory subsystem settings using software to optimize system performance and power consumption. In an example embodiment, the apparatus monitors a software application's cache performance and provides the software application the cache performance data. The software application, which has a higher-level/macro view of the overall system and better determination of its future requests, analyzes the performance data to determine more optimal memory sub-system settings. The software application provides the system more optimal settings to implement in the memory component to improve the memory and overall system performance and efficiency.