Semiconductor memory system with a data copying function and a data copy method for the same
A semiconductor memory system comprises a nonvolatile memory and a controller configured to control the nonvolatile memory. The controller causes management data for page data to be inputted to a redundant area of the nonvolatile memory before the execution of a program and, when moving the page data in the nonvolatile memory to one other page, controls the reading of the page data to check the page data for errors during a program period for the one other page.
Latest Patents:
This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2001-388327, filed Dec. 20, 2001, the entire contents of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
This invention relates to a semiconductor memory system with a data copying function and a data copying method for the memory system, and more particularly to the technique for rewriting data in pages in a NAND flash memory where data is erased in blocks.
2. Description of the Related Art
One known nonvolatile semiconductor memory device is a NAND flash memory. In a NAND flash memory, memory cells are cascade-connected, thereby reducing the number of contacts for the select gates and bit lines, which makes the chip size smaller than that of a NOR flash memory. However, the data cannot be erased in pages and has to be erased in blocks (or in units of pages sandwiched between select gates). Therefore, although the chip size can be made smaller, the user must erase or rewrite the data in larger units (or in blocks). This limitation makes it complicated to use the NAND flash memory.
In a case where data can be erased in pages as in a NOR flash memory, to rewrite page data, the original page is erased and the page data to be overwritten is programmed there. In contrast, in a NAND flash memory, since data has to be erased in blocks, not only the page to be erased but also the remaining pages in the same block are also erased. For this reason, to write data into a physical page data area in which data has already been written, the data in the remaining pages in the same block has to be read and saved and, after the block is erased, the saved data has to be programmed again.
Such a rewrite operation is very complex and takes time. Thus, when data is rewritten in pages, a method of programming the rewritten data physically into other empty blocks (or erased blocks) is used. In this method, however, physical addresses of the page data change. For this reason, the process of causing the physically changed addresses to correspond to apparent addresses seen from the outside is required. Generally, this process is carried out at a controller.
To cause externally seen addresses to correspond to internal physical addresses, a method of making a table for each page has been proposed. When a conversion table is made for each page, this makes the data size of the conversion tables larger. Therefore, the former is generally caused to correspond to the latter in units of a plurality of pages.
As described above, in a NAND flash memory, to rewrite data in pages, it is necessary to copy the remaining pages in the same replacement unit (block) into the move destination block.
Two conventional methods of copying page data into another page in a NAND flash memory will be explained in further detail by reference to flowcharts in
In the first method, if an error has occurred in part of the data when the data is read into the page buffer, the erroneous data is programmed directly into another page. If a similar page copy of the page has been made and a new error has occurred, it follows that the preceding errors and the newly occurred error are programmed. As described above, in the conventional page copying operation, even if an error has occurred in reading, it cannot be detected. When a copy is made many times, errors can accumulate.
Another method (a second method) of copying page data into another page is to carry out normal read and write operations as shown in
In the second method, since the page data is read temporarily outside the chip, if an error has occurred in part of the page data, it is possible to detect and correct the error at a controller. However, since the page data is read outside the chip and the data is then inputted to the copy destination address again, it takes time to carry out the copy operation.
BRIEF SUMMARY OF THE INVENTIONAccording to an aspect of the present invention, there is provided a semiconductor memory system comprising: a nonvolatile memory; and a controller which is configured to control the nonvolatile memory and which causes management data for page data to be inputted to a redundant area of the nonvolatile memory before the execution of a program and, when moving the page data in the nonvolatile memory to one other page, controls the reading of the page data to check the page data for errors during a program period for the one other page.
According to another aspect of the present invention, there is provided a semiconductor memory system data copying method comprising: inputting management data for page data to a redundant area of a nonvolatile memory; executing a program; and, when moving the page data in the nonvolatile memory to one other page, reading the page data during a program period for the one other page to check the page data for errors.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
Reading the page data being programmed outside enables an external controller outside the nonvolatile semiconductor memory device (or chip) to check whether there is any error in the data being programmed.
The chip of the nonvolatile semiconductor memory device has the function of reading the page data outside during a program period as compared with a conventional copy sequence. In this case, since the chip has the function of reading the page data outside during the program period, it is possible to check whether there is any error during the program period. This makes it possible to check for errors, while apparently hiding the time required to check for errors. To perform such control, the memory has to be provided with a command to read the data outside during the program period and a controller for controlling the memory.
In this embodiment, the data to describe the fact that the page has been copied can be stored. Here, the management data is flag data. For example, only when it is already known that there is an error in the read-out data and the data needs to be corrected, the erroneous part of the page data may be written for correction in writing the flag data and then the program may be executed. The time required to carry out the entire copy operation becomes longer because the flag data is written before the execution of the program. However, since the management data to be written generally contains several bits or bytes, the time required to write the data does not increase much as a whole. Moreover, when the flag data is written, a part of the page data can also be written. The management data is not necessarily written. Depending on the method of controlling the controller 15, the preparation of such a function as an operation in the chip is effective.
In a case where the modification of the first embodiment is used, when there is an error in the page data to be copied and the error is correctable, it is necessary to stop a series of copy operations carried out up to this time and write the data again into another erased block.
First, as for page 0 to page 3, the page data on each of page 0 to page 3 at address A is copied into erased address B by the method as shown in
Therefore, the first embodiment is capable of reducing errors and shortening the copy time. In addition, the first embodiment is capable of moving the page data within the same chip at a higher speed than a conventional equivalent, while checking for errors.
Second Embodiment
Therefore, the second embodiment is capable of reducing errors and shortening the copy time. In addition, the second embodiment is capable of moving the page data within the same chip at a higher speed than a conventional equivalent, while checking for errors.
Third Embodiment
The memory section 31 is controlled by the controller 35. The controller 35 includes a command issuing circuit 40, an ECC circuit 41, and a buffer memory 42. The buffer memory 42 has such a data size as is needed to do programming once. The command issued from the command issuing circuit 40 is supplied to the command decoders 37, 38. The operations of the row decoder and control circuit 36, sense amplifier 33, and page buffer 34 are controlled by the control signals outputted from the command decoders 37, 38.
The page data read from the page buffer 34 is supplied to the ECC circuit 41, which corrects errors in the page data when the errors are detected. After the error correction, the corrected page data is stored in the buffer memory 42. The page data stored in the buffer memory 42 is supplied to the ECC circuit 41. The page data and redundant data generated by the ECC circuit 41 are supplied to the page buffer 34.
Further, when an error has been detected by the ECC circuit 41, only erroneous data can be written into the page buffer 34 from the ECC circuit 41.
Next, a concrete page copy operation in the semiconductor memory system of
Next, another concrete page copy operation will be explained. This page copy operation corresponds to that in the second embodiment. First, in an ordinary read operation, the page data in the memory cell array 32 is read into the page buffer 34 via the sense amplifier 33. The page data is read from the page buffer 34 into the controller 35 through serial output. The controller 35 stores the received data into the buffer memory 42 via the ECC circuit 41. At this time, if there is an error in the page data and the error is correctable, the controller 35 corrects the collapsed data in the buffer memory 42. Next, the controller 35 issues the address for the copy destination and a data input command and inputs the address for the copy destination to the memory section 31. At this time, the page buffer 34 is not reset and has held the data in the copy source already read. When the just read data is not to be corrected (there is no ECC error), the program command is inputted directly, and the data is programmed into the page copy destination. Then, if necessary, a page copy of the next page is made in a similar manner. If there is any correctable error, only the corrected part of the corrected data in the buffer memory 42 is written into the page buffer 34. Alternatively, all of the corrected page data is overwritten. Thereafter, a program command is inputted and the data is programmed into the page copy destination. Then, if necessary, the operation of programming the next page is carried out.
Explanation will be given, using a case where “0” is written into and read from cell transistor CT1 connected to word line WL1 in
On the other hand, when the data is read, bit line BL is precharged at 3.3V, the selected word line WL1 is set at 0V, the unselected word line is set at 4.5V, and the source line SL is set at 0V. Since the threshold voltage of the selected cell transistor CT1 is positive, the cell transistor CT1 is in the off state. Therefore, the potential of the bit line BL remains unchanged. The sense amplifier 33 recognizes the data as a high potential. The sense amplifier 33 inverts the data and transfers the inverted data to the page buffer 34. Thus, in the page buffer 34, the data is at a low potential, or logical “0,” with the result that “0” is read outside. When “1” has been externally written, the bit line L is “1” and therefore no programming is done on the cell transistor CT1, with the result that the threshold voltage of the cell transistor CT1 remains negative, or in the erased state. To read the value, the procedure is the same as reading logical “0” data except that the polarity of the data is reversed.
As described above, in the NAND flash memory, the potential (the output potential of the sense amplifier 33) of the bit line BL in a write operation differs from that in a read operation, even when the data with the same logical polarity is used. Therefore, to make the polarity equal to that in the outside of the chip, the inverter 39 is provided between the sense amplifier 33 and the page buffer 34 as described in the third embodiment, thereby inverting the data in a read operation. Inverting the data in a read operation eliminates the necessity of performing unnecessary control even in making a page copy and enables the operation to be simplified as described below.
Explanation will be given, using a case where the data in cell transistor CT1 connected to word line WL1 is read and copied into cell transistor CT2 connected to word line WL2. First, the bit line BL is precharged at 3.3V, the selected word line WL is set at 0V, the unselected word lines WL0, WL2, . . . are set at 4.5V. For example, when the threshold voltage of the selected cell transistor CT1 is positive, the transistor CT1 is in the off state. Thus, the potential of the bit line BL remains unchanged. The sense amplifier 33 recognizes the data as a high potential. The data is inverted and the inverted data is transferred to the page buffer 34.
Next, the operation of copying the data read from the cell transistor CT1 into the cell transistor CT2 connected to word line WL2 will be explained. First, the data in the page buffer 34 is transferred to the sense amplifier 33. At this time, the polarity of the sense amplifier 33 is at a low potential, the opposite of that in the read operation. Here, when programming is done on the cell transistor CT2 connected to word line WL22, the selected word line WL2 is set at a high potential, for example, at 20V, the substrate is set at 0V, and the unselected word lines WL0, WL1, . . . are set at 10V. In addition, the select gage line SG1 is set at, for example, 3.3V and the select gate line SG2 is set at 0V. Because the bit line BL is at a low potential (0V), the potential of the cell transistor CT2 connected to word line WL2 is programmed positive. This enables the data in the cell transistor CT1 connected to word line WL1 to be copied into the cell transistor connected to word line WL2. As described above, the same data route can be used in both the page copy and the programming of external input data. That is, because the data route need not be switched between the page copy and the programming, the circuit area can be decreased and therefore the power consumption can be reduced.
Therefore, in the third embodiment, not only can errors be reduced, but also the copy time can be shortened. In addition, the page data is moved at a higher speed within the same chip than a conventional equivalent, while checking for errors.
Note that in the third embodiment described above, copy operation is performed according to cells in one NAND connection, but it is possible to perform basically the same operation on another cells in the other NAND connection.
Here, the data in the first to third embodiments includes redundant data for detecting and correcting errors and data necessary to manage other data items.
In the first to third embodiments, the page length has not been determined. However, the time required to read and write the page data is practically reduced, which produces a greater effect as the page gets longer. Although the address where an error occurred is assumed to be page 7, errors can occur at any page.
Furthermore, although this invention particularly produces a greater effect when it is applied to a memory that erases the data in blocks, as a NAND flash memory, it is not limited to this. For instance, the invention may be applied to a nonvolatile semiconductor memory device with a copying function and its controller.
As described above, since the page data can be read during the page program period, the read time can be decreased. In addition, when the page data is moved within the chip, the extra time required to check for errors can be apparently eliminated. Moreover, when the page data is moved within the chip, management data can be additionally inputted.
When the page data is moved within the chip, the page data can be checked for errors in a shorter time. Furthermore, when the page data is moved within the chip, the management data can be added. Moreover, when the page data is moved within the chip, the page data can be checked for error in a shorter time. In addition, when an error is detected and can be corrected, the data is written into the erroneous part, which enables programming at the move destination. This reduces a loss of time resulting from error correction.
Therefore, it is possible to provide a semiconductor memory system capable of shortening the copying time and a data copying method for the memory system.
Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details and representative embodiments shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents.
Claims
1-20. (canceled)
21. A semiconductor memory system comprising:
- a nonvolatile memory; and
- a first controller which is configured to control the nonvolatile memory and controls the reading of the page data to check the page data for errors when page data in the nonvolatile memory is moved to another page.
22. The semiconductor memory system according to claim 21, wherein corrected data is written into the page data to correct an erroneous part of the data when errors are found.
23. The semiconductor memory system according to claim 21, further comprising a buffer memory configured to hold the page data and to input corrected data when errors are found.
24. The semiconductor memory system according to claim 23, further comprising a second controller configured to write the page data in the buffer memory into another page after an erroneous part of the data is corrected.
25. The semiconductor memory system according to claim 21, wherein the nonvolatile memory is a NAND flash memory.
26. A semiconductor memory system comprising:
- a nonvolatile memory; and
- a first controller which is configured to control the nonvolatile memory and controls the reading of the page data to check the page data for errors during a program operation period of the nonvolatile memory when page data in the nonvolatile memory is moved to another page.
27. The semiconductor memory system according to claim 26, wherein corrected data is written into the page data to correct an erroneous part of the data when errors are found.
28. The semiconductor memory system according to claim 26, further comprising a buffer memory configured to hold the page data and to input corrected data when errors are found.
29. The semiconductor memory system according to claim 28, further comprising a second controller configured to write the page data in the buffer memory into another page after the erroneous part of the data is corrected.
30. The semiconductor memory system according to claim 26, wherein the nonvolatile memory is a NAND flash memory.
31. A semiconductor memory system data copying method comprising:
- inputting management data for page data to a redundant area of a nonvolatile memory;
- executing a program; and
- reading the page data during a program operation period of the nonvolatile memory and checking the page data for errors, when the page data in the nonvolatile memory is moved to another page.
Type: Application
Filed: Jan 31, 2005
Publication Date: Jun 16, 2005
Applicant:
Inventors: Takehiro Hasegawa (Yokohama-shi), Hiroshi Sukegawa (Tokyo), Tamio Saimen (Yokohama-shi)
Application Number: 11/047,863