IP Library Granted Patent US 7,957,204
Granted Patent B1
US 7,957,204 · App. 11/229,667 · Granted Jun 7, 2011

Flash memory programming power reduction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,957,204
App. No.
11/229,667
Granted
Jun 7, 2011
Kind
B1
Abstract

A non-volatile memory device includes an array of non-volatile memory cells. When programming the memory cells, a voltage supply source is used that includes multiple independent charge pumps. The independent charge pumps supply the programming voltage to different ones of bit lines in the array of memory cells. Using multiple charge pumps tends to reduce output voltage fluctuations and thereby reduce power loss.

Claims (60)

1. A non-volatile memory device comprising:

an array of non-volatile memory cells including a plurality of bit lines each connected to source or drain regions of a plurality of the memory cells;

logic to cause the array of non-volatile memory cells to be programmed as a programming window that includes a number of bits, the programming window being divided into a plurality of sub-windows,

where, when causing the array of non-volatile memory cells to be programmed, the logic is to:

determine whether first bits, of bits included in a sub-window, of the plurality of sub-windows, to be programmed correspond to a majority of the bits included in the sub-window,

determine that second, different bits, of the bits included in the sub-window, are to be programmed when the first bits correspond to the majority of bits, each bit of the second bits being different than each bit of the first bits, the first bits not being programmed when the first bits correspond to the majority of the bits, and

determine that a configuration bit, of the bits included in the sub-window, is to be programmed when the first bits correspond to the majority of the bits, the configuration bit indicating that the second bits are to be programmed;

a voltage supply generator to generate a programming voltage for programming the plurality of the memory cells, the voltage supply generator including a plurality of charge pump groups,

where the plurality of the memory cells are programmed by writing at least one of the plurality of sub-windows to the plurality of the memory cells, the at least one of the plurality of sub-windows including the sub-window,

where each of the plurality of charge pump groups includes a plurality of independent charge pumps, and

where a particular number of the plurality of charge pump groups are activated based on a number of the second bits and the configuration bit when the first bits correspond to the majority of bits; and

select switches, connected to the voltage supply generator, to control application of a voltage from the voltage supply generator to the plurality of bit lines when writing the at least one of the plurality of sub-windows to the plurality of the memory cells.

2. The memory device of claim 1 , where the array of non-volatile memory cells includes:

a plurality of word lines, arranged orthogonally to the bit lines, each word line being connected to gate regions of the plurality of the memory cells.

3. The memory device of claim 2 , where the plurality of the memory cells are SONOS (silicon-oxide-nitride-oxide-silicon) type NOR memory cells.

4. The memory device of claim 1 , where each independent charge pump includes five charge pump stages.

5. The memory device of claim 1 , where each independent charge pump receives an input voltage ranging from about 1.7 volts to about 1.95 volts and generates an output voltage ranging from about 5.5 volts to about 8 volts.

6. The memory device of claim 1 , where each of the plurality of independent charge pumps share a common clock signal.

7. The memory device of claim 1 , where, when causing the array of non-volatile memory cells to be programmed as a programming window, the logic is to one of:

cause particular ones of the plurality of sub-windows to be programmed simultaneously, or

cause each of the plurality of sub-windows to be programmed sequentially.

8. The memory device of claim 1 , where at least one of the plurality of sub-windows is a 64-bit sub-window.

9. The memory device of claim 1 , where the logic is further to:

determine that the first bits do not correspond to the majority of the bits,

determine that the first bits are to be programmed when the first bits do not correspond to the majority of bits, the second bits not being programmed when the first bits do not correspond to the majority of bits.

10. A method of programming a non-volatile memory array, the method comprising:

receiving a programming window including bits that are to be written to the memory array,

where the received programming window comprises a plurality of sub-windows;

determining a number of bits, of the bits, included in one or more of the plurality of sub-windows, that are to be programmed in the non-volatile memory array,

where determining the number of bits that are to be programmed includes:

determining whether first bits, of bits included in a sub-window, of the plurality of sub-windows, to be programmed includes a majority of the bits included in the sub-window,

determining that second bits, of the bits included in the sub-window, are to be programmed when the first bits include the majority of bits, each bit of the second bits being different than each bit of the first bits, the first bits not being programmed when the first bits include the majority of the bits, and

