TEE Scheduling for Multicore Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Trusted Execution Environments (TEEs) in multicore processors are limited by restrictions to single-thread execution on a single core, which hampers the performance of biometric authentication and other sensitive applications due to security concerns, as they require significant computing power and concurrent execution capabilities.
Innovation Solution
Implementing a method that uses a REE global scheduler and a TEE scheduler to manage worker threads, allowing concurrent multithreaded execution of TEEs across multiple cores while maintaining security by controlling thread scheduling within the TEE and minimizing information exchange with the REE, and dynamically adjusting core resources based on thread statistics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If biometric authentication is executed in the TEE to enhance security, then security is improved, but execution performance deteriorates due to single-thread restriction
Solution Approach 1:
The patent segments the TEE execution model by introducing multiple worker threads that can execute in parallel within the TEE environment. Each worker thread can independently execute TEE code, allowing biometric authentication and other security-critical applications to utilize multiple cores simultaneously while maintaining TEE security guarantees through the scheduler's coordination
2Productivity
If multiple TEE threads are executed concurrently on multiple cores, then execution performance is improved, but security risks increase due to potential concurrency issues
Solution Approach 1:
The patent introduces a TEE scheduler as an intermediary layer that manages multiple worker threads executing TEE code on different cores. The scheduler coordinates thread execution, manages resource allocation, and ensures data consistency across cores through controlled access to shared TEE resources, enabling parallel execution while maintaining security
Solution Approach 2:
The scheduler implements feedback mechanisms to monitor the execution state of multiple TEE worker threads, dynamically adjusting scheduling decisions to prevent concurrency conflicts and maintain security invariants while maximizing parallel execution efficiency
3Reliability
If the TEE is restricted to single-thread execution to maintain data consistency, then security is maintained, but computing resource utilization deteriorates
Solution Approach 1:
The patent transforms the static single-thread TEE execution model into a dynamic multi-threaded system where the scheduler can adaptively allocate and manage multiple worker threads based on workload demands, enabling efficient utilization of available computing resources while maintaining data consistency through coordinated access control
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
A trusted execution environment scheduling method for a device comprising a multicore processor, the processor operable to execute a rich execution environment (REE) and a trusted execution environment (TEE), the method comprising: providing a REE global scheduler in the REE, the REE global scheduler operable to schedule threads for execution in the REE; providing a TEE scheduler in the TEE, the TEE scheduler operable to schedule threads for execution in the TEE, wherein the TEE scheduler determines a number of runnable TEE threads which are either presently, or are awaiting, execution in the TEE and stores the number of runnable TEE threads in a location accessible to threads executing in the REE; providing a plurality of worker threads in the REE, the worker threads being in an activated state or in an deactivated state, wherein when an activated worker thread of the plurality of worker threads is executed according to the schedule of the REE global scheduler the worker thread makes a call to the TEE to cause execution of the TEE on the same core as the worker thread, and wherein the worker thread retrieves the number of runnable TEE threads and compares the retrieved number of runnable TEE threads to the number of currently activated worker threads.