Ultra-precise tuning of neural memory cells
Examples for ultra-precise tuning of a selected memory cell are disclosed. In one example, a method of programming a first memory cell in a neural memory to a target value is disclosed, the method comprising programming a second memory cell by applying programming voltages to terminals of the second memory cell; and determining if an output of the first memory cell has reached the target value.
1 . A method of programming a first memory cell in a neural memory to a target value, comprising:
programming a second memory cell by applying programming voltages to terminals of the second memory cell;
determining if an output of the first memory cell has reached the target value; and
if the output of the first memory cell has not reached the target value, repeating the programming and determining until the output of the first memory cell has reached the target value.
2 . The method of claim 1 , wherein the second memory cell is adjacent to the first memory cell.
3 . The method of claim 1 , wherein the first memory cell is coupled to a data bitline and the second memory cell is coupled to a tuning bitline.
4 . The method of claim 1 , wherein the first memory cell and the second memory cell are contained in an analog neural memory array.
5 . The method of claim 1 , wherein for each repeating operation, increasing one or more of the programming voltages applied to the terminals of the second memory cell.
6 . The method of claim 1 , wherein the same programming voltages are used during each repeating operation.
7 . The method of claim 1 , wherein the terminals of the second memory cell comprise a bit line terminal, a source line terminal, and a word line terminal.
8 . The method of claim 7 , wherein the terminals of the second memory cell further comprise a control gate terminal.
9 . The method of claim 8 , wherein the control gate terminal of the first memory cell is connected to a control gate line, and wherein the control gate line is connected to control gate terminals of a column of cells containing the first memory cell and an adjacent column of cells containing the second memory cell.
10 . The method of claim 8 , wherein the terminals of the second memory cell further comprise an erase gate terminal.
11 . The method of claim 10 , wherein the control gate is orthogonal to the erase gate.
12 . The method of claim 10 , wherein the control gate is orthogonal to the source line.
13 . The method of claim 1 , wherein the first memory cell and the second memory cells are split-gate memory cells.
14 . The method of claim 1 , wherein the first memory cell and the second memory cell are stacked-gate memory cells.
15 . The method of claim 1 , wherein a charge equivalent to a sub-single electron is added to the floating gate of the first memory cell during the programming.
16 . The method of claim 1 , wherein the first memory cell and the second memory cell are contained within an array comprising a plurality of pairs of adjacent data cells and tuning cells.
17 . The method of claim 16 , wherein a distance between adjacent data cells is greater than a distance between an adjacent data cell and tuning cell.
18 . The method of claim 1 , wherein during the determining, a bit line coupled to the first memory cell and a bit line coupled to the second memory cell are both coupled to a sense amplifier.
19 . The method of claim 1 , further comprising:
performing coarse programming on the first memory cell.
20 . The method of claim 1 , further comprising:
performing coarse programming on the first memory cell; and
performing precision programming on the first memory cell.
21 . A method of programming a first memory cell in a neural memory to a target value, comprising:
determining which bitline in a pair of adjacent bitline contains greater noise and designating that bitline as a tuning bitline and designating the other bitline in the pair as a data bitline;
programming a second memory cell coupled to the tuning bitline by applying programming voltages to terminals of the second memory cell;
determining if an output of the first memory cell coupled to the data bitline has reached the target value.