Cache Memory Segmentation for Concurrent Thread Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor systems, simultaneous updates to the same cache memory by multiple threads can compromise data integrity and lead to performance delays due to lock contention and synchronization overhead.

Innovation Solution

Divide the cache memory into multiple cache areas, each with a separate lock attribute, allowing only the processor thread possessing the lock to update its corresponding cache area, thereby preventing simultaneous modifications and reducing contention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single lock is used for the entire cache memory, then data integrity is maintained, but system performance deteriorates due to lock contention

Engineering Contradiction:
Improvedata integrityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The cache memory is divided into multiple independent cache areas (e.g., LRU list, hash table, replacement queue), each with its own lock attribute. This segmentation allows different processor threads to simultaneously access and update different cache areas without mutual interference, thereby maintaining data integrity within each area while improving overall system performance through parallel access.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple locks are provided for different cache areas, then system performance improves through concurrent access, but device complexity increases

Engineering Contradiction:
Improvesystem performanceVSAvoidlock management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Each cache area is equipped with its own dedicated lock attribute, creating local quality in the lock management system. This allows each cache area to be independently protected and accessed, with threads acquiring only the specific lock needed for their target cache area, thereby reducing unnecessary lock contention while maintaining manageable complexity through localized control.

Inventive Principle:
Principle #3Local quality

3Productivity

If simultaneous updates to the same cache area are allowed, then system performance improves, but data integrity is compromised

Engineering Contradiction:
Improveupdate throughputVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By segmenting the cache memory into multiple independent areas with separate lock attributes, the system allows simultaneous updates to different cache areas while maintaining data integrity within each area. Threads can safely update any cache area they have the appropriate lock for, achieving parallel update throughput without compromising the integrity of individual cache areas.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10102127B2Locks to enable updating data and a data replacement order in cache areas
Publication Date: 2018.10.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10102127B2 patent drawing
  • US10102127B2 patent drawing
  • US10102127B2 patent drawing

AI summary

Managing access to a cache memory includes dividing said cache memory into multiple of cache areas, each cache area having multiple entries; and providing at least one separate lock attribute for each cache area such that only a processor thread having possession of the lock attribute corresponding to a particular cache area can update that cache area.