Capability Generating Circuitry for Efficient Control Flow Changes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems require multiple operations to implement control flow changes, which can be inefficient and lead to performance bottlenecks due to the need to load and apply new capabilities for access permissions, especially when transitioning between code portions.
Innovation Solution
The system includes control flow change handling circuitry and capability generating circuitry that determines and generates a new capability based on access permissions data stored preceding the control flow change target address, allowing efficient capability management and reducing the need for redundant capability storage and loading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If capability data is stored as literal data in the first code portion to enable control flow change, then access permissions can be changed, but at least two operations are required (loading the data and applying it as a new capability)
Solution Approach 1:
The capability access permissions data is stored in advance at a memory address preceding the control flow change target address. The capability generating circuitry retrieves this pre-stored data and generates the new capability automatically during the control flow change operation, eliminating the need for separate load and apply operations.
Solution Approach 2:
The system uses itself to generate the new capability by automatically retrieving the capability access permissions data from the predetermined memory address and generating the capability without requiring external intervention or multiple separate operations.
2Productivity
If capability access permissions data is stored at a memory address preceding the control flow change target address, then the capability can be generated automatically, but additional memory access is required
Solution Approach 1:
The capability access permissions data is merged with the code portion by storing it at a memory address preceding the control flow change target address within the same code portion. This combines the capability data with the instruction stream, allowing automatic retrieval during normal instruction fetch operations.
Solution Approach 2:
The capability generating circuitry acts as an intermediary that automatically retrieves the capability access permissions data from the predetermined memory address and generates the new capability, mediating between the stored data and the control flow change operation.
Data Source
Figure 1
Figure 2A~2B
Figure 3
AI summary
Apparatus comprises a processor to execute program instructions stored at respective memory addresses, processing of the program instructions being constrained by a prevailing capability defining at least access permissions to a set of one or more memory addresses; the processor comprising: control flow change handling circuitry to perform a control flow change operation, the control flow change operation defining a control flow change target address indicating the address of a program instruction for execution after the control flow change operation; and capability generating circuitry to determine, in dependence on the control flow change target address, an address at which capability access permissions data is stored; the capability generating circuitry being configured to retrieve the capability access permissions data and to generate a capability for use as a next prevailing capability in dependence upon at least the capability access permissions data.