Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: [8023-10GEPON] FEC Framing Adhoc - upstream synchronization



Yes, the first run though is always the hardest, for both the writer and the reader.  

On Barker sequences:  The original Barker work focused on framing sequences that would be inserted into random data.  So, the computational analysis of their autocorrelation properties assumed random data on the left and the right.  

In our sequences, we make two different assumptions: 
1) That we only care about the autocorrelation to the left (that is, looking too early in the burst).  This assumption is justified since once we hit the delimiter, we stop looking.  
2) The pattern before the delimiter is pure preamble, and not random data.  This makes the chances of false positives very much smaller.  

On longer sequences - I give one in the slides that is 64 bits long, page 13.  
My studies show that this is long enough.  

Now, how to calculate the mean time to lost burst...also known as a false negative.  Page 14 discusses the criterion for judging if the delimiter is found.  As you can see, the number of errors that must occur in 64 bits is quite large.  The probability of a missed burst is given by the formula on page 11. It is the chances of having so many errors that the delimiter is hopelessly garbled.  The key term is the BER^x, and since BER~1e-3, this number gets small fast.  To turn this probability into a period, we divide by the burst rate (bursts/second). I used 100Kburst/sec, for sake of argument.  This results in the curve on page 12. 
A datapoint: The age of the universe is 3E17 seconds.  

Since 64 bits seems to cause lost bursts about once in forever, and since 64 bits is a very round number for 10 GbE systems, I think that it is the answer.  

As for finding the 'Golden Block', I haven't found it.  Page 13 puts out the challenge (the Effenberger Conjecture, if you will!) that there is a 64 bit delimiter that has a minimal distance of 31 bits.  I haven't found that one, yet.  There are so many combinations of delimiters that pure exhaustion doesn't work.  However, a Monte-carlo approach has gotten my several patterns with distance 29, and that is nearly as good.  As they say in the text-books, I leave the answer as an exercise to the reader.  

Once last thought: If we are going to try to leave the data detector mechanism alone, then we have the following problem.  Once the data detector detects the leader frame, it will start to ramp the optics on.  All the while, idle blocks are being generated by the PMA.  So, the Tx will emit some malformed stuff at the beginning of the block, and this will not be 0x55.  After that, the header of the leader frame gets sent.  This also not be 0x55 pattern (although, we might make it pretty close to 0x55 via the smart choice of bogus MAC addresses or similar tricks).  

How much of this really matters is a function of how inaccurate the Tx ramp-up time is, and how fast the Rx PMA clock locking time is.  A really slow data detector, coupled with a fast Tx and a fast Rx PMA, could present the Rx correlator circuit with patterns that sub-optimal.  It would be nice if the PMA refrains from transmitting idles until the leader frame begins, or if the transmitter is purposely inhibited (a warm standby).  Or, we study all the patterns that could come out, and make sure there are no unfortunate occurrences.    

The upshot of this issue is that the chances of a false positive could be increased.  Before we get all upset, false positives are relatively easy to beat down, because once we have a candidate delimiter, we can very quickly do a check of adjacent data patterns (like the CRC that will follow the delimiter, and preamble that precedes it), as a secondary check.  Since the chances of a false lock is not so likely, this will not be a performance problem.  Once the double-check fails, we can go back to looking for the true delimiter.  

And, we can safely forget about a falsely accepted burst, because even if a false delimiter is accepted, and it passes the double check, then the FEC parity will be all wrong, and the FEC block will be rejected as officially hosed.  

Fun stuff! 
Frank E.