Logical Copy Engine Subsystem for Processor Topology Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Complex processor topologies often require a large number of copy engines to achieve 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 computer-implemented method that uses a set of logical copy engines mapped to physical copy engines, allowing the logical engines to coordinate copy operations across communication links without needing the device driver to load balance, enabling efficient copy operations in various processor topologies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of physical copy engines is increased to support high-bandwidth copy operations in complex processor topologies, then copy bandwidth is improved, but device complexity and hardware size increase beyond acceptable limits
Solution Approach 1:
The patent creates virtual copies of copy engines through the copy subsystem. Instead of physically duplicating copy engine hardware, the system uses a single physical copy engine that can be logically instantiated multiple times. Each virtual copy engine appears as a separate hardware unit to the host system and device driver, enabling multiple simultaneous copy operations without requiring proportional increases in physical hardware.
Solution Approach 2:
The single physical copy engine is designed to perform multiple functions by serving different virtual copy engines. The copy subsystem allows one physical copy engine to handle copy operations for multiple virtual engines simultaneously, making the hardware universal and adaptable to various copy bandwidth requirements without physical expansion.
2Productivity
If multiple physical copy engines are provided to support bidirectional copying and high bandwidth, then copy capability is improved, but the device driver complexity for managing and load balancing across engines increases
Solution Approach 1:
The copy subsystem acts as an intermediary layer between the host system and the single physical copy engine. It receives copy commands from multiple virtual copy engines, manages their execution, and handles load balancing internally. This intermediary absorbs the management complexity, shielding the device driver from needing to directly manage multiple physical engines or implement load balancing logic.
Solution Approach 2:
The copy subsystem autonomously manages the distribution and coordination of copy commands across the physical copy engine resources. It self-regulates the workload without requiring external intervention from the device driver, automatically handling task allocation, synchronization, and resource management that would otherwise burden the driver.
3Productivity
If separate copy engines are assigned to different communication link channels to utilize bandwidth, then copy bandwidth is improved, but the number of required copy engines increases beyond hardware limits
Solution Approach 1:
The system creates multiple virtual instances of copy engines that can be assigned to different communication link channels. Instead of requiring one physical copy engine per channel, a single physical copy engine is virtually copied and assigned to multiple channels, allowing the system to utilize available bandwidth across multiple links without proportionally increasing the number of physical copy engines.
Solution Approach 2:
The patent introduces a virtualization dimension to the copy engine architecture. Rather than expanding horizontally with more physical engines, the system adds a layer of abstraction that allows one physical engine to operate in multiple virtual contexts simultaneously, effectively utilizing bandwidth across multiple channels through temporal and logical multiplexing.
Data Source
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.


