Application-Level Cache Mapping and Reallocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache optimization techniques, such as alignment, cache-line padding, and large pages, face issues like poor resource utilization, conflicts, and suboptimal distribution of data in cache hierarchies, which hinder efficient cache performance in multiprocessor systems.

Innovation Solution

An application requests a kernel cache map and designs an optimum cache footprint by transmitting a memory reallocation order to a memory manager, allowing for sectoring and efficient allocation of cache resources to optimize cache utilization and reduce access latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional cache optimization techniques (alignment, cache-line padding, large pages) are used, then cache access latency is reduced, but cache resource utilization becomes poor and conflicts occur

Engineering Contradiction:
Improvecache access latencyVSAvoidcache resource utilization
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent divides the cache into multiple independent sectors, each capable of being allocated to different applications or data sets. This segmentation allows fine-grained control over cache resources, enabling better utilization by distributing data across multiple sectors rather than relying on coarse-grained alignment and padding techniques.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic cache sector allocation where the memory manager can reallocate cache sectors to different applications based on runtime requirements. This dynamic approach replaces static alignment and padding strategies, allowing the system to adapt cache distribution to actual workload patterns and improve both latency and utilization.

Inventive Principle:
Principle #15Dynamics

2Speed

If alignment and cache-line padding are used to optimize cache access, then access latency is reduced, but cache resource utilization deteriorates due to poor distribution

Engineering Contradiction:
Improvecache access latencyVSAvoideffective cache data distribution
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

By segmenting the cache into multiple sectors that can be independently allocated, the system achieves better data distribution across cache resources. This replaces the coarse alignment and padding approach with fine-grained sector-level allocation, improving both access latency and effective data distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the allocation parameter from alignment-based (coarse-grained) to sector-based (fine-grained) allocation. This parameter change enables more flexible and efficient cache utilization, allowing data to be distributed according to actual access patterns rather than fixed alignment rules.

Inventive Principle:
Principle #35Parameter changes

3Quantity of substance

If large pages are used for cache allocation, then data distribution is improved, but conflicts occur and resource utilization becomes suboptimal

Engineering Contradiction:
Improvedata distributionVSAvoidcache resource utilization
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent segments the cache into smaller, manageable sectors rather than using large pages. This segmentation prevents conflicts by isolating different data sets in separate sectors and improves resource utilization by allowing flexible, fine-grained allocation of cache space based on actual workload requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic allocation of cache sectors to applications based on runtime needs. This dynamic approach replaces the static large page allocation strategy, enabling the system to adapt to changing workload patterns and optimize both data distribution and resource utilization simultaneously.

Inventive Principle:
Principle #15Dynamics

4Device complexity

If conventional cache allocation is used, then system simplicity is maintained, but cache efficiency deteriorates for long-running computations

Engineering Contradiction:
Improvecache management simplicityVSAvoidcache efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a memory manager that automatically handles cache sector allocation and reallocation based on application requests. This self-service mechanism simplifies cache management by abstracting the complexity of sector allocation from applications, while improving cache efficiency through intelligent, runtime-based allocation decisions.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces dynamic cache sector allocation managed by a memory manager that operates transparently to applications. This dynamic approach maintains simplicity from the application perspective while significantly improving cache efficiency for long-running computations through adaptive allocation strategies.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7721047B2System, method and computer program product for application-level cache-mapping awareness and reallocation requests
Publication Date: 2010.05.18 GOOGLE LLC
  • US7721047B2 patent drawing
  • US7721047B2 patent drawing
  • US7721047B2 patent drawing

AI summary

In view of the foregoing, the shortcomings of the prior art cache optimization techniques, the present invention provides an improved method, system, and computer program product that can optimize cache utilization. In one embodiment, an application requests a kernel cache map from a kernel service and the application receives the kernel. The application designs an optimum cache footprint for a data set from said application. The objects, advantages and features of the present invention will become apparent from the following detailed description. In one embodiment of the present invention, the application transmits a memory reallocation order to a memory manager. In one embodiment of the present invention, the step of the application transmitting a memory reallocation order to the memory manager further comprises the application transmitting a memory reallocation order containing the optimum cache footprint to the memory manager. In one embodiment of the present invention, the step of the application transmitting a memory reallocation order to a memory manager further comprises the application transmitting the memory reallocation order containing to a reallocation services tool within the memory manager.