Abstract:
A parallel-to-serial conversion method for IBMA in a Reed Solomon decoder is used for obtaining discrepancies in IBMA iterations, thereby acquiring an error location polynomial and an error value polynomial. Syndrome sequences for the calculation of discrepancies in IBMA iterations have a fixed length. The number of syndromes is t+1, where t is the largest number of symbols that can be corrected of the error location polynomial. The feature that syndrome sequences have the same length is based on the fact that the discrepancies are not affected if the coefficients of polynomial orders of the error location polynomial are zero.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    (A) Field of the Invention 
         [0002]    The present invention is related to a Reed Solomon decoder and Inversionless Berlekamp-Massey Algorithm (IBMA) and parallel-to-serial conversion method thereof. 
         [0003]    (B) Description of the Related Art 
         [0004]    Error correction codes (ECC) are in wide use, with respect to current general applications. For example, consumer electronics using high speed digital communications, optic disc storage and high resolution television all use Reed Solomon decoders. 
         [0005]    Nowadays, there are many transmission technologies and equipment that are widely used, and transmission rates have increased from 56 Kbps to several gigabytes per second. However, noise interference may occur during signal transmission, resulting in data receiving errors. Therefore, receiving equipment should be simple, popular and have high efficiency error correction capability to correct transmission errors due to channel noises. 
         [0006]    U.S. Pat. No. 6,286,123 B1 disclosed a Berlekamp-Massey Algorithm (BMA) in which a parallel-to-serial interface directly uses multiplexers as interfaces. However, control signals are more complicated and divisional operation devices are needed in BMA architecture. 
         [0007]    In U.S. Pat. Nos. 6,317,858 B1 and 6,539,516 B2, although the parallel-to-serial interface of IBMA architecture is changed to be of serial entering, it has less regularity and the error value polynomial is calculated after the error location polynomial is obtained. 
         [0008]    A parallel-to-serial interface and an IBMA architecture are compared as follows.  FIG. 1  illustrates a traditional Reed Solomon decoder  10  including a syndrome calculator  11 , a parallel-to-serial (PS) interface  12 , an IBMA apparatus  13 , a key equation solver  14 , a serial-to-parallel (SP) interface  15 , a Chien search device  16  (error location) and a Chien search device  17  (error value), a first-in-first-out (FIFO) circuit  18  and a Forney algorithm device  19 . The syndrome calculator  11  receives messages r(x) from a receiving end and calculates syndromes. The syndromes are transmitted to the IBMA apparatus  13  through the parallel-to-serial interface  12 . The IBMA apparatus  13  generates an error location polynomial Λ(x) based on the syndromes. The key equation solver  14  generates an error value polynomial Ω(x) based on the syndromes and Λ(x). Λ(x) and Ω(x) are transmitted to the Chien search devices  16  and  17  through the serial-to-parallel interface  15  to solve error locations and the Forney algorithm device  19  calculates error values. r(x) is registered in the FIFO circuit  18  and corrected by the error values obtained by the Forney algorithm device  19 , so as to obtain messages c(x) at the end of the transmission. 
         [0009]    Accordingly, there are problems with the error value polynomial Ω(x) being obtained after the error location polynomial Λ(x) is obtained, and the parallel-to-serial interface has less regularity. 
         [0010]      FIG. 2  illustrates a traditional parallel-to-serial interface using multiplexers. The parallel-to-serial interface includes  16  syndrome cells  22  and a multiplexer  21 . The corresponding syndrome sequences are shown in Table 1. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                 Δ (i)   
                 Syndrome sequences 
               
               
                   
                   
               
             
             
               
                   
                 i = 0 
                 S 1   
               
               
                   
                 i = 1 
                 S 2 , S 1   
               
               
                   
                 i = 2 
                 S 3 , S 2 , S 1   
               
               
                   
                 i = 3 
                 S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 4 
                 S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 5 
                 S 6 , S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 6 
                 S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 7 
                 S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 8 
                 S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 9 
                 S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2   
               
               
                   
                 i = 10 
                 S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3   
               
               
                   
                 i = 11 
                 S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4   
               
               
                   
                 i = 12 
                 S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5   
               
               
                   
                 i = 13 
                 S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6   
               
               
                   
                 i = 14 
                 S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7   
               
               
                   
                 i = 15 
                 S 16 , S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8   
               
               
                   
                   
               
             
          
         
       
     
         [0011]    The IBMA algorithm is a modification from BMA algorithm, with a view to decreasing hardware complexity, in which divisional operation in BMA is replaced with a non-divisional operation and a multiple of the original polynomial is obtained. According to features of Galois Field, the same root can be solved. This algorithm is used for obtaining the error location polynomial Λ(x). The IBMA architecture and calculation are exemplified as follows. 
         [0012]    Initial conditions: 
         [0000]    
       
         
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 D (−1)  32  0 
                 δ= 1 
               
               
                   
                 Λ (−1) (x) = 1 
                 T (−1) (x) = 1 
               
               
                   
                 Δ (0)  = S 1   
               
             
          
           
               
                   
                 For i=0 to 2t−1 
               
               
                   
                 { 
               
               
                   
                 Δ (i+1)  = S i+2  * Λ 0   (i)  + S i+1  *Λ 1   (i)  +...+S i−vi+2  *Λ vi   (i)   
               
               
                   
                 If Δ (i)  =0 or 2D (i−1)  ≧ i+1 
               
               
                   
                   D (i)  = D (i+1)   
               
               
                   
                   T (i) (x) = x * T (i−1) (x) 
               
               
                   
                   δ = δ 
               
               
                   
                   Λ (i) (x) = Λ (i−1) (x) 
               
               
                   
                 Else 
               
               
                   
                   D (i)  = i+1−D (i−1)   
               
               
                   
                   T (i) (x) = Λ (i−1) (x) 
               
               
                   
                   δ = Δ (i)   
               
               
                   
                   Λ (i) (x) =δ * Λ (i−1) (x) +δ (i)  * x * T (i−1) (x) 
               
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
         [0000]      Ω( x )mod  x   2t   =S ( x )*Λ (2t) ( x ) 
         [0013]    where
       Λ (i) (x) is the error location polynomial at ith iteration   Λ j   (i) (x) is coefficients of orders of Λ (i) (x)
           j is x order   Δ (i)  is discrepancy of ith iteration   δ is discrepancy of T (i) (x) with corrected iteration   T (i) (x) is an auxiliary polynomial   D (i)  is the highest order of the auxiliary polynomial   S(x) is syndrome array S 1 ˜S 2t      Ω(x) is a key equation   
               
 
         [0023]      FIG. 3  illustrates a traditional IBMA apparatus  30 , and  FIG. 4  illustrates the architecture for calculation of a key equation based on the architecture shown in  FIG. 3 . The IBMA apparatus  30  comprises multipliers  31 ,  40  and  41 , buffers  32  and  37 , adders  33  and  39 , multiplexers  35  and  43  and registers  34 ,  36 ,  38 ,  42  and  44 . 
         [0024]    In order to obtain higher regularity and lower hardware complexity, the separated IBMA algorithm can implement serial input data sequences as shown in Table 1. The error location polynomial and the key equation (error value polynomial) after separation are listed in Table 2. 
         [0000]    
       
         
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 Error location polynomial 
                 Key equation 
               
               
                   
               
             
             
               
                 Λ (i) (x) = Λ 0   (i)  + Λ 1   (i) x + . . . + Λ vi   (i) x vi   
                 
                   
                     
                       
                         
                           
                             
                               
                                 Ω 
                                  
                                 
                                   ( 
                                   x 
                                   ) 
                                 
                               
                               = 
                                 
                                
                               
                                 
                                   S 
                                    
                                   
                                     ( 
                                     x 
                                     ) 
                                   
                                 
                                  
                                 
                                   Λ 
                                    
                                   
                                     ( 
                                     x 
                                     ) 
                                   
                                 
                                  
                                 
                                     
                                 
                                  
                                 mod 
                                  
                                 
                                     
                                 
                                  
                                 
                                   x 
                                   
                                     2 
                                      
                                     t 
                                   
                                 
                               
                             
                           
                         
                         
                           
                             
                               ≅ 
                                 
                                
                               
                                 
                                   Ω 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                                 + 
                                 
                                   
                                     Ω 
                                     
                                       ( 
                                       1 
                                       ) 
                                     
                                   
                                    
                                   x 
                                 
                                 + 
                                 
                                   … 
                                    
                                   
                                       
                                   
                                    
                                   
                                     Ω 
                                     
                                       ( 
                                       
                                         v 
                                         - 
                                         1 
                                       
                                       ) 
                                     
                                   
                                    
                                   
                                     x 
                                     
                                       v 
                                       - 
                                       1 
                                     
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 
                   
                     
                       
                         
                           Λ 
                           j 
                           
                             ( 
                             i 
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   
                                     δ 
                                     * 
                                     
                                       Λ 
                                       0 
                                       
                                         ( 
                                         
                                           i 
                                           - 
                                           1 
                                         
                                         ) 
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   j 
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     
                                       δ 
                                       * 
                                       
                                         Λ 
                                         j 
                                         
                                           ( 
                                           
                                             i 
                                             - 
                                             1 
                                           
                                           ) 
                                         
                                       
                                     
                                     + 
                                     
                                       
                                         Δ 
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                        
                                       
                                         T 
                                         
                                           j 
                                           - 
                                           1 
                                         
                                         
                                           ( 
                                           
                                             i 
                                             - 
                                             1 
                                           
                                           ) 
                                         
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   1 
                                   ≤ 
                                   j 
                                   ≤ 
                                   vi 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 Ω (i)  = S i+1 Λ 0  + S i Λ 1  + . . . + S 1 Λ i   
               
               
                   
               
               
                 
                   
                     
                       
                         
                           Δ 
                           
                             ( 
                             
                               i 
                               + 
                               1 
                             
                             ) 
                           
                         
                         = 
                         
                           
                             ∑ 
                             
                               j 
                               = 
                               0 
                             
                             vi 
                           
                            
                           
                               
                           
                            
                           
                             Δ 
                             j 
                             
                               ( 
                               
                                 i 
                                 + 
                                 1 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           Ω 
                           j 
                           
                             ( 
                             i 
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   
                                     S 
                                     
                                       i 
                                       + 
                                       1 
                                     
                                   
                                    
                                   
                                     Λ 
                                     0 
                                   
                                 
                               
                               
                                 
                                   
                                     for 
                                      
                                     
                                         
                                     
                                      
                                     i 
                                   
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     Ω 
                                     
                                       j 
                                       - 
                                       1 
                                     
                                     
                                       ( 
                                       i 
                                       ) 
                                     
                                   
                                   + 
                                   
                                     
                                       S 
                                       
                                         i 
                                         - 
                                         j 
                                         + 
                                         1 
                                       
                                     
                                      
                                     
                                       Λ 
                                       j 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     for 
                                      
                                     
                                         
                                     
                                      
                                     1 
                                   
                                   ≤ 
                                   j 
                                   ≤ 
                                   i 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 
                   
                     
                       
                         
                           Δ 
                           j 
                           
                             ( 
                             
                               i 
                               + 
                               1 
                             
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   0 
                                   , 
                                 
                               
                               
                                 
                                   j 
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     
                                       Δ 
                                       
                                         j 
                                         - 
                                         1 
                                       
                                       
                                         ( 
                                         
                                           i 
                                           + 
                                           1 
                                         
                                         ) 
                                       
                                     
                                     + 
                                     
                                       
                                         S 
                                         
                                           i 
                                           - 
                                           j 
                                           + 
                                           3 
                                         
                                       
                                       * 
                                       
                                         Λ 
                                         
                                           j 
                                           - 
                                           1 
                                         
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   1 
                                   ≤ 
                                   j 
                                   ≤ 
                                   vi 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0025]    As shown in Table 2, the error value polynomial Ω(x) is derived based on the error location polynomial Λ(x). In other words, Λ(x) is obtained first so as to obtain Ω(x). Moreover, as mentioned above, the parallel-to-serial interface has less regularity, so there still remains room for improvement. 
       SUMMARY OF THE INVENTION 
       [0026]    Traditional parallel-to-serial interfaces are limited to the use of multiplexers. Therefore, an IBMA method and the related parallel-to-serial conversion method applied in the Reed Solomon decoder are disclosed in this invention, so as to increase throughput of the Reed Solomon decoder and decrease design and production costs. 
         [0027]    A parallel-to-serial conversion method for IBMA in the Reed Solomon decoder is used for obtaining discrepancies in IBMA iterations, thereby acquiring an error location polynomial and an error value polynomial. Syndrome sequences for the calculation of discrepancies in IBMA iterations have fixed lengths, i.e., same lengths or the same number of syndromes. The number of syndromes is t+1, where t is the largest number of symbols that can be corrected of the error location polynomial. The feature that the syndrome sequences have the same lengths is based on the fact that the discrepancies are not affected if the coefficients of orders of the error location polynomial are zero. 
         [0028]    The IBMA algorithm of the Reed Solomon decoder in accordance with the present invention is to derive discrepancies in IBMA iterations based on syndrome sequences, and the error location polynomial and error value polynomial are simultaneously obtained based on the discrepancies. 
         [0029]    The Reed Solomon decoder of the present invention comprises a parallel-to-serial interface and an IBMA apparatus. The IBMA apparatus is coupled to an output end of the parallel-to-serial interface and comprises an error location polynomial solver configured to calculate an error location polynomial and an error value polynomial solver connected to an output end of discrepancies of the error location polynomial solver, so as to obtain an error value polynomial based on the discrepancies. The error location polynomial and the error value polynomial are obtained simultaneously. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0030]      FIG. 1  illustrates a known Reed Solomon decoder; 
           [0031]      FIG. 2  illustrates a known parallel-to-serial interface corresponding to the IBMA architecture of Reed Solomon decoder; 
           [0032]      FIG. 3  illustrates a known IBMA architecture of the Reed Solomon decoder; 
           [0033]      FIG. 4  illustrates architecture for the calculation of the key equation based on architecture of  FIG. 3 ; 
           [0034]      FIG. 5  illustrates an operation block diagram of the Reed Solomon decoder of the present invention; 
           [0035]      FIG. 6  illustrates a block diagram of the Reed Solomon decoder of the present invention; 
           [0036]      FIG. 7  illustrates a parallel-to-serial interface of the Reed Solomon decoder using IBMA architecture in accordance with the present invention; 
           [0037]      FIG. 8  illustrates a schematic diagram of IBMA architecture of the Reed Solomon decoder in accordance with the present invention; and 
           [0038]      FIG. 9  is an IBMA algorithm flow chart of the Reed Solomon decoder in accordance with the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0039]    The present invention will be explained with the appended drawings to clearly disclose the technical characteristics of the present invention. 
         [0040]      FIG. 5  is a function block diagram of a Reed Solomon decoder in accordance with the present invention, including syndrome computation  51 , IBMA algorithm  52 , Chien search  53  and Forney algorithm  54 . Syndrome computation  51  finds syndromes including information of error location and error value for separation of error location information and error value information in the IBMA algorithm  52 . The separated data are resolved through the Chien search  53  and the Forney algorithm  54  for correction of a message r(x) stored in a delay RAM  55 . r(x) is the received message, e(x) is channel noise, and c(x) is the transmission message. 
         [0041]      FIG. 6  illustrates a Reed Solomon decoder in accordance with the present invention, which is modified in response to problems of prior art, so as to obtain error location polynomial and error value polynomial simultaneously, and provides a parallel-to-serial interface with high regularity for better performance. A Reed Solomon decoder  60  includes a syndrome calculator  61 , a parallel-to-serial (PS) interface  62 , an IBMA apparatus  63 , a serial-to-parallel (SP) interface  64 , a Chien search device (error location)  65 , a Chien search device (error value)  66 , a first-in-first-out (FIFO) circuit  67  and a Forney algorithm device  68 . 
         [0042]    In comparison with the traditional Reed Solomon decoder  10  of  FIG. 1 , the Reed Solomon decoder  60  only needs an IBMA apparatus  63  to simultaneously acquire the error location polynomial and the error value polynomial. Moreover, the calculation of the parallel-to-serial interface  62  is also improved to decrease hardware complexity. 
         [0043]    An embodiment of the parallel-to-serial interface  62  is shown in  FIG. 7 , which comprises  16  serially connected syndrome cells  621 . Multiplexers are not needed in the parallel-to-serial interface  62 . The syndrome sequences are listed in Table 3, in which if X order of the polynomial is equal to zero, the corresponding syndrome values are not changed during iteration. Accordingly, the syndrome sequences are set to be of fixed length so as to acquire a parallel-to-serial interface with high regularity. 
         [0000]    
       
         
               
               
               
             
           
               
                   
                 TABLE 3 
               
               
                   
                   
               
               
                   
                 Δ (i)   
                 Syndrome Sequences 
               
               
                   
                   
               
             
             
               
                   
                 i = 0 
                 S 1 , S 16 , S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9   
               
               
                   
                 i = 1 
                 S 2 , S 1 , S 16 , S 15 , S 14 , S 13 , S 12 , S 11 , S 10   
               
               
                   
                 i = 2 
                 S 3 , S 2 , S 1 , S 16 , S 15 , S 14 , S 13 , S 12 , S 11   
               
               
                   
                 i = 3 
                 S 4 , S 3 , S 2 , S 1 , S 16 , S 15 , S 14 , S 13 , S 12   
               
               
                   
                 i = 4 
                 S 5 , S 4 , S 3 , S 2 , S 1 , S 16 , S 15 , S 14 , S 13   
               
               
                   
                 i = 5 
                 S 6 , S 5 , S 4 , S 3 , S 2 , S 1 , S 16 , S 15 , S 14   
               
               
                   
                 i = 6 
                 S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1 , S 16 , S 15   
               
               
                   
                 i = 7 
                 S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1 , S 16   
               
               
                   
                 i = 8 
                 S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2 , S 1   
               
               
                   
                 i = 9 
                 S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3 , S 2   
               
               
                   
                 i = 10 
                 S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3   
               
               
                   
                 i = 11 
                 S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4   
               
               
                   
                 i = 12 
                 S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5   
               
               
                   
                 i = 13 
                 S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6   
               
               
                   
                 i = 14 
                 S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7   
               
               
                   
                 i = 15 
                 S 16 , S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8   
               
               
                   
                   
               
             
          
         
       
     
         [0044]    The syndrome sequence includes syndromes of orders of the polynomial not equal to zero and syndromes of orders of the polynomial equal to zero in reverse order. In each iteration, the syndromes in the previous iteration are shifted right, the rightmost syndrome is removed, and a syndrome next to the leftmost syndrome in the previous iteration is added to the left of the syndrome sequence. Syndrome sequences shown in Table 3 are selected from a sequence of S 1 , S 16 , S 15 , S 14 , S 13 , S 12 , S 11 , S 10 , S 9 , S 8 , S 7 , S 6 , S 5 , S 4 , S 3  and S 2 . In each iteration, the rightmost syndrome of the sequence is moved to the far left side and the syndrome sequence includes the leftmost nine syndromes. 
         [0045]    In response to the change of the parallel-to-serial interface  62 , an IBMA algorithm is modified in accordance with the present invention. An IBMA algorithm is exemplified as follows. 
         [0046]    Initial condition: 
         [0000]    
       
         
               
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 D (−1)  = 0 
                 δ= 1 
                 β (−1) (x) = x −1   
               
               
                   
                 Λ (−1) (x) = 1 
                 T (−1) (x) = 1 
                 Ω (−1) (x) = 0 
               
               
                   
                 Δ (0)  = S 1   
               
             
          
           
               
                   
                 For i=0 to 2t−1 
               
               
                   
                 { 
               
               
                   
                 Δ (i+1)  = S i+2  * Λ 0   (i)  + S i+1  *Λ 1   (i)  +...+S i−vi+2  *Λ vi   (i)   
               
               
                   
                 If Δ (i)  =0 or 2D (i−1)  ≧ i+1 
               
               
                   
                   D (i)  = D (i+1)    δ = δ 
               
               
                   
                   T (i) (x) = x * T (i−1) (x) 
               
               
                   
                   β (i) (x) = x * β (i−1) (x) 
               
               
                   
                   Λ (i) (x) = Λ (i−1) (x) 
               
               
                   
                   Ω (i) (x) = Ω (i−1) (x) 
               
               
                   
                 Else 
               
               
                   
                   D (i)  = i+1−D (i−1)   δ = Δ (i)   
               
               
                   
                   T (i) (x) = Λ (i−1) (x) 
               
               
                   
                   β (i) (x) =Ω (i−1) (x) 
               
               
                   
                   Λ (i) (x) =δ * Λ (i−1) (x) +Δ (i) * x * T (i−1) (x) 
               
               
                   
                   Ω (i) (x) =δ * Ω (i−1) (x) +Δ (i) * x * β (i−1) (x) 
               
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
         [0047]    where
       Λ (i) (x) is the error location polynomial at the ith iteration   Λ j   (i) (x) is coefficients of orders of Λ (i) (x)   J is x order   Δ (i)  is the discrepancy at ith iteration   δ is the discrepancy of T (i) (x) with corrected iteration   T (i) (x) is an auxiliary polynomial of Λ(x) at the ith iteration.   D (i)  is the highest order of the auxiliary polynomial   S(x) is a syndrome array S 1 ˜S 2t      Ω(x) is a key equation   β (i) (x) is an auxiliary polynomial of Ω(x) at the ith iteration       
 
         [0058]    In order to have higher regularity and less complexity in hardware implementations, the serial input data sequence in the separated IBMA architecture is listed in Table 3, and the separated error location polynomial and key equation are shown in Table 4. 
         [0000]    
       
         
               
               
             
           
               
                 TABLE 4 
               
               
                   
               
               
                 Error location polynomial 
                 Key equation 
               
               
                   
               
             
             
               
                 Λ (i) (x) = Λ 0   (i)  + Λ 1   (i) x + . . . + Λ vi   (i) x vi   
                 
                   
                     
                       
                         
                           
                             
                               
                                 Ω 
                                  
                                 
                                   ( 
                                   x 
                                   ) 
                                 
                               
                               = 
                                 
                                
                               
                                 
                                   S 
                                    
                                   
                                     ( 
                                     x 
                                     ) 
                                   
                                 
                                  
                                 
                                   Λ 
                                    
                                   
                                     ( 
                                     x 
                                     ) 
                                   
                                 
                                  
                                 
                                     
                                 
                                  
                                 mod 
                                  
                                 
                                     
                                 
                                  
                                 
                                   x 
                                   
                                     2 
                                      
                                     t 
                                   
                                 
                               
                             
                           
                         
                         
                           
                             
                               ≅ 
                                 
                                
                               
                                 
                                   Ω 
                                   
                                     ( 
                                     0 
                                     ) 
                                   
                                 
                                 + 
                                 
                                   
                                     Ω 
                                     
                                       ( 
                                       1 
                                       ) 
                                     
                                   
                                    
                                   x 
                                 
                                 + 
                                 
                                   … 
                                    
                                   
                                       
                                   
                                    
                                   
                                     Ω 
                                     
                                       ( 
                                       
                                         v 
                                         - 
                                         1 
                                       
                                       ) 
                                     
                                   
                                    
                                   
                                     x 
                                     
                                       v 
                                       - 
                                       1 
                                     
                                   
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 
                   
                     
                       
                         
                           Λ 
                           j 
                           
                             ( 
                             i 
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   
                                     δ 
                                     * 
                                     
                                       Λ 
                                       0 
                                       
                                         ( 
                                         
                                           i 
                                           - 
                                           1 
                                         
                                         ) 
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   j 
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     
                                       δ 
                                       * 
                                       
                                         Λ 
                                         j 
                                         
                                           ( 
                                           
                                             i 
                                             - 
                                             1 
                                           
                                           ) 
                                         
                                       
                                     
                                     + 
                                     
                                       
                                         Δ 
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                        
                                       
                                         T 
                                         
                                           j 
                                           - 
                                           1 
                                         
                                         
                                           ( 
                                           
                                             i 
                                             - 
                                             1 
                                           
                                           ) 
                                         
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   1 
                                   ≤ 
                                   j 
                                   ≤ 
                                   vi 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           Ω 
                           j 
                           
                             ( 
                             i 
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   δ 
                                   * 
                                   
                                     Ω 
                                     0 
                                     
                                       ( 
                                       
                                         i 
                                         - 
                                         1 
                                       
                                       ) 
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     for 
                                      
                                     
                                         
                                     
                                      
                                     j 
                                   
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     δ 
                                     * 
                                     
                                       Ω 
                                       j 
                                       
                                         ( 
                                         
                                           i 
                                           - 
                                           1 
                                         
                                         ) 
                                       
                                     
                                   
                                   + 
                                   
                                     
                                       Δ 
                                       
                                         ( 
                                         i 
                                         ) 
                                       
                                     
                                      
                                     
                                       β 
                                       
                                         j 
                                         - 
                                         1 
                                       
                                       
                                         ( 
                                         
                                           i 
                                           - 
                                           1 
                                         
                                         ) 
                                       
                                     
                                   
                                 
                               
                               
                                 
                                   
                                     for 
                                      
                                     
                                         
                                     
                                      
                                     1 
                                   
                                   ≤ 
                                   j 
                                   ≤ 
                                   vi 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
               
                 
                   
                     
                       
                         
                           Δ 
                           
                             ( 
                             
                               i 
                               + 
                               1 
                             
                             ) 
                           
                         
                         = 
                         
                           
                             ∑ 
                             
                               j 
                               = 
                               0 
                             
                             vi 
                           
                            
                           
                               
                           
                            
                           
                             Δ 
                             j 
                             
                               ( 
                               
                                 i 
                                 + 
                                 1 
                               
                               ) 
                             
                           
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         
                           Δ 
                           j 
                           
                             ( 
                             
                               i 
                               + 
                               1 
                             
                             ) 
                           
                         
                         = 
                         
                           { 
                           
                             
                               
                                 
                                   0 
                                   , 
                                 
                               
                               
                                 
                                   j 
                                   = 
                                   0 
                                 
                               
                             
                             
                               
                                 
                                   
                                     
                                       Δ 
                                       
                                         j 
                                         - 
                                         1 
                                       
                                       
                                         ( 
                                         
                                           i 
                                           + 
                                           1 
                                         
                                         ) 
                                       
                                     
                                     + 
                                     
                                       
                                         S 
                                         
                                           i 
                                           - 
                                           j 
                                           + 
                                           3 
                                         
                                       
                                       * 
                                       
                                         Λ 
                                         
                                           j 
                                           - 
                                           1 
                                         
                                         
                                           ( 
                                           i 
                                           ) 
                                         
                                       
                                     
                                   
                                   , 
                                 
                               
                               
                                 
                                   1 
                                   ≤ 
                                   j 
                                   ≤ 
                                   vi 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                   
               
             
          
         
       
     
         [0059]    An IBMA apparatus  63  shown in  FIG. 8  includes multipliers  81 ,  90 ,  91 ,  94  and  95 , adders  83 ,  89  and  96 , registers  84 ,  86 ,  88 ,  92  and  97 , buffers  82 ,  97 ,  98  and  100 , multiplexers (MUX)  85 ,  93  and  99 . The upper devices  81 - 93  of the IBMA apparatus  63  constitute an error location polynomial solver  104 , which is similar to a traditional IBMA architecture. Devices  94 - 100  constitute an error value polynomial solver  102 . The discrepancy Δ (i)  at the ith iteration is multiplied by the auxiliary polynomial β j-1   (i-1)  at (i−1)th iteration through the multiplexer  95 , and discrepancy δ of T (i) (x) having iteration with correction is multiplied by key equation Ω j   (i-1) , then the two results are added to be Ω j   (i) , so as to further acquire the key equation Ω(x). Accordingly, error location polynomial and error value polynomial, i.e., key equation, Ω(x), are obtained simultaneously based on Δ (i)  and δ. 
         [0060]    The error location polynomial Λ(x) and discrepancy Δ are calculated according to the following equations (1) and (2), respectively. Superscript (i) indicates the ith iteration of IBMA computation, and the discrepancy Δ is a value to determine whether error location polynomial Λ(x) in the next iteration needs to be corrected. When i is equal to 2t, the polynomial of the Reed Solomon decoder is in response to largest error symbol. Superscript v is the number of error symbol of the decoding correction v≦t. 
         [0000]      Λ (i) ( x )=Λ 0   (i) +Λ 1   (i)   x+ . . . +Λ   vi   (i)   x   vi   (1) 
         [0000]      Λ (i) =Λ 0   (i)   S   i+1 +Λ 1   (i)   S   i + . . . +Λ v   (i)   S   i+1−v   (2) 
         [0061]    Table 3 shows syndromes in each iteration. For example, discrepancy Δ at the 0th iteration is equal to Λ 0   (0) S 0+1 +Λ 1   (0) S 0 + . . . +Λ v   (0) S 0+1−v . Initial Λ (0) (x)=1, therefore only the coefficient at zero order is not equal to zero, i.e., only S 1  is a meaningful syndrome. Because the coefficients of other orders are zero, the multiplication of zero and an arbitrary number are zero. Therefore, the calculation of Δ (0)  is not affected even if other syndromes are arbitrary numbers. Moreover, only a coefficient of an order of Λ(x) is increased in each iteration, and the largest order is less than one. Therefore, the problem of coefficients of orders of polynomials having no corresponding syndrome values will not occur in the computation of discrepancy Δ. 
         [0062]    Consequently, based on the feature that no influence on computation of discrepancy Δ occurs when the coefficients of the orders of Λ(x) are equal to zero, the lengths of syndrome sequences for calculating Δ are fixed to be t+1 including pseudo codes not affecting discrepancy Δ, as shown in Table 3. 
         [0063]    An IBMA computation is exemplified as follows. 
         [0000]    
       
         
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                   
               
               
                 i 
                 Λ (i) (x) 
                 Δ (i)   
                 Ω (i) (x) 
                 ν 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 −1 
                 1 
                 1 
                 X −1   
                 −1 
               
               
                 0 
                 1 
                 S 1   
                 0 
                 −1 
               
               
                   
               
             
          
         
       
     
         [0064]    Initial parameters are listed in the above table for the IBMA computations, and all elements of GF(8) are listed as follows
       GF(8) constructed by p(x)=x 3 +x+1
           0           (0, 0, 0)   α           (0, 1, 0)   α 2             (0, 0, 1)   α 3 =α+1           (1, 1, 0)   α 4 =α 2 +α           (0, 1, 1)   α 5 =α 2 +α+1           (1, 1, 1)   α 6 =α 2 +1           (1, 0, 1)   α 7 =1           (1, 0, 0)   
               
 
         [0074]    In the first iteration, Δ (0)  is not equal to zero; therefore Λ (1) (X) and Ω (1) (X) are corrected. 
         [0075]    For the Δ (0)  calculation, it is equal to the multiplication of S 1  and Λ (0) (X). In this example, the number of corrections is two, so that the highest orders of the error location polynomial and error value polynomial are X 2 . Therefore, the syndrome array can be of fixed lengths to match the highest order of the polynomial. Three syndromes are operated with X 0 , X 1 , X 2 , i.e., Δ (0) =[S 1  S 4  S 3 ]*Λ (0) (X)=[S 1  S 4  S 3 ]*[1 0 0]=S 1 *1+S 4 *0+S 3 *0=α 6 . 
         [0000]        v=− 1 &amp;  i= 0 
         [0000]      Δ (0) =S 1 =α 6 ≠0 
         [0000]      Λ (1) ( X )=Δ (−1) *Λ (0) ( X )+Δ (0)   *X   (0−(−1)) *Λ (−1) ( X ) 
         [0000]      Λ (1) ( X )=1*1 +S   1   X   (1) *1=1 +S   1   X= 1+α 6   X    
         [0000]      Ω (1) ( X )=Δ (−1) *Ω (0) ( X )+Δ (0)   *X   (0−(−1)) *Ω (−1) ( X ) 
         [0000]      Ω (1) ( X )=1*0 +S   1   X   (1)   *X   −1   =S   1 =α 6    
         [0076]    In the second iteration, Δ (1)  is not equal to zero, therefore Λ (2) (X) and Ω (2) (X) are corrected. 
         [0077]    For the Δ (1)  calculation, it is equal to the multiplication of S 1 , S 2  and Λ (1) (X). In this example, the number of corrections is two, so that the highest orders of the error location polynomial and error value polynomial are X 2 . Therefore, the syndrome array can be of fixed lengths to match the highest order of the polynomial. Three syndromes are operated with X 0 , X 1 , X 2 , i.e., Δ (1) =[S 2  S 1  S 4 ]*Λ (1) (X)=[S 2  S 1  S 4 ]*[1 α 6  0]=S 2 *1+S 1 *α 6 +S 4 *0=α 2 . 
         [0000]      v=0 &amp; i=1 
         [0000]      Δ (1) =Λ 0   (1)   S   2 +Λ 1   (1)   S   1 =α 3 +α 5 =α 2 ≠0 
         [0000]      Λ (2) ( X )=Δ (0) *Λ (1) ( X )+Δ (1)   *X   (1−0) *Λ (0) ( X ) 
         [0000]      Λ (2) ( X )=α 6 (1+α 6   X )+α 2   *X   (1) *1 
         [0000]      Λ (2) ( X )=α 6 +α 12   X+α   2   X=α   6 +α 3   X    
         [0000]      Ω (2) ( X )=Δ (0) *Ω (1) ( X )+Δ (1)   *X   (1−0) *Ω (0) ( X ) 
         [0000]      Ω (2) ( X )=α 6 α 6 +α 2   *X   (1) *0=α 5    
         [0078]    In the third iteration, Δ (2)  is not equal to zero; therefore Λ (3)  (X) and Ω (3) (X) are corrected. 
         [0079]    For the Δ (2)  calculation, it is equal to the multiplication of S 2 , S 3  and Λ (2) (X). In this example, the number of corrections is two, so that the highest orders of the error location polynomial and error value polynomial are X 2 . Therefore, the syndrome array can be of fixed lengths to match the highest order of the polynomial. Three syndromes are operated with X 0 , X 1 , X 2 , i.e., Δ (2) =[S 3  S 2  S 1 ]*Λ (2) (X)=[S 3  S 2  S 1 ]*[α 6  α 3  0]=S 3 α 6 +S 2 *α 3 +S 1 *0=α 4 . 
         [0000]      v=1 &amp; i=2 
         [0000]      Δ (2) =Λ 0   (2)   S   3 +Λ 1   (2)   S   2 =α 6 *α 4 +α 3 *α 3    
         [0000]      Δ (2) =α 3 +α 6 =α 4 ≠0 
         [0000]      Λ (3) ( X )=Δ (1) *Λ (2) ( X )+Δ (2)   *X   (2−1) *Λ (1) ( X ) 
         [0000]      Λ (3) ( X )=α 2 (α 6 +α 3   X )+α 4   *X   (1) *(1+α 6   X ) 
         [0000]      Λ (3) ( X )=α+α 5   X+α   4   X+α   3   X   2   =α+X+α   3   X   2    
         [0000]      Ω (3) ( X )=Δ (1) *Ω (2) ( X )+Δ (2)   *X   (2−1) *Ω (1) ( X ) 
         [0000]      Ω (3) ( X )=α 2 *α 5 +α 4   *X   (1) *α 6 =α 7 +α 3   X    
         [0080]    In the fourth iteration, Δ (3)  is not equal to zero; therefore Λ (4)  (X) and Ω (4) (X) are corrected. 
         [0081]    For the Δ (3)  calculation, it is equal to the multiplication of S 2 , S 3 , S 4  and Λ (3) (X). In this example, the number of corrections is two, so that the highest orders of the error location polynomial and error value polynomial are X 2 . Therefore, the syndrome array can be of fixed lengths to match the highest order of the polynomial. Three syndromes are operated with X 0 , X 1 , X 2  i.e., Δ (3) =[S 4  S 3  S 2 ]*Λ (3) (X)=[S 4  S 3  S 2 ]*[α 1 α 3 ]=S 4 *α+S 3 *1+S 2 *α 3 =α 6 . 
         [0000]      v=2 &amp; i=3 
         [0000]      Δ (3) =Λ 0   (3)   S   4 +Λ 1   (3)   S   3 +Λ 2   (3)   S   2    
         [0000]      Δ (3) =α*α 3 +1*α 4 +α 3 *α 3    
         [0000]      Δ (3) =α 4 +α 4 +α 6 =α 6 ≠0 
         [0000]      Λ (4) ( X )=Δ (2) *Λ (3) ( X )+Δ (3)   *X   (3−2) *Λ (2) ( X ) 
         [0000]      Λ (4) ( X )=α 4 (α+ X+α   3   X   2 )+α 6   *X *(α 6 +α 3   X ) 
         [0000]      Λ (4) ( X )=α 5 +α 4   X+X   2 +α 5   X+α   2   X   2    
         [0000]      Λ (4) ( X )=α 5   +X+α   6   X   2    
         [0000]      Ω (4) ( X )=Δ (2) *Ω (3) ( X )+Δ (3)   *X   (3−2) *Ω (2) ( X ) 
         [0000]      Ω (4) ( X )=α 4 *(α 7 +α 3   X )+α 6   *X*α   5 =α 4 +α 5   X    
         [0082]    Λ (4) (X) and Ω (4) (X) are the error location polynomial and error value polynomial, respectively, in this example. 
         [0083]      FIG. 9  illustrates a flow chart for the IBMA algorithm. First, initial conditions are determined, and Δ (i)  is calculated based on the initial conditions. If Δ (i) ≠0 or i−v≧2, the error location polynomial and the error value polynomial need to be corrected. The process is repeated by iterating i=i+1 if i&lt;2t. 
         [0084]    The above-described embodiments of the present invention are intended to be illustrative only. Numerous alternative embodiments may be devised by those skilled in the art without departing from the scope of the following claims.