FPGA IP Block Configuration for Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The performance of electronic systems, particularly those with field programmable gate arrays (FPGAs), is hindered by inefficient resource allocation and increased power consumption due to the processing of unnecessary function blocks, which affects system speed and power usage.

Innovation Solution

An operation method for FPGAs that synthesizes high-level language code into hardware description language, designs IP blocks based on access results, and generates a database with reference assembly code and circuit configuration information, allowing for optimized resource allocation and hardware acceleration of frequently used tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple function blocks share limited resources in an FPGA system, then resource utilization increases, but system speed decreases and power consumption increases due to processing of unnecessary function blocks

Engineering Contradiction:
Improveresource utilizationVSAvoidsystem speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent implements dynamic reconfiguration of FPGA resources by loading only the necessary function blocks into the fabric based on runtime requirements. The system uses a configuration memory to store multiple function block configurations and selectively loads them into the FPGA fabric as needed, transforming the static resource allocation into a dynamic system that adapts to different computational tasks, thereby maintaining high speed while utilizing resources efficiently.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent divides the FPGA system into separate functional components: a configuration memory storing function block configurations, a processor that determines which blocks are needed, and the FPGA fabric that executes the selected blocks. By segmenting the system this way, only the necessary function blocks are instantiated in the fabric at any given time, reducing interference between blocks and maintaining system speed while still providing access to multiple functional capabilities.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple function blocks share limited resources in an FPGA system, then resource utilization increases, but power consumption increases due to processing of unnecessary function blocks

Engineering Contradiction:
Improveresource utilizationVSAvoidpower consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system dynamically configures the FPGA fabric by loading only the function blocks that are currently needed for the specific computational task. The processor analyzes the incoming computation graph and selectively instantiates only the necessary function blocks in the FPGA fabric, leaving other blocks in a low-power or uninitialized state. This dynamic approach ensures that power is consumed only by the active function blocks, significantly reducing overall power consumption while maintaining adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent extracts and removes unnecessary function blocks from the active FPGA fabric, keeping only the essential blocks required for the current computation. By taking out the non-essential function blocks from the operational configuration, the system reduces the number of active logic elements and interconnections, thereby reducing dynamic power consumption while preserving the capability to load different blocks when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If function blocks are allocated to handle various computations, then system versatility improves, but resource contention increases causing decreased system speed

Engineering Contradiction:
Improvesystem versatilityVSAvoidsystem throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a dynamic resource allocation mechanism where the processor analyzes the computation graph and determines the critical path of operations. Function blocks along the critical path are prioritized and allocated resources first, while non-critical blocks are deferred or executed in parallel when resources are available. This dynamic prioritization ensures that the most time-sensitive operations receive sufficient resources, maintaining high system throughput while still supporting versatile computational workloads.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary analysis of the computation graph to identify the critical path and determine which function blocks must be executed with highest priority. Based on this preliminary assessment, the processor pre-allocates resources to the critical path blocks before execution begins, ensuring that resource contention does not bottleneck the overall system throughput. This preliminary planning enables the system to maintain high productivity while supporting diverse computational tasks.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11967952B2Electronic system including FPGA and operation method thereof
Publication Date: 2024.04.23 SAMSUNG ELECTRONICS CO LTD
  • US11967952B2 patent drawing
  • US11967952B2 patent drawing
  • US11967952B2 patent drawing

AI summary

An electronic system and an operation method thereof are disclosed. A method of an electronic system including a field programmable gate array (FPGA) includes: synthesizing, by processing circuitry, code of a high level language into code of a hardware description language; designing, by the processing circuitry, a circuit of an intellectual property (IP) block included in the field programmable gate array according to the code of the hardware description language; and generating, by the processing circuitry, a database containing reference assembly code corresponding to the code of the high level language and information about a circuit configuration of the intellectual property block.