Program and read trim setting
A method and apparatus for setting trim parameters in a memory device provides multiple trim settings that are assigned to portions of the memory device according to observed or tested programming speed and reliability.
Latest Micron Technology, Inc. Patents:
- On-die formation of single-crystal semiconductor structures
- Apparatus and method including memory device having 2-transistor vertical memory cell
- Secure data storage with a dynamically generated key
- In-line programming adjustment of a memory cell in a memory sub-system
- Integrated assemblies and methods of forming integrated assemblies
This application is a continuation of U.S. application Ser. No. 13/158,826, titled “PROGRAM AND READ TRIM SETTING,” filed on Jun. 13, 2011 , and issued as U.S. Pat. No. 9,042,178 on May 26, 2015, which is a continuation of U.S. application Ser. No. 12/547,218 of the same title, filed Aug. 25, 2009 and issued as U.S. Pat. No. 7,961,517 on Jun. 14, 2011, which is a divisional of U.S. application Ser. No. 11/218,851 of the same title, filed Sept. 1, 2005 and issued as U.S. Pat. No. 7,580,287 on Aug. 25, 2009, each of U.S. application Ser. No. 13/158,826, U.S. application Ser. No. 12/547,218, and U.S. application Ser. No. 11/218,851 commonly assigned and incorporated in their entirety herein by reference.
FIELDThe present invention relates generally to memory devices and in particular the present invention relates to flash memory devices.
BACKGROUNDIn conventional memory programming, such as NAND or other flash programming trim setting methods, program trim information is stored in a peripheral area. Further, only one trim set is used and applied to on die, that is to all blocks and all word lines of the NAND device. However, in the case of pitch doubling pattering technology, which is becoming common in NAND devices, the critical dimension differences between even and odd column and row lines is increasing. This is due to decreased uniformity of side wall oxides and etching. A single trim setting is not suitable for all pages for effective trim setting.
For example, certain combinations of active area of the lines on which signals are passing and the gate size of transistors involved in programming or read operations will program or read much more quickly than others. A trim setting suitable for a fast read or program is not necessarily suitable for a slow read or program operation.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for an improved trim setting method and memory.
In the following detailed description of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, specific embodiments in which the invention may be practiced. In the drawings, like numerals describe substantially similar components throughout the several views. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. Other embodiments may be utilized and structural, logical, and electrical changes may be made without departing from the scope of the present invention.
The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, along with the full scope of equivalents to which such claims are entitled.
Embodiments of the present invention provide trim settings that are used to individualize portions of a memory device or system with a trim setting that allows each portion to be more efficiently and effectively programmed.
Three or four different trim set parameters, stored in a trim set register, allows variations in geometry, programming speed, and the like, to be taken into account. Four trim settings are very effective for improving program speed and program reliability. The settings are assigned in various embodiments per page, block, row, column, partition, or the like. It should be understood that trim settings could be assigned in a register to any portion of a memory device, but space limitations and practicality typically limit the size of the trim set register. A register containing three or four individual trim settings, each having a program voltage, a step-up voltage, and a program pulse width, provides a good compromise between speed, reliability, and space. In another embodiment, the number of trim settings is an exponential value of 2, that is 2n, where n is a positive integer. Therefore, the number of trim settings in such an embodiment is 2, 4, 8, 16, 32, . . . )
A method 100 of programming a memory device, such as a NAND memory device, a flash memory device, or the like, is shown in
In one embodiment 200, the trim settings are assigned to row and column combinations as shown in
In another embodiment, there are three independent trim settings, with the even/odd and odd/even row/column trim settings (trim 2 and trim 3) being equal.
In another embodiment 300, the trim settings are assigned to wide and narrow active area and gate configuration combinations as shown in
In another embodiment, there are three independent trim settings, with the wide/narrow and narrow/wide active area/gate trim settings (trim 2 and trim 3) being equal.
Trim settings in a program-verify-read or normal read setting include different parameters, such as a sensing time or sense amplifier delay, a bitline precharge voltage, and a sensing or sense reference voltage. Such settings can be modified or changed to accommodate specific read or verify operations. In another embodiment, a second trim set register is used to store the program-read-verify or normal read trim settings, which are programmed into the second trim set register in a similar fashion as that described above.
In another embodiment, testing is performed for each portion of the memory device, and a trim setting most appropriate for the observed or tested programming speed is used.
A method 400 of testing a memory device to set trim settings is shown in
It should further be understood that while typically, a wide/wide combination of active area and gate configuration programs quickly and a narrow/narrow combination of active area and gate configuration programs slowly, due to many factors, including but not limited to geometry, length of lines, method of fabrication and the like, a narrow/narrow active area and gate configuration combination could program quickly, while a wide/wide active area and gate configuration combination could program slowly. Once probing results in a determination of the speed and reliability of a portion of the memory device, the trim settings are adjustable to accommodate differences that are out of the ordinary as well.
It should be understood that while row/column identities are used, some lines even though they are in a pattern do not conform to the conventions described above. Instead, there may be four or more trim settings, of which one can be applied, based on any number of criteria. Further, trim settings can be applied per page, per block, per array, per sector, per partition, or the like without departing from the scope of the invention.
An address buffer circuit 540 is provided to latch address signals provided on address input connections A0-Ax 542. Address signals are received and decoded by row decoder 544 and a column decoder 546 to access the memory array 530. It will be appreciated by those skilled in the art, with the benefit of the present description, that the number of address input connections depends upon the density and architecture of the memory array. That is, the number of addresses increases with both increased memory cell counts and increased bank and block counts.
The memory device reads data in the array 530 by sensing voltage or current changes in the memory array columns using sense/latch circuitry 550. The sense/latch circuitry, in one embodiment, is coupled to read and latch a row of data from the memory array. Data input and output buffer circuitry 560 is included for bi-directional data communication over a plurality of data (DQ) connections 562 with the processor 510, and is connected to write circuitry 555 and read/latch circuitry 550 for performing read and write operations on the memory 500.
Command control circuit 570 decodes signals provided on control connections 572 from the processor 510. These signals are used to control the operations on the memory array 530, including data read, data write, and erase operations. A trim set register 580, such as those described above, is programmable with trim settings according to the portions of the memory device 500. The flash memory device has been simplified to facilitate a basic understanding of the features of the memory. A more detailed understanding of internal circuitry and functions of flash memories are known to those skilled in the art.
It should be understood that while a generic memory device is shown, the embodiments of the present invention are amenable to use with many integrated circuits as well as with other memory devices, including but not limited to dynamic random access memory (DRAM), synchronous DRAM, flash memory, and the like.
In some embodiments, memory module 600 will include a housing 605 (as depicted) to enclose one or more memory devices 610, though such a housing is not essential to all devices or device applications. At least one memory device 610 is a non-volatile memory with a trim set register such as register 580 described above for a plurality of trim settings as described above. Where present, the housing 605 includes one or more contacts 615 for communication with a host device. Examples of host devices include digital cameras, digital recording and playback devices, PDAs, personal computers, memory card readers, interface hubs and the like. For some embodiments, the contacts 615 are in the form of a standardized interface. For example, with a USB flash drive, the contacts 615 might be in the form of a USB Type-A male connector. For some embodiments, the contacts 615 are in the form of a semi-proprietary interface, such as might be found on CompactFlash™ memory cards licensed by SanDisk Corporation, Memory Stick™ memory cards licensed by Sony Corporation, SD Secure Digital™ memory cards licensed by Toshiba Corporation and the like. In general, however, contacts 615 provide an interface for passing control, address and/or data signals between the memory module 100 and a host having compatible receptors for the contacts 615.
The memory module 600 may optionally include additional circuitry 620 which may be one or more integrated circuits and/or discrete components. For some embodiments, the additional circuitry 620 may include a memory controller for controlling access across multiple memory devices 610 and/or for providing a translation layer between an external host and a memory device 610. For example, there may not be a one-to-one correspondence between the number of contacts 615 and a number of I/O connections to the one or more memory devices 610. Thus, a memory controller could selectively couple an I/O connection (not shown in
The additional circuitry 620 may further include functionality unrelated to control of a memory device 610 such as logic functions as might be performed by an ASIC (application specific integrated circuit). Also, the additional circuitry 620 may include circuitry to restrict read or write access to the memory module 600, such as password protection, biometrics or the like. The additional circuitry 620 may include circuitry to indicate a status of the memory module 600. For example, the additional circuitry 620 may include functionality to determine whether power is being supplied to the memory module 600 and whether the memory module 600 is currently being accessed, and to display an indication of its status, such as a solid light while powered and a flashing light while being accessed. The additional circuitry 620 may further include passive devices, such as decoupling capacitors to help regulate power requirements within the memory module 600.
CONCLUSIONA method of setting trim settings, and memory devices and systems using the trim setting method and a trim set register have been described that include a trim set register with a plurality of trim settings to allow a memory or system to have improved reliability and programming speed by tailoring trim settings to individual portions of the memory, such as pages, blocks, partitions, sectors, columns, rows, and the like. The memory device parameters are tested in one embodiment and trim settings applied based on observed programming speed and reliability data.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement, which is calculated to achieve the same purpose, may be substituted for the specific embodiment shown. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.
Claims
1. A method of increasing program reliability in a NAND memory, comprising:
- identifying a plurality of portions of the NAND memory;
- testing a plurality of trim settings stored in a trim setting register to determine which trim setting of the plurality of trim settings is best for a respective portion of the plurality of portions of the NAND memory; and
- assigning the determined best trim setting to the respective portion of the plurality of portions of the NAND memory according to a program speed of the respective portion of the plurality of portions of the NAND memory.
2. The method of claim 1, wherein the plurality of portions of the NAND memory are a plurality of pages of the NAND memory, and wherein assigning the determined best trim setting to the respective portion of the plurality of portions of the NAND memory comprises assigning the determined best trim setting to one of the plurality of pages of the NAND memory.
3. The method of claim 1, wherein the plurality of portions of the NAND memory are a plurality of blocks of the NAND memory, and wherein assigning the determined best trim setting to the respective portion of the plurality of portions of the NAND memory comprises assigning the determined best trim setting to one of the plurality of blocks of the NAND memory.
4. The method of claim 1, and further comprising:
- testing the respective portion of the plurality of portions of the NAND memory to determine the program speed of the respective portion of the plurality of portions of the NAND memory.
5. The method of claim 1, wherein the respective portion of the plurality of portions of the NAND memory comprises an edge block.
6. The method of claim 1, wherein the respective portion of the plurality of portions of the NAND memory comprises a center block.
7. A method of increasing program reliability in a NAND memory, comprising:
- identifying a plurality of portions of the NAND memory;
- testing a plurality of trim settings stored in a trim setting register to determine which trim setting of the plurality of trim settings is best for a respective portion of the plurality of portions of the NAND memory; and
- assigning the determined best trim setting to the respective portion of the plurality of portions of the NAND memory;
- wherein the plurality of portions of the NAND memory are a plurality of columns of the NAND memory, and wherein assigning the determined best trim setting to the respective portion of the plurality of portions of the NAND memory comprises assigning the determined best trim setting to a column of the plurality of columns of the NAND memory.
8. A method of increasing program reliability in a NAND memory, comprising:
- identifying a plurality of portions of the NAND memory;
- testing a plurality of trim settings stored in a trim setting register to determine which trim setting of the plurality of trim settings is best for each respective portion of the plurality of portions of the NAND memory; and
- assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory;
- wherein assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory includes assigning trim set parameters for:
- a wide active area and a wide gate;
- a wide active area and a narrow gate;
- a narrow active area and a wide gate; and
- a narrow active area and a narrow gate.
9. The method of claim 8, wherein the trim set parameters for the wide active area and the narrow gate and for the narrow active area and the wide gate are the same.
10. A method of increasing program reliability in a NAND memory, comprising:
- identifying a plurality of portions of the NAND memory;
- testing a plurality of trim settings stored in a trim setting register to determine which trim setting of the plurality of trim settings is best for each respective portion of the plurality of portions of the NAND memory; and
- assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory;
- wherein assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory includes assigning trim parameters to each respective portion of the plurality of portions of the NAND memory according to its programming speed, wherein the trim parameters include trim parameters for fast programming portions of the plurality of portions of the NAND memory, first intermediate speed programming portions of the plurality of portions of the NAND memory, second intermediate speed programming portions of the plurality of portions of the NAND memory, and slow programming portions of the plurality of portions of the NAND memory.
11. The method of claim 10, wherein the trim parameters for the first intermediate speed programming portions of the plurality of portions of the NAND memory and the second intermediate speed programming portions of the plurality of portions of the NAND memory are the same.
12. A method of increasing program reliability in a NAND memory, comprising:
- identifying a plurality of portions of the NAND memory;
- testing a plurality of trim settings stored in a trim setting register to determine which trim setting of the plurality of trim settings is best for each respective portion of the plurality of portions of the NAND memory; and
- assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory;
- wherein assigning the best trim setting determined for each respective portion of the plurality of portions of the NAND memory to each respective portion of the plurality of portions of the NAND memory includes assigning trim set parameters for:
- an even row and an even column;
- an even row and an odd column;
- an odd row and an even column; and
- an odd row and odd column.
13. The method of claim 12, wherein the trim set parameters for the even row and the even column, and for the odd row and the even column, are the same.
14. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device based on the determined programming speed for each of the plurality of portions of the memory device.
15. The method of claim 14, wherein the plurality of trim settings comprises four.
16. The method of claim 14, wherein the plurality of trim settings comprises three.
17. The method of claim 14, wherein the plurality of trim settings comprises 2n, where n is a positive integer.
18. The method of claim 14, wherein the plurality of portions of the memory device are a plurality of blocks of the memory device, and wherein assigning the best one of the plurality of trim settings to each portion of the plurality of portions of the memory device comprises assigning the best one of the plurality of trim settings to each block of the plurality of blocks of the memory device.
19. The method of claim 14, wherein the plurality of portions of the memory device are a plurality of columns of the memory device, and wherein assigning the best one of the plurality of trim settings to each portion of the plurality of portions of the memory device comprises assigning the best one of the plurality of trim settings to each column of the plurality of columns of the memory device.
20. The method of claim 14, and further comprising:
- assigning trim set parameters for:
- an edge block of the memory device; and
- a center block of the memory device.
21. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device;
- wherein the plurality of portions of the memory device are a plurality of pages of the memory device, and wherein assigning the best one of the plurality of trim settings to each portion of the plurality of portions of the memory device comprises assigning the best one of the plurality of trim settings to each page of the plurality of pages of the memory device.
22. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device;
- wherein the plurality of portions of the memory device are a plurality of rows of the memory device, and wherein assigning the best one of the plurality of trim settings to each portion of the plurality of portions of the memory device comprises assigning the best one of the plurality of trim settings to each row of the plurality of rows of the memory device.
23. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device; and
- assigning trim set parameters for:
- a wide active area and a wide gate of the memory device;
- a wide active area and a narrow gate of the memory device;
- a narrow active area and a wide gate of the memory device; and
- a narrow active area and a narrow gate of the memory device.
24. The method of claim 23, wherein the trim set parameters for the wide active area and the narrow gate and for the narrow active area and the wide gate are the same.
25. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device; and
- assigning trim parameters to portions of the plurality of portions of the memory device according to their programming speed, wherein the trim parameters include parameters for fast programming portions of the plurality of portions of the memory device, first intermediate speed programming portions of the plurality of portions of the memory device, second intermediate speed programming portions of the plurality of portions of the memory device, and slow programming portions of the plurality of portions of the memory device.
26. The method of claim 25, wherein the trim parameters for the first intermediate speed programming portions of the plurality of portions of the memory device and the second intermediate speed programming portions of the plurality of portions of the memory device are the same.
27. A method of testing a memory device to set trim settings, comprising:
- determining a programming speed for each portion of a plurality of portions of the memory device; and
- assigning a best one of a plurality of trim settings to each portion of the plurality of portions of the memory device; and
- assigning trim set parameters for:
- an even row and an even column of the memory device;
- an even row and an odd column of the memory device;
- an odd row and an even column of the memory device; and
- an odd row and odd column of the memory device.
28. The method of claim 27, wherein the trim set parameters for the even row and the even column of the memory device and for the odd row and the even column of the memory device are the same.
29. A method of testing a memory device to set trim settings, comprising:
- using a probe to determine a programming speed for each of a plurality of portions of the memory device;
- adjusting a plurality of trim settings based on the determined programming speed for each of the plurality of portions of the memory device; and
- assigning a best one of the plurality of trim settings to each of the plurality of portions of the memory device.
30. The method of claim 29, wherein adjusting a plurality of trim settings comprises adjusting a plurality of trim settings that are stored in a register of the memory device.
5172338 | December 15, 1992 | Mehrotra et al. |
5293337 | March 8, 1994 | Aritome et al. |
5321699 | June 14, 1994 | Endoh et al. |
5361227 | November 1, 1994 | Tanaka et al. |
5386442 | January 31, 1995 | Diaz et al. |
5402373 | March 28, 1995 | Aritome et al. |
5453668 | September 26, 1995 | Chow |
5469444 | November 21, 1995 | Endoh et al. |
5528547 | June 18, 1996 | Aritome et al. |
5546351 | August 13, 1996 | Tanaka et al. |
5555204 | September 10, 1996 | Endoh et al. |
5602789 | February 11, 1997 | Endoh et al. |
5615165 | March 25, 1997 | Tanaka et al. |
5724300 | March 3, 1998 | Tanaka et al. |
5774397 | June 30, 1998 | Endoh et al. |
5793696 | August 11, 1998 | Tanaka et al. |
5818791 | October 6, 1998 | Tanaka et al. |
5909399 | June 1, 1999 | Tanaka et al. |
5917767 | June 29, 1999 | Ohta |
5940321 | August 17, 1999 | Takeuchi et al. |
5946231 | August 31, 1999 | Endoh et al. |
5978265 | November 2, 1999 | Kirisawa et al. |
5991219 | November 23, 1999 | Nakashima |
5995413 | November 30, 1999 | Holzmann et al. |
6009041 | December 28, 1999 | Rolandi et al. |
6014330 | January 11, 2000 | Endoh et al. |
6023423 | February 8, 2000 | Aritome |
6046940 | April 4, 2000 | Takeuchi et al. |
6049482 | April 11, 2000 | Aritome et al. |
6172911 | January 9, 2001 | Tanaka et al. |
6188611 | February 13, 2001 | Endoh et al. |
6191975 | February 20, 2001 | Shimizu et al. |
6225933 | May 1, 2001 | Salter et al. |
6477090 | November 5, 2002 | Yamaki |
6762968 | July 13, 2004 | Suematsu et al. |
6876586 | April 5, 2005 | Hausmann |
6898119 | May 24, 2005 | Imamiya et al. |
6922134 | July 26, 2005 | Yones |
7057936 | June 6, 2006 | Yaegashi et al. |
7203119 | April 10, 2007 | Lee |
7277350 | October 2, 2007 | Huckaby et al. |
20020048191 | April 25, 2002 | Ikehashi et al. |
20030156440 | August 21, 2003 | Hata et al. |
20040148482 | July 29, 2004 | Grundy et al. |
20040264264 | December 30, 2004 | Yaegashi et al. |
20060015691 | January 19, 2006 | Louie |
20060256620 | November 16, 2006 | Nguyen et al. |
20060274594 | December 7, 2006 | Huckaby |
20070223278 | September 27, 2007 | Aritome |
Type: Grant
Filed: Apr 16, 2015
Date of Patent: Nov 29, 2016
Patent Publication Number: 20150221378
Assignee: Micron Technology, Inc. (Boise, ID)
Inventor: Seiichi Aritome (Hsinchu County)
Primary Examiner: Tha-O H Bui
Application Number: 14/688,149
International Classification: G11C 11/34 (20060101); G11C 16/10 (20060101);