PCIe Endpoint Hardware Acceleration for Software Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing PCIe endpoint cards rely on dedicated hardware controllers for each device, limiting flexibility and performance in emulating multiple devices, and requiring significant CPU resources for emulation processes.

Innovation Solution

The enhanced PCIe endpoint devices employ software emulation with hardware acceleration, using a processor separate from the main CPU complex to emulate multiple PCIe devices, supporting up to 64K virtual functions and enforcing PCIe ordering rules, allowing for flexible and high-performance device emulation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dedicated hardware controllers are used for each PCIe device, then device emulation reliability is improved, but device complexity and flexibility deteriorate

Engineering Contradiction:
Improvedevice emulation reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses a separate processor to create a software copy of the PCIe controller functionality, emulating device behavior through instruction execution rather than dedicated hardware. This allows multiple virtual functions to be emulated on the same physical card, improving flexibility while maintaining reliability through accurate software modeling of device behavior

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The PCIe endpoint card is designed to emulate multiple different device types through software rather than requiring dedicated hardware for each device type. A single physical card can dynamically configure itself to emulate various PCIe devices, eliminating the need for multiple specialized hardware controllers and thereby reducing device complexity

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

2Adaptability or versatility

If software emulation is implemented on main server cores, then adaptability is improved, but productivity deteriorates due to CPU resource consumption

Engineering Contradiction:
ImproveadaptabilityVSAvoidproductivity
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent separates the emulation workload from the main server CPU by implementing it on a dedicated processor attached to the PCIe endpoint card. This segmentation allows the main server cores to focus on their primary computational tasks while the separate processor handles device emulation, thereby improving overall system productivity without sacrificing adaptability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The separate processor acts as an intermediary between the PCIe bus and the main server system. It handles all emulation tasks and communicates with the main system through standardized PCIe interfaces, allowing adaptability to be maintained while protecting main CPU resources from emulation overhead, thus preserving productivity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If software emulation processes run on the same machine, then ease of operation is improved, but speed deteriorates due to jitter and performance variability

Engineering Contradiction:
Improveease of operationVSAvoidemulation performance
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The patent extracts the emulation performance-critical path from the shared main server environment and places it on a dedicated processor. This isolation removes the source of jitter and performance variability caused by competing processes on the main system, thereby improving emulation speed and consistency while maintaining ease of operation through integrated hardware support

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9996484B1Hardware acceleration for software emulation of PCI express compliant devices
Publication Date: 2018.06.12 AMAZON TECH INC
  • US9996484B1 patent drawing
  • US9996484B1 patent drawing
  • US9996484B1 patent drawing

AI summary

A system that provides virtualized computing resources may include an enhanced PCIe endpoint device on which an emulation processor emulates PCIe compliant hardware in software. The endpoint device may include host interface circuitry that implements pointer registers and control and status registers for each of multiple transaction ring buffers instantiated in memory on the device. In response to receiving a transaction layer packet that includes a transaction, packet steering circuitry may push the transaction into one of the buffers, dependent on the transaction type, a routing identifier for an emulated device to which it is directed, its traffic class or other criteria. The transaction may be processed in software, emulating the hardware device. The host interface circuitry may generate response completion packets for configuration requests and non-posted transactions, and may return them according to PCIe ordering rules, regardless of the order in which they were processed on the endpoint device.