Virtual Link Buffer for Low Latency Thread Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems face inefficiencies in data transfer between execution threads due to high latency and energy consumption, particularly when using software-based directed communication through shared memory, which requires valuable processor resources and involves multiple cache hierarchy layers.

Innovation Solution

A hardware-accelerated directed communication channel is implemented using caches and a link controller to provide a virtual link buffer, enabling ordered or unordered data transfer between execution threads by utilizing cache lines and maintaining control through a link controller, thereby reducing the need for software-based implementations and minimizing resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software-based directed communication through shared memory is used, then data transfer between threads can be achieved, but latency increases and processor resources are consumed

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent introduces a dedicated communication channel as an intermediary between producer and consumer threads, using a hardware-managed buffer (implemented via cache lines) to transfer data without requiring processor intervention. This mediator handles the data transfer autonomously, eliminating the latency associated with software-based communication while maintaining reliable data transfer between threads.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the software-based communication mechanism (which requires processor execution of instructions, locks, and memory management) with a hardware-based communication channel. This substitution eliminates the need for processor resources to be consumed during data transfer, reducing latency while maintaining data transfer reliability between threads.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If software-based directed communication through shared memory is used, then data transfer between threads can be achieved, but processor resources are consumed

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidprocessor resource consumption
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The dedicated communication channel acts as an intermediary that handles data transfer independently of the processor, using hardware-managed buffers and direct cache line transfers. This eliminates the need for processor resources to be consumed during communication operations, allowing the processor to focus on computation while the communication channel handles data movement autonomously.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The communication channel is designed to be self-service, with the buffer management and data transfer handled automatically by the hardware without requiring processor intervention. The system uses existing cache coherence protocols and memory structures to manage the buffer, allowing the communication infrastructure to service itself without consuming valuable processor resources.

Inventive Principle:
Principle #25Self-service

3Reliability

If transmission of data between processing cores occurs through multiple layers of cache hierarchy, then data can be transferred between cores, but latency and energy usage increase

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidenergy consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent extracts the data transfer path from the traditional multi-layer cache hierarchy and creates a dedicated communication channel that bypasses these intermediate layers. By taking out the essential function of data transfer and implementing it through a direct hardware channel using cache lines, the system eliminates the energy-consuming intermediate cache layers while maintaining the ability to transfer data between cores.

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If a full hardware solution is implemented for communication, then data transfer efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a communication channel that uses existing, multi-functional hardware structures - specifically cache lines and cache coherence protocols - that already serve multiple purposes in the processor. By making the communication channel universal and based on existing infrastructure rather than dedicated communication hardware, the system achieves high data transfer efficiency without significantly increasing device complexity.

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

Data Source

PatentUS10474575B2Cache-based communication between execution threads of a data processing system
Publication Date: 2019.11.12 ARM LTD
  • US10474575B2 patent drawing
  • US10474575B2 patent drawing
  • US10474575B2 patent drawing

AI summary

A virtual link buffer provides communication between processing threads or cores. A first cache is accessible by a first processing device and a second cache accessible by a second processing device. An interconnect structure couples between the first and second caches and includes a link controller. A producer cache line in the first cache stores data produced by the first processing device and the link controller transfers data in the producer cache line to a consumer cache line in the second cache. Each new data element is stored at a location in the producer cache line indicated by a store position or tail indicator that is stored at a predetermined location in the same cache line. Transferred data are loaded from a location in the consumer cache line indicated by a load position or head indicator that is stored at a predetermined location in the same consumer cache line.