Cache Pointer Atomic Update for Concurrent Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache systems in computer memory management are inefficient for multiple processes accessing the same data, leading to significant space overhead and consistency complications, and inter-process communication incurs unnecessary overhead.

Innovation Solution

A shared memory architecture that allows concurrent access by creating a new data structure for updates and maintaining an old value until it's no longer needed, using atomic modifications to cache pointers and minimizing the need for locks to prevent inconsistencies and reduce overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If each process has its own cache, then process access efficiency is improved, but space overhead increases significantly

Engineering Contradiction:
Improveprocess access efficiencyVSAvoidspace overhead
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent merges multiple process-specific caches into a single shared cache structure. Instead of having n separate caches for n processes, the invention uses one unified cache that all processes access concurrently, eliminating redundant cache copies and reducing space overhead while maintaining access efficiency through proper concurrency control.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a cache manager as an intermediary component that mediates between multiple processes and the shared cache. The cache manager handles concurrency control, invalidation notifications, and access coordination, allowing multiple processes to safely share the same cache without needing separate cache instances.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple copies of cached objects are maintained, then process access efficiency is improved, but consistency maintenance complexity increases

Engineering Contradiction:
Improveprocess access efficiencyVSAvoidconsistency maintenance complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent consolidates consistency management into a single shared cache structure with unified invalidation tracking. Instead of maintaining consistency across multiple separate caches, the invention tracks version information and invalidation status centrally, simplifying the consistency maintenance burden while preserving efficient multi-process access.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If a cache process communicates with multiple processes, then centralized cache management is achieved, but inter-process communication overhead increases

Engineering Contradiction:
Improvecentralized cache managementVSAvoidinter-process communication overhead
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent uses a cache manager as an intermediary that coordinates access to the shared cache. The cache manager handles invalidation notifications and access coordination efficiently, reducing the need for frequent inter-process communication while maintaining centralized management capabilities. The design minimizes communication overhead by using event-driven invalidation notifications rather than continuous polling or messaging.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8850127B2Managing concurrent accesses to a cache
Publication Date: 2014.09.30 MEDIATEK INC
  • US8850127B2 patent drawing
  • US8850127B2 patent drawing
  • US8850127B2 patent drawing

AI summary

Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.