Trusted Execution Thread in Multithreaded Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for trusted execution environments are either costly due to dedicated cores or lack hardware-based security, and they often require context switches and additional security measures, which can lead to inefficiencies and security vulnerabilities.

Innovation Solution

A multithreaded system design where one or more hardware threads are dedicated to execute trusted code, sharing resources with untrusted threads, providing a flexible and cost-effective approach that eliminates the need for context switches and reduces security risks by using interconnect-based access control and secure boot processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a separate core is allocated to realize a trusted execution environment, then security isolation is improved, but cost and resource usage increase

Engineering Contradiction:
Improvesecurity isolationVSAvoidcost
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments hardware threads into trusted and untrusted categories, with dedicated trusted hardware threads executing only authenticated code while untrusted threads run unverified code. This segmentation provides security isolation without requiring a separate physical core, resolving the contradiction between security and cost.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The trusted hardware threads can dynamically execute different trusted applications through secure boot processes and code authentication, making the same hardware thread serve multiple security-critical functions. This multi-functionality reduces the need for dedicated cores for each trusted application, lowering cost while maintaining security.

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

2Reliability

If a complete dedicated core is used for trusted execution environment, then security is improved, but flexibility and resource utilization deteriorate

Engineering Contradiction:
ImprovesecurityVSAvoidflexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system dynamically assigns trusted applications to trusted hardware threads through secure boot processes and runtime code authentication. The configuration can be changed without hardware reconfiguration, providing flexibility while maintaining security isolation through hardware-enforced thread dedication.

Inventive Principle:
Principle #15Dynamics

3Productivity

If the core executes trusted and untrusted code in the same hardware thread, then resource utilization is improved, but security risks and context switch overhead increase

Engineering Contradiction:
Improveresource utilizationVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments execution contexts by dedicating specific hardware threads to trusted code only, preventing untrusted code from accessing trusted execution resources. This segmentation eliminates security risks associated with mixed execution while maintaining efficient resource utilization through shared physical core resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The trusted hardware thread configuration acts as an intermediary layer between the physical core and the code being executed. This configuration, protected from untrusted bus masters, ensures that only authenticated code can execute on trusted threads, providing security without requiring separate physical cores.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If context switches are used to manage trusted and untrusted code, then flexibility is improved, but performance and security deteriorate due to register dumps and switch overhead

Engineering Contradiction:
ImproveflexibilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments execution contexts into separate hardware threads, eliminating the need for context switches between trusted and untrusted code. Each thread maintains its own execution state, allowing flexible task switching without the performance overhead of register dumps and context switch operations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9892284B2Trusted execution thread in an embedded multithreaded system
Publication Date: 2018.02.13 MAXLINEAR INC
  • US9892284B2 patent drawing
  • US9892284B2 patent drawing
  • US9892284B2 patent drawing

AI summary

A multithreaded system includes a processor core having a plurality of hardware threads. One or more of the hardware threads is dedicated to execute only trusted code and the remaining hardware threads are configured to execute untrusted code. The multithreaded system further includes a DLNA (Digital Living Network Alliance) server configured to communicate secure requests to one or more of the hardware threads dedicated to execute only trusted code and communicate other requests to one or more of the remaining hardware threads configured to execute untrusted code.