Compiler-Assigned Access Rights for Fault-Resilient Program Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processing units are vulnerable to vulnerabilities and dysfunctions due to uncontrolled operations and illicit data access when errors or fault injections occur, particularly in hierarchized execution contexts with privileged and non-privileged, or secure and non-secure access levels, leading to potential secret leaks and data corruption.

Innovation Solution

A method involving a compilation phase that generates instructions in machine language with exclusive access right levels, followed by a post-processing step to ensure instructions can only access memory areas corresponding to their intended execution context, preventing illicit data access by substituting instructions with functionally equivalent ones having the appropriate access right level.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system uses hierarchized access right levels (privileged/non-privileged or secure/non-secure) to protect sensitive functions and data, then security and data integrity are improved, but the system becomes vulnerable to illicit data access when errors or fault injections occur that prevent context transitions

Engineering Contradiction:
Improvedata integrityVSAvoidvulnerability to fault injection
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The compilation phase preliminarily generates instructions with predetermined access right levels before execution. Instructions are compiled with specific access rights (privileged or non-privileged, secure or non-secure) matched to their intended execution context, so that even if context transition fails due to errors or fault injections, the instructions inherently cannot access unauthorized data.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the access right level parameter of instructions during compilation based on their intended execution context. By modifying the access right attribute of instructions at compile time, the system ensures that instructions executed in a particular context (privileged, non-privileged, secure, or non-secure) cannot access data outside their authorized level, thereby preventing data leakage even when context transitions fail.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If instructions are generated with specific access right levels during compilation, then illicit data access is prevented, but the compilation process becomes more complex

Engineering Contradiction:
Improveaccess controlVSAvoidcompilation process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The compilation phase is enhanced to handle multiple execution contexts (privileged, non-privileged, secure, non-secure) universally. The compiler generates different access right levels for instructions based on their target execution context, allowing a single compilation process to serve multiple security domains without requiring separate compilation mechanisms for each context.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent creates copies of instructions with different access right levels during compilation. For each instruction, the compiler generates appropriate access right attributes that match the intended execution context, effectively copying the instruction with modified access control properties to ensure proper data access restrictions are enforced at runtime.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS20250371195A1Method for executing a software program by a processing unit comprising a compilation phase
Publication Date: 2025.12.04 STMICROELECTRONICS (GRAND OUEST) SAS
  • US20250371195A1 patent drawing
  • US20250371195A1 patent drawing
  • US20250371195A1 patent drawing

AI summary

In an embodiment, a method includes compiling, by a processor, a software program intended to be executed by the processor, the processor having secure and non-secure access right level execution contexts, privileged and non-privileged access right level execution contexts, or a combination thereof. The method further includes generating, in the compilation phase, instructions in machine language having an exclusive secure access right level when the instructions are intended to be executed in the secure access right level execution context, and instructions having a non-privileged access right level when the instructions are intended to be executed in the non-privileged access right level execution context.