A method for performing error correction on data read from a multistate memory array, by encoding data read from each memory element of the array, detecting an error in the encoded data from one memory element, and correcting the error by changing X bits of the encoded data (preferably X=1), and a multistate...http://www.google.com.au/patents/US6178537?utm_source=gb-gplus-sharePatent US6178537 - Method and apparatus for performing error correction on data read from a multistate memory