ATC Direct Guest Command Submission via Translation Agent

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The inefficiencies in the Address Translation Service (ATS) of the PCIe architecture, particularly in legacy computer systems with heterogeneous processing units, lead to performance bottlenecks due to the involvement of middle agents in command communications between address translation caches and guest software.

Innovation Solution

The implementation of a Translation Agent architecture that allows address translation caches (ATCs) to directly communicate with guest software by configuring guest-specific command queues and using a Process Address Space Identifier (PASID) table to send commands and inform guest software of their presence, thereby reducing the need for middle agents like IOMMUs and host software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional PCIe ATS architecture with middle agents (IOMMU, host software) is used, then address translation and command communication can be achieved, but processing efficiency deteriorates due to performance bottlenecks and virtual machine exits

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts and removes the middle agents (IOMMU and host software) from the command communication path between ATC and guest software. By directly connecting ATC to guest software through a simplified interface, the patent eliminates the performance bottlenecks caused by virtual machine exits and host processing while maintaining the essential address translation functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a new architectural interface as an intermediary that enables direct communication between ATC and guest software. This interface includes command queues and notification mechanisms that allow efficient command submission without requiring traditional middle agents, thus improving productivity while managing system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If direct communication between ATC and guest software is implemented, then processing efficiency improves by eliminating virtual machine exits, but architectural complexity increases

Engineering Contradiction:
Improvecommand communication efficiencyVSAvoidinterface complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the communication interface into distinct components: command queues for submitting operations, notification mechanisms for signaling completion, and data structure definitions. This segmentation allows each component to be optimized independently while working together to achieve efficient direct communication between ATC and guest software.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent establishes command queues and notification mechanisms in advance, allowing ATC to submit commands directly without requiring runtime intervention from host software. This preliminary setup enables efficient command communication by pre-configuring the data structures and notification paths needed for direct ATC-to-guest-software interaction.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20230350812A1Architectural interface for address translation cache (ATC) in XPU to submit command directly to guest software
Publication Date: 2023.11.02 INTEL CORP
  • US20230350812A1 patent drawing
  • US20230350812A1 patent drawing
  • US20230350812A1 patent drawing

AI summary

In one embodiment, an apparatus comprises: at least one accelerator to perform operations on data; and an address translation cache (ATC) coupled to the at least one accelerator, the ATC to store address translations. The ATC is to: send a command to a pending request queue (PRQ) stored in a memory coupled to the apparatus, the PRQ associated with a process of a guest software; and send an interrupt to inform the process regarding the command. Other embodiments are described and claimed.