IP Library Granted Patent US 7,085,183
Granted Patent B2
US 7,085,183 · App. 10/889,911 · Granted Aug 1, 2006

Adaptive algorithm for MRAM manufacturing

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,085,183
App. No.
10/889,911
Granted
Aug 1, 2006
Kind
B2
Abstract

Magnetic Random Access Memory (MRAM) can be programmed and read as fast as Static Random Access Memory (SRAM) and has the non-volatile characteristics of electrically eraseable programmable read only memory (EEPROM), FLASH EEPROM or one-time-programmable (OTP) EPROM. Due to the randomness of manufacturing process, the magnetic tunnel junctions (MTJ) in MRAM cells will require different row and column current combinations to program and not to disturb the other cells. Based on adaptive current sources for programming, this disclosure teaches methods, designs, test algorithms and manufacturing flows for generating EEPROM, FLASH EEPROM or OTP EPROM like memories from MRAM.

Claims (84)

1. A method of adaptively programming and testing magnetic random access memory comprising the steps of:

a: setting a nominal row current,

b: setting a nominal column current,

c: writing input data to an entire array,

d: reading data from said entire array,

e: comparing said reading data with said writing input data,

f: signaling a mismatch failure if said comparing of said reading data with said writing input data results in a negative comparison,

g: 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,

h: deciding if all said row current and column current combinations have been tried,

j: repeating steps ‘c’, ‘d’, and ‘e’ if said signaling a mismatch failure does occur and all said row current and column current combinations have not been tried,

k: signaling a bad die if said signaling a mismatch failure does occur and all said row current and column current combinations have been tried,

m: fixing nominal row and column current if said signaling a mismatch failure does not occur,

n: signaling a good die if said signaling a mismatch failure does not occur.

2. The method of adaptively programming and testing magnetic random access memory of claim 1 wherein said changing row or column current is accomplished using program adaptable current sources.

3. The method of adaptively programming and testing magnetic random access memory of claim 1 wherein said changing of row or column current is in order to attempt said finite list of row current and column current combinations in order to produce column current and row current combinations which will not switch direction of magnetic field or unintentionally disturb magnetic memory cells sharing a same word line or a same bit line.

4. A method of adaptively programming and testing a random byte within a magnetic random access memory comprising 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 equal 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.

5. The method of adaptively programming and testing magnetic random access memory of claim 4 wherein said changing row or column current is accomplished using program adaptable current sources.

6. The method of adaptively programming and testing magnetic random access memory of claim 4 wherein said changing of row or column current is in order to attempt said finite list of row current and column current combinations in order to produce column current and row current combinations which will not switch direction of magnetic field or unintentionally disturb magnetic memory cells sharing a same word line or a same bit line.

7. A method of adaptively programming and testing a random byte within a magnetic random access memory comprising 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 row 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 row,

q: comparing all said programmed bytes on same row with bytes in said save register,

q: signaling a non-disturb condition if all said programmed bytes on same column equal 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.

8. The method of adaptively programming and testing magnetic random access memory of claim 7 wherein said changing row or column current is accomplished using program adaptable current sources.

9. The method of adaptively programming and testing magnetic random access memory of claim 7 wherein said changing of row or column current is in order to attempt said finite list of row current and column current combinations in order to produce column current and row current combinations which will not switch direction of magnetic field or unintentionally disturb magnetic memory cells sharing a same word line or a same bit line.

10. A method of adaptively programming and testing a random byte within a magnetic random access memory comprising 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 row 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 row,

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 equal 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.

11. The method of adaptively programming and testing magnetic random access memory of claim 10 wherein said changing row or column current is accomplished using program adaptable current sources.

12. The method of adaptively programming and testing magnetic random access memory of claim 1 wherein said changing of row or column current is in order to attempt said finite list of row current and column current combinations in order to produce column current and row current combinations which will not switch direction of magnetic field or unintentionally disturb magnetic memory cells sharing a same word line or a same bit line.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2019
From: HEADWAY TECHNOLOGIES, INC.
To: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY, LTD.
Reel/Frame 048692/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2014
From: MAGIC TECHNOLOGIES, INC.
To: HEADWAY TECHNOLOGIES, INC.
Reel/Frame 031956/0645 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2010
From: APPLIED SPINTRONICS TECHNOLOGY, INC.
To: MAGIC TECHNOLOGIES, INC.
Reel/Frame 024445/0250 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2005
From: HEADWAY TECHNOLOGIES, INC.
To: HEADWAY TECHNOLOGIES, INC.; APPLIED SPINTRONICS, INC.
Reel/Frame 015646/0890 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2004
From: YANG, HSU KAI; SHI, XI ZENG; WANG, PO-KANG; YANG, BRUCE
To: HEADWAY TECHNOLOGIES, INC.
Reel/Frame 015569/0807 →