Source: https://patents.google.com/patent/JP4643711B2/en
Timestamp: 2020-01-25 05:27:42
Document Index: 290062167

Matched Legal Cases: ['Application No. 09', 'Application No. 11', 'Application No. 11', 'Application No. 10', 'Application No. 11', 'Application No. 11']

JP4643711B2 - Context-sensitive memory performance - Google Patents
Context-sensitive memory performance Download PDF
JP4643711B2
JP4643711B2 JP2008524989A JP2008524989A JP4643711B2 JP 4643711 B2 JP4643711 B2 JP 4643711B2 JP 2008524989 A JP2008524989 A JP 2008524989A JP 2008524989 A JP2008524989 A JP 2008524989A JP 4643711 B2 JP4643711 B2 JP 4643711B2
JP2008524989A
JP2009503726A (en
ゴンザレス，カルロス
2006-07-18 Application filed by サンディスク コーポレイション filed Critical サンディスク コーポレイション
2006-07-18 Priority to PCT/US2006/027883 priority patent/WO2007018983A1/en
2009-01-29 Publication of JP2009503726A publication Critical patent/JP2009503726A/en
2011-03-02 Publication of JP4643711B2 publication Critical patent/JP4643711B2/en
The present invention relates generally to reprogrammable non-volatile memory systems and their operation, and more particularly to techniques for optimizing programming performance.
Reprogrammable non-volatile memory products are commercially successful and are now widely available, especially compact flash (CF) cards, Secure Digital (SD) manufactured by various vendors including SanDisk Corporation It takes the form of small-sized factor cards such as cards, multimedia cards (MMC) and memory stick cards. Typically, such cards use an array of flash EEPROM (electrically erasable programmable read only memory) memory cells. Generally, an array of flash EEPROM memory cells is manufactured as a NOR array or a NAND array.
NOR Array In a typical NOR array, memory cells are connected between the source and drain diffusion regions of adjacent bit lines extending in the column direction and are connected to word lines extending along the row of cells. Is connected to the control gate. One common memory cell has a “divided channel” between a source diffusion region and a drain diffusion region. The charge storage element of the cell is disposed on a portion of the channel, and a word line (also referred to as a control gate) is disposed on the remaining channel portion and on the charge storage element. This effectively forms a cell with two transistors in series, while one (memory transistor) uses a combination of the amount of charge in the charge storage element and the voltage on the word line to define the corresponding part of the channel. Controls the amount of current that can flow, while the other (select transistor) has only a word line acting as a gate. The word line extends over one row of charge storage elements. Examples of the use in such a cell and memory system and the manufacturing method thereof are described in US Pat. Nos. 5,070,032 (Patent Document 1), 5,095,344 (Patent Document 2), and 5,315. , 541 (patent document 3), 5,343,063 (patent document 4) and 5,661,053 (patent document 5), and the co-pending applications filed on January 27, 1999. U.S. Patent Application No. 09 / 239,073 (Patent Document 6).
This modification of the split channel flash EEPROM cell adds a steering gate disposed between the charge storage element and the word line. Each steering gate of the array extends on a row of charge storage elements that are perpendicular to the word lines. The effect is that the word line is freed because it is necessary to perform two functions simultaneously when reading or programming a selected cell. These two functions are (1) acting as the gate of the select transistor and thus require appropriate voltages to turn the select transistor on and off, and (2) the word line and charge storage element The voltage of the charge storage element is driven to a desired level via an electric field (capacitive) coupling between the first and second electrodes. It is often difficult to perform both of these functions optimally at a single voltage. When a steering gate is added, the word line need only perform function (1) while the added steering gate performs function (2). The use of steering gates in flash EEPROM arrays is described, for example, in US Pat. Nos. 5,313,421 (Patent Document 7) and 6,222,762 (Patent Document 8).
There are various programming techniques for injecting electrons from the substrate through the gate dielectric into the floating gate storage element. The most common programming mechanism is described in "Nonvolatile Semiconductor Memory Technology" by Brown and Brewer, IEEE Press, Section 1.2, pages 9-25 (1998) (Non-patent Document 1). . One technique, referred to as channel “hot electron injection” (Section 1.2.3), injects electrons from the cell channel into the region of the floating gate adjacent to the cell drain. Another technique, referred to as “source-side implantation” (Section 1.2.4), is to transfer the substrate surface potential along the length of the memory cell channel to the region of the channel opposite the drain. Control is performed so as to generate conditions for electron injection. Regarding source-side injection, “EPROM Cell with High Gate Injection Efficiency” by Kamiya et al., IEDM Technical Digest, 1982, pages 741-744 (Non-Patent Document 2), and US Pat. No. 4,622,656 (Patent document 9) and 5,313,421 (patent document 7).
Two techniques for removing charge from charge storage elements to erase memory cells are used in both of the two types of NOR memory cell arrays described above. One technique erases the substrate by applying an appropriate voltage to the source, drain and (one or more) other gates that tunnels the portion of the dielectric layer between the storage element and the substrate to electrons. Other erase techniques move electrons from the storage element to another gate via a tunnel dielectric layer disposed therebetween. In the first type of cell described above, a third erase gate is provided for this purpose. In the next type of cell described above, which already has three gates by using a steering gate, the charge storage element is erased to the word line without the need to add a fourth gate. This technique later re-adds the second function performed by the word line, but these functions are performed at different times, thus avoiding the need to compromise because of the two functions. If either erase technique is used, a large number of memory cells are grouped together to be erased simultaneously “in a flash”. In one approach, this group includes enough memory cells to store the amount of user data stored in the disk sector, ie 512 bytes and some overhead data. In another approach, each group contains enough cells to hold thousands of bytes of user data equal to data worthy of many disk sectors. Multi-block erase, defect management and other flash EEPROM system mechanisms are described in US Pat. No. 5,297,148.
As in most integrated circuit fields, the pressure to reduce the silicon substrate area required to perform certain integrated circuit functions also exists for flash EEPROM systems. Increasing the amount of digital data that can be stored in a given area of the silicon substrate, or increasing the capacity to increase the storage capacity of a given size memory card and other types of packages; and There is a constant desire to reduce the size. One way to increase the data storage density is to store more than 2 bits of data per memory cell. This is accomplished by dividing the window of the storage element charge level voltage range into more than two states. For example, by using four such states, each cell can store 2-bit data, and eight states store 3-bit data per cell. A multi-state flash EEPROM structure and its operation are described in US Pat. Nos. 5,043,940 and 5,172,338.
Another type of memory cell includes two storage elements that can operate in multiple states per storage element. In this type of cell, two storage elements are included on the channel between the source diffusion region and the drain diffusion region with a select transistor between them. Steering gates are included along each column of storage elements, and word lines on these storage elements are provided along each row of storage elements. When accessing a given storage element for reading or programming, the steering gate on the other storage element of the cell containing the storage element of interest will have no other charge level present, It is pulled high enough to turn on the channel underneath the storage element. This effectively reduces the other storage elements that become an element when reading or programming the storage element of interest in the same memory cell as the other storage elements. For example, the amount of current flowing through the cell that can be used to read the state of the cell is in this case a function of the amount of charge on the storage element of interest and on other storage elements in the same cell. Is not a function of the amount of charge. Examples of this cell array structure and its operation technique are disclosed in US Pat. Nos. 5,712,180 (patent document 13), 6,103,573 (patent document 14) and 6,151,248 (patent document 15). ).
Another flash EEPROM structure NAND array using a NAND array, in this NAND array, 16 or 32 series string of three or more memory cells, such as, in order to form a row of cells, individual bit lines and a reference potential Are connected together with one or more select transistors. The word line extends across a number of cells in these columns. Individual cells in the column are read during programming by ensuring that the remaining cells in the string are turned on so that the current flowing in the string depends on the level of charge stored in the addressed cell. And verified. Examples of operation as part of a NAND structure array and memory system are described in US Pat. Nos. 5,570,315, 5,774,397, and 6,046,935. No. (Patent Document 18).
The current flash EEPROM array charge storage devices described in previously referenced papers and patents are most commonly conductive floating gates and are typically formed from doped polysilicon material. Another type of memory cell that is useful in flash EEPROM systems uses a non-conductive dielectric material instead of a conductive floating gate to store charge in a non-volatile manner. For such a cell, “A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device” by Chan et al., IEEE Electron Device Letters, EDL-8, No. 3, March 1987, pp. 93-95. (Non-Patent Document 3). A three-layer dielectric formed from silicon oxide, silicon nitride and silicon oxide (“ONO”) is sandwiched between the surface of the semiconductor substrate on the memory cell channel and the conductive control gate. The cell is programmed by injecting electrons from the cell channel into the nitride, where they are trapped and stored in a limited area. This stored charge then changes the threshold voltage of a portion of the cell channel so that it can be detected. The cell is erased by injecting hot holes into the nitride. “A 1-Mb EEPROM with MONOS Memory” by Nozaki et al. Describes a similar cell in a split gate configuration in which a doped polysilicon gate extends over a portion of the memory cell channel to form a separate select transistor. See also Cell for Semiconductor Disk Application, IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pages 497-501 (Non-Patent Document 4).
U.S. Pat. No. 5,851,881 discloses two memory elements arranged adjacent to each other on a channel of a memory cell, one of which is such a dielectric element and the other is a conductive floating gate. The use of storage elements is described. Two bits of data are stored such that one bit is stored in the dielectric element and the remaining one bit is stored in the floating gate. The memory cell is programmed to one of four different threshold level combinations representing one of the four storage states by programming each of the two gates to one of two different charge level ranges. .
For another approach to storing 2 bits in each cell using a dielectric memory element, see “NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell” by Eitan et al., IEEE Electron Device Letters, Vol. 21, Vol. No. 11, November 2000, pp. 543-545 (Non-Patent Document 5). The ONO dielectric layer extends across the channel between the source and drain diffusion regions. The charge for one data bit is localized in the dielectric layer adjacent to the drain, and the charge for the other data bit is localized in the dielectric layer adjacent to the source. Multi-state data storage is obtained by separately reading the binary states of the spatially separated charge storage regions in the dielectric.
Large Erase Block A typical non-volatile flash array memory cell is divided into separate blocks of cells that are simultaneously erased. That is, a block is an erase unit. In general, each block stores one or more pages of data, where a page is a unit of programming and reading. However, more than one page can be programmed or read in one operation. Generally, each page stores one or more sectors of data, and the sector size is defined by the host system. An example is a sector consisting of 512 bytes of user data according to the standards established in magnetic disk drives and some bytes of overhead information about the user data and / or the blocks in which they are stored.
Sometimes it is necessary to erase a block and release the block for a write operation. In this case, valid page data in the block to be erased (original block) is integrated before the original block is erased and copied to another block (update block). This process is called “garbage collection”. During garbage collection, the remaining valid page data from the original block is copied from the original block to the update block. After the copy operation is completed, the original block is erased, and then the update block becomes the original block.
The operation of such a memory system is a trade-off between the performance of one and the reliability and power consumption of the other. The memory operating parameters are selected such that sufficient time is allowed for all expected operations. If the time allowed is too high and the memory is running at a slow rate, a timeout or poor performance situation may occur. On the other hand, if the allowable time is too short and the memory is run at high speed, the reliability and power consumption will suffer. Once the host selected timeout is agreed, the card performance is designed to a level sufficient to perform all expected operations within the allotted time. Designing for a high level of performance bears low reliability and / or high power consumption.
As you move to increasingly larger block structures, the likelihood of rare system situations that lead to timeouts increases. An example is a particularly complex garbage collection or programming error. This is especially true for multi-state memories with long programming times. This problem can be addressed by improving programming time to accommodate these unusual situations, but bears low reliability or high power consumption for most of the normal operating situations. In other words, other operations do not require as much time as the allocation time, and have a reliability problem. In these cases, the system operates in an unnecessarily high power consumption or low reliability mode.
US Pat. No. 5,070,032 US Pat. No. 5,095,344 US Pat. No. 5,315,541 US Pat. No. 5,343,063 US Pat. No. 5,661,053 US patent application Ser. No. 09 / 239,073 US Pat. No. 5,313,421 US Pat. No. 6,222,762 U.S. Pat. No. 4,622,656 US Pat. No. 5,297,148 US Pat. No. 5,043,940 US Pat. No. 5,172,338 US Pat. No. 5,712,180 US Pat. No. 6,103,573 US Pat. No. 6,151,248 US Pat. No. 5,570,315 US Pat. No. 5,774,397 US Pat. No. 6,046,935 US Pat. No. 5,851,881 US patent application Ser. No. 09 / 793,370 US Pat. No. 5,887,145 US Pat. No. 6,266,273 US patent application Ser. No. 10 / 846,289 US patent application Ser. No. 10 / 915,039 US Patent Application No. 11 / 022,350 US Patent Application No. 11 / 022,462 US patent application Ser. No. 10 / 901,849 US patent application Ser. No. 10 / 886,302 US Pat. No. 5,930,167 US Pat. No. 5,532,962 "Nonvolatile Semiconductor Memory Technology", co-authored by Brown and Brewer, IEEE Press, Section 1.2, pages 9-25 (1998) "EPROM Cell with High Gate Injection Efficiency" by Kamiya et al., IEDM Technical Digest, 1982, pages 741-744 Chan et al., "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device", IEEE Electron Device Letters, EDL-8, No. 3, March 1987, 93-95 paper "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application" by Nozaki et al., IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, 497-501 Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, Vol. 21, No. 11, November 2000, pp. 543-545
In general, the present invention provides a non-volatile memory system that adapts performance to one or more system-related situations. If a situation arises where the memory needs to exceed the allotted time to complete the operation, the memory can switch from the normal operating mode to the high performance mode to complete the operation quickly enough. This allows the card to avoid timeout issues while minimizing reliability issues that reduce programming time. Such high latency operation detection can be used for both programming and data relocation operations. For example, the amount of error detection and correction operations performed on the data can be reduced if an error occurs during a garbage collection operation or if relocation with a large amount of data is necessary. As another example, to increase programming speed in such situations, the clock speed of the system can be increased, or characteristics (such as magnitude or duration) of the programming pulse can be changed.
Conversely, if a situation arises where reliability is an issue (such as partial page programming), the controller can switch to a high reliability mode. Examples of special high reliability sequences include using a high level of ECC, a low clock rate, or a few destructive programming sequences. In either case, the memory returns to normal operation after the triggered system operating conditions return to normal. The exemplary embodiment is based on firmware programmable performance.
Further aspects, features and advantages of the present invention are included in the following description of specific exemplary embodiments to be understood in conjunction with the accompanying drawings.
FIG. 1 is a block diagram of a first non-volatile memory system in which the present invention can be implemented. A number of individually addressable memory cells 11 are arranged in a regular array of rows and columns. However, other physical cell arrangements are of course possible. This system is particularly suitable for the array 11 which is of the NOR type, as described in the background section above and in the references incorporated herein. In this specification, the bit lines designated to extend along the columns of the array of cells 11 are electrically connected to the bit line decoder and driver circuit 13 via lines 15. In this specification, the word lines designated to extend along the rows of the array of cells 11 are electrically connected to the word line decoder and driver circuit 19 via lines 17. A steering gate extending along the column of memory cells in the array 11 is electrically connected to the steering gate decoder and driver circuit 21 via a line 23. Each of the decoders 13, 19, 21 receives a memory cell address from the memory controller 27 via the bus 25. The decoder and driver circuit are also connected to the controller 27 via the respective control and status signal lines 29 and 31. The voltage applied to the steering gate and the bit line is adjusted via a bus 22 that connects the decoder and driver circuits 13 and 21 to each other. The controller includes various types of registers and other memory including volatile random access memory (RAM) 28.
The controller 27 can be connected to a host device (not shown) via a line 35. The host can be a personal computer, notebook computer, digital camera, audio player, and various other handheld electronic devices. In general, the memory system of FIG. 1 conforms to one of several existing physical and electrical standards, such as standards from PCMCIA, CompactFlash® Association, MMC® Association, and the like. Can be mounted on a card. In the card format, line 35 terminates at a connector on the card that interfaces with a complementary connector on the host device. The electrical interface of many cards conforms to the ATA standard that appears to the host as if the memory system is a magnetic disk drive. There are other memory card interface standards. As an alternative to the card format, a memory system of the type shown in FIG. 1 can be permanently embedded in the host device.
The decoder and driver circuits 13, 19, and 21 generate appropriate voltages on the respective lines of the array 11 addressed via the bus 25 in accordance with the control signals on the respective control and status lines 29 and 31, for programming. Execute read and erase functions. Arbitrary status signals including voltage levels and other array parameters are provided by the array 11 to the controller 27 via the same control and status lines 29,31. A plurality of sense amplifiers in circuit 13 receive current or voltage levels representative of the states of the addressed memory cells in array 11 and during a read operation, information about these states is transmitted via line 41 to controller 27. To supply. In general, a large number of sense amplifiers are used so that the states of a large number of memory cells can be read out simultaneously. In general, during a read and programming operation, a row of cells is addressed through circuit 19 at a time to access many cells in the addressed row selected by circuits 13,21. In general, during an erase operation, all cells in each of many rows are addressed together as a block to be erased simultaneously.
The operation of the memory system as shown in FIG. 1 is described in the papers and patents shown in the background section of the NOR array described above and other patents assigned to SanDisk Corporation, the assignee of the present application. Further details are described. Furthermore, US patent application Ser. No. 09 / 793,370, filed Feb. 26, 2001, describes a data programming method. This patent application is incorporated herein by reference.
FIG. 2 is a block diagram of another non-volatile memory system in which the present invention can be implemented. The memory cell array 1 includes a plurality of memory cells (M) arranged in a matrix, and is controlled by a column control circuit 2, a row control circuit 3, a C source control circuit 4 and a CP well control circuit 5. The memory cell array 1 can be of the NAND type described in the background art described above and in the references incorporated herein by reference. The control circuit 2 reads the data stored in the memory cell (M), determines the state of the memory cell (M) during the programming operation, and controls the potential level of the bit line (BL) to promote or prevent programming. Therefore, it is connected to the bit line (BL) of the memory cell array 1. The row control circuit 3 selects one of the word lines (WL), applies a read voltage, applies a programming voltage in combination with the bit line potential controlled by the column control circuit 2, and selects the memory cell (M). Is connected to the word line (WL) in order to apply an erase voltage in combination with the voltage of the p-type region in which is formed. The C source control circuit 4 controls a common source line connected to the memory cell (M). The CP well control circuit 5 controls the CP well voltage.
Data stored in the memory cell (M) is read by the column control circuit 2 and output to the external I / O line via the I / O line and the data input / output buffer 6. Program data to be stored in the memory cell is input to the data input / output buffer 6 via an external I / O line and transferred to the column control circuit 2. An external I / O line is connected to the controller 43. Controller 43 typically includes various types of registers and other memory within volatile random access memory (RAM) 50.
Command data for controlling the flash memory device is input to the command circuit 7, and the command circuit 7 is connected to an external control line connected to the controller 43. The command data notifies the flash memory which operation is requested. The input command is transferred to the state machine 8 that controls the column control circuit 2, the row control circuit 3, the C source control circuit 4, the CP well control circuit 5 and the data input / output buffer 6. The state machine 8 can output flash memory status data such as READY / BUSY or PASS / FAIL. The state machine 8 also includes a number of registers and other volatile random access memory 45.
The controller 43 is connected to or connectable to a host system such as a personal computer, a digital camera, or a personal digital assistant (PDA). The host initiates a command to store data in the memory array 1 or read from the memory array 1 to supply or receive such data. The controller converts such a command into a command signal that can be interpreted and executed by the command circuit 7. Generally, the controller also includes a buffer memory for user data that is read from and written to the memory array. A typical memory system includes one integrated circuit chip 47 that includes a controller 43 and one or more integrated circuit chips 49 that each include a memory array and associated control, input / output and state machine circuitry. Of course, there is a tendency to integrate the memory array and controller circuitry of the system together on one or more integrated circuit chips.
The memory system of either FIG. 1 or FIG. 2 can be embedded as part of the host system or can be included in a memory card that can be removably inserted into the mating socket of the host system. Such a card can include the entire memory system or a controller and a memory array with associated peripheral circuitry can be provided on separate cards. Several card embodiments are described, for example, in US Pat. No. 5,887,145. This patent is expressly incorporated herein by reference in its entirety.
According to a first aspect of the invention, the memory adapts its performance to one or more system related situations. For example, if a situation arises where the memory needs to exceed the allotted time to complete the operation, the memory can switch from the normal operation mode to the high performance mode to complete the operation quickly enough. . This allows the card to avoid timeout issues while minimizing reliability issues that reduce programming time. On the other hand, when a situation where reliability becomes a problem occurs, it is possible to switch to a high reliability mode. This can reduce problems that hinder programming, for example caused by partial programming. In either case, after the triggered system status returns to normal, the memory returns to normal operation. The exemplary embodiment is based on firmware programmable performance.
The firmware sends a special command sequence that enters a fast programming / low durability mode during a critical timeout environment. At other times, this mode is not used and the slow / high durability mode is used. This significantly reduces the technical effort of device design caused by the trade-off between programming time and durability. In order to reduce the impact of jamming, a complementary aspect uses a slow method, among other situations that can cause partial page programming and reliability problems.
In particular, the present invention addresses issues such as those caused by large block sizes (promoted by science and technology), programming time during garbage collection, and host interface latency. For example, the SD card specification specifies a 250 ms timeout. The time to run garbage collection is generally
T garbage = (data transfer time x sector where garbage collection is executed)
It is represented by + (programming time + reading time) × (sector in which garbage collection is executed) / parallelism + erasing time. The second of these three components is generally the largest part. For various aspects of data relocation and garbage collection, see US Pat. No. 6,266,273 and US patent application Ser. No. 10 / 846,289 filed May 13, 2004. Document 23), U.S. Patent Application No. 10 / 915,039 filed on August 9, 2004, and U.S. Patent Application No. 11 / 022,350 filed on December 21, 2004. (Patent Document 25). (However, the data relocation operation is referred to as on-chip copy for historical reasons, and in particular, the relocation can be another chip or a sub-array (plane) on the same chip. (It is described in further detail in co-pending US patent application Ser. No. 11 / 022,462, filed Dec. 21, 2000).
Various methods can be used to reduce this time. This is essential to avoid the high latency problem. In general, these methods fall into several categories:
1. 1. Reduction of data transfer or data transfer time 2. Reduction of programming time Classified as increased concurrency. All of these techniques attempt to offset the tendency to increase the number of sectors that receive parallel garbage collection. In general, the first two affect reliability because the first two often include a trade-off between speed and reliability. For a method of reducing the amount of data transfer, such as caused by on-chip copy and associated data sampling, see US patent application Ser. No. 10 / 901,849 filed Jul. 28, 2004, This is described in U.S. Patent Application No. 11 / 022,350 filed on December 21, 2004. Like the method of increasing concurrency, programming time is generally reduced by device design and optimization as described in various references cited in the background art.
However, from a system point of view, worst-case garbage collection occurs less frequently than general garbage collection. The present invention takes advantage of this and, if necessary, performs only some of the reliability that affects optimization. The system can always detect when the system is in a high latency situation and can invoke these methods as needed. By performing only the reliability that affects the optimization at these times, the overall reliability is improved while avoiding timeouts.
As an example of a system-related situation that can act as a trigger during memory system operation,
1. 1. The command requests garbage collection above the threshold number of sectors. 2. Programming errors that cause errors in garbage collection A programming error may occur during a garbage collection operation that requires additional garbage collection that follows. Data relocation can be relatively time consuming, especially when the data is examined and corrected. In most cases of such garbage collection, the allocated time is sufficient. However, in general, timeouts may occur when large amounts of data need to be moved. Even if the number of sectors to be relocated is below this threshold, if garbage collection is the result of a programming error (or if programming occurs during relocation), additional to all combined operations Time may exceed the threshold. In particular, in multi-state memories that typically require long programming times, this situation can lead to a timeout situation threat. If the controller detects that any of these situations is about to occur or has already occurred, the memory can be switched to a high performance mode.
Many optimizations are possible individually or in combination according to various embodiments of the invention. As these possibilities,
1. 1. Decrease ECC data sampling for on-chip copy, possibly down to zero. Use a fast programming sequence or use a different command sequence for the memory in a special mode that reduces power consumption. For example, if the system is in a low power mode, a non-write cache programming sequence can be used to reduce power consumption.
3. 3. Change memory parameters to speed up programming time compared to normal programming parameters. For high-speed operation, it is possible to extend to writing in binary numbers. US patent application Ser. No. 11 / 022,350, filed on Dec. 21, 2004, is based on sampling or other methods where ECC data is only available for some transfers, not for each transfer. Describes the technology being inspected. This mechanism can be used to reduce ECC inspection and even omit it to increase performance in time critical situations. When changing memory parameters (as described in the references on NAND memory arrays cited in the background), for example, changing the magnitude or duration of the programming pulse, or changing the verification technique To do. Details of memory that can operate in either binary mode (increasing speed or reliability) or multi-state mode (increasing storage density) are described in US patent application Ser. No. 10 filed Jul. 6, 2004. No. 886,302 (patent document 28) and US Pat. No. 5,930,167 (patent document 29). Although these methods are used for slightly different purposes, these methods can be adapted to the present invention. These and other methods of improving performance can be used individually or in combination, and more suitable techniques can vary from application to application. Furthermore, it can be progressively combined to provide several levels of increased performance so that only more thorough techniques are included in the most extreme cases.
FIG. 3 shows an example of on-chip copy optimization. The exemplary on-chip copy process begins at step 301, where step 303 determines whether there is a system related situation associated with high latency operation. Examples of typical high latency events include full garbage collection, errors during programming, errors during garbage collection, or various other events that are triggered as described above. If such a situation is detected, in step 305, the memory switches to a mode in which ECC checking in on-chip copy (OCC) operations is reduced or shortened to increase speed. For example, the threshold for correcting an ECC error (such as during copying or reading after writing) can be increased.
Data transfers (or other long latency operations) can be distributed over several busy periods between transfers. Distributing or rescheduling operations over several periods in this manner helps to improve high latency operation in both step 305 and step 405 described below with reference to FIG. Can do.
Returning to FIG. 3, if a high latency operation is unlikely in the near future, step 307 may check for possible reliability problems. Examples of high reliability issues include partial page programming or low voltage conditions. If there is no system related situation associated with the reliability problem, then in step 309 a normal programming sequence is used. If a reliability situation is identified, a special sequence can be used instead at step 311. Examples of ways to improve reliability include lowering the threshold when correcting ECC errors, or increasing programming time through a number of finer programming steps.
The exemplary embodiment of FIG. 3 includes on-chip copy being optimized for both high latency operation and high reliability situations. These are independent aspects, and the process need not have both steps 303 and 307. For example, decisions regarding high reliability issues can be reduced, eliminating step 307 (and step 311) and having a path that goes directly from step 303 to step 309 if "no". Alternatively, step 303 (and step 305) can be eliminated and processing proceeds directly from step 301 to step 307. In practical embodiments, systematic usage situations may arise where optimized data relocations will be used continuously, or at least extended. In such a case, it is preferable to include a mechanism that finally ensures that the ECC of the data can be checked at an interval.
The memory can be returned to the normal operating mode in many different ways depending on the embodiment. For example, this embodiment shows that a special mode needs to be specified for each period, that the special mode is limited to the duration of a specific command sequence, that a command is used to return to normal mode, Alternatively, any combination of these can be included.
FIG. 4 illustrates an example embodiment for optimizing programming based on relevant conditions related to system operation. In FIG. 4, the various branches are similar to the branches of FIG. Step 403 and step 407 each determine whether there is a high latency operation or a high reliability problem. An example of these situations is on-chip copy. If the high latency situation has a risk of timeout, a fast programming sequence can be used in some cases at the expense of reliability and / or power consumption (step 405). If the system status indicates that latency is not a problem but latency is a problem, a highly reliable programming sequence can be used (step 411). (Although shown from the viewpoint of reliability, the use of a low power mode that may or may not be the same as the high reliability sequence can be similarly implemented if an appropriate time is available.) If there is no problem or timeout risk, a normal programming sequence can be used (step 409).
A specific example of a system related situation that may need to compensate for a worse reliability sequence is partial programming. Partial programming is one of the more difficult NAND parameters to optimize because of the jamming mechanism. However, from the system point of view, the system knows when a partial programming sequence is needed. In this case, special slow or low disturbing mechanisms can be used. In some cases, the NAND memory itself may detect this sequence and optimize itself instead of requiring a separate command sequence.
There are many possible embodiments for speeding up the memory in step 405, which can be used individually or in combination. In one embodiment, the clock speed in the memory is changed. For example, a low power system operating at 30 MHz can switch to 60 MHz, and a standard 60 MHz system can move to a higher speed clock. In other embodiments, the programming pulse characteristics (period, step size, etc.) can be switched. (Conversely, all such changes can be reversed in the special reliability sequence of step 411.)
In systems that incorporate read after write to ensure accurate writing of data, this step can be omitted during the high speed mode. The scrubbing and wear leveling operations (as described in US Pat. No. 5,532,962) used to improve memory reliability are critical situations. Can be shortened. In addition, the voltage regulator or other power source can be changed to improve speed / reliability at the expense of power consumption, eg, switching between high current mode or low current mode.
Many of the embodiments of the special high reliability programming sequence are the reverse of those described above with respect to step 405. These can be read after writing or adding such other system features, changing voltage regulators or other power supplies to improve reliability against power consumption, and programming Including changing the characteristics of the pulse.
Depending on the specific characteristics of the memory used, various implementation issues may have to be addressed. For example, changing write characteristics (fast or slow) may change the distribution of data states and affect data rereading. If such a problem may occur, the system preferably has a mechanism to track or detect different write states during the read process, if necessary. This includes changing the read margin (or the use of a “large” read sequence) during data re-reading.
Although the embodiments of FIG. 3 and FIG. 4 are shown alone in this specification, these embodiments can be combined with various variations. For example, in an on-chip copy operation where a high latency situation occurs, the programming associated with the on-chip copy of step 305 can use the fast programming sequence of step 405. Furthermore, like FIG. 3, FIG. 4 includes optimizations for both high latency behavior and high reliability situations. As mentioned above, these are independent aspects.
Further, although step 305 and step 405 referred to a single high performance mode, more generally many graded high performance modes can be used. An appropriate performance mode can be selected according to the severity of the situation. Similarly, in step 311 and step 411, multiple tiered levels that increase reliability can be used. As with the other aspects described above, these various aspects can be implemented in hardware or software, or in preferred embodiments via programmable firmware.
As mentioned above, various techniques for improving the performance of memory systems have been shown. Many other techniques for improving performance are discussed in US patent application Ser. No. 10 / 901,849 filed Jul. 28, 2004 and Jul. 6, 2004, previously cited. U.S. Patent Application Serial No. 10 / 886,302 of the application. The various aspects of these patent applications are complementary and can be combined.
Although various aspects of the invention have been described with reference to specific exemplary embodiments, it is to be understood that the invention is entitled to protection within the full scope of the appended claims. You can understand that.
In this specification, the above-mentioned patents, patent applications, papers and book parts are all incorporated into the background art as a whole for reference.
1 is a block diagram of a first non-volatile memory system in which the present invention can be implemented. 2 is a block diagram of a second non-volatile memory system in which the present invention can be implemented. FIG. It is a flowchart which shows an example of optimization of on-chip copy. It is a flowchart which shows an example of the optimization of programming.
A memory having a rewritable data storage portion;
A controller that manages data stored in the memory and controls transfer of data between the memory system and a host to which the memory system is connected, and has a higher performance than the first mode. including 2 modes, according to a plurality of modes each having a separate performance level for operation of writing the data can operate the memory system, the memory normally accordance with yet a first mode of a plurality of modes and a controller for operating is operated, the memory according to the second mode of the plurality of modes in response to said controller to determine one system associated with high latency situation instead,
The memory system of claim 1 , wherein
The high latency situation is a memory system that is an error during programming.
The memory system wherein the high latency situation is an error during a data relocation operation.
The memory system in which the high latency situation is a garbage collection operation.
The second mode is a memory system that uses a lower level of error detection and correction than the first mode.
In the memory system, the second mode uses a faster programming sequence than the first mode.
The memory system of claim 6 , wherein
The memory system using the second mode uses a clock speed higher than that of the first mode.
The memory system of claim 7 , wherein
In the memory system, the second mode uses a programming pulse having a longer period than the first mode.
The memory system in which the second mode uses a programming pulse having a larger amplitude than that of the first mode.
The memory system wherein the controller further operates the memory according to a third mode having higher reliability than the first mode depending on further system related conditions.
The memory system of claim 10 , wherein
The further system related situation is a partial page programming memory system.
The further system related situation is a memory system that is in a low voltage state.
The third mode is a memory system that uses a higher degree of error detection and correction than the first mode.
The third mode is a memory system that uses a slower programming sequence than the first mode.
The memory system of claim 14 , wherein
The third mode is a memory system that uses a slower clock speed than the first mode.
In the memory system, the third mode uses a programming pulse having a shorter period than the first mode.
The third mode is a memory system using a lower amplitude programming pulse.
A method of operating a memory system, wherein the memory system manages a memory having a rewritable data storage portion, data stored in the memory, and the memory system and the memory system are connected A controller for controlling the transfer of data to and from the host, said controller having a separate performance level for operations to write data, including a second mode having a higher performance than the first mode. In a method capable of operating the memory system according to a plurality of modes each having:
Operating the memory according to a first mode of a plurality of modes;
Then determining a system-related high latency situation by the controller;
Responsive to determining a high latency situation associated with the system, the controller selecting a second mode of a plurality of modes for operation of the memory system;
Then, instead of the first mode of the plurality of modes, comprising the steps of: operating the memory according to the previous SL second mode,
The high latency situation is a programming error.
The method wherein the high latency situation is an error during a data relocation operation.
The high latency situation is a garbage collection operation.
The second mode uses a lower level of error detection and correction than the first mode.
The second mode uses a faster programming sequence than the first mode.
24. The method of claim 23 .
The second mode uses a higher clock speed than the first mode.
The second mode uses a programming pulse of a longer period than the first mode.
The second mode uses a programming pulse having a larger amplitude than the first mode.
Determining further system related status by the controller;
Responsive to the step of determining the further system related status, operating the memory according to a third mode having higher reliability than the first mode in response to the further system related status;
28. The method of claim 27 , wherein
The method wherein the further system related situation is partial page programming.
The further system related situation is a low voltage condition.
The third mode uses a higher degree of error detection and correction than the first mode.
The third mode uses a slower programming sequence than the first mode.
32. The method of claim 31 , wherein
The third mode uses a slower clock speed than the first mode.
The third mode uses a programming pulse having a shorter period than the first mode.
The third mode uses a lower amplitude programming pulse.
JP2008524989A 2005-08-02 2006-07-18 Context-sensitive memory performance Expired - Fee Related JP4643711B2 (en)
JP2009503726A JP2009503726A (en) 2009-01-29
JP4643711B2 true JP4643711B2 (en) 2011-03-02
JP2008524989A Expired - Fee Related JP4643711B2 (en) 2005-08-02 2006-07-18 Context-sensitive memory performance
WO2011118114A1 (en) * 2010-03-26 2011-09-29 パナソニック株式会社 Non-volatile storage device and memory controller
CN105512048B (en) * 2014-10-16 2018-11-09 瑞昱半导体股份有限公司 data configuration method and device
JPH01290200A (en) * 1988-05-16 1989-11-22 Nec Corp Lsi memory with self-correcting function
2006-07-18 JP JP2008524989A patent/JP4643711B2/en not_active Expired - Fee Related
US20070033581A1 (en) 2007-02-08
2009-07-15 A871 Explanation of circumstances concerning accelerated examination
Ref document number: 4643711