A memory system including means for verifying the contents of a memory cell contained in a memory array to determine if a shift in the threshold voltage level has occurred. The memory system is placed into a test mode of operation in which an internal program or erase verify operation is executed under the control of the system's internal state machine. Once in the mode, the memory system steps through each memory cell, address by address, and reads the contents of the cell using the appropriate reference voltage for a programming or erase operation. A status register bit is set indicating successful completion of the verification operation for a block of memory cells. A register bit is also set if a cell fails the verification operation. This provides a more accurate determination of the state of a memory cell than can be achieved by performing an external read operation using read operation or data verification reference voltage levels.
|
0. 41. A memory device comprising:
an array of memory cells; and a controller coupled to the array, wherein the controller performs each of a plurality of memory operations on the array by bypassing one or more memory sub-operations according to a user-configurable flow register in order to perform an internal memory verification.
0. 49. A method of internally verifying a memory device comprising:
initiating an internal memory verification operation, during a test operation, based on a user-configurable control parameter; comparing a sensed voltage of a selected cell with a reference voltage during the memory verification operation; and setting an externally available status indicator to indicate success or failure of the comparison.
0. 77. A flash memory device comprising:
a plurality of non-volatile memory cells; and a controller coupled to the array, wherein the controller performs each of a plurality of memory operations on the plurality of non-volatile memory cells by executing one or more memory sub-operations according to a programmable flow controller; and wherein the flow controller causes the memory device to bypass at least one of the plurality of memory operations in a test mode.
0. 62. A memory system, comprising:
an internal state machine adapted to perform memory operations by sequentially executing memory sub-operations, wherein at least one memory operations involves verification of a memory cell voltage level; and a flow register having data fixing the sequence of the memory sub-operations executed by the internal state machine, wherein the data of the flow register is a function of control parameters stored in a data storage element of the memory system.
0. 46. A memory device comprising:
an array of memory cells; and a controller coupled to the array, wherein the controller performs each of a plurality of memory operations on the array by executing one or more memory sub-operations according to a user-configurable flow register, wherein the controller bypasses at least one of the memory sub-operations in order to perform an internal memory verification operation in response to a control parameter stored in a data storage element of the memory device.
0. 56. A method of internally verifying a memory device comprising:
initiating an internal memory verification operation based on a user-configurable control parameter; comparing a sensed voltage of a selected cell with a reference voltage during the memory verification operation; and setting an externally available status indicator to indicate success or failure of the comparison, wherein comparing the sensed voltage includes setting the reference level as a function of data stored in a reference level register.
0. 57. A method of performing an internal memory verification operation on a memory device comprising:
performing one or more memory operations during a normal mode by executing a plurality of memory sub-operations in a sequence; and performing an internal memory verification operation during a test mode by executing a subset of the memory sub-operations, wherein performing the internal memory verification operation includes executing the subset of memory sub-operations according to a user-configurable control parameter stored in a data storage element of the memory device.
0. 32. A memory system comprising:
an array of memory cells; a controller coupled to the array for performing a plurality of memory operations on the array of memory cells including an internal memory verification operation; and an externally available status indicator coupled to the controller, wherein the controller sets the status indicator to indicate success or failure of the internal memory verification operation during a memory test operation, wherein the controller bypasses at least one memory sub-operation in order to perform the internal memory verification operation.
0. 76. A flash memory device comprising:
a plurality of non-volatile memory cells; test mode circuitry to place the flash memory device in test mode a flow controller for causing the memory device to bypass at least one of a plurality of memory erase operations while in the test mode; and an externally accessible status register comprising a status register bit, the status register bit is programmable to indicate success or failure of a test operation performed on the plurality of non-volatile memory cells, such that the status register bit can be read by a device external to the flash memory device.
0. 67. A system, comprising:
a processor; and a memory device connected to the processor, comprising: an array of memory cells; a controller coupled to the array for performing a plurality of memory operations on the array of memory cells including an internal memory verification operation; and an externally available status indicator coupled to the controller, wherein the controller sets the status indicator to indicate success or failure of the internal memory verification operation during a memory test operation, wherein the controller bypasses at least one memory sub-operation in order to perform the internal memory verification operation. 0. 37. A memory system comprising:
an array of memory cells; a controller coupled to the array for performing a plurality of memory operations on the array of memory cells including an internal memory verification operation; and an externally available status indicator coupled to the controller, wherein the controller sets the status indicator to indicate success or failure of the internal memory verification operation, the controller performs each of the plurality of memory operations by executing one or more memory sub-operations according to a user-configurable flow, and the controller bypasses at least one of the memory sub-operations in order to perform the internal memory verification operation.
0. 58. A method of performing an internal memory verification operation on a memory device comprising:
performing one or more memory operations during a normal mode by executing a plurality of memory sub-operations in a sequence; and performing an internal memory verification operation during a test mode by executing a subset of the memory sub-operations, wherein performing the internal memory verification operation includes executing the subset of memory sub-operations according to a user-configurable control parameter stored in a data storage element of the memory device, wherein executing the subset of memory sub-operations includes bypassing at least one of the memory sub-operations in response to the user configurable control parameter.
0. 72. A system, comprising:
a processor; and a memory device connected to the processor, comprising: an array of memory cells; a controller coupled to the array for performing a plurality of memory operations on the array of memory cells including an internal memory verification operation; and an externally available status indicator coupled to the controller, wherein the controller sets the status indicator to indicate success or failure of the internal memory verification operation, wherein the controller performs each of the plurality of memory operations by executing one or more memory sub-operations according to a user-configurable flow controller, and wherein the controller bypasses at least one of the memory sub-operations in order to perform the internal memory verification operation. 0. 53. A method of internally verifying a memory device comprising:
initiating an internal memory verification operation based on a user-configurable control parameters stored in a data storage element of the memory device; comparing a sensed voltage of a selected cell with a reference voltage during the memory verification operation; and setting an externally available status indicator to indicate success or failure of the comparison, wherein initiating the internal memory verification operation includes executing one or more memory sub-operations according to a user-configurable sequence, and wherein executing the memory sub-operations includes bypassing at least one of the memory sub-operations in response to the user configurable control parameter stored in a data storage element of the memory device.
15. A memory system comprising:
an array of memory cells; a controller for controlling execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory pre-programming operation which accesses a memory cell in the array, programs the accessed memory cell with data indicative of a logic value of zero, verifies the programmed data, increments the address of the memory cell, and executes the regular pre-programming operation on a memory cell having an address corresponding to the incremented address; and a control modifier which modifies the operation of the controller to cause the controller to execute an internal program verify operation on the memory cells of the memory array, the internal program verify operation including accessing a memory cell in the array, verifying data programmed into the memory cell, and incrementing an address of the memory cell.
17. A memory system comprising:
an array of memory cells; a controller for controlling execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory high voltage erase operation in which a high voltage erase operation is performed on a block of memory cells, a memory cell in the block is accessed, an erased state of the accessed memory cell is verified, the address of the memory cell is incremented, and, the erased state verification operation is performed on a memory cell having an address corresponding to the incremented address; and a control modifier which modifies the operation of the controller to cause the controller to execute an internal erase verify operation on the memory cells of the memory array, the internal erase verify operation including accessing a memory cell in the array, verifying that the memory cell has been erased, and incrementing an address of the memory cell.
26. A method of verifying a state of a memory cell contained in a memory array of a memory system, the memory system including a controller which controls execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory pre-programming operation which accesses a memory cell in the array, programs the accessed memory cell with data indicative of a logic value of zero, verifies the programmed data, increments the address of the memory cell, and executes the regular pre-programming on a memory cell having an address corresponding to the incremented address, the method comprising:
causing the controller to bypass the memory sub-operations not involved in an internal program verify operation; and executing an internal program verify operation, wherein the step of executing the internal program verify operation further comprises: accessing a memory cell in the array; verifying data programmed into the memory cell; and incrementing an address of the memory cell. 29. A method of verifying a state of a memory cell contained in a memory array of a memory system, the memory system including a controller which controls execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory high voltage erase operation in which a high voltage erase operation is performed on a block of memory cells, a memory cell in the block is accessed, an erased state of the accessed memory cell is verified, the address of the memory cell is incremented, and the erased state verification operation is performed on a memory cell having an address corresponding to the incremented address, the method comprising:
causing the controller to bypass the memory sub-operations not involved in an internal erase verify operation; and executing an internal erase verify operation, wherein the step of executing the internal erase verify operation further comprises: accessing a memory cell in the array; verifying that the memory cell has been erased; and incrementing an address of the memory cell. 22. A method of verifying a state of a memory cell contained in a memory array of a memory system, the memory system having a standard mode of operation in which a user can program, erase, and read a memory cell and a test mode of operation in which a non-standard mode of operation can be executed, wherein access to the test mode of operation occurs upon detection of a test mode access state different from those states which occur during the standard mode of operation, the method comprising:
accessing the test mode of operation; placing the memory system into an internal erase verify mode of operation; executing an internal erase verify operation when the memory system is placed into an internal erase verify mode of operation, wherein the step of executing the internal erase verify operation further comprises accessing a memory cell in the array; verifying that the memory cell has been erased; and incrementing an address of the memory cell; and setting a bit of a test mode status register accessible to a user of the test mode indicating success or failure of the internal erase verify operation.
18. A method of verifying a state of a memory cell contained in a memory array of a memory system, the memory system having a standard mode of operation in which a user can program, erase, and read a memory cell and a test mode of operation in which a non-standard mode of operation can be executed, wherein access to the test mode of operation occurs upon detection of a test mode access state different from those states which occur during the standard mode of operation, the method comprising:
accessing the test mode of operation; placing the memory system into an internal program verify mode of operation; executing an internal program verify operation when the memory system is placed into the internal program verify mode of operation, wherein the step of executing the internal program verify operation further comprises accessing a memory cell in the array; verifying data programmed into the memory cell; and incrementing an address of the memory cell; and setting a bit of a test mode status register accessible to a user of the test mode indicating success or failure of the internal program verify operation.
8. A memory system having a standard mode of operation in which a user can program, erase, and read a memory cell, and a test mode of operation in which a non-standard mode of operation can be executed, wherein access to the test mode of operation occurs upon detection of a test mode access state different from those states which occur during the standard mode of operation, the memory system comprising:
an array of memory cells; a test mode detector which detects the test mode access state, wherein the test mode access state is different from those states which occur during the standard mode of operation; an internal erase verify circuit which executes an internal erase verify operation when the memory system is placed into an internal erase verify mode of operation by the test mode detector, wherein the internal erase verify circuit further comprises a memory cell accessor which accesses a memory cell in the array; an erase verification circuit which verifies that the memory cell has been erased; and an address incrementer which increments an address of the memory cell; and a test mode status indicator accessible to a user of the test mode which indicates success or failure of the operation executed when the memory system is placed into the internal erase verify mode of operation by the test mode detector.
1. A memory system having a standard mode of operation in which a user can program, erase, and read a memory cell, and a test mode of operation in which a non-standard mode of operation can be executed, wherein access to the test mode of operation occurs upon detection of a test mode access state different from those states which occur during the standard mode of operation, the memory system comprising:
an array of memory cells; a test mode detector which detects the test mode access state, wherein the test mode access state is different from those states which occur during the standard mode of operation; an internal program verify circuit which executes an internal program verify operation when the memory system is placed into an internal program verify mode of operation by the test mode detector, wherein the internal program verify circuit further comprises a memory cell accessor which accesses a memory cell in the array; a programmed data verification circuit which verifies data programmed into the memory cell; and an address incrementer which increments an address of the memory cell; and a test mode status indicator accessible to a user of the test mode which indicates success or failure of the operation executed when the memory system is placed into the internal program verify mode of operation by the test mode detector.
2. The memory system of
a threshold voltage circuit which determines a threshold voltage of the memory cell; and a comparator which compares the threshold voltage to a program operation reference voltage.
3. The memory system of
a controller for controlling execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory pre-programming operation which accesses a memory cell in the array, programs the accessed memory cell with data indicative of a logic value of zero, verifies the programmed data, increments the address of the memory cell, and executes the regular pre-programming operation on a memory cell having an address corresponding to the incremented address, wherein the internal program verify circuit further comprises: a flow controller for causing the controller to bypass one of the plurality of memory erase sub-operations. 4. The memory system of
5. The memory system of
a control parameter generator which generates the control parameters for bypassing the erase sub-operation in response to a control signal which initiates execution of the internal program verify operation.
6. The memory system of
7. The memory system of
a high voltage control signal generator which generates a high voltage stage control signal which causes the high voltage stage to be bypassed when the memory system is placed into an internal program verify mode of operation by the test mode detector.
9. The memory system of
a threshold voltage circuit which determines a threshold voltage of the memory cell; and a comparator which compares the threshold voltage to an erase operation reference voltage.
10. The memory system of
a controller for controlling execution of a memory erase operation which includes a plurality of memory erase sub-operations, the memory erase sub-operations including a regular memory high voltage erase operation in which a high voltage erase operation is performed on a block of memory cells, a memory cell in the block is accessed, an erased state of the accessed memory cell is verified, the address of the memory cell is incremented, and the erased state verification operation is performed on a memory cell having an address corresponding to the incremented address, wherein the internal erase verify circuit further comprises: a flow controller for causing the controller to bypass one of the plurality of memory erase sub-operations. 11. The memory system of
12. The memory system of
a control parameter generator which generates the control parameters for bypassing the erase sub-operation in response to a control signal which initiates execution of the internal erase verify operation.
13. The memory system of
14. The memory system of
a high voltage control signal generator which generates a high voltage stage control signal which causes the high voltage stage to be bypassed when the memory system is placed into an internal erase verify mode of operation by the test mode detector.
16. The memory system of
an internal program verify modifier which modifies execution of the internal program verify operation so that the data programmed into the cell which is verified is data input by a user.
19. The method of
determining a threshold voltage of the memory cell and comparing it to a program operation reference voltage.
20. The method of
causing the controller to bypass a memory erase sub-operation not involved in the internal program verify operation.
21. The method of
generating a control signal which causes the controller to bypass the memory sub-operation in response to placing the memory system into an internal program verify mode of operation.
23. The method of
determining a threshold voltage of the memory cell and comparing it to an erase operation reference voltage.
24. The method of
causing the controller to bypass a memory erase sub-operation not involved in the internal erase verify operation.
25. The method of
generating a control signal which causes the controller to bypass the memory sub-operation in response to placing the memory system into an internal erase verify mode of operation.
27. The method of
determining a threshold voltage of the memory cell and comparing it to a program operation reference voltage.
28. The method of
setting a status register bit indicating success or failure of the internal program verify operation.
30. The method of
determining a threshold voltage of the memory cell and comparing it to an erase operation reference voltage.
31. The method of
setting a status register bit indicating success or failure of the internal erase verify operation.
0. 33. The memory system of
0. 34. The memory system of
0. 35. The memory system of
0. 36. The memory system of
0. 38. The memory system of
0. 39. The memory system of
0. 40. The memory system of
0. 42. The memory device of
0. 43. The memory device of
0. 44. The memory device of
0. 45. The memory device of
0. 47. The memory device of
0. 48. The memory device of
0. 50. The method of
0. 51. The method of
0. 52. The method of
0. 54. The method of
0. 55. The method of
0. 59. The method of
0. 60. The method of
0. 61. The method of
0. 63. The system of
a comparator for comparing the cell voltage level with a reference voltage level; and a user available status indicator, wherein the internal state machine sets the indicator as a function of the comparator.
0. 64. The system of
0. 65. The system of
0. 66. The system of
0. 68. The system of
0. 69. The system of
0. 70. The system of
0. 71. The system of
0. 73. The system of
0. 74. The system of
0. 75. The system of
|
The present invention relates to non-volatile memory systems, and more specifically, to a memory system having a test mode of operation in which the data contained in the memory cells can be verified using the internal data verification process which is part of a programming or erase operation. This provides a test engineer with more reliable status information regarding the data contained in the memory cells then that obtained by performing a read operation or using external verification methods.
In early integrated circuit memory systems, the detailed operation of the memory system was controlled directly by a processor unit which utilized the memory. This was referred to as external control of the memory system operations because the control means was external to the memory itself. Since the operation of many memory systems requires a substantial amount of processor overhead, and since different manufacturers require different operations for optimizing their particular memories, many such systems now include an internal state machine (ISM) for controlling the operation of the memory system. The internal state machine controls the execution of the primary operations of the memory system, including reading, programming and erasing of the memory cells. Each of these primary operations is comprised of a large number of sub-operations which are necessary to carry out the primary operations, with these sub-operations also being controlled by the state machine.
Programming or erasing of the memory cells in array 12 is carried out by applying the appropriate voltages to the source, drain, and control gate of a cell for an appropriate time period. This causes electrons to tunnel or be injected from a channel region to a floating gate. The amount of charge residing on the floating gate determines the voltage required on the control gate in order to cause the device to conduct current between the source and drain regions. This is termed the threshold voltage, Vth, of the cell. Conduction represents an "on" or erased state of the device and corresponds to a logic value of one. An "off" or programmed state is one in which current is not conducted between the source and drain regions and corresponds to a logic value of zero. By setting the threshold voltage of the cell to an appropriate value, the cell can be made to either conduct or not conduct current for a given set of applied voltages. Thus, by determining whether a cell conducts current at a given set of applied voltages, the sate of the cell (programmed or erased) can be found.
Memory system 1 contains internal state machine (ISM) 20 which controls the data processing operations and sub-operations performed on memory array 12. These include the steps necessary for carrying out programming, reading and erasing operations on the memory cells of array 12. In addition, internal state machine 20 controls such operations as reading or clearing status register 26, identifying memory system 1 in response to an identification command, and suspending an erase operation. State machine 20 functions to reduce the overhead required of an external processor (not depicted) typically used in association with memory system 1.
For example, if memory cell array 12 is to be erased (typically, all or large blocks of cells are erased at the same time), the external processor causes the output enable pin {overscore (OE)} to be inactive (high), and the chip enable {overscore (CE)} and write enable {overscore (WE)} pins to be active (low). The processor then issues an 8 bit command 20H (0010 0000) on data I/O pins 15 (DQ0-DQ7), typically called an Erase Setup command. This is followed by the issuance of a second eight bit command DOH (1101 0000), typically called an Erase Confirm command. Two separate commands are used to initiate the erase operation in order to minimize the possibility of inadvertently beginning an erase procedure.
The commands issued on I/O pins 15 are transferred to data input buffer 22 and then to command execution logic unit 24. Command execution logic unit 24 receives and interprets the commands used to instruct state machine 20 to initiate and control the steps required for erasing array 12 or carrying out another desired operation. If a programming operation is being executed, the data to be programmed into the memory cells is input using I/O pins 15, transferred to input buffer 22, and then placed in input data latch 30. The data in latch 30 is then made available to sense amplifier circuitry 50 for the programming and data verification operations. Once a desired operation sequence is completed, state machine 20 updates 8 bit status register 26. The contents of status register 26 is transferred to data output buffer 28, which makes the contents available on data I/O pins 15 of memory system 1. Status register 26 permits the external processor to monitor certain aspects of the status of state machine 20 during memory array write and erase operations. The external processor periodically polls data I/O pins 15 to read the contents of status register 26 in order to determine whether an erase sequence (or other operation) has been completed and whether the operation was successful.
Memory system 1 verifies the status of the memory cells after performing programing or erasing operations on the cells. Verification occurs by accessing each memory element and evaluating the margins (the voltage differential between the threshold voltage of the memory cells and ground level) that the element has after the operation. The system then decides whether the element needs to be reprogrammed or erased further to achieve a desired operational margin.
The memory array needs to be programmed first in a pre-programming cycle before it can be erased. This is to avoid over-erasing the bits in some memory elements to a negative threshold voltage, thereby rendering the memory inoperative. During this cycle of pre-programming, the memory system needs to check to see if the bits are programmed to a sufficient threshold voltage level. This is accomplished by a pre-programming verification cycle that uses a different evaluation procedure than a regular read operation would use. After successful completion of the pre-programming cycle, a high voltage erase operation is executed. After the erase operation is completed, some memory systems go through an operation to tighten the distribution (reduce the variance) of memory element threshold voltages. This makes the manufacturing process easier and more reproducible. After this procedure, the memory system may perform a re-verify operation to determine if the data in the memory array has remained undisturbed.
The pre-program cycle begins with an operation which increments the address of the memory cell which is to be pre-programmed 202. This is done because the pre-programming operation is executed on a cell by cell basis. This step is followed by a high voltage level set-up stage 204 which prepares the system for application of the high voltage levels (typically about 12 volts is applied to the gate of each memory cell and 5 volts to the drain) used for programming or erasing a cell. The high voltage level used for writing to (programming) the cell is then applied in stage 206.
The appropriate voltage levels for executing the data verification sequence (reading the data programmed in the cell and comparing it to a desired value) are applied to the appropriate circuitry at stage 208. This is followed by a program verification stage 210 which verifies that the programmed cell has a sufficient threshold voltage margin. This is typically accomplished by comparing the threshold voltage of the cell to a reference cell having a desired threshold voltage (corresponding to a logic value of 0). If the verification operation was not successful, steps 204, 206, 208, and 210 are repeated. Once the verification stage for a particular memory cell is successfully completed, it is followed by a program clean up stage 212.
Program clean up stage 212 conditions all internal nodes of the memory array to default values in order to prepare the memory system for the next operation. This concludes the pre-programming cycle for a given memory cell. The address of the cell to be operated on is then incremented at stage 202 and the process repeats itself until the last cell in a memory block to be erased is pre-programmed. At this time, the incremented address will point to the first address location in the block, which is the first address for the next operation. When this occurs, all of the memory cells have been successfully pre-programmed and control is passed to the high voltage erase cycle 220.
In the high voltage erase cycle, the memory system performs a block erase operation on all of the cells contained in a block of memory. The first stage in the cycle is a high voltage level set-up stage 222 which prepares the memory block for application of the high voltage pulse(es) used for erasing the cells. This is followed by a high voltage stage 224 in which a short duration, high voltage pulse is applied to erase all of the memory cells in the block of cells. This is followed by a set-up verify stage 226 which applies the appropriate voltage levels for the data verification stage to the corresponding circuits. The next stage is an erase verify stage 228 which verifies that the erase operation was successfully carried out on each cell in the block. This is accomplished by accessing the cells, address by address, and comparing the threshold voltage of the cell to a reference cell having a desired threshold voltage level (corresponding to a logic value of 1).
If the erase operation was not successfully carried out (a cell was not erased to the threshold voltage margin corresponding to the desired logic value), control is passed back to the high voltage level set-up stage 222 and the high voltage cycle is carried out again to erase the entire block of cells. If the erase operation was successful for the cell under consideration, the address of the memory cell is incremented 230 and the next cell is tested for verification of the erase operation. Thus, if the maximum address of the cells in the block of memory has not been reached, erase verify stage 228 is carried out on the next memory cell in the block. If the maximum address for cells in the block has been reached (meaning that all the cells in the memory block have been successfully erased), control is passed to the distribution adjustment cycle 240.
The distribution adjustment sub-operation is used to tighten the distribution (reduce the variance) of the threshold voltages of the erased memory elements. This is done by applying high voltages (i.e. 12 volts) to the gates of all the memory cells in the memory block, with the memory cell drains floating and the sources at ground potential.
The distribution adjustment cycle begins with a high voltage set-up stage 242, which is followed by a high voltage stage 244 in which the voltages used to perform the adjustment sub-operation are applied. This is followed by set-up verification 246 stage which applies the appropriate voltage levels to the corresponding circuits, and erase verification 248 stage which acts to insure that all of the erased cells are still in an erased state. If the erase verification procedure fails, a final erase 249 stage may be executed. In the final erase stage, a short erase pulse is applied to the cells in the block. After completion of the previous steps, the memory elements are checked to determine if they still contain the appropriate data. At this point the erase operation is completed.
A programming operation is carried out by following a set of steps similar to those followed in pre-program cycle 200 of FIG. 2. In particular, stages 204 through 212 of
As noted, in both the pre-programming and high voltage erase cycles of a complete erase operation, and in a programming operation, the state of a memory cell is verified to determine if the operation was successfully executed. This is accomplished by an internal data verification stage which is performed under the control of the internal state machine. If a memory cell does not pass the verification stage, the pre-programming, programming, or high voltage erase stage is repeated until the cell successfully passes the verification procedure, or until the high voltage pulse counter reaches its maximum value. At this point the operation is terminated and a status bit (contained in status register 26) is set indicating a problem with the block of memory cells.
There are some situations in which a test engineer is interested in knowing the status of a memory cell which has previously been programmed or erased. For instance, memory systems of the type shown in
One means of determining the status of a memory cell in such instances is to perform a read operation on the cells. The sense amplifier employed in normal reading as well as data verification operations (e.g., sense amplifier 50 of
One method for performing an externally controlled verification procedure is described in U.S. Patent Application Ser. No. 08/511,614, filed Aug. 4, 1995, entitled "Memory Circuit for Performing Threshold Voltage Tests on Cells of a Memory Array", the contents of which is hereby incorporated in full by reference. In the above-identified patent application, a test mode of operation is described in which a data verification operation is performed on a memory cell by executing a read operation on the cell using a program or erase verification value for the reference voltage instead of the normal read operation value. Although this has the benefit of setting the reference voltage level at values which provide a more accurate assessment of the state of the memory cell, the method does have a disadvantage. This disadvantage will be explained with reference to
As shown in
Read path 304 and write path 306 are electrically connected to data line 308, which connects those paths to the memory array by means of decoding multiplexer 310. Decoding multiplexer 310 functions to connect read path 304 and write path 306 to a selected one of the plurality of bit lines of the array, where one of the bit lines is represented by line 312. The selected bit line, which is determined by an address provided to the memory, is connected to the drain of the memory cell being read or programmed.
Write path 306 includes a data latch 314 for storing data input by means of pad 302. Latch 314 is activated or enabled by latch enable signal 315. The latched data is sent to data input buffer or driver 316, which produces the voltage on line 318 which is applied to the bit line of the cell to be programmed. Input buffer 316 is typically implemented in the form of a tri-statable driver having an output which can be placed in a high impedance mode and effectively disabled during a read operation. The disabling of input buffer 316 is achieved by means of tri-state control line 317.
As noted, decoding multiplexer 310 is used to access a desired memory cell in the array for purpose of reading data from or writing data to that cell. When reading a memory cell of the array, multiplexer 310 is used to access the bit line connected to the selected memory cell in the array. In the event the cell being read is in an erased state, the cell will conduct a current which is converted to a voltage on line 308. Sense amplifier 320 determines the state of the cell, i.e., whether it is programmed or erased (corresponding to a binary value of 0 or 1, respectively). This determination is based on comparing the voltage on lines 308 and 312 to a reference voltage. The outcome of this comparison between the two input voltages is an output which is either high or low, corresponding to a digital value of one or zero. The output of sense amplifier 320 is sent to output buffer 322 which drives the data to output pad 302 where it is accessed by a user.
During a normal read operation in which the reference voltage is approximately 4 volts (so that a wide noise margin is present), the large differential between the inputs to the sense amplifier results in a stable, unambiguous output. This is because noise in the circuit is generally insufficient in magnitude to produce a false positive in the output of the sense amplifier. As a result, the output is stable and the output buffer only generates an output in response to a single change in the sense amplifier signal.
However, when conducting a read operation using the reference voltage levels typically used for a data verification operation, the inputs to the sense amplifier have a much smaller differential. During an internal data verification stage of the type shown in
The noise fed back to the sense amplifier can alter the output of the sense amplifier due to the small noise margin of the data input/output circuit when used with data verification reference voltage levels. Thus, while this test mode of data verification is superior to a normal read operation, it is still susceptible to error owing to the noise produced by the output buffer. Another disadvantage of this externally controlled data verification procedure is that it requires the test engineer to specify the address(es) of the memory cells to be verified. This increases the time required to verify the contents of a large number of memory cells.
Yet another disadvantage of an externally controlled verification procedure which uses the regular read operation sensing path is that it requires the test engineer to specify the delay between the time the read operation is initiated and when the data indicating the state of the cell is read out. This user specified delay is unlikely to match the delay the internal state machine uses during its internally controlled verification process. The difference between the two time delays can lead to inconsistent results between the two procedures, and hence cause difficulties in correlating the results of the two verification processes.
What is desired is an apparatus which can more accurately verify the status of a programmed or erased memory cell than can be obtained by using a standard read operation. It is also desired that the apparatus not be susceptible to errors caused by noise introduced by the circuit elements used to perform the verification operation.
The present invention is directed to a memory system which includes means for verifying the contents of a memory cell contained in a memory array to determine if a shift in the threshold voltage level has occurred. In one embodiment, the memory system is placed into a test mode of operation in which an internal program or erase verify operation is executed under the control of the system's internal state machine. Once in the test mode, the memory system steps through each memory cell, address by address, and reads the contents of the cell using the appropriate reference voltage for a programming or erase operation. A status register bit is set indicating successful completion of the verification operation for a block of memory cells. A register bit is also set if a cell fails the verification operation. The verification operation described provides a more accurate determination of the state of a memory cell than can be achieved by performing an external read operation using read operation or data verification reference voltage levels.
Further objects and advantages of the present invention will become apparent from the following detailed description and accompanying drawings.
The inventor of the present invention has recognized that the accuracy, noise, and correlation problems inherent in performing an external data verification operation using a read operation can be overcome by performing an internal data verification operation under the control of a memory system's internal state machine. This can be achieved by placing the memory system into an internal verify test mode and then executing a data verification operation in which the memory cells are read and their state determined using a programming or erase operation reference voltage level. This provides a more accurate determination of the threshold voltage of the memory cells then can be obtained using a normal read operation reference voltage level. In addition, this verification method is not subject to the noise problems which occur when executing an external read operation. Furthermore, since the internal state machine uses the same timing sequence for the internal verify test mode as for the normal data verification process, the problem of correlating the results obtained from the two processes does not arise. The result is a data verification method which is more consistent with the internal verification operation which is executed during the cycles of a complete erase operation.
As shown in
If the memory cell fails the read operation, control is passed to stage 408 where a status register bit signifying an error in the data verification operation is set and the verification operation on the block of cells is terminated. When all of the memory cells in a block of cells successfully pass the verification operation and the maximum cell address for memory cells in the block of cells is reached (the address counter is set to maximum address plus one), control is passed to stage 408 where a status register bit signifying successful completion of the data verification operation is set. The setting of a bit in the status register indicating the success or failure of the internal verification operation permits a test engineer to monitor the outcome of the operation without having to check whether each memory cell individually passes or fails the verification procedure.
The internal data verification mode of
Typically, the end user of the memory system would have no reason to cause the memory system to enter a test or special mode of operation since this mode is intended to be used by test engineers at the memory fabrication facility. Furthermore, accidental entry into such a mode is to be avoided since the memory could be rendered permanently inoperable in this mode. Thus, the test mode entry circuitry of
The circuit of
After application of high voltage to terminals 700 and 702, a signal on another terminal 710, in this case the chip enable {overscore (CE)} terminal, is made active (low). Code signal data corresponding to one of several possible test or special modes is placed on the data I/O terminals 712 of the memory system and forwarded to an I/O buffer 714. In the present case, code data corresponding to an internal data verify operation would be input. Note that data I/O terminals 712 and I/O buffer 714 of
An AND gate 716 provides a test mode load enable signal when the outputs of both high voltage detectors 706 and 708 indicate that an appropriate high voltage is being applied to terminals 700 and 702. The load enable signal is coupled to one input of an AND gate 718 together with an inverted signal {overscore (CE)}. This causes AND gate 718 to turn on pass transistor 720 which forwards the test or special mode code data entered by means of I/O pads 712 to buffer 714 and then to a test mode code latch 722. Separate I/O terminals and pass transistors 720 are used for each bit of input test or special mode data so that the data will be loaded into latch 722 in parallel. Typically there are a total of eight bits of test code data so that latch 722 will contain eight bits. Signal {overscore (CE)} is then brought back to a high state, thereby latching the code data in latch 722.
After latch 722 has been loaded with the code data, one of the high input voltages, such as the input to address A10 terminal 702 is removed so that the output of detector 708 will go low thereby providing a high input to an AND gate 730 by way of inverter 728. Since the remaining input of gate 730, the output of the second high voltage detector 706, will still be high, gate 730 will produce a test or special mode enable signal. Among other things, this will enable a Test Mode and Format Check and Decode Logic unit 724 which will verify that the data in latch 722 corresponds to a proper test or special mode. In addition, unit 724 will decode the mode code to determine which one of approximately fifteen different special or test modes has been entered. These modes each have an associated mode signal which is produced by the Test Mode and Format Check and Decode Logic unit 724 and which is used by the memory system in combination with other signals for carrying out the various test or special mode functions.
The system will remain in the selected mode as long as the voltage applied to terminal 700 remains high. When signal {overscore (CE)} is brought back to a high state, detector activation logic 732 keeps detector circuits 704 and 706 enabled as long as the voltage applied to terminal 700 remains high. During the course of carrying out the various test or special mode operations, it may be necessary to periodically change the state of the chip enable {overscore (CE)} signal. However, since address A10 on line 702 has been shifted to a low state, the low output of AND gate 718 will prevent any change in the contents of mode code latch 722. Once the test or special mode of operation is completed, the high voltage applied to terminal 700 is removed, thereby causing the output of AND gate 730 to go low and end the test or special mode of operation.
The test mode codes loaded into latch 722 are preferably of a specific format which further reduces the possibility of accidental entry into a test mode. The mode code is typically divided into two groups of bits, with the first group of bits, the format bits, signifying a test or special mode of operation and the remaining bits signifying a particular one of the modes. A description of a code format suited for use with the present invention can be found in the previous mentioned U.S. Pat. No. 08/386,704, entitled, "Apparatus for Entering and Executing Test Mode Operations for Memory".
With regards to the present invention, after placing the memory system into a test or special mode by using the appropriate type and sequence of high voltage signals, a user would enter test code(s) or signals corresponding to an internal program or erase verify test mode. This will cause the memory system's internal state machine to execute the internal data verification operation shown in
As noted, one method of performing the internal data verify operation of the present invention is to execute the process flow of
As with the memory system of
Memory system commands are issued on I/O pins 15, and are transferred to data input buffer 22 and then to command execution logic unit 24. Command execution logic unit 24 receives and interprets the commands used to initiate and control the steps required for erasing array 12 or carrying out another desired operation. If a programming operation is being executed, the data to be programmed into the memory cells is input using I/O pins 15, transferred to input buffer 22, and then placed in input data latch 30. The data in latch 30 is then made available to sense amplifier circuitry 50 for the programming and data verification operations. Once an operation is completed, state machine 20 updates 8 bit status register 26. The contents of status register 26 is transferred to data output buffer 28, which makes the contents available on data I/O pins 15 of memory system 100.
Memory system 100 includes a test mode detector and decoder 102 used for entry into a test or special mode of operation in which the contents of flow control register 110 may be read or altered, and code signals used for executing an internal data verification operation may be input. Details of the implementation of the detector/decoder 102 were previously described with reference to FIG. 5.
Flow control register 110 contains data used to alter the process flow of the memory system. This is accomplished by instructing internal state machine 20 to include or bypass certain operations or sub-operations, examples of which are shown in FIG. 2. Individual bits within register 110 are used to determine the operations and sub-operations carried out under control of internal state machine 20. For example, by setting a bit or bits of register 110, the flow may be modified to bypass the erase high voltage (step 222 of
The value of each bit of flow control register 110 corresponds to an instruction to internal state machine 20 to include or bypass the indicated operation or sub-operation, i.e., skip program verify, erase verify, high voltage stage, etc. Depending on the value of the bits, the indicated cycle or stage in the process flow of the memory system is either implemented or bypassed. Combination of bits (multiple bits) may also be used to instruct the internal state machine to include or bypass certain operations or sub-operations. It is noted that a memory system designer can place as many bits as necessary in register 110 to create as much flexibility in modifying the operation of the memory system as is desired. It is well known to those skilled in the art how to construct a logic circuit which uses the value of the indicated bit(s) of flow control register 110 to alter the operations and sub-operations carried out by an internal state machine.
One means of conducting a programming operation data verification is to use the pre-programming cycle of a complete erase operation to access a memory cell, verify that a zero has been written to the accessed cell, and then proceed to the next cell. Executing this cycle will also cause a bit to be set in the status register indicating the success or failure of the data verification operation carried out during the cycle. Execution of the pre-programming cycle can be accomplished by two methods, depending upon whether the embodiment of
Similarly, in order to conduct an erase operation data verification, the high voltage erase cycle of a complete erase operation can be used to access a memory cell, verify that a one has been written to the accessed cell, and then proceed to the next cell. As with the execution of the pre-programming cycle, a bit will be set in the status register indicating the success or failure of the erase operation data verification. Execution of the high voltage erase cycle can be accomplished by setting the bits of flow control register 110 so that the pre-programming 200 and distribution adjustment 240 cycles are skipped. This corresponds to setting bits 8 and 6 of the flow control register embodiment of FIG. 7A. In addition, it is necessary that the high voltage stages of the high voltage erase cycle be skipped. As discussed, this is accomplished by having the memory system operate so that entry into the erase verify test mode automatically generates a control signal which causes the internal state machine to skip the high voltage stages of the complete erase operation. If the high voltage erase cycle is then executed (by instructing the internal state machine to execute a complete erase operation), the internal state machine will access each memory cell and verify that a one has been written to the cells.
In the embodiments of the present invention just discussed, the user is responsible for entering the program or erase verify test mode and setting the contents of flow control register 110 to the appropriate values for skipping the desired cycles and/or stages of the complete erase operation. However, this function may also be executed automatically upon entry into the test mode and input of the appropriate internal verify code. This is accomplished by having Test Mode and Format Check and Decode Logic unit 724 of detector/decoder 102 produce a flow control register control signal (signal 501 or 502 of
Conversely, because of the use of inverter 520, when signal 501 goes high (indicating that the internal program verify mode has been entered), one input to AND gates 512 and 518 is low. Therefore, output signal 504 of AND gates 512 and 518 is low and the corresponding cycle or stage (in this case the pre-programming cycle and pre-programming verify stage) are not skipped and instead are implemented. With the arrangement of logic gates shown in
Conversely, because of the use of inverter 520, when signal 502 goes high (indicating that the internal erase verify mode has been entered), one input to AND gates 512 and 518 is low. Therefore, output signal 504 of AND gates 510 and 516 is low and the corresponding cycle or stage (in this case the high voltage erase cycle and erase verify stage) are not skipped and instead are implemented. With the arrangement of logic gates shown in
If the flow control register of
Similarly, if the flow control register of
As noted, in order to conduct a programming operation data verification which verifies that a zero has been written to each memory cell, a modified version of the pre-programming cycle can be executed. Similarly, a modified version of the high voltage erase operation can be executed in order to verify that a one has been written to each memory cell. However, it may also be desired to conduct an internal data verification procedure in which the presence of data other than a zero or one in every cell is verified.
In the case of a data verification operation using data specified by a test engineer, this goal can be accomplished by setting the bits of the embodiment of flow control register 110 of
One means of providing the desired data for an internal data verification operation is described in U.S. Patent Application 08/589,754, entitled "Non-volatile Memory System-Including Apparatus for Testing Memory Elements by Writing and Verifying Data Patterns", filed the same day as this application, the contents of which is hereby incorporated in full by reference. By entering the external pattern write test mode described in the above-identified application, data input to I/O pins 15 is placed into data latch 30 and used during the data verification mode of the present invention. By executing the remaining stages of the pre-program cycle (by executing the complete erase operation), the internal program verification mode of
The terms and expressions which have been employed herein are used as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalents of the features shown and described, or portions thereof, it being recognized that various modifications are possible within the scope of the invention claimed.
Patent | Priority | Assignee | Title |
10114073, | Sep 28 2001 | Rambus Inc. | Integrated circuit testing |
10302696, | Nov 27 2002 | Rambus Inc. | Testing fuse configurations in semiconductor devices |
11009548, | Nov 27 2002 | Rambus Inc. | Testing fuse configurations in semiconductor devices |
6639837, | Dec 11 2000 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
6732304, | Sep 21 2000 | Rambus Inc | Chip testing within a multi-chip semiconductor package |
6754866, | Sep 28 2001 | Rambus Inc | Testing of integrated circuit devices |
6807097, | Dec 11 2000 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
6812726, | Nov 27 2002 | Rambus Inc | Entering test mode and accessing of a packaged semiconductor device |
6882171, | Nov 27 2002 | Rambus Inc | Bonding pads for testing of a semiconductor device |
7061263, | Nov 15 2001 | Rambus Inc | Layout and use of bond pads and probe pads for testing of integrated circuits devices |
7071771, | Dec 11 2000 | Kabushiki Kaisha Toshiba | Current difference divider circuit |
7103815, | Sep 28 2001 | Rambus Inc | Testing of integrated circuit devices |
7139945, | Sep 21 2000 | Rambus Inc | Chip testing within a multi-chip semiconductor package |
7240254, | Sep 21 2000 | Rambus Inc | Multiple power levels for a chip within a multi-chip semiconductor package |
7259582, | Nov 27 2002 | Rambus Inc | Bonding pads for testing of a semiconductor device |
7313740, | Jul 25 2002 | Rambus Inc | Internally generating patterns for testing in an integrated circuit device |
7444575, | Sep 21 2000 | Rambus Inc | Architecture and method for testing of an integrated circuit device |
7466603, | Oct 03 2006 | Rambus Inc | Memory accessing circuit system |
7738291, | Mar 12 2007 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory page boosting method, device and system |
8001439, | Sep 28 2001 | Inapac Technology, Inc | Integrated circuit testing module including signal shaping interface |
8010854, | May 28 2009 | SHENZHEN XINGUODU TECHNOLOGY CO , LTD | Method and circuit for brownout detection in a memory system |
8050090, | Mar 12 2007 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Memory page boosting method, device and system |
8063650, | Nov 27 2002 | Rambus Inc | Testing fuse configurations in semiconductor devices |
8553462, | Jul 28 2005 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method of programming a multi-level memory device |
8717052, | Nov 27 2002 | Rambus Inc. | Testing fuse configurations in semiconductor devices |
8971112, | Jul 28 2005 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method of programming a multi-level memory device |
9116210, | Sep 28 2001 | Rambus Inc. | Integrated circuit testing module including signal shaping interface |
9140747, | Jul 22 2013 | Qualcomm Incorporated | Sense amplifier offset voltage reduction |
9568544, | Nov 27 2002 | Rambus Inc. | Testing fuse configurations in semiconductor devices |
Patent | Priority | Assignee | Title |
4811294, | Jun 21 1985 | Mitsubishi Denki Kabushiki Kaisha | Data integrity verifying circuit for electrically erasable and programmable read only memory (EEPROM) |
4860259, | Jan 21 1986 | Mitsubishi Denki Kabushiki Kaisha | Dram with reduced-test-time mode |
5177745, | Sep 26 1990 | INTEL CORPORATION, A CORP OF DE | Memory device with a test mode |
5233610, | Aug 30 1989 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device having error correcting function |
5265056, | Dec 28 1989 | International Business Machines Corporation | Signal margin testing system for dynamic RAM |
5377145, | Feb 11 1991 | Intel Corporation | Circuitry and method for programming and erasing a non-volatile semiconductor memory |
5402380, | Mar 17 1993 | Fujitsu Semiconductor Limited | Nonvolatile semiconductor memory device having a status register and test method for the same |
5416740, | Dec 12 1991 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device including redundant memory cell array for repairing defect |
5428575, | Aug 28 1992 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device with comparing circuit for facilitating test mode |
5463585, | Apr 14 1993 | PS4 LUXCO S A R L | Semiconductor device incorporating voltage reduction circuit therein |
5491660, | Nov 18 1994 | Texas Instruments Incorporated | On-chip operation control for memories |
5541879, | Jan 13 1993 | Samsung Electronics Co., Ltd. | Nonvolatile semiconductor memory having program verifying circuit |
5568426, | Jul 26 1995 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus for performing memory cell verification on a nonvolatile memory circuit |
5621687, | May 31 1995 | Intel Corporation | Programmable erasure and programming time for a flash memory |
5627838, | Sep 30 1993 | Macronix International Co., Ltd. | Automatic test circuitry with non-volatile status write |
5784315, | Mar 11 1994 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
5818848, | Sep 30 1993 | Macronix International Co,, Ltd. | Automatic test circuitry with non-volatile status write |
5933385, | Jul 31 1997 | Integrated Silicon Solution Inc. | System and method for a flexible memory controller |
5954828, | Jan 05 1995 | Macronix International Co., Ltd. | Non-volatile memory device for fault tolerant data |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 26 1999 | Micron Technology, Inc. | (assignment on the face of the patent) | / | |||
Apr 26 2016 | Micron Technology, Inc | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 038669 | /0001 | |
Apr 26 2016 | Micron Technology, Inc | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | PATENT SECURITY AGREEMENT | 038954 | /0001 | |
Apr 26 2016 | Micron Technology, Inc | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001 ASSIGNOR S HEREBY CONFIRMS THE SECURITY INTEREST | 043079 | /0001 | |
Jun 29 2018 | U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Micron Technology, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 047243 | /0001 | |
Jul 31 2019 | MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENT | Micron Technology, Inc | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 050937 | /0001 |
Date | Maintenance Fee Events |
Apr 08 2002 | ASPN: Payor Number Assigned. |
Mar 09 2005 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Mar 11 2009 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Mar 26 2005 | 4 years fee payment window open |
Sep 26 2005 | 6 months grace period start (w surcharge) |
Mar 26 2006 | patent expiry (for year 4) |
Mar 26 2008 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 26 2009 | 8 years fee payment window open |
Sep 26 2009 | 6 months grace period start (w surcharge) |
Mar 26 2010 | patent expiry (for year 8) |
Mar 26 2012 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 26 2013 | 12 years fee payment window open |
Sep 26 2013 | 6 months grace period start (w surcharge) |
Mar 26 2014 | patent expiry (for year 12) |
Mar 26 2016 | 2 years to revive unintentionally abandoned end. (for year 12) |