Push Instruction Inter-Thread Communication Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional inter-thread communication in symmetric multiprocessor environments, such as the 'yank-and-pull' methodology, suffers from high latency, significant data bandwidth consumption, low processor efficiency, unproductive power dissipation, limited communication scope to threads within the same SMP system, and inability to support one-to-many, many-to-one, or many-to-many thread communication.

Innovation Solution

The implementation of a push-based inter-thread communication method, where a processor core executes push instructions to transmit message payloads directly to a mailbox of a receiving thread, facilitated by an accelerator switch that manages message routing and authorization, enabling efficient communication across different threads and SMP systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the yank-and-pull methodology is used for inter-thread communication, then data can be transferred between threads, but latency is high due to execution of both yank and pull phases plus barrier operation

Engineering Contradiction:
Improvecommunication latencyVSAvoidthread communication efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent inverts the conventional yank-and-pull methodology by implementing a push-based approach where the producer thread actively pushes data to the consumer thread's mailbox, eliminating the need for the consumer to pull data and reducing communication latency significantly

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent pre-allocates mailboxes for consumer threads and sets up the communication infrastructure in advance, allowing producer threads to immediately push data without waiting for consumer readiness or executing barrier operations

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If the yank-and-pull methodology is used, then data transfer between threads is achieved, but data bandwidth consumption is significant due to two movements of cache line

Engineering Contradiction:
Improvedata bandwidth usageVSAvoidcommunication efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent extracts the data movement operation from the conventional two-phase yank-and-pull process, eliminating the redundant pull phase and reducing cache line movements from two to one, thereby halving the data bandwidth consumption

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of energy

If polling is used by consumer thread in yank-and-pull methodology, then consumer can acquire semaphore, but processor efficiency is low and unproductive power dissipation occurs

Engineering Contradiction:
Improvepower dissipationVSAvoidprocessor efficiency
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent implements event-driven notification where the producer thread automatically notifies the consumer thread when data is pushed to the mailbox, eliminating the need for continuous polling and allowing the consumer to enter low-power states until notification occurs

Inventive Principle:
Principle #25Self-service

4Adaptability or versatility

If yank-and-pull methodology is used, then communication between threads in same SMP system is enabled, but communication scope is limited to threads within same process or LPAR

Engineering Contradiction:
Improvecommunication scopeVSAvoidsecurity authorization
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent creates a universal communication mechanism that works across different processes and SMP systems by using mailboxes as a common interface, while maintaining security through authorization checks on the push operation itself rather than relying on shared address space permissions

Inventive Principle:
Principle #6Universality (Multi-functionality)

5Adaptability or versatility

If yank-and-pull methodology is used, then one-to-one pairwise communication is supported, but one-to-many, many-to-one, or many-to-many communication is not supported

Engineering Contradiction:
Improvecommunication patternsVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent designs the mailbox mechanism to be universally applicable for all communication patterns by allowing producer threads to push to any mailbox and consumer threads to monitor any mailbox, with the same basic push instruction supporting one-to-one, one-to-many, many-to-one, and many-to-many scenarios

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9575825B2Push instruction for pushing a message payload from a sending thread to a receiving thread
Publication Date: 2017.02.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9575825B2 patent drawing
  • US9575825B2 patent drawing
  • US9575825B2 patent drawing

AI summary

A processor core of a data processing system receives a push instruction of a sending thread that requests that a message payload identified by at least one operand of the push instruction be pushed to a mailbox of a receiving thread. In response to receiving the push instruction, the processor core executes the push instruction of the sending thread. In response to executing the push instruction, the processor core initiates transmission of the message payload to the mailbox of the receiving thread. In one embodiment, the processor core initiates transmission of the message payload by transmitting a co-processor request to a switch of the data processing system via an interconnect fabric.