Hierarchical Cache Flushing via Key ID and Address

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer systems lack the capability to manage their hierarchical cache structures in granularity of keys, which is essential for secure and efficient data management, especially with total memory encryption technologies.

Innovation Solution

The proposed solution involves a processor architecture that includes a decoder, a memory ordering buffer, and a first in-core cache module. It utilizes an ISA instruction CFLUSHKEYID to flush specific cache lines in the hierarchical cache structure by matching a designated key identification code and address, enabling key-based management of the cache.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If total memory encryption technology is used to protect confidential data, then system security is improved, but the operating system becomes incapable of managing the hierarchical cache structure in granularity of keys

Engineering Contradiction:
Improvesystem securityVSAvoidkey-based cache management capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the cache management function by introducing a dedicated key identification code field in the cache tag structure. This allows the cache to be divided into key-specific segments, enabling the OS to manage different cache portions with different encryption keys independently, thus resolving the contradiction between security and management capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the key identification code matching logic in the cache controller) that bridges the gap between the encryption system and the cache management system. This intermediary enables key-based cache line identification and flushing without requiring the OS to directly handle encryption keys, maintaining security while enabling granular management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If the hierarchical cache structure is flushed based on key identification code and address, then cache management precision is improved, but the complexity of cache flushing operations increases

Engineering Contradiction:
Improvecache management precisionVSAvoidcache flushing operation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-storing the key identification code in the cache tag structure along with the address tags. This preliminary organization of data allows the flushing operation to simply compare and match without complex processing, achieving high precision with minimal operational complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent adds another dimension (key identification code dimension) to the traditional cache tag structure. This additional dimension enables precise key-based flushing operations without complicating the existing address matching mechanism, as the key comparison operates independently in parallel with address comparison.

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

Data Source

PatentUS12222867B2Processor, computer system, and method for flushing hierarchical cache structure based on a designated key identification code and a designated address
Publication Date: 2025.02.11 VIA ALLIANCE SEMICON CO LTD
  • US12222867B2 patent drawing
  • US12222867B2 patent drawing
  • US12222867B2 patent drawing

AI summary

A technology flushing a hierarchical cache structure based on a designated key identification code and a designated address. A processor includes a first core and a last level cache (LLC). The first core includes a decoder, a memory ordering buffer, and a first in-core cache module. In response to an Instruction Set Architecture (ISA) instruction that requests to flush a hierarchical cache structure according to a designated key identification code and a designated address, the decoder outputs at least one microinstruction. According to the at least one microinstruction, a flushing request with the designated key identification code and the designated address is provided to the first in-core cache module through the memory ordering buffer, and then the first in-core cache module provides the LLC with the flushing request, so that the LLC flushes its matching cache line which matches the designated key identification code and the designated address.