Processor Asynchronous Event Status and Control Register for Assist Thread Initiation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The performance benefit of simultaneous multi-threading in processors is diminished due to the time-consuming process of requesting permission from a supervisory program to utilize additional threads, resulting in significant overhead and delayed utilization of additional threads.
Innovation Solution
A processor detects asynchronous events during the execution of a controlling thread and initiates an assist thread without requiring permission from a supervisory program, allowing for simultaneous execution of both threads by utilizing an Asynchronous Event Status and Control Register (AESCR) to manage the initiation and execution of assist threads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a program requests permission from a supervisory program to utilize an additional thread, then thread usage is controlled and managed, but the process becomes time-consuming and introduces significant overhead
Solution Approach 1:
The processor enables programs to self-initiate assist threads directly without requiring external permission from a supervisory program. The AESCR allows programs to autonomously control thread initiation by setting event masks and enabling asynchronous thread startup, eliminating the time-consuming permission request process while maintaining controlled thread usage through program-defined event conditions
Solution Approach 2:
The system performs preliminary configuration by allowing programs to pre-define event masks and thread initiation conditions in the AESCR before asynchronous events occur. This preliminary setup enables immediate thread initiation upon event occurrence without requiring real-time permission requests, reducing latency while maintaining controlled thread creation
2Reliability
If a program requests permission from a supervisory program to utilize an additional thread, then thread usage is controlled and managed, but performance benefit is substantially diminished
Solution Approach 1:
Programs directly control assist thread initiation through the AESCR without supervisory program intervention. The program sets event masks, enables asynchronous initiation, and manages thread lifecycle autonomously, eliminating permission request overhead that previously diminished performance benefits while maintaining controlled thread usage through program-defined event conditions
Solution Approach 2:
The permission request function is extracted from the supervisory program and transferred to the program itself through the AESCR mechanism. This extraction eliminates the performance-dimining communication overhead between programs and supervisory programs while maintaining thread usage control through the program's own event-driven logic
3Productivity
If the processor simultaneously executes multiple independent hardware threads, then performance is improved through parallelism, but the complexity of thread management increases
Solution Approach 1:
Programs autonomously manage their own thread initiation and control by configuring event masks and thread parameters in the AESCR. This self-service approach distributes management complexity from the supervisory program to individual programs, enabling simultaneous execution of multiple threads while each program independently manages its own thread lifecycle based on event-driven conditions
Solution Approach 2:
The system dynamically initiates and manages threads based on runtime events rather than static pre-configuration. The AESCR allows programs to define event masks and dynamically start assist threads when specific asynchronous events occur, enabling flexible thread management that adapts to program needs while maintaining simultaneous multi-threaded execution for improved performance
Data Source
AI summary
A processor of a data processing system executes a controlling thread of a program and detects occurrence of a particular asynchronous event during execution of the controlling thread of the program. In response to occurrence of the particular asynchronous event during execution of the controlling thread of the program, the processor initiates execution of an assist thread of the program such that the processor simultaneously executes the assist thread and controlling thread of the program.


