FPGA Reconfiguration with Proxy PCIe Transaction Handling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
During FPGA reconfiguration, existing technologies cause application quiescence and increased processing times due to the inability to service downstream PCIe requests, leading to potential timeouts and performance impacts.
Innovation Solution
The implementation of a proxy agent firmware that saves and maintains programmable logic states during reconfiguration, allowing downstream transactions to be serviced through proxy handling, ensuring continuous operation and restoring states post-reconfiguration.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If FPGA reconfiguration is performed during operation, then the FPGA can be updated with new functionality, but the programmable logic becomes inactive and cannot service PCIe requests, causing application quiescence and increased processing times
Solution Approach 1:
A proxy agent is introduced as an intermediary component that intercepts PCIe requests during FPGA reconfiguration. The proxy agent maintains a state machine and transaction queue, allowing it to accept and hold PCIe transactions while the programmable logic is reconfigured, then forward these transactions after reconfiguration completes. This mediator enables the system to maintain PCIe transaction capability even when the main programmable logic is inactive during reconfiguration.
Solution Approach 2:
The proxy agent performs preliminary actions by pre-accepting and queuing PCIe transactions before the reconfiguration process begins. By establishing the transaction queue and state machine in advance, the system prepares to handle PCIe requests proactively rather than reactively, ensuring that no transactions are lost during the transition to configuration mode.
2Adaptability or versatility
If the FPGA enters configuration mode to update the bitstream, then new functionality can be implemented, but host applications must be paused and processing times increase
Solution Approach 1:
The proxy agent maintains continuous PCIe transaction handling capability during FPGA reconfiguration by operating as an independent state machine that does not depend on the programmable logic being active. Transactions are continuously accepted, held in queue, and forwarded after reconfiguration, ensuring that the useful action of PCIe communication continues without interruption despite the FPGA entering configuration mode.
3Reliability
If full reconfiguration is performed to service FPGA functions, then security and routing policies can be updated, but the FPGA cannot service any downstream PCIe requests, leading to timeouts
Solution Approach 1:
The proxy agent serves as a mediator that decouples PCIe request handling from the programmable logic state. By intercepting transactions at the proxy level and maintaining them in a queue independent of the programmable logic's operational state, the system can perform full reconfiguration for security and routing policy updates while the proxy continues to accept and manage PCIe requests, preventing timeouts.
Data Source
AI summary
The present disclosure is directed to enabling operation of a field programmable gate array (FPGA) while preventing application quiescence during FPGA reconfiguration. In embodiments of the disclosure, proxy agent firmware may enable downstream transactions (e.g., PCIe transactions) to be serviced during reconfiguration of the FPGA. Programmable logic states (e.g., PCIe configuration states or memory-mapped input/output (MMIO) states) are saved in memory and maintained by the proxy agent (via a management controller running the proxy agent). Once the FPGA is reconfigured, the state may be restored to the FPGA's programmable logic, and the FPGA may operate on the current state of the transactions.


