Triple modular redundancy for fault-tolerant in-memory computing
Methods, systems, and devices related to 3D self-selecting-memory array of memory cells are described. The method relates to a solution for improving the fault-tolerant capability of memory devices, including: applying a triple-modular-redundancy calculation in a programming phase of the memory cells of a memory array, and adopting a sequence of two opposite dual polarity algorithms applied along a selected bit line and in parallel on the at least three selected word lines of the memory array.
1. A method for improving a fault-tolerant capability of memory devices, comprising:
applying a triple-modular-redundancy calculation in a programming phase of memory cells of a memory array; and
adopting a sequence of two opposite dual polarity algorithms applied along a selected bit line and in parallel on at least three selected word lines of the memory array.
2. The method of claim 1 , wherein a majority voting scheme is implemented by correcting wrong bits and rebuilding an integrity of copies of data used in the triple-modular-redundancy calculation during in-memory computing operations.
3. The method of claim 1 , wherein each dual polarity algorithm comprises two pulses with respective polarities:
a first pulse used for detecting a cell state of a memory cell; and
a second pulse with a correct polarity for data programming.
4. The method of claim 3 , wherein a snap detector circuit is activated during the first pulse of each dual polarity algorithm in the sequence to detect the cell state of the memory cell and in case skip the second pulse of the dual polarity algorithm.
5. The method of claim 1 , wherein a current flowing through the selected bit line is checked by a current comparator circuit, and for each dual polarity algorithm:
if the current flowing through the selected bit line is less than a threshold reference current, then a second pulse of the dual polarity algorithm is applied;
if the current flowing through the selected bit line is greater than or equal to the threshold reference current, then the second pulse of the dual polarity algorithm is skipped.
6. The method of claim 5 , wherein a phase of checking and comparing a value of the current flowing through the selected bit line is applied to the dual polarity algorithms.
7. The method of claim 1 , wherein the sequence of two opposite dual polarity algorithms is a sequence comprising an R 2 S operation and an S 2 R operation, applied along the selected bit line and in parallel on the at least three selected word lines of the memory array.
8. The method of claim 1 , wherein each dual polarity algorithm comprises:
applying a first pulse having a first polarity to a memory cell storing a first logic state;
detecting a snapback event at the memory cell in response to applying the first pulse;
applying a second pulse having a second polarity different than the first polarity to the memory cell in response to detecting the snapback event; and
storing a second logic state different than the first logic state in the memory cell based at least in part on applying the second pulse to the memory cell.
9. The method of claim 8 , further comprising:
applying a first voltage to a first access line coupled with the memory cell; and
applying a second voltage to a second access line coupled with the memory cell, wherein applying the first pulse is based at least in part on applying the first voltage and the second voltage.
10. The method of claim 9 , further comprising:
applying the second voltage to the first access line; and
applying the first voltage to the second access line, wherein applying the second pulse is based at least in part on applying the first voltage to the second access line and the second voltage to the first access line.
11. The method of claim 1 , wherein a memory device of the memory devices is a 3D vertical cross point memory device configured for performing in-memory computing (IMC) operations.
12. The method of claim 1 , further comprising:
performing a material implication operation on values stored on one and another of a plurality of memory cells coupled to a first access line by applying a plurality of material implication signals in a particular sequence on the one and the another of the plurality of memory cells.