Programming Non Volatile Memories
AssigneeInfineon Technologies AG
InventorsJan Otterstedt, Thomas Nirschl, Michael Bollu, Wolf Allers
Life of this patent
Estimating the term…
Abstract
Non volatile memories and methods of programming thereof are disclosed. In one embodiment, the method of programming a memory array includes receiving a series of data blocks, each data block having a number of bits that are to be programmed, determining the number of bits that are to be programmed in a first data block, determining the number of bits that are to be programmed in a second data block, and writing the first and the second data blocks into a memory array in parallel if the sum of the number of bits that are to be programmed in the first data block and the second data block is not greater than a maximum value.
Claims37
A method of programming a memory array, the method comprising:
- dividing data to be written into a plurality of first data blocks of a first length;
- calculating a first value, the first value being the number of bits that are to be programmed in each first data block;
- dividing data to be written into a plurality of second data blocks of a second length, the second length being larger than the first length;
- calculating a second value, the second value being the number of bits that are to be programmed in each second data block;
- and
- writing the bits that are to be programmed in the second data block in parallel if the second value is not greater than a maximum allowable number of bits programmed in parallel.
A method of programming a memory array, the method comprising:
- receiving a series of data blocks, each data block having a number of bits that are to be programmed;
- determining the number of bits that are to be programmed in a first data block;
- determining the number of bits that are to be programmed in a second data block;
- and
- writing the first data block into the memory array in parallel if the sum of the number of bits that are to be programmed in the first data block and the second data block is greater than a maximum value.
A method of programming a memory array, the method comprising:
- dividing data to be written into a plurality of first data blocks of a first length;
- calculating a first value, the first value being the number of bits that are to be programmed in each data block of the plurality of first data blocks;
- calculating a second value, the second value being the number of bits that are to be programmed in an immediately subsequent data block of the plurality of first data blocks;
- calculating a third value, the third value being the sum of the first and the second values;
- and
- writing the bits that are to be programmed in the first data block and the immediately subsequent data block in parallel if the third value is not greater than a maximum allowable number of bits programmed in parallel.
A memory circuit comprising:
- a non volatile memory array comprising non volatile memory devices;
- a charge pump coupled to the plurality of non volatile memory array, the charge pump powering the programming of the non volatile memory devices;
- a controller coupled to the plurality of non volatile memory array, the controller comprising a means to count the number of bits that are to be programmed in a series of data blocks of data to be written, wherein the controller generates a first value, the first value being the number of bits to be written in parallel, wherein the first value is an integer multiple of a second value, wherein the second value is a predefined value and comprises the smallest number of bits written in parallel;
- a switch coupled between the charge pump and the non volatile memory array, wherein the switch comprises a means to couple a portion of the non volatile memory devices totaling the first value with the charge pump.
Dependencies are inferred from the claim text.