Root Complex Read Request Routing for PCIe Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing environments using PCIe and packet-based systems, latency issues arise due to processing large and small read requests in a single pipeline, leading to increased latency and reduced DMA performance, as short control structure reads wait for previous read requests to be fully fragmented.

Innovation Solution

Implementing a root complex with discrimination logic to route read requests to separate queues based on type, prioritizing control read requests over data read requests, and using time-multiplexing to service requests simultaneously, allowing for concurrent DMA transfers without increasing adapter complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If read requests are processed in a single pipeline, then device complexity is reduced, but latency increases due to sequential processing of control and data reads

Engineering Contradiction:
Improvequeue structure complexityVSAvoidread request latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent segments the single read request pipeline into two separate queues: a first queue for control structure reads and a second queue for data reads. This segmentation allows independent processing of control and data read operations, eliminating the sequential dependency that caused latency. The discrimination logic routes read requests to appropriate queues based on whether they are control or data reads, enabling parallel processing paths.

Inventive Principle:
Principle #1Segmentation

2Speed

If control read requests are prioritized over data read requests, then control structure access speed improves, but device complexity increases due to priority arbitration mechanisms

Engineering Contradiction:
Improvecontrol structure read speedVSAvoidarbitration logic complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies local quality by assigning different service priorities to different types of read requests based on their specific needs. Control structure reads, which require low latency for system operation, are assigned high priority in the first queue. Data reads, which can tolerate more latency, are assigned lower priority in the second queue. This localized quality differentiation optimizes system response without requiring complex global arbitration mechanisms.

Inventive Principle:
Principle #3Local quality

3Loss of time

If separate queues are used for control and data reads, then latency is reduced through parallel processing, but device complexity increases due to discrimination and arbitration logic

Engineering Contradiction:
Improveread request latencyVSAvoidroot complex structure complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The discrimination logic performs preliminary classification of read requests before they enter the queue system. By examining predetermined fields in incoming read requests and determining their type (control or data) in advance, the system routes them to the appropriate queue before processing begins. This preliminary action prevents misrouting and reduces the need for complex arbitration during active processing, as each queue's purpose is predetermined.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8103837B2Servicing memory read requests
Publication Date: 2012.01.24 HEWLETT PACKARD ENTERPRISE DEV LP
  • US8103837B2 patent drawing
  • US8103837B2 patent drawing
  • US8103837B2 patent drawing

AI summary

Included are embodiments for a method for servicing memory read requests. At least one embodiment of a method includes receiving read requests from the I/O device; testing predetermined fields from the read requests to predict a type of read request; and when the type of request is predicted to be a data read request, then route the read request to a first queue. Additionally, some embodiments include when the type of request is predicted to be a control read request, then route the read request to a second queue, wherein the second queue has a higher priority than the first queue; determining which of the first queue and second queue to read; retrieving at least one of the read requests from the determined queue; and processing the retrieved read request.