A method of determining an optimal reading voltage for reading a two-side non-volatile
memory programmed with a threshold voltage Vt is described. A first side of a memory
cell is programmed to Vt, and then an I1-Vg curve of the first side
and an I2-Vg curve of the second side are measured, wherein Vg is the
gate voltage. A Gm1-Vg curve and a Gm2-Vg curve are plotted,
wherein Gm1=dI1/dVg and Gm2=dI2/dVg.
The optimal reading voltage VgO is determined as the gate voltage at
the intersection of Gm1 and Gm2, corresponding to a maximal
total current window Wm (=I2(VgO)-I1(VgO)).