Inter-thread Message Pointers for Processor Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer processors face inefficiencies in communication between hardware threads, which are time-consuming and resource-intensive, hindering the processing power and complexity required by advanced software.

Innovation Solution

A method is introduced where a set of hardware threads registers to receive messages, increments a message location value, and sends it to other threads until a specified criterion is met, allowing for efficient inter-thread data communication by generating derived messages that can serve as pointers to memory locations, thereby transferring data efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional inter-thread communication methods are used, then data can be transferred between hardware threads, but the communication process is time-consuming and resource-intensive

Engineering Contradiction:
Improveinter-thread communication efficiencyVSAvoidcommunication time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent creates derived messages that are copies or references to actual data locations rather than transferring complete data sets. Thread messages store location pointers that reference the original data in memory, allowing threads to communicate efficiently by exchanging small pointer values instead of large data blocks.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces an inter-thread message system that acts as an intermediary layer between hardware threads. This message system manages communication by storing and forwarding location pointers, reducing the need for direct thread-to-thread data transfer and minimizing communication overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional inter-thread communication methods are used, then data can be transferred between hardware threads, but the process is resource-consuming

Engineering Contradiction:
Improveinter-thread communication efficiencyVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

Instead of transferring actual data between threads, the system transfers lightweight location pointers that reference the data. This copying approach minimizes resource consumption by moving only small pointer values rather than large data structures, reducing memory bandwidth usage and processing overhead.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent extracts the essential communication function to just transferring location information rather than complete data. By taking out only the necessary pointer data and leaving the actual data in its original location, the system reduces resource consumption while maintaining communication functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If message location values are incremented and sent to multiple threads, then efficient data transfer is achieved, but the system must track and manage message locations across threads

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidmessage location management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The message system automatically increments location values and manages message routing without requiring complex external control. The inter-thread message mechanism self-manages the location tracking by automatically updating and distributing pointer values to the appropriate threads, reducing the need for complex management logic.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8893153B2Inter-thread data communications in a computer processor
Publication Date: 2014.11.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8893153B2 patent drawing
  • US8893153B2 patent drawing
  • US8893153B2 patent drawing

AI summary

A first set of one or more hardware threads for receiving messages sent from hardware threads are registered. After receiving indications of a message location value and a number, the message location value is increments and sent to a different hardware thread of the first set of one or more hardware threads until the message location value has been incremented the number of times or a criterion for interrupting the incrementing and sending is satisfied. An actual number of times the message location value was incremented is indicated to a hardware thread that sent the indications of the message location value and the number.