determining that a particular bit, of the bits included in the sub-window, is to be programmed when the first bits include the majority of the bits, the particular bit indicating that the second bits are to be programmed;

turning on a number of a plurality of charge pumps based on the determined number of bits that are to be programmed, the determined number of bits that are to be programmed including the second bits and the particular bit when the first bits include the majority of the bits,

where the charge pumps are configured as a plurality of charge pump groups, each charge pump group including a plurality of independent charge pumps,

and

where turning on the number of the plurality of charge pumps comprises turning on the number of the plurality of charge pump groups based on the determined number of bits that are to be programmed;

turning on a number of a plurality of switches, where the switches connect the number of the plurality of charge pump groups to a number of a plurality of bit lines in the non-volatile memory array; and

programming the determined number of bits by supplying power from the turned-on number of the plurality of charge pump groups to one or more of the memory cells corresponding to the determined number of bits.

11. The method of claim 10 , where the independent charge pumps share a common clock.

12. The method of claim 10 , where the plurality of charge pump groups are turned on such that an additional one or more of the plurality of charge pump groups are turned on when additional one or more bits, included in additional one or more of the plurality of sub-windows, are to be programmed.

13. The method of claim 10 , where the plurality of charge pump groups are turned on such that voltage fluctuations are minimized.

14. The method of claim 10 , where each independent charge pump includes five charge pump stages.

15. The method of claim 10 , where each independent charge pump receives an input voltage ranging from about 1.7 volts to about 1.95 volts and generates an output voltage ranging from about 5.5 volts to about 8 volts.

16. The method of claim 10 , further comprising:

determining that the first bits do not include the majority of the bits, and

determining that the first bits are to be programmed when the first bits do not include the majority of bits.

17. A memory device comprising:

a core array including at least one array of non-volatile memory cells;

logic to cause the at least one array of non-volatile memory cells to be programmed as a programming window that includes a plurality of sub-windows,

where, when causing the at least one array of non-volatile memory cells to be programmed, the logic is to:

determine whether first bits, of bits included in a sub-window of the plurality of sub-windows, to be programmed include a majority of the bits included in the sub-window,

determine that second bits, of the bits included in the sub-window, are to be programmed when the first bits include the majority of bits, each bit of the second bits being different than each bit of the first bits, the second bits including a bit indicating that the second bits are to be programmed, the first bits not being programmed when the first bits include the majority of the bits;

a voltage supply generator to generate a programming voltage for programming the at least one array of non-volatile memory cells in the core array as the programming window, the voltage supply generator including a plurality of charge pump groups configured such that a number of the charge pump groups are turned on at a given time, and each of the charge pump groups include a plurality of independent charge pumps,

where the number of charge pump groups that are turned on at a given time is based on a number of bits, included in one or more of the plurality of sub-windows, that are to be programmed, the number of bits including the second bits when the first bits include the majority of bits; and

a plurality of select switches connected to the voltage supply generator and to a plurality of bit lines included in the array of non-volatile memory cells, where the plurality of select switches are to select bit lines, of the plurality of bit lines, corresponding to the number of bits that are to be programmed.

18. The memory device of claim 17 , where at least one of the plurality of charge pump groups comprises four independent charge pumps and where at least one of the plurality of sub-windows includes 64 bits.

19. The memory device of claim 17 , where the logic is further to:

determine that the first bits do not include the majority of the bits,

determine that the first bits are to be programmed when the first bits do not include the majority of bits, the second bits not being programmed when the first bits do not include the majority of bits.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2016
From: CYPRESS SEMICONDUCTOR CORPORATION
To: MONTEREY RESEARCH, LLC
Reel/Frame 040911/0238 →
PARTIAL RELEASE OF SECURITY INTEREST IN PATENTS Recorded Aug 11, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 039708/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: SPANSION, LLC
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 036050/0337 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
SECURITY AGREEMENT Recorded Aug 23, 2012
From: SPANSION LLC; SPANSION INC.; SPANSION TECHNOLOGY INC.; SPANSION TECHNOLOGY LLC
To: BARCLAYS BANK PLC
Reel/Frame 028840/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2005
From: WU, YONGGANG; WANG, GUOWEI; YANG, NIAN; CHANDRA, SACHIT; LEE, AARON
To: SPANSION LLC
Reel/Frame 017013/0276 →