Virtual Cache Synonym Detection via Alias Tags
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In virtualized computer systems, processes with the same virtual and real addresses but different context tags cannot concurrently access shared data in a virtual cache, leading to performance losses due to cache misses, as the virtual cache design restricts a single physical cache line to exist in only one location, preventing simultaneous access by processes with mismatched context tags.
Innovation Solution
Implementing an alias tag system in the virtual cache directory, in addition to the virtual address and context tag, allows processes with the same virtual address and real address but different context tags to access shared data concurrently by overriding the differing context tags, enabling the virtual cache to hit if they have access to the same alias tag.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the virtual cache uses context tag to distinguish different processes, then process isolation is improved, but concurrent access to shared data by processes with same virtual address but different context tags deteriorates
Solution Approach 1:
The patent segments the cache tag into two independent parts: context tag (for process isolation) and alias tag (for shared data identification). This segmentation allows the cache to simultaneously maintain process isolation through context tag matching while enabling concurrent access to shared data through alias tag matching, resolving the contradiction between reliability and productivity
Solution Approach 2:
The alias tag acts as an intermediary mechanism that mediates between the context tag system (which enforces process isolation) and the need for shared data access. When processes with different context tags need to access the same shared data, the alias tag provides a common identifier that allows both processes to access the cache line concurrently while maintaining the context tag-based isolation for non-shared data
2Stability of the object's composition
If the virtual cache allows only one process to access a cache line at a time, then data consistency is improved, but cache utilization deteriorates
Solution Approach 1:
The patent implements a dynamic access control mechanism where the cache system adaptively determines which processes can access each cache line based on alias tag matching. The system dynamically allows multiple processes to access the same cache line simultaneously when they share the same alias tag, while maintaining exclusive access for cache lines without matching alias tags, thus optimizing both data consistency and cache utilization under different conditions
3Reliability
If the virtual cache checks context tag for every access, then security is improved, but access speed deteriorates
Solution Approach 1:
The patent performs preliminary action by pre-establishing alias tags for shared data during cache line allocation or first access. This preliminary tagging allows subsequent accesses to quickly determine shared status without extensive context tag verification, as the alias tag serves as a pre-computed indicator of shared data membership, reducing the overhead of security checks while maintaining security
Data Source
AI summary
A system and method of handling data access demands in a processor virtual cache that includes: determining if a virtual cache data access demand missed because of a difference in the context tag of the data access demand and a corresponding entry in the virtual cache with the same virtual address as the data access demand; in response to the virtual cache missing, determining whether the alias tag valid bit is set in the corresponding entry of the virtual cache; in response to the alias tag valid bit not being set, determining whether the virtual cache data access demand is a synonym of the corresponding entry in the virtual cache; and in response to the virtual access demand being a synonym of the corresponding entry in the virtual cache with the same virtual address but a different context tag, updating information in a tagged entry in an alias table.


