Universal routing in PCI-Express fabrics
First Claim
1. A method for routing a plurality of transaction packets in a data processing system having a plurality of devices coupled to a switched fabric, the method comprising:
- assigning a routing identifier that is unique to each device;
inserting a first routing identifier in a first transaction packet that is sent from a first device, wherein the first transaction packet has a modified PCI-Express format that replaces the bus-device-function (BDF) number field in a standard PCI-Express format with a 16-bit universal routing identifier (URID) field, wherein the first routing identifier is inserted in the URID field as the 16-bit URID;
receiving the first transaction packet containing the first routing identifier by a second device;
comparing the first routing identifier against a routing database having a plurality of data entries stored in the second device; and
routing the first transaction packet through a predetermined port in the second device based on the result of the comparing.
7 Assignments
0 Petitions
Accused Products
Abstract
A universal routing identifier (URID) is provided to extend the function space in PCI-Express fabrics. Methods and systems based on the URID are provided for configuring URID capable devices and upgrading PCI-Express bridges and switches having lookup tables with access control functionality. The lookup table entry contains URIDs of destination ports, backup ports, acceptance ports, and permitted ports for downstream and upstream filtering, routing and arbitrating of transaction packets. URID capable devices can be incrementally added to current PCI-Express bridges and switches. A configuration mechanism is added to the current PCI/PCI-Express enumeration software. The URID capabilities can be disabled to maintain system compatibility. A URID capable PCI-Express system is able to address ten of thousands single-function devices. A URID capability segment field is provided in the current PCI-Express configuration space. Each URID capable device contains the URID capability segment implemented in its own set of configuration space registers.
40 Citations
24 Claims
-
1. A method for routing a plurality of transaction packets in a data processing system having a plurality of devices coupled to a switched fabric, the method comprising:
-
assigning a routing identifier that is unique to each device; inserting a first routing identifier in a first transaction packet that is sent from a first device, wherein the first transaction packet has a modified PCI-Express format that replaces the bus-device-function (BDF) number field in a standard PCI-Express format with a 16-bit universal routing identifier (URID) field, wherein the first routing identifier is inserted in the URID field as the 16-bit URID; receiving the first transaction packet containing the first routing identifier by a second device; comparing the first routing identifier against a routing database having a plurality of data entries stored in the second device; and routing the first transaction packet through a predetermined port in the second device based on the result of the comparing. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for assigning a plurality of routing identifiers to a plurality of devices in a PCIe fabric, the method comprising:
-
a first configuring mechanism which enumerates the plurality of devices according to their order of discovery; and a second configuring mechanism which assigns the plurality of routing identifiers to the plurality of devices using a specific programming code, each routing identifier of the plurality of routing identifiers comprising a 16-bit universal routing identifier (URID) that replaces the bus-device-function (BDF) number in a PCI-Express transaction packet, the URID enabling routing of the PCI-Express transaction packets to a plurality of device functions independent of distribution of the device functions to devices and buses of a host data processing system. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for routing a plurality of modified PCI-Express transaction packets to a destination device in a data processing system having a plurality of devices coupled to a switch fabric, the system comprising:
-
at least one processor an agent coupled to the processor and assigning a unique routing identifier to each device; a comparing mechanism coupled to the processor and determining if the routing identifier is contained within a routing database; a routing mechanism coupled to the processor and forwarding the transaction packet to the destination device; wherein the destination identifier is the unique routing identifier assigned by the agent; and wherein the unique routing identifier conforms to a modified PCI-Express format that replaces the bus-device-function (BDF) number field in a standard PCI-Express format with a 16-bit universal routing identifier (URID) field, wherein the unique routing identifier is inserted in the URID field as the 16-bit URID enabling routing of the transaction packets to the plurality of devices independent of distribution of the plurality of devices and buses of the data processing system. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A routing apparatus for routing modified PCI-Express transaction packets among a plurality of devices in a data processing system, the routing apparatus comprising:
-
a plurality of ports, each port conforming to a PCI-Express physical format which is standardized by PCI-SIG; a lookup table with a plurality of data entries; a data processing unit coupled to the lookup table; and wherein the modified PCI-Express transaction packets conform to a modified PCI-Express format that replaces the bus-device-function (BDF) number field in a standard PCI-Express format with a 16-bit universal routing identifier (URID) field, wherein a 16-bit routing identifier is inserted in the URID field to enable routing of the transaction packets to device functions of the plurality of devices independent of distribution of the device functions to devices and buses of the data processing system. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification