FPGA Forwarding Plane with Unified Memory for Parallel Networking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous computing systems using single field programmable gate array (FPGA) devices are limited by the size of the programmable logic fabric and finite resources, which restricts performance for parallel tasks requiring larger memory and faster execution, while GPU-based systems are limited by the number of GPUs and proprietary interconnects.

Innovation Solution

Configuring an array of multiple FPGA devices with a host processor and interconnect logic to enable parallel execution of source code, utilizing a topology and partitioning module to optimize resource utilization and expand global memory, allowing for unified address spaces and enhanced computational performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single FPGA device is used for heterogeneous computing, then the system is simpler to manage, but the computational performance and memory capacity are limited by the size of the programmable logic fabric

Engineering Contradiction:
Improvecomputational performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system divides the computational task into parallel segments that can be executed across multiple FPGA devices. The parallelized portion of source code is partitioned among multiple FPGAs, each processing a subset of computations simultaneously, thereby achieving higher overall productivity while maintaining manageable complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple FPGA devices are merged into a unified parallel processing system with a common global memory address space. The FPGAs work together as a coordinated ensemble, combining their computational resources to achieve performance that exceeds the sum of individual devices while presenting a unified interface to the host processor

Inventive Principle:
Principle #5Merging (Combining)

2Quantity of substance

If multiple FPGA devices are configured in an array, then global memory capacity and parallel processing capability are expanded, but the system complexity and interconnect requirements increase

Engineering Contradiction:
Improveglobal memory capacityVSAvoidinterconnect complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The array interconnect is designed as a universal communication infrastructure that handles multiple functions: data transfer between FPGAs, memory access coordination, and synchronization. This multi-functional interconnect reduces overall system complexity by consolidating multiple communication paths into a single versatile network

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The array interconnect acts as an intermediary layer between the host processor and multiple FPGA devices, and between FPGAs themselves. It mediates memory access requests, manages data flow, and coordinates communication, thereby simplifying the interface requirements for each individual FPGA while enabling expanded global memory capacity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If source code is partitioned among multiple FPGA devices, then parallel execution speed is improved, but the difficulty of code distribution and resource allocation increases

Engineering Contradiction:
Improveexecution speedVSAvoidcode partitioning complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The code partitioning system is designed to be dynamic and adaptive, automatically adjusting the distribution of computational tasks across FPGAs based on available resources and performance requirements. The parallelized source code can be reconfigured without manual intervention, reducing the complexity of code distribution while maintaining optimal execution speed

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs self-service mechanisms where the parallel execution environment automatically manages code partitioning and resource allocation. The FPGAs and interconnect system self-coordinate to distribute and execute partitioned code segments, eliminating the need for complex manual code distribution while achieving high execution speed through parallel processing

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9698791B2Programmable forwarding plane
Publication Date: 2017.07.04 SCI CONCEPTS INT
  • US9698791B2 patent drawing
  • US9698791B2 patent drawing
  • US9698791B2 patent drawing

AI summary

A forwarding plane comprising a scalable array of field programmable gate array (FPGA) devices, a memory bank, FPGA data and transport network ports, and an array interconnect. The scalable array is configured to execute a networking application source code partitioned as computing elements executed by the FPGA devices with a uniform global memory address space. The memory bank includes an allocated portion of the FPGA devices addressable by the address space. The ports are coupled to data networks and include ingress ports configured to receive traffic and egress ports configured to transmit traffic. The array interconnect is configured to forward the traffic from the ingress ports to the egress ports, choose cell sizes of data cells that encapsulate payload data units of the traffic, control latency between the FPGA devices based on the chosen cell sizes; and enable utilization of the memory bank for buffering of the traffic.