Memory Security Circuitry for Exception-Aware Branch Permissions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in enforcing permissions for code execution, particularly when exceptions occur, as they require immediate permission checks that can hinder the execution of exception handling routines.
Innovation Solution
Implement memory security circuitry that temporarily disables permission checks during exceptions to allow execution of exception handling routines, re-enabling checks at appropriate control flow instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If memory security circuitry enforces permission checks on all branches, then code execution security is improved, but exception handling execution is hindered
Solution Approach 1:
The permission check mechanism is made dynamic by allowing it to be selectively enabled or disabled based on execution context. The disabling circuitry receives signals from exception handling circuitry to temporarily disable permission checks when exceptions occur, and memory security circuitry restores checks when returning from exceptions. This dynamic adjustment resolves the contradiction by adapting the security enforcement to the specific execution phase.
Solution Approach 2:
The system performs preliminary actions by pre-configuring the disabling circuitry to automatically disable permission checks when exception handling circuitry is activated. This preliminary disabling action ensures that exception handling routines can execute immediately without being blocked by security checks, while the framework is already in place to restore security checks when appropriate.
2Reliability
If permission checks are enforced at all branch points, then access control is improved, but execution overhead increases
Solution Approach 1:
Permission checks are performed periodically at normal branch points during regular code execution, but are suspended during exception handling phases. The disabling circuitry creates periods where checks are active (normal execution) and periods where they are inactive (exception handling), reducing overall execution overhead while maintaining access control during critical security-sensitive operations.
Solution Approach 2:
The permission check enforcement is applied locally to different execution contexts rather than uniformly. Normal code execution paths maintain strict permission checking, while exception handling paths are granted temporary exemption. This localized differentiation allows the system to maintain high security where needed while reducing overhead in specific contexts where checks would be redundant or counterproductive.
Data Source
AI summary
An apparatus is provided in which memory security circuitry responds to a branch by determining whether there is permission for the execution context that executes the branch to branch to the target of the branch and taking an error action in the absence of such permission. Exception handling circuitry responds to an exception by branching to an exception handling routine and disabling circuitry disables the memory security circuitry in response to the exception.


