TAG Field Routing for PCI Express Completion Packets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The PCI Express system's existing TRANSACTION_ID-based routing mechanism requires look-up tables to identify clients, leading to increased latency and memory usage due to the large number of outstanding transactions, which can 'clog' the system and limit TAG field usage to 5 bits, causing inefficiencies in data transfer.
Innovation Solution
The proposed data packet routing mechanism utilizes specific bits in the TAG field to directly route completion packets to the requesting client by embedding information that identifies the client group, client ID, and read request number, eliminating the need for look-up tables and optimizing data transfer by reducing latency and bandwidth constraints.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If TRANSACTION_ID-based routing with look-up tables is used to identify clients, then routing accuracy is improved, but latency increases and memory usage increases
Solution Approach 1:
The patent extracts the client identification information directly from the TAG field of the TRANSACTION_ID and uses it to route completion packets without requiring a look-up table. The TAG field bits are taken out and used as direct routing indices, eliminating the intermediate lookup step that causes latency and memory usage.
Solution Approach 2:
The patent segments the 8-bit TAG field into multiple portions: some bits identify the client group, other bits identify the specific client within the group, and remaining bits identify the read request number. This segmentation allows direct routing without full look-up tables while maintaining routing accuracy.
2Adaptability or versatility
If TAG field is used as 8-bit field to identify clients, then client identification capability is improved, but system clogging increases due to too many outstanding transactions
Solution Approach 1:
The patent segments the TAG field functionality: some bits are allocated for client group identification, some for specific client identification, and some for read request numbering. This segmentation provides sufficient client identification capability while limiting the total number of outstanding transactions per device to 32, preventing system clogging.
Solution Approach 2:
The patent changes the parameter allocation within the TAG field from the traditional 8-bit counter usage to a segmented structure where bits are assigned to different functions (client group, client ID, request number). This parameter reconfiguration maintains identification capability while controlling transaction volume.
3Measurement precision
If look-up tables are used to route completion packets to clients, then routing accuracy is improved, but memory consumption increases
Solution Approach 1:
The patent extracts client identification information directly from the TAG field bits and uses these bits as direct indices for routing completion packets. This eliminates the need for large look-up tables in memory, reducing memory consumption while maintaining routing accuracy through direct bit-based indexing.
Solution Approach 2:
The patent uses the TAG field bits themselves as the routing key rather than requiring a separate look-up table structure. The bit pattern in the TAG field is copied and used directly to index into smaller routing structures, eliminating the need for large memory tables.
Data Source
AI summary
A data packet routing mechanism including a plurality of clients for issuing read requests to a host device, the read requests each including a TAG field for identifying which of the plurality of clients issued a particular read request, wherein a completion response corresponding to the particular read request, including the TAG field, is issued from the host to the client that sent the read request, the plurality of clients being organized into M groups, each group including a predetermined number of clients; a first level routing device having an input for receiving completion responses from the host and a plurality of outputs for transmitting completion responses; and a plurality of second level routing devices, each being coupled to the plurality of clients in one of the M groups, and having an input for receiving completion responses from the first level routing device and a plurality of outputs, each output for transmitting completion responses to one of the plurality of clients in the group. The TAG field associated with each completion response includes a predetermined number of bitfields, a first bitfield of the TAG field being read by the first level routing device and providing the first level routing device with an identity of the second level routing device to which the completion response is to be transmitted, to which second level routing device the first level routing device transmits the completion response, and a second bitfield of the TAG field being read by the second level router device that receives the completion response from the first level routing device, the second bitfield providing the second level routing device with the identity of the client within the group to which the completion response is to be transmitted, to which the second level routing device transmits the completion response.


