The present invention relates to electronic multi-component systems, methods and devices providing optimized communication on a link with in-order data delivery.
It is desirable in electronic multi-component systems that components used to build up the systems can be seamlessly integrated, thereby keeping the integration effort as low as possible, while at the same time having good performance. Ideally this should be the case independent of who the component manufacturer is. To form a standard, several manufacturers have formed a group which is called the Mobile Industry Processor Interface Alliance (MIPI®). The MIPI Alliance has agreed on a high-speed interface technology called UniPro℠ which is for instance used for high speed communication between electronic components in mobile devices. In the future it will incorporate Phy symbol encoding which is available in D-Phy which is using 8b9b encoding as well as M-Phy that will be using 8b10b encoding.
In general UniPro℠ is defined to be a general purpose protocol that deals with solutions of common issues like error handling, flow-control and routing or arbitration.
In the past and at present UniPro℠ however provides a fairly complex error handling to ensure reliable communication. UniPro℠ error handling is based on error detection using cyclic redundancy check (CRC), error reporting using Negative Acknowledgement Control (NAC) frames and data frame retransmissions in case of errors. Furthermore sequence numbers ensure that data frames are received in the proper order and prevent frames from being lost or duplicated. Sequence numbers are also used for management of a retransmission buffer on the transmitter side, assisting in removal of the frames from the retransmission buffer once they have been correctly received.
Further to the CRC error detection in UniPro℠, timers are used to address error corner cases. At present, two timers are used to protect against the loss of frame acknowledgements and flow-control credits respectively.
When Phy-encoding is used, UniPro℠ makes use of the Phy-specific error detection to trigger standard UniPro℠ error recovery mechanism.
It is an object of the present invention to improve an error handling performance in a communication protocol.
A first aspect of the invention is a method for handling an error at a receiver in a communication system that uses a frame-based communication protocol having a first error handling mechanism (error recovery protocol) responsive to receipt of an incorrect or non-expected Phy and/or protocol symbol. The method comprises:
The receiver thus triggers the error recovery protocol (the error recovery protocol is initiated) when multiple incorrect or unexpected symbols are received within a sequence of symbols. A significant advantage of this method is that the first error recovery protocol is invoked less than it otherwise would. Known methods will employ the error recovery protocol in response to a single incorrect/non-expected symbol.
In some embodiments, wherein the first error handling mechanism involves the receiver sending a first Negative Acknowledgement Control (NAC) frame to a transmitter responsible for sending the sequence of symbols, the first NAC not requiring a re-synchronization between the transmitter and the receiver.
In some embodiments, the communication protocol also has a second error handling mechanism responsive to receipt of an incorrect or non-expected Phy and/or protocol symbol, and the method further comprises:
This embodiment is advantageous because it causes the second error handling mechanism to be initiated only when the number of errors equals or exceeds the second error threshold, in a sense “postponing” it.
In some embodiments, the second error handling mechanism involves the receiver sending a second Negative Acknowledgement Control (NAC) frame to the transmitter responsible for sending the sequence of symbols, and that second NAC requires a re-synchronization between the transmitter and the receiver. This embodiment further illustrates the advantage of using a second threshold for a second error handling mechanism. In the case where the second error handling mechanism involves re-synchronization, the invention provides that this action is not taken until a higher number of errors have occurred. An example of a value of the second threshold could be 10 or 50 or 100, depending on the requirements in the given application/environment.
In some embodiments, the error handling mechanism is triggered if the sequence comprises two adjacent incorrect or non-expected symbols. This has turned out to improve error handling substantially, especially under more noisy conditions where electromagnetic interference (EMI) causes a significant number of errors. Triggering the error recovery protocol after three adjacent incorrect or non-expected symbols is advantageous for more efficiently handling serious errors. Adjacent errors could be indicative of something other than EMI, but if the problem is significant but intermittent, then an acceptance of multiple errors before invoking the error recovery protocol can improve performance significantly. Other values of the first threshold can be selected, for instance with the goal of optimizing the error handling in a certain application/environment.
In another embodiment, the count is determined in between a complete frame has been received and another one not yet begun. In between frames, more errors can be tolerated, and the invention can therefore adhere to standard error handling within frames and a less strict handling between frames. From a standards perspective, this is a very attractive embodiment feature.
In another embodiment, the sequence in which errors are counted is received after any outstanding frames have been completely received. In another embodiment the sequence of incorrect or non-expected symbols is received after a last symbol of a frame was received and before an ongoing frame is continued with a continuation-of-frame (COF) symbol. This particular embodiment specifically counts errors (in the sense of the invention) in ongoing frames.
The methods described above are highly relevant when the communication protocol is Unified Protocol, UniPro. In some embodiments, then, the error recovery protocol is an error recovery protocol in the sense of the UniPro standard. Other protocols, or developments of UniPro, are likely to be compatible with the present invention and thus the invention will be applicable for such protocols as well.
A second aspect of the invention provides a receiver symbol parser for use in a communication system that uses a frame-based communication protocol having a first error handling mechanism responsive to receipt of an incorrect or non-expected Phy and/or protocol symbol. The symbol parser is adapted to perform a method accordance in accordance with the first aspect of the invention. According to the second aspect of the invention, the receiver symbol parser is adapted to receive a sequence of symbols and determining whether a count of incorrect or non-expected symbols in the sequence equals or exceeds a first error threshold greater than 1, and in the affirmative initiating the first error handling mechanism.
The considerations related to the first aspect apply to the second aspect as well. For instance, in some embodiments of the second aspect, the communication protocol also has a second error handling mechanism responsive to receipt of an incorrect or non-expected Phy and/or protocol symbol, and the receiver symbol parser is further adapted to determine whether a count of incorrect or non-expected symbols in the sequence equals or exceeds a second error threshold higher than the first error threshold, and in the affirmative to initiate the second error handling mechanism.
A third aspect of the invention provides a receiver for use in a communication system that uses a frame-based communication protocol having an error handling mechanism responsive to receipt of an incorrect or non-expected Phy and/or protocol symbol. A receiver in accordance with this aspect employs a receiver symbol parser in accordance with the second aspect of the invention.
The considerations related to the first and second aspects apply to the third aspect as well.
Below embodiments of the present invention are presented, with reference to the examples shown in drawings, wherein
The present invention will be described with respect to particular embodiments and with reference to certain drawings but the invention is not limited thereto but only by the claims. The drawings described are only schematic and are non-limiting. In the drawings, the size of some of the elements may be exaggerated and not drawn on scale for illustrative purposes.
Where the term “comprising” is used in the present description and claims, it does not exclude other elements or steps. Furthermore, the terms first, second, third and the like in the description and in the claims, are used for distinguishing between similar elements and not necessarily for describing a sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances and that the embodiments of the invention described herein are capable of operation in other sequences than described or illustrated herein.
As shown in
Here the frame length is used instead of the EOF/EOF_PAD control symbol of a former frame format. The first two symbols and the last symbol of the UniPro℠ data frame are the frame header and trailer respectively. The header consists of control symbol identified by the 16th bit with a value of 1 which has the following fields: an escape byte 110, which will be converted to an escape symbol in an encoded Phy, and denotes a control symbol, the control ID field CTRL_ID 120, which in the case of a data frame header has the value 0, denoted by SOF (Start of Frame), the traffic class TCx, 130, which may take the value of 0 and 1 at UniPro℠ 1.5 and furthermore three reserved bits 140. The second header symbol is a data symbol identified by the 16th bit with a value of 0, which has the following fields: the frame length 150, the frame sequence number 170. The frame payload includes the Layers 3 and 4 headers (the L3s bit 180, the destination device ID 182, the L4s bit 184, the destination port 186, the FCT bit 188 and the EoM bit 190), and the payload 192. The frame trailer consists of the error check code 194.
Furthermore all transmitted data frames are assigned a sequence number, which is also transmitted in the data frame, and is used by the receiver as an assignment to identify the acknowledgement. For instance, the sequence number has 5 bits incremented with every frame and consequently wraps around at 31.
For instance, in UniPro℠ a maximum of 16 frames can be transmitted without receiving an acknowledgement. Frame acknowledgement is performed using an ACK control frame. In case of an acknowledgement, a sequence number in the AFC frame acknowledges all unacknowledged data frames up to and including the one identified by the sequence number. The transmitter saves all the transmitted data frames in a retransmission buffer until they are acknowledged. If an NAC control frame is received, reporting an error, all the data frames in the retransmission buffer are retransmitted starting with the oldest unacknowledged frame.
The second safety net is used if control frames are lost. The consequence is a loss of either acknowledgement and/or link-level flow control credits contained in an AFC frame, or an error indication contained in an NAC frame. In order to handle such errors, which rarely occur, two timers are used for each traffic class: one for data, called replay timer, and one for credits, called credit timer. In case the replay timer expires, all the unacknowledged frames in that traffic class are retransmitted. In case the credit timer expires, an AFC frame with the Req bit set is sent for that traffic class. However, in both cases UniPro℠ version 1.0 requires the link to be resynchronized. An NAC frame with the RRR bit is sent to also require the incoming link to be resynchronized, an activity that requires bandwidth and lowers the efficiency of the connection.
Apart from the CRC errors for instance numerous other errors may be detected in case of the first safety net by the receiver which errors can be: a receiver buffer overflow for instance due to a bit transmission error in the TCx field 130; an incoming frame having a larger length than the maximum frame size due to a transmission error changing the EOF control symbol into a valid data symbol; incorrect sequence number in a data frame; an AFC frame not followed by two data symbols; an NAC frame not followed by one data symbol; an EOF/EOF_PAD not followed by one data symbol; reception of a COF, EOF or EOF_PAD control symbol when no data frame has been started; reception of an SOF symbol when the data frame of the same traffic class is already ongoing and the data frame is not currently pre-empted; reception of an SOF symbol called TC0, in case a TC1 data frame is already ongoing; reception of a COF symbol during a data frame of a same traffic class, wherein the data frame has not been pre-empted; reception of a COF symbol continuing a data frame of a different traffic class; reception of an EOF, EOF_PAD or data symbol when the data frame is pre-empted and the pre-empted frame has finished; reception of a control symbol with invalid values for defined fields, for instance undefined CTRL_ID or TC; reception of an error indication from the Phy adapter.
In case of Phy-encoding the Phy adapter indicates an error for instance in the following cases:
a bad Phy symbol was received,
a correct exception Phy symbol was received, but it is not mapped to a valid UniPro℠ symbol,
a correct exception Phy symbol was received immediately after another exception Phy symbol, when a data Phy symbol was expected, and
an incorrect value or valid data Phy symbol is received following an ESC_PA.
In case of any of the above errors being detected, an NAC control frame is transmitted, which may be preceded by a pair of AFC control frames to prevent unnecessary retransmissions.
A top level view of a symbol parser as it may be implemented in the receiver is described. The symbol parser maintains three variables tc0 and tc1 in case there is an ongoing data frame at traffic class TC0 and TC1 respectively, and a variable NACGenOk in order to indicate if the NAC generation is validated indicated by a true, or not, indicated by false as marked by reference sign 401.
As there is no ongoing data frame initially, hence TC0 and TC1 are both set to false. Also NAC generation is temporarily disabled after an error was reported with an NAC control frame until a frame with a good CRC is received. Initially there is no detected error and thus NACGenOk is set to true. As initially the symbol parser has not started any frame it may for instance wait in a state NoFrame indicated by reference sign 403. In the first line the start symbols are indicated 405 “NAC”, 407 “AFC”, 409 “SOF/TC=1”, 411 “SOF/TC=0”, 413 “DATA”, 415 “COF,EOF” and 417 “PAErr” which call the respective procedures when received described below and connected by arrows respectively as indicated with reference signs from 425 to 437. If any other symbol is received, an error procedure is called with the parameter false. For any state, when an error indication is received from the Phy adapter, an error procedure is called with the parameter false as indicated by reference signs 450 to 460.
Here however TC0 frame may be pre-empted by a TC1 frame which is shown by allowing an SOF symbol with the TC field being set to 1 at 918 to be received during the pre-emption of the state 905 “TC0_CoF” or during the state 925 “TC0_DATA” where the SOF is indicated by 950. Secondly when the TC0 frame is finished the parser preferably always returns to the state 998 “NoFrame” as there is no other frame that can be continued contrary to the TC1 case, TC0 could be pre-empted, therefore a check is needed to determine if a TC0 frame needs to be continued in state 905 “TC0_CoF”, or there is no ongoing frame in which case the parser returns to the state 988.
Allowing data symbols in-between frames is an advantageous alternative to sending IDLE symbols, which is good for EMI reasons, as it allows more randomness in the Phy symbol patterns, as opposed to a repetition creating unwanted spectral harmonics.
On the other hand preferably also occasional errors in-between frames may be ignored, as on the one hand they are likely not to be related to useful data. If on the other hand errors would hide a useful symbol, the UniPro℠ error handling scheme would demonstrate to be robust enough to detect the error at a later detection stage. However, in most of the cases that were observed, the Phy transmission error does not need to be reported, and bandwidth and/or power use is thereby reduced.
Apart from the modifications this figure is directly comparable to the parser shown in
The states “COF”, “EOF”, “PAErr”, “PAIdle” and “DATA” indicated by 1020 to 1025 are handled in the state 1008 “NoFrame”. I.e. in-between frames a counter 1040 “ErrCnt” is used to count errors in-between frames. When a frame started at 1010-1018, or when a “PAIdle” 1025 is received the “ErrCnt” 1043 is reset to 0 as shown from 1028 to 1038, if the Phy signals an error via “PAErr”, 1023 the “ErrCnt” is incremented, and preferably if it reaches a first threshold TH_PA_ERR for instance like 3 a Phy resynchronization is triggered in using “Error (false)”, 1053 if the error persists and ErrCnt reaches a second threshold an NAC frame requesting Phy resynchronization is triggered using “Error (true)” as shown in 1055.
This scheme can further be improved by allowing unexpected control symbols to be received like COF or EOF in-between frames, where the error counting is done as it is done for “PAErr” like shown at box 1020.
Typically PAErr indicates a decoding error issued by the Phy Adapter, and may e.g. consist of one of the following possible errors:
As it is shown here both types of errors are combined.
The same mechanisms may also be applied in the same manner to the states “TC1_COF” and “TC0_COF”, where UniPro℠ is in-between frames during a pre-emption and expects a COF symbol. The difference to the above is that the COF and SOF symbols have opposite roles, as the COF symbol is an expected symbol and the
SOF symbol is not. As can also be seen in
Contrary to the previous embodiment here the “PAErr” 1143 is defined in form of bad symbol error indications signalling a bad symbol and is treated differently from the other errors which are triggered by valid Phy symbols received when not expected. The bad Phy symbols are treated as before explained corresponding to
Beneficially the invention may be applied to UniPro℠ network-based products for use in mobile devices, such as mobile phones.
Number | Date | Country | Kind |
---|---|---|---|
10164182 | May 2010 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2011/058763 | 5/27/2011 | WO | 00 | 11/8/2012 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2012/000729 | 1/5/2012 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5247380 | Lee | Sep 1993 | A |
5559804 | Amada | Sep 1996 | A |
5717762 | Aihara | Feb 1998 | A |
6035432 | Jeddeloh | Mar 2000 | A |
6295002 | Fukuda | Sep 2001 | B1 |
6335933 | Mallory | Jan 2002 | B1 |
6721492 | Togashi | Apr 2004 | B1 |
7035214 | Seddigh et al. | Apr 2006 | B1 |
20010055311 | Trachewsky et al. | Dec 2001 | A1 |
20020154633 | Shin | Oct 2002 | A1 |
20040141522 | Texerman | Jul 2004 | A1 |
20080067637 | Voutilainen | Mar 2008 | A1 |
20080192705 | Suzuki | Aug 2008 | A1 |
20080195912 | Mende | Aug 2008 | A1 |
20080273596 | Oguz | Nov 2008 | A1 |
20090172185 | Chandra | Jul 2009 | A1 |
20090213938 | Lee | Aug 2009 | A1 |
20090238553 | Tamura | Sep 2009 | A1 |
20100049885 | Chandra | Feb 2010 | A1 |
20100197248 | Balakrishnan | Aug 2010 | A1 |
20100203835 | Ryu | Aug 2010 | A1 |
20100318751 | Andreasen | Dec 2010 | A1 |
20110041025 | Van Den Hamer | Feb 2011 | A1 |
20110078166 | Oliver | Mar 2011 | A1 |
20110078255 | Radulescu | Mar 2011 | A1 |
20110078313 | Radulescu | Mar 2011 | A1 |
20110134930 | McLaren | Jun 2011 | A1 |
20110138096 | Radulescu | Jun 2011 | A1 |
20120072520 | Radulescu | Mar 2012 | A1 |
Number | Date | Country |
---|---|---|
1 507 369 | Feb 2005 | EP |
2 313 268 | Nov 1997 | GB |
2313268 | Nov 1997 | GB |
2004021658 | Mar 2004 | WO |
WO 2004021658 | Mar 2004 | WO |
Entry |
---|
International Search Report Issued in corresponding International application No. PCT/EP2011/058763, dated Oct. 26, 2011. |
Written Opinion issued in corresponding International application No. PCT/EP2011/058763, completion date Oct. 26, 2011. |
Gong, Fengmin et al., “An Application-Oriented Error Control Scheme for High Speed Networks,” IEEE, ACM Transactions on Networking, New York, NY, US, vol. 4, No. 5, Oct. 1, 1996, pp. 669-683, XP011039017, ISSN: 1063-6692. |
MIPI, “MIPI Alliance Standard for Unified Protocol (UniPro) Version 1.00.00—Aug. 25, 2007”, Jan. 23, 2008. |
Number | Date | Country | |
---|---|---|---|
20130061099 A1 | Mar 2013 | US |
Number | Date | Country | |
---|---|---|---|
61356864 | Jun 2010 | US |