## Abstract

Multilevel flash memory contains blocks of cells that represent data by the amount of charge stored in them. The cell writing - or programming - process applies specified voltages in a sequential manner, injecting charge to achieve a desired level. Reducing a cell level requires a costly block erasure, so programming only increases cell levels. Parallel programming, whereby a common voltage is applied to a group of cells to inject charge simultaneously, simplifies circuitry and increases programming speed. However, cell-to-cell variations and limited programming round can adversely affect its precision. In this paper, we consider algorithms for efficient cell programming. Since cell levels are quantized to a discrete set of values, our objective is to minimize the number of cells that are not quantized to their target levels. For a specified number of programming rounds, we derive an optimal parallel programming algorithm with complexity that is polynomial in the number of cells. We extend the algorithm to account for intercell interference, where the voltage applied to a cell can affect the level of adjacent cells. We then consider noisy programming of a single cell, with and without feedback about the cell level. In both scenarios, we present an algorithm that, for a given number of programming rounds, minimizes the probability of an incorrect cell level.

Original language | English |
---|---|

Article number | 6675761 |

Pages (from-to) | 2780-2795 |

Number of pages | 16 |

Journal | IEEE Transactions on Information Theory |

Volume | 60 |

Issue number | 5 |

DOIs | |

State | Published - May 2014 |

Externally published | Yes |

## Keywords

- Flash memory programming
- Intercell interference
- Parallel programming

## All Science Journal Classification (ASJC) codes

- Information Systems
- Computer Science Applications
- Library and Information Sciences