Reconfigurable Computing Wrapper for FPGA Programming Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing reconfigurable computer technologies lack efficient programming methodologies and standardized interfaces, leading to inefficiencies in processing and high development costs, particularly in applications like space-based signal processing where size, weight, and power constraints are critical.

Innovation Solution

A programming methodology and architecture that enables object-based reconfigurable computers using RAM-based FPGAs, with a wrapper providing infrastructure for dissimilar processing functions and autonomous direct memory access engines, allowing for efficient and flexible configuration of processing elements without general-purpose processor intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional programming methods are used for reconfigurable computers, then processing efficiency can be improved, but programming complexity and development time increase significantly

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a wrapper as an intermediary layer between the high-level C/C++ programming interface and the underlying FPGA hardware. The wrapper automatically handles the complex tasks of generating configuration bitstreams, managing data flow, and controlling processing elements, thereby resolving the contradiction by shielding programmers from hardware complexity while maintaining high processing efficiency through automated resource management

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The wrapper serves multiple functions simultaneously: it acts as a configuration generator, data flow manager, control signal generator, and resource allocator. This multi-functionality allows a single unified interface to handle all aspects of FPGA programming, reducing overall programming complexity while maintaining the ability to optimize processing efficiency for different applications

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

2Productivity

If high processing efficiency is achieved through specialized programming, then performance improves, but ease of programming and re-use of technology deteriorate

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidease of programming
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The wrapper implements self-service by automatically generating all necessary configuration files, control signals, and data flow paths based on simple C/C++ function calls. The system serves itself by translating high-level programming constructs into optimized hardware configurations without requiring manual intervention, thereby maintaining high processing efficiency while dramatically improving ease of programming and enabling technology re-use across different applications

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The wrapper performs preliminary actions by pre-generating configuration bitstreams and setting up data flow paths before the main processing begins. This preliminary configuration setup, automated through the wrapper interface, allows the system to achieve high processing efficiency during execution while keeping the programming process simple and reusable across different tasks

Inventive Principle:
Principle #10Preliminary action

3Productivity

If reconfigurable computers are used in space-based applications, then processing capability improves, but size, weight, and power constraints worsen

Engineering Contradiction:
Improveprocessing capabilityVSAvoidsize, weight, and power
Core Design Contradiction:
ProductivityVSWeight of moving object

Solution Approach 1:

The patent implements dynamic reconfiguration capabilities that allow the FPGA to change its hardware architecture in real-time based on processing requirements. This dynamic adaptability enables the system to optimize processing capability for different tasks while maintaining a compact form factor, as the same physical hardware can be reconfigured rather than requiring multiple dedicated processors, thereby addressing size, weight, and power constraints in space-based applications

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters by reconfiguring the FPGA's internal logic and resource allocation based on the specific processing task at hand. This parameter-based reconfiguration allows the same hardware to deliver high processing capability for different applications without physical changes, effectively managing size, weight, and power constraints in space-based environments

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7613902B1Device and method for enabling efficient and flexible reconfigurable computing
Publication Date: 2009.11.03 LOCKHEED MARTIN CORP
  • US7613902B1 patent drawing
  • US7613902B1 patent drawing
  • US7613902B1 patent drawing

AI summary

A power-efficient, distributed reconfigurable computing system and method are provided. A reconfigurable computing system may include an embedded controller for performing real-time control and initialization and circuitry that supports data-flow driven execution of processing phases. The circuitry may include processing elements such as RAM-based field programmable gate array devices and direct memory access engines. The processing elements can be configured for one or more functions or operations of a program and then reconfigured for other functions or operations of the program. The processing elements can be configured or reconfigured to construct a desired sequence of operations in real-time. A processing element may be divided into slots, each of which includes a substantially similar amount of resources. A processing element includes one or more wrappers, and a wrapper may occupy a slot or a group of slots. Layered software architecture separates control software from implementation software. The control software that contains the knowledge of the overall algorithm is implemented in higher-order language such as C++. This software typically runs on a general-purpose computer. The implementation software that has knowledge of individual processing operations is executed on processing element controllers and performs parameter conversion and setup of processing operations in specifically configured processing elements.