Reconfigurable Processing Grid Thread Context Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face inefficiencies in executing multiple concurrent threads on a reconfigurable processing grid due to inconsistent latency operations, leading to idle processing resources and reduced throughput and latency.

Innovation Solution

Implementing a context storage system to store thread contexts for each concurrent thread, allowing for the execution of other threads on the same logical elements while waiting for pending operations to complete without reconfiguring the processing grid, and resuming execution when the initial thread finishes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the processing grid is reconfigured to execute a new thread, then the thread can be properly executed with correct logical element assignments, but execution time increases due to reconfiguration overhead and logical elements remain idle during inconsistent latency operations

Engineering Contradiction:
Improvethread execution correctnessVSAvoidthread execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by storing the complete thread context (including logical element assignments, data routing junction configurations, and operational state) in a context storage before the thread needs to be resumed. This allows the thread to be quickly restored without requiring reconfiguration of the processing grid, thereby reducing execution time while maintaining execution correctness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the thread's execution context and stores it in a dedicated context storage structure. This copy contains all necessary information to restore the thread's state, including which logical elements are assigned to which operations. When the thread needs to resume, the context is copied back from storage, avoiding the need to reconfigure the processing grid and eliminating idle time during inconsistent latency operations.

Inventive Principle:
Principle #26Copying

2Reliability

If logical elements are kept idle waiting for inconsistent latency operations to complete, then correct execution is maintained, but throughput decreases due to underutilized processing resources

Engineering Contradiction:
Improveexecution correctnessVSAvoidsystem throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system ensures continuity of useful action by implementing a mechanism where, upon encountering an inconsistent latency operation, the thread context is saved to context storage and the logical elements are immediately made available for executing other threads. This eliminates idle time and ensures that processing resources continuously perform useful work, thereby maintaining execution correctness while maximizing system throughput.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system discards the current thread execution temporarily by saving its context to storage, allowing logical elements to be freed and reused for other threads. When the inconsistent latency operation completes, the thread context is recovered from storage and execution is resumed. This discard and recover mechanism ensures correct execution while preventing resource idle time, thus improving throughput.

Inventive Principle:
Principle #34Discarding and recovering

3Reliability

If the processing grid is reconfigured for each thread execution, then each thread executes correctly, but device complexity increases due to repeated manipulation of logical elements and data routing junctions

Engineering Contradiction:
Improvethread execution accuracyVSAvoidprocessing grid configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary action by capturing and storing the complete configuration state of logical elements and data routing junctions in a thread context before execution. This pre-captured context includes all necessary configuration information, eliminating the need for repeated complex reconfiguration operations when threads are resumed, thereby reducing device complexity while maintaining execution accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of the processing grid configuration state (logical element assignments and data routing junction settings) as part of the thread context. This copy is stored and later restored, avoiding the need to repeatedly manipulate and reconfigure the actual processing grid components. This copying approach significantly reduces device complexity while ensuring accurate thread execution.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11875153B1Executing concurrent threads on a reconfigurable processing grid
Publication Date: 2024.01.16 NEXTSILICON LTD
  • US11875153B1 patent drawing
  • US11875153B1 patent drawing
  • US11875153B1 patent drawing

AI summary

A system for processing a plurality of concurrent threads comprising: a reconfigurable processing grid, comprising logical elements and a context storage for storing thread contexts, each thread context for one of a plurality of concurrent threads, each implementing a dataflow graph comprising an identified operation; and a hardware processor configured for configuring the at reconfigurable processing grid for: executing a first thread of the plurality of concurrent threads; and while executing the first thread: storing a runtime context value of the first thread in the context storage; while waiting for completion of the identified operation by identified logical elements, executing the identified operation of a second thread by the identified logical element; and when execution of the identified operation of the first thread completes: retrieving the runtime context value of the first thread from the context storage; and executing another operation of the first thread.