Context Save Restore Instructions for Floating Point Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face challenges in efficiently managing context data, particularly in secure and non-secure domains, where context data needs to be saved and restored efficiently to prevent data leakage and ensure proper context initialization across different domains and threads.

Innovation Solution

The introduction of context save and restore instructions (CXTSave and CXTRestore) that selectively save and restore floating point context data based on usage flags and access control, allowing for lazy saving and restoring, and enabling hardware or software management of context data, ensuring secure data handling and efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If context data is saved and restored frequently to ensure security and proper context initialization, then security and correctness are improved, but processing overhead and system performance deteriorate

Engineering Contradiction:
Improvecontext data securityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies partial action by selectively saving context data only when necessary. The system uses usage flags to track whether floating point context data has been accessed, and only performs save/restore operations when the flags indicate actual usage. This avoids unnecessary full context saves, reducing overhead while maintaining security for actually used data.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements self-service through automatic context management. Usage flags are automatically set when floating point instructions are executed, and the context save/restore mechanism automatically checks these flags to determine whether saving is needed. This automated tracking and selective saving reduces manual intervention and optimizes performance without compromising security.

Inventive Principle:
Principle #25Self-service

2Reliability

If all context data is saved to prevent data leakage between domains, then security is improved, but memory usage and processing overhead worsen

Engineering Contradiction:
Improvedata leakage preventionVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the necessary context data for saving based on usage flags. Instead of saving all context data unconditionally, the system checks the usage flags to identify which floating point context data has actually been accessed and extracts only those specific items for saving. This selective extraction reduces memory overhead while maintaining security by ensuring used data is protected.

Inventive Principle:
Principle #2Taking out (Extraction)

3Manufacturing precision

If context data is saved eagerly to ensure correct restoration, then context initialization accuracy is improved, but processing time increases

Engineering Contradiction:
Improvecontext initialization accuracyVSAvoidcontext save time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs partial saving actions based on usage flags. Instead of eagerly saving all context data, it checks the flags to determine which data items were actually used and saves only those. This ensures accurate restoration of used data while avoiding unnecessary save operations on unused data, thereby reducing processing time without compromising initialization accuracy for relevant context.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP3649549B1Context data management
Publication Date: 2023.12.20 ARM LTD
  • EP3649549B1 patent drawingFigure 1
  • EP3649549B1 patent drawingFigure 2
  • EP3649549B1 patent drawingFigure 3

AI summary

A data processing system includes processing circuitry for executing context-data- dependent-program instructions which are decoded by decoder circuitry. Such context-data- dependent program instructions perform processing which are dependent upon currently existing context data. As an example, the context-data-dependent program instructions may be floating point instructions and the context data may be rounding mode information. The decoder circuitry supports a context save instruction which saves context data when it is marked as having been used and saves default context data when the current context data is marked as not having been used. The decoder circuitry further supports a context restore instruction which restores context data when the current context data is marked as having been used and permits the current context data to continue for future use when it is marked as currently unused.