A compact high-speed data encoder/decoder for single-bit forward
error-correction, and methods for same. This is especially useful in
situations where hardware and software complexity is restricted, such as
in a monolithic flash memory controller during initial startup and
software loading, where robust hardware and software error correction is
not feasible, and where rapid decoding is important. The present
invention arranges the data to be protected into a rectangular array and
determines the location of a single bit error in terms of row and column
positions. So doing greatly reduces the size of lookup tables for
converting error syndromes to error locations, and allows fast error
correction by a simple circuit with minimal hardware allocation. Use of
square arrays reduces the hardware requirements even further.