Patent ID: 7369430

Claim:
A method of adaptively programming and testing magnetic random access memory by programming and testing individual bytes comprising the steps of: a: setting array address of byte being programmed to start address of a memory array, b: programming and testing said byte being programmed, c: signaling a bad memory array if said programming and testing indicates a bad die and branching to ‘h’, d: comparing said array address to last address of said memory array, e: signaling a good memory array if said array address equals said last address of said memory array and branching to ‘h’, f: incrementing said array address if said array address does not equal said last address of said memory array, g: repeating steps b, c, d, e, h: signaling process complete, wherein said programming and testing comprises the steps of: a: setting a nominal row current, b: setting a nominal column current, c: saving byte being programmed, d: reading and saving all programmed bytes on same column in a save register, e: programming byte being programmed or disturbed byte, f: reading said byte being programmed, g: comparing said reading data with said writing input data, h: signaling a mismatch failure if said comparing of said reading data with said writing input data results in a negative comparison, k: changing row or column current in order to attempt a finite list of row current and column current combinations if said signaling a mismatch failure does occur, m: deciding if all said row current and column current combinations have been tried, n: repeating steps ‘e’, ‘f’, and ‘g’ if said signaling a mismatch failure does occur and all said row current and column current combinations have not been tried, o: signaling a bad die if said signaling a mismatch failure does occur and all said row current and column current combinations have been tried, p: reading all said programmed bytes on same column, q: comparing all said programmed bytes on same column with bytes in said save register, q: signaling a non-disturb condition if all said programmed bytes on same column egual said bytes in said save register and branching to ‘z’, r: changing row or column current in order to attempt a finite list of row current and column current combinations if said non-disturb condition does not occur, s: deciding if all said row current and column current combinations have been tried, t: repeating steps ‘e’, ‘f’, and ‘g’ if said non-disturb condition does not occur and all said row current and column current combinations have not been tried, u: signaling a bad die if said non-disturb condition does not occur and all said row current and column current combinations have been tried, z: signaling process complete.