EP3520109B1

A memory device using dynamic redundancy registers

Abstract

This record has no abstract on file.

EP3520109B1, drawing sheet 1
Sheet 1 of 8

Term

11 yearsleft in the term

Expires 25 September 2037.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

14 claims: 2 independent, 12 dependent

  1. 1
    A memory device (100, 300, 400) comprising:a memory bank (102, 304, 406, 402, 510), wherein the memory bank comprises a plurality of spin-transfer torque magnetic random access memory (STT-MRAM) cells and wherein each memory cell is arranged to store a data word at one of a plurality of memory addresses;a first level dynamic redundancy register (104, 314, 508, 700) comprising data storage elements a second level dynamic redundancy register (106, 316, 800) comprising data storage elements;and a pipeline (506) bank coupled to the memory bank, the first level dynamic redundancy register, and the second level dynamic redundancy register, wherein the pipeline bank is configured to: write a data word into the memory bank at a selected one of the plurality of memory addresses;verify the data word written into the memory bank to determine whether the data word was successfully written by the write;responsive to a determination that the data word was not successfully written by the write, writing the data word and the selected one of the plurality of memory addresses into the first level dynamic redundancy register;re-write the data word stored in the first level dynamic redundancy register into the memory bank at the selected one of the plurality of memory addresses;perform verification to determine if the data word was successfully written to the memory bank responsive to the re-writing;and responsive to a determination that the data was not successfully written during the rewriting, write the data word and the selected one of the plurality of memory addresses into a second level dynamic redundancy register.
  2. 2
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:attempt the re-write to the memory bank (102, 304, 406, 402, 510) a predetermined number of times prior to writing the data word and the selected one of the plurality of memory addresses into the second level dynamic redundancy register (106, 316, 800), and wherein the predetermined number is stored using control bits associated with re-write attempts.
  3. 3
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:write the data word and the selected one of the plurality of memory addresses into the second level dynamic redundancy register (106, 316, 800) on power down, wherein the first level dynamic redundancy register (104, 314, 508, 700) comprises volatile memory, and wherein the second level dynamic redundancy register comprises non-volatile memory.
  4. 4
    The memory device (100, 300, 400) of Claim 3, wherein the pipeline bank (506) is further configured to:restore the data word and the selected one of the plurality of memory addresses into the first level dynamic redundancy register (104, 314, 508, 700) from the second level dynamic redundancy register (106, 316, 800) during power up.
  5. 5
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:write the data word and the selected one of the plurality of memory addresses into the memory bank (102, 304, 406, 402, 510) from the second level dynamic redundancy register (106, 316, 800) on power down, wherein the wherein the second level dynamic redundancy register comprises volatile memory.
  6. 6
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:invalidate entries in the second level dynamic redundancy register (106, 316, 800) associated with the data word responsive to a determination that the data word for the selected one of the plurality of memory addresses was successfully written into the memory bank (102, 304, 406, 402, 510) by a different write operation for the selected one of the plurality of memory addresses.
  7. 7
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:invalidate entries in the first level dynamic redundancy register (104, 314, 508, 700) associated with the data word responsive to a determination that the data word for the selected one of the plurality of memory addresses was successfully written into the memory bank (102, 304, 406, 402, 510) by a different write operation for the selected one of the plurality of memory addresses.
  8. 8
    The memory device (100, 300, 400) of Claim 1, wherein the pipeline bank (506) is further configured to:transfer data from the first level dynamic redundancy register (104, 314, 508, 700) to the second level dynamic redundancy register (106, 316, 800) to free up space in the first level dynamic redundancy register.
  9. 9
    The memory device (100, 300, 400) of Claim 1, wherein the second level dynamic redundancy register (106, 316, 800) comprises status bits, wherein the status bits are operable to allow data manipulation of a particular entry within the second level dynamic redundancy register only if a predetermined number of status bits are flagged.
  10. 10
    The memory device (100, 300, 400) of Claim 1, wherein the second level dynamic redundancy register (106, 316, 800) comprises multiple copies of each data word stored in the second level dynamic redundancy register, and wherein a copy of a respective data word is selected based on a voting scheme.
  11. 11
    The memory device (100, 300, 400) of Claim 1, wherein the memory bank (102, 304, 406, 402, 510) comprises a pseudo-dual port memory bank, wherein the pseudo-dual port memory bank is operable to perform a write operation and a verify operation in a same clock cycle.
  12. 12
    The memory device (100, 300, 400) of Claim 11, wherein the write operation and the verify operation comprise data words that share a common row address.
  13. 13
    The memory device (100, 300, 400) of Claim 1, wherein the memory bank (102, 304, 406, 402, 510) comprises a dual port memory bank, wherein the dual port memory bank is operable to perform a write operation and a verify operation in a same clock cycle, and wherein the write operation and the verify operation comprise data words that share a common row address.
  14. 14
    A method of writing data into a memory device, the method comprising:writing a data word into a memory bank (102, 304, 406, 402, 510) at a selected one of a plurality of memory addresses, wherein the memory bank comprises a plurality of memory cells, wherein the memory cells are spin-transfer torque magnetic random access memory (STT-MRAM) memory cells, and wherein each memory cell is arranged to store a data word at one of a plurality of memory addresses;verifying the data word written into the memory bank to determine whether the data word was successfully written thereto;responsive to a determination that the data word was not successfully written, writing the data word and the selected one of the plurality of memory addresses into a first level dynamic redundancy register (104, 314, 508, 700);re-writing the data word stored in the first level dynamic redundancy register into the memory bank at the selected one of the plurality of memory addresses;performing verification to determine if the data word was successfully written to the memory bank responsive to the re-writing;and responsive to a determination that the data was not successfully written during the rewriting, writing the data word and the selected one of the plurality of memory addresses into a second level dynamic redundancy register (106, 316, 800).