Dataflow Circuit Memory Allocation via Local and Shared Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programmable logic devices face a tradeoff between maximizing data throughput and minimizing resource cost in dataflow systems, as existing methods for allocating data between communication buffers do not account for the specific access patterns of data passing through communication buffers, leading to suboptimal performance in applications like network packet transmission and video decompression.

Innovation Solution

A method and apparatus for implementing a dataflow circuit model that assigns data portions to either local queue storage or centralized shared storage based on the access levels of actors, using a combination of static and dynamic analysis to optimize memory allocation and balance between throughput and cost.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dedicated communication queues are used for data storage, then data throughput is improved, but resource cost increases

Engineering Contradiction:
Improvedata throughputVSAvoidresource cost
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by differentiating storage allocation at the data portion level rather than uniform allocation. Specifically, frequently accessed data portions are allocated to local queue storage (higher quality storage for critical data), while infrequently accessed portions use shared memory storage (lower quality storage for non-critical data). This resolves the contradiction by optimizing throughput for critical data while minimizing resource cost for non-critical data.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments data objects into multiple data portions and applies different storage allocation strategies to different portions based on their access characteristics. This segmentation allows the system to achieve high throughput for frequently accessed portions while using cheaper storage for less critical portions, thereby resolving the throughput versus resource cost tradeoff.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If shared memory is used for data storage, then resource cost is reduced, but data throughput decreases

Engineering Contradiction:
Improveresource costVSAvoiddata throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies local quality by allocating storage resources differentially based on data access patterns. Critical data portions requiring high throughput are placed in local queue storage with dedicated access, while non-critical portions use shared memory. This ensures that resource cost is minimized overall while throughput is maintained for data that actually requires it.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamic storage allocation where the assignment of data portions to local or shared storage is determined based on runtime access patterns and performance requirements. This dynamic approach allows the system to adaptively balance resource cost and throughput based on actual workload characteristics.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8020139B1Method and apparatus for implementing a dataflow circuit model using application-specific memory implementations
Publication Date: 2011.09.13 XILINX INC
  • US8020139B1 patent drawing
  • US8020139B1 patent drawing
  • US8020139B1 patent drawing

AI summary

Method, apparatus, and computer readable medium for implementing a circuit model in an integrated circuit are described. In some examples, the circuit model includes a communication channel between actors. Data portions of at least one data object passed between the actors over the communication channel are identified. An implementation is generated for the circuit model in which data portions are assigned to either local queue storage of the communication channel or centralized shared storage of the communication channel based on levels of access thereof by the actors.