PCIe switch for aggregating a large number of endpoint devices
First Claim
1. An apparatus, comprising:
- a root port for coupling to a root complex via a serial computer expansion bus;
a plurality of endpoint ports, each endpoint port for coupling to an endpoint device via a serial communication link, wherein each endpoint port is associated with a function number;
a downstream buffer disposed in a first communication pathway from a downstream output of the root port to each of the endpoint ports, wherein the downstream buffer queues transaction layer packets received from the downstream output of the root port, wherein a function number is identified from each transaction layer packet in the downstream buffer, and wherein each transaction layer packet in the downstream buffer is directed to a downstream input of one of the endpoint ports associated with the identified function number;
a demultiplexer having a demultiplexer input in communication with a head of the downstream buffer and a plurality of demultiplexer outputs, wherein each demultiplexer output is in communication with a downstream input of one of the endpoint ports;
an upstream buffer disposed in a second communication pathway from an upstream output of each of the endpoint ports to an upstream input of the root port, wherein the upstream buffer queues transaction layer packets received from the upstream output of each endpoint port, and wherein the transaction layer packets in the upstream buffer are directed to the upstream input of the root port; and
a multiplexer having a multiplexer output to a tail of the upstream buffer and a plurality of multiplexer inputs, wherein each multiplexer input is in communication with an upstream output of one of the endpoint ports.
2 Assignments
0 Petitions
Accused Products
Abstract
An apparatus includes a root port for coupling to a root complex, and a plurality of endpoint ports for coupling to endpoint devices, wherein each endpoint port is associated with a function number. A downstream buffer queues transaction layer packets (TLPs) received from the root port, wherein each TLP in the downstream buffer is directed to an endpoint port associated with the identified function number. An upstream buffer queues TLPs received from each endpoint port, and directs the queued TLPs to the root port. A method includes associating a function number with each endpoint port of a switch, wherein each endpoint port is adapted for coupling to an endpoint device. The method further includes receiving a first TLP from a root complex, identifying a function number within the first TLP, and directing the first TLP to an endpoint device through the endpoint port associated with the identified function number.
-
Citations
20 Claims
-
1. An apparatus, comprising:
-
a root port for coupling to a root complex via a serial computer expansion bus; a plurality of endpoint ports, each endpoint port for coupling to an endpoint device via a serial communication link, wherein each endpoint port is associated with a function number; a downstream buffer disposed in a first communication pathway from a downstream output of the root port to each of the endpoint ports, wherein the downstream buffer queues transaction layer packets received from the downstream output of the root port, wherein a function number is identified from each transaction layer packet in the downstream buffer, and wherein each transaction layer packet in the downstream buffer is directed to a downstream input of one of the endpoint ports associated with the identified function number; a demultiplexer having a demultiplexer input in communication with a head of the downstream buffer and a plurality of demultiplexer outputs, wherein each demultiplexer output is in communication with a downstream input of one of the endpoint ports; an upstream buffer disposed in a second communication pathway from an upstream output of each of the endpoint ports to an upstream input of the root port, wherein the upstream buffer queues transaction layer packets received from the upstream output of each endpoint port, and wherein the transaction layer packets in the upstream buffer are directed to the upstream input of the root port; and a multiplexer having a multiplexer output to a tail of the upstream buffer and a plurality of multiplexer inputs, wherein each multiplexer input is in communication with an upstream output of one of the endpoint ports. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15)
-
-
12. An apparatus, comprising:
-
a root port for coupling to a root complex via a serial computer expansion bus; a plurality of endpoint ports, each endpoint port for coupling to an endpoint device via a serial communication link, wherein each endpoint port is associated with a function number; a downstream buffer disposed in a first communication pathway from a downstream output of the root port to each of the endpoint ports, wherein the downstream buffer queues transaction layer packets received from the downstream output of the root port, wherein a function number is identified from each transaction layer packet in the downstream buffer, and wherein each transaction layer packet in the downstream buffer is directed to a downstream input of one of the endpoint ports associated with the identified function number; and an upstream buffer disposed in a second communication pathway from an upstream output of each of the endpoint ports to an upstream input of the root port, wherein the upstream buffer queues transaction layer packets received from the upstream output of each endpoint port, and wherein the transaction layer packets in the upstream buffer are directed to the upstream input of the root port, wherein each endpoint port, for each transaction layer packet received from an endpoint device connected to the endpoint port, sets the function number in the transaction layer packet to a value of the function number of the endpoint port prior to posting the transaction layer packet to the upstream buffer. - View Dependent Claims (16, 17, 18, 19)
-
-
20. An apparatus, comprising:
-
a root port for coupling to a root complex via a serial computer expansion bus; a plurality of endpoint ports, each endpoint port for coupling to an endpoint device via a serial communication link, wherein each endpoint port is associated with a function number; a downstream buffer disposed in a first communication pathway from a downstream output of the root port to each of the endpoint ports, wherein the downstream buffer queues transaction layer packets received from the downstream output of the root port, wherein a function number is identified from each transaction layer packet in the downstream buffer, and wherein each transaction layer packet in the downstream buffer is directed to a downstream input of one of the endpoint ports associated with the identified function number; and an upstream buffer disposed in a second communication pathway from an upstream output of each of the endpoint ports to an upstream input of the root port, wherein the upstream buffer queues transaction layer packets received from the upstream output of each endpoint port, and wherein the transaction layer packets in the upstream buffer are directed to the upstream input of the root port, wherein the root port, the plurality of endpoint ports, the upstream buffer and the downstream buffer are compliant with a layered protocol, wherein the root port manages a data link layer and a physical layer of the layered protocol for serial communication with the root complex, and wherein each endpoint port manages the data link layer and the physical layer of the layered protocol for serial communication with the endpoint device connected to the endpoint port.
-
Specification