Virtualized L1 Cache Partitioning for VIPT Synonym Coherency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing integrated circuit designs face challenges with virtually indexed physically tagged (VIPT) caches due to the issue of synonyms, where the same physical cache block appears at two different virtual indexes, leading to inefficiencies and pipeline impacts when cache sizes exceed virtual memory page sizes.

Innovation Solution

The L1 cache is split into multiple logical L1 caches sharing the same physical implementation, with an outer memory system resolving ownership conflicts and disambiguating synonyms using a coherence protocol, allowing the L1 cache to hold two shared synonyms without increasing pipeline complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the L1 cache size is increased beyond virtual memory page size, then cache capacity and performance are improved, but synonym conflicts increase causing pipeline stalls and complexity

Engineering Contradiction:
Improvecache sizeVSAvoidpipeline complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The L1 cache is segmented into multiple logical L1 caches, each responsible for a specific portion of the virtual address space. This segmentation allows the cache to handle synonyms by directing them to different logical caches, eliminating pipeline stalls while maintaining large total cache capacity.

Inventive Principle:
Principle #1Segmentation

2Reliability

If multiple logical L1 caches are implemented, then synonym handling is improved, but hardware resources and area increase

Engineering Contradiction:
Improvesynonym resolutionVSAvoidhardware area
Core Design Contradiction:
ReliabilityVSArea of stationary object

Solution Approach 1:

Multiple logical L1 caches are merged into a single physical L1 cache structure. The logical caches share the same physical storage resources, tag arrays, and data arrays, with differentiation achieved through logical partitioning based on virtual address bits. This merging approach provides synonym resolution capabilities while minimizing additional hardware area overhead.

Inventive Principle:
Principle #5Merging (Combining)

3Object-generated harmful factors

If L1 cache way size is limited to virtual memory page size, then synonym conflicts are avoided, but cache capacity and efficiency are reduced

Engineering Contradiction:
Improvesynonym conflictsVSAvoidcache efficiency
Core Design Contradiction:
Object-generated harmful factorsVSProductivity

Solution Approach 1:

The solution moves from limiting cache capacity in one dimension (way size) to managing synonyms in another dimension (logical cache partitioning). By introducing the dimension of logical cache identification and using virtual address bits to select between logical caches, the system achieves both large total capacity and effective synonym handling without constraining individual way sizes.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS12561246B2Virtualized caches
Publication Date: 2026.02.24 SIFIVE INC
  • US12561246B2 patent drawing
  • US12561246B2 patent drawing
  • US12561246B2 patent drawing

AI summary

Systems and methods are disclosed for virtualized caches. For example, an integrated circuit (e.g., a processor) for executing instructions includes a virtually indexed physically tagged first-level (L1) cache configured to output to an outer memory system one or more bits of a virtual index of a cache access as one or more bits of a requestor identifier. For example, the L1 cache may be configured to operate as multiple logical L1 caches with a cache way of a size less than or equal to a virtual memory page size. For example, the integrated circuit may include an L2 cache of the outer memory system that is configured to receive the requestor identifier and implement a cache coherency protocol to disambiguate an L1 synonym occurring in multiple portions of the virtually indexed physically tagged L1 cache associated with different requestor identifier values.