TECHNICAL FIELDThe disclosure herein relates to non-volatile flash memory systems generally and more specifically to data communication speeds of such systems.
BACKGROUNDFlash memory, which is a form of non-volatile memory, has become an increasingly popular means of electronic data storage. Flash memory is particularly advantageous to traditional magnetic forms of memory storage, as it is more durable and allows for faster data accesses. In a standard flash memory, data is stored across a plurality of floating-gate transistors, known as “cells”, typically in large blocks. Each cell functions like a standard metal-oxide-semiconductor field-effect transistor (MOSFET) with the exception of a second (“floating”) gate, electrically isolated between the standard control gate and the MOSFET channel, acting in a capacitive capacity for storing electric charge thereon. Accordingly, each cell is capable of storing a single bit, or multiple bits, of data based on the charge of the floating gate. For example, an uncharged floating gate may correspond to logic “1” bit of data, while a sufficiently (negative) charged floating gate may correspond to logic “0” bit of data. Cells are typically initialized (and reset) to a logic “1” state (i.e. no negative charge is initially stored on the floating gate), and may be subsequently programmed (i.e. written) to a logic “0” state. To the contrary, individual cells (within a block) may not be independently reset from a logic “0” state back to a logic “1” state, due to flash memory architecture constraints. In other words, large blocks of cells are generally erased all at once.
Flash memory is typically found in two different varieties: NOR and NAND. The main difference between NOR and NAND flash memories lies in the configuration of the cells. Cells of a NOR memory are coupled to a bit line in parallel, thus allowing individual access to each of the cells. On the other hand, cells of a NAND memory are coupled to a bit line in series, thus operations are typically performed across the entire series of cells coupled to the bit line at a time. However, the series configuration of cells allows for the cells to be placed in closer proximity to one another, resulting in more densely packed memory arrays. This makes NAND memory advantageous by utilizing smaller die area for greater data storage capacity. However, up until now the way in which data is programmed, within a NAND flash memory, has severely limited the speed and efficacy at which program operations may be performed, thus limiting the use of NAND memory primarily to mass-storage devices. At the same time, the increasing use of NAND flash memory in portable electronic applications such as laptop computers and digital cameras has necessitated faster program speeds (e.g. video recording).
FIG. 1A illustrates a prior-artNAND memory device100, made up of a bit line BL coupled to a plurality of cells1200-120n(for purposes of discussion, it is assumed that each of the cells1200-120nis a floating-gate transistor modeled after an NMOS). A bit lineselect transistor110 is coupled between the bit line BL and thefirst cell1200, and a groundselect transistor130 is coupled between thelast cell120nand a source terminal (e.g. a ground potential). Data is programmed into thememory device100, one cell at a time, by applying a high program voltage VPGMto the word line for the desired cell, and applying a pass voltage VPASSto the word lines of all of the remaining cells. For example, programming a bit of data into thecell1201requires first lowering the bit line BL to a low voltage (˜0V). The word line WL1is then raised to a suitable program voltage VPGM(˜20V) while the remaining word lines WL0and WL2-WLnare brought to a pass voltage VPASS(˜10V). Next, a high voltage VCCis applied to the bit select line BS which effectively “turns on” the bitselect transistor110, while a low voltage (˜0V) is applied to the ground select line GS which effectively “turns off” theground select transistor130. Accordingly, the pass voltage applied to the word lines WL0and WL2-WLnare sufficiently above a threshold voltage VTto allow therespective cells1200and1202-120nto conduct, regardless of any stored charge on their floating gates, thus allowing the high program voltage applied to the gate ofcell1201to induce electron tunneling onto the floating gate of thecell1201. An unfortunate constraint of this approach is that only one of the cells1200-120ncoupled to the bit line BL may be programmed at a time. In other words, each row (e.g., group of one or more cells each coupled to the same word line WL, often referred to as a “page”) of cells1200-120nis typically programmed sequentially. It should be noted that, for purposes of discussion, only a single bit line is shown with respect to thememory device100 ofFIG. 1A. However, theNAND memory device100 may have two or more bit lines BL displaced substantially parallel to one another, such that the bit lines13L and the word lines WL0-WLnare each coupled to an array of memory cells.
Still referring toFIG. 1A, data may be read from the NANDflash memory device100, one cell at a time, by applying a low read voltage VRDto the word line for the desired cell and applying the pass voltage VPASSto all of the remaining cells. Continuing from the previous example, in order to read out the data stored in thecell1201, the bit line BL is first charged to a voltage VBL. The word line WL1is then brought to a read voltage VRDwhile the remaining word lines WL0and WL2-WLnare once again brought to the pass voltage VPASS(˜10V). Now when the bit line selecttransistor110 and the groundselect transistor130 are turned on, the negatively stored charge on the floating gate ofcell1201effectively raises the threshold voltage VTofcell1201above the read voltage VRD, thus maintaining thecell1201in a non-conducting state. Accordingly, the charge on the bit line BL remains at the voltage VBL, and may be sensed and interpreted as a logical “0” bit of data. Alternatively, the presence of charge on the bit line BL may be sensed and interpreted as a logical “1” bit of data. On the other hand, if no charge was stored on the floating gate of cell1201(representing a logical 1 bit of data), then the application of the read voltage VRDmay sufficiently inducecell1201into a conducting state thus forming a path to ground. In such case, the charge on the bit line BL is pulled low, and may be sensed and interpreted as a logical “1” bit of data. Alternatively, the absence of charge on the bit line BL may be sensed and interpreted as a logical “0” bit of data.
FIG. 1B illustrates another prior-artNAND memory device160 made up of multipleNAND memory chains101 and102.Memory chain101 is made up of a bitselect transistor110, a first plurality of cells1200-120m, and a ground select transistor.Memory chain102 is made up of a bitselect transistor140, a second plurality of cells120m+1-120n, and a groundselect transistor150. The operation ofNAND memory device160 is very similar to that of theNAND memory device100, as described above in reference toFIG. 1A, with the exception that the twomemory chains101 and102 may be operated on separately. For example, turning on bitselect transistor110, while leaving bitselect transistor140 off, allows for programming to occur only within the cells1200-120m. This allows more cells to be coupled to the bit line BL while, at the same time, reducing power consumption. It is important to note that, individually, each of thememory chains101 and102 operates exactly the same as thememory device100, ofFIG. 1A.
It is also important to note that programming is generally completed on a first one of the cells1200-120nbefore programming may begin on a second one of the cells1200-120n, to ensure accurate programming of data. Thus, a programming operation still requires turning on exactly one of the bitselect transistors110 or140, and applying a program voltage VPGMto exactly one of the world lines WL0-WLn. For example, a programming ofcell1200would require first lowering the voltage of the bit line BL (˜0V). Next, bitselect transistor110 is turned on by raising the voltage on the bit select line BS_A to a voltage VCC, at the same time bitselect transistor140 is held off by applying a low voltage (˜0V) to the bit select line BS_B. A program voltage VPGMis then applied to the word line WL0, while a pass voltage is applied to all of the remaining word lines WL1-WLn. During this programming operation, both ground selecttransistors130 and150 are held in the “off” state. Similarly, read operations may be performed in the manner discussed above in reference toFIG. 1A.
FIG. 1C illustrates a timing diagram for a program operation within a NAND flash memory. The program operation ofFIG. 1C is herein discussed in reference to thememory device160 ofFIG. 1B. At time t0the bit line BL is brought low. At this time the first bit select line BS_A is set to a voltage VCCand the word line WL0is set to a voltage VPGM, while the word lines WL1-WLmare set to a voltage VPASSand the second bit select line BS_B and the remaining word lines WLm+1-WLnremain deasserted (for purposes of discussion, when referring to the signal levels on the word lines WL0-WLn, application of a program voltage VPGMis represented as an “asserted” signal, application of a pass voltage VPASSis represented as an “asserted but non-programming” signal, and application of a zero voltage is represented as a “deasserted” signal). The word line WL0remains asserted for the duration of time t0to t1needed to program data intocell1200, and the first bit select line BS_A also remains asserted for this entire duration, as discussed above in reference toFIGS. 1A and 1B. At time t1, after the program operation incell1200has completed, the first bit select line BS_A and the word lines WL0-WLmare deasserted, allowing the bit line BL to return to a non-programming state.
Then at time t2, the bit line is once again brought low. At this time the second bit select line BS_B is set to the voltage VCC, the word line WLnis set to the voltage VPGM, and the word lines WLm+1-WLn−1are set to the voltage VPASS. During this time the first bit select line BS_A and all other word lines WL0-WLmremain deasserted. The word line WLnremains asserted for the duration of time t2to t3needed to program data intocell1200, and the first bit select line BS_A also remains asserted for this entire duration. It should also be noted that, although not shown in the illustration ofFIG. 1C, the ground select lines GS_A and GS_B are constantly held low during the program operations.
The sequence of program operations in the example above may take a long time to complete, as a second program operation generally begins only after a first program operation is fully completed (i.e. only one of the word lines WL0-WLn may be asserted at any given time).
FIG. 2 illustrates another prior-artNAND memory device200 made up of an array of cells2210-221nand2220-222n, two bit lines BL1 and BL2 each coupled to a respective column of cells, via bitselect transistors211 and212 and groundselect transistors231 and232, and a plurality of word lines WL0-WLneach coupled to a respective row of cells. Note that, inFIG. 2, a voltage applied to any particular one of the word lines WL0-WLnis received at the gates of two cells. For example, a program voltage VPGMapplied to the word line WL1places bothcells2211and2221in a program state. In order to prevent an accidental programming of cell2221when programmingcell2211, the bit line BL2 should first be charged to a high voltage VCC. When the bitselect transistor212 is turned on, while the ground select transistor remains off, the current from the bit line BL2 creates a channel (˜7V) across each of the cells2220-222n. The voltage difference is small enough to prevent electrons from tunneling into the floating gates of any of the cells2220-222n, regardless of the voltages (VPASSor VPGM) applied to the respective word lines WL0-WLn. However, this places a further constraint on the programming of a NANDflash memory device200, as the cells, coupled to separate word lines WL0-WLn, of separate bit lines BL1 and BL2 are also programmed one at a time. In other words, only one of the word lines WL0-WLnmay be set to a program voltage VPGM, at any given time, across the entire array of cells2210-221n, and2220-222n. Accordingly, there exists a need for NAND flash memory devices with faster program speeds.
BRIEF DESCRIPTION OF THE DRAWINGSThe disclosure herein is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1A illustrates a prior-art NAND flash memory;
FIG. 1B illustrates another prior-art NAND flash memory;
FIG. 1C illustrates a timing diagram for program operation within a NAND flash memory;
FIG. 2 illustrates another prior-art NAND flash memory;
FIG. 3A illustrates a memory device according to an embodiment;
FIG. 3B illustrates a timing diagram for a program operation according to an embodiment;
FIG. 4 illustrates a memory device according to another embodiment;
FIG. 5 illustrates a memory device according to yet another embodiment;
FIG. 6 illustrates a memory device according to another embodiment;
FIG. 7 illustrates a memory system according to an embodiment;
FIG. 8 illustrates a memory system according to another embodiment.
DETAILED DESCRIPTIONIn embodiments disclosed herein, a NAND flash memory device is disclosed which can perform concurrent programming operations at a fine granularity to multiple pages of cells with limited die area penalty and small external random access memory (RAM) overhead. For purposes of discussion, it should be noted that the words “program” and “write” may be used interchangeably. Also for purposes of discussion, the words “row” and “page” may be used interchangeably.
FIG. 3A illustrates amemory device300 according to an embodiment. Thememory device300 includes a bit line BL coupled to twomemory chains301 and302.Memory chain301 is made up of a bit lineselect transistor310, a first plurality of cells3200-320m, a groundselect transistor330, and acapacitive storage element360.Memory chain302 is made up of a bit lineselect transistor340, a second plurality of cells320m+1-320n, a groundselect transistor350, and acapacitive storage element370. Operation ofmemory device300 is similar to that ofmemory device160, ofFIG. 1B, with the exception that bothmemory chains301 and302 may be programmed concurrently. More specifically, a programming of one of cells3200-320mmay overlap in time with a programming of one of the cells320m+1-320n.
For example, suppose two program operations are to be performed, concurrently, on cell3200ofmemory chain301 and cell320nofmemory chain302. This may be done by first applying a low voltage on the bit line BL (˜0V) and then turning on the bit lineselect transistor310, while applying a program voltage VPGMto the word line WL0and a pass voltage VPASSto each of the word lines WL1-WLm. Because the electron tunneling process for drawing charge onto the floating gate of the cell3200is slow (˜300 μs), the voltage on the bit line BL may be temporarily stored across thecapacitive storage element360. This allows the program operation to continue even with the bitselect transistor310 turned off. Decoupling thememory chain301 from the bit line BL in such a manner allows for a second program operation to take place within thememory chain302, without affecting the first program operation still taking place withinmemory chain301. Since program operations may take place within cells3200and320nat the same time, the respective word lines WL0and WLnmay be concurrently held at a program voltage VPGM. In alternative embodiments, thecapacitive storage elements360 and370 may be implemented using a parasitic capacitance (e.g. channel capacitance) of thememory chains301 and302, respectively, thus eliminating the need for any additional circuit elements.
Because program information is stored temporarily on thecapacitive storage elements360 and370, an uninterrupted write refresh cycle may be performed directly from thecapacitive storage elements360 and370 rather than an external RAM (e.g. refreshing the data programmed into the cells3200and320n). This way, the write refresh cycle will not interrupt any write cycle that may currently be taking place. In alternative embodiments program data may still be refreshed from the external RAM. For example, this may be desirable if the capacitance of thecapacitive storage elements360 and370 does not satisfy a program time constraint.
Still referring to the embodiment ofFIG. 3A, it is important to note that data may be read from thememory device300 in a conventional manner, as discussed above in reference toFIGS. 1A and 1B. It should also be noted that any number of concurrent program operations may occur within the cells ofmemory device300, depending on the total number of memory chains within thememory device300. For example, if thememory device300 has X number of memory chains, then it is possible to program X number of cells concurrently.
FIG. 3B illustrates a timing diagram for a program operation, according to an embodiment. The program operation ofFIG. 3B is herein discussed in reference to thememory device300 ofFIG. 3A. At time t0the bit line BL is brought low. Also during this time the first bit select line BS_A and the word line WL0are both asserted, while word lines WL1-WLmare set to voltage VPASSand the second bit select line BS_B and all other word lines WLm+1-WLnremain deasserted (for purposes of discussion, when referring to the signal levels on the word lines WL0-WLn, application of a program voltage VPGMis represented as an “asserted” signal and application of a zero voltage is represented as a “deasserted” signal, and application of a voltage VPASSis represented as “asserted but non-programming” signal. The voltage VPGMcan be applied to a single cell per single NAND chain during an assertion period). The first bit select line BS_A is deasserted at time t1, after thecapacitive storage element360 has been charged to the appropriate voltage level, and the second bit select line BS_B and the word line WLnare both asserted at this time. Note that the word lines WL0and WLnare both asserted at time t1, as electron tunneling takes place concurrently within the cells3200and320n.
At time t2the second bit select line BS_B is deasserted, allowing the bit line BL to return to an original state. Both word lines WL0and WLnremain asserted during this time, as programming continues within the cells3200and320n. WL1-WLn−1are set to voltage VPASSduring this time. At time t3the word lines WL0-WLmare deasserted as the program operation is completed within the cell3200. Thus, it should be noted that the word lines WL0and WLnare asserted concurrently for the entire duration between times t1and t3. It should also be noted that, although not shown in the illustration ofFIG. 3B, the ground select lines GS_A and GS_B are held low during the program operations.
FIG. 4 illustrates a memory device according to another embodiment.Memory device400 includes two bit lines BL1 and BL2 coupled to four memory chains401-404. The embodiment ofFIG. 4 allows for a program operation to occur in separate pages of each of the bit lines BL1 and BL2, concurrently. For example a first program operation may be performed within thememory chain402 by applying a low voltage across the first bit line BL1 and applying a high voltage across the second bit line BL2. Thus, when a program voltage VPGMis applied to one of the word lines WLm+1-WLn, a bit may be programmed into a corresponding cell ofmemory chain402 while all of the data stored withinmemory chain404 remains unaffected. A low voltage is then applied across the bit select line BS_B to turn off respective bit line select transistors of both bit lines BL1 and BL2 that are coupled to the bit select line BS_B. Now a second program operation may be performed within thememory chain403 by applying a low voltage across the second bit line BL2 and applying a high voltage across the first bit line BL1. This way, when a program voltage VPGMis applied to one of the word lines WL0-WLn, a bit may be programmed into a corresponding cell ofmemory chain403 while all of the data stored withinmemory chain401 remains unaffected. Thus, a second program operation may take place, concurrently, on the second bit line BL2 without affecting a first program operation already taking place in a different page on the first bit line BL1. In alternative embodiments, a plurality of memory chains may be coupled to each bit line segment of the segmented bit lines BL1 and BL2.
FIG. 5 illustrates a memory device according to yet another embodiment. Thememory device500 includes a segmented bit line BL coupled to twomemory chains501 and502.Memory chain501 is made up of a bit lineselect transistor510, a first plurality of cells5200-520m, and a groundselect transistor530.Memory chain502 is made up of a bit lineselect transistor540, a second plurality of cells520m+1-520n, and a groundselect transistor550. A plurality of segmenting transistors5801-5803are coupled in series along the segmented bit line BL, effectively separating the bit line BL into two bit line “segments”. The circuit elements coupled between the segmenting transistors5801and5802form a first bit line segment, while the circuit elements coupled between the segmenting transistors5802and5803form a second bit line segment. For example, as illustrated inFIG. 5, the first bit line segment includes thememory chain502 and the second bit line segment includes thememory chain501. For purposes of discussion, only one memory chain is shown coupled to each of the bit line segments5801-5802and5802-5803, however, in alternative embodiments a plurality of memory chains may be additionally coupled to each of the bit line segments5801-5802and5802-5803. When programming data into the cells5200-520n, program information may be stored temporarily on thecapacitive storage elements560 and570, thus allowing for concurrent program operations to take place within thememory chains501 and502. In an embodiment each of thecapacitive storage elements560 and570 is made up of one or more parasitic capacitances of the bit line segments5801-5802and5802-5803, respectively. For example, thecapacitive storage element560 may be a combination of parasitic capacitances from the segmenting transistors5801-5802and the bit lineselect transistor540 from thememory chain502. Thus, the overall capacitance of thecapacitive storage element560 depends on the number of memory chains coupled to the bit line segment5801-5802. In alternative embodiments, however, additional circuit elements (e.g. capacitors) may be coupled to the bit line segments5801-5802and5802-5803to increase the overall capacitance of thecapacitive storage elements560 and570, respectively.
Still referring to the embodiment ofFIG. 5, concurrent program operations may be performed within thememory chains501 and502 by first applying a low voltage to the bit line BL and charging thecapacitive storage element560 to the appropriate voltage level (note that this requires the segmenting transistors5802and5803to be turned on). Once thecapacitive storage element560 is charged to the proper voltage level the segmenting transistor5802is turned off, thus trapping the stored charge on thecapacitive storage element560. At this time the bit lineselect transistor540 is turned on and a program voltage VPGMis applied to one of the word lines WLm+1-WLn, while a pass voltage VPASSis applied to the remaining word lines. Also during this time, respective program information may be stored across thecapacitive storage element570. Thus, the bit lineselect transistor510 is turned on and a program voltage VPGMis applied to one of the word lines WL0-WLm, while a pass voltage VPASSis applied to the remaining word lines. This allows a second program operation to take place, concurrently, within thememory chain501 without affecting a first program operation already taking place withinmemory chain502. Data may be read from thememory device500 in a conventional manner, as discussed above in reference toFIGS. 1A and 1B. However, this may require turning on all of the segmenting transistors5801-5803, during a read operation, in order to allow current to flow freely along the segmented bit line BL.
Because program information is stored temporarily on thecapacitive storage elements560 and570 (i.e. in the bit line segments5801-5802and5802-5803), a write refresh cycle may be performed directly from thecapacitive storage elements560 and570 rather than an external RAM. This way, the write refresh cycle will not interrupt any write cycle that may currently be taking place. In alternative embodiments, program data may still be refreshed from the external RAM. For example, this may be desirable if the capacitance of the bit line segments5801-5802and5802-5803does not satisfy a program time constraint.
FIG. 6 illustrates a memory device according to another embodiment.Memory device600 includes two segmented bit lines BL1 and BL2 coupled to four memory chains601-604. The embodiment ofFIG. 6 allows for a program operation to occur in separate pages of each of the bit lines BL1 and BL2, concurrently. For example a first program operation may be performed within thememory chain602 by applying a low voltage across the first bit line BL1 and applying a high voltage across the second bit line BL2 (note that a high voltage is generally applied to the segment select lines SS2and SS3during this time). Thus, when a program voltage VPGMis applied to one of the word lines WLm+1-WLn, a bit may be programmed into a corresponding cell ofmemory chain602 while all of the data stored withinmemory chain604 remains unaffected. A low voltage is then applied across segment select line SS2to turn off respective segmenting transistors of both bit lines BL1 and BL2 that are coupled to the segment select line SS2. Now a second program operation may be performed within thememory chain603 by applying a low voltage across the second bit line BL2 and applying a high voltage across the first bit line BL1. This way, when a program voltage VPGMis applied to one of the word lines WL0-WLn, a bit may be programmed into a corresponding cell ofmemory chain603 while all of the data stored withinmemory chain601 remains unaffected. Thus, a second program operation may take place, concurrently, on the second bit line BL2 without affecting a first program operation already taking place in a different page on the first bit line BL1. In alternative embodiments, a plurality of memory chains may be coupled to each bit line segment of the segmented bit lines BL1 and BL2.
Referring back the embodiment ofFIG. 5, thememory device500 is advantageous in many ways. The first advantage of thememory device500 is that the bit lines in some cases are shorter than the others which allow faster operations. If the switch5802is turned off then the bit lines are lightly loaded withcapacitive element570. This lightly loaded condition allows for faster operation compared with the condition when5802is turned on and5801is turned off. This condition introduces doubling of the bit line capacitance load by havingcapacitive elements570 and560 on the entire bit line.
The second advantage ofmemory device500 being that programmed data may be easily verified for single level cell (SLC) NAND flash devices. For example, after completing a first phase of a write cycle, program information is still retained within thecapacitive storage elements560 and570 of the bit line segments5801-5802and5802-5803, respectively. This data may then be read out from each of thecapacitive storage elements560 and570 along with respective cell data. Thus, the data read out from each of thecapacitive storage elements560 and570 may be compared with the data read out from a respective cell (i.e. the cell that was programmed during the first phase of the write cycle) to generate new verified read data. These verified read data may then be used for a subsequent phase of the write cycle. For example, the verified read data may be temporarily stored in an external RAM for later use, if necessary. In an embodiment, the loading of data from the external RAM may be pipelined, allowing for faster load times.
Note that the data from thecapacitive storage elements560 and570 should be read out in the opposite order from which they were programmed (i.e. beginning with the capacitive storage element that is nearest to a page buffer). Thus, program information from thecapacitive storage element570 is read out first, followed by data in one of the cells5200-520m. Program information from thecapacitive storage element560 is read out next, followed by data in one of the cells520m+1-520n. Reading data from bit line segments located closer to the page buffer has an added advantage, as such data may be read out faster due to lighter capacitive loading. This improves the average speed at which data is read from the bit line segments as well as the average speed at which data is read out of the cells5200-520n.
FIG. 7 illustrates a memory system according to an embodiment. Thememory system700 includes amemory device710, amemory controller720, and anexternal RAM730. Thememory device710 further includes arow decoder711, acolumn decoder712, adata cache713, apage buffer714, and acell array715. In an embodiment, thecell array715 is made up of a plurality of word lines and bit lines coupled to storage cells. Therow decoder711 and thecolumn decoder712 are provided for selecting word lines and bit lines, respectively, within thememory array715. Thepage buffer714 communicates data between thecell array715. For example, thepage buffer714 is provided for driving program information onto the bit lines during a program operation and sensing a page of data from the bit lines during a read operation.
Thememory controller720 controls program, read, and erase operations within thememory device710, and may also facilitate the elimination of bad blacks of data and correct bit errors. In an embodiment, thememory controller720 controls the concurrent activation (e.g. application of a program voltage VPGM) of multiple word lines. In another embodiment, thememory controller720 utilizes theexternal RAM730 to buffer program data. For example, thememory controller720 may maintain a buffer level for theexternal RAM730 by writing data into thememory device710 only when the data loaded into theexternal RAM730 exceeds a queue threshold level. In another embodiment, thememory controller720 tracks active program sections within thememory device710 to avoid conflicts in multiple page programming in a section. In an alternative embodiment, thememory controller720 may track the erased blocks of data that are available for programming. In yet another embodiment, thememory controller720 may track the number of program and erase cycles for each block of data. For example, thememory controller720 may prioritize the least used blocks for a subsequent program operation. Accordingly, the logic blocks within thememory controller720 complement the storage elements and state machines within thememory device710.
FIG. 8 illustrates a memory system according to another embodiment. Thememory system800 includes amemory device810, amemory controller820, and anexternal RAM830. Thememory device810 also includes arow decoder811, acolumn decoder812,ad data cache813, apage buffer814, acell array815, and asegment decoder816. In an embodiment, thecell array815 is made up of a plurality of word lines and segmented bit lines coupled to storage cells. Therow decoder811 and thecolumn decoder812 are provided for selecting word lines and segmented bit lines, respectively, within thememory array815. Thesegment decoder816 is provided for activating one or more segmenting transistors coupled along the segmented bit lines of thecell array815. Thepage buffer814 communicates data between thecell array815. For example, thepage buffer814 is responsible for driving program information onto the segmented bit lines during a program operation, and sensing a page of data from the segmented bit lines during a read operation.
Thememory controller820 controls program, read, and erase operations within thememory device810, and may also facilitate the elimination of bad blacks of data and correct bit errors. In an embodiment, thememory controller820 controls the concurrent activation (e.g. application of a program voltage VPGM) of multiple word lines. In another embodiment, thememory controller820 utilizes theexternal RAM830 to buffer program data. For example, thememory controller820 may maintain a buffer level for theexternal RAM830 by writing data into thememory device810 only when the data loaded into theexternal RAM830 exceeds a queue threshold level. In another embodiment, thememory controller820 tracks active program sections within thememory device810 to avoid conflicts in multiple page programming in a section. In yet another embodiment, thememory controller820 controls a sequential programming of pages within thememory device810. For example, thememory controller820 ensures that program information is driven onto the bit line segments in sequential order, beginning with the bit line segment furthest away from thepage buffer814, and that stored data is read (and verified) from the bit line segments in the opposite order (i.e. beginning with the bit line segment nearest the page buffer814). Accordingly, the logic blocks within thememory controller820 complement the storage elements and state machines within thememory device810.
It should be noted that the various integrated circuits, dice and packages disclosed herein may be described using computer aided design tools and expressed (or represented), as data and/or instructions embodied in various computer-readable media, in terms of their behavioral, register transfer, logic component, transistor, layout geometries, and/or other characteristics. Formats of files and other objects in which such circuit expressions may be implemented include, but are not limited to, formats supporting behavioral languages such as C, Verilog, and VHDL, formats supporting register level description languages like RTL, and formats supporting geometry description languages such as GDSII, GDSIII, GDSIV, CIF, MEBES and any other suitable formats and languages. Computer-readable media in which such formatted data and/or instructions may be embodied include, but are not limited to, non-volatile storage media in various forms (e.g., optical, magnetic or semiconductor storage media) and carrier waves that may be used to transfer such formatted data and/or instructions through wireless, optical, or wired signaling media or any combination thereof. Examples of transfers of such formatted data and/or instructions by carrier waves include, but are not limited to, transfers (uploads, downloads, e-mail, etc.) over the Internet and/or other computer networks via one or more data transfer protocols (e.g., HTTP, FTP, SMTP, etc.).
When received within a computer system via one or more computer-readable media, such data and/or instruction-based expressions of the above described circuits may be processed by a processing entity (e.g., one or more processors) within the computer system in conjunction with execution of one or more other computer programs including, without limitation, net-list generation programs, place and route programs and the like, to generate a representation or image of a physical manifestation of such circuits. Such representation or image may thereafter be used in device fabrication, for example, by enabling generation of one or more masks that are used to form various components of the circuits in a device fabrication process.
In the foregoing description and in the accompanying drawings, specific terminology and drawing symbols have been set forth to provide a thorough understanding of the present invention. In some instances, the terminology and symbols may imply specific details that are not required to practice the invention. For example, any of the specific numbers of bits, signal path widths, signaling or operating frequencies, component circuits or devices and the like may be different from those described above in alternative embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present invention unnecessarily. Additionally, the interconnection between circuit elements or blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses. Signals and signaling paths shown or described as being single-ended may also be differential, and vice-versa. Similarly, signals described or depicted as having active-high or active-low logic levels may have opposite logic levels in alternative embodiments. Component circuitry within integrated circuit devices may be implemented using metal oxide semiconductor (MOS) technology, bipolar technology or any other technology in which logical and analog circuits may be implemented. With respect to terminology, a signal is said to be “asserted” when the signal is driven to a low or high logic state (or charged to a high logic state or discharged to a low logic state) to indicate a particular condition. Conversely, a signal is said to be “deasserted” to indicate that the signal is driven (or charged or discharged) to a state other than the asserted state (including a high or low logic state, or the floating state that may occur when the signal driving circuit is transitioned to a high impedance condition, such as an open drain or open collector condition). A signal driving circuit is said to “output” a signal to a signal receiving circuit when the signal driving circuit asserts (or deasserts, if explicitly stated or indicated by context) the signal on a signal line coupled between the signal driving and signal receiving circuits. A signal line is said to be “activated” when a signal is asserted on the signal line, and “deactivated” when the signal is deasserted. The term “coupled” is used herein to express a direct connection as well as a connection through one or more intervening circuits or structures. Integrated circuit device “programming” may include, for example and without limitation, loading a control value into a register or other storage circuit within the device in response to a host instruction and thus controlling an operational aspect of the device, establishing a device configuration or controlling an operational aspect of the device through a one-time programming operation (e.g., blowing fuses within a configuration circuit during device production), and/or connecting one or more selected pins or other contact structures of the device to reference voltage lines (also referred to as strapping) to establish a particular device configuration or operation aspect of the device. The term “exemplary” is used to express an example, not a preference or requirement.
While the invention has been described with reference to specific embodiments thereof, it will be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope. For example, features or aspects of any of the embodiments may be applied, at least where practicable, in combination with any other of the embodiments or in place of counterpart features or aspects thereof. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.