Dynamic Constant Folding for Continuous Circuit Reconfiguration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional constant-folding in digital circuits requires static generation and storage of configurations, leading to prohibitive storage costs and I/O bandwidth issues, and halting computation during reconfiguration results in downtime, limiting the applicability and performance of computational fabrics.
Innovation Solution
A method that dynamically generates and updates configuration information for constant-folded circuits based on both constant and dynamic inputs, allowing concurrent operation without halting computation, using a control unit and generator to produce configuration information for Field Programmable Gate Arrays (FPGAs) and correlators, enabling continuous operation during reconfiguration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If static generation and storage of configuration information is used, then the circuit structure is simplified, but storage costs become prohibitive and I/O bandwidth requirements become prohibitively large
Solution Approach 1:
The system pre-generates configuration information for all possible constant values of the second input at design time and stores it in a lookup table. During operation, the appropriate pre-generated configuration is quickly retrieved based on the actual constant value, avoiding the need for complex runtime generation while keeping storage requirements manageable through efficient lookup table design
Solution Approach 2:
Instead of storing and manipulating complex circuit configuration data, the system uses a lookup table that stores pre-computed output values for all possible input combinations. This copying approach replaces the need for actual circuit reconfiguration with simple table lookups, dramatically reducing both storage requirements and I/O bandwidth needs
2Reliability
If computation is halted during reconfiguration, then spurious outputs are isolated from target areas, but downtime increases and productivity decreases
Solution Approach 1:
The system segments the configuration update process into separate lookup table entries for different constant values. Each lookup table entry is self-contained and can be independently selected based on the input value, allowing the circuit to switch between pre-configured states without halting computation or risking spurious output propagation
Solution Approach 2:
All possible configuration states are pre-computed and stored in the lookup table before operation begins. This eliminates the need for runtime reconfiguration that would require halting computation, as the system simply selects the appropriate pre-prepared configuration based on the input value
3Adaptability or versatility
If the number of different constant values is large, then the applicability of reconfiguration increases, but the cost of storage becomes prohibitive
Solution Approach 1:
The system changes the parameter representation from storing full circuit configurations to storing compact lookup table entries indexed by constant values. This parameter transformation allows the system to handle a large number of different constant values with manageable storage requirements, as the lookup table only needs to store the essential output mappings rather than complete circuit descriptions
Data Source
Figure 1
Figure 2
Figure 3
AI summary
The present invention provides a method involving at least one first circuit having at least one first input, at least one second input, and at least one output. The method includes determining at least one first value of at least one output of a second circuit based on at least one first value of the at least one first input. The second circuit has been configured using first configuration information generated based on the first circuit and at least one first value of the at least one second input. The method also includes generating, concurrently with determining the at least one first value of said at least one output, second configuration information based on the first circuit and at least one second value of the at least one second input.