Credit-Based Data Transfer Regulation for Buffer Overflow Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computer systems, frequent data movements and high bandwidth connections can lead to issues such as data stalls, buffer overruns, and errors due to insufficient storage space at target devices, especially in systems with shared communication links, where one data stream can adversely impact another.

Innovation Solution

A method and system for regulating data transfer between devices by using transfer credits to determine if the receiving device has sufficient capacity before sending data, ensuring that data is only sent when the accumulated credit value meets a send threshold, and modifying the credit value based on the quantity of data sent.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is transferred as fast as possible between devices, then productivity is improved, but reliability deteriorates due to buffer overruns and data stalls

Engineering Contradiction:
Improvedata transfer speedVSAvoiddata transfer reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a credit-based feedback mechanism where the receiving device sends credit signals to the sending device to indicate available buffer space. The sending device uses these credits to regulate its transmission rate, ensuring it does not exceed the receiving device's processing capacity. This feedback loop prevents buffer overruns while maintaining high data transfer speeds by optimizing the transmission rate based on real-time buffer status.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The receiving device performs preliminary actions by pre-allocating buffer space and issuing credits to the sending device before data arrives. This allows the sending device to know in advance how much data it can transmit without causing overruns, enabling proactive rate adjustment rather than reactive error handling.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If multiple data streams share a common communication link, then device complexity is reduced, but reliability deteriorates due to adverse impacts between streams

Engineering Contradiction:
Improvesystem interconnect complexityVSAvoiddata stream reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent segments the shared communication link into multiple virtual channels, each handling a separate data stream. By assigning dedicated credit mechanisms to each stream, the system maintains simple physical infrastructure while providing isolated control for each data flow, preventing one stream from adversely impacting others.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces credit signals as intermediaries that mediate between multiple data streams sharing a common link. These credits act as tokens that regulate access to the shared resource, ensuring fair and controlled allocation of bandwidth to each stream without requiring complex arbitration logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8307136B2Data movement system and method
Publication Date: 2012.11.06 NATIONAL INSTRUMENTS CORP
  • US8307136B2 patent drawing
  • US8307136B2 patent drawing
  • US8307136B2 patent drawing

AI summary

Provided is a method of streaming transfer of data between a plurality of devices of a computer system. The method includes providing data to be sent from a source device to a target device and includes receiving, at the source device, one or more transfer credits from the target device. A transfer credit may be indicative of an amount of data that the target device is authorizing to be sent to the target device. The method also includes determining whether or not an accumulated transfer credit value satisfies a threshold value. If the accumulated transfer credit value satisfies the threshold value, the source device sends data to the target device and modifies the accumulated transfer credit value based on a quantity of data sent. If the accumulated transfer credit value does not satisfy the threshold value the source device does not send data to the target device.