Data randomization using memory block access counts
US-2017090764-A1 · Mar 30, 2017 · US
US9715943B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9715943-B2 |
| Application number | US-201514824935-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 12, 2015 |
| Priority date | Aug 12, 2015 |
| Publication date | Jul 25, 2017 |
| Grant date | Jul 25, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Data words to be written to a memory location are delta encoded in multi-write avoidance (“MWA”) code words. MWA code words result in no re-writing of single-bit storage cells containing logical “0's” to a “0” state and no re-writing of logical “1's” to cells that have already been written once to a logical “1.” Potential MWA code words stored in a look-up table (“LUT”) are indexed by a difference word DELTA_D. DELTA_D represents a bitwise difference (“delta”) between a data word currently stored at the memory location and a new data word (“NEW_D”) to be stored at the memory location. Validation and selection logic chooses an MWA code word representing NEW_D to be written if the MWA code word does not violate the principle of multi-write avoidance. Some embodiments generate the MWA code words using a pattern generator rather than indexing the MWA code words from a LUT.
Opening claim text (preview).
What is claimed is: 1. A semiconductor memory cell multi-write avoidance (MWA) encoding apparatus, comprising: a memory cell reset avoidance (MCRA) decoder to receive an existing (2^m)−1 bit wide MWA code word (OLD_C) from a subset of storage cells in a semiconductor memory array, OLD_C representing an existing m-bit data word (OLD_D), the MCRA decoder to decode OLD_C to determine OLD_D; a two-dimensional delta encoding look-up table (LUT) communicatively coupled to the MCRA decoder to be indexed by a DELTA_D, the DELTA_D being an m-bit word, each set bit of the DELTA_D representing a state change at a corresponding bit position between the OLD_D and a NEW_D to be encoded as a NEW_C and stored in the subset of storage cells in the semiconductor storage array, the delta encoding LUT to store a plurality of potential difference code words DELTA_C(I) corresponding to each possible DELTA_D, each set bit of each DELTA_C(I) representing a state change at a corresponding bit position between the OLD_C and the NEW_C, at least one of the plurality of difference code words DELTA_C(I) to satisfy an MWA requirement of having no bits set at bit positions for which bits are set in the OLD_C; and DELTA_C validity test and selection logic communicatively coupled to the delta encoding LUT to determine which, if any, of the DELTA_C(I) meet the MWA requirement and to enable an update of OLD_C in the set of storage cells by a selected one of the DELTA_C(I) meeting the MWA requirement and denominated “DELTA_C”. 2. The semiconductor memory cell MWA encoding apparatus of claim 1 , further comprising: an AND logic portion of the DELTA_C validity test and selection logic to receive the OLD_C and each of the DELTA_C(I) words and to test each of the DELTA_C(I) words by confirming that a bitwise compare of the OLD_C to each DELTA_C(I) results in all logical “0's”. 3. The semiconductor memory cell MWA encoding apparatus of claim 2 , the MCRA decoder further comprising: a data word generator to generate a series of m-bit data words D, each data word having a binary weighted value K, from K=1 through K=2^m−1; a data word index generator to generate a series of data word bit position indices i from i=0 through i=m−1; a data bit indexer coupled to the data word index generator and to the data word generator to receive a current value of the index i from the data word index generator and to receive a current value of the data word K from the data word generator and to output a state of the i th bit of the current K, B(K,i); a code bit indexer coupled to the data word generator to receive the current K and coupled to a decoder input terminal to receive a code word C to be decoded, the code bit indexer to output a state of the (K−1) th bit of C, C(K−1); and intersection XOR logic communicatively coupled to the data bit indexer and to the code bit indexer to perform, for each i, an XOR operation on all bits for which B(K,i) and C(K−1) are both logical “1” in order to generate a corresponding bit D(i) of a decoded data word D. 4. The semiconductor memory cell MWA encoding apparatus of claim 3 , the MCRA decoder further comprising: AND logic coupled to the data bit indexer and to the code bit indexer to determine, for each K and each i, whether bits B(K,i) and C(K−1) are both set; an intersection bit buffer coupled to the code bit indexer to store (K−1) for each K of a current i if bits B(K,i) and C(K−1) are both set; and store logic coupled to the AND logic to trigger a store operation. 5. The semiconductor memory cell MWA encoding apparatus of claim 3 , the MCRA decoder further comprising: data value tracking logic coupled to the data word generator to determine whether all possible data words have been generated while i is set to a current value, to request a next K if all possible data words have not been generated for a current value of i, and to initiate the XOR operation if all possible data words have been generated while i is set to the current value; and data word index tracking logic coupled to the data word index generator to determine whether all values of i have been generated following an XOR operation, to request a next i if all values of i have not been generated, and to terminate decoding if all value of i have been generated. 6. The semiconductor memory cell MWA encoding apparatus of claim 2 , entries in the delta encoding LUT determined by generating all bit combinations of a (2^m−1) bit word with at most two bits set to create LUT DELTA_C(I) values, decoding each LUT DELTA_C(I) value using an off-line MCRA decoder at a time prior to encoding to determine a LUT DELTA_D value corresponding to each LUT DELTA_C(I) value, and associating the LUT DELTA_D values and the corresponding LUT DELTA_C(I) values in the LUT. 7. The semiconductor memory cell MWA encoding apparatus of claim 6 , further comprising: table lookup logic coupled to the XOR logic to receive the DELTA_D and to index the plurality of potential MWA code words DELTA_C(I) from the table using the DELTA_D. 8. The semiconductor memory cell MWA encoding apparatus of claim 2 , further comprising: m-bit wide exclusive OR (XOR) logic coupled to the MCRA decoder to receive the OLD_D and the NEW_D and to perform a bitwise XOR operation on the OLD_D and the NEW_D in order to create the DELTA_D. 9. A semiconductor memory cell multi-write avoidance (“MWA”) encoding apparatus, comprising: a memory cell reset avoidance (MCRA) decoder to receive an existing (2^m)−1 bit wide MWA code word (OLD_C) from a subset of storage cells in a semiconductor memory array, OLD_C representing an existing m-bit data word (OLD_D), the MCRA decoder to decode OLD_C to determine OLD_D an m-bit pattern generator communicatively coupled to the MCRA decoder to generate an intermediate data word (DATA_I), DATA_I to be combined with a data difference word DELTA_D and encoded to form a trial difference code word (DELTA_C_TRIAL), the DELTA_D being an m-bit word, each set bit of the DELTA_D representing a state change at a corresponding bit position between the OLD_D and a NEW_D to be encoded as a NEW_C and stored in the subset of storage cells in the semiconductor array, each set bit of the DELTA_C_TRIAL representing a state change at a corresponding bit position between the OLD_C and the NEW_C; and DELTA_C validity test logic communicatively coupled to the m-bit pattern generator to determine if the DELTA_C_TRIAL satisfies an MWA requirement of having no bits set at bit positions for which bits are set in the OLD_C by performing a logical AND operation on the OLD_C and on the DELTA_C_TRIAL, to enable an update of OLD_C in the set of storage cells by the DELTA_C_TRIAL denominated DELTA_C if the DELTA_C_TRIAL meets the MWA requirement, and to request a different DATA_I of the m-bit pattern generator in order to generate a different DELTA_C_TRIAL if the DELTA_C_TRIAL does not meet the MWA requirement. 10. The semiconductor memory cell MWA encoding apparatus of claim 9 , further comprising: first m-bit wide exclusive OR (XOR) logic coupled to the MCRA decoder to receive the OLD_D and the NEW_D and to perform a bitwise XOR operation on the OLD_D and the NEW_D in order to create the DELTA_D. 11. The semiconductor memory cell MWA encoding apparatus of claim 10 , further comprising: second m-bit XOR logic coupled to the first m-bit XOR logic and to the m-bit pattern generator to receive the DELTA_D and the DATA_I and to perform a bitwise XOR operation on the DELTA_D and the DATA_I in order to create an intermediate data difference word (DELTA_D_I). 12. The semiconductor memory cell MWA encoding apparatus of claim 11 , further comprising: a first binary weight encod
Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor · CPC title
Write conditionally, e.g. only if new data and old data differ · CPC title
Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles · CPC title
Response verification devices · CPC title
Data generation devices, e.g. data inverters · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.