Speculative Execution Delay Notification for Security Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern microprocessors have vulnerabilities that allow malicious programs to steal data by exploiting speculative execution, making it difficult to ensure security and prevent exploits like Meltdown and Spectre.

Innovation Solution

A method and system that introduce a first load instruction with a delay notification, allowing a long delay in data return while executing speculative storage access instructions, simulating a scenario to verify speculative execution and detect potential security leaks without requiring complex sequences of delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If speculative execution is allowed to proceed without delays, then processor productivity is improved, but security vulnerabilities are exposed allowing malicious programs to steal data

Engineering Contradiction:
Improveprocessor execution speedVSAvoidsecurity vulnerability to data theft
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a delay notification mechanism that is set in advance on a load instruction. This preliminary action allows the system to prepare for potential security issues by pre-establishing a delay period before data return, enabling speculative execution to proceed initially while having a controlled mechanism to pause and verify security conditions before completing the operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The delay notification acts as an intermediary mechanism between the speculative execution unit and the data return path. It introduces a controlled intermediate state where speculative execution can proceed but data cannot be immediately returned, allowing security verification to occur in the intermediate period without completely blocking productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a delay notification mechanism is introduced to verify speculative execution, then security detection capability is improved, but processor execution time increases

Engineering Contradiction:
Improvesecurity verification capabilityVSAvoidprocessor cycle delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The delay notification mechanism applies a delay selectively rather than universally. It only introduces delays for specific load instructions that have the delay notification set, allowing normal execution to continue for other instructions. This partial application of delay reduces the overall time loss while maintaining security verification capability where needed.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If complex sequences of delays are used to simulate speculative execution scenarios, then measurement precision is improved, but device complexity increases

Engineering Contradiction:
Improvespeculative execution verification accuracyVSAvoidinstruction sequence complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the delay mechanism from the instruction sequence itself and places it in the execution control logic. Instead of requiring complex sequences of delay instructions to be manually constructed, the delay notification is set by the execution logic based on the load instruction characteristics, simplifying the instruction sequence while maintaining verification precision.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11443044B2Targeted very long delay for increasing speculative execution progression
Publication Date: 2022.09.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11443044B2 patent drawing
  • US11443044B2 patent drawing

AI summary

A computer-implemented method for advancing speculative execution in microarchitectures is disclosed. A non-limiting example of the computer-implemented method includes receiving, by a processor, a test scenario including a first load instruction from a first memory location flagged with a delay notification and a speculative memory access instruction from a second memory following the first load instruction. The method executes, by the processor, the first load instruction from the first memory location and delays a return of data from the first memory location for a number of processor cycles. The method executes, by the processor, the speculative storage access instruction from the second memory location during the delay in returning the data from the first memory location.