Dual ECC Check for TEE Metadata Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing systems face challenges in maintaining reliability, availability, and serviceability when using Error-Correcting Code (ECC) memory for security configuration metadata, as 'stealing' bits from ECC degrades ECC guarantees and can eliminate capabilities like single data device correction (SDDC), especially in trusted execution environments (TEE) where autonomous entities are unsure whether a page is associated with TEE or non-TEE.

Innovation Solution

Implementing a method where two ECC checks are performed for each possible TEE bit value during memory access, allowing the correct TEE state to be deduced, and using processor-provided TEE configuration metadata for encoding and verification, ensuring single data device correction (SDDC) while maintaining ECC reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If bits are stolen from ECC memory for TEE metadata storage, then security metadata can be stored in-line with data, but ECC guarantees are degraded and SDDC capability is eliminated

Engineering Contradiction:
Improvestorage capacity for security metadataVSAvoidECC guarantees and SDDC capability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent divides the memory system into two independent ECC domains: one for TEE data with TEE metadata, and another for non-TEE data. Each domain has its own ECC code and correction capabilities, allowing SDDC to be maintained within each segment while accommodating metadata storage requirements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (dual ECC checking system) that mediates between the need for metadata storage and the need to maintain ECC guarantees. By performing separate ECC checks for TEE and non-TEE configurations, the system can determine the correct state without compromising correction capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If autonomous entities access memory without knowing TEE state, then memory access flexibility is maintained, but correct ECC key selection cannot be determined

Engineering Contradiction:
Improvememory access flexibilityVSAvoidTEE state detection
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent performs preliminary dual ECC checks for both TEE and non-TEE configurations before actual memory access. This preliminary action determines the correct TEE state and selects the appropriate ECC key in advance, allowing autonomous entities to access memory flexibly while ensuring correct key selection through pre-computed verification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the results of dual ECC checks provide information about the correct TEE state. The system uses this feedback to automatically select the appropriate ECC key and configuration, enabling autonomous entities to determine TEE state without external guidance while maintaining access flexibility.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240311234A1Secure error correcting code (ECC) trust execution environment (TEE) configuration metadata encoding
Publication Date: 2024.09.19 INTEL CORP
  • US20240311234A1 patent drawing
  • US20240311234A1 patent drawing
  • US20240311234A1 patent drawing

AI summary

The technology disclosed herein includes a memory to store a plurality of pages, a page of the plurality of pages configured as one of a trusted execution environment (TEE) configuration and a non-TEE configuration, and a memory controller to attempt to access the page using a memory address and the TEE configuration and generate a first error correcting code (ECC); and when data for the first ECC is at least one of correct and correctable by ECC for the attempt to access the page using the TEE configuration, attempt to access the page using the memory address and the non-TEE configuration and generate a second ECC, and when data the second ECC is at least one of correct and correctable by ECC for the attempt to access the page using the non-TEE configuration, store the memory address as an unknown cacheline address.