Patent ID: 9021336
Filing Date: 2015-04-28
Classification: G06F

Abstract:
1. A method of programming data to a plurality of flash memory devices, the method comprising: receiving data to be programmed; arranging the received data for distribution among a page stripe such that sequentially received data is to be programmed among the page stripe, wherein the page stripe comprises two or more flash memory pages or two or more integer fractions of flash memory pages; error correction encoding data to be stored within a particular page or integer fraction to generate primary parity symbols for primary codewords; generating information portions of secondary codewords by selecting portions of primary codewords, wherein secondary codewords are at least partially orthogonal to primary codewords; error correction encoding the information portions of the secondary codewords to generate secondary parity symbols for the secondary codewords; arranging the secondary parity symbols for distribution within the page stripe such that the secondary parity symbols of each secondary codeword are spread out across each page of the page stripe when programmed; and programming the page stripe with the arranged received data, the primary parity symbols, and the arranged secondary parity symbols; wherein at least error correction encoding data, generating information portions, and error correction encoding the information portions are performed by an integrated circuit; wherein at least error correction encoding data, generating information portions, and error correction encoding the information portions are performed concurrently with write operations for an end user.