Microprocessor Control Logic Mitigates Side Channel Attacks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Side channel attacks exploit microarchitectural speculation in high-performance CPUs, allowing attackers to infer sensitive information through timing differences in speculative execution, which existing technologies have not adequately mitigated.

Innovation Solution

A microprocessor design that includes a front end processing instructions in program order and a back end performing speculative execution out of program order, with control logic to detect architectural register results causing exceptions and prevent dependent instructions from consuming them, thereby inhibiting or canceling cache line fill requests to prevent side channel attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If speculative execution is enabled to improve processor performance, then execution speed is improved, but security against side channel attacks deteriorates

Engineering Contradiction:
Improveexecution speedVSAvoidside channel attack vulnerability
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary anti-action by detecting architectural exceptions before they can be exploited by side channel attacks. The control logic monitors producing execution units and preemptively flushes the pipeline or prevents consuming execution units from using architectural register results when an exception is detected, thereby countering potential attacks before they can extract sensitive information through timing differences

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The patent introduces an intermediary control logic component that sits between the producing and consuming execution units. This intermediary monitors for architectural exceptions and mediates the flow of architectural register results, blocking potentially vulnerable data flow while allowing legitimate speculative execution to proceed, thus resolving the contradiction between performance and security

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If architectural register results from exception-causing instructions are allowed to be consumed, then processor throughput is improved, but information leakage through timing channels occurs

Engineering Contradiction:
Improveprocessor throughputVSAvoidinformation leakage
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent extracts the problematic architectural register results that originate from instructions causing architectural exceptions. The control logic identifies and isolates these specific results, preventing them from being consumed by dependent instructions while allowing other legitimate results to flow normally, thereby removing the information leakage vector without significantly impacting overall throughput

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies local quality by selectively controlling the flow of architectural register results based on their origin. Instead of globally disabling speculative execution or throughput optimization, the control logic applies fine-grained control to specific results from specific producing execution units that are determined to pose a security risk, allowing legitimate high-throughput operation to continue while blocking only the vulnerable paths

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11868469B2Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception
Publication Date: 2024.01.09 VENTANA MICRO SYSTEMS INC
  • US11868469B2 patent drawing
  • US11868469B2 patent drawing
  • US11868469B2 patent drawing

AI summary

A microprocessor that mitigates side channel attacks includes a front end that processes instructions in program order and a back end that performs speculative execution of instructions out of program order in a superscalar fashion. Producing execution units produce architectural register results during execution of instructions. Consuming execution units consume the produced architectural register results during execution of instructions. The producing and consuming execution units may be the same or different execution units. Control logic detects that, during execution by a producing execution unit, an architectural register result producing instruction causes a need for an architectural exception and consequent flush of all instructions younger in program order than the producing instruction and prevents all instructions within the back end that are dependent upon the producing instruction from consuming the architectural register result produced by the producing instruction.