Cache Capability Metadata Modification Markers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In capability-based architectures, there is a need for improved mechanisms to manage capability metadata, particularly to distinguish between data blocks representing capabilities and general-purpose data, and to efficiently track changes in capability metadata to prevent unauthorized access and optimize storage operations.

Innovation Solution

An apparatus and method utilizing cache storage with capability metadata modification markers to indicate changes in capability metadata associated with data blocks, allowing for efficient tracking and separate handling of capabilities and data values, thereby ensuring security and reducing unnecessary memory accesses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If capability metadata is stored and tracked for every data block in cache storage, then security and functional correctness are improved, but device complexity and storage overhead increase

Engineering Contradiction:
ImprovesecurityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The capability metadata is segmented into individual bits (capability tag bits) that can be independently managed and tracked. Each data block in the cache has associated capability metadata bits that can be separately modified and monitored, allowing fine-grained security control without requiring complex centralized management structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache control circuitry automatically sets capability metadata modification markers in response to write operations, without requiring external intervention. The system self-manages the tracking of capability metadata changes through automatic marker setting when data blocks are modified, reducing the need for complex external control mechanisms.

Inventive Principle:
Principle #25Self-service

2Measurement precision

If capability metadata modification markers are set for every write operation, then tracking precision is improved, but productivity and processing speed deteriorate

Engineering Contradiction:
Improvetracking precisionVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Instead of tracking every possible change, the system uses modification markers that are set selectively based on write operations. The capability metadata modification marker is set only when necessary to indicate a change state, allowing the system to achieve sufficient tracking precision without the overhead of continuous or exhaustive monitoring of all data block modifications.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If capability metadata is stored separately from data blocks, then security control is improved, but loss of time due to separate accesses increases

Engineering Contradiction:
Improvesecurity controlVSAvoidaccess time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The capability metadata is merged with the data blocks in the same cache storage structure, allowing both data and capability information to be accessed together in a single cache operation. This integration eliminates the need for separate access operations to retrieve capability metadata, reducing access time while maintaining security control through the preserved capability tag bits and modification markers.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3619615B1An apparatus and method for managing capability metadata
Publication Date: 2021.12.01 ARM LTD
  • EP3619615B1 patent drawingFigure 1
  • EP3619615B1 patent drawingFigure 2A~2B
  • EP3619615B1 patent drawingFigure 3

AI summary

Apparatus comprising cache storage and a method of operating such a cache storage are provided. Data blocks in the cache storage have capability metadata stored in association therewith identifying whether the data block specifies a capability or a data value. At least one type of capability is a bounded pointer. Responsive to a write to a data block in the cache storage a capability metadata modification marker is set in association with the data block, indicative of whether the capability metadata associated with the data block has changed since the data block was stored in the cache storage. This supports the security of the system, such that modification of the use of a data block from a data value to a capability cannot take place unless intended. Efficiencies may also result when capability metadata is stored separately from other data in memory, as fewer accesses to memory can be made.