Instruction Cache Footprint Sharing via Alias Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-threaded processing environments, there is no effective way to determine which instruction cache lines are shareable across process boundaries, resulting in instruction cache footprints that cannot be shared between different processor threads.

Innovation Solution

The use of instruction cache set/way pointers and an alias table to identify shareable instruction cache lines between multiple threads, where the alias table contains effective addresses representing memory regions where sharing has been identified, and a tracking table is used to validate access thread translations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If instruction cache lines are marked private per thread, then thread-specific instruction execution is ensured, but cache footprint sharing between threads is prevented

Engineering Contradiction:
Improvethread-specific instruction executionVSAvoidcache footprint sharing
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic cache line sharing by introducing a shareability status that can change from private to shareable based on validation. The cache directory maintains a shareable bit for each entry, allowing the system to transition from static private marking to dynamic sharing based on actual content identity and thread context validation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the state parameter of cache lines by introducing a shareable bit in the cache directory. This parameter change allows cache lines to transition between private and shareable states, enabling multi-threaded access when content identity is confirmed through set/way pointer matching and translation validation.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If there is no mechanism to determine shareable cache lines, then implementation simplicity is maintained, but cache sharing capability is lost

Engineering Contradiction:
Improvecache management mechanismVSAvoidmulti-threaded processing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent introduces set/way pointers as intermediary structures that bridge the gap between simple cache management and sophisticated sharing detection. These pointers serve as mediators that enable comparison between different thread contexts to determine cache line shareability without requiring complex validation mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses copying of set/way pointer information from one thread context to another to enable sharing detection. By comparing copied pointer values against current cache state, the system can determine shareability without direct complex interaction between thread management structures.

Inventive Principle:
Principle #26Copying

3Productivity

If instruction cache lines are shared between threads, then processing efficiency is improved, but cache line invalidation and consistency management becomes complex

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcache line invalidation management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements feedback mechanisms through the shareable bit and translation validation process. When a cache line is accessed, the system provides feedback about its shareability status and validates thread translations, creating a closed-loop system that automatically manages consistency without requiring complex external control.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The cache coherence mechanism serves itself by automatically detecting shareable lines through set/way pointer comparison and managing invalidation through the shareable bit. The system performs self-validation of thread translations and self-manages the sharing state without requiring complex external coordination protocols.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11593108B2Sharing instruction cache footprint between multiple threads
Publication Date: 2023.02.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11593108B2 patent drawing
  • US11593108B2 patent drawing
  • US11593108B2 patent drawing

AI summary

Aspects are provided for sharing instruction cache footprint between multiple threads. A set/way pointer to an instruction cache line is derived from a system memory address associated with an instruction fetch from a memory page. It is determined that the instruction cache line is shareable between a first thread and a second thread. An alias table entry is created indicating that other instruction cache lines associated with the memory page are also shareable between threads. Another instruction fetch is received from another thread requesting an instruction from another system memory address associated with the memory page. A further set/way pointer to another instruction cache line is derived from the other system memory address. It is determined that the other instruction cache line is shareable based on the alias table entry.