Dynamic Thread Priority Adjustment for P2P Data Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Thread priority assignment in high-speed data transmission systems between peer-to-peer devices often leads to inefficient resource allocation, as high-priority threads may occupy resources unnecessarily when idle, impacting throughput and workload balance.

Innovation Solution

A processor-based algorithm dynamically adjusts thread priority based on the number of pending packets to be transferred, increasing priority when data waiting to be sent increases and decreasing it when data waiting decreases, ensuring faster data transfer rates while balancing system workload.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a thread is assigned a higher priority to minimize wait time, then transmission throughput is improved, but system resources are preferentially occupied even when the thread is idle

Engineering Contradiction:
Improvetransmission throughputVSAvoidsystem resource occupation
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The thread priority is made dynamic rather than fixed. The processor dynamically adjusts the priority of the data transfer thread based on the number of pending packets - increasing priority when packets are waiting to be transmitted, and decreasing priority when the thread is idle or no packets are pending. This dynamic adjustment resolves the contradiction by ensuring high priority is only assigned when needed for throughput, preventing unnecessary resource occupation during idle periods.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback by continuously monitoring the number of pending packets and using this information to adjust thread priority. The processor receives information about the current pending packet number and uses it to determine whether to increase or decrease the thread priority, creating a closed-loop control system that balances throughput and resource efficiency.

Inventive Principle:
Principle #23Feedback

2Speed

If a thread is assigned a higher priority to reduce wait time, then data transfer rate is improved, but other tasks cannot be scheduled

Engineering Contradiction:
Improvedata transfer rateVSAvoidtask scheduling flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The thread priority is dynamically adjusted based on the actual data transfer needs. When the number of pending packets is high, the priority is increased to ensure fast data transfer. When packets are transmitted or the thread is idle, the priority is reduced to allow other tasks to be scheduled. This dynamic behavior resolves the contradiction between speed and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the priority parameter based on the number of pending packets. By monitoring packet queue length and adjusting the priority level accordingly, the system can achieve high data transfer rates when needed while maintaining scheduling flexibility for other tasks when data transfer is not urgent.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the thread executes frequently to maintain minimum data transfer rate, then throughput is improved, but system workload increases

Engineering Contradiction:
Improvedata transfer throughputVSAvoidsystem workload
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread execution frequency is dynamically controlled through priority adjustment. When the number of pending packets is high, the thread is assigned higher priority and executes more frequently to maintain throughput. When packets are transmitted or the queue is empty, the thread priority is reduced and execution frequency decreases, reducing unnecessary system workload while maintaining minimum throughput requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9152459B2Adjusting thread priority to improve throughput between peer-to-peer (P2P) devices
Publication Date: 2015.10.06 MARVELL ASIA PTE LTD
  • US9152459B2 patent drawing
  • US9152459B2 patent drawing
  • US9152459B2 patent drawing

AI summary

In some implementations, a processor is configured to receive a current pending packet number representing a number of packets of data that currently remain to be transferred between two devices, determine whether to adjust a priority of a thread based on the current pending packet number, a previous pending packet number, and a priority pending packet number, and adjust or maintain the priority of the thread based on determining whether to adjust the priority of the thread. The thread is to be executed by the processor to perform a transfer of the packets of data between the two devices, the previous pending packet number represents a number of packets of data that previously remained to be transferred between the two devices, and the priority pending packet number corresponds to the current priority of the thread.