Abstract:
A method for determining throughput of a data passing between end points of a data communication system as a function of bit error rate, comprising: generating a mathematical model of the functional relationship between the throughput of data passing from a transmitting one of a pair of end points of a data communication system and a receiving one of the pair of end points and a bit error rate of data received at the receiving one of the pair of end points.

Description:
TECHNICAL FIELD 
   This invention relates generally to data communication systems and more particularly to methods for establishing a bit error rate (BER) requirement for such systems. 
   BACKGROUND 
   As is known in the art, there is a trade off in establishing the bit error rate (BER), sometimes also referred to in the literature as bit error ratio, in a data communication system. On one hand, a zero BER results in perfect (i.e., error free) packet transmission through the system and thus removes the requirement for any packet retransmission. On the other hand, as the BER is reduced, the cost of the system increases dramatically. 
   SUMMARY 
   In accordance with the present invention, a method is provided for determining throughput of a data passing between end points of a data communication system as a function of bit error rate. The method includes generating a mathematical model of the functional relationship between the throughput of data passing from a transmitting one of a pair of end points of a data communication system and a receiving one of the pair of end points and a bit error rate of data received at the receiving one of the pair of end points. 
   In one embodiment a method is provided for determining throughput of a data passing between end points of a data communication system as a function of bit error rate. The method includes: determining a probability of bit errors in the data passing between the end points through the system; and determining the actual throughput as a function of the determined probability. 
   In one embodiment, the probability is determined as a function of characteristics of a protocol used for the transmission. 
   In one embodiment, a method is provided for establishing a bit error rate (BER) requirement a data communication system. The method includes: generating a mathematical model of the functional relationship between throughput of data passing from a transmitting one of a pair of end points of the data communication system and a receiving one of the pair of end points and a bit error rate of data received at the receiving one of the pair of end points; and establishing, from the generated model, the bit error rate (BER) requirement for the data communication system. 
   In one embodiment, the model is represented by a curve relating system throughput as a function of the bit error rate, such curve having a relatively flat relationship between system throughput \as a function of the bit error rate, BER, for relatively low bit error rates and wherein the system throughput as a function of the bit error rate rapidly decreases for relatively high bit error rates with such curve having an inflection point within a knee-like region between the relatively low bit error rates and the relatively high bit error rates, and wherein the optimal bit error rate is established at a bit error rate proximate the inflection point within the knee-like region of the curve. 
   In one embodiment, the bit error rate is established at a bit error rate slightly less than the lower bit error rate range of the knee-like region of the curve. 
   In one embodiment, the model is generated as a function of a time needed for error recovery. 
   In one embodiment, the system is a serial link system and the model is generated as a function of time for link timeout in the system. 
   In one embodiment, the system is a serial link system and the model is generated as a function of time for link re-synchronization in the system. 
   In one embodiment, the model is generated as a function of time required to send a packet of data between the transmitting one of the pair of end points and the receiving one of the pair of end points. 
   In one embodiment the model is generated as a function of time required process a receive packet. 
   This method determines the actual throughput of a high-speed serial link as a function of both the BER of the link and the specific semantics of the communication protocol across that link. The method is to use a mathematical model which describes the probabilities of individual and combinatorial bit errors in specific components of the protocol together with their respective impacts. 
   This method is described herein for ARQ (Automatic Repeat reQuest) protocols which use retransmission as a form of error correction. The probability of causing a retransmission combined with the impact of retransmission is the central factor in determining throughput or performance impact. The impact of BER on ARQ-type protocols also tends to have a non-linear impact on throughput, so a method for determining performance impact as a function of BER and protocol specifics allows for more cost-effective and reliable designs of communication links. 
   The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. 

   
     DESCRIPTION OF DRAWINGS 
       FIG. 1  is a diagram of two end points passing data through a data communication system having a bit error rate, BER, established in accordance with the invention; 
       FIG. 2  is a curve generated in accordance with the invention showing a calculated throughput, D, as a function of logBER for the system of  FIG. 1 ; 
       FIG. 3  is a diagram useful in understanding parameters for the communication system of  FIG. 1 ; and 
       FIG. 4  is a flow chart of the steps used in the method according to the invention. 
   

   Like reference symbols in the various drawings indicate like elements. 
   DETAILED DESCRIPTION 
   Referring now to  FIG. 1 , a data transmission system is shown wherein packets of data are transmitted between end points  6 ,  8  of a packet switching network  9 . As will be described in more detail below, a throughput mathematical model is generated presenting a functional relationship between the throughout of the system as a function of BER. An exemplary function is shown in  FIG. 2 , where the y-axis is throughput, D, in bits per second normalized with respect to the maximum value of the system throughput, D max , so that the maximized value of D is unity, i.e., the y-axis is D/D max , and the x-axis is logBER. Then, from such generated function, D as a function of BER, an optimal bit error rate (BER) requirement is established for the systems. For example, referring to  FIG. 2 , it is noted that the calculated throughput for the system, D, is relatively flat as a function of BER until a knee of the function is reached after which the throughput decreases relatively rapidly with increasing BER. Thus, from such generated function, a BER is established proximate an inflection point within a knee-like region  15 , typically for safety, at a BER slightly less than the lower BER range of the inflection point or based on a desired percentage of the throughput ratio, D/D max . 
   In the example presented herein, a performance analysis of the Serial Rapid IO (SRIO) protocol physical link is presented. A mathematical approach is presented to model the throughput, D, of one direction of SRIO physical link. The analysis is based on evaluation of window transmission time (WTT). WTT represents the time needed for a complete window of packets transmission and error recovery time and delays concerning the erroneous packet. It incorporates time needed for packet transmissions, for processing the packets in the receiver queue and acknowledgement for the erroneous packet, for error recovery process (hand shaking between transmitter and receiver to recovery from the error states) and time wasted in possible link timeout and link re-initialization since burst of bit errors could make the link go down. 
   The performance model considers data transfer from the one endpoint to another endpoint crossing the physical link, here the packet switching network. One endpoint has both transmitter port and receiver port. Here, the example only considers the throughput, D, for one direction, from one endpoint&#39;s transmitter to another endpoint&#39;s receiver. Here one of endpoints is referred to as the primary endpoint and the other one of the endpoints the secondary endpoint. It is assumed in this example that the primary has always packets ready for transmission. Packets from the primary endpoint with maximum size of 276 bits carry information to the secondary endpoint, along with control symbols (SOP and EOP) with fixed size of 24 bit (before 10b8b encoder/decoder). The secondary endpoint responses with an ACK control symbol PA (Packet Acknowledgement) or PNA (Packet Negative Acknowledgement) indicating the secondary endpoint has accepted the packet or not accepted the packet due to the bit error. Before the ACK is received by the primary endpoint, it keeps transmitting the packets as long as there are enough buffers on the secondary endpoint which is advertised by the secondary endpoint constantly by the status control symbol. Once it receives the PNA control symbol, it immediately stops transmitting any new packets and entered the error-stop state and started the error recovery process. If the ACK symbol indicates the packet is accepted, the packet will not have to be retransmitted. The correctly received packets after the erroneous packet are discarded by the secondary endpoint and have to be retransmitted. If the bit error happens to an ACK control symbol, the primary endpoint could not see the acknowledgement and wait for the link timeout and then initiated the link-request control symbol for the error recovery. If a burst of bit errors happens on the link in a short period of time (256 code groups), the link will go down and re-sync between the two endpoints. If this event happens in the window, we have to also consider the silence and discovery timer for the SRIO physical layer. Although this probability of such event is thin, the impact of such event is too high so as that we should not ignore it. 
   Explanation of the Parameters in the Flow Chart 
   The table below lists all the parameters appearing in the flow chart. For each parameter, the description and the way to calculate if there is any are given: 
   
     
       
             
             
             
             
           
         
             
               TABLE I 
             
             
                 
             
             
                 
               Parameter 
                 
                 
             
             
               Symbol 
               Description 
               Unit 
               Comment 
             
             
                 
             
           
           
             
               BER 
               Bit error rate 
               NA 
               A changing parameter in the 
             
             
                 
                 
                 
               simulation. The range could be chosen 
             
             
                 
                 
                 
               from 10 −4  to 10 −16 . 
             
             
               BER max   
               Max BER in 
               NA 
               The max BER selected in the 
             
             
                 
               the simulation 
                 
               simulation. For example, max BER is 
             
             
                 
                 
                 
               10 −4  here. 
             
             
               BER min   
               Min BER in 
               NA 
               The min BER selected in the 
             
             
                 
               the simulation 
                 
               simulation. For example, min BER is 
             
             
                 
                 
                 
               10 −16  here. 
             
             
                 
             
             
               Δ log BER 
               Step size of 
               NA 
               In the simulation, once BER min  and 
             
             
                 
               logBER in the 
                 
               BER max  are decided, we could 
             
             
                 
               simulation 
                 
               decide ΔBER, which is 
             
             
                 
                 
                 
               
                 
                   
                     
                       
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         log 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         BER 
                       
                       = 
                       
                         
                           
                             
                               log 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 BER 
                                 max 
                               
                             
                             - 
                             
                               log 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 BER 
                                 min 
                               
                             
                           
                           
                             Step 
                             total 
                           
                         
                         . 
                       
                     
                   
                 
               
             
             
                 
             
             
               BER current   
               The current 
               NA 
               BER current  = BER min  * 10 Step*Δlog BER   
             
             
                 
               BER in the 
             
             
                 
               simulation 
             
             
               Step total   
               The total steps 
               NA 
               Here we choose Step total  as 100. 
             
             
                 
               for the 
             
             
                 
               simulation. 
             
             
               Step 
               The current 
               NA 
             
             
                 
               step during the 
             
             
                 
               simulation 
             
             
               P sop   
               Start of Packet 
               NA 
             
             
                 
               symbol 
             
             
                 
               delimiter error 
             
             
                 
               probability 
             
             
               P pkt   
               Packet error 
               NA 
             
             
                 
               probability 
             
             
               P eop   
               End of Packet 
               NA 
             
             
                 
               symbol 
             
             
                 
               delimiter error 
             
             
                 
               probability 
             
             
               P 
               A complete 
               NA 
             
             
                 
               packet 
             
             
                 
               (including 
             
             
                 
               delimiters and 
             
             
                 
               packet itself) 
             
             
                 
               error 
             
             
                 
               probability 
             
             
               P ack   
               Acknowledge 
               NA 
             
             
                 
               symbol error 
             
             
                 
               probability 
             
             
               P burst     —     bit     —     err   
               Burst bit error 
               NA 
             
             
                 
               probability 
             
             
               T s   
               Time needed 
               Seconds 
             
             
                 
               to send a 
             
             
                 
               packet 
             
             
               T r   
               Time needed 
               Seconds 
             
             
                 
               to receive a 
             
             
                 
               packet 
             
             
                 
               (waiting and 
             
             
                 
               processing) 
             
             
               T ack   
               Time needed 
               Seconds 
             
             
                 
               to send an 
             
             
                 
               acknowledge 
             
             
                 
               control 
             
             
                 
               symbol 
             
             
               T prop   
               Propagation 
               Seconds 
             
             
                 
               time on the 
             
             
                 
               link 
             
             
               T proc     —     ack   
               Time needed 
               Seconds 
             
             
                 
               to process an 
             
             
                 
               acknowledge 
             
             
               T re cov ery   
               Time needed 
               Seconds 
             
             
                 
               for error 
             
             
                 
               recovery, 
             
             
                 
               which is 
             
             
                 
               mainly the 
             
             
                 
               time for 
             
             
                 
               hardware error 
             
             
                 
               recovery and 
             
             
                 
               re- 
             
             
                 
               transmission 
             
             
                 
               time for the 
             
             
                 
               erroneous 
             
             
                 
               packet 
             
             
               T link     —     to   
               Time for link 
               Seconds 
             
             
                 
               timeout 
             
             
               T link     —     resync   
               Time for link 
               Seconds 
             
             
                 
               re-sync 
             
             
               l sop   
               Start of Packet 
               NA 
               This is a constant (30) in the 
             
             
                 
               symbol length 
                 
               simulation. 
             
             
               l eop   
               End of Packet 
               NA 
               This is a constant (30) in the 
             
             
                 
               symbol length 
                 
               simulation. 
             
             
               l pkt   
               Packet length 
               NA 
               This is a constant (2760) in the 
             
             
                 
                 
                 
               simulation. (The max length allowed by 
             
             
                 
                 
                 
               RIO protocol). 
             
             
               l ack   
               Acknowledge 
               NA 
               This is a constant (30) in the 
             
             
                 
               symbol length 
                 
               simulation. 
             
             
               N 
               Maximum 
               NA 
               This is a constant (16) in the 
             
             
                 
               Size of 
                 
               simulation. 
             
             
                 
               receiver queue 
             
             
               K 
               Size of receive 
               NA 
               K could be 1 to 16. 
             
             
                 
               queue when 
             
             
                 
               receiver gets 
             
             
                 
               (w + 1)th 
             
             
                 
               packet 
             
             
               S exp     —     rq   
               Expected 
               NA 
               S exp     —     rq  = ceiling((w + 1)(T r  − T s )/T r ) 
             
             
                 
               receive queue 
             
             
                 
               size 
             
             
                 
             
             
               P S     rq     =K   
               Probability of receive queue size being K. K could be 1 to 16. 
               NA 
               
                 
                   
                     
                       
                         P 
                         
                           
                             S 
                             rq 
                           
                           = 
                           K 
                         
                       
                       = 
                       
                         { 
                         
                           
                             
                               1 
                             
                             
                               
                                 K 
                                 = 
                                 
                                   S 
                                   exp_rq 
                                 
                               
                             
                           
                           
                             
                               0 
                             
                             
                               otherwise 
                             
                           
                         
                       
                     
                   
                 
               
             
             
                 
             
             
               T w   
               Window 
               Seconds 
               T w  = (w + 1)T s  + KT r  + T re cov ery  + T ack  + 
             
             
                 
               transfer time 
                 
               2 * T prop  + T proc     —     ack  + P ack T link     —     to  + 
             
             
                 
                 
                 
               P burst     —     bit     —     err T link     —     resync   
             
             
               P effective   
               The total 
               NA 
               P effective  = w * (1 − P) w  P 
             
             
                 
               effective 
             
             
                 
               packets 
             
             
                 
               transferred in 
             
             
                 
               the window 
             
             
               w 
               Correctly 
               NA 
             
             
                 
               transferred 
             
             
                 
               packets in a 
             
             
                 
               window 
             
             
                 
             
             
               D′ 
               Throughput change at each step during the simulation 
               Packets/seconds 
               
                 
                   
                     
                       
                         D 
                         ′ 
                       
                       = 
                       
                         
                           ∑ 
                           
                             K 
                             = 
                             1 
                           
                           N 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           
                             
                               P 
                               effective 
                             
                             * 
                             
                               P 
                               
                                 
                                   S 
                                   rq 
                                 
                                 = 
                                 K 
                               
                             
                           
                           
                             T 
                             w 
                           
                         
                       
                     
                   
                 
               
             
             
                 
             
             
               D 
               Throughput of the window 
               Packets/seconds 
               
                 
                   
                     
                       D 
                       = 
                       
                         
                           ∑ 
                           
                             w 
                             = 
                             0 
                           
                           ∞ 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           D 
                           ′ 
                         
                       
                     
                   
                 
               
             
             
                 
             
           
        
       
     
   
   Referring to  FIG. 3 , the mathematical model uses the concept of the “window transmission time” (WTT) to denote the average time needed for a complete window transmission. WTT denotes the average time taken from the beginning of window&#39;s first frame transmission to the beginning of next window&#39;s first frame transmission. WTT incorporates time needed for packet transmissions, waiting and processing time in the receiver queue, error recovery time, delays for possible link timeout and link re-sync time due to burst of bit errors. 
   The primary endpoint is sending w packets correctly when the bit error happens on (w+1)th packet. The total time spent on the transmission of these w+1 packets are (w+1)*T s . Let&#39;s assume the erroneous packet enters the receive queue, there are K packets still in the receive buffer queue waiting to be processed. After the erroneous packet gets processed, the secondary endpoint sends out an acknowledgement (PNA) to the primary endpoint using another channel. Once PNA is received by the primary endpoint, the primary endpoint finishes the packet that it is transmitting and immediately entered the error-stop state. So the time between the finish of (w+1)th erroneous packet and the entering of recovery process is the waiting and processing time for the erroneous packet in the receive queue, which is K*T r . Then recovery happens, which takes T re cov ery  to finish. So generally, the total window time:
 
 T   w =( w+ 1) T   s   +KT   r   +T   re cov ery   +T   ack +2* T   prop   +T   proc     —     ack 
 
However, there are two special low probability cases which have very high impact on the link transmission. The first one is link timeout due to the bit error on the acknowledge control symbol. The link timeout is a long timer which has a maximum value of 3.4 seconds recommended by the Rapid IO Trade Association (TA). The second one is the link re-sync time. Link re-sync happens when there are burst of bit errors during a short period time. Link goes down and then goes up again. The time spent in silence and discovery states included in the link re-sync are 119.8 us and 12 ms, respectively. All these three timer will have a very big impact on T w . Considering those timers:
 
 T   w =( w+ 1) T   s   +KT   r   +T   re cov ery   +T   ack +2* T   prop   +T   proc     —     ack   +P   ack   T   link     —     to   +P   burst     —     bit     —     err   T   link     —     resync 
 
The total effective packets transferred in the above window are:
 
 P   effective   =w *(1− P ) w   P 
 
While
 
 P= 1−(1− P   sop )(1− P   pkt )(1− P   eop )
 
And
 
 P   sop =1−(1− BER ) l     sop   
 
 P   eop =1−(1− BER ) l     eop   
 
 P   pkt =1−(1− BER ) l     pkt   
 
 P   ack =1−(1− BER ) l     ack   
 
So
 
           D   =       ∑     w   =   0     ∞     ⁢           ⁢           w   ⁡     (     1   -   P     )       w     ⁢   P           (     w   +   1     )     ⁢     T   s       +     KT   r     +     T   recovery     +     T   ack     +       2   *     ⁢     T   prop       +     T   proc_ack     +       P   ack     ⁢     T   link_to       +       P     burst_bit   ⁢   _err       ⁢     T   link_resync                   
Here, we also have to consider the impact of K, which is a very important variable in the queuing theory. Let&#39;s assume P S     rq     =k  is the probability of receive queue size equaling a number K when the receiver gets the (w+1)th erroneous packet. Using continuous queuing model,
 
             P       S   rq     =   K       =     {         1         K   =     S   exp_rq               0       otherwise                 
The calculation of S exp     —     rq  is as follows:
   S   exp     —     rq   =ceiling (( w+ 1)( T   r   −T   s )/ T   r )     If S exp     —     rq &lt;0, then S exp     —     rq =1;   If S exp     —     rq &gt;N−1, then S exp     —     rq =N−1;
 
So considering the difference probability of K, the throughput, D, equation becomes:
   
           D   =       ∑     w   =   0     ∞     ⁢           ⁢       ∑     K   =   1     N     ⁢           ⁢           w   ⁡     (     1   -   P     )       w     ⁢     P   *     ⁢     P       S   rq     =   K               (     w   +   1     )     ⁢     T   s       +     KT   r     +     T   recovery     +     T   ack     +       2   *     ⁢     T   prop       +     T   proc_ack     +       P   ack     ⁢     T   link_to       +       P     burst_bit   ⁢   _err       ⁢     T   link_resync                     
Eq. 1
 
where, as noted above, D is the normalized system throughput. For the SRIO protocol, the following parameters are the constants:
     l sop =30, l eop =30, l pkt =2760 for the maximum packet size, l ack =30, N=16.
 
All other parameters could be considered as variables.
   
   Depending on the definition of burst bit errors that brings link down, P burst     —     bit     —     err  could be described as below: 
             P     burst_bit   ⁢   _err       =     1   -       (     1   -   BER     )     L     -       L   *     ⁢         BER   *     ⁡     (     1   -   BER     )         L   -   1         -           L   *     ⁡     (     L   -   1     )       2     ⁢         BER         2   *             *     ⁡     (     1   -   BER     )         L   -   2                 
where L=2560 which represents 256 code groups in sRIO protocol.
 
   However, in the real system, once the first bit error happens, it is more likely the second one will happen. The same thing applies to the third bit error when the first and the second bit error happen. Therefore, in order to simplify the problem, we consider the following equation for calculating the burst bit error probability:
 
 P   burst     —     bit     —     err =1−(1− BER ) L 
 
This means that one bit error definitely causes a burst of bit errors during 256 code groups.
 
   Thus, a simple closed form equation (Eq 1), shown in  FIG. 2  is derived for the throughput, D, of SRIO using a mathematical approach, namely the concept of window transmission time. The simple formula is easier to compute and allows better understanding of the throughput. For example, as noted above and referring to  FIG. 2 , it is noted that the calculated throughput, D, for the system is relatively flat as a function of BER until the knee-like region  15  of the function is reached after which the throughput decreases relatively rapidly with increasing BER. Thus, from such generated function, an optimal BER is established proximate the inflection point of the knee-like region  15  typically for safety, at a BER slightly less than the lower BER range of the knee-like region  15  or based on a desired percentage of the throughput ratio, D/D max . 
   Referring now to  FIG. 4 , a flow chart of the process described above is shown, the terms used in the chart having been defined in Table I above. 
   The process begins with Step set equal to zero, block  100 . Next, as shown in block  102 , the user selects the number of Steps, Step total , desired in the iterative process used to generate the function shown in  FIG. 2 , and the range of BERs over which the function is to be generated (i.e., a minimum BER, BER min , and a maximum BER, BER max ). 
   Next, a calculation is made of ΔlogBER where: 
   
     
       
         
           
             Δ 
             ⁢ 
             
                 
             
             ⁢ 
             log 
             ⁢ 
             
                 
             
             ⁢ 
             BER 
           
           = 
           
             
               
                 
                   log 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     BER 
                     max 
                   
                 
                 - 
                 
                   log 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     BER 
                     min 
                   
                 
               
               
                 Step 
                 total 
               
             
             = 
             
               
                 10 
                 100 
               
               = 
               0.1 
             
           
         
       
     
   
   More particularly, since the process using simulation to get the fraction point of the throughput, D, vs. logBER curve ( FIG. 2 ) and get an idea at which point throughput will reduce dramatically, the user must first decide how many steps, Step total , are to be used in the simulation. The user must also select the range over which the BER will be simulated, that is, BER max  and BER min . Here, in this example, Step total =100, BER max =10 −2  and BER min =10 −12 . Using the following equation, 
             Δ   ⁢           ⁢   log   ⁢           ⁢   BER     =           log   ⁢           ⁢     BER   max       -     log   ⁢           ⁢     BER   min           Step   total       =       10   100     =   0.1             
Thus, the step length of logBER for the simulation is calculated. It is a constant. Also, the total receive buffer size, N, is determined, here in this example, N=16 and is also a constant in the simulation. The following table gives the BER current  values at some selected steps. It is calculated based on:
   BER   current   =BER   min *10 ΔlogBer*Step   
   
     
       
             
             
             
           
             
             
             
           
             
             
             
           
         
             
                 
                 
             
             
                 
               Step 
               BER current   
             
             
                 
                 
             
           
           
             
                 
             
           
        
         
             
                 
               0 
                 1E−12 
             
             
                 
               1 
               1.26E−12 
             
             
                 
               2 
               1.58E−12 
             
             
                 
               3 
                 2E−12 
             
             
                 
               4 
               2.51E−12 
             
             
                 
               5 
               3.16E−12 
             
             
                 
               6 
               3.98E−12 
             
             
                 
               7 
               5.01E−12 
             
             
                 
               8 
               6.31E−12 
             
             
                 
               9 
               7.94E−12 
             
             
                 
               10 
                 1E−11 
             
           
        
         
             
                 
               . 
               . 
             
             
                 
               . 
               . 
             
             
                 
               . 
               . 
             
             
                 
                 
             
           
        
       
     
   
   The user must also specify parameters characteristic of the type of protocol used by the communication system. More particular, as shown in block  105 , the user must specify:
     T s , T r , T recovery , T prop , T proc     —     ack , T link     —     to , T link     —     resync      

   Calculation of Packet Related Probabilities, Burst Error Probability and Whole Packet Error Probability, Block  108   
   In response to the user inputs, the process calculates packet related error probabilities: P sop , P pkt  P eop , P ack , burst error probability, P burst     —     bit     —     err  and the whole packet probability error. 
   More particularly, in block  108  the following:
     P sop , P pkt  P eop , P ack , P burst     —     bit     —     err  and P based on BER current      

   More particularly, the process calculates packet related error probabilities: P sop , P pkt  P eop , P ack , as follows: 
   It is first noted that some packet related error probabilities are calculated based on BER current . After BER current  calculation from the previous step, now the error probabilities of packet delimiters and packet itself are calculated, which includes P sop , P eop , P pkt  and P ack . The total receiver buffer size N=16 and is a constant in the simulation. Same Step total  and BER min  and BER max  are applied, which are:
 
Step total =100
 
BER max =10 −2 
 
BER min =10 −12 
 
             Δ   ⁢           ⁢   log   ⁢           ⁢   BER     =           log   ⁢           ⁢     BER   max       -     log   ⁢           ⁢     BER   min           Step   total       =       10   100     =   0.1             
The following table gives the values of P sop , P pkt , P eop  and P ack , based on the current BER value, where
   P   sop =1−(1− BER   current ) l     sop   ,         l sop  is the length of packet delimiter (start of packet symbol).
 
 P   eop =1−(1− BER   current ) l     eop   ,
   l eop  is the length of packet delimiter (end of packet symbol).
 
 P   pkt =1−(1− BER   current ) l     pkt   ,
   l pkt  is the packet length.
 
 P   ack =1−(1− BER   current ) l     ack   ,
   l ack  is the acknowledge symbol length.       
   
     
       
             
             
             
             
             
           
         
             
                 
             
             
               BER current   
               P sop   
               P eop   
               P pkt   
               P ack   
             
             
                 
             
           
           
             
                 1E−12 
                 3E−11 
                 3E−11 
               2.76E−09 
                 3E−11 
             
             
               1.26E−12 
               3.78E−11 
               3.78E−11 
               3.47E−09 
               3.78E−11 
             
             
               1.58E−12 
               4.75E−11 
               4.75E−11 
               4.37E−09 
               4.75E−11 
             
             
                 2E−12 
               5.99E−11 
               5.99E−11 
               5.51E−09 
               5.99E−11 
             
             
               2.51E−12 
               7.54E−11 
               7.54E−11 
               6.93E−09 
               7.54E−11 
             
             
               3.16E−12 
               9.49E−11 
               9.49E−11 
               8.73E−09 
               9.49E−11 
             
             
               3.98E−12 
               1.19E−10 
               1.19E−10 
                1.1E−08 
               1.19E−10 
             
             
               5.01E−12 
                1.5E−10 
                1.5E−10 
               1.38E−08 
                1.5E−10 
             
             
               6.31E−12 
               1.89E−10 
               1.89E−10 
               1.74E−08 
               1.89E−10 
             
             
               7.94E−12 
               2.38E−10 
               2.38E−10 
               2.19E−08 
               2.38E−10 
             
             
                 1E−11 
                 3E−10 
                 3E−10 
               2.76E−08 
                 3E−10 
             
             
               1.26E−11 
               3.78E−10 
               3.78E−10 
               3.47E−08 
               3.78E−10 
             
             
               1.58E−11 
               4.75E−10 
               4.75E−10 
               4.37E−08 
               4.75E−10 
             
             
                 2E−11 
               5.99E−10 
               5.99E−10 
               5.51E−08 
               5.99E−10 
             
             
               . 
               . 
               . 
               . 
               . 
             
             
               . 
               . 
               . 
               . 
               . 
             
             
               . 
               . 
               . 
               . 
               . 
             
             
                 
             
           
        
       
     
       
       P sop , P pkt , P eop , P ack , P burst     —     bit     —     err  and P based on BER current    
     
  
   The process calculates burst error probability and the whole packet probability error, P burst     —     bit     —     err  and P, respectively, as follows: 
   It is first noted that the burst error probability and the whole packet error probability are calculated based on BER current . As before, the total receiver buffer size N=16, the total simulation steps Step total =100, the maximum BER in the simulation BER max =10 −2  and the minimum BER BER max =10 −12 . Based on those numbers, the process determines: 
             Δ   ⁢           ⁢   log   ⁢           ⁢   BER     =           log   ⁢           ⁢     BER   max       -     log   ⁢           ⁢     BER   min           Step   total       =       10   100     =   0.1             
Then:
   BER   current   =BER   min *10 ΔlogBER*Step   
             P     burst_bit   ⁢   _err       =     1   -       (     1   -   BER     )     L     -       L   *     ⁢         BER   *     ⁡     (     1   -   BER     )         L   -   1         -           L   *     ⁡     (     L   -   1     )       2     ⁢         BER         2   *             *     ⁡     (     1   -   BER     )         L   -   2                 
In the above question, L=2560 represents 256 code groups in RIO serial link.
   P= 1−(1− P   sop )(1− P   pkt )(1− P   eop ) 
While
   P   sop =1−(1− BER   current ) l     sop       P   eop =1−(1− BER   current ) l     eop       P   pkt =1−(1− BER   current ) l     pkt     
The following table gives the values of BER, burst error probability and the whole packet probability at some selected steps.
 
   
     
       
             
             
             
             
             
           
         
             
                 
                 
             
             
                 
               Step 
               BER current   
               P burst     —     err     —     prob   
               P 
             
             
                 
                 
             
           
           
             
                 
               0 
                 1E−12 
               2.76E−09 
               2.82E−09 
             
             
                 
               1 
               1.26E−12 
               3.47E−09 
               0.001017 
             
             
                 
               2 
               1.58E−12 
               4.37E−09 
               0.001334 
             
             
                 
               3 
                 2E−12 
               5.51E−09 
               0.001713 
             
             
                 
               4 
               2.51E−12 
               6.93E−09 
               0.002281 
             
             
                 
               5 
               3.16E−12 
               8.73E−09 
               0.002712 
             
             
                 
               6 
               3.98E−12 
                1.1E−08 
               0.003347 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
                 
             
           
        
       
     
   
   Calculation of Throughput as a Function of BER, Block  118   
   The whole simulation consists of three loops. The most outer loop, block  120 , changes BER from BER min  to BER max . The middle loop, block  118 , increments w from 0 to infinity (practically a very big integer) and the most inner loop, block  116 , increments K from 1 to the maximum receive buffer size N. Throughput D for each BER is calculated in the middle loop,  116 . 
   The mathematical equation is shown as follows: 
   
     
       
         
           D 
           = 
           
             
               
                 ∑ 
                 
                   w 
                   = 
                   0 
                 
                 ∞ 
               
               ⁢ 
               
                   
               
               ⁢ 
               
                 
                   ∑ 
                   
                     K 
                     = 
                     1 
                   
                   N 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     
                       
                         w 
                         ⁡ 
                         
                           ( 
                           
                             1 
                             - 
                             P 
                           
                           ) 
                         
                       
                       w 
                     
                     ⁢ 
                     
                       P 
                       * 
                     
                     ⁢ 
                     
                       P 
                       
                         
                           S 
                           rq 
                         
                         = 
                         K 
                       
                     
                   
                   
                     
                       
                         ( 
                         
                           w 
                           + 
                           1 
                         
                         ) 
                       
                       ⁢ 
                       
                         T 
                         S 
                       
                     
                     + 
                     
                       KT 
                       r 
                     
                     + 
                     
                       T 
                       recovery 
                     
                     + 
                     
                       T 
                       ack 
                     
                     + 
                     
                       
                         2 
                         * 
                       
                       ⁢ 
                       
                         T 
                         prop 
                       
                     
                     + 
                     
                       T 
                       proc_ack 
                     
                     + 
                     
                       
                         P 
                         ack 
                       
                       ⁢ 
                       
                         T 
                         link_to 
                       
                     
                     + 
                     
                       
                         P 
                         
                           burst_bit 
                           ⁢ 
                           _err 
                         
                       
                       ⁢ 
                       
                         T 
                         link_resync 
                       
                     
                   
                 
               
             
             = 
             
               
                 
                   ∑ 
                   
                     w 
                     = 
                     0 
                   
                   ∞ 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   D 
                   ′ 
                 
               
               = 
               
                 
                   ∑ 
                   
                     w 
                     = 
                     0 
                   
                   ∞ 
                 
                 ⁢ 
                 
                     
                 
                 ⁢ 
                 
                   
                     ∑ 
                     
                       K 
                       = 
                       1 
                     
                     N 
                   
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   
                     
                       
                         P 
                         effective 
                       
                       * 
                       
                         P 
                         
                           
                             S 
                             rq 
                           
                           = 
                           K 
                         
                       
                     
                     
                       T 
                       w 
                     
                   
                 
               
             
           
         
       
     
   
   Thus, having calculated the packet related error probabilities: P sop , P pkt , P eop , P ack , burst error probability, P burst     —     bit     —     err  and the whole packet probability error P, as described above, the process sets w equal to 0, and D equal to 0, block  109  and the middle loop is performed as follows: 
   The process calculates S exp     —     rq (w) and P effective (w), block  110 , as follows:
 
 P   effective   =w *(1− P ) w   P 
 
 S   exp     —     rq   =ceiling (( w+ 1)( T   r   −T   s )/ T   r );
 
   The process sets K−1 and D′=0, block  111 ; and 
   The process performs the inner loop  116  as follows: 
   Block  112 : The process calculates P Srq=k  and T w  based on K and S exp     —     rq . More particularly, In this box, the probability of receive queue size equaling to K and the effective packet transferring time of the window T w  are calculated based on the value of K and the expected receive queue size S exp     —     rq . Here
 
w=10
 
 P   effective   =w *(1− P ) w   P 
 
 S   exp     —     rq   =ceiling (( w+ 1)( T   r   −T   s )/ T   r )
 
Where
 
             T   w     =         (     w   +   1     )     ⁢     T   s       +     KT   r     +     T   recovery     +     T   ack     +       2   *     ⁢     T   prop       +     T   proc_ack     +       P   ack     ⁢     T   link_to       +       P     burst_bit   ⁢   _err       ⁢     T   link_resync                       P       S   rq     =   K       =     {         1         K   =     S   exp_rq               0       otherwise                 
Here
     T s =1, T r =0.9, T recovery =2, T ack =1, T prop =0.5, T proc     —     ack =1, T link     —to   =10, T link     —     resync =1000.   
   The following table shows the values of T w  and P Srq=k  when w=10 at BER current =10 −10  and Step=20. From the flow chart, we could see that K is incremented from 1 to 16 at a fixed w (here w=10) value. The sum of P Srq=k  when K is from 1 to 16 should equal to 1. 
   P effective *P S     rq     =K /T w  is the D′ value at each K since 
   
     
       
         
           
             D 
             ′ 
           
           = 
           
             
               ∑ 
               
                 K 
                 = 
                 1 
               
               N 
             
             ⁢ 
             
                 
             
             ⁢ 
             
               
                 
                   
                     P 
                     effective 
                   
                   ⁢ 
                   
                     P 
                     
                       
                         S 
                         rq 
                       
                       = 
                       K 
                     
                       
                       
                       
                     * 
                   
                 
                 
                   T 
                   w 
                 
               
               . 
             
           
         
       
     
   
   
     
       
             
             
             
             
             
           
         
             
                 
                 
             
             
                 
               K 
               T w   
               P Srq=k   
               P effective  * P S     eq     =K /T w   
             
             
                 
                 
             
           
           
             
                 
               1 
               16.90028 
               1 
               1.67E−07 
             
             
                 
               2 
               17.80028 
               0 
               1.67E−07 
             
             
                 
               3 
               18.70028 
               0 
               1.67E−07 
             
             
                 
               4 
               19.60028 
               0 
               1.67E−07 
             
             
                 
               5 
               20.50028 
               0 
               1.67E−07 
             
             
                 
               6 
               21.40028 
               0 
               1.67E−07 
             
             
                 
               7 
               22.30028 
               0 
               1.67E−07 
             
             
                 
               8 
               23.20028 
               0 
               1.67E−07 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
                 
             
           
        
       
     
   
   It is noted that P effective  is the total effective packets transferred in the window, S exp     —     rq  is expected receive queue size and D′ is throughput change at each step during the simulation. The equations for calculating those parameters are show as follows:
 
 P   effective   =w *(1− P ) w   P 
 
 S   exp     —     rq   =ceiling (( w+ 1)( T   r   −T   s )/ T   r )
 
             D   ′     =       ∑     K   =   1     N     ⁢           ⁢         P   effective     ⁢     P       S   rq     =   K                 *         T   w               
While
   T   w =( w+ 1) T   s   +KT   r   +T   re cov ery   +T   ack +2* T   prop   +T   proc     —     ack   +P   ack   T   link     —     to   +P   burst     —     bit     —     err   T   link     —     resync   T   s =1, T   r =0.9, T   re cov ery =2, T   ack =1, T   prop =0.5, T   proc     —     ack =1, T   link     —     to =10, T   link     —     resync =1000 
   The following table shows the values of those parameters at different values of w when BER current =10 −10  at Step=20. From the flow chart, we could see that w is incremented from 0 to a very big number (it is infinity in the algorithm). 
   
     
       
             
             
             
             
             
           
             
             
             
             
             
           
             
             
             
             
             
           
         
             
                 
                 
             
             
                 
               w 
               S exp     —     rg (W) 
               P effective (W) 
               D′ 
             
             
                 
                 
             
           
           
             
                 
             
           
        
         
             
                 
               1 
               1 
               2.82E−07 
               3.57E−08 
             
             
                 
               10 
               1 
               2.82E−06 
               1.67E−07 
             
             
                 
               100 
               1 
               2.82E−05 
               2.64E−07 
             
             
                 
               1000 
               1 
               0.000282 
                2.8E−07 
             
             
                 
               10000 
               1 
               0.002812 
               2.81E−07 
             
             
                 
               100000 
               1 
               0.027416 
               2.74E−07 
             
             
                 
               1000000 
               1 
               0.212705 
               2.13E−07 
             
             
                 
               10000000 
               1 
               0.168089 
               1.68E−08 
             
           
        
         
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
               . 
               . 
               . 
               . 
             
             
                 
                 
             
           
        
       
     
   
   Having calculated calculates P Srq=k  and T w  based on K and S exp     —     rq , the process completes loop  116  by next calculating D′=D′+P effective *P Srq=k /T w . Then setting K=K+1 and determining whether K&gt;N. If not, the process returns to block  112 . The loop  116  continues until K is greater than N. 
   Upon completion of the inner loop  116 , the process performs the middle loop  118 . Thus, D is equal to D+D′ and w is equal to w+1. 
   Next the process determines whether w is greater than, in this example 10 12  or D′ is less than 10 −12 . It should be noted that in this simulation, we could not use infinity, which is impractical, so we have to establish a way to replace infinity. Based on the minimal BER selected, we could choose the maximal w that we would calculate up to or if D′ (change of D) is very small, then we could stop simulation for this step. If one of these conditions is not met, the middle loop  116  continues and the process returns to block  110 ; on the other hand, if either condition is true, the process outputs the throughput D per BER current  to a file, block  118 ; and the step is incremented Step=Step+1. 
   The outer loop  120  continues, i.e., the process returns to block  106  until Step is greater than Step total . 
   Upon completion of the outer loop  120 , the process draws a curve of throughput as a function of BER based on the data from the file, i.e., from block  118 ′ (block  122 ), an exemplary curve being shown in  FIG. 2 . For example, referring to  FIG. 2 , it is noted that the calculated throughput for the system is relatively flat as a function of BER until a knee of the function is reached after which the throughput decreases relatively rapidly with increasing BER. Thus, from such generated function, a BER is established proximate the knee typically for safety, at a BER slightly less than the lower BER range of the knee. Here, the point X is selected as the desired BER for the exemplary system. 
   A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.