Embodiments of the present invention relate to a semiconductor memory device.
Three-dimensional structure memories with stacks of memory cells are known.
According to one embodiment, a controller controls a memory. The memory comprises first strings coupled to respective bit lines and second strings respectively coupled to the bit lines. Each of the first and second strings comprises memory cell transistors coupled in series. The first strings configure a first string group, and the second strings configure a second string group. In each string group, a set of memory cell transistors each from each string configures a unit. The controller is configured to write data per unit. The controller is further configured to: sequentially write, in the first string group, data in first units to which serially-coupled memory cell transistors respectively belong; sequentially write, in the second string group, data in first units to which serially-coupled memory cell transistors respectively belong; and sequentially write, in the first string group, data in second units to which serially-coupled memory cell transistors respectively belong. The first units of the first string group are different from the second units.
Embodiments will now be described with reference to the figures. Components with substantially the same functionality and configuration will be referred to with the same reference number and duplicate descriptions will be made only when required. It should be noted that the figures are schematic. The following embodiments only illustrate devices and methods for embodying the technical idea of the embodiments, and the technical idea of the embodiments does not limit the material, form, structure, and arrangement, and the like, of components to the following examples. The technical idea of the embodiments may be variously changed in accordance with the scope of the claims.
Each functional block can be implemented as hardware, computer software, or a combination of the both. For this reason, in order to clearly illustrate this interchangeability of hardware and software, descriptions will be made in terms of their functionality in general. Moreover, it is not essential that each functional block is distinguished as the following examples. For example, some of the functions may be implemented by functional blocks different from those illustrated below. Furthermore, an illustrated functional block may be divided into functional sub-blocks.
The memory controller 12 receives, for example, write commands and read commands from the host device 2, and accesses the memory 2 in accordance with the commands. The memory controller 12 includes a host interface (I/F) 13, a central processing unit (CPU) 14, a read only memory (ROM) 15, a random access memory (RAM) 16, a buffer 17, an error correction circuit (ECC circuit) 17 and a memory interface 19. They are coupled by a bus.
The host interface 13 allows the memory device 1 to be interfaced with the host device 2. The CPU 14 manages operation of the whole memory device 1 in accordance with control programs. The ROM 15 stores firmware, such as control programs used by the CPU 14. The RAM 16 is used as a work area for the CPU 14, and stores, for example, control programs and various kinds of tables. The buffer 17 temporarily stores data.
The ECC circuit 18 includes an ECC encoder and an ECC decoder. The ECC encoder generates error correction codes for parities from received data in accordance with predetermined rules for producing error correction codes. The ECC decoder corrects an error or errors of data in accordance with received data and its parities.
The memory interface 19 allows the memory controller 12 to be interfaced with the memory 11.
The memory 11 includes multiple memory cell arrays 21.
A set of the sense amplifier 22, page buffer 23, and row decoder 25 is provided for each memory cell array 21. Each sense amplifier 22 includes sense amplifier units coupled to respective bit lines, and senses and amplifies the potential on the bit lines. Each page buffer 23 receives a column address, reads data from the specified memory cell transistors in accordance with the column address, temporarily stores the read data, and outputs it to the data bus 26, during a read. Each page buffer 23 receives data from outside the memory 11 through the data bus 26 in accordance with the column address and temporarily stores the received data during a write. The column address is supplied by the column decoder 27.
The data bus 26 is coupled to the serial access controller 28. The serial access controller 28 is coupled to the I/O interface 31. The I/O interface 31 includes signal terminals, communicates with the memory interface 19 of the memory controller 12, and allows the memory 11 to be interfaced with the memory controller 12. The serial access controller 28 performs control including translation between a parallel signal on the data bus 26 and a serial signal flowing through the I/O interface 31.
Each row decoder 25 receives a block address from the sequencer 34 and selects a block in accordance with the received block address. Specifically, each row decoder 25 is coupled to the CG driver 32, and couples outputs of the CG driver 32 to a selected block. The CG driver 32 receives voltages from the voltage generator 33, and, in accordance with control by the sequencer 34, generates voltages required for various operations of the memory 11 such as a read, write, and erase. The CG driver 32 is shared by the planes. The voltages output from the CG driver 32 are applied to the word lines.
An SG driver 37 is provided for each plane. Each SG driver 37 receives a string address from the sequencer 34, and selects a string in accordance with the received string address. Specifically, each SG driver 37 receives voltages from the voltage generator 33, and outputs the voltages only for a selected string. The voltages output from the SG driver 37 are applied to select gate lines (or gate electrodes of select gate transistors).
The voltage generator 33 also provides the sense amplifier 22 with voltages required for its operation. The sequencer 34 receives signals, such as a command and an address, from the command user interface 35, and operates in accordance with a clock from the oscillator 36. The sequencer 34 controls various components (functional blocks) in the memory 11 in accordance with the received signal. For example, the sequencer 34 controls the column decoder 27, CG driver 32, voltage generator 33 and SG drivers 37 in accordance with the received signals, such as the command and address. Moreover, the sequencer 34 outputs the aforementioned block address and string address in accordance with the received signals, such as the command and address. The command user interface 35 receives a control signal via the I/O interface 31. The command user interface 35 decodes the received control signal, and obtains commands and addresses, and the like.
The memory 11 may be configured to store data of two or more bits in one memory cell.
The memory cell array 21 has components and connections illustrated in
A string STR has a memory string MS, a source-side select gate transistor SSTr, and a drain-side select gate transistor SDTr. Memory strings MS are located above a substrate sub along the stack direction. A memory string MS includes n+1 memory cell transistors (an example of n=15 is illustrated and described) MTr0 to MTr15 and a back gate transistor BTr which are serially coupled. When reference numerals with a subscript (for example, cell transistors Mtr) do not need to be distinguished from each other, a reference numeral without the subscript is used, and this refers to all reference numerals with subscripts. The cell transistors MTr0 to MTr7 are located in the described order toward the substrate sub along the stack direction. The cell transistors MTr8 to MTr15 are located in the described order away from the substrate sub along the stack direction. The cell transistors MTr include a semiconductor pillar SP, an insulator on the surface of the semiconductor pillar SP, and respective word lines (or control gates) WL as will be described in detail later. A back gate transistor BTr is coupled between bottom cell transistors MTr7 and MTr8.
The select gate transistors SSTr and SDTr are located above top cell transistors MTr0 and MTr15 along the stack direction, respectively. The drain of a transistor SSTr is coupled to a source of a cell transistor MTr0. The source of a transistor SDTr is coupled to a drain of a cell transistor MTr15. The source of a transistor SSTr is coupled to the source line SL. The drain of a transistor SDTr is coupled to a bit line BL.
Strings located in a line along the row direction configure a string group STRG. For example, all strings located in a line along the row direction and respectively coupled to all bit lines BL configure a string group STRG. In each string group STRG, the strings have their respective gates of the cell transistors MTr0 commonly coupled to the word line WL0. Similarly, in each string group STRG, the strings have their respective gates of cell transistors MtrX commonly coupled to a word line WLX. The word lines WL extend along the row direction. Respective gates of the back gate transistors BTr are commonly coupled to a back gate line BG.
In each string group STRG, the strings STR have their respective gates of the transistors SDTr commonly coupled to a drain-side select gate line SGDL. In each string group STRG, the strings STR have their respective drains of the respective transistors SDTr coupled to respective bit lines BL. The select gate lines SGDL extend along the row direction. The string groups STRG0 to STRGi are provided with select gate lines SGDL0 to SGDLi, respectively.
In each string group STRG, the strings STR have their respective gates of the transistors SSTr commonly coupled to a source-side select gate line SGSL. Respective sources of transistors SSTr from two strings STR located in a line along the column direction are coupled to the same source line SL. In each string group STRG, the strings STR have their respective sources of the transistors SSTr coupled to the same source lines SL. The select gate lines SGSL and source line SL extend along the row direction. The string groups STRG0 to STRGi are provided with select gate lines SGSL0 to SGSLi, respectively.
Cell transistors of strings which are in one string group STRG and coupled to the same word line WL configure a physical unit PU.
In each block MB, the word lines of the same number from different strings are coupled to each other. Specifically, word lines WL0 of all strings in one block MB are coupled to each other, and word lines WLX are coupled to each other, for example.
For access to a cell transistor MTr, one block MB is selected and one string group STRG is selected. For selecting one block, a signal to select a block MB is output to only a block MB specified by a block address signal. With such a block select signal, in the selected block MB, the word lines WL and select gate lines SGSL and SGDL are coupled to drivers.
Furthermore, for selecting one string group STRG, select transistors SSTr and SDTr only in a selected string group STRG receive voltages for the purpose of selection. In unselected string groups STRG, select-transistors SSTr and SDTr receive voltages for the purpose of non-selection. The voltages for selection depend on operations such as read and write. The voltages for non-selection also depend on operations such as read and write.
Each cell transistor MTr has a structure illustrated in
The insulator IN2 includes a tunnel insulator IN2a, a charge storage layer IN2b, and an inter-electrode insulator IN2c. The tunnel insulator IN2a comprises silicon oxide (SiO2), for example. The charge storage film IN2b is on the tunnel insulator IN2a. The electric charge insulator IN2b stores electrical charge, and comprises silicon nitride (SiN), for example. The inter-electrode insulator IN2c is on the charge storage layer IN2b. The inter electrode insulator IN2c comprises silicon oxide, for example. A cell current flowing through the semiconductor pillar SP varies based on the potential of a word line WL and the number of carriers in the charge storage layer IN2b, which is utilized by the cell transistor MTr to store data in a nonvolatile manner.
As a write to one block MB in the memory 11 with components and connections as in
In contrast, in the example of
The word-line order write is said to be robust against influences from a write disturb and to maintain the quality of written data. The word-line order write, however, has the following problems. As described above, the ECC circuit 18 calculates codes for correcting errors of data to be written (or write data) into the memory 11 from outside the memory device 1. In the word-line order write, an error correction code will be calculated in accordance with write data which will be stored in physical units PU of all word lines WL assigned the same number in one block MB. When such calculation of error correction code is executed with cross-interleave methods such as the cross-interleave Reed-Solomon code method applied, it requires the RAM 16 to have a large capacity. This is because the same-numbered word lines WL in one block are coupled to each other and a defect in one word line WL influences all string groups STRG in that block MB, and therefore it is necessary to assume the size of whole data in word-line-sharing physical units PU to be an error burst. Such a case in turn requires a large-size correction code for error correction.
In contrast, in the string-group order write, an error correction code will be calculated from write data which will be stored in all physical units PU in one string group STRG. Such a calculation of code requires the RAM 16 with a small capacity. It is because influence of a defect in a particular word line WL only extends, at the farthest, to the adjacent word lines WL are restrictive, and therefore can be easily corrected with data in physical units of other word lines WL. The string-group order write, however, produces a larger write disturb than the word-line order write, and therefore may deteriorate the quality of written data. Thus, any write has a trade-off relation between the data quality and required RAM size.
In the following description, in each string group, the physical unit PU of word line WL0 is referred to as physical-unit PU0. Similarly, in each string group, the respective physical units PU of word lines WL1 to WL47 are referred to as physical units PU1 to PU47, respectively.
When the memory controller 12 receives a write command from the host device 2, it writes write data in the memory 11 in accordance with the following sequence. Specifically, the memory controller 12 first writes data in physical units PU of a predetermined number (to be described in detail later) of the smallest-numbered string STRG0 in ascending order of the numbers of the physical units PU including the smallest-numbered physical unit PU0. More specifically, the string group STRG0 is selected for writes, and word lines of the predetermined number from the word line WL0 are sequentially selected for writes. Such physical units PU sequentially written in one string group STRG are referred to as a physical-unit set PUS. A physical-unit set PUS includes at least two physical units PU, and includes four physical units PU, for example. With the example of four, the physical unit set PUS0 including the smallest-numbered physical unit PU0 includes physical units PU0 to PU3. In
To the data to be written in the physical unit set PUS0, an error correction code generated by the ECC circuit 18 is added. The ECC circuit 18 follows the control by the control program which manages the operation of the whole memory controller 12 (or the CPU 14 operating in accordance with the control program) to generate a set of write data and error correction code to correct errors therein for each physical unit set PUS. Specifically, the memory controller 12 prepares data input to the ECC circuit 18 (or ECC encoder input) so that the size of the data with an error correction code added has a size smaller than or equal to that of the physical unit PUS. Then, in accordance with the ECC encoder input of such a size, the ECC circuit 18 generates an error correction code, and outputs the set of the ECC encoder input and error correction code (or ECC encoder output). The memory controller 12 then writes the obtained ECC encoder output in the physical unit set PUS0 in ascending order of the numbers of its physical units PU. Generation of the error correction code for the data to be written in the physical unit set PUS0 requires a RAM size smaller than would be necessary to generate an error correction code in the word-line order write.
The memory controller 12 then repeats a similar write executed to the string group STRG0 to the string group STRG1, which has the second smallest number. Specifically, the memory controller 12 writes an ECC encoder output of the size smaller than or equal to that of the physical unit set PUS in the physical unit set PUS0 of the string group STRG1, which are specifically physical units PU0 to PU3, in ascending order of the numbers of the physical units PU.
Furthermore, the memory controller 12 repeats the write executed to the string groups STRG0 or STRG1 to remaining string groups STRG in one block MB in ascending order of the numbers of the string groups STRG. Specifically, the memory controller 12 writes ECC encoder outputs in the physical-unit sets PUS0 (physical units PU0 to PU3) in order from the string group STRG2 toward the largest-numbered string group (or, string group STRG 11 in the current example).
Thus, the memory controller 12 first repeats writes to the smallest-numbered physical unit sets PUS0 while traversing all string groups STRG in one block MB.
Then, the memory controller 12 similarly repeats writes to the physical unit sets PUS1 while traversing all string groups STRG in one block MB in ascending order of the numbers of the string groups STRG. The physical unit set PUS1 differs from the physical unit set PUS0. The physical unit set PUS1 typically succeeds the physical unit set PUS0. Specifically, the physical unit set PUS1 is a set of consecutive physical units PU of the predetermined number succeeding the largest-numbered physical unit PU of the physical unit PUS0. For example, the physical unit set PUS1 includes as many physical units PU as in the physical-unit set PUS0. Following the ongoing context, the physical unit PUS1 includes physical units PU4 to PU7. Writes in the physical-unit set PUS1 occur in ascending order of the numbers of physical units PU.
Similarly, the memory controller 12 also repeats writes to one physical unit set PUS per one string group STRG while traversing all string groups STRG in one block MB, to the remaining physical unit sets PUS. Specifically, all physical units PU in each string group STRG are divided into physical unit sets PUS, and the writes to one physical unit set per string group STRG are repeated while traversing string groups in ascending order of the numbers of the physical unit sets PUS. Each physical unit set PUS typically includes physical units PU of the same number. Thus, the writes to all physical units PU of all string groups STRG in one block finish.
A physical unit set PUS may include more or less than four physical units PU. For example, a physical unit set PUS includes eight physical units PU.
As illustrated in
An ECC encoder input may extend over multiple planes and multiple chips.
In the
The writes can be executed in any manner so long as data is written in the physical units PU in ascending order of their numbers as described with reference to
In the
The memory controller 12 changes the number of the physical units PU per one plane 21 in accordance with the number of the memories 11 and the number of the planes 21 to control so that the size of one physical unit set PUS is constant as in the examples of
As described above, the memory device according to the first embodiment repeats a write to a physical unit set PUS per string group STRG while traversing the string groups STRG, and repeats such a write set to the remaining physical unit sets PUS. A set of write data and its error correction code is generated in units of physical unit sets PUS. For this reason, the RAM 16 is released whenever data to be written in the physical unit set PUS (including the error correction code) is generated. Therefore, the size of the RAM 16 required for generating the error correction code is smaller than that in the word-line order write (see,
In a second embodiment, the memory 11 replaces the memory controller 12 to execute a particular write sequence.
The memory according to the second embodiment has the same configuration (or, components and connections) as in the first embodiment although the memory 11 of the second embodiment is configured to execute the following operations. Specifically, the sequencer 34 controls related components in the memory 11 such as the column decoder 27, CG driver 32 and SG driver 37 to execute the following operations.
The memory 11 has a normal write mode and a mode to write in a particular sequence. In the mode to write in a particular sequence, the memory 11 executes the write sequence described for the first embodiment with reference to
In the normal write mode, the memory 11 writes data in the addresses which the memory controller specifies to write data.
The selection of the mode is implemented by a command, for example. The memory 11 has multiple modes, including the aforementioned normal write mode and specific sequence write mode. Thus, each mode is specified by the memory controller 12.
As described above, the memory 11 according to the second embodiment repeats a write to a physical unit set PUS per string group STRG while traversing the string groups STRG, and repeats such a write set to remaining physical unit sets PUS as in the first embodiment. This can produce the same advantages as those of the first embodiment. Furthermore, the memory 11 of the second embodiment in the specific sequence write mode writes data in the specific sequence as in the first embodiment without instructions from the memory controller 12. This can reduce the load of the process carried out by the memory controller 12, and increase the flexibility of use of the memory 11.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
This application claims the benefit of U.S. Provisional Application No. 61/861,456, filed Aug. 2, 2013, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61861456 | Aug 2013 | US |