FPGA Board Memory Management Unit for Controller Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing network communication systems face performance bottlenecks due to resource-intensive scanning and filtering tasks, which consume significant processing and memory resources, affecting overall system performance even when offloaded to FPGA boards, as they still rely on the system memory controller.

Innovation Solution

A method and apparatus that offloads processing and memory access tasks from the CPU and memory controller by providing a FPGA board with its own separate memory and memory management unit, using dynamic memory allocation and deallocation through linked lists to manage board memory efficiently, allowing the FPGA to handle memory tasks independently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If scanning and filtering tasks are performed on the CPU, then security protection is provided, but system performance suffers due to resource consumption

Engineering Contradiction:
Improvesecurity protectionVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts scanning and filtering tasks from the CPU by implementing them in hardware on an FPGA board. The content filter board includes an FPGA device that performs pattern matching and content filtering operations independently from the CPU, removing the burden of these resource-intensive tasks from the main processor while maintaining security protection.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a content filter board as an intermediary component between the network interface and the CPU. This board includes a buffer memory and FPGA device that handle filtering operations, acting as a mediator that processes data before it reaches the CPU, thereby protecting the system while preserving CPU performance.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If FPGA board is used to offload scanning tasks, then CPU workload is reduced, but memory controller becomes a bottleneck

Engineering Contradiction:
ImproveCPU workload reductionVSAvoidmemory access speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent segments the memory system into two independent parts: system memory accessed by the CPU through the system memory controller, and board memory on the FPGA content filter board accessed through its own memory controller. This segmentation allows parallel access to both memory systems without contention, eliminating the bottleneck where the single memory controller had to service both CPU and FPGA memory requests.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If system memory is shared between CPU and FPGA, then memory resources are utilized, but memory controller performance degrades

Engineering Contradiction:
Improvememory resource utilizationVSAvoidmemory controller performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements physical segmentation of memory resources, with the content filter board having its own board memory (e.g., 256MB DDR2 SDRAM) separate from system memory. This allows both CPU and FPGA to have adequate memory resources simultaneously without sharing, eliminating memory controller performance degradation while maintaining high memory resource utilization.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7904688B1Memory management unit for field programmable gate array boards
Publication Date: 2011.03.08 TREND MICRO INC
  • US7904688B1 patent drawing
  • US7904688B1 patent drawing
  • US7904688B1 patent drawing

AI summary

The invention relates to methods and apparatus for offloading the workload from a computer system's CPU, memory and/or memory controller. Methods and apparatus for managing board memory on a FPGA board on behalf of applications executing in one or more FPGAs are disclosed.