1. A non-binary low density parity check data decoder comprising: a variable node processor operable to update variable node symbol values according to a plurality of elements in a non-binary Galois Field; a check node processor connected to the variable node processor and operable to perform parity check calculations; and a controller operable to perform symbol flipping and to control decoding iterations in the variable node processor and the check node processor.