Barrel Processor Event Queueing for Safe Thread Acceptance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer architectures face challenges in efficiently handling asynchronous events for threads due to the potential for access collisions and hazards when events arrive at any time, which can constrain performance and capacity.
Innovation Solution
A mechanism is provided to queue and safely present asynchronous events to threads executing in a barrel processor, using storage devices and additional logic to manage access and prevent collisions, allowing threads to query for events during execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If asynchronous events are handled directly without queuing, then event processing speed is improved, but access collisions and hazards occur
Solution Approach 1:
The patent applies preliminary action by queuing asynchronous events before they are processed by threads. The event queue stores incoming events in advance, allowing threads to safely retrieve and process them without direct access conflicts. This pre-organization of events eliminates access collisions while maintaining efficient processing.
Solution Approach 2:
The event queue acts as an intermediary between the asynchronous event sources and the executing threads. Instead of threads directly accessing incoming events (which causes collisions), the queue mediates by buffering events and providing controlled access to threads, thus resolving the conflict between speed and safety.
2Reliability
If additional logic is added to manage event access, then access safety is improved, but device complexity increases
Solution Approach 1:
The patent segments the event handling system into distinct components: an event queue for storage, logic for managing access, and thread execution units. This segmentation isolates the complexity to specific modules while keeping the overall system manageable. The access management logic is separated from thread execution, reducing overall system complexity.
3Productivity
If threads query for events during execution, then thread execution efficiency is improved, but access collisions may occur
Solution Approach 1:
The event queue serves as an intermediary that allows threads to query for events during execution without causing access collisions. The queue buffers events and provides controlled access points for threads to retrieve events at their convenience, maintaining both efficiency and safety.
Solution Approach 2:
Events are preliminarily stored in the queue before threads query for them. This pre-staging of events allows threads to efficiently query and process events without direct access conflicts, as the queue has already organized and buffered the events for safe retrieval.
Data Source
AI summary
Devices and techniques for asynchronous event message handing in a processor are described herein. A barrel multithreaded processor may include an asynchronous event handler to receive an indication of a thread create instruction from a parent thread, determine a return value size of return values from the indication of the thread create instruction, determine whether sufficient space exists in the memory to store the return values, allocate space in the memory to store the return parameters in response to determining that there is sufficient space in the memory to store the return values, and provide access to the return values from the allocated space to the parent thread based at least in part on a thread return instruction from the child thread.


