The present invention relates generally to a short distance coupling environment, and more particularly to latency reduction in a short distance coupling environment.
For short distance coupling, like many other I/O protocols, it needs to be ensured, from a high level perspective, that a transaction is only signaled to be completed after all payloads have arrived. To accomplish this, ordering mechanisms are applied by the memory subsystem and the coupling message hardware side. For a coupling device (for example, an integrated cluster bus (ICB)), a short distance coupling protocol, two implementations for accomplishing this goal in current designs are as follows. First, the coupling device sends in all packets, including payload packets and signaling packets, into a memory subsystem and requests all the packets to be ordered. As a result, an ordering controller (for example, a PCI bus controller (PBC)) will ensure that each individual packet (including each of the payload packets) will be ordered. The first implementation results in unnecessary ordering and a significant throughput bottleneck. Second, the coupling device sends in all payload packets which are unordered and waits until all of the payload packets are complete; then, the coupling device sends in signaling packets. The second implementation has better throughput than the first implementation. The second implementation is a chosen protocol for IBM z13®.
A computer system with a configurable ordering controller for coupling transactions is provided. The computer system comprises a coupling device configured to send first data packets with an unordered attribute being set to an ordering controller. The computer system further comprises the coupling device configured to send second data packets with requested ordering to the ordering controller, back-to-back after the first data packets, without waiting until all of the first data packets are completed. The computer system further comprises the ordering controller configured to send the first data packets to a memory subsystem in a relaxed ordering mode, wherein the ordering controller sends the first data packets to the memory subsystem in an arbitrary order, and wherein the ordering controller sends the second data packets to the memory subsystem after sending all of the first data packets to the memory subsystem.
A method for coupling transactions with a configurable ordering controller in a computer system is provided. The method includes sending, by a coupling device, first data packets with an unordered attribute being set to an ordering controller. The method further includes sending, by the coupling device, second data packets with requested ordering to the ordering controller, back-to-back after the first data packets, without waiting until all of the first data packets are completed. The method further includes sending, by the ordering controller, the first data packets to a memory subsystem in a relaxed ordering mode, wherein the ordering controller sends the first data packets to the memory subsystem in an arbitrary order, and wherein the ordering controller sends the second data packets to the memory subsystem after sending all of the first data packets to the memory subsystem.
The present invention discloses an implementation in the nest ordering logic to optimize the performance of coupling messages while still guaranteeing the required ordering. An embodiment of the present invention introduces a relaxed ordering matrix mode for the first data packets (for example, the payload packets). In the treatment of unordered as relaxed ordering in ordering controller 102, the ordering is implemented as a matrix of dependencies in ordering controller 102; direct memory accesses (DMAs) with the relaxed ordering do not honor or have any ordering dependencies; direct memory accesses (DMAs) with the relaxed ordering set ordering dependencies for other (i.e., succeeding) commands; regularly ordered commands (for which no unordered and no relaxed ordered indications are set) are ordered behind relaxed commands (which have relaxed ordered bits set in the relaxed ordering matrix). Therefore, even though the first data packets (for example, the payload packets) and the second data packets (for example, the signaling packets) are sent back-to-back, ordering between the first data packets (for example, the payload packets) and the second data packets (for example, the signaling packets) is guaranteed.
Ordering controller 102 has a set of Finite State Machines (FSMs) to handle the processing of incoming commands. Each FSM handles a single command at a time. Each incoming command is assigned to one of the FSMs.
One benefit of the present invention is latency reduction in a short distance coupling environment. The reason of the latency reduction is that coupling device 101 does not wait for completions of the first data packets (for example, the payload packets) and sends the second data packets (for example, the signaling packets) back-to-back. Another benefit of the present invention is that the implementation of the present invention requires no design change for coupling device 101.
Before detailed description of the embodiment of the present invention is given, two current implementations for coupling transactions are described with reference to
Current implementation 200 shown in
In current designs, the ordering controller maintains an ordering matrix (such as ordering matrix 300) has a size of N×N, where N is the number of packets that are active in the ordering controller at a given moment. A bit being set in the row M of the column N means that the FSM (finite state machine) N has an ordering dependency towards the FSM M (meaning that N has to be ordered behind M). In addition, the ordering controller maintains a table with a depth of N, where each bit indicates whether the FSM N is busy with an active ordered command. In the current implementation, when a command is received and an unordered bit is set, neither the ordering matrix nor the active ordered command table are updated. In the current implementation, when a command is received for the FSM N and the unordered bit is not set, the active ordered command table is copied into column N of the ordering matrix and the bit N in the active ordered command matrix is set. When a command M completes, the row M in the ordering matrix is reset, as well as the bit M in the active ordered command table.
Now, detailed description of the embodiment of the present invention is provided as follows, with reference to
In response to receiving payload packets P1, P2, P3, . . . , and Pn (denoted by numerals 501′, 502′, 503′, and 504′), the ordering controller sends payload packets P1, P2, P3, . . . , and Pn to the memory subsystem. The ordering controller sends payload packets in an arbitrary order. The ordering controller also receives signaling packet S (denoted by numeral 505′); however, the ordering controller does not send signaling packet S (denoted by numeral 505′) to the memory subsystem until responses for all of payload packets P1, P2, P3, . . . , and Pn are received.
In response to receiving payload packets P1, P2, P3, . . . , and Pn (denoted by numerals 501′, 502′, 503′, and 504′), the memory subsystem sends response R2 (denoted by numeral 506) corresponding to payload packet P2 (denoted by numeral 502), response R1 (denoted by numeral 507) corresponding to payload packet P1 (denoted by numeral 501), response Rn (denoted by numeral 508) corresponding to payload packet Pn (denoted by numeral 504), and response R3 (denoted by numeral 509) corresponding to payload packet P3 (denoted by numeral 503).
In response to that all the responses (denoted by numerals 506′, 507′, 508′, and 509′) are received, the ordering controller sends signaling packet S (denoted by numeral 505′) to the memory subsystem. Thus, the memory subsystem receives signaling packet S (denoted by numeral 505″) after all payload packets R1, R2, R3, . . . , and Rn are received. As shown in
In the implementation in accordance with the present invention, a coupling device (for example, an integrated cluster bus (ICB)) continues to send in the first data packets (for example, the payload packets) with the unordered attribute being set back-to-back; the coupling device also sends in the second data packets (for example, the signaling packets) back-to-back with ordering requested, instead of delaying the second data packets (for example, the signaling packets) and waiting until all the responses are received for all the first data packets (for example, the payload packets). An ordering controller (for example, a PCI bus controller (PBC)) introduces a new mode for handling the unordered indication, i.e., changing its semantics to a relaxed ordering indication. While unordered commands (for example, the payload operations) continue to not have an ordering relation towards each other, ordered commands (for example, the signaling operations) wait until all preceding commands (for example, payload operation) have completed, even if these preceding commands have the unordered flag set. Therefore, the ordering is guaranteed on a high level but the latency penalty in current implementations is removed. The latency penalty in the current implementations is caused by waiting for all payload packets to be fully completed and their completions to be signaled to the coupling device.
The present invention introduces an additional mode that can be enabled in a register in the ordering controller (for example, the PCI bus controller (PBC)). The mode leads to unordered operations being ordered in a relaxed ordering mode instead of no order at all. In terms of the existing ordering infrastructure, no change applies to a command being received with an unordered bit not set; this means that, with respect to setting the unordered bit, the coupling device (for example, the integrated cluster bus (ICB)) behaves exactly the same way as in current implementation 400 shown in
Based on the foregoing, a computer system with a configurable ordering controller for coupling transactions has been disclosed. However, numerous modifications and substitutions can be made without deviating from the sprit and scope of the present invention. Therefore, the present invention has been disclosed by way of examples and not limitation.
Number | Name | Date | Kind |
---|---|---|---|
6266731 | Riley | Jul 2001 | B1 |
6557068 | Riley | Apr 2003 | B2 |
6615295 | Shah | Sep 2003 | B2 |
6745308 | Frank | Jun 2004 | B2 |
6816934 | Riley | Nov 2004 | B2 |
7047372 | Zeitler | May 2006 | B2 |
7099986 | Pettey | Aug 2006 | B2 |
7124231 | Garner | Oct 2006 | B1 |
7464207 | Riley | Dec 2008 | B2 |
7587542 | Riley | Sep 2009 | B2 |
7721023 | Irish | May 2010 | B2 |
7987306 | Muller | Jul 2011 | B2 |
8108584 | Harriman | Jan 2012 | B2 |
8199759 | Singhal | Jun 2012 | B2 |
9032103 | Ajanovic | May 2015 | B2 |
9158691 | Saund | Oct 2015 | B2 |
9229896 | Balkan et al. | Jan 2016 | B2 |
9489304 | Swarbrick | Nov 2016 | B1 |
9537799 | Lih et al. | Jan 2017 | B2 |
9641448 | Telfer | May 2017 | B1 |
9858221 | Osborn | Jan 2018 | B2 |
20020073258 | Riley | Jun 2002 | A1 |
20020083247 | Shah | Jun 2002 | A1 |
20030145136 | Tierney | Jul 2003 | A1 |
20030159013 | Frank | Aug 2003 | A1 |
20030225956 | Riley | Dec 2003 | A1 |
20040199700 | Clayton | Oct 2004 | A1 |
20050033893 | Pettey | Feb 2005 | A1 |
20050138260 | Love | Jun 2005 | A1 |
20050262419 | Becker | Nov 2005 | A1 |
20050273534 | Riley | Dec 2005 | A1 |
20060031621 | Riley | Feb 2006 | A1 |
20060075119 | Hussain | Apr 2006 | A1 |
20080059672 | Irish | Mar 2008 | A1 |
20080082685 | Dabagh | Apr 2008 | A1 |
20090113082 | Adar | Apr 2009 | A1 |
20100332756 | Yarch | Dec 2010 | A1 |
20120260032 | Chiu | Oct 2012 | A1 |
20130054867 | Nishita | Feb 2013 | A1 |
20130111084 | Wang | May 2013 | A1 |
20140173218 | Saund | Jun 2014 | A1 |
20150281126 | Regula | Oct 2015 | A1 |
20170160929 | Ayandeh | Jun 2017 | A1 |
20180365180 | Craddock | Dec 2018 | A1 |
Entry |
---|
Appendix P List of IBM Patents or Applications Treated as Related. Two Pages. Dated Nov. 8, 2017. |
Hagspiel et al. Original U.S. Appl. No. 15/806,407, filed Nov. 8, 2017. |
“PCI Express Base Specification Revision 1.0” Apr. 29, 2002. Copyright PCI-SIG. (Year: 2002). Examiner cited for DE820160181US02 on Dec. 19, 2018. Three hundred seventy five pages. |
“PCI Express Base Specification Revision 1.0a”. Apr. 15, 2003. Copyright PCI-SIG. (Year: 2003). Examiner cited for DE820160181US02 on 1211912018. Four hundred twenty six pages. |
“PCI Express Base Specification Revision 3.0”. Nov. 10, 2010. Copyright PCI-SIG. (Year: 2010). Examiner cited or DE820160181US02 on Dec. 19, 2018. Twenty five pages. |
Lawley, J. “Understanding Performance of PCI Express Systems”. White Paper: UltraScale and Virtex-7 FPGAs. XILINX WP350 (v1.2) Oct. 28, 2014. Examiner cited for DE820160181US02 on Dec. 19, 2018. Sixteen pages. |
Number | Date | Country | |
---|---|---|---|
20190018803 A1 | Jan 2019 | US |