Request Packet Tag Reuse Across PCIe Link Latency Windows
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The requirement for unique tags in outstanding request packets in network communication links, as dictated by the PCIe specification, can lead to inefficient operation and stalling when requesters run out of tag values, particularly in higher-speed or higher-latency topologies, necessitating workarounds like phantom function numbers or tag reuse that introduce processing overhead and design complexity.
Innovation Solution
Requesters continue sending request packets with non-unique tags for in-flight packets, ensuring unique tags only for those within the completer's internal elements, using a moving window approach to avoid reordering issues while leveraging latency in higher-latency topologies.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If unique tags are required for all outstanding request packets from a requester, then request identification and matching is simplified, but requester performance degrades due to stalling when tag values are exhausted
Solution Approach 1:
The patent segments the tag uniqueness requirement into two distinct scopes: (1) tags must be unique among request packets currently held in the completer's internal elements, and (2) tags may be reused for request packets that are in-flight (transmitted but not yet received by completer). This segmentation allows high-speed requesters to reuse tags for in-flight packets without causing identification conflicts, thereby eliminating stalls while maintaining reliable request matching within the completer.
Solution Approach 2:
The patent introduces a dynamic tag management approach where the tag uniqueness constraint is adaptively applied based on the state of request packets. Rather than enforcing static uniqueness across all outstanding requests, the system dynamically determines which tags can be reused by checking whether the completer currently holds any request packets with those tags. This dynamic approach enables continuous request transmission without stalling.
2Productivity
If tag reuse is implemented for in-flight packets, then requester throughput increases, but complexity increases due to tracking in-flight packets and managing tag pools
Solution Approach 1:
The patent introduces an intermediary tag pool mechanism that manages tag allocation between requester and completer. The tag pool acts as a buffer that tracks which tags are currently in use by in-flight requests versus those available for reuse. This intermediary structure simplifies the complexity by providing a centralized management point rather than requiring complex tracking logic distributed across both endpoints.
Solution Approach 2:
The patent implements preliminary tracking of tag usage status before new request packets are transmitted. By maintaining a record of which tags are currently held by the completer and which are available for reuse, the system performs the necessary tag management actions in advance, avoiding the need for complex runtime decisions and reducing overall system complexity.
3Productivity
If phantom function numbers are used to increase tag availability, then more request packets can be sent, but processing overhead increases due to additional control and processing circuitry
Solution Approach 1:
The patent extracts the tag management complexity from the requester side and concentrates it in the completer's internal elements. By requiring the completer to track which tags are currently held and communicate this information back to the requester, the system eliminates the need for complex phantom function number mechanisms and distributed tag management circuitry at the requester end, reducing overall device complexity while maintaining increased packet capacity.
Data Source
Figure 1~2
Figure 3
Figure 4~5
AI summary
An electronic device includes a requester and a link interface coupled between the requester and a link. The requester is configured to send a request packet to a completer on the link via the link interface. When sending the request packet to the completer, the requester sends, to the completer via the link interface, the request packet with a tag that is not unique with respect to tags in other request packets from the requester that will be in the internal elements of the completer before the request packet is in the internal elements of the completer, but that is unique with respect to tags in other request packets from the requester that will be in the internal elements of the completer while the request packet is in the internal elements of the completer.