FPGA Reconfiguration with Proxy PCIe Transaction Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveFPGA reconfiguration capabilityVSAvoidPCIe transaction servicing capability
Core Design Contradiction:
Adaptability or versatilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
ImproveRuntime reconfigurationVSAvoidApplication pause duration
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #20Continuity of useful action

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

Engineering Contradiction:
ImproveFPGA function servicingVSAvoidPCIe request handling
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20230027807A1Method and Apparatus to Enable CPU Host-Unaware Dynamic FPGA Reconfiguration
Publication Date: 2023.01.26 ALTERA CORP
  • US20230027807A1 patent drawing
  • US20230027807A1 patent drawing
  • US20230027807A1 patent drawing

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.