Methods to re-use stuck cells in data storage, and associated memory systems
Disclosed is a method of storing data in a stuck-cell memory page of a memory array, the stuck-cell memory page having a cell at a stuck-cell-identifier cell of the memory page stuck at a stuck-cell-value, the method comprising: identifying a match between a first dataset and the stuck-cell memory page; and storing the dataset in the stuck-cell memory page; wherein the identifying a match comprises identifying that the at least one bit of the dataset which corresponds to the stuck-cell-identifier of the memory cell has a value which is equal to the stuck-cell value. A memory system configured for the above method is further disclosed.
1 . A method of storing data in a stuck-cell memory page of a memory array, the stuck-cell memory page having a cell at a stuck-cell-identifier cell of the memory page stuck at a stuck-cell-value, the method comprising:
identifying a match between a first dataset and the stuck-cell memory page; and
storing the dataset in the stuck-cell memory page;
wherein the identifying a match comprises identifying that the at least one bit of the dataset which corresponds to the stuck-cell-identifier of the memory cell has a value which is equal to the stuck-cell value;
wherein the step of identifying a match comprises identifying a match from a plurality of stored datasets stored in the memory array.
2 . The method according to claim 1 , wherein the cell is a single-bit cell, and the at least one bit is a single bit having a value of a one of “0” and “1”.
3 . The method according to claim 1 , wherein the cell is an n-bit cell, and the at least one bit is n bits.
4 . The method of claim 1 further comprising:
identifying the stuck-cell memory page, by
writing a to-be-written dataset to the memory page;
reading a check dataset from the memory page; and
identifying a mismatch between the to-be-written dataset and the read dataset at the stuck-cell-identifier.
5 . The method according to claim 1 further comprising maintaining a stuck page list being a list of stuck-cell memory pages, wherein the stuck page list includes a stuck-cell-identifier and a stuck-cell value for each respective stuck-cell memory page.
6 . The method of claim 5 , further comprising:
identifying the stuck-cell memory page, by
writing a to-be-written dataset to the memory page;
reading a check dataset from the memory page; and
identifying a mismatch between the to-be-written dataset and the read dataset at the stuck-cell-identifier,
in response to identifying the stuck-cell memory page, adding the stuck-cell memory page to the stuck page list.
7 . The method of claim 1 , wherein the plurality of stored datasets consists of program code.
8 . The method of claim 1 , further comprising moving other dataset between pages of the memory array to tend to equalise a number of write operations to each memory page in the memory array.
9 . The method of claim 1 , wherein the dataset is unaltered.
10 . The method of claim 1 , wherein each page of the memory array has a physical address, the method further comprising maintaining a table-map between respectively logical addresses of each dataset and the physical address in which it is stored.
11 . A method of storing data in a stuck-cell memory page of a memory array, the stuck-cell memory page having a cell at a stuck-cell-identifier cell of the memory page stuck at a stuck-cell-value, the method comprising:
identifying a match between a first dataset and the stuck-cell memory page; and
storing the dataset in the stuck-cell memory page;
wherein the identifying a match comprises identifying that the at least one bit of the dataset which corresponds to the stuck-cell-identifier of the memory cell has a value which is equal to the stuck-cell value;
wherein the method further comprises maintaining a stuck page list being a list of stuck-cell memory pages, wherein the stuck page list includes a stuck-cell-identifier and a stuck-cell value for each respective stuck-cell memory page;
wherein the method further comprises in response to a request to write the first dataset into the memory array, using the list to identify a match between the first dataset and a stuck-cell memory page in the stuck page list wherein the using the list includes polling the stuck page list and comparing stuck-cell pages in the list with the first dataset to determine whether a stuck-cell value of a stuck-cell page matches a value of an associated bit in the first dataset.
12 . A memory system comprising:
a memory array comprising a plurality of memory pages;
a table-map associating logical addresses of the memory pages with physical addresses in the memory array;
a stuck page list comprising a list of stuck-cell memory pages, each having a cell at a stuck-cell-identifier cell of the memory page stuck at a stuck-cell-value;
and a memory controller, configured to identify a match between a first dataset and a stuck-cell memory page having a cell at a stuck-cell-identifier cell of the memory page stuck at a stuck-cell-value, and to store the dataset in the memory page;
wherein the controller is configured to identify a match by identifying a match from a plurality of stored datasets stored in the memory array.
13 . The memory system according to claim 12 , wherein the cell is a single-bit cell, and the at least one bit is a single bit having a value of a one of “0” and “1”.
14 . The memory system according to claim 12 , wherein the cell is an n-bit cell, and the at least one bit is n bits.
15 . The memory system according to claim 12 , wherein the controller is further configured to identify the stuck-cell memory page, by:
writing a to-be-written dataset to the memory page;
reading a check dataset from memory page; and
identifying a mismatch between the to-be-written dataset and the read dataset at the stuck-cell-identifier.
16 . The memory system according to claim 12 ,
wherein the controller is further configured to: in response to a request to write a first dataset into the memory array, use the list to identify a match between the first dataset and a stuck-cell memory page in the stuck page list.
17 . The memory system of claim 12 , wherein the plurality of stored datasets consists of program code.
18 . The memory system according to claim 12 , wherein the controller is further configured to move other dataset between pages of the memory array to tend to equalise a number of write operations to each memory page in the memory array.