Flexible Logic Unit With One-Cycle Real-Time Task Switching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing FPGA-based controllers in automotive ECUs face challenges with task switching due to high resource consumption, slow context switching, and the need for external data transfer, which are not suitable for real-time operations and do not address fault tolerance and power consumption requirements.
Innovation Solution
The invention provides a flexible logic unit (FLU) with data and configuration bit storage circuits for fast, fault-tolerant, and low-power context switching, enabling simultaneous execution of multiple tasks without disrupting real-time control, using a matrix of programmable logic units and one-bit clocked storage elements with local data and configuration storage, allowing tasks to be switched within one clock cycle.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If FPGA size is made bigger to map multiple tasks side-by-side, then task execution capability is improved, but cost increases and becomes unrealistic for production
Solution Approach 1:
The invention segments the FPGA resource usage by implementing time-multiplexed task execution. Instead of allocating separate FPGA resources for each task (spatial segmentation), the system divides execution into time slots where a single FPGA instance sequentially executes multiple tasks. This is achieved through context switching mechanisms that load different task configurations into the same FPGA fabric at different times, reducing the required FPGA size while maintaining multi-task capability.
Solution Approach 2:
The invention introduces dynamic reconfiguration capability to the FPGA system. The FPGA can dynamically switch between different task configurations through context switching, allowing the same hardware resources to adapt to different computational requirements over time. This dynamic behavior enables a single FPGA to replace multiple static FPGAs, reducing overall resource consumption while maintaining versatility.
2Adaptability or versatility
If FPGA content is re-loaded each time task switching is required, then task flexibility is improved, but switching speed deteriorates due to stopping FPGA activity during loading
Solution Approach 1:
The invention implements preliminary action by pre-loading task configuration data into buffer memory before it is needed for execution. When a task switch is required, the configuration data is already prepared and staged in fast memory, allowing the FPGA to be reconfigured without lengthy external memory access delays. This pre-positioning of configuration data significantly reduces context switching time while maintaining task flexibility.
Solution Approach 2:
The invention introduces an intermediary buffer memory structure that sits between the external memory and the FPGA configuration input. This buffer memory acts as a mediator that holds pre-fetched configuration data, decoupling the slow external memory access from the fast FPGA reconfiguration process. The buffer memory absorbs the timing mismatch, allowing the FPGA to be reconfigured quickly while configuration data is gradually loaded from external memory in the background.
3Adaptability or versatility
If conventional context switching is implemented, then task switching capability is improved, but switching delay increases and becomes unacceptable for real-time operations
Solution Approach 1:
The invention maintains continuity of useful action by implementing overlapping configuration loading and task execution. While one task is executing, the configuration for the next task is being loaded into buffer memory in parallel. This eliminates idle time during context switching, as the FPGA can immediately switch to the pre-loaded configuration without waiting for data transfer. The useful action of configuration loading continues alongside task execution, minimizing overall switching delay.
Solution Approach 2:
The system performs preliminary configuration loading into fast buffer memory before the actual task switch occurs. This advance preparation ensures that when context switching is triggered, the new configuration data is already in place and ready for immediate FPGA loading, minimizing the interruption to real-time operation. The preliminary action of pre-positioning configuration data eliminates the bottleneck that would otherwise extend switching delay.
4Quantity of substance
If external memory is used for data transfer in context switching, then data storage capability is improved, but system complexity and fault tolerance requirements increase
Solution Approach 1:
The invention implements a nested memory architecture where a small fast buffer memory is nested within the FPGA, and a larger external memory is nested outside. The buffer memory serves as an intermediate storage layer that the FPGA can access quickly for configuration and data operations. This nested structure allows the system to leverage both the speed of internal buffer memory and the capacity of external memory, reducing the need for complex external memory interface logic while maintaining data storage capability.
Solution Approach 2:
The buffer memory acts as an intermediary between the FPGA and external memory, simplifying the interface requirements. Instead of the FPGA directly managing complex external memory operations for every configuration and data access, the buffer memory handles these operations, reducing the complexity of memory control logic within the FPGA. The intermediary buffer absorbs timing and protocol mismatches, making the overall system easier to design and more fault-tolerant.
Data Source
AI summary
An arrangement includes a matrix with a plurality of programmable logic units and a plurality of first one bit clocked storage elements, the programmable logic units and first one bit clocked storage elements being arranged in an array, the arrangement being adapted for sequential execution of at least two tasks, whereby for each of the first one bit clocked storage elements a data store and restore circuit is provided for local storing or restoring the respective values as computed during the tasks per task of the first one bit clocked storage elements;a data memory, external to the matrix, wherein the data store and restore circuit is provided for pre-loading values related to one task from the data memory into the data store and restore circuit and post-storing of values related to one task in the data store and restore circuit to the data memory, whereby the pre-loading and/or post-storing can be performed while another task is executed without disturbing the task execution; andan output circuit, required to ensure safe operation in case of task switching.


