Selective Branch Target Buffer Access for Spectre Mitigation

Solution Overview

Problem

Side-channel attacks, such as Spectre and Meltdown, exploit speculative execution and branch prediction vulnerabilities to access protected memory, compromising system security by using timing and cache information to deduce kernel memory contents.

Innovation Solution

The implementation of a segregated Branch Target Buffer (BTB) with distinct portions for system-level and user-level branch predictions, where the BTB control circuitry identifies the origin of branch prediction inquiries and restricts access to prevent user-level attacks from corrupting system-level branch prediction data, thereby minimizing the success of side-channel attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a unified Branch Target Buffer is used for both system-level and user-level branch predictions, then the BTB can provide comprehensive branch prediction support, but user-level attacks can corrupt system-level branch prediction data and access protected kernel memory

Engineering Contradiction:
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The Branch Target Buffer is segmented into separate data portions: a first BTB data portion for system-level branch predictions and a second BTB data portion for user-level branch predictions. This segmentation prevents user-level attacks from corrupting system-level branch prediction data while maintaining comprehensive branch prediction support for both privilege levels.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If user-level processes can access the entire BTB, then branch prediction accuracy may improve, but security is compromised as attackers can read kernel memory through speculative execution

Engineering Contradiction:
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

Different portions of the BTB are assigned different access permissions based on their intended use. The system-level BTB data portion is restricted to kernel-level access only, while the user-level BTB data portion is accessible to user processes. This local quality differentiation maintains branch prediction accuracy for each level while ensuring security through selective access control.

Inventive Principle:
Principle #3Local quality

3Reliability

If the BTB is segregated into separate portions for system and user levels, then security against side-channel attacks is improved, but the device complexity increases

Engineering Contradiction:
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The BTB is divided into distinct data portions with clear access control policies. The control circuitry identifies the privilege level of incoming branch prediction inquiries and routes them to the appropriate BTB data portion. This segmentation approach enhances security by preventing cross-level contamination while maintaining a relatively simple control mechanism based on privilege level identification and selective access.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10831491B2Selective access to partitioned branch transfer buffer (BTB) content
Publication Date: 2020.11.10
  • US10831491B2 patent drawing
  • US10831491B2 patent drawing
  • US10831491B2 patent drawing

AI summary

The present disclosure is directed to systems and methods for mitigating or eliminating the effectiveness of a side channel attack, such as a Spectre type attack, by limiting the ability of a user-level branch prediction inquiry to access system-level branch prediction data. The branch prediction data stored in the BTB may be apportioned into a plurality of BTB data portions. BTB control circuitry identifies the initiator of a received branch prediction inquiry. Based on the identity of the branch prediction inquiry initiator, the BTB control circuitry causes BTB look-up circuitry to selectively search one or more of the plurality of BTB data portions.