Speculative Program Counter Range Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data processing architectures face inefficiencies in handling program counter modifications, particularly during branch instructions, as existing solutions require costly hardware modifications to provide predictive functionality for maintaining authorized program counter ranges, leading to potential delays in instruction execution.

Innovation Solution

An apparatus and method that utilize speculative execution of instructions based on predicted branch outcomes, maintaining a speculatively executed program counter range and verifying it against the permitted range upon resolution of the modification, allowing for continuous instruction execution without the need for predictive capability in program counter range indications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If branch prediction and speculative execution are used to improve instruction execution speed, then execution speed is improved, but hardware complexity increases due to required predictive functionality configuration

Engineering Contradiction:
Improveinstruction execution speedVSAvoidhardware configuration complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-fetching instructions from predicted target addresses before branch resolution occurs. The fetch circuitry speculatively executes instructions based on predicted branch outcomes, allowing the processor to continue execution without waiting for branch resolution. This preliminary execution of instructions ahead of time improves execution speed while avoiding the need for complex predictive configuration of the instruction fetch unit.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If program counter range verification is performed after branch resolution to ensure security, then security is improved, but execution speed decreases due to verification delays

Engineering Contradiction:
Improveprogram counter range securityVSAvoidinstruction execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent applies skipping by temporarily bypassing program counter range verification during speculative execution. Instructions are fetched and executed speculatively without immediate verification of whether their program counter addresses fall within the authorized range. The verification is deferred until after branch resolution, at which point the speculatively executed instructions are either committed or discarded based on whether the predicted branch outcome was correct. This approach maintains security while minimizing verification delays during critical execution paths.

Inventive Principle:
Principle #21Skipping (Rushing through)

Data Source

PatentUS10635445B2Handling modifications to permitted program counter ranges in a data processing apparatus
Publication Date: 2020.04.28 ARM LTD
  • US10635445B2 patent drawing
  • US10635445B2 patent drawing
  • US10635445B2 patent drawing

AI summary

An apparatus and method of operating an apparatus are disclosed. The apparatus has a program counter permitted range storage element defining a permitted range of program counter values for the sequence of instructions it executes. Branch prediction circuitry predicts target instruction addresses for branch instructions. In response to a program counter modifying event, a program counter speculative range storage element is updated corresponding to each speculatively executed instruction after a branch instruction. Program counter permitted range verification circuitry is responsive to resolution of a modification of the program counter permitted range indication resulting from the program counter modifying event to determine whether the speculatively executed program counter range satisfies the permitted range of program counter values. A branch mis-prediction mechanism may support the response of the apparatus if the permitted range of program counter values is violated.