Virtual Doorbell Mechanism for GPU-CPU Notification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing unit (GPU) architectures face challenges in intra-device event notification, particularly when the GPU is a PCIe-based device or attached to a non-coherent fabric, preventing effective communication with the central processing unit (CPU) for scheduling work.

Innovation Solution

The implementation of hardware support for virtual doorbells in a memory-mapped I/O (MMIO) environment enables GPU notifications to be managed efficiently, allowing for effective communication and scheduling without requiring a coherent fabric.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional GPU architectures use coherent fabric for CPU-GPU communication, then notification mechanism works reliably, but the system cannot support PCIe-based GPUs or non-coherent fabric attachments

Engineering Contradiction:
ImproveGPU attachment flexibilityVSAvoidnotification mechanism reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a doorbell register as an intermediary mechanism between CPU and GPU. The doorbell register acts as a mediator that enables notification functionality without requiring coherent fabric, allowing PCIe-based GPUs and non-coherent fabric attachments while maintaining reliable notification delivery through a dedicated notification register that CPU can write to signal GPU of pending work

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If GPU communicates notifications via coherent fabric, then notification delivery is reliable, but PCIe-based devices and non-coherent fabric attachments are prevented

Engineering Contradiction:
Improvedevice compatibilityVSAvoidfabric coherence requirement
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the notification mechanism from the coherent fabric dependency. By separating the notification function from the coherent fabric requirement, the invention allows GPUs attached via PCIe or non-coherent fabric to operate independently of coherent fabric constraints, removing the blocking constraint while preserving notification functionality through dedicated doorbell and notification registers

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If memory-mapped I/O environment is used without hardware support for virtual doorbells, then implementation is simpler, but notification and scheduling efficiency deteriorates

Engineering Contradiction:
Improvenotification and scheduling efficiencyVSAvoidhardware support complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service notification mechanism where the GPU autonomously monitors its own notification register and the CPU autonomously writes to the doorbell register. This self-service approach enables efficient notification and scheduling in memory-mapped I/O environments with hardware support for virtual doorbells, allowing each component to manage its own notification state without requiring complex external coordination mechanisms

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10831483B1Memory mapped virtual doorbell mechanism
Publication Date: 2020.11.10 INTEL CORP
  • US10831483B1 patent drawing
  • US10831483B1 patent drawing
  • US10831483B1 patent drawing

AI summary

An apparatus to facilitate doorbell notifications is disclosed. The apparatus includes memory-mapped I/O (MMIO) base address registers including a physical function (PF) and plurality of virtual functions (VF), wherein each function's base address register comprises a plurality of doorbell pages and doorbell hardware including doorbell registers, each having an assignable function identifier (ID) and offset, and comprising a plurality of doorbells to activate a doorbell notification in response to receiving a doorbell trigger from an associated doorbell page set upon detection of an access request.