Many network fabrics include various switches, routers, etc. to receive and forward packets to thereby permit originating endpoint nodes to send packets to destination endpoint nodes. A link is a communication pipeline between adjacent nodes in the fabric. The nodes on either end of a link may include endpoint nodes which produce and consume traffic, and intermediate nodes which propagate traffic from one node to another node. Endpoint nodes may comprise, for example, central processing units (CPUs), memory devices, storage devices, peripherals, accelerators, renderers, graphical display devices, etc. Intermediate nodes may comprise, for example, switches, routers, proxies, translators, repeaters, protocol converters, etc. A packet may be transmitted from a transmitting node to a receiving node over a dedicated link between such nodes.
Some networks employ end-to-end (E2E) retry, link level retry (LLR), or both, to ensure that a packet arrives at its intended destination without error. LLR addresses transient CRC-detectable packet corruption due to electrical interference for packets crossing an individual link. The LLR mechanism is implemented across each link independently of the other links. LLR assigns unique sequence numbers to individual packets transmitted across a given link so that if an individual packet experiences an error during transmission over a given link, the receiving node can inform the transmitting node for that link can be made aware of that fact (via a link level negative acknowledgment (NAK) message from the receiving node) and can retry (i.e., resend) the packet again across the link. Each transmitting node stores copies of its outgoing packets in they need to be re-sent. If a receiving node detects an error with a packet received from a transmitting node, the receiving node sends the link level NAK message back across the link to the transmitting node. The link level NAK message includes the sequence number of the packet that had the error. The transmitting node responds to the link level NAK message by resending the identified packet.
E2E retry may be used in combination with LLR, or alone. E2E retry permits an originating endpoint node to resend a packet if an acknowledgment of that packet is not timely received from the destination endpoint node. E2E can protect against component or link failures along a route; by migrating the retry to an alternate route.
For a detailed description of various examples; reference will now be made to the accompanying drawings in which:
For LLR to work, each transmitting node maintains local storage for its outgoing packets in case a receiving node detects an error and requests the transmitting node to retry a particular packet. The amount of local storage can be large and generally scales with the link speed (packet sending rate) and the round-trip latency across the link being driven (i.e., the total time taken for a packet to cross the link, and for a corresponding acknowledgement to cross back in the other direction).
The disclosed implementations avoid the need for as much local storage. In at least some implementations, sufficient local storage in a node is provided for storage of identification information of the originating node for a given packet and the identity of the packet. Local storage in the node for the packet itself is not needed or provided. If a transmitting node receives a link-level NAK for a particular packet, rather than resending the requested packet, the transmitting node sends an end-to-end negative acknowledgment (E2E NAK) packet back to the endpoint node that originated the packet in the first place (referred to herein as the “originating node”). The E2E NAK packet may be routed back to the originating node along the same path (but in the reverse direction) that the original packet took from the originating endpoint node to the transmitting node. At that point, the E2E retry mechanism of the network will cause the originating node to resend the packet through the fabric. In other words, the nodes of the network rely on the E2E retry mechanism to thereby avoid having to store copies of packets pending a potential link level NAK of any given packet.
In the example of
The control logic 120 may be implemented as a programmable hardware processor that executes machine instructions, a discrete circuit or any other type of logic that implements the functionality described herein. For example, the control logic 120 may control the operation of the transceiver 110 to send packets, received from originating node 10, across link 25 to the receiving node 20. The control logic 120 may assign a unique sequence identifier to each packet to be transmitted across link 25 to receiving node 20.
In some implementations, the sequence identifiers of packets traversing a particular link are specific only to that particular link. For example, if a packet has “5” for its sequence identifier as the packet is transmitted across link 25, the sequence identifier 5 does not follow that packet as it is forwarded on by the receiving node 20 across other links. A packet that has the same sequence identifier on two different links is coincidental.
The control logic 120 may transmit packets (e.g., packets including sequence identifiers) to be transmitted across link 25 to the receiving node 20, which may also include a transceiver that functions similar to the transceiver 110. Any given packet transmitted by transceiver 110 to receiving node 20 may be received by the receiving node with an error detected by the receiving node (e.g., by the transceiver in the receiving node). If the receiving node 20 detects an error with a packet received from the processing device 100, the receiving node 20 may send a link level NAK message (LL NAK MSG) 116 to the processing device. For example, if packet 112 with its unique sequence identifier 114 is received by the receiving node 20 and detected to have an error, the receiving node may send back a link level NAK message 116 containing the sequence identifier 114 of packet 112. If a packet is not determined to have an error, the receiving node 20 may send a link level acknowledgment (ACK) to transceiver 110.
While some processing devices 100 might resend the packet associated with the sequence identifier contained in the retry message, in accordance with the disclosed examples, transceiver 110 may not include sufficient storage to store a copy of packet 112 in, for example, a retry buffer and thus may not resend the designated packet. Instead, based on the link level NAK message, the control logic 120 of the processing device 100 may generate and transmit an E2E NAK packet 17 back to the originating node 10 (i.e., the node that originated the packet 112) detected to have an error. The E2E NAK packet 17 contains information that can be used to uniquely identify a particular packet (e.g., the packet 112 detected to have an error by the receiving node 20 in this example). The E2E NAK packet 17 indicates to the originating node that the packet associated with the E2E NAK packet was not correctly received at its intended destination endpoint node, which may have been receiving node 20 or a node further downstream from node 20. The E2E NAK packet 17 may not indicate where along the path from the originating node 10 to the destination node that an error with the packet was detected. The originating node 10 may respond to the E2E NAK packet 17 by causing the packet to be resent through network which may include processing device 100 or other processing devices. That is, the originating node 10 may cause the packet to be resent along the same path or a different path.
LLR includes a receiving node detecting an error with a packet and sending a link level NAK message to the transmitting node so that the transmitting node will resend the packet on the link. In accordance with the disclosed examples, however, the link level NAK message is implemented but the transmitting node does not respond to the retry message by resending the requested packet. Instead, the transmitting node sends an E2E NAK packet back to the originating node to cause the network's E2E retry process to re-send the packet back into the network fabric.
As noted above, receiving node 20 may also include a transceiver which functions similar to receiver 110. Thus, the transceiver in node 20 may send packets to processing device 100, receive link level ACKs and link level NAKs from the processing device, and respond in much the same way as explained above regarding the transceiver 110 of processing device 100.
The example of
The processing device 150 may have some storage such as storage 154 to store sequence identifiers for the packets transmitted across the link 25. Thus, the transceiver 152 can store the sequence numbers of packets it transmits in case the processing device receives a link level NAK message 116 associated with any of those packets.
The processing resource 172 may include an application specific integrated circuit (ASIC), a field-programmable gate array (FPA), discrete logic, a single hardware processor, multiple hardware processors, a single computer, or a network of computers. The machine instructions include various software modules 176, 178, 180, and 182 that, when executed by the processing resource 172, cause the processing resource to perform various operations as described below. The software modules 176-182 may be implemented as separate modules or various groups of all of the software modules may be implemented as a single software module.
The sequence identifier assignment module 176 causes the processing resource 172 to assign a unique sequence identifier to each packet to be transmitted across a link to a receiving node (e.g., across link 25 to receiving node 20). The sequence identifiers may be numbers and the processing resource 172 may assign each new packet a sequence identifier by incrementing a sequence identifier used for a preceding packet.
If and when the receiving node 20 detects an error with a packet transmitted by the processing device 100, 150, the receiving node sends a link level NAK message 116 including the sequence identifier of the packet detected to have an error. The message reception module 280 causes the processing resource 172 to receive the link level NAK message 116 from the receiving node 20 over link 25. Based on the received link level NAK message, the originating node identification module 182 causes the processing resource 172 to determine the identity of the node that originated the packet identified by the link level NAK message. The packet transmission module 178 then causes the processing resource to cause the transceiver 110, 152 to transmit an E2E NAK packet to the originating node, and not to retry the packet on the link 25. In some implementations, the originating node identification module 182 causes the processing resource 172 to determine the identity of the originating node by examining the storage 154. For example and with reference to
The packet transmission module 178 also may cause the processing resource 172 to cause the transceiver 110, 152 to transmit packets across link 25 to the receiving node 20—packets that may subsequently be determined by the receiving node to have errors as explained above.
Some networks may implement virtual channels over their physical links. Virtual channels allow a multiplicity of independent channels of communication (i.e., independent streams of packets) to share a single physical link, and by extension, to share an end-to-end route. Virtual channels are independent of each other in terms of storage allocation in queues, independent in flow control, and independent in competing for access to the physical links that they share. Thus, packets on one virtual channel do not head-of-line block packets on another virtual channel. At the link level, multiple virtual channels may be implemented by time multiplexing of the physical link between the virtual channels, and by communicating independent flow-control information for each virtual channel across each link. Endpoint protocols obey conventions with regard to which virtual channels are used to carry which packet types—for example to avoid potential deadlocks. Since E2E NAK packets are routable packets in their own right, and potentially victims of head-of-line blocking, E2E NAK packets should obey virtual channel conventions consistent with that used when endpoint nodes generate new packets. For example, E2E NAK packets may travel on the same virtual channel that is used by the endpoint nodes to send end-to-end packet delivery acknowledgement packets. This would be a virtual channel that has no protocol layer dependencies upon the channel carrying the packets being protected.
Packet tracker storage 213 provides storage, as explained above, for information from which the transceiver is able to determine the originating node for a given packet. If the transceiver receives a link level ACK message via RX 208 from another node indicating one or more packets were received without an error, the RX 208 causes the corresponding entries for those packets in the packet tracker storage 213 to be removed.
If, however, a packet is determined to have an error by a node to which the TX 209 sent the packet, the RX 208 will receive a link level NAK message indicating the existence of the error. The RX may respond to the link level NAK message by causing the E2E NAK generator 214 to generate an E2E NAK packet. The E2E NAK generator 214 may access the packet tracker storage 213 to determine the identity of the source of the packet experiencing the error in order to generate the E2E NAK packet. The E2E NAK generator 214 provides the E2E NAK packet to the processing device core 205. The processing device core 215 then causes the E2E NAK packet to be transmitted by another transceiver back towards the target originating node so that the originating node can cause the packet to be re-sent through the fabric.
The send to processing device core block 215 provides packets received via RX 208 to the processing device core 205 for a determination, for example, as to how to forward on the packets. Packets that the processing device core 205 determines should be transmitted out by the transceiver are provided by the core to the receive from processing device core block 211. A sequence identifier is determined for, and appended to, the outgoing packet by the sequence identifier append unit 212 and the resulting packet with sequence identifier is provided the TX 209 for transmission.
Packet tracker storage 213 provides storage, as explained above, for information from which the transceiver is able to determine the originating node for a given packet. If the transceiver receives a link level ACK message via RX 208 from another node indicating one or more packets were received without an error, the RX 208 causes the corresponding entries for those packets in the packet tracker storage 213 to be removed.
If, however, a packet is determined to have an error by a node to which the TX 209 sent the packet, the RX 208 will receive a link level NAK message indicating the existence of the error. The RX may respond to the link level NAK message by causing the E2E NAK generator 214 to generate an E2E NAK packet. The E2E NAK generator 214 may access the packet tracker storage 213 to determine the identity of the source of the packet experiencing the error in order to generate the E2E NAK packet. The E2E NAK generator 214 provides the E2E NAK packet to the processing device core 205 via the send to processing device core block 215. The processing device core 215 then causes the E2E NAK packet to be transmitted by another transceiver back towards the target originating node so that the originating node can cause the packet to be re-sent through the fabric.
The endpoint logic 201 includes a protocol decoder 216 which decodes packets received by the transceiver 203. Healthy received packets are provided to the endpoint protocol agent 217 for consumption and to an E2E ACK generator 218 for generation of an E2E ACK to be transmitted back to the originator of the packet. The endpoint protocol agent 217 may generate new packets which may be provided to the E2E retry buffer 219, where a copy is stored against the possibility that future resends may be needed.
If the transceiver 203 receives an E2E NAK packet (which indicates that a packet originated by the endpoint node 199 was determined to have an error by the fabric), the protocol decoder 216 sends a signal to the E2E resend unit 220 to resend that packet indicated by the E2E NAK packet.
The E2E resend unit 220 may include timers that determine when a threshold amount of time has elapsed after the endpoint node 199 has transmitted a particular packet with neither an E2E NAK packet nor an E2E ACK packet indicating successful receipt of the original packet. If the original packet was determined by an intermediate node to have an error, as described above, the originating endpoint node will receive an E2E NAK packet indicating an error with that particular packet. If, however, the E2E NAK packet is unable to be transmitted all of the way back to the endpoint node (e.g., due to transmission problems with the fabric, interference, etc.), then the timer functionality present in the E2E resend unit 220 will cause the cause the packet to be resent anyway.
At 230, the method includes assigning a sequence identifier to a packet that originated from an originating node. This operation may be performed the processing resource 172 executing the sequence identifier assignment module 176 as explained previously.
At 232, the method includes transmitting the packet across a link from a transmitting node to a receiving node. For example, a packet 112 may be transmitted from processing device 100, 150 to receiving node 20.
At 234, the method includes detecting an error in the packet at the receiving node. This operation may be performed by computing a cyclic redundant check (CRC) value based on the received message and comparing the computed CRC value against a CRC value contained in the packet itself. A mismatch of CRC values indicates the presence of an error.
At 236, the method includes receiving a message (e.g., a link level NAK message 116) from the receiving node 20 indicating an error having occurred with the packet and the sequence identifier of the packet experiencing the error. At 238, the method includes transmitting, by the transmitting node (e.g., processing device 100, 150), an E2E NAK packet to the originating node to cause the originating node to retransmit the packet through the network.
At 240, the method includes, based on receiving the message from the receiving node, retrieving an identifier of the originating node from storage in the transmitting node (e.g., storage 154). At 242, the method includes determining which virtual channel to use for the E2E NAK packet out of a plurality of virtual channels used in the network.
At 244, the method includes, rather than retrying the packet across the same link again, transmitting an E2E NAK packet to the originating node (over the determined virtual channel) to cause the originating node to retransmit the packet through the network. At 246, the method further includes retransmitting the packet. The packet may be retransmitted across a path that does not include the link over which the original packet was sent and received in error (e.g., link 25).
The above discussion is meant to be illustrative of the principles and various embodiments of the present invention. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/062196 | 10/24/2014 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2016/064417 | 4/28/2016 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5032744 | Wai Yeung Liu | Jul 1991 | A |
5243592 | Perlman | Sep 1993 | A |
5327553 | Jewett et al. | Jul 1994 | A |
5533999 | Hood et al. | Jul 1996 | A |
5546535 | Stallmo et al. | Aug 1996 | A |
5555266 | Buchholz | Sep 1996 | A |
5633996 | Hayashi et al. | May 1997 | A |
5633999 | Clowes et al. | May 1997 | A |
5724046 | Martin et al. | Mar 1998 | A |
5905871 | Buskens et al. | May 1999 | A |
6073218 | Dekoning et al. | Jun 2000 | A |
6081907 | Witty | Jun 2000 | A |
6092191 | Shimbo et al. | Jul 2000 | A |
6141324 | Abbott | Oct 2000 | A |
6151659 | Solomon et al. | Nov 2000 | A |
6181704 | Drottar | Jan 2001 | B1 |
6389373 | Ohya | May 2002 | B1 |
6457098 | Dekoning et al. | Sep 2002 | B1 |
6467024 | Bish et al. | Oct 2002 | B1 |
6490659 | McKean et al. | Dec 2002 | B1 |
6502165 | Kishi et al. | Dec 2002 | B1 |
6510500 | Sarkar | Jan 2003 | B2 |
6542960 | Wong et al. | Apr 2003 | B1 |
6654830 | Taylor et al. | Nov 2003 | B1 |
6735645 | Weber et al. | May 2004 | B1 |
6826247 | Elliott et al. | Nov 2004 | B1 |
6834326 | Wang et al. | Dec 2004 | B1 |
6911864 | Bakker et al. | Jun 2005 | B2 |
6938091 | Das Sharma | Aug 2005 | B2 |
6970987 | Ji et al. | Nov 2005 | B1 |
7366808 | Kano et al. | Apr 2008 | B2 |
7506368 | Kersey et al. | Mar 2009 | B1 |
7738540 | Yamasaki | Jun 2010 | B2 |
7839858 | Wiemann | Nov 2010 | B2 |
7908513 | Ogasawara et al. | Mar 2011 | B2 |
7934055 | Flynn et al. | Apr 2011 | B2 |
7996608 | Chatterjee et al. | Aug 2011 | B1 |
8005051 | Watanabe | Aug 2011 | B2 |
8018890 | Venkatachalam | Sep 2011 | B2 |
8054789 | Boariu | Nov 2011 | B2 |
8103869 | Balandin et al. | Jan 2012 | B2 |
8135906 | Wright et al. | Mar 2012 | B2 |
8161236 | Noveck et al. | Apr 2012 | B1 |
8169908 | Sluiter et al. | May 2012 | B1 |
8171227 | Goldschmidt et al. | May 2012 | B1 |
8332704 | Chang | Dec 2012 | B2 |
8341459 | Kaushik et al. | Dec 2012 | B2 |
8386834 | Goel et al. | Feb 2013 | B1 |
8386838 | Byan | Feb 2013 | B1 |
8462690 | Chang | Jun 2013 | B2 |
8483116 | Chang | Jul 2013 | B2 |
8605643 | Chang | Dec 2013 | B2 |
8619606 | Nagaraja | Dec 2013 | B2 |
8621147 | Galloway et al. | Dec 2013 | B2 |
8667322 | Chatterjee et al. | Mar 2014 | B1 |
8700570 | Marathe et al. | Apr 2014 | B1 |
8793449 | Kimmel | Jul 2014 | B1 |
8812901 | Sheffield, Jr. | Aug 2014 | B2 |
9128948 | Raorane | Sep 2015 | B1 |
9166541 | Funato et al. | Oct 2015 | B2 |
9298549 | Camp et al. | Mar 2016 | B2 |
9621934 | Seastrom et al. | Apr 2017 | B2 |
20010002480 | Dekoning et al. | May 2001 | A1 |
20020162076 | Talagala et al. | Oct 2002 | A1 |
20030037071 | Harris et al. | Feb 2003 | A1 |
20030126315 | Tan et al. | Jul 2003 | A1 |
20040133573 | Miloushev et al. | Jul 2004 | A1 |
20040233078 | Takehara | Nov 2004 | A1 |
20050027951 | Piccirillo et al. | Feb 2005 | A1 |
20050044162 | Liang et al. | Feb 2005 | A1 |
20050120267 | Burton et al. | Jun 2005 | A1 |
20050144406 | Chong, Jr. | Jun 2005 | A1 |
20050157697 | Lee et al. | Jul 2005 | A1 |
20060112304 | Subramanian et al. | May 2006 | A1 |
20060129559 | Sankaran et al. | Jun 2006 | A1 |
20060264202 | Hagmeier et al. | Nov 2006 | A1 |
20070028041 | Hallyal et al. | Feb 2007 | A1 |
20070140692 | Decusatis et al. | Jun 2007 | A1 |
20070168693 | Pittman | Jul 2007 | A1 |
20070174657 | Ahmadian et al. | Jul 2007 | A1 |
20080060055 | Lau | Mar 2008 | A1 |
20080137669 | Balandina et al. | Jun 2008 | A1 |
20080201616 | Ashmore | Aug 2008 | A1 |
20080281876 | Mimatsu | Nov 2008 | A1 |
20090080432 | Kolakeri et al. | Mar 2009 | A1 |
20090259882 | Shellhamer | Oct 2009 | A1 |
20090313313 | Yokokawa et al. | Dec 2009 | A1 |
20100107003 | Kawaguchi | Apr 2010 | A1 |
20100114889 | Rabii et al. | May 2010 | A1 |
20110109348 | Chen et al. | May 2011 | A1 |
20110173350 | Coronado et al. | Jul 2011 | A1 |
20110208994 | Chambliss et al. | Aug 2011 | A1 |
20110213928 | Grube et al. | Sep 2011 | A1 |
20110246819 | Callaway et al. | Oct 2011 | A1 |
20110314218 | Bert | Dec 2011 | A1 |
20120032718 | Chan et al. | Feb 2012 | A1 |
20120059800 | Guo | Mar 2012 | A1 |
20120096329 | Taranta, II | Apr 2012 | A1 |
20120137098 | Wang et al. | May 2012 | A1 |
20120166699 | Kumar et al. | Jun 2012 | A1 |
20120166909 | Schmisseur et al. | Jun 2012 | A1 |
20120201289 | Abdalla et al. | Aug 2012 | A1 |
20120204032 | Wilkins et al. | Aug 2012 | A1 |
20120213055 | Bajpai et al. | Aug 2012 | A1 |
20120297272 | Bakke et al. | Nov 2012 | A1 |
20120311255 | Chambliss et al. | Dec 2012 | A1 |
20130060948 | Ulrich et al. | Mar 2013 | A1 |
20130128721 | DeCusatis et al. | May 2013 | A1 |
20130128884 | DeCusatis et al. | May 2013 | A1 |
20130138759 | Chen et al. | May 2013 | A1 |
20130148702 | Payne | Jun 2013 | A1 |
20130227216 | Cheng et al. | Aug 2013 | A1 |
20130246597 | Iizawa et al. | Sep 2013 | A1 |
20130297976 | McMillen | Nov 2013 | A1 |
20130311822 | Kotzur et al. | Nov 2013 | A1 |
20130312082 | Izu et al. | Nov 2013 | A1 |
20140067984 | Danilak | Mar 2014 | A1 |
20140095865 | Yerra et al. | Apr 2014 | A1 |
20140115232 | Goss et al. | Apr 2014 | A1 |
20140136799 | Fortin | May 2014 | A1 |
20140269731 | DeCusatis et al. | Sep 2014 | A1 |
20140281688 | Tiwari et al. | Sep 2014 | A1 |
20140304469 | Wu | Oct 2014 | A1 |
20140331297 | Innes et al. | Nov 2014 | A1 |
20150012699 | Rizzo et al. | Jan 2015 | A1 |
20150095596 | Yang et al. | Apr 2015 | A1 |
20150146614 | Yu et al. | May 2015 | A1 |
20150199244 | Venkatachalam et al. | Jul 2015 | A1 |
20150288752 | Voigt | Oct 2015 | A1 |
20160034186 | Weiner et al. | Feb 2016 | A1 |
20160170833 | Segura et al. | Jun 2016 | A1 |
20160196182 | Camp et al. | Jul 2016 | A1 |
20160226508 | Kurooka et al. | Aug 2016 | A1 |
20170253269 | Kanekawa et al. | Sep 2017 | A1 |
20170302409 | Sherlock | Oct 2017 | A1 |
20170346742 | Shahar et al. | Nov 2017 | A1 |
Number | Date | Country |
---|---|---|
101576805 | Nov 2009 | CN |
102521058 | Jun 2012 | CN |
104333358 | Feb 2015 | CN |
1347369 | Nov 2012 | EP |
1546MUM2013 | Mar 2015 | IN |
201346530 | Nov 2013 | TW |
0291689 | Nov 2002 | WO |
2014120136 | Aug 2014 | WO |
Entry |
---|
International Search Report & Written Opinion received in PCT Application No. PCT/US2014/062196, dated Jun. 30, 2015, 15 pages. |
Kang, Y. et al., “Fault-Tolerant Flow Control in On-Chip Networks,” (Research Paper), Proceedings for IEEE, May 3-6, 2010, 8 pages, available at http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.228.7865&rep=rep1&type=pdf. |
Xingyuan, T. et al., “An Offset Cancellation Technique in a Switched-Capacitor Comparator for SAR ADCs”; (Research Paper), ,Journal of Semiconductors 33.1. ,Jan. 2012, 5 pages, http://www.jos.ac.cn/bdtxbcn/ch/reader/create_pdf.aspx?file_no=11072501. |
Razavi, B. et al., “Design Techniques for High-Speed, High-Resolution Comparators,” (Research Paper). IEEE Journal of Solid-State Circuits 27.12, Dec. 12, 1992, pp. 1916-1926, http://www.seas.ucla.edu/brweb/papers/Joumals/R%26WDec92_2.pdf. |
Mao, Y. et al., A New Parity-based Migration Method to Expand Raid-5, (Research Paper), Nov. 4, 2013, 11 Pages. |
Li, M. et al.: Toward I/O-Efficient Protection Against Silent Data Corruptions in RAID Arrays, (Research Paper); Jun. 2-6, 2014; 12 Pages. |
Kimura et al., “A 28 Gb/s 560 mW Multi-Standard SerDes With Single-Stage Analog Front-End and 14-Tap Decision Feedback Equalizer in 28 nm CMOS,” IEEE Journal of Solid-State Circuits, vol. 49, No. 12, Dec. 2014, pp. 3091-3103. |
International Searching Authority, The International Search Report and the Written Opinion, Feb. 26, 2015, 10 Pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2015/013921, dated Oct. 28, 2015, 10 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2015/013898, dated Oct. 8, 2015, 9 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2015/013817, dated Oct. 29, 2015, 11 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2014/053704, dated May 15, 2015, 11 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2015/013921, dated Aug. 10, 2017, 9 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2014/062196, dated May 4, 2017, 12 pages. |
Amiri, K. et al., Highly Concurrent Shared Storage, (Research Paper), Sep. 7, 1999, 25 Pages. |
Almeida, P. S., et al; Scalable Eventually Consistent Counters Over Unreliable Networks; Jul. 12, 2013; 32 Pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2015/023708, dated Apr. 22, 2016, 11 pages. |
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2014/049193, dated Feb. 26, 2015, 8 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2015/023708, dated Oct. 12, 2017, 10 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2015/013898, dated Aug. 10, 2017, 8 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2015/013817, dated Aug. 10, 2017, 9 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2014/053704, dated Mar. 16, 2017, 10 pages. |
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2014/049193, dated Feb. 9, 2017, 7 pages. |
EMC2; High Availability and Data Protection with EMC Isilon Scale-out NAS, (Research Paper); Nov. 2013; 36 Pages. |
Do I need a second RAID controller for fault-tolerance ?, (Research Paper); Aug. 22, 2010; 2 Pages; http://serverfault.com/questions/303869/do-i-need-a-second-raid-controller-for-fault-tolerance. |
Number | Date | Country | |
---|---|---|---|
20170302409 A1 | Oct 2017 | US |