An error correcting Reed-Solomon decoder includes a syndrome calculator that
calculates
syndrome values. An error locator polynomial generator communicates with the syndrome
calculator and generates an error locator polynomial. An error location finder
communicates with at least one of the syndrome calculator and the error locator
polynomial generator and generates error locations. An error values finder communicates
with at least one of the syndrome calculator, the error location finder and the
error locator polynomial generator and generates error values using an error value
relationship that is not based on the traditional error evaluator polynomial. The
error locator polynomial generator is an inversionless Berlekamp-Massey algorithm
(iBMA), which calculates an error locator polynomial and a scratch polynomial.
The error value relationship is based on the error locator polynomial and the scratch polynomial.