Instruction Cache Allocation Control for Side-Channel Attack Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Speculative execution in data processing apparatuses can lead to vulnerability in instruction cache storage, allowing cache timing side-channel attacks where untrusted code can exploit speculative memory reads to leak sensitive information by determining cache allocation patterns.

Innovation Solution

Implementing cache control circuitry that selectively allocates instructions into the instruction cache only if they are of a specific type, such as a 'landing pad' instruction, thereby preventing unauthorized allocation and mitigating the risk of cache timing side-channel attacks by ensuring only legitimate instructions are cached.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If speculative execution is enabled to improve processing speed, then productivity is improved, but security against cache timing side-channel attacks deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidvulnerability to cache timing side-channel attacks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent applies preliminary anti-action by implementing a cache allocation policy that proactively prevents allocation of instructions fetched from branch target addresses to the instruction cache. This preemptive measure blocks the attack vector before it can be exploited, while still allowing speculative execution to proceed for performance optimization. The system anticipates potential side-channel attacks and neutralizes them in advance through selective cache allocation restrictions.

Inventive Principle:
Principle #9Preliminary anti-action

2Productivity

If instructions are allocated into instruction cache storage to improve execution speed, then productivity is improved, but security against information leakage deteriorates

Engineering Contradiction:
Improveexecution speedVSAvoidinformation leakage through cache timing analysis
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent applies local quality by implementing differential cache allocation policies for different instruction types and memory regions. Specifically, instructions fetched from branch target addresses are excluded from cache allocation, while other instructions continue to be cached normally. This localized restriction applies security controls only where needed (at branch targets) without compromising overall cache performance or execution speed for legitimate code paths.

Inventive Principle:
Principle #3Local quality

3Reliability

If cache control restrictions are applied to prevent unauthorized allocation, then security is improved, but device complexity increases

Engineering Contradiction:
Improvesecurity resilienceVSAvoidcache control mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing cache allocation control that leverages existing processor components and mechanisms. The cache control logic utilizes information already available in the processor (such as branch target address identification) to make allocation decisions, rather than requiring entirely new control infrastructure. This approach achieves enhanced security through intelligent use of existing resources, minimizing the increase in device complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11340901B2Apparatus and method for controlling allocation of instructions into an instruction cache storage
Publication Date: 2022.05.24 ARM LTD
  • US11340901B2 patent drawing
  • US11340901B2 patent drawing
  • US11340901B2 patent drawing

AI summary

An apparatus and method are provided for controlling allocation of instructions into an instruction cache storage. The apparatus comprises processing circuitry to execute instructions, fetch circuitry to fetch instructions from memory for execution by the processing circuitry, and an instruction cache storage to store instructions fetched from the memory by the fetch circuitry. Cache control circuitry is responsive to the fetch circuitry fetching a target instruction from a memory address determined as a target address of an instruction flow changing instruction, at least when the memory address is within a specific address range, to prevent allocation of the fetched target instruction into the instruction cache storage unless the fetched target instruction is at least one specific type of instruction. It has been found that such an approach can inhibit the performance of speculation-based caching timing side-channel attacks.