Logical Copy Engine Distributes Commands to Physical Engines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Complex processor topologies require a large number of copy engines to support high-bandwidth copy operations, which is impractical due to hardware limitations, and the complexity of device drivers needed to manage these engines leads to maintainability, portability, and scalability issues.

Innovation Solution

A copy subsystem with logical and physical copy engines, where the logical copy engine receives commands and distributes them to physical engines, allowing for efficient load balancing and saturation of communication links without requiring the device driver to manage individual channels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of copy engines is increased to support high-bandwidth copy operations in complex processor topologies, then copy bandwidth is improved, but device complexity increases beyond acceptable limits

Engineering Contradiction:
Improvecopy bandwidthVSAvoidnumber of copy engines
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the copy engine functionality into two distinct components: a logical copy engine that receives and manages copy commands, and multiple physical copy engines that actually execute the copy operations. This segmentation allows the system to achieve high copy bandwidth through multiple physical engines while keeping the logical engine count manageable, thereby resolving the contradiction between productivity and device complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The logical copy engine acts as an intermediary between the device driver and the physical copy engines. It receives copy commands from the device driver, manages the distribution of work to physical copy engines, and handles load balancing across multiple physical engines. This intermediary layer simplifies the interface to the device driver while enabling efficient utilization of multiple physical copy engines for high bandwidth operations

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple copy engines are assigned to manage multiple communication link channels, then copy bandwidth is improved, but device driver complexity increases leading to maintainability and portability issues

Engineering Contradiction:
Improvecopy bandwidthVSAvoiddevice driver complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The logical copy engine provides self-service functionality by automatically managing load balancing and work distribution across multiple physical copy engines. Instead of requiring the device driver to manually manage each physical copy engine and channel, the logical copy engine autonomously handles these tasks, including saturating communication links efficiently. This self-service capability significantly reduces device driver complexity while maintaining high copy bandwidth

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The logical copy engine serves multiple functions: it acts as a command receiver from the device driver, a work distributor to physical copy engines, a load balancer across channels, and a manager of communication link saturation. This multi-functionality allows a single logical copy engine to manage the complexities of multiple physical engines and channels, reducing the burden on the device driver and improving maintainability and portability

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

Data Source

PatentUS10180916B2Managing copy operations in complex processor topologies
Publication Date: 2019.01.15 NVIDIA CORP
  • US10180916B2 patent drawing
  • US10180916B2 patent drawing
  • US10180916B2 patent drawing

AI summary

A copy subsystem within a processor includes a set of logical copy engines and a set of physical copy engines. Each logical copy engine corresponds to a different command stream implemented by a device driver, and each logical copy engine is configured to receive copy commands via the corresponding command stream. When a logical copy engine receives a copy command, the logical copy engine distributes the command, or one or more subcommands derived from the command, to one or more of the physical copy engines. The physical copy engines can perform multiple copy operations in parallel with one another, thereby allowing the bandwidth of the communication link(s) to be saturated.