the principles and operation of correction for inter - cell cross coupling according to the present invention may be better understood with reference to the drawings and the accompanying description . as noted above , the linear model of inter - cell cross coupling correction is x ^ i = ∑ j ⁢ a j ⁢ x i - j ( 1 ) where x i is the threshold voltage of the target cell as read , the x i - j ( j ≠ i ) are the threshold voltages , as read , of the neighbor cells that disturbed the target cell subsequent to the programming of the target cell , and { circumflex over ( x )} i is the estimate of the threshold voltage of the target cell as the cell was programmed . more generally , the linear model of inter - cell cross coupling correction is x ^ i = ∑ j ⁢ a j ⁢ x i - j + b ( 2 ) one preferred technique that is used for cross - coupling estimation and equalization is linear minimal mean square error ( lmmse ) cross - coupling estimation and equalization . this technique is based on second order statistics of the target cells and their neighbors , specifically on the covariance matrix of the read threshold voltages of the neighbors and on the cross - correlation vector of the target cells and their neighbors . the following example is for a flash memory that is programmed one word line at a time , with the cells on the even bit lines being programmed before the cells on the odd bit lines . inter - cell cross coupling affects primarily the cells on the even bit lines ; and the two neighbors that affect each such cell are the cell on the same word line and on the next bit line , and the cell on the same bit line and on the next word line . this example is of the estimation of inter - cell cross coupling and the correction for inter - cell cross coupling of the threshold voltages x 0 , i , i = 1 , . . . , m , as read , of m of these target cells that are presumed to have been programmed to a particular state s , given , for each target cell , x 0 , i and the threshold voltages x 1 , i and x 2 , i , as read , of the target cell &# 39 ; s two significant neighbor cells . x 1 , i is the threshold voltage , as read , of the cell on the same word line and the next bit line . x 2 , i is the threshold voltage , as read , of the cell on the same bit line and the next word line . in one mode of the present invention , these second - order statistics are used to correct the read threshold voltages of the target cells . in one example , these statistics were computed for a block of a four - bit - per - cell flash memory , for the state s = 8 . the resulting statistics were : μ 0 | s = 3265 ⁢ ⁢ mv μ 1 = 3060 ⁢ ⁢ mv μ 2 = 3060 ⁢ ⁢ mv c 0 , n = [ 29 , 788 ⁢ ⁢ mv 2 ⁢ ⁢ 65 , 608 ⁢ ⁢ mv 2 ] c n = [ 2 , 902 , 396 ⁢ ⁢ mv 2 6 , 818 ⁢ ⁢ mv 2 6 , 818 ⁢ ⁢ mv 2 2 , 887 , 355 ⁢ ⁢ mv 2 ] for any one of the m target cells , the corrected threshold voltage then is x ^ 0 = x 0 - c 0 , n ⁢ c n - 1 ⁡ [ x 1 - μ 1 x 2 - μ 2 ] ⁢ ⁢ = x 0 - 0 . 0102 ⁢ x 1 - 0 . 0227 ⁢ x 2 + 100 . 7 ⁢ ⁢ mv ( 8 ) the data stored in each target cell is determined by finding the threshold voltage range in which { circumflex over ( x )} 0 falls . in terms of the two phases of the present invention , cross - coupling estimation and equalization , the computation of the second order statistics of equations 3 - 7 is lmmse cross - coupling estimation and the subsequent computation of { circumflex over ( x )} 0 in equation 8 is lmmse equalization . in another mode of the present invention , the second - order statistics are used to estimate directly the data stored in each target cell without correcting the measured threshold voltage of the cell . for each target cell , the following additional second - order statistics are computed : 1 . for each possible state s , the expectation value of the threshold voltages of the cells in state s whose neighbors are in the same set of states ( labeled by index n ) as the neighbors of the target cell , assuming that the target cell also was programmed to that state s ( and not necessarily to the state s that corresponds to x 0 as measured ): 2 . the expectation value of the variance of the threshold voltages of these cells : σ 0 | s , n = c 0 , 0 − c 0 , n · c n − 1 · c 0 , n * ( c 0 , n * is the conjugate transpose of c 0 , n . in the present case , all quantities are real , so c 0 , n * is the transpose of c 0 , n . ), where these second - order statistics are used to compute , for each bit i stored in a target cell , the log likelihood ratio ( the logarithm of the ratio of the probability that the bit was programmed as “ zero ” to the probability that the bit was programmed as “ one ”) as follows : l i = log ⁡ [ ∑ s ∈ s i 0 ⁢ 1 2 ⁢ π ⁢ ⁢ σ 0 | s , n ⁢ exp ⁡ ( - ( x 0 - μ 0 | s , n ) 2 2 ⁢ σ 0 | s , n 2 ) ∑ s ∈ s i 1 ⁢ 1 2 ⁢ πσ 0 | s , n ⁢ exp ⁡ ( - ( x 0 - μ 0 | s , n ) 2 2 ⁢ σ 0 | s , n 2 ) ] ( 11 ) the sum over s i 0 is a sum over all states s for which bit i is a “ zero ” bit . the sum over s i 1 is a sum over the remaining states , i . e ., all states s for which bit i is a “ one ” bit . for example , in a three - bit - per - cell flash memory , with states mapped to threshold voltages as shown in fig4 , for the leftmost bit , the sum in the numerator would be over the four rightmost states and the sum in the denominator would be over the four leftmost states ; for the middle bit , the sum in the numerator would be over the third and fourth states from the left and the first and second states from the right and the sum in the denominator would be over the first and second states from the left and over the third and fourth states from the right ; and for the rightmost bit , the sum in the numerator would be over the second and fourth states from the left and the first and third states from the right and the sum in the denominator would be over the first and third states from the left and the second and fourth states from the right . if the sums are restricted to only to the state s i 0 nearest x 0 whose i - th bit is “ zero ” and the state s i 1 nearest x 0 whose i - th bit is “ one ”, this expression for l i becomes much simpler : l i as computed using either equation 11 or equation 12 can be used as input to an ecc decoder for estimating the codeword that includes bit i . in this mode of the present invention , the computation of the second order statistics of equations 3 - 7 , 9 and 10 is lmmse cross - coupling estimation and the computation of l i in equation 11 or in equation 12 is lmmse equalization . the lmmse cross - coupling estimation described above is an example of batch cross - coupling estimation . the input to batch cross - coupling estimation includes estimates of all the relevant data ( e . g . the full set of m x 0 , i &# 39 ; s , x 1 , i &# 39 ; s and x 2 , i &# 39 ; s in the above example ). alternatively , an adaptive procedure is used that combines cross - coupling estimation and equalization separately for each target cell . one such adaptive procedure is a steepest descent algorithm that seeks to determine the k correction coefficients a j of the linear model of inter - cell cross coupling , x ^ 0 = ∑ j = 0 k ⁢ x j ⁢ a j . ( 13 ) where d ({ circumflex over ( x )} 0 ) is the value of μ s ( the mean threshold voltage of all cells in state s ), from among the μ s &# 39 ; s of all the states s , for which | e ({ circumflex over ( x )} 0 )| is minimal . starting with x 0 as the initial estimate of { circumflex over ( x )} 0 , { circumflex over ( x )} 0 and the a j are found iteratively , with , in the n - th iteration , a j ( n + 1 )= a j ( n )− δ · e ( { circumflex over ( x )} 0 )· x 0 ( 15 ) where the step size δ is determined as in the analogous isi problem . see e . g . john g . proakis , digital communications ( mcgraw - hill , 2000 ), chapter 11 . another more accurate , albeit computationally more intensive , form of adaptive cross - coupling estimation and equalization uses a kalman filter to estimate the correction coefficients a j , analogous to the use of a kalman filter for channel estimation and equalization in the communication engineering context by tonissen et al . in u . s . pat . no . 6 , 295 , 326 . see also dai qingyuan and e . shwedyk , detection of bandlimited signals over frequency selective rayleigh fading channels , ieee transactions on communication vol . 42 no . 2 ( 1994 ) pp . 941 - 950 . other adaptive channel estimation and equalization algorithms that are known in the isi context and that can be adapted readily by one skilled in the art to inter - cell cross coupling estimation and correction include : singed lms ( simon haykin , adaptive filter theory , third edition , prentice hall , 1996 ; r . d . gitlin et al ., an algorithm for the stable operation of a digitally implemented fractionally spaced adaptive equalizer , proc . ieee int . conf . acoust . speech signal process ., may 1982 , pp . 1379 - 1382 ) cma algorithm ( r . johnson , jr ., et al ., blind equalization using the constant modulus criterion : a review , proc . ieee vol . 86 no . 10 ( 1998 ) pp . 1927 - 1950 ) sato algorithm ( y . sato , a method for self - recovering equalization for multilevel amplitude modulation system , ieee trans . commun . vol . com - 23 ( june 1975 ) pp . 679 - 682 ) godard algorithm ( d . n . godard , self - recovering equalization and carrier tracking in two - dimensional data communication system , ieee trans . commun . vol . com - 28 ( november 1980 ) pp . 1867 - 1875 ) sunua algorithm ( ching - hsiang tseng and cheng - bin lin , a stop - and - go dual - mode algorithm for blind equalization , globecom &# 39 ; 96 ( 18 - 22 nov . 1996 ) vol . 2 pp . 1427 - 1431 ) dmgsa algorithm ( v . weerackody and s . a . kassam , dual - mode type algorithms for blind equalization , ieee trans . commun . vol . 42 no . 1 ( 1994 ) ppl 22 - 28 ) under either batch cross - coupling estimation or combined adaptive cross - coupling estimation and equalization , there is no need to re - read the data in order to equalize the data . the threshold voltages are read , stored in a buffer , and retrieved from the buffer as needed . for example , in the first lmmse example above , in which the coefficients of the linear model of inter - cell cross coupling are determined in the cross - coupling estimation phase , the data in the buffer are used twice : first in the cross - coupling estimation phase for estimating the coefficients and then in the equalization phase to apply the estimated coefficients to the data . another classification of cross - coupling estimation and equalization methods is according to the estimation criteria . one preferred criterion is mmse , in which the mean square error ( mmse ) of the estimation is minimized . another preferred criterion is map , in which the a - posteriori probability of the unknown parameter given the observations is maximized . yet another preferred criterion is ml , in which the conditional probability of the observations given the unknown parameter is maximized . the map estimator requires knowledge of the joint probability distribution of the unknown parameter and the observations . the ml estimator requires knowledge of the conditional probability distribution of the unknown given the observations . note that under certain conditions different estimation criteria can coincide . for example , under a gaussian noise model the mmse and the map criteria coincide . another issue that can distinguish various estimation algorithms is whether the estimation looks for the optimal symbol estimation ( under the relevant criterion ) or for the optimal estimation of the entire sequence of symbols . for the use of map channel estimation and equalization in communication engineering , see m . j . lopez et al ., reduced - complexity map equalizer for dispersive channels , ieee vehicular technology conference 2000 vol . 3 pp . 1371 - 1375 . ml algorithms that are known in the isi context and that can be adapted readily by one skilled in the art to inter - cell cross coupling estimation and correction include : rsse algorithm ( nigel c . mcginty and rodney a . kennedy , reduced - state sequence estimator with reverse - time structure , ieee trans . commun . vol . 45 no . 3 ( 1997 ) pp . 265 - 268 ) ddfse algorithm ( alexanra duel - hallen and chris heegard , delayed decision - feedback sequence estimation , ieee trans . commun . vol . 37 no . 5 ( 1989 ) pp . 428 - 436 ) dfe algorithm ( mikael sternad et al ., robust decision feedback equalizers , ieee int . conf . acoustics , speech and signal processing ( apr . 27 - 30 , 1993 ) vol . 3 pp . 555 - 558 ) any of these methods may be employed for cross - coupling estimation in any one of the following stages in the lifecycle of flash memory devices , depending on whether , or on how fast , the devices &# 39 ; cross coupling coefficients vary among the devices , with time , and with use of the devices : if the cross - coupling coefficients ( or , more generally , the parameters of a nonlinear inter - cell cross coupling model ) can be assumed to be the same for all devices of a common design , then , during design , an experimental device is programmed with random data and one of the above methods is used to determine the cross - coupling coefficients of the experimental device . those cross - coupling coefficients are stored in all production devices and are used for all production devices . if the cross - coupling coefficients can not be assumed to be the same for all devices of a common design but can be assumed to vary negligibly over the lifetime of each device , then , during fabrication , each device is programmed with random data and one of the above methods is used to determine the cross - coupling coefficients of the device . these cross - coupling coefficients are stored in the device and are used for the entire lifetime of the device . note that cross - coupling coefficient determination for the full lifetime of a device ( done in fabrication ) or for a device model ( done in design ) does not make assumptions about the data stored in the cells , for example that a cell determined to have a threshold voltage x 0 was programmed to store the data of the corresponding threshold voltage range . the random data used for full lifetime determination are known a priori . if the cross - coupling coefficients vary slowly over the lifetime of a device , and also vary slowly relative to the number of program - erase cycles that the device endures , then any one of the above methods is used in batch mode to determine the cross - coupling coefficients of the device , for each block of the device , in background . if the cross - coupling coefficients vary too rapidly for background cross - coupling estimation to be reliable , cross - coupling estimation is performed along with equalization whenever a word line is read . note that when the target word line is read , all the word lines that include neighbor cells ( typically , only one other word line ) also must be read . in addition to illustrating a prior art flash memory device , fig2 a also illustrates a flash memory device of the present invention in which equalization is done in hardware . under the first three options for when cross - coupling estimation is performed ( design , fabrication , background ), controller 20 includes a table of cross - coupling coefficients that data input / output circuits 6 apply to threshold voltages read by column control circuits 2 . under the fourth option for when cross - coupling estimation is performed ( on - the - fly ), data input / output circuits 6 also are configured to send selected threshold voltages , as read , to controller 20 . controller 20 then uses one of the methods described above to compute the relevant cross - coupling coefficients and sends the computed cross - coupling coefficients back to data input / output circuits 6 to be applied to the threshold voltages as read . note that to make the table of cross - coupling coefficients more compact , the same cross - coupling coefficients may be used for all the target cells of a word line , or for all the target cells of a block , or for all the target cells of all the even - numbered word lines of a block vs . all the target cells of all the odd - numbered word lines of a block ( because the coefficients of even - numbered word lines may be different from the coefficients of odd - numbered word lines ), or for all the target cells of all the even - numbered bit lines of a block vs . all the target cells of all the odd - numbered bit lines of a block ( because the coefficients of even - numbered bit lines may be different from the coefficients of odd - numbered bit lines ), or for all the target cells in corresponding positions in several word lines or in several blocks , relative to the respective neighbor cells of these target cells . in addition to illustrating a prior art flash memory device , fig2 b also illustrates a flash memory device of the present invention in which equalization is done by firmware or software in controller 27 . controller 27 includes a table of cross - coupling coefficients that controller 27 applies to threshold voltage measurements received from bit line unit 13 . under the first two options for when cross - coupling estimation is performed ( design , fabrication ), the table is fixed for the lifetime of the device . under the second two options for when cross - coupling estimation is performed ( background , on - the - fly ), controller 27 uses one of the methods described above to compute the cross - coupling coefficients from threshold voltage measurements received from bit line unit 13 . as in the case of the device of fig2 a , to make the table of cross - coupling coefficients more compact , the same cross - coupling coefficients may be used for all the target cells of a word line , or for all the target cells of a block , or for all the target cells of all the even - numbered word lines of a block vs . all the target cells of all the odd - numbered word lines of a block ( because the coefficients of even - numbered word lines may be different from the coefficients of odd - numbered word lines ), or for all the target cells of all the even - numbered bit lines of a block vs . all the target cells of all the odd - numbered bit lines of a block ( because the coefficients of even - numbered bit lines may be different from the coefficients of odd - numbered bit lines ), or for all the target cells in corresponding positions in several word lines or in several blocks , relative to the respective neighbor cells of these target cells . fig5 is a high - level block diagram of a system 50 of the present invention . system 50 includes a processor 52 and four memory devices : a ram 54 , a boot rom 56 , a mass storage device ( hard disk ) 58 and a flash memory device of fig2 b as a flash memory device 62 , all communicating via a common bus 64 . in system 50 , controller 27 of flash memory device 62 functions only as an interface to bus 64 ; the rest of the functionality of flash controller 27 of fig2 b as described above is emulated by flash memory driver code 60 that is stored in mass storage device 58 and that is executed by processor 52 to interface between user applications executed by processor 52 and flash memory device 62 , and to manage the flash memory of flash memory device 62 . in addition to the conventional functionality of such flash management driver code , driver code 60 emulates the functionality of controller 27 of fig2 b with respect to implementing the methods of the present invention . specifically , under the first three options for when cross - coupling estimation is performed ( design , fabrication , background ), mass storage device 58 also has stored therein a table 66 of cross - coupling coefficients for flash memory device 62 . under the first two options for when cross - coupling estimation is performed ( design , fabrication ), this table is provided along with flash memory device 62 and is used by processor 52 when executing driver code 60 to correct threshold voltage measurements , as received from flash memory device 62 , for inter - cell cross coupling . under the third option for when cross - coupling estimation is performed , processor 52 executes the appropriate driver code 60 to compute the cross - coupling coefficients in background , based on threshold voltage measurements as received from flash memory device 62 , to store these cross - coupling coefficients in table 66 , and to use these cross - coupling coefficients to correct threshold voltage measurements , as read from flash memory device 62 , for inter - cell cross coupling . under the fourth option for when cross - coupling estimation is performed , whenever processor 52 receives threshold voltage measurements from flash memory 62 , processor 52 executes the appropriate driver code 60 to compute cross - coupling coefficients , to store these cross - coupling coefficients in a table 68 in ram 54 , and to use these cross - coupling coefficients to correct the threshold voltage measurements for inter - cell cross coupling . driver code 60 typically is included in operating system code for system 50 but also could be freestanding code . the components of system 50 other than flash memory device 62 constitute a host 70 of flash memory device 62 . mass storage device 58 is an example of a computer - readable storage medium bearing computer - readable driver code for implementing the present invention . other examples of such computer - readable storage media include read - only memories such as cds bearing such code . while the invention has been described with respect to a limited number of embodiments , it will be appreciated that many variations , modifications and other applications of the invention may be made .