Instruction Cache Footprint Sharing via Alias Tables
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Device complexity
If there is no mechanism to determine shareable cache lines, then implementation simplicity is maintained, but cache sharing capability is lost
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.
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.
3Productivity
If instruction cache lines are shared between threads, then processing efficiency is improved, but cache line invalidation and consistency management becomes complex
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.
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.
Data Source
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.


