Method and apparatus for memory fault tolerance
View Patent ↗One or more circuits may comprise an array of memory cells corresponding to a particular memory address, and a memory fault mitigation module. The one or more circuits may be operable to write a data block to the array of memory cells. The write operation may comprises a swap of a first portion of the data block with a second portion of the data block in response to a detection that one or more memory cells of the array is faulty, and storing the data block to the array of memory cells after the swap.
1. A system comprising:
one or more circuits comprising an array of memory cells corresponding to a particular memory address, and a memory fault mitigation module, said one or more circuits being operable to:
receive a data block to be written to said array of memory cells;
detect whether said data block contains a first type of data or a second type of data; and
write said data block to said array of memory cells, wherein:
said data block bypasses said memory fault mitigation module if said data block contains said first type of data; and
said write comprises a swap, in said memory fault mitigation module, of a first portion of said data block with a second portion of said data block if said data block contains said second type of data.
2. The system of claim 1 , wherein:
said first portion of the data block is a more-significant one or more bits of said data block; and
said second portion of the data block is a less-significant one or more bits of said data block.
3. The system of claim 1 , wherein said write operation is performed as part of processing a datastream.
4. The system of claim 3 , wherein said processing of said datastream comprises deinterleaving said datastream.
5. The system of claim 1 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement;
for said first arrangement, a location of said first portion within said data block corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of said second portion within said data block corresponds to said location of said faulty cell within said array of memory cells.
6. The system of claim 2 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement;
for said first arrangement, a location of said more-significant one or more bits within said data block corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of said less-significant one or more bits within said data block corresponds to said location of said faulty cell within said array of memory cells.
7. The system of claim 1 , wherein said first portion of said data block is more sensitive to a faulty memory cell than said second portion of said data block.
8. The system of claim 1 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement; and
said swap is in response to a determination that:
for said first arrangement, a location of a more-fault-sensitive one of said first portion and said second portion within said data block corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of a less-fault-sensitive one of said first portion and said second portion within said data block corresponds to said location of said faulty cell within said array of memory cells.
9. A system comprising:
one or more circuits comprising an array of memory cells corresponding to a particular memory address, and a memory fault mitigation module, said one or more circuits being operable to:
determine whether bits of data to be read from said array of memory cells comprise a first type of data or a second type of data; and
read said bits of data from said array of memory cells, wherein said read comprises:
retrieval of said bits of data from said array of memory cells;
if said retrieved bits of data comprise said first type of data, a bypass of said memory fault mitigation module; and
if said retrieved bits of data comprise said second type of data, a swap, in said memory fault mitigation module, of a first portion of said retrieved bits of data with a second portion of said retrieved bits of data.
10. The system of claim 9 , wherein:
said first portion of said retrieved bits of data is a more-significant one or more bits of said retrieved bits of data; and
said second portion of said retrieved bits of data is a less-significant one or more bits of said retrieved bits of data.
11. The system of claim 9 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement;
for said first arrangement, a location of said first portion within said data block corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of said second portion with said data block corresponds to said location of said faulty cell within said array of memory cells.
12. The system of claim 10 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement;
for said first arrangement, a location of said more-significant one or more bits within said retrieved bits of data corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of said less-significant one or more bits within said retrieved bits of data corresponds to said location of said faulty cell within said array of memory cells.
13. The system of claim 9 , wherein said first portion of said retrieved bits of data is more sensitive to a faulty memory cell than said second portion of said retrieved bits of data.
14. The system of claim 9 , wherein:
prior to said swap, said first portion and said second portion are in a first arrangement;
subsequent to said swap, said first portion and said second portion are in a second arrangement; and
said swap is in response to a determination that:
for said first arrangement, a location of a more-fault-sensitive one of said first portion and said second portion within said data block corresponds to a location of a faulty cell within said array of memory cells; and
for said second arrangement, a location of a less-fault-sensitive one of said first portion and said second portion within said data block corresponds to said location of said faulty cell within said array of memory cells.