Asynchronous FPGA Controller Communication via Message Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High performance memory access devices require both high throughput data paths and flexible control paths, but existing technologies face challenges in integrating gate array devices with external processors due to latency issues and synchronous communication limitations.

Innovation Solution

Implementing asynchronous communication between external processors and gate array controllers using message submission and completion queues, which allows for high throughput and dynamic control by partitioning the data path and utilizing a 'push' data transfer mode to reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous communication is used between external processor and gate array controller, then control reliability is improved, but communication latency increases and throughput decreases

Engineering Contradiction:
Improvecontrol reliabilityVSAvoidcommunication latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The communication interface is segmented into separate message submission queues and completion queues, allowing independent operation of requests and responses. This segmentation enables the external processor to submit commands without waiting for immediate responses, reducing latency while maintaining control reliability through proper queue management and acknowledgment mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Message queues serve as intermediaries between the external processor and gate array controller. The submission queue receives commands from the processor while the completion queue delivers responses back, decoupling the synchronous control dependency and enabling asynchronous operation that reduces communication latency without sacrificing reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If gate array device is used for high throughput data path, then data transfer speed is improved, but control flexibility decreases

Engineering Contradiction:
Improvedata transfer speedVSAvoidcontrol flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The system segments control functions by using message queues to separate command submission from execution. The gate array device handles high-speed data transfer operations while the external processor maintains flexible control through the queue-based messaging system, allowing adaptive control decisions without compromising data transfer speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The message queue system introduces dynamic control capabilities to the gate array device. Commands can be submitted asynchronously and processed dynamically based on current system conditions, allowing the rigid gate array structure to adapt to varying control requirements while maintaining high throughput data path performance.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If external processor is used for flexible control path, then control adaptability is improved, but data transfer latency increases

Engineering Contradiction:
Improvecontrol adaptabilityVSAvoiddata transfer latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The external processor can submit control commands to the message submission queue in advance of actual data transfer operations. This preliminary action allows the gate array device to prepare for high-speed data transfer while the processor continues with other adaptive control tasks, reducing overall latency while maintaining control adaptability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Message queues act as intermediaries that buffer control commands and responses between the external processor and gate array device. This intermediary mechanism allows the processor to maintain adaptive control logic without being bottlenecked by synchronous data transfer operations, reducing latency while preserving control flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If synchronous blocking events are used for communication, then control precision is improved, but system throughput decreases

Engineering Contradiction:
Improvecontrol precisionVSAvoidsystem throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The communication protocol is segmented into independent submission and completion queues, allowing precise control commands to be submitted without blocking the system. This segmentation enables the gate array device to process commands with precision while the external processor continues other operations, maintaining system throughput without sacrificing control precision.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The message queue system enables continuous submission of control commands without synchronous blocking. The external processor can continuously submit new commands to the submission queue while completion queues deliver responses asynchronously, maintaining both control precision and high system throughput through uninterrupted operation.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10002087B1Communication between an external processor and FPGA controller
Publication Date: 2018.06.19 EMC IP HLDG CO LLC
  • US10002087B1 patent drawing
  • US10002087B1 patent drawing
  • US10002087B1 patent drawing

AI summary

A request is received via a message submission queue. The request is sent from a core associated with an external processor coupled by a communication interface. The message submission queue is associated with a memory access engine circuit configured to perform one or more memory access functions. The memory access engine circuit is used to dequeuer a next message from its corresponding message submission queue. The memory access engine circuit is used to perform a message function invoked by the message. The memory access engine circuit is used to receive a result of performing the message function. The memory access engine circuit is used to prepare and send to an external processing core that sent the message a response message determined based at least in part on the result.