Cache Index Generation Using Non-Address Information

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cache memory systems face unbalanced utilization of entries due to the use of addresses to generate indices, leading to interference among threads accessing similar addresses, which affects performance.

Innovation Solution

A system that generates indices for cache memory using a combination of address and non-address information, such as instruction type, register addresses, or system parameters, to improve index distribution and reduce conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If addresses are used to generate indices for cache memory, then the index generation is simple and direct, but the utilization of cache entries becomes unbalanced and thread interference increases

Engineering Contradiction:
Improveindex generation simplicityVSAvoidcache memory performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent changes the parameters used for index generation from solely address-based to a combination of address and non-address information (such as thread ID, instruction type, or register information). This parameter change transforms the index generation process to achieve more uniform distribution across cache entries while maintaining operational simplicity through deterministic combination rules.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If addresses are used to generate indices, then the mapping is straightforward, but multiple threads accessing similar addresses generate the same indices causing conflicts

Engineering Contradiction:
Improveindex generation implementationVSAvoidthread isolation and cache efficiency
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent segments the index generation process into multiple components: address information and non-address information (such as thread-specific identifiers). By dividing the index into segments derived from different sources, the system ensures that threads accessing similar addresses generate different indices due to their unique non-address components, thereby improving thread isolation while maintaining implementation simplicity.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If traditional address-based indexing is used, then the system is easy to implement, but cache entry utilization becomes unbalanced

Engineering Contradiction:
Improveindex generation system complexityVSAvoidcache memory utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces non-address information as an intermediary element in the index generation process. This intermediary (such as thread ID or instruction type) mediates between the address and the final index, transforming the direct address-to-index mapping into an address-plus-context-to-index mapping. This intermediary improves cache utilization efficiency by distributing accesses more evenly while adding minimal complexity to the system.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8484434B2Index generation for cache memories
Publication Date: 2013.07.09 ORACLE AMERICAN INC
  • US8484434B2 patent drawing
  • US8484434B2 patent drawing
  • US8484434B2 patent drawing

AI summary

Embodiments of the present invention provide a system that generates an index for a cache memory. The system starts by receiving a request to access the cache memory, wherein the request includes address information. The system then obtains non-address information associated with the request. Next, the system generates the index using the address information and the non-address information. The system then uses the index to fulfill access the cache memory.