The invention relates generally to interconnect buses for providing peripheral component connectivity.
Peripheral component interconnect Express™ (PCI Express or PCIe) is a high performance, generic and scalable system interconnect for a wide variety of applications ranging from personal computers to embedded applications. PCIe implements a serial, full duplex, multi-lane, point-to-point interconnect, packet-based, and switch based technology. Current versions of PCIe buses allow for a transfer rate of 2.5 Giga bit per second (Gbps) or 5 Gbps, per lane, with up to 32 lanes. The PCIe bus is fully described in the PCI Express™ base Specification reversion 1.0a published on Apr. 15, 2003, by the PCI-SIG, incorporated herein by reference in its entirety merely for the useful understanding of the background of the invention.
The roundtrip time of a PCIe bus is a major factor in degrading the performance of the bus. With reference to
The roundtrip time of the PCIe bus 100 depends on the delay of a link 130 between the PCIe root 110 and the PCIe endpoint 120. Typically, this delay is due to an acknowledged (ACK) and flow control update latencies caused by the layers of a PCIe bus. Abstractly, the PCIe is a layered protocol bus, consisting of a transaction layer, a data link layer, and a physical layer. The data link layer waits to receive an ACK signal for transaction layer packets during a predefined time window. If an ACK signal is not received during this time window, the transmitter (either at the PCIe root 110 or endpoint 120) resends the unacknowledged packets. This result in inefficient bandwidth utilization of the bus as it requires retransmission of packets with no data integrity problem. That is, high latency on the link 130 causes poor bandwidth utilization.
In addition, a typical PCIe bus includes a credit mechanism in order to avoid receiver buffer overflow. As the latency of a PCIe bus is typically low, the root 110 and endpoint 120 often implement small receiver buffers with a small number of credits. The fast PCIe link enables fast flow controls (credits) update and full bus performance. However, when the bus latency increases the small number of flow control credits is a major limitation. Even if the receiver buffer is available, the flow control packet delay causes the transmitter (either at the PCIe root 110 or endpoint 120) to be idle for a long period prior to sending data. The result is an idle PCIe bus with low bandwidth utilization.
In a typical PCIe bus architecture the PCIe root 110 is directly coupled to the PCIe endpoint 120. In fact, the root 110 and the endpoint 120 are typically connected on the same electric board. Therefore, the roundtrip time is usually very short and the PCIe is not designed to properly operate in high latency. In order to provide applications and devices in which the PCIe root and endpoints are distributed and remotely located from each other, there is a need to de-couple the link between the PCIe's bus components. For example, it would be desirable to allow PCIe connectivity over a wireless medium or over a network. However, extending the distance of the link between a PCIe root and endpoint component would significantly increase the latency of the link, and therefore degrade the performance of the bus.
Thus, it would be advantageous to provide a high performance interconnect bus that would allow distributed connectivity.
An embodiment of the invention provides a distributed interconnect bus apparatus enabling the connection of peripheral devices. The apparatus includes a first bridge coupled to a root component of an interconnect bus; and a second bridge coupled to an endpoint component of an interconnect bus. The apparatus may further include an acknowledgment (ACK) termination for generating at least an ACK signal; and a flow control mechanism including at least one receiver buffer for temporarily saving data packets of multiple different transactions.
FIG. 1—is a block diagram showing a PCIe bus architecture;
FIG. 2—is a block diagram of a distributed interconnect bus apparatus implemented in accordance with an embodiment of the invention;
FIG. 3—is a diagram describing the operation of the distributed interconnect bus apparatus according to principles of the invention;
FIG. 4—is a block diagram of a distributed interconnect bus apparatus utilized to connect peripheral devices over a wireless medium;
FIG. 5—is a block diagram of a distributed interconnect bus apparatus utilized to connect peripheral devices over a network.
In view of the shortcomings of the conventional interconnect buses, such as a PCI or a PCIe, the invention provides a distributed interconnect bus apparatus that can be installed between a root and endpoint components. The apparatus can be utilized to wirelessly connect peripheral devices or to allow the connectivity of such devices over a network. The distributed interconnect bus apparatus provides advantageous mechanisms for reducing acknowledgment (ACK) timeout and flow control update latencies and advantageously utilizes interconnect bus bandwidth.
Each bridge of the apparatus 200 includes an acknowledgment (ACK) termination 250 and a flow control mechanism 260. The ACK termination 250 is installed prior to a link 270 and acknowledges the reception of packets. That is, the ACK terminations 250-1 and 250-2 acknowledge data packets respectively sent from the root component 220 and the endpoint component 240 preferably by generating ACK signals. Therefore, the ACK terminations 250 eliminate an ACK timeout expiration (e.g., the expiration of a time window defined in the PCIe specification) that may result from the delay on a link 270, which would unnecessarily cause retransmission of packets (e.g., transaction layer packets). In an exemplary embodiment of the invention, the ACK terminations 250 can be implemented as a PCIe data link layer or to perform only data integrity functions of the link layer.
The flow control mechanisms 260 eliminate the flow control roundtrip delays and its ripple effect on bus transactions. Each flow control mechanism 260 includes at least one receiver buffer (not shown) that is designed to compensate for the delay of the link 270. In an exemplary embodiment of the invention each flow control mechanism 260 can be implemented using a full PCIe bridge, a switch port, or to perform only flow control functions of the bridge.
In accordance with an exemplary embodiment of the invention, the distributed interconnect bus apparatus 200 is fully compatible with the PCIe specification. In particular, in this embodiment the root component 220 may be either a PCIe root or a PCIe switch, the endpoint component 240 is a PCIe endpoint, and the bridges 210 and 230 are PCIe bridges that includes the implementation of the ACK terminations 250 and flow control mechanisms 260.
At S310, the root component 220 transmits transaction layer packets addressed to the endpoint component 240. The bridge 210 captures the packets and temporarily saves the packets in a receiver buffer in its control flow mechanism 260-1. In addition, the bridge 210 by its ACK termination 250-1 generates an ACK signal, which is sent at S320 to the root component 220. The root component 220 upon reception of the ACK message may send new transaction layer packets.
At S330, the bridge 210 forwards the transaction layer packets to the bridge 230 over the link 270 and waits for an ACK signal. During the waiting time, the bridge 210 may receive additional packets from the root component 220 which are also saved in the buffer in the control flow mechanism 260-1. With this aim, this size of the buffer (i.e., the number of credits) of bridge 210 is big enough to maintain packets of multiple different transactions.
The bridge 230 receives the packets and temporarily saves them in a receiver buffer in its control flow mechanism 260-2. In addition, the bridge 230 by its ACK termination 250-2 generates an ACK signal, which is sent at S340 to the bridge 210. The bridge 210 upon reception of the ACK signal deletes the packets that belong to the acknowledged transaction from its buffer.
At S350, the bridge 230 sends the transaction layer packets to the endpoint component 240 and waits for an ACK signal. During this time, the bridge 230 may receive additional packets from the bridge 210. Such packets are also saved in the buffer in the control flow mechanism 260-2. With this aim, this size of the buffer (i.e., the number of credits) of bridge 230 is big enough to maintain packets of multiple different transactions. At 360, upon reception of the ACK signal from the endpoint component 240, the bridge 230 deletes the packets that belong to the acknowledged transaction from its buffer. It should be noted that the distributed interconnect bus apparatus handles transaction layer packets from the endpoint component 240 in the same manner described in detail above.
The wireless transceivers 410 and 420 implement a wireless modem, such as an orthogonal frequency division multiplexing (OFDM) modem, a single-carrier modem, a multi-carrier modem, and the likes. Furthermore, the wireless transceivers 410 and 420 can implement sophisticated communication techniques, such as multiple-input-multiple-output (MIMO), beam forming, advanced coding, space time block codes, and so on. Each of the wireless transceivers 410 and 420 includes a physical (PHY) layer 450 and a medium access (MAC) layer 460 operating according to the transport protocol, e.g., IEEE 802.x that carries traffic over the wireless link 480. In one embodiment to provide reliable and in-order delivery of data packets between the transceivers 410 and 420, each MAC layer 460 performs error detection and correction to reduce the error rate in the transmitted data. This can be achieved using, for example, a cyclic redundancy check (CRC) or other error correction techniques. Packets with data integrity problems are retransmitted by the sender transceiver. Each bridge is coupled to a PCIe component including at least one of a root, an endpoint, or a switch. That is, the connection may be formed between at least one of the following PCIe components: root-endpoint, root-switch, switch-endpoint, and switch-switch.
It would be apparent to those of ordinary skill in the art that the distributed interconnect bus can be adapted for the use with peripheral devices utilizing connection formats, such as USB3, PCIe second generation, PCIe third generation Hypertransport, Infiniband, serial and fast point-to-point interconnects, and the likes.
The principles of the invention may be implemented in hardware, software, firmware or any combinations thereof. The software may be implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture, for example a computer platform having hardware such as one or more central processing units (“CPU”), a random access memory (“RAM”), and input/output (“I/O”) interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown.
It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present invention. All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventors to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.
All statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. It is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
This application claims the benefit of U.S. Provisional Application No. 60/950,691 filed on Jul. 19, 2007, the contents of which are herein incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4862454 | Dias et al. | Aug 1989 | A |
5825617 | Kochis et al. | Oct 1998 | A |
5923757 | Hocker et al. | Jul 1999 | A |
5926629 | Gulick | Jul 1999 | A |
5930368 | Hocker et al. | Jul 1999 | A |
6170026 | Kimura et al. | Jan 2001 | B1 |
6226700 | Wandler et al. | May 2001 | B1 |
6396809 | Holden et al. | May 2002 | B1 |
6499079 | Gulick | Dec 2002 | B1 |
6798775 | Bordonaro et al. | Sep 2004 | B1 |
6898766 | Mowery et al. | May 2005 | B2 |
6937468 | Lin et al. | Aug 2005 | B2 |
7058738 | Stufflebeam, Jr. | Jun 2006 | B2 |
7079544 | Wakayama et al. | Jul 2006 | B2 |
7096310 | Norden | Aug 2006 | B2 |
7293129 | Johnsen et al. | Nov 2007 | B2 |
7320080 | Solomon et al. | Jan 2008 | B2 |
7340555 | Ashmore et al. | Mar 2008 | B2 |
7356635 | Woodings et al. | Apr 2008 | B2 |
7363404 | Boyd et al. | Apr 2008 | B2 |
7467313 | Han et al. | Dec 2008 | B2 |
7469366 | Reed | Dec 2008 | B1 |
7519761 | Gregg | Apr 2009 | B2 |
7525986 | Lee et al. | Apr 2009 | B2 |
7543096 | Davies | Jun 2009 | B2 |
7596646 | Kim et al. | Sep 2009 | B2 |
7916750 | Das Sharma et al. | Mar 2011 | B2 |
8006014 | Lai et al. | Aug 2011 | B2 |
8050290 | Tamir et al. | Nov 2011 | B2 |
8374157 | Tamir et al. | Feb 2013 | B2 |
8472436 | Meiri et al. | Jun 2013 | B2 |
20020080756 | Coppola et al. | Jun 2002 | A1 |
20030198015 | Vogt | Oct 2003 | A1 |
20040122771 | Celi et al. | Jun 2004 | A1 |
20040208130 | Mizutani et al. | Oct 2004 | A1 |
20040220803 | Chiu et al. | Nov 2004 | A1 |
20050047079 | Gasbarro et al. | Mar 2005 | A1 |
20050075080 | Zhang | Apr 2005 | A1 |
20050220173 | Zyren et al. | Oct 2005 | A1 |
20050246470 | Brenner | Nov 2005 | A1 |
20050248502 | Okuley et al. | Nov 2005 | A1 |
20050262269 | Pike | Nov 2005 | A1 |
20050278756 | Brown | Dec 2005 | A1 |
20060050707 | Sterin | Mar 2006 | A1 |
20060061963 | Schrum | Mar 2006 | A1 |
20060080722 | Santhoff | Apr 2006 | A1 |
20060126612 | Sandy et al. | Jun 2006 | A1 |
20060129709 | Bandholz et al. | Jun 2006 | A1 |
20060143338 | Hunsaker et al. | Jun 2006 | A1 |
20060206655 | Chappell et al. | Sep 2006 | A1 |
20060222125 | Edwards et al. | Oct 2006 | A1 |
20060233191 | Pirzada et al. | Oct 2006 | A1 |
20060251096 | Metsker | Nov 2006 | A1 |
20070067551 | Ikeda et al. | Mar 2007 | A1 |
20070173202 | Binder et al. | Jul 2007 | A1 |
20070189270 | Borislow et al. | Aug 2007 | A1 |
20070198763 | Suzuki et al. | Aug 2007 | A1 |
20070283181 | Shelton et al. | Dec 2007 | A1 |
20070291636 | Rajagopal et al. | Dec 2007 | A1 |
20080018491 | Berkman et al. | Jan 2008 | A1 |
20080071961 | Higuchi et al. | Mar 2008 | A1 |
20080147904 | Freimuth et al. | Jun 2008 | A1 |
20080219376 | Qi et al. | Sep 2008 | A1 |
20080288705 | Tamir et al. | Nov 2008 | A1 |
20120017015 | Tamir et al. | Jan 2012 | A1 |
20130124762 | Tamir et al. | May 2013 | A1 |
Number | Date | Country |
---|---|---|
200709616 | Mar 2007 | TW |
0111476 | Feb 2001 | WO |
Entry |
---|
PCI Express Base Specification Revision 1.0 Jul. 22, 2002. |
PCI Express Ethernet Networking, Sep. 2005 Intel White Paper. |
International Search Report and the Written Opinion of the International Searching Authority for the corresponding International Application No. PCT/US2008/070405, dated Jan. 28, 2009. |
John Chiang, “Advanced Switching Versus PCI-Express for Peer-to-Peer Communications,” May, 2004, ASI-SIG, Vitesse Semiconductor Corp., Camarillo, CA. Retrieved Mar. 12, 2009. |
Taiwan IPO, “Office Action in Primary Examination including Search Report”; issued Nov. 15, 2013 for corresponding Taiwan Patent Application No. 097127326; English translation attached (pp. 15-29). |
Digital-Logic AG: “Solution Guide Embedded Computer 2008, vol. II” (Fall issue), Sep. 5, 2008,Digital-Logic AG, Switzerland, Retrieved date Oct. 8, 2009. |
PC/104 Embedded Consortium: “What is PCI/104-Express (TM)?”, Rev. A, published Apr. 3, 2008. |
Number | Date | Country | |
---|---|---|---|
20090024782 A1 | Jan 2009 | US |
Number | Date | Country | |
---|---|---|---|
60950691 | Jul 2007 | US |