Speculative Branch Execution Gating With Object ID Checks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Speculative execution in computer processors leads to security vulnerabilities such as Meltdown and Spectre, which can compromise the kernel of the operating system.
Innovation Solution
Utilizing static object identification numbers in memory addresses to prevent speculative execution into kernel objects, thereby enhancing security by aborting speculative execution when a memory address's object identification number differs from the previous instruction's, ensuring secure conditional speculative instruction execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If speculative execution is performed to improve processing speed, then productivity increases, but security reliability deteriorates due to vulnerabilities like Meltdown and Spectre
Solution Approach 1:
The patent applies preliminary action by checking object identification numbers before speculative execution occurs. The system pre-identifies the object ID of the current instruction and compares it with the object ID of the target instruction before allowing speculative execution to proceed, preventing security vulnerabilities from occurring in the first place
Solution Approach 2:
The patent introduces object identification numbers as an intermediary mechanism between the instruction stream and the execution unit. This intermediary ID serves as a mediator that verifies whether speculative execution should be permitted, acting as a security gatekeeper without blocking legitimate performance optimizations
2Reliability
If object identification checking is implemented to prevent speculative execution attacks, then security reliability improves, but device complexity increases
Solution Approach 1:
The patent extracts the security verification function from the main execution path by using dedicated object identification numbers that are already present in the instruction stream. Rather than adding complex verification logic throughout the processor, the solution extracts and utilizes the embedded object IDs for security checking
Solution Approach 2:
The patent implements self-service by using the object identification numbers that are already embedded within the instruction stream itself. The instructions carry their own identity information, which they use to verify their own execution context, eliminating the need for external security verification infrastructure
Data Source
AI summary
A method performed in a processor, includes: receiving, in the processor, a branch instruction in the processing; determining, by the processor, an address of an instruction after the branch instruction as a candidate for speculative execution, the address including an object identification and an offset; and determining, by the processor, whether or not to perform speculative execution of the instruction after the branch instruction based on the object identification of the address.


