US20190088314A1 - Memory system and control method of memory system - Google Patents
Memory system and control method of memory system Download PDFInfo
- Publication number
- US20190088314A1 US20190088314A1 US15/908,828 US201815908828A US2019088314A1 US 20190088314 A1 US20190088314 A1 US 20190088314A1 US 201815908828 A US201815908828 A US 201815908828A US 2019088314 A1 US2019088314 A1 US 2019088314A1
- Authority
- US
- United States
- Prior art keywords
- read
- voltage
- processing
- voltages
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Definitions
- Embodiments described herein relate generally to a memory system and a control method of the memory system.
- a memory system including a non-volatile memory having a plurality of memory cells
- an operation of reading data from each memory cell is performed by applying a read voltage between a substrate and a control gate.
- FIG. 1 is a view illustrating a configuration of a memory system according to an embodiment.
- FIG. 2 is a view illustrating a configuration of a memory chip in the embodiment.
- FIG. 3 is a view illustrating a configuration of a block in the embodiment.
- FIG. 4 is a view illustrating a threshold voltage distribution of memory cells in the embodiment.
- FIG. 5 is a table used for determining a read voltage in the embodiment.
- FIGS. 6A to 6D are views illustrating an overall deviation in the threshold voltage distribution of memory cells in the embodiment.
- FIG. 7 is a table used for determining a global shift amount of the threshold voltage distributions in the embodiment.
- FIGS. 8A and 8B illustrate an example of threshold voltage tracking in the embodiment.
- FIGS. 9A and 9B illustrate another example of threshold voltage tracking in the embodiment.
- FIG. 10 is a flow chart illustrating an operation of the memory system according to the embodiment.
- Embodiments provide a memory system and a control method of the memory system in which data may be properly read from each memory cell.
- a memory system including a non-volatile memory including a plurality of memory cells and a controller.
- the controller is configured to perform a read re-try in response to a failed normal read.
- the read re-try includes a first read processing of reading data from the plurality of memory cells at a first read voltage, a second read processing of reading data from the plurality of memory cells at a second read voltage obtained by shifting the first read voltage by a first shift amount, which is determined according to a bit count value obtained by counting a number of predetermined bit values in the data read in the first read processing, a third read processing of reading data from the plurality of memory cells a plurality of times at a plurality of third read voltages and obtaining a bit count value for each of the third read voltages, wherein each of the plurality of third read voltages are shifted from each other by a second shift amount, and a final read processing of reading data from the plurality of memory cells at a read voltage that is set closer to the second
- a memory system In a memory system including a non-volatile memory having a plurality of memory cells, an operation of reading data from each memory cell is performed by applying a read voltage between a substrate and a control gate.
- a read voltage When a read voltage is set as a voltage in a valley portion between peaks of the number of memory cells in a memory cell threshold voltage distribution, it is possible to reduce the number of occurrences of a bit error in a read bit value.
- the threshold voltage distribution of memory cells is a distribution that indicates the number of memory cells in the memory cell array that have the threshold voltage of the distribution.
- a Vth (threshold voltage) tracking may be performed to search for a position of a valley in the memory cell threshold voltage distribution.
- a shift read operation is performed.
- the read voltage is continually shifted by a predetermined step width prior to reading, and then the position of the valley is searched for in the memory cell threshold voltage distribution based on the read results. Accordingly, when a proper read voltage may be specified according to the read results, it is possible to read data from memory cells at the proper read voltage while reducing the number of occurrences of a bit error in the read data.
- a voltage position (an absolute position with respect to a reference (e.g., 0 V) in the horizontal direction on a virtual plane in which the horizontal axis indicates a threshold voltage and the vertical axis indicates the number of memory cells) may be changed over time. For example, when each memory cell becomes deteriorated through repetition of a programming/erasing cycle (a P/E cycle), the voltage position may deviate in the memory cell threshold voltage distribution due to the deterioration. Otherwise, for example, when an environmental temperature at the time of programming in each memory cell is different from an environmental temperature at the time of reading, the voltage position may deviate in the memory cell threshold voltage distribution due to the influence of a difference between the environmental temperatures.
- a reference e.g. 0 V
- a deviation of the voltage position is large in the memory cell threshold voltage distribution (e.g., when the voltage position largely deviates by about one peak or half of one peak)
- the position of the valley may not be tracked (i.e., found), and a position of another valley (e.g., an adjacent wrong valley) than the valley of the original reading target maybe tracked. This may lead to an erroneous detection.
- the memory system it is detected whether or not the memory cell threshold voltage distribution deviates by a large amount, and a Vth tracking is performed according to the detection result, so as to reduce an erroneous detection in the Vth tracking.
- FIG. 1 is a view illustrating a configuration of the memory system 100 .
- the memory system 100 is connected to a host apparatus 200 .
- the host apparatus 200 corresponds to, for example, a server, a personal computer, or a mobile-type information processing apparatus, etc.
- the memory system 100 functions as an external storage device of the host apparatus 200 .
- the host apparatus 200 may issue an access request (e.g., a read request or a write request) to the memory system 100 .
- the standard to which a communication interface interconnecting the memory system 100 and the host apparatus 200 conforms is not limited to a specific standard.
- the communication interface conforms to an advanced technology attachment (ATA) standard, a serial attached SCSI (SAS) standard, a peripheral components interconnect (PCI) express (PCIe®) standard or the like.
- ATA advanced technology attachment
- SAS serial attached SCSI
- PCIe® peripheral components interconnect express
- the memory system 100 includes an NAND-type flash memory (hereinafter referred to as “NAND memory”) 1 , and a memory controller 2 that executes a data transmission between the host apparatus 200 and the NAND memory 1 .
- the memory system 100 may include other types of memory instead of the NAND memory 1 .
- the memory system 100 may include a NOR-type flash memory instead of the NAND memory 1 .
- the NAND memory 1 includes a plurality of memory chips 11 (here, four memory chips 11 ) as a semiconductor memory.
- the memory controller 2 includes two channels (ch. 0 , and ch. 1 ).
- the memory controller 2 may include one channel or three or more channels. Two memory chips 11 are connected to each channel.
- Each channel includes a control signal line, an I/O signal line, a chip enable (CE) signal line, and a ready (RY)/busy (BY) signal line.
- the I/O signal line is a signal line that transmits data, addresses, and various instructions.
- the memory controller 2 may transmit a read instruction, a programming instruction, and an erasing instruction to the memory chip 11 through the I/O signal line.
- the control signal line includes a write enable (WE) signal line, a read enable (RE) signal line, a command latch enable (CLE) signal line, an address latch enable (ALE) signal line, a write protect (WP) signal line, or the like.
- the RY/BY signal line indicates whether the NAND memory 1 is operating, through the level thereof. For example, the RY/BY signal line indicates a ready state (RY) corresponding to a non-operating state through an H level, and indicates a busy state (BY) corresponding to an operating state through an L level.
- each memory chip 11 is configured as illustrated in FIG. 2 .
- FIG. 2 is a view illustrating a configuration of the memory chip 11 .
- the memory chip 11 includes an I/O signal processing circuit 110 , a control signal processing circuit 111 , a chip control circuit 112 , a command register 113 , an address register 114 , a column decoder 115 , a data register 116 , a sense amplifier 117 , a memory cell array 118 , a row decoder 119 , and an RY/BY generating circuit 120 .
- the chip control circuit 112 is a circuit that switches a state based on various control signals received through the control signal processing circuit 111 .
- the chip control circuit 112 controls the entire operation of the memory chip 11 .
- the RY/BY generating circuit 120 switches the state of the RY/BY signal line between a ready state (RY) and a busy state (BY) under the control by the chip control circuit 112 .
- the I/O signal processing circuit 110 is a buffer circuit that transmits and receives I/O signals to/from the memory controller 2 .
- a command latched by the I/O signal processing circuit 110 , an address designating an access destination, and data are allocated to and stored in the command register 113 , the address register 114 , and the data register 116 , respectively.
- the address stored in the address register 114 includes a chip number, a row address, and a column address.
- the chip number is identification information that identifies each memory chip 11 .
- the chip number, the row address, and the column address are read by the chip control circuit 112 , the row decoder 119 , and the column decoder 115 , respectively.
- the control signal processing circuit 111 accepts the input of a control signal.
- the control signal processing circuit 111 executes allocation of a register of a storage destination of the I/O signal accepted by the I/O signal processing circuit 110 , based on the accepted control signal.
- the control signal processing circuit 111 transmits the accepted control signal to the chip control circuit 112 .
- the memory cell array 118 includes a plurality of blocks.
- a block is a storage area corresponding to a physical execution unit of erasing. That is, all data pieces stored in one block are erased at once.
- each block in the memory cell array 118 is configured as illustrated in FIG. 3 .
- FIG. 3 is a view illustrating the configuration of the block.
- Each block includes (p+1) NAND strings arranged along the X direction (p ⁇ 0).
- Select transistors ST 1 are provided in the (p+1) NAND strings, respectively, and include drains connected to bit lines BL 0 to BLp, respectively, and gates connected to a select gate line SGD in common.
- Select transistors ST 2 are also provided in the (p+1) NAND strings, respectively, and include sources connected to a source line SL in common, and gates connected to a select gate line SGS in common.
- Each memory cell transistor MT is composed of a metal oxide semiconductor field effect transistor (MOSFET) having a stacked gate structure formed on a semiconductor substrate.
- the stacked gate structure includes a floating gate formed on the semiconductor substrate through a tunnel oxide film, and a control gate electrode formed on the floating gate through an inter-gate insulating film.
- a threshold voltage of the memory cell transistor MT changes according to the number of electrons accumulated in the floating gate.
- the memory cell transistor MT stores data according to a difference in its threshold voltage. That is, the memory cell transistor MT holds charges in the floating gate in the amount according to the data it has been designated to store.
- each NAND string (q+1) memory cell transistors MT are arranged such that respective current paths are connected in series between the source of the select transistor ST 1 and the drain of the select transistor ST 2 (q ⁇ 0). Then, in order from the memory cell transistor MT located closest to the drain side, control gate electrodes are connected to word lines WL 0 to WLq, respectively. Therefore, the drain of the memory cell transistor MT connected to the word line WL 0 is connected to the source of the select transistor ST 1 , and the source of the memory cell transistor MT connected to the word line WLq is connected to the drain of the select transistor ST 2 .
- Each of the word lines WL 0 to WLq is connected in common to control gate electrodes of one of the memory cell transistors MT across all of the NAND strings within the block. That is, the control gate electrodes of the memory cell transistors MT that are present in the same row within the block, are connected to the same word line WL. That is, the block includes a plurality of memory cell groups MG, each corresponding to one of the word lines WL, and each memory cell group MG includes the (p+1) memory cell transistors MT connected to the same word line WL.
- each memory cell transistor MT may hold a value represented by 1 bit (an operation is made in a single level cell (SLC) mode)
- the (p+1) memory cell transistors MT i.e., the memory cell group MG
- the programming of data and the reading of data are performed per page.
- each memory cell transistor MT may hold a value of a plurality of bits, for example, when each memory cell transistor MT is capable of storing a value represented by n bits (n ⁇ 2), the storage capacity per word line WL is equal to n pages. That is, each memory cell group MG stores n pages of data.
- TLC triple-level cell
- each memory cell transistor MT operates in a triple-level cell (TLC) mode in which a value represented by 3 bits is stored. In the triple-level cell (TLC) mode, data of three pages are held in memory cell transistors MT connected to each word line WL.
- a page for which writing is made first is referred to as a lower page
- a page for which writing is made after the lower page is referred to as a middle page
- a page for which writing is made after the middle page is referred to as an upper page.
- the memory cell transistor MT is simply referred to as a memory cell. It should be understood that there may be a mode in which programs are collectively executed for a plurality of pages or all pages corresponding to one word line WL.
- FIG. 4 is a view illustrating a threshold voltage distribution of memory cells.
- the horizontal axis indicates a threshold voltage
- the vertical axis indicates the number of memory cells.
- each memory cell may hold eight-valued data “xyz” defined by data “x” belonging to the upper page, data “y” belonging to the middle page, and data “z” belonging to the lower page.
- a value of each of data “x,” data “y,” and data “z” is either a bit value “0” or a bit value “1.”
- the threshold voltage of each memory cell is controlled to belong to anyone of eight groups, that is, a distribution Er, a distribution A, a distribution B, a distribution C, a distribution D, a distribution E, a distribution F, and a distribution G.
- the correspondence between each distribution and the data value of eight-valued data “xyz” is set in advance.
- a data value “111” is allocated to the distribution Er.
- a data value “110” is allocated to the distribution A.
- a data value “100” is allocated to the distribution B.
- a data value “000” is allocated to the distribution C.
- a data value “010” is allocated to the distribution D.
- a data value “011” is allocated to the distribution E.
- a data value “001” is allocated to the distribution F.
- a data value “101” is allocated to the distribution G.
- the correspondence between each distribution and the data value is not limited to the above.
- the row decoder 119 , the column decoder 115 , the data register 116 , and the sense amplifier 117 constitute a peripheral circuit for the memory cell array 118 .
- the peripheral circuit executes an access (reading, programming, and erasing) to the memory cell array 118 , based on the control by the chip control circuit 112 .
- the column decoder 115 selects and activates a bit line corresponding to a column address.
- the sense amplifier 117 sets a potential of the bit line selected by the column decoder 115 , to 0 volt.
- the row decoder 119 applies a programming pulse to a word line WL corresponding to a row address. Then, electrons are injected into a floating gate of a memory cell located at an intersection between the selected bit line and the selected word line WL, and as a result, a threshold voltage of the floating gate rises.
- the sense amplifier 117 checks whether the threshold voltage reaches a voltage according to data stored in the data register 116 .
- the sense amplifier 117 allows the row decoder 119 to continue to apply the programming pulse until the threshold voltage reaches the voltage according to data.
- the sense amplifier 117 precharges a power supply potential Vcc to the bit line BL, and the row decoder 119 sequentially applies a plurality of types of determination potentials (also known as “read voltages”) to the selected word line WL by which a distribution of each data value (“111,” “110,” “100,” “000,” “010,” “011,” “001, ” and “101”) may be specified.
- the row decoder 119 applies a transmission potential to an unselected word line WL so that memory cells belonging to the unselected word line WL are placed in a conductive state.
- the sense amplifier 117 detects whether or not charges accumulated by precharging flows to a source line SL by application of one of the read voltages, thereby determining a data value stored in a target memory cell.
- a read voltage V 7 is set between the distribution Er and the distribution A.
- a read voltage V 6 is set between the distribution A and the distribution B.
- a read voltage V 5 is set between the distribution B and the distribution C.
- a read voltage V 4 is set between the distribution C and the distribution D.
- a read voltage V 3 is set between the distribution D and the distribution E.
- a read voltage V 2 is set between the distribution E and the distribution F.
- a read voltage V 1 is set between the distribution F and the distribution G.
- these read voltages may correspond to a set of read voltages of a default set number “0”.
- a set of read voltages may be prepared. Each set of read voltages may be stored in advance in a management information storage area of the NAND memory 1 , as a table of voltage information 222 used for determining read voltages, as illustrated in FIG. 5 .
- FIG. 5 is a view illustrating an example of the configuration of the voltage information 222 .
- the table illustrated in FIG. 5 is an example of an implementation form of the voltage information 222 , and the voltage information 222 may be implemented in another form (e.g., a function formula, etc.).
- the memory controller 2 may read the voltage information 222 from the management information storage area of the NAND memory 1 , and store the voltage information 222 in a RAM 22 .
- the sense amplifier 117 stores read data in the data register 116 .
- the data stored in the data register 116 is sent to the I/O signal processing circuit 110 through a data line, and is transmitted from the I/O signal processing circuit 110 to the memory controller 2 .
- a common value may be set for the plurality of memory chips 11 , or different reference values may be set for the memory chips 11 .
- a common value may be set for blocks or a unit other than blocks.
- a method of setting a reference value is not limited to a specific method.
- the memory controller 2 may set the reference value of each of read voltages by sending a predetermined command to a target memory chip 11 .
- the memory controller 2 includes a host interface controller (host I/F controller) 21 , the random access memory (RAM) 22 , a NAND controller (NANDC) 23 , a central processing unit (CPU) 24 , and an ECC circuit 25 .
- the host I/F controller 21 , the RAM 22 , the NAND controller 23 , the CPU 24 , and the ECC circuit 25 are connected to each other via a bus.
- the memory controller 2 may be one circuit (IC) in which the host I/F controller 21 , the RAM 22 , the NAND controller 23 , the CPU 24 , and the ECC circuit 25 are integrated.
- a part of the host I/F controller 21 , the RAM 22 , the NAND controller 23 , the CPU 24 , and the ECC circuit 25 may be disposed outside the memory controller 2 .
- the RAM 22 functions as a buffer that stores data transmitted between the host apparatus 200 and the NAND memory 1 .
- the RAM 22 provides a working area to the CPU 24 .
- the RAM stores various management information including, for example, global shift information 221 and the voltage information 222 .
- the type of the RAM 22 is not limited to a specific type.
- a type of the RAM 22 for example, a dynamic random access memory (DRAM) or a static random access memory (SRAM) may be employed.
- DRAM dynamic random access memory
- SRAM static random access memory
- the host I/F controller 21 under the control of the CPU 24 , executes a control of a communication interface between the host apparatus 200 and the memory system 100 , and a control of data transmission between the host apparatus 200 and the RAM 22 .
- the NAND controller 23 controls the respective channels (ch. 0 , and ch. 1 ).
- the NAND controller 23 executes a control of data transmission between the NAND memory 1 and the RAM 22 , under the control of the CPU 24 .
- the ECC circuit 25 performs encoding for an error correction, on data to be programmed into the NAND memory 1 , or executes an error correction on data read from the NAND memory 1 .
- the memory controller 2 may read data by changing a set value of a read voltage. There is a case where by changing a set value of a read voltage, the number of error bits may be reduced at the time of data reading.
- the reading by changing the set value of the read voltage will be referred to as shift read.
- the memory controller 2 corrects, by the ECC circuit 25 , a value among read data, that had changed from a value at the time of programming and thus become error bits, thereby restoring data at the time of the programming.
- the memory controller 2 may fail to perform an error correction by the ECC circuit 25 .
- the failure in the error correction indicates that it is impossible to restore the data at the time of the programming, from the read data.
- the failure in the error correction indicates that it is impossible to correct error bits included in the read data.
- the success in the error correction indicates that all error bits included in the read data are corrected.
- the memory controller 2 When the error correction by the ECC circuit 25 has failed, the memory controller 2 in one embodiment issues a read re-try request as a programmatic response thereto. In another embodiment, the memory controller 2 notifies the host apparatus 200 that the error correction has failed. Accordingly, the host apparatus 200 sends the read re-try request to the memory system 100 . The memory controller 2 receives the read re-try request from the host apparatus 200 . The memory controller 2 may perform the Vth tracking as illustrated in FIGS. 6A and 6B , according to the read re-try request as the programmatic response or in response to the read re-try request from the host apparatus 200 .
- FIG. 6A illustrates an example of a distribution of memory cells.
- the sum of the numbers of memory cells belonging to the plurality of overlapping distributions may be obtained at a read voltage in the range where the foots of the distributions overlap each other.
- shift read is executed in a binary mode (SLC mode) while changing the set value of the read voltage, and the number of “1”s or “0”s included in the data obtained through each shift read is counted.
- the binary mode is a mode in which it is determined that a memory cell having a threshold voltage smaller than a read voltage stores a first data value, and a memory cell having a threshold voltage larger than a read voltage stores a second data value other than the first data value.
- “1” is a first data value
- “0” is a second data value
- the number of “1”s is counted.
- a curve illustrated in FIG. 6B may be obtained.
- the number of counted “1”s will be referred to as a bit count value.
- the change rate of the bit count value is a change amount of the number of “1”s in the case where a read voltage is changed by a predetermined unit amount.
- the memory controller 2 performs, for example, four read operations, and acquires bit count values of the respective four points while changing a read voltage by a predetermined step width, and then takes differences between the bit count values of the four points.
- the change rate obtained in this manner is plotted with respect to the read voltage, it is possible to obtain an approximation of the distribution of memory cells (i.e., a part of a curve indicated by the solid line in FIG. 6A (e.g., a valley portion between the distribution B and the distribution C)) with respect to the threshold voltage.
- the threshold voltage distribution of the memory cells may be changed from the distribution illustrated in FIG. 6A to the distribution illustrated in FIG. 6C , over time.
- read voltages V 1 to V 7 for respective valleys, as a whole are shifted to read voltage V 3 to V 9 , respectively.
- V 3 to V 9 the threshold voltage distribution of the memory cells
- the overall deviation of the threshold voltage distribution of the memory cells will be referred to as global shift in the sense that the threshold voltage distribution of the memory cells is globally shifted.
- global shift In order to correct the influence of the global shift, it is required to know a global shift amount that indicates the degree of the global shift.
- the global shift amount may be specified from the bit count value for the read voltage.
- FIG. 7 is a view illustrating a table of the global shift information 221 used for determining a global shift amount.
- values in the table illustrated in FIG. 7 are exemplary only, but do not limit the global shift amount.
- the table illustrated in FIG. 7 is an example of an implementation form of the global shift information 221 , and the global shift information 221 may be configured as another implementation form (e.g., a function formula, etc.).
- the memory controller 2 may read the global shift information 221 from the management information storage area of the NAND memory 1 and store the global shift information 221 in the RAM 22 .
- the memory controller 2 shifts the read voltage to V 70 by the global shift amount ⁇ Vs 1 and performs a Vth tracking.
- the memory controller 2 alternately performs, a plurality of times, setting the read voltage through shifting by a new shift amount ⁇ Vs 2 ( ⁇ 0) based on the shifted read voltage V 70 , and reading data at the set read voltage from the plurality of memory cells.
- the shift amount ⁇ Vs 2 used in the Vth tracking will be referred to as a local shift amount.
- An operation of shifting the read voltage by the local shift amount ⁇ Vs 2 in the Vth tracking will be referred to as a local shift operation.
- the memory controller 2 performs a Vth tracking employing a local shift operation as illustrated in FIGS. 8A and 8B .
- FIGS. 8A and 8B are views illustrating a local shift operation.
- the memory controller 2 performs a read operation at the voltage V 70 obtained through shifting by a global shift amount ⁇ Vs 1 , and acquires a bit count value C 70 at the voltage V 70 .
- the memory controller 2 plots a point (V 71 , R 71 ), a point (V 72 , R 72 ), and a point (V 73 , R 73 ) on a virtual plane in which the horizontal axis indicates a threshold voltage, and the vertical axis indicates the number of memory cells.
- the memory controller 2 obtains a quadratic curve CV that approximately passes through the point (V 71 , R 71 ), the point (V 72 , R 72 ), and the point (V 73 , R 73 ), as indicated by the one-dot chain line in FIG. 8A . Then, the memory controller 2 obtains a read voltage corresponding to a minimum value in the quadratic curve CV as a read voltage V 7 of a desired valley.
- the memory controller 2 may obtain the minimum value itself in the quadratic curve CV, as the read voltage V 7 of a desired valley, or may obtain the read voltage V 7 of a desired valley by referring to the voltage information 222 and selecting a set (in this case, a set of the set number “k” illustrated in FIG. 5 , k is an any integer larger than 1) in which the read voltage of the desired valley is closest to the minimal value (the minimum value) in the quadratic curve CV, among a plurality of sets stored in the voltage information 222 .
- the memory controller 2 shifts the entire voltage range in which a local shift operation is required by ⁇ Vs 3 .
- ⁇ Vs 3 becomes a negative value, and the entire voltage range in which a local shift operation is required is shifted to the low voltage side.
- ⁇ Vs 3 becomes a positive value, and the entire voltage range in which a local shift operation is required is shifted to the high voltage side.
- the number of memory cells at the point (V 75 , R 75 ) at the high voltage side is the minimum, and so the memory controller 2 shifts the entire voltage range in which a local shift operation is required by ⁇ Vs 3 (>0).
- the memory controller 2 performs a local shift operation in the same manner as in FIGS. 8A and 8B .
- FIG. 10 is a flowchart illustrating the operation of the memory system 100 .
- the memory system 100 measures a bit count value of a first point at a default read voltage for a valley as a searching target (S 1 ).
- the memory system 100 determines whether a global shift amount is 0, with reference to the global shift information 221 (S 2 ). When the global shift amount is not 0 (“No” in S 2 ), the memory system 100 shifts the read voltage of the first point by a global shift amount ⁇ Vs 1 acquired from the table (S 3 ), and measures a bit count value of the first point at the shifted read voltage (S 1 ).
- the memory system 100 determines that the read voltage is around the valley as the searching target, and measures bit count values of a second point to a fourth point while shifting the read voltage by a local shift amount ⁇ Vs 2 (S 4 ).
- the memory system 100 calculates differences (three differences) between bit count values of the four points (S 5 ), and plots three points corresponding to the three differences on a virtual plane in which a horizontal axis indicates a threshold voltage and a vertical axis indicates the number of memory cells.
- the memory system 100 compares the numbers of memory cells at the plotted three points to each other, and determines whether the number of memory cells at an intermediate point (which is a point at which the threshold voltage is an intermediate value) is a minimal value (S 6 ). When the number of memory cells at the intermediate point is not a minimal value (“No” in S 6 ), the memory system 100 shifts the entire voltage range in which a local shift operation is performed, by ⁇ Vs 3 (S 7 ), and returns the process to S 1 .
- the memory system 100 obtains a quadratic curve approximately passing through the plotted three points, and obtains a read voltage corresponding to a minimal value of the quadratic curve as a read voltage of a desired valley (S 8 ).
- a re-try processing it is detected whether or not a threshold voltage distribution of memory cells deviates by a large amount, and a read voltage is shifted according to the detection result, and a Vth tracking is performed based on the shifted voltage. For example, a bit count value of a first point at a default read voltage for a valley as a searching target may be measured, a global shift amount according to the bit count value may be obtained with reference to the global shift information 221 , a read voltage used for measuring the first point may be shifted by the global shift amount.
- the threshold voltage distribution of memory cells deviates by a large amount, it is possible to search for a position of a valley in a short time without erroneously detecting adjacent valleys. Accordingly, erroneous detection in the Vth tracking may be reduced.
- the Vth tracking when the Vth tracking is performed, in the case where an intermediate point is not a minimal value, a re-try processing is performed by shifting a read voltage by a predetermined amount. Accordingly, the detection accuracy of the Vth tracking may be improved.
- the measurement of a bit count value in the Vth tracking is performed from the high voltage side. Accordingly, for example, the Vth tracking may be properly performed according to the fact that the peak of a distribution Er tends to collapse.
- the voltage value in the table may be stored, and then, at the time of a read operation according to the next re-try request (at the time of the read operation in the next re-try processing), reading may be performed at the stored voltage value.
- the set number of the read voltage to be used at the time of the read operation in the next re-try processing is stored as a set number “k” as illustrated in FIG. 5 .
- the memory controller 2 uses the read voltage of the set number “k” in the voltage information 222 at the time of the read operation in the next re-try processing. Accordingly, when the valley between the distribution B and the distribution C is read at the time of the read operation in the next re-try processing, V 7 may be used as a read voltage. Therefore, it is possible to reduce the frequency of global shifts, and to shorten a time required for a re-try processing.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
Description
- This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2017-178094, filed Sep. 15, 2017, the entire contents of which are incorporated herein by reference.
- Embodiments described herein relate generally to a memory system and a control method of the memory system.
- In a memory system including a non-volatile memory having a plurality of memory cells, an operation of reading data from each memory cell is performed by applying a read voltage between a substrate and a control gate.
-
FIG. 1 is a view illustrating a configuration of a memory system according to an embodiment. -
FIG. 2 is a view illustrating a configuration of a memory chip in the embodiment. -
FIG. 3 is a view illustrating a configuration of a block in the embodiment. -
FIG. 4 is a view illustrating a threshold voltage distribution of memory cells in the embodiment. -
FIG. 5 is a table used for determining a read voltage in the embodiment. -
FIGS. 6A to 6D are views illustrating an overall deviation in the threshold voltage distribution of memory cells in the embodiment. -
FIG. 7 is a table used for determining a global shift amount of the threshold voltage distributions in the embodiment. -
FIGS. 8A and 8B illustrate an example of threshold voltage tracking in the embodiment. -
FIGS. 9A and 9B illustrate another example of threshold voltage tracking in the embodiment. -
FIG. 10 is a flow chart illustrating an operation of the memory system according to the embodiment. - Embodiments provide a memory system and a control method of the memory system in which data may be properly read from each memory cell.
- In general, according to one embodiment, there is provided a memory system including a non-volatile memory including a plurality of memory cells and a controller. The controller is configured to perform a read re-try in response to a failed normal read. The read re-try includes a first read processing of reading data from the plurality of memory cells at a first read voltage, a second read processing of reading data from the plurality of memory cells at a second read voltage obtained by shifting the first read voltage by a first shift amount, which is determined according to a bit count value obtained by counting a number of predetermined bit values in the data read in the first read processing, a third read processing of reading data from the plurality of memory cells a plurality of times at a plurality of third read voltages and obtaining a bit count value for each of the third read voltages, wherein each of the plurality of third read voltages are shifted from each other by a second shift amount, and a final read processing of reading data from the plurality of memory cells at a read voltage that is set closer to the second read voltage than the first read voltage.
- Hereinafter, a memory system according to an embodiment will be described in detail with reference to the accompanying drawings. Meanwhile, the present disclosure is not limited by the embodiment described herein.
- A memory system according to an embodiment will be described. In a memory system including a non-volatile memory having a plurality of memory cells, an operation of reading data from each memory cell is performed by applying a read voltage between a substrate and a control gate. When a read voltage is set as a voltage in a valley portion between peaks of the number of memory cells in a memory cell threshold voltage distribution, it is possible to reduce the number of occurrences of a bit error in a read bit value. The threshold voltage distribution of memory cells is a distribution that indicates the number of memory cells in the memory cell array that have the threshold voltage of the distribution.
- Meanwhile, in order to increase the storage capacity of the memory system, it is required to shift from a multi-level cell (MLC) in which 2-bit information are stored in each memory cell to a triple-level cell (TLC) in which 3-bit information are stored in each memory cell. In the triple-level cell (TLC), since a distance between peaks tends to be smaller in the memory cell threshold voltage distribution, a higher accuracy than in the multi-level cell (MLC) is required in the required accuracy of a read voltage.
- In order to increase the accuracy of a read voltage, in the memory system, a Vth (threshold voltage) tracking may be performed to search for a position of a valley in the memory cell threshold voltage distribution. In the Vth tracking, a shift read operation is performed. In the shift read operation, the read voltage is continually shifted by a predetermined step width prior to reading, and then the position of the valley is searched for in the memory cell threshold voltage distribution based on the read results. Accordingly, when a proper read voltage may be specified according to the read results, it is possible to read data from memory cells at the proper read voltage while reducing the number of occurrences of a bit error in the read data.
- However, in the memory cell threshold voltage distribution, a voltage position (an absolute position with respect to a reference (e.g., 0 V) in the horizontal direction on a virtual plane in which the horizontal axis indicates a threshold voltage and the vertical axis indicates the number of memory cells) may be changed over time. For example, when each memory cell becomes deteriorated through repetition of a programming/erasing cycle (a P/E cycle), the voltage position may deviate in the memory cell threshold voltage distribution due to the deterioration. Otherwise, for example, when an environmental temperature at the time of programming in each memory cell is different from an environmental temperature at the time of reading, the voltage position may deviate in the memory cell threshold voltage distribution due to the influence of a difference between the environmental temperatures. In a case where a deviation of the voltage position is large in the memory cell threshold voltage distribution (e.g., when the voltage position largely deviates by about one peak or half of one peak), even when the Vth tracking is performed, the position of the valley may not be tracked (i.e., found), and a position of another valley (e.g., an adjacent wrong valley) than the valley of the original reading target maybe tracked. This may lead to an erroneous detection.
- Therefore, in the present embodiment, in the memory system, it is detected whether or not the memory cell threshold voltage distribution deviates by a large amount, and a Vth tracking is performed according to the detection result, so as to reduce an erroneous detection in the Vth tracking.
- Specifically, a
memory system 100 is configured as illustrated inFIG. 1 .FIG. 1 is a view illustrating a configuration of thememory system 100. - The
memory system 100 is connected to ahost apparatus 200. Thehost apparatus 200 corresponds to, for example, a server, a personal computer, or a mobile-type information processing apparatus, etc. Thememory system 100 functions as an external storage device of thehost apparatus 200. Thehost apparatus 200 may issue an access request (e.g., a read request or a write request) to thememory system 100. The standard to which a communication interface interconnecting thememory system 100 and thehost apparatus 200 conforms is not limited to a specific standard. For example, the communication interface conforms to an advanced technology attachment (ATA) standard, a serial attached SCSI (SAS) standard, a peripheral components interconnect (PCI) express (PCIe®) standard or the like. - The
memory system 100 includes an NAND-type flash memory (hereinafter referred to as “NAND memory”) 1, and a memory controller 2 that executes a data transmission between thehost apparatus 200 and theNAND memory 1. Thememory system 100 may include other types of memory instead of theNAND memory 1. For example, thememory system 100 may include a NOR-type flash memory instead of theNAND memory 1. - The
NAND memory 1 includes a plurality of memory chips 11 (here, four memory chips 11) as a semiconductor memory. The memory controller 2 includes two channels (ch.0, and ch.1). The memory controller 2 may include one channel or three or more channels. Twomemory chips 11 are connected to each channel. Each channel includes a control signal line, an I/O signal line, a chip enable (CE) signal line, and a ready (RY)/busy (BY) signal line. The I/O signal line is a signal line that transmits data, addresses, and various instructions. The memory controller 2 may transmit a read instruction, a programming instruction, and an erasing instruction to thememory chip 11 through the I/O signal line. The control signal line includes a write enable (WE) signal line, a read enable (RE) signal line, a command latch enable (CLE) signal line, an address latch enable (ALE) signal line, a write protect (WP) signal line, or the like. The RY/BY signal line indicates whether theNAND memory 1 is operating, through the level thereof. For example, the RY/BY signal line indicates a ready state (RY) corresponding to a non-operating state through an H level, and indicates a busy state (BY) corresponding to an operating state through an L level. - For example, each
memory chip 11 is configured as illustrated inFIG. 2 .FIG. 2 is a view illustrating a configuration of thememory chip 11. - The
memory chip 11 includes an I/Osignal processing circuit 110, a controlsignal processing circuit 111, achip control circuit 112, a command register 113, an address register 114, acolumn decoder 115, adata register 116, asense amplifier 117, amemory cell array 118, arow decoder 119, and an RY/BY generating circuit 120. - The
chip control circuit 112 is a circuit that switches a state based on various control signals received through the controlsignal processing circuit 111. Thechip control circuit 112 controls the entire operation of thememory chip 11. The RY/BY generating circuit 120 switches the state of the RY/BY signal line between a ready state (RY) and a busy state (BY) under the control by thechip control circuit 112. - The I/O
signal processing circuit 110 is a buffer circuit that transmits and receives I/O signals to/from the memory controller 2. A command latched by the I/Osignal processing circuit 110, an address designating an access destination, and data are allocated to and stored in the command register 113, the address register 114, and the data register 116, respectively. - The address stored in the address register 114 includes a chip number, a row address, and a column address. The chip number is identification information that identifies each
memory chip 11. The chip number, the row address, and the column address are read by thechip control circuit 112, therow decoder 119, and thecolumn decoder 115, respectively. - The control
signal processing circuit 111 accepts the input of a control signal. The controlsignal processing circuit 111 executes allocation of a register of a storage destination of the I/O signal accepted by the I/Osignal processing circuit 110, based on the accepted control signal. The controlsignal processing circuit 111 transmits the accepted control signal to thechip control circuit 112. - The
memory cell array 118 includes a plurality of blocks. A block is a storage area corresponding to a physical execution unit of erasing. That is, all data pieces stored in one block are erased at once. - For example, each block in the
memory cell array 118 is configured as illustrated inFIG. 3 .FIG. 3 is a view illustrating the configuration of the block. - Each block includes (p+1) NAND strings arranged along the X direction (p≥0). Select transistors ST1 are provided in the (p+1) NAND strings, respectively, and include drains connected to bit lines BL0 to BLp, respectively, and gates connected to a select gate line SGD in common. Select transistors ST2 are also provided in the (p+1) NAND strings, respectively, and include sources connected to a source line SL in common, and gates connected to a select gate line SGS in common.
- Each memory cell transistor MT is composed of a metal oxide semiconductor field effect transistor (MOSFET) having a stacked gate structure formed on a semiconductor substrate. The stacked gate structure includes a floating gate formed on the semiconductor substrate through a tunnel oxide film, and a control gate electrode formed on the floating gate through an inter-gate insulating film. A threshold voltage of the memory cell transistor MT changes according to the number of electrons accumulated in the floating gate. The memory cell transistor MT stores data according to a difference in its threshold voltage. That is, the memory cell transistor MT holds charges in the floating gate in the amount according to the data it has been designated to store.
- In each NAND string, (q+1) memory cell transistors MT are arranged such that respective current paths are connected in series between the source of the select transistor ST1 and the drain of the select transistor ST2 (q≥0). Then, in order from the memory cell transistor MT located closest to the drain side, control gate electrodes are connected to word lines WL0 to WLq, respectively. Therefore, the drain of the memory cell transistor MT connected to the word line WL0 is connected to the source of the select transistor ST1, and the source of the memory cell transistor MT connected to the word line WLq is connected to the drain of the select transistor ST2.
- Each of the word lines WL0 to WLq is connected in common to control gate electrodes of one of the memory cell transistors MT across all of the NAND strings within the block. That is, the control gate electrodes of the memory cell transistors MT that are present in the same row within the block, are connected to the same word line WL. That is, the block includes a plurality of memory cell groups MG, each corresponding to one of the word lines WL, and each memory cell group MG includes the (p+1) memory cell transistors MT connected to the same word line WL. In a configuration where each memory cell transistor MT may hold a value represented by 1 bit (an operation is made in a single level cell (SLC) mode), the (p+1) memory cell transistors MT (i.e., the memory cell group MG) connected to the same word line WL store one page of data, and the programming of data and the reading of data are performed per page.
- In a configuration where each memory cell transistor MT may hold a value of a plurality of bits, for example, when each memory cell transistor MT is capable of storing a value represented by n bits (n≥2), the storage capacity per word line WL is equal to n pages. That is, each memory cell group MG stores n pages of data. Here, descriptions will be made on, as an example, a case where each memory cell transistor MT operates in a triple-level cell (TLC) mode in which a value represented by 3 bits is stored. In the triple-level cell (TLC) mode, data of three pages are held in memory cell transistors MT connected to each word line WL. Among these three pages, a page for which writing is made first is referred to as a lower page, a page for which writing is made after the lower page is referred to as a middle page, and a page for which writing is made after the middle page is referred to as an upper page. Hereafter, the memory cell transistor MT is simply referred to as a memory cell. It should be understood that there may be a mode in which programs are collectively executed for a plurality of pages or all pages corresponding to one word line WL.
- When each memory cell operates in a triple-level cell (TLC) mode, for example, a threshold voltage distribution of memory cells is as illustrated in
FIG. 4 .FIG. 4 is a view illustrating a threshold voltage distribution of memory cells. InFIG. 4 , the horizontal axis indicates a threshold voltage, and the vertical axis indicates the number of memory cells. - According to the triple-level cell (TLC) mode, each memory cell may hold eight-valued data “xyz” defined by data “x” belonging to the upper page, data “y” belonging to the middle page, and data “z” belonging to the lower page. A value of each of data “x,” data “y,” and data “z” is either a bit value “0” or a bit value “1.” The threshold voltage of each memory cell is controlled to belong to anyone of eight groups, that is, a distribution Er, a distribution A, a distribution B, a distribution C, a distribution D, a distribution E, a distribution F, and a distribution G. The correspondence between each distribution and the data value of eight-valued data “xyz” is set in advance. For example, a data value “111” is allocated to the distribution Er. A data value “110” is allocated to the distribution A. A data value “100” is allocated to the distribution B. A data value “000” is allocated to the distribution C. A data value “010” is allocated to the distribution D. A data value “011” is allocated to the distribution E. A data value “001” is allocated to the distribution F. A data value “101” is allocated to the distribution G. However, the correspondence between each distribution and the data value is not limited to the above.
- Referring back to
FIG. 2 , therow decoder 119, thecolumn decoder 115, thedata register 116, and thesense amplifier 117 constitute a peripheral circuit for thememory cell array 118. The peripheral circuit executes an access (reading, programming, and erasing) to thememory cell array 118, based on the control by thechip control circuit 112. - For example, at the time of programming, the
column decoder 115 selects and activates a bit line corresponding to a column address. Thesense amplifier 117 sets a potential of the bit line selected by thecolumn decoder 115, to 0 volt. Therow decoder 119 applies a programming pulse to a word line WL corresponding to a row address. Then, electrons are injected into a floating gate of a memory cell located at an intersection between the selected bit line and the selected word line WL, and as a result, a threshold voltage of the floating gate rises. Each time the programming pulse is applied, thesense amplifier 117 checks whether the threshold voltage reaches a voltage according to data stored in the data register 116. Thesense amplifier 117 allows therow decoder 119 to continue to apply the programming pulse until the threshold voltage reaches the voltage according to data. - At the time of reading, the
sense amplifier 117 precharges a power supply potential Vcc to the bit line BL, and therow decoder 119 sequentially applies a plurality of types of determination potentials (also known as “read voltages”) to the selected word line WL by which a distribution of each data value (“111,” “110,” “100,” “000,” “010,” “011,” “001, ” and “101”) may be specified. Therow decoder 119 applies a transmission potential to an unselected word line WL so that memory cells belonging to the unselected word line WL are placed in a conductive state. Thesense amplifier 117 detects whether or not charges accumulated by precharging flows to a source line SL by application of one of the read voltages, thereby determining a data value stored in a target memory cell. - For example, as illustrated in
FIG. 4 , a read voltage V7 is set between the distribution Er and the distribution A. A read voltage V6 is set between the distribution A and the distribution B. A read voltage V5 is set between the distribution B and the distribution C. A read voltage V4 is set between the distribution C and the distribution D. A read voltage V3 is set between the distribution D and the distribution E. A read voltage V2 is set between the distribution E and the distribution F. A read voltage V1 is set between the distribution F and the distribution G. For example, as illustrated inFIG. 5 , these read voltages may correspond to a set of read voltages of a default set number “0”. - Further, for each distribution pattern that may be changeable over time, a set of read voltages may be prepared. Each set of read voltages may be stored in advance in a management information storage area of the
NAND memory 1, as a table ofvoltage information 222 used for determining read voltages, as illustrated inFIG. 5 .FIG. 5 is a view illustrating an example of the configuration of thevoltage information 222. Here, the table illustrated inFIG. 5 is an example of an implementation form of thevoltage information 222, and thevoltage information 222 may be implemented in another form (e.g., a function formula, etc.). For example, at the time of activation of thememory system 100, the memory controller 2 may read thevoltage information 222 from the management information storage area of theNAND memory 1, and store thevoltage information 222 in aRAM 22. - The
sense amplifier 117 stores read data in the data register 116. The data stored in the data register 116 is sent to the I/Osignal processing circuit 110 through a data line, and is transmitted from the I/Osignal processing circuit 110 to the memory controller 2. - As a reference value of each of read voltages V1 to V7 in the default set number “0,” a common value may be set for the plurality of
memory chips 11, or different reference values may be set for thememory chips 11. As a reference value of each of read voltages V1 to V7, a common value may be set for blocks or a unit other than blocks. A method of setting a reference value is not limited to a specific method. The memory controller 2 may set the reference value of each of read voltages by sending a predetermined command to atarget memory chip 11. - Referring back to
FIG. 1 , the memory controller 2 includes a host interface controller (host I/F controller) 21, the random access memory (RAM) 22, a NAND controller (NANDC) 23, a central processing unit (CPU) 24, and anECC circuit 25. The host I/F controller 21, theRAM 22, theNAND controller 23, theCPU 24, and theECC circuit 25 are connected to each other via a bus. The memory controller 2 may be one circuit (IC) in which the host I/F controller 21, theRAM 22, theNAND controller 23, theCPU 24, and theECC circuit 25 are integrated. A part of the host I/F controller 21, theRAM 22, theNAND controller 23, theCPU 24, and theECC circuit 25 may be disposed outside the memory controller 2. - The
RAM 22 functions as a buffer that stores data transmitted between thehost apparatus 200 and theNAND memory 1. TheRAM 22 provides a working area to theCPU 24. The RAM stores various management information including, for example,global shift information 221 and thevoltage information 222. - The type of the
RAM 22 is not limited to a specific type. As a type of theRAM 22, for example, a dynamic random access memory (DRAM) or a static random access memory (SRAM) may be employed. - The host I/
F controller 21, under the control of theCPU 24, executes a control of a communication interface between thehost apparatus 200 and thememory system 100, and a control of data transmission between thehost apparatus 200 and theRAM 22. - The
NAND controller 23 controls the respective channels (ch.0, and ch.1). TheNAND controller 23 executes a control of data transmission between theNAND memory 1 and theRAM 22, under the control of theCPU 24. - The
ECC circuit 25 performs encoding for an error correction, on data to be programmed into theNAND memory 1, or executes an error correction on data read from theNAND memory 1. - The memory controller 2 may read data by changing a set value of a read voltage. There is a case where by changing a set value of a read voltage, the number of error bits may be reduced at the time of data reading. Hereinafter, the reading by changing the set value of the read voltage will be referred to as shift read.
- In an example, the memory controller 2 corrects, by the
ECC circuit 25, a value among read data, that had changed from a value at the time of programming and thus become error bits, thereby restoring data at the time of the programming. The memory controller 2 may fail to perform an error correction by theECC circuit 25. The failure in the error correction indicates that it is impossible to restore the data at the time of the programming, from the read data. Specifically, the failure in the error correction indicates that it is impossible to correct error bits included in the read data. The success in the error correction indicates that all error bits included in the read data are corrected. - When the error correction by the
ECC circuit 25 has failed, the memory controller 2 in one embodiment issues a read re-try request as a programmatic response thereto. In another embodiment, the memory controller 2 notifies thehost apparatus 200 that the error correction has failed. Accordingly, thehost apparatus 200 sends the read re-try request to thememory system 100. The memory controller 2 receives the read re-try request from thehost apparatus 200. The memory controller 2 may perform the Vth tracking as illustrated inFIGS. 6A and 6B , according to the read re-try request as the programmatic response or in response to the read re-try request from thehost apparatus 200.FIG. 6A illustrates an example of a distribution of memory cells. - According to the Vth tracking, when foots of distributions overlap each other among distributions having different corresponding data values, the sum of the numbers of memory cells belonging to the plurality of overlapping distributions may be obtained at a read voltage in the range where the foots of the distributions overlap each other.
- In the Vth tracking, shift read is executed in a binary mode (SLC mode) while changing the set value of the read voltage, and the number of “1”s or “0”s included in the data obtained through each shift read is counted. The binary mode is a mode in which it is determined that a memory cell having a threshold voltage smaller than a read voltage stores a first data value, and a memory cell having a threshold voltage larger than a read voltage stores a second data value other than the first data value. Here, as an example, it is assumed that “1” is a first data value, “0” is a second data value, and the number of “1”s is counted. When the number of counted “1”s is plotted with respect to the read voltage, a curve illustrated in
FIG. 6B may be obtained. In the present embodiment, the number of counted “1”s will be referred to as a bit count value. - Subsequently, a change rate of the bit count value is calculated. The change rate of the bit count value is a change amount of the number of “1”s in the case where a read voltage is changed by a predetermined unit amount. In order to grasp the change amount, the memory controller 2 performs, for example, four read operations, and acquires bit count values of the respective four points while changing a read voltage by a predetermined step width, and then takes differences between the bit count values of the four points. When the change rate obtained in this manner is plotted with respect to the read voltage, it is possible to obtain an approximation of the distribution of memory cells (i.e., a part of a curve indicated by the solid line in
FIG. 6A (e.g., a valley portion between the distribution B and the distribution C)) with respect to the threshold voltage. - However, the threshold voltage distribution of the memory cells may be changed from the distribution illustrated in
FIG. 6A to the distribution illustrated inFIG. 6C , over time. In the example ofFIGS. 6A to 6D , read voltages V1 to V7 for respective valleys, as a whole, are shifted to read voltage V3 to V9, respectively. For example, assuming the distribution illustrated inFIG. 6A , when a valley between the distribution B and the distribution C is searched for by shifting the read voltage around V5, in the case of the distribution illustrated inFIG. 6C , a valley between the distribution D and the distribution E is searched for in actuality. - In the present embodiment, the overall deviation of the threshold voltage distribution of the memory cells will be referred to as global shift in the sense that the threshold voltage distribution of the memory cells is globally shifted. In order to correct the influence of the global shift, it is required to know a global shift amount that indicates the degree of the global shift.
- As can be seen from the comparison between the set of
FIGS. 6A and 6B and the set ofFIGS. 6C and 6D , there is a one-to-one correspondence between the threshold voltage distribution of the memory cells and the graph of a change of the bit count value. Therefore, as illustrated inFIG. 6D , the global shift amount may be specified from the bit count value for the read voltage. InFIG. 6D , a case where the global shift amount is specified as ΔVs1 (<0), and the read voltage is shifted to V70=V5+ΔVs1 is exemplified. - Such a global shift amount is experimentally acquired, in advance, for each valley as a searching target, the global shift amount is configured as a table illustrated in
FIG. 7 , and stored in the management information storage area of theNAND memory 1.FIG. 7 is a view illustrating a table of theglobal shift information 221 used for determining a global shift amount. Here, values in the table illustrated in FIG. 7 are exemplary only, but do not limit the global shift amount. The table illustrated inFIG. 7 is an example of an implementation form of theglobal shift information 221, and theglobal shift information 221 may be configured as another implementation form (e.g., a function formula, etc.). For example, at the time of activation of thememory system 100, the memory controller 2 may read theglobal shift information 221 from the management information storage area of theNAND memory 1 and store theglobal shift information 221 in theRAM 22. - By referring to the
global shift information 221 illustrated inFIG. 7 , it is possible to specify a global shift amount according to a bit count value, for each valley as a searching target. For example, when it is desired to search for a valley between the distribution B and the distribution C, in the case where the bit count value of the current read voltage V5 ranges from 8000 to 8499, the global shift amount ΔVs1 is specified as −0.5 V. In this case, the read voltage is shifted to V70=V5+ΔVs1=V5−0.5 V. - The memory controller 2 shifts the read voltage to V70 by the global shift amount ΔVs1 and performs a Vth tracking. The memory controller 2 alternately performs, a plurality of times, setting the read voltage through shifting by a new shift amount ΔVs2(<0) based on the shifted read voltage V70, and reading data at the set read voltage from the plurality of memory cells. In the following description, in order to distinguish the shift amount ΔVs2 from the global shift amount ΔVs1, the shift amount ΔVs2 used in the Vth tracking will be referred to as a local shift amount. An operation of shifting the read voltage by the local shift amount ΔVs2 in the Vth tracking will be referred to as a local shift operation.
- For example, the memory controller 2 performs a Vth tracking employing a local shift operation as illustrated in
FIGS. 8A and 8B .FIGS. 8A and 8B are views illustrating a local shift operation. As illustrated inFIG. 8B , the memory controller 2 performs a read operation at the voltage V70 obtained through shifting by a global shift amount ΔVs1, and acquires a bit count value C70 at the voltage V70. The memory controller 2 performs a read operation at the voltage V71 (=V70+ΔVs2) obtained by shifting the voltage V70 by a local shift amount ΔVs2, and acquires a bit count value C71 at the voltage V71. The memory controller 2 performs a read operation at the voltage V72 (=V71+ΔVs2) obtained by shifting the voltage V71 by the local shift amount ΔVs2, and acquires a bit count value C72 at the voltage V72. The memory controller 2 performs a read operation at the voltage V73 (=V72+ΔVs2) obtained by shifting the voltage V72 by the local shift amount ΔVs2, and acquires a bit count value C73 at the voltage V73. - The memory controller 2 takes a difference between the bit count value C70 and the bit count value C71, and obtains the number R71 (=C70−C71) of memory cells at the threshold voltage V71. The memory controller 2 takes a difference between the bit count value C71 and the bit count value C72, and obtains the number R72 (=C71−C72) of memory cells at the threshold voltage V72. The memory controller 2 takes a difference between the bit count value C72 and the bit count value C73, and obtains the number R73 (=C72−C73) of memory cells at the threshold voltage V73.
- As illustrated in
FIG. 8A , the memory controller 2 plots a point (V71, R71), a point (V72, R72), and a point (V73, R73) on a virtual plane in which the horizontal axis indicates a threshold voltage, and the vertical axis indicates the number of memory cells. The memory controller 2 checks whether the number of memory cells at the intermediate point (V72, R72) among the three points is minimum. For example, the memory controller 2 compares ΔR7 ab=R71−R72 to ΔR7 bc=R72−R73. When ΔR7 bc<0<ΔR7 ab, it may be determined that among the three points, the number of memory cells at the intermediate point (V72, R72) is minimum (R72<R71, R72<R73). When determining that the number of memory cells at the intermediate point (V72, R72) is minimum among the three points, the memory controller 2 obtains a quadratic curve CV that approximately passes through the point (V71, R71), the point (V72, R72), and the point (V73, R73), as indicated by the one-dot chain line inFIG. 8A . Then, the memory controller 2 obtains a read voltage corresponding to a minimum value in the quadratic curve CV as a read voltage V7 of a desired valley. - Here, the memory controller 2 may obtain the minimum value itself in the quadratic curve CV, as the read voltage V7 of a desired valley, or may obtain the read voltage V7 of a desired valley by referring to the
voltage information 222 and selecting a set (in this case, a set of the set number “k” illustrated inFIG. 5 , k is an any integer larger than 1) in which the read voltage of the desired valley is closest to the minimal value (the minimum value) in the quadratic curve CV, among a plurality of sets stored in thevoltage information 222. - When the intermediate point among the three points is not minimum, the memory controller 2 shifts the entire voltage range in which a local shift operation is required by ΔVs3. When the point at the low voltage side is minimum among the three points, ΔVs3 becomes a negative value, and the entire voltage range in which a local shift operation is required is shifted to the low voltage side. When the point at the high voltage side is minimum among the three points, ΔVs3 becomes a positive value, and the entire voltage range in which a local shift operation is required is shifted to the high voltage side.
- For example, as indicated by the black circles in
FIG. 9A , among a point (V75, R75), a point (V76, R76), and a point (V77, R77) , the number of memory cells at the point (V75, R75) at the high voltage side is the minimum, and so the memory controller 2 shifts the entire voltage range in which a local shift operation is required by ΔVs3 (>0). For example, when V74′=V74+ΔVs3=V70, the memory controller 2 performs a local shift operation in the same manner as inFIGS. 8A and 8B . That is, a read operation is sequentially performed at read voltages V74′(=V74+ΔVs3)=V70, V75′(=V75+ΔVs3)=V71, V76′(=V76+ΔVs3)=V72, and V77′(=V77+ΔVs3)=V73. Accordingly, as indicated by white circles inFIGS. 9A and 9B , three points (V75′, R75′), (V76′, R76′), and (V77′, R77′) at which the intermediate point becomes minimum may be obtained. - Subsequently, an operation (referred to herein as a re-try processing) of the
memory system 100 will be described with reference toFIG. 10 .FIG. 10 is a flowchart illustrating the operation of thememory system 100. - The
memory system 100 measures a bit count value of a first point at a default read voltage for a valley as a searching target (S1). Thememory system 100 determines whether a global shift amount is 0, with reference to the global shift information 221 (S2). When the global shift amount is not 0 (“No” in S2), thememory system 100 shifts the read voltage of the first point by a global shift amount ΔVs1 acquired from the table (S3), and measures a bit count value of the first point at the shifted read voltage (S1). When the global shift amount is 0 (“Yes” in S2), thememory system 100 determines that the read voltage is around the valley as the searching target, and measures bit count values of a second point to a fourth point while shifting the read voltage by a local shift amount ΔVs2 (S4). Thememory system 100 calculates differences (three differences) between bit count values of the four points (S5), and plots three points corresponding to the three differences on a virtual plane in which a horizontal axis indicates a threshold voltage and a vertical axis indicates the number of memory cells. Thememory system 100 compares the numbers of memory cells at the plotted three points to each other, and determines whether the number of memory cells at an intermediate point (which is a point at which the threshold voltage is an intermediate value) is a minimal value (S6). When the number of memory cells at the intermediate point is not a minimal value (“No” in S6), thememory system 100 shifts the entire voltage range in which a local shift operation is performed, by ΔVs3 (S7), and returns the process to S1. When the number of memory cells at the intermediate point is a minimal value (“Yes” in S6), thememory system 100 obtains a quadratic curve approximately passing through the plotted three points, and obtains a read voltage corresponding to a minimal value of the quadratic curve as a read voltage of a desired valley (S8). - As described above, in the
memory system 100, as a re-try processing, it is detected whether or not a threshold voltage distribution of memory cells deviates by a large amount, and a read voltage is shifted according to the detection result, and a Vth tracking is performed based on the shifted voltage. For example, a bit count value of a first point at a default read voltage for a valley as a searching target may be measured, a global shift amount according to the bit count value may be obtained with reference to theglobal shift information 221, a read voltage used for measuring the first point may be shifted by the global shift amount. Accordingly, when the threshold voltage distribution of memory cells deviates by a large amount, it is possible to search for a position of a valley in a short time without erroneously detecting adjacent valleys. Accordingly, erroneous detection in the Vth tracking may be reduced. - In the
memory system 100, when the Vth tracking is performed, in the case where an intermediate point is not a minimal value, a re-try processing is performed by shifting a read voltage by a predetermined amount. Accordingly, the detection accuracy of the Vth tracking may be improved. - In the
memory system 100, the measurement of a bit count value in the Vth tracking is performed from the high voltage side. Accordingly, for example, the Vth tracking may be properly performed according to the fact that the peak of a distribution Er tends to collapse. - When reading is possible, the voltage value in the table may be stored, and then, at the time of a read operation according to the next re-try request (at the time of the read operation in the next re-try processing), reading may be performed at the stored voltage value. For example, in the example illustrated in
FIGS. 8A and 8B , since a read voltage of the valley between the distribution B and the distribution C is obtained as V7, when a read operation at the read voltage V7 is successful, the set number of the read voltage to be used at the time of the read operation in the next re-try processing is stored as a set number “k” as illustrated inFIG. 5 . Then, the memory controller 2 uses the read voltage of the set number “k” in thevoltage information 222 at the time of the read operation in the next re-try processing. Accordingly, when the valley between the distribution B and the distribution C is read at the time of the read operation in the next re-try processing, V7 may be used as a read voltage. Therefore, it is possible to reduce the frequency of global shifts, and to shorten a time required for a re-try processing. - 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 maybe 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.
Claims (20)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-178094 | 2017-09-15 | ||
JP2017178094A JP2019053806A (en) | 2017-09-15 | 2017-09-15 | Memory system, and control method of memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190088314A1 true US20190088314A1 (en) | 2019-03-21 |
US10255972B1 US10255972B1 (en) | 2019-04-09 |
Family
ID=65721573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/908,828 Active US10255972B1 (en) | 2017-09-15 | 2018-03-01 | Memory system and control method of memory system |
Country Status (2)
Country | Link |
---|---|
US (1) | US10255972B1 (en) |
JP (1) | JP2019053806A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112002367A (en) * | 2019-05-27 | 2020-11-27 | 爱思开海力士有限公司 | Memory device and method of operating the same |
US11158376B2 (en) | 2019-09-17 | 2021-10-26 | Kioxia Corporation | Memory system and method for controlling memory system |
CN113628662A (en) * | 2020-05-07 | 2021-11-09 | 美光科技公司 | Detection of read voltage with incorrect positioning |
US11210208B2 (en) * | 2018-03-27 | 2021-12-28 | Samsung Electronics Co., Ltd. | Memory system including memory module, memory module, and operating method of memory module |
US12009040B2 (en) | 2022-09-07 | 2024-06-11 | Micron Technology, Inc. | Detection of an incorrectly located read voltage |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11086572B1 (en) * | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
JP2021190150A (en) | 2020-06-02 | 2021-12-13 | キオクシア株式会社 | Memory system and memory controller |
KR20220003705A (en) | 2020-07-02 | 2022-01-11 | 삼성전자주식회사 | Controller, storage device having the same, and reading method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013122804A (en) | 2011-12-12 | 2013-06-20 | Toshiba Corp | Semiconductor storage device |
KR102114234B1 (en) | 2013-10-22 | 2020-05-25 | 에스케이하이닉스 주식회사 | Data storing system and operating method thereof |
US9007854B1 (en) * | 2013-12-09 | 2015-04-14 | Western Digital Technologies, Inc. | Method and system for optimized soft decoding in a data storage device |
US9236099B2 (en) | 2013-12-10 | 2016-01-12 | Seagate Technology Llc | Multiple retry reads in a read channel of a memory |
-
2017
- 2017-09-15 JP JP2017178094A patent/JP2019053806A/en active Pending
-
2018
- 2018-03-01 US US15/908,828 patent/US10255972B1/en active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210208B2 (en) * | 2018-03-27 | 2021-12-28 | Samsung Electronics Co., Ltd. | Memory system including memory module, memory module, and operating method of memory module |
CN112002367A (en) * | 2019-05-27 | 2020-11-27 | 爱思开海力士有限公司 | Memory device and method of operating the same |
US11158376B2 (en) | 2019-09-17 | 2021-10-26 | Kioxia Corporation | Memory system and method for controlling memory system |
CN113628662A (en) * | 2020-05-07 | 2021-11-09 | 美光科技公司 | Detection of read voltage with incorrect positioning |
US12009040B2 (en) | 2022-09-07 | 2024-06-11 | Micron Technology, Inc. | Detection of an incorrectly located read voltage |
Also Published As
Publication number | Publication date |
---|---|
US10255972B1 (en) | 2019-04-09 |
JP2019053806A (en) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10255972B1 (en) | Memory system and control method of memory system | |
US20230282276A1 (en) | Semiconductor memory device and memory system | |
US9627077B2 (en) | Semiconductor memory device storing management data redundantly in different pages | |
US11170857B2 (en) | Semiconductor memory device that performs successive tracking reads during an operation to read one page | |
US10629265B2 (en) | Semiconductor memory device | |
KR102192910B1 (en) | Semiconductor device and memory system and operating method thereof | |
US10269399B2 (en) | Controller and operating method thereof | |
US11231874B2 (en) | Memory system and storage system | |
US10860251B2 (en) | Semiconductor memory device | |
CN109949848B (en) | Memory system and operation method thereof | |
CN109754840B (en) | Semiconductor memory device and method of operating the same | |
KR20180125807A (en) | Semiconductor memory device and operation method thereof | |
KR20180027276A (en) | Semiconductor memory device and method for operating the same | |
KR20150107575A (en) | Semiconductor memory device and programming method of nand flash memory | |
US10803954B2 (en) | Memory system | |
KR20190028997A (en) | Semiconductor memory device and method for operating the same | |
KR20190018324A (en) | Memory system and operating method thereof | |
US10679705B2 (en) | Controller and operating method thereof | |
US11574685B2 (en) | Apparatus for memory cell programming | |
US11550492B2 (en) | Semiconductor memory device, controller, and memory system having semiconductor memory device and controller | |
US11551763B2 (en) | Semiconductor memory device and method of operating the same | |
KR101651573B1 (en) | Semiconductor memory device and programming method thereof | |
JP2019160379A (en) | Semiconductor storage device and memory system | |
US20220301650A1 (en) | Controller controlling semiconductor memory device and method of operating the controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SATO, NOBUAKI;REEL/FRAME:045732/0511 Effective date: 20180330 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: K.K. PANGEA, JAPAN Free format text: MERGER;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055659/0471 Effective date: 20180801 Owner name: KIOXIA CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:TOSHIBA MEMORY CORPORATION;REEL/FRAME:055669/0001 Effective date: 20191001 Owner name: TOSHIBA MEMORY CORPORATION, JAPAN Free format text: CHANGE OF NAME AND ADDRESS;ASSIGNOR:K.K. PANGEA;REEL/FRAME:055669/0401 Effective date: 20180801 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |