Memory-Based Completion Granules for Multi-Core Notification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As data processing systems scale to include multiple cores and threads, the existing hardware lock register-based method for asynchronous completion notification becomes inefficient and expensive, requiring increased hardware resources and deep queuing.

Innovation Solution

A hardware unit in the data processing system receives requests with source tags, maintains pointers to a memory-based completion area, and provides asynchronous completion notification by updating a completion granule with a status value, eliminating the need for polling and reducing resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If hardware lock registers are used for asynchronous completion notification, then completion status can be tracked, but hardware resource consumption increases significantly in large-scale systems

Engineering Contradiction:
Improvecompletion notification reliabilityVSAvoidhardware lock register quantity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent replaces physical hardware lock registers with virtual memory-based completion granules. Each thread has a completion area in its address space with granules that copy the completion status function, eliminating the need for numerous physical registers while maintaining reliable completion notification across multiple cores and threads.

Inventive Principle:
Principle #26Copying

2Ease of operation

If hardware lock registers are used for arbitration, then access coordination is achieved, but queuing depth increases in large-scale data processing systems

Engineering Contradiction:
Improveresource access coordinationVSAvoidqueuing delay
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent transitions from a hardware-based single-dimension arbitration approach to a memory-based multi-dimensional solution. By using virtual memory completion granules accessible across multiple address spaces, the system eliminates deep queuing delays while maintaining coordination, as threads can efficiently check completion status without blocking in hardware queues.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Loss of information

If polling is used to detect completion, then completion status can be detected, but processing efficiency decreases

Engineering Contradiction:
Improvecompletion status detectionVSAvoidprocessing throughput
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent implements an efficient feedback mechanism where completion granules in memory provide immediate status updates to threads. When a hardware unit completes processing, it updates the appropriate completion granule, which the thread can quickly check without continuous polling, reducing wasted cycles while ensuring reliable completion detection.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12020066B2Asynchronous completion notification in a multi-core data processing system
Publication Date: 2024.06.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12020066B2 patent drawing
  • US12020066B2 patent drawing
  • US12020066B2 patent drawing

AI summary

Asynchronous completion notification is provided in a data processing system including one or more cores each executing one or more threads. A hardware unit of the data processing system receives and enqueues a request for processing and a source tag indicating at least a thread and core that issued the request. The hardware unit maintains a pointer to a completion area in a memory space. The completion area includes a completion granule for the hardware unit and thread. The hardware unit performs the processing requested by the request and computes an address of the completion granule based on the pointer and the source tag. The hardware unit then provides completion notification for the request by updating the completion granule with a value indicating a completion status.